about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.github/CODEOWNERS12
-rw-r--r--.github/workflows/basic-eval.yml2
-rw-r--r--.github/workflows/editorconfig.yml2
-rw-r--r--.github/workflows/manual-nixos.yml2
-rw-r--r--.github/workflows/manual-nixpkgs.yml2
-rw-r--r--.github/workflows/nixos-manual.yml2
-rw-r--r--.github/workflows/update-terraform-providers.yml2
-rw-r--r--CONTRIBUTING.md3
-rw-r--r--doc/builders/fetchers.chapter.md2
-rw-r--r--doc/builders/special.xml1
-rw-r--r--doc/builders/special/invalidateFetcherByDrvHash.section.md31
-rw-r--r--doc/builders/testers.chapter.md82
-rw-r--r--doc/contributing/coding-conventions.chapter.md10
-rw-r--r--doc/hooks/index.xml10
-rw-r--r--doc/hooks/postgresql-test-hook.section.md59
-rw-r--r--doc/languages-frameworks/chicken.section.md49
-rw-r--r--doc/languages-frameworks/cuda.section.md34
-rw-r--r--doc/languages-frameworks/gnome.section.md18
-rw-r--r--doc/languages-frameworks/go.section.md6
-rw-r--r--doc/languages-frameworks/index.xml2
-rw-r--r--doc/manual.xml2
-rw-r--r--doc/stdenv/stdenv.chapter.md2
-rw-r--r--lib/generators.nix49
-rw-r--r--lib/modules.nix98
-rw-r--r--lib/strings.nix14
-rw-r--r--lib/systems/inspect.nix1
-rw-r--r--lib/systems/platforms.nix2
-rw-r--r--lib/tests/misc.nix67
-rwxr-xr-xlib/tests/modules.sh6
-rw-r--r--lib/tests/modules/extendModules-168767-imports.nix41
-rw-r--r--lib/types.nix10
-rw-r--r--maintainers/maintainer-list.nix159
-rwxr-xr-xmaintainers/scripts/dep-licenses.sh2
-rwxr-xr-xmaintainers/scripts/haskell/merge-and-open-pr.sh2
-rw-r--r--maintainers/scripts/pluginupdate.py187
-rw-r--r--nixos/doc/manual/default.nix4
-rw-r--r--nixos/doc/manual/development/development.xml1
-rw-r--r--nixos/doc/manual/development/writing-nixos-tests.section.md39
-rw-r--r--nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml88
-rw-r--r--nixos/doc/manual/from_md/installation/building-nixos.chapter.xml (renamed from nixos/doc/manual/from_md/development/building-nixos.chapter.xml)34
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-1803.section.xml8
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2205.section.xml541
-rw-r--r--nixos/doc/manual/installation/building-nixos.chapter.md (renamed from nixos/doc/manual/development/building-nixos.chapter.md)31
-rw-r--r--nixos/doc/manual/installation/installation.xml1
-rw-r--r--nixos/doc/manual/man-nixos-rebuild.xml8
-rwxr-xr-xnixos/doc/manual/md-to-db.sh2
-rw-r--r--nixos/doc/manual/release-notes/rl-1803.section.md2
-rw-r--r--nixos/doc/manual/release-notes/rl-2205.section.md214
-rw-r--r--nixos/lib/make-disk-image.nix1
-rw-r--r--nixos/lib/make-multi-disk-zfs-image.nix (renamed from nixos/lib/make-zfs-image.nix)0
-rw-r--r--nixos/lib/make-options-doc/mergeJSON.py4
-rw-r--r--nixos/lib/make-single-disk-zfs-image.nix322
-rw-r--r--nixos/lib/qemu-common.nix4
-rw-r--r--nixos/lib/test-driver/test_driver/driver.py2
-rw-r--r--nixos/lib/test-driver/test_driver/logger.py8
-rw-r--r--nixos/lib/test-driver/test_driver/machine.py11
-rw-r--r--nixos/lib/utils.nix16
-rw-r--r--nixos/maintainers/scripts/ec2/amazon-image.nix2
-rw-r--r--nixos/maintainers/scripts/openstack/openstack-image-zfs.nix101
-rw-r--r--nixos/maintainers/scripts/openstack/openstack-image.nix17
-rw-r--r--nixos/modules/config/console.nix31
-rw-r--r--nixos/modules/config/nsswitch.nix11
-rw-r--r--nixos/modules/config/terminfo.nix26
-rw-r--r--nixos/modules/hardware/video/amdgpu-pro.nix3
-rw-r--r--nixos/modules/hardware/video/nvidia.nix7
-rw-r--r--nixos/modules/hardware/video/webcam/facetimehd.nix5
-rw-r--r--nixos/modules/i18n/input-method/fcitx5.nix6
-rw-r--r--nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix6
-rw-r--r--nixos/modules/installer/kexec/kexec-boot.nix51
-rw-r--r--nixos/modules/installer/tools/nix-fallback-paths.nix10
-rw-r--r--nixos/modules/installer/tools/tools.nix5
-rw-r--r--nixos/modules/misc/documentation.nix3
-rw-r--r--nixos/modules/misc/locate.nix2
-rw-r--r--nixos/modules/module-list.nix13
-rw-r--r--nixos/modules/programs/chromium.nix3
-rw-r--r--nixos/modules/programs/mininet.nix4
-rw-r--r--nixos/modules/programs/nethoscope.nix30
-rw-r--r--nixos/modules/programs/ssh.nix25
-rw-r--r--nixos/modules/programs/ssmtp.nix190
-rw-r--r--nixos/modules/rename.nix5
-rw-r--r--nixos/modules/security/pam.nix110
-rw-r--r--nixos/modules/security/pam_mount.nix84
-rw-r--r--nixos/modules/security/sudo.nix2
-rw-r--r--nixos/modules/services/audio/snapserver.nix22
-rw-r--r--nixos/modules/services/continuous-integration/github-runner.nix10
-rw-r--r--nixos/modules/services/databases/cockroachdb.nix66
-rw-r--r--nixos/modules/services/desktops/pipewire/pipewire-media-session.nix8
-rw-r--r--nixos/modules/services/editors/haste.nix86
-rw-r--r--nixos/modules/services/hardware/udev.nix123
-rw-r--r--nixos/modules/services/hardware/udisks2.nix39
-rw-r--r--nixos/modules/services/hardware/usbrelayd.nix44
-rw-r--r--nixos/modules/services/logging/klogd.nix41
-rw-r--r--nixos/modules/services/logging/logrotate.nix6
-rw-r--r--nixos/modules/services/mail/mailman.nix21
-rw-r--r--nixos/modules/services/mail/postfix.nix39
-rw-r--r--nixos/modules/services/matrix/matrix-synapse.nix2
-rw-r--r--nixos/modules/services/misc/dendrite.nix1
-rw-r--r--nixos/modules/services/misc/etebase-server.nix2
-rw-r--r--nixos/modules/services/misc/ethminer.nix2
-rw-r--r--nixos/modules/services/misc/gitea.nix27
-rw-r--r--nixos/modules/services/misc/gitit.nix2
-rw-r--r--nixos/modules/services/misc/gitlab.nix4
-rw-r--r--nixos/modules/services/misc/nix-daemon.nix8
-rw-r--r--nixos/modules/services/misc/paperless.nix (renamed from nixos/modules/services/misc/paperless-ng.nix)100
-rw-r--r--nixos/modules/services/misc/sourcehut/default.nix2
-rw-r--r--nixos/modules/services/misc/taskserver/default.nix16
-rw-r--r--nixos/modules/services/misc/taskserver/helper-tool.py10
-rw-r--r--nixos/modules/services/monitoring/nagios.nix4
-rw-r--r--nixos/modules/services/monitoring/prometheus/default.nix11
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters.xml21
-rw-r--r--nixos/modules/services/network-filesystems/ipfs.nix26
-rw-r--r--nixos/modules/services/networking/bird.nix3
-rw-r--r--nixos/modules/services/networking/consul.nix38
-rw-r--r--nixos/modules/services/networking/create_ap.nix50
-rw-r--r--nixos/modules/services/networking/envoy.nix84
-rw-r--r--nixos/modules/services/networking/headscale.nix2
-rw-r--r--nixos/modules/services/networking/mozillavpn.nix19
-rw-r--r--nixos/modules/services/networking/nbd.nix43
-rw-r--r--nixos/modules/services/networking/ncdns.nix4
-rw-r--r--nixos/modules/services/networking/networkmanager.nix109
-rw-r--r--nixos/modules/services/networking/openconnect.nix137
-rw-r--r--nixos/modules/services/networking/pdns-recursor.nix19
-rw-r--r--nixos/modules/services/networking/shellhub-agent.nix43
-rw-r--r--nixos/modules/services/networking/syncplay.nix2
-rw-r--r--nixos/modules/services/networking/tailscale.nix10
-rw-r--r--nixos/modules/services/networking/zeronet.nix2
-rw-r--r--nixos/modules/services/system/nscd.nix25
-rw-r--r--nixos/modules/services/ttys/kmscon.nix29
-rw-r--r--nixos/modules/services/web-apps/atlassian/jira.nix1
-rw-r--r--nixos/modules/services/web-apps/discourse.nix12
-rw-r--r--nixos/modules/services/web-apps/keycloak.nix873
-rw-r--r--nixos/modules/services/web-apps/keycloak.xml142
-rw-r--r--nixos/modules/services/web-apps/nextcloud.nix75
-rw-r--r--nixos/modules/services/web-apps/nifi.nix318
-rw-r--r--nixos/modules/services/web-servers/hydron.nix2
-rw-r--r--nixos/modules/services/web-servers/nginx/default.nix29
-rw-r--r--nixos/modules/services/web-servers/nginx/vhost-options.nix15
-rw-r--r--nixos/modules/services/x11/desktop-managers/cinnamon.nix6
-rw-r--r--nixos/modules/services/x11/desktop-managers/gnome.nix43
-rw-r--r--nixos/modules/services/x11/desktop-managers/lxqt.nix4
-rw-r--r--nixos/modules/services/x11/desktop-managers/mate.nix36
-rw-r--r--nixos/modules/services/x11/desktop-managers/none.nix49
-rw-r--r--nixos/modules/services/x11/desktop-managers/pantheon.nix6
-rw-r--r--nixos/modules/services/x11/desktop-managers/xfce.nix11
-rw-r--r--nixos/modules/services/x11/window-managers/qtile.nix15
-rw-r--r--nixos/modules/services/x11/xserver.nix13
-rwxr-xr-xnixos/modules/system/activation/switch-to-configuration.pl12
-rw-r--r--nixos/modules/system/activation/top-level.nix17
-rw-r--r--nixos/modules/system/boot/loader/grub/grub.nix26
-rw-r--r--nixos/modules/system/boot/loader/grub/install-grub.pl8
-rw-r--r--nixos/modules/system/boot/luksroot.nix78
-rw-r--r--nixos/modules/system/boot/networkd.nix140
-rw-r--r--nixos/modules/system/boot/stage-1-init.sh3
-rw-r--r--nixos/modules/system/boot/stage-1.nix39
-rwxr-xr-xnixos/modules/system/boot/stage-2-init.sh108
-rw-r--r--nixos/modules/system/boot/systemd.nix8
-rw-r--r--nixos/modules/system/boot/systemd/initrd.nix125
-rw-r--r--nixos/modules/system/boot/systemd/shutdown.nix32
-rw-r--r--nixos/modules/system/boot/timesyncd.nix22
-rw-r--r--nixos/modules/tasks/auto-upgrade.nix39
-rw-r--r--nixos/modules/tasks/bcache.nix22
-rw-r--r--nixos/modules/tasks/filesystems/btrfs.nix6
-rw-r--r--nixos/modules/tasks/filesystems/cifs.nix2
-rw-r--r--nixos/modules/tasks/filesystems/ext.nix14
-rw-r--r--nixos/modules/tasks/filesystems/f2fs.nix2
-rw-r--r--nixos/modules/tasks/filesystems/jfs.nix2
-rw-r--r--nixos/modules/tasks/filesystems/reiserfs.nix2
-rw-r--r--nixos/modules/tasks/filesystems/unionfs-fuse.nix15
-rw-r--r--nixos/modules/tasks/filesystems/vfat.nix2
-rw-r--r--nixos/modules/tasks/filesystems/xfs.nix4
-rw-r--r--nixos/modules/tasks/filesystems/zfs.nix37
-rw-r--r--nixos/modules/tasks/lvm.nix61
-rw-r--r--nixos/modules/tasks/network-interfaces.nix21
-rw-r--r--nixos/modules/tasks/swraid.nix44
-rw-r--r--nixos/modules/virtualisation/azure-common.nix6
-rw-r--r--nixos/modules/virtualisation/libvirtd.nix4
-rw-r--r--nixos/modules/virtualisation/openstack-config.nix46
-rw-r--r--nixos/modules/virtualisation/openstack-metadata-fetcher.nix6
-rw-r--r--nixos/modules/virtualisation/openstack-options.nix71
-rw-r--r--nixos/modules/virtualisation/qemu-vm.nix8
-rw-r--r--nixos/tests/all-terminfo.nix31
-rw-r--r--nixos/tests/all-tests.nix21
-rw-r--r--nixos/tests/atop.nix8
-rw-r--r--nixos/tests/bcachefs.nix2
-rw-r--r--nixos/tests/docker-tools-cross.nix4
-rw-r--r--nixos/tests/docker-tools.nix2
-rw-r--r--nixos/tests/emacs-daemon.nix2
-rw-r--r--nixos/tests/envoy.nix33
-rw-r--r--nixos/tests/fenics.nix2
-rw-r--r--nixos/tests/haste-server.nix23
-rw-r--r--nixos/tests/hbase.nix30
-rw-r--r--nixos/tests/hibernate.nix6
-rw-r--r--nixos/tests/installer.nix9
-rw-r--r--nixos/tests/kexec.nix60
-rw-r--r--nixos/tests/keycloak.nix26
-rw-r--r--nixos/tests/lvm2/default.nix45
-rw-r--r--nixos/tests/lvm2/systemd-stage-1.nix104
-rw-r--r--nixos/tests/lvm2/thinpool.nix32
-rw-r--r--nixos/tests/lvm2/vdo.nix27
-rw-r--r--nixos/tests/mailcatcher.nix9
-rw-r--r--nixos/tests/mongodb.nix4
-rw-r--r--nixos/tests/nar-serve.nix2
-rw-r--r--nixos/tests/nbd.nix16
-rw-r--r--nixos/tests/ncdns.nix15
-rw-r--r--nixos/tests/networking.nix2
-rw-r--r--nixos/tests/nextcloud/with-mysql-and-memcached.nix23
-rw-r--r--nixos/tests/nixops/default.nix2
-rw-r--r--nixos/tests/pam/pam-ussh.nix70
-rw-r--r--nixos/tests/paperless.nix (renamed from nixos/tests/paperless-ng.nix)23
-rw-r--r--nixos/tests/pdns-recursor.nix5
-rw-r--r--nixos/tests/snapcast.nix1
-rw-r--r--nixos/tests/step-ca.nix1
-rw-r--r--nixos/tests/systemd-initrd-btrfs-raid.nix45
-rw-r--r--nixos/tests/systemd-initrd-luks-keyfile.nix53
-rw-r--r--nixos/tests/systemd-initrd-luks-password.nix48
-rw-r--r--nixos/tests/systemd-initrd-simple.nix29
-rw-r--r--nixos/tests/systemd-initrd-swraid.nix50
-rw-r--r--nixos/tests/systemd-networkd.nix10
-rw-r--r--nixos/tests/systemd-shutdown.nix21
-rw-r--r--nixos/tests/taskserver.nix1
-rw-r--r--nixos/tests/vaultwarden.nix1
-rw-r--r--nixos/tests/web-apps/netbox.nix2
-rw-r--r--nixos/tests/web-apps/nifi.nix30
-rw-r--r--nixos/tests/web-apps/peertube.nix5
-rw-r--r--nixos/tests/xmonad-xdg-autostart.nix35
-rw-r--r--nixos/tests/zfs.nix50
-rw-r--r--pkgs/applications/accessibility/espeakup/default.nix46
-rw-r--r--pkgs/applications/accessibility/wvkbd/default.nix36
-rw-r--r--pkgs/applications/audio/ChowPhaser/default.nix76
-rw-r--r--pkgs/applications/audio/amberol/default.nix75
-rw-r--r--pkgs/applications/audio/audacity/0001-Use-a-different-approach-to-estimate-the-disk-space-.patch355
-rw-r--r--pkgs/applications/audio/audacity/default.nix93
-rw-r--r--pkgs/applications/audio/bespokesynth/default.nix1
-rw-r--r--pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix4
-rw-r--r--pkgs/applications/audio/blanket/default.nix14
-rw-r--r--pkgs/applications/audio/callaudiod/default.nix4
-rw-r--r--pkgs/applications/audio/clementine/default.nix13
-rw-r--r--pkgs/applications/audio/cmus/default.nix4
-rw-r--r--pkgs/applications/audio/dragonfly-reverb/default.nix4
-rw-r--r--pkgs/applications/audio/faustPhysicalModeling/default.nix4
-rw-r--r--pkgs/applications/audio/flac/default.nix12
-rw-r--r--pkgs/applications/audio/ft2-clone/default.nix4
-rw-r--r--pkgs/applications/audio/furnace/default.nix4
-rw-r--r--pkgs/applications/audio/helio-workstation/default.nix4
-rw-r--r--pkgs/applications/audio/hivelytracker/default.nix2
-rw-r--r--pkgs/applications/audio/hqplayer-desktop/default.nix1
-rw-r--r--pkgs/applications/audio/jamesdsp/default.nix40
-rw-r--r--pkgs/applications/audio/jmusicbot/default.nix4
-rw-r--r--pkgs/applications/audio/libopenmpt/default.nix42
-rw-r--r--pkgs/applications/audio/lollypop/default.nix4
-rw-r--r--pkgs/applications/audio/losslessaudiochecker/default.nix2
-rw-r--r--pkgs/applications/audio/lyrebird/default.nix2
-rw-r--r--pkgs/applications/audio/moc/default.nix8
-rw-r--r--pkgs/applications/audio/ncspot/default.nix10
-rw-r--r--pkgs/applications/audio/ncspot/rust_1_57_support.patch21
-rw-r--r--pkgs/applications/audio/ocenaudio/default.nix4
-rw-r--r--pkgs/applications/audio/odin2/default.nix79
-rw-r--r--pkgs/applications/audio/osdlyrics/default.nix87
-rw-r--r--pkgs/applications/audio/parlatype/default.nix66
-rw-r--r--pkgs/applications/audio/pianobar/default.nix4
-rw-r--r--pkgs/applications/audio/pipecontrol/default.nix50
-rw-r--r--pkgs/applications/audio/plexamp/default.nix6
-rw-r--r--pkgs/applications/audio/pt2-clone/default.nix4
-rw-r--r--pkgs/applications/audio/puddletag/default.nix1
-rw-r--r--pkgs/applications/audio/pulseaudio-modules-bt/default.nix91
-rw-r--r--pkgs/applications/audio/pulseaudio-modules-bt/fix-install-path.patch11
-rw-r--r--pkgs/applications/audio/qpwgraph/default.nix6
-rw-r--r--pkgs/applications/audio/sfizz/default.nix7
-rw-r--r--pkgs/applications/audio/sfxr-qt/default.nix7
-rw-r--r--pkgs/applications/audio/shortwave/default.nix21
-rw-r--r--pkgs/applications/audio/sonixd/default.nix27
-rwxr-xr-xpkgs/applications/audio/soundwireserver/default.nix1
-rw-r--r--pkgs/applications/audio/spot/default.nix6
-rw-r--r--pkgs/applications/audio/spotify-tui/default.nix1
-rw-r--r--pkgs/applications/audio/strawberry/default.nix1
-rw-r--r--pkgs/applications/audio/whipper/default.nix8
-rw-r--r--pkgs/applications/audio/x42-plugins/default.nix4
-rw-r--r--pkgs/applications/blockchains/alfis/default.nix6
-rw-r--r--pkgs/applications/blockchains/chia-plotter/default.nix19
-rw-r--r--pkgs/applications/blockchains/chia-plotter/dont_fetch_dependencies.patch35
-rw-r--r--pkgs/applications/blockchains/ledger-live-desktop/default.nix4
-rw-r--r--pkgs/applications/blockchains/lightning-loop/default.nix6
-rw-r--r--pkgs/applications/blockchains/lndmanage/default.nix4
-rw-r--r--pkgs/applications/blockchains/nearcore/default.nix42
-rw-r--r--pkgs/applications/blockchains/openethereum/default.nix6
-rw-r--r--pkgs/applications/blockchains/solana/default.nix13
-rw-r--r--pkgs/applications/blockchains/solana/pin.json5
-rwxr-xr-xpkgs/applications/blockchains/solana/update.sh33
-rw-r--r--pkgs/applications/blockchains/stellar-core/default.nix10
-rw-r--r--pkgs/applications/blockchains/wasabibackend/default.nix2
-rw-r--r--pkgs/applications/blockchains/zcash/default.nix12
-rw-r--r--pkgs/applications/editors/android-studio/common.nix6
-rw-r--r--pkgs/applications/editors/android-studio/default.nix12
-rw-r--r--pkgs/applications/editors/bluej/default.nix43
-rw-r--r--pkgs/applications/editors/cudatext/default.nix4
-rw-r--r--pkgs/applications/editors/cudatext/deps.json24
-rw-r--r--pkgs/applications/editors/emacs/27.nix11
-rw-r--r--pkgs/applications/editors/emacs/28.nix5
-rw-r--r--pkgs/applications/editors/emacs/at-fdcwd.patch15
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/cedet/default.nix52
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/control-lock/default.nix23
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix169
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/ement/default.nix14
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/header-file-mode/default.nix30
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix8
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix58
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json3998
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/tree-sitter-langs/default-grammars.json32
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/tree-sitter-langs/default.nix44
-rwxr-xr-xpkgs/applications/editors/emacs/elisp-packages/tree-sitter-langs/update-defaults.py74
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/tsc/default.nix89
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/tsc/src.json10
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/tsc/update.py122
-rwxr-xr-xpkgs/applications/editors/emacs/elisp-packages/update10
-rwxr-xr-xpkgs/applications/editors/emacs/elisp-packages/update-manual7
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/update-manual.nix11
-rw-r--r--pkgs/applications/editors/emacs/generic.nix6
-rw-r--r--pkgs/applications/editors/gnome-builder/default.nix15
-rw-r--r--pkgs/applications/editors/helix/default.nix20
-rw-r--r--pkgs/applications/editors/jetbrains/versions.json48
-rw-r--r--pkgs/applications/editors/jupyter-kernels/octave/kernel.nix10
-rw-r--r--pkgs/applications/editors/jupyter-kernels/wolfram/default.nix22
-rw-r--r--pkgs/applications/editors/jupyter-kernels/wolfram/kernel.nix32
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names39
-rw-r--r--pkgs/applications/editors/lapce/default.nix30
-rw-r--r--pkgs/applications/editors/lapce/fix-version.patch31
-rw-r--r--pkgs/applications/editors/marker/default.nix5
-rw-r--r--pkgs/applications/editors/mg/default.nix4
-rw-r--r--pkgs/applications/editors/mle/default.nix12
-rw-r--r--pkgs/applications/editors/neovim/default.nix4
-rw-r--r--pkgs/applications/editors/neovim/neovide/default.nix12
-rw-r--r--pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock4
-rw-r--r--pkgs/applications/editors/neovim/ruby_provider/gemset.nix10
-rw-r--r--pkgs/applications/editors/oed/default.nix9
-rw-r--r--pkgs/applications/editors/pinegrow/default.nix4
-rw-r--r--pkgs/applications/editors/poke/default.nix4
-rw-r--r--pkgs/applications/editors/rstudio/default.nix2
-rw-r--r--pkgs/applications/editors/setzer/default.nix4
-rw-r--r--pkgs/applications/editors/vim/common.nix4
-rw-r--r--pkgs/applications/editors/vim/plugins/generated.nix2365
-rw-r--r--pkgs/applications/editors/vim/plugins/overrides.nix2
-rw-r--r--pkgs/applications/editors/vim/plugins/vim-plugin-names2024
-rw-r--r--pkgs/applications/editors/vscode/extensions/default.nix40
-rw-r--r--pkgs/applications/editors/vscode/generic.nix12
-rw-r--r--pkgs/applications/editors/vscode/vscode.nix12
-rw-r--r--pkgs/applications/editors/vscode/vscodium.nix10
-rw-r--r--pkgs/applications/emulators/basiliskii/default.nix28
-rw-r--r--pkgs/applications/emulators/basiliskii/remove-redhat-6-workaround-for-scsi-sg.h.patch10
-rw-r--r--pkgs/applications/emulators/bsnes/ares/default.nix (renamed from pkgs/applications/emulators/ares/default.nix)0
-rw-r--r--pkgs/applications/emulators/bsnes/ares/fix-ruby.patch (renamed from pkgs/applications/emulators/ares/fix-ruby.patch)0
-rw-r--r--pkgs/applications/emulators/bsnes/bsnes-hd/default.nix (renamed from pkgs/applications/emulators/bsnes-hd/default.nix)0
-rw-r--r--pkgs/applications/emulators/bsnes/bsnes-hd/macos-copy-app-to-prefix.patch (renamed from pkgs/applications/emulators/bsnes-hd/macos-copy-app-to-prefix.patch)0
-rw-r--r--pkgs/applications/emulators/bsnes/bsnes-hd/macos-replace-sips-with-png2icns.patch (renamed from pkgs/applications/emulators/bsnes-hd/macos-replace-sips-with-png2icns.patch)0
-rw-r--r--pkgs/applications/emulators/bsnes/higan/001-include-cmath.patch (renamed from pkgs/applications/emulators/higan/001-include-cmath.patch)0
-rw-r--r--pkgs/applications/emulators/bsnes/higan/002-sips-to-png2icns.patch (renamed from pkgs/applications/emulators/higan/002-sips-to-png2icns.patch)0
-rw-r--r--pkgs/applications/emulators/bsnes/higan/default.nix (renamed from pkgs/applications/emulators/higan/default.nix)0
-rw-r--r--pkgs/applications/emulators/commanderx16/emulator.nix12
-rw-r--r--pkgs/applications/emulators/commanderx16/rom.nix18
-rw-r--r--pkgs/applications/emulators/dolphin-emu/master.nix8
-rw-r--r--pkgs/applications/emulators/dolphin-emu/primehack.nix4
-rw-r--r--pkgs/applications/emulators/flycast/default.nix4
-rw-r--r--pkgs/applications/emulators/mame/0001-Revert-Added-PDF-documentation-to-dist.mak.patch37
-rw-r--r--pkgs/applications/emulators/mame/default.nix78
-rw-r--r--pkgs/applications/emulators/proton-caller/default.nix7
-rw-r--r--pkgs/applications/emulators/retroarch/cores.nix59
-rw-r--r--pkgs/applications/emulators/retroarch/default.nix33
-rw-r--r--pkgs/applications/emulators/retroarch/disable-menu-show-core-updater.patch13
-rw-r--r--pkgs/applications/emulators/retroarch/disable-menu_show_core_updater.patch (renamed from pkgs/applications/emulators/retroarch/0001-Disable-menu_show_core_updater.patch)2
-rw-r--r--pkgs/applications/emulators/retroarch/hashes.json289
-rwxr-xr-xpkgs/applications/emulators/retroarch/update_cores.py (renamed from pkgs/applications/emulators/retroarch/update.py)20
-rw-r--r--pkgs/applications/emulators/retroarch/use-fixed-paths-on-libretro_info_path.patch (renamed from pkgs/applications/emulators/retroarch/0002-Use-fixed-paths-on-libretro_info_path.patch)38
-rw-r--r--pkgs/applications/emulators/retroarch/wrapper.nix16
-rw-r--r--pkgs/applications/emulators/ryujinx/default.nix10
-rw-r--r--pkgs/applications/emulators/ryujinx/deps.nix19
-rwxr-xr-xpkgs/applications/emulators/ryujinx/updater.sh75
-rw-r--r--pkgs/applications/emulators/snes9x-gtk/default.nix37
-rw-r--r--pkgs/applications/emulators/snes9x/default.nix130
-rw-r--r--pkgs/applications/emulators/tinyemu/default.nix7
-rw-r--r--pkgs/applications/emulators/yuzu/base.nix86
-rw-r--r--pkgs/applications/emulators/yuzu/compatibility-list.json1
-rw-r--r--pkgs/applications/emulators/yuzu/default.nix32
-rw-r--r--pkgs/applications/emulators/yuzu/generic.nix157
-rwxr-xr-xpkgs/applications/emulators/yuzu/update.sh102
-rw-r--r--pkgs/applications/emulators/zesarux/default.nix8
-rw-r--r--pkgs/applications/finance/irpf/default.nix13
-rw-r--r--pkgs/applications/graphics/ImageMagick/7.0.nix17
-rw-r--r--pkgs/applications/graphics/apitrace/default.nix6
-rw-r--r--pkgs/applications/graphics/apitrace/glibc-2.34-compat.patch13
-rw-r--r--pkgs/applications/graphics/awesomebump/default.nix2
-rw-r--r--pkgs/applications/graphics/cloudcompare/default.nix57
-rw-r--r--pkgs/applications/graphics/cq-editor/default.nix2
-rw-r--r--pkgs/applications/graphics/darktable/default.nix2
-rw-r--r--pkgs/applications/graphics/drawing/default.nix11
-rw-r--r--pkgs/applications/graphics/drawio/default.nix4
-rw-r--r--pkgs/applications/graphics/foxotron/default.nix2
-rw-r--r--pkgs/applications/graphics/geeqie/default.nix4
-rw-r--r--pkgs/applications/graphics/gimp/plugins/default.nix41
-rw-r--r--pkgs/applications/graphics/gscan2pdf/default.nix6
-rw-r--r--pkgs/applications/graphics/hydrus/default.nix6
-rw-r--r--pkgs/applications/graphics/imgbrd-grabber/default.nix2
-rw-r--r--pkgs/applications/graphics/inkscape/default.nix1
-rw-r--r--pkgs/applications/graphics/jpegrescan/default.nix6
-rw-r--r--pkgs/applications/graphics/mypaint/default.nix10
-rw-r--r--pkgs/applications/graphics/openboard/default.nix7
-rw-r--r--pkgs/applications/graphics/openscad/default.nix4
-rw-r--r--pkgs/applications/graphics/pixeluvo/default.nix1
-rw-r--r--pkgs/applications/graphics/rawtherapee/default.nix3
-rw-r--r--pkgs/applications/graphics/rawtherapee/fix-6324.patch356
-rw-r--r--pkgs/applications/graphics/shotwell/default.nix4
-rw-r--r--pkgs/applications/graphics/skanpage/default.nix2
-rw-r--r--pkgs/applications/graphics/synfigstudio/default.nix4
-rw-r--r--pkgs/applications/graphics/unigine-sanctuary/default.nix97
-rw-r--r--pkgs/applications/graphics/unigine-tropics/default.nix95
-rw-r--r--pkgs/applications/graphics/unigine-valley/default.nix219
-rw-r--r--pkgs/applications/graphics/yed/default.nix4
-rw-r--r--pkgs/applications/kde/fetch.sh2
-rw-r--r--pkgs/applications/kde/kitinerary.nix11
-rw-r--r--pkgs/applications/kde/srcs.nix1840
-rw-r--r--pkgs/applications/misc/1password-gui/beta.nix132
-rw-r--r--pkgs/applications/misc/1password-gui/default.nix6
-rw-r--r--pkgs/applications/misc/1password/default.nix10
-rw-r--r--pkgs/applications/misc/ArchiSteamFarm/default.nix1
-rw-r--r--pkgs/applications/misc/ArchiSteamFarm/deps-aarch64-linux.nix35
-rw-r--r--pkgs/applications/misc/ArchiSteamFarm/deps-x86_64-linux.nix35
-rw-r--r--pkgs/applications/misc/ablog/default.nix4
-rw-r--r--pkgs/applications/misc/anytype/default.nix4
-rw-r--r--pkgs/applications/misc/archivy/default.nix12
-rw-r--r--pkgs/applications/misc/autospotting/default.nix1
-rw-r--r--pkgs/applications/misc/azuredatastudio/default.nix6
-rw-r--r--pkgs/applications/misc/bikeshed/default.nix77
-rw-r--r--pkgs/applications/misc/blender/default.nix4
-rw-r--r--pkgs/applications/misc/bottles/default.nix24
-rwxr-xr-xpkgs/applications/misc/bottles/update.py65
-rw-r--r--pkgs/applications/misc/buku/default.nix3
-rw-r--r--pkgs/applications/misc/calcoo/0001-javac-encoding.diff21
-rw-r--r--pkgs/applications/misc/calcoo/default.nix58
-rw-r--r--pkgs/applications/misc/calcurse/default.nix7
-rw-r--r--pkgs/applications/misc/catclock/default.nix1
-rw-r--r--pkgs/applications/misc/charm/default.nix8
-rw-r--r--pkgs/applications/misc/copyq/default.nix4
-rw-r--r--pkgs/applications/misc/cubiomes-viewer/default.nix4
-rw-r--r--pkgs/applications/misc/dasel/default.nix6
-rw-r--r--pkgs/applications/misc/debian-goodies/default.nix70
-rw-r--r--pkgs/applications/misc/dunst/default.nix4
-rw-r--r--pkgs/applications/misc/electrum-grs/default.nix24
-rw-r--r--pkgs/applications/misc/evtest/default.nix2
-rw-r--r--pkgs/applications/misc/faircamp/default.nix8
-rw-r--r--pkgs/applications/misc/firestarter/default.nix4
-rw-r--r--pkgs/applications/misc/fluidd/default.nix4
-rw-r--r--pkgs/applications/misc/foxitreader/default.nix1
-rw-r--r--pkgs/applications/misc/gallery-dl/default.nix4
-rw-r--r--pkgs/applications/misc/globe-cli/default.nix1
-rw-r--r--pkgs/applications/misc/gnome-firmware-updater/default.nix75
-rw-r--r--pkgs/applications/misc/gnome-firmware/default.nix63
-rw-r--r--pkgs/applications/misc/gnome-solanum/default.nix10
-rw-r--r--pkgs/applications/misc/gpsprune/default.nix4
-rw-r--r--pkgs/applications/misc/gremlin-console/default.nix4
-rw-r--r--pkgs/applications/misc/gsctl/default.nix20
-rw-r--r--pkgs/applications/misc/hello/default.nix7
-rw-r--r--pkgs/applications/misc/hubstaff/default.nix2
-rw-r--r--pkgs/applications/misc/hugo/default.nix12
-rw-r--r--pkgs/applications/misc/index-fm/default.nix2
-rw-r--r--pkgs/applications/misc/ipmiview/default.nix6
-rw-r--r--pkgs/applications/misc/join-desktop/default.nix73
-rw-r--r--pkgs/applications/misc/josm/default.nix8
-rw-r--r--pkgs/applications/misc/k4dirstat/default.nix4
-rw-r--r--pkgs/applications/misc/keylight-controller-mschneider82/default.nix53
-rw-r--r--pkgs/applications/misc/kjv/default.nix4
-rw-r--r--pkgs/applications/misc/kratos/default.nix6
-rw-r--r--pkgs/applications/misc/lutris/default.nix8
-rw-r--r--pkgs/applications/misc/masterpdfeditor/default.nix4
-rw-r--r--pkgs/applications/misc/mediainfo/default.nix4
-rw-r--r--pkgs/applications/misc/megacmd/default.nix11
-rw-r--r--pkgs/applications/misc/megasync/default.nix4
-rw-r--r--pkgs/applications/misc/mepo/default.nix42
-rw-r--r--pkgs/applications/misc/metadata-cleaner/default.nix4
-rw-r--r--pkgs/applications/misc/minigalaxy/default.nix4
-rw-r--r--pkgs/applications/misc/mob/default.nix4
-rw-r--r--pkgs/applications/misc/mop/default.nix15
-rw-r--r--pkgs/applications/misc/mop/deps.nix11
-rw-r--r--pkgs/applications/misc/multibootusb/default.nix2
-rw-r--r--pkgs/applications/misc/notejot/default.nix15
-rw-r--r--pkgs/applications/misc/nut/default.nix2
-rw-r--r--pkgs/applications/misc/obsidian/default.nix44
-rw-r--r--pkgs/applications/misc/octoprint/default.nix4
-rw-r--r--pkgs/applications/misc/otpclient/default.nix4
-rw-r--r--pkgs/applications/misc/pdfslicer/default.nix6
-rw-r--r--pkgs/applications/misc/pdfstudio/default.nix8
-rw-r--r--pkgs/applications/misc/polybar/default.nix14
-rw-r--r--pkgs/applications/misc/polybar/remove-hardcoded-etc.diff13
-rw-r--r--pkgs/applications/misc/portfolio-filemanager/default.nix8
-rw-r--r--pkgs/applications/misc/prusa-slicer/super-slicer.nix4
-rw-r--r--pkgs/applications/misc/pure-maps/default.nix5
-rw-r--r--pkgs/applications/misc/pytrainer/default.nix4
-rw-r--r--pkgs/applications/misc/ranger/default.nix17
-rw-r--r--pkgs/applications/misc/rm-improved/default.nix1
-rw-r--r--pkgs/applications/misc/sampler/default.nix7
-rw-r--r--pkgs/applications/misc/seatd/default.nix10
-rw-r--r--pkgs/applications/misc/sigi/default.nix17
-rw-r--r--pkgs/applications/misc/sioyek/default.nix56
-rw-r--r--pkgs/applications/misc/skate/default.nix6
-rw-r--r--pkgs/applications/misc/slides/default.nix9
-rw-r--r--pkgs/applications/misc/stork/default.nix6
-rw-r--r--pkgs/applications/misc/taskwarrior/default.nix4
-rw-r--r--pkgs/applications/misc/terminal-typeracer/default.nix1
-rw-r--r--pkgs/applications/misc/timewarrior/default.nix1
-rw-r--r--pkgs/applications/misc/toipe/default.nix20
-rw-r--r--pkgs/applications/misc/trenchbroom/default.nix13
-rw-r--r--pkgs/applications/misc/tty-solitaire/default.nix1
-rw-r--r--pkgs/applications/misc/tvbrowser/bin.nix2
-rw-r--r--pkgs/applications/misc/upwork/default.nix18
-rw-r--r--pkgs/applications/misc/veracrypt/default.nix4
-rw-r--r--pkgs/applications/misc/xmrig/default.nix4
-rw-r--r--pkgs/applications/misc/xmrig/moneroocean.nix4
-rw-r--r--pkgs/applications/misc/xteddy/default.nix2
-rw-r--r--pkgs/applications/misc/ydict/default.nix28
-rw-r--r--pkgs/applications/misc/zathura/core/default.nix4
-rw-r--r--pkgs/applications/misc/zettlr/default.nix4
-rw-r--r--pkgs/applications/misc/zola/default.nix4
-rw-r--r--pkgs/applications/networking/alpnpass/default.nix34
-rw-r--r--pkgs/applications/networking/appgate-sdp/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/brave/default.nix7
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix22
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix4
-rwxr-xr-xpkgs/applications/networking/browsers/chromium/get-commit-message.py6
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.json42
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix786
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/release_sources.nix786
-rw-r--r--pkgs/applications/networking/browsers/firefox/common.nix5
-rw-r--r--pkgs/applications/networking/browsers/firefox/librewolf/src.json10
-rw-r--r--pkgs/applications/networking/browsers/firefox/packages.nix8
-rw-r--r--pkgs/applications/networking/browsers/lagrange/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/links2/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/palemoon/default.nix8
-rw-r--r--pkgs/applications/networking/browsers/qtchan/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/qutebrowser/default.nix8
-rw-r--r--pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/vieb/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix6
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/widevine.nix4
-rw-r--r--pkgs/applications/networking/c14/default.nix22
-rw-r--r--pkgs/applications/networking/cloudflared/default.nix23
-rw-r--r--pkgs/applications/networking/cluster/argo/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/argocd-autopilot/default.nix9
-rw-r--r--pkgs/applications/networking/cluster/argocd/default.nix18
-rw-r--r--pkgs/applications/networking/cluster/arkade/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/atlantis/default.nix13
-rw-r--r--pkgs/applications/networking/cluster/cilium/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/cmctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/driftctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/fluxcd/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/hadoop/default.nix5
-rw-r--r--pkgs/applications/networking/cluster/helm-docs/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/helm/default.nix30
-rw-r--r--pkgs/applications/networking/cluster/helmfile/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/istioctl/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/k3s/default.nix31
-rw-r--r--pkgs/applications/networking/cluster/k3s/patches/0002-Don-t-build-a-static-binary-in-package-cli.patch37
-rw-r--r--pkgs/applications/networking/cluster/kompose/default.nix24
-rw-r--r--pkgs/applications/networking/cluster/kops/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/krane/Gemfile.lock24
-rw-r--r--pkgs/applications/networking/cluster/krane/gemset.nix40
-rw-r--r--pkgs/applications/networking/cluster/kube3d/default.nix3
-rw-r--r--pkgs/applications/networking/cluster/kubeless/default.nix38
-rw-r--r--pkgs/applications/networking/cluster/kubernetes/kubectl.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubeseal/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/kuttl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/nomad/1.1.nix6
-rw-r--r--pkgs/applications/networking/cluster/ocm/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/odo/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/openshift/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/pachyderm/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/pgo-client/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/popeye/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/sonobuoy/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/spark/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix7
-rw-r--r--pkgs/applications/networking/cluster/starboard/default.nix24
-rw-r--r--pkgs/applications/networking/cluster/talosctl/default.nix20
-rw-r--r--pkgs/applications/networking/cluster/tanka/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/tektoncd-cli/default.nix3
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/providers.json411
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix9
-rw-r--r--pkgs/applications/networking/cluster/waypoint/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/werf/default.nix15
-rw-r--r--pkgs/applications/networking/flexget/default.nix5
-rw-r--r--pkgs/applications/networking/gns3/default.nix15
-rw-r--r--pkgs/applications/networking/gns3/gui.nix36
-rw-r--r--pkgs/applications/networking/gns3/server.nix58
-rw-r--r--pkgs/applications/networking/ids/zeek/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/alfaview/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/bluejeans/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/caprine-bin/build-from-appimage.nix50
-rw-r--r--pkgs/applications/networking/instant-messengers/caprine-bin/build-from-dmg.nix35
-rw-r--r--pkgs/applications/networking/instant-messengers/caprine-bin/default.nix25
-rw-r--r--pkgs/applications/networking/instant-messengers/chatty/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix10
-rw-r--r--pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json4
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-desktop-package.json2
-rw-r--r--pkgs/applications/networking/instant-messengers/element/pin.json8
-rw-r--r--pkgs/applications/networking/instant-messengers/ferdi/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/franz/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/gajim/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/gotktrix/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix3
-rw-r--r--pkgs/applications/networking/instant-messengers/kaidan/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/kdeltachat/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/pond/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/ripcord/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/slack/default.nix14
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix22
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kf594.patch57
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kotato-10.12-sdk.patch53
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt-10.12-sdk.patch21
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix22
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix23
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix8
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/kf594.diff57
-rw-r--r--pkgs/applications/networking/instant-messengers/threema-desktop/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/torchat/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/wire-desktop/default.nix11
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/zulip/default.nix4
-rw-r--r--pkgs/applications/networking/ipfs/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/aerc/default.nix37
-rw-r--r--pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch142
-rw-r--r--pkgs/applications/networking/mailreaders/claws-mail/default.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/evolution/evolution/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/mailspring/default.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/mutt/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/neomutt/default.nix14
-rw-r--r--pkgs/applications/networking/mailreaders/notmuch/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix522
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/packages.nix4
-rw-r--r--pkgs/applications/networking/n8n/node-packages.nix1137
-rw-r--r--pkgs/applications/networking/nextcloud-client/default.nix20
-rw-r--r--pkgs/applications/networking/nextdns/default.nix8
-rw-r--r--pkgs/applications/networking/owncloud-client/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/jesec-rtorrent/default.nix (renamed from pkgs/tools/networking/p2p/jesec-rtorrent/rtorrent.nix)6
-rw-r--r--pkgs/applications/networking/p2p/jesec-rtorrent/libtorrent.nix (renamed from pkgs/tools/networking/p2p/jesec-rtorrent/libtorrent.nix)10
-rw-r--r--pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix (renamed from pkgs/tools/networking/p2p/rakshasa-rtorrent/rtorrent.nix)0
-rw-r--r--pkgs/applications/networking/p2p/rakshasa-rtorrent/libtorrent.nix (renamed from pkgs/tools/networking/p2p/rakshasa-rtorrent/libtorrent.nix)0
-rw-r--r--pkgs/applications/networking/p2p/tribler/default.nix4
-rw-r--r--pkgs/applications/networking/ping/default.nix76
-rw-r--r--pkgs/applications/networking/pjsip/default.nix8
-rw-r--r--pkgs/applications/networking/protonvpn-gui/default.nix6
-rw-r--r--pkgs/applications/networking/remote/freerdp/default.nix4
-rw-r--r--pkgs/applications/networking/remote/rustdesk/default.nix2
-rw-r--r--pkgs/applications/networking/remote/vmware-horizon-client/default.nix6
-rw-r--r--pkgs/applications/networking/resilio-sync/default.nix38
-rw-r--r--pkgs/applications/networking/seahub/default.nix17
-rw-r--r--pkgs/applications/networking/seaweedfs/default.nix11
-rw-r--r--pkgs/applications/networking/shellhub-agent/default.nix6
-rw-r--r--pkgs/applications/networking/sniffers/wireshark/default.nix25
-rw-r--r--pkgs/applications/networking/soju/default.nix6
-rw-r--r--pkgs/applications/networking/syncplay/default.nix10
-rw-r--r--pkgs/applications/networking/syncthing/default.nix6
-rw-r--r--pkgs/applications/networking/synology-drive-client/default.nix8
-rw-r--r--pkgs/applications/networking/tetrd/default.nix2
-rw-r--r--pkgs/applications/office/banking/default.nix18
-rw-r--r--pkgs/applications/office/buho/default.nix58
-rw-r--r--pkgs/applications/office/fava/default.nix18
-rw-r--r--pkgs/applications/office/foliate/default.nix1
-rw-r--r--pkgs/applications/office/gnumeric/default.nix5
-rw-r--r--pkgs/applications/office/jameica/default.nix2
-rw-r--r--pkgs/applications/office/khronos/default.nix11
-rw-r--r--pkgs/applications/office/ledger/default.nix4
-rw-r--r--pkgs/applications/office/morgen/default.nix4
-rw-r--r--pkgs/applications/office/paperless-ngx/default.nix (renamed from pkgs/applications/office/paperless-ng/default.nix)50
-rw-r--r--pkgs/applications/office/paperwork/paperwork-gtk.nix2
-rw-r--r--pkgs/applications/office/portfolio/default.nix6
-rw-r--r--pkgs/applications/office/qownnotes/default.nix4
-rw-r--r--pkgs/applications/office/trilium/default.nix6
-rw-r--r--pkgs/applications/office/vnote/default.nix4
-rw-r--r--pkgs/applications/radio/cubicsdr/default.nix24
-rw-r--r--pkgs/applications/radio/flex-ncat/default.nix1
-rw-r--r--pkgs/applications/radio/flrig/default.nix6
-rw-r--r--pkgs/applications/radio/gnss-sdr/default.nix6
-rw-r--r--pkgs/applications/radio/gnuradio/3.9.nix10
-rw-r--r--pkgs/applications/radio/gnuradio/default.nix13
-rw-r--r--pkgs/applications/radio/gqrx/default.nix4
-rw-r--r--pkgs/applications/radio/rtl-ais/default.nix1
-rw-r--r--pkgs/applications/radio/splat/default.nix55
-rw-r--r--pkgs/applications/science/astronomy/astrolabe-generator/default.nix1
-rw-r--r--pkgs/applications/science/astronomy/stellarium/default.nix4
-rw-r--r--pkgs/applications/science/biology/bayescan/default.nix1
-rw-r--r--pkgs/applications/science/biology/clustal-omega/default.nix1
-rw-r--r--pkgs/applications/science/biology/cmtk/default.nix5
-rw-r--r--pkgs/applications/science/biology/dcm2niix/default.nix49
-rw-r--r--pkgs/applications/science/biology/dcm2niix/dont-fetch-external-libs.patch36
-rw-r--r--pkgs/applications/science/biology/eggnog-mapper/default.nix46
-rw-r--r--pkgs/applications/science/biology/picard-tools/default.nix1
-rw-r--r--pkgs/applications/science/chemistry/jmol/default.nix4
-rw-r--r--pkgs/applications/science/electronics/verilator/default.nix4
-rw-r--r--pkgs/applications/science/engineering/brmodelo/default.nix109
-rw-r--r--pkgs/applications/science/logic/abc/default.nix6
-rw-r--r--pkgs/applications/science/logic/coq/default.nix28
-rw-r--r--pkgs/applications/science/logic/cvc5/default.nix34
-rw-r--r--pkgs/applications/science/logic/elan/default.nix6
-rw-r--r--pkgs/applications/science/logic/fast-downward/default.nix31
-rw-r--r--pkgs/applications/science/logic/isabelle/default.nix33
-rw-r--r--pkgs/applications/science/logic/key/default.nix5
-rw-r--r--pkgs/applications/science/logic/naproche/default.nix6
-rw-r--r--pkgs/applications/science/logic/potassco/clingcon.nix5
-rw-r--r--pkgs/applications/science/logic/symbiyosys/default.nix1
-rw-r--r--pkgs/applications/science/logic/symfpu/default.nix26
-rw-r--r--pkgs/applications/science/logic/tlaplus/toolbox.nix2
-rw-r--r--pkgs/applications/science/logic/z3/default.nix132
-rw-r--r--pkgs/applications/science/machine-learning/finalfusion-utils/default.nix1
-rw-r--r--pkgs/applications/science/math/caffe/default.nix11
-rw-r--r--pkgs/applications/science/math/calc/default.nix4
-rw-r--r--pkgs/applications/science/math/calculix/calculix.patch19
-rw-r--r--pkgs/applications/science/math/calculix/default.nix9
-rw-r--r--pkgs/applications/science/math/cntk/default.nix8
-rw-r--r--pkgs/applications/science/math/giac/default.nix28
-rw-r--r--pkgs/applications/science/math/mxnet/default.nix16
-rw-r--r--pkgs/applications/science/math/qalculate-gtk/default.nix4
-rw-r--r--pkgs/applications/science/math/sage/patches/docutils-0.18.1-deprecation.patch13
-rw-r--r--pkgs/applications/science/math/sage/sage-env.nix2
-rw-r--r--pkgs/applications/science/math/sage/sage-src.nix62
-rw-r--r--pkgs/applications/science/math/sage/sagelib.nix11
-rw-r--r--pkgs/applications/science/math/wolfram-engine/default.nix143
-rw-r--r--pkgs/applications/science/math/wolfram-engine/l10ns.nix51
-rw-r--r--pkgs/applications/science/math/wolfram-engine/notebook.nix9
-rw-r--r--pkgs/applications/science/math/wxmaxima/default.nix4
-rw-r--r--pkgs/applications/science/medicine/xmedcon/default.nix4
-rw-r--r--pkgs/applications/science/misc/bada-bib/default.nix6
-rw-r--r--pkgs/applications/science/misc/cwltool/default.nix4
-rw-r--r--pkgs/applications/science/misc/fityk/default.nix4
-rw-r--r--pkgs/applications/science/misc/netlogo/default.nix2
-rw-r--r--pkgs/applications/science/misc/root/5.nix5
-rw-r--r--pkgs/applications/science/molecular-dynamics/gromacs/default.nix4
-rw-r--r--pkgs/applications/science/physics/xfitter/default.nix64
-rw-r--r--pkgs/applications/science/physics/xfitter/undefined_behavior.patch454
-rw-r--r--pkgs/applications/science/programming/jflap/default.nix32
-rw-r--r--pkgs/applications/science/robotics/mavproxy/default.nix4
-rw-r--r--pkgs/applications/science/robotics/sumorobot-manager/default.nix2
-rw-r--r--pkgs/applications/terminal-emulators/hyper/default.nix4
-rw-r--r--pkgs/applications/terminal-emulators/syncterm/default.nix2
-rw-r--r--pkgs/applications/terminal-emulators/wezterm/default.nix11
-rw-r--r--pkgs/applications/version-management/commit-formatter/default.nix1
-rw-r--r--pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix1
-rw-r--r--pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix1
-rw-r--r--pkgs/applications/version-management/git-and-tools/gh/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/ghorg/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-annex-utils/default.nix1
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-branchless/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-crypt/default.nix24
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-extras/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix1
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-machete/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix39
-rw-r--r--pkgs/applications/version-management/git-and-tools/glab/default.nix11
-rw-r--r--pkgs/applications/version-management/git-and-tools/hut/default.nix13
-rw-r--r--pkgs/applications/version-management/git-and-tools/scmpuff/default.nix23
-rw-r--r--pkgs/applications/version-management/git-and-tools/scmpuff/deps.nix273
-rw-r--r--pkgs/applications/version-management/git-lfs/default.nix4
-rw-r--r--pkgs/applications/version-management/git-repo/default.nix4
-rw-r--r--pkgs/applications/version-management/git-review/default.nix4
-rw-r--r--pkgs/applications/version-management/git-sizer/default.nix21
-rw-r--r--pkgs/applications/version-management/gitea/default.nix4
-rw-r--r--pkgs/applications/version-management/github-desktop/default.nix4
-rw-r--r--pkgs/applications/version-management/gitkraken/default.nix8
-rw-r--r--pkgs/applications/version-management/gitlab/data.json10
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix2
-rw-r--r--pkgs/applications/version-management/gitoxide/default.nix6
-rw-r--r--pkgs/applications/version-management/jujutsu/default.nix5
-rw-r--r--pkgs/applications/version-management/mercurial/default.nix11
-rw-r--r--pkgs/applications/version-management/mercurial/fix-rhg-type-aarch64.patch12
-rw-r--r--pkgs/applications/version-management/monotone/default.nix2
-rw-r--r--pkgs/applications/version-management/p4/default.nix2
-rw-r--r--pkgs/applications/version-management/pijul/default.nix6
-rw-r--r--pkgs/applications/version-management/rcs/default.nix2
-rw-r--r--pkgs/applications/version-management/redmine/default.nix2
-rw-r--r--pkgs/applications/version-management/subversion/default.nix12
-rw-r--r--pkgs/applications/version-management/yadm/default.nix4
-rw-r--r--pkgs/applications/video/ani-cli/default.nix4
-rw-r--r--pkgs/applications/video/celluloid/default.nix6
-rw-r--r--pkgs/applications/video/epgstation/default.nix8
-rw-r--r--pkgs/applications/video/epgstation/update.nix6
-rw-r--r--pkgs/applications/video/f1viewer/default.nix4
-rw-r--r--pkgs/applications/video/ffmpeg-normalize/default.nix4
-rw-r--r--pkgs/applications/video/handbrake/default.nix4
-rw-r--r--pkgs/applications/video/hdhomerun-config-gui/default.nix4
-rw-r--r--pkgs/applications/video/kodi/add-KODI_WEBSERVER_EXTRA_WHITELIST.patch88
-rw-r--r--pkgs/applications/video/kodi/unwrapped.nix15
-rw-r--r--pkgs/applications/video/kodi/wrapper.nix6
-rw-r--r--pkgs/applications/video/mirakurun/default.nix10
-rw-r--r--pkgs/applications/video/mirakurun/update.nix10
-rw-r--r--pkgs/applications/video/mpv/scripts/autocrop.nix19
-rw-r--r--pkgs/applications/video/mpv/scripts/autodeint.nix19
-rw-r--r--pkgs/applications/video/obs-studio/default.nix4
-rw-r--r--pkgs/applications/video/obs-studio/plugins/default.nix1
-rw-r--r--pkgs/applications/video/obs-studio/plugins/obs-vkcapture.nix35
-rw-r--r--pkgs/applications/video/pitivi/default.nix8
-rw-r--r--pkgs/applications/video/quvi/library.nix1
-rw-r--r--pkgs/applications/video/quvi/scripts.nix1
-rw-r--r--pkgs/applications/video/quvi/tool.nix1
-rw-r--r--pkgs/applications/video/webcamoid/default.nix13
-rw-r--r--pkgs/applications/video/webtorrent_desktop/default.nix155
-rw-r--r--pkgs/applications/virtualization/cloud-hypervisor/default.nix6
-rw-r--r--pkgs/applications/virtualization/crosvm/Cargo.lock53
-rw-r--r--pkgs/applications/virtualization/crosvm/generate-cargo.sh7
-rwxr-xr-xpkgs/applications/virtualization/crosvm/update.py12
-rw-r--r--pkgs/applications/virtualization/crosvm/upstream-info.json10
-rw-r--r--pkgs/applications/virtualization/docker-slim/default.nix4
-rw-r--r--pkgs/applications/virtualization/docker/buildx.nix4
-rw-r--r--pkgs/applications/virtualization/docker/compose.nix4
-rw-r--r--pkgs/applications/virtualization/ecs-agent/default.nix1
-rw-r--r--pkgs/applications/virtualization/firectl/default.nix12
-rw-r--r--pkgs/applications/virtualization/firectl/gomod.patch15
-rw-r--r--pkgs/applications/virtualization/imgcrypt/default.nix4
-rw-r--r--pkgs/applications/virtualization/kvmtool/default.nix23
-rw-r--r--pkgs/applications/virtualization/podman-tui/default.nix4
-rw-r--r--pkgs/applications/virtualization/qemu/allow-virtfs-on-darwin.patch77
-rw-r--r--pkgs/applications/virtualization/qemu/default.nix88
-rw-r--r--pkgs/applications/virtualization/qemu/provide-fallback-for-utimensat.patch8
-rw-r--r--pkgs/applications/virtualization/qemu/rename-9p-util.patch54
-rw-r--r--pkgs/applications/virtualization/qemu/revert-ui-cocoa-add-clipboard-support.patch208
-rw-r--r--pkgs/applications/virtualization/virt-manager/default.nix14
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/default.nix10
-rw-r--r--pkgs/applications/virtualization/x11docker/default.nix4
-rw-r--r--pkgs/applications/window-managers/afterstep/default.nix14
-rw-r--r--pkgs/applications/window-managers/berry/default.nix4
-rw-r--r--pkgs/applications/window-managers/herbstluftwm/default.nix13
-rw-r--r--pkgs/applications/window-managers/i3/status-rust.nix6
-rw-r--r--pkgs/applications/window-managers/phosh/default.nix4
-rw-r--r--pkgs/applications/window-managers/sway/idle.nix2
-rw-r--r--pkgs/applications/window-managers/sway/lock-effects.nix8
-rw-r--r--pkgs/applications/window-managers/wmii-hg/default.nix46
-rw-r--r--pkgs/applications/window-managers/wmii/default.nix72
-rw-r--r--pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix2
-rw-r--r--pkgs/build-support/build-graalvm-native-image/default.nix2
-rw-r--r--pkgs/build-support/docker/default.nix18
-rw-r--r--pkgs/build-support/docker/examples.nix2
-rw-r--r--pkgs/build-support/emacs/wrapper.nix18
-rw-r--r--pkgs/build-support/emacs/wrapper.sh2
-rw-r--r--pkgs/build-support/fetchgit/default.nix3
-rw-r--r--pkgs/build-support/fetchurl/default.nix2
-rw-r--r--pkgs/build-support/fetchurl/mirrors.nix1
-rw-r--r--pkgs/build-support/kernel/make-initrd-ng.nix16
-rw-r--r--pkgs/build-support/kernel/make-initrd.nix4
-rw-r--r--pkgs/build-support/kernel/make-initrd.sh2
-rw-r--r--pkgs/build-support/make-darwin-bundle/default.nix8
-rw-r--r--pkgs/build-support/make-desktopitem/default.nix11
-rw-r--r--pkgs/build-support/ocaml/dune.nix4
-rw-r--r--pkgs/build-support/ocaml/oasis.nix2
-rw-r--r--pkgs/build-support/rust/build-rust-crate/default.nix9
-rw-r--r--pkgs/build-support/setup-hooks/auto-patchelf.py40
-rw-r--r--pkgs/build-support/setup-hooks/auto-patchelf.sh10
-rw-r--r--pkgs/build-support/setup-hooks/copy-desktop-items.sh9
-rw-r--r--pkgs/build-support/setup-hooks/desktop-to-darwin-bundle.sh32
-rw-r--r--pkgs/build-support/setup-hooks/make-wrapper.sh5
-rw-r--r--pkgs/build-support/setup-hooks/postgresql-test-hook/default.nix9
-rw-r--r--pkgs/build-support/setup-hooks/postgresql-test-hook/postgresql-test-hook.sh79
-rw-r--r--pkgs/build-support/setup-hooks/postgresql-test-hook/test.nix27
-rw-r--r--pkgs/build-support/setup-hooks/wrap-gapps-hook/wrap-gapps-hook.sh4
-rw-r--r--pkgs/build-support/testers/default.nix18
-rw-r--r--pkgs/build-support/testers/test-equal-derivation.nix (renamed from pkgs/build-support/test-equal-derivation.nix)19
-rw-r--r--pkgs/build-support/trivial-builders.nix48
-rw-r--r--pkgs/build-support/trivial-builders/test/write-text-file.nix34
-rw-r--r--pkgs/common-updater/git-updater.nix8
-rwxr-xr-xpkgs/common-updater/scripts/list-git-tags2
-rw-r--r--pkgs/data/documentation/scheme-manpages/default.nix6
-rw-r--r--pkgs/data/fonts/comic-mono/comic-mono-weight.conf14
-rw-r--r--pkgs/data/fonts/comic-mono/default.nix35
-rw-r--r--pkgs/data/fonts/iosevka/bin.nix3
-rw-r--r--pkgs/data/fonts/kacst/default.nix22
-rw-r--r--pkgs/data/fonts/material-design-icons/default.nix9
-rw-r--r--pkgs/data/fonts/sarasa-gothic/default.nix4
-rw-r--r--pkgs/data/fonts/sudo/default.nix4
-rw-r--r--pkgs/data/fonts/times-newer-roman/default.nix2
-rw-r--r--pkgs/data/fonts/unifont/default.nix10
-rw-r--r--pkgs/data/fonts/unifont_upper/default.nix4
-rw-r--r--pkgs/data/icons/elementary-xfce-icon-theme/default.nix6
-rw-r--r--pkgs/data/icons/hicolor-icon-theme/default.nix5
-rw-r--r--pkgs/data/misc/cacert/default.nix4
-rwxr-xr-xpkgs/data/misc/cacert/update.sh17
-rw-r--r--pkgs/data/misc/cldr-emoji-annotation/default.nix27
-rw-r--r--pkgs/data/misc/dns-root-data/default.nix3
-rw-r--r--pkgs/data/misc/freepats/default.nix5
-rw-r--r--pkgs/data/misc/hackage/default.nix3
-rw-r--r--pkgs/data/misc/hackage/pin.json8
-rw-r--r--pkgs/data/misc/iana-etc/default.nix5
-rw-r--r--pkgs/data/misc/nixos-artwork/wallpapers.nix16
-rw-r--r--pkgs/data/misc/shared-mime-info/default.nix1
-rw-r--r--pkgs/data/misc/tzdata/default.nix6
-rw-r--r--pkgs/data/misc/wireless-regdb/default.nix4
-rw-r--r--pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/default.nix7
-rw-r--r--pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix11
-rw-r--r--pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix7
-rw-r--r--pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix7
-rw-r--r--pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.4.nix7
-rw-r--r--pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix7
-rw-r--r--pkgs/data/sgml+xml/schemas/xml-dtd/docbook/generic.nix10
-rw-r--r--pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix5
-rw-r--r--pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix6
-rw-r--r--pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/fix-man-options-duplication.patch11
-rw-r--r--pkgs/data/themes/arc/default.nix4
-rw-r--r--pkgs/data/themes/flat-remix-gnome/default.nix8
-rw-r--r--pkgs/data/themes/flat-remix-gtk/default.nix4
-rw-r--r--pkgs/data/themes/gnome-breeze/default.nix29
-rw-r--r--pkgs/data/themes/yaru/default.nix7
-rw-r--r--pkgs/desktops/cdesktopenv/default.nix13
-rw-r--r--pkgs/desktops/gnome-2/bindings/gnome-python/default.nix8
-rw-r--r--pkgs/desktops/gnome-2/desktop/scrollkeeper/default.nix10
-rw-r--r--pkgs/desktops/gnome-2/platform/ORBit2/default.nix6
-rw-r--r--pkgs/desktops/gnome-2/platform/gnome-common/default.nix8
-rw-r--r--pkgs/desktops/gnome-2/platform/gnome-mime-data/default.nix9
-rw-r--r--pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix8
-rw-r--r--pkgs/desktops/gnome-2/platform/gtkhtml/default.nix7
-rw-r--r--pkgs/desktops/gnome-2/platform/libIDL/default.nix8
-rw-r--r--pkgs/desktops/gnome-2/platform/libart_lgpl/default.nix7
-rw-r--r--pkgs/desktops/gnome-2/platform/libbonobo/default.nix8
-rw-r--r--pkgs/desktops/gnome-2/platform/libbonoboui/default.nix8
-rw-r--r--pkgs/desktops/gnome-2/platform/libglade/default.nix7
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnome/default.nix8
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnomecanvas/default.nix8
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnomecanvasmm/default.nix9
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnomecups/default.nix7
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnomeprint/default.nix5
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnomeprintui/default.nix9
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnomeui/default.nix8
-rw-r--r--pkgs/desktops/gnome-2/platform/libgtkhtml/default.nix9
-rw-r--r--pkgs/desktops/gnome/apps/gedit/default.nix7
-rw-r--r--pkgs/desktops/gnome/apps/ghex/default.nix35
-rw-r--r--pkgs/desktops/gnome/apps/gnome-boxes/default.nix7
-rw-r--r--pkgs/desktops/gnome/apps/gnome-boxes/fix-gir-lib-path.patch22
-rw-r--r--pkgs/desktops/gnome/apps/gnome-connections/default.nix4
-rw-r--r--pkgs/desktops/gnome/apps/gnome-maps/default.nix15
-rw-r--r--pkgs/desktops/gnome/apps/gnome-music/default.nix9
-rw-r--r--pkgs/desktops/gnome/apps/gnome-nettool/default.nix72
-rw-r--r--pkgs/desktops/gnome/apps/gnome-text-editor/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/eog/default.nix11
-rw-r--r--pkgs/desktops/gnome/core/eog/fix-gir-lib-path.patch13
-rw-r--r--pkgs/desktops/gnome/core/epiphany/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/evince/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/evolution-data-server/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-initial-setup/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/mutter/3.38/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/mutter/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/nautilus/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/simple-scan/default.nix7
-rw-r--r--pkgs/desktops/gnome/core/sushi/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/zenity/default.nix4
-rw-r--r--pkgs/desktops/gnome/default.nix15
-rw-r--r--pkgs/desktops/gnome/extensions/arcmenu/default.nix4
-rw-r--r--pkgs/desktops/gnome/extensions/collisions.json12
-rw-r--r--pkgs/desktops/gnome/extensions/extensionRenames.nix18
-rw-r--r--pkgs/desktops/gnome/extensions/extensions.json332
-rw-r--r--pkgs/desktops/gnome/extensions/impatience/default.nix6
-rw-r--r--pkgs/desktops/gnome/extensions/manuallyPackaged.nix1
-rw-r--r--pkgs/desktops/gnome/extensions/night-theme-switcher/default.nix35
-rw-r--r--pkgs/desktops/gnome/extensions/system-monitor/default.nix35
-rwxr-xr-xpkgs/desktops/gnome/extensions/update-extensions.py111
-rw-r--r--pkgs/desktops/gnome/games/hitori/default.nix16
-rw-r--r--pkgs/desktops/gnome/games/swell-foop/default.nix7
-rw-r--r--pkgs/desktops/gnome/games/tali/default.nix4
-rw-r--r--pkgs/desktops/mate/caja-extensions/default.nix18
-rw-r--r--pkgs/desktops/mate/caja-extensions/hardcode-gsettings.patch169
-rw-r--r--pkgs/desktops/mate/default.nix2
-rw-r--r--pkgs/desktops/mate/mate-control-center/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-panel/default.nix7
-rw-r--r--pkgs/desktops/mate/mate-settings-daemon/wrapped.nix22
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-code/default.nix14
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/gala/default.nix19
-rw-r--r--pkgs/desktops/pantheon/services/elementary-notifications/default.nix4
-rw-r--r--pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix4
-rw-r--r--pkgs/desktops/plasma-5/3rdparty/kwin/scripts/dynamic-workspaces.nix2
-rw-r--r--pkgs/desktops/xfce/applications/mousepad/default.nix4
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-terminal/default.nix4
-rw-r--r--pkgs/desktops/xfce/core/thunar/default.nix4
-rw-r--r--pkgs/desktops/xfce/core/xfce4-panel/default.nix4
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin/default.nix4
-rw-r--r--pkgs/development/beam-modules/elvis-erlang/default.nix3
-rw-r--r--pkgs/development/beam-modules/erlang-ls/default.nix6
-rwxr-xr-xpkgs/development/compilers/adoptopenjdk-bin/generate-sources.py1
-rw-r--r--pkgs/development/compilers/adoptopenjdk-bin/jdk-darwin-base.nix7
-rw-r--r--pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix6
-rw-r--r--pkgs/development/compilers/adoptopenjdk-bin/sources.json344
-rw-r--r--pkgs/development/compilers/alan/2.nix31
-rw-r--r--pkgs/development/compilers/alan/default.nix48
-rw-r--r--pkgs/development/compilers/algol68g/default.nix1
-rw-r--r--pkgs/development/compilers/bluespec/default.nix18
-rw-r--r--pkgs/development/compilers/chicken/5/chicken.nix7
-rw-r--r--pkgs/development/compilers/chicken/5/eggs.nix54
-rw-r--r--pkgs/development/compilers/chicken/5/eggs.scm3
-rw-r--r--pkgs/development/compilers/coreclr/default.nix100
-rw-r--r--pkgs/development/compilers/crystal/build-package.nix6
-rw-r--r--pkgs/development/compilers/crystal/default.nix2
-rw-r--r--pkgs/development/compilers/cudatoolkit/auto-add-opengl-runpath-hook.sh14
-rw-r--r--pkgs/development/compilers/cudatoolkit/common.nix1
-rw-r--r--pkgs/development/compilers/cudatoolkit/default.nix94
-rw-r--r--pkgs/development/compilers/cudatoolkit/extension.nix15
-rw-r--r--pkgs/development/compilers/cudatoolkit/redist/build-cuda-redist-package.nix51
-rw-r--r--pkgs/development/compilers/cudatoolkit/redist/extension.nix32
-rw-r--r--pkgs/development/compilers/cudatoolkit/redist/manifests/redistrib_11.4.4.json862
-rw-r--r--pkgs/development/compilers/cudatoolkit/redist/manifests/redistrib_11.5.2.json873
-rw-r--r--pkgs/development/compilers/cudatoolkit/redist/manifests/redistrib_11.6.2.json873
-rw-r--r--pkgs/development/compilers/cudatoolkit/redist/overrides.nix72
-rw-r--r--pkgs/development/compilers/cudatoolkit/versions.toml61
-rw-r--r--pkgs/development/compilers/dmd/binary.nix5
-rw-r--r--pkgs/development/compilers/dotnet/default.nix54
-rw-r--r--pkgs/development/compilers/elm/default.nix12
-rw-r--r--pkgs/development/compilers/fennel/default.nix4
-rw-r--r--pkgs/development/compilers/gcc/10/default.nix21
-rw-r--r--pkgs/development/compilers/gcc/10/gcc10-asan-glibc-2.34.patch70
-rw-r--r--pkgs/development/compilers/gcc/11/default.nix9
-rw-r--r--pkgs/development/compilers/gcc/4.8/default.nix11
-rw-r--r--pkgs/development/compilers/gcc/4.9/default.nix11
-rw-r--r--pkgs/development/compilers/gcc/6/default.nix11
-rw-r--r--pkgs/development/compilers/gcc/6/gnat-glibc234.patch30
-rw-r--r--pkgs/development/compilers/gcc/7/default.nix13
-rw-r--r--pkgs/development/compilers/gcc/7/gcc8-asan-glibc-2.34.patch70
-rw-r--r--pkgs/development/compilers/gcc/8/default.nix10
-rw-r--r--pkgs/development/compilers/gcc/9/default.nix17
-rw-r--r--pkgs/development/compilers/gcc/9/gcc9-asan-glibc-2.34.patch70
-rw-r--r--pkgs/development/compilers/gcc/builder.sh4
-rw-r--r--pkgs/development/compilers/ghc/8.10.7-binary.nix1
-rw-r--r--pkgs/development/compilers/ghc/8.10.7.nix2
-rw-r--r--pkgs/development/compilers/ghc/9.0.2.nix21
-rw-r--r--pkgs/development/compilers/ghc/head.nix6
-rw-r--r--pkgs/development/compilers/ghcjs/8.10/common-overrides.nix35
-rw-r--r--pkgs/development/compilers/ghcjs/8.10/default.nix3
-rw-r--r--pkgs/development/compilers/go-jsonnet/default.nix4
-rw-r--r--pkgs/development/compilers/go/1.16.nix3
-rw-r--r--pkgs/development/compilers/go/1.17.nix7
-rw-r--r--pkgs/development/compilers/go/1.18.nix7
-rw-r--r--pkgs/development/compilers/go/2-dev.nix276
-rw-r--r--pkgs/development/compilers/go/ssl-cert-file-2-dev.patch54
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/default.nix39
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/graalvm11-ce-sources.json44
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/graalvm17-ce-sources.json44
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/mkGraal.nix165
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/update.nix19
-rw-r--r--pkgs/development/compilers/graalvm/enterprise-edition.nix183
-rw-r--r--pkgs/development/compilers/inklecate/default.nix2
-rw-r--r--pkgs/development/compilers/inklecate/deps-darwin.nix2
-rw-r--r--pkgs/development/compilers/inklecate/deps-linux.nix2
-rw-r--r--pkgs/development/compilers/julia/1.6-bin.nix4
-rw-r--r--pkgs/development/compilers/kotlin/default.nix4
-rw-r--r--pkgs/development/compilers/kotlin/native.nix8
-rw-r--r--pkgs/development/compilers/ldc/binary.nix5
-rw-r--r--pkgs/development/compilers/llvm/10/llvm/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/11/llvm/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/12/llvm/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/13/llvm/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/14/clang/default.nix1
-rw-r--r--pkgs/development/compilers/llvm/14/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/14/llvm/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/5/llvm/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/6/llvm/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/7/llvm/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/8/llvm/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/9/llvm/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/git/llvm/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/multi.nix4
-rw-r--r--pkgs/development/compilers/mruby/default.nix10
-rw-r--r--pkgs/development/compilers/mrustc/default.nix1
-rw-r--r--pkgs/development/compilers/muonlang/default.nix (renamed from pkgs/development/compilers/muon/default.nix)0
-rw-r--r--pkgs/development/compilers/ocaml/4.00.1.nix8
-rw-r--r--pkgs/development/compilers/ocaml/4.01.0.nix8
-rw-r--r--pkgs/development/compilers/ocaml/4.02.nix8
-rw-r--r--pkgs/development/compilers/ocaml/4.03.nix6
-rw-r--r--pkgs/development/compilers/ocaml/4.04.nix6
-rw-r--r--pkgs/development/compilers/ocaml/4.05.nix6
-rw-r--r--pkgs/development/compilers/ocaml/4.06.nix6
-rw-r--r--pkgs/development/compilers/ocaml/4.07.nix6
-rw-r--r--pkgs/development/compilers/ocaml/4.08.nix6
-rw-r--r--pkgs/development/compilers/ocaml/4.09.nix6
-rw-r--r--pkgs/development/compilers/ocaml/4.10.nix3
-rw-r--r--pkgs/development/compilers/ocaml/4.11.nix3
-rw-r--r--pkgs/development/compilers/ocaml/4.12.nix5
-rw-r--r--pkgs/development/compilers/ocaml/Makefile.nixpkgs16
-rw-r--r--pkgs/development/compilers/ocaml/generic.nix36
-rw-r--r--pkgs/development/compilers/ocaml/glibc-2.34-for-ocaml-4.10-and-11.patch37
-rw-r--r--pkgs/development/compilers/open-watcom/v2.nix6
-rw-r--r--pkgs/development/compilers/openjdk/11.nix1
-rw-r--r--pkgs/development/compilers/openjdk/16.nix1
-rw-r--r--pkgs/development/compilers/openjdk/8.nix3
-rw-r--r--pkgs/development/compilers/openjdk/darwin/8.nix6
-rw-r--r--pkgs/development/compilers/openjdk/fix-glibc-2.34.patch24
-rw-r--r--pkgs/development/compilers/polyml/5.6.nix10
-rw-r--r--pkgs/development/compilers/polyml/5.7.nix12
-rw-r--r--pkgs/development/compilers/polyml/default.nix8
-rw-r--r--pkgs/development/compilers/ponyc/default.nix13
-rw-r--r--pkgs/development/compilers/ponyc/disable-tests.patch16
-rw-r--r--pkgs/development/compilers/ponyc/make-safe-for-sandbox.patch29
-rw-r--r--pkgs/development/compilers/ponyc/pony-corral.nix4
-rw-r--r--pkgs/development/compilers/qbe/default.nix6
-rw-r--r--pkgs/development/compilers/rust/1_58.nix63
-rw-r--r--pkgs/development/compilers/rust/1_60.nix64
-rw-r--r--pkgs/development/compilers/rust/binary.nix4
-rw-r--r--pkgs/development/compilers/rust/cargo.nix2
-rw-r--r--pkgs/development/compilers/rust/rustfmt.nix8
-rw-r--r--pkgs/development/compilers/scryer-prolog/cargo.patch101
-rw-r--r--pkgs/development/compilers/scryer-prolog/default.nix25
-rw-r--r--pkgs/development/compilers/scryer-prolog/fix-tests.patch29
-rw-r--r--pkgs/development/compilers/tinygo/default.nix2
-rw-r--r--pkgs/development/compilers/uasm/default.nix49
-rw-r--r--pkgs/development/compilers/vlang/default.nix2
-rw-r--r--pkgs/development/compilers/yosys/default.nix4
-rw-r--r--pkgs/development/compilers/zulu/8.nix12
-rw-r--r--pkgs/development/compilers/zulu/default.nix8
-rw-r--r--pkgs/development/coq-modules/CoLoR/default.nix3
-rw-r--r--pkgs/development/coq-modules/Verdi/default.nix3
-rw-r--r--pkgs/development/coq-modules/gappalib/default.nix3
-rw-r--r--pkgs/development/coq-modules/mathcomp-word/default.nix3
-rw-r--r--pkgs/development/coq-modules/smtcoq/default.nix26
-rw-r--r--pkgs/development/coq-modules/trakt/default.nix24
-rw-r--r--pkgs/development/embedded/openocd/default.nix10
-rw-r--r--pkgs/development/embedded/platformio/core.nix3
-rw-r--r--pkgs/development/embedded/stm32/stm32flash/default.nix4
-rw-r--r--pkgs/development/go-modules/generic/default.nix17
-rw-r--r--pkgs/development/go-packages/generic/default.nix14
-rw-r--r--pkgs/development/haskell-modules/HACKING.md2
-rw-r--r--pkgs/development/haskell-modules/configuration-arm.nix1
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix143
-rw-r--r--pkgs/development/haskell-modules/configuration-darwin.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix27
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix6
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix28
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix10
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix13
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-head.nix18
-rw-r--r--pkgs/development/haskell-modules/configuration-ghcjs.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml21
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml12
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml138
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml12
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix19
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix12
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix2295
-rw-r--r--pkgs/development/haskell-modules/non-hackage-packages.nix1
-rw-r--r--pkgs/development/haskell-modules/patches/graphql-engine-mapkeys.patch33
-rw-r--r--pkgs/development/haskell-modules/with-packages-wrapper.nix8
-rw-r--r--pkgs/development/interpreters/bats/default.nix4
-rw-r--r--pkgs/development/interpreters/clojure/babashka.nix4
-rw-r--r--pkgs/development/interpreters/clojure/default.nix4
-rw-r--r--pkgs/development/interpreters/dart/default.nix7
-rw-r--r--pkgs/development/interpreters/duktape/default.nix1
-rw-r--r--pkgs/development/interpreters/elixir/1.13.nix4
-rw-r--r--pkgs/development/interpreters/gnu-apl/default.nix4
-rw-r--r--pkgs/development/interpreters/janet/default.nix4
-rw-r--r--pkgs/development/interpreters/joker/default.nix4
-rw-r--r--pkgs/development/interpreters/lolcode/default.nix1
-rw-r--r--pkgs/development/interpreters/luajit/2.0.nix6
-rw-r--r--pkgs/development/interpreters/luajit/2.1.nix6
-rw-r--r--pkgs/development/interpreters/luajit/default.nix4
-rw-r--r--pkgs/development/interpreters/maude/default.nix4
-rw-r--r--pkgs/development/interpreters/nickel/default.nix33
-rw-r--r--pkgs/development/interpreters/octave/default.nix13
-rw-r--r--pkgs/development/interpreters/perl/default.nix39
-rw-r--r--pkgs/development/interpreters/php/7.4.nix4
-rw-r--r--pkgs/development/interpreters/php/8.0.nix4
-rw-r--r--pkgs/development/interpreters/php/8.1.nix4
-rw-r--r--pkgs/development/interpreters/php/generic.nix6
-rw-r--r--pkgs/development/interpreters/python/cpython/3.11/python-3.x-distutils-C++.patch257
-rw-r--r--pkgs/development/interpreters/python/cpython/default.nix26
-rw-r--r--pkgs/development/interpreters/python/default.nix17
-rw-r--r--pkgs/development/interpreters/python/graalpython/default.nix21
-rwxr-xr-xpkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py18
-rw-r--r--pkgs/development/interpreters/rakudo/default.nix4
-rw-r--r--pkgs/development/interpreters/rakudo/moarvm.nix4
-rw-r--r--pkgs/development/interpreters/rakudo/nqp.nix14
-rw-r--r--pkgs/development/interpreters/ruby/default.nix56
-rw-r--r--pkgs/development/interpreters/ruby/patchsets.nix6
-rw-r--r--pkgs/development/interpreters/ruby/rbinstall-new-rubygems-compat.patch87
-rw-r--r--pkgs/development/interpreters/ruby/rubygems/default.nix2
-rw-r--r--pkgs/development/interpreters/spidermonkey/91.nix4
-rw-r--r--pkgs/development/interpreters/supercollider/default.nix49
-rw-r--r--pkgs/development/interpreters/supercollider/plugins/sc3-plugins.nix33
-rw-r--r--pkgs/development/interpreters/supercollider/supercollider-3.12.0-env-dirs.patch65
-rw-r--r--pkgs/development/interpreters/supercollider/wrapper.nix18
-rw-r--r--pkgs/development/interpreters/trealla/default.nix1
-rw-r--r--pkgs/development/interpreters/wasmtime/default.nix6
-rw-r--r--pkgs/development/interpreters/yex-lang/default.nix1
-rw-r--r--pkgs/development/interpreters/zuo/default.nix23
-rw-r--r--pkgs/development/libraries/CoinMP/default.nix2
-rw-r--r--pkgs/development/libraries/SDL2/default.nix14
-rw-r--r--pkgs/development/libraries/SDL2/find-headers.patch34
-rw-r--r--pkgs/development/libraries/SDL_audiolib/default.nix53
-rw-r--r--pkgs/development/libraries/amdvlk/default.nix4
-rw-r--r--pkgs/development/libraries/apache-activemq/default.nix4
-rw-r--r--pkgs/development/libraries/applet-window-buttons/default.nix4
-rw-r--r--pkgs/development/libraries/argagg/0001-catch.diff20
-rw-r--r--pkgs/development/libraries/argagg/default.nix46
-rw-r--r--pkgs/development/libraries/armadillo/default.nix4
-rw-r--r--pkgs/development/libraries/aspell/default.nix21
-rw-r--r--pkgs/development/libraries/audio/libopenmpt/default.nix66
-rwxr-xr-xpkgs/development/libraries/audio/libopenmpt/update.sh31
-rw-r--r--pkgs/development/libraries/audio/lilv/default.nix1
-rw-r--r--pkgs/development/libraries/audio/lv2/default.nix2
-rw-r--r--pkgs/development/libraries/audio/sratom/default.nix1
-rw-r--r--pkgs/development/libraries/avahi/default.nix6
-rw-r--r--pkgs/development/libraries/avro-c/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-sdkutils/default.nix4
-rw-r--r--pkgs/development/libraries/aws-sdk-cpp/default.nix53
-rw-r--r--pkgs/development/libraries/bash/bash-preexec/default.nix4
-rw-r--r--pkgs/development/libraries/bashup-events/generic.nix4
-rw-r--r--pkgs/development/libraries/bctoolbox/default.nix6
-rw-r--r--pkgs/development/libraries/belle-sip/default.nix3
-rw-r--r--pkgs/development/libraries/boost/1.69.nix2
-rw-r--r--pkgs/development/libraries/boost/1.70.nix2
-rw-r--r--pkgs/development/libraries/boost/1.72.nix2
-rw-r--r--pkgs/development/libraries/boost/1.78.nix15
-rw-r--r--pkgs/development/libraries/boost/default.nix1
-rw-r--r--pkgs/development/libraries/boost/generic.nix28
-rw-r--r--pkgs/development/libraries/boost/pthread-stack-min-fix.patch15
-rw-r--r--pkgs/development/libraries/bullet/default.nix4
-rw-r--r--pkgs/development/libraries/catch/default.nix6
-rw-r--r--pkgs/development/libraries/cgreen/default.nix6
-rw-r--r--pkgs/development/libraries/civetweb/default.nix3
-rw-r--r--pkgs/development/libraries/clucene-core/2.x.nix5
-rw-r--r--pkgs/development/libraries/clucene-core/default.nix4
-rw-r--r--pkgs/development/libraries/cpp-hocon/default.nix4
-rw-r--r--pkgs/development/libraries/cpp-ipfs-api/default.nix4
-rw-r--r--pkgs/development/libraries/cpp-utilities/default.nix4
-rw-r--r--pkgs/development/libraries/cutelyst/default.nix17
-rw-r--r--pkgs/development/libraries/cwiid/default.nix4
-rw-r--r--pkgs/development/libraries/cxxopts/default.nix4
-rw-r--r--pkgs/development/libraries/cyrus-sasl/cyrus-sasl-ac-try-run-fix.patch23
-rw-r--r--pkgs/development/libraries/cyrus-sasl/default.nix25
-rw-r--r--pkgs/development/libraries/cyrus-sasl/missing-size_t.patch13
-rw-r--r--pkgs/development/libraries/dav1d/default.nix6
-rw-r--r--pkgs/development/libraries/dotconf/default.nix2
-rw-r--r--pkgs/development/libraries/duckdb/default.nix4
-rw-r--r--pkgs/development/libraries/expat/default.nix5
-rw-r--r--pkgs/development/libraries/faudio/default.nix4
-rw-r--r--pkgs/development/libraries/ffmpeg/0001-fate-ffmpeg-add-missing-samples-dependency-to-fate-s.patch27
-rw-r--r--pkgs/development/libraries/ffmpeg/5.nix6
-rw-r--r--pkgs/development/libraries/flatcc/default.nix5
-rw-r--r--pkgs/development/libraries/flint/default.nix2
-rw-r--r--pkgs/development/libraries/fltk/common.nix11
-rw-r--r--pkgs/development/libraries/freeimage/default.nix8
-rw-r--r--pkgs/development/libraries/freeimage/unbundle.diff78
-rw-r--r--pkgs/development/libraries/freetype/default.nix4
-rw-r--r--pkgs/development/libraries/gcc/libgcc/default.nix2
-rw-r--r--pkgs/development/libraries/gensio/default.nix4
-rw-r--r--pkgs/development/libraries/geos/3.9.nix25
-rw-r--r--pkgs/development/libraries/geos/default.nix21
-rw-r--r--pkgs/development/libraries/ggz_base_libs/default.nix5
-rw-r--r--pkgs/development/libraries/ghc_filesystem/default.nix4
-rw-r--r--pkgs/development/libraries/glfw/3.x.nix9
-rw-r--r--pkgs/development/libraries/glib/default.nix14
-rw-r--r--pkgs/development/libraries/glib/elementary-terminal-support.patch16
-rw-r--r--pkgs/development/libraries/glib/gnome-console-support.patch55
-rw-r--r--pkgs/development/libraries/glibc/0001-Revert-Remove-all-usage-of-BASH-or-BASH-in-installed.patch131
-rw-r--r--pkgs/development/libraries/glibc/2.33-master.patch.gzbin155232 -> 0 bytes
-rw-r--r--pkgs/development/libraries/glibc/2.34-master.patch.gzbin0 -> 122816 bytes
-rw-r--r--pkgs/development/libraries/glibc/common.nix29
-rw-r--r--pkgs/development/libraries/glibc/default.nix11
-rw-r--r--pkgs/development/libraries/glibc/nix-locale-archive.patch45
-rw-r--r--pkgs/development/libraries/glibmm/2.68.nix4
-rw-r--r--pkgs/development/libraries/glm/default.nix5
-rw-r--r--pkgs/development/libraries/glog/default.nix19
-rw-r--r--pkgs/development/libraries/gmp/6.x.nix2
-rw-r--r--pkgs/development/libraries/goffice/default.nix4
-rw-r--r--pkgs/development/libraries/graphene-hardened-malloc/default.nix23
-rw-r--r--pkgs/development/libraries/graphene/0001-meson-add-options-for-tests-installation-dirs.patch72
-rw-r--r--pkgs/development/libraries/graphene/default.nix17
-rw-r--r--pkgs/development/libraries/grpc/default.nix4
-rw-r--r--pkgs/development/libraries/gsettings-desktop-schemas/default.nix12
-rw-r--r--pkgs/development/libraries/gspell/default.nix4
-rw-r--r--pkgs/development/libraries/gtk-frdp/default.nix8
-rw-r--r--pkgs/development/libraries/gtkmm/2.x.nix6
-rw-r--r--pkgs/development/libraries/gtksourceview/5.x.nix4
-rw-r--r--pkgs/development/libraries/gvfs/default.nix4
-rw-r--r--pkgs/development/libraries/hivex/default.nix4
-rw-r--r--pkgs/development/libraries/hspell/dicts.nix8
-rw-r--r--pkgs/development/libraries/http-parser/default.nix11
-rw-r--r--pkgs/development/libraries/hunspell/dictionaries.nix5
-rw-r--r--pkgs/development/libraries/hwloc/default.nix4
-rw-r--r--pkgs/development/libraries/igraph/default.nix16
-rw-r--r--pkgs/development/libraries/ijs/default.nix5
-rw-r--r--pkgs/development/libraries/intel-media-driver/default.nix4
-rw-r--r--pkgs/development/libraries/intel-media-sdk/default.nix4
-rw-r--r--pkgs/development/libraries/isl/generic.nix3
-rw-r--r--pkgs/development/libraries/jarowinkler-cpp/default.nix41
-rw-r--r--pkgs/development/libraries/jcal/default.nix2
-rw-r--r--pkgs/development/libraries/jellyfin-ffmpeg/default.nix30
-rw-r--r--pkgs/development/libraries/jsoncpp/default.nix30
-rw-r--r--pkgs/development/libraries/kde-frameworks/attica.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/baloo.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/bluez-qt.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/breeze-icons.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/default.nix9
-rw-r--r--pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/fetch.sh2
-rw-r--r--pkgs/development/libraries/kde-frameworks/frameworkintegration.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kactivities-stats.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kactivities.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kapidox.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/karchive.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kauth/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kbookmarks.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcalendarcore.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcmutils/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcodecs.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcompletion.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kconfig.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kconfigwidgets/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcontacts.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcoreaddons.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcrash.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdav.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdbusaddons.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdeclarative.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kded.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdesignerplugin.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdesu/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdewebkit.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdnssd.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdoctools/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kemoticons.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kglobalaccel.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kguiaddons.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kholidays.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/khtml.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/ki18n.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kidletime.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kimageformats.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kinit/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kio/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kirigami2.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kitemmodels.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kitemviews.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kjobwidgets.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kjs.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kjsembed.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kmediaplayer.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/knewstuff/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/knotifications.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/knotifyconfig.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpackage/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kparts.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpeople.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kplotting.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpty.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kquickcharts.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kross.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/krunner.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kservice/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/ktexteditor.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/ktextwidgets.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kunitconversion.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwallet.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwayland.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kxmlgui.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kxmlrpcclient.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/modemmanager-qt.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/networkmanager-qt.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/oxygen-icons5.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/plasma-framework.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/prison.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/purpose.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/qqc2-desktop-style.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/solid.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/sonnet.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/srcs.nix664
-rw-r--r--pkgs/development/libraries/kde-frameworks/syndication.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/syntax-highlighting.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/threadweaver.nix2
-rw-r--r--pkgs/development/libraries/kerberos/krb5.nix2
-rw-r--r--pkgs/development/libraries/khronos-ocl-icd-loader/default.nix2
-rw-r--r--pkgs/development/libraries/languagemachines/frog.nix2
-rw-r--r--pkgs/development/libraries/languagemachines/frogdata.nix2
-rw-r--r--pkgs/development/libraries/languagemachines/libfolia.nix2
-rw-r--r--pkgs/development/libraries/languagemachines/mbt.nix2
-rw-r--r--pkgs/development/libraries/languagemachines/ticcutils.nix2
-rw-r--r--pkgs/development/libraries/languagemachines/timbl.nix2
-rw-r--r--pkgs/development/libraries/languagemachines/timblserver.nix2
-rw-r--r--pkgs/development/libraries/languagemachines/ucto.nix2
-rw-r--r--pkgs/development/libraries/languagemachines/uctodata.nix2
-rw-r--r--pkgs/development/libraries/lasso/default.nix44
-rw-r--r--pkgs/development/libraries/leatherman/default.nix2
-rw-r--r--pkgs/development/libraries/leveldb/default.nix6
-rw-r--r--pkgs/development/libraries/libadwaita/default.nix4
-rw-r--r--pkgs/development/libraries/libappindicator/default.nix4
-rw-r--r--pkgs/development/libraries/libarchive/default.nix93
-rw-r--r--pkgs/development/libraries/libargon2/default.nix4
-rw-r--r--pkgs/development/libraries/libargs/default.nix4
-rw-r--r--pkgs/development/libraries/libavif/default.nix4
-rw-r--r--pkgs/development/libraries/libcbor/default.nix4
-rw-r--r--pkgs/development/libraries/libcollectdclient/default.nix3
-rw-r--r--pkgs/development/libraries/libdeltachat/default.nix6
-rw-r--r--pkgs/development/libraries/libdvbcsa/default.nix22
-rw-r--r--pkgs/development/libraries/libe57format/default.nix9
-rw-r--r--pkgs/development/libraries/libechonest/default.nix3
-rw-r--r--pkgs/development/libraries/libepoxy/default.nix5
-rw-r--r--pkgs/development/libraries/libevdev/default.nix4
-rw-r--r--pkgs/development/libraries/libfido2/default.nix4
-rw-r--r--pkgs/development/libraries/libfive/default.nix1
-rw-r--r--pkgs/development/libraries/libgcrypt/default.nix4
-rw-r--r--pkgs/development/libraries/libguestfs/default.nix4
-rw-r--r--pkgs/development/libraries/libhandy/default.nix7
-rw-r--r--pkgs/development/libraries/libinput/default.nix24
-rw-r--r--pkgs/development/libraries/libixp-hg/default.nix27
-rw-r--r--pkgs/development/libraries/libixp/default.nix28
-rw-r--r--pkgs/development/libraries/libjpeg-turbo/default.nix4
-rw-r--r--pkgs/development/libraries/libjson/default.nix1
-rw-r--r--pkgs/development/libraries/libjxl/default.nix2
-rw-r--r--pkgs/development/libraries/libkqueue/default.nix23
-rw-r--r--pkgs/development/libraries/liblastfm/default.nix5
-rw-r--r--pkgs/development/libraries/libmnl/default.nix4
-rw-r--r--pkgs/development/libraries/libnetfilter_conntrack/default.nix14
-rw-r--r--pkgs/development/libraries/libnfc/default.nix17
-rw-r--r--pkgs/development/libraries/libnfnetlink/Use-stdlib-uint-instead-of-u_int.patch499
-rw-r--r--pkgs/development/libraries/libnfnetlink/default.nix8
-rw-r--r--pkgs/development/libraries/libnftnl/default.nix2
-rw-r--r--pkgs/development/libraries/libngspice/default.nix4
-rw-r--r--pkgs/development/libraries/libosmscout/default.nix2
-rw-r--r--pkgs/development/libraries/libotr/default.nix2
-rw-r--r--pkgs/development/libraries/libotr/fix-regtest-client.patch11
-rw-r--r--pkgs/development/libraries/libowfat/default.nix3
-rw-r--r--pkgs/development/libraries/libpinyin/default.nix6
-rw-r--r--pkgs/development/libraries/libpostal/default.nix2
-rw-r--r--pkgs/development/libraries/libpqxx/6.nix8
-rw-r--r--pkgs/development/libraries/libqalculate/default.nix4
-rw-r--r--pkgs/development/libraries/libraspberrypi/default.nix6
-rw-r--r--pkgs/development/libraries/libraw/default.nix8
-rw-r--r--pkgs/development/libraries/libraw/unstable.nix12
-rw-r--r--pkgs/development/libraries/librealsense/default.nix6
-rw-r--r--pkgs/development/libraries/libressl/fix-build-with-glibc.patch92
-rw-r--r--pkgs/development/libraries/libsecret/default.nix35
-rw-r--r--pkgs/development/libraries/libsoup/3.x.nix4
-rw-r--r--pkgs/development/libraries/libspf2/default.nix10
-rw-r--r--pkgs/development/libraries/libsystemtap/default.nix15
-rw-r--r--pkgs/development/libraries/libtiff/default.nix30
-rw-r--r--pkgs/development/libraries/libuldaq/default.nix4
-rw-r--r--pkgs/development/libraries/libunistring/default.nix4
-rw-r--r--pkgs/development/libraries/libunwind/default.nix10
-rw-r--r--pkgs/development/libraries/libusb1/default.nix14
-rw-r--r--pkgs/development/libraries/libuv/default.nix5
-rw-r--r--pkgs/development/libraries/libva/1.0.0.nix37
-rw-r--r--pkgs/development/libraries/libva/1.nix50
-rw-r--r--pkgs/development/libraries/libva/default.nix8
-rw-r--r--pkgs/development/libraries/libva/utils.nix6
-rw-r--r--pkgs/development/libraries/libvirt/default.nix8
-rw-r--r--pkgs/development/libraries/libvmaf/default.nix4
-rw-r--r--pkgs/development/libraries/libwacom/default.nix4
-rw-r--r--pkgs/development/libraries/libwebsockets/default.nix17
-rw-r--r--pkgs/development/libraries/libxcrypt/default.nix4
-rw-r--r--pkgs/development/libraries/libyang/default.nix4
-rw-r--r--pkgs/development/libraries/liquid-dsp/default.nix9
-rw-r--r--pkgs/development/libraries/log4shib/default.nix2
-rw-r--r--pkgs/development/libraries/mapbox-gl-native/default.nix5
-rw-r--r--pkgs/development/libraries/mapbox-gl-qml/default.nix11
-rw-r--r--pkgs/development/libraries/maplibre-gl-native/default.nix66
-rw-r--r--pkgs/development/libraries/mediastreamer/default.nix4
-rw-r--r--pkgs/development/libraries/mesa/default.nix13
-rw-r--r--pkgs/development/libraries/mlt/qt-5.nix1
-rw-r--r--pkgs/development/libraries/mpich/default.nix7
-rw-r--r--pkgs/development/libraries/mustache-hpp/default.nix6
-rw-r--r--pkgs/development/libraries/mvapich/default.nix1
-rw-r--r--pkgs/development/libraries/netcdf-fortran/default.nix3
-rw-r--r--pkgs/development/libraries/netcdf/default.nix24
-rw-r--r--pkgs/development/libraries/nghttp2/default.nix106
-rw-r--r--pkgs/development/libraries/nghttp3/default.nix6
-rw-r--r--pkgs/development/libraries/ngtcp2/default.nix6
-rw-r--r--pkgs/development/libraries/nlopt/default.nix4
-rw-r--r--pkgs/development/libraries/notcurses/default.nix4
-rw-r--r--pkgs/development/libraries/nss/esr.nix4
-rw-r--r--pkgs/development/libraries/nss/generic.nix (renamed from pkgs/development/libraries/nss/default.nix)16
-rw-r--r--pkgs/development/libraries/nss/latest.nix10
-rw-r--r--pkgs/development/libraries/ntdb/default.nix51
-rw-r--r--pkgs/development/libraries/openmpi/default.nix4
-rw-r--r--pkgs/development/libraries/openssl/default.nix6
-rw-r--r--pkgs/development/libraries/opensubdiv/default.nix11
-rw-r--r--pkgs/development/libraries/openvino/default.nix4
-rw-r--r--pkgs/development/libraries/pcmsolver/default.nix11
-rw-r--r--pkgs/development/libraries/pcre/default.nix2
-rw-r--r--pkgs/development/libraries/pcre2/default.nix4
-rw-r--r--pkgs/development/libraries/pdal/default.nix4
-rw-r--r--pkgs/development/libraries/phash/default.nix4
-rwxr-xr-xpkgs/development/libraries/physics/lhapdf/maintainer.sh4
-rw-r--r--pkgs/development/libraries/physics/lhapdf/pdf_sets.nix560
-rw-r--r--pkgs/development/libraries/physics/qcdnum/default.nix4
-rw-r--r--pkgs/development/libraries/pmdk/default.nix6
-rw-r--r--pkgs/development/libraries/pocketsphinx/default.nix48
-rw-r--r--pkgs/development/libraries/polkit-qt-1/default.nix4
-rw-r--r--pkgs/development/libraries/polkit/default.nix6
-rw-r--r--pkgs/development/libraries/protobuf/2.5.nix10
-rw-r--r--pkgs/development/libraries/protobuf/generic.nix61
-rw-r--r--pkgs/development/libraries/protolock/default.nix2
-rw-r--r--pkgs/development/libraries/qca-qt5/2.3.2.nix30
-rw-r--r--pkgs/development/libraries/qca-qt5/default.nix15
-rw-r--r--pkgs/development/libraries/qrupdate/default.nix14
-rw-r--r--pkgs/development/libraries/qt-5/5.12/default.nix10
-rw-r--r--pkgs/development/libraries/qt-5/5.14/default.nix10
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtwayland-libdrm-build.patch56
-rw-r--r--pkgs/development/libraries/qt-5/5.15/default.nix2
-rw-r--r--pkgs/development/libraries/qt-5/5.15/srcs-generated.json126
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtbase.nix14
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtmultimedia.nix5
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtwayland-app_id.patch36
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtwayland.nix6
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtwebengine.nix7
-rw-r--r--pkgs/development/libraries/qt-5/qtModule.nix2
-rw-r--r--pkgs/development/libraries/qtutilities/default.nix4
-rw-r--r--pkgs/development/libraries/quictls/default.nix11
-rw-r--r--pkgs/development/libraries/rapidfuzz-cpp/default.nix41
-rw-r--r--pkgs/development/libraries/re2/default.nix4
-rw-r--r--pkgs/development/libraries/recastnavigation/default.nix8
-rw-r--r--pkgs/development/libraries/redis-plus-plus/default.nix38
-rw-r--r--pkgs/development/libraries/rlottie/default.nix17
-rw-r--r--pkgs/development/libraries/robin-map/default.nix4
-rw-r--r--pkgs/development/libraries/s2n-tls/default.nix3
-rw-r--r--pkgs/development/libraries/science/astronomy/wcslib/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/blis/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/caffe2/default.nix8
-rw-r--r--pkgs/development/libraries/science/math/cudnn/default.nix114
-rw-r--r--pkgs/development/libraries/science/math/cudnn/extension.nix116
-rw-r--r--pkgs/development/libraries/science/math/cudnn/generic.nix105
-rw-r--r--pkgs/development/libraries/science/math/cutensor/default.nix48
-rw-r--r--pkgs/development/libraries/science/math/libtorch/test/default.nix5
-rw-r--r--pkgs/development/libraries/science/math/magma/default.nix27
-rw-r--r--pkgs/development/libraries/science/math/nccl/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/petsc/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/tensorflow/bin.nix5
-rw-r--r--pkgs/development/libraries/science/math/zn_poly/default.nix18
-rw-r--r--pkgs/development/libraries/seasocks/default.nix8
-rw-r--r--pkgs/development/libraries/simgear/default.nix4
-rw-r--r--pkgs/development/libraries/simpleitk/default.nix2
-rw-r--r--pkgs/development/libraries/smesh/default.nix2
-rw-r--r--pkgs/development/libraries/soci/default.nix2
-rw-r--r--pkgs/development/libraries/spdlog/default.nix10
-rw-r--r--pkgs/development/libraries/sphinxbase/default.nix40
-rw-r--r--pkgs/development/libraries/sqlite/default.nix6
-rw-r--r--pkgs/development/libraries/sqlite/tools.nix4
-rw-r--r--pkgs/development/libraries/sundials/default.nix13
-rw-r--r--pkgs/development/libraries/symengine/default.nix5
-rw-r--r--pkgs/development/libraries/talloc/default.nix3
-rw-r--r--pkgs/development/libraries/taskflow/default.nix50
-rw-r--r--pkgs/development/libraries/taskflow/unvendor-doctest.patch21
-rw-r--r--pkgs/development/libraries/tdlib/default.nix6
-rw-r--r--pkgs/development/libraries/template-glib/default.nix4
-rw-r--r--pkgs/development/libraries/tomlc99/default.nix30
-rw-r--r--pkgs/development/libraries/tomlcpp/0001-missing-headers.diff15
-rw-r--r--pkgs/development/libraries/tomlcpp/default.nix35
-rw-r--r--pkgs/development/libraries/tpm2-tss/default.nix10
-rw-r--r--pkgs/development/libraries/umockdev/default.nix4
-rw-r--r--pkgs/development/libraries/unixODBCDrivers/default.nix49
-rw-r--r--pkgs/development/libraries/valhalla/default.nix4
-rw-r--r--pkgs/development/libraries/vapoursynth/default.nix4
-rw-r--r--pkgs/development/libraries/vigra/default.nix18
-rw-r--r--pkgs/development/libraries/wasilibc/default.nix33
-rw-r--r--pkgs/development/libraries/webkitgtk/default.nix4
-rw-r--r--pkgs/development/libraries/wxwidgets/wxGTK28.nix2
-rw-r--r--pkgs/development/libraries/wxwidgets/wxGTK29.nix1
-rw-r--r--pkgs/development/libraries/wxwidgets/wxGTK30.nix5
-rw-r--r--pkgs/development/libraries/wxwidgets/wxGTK31.nix8
-rw-r--r--pkgs/development/libraries/wxwidgets/wxmac30.nix12
-rw-r--r--pkgs/development/libraries/xgboost/default.nix10
-rw-r--r--pkgs/development/libraries/zeroc-ice/3.6.nix59
-rw-r--r--pkgs/development/libraries/zeroc-ice/default.nix13
-rw-r--r--pkgs/development/libraries/zeroc-ice/uninitialized-variable-warning.patch20
-rw-r--r--pkgs/development/libraries/zlib/CVE-2018-25032-1.patch346
-rw-r--r--pkgs/development/libraries/zlib/CVE-2018-25032-2.patch27
-rw-r--r--pkgs/development/libraries/zlib/default.nix10
-rw-r--r--pkgs/development/libraries/zlib/disable-cygwin-widechar.patch13
-rw-r--r--pkgs/development/libraries/zlib/fix-configure-issue-cross.patch24
-rw-r--r--pkgs/development/lua-modules/overrides.nix3
-rw-r--r--pkgs/development/misc/breakpad/default.nix5
-rw-r--r--pkgs/development/misc/datafusion/default.nix34
-rw-r--r--pkgs/development/misc/haskell/hasura/ekg-core.nix17
-rw-r--r--pkgs/development/misc/haskell/hasura/ekg-json.nix9
-rw-r--r--pkgs/development/misc/haskell/hasura/graphql-engine.nix120
-rw-r--r--pkgs/development/misc/haskell/hasura/graphql-parser.nix28
-rw-r--r--pkgs/development/misc/haskell/hasura/kriti-lang.nix41
-rw-r--r--pkgs/development/misc/haskell/hasura/pg-client.nix35
-rw-r--r--pkgs/development/misc/haskell/hasura/pool.nix2
-rwxr-xr-xpkgs/development/misc/haskell/hasura/update.sh12
-rw-r--r--pkgs/development/misc/msp430/mspds/binary.nix3
-rw-r--r--pkgs/development/misc/resholve/README.md169
-rw-r--r--pkgs/development/misc/resholve/default.nix42
-rw-r--r--pkgs/development/misc/resholve/resholve-package.nix37
-rw-r--r--pkgs/development/misc/resholve/resholve-utils.nix169
-rw-r--r--pkgs/development/misc/resholve/resholve.nix13
-rw-r--r--pkgs/development/misc/resholve/source.nix4
-rw-r--r--pkgs/development/misc/resholve/test.nix75
-rw-r--r--pkgs/development/mobile/androidenv/build-tools.nix4
-rw-r--r--pkgs/development/mobile/androidenv/platform-tools.nix3
-rw-r--r--pkgs/development/nim-packages/tempfile/default.nix1
-rw-r--r--pkgs/development/node-packages/default.nix19
-rw-r--r--pkgs/development/node-packages/node-packages.json3
-rw-r--r--pkgs/development/node-packages/node-packages.nix11161
-rw-r--r--pkgs/development/ocaml-modules/alcotest/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/asn1-combinators/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/bap/default.nix9
-rw-r--r--pkgs/development/ocaml-modules/batteries/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/bitstring/ppx.nix2
-rw-r--r--pkgs/development/ocaml-modules/bitv/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/bjack/default.nix25
-rw-r--r--pkgs/development/ocaml-modules/brisk-reconciler/default.nix33
-rw-r--r--pkgs/development/ocaml-modules/bz2/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/camlpdf/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/caqti/default.nix13
-rw-r--r--pkgs/development/ocaml-modules/cmdliner/default.nix38
-rw-r--r--pkgs/development/ocaml-modules/coin/default.nix15
-rw-r--r--pkgs/development/ocaml-modules/cpdf/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/cstruct/lwt.nix2
-rw-r--r--pkgs/development/ocaml-modules/cstruct/ppx.nix2
-rw-r--r--pkgs/development/ocaml-modules/cstruct/sexp.nix2
-rw-r--r--pkgs/development/ocaml-modules/cstruct/unix.nix2
-rw-r--r--pkgs/development/ocaml-modules/csv/lwt.nix2
-rw-r--r--pkgs/development/ocaml-modules/ctypes/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/dssi/default.nix25
-rw-r--r--pkgs/development/ocaml-modules/eliom/default.nix12
-rw-r--r--pkgs/development/ocaml-modules/erm_xml/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/expat/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/farfadet/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/base.nix4
-rw-r--r--pkgs/development/ocaml-modules/flex/default.nix22
-rw-r--r--pkgs/development/ocaml-modules/fmt/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/fpath/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/frontc/default.nix33
-rw-r--r--pkgs/development/ocaml-modules/gen_js_api/default.nix41
-rw-r--r--pkgs/development/ocaml-modules/gen_js_api/ojs.nix21
-rw-r--r--pkgs/development/ocaml-modules/hacl-star/raw.nix3
-rw-r--r--pkgs/development/ocaml-modules/javalib/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lablgl/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lablgtk-extras/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ladspa/default.nix25
-rw-r--r--pkgs/development/ocaml-modules/lastfm/default.nix32
-rw-r--r--pkgs/development/ocaml-modules/llvm/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/logs/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lua-ml/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lwt/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/nocrypto/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/notty/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocp-ocamlres/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocsigen-deriving/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocsigen-server/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/ocsigen-start/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ocsipersist/default.nix20
-rw-r--r--pkgs/development/ocaml-modules/ocsipersist/lib.nix27
-rw-r--r--pkgs/development/ocaml-modules/ocsipersist/pgsql.nix24
-rw-r--r--pkgs/development/ocaml-modules/ocsipersist/sqlite.nix23
-rw-r--r--pkgs/development/ocaml-modules/phylogenetics/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/ppxlib/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ptime/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/pure-splitmix/default.nix22
-rw-r--r--pkgs/development/ocaml-modules/reactivedata/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/rebez/default.nix22
-rw-r--r--pkgs/development/ocaml-modules/reperf/default.nix41
-rw-r--r--pkgs/development/ocaml-modules/samplerate/default.nix25
-rw-r--r--pkgs/development/ocaml-modules/sawja/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/sedlex/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/sosa/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/sqlite3EZ/default.nix36
-rw-r--r--pkgs/development/ocaml-modules/toml/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/torch/default.nix1
-rw-r--r--pkgs/development/ocaml-modules/tsdl/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/uri/sexp.nix2
-rw-r--r--pkgs/development/ocaml-modules/uucp/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/uunf/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/vg/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/wasm/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/xmlm/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/xmlplaylist/default.nix25
-rw-r--r--pkgs/development/ocaml-modules/z3/default.nix7
-rw-r--r--pkgs/development/ocaml-modules/z3/ocamlfind.patch13
-rw-r--r--pkgs/development/ocaml-modules/zarith/default.nix2
-rw-r--r--pkgs/development/php-packages/composer/default.nix4
-rw-r--r--pkgs/development/php-packages/datadog_trace/default.nix22
-rw-r--r--pkgs/development/php-packages/phpstan/default.nix4
-rw-r--r--pkgs/development/php-packages/xdebug/default.nix4
-rw-r--r--pkgs/development/python-modules/Cython/default.nix11
-rw-r--r--pkgs/development/python-modules/Mako/default.nix35
-rw-r--r--pkgs/development/python-modules/Theano/default.nix12
-rw-r--r--pkgs/development/python-modules/XlsxWriter/default.nix38
-rw-r--r--pkgs/development/python-modules/adafruit-io/default.nix6
-rw-r--r--pkgs/development/python-modules/adafruit-platformdetect/default.nix4
-rw-r--r--pkgs/development/python-modules/adb-shell/default.nix15
-rw-r--r--pkgs/development/python-modules/adblock/default.nix8
-rw-r--r--pkgs/development/python-modules/add-trailing-comma/default.nix4
-rw-r--r--pkgs/development/python-modules/aenum/default.nix4
-rw-r--r--pkgs/development/python-modules/aesara/default.nix6
-rw-r--r--pkgs/development/python-modules/aesedb/default.nix45
-rw-r--r--pkgs/development/python-modules/afdko/default.nix14
-rw-r--r--pkgs/development/python-modules/afsapi/default.nix4
-rw-r--r--pkgs/development/python-modules/ailment/default.nix6
-rw-r--r--pkgs/development/python-modules/aio-geojson-generic-client/default.nix51
-rw-r--r--pkgs/development/python-modules/aio-georss-client/default.nix4
-rw-r--r--pkgs/development/python-modules/aio-georss-gdacs/default.nix4
-rw-r--r--pkgs/development/python-modules/aioairzone/default.nix6
-rw-r--r--pkgs/development/python-modules/aiobotocore/default.nix4
-rw-r--r--pkgs/development/python-modules/aioconsole/default.nix2
-rw-r--r--pkgs/development/python-modules/aiodiscover/default.nix4
-rw-r--r--pkgs/development/python-modules/aioftp/default.nix4
-rw-r--r--pkgs/development/python-modules/aioguardian/default.nix4
-rw-r--r--pkgs/development/python-modules/aioh2/default.nix24
-rw-r--r--pkgs/development/python-modules/aiohomekit/default.nix6
-rw-r--r--pkgs/development/python-modules/aiohttp-remotes/default.nix6
-rw-r--r--pkgs/development/python-modules/aiohttp-swagger/default.nix12
-rw-r--r--pkgs/development/python-modules/aiohttp/default.nix4
-rw-r--r--pkgs/development/python-modules/aiolifx/default.nix13
-rw-r--r--pkgs/development/python-modules/aionotify/default.nix5
-rw-r--r--pkgs/development/python-modules/aioqsw/default.nix40
-rw-r--r--pkgs/development/python-modules/aioshelly/default.nix6
-rw-r--r--pkgs/development/python-modules/aioswitcher/default.nix6
-rw-r--r--pkgs/development/python-modules/aiotractive/default.nix4
-rw-r--r--pkgs/development/python-modules/alembic/default.nix8
-rw-r--r--pkgs/development/python-modules/amberelectric/default.nix4
-rw-r--r--pkgs/development/python-modules/amply/default.nix4
-rw-r--r--pkgs/development/python-modules/amqp/default.nix4
-rw-r--r--pkgs/development/python-modules/androidtv/default.nix12
-rw-r--r--pkgs/development/python-modules/angr/default.nix6
-rw-r--r--pkgs/development/python-modules/angrop/default.nix6
-rw-r--r--pkgs/development/python-modules/ansi/default.nix28
-rw-r--r--pkgs/development/python-modules/ansi2html/default.nix5
-rw-r--r--pkgs/development/python-modules/ansible-compat/default.nix4
-rw-r--r--pkgs/development/python-modules/ansible-doctor/default.nix17
-rw-r--r--pkgs/development/python-modules/ansible-later/default.nix6
-rw-r--r--pkgs/development/python-modules/ansible-lint/default.nix4
-rw-r--r--pkgs/development/python-modules/ansible-runner/default.nix11
-rw-r--r--pkgs/development/python-modules/ansible/base.nix88
-rw-r--r--pkgs/development/python-modules/ansible/core.nix19
-rw-r--r--pkgs/development/python-modules/ansible/default.nix (renamed from pkgs/development/python-modules/ansible/collections.nix)22
-rw-r--r--pkgs/development/python-modules/ansible/legacy.nix55
-rw-r--r--pkgs/development/python-modules/anybadge/default.nix4
-rw-r--r--pkgs/development/python-modules/anyconfig/default.nix4
-rw-r--r--pkgs/development/python-modules/anyio/default.nix13
-rw-r--r--pkgs/development/python-modules/apache-airflow/default.nix4
-rw-r--r--pkgs/development/python-modules/apache-beam/default.nix35
-rw-r--r--pkgs/development/python-modules/apache-beam/fix-cython.patch41
-rw-r--r--pkgs/development/python-modules/apache-beam/relax-deps.patch20
-rw-r--r--pkgs/development/python-modules/aplpy/default.nix30
-rw-r--r--pkgs/development/python-modules/apprise/default.nix8
-rw-r--r--pkgs/development/python-modules/approvaltests/default.nix44
-rw-r--r--pkgs/development/python-modules/appthreat-vulnerability-db/default.nix6
-rw-r--r--pkgs/development/python-modules/aprslib/default.nix4
-rw-r--r--pkgs/development/python-modules/apsw/default.nix35
-rw-r--r--pkgs/development/python-modules/apycula/default.nix4
-rw-r--r--pkgs/development/python-modules/archinfo/default.nix18
-rw-r--r--pkgs/development/python-modules/arris-tg2492lg/default.nix43
-rw-r--r--pkgs/development/python-modules/arrow/default.nix4
-rw-r--r--pkgs/development/python-modules/asana/default.nix42
-rw-r--r--pkgs/development/python-modules/asciimatics/default.nix4
-rw-r--r--pkgs/development/python-modules/asdf-standard/default.nix43
-rw-r--r--pkgs/development/python-modules/asdf-transform-schemas/default.nix46
-rw-r--r--pkgs/development/python-modules/asdf/default.nix25
-rw-r--r--pkgs/development/python-modules/asgiref/default.nix18
-rw-r--r--pkgs/development/python-modules/asn1crypto/default.nix20
-rw-r--r--pkgs/development/python-modules/astroid/default.nix8
-rw-r--r--pkgs/development/python-modules/astropy-extension-helpers/default.nix19
-rw-r--r--pkgs/development/python-modules/astropy/default.nix4
-rw-r--r--pkgs/development/python-modules/astroquery/default.nix38
-rw-r--r--pkgs/development/python-modules/asttokens/default.nix7
-rw-r--r--pkgs/development/python-modules/async-lru/default.nix4
-rw-r--r--pkgs/development/python-modules/async-upnp-client/default.nix4
-rw-r--r--pkgs/development/python-modules/async_generator/default.nix2
-rw-r--r--pkgs/development/python-modules/asyncssh/default.nix4
-rwxr-xr-xpkgs/development/python-modules/atlassian-python-api/default.nix4
-rw-r--r--pkgs/development/python-modules/atom/default.nix44
-rw-r--r--pkgs/development/python-modules/aurorapy/default.nix2
-rw-r--r--pkgs/development/python-modules/authcaptureproxy/default.nix4
-rw-r--r--pkgs/development/python-modules/authheaders/default.nix4
-rw-r--r--pkgs/development/python-modules/autobahn/default.nix4
-rw-r--r--pkgs/development/python-modules/autograd/default.nix4
-rw-r--r--pkgs/development/python-modules/av/default.nix140
-rw-r--r--pkgs/development/python-modules/awesomeversion/default.nix4
-rw-r--r--pkgs/development/python-modules/aws-adfs/default.nix66
-rw-r--r--pkgs/development/python-modules/awscrt/default.nix4
-rw-r--r--pkgs/development/python-modules/awsiotpythonsdk/default.nix6
-rw-r--r--pkgs/development/python-modules/azure-common/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-core/default.nix8
-rw-r--r--pkgs/development/python-modules/azure-eventgrid/default.nix13
-rw-r--r--pkgs/development/python-modules/azure-identity/default.nix9
-rw-r--r--pkgs/development/python-modules/azure-keyvault-keys/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-containerservice/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-core/default.nix2
-rw-r--r--pkgs/development/python-modules/azure-mgmt-datafactory/default.nix12
-rw-r--r--pkgs/development/python-modules/azure-mgmt-kusto/azure-mgmt-apimanagement/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix2
-rw-r--r--pkgs/development/python-modules/azure-mgmt-msi/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-reservations/default.nix12
-rw-r--r--pkgs/development/python-modules/azure-mgmt-servicelinker/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-storage/default.nix18
-rw-r--r--pkgs/development/python-modules/azure-mgmt-trafficmanager/default.nix6
-rw-r--r--pkgs/development/python-modules/azure-servicebus/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-synapse-artifacts/default.nix4
-rw-r--r--pkgs/development/python-modules/backports-zoneinfo/default.nix3
-rw-r--r--pkgs/development/python-modules/basemap/default.nix4
-rw-r--r--pkgs/development/python-modules/bc-python-hcl2/default.nix4
-rw-r--r--pkgs/development/python-modules/bcrypt/default.nix41
-rw-r--r--pkgs/development/python-modules/beautifultable/default.nix7
-rw-r--r--pkgs/development/python-modules/behave/default.nix8
-rw-r--r--pkgs/development/python-modules/bimmer-connected/default.nix4
-rw-r--r--pkgs/development/python-modules/bip_utils/default.nix4
-rw-r--r--pkgs/development/python-modules/bitarray/default.nix4
-rw-r--r--pkgs/development/python-modules/bitbox02/default.nix4
-rw-r--r--pkgs/development/python-modules/bitcoin-price-api/default.nix24
-rw-r--r--pkgs/development/python-modules/bitstruct/default.nix19
-rw-r--r--pkgs/development/python-modules/bjoern/default.nix15
-rw-r--r--pkgs/development/python-modules/black/default.nix4
-rw-r--r--pkgs/development/python-modules/blessed/default.nix4
-rw-r--r--pkgs/development/python-modules/blinker/default.nix11
-rw-r--r--pkgs/development/python-modules/blspy/default.nix6
-rw-r--r--pkgs/development/python-modules/boltztrap2/default.nix39
-rw-r--r--pkgs/development/python-modules/boschshcpy/default.nix4
-rw-r--r--pkgs/development/python-modules/boto3/default.nix4
-rw-r--r--pkgs/development/python-modules/botocore/default.nix4
-rw-r--r--pkgs/development/python-modules/bottleneck/default.nix47
-rw-r--r--pkgs/development/python-modules/boxx/default.nix15
-rw-r--r--pkgs/development/python-modules/brother/default.nix31
-rw-r--r--pkgs/development/python-modules/bsblan/default.nix15
-rw-r--r--pkgs/development/python-modules/build/default.nix2
-rw-r--r--pkgs/development/python-modules/buildbot/default.nix7
-rw-r--r--pkgs/development/python-modules/buildbot/pkg.nix2
-rw-r--r--pkgs/development/python-modules/buildbot/plugins.nix10
-rw-r--r--pkgs/development/python-modules/buildbot/worker.nix48
-rw-r--r--pkgs/development/python-modules/caldav/default.nix6
-rw-r--r--pkgs/development/python-modules/can/default.nix11
-rw-r--r--pkgs/development/python-modules/casbin/default.nix6
-rw-r--r--pkgs/development/python-modules/cattrs/default.nix5
-rw-r--r--pkgs/development/python-modules/cbor2/default.nix4
-rw-r--r--pkgs/development/python-modules/celery/default.nix4
-rw-r--r--pkgs/development/python-modules/certbot/default.nix4
-rw-r--r--pkgs/development/python-modules/certomancer/default.nix71
-rw-r--r--pkgs/development/python-modules/cffi/default.nix9
-rw-r--r--pkgs/development/python-modules/chainer/default.nix6
-rw-r--r--pkgs/development/python-modules/chalice/default.nix6
-rw-r--r--pkgs/development/python-modules/cherrypy/default.nix4
-rw-r--r--pkgs/development/python-modules/chex/default.nix8
-rw-r--r--pkgs/development/python-modules/chiavdf/default.nix4
-rw-r--r--pkgs/development/python-modules/ciscoconfparse/default.nix1
-rw-r--r--pkgs/development/python-modules/ckcc-protocol/default.nix4
-rw-r--r--pkgs/development/python-modules/claripy/default.nix12
-rw-r--r--pkgs/development/python-modules/cle/default.nix8
-rw-r--r--pkgs/development/python-modules/click-log/default.nix4
-rw-r--r--pkgs/development/python-modules/click/default.nix11
-rw-r--r--pkgs/development/python-modules/clickhouse-driver/default.nix2
-rw-r--r--pkgs/development/python-modules/clize/default.nix35
-rw-r--r--pkgs/development/python-modules/clldutils/default.nix10
-rw-r--r--pkgs/development/python-modules/cloudflare/default.nix4
-rw-r--r--pkgs/development/python-modules/cma/default.nix4
-rw-r--r--pkgs/development/python-modules/cmd2/default.nix4
-rw-r--r--pkgs/development/python-modules/collections-extended/default.nix15
-rw-r--r--pkgs/development/python-modules/commoncode/default.nix11
-rw-r--r--pkgs/development/python-modules/construct/default.nix4
-rw-r--r--pkgs/development/python-modules/convertdate/default.nix17
-rw-r--r--pkgs/development/python-modules/coqpit/default.nix6
-rw-r--r--pkgs/development/python-modules/coverage/default.nix4
-rw-r--r--pkgs/development/python-modules/cppy/default.nix19
-rw-r--r--pkgs/development/python-modules/cryptography/default.nix50
-rw-r--r--pkgs/development/python-modules/cryptography/vectors.nix15
-rw-r--r--pkgs/development/python-modules/crytic-compile/default.nix6
-rw-r--r--pkgs/development/python-modules/cssselect2/default.nix10
-rw-r--r--pkgs/development/python-modules/cupy/default.nix14
-rw-r--r--pkgs/development/python-modules/cx_freeze/default.nix4
-rw-r--r--pkgs/development/python-modules/cyclonedx-python-lib/default.nix21
-rw-r--r--pkgs/development/python-modules/cypherpunkpay/default.nix97
-rw-r--r--pkgs/development/python-modules/dask-mpi/default.nix4
-rw-r--r--pkgs/development/python-modules/dask/default.nix6
-rw-r--r--pkgs/development/python-modules/databricks-connect/default.nix4
-rw-r--r--pkgs/development/python-modules/datadog/default.nix10
-rw-r--r--pkgs/development/python-modules/dataset/default.nix16
-rw-r--r--pkgs/development/python-modules/datasets/default.nix27
-rw-r--r--pkgs/development/python-modules/datasette/default.nix24
-rw-r--r--pkgs/development/python-modules/datashader/default.nix1
-rw-r--r--pkgs/development/python-modules/datatable/default.nix12
-rw-r--r--pkgs/development/python-modules/dateparser/default.nix4
-rw-r--r--pkgs/development/python-modules/db-dtypes/default.nix39
-rw-r--r--pkgs/development/python-modules/debtcollector/default.nix4
-rw-r--r--pkgs/development/python-modules/debugpy/default.nix1
-rw-r--r--pkgs/development/python-modules/deepdiff/default.nix9
-rw-r--r--pkgs/development/python-modules/deezer-python/default.nix6
-rw-r--r--pkgs/development/python-modules/detect-secrets/default.nix4
-rw-r--r--pkgs/development/python-modules/devolo-home-control-api/default.nix4
-rw-r--r--pkgs/development/python-modules/devtools/default.nix7
-rw-r--r--pkgs/development/python-modules/dictpath/default.nix2
-rw-r--r--pkgs/development/python-modules/diff-cover/default.nix6
-rw-r--r--pkgs/development/python-modules/diskcache/default.nix4
-rw-r--r--pkgs/development/python-modules/distributed/default.nix4
-rw-r--r--pkgs/development/python-modules/distro/default.nix4
-rw-r--r--pkgs/development/python-modules/django-allauth/default.nix36
-rw-r--r--pkgs/development/python-modules/django-appconf/default.nix45
-rw-r--r--pkgs/development/python-modules/django-hijack-admin/default.nix3
-rw-r--r--pkgs/development/python-modules/django-hijack/default.nix44
-rw-r--r--pkgs/development/python-modules/django-raster/default.nix4
-rw-r--r--pkgs/development/python-modules/django-statici18n/default.nix4
-rw-r--r--pkgs/development/python-modules/django-widget-tweaks/default.nix41
-rw-r--r--pkgs/development/python-modules/django/1.10-gis-libs.template.patch24
-rw-r--r--pkgs/development/python-modules/django/2.nix39
-rw-r--r--pkgs/development/python-modules/django/3.nix4
-rw-r--r--pkgs/development/python-modules/django/4.nix4
-rw-r--r--pkgs/development/python-modules/django_appconf/default.nix35
-rw-r--r--pkgs/development/python-modules/django_compressor/default.nix4
-rw-r--r--pkgs/development/python-modules/django_contrib_comments/default.nix4
-rw-r--r--pkgs/development/python-modules/django_modelcluster/default.nix36
-rw-r--r--pkgs/development/python-modules/django_reversion/default.nix4
-rw-r--r--pkgs/development/python-modules/dm-haiku/default.nix13
-rw-r--r--pkgs/development/python-modules/dm-sonnet/default.nix91
-rw-r--r--pkgs/development/python-modules/dnspython/default.nix20
-rw-r--r--pkgs/development/python-modules/doc8/default.nix4
-rw-r--r--pkgs/development/python-modules/docutils/default.nix4
-rw-r--r--pkgs/development/python-modules/doit/default.nix11
-rw-r--r--pkgs/development/python-modules/dotmap/default.nix4
-rw-r--r--pkgs/development/python-modules/dragonfly/default.nix4
-rw-r--r--pkgs/development/python-modules/dropbox/default.nix50
-rw-r--r--pkgs/development/python-modules/dugong/default.nix5
-rw-r--r--pkgs/development/python-modules/dunamai/default.nix4
-rw-r--r--pkgs/development/python-modules/dynalite-devices/default.nix4
-rw-r--r--pkgs/development/python-modules/eagle100/default.nix37
-rw-r--r--pkgs/development/python-modules/easyprocess/default.nix4
-rw-r--r--pkgs/development/python-modules/editables/default.nix4
-rw-r--r--pkgs/development/python-modules/elkm1-lib/default.nix4
-rw-r--r--pkgs/development/python-modules/enaml/default.nix9
-rw-r--r--pkgs/development/python-modules/entrypoint2/default.nix4
-rw-r--r--pkgs/development/python-modules/entrypoints/default.nix29
-rw-r--r--pkgs/development/python-modules/env-canada/default.nix6
-rw-r--r--pkgs/development/python-modules/ephemeral-port-reserve/default.nix42
-rw-r--r--pkgs/development/python-modules/exchangelib/default.nix6
-rw-r--r--pkgs/development/python-modules/faker/default.nix4
-rw-r--r--pkgs/development/python-modules/fakeredis/default.nix5
-rw-r--r--pkgs/development/python-modules/falcon/default.nix79
-rw-r--r--pkgs/development/python-modules/faraday-plugins/default.nix6
-rw-r--r--pkgs/development/python-modules/fastapi/default.nix20
-rw-r--r--pkgs/development/python-modules/fastcore/default.nix6
-rw-r--r--pkgs/development/python-modules/fasteners/default.nix35
-rw-r--r--pkgs/development/python-modules/fastparquet/default.nix4
-rw-r--r--pkgs/development/python-modules/fenics/default.nix (renamed from pkgs/development/libraries/science/math/fenics/default.nix)32
-rw-r--r--pkgs/development/python-modules/ffcv/default.nix5
-rw-r--r--pkgs/development/python-modules/filelock/default.nix4
-rw-r--r--pkgs/development/python-modules/findpython/default.nix53
-rw-r--r--pkgs/development/python-modules/fints/default.nix4
-rw-r--r--pkgs/development/python-modules/fipy/default.nix8
-rw-r--r--pkgs/development/python-modules/fipy/gmsh.patch182
-rw-r--r--pkgs/development/python-modules/fitbit/default.nix40
-rw-r--r--pkgs/development/python-modules/fivem-api/default.nix42
-rw-r--r--pkgs/development/python-modules/flake8-blind-except/default.nix5
-rw-r--r--pkgs/development/python-modules/flake8-bugbear/default.nix13
-rw-r--r--pkgs/development/python-modules/flake8/default.nix2
-rw-r--r--pkgs/development/python-modules/flask-admin/default.nix5
-rw-r--r--pkgs/development/python-modules/flask-appbuilder/default.nix17
-rw-r--r--pkgs/development/python-modules/flask-bcrypt/default.nix12
-rw-r--r--pkgs/development/python-modules/flask-compress/default.nix34
-rw-r--r--pkgs/development/python-modules/flask-httpauth/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-login/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-paranoid/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-restful/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-restful/werkzeug-2.1.0-compat.patch114
-rw-r--r--pkgs/development/python-modules/flask-restx/default.nix15
-rw-r--r--pkgs/development/python-modules/flask-seasurf/default.nix16
-rw-r--r--pkgs/development/python-modules/flask-security-too/default.nix98
-rw-r--r--pkgs/development/python-modules/flask-socketio/default.nix8
-rw-r--r--pkgs/development/python-modules/flask-talisman/default.nix4
-rw-r--r--pkgs/development/python-modules/flask/default.nix14
-rw-r--r--pkgs/development/python-modules/flatbuffers/default.nix1
-rw-r--r--pkgs/development/python-modules/flax/default.nix10
-rw-r--r--pkgs/development/python-modules/flickrapi/default.nix69
-rw-r--r--pkgs/development/python-modules/flit-core/default.nix4
-rw-r--r--pkgs/development/python-modules/flit/default.nix21
-rw-r--r--pkgs/development/python-modules/flux-led/default.nix4
-rw-r--r--pkgs/development/python-modules/fn/default.nix30
-rw-r--r--pkgs/development/python-modules/fontparts/default.nix8
-rw-r--r--pkgs/development/python-modules/fonttools/default.nix7
-rw-r--r--pkgs/development/python-modules/freezegun/default.nix31
-rw-r--r--pkgs/development/python-modules/fs/default.nix4
-rw-r--r--pkgs/development/python-modules/ftfy/default.nix10
-rw-r--r--pkgs/development/python-modules/funcparserlib/default.nix2
-rw-r--r--pkgs/development/python-modules/furo/default.nix4
-rw-r--r--pkgs/development/python-modules/fuse-python/default.nix4
-rw-r--r--pkgs/development/python-modules/gattlib/default.nix68
-rw-r--r--pkgs/development/python-modules/gattlib/setup.patch18
-rw-r--r--pkgs/development/python-modules/gb-io/default.nix45
-rw-r--r--pkgs/development/python-modules/genshi/default.nix4
-rw-r--r--pkgs/development/python-modules/geoalchemy2/default.nix15
-rw-r--r--pkgs/development/python-modules/geocachingapi/default.nix14
-rw-r--r--pkgs/development/python-modules/geopandas/default.nix15
-rw-r--r--pkgs/development/python-modules/ghapi/default.nix4
-rw-r--r--pkgs/development/python-modules/gidgethub/default.nix4
-rw-r--r--pkgs/development/python-modules/gipc/default.nix2
-rw-r--r--pkgs/development/python-modules/git-annex-adapter/default.nix4
-rw-r--r--pkgs/development/python-modules/github3_py/default.nix4
-rw-r--r--pkgs/development/python-modules/glad/default.nix18
-rw-r--r--pkgs/development/python-modules/glcontext/default.nix6
-rw-r--r--pkgs/development/python-modules/glean-parser/default.nix11
-rw-r--r--pkgs/development/python-modules/glfw/default.nix6
-rw-r--r--pkgs/development/python-modules/globus-sdk/default.nix6
-rw-r--r--pkgs/development/python-modules/google-api-core/default.nix4
-rw-r--r--pkgs/development/python-modules/google-api-python-client/default.nix4
-rw-r--r--pkgs/development/python-modules/google-auth-oauthlib/default.nix16
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix48
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery/default.nix19
-rw-r--r--pkgs/development/python-modules/google-cloud-bigtable/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-dataproc/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-error-reporting/default.nix13
-rw-r--r--pkgs/development/python-modules/google-cloud-pubsub/default.nix11
-rw-r--r--pkgs/development/python-modules/google-cloud-secret-manager/default.nix8
-rw-r--r--pkgs/development/python-modules/google-cloud-testutils/default.nix4
-rw-r--r--pkgs/development/python-modules/google-nest-sdm/default.nix4
-rw-r--r--pkgs/development/python-modules/gradient/default.nix4
-rw-r--r--pkgs/development/python-modules/graph_nets/default.nix45
-rw-r--r--pkgs/development/python-modules/graphene-django/default.nix10
-rw-r--r--pkgs/development/python-modules/graphene-django/graphene-3_2_0.patch150
-rw-r--r--pkgs/development/python-modules/graphene/default.nix17
-rw-r--r--pkgs/development/python-modules/graphql-relay/default.nix23
-rw-r--r--pkgs/development/python-modules/graphql-subscription-manager/default.nix6
-rw-r--r--pkgs/development/python-modules/graphviz/default.nix4
-rw-r--r--pkgs/development/python-modules/graspologic/default.nix4
-rw-r--r--pkgs/development/python-modules/greeclimate/default.nix6
-rw-r--r--pkgs/development/python-modules/gremlinpython/default.nix12
-rw-r--r--pkgs/development/python-modules/grip/default.nix13
-rw-r--r--pkgs/development/python-modules/grpcio-status/default.nix4
-rw-r--r--pkgs/development/python-modules/grpcio-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/gspread/default.nix4
-rw-r--r--pkgs/development/python-modules/gssapi/default.nix4
-rw-r--r--pkgs/development/python-modules/h11/default.nix7
-rw-r--r--pkgs/development/python-modules/h3/default.nix6
-rw-r--r--pkgs/development/python-modules/ha-av/default.nix43
-rw-r--r--pkgs/development/python-modules/hachoir/default.nix12
-rw-r--r--pkgs/development/python-modules/hahomematic/default.nix6
-rw-r--r--pkgs/development/python-modules/hangups/default.nix4
-rw-r--r--pkgs/development/python-modules/hass-nabucasa/default.nix3
-rw-r--r--pkgs/development/python-modules/hatasmota/default.nix4
-rw-r--r--pkgs/development/python-modules/hatchling/default.nix79
-rw-r--r--pkgs/development/python-modules/hg-git/default.nix20
-rw-r--r--pkgs/development/python-modules/hid/default.nix4
-rw-r--r--pkgs/development/python-modules/hidapi/default.nix4
-rw-r--r--pkgs/development/python-modules/hkavr/default.nix37
-rw-r--r--pkgs/development/python-modules/hmmlearn/default.nix17
-rw-r--r--pkgs/development/python-modules/homeconnect/default.nix15
-rw-r--r--pkgs/development/python-modules/hpack/default.nix25
-rw-r--r--pkgs/development/python-modules/html-sanitizer/default.nix4
-rw-r--r--pkgs/development/python-modules/httpbin/default.nix10
-rw-r--r--pkgs/development/python-modules/httpcore/default.nix11
-rw-r--r--pkgs/development/python-modules/httplib2/default.nix14
-rw-r--r--pkgs/development/python-modules/httptools/default.nix4
-rw-r--r--pkgs/development/python-modules/httpx-ntlm/default.nix8
-rw-r--r--pkgs/development/python-modules/httpx/default.nix4
-rw-r--r--pkgs/development/python-modules/huggingface-hub/default.nix4
-rw-r--r--pkgs/development/python-modules/humanize/default.nix4
-rw-r--r--pkgs/development/python-modules/hwi/default.nix19
-rw-r--r--pkgs/development/python-modules/hydra-check/default.nix31
-rw-r--r--pkgs/development/python-modules/hyperframe/default.nix5
-rw-r--r--pkgs/development/python-modules/hyperion-py/default.nix7
-rw-r--r--pkgs/development/python-modules/hypothesis/default.nix4
-rw-r--r--pkgs/development/python-modules/hypothesmith/default.nix36
-rw-r--r--pkgs/development/python-modules/hypothesmith/remove-black.patch88
-rw-r--r--pkgs/development/python-modules/hyppo/default.nix10
-rw-r--r--pkgs/development/python-modules/ibis-framework/default.nix6
-rw-r--r--pkgs/development/python-modules/igraph/default.nix5
-rw-r--r--pkgs/development/python-modules/ihatemoney/default.nix3
-rw-r--r--pkgs/development/python-modules/imageio/default.nix39
-rw-r--r--pkgs/development/python-modules/imageio/libgl-path.patch13
-rw-r--r--pkgs/development/python-modules/imap-tools/default.nix5
-rw-r--r--pkgs/development/python-modules/img2pdf/default.nix14
-rw-r--r--pkgs/development/python-modules/impacket/default.nix36
-rw-r--r--pkgs/development/python-modules/importlib-metadata/default.nix6
-rw-r--r--pkgs/development/python-modules/importlib-resources/default.nix5
-rw-r--r--pkgs/development/python-modules/inquirer/default.nix4
-rw-r--r--pkgs/development/python-modules/installer/default.nix4
-rw-r--r--pkgs/development/python-modules/intbitset/default.nix25
-rw-r--r--pkgs/development/python-modules/intbitset/remove-impure-tuning.patch24
-rw-r--r--pkgs/development/python-modules/intellifire4py/default.nix4
-rw-r--r--pkgs/development/python-modules/intensity-normalization/default.nix9
-rw-r--r--pkgs/development/python-modules/invocations/default.nix19
-rw-r--r--pkgs/development/python-modules/ipykernel/default.nix16
-rw-r--r--pkgs/development/python-modules/ipympl/default.nix7
-rw-r--r--pkgs/development/python-modules/ipython/default.nix8
-rw-r--r--pkgs/development/python-modules/ipywidgets/default.nix4
-rw-r--r--pkgs/development/python-modules/islpy/default.nix4
-rw-r--r--pkgs/development/python-modules/iso4217/default.nix4
-rw-r--r--pkgs/development/python-modules/iso8601/default.nix7
-rw-r--r--pkgs/development/python-modules/iterm2/default.nix4
-rw-r--r--pkgs/development/python-modules/itsdangerous/default.nix4
-rw-r--r--pkgs/development/python-modules/jaraco_itertools/default.nix5
-rw-r--r--pkgs/development/python-modules/jaraco_text/default.nix4
-rw-r--r--pkgs/development/python-modules/jarowinkler/default.nix54
-rw-r--r--pkgs/development/python-modules/jax/default.nix29
-rw-r--r--pkgs/development/python-modules/jaxlib/bin.nix12
-rw-r--r--pkgs/development/python-modules/jaxlib/default.nix14
-rw-r--r--pkgs/development/python-modules/jeepney/default.nix13
-rw-r--r--pkgs/development/python-modules/jenkins-job-builder/default.nix4
-rw-r--r--pkgs/development/python-modules/jinja2/default.nix7
-rw-r--r--pkgs/development/python-modules/jira/default.nix31
-rw-r--r--pkgs/development/python-modules/jmespath/default.nix4
-rw-r--r--pkgs/development/python-modules/joblib/default.nix2
-rw-r--r--pkgs/development/python-modules/josepy/default.nix4
-rw-r--r--pkgs/development/python-modules/jsbeautifier/default.nix4
-rw-r--r--pkgs/development/python-modules/json-home-client/default.nix40
-rw-r--r--pkgs/development/python-modules/json-schema-for-humans/default.nix11
-rw-r--r--pkgs/development/python-modules/jsondiff/default.nix4
-rw-r--r--pkgs/development/python-modules/jsonpickle/default.nix4
-rw-r--r--pkgs/development/python-modules/junos-eznc/default.nix64
-rw-r--r--pkgs/development/python-modules/jupyter-client/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyter-packaging/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyter_console/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyter_core/default.nix35
-rw-r--r--pkgs/development/python-modules/jupyterlab-git/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyterlab/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyterlab_server/default.nix12
-rw-r--r--pkgs/development/python-modules/jupytext/default.nix6
-rw-r--r--pkgs/development/python-modules/kaldi-active-grammar/default.nix8
-rw-r--r--pkgs/development/python-modules/karton-core/default.nix6
-rw-r--r--pkgs/development/python-modules/kbcstorage/default.nix69
-rw-r--r--pkgs/development/python-modules/keepalive/default.nix1
-rw-r--r--pkgs/development/python-modules/keras/default.nix4
-rw-r--r--pkgs/development/python-modules/kiss-headers/default.nix6
-rw-r--r--pkgs/development/python-modules/kivy-garden/default.nix20
-rw-r--r--pkgs/development/python-modules/kiwisolver/default.nix30
-rw-r--r--pkgs/development/python-modules/kubernetes/default.nix7
-rw-r--r--pkgs/development/python-modules/labelbox/default.nix6
-rw-r--r--pkgs/development/python-modules/labgrid/default.nix2
-rw-r--r--pkgs/development/python-modules/ledgerblue/default.nix35
-rw-r--r--pkgs/development/python-modules/lektor/default.nix79
-rw-r--r--pkgs/development/python-modules/levenshtein/default.nix22
-rw-r--r--pkgs/development/python-modules/libcst/default.nix25
-rw-r--r--pkgs/development/python-modules/libevdev/default.nix4
-rw-r--r--pkgs/development/python-modules/libgpuarray/default.nix4
-rw-r--r--pkgs/development/python-modules/libtmux/default.nix12
-rw-r--r--pkgs/development/python-modules/lightwave2/default.nix4
-rw-r--r--pkgs/development/python-modules/limits/default.nix4
-rw-r--r--pkgs/development/python-modules/lmnotify/default.nix23
-rw-r--r--pkgs/development/python-modules/losant-rest/default.nix4
-rw-r--r--pkgs/development/python-modules/lru-dict/default.nix34
-rw-r--r--pkgs/development/python-modules/luxtronik/default.nix4
-rw-r--r--pkgs/development/python-modules/lxmf/default.nix39
-rw-r--r--pkgs/development/python-modules/lxml/default.nix4
-rw-r--r--pkgs/development/python-modules/lz4/default.nix17
-rw-r--r--pkgs/development/python-modules/magicgui/default.nix15
-rw-r--r--pkgs/development/python-modules/mailchecker/default.nix4
-rw-r--r--pkgs/development/python-modules/manticore/default.nix4
-rw-r--r--pkgs/development/python-modules/mariadb/default.nix4
-rw-r--r--pkgs/development/python-modules/markupsafe/default.nix8
-rw-r--r--pkgs/development/python-modules/marshmallow-dataclass/default.nix4
-rw-r--r--pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix4
-rw-r--r--pkgs/development/python-modules/matchpy/default.nix52
-rw-r--r--pkgs/development/python-modules/matrix-nio/default.nix1
-rw-r--r--pkgs/development/python-modules/mccabe/default.nix20
-rw-r--r--pkgs/development/python-modules/md-toc/default.nix4
-rw-r--r--pkgs/development/python-modules/mdurl/default.nix4
-rw-r--r--pkgs/development/python-modules/mechanize/default.nix4
-rw-r--r--pkgs/development/python-modules/mergedb/default.nix51
-rw-r--r--pkgs/development/python-modules/merkletools/default.nix2
-rw-r--r--pkgs/development/python-modules/meshio/default.nix6
-rw-r--r--pkgs/development/python-modules/metakernel/default.nix4
-rw-r--r--pkgs/development/python-modules/meteofrance-api/default.nix76
-rw-r--r--pkgs/development/python-modules/mezzanine/default.nix70
-rw-r--r--pkgs/development/python-modules/minio/default.nix4
-rw-r--r--pkgs/development/python-modules/mitmproxy/default.nix1
-rw-r--r--pkgs/development/python-modules/mkdocs-material/default.nix19
-rw-r--r--pkgs/development/python-modules/mkdocs/default.nix13
-rw-r--r--pkgs/development/python-modules/mlflow/default.nix4
-rw-r--r--pkgs/development/python-modules/mock/default.nix26
-rw-r--r--pkgs/development/python-modules/mocket/default.nix4
-rw-r--r--pkgs/development/python-modules/modeled/default.nix4
-rw-r--r--pkgs/development/python-modules/monero/default.nix51
-rw-r--r--pkgs/development/python-modules/mongoengine/default.nix9
-rw-r--r--pkgs/development/python-modules/moonraker-api/default.nix4
-rw-r--r--pkgs/development/python-modules/moretools/default.nix4
-rw-r--r--pkgs/development/python-modules/motionblinds/default.nix6
-rw-r--r--pkgs/development/python-modules/moto/default.nix284
-rw-r--r--pkgs/development/python-modules/msal-extensions/default.nix4
-rw-r--r--pkgs/development/python-modules/msrest/default.nix69
-rw-r--r--pkgs/development/python-modules/multidict/default.nix4
-rw-r--r--pkgs/development/python-modules/mutagen/default.nix63
-rw-r--r--pkgs/development/python-modules/mutmut/default.nix4
-rw-r--r--pkgs/development/python-modules/mwclient/default.nix38
-rw-r--r--pkgs/development/python-modules/mwoauth/default.nix23
-rw-r--r--pkgs/development/python-modules/mxnet/default.nix6
-rw-r--r--pkgs/development/python-modules/myfitnesspal/default.nix2
-rw-r--r--pkgs/development/python-modules/myjwt/default.nix14
-rw-r--r--pkgs/development/python-modules/mypy-boto3-s3/default.nix5
-rw-r--r--pkgs/development/python-modules/mypy/default.nix8
-rw-r--r--pkgs/development/python-modules/napari-npe2/default.nix54
-rw-r--r--pkgs/development/python-modules/napari/default.nix21
-rw-r--r--pkgs/development/python-modules/nats-py/default.nix6
-rw-r--r--pkgs/development/python-modules/nbclient/default.nix4
-rw-r--r--pkgs/development/python-modules/nbconvert/default.nix7
-rw-r--r--pkgs/development/python-modules/nbformat/default.nix4
-rw-r--r--pkgs/development/python-modules/ncclient/default.nix4
-rw-r--r--pkgs/development/python-modules/ndg-httpsclient/default.nix9
-rw-r--r--pkgs/development/python-modules/neo4j-driver/default.nix4
-rw-r--r--pkgs/development/python-modules/net2grid/default.nix58
-rw-r--r--pkgs/development/python-modules/netmiko/default.nix4
-rw-r--r--pkgs/development/python-modules/networkx/default.nix4
-rw-r--r--pkgs/development/python-modules/nextcord/default.nix4
-rw-r--r--pkgs/development/python-modules/nibabel/default.nix13
-rw-r--r--pkgs/development/python-modules/nilearn/default.nix4
-rw-r--r--pkgs/development/python-modules/nipype/neurdflib.nix4
-rw-r--r--pkgs/development/python-modules/nix-prefetch-github/default.nix7
-rw-r--r--pkgs/development/python-modules/nocasedict/default.nix13
-rw-r--r--pkgs/development/python-modules/nodeenv/default.nix9
-rw-r--r--pkgs/development/python-modules/nomadnet/default.nix43
-rw-r--r--pkgs/development/python-modules/nose-cover3/default.nix27
-rw-r--r--pkgs/development/python-modules/nose/default.nix4
-rw-r--r--pkgs/development/python-modules/notebook/default.nix4
-rw-r--r--pkgs/development/python-modules/nplusone/default.nix3
-rw-r--r--pkgs/development/python-modules/numba/default.nix20
-rw-r--r--pkgs/development/python-modules/numpydoc/default.nix45
-rw-r--r--pkgs/development/python-modules/nunavut/default.nix6
-rw-r--r--pkgs/development/python-modules/oasatelematics/default.nix40
-rw-r--r--pkgs/development/python-modules/oauthlib/default.nix26
-rw-r--r--pkgs/development/python-modules/objax/default.nix4
-rw-r--r--pkgs/development/python-modules/oci/default.nix4
-rw-r--r--pkgs/development/python-modules/ocrmypdf/default.nix4
-rw-r--r--pkgs/development/python-modules/ondilo/default.nix13
-rw-r--r--pkgs/development/python-modules/onnx/default.nix15
-rw-r--r--pkgs/development/python-modules/openai/default.nix6
-rw-r--r--pkgs/development/python-modules/openapi-core/default.nix2
-rw-r--r--pkgs/development/python-modules/openapi-schema-validator/default.nix4
-rw-r--r--pkgs/development/python-modules/openapi-spec-validator/default.nix14
-rw-r--r--pkgs/development/python-modules/openhomedevice/default.nix11
-rw-r--r--pkgs/development/python-modules/openshift/default.nix4
-rw-r--r--pkgs/development/python-modules/opentracing/default.nix19
-rw-r--r--pkgs/development/python-modules/optax/default.nix1
-rw-r--r--pkgs/development/python-modules/ordered-set/default.nix37
-rw-r--r--pkgs/development/python-modules/ormar/default.nix6
-rw-r--r--pkgs/development/python-modules/osc-lib/default.nix8
-rw-r--r--pkgs/development/python-modules/oslo-context/default.nix4
-rw-r--r--pkgs/development/python-modules/oslo-log/default.nix12
-rw-r--r--pkgs/development/python-modules/ovh/default.nix35
-rw-r--r--pkgs/development/python-modules/packageurl-python/default.nix4
-rw-r--r--pkgs/development/python-modules/packaging/default.nix54
-rw-r--r--pkgs/development/python-modules/paho-mqtt/default.nix10
-rw-r--r--pkgs/development/python-modules/pandas/default.nix12
-rw-r--r--pkgs/development/python-modules/panel/default.nix4
-rw-r--r--pkgs/development/python-modules/parameterizedtestcase/default.nix1
-rw-r--r--pkgs/development/python-modules/parse-type/default.nix6
-rw-r--r--pkgs/development/python-modules/parsimonious/default.nix37
-rw-r--r--pkgs/development/python-modules/path.py/default.nix50
-rw-r--r--pkgs/development/python-modules/path/default.nix51
-rw-r--r--pkgs/development/python-modules/pathlib2/default.nix20
-rw-r--r--pkgs/development/python-modules/pdm-pep517/default.nix4
-rw-r--r--pkgs/development/python-modules/peco/default.nix39
-rw-r--r--pkgs/development/python-modules/peewee/default.nix4
-rw-r--r--pkgs/development/python-modules/pelican/default.nix4
-rw-r--r--pkgs/development/python-modules/pencompy/default.nix32
-rw-r--r--pkgs/development/python-modules/pep257/default.nix23
-rw-r--r--pkgs/development/python-modules/perfplot/default.nix4
-rw-r--r--pkgs/development/python-modules/pex/default.nix4
-rw-r--r--pkgs/development/python-modules/pg8000/default.nix4
-rw-r--r--pkgs/development/python-modules/pgspecial/default.nix9
-rw-r--r--pkgs/development/python-modules/phe/default.nix4
-rw-r--r--pkgs/development/python-modules/phik/default.nix4
-rw-r--r--pkgs/development/python-modules/phonemizer/default.nix4
-rw-r--r--pkgs/development/python-modules/phonenumbers/default.nix4
-rw-r--r--pkgs/development/python-modules/pickleshare/default.nix4
-rw-r--r--pkgs/development/python-modules/pikepdf/default.nix4
-rw-r--r--pkgs/development/python-modules/pillow-simd/default.nix6
-rw-r--r--pkgs/development/python-modules/pillow/default.nix18
-rw-r--r--pkgs/development/python-modules/pip-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/pip/default.nix4
-rw-r--r--pkgs/development/python-modules/pixcat/default.nix38
-rw-r--r--pkgs/development/python-modules/plaid-python/default.nix4
-rw-r--r--pkgs/development/python-modules/platformdirs/default.nix4
-rw-r--r--pkgs/development/python-modules/pleroma-bot/default.nix29
-rw-r--r--pkgs/development/python-modules/plotly/default.nix4
-rw-r--r--pkgs/development/python-modules/plugwise/default.nix6
-rw-r--r--pkgs/development/python-modules/plumbum/default.nix8
-rw-r--r--pkgs/development/python-modules/poetry-core/default.nix4
-rw-r--r--pkgs/development/python-modules/polars/default.nix57
-rw-r--r--pkgs/development/python-modules/policy-sentry/default.nix4
-rw-r--r--pkgs/development/python-modules/policyuniverse/default.nix4
-rw-r--r--pkgs/development/python-modules/pooch/default.nix5
-rw-r--r--pkgs/development/python-modules/portalocker/default.nix4
-rw-r--r--pkgs/development/python-modules/pre-commit-hooks/default.nix6
-rw-r--r--pkgs/development/python-modules/prettytable/default.nix4
-rw-r--r--pkgs/development/python-modules/prometheus-client/default.nix4
-rw-r--r--pkgs/development/python-modules/promise/default.nix5
-rw-r--r--pkgs/development/python-modules/prompt-toolkit/default.nix6
-rw-r--r--pkgs/development/python-modules/proto-plus/default.nix4
-rw-r--r--pkgs/development/python-modules/proxy-py/default.nix4
-rw-r--r--pkgs/development/python-modules/psautohint/default.nix16
-rw-r--r--pkgs/development/python-modules/pubnub/default.nix6
-rw-r--r--pkgs/development/python-modules/pure-python-adb/default.nix31
-rw-r--r--pkgs/development/python-modules/purl/default.nix17
-rw-r--r--pkgs/development/python-modules/pwntools/default.nix4
-rw-r--r--pkgs/development/python-modules/py-radix/default.nix3
-rw-r--r--pkgs/development/python-modules/py3rijndael/default.nix30
-rw-r--r--pkgs/development/python-modules/py4j/default.nix4
-rw-r--r--pkgs/development/python-modules/pyTelegramBotAPI/default.nix26
-rw-r--r--pkgs/development/python-modules/pyamg/default.nix4
-rw-r--r--pkgs/development/python-modules/pyasn1/default.nix10
-rw-r--r--pkgs/development/python-modules/pyathena/default.nix4
-rw-r--r--pkgs/development/python-modules/pyatmo/default.nix4
-rw-r--r--pkgs/development/python-modules/pybids/default.nix4
-rw-r--r--pkgs/development/python-modules/pybind11/default.nix4
-rw-r--r--pkgs/development/python-modules/pybluez/default.nix32
-rw-r--r--pkgs/development/python-modules/pybotvac/default.nix14
-rw-r--r--pkgs/development/python-modules/pycapnp/default.nix8
-rw-r--r--pkgs/development/python-modules/pycep-parser/default.nix7
-rw-r--r--pkgs/development/python-modules/pycfmodel/default.nix6
-rw-r--r--pkgs/development/python-modules/pycognito/default.nix10
-rw-r--r--pkgs/development/python-modules/pycoolmasternet-async/default.nix4
-rw-r--r--pkgs/development/python-modules/pycountry/default.nix4
-rw-r--r--pkgs/development/python-modules/pycuda/default.nix4
-rw-r--r--pkgs/development/python-modules/pycurl/default.nix12
-rw-r--r--pkgs/development/python-modules/pydmd/default.nix7
-rw-r--r--pkgs/development/python-modules/pyee/default.nix20
-rw-r--r--pkgs/development/python-modules/pyefergy/default.nix11
-rw-r--r--pkgs/development/python-modules/pyezviz/default.nix4
-rw-r--r--pkgs/development/python-modules/pyfaidx/default.nix14
-rw-r--r--pkgs/development/python-modules/pyfakefs/default.nix4
-rw-r--r--pkgs/development/python-modules/pygatt/default.nix8
-rw-r--r--pkgs/development/python-modules/pygit2/default.nix4
-rw-r--r--pkgs/development/python-modules/pygls/default.nix3
-rw-r--r--pkgs/development/python-modules/pyhanko-certvalidator/default.nix73
-rw-r--r--pkgs/development/python-modules/pyhanko/0001-Updating-pytest-aiohttp-version.patch25
-rw-r--r--pkgs/development/python-modules/pyhanko/default.nix132
-rw-r--r--pkgs/development/python-modules/pyhaversion/default.nix6
-rw-r--r--pkgs/development/python-modules/pyicu/default.nix4
-rw-r--r--pkgs/development/python-modules/pyinfra/default.nix4
-rw-r--r--pkgs/development/python-modules/pyisy/default.nix6
-rw-r--r--pkgs/development/python-modules/pykerberos/default.nix4
-rw-r--r--pkgs/development/python-modules/pykeyatome/default.nix6
-rw-r--r--pkgs/development/python-modules/pylama/default.nix19
-rw-r--r--pkgs/development/python-modules/pylint-django/default.nix4
-rw-r--r--pkgs/development/python-modules/pylint/default.nix28
-rw-r--r--pkgs/development/python-modules/pymazda/default.nix4
-rw-r--r--pkgs/development/python-modules/pymc3/default.nix4
-rw-r--r--pkgs/development/python-modules/pymemcache/default.nix10
-rw-r--r--pkgs/development/python-modules/pymfy/default.nix13
-rw-r--r--pkgs/development/python-modules/pymongo/default.nix4
-rw-r--r--pkgs/development/python-modules/pympler/default.nix13
-rw-r--r--pkgs/development/python-modules/pynello/default.nix10
-rw-r--r--pkgs/development/python-modules/pynetbox/default.nix6
-rw-r--r--pkgs/development/python-modules/pynetdicom/default.nix12
-rw-r--r--pkgs/development/python-modules/pynetgear/default.nix6
-rw-r--r--pkgs/development/python-modules/pynina/default.nix4
-rw-r--r--pkgs/development/python-modules/pynndescent/default.nix10
-rw-r--r--pkgs/development/python-modules/pyomo/default.nix4
-rw-r--r--pkgs/development/python-modules/pyopengl-accelerate/default.nix2
-rw-r--r--pkgs/development/python-modules/pyopengl/default.nix4
-rw-r--r--pkgs/development/python-modules/pyopenssl/default.nix8
-rw-r--r--pkgs/development/python-modules/pyoppleio/default.nix37
-rw-r--r--pkgs/development/python-modules/pyoverkiz/default.nix4
-rw-r--r--pkgs/development/python-modules/pyownet/default.nix4
-rw-r--r--pkgs/development/python-modules/pypandoc/default.nix4
-rw-r--r--pkgs/development/python-modules/pyparsing/default.nix14
-rw-r--r--pkgs/development/python-modules/pypdf3/default.nix4
-rw-r--r--pkgs/development/python-modules/pyperf/default.nix4
-rw-r--r--pkgs/development/python-modules/pyplaato/default.nix20
-rw-r--r--pkgs/development/python-modules/pypng/default.nix29
-rw-r--r--pkgs/development/python-modules/pyppeteer/default.nix7
-rw-r--r--pkgs/development/python-modules/pypykatz/default.nix15
-rw-r--r--pkgs/development/python-modules/pyrad/default.nix47
-rw-r--r--pkgs/development/python-modules/pyramid_jinja2/default.nix4
-rw-r--r--pkgs/development/python-modules/pyres/default.nix19
-rw-r--r--pkgs/development/python-modules/pyro-ppl/default.nix4
-rw-r--r--pkgs/development/python-modules/pyrogram/default.nix15
-rw-r--r--pkgs/development/python-modules/pyrsistent/default.nix4
-rw-r--r--pkgs/development/python-modules/pysaj/default.nix41
-rw-r--r--pkgs/development/python-modules/pyscss/default.nix6
-rw-r--r--pkgs/development/python-modules/pysensibo/default.nix39
-rw-r--r--pkgs/development/python-modules/pysigma-backend-insightidr/default.nix47
-rw-r--r--pkgs/development/python-modules/pysigma-backend-splunk/default.nix4
-rw-r--r--pkgs/development/python-modules/pysigma-pipeline-crowdstrike/default.nix4
-rw-r--r--pkgs/development/python-modules/pysigma-pipeline-sysmon/default.nix4
-rw-r--r--pkgs/development/python-modules/pysigma-pipeline-windows/default.nix46
-rw-r--r--pkgs/development/python-modules/pysigma/default.nix4
-rw-r--r--pkgs/development/python-modules/pysimplegui/default.nix4
-rw-r--r--pkgs/development/python-modules/pyskyqremote/default.nix6
-rw-r--r--pkgs/development/python-modules/pyslurm/default.nix19
-rw-r--r--pkgs/development/python-modules/pysma/default.nix4
-rw-r--r--pkgs/development/python-modules/pysmappee/default.nix16
-rw-r--r--pkgs/development/python-modules/pysnmp-pyasn1/default.nix41
-rw-r--r--pkgs/development/python-modules/pysnmp-pysmi/default.nix46
-rw-r--r--pkgs/development/python-modules/pysnmplib/default.nix48
-rw-r--r--pkgs/development/python-modules/pysnow/default.nix58
-rw-r--r--pkgs/development/python-modules/pyspark/default.nix6
-rw-r--r--pkgs/development/python-modules/pyspnego/default.nix4
-rw-r--r--pkgs/development/python-modules/pytesseract/default.nix13
-rw-r--r--pkgs/development/python-modules/pytest-ansible/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-astropy/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-asyncio/default.nix12
-rw-r--r--pkgs/development/python-modules/pytest-check/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-cid/default.nix5
-rw-r--r--pkgs/development/python-modules/pytest-describe/default.nix40
-rw-r--r--pkgs/development/python-modules/pytest-httpbin/default.nix6
-rw-r--r--pkgs/development/python-modules/pytest-httpx/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-isort/default.nix60
-rw-r--r--pkgs/development/python-modules/pytest-metadata/default.nix15
-rw-r--r--pkgs/development/python-modules/pytest-mock/default.nix9
-rw-r--r--pkgs/development/python-modules/pytest-mpl/default.nix21
-rw-r--r--pkgs/development/python-modules/pytest-mypy/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-pep257/default.nix20
-rw-r--r--pkgs/development/python-modules/pytest-pythonpath/default.nix26
-rw-r--r--pkgs/development/python-modules/pytest-regressions/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-runner/default.nix19
-rw-r--r--pkgs/development/python-modules/pytest-shutil/default.nix11
-rw-r--r--pkgs/development/python-modules/pytest-snapshot/default.nix9
-rw-r--r--pkgs/development/python-modules/pytest-socket/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-subtests/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-testmon/default.nix17
-rw-r--r--pkgs/development/python-modules/pytest-timeout/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-xdist/default.nix11
-rw-r--r--pkgs/development/python-modules/pytest-xdist/setup-hook.sh18
-rw-r--r--pkgs/development/python-modules/pytest/default.nix60
-rw-r--r--pkgs/development/python-modules/python-barcode/default.nix48
-rw-r--r--pkgs/development/python-modules/python-binance/default.nix12
-rw-r--r--pkgs/development/python-modules/python-daemon/default.nix5
-rw-r--r--pkgs/development/python-modules/python-dbusmock/default.nix4
-rw-r--r--pkgs/development/python-modules/python-dotenv/default.nix4
-rw-r--r--pkgs/development/python-modules/python-family-hub-local/default.nix43
-rw-r--r--pkgs/development/python-modules/python-glanceclient/default.nix4
-rw-r--r--pkgs/development/python-modules/python-google-nest/default.nix6
-rw-r--r--pkgs/development/python-modules/python-heatclient/default.nix4
-rw-r--r--pkgs/development/python-modules/python-ironicclient/default.nix4
-rw-r--r--pkgs/development/python-modules/python-kasa/default.nix6
-rw-r--r--pkgs/development/python-modules/python-logstash/default.nix4
-rw-r--r--pkgs/development/python-modules/python-manilaclient/default.nix4
-rw-r--r--pkgs/development/python-modules/python-miio/default.nix33
-rw-r--r--pkgs/development/python-modules/python-pae/default.nix39
-rw-r--r--pkgs/development/python-modules/python-registry/default.nix2
-rw-r--r--pkgs/development/python-modules/python-slugify/default.nix4
-rw-r--r--pkgs/development/python-modules/python-smarttub/default.nix6
-rw-r--r--pkgs/development/python-modules/python-snappy/default.nix18
-rw-r--r--pkgs/development/python-modules/python-swiftclient/default.nix4
-rw-r--r--pkgs/development/python-modules/python-twitter/default.nix39
-rw-r--r--pkgs/development/python-modules/python-vagrant/default.nix9
-rw-r--r--pkgs/development/python-modules/python3-saml/default.nix9
-rw-r--r--pkgs/development/python-modules/pytibber/default.nix4
-rw-r--r--pkgs/development/python-modules/pytomlpp/default.nix8
-rw-r--r--pkgs/development/python-modules/pytomorrowio/default.nix38
-rw-r--r--pkgs/development/python-modules/pytools/default.nix26
-rw-r--r--pkgs/development/python-modules/pytorch-lightning/default.nix8
-rw-r--r--pkgs/development/python-modules/pytorch-metric-learning/default.nix4
-rw-r--r--pkgs/development/python-modules/pytorch-pfn-extras/default.nix24
-rw-r--r--pkgs/development/python-modules/pytorch/bin.nix1
-rw-r--r--pkgs/development/python-modules/pytorch/breakpad-sigstksz.patch13
-rw-r--r--pkgs/development/python-modules/pytorch/default.nix42
-rw-r--r--pkgs/development/python-modules/pytradfri/default.nix13
-rw-r--r--pkgs/development/python-modules/pyttsx3/default.nix24
-rw-r--r--pkgs/development/python-modules/pytz/default.nix4
-rw-r--r--pkgs/development/python-modules/pyudev/default.nix4
-rw-r--r--pkgs/development/python-modules/pyupgrade/default.nix4
-rw-r--r--pkgs/development/python-modules/pyuv/default.nix2
-rw-r--r--pkgs/development/python-modules/pyvcf/default.nix1
-rw-r--r--pkgs/development/python-modules/pyverilog/default.nix7
-rw-r--r--pkgs/development/python-modules/pyvesync/default.nix4
-rw-r--r--pkgs/development/python-modules/pyvex/default.nix6
-rw-r--r--pkgs/development/python-modules/pyvicare/default.nix8
-rw-r--r--pkgs/development/python-modules/pyvips/default.nix16
-rw-r--r--pkgs/development/python-modules/pyvis/default.nix16
-rw-r--r--pkgs/development/python-modules/pyvo/default.nix56
-rw-r--r--pkgs/development/python-modules/pywavelets/default.nix4
-rw-r--r--pkgs/development/python-modules/pywayland/default.nix4
-rw-r--r--pkgs/development/python-modules/pywbem/default.nix4
-rw-r--r--pkgs/development/python-modules/pywebview/default.nix24
-rw-r--r--pkgs/development/python-modules/pywlroots/default.nix8
-rw-r--r--pkgs/development/python-modules/qiskit-aer/default.nix17
-rw-r--r--pkgs/development/python-modules/qiskit-finance/default.nix4
-rw-r--r--pkgs/development/python-modules/qiskit-ibmq-provider/default.nix11
-rw-r--r--pkgs/development/python-modules/qiskit-machine-learning/default.nix4
-rw-r--r--pkgs/development/python-modules/qiskit-nature/default.nix8
-rw-r--r--pkgs/development/python-modules/qiskit-terra/default.nix34
-rw-r--r--pkgs/development/python-modules/qiskit/default.nix6
-rw-r--r--pkgs/development/python-modules/qtconsole/default.nix4
-rw-r--r--pkgs/development/python-modules/qutip/default.nix116
-rw-r--r--pkgs/development/python-modules/radio_beam/default.nix17
-rw-r--r--pkgs/development/python-modules/rapidfuzz-capi/default.nix28
-rw-r--r--pkgs/development/python-modules/rapidfuzz/default.nix44
-rw-r--r--pkgs/development/python-modules/rasterio/default.nix79
-rw-r--r--pkgs/development/python-modules/rdflib/default.nix50
-rw-r--r--pkgs/development/python-modules/readme_renderer/default.nix10
-rw-r--r--pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix4
-rw-r--r--pkgs/development/python-modules/redis/default.nix31
-rw-r--r--pkgs/development/python-modules/reedsolo/default.nix21
-rw-r--r--pkgs/development/python-modules/regex/default.nix4
-rw-r--r--pkgs/development/python-modules/renault-api/default.nix4
-rw-r--r--pkgs/development/python-modules/reportlab/default.nix10
-rw-r--r--pkgs/development/python-modules/requests-oauthlib/default.nix4
-rw-r--r--pkgs/development/python-modules/requests/default.nix22
-rw-r--r--pkgs/development/python-modules/responses/default.nix12
-rw-r--r--pkgs/development/python-modules/respx/default.nix4
-rw-r--r--pkgs/development/python-modules/restructuredtext_lint/default.nix4
-rw-r--r--pkgs/development/python-modules/result/default.nix45
-rw-r--r--pkgs/development/python-modules/rfc6555/default.nix10
-rw-r--r--pkgs/development/python-modules/rich/default.nix13
-rw-r--r--pkgs/development/python-modules/ring-doorbell/default.nix18
-rw-r--r--pkgs/development/python-modules/ripser/default.nix18
-rw-r--r--pkgs/development/python-modules/rjpl/default.nix37
-rw-r--r--pkgs/development/python-modules/rns/default.nix43
-rw-r--r--pkgs/development/python-modules/robotframework-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/robotstatuschecker/default.nix2
-rw-r--r--pkgs/development/python-modules/rova/default.nix40
-rw-r--r--pkgs/development/python-modules/rtsp-to-webrtc/default.nix4
-rw-r--r--pkgs/development/python-modules/s3fs/default.nix4
-rw-r--r--pkgs/development/python-modules/sabyenc3/default.nix4
-rw-r--r--pkgs/development/python-modules/sagemaker/default.nix4
-rw-r--r--pkgs/development/python-modules/samsungctl/default.nix15
-rw-r--r--pkgs/development/python-modules/samsungtvws/default.nix51
-rw-r--r--pkgs/development/python-modules/sanic-testing/default.nix32
-rw-r--r--pkgs/development/python-modules/sanic-testing/tests.nix26
-rw-r--r--pkgs/development/python-modules/sanic/default.nix13
-rw-r--r--pkgs/development/python-modules/sapi-python-client/default.nix30
-rw-r--r--pkgs/development/python-modules/schema-salad/default.nix10
-rw-r--r--pkgs/development/python-modules/scikit-build/default.nix58
-rw-r--r--pkgs/development/python-modules/scikit-image/default.nix151
-rw-r--r--pkgs/development/python-modules/scikit-learn-extra/default.nix1
-rw-r--r--pkgs/development/python-modules/scikit-learn/default.nix2
-rw-r--r--pkgs/development/python-modules/scipy/default.nix4
-rw-r--r--pkgs/development/python-modules/scmrepo/default.nix11
-rw-r--r--pkgs/development/python-modules/seabreeze/default.nix7
-rw-r--r--pkgs/development/python-modules/securetar/default.nix41
-rw-r--r--pkgs/development/python-modules/sendgrid/default.nix2
-rw-r--r--pkgs/development/python-modules/sentry-sdk/default.nix36
-rw-r--r--pkgs/development/python-modules/servefile/default.nix43
-rw-r--r--pkgs/development/python-modules/service_identity/default.nix2
-rw-r--r--pkgs/development/python-modules/setupmeta/default.nix3
-rw-r--r--pkgs/development/python-modules/setuptools-rust/default.nix6
-rw-r--r--pkgs/development/python-modules/setuptools/default.nix5
-rw-r--r--pkgs/development/python-modules/setuptools/setuptools-distutils-C++.patch180
-rw-r--r--pkgs/development/python-modules/seventeentrack/default.nix61
-rw-r--r--pkgs/development/python-modules/shapely/default.nix4
-rw-r--r--pkgs/development/python-modules/shapely/library-paths.patch72
-rw-r--r--pkgs/development/python-modules/shiboken2/default.nix2
-rw-r--r--pkgs/development/python-modules/shiv/default.nix34
-rw-r--r--pkgs/development/python-modules/shtab/default.nix4
-rw-r--r--pkgs/development/python-modules/simple-salesforce/default.nix10
-rw-r--r--pkgs/development/python-modules/simplejson/default.nix2
-rw-r--r--pkgs/development/python-modules/sip/default.nix4
-rw-r--r--pkgs/development/python-modules/slicerator/default.nix15
-rw-r--r--pkgs/development/python-modules/slither-analyzer/default.nix16
-rw-r--r--pkgs/development/python-modules/slixmpp/default.nix5
-rw-r--r--pkgs/development/python-modules/smbprotocol/default.nix4
-rw-r--r--pkgs/development/python-modules/social-auth-core/default.nix4
-rw-r--r--pkgs/development/python-modules/socksio/default.nix41
-rw-r--r--pkgs/development/python-modules/sortedcontainers/default.nix47
-rw-r--r--pkgs/development/python-modules/spacy-transformers/default.nix4
-rw-r--r--pkgs/development/python-modules/spacy/default.nix4
-rw-r--r--pkgs/development/python-modules/sparqlwrapper/default.nix17
-rw-r--r--pkgs/development/python-modules/sphinx-jinja/default.nix21
-rw-r--r--pkgs/development/python-modules/sphinx/default.nix15
-rw-r--r--pkgs/development/python-modules/sphinx_rtd_theme/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix20
-rw-r--r--pkgs/development/python-modules/sphinxext-opengraph/default.nix4
-rw-r--r--pkgs/development/python-modules/spyder-kernels/default.nix4
-rw-r--r--pkgs/development/python-modules/spyder/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlalchemy-imageattach/default.nix42
-rw-r--r--pkgs/development/python-modules/sqlalchemy/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlite-utils/default.nix10
-rw-r--r--pkgs/development/python-modules/sqlitedict/default.nix6
-rw-r--r--pkgs/development/python-modules/sqlmap/default.nix4
-rw-r--r--pkgs/development/python-modules/srp/default.nix23
-rw-r--r--pkgs/development/python-modules/srsly/default.nix4
-rw-r--r--pkgs/development/python-modules/starlette/default.nix4
-rw-r--r--pkgs/development/python-modules/staticjinja/default.nix4
-rw-r--r--pkgs/development/python-modules/stone/default.nix29
-rw-r--r--pkgs/development/python-modules/stookalert/default.nix33
-rw-r--r--pkgs/development/python-modules/stripe/default.nix4
-rw-r--r--pkgs/development/python-modules/stumpy/default.nix6
-rw-r--r--pkgs/development/python-modules/suds-jurko/default.nix1
-rw-r--r--pkgs/development/python-modules/sumo/default.nix6
-rw-r--r--pkgs/development/python-modules/sunpy/default.nix4
-rw-r--r--pkgs/development/python-modules/superqt/default.nix12
-rw-r--r--pkgs/development/python-modules/svdtools/default.nix20
-rw-r--r--pkgs/development/python-modules/svg-path/default.nix30
-rw-r--r--pkgs/development/python-modules/symengine/default.nix15
-rw-r--r--pkgs/development/python-modules/sympy/default.nix4
-rw-r--r--pkgs/development/python-modules/syslog-rfc5424-formatter/default.nix14
-rw-r--r--pkgs/development/python-modules/tablib/default.nix22
-rw-r--r--pkgs/development/python-modules/teletype/default.nix18
-rw-r--r--pkgs/development/python-modules/tellduslive/default.nix13
-rw-r--r--pkgs/development/python-modules/tempora/default.nix49
-rw-r--r--pkgs/development/python-modules/tensorboard/default.nix (renamed from pkgs/development/python-modules/tensorflow-tensorboard/default.nix)11
-rw-r--r--pkgs/development/python-modules/tensorboardx/default.nix6
-rw-r--r--pkgs/development/python-modules/tensorflow-datasets/default.nix12
-rw-r--r--pkgs/development/python-modules/tensorflow-estimator/default.nix4
-rw-r--r--pkgs/development/python-modules/tensorflow-metadata/build.patch9
-rw-r--r--pkgs/development/python-modules/tensorflow-metadata/default.nix9
-rw-r--r--pkgs/development/python-modules/tensorflow-tensorboard/1/default.nix65
-rw-r--r--pkgs/development/python-modules/tensorflow/bin.nix22
-rw-r--r--pkgs/development/python-modules/tensorflow/binary-hashes.nix50
-rw-r--r--pkgs/development/python-modules/tensorflow/default.nix78
-rwxr-xr-xpkgs/development/python-modules/tensorflow/prefetcher.sh11
-rw-r--r--pkgs/development/python-modules/tensorflow/system-protobuf.patch13
-rw-r--r--pkgs/development/python-modules/terminado/default.nix4
-rw-r--r--pkgs/development/python-modules/teslajsonpy/default.nix6
-rw-r--r--pkgs/development/python-modules/test-tube/default.nix4
-rw-r--r--pkgs/development/python-modules/testing-common-database/default.nix5
-rw-r--r--pkgs/development/python-modules/testpath/default.nix10
-rw-r--r--pkgs/development/python-modules/tifffile/default.nix4
-rw-r--r--pkgs/development/python-modules/tiledb/default.nix4
-rw-r--r--pkgs/development/python-modules/tldextract/default.nix4
-rw-r--r--pkgs/development/python-modules/toggl-cli/default.nix5
-rw-r--r--pkgs/development/python-modules/tomli/default.nix29
-rw-r--r--pkgs/development/python-modules/tomli/fix-backwards-compatibility-load.patch21
-rw-r--r--pkgs/development/python-modules/tomli/tests.nix21
-rw-r--r--pkgs/development/python-modules/tomlkit/default.nix4
-rw-r--r--pkgs/development/python-modules/torch-tb-profiler/default.nix4
-rw-r--r--pkgs/development/python-modules/torchinfo/default.nix4
-rw-r--r--pkgs/development/python-modules/torchvision/default.nix4
-rw-r--r--pkgs/development/python-modules/tornado/5.nix3
-rw-r--r--pkgs/development/python-modules/tornado/default.nix22
-rw-r--r--pkgs/development/python-modules/towncrier/default.nix10
-rw-r--r--pkgs/development/python-modules/tpm2-pytss/default.nix59
-rw-r--r--pkgs/development/python-modules/tqdm/default.nix4
-rw-r--r--pkgs/development/python-modules/trimesh/default.nix4
-rw-r--r--pkgs/development/python-modules/trio/default.nix44
-rw-r--r--pkgs/development/python-modules/trytond/default.nix13
-rw-r--r--pkgs/development/python-modules/tubeup/default.nix4
-rw-r--r--pkgs/development/python-modules/tweepy/default.nix12
-rw-r--r--pkgs/development/python-modules/twilio/default.nix16
-rw-r--r--pkgs/development/python-modules/twill/default.nix26
-rw-r--r--pkgs/development/python-modules/twine/default.nix24
-rw-r--r--pkgs/development/python-modules/twisted/default.nix10
-rw-r--r--pkgs/development/python-modules/twitterapi/default.nix6
-rw-r--r--pkgs/development/python-modules/txaio/default.nix4
-rw-r--r--pkgs/development/python-modules/txtorcon/default.nix23
-rw-r--r--pkgs/development/python-modules/typed-settings/default.nix4
-rw-r--r--pkgs/development/python-modules/typeguard/default.nix17
-rw-r--r--pkgs/development/python-modules/typer/default.nix19
-rw-r--r--pkgs/development/python-modules/types-cryptography/default.nix4
-rw-r--r--pkgs/development/python-modules/types-dateutil/default.nix4
-rw-r--r--pkgs/development/python-modules/types-decorator/default.nix4
-rw-r--r--pkgs/development/python-modules/types-freezegun/default.nix4
-rw-r--r--pkgs/development/python-modules/types-paramiko/default.nix4
-rw-r--r--pkgs/development/python-modules/types-requests/default.nix4
-rw-r--r--pkgs/development/python-modules/types-setuptools/default.nix4
-rw-r--r--pkgs/development/python-modules/types-tabulate/default.nix4
-rw-r--r--pkgs/development/python-modules/types-toml/default.nix4
-rw-r--r--pkgs/development/python-modules/types-urllib3/default.nix4
-rw-r--r--pkgs/development/python-modules/typing-extensions/default.nix4
-rw-r--r--pkgs/development/python-modules/typing-inspect/default.nix14
-rw-r--r--pkgs/development/python-modules/tzdata/default.nix4
-rw-r--r--pkgs/development/python-modules/tzlocal/default.nix5
-rw-r--r--pkgs/development/python-modules/uamqp/default.nix4
-rw-r--r--pkgs/development/python-modules/ufo2ft/default.nix4
-rw-r--r--pkgs/development/python-modules/uharfbuzz/default.nix45
-rw-r--r--pkgs/development/python-modules/umap-learn/default.nix4
-rw-r--r--pkgs/development/python-modules/unittest-xml-reporting/default.nix11
-rw-r--r--pkgs/development/python-modules/update-dotdee/default.nix45
-rw-r--r--pkgs/development/python-modules/uproot/default.nix4
-rw-r--r--pkgs/development/python-modules/uri-template/default.nix30
-rw-r--r--pkgs/development/python-modules/urllib3/default.nix4
-rw-r--r--pkgs/development/python-modules/ush/default.nix12
-rw-r--r--pkgs/development/python-modules/uvicorn/default.nix4
-rw-r--r--pkgs/development/python-modules/uvloop/default.nix8
-rw-r--r--pkgs/development/python-modules/validators/default.nix2
-rw-r--r--pkgs/development/python-modules/validictory/default.nix3
-rw-r--r--pkgs/development/python-modules/variants/default.nix3
-rw-r--r--pkgs/development/python-modules/vdirsyncer/default.nix21
-rw-r--r--pkgs/development/python-modules/vehicle/default.nix4
-rw-r--r--pkgs/development/python-modules/vertica-python/default.nix4
-rw-r--r--pkgs/development/python-modules/virtualenv/default.nix4
-rw-r--r--pkgs/development/python-modules/vispy/default.nix4
-rw-r--r--pkgs/development/python-modules/vivisect/default.nix30
-rw-r--r--pkgs/development/python-modules/waitress/default.nix4
-rw-r--r--pkgs/development/python-modules/wallbox/default.nix6
-rw-r--r--pkgs/development/python-modules/wandb/default.nix80
-rw-r--r--pkgs/development/python-modules/wasabi/default.nix17
-rw-r--r--pkgs/development/python-modules/wasm/default.nix3
-rw-r--r--pkgs/development/python-modules/watchdog/default.nix9
-rw-r--r--pkgs/development/python-modules/watchgod/default.nix9
-rw-r--r--pkgs/development/python-modules/weasyprint/default.nix4
-rw-r--r--pkgs/development/python-modules/websocket-client/default.nix6
-rw-r--r--pkgs/development/python-modules/webssh/default.nix5
-rw-r--r--pkgs/development/python-modules/webthing/default.nix13
-rw-r--r--pkgs/development/python-modules/weconnect-mqtt/default.nix4
-rw-r--r--pkgs/development/python-modules/weconnect/default.nix8
-rw-r--r--pkgs/development/python-modules/werkzeug/default.nix13
-rw-r--r--pkgs/development/python-modules/west/default.nix21
-rw-r--r--pkgs/development/python-modules/whodap/default.nix6
-rw-r--r--pkgs/development/python-modules/widgetsnbextension/default.nix4
-rw-r--r--pkgs/development/python-modules/widlparser/default.nix38
-rw-r--r--pkgs/development/python-modules/wifi/default.nix45
-rw-r--r--pkgs/development/python-modules/winacl/default.nix8
-rw-r--r--pkgs/development/python-modules/winsspi/default.nix20
-rw-r--r--pkgs/development/python-modules/wsproto/default.nix23
-rw-r--r--pkgs/development/python-modules/wxPython/4.1.nix2
-rw-r--r--pkgs/development/python-modules/xarray/default.nix4
-rw-r--r--pkgs/development/python-modules/xdis/default.nix47
-rw-r--r--pkgs/development/python-modules/xgboost/default.nix3
-rw-r--r--pkgs/development/python-modules/xhtml2pdf/default.nix10
-rw-r--r--pkgs/development/python-modules/xknx/default.nix10
-rw-r--r--pkgs/development/python-modules/xml2rfc/default.nix50
-rw-r--r--pkgs/development/python-modules/xmlsec/default.nix10
-rw-r--r--pkgs/development/python-modules/xmltodict/default.nix15
-rw-r--r--pkgs/development/python-modules/xxhash/default.nix9
-rw-r--r--pkgs/development/python-modules/yamlfix/default.nix5
-rw-r--r--pkgs/development/python-modules/yanc/default.nix10
-rw-r--r--pkgs/development/python-modules/yeelight/default.nix4
-rw-r--r--pkgs/development/python-modules/youtube-search-python/default.nix4
-rw-r--r--pkgs/development/python-modules/yoyo-migrations/default.nix30
-rw-r--r--pkgs/development/python-modules/yq/default.nix21
-rw-r--r--pkgs/development/python-modules/zarr/default.nix4
-rw-r--r--pkgs/development/python-modules/zeep/default.nix9
-rw-r--r--pkgs/development/python-modules/zetup/default.nix4
-rw-r--r--pkgs/development/python-modules/zha-quirks/default.nix4
-rw-r--r--pkgs/development/python-modules/zigpy-cc/default.nix7
-rw-r--r--pkgs/development/python-modules/zigpy/default.nix4
-rw-r--r--pkgs/development/python-modules/zimports/default.nix10
-rw-r--r--pkgs/development/python-modules/zodb/default.nix4
-rw-r--r--pkgs/development/python-modules/zodbpickle/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_exceptions/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_testing/default.nix4
-rw-r--r--pkgs/development/python-modules/zopfli/default.nix11
-rw-r--r--pkgs/development/python-modules/zulip/default.nix20
-rw-r--r--pkgs/development/python-modules/zwave-js-server-python/default.nix4
-rw-r--r--pkgs/development/python-modules/zwave-me-ws/default.nix52
-rw-r--r--pkgs/development/python2-modules/cryptography/default.nix15
-rw-r--r--pkgs/development/python2-modules/cryptography/vectors.nix (renamed from pkgs/development/python2-modules/cryptography-vectors/default.nix)5
-rw-r--r--pkgs/development/python2-modules/pycairo/default.nix10
-rw-r--r--pkgs/development/quickemu/default.nix8
-rw-r--r--pkgs/development/r-modules/bioc-annotation-packages.nix3
-rw-r--r--pkgs/development/r-modules/bioc-experiment-packages.nix6
-rw-r--r--pkgs/development/r-modules/bioc-packages.nix114
-rw-r--r--pkgs/development/r-modules/cran-packages.nix2422
-rw-r--r--pkgs/development/ruby-modules/bundler-app/default.nix2
-rw-r--r--pkgs/development/ruby-modules/with-packages/Gemfile1
-rw-r--r--pkgs/development/tools/amazon-qldb-shell/default.nix4
-rw-r--r--pkgs/development/tools/ammonite/default.nix6
-rw-r--r--pkgs/development/tools/analysis/actionlint/default.nix6
-rw-r--r--pkgs/development/tools/analysis/binlore/default.nix19
-rw-r--r--pkgs/development/tools/analysis/checkov/default.nix9
-rw-r--r--pkgs/development/tools/analysis/checkstyle/default.nix4
-rw-r--r--pkgs/development/tools/analysis/coan/default.nix4
-rw-r--r--pkgs/development/tools/analysis/codeql/default.nix5
-rw-r--r--pkgs/development/tools/analysis/cppcheck/default.nix4
-rw-r--r--pkgs/development/tools/analysis/flow/default.nix6
-rw-r--r--pkgs/development/tools/analysis/oclgrind/default.nix5
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix4
-rw-r--r--pkgs/development/tools/analysis/rr/default.nix16
-rw-r--r--pkgs/development/tools/analysis/tfsec/default.nix6
-rw-r--r--pkgs/development/tools/apksigcopier/default.nix47
-rw-r--r--pkgs/development/tools/appthreat-depscan/default.nix6
-rw-r--r--pkgs/development/tools/asmfmt/default.nix4
-rw-r--r--pkgs/development/tools/azcopy/default.nix6
-rw-r--r--pkgs/development/tools/azure-functions-core-tools/default.nix1
-rw-r--r--pkgs/development/tools/bacon/default.nix6
-rw-r--r--pkgs/development/tools/bazel-gazelle/default.nix1
-rw-r--r--pkgs/development/tools/bazel-kazel/default.nix1
-rw-r--r--pkgs/development/tools/bingo/bingo_version.patch13
-rw-r--r--pkgs/development/tools/bingo/default.nix12
-rw-r--r--pkgs/development/tools/buf/default.nix10
-rw-r--r--pkgs/development/tools/build-managers/apache-maven/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix10
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_1/default.nix10
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_3/default.nix12
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_3/gcc11.patch24
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_4/default.nix10
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_5/default.nix11
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_5/src-deps.json112
-rw-r--r--pkgs/development/tools/build-managers/bazel/buildtools/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/bloop/default.nix9
-rw-r--r--pkgs/development/tools/build-managers/build2/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/cmake/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/conan/default.nix19
-rw-r--r--pkgs/development/tools/build-managers/go-mk/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/meson/default.nix8
-rw-r--r--pkgs/development/tools/build-managers/meson/do-not-update-ldconfig-cache.patch12
-rw-r--r--pkgs/development/tools/build-managers/meson/fix-gtkdoc-when-using-multiple-apple-frameworks.patch100
-rw-r--r--pkgs/development/tools/build-managers/meson/fix-rpath.patch8
-rw-r--r--pkgs/development/tools/build-managers/mill/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/qbs/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/rebar3/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/samurai/default.nix30
-rw-r--r--pkgs/development/tools/build-managers/scala-cli/default.nix13
-rw-r--r--pkgs/development/tools/build-managers/tup/setup-hook.sh4
-rw-r--r--pkgs/development/tools/build-managers/wafHook/setup-hook.sh4
-rw-r--r--pkgs/development/tools/buildkit/default.nix4
-rw-r--r--pkgs/development/tools/buildpack/default.nix4
-rw-r--r--pkgs/development/tools/ccloud-cli/default.nix2
-rw-r--r--pkgs/development/tools/checkmate/default.nix4
-rw-r--r--pkgs/development/tools/clj-kondo/default.nix4
-rw-r--r--pkgs/development/tools/clog-cli/default.nix1
-rw-r--r--pkgs/development/tools/compile-daemon/default.nix1
-rw-r--r--pkgs/development/tools/confluent-cli/default.nix2
-rw-r--r--pkgs/development/tools/conftest/default.nix6
-rw-r--r--pkgs/development/tools/container-linux-config-transpiler/default.nix34
-rw-r--r--pkgs/development/tools/continuous-integration/buildkite-agent/default.nix8
-rw-r--r--pkgs/development/tools/continuous-integration/buildkite-cli/default.nix1
-rw-r--r--pkgs/development/tools/continuous-integration/dagger/default.nix28
-rw-r--r--pkgs/development/tools/continuous-integration/github-runner/default.nix17
-rw-r--r--pkgs/development/tools/continuous-integration/github-runner/deps.nix10
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/default.nix4
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins/default.nix4
-rw-r--r--pkgs/development/tools/coursier/default.nix4
-rw-r--r--pkgs/development/tools/dapr/cli/default.nix23
-rw-r--r--pkgs/development/tools/database/beekeeper-studio/default.nix9
-rw-r--r--pkgs/development/tools/database/clickhouse-backup/default.nix6
-rw-r--r--pkgs/development/tools/database/indradb/default.nix9
-rw-r--r--pkgs/development/tools/database/liquibase/default.nix4
-rw-r--r--pkgs/development/tools/database/litecli/default.nix4
-rw-r--r--pkgs/development/tools/database/pg_checksums/default.nix1
-rw-r--r--pkgs/development/tools/database/pgcli/default.nix10
-rw-r--r--pkgs/development/tools/database/prisma-engines/default.nix9
-rw-r--r--pkgs/development/tools/database/sqldeveloper/default.nix2
-rw-r--r--pkgs/development/tools/database/sqlfluff/default.nix6
-rw-r--r--pkgs/development/tools/database/termdbms/default.nix1
-rw-r--r--pkgs/development/tools/deadcode/default.nix2
-rw-r--r--pkgs/development/tools/deadnix/default.nix6
-rw-r--r--pkgs/development/tools/delve/default.nix11
-rw-r--r--pkgs/development/tools/doctl/default.nix4
-rw-r--r--pkgs/development/tools/documentation/doxygen/default.nix21
-rw-r--r--pkgs/development/tools/dprint/default.nix6
-rw-r--r--pkgs/development/tools/easyjson/default.nix11
-rw-r--r--pkgs/development/tools/easyjson/deps.nix11
-rw-r--r--pkgs/development/tools/efm-langserver/default.nix4
-rw-r--r--pkgs/development/tools/electron/default.nix60
-rw-r--r--pkgs/development/tools/electron/generic.nix11
-rw-r--r--pkgs/development/tools/errcheck/default.nix13
-rw-r--r--pkgs/development/tools/esbuild/default.nix4
-rw-r--r--pkgs/development/tools/evans/default.nix6
-rw-r--r--pkgs/development/tools/faas-cli/default.nix6
-rw-r--r--pkgs/development/tools/fdroidserver/default.nix4
-rw-r--r--pkgs/development/tools/flyway/default.nix4
-rw-r--r--pkgs/development/tools/fq/default.nix4
-rw-r--r--pkgs/development/tools/gauge/default.nix2
-rw-r--r--pkgs/development/tools/ginkgo/default.nix2
-rw-r--r--pkgs/development/tools/git-series/default.nix46
-rw-r--r--pkgs/development/tools/global-platform-pro/default.nix1
-rw-r--r--pkgs/development/tools/go-containerregistry/default.nix4
-rw-r--r--pkgs/development/tools/go-migrate/default.nix6
-rw-r--r--pkgs/development/tools/go-minimock/default.nix1
-rw-r--r--pkgs/development/tools/go-mockery/default.nix1
-rw-r--r--pkgs/development/tools/go-motion/default.nix1
-rw-r--r--pkgs/development/tools/go-protobuf/default.nix2
-rw-r--r--pkgs/development/tools/go-swagger/default.nix1
-rw-r--r--pkgs/development/tools/go-task/default.nix6
-rw-r--r--pkgs/development/tools/gocode-gomod/default.nix2
-rw-r--r--pkgs/development/tools/gocode/default.nix1
-rw-r--r--pkgs/development/tools/godot/default.nix4
-rw-r--r--pkgs/development/tools/gofumpt/default.nix2
-rw-r--r--pkgs/development/tools/gogetdoc/default.nix2
-rw-r--r--pkgs/development/tools/gojq/default.nix28
-rw-r--r--pkgs/development/tools/golint/default.nix15
-rw-r--r--pkgs/development/tools/gomplate/default.nix15
-rw-r--r--pkgs/development/tools/gopls/default.nix10
-rw-r--r--pkgs/development/tools/gotestsum/default.nix4
-rw-r--r--pkgs/development/tools/gotools/default.nix4
-rw-r--r--pkgs/development/tools/govers/default.nix14
-rw-r--r--pkgs/development/tools/gron/default.nix16
-rw-r--r--pkgs/development/tools/haskell/hyper-haskell/server.nix9
-rw-r--r--pkgs/development/tools/hcloud/default.nix15
-rw-r--r--pkgs/development/tools/hjson-go/default.nix1
-rw-r--r--pkgs/development/tools/htmltest/default.nix4
-rw-r--r--pkgs/development/tools/impl/default.nix12
-rw-r--r--pkgs/development/tools/ineffassign/default.nix1
-rw-r--r--pkgs/development/tools/interfacer/default.nix31
-rw-r--r--pkgs/development/tools/interfacer/deps.nix29
-rw-r--r--pkgs/development/tools/jl/default.nix6
-rw-r--r--pkgs/development/tools/jql/default.nix6
-rw-r--r--pkgs/development/tools/jsonnet-bundler/default.nix1
-rw-r--r--pkgs/development/tools/konstraint/default.nix25
-rw-r--r--pkgs/development/tools/kotlin-language-server/default.nix15
-rw-r--r--pkgs/development/tools/ktlint/default.nix4
-rw-r--r--pkgs/development/tools/kube-aws/default.nix36
-rw-r--r--pkgs/development/tools/kube-linter/default.nix4
-rw-r--r--pkgs/development/tools/kubectx/default.nix2
-rw-r--r--pkgs/development/tools/kustomize/default.nix25
-rw-r--r--pkgs/development/tools/metal-cli/default.nix15
-rw-r--r--pkgs/development/tools/minizinc/default.nix4
-rw-r--r--pkgs/development/tools/misc/acr/default.nix33
-rw-r--r--pkgs/development/tools/misc/binutils/0001-Revert-libtool.m4-fix-nm-BSD-flag-detection.patch137
-rw-r--r--pkgs/development/tools/misc/binutils/0001-libtool.m4-update-macos-version-detection-block.patch47
-rw-r--r--pkgs/development/tools/misc/binutils/CVE-2020-35448.patch77
-rw-r--r--pkgs/development/tools/misc/binutils/CVE-2021-3487.patch73
-rw-r--r--pkgs/development/tools/misc/binutils/CVE-2021-45078.patch239
-rw-r--r--pkgs/development/tools/misc/binutils/bfd-elf-Dont-read-non-existing-secondary-relocs.patch26
-rw-r--r--pkgs/development/tools/misc/binutils/build-components-separately.patch67
-rw-r--r--pkgs/development/tools/misc/binutils/default.nix216
-rw-r--r--pkgs/development/tools/misc/binutils/disambiguate-arm-targets.patch23
-rw-r--r--pkgs/development/tools/misc/binutils/gold-Update-GNU_PROPERTY_X86_XXX-macros.patch292
-rw-r--r--pkgs/development/tools/misc/binutils/mips64-default-n64.patch82
-rw-r--r--pkgs/development/tools/misc/blackfire/default.nix94
-rw-r--r--pkgs/development/tools/misc/circleci-cli/default.nix4
-rw-r--r--pkgs/development/tools/misc/clojure-lsp/default.nix6
-rw-r--r--pkgs/development/tools/misc/devspace/default.nix37
-rw-r--r--pkgs/development/tools/misc/gef/default.nix8
-rw-r--r--pkgs/development/tools/misc/go-license-detector/default.nix15
-rw-r--r--pkgs/development/tools/misc/grcov/default.nix6
-rw-r--r--pkgs/development/tools/misc/libtool/libtool2-macos11.patch32
-rw-r--r--pkgs/development/tools/misc/libtool/libtool2.nix26
-rw-r--r--pkgs/development/tools/misc/nix-bisect/default.nix44
-rw-r--r--pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix1
-rw-r--r--pkgs/development/tools/misc/patchelf/0.13.nix23
-rw-r--r--pkgs/development/tools/misc/patchelf/default.nix6
-rw-r--r--pkgs/development/tools/misc/patchelf/unstable.nix14
-rw-r--r--pkgs/development/tools/misc/pkgconf/default.nix45
-rw-r--r--pkgs/development/tools/misc/saleae-logic-2/default.nix6
-rw-r--r--pkgs/development/tools/misc/sccache/default.nix3
-rw-r--r--pkgs/development/tools/misc/semver-tool/default.nix1
-rw-r--r--pkgs/development/tools/misc/texinfo/6.8.nix4
-rw-r--r--pkgs/development/tools/misc/texinfo/common.nix4
-rw-r--r--pkgs/development/tools/misc/texinfo/fix-glibc-2.34.patch186
-rw-r--r--pkgs/development/tools/mockgen/default.nix11
-rw-r--r--pkgs/development/tools/mold/default.nix8
-rw-r--r--pkgs/development/tools/mysql-shell/default.nix155
-rw-r--r--pkgs/development/tools/mysql-shell/fido2.cmake.patch25
-rw-r--r--pkgs/development/tools/neil/default.nix4
-rw-r--r--pkgs/development/tools/nsis/default.nix1
-rw-r--r--pkgs/development/tools/ocaml/cppo/ocamlbuild.nix2
-rw-r--r--pkgs/development/tools/ocaml/dune/1.nix2
-rw-r--r--pkgs/development/tools/ocaml/dune/3.nix4
-rw-r--r--pkgs/development/tools/ocaml/findlib/default.nix4
-rw-r--r--pkgs/development/tools/ocaml/findlib/install_topfind.patch6
-rw-r--r--pkgs/development/tools/ocaml/merlin/4.x.nix2
-rw-r--r--pkgs/development/tools/ocaml/opaline/default.nix4
-rw-r--r--pkgs/development/tools/ocaml/utop/default.nix4
-rwxr-xr-xpkgs/development/tools/omnisharp-roslyn/create-deps.sh14
-rw-r--r--pkgs/development/tools/omnisharp-roslyn/default.nix10
-rw-r--r--pkgs/development/tools/omnisharp-roslyn/deps.nix378
-rw-r--r--pkgs/development/tools/packet-sd/default.nix1
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/default.nix1
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-clojure.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-comment.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-devicetree.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elixir.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gomod.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-heex.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-julia.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-latex.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ledger.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-llvm.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-lua.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-markdown.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-org-nvim.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-prisma.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-r.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scheme.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-supercollider.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-svelte.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-toml.json10
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-vim.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-zig.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/update.nix9
-rw-r--r--pkgs/development/tools/phantomjs2/default.nix3
-rw-r--r--pkgs/development/tools/pigeon/default.nix22
-rw-r--r--pkgs/development/tools/pigeon/deps.nix66
-rw-r--r--pkgs/development/tools/pipenv/default.nix4
-rw-r--r--pkgs/development/tools/protoc-gen-doc/default.nix10
-rw-r--r--pkgs/development/tools/protoc-gen-twirp/default.nix4
-rw-r--r--pkgs/development/tools/pur/default.nix21
-rw-r--r--pkgs/development/tools/pydb/default.nix25
-rw-r--r--pkgs/development/tools/quick-lint-js/default.nix11
-rw-r--r--pkgs/development/tools/quicktemplate/default.nix7
-rw-r--r--pkgs/development/tools/rbspy/default.nix25
-rw-r--r--pkgs/development/tools/reftools/default.nix2
-rw-r--r--pkgs/development/tools/regclient/default.nix6
-rw-r--r--pkgs/development/tools/richgo/default.nix4
-rw-r--r--pkgs/development/tools/ronn/Gemfile2
-rw-r--r--pkgs/development/tools/ronn/Gemfile.lock24
-rw-r--r--pkgs/development/tools/ronn/default.nix12
-rw-r--r--pkgs/development/tools/ronn/gemset.nix63
-rw-r--r--pkgs/development/tools/rover/default.nix12
-rw-r--r--pkgs/development/tools/rover/librusty_v8.nix17
-rw-r--r--pkgs/development/tools/rover/schema/etag.id2
-rw-r--r--pkgs/development/tools/rover/schema/schema.graphql44
-rwxr-xr-xpkgs/development/tools/rover/update.sh21
-rw-r--r--pkgs/development/tools/rust/bindgen/unwrapped.nix29
-rw-r--r--pkgs/development/tools/rust/cargo-deny/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-depgraph/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-diet/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-flash/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-nextest/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-rr/default.nix14
-rw-r--r--pkgs/development/tools/rust/cargo-tally/default.nix6
-rw-r--r--pkgs/development/tools/rust/cbindgen/default.nix6
-rw-r--r--pkgs/development/tools/rust/duckscript/default.nix1
-rw-r--r--pkgs/development/tools/rust/racer/default.nix12
-rw-r--r--pkgs/development/tools/rust/rust-analyzer/default.nix6
-rw-r--r--pkgs/development/tools/selenium/chromedriver/default.nix4
-rw-r--r--pkgs/development/tools/sentry-cli/default.nix6
-rw-r--r--pkgs/development/tools/skaffold/default.nix6
-rw-r--r--pkgs/development/tools/skopeo/default.nix5
-rw-r--r--pkgs/development/tools/sq/default.nix4
-rw-r--r--pkgs/development/tools/stagit/default.nix4
-rw-r--r--pkgs/development/tools/statik/default.nix2
-rw-r--r--pkgs/development/tools/stylua/default.nix6
-rw-r--r--pkgs/development/tools/sumneko-lua-language-server/default.nix15
-rw-r--r--pkgs/development/tools/symfony-cli/default.nix4
-rw-r--r--pkgs/development/tools/toluapp/default.nix1
-rw-r--r--pkgs/development/tools/tracy/default.nix4
-rw-r--r--pkgs/development/tools/udis86/default.nix1
-rw-r--r--pkgs/development/tools/vultr-cli/default.nix4
-rw-r--r--pkgs/development/tools/wabt/default.nix4
-rw-r--r--pkgs/development/tools/winpdb/default.nix55
-rw-r--r--pkgs/development/tools/wp4nix/default.nix30
-rw-r--r--pkgs/development/tools/yarn/default.nix4
-rw-r--r--pkgs/development/tools/yq-go/default.nix6
-rw-r--r--pkgs/development/web/cypress/default.nix4
-rw-r--r--pkgs/development/web/deno/default.nix13
-rw-r--r--pkgs/development/web/deno/librusty_v8.nix10
-rw-r--r--pkgs/development/web/flyctl/default.nix29
-rw-r--r--pkgs/development/web/kcgi/default.nix1
-rw-r--r--pkgs/development/web/minify/default.nix9
-rw-r--r--pkgs/development/web/nodejs/nodejs.nix23
-rw-r--r--pkgs/development/web/nodejs/v12.nix4
-rw-r--r--pkgs/development/web/nodejs/v17.nix4
-rw-r--r--pkgs/development/web/nodejs/v18.nix15
-rw-r--r--pkgs/games/airstrike/default.nix2
-rw-r--r--pkgs/games/assaultcube/default.nix88
-rw-r--r--pkgs/games/bugdom/default.nix66
-rw-r--r--pkgs/games/bzflag/default.nix4
-rw-r--r--pkgs/games/cataclysm-dda/common.nix2
-rw-r--r--pkgs/games/ddnet/default.nix16
-rw-r--r--pkgs/games/deliantra/arch.nix (renamed from pkgs/games/deliantra/deliantra-arch.nix)0
-rw-r--r--pkgs/games/deliantra/data.nix (renamed from pkgs/games/deliantra/deliantra-data.nix)0
-rw-r--r--pkgs/games/deliantra/default.nix10
-rw-r--r--pkgs/games/deliantra/maps.nix (renamed from pkgs/games/deliantra/deliantra-maps.nix)0
-rw-r--r--pkgs/games/deliantra/server.nix (renamed from pkgs/games/deliantra/deliantra-server.nix)4
-rw-r--r--pkgs/games/devilutionx/default.nix61
-rw-r--r--pkgs/games/domination/default.nix4
-rw-r--r--pkgs/games/enigma/default.nix29
-rw-r--r--pkgs/games/fheroes2/default.nix4
-rw-r--r--pkgs/games/flare/default.nix2
-rw-r--r--pkgs/games/frogatto/data.nix7
-rw-r--r--pkgs/games/frogatto/default.nix2
-rw-r--r--pkgs/games/frogatto/engine.nix15
-rw-r--r--pkgs/games/heroic/default.nix4
-rw-r--r--pkgs/games/iortcw/default.nix2
-rw-r--r--pkgs/games/iortcw/sp.nix2
-rw-r--r--pkgs/games/kabeljau/default.nix38
-rw-r--r--pkgs/games/katago/default.nix8
-rw-r--r--pkgs/games/koules/default.nix76
-rw-r--r--pkgs/games/lgames/barrage/default.nix31
-rw-r--r--pkgs/games/lgames/lbreakout2/default.nix (renamed from pkgs/games/lbreakout2/default.nix)23
-rw-r--r--pkgs/games/lgames/lbreakouthd/default.nix35
-rw-r--r--pkgs/games/lgames/lpairs2/default.nix33
-rw-r--r--pkgs/games/lgames/ltris/default.nix26
-rw-r--r--pkgs/games/lgogdownloader/default.nix4
-rw-r--r--pkgs/games/liberal-crime-squad/default.nix1
-rw-r--r--pkgs/games/ltris/default.nix22
-rw-r--r--pkgs/games/ltris/gcc5_compliance.diff299
-rw-r--r--pkgs/games/mindustry/default.nix4
-rw-r--r--pkgs/games/minecraft/default.nix2
-rw-r--r--pkgs/games/mudlet/default.nix2
-rw-r--r--pkgs/games/nanosaur/default.nix2
-rw-r--r--pkgs/games/nethack/default.nix11
-rw-r--r--pkgs/games/openjk/default.nix50
-rw-r--r--pkgs/games/openmw/default.nix5
-rw-r--r--pkgs/games/openmw/tes3mp.nix4
-rw-r--r--pkgs/games/openra/common.nix2
-rw-r--r--pkgs/games/openrct2/default.nix12
-rw-r--r--pkgs/games/opensupaplex/default.nix4
-rw-r--r--pkgs/games/osu-lazer/default.nix8
-rw-r--r--pkgs/games/osu-lazer/deps.nix332
-rw-r--r--pkgs/games/osu-lazer/osu.runtimeconfig.json4
-rwxr-xr-xpkgs/games/osu-lazer/update.sh9
-rw-r--r--pkgs/games/otto-matic/default.nix2
-rw-r--r--pkgs/games/papermc/default.nix1
-rw-r--r--pkgs/games/polymc/default.nix6
-rw-r--r--pkgs/games/prboom-plus/default.nix62
-rw-r--r--pkgs/games/prboom/default.nix35
-rw-r--r--pkgs/games/purpur/default.nix1
-rw-r--r--pkgs/games/quake3/quake3e/default.nix29
-rw-r--r--pkgs/games/quakespasm/default.nix1
-rw-r--r--pkgs/games/rare/default.nix4
-rw-r--r--pkgs/games/rili/default.nix14
-rw-r--r--pkgs/games/runelite/default.nix2
-rw-r--r--pkgs/games/runescape-launcher/default.nix40
-rw-r--r--pkgs/games/sauerbraten/default.nix4
-rw-r--r--pkgs/games/starsector/default.nix3
-rw-r--r--pkgs/games/steam/fhsenv.nix8
-rw-r--r--pkgs/games/tintin/default.nix1
-rw-r--r--pkgs/games/tome4/default.nix2
-rw-r--r--pkgs/games/unciv/default.nix4
-rw-r--r--pkgs/games/ut2004/wrapper.nix2
-rw-r--r--pkgs/games/warsow/default.nix2
-rw-r--r--pkgs/games/warzone2100/default.nix4
-rw-r--r--pkgs/games/xconq/default.nix2
-rw-r--r--pkgs/games/xonotic/default.nix11
-rw-r--r--pkgs/games/zod/default.nix4
-rw-r--r--pkgs/misc/acpilight/default.nix1
-rw-r--r--pkgs/misc/drivers/argononed/default.nix48
-rw-r--r--pkgs/misc/drivers/argononed/fix-hardcoded-reboot-poweroff-paths.patch18
-rw-r--r--pkgs/misc/dumb/default.nix2
-rw-r--r--pkgs/misc/ghostscript/default.nix4
-rw-r--r--pkgs/misc/jackaudio/default.nix2
-rw-r--r--pkgs/misc/lguf-brightness/default.nix1
-rw-r--r--pkgs/misc/platformsh/default.nix50
-rw-r--r--pkgs/misc/rich-cli/default.nix32
-rw-r--r--pkgs/misc/scimark/default.nix1
-rw-r--r--pkgs/misc/sndio/default.nix2
-rw-r--r--pkgs/misc/tmux-plugins/default.nix4
-rw-r--r--pkgs/misc/tmux-plugins/tmux-thumbs/default.nix29
-rw-r--r--pkgs/misc/tmux-plugins/tmux-thumbs/fix.patch45
-rw-r--r--pkgs/misc/wiki-tui/default.nix11
-rw-r--r--pkgs/os-specific/darwin/apple-sdk-11.0/frameworks.nix2
-rw-r--r--pkgs/os-specific/darwin/apple-sdk/frameworks.nix2
-rw-r--r--pkgs/os-specific/darwin/kwm/default.nix1
-rw-r--r--pkgs/os-specific/darwin/mas/default.nix41
-rw-r--r--pkgs/os-specific/darwin/moltenvk/default.nix30
-rw-r--r--pkgs/os-specific/linux/anbox/kmod.nix2
-rw-r--r--pkgs/os-specific/linux/apfs/default.nix6
-rw-r--r--pkgs/os-specific/linux/apparmor/default.nix30
-rw-r--r--pkgs/os-specific/linux/audit/default.nix7
-rw-r--r--pkgs/os-specific/linux/autofs/default.nix13
-rw-r--r--pkgs/os-specific/linux/batman-adv/default.nix20
-rw-r--r--pkgs/os-specific/linux/batman-adv/version.nix8
-rw-r--r--pkgs/os-specific/linux/bluez/default.nix4
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/default.nix2
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/linux-5.17.patch39
-rw-r--r--pkgs/os-specific/linux/busybox/default.nix14
-rw-r--r--pkgs/os-specific/linux/conky/default.nix6
-rw-r--r--pkgs/os-specific/linux/cryptsetup/default.nix8
-rw-r--r--pkgs/os-specific/linux/digimend/default.nix2
-rw-r--r--pkgs/os-specific/linux/displaylink/default.nix2
-rw-r--r--pkgs/os-specific/linux/ell/default.nix4
-rw-r--r--pkgs/os-specific/linux/ena/default.nix2
-rw-r--r--pkgs/os-specific/linux/facetimehd/default.nix28
-rw-r--r--pkgs/os-specific/linux/firmware/fwupd/default.nix14
-rw-r--r--pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix10
-rw-r--r--pkgs/os-specific/linux/firmware/raspberrypi/default.nix15
-rw-r--r--pkgs/os-specific/linux/firmware/sof-firmware/default.nix4
-rw-r--r--pkgs/os-specific/linux/fuse/common.nix8
-rw-r--r--pkgs/os-specific/linux/iproute/default.nix12
-rw-r--r--pkgs/os-specific/linux/iwd/default.nix5
-rw-r--r--pkgs/os-specific/linux/kbd/default.nix1
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix8
-rw-r--r--pkgs/os-specific/linux/kernel/generate-config.pl2
-rw-r--r--pkgs/os-specific/linux/kernel/gpio-utils.nix2
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.14.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.9.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.10.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.15.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.16.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.17.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rpi.nix9
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-5.10.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-5.4.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-xanmod.nix68
-rw-r--r--pkgs/os-specific/linux/kernel/linux-zen.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/perf.nix2
-rw-r--r--pkgs/os-specific/linux/kernel/xanmod-kernels.nix81
-rw-r--r--pkgs/os-specific/linux/keyutils/default.nix14
-rw-r--r--pkgs/os-specific/linux/kmod/default.nix2
-rw-r--r--pkgs/os-specific/linux/kvdo/default.nix31
-rw-r--r--pkgs/os-specific/linux/ledger-udev-rules/default.nix6
-rw-r--r--pkgs/os-specific/linux/libbpf/default.nix2
-rw-r--r--pkgs/os-specific/linux/libcap/default.nix12
-rw-r--r--pkgs/os-specific/linux/linux-wifi-hotspot/default.nix79
-rw-r--r--pkgs/os-specific/linux/lvm2/common.nix34
-rw-r--r--pkgs/os-specific/linux/lvm2/fix-blkdeactivate.patch51
-rw-r--r--pkgs/os-specific/linux/mbpfan/default.nix4
-rw-r--r--pkgs/os-specific/linux/microcode/amd.nix7
-rw-r--r--pkgs/os-specific/linux/microcode/intel.nix3
-rw-r--r--pkgs/os-specific/linux/musl/default.nix4
-rw-r--r--pkgs/os-specific/linux/nftables/default.nix20
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/default.nix16
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/generic.nix2
-rw-r--r--pkgs/os-specific/linux/pam_u2f/default.nix1
-rw-r--r--pkgs/os-specific/linux/pam_usb/default.nix6
-rw-r--r--pkgs/os-specific/linux/pam_ussh/default.nix67
-rw-r--r--pkgs/os-specific/linux/pam_ussh/go.mod15
-rw-r--r--pkgs/os-specific/linux/pipework/default.nix4
-rw-r--r--pkgs/os-specific/linux/ply/default.nix1
-rw-r--r--pkgs/os-specific/linux/plymouth/default.nix2
-rw-r--r--pkgs/os-specific/linux/pscircle/default.nix11
-rw-r--r--pkgs/os-specific/linux/rasdaemon/default.nix4
-rw-r--r--pkgs/os-specific/linux/raspberrypi-eeprom/default.nix11
-rw-r--r--pkgs/os-specific/linux/rdma-core/default.nix10
-rw-r--r--pkgs/os-specific/linux/rdma-core/pkg-config-template.patch14
-rw-r--r--pkgs/os-specific/linux/rtl8723bs/default.nix2
-rw-r--r--pkgs/os-specific/linux/sasutils/default.nix22
-rw-r--r--pkgs/os-specific/linux/sch_cake/default.nix4
-rw-r--r--pkgs/os-specific/linux/sgx/psw/default.nix2
-rw-r--r--pkgs/os-specific/linux/sgx/samples/default.nix4
-rw-r--r--pkgs/os-specific/linux/shadow/default.nix6
-rw-r--r--pkgs/os-specific/linux/speedometer/default.nix26
-rw-r--r--pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch8
-rw-r--r--pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch10
-rw-r--r--pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch6
-rw-r--r--pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch18
-rw-r--r--pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch8
-rw-r--r--pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch10
-rw-r--r--pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch22
-rw-r--r--pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch8
-rw-r--r--pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch12
-rw-r--r--pkgs/os-specific/linux/systemd/0012-inherit-systemd-environment-when-calling-generators.patch8
-rw-r--r--pkgs/os-specific/linux/systemd/0013-add-rootprefix-to-lookup-dir-paths.patch6
-rw-r--r--pkgs/os-specific/linux/systemd/0014-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch10
-rw-r--r--pkgs/os-specific/linux/systemd/0015-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch6
-rw-r--r--pkgs/os-specific/linux/systemd/0016-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch23
-rw-r--r--pkgs/os-specific/linux/systemd/0017-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch6
-rw-r--r--pkgs/os-specific/linux/systemd/0018-pkg-config-derive-prefix-from-prefix.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0019-core-handle-lookup-paths-being-symlinks.patch14
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix282
-rw-r--r--pkgs/os-specific/linux/systemd/musl.diff12
-rw-r--r--pkgs/os-specific/linux/tiscamera/default.nix5
-rw-r--r--pkgs/os-specific/linux/udisks/2-default.nix17
-rw-r--r--pkgs/os-specific/linux/unscd/0001-adjust-socket-paths-for-nixos.patch41
-rw-r--r--pkgs/os-specific/linux/unscd/default.nix76
-rw-r--r--pkgs/os-specific/linux/upower/default.nix12
-rw-r--r--pkgs/os-specific/linux/usbrelay/daemon.nix36
-rw-r--r--pkgs/os-specific/linux/usbrelay/default.nix29
-rw-r--r--pkgs/os-specific/linux/usbrelay/python.nix12
-rw-r--r--pkgs/os-specific/linux/usbrelay/test.nix63
-rw-r--r--pkgs/os-specific/linux/util-linux/default.nix21
-rw-r--r--pkgs/os-specific/linux/vdo/default.nix64
-rw-r--r--pkgs/os-specific/linux/wireguard/default.nix6
-rw-r--r--pkgs/os-specific/linux/wpa_supplicant/default.nix6
-rw-r--r--pkgs/os-specific/linux/zfs/default.nix4
-rw-r--r--pkgs/pkgs-lib/formats/java-properties/default.nix22
-rw-r--r--pkgs/pkgs-lib/formats/java-properties/test/default.nix9
-rw-r--r--pkgs/pkgs-lib/tests/formats.nix27
-rw-r--r--pkgs/servers/adguardhome/bins.nix16
-rw-r--r--pkgs/servers/adguardhome/default.nix2
-rw-r--r--pkgs/servers/amqp/rabbitmq-server/default.nix6
-rw-r--r--pkgs/servers/asterisk/default.nix42
-rw-r--r--pkgs/servers/asterisk/versions.json20
-rw-r--r--pkgs/servers/atlassian/bamboo.nix4
-rw-r--r--pkgs/servers/atlassian/confluence.nix6
-rw-r--r--pkgs/servers/atlassian/jira.nix6
-rw-r--r--pkgs/servers/caddy/default.nix8
-rw-r--r--pkgs/servers/calibre-web/default.nix4
-rw-r--r--pkgs/servers/computing/slurm/default.nix4
-rw-r--r--pkgs/servers/confluent-platform/default.nix4
-rw-r--r--pkgs/servers/consul/default.nix6
-rw-r--r--pkgs/servers/dendrite/default.nix6
-rw-r--r--pkgs/servers/dex/default.nix4
-rw-r--r--pkgs/servers/dgraph/default.nix27
-rw-r--r--pkgs/servers/dns/doh-proxy/default.nix40
-rw-r--r--pkgs/servers/dns/pdns-recursor/default.nix4
-rw-r--r--pkgs/servers/dns/pdns/default.nix5
-rw-r--r--pkgs/servers/documize-community/default.nix1
-rw-r--r--pkgs/servers/echoip/default.nix2
-rw-r--r--pkgs/servers/firebird/default.nix5
-rw-r--r--pkgs/servers/foundationdb/vsmake.nix4
-rw-r--r--pkgs/servers/ftp/kamid/default.nix38
-rw-r--r--pkgs/servers/gemini/gmid/default.nix8
-rw-r--r--pkgs/servers/gerbera/default.nix4
-rw-r--r--pkgs/servers/gortr/default.nix3
-rw-r--r--pkgs/servers/grocy/default.nix4
-rw-r--r--pkgs/servers/haste-server/default.nix62
-rw-r--r--pkgs/servers/haste-server/node-composition.nix17
-rw-r--r--pkgs/servers/haste-server/node-deps.nix1551
-rw-r--r--pkgs/servers/haste-server/node-env.nix588
-rwxr-xr-xpkgs/servers/haste-server/update.sh28
-rw-r--r--pkgs/servers/hasura/cli.nix2
-rw-r--r--pkgs/servers/hbase/default.nix69
-rw-r--r--pkgs/servers/home-assistant/cli.nix20
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix4186
-rw-r--r--pkgs/servers/home-assistant/default.nix13
-rw-r--r--pkgs/servers/home-assistant/frontend.nix4
-rwxr-xr-xpkgs/servers/home-assistant/parse-requirements.py59
-rw-r--r--pkgs/servers/home-assistant/tests.nix18
-rw-r--r--pkgs/servers/hqplayerd/default.nix32
-rw-r--r--pkgs/servers/http/envoy/default.nix13
-rw-r--r--pkgs/servers/http/gitlab-pages/default.nix6
-rw-r--r--pkgs/servers/http/micro-httpd/default.nix1
-rw-r--r--pkgs/servers/http/nginx/generic.nix7
-rw-r--r--pkgs/servers/http/nginx/stable.nix9
-rw-r--r--pkgs/servers/http/pomerium/default.nix6
-rw-r--r--pkgs/servers/http/trafficserver/default.nix3
-rw-r--r--pkgs/servers/http/webfs/default.nix1
-rw-r--r--pkgs/servers/hydron/default.nix12
-rw-r--r--pkgs/servers/icingaweb2/default.nix4
-rw-r--r--pkgs/servers/imgproxy/default.nix2
-rw-r--r--pkgs/servers/irker/default.nix1
-rw-r--r--pkgs/servers/jellyfin/default.nix1
-rw-r--r--pkgs/servers/jellyfin/node-composition.nix2
-rw-r--r--pkgs/servers/jellyfin/node-deps.nix3137
-rwxr-xr-xpkgs/servers/jellyfin/web-update.sh2
-rw-r--r--pkgs/servers/jellyfin/web.nix1
-rw-r--r--pkgs/servers/kapowbang/default.nix1
-rw-r--r--pkgs/servers/keycloak/default.nix100
-rw-r--r--pkgs/servers/klipper/default.nix8
-rw-r--r--pkgs/servers/mail/archiveopteryx/default.nix10
-rw-r--r--pkgs/servers/mail/clamsmtp/default.nix1
-rw-r--r--pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix4
-rw-r--r--pkgs/servers/mail/mailman/default.nix8
-rw-r--r--pkgs/servers/mail/postfix/default.nix11
-rw-r--r--pkgs/servers/mail/rspamd/default.nix8
-rw-r--r--pkgs/servers/mail/system-sendmail/default.nix1
-rw-r--r--pkgs/servers/mastodon/default.nix2
-rw-r--r--pkgs/servers/mastodon/gemset.nix93
-rw-r--r--pkgs/servers/mastodon/source.nix4
-rw-r--r--pkgs/servers/mastodon/update.nix4
-rwxr-xr-xpkgs/servers/mastodon/update.sh44
-rw-r--r--pkgs/servers/mastodon/version.nix2
-rw-r--r--pkgs/servers/matrix-corporal/default.nix1
-rw-r--r--pkgs/servers/matrix-synapse/default.nix4
-rw-r--r--pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix4
-rwxr-xr-xpkgs/servers/matrix-synapse/matrix-appservice-slack/generate-dependencies.sh6
-rw-r--r--pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix22
-rw-r--r--pkgs/servers/matrix-synapse/plugins/shared-secret-auth.nix4
-rw-r--r--pkgs/servers/matrix-synapse/tools/synadm.nix4
-rw-r--r--pkgs/servers/matterbridge/default.nix4
-rw-r--r--pkgs/servers/mautrix-signal/default.nix4
-rw-r--r--pkgs/servers/mautrix-whatsapp/default.nix6
-rw-r--r--pkgs/servers/memcached/default.nix4
-rw-r--r--pkgs/servers/misc/oven-media-engine/default.nix6
-rw-r--r--pkgs/servers/monitoring/alerta/client.nix4
-rw-r--r--pkgs/servers/monitoring/alerta/default.nix13
-rw-r--r--pkgs/servers/monitoring/cadvisor/default.nix6
-rw-r--r--pkgs/servers/monitoring/grafana-agent/default.nix12
-rw-r--r--pkgs/servers/monitoring/grafana-agent/skip_test_requiring_network.patch15
-rw-r--r--pkgs/servers/monitoring/grafana/default.nix15
-rwxr-xr-xpkgs/servers/monitoring/grafana/update.sh39
-rw-r--r--pkgs/servers/monitoring/heapster/default.nix28
-rw-r--r--pkgs/servers/monitoring/loki/default.nix4
-rw-r--r--pkgs/servers/monitoring/mackerel-agent/default.nix4
-rw-r--r--pkgs/servers/monitoring/mimir/default.nix35
-rw-r--r--pkgs/servers/monitoring/munin/default.nix5
-rw-r--r--pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/bird-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/mesos-exporter.nix23
-rw-r--r--pkgs/servers/monitoring/prometheus/nextcloud-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/process-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/promscale/default.nix4
-rw-r--r--pkgs/servers/monitoring/telegraf/default.nix6
-rw-r--r--pkgs/servers/monitoring/thanos/default.nix4
-rw-r--r--pkgs/servers/monitoring/zipkin/default.nix1
-rw-r--r--pkgs/servers/nextcloud/default.nix8
-rw-r--r--pkgs/servers/nitter/default.nix6
-rwxr-xr-xpkgs/servers/nitter/update.sh40
-rw-r--r--pkgs/servers/nosql/arangodb/default.nix10
-rw-r--r--pkgs/servers/nosql/cassandra/2.1.json4
-rw-r--r--pkgs/servers/nosql/cassandra/2.1.nix19
-rw-r--r--pkgs/servers/nosql/cassandra/2.2.json4
-rw-r--r--pkgs/servers/nosql/cassandra/2.2.nix19
-rw-r--r--pkgs/servers/nosql/cassandra/3.0.json4
-rw-r--r--pkgs/servers/nosql/cassandra/3.0.nix12
-rw-r--r--pkgs/servers/nosql/cassandra/3.11.json4
-rw-r--r--pkgs/servers/nosql/cassandra/3.11.nix12
-rw-r--r--pkgs/servers/nosql/cassandra/generic.nix5
-rw-r--r--pkgs/servers/nosql/cassandra/update-script.nix55
-rw-r--r--pkgs/servers/nosql/mongodb/4.4.nix14
-rw-r--r--pkgs/servers/nosql/mongodb/5.0.nix25
-rw-r--r--pkgs/servers/nosql/mongodb/asio-no-experimental-string-view-4-4.patch23
-rw-r--r--pkgs/servers/nosql/mongodb/forget-build-dependencies-4-4.patch33
-rw-r--r--pkgs/servers/nosql/mongodb/mongodb.nix18
-rw-r--r--pkgs/servers/nosql/mongodb/v4_2.nix4
-rw-r--r--pkgs/servers/ombi/default.nix5
-rw-r--r--pkgs/servers/openafs/1.8/module.nix35
-rw-r--r--pkgs/servers/openafs/1.9/module.nix2
-rw-r--r--pkgs/servers/owncast/default.nix2
-rw-r--r--pkgs/servers/plex/raw.nix6
-rw-r--r--pkgs/servers/plik/default.nix2
-rw-r--r--pkgs/servers/postfixadmin/default.nix4
-rw-r--r--pkgs/servers/ps3netsrv/default.nix1
-rw-r--r--pkgs/servers/psitransfer/default.nix5
-rw-r--r--pkgs/servers/psitransfer/node-packages.nix345
-rw-r--r--pkgs/servers/pulseaudio/add-option-for-installation-sysconfdir.patch36
-rw-r--r--pkgs/servers/pulseaudio/correct-ldflags.patch13
-rw-r--r--pkgs/servers/pulseaudio/default.nix95
-rw-r--r--pkgs/servers/pulseaudio/pali.nix219
-rw-r--r--pkgs/servers/radicale/3.x.nix5
-rw-r--r--pkgs/servers/roon-bridge/default.nix2
-rw-r--r--pkgs/servers/roon-server/default.nix4
-rw-r--r--pkgs/servers/roundcube/plugins/carddav/default.nix6
-rw-r--r--pkgs/servers/roundcube/plugins/persistent_login/default.nix4
-rw-r--r--pkgs/servers/routinator/default.nix6
-rw-r--r--pkgs/servers/rt/default.nix2
-rw-r--r--pkgs/servers/search/elasticsearch/6.x.nix5
-rw-r--r--pkgs/servers/search/elasticsearch/7.x.nix10
-rw-r--r--pkgs/servers/search/groonga/default.nix4
-rw-r--r--pkgs/servers/sickbeard/sickgear.nix4
-rw-r--r--pkgs/servers/soft-serve/default.nix6
-rw-r--r--pkgs/servers/sql/dolt/default.nix10
-rw-r--r--pkgs/servers/sql/mysql/8.0.x.nix2
-rw-r--r--pkgs/servers/sql/patroni/default.nix2
-rw-r--r--pkgs/servers/sql/pgbouncer/default.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/jsonb_deep_sum.nix31
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix16
-rw-r--r--pkgs/servers/sql/postgresql/ext/plpgsql_check.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/timescaledb.nix7
-rw-r--r--pkgs/servers/sql/postgresql/packages.nix2
-rw-r--r--pkgs/servers/stayrtr/default.nix4
-rw-r--r--pkgs/servers/tailscale/default.nix8
-rw-r--r--pkgs/servers/traefik/default.nix6
-rw-r--r--pkgs/servers/trezord/default.nix1
-rw-r--r--pkgs/servers/udpt/default.nix1
-rw-r--r--pkgs/servers/ursadb/default.nix8
-rw-r--r--pkgs/servers/uxplay/default.nix60
-rw-r--r--pkgs/servers/web-apps/discourse/admin_create.patch2
-rw-r--r--pkgs/servers/web-apps/discourse/assets_rake_command.patch13
-rw-r--r--pkgs/servers/web-apps/discourse/auto_generated_path.patch4
-rw-r--r--pkgs/servers/web-apps/discourse/default.nix44
-rw-r--r--pkgs/servers/web-apps/discourse/nixos_defaults.patch4
-rw-r--r--pkgs/servers/web-apps/discourse/plugin_gem_api_version.patch2
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock14
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix16
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-canned-replies/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock10
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix12
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile2
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock2
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile2
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock2
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/rubyEnv/Gemfile19
-rw-r--r--pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock213
-rw-r--r--pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix269
-rw-r--r--pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch2
-rwxr-xr-xpkgs/servers/web-apps/discourse/update.py50
-rw-r--r--pkgs/servers/web-apps/invoiceplane/default.nix33
-rw-r--r--pkgs/servers/web-apps/jitsi-meet/default.nix4
-rwxr-xr-xpkgs/servers/web-apps/lemmy/update.sh2
-rw-r--r--pkgs/servers/web-apps/moodle/default.nix4
-rw-r--r--pkgs/servers/web-apps/netbox/default.nix33
-rw-r--r--pkgs/servers/web-apps/netbox/graphql-3_2_0.patch21
-rw-r--r--pkgs/servers/web-apps/nifi/default.nix45
-rw-r--r--pkgs/servers/web-apps/virtlyst/default.nix7
-rw-r--r--pkgs/servers/web-apps/wiki-js/default.nix9
-rwxr-xr-xpkgs/servers/web-apps/wiki-js/update.sh13
-rw-r--r--pkgs/servers/web-apps/wordpress/default.nix4
-rw-r--r--pkgs/servers/x11/xorg/default.nix22
-rwxr-xr-xpkgs/servers/x11/xorg/generate-expr-from-tarballs.pl6
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix37
-rw-r--r--pkgs/servers/x11/xorg/tarballs.list6
-rw-r--r--pkgs/servers/x11/xorg/xwayland.nix4
-rw-r--r--pkgs/servers/xmpp/prosody/default.nix12
-rw-r--r--pkgs/shells/es/default.nix4
-rw-r--r--pkgs/shells/fish/oh-my-fish/default.nix1
-rw-r--r--pkgs/shells/fish/plugins/fzf-fish.nix4
-rw-r--r--pkgs/shells/nushell/default.nix6
-rw-r--r--pkgs/shells/nushell/use-system-zstd-lib.diff26
-rw-r--r--pkgs/shells/oksh/default.nix8
-rw-r--r--pkgs/shells/powershell/default.nix8
-rw-r--r--pkgs/shells/zsh/agkozak-zsh-prompt/default.nix31
-rw-r--r--pkgs/shells/zsh/oh-my-zsh/default.nix6
-rw-r--r--pkgs/shells/zsh/spaceship-prompt/default.nix4
-rw-r--r--pkgs/shells/zsh/zsh-prezto/default.nix6
-rw-r--r--pkgs/stdenv/generic/make-derivation.nix9
-rw-r--r--pkgs/stdenv/generic/setup.sh30
-rw-r--r--pkgs/stdenv/linux/bootstrap-files/powerpc64le.nix25
-rw-r--r--pkgs/stdenv/linux/default.nix3
-rw-r--r--pkgs/stdenv/linux/make-bootstrap-tools.nix8
-rw-r--r--pkgs/test/cuda/cuda-library-samples/default.nix52
-rw-r--r--pkgs/test/cuda/cuda-library-samples/extension.nix3
-rw-r--r--pkgs/test/cuda/cuda-library-samples/generic.nix6
-rw-r--r--pkgs/test/cuda/cuda-samples/default.nix54
-rw-r--r--pkgs/test/cuda/cuda-samples/extension.nix20
-rw-r--r--pkgs/test/default.nix1
-rw-r--r--pkgs/tools/X11/caffeine-ng/default.nix1
-rw-r--r--pkgs/tools/X11/dragon-drop/default.nix28
-rw-r--r--pkgs/tools/X11/nx-libs/default.nix6
-rw-r--r--pkgs/tools/X11/obconf/default.nix2
-rw-r--r--pkgs/tools/X11/runningx/default.nix1
-rw-r--r--pkgs/tools/X11/screen-message/default.nix1
-rw-r--r--pkgs/tools/X11/xdg-utils/default.nix12
-rw-r--r--pkgs/tools/X11/xdragon/default.nix (renamed from pkgs/applications/misc/xdragon/default.nix)6
-rw-r--r--pkgs/tools/X11/xmagnify/default.nix1
-rw-r--r--pkgs/tools/X11/xnee/default.nix6
-rw-r--r--pkgs/tools/X11/xprintidle/default.nix40
-rw-r--r--pkgs/tools/admin/aliyun-cli/default.nix7
-rw-r--r--pkgs/tools/admin/amazon-ecr-credential-helper/default.nix1
-rw-r--r--pkgs/tools/admin/ansible/default.nix24
-rw-r--r--pkgs/tools/admin/awscli/default.nix4
-rw-r--r--pkgs/tools/admin/awscli2/default.nix29
-rw-r--r--pkgs/tools/admin/awslogs/default.nix39
-rw-r--r--pkgs/tools/admin/azure-cli/default.nix4
-rw-r--r--pkgs/tools/admin/azure-cli/python-packages.nix70
-rw-r--r--pkgs/tools/admin/certigo/default.nix2
-rw-r--r--pkgs/tools/admin/chamber/default.nix4
-rw-r--r--pkgs/tools/admin/clair/default.nix2
-rw-r--r--pkgs/tools/admin/colmena/default.nix4
-rw-r--r--pkgs/tools/admin/credhub-cli/default.nix12
-rw-r--r--pkgs/tools/admin/ejson2env/default.nix10
-rw-r--r--pkgs/tools/admin/eksctl/default.nix14
-rw-r--r--pkgs/tools/admin/exoscale-cli/default.nix5
-rw-r--r--pkgs/tools/admin/fastlane/Gemfile.lock170
-rw-r--r--pkgs/tools/admin/fastlane/gemset.nix378
-rw-r--r--pkgs/tools/admin/fits-cloudctl/default.nix6
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/data.nix22
-rwxr-xr-xpkgs/tools/admin/google-cloud-sdk/update.sh2
-rw-r--r--pkgs/tools/admin/iamy/default.nix2
-rw-r--r--pkgs/tools/admin/lxd/default.nix8
-rw-r--r--pkgs/tools/admin/nomachine-client/default.nix6
-rw-r--r--pkgs/tools/admin/oci-cli/default.nix12
-rw-r--r--pkgs/tools/admin/pebble/default.nix4
-rw-r--r--pkgs/tools/admin/pgadmin/default.nix3
-rw-r--r--pkgs/tools/admin/pulumi/data.nix386
-rwxr-xr-xpkgs/tools/admin/pulumi/update.sh2
-rw-r--r--pkgs/tools/admin/realvnc-vnc-viewer/default.nix6
-rw-r--r--pkgs/tools/admin/scaleway-cli/default.nix6
-rw-r--r--pkgs/tools/admin/stripe-cli/default.nix6
-rw-r--r--pkgs/tools/admin/syft/default.nix6
-rw-r--r--pkgs/tools/admin/tigervnc/default.nix15
-rw-r--r--pkgs/tools/admin/trinsic-cli/default.nix1
-rw-r--r--pkgs/tools/admin/trivy/default.nix6
-rw-r--r--pkgs/tools/archivers/7zz/default.nix41
-rw-r--r--pkgs/tools/archivers/bomutils/default.nix5
-rw-r--r--pkgs/tools/archivers/gbl/default.nix49
-rw-r--r--pkgs/tools/archivers/quickbms/default.nix2
-rw-r--r--pkgs/tools/archivers/wimlib/default.nix6
-rw-r--r--pkgs/tools/audio/abcmidi/default.nix4
-rw-r--r--pkgs/tools/audio/beets/default.nix2
-rw-r--r--pkgs/tools/audio/mpris-scrobbler/default.nix4
-rw-r--r--pkgs/tools/audio/spotdl/default.nix7
-rw-r--r--pkgs/tools/audio/yabridge/default.nix13
-rw-r--r--pkgs/tools/audio/yabridge/hardcode-dependencies.patch4
-rw-r--r--pkgs/tools/audio/yabridgectl/default.nix2
-rw-r--r--pkgs/tools/backup/bakelite/default.nix14
-rw-r--r--pkgs/tools/backup/borgbackup/default.nix3
-rw-r--r--pkgs/tools/backup/dar/default.nix4
-rw-r--r--pkgs/tools/backup/discordchatexporter-cli/default.nix8
-rw-r--r--pkgs/tools/backup/discordchatexporter-cli/deps.nix6
-rw-r--r--pkgs/tools/backup/gphotos-sync/default.nix16
-rw-r--r--pkgs/tools/backup/grab-site/default.nix3
-rw-r--r--pkgs/tools/backup/kopia/default.nix6
-rw-r--r--pkgs/tools/backup/zfsbackup/default.nix1
-rw-r--r--pkgs/tools/cd-dvd/ventoy-bin/default.nix4
-rw-r--r--pkgs/tools/compression/advancecomp/default.nix21
-rw-r--r--pkgs/tools/compression/bzip2/default.nix4
-rw-r--r--pkgs/tools/compression/gzip/default.nix4
-rw-r--r--pkgs/tools/compression/gzrt/default.nix1
-rw-r--r--pkgs/tools/compression/lhasa/default.nix1
-rw-r--r--pkgs/tools/compression/lrzip/default.nix4
-rw-r--r--pkgs/tools/compression/pigz/default.nix10
-rw-r--r--pkgs/tools/compression/pxz/default.nix4
-rw-r--r--pkgs/tools/compression/zfp/default.nix59
-rw-r--r--pkgs/tools/filesystems/apfsprogs/default.nix6
-rw-r--r--pkgs/tools/filesystems/bcachefs-tools/default.nix6
-rw-r--r--pkgs/tools/filesystems/btrfs-progs/default.nix4
-rw-r--r--pkgs/tools/filesystems/buttersink/default.nix30
-rw-r--r--pkgs/tools/filesystems/djmount/default.nix8
-rw-r--r--pkgs/tools/filesystems/e2fsprogs/default.nix11
-rw-r--r--pkgs/tools/filesystems/garage/default.nix12
-rw-r--r--pkgs/tools/filesystems/idsk/default.nix1
-rw-r--r--pkgs/tools/filesystems/lfs/default.nix6
-rw-r--r--pkgs/tools/filesystems/mtools/default.nix4
-rw-r--r--pkgs/tools/filesystems/rmfuse/default.nix18
-rw-r--r--pkgs/tools/filesystems/rmfuse/poetry-git-overlay.nix4
-rw-r--r--pkgs/tools/filesystems/rmfuse/poetry.lock438
-rw-r--r--pkgs/tools/filesystems/securefs/default.nix4
-rw-r--r--pkgs/tools/filesystems/squashfs-tools-ng/default.nix4
-rw-r--r--pkgs/tools/filesystems/xfsprogs/default.nix4
-rw-r--r--pkgs/tools/filesystems/zkfuse/default.nix4
-rw-r--r--pkgs/tools/filesystems/zpool-auto-expand-partitions/default.nix46
-rw-r--r--pkgs/tools/games/ajour/default.nix4
-rw-r--r--pkgs/tools/games/joystickwake/default.nix5
-rw-r--r--pkgs/tools/games/opentracker/default.nix2
-rw-r--r--pkgs/tools/graphics/astc-encoder/default.nix5
-rw-r--r--pkgs/tools/graphics/cuneiform/default.nix4
-rw-r--r--pkgs/tools/graphics/enblend-enfuse/default.nix33
-rw-r--r--pkgs/tools/graphics/imageworsener/default.nix1
-rw-r--r--pkgs/tools/graphics/pngcheck/default.nix2
-rw-r--r--pkgs/tools/graphics/pngtools/default.nix23
-rw-r--r--pkgs/tools/graphics/quirc/0001-dont-build-demos.patch29
-rw-r--r--pkgs/tools/graphics/quirc/default.nix28
-rw-r--r--pkgs/tools/graphics/sic-image-cli/default.nix6
-rw-r--r--pkgs/tools/graphics/snapdragon-profiler/default.nix2
-rw-r--r--pkgs/tools/graphics/structure-synth/default.nix2
-rw-r--r--pkgs/tools/inputmethods/droidmote/default.nix61
-rw-r--r--pkgs/tools/inputmethods/fcitx5/default.nix6
-rw-r--r--pkgs/tools/inputmethods/ibus/default.nix3
-rw-r--r--pkgs/tools/inputmethods/libinput-gestures/0001-hardcode-name.patch18
-rw-r--r--pkgs/tools/inputmethods/libinput-gestures/0002-paths.patch61
-rw-r--r--pkgs/tools/inputmethods/libinput-gestures/default.nix4
-rw-r--r--pkgs/tools/inputmethods/lisgd/default.nix4
-rw-r--r--pkgs/tools/misc/addlicense/default.nix27
-rw-r--r--pkgs/tools/misc/adrgen/default.nix4
-rw-r--r--pkgs/tools/misc/apkeep/default.nix6
-rw-r--r--pkgs/tools/misc/arch-install-scripts/default.nix7
-rw-r--r--pkgs/tools/misc/archi/default.nix3
-rw-r--r--pkgs/tools/misc/asdf-vm/default.nix5
-rw-r--r--pkgs/tools/misc/aspcud/default.nix7
-rw-r--r--pkgs/tools/misc/atuin/default.nix19
-rw-r--r--pkgs/tools/misc/broot/default.nix6
-rw-r--r--pkgs/tools/misc/calamares/default.nix4
-rw-r--r--pkgs/tools/misc/chezmoi/default.nix4
-rw-r--r--pkgs/tools/misc/cht.sh/default.nix6
-rw-r--r--pkgs/tools/misc/cloud-sql-proxy/default.nix6
-rw-r--r--pkgs/tools/misc/cod/default.nix13
-rw-r--r--pkgs/tools/misc/coreutils/default.nix3
-rw-r--r--pkgs/tools/misc/cpufetch/default.nix6
-rw-r--r--pkgs/tools/misc/czkawka/default.nix10
-rw-r--r--pkgs/tools/misc/dabet/default.nix24
-rw-r--r--pkgs/tools/misc/datefmt/default.nix4
-rw-r--r--pkgs/tools/misc/debianutils/default.nix6
-rw-r--r--pkgs/tools/misc/dgoss/default.nix4
-rw-r--r--pkgs/tools/misc/didyoumean/default.nix32
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix4
-rw-r--r--pkgs/tools/misc/docui/default.nix2
-rw-r--r--pkgs/tools/misc/dotter/default.nix8
-rw-r--r--pkgs/tools/misc/dsq/default.nix11
-rw-r--r--pkgs/tools/misc/edid-decode/default.nix12
-rw-r--r--pkgs/tools/misc/esphome/dashboard.nix4
-rw-r--r--pkgs/tools/misc/esphome/default.nix4
-rw-r--r--pkgs/tools/misc/ethminer/default.nix25
-rw-r--r--pkgs/tools/misc/ethtool/default.nix21
-rw-r--r--pkgs/tools/misc/eva/default.nix28
-rw-r--r--pkgs/tools/misc/execline/default.nix26
-rw-r--r--pkgs/tools/misc/f2/default.nix27
-rw-r--r--pkgs/tools/misc/fclones/default.nix6
-rw-r--r--pkgs/tools/misc/findutils/default.nix21
-rw-r--r--pkgs/tools/misc/fontforge/default.nix20
-rw-r--r--pkgs/tools/misc/fsql/default.nix15
-rw-r--r--pkgs/tools/misc/gay/default.nix12
-rw-r--r--pkgs/tools/misc/github-backup/default.nix4
-rw-r--r--pkgs/tools/misc/go.rice/default.nix5
-rw-r--r--pkgs/tools/misc/goreleaser/default.nix8
-rw-r--r--pkgs/tools/misc/gosu/default.nix25
-rw-r--r--pkgs/tools/misc/gosu/deps.nix11
-rw-r--r--pkgs/tools/misc/gotify-cli/default.nix1
-rw-r--r--pkgs/tools/misc/gparted/default.nix4
-rw-r--r--pkgs/tools/misc/gringo/default.nix2
-rw-r--r--pkgs/tools/misc/gti/default.nix4
-rw-r--r--pkgs/tools/misc/gummy/default.nix4
-rw-r--r--pkgs/tools/misc/heatseeker/default.nix1
-rw-r--r--pkgs/tools/misc/hiksink/default.nix1
-rw-r--r--pkgs/tools/misc/infracost/default.nix23
-rw-r--r--pkgs/tools/misc/interactsh/default.nix6
-rw-r--r--pkgs/tools/misc/intermodal/default.nix1
-rw-r--r--pkgs/tools/misc/ipxe/default.nix20
-rw-r--r--pkgs/tools/misc/kargo/default.nix2
-rw-r--r--pkgs/tools/misc/kisslicer/default.nix5
-rw-r--r--pkgs/tools/misc/kt/default.nix14
-rw-r--r--pkgs/tools/misc/lf/default.nix6
-rw-r--r--pkgs/tools/misc/logstash/6.x.nix6
-rw-r--r--pkgs/tools/misc/logstash/7.x.nix5
-rw-r--r--pkgs/tools/misc/lokalise2-cli/default.nix1
-rw-r--r--pkgs/tools/misc/lookatme/default.nix12
-rw-r--r--pkgs/tools/misc/lsd/default.nix4
-rw-r--r--pkgs/tools/misc/man-db/default.nix27
-rw-r--r--pkgs/tools/misc/melody/default.nix21
-rw-r--r--pkgs/tools/misc/miniserve/default.nix9
-rw-r--r--pkgs/tools/misc/mongodb-compass/default.nix4
-rw-r--r--pkgs/tools/misc/mutagen/default.nix8
-rw-r--r--pkgs/tools/misc/ncdu_2/c-import-order.patch17
-rw-r--r--pkgs/tools/misc/ncdu_2/default.nix33
-rw-r--r--pkgs/tools/misc/nix-direnv/default.nix4
-rw-r--r--pkgs/tools/misc/ntfy-sh/default.nix6
-rw-r--r--pkgs/tools/misc/oppai-ng/default.nix1
-rw-r--r--pkgs/tools/misc/plantuml/default.nix6
-rw-r--r--pkgs/tools/misc/plfit/default.nix54
-rw-r--r--pkgs/tools/misc/pmbootstrap/default.nix6
-rw-r--r--pkgs/tools/misc/pouf/default.nix27
-rw-r--r--pkgs/tools/misc/powerline-go/default.nix10
-rw-r--r--pkgs/tools/misc/pre-commit/default.nix124
-rw-r--r--pkgs/tools/misc/pubs/default.nix50
-rw-r--r--pkgs/tools/misc/qflipper/default.nix33
-rw-r--r--pkgs/tools/misc/remind/default.nix4
-rw-r--r--pkgs/tools/misc/sfeed/default.nix4
-rw-r--r--pkgs/tools/misc/shunit2/default.nix6
-rw-r--r--pkgs/tools/misc/starship/default.nix13
-rw-r--r--pkgs/tools/misc/steampipe/default.nix9
-rw-r--r--pkgs/tools/misc/svtplay-dl/default.nix4
-rw-r--r--pkgs/tools/misc/synth/default.nix6
-rw-r--r--pkgs/tools/misc/teleconsole/default.nix41
-rw-r--r--pkgs/tools/misc/tewisay/default.nix6
-rw-r--r--pkgs/tools/misc/thumbs/default.nix23
-rw-r--r--pkgs/tools/misc/thumbs/fix.patch13
-rw-r--r--pkgs/tools/misc/tldr/default.nix12
-rw-r--r--pkgs/tools/misc/tmux-mem-cpu-load/default.nix4
-rw-r--r--pkgs/tools/misc/tmuxp/default.nix4
-rw-r--r--pkgs/tools/misc/trash-cli/default.nix4
-rw-r--r--pkgs/tools/misc/unclutter-xfixes/default.nix1
-rw-r--r--pkgs/tools/misc/vector/default.nix22
-rw-r--r--pkgs/tools/misc/vial/default.nix4
-rw-r--r--pkgs/tools/misc/watchexec/default.nix8
-rw-r--r--pkgs/tools/misc/xvfb-run/default.nix62
-rwxr-xr-xpkgs/tools/misc/xvfb-run/update.sh21
-rw-r--r--pkgs/tools/misc/yad/default.nix4
-rw-r--r--pkgs/tools/misc/yafetch/default.nix18
-rw-r--r--pkgs/tools/misc/yt-dlp/default.nix7
-rw-r--r--pkgs/tools/misc/ytfzf/default.nix19
-rw-r--r--pkgs/tools/misc/zellij/default.nix4
-rw-r--r--pkgs/tools/misc/zoxide/default.nix10
-rw-r--r--pkgs/tools/networking/amass/default.nix6
-rw-r--r--pkgs/tools/networking/assh/default.nix6
-rw-r--r--pkgs/tools/networking/bitmask-vpn/default.nix10
-rw-r--r--pkgs/tools/networking/bore-cli/default.nix23
-rw-r--r--pkgs/tools/networking/cantoolz/default.nix32
-rw-r--r--pkgs/tools/networking/cassowary/default.nix2
-rw-r--r--pkgs/tools/networking/changetower/default.nix1
-rw-r--r--pkgs/tools/networking/checkip/default.nix4
-rw-r--r--pkgs/tools/networking/cjdns/default.nix10
-rw-r--r--pkgs/tools/networking/clash/default.nix4
-rw-r--r--pkgs/tools/networking/corerad/default.nix13
-rw-r--r--pkgs/tools/networking/croc/default.nix11
-rw-r--r--pkgs/tools/networking/curl/7.82.0-openssl-fix-CN-check.patch30
-rw-r--r--pkgs/tools/networking/curl/default.nix8
-rw-r--r--pkgs/tools/networking/curlie/default.nix15
-rw-r--r--pkgs/tools/networking/dd-agent/datadog-agent.nix6
-rw-r--r--pkgs/tools/networking/dhcp/default.nix27
-rw-r--r--pkgs/tools/networking/dnscrypt-proxy2/default.nix1
-rw-r--r--pkgs/tools/networking/dnsproxy/default.nix4
-rw-r--r--pkgs/tools/networking/dnstake/default.nix4
-rw-r--r--pkgs/tools/networking/eternal-terminal/default.nix7
-rw-r--r--pkgs/tools/networking/findomain/default.nix6
-rw-r--r--pkgs/tools/networking/godns/default.nix4
-rw-r--r--pkgs/tools/networking/gost/default.nix29
-rw-r--r--pkgs/tools/networking/gping/default.nix6
-rw-r--r--pkgs/tools/networking/haproxy/default.nix4
-rw-r--r--pkgs/tools/networking/innernet/default.nix6
-rw-r--r--pkgs/tools/networking/iperf/3.nix4
-rwxr-xr-xpkgs/tools/networking/ipfetch/default.nix2
-rw-r--r--pkgs/tools/networking/minio-client/default.nix1
-rw-r--r--pkgs/tools/networking/modemmanager/default.nix4
-rw-r--r--pkgs/tools/networking/mosh/default.nix6
-rw-r--r--pkgs/tools/networking/mozillavpn/default.nix132
-rw-r--r--pkgs/tools/networking/mutt-ics/default.nix21
-rw-r--r--pkgs/tools/networking/nebula/default.nix2
-rw-r--r--pkgs/tools/networking/nethogs/default.nix16
-rw-r--r--pkgs/tools/networking/nethoscope/default.nix59
-rw-r--r--pkgs/tools/networking/networkmanager/default.nix8
-rw-r--r--pkgs/tools/networking/networkmanager/fortisslvpn/default.nix1
-rw-r--r--pkgs/tools/networking/networkmanager/iodine/default.nix1
-rw-r--r--pkgs/tools/networking/networkmanager/l2tp/default.nix4
-rw-r--r--pkgs/tools/networking/networkmanager/libnma/default.nix4
-rw-r--r--pkgs/tools/networking/networkmanager/openconnect/default.nix1
-rw-r--r--pkgs/tools/networking/networkmanager/openvpn/default.nix1
-rw-r--r--pkgs/tools/networking/networkmanager/sstp/default.nix1
-rw-r--r--pkgs/tools/networking/networkmanager/strongswan/default.nix4
-rw-r--r--pkgs/tools/networking/networkmanager/tray.nix4
-rw-r--r--pkgs/tools/networking/networkmanager/vpnc/default.nix1
-rw-r--r--pkgs/tools/networking/ntp/default.nix5
-rw-r--r--pkgs/tools/networking/ntp/glibc-2.34-fix.patch28
-rw-r--r--pkgs/tools/networking/obfs4/default.nix2
-rw-r--r--pkgs/tools/networking/openconnect/common.nix45
-rw-r--r--pkgs/tools/networking/openconnect/default.nix71
-rw-r--r--pkgs/tools/networking/openfortivpn/default.nix4
-rw-r--r--pkgs/tools/networking/openntpd/default.nix4
-rw-r--r--pkgs/tools/networking/opensnitch/daemon.nix4
-rw-r--r--pkgs/tools/networking/opensnitch/ui.nix6
-rw-r--r--pkgs/tools/networking/openssh/common.nix5
-rw-r--r--pkgs/tools/networking/openssh/default.nix8
-rw-r--r--pkgs/tools/networking/openvpn/default.nix29
-rw-r--r--pkgs/tools/networking/openvpn/update-systemd-resolved.nix34
-rw-r--r--pkgs/tools/networking/openvpn/update-systemd-resolved.patch26
-rw-r--r--pkgs/tools/networking/p2p/jesec-rtorrent/default.nix9
-rw-r--r--pkgs/tools/networking/p2p/rakshasa-rtorrent/default.nix9
-rw-r--r--pkgs/tools/networking/pathvector/default.nix28
-rw-r--r--pkgs/tools/networking/pmacct/default.nix15
-rw-r--r--pkgs/tools/networking/rustcat/default.nix1
-rw-r--r--pkgs/tools/networking/s3gof3r/default.nix1
-rw-r--r--pkgs/tools/networking/shadowfox/default.nix1
-rw-r--r--pkgs/tools/networking/shadowsocks-rust/default.nix6
-rw-r--r--pkgs/tools/networking/shadowsocks-v2ray-plugin/default.nix1
-rw-r--r--pkgs/tools/networking/siege/default.nix4
-rw-r--r--pkgs/tools/networking/smartdns/default.nix20
-rw-r--r--pkgs/tools/networking/ssmtp/default.nix45
-rw-r--r--pkgs/tools/networking/ssmtp/ssmtp_support_AuthPassFile_parameter.patch69
-rw-r--r--pkgs/tools/networking/subfinder/default.nix6
-rw-r--r--pkgs/tools/networking/subnetcalc/default.nix31
-rw-r--r--pkgs/tools/networking/tdns-cli/default.nix1
-rw-r--r--pkgs/tools/networking/telepresence2/default.nix7
-rw-r--r--pkgs/tools/networking/termscp/default.nix6
-rw-r--r--pkgs/tools/networking/unbound/default.nix20
-rw-r--r--pkgs/tools/networking/vpnc/default.nix57
-rw-r--r--pkgs/tools/networking/vpnc/no_default_route_when_netmask.patch12
-rw-r--r--pkgs/tools/networking/webwormhole/default.nix1
-rw-r--r--pkgs/tools/networking/weighttp/default.nix23
-rw-r--r--pkgs/tools/networking/wg-friendly-peer-names/default.nix1
-rw-r--r--pkgs/tools/networking/wireguard-tools/default.nix5
-rw-r--r--pkgs/tools/networking/wormhole-william/default.nix7
-rw-r--r--pkgs/tools/networking/xxh/default.nix4
-rw-r--r--pkgs/tools/nix/alejandra/default.nix10
-rw-r--r--pkgs/tools/package-management/apt/default.nix4
-rw-r--r--pkgs/tools/package-management/cargo-about/default.nix6
-rw-r--r--pkgs/tools/package-management/cargo-outdated/default.nix6
-rw-r--r--pkgs/tools/package-management/cargo-release/default.nix6
-rw-r--r--pkgs/tools/package-management/clib/default.nix6
-rw-r--r--pkgs/tools/package-management/comma/default.nix61
-rw-r--r--pkgs/tools/package-management/conda/default.nix44
-rw-r--r--pkgs/tools/package-management/home-manager/default.nix10
-rw-r--r--pkgs/tools/package-management/nfpm/default.nix2
-rw-r--r--pkgs/tools/package-management/nix-doc/default.nix6
-rw-r--r--pkgs/tools/package-management/nix-du/default.nix6
-rw-r--r--pkgs/tools/package-management/nix-eval-jobs/default.nix4
-rw-r--r--pkgs/tools/package-management/nix-template/default.nix6
-rw-r--r--pkgs/tools/package-management/nix/common.nix2
-rw-r--r--pkgs/tools/package-management/nix/default.nix23
-rw-r--r--pkgs/tools/package-management/pdm/default.nix29
-rw-r--r--pkgs/tools/security/aeskeyfind/default.nix30
-rw-r--r--pkgs/tools/security/aws-iam-authenticator/default.nix4
-rw-r--r--pkgs/tools/security/aws-okta/default.nix30
-rw-r--r--pkgs/tools/security/cfripper/default.nix6
-rw-r--r--pkgs/tools/security/chntpw/00-chntpw-build-arch-autodetect.patch33
-rw-r--r--pkgs/tools/security/chntpw/01-chntpw-install-target.patch20
-rw-r--r--pkgs/tools/security/chntpw/default.nix42
-rw-r--r--pkgs/tools/security/cosign/default.nix6
-rw-r--r--pkgs/tools/security/cryptomator/default.nix25
-rw-r--r--pkgs/tools/security/dalfox/default.nix6
-rw-r--r--pkgs/tools/security/exploitdb/default.nix4
-rw-r--r--pkgs/tools/security/fail2ban/default.nix1
-rw-r--r--pkgs/tools/security/feroxbuster/default.nix8
-rw-r--r--pkgs/tools/security/fprintd/default.nix4
-rw-r--r--pkgs/tools/security/fulcio/default.nix9
-rw-r--r--pkgs/tools/security/fwbuilder/default.nix4
-rw-r--r--pkgs/tools/security/gau/default.nix4
-rw-r--r--pkgs/tools/security/gitleaks/default.nix6
-rw-r--r--pkgs/tools/security/go365/default.nix1
-rw-r--r--pkgs/tools/security/gobuster/default.nix2
-rw-r--r--pkgs/tools/security/gopass/default.nix2
-rw-r--r--pkgs/tools/security/gosh/default.nix1
-rw-r--r--pkgs/tools/security/grype/default.nix6
-rw-r--r--pkgs/tools/security/httpx/default.nix6
-rw-r--r--pkgs/tools/security/jwt-cli/default.nix1
-rw-r--r--pkgs/tools/security/kubescape/default.nix27
-rw-r--r--pkgs/tools/security/maigret/default.nix6
-rw-r--r--pkgs/tools/security/melt/default.nix6
-rw-r--r--pkgs/tools/security/metasploit/Gemfile2
-rw-r--r--pkgs/tools/security/metasploit/Gemfile.lock59
-rw-r--r--pkgs/tools/security/metasploit/default.nix4
-rw-r--r--pkgs/tools/security/metasploit/gemset.nix122
-rw-r--r--pkgs/tools/security/minio-certgen/default.nix1
-rw-r--r--pkgs/tools/security/nuclei/default.nix6
-rw-r--r--pkgs/tools/security/phrasendrescher/default.nix1
-rw-r--r--pkgs/tools/security/rekor/default.nix29
-rw-r--r--pkgs/tools/security/saml2aws/default.nix2
-rw-r--r--pkgs/tools/security/sheesy-cli/default.nix1
-rw-r--r--pkgs/tools/security/sigma-cli/default.nix6
-rw-r--r--pkgs/tools/security/signify/default.nix4
-rw-r--r--pkgs/tools/security/snowcrash/default.nix1
-rw-r--r--pkgs/tools/security/solo2-cli/default.nix1
-rw-r--r--pkgs/tools/security/spire/default.nix6
-rw-r--r--pkgs/tools/security/sslscan/default.nix4
-rw-r--r--pkgs/tools/security/sudolikeaboss/default.nix31
-rw-r--r--pkgs/tools/security/sudolikeaboss/deps.nix39
-rw-r--r--pkgs/tools/security/tpm2-abrmd/default.nix4
-rw-r--r--pkgs/tools/security/truecrack/default.nix1
-rw-r--r--pkgs/tools/security/vault/default.nix6
-rw-r--r--pkgs/tools/security/vault/vault-bin.nix12
-rw-r--r--pkgs/tools/security/vaultwarden/vault.nix4
-rw-r--r--pkgs/tools/security/whatweb/Gemfile6
-rw-r--r--pkgs/tools/security/whatweb/Gemfile.lock25
-rw-r--r--pkgs/tools/security/whatweb/default.nix50
-rw-r--r--pkgs/tools/security/whatweb/gemset.nix74
-rw-r--r--pkgs/tools/security/witness/default.nix15
-rw-r--r--pkgs/tools/system/btop/default.nix4
-rw-r--r--pkgs/tools/system/consul-template/default.nix6
-rw-r--r--pkgs/tools/system/ctop/default.nix2
-rw-r--r--pkgs/tools/system/fio/default.nix4
-rw-r--r--pkgs/tools/system/goreman/default.nix2
-rw-r--r--pkgs/tools/system/jsvc/default.nix4
-rw-r--r--pkgs/tools/system/jump/default.nix4
-rw-r--r--pkgs/tools/system/lshw/default.nix54
-rw-r--r--pkgs/tools/system/memtester/default.nix4
-rw-r--r--pkgs/tools/system/natscli/default.nix7
-rw-r--r--pkgs/tools/system/nq/default.nix4
-rw-r--r--pkgs/tools/system/nvtop/default.nix60
-rw-r--r--pkgs/tools/system/plan9port/default.nix1
-rw-r--r--pkgs/tools/system/s-tui/default.nix18
-rw-r--r--pkgs/tools/system/skeema/default.nix4
-rw-r--r--pkgs/tools/system/tre-command/default.nix1
-rw-r--r--pkgs/tools/system/zenith/default.nix13
-rw-r--r--pkgs/tools/text/angle-grinder/default.nix1
-rw-r--r--pkgs/tools/text/asciigraph/default.nix12
-rw-r--r--pkgs/tools/text/crowdin-cli/default.nix4
-rw-r--r--pkgs/tools/text/difftastic/default.nix10
-rw-r--r--pkgs/tools/text/goawk/default.nix17
-rw-r--r--pkgs/tools/text/highlight/default.nix4
-rw-r--r--pkgs/tools/text/html-tidy/default.nix1
-rw-r--r--pkgs/tools/text/igrep/default.nix11
-rw-r--r--pkgs/tools/text/jumanpp/0001-Exclude-all-tests-from-the-build.patch177
-rw-r--r--pkgs/tools/text/jumanpp/default.nix3
-rw-r--r--pkgs/tools/text/languagetool/default.nix4
-rw-r--r--pkgs/tools/text/mdbook-linkcheck/default.nix4
-rw-r--r--pkgs/tools/text/mdbook/default.nix6
-rw-r--r--pkgs/tools/text/miller/default.nix1
-rw-r--r--pkgs/tools/text/runiq/default.nix6
-rw-r--r--pkgs/tools/text/ugrep/default.nix4
-rw-r--r--pkgs/tools/typesetting/fop/default.nix4
-rw-r--r--pkgs/tools/typesetting/mmark/default.nix25
-rw-r--r--pkgs/tools/typesetting/mmark/deps.nix12
-rw-r--r--pkgs/tools/typesetting/odpdown/default.nix36
-rw-r--r--pkgs/tools/typesetting/pdf2odt/default.nix4
-rw-r--r--pkgs/tools/typesetting/satysfi/default.nix4
-rw-r--r--pkgs/tools/typesetting/sile/default.nix4
-rw-r--r--pkgs/tools/typesetting/tex/texlive/combine.nix12
-rw-r--r--pkgs/tools/video/atomicparsley/default.nix1
-rw-r--r--pkgs/tools/video/harvid/default.nix4
-rw-r--r--pkgs/tools/video/svt-av1/default.nix2
-rw-r--r--pkgs/tools/video/xjadeo/default.nix4
-rw-r--r--pkgs/tools/virtualization/awsebcli/default.nix18
-rw-r--r--pkgs/tools/virtualization/cloudmonkey/default.nix1
-rw-r--r--pkgs/tools/virtualization/linode-cli/default.nix4
-rw-r--r--pkgs/tools/virtualization/marathonctl/default.nix20
-rw-r--r--pkgs/tools/virtualization/marathonctl/deps.nix12
-rw-r--r--pkgs/tools/virtualization/rootlesskit/default.nix16
-rw-r--r--pkgs/tools/wayland/swayr/default.nix6
-rw-r--r--pkgs/tools/wayland/swaysome/default.nix25
-rw-r--r--pkgs/tools/wayland/swaytools/default.nix16
-rwxr-xr-xpkgs/tools/wayland/swaytools/update.py58
-rw-r--r--pkgs/tools/wayland/wayland-utils/default.nix1
-rw-r--r--pkgs/tools/wayland/wl-clipboard-x11/default.nix2
-rw-r--r--pkgs/tools/wayland/wl-mirror/default.nix7
-rw-r--r--pkgs/tools/wayland/wlr-randr/default.nix3
-rw-r--r--pkgs/tools/wayland/wob/default.nix4
-rw-r--r--pkgs/tools/wayland/wtype/default.nix4
-rw-r--r--pkgs/top-level/aliases.nix111
-rw-r--r--pkgs/top-level/all-packages.nix1396
-rw-r--r--pkgs/top-level/coq-packages.nix2
-rw-r--r--pkgs/top-level/cuda-packages.nix72
-rw-r--r--pkgs/top-level/haskell-packages.nix60
-rw-r--r--pkgs/top-level/linux-kernels.nix19
-rw-r--r--pkgs/top-level/ocaml-packages.nix38
-rw-r--r--pkgs/top-level/packages-config.nix2
-rw-r--r--pkgs/top-level/php-packages.nix6
-rw-r--r--pkgs/top-level/python-aliases.nix21
-rw-r--r--pkgs/top-level/python-packages.nix329
-rw-r--r--pkgs/top-level/python2-packages.nix2
-rw-r--r--pkgs/top-level/qt5-packages.nix5
-rw-r--r--pkgs/top-level/release-cuda.nix55
-rw-r--r--pkgs/top-level/release-haskell.nix24
-rw-r--r--pkgs/top-level/release-python.nix11
-rw-r--r--pkgs/top-level/release-small.nix2
-rw-r--r--pkgs/top-level/ruby-packages.nix232
3940 files changed, 73026 insertions, 42506 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 008d51b29aa43..28bfe7c1fd55b 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -41,7 +41,8 @@
 /pkgs/build-support/cc-wrapper                   @Ericson2314
 /pkgs/build-support/bintools-wrapper             @Ericson2314
 /pkgs/build-support/setup-hooks                  @Ericson2314
-/pkgs/build-support/setup-hooks/auto-patchelf.sh @aszlig
+/pkgs/build-support/setup-hooks/auto-patchelf.sh @layus
+/pkgs/build-support/setup-hooks/auto-patchelf.py @layus
 
 # Nixpkgs build-support
 /pkgs/build-support/writers @lassulus @Profpatsch
@@ -242,9 +243,8 @@
 
 # Docker tools
 /pkgs/build-support/docker                   @roberth
-/nixos/tests/docker-tools-overlay.nix        @roberth
-/nixos/tests/docker-tools.nix                @roberth
-/doc/builders/images/dockertools.xml         @roberth
+/nixos/tests/docker-tools*                   @roberth
+/doc/builders/images/dockertools.section.md  @roberth
 
 # Blockchains
 /pkgs/applications/blockchains  @mmahut @RaghavSood
@@ -285,3 +285,7 @@
 /nixos/modules/services/misc/matrix-conduit.nix            @piegamesde
 /nixos/tests/matrix-appservice-irc.nix                     @piegamesde
 /nixos/tests/matrix-conduit.nix                            @piegamesde
+
+# Dotnet
+/pkgs/build-support/dotnet          @IvarWithoutBones
+/pkgs/development/compilers/dotnet  @IvarWithoutBones
diff --git a/.github/workflows/basic-eval.yml b/.github/workflows/basic-eval.yml
index 41f751fd061f7..9a196923cf4a3 100644
--- a/.github/workflows/basic-eval.yml
+++ b/.github/workflows/basic-eval.yml
@@ -16,7 +16,7 @@ jobs:
     # we don't limit this action to only NixOS repo since the checks are cheap and useful developer feedback
     steps:
     - uses: actions/checkout@v3
-    - uses: cachix/install-nix-action@v16
+    - uses: cachix/install-nix-action@v17
     - uses: cachix/cachix-action@v10
       with:
         # This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
diff --git a/.github/workflows/editorconfig.yml b/.github/workflows/editorconfig.yml
index de49e55ef2a77..5b57614e1107b 100644
--- a/.github/workflows/editorconfig.yml
+++ b/.github/workflows/editorconfig.yml
@@ -28,7 +28,7 @@ jobs:
       with:
         # pull_request_target checks out the base branch by default
         ref: refs/pull/${{ github.event.pull_request.number }}/merge
-    - uses: cachix/install-nix-action@v16
+    - uses: cachix/install-nix-action@v17
       with:
         # nixpkgs commit is pinned so that it doesn't break
         # editorconfig-checker 2.4.0
diff --git a/.github/workflows/manual-nixos.yml b/.github/workflows/manual-nixos.yml
index 61a8a217651db..64829a191369a 100644
--- a/.github/workflows/manual-nixos.yml
+++ b/.github/workflows/manual-nixos.yml
@@ -18,7 +18,7 @@ jobs:
         with:
           # pull_request_target checks out the base branch by default
           ref: refs/pull/${{ github.event.pull_request.number }}/merge
-      - uses: cachix/install-nix-action@v16
+      - uses: cachix/install-nix-action@v17
         with:
           # explicitly enable sandbox
           extra_nix_config: sandbox = true
diff --git a/.github/workflows/manual-nixpkgs.yml b/.github/workflows/manual-nixpkgs.yml
index 70d9aab69828c..2aebeeeea2ab4 100644
--- a/.github/workflows/manual-nixpkgs.yml
+++ b/.github/workflows/manual-nixpkgs.yml
@@ -18,7 +18,7 @@ jobs:
         with:
           # pull_request_target checks out the base branch by default
           ref: refs/pull/${{ github.event.pull_request.number }}/merge
-      - uses: cachix/install-nix-action@v16
+      - uses: cachix/install-nix-action@v17
         with:
           # explicitly enable sandbox
           extra_nix_config: sandbox = true
diff --git a/.github/workflows/nixos-manual.yml b/.github/workflows/nixos-manual.yml
index bd70f228d4620..a77b90260424d 100644
--- a/.github/workflows/nixos-manual.yml
+++ b/.github/workflows/nixos-manual.yml
@@ -19,7 +19,7 @@ jobs:
       with:
         # pull_request_target checks out the base branch by default
         ref: refs/pull/${{ github.event.pull_request.number }}/merge
-    - uses: cachix/install-nix-action@v16
+    - uses: cachix/install-nix-action@v17
     - name: Check DocBook files generated from Markdown are consistent
       run: |
         nixos/doc/manual/md-to-db.sh
diff --git a/.github/workflows/update-terraform-providers.yml b/.github/workflows/update-terraform-providers.yml
index 0c775cb6e4024..13b08bed2bb42 100644
--- a/.github/workflows/update-terraform-providers.yml
+++ b/.github/workflows/update-terraform-providers.yml
@@ -11,7 +11,7 @@ jobs:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v3
-      - uses: cachix/install-nix-action@v16
+      - uses: cachix/install-nix-action@v17
       - name: setup
         id: setup
         run: |
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 0f8b5faef12dd..b90598e679119 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -20,7 +20,7 @@ Below is a short excerpt of some points in there:
   ```
   (pkg-name | nixos/<module>): (from -> to | init at version | refactor | etc)
 
-  (Motivation for change. Additional information.)
+  (Motivation for change. Link to release notes. Additional information.)
   ```
 
   For consistency, there should not be a period at the end of the commit message's summary line (the first line of the commit message).
@@ -29,6 +29,7 @@ Below is a short excerpt of some points in there:
 
   * nginx: init at 2.0.1
   * firefox: 54.0.1 -> 55.0
+    https://www.mozilla.org/en-US/firefox/55.0/releasenotes/
   * nixos/hydra: add bazBaz option
 
     Dual baz behavior is needed to do foo.
diff --git a/doc/builders/fetchers.chapter.md b/doc/builders/fetchers.chapter.md
index d9f22b062827c..09a41cd9ce0bb 100644
--- a/doc/builders/fetchers.chapter.md
+++ b/doc/builders/fetchers.chapter.md
@@ -6,7 +6,7 @@ When using Nix, you will frequently need to download source code and other files
 
 Because fixed output derivations are _identified_ by their hash, a common mistake is to update a fetcher's URL or a version parameter, without updating the hash. **This will cause the old contents to be used.** So remember to always invalidate the hash argument.
 
-For those who develop and maintain fetchers, a similar problem arises with changes to the implementation of a fetcher. These may cause a fixed output derivation to fail, but won't normally be caught by tests because the supposed output is already in the store or cache. For the purpose of testing, you can use a trick that is embodied by the [`invalidateFetcherByDrvHash`](#sec-pkgs-invalidateFetcherByDrvHash) function. It uses the derivation `name` to create a unique output path per fetcher implementation, defeating the caching precisely where it would be harmful.
+For those who develop and maintain fetchers, a similar problem arises with changes to the implementation of a fetcher. These may cause a fixed output derivation to fail, but won't normally be caught by tests because the supposed output is already in the store or cache. For the purpose of testing, you can use a trick that is embodied by the [`invalidateFetcherByDrvHash`](#tester-invalidateFetcherByDrvHash) function. It uses the derivation `name` to create a unique output path per fetcher implementation, defeating the caching precisely where it would be harmful.
 
 ## `fetchurl` and `fetchzip` {#fetchurl}
 
diff --git a/doc/builders/special.xml b/doc/builders/special.xml
index 2f84599cdd4f3..8902ce5c81329 100644
--- a/doc/builders/special.xml
+++ b/doc/builders/special.xml
@@ -7,5 +7,4 @@
  </para>
  <xi:include href="special/fhs-environments.section.xml" />
  <xi:include href="special/mkshell.section.xml" />
- <xi:include href="special/invalidateFetcherByDrvHash.section.xml" />
 </chapter>
diff --git a/doc/builders/special/invalidateFetcherByDrvHash.section.md b/doc/builders/special/invalidateFetcherByDrvHash.section.md
deleted file mode 100644
index 7c2f03a64b7b3..0000000000000
--- a/doc/builders/special/invalidateFetcherByDrvHash.section.md
+++ /dev/null
@@ -1,31 +0,0 @@
-
-## `invalidateFetcherByDrvHash` {#sec-pkgs-invalidateFetcherByDrvHash}
-
-Use the derivation hash to invalidate the output via name, for testing.
-
-Type: `(a@{ name, ... } -> Derivation) -> a -> Derivation`
-
-Normally, fixed output derivations can and should be cached by their output
-hash only, but for testing we want to re-fetch everytime the fetcher changes.
-
-Changes to the fetcher become apparent in the drvPath, which is a hash of
-how to fetch, rather than a fixed store path.
-By inserting this hash into the name, we can make sure to re-run the fetcher
-every time the fetcher changes.
-
-This relies on the assumption that Nix isn't clever enough to reuse its
-database of local store contents to optimize fetching.
-
-You might notice that the "salted" name derives from the normal invocation,
-not the final derivation. `invalidateFetcherByDrvHash` has to invoke the fetcher
-function twice: once to get a derivation hash, and again to produce the final
-fixed output derivation.
-
-Example:
-
-    tests.fetchgit = invalidateFetcherByDrvHash fetchgit {
-      name = "nix-source";
-      url = "https://github.com/NixOS/nix";
-      rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a";
-      sha256 = "sha256-7DszvbCNTjpzGRmpIVAWXk20P0/XTrWZ79KSOGLrUWY=";
-    };
diff --git a/doc/builders/testers.chapter.md b/doc/builders/testers.chapter.md
new file mode 100644
index 0000000000000..2c30c8bd240e1
--- /dev/null
+++ b/doc/builders/testers.chapter.md
@@ -0,0 +1,82 @@
+# Testers {#chap-testers}
+This chapter describes several testing builders which are available in the <literal>testers</literal> namespace.
+
+## `testVersion` {#tester-testVersion}
+
+Checks the command output contains the specified version
+
+Although simplistic, this test assures that the main program
+can run. While there's no substitute for a real test case,
+it does catch dynamic linking errors and such. It also provides
+some protection against accidentally building the wrong version,
+for example when using an 'old' hash in a fixed-output derivation.
+
+Examples:
+
+```nix
+passthru.tests.version = testVersion { package = hello; };
+
+passthru.tests.version = testVersion {
+  package = seaweedfs;
+  command = "weed version";
+};
+
+passthru.tests.version = testVersion {
+  package = key;
+  command = "KeY --help";
+  # Wrong '2.5' version in the code. Drop on next version.
+  version = "2.5";
+};
+```
+
+## `testEqualDerivation` {#tester-testEqualDerivation}
+
+Checks that two packages produce the exact same build instructions.
+
+This can be used to make sure that a certain difference of configuration,
+such as the presence of an overlay does not cause a cache miss.
+
+When the derivations are equal, the return value is an empty file.
+Otherwise, the build log explains the difference via `nix-diff`.
+
+Example:
+
+```nix
+testEqualDerivation
+  "The hello package must stay the same when enabling checks."
+  hello
+  (hello.overrideAttrs(o: { doCheck = true; }))
+```
+
+## `invalidateFetcherByDrvHash` {#tester-invalidateFetcherByDrvHash}
+
+Use the derivation hash to invalidate the output via name, for testing.
+
+Type: `(a@{ name, ... } -> Derivation) -> a -> Derivation`
+
+Normally, fixed output derivations can and should be cached by their output
+hash only, but for testing we want to re-fetch everytime the fetcher changes.
+
+Changes to the fetcher become apparent in the drvPath, which is a hash of
+how to fetch, rather than a fixed store path.
+By inserting this hash into the name, we can make sure to re-run the fetcher
+every time the fetcher changes.
+
+This relies on the assumption that Nix isn't clever enough to reuse its
+database of local store contents to optimize fetching.
+
+You might notice that the "salted" name derives from the normal invocation,
+not the final derivation. `invalidateFetcherByDrvHash` has to invoke the fetcher
+function twice: once to get a derivation hash, and again to produce the final
+fixed output derivation.
+
+Example:
+
+```nix
+tests.fetchgit = invalidateFetcherByDrvHash fetchgit {
+  name = "nix-source";
+  url = "https://github.com/NixOS/nix";
+  rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a";
+  sha256 = "sha256-7DszvbCNTjpzGRmpIVAWXk20P0/XTrWZ79KSOGLrUWY=";
+};
+```
diff --git a/doc/contributing/coding-conventions.chapter.md b/doc/contributing/coding-conventions.chapter.md
index dac6d828ac0b7..41973292863c7 100644
--- a/doc/contributing/coding-conventions.chapter.md
+++ b/doc/contributing/coding-conventions.chapter.md
@@ -214,15 +214,15 @@ Most of the time, these are the same. For instance, the package `e2fsprogs` has
 
 There are a few naming guidelines:
 
-- The `name` attribute _should_ be identical to the upstream package name.
+- The `pname` attribute _should_ be identical to the upstream package name.
 
-- The `name` attribute _must not_ contain uppercase letters — e.g., `"mplayer-1.0rc2"` instead of `"MPlayer-1.0rc2"`.
+- The `pname` and the `version` attribute _must not_ contain uppercase letters — e.g., `"mplayer" instead of `"MPlayer"`.
 
-- The version part of the `name` attribute _must_ start with a digit (following a dash) — e.g., `"hello-0.3.1rc2"`.
+- The `version` attribute _must_ start with a digit e.g`"0.3.1rc2".
 
-- If a package is not a release but a commit from a repository, then the version part of the name _must_ be the date of that (fetched) commit. The date _must_ be in `"YYYY-MM-DD"` format. Also append `"unstable"` to the name - e.g., `"pkgname-unstable-2014-09-23"`.
+- If a package is not a release but a commit from a repository, then the `version` attribute _must_ be the date of that (fetched) commit. The date _must_ be in `"unstable-YYYY-MM-DD"` format.
 
-- Dashes in the package name _should_ be preserved in new variable names, rather than converted to underscores or camel cased — e.g., `http-parser` instead of `http_parser` or `httpParser`. The hyphenated style is preferred in all three package names.
+- Dashes in the package `pname` _should_ be preserved in new variable names, rather than converted to underscores or camel cased — e.g., `http-parser` instead of `http_parser` or `httpParser`. The hyphenated style is preferred in all three package names.
 
 - If there are multiple versions of a package, this _should_ be reflected in the variable names in `all-packages.nix`, e.g. `json-c_0_9` and `json-c_0_11`. If there is an obvious “default” version, make an attribute like `json-c = json-c_0_9;`. See also [](#sec-versioning)
 
diff --git a/doc/hooks/index.xml b/doc/hooks/index.xml
new file mode 100644
index 0000000000000..6a046eae28857
--- /dev/null
+++ b/doc/hooks/index.xml
@@ -0,0 +1,10 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         xml:id="chap-hooks">
+ <title>Hooks reference</title>
+ <para>
+  Nixpkgs has several hook packages that augment the stdenv phases.
+ </para>
+ <xi:include href="./postgresql-test-hook.section.xml" />
+</chapter>
diff --git a/doc/hooks/postgresql-test-hook.section.md b/doc/hooks/postgresql-test-hook.section.md
new file mode 100644
index 0000000000000..077fac14ebbff
--- /dev/null
+++ b/doc/hooks/postgresql-test-hook.section.md
@@ -0,0 +1,59 @@
+
+# `postgresqlTestHook` {#sec-postgresqlTestHook}
+
+This hook starts a PostgreSQL server during the `checkPhase`. Example:
+
+```nix
+{ stdenv, postgresql, postgresqlTestHook }:
+stdenv.mkDerivation {
+
+  # ...
+
+  checkInputs = [
+    postgresql
+    postgresqlTestHook
+  ];
+}
+```
+
+If you use a custom `checkPhase`, remember to add the `runHook` calls:
+```nix
+  checkPhase ''
+    runHook preCheck
+
+    # ... your tests
+
+    runHook postCheck
+  ''
+```
+
+## Variables {#sec-postgresqlTestHook-variables}
+
+The hook logic will read a number of variables and set them to a default value if unset or empty.
+
+Exported variables:
+
+ - `PGDATA`: location of server files.
+ - `PGHOST`: location of UNIX domain socket directory; the default `host` in a connection string.
+ - `PGUSER`: user to create / log in with, default: `test_user`.
+ - `PGDATABASE`: database name, default: `test_db`.
+
+Bash-only variables:
+
+ - `postgresqlTestUserOptions`: SQL options to use when creating the `$PGUSER` role, default: `LOGIN`.
+ - `postgresqlTestSetupSQL`: SQL commands to run as database administrator after startup, default: statements that create `$PGUSER` and `$PGDATABASE`.
+ - `postgresqlTestSetupCommands`: bash commands to run after database start, defaults to running `$postgresqlTestSetupSQL` as database administrator.
+ - `postgresqlEnableTCP`: set to `1` to enable TCP listening. Flaky; not recommended.
+ - `postgresqlStartCommands`: defaults to `pg_ctl start`.
+
+## TCP and the Nix sandbox {#sec-postgresqlTestHook-tcp}
+
+`postgresqlEnableTCP` relies on network sandboxing, which is not available on macOS and some custom Nix installations, resulting in flaky tests.
+For this reason, it is disabled by default.
+
+The preferred solution is to make the test suite use a UNIX domain socket connection. This is the default behavior when no `host` connection parameter is provided.
+Some test suites hardcode a value for `host` though, so a patch may be required. If you can upstream the patch, you can make `host` default to the `PGHOST` environment variable when set. Otherwise, you can patch it locally to omit the `host` connection string parameter altogether.
+
+::: {.note}
+The error `libpq: failed (could not receive data from server: Connection refused` is generally an indication that the test suite is trying to connect through TCP.
+:::
diff --git a/doc/languages-frameworks/chicken.section.md b/doc/languages-frameworks/chicken.section.md
new file mode 100644
index 0000000000000..d8c35bd20c506
--- /dev/null
+++ b/doc/languages-frameworks/chicken.section.md
@@ -0,0 +1,49 @@
+# CHICKEN {#sec-chicken}
+
+[CHICKEN](https://call-cc.org/) is a
+[R⁵RS](https://schemers.org/Documents/Standards/R5RS/HTML/)-compliant Scheme
+compiler. It includes an interactive mode and a custom package format, "eggs".
+
+## Using Eggs
+
+Eggs described in nixpkgs are available inside the
+`chickenPackages.chickenEggs` attrset. Including an egg as a build input is
+done in the typical Nix fashion. For example, to include support for [SRFI
+189](https://srfi.schemers.org/srfi-189/srfi-189.html) in a derivation, one
+might write:
+
+```nix
+  buildInputs = [
+    chicken
+    chickenPackages.chickenEggs.srfi-189
+  ];
+```
+
+Both `chicken` and its eggs have a setup hook which configures the environment
+variables `CHICKEN_INCLUDE_PATH` and `CHICKEN_REPOSITORY_PATH`.
+
+## Updating Eggs
+
+nixpkgs only knows about a subset of all published eggs. It uses
+[egg2nix](https://github.com/the-kenny/egg2nix) to generate a
+package set from a list of eggs to include.
+
+The package set is regenerated by running the following shell commands:
+
+```
+$ nix-shell -p chickenPackages.egg2nix
+$ cd pkgs/development/compilers/chicken/5/
+$ egg2nix eggs.scm > eggs.nix
+```
+
+## Adding Eggs
+
+When we run `egg2nix`, we obtain one collection of eggs with
+mutually-compatible versions. This means that when we add new eggs, we may
+need to update existing eggs. To keep those separate, follow the procedure for
+updating eggs before including more eggs.
+
+To include more eggs, edit `pkgs/development/compilers/chicken/5/eggs.scm`.
+The first section of this file lists eggs which are required by `egg2nix`
+itself; all other eggs go into the second section. After editing, follow the
+procedure for updating eggs.
diff --git a/doc/languages-frameworks/cuda.section.md b/doc/languages-frameworks/cuda.section.md
new file mode 100644
index 0000000000000..fccf66bf79d2a
--- /dev/null
+++ b/doc/languages-frameworks/cuda.section.md
@@ -0,0 +1,34 @@
+# CUDA {#cuda}
+
+CUDA-only packages are stored in the `cudaPackages` packages set. This set
+includes the `cudatoolkit`, portions of the toolkit in separate derivations,
+`cudnn`, `cutensor` and `nccl`.
+
+A package set is available for each CUDA version, so for example
+`cudaPackages_11_6`. Within each set is a matching version of the above listed
+packages. Additionally, other versions of the packages that are packaged and
+compatible are available as well. For example, there can be a
+`cudaPackages.cudnn_8_3_2` package.
+
+To use one or more CUDA packages in an expression, give the expression a `cudaPackages` parameter, and in case CUDA is optional
+```nix
+cudaSupport ? false
+cudaPackages ? {}
+```
+
+When using `callPackage`, you can choose to pass in a different variant, e.g.
+when a different version of the toolkit suffices
+```nix
+mypkg = callPackage { cudaPackages = cudaPackages_11_5; }
+```
+
+If another version of say `cudnn` or `cutensor` is needed, you can override the
+package set to make it the default. This guarantees you get a consistent package
+set.
+```nix
+mypkg = let
+  cudaPackages = cudaPackages_11_5.overrideScope' (final: prev {
+    cudnn = prev.cudnn_8_3_2;
+  }});
+in callPackage { inherit cudaPackages; };
+```
diff --git a/doc/languages-frameworks/gnome.section.md b/doc/languages-frameworks/gnome.section.md
index 29cb2e0e464a2..d5996cce13cfd 100644
--- a/doc/languages-frameworks/gnome.section.md
+++ b/doc/languages-frameworks/gnome.section.md
@@ -42,7 +42,21 @@ Unlike other libraries mentioned in this section, GdkPixbuf only supports a sing
 
 ### Icons {#ssec-gnome-icons}
 
-When an application uses icons, an icon theme should be available in `XDG_DATA_DIRS` during runtime. The package for the default, icon-less [hicolor-icon-theme](https://www.freedesktop.org/wiki/Software/icon-theme/) (should be propagated by every icon theme) contains [a setup hook](#ssec-gnome-hooks-hicolor-icon-theme) that will pick up icon themes from `buildInputs` and pass it to our wrapper. Unfortunately, relying on that would mean every user has to download the theme included in the package expression no matter their preference. For that reason, we leave the installation of icon theme on the user. If you use one of the desktop environments, you probably already have an icon theme installed.
+When an application uses icons, an icon theme should be available in `XDG_DATA_DIRS` during runtime. The package for the default, icon-less [hicolor-icon-theme](https://www.freedesktop.org/wiki/Software/icon-theme/) (should be propagated by every icon theme) contains [a setup hook](#ssec-gnome-hooks-hicolor-icon-theme) that will pick up icon themes from `buildInputs` and add their datadirs to `XDG_ICON_DIRS` environment variable (this is Nixpkgs specific, not actually a XDG standard variable). Unfortunately, relying on that would mean every user has to download the theme included in the package expression no matter their preference. For that reason, we leave the installation of icon theme on the user. If you use one of the desktop environments, you probably already have an icon theme installed.
+
+In the rare case you need to use icons from dependencies (e.g. when an app forces an icon theme), you can use the following to pick them up:
+
+```nix
+  buildInputs = [
+    pantheon.elementary-icon-theme
+  ];
+  preFixup = ''
+    gappsWrapperArgs+=(
+      # The icon theme is hardcoded.
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS"
+    )
+  '';
+```
 
 To avoid costly file system access when locating icons, GTK, [as well as Qt](https://woboq.com/blog/qicon-reads-gtk-icon-cache-in-qt57.html), can rely on `icon-theme.cache` files from the themes' top-level directories. These files are generated using `gtk-update-icon-cache`, which is expected to be run whenever an icon is added or removed to an icon theme (typically an application icon into `hicolor` theme) and some programs do indeed run this after icon installation. However, since packages are installed into their own prefix by Nix, this would lead to conflicts. For that reason, `gtk3` provides a [setup hook](#ssec-gnome-hooks-gtk-drop-icon-theme-cache) that will clean the file from installation. Since most applications only ship their own icon that will be loaded on start-up, it should not affect them too much. On the other hand, icon themes are much larger and more widely used so we need to cache them. Because we recommend installing icon themes globally, we will generate the cache files from all packages in a profile using a NixOS module. You can enable the cache generation using `gtk.iconCache.enable` option if your desktop environment does not already do that.
 
@@ -98,7 +112,7 @@ For convenience, it also adds `dconf.lib` for a GIO module implementing a GSetti
 
 - []{#ssec-gnome-hooks-dconf} `dconf.lib` is a dependency of `wrapGAppsHook`, which then also adds it to the `GIO_EXTRA_MODULES` variable.
 
-- []{#ssec-gnome-hooks-hicolor-icon-theme} `hicolor-icon-theme`’s setup hook will add icon themes to `XDG_ICON_DIRS` which is prepended to `XDG_DATA_DIRS` by `wrapGAppsHook`.
+- []{#ssec-gnome-hooks-hicolor-icon-theme} `hicolor-icon-theme`’s setup hook will add icon themes to `XDG_ICON_DIRS`.
 
 - []{#ssec-gnome-hooks-gobject-introspection} `gobject-introspection` setup hook populates `GI_TYPELIB_PATH` variable with `lib/girepository-1.0` directories of dependencies, which is then added to wrapper by `wrapGAppsHook`. It also adds `share` directories of dependencies to `XDG_DATA_DIRS`, which is intended to promote GIR files but it also [pollutes the closures](https://github.com/NixOS/nixpkgs/issues/32790) of packages using `wrapGAppsHook`.
 
diff --git a/doc/languages-frameworks/go.section.md b/doc/languages-frameworks/go.section.md
index 411205d08e430..9c67a514335ed 100644
--- a/doc/languages-frameworks/go.section.md
+++ b/doc/languages-frameworks/go.section.md
@@ -142,4 +142,8 @@ Removes the pre-existing vendor directory. This should only be used if the depen
 
 ### `subPackages` {#var-go-subPackages}
 
-Limits the builder from building child packages that have not been listed. If `subPackages` is not specified, all child packages will be built.
+Specified as a string or list of strings. Limits the builder from building child packages that have not been listed. If `subPackages` is not specified, all child packages will be built.
+
+### `excludedPackages` {#var-go-excludedPackages}
+
+Specified as a string or list of strings. Causes the builder to skip building child packages that match any of the provided values. If `excludedPackages` is not specified, all child packages will be built.
diff --git a/doc/languages-frameworks/index.xml b/doc/languages-frameworks/index.xml
index f221693e764c8..3d5b2f738976d 100644
--- a/doc/languages-frameworks/index.xml
+++ b/doc/languages-frameworks/index.xml
@@ -9,8 +9,10 @@
  <xi:include href="android.section.xml" />
  <xi:include href="beam.section.xml" />
  <xi:include href="bower.section.xml" />
+ <xi:include href="chicken.section.xml" />
  <xi:include href="coq.section.xml" />
  <xi:include href="crystal.section.xml" />
+ <xi:include href="cuda.section.xml" />
  <xi:include href="dhall.section.xml" />
  <xi:include href="dotnet.section.xml" />
  <xi:include href="emscripten.section.xml" />
diff --git a/doc/manual.xml b/doc/manual.xml
index b43021d85ca56..ccbaf40586d1a 100644
--- a/doc/manual.xml
+++ b/doc/manual.xml
@@ -25,8 +25,10 @@
   <title>Builders</title>
   <xi:include href="builders/fetchers.chapter.xml" />
   <xi:include href="builders/trivial-builders.chapter.xml" />
+  <xi:include href="builders/testers.chapter.xml" />
   <xi:include href="builders/special.xml" />
   <xi:include href="builders/images.xml" />
+  <xi:include href="hooks/index.xml" />
   <xi:include href="languages-frameworks/index.xml" />
   <xi:include href="builders/packages/index.xml" />
  </part>
diff --git a/doc/stdenv/stdenv.chapter.md b/doc/stdenv/stdenv.chapter.md
index 7019ae89db74b..40f295b178bbd 100644
--- a/doc/stdenv/stdenv.chapter.md
+++ b/doc/stdenv/stdenv.chapter.md
@@ -1043,7 +1043,7 @@ You can also specify a `runtimeDependencies` variable which lists dependencies t
 
 In certain situations you may want to run the main command (`autoPatchelf`) of the setup hook on a file or a set of directories instead of unconditionally patching all outputs. This can be done by setting the `dontAutoPatchelf` environment variable to a non-empty value.
 
-By default `autoPatchelf` will fail as soon as any ELF file requires a dependency which cannot be resolved via the given build inputs. In some situations you might prefer to just leave missing dependencies unpatched and continue to patch the rest. This can be achieved by setting the `autoPatchelfIgnoreMissingDeps` environment variable to a non-empty value.
+By default `autoPatchelf` will fail as soon as any ELF file requires a dependency which cannot be resolved via the given build inputs. In some situations you might prefer to just leave missing dependencies unpatched and continue to patch the rest. This can be achieved by setting the `autoPatchelfIgnoreMissingDeps` environment variable to a non-empty value. `autoPatchelfIgnoreMissingDeps` can be set to a list like `autoPatchelfIgnoreMissingDeps = [ "libcuda.so.1" "libcudart.so.1" ];` or to simply `[ "*" ]` to ignore all missing dependencies.
 
 The `autoPatchelf` command also recognizes a `--no-recurse` command line flag, which prevents it from recursing into subdirectories.
 
diff --git a/lib/generators.nix b/lib/generators.nix
index 79ae9055ce3d9..3bc0fee332aea 100644
--- a/lib/generators.nix
+++ b/lib/generators.nix
@@ -10,7 +10,7 @@
  * are mostly generators themselves, called with
  * their respective default values; they can be reused.
  *
- * Tests can be found in ./tests.nix
+ * Tests can be found in ./tests/misc.nix
  * Documentation in the manual, #sec-generators
  */
 { lib }:
@@ -108,7 +108,7 @@ rec {
    * The mk* configuration attributes can generically change
    * the way sections and key-value strings are generated.
    *
-   * For more examples see the test cases in ./tests.nix.
+   * For more examples see the test cases in ./tests/misc.nix.
    */
   toINI = {
     # apply transformations (e.g. escapes) to section names
@@ -130,6 +130,51 @@ rec {
       # map input to ini sections
       mapAttrsToStringsSep "\n" mkSection attrsOfAttrs;
 
+  /* Generate an INI-style config file from an attrset
+   * specifying the global section (no header), and an
+   * attrset of sections to an attrset of key-value pairs.
+   *
+   * generators.toINIWithGlobalSection {} {
+   *   globalSection = {
+   *     someGlobalKey = "hi";
+   *   };
+   *   sections = {
+   *     foo = { hi = "${pkgs.hello}"; ciao = "bar"; };
+   *     baz = { "also, integers" = 42; };
+   * }
+   *
+   *> someGlobalKey=hi
+   *>
+   *> [baz]
+   *> also, integers=42
+   *>
+   *> [foo]
+   *> ciao=bar
+   *> hi=/nix/store/y93qql1p5ggfnaqjjqhxcw0vqw95rlz0-hello-2.10
+   *
+   * The mk* configuration attributes can generically change
+   * the way sections and key-value strings are generated.
+   *
+   * For more examples see the test cases in ./tests/misc.nix.
+   *
+   * If you don’t need a global section, you can also use
+   * `generators.toINI` directly, which only takes
+   * the part in `sections`.
+   */
+  toINIWithGlobalSection = {
+    # apply transformations (e.g. escapes) to section names
+    mkSectionName ? (name: libStr.escape [ "[" "]" ] name),
+    # format a setting line from key and value
+    mkKeyValue    ? mkKeyValueDefault {} "=",
+    # allow lists as values for duplicate keys
+    listsAsDuplicateKeys ? false
+  }: { globalSection, sections }:
+    ( if globalSection == {}
+      then ""
+      else (toKeyValue { inherit mkKeyValue listsAsDuplicateKeys; } globalSection)
+           + "\n")
+    + (toINI { inherit mkSectionName mkKeyValue listsAsDuplicateKeys; } sections);
+
   /* Generate a git-config file from an attrset.
    *
    * It has two major differences from the regular INI format:
diff --git a/lib/modules.nix b/lib/modules.nix
index 894104cc57907..0b3560a126615 100644
--- a/lib/modules.nix
+++ b/lib/modules.nix
@@ -46,6 +46,7 @@ let
     showFiles
     showOption
     unknownModule
+    literalExpression
     ;
 
   showDeclPrefix = loc: decl: prefix:
@@ -112,6 +113,10 @@ rec {
                   args ? {}
                 , # This would be remove in the future, Prefer _module.check option instead.
                   check ? true
+                  # Internal variable to avoid `_key` collisions regardless
+                  # of `extendModules`. Used in `submoduleWith`.
+                  # Test case: lib/tests/modules, "168767"
+                , extensionOffset ? 0
                 }:
     let
       withWarnings = x:
@@ -140,7 +145,7 @@ rec {
       # this module is used, to avoid conflicts and allow chaining of
       # extendModules.
       internalModule = rec {
-        _file = ./modules.nix;
+        _file = "lib/modules.nix";
 
         key = _file;
 
@@ -153,8 +158,91 @@ rec {
             # a `_module.args.pkgs = import (fetchTarball { ... }) {}` won't
             # start a download when `pkgs` wasn't evaluated.
             type = types.lazyAttrsOf types.raw;
-            internal = true;
-            description = "Arguments passed to each module.";
+            # Only render documentation once at the root of the option tree,
+            # not for all individual submodules.
+            internal = prefix != [];
+            # TODO: Change the type of this option to a submodule with a
+            # freeformType, so that individual arguments can be documented
+            # separately
+            description = ''
+              Additional arguments passed to each module in addition to ones
+              like <literal>lib</literal>, <literal>config</literal>,
+              and <literal>pkgs</literal>, <literal>modulesPath</literal>.
+              </para>
+              <para>
+              This option is also available to all submodules. Submodules do not
+              inherit args from their parent module, nor do they provide args to
+              their parent module or sibling submodules. The sole exception to
+              this is the argument <literal>name</literal> which is provided by
+              parent modules to a submodule and contains the attribute name
+              the submodule is bound to, or a unique generated name if it is
+              not bound to an attribute.
+              </para>
+              <para>
+              Some arguments are already passed by default, of which the
+              following <emphasis>cannot</emphasis> be changed with this option:
+              <itemizedlist>
+               <listitem>
+                <para>
+                 <varname>lib</varname>: The nixpkgs library.
+                </para>
+               </listitem>
+               <listitem>
+                <para>
+                 <varname>config</varname>: The results of all options after merging the values from all modules together.
+                </para>
+               </listitem>
+               <listitem>
+                <para>
+                 <varname>options</varname>: The options declared in all modules.
+                </para>
+               </listitem>
+               <listitem>
+                <para>
+                 <varname>specialArgs</varname>: The <literal>specialArgs</literal> argument passed to <literal>evalModules</literal>.
+                </para>
+               </listitem>
+               <listitem>
+                <para>
+                 All attributes of <varname>specialArgs</varname>
+                </para>
+                <para>
+                 Whereas option values can generally depend on other option values
+                 thanks to laziness, this does not apply to <literal>imports</literal>, which
+                 must be computed statically before anything else.
+                </para>
+                <para>
+                 For this reason, callers of the module system can provide <literal>specialArgs</literal>
+                 which are available during import resolution.
+                </para>
+                <para>
+                 For NixOS, <literal>specialArgs</literal> includes
+                 <varname>modulesPath</varname>, which allows you to import
+                 extra modules from the nixpkgs package tree without having to
+                 somehow make the module aware of the location of the
+                 <literal>nixpkgs</literal> or NixOS directories.
+              <programlisting>
+              { modulesPath, ... }: {
+                imports = [
+                  (modulesPath + "/profiles/minimal.nix")
+                ];
+              }
+              </programlisting>
+                </para>
+               </listitem>
+              </itemizedlist>
+              </para>
+              <para>
+              For NixOS, the default value for this option includes at least this argument:
+              <itemizedlist>
+               <listitem>
+                <para>
+                 <varname>pkgs</varname>: The nixpkgs package set according to
+                 the <option>nixpkgs.pkgs</option> option.
+                </para>
+               </listitem>
+              </itemizedlist>
+            '';
           };
 
           _module.check = mkOption {
@@ -254,15 +342,17 @@ rec {
         modules ? [],
         specialArgs ? {},
         prefix ? [],
+        extensionOffset ? length modules,
         }:
           evalModules (evalModulesArgs // {
             modules = regularModules ++ modules;
             specialArgs = evalModulesArgs.specialArgs or {} // specialArgs;
             prefix = extendArgs.prefix or evalModulesArgs.prefix;
+            inherit extensionOffset;
           });
 
       type = lib.types.submoduleWith {
-        inherit modules specialArgs;
+        inherit modules specialArgs extensionOffset;
       };
 
       result = withWarnings {
diff --git a/lib/strings.nix b/lib/strings.nix
index d34263c994948..11066890ec3d3 100644
--- a/lib/strings.nix
+++ b/lib/strings.nix
@@ -253,10 +253,7 @@ rec {
       => false
   */
   hasInfix = infix: content:
-    let
-      drop = x: substring 1 (stringLength x) x;
-    in hasPrefix infix content
-      || content != "" && hasInfix infix (drop content);
+    builtins.match ".*${escapeRegex infix}.*" content != null;
 
   /* Convert a string to a list of characters (i.e. singleton strings).
      This allows you to, e.g., map a function over each character.  However,
@@ -756,7 +753,14 @@ rec {
        sanitizeDerivationName pkgs.hello
        => "-nix-store-2g75chlbpxlrqn15zlby2dfh8hr9qwbk-hello-2.10"
   */
-  sanitizeDerivationName = string: lib.pipe string [
+  sanitizeDerivationName =
+  let okRegex = match "[[:alnum:]+_?=-][[:alnum:]+._?=-]*";
+  in
+  string:
+  # First detect the common case of already valid strings, to speed those up
+  if stringLength string <= 207 && okRegex string != null
+  then unsafeDiscardStringContext string
+  else lib.pipe string [
     # Get rid of string context. This is safe under the assumption that the
     # resulting string is only used as a derivation name
     unsafeDiscardStringContext
diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix
index 89cac575c67d3..0ebaeba7bd897 100644
--- a/lib/systems/inspect.nix
+++ b/lib/systems/inspect.nix
@@ -13,6 +13,7 @@ rec {
     isx86_64       = { cpu = { family = "x86"; bits = 64; }; };
     isPowerPC      = { cpu = cpuTypes.powerpc; };
     isPower        = { cpu = { family = "power"; }; };
+    isPower64      = { cpu = { family = "power"; bits = 64; }; };
     isx86          = { cpu = { family = "x86"; }; };
     isAarch32      = { cpu = { family = "arm"; bits = 32; }; };
     isAarch64      = { cpu = { family = "arm"; bits = 64; }; };
diff --git a/lib/systems/platforms.nix b/lib/systems/platforms.nix
index 04d55416242e1..d65ff6487b7ad 100644
--- a/lib/systems/platforms.nix
+++ b/lib/systems/platforms.nix
@@ -500,7 +500,7 @@ rec {
   # based on:
   #   https://www.mail-archive.com/qemu-discuss@nongnu.org/msg05179.html
   #   https://gmplib.org/~tege/qemu.html#mips64-debian
-  mips64el-qemu-linux-gnuabi64 = (import ./examples).mips64el-linux-gnuabi64 // {
+  mips64el-qemu-linux-gnuabi64 = {
     linux-kernel = {
       name = "mips64el";
       baseConfig = "64r2el_defconfig";
diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix
index 1eb2d953ebbe9..fcccf89cc888c 100644
--- a/lib/tests/misc.nix
+++ b/lib/tests/misc.nix
@@ -471,6 +471,66 @@ runTests {
     '';
   };
 
+  testToINIWithGlobalSectionEmpty = {
+    expr = generators.toINIWithGlobalSection {} {
+      globalSection = {
+      };
+      sections = {
+      };
+    };
+    expected = ''
+    '';
+  };
+
+  testToINIWithGlobalSectionGlobalEmptyIsTheSameAsToINI =
+    let
+      sections = {
+        "section 1" = {
+          attribute1 = 5;
+          x = "Me-se JarJar Binx";
+        };
+        "foo" = {
+          "he\\h=he" = "this is okay";
+        };
+      };
+    in {
+      expr =
+        generators.toINIWithGlobalSection {} {
+            globalSection = {};
+            sections = sections;
+        };
+      expected = generators.toINI {} sections;
+  };
+
+  testToINIWithGlobalSectionFull = {
+    expr = generators.toINIWithGlobalSection {} {
+      globalSection = {
+        foo = "bar";
+        test = false;
+      };
+      sections = {
+        "section 1" = {
+          attribute1 = 5;
+          x = "Me-se JarJar Binx";
+        };
+        "foo" = {
+          "he\\h=he" = "this is okay";
+        };
+      };
+    };
+    expected = ''
+      foo=bar
+      test=false
+
+      [foo]
+      he\h\=he=this is okay
+
+      [section 1]
+      attribute1=5
+      x=Me-se JarJar Binx
+    '';
+  };
+
   /* right now only invocation check */
   testToJSONSimple =
     let val = {
@@ -649,6 +709,11 @@ runTests {
     expected = "foo";
   };
 
+  testSanitizeDerivationNameUnicode = testSanitizeDerivationName {
+    name = "fö";
+    expected = "f-";
+  };
+
   testSanitizeDerivationNameAscii = testSanitizeDerivationName {
     name = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
     expected = "-+--.-0123456789-=-?-ABCDEFGHIJKLMNOPQRSTUVWXYZ-_-abcdefghijklmnopqrstuvwxyz-";
@@ -691,7 +756,7 @@ runTests {
 
         locs = filter (o: ! o.internal) (optionAttrSetToDocList options);
       in map (o: o.loc) locs;
-    expected = [ [ "foo" ] [ "foo" "<name>" "bar" ] [ "foo" "bar" ] ];
+    expected = [ [ "_module" "args" ] [ "foo" ] [ "foo" "<name>" "bar" ] [ "foo" "bar" ] ];
   };
 
   testCartesianProductOfEmptySet = {
diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh
index 8050c6539fc20..cc13a8d38e375 100755
--- a/lib/tests/modules.sh
+++ b/lib/tests/modules.sh
@@ -293,7 +293,7 @@ checkConfigOutput '^"a c"$' config.result ./functionTo/merging-attrs.nix
 
 # moduleType
 checkConfigOutput '^"a b"$' config.resultFoo ./declare-variants.nix ./define-variant.nix
-checkConfigOutput '^"a y z"$' config.resultFooBar ./declare-variants.nix ./define-variant.nix
+checkConfigOutput '^"a b y z"$' config.resultFooBar ./declare-variants.nix ./define-variant.nix
 checkConfigOutput '^"a b c"$' config.resultFooFoo ./declare-variants.nix ./define-variant.nix
 
 ## emptyValue's
@@ -327,6 +327,10 @@ checkConfigError 'The option .theOption.nested. in .other.nix. is already declar
 # Test that types.optionType leaves types untouched as long as they don't need to be merged
 checkConfigOutput 'ok' config.freeformItems.foo.bar ./adhoc-freeformType-survives-type-merge.nix
 
+# Anonymous submodules don't get nixed by import resolution/deduplication
+# because of an `extendModules` bug, issue 168767.
+checkConfigOutput '^1$' config.sub.specialisation.value ./extendModules-168767-imports.nix
+
 cat <<EOF
 ====== module tests ======
 $pass Pass
diff --git a/lib/tests/modules/extendModules-168767-imports.nix b/lib/tests/modules/extendModules-168767-imports.nix
new file mode 100644
index 0000000000000..489e6b5a5d836
--- /dev/null
+++ b/lib/tests/modules/extendModules-168767-imports.nix
@@ -0,0 +1,41 @@
+{ lib
+, extendModules
+, ...
+}:
+with lib;
+{
+  imports = [
+
+    {
+      options.sub = mkOption {
+        default = { };
+        type = types.submodule (
+          { config
+          , extendModules
+          , ...
+          }:
+          {
+            options.value = mkOption {
+              type = types.int;
+            };
+
+            options.specialisation = mkOption {
+              default = { };
+              inherit
+                (extendModules {
+                  modules = [{
+                    specialisation = mkOverride 0 { };
+                  }];
+                })
+                type;
+            };
+          }
+        );
+      };
+    }
+
+    { config.sub.value = 1; }
+
+
+  ];
+}
diff --git a/lib/types.nix b/lib/types.nix
index 5c4b963106178..91b040d24553b 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -568,6 +568,11 @@ rec {
       { modules
       , specialArgs ? {}
       , shorthandOnlyDefinesConfig ? false
+
+        # Internal variable to avoid `_key` collisions regardless
+        # of `extendModules`. Wired through by `evalModules`.
+        # Test case: lib/tests/modules, "168767"
+      , extensionOffset ? 0
       }@attrs:
       let
         inherit (lib.modules) evalModules;
@@ -579,11 +584,11 @@ rec {
         allModules = defs: imap1 (n: { value, file }:
           if isFunction value
           then setFunctionArgs
-                (args: lib.modules.unifyModuleSyntax file "${toString file}-${toString n}" (value args))
+                (args: lib.modules.unifyModuleSyntax file "${toString file}-${toString (n + extensionOffset)}" (value args))
                 (functionArgs value)
           else if isAttrs value
           then
-            lib.modules.unifyModuleSyntax file "${toString file}-${toString n}" (shorthandToModule value)
+            lib.modules.unifyModuleSyntax file "${toString file}-${toString (n + extensionOffset)}" (shorthandToModule value)
           else value
         ) defs;
 
@@ -620,6 +625,7 @@ rec {
           (base.extendModules {
             modules = [ { _module.args.name = last loc; } ] ++ allModules defs;
             prefix = loc;
+            extensionOffset = extensionOffset + length defs;
           }).config;
         emptyValue = { value = {}; };
         getSubOptions = prefix: (base.extendModules
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index ef6fdab0efac2..c6c5db0c0d399 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -380,6 +380,12 @@
     githubId = 209175;
     name = "Alesya Huzik";
   };
+  aidalgol = {
+    email = "aidalgol+nixpkgs@fastmail.net";
+    github = "aidalgol";
+    githubId = 2313201;
+    name = "Aidan Gauland";
+  };
   aij = {
     email = "aij+git@mrph.org";
     github = "aij";
@@ -669,6 +675,12 @@
     githubId = 858965;
     name = "Andrew Morsillo";
   };
+  an-empty-string = {
+    name = "Tris Emmy Wilson";
+    email = "tris@tris.fyi";
+    github = "an-empty-string";
+    githubId = 681716;
+  };
   andehen = {
     email = "git@andehen.net";
     github = "andehen";
@@ -1037,8 +1049,8 @@
     name = "Kirill Boltaev";
   };
   ashley = {
-    email = "personavinny@protonmail.com";
-    github = "paranoidcat";
+    email = "ashley@kira64.xyz";
+    github = "kira64xyz";
     githubId = 84152630;
     name = "Ashley Chiara";
   };
@@ -1794,6 +1806,12 @@
     githubId = 7214361;
     name = "Roman Gerasimenko";
   };
+  builditluc = {
+    email = "builditluc@icloud.com";
+    github = "builditluc";
+    githubId = 37375448;
+    name = "Buildit";
+  };
   bburdette = {
     email = "bburdette@protonmail.com";
     github = "bburdette";
@@ -2083,12 +2101,6 @@
     githubId = 18648043;
     name = "Daniel Cartwright";
   };
-  chiiruno = {
-    email = "okinan@protonmail.com";
-    github = "chiiruno";
-    githubId = 30435868;
-    name = "Okina Matara";
-  };
   Chili-Man = {
     email = "dr.elhombrechile@gmail.com";
     name = "Diego Rodriguez";
@@ -3837,6 +3849,13 @@
     githubId = 222467;
     name = "Dmitry Ivanov";
   };
+  ethindp = {
+    name = "Ethin Probst";
+    email = "harlydavidsen@gmail.com";
+    matrix = "@ethindp:the-gdn.net";
+    github = "ethindp";
+    githubId = 8030501;
+  };
   Etjean = {
     email = "et.jean@outlook.fr";
     github = "Etjean";
@@ -4502,6 +4521,12 @@
     githubId = 3217744;
     name = "Peter Ferenczy";
   };
+  ghostbuster91 = {
+    name = "Kasper Kondzielski";
+    email = "kghost0@gmail.com";
+    github = "ghostbuster91";
+    githubId = 5662622;
+  };
   ghuntley = {
     email = "ghuntley@ghuntley.com";
     github = "ghuntley";
@@ -4656,6 +4681,12 @@
     githubId = 4656860;
     name = "Gaute Ravndal";
   };
+  graysonhead = {
+    email = "grayson@graysonhead.net";
+    github = "graysonhead";
+    githubId = 6179496;
+    name = "Grayson Head";
+  };
   grburst = {
     email = "GRBurst@protonmail.com";
     github = "GRBurst";
@@ -4702,6 +4733,12 @@
     githubId = 343415;
     name = "Greg Roodt";
   };
+  grnnja = {
+    email = "grnnja@gmail.com";
+    github = "grnnja";
+    githubId = 31556469;
+    name = "Prem Netsuwan";
+  };
   gruve-p = {
     email = "groestlcoin@gmail.com";
     github = "gruve-p";
@@ -7166,6 +7203,13 @@
     githubId = 714;
     name = "Lily Ballard";
   };
+  lilyinstarlight = {
+    email = "lily@lily.flowers";
+    matrix = "@lily:lily.flowers";
+    github = "lilyinstarlight";
+    githubId = 298109;
+    name = "Lily Foster";
+  };
   limeytexan = {
     email = "limeytexan@gmail.com";
     github = "limeytexan";
@@ -7294,7 +7338,7 @@
     name = "Anthony Lodi";
   };
   loicreynier = {
-    email = "loic@loireynier.fr";
+    email = "loic@loicreynier.fr";
     github = "loicreynier";
     githubId = 88983487;
     name = "Loïc Reynier";
@@ -8085,6 +8129,12 @@
     githubId = 20536514;
     name = "Magdalena Haselsteiner";
   };
+  mh182 = {
+    email = "mh182@chello.at";
+    github = "mh182";
+    githubId = 9980864;
+    name = "Max Hofer";
+  };
   mic92 = {
     email = "joerg@thalheim.io";
     matrix = "@mic92:nixos.dev";
@@ -8258,6 +8308,17 @@
     githubId = 1776903;
     name = "Andrew Abbott";
   };
+  misterio77 = {
+    email = "eu@misterio.me";
+    github = "misterio77";
+    githubId = 5727578;
+    matrix = "@misterio:matrix.org";
+    name = "Gabriel Fontes";
+    keys = [{
+      longkeyid = "rsa3072/0x245CAB70B4C225E9";
+      fingerprint = "7088 C742 1873 E0DB 97FF  17C2 245C AB70 B4C2 25E9";
+    }];
+  };
   mitchmindtree = {
     email = "mail@mitchellnordine.com";
     github = "mitchmindtree";
@@ -8809,6 +8870,12 @@
     githubId = 3747396;
     name = "Nathan Isom";
   };
+  neilmayhew = {
+    email = "nix@neil.mayhew.name";
+    github = "neilmayhew";
+    githubId = 166791;
+    name = "Neil Mayhew";
+  };
   nelsonjeppesen = {
     email = "nix@jeppesen.io";
     github = "NelsonJeppesen";
@@ -9916,6 +9983,12 @@
       fingerprint = "2CD2 B030 BD22 32EF DF5A  008A 3618 20A4 5DB4 1E9A";
     }];
   };
+  podocarp = {
+    email = "xdjiaxd@gmail.com";
+    github = "podocarp";
+    githubId = 10473184;
+    name = "Jia Xiaodong";
+  };
   polendri = {
     email = "paul@ijj.li";
     github = "polendri";
@@ -10175,6 +10248,12 @@
     githubId = 115877;
     name = "Kenny Shen";
   };
+  quag = {
+    email = "quaggy@gmail.com";
+    github = "quag";
+    githubId = 35086;
+    name = "Jonathan Wright";
+  };
   queezle = {
     email = "git@queezle.net";
     github = "qzle";
@@ -10995,28 +11074,22 @@
     githubId = 132835;
     name = "Samuel Dionne-Riel";
   };
-  samuelgrf = {
-    email = "s@muel.gr";
-    github = "samuelgrf";
-    githubId = 67663538;
-    name = "Samuel Gräfenstein";
-    keys = [
-      {
-        longkeyid = "rsa4096/0xDE75F92E318123F0";
-        fingerprint = "6F2E 2A90 423C 8111 BFF2  895E DE75 F92E 3181 23F0";
-      }
-      {
-        longkeyid = "rsa4096/0xEF76A063F15C63C8";
-        fingerprint = "FF24 5832 8FAF 4660 18C6  186E EF76 A063 F15C 63C8";
-      }
-    ];
-  };
   samuelrivas = {
     email = "samuelrivas@gmail.com";
     github = "samuelrivas";
     githubId = 107703;
     name = "Samuel Rivas";
   };
+  samyak = {
+    name = "Samyak Sarnayak";
+    email = "samyak201@gmail.com";
+    github = "Samyak2";
+    githubId = 34161949;
+    keys = [{
+      longkeyid = "rsa4096/0x365873F2F0C6153B";
+      fingerprint = "155C F413 0129 C058 9A5F  5524 3658 73F2 F0C6 153B";
+    }];
+  };
   sander = {
     email = "s.vanderburg@tudelft.nl";
     github = "svanderburg";
@@ -11243,6 +11316,12 @@
     githubId = 307899;
     name = "Gurkan Gur";
   };
+  serge = {
+    email = "sb@canva.com";
+    github = "serge-belov";
+    githubId = 38824235;
+    name = "Serge Belov";
+  };
   sersorrel = {
     email = "ash@sorrel.sh";
     github = "sersorrel";
@@ -11287,6 +11366,12 @@
     githubId = 1151264;
     name = "Sebastian Graf";
   };
+  shadaj = {
+    email = "shadaj@users.noreply.github.com";
+    github = "shadaj";
+    githubId = 543055;
+    name = "Shadaj Laddad";
+  };
   shahrukh330 = {
     email = "shahrukh330@gmail.com";
     github = "shahrukh330";
@@ -11483,6 +11568,12 @@
     githubId = 2770647;
     name = "Simon Vandel Sillesen";
   };
+  sir4ur0n = {
+    email = "sir4ur0n@users.noreply.github.com";
+    github = "sir4ur0n";
+    githubId = 1204125;
+    name = "sir4ur0n";
+  };
   siraben = {
     email = "bensiraphob@gmail.com";
     matrix = "@siraben:matrix.org";
@@ -14159,6 +14250,12 @@
     github = "zbioe";
     githubId = 7332055;
   };
+  zendo = {
+    name = "zendo";
+    email = "linzway@qq.com";
+    github = "zendo";
+    githubId = 348013;
+  };
   zenithal = {
     name = "zenithal";
     email = "i@zenithal.me";
@@ -14279,4 +14376,16 @@
     github = "kuwii";
     githubId = 10705175;
   };
+  melias122 = {
+    name = "Martin Elias";
+    email = "martin+nixpkgs@elias.sx";
+    github = "melias122";
+    githubId = 1027766;
+  };
+  bryanhonof = {
+    name = "Bryan Honof";
+    email = "bryanhonof@gmail.com";
+    github = "bryanhonof";
+    githubId = 5932804;
+  };
 }
diff --git a/maintainers/scripts/dep-licenses.sh b/maintainers/scripts/dep-licenses.sh
index 28ad22c334fc1..816dcf6d7f768 100755
--- a/maintainers/scripts/dep-licenses.sh
+++ b/maintainers/scripts/dep-licenses.sh
@@ -9,7 +9,7 @@ tmp=$(mktemp --tmpdir -d nixpkgs-dep-license.XXXXXX)
 exitHandler() {
     exitCode=$?
     rm -rf "$tmp"
-    exit $exitCode
+    return $exitCode
 }
 
 trap "exitHandler" EXIT
diff --git a/maintainers/scripts/haskell/merge-and-open-pr.sh b/maintainers/scripts/haskell/merge-and-open-pr.sh
index 18db1da0f2a5b..9e6ebafaccc86 100755
--- a/maintainers/scripts/haskell/merge-and-open-pr.sh
+++ b/maintainers/scripts/haskell/merge-and-open-pr.sh
@@ -99,7 +99,7 @@ This PR is the regular merge of the \`haskell-updates\` branch into \`master\`.
 
 This branch is being continually built and tested by hydra at https://hydra.nixos.org/jobset/nixpkgs/haskell-updates. You may be able to find an up-to-date Hydra build report at [cdepillabout/nix-haskell-updates-status](https://github.com/cdepillabout/nix-haskell-updates-status).
 
-We roughly aim to merge these \`haskell-updates\` PRs at least once every two weeks. See the @NixOS/haskell [team calendar](https://cloud.maralorn.de/apps/calendar/p/Mw5WLnzsP7fC4Zky) for who is currently in charge of this branch.
+We roughly aim to merge these \`haskell-updates\` PRs at least once every two weeks. See the @NixOS/haskell [team calendar](https://cloud.maralorn.de/apps/calendar/p/H6migHmKX7xHoTFa) for who is currently in charge of this branch.
 
 ### haskellPackages Workflow Summary
 
diff --git a/maintainers/scripts/pluginupdate.py b/maintainers/scripts/pluginupdate.py
index 017e3ac758ac2..3cfdb1387053d 100644
--- a/maintainers/scripts/pluginupdate.py
+++ b/maintainers/scripts/pluginupdate.py
@@ -8,6 +8,7 @@
 # $ nix run nixpkgs.python3Packages.flake8 -c flake8 --ignore E501,E265 update.py
 
 import argparse
+import csv
 import functools
 import http
 import json
@@ -28,7 +29,7 @@ from pathlib import Path
 from typing import Dict, List, Optional, Tuple, Union, Any, Callable
 from urllib.parse import urljoin, urlparse
 from tempfile import NamedTemporaryFile
-from dataclasses import dataclass
+from dataclasses import dataclass, asdict
 
 import git
 
@@ -85,21 +86,30 @@ def make_request(url: str, token=None) -> urllib.request.Request:
         headers["Authorization"] = f"token {token}"
     return urllib.request.Request(url, headers=headers)
 
+
+Redirects = Dict['Repo', 'Repo']
+
 class Repo:
     def __init__(
-        self, uri: str, branch: str, alias: Optional[str]
+        self, uri: str, branch: str
     ) -> None:
         self.uri = uri
         '''Url to the repo'''
-        self.branch = branch
-        self.alias = alias
-        self.redirect: Dict[str, str] = {}
+        self._branch = branch
+        # {old_uri: new_uri}
+        self.redirect: Redirects = {}
         self.token = "dummy_token"
 
     @property
     def name(self):
         return self.uri.split('/')[-1]
 
+    @property
+    def branch(self):
+        return self._branch or "HEAD"
+
+    def __str__(self) -> str:
+        return f"{self.uri}"
     def __repr__(self) -> str:
         return f"Repo({self.name}, {self.uri})"
 
@@ -109,6 +119,7 @@ class Repo:
 
     @retry(urllib.error.URLError, tries=4, delay=3, backoff=2)
     def latest_commit(self) -> Tuple[str, datetime]:
+        log.debug("Latest commit")
         loaded = self._prefetch(None)
         updated = datetime.strptime(loaded['date'], "%Y-%m-%dT%H:%M:%S%z")
 
@@ -124,6 +135,7 @@ class Repo:
         return loaded
 
     def prefetch(self, ref: Optional[str]) -> str:
+        print("Prefetching")
         loaded = self._prefetch(ref)
         return loaded["sha256"]
 
@@ -137,21 +149,22 @@ class Repo:
 
 class RepoGitHub(Repo):
     def __init__(
-        self, owner: str, repo: str, branch: str, alias: Optional[str]
+        self, owner: str, repo: str, branch: str
     ) -> None:
         self.owner = owner
         self.repo = repo
         self.token = None
         '''Url to the repo'''
-        super().__init__(self.url(""), branch, alias)
-        log.debug("Instantiating github repo %s/%s", self.owner, self.repo)
+        super().__init__(self.url(""), branch)
+        log.debug("Instantiating github repo owner=%s and repo=%s", self.owner, self.repo)
 
     @property
     def name(self):
         return self.repo
 
     def url(self, path: str) -> str:
-        return urljoin(f"https://github.com/{self.owner}/{self.name}/", path)
+        res = urljoin(f"https://github.com/{self.owner}/{self.repo}/", path)
+        return res
 
     @retry(urllib.error.URLError, tries=4, delay=3, backoff=2)
     def has_submodules(self) -> bool:
@@ -168,6 +181,7 @@ class RepoGitHub(Repo):
     @retry(urllib.error.URLError, tries=4, delay=3, backoff=2)
     def latest_commit(self) -> Tuple[str, datetime]:
         commit_url = self.url(f"commits/{self.branch}.atom")
+        log.debug("Sending request to %s", commit_url)
         commit_req = make_request(commit_url, self.token)
         with urllib.request.urlopen(commit_req, timeout=10) as req:
             self._check_for_redirect(commit_url, req)
@@ -191,12 +205,9 @@ class RepoGitHub(Repo):
             new_owner, new_name = (
                 urllib.parse.urlsplit(response_url).path.strip("/").split("/")[:2]
             )
-            end_line = "\n" if self.alias is None else f" as {self.alias}\n"
-            plugin_line = "{owner}/{name}" + end_line
 
-            old_plugin = plugin_line.format(owner=self.owner, name=self.name)
-            new_plugin = plugin_line.format(owner=new_owner, name=new_name)
-            self.redirect[old_plugin] = new_plugin
+            new_repo = RepoGitHub(owner=new_owner, repo=new_name, branch=self.branch)
+            self.redirect[self] = new_repo
 
 
     def prefetch(self, commit: str) -> str:
@@ -207,9 +218,9 @@ class RepoGitHub(Repo):
         return sha256
 
     def prefetch_github(self, ref: str) -> str:
-        data = subprocess.check_output(
-            ["nix-prefetch-url", "--unpack", self.url(f"archive/{ref}.tar.gz")]
-        )
+        cmd = ["nix-prefetch-url", "--unpack", self.url(f"archive/{ref}.tar.gz")]
+        log.debug("Running %s", cmd)
+        data = subprocess.check_output(cmd)
         return data.strip().decode("utf-8")
 
     def as_nix(self, plugin: "Plugin") -> str:
@@ -239,21 +250,38 @@ class PluginDesc:
         else:
             return self.alias
 
+    def __lt__(self, other):
+        return self.repo.name < other.repo.name
+
+    @staticmethod
+    def load_from_csv(config: FetchConfig, row: Dict[str, str]) -> 'PluginDesc':
+        branch = row["branch"]
+        repo = make_repo(row['repo'], branch.strip())
+        repo.token = config.github_token
+        return PluginDesc(repo, branch.strip(), row["alias"])
+
+
+    @staticmethod
+    def load_from_string(config: FetchConfig, line: str) -> 'PluginDesc':
+        branch = "HEAD"
+        alias = None
+        uri = line
+        if " as " in uri:
+            uri, alias = uri.split(" as ")
+            alias = alias.strip()
+        if "@" in uri:
+            uri, branch = uri.split("@")
+        repo = make_repo(uri.strip(), branch.strip())
+        repo.token = config.github_token
+        return PluginDesc(repo, branch.strip(), alias)
 
+@dataclass
 class Plugin:
-    def __init__(
-        self,
-        name: str,
-        commit: str,
-        has_submodules: bool,
-        sha256: str,
-        date: Optional[datetime] = None,
-    ) -> None:
-        self.name = name
-        self.commit = commit
-        self.has_submodules = has_submodules
-        self.sha256 = sha256
-        self.date = date
+    name: str
+    commit: str
+    has_submodules: bool
+    sha256: str
+    date: Optional[datetime] = None
 
     @property
     def normalized_name(self) -> str:
@@ -270,6 +298,17 @@ class Plugin:
         return copy
 
 
+def load_plugins_from_csv(config: FetchConfig, input_file: Path,) -> List[PluginDesc]:
+    log.debug("Load plugins from csv %s", input_file)
+    plugins = []
+    with open(input_file, newline='') as csvfile:
+        log.debug("Writing into %s", input_file)
+        reader = csv.DictReader(csvfile,)
+        for line in reader:
+            plugin = PluginDesc.load_from_csv(config, line)
+            plugins.append(plugin)
+
+    return plugins
 
 class Editor:
     """The configuration of the update script."""
@@ -298,14 +337,8 @@ class Editor:
         return get_current_plugins(self)
 
     def load_plugin_spec(self, config: FetchConfig, plugin_file) -> List[PluginDesc]:
-        plugins = []
-        with open(plugin_file) as f:
-            for line in f:
-                if line.startswith("#"):
-                    continue
-                plugin = parse_plugin_line(config, line)
-                plugins.append(plugin)
-        return plugins
+        '''CSV spec'''
+        return load_plugins_from_csv(config, plugin_file)
 
     def generate_nix(self, plugins, outfile: str):
         '''Returns nothing for now, writes directly to outfile'''
@@ -316,11 +349,11 @@ class Editor:
         _prefetch = functools.partial(prefetch, cache=cache)
 
         def update() -> dict:
-            plugin_names = self.load_plugin_spec(config, input_file)
+            plugins = self.load_plugin_spec(config, input_file)
 
             try:
                 pool = Pool(processes=config.proc)
-                results = pool.map(_prefetch, plugin_names)
+                results = pool.map(_prefetch, plugins)
             finally:
                 cache.store()
 
@@ -423,6 +456,7 @@ def get_current_plugins(editor: Editor) -> List[Plugin]:
     data = json.loads(out)
     plugins = []
     for name, attr in data.items():
+        print("get_current_plugins: name %s" % name)
         p = Plugin(name, attr["rev"], attr["submodules"], attr["sha256"])
         plugins.append(p)
     return plugins
@@ -431,7 +465,7 @@ def get_current_plugins(editor: Editor) -> List[Plugin]:
 def prefetch_plugin(
     p: PluginDesc,
     cache: "Optional[Cache]" = None,
-) -> Tuple[Plugin, Dict[str, str]]:
+) -> Tuple[Plugin, Redirects]:
     repo, branch, alias = p.repo, p.branch, p.alias
     name = alias or p.repo.name
     commit = None
@@ -454,11 +488,6 @@ def prefetch_plugin(
     )
 
 
-def fetch_plugin_from_pluginline(config: FetchConfig, plugin_line: str) -> Plugin:
-    plugin, _ = prefetch_plugin(parse_plugin_line(config, plugin_line))
-    return plugin
-
-
 def print_download_error(plugin: str, ex: Exception):
     print(f"{plugin}: {ex}", file=sys.stderr)
     ex_traceback = ex.__traceback__
@@ -468,14 +497,14 @@ def print_download_error(plugin: str, ex: Exception):
     ]
     print("\n".join(tb_lines))
 
-
 def check_results(
-    results: List[Tuple[PluginDesc, Union[Exception, Plugin], Dict[str, str]]]
-) -> Tuple[List[Tuple[PluginDesc, Plugin]], Dict[str, str]]:
+    results: List[Tuple[PluginDesc, Union[Exception, Plugin], Redirects]]
+) -> Tuple[List[Tuple[PluginDesc, Plugin]], Redirects]:
     ''' '''
     failures: List[Tuple[str, Exception]] = []
     plugins = []
-    redirects: Dict[str, str] = {}
+    # {old: new} plugindesc
+    redirects: Dict[Repo, Repo] = {}
     for (pdesc, result, redirect) in results:
         if isinstance(result, Exception):
             failures.append((pdesc.name, result))
@@ -495,31 +524,17 @@ def check_results(
 
         sys.exit(1)
 
-def make_repo(uri, branch, alias) -> Repo:
+def make_repo(uri: str, branch) -> Repo:
     '''Instantiate a Repo with the correct specialization depending on server (gitub spec)'''
     # dumb check to see if it's of the form owner/repo (=> github) or https://...
-    res = uri.split('/')
-    if len(res) <= 2:
-        repo = RepoGitHub(res[0], res[1], branch, alias)
+    res = urlparse(uri)
+    if res.netloc in [ "github.com", ""]:
+        res = res.path.strip('/').split('/')
+        repo = RepoGitHub(res[0], res[1], branch)
     else:
-        repo = Repo(uri.strip(), branch, alias)
+        repo = Repo(uri.strip(), branch)
     return repo
 
-def parse_plugin_line(config: FetchConfig, line: str) -> PluginDesc:
-    branch = "HEAD"
-    alias = None
-    uri = line
-    if " as " in uri:
-        uri, alias = uri.split(" as ")
-        alias = alias.strip()
-    if "@" in uri:
-        uri, branch = uri.split("@")
-
-    repo = make_repo(uri.strip(), branch.strip(), alias)
-    repo.token = config.github_token
-
-    return PluginDesc(repo, branch.strip(), alias)
-
 
 def get_cache_path(cache_file_name: str) -> Optional[Path]:
     xdg_cache = os.environ.get("XDG_CACHE_HOME", None)
@@ -585,27 +600,27 @@ def prefetch(
         return (pluginDesc, e, {})
 
 
+
 def rewrite_input(
     config: FetchConfig,
     input_file: Path,
     deprecated: Path,
-    redirects: Dict[str, str] = None,
-    append: Tuple = (),
+    # old pluginDesc and the new
+    redirects: Dict[PluginDesc, PluginDesc] = {},
+    append: List[PluginDesc] = [],
 ):
-    with open(input_file, "r") as f:
-        lines = f.readlines()
+    plugins = load_plugins_from_csv(config, input_file,)
 
-    lines.extend(append)
+    plugins.extend(append)
 
     if redirects:
-        lines = [redirects.get(line, line) for line in lines]
 
         cur_date_iso = datetime.now().strftime("%Y-%m-%d")
         with open(deprecated, "r") as f:
             deprecations = json.load(f)
         for old, new in redirects.items():
-            old_plugin = fetch_plugin_from_pluginline(config, old)
-            new_plugin = fetch_plugin_from_pluginline(config, new)
+            old_plugin, _ = prefetch_plugin(old)
+            new_plugin, _ = prefetch_plugin(new)
             if old_plugin.normalized_name != new_plugin.normalized_name:
                 deprecations[old_plugin.normalized_name] = {
                     "new": new_plugin.normalized_name,
@@ -615,10 +630,14 @@ def rewrite_input(
             json.dump(deprecations, f, indent=4, sort_keys=True)
             f.write("\n")
 
-    lines = sorted(lines, key=str.casefold)
-
     with open(input_file, "w") as f:
-        f.writelines(lines)
+        log.debug("Writing into %s", input_file)
+        # fields = dataclasses.fields(PluginDesc)
+        fieldnames = ['repo', 'branch', 'alias']
+        writer = csv.DictWriter(f, fieldnames, dialect='unix', quoting=csv.QUOTE_NONE)
+        writer.writeheader()
+        for plugin in sorted(plugins):
+            writer.writerow(asdict(plugin))
 
 
 def commit(repo: git.Repo, message: str, files: List[Path]) -> None:
@@ -660,9 +679,11 @@ def update_plugins(editor: Editor, args):
             )
 
     for plugin_line in args.add_plugins:
-        editor.rewrite_input(fetch_config, args.input_file, editor.deprecated, append=(plugin_line + "\n",))
+        pdesc = PluginDesc.load_from_string(fetch_config, plugin_line)
+        append = [ pdesc ]
+        editor.rewrite_input(fetch_config, args.input_file, editor.deprecated, append=append)
         update()
-        plugin = fetch_plugin_from_pluginline(fetch_config, plugin_line)
+        plugin, _ = prefetch_plugin(pdesc, )
         if autocommit:
             commit(
                 nixpkgs_repo,
diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix
index e96bc47b4a53b..bcb5d0d02f74f 100644
--- a/nixos/doc/manual/default.nix
+++ b/nixos/doc/manual/default.nix
@@ -14,6 +14,10 @@ with pkgs;
 let
   lib = pkgs.lib;
 
+  docbook_xsl_ns = pkgs.docbook-xsl-ns.override {
+    withManOptDedupPatch = true;
+  };
+
   # We need to strip references to /nix/store/* from options,
   # including any `extraSources` if some modules came from elsewhere,
   # or else the build will fail.
diff --git a/nixos/doc/manual/development/development.xml b/nixos/doc/manual/development/development.xml
index 21286cdbd2b46..624ee3931659b 100644
--- a/nixos/doc/manual/development/development.xml
+++ b/nixos/doc/manual/development/development.xml
@@ -14,7 +14,6 @@
  <xi:include href="../from_md/development/building-parts.chapter.xml" />
  <xi:include href="../from_md/development/what-happens-during-a-system-switch.chapter.xml" />
  <xi:include href="../from_md/development/writing-documentation.chapter.xml" />
- <xi:include href="../from_md/development/building-nixos.chapter.xml" />
  <xi:include href="../from_md/development/nixos-tests.chapter.xml" />
  <xi:include href="../from_md/development/testing-installer.chapter.xml" />
 </part>
diff --git a/nixos/doc/manual/development/writing-nixos-tests.section.md b/nixos/doc/manual/development/writing-nixos-tests.section.md
index a9ffffe2277c2..e5ee1cb01ff16 100644
--- a/nixos/doc/manual/development/writing-nixos-tests.section.md
+++ b/nixos/doc/manual/development/writing-nixos-tests.section.md
@@ -159,34 +159,42 @@ The following methods are available on machine objects:
 `execute`
 
 :   Execute a shell command, returning a list `(status, stdout)`.
+
+    Commands are run with `set -euo pipefail` set:
+
+    -   If several commands are separated by `;` and one fails, the
+        command as a whole will fail.
+
+    -   For pipelines, the last non-zero exit status will be returned
+        (if there is one; otherwise zero will be returned).
+
+    -   Dereferencing unset variables fails the command.
+
+    -   It will wait for stdout to be closed.
+
     If the command detaches, it must close stdout, as `execute` will wait
     for this to consume all output reliably. This can be achieved by
     redirecting stdout to stderr `>&2`, to `/dev/console`, `/dev/null` or
     a file. Examples of detaching commands are `sleep 365d &`, where the
     shell forks a new process that can write to stdout and `xclip -i`, where
     the `xclip` command itself forks without closing stdout.
+
     Takes an optional parameter `check_return` that defaults to `True`.
     Setting this parameter to `False` will not check for the return code
     and return -1 instead. This can be used for commands that shut down
     the VM and would therefore break the pipe that would be used for
     retrieving the return code.
 
+    A timeout for the command can be specified (in seconds) using the optional
+    `timeout` parameter, e.g., `execute(cmd, timeout=10)` or
+    `execute(cmd, timeout=None)`. The default is 900 seconds.
+
 `succeed`
 
 :   Execute a shell command, raising an exception if the exit status is
-    not zero, otherwise returning the standard output. Commands are run
-    with `set -euo pipefail` set:
-
-    -   If several commands are separated by `;` and one fails, the
-        command as a whole will fail.
-
-    -   For pipelines, the last non-zero exit status will be returned
-        (if there is one, zero will be returned otherwise).
-
-    -   Dereferencing unset variables fail the command.
-
-    -   It will wait for stdout to be closed. See `execute` for the
-        implications.
+    not zero, otherwise returning the standard output. Similar to `execute`,
+    except that the timeout is `None` by default. See `execute` for details on
+    command execution.
 
 `fail`
 
@@ -196,10 +204,13 @@ The following methods are available on machine objects:
 `wait_until_succeeds`
 
 :   Repeat a shell command with 1-second intervals until it succeeds.
+    Has a default timeout of 900 seconds which can be modified, e.g.
+    `wait_until_succeeds(cmd, timeout=10)`. See `execute` for details on
+    command execution.
 
 `wait_until_fails`
 
-:   Repeat a shell command with 1-second intervals until it fails.
+:   Like `wait_until_succeeds`, but repeating the command until it fails.
 
 `wait_for_unit`
 
diff --git a/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml b/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml
index b194d58e5beb6..7ce3e4cb29065 100644
--- a/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml
+++ b/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml
@@ -274,35 +274,9 @@ start_all()
         <listitem>
           <para>
             Execute a shell command, returning a list
-            <literal>(status, stdout)</literal>. If the command
-            detaches, it must close stdout, as
-            <literal>execute</literal> will wait for this to consume all
-            output reliably. This can be achieved by redirecting stdout
-            to stderr <literal>&gt;&amp;2</literal>, to
-            <literal>/dev/console</literal>,
-            <literal>/dev/null</literal> or a file. Examples of
-            detaching commands are <literal>sleep 365d &amp;</literal>,
-            where the shell forks a new process that can write to stdout
-            and <literal>xclip -i</literal>, where the
-            <literal>xclip</literal> command itself forks without
-            closing stdout. Takes an optional parameter
-            <literal>check_return</literal> that defaults to
-            <literal>True</literal>. Setting this parameter to
-            <literal>False</literal> will not check for the return code
-            and return -1 instead. This can be used for commands that
-            shut down the VM and would therefore break the pipe that
-            would be used for retrieving the return code.
+            <literal>(status, stdout)</literal>.
           </para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term>
-          <literal>succeed</literal>
-        </term>
-        <listitem>
           <para>
-            Execute a shell command, raising an exception if the exit
-            status is not zero, otherwise returning the standard output.
             Commands are run with <literal>set -euo pipefail</literal>
             set:
           </para>
@@ -317,22 +291,63 @@ start_all()
             <listitem>
               <para>
                 For pipelines, the last non-zero exit status will be
-                returned (if there is one, zero will be returned
-                otherwise).
+                returned (if there is one; otherwise zero will be
+                returned).
               </para>
             </listitem>
             <listitem>
               <para>
-                Dereferencing unset variables fail the command.
+                Dereferencing unset variables fails the command.
               </para>
             </listitem>
             <listitem>
               <para>
-                It will wait for stdout to be closed. See
-                <literal>execute</literal> for the implications.
+                It will wait for stdout to be closed.
               </para>
             </listitem>
           </itemizedlist>
+          <para>
+            If the command detaches, it must close stdout, as
+            <literal>execute</literal> will wait for this to consume all
+            output reliably. This can be achieved by redirecting stdout
+            to stderr <literal>&gt;&amp;2</literal>, to
+            <literal>/dev/console</literal>,
+            <literal>/dev/null</literal> or a file. Examples of
+            detaching commands are <literal>sleep 365d &amp;</literal>,
+            where the shell forks a new process that can write to stdout
+            and <literal>xclip -i</literal>, where the
+            <literal>xclip</literal> command itself forks without
+            closing stdout.
+          </para>
+          <para>
+            Takes an optional parameter <literal>check_return</literal>
+            that defaults to <literal>True</literal>. Setting this
+            parameter to <literal>False</literal> will not check for the
+            return code and return -1 instead. This can be used for
+            commands that shut down the VM and would therefore break the
+            pipe that would be used for retrieving the return code.
+          </para>
+          <para>
+            A timeout for the command can be specified (in seconds)
+            using the optional <literal>timeout</literal> parameter,
+            e.g., <literal>execute(cmd, timeout=10)</literal> or
+            <literal>execute(cmd, timeout=None)</literal>. The default
+            is 900 seconds.
+          </para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>
+          <literal>succeed</literal>
+        </term>
+        <listitem>
+          <para>
+            Execute a shell command, raising an exception if the exit
+            status is not zero, otherwise returning the standard output.
+            Similar to <literal>execute</literal>, except that the
+            timeout is <literal>None</literal> by default. See
+            <literal>execute</literal> for details on command execution.
+          </para>
         </listitem>
       </varlistentry>
       <varlistentry>
@@ -353,7 +368,10 @@ start_all()
         <listitem>
           <para>
             Repeat a shell command with 1-second intervals until it
-            succeeds.
+            succeeds. Has a default timeout of 900 seconds which can be
+            modified, e.g.
+            <literal>wait_until_succeeds(cmd, timeout=10)</literal>. See
+            <literal>execute</literal> for details on command execution.
           </para>
         </listitem>
       </varlistentry>
@@ -363,8 +381,8 @@ start_all()
         </term>
         <listitem>
           <para>
-            Repeat a shell command with 1-second intervals until it
-            fails.
+            Like <literal>wait_until_succeeds</literal>, but repeating
+            the command until it fails.
           </para>
         </listitem>
       </varlistentry>
diff --git a/nixos/doc/manual/from_md/development/building-nixos.chapter.xml b/nixos/doc/manual/from_md/installation/building-nixos.chapter.xml
index ad9349da0686d..e7a76a6d715d8 100644
--- a/nixos/doc/manual/from_md/development/building-nixos.chapter.xml
+++ b/nixos/doc/manual/from_md/installation/building-nixos.chapter.xml
@@ -45,6 +45,40 @@ $ nix-build -A config.system.build.isoImage -I nixos-config=modules/installer/cd
 # mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso
 </programlisting>
   </section>
+  <section xml:id="sec-building-image-drivers">
+    <title>Additional drivers or firmware</title>
+    <para>
+      If you need additional (non-distributable) drivers or firmware in
+      the installer, you might want to extend these configurations.
+    </para>
+    <para>
+      For example, to build the GNOME graphical installer ISO, but with
+      support for certain WiFi adapters present in some MacBooks, you
+      can create the following file at
+      <literal>modules/installer/cd-dvd/installation-cd-graphical-gnome-macbook.nix</literal>:
+    </para>
+    <programlisting language="bash">
+{ config, ... }:
+
+{
+  imports = [ ./installation-cd-graphical-gnome.nix ];
+
+  boot.initrd.kernelModules = [ &quot;wl&quot; ];
+
+  boot.kernelModules = [ &quot;kvm-intel&quot; &quot;wl&quot; ];
+  boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
+}
+</programlisting>
+    <para>
+      Then build it like in the example above:
+    </para>
+    <programlisting>
+$ git clone https://github.com/NixOS/nixpkgs.git
+$ cd nixpkgs/nixos
+$ export NIXPKGS_ALLOW_UNFREE=1
+$ nix-build -A config.system.build.isoImage -I nixos-config=modules/installer/cd-dvd/installation-cd-graphical-gnome-macbook.nix default.nix
+</programlisting>
+  </section>
   <section xml:id="sec-building-image-tech-notes">
     <title>Technical Notes</title>
     <para>
diff --git a/nixos/doc/manual/from_md/release-notes/rl-1803.section.xml b/nixos/doc/manual/from_md/release-notes/rl-1803.section.xml
index f54f6129e0db9..910cad467e9d8 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-1803.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-1803.section.xml
@@ -866,6 +866,14 @@
           package.
         </para>
       </listitem>
+      <listitem>
+        <para>
+          The vim/kakoune plugin updater now reads from a CSV file:
+          check
+          <literal>pkgs/applications/editors/vim/plugins/vim-plugin-names</literal>
+          out to see the new format
+        </para>
+      </listitem>
     </itemizedlist>
   </section>
 </section>
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
index 38dd7b3894ddc..05b3822cab713 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
@@ -70,6 +70,18 @@
       </listitem>
       <listitem>
         <para>
+          Systemd has been upgraded to the version 250.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          The new
+          <link xlink:href="https://nixos.org/manual/nixpkgs/stable/#sec-postgresqlTestHook"><literal>postgresqlTestHook</literal></link>
+          runs a PostgreSQL server for the duration of package checks.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           <link xlink:href="https://kops.sigs.k8s.io"><literal>kops</literal></link>
           defaults to 1.22.4, which will enable
           <link xlink:href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html">Instance
@@ -127,6 +139,13 @@
       </listitem>
       <listitem>
         <para>
+          <link xlink:href="https://github.com/vvilhonen/nethoscope">nethoscope</link>,
+          listen to your network traffic. Available as
+          <link linkend="opt-programs.nethoscope.enable">programs.nethoscope</link>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html">filebeat</link>,
           a lightweight shipper for forwarding and centralizing log
           data. Available as
@@ -216,6 +235,15 @@
       </listitem>
       <listitem>
         <para>
+          <link xlink:href="https://github.com/mozilla-mobile/mozilla-vpn-client">mozillavpn</link>,
+          the client for the
+          <link xlink:href="https://vpn.mozilla.org/">Mozilla VPN</link>
+          service. Available as
+          <link xlink:href="options.html#opt-services.mozillavpn">services.mozillavpn</link>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           <link xlink:href="https://github.com/mgumz/mtr-exporter">mtr-exporter</link>,
           a Prometheus exporter for mtr metrics. Available as
           <link xlink:href="options.html#opt-services.mtr-exporter.enable">services.mtr-exporter</link>.
@@ -349,6 +377,14 @@
       </listitem>
       <listitem>
         <para>
+          <link xlink:href="https://github.com/lakinduakash/linux-wifi-hotspot">create_ap</link>,
+          a module for creating wifi hotspots using the program
+          linux-wifi-hotspot. Available as
+          <link xlink:href="options.html#opt-services.create_ap.enable">services.create_ap</link>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           <link xlink:href="https://0xerr0r.github.io/blocky/">blocky</link>,
           fast and lightweight DNS proxy as ad-blocker for local network
           with many features.
@@ -360,6 +396,14 @@
           cluster resource manager
         </para>
       </listitem>
+      <listitem>
+        <para>
+          <link xlink:href="https://nifi.apache.org">nifi</link>, an
+          easy to use, powerful, and reliable system to process and
+          distribute data. Available as
+          <link xlink:href="options.html#opt-services.nifi.enable">services.nifi</link>.
+        </para>
+      </listitem>
     </itemizedlist>
   </section>
   <section xml:id="sec-release-22.05-incompatibilities">
@@ -429,6 +473,50 @@
       </listitem>
       <listitem>
         <para>
+          <literal>security.klogd</literal> was removed. Logging of
+          kernel messages is handled by systemd since Linux 3.5.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <literal>pkgs.ssmtp</literal> has been dropped due to the
+          program being unmaintained. <literal>pkgs.msmtp</literal> can
+          be used instead as a substitute <literal>sendmail</literal>
+          implementation. The corresponding options
+          <literal>services.ssmtp.*</literal> have been removed as well.
+          <literal>programs.msmtp.*</literal> can be used instead for an
+          equivalent setup. For example:
+        </para>
+        <programlisting language="bash">
+{
+  # Original ssmtp configuration:
+  services.ssmtp = {
+    enable = true;
+    useTLS = true;
+    useSTARTTLS = true;
+    hostName = &quot;smtp.example:587&quot;;
+    authUser = &quot;someone&quot;;
+    authPassFile = &quot;/secrets/password.txt&quot;;
+  };
+
+  # Equivalent msmtp configuration:
+  programs.msmtp = {
+    enable = true;
+    accounts.default = {
+      tls = true;
+      tls_starttls = true;
+      auth = true;
+      host = &quot;smtp.example&quot;;
+      port = 587;
+      user = &quot;someone&quot;;
+      passwordeval = &quot;cat /secrets/password.txt&quot;;
+    };
+  };
+}
+</programlisting>
+      </listitem>
+      <listitem>
+        <para>
           <literal>services.kubernetes.addons.dashboard</literal> was
           removed due to it being an outdated version.
         </para>
@@ -446,6 +534,53 @@
       </listitem>
       <listitem>
         <para>
+          In the PowerDNS Recursor module
+          (<literal>services.pdns-recursor</literal>), default values of
+          several IP address-related NixOS options have been updated to
+          match the default upstream behavior. In particular, Recursor
+          by default will:
+        </para>
+        <itemizedlist spacing="compact">
+          <listitem>
+            <para>
+              listen on (and allows connections from) both IPv4 and IPv6
+              addresses
+              (<literal>services.pdns-recursor.dns.address</literal>,
+              <literal>services.pdns-recursor.dns.allowFrom</literal>);
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              allow only local connections to the REST API server
+              (<literal>services.pdns-recursor.api.allowFrom</literal>).
+            </para>
+          </listitem>
+        </itemizedlist>
+      </listitem>
+      <listitem>
+        <para>
+          In the ncdns module, the default value of
+          <literal>services.ncdns.address</literal> has been changed to
+          the IPv6 loopback address (<literal>::1</literal>).
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <literal>openssh</literal> has been update to 8.9p1, changing
+          the FIDO security key middleware interface.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <literal>git</literal> no longer hardcodes the path to
+          openssh’ ssh binary to reduce the amount of rebuilds. If you
+          are using git with ssh remotes and do not have a ssh binary in
+          your enviroment consider adding <literal>openssh</literal> to
+          it or switching to <literal>gitFull</literal>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           <literal>services.k3s.enable</literal> no longer implies
           <literal>systemd.enableUnifiedCgroupHierarchy = false</literal>,
           and will default to the <quote>systemd</quote> cgroup driver
@@ -478,6 +613,13 @@
       </listitem>
       <listitem>
         <para>
+          <literal>services.prometheus.alertManagerTimeout</literal> has
+          been removed as it has been deprecated upstream and has no
+          effect.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           The DHCP server (<literal>services.dhcpd4</literal>,
           <literal>services.dhcpd6</literal>) has been hardened. The
           service is now using the systemd’s
@@ -511,6 +653,24 @@
       </listitem>
       <listitem>
         <para>
+          <literal>hbase</literal> version 0.98.24 has been removed. The
+          package now defaults to version 2.4.11. Versions 1.7.1 and
+          3.0.0-alpha-2 are also available.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <literal>services.paperless-ng</literal> was renamed to
+          <literal>services.paperless</literal>. Accordingly, the
+          <literal>paperless-ng-manage</literal> script (located in
+          <literal>dataDir</literal>) was renamed to
+          <literal>paperless-manage</literal>.
+          <literal>services.paperless</literal> now uses
+          <literal>paperless-ngx</literal>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           The <literal>matrix-synapse</literal> service
           (<literal>services.matrix-synapse</literal>) has been
           converted to use the <literal>settings</literal> option
@@ -634,6 +794,131 @@
       </listitem>
       <listitem>
         <para>
+          The Keycloak package (<literal>pkgs.keycloak</literal>) has
+          been switched from the Wildfly version, which will soon be
+          deprecated, to the Quarkus based version. The Keycloak service
+          (<literal>services.keycloak</literal>) has been updated to
+          accommodate the change and now differs from the previous
+          version in a few ways:
+        </para>
+        <itemizedlist>
+          <listitem>
+            <para>
+              <literal>services.keycloak.extraConfig</literal> has been
+              removed in favor of the new
+              <link xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">settings-style</link>
+              <link linkend="opt-services.keycloak.settings"><literal>services.keycloak.settings</literal></link>
+              option. The available options correspond directly to
+              parameters in <literal>conf/keycloak.conf</literal>. Some
+              of the most important parameters are documented as
+              suboptions, the rest can be found in the
+              <link xlink:href="https://www.keycloak.org/server/all-config">All
+              configuration section of the Keycloak Server Installation
+              and Configuration Guide</link>. While the new
+              configuration is much simpler and cleaner than the old
+              JBoss CLI one, this unfortunately mean that there’s no
+              straightforward way to convert an old configuration to the
+              new format and some settings may not even be available
+              anymore.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              <literal>services.keycloak.frontendUrl</literal> was
+              removed and the frontend URL is now configured through the
+              <literal>hostname</literal> family of settings in
+              <link linkend="opt-services.keycloak.settings"><literal>services.keycloak.settings</literal></link>
+              instead. See the
+              <link xlink:href="https://www.keycloak.org/server/hostname">Hostname
+              section of the Keycloak Server Installation and
+              Configuration Guide</link> for more details. Additionally,
+              <literal>/auth</literal> was removed from the default
+              context path and needs to be added back in
+              <link linkend="opt-services.keycloak.settings.http-relative-path"><literal>services.keycloak.settings.http-relative-path</literal></link>
+              if you want to keep compatibility with your current
+              clients.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              <literal>services.keycloak.bindAddress</literal>,
+              <literal>services.keycloak.forceBackendUrlToFrontendUrl</literal>,
+              <literal>services.keycloak.httpPort</literal> and
+              <literal>services.keycloak.httpsPort</literal> have been
+              removed in favor of their equivalent options in
+              <link linkend="opt-services.keycloak.settings"><literal>services.keycloak.settings</literal></link>.
+              <literal>httpPort</literal> and
+              <literal>httpsPort</literal> have additionally had their
+              types changed from <literal>str</literal> to
+              <literal>port</literal>.
+            </para>
+            <para>
+              The new names are as follows:
+            </para>
+            <itemizedlist spacing="compact">
+              <listitem>
+                <para>
+                  <literal>bindAddress</literal>:
+                  <link linkend="opt-services.keycloak.settings.http-host"><literal>services.keycloak.settings.http-host</literal></link>
+                </para>
+              </listitem>
+              <listitem>
+                <para>
+                  <literal>forceBackendUrlToFrontendUrl</literal>:
+                  <link linkend="opt-services.keycloak.settings.hostname-strict-backchannel"><literal>services.keycloak.settings.hostname-strict-backchannel</literal></link>
+                </para>
+              </listitem>
+              <listitem>
+                <para>
+                  <literal>httpPort</literal>:
+                  <link linkend="opt-services.keycloak.settings.http-port"><literal>services.keycloak.settings.http-port</literal></link>
+                </para>
+              </listitem>
+              <listitem>
+                <para>
+                  <literal>httpsPort</literal>:
+                  <link linkend="opt-services.keycloak.settings.https-port"><literal>services.keycloak.settings.https-port</literal></link>
+                </para>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </itemizedlist>
+        <para>
+          For example, when using a reverse proxy the migration could
+          look like this:
+        </para>
+        <para>
+          Before:
+        </para>
+        <programlisting language="bash">
+  services.keycloak = {
+    enable = true;
+    httpPort = &quot;8080&quot;;
+    frontendUrl = &quot;https://keycloak.example.com/auth&quot;;
+    database.passwordFile = &quot;/run/keys/db_password&quot;;
+    extraConfig = {
+      &quot;subsystem=undertow&quot;.&quot;server=default-server&quot;.&quot;http-listener=default&quot;.proxy-address-forwarding = true;
+    };
+  };
+</programlisting>
+        <para>
+          After:
+        </para>
+        <programlisting language="bash">
+  services.keycloak = {
+    enable = true;
+    settings = {
+      http-port = 8080;
+      hostname = &quot;keycloak.example.com&quot;;
+      http-relative-path = &quot;/auth&quot;;
+      proxy = &quot;edge&quot;;
+    };
+    database.passwordFile = &quot;/run/keys/db_password&quot;;
+  };
+</programlisting>
+      </listitem>
+      <listitem>
+        <para>
           The MoinMoin wiki engine
           (<literal>services.moinmoin</literal>) has been removed,
           because Python 2 is being retired from nixpkgs.
@@ -768,6 +1053,14 @@
       </listitem>
       <listitem>
         <para>
+          The <literal>taskserver</literal> module no longer implicitly
+          opens ports in the firewall configuration. This is now
+          controlled through the option
+          <literal>services.taskserver.openFirewall</literal>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           The <literal>autorestic</literal> package has been upgraded
           from 1.3.0 to 1.5.0 which introduces breaking changes in
           config file, check
@@ -970,6 +1263,14 @@
       </listitem>
       <listitem>
         <para>
+          <literal>systemd-shutdown</literal> is now properly linked on
+          shutdown to unmount all filesystems and device mapper devices
+          cleanly. This can be disabled using
+          <literal>boot.systemd.shutdown.enable</literal>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           The Tor SOCKS proxy is now actually disabled if
           <literal>services.tor.client.enable</literal> is set to
           <literal>false</literal> (the default). If you are using this
@@ -980,6 +1281,15 @@
       </listitem>
       <listitem>
         <para>
+          <literal>services.github-runner</literal> has been hardened.
+          Notably address families and system calls have been
+          restricted, which may adversely affect some kinds of testing,
+          e.g. using <literal>AF_BLUETOOTH</literal> to test bluetooth
+          devices.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           The terraform 0.12 compatibility has been removed and the
           <literal>terraform.withPlugins</literal> and
           <literal>terraform-providers.mkProvider</literal>
@@ -1270,11 +1580,49 @@
       </listitem>
       <listitem>
         <para>
+          Existing <literal>resholve*</literal> functions have been
+          renamed and nested under <literal>pkgs.resholve</literal>.
+          Update uses to:
+        </para>
+        <itemizedlist spacing="compact">
+          <listitem>
+            <para>
+              <literal>resholvePackage</literal> -&gt;
+              <literal>resholve.mkDerivation</literal>
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              <literal>resholveScript</literal> -&gt;
+              <literal>resholve.writeScript</literal>
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              <literal>resholveScriptBin</literal> -&gt;
+              <literal>resholve.writeScriptBin</literal>
+            </para>
+          </listitem>
+        </itemizedlist>
+      </listitem>
+      <listitem>
+        <para>
           <literal>pkgs.cosmopolitan</literal> no longer provides the
           <literal>cosmoc</literal> command. It has been moved to
           <literal>pkgs.cosmoc</literal>.
         </para>
       </listitem>
+      <listitem>
+        <para>
+          <literal>pkgs.graalvmXX-ce</literal> packages no longer
+          provide support for Python/Ruby/WASM, instead focusing only in
+          Java and Native Image Support. If you need to add support
+          back, please see the
+          <literal>pkgs.graalvmCEPackages.mkGraal</literal> function to
+          create your own customized version of GraalVM with support for
+          what you need.
+        </para>
+      </listitem>
     </itemizedlist>
   </section>
   <section xml:id="sec-release-22.05-notable-changes">
@@ -1390,6 +1738,14 @@
       </listitem>
       <listitem>
         <para>
+          The auto-upgrade service now accepts persistent (default:
+          true) parameter. By default auto-upgrade will now run
+          immediately if it would have been triggered at least once
+          during the time when the timer was inactive.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           If you are using Wayland you can choose to use the Ozone
           Wayland support in Chrome and several Electron apps by setting
           the environment variable <literal>NIXOS_OZONE_WL=1</literal>
@@ -1456,6 +1812,15 @@
       </listitem>
       <listitem>
         <para>
+          The <literal>asterisk</literal> and
+          <literal>asterisk-stable</literal> packages were switched from
+          <literal>asterisk_18</literal> to the newly-packaged
+          <literal>asterisk_19</literal>. Asterisk 13 and 17 have been
+          removed as they have reached their end of life.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           The <literal>services.unifi.openPorts</literal> option default
           value of <literal>true</literal> is now deprecated and will be
           changed to <literal>false</literal> in 22.11. Configurations
@@ -1512,9 +1877,11 @@
         <para>
           <link linkend="opt-programs.ssh.knownHosts">programs.ssh.knownHosts</link>
           has gained an <literal>extraHostNames</literal> option to
-          replace <literal>hostNames</literal>.
-          <literal>hostNames</literal> is deprecated, but still
-          available for now.
+          augment <literal>hostNames</literal>. It is now possible to
+          use the attribute name of a <literal>knownHosts</literal>
+          entry as the primary host name and specify secondary host
+          names using <literal>extraHostNames</literal> without having
+          to duplicate the primary host name.
         </para>
       </listitem>
       <listitem>
@@ -1527,6 +1894,36 @@
       </listitem>
       <listitem>
         <para>
+          The option
+          <link linkend="opt-services.xserver.desktopManager.runXdgAutostartIfNone">services.xserver.desktopManager.runXdgAutostartIfNone</link>
+          was added in order to automatically run XDG autostart files
+          for sessions without a desktop manager. This replaces helpers
+          like the <literal>dex</literal> package.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          When setting
+          <link linkend="opt-i18n.inputMethod.enabled">i18n.inputMethod.enabled</link>
+          to <literal>fcitx5</literal>, it no longer creates
+          corresponding systemd user services. It now relies on XDG
+          autostart files to start and work properly in your desktop
+          sessions. If you are using only a window manager without a
+          desktop manager, you need to enable
+          <literal>services.xserver.desktopManager.runXdgAutostartIfNone</literal>
+          or using the <literal>dex</literal> package to make
+          <literal>fcitx5</literal> work.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          A new module was added for the Envoy reverse proxy, providing
+          the options <literal>services.envoy.enable</literal> and
+          <literal>services.envoy.settings</literal>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           The option <literal>services.duplicati.dataDir</literal> has
           been added to allow changing the location of duplicati’s
           files.
@@ -1549,12 +1946,53 @@
       </listitem>
       <listitem>
         <para>
-          ORY Kratos was updated to version 0.8.3-alpha.1.pre.0, which
+          ORY Kratos was updated to version 0.9.0-alpha.3, which
           introduces some breaking changes:
         </para>
         <itemizedlist spacing="compact">
           <listitem>
             <para>
+              All endpoints at the Admin API are now exposed at
+              <literal>/admin/</literal>. For example, endpoint
+              <literal>https://kratos:4434/identities</literal> is now
+              exposed at
+              <literal>https://kratos:4434/admin/identities</literal>
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              Configuration key
+              <literal>selfservice.whitelisted_return_urls</literal> has
+              been renamed to <literal>allowed_return_urls</literal>
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              The <literal>password_identifier</literal> form field of
+              the password login strategy has been renamed to
+              <literal>identifier</literal> to make compatibility with
+              passwordless flows possible.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              Instead of having a global
+              <literal>default_schema_url</literal> which developers
+              used to update their schema, you now need to define the
+              <literal>default_schema_id</literal> which must reference
+              schema ID in your config.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              Calling <literal>/self-service/recovery</literal> without
+              flow ID or with an invalid flow ID while authenticated
+              will now respond with an error instead of redirecting to
+              the default page.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
               If you are relying on the SQLite images, update your
               Docker Pull commands as follows:
             </para>
@@ -1589,6 +2027,18 @@
                   Notes for v0.8.2-alpha-1</link>
                 </para>
               </listitem>
+              <listitem>
+                <para>
+                  <link xlink:href="https://github.com/ory/kratos/releases/tag/v0.9.0-alpha.1">Release
+                  Notes for v0.9.0-alpha-1</link>
+                </para>
+              </listitem>
+              <listitem>
+                <para>
+                  <link xlink:href="https://github.com/ory/kratos/releases/tag/v0.9.0-alpha.3">Release
+                  Notes for v0.9.0-alpha-3</link>
+                </para>
+              </listitem>
             </itemizedlist>
           </listitem>
         </itemizedlist>
@@ -1604,6 +2054,13 @@
       </listitem>
       <listitem>
         <para>
+          A module for declarative configuration of openconnect VPN
+          profiles was added under
+          <literal>networking.openconnect</literal>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           The <literal>element-desktop</literal> package now has an
           <literal>useKeytar</literal> option (defaults to
           <literal>true</literal>), which allows disabling
@@ -1702,6 +2159,21 @@
       </listitem>
       <listitem>
         <para>
+          <literal>security.pam.ussh</literal> has been added, which
+          allows authorizing PAM sessions based on SSH
+          <emphasis>certificates</emphasis> held within an SSH agent,
+          using
+          <link xlink:href="https://github.com/uber/pam-ussh">pam-ussh</link>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          The <literal>vscode-extensions.ionide.ionide-fsharp</literal>
+          package has been updated to 6.0.0 and now requires .NET 6.0.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           The <literal>zrepl</literal> package has been updated from
           0.4.0 to 0.5:
         </para>
@@ -1727,6 +2199,24 @@
       </listitem>
       <listitem>
         <para>
+          The <literal>polybar</literal> package has been updated from
+          3.5.7 to 3.6.2. See
+          <link xlink:href="https://github.com/polybar/polybar/releases/tag/3.6.0">the
+          changelog</link> for more details.
+        </para>
+        <itemizedlist spacing="compact">
+          <listitem>
+            <para>
+              Breaking changes include changes to escaping rules in
+              configuration values, changes in behavior when
+              encountering invalid tag names, and changes to
+              inter-process-messaging (IPC).
+            </para>
+          </listitem>
+        </itemizedlist>
+      </listitem>
+      <listitem>
+        <para>
           Renamed option
           <literal>services.openssh.challengeResponseAuthentication</literal>
           to
@@ -1782,9 +2272,23 @@
       </listitem>
       <listitem>
         <para>
+          xfsprogs was update to version 5.15, which enables inobtcount
+          and bigtime by default on filesystem creation. Support for
+          these features was added in kernel 5.10 and deemed stable in
+          kernel 5.15. If you want to be able to mount XFS filesystems
+          created with this release of xfsprogs on kernel releases older
+          than 5.10, you need to format them with
+          <literal>mkfs.xfs -m bigtime=0 -m inobtcount=0</literal>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           <literal>services.xserver.desktopManager.xfce</literal> now
           includes Xfce’s screen locker,
-          <literal>xfce4-screensaver</literal>.
+          <literal>xfce4-screensaver</literal> that is enabled by
+          default. You can disable it by setting
+          <literal>false</literal> to
+          <link linkend="opt-services.xserver.desktopManager.xfce.enableScreensaver">services.xserver.desktopManager.xfce.enableScreensaver</link>.
         </para>
       </listitem>
       <listitem>
@@ -1804,6 +2308,24 @@
       </listitem>
       <listitem>
         <para>
+          The <literal>nss</literal> package was split into
+          <literal>nss_esr</literal> and <literal>nss_latest</literal>,
+          with <literal>nss</literal> being an alias for
+          <literal>nss_esr</literal>. This was done to ease maintenance
+          of <literal>nss</literal> and dependent high-profile packages
+          like <literal>firefox</literal>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          The Nextcloud module now supports to create a Mysql database
+          automatically with
+          <literal>services.nextcloud.database.createLocally</literal>
+          enabled.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           The <literal>spark3</literal> package has been updated from
           3.1.2 to 3.2.1
           (<link xlink:href="https://github.com/NixOS/nixpkgs/pull/160075">#160075</link>):
@@ -1833,6 +2355,15 @@
           generating host-global NNCP configuration.
         </para>
       </listitem>
+      <listitem>
+        <para>
+          The option <literal>services.snapserver.openFirewall</literal>
+          will no longer default to <literal>true</literal> starting
+          with NixOS 22.11. Enable it explicitly if you need to control
+          Snapserver remotely or connect streamig clients from other
+          hosts.
+        </para>
+      </listitem>
     </itemizedlist>
   </section>
 </section>
diff --git a/nixos/doc/manual/development/building-nixos.chapter.md b/nixos/doc/manual/installation/building-nixos.chapter.md
index 3310dee98f96b..27d7e1d385539 100644
--- a/nixos/doc/manual/development/building-nixos.chapter.md
+++ b/nixos/doc/manual/installation/building-nixos.chapter.md
@@ -30,6 +30,37 @@ To check the content of an ISO image, mount it like so:
 # mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso
 ```
 
+## Additional drivers or firmware {#sec-building-image-drivers}
+
+If you need additional (non-distributable) drivers or firmware in the
+installer, you might want to extend these configurations.
+
+For example, to build the GNOME graphical installer ISO, but with support for
+certain WiFi adapters present in some MacBooks, you can create the following
+file at `modules/installer/cd-dvd/installation-cd-graphical-gnome-macbook.nix`:
+
+```nix
+{ config, ... }:
+
+{
+  imports = [ ./installation-cd-graphical-gnome.nix ];
+
+  boot.initrd.kernelModules = [ "wl" ];
+
+  boot.kernelModules = [ "kvm-intel" "wl" ];
+  boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
+}
+```
+
+Then build it like in the example above:
+
+```ShellSession
+$ git clone https://github.com/NixOS/nixpkgs.git
+$ cd nixpkgs/nixos
+$ export NIXPKGS_ALLOW_UNFREE=1
+$ nix-build -A config.system.build.isoImage -I nixos-config=modules/installer/cd-dvd/installation-cd-graphical-gnome-macbook.nix default.nix
+```
+
 ## Technical Notes {#sec-building-image-tech-notes}
 
 The config value enforcement is implemented via `mkImageMediaOverride = mkOverride 60;`
diff --git a/nixos/doc/manual/installation/installation.xml b/nixos/doc/manual/installation/installation.xml
index 1d443bbd0ee16..ba07d71d0ca35 100644
--- a/nixos/doc/manual/installation/installation.xml
+++ b/nixos/doc/manual/installation/installation.xml
@@ -14,4 +14,5 @@
  <xi:include href="../from_md/installation/installing.chapter.xml" />
  <xi:include href="../from_md/installation/changing-config.chapter.xml" />
  <xi:include href="../from_md/installation/upgrading.chapter.xml" />
+ <xi:include href="../from_md/installation/building-nixos.chapter.xml" />
 </part>
diff --git a/nixos/doc/manual/man-nixos-rebuild.xml b/nixos/doc/manual/man-nixos-rebuild.xml
index b2ca9f457a2b8..ea96f49fa9772 100644
--- a/nixos/doc/manual/man-nixos-rebuild.xml
+++ b/nixos/doc/manual/man-nixos-rebuild.xml
@@ -548,6 +548,14 @@
       (<replaceable>user@host</replaceable>). You can also set ssh options by
       defining the <envar>NIX_SSHOPTS</envar> environment variable.
      </para>
+
+     <para>
+      Note that <command>nixos-rebuild</command> honors the
+      <literal>nixpkgs.crossSystem</literal> setting of the given configuration
+      but disregards the true architecture of the target host. Hence the
+      <literal>nixpkgs.crossSystem</literal> setting has to match the target
+      platform or else activation will fail.
+     </para>
     </listitem>
    </varlistentry>
 
diff --git a/nixos/doc/manual/md-to-db.sh b/nixos/doc/manual/md-to-db.sh
index e0274f5619c70..2091f9b31cd2f 100755
--- a/nixos/doc/manual/md-to-db.sh
+++ b/nixos/doc/manual/md-to-db.sh
@@ -1,5 +1,5 @@
 #! /usr/bin/env nix-shell
-#! nix-shell -I nixpkgs=channel:nixpkgs-unstable -i bash -p pandoc
+#! nix-shell -I nixpkgs=https://github.com/NixOS/nixpkgs/tarball/21.11 -i bash -p pandoc
 
 # This script is temporarily needed while we transition the manual to
 # CommonMark. It converts the .md files in the regular manual folder
diff --git a/nixos/doc/manual/release-notes/rl-1803.section.md b/nixos/doc/manual/release-notes/rl-1803.section.md
index e4e467981047b..c5146015d4499 100644
--- a/nixos/doc/manual/release-notes/rl-1803.section.md
+++ b/nixos/doc/manual/release-notes/rl-1803.section.md
@@ -282,3 +282,5 @@ When upgrading from a previous release, please be aware of the following incompa
 - The NixOS test driver supports user services declared by `systemd.user.services`. The methods `waitForUnit`, `getUnitInfo`, `startJob` and `stopJob` provide an optional `$user` argument for that purpose.
 
 - Enabling bash completion on NixOS, `programs.bash.enableCompletion`, will now also enable completion for the Nix command line tools by installing the [nix-bash-completions](https://github.com/hedning/nix-bash-completions) package.
+
+- The vim/kakoune plugin updater now reads from a CSV file: check `pkgs/applications/editors/vim/plugins/vim-plugin-names` out to see the new format
diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md
index 82f1b97d5cbdd..16c59ce3dddb1 100644
--- a/nixos/doc/manual/release-notes/rl-2205.section.md
+++ b/nixos/doc/manual/release-notes/rl-2205.section.md
@@ -25,6 +25,10 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - systemd services can now set [systemd.services.\<name\>.reloadTriggers](#opt-systemd.services) instead of `reloadIfChanged` for a more granular distinction between reloads and restarts.
 
+- Systemd has been upgraded to the version 250.
+
+- The new [`postgresqlTestHook`](https://nixos.org/manual/nixpkgs/stable/#sec-postgresqlTestHook) runs a PostgreSQL server for the duration of package checks.
+
 - [`kops`](https://kops.sigs.k8s.io) defaults to 1.22.4, which will enable [Instance Metadata Service Version 2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html) and require tokens on new clusters with Kubernetes 1.22. This will increase security by default, but may break some types of workloads. See the [release notes](https://kops.sigs.k8s.io/releases/1.22-notes/) for details.
 
 - Module authors can use `mkRenamedOptionModuleWith` to automate the deprecation cycle without annoying out-of-tree module authors and their users.
@@ -39,6 +43,8 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - [matrix-conduit](https://conduit.rs/), a simple, fast and reliable chat server powered by matrix. Available as [services.matrix-conduit](option.html#opt-services.matrix-conduit.enable).
 
+- [nethoscope](https://github.com/vvilhonen/nethoscope), listen to your network traffic. Available as [programs.nethoscope](#opt-programs.nethoscope.enable).
+
 - [filebeat](https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html), a lightweight shipper for forwarding and centralizing log data. Available as [services.filebeat](#opt-services.filebeat.enable).
 
 - [apfs](https://github.com/linux-apfs/linux-apfs-rw), a kernel module for mounting the Apple File System (APFS).
@@ -63,6 +69,8 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - [K40-Whisperer](https://www.scorchworks.com/K40whisperer/k40whisperer.html), a program to control cheap Chinese laser cutters. Available as [programs.k40-whisperer.enable](options.html#opt-programs.k4-whisperer.enable). Users must add themselves to the `k40` group to be able to access the device.
 
+- [mozillavpn](https://github.com/mozilla-mobile/mozilla-vpn-client), the client for the [Mozilla VPN](https://vpn.mozilla.org/) service. Available as [services.mozillavpn](options.html#opt-services.mozillavpn).
+
 - [mtr-exporter](https://github.com/mgumz/mtr-exporter), a Prometheus exporter for mtr metrics. Available as [services.mtr-exporter](options.html#opt-services.mtr-exporter.enable).
 
 - [prometheus-pve-exporter](https://github.com/prometheus-pve/prometheus-pve-exporter), a tool that exposes information from the Proxmox VE API for use by Prometheus. Available as [services.prometheus.exporters.pve](options.html#opt-services.prometheus.exporters.pve).
@@ -99,10 +107,14 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - [headscale](https://github.com/juanfont/headscale), an Open Source implementation of the [Tailscale](https://tailscale.io) Control Server. Available as [services.headscale](options.html#opt-services.headscale.enable)
 
+- [create_ap](https://github.com/lakinduakash/linux-wifi-hotspot), a module for creating wifi hotspots using the program linux-wifi-hotspot. Available as [services.create_ap](options.html#opt-services.create_ap.enable).
+
 - [blocky](https://0xerr0r.github.io/blocky/), fast and lightweight DNS proxy as ad-blocker for local network with many features.
 
 - [pacemaker](https://clusterlabs.org/pacemaker/) cluster resource manager
 
+- [nifi](https://nifi.apache.org), an easy to use, powerful, and reliable system to process and distribute data. Available as [services.nifi](options.html#opt-services.nifi.enable).
+
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
 
 ## Backward Incompatibilities {#sec-release-22.05-incompatibilities}
@@ -139,10 +151,58 @@ In addition to numerous new and upgraded packages, this release has the followin
   org-contrib, refer to the ones in `pkgs.emacsPackages.elpaPackages` and
   `pkgs.emacsPackages.nongnuPackages` where the new versions will release.
 
+- `security.klogd` was removed.  Logging of kernel messages is handled
+  by systemd since Linux 3.5.
+
+- `pkgs.ssmtp` has been dropped due to the program being unmaintained.
+  `pkgs.msmtp` can be used instead as a substitute `sendmail` implementation.
+  The corresponding options `services.ssmtp.*` have been removed as well.
+  `programs.msmtp.*` can be used instead for an equivalent setup. For example:
+
+  ```nix
+  {
+    # Original ssmtp configuration:
+    services.ssmtp = {
+      enable = true;
+      useTLS = true;
+      useSTARTTLS = true;
+      hostName = "smtp.example:587";
+      authUser = "someone";
+      authPassFile = "/secrets/password.txt";
+    };
+
+    # Equivalent msmtp configuration:
+    programs.msmtp = {
+      enable = true;
+      accounts.default = {
+        tls = true;
+        tls_starttls = true;
+        auth = true;
+        host = "smtp.example";
+        port = 587;
+        user = "someone";
+        passwordeval = "cat /secrets/password.txt";
+      };
+    };
+  }
+  ```
+
 - `services.kubernetes.addons.dashboard` was removed due to it being an outdated version.
 
 - `services.kubernetes.scheduler.{port,address}` now set `--secure-port` and `--bind-address` instead of `--port` and `--address`, since the former have been deprecated and are no longer functional in kubernetes>=1.23. Ensure that you are not relying on the insecure behaviour before upgrading.
 
+- In the PowerDNS Recursor module (`services.pdns-recursor`), default values of several IP address-related NixOS options have been updated to match the default upstream behavior.
+  In particular, Recursor by default will:
+    - listen on (and allows connections from) both IPv4 and IPv6 addresses
+      (`services.pdns-recursor.dns.address`, `services.pdns-recursor.dns.allowFrom`);
+    - allow only local connections to the REST API server (`services.pdns-recursor.api.allowFrom`).
+
+- In the ncdns module, the default value of `services.ncdns.address` has been changed to the IPv6 loopback address (`::1`).
+
+- `openssh` has been update to 8.9p1, changing the FIDO security key middleware interface.
+
+- `git` no longer hardcodes the path to openssh' ssh binary to reduce the amount of rebuilds. If you are using git with ssh remotes and do not have a ssh binary in your enviroment consider adding `openssh` to it or switching to `gitFull`.
+
 - `services.k3s.enable` no longer implies `systemd.enableUnifiedCgroupHierarchy = false`, and will default to the 'systemd' cgroup driver when using `services.k3s.docker = true`.
   This change may require a reboot to take effect, and k3s may not be able to run if the boot cgroup hierarchy does not match its configuration.
   The previous behavior may be retained by explicitly setting `systemd.enableUnifiedCgroupHierarchy = false` in your configuration.
@@ -160,6 +220,8 @@ In addition to numerous new and upgraded packages, this release has the followin
   }
   ```
 
+- `services.prometheus.alertManagerTimeout` has been removed as it has been deprecated upstream and has no effect.
+
 - The DHCP server (`services.dhcpd4`, `services.dhcpd6`) has been hardened.
   The service is now using the systemd's `DynamicUser` mechanism to run as an unprivileged dynamically-allocated user with limited capabilities.
   The dhcpd state files are now always stored in `/var/lib/dhcpd{4,6}` and the `services.dhcpd4.stateDir` and `service.dhcpd6.stateDir` options have been removed.
@@ -169,6 +231,10 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - `services.ipfs.extraFlags` is now escaped with `utils.escapeSystemdExecArgs`. If you rely on systemd interpolating `extraFlags` in the service `ExecStart`, this will no longer work.
 
+- `hbase` version 0.98.24 has been removed. The package now defaults to version 2.4.11. Versions 1.7.1 and 3.0.0-alpha-2 are also available.
+
+- `services.paperless-ng` was renamed to `services.paperless`. Accordingly, the `paperless-ng-manage` script (located in `dataDir`) was renamed to `paperless-manage`. `services.paperless` now uses `paperless-ngx`.
+
 - The `matrix-synapse` service (`services.matrix-synapse`) has been converted to use the `settings` option defined in RFC42.
   This means that options that are part of your `homeserver.yaml` configuration, and that were specified at the top-level of the
   module (`services.matrix-synapse`) now need to be moved into `services.matrix-synapse.settings`. And while not all options you
@@ -263,6 +329,81 @@ In addition to numerous new and upgraded packages, this release has the followin
   `media_store_path` was changed from `${dataDir}/media` to `${dataDir}/media_store` if `system.stateVersion` is at least `22.05`. Files will need to be manually moved to the new
   location if the `stateVersion` is updated.
 
+- The Keycloak package (`pkgs.keycloak`) has been switched from the
+  Wildfly version, which will soon be deprecated, to the Quarkus based
+  version. The Keycloak service (`services.keycloak`) has been updated
+  to accommodate the change and now differs from the previous version
+  in a few ways:
+
+  - `services.keycloak.extraConfig` has been removed in favor of the
+    new [settings-style](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md)
+    [`services.keycloak.settings`](#opt-services.keycloak.settings)
+    option. The available options correspond directly to parameters in
+    `conf/keycloak.conf`. Some of the most important parameters are
+    documented as suboptions, the rest can be found in the [All
+    configuration section of the Keycloak Server Installation and
+    Configuration
+    Guide](https://www.keycloak.org/server/all-config). While the new
+    configuration is much simpler and cleaner than the old JBoss CLI
+    one, this unfortunately mean that there's no straightforward way
+    to convert an old configuration to the new format and some
+    settings may not even be available anymore.
+
+  - `services.keycloak.frontendUrl` was removed and the frontend URL
+    is now configured through the `hostname` family of settings in
+    [`services.keycloak.settings`](#opt-services.keycloak.settings)
+    instead. See the [Hostname section of the Keycloak Server
+    Installation and Configuration
+    Guide](https://www.keycloak.org/server/hostname) for more
+    details. Additionally, `/auth` was removed from the default
+    context path and needs to be added back in
+    [`services.keycloak.settings.http-relative-path`](#opt-services.keycloak.settings.http-relative-path)
+    if you want to keep compatibility with your current clients.
+
+  - `services.keycloak.bindAddress`,
+    `services.keycloak.forceBackendUrlToFrontendUrl`,
+    `services.keycloak.httpPort` and `services.keycloak.httpsPort`
+    have been removed in favor of their equivalent options in
+    [`services.keycloak.settings`](#opt-services.keycloak.settings). `httpPort`
+    and `httpsPort` have additionally had their types changed from
+    `str` to `port`.
+
+    The new names are as follows:
+    - `bindAddress`: [`services.keycloak.settings.http-host`](#opt-services.keycloak.settings.http-host)
+    - `forceBackendUrlToFrontendUrl`: [`services.keycloak.settings.hostname-strict-backchannel`](#opt-services.keycloak.settings.hostname-strict-backchannel)
+    - `httpPort`: [`services.keycloak.settings.http-port`](#opt-services.keycloak.settings.http-port)
+    - `httpsPort`: [`services.keycloak.settings.https-port`](#opt-services.keycloak.settings.https-port)
+
+  For example, when using a reverse proxy the migration could look
+  like this:
+
+  Before:
+  ```nix
+    services.keycloak = {
+      enable = true;
+      httpPort = "8080";
+      frontendUrl = "https://keycloak.example.com/auth";
+      database.passwordFile = "/run/keys/db_password";
+      extraConfig = {
+        "subsystem=undertow"."server=default-server"."http-listener=default".proxy-address-forwarding = true;
+      };
+    };
+  ```
+
+  After:
+  ```nix
+    services.keycloak = {
+      enable = true;
+      settings = {
+        http-port = 8080;
+        hostname = "keycloak.example.com";
+        http-relative-path = "/auth";
+        proxy = "edge";
+      };
+      database.passwordFile = "/run/keys/db_password";
+    };
+  ```
+
 - The MoinMoin wiki engine (`services.moinmoin`) has been removed, because Python 2 is being retired from nixpkgs.
 
 - Services in the `hadoop` module previously set `openFirewall` to true by default.
@@ -304,6 +445,10 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - `services.miniflux.adminCredentialFiles` is now required, instead of defaulting to `admin` and `password`.
 
+- The `taskserver` module no longer implicitly opens ports in the firewall
+  configuration. This is now controlled through the option
+  `services.taskserver.openFirewall`.
+
 - The `autorestic` package has been upgraded from 1.3.0 to 1.5.0 which introduces breaking changes in config file, check [their migration guide](https://autorestic.vercel.app/migration/1.4_1.5) for more details.
 
 - For `pkgs.python3.pkgs.ipython`, its direct dependency `pkgs.python3.pkgs.matplotlib-inline`
@@ -355,8 +500,14 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - `systemd-nspawn@.service` settings have been reverted to the default systemd behaviour. User namespaces are now activated by default. If you want to keep running nspawn containers without user namespaces you need to set `systemd.nspawn.<name>.execConfig.PrivateUsers = false`
 
+- `systemd-shutdown` is now properly linked on shutdown to unmount all filesystems and device mapper devices cleanly. This can be disabled using `boot.systemd.shutdown.enable`.
+
 - The Tor SOCKS proxy is now actually disabled if `services.tor.client.enable` is set to `false` (the default). If you are using this functionality but didn't change the setting or set it to `false`, you now need to set it to `true`.
 
+- `services.github-runner` has been hardened.  Notably address families and
+  system calls have been restricted, which may adversely affect some kinds of
+  testing, e.g. using `AF_BLUETOOTH` to test bluetooth devices.
+
 - The terraform 0.12 compatibility has been removed and the `terraform.withPlugins` and `terraform-providers.mkProvider` implementations simplified. Providers now need to be stored under
 `$out/libexec/terraform-providers/<registry>/<owner>/<name>/<version>/<os>_<arch>/terraform-provider-<name>_v<version>` (which mkProvider does).
 
@@ -447,8 +598,15 @@ In addition to numerous new and upgraded packages, this release has the followin
 
   See the `vscode` package for a more detailed example.
 
+- Existing `resholve*` functions have been renamed and nested under `pkgs.resholve`. Update uses to:
+  - `resholvePackage` -> `resholve.mkDerivation`
+  - `resholveScript` -> `resholve.writeScript`
+  - `resholveScriptBin` -> `resholve.writeScriptBin`
+
 - `pkgs.cosmopolitan` no longer provides the `cosmoc` command. It has been moved to `pkgs.cosmoc`.
 
+- `pkgs.graalvmXX-ce` packages no longer provide support for Python/Ruby/WASM, instead focusing only in Java and Native Image Support. If you need to add support back, please see the `pkgs.graalvmCEPackages.mkGraal` function to create your own customized version of GraalVM with support for what you need.
+
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
 
 ## Other Notable Changes {#sec-release-22.05-notable-changes}
@@ -490,6 +648,10 @@ In addition to numerous new and upgraded packages, this release has the followin
   - Support for older versions of hadoop have been added to the module
   - Overriding and extending site XML files has been made easier
 
+- The auto-upgrade service now accepts persistent (default: true) parameter.
+  By default auto-upgrade will now run immediately if it would have been triggered at least
+  once during the time when the timer was inactive.
+
 - If you are using Wayland you can choose to use the Ozone Wayland support
   in Chrome and several Electron apps by setting the environment variable
   `NIXOS_OZONE_WL=1` (for example via
@@ -513,6 +675,8 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - `programs.zsh.autosuggestions.strategy` now takes a list of strings instead of a string.
 
+- The `asterisk` and `asterisk-stable` packages were switched from `asterisk_18` to the newly-packaged `asterisk_19`. Asterisk 13 and 17 have been removed as they have reached their end of life.
+
 - The `services.unifi.openPorts` option default value of `true` is now deprecated and will be changed to `false` in 22.11.
   Configurations using this default will print a warning when rebuilt.
 
@@ -537,28 +701,53 @@ In addition to numerous new and upgraded packages, this release has the followin
   e.g. Wayland.
 
 - [programs.ssh.knownHosts](#opt-programs.ssh.knownHosts) has gained an `extraHostNames`
-  option to replace `hostNames`. `hostNames` is deprecated, but still available for now.
+  option to augment `hostNames`. It is now possible to use the attribute name of a `knownHosts`
+  entry as the primary host name and specify secondary host names using `extraHostNames` without
+  having to duplicate the primary host name.
 
 - The `services.stubby` module was converted to a [settings-style](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) configuration.
 
+- The option
+  [services.xserver.desktopManager.runXdgAutostartIfNone](#opt-services.xserver.desktopManager.runXdgAutostartIfNone)
+  was added in order to automatically run XDG autostart files for sessions without a desktop manager.
+  This replaces helpers like the `dex` package.
+
+- When setting [i18n.inputMethod.enabled](#opt-i18n.inputMethod.enabled) to `fcitx5`,
+  it no longer creates corresponding systemd user services.
+  It now relies on XDG autostart files to start and work properly in your desktop sessions.
+  If you are using only a window manager without a desktop manager, you need to enable
+  `services.xserver.desktopManager.runXdgAutostartIfNone` or using the `dex` package to make `fcitx5` work.
+
+- A new module was added for the Envoy reverse proxy, providing the options `services.envoy.enable` and `services.envoy.settings`.
+
 - The option `services.duplicati.dataDir` has been added to allow changing the location of duplicati's files.
 
 - The options `boot.extraModprobeConfig` and `boot.blacklistedKernelModules` now also take effect in the initrd by copying the file `/etc/modprobe.d/nixos.conf` into the initrd.
 
 - `nixos-generate-config` now puts the dhcp configuration in `hardware-configuration.nix` instead of `configuration.nix`.
 
-- ORY Kratos was updated to version 0.8.3-alpha.1.pre.0, which introduces some breaking changes:
+- ORY Kratos was updated to version 0.9.0-alpha.3, which introduces some breaking changes:
+  - All endpoints at the Admin API are now exposed at `/admin/`. For example, endpoint `https://kratos:4434/identities` is now exposed at `https://kratos:4434/admin/identities`
+  - Configuration key `selfservice.whitelisted_return_urls` has been renamed to `allowed_return_urls`
+  - The `password_identifier` form field of the password login strategy has been renamed to `identifier` to make compatibility with passwordless flows possible.
+  - Instead of having a global `default_schema_url` which developers used to update their schema, you now need to define the `default_schema_id` which must reference schema ID in your config.
+  - Calling `/self-service/recovery` without flow ID or with an invalid flow ID while authenticated will now respond with an error instead of redirecting to the default page.
   - If you are relying on the SQLite images, update your Docker Pull commands as follows:
     - `docker pull oryd/kratos:{version}`
   - Additionally, all passwords now have to be at least 8 characters long.
   - For more details, see:
     - [Release Notes for v0.8.1-alpha-1](https://github.com/ory/kratos/releases/tag/v0.8.1-alpha.1)
     - [Release Notes for v0.8.2-alpha-1](https://github.com/ory/kratos/releases/tag/v0.8.2-alpha.1)
+    - [Release Notes for v0.9.0-alpha-1](https://github.com/ory/kratos/releases/tag/v0.9.0-alpha.1)
+    - [Release Notes for v0.9.0-alpha-3](https://github.com/ory/kratos/releases/tag/v0.9.0-alpha.3)
+
 
 - `fetchFromSourcehut` now allows fetching repositories recursively
   using `fetchgit` or `fetchhg` if the argument `fetchSubmodules`
   is set to `true`.
 
+- A module for declarative configuration of openconnect VPN profiles was added under `networking.openconnect`.
+
 - The `element-desktop` package now has an `useKeytar` option (defaults to `true`),
   which allows disabling `keytar` and in turn `libsecret` usage
   (which binds to native credential managers / keychain libraries).
@@ -589,11 +778,18 @@ In addition to numerous new and upgraded packages, this release has the followin
   and [services.logrotate.extraConfig](#opt-services.logrotate.extraConfig) will work, but issue deprecation
   warnings and [services.logrotate.settings](#opt-services.logrotate.settings) should now be used instead.
 
+- `security.pam.ussh` has been added, which allows authorizing PAM sessions based on SSH _certificates_ held within an SSH agent, using [pam-ussh](https://github.com/uber/pam-ussh).
+
+- The `vscode-extensions.ionide.ionide-fsharp` package has been updated to 6.0.0 and now requires .NET 6.0.
+
 - The `zrepl` package has been updated from 0.4.0 to 0.5:
 
   - The RPC protocol version was bumped; all zrepl daemons in a setup must be updated and restarted before replication can resume.
   - A bug involving encrypt-on-receive has been fixed. Read the [zrepl documentation](https://zrepl.github.io/configuration/sendrecvoptions.html#job-recv-options-placeholder) and check the output of `zfs get -r encryption,zrepl:placeholder PATH_TO_ROOTFS` on the receiver.
 
+- The `polybar` package has been updated from 3.5.7 to 3.6.2. See [the changelog](https://github.com/polybar/polybar/releases/tag/3.6.0) for more details.
+  - Breaking changes include changes to escaping rules in configuration values, changes in behavior when encountering invalid tag names, and changes to inter-process-messaging (IPC).
+
 - Renamed option `services.openssh.challengeResponseAuthentication` to `services.openssh.kbdInteractiveAuthentication`.
   Reason is that the old name has been deprecated upstream.
   Using the old option name will still work, but produce a warning.
@@ -615,12 +811,20 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - The polkit service, available at `security.polkit.enable`, is now disabled by default. It will automatically be enabled through services and desktop environments as needed.
 
-- `services.xserver.desktopManager.xfce` now includes Xfce's screen locker, `xfce4-screensaver`.
+- xfsprogs was update to version 5.15, which enables inobtcount and bigtime by default on filesystem creation. Support for these features was added in kernel 5.10 and deemed stable in kernel 5.15.
+  If you want to be able to mount XFS filesystems created with this release of xfsprogs on kernel releases older than 5.10, you need to format them with `mkfs.xfs -m bigtime=0 -m inobtcount=0`.
+
+- `services.xserver.desktopManager.xfce` now includes Xfce's screen locker, `xfce4-screensaver` that is enabled by default. You can disable it by setting `false` to [services.xserver.desktopManager.xfce.enableScreensaver](#opt-services.xserver.desktopManager.xfce.enableScreensaver).
 
 - The `hadoop` package has added support for `aarch64-linux` and `aarch64-darwin` as of 3.3.1 ([#158613](https://github.com/NixOS/nixpkgs/pull/158613)).
 
 - The `R` package now builds again on `aarch64-darwin` ([#158992](https://github.com/NixOS/nixpkgs/pull/158992)).
 
+- The `nss` package was split into `nss_esr` and `nss_latest`, with `nss` being an alias for `nss_esr`. This was done to ease maintenance of `nss` and dependent high-profile packages like `firefox`.
+
+- The Nextcloud module now supports to create a Mysql database automatically
+  with `services.nextcloud.database.createLocally` enabled.
+
 - The `spark3` package has been updated from 3.1.2 to 3.2.1 ([#160075](https://github.com/NixOS/nixpkgs/pull/160075)):
 
   - Testing has been enabled for `aarch64-linux` in addition to `x86_64-linux`.
@@ -628,4 +832,8 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - The `programs.nncp` options were added for generating host-global NNCP configuration.
 
+- The option `services.snapserver.openFirewall` will no longer default to
+  `true` starting with NixOS 22.11. Enable it explicitly if you need to control
+  Snapserver remotely or connect streamig clients from other hosts.
+
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
diff --git a/nixos/lib/make-disk-image.nix b/nixos/lib/make-disk-image.nix
index 15302ae824144..e784ec9e67787 100644
--- a/nixos/lib/make-disk-image.nix
+++ b/nixos/lib/make-disk-image.nix
@@ -170,6 +170,7 @@ let format' = format; in let
       config.system.build.nixos-install
       config.system.build.nixos-enter
       nix
+      systemdMinimal
     ] ++ stdenv.initialPath);
 
   # I'm preserving the line below because I'm going to search for it across nixpkgs to consolidate
diff --git a/nixos/lib/make-zfs-image.nix b/nixos/lib/make-multi-disk-zfs-image.nix
index a84732aa11712..a84732aa11712 100644
--- a/nixos/lib/make-zfs-image.nix
+++ b/nixos/lib/make-multi-disk-zfs-image.nix
diff --git a/nixos/lib/make-options-doc/mergeJSON.py b/nixos/lib/make-options-doc/mergeJSON.py
index 8e2ea322dc896..44a188a08c999 100644
--- a/nixos/lib/make-options-doc/mergeJSON.py
+++ b/nixos/lib/make-options-doc/mergeJSON.py
@@ -48,7 +48,9 @@ overrides = pivot(json.load(open(sys.argv[2 + optOffset], 'r')))
 
 # fix up declaration paths in lazy options, since we don't eval them from a full nixpkgs dir
 for (k, v) in options.items():
-    v.value['declarations'] = list(map(lambda s: f'nixos/modules/{s}', v.value['declarations']))
+    # The _module options are not declared in nixos/modules
+    if v.value['loc'][0] != "_module":
+        v.value['declarations'] = list(map(lambda s: f'nixos/modules/{s}', v.value['declarations']))
 
 # merge both descriptions
 for (k, v) in overrides.items():
diff --git a/nixos/lib/make-single-disk-zfs-image.nix b/nixos/lib/make-single-disk-zfs-image.nix
new file mode 100644
index 0000000000000..9310febd91792
--- /dev/null
+++ b/nixos/lib/make-single-disk-zfs-image.nix
@@ -0,0 +1,322 @@
+# Note: This is a private API, internal to NixOS. Its interface is subject
+# to change without notice.
+#
+# The result of this builder is a single disk image, partitioned like this:
+#
+#  * partition #1: a very small, 1MiB partition to leave room for Grub.
+#
+#  * partition #2: boot, a partition formatted with FAT to be used for /boot.
+#      FAT is chosen to support EFI.
+#
+#  * partition #3: nixos, a partition dedicated to a zpool.
+#
+# This single-disk approach does not satisfy ZFS's requirements for autoexpand,
+# however automation can expand it anyway. For example, with
+# `services.zfs.expandOnBoot`.
+{ lib
+, pkgs
+, # The NixOS configuration to be installed onto the disk image.
+  config
+
+, # size of the FAT partition, in megabytes.
+  bootSize ? 1024
+
+, # The size of the root partition, in megabytes.
+  rootSize ? 2048
+
+, # The name of the ZFS pool
+  rootPoolName ? "tank"
+
+, # zpool properties
+  rootPoolProperties ? {
+    autoexpand = "on";
+  }
+, # pool-wide filesystem properties
+  rootPoolFilesystemProperties ? {
+    acltype = "posixacl";
+    atime = "off";
+    compression = "on";
+    mountpoint = "legacy";
+    xattr = "sa";
+  }
+
+, # datasets, with per-attribute options:
+  # mount: (optional) mount point in the VM
+  # properties: (optional) ZFS properties on the dataset, like filesystemProperties
+  # Notes:
+  # 1. datasets will be created from shorter to longer names as a simple topo-sort
+  # 2. you should define a root's dataset's mount for `/`
+  datasets ? { }
+
+, # The files and directories to be placed in the target file system.
+  # This is a list of attribute sets {source, target} where `source'
+  # is the file system object (regular file or directory) to be
+  # grafted in the file system at path `target'.
+  contents ? [ ]
+
+, # The initial NixOS configuration file to be copied to
+  # /etc/nixos/configuration.nix. This configuration will be embedded
+  # inside a configuration which includes the described ZFS fileSystems.
+  configFile ? null
+
+, # Shell code executed after the VM has finished.
+  postVM ? ""
+
+, name ? "nixos-disk-image"
+
+, # Disk image format, one of qcow2, qcow2-compressed, vdi, vpc, raw.
+  format ? "raw"
+
+, # Include a copy of Nixpkgs in the disk image
+  includeChannel ? true
+}:
+let
+  formatOpt = if format == "qcow2-compressed" then "qcow2" else format;
+
+  compress = lib.optionalString (format == "qcow2-compressed") "-c";
+
+  filenameSuffix = "." + {
+    qcow2 = "qcow2";
+    vdi = "vdi";
+    vpc = "vhd";
+    raw = "img";
+  }.${formatOpt} or formatOpt;
+  rootFilename = "nixos.root${filenameSuffix}";
+
+  # FIXME: merge with channel.nix / make-channel.nix.
+  channelSources =
+    let
+      nixpkgs = lib.cleanSource pkgs.path;
+    in
+    pkgs.runCommand "nixos-${config.system.nixos.version}" { } ''
+      mkdir -p $out
+      cp -prd ${nixpkgs.outPath} $out/nixos
+      chmod -R u+w $out/nixos
+      if [ ! -e $out/nixos/nixpkgs ]; then
+        ln -s . $out/nixos/nixpkgs
+      fi
+      rm -rf $out/nixos/.git
+      echo -n ${config.system.nixos.versionSuffix} > $out/nixos/.version-suffix
+    '';
+
+  closureInfo = pkgs.closureInfo {
+    rootPaths = [ config.system.build.toplevel ]
+      ++ (lib.optional includeChannel channelSources);
+  };
+
+  modulesTree = pkgs.aggregateModules
+    (with config.boot.kernelPackages; [ kernel zfs ]);
+
+  tools = lib.makeBinPath (
+    with pkgs; [
+      config.system.build.nixos-enter
+      config.system.build.nixos-install
+      dosfstools
+      e2fsprogs
+      gptfdisk
+      nix
+      parted
+      utillinux
+      zfs
+    ]
+  );
+
+  hasDefinedMount = disk: ((disk.mount or null) != null);
+
+  stringifyProperties = prefix: properties: lib.concatStringsSep " \\\n" (
+    lib.mapAttrsToList
+      (
+        property: value: "${prefix} ${lib.escapeShellArg property}=${lib.escapeShellArg value}"
+      )
+      properties
+  );
+
+  featuresToProperties = features:
+    lib.listToAttrs
+      (builtins.map
+        (feature: {
+          name = "feature@${feature}";
+          value = "enabled";
+        })
+        features);
+
+  createDatasets =
+    let
+      datasetlist = lib.mapAttrsToList lib.nameValuePair datasets;
+      sorted = lib.sort (left: right: (lib.stringLength left.name) < (lib.stringLength right.name)) datasetlist;
+      cmd = { name, value }:
+        let
+          properties = stringifyProperties "-o" (value.properties or { });
+        in
+        "zfs create -p ${properties} ${name}";
+    in
+    lib.concatMapStringsSep "\n" cmd sorted;
+
+  mountDatasets =
+    let
+      datasetlist = lib.mapAttrsToList lib.nameValuePair datasets;
+      mounts = lib.filter ({ value, ... }: hasDefinedMount value) datasetlist;
+      sorted = lib.sort (left: right: (lib.stringLength left.value.mount) < (lib.stringLength right.value.mount)) mounts;
+      cmd = { name, value }:
+        ''
+          mkdir -p /mnt${lib.escapeShellArg value.mount}
+          mount -t zfs ${name} /mnt${lib.escapeShellArg value.mount}
+        '';
+    in
+    lib.concatMapStringsSep "\n" cmd sorted;
+
+  unmountDatasets =
+    let
+      datasetlist = lib.mapAttrsToList lib.nameValuePair datasets;
+      mounts = lib.filter ({ value, ... }: hasDefinedMount value) datasetlist;
+      sorted = lib.sort (left: right: (lib.stringLength left.value.mount) > (lib.stringLength right.value.mount)) mounts;
+      cmd = { name, value }:
+        ''
+          umount /mnt${lib.escapeShellArg value.mount}
+        '';
+    in
+    lib.concatMapStringsSep "\n" cmd sorted;
+
+
+  fileSystemsCfgFile =
+    let
+      mountable = lib.filterAttrs (_: value: hasDefinedMount value) datasets;
+    in
+    pkgs.runCommand "filesystem-config.nix"
+      {
+        buildInputs = with pkgs; [ jq nixpkgs-fmt ];
+        filesystems = builtins.toJSON {
+          fileSystems = lib.mapAttrs'
+            (
+              dataset: attrs:
+                {
+                  name = attrs.mount;
+                  value = {
+                    fsType = "zfs";
+                    device = "${dataset}";
+                  };
+                }
+            )
+            mountable;
+        };
+        passAsFile = [ "filesystems" ];
+      } ''
+      (
+        echo "builtins.fromJSON '''"
+        jq . < "$filesystemsPath"
+        echo "'''"
+      ) > $out
+
+      nixpkgs-fmt $out
+    '';
+
+  mergedConfig =
+    if configFile == null
+    then fileSystemsCfgFile
+    else
+      pkgs.runCommand "configuration.nix"
+        {
+          buildInputs = with pkgs; [ nixpkgs-fmt ];
+        }
+        ''
+          (
+            echo '{ imports = ['
+            printf "(%s)\n" "$(cat ${fileSystemsCfgFile})";
+            printf "(%s)\n" "$(cat ${configFile})";
+            echo ']; }'
+          ) > $out
+
+          nixpkgs-fmt $out
+        '';
+
+  image = (
+    pkgs.vmTools.override {
+      rootModules =
+        [ "zfs" "9p" "9pnet_virtio" "virtio_pci" "virtio_blk" ] ++
+        (pkgs.lib.optional pkgs.stdenv.hostPlatform.isx86 "rtc_cmos");
+      kernel = modulesTree;
+    }
+  ).runInLinuxVM (
+    pkgs.runCommand name
+      {
+        memSize = 1024;
+        QEMU_OPTS = "-drive file=$rootDiskImage,if=virtio,cache=unsafe,werror=report";
+        preVM = ''
+          PATH=$PATH:${pkgs.qemu_kvm}/bin
+          mkdir $out
+
+          rootDiskImage=root.raw
+          qemu-img create -f raw $rootDiskImage ${toString (bootSize + rootSize)}M
+        '';
+
+        postVM = ''
+            ${if formatOpt == "raw" then ''
+            mv $rootDiskImage $out/${rootFilename}
+          '' else ''
+            ${pkgs.qemu}/bin/qemu-img convert -f raw -O ${formatOpt} ${compress} $rootDiskImage $out/${rootFilename}
+          ''}
+            rootDiskImage=$out/${rootFilename}
+            set -x
+            ${postVM}
+        '';
+      } ''
+      export PATH=${tools}:$PATH
+      set -x
+
+      cp -sv /dev/vda /dev/sda
+      cp -sv /dev/vda /dev/xvda
+
+      parted --script /dev/vda -- \
+        mklabel gpt \
+        mkpart no-fs 1MiB 2MiB \
+        set 1 bios_grub on \
+        align-check optimal 1 \
+        mkpart primary fat32 2MiB ${toString bootSize}MiB \
+        align-check optimal 2 \
+        mkpart primary fat32 ${toString bootSize}MiB -1MiB \
+        align-check optimal 3 \
+        print
+
+      sfdisk --dump /dev/vda
+
+
+      zpool create \
+        ${stringifyProperties "  -o" rootPoolProperties} \
+        ${stringifyProperties "  -O" rootPoolFilesystemProperties} \
+        ${rootPoolName} /dev/vda3
+      parted --script /dev/vda -- print
+
+      ${createDatasets}
+      ${mountDatasets}
+
+      mkdir -p /mnt/boot
+      mkfs.vfat -n ESP /dev/vda2
+      mount /dev/vda2 /mnt/boot
+
+      mount
+
+      # Install a configuration.nix
+      mkdir -p /mnt/etc/nixos
+      # `cat` so it is mutable on the fs
+      cat ${mergedConfig} > /mnt/etc/nixos/configuration.nix
+
+      export NIX_STATE_DIR=$TMPDIR/state
+      nix-store --load-db < ${closureInfo}/registration
+
+      nixos-install \
+        --root /mnt \
+        --no-root-passwd \
+        --system ${config.system.build.toplevel} \
+        --substituters "" \
+        ${lib.optionalString includeChannel ''--channel ${channelSources}''}
+
+      df -h
+
+      umount /mnt/boot
+      ${unmountDatasets}
+
+      zpool export ${rootPoolName}
+    ''
+  );
+in
+image
diff --git a/nixos/lib/qemu-common.nix b/nixos/lib/qemu-common.nix
index 20bbe9ff5d99f..250f714be0a7a 100644
--- a/nixos/lib/qemu-common.nix
+++ b/nixos/lib/qemu-common.nix
@@ -23,8 +23,8 @@ rec {
 
   qemuBinary = qemuPkg: {
     x86_64-linux = "${qemuPkg}/bin/qemu-kvm -cpu max";
-    armv7l-linux = "${qemuPkg}/bin/qemu-system-arm -enable-kvm -machine virt -cpu host";
-    aarch64-linux = "${qemuPkg}/bin/qemu-system-aarch64 -enable-kvm -machine virt,gic-version=host -cpu host";
+    armv7l-linux = "${qemuPkg}/bin/qemu-system-arm -machine virt,accel=kvm:tcg -cpu max";
+    aarch64-linux = "${qemuPkg}/bin/qemu-system-aarch64 -machine virt,gic-version=max,accel=kvm:tcg -cpu max";
     powerpc64le-linux = "${qemuPkg}/bin/qemu-system-ppc64 -machine powernv";
     powerpc64-linux = "${qemuPkg}/bin/qemu-system-ppc64 -machine powernv";
     x86_64-darwin = "${qemuPkg}/bin/qemu-kvm -cpu max";
diff --git a/nixos/lib/test-driver/test_driver/driver.py b/nixos/lib/test-driver/test_driver/driver.py
index 0e5f013193fef..e32f6810ca87f 100644
--- a/nixos/lib/test-driver/test_driver/driver.py
+++ b/nixos/lib/test-driver/test_driver/driver.py
@@ -86,7 +86,7 @@ class Driver:
 
     def subtest(self, name: str) -> Iterator[None]:
         """Group logs under a given test name"""
-        with rootlog.nested(name):
+        with rootlog.nested("subtest: " + name):
             try:
                 yield
                 return True
diff --git a/nixos/lib/test-driver/test_driver/logger.py b/nixos/lib/test-driver/test_driver/logger.py
index 5b3091a5129c3..59ed295472315 100644
--- a/nixos/lib/test-driver/test_driver/logger.py
+++ b/nixos/lib/test-driver/test_driver/logger.py
@@ -1,4 +1,4 @@
-from colorama import Style
+from colorama import Style, Fore
 from contextlib import contextmanager
 from typing import Any, Dict, Iterator
 from queue import Queue, Empty
@@ -81,7 +81,11 @@ class Logger:
 
     @contextmanager
     def nested(self, message: str, attributes: Dict[str, str] = {}) -> Iterator[None]:
-        self._eprint(self.maybe_prefix(message, attributes))
+        self._eprint(
+            self.maybe_prefix(
+                Style.BRIGHT + Fore.GREEN + message + Style.RESET_ALL, attributes
+            )
+        )
 
         self.xml.startElement("nest", attrs={})
         self.xml.startElement("head", attributes)
diff --git a/nixos/lib/test-driver/test_driver/machine.py b/nixos/lib/test-driver/test_driver/machine.py
index f3e615fe5bf98..035e3ffe89731 100644
--- a/nixos/lib/test-driver/test_driver/machine.py
+++ b/nixos/lib/test-driver/test_driver/machine.py
@@ -526,10 +526,17 @@ class Machine:
         self.run_callbacks()
         self.connect()
 
+        # Always run command with shell opts
+        command = f"set -euo pipefail; {command}"
+
+        timeout_str = ""
         if timeout is not None:
-            command = "timeout {} sh -c {}".format(timeout, shlex.quote(command))
+            timeout_str = f"timeout {timeout}"
+
+        out_command = (
+            f"{timeout_str} sh -c {shlex.quote(command)} | (base64 --wrap 0; echo)\n"
+        )
 
-        out_command = f"( set -euo pipefail; {command} ) | (base64 --wrap 0; echo)\n"
         assert self.shell
         self.shell.send(out_command.encode())
 
diff --git a/nixos/lib/utils.nix b/nixos/lib/utils.nix
index 80341dd48fcd5..497d98aa4d195 100644
--- a/nixos/lib/utils.nix
+++ b/nixos/lib/utils.nix
@@ -194,6 +194,22 @@ rec {
       (( ! $inherit_errexit_enabled )) && shopt -u inherit_errexit
     '';
 
+  /* Remove packages of packagesToRemove from packages, based on their names.
+     Relies on package names and has quadratic complexity so use with caution!
+
+     Type:
+       removePackagesByName :: [package] -> [package] -> [package]
+
+     Example:
+       removePackagesByName [ nautilus file-roller ] [ file-roller totem ]
+       => [ nautilus ]
+  */
+  removePackagesByName = packages: packagesToRemove:
+    let
+      namesToRemove = map lib.getName packagesToRemove;
+    in
+      lib.filter (x: !(builtins.elem (lib.getName x) namesToRemove)) packages;
+
   systemdUtils = {
     lib = import ./systemd-lib.nix { inherit lib config pkgs; };
     unitOptions = import ./systemd-unit-options.nix { inherit lib systemdUtils; };
diff --git a/nixos/maintainers/scripts/ec2/amazon-image.nix b/nixos/maintainers/scripts/ec2/amazon-image.nix
index 6358ec68f7cf6..2d89db0a7f34a 100644
--- a/nixos/maintainers/scripts/ec2/amazon-image.nix
+++ b/nixos/maintainers/scripts/ec2/amazon-image.nix
@@ -73,7 +73,7 @@ in {
         }
       '';
 
-    zfsBuilder = import ../../../lib/make-zfs-image.nix {
+    zfsBuilder = import ../../../lib/make-multi-disk-zfs-image.nix {
       inherit lib config configFile;
       inherit (cfg) contents format name;
       pkgs = import ../../../.. { inherit (pkgs) system; }; # ensure we use the regular qemu-kvm package
diff --git a/nixos/maintainers/scripts/openstack/openstack-image-zfs.nix b/nixos/maintainers/scripts/openstack/openstack-image-zfs.nix
new file mode 100644
index 0000000000000..d62a560642d03
--- /dev/null
+++ b/nixos/maintainers/scripts/openstack/openstack-image-zfs.nix
@@ -0,0 +1,101 @@
+# nix-build '<nixpkgs/nixos>' -A config.system.build.openstackImage --arg configuration "{ imports = [ ./nixos/maintainers/scripts/openstack/openstack-image.nix ]; }"
+
+{ config, lib, pkgs, ... }:
+let
+  inherit (lib) mkOption types;
+  copyChannel = true;
+  cfg = config.openstackImage;
+  imageBootMode = if config.openstack.efi then "uefi" else "legacy-bios";
+in
+{
+  imports = [
+    ../../../modules/virtualisation/openstack-config.nix
+  ] ++ (lib.optional copyChannel ../../../modules/installer/cd-dvd/channel.nix);
+
+
+  options.openstackImage = {
+    name = mkOption {
+      type = types.str;
+      description = "The name of the generated derivation";
+      default = "nixos-openstack-image-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}";
+    };
+
+    sizeMB = mkOption {
+      type = types.int;
+      default = 8192;
+      description = "The size in MB of the image";
+    };
+
+    format = mkOption {
+      type = types.enum [ "raw" "qcow2" ];
+      default = "qcow2";
+      description = "The image format to output";
+    };
+  };
+
+  config = {
+    documentation.enable = copyChannel;
+    openstack = {
+      efi = true;
+      zfs = {
+        enable = true;
+        datasets = {
+          "tank/system/root".mount = "/";
+          "tank/system/var".mount = "/var";
+          "tank/local/nix".mount = "/nix";
+          "tank/user/home".mount = "/home";
+        };
+      };
+    };
+
+    system.build.openstackImage = import ../../../lib/make-single-disk-zfs-image.nix {
+      inherit lib config;
+      inherit (cfg) contents format name;
+      pkgs = import ../../../.. { inherit (pkgs) system; }; # ensure we use the regular qemu-kvm package
+
+      configFile = pkgs.writeText "configuration.nix"
+        ''
+          { modulesPath, ... }: {
+            imports = [ "''${modulesPath}/virtualisation/openstack-config.nix" ];
+            openstack.zfs.enable = true;
+          }
+        '';
+
+      includeChannel = copyChannel;
+
+      bootSize = 1000;
+
+      rootSize = cfg.sizeMB;
+      rootPoolProperties = {
+        ashift = 12;
+        autoexpand = "on";
+      };
+
+      datasets = config.openstack.zfs.datasets;
+
+      postVM = ''
+         extension=''${rootDiskImage##*.}
+         friendlyName=$out/${cfg.name}
+         rootDisk="$friendlyName.root.$extension"
+         mv "$rootDiskImage" "$rootDisk"
+
+         mkdir -p $out/nix-support
+         echo "file ${cfg.format} $rootDisk" >> $out/nix-support/hydra-build-products
+
+        ${pkgs.jq}/bin/jq -n \
+          --arg system_label ${lib.escapeShellArg config.system.nixos.label} \
+          --arg system ${lib.escapeShellArg pkgs.stdenv.hostPlatform.system} \
+          --arg root_logical_bytes "$(${pkgs.qemu}/bin/qemu-img info --output json "$rootDisk" | ${pkgs.jq}/bin/jq '."virtual-size"')" \
+          --arg boot_mode "${imageBootMode}" \
+          --arg root "$rootDisk" \
+         '{}
+           | .label = $system_label
+           | .boot_mode = $boot_mode
+           | .system = $system
+           | .disks.root.logical_bytes = $root_logical_bytes
+           | .disks.root.file = $root
+           ' > $out/nix-support/image-info.json
+      '';
+    };
+  };
+}
diff --git a/nixos/maintainers/scripts/openstack/openstack-image.nix b/nixos/maintainers/scripts/openstack/openstack-image.nix
index 3255e7f3d44d6..6728a98758b83 100644
--- a/nixos/maintainers/scripts/openstack/openstack-image.nix
+++ b/nixos/maintainers/scripts/openstack/openstack-image.nix
@@ -1,17 +1,18 @@
 # nix-build '<nixpkgs/nixos>' -A config.system.build.openstackImage --arg configuration "{ imports = [ ./nixos/maintainers/scripts/openstack/openstack-image.nix ]; }"
 
 { config, lib, pkgs, ... }:
-
-with lib;
-
+let
+  copyChannel = true;
+in
 {
-  imports =
-    [ ../../../modules/installer/cd-dvd/channel.nix
-      ../../../modules/virtualisation/openstack-config.nix
-    ];
+  imports = [
+    ../../../modules/virtualisation/openstack-config.nix
+  ] ++ (lib.optional copyChannel ../../../modules/installer/cd-dvd/channel.nix);
+
+  documentation.enable = copyChannel;
 
   system.build.openstackImage = import ../../../lib/make-disk-image.nix {
-    inherit lib config;
+    inherit lib config copyChannel;
     additionalSpace = "1024M";
     pkgs = import ../../../.. { inherit (pkgs) system; }; # ensure we use the regular qemu-kvm package
     format = "qcow2";
diff --git a/nixos/modules/config/console.nix b/nixos/modules/config/console.nix
index 168bebd8d06a3..5b07901f99011 100644
--- a/nixos/modules/config/console.nix
+++ b/nixos/modules/config/console.nix
@@ -12,7 +12,7 @@ let
 
   optimizedKeymap = pkgs.runCommand "keymap" {
     nativeBuildInputs = [ pkgs.buildPackages.kbd ];
-    LOADKEYS_KEYMAP_PATH = "${consoleEnv}/share/keymaps/**";
+    LOADKEYS_KEYMAP_PATH = "${consoleEnv pkgs.kbd}/share/keymaps/**";
     preferLocalBuild = true;
   } ''
     loadkeys -b ${optionalString isUnicode "-u"} "${cfg.keyMap}" > $out
@@ -24,9 +24,9 @@ let
     FONT=${cfg.font}
   '';
 
-  consoleEnv = pkgs.buildEnv {
+  consoleEnv = kbd: pkgs.buildEnv {
     name = "console-env";
-    paths = [ pkgs.kbd ] ++ cfg.packages;
+    paths = [ kbd ] ++ cfg.packages;
     pathsToLink = [
       "/share/consolefonts"
       "/share/consoletrans"
@@ -136,9 +136,9 @@ in
         # virtual consoles.
         environment.etc."vconsole.conf".source = vconsoleConf;
         # Provide kbd with additional packages.
-        environment.etc.kbd.source = "${consoleEnv}/share";
+        environment.etc.kbd.source = "${consoleEnv pkgs.kbd}/share";
 
-        boot.initrd.preLVMCommands = mkBefore ''
+        boot.initrd.preLVMCommands = mkIf (!config.boot.initrd.systemd.enable) (mkBefore ''
           kbd_mode ${if isUnicode then "-u" else "-a"} -C /dev/console
           printf "\033%%${if isUnicode then "G" else "@"}" >> /dev/console
           loadkmap < ${optimizedKeymap}
@@ -146,12 +146,23 @@ in
           ${optionalString cfg.earlySetup ''
             setfont -C /dev/console $extraUtils/share/consolefonts/font.psf
           ''}
-        '';
+        '');
+
+        boot.initrd.systemd.contents = {
+          "/etc/kbd".source = "${consoleEnv config.boot.initrd.systemd.package.kbd}/share";
+          "/etc/vconsole.conf".source = vconsoleConf;
+        };
+        boot.initrd.systemd.storePaths = [
+          "${config.boot.initrd.systemd.package}/lib/systemd/systemd-vconsole-setup"
+          "${config.boot.initrd.systemd.package.kbd}/bin/setfont"
+          "${config.boot.initrd.systemd.package.kbd}/bin/loadkeys"
+          "${config.boot.initrd.systemd.package.kbd.gzip}/bin/gzip" # keyboard layouts are compressed
+        ];
 
         systemd.services.reload-systemd-vconsole-setup =
           { description = "Reset console on configuration changes";
             wantedBy = [ "multi-user.target" ];
-            restartTriggers = [ vconsoleConf consoleEnv ];
+            restartTriggers = [ vconsoleConf (consoleEnv pkgs.kbd) ];
             reloadIfChanged = true;
             serviceConfig =
               { RemainAfterExit = true;
@@ -175,7 +186,7 @@ in
           ${if substring 0 1 cfg.font == "/" then ''
             font="${cfg.font}"
           '' else ''
-            font="$(echo ${consoleEnv}/share/consolefonts/${cfg.font}.*)"
+            font="$(echo ${consoleEnv pkgs.kbd}/share/consolefonts/${cfg.font}.*)"
           ''}
           if [[ $font == *.gz ]]; then
             gzip -cd $font > $out/share/consolefonts/font.psf
@@ -183,6 +194,10 @@ in
             cp -L $font $out/share/consolefonts/font.psf
           fi
         '';
+        assertions = [{
+          assertion = !config.boot.initrd.systemd.enable;
+          message = "console.earlySetup is implied by systemd stage 1";
+        }];
       })
     ]))
   ];
diff --git a/nixos/modules/config/nsswitch.nix b/nixos/modules/config/nsswitch.nix
index 91a36cef10e67..e494ff5f74d5a 100644
--- a/nixos/modules/config/nsswitch.nix
+++ b/nixos/modules/config/nsswitch.nix
@@ -95,11 +95,14 @@ with lib;
   config = {
     assertions = [
       {
-        # Prevent users from disabling nscd, with nssModules being set.
-        # If disabling nscd is really necessary, it's still possible to opt out
-        # by forcing config.system.nssModules to [].
         assertion = config.system.nssModules.path != "" -> config.services.nscd.enable;
-        message = "Loading NSS modules from system.nssModules (${config.system.nssModules.path}), requires services.nscd.enable being set to true.";
+        message = ''
+          Loading NSS modules from system.nssModules (${config.system.nssModules.path}),
+          requires services.nscd.enable being set to true.
+
+          If disabling nscd is really necessary, it is possible to disable loading NSS modules
+          by setting `system.nssModules = lib.mkForce [];` in your configuration.nix.
+        '';
       }
     ];
 
diff --git a/nixos/modules/config/terminfo.nix b/nixos/modules/config/terminfo.nix
index 1396640af6724..693404a429c31 100644
--- a/nixos/modules/config/terminfo.nix
+++ b/nixos/modules/config/terminfo.nix
@@ -1,9 +1,33 @@
 # This module manages the terminfo database
 # and its integration in the system.
-{ config, ... }:
+{ config, lib, pkgs, ... }:
+
+with lib;
+
 {
+
+  options.environment.enableAllTerminfo = with lib; mkOption {
+    default = false;
+    type = types.bool;
+    description = ''
+      Whether to install all terminfo outputs
+    '';
+  };
+
   config = {
 
+    # can be generated with: filter (drv: (builtins.tryEval (drv ? terminfo)).value) (attrValues pkgs)
+    environment.systemPackages = mkIf config.environment.enableAllTerminfo (map (x: x.terminfo) (with pkgs; [
+      alacritty
+      foot
+      kitty
+      mtm
+      rxvt-unicode-unwrapped
+      rxvt-unicode-unwrapped-emoji
+      termite
+      wezterm
+    ]));
+
     environment.pathsToLink = [
       "/share/terminfo"
     ];
diff --git a/nixos/modules/hardware/video/amdgpu-pro.nix b/nixos/modules/hardware/video/amdgpu-pro.nix
index d784befc9b887..299a30b0629b1 100644
--- a/nixos/modules/hardware/video/amdgpu-pro.nix
+++ b/nixos/modules/hardware/video/amdgpu-pro.nix
@@ -51,9 +51,10 @@ in
       (isYes "KALLSYMS_ALL")
     ];
 
-    boot.initrd.extraUdevRulesCommands = ''
+    boot.initrd.extraUdevRulesCommands = mkIf (!config.boot.initrd.systemd.enable) ''
       cp -v ${package}/etc/udev/rules.d/*.rules $out/
     '';
+    boot.initrd.services.udev.packages = [ package ];
 
     environment.systemPackages =
       [ package.vulkan ] ++
diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix
index 6de5b99a1ee63..6899eb4e196aa 100644
--- a/nixos/modules/hardware/video/nvidia.nix
+++ b/nixos/modules/hardware/video/nvidia.nix
@@ -24,6 +24,7 @@ let
   primeEnabled = syncCfg.enable || offloadCfg.enable;
   nvidiaPersistencedEnabled =  cfg.nvidiaPersistenced;
   nvidiaSettings = cfg.nvidiaSettings;
+  busIDType = types.strMatching "([[:print:]]+\:[0-9]{1,3}\:[0-9]{1,2}\:[0-9])?";
 in
 
 {
@@ -68,7 +69,7 @@ in
     };
 
     hardware.nvidia.prime.nvidiaBusId = mkOption {
-      type = types.str;
+      type = busIDType;
       default = "";
       example = "PCI:1:0:0";
       description = ''
@@ -78,7 +79,7 @@ in
     };
 
     hardware.nvidia.prime.intelBusId = mkOption {
-      type = types.str;
+      type = busIDType;
       default = "";
       example = "PCI:0:2:0";
       description = ''
@@ -88,7 +89,7 @@ in
     };
 
     hardware.nvidia.prime.amdgpuBusId = mkOption {
-      type = types.str;
+      type = busIDType;
       default = "";
       example = "PCI:4:0:0";
       description = ''
diff --git a/nixos/modules/hardware/video/webcam/facetimehd.nix b/nixos/modules/hardware/video/webcam/facetimehd.nix
index d311f600c3197..b13f103350e9d 100644
--- a/nixos/modules/hardware/video/webcam/facetimehd.nix
+++ b/nixos/modules/hardware/video/webcam/facetimehd.nix
@@ -16,11 +16,6 @@ in
 
   config = mkIf cfg.enable {
 
-    assertions = singleton {
-      assertion = versionAtLeast kernelPackages.kernel.version "3.19";
-      message = "facetimehd is not supported for kernels older than 3.19";
-    };
-
     boot.kernelModules = [ "facetimehd" ];
 
     boot.blacklistedKernelModules = [ "bdc_pci" ];
diff --git a/nixos/modules/i18n/input-method/fcitx5.nix b/nixos/modules/i18n/input-method/fcitx5.nix
index 414aabbbaa730..6fea28e22345a 100644
--- a/nixos/modules/i18n/input-method/fcitx5.nix
+++ b/nixos/modules/i18n/input-method/fcitx5.nix
@@ -28,11 +28,5 @@ in {
       QT_IM_MODULE = "fcitx";
       XMODIFIERS = "@im=fcitx";
     };
-
-    systemd.user.services.fcitx5-daemon = {
-      enable = true;
-      script = "${fcitx5Package}/bin/fcitx5";
-      wantedBy = [ "graphical-session.target" ];
-    };
   };
 }
diff --git a/nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix b/nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix
index 458e313a3f751..329bd329dc15f 100644
--- a/nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix
+++ b/nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix
@@ -87,19 +87,19 @@ in
   boot.initrd.availableKernelModules =
     [ "mvsdio" "reiserfs" "ext3" "ums-cypress" "rtc_mv" "ext4" ];
 
-  boot.postBootCommands =
+  boot.postBootCommands = lib.mkIf (!boot.initrd.systemd.enable)
     ''
       mkdir -p /mnt
 
       cp ${dummyConfiguration} /etc/nixos/configuration.nix
     '';
 
-  boot.initrd.extraUtilsCommands =
+  boot.initrd.extraUtilsCommands = lib.mkIf (!boot.initrd.systemd.enable)
     ''
       copy_bin_and_libs ${pkgs.util-linux}/sbin/hwclock
     '';
 
-  boot.initrd.postDeviceCommands =
+  boot.initrd.postDeviceCommands = lib.mkIf (!boot.initrd.systemd.enable)
     ''
       hwclock -s
     '';
diff --git a/nixos/modules/installer/kexec/kexec-boot.nix b/nixos/modules/installer/kexec/kexec-boot.nix
new file mode 100644
index 0000000000000..2d062214efc21
--- /dev/null
+++ b/nixos/modules/installer/kexec/kexec-boot.nix
@@ -0,0 +1,51 @@
+# This module exposes a config.system.build.kexecBoot attribute,
+# which returns a directory with kernel, initrd and a shell script
+# running the necessary kexec commands.
+
+# It's meant to be scp'ed to a machine with working ssh and kexec binary
+# installed.
+
+# This is useful for (cloud) providers where you can't boot a custom image, but
+# get some Debian or Ubuntu installation.
+
+{ pkgs
+, modulesPath
+, config
+, ...
+}:
+{
+  imports = [
+    (modulesPath + "/installer/netboot/netboot-minimal.nix")
+  ];
+
+  config = {
+    system.build.kexecBoot =
+      let
+        kexecScript = pkgs.writeScript "kexec-boot" ''
+          #!/usr/bin/env bash
+          if ! kexec -v >/dev/null 2>&1; then
+            echo "kexec not found: please install kexec-tools" 2>&1
+            exit 1
+          fi
+          SCRIPT_DIR=$( cd -- "$( dirname -- "''${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
+          kexec --load ''${SCRIPT_DIR}/bzImage \
+            --initrd=''${SCRIPT_DIR}/initrd.gz \
+            --command-line "init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams}"
+          kexec -e
+        ''; in
+      pkgs.linkFarm "kexec-tree" [
+        {
+          name = "initrd.gz";
+          path = "${config.system.build.netbootRamdisk}/initrd";
+        }
+        {
+          name = "bzImage";
+          path = "${config.system.build.kernel}/${config.system.boot.loader.kernelFile}";
+        }
+        {
+          name = "kexec-boot";
+          path = kexecScript;
+        }
+      ];
+  };
+}
diff --git a/nixos/modules/installer/tools/nix-fallback-paths.nix b/nixos/modules/installer/tools/nix-fallback-paths.nix
index dfafda77cb560..1707935ad5bc6 100644
--- a/nixos/modules/installer/tools/nix-fallback-paths.nix
+++ b/nixos/modules/installer/tools/nix-fallback-paths.nix
@@ -1,7 +1,7 @@
 {
-  x86_64-linux = "/nix/store/0n2wfvi1i3fg97cjc54wslvk0804y0sn-nix-2.7.0";
-  i686-linux = "/nix/store/4p27c1k9z99pli6x8cxfph20yfyzn9nh-nix-2.7.0";
-  aarch64-linux = "/nix/store/r9yr8ijsb0gi9r7y92y3yzyld59yp0kj-nix-2.7.0";
-  x86_64-darwin = "/nix/store/hyfj5imsd0c4amlcjpf8l6w4q2draaj3-nix-2.7.0";
-  aarch64-darwin = "/nix/store/9l96qllhbb6xrsjaai76dn74ap7rq92n-nix-2.7.0";
+  x86_64-linux = "/nix/store/yx36yzxpw1hn4fz8iyf1rfyd56jg3yf4-nix-2.8.0";
+  i686-linux = "/nix/store/c0hg806zvwg800qbszzj8ff4a224kjgf-nix-2.8.0";
+  aarch64-linux = "/nix/store/wic2832ll53q392r2wks4xr2nrk7p8p5-nix-2.8.0";
+  x86_64-darwin = "/nix/store/5yqdvnkmkrhl36xh0qy31pymdphjimdd-nix-2.8.0";
+  aarch64-darwin = "/nix/store/izc9592szrnpv8n86hr88bhpyc9g6b4s-nix-2.8.0";
 }
diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix
index 2e088b9777102..bf5ec0f9690b0 100644
--- a/nixos/modules/installer/tools/tools.nix
+++ b/nixos/modules/installer/tools/tools.nix
@@ -206,6 +206,11 @@ in
         # Or disable the firewall altogether.
         # networking.firewall.enable = false;
 
+        # Copy the NixOS configuration file and link it from the resulting system
+        # (/run/current-system/configuration.nix). This is useful in case you
+        # accidentally delete configuration.nix.
+        # system.copySystemConfiguration = true;
+
         # This value determines the NixOS release from which the default
         # settings for stateful data, like file locations and database versions
         # on your system were taken. It‘s perfectly fine and recommended to leave
diff --git a/nixos/modules/misc/documentation.nix b/nixos/modules/misc/documentation.nix
index 9304c307af2f1..8e28d3336fa42 100644
--- a/nixos/modules/misc/documentation.nix
+++ b/nixos/modules/misc/documentation.nix
@@ -64,7 +64,8 @@ let
         filter =
           builtins.filterSource
             (n: t:
-              (t == "directory" -> baseNameOf n != "tests")
+              cleanSourceFilter n t
+              && (t == "directory" -> baseNameOf n != "tests")
               && (t == "file" -> hasSuffix ".nix" n)
             );
       in
diff --git a/nixos/modules/misc/locate.nix b/nixos/modules/misc/locate.nix
index 204a891430082..192c9ec413cb6 100644
--- a/nixos/modules/misc/locate.nix
+++ b/nixos/modules/misc/locate.nix
@@ -27,7 +27,7 @@ in
 
     locate = mkOption {
       type = package;
-      default = pkgs.findutils;
+      default = pkgs.findutils.locate;
       defaultText = literalExpression "pkgs.findutils";
       example = literalExpression "pkgs.mlocate";
       description = ''
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index d6c65251c628d..dcd9bb8aff1d0 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -185,6 +185,7 @@
   ./programs/nbd.nix
   ./programs/nix-ld.nix
   ./programs/neovim.nix
+  ./programs/nethoscope.nix
   ./programs/nm-applet.nix
   ./programs/nncp.nix
   ./programs/npm.nix
@@ -204,7 +205,6 @@
   ./programs/spacefm.nix
   ./programs/singularity.nix
   ./programs/ssh.nix
-  ./programs/ssmtp.nix
   ./programs/sysdig.nix
   ./programs/systemtap.nix
   ./programs/starship.nix
@@ -409,6 +409,7 @@
   ./services/display-managers/greetd.nix
   ./services/editors/emacs.nix
   ./services/editors/infinoted.nix
+  ./services/editors/haste.nix
   ./services/finance/odoo.nix
   ./services/games/asf.nix
   ./services/games/crossfire-server.nix
@@ -458,6 +459,7 @@
   ./services/hardware/udisks2.nix
   ./services/hardware/upower.nix
   ./services/hardware/usbmuxd.nix
+  ./services/hardware/usbrelayd.nix
   ./services/hardware/thermald.nix
   ./services/hardware/undervolt.nix
   ./services/hardware/vdr.nix
@@ -596,7 +598,7 @@
   ./services/misc/osrm.nix
   ./services/misc/owncast.nix
   ./services/misc/packagekit.nix
-  ./services/misc/paperless-ng.nix
+  ./services/misc/paperless.nix
   ./services/misc/parsoid.nix
   ./services/misc/plex.nix
   ./services/misc/plikd.nix
@@ -739,6 +741,7 @@
   ./services/networking/coredns.nix
   ./services/networking/corerad.nix
   ./services/networking/coturn.nix
+  ./services/networking/create_ap.nix
   ./services/networking/croc.nix
   ./services/networking/dante.nix
   ./services/networking/ddclient.nix
@@ -753,6 +756,7 @@
   ./services/networking/ncdns.nix
   ./services/networking/nomad.nix
   ./services/networking/ejabberd.nix
+  ./services/networking/envoy.nix
   ./services/networking/epmd.nix
   ./services/networking/ergo.nix
   ./services/networking/ergochat.nix
@@ -815,6 +819,7 @@
   ./services/networking/mosquitto.nix
   ./services/networking/monero.nix
   ./services/networking/morty.nix
+  ./services/networking/mozillavpn.nix
   ./services/networking/miredo.nix
   ./services/networking/mstpd.nix
   ./services/networking/mtprotoproxy.nix
@@ -850,6 +855,7 @@
   ./services/networking/ofono.nix
   ./services/networking/oidentd.nix
   ./services/networking/onedrive.nix
+  ./services/networking/openconnect.nix
   ./services/networking/openvpn.nix
   ./services/networking/ostinato.nix
   ./services/networking/owamp.nix
@@ -1051,6 +1057,7 @@
   ./services/web-apps/netbox.nix
   ./services/web-apps/nextcloud.nix
   ./services/web-apps/nexus.nix
+  ./services/web-apps/nifi.nix
   ./services/web-apps/node-red.nix
   ./services/web-apps/pict-rs.nix
   ./services/web-apps/peertube.nix
@@ -1178,6 +1185,7 @@
   ./system/boot/systemd/journald.nix
   ./system/boot/systemd/logind.nix
   ./system/boot/systemd/nspawn.nix
+  ./system/boot/systemd/shutdown.nix
   ./system/boot/systemd/tmpfiles.nix
   ./system/boot/systemd/user.nix
   ./system/boot/systemd/initrd.nix
@@ -1234,6 +1242,7 @@
   ./virtualisation/amazon-options.nix
   ./virtualisation/hyperv-guest.nix
   ./virtualisation/kvmgt.nix
+  ./virtualisation/openstack-options.nix
   ./virtualisation/openvswitch.nix
   ./virtualisation/parallels-guest.nix
   ./virtualisation/podman/default.nix
diff --git a/nixos/modules/programs/chromium.nix b/nixos/modules/programs/chromium.nix
index 8a1653318ab5f..4b8bec33eb873 100644
--- a/nixos/modules/programs/chromium.nix
+++ b/nixos/modules/programs/chromium.nix
@@ -108,5 +108,8 @@ in
     # for google-chrome https://www.chromium.org/administrators/linux-quick-start
     environment.etc."opt/chrome/policies/managed/default.json".text = builtins.toJSON defaultProfile;
     environment.etc."opt/chrome/policies/managed/extra.json".text = builtins.toJSON cfg.extraOpts;
+    # for brave
+    environment.etc."brave/policies/managed/default.json".text = builtins.toJSON defaultProfile;
+    environment.etc."brave/policies/managed/extra.json".text = builtins.toJSON cfg.extraOpts;
   };
 }
diff --git a/nixos/modules/programs/mininet.nix b/nixos/modules/programs/mininet.nix
index 6e90e7669ac66..2cf6c014c3522 100644
--- a/nixos/modules/programs/mininet.nix
+++ b/nixos/modules/programs/mininet.nix
@@ -23,8 +23,8 @@ let
       ln -s ${pyEnv}/bin/mn $out/bin/mn
 
       # mn errors out without a telnet binary
-      # pkgs.telnet brings an undesired ifconfig into PATH see #43105
-      ln -s ${pkgs.telnet}/bin/telnet $out/bin/telnet
+      # pkgs.inetutils brings an undesired ifconfig into PATH see #43105
+      ln -s ${pkgs.inetutils}/bin/telnet $out/bin/telnet
     '';
 in
 {
diff --git a/nixos/modules/programs/nethoscope.nix b/nixos/modules/programs/nethoscope.nix
new file mode 100644
index 0000000000000..495548e9c6561
--- /dev/null
+++ b/nixos/modules/programs/nethoscope.nix
@@ -0,0 +1,30 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let cfg = config.programs.nethoscope;
+in
+{
+  meta.maintainers = with maintainers; [ _0x4A6F ];
+
+  options = {
+    programs.nethoscope = {
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to add nethoscope to the global environment and configure a
+          setcap wrapper for it.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = with pkgs; [ nethoscope ];
+    security.wrappers.nethoscope = {
+      source = "${pkgs.nethoscope}/bin/nethoscope";
+      capabilities = "cap_net_raw,cap_net_admin=eip";
+    };
+  };
+}
diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix
index b31fce9152404..75685de4f04e3 100644
--- a/nixos/modules/programs/ssh.nix
+++ b/nixos/modules/programs/ssh.nix
@@ -157,9 +157,13 @@ in
               default = [ name ] ++ config.extraHostNames;
               defaultText = literalExpression "[ ${name} ] ++ config.${options.extraHostNames}";
               description = ''
-                DEPRECATED, please use <literal>extraHostNames</literal>.
                 A list of host names and/or IP numbers used for accessing
-                the host's ssh service.
+                the host's ssh service. This list includes the name of the
+                containing <literal>knownHosts</literal> attribute by default
+                for convenience. If you wish to configure multiple host keys
+                for the same host use multiple <literal>knownHosts</literal>
+                entries with different attribute names and the same
+                <literal>hostNames</literal> list.
               '';
             };
             extraHostNames = mkOption {
@@ -167,7 +171,8 @@ in
               default = [];
               description = ''
                 A list of additional host names and/or IP numbers used for
-                accessing the host's ssh service.
+                accessing the host's ssh service. This list is ignored if
+                <literal>hostNames</literal> is set explicitly.
               '';
             };
             publicKey = mkOption {
@@ -198,7 +203,12 @@ in
           };
         }));
         description = ''
-          The set of system-wide known SSH hosts.
+          The set of system-wide known SSH hosts. To make simple setups more
+          convenient the name of an attribute in this set is used as a host name
+          for the entry. This behaviour can be disabled by setting
+          <literal>hostNames</literal> explicitly. You can use
+          <literal>extraHostNames</literal> to add additional host names without
+          disabling this default.
         '';
         example = literalExpression ''
           {
@@ -207,6 +217,10 @@ in
               publicKeyFile = ./pubkeys/myhost_ssh_host_dsa_key.pub;
             };
             "myhost2.net".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILIRuJ8p1Fi+m6WkHV0KWnRfpM1WxoW8XAS+XvsSKsTK";
+            "myhost2.net/dsa" = {
+              hostNames = [ "myhost2.net" ];
+              publicKeyFile = ./pubkeys/myhost2_ssh_host_dsa_key.pub;
+            };
           }
         '';
       };
@@ -279,9 +293,6 @@ in
         message = "knownHost ${name} must contain either a publicKey or publicKeyFile";
       });
 
-    warnings = mapAttrsToList (name: _: ''programs.ssh.knownHosts.${name}.hostNames is deprecated, use programs.ssh.knownHosts.${name}.extraHostNames'')
-      (filterAttrs (name: {hostNames, extraHostNames, ...}: hostNames != [ name ] ++ extraHostNames) cfg.knownHosts);
-
     # SSH configuration. Slight duplication of the sshd_config
     # generation in the sshd service.
     environment.etc."ssh/ssh_config".text =
diff --git a/nixos/modules/programs/ssmtp.nix b/nixos/modules/programs/ssmtp.nix
deleted file mode 100644
index b454bf35229ee..0000000000000
--- a/nixos/modules/programs/ssmtp.nix
+++ /dev/null
@@ -1,190 +0,0 @@
-# Configuration for `ssmtp', a trivial mail transfer agent that can
-# replace sendmail/postfix on simple systems.  It delivers email
-# directly to an SMTP server defined in its configuration file, without
-# queueing mail locally.
-
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-  cfg = config.services.ssmtp;
-
-in
-{
-
-  imports = [
-    (mkRenamedOptionModule [ "networking" "defaultMailServer" "directDelivery" ] [ "services" "ssmtp" "enable" ])
-    (mkRenamedOptionModule [ "networking" "defaultMailServer" "hostName" ] [ "services" "ssmtp" "hostName" ])
-    (mkRenamedOptionModule [ "networking" "defaultMailServer" "domain" ] [ "services" "ssmtp" "domain" ])
-    (mkRenamedOptionModule [ "networking" "defaultMailServer" "root" ] [ "services" "ssmtp" "root" ])
-    (mkRenamedOptionModule [ "networking" "defaultMailServer" "useTLS" ] [ "services" "ssmtp" "useTLS" ])
-    (mkRenamedOptionModule [ "networking" "defaultMailServer" "useSTARTTLS" ] [ "services" "ssmtp" "useSTARTTLS" ])
-    (mkRenamedOptionModule [ "networking" "defaultMailServer" "authUser" ] [ "services" "ssmtp" "authUser" ])
-    (mkRenamedOptionModule [ "networking" "defaultMailServer" "authPassFile" ] [ "services" "ssmtp" "authPassFile" ])
-    (mkRenamedOptionModule [ "networking" "defaultMailServer" "setSendmail" ] [ "services" "ssmtp" "setSendmail" ])
-
-    (mkRemovedOptionModule [ "networking" "defaultMailServer" "authPass" ] "authPass has been removed since it leaks the clear-text password into the world-readable store. Use authPassFile instead and make sure it's not a store path")
-    (mkRemovedOptionModule [ "services" "ssmtp" "authPass" ] "authPass has been removed since it leaks the clear-text password into the world-readable store. Use authPassFile instead and make sure it's not a store path")
-  ];
-
-  options = {
-
-    services.ssmtp = {
-
-      enable = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Use the trivial Mail Transfer Agent (MTA)
-          <command>ssmtp</command> package to allow programs to send
-          e-mail.  If you don't want to run a “real” MTA like
-          <command>sendmail</command> or <command>postfix</command> on
-          your machine, set this option to <literal>true</literal>, and
-          set the option
-          <option>services.ssmtp.hostName</option> to the
-          host name of your preferred mail server.
-        '';
-      };
-
-      settings = mkOption {
-        type = with types; attrsOf (oneOf [ bool str ]);
-        default = {};
-        description = ''
-          <citerefentry><refentrytitle>ssmtp</refentrytitle><manvolnum>5</manvolnum></citerefentry> configuration. Refer
-          to <link xlink:href="https://linux.die.net/man/5/ssmtp.conf"/> for details on supported values.
-        '';
-        example = literalExpression ''
-          {
-            Debug = true;
-            FromLineOverride = false;
-          }
-        '';
-      };
-
-      hostName = mkOption {
-        type = types.str;
-        example = "mail.example.org";
-        description = ''
-          The host name of the default mail server to use to deliver
-          e-mail. Can also contain a port number (ex: mail.example.org:587),
-          defaults to port 25 if no port is given.
-        '';
-      };
-
-      root = mkOption {
-        type = types.str;
-        default = "";
-        example = "root@example.org";
-        description = ''
-          The e-mail to which mail for users with UID &lt; 1000 is forwarded.
-        '';
-      };
-
-      domain = mkOption {
-        type = types.str;
-        default = "";
-        example = "example.org";
-        description = ''
-          The domain from which mail will appear to be sent.
-        '';
-      };
-
-      useTLS = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Whether TLS should be used to connect to the default mail
-          server.
-        '';
-      };
-
-      useSTARTTLS = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Whether the STARTTLS should be used to connect to the default
-          mail server.  (This is needed for TLS-capable mail servers
-          running on the default SMTP port 25.)
-        '';
-      };
-
-      authUser = mkOption {
-        type = types.str;
-        default = "";
-        example = "foo@example.org";
-        description = ''
-          Username used for SMTP auth. Leave blank to disable.
-        '';
-      };
-
-      authPassFile = mkOption {
-        type = types.nullOr types.str;
-        default = null;
-        example = "/run/keys/ssmtp-authpass";
-        description = ''
-          Path to a file that contains the password used for SMTP auth. The file
-          should not contain a trailing newline, if the password does not contain one
-          (e.g. use <command>echo -n "password" > file</command>).
-          This file should be readable by the users that need to execute ssmtp.
-        '';
-      };
-
-      setSendmail = mkOption {
-        type = types.bool;
-        default = true;
-        description = "Whether to set the system sendmail to ssmtp's.";
-      };
-
-    };
-
-  };
-
-
-  config = mkIf cfg.enable {
-
-    assertions = [
-      {
-        assertion = cfg.useSTARTTLS -> cfg.useTLS;
-        message = "services.ssmtp.useSTARTTLS has no effect without services.ssmtp.useTLS";
-      }
-    ];
-
-    services.ssmtp.settings = mkMerge [
-      ({
-        MailHub = cfg.hostName;
-        FromLineOverride = mkDefault true;
-        UseTLS = cfg.useTLS;
-        UseSTARTTLS = cfg.useSTARTTLS;
-      })
-      (mkIf (cfg.root != "") { root = cfg.root; })
-      (mkIf (cfg.domain != "") { rewriteDomain = cfg.domain; })
-      (mkIf (cfg.authUser != "") { AuthUser = cfg.authUser; })
-      (mkIf (cfg.authPassFile != null) { AuthPassFile = cfg.authPassFile; })
-    ];
-
-    # careful here: ssmtp REQUIRES all config lines to end with a newline char!
-    environment.etc."ssmtp/ssmtp.conf".text = with generators; toKeyValue {
-      mkKeyValue = mkKeyValueDefault {
-        mkValueString = value:
-          if value == true then "YES"
-          else if value == false then "NO"
-          else mkValueStringDefault {} value
-        ;
-      } "=";
-    } cfg.settings;
-
-    environment.systemPackages = [pkgs.ssmtp];
-
-    services.mail.sendmailSetuidWrapper = mkIf cfg.setSendmail {
-      program = "sendmail";
-      source = "${pkgs.ssmtp}/bin/sendmail";
-      setuid = false;
-      setgid = false;
-      owner = "root";
-      group = "root";
-    };
-
-  };
-
-}
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 72395b2ee8699..1d22627649304 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -69,6 +69,11 @@ with lib;
     '')
     (mkRemovedOptionModule [ "services" "quagga" ] "the corresponding package has been removed from nixpkgs")
     (mkRemovedOptionModule [ "services" "seeks" ] "")
+    (mkRemovedOptionModule [ "services" "ssmtp" ] ''
+      The ssmtp package and the corresponding module have been removed due to
+      the program being unmaintained. The options `programs.msmtp.*` can be
+      used instead.
+    '')
     (mkRemovedOptionModule [ "services" "venus" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "services" "wakeonlan"] "This module was removed in favor of enabling it with networking.interfaces.<name>.wakeOnLan")
     (mkRemovedOptionModule [ "services" "winstone" ] "The corresponding package was removed from nixpkgs.")
diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix
index c0ef8b5f30bd4..530304b497ae8 100644
--- a/nixos/modules/security/pam.nix
+++ b/nixos/modules/security/pam.nix
@@ -61,6 +61,19 @@ let
         '';
       };
 
+      usshAuth = mkOption {
+        default = false;
+        type = types.bool;
+        description = ''
+          If set, users with an SSH certificate containing an authorized principal
+          in their SSH agent are able to log in. Specific options are controlled
+          using the <option>security.pam.ussh</option> options.
+
+          Note that the  <option>security.pam.ussh.enable</option> must also be
+          set for this option to take effect.
+        '';
+      };
+
       yubicoAuth = mkOption {
         default = config.security.pam.yubico.enable;
         defaultText = literalExpression "config.security.pam.yubico.enable";
@@ -475,6 +488,9 @@ let
           optionalString cfg.usbAuth ''
             auth sufficient ${pkgs.pam_usb}/lib/security/pam_usb.so
           '' +
+          (let ussh = config.security.pam.ussh; in optionalString (config.security.pam.ussh.enable && cfg.usshAuth) ''
+            auth ${ussh.control} ${pkgs.pam_ussh}/lib/security/pam_ussh.so ${optionalString (ussh.caFile != null) "ca_file=${ussh.caFile}"} ${optionalString (ussh.authorizedPrincipals != null) "authorized_principals=${ussh.authorizedPrincipals}"} ${optionalString (ussh.authorizedPrincipalsFile != null) "authorized_principals_file=${ussh.authorizedPrincipalsFile}"} ${optionalString (ussh.group != null) "group=${ussh.group}"}
+          '') +
           (let oath = config.security.pam.oath; in optionalString cfg.oathAuth ''
             auth requisite ${pkgs.oathToolkit}/lib/security/pam_oath.so window=${toString oath.window} usersfile=${toString oath.usersFile} digits=${toString oath.digits}
           '') +
@@ -594,6 +610,7 @@ let
             session optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so
           '' +
           optionalString cfg.pamMount ''
+            session [success=1 default=ignore] ${pkgs.pam}/lib/security/pam_succeed_if.so service = systemd-user quiet
             session optional ${pkgs.pam_mount}/lib/security/pam_mount.so disable_interactive
           '' +
           optionalString use_ldap ''
@@ -926,6 +943,96 @@ in
       };
     };
 
+    security.pam.ussh = {
+      enable = mkOption {
+        default = false;
+        type = types.bool;
+        description = ''
+          Enables Uber's USSH PAM (<literal>pam-ussh</literal>) module.
+
+          This is similar to <literal>pam-ssh-agent</literal>, except that
+          the presence of a CA-signed SSH key with a valid principal is checked
+          instead.
+
+          Note that this module must both be enabled using this option and on a
+          per-PAM-service level as well (using <literal>usshAuth</literal>).
+
+          More information can be found <link
+          xlink:href="https://github.com/uber/pam-ussh">here</link>.
+        '';
+      };
+
+      caFile = mkOption {
+        default = null;
+        type = with types; nullOr path;
+        description = ''
+          By default <literal>pam-ussh</literal> reads the trusted user CA keys
+          from <filename>/etc/ssh/trusted_user_ca</filename>.
+
+          This should be set the same as your <literal>TrustedUserCAKeys</literal>
+          option for sshd.
+        '';
+      };
+
+      authorizedPrincipals = mkOption {
+        default = null;
+        type = with types; nullOr commas;
+        description = ''
+          Comma-separated list of authorized principals to permit; if the user
+          presents a certificate with one of these principals, then they will be
+          authorized.
+
+          Note that <literal>pam-ussh</literal> also requires that the certificate
+          contain a principal matching the user's username. The principals from
+          this list are in addition to those principals.
+
+          Mutually exclusive with <literal>authorizedPrincipalsFile</literal>.
+        '';
+      };
+
+      authorizedPrincipalsFile = mkOption {
+        default = null;
+        type = with types; nullOr path;
+        description = ''
+          Path to a list of principals; if the user presents a certificate with
+          one of these principals, then they will be authorized.
+
+          Note that <literal>pam-ussh</literal> also requires that the certificate
+          contain a principal matching the user's username. The principals from
+          this file are in addition to those principals.
+
+          Mutually exclusive with <literal>authorizedPrincipals</literal>.
+        '';
+      };
+
+      group = mkOption {
+        default = null;
+        type = with types; nullOr str;
+        description = ''
+          If set, then the authenticating user must be a member of this group
+          to use this module.
+        '';
+      };
+
+      control = mkOption {
+        default = "sufficient";
+        type = types.enum [ "required" "requisite" "sufficient" "optional" ];
+        description = ''
+          This option sets pam "control".
+          If you want to have multi factor authentication, use "required".
+          If you want to use the SSH certificate instead of the regular password,
+          use "sufficient".
+
+          Read
+          <citerefentry>
+            <refentrytitle>pam.conf</refentrytitle>
+            <manvolnum>5</manvolnum>
+          </citerefentry>
+          for better understanding of this option.
+        '';
+      };
+    };
+
     security.pam.yubico = {
       enable = mkOption {
         default = false;
@@ -1110,6 +1217,9 @@ in
       optionalString (isEnabled (cfg: cfg.usbAuth)) ''
         mr ${pkgs.pam_usb}/lib/security/pam_usb.so,
       '' +
+      optionalString (isEnabled (cfg: cfg.usshAuth)) ''
+        mr ${pkgs.pam_ussh}/lib/security/pam_ussh.so,
+      '' +
       optionalString (isEnabled (cfg: cfg.oathAuth)) ''
         "mr ${pkgs.oathToolkit}/lib/security/pam_oath.so,
       '' +
diff --git a/nixos/modules/security/pam_mount.nix b/nixos/modules/security/pam_mount.nix
index 462b7f89e2f48..1d0efee8ca8ee 100644
--- a/nixos/modules/security/pam_mount.nix
+++ b/nixos/modules/security/pam_mount.nix
@@ -5,6 +5,14 @@ with lib;
 let
   cfg = config.security.pam.mount;
 
+  oflRequired = cfg.logoutHup || cfg.logoutTerm || cfg.logoutKill;
+
+  fake_ofl = pkgs.writeShellScriptBin "fake_ofl" ''
+    SIGNAL=$1
+    MNTPT=$2
+    ${pkgs.lsof}/bin/lsof | ${pkgs.gnugrep}/bin/grep $MNTPT | ${pkgs.gawk}/bin/awk '{print $2}' | ${pkgs.findutils}/bin/xargs ${pkgs.util-linux}/bin/kill -$SIGNAL
+  '';
+
   anyPamMount = any (attrByPath ["pamMount"] false) (attrValues config.security.pam.services);
 in
 
@@ -51,6 +59,71 @@ in
           You can define volume-specific options in the volume definitions.
         '';
       };
+
+      debugLevel = mkOption {
+        type = types.int;
+        default = 0;
+        example = 1;
+        description = ''
+          Sets the Debug-Level. 0 disables debugging, 1 enables pam_mount tracing,
+          and 2 additionally enables tracing in mount.crypt. The default is 0.
+          For more information, visit <link
+          xlink:href="http://pam-mount.sourceforge.net/pam_mount.conf.5.html" />.
+        '';
+      };
+
+      logoutWait = mkOption {
+        type = types.int;
+        default = 0;
+        description = ''
+          Amount of microseconds to wait until killing remaining processes after
+          final logout.
+          For more information, visit <link
+          xlink:href="http://pam-mount.sourceforge.net/pam_mount.conf.5.html" />.
+        '';
+      };
+
+      logoutHup = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Kill remaining processes after logout by sending a SIGHUP.
+        '';
+      };
+
+      logoutTerm = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Kill remaining processes after logout by sending a SIGTERM.
+        '';
+      };
+
+      logoutKill = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Kill remaining processes after logout by sending a SIGKILL.
+        '';
+      };
+
+      createMountPoints = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Create mountpoints for volumes if they do not exist.
+        '';
+      };
+
+      removeCreatedMountPoints = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Remove mountpoints created by pam_mount after logout. This
+          only affects mountpoints that have been created by pam_mount
+          in the same session.
+        '';
+      };
     };
 
   };
@@ -77,21 +150,20 @@ in
           <!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
           <!-- auto generated from Nixos: modules/config/users-groups.nix -->
           <pam_mount>
-          <debug enable="0" />
-
+          <debug enable="${toString cfg.debugLevel}" />
           <!-- if activated, requires ofl from hxtools to be present -->
-          <logout wait="0" hup="no" term="no" kill="no" />
+          <logout wait="${toString cfg.logoutWait}" hup="${if cfg.logoutHup then "yes" else "no"}" term="${if cfg.logoutTerm then "yes" else "no"}" kill="${if cfg.logoutKill then "yes" else "no"}" />
           <!-- set PATH variable for pam_mount module -->
           <path>${makeBinPath ([ pkgs.util-linux ] ++ cfg.additionalSearchPaths)}</path>
           <!-- create mount point if not present -->
-          <mkmountpoint enable="1" remove="true" />
-
+          <mkmountpoint enable="${if cfg.createMountPoints then "1" else "0"}" remove="${if cfg.removeCreatedMountPoints then "true" else "false"}" />
           <!-- specify the binaries to be called -->
           <fusemount>${pkgs.fuse}/bin/mount.fuse %(VOLUME) %(MNTPT) -o ${concatStringsSep "," (cfg.fuseMountOptions ++ [ "%(OPTIONS)" ])}</fusemount>
+          <fuseumount>${pkgs.fuse}/bin/fusermount -u %(MNTPT)</fuseumount>
           <cryptmount>${pkgs.pam_mount}/bin/mount.crypt %(VOLUME) %(MNTPT)</cryptmount>
           <cryptumount>${pkgs.pam_mount}/bin/umount.crypt %(MNTPT)</cryptumount>
           <pmvarrun>${pkgs.pam_mount}/bin/pmvarrun -u %(USER) -o %(OPERATION)</pmvarrun>
-
+          ${optionalString oflRequired "<ofl>${fake_ofl}/bin/fake_ofl %(SIGNAL) %(MNTPT)</ofl>"}
           ${concatStrings (map userVolumeEntry (attrValues extraUserVolumes))}
           ${concatStringsSep "\n" cfg.extraVolumes}
           </pam_mount>
diff --git a/nixos/modules/security/sudo.nix b/nixos/modules/security/sudo.nix
index 99e578f8adae6..4bf239fca8f90 100644
--- a/nixos/modules/security/sudo.nix
+++ b/nixos/modules/security/sudo.nix
@@ -245,7 +245,7 @@ in
 
     environment.systemPackages = [ sudo ];
 
-    security.pam.services.sudo = { sshAgentAuth = true; };
+    security.pam.services.sudo = { sshAgentAuth = true; usshAuth = true; };
 
     environment.etc.sudoers =
       { source =
diff --git a/nixos/modules/services/audio/snapserver.nix b/nixos/modules/services/audio/snapserver.nix
index 6d5ce98df8956..91d97a0b551e2 100644
--- a/nixos/modules/services/audio/snapserver.nix
+++ b/nixos/modules/services/audio/snapserver.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, options, lib, pkgs, ... }:
 
 with lib;
 
@@ -101,6 +101,8 @@ in {
 
       openFirewall = mkOption {
         type = types.bool;
+        # Make the behavior consistent with other services. Set the default to
+        # false and remove the accompanying warning after NixOS 22.05 is released.
         default = true;
         description = ''
           Whether to automatically open the specified ports in the firewall.
@@ -273,10 +275,16 @@ in {
 
   config = mkIf cfg.enable {
 
-    # https://github.com/badaix/snapcast/blob/98ac8b2fb7305084376607b59173ce4097c620d8/server/streamreader/stream_manager.cpp#L85
-    warnings = filter (w: w != "") (mapAttrsToList (k: v: if v.type == "spotify" then ''
-      services.snapserver.streams.${k}.type = "spotify" is deprecated, use services.snapserver.streams.${k}.type = "librespot" instead.
-    '' else "") cfg.streams);
+    warnings =
+      # https://github.com/badaix/snapcast/blob/98ac8b2fb7305084376607b59173ce4097c620d8/server/streamreader/stream_manager.cpp#L85
+      filter (w: w != "") (mapAttrsToList (k: v: if v.type == "spotify" then ''
+        services.snapserver.streams.${k}.type = "spotify" is deprecated, use services.snapserver.streams.${k}.type = "librespot" instead.
+      '' else "") cfg.streams)
+      # Remove this warning after NixOS 22.05 is released.
+      ++ optional (options.services.snapserver.openFirewall.highestPrio >= (mkOptionDefault null).priority) ''
+        services.snapserver.openFirewall will no longer default to true starting with NixOS 22.11.
+        Enable it explicitly if you need to control Snapserver remotely.
+      '';
 
     systemd.services.snapserver = {
       after = [ "network.target" ];
@@ -304,8 +312,8 @@ in {
 
     networking.firewall.allowedTCPPorts =
       optionals cfg.openFirewall [ cfg.port ]
-      ++ optional cfg.tcp.enable cfg.tcp.port
-      ++ optional cfg.http.enable cfg.http.port;
+      ++ optional (cfg.openFirewall && cfg.tcp.enable) cfg.tcp.port
+      ++ optional (cfg.openFirewall && cfg.http.enable) cfg.http.port;
   };
 
   meta = {
diff --git a/nixos/modules/services/continuous-integration/github-runner.nix b/nixos/modules/services/continuous-integration/github-runner.nix
index a7645e1f56e93..30dd919b81a38 100644
--- a/nixos/modules/services/continuous-integration/github-runner.nix
+++ b/nixos/modules/services/continuous-integration/github-runner.nix
@@ -299,6 +299,16 @@ in
         RestrictRealtime = true;
         RestrictSUIDSGID = true;
         UMask = "0066";
+        ProtectProc = "invisible";
+        ProcSubset = "pid";
+        SystemCallFilter = [
+          "~@debug"
+          "~@mount"
+          "~@privileged"
+          "~@cpu-emulation"
+          "~@obsolete"
+        ];
+        RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" "AF_NETLINK" ];
 
         # Needs network access
         PrivateNetwork = false;
diff --git a/nixos/modules/services/databases/cockroachdb.nix b/nixos/modules/services/databases/cockroachdb.nix
index eb061af926219..9a7aebe4f6ae9 100644
--- a/nixos/modules/services/databases/cockroachdb.nix
+++ b/nixos/modules/services/databases/cockroachdb.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, utils, ... }:
 
 with lib;
 
@@ -6,46 +6,44 @@ let
   cfg = config.services.cockroachdb;
   crdb = cfg.package;
 
-  escape    = builtins.replaceStrings ["%"] ["%%"];
-  ifNotNull = v: s: optionalString (v != null) s;
-
-  startupCommand = lib.concatStringsSep " "
-    [ # Basic startup
-      "${crdb}/bin/cockroach start"
+  startupCommand = utils.escapeSystemdExecArgs
+    ([
+      # Basic startup
+      "${crdb}/bin/cockroach"
+      "start"
       "--logtostderr"
       "--store=/var/lib/cockroachdb"
-      (ifNotNull cfg.locality "--locality='${cfg.locality}'")
 
       # WebUI settings
-      "--http-addr='${cfg.http.address}:${toString cfg.http.port}'"
+      "--http-addr=${cfg.http.address}:${toString cfg.http.port}"
 
       # Cluster listen address
-      "--listen-addr='${cfg.listen.address}:${toString cfg.listen.port}'"
-
-      # Cluster configuration
-      (ifNotNull cfg.join "--join=${cfg.join}")
+      "--listen-addr=${cfg.listen.address}:${toString cfg.listen.port}"
 
-      # Cache and memory settings. Must be escaped.
-      "--cache='${escape cfg.cache}'"
-      "--max-sql-memory='${escape cfg.maxSqlMemory}'"
+      # Cache and memory settings.
+      "--cache=${cfg.cache}"
+      "--max-sql-memory=${cfg.maxSqlMemory}"
 
       # Certificate/security settings.
       (if cfg.insecure then "--insecure" else "--certs-dir=${cfg.certsDir}")
-    ];
-
-    addressOption = descr: defaultPort: {
-      address = mkOption {
-        type = types.str;
-        default = "localhost";
-        description = "Address to bind to for ${descr}";
-      };
+    ]
+    ++ lib.optional (cfg.join != null) "--join=${cfg.join}"
+    ++ lib.optional (cfg.locality != null) "--locality=${cfg.locality}"
+    ++ cfg.extraArgs);
+
+  addressOption = descr: defaultPort: {
+    address = mkOption {
+      type = types.str;
+      default = "localhost";
+      description = "Address to bind to for ${descr}";
+    };
 
-      port = mkOption {
-        type = types.port;
-        default = defaultPort;
-        description = "Port to bind to for ${descr}";
-      };
+    port = mkOption {
+      type = types.port;
+      default = defaultPort;
+      description = "Port to bind to for ${descr}";
     };
+  };
 in
 
 {
@@ -159,6 +157,16 @@ in
           only contain open source features and open source code).
         '';
       };
+
+      extraArgs = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        example = [ "--advertise-addr" "[fe80::f6f2:::]" ];
+        description = ''
+          Extra CLI arguments passed to <command>cockroach start</command>.
+          For the full list of supported argumemnts, check <link xlink:href="https://www.cockroachlabs.com/docs/stable/cockroach-start.html#flags"/>
+        '';
+      };
     };
   };
 
diff --git a/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix b/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
index 6027e4f3d4bfe..09761d6300e83 100644
--- a/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
+++ b/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
@@ -58,7 +58,7 @@ in {
             Configuration for the media session core. For details see
             https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/media-session.conf
           '';
-          default = {};
+          default = defaults.media-session;
         };
 
         alsa-monitor = mkOption {
@@ -67,7 +67,7 @@ in {
             Configuration for the alsa monitor. For details see
             https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/alsa-monitor.conf
           '';
-          default = {};
+          default = defaults.alsa-monitor;
         };
 
         bluez-monitor = mkOption {
@@ -76,7 +76,7 @@ in {
             Configuration for the bluez5 monitor. For details see
             https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/bluez-monitor.conf
           '';
-          default = {};
+          default = defaults.bluez-monitor;
         };
 
         v4l2-monitor = mkOption {
@@ -85,7 +85,7 @@ in {
             Configuration for the V4L2 monitor. For details see
             https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/v4l2-monitor.conf
           '';
-          default = {};
+          default = defaults.v4l2-monitor;
         };
       };
     };
diff --git a/nixos/modules/services/editors/haste.nix b/nixos/modules/services/editors/haste.nix
new file mode 100644
index 0000000000000..35fe26766ef7d
--- /dev/null
+++ b/nixos/modules/services/editors/haste.nix
@@ -0,0 +1,86 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  pkg = pkgs.haste-server;
+  cfg = config.services.haste-server;
+
+  format = pkgs.formats.json {};
+in
+{
+  options.services.haste-server = {
+    enable = mkEnableOption "haste-server";
+    openFirewall = mkEnableOption "firewall passthrough for haste-server";
+
+    settings = mkOption {
+      description = ''
+        Configuration for haste-server.
+        For documentation see <link xlink:href="https://github.com/toptal/haste-server#settings">project readme</link>
+      '';
+      type = format.type;
+    };
+  };
+
+  config = mkIf (cfg.enable) {
+    networking.firewall.allowedTCPPorts = mkIf (cfg.openFirewall) [ cfg.settings.port ];
+
+    services.haste-server = {
+      settings = {
+        host = mkDefault "::";
+        port = mkDefault 7777;
+
+        keyLength = mkDefault 10;
+        maxLength = mkDefault 400000;
+
+        staticMaxAge = mkDefault 86400;
+        recompressStaticAssets = mkDefault false;
+
+        logging = mkDefault [
+          {
+            level = "verbose";
+            type = "Console";
+            colorize = true;
+          }
+        ];
+
+        keyGenerator = mkDefault {
+          type = "phonetic";
+        };
+
+        rateLimits = {
+          categories = {
+            normal = {
+              totalRequests = mkDefault 500;
+              every = mkDefault 60000;
+            };
+          };
+        };
+
+        storage = mkDefault {
+          type = "file";
+        };
+
+        documents = {
+          about = mkDefault "${pkg}/share/haste-server/about.md";
+        };
+      };
+    };
+
+    systemd.services.haste-server = {
+      wantedBy = [ "multi-user.target" ];
+      requires = [ "network.target" ];
+      after = [ "network.target" ];
+
+      serviceConfig = {
+        User = "haste-server";
+        DynamicUser = true;
+        StateDirectory = "haste-server";
+        WorkingDirectory = "/var/lib/haste-server";
+        ExecStart = "${pkg}/bin/haste-server ${format.generate "config.json" cfg.settings}";
+      };
+
+      path = with pkgs; [ pkg coreutils ];
+    };
+  };
+}
diff --git a/nixos/modules/services/hardware/udev.nix b/nixos/modules/services/hardware/udev.nix
index 61448af2d33b8..8257eeb673b92 100644
--- a/nixos/modules/services/hardware/udev.nix
+++ b/nixos/modules/services/hardware/udev.nix
@@ -23,17 +23,16 @@ let
   nixosRules = ''
     # Miscellaneous devices.
     KERNEL=="kvm",                  MODE="0666"
-    KERNEL=="kqemu",                MODE="0666"
 
     # Needed for gpm.
     SUBSYSTEM=="input", KERNEL=="mice", TAG+="systemd"
   '';
 
   # Perform substitutions in all udev rules files.
-  udevRules = pkgs.runCommand "udev-rules"
+  udevRulesFor = { name, udevPackages, udevPath, udev, systemd, binPackages, initrdBin ? null }: pkgs.runCommand name
     { preferLocalBuild = true;
       allowSubstitutes = false;
-      packages = unique (map toString cfg.packages);
+      packages = unique (map toString udevPackages);
     }
     ''
       mkdir -p $out
@@ -61,6 +60,9 @@ let
           --replace \"/bin/mount \"${pkgs.util-linux}/bin/mount \
           --replace /usr/bin/readlink ${pkgs.coreutils}/bin/readlink \
           --replace /usr/bin/basename ${pkgs.coreutils}/bin/basename
+      ${optionalString (initrdBin != null) ''
+        substituteInPlace $i --replace '/run/current-system/systemd' "${removeSuffix "/bin" initrdBin}"
+      ''}
       done
 
       echo -n "Checking that all programs called by relative paths in udev rules exist in ${udev}/lib/udev... "
@@ -85,8 +87,9 @@ let
       for i in $import_progs $run_progs; do
         # if the path refers to /run/current-system/systemd, replace with config.systemd.package
         if [[ $i == /run/current-system/systemd* ]]; then
-          i="${config.systemd.package}/''${i#/run/current-system/systemd/}"
+          i="${systemd}/''${i#/run/current-system/systemd/}"
         fi
+
         if [[ ! -x $i ]]; then
           echo "FAIL"
           echo "$i is called in udev rules but is not executable or does not exist"
@@ -103,7 +106,7 @@ let
         echo "Consider fixing the following udev rules:"
         echo "$filesToFixup" | while read localFile; do
           remoteFile="origin unknown"
-          for i in ${toString cfg.packages}; do
+          for i in ${toString binPackages}; do
             for j in "$i"/*/udev/rules.d/*; do
               [ -e "$out/$(basename "$j")" ] || continue
               [ "$(basename "$j")" = "$(basename "$localFile")" ] || continue
@@ -126,7 +129,7 @@ let
       ${optionalString (!config.boot.hardwareScan) ''
         ln -s /dev/null $out/80-drivers.rules
       ''}
-    ''; # */
+    '';
 
   hwdbBin = pkgs.runCommand "hwdb.bin"
     { preferLocalBuild = true;
@@ -202,20 +205,6 @@ in
         '';
       };
 
-      initrdRules = mkOption {
-        default = "";
-        example = ''
-          SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1D:60:B9:6D:4F", KERNEL=="eth*", NAME="my_fast_network_card"
-        '';
-        type = types.lines;
-        description = ''
-          <command>udev</command> rules to include in the initrd
-          <emphasis>only</emphasis>. They'll be written into file
-          <filename>99-local.rules</filename>. Thus they are read and applied
-          after the essential initrd rules.
-        '';
-      };
-
       extraRules = mkOption {
         default = "";
         example = ''
@@ -283,6 +272,52 @@ in
       '';
     };
 
+    boot.initrd.services.udev = {
+
+      packages = mkOption {
+        type = types.listOf types.path;
+        default = [];
+        visible = false;
+        description = ''
+          <emphasis>This will only be used when systemd is used in stage 1.</emphasis>
+
+          List of packages containing <command>udev</command> rules that will be copied to stage 1.
+          All files found in
+          <filename><replaceable>pkg</replaceable>/etc/udev/rules.d</filename> and
+          <filename><replaceable>pkg</replaceable>/lib/udev/rules.d</filename>
+          will be included.
+        '';
+      };
+
+      binPackages = mkOption {
+        type = types.listOf types.path;
+        default = [];
+        visible = false;
+        description = ''
+          <emphasis>This will only be used when systemd is used in stage 1.</emphasis>
+
+          Packages to search for binaries that are referenced by the udev rules in stage 1.
+          This list always contains /bin of the initrd.
+        '';
+        apply = map getBin;
+      };
+
+      rules = mkOption {
+        default = "";
+        example = ''
+          SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1D:60:B9:6D:4F", KERNEL=="eth*", NAME="my_fast_network_card"
+        '';
+        type = types.lines;
+        description = ''
+          <command>udev</command> rules to include in the initrd
+          <emphasis>only</emphasis>. They'll be written into file
+          <filename>99-local.rules</filename>. Thus they are read and applied
+          after the essential initrd rules.
+        '';
+      };
+
+    };
+
   };
 
 
@@ -298,16 +333,54 @@ in
 
     boot.kernelParams = mkIf (!config.networking.usePredictableInterfaceNames) [ "net.ifnames=0" ];
 
-    boot.initrd.extraUdevRulesCommands = optionalString (cfg.initrdRules != "")
+    boot.initrd.extraUdevRulesCommands = optionalString (!config.boot.initrd.systemd.enable && config.boot.initrd.services.udev.rules != "")
       ''
         cat <<'EOF' > $out/99-local.rules
-        ${cfg.initrdRules}
+        ${config.boot.initrd.services.udev.rules}
         EOF
       '';
 
+    boot.initrd.systemd.additionalUpstreamUnits = [
+      # TODO: "initrd-udevadm-cleanup-db.service" is commented out because of https://github.com/systemd/systemd/issues/12953
+      "systemd-udevd-control.socket"
+      "systemd-udevd-kernel.socket"
+      "systemd-udevd.service"
+      "systemd-udev-settle.service"
+      "systemd-udev-trigger.service"
+    ];
+    boot.initrd.systemd.storePaths = [
+      "${config.boot.initrd.systemd.package}/lib/systemd/systemd-udevd"
+      "${config.boot.initrd.systemd.package}/lib/udev"
+    ] ++ map (x: "${x}/bin") config.boot.initrd.services.udev.binPackages;
+
+    # Generate the udev rules for the initrd
+    boot.initrd.systemd.contents = {
+      "/etc/udev/rules.d".source = udevRulesFor {
+        name = "initrd-udev-rules";
+        initrdBin = config.boot.initrd.systemd.contents."/bin".source;
+        udevPackages = config.boot.initrd.services.udev.packages;
+        udevPath = config.boot.initrd.systemd.contents."/bin".source;
+        udev = config.boot.initrd.systemd.package;
+        systemd = config.boot.initrd.systemd.package;
+        binPackages = config.boot.initrd.services.udev.binPackages ++ [ config.boot.initrd.systemd.contents."/bin".source ];
+      };
+    };
+    # Insert custom rules
+    boot.initrd.services.udev.packages = mkIf (config.boot.initrd.services.udev.rules != "") (pkgs.writeTextFile {
+      name = "initrd-udev-rules";
+      destination = "/etc/udev/rules.d/99-local.rules";
+      text = config.boot.initrd.services.udev.rules;
+    });
+
     environment.etc =
       {
-        "udev/rules.d".source = udevRules;
+        "udev/rules.d".source = udevRulesFor {
+          name = "udev-rules";
+          udevPackages = cfg.packages;
+          systemd = config.systemd.package;
+          binPackages = cfg.packages;
+          inherit udevPath udev;
+        };
         "udev/hwdb.bin".source = hwdbBin;
       };
 
@@ -338,4 +411,8 @@ in
       };
 
   };
+
+  imports = [
+    (mkRenamedOptionModule [ "services" "udev" "initrdRules" ] [ "boot" "initrd" "services" "udev" "rules" ])
+  ];
 }
diff --git a/nixos/modules/services/hardware/udisks2.nix b/nixos/modules/services/hardware/udisks2.nix
index 6be23f39754ef..ea552ce867e87 100644
--- a/nixos/modules/services/hardware/udisks2.nix
+++ b/nixos/modules/services/hardware/udisks2.nix
@@ -4,6 +4,13 @@
 
 with lib;
 
+let
+  settingsFormat = pkgs.formats.ini {
+    listToValue = concatMapStringsSep "," (generators.mkValueStringDefault {});
+  };
+  configFiles = mapAttrs (name: value: (settingsFormat.generate name value)) (mapAttrs' (name: value: nameValuePair name value ) config.services.udisks2.settings);
+in
+
 {
 
   ###### interface
@@ -21,6 +28,36 @@ with lib;
         '';
       };
 
+      settings = mkOption rec {
+        type = types.attrsOf settingsFormat.type;
+        apply = recursiveUpdate default;
+        default = {
+          "udisks2.conf" = {
+            udisks2 = {
+              modules = [ "*" ];
+              modules_load_preference = "ondemand";
+            };
+            defaults = {
+              encryption = "luks2";
+            };
+          };
+        };
+        example = literalExpression ''
+        {
+          "WDC-WD10EZEX-60M2NA0-WD-WCC3F3SJ0698.conf" = {
+            ATA = {
+              StandbyTimeout = 50;
+            };
+          };
+        };
+        '';
+        description = ''
+          Options passed to udisksd.
+          See <link xlink:href="http://manpages.ubuntu.com/manpages/latest/en/man5/udisks2.conf.5.html">here</link> and
+          drive configuration in <link xlink:href="http://manpages.ubuntu.com/manpages/latest/en/man8/udisks.8.html">here</link> for supported options.
+        '';
+      };
+
     };
 
   };
@@ -32,6 +69,8 @@ with lib;
 
     environment.systemPackages = [ pkgs.udisks2 ];
 
+    environment.etc = mapAttrs' (name: value: nameValuePair "udisks2/${name}" { source = value; } ) configFiles;
+
     security.polkit.enable = true;
 
     services.dbus.packages = [ pkgs.udisks2 ];
diff --git a/nixos/modules/services/hardware/usbrelayd.nix b/nixos/modules/services/hardware/usbrelayd.nix
new file mode 100644
index 0000000000000..c0322e89e6b12
--- /dev/null
+++ b/nixos/modules/services/hardware/usbrelayd.nix
@@ -0,0 +1,44 @@
+{ config, lib, pkgs, ... }:
+with lib;
+let
+  cfg = config.services.usbrelayd;
+in
+{
+  options.services.usbrelayd = with types; {
+    enable = mkEnableOption "USB Relay MQTT daemon";
+
+    broker = mkOption {
+      type = str;
+      description = "Hostname or IP address of your MQTT Broker.";
+      default = "127.0.0.1";
+      example = [
+        "mqtt"
+        "192.168.1.1"
+      ];
+    };
+
+    clientName = mkOption {
+      type = str;
+      description = "Name, your client connects as.";
+      default = "MyUSBRelay";
+    };
+  };
+
+  config = mkIf cfg.enable {
+
+    # TODO: Rename to .conf in upcomming release
+    environment.etc."usbrelayd.ini".text = ''
+      [MQTT]
+      BROKER = ${cfg.broker}
+      CLIENTNAME = ${cfg.clientName}
+    '';
+
+    services.udev.packages = [ pkgs.usbrelayd ];
+    systemd.packages = [ pkgs.usbrelayd ];
+    users.users.usbrelay = {
+      isSystemUser = true;
+      group = "usbrelay";
+    };
+    users.groups.usbrelay = { };
+  };
+}
diff --git a/nixos/modules/services/logging/klogd.nix b/nixos/modules/services/logging/klogd.nix
index 8d371c161eb18..1de0e58abbb35 100644
--- a/nixos/modules/services/logging/klogd.nix
+++ b/nixos/modules/services/logging/klogd.nix
@@ -1,38 +1,9 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
+{ lib, ... }:
 
 {
-  ###### interface
-
-  options = {
-
-    services.klogd.enable = mkOption {
-      type = types.bool;
-      default = versionOlder (getVersion config.boot.kernelPackages.kernel) "3.5";
-      defaultText = literalExpression ''versionOlder (getVersion config.boot.kernelPackages.kernel) "3.5"'';
-      description = ''
-        Whether to enable klogd, the kernel log message processing
-        daemon.  Since systemd handles logging of kernel messages on
-        Linux 3.5 and later, this is only useful if you're running an
-        older kernel.
-      '';
-    };
-
-  };
-
-
-  ###### implementation
-
-  config = mkIf config.services.klogd.enable {
-    systemd.services.klogd = {
-      description = "Kernel Log Daemon";
-      wantedBy = [ "multi-user.target" ];
-      path = [ pkgs.sysklogd ];
-      unitConfig.ConditionVirtualization = "!systemd-nspawn";
-      script =
-        "klogd -c 1 -2 -n " +
-        "-k $(dirname $(readlink -f /run/booted-system/kernel))/System.map";
-    };
-  };
+  imports = [
+    (lib.mkRemovedOptionModule [ "security" "klogd" "enable" ] ''
+      Logging of kernel messages is now handled by systemd.
+    '')
+  ];
 }
diff --git a/nixos/modules/services/logging/logrotate.nix b/nixos/modules/services/logging/logrotate.nix
index 332a2a597edc1..e6eb0552c9e95 100644
--- a/nixos/modules/services/logging/logrotate.nix
+++ b/nixos/modules/services/logging/logrotate.nix
@@ -162,8 +162,8 @@ let
       # file exist, but we only have sandboxed users here so brown these
       # out. according to man page that means su, create and createolddir.
       # files required to exist also won't be present, so missingok is forced.
-      user=$(${pkgs.coreutils}/bin/id -un)
-      group=$(${pkgs.coreutils}/bin/id -gn)
+      user=$(${pkgs.buildPackages.coreutils}/bin/id -un)
+      group=$(${pkgs.buildPackages.coreutils}/bin/id -gn)
       sed -e "s/\bsu\s.*/su $user $group/" \
           -e "s/\b\(create\s\+[0-9]*\s*\|createolddir\s\+[0-9]*\s\+\).*/\1$user $group/" \
           -e "1imissingok" -e "s/\bnomissingok\b//" \
@@ -173,7 +173,7 @@ let
       # 'error:' at common log level, so we can use grep, taking care
       # to keep error codes
       set -o pipefail
-      if ! ${pkgs.logrotate}/sbin/logrotate --debug /tmp/logrotate.conf 2>&1 \
+      if ! ${pkgs.buildPackages.logrotate}/sbin/logrotate --debug /tmp/logrotate.conf 2>&1 \
           | ( ! grep "error:" ) > /tmp/logrotate-error; then
               echo "Logrotate configuration check failed."
               echo "The failing configuration (after adjustments to pass tests in sandbox) was:"
diff --git a/nixos/modules/services/mail/mailman.nix b/nixos/modules/services/mail/mailman.nix
index 0c9b38b44b24d..f1e074587b31c 100644
--- a/nixos/modules/services/mail/mailman.nix
+++ b/nixos/modules/services/mail/mailman.nix
@@ -192,7 +192,6 @@ in {
         log_dir = "/var/log/mailman";
         lock_dir = "$var_dir/lock";
         etc_dir = "/etc";
-        ext_dir = "$etc_dir/mailman.d";
         pid_file = "/run/mailman/master.pid";
       };
 
@@ -225,7 +224,14 @@ in {
               See <https://mailman.readthedocs.io/en/latest/src/mailman/docs/mta.html>.
             '';
           };
-    in (lib.optionals cfg.enablePostfix [
+    in [
+      { assertion = cfg.webHosts != [];
+        message = ''
+          services.mailman.serve.enable requires there to be at least one entry
+          in services.mailman.webHosts.
+        '';
+      }
+    ] ++ (lib.optionals cfg.enablePostfix [
       { assertion = postfix.enable;
         message = ''
           Mailman's default NixOS configuration requires Postfix to be enabled.
@@ -275,15 +281,14 @@ in {
           globals().update(json.load(f))
     '';
 
-    services.nginx = mkIf cfg.serve.enable {
+    services.nginx = mkIf (cfg.serve.enable && cfg.webHosts != []) {
       enable = mkDefault true;
-      virtualHosts."${lib.head cfg.webHosts}" = {
-        serverAliases = cfg.webHosts;
+      virtualHosts = lib.genAttrs cfg.webHosts (webHost: {
         locations = {
           "/".extraConfig = "uwsgi_pass unix:/run/mailman-web.socket;";
           "/static/".alias = webSettings.STATIC_ROOT + "/";
         };
-      };
+      });
     };
 
     environment.systemPackages = [ (pkgs.buildEnv {
@@ -313,7 +318,9 @@ in {
     systemd.services = {
       mailman = {
         description = "GNU Mailman Master Process";
-        after = [ "network.target" ];
+        before = lib.optional cfg.enablePostfix "postfix.service";
+        after = [ "network.target" ]
+          ++ lib.optional cfg.enablePostfix "postfix-setup.service";
         restartTriggers = [ config.environment.etc."mailman.cfg".source ];
         wantedBy = [ "multi-user.target" ];
         serviceConfig = {
diff --git a/nixos/modules/services/mail/postfix.nix b/nixos/modules/services/mail/postfix.nix
index 23d3574ae27c5..da14b6eef7edf 100644
--- a/nixos/modules/services/mail/postfix.nix
+++ b/nixos/modules/services/mail/postfix.nix
@@ -723,23 +723,10 @@ in
         { ${setgidGroup}.gid = config.ids.gids.postdrop;
         };
 
-      systemd.services.postfix =
-        { description = "Postfix mail server";
-
-          wantedBy = [ "multi-user.target" ];
-          after = [ "network.target" ];
-          path = [ pkgs.postfix ];
-
-          serviceConfig = {
-            Type = "forking";
-            Restart = "always";
-            PIDFile = "/var/lib/postfix/queue/pid/master.pid";
-            ExecStart = "${pkgs.postfix}/bin/postfix start";
-            ExecStop = "${pkgs.postfix}/bin/postfix stop";
-            ExecReload = "${pkgs.postfix}/bin/postfix reload";
-          };
-
-          preStart = ''
+      systemd.services.postfix-setup =
+        { description = "Setup for Postfix mail server";
+          serviceConfig.Type = "oneshot";
+          script = ''
             # Backwards compatibility
             if [ ! -d /var/lib/postfix ] && [ -d /var/postfix ]; then
               mkdir -p /var/lib
@@ -777,6 +764,24 @@ in
           '';
         };
 
+      systemd.services.postfix =
+        { description = "Postfix mail server";
+
+          wantedBy = [ "multi-user.target" ];
+          after = [ "network.target" "postfix-setup.service" ];
+          requires = [ "postfix-setup.service" ];
+          path = [ pkgs.postfix ];
+
+          serviceConfig = {
+            Type = "forking";
+            Restart = "always";
+            PIDFile = "/var/lib/postfix/queue/pid/master.pid";
+            ExecStart = "${pkgs.postfix}/bin/postfix start";
+            ExecStop = "${pkgs.postfix}/bin/postfix stop";
+            ExecReload = "${pkgs.postfix}/bin/postfix reload";
+          };
+        };
+
       services.postfix.config = (mapAttrs (_: v: mkDefault v) {
         compatibility_level  = pkgs.postfix.version;
         mail_owner           = cfg.user;
diff --git a/nixos/modules/services/matrix/matrix-synapse.nix b/nixos/modules/services/matrix/matrix-synapse.nix
index 4abcc8b69bc53..a498aff7a55bb 100644
--- a/nixos/modules/services/matrix/matrix-synapse.nix
+++ b/nixos/modules/services/matrix/matrix-synapse.nix
@@ -81,7 +81,7 @@ in {
     (mkRemovedOptionModule [ "services" "matrix-synapse" "verbose" ] "Use a log config instead." )
 
     # options that were moved into rfc42 style settigns
-    (mkRemovedOptionModule [ "services" "matrix-synapse" "app_service_config_files" ] "Use settings.app_service_config_Files instead" )
+    (mkRemovedOptionModule [ "services" "matrix-synapse" "app_service_config_files" ] "Use settings.app_service_config_files instead" )
     (mkRemovedOptionModule [ "services" "matrix-synapse" "database_args" ] "Use settings.database.args instead" )
     (mkRemovedOptionModule [ "services" "matrix-synapse" "database_name" ] "Use settings.database.args.database instead" )
     (mkRemovedOptionModule [ "services" "matrix-synapse" "database_type" ] "Use settings.database.name instead" )
diff --git a/nixos/modules/services/misc/dendrite.nix b/nixos/modules/services/misc/dendrite.nix
index 89bb989a09ec0..35bec40926ec6 100644
--- a/nixos/modules/services/misc/dendrite.nix
+++ b/nixos/modules/services/misc/dendrite.nix
@@ -247,6 +247,7 @@ in
         WorkingDirectory = workingDir;
         RuntimeDirectory = "dendrite";
         RuntimeDirectoryMode = "0700";
+        LimitNOFILE = 65535;
         EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile;
         ExecStartPre = ''
           ${pkgs.envsubst}/bin/envsubst \
diff --git a/nixos/modules/services/misc/etebase-server.nix b/nixos/modules/services/misc/etebase-server.nix
index dd84ac37b0d5e..cb99364aa1a60 100644
--- a/nixos/modules/services/misc/etebase-server.nix
+++ b/nixos/modules/services/misc/etebase-server.nix
@@ -166,7 +166,7 @@ in
       } ''
         makeWrapper ${pythonEnv}/bin/etebase-server \
           $out/bin/etebase-server \
-          --run "cd ${cfg.dataDir}" \
+          --chdir ${escapeShellArg cfg.dataDir} \
           --prefix ETEBASE_EASY_CONFIG_PATH : "${configIni}"
       '')
     ];
diff --git a/nixos/modules/services/misc/ethminer.nix b/nixos/modules/services/misc/ethminer.nix
index 253476d1a23e5..2236346698288 100644
--- a/nixos/modules/services/misc/ethminer.nix
+++ b/nixos/modules/services/misc/ethminer.nix
@@ -85,7 +85,7 @@ in
   config = mkIf cfg.enable {
 
     systemd.services.ethminer = {
-      path = optional (cfg.toolkit == "cuda") [ pkgs.cudatoolkit ];
+      path = optional (cfg.toolkit == "cuda") [ pkgs.cudaPackages.cudatoolkit ];
       description = "ethminer ethereum mining service";
       wantedBy = [ "multi-user.target" ];
       after = [ "network.target" ];
diff --git a/nixos/modules/services/misc/gitea.nix b/nixos/modules/services/misc/gitea.nix
index bc7bb663ee007..effa0c06ad6c5 100644
--- a/nixos/modules/services/misc/gitea.nix
+++ b/nixos/modules/services/misc/gitea.nix
@@ -499,6 +499,7 @@ in
         oldLfsJwtSecret = "${cfg.stateDir}/custom/conf/jwt_secret"; # old file for LFS_JWT_SECRET
         lfsJwtSecret = "${cfg.stateDir}/custom/conf/lfs_jwt_secret"; # new file for LFS_JWT_SECRET
         internalToken = "${cfg.stateDir}/custom/conf/internal_token";
+        replaceSecretBin = "${pkgs.replace-secret}/bin/replace-secret";
       in ''
         # copy custom configuration and generate a random secret key if needed
         ${optionalString (cfg.useWizard == false) ''
@@ -526,23 +527,17 @@ in
                 ${gitea}/bin/gitea generate secret INTERNAL_TOKEN > ${internalToken}
             fi
 
-            SECRETKEY="$(head -n1 ${secretKey})"
-            DBPASS="$(head -n1 ${cfg.database.passwordFile})"
-            OAUTH2JWTSECRET="$(head -n1 ${oauth2JwtSecret})"
-            LFSJWTSECRET="$(head -n1 ${lfsJwtSecret})"
-            INTERNALTOKEN="$(head -n1 ${internalToken})"
-            ${if (cfg.mailerPasswordFile == null) then ''
-              MAILERPASSWORD="#mailerpass#"
-            '' else ''
-              MAILERPASSWORD="$(head -n1 ${cfg.mailerPasswordFile} || :)"
+            chmod u+w '${runConfig}'
+            ${replaceSecretBin} '#secretkey#' '${secretKey}' '${runConfig}'
+            ${replaceSecretBin} '#dbpass#' '${cfg.database.passwordFile}' '${runConfig}'
+            ${replaceSecretBin} '#oauth2jwtsecret#' '${oauth2JwtSecret}' '${runConfig}'
+            ${replaceSecretBin} '#lfsjwtsecret#' '${lfsJwtSecret}' '${runConfig}'
+            ${replaceSecretBin} '#internaltoken#' '${internalToken}' '${runConfig}'
+
+            ${lib.optionalString (cfg.mailerPasswordFile != null) ''
+              ${replaceSecretBin} '#mailerpass#' '${cfg.mailerPasswordFile}' '${runConfig}'
             ''}
-            sed -e "s,#secretkey#,$SECRETKEY,g" \
-                -e "s,#dbpass#,$DBPASS,g" \
-                -e "s,#oauth2jwtsecret#,$OAUTH2JWTSECRET,g" \
-                -e "s,#lfsjwtsecret#,$LFSJWTSECRET,g" \
-                -e "s,#internaltoken#,$INTERNALTOKEN,g" \
-                -e "s,#mailerpass#,$MAILERPASSWORD,g" \
-                -i ${runConfig}
+            chmod u-w '${runConfig}'
           }
           (umask 027; gitea_setup)
         ''}
diff --git a/nixos/modules/services/misc/gitit.nix b/nixos/modules/services/misc/gitit.nix
index ceb186c0f0492..87dd97166b8eb 100644
--- a/nixos/modules/services/misc/gitit.nix
+++ b/nixos/modules/services/misc/gitit.nix
@@ -10,7 +10,7 @@ let
 
   toYesNo = b: if b then "yes" else "no";
 
-  gititShared = with cfg.haskellPackages; gitit + "/share/" + pkgs.stdenv.hostPlatform.system + "-" + ghc.name + "/" + gitit.pname + "-" + gitit.version;
+  gititShared = with cfg.haskellPackages; gitit + "/share/" + ghc.targetPrefix + ghc.haskellCompilerName + "/" + gitit.pname + "-" + gitit.version;
 
   gititWithPkgs = hsPkgs: extras: hsPkgs.ghcWithPackages (self: with self; [ gitit ] ++ (extras self));
 
diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix
index 488c3be7b653a..0811b34156e49 100644
--- a/nixos/modules/services/misc/gitlab.nix
+++ b/nixos/modules/services/misc/gitlab.nix
@@ -179,7 +179,7 @@ let
           ${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \
           --set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar postgresqlPackage pkgs.coreutils pkgs.procps ]}:$PATH' \
           --set RAKEOPT '-f ${cfg.packages.gitlab}/share/gitlab/Rakefile' \
-          --run 'cd ${cfg.packages.gitlab}/share/gitlab'
+          --chdir '${cfg.packages.gitlab}/share/gitlab'
      '';
   };
 
@@ -193,7 +193,7 @@ let
       makeWrapper ${cfg.packages.gitlab.rubyEnv}/bin/rails $out/bin/gitlab-rails \
           ${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \
           --set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar postgresqlPackage pkgs.coreutils pkgs.procps ]}:$PATH' \
-          --run 'cd ${cfg.packages.gitlab}/share/gitlab'
+          --chdir '${cfg.packages.gitlab}/share/gitlab'
      '';
   };
 
diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix
index 4bc5b04d3a08b..a4d2d10af70f4 100644
--- a/nixos/modules/services/misc/nix-daemon.nix
+++ b/nixos/modules/services/misc/nix-daemon.nix
@@ -708,6 +708,14 @@ in
 
     systemd.packages = [ nixPackage ];
 
+    # Will only work once https://github.com/NixOS/nix/pull/6285 is merged
+    # systemd.tmpfiles.packages = [ nixPackage ];
+
+    # Can be dropped for Nix > https://github.com/NixOS/nix/pull/6285
+    systemd.tmpfiles.rules = [
+      "d /nix/var/nix/daemon-socket 0755 root root - -"
+    ];
+
     systemd.sockets.nix-daemon.wantedBy = [ "sockets.target" ];
 
     systemd.services.nix-daemon =
diff --git a/nixos/modules/services/misc/paperless-ng.nix b/nixos/modules/services/misc/paperless.nix
index 881fa93c04eed..bfaf842fb464f 100644
--- a/nixos/modules/services/misc/paperless-ng.nix
+++ b/nixos/modules/services/misc/paperless.nix
@@ -2,11 +2,13 @@
 
 with lib;
 let
-  cfg = config.services.paperless-ng;
+  cfg = config.services.paperless;
 
   defaultUser = "paperless";
 
-  hasCustomRedis = hasAttr "PAPERLESS_REDIS" cfg.extraConfig;
+  # Don't start a redis instance if the user sets a custom redis connection
+  enableRedis = !hasAttr "PAPERLESS_REDIS" cfg.extraConfig;
+  redisServer = config.services.redis.servers.paperless;
 
   env = {
     PAPERLESS_DATA_DIR = cfg.dataDir;
@@ -15,15 +17,15 @@ let
     GUNICORN_CMD_ARGS = "--bind=${cfg.address}:${toString cfg.port}";
   } // (
     lib.mapAttrs (_: toString) cfg.extraConfig
-  ) // (optionalAttrs (!hasCustomRedis) {
-    PAPERLESS_REDIS = "unix://${config.services.redis.servers.paperless-ng.unixSocket}";
+  ) // (optionalAttrs enableRedis {
+    PAPERLESS_REDIS = "unix://${redisServer.unixSocket}";
   });
 
   manage = let
     setupEnv = lib.concatStringsSep "\n" (mapAttrsToList (name: val: "export ${name}=\"${val}\"") env);
   in pkgs.writeShellScript "manage" ''
     ${setupEnv}
-    exec ${cfg.package}/bin/paperless-ng "$@"
+    exec ${cfg.package}/bin/paperless-ngx "$@"
   '';
 
   # Secure the services
@@ -36,7 +38,7 @@ let
       "-/etc/hosts"
       "-/etc/localtime"
       "-/run/postgresql"
-    ] ++ (optional (!hasCustomRedis) config.services.redis.servers.paperless-ng.unixSocket);
+    ] ++ (optional enableRedis redisServer.unixSocket);
     BindPaths = [
       cfg.consumptionDir
       cfg.dataDir
@@ -53,7 +55,6 @@ let
     PrivateNetwork = true;
     PrivateTmp = true;
     PrivateUsers = true;
-    ProcSubset = "pid";
     ProtectClock = true;
     # Breaks if the home dir of the user is in /home
     # Also does not add much value in combination with the TemporaryFileSystem.
@@ -66,11 +67,15 @@ let
     ProtectKernelModules = true;
     ProtectKernelTunables = true;
     ProtectProc = "invisible";
+    # Don't restrict ProcSubset because django-q requires read access to /proc/stat
+    # to query CPU and memory information.
+    # Note that /proc only contains processes of user `paperless`, so this is safe.
+    # ProcSubset = "pid";
     RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
     RestrictNamespaces = true;
     RestrictRealtime = true;
     RestrictSUIDSGID = true;
-    SupplementaryGroups = optional (!hasCustomRedis) config.services.redis.servers.paperless-ng.user;
+    SupplementaryGroups = optional enableRedis redisServer.user;
     SystemCallArchitectures = "native";
     SystemCallFilter = [ "@system-service" "~@privileged @resources @setuid @keyring" ];
     # Does not work well with the temporary root
@@ -81,26 +86,22 @@ in
   meta.maintainers = with maintainers; [ earvstedt Flakebi ];
 
   imports = [
-    (mkRemovedOptionModule [ "services" "paperless"] ''
-      The paperless module has been removed as the upstream project died.
-      Users should migrate to the paperless-ng module (services.paperless-ng).
-      More information can be found in the NixOS 21.11 release notes.
-    '')
+    (mkRenamedOptionModule [ "services" "paperless-ng" ] [ "services" "paperless" ])
   ];
 
-  options.services.paperless-ng = {
+  options.services.paperless = {
     enable = mkOption {
       type = lib.types.bool;
       default = false;
       description = ''
-        Enable Paperless-ng.
+        Enable Paperless.
 
         When started, the Paperless database is automatically created if it doesn't
         exist and updated if the Paperless package has changed.
         Both tasks are achieved by running a Django migration.
 
         A script to manage the Paperless instance (by wrapping Django's manage.py) is linked to
-        <literal>''${dataDir}/paperless-ng-manage</literal>.
+        <literal>''${dataDir}/paperless-manage</literal>.
       '';
     };
 
@@ -133,13 +134,13 @@ in
     passwordFile = mkOption {
       type = types.nullOr types.path;
       default = null;
-      example = "/run/keys/paperless-ng-password";
+      example = "/run/keys/paperless-password";
       description = ''
         A file containing the superuser password.
 
         A superuser is required to access the web interface.
         If unset, you can create a superuser manually by running
-        <literal>''${dataDir}/paperless-ng-manage createsuperuser</literal>.
+        <literal>''${dataDir}/paperless-manage createsuperuser</literal>.
 
         The default superuser name is <literal>admin</literal>. To change it, set
         option <option>extraConfig.PAPERLESS_ADMIN_USER</option>.
@@ -168,9 +169,9 @@ in
       type = types.attrs;
       default = {};
       description = ''
-        Extra paperless-ng config options.
+        Extra paperless config options.
 
-        See <link xlink:href="https://paperless-ng.readthedocs.io/en/latest/configuration.html">the documentation</link>
+        See <link xlink:href="https://paperless-ngx.readthedocs.io/en/latest/configuration.html">the documentation</link>
         for available options.
       '';
       example = literalExpression ''
@@ -188,15 +189,14 @@ in
 
     package = mkOption {
       type = types.package;
-      default = pkgs.paperless-ng;
-      defaultText = literalExpression "pkgs.paperless-ng";
+      default = pkgs.paperless-ngx;
+      defaultText = literalExpression "pkgs.paperless-ngx";
       description = "The Paperless package to use.";
     };
   };
 
   config = mkIf cfg.enable {
-    # Enable redis if no special url is set
-    services.redis.servers.paperless-ng.enable = mkIf (!hasCustomRedis) true;
+    services.redis.servers.paperless.enable = mkIf enableRedis true;
 
     systemd.tmpfiles.rules = [
       "d '${cfg.dataDir}' - ${cfg.user} ${config.users.users.${cfg.user}.group} - -"
@@ -208,11 +208,11 @@ in
       )
     ];
 
-    systemd.services.paperless-ng-server = {
-      description = "Paperless document server";
+    systemd.services.paperless-scheduler = {
+      description = "Paperless scheduler";
       serviceConfig = defaultServiceConfig // {
         User = cfg.user;
-        ExecStart = "${cfg.package}/bin/paperless-ng qcluster";
+        ExecStart = "${cfg.package}/bin/paperless-ngx qcluster";
         Restart = "on-failure";
         # The `mbind` syscall is needed for running the classifier.
         SystemCallFilter = defaultServiceConfig.SystemCallFilter ++ [ "mbind" ];
@@ -221,15 +221,15 @@ in
       };
       environment = env;
       wantedBy = [ "multi-user.target" ];
-      wants = [ "paperless-ng-consumer.service" "paperless-ng-web.service" ];
+      wants = [ "paperless-consumer.service" "paperless-web.service" ];
 
       preStart = ''
-        ln -sf ${manage} ${cfg.dataDir}/paperless-ng-manage
+        ln -sf ${manage} ${cfg.dataDir}/paperless-manage
 
         # Auto-migrate on first run or if the package has changed
         versionFile="${cfg.dataDir}/src-version"
         if [[ $(cat "$versionFile" 2>/dev/null) != ${cfg.package} ]]; then
-          ${cfg.package}/bin/paperless-ng migrate
+          ${cfg.package}/bin/paperless-ngx migrate
           echo ${cfg.package} > "$versionFile"
         fi
       ''
@@ -240,20 +240,18 @@ in
         superuserStateFile="${cfg.dataDir}/superuser-state"
 
         if [[ $(cat "$superuserStateFile" 2>/dev/null) != $superuserState ]]; then
-          ${cfg.package}/bin/paperless-ng manage_superuser
+          ${cfg.package}/bin/paperless-ngx manage_superuser
           echo "$superuserState" > "$superuserStateFile"
         fi
       '';
-    } // optionalAttrs (!hasCustomRedis) {
-      after = [ "redis-paperless-ng.service" ];
+    } // optionalAttrs enableRedis {
+      after = [ "redis-paperless.service" ];
     };
 
-    # Password copying can't be implemented as a privileged preStart script
-    # in 'paperless-ng-server' because 'defaultServiceConfig' limits the filesystem
-    # paths accessible by the service.
-    systemd.services.paperless-ng-copy-password = mkIf (cfg.passwordFile != null) {
-      requiredBy = [ "paperless-ng-server.service" ];
-      before = [ "paperless-ng-server.service" ];
+    # Reading the user-provided password file requires root access
+    systemd.services.paperless-copy-password = mkIf (cfg.passwordFile != null) {
+      requiredBy = [ "paperless-scheduler.service" ];
+      before = [ "paperless-scheduler.service" ];
       serviceConfig = {
         ExecStart = ''
           ${pkgs.coreutils}/bin/install --mode 600 --owner '${cfg.user}' --compare \
@@ -263,27 +261,27 @@ in
       };
     };
 
-    systemd.services.paperless-ng-consumer = {
+    systemd.services.paperless-consumer = {
       description = "Paperless document consumer";
       serviceConfig = defaultServiceConfig // {
         User = cfg.user;
-        ExecStart = "${cfg.package}/bin/paperless-ng document_consumer";
+        ExecStart = "${cfg.package}/bin/paperless-ngx document_consumer";
         Restart = "on-failure";
       };
       environment = env;
-      # Bind to `paperless-ng-server` so that the consumer never runs
+      # Bind to `paperless-scheduler` so that the consumer never runs
       # during migrations
-      bindsTo = [ "paperless-ng-server.service" ];
-      after = [ "paperless-ng-server.service" ];
+      bindsTo = [ "paperless-scheduler.service" ];
+      after = [ "paperless-scheduler.service" ];
     };
 
-    systemd.services.paperless-ng-web = {
+    systemd.services.paperless-web = {
       description = "Paperless web server";
       serviceConfig = defaultServiceConfig // {
         User = cfg.user;
         ExecStart = ''
           ${pkgs.python3Packages.gunicorn}/bin/gunicorn \
-            -c ${cfg.package}/lib/paperless-ng/gunicorn.conf.py paperless.asgi:application
+            -c ${cfg.package}/lib/paperless-ngx/gunicorn.conf.py paperless.asgi:application
         '';
         Restart = "on-failure";
 
@@ -296,15 +294,15 @@ in
       };
       environment = env // {
         PATH = mkForce cfg.package.path;
-        PYTHONPATH = "${cfg.package.pythonPath}:${cfg.package}/lib/paperless-ng/src";
+        PYTHONPATH = "${cfg.package.pythonPath}:${cfg.package}/lib/paperless-ngx/src";
       };
       # Allow the web interface to access the private /tmp directory of the server.
       # This is required to support uploading files via the web interface.
-      unitConfig.JoinsNamespaceOf = "paperless-ng-server.service";
-      # Bind to `paperless-ng-server` so that the web server never runs
+      unitConfig.JoinsNamespaceOf = "paperless-scheduler.service";
+      # Bind to `paperless-scheduler` so that the web server never runs
       # during migrations
-      bindsTo = [ "paperless-ng-server.service" ];
-      after = [ "paperless-ng-server.service" ];
+      bindsTo = [ "paperless-scheduler.service" ];
+      after = [ "paperless-scheduler.service" ];
     };
 
     users = optionalAttrs (cfg.user == defaultUser) {
diff --git a/nixos/modules/services/misc/sourcehut/default.nix b/nixos/modules/services/misc/sourcehut/default.nix
index 21551d7d5f033..5a6d011a729a3 100644
--- a/nixos/modules/services/misc/sourcehut/default.nix
+++ b/nixos/modules/services/misc/sourcehut/default.nix
@@ -1018,7 +1018,7 @@ in
       inherit configIniOfService;
       mainService = mkMerge [ baseService {
         serviceConfig.StateDirectory = [ "sourcehut/gitsrht" "sourcehut/gitsrht/repos" ];
-        preStart = mkIf (!versionAtLeast config.system.stateVersion "22.05") (mkBefore ''
+        preStart = mkIf (versionOlder config.system.stateVersion "22.05") (mkBefore ''
           # Fix Git hooks of repositories pre-dating https://github.com/NixOS/nixpkgs/pull/133984
           (
           set +f
diff --git a/nixos/modules/services/misc/taskserver/default.nix b/nixos/modules/services/misc/taskserver/default.nix
index ff63c41e193c6..e20804929981f 100644
--- a/nixos/modules/services/misc/taskserver/default.nix
+++ b/nixos/modules/services/misc/taskserver/default.nix
@@ -106,7 +106,7 @@ let
 
   certtool = "${pkgs.gnutls.bin}/bin/certtool";
 
-  nixos-taskserver = with pkgs.python2.pkgs; buildPythonApplication {
+  nixos-taskserver = with pkgs.python3.pkgs; buildPythonApplication {
     name = "nixos-taskserver";
 
     src = pkgs.runCommand "nixos-taskserver-src" { preferLocalBuild = true; } ''
@@ -277,10 +277,6 @@ in {
         example = "::";
         description = ''
           The address (IPv4, IPv6 or DNS) to listen on.
-
-          If the value is something else than <literal>localhost</literal> the
-          port defined by <option>listenPort</option> is automatically added to
-          <option>networking.firewall.allowedTCPPorts</option>.
         '';
       };
 
@@ -292,6 +288,14 @@ in {
         '';
       };
 
+      openFirewall = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to open the firewall for the specified Taskserver port.
+        '';
+      };
+
       fqdn = mkOption {
         type = types.str;
         default = "localhost";
@@ -560,7 +564,7 @@ in {
         '';
       };
     })
-    (mkIf (cfg.enable && cfg.listenHost != "localhost") {
+    (mkIf (cfg.enable && cfg.openFirewall) {
       networking.firewall.allowedTCPPorts = [ cfg.listenPort ];
     })
   ];
diff --git a/nixos/modules/services/misc/taskserver/helper-tool.py b/nixos/modules/services/misc/taskserver/helper-tool.py
index 22a3d8d5311be..fec05728b2b6b 100644
--- a/nixos/modules/services/misc/taskserver/helper-tool.py
+++ b/nixos/modules/services/misc/taskserver/helper-tool.py
@@ -90,7 +90,7 @@ def certtool_cmd(*args, **kwargs):
     """
     return subprocess.check_output(
         [CERTTOOL_COMMAND] + list(args),
-        preexec_fn=lambda: os.umask(0077),
+        preexec_fn=lambda: os.umask(0o077),
         stderr=subprocess.STDOUT,
         **kwargs
     )
@@ -164,7 +164,7 @@ def generate_key(org, user):
     pubcert = os.path.join(basedir, "public.cert")
 
     try:
-        os.makedirs(basedir, mode=0700)
+        os.makedirs(basedir, mode=0o700)
 
         certtool_cmd("-p", "--bits", CERT_BITS, "--outfile", privkey)
 
@@ -301,7 +301,7 @@ class Organisation(object):
             return None
         if name not in self.users.keys():
             output = taskd_cmd("add", "user", self.name, name,
-                               capture_stdout=True)
+                               capture_stdout=True, encoding='utf-8')
             key = RE_USERKEY.search(output)
             if key is None:
                 msg = "Unable to find key while creating user {}."
@@ -412,9 +412,9 @@ class Manager(object):
         if org is not None:
             if self.ignore_imperative and is_imperative(name):
                 return
-            for user in org.users.keys():
+            for user in list(org.users.keys()):
                 org.del_user(user)
-            for group in org.groups.keys():
+            for group in list(org.groups.keys()):
                 org.del_group(group)
             taskd_cmd("remove", "org", name)
             del self._lazy_orgs[name]
diff --git a/nixos/modules/services/monitoring/nagios.nix b/nixos/modules/services/monitoring/nagios.nix
index 2c7f0ed196688..69173ce4e44ed 100644
--- a/nixos/modules/services/monitoring/nagios.nix
+++ b/nixos/modules/services/monitoring/nagios.nix
@@ -102,8 +102,8 @@ in
 
       plugins = mkOption {
         type = types.listOf types.package;
-        default = with pkgs; [ monitoring-plugins ssmtp mailutils ];
-        defaultText = literalExpression "[pkgs.monitoring-plugins pkgs.ssmtp pkgs.mailutils]";
+        default = with pkgs; [ monitoring-plugins msmtp mailutils ];
+        defaultText = literalExpression "[pkgs.monitoring-plugins pkgs.msmtp pkgs.mailutils]";
         description = "
           Packages to be added to the Nagios <envar>PATH</envar>.
           Typically used to add plugins, but can be anything.
diff --git a/nixos/modules/services/monitoring/prometheus/default.nix b/nixos/modules/services/monitoring/prometheus/default.nix
index f563861b61c08..52525e8935bae 100644
--- a/nixos/modules/services/monitoring/prometheus/default.nix
+++ b/nixos/modules/services/monitoring/prometheus/default.nix
@@ -74,7 +74,6 @@ let
     }"
     "--web.listen-address=${cfg.listenAddress}:${builtins.toString cfg.port}"
     "--alertmanager.notification-queue-capacity=${toString cfg.alertmanagerNotificationQueueCapacity}"
-    "--alertmanager.timeout=${toString cfg.alertmanagerTimeout}s"
   ] ++ optional (cfg.webExternalUrl != null) "--web.external-url=${cfg.webExternalUrl}"
     ++ optional (cfg.retentionTime != null) "--storage.tsdb.retention.time=${cfg.retentionTime}";
 
@@ -1563,6 +1562,8 @@ in
     (mkRenamedOptionModule [ "services" "prometheus2" ] [ "services" "prometheus" ])
     (mkRemovedOptionModule [ "services" "prometheus" "environmentFile" ]
       "It has been removed since it was causing issues (https://github.com/NixOS/nixpkgs/issues/126083) and Prometheus now has native support for secret files, i.e. `basic_auth.password_file` and `authorization.credentials_file`.")
+    (mkRemovedOptionModule [ "services" "prometheus" "alertmanagerTimeout" ]
+      "Deprecated upstream and no longer had any effect")
   ];
 
   options.services.prometheus = {
@@ -1719,14 +1720,6 @@ in
       '';
     };
 
-    alertmanagerTimeout = mkOption {
-      type = types.int;
-      default = 10;
-      description = ''
-        Alert manager HTTP API timeout (in seconds).
-      '';
-    };
-
     webExternalUrl = mkOption {
       type = types.nullOr types.str;
       default = null;
diff --git a/nixos/modules/services/monitoring/prometheus/exporters.xml b/nixos/modules/services/monitoring/prometheus/exporters.xml
index c2d4b05996a4b..1df88bb61a12d 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters.xml
+++ b/nixos/modules/services/monitoring/prometheus/exporters.xml
@@ -19,6 +19,7 @@
 <programlisting>
   services.prometheus.exporters.node = {
     enable = true;
+    port = 9100;
     enabledCollectors = [
       "logind"
       "systemd"
@@ -42,6 +43,26 @@
    <link xlink:href="https://nixos.org/nixos/options.html#prometheus.exporters">available
    options</link>.
   </para>
+
+  <para>
+    Prometheus can now be configured to consume the metrics produced by the exporter:
+    <programlisting>
+    services.prometheus = {
+      # ...
+
+      scrapeConfigs = [
+        {
+          job_name = "node";
+          static_configs = [{
+            targets = [ "localhost:${toString config.services.prometheus.exporters.node.port}" ];
+          }];
+        }
+      ];
+
+      # ...
+    }
+    </programlisting>
+  </para>
  </section>
  <section xml:id="module-services-prometheus-exporters-new-exporter">
   <title>Adding a new exporter</title>
diff --git a/nixos/modules/services/network-filesystems/ipfs.nix b/nixos/modules/services/network-filesystems/ipfs.nix
index 7e96179b3cabf..395b9788855ff 100644
--- a/nixos/modules/services/network-filesystems/ipfs.nix
+++ b/nixos/modules/services/network-filesystems/ipfs.nix
@@ -1,8 +1,7 @@
-{ config, lib, pkgs, options, utils, ... }:
+{ config, lib, pkgs, utils, ... }:
 with lib;
 let
   cfg = config.services.ipfs;
-  opt = options.services.ipfs;
 
   ipfsFlags = utils.escapeSystemdExecArgs (
     optional cfg.autoMount "--mount" ++
@@ -255,23 +254,27 @@ in
         else
           # After an unclean shutdown this file may exist which will cause the config command to attempt to talk to the daemon. This will hang forever if systemd is holding our sockets open.
           rm -vf "$IPFS_PATH/api"
-
+      '' + optionalString cfg.autoMigrate ''
+        ${pkgs.ipfs-migrator}/bin/fs-repo-migrations -to '${cfg.package.repoVersion}' -y
+      '' + ''
           ipfs --offline config profile apply ${profile}
         fi
       '' + optionalString cfg.autoMount ''
         ipfs --offline config Mounts.FuseAllowOther --json true
         ipfs --offline config Mounts.IPFS ${cfg.ipfsMountDir}
         ipfs --offline config Mounts.IPNS ${cfg.ipnsMountDir}
-      '' + optionalString cfg.autoMigrate ''
-        ${pkgs.ipfs-migrator}/bin/fs-repo-migrations -to '${cfg.package.repoVersion}' -y
       '' + ''
         ipfs --offline config show \
           | ${pkgs.jq}/bin/jq '. * $extraConfig' --argjson extraConfig ${
-              escapeShellArg (builtins.toJSON ({
-                Addresses.API = cfg.apiAddress;
-                Addresses.Gateway = cfg.gatewayAddress;
-                Addresses.Swarm = cfg.swarmAddress;
-              } // cfg.extraConfig))
+              escapeShellArg (builtins.toJSON (
+                recursiveUpdate
+                  {
+                    Addresses.API = cfg.apiAddress;
+                    Addresses.Gateway = cfg.gatewayAddress;
+                    Addresses.Swarm = cfg.swarmAddress;
+                  }
+                  cfg.extraConfig
+              ))
             } \
           | ipfs --offline config replace -
       '';
@@ -312,6 +315,9 @@ in
         in
         [ "" "%t/ipfs.sock" ] ++ lib.optional (fromCfg != null) fromCfg;
     };
+  };
 
+  meta = {
+    maintainers = with lib.maintainers; [ Luflosi ];
   };
 }
diff --git a/nixos/modules/services/networking/bird.nix b/nixos/modules/services/networking/bird.nix
index 3049c4f2bce9d..d409f06022897 100644
--- a/nixos/modules/services/networking/bird.nix
+++ b/nixos/modules/services/networking/bird.nix
@@ -68,8 +68,7 @@ in
     systemd.services.bird2 = {
       description = "BIRD Internet Routing Daemon";
       wantedBy = [ "multi-user.target" ];
-      reloadIfChanged = true;
-      restartTriggers = [ config.environment.etc."bird/bird2.conf".source ];
+      reloadTriggers = [ config.environment.etc."bird/bird2.conf".source ];
       serviceConfig = {
         Type = "forking";
         Restart = "on-failure";
diff --git a/nixos/modules/services/networking/consul.nix b/nixos/modules/services/networking/consul.nix
index ca9c422e6d7cb..cb53cc01f52dd 100644
--- a/nixos/modules/services/networking/consul.nix
+++ b/nixos/modules/services/networking/consul.nix
@@ -80,13 +80,21 @@ in
             The name of the interface to pull the bind_addr from.
           '';
         };
+      };
 
+      forceAddrFamily = mkOption {
+        type = types.enum [ "any" "ipv4" "ipv6" ];
+        default = "any";
+        description = ''
+          Whether to bind ipv4/ipv6 or both kind of addresses.
+        '';
       };
 
       forceIpv4 = mkOption {
-        type = types.bool;
-        default = false;
+        type = types.nullOr types.bool;
+        default = null;
         description = ''
+          Deprecated: Use consul.forceAddrFamily instead.
           Whether we should force the interfaces to only pull ipv4 addresses.
         '';
       };
@@ -175,6 +183,13 @@ in
         systemPackages = [ cfg.package ];
       };
 
+      warnings = lib.flatten [
+        (lib.optional (cfg.forceIpv4 != null) ''
+          The option consul.forceIpv4 is deprecated, please use
+          consul.forceAddrFamily instead.
+        '')
+      ];
+
       systemd.services.consul = {
         wantedBy = [ "multi-user.target" ];
         after = [ "network.target" ] ++ systemdDevices;
@@ -196,15 +211,21 @@ in
         });
 
         path = with pkgs; [ iproute2 gnugrep gawk consul ];
-        preStart = ''
+        preStart = let
+          family = if cfg.forceAddrFamily == "ipv6" then
+            "-6"
+          else if cfg.forceAddrFamily == "ipv4" then
+            "-4"
+          else
+            "";
+        in ''
           mkdir -m 0700 -p ${dataDir}
           chown -R consul ${dataDir}
 
           # Determine interface addresses
           getAddrOnce () {
-            ip addr show dev "$1" \
-              | grep 'inet${optionalString (cfg.forceIpv4) " "}.*scope global' \
-              | awk -F '[ /\t]*' '{print $3}' | head -n 1
+            ip ${family} addr show dev "$1" scope global \
+              | awk -F '[ /\t]*' '/inet/ {print $3}' | head -n 1
           }
           getAddr () {
             ADDR="$(getAddrOnce $1)"
@@ -234,6 +255,11 @@ in
       };
     }
 
+    # deprecated
+    (mkIf (cfg.forceIpv4 != null && cfg.forceIpv4) {
+      services.consul.forceAddrFamily = "ipv4";
+    })
+
     (mkIf (cfg.alerts.enable) {
       systemd.services.consul-alerts = {
         wantedBy = [ "multi-user.target" ];
diff --git a/nixos/modules/services/networking/create_ap.nix b/nixos/modules/services/networking/create_ap.nix
new file mode 100644
index 0000000000000..a3c330fab0075
--- /dev/null
+++ b/nixos/modules/services/networking/create_ap.nix
@@ -0,0 +1,50 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.create_ap;
+  configFile = pkgs.writeText "create_ap.conf" (generators.toKeyValue { } cfg.settings);
+in {
+  options = {
+    services.create_ap = {
+      enable = mkEnableOption "setup wifi hotspots using create_ap";
+      settings = mkOption {
+        type = with types; attrsOf (oneOf [ int bool str ]);
+        default = {};
+        description = ''
+          Configuration for <package>create_ap</package>.
+          See <link xlink:href="https://raw.githubusercontent.com/lakinduakash/linux-wifi-hotspot/master/src/scripts/create_ap.conf">upstream example configuration</link>
+          for supported values.
+        '';
+        example = {
+          INTERNET_IFACE = "eth0";
+          WIFI_IFACE = "wlan0";
+          SSID = "My Wifi Hotspot";
+          PASSPHRASE = "12345678";
+        };
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+
+    systemd = {
+      services.create_ap = {
+        wantedBy = [ "multi-user.target" ];
+        description = "Create AP Service";
+        after = [ "network.target" ];
+        restartTriggers = [ configFile ];
+        serviceConfig = {
+          ExecStart = "${pkgs.linux-wifi-hotspot}/bin/create_ap --config ${configFile}";
+          KillSignal = "SIGINT";
+          Restart = "on-failure";
+        };
+      };
+    };
+
+  };
+
+  meta.maintainers = with lib.maintainers; [ onny ];
+
+}
diff --git a/nixos/modules/services/networking/envoy.nix b/nixos/modules/services/networking/envoy.nix
new file mode 100644
index 0000000000000..b7f859c73d9dd
--- /dev/null
+++ b/nixos/modules/services/networking/envoy.nix
@@ -0,0 +1,84 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.envoy;
+  format = pkgs.formats.json { };
+  conf = format.generate "envoy.json" cfg.settings;
+  validateConfig = file:
+    pkgs.runCommand "validate-envoy-conf" { } ''
+      ${pkgs.envoy}/bin/envoy --log-level error --mode validate -c "${file}"
+      cp "${file}" "$out"
+    '';
+
+in
+
+{
+  options.services.envoy = {
+    enable = mkEnableOption "Envoy reverse proxy";
+
+    settings = mkOption {
+      type = format.type;
+      default = { };
+      example = literalExpression ''
+        {
+          admin = {
+            access_log_path = "/dev/null";
+            address = {
+              socket_address = {
+                protocol = "TCP";
+                address = "127.0.0.1";
+                port_value = 9901;
+              };
+            };
+          };
+          static_resources = {
+            listeners = [];
+            clusters = [];
+          };
+        }
+      '';
+      description = ''
+        Specify the configuration for Envoy in Nix.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = [ pkgs.envoy ];
+    systemd.services.envoy = {
+      description = "Envoy reverse proxy";
+      after = [ "network-online.target" ];
+      requires = [ "network-online.target" ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        ExecStart = "${pkgs.envoy}/bin/envoy -c ${validateConfig conf}";
+        DynamicUser = true;
+        Restart = "no";
+        CacheDirectory = "envoy";
+        LogsDirectory = "envoy";
+        AmbientCapabilities = "CAP_NET_BIND_SERVICE";
+        CapabilityBoundingSet = "CAP_NET_BIND_SERVICE";
+        RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6 AF_NETLINK AF_XDP";
+        SystemCallArchitectures = "native";
+        LockPersonality = true;
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        PrivateUsers = false;  # breaks CAP_NET_BIND_SERVICE
+        PrivateDevices = true;
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectProc = "ptraceable";
+        ProtectHostname = true;
+        ProtectSystem = "strict";
+        UMask = "0066";
+        SystemCallFilter = "~@clock @module @mount @reboot @swap @obsolete @cpu-emulation";
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/networking/headscale.nix b/nixos/modules/services/networking/headscale.nix
index 091d2a938cd4e..5b07beadb45f8 100644
--- a/nixos/modules/services/networking/headscale.nix
+++ b/nixos/modules/services/networking/headscale.nix
@@ -479,7 +479,7 @@ in
           NoNewPrivileges = true;
           LockPersonality = true;
           RestrictRealtime = true;
-          SystemCallFilter = [ "@system-service" "~@priviledged" "@chown" ];
+          SystemCallFilter = [ "@system-service" "~@privileged" "@chown" ];
           SystemCallArchitectures = "native";
           RestrictAddressFamilies = "AF_INET AF_INET6 AF_UNIX";
         };
diff --git a/nixos/modules/services/networking/mozillavpn.nix b/nixos/modules/services/networking/mozillavpn.nix
new file mode 100644
index 0000000000000..e35ba65314e9b
--- /dev/null
+++ b/nixos/modules/services/networking/mozillavpn.nix
@@ -0,0 +1,19 @@
+{ config, lib, pkgs, ... }:
+
+{
+  options.services.mozillavpn.enable = lib.mkOption {
+    type = lib.types.bool;
+    default = false;
+    description = ''
+      Enable the Mozilla VPN daemon.
+    '';
+  };
+
+  config = lib.mkIf config.services.mozillavpn.enable {
+    environment.systemPackages = [ pkgs.mozillavpn ];
+    services.dbus.packages = [ pkgs.mozillavpn ];
+    systemd.packages = [ pkgs.mozillavpn ];
+  };
+
+  meta.maintainers = with lib.maintainers; [ andersk ];
+}
diff --git a/nixos/modules/services/networking/nbd.nix b/nixos/modules/services/networking/nbd.nix
index 87f8c41a8e5cb..df3358f51876a 100644
--- a/nixos/modules/services/networking/nbd.nix
+++ b/nixos/modules/services/networking/nbd.nix
@@ -4,28 +4,34 @@ with lib;
 
 let
   cfg = config.services.nbd;
-  configFormat = pkgs.formats.ini { };
   iniFields = with types; attrsOf (oneOf [ bool int float str ]);
-  serverConfig = configFormat.generate "nbd-server-config"
-    ({
-      generic =
-        (cfg.server.extraOptions // {
-          user = "root";
-          group = "root";
-          port = cfg.server.listenPort;
-        } // (optionalAttrs (cfg.server.listenAddress != null) {
-          listenaddr = cfg.server.listenAddress;
-        }));
-    }
-    // (mapAttrs
+  # The `[generic]` section must come before all the others in the
+  # config file.  This means we can't just dump an attrset to INI
+  # because that sorts the sections by name.  Instead, we serialize it
+  # on its own first.
+  genericSection = {
+    generic = (cfg.server.extraOptions // {
+      user = "root";
+      group = "root";
+      port = cfg.server.listenPort;
+    } // (optionalAttrs (cfg.server.listenAddress != null) {
+      listenaddr = cfg.server.listenAddress;
+    }));
+  };
+  exportSections =
+    mapAttrs
       (_: { path, allowAddresses, extraOptions }:
         extraOptions // {
           exportname = path;
         } // (optionalAttrs (allowAddresses != null) {
           authfile = pkgs.writeText "authfile" (concatStringsSep "\n" allowAddresses);
         }))
-      cfg.server.exports)
-    );
+      cfg.server.exports;
+  serverConfig =
+    pkgs.writeText "nbd-server-config" ''
+      ${lib.generators.toINI {} genericSection}
+      ${lib.generators.toINI {} exportSections}
+    '';
   splitLists =
     partition
       (path: hasPrefix "/dev/" path)
@@ -103,6 +109,13 @@ in
   };
 
   config = mkIf cfg.server.enable {
+    assertions = [
+      {
+        assertion = !(cfg.server.exports ? "generic");
+        message = "services.nbd.server exports must not be named 'generic'";
+      }
+    ];
+
     boot.kernelModules = [ "nbd" ];
 
     systemd.services.nbd-server = {
diff --git a/nixos/modules/services/networking/ncdns.nix b/nixos/modules/services/networking/ncdns.nix
index 82c285d051607..c8d1b6718e2e2 100644
--- a/nixos/modules/services/networking/ncdns.nix
+++ b/nixos/modules/services/networking/ncdns.nix
@@ -58,7 +58,7 @@ in
 
       address = mkOption {
         type = types.str;
-        default = "127.0.0.1";
+        default = "[::1]";
         description = ''
           The IP address the ncdns resolver will bind to.  Leave this unchanged
           if you do not wish to directly expose the resolver.
@@ -202,7 +202,7 @@ in
   config = mkIf cfg.enable {
 
     services.pdns-recursor = mkIf cfgs.pdns-recursor.resolveNamecoin {
-      forwardZonesRecurse.bit = "127.0.0.1:${toString cfg.port}";
+      forwardZonesRecurse.bit = "${cfg.address}:${toString cfg.port}";
       luaConfig =
         if cfg.dnssec.enable
           then ''readTrustAnchorsFromFile("${cfg.dnssec.keys.public}")''
diff --git a/nixos/modules/services/networking/networkmanager.nix b/nixos/modules/services/networking/networkmanager.nix
index 7a9d9e5428a74..242afd548df3b 100644
--- a/nixos/modules/services/networking/networkmanager.nix
+++ b/nixos/modules/services/networking/networkmanager.nix
@@ -5,18 +5,6 @@ with lib;
 let
   cfg = config.networking.networkmanager;
 
-  basePackages = with pkgs; [
-    modemmanager
-    networkmanager
-    networkmanager-fortisslvpn
-    networkmanager-iodine
-    networkmanager-l2tp
-    networkmanager-openconnect
-    networkmanager-openvpn
-    networkmanager-vpnc
-    networkmanager-sstp
-   ] ++ optional (!delegateWireless && !enableIwd) wpa_supplicant;
-
   delegateWireless = config.networking.wireless.enable == true && cfg.unmanaged != [];
 
   enableIwd = cfg.wifi.backend == "iwd";
@@ -145,6 +133,15 @@ let
     '';
   };
 
+  packages = [
+    pkgs.modemmanager
+    pkgs.networkmanager
+  ]
+  ++ cfg.plugins
+  ++ lib.optionals (!delegateWireless && !enableIwd) [
+    pkgs.wpa_supplicant
+  ];
+
 in {
 
   meta = {
@@ -227,17 +224,33 @@ in {
         '';
       };
 
-      packages = mkOption {
-        type = types.listOf types.package;
+      plugins = mkOption {
+        type =
+          let
+            networkManagerPluginPackage = types.package // {
+              description = "NetworkManager plug-in";
+              check =
+                p:
+                lib.assertMsg
+                  (types.package.check p
+                    && p ? networkManagerPlugin
+                    && lib.isString p.networkManagerPlugin)
+                  ''
+                    Package ‘${p.name}’, is not a NetworkManager plug-in.
+                    Those need to have a ‘networkManagerPlugin’ attribute.
+                  '';
+            };
+          in
+          types.listOf networkManagerPluginPackage;
         default = [ ];
         description = ''
-          Extra packages that provide NetworkManager plugins.
+          List of NetworkManager plug-ins to enable.
+          Some plug-ins are enabled by the NetworkManager module by default.
         '';
-        apply = list: basePackages ++ list;
       };
 
       dhcp = mkOption {
-        type = types.enum [ "dhclient" "dhcpcd" "internal" ];
+        type = types.enum [ "dhcpcd" "internal" ];
         default = "internal";
         description = ''
           Which program (or internal library) should be used for DHCP.
@@ -380,7 +393,7 @@ in {
           </para><para>
           If you enable this option the
           <literal>networkmanager_strongswan</literal> plugin will be added to
-          the <option>networking.networkmanager.packages</option> option
+          the <option>networking.networkmanager.plugins</option> option
           so you don't need to to that yourself.
         '';
       };
@@ -399,6 +412,9 @@ in {
   };
 
   imports = [
+    (mkRenamedOptionModule
+      [ "networking" "networkmanager" "packages" ]
+      [ "networking" "networkmanager" "plugins" ])
     (mkRenamedOptionModule [ "networking" "networkmanager" "useDnsmasq" ] [ "networking" "networkmanager" "dns" ])
     (mkRemovedOptionModule ["networking" "networkmanager" "dynamicHosts"] ''
       This option was removed because allowing (multiple) regular users to
@@ -426,31 +442,12 @@ in {
 
     hardware.wirelessRegulatoryDatabase = true;
 
-    environment.etc = with pkgs; {
-      "NetworkManager/NetworkManager.conf".source = configFile;
-
-      "NetworkManager/VPN/nm-openvpn-service.name".source =
-        "${networkmanager-openvpn}/lib/NetworkManager/VPN/nm-openvpn-service.name";
-
-      "NetworkManager/VPN/nm-vpnc-service.name".source =
-        "${networkmanager-vpnc}/lib/NetworkManager/VPN/nm-vpnc-service.name";
-
-      "NetworkManager/VPN/nm-openconnect-service.name".source =
-        "${networkmanager-openconnect}/lib/NetworkManager/VPN/nm-openconnect-service.name";
-
-      "NetworkManager/VPN/nm-fortisslvpn-service.name".source =
-        "${networkmanager-fortisslvpn}/lib/NetworkManager/VPN/nm-fortisslvpn-service.name";
-
-      "NetworkManager/VPN/nm-l2tp-service.name".source =
-        "${networkmanager-l2tp}/lib/NetworkManager/VPN/nm-l2tp-service.name";
-
-      "NetworkManager/VPN/nm-iodine-service.name".source =
-        "${networkmanager-iodine}/lib/NetworkManager/VPN/nm-iodine-service.name";
-
-      "NetworkManager/VPN/nm-sstp-service.name".source =
-        "${networkmanager-sstp}/lib/NetworkManager/VPN/nm-sstp-service.name";
-
+    environment.etc = {
+        "NetworkManager/NetworkManager.conf".source = configFile;
       }
+      // builtins.listToAttrs (map (pkg: nameValuePair "NetworkManager/${pkg.networkManagerPlugin}" {
+        source = "${pkg}/lib/NetworkManager/${pkg.networkManagerPlugin}";
+      }) cfg.plugins)
       // optionalAttrs cfg.enableFccUnlock
          {
            "ModemManager/fcc-unlock.d".source =
@@ -460,18 +457,13 @@ in {
          {
            "NetworkManager/dispatcher.d/02overridedns".source = overrideNameserversScript;
          }
-      // optionalAttrs cfg.enableStrongSwan
-         {
-           "NetworkManager/VPN/nm-strongswan-service.name".source =
-             "${pkgs.networkmanager_strongswan}/lib/NetworkManager/VPN/nm-strongswan-service.name";
-         }
       // listToAttrs (lib.imap1 (i: s:
          {
             name = "NetworkManager/dispatcher.d/${dispatcherTypesSubdirMap.${s.type}}03userscript${lib.fixedWidthNumber 4 i}";
             value = { mode = "0544"; inherit (s) source; };
          }) cfg.dispatcherScripts);
 
-    environment.systemPackages = cfg.packages;
+    environment.systemPackages = packages;
 
     users.groups = {
       networkmanager.gid = config.ids.gids.networkmanager;
@@ -490,14 +482,13 @@ in {
       };
     };
 
-    systemd.packages = cfg.packages;
+    systemd.packages = packages;
 
     systemd.tmpfiles.rules = [
       "d /etc/NetworkManager/system-connections 0700 root root -"
       "d /etc/ipsec.d 0700 root root -"
       "d /var/lib/NetworkManager-fortisslvpn 0700 root root -"
 
-      "d /var/lib/dhclient 0755 root root -"
       "d /var/lib/misc 0755 root root -" # for dnsmasq.leases
     ];
 
@@ -534,8 +525,20 @@ in {
         useDHCP = false;
       })
 
+      {
+        networkmanager.plugins = with pkgs; [
+          networkmanager-fortisslvpn
+          networkmanager-iodine
+          networkmanager-l2tp
+          networkmanager-openconnect
+          networkmanager-openvpn
+          networkmanager-vpnc
+          networkmanager-sstp
+        ];
+      }
+
       (mkIf cfg.enableStrongSwan {
-        networkmanager.packages = [ pkgs.networkmanager_strongswan ];
+        networkmanager.plugins = [ pkgs.networkmanager_strongswan ];
       })
 
       (mkIf enableIwd {
@@ -559,10 +562,10 @@ in {
     security.polkit.enable = true;
     security.polkit.extraConfig = polkitConf;
 
-    services.dbus.packages = cfg.packages
+    services.dbus.packages = packages
       ++ optional cfg.enableStrongSwan pkgs.strongswanNM
       ++ optional (cfg.dns == "dnsmasq") pkgs.dnsmasq;
 
-    services.udev.packages = cfg.packages;
+    services.udev.packages = packages;
   };
 }
diff --git a/nixos/modules/services/networking/openconnect.nix b/nixos/modules/services/networking/openconnect.nix
new file mode 100644
index 0000000000000..de4b505130eb6
--- /dev/null
+++ b/nixos/modules/services/networking/openconnect.nix
@@ -0,0 +1,137 @@
+{ config, lib, options, pkgs, ... }:
+with lib;
+let
+  cfg = config.networking.openconnect;
+  openconnect = cfg.package;
+  pkcs11 = types.strMatching "pkcs11:.+" // {
+    name = "pkcs11";
+    description = "PKCS#11 URI";
+  };
+  interfaceOptions = {
+    options = {
+      gateway = mkOption {
+        description = "Gateway server to connect to.";
+        example = "gateway.example.com";
+        type = types.str;
+      };
+
+      protocol = mkOption {
+        description = "Protocol to use.";
+        example = "anyconnect";
+        type =
+          types.enum [ "anyconnect" "array" "nc" "pulse" "gp" "f5" "fortinet" ];
+      };
+
+      user = mkOption {
+        description = "Username to authenticate with.";
+        example = "example-user";
+        type = types.nullOr types.str;
+      };
+
+      # Note: It does not make sense to provide a way to declaratively
+      # set an authentication cookie, because they have to be requested
+      # for every new connection and would only work once.
+      passwordFile = mkOption {
+        description = ''
+          File containing the password to authenticate with. This
+          is passed to <code>openconnect</code> via the
+          <code>--passwd-on-stdin</code> option.
+        '';
+        default = null;
+        example = "/var/lib/secrets/openconnect-passwd";
+        type = types.nullOr types.path;
+      };
+
+      certificate = mkOption {
+        description = "Certificate to authenticate with.";
+        default = null;
+        example = "/var/lib/secrets/openconnect_certificate.pem";
+        type = with types; nullOr (either path pkcs11);
+      };
+
+      privateKey = mkOption {
+        description = "Private key to authenticate with.";
+        example = "/var/lib/secrets/openconnect_private_key.pem";
+        default = null;
+        type = with types; nullOr (either path pkcs11);
+      };
+
+      extraOptions = mkOption {
+        description = ''
+          Extra config to be appended to the interface config. It should
+          contain long-format options as would be accepted on the command
+          line by <code>openconnect</code>
+          (see https://www.infradead.org/openconnect/manual.html).
+          Non-key-value options like <code>deflate</code> can be used by
+          declaring them as booleans, i. e. <code>deflate = true;</code>.
+        '';
+        default = { };
+        example = {
+          compression = "stateless";
+
+          no-http-keepalive = true;
+          no-dtls = true;
+        };
+        type = with types; attrsOf (either str bool);
+      };
+    };
+  };
+  generateExtraConfig = extra_cfg:
+    strings.concatStringsSep "\n" (attrsets.mapAttrsToList
+      (name: value: if (value == true) then name else "${name}=${value}")
+      (attrsets.filterAttrs (_: value: value != false) extra_cfg));
+  generateConfig = name: icfg:
+    pkgs.writeText "config" ''
+      interface=${name}
+      ${optionalString (icfg.user != null) "user=${icfg.user}"}
+      ${optionalString (icfg.passwordFile != null) "passwd-on-stdin"}
+      ${optionalString (icfg.certificate != null)
+      "certificate=${icfg.certificate}"}
+      ${optionalString (icfg.privateKey != null) "sslkey=${icfg.privateKey}"}
+
+      ${generateExtraConfig icfg.extraOptions}
+    '';
+  generateUnit = name: icfg: {
+    description = "OpenConnect Interface - ${name}";
+    requires = [ "network-online.target" ];
+    after = [ "network.target" "network-online.target" ];
+    wantedBy = [ "multi-user.target" ];
+
+    serviceConfig = {
+      Type = "simple";
+      ExecStart = "${openconnect}/bin/openconnect --config=${
+          generateConfig name icfg
+        } ${icfg.gateway}";
+      StandardInput = "file:${icfg.passwordFile}";
+
+      ProtectHome = true;
+    };
+  };
+in {
+  options.networking.openconnect = {
+    package = mkPackageOption pkgs "openconnect" { };
+
+    interfaces = mkOption {
+      description = "OpenConnect interfaces.";
+      default = { };
+      example = {
+        openconnect0 = {
+          gateway = "gateway.example.com";
+          protocol = "anyconnect";
+          user = "example-user";
+          passwordFile = "/var/lib/secrets/openconnect-passwd";
+        };
+      };
+      type = with types; attrsOf (submodule interfaceOptions);
+    };
+  };
+
+  config = {
+    systemd.services = mapAttrs' (name: value: {
+      name = "openconnect-${name}";
+      value = generateUnit name value;
+    }) cfg.interfaces;
+  };
+
+  meta.maintainers = with maintainers; [ alyaeanyx ];
+}
diff --git a/nixos/modules/services/networking/pdns-recursor.nix b/nixos/modules/services/networking/pdns-recursor.nix
index 0579d314a9ba6..a986f83141c4d 100644
--- a/nixos/modules/services/networking/pdns-recursor.nix
+++ b/nixos/modules/services/networking/pdns-recursor.nix
@@ -30,10 +30,10 @@ in {
     enable = mkEnableOption "PowerDNS Recursor, a recursive DNS server";
 
     dns.address = mkOption {
-      type = types.str;
-      default = "0.0.0.0";
+      type = oneOrMore types.str;
+      default = [ "::" "0.0.0.0" ];
       description = ''
-        IP address Recursor DNS server will bind to.
+        IP addresses Recursor DNS server will bind to.
       '';
     };
 
@@ -47,8 +47,12 @@ in {
 
     dns.allowFrom = mkOption {
       type = types.listOf types.str;
-      default = [ "10.0.0.0/8" "172.16.0.0/12" "192.168.0.0/16" ];
-      example = [ "0.0.0.0/0" ];
+      default = [
+        "127.0.0.0/8" "10.0.0.0/8" "100.64.0.0/10"
+        "169.254.0.0/16" "192.168.0.0/16" "172.16.0.0/12"
+        "::1/128" "fc00::/7" "fe80::/10"
+      ];
+      example = [ "0.0.0.0/0" "::/0" ];
       description = ''
         IP address ranges of clients allowed to make DNS queries.
       '';
@@ -72,7 +76,8 @@ in {
 
     api.allowFrom = mkOption {
       type = types.listOf types.str;
-      default = [ "0.0.0.0/0" ];
+      default = [ "127.0.0.1" "::1" ];
+      example = [ "0.0.0.0/0" "::/0" ];
       description = ''
         IP address ranges of clients allowed to make API requests.
       '';
@@ -96,7 +101,7 @@ in {
 
     forwardZonesRecurse = mkOption {
       type = types.attrs;
-      example = { eth = "127.0.0.1:5353"; };
+      example = { eth = "[::1]:5353"; };
       default = {};
       description = ''
         DNS zones to be forwarded to other recursive servers.
diff --git a/nixos/modules/services/networking/shellhub-agent.nix b/nixos/modules/services/networking/shellhub-agent.nix
index a45ef148544f9..57825945d9f76 100644
--- a/nixos/modules/services/networking/shellhub-agent.nix
+++ b/nixos/modules/services/networking/shellhub-agent.nix
@@ -1,31 +1,37 @@
 { config, lib, pkgs, ... }:
 
 with lib;
+
 let
   cfg = config.services.shellhub-agent;
-in {
-
+in
+{
   ###### interface
 
   options = {
 
     services.shellhub-agent = {
 
-      enable = mkOption {
-        type = types.bool;
-        default = false;
+      enable = mkEnableOption "ShellHub Agent daemon";
+
+      package = mkPackageOption pkgs "shellhub-agent" { };
+
+      preferredHostname = mkOption {
+        type = types.str;
+        default = "";
         description = ''
-          Whether to enable the ShellHub Agent daemon, which allows
-          secure remote logins.
+          Set the device preferred hostname. This provides a hint to
+          the server to use this as hostname if it is available.
         '';
       };
 
-      package = mkOption {
-        type = types.package;
-        default = pkgs.shellhub-agent;
-        defaultText = literalExpression "pkgs.shellhub-agent";
+      keepAliveInterval = mkOption {
+        type = types.int;
+        default = 30;
         description = ''
-          Which ShellHub Agent package to use.
+          Determine the interval to send the keep alive message to
+          the server. This has a direct impact of the bandwidth
+          used by the device.
         '';
       };
 
@@ -74,9 +80,13 @@ in {
         "time-sync.target"
       ];
 
-      environment.SERVER_ADDRESS = cfg.server;
-      environment.PRIVATE_KEY = cfg.privateKey;
-      environment.TENANT_ID = cfg.tenantId;
+      environment = {
+        SHELLHUB_SERVER_ADDRESS = cfg.server;
+        SHELLHUB_PRIVATE_KEY = cfg.privateKey;
+        SHELLHUB_TENANT_ID = cfg.tenantId;
+        SHELLHUB_KEEPALIVE_INTERVAL = toString cfg.keepAliveInterval;
+        SHELLHUB_PREFERRED_HOSTNAME = cfg.preferredHostname;
+      };
 
       serviceConfig = {
         # The service starts sessions for different users.
@@ -85,7 +95,6 @@ in {
         ExecStart = "${cfg.package}/bin/agent";
       };
     };
-
-    environment.systemPackages = [ cfg.package ];
   };
 }
+
diff --git a/nixos/modules/services/networking/syncplay.nix b/nixos/modules/services/networking/syncplay.nix
index c17426ecced72..7694b4bf990b8 100644
--- a/nixos/modules/services/networking/syncplay.nix
+++ b/nixos/modules/services/networking/syncplay.nix
@@ -89,7 +89,7 @@ in
         ${lib.optionalString (cfg.passwordFile != null) ''
           export SYNCPLAY_PASSWORD=$(cat "''${CREDENTIALS_DIRECTORY}/password")
         ''}
-        exec ${pkgs.syncplay}/bin/syncplay-server ${escapeShellArgs cmdArgs}
+        exec ${pkgs.syncplay-nogui}/bin/syncplay-server ${escapeShellArgs cmdArgs}
       '';
     };
   };
diff --git a/nixos/modules/services/networking/tailscale.nix b/nixos/modules/services/networking/tailscale.nix
index 3f41646bf01e9..1f64113950a79 100644
--- a/nixos/modules/services/networking/tailscale.nix
+++ b/nixos/modules/services/networking/tailscale.nix
@@ -21,6 +21,12 @@ in {
       description = ''The interface name for tunnel traffic. Use "userspace-networking" (beta) to not use TUN.'';
     };
 
+    permitCertUid = mkOption {
+      type = types.nullOr types.nonEmptyStr;
+      default = null;
+      description = "Username or user ID of the user allowed to to fetch Tailscale TLS certificates for the node.";
+    };
+
     package = mkOption {
       type = types.package;
       default = pkgs.tailscale;
@@ -38,7 +44,9 @@ in {
       serviceConfig.Environment = [
         "PORT=${toString cfg.port}"
         ''"FLAGS=--tun ${lib.escapeShellArg cfg.interfaceName}"''
-      ];
+      ] ++ (lib.optionals (cfg.permitCertUid != null) [
+        "TS_PERMIT_CERT_UID=${cfg.permitCertUid}"
+      ]);
     };
   };
 }
diff --git a/nixos/modules/services/networking/zeronet.nix b/nixos/modules/services/networking/zeronet.nix
index 3370390a4c626..dd83b7facc113 100644
--- a/nixos/modules/services/networking/zeronet.nix
+++ b/nixos/modules/services/networking/zeronet.nix
@@ -90,5 +90,5 @@ in with lib; {
     (mkRemovedOptionModule [ "services" "zeronet" "logDir" ] "Zeronet will log by default in /var/lib/zeronet")
   ];
 
-  meta.maintainers = with maintainers; [ chiiruno ];
+  meta.maintainers = with maintainers; [ Madouura ];
 }
diff --git a/nixos/modules/services/system/nscd.nix b/nixos/modules/services/system/nscd.nix
index 00a87e788dc4d..0caebc8ce90a4 100644
--- a/nixos/modules/services/system/nscd.nix
+++ b/nixos/modules/services/system/nscd.nix
@@ -7,10 +7,6 @@ let
   nssModulesPath = config.system.nssModules.path;
   cfg = config.services.nscd;
 
-  nscd = if pkgs.stdenv.hostPlatform.libc == "glibc"
-         then pkgs.stdenv.cc.libc.bin
-         else pkgs.glibc.bin;
-
 in
 
 {
@@ -37,6 +33,19 @@ in
         description = "Configuration to use for Name Service Cache Daemon.";
       };
 
+      package = mkOption {
+        type = types.package;
+        default = if pkgs.stdenv.hostPlatform.libc == "glibc"
+          then pkgs.stdenv.cc.libc.bin
+          else pkgs.glibc.bin;
+        defaultText = literalExample ''
+          if pkgs.stdenv.hostPlatform.libc == "glibc"
+            then pkgs.stdenv.cc.libc.bin
+            else pkgs.glibc.bin;
+        '';
+        description = "package containing the nscd binary to be used by the service";
+      };
+
     };
 
   };
@@ -69,16 +78,16 @@ in
         # files. So prefix the ExecStart command with "!" to prevent systemd
         # from dropping privileges early. See ExecStart in systemd.service(5).
         serviceConfig =
-          { ExecStart = "!@${nscd}/sbin/nscd nscd";
+          { ExecStart = "!@${cfg.package}/bin/nscd nscd";
             Type = "forking";
             DynamicUser = true;
             RuntimeDirectory = "nscd";
             PIDFile = "/run/nscd/nscd.pid";
             Restart = "always";
             ExecReload =
-              [ "${nscd}/sbin/nscd --invalidate passwd"
-                "${nscd}/sbin/nscd --invalidate group"
-                "${nscd}/sbin/nscd --invalidate hosts"
+              [ "${cfg.package}/bin/nscd --invalidate passwd"
+                "${cfg.package}/bin/nscd --invalidate group"
+                "${cfg.package}/bin/nscd --invalidate hosts"
               ];
           };
       };
diff --git a/nixos/modules/services/ttys/kmscon.nix b/nixos/modules/services/ttys/kmscon.nix
index 4fe720bf044bc..e02ab3cb6b323 100644
--- a/nixos/modules/services/ttys/kmscon.nix
+++ b/nixos/modules/services/ttys/kmscon.nix
@@ -1,6 +1,6 @@
 { config, pkgs, lib, ... }:
 let
-  inherit (lib) mkOption types mkIf;
+  inherit (lib) mapAttrs mkIf mkOption optional optionals types;
 
   cfg = config.services.kmscon;
 
@@ -28,6 +28,19 @@ in {
         default = false;
       };
 
+      fonts = mkOption {
+        description = "Fonts used by kmscon, in order of priority.";
+        default = null;
+        example = lib.literalExpression ''[ { name = "Source Code Pro"; package = pkgs.source-code-pro; } ]'';
+        type = with types;
+          let fontType = submodule {
+                options = {
+                  name = mkOption { type = str; description = "Font name, as used by fontconfig."; };
+                  package = mkOption { type = package; description = "Package providing the font."; };
+                };
+          }; in nullOr (nonEmptyListOf fontType);
+      };
+
       extraConfig = mkOption {
         description = "Extra contents of the kmscon.conf file.";
         type = types.lines;
@@ -87,11 +100,17 @@ in {
 
     systemd.services.systemd-vconsole-setup.enable = false;
 
-    services.kmscon.extraConfig = mkIf cfg.hwRender ''
-      drm
-      hwaccel
-    '';
+    services.kmscon.extraConfig =
+      let
+        render = optionals cfg.hwRender [ "drm" "hwaccel" ];
+        fonts = optional (cfg.fonts != null) "font-name=${lib.concatMapStringsSep ", " (f: f.name) cfg.fonts}";
+      in lib.concatStringsSep "\n" (render ++ fonts);
 
     hardware.opengl.enable = mkIf cfg.hwRender true;
+
+    fonts = mkIf (cfg.fonts != null) {
+      fontconfig.enable = true;
+      fonts = map (f: f.package) cfg.fonts;
+    };
   };
 }
diff --git a/nixos/modules/services/web-apps/atlassian/jira.nix b/nixos/modules/services/web-apps/atlassian/jira.nix
index d7a26838d6f82..a120f6cdb3d88 100644
--- a/nixos/modules/services/web-apps/atlassian/jira.nix
+++ b/nixos/modules/services/web-apps/atlassian/jira.nix
@@ -151,6 +151,7 @@ in
     users.users.${cfg.user} = {
       isSystemUser = true;
       group = cfg.group;
+      home = cfg.home;
     };
 
     users.groups.${cfg.group} = {};
diff --git a/nixos/modules/services/web-apps/discourse.nix b/nixos/modules/services/web-apps/discourse.nix
index 2c2911aada3f1..7dbbf4a12fe5b 100644
--- a/nixos/modules/services/web-apps/discourse.nix
+++ b/nixos/modules/services/web-apps/discourse.nix
@@ -609,6 +609,7 @@ in
       connection_reaper_interval = 30;
       relative_url_root = null;
       message_bus_max_backlog_size = 100;
+      message_bus_clear_every = 50;
       secret_key_base = cfg.secretKeyBaseFile;
       fallback_assets_path = null;
 
@@ -655,7 +656,12 @@ in
       long_polling_interval = null;
     };
 
-    services.redis.enable = lib.mkDefault (cfg.redis.host == "localhost");
+    services.redis.servers.discourse =
+      lib.mkIf (lib.elem cfg.redis.host [ "localhost" "127.0.0.1" ]) {
+        enable = true;
+        bind = cfg.redis.host;
+        port = cfg.backendSettings.redis_port;
+      };
 
     services.postgresql = lib.mkIf databaseActuallyCreateLocally {
       enable = true;
@@ -696,12 +702,12 @@ in
     systemd.services.discourse = {
       wantedBy = [ "multi-user.target" ];
       after = [
-        "redis.service"
+        "redis-discourse.service"
         "postgresql.service"
         "discourse-postgresql.service"
       ];
       bindsTo = [
-        "redis.service"
+        "redis-discourse.service"
       ] ++ lib.optionals (cfg.database.host == null) [
         "postgresql.service"
         "discourse-postgresql.service"
diff --git a/nixos/modules/services/web-apps/keycloak.nix b/nixos/modules/services/web-apps/keycloak.nix
index c4a2127663a97..2d817ca19234b 100644
--- a/nixos/modules/services/web-apps/keycloak.nix
+++ b/nixos/modules/services/web-apps/keycloak.nix
@@ -4,20 +4,94 @@ let
   cfg = config.services.keycloak;
   opt = options.services.keycloak;
 
-  inherit (lib) types mkOption concatStringsSep mapAttrsToList
-    escapeShellArg recursiveUpdate optionalAttrs boolToString mkOrder
-    sort filterAttrs concatMapStringsSep concatStrings mkIf
-    optionalString optionals mkDefault literalExpression hasSuffix
-    foldl' isAttrs filter attrNames elem literalDocBook
-    maintainers;
-
-  inherit (builtins) match typeOf;
+  inherit (lib)
+    types
+    mkMerge
+    mkOption
+    mkChangedOptionModule
+    mkRenamedOptionModule
+    mkRemovedOptionModule
+    concatStringsSep
+    mapAttrsToList
+    escapeShellArg
+    mkIf
+    optionalString
+    optionals
+    mkDefault
+    literalExpression
+    isAttrs
+    literalDocBook
+    maintainers
+    catAttrs
+    collect
+    splitString
+    ;
+
+  inherit (builtins)
+    elem
+    typeOf
+    isInt
+    isString
+    hashString
+    isPath
+    ;
+
+  prefixUnlessEmpty = prefix: string: optionalString (string != "") "${prefix}${string}";
 in
 {
+  imports =
+    [
+      (mkRenamedOptionModule
+        [ "services" "keycloak" "bindAddress" ]
+        [ "services" "keycloak" "settings" "http-host" ])
+      (mkRenamedOptionModule
+        [ "services" "keycloak" "forceBackendUrlToFrontendUrl"]
+        [ "services" "keycloak" "settings" "hostname-strict-backchannel"])
+      (mkChangedOptionModule
+        [ "services" "keycloak" "httpPort" ]
+        [ "services" "keycloak" "settings" "http-port" ]
+        (config:
+          builtins.fromJSON config.services.keycloak.httpPort))
+      (mkChangedOptionModule
+        [ "services" "keycloak" "httpsPort" ]
+        [ "services" "keycloak" "settings" "https-port" ]
+        (config:
+          builtins.fromJSON config.services.keycloak.httpsPort))
+      (mkRemovedOptionModule
+        [ "services" "keycloak" "frontendUrl" ]
+        ''
+          Set `services.keycloak.settings.hostname' and `services.keycloak.settings.http-relative-path' instead.
+          NOTE: You likely want to set 'http-relative-path' to '/auth' to keep compatibility with your clients.
+                See its description for more information.
+        '')
+      (mkRemovedOptionModule
+        [ "services" "keycloak" "extraConfig" ]
+        "Use `services.keycloak.settings' instead.")
+    ];
+
   options.services.keycloak =
     let
-      inherit (types) bool str nullOr attrsOf path enum anything
-        package port;
+      inherit (types)
+        bool
+        str
+        int
+        nullOr
+        attrsOf
+        oneOf
+        path
+        enum
+        package
+        port;
+
+      assertStringPath = optionName: value:
+        if isPath value then
+          throw ''
+            services.keycloak.${optionName}:
+              ${toString value}
+              is a Nix path, but should be a string, since Nix
+              paths are copied into the world-readable Nix store.
+          ''
+        else value;
     in
     {
       enable = mkOption {
@@ -30,89 +104,14 @@ in
         '';
       };
 
-      bindAddress = mkOption {
-        type = str;
-        default = "\${jboss.bind.address:0.0.0.0}";
-        example = "127.0.0.1";
-        description = ''
-          On which address Keycloak should accept new connections.
-
-          A special syntax can be used to allow command line Java system
-          properties to override the value: ''${property.name:value}
-        '';
-      };
-
-      httpPort = mkOption {
-        type = str;
-        default = "\${jboss.http.port:80}";
-        example = "8080";
-        description = ''
-          On which port Keycloak should listen for new HTTP connections.
-
-          A special syntax can be used to allow command line Java system
-          properties to override the value: ''${property.name:value}
-        '';
-      };
-
-      httpsPort = mkOption {
-        type = str;
-        default = "\${jboss.https.port:443}";
-        example = "8443";
-        description = ''
-          On which port Keycloak should listen for new HTTPS connections.
-
-          A special syntax can be used to allow command line Java system
-          properties to override the value: ''${property.name:value}
-        '';
-      };
-
-      frontendUrl = mkOption {
-        type = str;
-        apply = x:
-          if x == "" || hasSuffix "/" x then
-            x
-          else
-            x + "/";
-        example = "keycloak.example.com/auth";
-        description = ''
-          The public URL used as base for all frontend requests. Should
-          normally include a trailing <literal>/auth</literal>.
-
-          See <link xlink:href="https://www.keycloak.org/docs/latest/server_installation/#_hostname">the
-          Hostname section of the Keycloak server installation
-          manual</link> for more information.
-        '';
-      };
-
-      forceBackendUrlToFrontendUrl = mkOption {
-        type = bool;
-        default = false;
-        example = true;
-        description = ''
-          Whether Keycloak should force all requests to go through the
-          frontend URL configured in <xref
-          linkend="opt-services.keycloak.frontendUrl" />. By default,
-          Keycloak allows backend requests to instead use its local
-          hostname or IP address and may also advertise it to clients
-          through its OpenID Connect Discovery endpoint.
-
-          See <link
-          xlink:href="https://www.keycloak.org/docs/latest/server_installation/#_hostname">the
-          Hostname section of the Keycloak server installation
-          manual</link> for more information.
-        '';
-      };
-
       sslCertificate = mkOption {
         type = nullOr path;
         default = null;
         example = "/run/keys/ssl_cert";
+        apply = assertStringPath "sslCertificate";
         description = ''
           The path to a PEM formatted certificate to use for TLS/SSL
           connections.
-
-          This should be a string, not a Nix path, since Nix paths are
-          copied into the world-readable Nix store.
         '';
       };
 
@@ -120,28 +119,28 @@ in
         type = nullOr path;
         default = null;
         example = "/run/keys/ssl_key";
+        apply = assertStringPath "sslCertificateKey";
         description = ''
           The path to a PEM formatted private key to use for TLS/SSL
           connections.
-
-          This should be a string, not a Nix path, since Nix paths are
-          copied into the world-readable Nix store.
         '';
       };
 
       plugins = lib.mkOption {
         type = lib.types.listOf lib.types.path;
-        default = [];
+        default = [ ];
         description = ''
-          Keycloak plugin jar, ear files or derivations with them
+          Keycloak plugin jar, ear files or derivations containing
+          them. Packaged plugins are available through
+          <literal>pkgs.keycloak.plugins</literal>.
         '';
       };
 
       database = {
         type = mkOption {
-          type = enum [ "mysql" "postgresql" ];
+          type = enum [ "mysql" "mariadb" "postgresql" ];
           default = "postgresql";
-          example = "mysql";
+          example = "mariadb";
           description = ''
             The type of database Keycloak should connect to.
           '';
@@ -159,6 +158,7 @@ in
           let
             dbPorts = {
               postgresql = 5432;
+              mariadb = 3306;
               mysql = 3306;
             };
           in
@@ -207,6 +207,21 @@ in
           '';
         };
 
+        name = mkOption {
+          type = str;
+          default = "keycloak";
+          description = ''
+            Database name to use when connecting to an external or
+            manually provisioned database; has no effect when a local
+            database is automatically provisioned.
+
+            To use this with a local database, set <xref
+            linkend="opt-services.keycloak.database.createLocally" /> to
+            <literal>false</literal> and create the database and user
+            manually.
+          '';
+        };
+
         username = mkOption {
           type = str;
           default = "keycloak";
@@ -218,19 +233,16 @@ in
             To use this with a local database, set <xref
             linkend="opt-services.keycloak.database.createLocally" /> to
             <literal>false</literal> and create the database and user
-            manually. The database should be called
-            <literal>keycloak</literal>.
+            manually.
           '';
         };
 
         passwordFile = mkOption {
           type = path;
           example = "/run/keys/db_password";
+          apply = assertStringPath "passwordFile";
           description = ''
-            File containing the database password.
-
-            This should be a string, not a Nix path, since Nix paths are
-            copied into the world-readable Nix store.
+            The path to a file containing the database password.
           '';
         };
       };
@@ -268,67 +280,181 @@ in
         '';
       };
 
-      extraConfig = mkOption {
-        type = attrsOf anything;
-        default = { };
+      settings = mkOption {
+        type = lib.types.submodule {
+          freeformType = attrsOf (nullOr (oneOf [ str int bool (attrsOf path) ]));
+
+          options = {
+            http-host = mkOption {
+              type = str;
+              default = "0.0.0.0";
+              example = "127.0.0.1";
+              description = ''
+                On which address Keycloak should accept new connections.
+              '';
+            };
+
+            http-port = mkOption {
+              type = port;
+              default = 80;
+              example = 8080;
+              description = ''
+                On which port Keycloak should listen for new HTTP connections.
+              '';
+            };
+
+            https-port = mkOption {
+              type = port;
+              default = 443;
+              example = 8443;
+              description = ''
+                On which port Keycloak should listen for new HTTPS connections.
+              '';
+            };
+
+            http-relative-path = mkOption {
+              type = str;
+              default = "";
+              example = "/auth";
+              description = ''
+                The path relative to <literal>/</literal> for serving
+                resources.
+
+                <note>
+                  <para>
+                    In versions of Keycloak using Wildfly (&lt;17),
+                    this defaulted to <literal>/auth</literal>. If
+                    upgrading from the Wildfly version of Keycloak,
+                    i.e. a NixOS version before 22.05, you'll likely
+                    want to set this to <literal>/auth</literal> to
+                    keep compatibility with your clients.
+
+                    See <link
+                    xlink:href="https://www.keycloak.org/migration/migrating-to-quarkus"
+                    /> for more information on migrating from Wildfly
+                    to Quarkus.
+                  </para>
+                </note>
+              '';
+            };
+
+            hostname = mkOption {
+              type = str;
+              example = "keycloak.example.com";
+              description = ''
+                The hostname part of the public URL used as base for
+                all frontend requests.
+
+                See <link xlink:href="https://www.keycloak.org/server/hostname" />
+                for more information about hostname configuration.
+              '';
+            };
+
+            hostname-strict-backchannel = mkOption {
+              type = bool;
+              default = false;
+              example = true;
+              description = ''
+                Whether Keycloak should force all requests to go
+                through the frontend URL. By default, Keycloak allows
+                backend requests to instead use its local hostname or
+                IP address and may also advertise it to clients
+                through its OpenID Connect Discovery endpoint.
+
+                See <link xlink:href="https://www.keycloak.org/server/hostname" />
+                for more information about hostname configuration.
+              '';
+            };
+
+            proxy = mkOption {
+              type = enum [ "edge" "reencrypt" "passthrough" "none" ];
+              default = "none";
+              example = "edge";
+              description = ''
+                The proxy address forwarding mode if the server is
+                behind a reverse proxy.
+
+                <variablelist>
+                  <varlistentry>
+                    <term>edge</term>
+                    <listitem>
+                      <para>
+                        Enables communication through HTTP between the
+                        proxy and Keycloak.
+                      </para>
+                    </listitem>
+                  </varlistentry>
+                  <varlistentry>
+                    <term>reencrypt</term>
+                    <listitem>
+                      <para>
+                        Requires communication through HTTPS between the
+                        proxy and Keycloak.
+                      </para>
+                    </listitem>
+                  </varlistentry>
+                  <varlistentry>
+                    <term>passthrough</term>
+                    <listitem>
+                      <para>
+                        Enables communication through HTTP or HTTPS between
+                        the proxy and Keycloak.
+                      </para>
+                    </listitem>
+                  </varlistentry>
+                </variablelist>
+
+                See <link
+                xlink:href="https://www.keycloak.org/server/reverseproxy"
+                /> for more information.
+              '';
+            };
+          };
+        };
+
         example = literalExpression ''
           {
-            "subsystem=keycloak-server" = {
-              "spi=hostname" = {
-                "provider=default" = null;
-                "provider=fixed" = {
-                  enabled = true;
-                  properties.hostname = "keycloak.example.com";
-                };
-                default-provider = "fixed";
-              };
-            };
+            hostname = "keycloak.example.com";
+            proxy = "reencrypt";
+            https-key-store-file = "/path/to/file";
+            https-key-store-password = { _secret = "/run/keys/store_password"; };
           }
         '';
+
         description = ''
-          Additional Keycloak configuration options to set in
-          <literal>standalone.xml</literal>.
-
-          Options are expressed as a Nix attribute set which matches the
-          structure of the jboss-cli configuration. The configuration is
-          effectively overlayed on top of the default configuration
-          shipped with Keycloak. To remove existing nodes and undefine
-          attributes from the default configuration, set them to
-          <literal>null</literal>.
-
-          The example configuration does the equivalent of the following
-          script, which removes the hostname provider
-          <literal>default</literal>, adds the deprecated hostname
-          provider <literal>fixed</literal> and defines it the default:
-
-          <programlisting>
-          /subsystem=keycloak-server/spi=hostname/provider=default:remove()
-          /subsystem=keycloak-server/spi=hostname/provider=fixed:add(enabled = true, properties = { hostname = "keycloak.example.com" })
-          /subsystem=keycloak-server/spi=hostname:write-attribute(name=default-provider, value="fixed")
-          </programlisting>
-
-          You can discover available options by using the <link
-          xlink:href="http://docs.wildfly.org/21/Admin_Guide.html#Command_Line_Interface">jboss-cli.sh</link>
-          program and by referring to the <link
-          xlink:href="https://www.keycloak.org/docs/latest/server_installation/index.html">Keycloak
-          Server Installation and Configuration Guide</link>.
+          Configuration options corresponding to parameters set in
+          <filename>conf/keycloak.conf</filename>.
+
+          Most available options are documented at <link
+          xlink:href="https://www.keycloak.org/server/all-config" />.
+
+          Options containing secret data should be set to an attribute
+          set containing the attribute <literal>_secret</literal> - a
+          string pointing to a file containing the value the option
+          should be set to. See the example to get a better picture of
+          this: in the resulting
+          <filename>conf/keycloak.conf</filename> file, the
+          <literal>https-key-store-password</literal> key will be set
+          to the contents of the
+          <filename>/run/keys/store_password</filename> file.
         '';
       };
-
     };
 
   config =
     let
-      # We only want to create a database if we're actually going to connect to it.
+      # We only want to create a database if we're actually going to
+      # connect to it.
       databaseActuallyCreateLocally = cfg.database.createLocally && cfg.database.host == "localhost";
       createLocalPostgreSQL = databaseActuallyCreateLocally && cfg.database.type == "postgresql";
-      createLocalMySQL = databaseActuallyCreateLocally && cfg.database.type == "mysql";
+      createLocalMySQL = databaseActuallyCreateLocally && elem cfg.database.type [ "mysql" "mariadb" ];
 
       mySqlCaKeystore = pkgs.runCommand "mysql-ca-keystore" { } ''
         ${pkgs.jre}/bin/keytool -importcert -trustcacerts -alias MySQLCACert -file ${cfg.database.caCert} -keystore $out -storepass notsosecretpassword -noprompt
       '';
 
-      # Both theme and theme type directories need to be actual directories in one hierarchy to pass Keycloak checks.
+      # Both theme and theme type directories need to be actual
+      # directories in one hierarchy to pass Keycloak checks.
       themesBundle = pkgs.runCommand "keycloak-themes" { } ''
         linkTheme() {
           theme="$1"
@@ -347,7 +473,7 @@ in
         }
 
         mkdir -p "$out"
-        for theme in ${cfg.package}/themes/*; do
+        for theme in ${keycloakBuild}/themes/*; do
           if [ -d "$theme" ]; then
             linkTheme "$theme" "$(basename "$theme")"
           fi
@@ -356,329 +482,25 @@ in
         ${concatStringsSep "\n" (mapAttrsToList (name: theme: "linkTheme ${theme} ${escapeShellArg name}") cfg.themes)}
       '';
 
-      keycloakConfig' = foldl' recursiveUpdate
-        {
-          "interface=public".inet-address = cfg.bindAddress;
-          "socket-binding-group=standard-sockets"."socket-binding=http".port = cfg.httpPort;
-          "subsystem=keycloak-server" = {
-            "spi=hostname"."provider=default" = {
-              enabled = true;
-              properties = {
-                inherit (cfg) frontendUrl forceBackendUrlToFrontendUrl;
-              };
-            };
-            "theme=defaults".dir = toString themesBundle;
-          };
-          "subsystem=datasources"."data-source=KeycloakDS" = {
-            max-pool-size = "20";
-            user-name = if databaseActuallyCreateLocally then "keycloak" else cfg.database.username;
-            password = "@db-password@";
-          };
-        } [
-        (optionalAttrs (cfg.database.type == "postgresql") {
-          "subsystem=datasources" = {
-            "jdbc-driver=postgresql" = {
-              driver-module-name = "org.postgresql";
-              driver-name = "postgresql";
-              driver-xa-datasource-class-name = "org.postgresql.xa.PGXADataSource";
-            };
-            "data-source=KeycloakDS" = {
-              connection-url = "jdbc:postgresql://${cfg.database.host}:${toString cfg.database.port}/keycloak";
-              driver-name = "postgresql";
-              "connection-properties=ssl".value = boolToString cfg.database.useSSL;
-            } // (optionalAttrs (cfg.database.caCert != null) {
-              "connection-properties=sslrootcert".value = cfg.database.caCert;
-              "connection-properties=sslmode".value = "verify-ca";
-            });
-          };
-        })
-        (optionalAttrs (cfg.database.type == "mysql") {
-          "subsystem=datasources" = {
-            "jdbc-driver=mysql" = {
-              driver-module-name = "com.mysql";
-              driver-name = "mysql";
-              driver-class-name = "com.mysql.jdbc.Driver";
-            };
-            "data-source=KeycloakDS" = {
-              connection-url = "jdbc:mysql://${cfg.database.host}:${toString cfg.database.port}/keycloak";
-              driver-name = "mysql";
-              "connection-properties=useSSL".value = boolToString cfg.database.useSSL;
-              "connection-properties=requireSSL".value = boolToString cfg.database.useSSL;
-              "connection-properties=verifyServerCertificate".value = boolToString cfg.database.useSSL;
-              "connection-properties=characterEncoding".value = "UTF-8";
-              valid-connection-checker-class-name = "org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker";
-              validate-on-match = true;
-              exception-sorter-class-name = "org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter";
-            } // (optionalAttrs (cfg.database.caCert != null) {
-              "connection-properties=trustCertificateKeyStoreUrl".value = "file:${mySqlCaKeystore}";
-              "connection-properties=trustCertificateKeyStorePassword".value = "notsosecretpassword";
-            });
-          };
-        })
-        (optionalAttrs (cfg.sslCertificate != null && cfg.sslCertificateKey != null) {
-          "socket-binding-group=standard-sockets"."socket-binding=https".port = cfg.httpsPort;
-          "subsystem=elytron" = mkOrder 900 {
-            "key-store=httpsKS" = mkOrder 900 {
-              path = "/run/keycloak/ssl/certificate_private_key_bundle.p12";
-              credential-reference.clear-text = "notsosecretpassword";
-              type = "JKS";
-            };
-            "key-manager=httpsKM" = mkOrder 901 {
-              key-store = "httpsKS";
-              credential-reference.clear-text = "notsosecretpassword";
-            };
-            "server-ssl-context=httpsSSC" = mkOrder 902 {
-              key-manager = "httpsKM";
-            };
-          };
-          "subsystem=undertow" = mkOrder 901 {
-            "server=default-server"."https-listener=https".ssl-context = "httpsSSC";
-          };
-        })
-        cfg.extraConfig
-      ];
-
-
-      /* Produces a JBoss CLI script that creates paths and sets
-         attributes matching those described by `attrs`. When the
-         script is run, the existing settings are effectively overlayed
-         by those from `attrs`. Existing attributes can be unset by
-         defining them `null`.
-
-         JBoss paths and attributes / maps are distinguished by their
-         name, where paths follow a `key=value` scheme.
-
-         Example:
-           mkJbossScript {
-             "subsystem=keycloak-server"."spi=hostname" = {
-               "provider=fixed" = null;
-               "provider=default" = {
-                 enabled = true;
-                 properties = {
-                   inherit frontendUrl;
-                   forceBackendUrlToFrontendUrl = false;
-                 };
-               };
-             };
-           }
-           => ''
-             if (outcome != success) of /:read-resource()
-                 /:add()
-             end-if
-             if (outcome != success) of /subsystem=keycloak-server:read-resource()
-                 /subsystem=keycloak-server:add()
-             end-if
-             if (outcome != success) of /subsystem=keycloak-server/spi=hostname:read-resource()
-                 /subsystem=keycloak-server/spi=hostname:add()
-             end-if
-             if (outcome != success) of /subsystem=keycloak-server/spi=hostname/provider=default:read-resource()
-                 /subsystem=keycloak-server/spi=hostname/provider=default:add(enabled = true, properties = { forceBackendUrlToFrontendUrl = false, frontendUrl = "https://keycloak.example.com/auth" })
-             end-if
-             if (result != true) of /subsystem=keycloak-server/spi=hostname/provider=default:read-attribute(name="enabled")
-               /subsystem=keycloak-server/spi=hostname/provider=default:write-attribute(name=enabled, value=true)
-             end-if
-             if (result != false) of /subsystem=keycloak-server/spi=hostname/provider=default:read-attribute(name="properties.forceBackendUrlToFrontendUrl")
-               /subsystem=keycloak-server/spi=hostname/provider=default:write-attribute(name=properties.forceBackendUrlToFrontendUrl, value=false)
-             end-if
-             if (result != "https://keycloak.example.com/auth") of /subsystem=keycloak-server/spi=hostname/provider=default:read-attribute(name="properties.frontendUrl")
-               /subsystem=keycloak-server/spi=hostname/provider=default:write-attribute(name=properties.frontendUrl, value="https://keycloak.example.com/auth")
-             end-if
-             if (outcome != success) of /subsystem=keycloak-server/spi=hostname/provider=fixed:read-resource()
-                 /subsystem=keycloak-server/spi=hostname/provider=fixed:remove()
-             end-if
-           ''
-      */
-      mkJbossScript = attrs:
-        let
-          /* From a JBoss path and an attrset, produces a JBoss CLI
-             snippet that writes the corresponding attributes starting
-             at `path`. Recurses down into subattrsets as necessary,
-             producing the variable name from its full path in the
-             attrset.
-
-             Example:
-               writeAttributes "/subsystem=keycloak-server/spi=hostname/provider=default" {
-                 enabled = true;
-                 properties = {
-                   forceBackendUrlToFrontendUrl = false;
-                   frontendUrl = "https://keycloak.example.com/auth";
-                 };
-               }
-               => ''
-                 if (result != true) of /subsystem=keycloak-server/spi=hostname/provider=default:read-attribute(name="enabled")
-                   /subsystem=keycloak-server/spi=hostname/provider=default:write-attribute(name=enabled, value=true)
-                 end-if
-                 if (result != false) of /subsystem=keycloak-server/spi=hostname/provider=default:read-attribute(name="properties.forceBackendUrlToFrontendUrl")
-                   /subsystem=keycloak-server/spi=hostname/provider=default:write-attribute(name=properties.forceBackendUrlToFrontendUrl, value=false)
-                 end-if
-                 if (result != "https://keycloak.example.com/auth") of /subsystem=keycloak-server/spi=hostname/provider=default:read-attribute(name="properties.frontendUrl")
-                   /subsystem=keycloak-server/spi=hostname/provider=default:write-attribute(name=properties.frontendUrl, value="https://keycloak.example.com/auth")
-                 end-if
-               ''
-          */
-          writeAttributes = path: set:
-            let
-              # JBoss expressions like `${var}` need to be prefixed
-              # with `expression` to evaluate.
-              prefixExpression = string:
-                let
-                  matchResult = match ''"\$\{.*}"'' string;
-                in
-                if matchResult != null then
-                  "expression " + string
-                else
-                  string;
-
-              writeAttribute = attribute: value:
-                let
-                  type = typeOf value;
-                in
-                if type == "set" then
-                  let
-                    names = attrNames value;
-                  in
-                  foldl' (text: name: text + (writeAttribute "${attribute}.${name}" value.${name})) "" names
-                else if value == null then ''
-                  if (outcome == success) of ${path}:read-attribute(name="${attribute}")
-                      ${path}:undefine-attribute(name="${attribute}")
-                  end-if
-                ''
-                else if elem type [ "string" "path" "bool" ] then
-                  let
-                    value' = if type == "bool" then boolToString value else ''"${value}"'';
-                  in
-                  ''
-                    if (result != ${prefixExpression value'}) of ${path}:read-attribute(name="${attribute}")
-                      ${path}:write-attribute(name=${attribute}, value=${value'})
-                    end-if
-                  ''
-                else throw "Unsupported type '${type}' for path '${path}'!";
-            in
-            concatStrings
-              (mapAttrsToList
-                (attribute: value: (writeAttribute attribute value))
-                set);
-
-
-          /* Produces an argument list for the JBoss `add()` function,
-             which adds a JBoss path and takes as its arguments the
-             required subpaths and attributes.
-
-             Example:
-               makeArgList {
-                 enabled = true;
-                 properties = {
-                   forceBackendUrlToFrontendUrl = false;
-                   frontendUrl = "https://keycloak.example.com/auth";
-                 };
-               }
-               => ''
-                 enabled = true, properties = { forceBackendUrlToFrontendUrl = false, frontendUrl = "https://keycloak.example.com/auth" }
-               ''
-          */
-          makeArgList = set:
-            let
-              makeArg = attribute: value:
-                let
-                  type = typeOf value;
-                in
-                if type == "set" then
-                  "${attribute} = { " + (makeArgList value) + " }"
-                else if elem type [ "string" "path" "bool" ] then
-                  "${attribute} = ${if type == "bool" then boolToString value else ''"${value}"''}"
-                else if value == null then
-                  ""
-                else
-                  throw "Unsupported type '${type}' for attribute '${attribute}'!";
-
-            in
-            concatStringsSep ", " (mapAttrsToList makeArg set);
-
-
-          /* Recurses into the `nodeValue` attrset. Only subattrsets that
-             are JBoss paths, i.e. follows the `key=value` format, are recursed
-             into - the rest are considered JBoss attributes / maps.
-          */
-          recurse = nodePath: nodeValue:
-            let
-              nodeContent =
-                if isAttrs nodeValue && nodeValue._type or "" == "order" then
-                  nodeValue.content
-                else
-                  nodeValue;
-              isPath = name:
-                let
-                  value = nodeContent.${name};
-                in
-                if (match ".*([=]).*" name) == [ "=" ] then
-                  if isAttrs value || value == null then
-                    true
-                  else
-                    throw "Parsing path '${concatStringsSep "." (nodePath ++ [ name ])}' failed: JBoss attributes cannot contain '='!"
-                else
-                  false;
-              jbossPath = "/" + concatStringsSep "/" nodePath;
-              children = if !isAttrs nodeContent then { } else nodeContent;
-              subPaths = filter isPath (attrNames children);
-              getPriority = name:
-                let
-                  value = children.${name};
-                in
-                if value._type or "" == "order" then value.priority else 1000;
-              orderedSubPaths = sort (a: b: getPriority a < getPriority b) subPaths;
-              jbossAttrs = filterAttrs (name: _: !(isPath name)) children;
-              text =
-                if nodeContent != null then
-                  ''
-                    if (outcome != success) of ${jbossPath}:read-resource()
-                        ${jbossPath}:add(${makeArgList jbossAttrs})
-                    end-if
-                  '' + writeAttributes jbossPath jbossAttrs
-                else
-                  ''
-                    if (outcome == success) of ${jbossPath}:read-resource()
-                        ${jbossPath}:remove()
-                    end-if
-                  '';
-            in
-            text + concatMapStringsSep "\n" (name: recurse (nodePath ++ [ name ]) children.${name}) orderedSubPaths;
-        in
-        recurse [ ] attrs;
-
-      jbossCliScript = pkgs.writeText "jboss-cli-script" (mkJbossScript keycloakConfig');
-
-      keycloakConfig = pkgs.runCommand "keycloak-config"
-        {
-          nativeBuildInputs = [ cfg.package ];
-        }
-        ''
-          export JBOSS_BASE_DIR="$(pwd -P)";
-          export JBOSS_MODULEPATH="${cfg.package}/modules";
-          export JBOSS_LOG_DIR="$JBOSS_BASE_DIR/log";
-
-          cp -r ${cfg.package}/standalone/configuration .
-          chmod -R u+rwX ./configuration
-
-          mkdir -p {deployments,ssl}
-
-          standalone.sh&
-
-          attempt=1
-          max_attempts=30
-          while ! jboss-cli.sh --connect ':read-attribute(name=server-state)'; do
-              if [[ "$attempt" == "$max_attempts" ]]; then
-                  echo "ERROR: Could not connect to Keycloak after $attempt attempts! Failing.." >&2
-                  exit 1
-              fi
-              echo "Keycloak not fully started yet, retrying.. ($attempt/$max_attempts)"
-              sleep 1
-              (( attempt++ ))
-          done
-
-          jboss-cli.sh --connect --file=${jbossCliScript} --echo-command
+      keycloakConfig = lib.generators.toKeyValue {
+        mkKeyValue = lib.flip lib.generators.mkKeyValueDefault "=" {
+          mkValueString = v: with builtins;
+            if isInt v then toString v
+            else if isString v then v
+            else if true == v then "true"
+            else if false == v then "false"
+            else if isSecret v then hashString "sha256" v._secret
+            else throw "unsupported type ${typeOf v}: ${(lib.generators.toPretty {}) v}";
+        };
+      };
 
-          cp configuration/standalone.xml $out
-        '';
+      isSecret = v: isAttrs v && v ? _secret && isString v._secret;
+      filteredConfig = lib.converge (lib.filterAttrsRecursive (_: v: ! elem v [{ } null])) cfg.settings;
+      confFile = pkgs.writeText "keycloak.conf" (keycloakConfig filteredConfig);
+      keycloakBuild = cfg.package.override {
+        inherit confFile;
+        plugins = cfg.package.enabledPlugins ++ cfg.plugins;
+      };
     in
     mkIf cfg.enable
       {
@@ -689,7 +511,45 @@ in
           }
         ];
 
-        environment.systemPackages = [ cfg.package ];
+        environment.systemPackages = [ keycloakBuild ];
+
+        services.keycloak.settings =
+          let
+            postgresParams = concatStringsSep "&" (
+              optionals cfg.database.useSSL [
+                "ssl=true"
+              ] ++ optionals (cfg.database.caCert != null) [
+                "sslrootcert=${cfg.database.caCert}"
+                "sslmode=verify-ca"
+              ]
+            );
+            mariadbParams = concatStringsSep "&" ([
+              "characterEncoding=UTF-8"
+            ] ++ optionals cfg.database.useSSL [
+              "useSSL=true"
+              "requireSSL=true"
+              "verifyServerCertificate=true"
+            ] ++ optionals (cfg.database.caCert != null) [
+              "trustCertificateKeyStoreUrl=file:${mySqlCaKeystore}"
+              "trustCertificateKeyStorePassword=notsosecretpassword"
+            ]);
+            dbProps = if cfg.database.type == "postgresql" then postgresParams else mariadbParams;
+          in
+          mkMerge [
+            {
+              db = if cfg.database.type == "postgresql" then "postgres" else cfg.database.type;
+              db-username = if databaseActuallyCreateLocally then "keycloak" else cfg.database.username;
+              db-password._secret = cfg.database.passwordFile;
+              db-url-host = "${cfg.database.host}:${toString cfg.database.port}";
+              db-url-database = if databaseActuallyCreateLocally then "keycloak" else cfg.database.name;
+              db-url-properties = prefixUnlessEmpty "?" dbProps;
+              db-url = null;
+            }
+            (mkIf (cfg.sslCertificate != null && cfg.sslCertificateKey != null) {
+              https-certificate-file = "/run/keycloak/ssl/ssl_cert";
+              https-certificate-key-file = "/run/keycloak/ssl/ssl_key";
+            })
+          ];
 
         systemd.services.keycloakPostgreSQLInit = mkIf createLocalPostgreSQL {
           after = [ "postgresql.service" ];
@@ -752,41 +612,37 @@ in
                 "mysql.service"
               ]
               else [ ];
+            secretPaths = catAttrs "_secret" (collect isSecret cfg.settings);
+            mkSecretReplacement = file: ''
+              replace-secret ${hashString "sha256" file} $CREDENTIALS_DIRECTORY/${baseNameOf file} /run/keycloak/conf/keycloak.conf
+            '';
+            secretReplacements = lib.concatMapStrings mkSecretReplacement secretPaths;
           in
           {
             after = databaseServices;
             bindsTo = databaseServices;
             wantedBy = [ "multi-user.target" ];
             path = with pkgs; [
-              cfg.package
+              keycloakBuild
               openssl
               replace-secret
             ];
             environment = {
-              JBOSS_LOG_DIR = "/var/log/keycloak";
-              JBOSS_BASE_DIR = "/run/keycloak";
-              JBOSS_MODULEPATH = "${cfg.package}/modules";
+              KC_HOME_DIR = "/run/keycloak";
+              KC_CONF_DIR = "/run/keycloak/conf";
             };
             serviceConfig = {
-              LoadCredential = [
-                "db_password:${cfg.database.passwordFile}"
-              ] ++ optionals (cfg.sslCertificate != null && cfg.sslCertificateKey != null) [
-                "ssl_cert:${cfg.sslCertificate}"
-                "ssl_key:${cfg.sslCertificateKey}"
-              ];
+              LoadCredential =
+                map (p: "${baseNameOf p}:${p}") secretPaths
+                ++ optionals (cfg.sslCertificate != null && cfg.sslCertificateKey != null) [
+                  "ssl_cert:${cfg.sslCertificate}"
+                  "ssl_key:${cfg.sslCertificateKey}"
+                ];
               User = "keycloak";
               Group = "keycloak";
               DynamicUser = true;
-              RuntimeDirectory = map (p: "keycloak/" + p) [
-                "configuration"
-                "deployments"
-                "data"
-                "ssl"
-                "log"
-                "tmp"
-              ];
+              RuntimeDirectory = "keycloak";
               RuntimeDirectoryMode = 0700;
-              LogsDirectory = "keycloak";
               AmbientCapabilities = "CAP_NET_BIND_SERVICE";
             };
             script = ''
@@ -795,41 +651,30 @@ in
 
               umask u=rwx,g=,o=
 
-              install_plugin() {
-                if [ -d "$1" ]; then
-                  find "$1" -type f \( -iname \*.ear -o -iname \*.jar \) -exec install -m 0500 -o keycloak -g keycloak "{}" "/run/keycloak/deployments/" \;
-                else
-                  install -m 0500 -o keycloak -g keycloak "$1" "/run/keycloak/deployments/"
-                fi
-              }
-
-              install -m 0600 ${cfg.package}/standalone/configuration/*.properties /run/keycloak/configuration
-              install -T -m 0600 ${keycloakConfig} /run/keycloak/configuration/standalone.xml
-
-              replace-secret '@db-password@' "$CREDENTIALS_DIRECTORY/db_password" /run/keycloak/configuration/standalone.xml
-
-              export JAVA_OPTS=-Djboss.server.config.user.dir=/run/keycloak/configuration
-              add-user-keycloak.sh -u admin -p '${cfg.initialAdminPassword}'
-            ''
-            + lib.optionalString (cfg.plugins != []) (lib.concatStringsSep "\n" (map (pl: "install_plugin ${lib.escapeShellArg pl}") cfg.plugins)) + "\n"
-            + optionalString (cfg.sslCertificate != null && cfg.sslCertificateKey != null) ''
-              pushd /run/keycloak/ssl/
-              cat "$CREDENTIALS_DIRECTORY/ssl_cert" <(echo) \
-                  "$CREDENTIALS_DIRECTORY/ssl_key" <(echo) \
-                  /etc/ssl/certs/ca-certificates.crt \
-                  > allcerts.pem
-              openssl pkcs12 -export -in "$CREDENTIALS_DIRECTORY/ssl_cert" -inkey "$CREDENTIALS_DIRECTORY/ssl_key" -chain \
-                             -name "${cfg.frontendUrl}" -out certificate_private_key_bundle.p12 \
-                             -CAfile allcerts.pem -passout pass:notsosecretpassword
-              popd
+              ln -s ${themesBundle} /run/keycloak/themes
+              ln -s ${keycloakBuild}/providers /run/keycloak/
+
+              install -D -m 0600 ${confFile} /run/keycloak/conf/keycloak.conf
+
+              ${secretReplacements}
+
+            '' + optionalString (cfg.sslCertificate != null && cfg.sslCertificateKey != null) ''
+              mkdir -p /run/keycloak/ssl
+              cp $CREDENTIALS_DIRECTORY/ssl_{cert,key} /run/keycloak/ssl/
             '' + ''
-              ${cfg.package}/bin/standalone.sh
+              export KEYCLOAK_ADMIN=admin
+              export KEYCLOAK_ADMIN_PASSWORD=${cfg.initialAdminPassword}
+              kc.sh start
             '';
           };
 
         services.postgresql.enable = mkDefault createLocalPostgreSQL;
         services.mysql.enable = mkDefault createLocalMySQL;
-        services.mysql.package = mkIf createLocalMySQL pkgs.mariadb;
+        services.mysql.package =
+          let
+            dbPkg = if cfg.database.type == "mariadb" then pkgs.mariadb else pkgs.mysql80;
+          in
+          mkIf createLocalMySQL (mkDefault dbPkg);
       };
 
   meta.doc = ./keycloak.xml;
diff --git a/nixos/modules/services/web-apps/keycloak.xml b/nixos/modules/services/web-apps/keycloak.xml
index cb706932f48f5..861756e33ac09 100644
--- a/nixos/modules/services/web-apps/keycloak.xml
+++ b/nixos/modules/services/web-apps/keycloak.xml
@@ -27,10 +27,10 @@
 
      <para>
        Refer to the <link
-       xlink:href="https://www.keycloak.org/docs/latest/server_admin/index.html#admin-console">Admin
-       Console section of the Keycloak Server Administration Guide</link> for
-       information on how to administer your
-       <productname>Keycloak</productname> instance.
+       xlink:href="https://www.keycloak.org/docs/latest/server_admin/index.html">
+       Keycloak Server Administration Guide</link> for information on
+       how to administer your <productname>Keycloak</productname>
+       instance.
      </para>
    </section>
 
@@ -38,27 +38,28 @@
      <title>Database access</title>
      <para>
        <productname>Keycloak</productname> can be used with either
-       <productname>PostgreSQL</productname> or
+       <productname>PostgreSQL</productname>,
+       <productname>MariaDB</productname> or
        <productname>MySQL</productname>. Which one is used can be
        configured in <xref
        linkend="opt-services.keycloak.database.type" />. The selected
        database will automatically be enabled and a database and role
        created unless <xref
-       linkend="opt-services.keycloak.database.host" /> is changed from
-       its default of <literal>localhost</literal> or <xref
-       linkend="opt-services.keycloak.database.createLocally" /> is set
-       to <literal>false</literal>.
+       linkend="opt-services.keycloak.database.host" /> is changed
+       from its default of <literal>localhost</literal> or <xref
+       linkend="opt-services.keycloak.database.createLocally" /> is
+       set to <literal>false</literal>.
      </para>
 
      <para>
        External database access can also be configured by setting
        <xref linkend="opt-services.keycloak.database.host" />, <xref
+       linkend="opt-services.keycloak.database.name" />, <xref
        linkend="opt-services.keycloak.database.username" />, <xref
        linkend="opt-services.keycloak.database.useSSL" /> and <xref
        linkend="opt-services.keycloak.database.caCert" /> as
-       appropriate. Note that you need to manually create a database
-       called <literal>keycloak</literal> and allow the configured
-       database user full access to it.
+       appropriate. Note that you need to manually create the database
+       and allow the configured database user full access to it.
      </para>
 
      <para>
@@ -79,22 +80,27 @@
      </warning>
    </section>
 
-   <section xml:id="module-services-keycloak-frontendurl">
-     <title>Frontend URL</title>
+   <section xml:id="module-services-keycloak-hostname">
+     <title>Hostname</title>
      <para>
-       The frontend URL is used as base for all frontend requests and
-       must be configured through <xref linkend="opt-services.keycloak.frontendUrl" />.
-       It should normally include a trailing <literal>/auth</literal>
-       (the default web context). If you use a reverse proxy, you need
-       to set this option to <literal>""</literal>, so that frontend URL
-       is derived from HTTP headers. <literal>X-Forwarded-*</literal> headers
-       support also should be enabled, using <link
-       xlink:href="https://www.keycloak.org/docs/latest/server_installation/index.html#identifying-client-ip-addresses">
-       respective guidelines</link>.
+       The hostname is used to build the public URL used as base for
+       all frontend requests and must be configured through <xref
+       linkend="opt-services.keycloak.settings.hostname" />.
      </para>
 
+     <note>
+       <para>
+         If you're migrating an old Wildfly based Keycloak instance
+         and want to keep compatibility with your current clients,
+         you'll likely want to set <xref
+         linkend="opt-services.keycloak.settings.http-relative-path"
+         /> to <literal>/auth</literal>. See the option description
+         for more details.
+       </para>
+     </note>
+
      <para>
-       <xref linkend="opt-services.keycloak.forceBackendUrlToFrontendUrl" />
+       <xref linkend="opt-services.keycloak.settings.hostname-strict-backchannel" />
        determines whether Keycloak should force all requests to go
        through the frontend URL. By default,
        <productname>Keycloak</productname> allows backend requests to
@@ -104,10 +110,10 @@
      </para>
 
      <para>
-       See the <link
-       xlink:href="https://www.keycloak.org/docs/latest/server_installation/#_hostname">Hostname
-       section of the Keycloak Server Installation and Configuration
-       Guide</link> for more information.
+        For more information on hostname configuration, see the <link
+        xlink:href="https://www.keycloak.org/server/hostname">Hostname
+        section of the Keycloak Server Installation and Configuration
+        Guide</link>.
      </para>
    </section>
 
@@ -139,68 +145,40 @@
    <section xml:id="module-services-keycloak-themes">
      <title>Themes</title>
      <para>
-        You can package custom themes and make them visible to Keycloak via
-        <xref linkend="opt-services.keycloak.themes" />
-        option. See the <link xlink:href="https://www.keycloak.org/docs/latest/server_development/#_themes">
+        You can package custom themes and make them visible to
+        Keycloak through <xref linkend="opt-services.keycloak.themes"
+        />. See the <link
+        xlink:href="https://www.keycloak.org/docs/latest/server_development/#_themes">
         Themes section of the Keycloak Server Development Guide</link>
-        and respective NixOS option description for more information.
+        and the description of the aforementioned NixOS option for
+        more information.
      </para>
    </section>
 
-   <section xml:id="module-services-keycloak-extra-config">
-     <title>Additional configuration</title>
+   <section xml:id="module-services-keycloak-settings">
+     <title>Configuration file settings</title>
      <para>
-       Additional Keycloak configuration options, for which no
-       explicit <productname>NixOS</productname> options are provided,
-       can be set in <xref linkend="opt-services.keycloak.extraConfig" />.
+       Keycloak server configuration parameters can be set in <xref
+       linkend="opt-services.keycloak.settings" />. These correspond
+       directly to options in
+       <filename>conf/keycloak.conf</filename>. Some of the most
+       important parameters are documented as suboptions, the rest can
+       be found in the <link
+       xlink:href="https://www.keycloak.org/server/all-config">All
+       configuration section of the Keycloak Server Installation and
+       Configuration Guide</link>.
      </para>
 
      <para>
-       Options are expressed as a Nix attribute set which matches the
-       structure of the jboss-cli configuration. The configuration is
-       effectively overlayed on top of the default configuration
-       shipped with Keycloak. To remove existing nodes and undefine
-       attributes from the default configuration, set them to
-       <literal>null</literal>.
-     </para>
-     <para>
-       For example, the following script, which removes the hostname
-       provider <literal>default</literal>, adds the deprecated
-       hostname provider <literal>fixed</literal> and defines it the
-       default:
-
-<programlisting>
-/subsystem=keycloak-server/spi=hostname/provider=default:remove()
-/subsystem=keycloak-server/spi=hostname/provider=fixed:add(enabled = true, properties = { hostname = "keycloak.example.com" })
-/subsystem=keycloak-server/spi=hostname:write-attribute(name=default-provider, value="fixed")
-</programlisting>
-
-       would be expressed as
-
-<programlisting>
-services.keycloak.extraConfig = {
-  "subsystem=keycloak-server" = {
-    "spi=hostname" = {
-      "provider=default" = null;
-      "provider=fixed" = {
-        enabled = true;
-        properties.hostname = "keycloak.example.com";
-      };
-      default-provider = "fixed";
-    };
-  };
-};
-</programlisting>
-     </para>
-     <para>
-       You can discover available options by using the <link
-       xlink:href="http://docs.wildfly.org/21/Admin_Guide.html#Command_Line_Interface">jboss-cli.sh</link>
-       program and by referring to the <link
-       xlink:href="https://www.keycloak.org/docs/latest/server_installation/index.html">Keycloak
-       Server Installation and Configuration Guide</link>.
+       Options containing secret data should be set to an attribute
+       set containing the attribute <literal>_secret</literal> - a
+       string pointing to a file containing the value the option
+       should be set to. See the description of <xref
+       linkend="opt-services.keycloak.settings" /> for an example.
      </para>
    </section>
 
+
    <section xml:id="module-services-keycloak-example-config">
      <title>Example configuration</title>
      <para>
@@ -208,9 +186,11 @@ services.keycloak.extraConfig = {
 <programlisting>
 services.keycloak = {
   <link linkend="opt-services.keycloak.enable">enable</link> = true;
+  settings = {
+    <link linkend="opt-services.keycloak.settings.hostname">hostname</link> = "keycloak.example.com";
+    <link linkend="opt-services.keycloak.settings.hostname-strict-backchannel">hostname-strict-backchannel</link> = true;
+  };
   <link linkend="opt-services.keycloak.initialAdminPassword">initialAdminPassword</link> = "e6Wcm0RrtegMEHl";  # change on first login
-  <link linkend="opt-services.keycloak.frontendUrl">frontendUrl</link> = "https://keycloak.example.com/auth";
-  <link linkend="opt-services.keycloak.forceBackendUrlToFrontendUrl">forceBackendUrlToFrontendUrl</link> = true;
   <link linkend="opt-services.keycloak.sslCertificate">sslCertificate</link> = "/run/keys/ssl_cert";
   <link linkend="opt-services.keycloak.sslCertificateKey">sslCertificateKey</link> = "/run/keys/ssl_key";
   <link linkend="opt-services.keycloak.database.passwordFile">database.passwordFile</link> = "/run/keys/db_password";
diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix
index b32220a5e5790..a4b886821ebf7 100644
--- a/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixos/modules/services/web-apps/nextcloud.nix
@@ -251,6 +251,23 @@ in {
       '';
     };
 
+    database = {
+
+      createLocally = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Create the database and database user locally. Only available for
+          mysql database.
+          Note that this option will use the latest version of MariaDB which
+          is not officially supported by Nextcloud. As for now a workaround
+          is used to also support MariaDB version >= 10.6.
+        '';
+      };
+
+    };
+
+
     config = {
       dbtype = mkOption {
         type = types.enum [ "sqlite" "pgsql" "mysql" ];
@@ -505,6 +522,29 @@ in {
         The nextcloud-occ program preconfigured to target this Nextcloud instance.
       '';
     };
+    globalProfiles = mkEnableOption "global profiles" // {
+      description = ''
+        Makes user-profiles globally available under <literal>nextcloud.tld/u/user.name</literal>.
+        Even though it's enabled by default in Nextcloud, it must be explicitly enabled
+        here because it has the side-effect that personal information is even accessible to
+        unauthenticated users by default.
+
+        By default, the following properties are set to <quote>Show to everyone</quote>
+        if this flag is enabled:
+        <itemizedlist>
+        <listitem><para>About</para></listitem>
+        <listitem><para>Full name</para></listitem>
+        <listitem><para>Headline</para></listitem>
+        <listitem><para>Organisation</para></listitem>
+        <listitem><para>Profile picture</para></listitem>
+        <listitem><para>Role</para></listitem>
+        <listitem><para>Twitter</para></listitem>
+        <listitem><para>Website</para></listitem>
+        </itemizedlist>
+
+        Only has an effect in Nextcloud 23 and later.
+      '';
+    };
 
     nginx.recommendedHttpHeaders = mkOption {
       type = types.bool;
@@ -583,6 +623,12 @@ in {
         else pkgs.php80;
     }
 
+    { assertions = [
+      { assertion = cfg.database.createLocally -> cfg.config.dbtype == "mysql";
+        message = ''services.nextcloud.config.dbtype must be set to mysql if services.nextcloud.database.createLocally is set to true.'';
+      }
+    ]; }
+
     { systemd.timers.nextcloud-cron = {
         wantedBy = [ "timers.target" ];
         timerConfig.OnBootSec = "5m";
@@ -627,6 +673,8 @@ in {
               if x == null then "false"
               else boolToString x;
 
+          nextcloudGreaterOrEqualThan = req: versionAtLeast cfg.package.version req;
+
           overrideConfig = pkgs.writeText "nextcloud-config.php" ''
             <?php
             ${optionalString requiresReadSecretFunction ''
@@ -666,6 +714,7 @@ in {
               'trusted_domains' => ${writePhpArrary ([ cfg.hostName ] ++ c.extraTrustedDomains)},
               'trusted_proxies' => ${writePhpArrary (c.trustedProxies)},
               ${optionalString (c.defaultPhoneRegion != null) "'default_phone_region' => '${c.defaultPhoneRegion}',"}
+              ${optionalString (nextcloudGreaterOrEqualThan "23") "'profile.enabled' => ${boolToString cfg.globalProfiles}"}
               ${objectstoreConfig}
             ];
           '';
@@ -811,6 +860,32 @@ in {
 
       environment.systemPackages = [ occ ];
 
+      services.mysql = lib.mkIf cfg.database.createLocally {
+        enable = true;
+        package = lib.mkDefault pkgs.mariadb;
+        ensureDatabases = [ cfg.config.dbname ];
+        ensureUsers = [{
+          name = cfg.config.dbuser;
+          ensurePermissions = { "${cfg.config.dbname}.*" = "ALL PRIVILEGES"; };
+        }];
+        # FIXME(@Ma27) Nextcloud isn't compatible with mariadb 10.6,
+        # this is a workaround.
+        # See https://help.nextcloud.com/t/update-to-next-cloud-21-0-2-has-get-an-error/117028/22
+        settings = {
+          mysqld = {
+            innodb_read_only_compressed = 0;
+          };
+        };
+        initialScript = pkgs.writeText "mysql-init" ''
+          CREATE USER '${cfg.config.dbname}'@'localhost' IDENTIFIED BY '${builtins.readFile( cfg.config.dbpassFile )}';
+          CREATE DATABASE IF NOT EXISTS ${cfg.config.dbname};
+          GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER,
+            CREATE TEMPORARY TABLES ON ${cfg.config.dbname}.* TO '${cfg.config.dbuser}'@'localhost'
+            IDENTIFIED BY '${builtins.readFile( cfg.config.dbpassFile )}';
+          FLUSH privileges;
+        '';
+      };
+
       services.nginx.enable = mkDefault true;
 
       services.nginx.virtualHosts.${cfg.hostName} = {
diff --git a/nixos/modules/services/web-apps/nifi.nix b/nixos/modules/services/web-apps/nifi.nix
new file mode 100644
index 0000000000000..21a631272641a
--- /dev/null
+++ b/nixos/modules/services/web-apps/nifi.nix
@@ -0,0 +1,318 @@
+{ lib, pkgs, config, options, ... }:
+
+let
+  cfg = config.services.nifi;
+  opt = options.services.nifi;
+
+  env = {
+    NIFI_OVERRIDE_NIFIENV = "true";
+    NIFI_HOME = "/var/lib/nifi";
+    NIFI_PID_DIR = "/run/nifi";
+    NIFI_LOG_DIR = "/var/log/nifi";
+  };
+
+  envFile = pkgs.writeText "nifi.env" (lib.concatMapStrings (s: s + "\n") (
+    (lib.concatLists (lib.mapAttrsToList (name: value:
+      if value != null then [
+        "${name}=\"${toString value}\""
+      ] else []
+    ) env))));
+
+  nifiEnv = pkgs.writeShellScriptBin "nifi-env" ''
+    set -a
+    source "${envFile}"
+    eval -- "\$@"
+  '';
+
+in {
+  options = {
+    services.nifi = {
+      enable = lib.mkEnableOption "Apache NiFi";
+
+      package = lib.mkOption {
+        type = lib.types.package;
+        default = pkgs.nifi;
+        defaultText = lib.literalExpression "pkgs.nifi";
+        description = "Apache NiFi package to use.";
+      };
+
+      user = lib.mkOption {
+        type = lib.types.str;
+        default = "nifi";
+        description = "User account where Apache NiFi runs.";
+      };
+
+      group = lib.mkOption {
+        type = lib.types.str;
+        default = "nifi";
+        description = "Group account where Apache NiFi runs.";
+      };
+
+      enableHTTPS = lib.mkOption {
+        type = lib.types.bool;
+        default = true;
+        description = "Enable HTTPS protocol. Don`t use in production.";
+      };
+
+      listenHost = lib.mkOption {
+        type = lib.types.str;
+        default = if cfg.enableHTTPS then "0.0.0.0" else "127.0.0.1";
+        defaultText = lib.literalExpression ''
+          if config.${opt.enableHTTPS}
+          then "0.0.0.0"
+          else "127.0.0.1"
+        '';
+        description = "Bind to an ip for Apache NiFi web-ui.";
+      };
+
+      listenPort = lib.mkOption {
+        type = lib.types.int;
+        default = if cfg.enableHTTPS then 8443 else 8080;
+        defaultText = lib.literalExpression ''
+          if config.${opt.enableHTTPS}
+          then "8443"
+          else "8000"
+        '';
+        description = "Bind to a port for Apache NiFi web-ui.";
+      };
+
+      proxyHost = lib.mkOption {
+        type = lib.types.nullOr lib.types.str;
+        default = if cfg.enableHTTPS then "0.0.0.0" else null;
+        defaultText = lib.literalExpression ''
+          if config.${opt.enableHTTPS}
+          then "0.0.0.0"
+          else null
+        '';
+        description = "Allow requests from a specific host.";
+      };
+
+      proxyPort = lib.mkOption {
+        type = lib.types.nullOr lib.types.int;
+        default = if cfg.enableHTTPS then 8443 else null;
+        defaultText = lib.literalExpression ''
+          if config.${opt.enableHTTPS}
+          then "8443"
+          else null
+        '';
+        description = "Allow requests from a specific port.";
+      };
+
+      initUser = lib.mkOption {
+        type = lib.types.nullOr lib.types.str;
+        default = null;
+        description = "Initial user account for Apache NiFi. Username must be at least 4 characters.";
+      };
+
+      initPasswordFile = lib.mkOption {
+        type = lib.types.nullOr lib.types.path;
+        default = null;
+        example = "/run/keys/nifi/password-nifi";
+        description = "nitial password for Apache NiFi. Password must be at least 12 characters.";
+      };
+
+      initJavaHeapSize = lib.mkOption {
+        type = lib.types.nullOr lib.types.int;
+        default = null;
+        example = 1024;
+        description = "Set the initial heap size for the JVM in MB.";
+      };
+
+      maxJavaHeapSize = lib.mkOption {
+        type = lib.types.nullOr lib.types.int;
+        default = null;
+        example = 2048;
+        description = "Set the initial heap size for the JVM in MB.";
+      };
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    assertions = [
+      { assertion = cfg.initUser!=null || cfg.initPasswordFile==null;
+          message = ''
+            <option>services.nifi.initUser</option> needs to be set if <option>services.nifi.initPasswordFile</option> enabled.
+          '';
+      }
+      { assertion = cfg.initUser==null || cfg.initPasswordFile!=null;
+          message = ''
+            <option>services.nifi.initPasswordFile</option> needs to be set if <option>services.nifi.initUser</option> enabled.
+          '';
+      }
+      { assertion = cfg.proxyHost==null || cfg.proxyPort!=null;
+          message = ''
+            <option>services.nifi.proxyPort</option> needs to be set if <option>services.nifi.proxyHost</option> value specified.
+          '';
+      }
+      { assertion = cfg.proxyHost!=null || cfg.proxyPort==null;
+          message = ''
+            <option>services.nifi.proxyHost</option> needs to be set if <option>services.nifi.proxyPort</option> value specified.
+          '';
+      }
+      { assertion = cfg.initJavaHeapSize==null || cfg.maxJavaHeapSize!=null;
+          message = ''
+            <option>services.nifi.maxJavaHeapSize</option> needs to be set if <option>services.nifi.initJavaHeapSize</option> value specified.
+          '';
+      }
+      { assertion = cfg.initJavaHeapSize!=null || cfg.maxJavaHeapSize==null;
+          message = ''
+            <option>services.nifi.initJavaHeapSize</option> needs to be set if <option>services.nifi.maxJavaHeapSize</option> value specified.
+          '';
+      }
+    ];
+
+    warnings = lib.optional (cfg.enableHTTPS==false) ''
+      Please do not disable HTTPS mode in production. In this mode, access to the nifi is opened without authentication.
+    '';
+
+    systemd.tmpfiles.rules = [
+      "d '/var/lib/nifi/conf' 0750 ${cfg.user} ${cfg.group}"
+      "L+ '/var/lib/nifi/lib' - - - - ${cfg.package}/lib"
+    ];
+
+
+    systemd.services.nifi = {
+      description = "Apache NiFi";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+
+      environment = env;
+      path = [ pkgs.gawk ];
+
+      serviceConfig = {
+        Type = "forking";
+        PIDFile = "/run/nifi/nifi.pid";
+        ExecStartPre = pkgs.writeScript "nifi-pre-start.sh" ''
+          #!/bin/sh
+          umask 077
+          test -f '/var/lib/nifi/conf/authorizers.xml'                      || (cp '${cfg.package}/share/nifi/conf/authorizers.xml' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/authorizers.xml')
+          test -f '/var/lib/nifi/conf/bootstrap.conf'                       || (cp '${cfg.package}/share/nifi/conf/bootstrap.conf' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/bootstrap.conf')
+          test -f '/var/lib/nifi/conf/bootstrap-hashicorp-vault.conf'       || (cp '${cfg.package}/share/nifi/conf/bootstrap-hashicorp-vault.conf' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/bootstrap-hashicorp-vault.conf')
+          test -f '/var/lib/nifi/conf/bootstrap-notification-services.xml'  || (cp '${cfg.package}/share/nifi/conf/bootstrap-notification-services.xml' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/bootstrap-notification-services.xml')
+          test -f '/var/lib/nifi/conf/logback.xml'                          || (cp '${cfg.package}/share/nifi/conf/logback.xml' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/logback.xml')
+          test -f '/var/lib/nifi/conf/login-identity-providers.xml'         || (cp '${cfg.package}/share/nifi/conf/login-identity-providers.xml' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/login-identity-providers.xml')
+          test -f '/var/lib/nifi/conf/nifi.properties'                      || (cp '${cfg.package}/share/nifi/conf/nifi.properties' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/nifi.properties')
+          test -f '/var/lib/nifi/conf/stateless-logback.xml'                || (cp '${cfg.package}/share/nifi/conf/stateless-logback.xml' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/stateless-logback.xml')
+          test -f '/var/lib/nifi/conf/stateless.properties'                 || (cp '${cfg.package}/share/nifi/conf/stateless.properties' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/stateless.properties')
+          test -f '/var/lib/nifi/conf/state-management.xml'                 || (cp '${cfg.package}/share/nifi/conf/state-management.xml' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/state-management.xml')
+          test -f '/var/lib/nifi/conf/zookeeper.properties'                 || (cp '${cfg.package}/share/nifi/conf/zookeeper.properties' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/zookeeper.properties')
+          test -d '/var/lib/nifi/docs/html'                                 || (mkdir -p /var/lib/nifi/docs && cp -r '${cfg.package}/share/nifi/docs/html' '/var/lib/nifi/docs/html')
+          ${lib.optionalString ((cfg.initUser != null) && (cfg.initPasswordFile != null)) ''
+            awk -F'[<|>]' '/property name="Username"/ {if ($3!="") f=1} END{exit !f}' /var/lib/nifi/conf/login-identity-providers.xml || ${cfg.package}/bin/nifi.sh set-single-user-credentials ${cfg.initUser} $(cat ${cfg.initPasswordFile})
+          ''}
+          ${lib.optionalString (cfg.enableHTTPS == false) ''
+            sed -i /var/lib/nifi/conf/nifi.properties \
+              -e 's|nifi.remote.input.secure=.*|nifi.remote.input.secure=false|g' \
+              -e 's|nifi.web.http.host=.*|nifi.web.http.host=${cfg.listenHost}|g' \
+              -e 's|nifi.web.http.port=.*|nifi.web.http.port=${(toString cfg.listenPort)}|g' \
+              -e 's|nifi.web.https.host=.*|nifi.web.https.host=|g' \
+              -e 's|nifi.web.https.port=.*|nifi.web.https.port=|g' \
+              -e 's|nifi.security.keystore=.*|nifi.security.keystore=|g' \
+              -e 's|nifi.security.keystoreType=.*|nifi.security.keystoreType=|g' \
+              -e 's|nifi.security.truststore=.*|nifi.security.truststore=|g' \
+              -e 's|nifi.security.truststoreType=.*|nifi.security.truststoreType=|g' \
+              -e '/nifi.security.keystorePasswd/s|^|#|' \
+              -e '/nifi.security.keyPasswd/s|^|#|' \
+              -e '/nifi.security.truststorePasswd/s|^|#|'
+          ''}
+          ${lib.optionalString (cfg.enableHTTPS == true) ''
+            sed -i /var/lib/nifi/conf/nifi.properties \
+              -e 's|nifi.remote.input.secure=.*|nifi.remote.input.secure=true|g' \
+              -e 's|nifi.web.http.host=.*|nifi.web.http.host=|g' \
+              -e 's|nifi.web.http.port=.*|nifi.web.http.port=|g' \
+              -e 's|nifi.web.https.host=.*|nifi.web.https.host=${cfg.listenHost}|g' \
+              -e 's|nifi.web.https.port=.*|nifi.web.https.port=${(toString cfg.listenPort)}|g' \
+              -e 's|nifi.security.keystore=.*|nifi.security.keystore=./conf/keystore.p12|g' \
+              -e 's|nifi.security.keystoreType=.*|nifi.security.keystoreType=PKCS12|g' \
+              -e 's|nifi.security.truststore=.*|nifi.security.truststore=./conf/truststore.p12|g' \
+              -e 's|nifi.security.truststoreType=.*|nifi.security.truststoreType=PKCS12|g' \
+              -e '/nifi.security.keystorePasswd/s|^#\+||' \
+              -e '/nifi.security.keyPasswd/s|^#\+||' \
+              -e '/nifi.security.truststorePasswd/s|^#\+||'
+          ''}
+          ${lib.optionalString ((cfg.enableHTTPS == true) && (cfg.proxyHost != null) && (cfg.proxyPort != null)) ''
+            sed -i /var/lib/nifi/conf/nifi.properties \
+              -e 's|nifi.web.proxy.host=.*|nifi.web.proxy.host=${cfg.proxyHost}:${(toString cfg.proxyPort)}|g'
+          ''}
+          ${lib.optionalString ((cfg.enableHTTPS == false) || (cfg.proxyHost == null) && (cfg.proxyPort == null)) ''
+            sed -i /var/lib/nifi/conf/nifi.properties \
+              -e 's|nifi.web.proxy.host=.*|nifi.web.proxy.host=|g'
+          ''}
+          ${lib.optionalString ((cfg.initJavaHeapSize != null) && (cfg.maxJavaHeapSize != null))''
+            sed -i /var/lib/nifi/conf/bootstrap.conf \
+              -e 's|java.arg.2=.*|java.arg.2=-Xms${(toString cfg.initJavaHeapSize)}m|g' \
+              -e 's|java.arg.3=.*|java.arg.3=-Xmx${(toString cfg.maxJavaHeapSize)}m|g'
+          ''}
+          ${lib.optionalString ((cfg.initJavaHeapSize == null) && (cfg.maxJavaHeapSize == null))''
+            sed -i /var/lib/nifi/conf/bootstrap.conf \
+              -e 's|java.arg.2=.*|java.arg.2=-Xms512m|g' \
+              -e 's|java.arg.3=.*|java.arg.3=-Xmx512m|g'
+          ''}
+        '';
+        ExecStart = "${cfg.package}/bin/nifi.sh start";
+        ExecStop = "${cfg.package}/bin/nifi.sh stop";
+        # User and group
+        User = cfg.user;
+        Group = cfg.group;
+        # Runtime directory and mode
+        RuntimeDirectory = "nifi";
+        RuntimeDirectoryMode = "0750";
+        # State directory and mode
+        StateDirectory = "nifi";
+        StateDirectoryMode = "0750";
+        # Logs directory and mode
+        LogsDirectory = "nifi";
+        LogsDirectoryMode = "0750";
+        # Proc filesystem
+        ProcSubset = "pid";
+        ProtectProc = "invisible";
+        # Access write directories
+        ReadWritePaths = [ cfg.initPasswordFile ];
+        UMask = "0027";
+        # Capabilities
+        CapabilityBoundingSet = "";
+        # Security
+        NoNewPrivileges = true;
+        # Sandboxing
+        ProtectSystem = "strict";
+        ProtectHome = true;
+        PrivateTmp = true;
+        PrivateDevices = true;
+        PrivateIPC = true;
+        PrivateUsers = true;
+        ProtectHostname = true;
+        ProtectClock = true;
+        ProtectKernelTunables = true;
+        ProtectKernelModules = true;
+        ProtectKernelLogs = true;
+        ProtectControlGroups = true;
+        RestrictAddressFamilies = [ "AF_INET AF_INET6" ];
+        RestrictNamespaces = true;
+        LockPersonality = true;
+        MemoryDenyWriteExecute  = false;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        RemoveIPC = true;
+        PrivateMounts = true;
+        # System Call Filtering
+        SystemCallArchitectures = "native";
+        SystemCallFilter = [ "~@cpu-emulation @debug @keyring @memlock @mount @obsolete @resources @privileged @setuid" "@chown" ];
+      };
+    };
+
+    users.users = lib.mkMerge [
+      (lib.mkIf (cfg.user == "nifi") {
+        nifi = {
+          group = cfg.group;
+          isSystemUser = true;
+          home = cfg.package;
+        };
+      })
+      (lib.attrsets.setAttrByPath [ cfg.user "packages" ] [ cfg.package nifiEnv ])
+    ];
+
+    users.groups = lib.optionalAttrs (cfg.group == "nifi") {
+      nifi = { };
+    };
+  };
+}
diff --git a/nixos/modules/services/web-servers/hydron.nix b/nixos/modules/services/web-servers/hydron.nix
index a4a5a435b2e6b..46f62a9119f0d 100644
--- a/nixos/modules/services/web-servers/hydron.nix
+++ b/nixos/modules/services/web-servers/hydron.nix
@@ -161,5 +161,5 @@ in with lib; {
     (mkRenamedOptionModule [ "services" "hydron" "baseDir" ] [ "services" "hydron" "dataDir" ])
   ];
 
-  meta.maintainers = with maintainers; [ chiiruno ];
+  meta.maintainers = with maintainers; [ Madouura ];
 }
diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix
index 7caaf5611cc0e..0c2333399e815 100644
--- a/nixos/modules/services/web-servers/nginx/default.nix
+++ b/nixos/modules/services/web-servers/nginx/default.nix
@@ -255,20 +255,22 @@ let
             else defaultListen;
 
         listenString = { addr, port, ssl, extraParameters ? [], ... }:
-          "listen ${addr}:${toString port} "
-          + optionalString ssl "ssl "
+          (if ssl && vhost.http3 then "
+          # UDP listener for **QUIC+HTTP/3
+          listen ${addr}:${toString port} http3 "
+          + optionalString vhost.default "default_server "
+          + optionalString vhost.reuseport "reuseport "
+          + optionalString (extraParameters != []) (concatStringsSep " " extraParameters)
+          + ";" else "")
+          + "
+
+            listen ${addr}:${toString port} "
           + optionalString (ssl && vhost.http2) "http2 "
+          + optionalString ssl "ssl "
           + optionalString vhost.default "default_server "
+          + optionalString vhost.reuseport "reuseport "
           + optionalString (extraParameters != []) (concatStringsSep " " extraParameters)
-          + ";"
-          + (if ssl && vhost.http3 then ''
-          # UDP listener for **QUIC+HTTP/3
-          listen ${addr}:${toString port} http3 reuseport;
-          # Advertise that HTTP/3 is available
-          add_header Alt-Svc 'h3=":443"';
-          # Sent when QUIC was used
-          add_header QUIC-Status $quic;
-          '' else "");
+          + ";";
 
         redirectListen = filter (x: !x.ssl) defaultListen;
 
@@ -321,6 +323,11 @@ let
             ssl_conf_command Options KTLS;
           ''}
 
+          ${optionalString (hasSSL && vhost.http3) ''
+            # Advertise that HTTP/3 is available
+            add_header Alt-Svc 'h3=":443"; ma=86400' always;
+          ''}
+
           ${mkBasicAuth vhostName vhost}
 
           ${mkLocations vhost.locations}
diff --git a/nixos/modules/services/web-servers/nginx/vhost-options.nix b/nixos/modules/services/web-servers/nginx/vhost-options.nix
index c4e8285dc48bd..2c77d6ee81622 100644
--- a/nixos/modules/services/web-servers/nginx/vhost-options.nix
+++ b/nixos/modules/services/web-servers/nginx/vhost-options.nix
@@ -20,7 +20,7 @@ with lib;
     serverAliases = mkOption {
       type = types.listOf types.str;
       default = [];
-      example = ["www.example.org" "example.org"];
+      example = [ "www.example.org" "example.org" ];
       description = ''
         Additional names of virtual hosts served by this virtual host configuration.
       '';
@@ -31,11 +31,11 @@ with lib;
         addr = mkOption { type = str;  description = "IP address.";  };
         port = mkOption { type = int;  description = "Port number."; default = 80; };
         ssl  = mkOption { type = bool; description = "Enable SSL.";  default = false; };
-        extraParameters = mkOption { type = listOf str; description = "Extra parameters of this listen directive."; default = []; example = [ "reuseport" "deferred" ]; };
+        extraParameters = mkOption { type = listOf str; description = "Extra parameters of this listen directive."; default = []; example = [ "backlog=1024" "deferred" ]; };
       }; });
       default = [];
       example = [
-        { addr = "195.154.1.1"; port = 443; ssl = true;}
+        { addr = "195.154.1.1"; port = 443; ssl = true; }
         { addr = "192.154.1.1"; port = 80; }
       ];
       description = ''
@@ -207,6 +207,15 @@ with lib;
       '';
     };
 
+    reuseport = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Create an individual listening socket .
+        It is required to specify only once on one of the hosts.
+      '';
+    };
+
     root = mkOption {
       type = types.nullOr types.path;
       default = null;
diff --git a/nixos/modules/services/x11/desktop-managers/cinnamon.nix b/nixos/modules/services/x11/desktop-managers/cinnamon.nix
index 3a78a526460c1..705dbec5e7428 100644
--- a/nixos/modules/services/x11/desktop-managers/cinnamon.nix
+++ b/nixos/modules/services/x11/desktop-managers/cinnamon.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, utils, ... }:
 
 with lib;
 
@@ -196,7 +196,7 @@ in
       programs.evince.enable = mkDefault true;
       programs.file-roller.enable = mkDefault true;
 
-      environment.systemPackages = (with pkgs // pkgs.gnome // pkgs.cinnamon; pkgs.gnome.removePackagesByName [
+      environment.systemPackages = with pkgs // pkgs.gnome // pkgs.cinnamon; utils.removePackagesByName [
         # cinnamon team apps
         bulky
         blueberry
@@ -212,7 +212,7 @@ in
         # external apps shipped with linux-mint
         hexchat
         gnome-calculator
-      ] config.environment.cinnamon.excludePackages);
+      ] config.environment.cinnamon.excludePackages;
     })
   ];
 }
diff --git a/nixos/modules/services/x11/desktop-managers/gnome.nix b/nixos/modules/services/x11/desktop-managers/gnome.nix
index f87258ac8dc56..e7e626c66f021 100644
--- a/nixos/modules/services/x11/desktop-managers/gnome.nix
+++ b/nixos/modules/services/x11/desktop-managers/gnome.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, utils, ... }:
 
 with lib;
 
@@ -22,6 +22,9 @@ let
     favorite-apps=[ 'org.gnome.Epiphany.desktop', 'org.gnome.Geary.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop' ]
   '';
 
+  nixos-background-ligtht = pkgs.nixos-artwork.wallpapers.simple-blue;
+  nixos-background-dark = pkgs.nixos-artwork.wallpapers.simple-dark-gray;
+
   nixos-gsettings-desktop-schemas = let
     defaultPackages = with pkgs; [ gsettings-desktop-schemas gnome.gnome-shell ];
   in
@@ -42,10 +45,11 @@ let
      chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
      cat - > $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/nixos-defaults.gschema.override <<- EOF
        [org.gnome.desktop.background]
-       picture-uri='file://${pkgs.nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}'
+       picture-uri='file://${nixos-background-ligtht.gnomeFilePath}'
+       picture-uri-dark='file://${nixos-background-dark.gnomeFilePath}'
 
        [org.gnome.desktop.screensaver]
-       picture-uri='file://${pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom.gnomeFilePath}'
+       picture-uri='file://${nixos-background-dark.gnomeFilePath}'
 
        ${cfg.favoriteAppsOverride}
 
@@ -55,6 +59,26 @@ let
      ${pkgs.glib.dev}/bin/glib-compile-schemas $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/
     '';
 
+  nixos-background-info = pkgs.writeTextFile rec {
+    name = "nixos-background-info";
+    text = ''
+      <?xml version="1.0"?>
+      <!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">
+      <wallpapers>
+        <wallpaper deleted="false">
+          <name>Blobs</name>
+          <filename>${nixos-background-ligtht.gnomeFilePath}</filename>
+          <filename-dark>${nixos-background-dark.gnomeFilePath}</filename-dark>
+          <options>zoom</options>
+          <shade_type>solid</shade_type>
+          <pcolor>#3a4ba0</pcolor>
+          <scolor>#2f302f</scolor>
+        </wallpaper>
+      </wallpapers>
+    '';
+    destination = "/share/gnome-background-properties/nixos.xml";
+  };
+
   flashbackEnabled = cfg.flashback.enableMetacity || length cfg.flashback.customSessions > 0;
   flashbackWms = optional cfg.flashback.enableMetacity {
     wmName = "metacity";
@@ -430,6 +454,7 @@ in
       # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-38/elements/core/meta-gnome-core-shell.bst
       environment.systemPackages = with pkgs.gnome; [
         adwaita-icon-theme
+        nixos-background-info
         gnome-backgrounds
         gnome-bluetooth
         gnome-color-manager
@@ -438,8 +463,6 @@ in
         gnome-shell-extensions
         gnome-themes-extra
         pkgs.gnome-tour # GNOME Shell detects the .desktop file on first log-in.
-        pkgs.nixos-artwork.wallpapers.simple-dark-gray
-        pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom
         pkgs.gnome-user-docs
         pkgs.orca
         pkgs.glib # for gsettings
@@ -455,7 +478,7 @@ in
     (mkIf serviceCfg.core-utilities.enable {
       environment.systemPackages =
         with pkgs.gnome;
-        removePackagesByName
+        utils.removePackagesByName
           ([
             baobab
             cheese
@@ -515,7 +538,7 @@ in
     })
 
     (mkIf serviceCfg.games.enable {
-      environment.systemPackages = (with pkgs.gnome; removePackagesByName [
+      environment.systemPackages = with pkgs.gnome; utils.removePackagesByName [
         aisleriot
         atomix
         five-or-more
@@ -536,12 +559,12 @@ in
         quadrapassel
         swell-foop
         tali
-      ] config.environment.gnome.excludePackages);
+      ] config.environment.gnome.excludePackages;
     })
 
     # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/-/blob/3.38.0/elements/core/meta-gnome-core-developer-tools.bst
     (mkIf serviceCfg.core-developer-tools.enable {
-      environment.systemPackages = (with pkgs.gnome; removePackagesByName [
+      environment.systemPackages = with pkgs.gnome; utils.removePackagesByName [
         dconf-editor
         devhelp
         pkgs.gnome-builder
@@ -550,7 +573,7 @@ in
         # in default configurations.
         # https://github.com/NixOS/nixpkgs/issues/60908
         /* gnome-boxes */
-      ] config.environment.gnome.excludePackages);
+      ] config.environment.gnome.excludePackages;
 
       services.sysprof.enable = notExcluded pkgs.sysprof;
     })
diff --git a/nixos/modules/services/x11/desktop-managers/lxqt.nix b/nixos/modules/services/x11/desktop-managers/lxqt.nix
index 720985ba0d94e..1bc6c906c4790 100644
--- a/nixos/modules/services/x11/desktop-managers/lxqt.nix
+++ b/nixos/modules/services/x11/desktop-managers/lxqt.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, utils, ... }:
 
 with lib;
 
@@ -51,7 +51,7 @@ in
     environment.systemPackages =
       pkgs.lxqt.preRequisitePackages ++
       pkgs.lxqt.corePackages ++
-      (pkgs.gnome.removePackagesByName
+      (utils.removePackagesByName
         pkgs.lxqt.optionalPackages
         config.environment.lxqt.excludePackages);
 
diff --git a/nixos/modules/services/x11/desktop-managers/mate.nix b/nixos/modules/services/x11/desktop-managers/mate.nix
index a7fda4be97968..9ab4c6e7e9841 100644
--- a/nixos/modules/services/x11/desktop-managers/mate.nix
+++ b/nixos/modules/services/x11/desktop-managers/mate.nix
@@ -1,20 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, utils, ... }:
 
 with lib;
 
 let
 
-  addToXDGDirs = p: ''
-    if [ -d "${p}/share/gsettings-schemas/${p.name}" ]; then
-      export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${p}/share/gsettings-schemas/${p.name}
-    fi
-
-    if [ -d "${p}/lib/girepository-1.0" ]; then
-      export GI_TYPELIB_PATH=$GI_TYPELIB_PATH''${GI_TYPELIB_PATH:+:}${p}/lib/girepository-1.0
-      export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${p}/lib
-    fi
-  '';
-
   xcfg = config.services.xserver;
   cfg = xcfg.desktopManager.mate;
 
@@ -48,24 +37,8 @@ in
       pkgs.mate.mate-session-manager
     ];
 
-    services.xserver.displayManager.sessionCommands = ''
-      if test "$XDG_CURRENT_DESKTOP" = "MATE"; then
-          export XDG_MENU_PREFIX=mate-
-
-          # Let caja find extensions
-          export CAJA_EXTENSION_DIRS=$CAJA_EXTENSION_DIRS''${CAJA_EXTENSION_DIRS:+:}${config.system.path}/lib/caja/extensions-2.0
-
-          # Let caja extensions find gsettings schemas
-          ${concatMapStrings (p: ''
-          if [ -d "${p}/lib/caja/extensions-2.0" ]; then
-              ${addToXDGDirs p}
-          fi
-          '') config.environment.systemPackages}
-
-          # Add mate-control-center paths to some XDG variables because its schemas are needed by mate-settings-daemon, and mate-settings-daemon is a dependency for mate-control-center (that is, they are mutually recursive)
-          ${addToXDGDirs pkgs.mate.mate-control-center}
-      fi
-    '';
+    # Let caja find extensions
+    environment.sessionVariables.CAJA_EXTENSION_DIRS = [ "${config.system.path}/lib/caja/extensions-2.0" ];
 
     # Let mate-panel find applets
     environment.sessionVariables."MATE_PANEL_APPLETS_DIR" = "${config.system.path}/share/mate-panel/applets";
@@ -74,7 +47,7 @@ in
     # Debugging
     environment.sessionVariables.MATE_SESSION_DEBUG = mkIf cfg.debug "1";
 
-    environment.systemPackages = pkgs.gnome.removePackagesByName
+    environment.systemPackages = utils.removePackagesByName
       (pkgs.mate.basePackages ++
       pkgs.mate.extraPackages ++
       [
@@ -83,7 +56,6 @@ in
         pkgs.gtk3.out
         pkgs.shared-mime-info
         pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
-        pkgs.mate.mate-settings-daemon
         pkgs.yelp # for 'Contents' in 'Help' menus
       ])
       config.environment.mate.excludePackages;
diff --git a/nixos/modules/services/x11/desktop-managers/none.nix b/nixos/modules/services/x11/desktop-managers/none.nix
index af7a376ae0296..b5e498b67a018 100644
--- a/nixos/modules/services/x11/desktop-managers/none.nix
+++ b/nixos/modules/services/x11/desktop-managers/none.nix
@@ -1,7 +1,46 @@
+{ config, lib, pkgs, ... }:
+with lib;
+let
+  runXdgAutostart = config.services.xserver.desktopManager.runXdgAutostartIfNone;
+in
 {
-  services.xserver.desktopManager.session =
-    [ { name = "none";
-        start = "";
-      }
-    ];
+  options = {
+    services.xserver.desktopManager.runXdgAutostartIfNone = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Whether to run XDG autostart files for sessions without a desktop manager
+        (with only a window manager), these sessions usually don't handle XDG
+        autostart files by default.
+
+        Some services like <option>i18n.inputMethod</option> and
+        <option>service.earlyoom</option> use XDG autostart files to start.
+        If this option is not set to <literal>true</literal> and you are using
+        a window manager without a desktop manager, you need to manually start
+        them or running <package>dex</package> somewhere.
+      '';
+    };
+  };
+
+  config = mkMerge [
+    {
+      services.xserver.desktopManager.session = [
+        {
+          name = "none";
+          start = optionalString runXdgAutostart ''
+            /run/current-system/systemd/bin/systemctl --user start xdg-autostart-if-no-desktop-manager.target
+          '';
+        }
+      ];
+    }
+    (mkIf runXdgAutostart {
+      systemd.user.targets.xdg-autostart-if-no-desktop-manager = {
+        description = "Run XDG autostart files";
+        # From `plasma-workspace`, `share/systemd/user/plasma-workspace@.target`.
+        requires = [ "xdg-desktop-autostart.target" "graphical-session.target" ];
+        before = [ "xdg-desktop-autostart.target" "graphical-session.target" ];
+        bindsTo = [ "graphical-session.target" ];
+      };
+    })
+  ];
 }
diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix
index 3528b0f40e7b7..004d14b634d48 100644
--- a/nixos/modules/services/x11/desktop-managers/pantheon.nix
+++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, utils, pkgs, ... }:
 
 with lib;
 
@@ -214,7 +214,7 @@ in
         elementary-settings-daemon
         pantheon-agent-geoclue2
         pantheon-agent-polkit
-      ]) ++ (gnome.removePackagesByName [
+      ]) ++ (utils.removePackagesByName [
         gnome.gnome-font-viewer
         gnome.gnome-settings-daemon338
       ] config.environment.pantheon.excludePackages);
@@ -272,7 +272,7 @@ in
     })
 
     (mkIf serviceCfg.apps.enable {
-      environment.systemPackages = with pkgs.pantheon; pkgs.gnome.removePackagesByName ([
+      environment.systemPackages = with pkgs.pantheon; utils.removePackagesByName ([
         elementary-calculator
         elementary-calendar
         elementary-camera
diff --git a/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixos/modules/services/x11/desktop-managers/xfce.nix
index 0bb5c1268cac2..88b21e59aaa6b 100644
--- a/nixos/modules/services/x11/desktop-managers/xfce.nix
+++ b/nixos/modules/services/x11/desktop-managers/xfce.nix
@@ -66,6 +66,12 @@ in
         default = true;
         description = "Enable the XFWM (default) window manager.";
       };
+
+      enableScreensaver = mkOption {
+        type = types.bool;
+        default = true;
+        description = "Enable the XFCE screensaver.";
+      };
     };
   };
 
@@ -99,7 +105,6 @@ in
       ristretto
       xfce4-appfinder
       xfce4-notifyd
-      xfce4-screensaver
       xfce4-screenshooter
       xfce4-session
       xfce4-settings
@@ -123,7 +128,7 @@ in
       ] ++ optionals (!cfg.noDesktop) [
         xfce4-panel
         xfdesktop
-      ];
+      ] ++ optional cfg.enableScreensaver xfce4-screensaver;
 
     environment.pathsToLink = [
       "/share/xfce4"
@@ -169,6 +174,6 @@ in
       xfce4-notifyd
     ];
 
-    security.pam.services.xfce4-screensaver.unixAuth = true;
+    security.pam.services.xfce4-screensaver.unixAuth = cfg.enableScreensaver;
   };
 }
diff --git a/nixos/modules/services/x11/window-managers/qtile.nix b/nixos/modules/services/x11/window-managers/qtile.nix
index 835b41d4ada94..4d455fdf7b2d5 100644
--- a/nixos/modules/services/x11/window-managers/qtile.nix
+++ b/nixos/modules/services/x11/window-managers/qtile.nix
@@ -7,19 +7,26 @@ let
 in
 
 {
-  options = {
-    services.xserver.windowManager.qtile.enable = mkEnableOption "qtile";
+  options.services.xserver.windowManager.qtile = {
+    enable = mkEnableOption "qtile";
+
+    package = mkPackageOption pkgs "qtile" { };
   };
 
   config = mkIf cfg.enable {
     services.xserver.windowManager.session = [{
       name = "qtile";
       start = ''
-        ${pkgs.qtile}/bin/qtile start &
+        ${cfg.package}/bin/qtile start &
         waitPID=$!
       '';
     }];
 
-    environment.systemPackages = [ pkgs.qtile ];
+    environment.systemPackages = [
+      # pkgs.qtile is currently a buildenv of qtile and its dependencies.
+      # For userland commands, we want the underlying package so that
+      # packages such as python don't bleed into userland and overwrite intended behavior.
+      (cfg.package.unwrapped or cfg.package)
+    ];
   };
 }
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index 0c50d82b23be3..d488e9b55d434 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, utils, pkgs, ... }:
 
 with lib;
 
@@ -181,6 +181,13 @@ in
         '';
       };
 
+      excludePackages = mkOption {
+        default = [];
+        example = literalExpression "[ pkgs.xterm ]";
+        type = types.listOf types.package;
+        description = "Which X11 packages to exclude from the default environment";
+      };
+
       exportConfiguration = mkOption {
         type = types.bool;
         default = false;
@@ -655,7 +662,7 @@ in
           ${cfgPath}.source = xorg.xf86inputevdev.out + "/share" + cfgPath;
         });
 
-    environment.systemPackages =
+    environment.systemPackages = utils.removePackagesByName
       [ xorg.xorgserver.out
         xorg.xrandr
         xorg.xrdb
@@ -671,7 +678,7 @@ in
         pkgs.xdg-utils
         xorg.xf86inputevdev.out # get evdev.4 man page
         pkgs.nixos-icons # needed for gnome and pantheon about dialog, nixos-manual and maybe more
-      ]
+      ] config.services.xserver.excludePackages
       ++ optional (elem "virtualbox" cfg.videoDrivers) xorg.xrefresh;
 
     environment.pathsToLink = [ "/share/X11" ];
diff --git a/nixos/modules/system/activation/switch-to-configuration.pl b/nixos/modules/system/activation/switch-to-configuration.pl
index 9e5b760434a05..3f0d976e70b88 100755
--- a/nixos/modules/system/activation/switch-to-configuration.pl
+++ b/nixos/modules/system/activation/switch-to-configuration.pl
@@ -1,5 +1,17 @@
 #! @perl@/bin/perl
 
+# Issue #166838 uncovered a situation in which a configuration not suitable
+# for the target architecture caused a cryptic error message instead of
+# a clean failure. Due to this mismatch, the perl interpreter in the shebang
+# line wasn't able to be executed, causing this script to be misinterpreted
+# as a shell script.
+#
+# Let's detect this situation to give a more meaningful error
+# message. The following two lines are carefully written to be both valid Perl
+# and Bash.
+printf "Perl script erroneously interpreted as shell script,\ndoes target platform match nixpkgs.crossSystem platform?\n" && exit 1
+    if 0;
+
 use strict;
 use warnings;
 use Config::IniFiles;
diff --git a/nixos/modules/system/activation/top-level.nix b/nixos/modules/system/activation/top-level.nix
index b8aeee8c11b3c..84f560691fc4d 100644
--- a/nixos/modules/system/activation/top-level.nix
+++ b/nixos/modules/system/activation/top-level.nix
@@ -55,11 +55,18 @@ let
       substituteInPlace $out/dry-activate --subst-var out
       chmod u+x $out/activate $out/dry-activate
       unset activationScript dryActivationScript
-      ${pkgs.stdenv.shellDryRun} $out/activate
-      ${pkgs.stdenv.shellDryRun} $out/dry-activate
 
-      cp ${config.system.build.bootStage2} $out/init
-      substituteInPlace $out/init --subst-var-by systemConfig $out
+      ${if config.boot.initrd.systemd.enable then ''
+        cp ${config.system.build.bootStage2} $out/prepare-root
+        substituteInPlace $out/prepare-root --subst-var-by systemConfig $out
+        # This must not be a symlink or the abs_path of the grub builder for the tests
+        # will resolve the symlink and we end up with a path that doesn't point to a
+        # system closure.
+        cp "$systemd/lib/systemd/systemd" $out/init
+      '' else ''
+        cp ${config.system.build.bootStage2} $out/init
+        substituteInPlace $out/init --subst-var-by systemConfig $out
+      ''}
 
       ln -s ${config.system.build.etc}/etc $out/etc
       ln -s ${config.system.path} $out/sw
@@ -156,7 +163,7 @@ in
 
     specialisation = mkOption {
       default = {};
-      example = lib.literalExpression "{ fewJobsManyCores.configuration = { nix.settings = { core = 0; max-jobs = 1; }; }";
+      example = lib.literalExpression "{ fewJobsManyCores.configuration = { nix.settings = { core = 0; max-jobs = 1; }; }; }";
       description = ''
         Additional configurations to build. If
         <literal>inheritParentConfig</literal> is true, the system
diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix
index 8db271f871352..1f915d1f419cc 100644
--- a/nixos/modules/system/boot/loader/grub/grub.nix
+++ b/nixos/modules/system/boot/loader/grub/grub.nix
@@ -44,6 +44,8 @@ let
     { splashImage = f cfg.splashImage;
       splashMode = f cfg.splashMode;
       backgroundColor = f cfg.backgroundColor;
+      entryOptions = f cfg.entryOptions;
+      subEntryOptions = f cfg.subEntryOptions;
       grub = f grub;
       grubTarget = f (grub.grubTarget or "");
       shell = "${pkgs.runtimeShell}";
@@ -448,6 +450,30 @@ in
         '';
       };
 
+      entryOptions = mkOption {
+        default = "--class nixos --unrestricted";
+        type = types.nullOr types.str;
+        description = ''
+          Options applied to the primary NixOS menu entry.
+
+          <note><para>
+          This options has no effect for GRUB 1.
+          </para></note>
+        '';
+      };
+
+      subEntryOptions = mkOption {
+        default = "--class nixos";
+        type = types.nullOr types.str;
+        description = ''
+          Options applied to the secondary NixOS submenu entry.
+
+          <note><para>
+          This options has no effect for GRUB 1.
+          </para></note>
+        '';
+      };
+
       theme = mkOption {
         type = types.nullOr types.path;
         example = literalExpression "pkgs.nixos-grub2-theme";
diff --git a/nixos/modules/system/boot/loader/grub/install-grub.pl b/nixos/modules/system/boot/loader/grub/install-grub.pl
index 0c93b288fc654..d5f019423b642 100644
--- a/nixos/modules/system/boot/loader/grub/install-grub.pl
+++ b/nixos/modules/system/boot/loader/grub/install-grub.pl
@@ -64,6 +64,8 @@ my $extraEntries = get("extraEntries");
 my $extraEntriesBeforeNixOS = get("extraEntriesBeforeNixOS") eq "true";
 my $splashImage = get("splashImage");
 my $splashMode = get("splashMode");
+my $entryOptions = get("entryOptions");
+my $subEntryOptions = get("subEntryOptions");
 my $backgroundColor = get("backgroundColor");
 my $configurationLimit = int(get("configurationLimit"));
 my $copyKernels = get("copyKernels") eq "true";
@@ -509,7 +511,7 @@ sub addEntry {
 # Add default entries.
 $conf .= "$extraEntries\n" if $extraEntriesBeforeNixOS;
 
-addEntry("NixOS - Default", $defaultConfig, "--unrestricted");
+addEntry("NixOS - Default", $defaultConfig, $entryOptions);
 
 $conf .= "$extraEntries\n" unless $extraEntriesBeforeNixOS;
 
@@ -546,7 +548,7 @@ sub addProfile {
     my ($profile, $description) = @_;
 
     # Add entries for all generations of this profile.
-    $conf .= "submenu \"$description\" {\n" if $grubVersion == 2;
+    $conf .= "submenu \"$description\" --class submenu {\n" if $grubVersion == 2;
 
     sub nrFromGen { my ($x) = @_; $x =~ /\/\w+-(\d+)-link/; return $1; }
 
@@ -566,7 +568,7 @@ sub addProfile {
             -e "$link/nixos-version"
             ? readFile("$link/nixos-version")
             : basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
-        addEntry("NixOS - Configuration " . nrFromGen($link) . " ($date - $version)", $link);
+        addEntry("NixOS - Configuration " . nrFromGen($link) . " ($date - $version)", $link, $subEntryOptions);
     }
 
     $conf .= "}\n" if $grubVersion == 2;
diff --git a/nixos/modules/system/boot/luksroot.nix b/nixos/modules/system/boot/luksroot.nix
index dde07571b3e7d..57fc02a2e3227 100644
--- a/nixos/modules/system/boot/luksroot.nix
+++ b/nixos/modules/system/boot/luksroot.nix
@@ -1,10 +1,11 @@
-{ config, lib, pkgs, ... }:
+{ config, options, lib, pkgs, ... }:
 
 with lib;
 
 let
   luks = config.boot.initrd.luks;
   kernelPackages = config.boot.kernelPackages;
+  defaultPrio = (mkOptionDefault {}).priority;
 
   commonFunctions = ''
     die() {
@@ -474,6 +475,16 @@ let
   preLVM = filterAttrs (n: v: v.preLVM) luks.devices;
   postLVM = filterAttrs (n: v: !v.preLVM) luks.devices;
 
+  stage1Crypttab = pkgs.writeText "initrd-crypttab" (lib.concatStringsSep "\n" (lib.mapAttrsToList (n: v: let
+    opts = v.crypttabExtraOpts
+      ++ optional v.allowDiscards "discard"
+      ++ optionals v.bypassWorkqueues [ "no-read-workqueue" "no-write-workqueue" ]
+      ++ optional (v.header != null) "header=${v.header}"
+      ++ optional (v.keyFileOffset != null) "keyfile-offset=${v.keyFileOffset}"
+      ++ optional (v.keyFileSize != null) "keyfile-size=${v.keyFileSize}"
+    ;
+  in "${n} ${v.device} ${if v.keyFile == null then "-" else v.keyFile} ${lib.concatStringsSep "," opts}") luks.devices));
+
 in
 {
   imports = [
@@ -802,6 +813,18 @@ in
               Commands that should be run right after we have mounted our LUKS device.
             '';
           };
+
+          crypttabExtraOpts = mkOption {
+            type = with types; listOf singleLineStr;
+            default = [];
+            example = [ "_netdev" ];
+            visible = false;
+            description = ''
+              Only used with systemd stage 1.
+
+              Extra options to append to the last column of the generated crypttab file.
+            '';
+          };
         };
       }));
     };
@@ -853,6 +876,31 @@ in
                       -> versionAtLeast kernelPackages.kernel.version "5.9";
           message = "boot.initrd.luks.devices.<name>.bypassWorkqueues is not supported for kernels older than 5.9";
         }
+
+        { assertion = config.boot.initrd.systemd.enable -> all (dev: !dev.fallbackToPassword) (attrValues luks.devices);
+          message = "boot.initrd.luks.devices.<name>.fallbackToPassword is implied by systemd stage 1.";
+        }
+        { assertion = config.boot.initrd.systemd.enable -> all (dev: dev.preLVM) (attrValues luks.devices);
+          message = "boot.initrd.luks.devices.<name>.preLVM is not used by systemd stage 1.";
+        }
+        { assertion = config.boot.initrd.systemd.enable -> options.boot.initrd.luks.reusePassphrases.highestPrio == defaultPrio;
+          message = "boot.initrd.luks.reusePassphrases has no effect with systemd stage 1.";
+        }
+        { assertion = config.boot.initrd.systemd.enable -> all (dev: dev.preOpenCommands == "" && dev.postOpenCommands == "") (attrValues luks.devices);
+          message = "boot.initrd.luks.devices.<name>.preOpenCommands and postOpenCommands is not supported by systemd stage 1. Please bind a service to cryptsetup.target or cryptsetup-pre.target instead.";
+        }
+        # TODO
+        { assertion = config.boot.initrd.systemd.enable -> !luks.gpgSupport;
+          message = "systemd stage 1 does not support GPG smartcards yet.";
+        }
+        # TODO
+        { assertion = config.boot.initrd.systemd.enable -> !luks.fido2Support;
+          message = "systemd stage 1 does not support FIDO2 yet.";
+        }
+        # TODO
+        { assertion = config.boot.initrd.systemd.enable -> !luks.yubikeySupport;
+          message = "systemd stage 1 does not support Yubikeys yet.";
+        }
       ];
 
     # actually, sbp2 driver is the one enabling the DMA attack, but this needs to be tested
@@ -867,7 +915,7 @@ in
       ++ (if builtins.elem "xts" luks.cryptoModules then ["ecb"] else []);
 
     # copy the cryptsetup binary and it's dependencies
-    boot.initrd.extraUtilsCommands = ''
+    boot.initrd.extraUtilsCommands = mkIf (!config.boot.initrd.systemd.enable) ''
       copy_bin_and_libs ${pkgs.cryptsetup}/bin/cryptsetup
       copy_bin_and_libs ${askPass}/bin/cryptsetup-askpass
       sed -i s,/bin/sh,$out/bin/sh, $out/bin/cryptsetup-askpass
@@ -915,7 +963,7 @@ in
       ''}
     '';
 
-    boot.initrd.extraUtilsCommandsTest = ''
+    boot.initrd.extraUtilsCommandsTest = mkIf (!config.boot.initrd.systemd.enable) ''
       $out/bin/cryptsetup --version
       ${optionalString luks.yubikeySupport ''
         $out/bin/ykchalresp -V
@@ -932,9 +980,27 @@ in
       ''}
     '';
 
-    boot.initrd.preFailCommands = postCommands;
-    boot.initrd.preLVMCommands = commonFunctions + preCommands + concatStrings (mapAttrsToList openCommand preLVM) + postCommands;
-    boot.initrd.postDeviceCommands = commonFunctions + preCommands + concatStrings (mapAttrsToList openCommand postLVM) + postCommands;
+    boot.initrd.systemd = {
+      contents."/etc/crypttab".source = stage1Crypttab;
+
+      extraBin.systemd-cryptsetup = "${config.boot.initrd.systemd.package}/lib/systemd/systemd-cryptsetup";
+
+      additionalUpstreamUnits = [
+        "cryptsetup-pre.target"
+        "cryptsetup.target"
+        "remote-cryptsetup.target"
+      ];
+      storePaths = [
+        "${config.boot.initrd.systemd.package}/lib/systemd/systemd-cryptsetup"
+      ];
+
+    };
+    # We do this because we need the udev rules from the package
+    boot.initrd.services.lvm.enable = true;
+
+    boot.initrd.preFailCommands = mkIf (!config.boot.initrd.systemd.enable) postCommands;
+    boot.initrd.preLVMCommands = mkIf (!config.boot.initrd.systemd.enable) (commonFunctions + preCommands + concatStrings (mapAttrsToList openCommand preLVM) + postCommands);
+    boot.initrd.postDeviceCommands = mkIf (!config.boot.initrd.systemd.enable) (commonFunctions + preCommands + concatStrings (mapAttrsToList openCommand postLVM) + postCommands);
 
     environment.systemPackages = [ pkgs.cryptsetup ];
   };
diff --git a/nixos/modules/system/boot/networkd.nix b/nixos/modules/system/boot/networkd.nix
index 092b7b8863aed..d1a6f46bfc408 100644
--- a/nixos/modules/system/boot/networkd.nix
+++ b/nixos/modules/system/boot/networkd.nix
@@ -10,6 +10,36 @@ let
 
   check = {
 
+    global = {
+      sectionNetwork = checkUnitConfig "Network" [
+        (assertOnlyFields [
+          "SpeedMeter"
+          "SpeedMeterIntervalSec"
+          "ManageForeignRoutingPolicyRules"
+          "ManageForeignRoutes"
+          "RouteTable"
+        ])
+        (assertValueOneOf "SpeedMeter" boolValues)
+        (assertInt "SpeedMeterIntervalSec")
+        (assertValueOneOf "ManageForeignRoutingPolicyRules" boolValues)
+        (assertValueOneOf "ManageForeignRoutes" boolValues)
+      ];
+
+      sectionDHCPv4 = checkUnitConfig "DHCPv4" [
+        (assertOnlyFields [
+          "DUIDType"
+          "DUIDRawData"
+        ])
+      ];
+
+      sectionDHCPv6 = checkUnitConfig "DHCPv6" [
+        (assertOnlyFields [
+          "DUIDType"
+          "DUIDRawData"
+        ])
+      ];
+    };
+
     link = {
 
       sectionLink = checkUnitConfig "Link" [
@@ -281,6 +311,8 @@ let
           "PrivateKeyFile"
           "ListenPort"
           "FirewallMark"
+          "RouteTable"
+          "RouteMetric"
         ])
         (assertInt "FirewallMark")
         (assertRange "FirewallMark" 1 4294967295)
@@ -296,6 +328,8 @@ let
           "AllowedIPs"
           "Endpoint"
           "PersistentKeepalive"
+          "RouteTable"
+          "RouteMetric"
         ])
         (assertInt "PersistentKeepalive")
         (assertRange "PersistentKeepalive" 0 65535)
@@ -867,6 +901,44 @@ let
     };
   };
 
+  networkdOptions = {
+    networkConfig = mkOption {
+      default = {};
+      example = { SpeedMeter = true; ManageForeignRoutingPolicyRules = false; };
+      type = types.addCheck (types.attrsOf unitOption) check.global.sectionNetwork;
+      description = ''
+        Each attribute in this set specifies an option in the
+        <literal>[Network]</literal> section of the networkd config.
+        See <citerefentry><refentrytitle>networkd.conf</refentrytitle>
+        <manvolnum>5</manvolnum></citerefentry> for details.
+      '';
+    };
+
+    dhcpV4Config = mkOption {
+      default = {};
+      example = { DUIDType = "vendor"; };
+      type = types.addCheck (types.attrsOf unitOption) check.global.sectionDHCPv4;
+      description = ''
+        Each attribute in this set specifies an option in the
+        <literal>[DHCPv4]</literal> section of the networkd config.
+        See <citerefentry><refentrytitle>networkd.conf</refentrytitle>
+        <manvolnum>5</manvolnum></citerefentry> for details.
+      '';
+    };
+
+    dhcpV6Config = mkOption {
+      default = {};
+      example = { DUIDType = "vendor"; };
+      type = types.addCheck (types.attrsOf unitOption) check.global.sectionDHCPv6;
+      description = ''
+        Each attribute in this set specifies an option in the
+        <literal>[DHCPv6]</literal> section of the networkd config.
+        See <citerefentry><refentrytitle>networkd.conf</refentrytitle>
+        <manvolnum>5</manvolnum></citerefentry> for details.
+      '';
+    };
+  };
+
   linkOptions = commonNetworkOptions // {
     # overwrite enable option from above
     enable = mkOption {
@@ -1515,6 +1587,39 @@ let
     };
   };
 
+  networkdConfig = { config, ... }: {
+    options = {
+      routeTables = mkOption {
+        default = {};
+        example = { foo = 27; };
+        type = with types; attrsOf int;
+        description = ''
+          Defines route table names as an attrset of name to number.
+          See <citerefentry><refentrytitle>networkd.conf</refentrytitle>
+          <manvolnum>5</manvolnum></citerefentry> for details.
+        '';
+      };
+
+      addRouteTablesToIPRoute2 = mkOption {
+        default = true;
+        example = false;
+        type = types.bool;
+        description = ''
+          If true and routeTables are set, then the specified route tables
+          will also be installed into /etc/iproute2/rt_tables.
+        '';
+      };
+    };
+
+    config = {
+      networkConfig = optionalAttrs (config.routeTables != { }) {
+        RouteTable = mapAttrsToList
+          (name: number: "${name}:${toString number}")
+          config.routeTables;
+      };
+    };
+  };
+
   commonMatchText = def: optionalString (def.matchConfig != { }) ''
     [Match]
     ${attrsToSection def.matchConfig}
@@ -1596,6 +1701,20 @@ let
         + def.extraConfig;
     };
 
+  renderConfig = def:
+    { text = ''
+        [Network]
+        ${attrsToSection def.networkConfig}
+      ''
+      + optionalString (def.dhcpV4Config != { }) ''
+        [DHCPv4]
+        ${attrsToSection def.dhcpV4Config}
+      ''
+      + optionalString (def.dhcpV6Config != { }) ''
+        [DHCPv6]
+        ${attrsToSection def.dhcpV6Config}
+      ''; };
+
   networkToUnit = name: def:
     { inherit (def) enable;
       text = commonMatchText def
@@ -1728,6 +1847,12 @@ in
       description = "Definition of systemd networks.";
     };
 
+    systemd.network.config = mkOption {
+      default = {};
+      type = with types; submodule [ { options = networkdOptions; } networkdConfig ];
+      description = "Definition of global systemd network config.";
+    };
+
     systemd.network.units = mkOption {
       description = "Definition of networkd units.";
       default = {};
@@ -1819,7 +1944,9 @@ in
       systemd.services.systemd-networkd = {
         wantedBy = [ "multi-user.target" ];
         aliases = [ "dbus-org.freedesktop.network1.service" ];
-        restartTriggers = map (x: x.source) (attrValues unitFiles);
+        restartTriggers = map (x: x.source) (attrValues unitFiles) ++ [
+          config.environment.etc."systemd/networkd.conf".source
+        ];
       };
 
       systemd.services.systemd-networkd-wait-online = {
@@ -1842,6 +1969,17 @@ in
         };
       };
 
+      environment.etc."systemd/networkd.conf" = renderConfig cfg.config;
+
+      networking.iproute2 = mkIf (cfg.config.addRouteTablesToIPRoute2 && cfg.config.routeTables != { }) {
+        enable = mkDefault true;
+        rttablesExtraConfig = ''
+
+          # Extra tables defined in NixOS systemd.networkd.config.routeTables.
+          ${concatStringsSep "\n" (mapAttrsToList (name: number: "${toString number} ${name}") cfg.config.routeTables)}
+        '';
+      };
+
       services.resolved.enable = mkDefault true;
     })
   ];
diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh
index 8fcc1f029723e..3175836698091 100644
--- a/nixos/modules/system/boot/stage-1-init.sh
+++ b/nixos/modules/system/boot/stage-1-init.sh
@@ -232,7 +232,8 @@ done
 mkdir -p /lib
 ln -s @modulesClosure@/lib/modules /lib/modules
 ln -s @modulesClosure@/lib/firmware /lib/firmware
-echo @extraUtils@/bin/modprobe > /proc/sys/kernel/modprobe
+# see comment in stage-1.nix for explanation
+echo @extraUtils@/bin/modprobe-kernel > /proc/sys/kernel/modprobe
 for i in @kernelModules@; do
     info "loading module $(basename $i)..."
     modprobe $i
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index 1bafec30b53d4..d10ebac568282 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -131,6 +131,26 @@ let
       copy_bin_and_libs ${pkgs.kmod}/bin/kmod
       ln -sf kmod $out/bin/modprobe
 
+      # Dirty hack to make sure the kernel properly loads modules
+      # such as ext4 on demand (e.g. on a `mount(2)` syscall). This is necessary
+      # because `kmod` isn't linked against `libpthread.so.0` anymore (since
+      # it was merged into `libc.so.6` since version `2.34`), but still needs
+      # to access it for some reason. This is not an issue in stage-1 itself
+      # because of the `LD_LIBRARY_PATH`-variable and anytime later because the rpath of
+      # kmod/modprobe points to glibc's `$out/lib` where `libpthread.so.6` exists.
+      # However, this is a problem when the kernel calls `modprobe` inside
+      # the initial ramdisk because it doesn't know about the
+      # `LD_LIBRARY_PATH` and the rpath was nuked.
+      #
+      # Also, we can't use `makeWrapper` here because `kmod` only does
+      # `modprobe` functionality if `argv[0] == "modprobe"`.
+      cat >$out/bin/modprobe-kernel <<EOF
+      #!$out/bin/ash
+      export LD_LIBRARY_PATH=$out/lib
+      exec $out/bin/modprobe "\$@"
+      EOF
+      chmod +x $out/bin/modprobe-kernel
+
       # Copy resize2fs if any ext* filesystems are to be resized
       ${optionalString (any (fs: fs.autoResize && (lib.hasPrefix "ext" fs.fsType)) fileSystems) ''
         # We need mke2fs in the initrd.
@@ -335,7 +355,7 @@ let
       [ { object = bootStage1;
           symlink = "/init";
         }
-        { object = pkgs.writeText "mdadm.conf" config.boot.initrd.mdadmConf;
+        { object = pkgs.writeText "mdadm.conf" config.boot.initrd.services.swraid.mdadmConf;
           symlink = "/etc/mdadm.conf";
         }
         { object = pkgs.runCommand "initrd-kmod-blacklist-ubuntu" {
@@ -400,7 +420,7 @@ let
         ${lib.optionalString (config.boot.initrd.secrets == {})
             "exit 0"}
 
-        export PATH=${pkgs.coreutils}/bin:${pkgs.cpio}/bin:${pkgs.gzip}/bin:${pkgs.findutils}/bin
+        export PATH=${pkgs.coreutils}/bin:${pkgs.libarchive}/bin:${pkgs.gzip}/bin:${pkgs.findutils}/bin
 
         function cleanup {
           if [ -n "$tmp" -a -d "$tmp" ]; then
@@ -420,7 +440,7 @@ let
           ) config.boot.initrd.secrets)
          }
 
-        (cd "$tmp" && find . -print0 | sort -z | cpio --quiet -o -H newc -R +0:+0 --reproducible --null) | \
+        (cd "$tmp" && find . -print0 | sort -z | bsdtar --uid 0 --gid 0 -cnf - -T - | bsdtar --null -cf - --format=newc @-) | \
           ${compressorExe} ${lib.escapeShellArgs initialRamdisk.compressorArgs} >> "$1"
       '';
 
@@ -485,14 +505,6 @@ in
       '';
     };
 
-    boot.initrd.mdadmConf = mkOption {
-      default = "";
-      type = types.lines;
-      description = ''
-        Contents of <filename>/etc/mdadm.conf</filename> in stage 1.
-      '';
-    };
-
     boot.initrd.preLVMCommands = mkOption {
       default = "";
       type = types.lines;
@@ -716,6 +728,9 @@ in
     ];
 
     boot.initrd.supportedFilesystems = map (fs: fs.fsType) fileSystems;
-
   };
+
+  imports = [
+    (mkRenamedOptionModule [ "boot" "initrd" "mdadmConf" ] [ "boot" "initrd" "services" "swraid" "mdadmConf" ])
+  ];
 }
diff --git a/nixos/modules/system/boot/stage-2-init.sh b/nixos/modules/system/boot/stage-2-init.sh
index 096a051f86845..f2a839d078681 100755
--- a/nixos/modules/system/boot/stage-2-init.sh
+++ b/nixos/modules/system/boot/stage-2-init.sh
@@ -5,28 +5,30 @@ systemConfig=@systemConfig@
 export HOME=/root PATH="@path@"
 
 
-# Process the kernel command line.
-for o in $(</proc/cmdline); do
-    case $o in
-        boot.debugtrace)
-            # Show each command.
-            set -x
-            ;;
-    esac
-done
-
-
-# Print a greeting.
-echo
-echo -e "\e[1;32m<<< NixOS Stage 2 >>>\e[0m"
-echo
-
-
-# Normally, stage 1 mounts the root filesystem read/writable.
-# However, in some environments, stage 2 is executed directly, and the
-# root is read-only.  So make it writable here.
-if [ -z "$container" ]; then
-    mount -n -o remount,rw none /
+if [ "${IN_NIXOS_SYSTEMD_STAGE1:-}" != true ]; then
+    # Process the kernel command line.
+    for o in $(</proc/cmdline); do
+        case $o in
+            boot.debugtrace)
+                # Show each command.
+                set -x
+                ;;
+        esac
+    done
+
+
+    # Print a greeting.
+    echo
+    echo -e "\e[1;32m<<< NixOS Stage 2 >>>\e[0m"
+    echo
+
+
+    # Normally, stage 1 mounts the root filesystem read/writable.
+    # However, in some environments, stage 2 is executed directly, and the
+    # root is read-only.  So make it writable here.
+    if [ -z "$container" ]; then
+        mount -n -o remount,rw none /
+    fi
 fi
 
 
@@ -39,6 +41,12 @@ if [ ! -e /proc/1 ]; then
         local options="$3"
         local fsType="$4"
 
+        # We must not overwrite this mount because it's bind-mounted
+        # from stage 1's /run
+        if [ "${IN_NIXOS_SYSTEMD_STAGE1:-}" = true ] && [ "${mountPoint}" = /run ]; then
+            return
+        fi
+
         install -m 0755 -d "$mountPoint"
         mount -n -t "$fsType" -o "$options" "$device" "$mountPoint"
     }
@@ -46,7 +54,11 @@ if [ ! -e /proc/1 ]; then
 fi
 
 
-echo "booting system configuration $systemConfig" > /dev/kmsg
+if [ "${IN_NIXOS_SYSTEMD_STAGE1:-}" = true ]; then
+    echo "booting system configuration ${systemConfig}"
+else
+    echo "booting system configuration $systemConfig" > /dev/kmsg
+fi
 
 
 # Make /nix/store a read-only bind mount to enforce immutability of
@@ -68,24 +80,26 @@ if [ -n "@readOnlyStore@" ]; then
 fi
 
 
-# Use /etc/resolv.conf supplied by systemd-nspawn, if applicable.
-if [ -n "@useHostResolvConf@" ] && [ -e /etc/resolv.conf ]; then
-    resolvconf -m 1000 -a host </etc/resolv.conf
-fi
+if [ "${IN_NIXOS_SYSTEMD_STAGE1:-}" != true ]; then
+    # Use /etc/resolv.conf supplied by systemd-nspawn, if applicable.
+    if [ -n "@useHostResolvConf@" ] && [ -e /etc/resolv.conf ]; then
+        resolvconf -m 1000 -a host </etc/resolv.conf
+    fi
 
 
-# Log the script output to /dev/kmsg or /run/log/stage-2-init.log.
-# Only at this point are all the necessary prerequisites ready for these commands.
-exec {logOutFd}>&1 {logErrFd}>&2
-if test -w /dev/kmsg; then
-    exec > >(tee -i /proc/self/fd/"$logOutFd" | while read -r line; do
-        if test -n "$line"; then
-            echo "<7>stage-2-init: $line" > /dev/kmsg
-        fi
-    done) 2>&1
-else
-    mkdir -p /run/log
-    exec > >(tee -i /run/log/stage-2-init.log) 2>&1
+    # Log the script output to /dev/kmsg or /run/log/stage-2-init.log.
+    # Only at this point are all the necessary prerequisites ready for these commands.
+    exec {logOutFd}>&1 {logErrFd}>&2
+    if test -w /dev/kmsg; then
+        exec > >(tee -i /proc/self/fd/"$logOutFd" | while read -r line; do
+            if test -n "$line"; then
+                echo "<7>stage-2-init: $line" > /dev/kmsg
+            fi
+        done) 2>&1
+    else
+        mkdir -p /run/log
+        exec > >(tee -i /run/log/stage-2-init.log) 2>&1
+    fi
 fi
 
 
@@ -116,11 +130,15 @@ ln -sfn "$systemConfig" /run/booted-system
 : >> /etc/machine-id
 
 
-# Reset the logging file descriptors.
-exec 1>&$logOutFd 2>&$logErrFd
-exec {logOutFd}>&- {logErrFd}>&-
+# No need to restore the stdout/stderr streams we never redirected and
+# especially no need to start systemd
+if [ "${IN_NIXOS_SYSTEMD_STAGE1:-}" != true ]; then
+    # Reset the logging file descriptors.
+    exec 1>&$logOutFd 2>&$logErrFd
+    exec {logOutFd}>&- {logErrFd}>&-
 
 
-# Start systemd in a clean environment.
-echo "starting systemd..."
-exec @systemdExecutable@ "$@"
+    # Start systemd in a clean environment.
+    echo "starting systemd..."
+    exec @systemdExecutable@ "$@"
+fi
diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix
index 844a6793c1540..2c9ee9fc319fc 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -573,14 +573,6 @@ in
         })
         (filterAttrs (name: service: service.enable && service.startAt != []) cfg.services);
 
-    # Generate timer units for all services that have a ‘startAt’ value.
-    systemd.user.timers =
-      mapAttrs (name: service:
-        { wantedBy = [ "timers.target" ];
-          timerConfig.OnCalendar = service.startAt;
-        })
-        (filterAttrs (name: service: service.startAt != []) cfg.user.services);
-
     # Some overrides to upstream units.
     systemd.services."systemd-backlight@".restartIfChanged = false;
     systemd.services."systemd-fsck@".restartIfChanged = false;
diff --git a/nixos/modules/system/boot/systemd/initrd.nix b/nixos/modules/system/boot/systemd/initrd.nix
index c87cddc6914cd..fc4bd6ff69b6a 100644
--- a/nixos/modules/system/boot/systemd/initrd.nix
+++ b/nixos/modules/system/boot/systemd/initrd.nix
@@ -34,7 +34,6 @@ let
     "initrd-switch-root.service"
     "initrd-switch-root.target"
     "initrd.target"
-    "initrd-udevadm-cleanup-db.service"
     "kexec.target"
     "kmod-static-nodes.service"
     "local-fs-pre.target"
@@ -66,17 +65,10 @@ let
     "systemd-kexec.service"
     "systemd-modules-load.service"
     "systemd-poweroff.service"
-    "systemd-random-seed.service"
     "systemd-reboot.service"
     "systemd-sysctl.service"
     "systemd-tmpfiles-setup-dev.service"
     "systemd-tmpfiles-setup.service"
-    "systemd-udevd-control.socket"
-    "systemd-udevd-kernel.socket"
-    "systemd-udevd.service"
-    "systemd-udev-settle.service"
-    "systemd-udev-trigger.service"
-    "systemd-vconsole-setup.service"
     "timers.target"
     "umount.target"
 
@@ -108,7 +100,7 @@ let
 
   fileSystems = filter utils.fsNeededForBoot config.system.build.fileSystems;
 
-  fstab = pkgs.writeText "fstab" (lib.concatMapStringsSep "\n"
+  fstab = pkgs.writeText "initrd-fstab" (lib.concatMapStringsSep "\n"
     ({ fsType, mountPoint, device, options, autoFormat, autoResize, ... }@fs: let
         opts = options ++ optional autoFormat "x-systemd.makefs" ++ optional autoResize "x-systemd.growfs";
       in "${device} /sysroot${mountPoint} ${fsType} ${lib.concatStringsSep "," opts}") fileSystems);
@@ -125,17 +117,16 @@ let
   };
 
   initrdBinEnv = pkgs.buildEnv {
-    name = "initrd-emergency-env";
+    name = "initrd-bin-env";
     paths = map getBin cfg.initrdBin;
     pathsToLink = ["/bin" "/sbin"];
-    # Make recovery easier
-    postBuild = ''
-      ln -s ${cfg.package.util-linux}/bin/mount $out/bin/
-      ln -s ${cfg.package.util-linux}/bin/umount $out/bin/
-    '';
+    postBuild = concatStringsSep "\n" (mapAttrsToList (n: v: "ln -s '${v}' $out/bin/'${n}'") cfg.extraBin);
   };
 
   initialRamdisk = pkgs.makeInitrdNG {
+    name = "initrd-${kernel-name}";
+    inherit (config.boot.initrd) compressor compressorArgs prepend;
+
     contents = map (path: { object = path; symlink = ""; }) (subtractLists cfg.suppressedStorePaths cfg.storePaths)
       ++ mapAttrsToList (_: v: { object = v.source; symlink = v.target; }) (filterAttrs (_: v: v.enable) cfg.contents);
   };
@@ -201,10 +192,23 @@ in {
       description = ''
         Store paths to copy into the initrd as well.
       '';
-      type = types.listOf types.singleLineStr;
+      type = with types; listOf (oneOf [ singleLineStr package ]);
       default = [];
     };
 
+    extraBin = mkOption {
+      description = ''
+        Tools to add to /bin
+      '';
+      example = literalExpression ''
+        {
+          umount = ''${pkgs.util-linux}/bin/umount;
+        }
+      '';
+      type = types.attrsOf types.path;
+      default = {};
+    };
+
     suppressedStorePaths = mkOption {
       description = ''
         Store paths specified in the storePaths option that
@@ -342,8 +346,16 @@ in {
 
   config = mkIf (config.boot.initrd.enable && cfg.enable) {
     system.build = { inherit initialRamdisk; };
+
+    boot.initrd.availableKernelModules = [ "autofs4" ]; # systemd needs this for some features
+
     boot.initrd.systemd = {
-      initrdBin = [pkgs.bash pkgs.coreutils pkgs.kmod cfg.package] ++ config.system.fsPackages;
+      initrdBin = [pkgs.bash pkgs.coreutils cfg.package.kmod cfg.package] ++ config.system.fsPackages;
+      extraBin = {
+        less = "${pkgs.less}/bin/less";
+        mount = "${cfg.package.util-linux}/bin/mount";
+        umount = "${cfg.package.util-linux}/bin/umount";
+      };
 
       contents = {
         "/init".source = "${cfg.package}/lib/systemd/systemd";
@@ -351,7 +363,7 @@ in {
 
         "/etc/systemd/system.conf".text = ''
           [Manager]
-          DefaultEnvironment=PATH=/bin:/sbin
+          DefaultEnvironment=PATH=/bin:/sbin ${optionalString (isBool cfg.emergencyAccess && cfg.emergencyAccess) "SYSTEMD_SULOGIN_FORCE=1"}
         '';
 
         "/etc/fstab".source = fstab;
@@ -368,6 +380,11 @@ in {
 
         "/etc/sysctl.d/nixos.conf".text = "kernel.modprobe = /sbin/modprobe";
         "/etc/modprobe.d/systemd.conf".source = "${cfg.package}/lib/modprobe.d/systemd.conf";
+        "/etc/modprobe.d/ubuntu.conf".source = pkgs.runCommand "initrd-kmod-blacklist-ubuntu" { } ''
+          ${pkgs.buildPackages.perl}/bin/perl -0pe 's/## file: iwlwifi.conf(.+?)##/##/s;' $src > $out
+        '';
+        "/etc/modprobe.d/debian.conf".source = pkgs.kmod-debian-aliases;
+
       };
 
       storePaths = [
@@ -379,14 +396,12 @@ in {
         "${cfg.package}/lib/systemd/systemd-makefs"
         "${cfg.package}/lib/systemd/systemd-modules-load"
         "${cfg.package}/lib/systemd/systemd-remount-fs"
+        "${cfg.package}/lib/systemd/systemd-shutdown"
         "${cfg.package}/lib/systemd/systemd-sulogin-shell"
         "${cfg.package}/lib/systemd/systemd-sysctl"
-        "${cfg.package}/lib/systemd/systemd-udevd"
-        "${cfg.package}/lib/systemd/systemd-vconsole-setup"
 
         # additional systemd directories
         "${cfg.package}/lib/systemd/system-generators"
-        "${cfg.package}/lib/udev"
 
         # utilities needed by systemd
         "${cfg.package.util-linux}/bin/mount"
@@ -394,7 +409,7 @@ in {
         "${cfg.package.util-linux}/bin/sulogin"
 
         # so NSS can look up usernames
-        "${pkgs.glibc}/lib/libnss_files.so"
+        "${pkgs.glibc}/lib/libnss_files.so.2"
       ] ++ jobScripts;
 
       targets.initrd.aliases = ["default.target"];
@@ -412,9 +427,6 @@ in {
                      (v: let n = escapeSystemdPath v.where;
                          in nameValuePair "${n}.automount" (automountToUnit n v)) cfg.automounts);
 
-      services.emergency = mkIf (isBool cfg.emergencyAccess && cfg.emergencyAccess) {
-        environment.SYSTEMD_SULOGIN_FORCE = "1";
-      };
       # The unit in /run/systemd/generator shadows the unit in
       # /etc/systemd/system, but will still apply drop-ins from
       # /etc/systemd/system/foo.service.d/
@@ -429,6 +441,69 @@ in {
       '')];
       services."systemd-makefs@".unitConfig.IgnoreOnIsolate = true;
       services."systemd-growfs@".unitConfig.IgnoreOnIsolate = true;
+
+      services.initrd-nixos-activation = {
+        after = [ "initrd-fs.target" ];
+        requiredBy = [ "initrd.target" ];
+        unitConfig.AssertPathExists = "/etc/initrd-release";
+        serviceConfig.Type = "oneshot";
+        description = "NixOS Activation";
+
+        script = /* bash */ ''
+          set -uo pipefail
+          export PATH="/bin:${cfg.package.util-linux}/bin"
+
+          # Figure out what closure to boot
+          closure=
+          for o in $(< /proc/cmdline); do
+              case $o in
+                  init=*)
+                      IFS== read -r -a initParam <<< "$o"
+                      closure="$(dirname "''${initParam[1]}")"
+                      ;;
+              esac
+          done
+
+          # Sanity check
+          if [ -z "''${closure:-}" ]; then
+            echo 'No init= parameter on the kernel command line' >&2
+            exit 1
+          fi
+
+          # If we are not booting a NixOS closure (e.g. init=/bin/sh),
+          # we don't know what root to prepare so we don't do anything
+          if ! [ -x "/sysroot$closure/prepare-root" ]; then
+            echo "NEW_INIT=''${initParam[1]}" > /etc/switch-root.conf
+            echo "$closure does not look like a NixOS installation - not activating"
+            exit 0
+          fi
+          echo 'NEW_INIT=' > /etc/switch-root.conf
+
+
+          # We need to propagate /run for things like /run/booted-system
+          # and /run/current-system.
+          mkdir -p /sysroot/run
+          mount --bind /run /sysroot/run
+
+          # Initialize the system
+          export IN_NIXOS_SYSTEMD_STAGE1=true
+          exec chroot /sysroot $closure/prepare-root
+        '';
+      };
+
+      # This will either call systemctl with the new init as the last parameter (which
+      # is the case when not booting a NixOS system) or with an empty string, causing
+      # systemd to bypass its verification code that checks whether the next file is a systemd
+      # and using its compiled-in value
+      services.initrd-switch-root.serviceConfig = {
+        EnvironmentFile = "-/etc/switch-root.conf";
+        ExecStart = [
+          ""
+          ''systemctl --no-block switch-root /sysroot "''${NEW_INIT}"''
+        ];
+      };
     };
+
+    boot.kernelParams = lib.mkIf (config.boot.resumeDevice != "") [ "resume=${config.boot.resumeDevice}" ];
   };
 }
diff --git a/nixos/modules/system/boot/systemd/shutdown.nix b/nixos/modules/system/boot/systemd/shutdown.nix
new file mode 100644
index 0000000000000..9342693166762
--- /dev/null
+++ b/nixos/modules/system/boot/systemd/shutdown.nix
@@ -0,0 +1,32 @@
+{ config, lib, ... }: let
+
+  cfg = config.boot.systemd.shutdown;
+
+in {
+  options.boot.systemd.shutdown = {
+    enable = lib.mkEnableOption "pivoting back to an initramfs for shutdown" // { default = true; };
+  };
+
+  config = lib.mkIf cfg.enable {
+    systemd.services.generate-shutdown-ramfs = {
+      description = "Generate shutdown ramfs";
+      before = [ "shutdown.target" ];
+      unitConfig = {
+        DefaultDependencies = false;
+        ConditionFileIsExecutable = [
+          "!/run/initramfs/shutdown"
+          "/run/current-system/systemd/lib/systemd/systemd-shutdown"
+        ];
+      };
+
+      serviceConfig.Type = "oneshot";
+      script = ''
+        mkdir -p /run/initramfs
+        if ! mountpoint -q /run/initramfs; then
+          mount -t tmpfs tmpfs /run/initramfs
+        fi
+        cp /run/current-system/systemd/lib/systemd/systemd-shutdown /run/initramfs/shutdown
+      '';
+    };
+  };
+}
diff --git a/nixos/modules/system/boot/timesyncd.nix b/nixos/modules/system/boot/timesyncd.nix
index 5f35a15476965..6279957fcd63b 100644
--- a/nixos/modules/system/boot/timesyncd.nix
+++ b/nixos/modules/system/boot/timesyncd.nix
@@ -60,15 +60,27 @@ with lib;
     };
     users.groups.systemd-timesync.gid = config.ids.gids.systemd-timesync;
 
-    system.activationScripts.systemd-timesyncd-migration = mkIf (versionOlder config.system.stateVersion "19.09") ''
+    system.activationScripts.systemd-timesyncd-migration =
       # workaround an issue of systemd-timesyncd not starting due to upstream systemd reverting their dynamic users changes
       #  - https://github.com/NixOS/nixpkgs/pull/61321#issuecomment-492423742
       #  - https://github.com/systemd/systemd/issues/12131
-      if [ -L /var/lib/systemd/timesync ]; then
-        rm /var/lib/systemd/timesync
-        mv /var/lib/private/systemd/timesync /var/lib/systemd/timesync
+      mkIf (versionOlder config.system.stateVersion "19.09") ''
+        if [ -L /var/lib/systemd/timesync ]; then
+          rm /var/lib/systemd/timesync
+          mv /var/lib/private/systemd/timesync /var/lib/systemd/timesync
+        fi
+      '';
+    system.activationScripts.systemd-timesyncd-init-clock =
+      # Ensure that we have some stored time to prevent systemd-timesyncd to
+      # resort back to the fallback time.
+      # If the file doesn't exist we assume that our current system clock is
+      # good enough to provide an initial value.
+      ''
+      if ! [ -f /var/lib/systemd/timesync/clock ]; then
+        test -d /var/lib/systemd/timesync || mkdir -p /var/lib/systemd/timesync
+        touch /var/lib/systemd/timesync/clock
       fi
-    '';
+      '';
   };
 
 }
diff --git a/nixos/modules/tasks/auto-upgrade.nix b/nixos/modules/tasks/auto-upgrade.nix
index a5755d08d7de9..d00dc761d6e38 100644
--- a/nixos/modules/tasks/auto-upgrade.nix
+++ b/nixos/modules/tasks/auto-upgrade.nix
@@ -63,13 +63,16 @@ in {
       };
 
       dates = mkOption {
-        default = "04:40";
         type = types.str;
+        default = "04:40";
+        example = "daily";
         description = ''
-          Specification (in the format described by
+          How often or when upgrade occurs. For most desktop and server systems
+          a sufficient upgrade frequency is once a day.
+
+          The format is described in
           <citerefentry><refentrytitle>systemd.time</refentrytitle>
-          <manvolnum>7</manvolnum></citerefentry>) of the time at
-          which the update will occur.
+          <manvolnum>7</manvolnum></citerefentry>.
         '';
       };
 
@@ -123,6 +126,22 @@ in {
         });
       };
 
+      persistent = mkOption {
+        default = true;
+        type = types.bool;
+        example = false;
+        description = ''
+          Takes a boolean argument. If true, the time when the service
+          unit was last triggered is stored on disk. When the timer is
+          activated, the service unit is triggered immediately if it
+          would have been triggered at least once during the time when
+          the timer was inactive. Such triggering is nonetheless
+          subject to the delay imposed by RandomizedDelaySec=. This is
+          useful to catch up on missed runs of the service when the
+          system was powered down.
+        '';
+      };
+
     };
 
   };
@@ -217,11 +236,17 @@ in {
       '';
 
       startAt = cfg.dates;
-    };
 
-    systemd.timers.nixos-upgrade.timerConfig.RandomizedDelaySec =
-      cfg.randomizedDelaySec;
+      after = [ "network-online.target" ];
+      wants = [ "network-online.target" ];
+    };
 
+    systemd.timers.nixos-upgrade = {
+      timerConfig = {
+        RandomizedDelaySec = cfg.randomizedDelaySec;
+        Persistent = cfg.persistent;
+      };
+    };
   };
 
 }
diff --git a/nixos/modules/tasks/bcache.nix b/nixos/modules/tasks/bcache.nix
index 41fb7664f3d17..0a13522de11f0 100644
--- a/nixos/modules/tasks/bcache.nix
+++ b/nixos/modules/tasks/bcache.nix
@@ -1,13 +1,23 @@
-{ pkgs, ... }:
+{ config, lib, pkgs, ... }:
 
 {
+  options.boot.initrd.services.bcache.enable = (lib.mkEnableOption "bcache support in the initrd") // {
+    visible = false; # only works with systemd stage 1
+  };
 
-  environment.systemPackages = [ pkgs.bcache-tools ];
+  config = {
 
-  services.udev.packages = [ pkgs.bcache-tools ];
+    environment.systemPackages = [ pkgs.bcache-tools ];
 
-  boot.initrd.extraUdevRulesCommands = ''
-    cp -v ${pkgs.bcache-tools}/lib/udev/rules.d/*.rules $out/
-  '';
+    services.udev.packages = [ pkgs.bcache-tools ];
 
+    boot.initrd.extraUdevRulesCommands = lib.mkIf (!config.boot.initrd.systemd.enable) ''
+      cp -v ${pkgs.bcache-tools}/lib/udev/rules.d/*.rules $out/
+    '';
+
+    boot.initrd.services.udev = lib.mkIf config.boot.initrd.services.bcache.enable {
+      packages = [ pkgs.bcache-tools ];
+      binPackages = [ pkgs.bcache-tools ];
+    };
+  };
 }
diff --git a/nixos/modules/tasks/filesystems/btrfs.nix b/nixos/modules/tasks/filesystems/btrfs.nix
index ae1dab5b8d8d4..b7ebc37dd5cf9 100644
--- a/nixos/modules/tasks/filesystems/btrfs.nix
+++ b/nixos/modules/tasks/filesystems/btrfs.nix
@@ -66,19 +66,19 @@ in
         ]
       );
 
-      boot.initrd.extraUtilsCommands = mkIf inInitrd
+      boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
       ''
         copy_bin_and_libs ${pkgs.btrfs-progs}/bin/btrfs
         ln -sv btrfs $out/bin/btrfsck
         ln -sv btrfsck $out/bin/fsck.btrfs
       '';
 
-      boot.initrd.extraUtilsCommandsTest = mkIf inInitrd
+      boot.initrd.extraUtilsCommandsTest = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
       ''
         $out/bin/btrfs --version
       '';
 
-      boot.initrd.postDeviceCommands = mkIf inInitrd
+      boot.initrd.postDeviceCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
       ''
         btrfs device scan
       '';
diff --git a/nixos/modules/tasks/filesystems/cifs.nix b/nixos/modules/tasks/filesystems/cifs.nix
index 47ba0c03c5630..0de292a692082 100644
--- a/nixos/modules/tasks/filesystems/cifs.nix
+++ b/nixos/modules/tasks/filesystems/cifs.nix
@@ -16,7 +16,7 @@ in
     boot.initrd.availableKernelModules = mkIf inInitrd
       [ "cifs" "nls_utf8" "hmac" "md4" "ecb" "des_generic" "sha256" ];
 
-    boot.initrd.extraUtilsCommands = mkIf inInitrd
+    boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
       ''
         copy_bin_and_libs ${pkgs.cifs-utils}/sbin/mount.cifs
       '';
diff --git a/nixos/modules/tasks/filesystems/ext.nix b/nixos/modules/tasks/filesystems/ext.nix
index a14a3ac38549c..9b61f21643aba 100644
--- a/nixos/modules/tasks/filesystems/ext.nix
+++ b/nixos/modules/tasks/filesystems/ext.nix
@@ -1,14 +1,20 @@
-{ pkgs, ... }:
+{ config, lib, pkgs, ... }:
+
+let
+
+  inInitrd = lib.any (fs: fs == "ext2" || fs == "ext3" || fs == "ext4") config.boot.initrd.supportedFilesystems;
+
+in
 
 {
   config = {
 
-    system.fsPackages = [ pkgs.e2fsprogs ];
+    system.fsPackages = lib.mkIf (config.boot.initrd.systemd.enable -> inInitrd) [ pkgs.e2fsprogs ];
 
     # As of kernel 4.3, there is no separate ext3 driver (they're also handled by ext4.ko)
-    boot.initrd.availableKernelModules = [ "ext2" "ext4" ];
+    boot.initrd.availableKernelModules = lib.mkIf (config.boot.initrd.systemd.enable -> inInitrd) [ "ext2" "ext4" ];
 
-    boot.initrd.extraUtilsCommands =
+    boot.initrd.extraUtilsCommands = lib.mkIf (!config.boot.initrd.systemd.enable)
       ''
         # Copy e2fsck and friends.
         copy_bin_and_libs ${pkgs.e2fsprogs}/sbin/e2fsck
diff --git a/nixos/modules/tasks/filesystems/f2fs.nix b/nixos/modules/tasks/filesystems/f2fs.nix
index a305235979a2f..1d52861aa39d1 100644
--- a/nixos/modules/tasks/filesystems/f2fs.nix
+++ b/nixos/modules/tasks/filesystems/f2fs.nix
@@ -13,7 +13,7 @@ in
 
     boot.initrd.availableKernelModules = mkIf inInitrd [ "f2fs" "crc32" ];
 
-    boot.initrd.extraUtilsCommands = mkIf inInitrd ''
+    boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable) ''
       copy_bin_and_libs ${pkgs.f2fs-tools}/sbin/fsck.f2fs
       ${optionalString (any (fs: fs.autoResize) fileSystems) ''
         # We need f2fs-tools' tools to resize filesystems
diff --git a/nixos/modules/tasks/filesystems/jfs.nix b/nixos/modules/tasks/filesystems/jfs.nix
index fc3905c7dc201..700f05af2bec4 100644
--- a/nixos/modules/tasks/filesystems/jfs.nix
+++ b/nixos/modules/tasks/filesystems/jfs.nix
@@ -12,7 +12,7 @@ in
 
     boot.initrd.kernelModules = mkIf inInitrd [ "jfs" ];
 
-    boot.initrd.extraUtilsCommands = mkIf inInitrd ''
+    boot.initrd.extraUtilsCommands = mkIf (inInitrd && !boot.initrd.systemd.enable) ''
       copy_bin_and_libs ${pkgs.jfsutils}/sbin/fsck.jfs
     '';
   };
diff --git a/nixos/modules/tasks/filesystems/reiserfs.nix b/nixos/modules/tasks/filesystems/reiserfs.nix
index ab4c43e2ab826..7b017a83db848 100644
--- a/nixos/modules/tasks/filesystems/reiserfs.nix
+++ b/nixos/modules/tasks/filesystems/reiserfs.nix
@@ -15,7 +15,7 @@ in
 
     boot.initrd.kernelModules = mkIf inInitrd [ "reiserfs" ];
 
-    boot.initrd.extraUtilsCommands = mkIf inInitrd
+    boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
       ''
         copy_bin_and_libs ${pkgs.reiserfsprogs}/sbin/reiserfsck
         ln -s reiserfsck $out/bin/fsck.reiserfs
diff --git a/nixos/modules/tasks/filesystems/unionfs-fuse.nix b/nixos/modules/tasks/filesystems/unionfs-fuse.nix
index f54f3559c3411..f9954b5182f91 100644
--- a/nixos/modules/tasks/filesystems/unionfs-fuse.nix
+++ b/nixos/modules/tasks/filesystems/unionfs-fuse.nix
@@ -6,7 +6,7 @@
     (lib.mkIf (lib.any (fs: fs == "unionfs-fuse") config.boot.initrd.supportedFilesystems) {
       boot.initrd.kernelModules = [ "fuse" ];
 
-      boot.initrd.extraUtilsCommands = ''
+      boot.initrd.extraUtilsCommands = lib.mkIf (!config.boot.initrd.systemd.enable) ''
         copy_bin_and_libs ${pkgs.fuse}/sbin/mount.fuse
         copy_bin_and_libs ${pkgs.unionfs-fuse}/bin/unionfs
         substitute ${pkgs.unionfs-fuse}/sbin/mount.unionfs-fuse $out/bin/mount.unionfs-fuse \
@@ -16,12 +16,23 @@
         chmod +x $out/bin/mount.unionfs-fuse
       '';
 
-      boot.initrd.postDeviceCommands = ''
+      boot.initrd.postDeviceCommands = lib.mkIf (!config.boot.initrd.systemd.enable) ''
           # Hacky!!! fuse hard-codes the path to mount
           mkdir -p /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.util-linux.name}-bin/bin
           ln -s $(which mount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.util-linux.name}-bin/bin
           ln -s $(which umount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.util-linux.name}-bin/bin
         '';
+
+      boot.initrd.systemd.extraBin = {
+        "mount.fuse" = "${pkgs.fuse}/bin/mount.fuse";
+        "unionfs" = "${pkgs.unionfs-fuse}/bin/unionfs";
+        "mount.unionfs-fuse" = pkgs.runCommand "mount.unionfs-fuse" {} ''
+          substitute ${pkgs.unionfs-fuse}/sbin/mount.unionfs-fuse $out \
+            --replace '${pkgs.bash}/bin/bash' /bin/sh \
+            --replace '${pkgs.fuse}/sbin' /bin \
+            --replace '${pkgs.unionfs-fuse}/bin' /bin
+        '';
+      };
     })
 
     (lib.mkIf (lib.any (fs: fs == "unionfs-fuse") config.boot.supportedFilesystems) {
diff --git a/nixos/modules/tasks/filesystems/vfat.nix b/nixos/modules/tasks/filesystems/vfat.nix
index 958e27ae8a32a..5baab1c802cf9 100644
--- a/nixos/modules/tasks/filesystems/vfat.nix
+++ b/nixos/modules/tasks/filesystems/vfat.nix
@@ -15,7 +15,7 @@ in
 
     boot.initrd.kernelModules = mkIf inInitrd [ "vfat" "nls_cp437" "nls_iso8859-1" ];
 
-    boot.initrd.extraUtilsCommands = mkIf inInitrd
+    boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
       ''
         copy_bin_and_libs ${pkgs.dosfstools}/sbin/dosfsck
         ln -sv dosfsck $out/bin/fsck.vfat
diff --git a/nixos/modules/tasks/filesystems/xfs.nix b/nixos/modules/tasks/filesystems/xfs.nix
index 98038701ca580..80e46efcc7803 100644
--- a/nixos/modules/tasks/filesystems/xfs.nix
+++ b/nixos/modules/tasks/filesystems/xfs.nix
@@ -15,14 +15,14 @@ in
 
     boot.initrd.availableKernelModules = mkIf inInitrd [ "xfs" "crc32c" ];
 
-    boot.initrd.extraUtilsCommands = mkIf inInitrd
+    boot.initrd.extraUtilsCommands = mkIf (inInitrd && !boot.initrd.systemd.enable)
       ''
         copy_bin_and_libs ${pkgs.xfsprogs.bin}/bin/fsck.xfs
         copy_bin_and_libs ${pkgs.xfsprogs.bin}/bin/xfs_repair
       '';
 
     # Trick just to set 'sh' after the extraUtils nuke-refs.
-    boot.initrd.extraUtilsCommandsTest = mkIf inInitrd
+    boot.initrd.extraUtilsCommandsTest = mkIf (inInitrd && !boot.initrd.systemd.enable)
       ''
         sed -i -e 's,^#!.*,#!'$out/bin/sh, $out/bin/fsck.xfs
       '';
diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix
index 3bc0dedec00e2..fbfc61177d386 100644
--- a/nixos/modules/tasks/filesystems/zfs.nix
+++ b/nixos/modules/tasks/filesystems/zfs.nix
@@ -642,41 +642,14 @@ in
         };
 
         scriptArgs = "%i";
-        path = [ pkgs.gawk cfgZfs.package ];
-
-        # ZFS has no way of enumerating just devices in a pool in a way
-        # that 'zpool online -e' supports. Thus, we've implemented a
-        # bit of a strange approach of highlighting just devices.
-        # See: https://github.com/openzfs/zfs/issues/12505
-        script = let
-          # This UUID has been chosen at random and is to provide a
-          # collision-proof, predictable token to search for
-          magicIdentifier = "NIXOS-ZFS-ZPOOL-DEVICE-IDENTIFIER-37108bec-aff6-4b58-9e5e-53c7c9766f05";
-          zpoolScripts = pkgs.writeShellScriptBin "device-highlighter" ''
-            echo "${magicIdentifier}"
-          '';
-        in ''
+        path = [ cfgZfs.package ];
+
+        script =  ''
           pool=$1
 
           echo "Expanding all devices for $pool."
 
-          # Put our device-highlighter script it to the PATH
-          export ZPOOL_SCRIPTS_PATH=${zpoolScripts}/bin
-
-          # Enable running our precisely specified zpool script as root
-          export ZPOOL_SCRIPTS_AS_ROOT=1
-
-          devices() (
-            zpool status -c device-highlighter "$pool" \
-             | awk '($2 == "ONLINE" && $6 == "${magicIdentifier}") { print $1; }'
-          )
-
-          for device in $(devices); do
-            echo "Attempting to expand $device of $pool..."
-            if ! zpool online -e "$pool" "$device"; then
-              echo "Failed to expand '$device' of '$pool'."
-            fi
-          done
+          ${pkgs.zpool-auto-expand-partitions}/bin/zpool_part_disks --automatically-grow "$pool"
         '';
       };
 
@@ -701,8 +674,6 @@ in
             RemainAfterExit = true;
           };
 
-          path = [ pkgs.gawk cfgZfs.package ];
-
           script = ''
             for pool in ${poolListProvider}; do
               systemctl start --no-block "zpool-expand@$pool"
diff --git a/nixos/modules/tasks/lvm.nix b/nixos/modules/tasks/lvm.nix
index 35316603c38f2..4108b482cce51 100644
--- a/nixos/modules/tasks/lvm.nix
+++ b/nixos/modules/tasks/lvm.nix
@@ -7,17 +7,22 @@ in {
   options.services.lvm = {
     package = mkOption {
       type = types.package;
-      default = if cfg.dmeventd.enable then pkgs.lvm2_dmeventd else pkgs.lvm2;
+      default = pkgs.lvm2;
       internal = true;
       defaultText = literalExpression "pkgs.lvm2";
       description = ''
         This option allows you to override the LVM package that's used on the system
         (udev rules, tmpfiles, systemd services).
-        Defaults to pkgs.lvm2, or pkgs.lvm2_dmeventd if dmeventd is enabled.
+        Defaults to pkgs.lvm2, pkgs.lvm2_dmeventd if dmeventd or pkgs.lvm2_vdo if vdo is enabled.
       '';
     };
     dmeventd.enable = mkEnableOption "the LVM dmevent daemon";
     boot.thin.enable = mkEnableOption "support for booting from ThinLVs";
+    boot.vdo.enable = mkEnableOption "support for booting from VDOLVs";
+  };
+
+  options.boot.initrd.services.lvm.enable = (mkEnableOption "enable booting from LVM2 in the initrd") // {
+    visible = false;
   };
 
   config = mkMerge [
@@ -30,8 +35,13 @@ in {
       environment.systemPackages = [ cfg.package ];
       systemd.packages = [ cfg.package ];
 
-      # TODO: update once https://github.com/NixOS/nixpkgs/pull/93006 was merged
       services.udev.packages = [ cfg.package.out ];
+
+      # We need lvm2 for the device-mapper rules
+      boot.initrd.services.udev.packages = lib.mkIf config.boot.initrd.services.lvm.enable [ cfg.package ];
+      # The device-mapper rules want to call tools from lvm2
+      boot.initrd.systemd.initrdBin = lib.mkIf config.boot.initrd.services.lvm.enable [ cfg.package ];
+      boot.initrd.services.udev.binPackages = lib.mkIf config.boot.initrd.services.lvm.enable [ cfg.package ];
     })
     (mkIf cfg.dmeventd.enable {
       systemd.sockets."dm-event".wantedBy = [ "sockets.target" ];
@@ -40,18 +50,21 @@ in {
       environment.etc."lvm/lvm.conf".text = ''
         dmeventd/executable = "${cfg.package}/bin/dmeventd"
       '';
+      services.lvm.package = mkDefault pkgs.lvm2_dmeventd;
     })
     (mkIf cfg.boot.thin.enable {
       boot.initrd = {
         kernelModules = [ "dm-snapshot" "dm-thin-pool" ];
 
-        extraUtilsCommands = ''
+        systemd.initrdBin = lib.mkIf config.boot.initrd.services.lvm.enable [ pkgs.thin-provisioning-tools ];
+
+        extraUtilsCommands = mkIf (!config.boot.initrd.systemd.enable) ''
           for BIN in ${pkgs.thin-provisioning-tools}/bin/*; do
             copy_bin_and_libs $BIN
           done
         '';
 
-        extraUtilsCommandsTest = ''
+        extraUtilsCommandsTest = mkIf (!config.boot.initrd.systemd.enable) ''
           ls ${pkgs.thin-provisioning-tools}/bin/ | grep -v pdata_tools | while read BIN; do
             $out/bin/$(basename $BIN) --help > /dev/null
           done
@@ -61,9 +74,45 @@ in {
       environment.etc."lvm/lvm.conf".text = concatMapStringsSep "\n"
         (bin: "global/${bin}_executable = ${pkgs.thin-provisioning-tools}/bin/${bin}")
         [ "thin_check" "thin_dump" "thin_repair" "cache_check" "cache_dump" "cache_repair" ];
+
+      environment.systemPackages = [ pkgs.thin-provisioning-tools ];
+    })
+    (mkIf cfg.boot.vdo.enable {
+      boot = {
+        initrd = {
+          kernelModules = [ "kvdo" ];
+
+          systemd.initrdBin = lib.mkIf config.boot.initrd.services.lvm.enable [ pkgs.vdo ];
+
+          extraUtilsCommands = mkIf (!config.boot.initrd.systemd.enable)''
+            ls ${pkgs.vdo}/bin/ | grep -v adaptLVMVDO | while read BIN; do
+              copy_bin_and_libs ${pkgs.vdo}/bin/$BIN
+            done
+          '';
+
+          extraUtilsCommandsTest = mkIf (!config.boot.initrd.systemd.enable)''
+            ls ${pkgs.vdo}/bin/ | grep -v adaptLVMVDO | while read BIN; do
+              $out/bin/$(basename $BIN) --help > /dev/null
+            done
+          '';
+        };
+        extraModulePackages = [ config.boot.kernelPackages.kvdo ];
+      };
+
+      services.lvm.package = mkOverride 999 pkgs.lvm2_vdo;  # this overrides mkDefault
+
+      environment.systemPackages = [ pkgs.vdo ];
     })
     (mkIf (cfg.dmeventd.enable || cfg.boot.thin.enable) {
-      boot.initrd.preLVMCommands = ''
+      boot.initrd.systemd.contents."/etc/lvm/lvm.conf".text = optionalString (config.boot.initrd.services.lvm.enable && cfg.boot.thin.enable) (concatMapStringsSep "\n"
+          (bin: "global/${bin}_executable = /bin/${bin}")
+          [ "thin_check" "thin_dump" "thin_repair" "cache_check" "cache_dump" "cache_repair" ]
+        ) + "\n" + optionalString cfg.dmeventd.enable ''
+          dmeventd/executable = /bin/false
+          activation/monitoring = 0
+        '';
+
+      boot.initrd.preLVMCommands = mkIf (!config.boot.initrd.systemd.enable) ''
           mkdir -p /etc/lvm
           cat << EOF >> /etc/lvm/lvm.conf
           ${optionalString cfg.boot.thin.enable (
diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix
index 8ca4ad7b7d86d..d09e9b99248d8 100644
--- a/nixos/modules/tasks/network-interfaces.nix
+++ b/nixos/modules/tasks/network-interfaces.nix
@@ -403,6 +403,15 @@ let
     </itemizedlist>
   '';
 
+  hostidFile = pkgs.runCommand "gen-hostid" { preferLocalBuild = true; } ''
+      hi="${cfg.hostId}"
+      ${if pkgs.stdenv.isBigEndian then ''
+        echo -ne "\x''${hi:0:2}\x''${hi:2:2}\x''${hi:4:2}\x''${hi:6:2}" > $out
+      '' else ''
+        echo -ne "\x''${hi:6:2}\x''${hi:4:2}\x''${hi:2:2}\x''${hi:0:2}" > $out
+      ''}
+    '';
+
 in
 
 {
@@ -1383,16 +1392,8 @@ in
         domainname "${cfg.domain}"
       '';
 
-    environment.etc.hostid = mkIf (cfg.hostId != null)
-      { source = pkgs.runCommand "gen-hostid" { preferLocalBuild = true; } ''
-          hi="${cfg.hostId}"
-          ${if pkgs.stdenv.isBigEndian then ''
-            echo -ne "\x''${hi:0:2}\x''${hi:2:2}\x''${hi:4:2}\x''${hi:6:2}" > $out
-          '' else ''
-            echo -ne "\x''${hi:6:2}\x''${hi:4:2}\x''${hi:2:2}\x''${hi:0:2}" > $out
-          ''}
-        '';
-      };
+    environment.etc.hostid = mkIf (cfg.hostId != null) { source = hostidFile; };
+    boot.initrd.systemd.contents."/etc/hostid" = mkIf (cfg.hostId != null) { source = hostidFile; };
 
     # static hostname configuration needed for hostnamectl and the
     # org.freedesktop.hostname1 dbus service (both provided by systemd)
diff --git a/nixos/modules/tasks/swraid.nix b/nixos/modules/tasks/swraid.nix
index 8fa19194bed42..0b53a6d152d09 100644
--- a/nixos/modules/tasks/swraid.nix
+++ b/nixos/modules/tasks/swraid.nix
@@ -1,17 +1,43 @@
-{ pkgs, ... }:
+{ config, pkgs, lib, ... }: let
 
-{
+  cfg = config.boot.initrd.services.swraid;
 
-  environment.systemPackages = [ pkgs.mdadm ];
+in {
 
-  services.udev.packages = [ pkgs.mdadm ];
+  options.boot.initrd.services.swraid = {
+    enable = (lib.mkEnableOption "swraid support using mdadm") // {
+      visible = false; # only has effect when the new stage 1 is in place
+    };
 
-  systemd.packages = [ pkgs.mdadm ];
+    mdadmConf = lib.mkOption {
+      description = "Contents of <filename>/etc/mdadm.conf</filename> in initrd.";
+      type = lib.types.lines;
+      default = "";
+    };
+  };
 
-  boot.initrd.availableKernelModules = [ "md_mod" "raid0" "raid1" "raid10" "raid456" ];
+  config = {
+    environment.systemPackages = [ pkgs.mdadm ];
 
-  boot.initrd.extraUdevRulesCommands = ''
-    cp -v ${pkgs.mdadm}/lib/udev/rules.d/*.rules $out/
-  '';
+    services.udev.packages = [ pkgs.mdadm ];
 
+    systemd.packages = [ pkgs.mdadm ];
+
+    boot.initrd.availableKernelModules = lib.mkIf (config.boot.initrd.systemd.enable -> cfg.enable) [ "md_mod" "raid0" "raid1" "raid10" "raid456" ];
+
+    boot.initrd.extraUdevRulesCommands = lib.mkIf (!config.boot.initrd.systemd.enable) ''
+      cp -v ${pkgs.mdadm}/lib/udev/rules.d/*.rules $out/
+    '';
+
+    boot.initrd.systemd = lib.mkIf cfg.enable {
+      contents."/etc/mdadm.conf" = lib.mkIf (cfg.mdadmConf != "") {
+        text = cfg.mdadmConf;
+      };
+
+      packages = [ pkgs.mdadm ];
+      initrdBin = [ pkgs.mdadm ];
+    };
+
+    boot.initrd.services.udev.packages = lib.mkIf cfg.enable [ pkgs.mdadm ];
+  };
 }
diff --git a/nixos/modules/virtualisation/azure-common.nix b/nixos/modules/virtualisation/azure-common.nix
index 8efa177e30d16..dc7853b95032c 100644
--- a/nixos/modules/virtualisation/azure-common.nix
+++ b/nixos/modules/virtualisation/azure-common.nix
@@ -21,7 +21,11 @@ with lib;
   # way to select them anyway.
   boot.loader.grub.configurationLimit = 0;
 
-  fileSystems."/".device = "/dev/disk/by-label/nixos";
+  fileSystems."/" = {
+    device = "/dev/disk/by-label/nixos";
+    fsType = "ext4";
+    autoResize = true;
+  };
 
   # Allow root logins only using the SSH key that the user specified
   # at instance creation time, ping client connections to avoid timeouts
diff --git a/nixos/modules/virtualisation/libvirtd.nix b/nixos/modules/virtualisation/libvirtd.nix
index ab87394a30eee..e0bccb83a97ff 100644
--- a/nixos/modules/virtualisation/libvirtd.nix
+++ b/nixos/modules/virtualisation/libvirtd.nix
@@ -344,6 +344,10 @@ in
       restartIfChanged = false;
     };
 
+    systemd.services.virtchd = {
+      path = [ pkgs.cloud-hypervisor ];
+    };
+
     systemd.services.libvirt-guests = {
       wantedBy = [ "multi-user.target" ];
       path = with pkgs; [ coreutils gawk cfg.package ];
diff --git a/nixos/modules/virtualisation/openstack-config.nix b/nixos/modules/virtualisation/openstack-config.nix
index d01e0f23aba17..af4f574661091 100644
--- a/nixos/modules/virtualisation/openstack-config.nix
+++ b/nixos/modules/virtualisation/openstack-config.nix
@@ -1,8 +1,11 @@
-{ pkgs, lib, ... }:
+{ config, pkgs, lib, ... }:
 
-with lib;
+# image metadata:
+# hw_firmware_type=uefi
 
 let
+  inherit (lib) mkIf mkDefault;
+  cfg = config.openstack;
   metadataFetcher = import ./openstack-metadata-fetcher.nix {
     targetRoot = "/";
     wgetExtraOptions = "--retry-connrefused";
@@ -11,23 +14,47 @@ in
 {
   imports = [
     ../profiles/qemu-guest.nix
+
+    # Note: While we do use the headless profile, we also explicitly
+    # turn on the serial console on tty1 below.
+    # Note that I could not find any documentation indicating tty1 was
+    # the correct choice. I picked tty1 because that is what one
+    # particular host was using.
     ../profiles/headless.nix
+
     # The Openstack Metadata service exposes data on an EC2 API also.
     ./ec2-data.nix
     ./amazon-init.nix
   ];
 
   config = {
-    fileSystems."/" = {
+    fileSystems."/" = mkIf (!cfg.zfs.enable) {
       device = "/dev/disk/by-label/nixos";
       fsType = "ext4";
       autoResize = true;
     };
 
+    fileSystems."/boot" = mkIf (cfg.efi || cfg.zfs.enable) {
+      # The ZFS image uses a partition labeled ESP whether or not we're
+      # booting with EFI.
+      device = "/dev/disk/by-label/ESP";
+      fsType = "vfat";
+    };
+
     boot.growPartition = true;
-    boot.kernelParams = [ "console=ttyS0" ];
-    boot.loader.grub.device = "/dev/vda";
-    boot.loader.timeout = 0;
+    boot.kernelParams = [ "console=tty1" ];
+    boot.loader.grub.device = if (!cfg.efi) then "/dev/vda" else "nodev";
+    boot.loader.grub.efiSupport = cfg.efi;
+    boot.loader.grub.efiInstallAsRemovable = cfg.efi;
+    boot.loader.timeout = 1;
+    boot.loader.grub.extraConfig = ''
+      serial --unit=1 --speed=115200 --word=8 --parity=no --stop=1
+      terminal_output console serial
+      terminal_input console serial
+    '';
+
+    services.zfs.expandOnBoot = mkIf cfg.zfs.enable (lib.mkDefault "all");
+    boot.zfs.devNodes = mkIf cfg.zfs.enable "/dev/";
 
     # Allow root logins
     services.openssh = {
@@ -36,6 +63,11 @@ in
       passwordAuthentication = mkDefault false;
     };
 
+    users.users.root.initialPassword = "foobar";
+
+    # Enable the serial console on tty1
+    systemd.services."serial-getty@tty1".enable = true;
+
     # Force getting the hostname from Openstack metadata.
     networking.hostName = mkDefault "";
 
@@ -43,7 +75,7 @@ in
       path = [ pkgs.wget ];
       description = "Fetch Metadata on startup";
       wantedBy = [ "multi-user.target" ];
-      before = [ "apply-ec2-data.service" "amazon-init.service"];
+      before = [ "apply-ec2-data.service" "amazon-init.service" ];
       wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       script = metadataFetcher;
diff --git a/nixos/modules/virtualisation/openstack-metadata-fetcher.nix b/nixos/modules/virtualisation/openstack-metadata-fetcher.nix
index 25104bb476674..d62428b47a449 100644
--- a/nixos/modules/virtualisation/openstack-metadata-fetcher.nix
+++ b/nixos/modules/virtualisation/openstack-metadata-fetcher.nix
@@ -14,9 +14,9 @@
     wget ${wgetExtraOptions} "$@"
   }
 
-  wget_imds -O "$metaDir/ami-manifest-path" http://169.254.169.254/1.0/meta-data/ami-manifest-path
+  wget_imds -O "$metaDir/ami-manifest-path" http://169.254.169.254/1.0/meta-data/ami-manifest-path || true
   # When no user-data is provided, the OpenStack metadata server doesn't expose the user-data route.
   (umask 077 && wget_imds -O "$metaDir/user-data" http://169.254.169.254/1.0/user-data || rm -f "$metaDir/user-data")
-  wget_imds -O "$metaDir/hostname" http://169.254.169.254/1.0/meta-data/hostname
-  wget_imds -O "$metaDir/public-keys-0-openssh-key" http://169.254.169.254/1.0/meta-data/public-keys/0/openssh-key
+  wget_imds -O "$metaDir/hostname" http://169.254.169.254/1.0/meta-data/hostname || true
+  wget_imds -O "$metaDir/public-keys-0-openssh-key" http://169.254.169.254/1.0/meta-data/public-keys/0/openssh-key || true
 ''
diff --git a/nixos/modules/virtualisation/openstack-options.nix b/nixos/modules/virtualisation/openstack-options.nix
new file mode 100644
index 0000000000000..cbc779f27c8f8
--- /dev/null
+++ b/nixos/modules/virtualisation/openstack-options.nix
@@ -0,0 +1,71 @@
+{ config, lib, pkgs, ... }:
+let
+  inherit (lib) literalExpression types;
+in
+{
+  options = {
+    openstack = {
+      zfs = {
+        enable = lib.mkOption {
+          default = false;
+          internal = true;
+          description = ''
+            Whether the OpenStack instance uses a ZFS root.
+          '';
+        };
+
+        datasets = lib.mkOption {
+          description = ''
+            Datasets to create under the `tank` and `boot` zpools.
+
+            **NOTE:** This option is used only at image creation time, and
+            does not attempt to declaratively create or manage datasets
+            on an existing system.
+          '';
+
+          default = { };
+
+          type = types.attrsOf (types.submodule {
+            options = {
+              mount = lib.mkOption {
+                description = "Where to mount this dataset.";
+                type = types.nullOr types.string;
+                default = null;
+              };
+
+              properties = lib.mkOption {
+                description = "Properties to set on this dataset.";
+                type = types.attrsOf types.string;
+                default = { };
+              };
+            };
+          });
+        };
+      };
+
+      efi = lib.mkOption {
+        default = pkgs.stdenv.hostPlatform.isAarch64;
+        defaultText = literalExpression "pkgs.stdenv.hostPlatform.isAarch64";
+        internal = true;
+        description = ''
+          Whether the instance is using EFI.
+        '';
+      };
+    };
+  };
+
+  config = lib.mkIf config.openstack.zfs.enable {
+    networking.hostId = lib.mkDefault "00000000";
+
+    fileSystems =
+      let
+        mountable = lib.filterAttrs (_: value: ((value.mount or null) != null)) config.openstack.zfs.datasets;
+      in
+      lib.mapAttrs'
+        (dataset: opts: lib.nameValuePair opts.mount {
+          device = dataset;
+          fsType = "zfs";
+        })
+        mountable;
+  };
+}
diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix
index 20ce129c5a0ab..b1c5a7a6c95fd 100644
--- a/nixos/modules/virtualisation/qemu-vm.nix
+++ b/nixos/modules/virtualisation/qemu-vm.nix
@@ -853,8 +853,12 @@ in
       (mkIf (pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64) [
         "-device virtio-gpu-pci" "-device usb-ehci,id=usb0" "-device usb-kbd" "-device usb-tablet"
       ])
-      (mkIf (!cfg.useBootLoader) [
-        "-kernel \${NIXPKGS_QEMU_KERNEL_${config.system.name}:-${config.system.build.toplevel}/kernel}"
+      (let
+        alphaNumericChars = lowerChars ++ upperChars ++ (map toString (range 0 9));
+        # Replace all non-alphanumeric characters with underscores
+        sanitizeShellIdent = s: concatMapStrings (c: if builtins.elem c alphaNumericChars then c else "_") (stringToCharacters s);
+      in mkIf (!cfg.useBootLoader) [
+        "-kernel \${NIXPKGS_QEMU_KERNEL_${sanitizeShellIdent config.system.name}:-${config.system.build.toplevel}/kernel}"
         "-initrd ${config.system.build.toplevel}/initrd"
         ''-append "$(cat ${config.system.build.toplevel}/kernel-params) init=${config.system.build.toplevel}/init regInfo=${regInfo}/registration ${consoles} $QEMU_KERNEL_PARAMS"''
       ])
diff --git a/nixos/tests/all-terminfo.nix b/nixos/tests/all-terminfo.nix
new file mode 100644
index 0000000000000..dd47c66ee1c1e
--- /dev/null
+++ b/nixos/tests/all-terminfo.nix
@@ -0,0 +1,31 @@
+import ./make-test-python.nix ({ pkgs, ... }: rec {
+  name = "all-terminfo";
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ jkarlson ];
+  };
+
+  nodes.machine = { pkgs, config, lib, ... }:
+    let
+      infoFilter = name: drv:
+        let
+          o = builtins.tryEval drv;
+        in
+        o.success && lib.isDerivation o.value && o.value ? outputs && builtins.elem "terminfo" o.value.outputs;
+      terminfos = lib.filterAttrs infoFilter pkgs;
+      excludedTerminfos = lib.filterAttrs (_: drv: !(builtins.elem drv.terminfo config.environment.systemPackages)) terminfos;
+      includedOuts = lib.filterAttrs (_: drv: builtins.elem drv.out config.environment.systemPackages) terminfos;
+    in
+    {
+      environment = {
+        enableAllTerminfo = true;
+        etc."terminfo-missing".text = builtins.concatStringsSep "\n" (builtins.attrNames excludedTerminfos);
+        etc."terminfo-extra-outs".text = builtins.concatStringsSep "\n" (builtins.attrNames includedOuts);
+      };
+    };
+
+  testScript =
+    ''
+      machine.fail("grep . /etc/terminfo-missing >&2")
+      machine.fail("grep . /etc/terminfo-extra-outs >&2")
+    '';
+})
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index dcbdf34e9441c..ad426fcf4e0ae 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -35,6 +35,7 @@ in
   agate = handleTest ./web-servers/agate.nix {};
   agda = handleTest ./agda.nix {};
   airsonic = handleTest ./airsonic.nix {};
+  allTerminfo = handleTest ./all-terminfo.nix {};
   amazon-init-shell = handleTest ./amazon-init-shell.nix {};
   apfs = handleTest ./apfs.nix {};
   apparmor = handleTest ./apparmor.nix {};
@@ -142,6 +143,7 @@ in
   engelsystem = handleTest ./engelsystem.nix {};
   enlightenment = handleTest ./enlightenment.nix {};
   env = handleTest ./env.nix {};
+  envoy = handleTest ./envoy.nix {};
   ergo = handleTest ./ergo.nix {};
   ergochat = handleTest ./ergochat.nix {};
   etc = pkgs.callPackage ../modules/system/etc/test.nix { inherit evalMinimalConfig; };
@@ -194,8 +196,12 @@ in
   hadoop_3_2 = import ./hadoop { inherit handleTestOn; package=pkgs.hadoop_3_2; };
   hadoop2 = import ./hadoop { inherit handleTestOn; package=pkgs.hadoop2; };
   haka = handleTest ./haka.nix {};
+  haste-server = handleTest ./haste-server.nix {};
   haproxy = handleTest ./haproxy.nix {};
   hardened = handleTest ./hardened.nix {};
+  hbase1 = handleTest ./hbase.nix { package=pkgs.hbase1; };
+  hbase2 = handleTest ./hbase.nix { package=pkgs.hbase2; };
+  hbase3 = handleTest ./hbase.nix { package=pkgs.hbase3; };
   hedgedoc = handleTest ./hedgedoc.nix {};
   herbstluftwm = handleTest ./herbstluftwm.nix {};
   installed-tests = pkgs.recurseIntoAttrs (handleTest ./installed-tests {});
@@ -206,6 +212,7 @@ in
   # hibernation. This test happens to work on x86_64-linux but
   # not on other platforms.
   hibernate = handleTestOn ["x86_64-linux"] ./hibernate.nix {};
+  hibernate-systemd-stage-1 = handleTestOn ["x86_64-linux"] ./hibernate.nix { systemdStage1 = true; };
   hitch = handleTest ./hitch {};
   hledger-web = handleTest ./hledger-web.nix {};
   hocker-fetchdocker = handleTest ./hocker-fetchdocker {};
@@ -274,6 +281,7 @@ in
   login = handleTest ./login.nix {};
   logrotate = handleTest ./logrotate.nix {};
   loki = handleTest ./loki.nix {};
+  lvm2 = handleTest ./lvm2 {};
   lxd = handleTest ./lxd.nix {};
   lxd-image = handleTest ./lxd-image.nix {};
   lxd-nftables = handleTest ./lxd-nftables.nix {};
@@ -360,8 +368,9 @@ in
   nginx-sandbox = handleTestOn ["x86_64-linux"] ./nginx-sandbox.nix {};
   nginx-sso = handleTest ./nginx-sso.nix {};
   nginx-variants = handleTest ./nginx-variants.nix {};
+  nifi = handleTestOn ["x86_64-linux"] ./web-apps/nifi.nix {};
   nitter = handleTest ./nitter.nix {};
-  nix-ld = handleTest ./nix-ld {};
+  nix-ld = handleTest ./nix-ld.nix {};
   nix-serve = handleTest ./nix-serve.nix {};
   nix-serve-ssh = handleTest ./nix-serve-ssh.nix {};
   nixops = handleTest ./nixops/default.nix {};
@@ -396,9 +405,10 @@ in
   pam-file-contents = handleTest ./pam/pam-file-contents.nix {};
   pam-oath-login = handleTest ./pam/pam-oath-login.nix {};
   pam-u2f = handleTest ./pam/pam-u2f.nix {};
+  pam-ussh = handleTest ./pam/pam-ussh.nix {};
   pantalaimon = handleTest ./matrix/pantalaimon.nix {};
   pantheon = handleTest ./pantheon.nix {};
-  paperless-ng = handleTest ./paperless-ng.nix {};
+  paperless = handleTest ./paperless.nix {};
   parsedmarc = handleTest ./parsedmarc {};
   pdns-recursor = handleTest ./pdns-recursor.nix {};
   peerflix = handleTest ./peerflix.nix {};
@@ -514,7 +524,12 @@ in
   systemd-confinement = handleTest ./systemd-confinement.nix {};
   systemd-cryptenroll = handleTest ./systemd-cryptenroll.nix {};
   systemd-escaping = handleTest ./systemd-escaping.nix {};
+  systemd-initrd-btrfs-raid = handleTest ./systemd-initrd-btrfs-raid.nix {};
+  systemd-initrd-luks-keyfile = handleTest ./systemd-initrd-luks-keyfile.nix {};
+  systemd-initrd-luks-password = handleTest ./systemd-initrd-luks-password.nix {};
+  systemd-initrd-shutdown = handleTest ./systemd-shutdown.nix { systemdStage1 = true; };
   systemd-initrd-simple = handleTest ./systemd-initrd-simple.nix {};
+  systemd-initrd-swraid = handleTest ./systemd-initrd-swraid.nix {};
   systemd-journal = handleTest ./systemd-journal.nix {};
   systemd-machinectl = handleTest ./systemd-machinectl.nix {};
   systemd-networkd = handleTest ./systemd-networkd.nix {};
@@ -523,6 +538,7 @@ in
   systemd-networkd-ipv6-prefix-delegation = handleTest ./systemd-networkd-ipv6-prefix-delegation.nix {};
   systemd-networkd-vrf = handleTest ./systemd-networkd-vrf.nix {};
   systemd-nspawn = handleTest ./systemd-nspawn.nix {};
+  systemd-shutdown = handleTest ./systemd-shutdown.nix {};
   systemd-timesyncd = handleTest ./systemd-timesyncd.nix {};
   systemd-misc = handleTest ./systemd-misc.nix {};
   taskserver = handleTest ./taskserver.nix {};
@@ -583,6 +599,7 @@ in
   xautolock = handleTest ./xautolock.nix {};
   xfce = handleTest ./xfce.nix {};
   xmonad = handleTest ./xmonad.nix {};
+  xmonad-xdg-autostart = handleTest ./xmonad-xdg-autostart.nix {};
   xrdp = handleTest ./xrdp.nix {};
   xss-lock = handleTest ./xss-lock.nix {};
   xterm = handleTest ./xterm.nix {};
diff --git a/nixos/tests/atop.nix b/nixos/tests/atop.nix
index d9304834692c8..ec10369a24fd6 100644
--- a/nixos/tests/atop.nix
+++ b/nixos/tests/atop.nix
@@ -182,10 +182,6 @@ in
   atopgpu = makeTest {
     name = "atop-atopgpu";
     nodes.machine = {
-      nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (getName pkg) [
-        "cudatoolkit"
-      ];
-
       programs.atop = {
         enable = true;
         atopgpu.enable = true;
@@ -205,10 +201,6 @@ in
   everything = makeTest {
     name = "atop-everthing";
     nodes.machine = {
-      nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (getName pkg) [
-        "cudatoolkit"
-      ];
-
       programs.atop = {
         enable = true;
         settings = {
diff --git a/nixos/tests/bcachefs.nix b/nixos/tests/bcachefs.nix
index 832cc9c38f012..68ac49d0a6a6a 100644
--- a/nixos/tests/bcachefs.nix
+++ b/nixos/tests/bcachefs.nix
@@ -1,6 +1,6 @@
 import ./make-test-python.nix ({ pkgs, ... }: {
   name = "bcachefs";
-  meta.maintainers = with pkgs.lib.maintainers; [ chiiruno ];
+  meta.maintainers = with pkgs.lib.maintainers; [ Madouura ];
 
   nodes.machine = { pkgs, ... }: {
     virtualisation.emptyDiskImages = [ 4096 ];
diff --git a/nixos/tests/docker-tools-cross.nix b/nixos/tests/docker-tools-cross.nix
index a7a6a31475d67..8791ec2581279 100644
--- a/nixos/tests/docker-tools-cross.nix
+++ b/nixos/tests/docker-tools-cross.nix
@@ -7,7 +7,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
 let
 
   remoteSystem =
-    if pkgs.system == "aarch64-linux"
+    if pkgs.stdenv.hostPlatform.system == "aarch64-linux"
     then "x86_64-linux"
     else "aarch64-linux";
 
@@ -18,7 +18,7 @@ let
 
     # NOTE: Since this file can't control where the test will be _run_ we don't
     #       cross-compile _to_ a different system but _from_ a different system
-    crossSystem = pkgs.system;
+    crossSystem = pkgs.stdenv.hostPlatform.system;
   };
 
   hello1 = remoteCrossPkgs.dockerTools.buildImage {
diff --git a/nixos/tests/docker-tools.nix b/nixos/tests/docker-tools.nix
index 8a240ddb17f24..80859ac7a96ec 100644
--- a/nixos/tests/docker-tools.nix
+++ b/nixos/tests/docker-tools.nix
@@ -315,7 +315,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
                 "docker inspect ${pkgs.dockerTools.examples.cross.imageName} "
                 + "| ${pkgs.jq}/bin/jq -r .[].Architecture"
             ).strip()
-            == "${if pkgs.system == "aarch64-linux" then "amd64" else "arm64"}"
+            == "${if pkgs.stdenv.hostPlatform.system == "aarch64-linux" then "amd64" else "arm64"}"
         )
 
     with subtest("buildLayeredImage doesn't dereference /nix/store symlink layers"):
diff --git a/nixos/tests/emacs-daemon.nix b/nixos/tests/emacs-daemon.nix
index d53031a67f62c..310e93e19b0b4 100644
--- a/nixos/tests/emacs-daemon.nix
+++ b/nixos/tests/emacs-daemon.nix
@@ -33,7 +33,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
       )
 
       # connects to the daemon
-      machine.succeed("emacsclient --create-frame $EDITOR >&2 &")
+      machine.succeed("emacsclient --no-wait --frame-parameters='((display . \"'\"$DISPLAY\"'\"))' --create-frame $EDITOR >&2")
 
       # checks that Emacs shows the edited filename
       machine.wait_for_text("emacseditor")
diff --git a/nixos/tests/envoy.nix b/nixos/tests/envoy.nix
new file mode 100644
index 0000000000000..9d2c32ce102f2
--- /dev/null
+++ b/nixos/tests/envoy.nix
@@ -0,0 +1,33 @@
+import ./make-test-python.nix ({ pkgs, lib, ...} : {
+  name = "envoy";
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ cameronnemo ];
+  };
+
+  nodes.machine = { pkgs, ... }: {
+    services.envoy.enable = true;
+    services.envoy.settings = {
+      admin = {
+        access_log_path = "/dev/null";
+        address = {
+          socket_address = {
+            protocol = "TCP";
+            address = "127.0.0.1";
+            port_value = 9901;
+          };
+        };
+      };
+      static_resources = {
+        listeners = [];
+        clusters = [];
+      };
+    };
+  };
+
+  testScript = ''
+    machine.start()
+    machine.wait_for_unit("envoy.service")
+    machine.wait_for_open_port(9901)
+    machine.wait_until_succeeds("curl -fsS localhost:9901/ready")
+  '';
+})
diff --git a/nixos/tests/fenics.nix b/nixos/tests/fenics.nix
index f0a8c32c7cd8e..1d182cfc44998 100644
--- a/nixos/tests/fenics.nix
+++ b/nixos/tests/fenics.nix
@@ -44,6 +44,6 @@ in
     { nodes, ... }:
     ''
       start_all()
-      node1.succeed("${fenicsScript}")
+      fenicsnode.succeed("${fenicsScript}")
     '';
 })
diff --git a/nixos/tests/haste-server.nix b/nixos/tests/haste-server.nix
new file mode 100644
index 0000000000000..9097c992c5483
--- /dev/null
+++ b/nixos/tests/haste-server.nix
@@ -0,0 +1,23 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }:
+  {
+    name = "haste-server";
+    meta.maintainers = with lib.maintainers; [ mkg20001 ];
+
+    nodes.machine = { pkgs, ... }: {
+      environment.systemPackages = with pkgs; [
+        curl
+        jq
+      ];
+
+      services.haste-server = {
+        enable = true;
+      };
+    };
+
+    testScript = ''
+      machine.wait_for_unit("haste-server")
+      machine.wait_until_succeeds("curl -s localhost:7777")
+      machine.succeed('curl -s -X POST http://localhost:7777/documents -d "Hello World!" > bla')
+      machine.succeed('curl http://localhost:7777/raw/$(cat bla | jq -r .key) | grep "Hello World"')
+    '';
+  })
diff --git a/nixos/tests/hbase.nix b/nixos/tests/hbase.nix
new file mode 100644
index 0000000000000..a449d24dd6fd8
--- /dev/null
+++ b/nixos/tests/hbase.nix
@@ -0,0 +1,30 @@
+import ./make-test-python.nix ({ pkgs, lib, package ? pkgs.hbase, ... }:
+{
+  name = "hbase";
+
+  meta = with lib.maintainers; {
+    maintainers = [ illustris ];
+  };
+
+  nodes = {
+    hbase = { pkgs, ... }: {
+      services.hbase = {
+        enable = true;
+        inherit package;
+        # Needed for standalone mode in hbase 2+
+        # This setting and standalone mode are not suitable for production
+        settings."hbase.unsafe.stream.capability.enforce" = "false";
+      };
+      environment.systemPackages = with pkgs; [
+        package
+      ];
+    };
+  };
+
+  testScript = ''
+    start_all()
+    hbase.wait_for_unit("hbase.service")
+    hbase.wait_until_succeeds("echo \"create 't1','f1'\" | sudo -u hbase hbase shell -n")
+    assert "NAME => 'f1'" in hbase.succeed("echo \"describe 't1'\" | sudo -u hbase hbase shell -n")
+  '';
+})
diff --git a/nixos/tests/hibernate.nix b/nixos/tests/hibernate.nix
index 032ac6527bc71..7a4b331169a39 100644
--- a/nixos/tests/hibernate.nix
+++ b/nixos/tests/hibernate.nix
@@ -3,6 +3,7 @@
 { system ? builtins.currentSystem
 , config ? {}
 , pkgs ? import ../.. { inherit system config; }
+, systemdStage1 ? false
 }:
 
 with import ../lib/testing-python.nix { inherit system pkgs; };
@@ -29,6 +30,11 @@ let
       "/".device = "/dev/vda2";
     };
     swapDevices = mkOverride 0 [ { device = "/dev/vda1"; } ];
+    boot.resumeDevice = mkIf systemdStage1 "/dev/vda1";
+    boot.initrd.systemd = mkIf systemdStage1 {
+      enable = true;
+      emergencyAccess = true;
+    };
   };
   installedSystem = (import ../lib/eval-config.nix {
     inherit system;
diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix
index 2cfadf85c9358..ea2b2d04ed19d 100644
--- a/nixos/tests/installer.nix
+++ b/nixos/tests/installer.nix
@@ -299,6 +299,13 @@ let
           virtualisation.qemu.diskInterface =
             if grubVersion == 1 then "scsi" else "virtio";
 
+          # We don't want to have any networking in the guest whatsoever.
+          # Also, if any vlans are enabled, the guest will reboot
+          # (with a different configuration for legacy reasons),
+          # and spend 5 minutes waiting for the vlan interface to show up
+          # (which will never happen).
+          virtualisation.vlans = [];
+
           boot.loader.systemd-boot.enable = mkIf (bootLoader == "systemd-boot") true;
 
           hardware.enableAllFirmware = mkForce false;
@@ -312,6 +319,8 @@ let
             desktop-file-utils
             docbook5
             docbook_xsl_ns
+            kmod.dev
+            libarchive.dev
             libxml2.bin
             libxslt.bin
             nixos-artwork.wallpapers.simple-dark-gray-bottom
diff --git a/nixos/tests/kexec.nix b/nixos/tests/kexec.nix
index 55b71e0999f68..7238a9f58e09e 100644
--- a/nixos/tests/kexec.nix
+++ b/nixos/tests/kexec.nix
@@ -1,22 +1,50 @@
-# Test whether fast reboots via kexec work.
-
-import ./make-test-python.nix ({ pkgs, lib, ...} : {
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
   name = "kexec";
   meta = with lib.maintainers; {
-    maintainers = [ eelco ];
+    maintainers = [ flokli lassulus ];
+  };
+
+  nodes = {
+    node1 = { ... }: {
+      virtualisation.vlans = [ ];
+      virtualisation.memorySize = 4 * 1024;
+      virtualisation.useBootLoader = true;
+      virtualisation.useEFIBoot = true;
+      boot.loader.systemd-boot.enable = true;
+      boot.loader.efi.canTouchEfiVariables = true;
+    };
+
+    node2 = { modulesPath, ... }: {
+      virtualisation.vlans = [ ];
+      environment.systemPackages = [ pkgs.hello ];
+      imports = [
+        "${modulesPath}/installer/kexec/kexec-boot.nix"
+        "${modulesPath}/profiles/minimal.nix"
+      ];
+    };
   };
 
-  nodes.machine = { ... }:
-    { virtualisation.vlans = [ ]; };
+  testScript = { nodes, ... }: ''
+    # Test whether reboot via kexec works.
+    node1.wait_for_unit("multi-user.target")
+    node1.succeed('kexec --load /run/current-system/kernel --initrd /run/current-system/initrd --command-line "$(</proc/cmdline)"')
+    node1.execute("systemctl kexec >&2 &", check_return=False)
+    node1.connected = False
+    node1.connect()
+    node1.wait_for_unit("multi-user.target")
+
+    # Check if the machine with kexec-boot.nix profile boots up
+    node2.wait_for_unit("multi-user.target")
+    node2.shutdown()
+
+    # Kexec node1 to the toplevel of node2 via the kexec-boot script
+    node1.succeed('touch /run/foo')
+    node1.fail('hello')
+    node1.execute('${nodes.node2.config.system.build.kexecBoot}/kexec-boot', check_return=False)
+    node1.succeed('! test -e /run/foo')
+    node1.succeed('hello')
+    node1.succeed('[ "$(hostname)" = "node2" ]')
 
-  testScript =
-    ''
-      machine.wait_for_unit("multi-user.target")
-      machine.succeed('kexec --load /run/current-system/kernel --initrd /run/current-system/initrd --command-line "$(</proc/cmdline)"')
-      machine.execute("systemctl kexec >&2 &", check_return=False)
-      machine.connected = False
-      machine.connect()
-      machine.wait_for_unit("multi-user.target")
-      machine.shutdown()
-    '';
+    node1.shutdown()
+  '';
 })
diff --git a/nixos/tests/keycloak.nix b/nixos/tests/keycloak.nix
index fce8df2b7e3a4..6ce136330d438 100644
--- a/nixos/tests/keycloak.nix
+++ b/nixos/tests/keycloak.nix
@@ -4,7 +4,7 @@
 
 let
   certs = import ./common/acme/server/snakeoil-certs.nix;
-  frontendUrl = "https://${certs.domain}/auth";
+  frontendUrl = "https://${certs.domain}";
   initialAdminPassword = "h4IhoJFnt2iQIR9";
 
   keycloakTest = import ./make-test-python.nix (
@@ -27,20 +27,23 @@ let
 
           services.keycloak = {
             enable = true;
-            inherit frontendUrl initialAdminPassword;
-            sslCertificate = certs.${certs.domain}.cert;
-            sslCertificateKey = certs.${certs.domain}.key;
+            settings = {
+              hostname = certs.domain;
+            };
+            inherit initialAdminPassword;
+            sslCertificate = "${certs.${certs.domain}.cert}";
+            sslCertificateKey = "${certs.${certs.domain}.key}";
             database = {
               type = databaseType;
               username = "bogus";
-              passwordFile = pkgs.writeText "dbPassword" "wzf6vOCbPp6cqTH";
+              name = "also bogus";
+              passwordFile = "${pkgs.writeText "dbPassword" "wzf6vOCbPp6cqTH"}";
             };
             plugins = with config.services.keycloak.package.plugins; [
               keycloak-discord
               keycloak-metrics-spi
             ];
           };
-
           environment.systemPackages = with pkgs; [
             xmlstarlet
             html-tidy
@@ -99,9 +102,9 @@ let
         in ''
           keycloak.start()
           keycloak.wait_for_unit("keycloak.service")
+          keycloak.wait_for_open_port(443)
           keycloak.wait_until_succeeds("curl -sSf ${frontendUrl}")
 
-
           ### Realm Setup ###
 
           # Get an admin interface access token
@@ -117,8 +120,8 @@ let
           # Register the metrics SPI
           keycloak.succeed(
               "${pkgs.jre}/bin/keytool -import -alias snakeoil -file ${certs.ca.cert} -storepass aaaaaa -keystore cacert.jks -noprompt",
-              "KC_OPTS='-Djavax.net.ssl.trustStore=cacert.jks -Djavax.net.ssl.trustStorePassword=aaaaaa' ${pkgs.keycloak}/bin/kcadm.sh config credentials --server '${frontendUrl}' --realm master --user admin --password '${initialAdminPassword}'",
-              "KC_OPTS='-Djavax.net.ssl.trustStore=cacert.jks -Djavax.net.ssl.trustStorePassword=aaaaaa' ${pkgs.keycloak}/bin/kcadm.sh update events/config -s 'eventsEnabled=true' -s 'adminEventsEnabled=true' -s 'eventsListeners+=metrics-listener'",
+              "KC_OPTS='-Djavax.net.ssl.trustStore=cacert.jks -Djavax.net.ssl.trustStorePassword=aaaaaa' kcadm.sh config credentials --server '${frontendUrl}' --realm master --user admin --password '${initialAdminPassword}'",
+              "KC_OPTS='-Djavax.net.ssl.trustStore=cacert.jks -Djavax.net.ssl.trustStorePassword=aaaaaa' kcadm.sh update events/config -s 'eventsEnabled=true' -s 'adminEventsEnabled=true' -s 'eventsListeners+=metrics-listener'",
               "curl -sSf '${frontendUrl}/realms/master/metrics' | grep '^keycloak_admin_event_UPDATE'"
           )
 
@@ -143,7 +146,7 @@ let
           # post url.
           keycloak.succeed(
               "curl -sSf -c cookie '${frontendUrl}/realms/${realm.realm}/protocol/openid-connect/auth?client_id=${client.name}&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=openid+email&response_type=code&response_mode=query&nonce=qw4o89g3qqm' >login_form",
-              "tidy -q -m login_form || true",
+              "tidy -asxml -q -m login_form || true",
               "xml sel -T -t -m \"_:html/_:body/_:div/_:div/_:div/_:div/_:div/_:div/_:form[@id='kc-form-login']\" -v @action login_form >form_post_url",
           )
 
@@ -151,7 +154,7 @@ let
           # the HTML, then extract the authorization code.
           keycloak.succeed(
               "curl -sSf -L -b cookie -d 'username=${user.username}' -d 'password=${password}' -d 'credentialId=' \"$(<form_post_url)\" >auth_code_html",
-              "tidy -q -m auth_code_html || true",
+              "tidy -asxml -q -m auth_code_html || true",
               "xml sel -T -t -m \"_:html/_:body/_:div/_:div/_:div/_:div/_:div/_:input[@id='code']\" -v @value auth_code_html >auth_code",
           )
 
@@ -172,5 +175,6 @@ let
 in
 {
   postgres = keycloakTest { databaseType = "postgresql"; };
+  mariadb = keycloakTest { databaseType = "mariadb"; };
   mysql = keycloakTest { databaseType = "mysql"; };
 }
diff --git a/nixos/tests/lvm2/default.nix b/nixos/tests/lvm2/default.nix
new file mode 100644
index 0000000000000..1eb9f572a4d6d
--- /dev/null
+++ b/nixos/tests/lvm2/default.nix
@@ -0,0 +1,45 @@
+{ system ? builtins.currentSystem
+, config ? { }
+, pkgs ? import ../../.. { inherit system config; }
+, lib ? pkgs.lib
+, kernelVersionsToTest ? [ "4.19" "5.4" "5.10" "5.15" "latest" ]
+}:
+
+# For quickly running a test, the nixosTests.lvm2.lvm-thinpool-linux-latest attribute is recommended
+let
+  tests = let callTest = p: lib.flip (import p) { inherit system pkgs; }; in {
+    thinpool = { test = callTest ./thinpool.nix; kernelFilter = lib.id; };
+    # we would like to test all versions, but the kernel module currently does not compile against the other versions
+    vdo = { test = callTest ./vdo.nix; kernelFilter = lib.filter (v: v == "5.15"); };
+
+
+    # systemd in stage 1
+    raid-sd-stage-1 = {
+      test = callTest ./systemd-stage-1.nix;
+      kernelFilter = lib.id;
+      flavour = "raid";
+    };
+    thinpool-sd-stage-1 = {
+      test = callTest ./systemd-stage-1.nix;
+      kernelFilter = lib.id;
+      flavour = "thinpool";
+    };
+    vdo-sd-stage-1 = {
+      test = callTest ./systemd-stage-1.nix;
+      kernelFilter = lib.filter (v: v == "5.15");
+      flavour = "vdo";
+    };
+  };
+in
+lib.listToAttrs (
+  lib.filter (x: x.value != {}) (
+    lib.flip lib.concatMap kernelVersionsToTest (version:
+      let
+        v' = lib.replaceStrings [ "." ] [ "_" ] version;
+      in
+      lib.flip lib.mapAttrsToList tests (name: t:
+        lib.nameValuePair "lvm-${name}-linux-${v'}" (lib.optionalAttrs (builtins.elem version (t.kernelFilter kernelVersionsToTest)) (t.test ({ kernelPackages = pkgs."linuxPackages_${v'}"; } // builtins.removeAttrs t [ "test" "kernelFilter" ])))
+      )
+    )
+  )
+)
diff --git a/nixos/tests/lvm2/systemd-stage-1.nix b/nixos/tests/lvm2/systemd-stage-1.nix
new file mode 100644
index 0000000000000..617ba77b1796c
--- /dev/null
+++ b/nixos/tests/lvm2/systemd-stage-1.nix
@@ -0,0 +1,104 @@
+{ kernelPackages ? null, flavour }: let
+  preparationCode = {
+    raid = ''
+      machine.succeed("vgcreate test_vg /dev/vdc /dev/vdd")
+      machine.succeed("lvcreate -L 512M --type raid0 test_vg -n test_lv")
+    '';
+
+    thinpool = ''
+      machine.succeed("vgcreate test_vg /dev/vdc")
+      machine.succeed("lvcreate -L 512M -T test_vg/test_thin_pool")
+      machine.succeed("lvcreate -n test_lv -V 16G --thinpool test_thin_pool test_vg")
+    '';
+
+    vdo = ''
+      machine.succeed("vgcreate test_vg /dev/vdc")
+      machine.succeed("lvcreate --type vdo -n test_lv -L 6G -V 12G test_vg/vdo_pool_lv")
+    '';
+  }.${flavour};
+
+  extraConfig = {
+    raid = {
+      boot.initrd.kernelModules = [
+        "dm-raid"
+        "raid0"
+      ];
+    };
+
+    thinpool = {
+      services.lvm = {
+        boot.thin.enable = true;
+        dmeventd.enable = true;
+      };
+    };
+
+    vdo = {
+      services.lvm = {
+        boot.vdo.enable = true;
+        dmeventd.enable = true;
+      };
+    };
+  }.${flavour};
+
+  extraCheck = {
+    raid = ''
+      "test_lv" in machine.succeed("lvs --select segtype=raid0")
+    '';
+
+    thinpool = ''
+      "test_lv" in machine.succeed("lvs --select segtype=thin-pool")
+    '';
+
+    vdo = ''
+      "test_lv" in machine.succeed("lvs --select segtype=vdo")
+    '';
+  }.${flavour};
+
+in import ../make-test-python.nix ({ pkgs, ... }: {
+  name = "lvm2-${flavour}-systemd-stage-1";
+  meta.maintainers = with pkgs.lib.maintainers; [ das_j ];
+
+  nodes.machine = { pkgs, lib, ... }: {
+    imports = [ extraConfig ];
+    # Use systemd-boot
+    virtualisation = {
+      emptyDiskImages = [ 8192 8192 ];
+      useBootLoader = true;
+      useEFIBoot = true;
+    };
+    boot.loader.systemd-boot.enable = true;
+    boot.loader.efi.canTouchEfiVariables = true;
+
+    environment.systemPackages = with pkgs; [ e2fsprogs ]; # for mkfs.ext4
+    boot = {
+      initrd.systemd = {
+        enable = true;
+        emergencyAccess = true;
+      };
+      initrd.services.lvm.enable = true;
+      kernelPackages = lib.mkIf (kernelPackages != null) kernelPackages;
+    };
+
+    specialisation.boot-lvm.configuration.virtualisation.bootDevice = "/dev/test_vg/test_lv";
+  };
+
+  testScript = ''
+    machine.wait_for_unit("multi-user.target")
+    # Create a VG for the root
+    ${preparationCode}
+    machine.succeed("mkfs.ext4 /dev/test_vg/test_lv")
+    machine.succeed("mkdir -p /mnt && mount /dev/test_vg/test_lv /mnt && echo hello > /mnt/test && umount /mnt")
+
+    # Boot from LVM
+    machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-lvm.conf")
+    machine.succeed("sync")
+    machine.crash()
+    machine.wait_for_unit("multi-user.target")
+
+    # Ensure we have successfully booted from LVM
+    assert "(initrd)" in machine.succeed("systemd-analyze")  # booted with systemd in stage 1
+    assert "/dev/mapper/test_vg-test_lv on / type ext4" in machine.succeed("mount")
+    assert "hello" in machine.succeed("cat /test")
+    ${extraCheck}
+  '';
+})
diff --git a/nixos/tests/lvm2/thinpool.nix b/nixos/tests/lvm2/thinpool.nix
new file mode 100644
index 0000000000000..82c6460a890a0
--- /dev/null
+++ b/nixos/tests/lvm2/thinpool.nix
@@ -0,0 +1,32 @@
+{ kernelPackages ? null }:
+import ../make-test-python.nix ({ pkgs, ... }: {
+  name = "lvm2-thinpool";
+  meta.maintainers = with pkgs.lib.maintainers; [ ajs124 ];
+
+  nodes.machine = { pkgs, lib, ... }: {
+    virtualisation.emptyDiskImages = [ 4096 ];
+    services.lvm = {
+      boot.thin.enable = true;
+      dmeventd.enable = true;
+    };
+    environment.systemPackages = with pkgs; [ xfsprogs ];
+    environment.etc."lvm/lvm.conf".text = ''
+      activation/thin_pool_autoextend_percent = 10
+      activation/thin_pool_autoextend_threshold = 80
+    '';
+    boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
+  };
+
+  testScript = ''
+    machine.succeed("vgcreate test_vg /dev/vdb")
+    machine.succeed("lvcreate -L 512M -T test_vg/test_thin_pool")
+    machine.succeed("lvcreate -n test_lv -V 16G --thinpool test_thin_pool test_vg")
+    machine.succeed("mkfs.xfs /dev/test_vg/test_lv")
+    machine.succeed("mkdir /mnt; mount /dev/test_vg/test_lv /mnt")
+    assert "/dev/mapper/test_vg-test_lv" == machine.succeed("findmnt -no SOURCE /mnt").strip()
+    machine.succeed("dd if=/dev/zero of=/mnt/empty.file bs=1M count=1024")
+    machine.succeed("journalctl -u dm-event.service | grep \"successfully resized\"")
+    machine.succeed("umount /mnt")
+    machine.succeed("vgchange -a n")
+  '';
+})
diff --git a/nixos/tests/lvm2/vdo.nix b/nixos/tests/lvm2/vdo.nix
new file mode 100644
index 0000000000000..5b014c2f72223
--- /dev/null
+++ b/nixos/tests/lvm2/vdo.nix
@@ -0,0 +1,27 @@
+{ kernelPackages ? null }:
+import ../make-test-python.nix ({ pkgs, ... }: {
+  name = "lvm2-vdo";
+  meta.maintainers = with pkgs.lib.maintainers; [ ajs124 ];
+
+  nodes.machine = { pkgs, lib, ... }: {
+    # Minimum required size for VDO volume: 5063921664 bytes
+    virtualisation.emptyDiskImages = [ 8192 ];
+    services.lvm = {
+      boot.vdo.enable = true;
+      dmeventd.enable = true;
+    };
+    environment.systemPackages = with pkgs; [ xfsprogs ];
+    boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
+  };
+
+  testScript = ''
+    machine.succeed("vgcreate test_vg /dev/vdb")
+    machine.succeed("lvcreate --type vdo -n vdo_lv -L 6G -V 12G test_vg/vdo_pool_lv")
+    machine.succeed("mkfs.xfs -K /dev/test_vg/vdo_lv")
+    machine.succeed("mkdir /mnt; mount /dev/test_vg/vdo_lv /mnt")
+    assert "/dev/mapper/test_vg-vdo_lv" == machine.succeed("findmnt -no SOURCE /mnt").strip()
+    machine.succeed("umount /mnt")
+    machine.succeed("vdostats")
+    machine.succeed("vgchange -a n")
+  '';
+})
diff --git a/nixos/tests/mailcatcher.nix b/nixos/tests/mailcatcher.nix
index d7858ab354bd3..f23b749a021e5 100644
--- a/nixos/tests/mailcatcher.nix
+++ b/nixos/tests/mailcatcher.nix
@@ -9,8 +9,13 @@ import ./make-test-python.nix ({ lib, ... }:
     {
       services.mailcatcher.enable = true;
 
-      services.ssmtp.enable = true;
-      services.ssmtp.hostName = "localhost:1025";
+      programs.msmtp = {
+        enable = true;
+        accounts.default = {
+          host = "localhost";
+          port = 1025;
+        };
+      };
 
       environment.systemPackages = [ pkgs.mailutils ];
     };
diff --git a/nixos/tests/mongodb.nix b/nixos/tests/mongodb.nix
index 9c6fdfb1ca76e..edd074f5163c2 100644
--- a/nixos/tests/mongodb.nix
+++ b/nixos/tests/mongodb.nix
@@ -37,6 +37,8 @@ import ./make-test-python.nix ({ pkgs, ... }:
           mongodb-3_6
           mongodb-4_0
           mongodb-4_2
+          mongodb-4_4
+          mongodb-5_0
         ];
       };
     };
@@ -48,6 +50,8 @@ import ./make-test-python.nix ({ pkgs, ... }:
       + runMongoDBTest pkgs.mongodb-3_6
       + runMongoDBTest pkgs.mongodb-4_0
       + runMongoDBTest pkgs.mongodb-4_2
+      + runMongoDBTest pkgs.mongodb-4_4
+      + runMongoDBTest pkgs.mongodb-5_0
       + ''
         node.shutdown()
       '';
diff --git a/nixos/tests/nar-serve.nix b/nixos/tests/nar-serve.nix
index 9ee738ffb170e..bb95ccb36911d 100644
--- a/nixos/tests/nar-serve.nix
+++ b/nixos/tests/nar-serve.nix
@@ -31,7 +31,7 @@ import ./make-test-python.nix (
 
       # Create a fake cache with Nginx service the static files
       server.succeed(
-          "nix copy --to file:///var/www ${pkgs.hello}"
+          "nix --experimental-features nix-command copy --to file:///var/www ${pkgs.hello}"
       )
       server.wait_for_unit("nginx.service")
       server.wait_for_open_port(80)
diff --git a/nixos/tests/nbd.nix b/nixos/tests/nbd.nix
index 16255e68e8a1f..b4aaf29ee4e50 100644
--- a/nixos/tests/nbd.nix
+++ b/nixos/tests/nbd.nix
@@ -28,6 +28,11 @@ import ./make-test-python.nix ({ pkgs, ... }:
         ## It's also a loopback device to test exporting /dev/...
         systemd.services.create-priv-file =
           mkCreateSmallFileService { path = "/vault-priv.disk"; loop = true; };
+        ## `aaa.disk` is just here because "[aaa]" sorts before
+        ## "[generic]" lexicographically, and nbd-server breaks if
+        ## "[generic]" isn't the first section.
+        systemd.services.create-aaa-file =
+          mkCreateSmallFileService { path = "/aaa.disk"; };
 
         # Needed only for nbd-client used in the tests.
         environment.systemPackages = [ pkgs.nbd ];
@@ -39,6 +44,9 @@ import ./make-test-python.nix ({ pkgs, ... }:
         services.nbd.server = {
           enable = true;
           exports = {
+            aaa = {
+              path = "/aaa.disk";
+            };
             vault-pub = {
               path = "/vault-pub.disk";
             };
@@ -83,5 +91,13 @@ import ./make-test-python.nix ({ pkgs, ... }:
       if foundString != testString:
          raise Exception(f"Read the wrong string from nbd disk. Expected: '{testString}'. Found: '{foundString}'")
       server.succeed("nbd-client -d /dev/nbd0")
+
+      # Server: Successfully connect to the aaa disk
+      server.succeed("nbd-client localhost ${toString listenPort} /dev/nbd0 -name aaa -persist")
+      server.succeed(f"echo '{testString}' | dd of=/dev/nbd0 conv=notrunc")
+      foundString = server.succeed(f"dd status=none if=/aaa.disk count={len(testString)}")[:len(testString)]
+      if foundString != testString:
+         raise Exception(f"Read the wrong string from nbd disk. Expected: '{testString}'. Found: '{foundString}'")
+      server.succeed("nbd-client -d /dev/nbd0")
     '';
   })
diff --git a/nixos/tests/ncdns.nix b/nixos/tests/ncdns.nix
index 50193676f34f3..5099d697e0356 100644
--- a/nixos/tests/ncdns.nix
+++ b/nixos/tests/ncdns.nix
@@ -29,10 +29,10 @@ in
   };
 
   nodes.server = { ... }: {
-    networking.nameservers = [ "127.0.0.1" ];
+    networking.nameservers = [ "::1" ];
 
     services.namecoind.rpc = {
-      address = "127.0.0.1";
+      address = "::1";
       user = "namecoin";
       password = "secret";
       port = 8332;
@@ -45,7 +45,7 @@ in
       script = ''
         while true; do
           echo -e "HTTP/1.1 200 OK\n\n $(<${fakeReply})\n" \
-            | ${pkgs.netcat}/bin/nc -N -l 127.0.0.1 8332
+            | ${pkgs.netcat}/bin/nc -N -l ::1 8332
         done
       '';
     };
@@ -58,14 +58,10 @@ in
       identity.address    = "1.0.0.1";
     };
 
-    services.pdns-recursor = {
-      enable = true;
-      dns.allowFrom = [ "127.0.0.0/8" ];
-      resolveNamecoin = true;
-    };
+    services.pdns-recursor.enable = true;
+    services.pdns-recursor.resolveNamecoin = true;
 
     environment.systemPackages = [ pkgs.dnsutils ];
-
   };
 
   testScript =
@@ -91,6 +87,7 @@ in
           assert "example.com" in server.succeed("dig SOA @localhost -p 5333 bit")
 
       with subtest("bit. zone forwarding works"):
+          server.wait_for_unit("pdns-recursor")
           assert "1.2.3.4" in server.succeed("host test.bit")
     '';
 })
diff --git a/nixos/tests/networking.nix b/nixos/tests/networking.nix
index bd517093eb3d0..a1150097a0917 100644
--- a/nixos/tests/networking.nix
+++ b/nixos/tests/networking.nix
@@ -878,7 +878,7 @@ let
                 linkConfig.Name = "custom_name";
               };
             }
-       else { services.udev.initrdRules = ''
+       else { boot.initrd.services.udev.rules = ''
                SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:12:01:01", KERNEL=="eth*", NAME="custom_name"
               '';
             });
diff --git a/nixos/tests/nextcloud/with-mysql-and-memcached.nix b/nixos/tests/nextcloud/with-mysql-and-memcached.nix
index 891001e30b231..63e0e2c59639e 100644
--- a/nixos/tests/nextcloud/with-mysql-and-memcached.nix
+++ b/nixos/tests/nextcloud/with-mysql-and-memcached.nix
@@ -26,6 +26,7 @@ in {
           redis = false;
           memcached = true;
         };
+        database.createLocally = true;
         config = {
           dbtype = "mysql";
           dbname = "nextcloud";
@@ -38,28 +39,6 @@ in {
         };
       };
 
-      services.mysql = {
-        enable = true;
-        settings.mysqld = {
-          bind-address = "127.0.0.1";
-
-          # FIXME(@Ma27) Nextcloud isn't compatible with mariadb 10.6,
-          # this is a workaround.
-          # See https://help.nextcloud.com/t/update-to-next-cloud-21-0-2-has-get-an-error/117028/22
-          innodb_read_only_compressed = 0;
-        };
-        package = pkgs.mariadb;
-
-        initialScript = pkgs.writeText "mysql-init" ''
-          CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'hunter2';
-          CREATE DATABASE IF NOT EXISTS nextcloud;
-          GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER,
-            CREATE TEMPORARY TABLES ON nextcloud.* TO 'nextcloud'@'localhost'
-            IDENTIFIED BY 'hunter2';
-          FLUSH privileges;
-        '';
-      };
-
       systemd.services.nextcloud-setup= {
         requires = ["mysql.service"];
         after = ["mysql.service"];
diff --git a/nixos/tests/nixops/default.nix b/nixos/tests/nixops/default.nix
index f0834c51f0b4f..227b388150737 100644
--- a/nixos/tests/nixops/default.nix
+++ b/nixos/tests/nixops/default.nix
@@ -97,7 +97,7 @@ let
     derivations and all build dependency outputs, all the way down.
   */
   allDrvOutputs = pkg:
-    let name = lib.strings.sanitizeDerivationName "allDrvOutputs-${pkg.pname or pkg.name or "unknown"}";
+    let name = "allDrvOutputs-${pkg.pname or pkg.name or "unknown"}";
     in
     pkgs.runCommand name { refs = pkgs.writeReferencesToFile pkg.drvPath; } ''
       touch $out
diff --git a/nixos/tests/pam/pam-ussh.nix b/nixos/tests/pam/pam-ussh.nix
new file mode 100644
index 0000000000000..ba0570dbf97d2
--- /dev/null
+++ b/nixos/tests/pam/pam-ussh.nix
@@ -0,0 +1,70 @@
+import ../make-test-python.nix ({ pkgs, lib, ... }:
+
+let
+  testOnlySSHCredentials = pkgs.runCommand "pam-ussh-test-ca" {
+    nativeBuildInputs = [ pkgs.openssh ];
+  } ''
+    mkdir $out
+    ssh-keygen -t ed25519 -N "" -f $out/ca
+
+    ssh-keygen -t ed25519 -N "" -f $out/alice
+    ssh-keygen -s $out/ca -I "alice user key" -n "alice,root" -V 19700101:forever $out/alice.pub
+
+    ssh-keygen -t ed25519 -N "" -f $out/bob
+    ssh-keygen -s $out/ca -I "bob user key" -n "bob" -V 19700101:forever $out/bob.pub
+  '';
+  makeTestScript = user: pkgs.writeShellScript "pam-ussh-${user}-test-script" ''
+    set -euo pipefail
+
+    eval $(${pkgs.openssh}/bin/ssh-agent)
+
+    mkdir -p $HOME/.ssh
+    chmod 700 $HOME/.ssh
+    cp ${testOnlySSHCredentials}/${user}{,.pub,-cert.pub} $HOME/.ssh
+    chmod 600 $HOME/.ssh/${user}
+    chmod 644 $HOME/.ssh/${user}{,-cert}.pub
+
+    set -x
+
+    ${pkgs.openssh}/bin/ssh-add $HOME/.ssh/${user}
+    ${pkgs.openssh}/bin/ssh-add -l &>2
+
+    exec sudo id -u -n
+  '';
+in {
+  name = "pam-ussh";
+  meta.maintainers = with lib.maintainers; [ lukegb ];
+
+  machine =
+    { ... }:
+    {
+      users.users.alice = { isNormalUser = true; extraGroups = [ "wheel" ]; };
+      users.users.bob = { isNormalUser = true; extraGroups = [ "wheel" ]; };
+
+      security.pam.ussh = {
+        enable = true;
+        authorizedPrincipals = "root";
+        caFile = "${testOnlySSHCredentials}/ca.pub";
+      };
+
+      security.sudo = {
+        enable = true;
+        extraConfig = ''
+          Defaults lecture="never"
+        '';
+      };
+    };
+
+  testScript =
+    ''
+      with subtest("alice should be allowed to escalate to root"):
+        machine.succeed(
+            'su -c "${makeTestScript "alice"}" -l alice | grep root'
+        )
+
+      with subtest("bob should not be allowed to escalate to root"):
+        machine.fail(
+            'su -c "${makeTestScript "bob"}" -l bob | grep root'
+        )
+    '';
+})
diff --git a/nixos/tests/paperless-ng.nix b/nixos/tests/paperless.nix
index 618eeec6b1259..51fe7c2078514 100644
--- a/nixos/tests/paperless-ng.nix
+++ b/nixos/tests/paperless.nix
@@ -1,30 +1,32 @@
 import ./make-test-python.nix ({ lib, ... }: {
-  name = "paperless-ng";
+  name = "paperless";
   meta.maintainers = with lib.maintainers; [ earvstedt Flakebi ];
 
   nodes.machine = { pkgs, ... }: {
     environment.systemPackages = with pkgs; [ imagemagick jq ];
-    services.paperless-ng = {
+    services.paperless = {
       enable = true;
       passwordFile = builtins.toFile "password" "admin";
     };
   };
 
   testScript = ''
-    machine.wait_for_unit("paperless-ng-consumer.service")
+    import json
 
-    with subtest("Create test doc"):
+    machine.wait_for_unit("paperless-consumer.service")
+
+    with subtest("Add a document via the file system"):
         machine.succeed(
             "convert -size 400x40 xc:white -font 'DejaVu-Sans' -pointsize 20 -fill black "
             "-annotate +5+20 'hello world 16-10-2005' /var/lib/paperless/consume/doc.png"
         )
 
     with subtest("Web interface gets ready"):
-        machine.wait_for_unit("paperless-ng-web.service")
+        machine.wait_for_unit("paperless-web.service")
         # Wait until server accepts connections
         machine.wait_until_succeeds("curl -fs localhost:28981")
 
-    with subtest("Create web test doc"):
+    with subtest("Add a document via the web interface"):
         machine.succeed(
             "convert -size 400x40 xc:white -font 'DejaVu-Sans' -pointsize 20 -fill black "
             "-annotate +5+20 'hello web 16-10-2005' /tmp/webdoc.png"
@@ -35,11 +37,8 @@ import ./make-test-python.nix ({ lib, ... }: {
         machine.wait_until_succeeds(
             "(($(curl -u admin:admin -fs localhost:28981/api/documents/ | jq .count) == 2))"
         )
-        assert "2005-10-16" in machine.succeed(
-            "curl -u admin:admin -fs localhost:28981/api/documents/ | jq '.results | .[0] | .created'"
-        )
-        assert "2005-10-16" in machine.succeed(
-            "curl -u admin:admin -fs localhost:28981/api/documents/ | jq '.results | .[1] | .created'"
-        )
+        docs = json.loads(machine.succeed("curl -u admin:admin -fs localhost:28981/api/documents/"))['results']
+        assert "2005-10-16" in docs[0]['created']
+        assert "2005-10-16" in docs[1]['created']
   '';
 })
diff --git a/nixos/tests/pdns-recursor.nix b/nixos/tests/pdns-recursor.nix
index de1b60e0b1c78..cf473a064313d 100644
--- a/nixos/tests/pdns-recursor.nix
+++ b/nixos/tests/pdns-recursor.nix
@@ -1,12 +1,15 @@
 import ./make-test-python.nix ({ pkgs, ... }: {
-  name = "powerdns";
+  name = "powerdns-recursor";
 
   nodes.server = { ... }: {
     services.pdns-recursor.enable = true;
+    services.pdns-recursor.exportHosts= true;
+    networking.hosts."192.0.2.1" = [ "example.com" ];
   };
 
   testScript = ''
     server.wait_for_unit("pdns-recursor")
     server.wait_for_open_port("53")
+    assert "192.0.2.1" in server.succeed("host example.com localhost")
   '';
 })
diff --git a/nixos/tests/snapcast.nix b/nixos/tests/snapcast.nix
index 30b8343e2ffee..9b62e4724e757 100644
--- a/nixos/tests/snapcast.nix
+++ b/nixos/tests/snapcast.nix
@@ -19,6 +19,7 @@ in {
         port = port;
         tcp.port = tcpPort;
         http.port = httpPort;
+        openFirewall = true;
         buffer = bufferSize;
         streams = {
           mpd = {
diff --git a/nixos/tests/step-ca.nix b/nixos/tests/step-ca.nix
index f21bd5366266a..a855b590232dd 100644
--- a/nixos/tests/step-ca.nix
+++ b/nixos/tests/step-ca.nix
@@ -9,6 +9,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
     '';
   in
   {
+    name = "step-ca";
     nodes =
       {
         caserver =
diff --git a/nixos/tests/systemd-initrd-btrfs-raid.nix b/nixos/tests/systemd-initrd-btrfs-raid.nix
new file mode 100644
index 0000000000000..40fd2d4dc611c
--- /dev/null
+++ b/nixos/tests/systemd-initrd-btrfs-raid.nix
@@ -0,0 +1,45 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }: {
+  name = "systemd-initrd-btrfs-raid";
+
+  nodes.machine = { pkgs, ... }: {
+    # Use systemd-boot
+    virtualisation = {
+      emptyDiskImages = [ 512 512 ];
+      useBootLoader = true;
+      useEFIBoot = true;
+    };
+    boot.loader.systemd-boot.enable = true;
+    boot.loader.efi.canTouchEfiVariables = true;
+
+    environment.systemPackages = with pkgs; [ btrfs-progs ];
+    boot.initrd.systemd = {
+      enable = true;
+      emergencyAccess = true;
+    };
+
+    specialisation.boot-btrfs-raid.configuration = {
+      fileSystems = lib.mkVMOverride {
+        "/".fsType = lib.mkForce "btrfs";
+      };
+      virtualisation.bootDevice = "/dev/vdc";
+    };
+  };
+
+  testScript = ''
+    # Create RAID
+    machine.succeed("mkfs.btrfs -d raid0 /dev/vdc /dev/vdd")
+    machine.succeed("mkdir -p /mnt && mount /dev/vdc /mnt && echo hello > /mnt/test && umount /mnt")
+
+    # Boot from the RAID
+    machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-btrfs-raid.conf")
+    machine.succeed("sync")
+    machine.crash()
+    machine.wait_for_unit("multi-user.target")
+
+    # Ensure we have successfully booted from the RAID
+    assert "(initrd)" in machine.succeed("systemd-analyze")  # booted with systemd in stage 1
+    assert "/dev/vdc on / type btrfs" in machine.succeed("mount")
+    assert "hello" in machine.succeed("cat /test")
+    assert "Total devices 2" in machine.succeed("btrfs filesystem show")
+  '';
+})
diff --git a/nixos/tests/systemd-initrd-luks-keyfile.nix b/nixos/tests/systemd-initrd-luks-keyfile.nix
new file mode 100644
index 0000000000000..970163c36a4fc
--- /dev/null
+++ b/nixos/tests/systemd-initrd-luks-keyfile.nix
@@ -0,0 +1,53 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }: let
+
+  keyfile = pkgs.writeText "luks-keyfile" ''
+    MIGHAoGBAJ4rGTSo/ldyjQypd0kuS7k2OSsmQYzMH6TNj3nQ/vIUjDn7fqa3slt2
+    gV6EK3TmTbGc4tzC1v4SWx2m+2Bjdtn4Fs4wiBwn1lbRdC6i5ZYCqasTWIntWn+6
+    FllUkMD5oqjOR/YcboxG8Z3B5sJuvTP9llsF+gnuveWih9dpbBr7AgEC
+  '';
+
+in {
+  name = "systemd-initrd-luks-keyfile";
+
+  nodes.machine = { pkgs, ... }: {
+    # Use systemd-boot
+    virtualisation = {
+      emptyDiskImages = [ 512 ];
+      useBootLoader = true;
+      useEFIBoot = true;
+    };
+    boot.loader.systemd-boot.enable = true;
+
+    environment.systemPackages = with pkgs; [ cryptsetup ];
+    boot.initrd.systemd = {
+      enable = true;
+      emergencyAccess = true;
+    };
+
+    specialisation.boot-luks.configuration = {
+      boot.initrd.luks.devices = lib.mkVMOverride {
+        cryptroot = {
+          device = "/dev/vdc";
+          keyFile = "/etc/cryptroot.key";
+        };
+      };
+      virtualisation.bootDevice = "/dev/mapper/cryptroot";
+      boot.initrd.systemd.contents."/etc/cryptroot.key".source = keyfile;
+    };
+  };
+
+  testScript = ''
+    # Create encrypted volume
+    machine.wait_for_unit("multi-user.target")
+    machine.succeed("cryptsetup luksFormat -q --iter-time=1 -d ${keyfile} /dev/vdc")
+
+    # Boot from the encrypted disk
+    machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-luks.conf")
+    machine.succeed("sync")
+    machine.crash()
+
+    # Boot and decrypt the disk
+    machine.wait_for_unit("multi-user.target")
+    assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount")
+  '';
+})
diff --git a/nixos/tests/systemd-initrd-luks-password.nix b/nixos/tests/systemd-initrd-luks-password.nix
new file mode 100644
index 0000000000000..e8e651f7b35f8
--- /dev/null
+++ b/nixos/tests/systemd-initrd-luks-password.nix
@@ -0,0 +1,48 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }: {
+  name = "systemd-initrd-luks-password";
+
+  nodes.machine = { pkgs, ... }: {
+    # Use systemd-boot
+    virtualisation = {
+      emptyDiskImages = [ 512 512 ];
+      useBootLoader = true;
+      useEFIBoot = true;
+    };
+    boot.loader.systemd-boot.enable = true;
+
+    environment.systemPackages = with pkgs; [ cryptsetup ];
+    boot.initrd.systemd = {
+      enable = true;
+      emergencyAccess = true;
+    };
+
+    specialisation.boot-luks.configuration = {
+      boot.initrd.luks.devices = lib.mkVMOverride {
+        # We have two disks and only type one password - key reuse is in place
+        cryptroot.device = "/dev/vdc";
+        cryptroot2.device = "/dev/vdd";
+      };
+      virtualisation.bootDevice = "/dev/mapper/cryptroot";
+    };
+  };
+
+  testScript = ''
+    # Create encrypted volume
+    machine.wait_for_unit("multi-user.target")
+    machine.succeed("echo -n supersecret | cryptsetup luksFormat -q --iter-time=1 /dev/vdc -")
+    machine.succeed("echo -n supersecret | cryptsetup luksFormat -q --iter-time=1 /dev/vdd -")
+
+    # Boot from the encrypted disk
+    machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-luks.conf")
+    machine.succeed("sync")
+    machine.crash()
+
+    # Boot and decrypt the disk
+    machine.start()
+    machine.wait_for_console_text("Please enter passphrase for disk cryptroot")
+    machine.send_console("supersecret\n")
+    machine.wait_for_unit("multi-user.target")
+
+    assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount")
+  '';
+})
diff --git a/nixos/tests/systemd-initrd-simple.nix b/nixos/tests/systemd-initrd-simple.nix
index ba62cdf3bbc77..959cc87c0f267 100644
--- a/nixos/tests/systemd-initrd-simple.nix
+++ b/nixos/tests/systemd-initrd-simple.nix
@@ -14,14 +14,31 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: {
   testScript = ''
     import subprocess
 
-    oldAvail = machine.succeed("df --output=avail / | sed 1d")
-    machine.shutdown()
+    with subtest("handover to stage-2 systemd works"):
+        machine.wait_for_unit("multi-user.target")
+        machine.succeed("systemd-analyze | grep -q '(initrd)'")  # direct handover
+        machine.succeed("touch /testfile")  # / is writable
+        machine.fail("touch /nix/store/testfile")  # /nix/store is not writable
+        # Special filesystems are mounted by systemd
+        machine.succeed("[ -e /run/booted-system ]") # /run
+        machine.succeed("[ -e /sys/class ]") # /sys
+        machine.succeed("[ -e /dev/null ]") # /dev
+        machine.succeed("[ -e /proc/1 ]") # /proc
+        # stage-2-init mounted more special filesystems
+        machine.succeed("[ -e /dev/shm ]") # /dev/shm
+        machine.succeed("[ -e /dev/pts/ptmx ]") # /dev/pts
+        machine.succeed("[ -e /run/keys ]") # /run/keys
 
-    subprocess.check_call(["qemu-img", "resize", "vm-state-machine/machine.qcow2", "+1G"])
 
-    machine.start()
-    newAvail = machine.succeed("df --output=avail / | sed 1d")
+    with subtest("growfs works"):
+        oldAvail = machine.succeed("df --output=avail / | sed 1d")
+        machine.shutdown()
 
-    assert int(oldAvail) < int(newAvail), "File system did not grow"
+        subprocess.check_call(["qemu-img", "resize", "vm-state-machine/machine.qcow2", "+1G"])
+
+        machine.start()
+        newAvail = machine.succeed("df --output=avail / | sed 1d")
+
+        assert int(oldAvail) < int(newAvail), "File system did not grow"
   '';
 })
diff --git a/nixos/tests/systemd-initrd-swraid.nix b/nixos/tests/systemd-initrd-swraid.nix
new file mode 100644
index 0000000000000..28a0fb3192aed
--- /dev/null
+++ b/nixos/tests/systemd-initrd-swraid.nix
@@ -0,0 +1,50 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }: {
+  name = "systemd-initrd-swraid";
+
+  nodes.machine = { pkgs, ... }: {
+    # Use systemd-boot
+    virtualisation = {
+      emptyDiskImages = [ 512 512 ];
+      useBootLoader = true;
+      useEFIBoot = true;
+    };
+    boot.loader.systemd-boot.enable = true;
+    boot.loader.efi.canTouchEfiVariables = true;
+
+    environment.systemPackages = with pkgs; [ mdadm e2fsprogs ]; # for mdadm and mkfs.ext4
+    boot.initrd = {
+      systemd = {
+        enable = true;
+        emergencyAccess = true;
+      };
+      services.swraid = {
+        enable = true;
+        mdadmConf = ''
+          ARRAY /dev/md0 devices=/dev/vdc,/dev/vdd
+        '';
+      };
+      kernelModules = [ "raid0" ];
+    };
+
+    specialisation.boot-swraid.configuration.virtualisation.bootDevice = "/dev/disk/by-label/testraid";
+  };
+
+  testScript = ''
+    # Create RAID
+    machine.succeed("mdadm --create --force /dev/md0 -n 2 --level=raid0 /dev/vdc /dev/vdd")
+    machine.succeed("mkfs.ext4 -L testraid /dev/md0")
+    machine.succeed("mkdir -p /mnt && mount /dev/md0 /mnt && echo hello > /mnt/test && umount /mnt")
+
+    # Boot from the RAID
+    machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-swraid.conf")
+    machine.succeed("sync")
+    machine.crash()
+    machine.wait_for_unit("multi-user.target")
+
+    # Ensure we have successfully booted from the RAID
+    assert "(initrd)" in machine.succeed("systemd-analyze")  # booted with systemd in stage 1
+    assert "/dev/md0 on / type ext4" in machine.succeed("mount")
+    assert "hello" in machine.succeed("cat /test")
+    assert "md0" in machine.succeed("cat /proc/mdstat")
+  '';
+})
diff --git a/nixos/tests/systemd-networkd.nix b/nixos/tests/systemd-networkd.nix
index 7faeae3704eca..6c423f4140b1f 100644
--- a/nixos/tests/systemd-networkd.nix
+++ b/nixos/tests/systemd-networkd.nix
@@ -8,6 +8,9 @@ let generateNodeConf = { lib, pkgs, config, privk, pubk, peerId, nodeId, ...}: {
       environment.systemPackages = with pkgs; [ wireguard-tools ];
       systemd.network = {
         enable = true;
+        config = {
+          routeTables.custom = 23;
+        };
         netdevs = {
           "90-wg0" = {
             netdevConfig = { Kind = "wireguard"; Name = "wg0"; };
@@ -39,6 +42,7 @@ let generateNodeConf = { lib, pkgs, config, privk, pubk, peerId, nodeId, ...}: {
             address = [ "10.0.0.${nodeId}/32" ];
             routes = [
               { routeConfig = { Gateway = "10.0.0.${nodeId}"; Destination = "10.0.0.0/24"; }; }
+              { routeConfig = { Gateway = "10.0.0.${nodeId}"; Destination = "10.0.0.0/24"; Table = "custom"; }; }
             ];
           };
           "30-eth1" = {
@@ -88,6 +92,12 @@ testScript = ''
     node2.wait_for_unit("systemd-networkd-wait-online.service")
 
     # ================================
+    # Networkd Config
+    # ================================
+    node1.succeed("grep RouteTable=custom:23 /etc/systemd/networkd.conf")
+    node1.succeed("sudo ip route show table custom | grep '10.0.0.0/24 via 10.0.0.1 dev wg0 proto static'")
+
+    # ================================
     # Wireguard
     # ================================
     node1.succeed("ping -c 5 10.0.0.2")
diff --git a/nixos/tests/systemd-shutdown.nix b/nixos/tests/systemd-shutdown.nix
new file mode 100644
index 0000000000000..9283489c25591
--- /dev/null
+++ b/nixos/tests/systemd-shutdown.nix
@@ -0,0 +1,21 @@
+import ./make-test-python.nix ({ pkgs, systemdStage1 ? false, ...} : {
+  name = "systemd-shutdown";
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ das_j ];
+  };
+
+  nodes.machine = {
+    imports = [ ../modules/profiles/minimal.nix ];
+    boot.initrd.systemd.enable = systemdStage1;
+  };
+
+  testScript = ''
+    machine.wait_for_unit("multi-user.target")
+    # .shutdown() would wait for the machine to power off
+    machine.succeed("systemctl poweroff")
+    # Message printed by systemd-shutdown
+    machine.wait_for_console_text("All filesystems, swaps, loop devices, MD devices and DM devices detached.")
+    # Don't try to sync filesystems
+    machine.booted = False
+  '';
+})
diff --git a/nixos/tests/taskserver.nix b/nixos/tests/taskserver.nix
index f34782c7059a9..b2bd421e231f0 100644
--- a/nixos/tests/taskserver.nix
+++ b/nixos/tests/taskserver.nix
@@ -63,6 +63,7 @@ in {
     server = {
       services.taskserver.enable = true;
       services.taskserver.listenHost = "::";
+      services.taskserver.openFirewall = true;
       services.taskserver.fqdn = "server";
       services.taskserver.organisations = {
         testOrganisation.users = [ "alice" "foo" ];
diff --git a/nixos/tests/vaultwarden.nix b/nixos/tests/vaultwarden.nix
index 56f1d245d5052..814d8d7c0ab3e 100644
--- a/nixos/tests/vaultwarden.nix
+++ b/nixos/tests/vaultwarden.nix
@@ -113,7 +113,6 @@ let
                   driver.find_element_by_css_selector('input#masterPasswordRetype').send_keys(
                     '${userPassword}'
                   )
-                  driver.find_element_by_css_selector('input#acceptPolicies').click()
 
                   driver.find_element_by_xpath("//button[contains(., 'Submit')]").click()
 
diff --git a/nixos/tests/web-apps/netbox.nix b/nixos/tests/web-apps/netbox.nix
index 95f24029ec928..35decdd49e870 100644
--- a/nixos/tests/web-apps/netbox.nix
+++ b/nixos/tests/web-apps/netbox.nix
@@ -5,7 +5,7 @@ import ../make-test-python.nix ({ lib, pkgs, ... }: {
     maintainers = [ n0emis ];
   };
 
-  machine = { ... }: {
+  nodes.machine = { ... }: {
     services.netbox = {
       enable = true;
       secretKeyFile = pkgs.writeText "secret" ''
diff --git a/nixos/tests/web-apps/nifi.nix b/nixos/tests/web-apps/nifi.nix
new file mode 100644
index 0000000000000..92f7fa231df3a
--- /dev/null
+++ b/nixos/tests/web-apps/nifi.nix
@@ -0,0 +1,30 @@
+import ../make-test-python.nix ({pkgs, ...}:
+{
+  name = "nifi";
+  meta.maintainers = with pkgs.lib.maintainers; [ izorkin ];
+
+  nodes = {
+    nifi = { pkgs, ... }: {
+      virtualisation = {
+        memorySize = 2048;
+        diskSize = 4096;
+      };
+      services.nifi = {
+        enable = true;
+        enableHTTPS = false;
+      };
+    };
+  };
+
+  testScript = ''
+    nifi.start()
+
+    nifi.wait_for_unit("nifi.service")
+    nifi.wait_for_open_port(8080)
+
+    # Check if NiFi is running
+    nifi.succeed("curl --fail http://127.0.0.1:8080/nifi/login 2> /dev/null | grep 'NiFi Login'")
+
+    nifi.shutdown()
+  '';
+})
diff --git a/nixos/tests/web-apps/peertube.nix b/nixos/tests/web-apps/peertube.nix
index 706c598338e82..d42b4e3d677bb 100644
--- a/nixos/tests/web-apps/peertube.nix
+++ b/nixos/tests/web-apps/peertube.nix
@@ -30,10 +30,11 @@ import ../make-test-python.nix ({pkgs, ...}:
         '';
       };
 
-      services.redis = {
+      services.redis.servers.peertube = {
         enable = true;
         bind = "0.0.0.0";
         requirePass = "turrQfaQwnanGbcsdhxy";
+        port = 6379;
       };
     };
 
@@ -109,7 +110,7 @@ import ../make-test-python.nix ({pkgs, ...}:
     start_all()
 
     database.wait_for_unit("postgresql.service")
-    database.wait_for_unit("redis.service")
+    database.wait_for_unit("redis-peertube.service")
 
     database.wait_for_open_port(5432)
     database.wait_for_open_port(6379)
diff --git a/nixos/tests/xmonad-xdg-autostart.nix b/nixos/tests/xmonad-xdg-autostart.nix
new file mode 100644
index 0000000000000..2577a9ce2ea13
--- /dev/null
+++ b/nixos/tests/xmonad-xdg-autostart.nix
@@ -0,0 +1,35 @@
+import ./make-test-python.nix ({ lib, ... }: {
+  name = "xmonad-xdg-autostart";
+  meta.maintainers = with lib.maintainers; [ oxalica ];
+
+  nodes.machine = { pkgs, config, ... }: {
+    imports = [ ./common/x11.nix ./common/user-account.nix ];
+    test-support.displayManager.auto.user = "alice";
+    services.xserver.displayManager.defaultSession = "none+xmonad";
+    services.xserver.windowManager.xmonad.enable = true;
+    services.xserver.desktopManager.runXdgAutostartIfNone = true;
+
+    environment.systemPackages = [
+      (pkgs.writeTextFile {
+        name = "test-xdg-autostart";
+        destination = "/etc/xdg/autostart/test-xdg-autostart.desktop";
+        text = ''
+          [Desktop Entry]
+          Name=test-xdg-autoatart
+          Type=Application
+          Terminal=false
+          Exec=${pkgs.coreutils}/bin/touch ${config.users.users.alice.home}/xdg-autostart-executed
+        '';
+      })
+    ];
+  };
+
+  testScript = { nodes, ... }:
+    let
+      user = nodes.machine.config.users.users.alice;
+    in
+    ''
+      machine.wait_for_x()
+      machine.wait_for_file("${user.home}/xdg-autostart-executed")
+    '';
+})
diff --git a/nixos/tests/zfs.nix b/nixos/tests/zfs.nix
index bf0165b88162d..0b44961a3deb5 100644
--- a/nixos/tests/zfs.nix
+++ b/nixos/tests/zfs.nix
@@ -127,4 +127,54 @@ in {
   };
 
   installer = (import ./installer.nix { }).zfsroot;
+
+  expand-partitions = makeTest {
+    name = "multi-disk-zfs";
+    nodes = {
+      machine = { pkgs, ... }: {
+        environment.systemPackages = [ pkgs.parted ];
+        boot.supportedFilesystems = [ "zfs" ];
+        networking.hostId = "00000000";
+
+        virtualisation = {
+          emptyDiskImages = [ 20480 20480 20480 20480 20480 20480 ];
+        };
+
+        specialisation.resize.configuration = {
+          services.zfs.expandOnBoot = [ "tank" ];
+        };
+      };
+    };
+
+    testScript = { nodes, ... }:
+      ''
+        start_all()
+        machine.wait_for_unit("default.target")
+        print(machine.succeed('mount'))
+
+        print(machine.succeed('parted --script /dev/vdb -- mklabel gpt'))
+        print(machine.succeed('parted --script /dev/vdb -- mkpart primary 1M 70M'))
+
+        print(machine.succeed('parted --script /dev/vdc -- mklabel gpt'))
+        print(machine.succeed('parted --script /dev/vdc -- mkpart primary 1M 70M'))
+
+        print(machine.succeed('zpool create tank mirror /dev/vdb1 /dev/vdc1 mirror /dev/vdd /dev/vde mirror /dev/vdf /dev/vdg'))
+        print(machine.succeed('zpool list -v'))
+        print(machine.succeed('mount'))
+        start_size = int(machine.succeed('df -k --output=size /tank | tail -n1').strip())
+
+        print(machine.succeed("/run/current-system/specialisation/resize/bin/switch-to-configuration test >&2"))
+        machine.wait_for_unit("zpool-expand-pools.service")
+        machine.wait_for_unit("zpool-expand@tank.service")
+
+        print(machine.succeed('zpool list -v'))
+        new_size = int(machine.succeed('df -k --output=size /tank | tail -n1').strip())
+
+        if (new_size - start_size) > 20000000:
+          print("Disk grew appropriately.")
+        else:
+          print(f"Disk went from {start_size} to {new_size}, which doesn't seem right.")
+          exit(1)
+      '';
+  };
 }
diff --git a/pkgs/applications/accessibility/espeakup/default.nix b/pkgs/applications/accessibility/espeakup/default.nix
new file mode 100644
index 0000000000000..00f432ff4138a
--- /dev/null
+++ b/pkgs/applications/accessibility/espeakup/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, lib
+, meson
+, ninja
+, espeak-ng
+, fetchFromGitHub
+, pkg-config
+, ronn
+, alsa-lib
+, systemd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "espeakup";
+  version = "0.90";
+
+  src = fetchFromGitHub {
+    owner = "linux-speakup";
+    repo = "espeakup";
+    rev = "v${version}";
+    sha256 = "0lmjwafvfxy07zn18v3dzjwwpnid2xffgvy2dzlwkbns8gb60ds2";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    ronn
+  ];
+
+  buildInputs = [
+    espeak-ng
+    alsa-lib
+    systemd
+  ];
+
+  PKG_CONFIG_SYSTEMD_SYSTEMDSYSTEMUNITDIR = "${placeholder "out"}/lib/systemd/system";
+
+  meta = with lib; {
+    homepage = "https://github.com/linux-speakup/espeakup";
+    description = "Lightweight connector for espeak-ng and speakup";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ ethindp ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/applications/accessibility/wvkbd/default.nix b/pkgs/applications/accessibility/wvkbd/default.nix
new file mode 100644
index 0000000000000..a593b0d2ea2b0
--- /dev/null
+++ b/pkgs/applications/accessibility/wvkbd/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, wayland-scanner
+, wayland
+, pango
+, glib
+, harfbuzz
+, cairo
+, pkg-config
+, libxkbcommon
+}:
+
+stdenv.mkDerivation rec {
+  pname = "wvkbd";
+  version = "0.7";
+
+  src = fetchFromGitHub {
+    owner = "jjsullivan5196";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-5UV2PMrLXtF3AxjfPxxwFRkgVef+Ap8nG1v795o0bWE=";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ wayland-scanner wayland pango glib harfbuzz cairo libxkbcommon ];
+  installFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/jjsullivan5196/wvkbd";
+    description = "On-screen keyboard for wlroots";
+    maintainers = [ maintainers.elohmeier ];
+    platforms = platforms.linux;
+    license = licenses.gpl3Plus;
+  };
+}
diff --git a/pkgs/applications/audio/ChowPhaser/default.nix b/pkgs/applications/audio/ChowPhaser/default.nix
new file mode 100644
index 0000000000000..a828a1e1d0410
--- /dev/null
+++ b/pkgs/applications/audio/ChowPhaser/default.nix
@@ -0,0 +1,76 @@
+{ alsa-lib, at-spi2-core, cmake, curl, dbus, libepoxy, fetchFromGitHub, freeglut
+, freetype, gcc-unwrapped, gtk3, lib, libGL, libXcursor, libXdmcp, libXext
+, libXinerama, libXrandr, libXtst, libdatrie, libjack2, libpsl, libselinux
+, libsepol, libsysprof-capture, libthai, libxkbcommon, pcre, pkg-config
+, python3, sqlite, stdenv }:
+
+stdenv.mkDerivation rec {
+  pname = "ChowPhaser";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "jatinchowdhury18";
+    repo = "ChowPhaser";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = "sha256-9wo7ZFMruG3QNvlpILSvrFh/Sx6J1qnlWc8+aQyS4tQ=";
+  };
+
+  nativeBuildInputs = [ pkg-config cmake ];
+
+  buildInputs = [
+    alsa-lib
+    at-spi2-core
+    curl
+    dbus
+    libepoxy
+    freeglut
+    freetype
+    gtk3
+    libGL
+    libXcursor
+    libXdmcp
+    libXext
+    libXinerama
+    libXrandr
+    libXtst
+    libdatrie
+    libjack2
+    libpsl
+    libselinux
+    libsepol
+    libsysprof-capture
+    libthai
+    libxkbcommon
+    pcre
+    python3
+    sqlite
+    gcc-unwrapped
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
+    "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
+    "-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
+  ];
+
+  installPhase = ''
+    mkdir -p $out/lib/lv2 $out/lib/vst3 $out/bin $out/share/doc/ChowPhaser/
+    cd ChowPhaserMono_artefacts/Release
+    cp libChowPhaserMono_SharedCode.a  $out/lib
+    cp -r VST3/ChowPhaserMono.vst3 $out/lib/vst3
+    cp Standalone/ChowPhaserMono  $out/bin
+    cd ../../ChowPhaserStereo_artefacts/Release
+    cp libChowPhaserStereo_SharedCode.a  $out/lib
+    cp -r VST3/ChowPhaserStereo.vst3 $out/lib/vst3
+    cp Standalone/ChowPhaserStereo  $out/bin
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/jatinchowdhury18/ChowPhaser";
+    description = "Phaser effect based loosely on the Schulte Compact Phasing 'A'";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ magnetophon ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/amberol/default.nix b/pkgs/applications/audio/amberol/default.nix
new file mode 100644
index 0000000000000..b778b7f2696ab
--- /dev/null
+++ b/pkgs/applications/audio/amberol/default.nix
@@ -0,0 +1,75 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, rustPlatform
+, desktop-file-utils
+, appstream-glib
+, meson
+, ninja
+, pkg-config
+, reuse
+, wrapGAppsHook4
+, glib
+, gtk4
+, gst_all_1
+, libadwaita
+, dbus
+}:
+
+stdenv.mkDerivation rec {
+  pname = "amberol";
+  version = "0.3.0";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "World";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-+9lrSkjk7V+ZnIhmhw7lEiEywDp5adoAW+5PEAlhpSI=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    sha256 = "sha256-ZJiD6RshEjZ7h+/KYcY+ZjL5fHRb5+RKgIdgbD6LdkA=";
+  };
+
+  postPatch = ''
+    patchShebangs build-aux
+  '';
+
+  nativeBuildInputs = [
+    appstream-glib
+    desktop-file-utils
+    meson
+    ninja
+    pkg-config
+    reuse
+    wrapGAppsHook4
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
+
+  buildInputs = [
+    glib
+    gtk4
+    libadwaita
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+    gst_all_1.gst-plugins-bad
+    gst_all_1.gst-plugins-ugly
+    gst_all_1.gst-libav
+    dbus
+  ];
+
+  meta = with lib; {
+    homepage = "https://gitlab.gnome.org/ebassi/amberol";
+    description = "A small and simple sound and music player";
+    maintainers = with maintainers; [ linsui ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/audacity/0001-Use-a-different-approach-to-estimate-the-disk-space-.patch b/pkgs/applications/audio/audacity/0001-Use-a-different-approach-to-estimate-the-disk-space-.patch
deleted file mode 100644
index 33b7554db4483..0000000000000
--- a/pkgs/applications/audio/audacity/0001-Use-a-different-approach-to-estimate-the-disk-space-.patch
+++ /dev/null
@@ -1,355 +0,0 @@
-From deeb435829d73524df851f6f4c2d4be552c99230 Mon Sep 17 00:00:00 2001
-From: Dmitry Vedenko <dmitry@crsib.me>
-Date: Fri, 1 Oct 2021 16:21:22 +0300
-Subject: [PATCH] Use a different approach to estimate the disk space usage
-
-New a approach is a bit less precise, but removes the requirement for the "private" SQLite3 table and allows Audacity to be built against system SQLite3.
----
- cmake-proxies/sqlite/CMakeLists.txt |   5 -
- src/DBConnection.h                  |   4 +-
- src/ProjectFileIO.cpp               | 269 +++++-----------------------
- 3 files changed, 44 insertions(+), 234 deletions(-)
-
-diff --git a/cmake-proxies/sqlite/CMakeLists.txt b/cmake-proxies/sqlite/CMakeLists.txt
-index 63d70637c..d7b9b95ef 100644
---- a/cmake-proxies/sqlite/CMakeLists.txt
-+++ b/cmake-proxies/sqlite/CMakeLists.txt
-@@ -19,11 +19,6 @@ list( APPEND INCLUDES
- 
- list( APPEND DEFINES
-    PRIVATE
--      #
--      # We need the dbpage table for space calculations.
--      #
--      SQLITE_ENABLE_DBPAGE_VTAB=1
--
-       # Can't be set after a WAL mode database is initialized, so change
-       # the default here to ensure all project files get the same page 
-       # size.
-diff --git a/src/DBConnection.h b/src/DBConnection.h
-index 16a7fc9d4..07d3af95e 100644
---- a/src/DBConnection.h
-+++ b/src/DBConnection.h
-@@ -75,8 +75,8 @@ public:
-       LoadSampleBlock,
-       InsertSampleBlock,
-       DeleteSampleBlock,
--      GetRootPage,
--      GetDBPage
-+      GetSampleBlockSize,
-+      GetAllSampleBlocksSize
-    };
-    sqlite3_stmt *Prepare(enum StatementID id, const char *sql);
- 
-diff --git a/src/ProjectFileIO.cpp b/src/ProjectFileIO.cpp
-index 3b3e2e1fd..c9bc45af4 100644
---- a/src/ProjectFileIO.cpp
-+++ b/src/ProjectFileIO.cpp
-@@ -35,6 +35,7 @@ Paul Licameli split from AudacityProject.cpp
- #include "widgets/ProgressDialog.h"
- #include "wxFileNameWrapper.h"
- #include "xml/XMLFileReader.h"
-+#include "MemoryX.h"`
- 
- #undef NO_SHM
- #if !defined(__WXMSW__)
-@@ -2357,255 +2358,69 @@ int64_t ProjectFileIO::GetTotalUsage()
- }
- 
- //
--// Returns the amount of disk space used by the specified sample blockid or all
--// of the sample blocks if the blockid is 0.  It does this by using the raw SQLite
--// pages available from the "sqlite_dbpage" virtual table to traverse the SQLite
--// table b-tree described here:  https://www.sqlite.org/fileformat.html
-+// Returns the estimation of disk space used by the specified sample blockid or all
-+// of the sample blocks if the blockid is 0. This does not include small overhead
-+// of the internal SQLite structures, only the size used by the data
- //
- int64_t ProjectFileIO::GetDiskUsage(DBConnection &conn, SampleBlockID blockid /* = 0 */)
- {
--   // Information we need to track our travels through the b-tree
--   typedef struct
--   {
--      int64_t pgno;
--      int currentCell;
--      int numCells;
--      unsigned char data[65536];
--   } page;
--   std::vector<page> stack;
--
--   int64_t total = 0;
--   int64_t found = 0;
--   int64_t right = 0;
--   int rc;
-+   sqlite3_stmt* stmt = nullptr;
- 
--   // Get the rootpage for the sampleblocks table.
--   sqlite3_stmt *stmt =
--      conn.Prepare(DBConnection::GetRootPage,
--                    "SELECT rootpage FROM sqlite_master WHERE tbl_name = 'sampleblocks';");
--   if (stmt == nullptr || sqlite3_step(stmt) != SQLITE_ROW)
-+   if (blockid == 0)
-    {
--      return 0;
--   }
--
--   // And store it in our first stack frame
--   stack.push_back({sqlite3_column_int64(stmt, 0)});
-+      static const char* statement =
-+R"(SELECT 
-+	sum(length(blockid) + length(sampleformat) + 
-+	length(summin) + length(summax) + length(sumrms) + 
-+	length(summary256) + length(summary64k) +
-+	length(samples))
-+FROM sampleblocks;)";
- 
--   // All done with the statement
--   sqlite3_clear_bindings(stmt);
--   sqlite3_reset(stmt);
--
--   // Prepare/retrieve statement to read raw database page
--   stmt = conn.Prepare(DBConnection::GetDBPage,
--      "SELECT data FROM sqlite_dbpage WHERE pgno = ?1;");
--   if (stmt == nullptr)
--   {
--      return 0;
-+      stmt = conn.Prepare(DBConnection::GetAllSampleBlocksSize, statement);
-    }
--
--   // Traverse the b-tree until we've visited all of the leaf pages or until
--   // we find the one corresponding to the passed in sample blockid. Because we
--   // use an integer primary key for the sampleblocks table, the traversal will
--   // be in ascending blockid sequence.
--   do
-+   else
-    {
--      // Acces the top stack frame
--      page &pg = stack.back();
-+      static const char* statement =
-+R"(SELECT 
-+	length(blockid) + length(sampleformat) + 
-+	length(summin) + length(summax) + length(sumrms) + 
-+	length(summary256) + length(summary64k) +
-+	length(samples)
-+FROM sampleblocks WHERE blockid = ?1;)";
- 
--      // Read the page from the sqlite_dbpage table if it hasn't yet been loaded
--      if (pg.numCells == 0)
--      {
--         // Bind the page number
--         sqlite3_bind_int64(stmt, 1, pg.pgno);
-+      stmt = conn.Prepare(DBConnection::GetSampleBlockSize, statement);
-+   }
- 
--         // And retrieve the page
--         if (sqlite3_step(stmt) != SQLITE_ROW)
-+   auto cleanup = finally(
-+      [stmt]() {
-+         // Clear statement bindings and rewind statement
-+         if (stmt != nullptr)
-          {
--            // REVIEW: Likely harmless failure - says size is zero on
--            // this error.
--            // LLL: Yea, but not much else we can do.
--            return 0;
-+            sqlite3_clear_bindings(stmt);
-+            sqlite3_reset(stmt);
-          }
-+      });
- 
--         // Copy the page content to the stack frame
--         memcpy(&pg.data,
--                sqlite3_column_blob(stmt, 0),
--                sqlite3_column_bytes(stmt, 0));
--
--         // And retrieve the total number of cells within it
--         pg.numCells = get2(&pg.data[3]);
--
--         // Reset statement for next usage
--         sqlite3_clear_bindings(stmt);
--         sqlite3_reset(stmt);
--      }
--
--      //wxLogDebug("%*.*spgno %lld currentCell %d numCells %d", (stack.size() - 1) * 2, (stack.size() - 1) * 2, "", pg.pgno, pg.currentCell, pg.numCells);
--
--      // Process an interior table b-tree page
--      if (pg.data[0] == 0x05)
--      {
--         // Process the next cell if we haven't examined all of them yet
--         if (pg.currentCell < pg.numCells)
--         {
--            // Remember the right-most leaf page number.
--            right = get4(&pg.data[8]);
--
--            // Iterate over the cells.
--            //
--            // If we're not looking for a specific blockid, then we always push the
--            // target page onto the stack and leave the loop after a single iteration.
--            //
--            // Otherwise, we match the blockid against the highest integer key contained
--            // within the cell and if the blockid falls within the cell, we stack the
--            // page and stop the iteration.
--            //
--            // In theory, we could do a binary search for a specific blockid here, but
--            // because our sample blocks are always large, we will get very few cells
--            // per page...usually 6 or less.
--            //
--            // In both cases, the stacked page can be either an internal or leaf page.
--            bool stacked = false;
--            while (pg.currentCell < pg.numCells)
--            {
--               // Get the offset to this cell using the offset in the cell pointer
--               // array.
--               //
--               // The cell pointer array starts immediately after the page header
--               // at offset 12 and the retrieved offset is from the beginning of
--               // the page.
--               int celloff = get2(&pg.data[12 + (pg.currentCell * 2)]);
--
--               // Bump to the next cell for the next iteration.
--               pg.currentCell++;
--
--               // Get the page number this cell describes
--               int pagenum = get4(&pg.data[celloff]);
--
--               // And the highest integer key, which starts at offset 4 within the cell.
--               int64_t intkey = 0;
--               get_varint(&pg.data[celloff + 4], &intkey);
--
--               //wxLogDebug("%*.*sinternal - right %lld celloff %d pagenum %d intkey %lld", (stack.size() - 1) * 2, (stack.size() - 1) * 2, " ", right, celloff, pagenum, intkey);
--
--               // Stack the described page if we're not looking for a specific blockid
--               // or if this page contains the given blockid.
--               if (!blockid || blockid <= intkey)
--               {
--                  stack.push_back({pagenum, 0, 0});
--                  stacked = true;
--                  break;
--               }
--            }
--
--            // If we pushed a new page onto the stack, we need to jump back up
--            // to read the page
--            if (stacked)
--            {
--               continue;
--            }
--         }
-+   if (blockid != 0)
-+   {
-+      int rc = sqlite3_bind_int64(stmt, 1, blockid);
- 
--         // We've exhausted all the cells with this page, so we stack the right-most
--         // leaf page.  Ensure we only process it once.
--         if (right)
--         {
--            stack.push_back({right, 0, 0});
--            right = 0;
--            continue;
--         }
--      }
--      // Process a leaf table b-tree page
--      else if (pg.data[0] == 0x0d)
-+      if (rc != SQLITE_OK)
-       {
--         // Iterate over the cells
--         //
--         // If we're not looking for a specific blockid, then just accumulate the
--         // payload sizes. We will be reading every leaf page in the sampleblocks
--         // table.
--         //
--         // Otherwise we break out when we find the matching blockid. In this case,
--         // we only ever look at 1 leaf page.
--         bool stop = false;
--         for (int i = 0; i < pg.numCells; i++)
--         {
--            // Get the offset to this cell using the offset in the cell pointer
--            // array.
--            //
--            // The cell pointer array starts immediately after the page header
--            // at offset 8 and the retrieved offset is from the beginning of
--            // the page.
--            int celloff = get2(&pg.data[8 + (i * 2)]);
--
--            // Get the total payload size in bytes of the described row.
--            int64_t payload = 0;
--            int digits = get_varint(&pg.data[celloff], &payload);
--
--            // Get the integer key for this row.
--            int64_t intkey = 0;
--            get_varint(&pg.data[celloff + digits], &intkey);
--
--            //wxLogDebug("%*.*sleaf - celloff %4d intkey %lld payload %lld", (stack.size() - 1) * 2, (stack.size() - 1) * 2, " ", celloff, intkey, payload);
--
--            // Add this payload size to the total if we're not looking for a specific
--            // blockid
--            if (!blockid)
--            {
--               total += payload;
--            }
--            // Otherwise, return the payload size for a matching row
--            else if (blockid == intkey)
--            {
--               return payload;
--            }
--         }
-+         conn.ThrowException(false);
-       }
-+   }
- 
--      // Done with the current branch, so pop back up to the previous one (if any)
--      stack.pop_back();
--   } while (!stack.empty());
--
--   // Return the total used for all sample blocks
--   return total;
--}
--
--// Retrieves a 2-byte big-endian integer from the page data
--unsigned int ProjectFileIO::get2(const unsigned char *ptr)
--{
--   return (ptr[0] << 8) | ptr[1];
--}
--
--// Retrieves a 4-byte big-endian integer from the page data
--unsigned int ProjectFileIO::get4(const unsigned char *ptr)
--{
--   return ((unsigned int) ptr[0] << 24) |
--          ((unsigned int) ptr[1] << 16) |
--          ((unsigned int) ptr[2] << 8)  |
--          ((unsigned int) ptr[3]);
--}
--
--// Retrieves a variable length integer from the page data. Returns the
--// number of digits used to encode the integer and the stores the
--// value at the given location.
--int ProjectFileIO::get_varint(const unsigned char *ptr, int64_t *out)
--{
--   int64_t val = 0;
--   int i;
-+   int rc = sqlite3_step(stmt);
- 
--   for (i = 0; i < 8; ++i)
-+   if (rc != SQLITE_ROW)
-    {
--      val = (val << 7) + (ptr[i] & 0x7f);
--      if ((ptr[i] & 0x80) == 0)
--      {
--         *out = val;
--         return i + 1;
--      }
-+      conn.ThrowException(false);
-    }
- 
--   val = (val << 8) + (ptr[i] & 0xff);
--   *out = val;
-+   const int64_t size = sqlite3_column_int64(stmt, 0);
- 
--   return 9;
-+   return size;
- }
- 
- InvisibleTemporaryProject::InvisibleTemporaryProject()
--- 
-2.33.1
-
diff --git a/pkgs/applications/audio/audacity/default.nix b/pkgs/applications/audio/audacity/default.nix
index 9d4c522edc1a9..653d5555eb144 100644
--- a/pkgs/applications/audio/audacity/default.nix
+++ b/pkgs/applications/audio/audacity/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , fetchpatch
 , cmake
+, makeWrapper
 , pkg-config
 , python3
 , gettext
@@ -20,14 +21,17 @@
 , libsndfile
 , soxr
 , flac
+, lame
 , twolame
 , expat
 , libid3tag
 , libopus
+, libuuid
 , ffmpeg_4
 , soundtouch
 , pcre
-/*, portaudio - given up fighting their portaudio.patch */
+, portaudio # given up fighting their portaudio.patch?
+, portmidi
 , linuxHeaders
 , alsa-lib
 , at-spi2-core
@@ -36,11 +40,14 @@
 , libXdmcp
 , libXtst
 , libpthreadstubs
+, libsbsms_2_3_0
 , libselinux
 , libsepol
 , libxkbcommon
 , util-linux
 , wxGTK
+, libpng
+, libjpeg
 , AppKit ? null
 , AudioToolbox ? null
 , AudioUnit ? null
@@ -58,12 +65,14 @@
 
 let
   inherit (lib) optionals;
+  pname = "audacity";
+  version = "3.1.3";
 
   wxWidgets_src = fetchFromGitHub {
-    owner = "audacity";
+    owner = pname;
     repo = "wxWidgets";
-    rev = "07e7d832c7a337aedba3537b90b2c98c4d8e2985";
-    sha256 = "1mawnkcrmqj98jp0jxlnh9xkc950ca033ccb51c7035pzmi9if9a";
+    rev = "v${version}-${pname}";
+    sha256 = "sha256-KrmYYv23DHBYKIuxMYBioCQ2e4KWdgmuREnimtm0XNU=";
     fetchSubmodules = true;
   };
 
@@ -74,41 +83,20 @@ let
   wxmac' = wxmac.overrideAttrs (oldAttrs: rec {
     src = wxWidgets_src;
   });
-
-in
-stdenv.mkDerivation rec {
-  pname = "audacity";
-  # nixpkgs-update: no auto update
-  # Humans too! Let's wait to see how the situation with
-  # https://github.com/audacity/audacity/issues/1213 develops before
-  # pulling any updates that are subject to this privacy policy. We
-  # may wish to switch to a fork, but at the time of writing
-  # (2021-07-05) it's too early to tell how well any of the forks will
-  # be maintained.
-  version = "3.0.2";
+in stdenv.mkDerivation rec {
+  inherit pname version;
 
   src = fetchFromGitHub {
-    owner = "audacity";
-    repo = "audacity";
+    owner = pname;
+    repo = pname;
     rev = "Audacity-${version}";
-    sha256 = "035qq2ff16cdl2cb9iply2bfjmhfl1dpscg79x6c9l0i9m8k41zj";
+    sha256 = "sha256-sdI4paxIHDZgoWTCekjrkFR4JFpQC6OatcnJdVXCCZk=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/audacity/audacity/commit/7f8135e112a0e1e8e906abab9339680d1e491441.patch";
-      sha256 = "0zp2iydd46analda9cfnbmzdkjphz5m7dynrdj5qdnmq6j3px9fw";
-      name = "audacity_xdg_paths.patch";
-    })
-    # This is required to make audacity work with nixpkgs’ sqlite
-    # https://github.com/audacity/audacity/pull/1802 rebased onto 3.0.2
-    ./0001-Use-a-different-approach-to-estimate-the-disk-space-.patch
-  ];
-
   postPatch = ''
-    touch src/RevisionIdent.h
+    mkdir src/private
   '' + lib.optionalString stdenv.isLinux ''
-    substituteInPlace src/FileNames.cpp \
+    substituteInPlace libraries/lib-files/FileNames.cpp \
       --replace /usr/include/linux/magic.h ${linuxHeaders}/include/linux/magic.h
   '';
 
@@ -119,6 +107,7 @@ stdenv.mkDerivation rec {
     python3
   ] ++ optionals stdenv.isLinux [
     linuxHeaders
+    makeWrapper
   ];
 
   buildInputs = [
@@ -126,15 +115,18 @@ stdenv.mkDerivation rec {
     ffmpeg_4
     file
     flac
+    lame
     libid3tag
     libjack2
     libmad
     libopus
+    libsbsms_2_3_0
     libsndfile
     libvorbis
     lilv
     lv2
     pcre
+    portmidi
     serd
     sord
     soundtouch
@@ -143,6 +135,7 @@ stdenv.mkDerivation rec {
     sratom
     suil
     twolame
+    portaudio
   ] ++ optionals stdenv.isLinux [
     alsa-lib # for portaudio
     at-spi2-core
@@ -154,6 +147,7 @@ stdenv.mkDerivation rec {
     libxkbcommon
     libselinux
     libsepol
+    libuuid
     util-linux
     wxGTK'
     wxGTK'.gtk
@@ -163,20 +157,49 @@ stdenv.mkDerivation rec {
     Cocoa
     CoreAudioKit
     AudioUnit AudioToolbox CoreAudio CoreServices Carbon # for portaudio
+    libpng
+    libjpeg
   ];
 
   cmakeFlags = [
-    "-Daudacity_use_ffmpeg=linked"
+    "-DAUDACITY_REV_LONG=nixpkgs"
+    "-DAUDACITY_REV_TIME=nixpkgs"
     "-DDISABLE_DYNAMIC_LOADING_FFMPEG=ON"
+    "-Daudacity_conan_enabled=Off"
+    "-Daudacity_use_ffmpeg=loaded"
   ];
 
   doCheck = false; # Test fails
 
+  # Replace audacity's wrapper, to:
+  # - put it in the right place, it shouldn't be in "$out/audacity"
+  # - Add the ffmpeg dynamic dependency
+  postInstall = lib.optionalString stdenv.isLinux ''
+    rm "$out/audacity"
+    wrapProgram "$out/bin/audacity" \
+      --prefix LD_LIBRARY_PATH : "$out/lib/audacity":${lib.makeLibraryPath [ ffmpeg_4 ]} \
+      --suffix AUDACITY_MODULES_PATH : "$out/lib/audacity/modules" \
+      --suffix AUDACITY_PATH : "$out/share/audacity"
+  '';
+
   meta = with lib; {
     description = "Sound editor with graphical UI";
-    homepage = "https://www.audacityteam.org/";
-    license = licenses.gpl2Plus;
+    homepage = "https://www.audacityteam.org";
+    changelog = "https://github.com/audacity/audacity/releases";
+    license = with licenses; [
+      gpl2Plus
+      # Must be GPL3 when building with "technologies that require it,
+      # such as the VST3 audio plugin interface".
+      # https://github.com/audacity/audacity/discussions/2142.
+      gpl3
+      # Documentation.
+      cc-by-30
+    ];
     maintainers = with maintainers; [ lheckemann veprbl ];
     platforms = platforms.unix;
+    # darwin-aarch due to qtbase broken for it.
+    # darwin-x86_64 due to
+    # https://logs.nix.ci/?attempt_id=5cbc4581-09b4-4148-82fe-0326411a56b3&key=nixos%2Fnixpkgs.152273.
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/applications/audio/bespokesynth/default.nix b/pkgs/applications/audio/bespokesynth/default.nix
index a5ef585969e61..6c48c756ab24c 100644
--- a/pkgs/applications/audio/bespokesynth/default.nix
+++ b/pkgs/applications/audio/bespokesynth/default.nix
@@ -142,6 +142,7 @@ stdenv.mkDerivation rec {
       gpl3Plus
     ] ++ lib.optional enableVST2 unfree;
     maintainers = with maintainers; [ astro tobiasBora OPNA2608 ];
+    mainProgram = "BespokeSynth";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
index 6f438a106ffbb..2f177c2f8c637 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bitwig-studio";
-  version = "4.2.1";
+  version = "4.2.3";
 
   src = fetchurl {
     url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
-    sha256 = "sha256-kkpb8tLuj4QO+TBW2yNDugS4c6dCQ9Lddv6Z8NS0uio=";
+    sha256 = "sha256-UCafrjrEwwHkhPum7sTOjtXzy7PNeK5/aeKg+b3CGJU=";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
diff --git a/pkgs/applications/audio/blanket/default.nix b/pkgs/applications/audio/blanket/default.nix
index b343953f3f849..6c648ed711591 100644
--- a/pkgs/applications/audio/blanket/default.nix
+++ b/pkgs/applications/audio/blanket/default.nix
@@ -9,21 +9,21 @@
 , appstream-glib
 , python3Packages
 , glib
-, gtk3
-, libhandy
+, gtk4
+, libadwaita
 , gobject-introspection
 , gst_all_1
 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "blanket";
-  version = "0.5.0";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "rafaelmardojai";
     repo = "blanket";
-    rev = version;
-    sha256 = "00i821zqfbigxmc709322r16z75qsw4rg23yhv35gza9sl65bzkg";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-4gthT1x76IfXWkLaLMPtFS4TRlRGk5Enbu/k1jAHzwE=";
   };
 
   nativeBuildInputs = [
@@ -37,8 +37,8 @@ python3Packages.buildPythonApplication rec {
 
   buildInputs = [
     glib
-    gtk3
-    libhandy
+    gtk4
+    libadwaita
     gobject-introspection
     gst_all_1.gstreamer
     gst_all_1.gst-plugins-base
diff --git a/pkgs/applications/audio/callaudiod/default.nix b/pkgs/applications/audio/callaudiod/default.nix
index 74f4b2de49ea0..562a53fe59275 100644
--- a/pkgs/applications/audio/callaudiod/default.nix
+++ b/pkgs/applications/audio/callaudiod/default.nix
@@ -11,14 +11,14 @@
 
 stdenv.mkDerivation rec {
   pname = "callaudiod";
-  version = "0.1.3";
+  version = "0.1.4";
 
   src = fetchFromGitLab {
     domain = "gitlab.com";
     owner = "mobian1";
     repo = pname;
     rev = version;
-    sha256 = "sha256-WZ23jacCsZiNeMJfnYMaGdHXY9OCIBbeU9dWGDroaHE=";
+    sha256 = "sha256-71+9ALz55aqxXRBRwOcs9fwiQK31pJ9E72pGRmt0OkE=";
   };
 
   strictDeps = true;
diff --git a/pkgs/applications/audio/clementine/default.nix b/pkgs/applications/audio/clementine/default.nix
index 550100574db40..3c9e35c8726bb 100644
--- a/pkgs/applications/audio/clementine/default.nix
+++ b/pkgs/applications/audio/clementine/default.nix
@@ -51,24 +51,17 @@ let
   withCD = config.clementine.cd or true;
   withCloud = config.clementine.cloud or true;
 
-  # On the update after all 1.4rc, qt5.15 and protobuf 3.15 will be supported.
-  version = "1.4.0rc1";
+  version = "unstable-2022-04-11";
 
   src = fetchFromGitHub {
     owner = "clementine-player";
     repo = "Clementine";
-    rev = version;
-    sha256 = "1rqk0hrsn8f8bjk0j0vq1af0ygy6xx7qi9fw0jjw2cmj6kzckyi2";
+    rev = "250024e117fbe5fae7c62b9c8e655d66412a6ed7";
+    sha256 = "06fcbs3wig3mh711iypyj49qm5246f7qhvgvv8brqfrd8cqyh6qf";
   };
 
   patches = [
     ./clementine-spotify-blob.patch
-    (fetchpatch {
-      # "short-term" fix for execution on wayland (1.4.0rc1-131-g2179027a6)
-      # for https://github.com/clementine-player/Clementine/issues/6587
-      url = "https://github.com/clementine-player/Clementine/commit/2179027a6d97530c857e43be873baacd696ff332.patch";
-      sha256 = "0344bfcyvjim5ph8w4km6zkg96rj5g9ybp9x14qgyw2gkdksimn6";
-    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/cmus/default.nix b/pkgs/applications/audio/cmus/default.nix
index ea7ad1015be9a..3a4cae32a1fdc 100644
--- a/pkgs/applications/audio/cmus/default.nix
+++ b/pkgs/applications/audio/cmus/default.nix
@@ -1,5 +1,5 @@
 { config, lib, stdenv, fetchFromGitHub, runCommand, ncurses, pkg-config
-, libiconv, CoreAudio, AudioUnit
+, libiconv, CoreAudio, AudioUnit, VideoToolbox
 
 , alsaSupport ? stdenv.isLinux, alsa-lib ? null
 # simple fallback for everyone else
@@ -121,7 +121,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ ncurses ]
     ++ lib.optional stdenv.cc.isClang clangGCC
-    ++ lib.optionals stdenv.isDarwin [ libiconv CoreAudio AudioUnit ]
+    ++ lib.optionals stdenv.isDarwin [ libiconv CoreAudio AudioUnit VideoToolbox ]
     ++ flatten (concatMap (a: a.deps) opts);
 
   makeFlags = [ "LD=$(CC)" ];
diff --git a/pkgs/applications/audio/dragonfly-reverb/default.nix b/pkgs/applications/audio/dragonfly-reverb/default.nix
index a07dca699d793..4c62e6a8b6ade 100644
--- a/pkgs/applications/audio/dragonfly-reverb/default.nix
+++ b/pkgs/applications/audio/dragonfly-reverb/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dragonfly-reverb";
-  version = "3.2.5";
+  version = "3.2.6";
 
   src = fetchFromGitHub {
     owner = "michaelwillis";
     repo = "dragonfly-reverb";
     rev = version;
-    sha256 = "14kia9wjs0nqfx4psnr3vf4x6hihkf80gb0mjzmdnnnk4cnrdydm";
+    sha256 = "sha256-hTapy/wXt1rRZVdkx2RDW8LS/DcY30p+WaAWgemGqVo=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/audio/faustPhysicalModeling/default.nix b/pkgs/applications/audio/faustPhysicalModeling/default.nix
index f9dbd3f80f0c4..bea08b0bfc9f6 100644
--- a/pkgs/applications/audio/faustPhysicalModeling/default.nix
+++ b/pkgs/applications/audio/faustPhysicalModeling/default.nix
@@ -1,13 +1,13 @@
 { stdenv, lib, fetchFromGitHub, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   pname = "faustPhysicalModeling";
-  version = "2.37.3";
+  version = "2.40.0";
 
   src = fetchFromGitHub {
     owner = "grame-cncm";
     repo = "faust";
     rev = version;
-    sha256 = "sha256-h6L+qRkN2chnI4821WrjD3uRFw3J0sUYVLL8w57vR1U=";
+    sha256 = "sha256-t3I3j5s2ACHfub+fxxaTwu+5ptEwH0JQpVdmHYOzbCA=";
   };
 
   buildInputs = [ faust2jaqt faust2lv2 ];
diff --git a/pkgs/applications/audio/flac/default.nix b/pkgs/applications/audio/flac/default.nix
index 0b1a2edc3baab..621804840bf02 100644
--- a/pkgs/applications/audio/flac/default.nix
+++ b/pkgs/applications/audio/flac/default.nix
@@ -2,21 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flac";
-  version = "1.3.3";
+  version = "1.3.4";
 
   src = fetchurl {
     url = "http://downloads.xiph.org/releases/flac/${pname}-${version}.tar.xz";
-    sha256 = "0j0p9sf56a2fm2hkjnf7x3py5ir49jyavg4q5zdyd7bcf6yq4gi1";
+    sha256 = "0dz7am8kbc97a6afml1h4yp085274prg8j7csryds8m3fmz61w4g";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "CVE-2020-0499.patch";
-      url = "https://github.com/xiph/flac/commit/2e7931c27eb15e387da440a37f12437e35b22dd4.patch";
-      sha256 = "160qzq9ms5addz7sx06pnyjjkqrffr54r4wd8735vy4x008z71ah";
-    })
-  ];
-
   buildInputs = [ libogg ];
 
   #doCheck = true; # takes lots of time
diff --git a/pkgs/applications/audio/ft2-clone/default.nix b/pkgs/applications/audio/ft2-clone/default.nix
index 7e0fcf2717ebe..03c8e8d6ce699 100644
--- a/pkgs/applications/audio/ft2-clone/default.nix
+++ b/pkgs/applications/audio/ft2-clone/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ft2-clone";
-  version = "1.52";
+  version = "1.54";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "ft2-clone";
     rev = "v${version}";
-    sha256 = "sha256-RyZ3PV7jaTN3DEYMT0BqKDHbb+7/IgiRaCra1xA0h1A=";
+    sha256 = "sha256-lNiQ0X2vvPGubb4Pde+eh0Z6ClCQgigIUM+PddaiVUg=";
   };
 
   # Adapt the linux-only CMakeLists to darwin (more reliable than make-macos.sh)
diff --git a/pkgs/applications/audio/furnace/default.nix b/pkgs/applications/audio/furnace/default.nix
index 841a65e541fc1..115c5b7767d2e 100644
--- a/pkgs/applications/audio/furnace/default.nix
+++ b/pkgs/applications/audio/furnace/default.nix
@@ -1,7 +1,7 @@
 { stdenv
 , lib
 , gitUpdater
-, testVersion
+, testers
 , furnace
 , fetchFromGitHub
 , cmake
@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
       inherit pname version;
       rev-prefix = "v";
     };
-    tests.version = testVersion {
+    tests.version = testers.testVersion {
       package = furnace;
       # The command always exits with code 1
       command = "(furnace --version || [ $? -eq 1 ])";
diff --git a/pkgs/applications/audio/helio-workstation/default.nix b/pkgs/applications/audio/helio-workstation/default.nix
index b36d977b2bdf1..9801f2d2b2adc 100644
--- a/pkgs/applications/audio/helio-workstation/default.nix
+++ b/pkgs/applications/audio/helio-workstation/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation rec {
   pname = "helio-workstation";
-  version = "3.8";
+  version = "3.9";
 
   src = fetchFromGitHub {
     owner = "helio-fm";
     repo = pname;
     rev = version;
     fetchSubmodules = true;
-    sha256 = "sha256-uwRSOJ5WvDH4mfL9pCTCGzuSRT8SIBrI+Wsbumzejv0=";
+    sha256 = "sha256-AtgKgw+F5lc0Ma3zOxmk3iaZQp2KZb2FP5F8QvvYTT4=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/audio/hivelytracker/default.nix b/pkgs/applications/audio/hivelytracker/default.nix
index 4cf20e3c89852..8f9e3809fd2de 100644
--- a/pkgs/applications/audio/hivelytracker/default.nix
+++ b/pkgs/applications/audio/hivelytracker/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
     # files passed as arguments anyway, so this works well enough until the
     # issue is fixed.
     wrapProgram $out/bin/hivelytracker \
-      --run "cd $out/share/hivelytracker"
+      --chdir "$out/share/hivelytracker"
 
     # Also install the hvl2wav tool
     install -Dm755 hvl2wav/hvl2wav $out/bin/hvl2wav
diff --git a/pkgs/applications/audio/hqplayer-desktop/default.nix b/pkgs/applications/audio/hqplayer-desktop/default.nix
index 38b7e04060386..5cfd9c7cbe898 100644
--- a/pkgs/applications/audio/hqplayer-desktop/default.nix
+++ b/pkgs/applications/audio/hqplayer-desktop/default.nix
@@ -86,6 +86,7 @@ mkDerivation rec {
     homepage = "https://www.signalyst.com/custom.html";
     description = "High-end upsampling multichannel software HD-audio player";
     license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ lovesegfault ];
   };
 }
diff --git a/pkgs/applications/audio/jamesdsp/default.nix b/pkgs/applications/audio/jamesdsp/default.nix
index 16683564b2c76..61f8907f99ca1 100644
--- a/pkgs/applications/audio/jamesdsp/default.nix
+++ b/pkgs/applications/audio/jamesdsp/default.nix
@@ -2,18 +2,31 @@
 , mkDerivation
 , fetchFromGitHub
 , pipewire
+, pulseaudio
+, gst_all_1
 , glibmm
 , qmake
+, qtbase
+, qtsvg
+, wrapQtAppsHook
 , makeDesktopItem
 , pkg-config
 , libarchive
 , fetchpatch
+, copyDesktopItems
+, usePipewire ? true
+, usePulseaudio ? false
 }:
 
-mkDerivation rec{
+assert lib.asserts.assertMsg (usePipewire != usePulseaudio) "You need to enable one and only one of pulseaudio or pipewire support";
+
+let
+  pluginPath = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good ]);
+in
+  mkDerivation rec {
   pname = "jamesdsp";
   version = "2.3";
-  src = fetchFromGitHub rec{
+  src = fetchFromGitHub rec {
     owner = "Audio4Linux";
     repo = "JDSP4Linux";
     fetchSubmodules = true;
@@ -29,13 +42,30 @@ mkDerivation rec{
     })
   ];
 
-  nativeBuildInputs = [ qmake pkg-config ];
+  nativeBuildInputs = [
+    qmake
+    pkg-config
+    copyDesktopItems
+    wrapQtAppsHook
+  ];
+
   buildInputs = [
     glibmm
     libarchive
-    pipewire
+    qtbase
+    qtsvg
+  ] ++ lib.optional usePipewire pipewire
+  ++ lib.optionals usePulseaudio [
+    pulseaudio
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+    gst_all_1.gstreamer
   ];
 
+  qtWrapperArgs = lib.optionals usePulseaudio [ "--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : ${pluginPath}" ];
+
+  qmakeFlags = lib.optionals usePulseaudio [ "CONFIG+=USE_PULSEAUDIO" ];
+
   desktopItems = [
     (makeDesktopItem {
       name = "jamesdsp";
@@ -54,7 +84,7 @@ mkDerivation rec{
     description = "An audio effect processor for PipeWire clients";
     homepage = "https://github.com/Audio4Linux/JDSP4Linux";
     license = licenses.gpl3Only;
-    maintainers = with maintainers;[ pasqui23 ];
+    maintainers = with maintainers; [ pasqui23 rewine ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/jmusicbot/default.nix b/pkgs/applications/audio/jmusicbot/default.nix
index 60df749a14268..94290ada7b353 100644
--- a/pkgs/applications/audio/jmusicbot/default.nix
+++ b/pkgs/applications/audio/jmusicbot/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "JMusicBot";
-  version = "0.3.6";
+  version = "0.3.8";
 
   src = fetchurl {
     url = "https://github.com/jagrosh/MusicBot/releases/download/${version}/JMusicBot-${version}.jar";
-    sha256 = "sha256-Hc3dsOADC+jVZScY19OYDkHimntMjdw/BoB3EUS/d0k=";
+    sha256 = "sha256-wzmrh9moY6oo3RqOy9Zl1X70BZlvbJkQmz8BaBIFtIM=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/applications/audio/libopenmpt/default.nix b/pkgs/applications/audio/libopenmpt/default.nix
deleted file mode 100644
index b2b5ebecd7e23..0000000000000
--- a/pkgs/applications/audio/libopenmpt/default.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ config, lib, stdenv, fetchurl, fetchpatch, zlib, pkg-config, mpg123, libogg, libvorbis, portaudio, libsndfile, flac
-, usePulseAudio ? config.pulseaudio or stdenv.isLinux, libpulseaudio }:
-
-stdenv.mkDerivation rec {
-  pname = "libopenmpt";
-  version = "0.5.11";
-
-  outputs = [ "out" "lib" "dev" ];
-
-  src = fetchurl {
-    url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
-    sha256 = "1c54lldr2imjzhlhq5lvwhj7d5794xm97cby9pznr5wdjjay0sa4";
-  };
-
-  patches = [
-    # Fix pending upstream inclusion for gcc-12 include headers:
-    #  https://github.com/OpenMPT/openmpt/pull/8
-    (fetchpatch {
-      name = "gcc-12.patch";
-      url = "https://github.com/OpenMPT/openmpt/commit/6e7a43190ef2f9ba0b3efc19b9527261b69ec8f7.patch";
-      sha256 = "081m1rf09bbrlg52aihaajmld5dcnwbp6y7zpyik92mm332r330h";
-    })
-  ];
-
-  enableParallelBuilding = true;
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ zlib mpg123 libogg libvorbis portaudio libsndfile flac ]
-  ++ lib.optional usePulseAudio libpulseaudio;
-
-  configureFlags = lib.optional (!usePulseAudio) "--without-pulseaudio";
-
-  doCheck = true;
-
-  meta = with lib; {
-    description = "A cross-platform command-line based module file player";
-    homepage = "https://lib.openmpt.org/libopenmpt/";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ OPNA2608 ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/applications/audio/lollypop/default.nix b/pkgs/applications/audio/lollypop/default.nix
index 7c93760d2ca31..8b6e1c7aa4caa 100644
--- a/pkgs/applications/audio/lollypop/default.nix
+++ b/pkgs/applications/audio/lollypop/default.nix
@@ -25,7 +25,7 @@
 
 python3.pkgs.buildPythonApplication rec  {
   pname = "lollypop";
-  version = "1.4.26";
+  version = "1.4.31";
 
   format = "other";
   doCheck = false;
@@ -34,7 +34,7 @@ python3.pkgs.buildPythonApplication rec  {
     url = "https://gitlab.gnome.org/World/lollypop";
     rev = "refs/tags/${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-Q/z9oET06DimMRZl03TgjEeheoVHtIkH+Z69qWZetcI=";
+    sha256 = "sha256-kWqTDhk7QDmN0yr6x8ER5oHkUAkP3i5yOabnNXSHSqA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/losslessaudiochecker/default.nix b/pkgs/applications/audio/losslessaudiochecker/default.nix
index 551f56a3ce145..9fecf7b9ba924 100644
--- a/pkgs/applications/audio/losslessaudiochecker/default.nix
+++ b/pkgs/applications/audio/losslessaudiochecker/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
     description = "Utility to check whether audio is truly lossless or not";
     homepage = "https://losslessaudiochecker.com";
     license = lib.licenses.unfree;
-    platforms = lib.platforms.x86_64;
+    platforms = [ "x86_64-linux" ];
     maintainers = with lib.maintainers; [ p-h ];
   };
 }
diff --git a/pkgs/applications/audio/lyrebird/default.nix b/pkgs/applications/audio/lyrebird/default.nix
index 81c792d95e2dc..055662ce743f8 100644
--- a/pkgs/applications/audio/lyrebird/default.nix
+++ b/pkgs/applications/audio/lyrebird/default.nix
@@ -42,7 +42,7 @@ python3Packages.buildPythonApplication rec {
   makeWrapperArgs = [
     "--prefix 'PATH' ':' '${lib.makeBinPath [ sox pulseaudio ]}'"
     "--prefix 'PYTHONPATH' ':' '${placeholder "out"}/share/lyrebird'"
-    "--run 'cd ${placeholder "out"}/share/lyrebird'"
+    "--chdir '${placeholder "out"}/share/lyrebird'"
     ''"''${gappsWrapperArgs[@]}"''
   ];
 
diff --git a/pkgs/applications/audio/moc/default.nix b/pkgs/applications/audio/moc/default.nix
index 1d26782b6ae02..4abf799d01551 100644
--- a/pkgs/applications/audio/moc/default.nix
+++ b/pkgs/applications/audio/moc/default.nix
@@ -1,7 +1,8 @@
 { lib, stdenv, fetchurl, pkg-config
 , ncurses, db , popt, libtool
+, libiconv, CoreServices
 # Sound sub-systems
-, alsaSupport ? true, alsa-lib
+, alsaSupport ? (!stdenv.isDarwin), alsa-lib
 , pulseSupport ? true, libpulseaudio, autoreconfHook
 , jackSupport ? true, libjack2
 , ossSupport ? true
@@ -64,7 +65,8 @@ in stdenv.mkDerivation rec {
     ++ opt wavpackSupport wavpack
     # Misc
     ++ opt curlSupport curl
-    ++ opt samplerateSupport libsamplerate;
+    ++ opt samplerateSupport libsamplerate
+    ++ lib.optionals stdenv.isDarwin [ libiconv CoreServices ];
 
   configureFlags = [
     # Sound sub-systems
@@ -97,6 +99,6 @@ in stdenv.mkDerivation rec {
     homepage = "http://moc.daper.net/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ aethelz pSub jagajaga ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/audio/ncspot/default.nix b/pkgs/applications/audio/ncspot/default.nix
index fc7ab505ac2df..f2d912a786147 100644
--- a/pkgs/applications/audio/ncspot/default.nix
+++ b/pkgs/applications/audio/ncspot/default.nix
@@ -7,20 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ncspot";
-  version = "0.9.5";
+  version = "0.9.7";
 
   src = fetchFromGitHub {
     owner = "hrkfdn";
     repo = "ncspot";
     rev = "v${version}";
-    sha256 = "sha256-HnP0dXKkMssDAhrsA99bTCVGdov9t5+1y8fJ+BWTM80=";
+    sha256 = "sha256-s2rWn6EK+io/yxQiWsWuXpqLOGd0F6ehWqVqgHBGZd0=";
   };
 
-  # Upstream now only supports rust 1.58+, but this version is not yet available in nixpkgs.
-  # See https://github.com/hrkfdn/ncspot/issues/714
-  patches = [ ./rust_1_57_support.patch ];
-
-  cargoSha256 = "sha256-g6UMwirsSV+/NtFIfEZrz5h/OitPQcDeSawh7wq4TLI=";
+  cargoSha256 = "sha256-aorRy5j3VaOIibuHc6gf6HuB3g739T59vzbybehPirc=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/applications/audio/ncspot/rust_1_57_support.patch b/pkgs/applications/audio/ncspot/rust_1_57_support.patch
deleted file mode 100644
index ce4d473989c31..0000000000000
--- a/pkgs/applications/audio/ncspot/rust_1_57_support.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/src/ui/listview.rs b/src/ui/listview.rs
-index 17fead7..e6c72b6 100644
---- a/src/ui/listview.rs
-+++ b/src/ui/listview.rs
-@@ -85,7 +85,7 @@ impl<I: ListItem> ListView<I> {
- 
-     pub fn content_height_with_paginator(&self) -> usize {
-         let content_len = self.content.read().unwrap().len();
--        log::info!("content len: {content_len}");
-+        log::info!("content len: {}", content_len);
- 
-         // add 1 more row for paginator if we can paginate
-         if self.can_paginate() {
-@@ -97,7 +97,7 @@ impl<I: ListItem> ListView<I> {
- 
-     fn can_paginate(&self) -> bool {
-         let loaded = self.get_pagination().loaded_content();
--        log::info!("can paginate: {loaded}");
-+        log::info!("can paginate: {}", loaded);
-         self.get_pagination().max_content().unwrap_or(0) > self.get_pagination().loaded_content()
-     }
diff --git a/pkgs/applications/audio/ocenaudio/default.nix b/pkgs/applications/audio/ocenaudio/default.nix
index 50697c6c81a9e..c927d8997ed82 100644
--- a/pkgs/applications/audio/ocenaudio/default.nix
+++ b/pkgs/applications/audio/ocenaudio/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ocenaudio";
-  version = "3.11.7";
+  version = "3.11.10";
 
   src = fetchurl {
     url = "https://www.ocenaudio.com/downloads/index.php/ocenaudio_debian9_64.deb?version=${version}";
-    sha256 = "sha256-fTeDRo7gCM1jXTQGm9MsmKu4KvTGDUogF3VSZWk91RM=";
+    sha256 = "sha256-Ah6Ni5EbFdIQ/wN7uGeMrSP5ybQfI4iy9gI1VT5LztU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/odin2/default.nix b/pkgs/applications/audio/odin2/default.nix
new file mode 100644
index 0000000000000..f0bd5e0156483
--- /dev/null
+++ b/pkgs/applications/audio/odin2/default.nix
@@ -0,0 +1,79 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, alsa-lib
+, freetype
+, libjack2
+, lv2
+, libX11
+, libXcursor
+, libXext
+, libXinerama
+, libXrandr
+, libGL
+, gcc-unwrapped
+}:
+
+stdenv.mkDerivation rec {
+  pname = "odin2";
+  version = "unstable-2022-02-23";
+
+  src = fetchFromGitHub {
+    owner = "baconpaul";
+    repo = "odin2";
+    rev = "ed02d06cfb5db8a118d291c00bd2e4cd6e262cde";
+    fetchSubmodules = true;
+    sha256 = "sha256-VkZ+mqCmqWQafdN0nQxJdPxbiaZ37/0jOhLvVbnGLvQ=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    alsa-lib
+    freetype
+    libjack2
+    lv2
+    libX11
+    libXcursor
+    libXext
+    libXinerama
+    libXrandr
+    libGL
+  ];
+
+  # JUCE dlopen's these at runtime, crashes without them
+  NIX_LDFLAGS = (toString [
+    "-lX11"
+    "-lXext"
+    "-lXcursor"
+    "-lXinerama"
+    "-lXrandr"
+  ]);
+
+  cmakeFlags = [
+    "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
+    "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
+    "-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
+  ];
+
+  installPhase = ''
+    mkdir -p $out/bin $out/lib/vst3
+    cd Odin2_artefacts/Release
+    cp -r VST3/Odin2.vst3 $out/lib/vst3
+    cp -r Standalone/Odin2 $out/bin
+'';
+
+
+  meta = with lib; {
+    description = "Odin 2 Synthesizer Plugin";
+    homepage = "https://thewavewarden.com/odin2";
+    license = licenses.gpl3;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ magnetophon ];
+  };
+}
diff --git a/pkgs/applications/audio/osdlyrics/default.nix b/pkgs/applications/audio/osdlyrics/default.nix
new file mode 100644
index 0000000000000..0c14b8be2b6b8
--- /dev/null
+++ b/pkgs/applications/audio/osdlyrics/default.nix
@@ -0,0 +1,87 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+
+, autoreconfHook
+, pkg-config
+, intltool
+
+, glib
+, gtk2
+, dbus-glib
+, libappindicator-gtk2
+, libnotify
+, python3
+, runtimeShell
+}:
+
+stdenv.mkDerivation rec {
+  pname = "osdlyrics";
+  version = "0.5.10";
+
+  src = fetchFromGitHub {
+    owner = "osdlyrics";
+    repo = "osdlyrics";
+    rev = version;
+    sha256 = "sha256-x9gIT1JkfPIc4RmmQJLv9rOG2WqAftoTK5uiRlS65zU=";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+    intltool
+  ];
+
+  buildInputs = [
+    glib
+    gtk2
+    dbus-glib
+    libappindicator-gtk2
+    libnotify
+    python3.pkgs.wrapPython
+    (python3.withPackages (pp: with pp; [
+      chardet
+      dbus-python
+      future
+      pycurl
+      pygobject3
+    ]))
+  ];
+
+  postFixup = ''
+    extractExecLine() {
+      serviceFile=$1
+      program=$2
+
+      execLine=$(grep --only-matching --perl-regexp 'Exec=\K(.+)' "$serviceFile")
+      echo "#!${runtimeShell}" > "$program"
+      echo "exec $execLine" >> "$program"
+      chmod +x "$program"
+
+      substituteInPlace "$serviceFile" \
+        --replace "Exec=$execLine" "Exec=$program"
+    }
+
+    # Extract the exec line into a separate program so that it can be wrapped.
+    mkdir -p "$out/libexec/osdlyrics/"
+    for svcFile in "$out/share/dbus-1/services"/*; do
+      svc=$(basename "$svcFile" ".service")
+      if grep "python" "$svcFile"; then
+        extractExecLine "$svcFile" "$out/libexec/osdlyrics/$svc"
+      fi
+    done
+
+    for p in "$out/bin/osdlyrics-create-lyricsource" "$out/bin/osdlyrics-daemon" "$out/libexec/osdlyrics"/*; do
+      wrapProgram "$p" \
+        --prefix PYTHONPATH : "$out/${python3.sitePackages}"
+    done
+  '';
+
+  meta = with lib; {
+    description = "Standalone lyrics fetcher/displayer";
+    homepage = "https://github.com/osdlyrics/osdlyrics";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ jtojnar ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/parlatype/default.nix b/pkgs/applications/audio/parlatype/default.nix
deleted file mode 100644
index c1bb1102bf1b6..0000000000000
--- a/pkgs/applications/audio/parlatype/default.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, meson, gtk3, at-spi2-core, dbus, gst_all_1, sphinxbase, pocketsphinx, ninja, gettext, appstream-glib, python3, glib, gobject-introspection, gsettings-desktop-schemas, itstool, wrapGAppsHook, hicolor-icon-theme }:
-
-stdenv.mkDerivation rec {
-  pname = "parlatype";
-  version = "2.1";
-
-  src = fetchFromGitHub {
-    owner  = "gkarsay";
-    repo   = pname;
-    rev    = "v${version}";
-    sha256 = "1k53q0kbwpnbgyr0lmfzf5sm4f93d8nbjrzdz9pdhzpxgihndg25";
-  };
-
-  nativeBuildInputs = [
-    pkg-config
-    meson
-    ninja
-    gettext
-    appstream-glib
-    python3
-    gobject-introspection
-    itstool
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    gtk3
-    at-spi2-core
-    dbus
-    gst_all_1.gstreamer
-    gst_all_1.gst-plugins-base
-    gst_all_1.gst-plugins-good
-    gst_all_1.gst-plugins-bad
-    gst_all_1.gst-plugins-ugly
-    gst_all_1.gst-libav
-    sphinxbase
-    pocketsphinx
-    glib
-    gsettings-desktop-schemas
-    hicolor-icon-theme
-  ];
-
-  postPatch = ''
-    chmod +x data/meson_post_install.py
-    patchShebangs data/meson_post_install.py
-  '';
-
-  doCheck = false;
-
-  buildPhase = ''
-    export GST_PLUGIN_SYSTEM_PATH_1_0="$out/lib/gstreamer-1.0/:$GST_PLUGIN_SYSTEM_PATH_1_0"
-  '';
-
-  meta = with lib; {
-    description = "GNOME audio player for transcription";
-    longDescription = ''
-      Parlatype is a minimal audio player for manual speech transcription, written for the GNOME desktop environment.
-      It plays audio sources to transcribe them in your favourite text application.
-      It’s intended to be useful for journalists, students, scientists and whoever needs to transcribe audio files.
-    '';
-    homepage = "https://gkarsay.github.io/parlatype/";
-    license = licenses.gpl3Plus;
-    maintainers = [ maintainers.melchips ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/applications/audio/pianobar/default.nix b/pkgs/applications/audio/pianobar/default.nix
index c5ef0352503fc..9949fce8b09c7 100644
--- a/pkgs/applications/audio/pianobar/default.nix
+++ b/pkgs/applications/audio/pianobar/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pianobar";
-  version = "2020.11.28";
+  version = "2022.04.01";
 
   src = fetchurl {
     url = "https://6xq.net/projects/pianobar/${pname}-${version}.tar.bz2";
-    sha256 = "1znlwybfpxsjqr1jmr8j0ci8wzmpzmk2yxb0qcx9w9a8nnbgnfv5";
+    sha256 = "sha256-FnCyiGWouCpXu23+p/FuL6QUXS81SRC7FzgLMsm5R2M=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/audio/pipecontrol/default.nix b/pkgs/applications/audio/pipecontrol/default.nix
new file mode 100644
index 0000000000000..4acba5d75ee0f
--- /dev/null
+++ b/pkgs/applications/audio/pipecontrol/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pipewire
+, cmake
+, extra-cmake-modules
+, gnumake
+, wrapQtAppsHook
+, qtbase
+, qttools
+, kirigami2
+, kcoreaddons
+, ki18n
+, qtquickcontrols2
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pipecontrol";
+  version = "0.2.2";
+
+  src = fetchFromGitHub {
+    owner = "portaloffreedom";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-BeubRDx82MQX1gB7GnGJlQ2FyYX1S83C3gqPZgIjgoM=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+    wrapQtAppsHook
+    qttools
+  ];
+
+  buildInputs = [
+    pipewire
+    qtbase
+    kirigami2
+    kcoreaddons
+    ki18n
+    qtquickcontrols2
+  ];
+
+  meta = with lib; {
+    description = "Pipewire control GUI program in Qt (Kirigami2)";
+    homepage = "https://github.com/portaloffreedom/pipecontrol";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ tilcreator ];
+  };
+}
diff --git a/pkgs/applications/audio/plexamp/default.nix b/pkgs/applications/audio/plexamp/default.nix
index d86223dcdcb1f..fa76b50f8ae62 100644
--- a/pkgs/applications/audio/plexamp/default.nix
+++ b/pkgs/applications/audio/plexamp/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "plexamp";
-  version = "4.1.0";
+  version = "4.2.0";
 
   src = fetchurl {
     url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
     name="${pname}-${version}.AppImage";
-    sha512 = "N+WkH6n7MWfRd2rsk/2b/rABL6pcjpKa1iBZSHslIOEc5fYWjGAxjwwTU0RgSaqptS1DyPeCUeWuphWPZJsQgw==";
+    sha512 = "yIdZoKTJJEpUzEqvixQ7JJBxzrtCRov31dGBDOjMiK/oA2q00Xo6XVDvAhYuIn6ocZqK+I5jHfmf4qYaRePDvg==";
   };
 
   appimageContents = appimageTools.extractType2 {
@@ -33,7 +33,7 @@ in appimageTools.wrapType2 {
   meta = with lib; {
     description = "A beautiful Plex music player for audiophiles, curators, and hipsters";
     homepage = "https://plexamp.com/";
-    changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/42";
+    changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/43";
     license = licenses.unfree;
     maintainers = with maintainers; [ killercup synthetica ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/pt2-clone/default.nix b/pkgs/applications/audio/pt2-clone/default.nix
index 2577f61e8d518..8b586c455e3bf 100644
--- a/pkgs/applications/audio/pt2-clone/default.nix
+++ b/pkgs/applications/audio/pt2-clone/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pt2-clone";
-  version = "1.43";
+  version = "1.46";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "pt2-clone";
     rev = "v${version}";
-    sha256 = "sha256-+sHGjgDqizv/9n0dDj8knsl+4MBfO3/pMkmD+MPsuNM=";
+    sha256 = "sha256-xRq37hjuMiGxsWRnZ/ryXYLvQpjbfQEjQkMjjuqL7r8=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/audio/puddletag/default.nix b/pkgs/applications/audio/puddletag/default.nix
index 701e6fffbbb89..936fb2f54ecae 100644
--- a/pkgs/applications/audio/puddletag/default.nix
+++ b/pkgs/applications/audio/puddletag/default.nix
@@ -17,6 +17,7 @@
 let
   # NOTE: check if we can drop any of these overrides when bumping the version
   overrideVersions = [
+    "lxml"
     "pyparsing"
     "pyqt5"
   ];
diff --git a/pkgs/applications/audio/pulseaudio-modules-bt/default.nix b/pkgs/applications/audio/pulseaudio-modules-bt/default.nix
deleted file mode 100644
index 331bce3e8be31..0000000000000
--- a/pkgs/applications/audio/pulseaudio-modules-bt/default.nix
+++ /dev/null
@@ -1,91 +0,0 @@
-{ stdenv
-, runCommand
-, fetchFromGitHub
-, pulseaudio
-, pkg-config
-, ffmpeg
-, patchelf
-, fdk_aac
-, libtool
-, ldacbt
-, cmake
-, bluez
-, dbus
-, sbc
-, lib
-}:
-
-let
-  pulseSources = runCommand "pulseaudio-sources" {} ''
-    mkdir $out
-    if [ -d ${pulseaudio.src} ]; then
-      ln -s ${pulseaudio.src}/* $out/
-    else
-      tar -xf ${pulseaudio.src}
-      mv pulseaudio*/* $out/
-    fi
-  '';
-
-in stdenv.mkDerivation rec {
-  pname = "pulseaudio-modules-bt";
-  version = "1.4";
-
-  src = fetchFromGitHub {
-    owner = "EHfive";
-    repo = "pulseaudio-modules-bt";
-    rev = "v${version}";
-    sha256 = "0bzg6x405j39axnkvc6n6vkl1hv1frk94y1i9sl170081bk23asd";
-  };
-
-  patches = [
-    ./fix-install-path.patch
-  ];
-
-  nativeBuildInputs = [
-    pkg-config
-    patchelf
-    cmake
-  ];
-
-  buildInputs = [
-    pulseaudio
-    ffmpeg
-    fdk_aac
-    libtool
-    ldacbt
-    bluez
-    dbus
-    sbc
-  ];
-
-  postPatch = ''
-    # Upstream bundles pulseaudio as a submodule
-    rm -r pa
-    ln -s ${pulseSources} pa
-
-    # Pulseaudio version is detected with a -rebootstrapped suffix which build system assumptions
-    substituteInPlace config.h.in --replace PulseAudio_VERSION ${pulseaudio.version}
-    substituteInPlace CMakeLists.txt --replace '${"\${PULSE_DIR}"}' ${pulseaudio.pulseDir}
-
-    # Fraunhofer recommends to enable afterburner but upstream has it set to false by default
-    substituteInPlace src/modules/bluetooth/a2dp/a2dp_aac.c \
-      --replace "info->aac_afterburner = false;" "info->aac_afterburner = true;"
-  '';
-
-  postFixup = ''
-    for so in $out/lib/pulse-${pulseaudio.version}/modules/*.so; do
-      orig_rpath=$(patchelf --print-rpath "$so")
-      patchelf \
-        --set-rpath "${ldacbt}/lib:${lib.getLib ffmpeg}/lib:$out/${pulseaudio.pulseDir}/modules:$orig_rpath" \
-        "$so"
-    done
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/EHfive/pulseaudio-modules-bt";
-    description = "LDAC, aptX, aptX HD, AAC codecs (A2DP Audio) support for Linux PulseAudio";
-    platforms = platforms.linux;
-    license = licenses.mit;
-    maintainers = with maintainers; [ adisbladis ];
-  };
-}
diff --git a/pkgs/applications/audio/pulseaudio-modules-bt/fix-install-path.patch b/pkgs/applications/audio/pulseaudio-modules-bt/fix-install-path.patch
deleted file mode 100644
index 7cdb7de4dd13e..0000000000000
--- a/pkgs/applications/audio/pulseaudio-modules-bt/fix-install-path.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 8d20dbf..63fe7ba 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -213,5 +213,4 @@ INSTALL(TARGETS
-         module-bluez5-device
-         module-bluetooth-discover
-         module-bluetooth-policy
--        LIBRARY DESTINATION ${PulseAudio_modlibexecdir})
--
-+        LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/${PULSE_DIR}/modules/)
diff --git a/pkgs/applications/audio/qpwgraph/default.nix b/pkgs/applications/audio/qpwgraph/default.nix
index 860eca652e7a5..e415798b46049 100644
--- a/pkgs/applications/audio/qpwgraph/default.nix
+++ b/pkgs/applications/audio/qpwgraph/default.nix
@@ -5,14 +5,14 @@
 
 mkDerivation rec {
   pname = "qpwgraph";
-  version = "0.2.2";
+  version = "0.2.5";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "rncbc";
     repo = "qpwgraph";
     rev = "v${version}";
-    sha256 = "sha256-BBvF1L3IqkYqSghHxcbwOBizdu6GtxaWof3Q/bc+aTY=";
+    sha256 = "sha256-OYIBlTO1vXmmY4/ZacvsEQ5EnOfetBvnG2v5xL44czY=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
@@ -29,6 +29,6 @@ mkDerivation rec {
     homepage = "https://gitlab.freedesktop.org/rncbc/qpwgraph";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ kanashimia ];
+    maintainers = with maintainers; [ kanashimia exi ];
   };
 }
diff --git a/pkgs/applications/audio/sfizz/default.nix b/pkgs/applications/audio/sfizz/default.nix
index 54acc782c6037..aaa79bd3e3922 100644
--- a/pkgs/applications/audio/sfizz/default.nix
+++ b/pkgs/applications/audio/sfizz/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv, fetchFromGitHub, libjack2, libsndfile, xorg, freetype
 , libxkbcommon, cairo, glib, gnome, flac, libogg, libvorbis, libopus, cmake
-, pango, pkg-config }:
+, pango, pkg-config, catch2
+}:
 
 stdenv.mkDerivation rec {
   pname = "sfizz";
@@ -40,6 +41,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config ];
 
   postPatch = ''
+    cp ${catch2}/include/catch2/catch.hpp tests/catch2/catch.hpp
+
     substituteInPlace plugins/editor/external/vstgui4/vstgui/lib/platform/linux/x11fileselector.cpp \
       --replace 'zenitypath = "zenity"' 'zenitypath = "${gnome.zenity}/bin/zenity"'
     substituteInPlace plugins/editor/src/editor/NativeHelpers.cpp \
@@ -48,6 +51,8 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" "-DSFIZZ_TESTS=ON" ];
 
+  doCheck = true;
+
   meta = with lib; {
     homepage = "https://github.com/sfztools/sfizz";
     description = "SFZ jack client and LV2 plugin";
diff --git a/pkgs/applications/audio/sfxr-qt/default.nix b/pkgs/applications/audio/sfxr-qt/default.nix
index 0ffd754c04766..2b264cfd56b99 100644
--- a/pkgs/applications/audio/sfxr-qt/default.nix
+++ b/pkgs/applications/audio/sfxr-qt/default.nix
@@ -8,6 +8,7 @@
 , qtquickcontrols2
 , SDL
 , python3
+, catch2
 , callPackage
 , nixosTests
 }:
@@ -24,6 +25,10 @@ mkDerivation rec {
     fetchSubmodules = true;
   };
 
+  postPatch = ''
+    cp ${catch2}/include/catch2/catch.hpp 3rdparty/catch2/single_include/catch2/catch.hpp
+  '';
+
   # Remove on next release
   patches = [(fetchpatch {
     name = "sfxr-qr-missing-qpainterpath-include";
@@ -43,6 +48,8 @@ mkDerivation rec {
     SDL
   ];
 
+  doCheck = true;
+
   passthru.tests = {
     export-square-wave = callPackage ./test-export-square-wave {};
     sfxr-qt-starts = nixosTests.sfxr-qt;
diff --git a/pkgs/applications/audio/shortwave/default.nix b/pkgs/applications/audio/shortwave/default.nix
index 49492d05d15f1..4642565e678ea 100644
--- a/pkgs/applications/audio/shortwave/default.nix
+++ b/pkgs/applications/audio/shortwave/default.nix
@@ -14,28 +14,29 @@
 , ninja
 , openssl
 , pkg-config
-, python3
 , rustPlatform
 , sqlite
-, wrapGAppsHook
+, wrapGAppsHook4
+, cmake
+, libshumate
 }:
 
 stdenv.mkDerivation rec {
   pname = "shortwave";
-  version = "2.0.1";
+  version = "3.0.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "Shortwave";
     rev = version;
-    sha256 = "sha256-25qPb7qlqCwYJzl4qZxAZYx5asxSlXBlc/0dGyBdk1o=";
+    sha256 = "sha256-qwk63o9pfqpAm6l9ioj3RccacemQU8R6LF6El4yHkjQ";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-00dQXcSNmdZb2nSLG3q7jm4sugF9XR4LbH0OmcuHVxA=";
+    hash = "sha256-YrB322nv9CgZqt5//VMvVwjWA51ePlX2PI6raRJGBxA=";
   };
 
   nativeBuildInputs = [
@@ -46,11 +47,11 @@ stdenv.mkDerivation rec {
     meson
     ninja
     pkg-config
-    python3
     rustPlatform.rust.cargo
     rustPlatform.cargoSetupHook
     rustPlatform.rust.rustc
-    wrapGAppsHook
+    wrapGAppsHook4
+    cmake
   ];
 
   buildInputs = [
@@ -61,6 +62,7 @@ stdenv.mkDerivation rec {
     libadwaita
     openssl
     sqlite
+    libshumate
   ] ++ (with gst_all_1; [
     gstreamer
     gst-plugins-base
@@ -68,10 +70,6 @@ stdenv.mkDerivation rec {
     gst-plugins-bad
   ]);
 
-  postPatch = ''
-    patchShebangs build-aux/meson/postinstall.py
-  '';
-
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/World/Shortwave";
     description = "Find and listen to internet radio stations";
@@ -80,7 +78,6 @@ stdenv.mkDerivation rec {
       desktop. It is the successor to the older Gradio application.
     '';
     maintainers = with maintainers; [ lasandell ];
-    broken = true; # incompatible with latest libadwaita
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/audio/sonixd/default.nix b/pkgs/applications/audio/sonixd/default.nix
new file mode 100644
index 0000000000000..961fa2c8c1cd1
--- /dev/null
+++ b/pkgs/applications/audio/sonixd/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, fetchurl
+, appimageTools
+}:
+
+appimageTools.wrapType2 rec {
+  pname = "sonixd";
+  version = "0.15.1";
+
+  src = fetchurl {
+    url = "https://github.com/jeffvli/sonixd/releases/download/v${version}/Sonixd-${version}-linux-x86_64.AppImage";
+    sha256 = "sha256-23WU1nwvrzyw0J+Pplm3JbsScjJxu+RhmwVoe/PjozY=";
+  };
+
+  extraInstallCommands = ''
+    mv $out/bin/sonixd-${version} $out/bin/sonixd
+  '';
+
+  meta = with lib; {
+    description = "Full-featured Subsonic/Jellyfin compatible desktop music player";
+    homepage = "https://github.com/jeffvli/sonixd";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ onny ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
+
diff --git a/pkgs/applications/audio/soundwireserver/default.nix b/pkgs/applications/audio/soundwireserver/default.nix
index 17660599b6890..db8d28989b27a 100755
--- a/pkgs/applications/audio/soundwireserver/default.nix
+++ b/pkgs/applications/audio/soundwireserver/default.nix
@@ -34,6 +34,7 @@ qt5.mkDerivation {
     description = "Turn your Android device into wireless headphones / wireless speaker";
     homepage = "https://georgielabs.net/";
     maintainers = with maintainers; [ mkg20001 ];
+    platforms = [ "x86_64-linux" ];
     license = licenses.unfree;
   };
 }
diff --git a/pkgs/applications/audio/spot/default.nix b/pkgs/applications/audio/spot/default.nix
index 3fe3b0d06d31d..7dab868b941a4 100644
--- a/pkgs/applications/audio/spot/default.nix
+++ b/pkgs/applications/audio/spot/default.nix
@@ -21,19 +21,19 @@
 
 stdenv.mkDerivation rec {
   pname = "spot";
-  version = "0.3.1";
+  version = "0.3.3";
 
   src = fetchFromGitHub {
     owner = "xou816";
     repo = "spot";
     rev = version;
-    hash = "sha256-uZzylK9imEazwC/ogsDO8ZBvByE5/SNSV+mIlp7Z9Ww=";
+    hash = "sha256-0iuLZq9FSxaOchxx6LzGwpY8qnOq2APl/qkBYzEV2uw=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-v5xdlsI6OlEpCYOTFePTyI8BkIrAwT6FR2JwiRTGgOA=";
+    hash = "sha256-g46BkrTv6tdrGe/p245O4cBoPjbvyRP7U6hH1Hp4ja0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/spotify-tui/default.nix b/pkgs/applications/audio/spotify-tui/default.nix
index 7395ca85d9f6d..055034df4ce2e 100644
--- a/pkgs/applications/audio/spotify-tui/default.nix
+++ b/pkgs/applications/audio/spotify-tui/default.nix
@@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Rigellute/spotify-tui/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ jwijenbergh ];
+    mainProgram = "spt";
   };
 }
diff --git a/pkgs/applications/audio/strawberry/default.nix b/pkgs/applications/audio/strawberry/default.nix
index ee77144104c2e..1ea01353f80ab 100644
--- a/pkgs/applications/audio/strawberry/default.nix
+++ b/pkgs/applications/audio/strawberry/default.nix
@@ -72,6 +72,7 @@ mkDerivation rec {
   ] ++ lib.optionals withGstreamer (with gst_all_1; [
     glib-networking
     gstreamer
+    gst-libav
     gst-plugins-base
     gst-plugins-good
     gst-plugins-bad
diff --git a/pkgs/applications/audio/whipper/default.nix b/pkgs/applications/audio/whipper/default.nix
index a7a8f054172cd..f06907ad32f2c 100644
--- a/pkgs/applications/audio/whipper/default.nix
+++ b/pkgs/applications/audio/whipper/default.nix
@@ -8,6 +8,8 @@
 , flac
 , sox
 , util-linux
+, testers
+, whipper
 }:
 
 let
@@ -45,6 +47,7 @@ in python3.pkgs.buildPythonApplication rec {
     ruamel-yaml
     discid
     pillow
+    setuptools
   ];
 
   buildInputs = [ libsndfile ];
@@ -71,6 +74,11 @@ in python3.pkgs.buildPythonApplication rec {
     runHook postCheck
   '';
 
+  passthru.tests.version = testers.testVersion {
+    package = whipper;
+    command = "HOME=$TMPDIR whipper --version";
+  };
+
   meta = with lib; {
     homepage = "https://github.com/whipper-team/whipper";
     description = "A CD ripper aiming for accuracy over speed";
diff --git a/pkgs/applications/audio/x42-plugins/default.nix b/pkgs/applications/audio/x42-plugins/default.nix
index 0a6ad4bdc4cde..4e2bb5600d3bc 100644
--- a/pkgs/applications/audio/x42-plugins/default.nix
+++ b/pkgs/applications/audio/x42-plugins/default.nix
@@ -3,12 +3,12 @@
 , libGLU, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }:
 
 stdenv.mkDerivation rec {
-  version = "20220107";
+  version = "20220327";
   pname = "x42-plugins";
 
   src = fetchurl {
     url = "https://gareus.org/misc/x42-plugins/${pname}-${version}.tar.xz";
-    sha256 = "sha256-+lzgkRQHe6moid3h6az/iqt2XL5vbyM0BjSTwMBvd3I=";
+    sha256 = "sha256-IhuPqTlCbCxExT5B9Au42RQQl4sDEvz6+HhsuT02KVs=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/blockchains/alfis/default.nix b/pkgs/applications/blockchains/alfis/default.nix
index 28ce7512129e4..d42ee291cf050 100644
--- a/pkgs/applications/blockchains/alfis/default.nix
+++ b/pkgs/applications/blockchains/alfis/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "alfis";
-  version = "0.6.11";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "Revertron";
     repo = "Alfis";
     rev = "v${version}";
-    sha256 = "sha256-vm/JBJh58UaSem18RpJuPUzM2GCy4RfCb6Hr1B7KWQA=";
+    sha256 = "sha256-lamobXaDY+v8NpoI+TuuBO5Cdol9+7VPhdmLEH6sZIo=";
   };
 
-  cargoSha256 = "sha256-8ijGO8up0qVQ/kVX5/DveKyovYLh7jm+d7vooS1waAA=";
+  cargoSha256 = "sha256-C5MCT4EG/lI4s2rVGSm9DgBu43FKpp3iTBbCf7N1jOA=";
 
   checkFlags = [
     # these want internet access, disable them
diff --git a/pkgs/applications/blockchains/chia-plotter/default.nix b/pkgs/applications/blockchains/chia-plotter/default.nix
index 51ca4469bc484..25d4d8653466b 100644
--- a/pkgs/applications/blockchains/chia-plotter/default.nix
+++ b/pkgs/applications/blockchains/chia-plotter/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation {
   pname = "chia-plotter";
-  version = "1.1.7";
+  version = "1.1.8";
 
   src = fetchFromGitHub {
     owner = "madMAx43v3r";
     repo = "chia-plotter";
-    rev = "18cad340858f0dbcc8dafd0bda1ce1af0fe58c65";
-    sha256 = "sha256-lXjeqcjn3+LtnVYngdM1T3on7V7wez4oOAZ0RpKJXMM=";
+    rev = "9d7fd929919d1adde6404cb4718a665a81bcef6d";
+    sha256 = "sha256-TMAly+Qof2DHPRHqE1nZuHQaCeMo0jEd8MWy4OlXrcs=";
     fetchSubmodules = true;
   };
 
@@ -25,10 +25,17 @@ stdenv.mkDerivation {
       src = ./dont_fetch_dependencies.patch;
       pybind11_src = python3Packages.pybind11.src;
       relic_src = fetchFromGitHub {
-        owner = "relic-toolkit";
+        owner = "Chia-Network";
         repo = "relic";
-        rev = "1885ae3b681c423c72b65ce1fe70910142cf941c";
-        hash = "sha256-tsSZTcssl8t7Nqdex4BesgQ+ACPgTdtHnJFvS9josN0=";
+        rev = "1d98e5abf3ca5b14fd729bd5bcced88ea70ecfd7";
+        hash = "sha256-IfTD8DvTEXeLUoKe4Ejafb+PEJW5DV/VXRYuutwGQHU=";
+      };
+      sodium_src = fetchFromGitHub {
+        owner = "AmineKhaldi";
+        repo = "libsodium-cmake";
+        rev = "f73a3fe1afdc4e37ac5fe0ddd401bf521f6bba65"; # pinned by upstream
+        sha256 = "sha256-lGz7o6DQVAuEc7yTp8bYS2kwjzHwGaNjugDi1ruRJOA=";
+        fetchSubmodules = true;
       };
     })
   ];
diff --git a/pkgs/applications/blockchains/chia-plotter/dont_fetch_dependencies.patch b/pkgs/applications/blockchains/chia-plotter/dont_fetch_dependencies.patch
index 05486473eef5a..b7474af4c9634 100644
--- a/pkgs/applications/blockchains/chia-plotter/dont_fetch_dependencies.patch
+++ b/pkgs/applications/blockchains/chia-plotter/dont_fetch_dependencies.patch
@@ -11,30 +11,43 @@ index 255e3bb..5f99c3a 100644
 +  SOURCE_DIR @pybind11_src@
  )
  FetchContent_MakeAvailable(pybind11 relic)
- 
-diff --git a/lib/bls-signatures/src/CMakeLists.txt b/lib/bls-signatures/src/CMakeLists.txt
-index b762b5d..e06073b 100644
---- a/lib/bls-signatures/src/CMakeLists.txt
-+++ b/lib/bls-signatures/src/CMakeLists.txt
-@@ -4,18 +4,11 @@ set (CMAKE_CXX_STANDARD 17)
- # CMake 3.14+
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6922167..23d8da6 100644
+--- a/lib/bls-signatures/CMakeLists.txt
++++ b/lib/bls-signatures/CMakeLists.txt
+@@ -31,29 +31,18 @@ set(CMAKE_MODULE_PATH
  include(FetchContent)
  
+ FetchContent_Declare(Sodium
+-  GIT_REPOSITORY https://github.com/AmineKhaldi/libsodium-cmake.git
+-  # Latest commit at the moment this was added here
+-  # Anchored to libsodium v1.0.18
+-  GIT_TAG f73a3fe1afdc4e37ac5fe0ddd401bf521f6bba65
++  URL @sodium_src@
+ )
+ set(SODIUM_PCH "on" CACHE STRING "")
+ set(SODIUM_DISABLE_TESTS "on" CACHE STRING "")
+ set(SODIUM_CHIA_MINIMAL "on" CACHE STRING "")
+ FetchContent_MakeAvailable(Sodium)
+ 
 -if (DEFINED ENV{RELIC_MAIN})
 -  set(RELIC_GIT_TAG "origin/main")
 -else ()
--  set(RELIC_GIT_TAG "1885ae3b681c423c72b65ce1fe70910142cf941c")
+-  # This is currently anchored to upstream aecdcae7956f542fbee2392c1f0feb0a8ac41dc5
+-  set(RELIC_GIT_TAG "1d98e5abf3ca5b14fd729bd5bcced88ea70ecfd7")
 -endif ()
 -
  message(STATUS "Relic will be built from: ${RELIC_GIT_TAG}")
  
  FetchContent_Declare(
    relic
--  GIT_REPOSITORY https://github.com/relic-toolkit/relic.git
--  GIT_TAG        ${RELIC_GIT_TAG}
+-  GIT_REPOSITORY https://github.com/Chia-Network/relic.git
+-  GIT_TAG ${RELIC_GIT_TAG}
 +  SOURCE_DIR @relic_src@
  )
- FetchContent_MakeAvailable(relic)
+ 
+ # Relic related options
  
 diff --git a/CMakeLists.txt b/CMakeLists.txt
 index 970ec74..948441a 100644
diff --git a/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index 6dc644fbb968a..59166149e6a6e 100644
--- a/pkgs/applications/blockchains/ledger-live-desktop/default.nix
+++ b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "ledger-live-desktop";
-  version = "2.39.2";
+  version = "2.40.4";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
-    hash = "sha256-zVefF5CsyVVMNffec/xwA3KmMtZepM51C3Xh0ZCGl0c=";
+    hash = "sha256-ktmGXEWoCrhx9hGau2VkQi0GMa53EqHV1wGtUk6kicc=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/blockchains/lightning-loop/default.nix b/pkgs/applications/blockchains/lightning-loop/default.nix
index 2f4caad32553a..6e99e8fe4122c 100644
--- a/pkgs/applications/blockchains/lightning-loop/default.nix
+++ b/pkgs/applications/blockchains/lightning-loop/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "lightning-loop";
-  version = "0.17.0-beta";
+  version = "0.18.0-beta";
 
   src = fetchFromGitHub {
     owner = "lightninglabs";
     repo = "loop";
     rev = "v${version}";
-    sha256 = "0hjawagn1dfgj67i52bvf3phvm9f9708z3jqs6cvyz0w7vp107py";
+    sha256 = "1kg5nlvb4lb3cjn84wcylhq0l73d2n6rg4n1srnxmgs96v41y78f";
   };
 
-  vendorSha256 = "1fpc73hwdn3baz5ykrykvqdr5861gj9p6liy8qll5525kdv560f6";
+  vendorSha256 = "0q3wbjfaqdj29sjlhx6fhc0p4d12aa31s6ia36jalcvf659ybb0l";
 
   subPackages = [ "cmd/loop" "cmd/loopd" ];
 
diff --git a/pkgs/applications/blockchains/lndmanage/default.nix b/pkgs/applications/blockchains/lndmanage/default.nix
index ebbe653c96b20..c9e655448d28d 100644
--- a/pkgs/applications/blockchains/lndmanage/default.nix
+++ b/pkgs/applications/blockchains/lndmanage/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "lndmanage";
-  version = "0.14.0";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "bitromortac";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-wPr/R+WGACyhv2Qh9JeLJwvr2vQfxpqj2XjEkrRoSX4=";
+    hash = "sha256-c36AbND01bUr0Klme4fU7GrY1oYcmoEREQI9cwsK7YM=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/applications/blockchains/nearcore/default.nix b/pkgs/applications/blockchains/nearcore/default.nix
new file mode 100644
index 0000000000000..f9f0bd0c69bfb
--- /dev/null
+++ b/pkgs/applications/blockchains/nearcore/default.nix
@@ -0,0 +1,42 @@
+{ rustPlatform, lib, fetchFromGitHub
+, zlib, elfutils, openssl
+, cmake, python3, pkg-config, protobuf, perl, llvmPackages
+}:
+rustPlatform.buildRustPackage rec {
+  #https://github.com/near/nearcore
+  pname = "nearcore";
+  version = "1.25.0";
+  src = fetchFromGitHub {
+    owner = "near";
+    repo = "nearcore";
+    # there is also a branch for this version number, so we need to be explicit
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-7hiBqJLGIf+kNKJvMQ7KtGZm/SWLY3pT7YDlwbm3HDM=";
+  };
+
+  cargoSha256 = "sha256-EGv4CibSHL9oTAdWK7d/SOzZWPcEB16hTWlWHjKU4wc=";
+
+  # don't build SDK samples that require wasm-enabled rust
+  cargoBuildFlags = [ "-p" "neard" ];
+  doCheck = false; # needs network
+
+  buildInputs = [ zlib elfutils openssl ];
+  nativeBuildInputs = [
+    cmake
+    python3
+    pkg-config
+    protobuf
+    perl
+  ];
+
+  LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
+  BINDGEN_EXTRA_CLANG_ARGS = "-isystem ${llvmPackages.libclang.lib}/lib/clang/${lib.getVersion llvmPackages.clang}/include";
+
+  meta = with lib; {
+    description = "Reference client for NEAR Protocol";
+    homepage = "https://github.com/near/nearcore";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mic92 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/blockchains/openethereum/default.nix b/pkgs/applications/blockchains/openethereum/default.nix
index 79ab37c7adb5d..e9f5374f6ee4d 100644
--- a/pkgs/applications/blockchains/openethereum/default.nix
+++ b/pkgs/applications/blockchains/openethereum/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "openethereum";
-  version = "3.2.6";
+  version = "3.3.5";
 
   src = fetchFromGitHub {
     owner = "openethereum";
     repo = "openethereum";
     rev = "v${version}";
-    sha256 = "0lxps3cyg8dzb9qr1kg91s9jc3mnm6hxybwcbhva38pcq4yc40xc";
+    sha256 = "sha256-PpRRoufuZ9fXbLonMAo6qaA/jtJZXW98uM0BEXdJ2oU=";
   };
 
-  cargoSha256 = "08yrpls3szmw6vy2c4d6b1k907ga0809ylvyx0zb6f8mp8z7ahl2";
+  cargoSha256 = "sha256-xXUNXQvVq6XqW/hmCfJ2/mHKkZu0amRZ77vX+Jib0iM=";
 
   nativeBuildInputs = [ cmake pkg-config ];
 
diff --git a/pkgs/applications/blockchains/solana/default.nix b/pkgs/applications/blockchains/solana/default.nix
index 0eb48b19c88f5..a91d1f3905348 100644
--- a/pkgs/applications/blockchains/solana/default.nix
+++ b/pkgs/applications/blockchains/solana/default.nix
@@ -10,19 +10,23 @@
 , zlib
 , protobuf
 }:
+let
+  pinData = lib.importJSON ./pin.json;
+  version = pinData.version;
+  sha256 = pinData.sha256;
+  cargoSha256 = pinData.cargoSha256;
+in
 rustPlatform.buildRustPackage rec {
   pname = "solana-testnet-cli";
-  version = "1.9.2";
+  inherit version cargoSha256;
 
   src = fetchFromGitHub {
     owner = "solana-labs";
     repo = "solana";
     rev = "v${version}";
-    sha256 = "sha256-wrv35vBohLztMZPb6gfZdCaXcjj/Y7vnQqINaI6dBM4=";
+    inherit sha256;
   };
 
-  cargoSha256 = "sha256-A5uVa+cRmrkVyw7MFH4QAr0VIFi18wcc2VPFvQyT9EM=";
-
   buildAndTestSubdir = "cli";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ protobuf pkg-config ];
@@ -53,4 +57,5 @@ rustPlatform.buildRustPackage rec {
     maintainers = with maintainers; [ happysalada ];
     platforms = platforms.unix;
   };
+  passthru.updateScript = ./update.sh;
 }
diff --git a/pkgs/applications/blockchains/solana/pin.json b/pkgs/applications/blockchains/solana/pin.json
new file mode 100644
index 0000000000000..34ef479795927
--- /dev/null
+++ b/pkgs/applications/blockchains/solana/pin.json
@@ -0,0 +1,5 @@
+{
+  "version": "1.10.9",
+  "sha256": "sha256-y7+ogMJ5E9E/+ZaTCHWOQWG7iR+BGuVqvlNUDT++Ghc=",
+  "cargoSha256": "sha256-7EULmmztt+INvSdluvvX5xbE2hWKAmHiW0MEYIPNPw4="
+}
diff --git a/pkgs/applications/blockchains/solana/update.sh b/pkgs/applications/blockchains/solana/update.sh
new file mode 100755
index 0000000000000..ffd8b0010cc26
--- /dev/null
+++ b/pkgs/applications/blockchains/solana/update.sh
@@ -0,0 +1,33 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i oil -p jq sd nix-prefetch-github ripgrep
+
+# TODO set to `verbose` or `extdebug` once implemented in oil
+shopt --set xtrace
+# we need failures inside of command subs to get the correct cargoSha256
+shopt --unset inherit_errexit
+
+const directory = $(dirname $0 | xargs realpath)
+const owner = "solana-labs"
+const repo = "solana"
+const latest_rev = $(curl -q https://api.github.com/repos/${owner}/${repo}/releases/latest | \
+  jq -r '.tag_name')
+const latest_version = $(echo $latest_rev | sd 'v' '')
+const current_version = $(jq -r '.version' $directory/pin.json)
+if ("$latest_version" === "$current_version") {
+  echo "solana is already up-to-date"
+  return 0
+} else {
+  const tarball_meta = $(nix-prefetch-github $owner $repo --rev "$latest_rev")
+  const tarball_hash = "sha256-$(echo $tarball_meta | jq -r '.sha256')"
+
+  jq ".version = \"$latest_version\" | \
+      .\"sha256\" = \"$tarball_hash\" | \
+      .\"cargoSha256\" = \"\"" $directory/pin.json | sponge $directory/pin.json
+
+  const new_cargo_sha256 = $(nix-build -A solana-testnet 2>&1 | \
+    tail -n 2 | \
+    head -n 1 | \
+    sd '\s+got:\s+' '')
+
+  jq ".cargoSha256 = \"$new_cargo_sha256\"" $directory/pin.json | sponge $directory/pin.json
+}
diff --git a/pkgs/applications/blockchains/stellar-core/default.nix b/pkgs/applications/blockchains/stellar-core/default.nix
index 6ecc4e241cb4e..f89ad0eb7800b 100644
--- a/pkgs/applications/blockchains/stellar-core/default.nix
+++ b/pkgs/applications/blockchains/stellar-core/default.nix
@@ -1,22 +1,26 @@
 { lib, stdenv, fetchFromGitHub, autoconf, libtool, automake, pkg-config, git
-, bison, flex, postgresql, ripgrep }:
+, bison, flex, postgresql, ripgrep, libunwind }:
 
 stdenv.mkDerivation rec {
   pname = "stellar-core";
-  version = "17.0.0";
+  version = "18.5.0";
 
   src = fetchFromGitHub {
     owner = "stellar";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ngl8yjqb8xzhdwzlxzzxf14q2hgwy2ysb17sn5380rrn0jswin1";
+    sha256 = "sha256-wEi22R4zb8d5CJV5eWb776Yob8B6Ok4FrbYI0SGM0H8=";
     fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ automake autoconf git libtool pkg-config ripgrep ];
 
+  buildInputs = [ libunwind ];
+
   propagatedBuildInputs = [ bison flex postgresql ];
 
+  enableParallelBuilding = true;
+
   preConfigure = ''
     # Due to https://github.com/NixOS/nixpkgs/issues/8567 we cannot rely on
     # having the .git directory present, so directly provide the version
diff --git a/pkgs/applications/blockchains/wasabibackend/default.nix b/pkgs/applications/blockchains/wasabibackend/default.nix
index c7f594e31b490..784b01192f706 100644
--- a/pkgs/applications/blockchains/wasabibackend/default.nix
+++ b/pkgs/applications/blockchains/wasabibackend/default.nix
@@ -32,7 +32,7 @@ buildDotnetModule rec {
 
   preConfigure = ''
     makeWrapperArgs+=(
-      --run "cd $out/lib/${pname}"
+      --chdir "$out/lib/${pname}"
     )
   '';
 
diff --git a/pkgs/applications/blockchains/zcash/default.nix b/pkgs/applications/blockchains/zcash/default.nix
index 8dc15e7c9d85d..5e9f4200141bc 100644
--- a/pkgs/applications/blockchains/zcash/default.nix
+++ b/pkgs/applications/blockchains/zcash/default.nix
@@ -1,24 +1,24 @@
 { rust, rustPlatform, stdenv, lib, fetchFromGitHub, autoreconfHook, makeWrapper
-, cargo, pkg-config, curl, coreutils, boost175, db62, hexdump, libsodium
+, cargo, pkg-config, curl, coreutils, boost177, db62, hexdump, libsodium
 , libevent, utf8cpp, util-linux, withDaemon ? true, withMining ? true
 , withUtils ? true, withWallet ? true, withZmq ? true, zeromq
 }:
 
 rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec {
   pname = "zcash";
-  version = "4.6.0-1";
+  version = "4.6.0-2";
 
   src = fetchFromGitHub {
     owner = "zcash";
     repo  = "zcash";
     rev = "v${version}";
-    sha256 = "sha256-YJ5ufo+LYbOTr9SyiEzzp1pcSx6+cHSvDLBOIcx9X+4=";
+    sha256 = "sha256-RvUa8CKPBFfsqzrJkPHePZMqpCfyVafrUbftMdTviHA=";
   };
 
-  cargoSha256 = "sha256-m/SBHv3BNYKkSXxHnCdVng3blbHrTc/HxX/nEIa1DnM=";
+  cargoSha256 = "sha256-qWimataBZ/rLDOLgetNfFAzi/psXcJV54b3WGm9k+b4=";
 
   nativeBuildInputs = [ autoreconfHook cargo hexdump makeWrapper pkg-config ];
-  buildInputs = [ boost175 libevent libsodium utf8cpp ]
+  buildInputs = [ boost177 libevent libsodium utf8cpp ]
     ++ lib.optional withWallet db62
     ++ lib.optional withZmq zeromq;
 
@@ -37,7 +37,7 @@ rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec {
 
   configureFlags = [
     "--disable-tests"
-    "--with-boost-libdir=${lib.getLib boost175}/lib"
+    "--with-boost-libdir=${lib.getLib boost177}/lib"
     "CXXFLAGS=-I${lib.getDev utf8cpp}/include/utf8cpp"
     "RUST_TARGET=${rust.toRustTargetSpec stdenv.hostPlatform}"
   ] ++ lib.optional (!withWallet) "--disable-wallet"
diff --git a/pkgs/applications/editors/android-studio/common.nix b/pkgs/applications/editors/android-studio/common.nix
index 12324088b0401..ac293faee3b53 100644
--- a/pkgs/applications/editors/android-studio/common.nix
+++ b/pkgs/applications/editors/android-studio/common.nix
@@ -216,9 +216,9 @@ in runCommand
       # source-code itself).
       platforms = [ "x86_64-linux" ];
       maintainers = with maintainers; rec {
-        stable = [ fabianhjr ];
-        beta = [ fabianhjr ];
-        canary = [ fabianhjr ];
+        stable = [ ];
+        beta = [ ];
+        canary = [ ];
         dev = canary;
       }."${channel}";
     };
diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix
index e7824cd93f1c0..39bbff2565254 100644
--- a/pkgs/applications/editors/android-studio/default.nix
+++ b/pkgs/applications/editors/android-studio/default.nix
@@ -9,16 +9,16 @@ let
     inherit buildFHSUserEnv;
   };
   stableVersion = {
-    version = "2021.1.1.21"; # "Android Studio Bumblebee (2021.1.1 Patch 1)"
-    sha256Hash = "PeMJIILfaunTlpR4EV76qQlTlZDcWoKes61qe9W9oqQ=";
+    version = "2021.1.1.23"; # "Android Studio Bumblebee (2021.1.1 Patch 3)"
+    sha256Hash = "1kxb19qf7bs5lyfgr8vamakp1nf2wlxlwwni1kihza67ib6hcxdk";
   };
   betaVersion = {
-    version = "2021.2.1.8"; # "Android Studio Chipmunk (2021.2.1) Beta 1"
-    sha256Hash = "bPfs4kw7czG9CbEgrzn0bQXdT03jyqPVqtaIuVBFSmc=";
+    version = "2021.2.1.11"; # "Android Studio Chipmunk (2021.2.1) Beta 4"
+    sha256Hash = "0in8x6v957y9hsnz5ak845pdpvgvnvlm0s6r9y8f27zkm947vbjd";
   };
   latestVersion = { # canary & dev
-    version = "2021.3.1.1"; # "Android Studio Dolphin (2021.3.1) Canary 1"
-    sha256Hash = "W3pNQBM7WdDScQo5b8q5Va5NTgl73uZu0ks/zDMb4aA=";
+    version = "2021.3.1.7"; # "Android Studio Dolphin (2021.3.1) Canary 7"
+    sha256Hash = "02jwy3q2ccs7l3snm8w40znzk54v2h1sljdr3d0yh7sy0qyn32k1";
   };
 in {
   # Attributes are named by their corresponding release channels
diff --git a/pkgs/applications/editors/bluej/default.nix b/pkgs/applications/editors/bluej/default.nix
index b8a651b2d44fa..bfc413c24ad44 100644
--- a/pkgs/applications/editors/bluej/default.nix
+++ b/pkgs/applications/editors/bluej/default.nix
@@ -1,8 +1,9 @@
-{ lib, stdenv, fetchurl, makeWrapper, jdk }:
+{ lib, stdenv, fetchurl, jdk, glib, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "bluej";
   version = "5.0.3";
+
   src = fetchurl {
     # We use the deb here. First instinct might be to go for the "generic" JAR
     # download, but that is actually a graphical installer that is much harder
@@ -11,18 +12,44 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-OarqmptxZc7xEEYeoCVqHXkAvfzfSYx5nUp/iWPyoqw=";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ wrapGAppsHook ];
+  buildInputs = [ glib ];
 
-  unpackPhase = ''
-    ar xf $src
-    tar xf data.tar.xz
+  sourceRoot = ".";
+  preUnpack = ''
+    unpackCmdHooks+=(_tryDebData)
+    _tryDebData() {
+      if ! [[ "$1" =~ \.deb$ ]]; then return 1; fi
+      ar xf "$1"
+      if ! [[ -e data.tar.xz ]]; then return 1; fi
+      unpackFile data.tar.xz
+    }
   '';
 
   installPhase = ''
-    mkdir -p $out
-    cp -r usr/* $out
+    runHook preInstall
+
+    if [ -n "$prefix" ]; then
+        mkdir -p "$prefix"
+    fi
+
+    mkdir -p "$out"
+
+    if shopt -q dotglob; then dotglobOpt=$?; else dotglobOpt=$?; fi
+    shopt -s dotglob
+    for file in usr/*; do
+      cp -R "$file" "$out"
+    done
+    if (( !dotglobOpt )); then shopt -u dotglob; fi
+
+    runHook postInstall
+  '';
+
+  dontWrapGApps = true;
 
+  preFixup = ''
     makeWrapper ${jdk}/bin/java $out/bin/bluej \
+      "''${gappsWrapperArgs[@]}" \
       --add-flags "-Djavafx.embed.singleThread=true -Dawt.useSystemAAFontSettings=on -Xmx512M -cp \"$out/share/bluej/bluej.jar\" bluej.Boot"
   '';
 
@@ -30,7 +57,7 @@ stdenv.mkDerivation rec {
     description = "A simple integrated development environment for Java";
     homepage = "https://www.bluej.org/";
     license = licenses.gpl2ClasspathPlus;
-    maintainers = [ maintainers.chvp ];
+    maintainers = with maintainers; [ chvp ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/editors/cudatext/default.nix b/pkgs/applications/editors/cudatext/default.nix
index d142551a11415..ea07b3dfd60b3 100644
--- a/pkgs/applications/editors/cudatext/default.nix
+++ b/pkgs/applications/editors/cudatext/default.nix
@@ -38,13 +38,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "cudatext";
-  version = "1.159.2";
+  version = "1.162.5";
 
   src = fetchFromGitHub {
     owner = "Alexey-T";
     repo = "CudaText";
     rev = version;
-    sha256 = "sha256-dSZd+Dsln7xUfN/cqTZSdnpnINHsDCBrbNGcDLwqzzU=";
+    sha256 = "sha256-CQ0TPZH9A37WK+gm7jgCxL5eF+1SxHlsJTTzMVRkHIs=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/editors/cudatext/deps.json b/pkgs/applications/editors/cudatext/deps.json
index 430061e0eb726..c66ec2c121c8d 100644
--- a/pkgs/applications/editors/cudatext/deps.json
+++ b/pkgs/applications/editors/cudatext/deps.json
@@ -1,23 +1,23 @@
 {
   "EncConv": {
     "owner": "Alexey-T",
-    "rev": "2022.03.02",
-    "sha256": "sha256-fBN6Ix5CqhzMbNrWGn6nw6+JRDmEfqe6o8JGHERkiPE="
+    "rev": "2022.04.18",
+    "sha256": "sha256-UV07a9qNzd0JQWCq/eD0K9fA7kxAKj5OP7dOpECo8xw="
   },
   "ATBinHex-Lazarus": {
     "owner": "Alexey-T",
-    "rev": "2021.11.17",
-    "sha256": "sha256-wdYH0sISFNx42zt07gLn9ANxcyrq3WrbRhWfTFgPQWw="
+    "rev": "2022.04.16",
+    "sha256": "sha256-7ye73KSpoPvvxBNwBC3uloufFE+448RDyNScumk1ViE="
   },
   "ATFlatControls": {
     "owner": "Alexey-T",
-    "rev": "2022.03.17",
-    "sha256": "sha256-zpirFZcqIT53tZhgxQGdwVB6pA98SQLr1o3f+Lhq2QY="
+    "rev": "2022.04.18",
+    "sha256": "sha256-Bp/pkbTPLiVaDSstzTaNjKb+msPw8Tuny75n/aYBpUc="
   },
   "ATSynEdit": {
     "owner": "Alexey-T",
-    "rev": "2022.03.23",
-    "sha256": "sha256-D/pQ4TSWUaL97Nau3bGi7rc8MxnvuoDcD7HDNEDwmsk="
+    "rev": "2022.04.21",
+    "sha256": "sha256-rPbQ3LNBXNHi9dgQKSaaCsuAY/VIzgq9tqlRXRl2IqU="
   },
   "ATSynEdit_Cmp": {
     "owner": "Alexey-T",
@@ -26,13 +26,13 @@
   },
   "EControl": {
     "owner": "Alexey-T",
-    "rev": "2022.03.28",
-    "sha256": "sha256-jh3lqisiPNMxCapP6O5oJdUL3PLQ3JyomtgWix+bML0="
+    "rev": "2022.04.21",
+    "sha256": "sha256-le6ulGFUNjeipYQKzVFezFb9u/0IcQcu5BMxFaIZdyw="
   },
   "ATSynEdit_Ex": {
     "owner": "Alexey-T",
-    "rev": "2022.03.28",
-    "sha256": "sha256-TpAaL7/bhnrQgAq1mUTdEWXecSmznWy/iAw+TMMrQGo="
+    "rev": "2022.04.11",
+    "sha256": "sha256-wzE6lNhrXsBOP+Zx+qAcj6Hhf87qqDaqKf9up7I3ZUo="
   },
   "Python-for-Lazarus": {
     "owner": "Alexey-T",
diff --git a/pkgs/applications/editors/emacs/27.nix b/pkgs/applications/editors/emacs/27.nix
deleted file mode 100644
index 436785c34f686..0000000000000
--- a/pkgs/applications/editors/emacs/27.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-import ./generic.nix (rec {
-  version = "27.2";
-  sha256 = "sha256-tKfMTnjmPzeGJOCRkhW5EK9bsqCvyBn60pgnLp9Awbk=";
-  patches = fetchpatch: [
-    (fetchpatch {
-      name = "fix-aarch64-darwin-triplet.patch";
-      url = "https://git.savannah.gnu.org/cgit/emacs.git/patch/?id=a88f63500e475f842e5fbdd9abba4ce122cdb082";
-      sha256 = "sha256-RF9b5PojFUAjh2TDUW4+HaWveV30Spy1iAXhaWf1ZVg=";
-    })
-  ];
-})
diff --git a/pkgs/applications/editors/emacs/28.nix b/pkgs/applications/editors/emacs/28.nix
new file mode 100644
index 0000000000000..e66917ab93f0e
--- /dev/null
+++ b/pkgs/applications/editors/emacs/28.nix
@@ -0,0 +1,5 @@
+import ./generic.nix (rec {
+  version = "28.1";
+  sha256 = "sha256-KLGz0JkDegiPCkyiUdfnJi6rXqFneqv/psRCaWGtdeE=";
+  patches = _: [ ];
+})
diff --git a/pkgs/applications/editors/emacs/at-fdcwd.patch b/pkgs/applications/editors/emacs/at-fdcwd.patch
deleted file mode 100644
index 2d8099b737369..0000000000000
--- a/pkgs/applications/editors/emacs/at-fdcwd.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/lib/careadlinkat.h b/lib/careadlinkat.h
-index 84ede3e..8e8f42e 100644
---- a/lib/careadlinkat.h
-+++ b/lib/careadlinkat.h
-@@ -23,6 +23,10 @@
- #include <fcntl.h>
- #include <unistd.h>
- 
-+#ifndef AT_FDCWD
-+#define AT_FDCWD -2
-+#endif
-+
- struct allocator;
- 
- /* Assuming the current directory is FD, get the symbolic link value
diff --git a/pkgs/applications/editors/emacs/elisp-packages/cedet/default.nix b/pkgs/applications/editors/emacs/elisp-packages/cedet/default.nix
deleted file mode 100644
index 31106654ae6c7..0000000000000
--- a/pkgs/applications/editors/emacs/elisp-packages/cedet/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ lib, fetchurl, stdenv, emacs, python }:
-
-stdenv.mkDerivation rec {
-  pname = "cedet";
-  version = "1.1";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/cedet/cedet-${version}.tar.gz";
-    sha256 = "0p2bwlpwwa019axvgj09xkxbr53j0pq23d46s4la9jfhl47nbh22";
-  };
-
-  buildInputs = [ emacs python ];
-
-  doCheck = true;
-  checkPhase = "make utest";
-
-  installPhase = ''
-    mkdir -p "$out/share/emacs/site-lisp"
-    cp -v */*.el */*/*.el */*.elc */*/*.elc "$out/share/emacs/site-lisp"
-    chmod a-x "$out/share/emacs/site-lisp/"*
-
-    mkdir -p "$out/share/info"
-    cp -v */*.info* */*/*.info* "$out/share/info"
-  '';
-
-  meta = {
-    description = "CEDET, a Collection of Emacs Development Environment Tools";
-
-    longDescription = ''
-      CEDET is a collection of tools written with the end goal of
-      creating an advanced development environment in Emacs.
-
-      Emacs already is a great environment for writing software, but
-      there are additional areas that need improvement.  Many new
-      ideas for integrated environments have been developed in newer
-      products, such as JBuilder, Eclipse, or KDevelop.  CEDET is a
-      project which brings together several different tools needed to
-      implement advanced features.
-
-      CEDET includes EIEIO (Enhanced Implementation of Emacs
-      Interpreted Objects), Semantic, SRecode, Speedbar, EDE (Emacs
-      Development Environment), and COGRE (COnnected GRaph Editor).
-    '';
-
-    license = lib.licenses.gpl2Plus;
-
-    homepage = "http://cedet.sourceforge.net/";
-
-    # Fails with `semantic-idle.el:42:1:Error: Invalid function: class-p`
-    broken = true;
-  };
-}
diff --git a/pkgs/applications/editors/emacs/elisp-packages/control-lock/default.nix b/pkgs/applications/editors/emacs/elisp-packages/control-lock/default.nix
new file mode 100644
index 0000000000000..82ea42aa2b83e
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/control-lock/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "control-lock";
+
+  src = fetchurl {
+    url = "https://github.com/emacsmirror/emacswiki.org/blob/185fdc34fb1e02b43759ad933d3ee5646b0e78f8/control-lock.el";
+    sha256 = "1b5xcgq2r565pr1c14dwrmn1fl05p56infapa5pqvajv2kpfla7h";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install $src $out/share/emacs/site-lisp/control-lock.el
+  '';
+
+  meta = {
+    description = "Like caps-lock, but for your control key.  Give your pinky a rest!";
+    homepage = "https://www.emacswiki.org/emacs/control-lock.el";
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix b/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
index 49c1b6248cac7..1b39e522a4126 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
@@ -234,10 +234,10 @@
       elpaBuild {
         pname = "auctex";
         ename = "auctex";
-        version = "13.1.1";
+        version = "13.1.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/auctex-13.1.1.tar";
-          sha256 = "193sqq2wiq3lg99m8hifl9rjxdazpy638r99sqvmxmkfm98cr34r";
+          url = "https://elpa.gnu.org/packages/auctex-13.1.2.tar";
+          sha256 = "0j79y7iz0g3i36w5l91l2dljs8b4sx42f7q25z2963mvhfvrbp10";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -309,10 +309,10 @@
       elpaBuild {
         pname = "bbdb";
         ename = "bbdb";
-        version = "3.2.1";
+        version = "3.2.2.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/bbdb-3.2.1.tar";
-          sha256 = "01vsnifs47krq1srgdkk9agbv3p2fykl9nydr4nrfjxbqpnyh3ij";
+          url = "https://elpa.gnu.org/packages/bbdb-3.2.2.1.tar";
+          sha256 = "060nd6vhwwh56jc1mvmyj6mn6kx7zgmbhrkfv9sqdx7h96bcrsbh";
         };
         packageRequires = [ cl-lib emacs ];
         meta = {
@@ -384,10 +384,10 @@
       elpaBuild {
         pname = "boxy";
         ename = "boxy";
-        version = "1.0.4";
+        version = "1.0.5";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/boxy-1.0.4.tar";
-          sha256 = "0cwzjyj8yjg13b63va6pnj01m6kc5g3zx69c9w2ysl2wk24zn6dz";
+          url = "https://elpa.gnu.org/packages/boxy-1.0.5.tar";
+          sha256 = "0g608nhg160p9gflw52h3247x35r0g6bl89yq35jbsc7fnw6m5ry";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -654,6 +654,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    comint-mime = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "comint-mime";
+        ename = "comint-mime";
+        version = "0.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/comint-mime-0.1.tar";
+          sha256 = "1ak0ylqdslsb6a64dkpvappdbqnl1i8lc17jla9pqqs7r16sh3n0";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/comint-mime.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     compact-docstrings = callPackage ({ elpaBuild, fetchurl, lib }:
       elpaBuild {
         pname = "compact-docstrings";
@@ -737,6 +752,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    compat = callPackage ({ elpaBuild, emacs, fetchurl, lib, nadvice }:
+      elpaBuild {
+        pname = "compat";
+        ename = "compat";
+        version = "28.1.0.3";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/compat-28.1.0.3.tar";
+          sha256 = "12h06ab57hhjq434cf39g69ain6dpqq8a0h9xc91kvjsiz9chqhd";
+        };
+        packageRequires = [ emacs nadvice ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/compat.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     consult = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "consult";
@@ -771,10 +801,10 @@
       elpaBuild {
         pname = "corfu";
         ename = "corfu";
-        version = "0.20";
+        version = "0.21";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/corfu-0.20.tar";
-          sha256 = "03yycimbqs4ixz7lxp7f1b4fipq6kl2bbjnl87r0n9x8mzfslbdl";
+          url = "https://elpa.gnu.org/packages/corfu-0.21.tar";
+          sha256 = "1jabx61ajiysd3yqkraanlx9gnkz1qs6d94wjc5a2ran58iyknyr";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -876,10 +906,10 @@
       elpaBuild {
         pname = "csv-mode";
         ename = "csv-mode";
-        version = "1.18";
+        version = "1.19";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/csv-mode-1.18.tar";
-          sha256 = "0fv7hvsfbc9n4hsgg3ywk8qf4ig5a986zfq0lwnjj8pcz1bpmrxj";
+          url = "https://elpa.gnu.org/packages/csv-mode-1.19.tar";
+          sha256 = "0sslxlnw10ba6m711p4ps4zsfjz56dsp2945ga5z0y8d860pliqh";
         };
         packageRequires = [ cl-lib emacs ];
         meta = {
@@ -951,10 +981,10 @@
       elpaBuild {
         pname = "debbugs";
         ename = "debbugs";
-        version = "0.31";
+        version = "0.32";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/debbugs-0.31.tar";
-          sha256 = "11vdjrn5m5g6pirw8jv0602fbwwgdhazfrrwxxplii8x02gqk0sr";
+          url = "https://elpa.gnu.org/packages/debbugs-0.32.tar";
+          sha256 = "1xp3mj3ndaljma0g7x9abziphgi2a6j8k1v52sb8xwgn4p5gdvby";
         };
         packageRequires = [ emacs soap-client ];
         meta = {
@@ -2273,10 +2303,10 @@
       elpaBuild {
         pname = "kind-icon";
         ename = "kind-icon";
-        version = "0.1.4";
+        version = "0.1.5";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/kind-icon-0.1.4.tar";
-          sha256 = "00pyvnq4dx51l2wbhvm6k6cx5xmy32j4h1lkr5kr8s3j5w83ip25";
+          url = "https://elpa.gnu.org/packages/kind-icon-0.1.5.tar";
+          sha256 = "0qajj89vkgc9gbgff6akzll53jy0kgkv6c9jvwpl32rbg8v0wp63";
         };
         packageRequires = [ emacs svg-lib ];
         meta = {
@@ -2374,6 +2404,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    lin = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "lin";
+        ename = "lin";
+        version = "0.3.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/lin-0.3.0.tar";
+          sha256 = "08h7rh8gidn9mn031mg8lvhxswv1hxn4i0ffk2vxygfbp9jxfi61";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/lin.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     lmc = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "lmc";
@@ -2453,10 +2498,10 @@
       elpaBuild {
         pname = "logos";
         ename = "logos";
-        version = "0.2.0";
+        version = "0.3.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/logos-0.2.0.tar";
-          sha256 = "0cqmgvgyyn656rg60bbnxr2flmnw9h4z5i2w98bsf4krlp3s4i6x";
+          url = "https://elpa.gnu.org/packages/logos-0.3.1.tar";
+          sha256 = "0wwvp47bmc7w3jvh480vc31agf0s39mvgk0h550z6a1wzlrfzyh9";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2667,10 +2712,10 @@
       elpaBuild {
         pname = "modus-themes";
         ename = "modus-themes";
-        version = "2.2.0";
+        version = "2.3.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/modus-themes-2.2.0.tar";
-          sha256 = "1vgwr9q16d3hjwmqljmmzlpn177gvwbk3wg4l1fmgc5bpb7k78ky";
+          url = "https://elpa.gnu.org/packages/modus-themes-2.3.0.tar";
+          sha256 = "028c1z4p1bbgf34fml4i0prihxn44x288iyprz9gxrp7x3gl05n8";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2826,10 +2871,10 @@
       elpaBuild {
         pname = "nano-modeline";
         ename = "nano-modeline";
-        version = "0.5";
+        version = "0.6";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/nano-modeline-0.5.tar";
-          sha256 = "0f6xgrxykd5jmlzf9xmywh0jc2jfq698m4nqk60h40dm6pi0gfi2";
+          url = "https://elpa.gnu.org/packages/nano-modeline-0.6.tar";
+          sha256 = "1cxycfx4ic2hzfvp3d2z0a5xjg97p49yla3a1qxw1dldcjg9lfg0";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3400,10 +3445,10 @@
       elpaBuild {
         pname = "pulsar";
         ename = "pulsar";
-        version = "0.2.0";
+        version = "0.3.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/pulsar-0.2.0.tar";
-          sha256 = "0vil6gv7w6d77hksc2pbrwjdd8dp3ka4kf5kihx04r95032pky62";
+          url = "https://elpa.gnu.org/packages/pulsar-0.3.0.tar";
+          sha256 = "0dbfj7789qp4l25y8qazmx5kqgjgqjsnk24rwcf6qann4cq6wgnq";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3695,10 +3740,10 @@
       elpaBuild {
         pname = "rec-mode";
         ename = "rec-mode";
-        version = "1.8.2";
+        version = "1.8.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/rec-mode-1.8.2.tar";
-          sha256 = "06mjj1la2v8zdhsflj3mwcp7qnkj7gxzm8wbk2pli1h8vnq2zvd0";
+          url = "https://elpa.gnu.org/packages/rec-mode-1.8.3.tar";
+          sha256 = "0lkmvvdj4xx3qhxqggizrcdawav0accyrza2wmhfdq88g2zh5575";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4305,10 +4350,10 @@
       elpaBuild {
         pname = "taxy";
         ename = "taxy";
-        version = "0.8";
+        version = "0.9";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/taxy-0.8.tar";
-          sha256 = "00pc6lh35gj8vzcsn17fyazb9jsc4m6nr7cvb32w02isadv8qd3m";
+          url = "https://elpa.gnu.org/packages/taxy-0.9.tar";
+          sha256 = "1nzafs3yvcnmg07zi345n2yvjsw9wixlybzibnhf5k6jnd0vvpjh";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4316,6 +4361,25 @@
           license = lib.licenses.free;
         };
       }) {};
+    taxy-magit-section = callPackage ({ elpaBuild
+                                      , emacs
+                                      , fetchurl
+                                      , lib
+                                      , magit-section }:
+      elpaBuild {
+        pname = "taxy-magit-section";
+        ename = "taxy-magit-section";
+        version = "0.9.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/taxy-magit-section-0.9.1.tar";
+          sha256 = "0ybkz5nqjdrg2z9bfd07xg4k49hrl26vsrwz2vqpfbsqqg5vr4pr";
+        };
+        packageRequires = [ emacs magit-section ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/taxy-magit-section.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     temp-buffer-browse = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "temp-buffer-browse";
@@ -4399,10 +4463,10 @@
       elpaBuild {
         pname = "tramp";
         ename = "tramp";
-        version = "2.5.2.2";
+        version = "2.5.2.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/tramp-2.5.2.2.tar";
-          sha256 = "104nn6xdmcviqqv4cx5llhwj1sh4q04w3h9s8gimmi2kg0z8s36r";
+          url = "https://elpa.gnu.org/packages/tramp-2.5.2.3.tar";
+          sha256 = "1nv603jrvql03z2pfg74yq0hp7963gagg27fksc456mpmz4p7ajq";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4470,6 +4534,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    transient-cycles = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "transient-cycles";
+        ename = "transient-cycles";
+        version = "1.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/transient-cycles-1.0.tar";
+          sha256 = "1gad71kqdw6rm9dy5rxm85l4a5qibs20ijl8bpaxbbq37j44lvjb";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/transient-cycles.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     trie = callPackage ({ elpaBuild, fetchurl, heap, lib, tNFA }:
       elpaBuild {
         pname = "trie";
@@ -4695,10 +4774,10 @@
       elpaBuild {
         pname = "vertico";
         ename = "vertico";
-        version = "0.21";
+        version = "0.22";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/vertico-0.21.tar";
-          sha256 = "0aw3hkr46zghvyp7s2b6ziqavsf1zpml4bbxcvs4kvm05qa0y1hv";
+          url = "https://elpa.gnu.org/packages/vertico-0.22.tar";
+          sha256 = "1m8r2iqyyvym7a47awh00aq7hld54dklrx4ibwvnmhpxl0fzh7g8";
         };
         packageRequires = [ emacs ];
         meta = {
diff --git a/pkgs/applications/editors/emacs/elisp-packages/ement/default.nix b/pkgs/applications/editors/emacs/elisp-packages/ement/default.nix
index caf7bbf24d285..ccbfe76719e59 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/ement/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/ement/default.nix
@@ -5,23 +5,31 @@
 , plz
 , cl-lib
 , ts
+, magit-section
+, taxy-magit-section
+, taxy
+, svg-lib
 }:
 
 trivialBuild {
   pname = "ement";
-  version = "unstable-2021-10-08";
+  version = "unstable-2022-04-22";
 
   src = fetchFromGitHub {
     owner = "alphapapa";
     repo = "ement.el";
-    rev = "c951737dc855604aba389166bb0e7366afadc533";
-    sha256 = "00iwwz4hzg4g59wrb5df6snqz3ppvrsadhfp61w1pa8gvg2z9bvy";
+    rev = "70da19e4c9210d362b1d6d9c17ab2c034a03250d";
+    sha256 = "sha256-Pxul0WrtyH2XZzF0fOOitLc3x/kc+Qc11RDH0n+Hm04=";
   };
 
   packageRequires = [
     plz
     cl-lib
     ts
+    magit-section
+    taxy-magit-section
+    taxy
+    svg-lib
   ];
 
   patches = [
diff --git a/pkgs/applications/editors/emacs/elisp-packages/header-file-mode/default.nix b/pkgs/applications/editors/emacs/elisp-packages/header-file-mode/default.nix
new file mode 100644
index 0000000000000..df001ea8ff73a
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/header-file-mode/default.nix
@@ -0,0 +1,30 @@
+{ trivialBuild
+, lib
+, fetchFromGitHub
+}:
+
+trivialBuild {
+  pname = "header-file-mode";
+  version = "unstable-2022-04-19";
+
+  src = fetchFromGitHub {
+    owner = "0x4b";
+    repo = "header-file-mode";
+    rev = "fdf1930730e1b0c3f82490099a1325805491eff5";
+    sha256 = "sha256-FJgRI6RLQk9osh7d+YRfrV5CoGCDx2cZvsjAWlm969c=";
+  };
+
+  postUnpack = ''
+    sourceRoot="$sourceRoot/lisp"
+  '';
+
+  meta = {
+    description = ''
+      A major mode that, when associated with the .h file extension, will put
+      those file into the major mode of their corresponding implementation file.
+    '';
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [ aidalgol ];
+  };
+}
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
index 676b9bfca9a61..4dc546c6263da 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
@@ -178,6 +178,8 @@
 
   git-undo = callPackage ./git-undo { };
 
+  header-file-mode = callPackage ./header-file-mode { };
+
   helm-words = callPackage ./helm-words { };
 
   isearch-plus = callPackage ./isearch-plus { };
@@ -190,6 +192,8 @@
 
   perl-completion = callPackage ./perl-completion { };
 
+  control-lock = callPackage ./control-lock { };
+
   plz = callPackage ./plz { };
 
   pod-mode = callPackage ./pod-mode { };
@@ -229,10 +233,12 @@
 
   sv-kalender = callPackage ./sv-kalender { };
 
+  tree-sitter-langs = callPackage ./tree-sitter-langs { final = self; };
+  tsc = callPackage ./tsc { };
+
   youtube-dl = callPackage ./youtube-dl { };
 
   # From old emacsPackages (pre emacsPackagesNg)
-  cedet = callPackage ./cedet { };
   cedille = callPackage ./cedille { cedille = pkgs.cedille; };
   color-theme-solarized = callPackage ./color-theme-solarized { };
   session-management-for-emacs = callPackage ./session-management-for-emacs { };
diff --git a/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix b/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix
index dc2e87c30e608..e15903ad973e2 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix
@@ -49,10 +49,10 @@
       elpaBuild {
         pname = "annotate";
         ename = "annotate";
-        version = "1.5.1";
+        version = "1.5.3";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/annotate-1.5.1.tar";
-          sha256 = "13xf8izl99y1aqwk9k9hgiwggibjycjh2lhwg0wk5hm7zp6gm8mx";
+          url = "https://elpa.nongnu.org/nongnu/annotate-1.5.3.tar";
+          sha256 = "0d5lqaj1bqckvjpwxqglzrhk8fm03n19lxwm74jxfl1lkxq4dw3x";
         };
         packageRequires = [];
         meta = {
@@ -219,10 +219,10 @@
       elpaBuild {
         pname = "buttercup";
         ename = "buttercup";
-        version = "1.24";
+        version = "1.25";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/buttercup-1.24.tar";
-          sha256 = "1ch949xf03gw9r5v32akx7hqnq7zrp3qr3gcic5b52yl5nmy8mhn";
+          url = "https://elpa.nongnu.org/nongnu/buttercup-1.25.tar";
+          sha256 = "1iadgn56sfakv927g9bk7fq7yjg0f3r10ygrmjpy46vgvfz0fqs6";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -469,10 +469,10 @@
       elpaBuild {
         pname = "elpher";
         ename = "elpher";
-        version = "3.3.2";
+        version = "3.3.3";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/elpher-3.3.2.tar";
-          sha256 = "1w34agw5qfgbpk6s2bllvgkj4wm1rlcyn33yfgj2xr4a5gfcs30a";
+          url = "https://elpa.nongnu.org/nongnu/elpher-3.3.3.tar";
+          sha256 = "0yaf6g424g6dngg0acbhlhd24k77bl5h82wiw98f3731xdad174r";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -602,10 +602,10 @@
       elpaBuild {
         pname = "evil-matchit";
         ename = "evil-matchit";
-        version = "2.4.1";
+        version = "2.4.3";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/evil-matchit-2.4.1.tar";
-          sha256 = "0ybw0jfjkwiz4ln3z5pizbw5d9d612crpk410czcyi8adyj018nc";
+          url = "https://elpa.nongnu.org/nongnu/evil-matchit-2.4.3.tar";
+          sha256 = "079qbx6f4clh5ngnrga016h0q2vf7afx9irsa06pishfs94pl4qn";
         };
         packageRequires = [ emacs evil ];
         meta = {
@@ -617,10 +617,10 @@
       elpaBuild {
         pname = "evil-nerd-commenter";
         ename = "evil-nerd-commenter";
-        version = "3.5.6";
+        version = "3.5.7";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/evil-nerd-commenter-3.5.6.tar";
-          sha256 = "0bv7s2jcgi3ma3dspczy7jrb55vqkhsz0rq0nz14qiay5j9dwghd";
+          url = "https://elpa.nongnu.org/nongnu/evil-nerd-commenter-3.5.7.tar";
+          sha256 = "1lar8hy9n29gv4cijalyy2ba23y0kyh9ycnsi5dzjs68pk3y4hca";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1096,10 +1096,10 @@
       elpaBuild {
         pname = "highlight-parentheses";
         ename = "highlight-parentheses";
-        version = "2.1.0";
+        version = "2.1.1";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/highlight-parentheses-2.1.0.tar";
-          sha256 = "1rsixbvglar0k0x24xkxw80sx9i85q48jdzx6wbyjz2clz974ja5";
+          url = "https://elpa.nongnu.org/nongnu/highlight-parentheses-2.1.1.tar";
+          sha256 = "1r0sk4da3apgbik8d84vknwna45k1ks3n0s1fspj5c88b4r7xnsx";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1635,22 +1635,16 @@
           license = lib.licenses.free;
         };
       }) {};
-    pacmacs = callPackage ({ cl-lib ? null
-                           , dash
-                           , elpaBuild
-                           , emacs
-                           , f
-                           , fetchurl
-                           , lib }:
+    pacmacs = callPackage ({ dash, elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "pacmacs";
         ename = "pacmacs";
-        version = "0.1";
+        version = "0.1.1";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/pacmacs-0.1.tar";
-          sha256 = "0vhxxnk8n4h2klvr4xahsm845dwds895fxxgcs7dz2262g9myd93";
+          url = "https://elpa.nongnu.org/nongnu/pacmacs-0.1.1.tar";
+          sha256 = "0ni4jmvkdqiiw2xync6raxvq4gr2hc7b65cbil66z7g7vlw5y56y";
         };
-        packageRequires = [ cl-lib dash emacs f ];
+        packageRequires = [ dash emacs ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/pacmacs.html";
           license = lib.licenses.free;
@@ -1909,10 +1903,10 @@
       elpaBuild {
         pname = "shellcop";
         ename = "shellcop";
-        version = "0.0.7";
+        version = "0.0.8";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/shellcop-0.0.7.tar";
-          sha256 = "1zwj22bf37ffdbz5iqkwz5mzzsxffhj521dmwkgp5sh4r1fwip8a";
+          url = "https://elpa.nongnu.org/nongnu/shellcop-0.0.8.tar";
+          sha256 = "00kj1zadrqnikvwrxd6ma0c8r1jf70c1zaqr03s0g49h4lz6m2da";
         };
         packageRequires = [ emacs ];
         meta = {
diff --git a/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json b/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
index 1de739b5645c8..f6f82db01a5ba 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
+++ b/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
@@ -153,8 +153,8 @@
     20210929,
     1510
    ],
-   "commit": "9ad2d18252b729174fe22ed0b2b7670c88f60c31",
-   "sha256": "0zkv4xvw1jdsfxqqkxskl2l380gfs13n86hj4hhzrqf0sb6aymws"
+   "commit": "93e5ed8c495794d1ba3c04b43041b95ce01079b1",
+   "sha256": "17wxgssx5myvmxxjwd455sl47sb9wblh8npm5wg199j1d8z097w9"
   },
   "stable": {
    "version": [
@@ -1893,14 +1893,14 @@
   "repo": "minad/affe",
   "unstable": {
    "version": [
-    20220308,
-    1016
+    20220407,
+    2313
    ],
    "deps": [
     "consult"
    ],
-   "commit": "36d8654a8d7e862d2e64f6bece370e664218ab1a",
-   "sha256": "1wj63vqr5vf2mzwsx1j837ahjkj0p20zn4vkxl52rxdl8m01m2yv"
+   "commit": "5dd63fd156577aa7e9a3a631e2f48444565f463e",
+   "sha256": "09glzw3h2miqlnr1g7311nz909wgdphi50c6j1npzm68vi4xpnyp"
   },
   "stable": {
    "version": [
@@ -2347,8 +2347,8 @@
    "deps": [
     "flycheck"
    ],
-   "commit": "1bcc7c68abcd6471604c9b7fe7f85b0878bbd435",
-   "sha256": "10kpdra8m015xsh7w25v18zd62csayji0p5jqgif20bw6g8g20a7"
+   "commit": "c8ab1ec50f7c62fb42a78c0617624b91ba62a162",
+   "sha256": "1jvy66cw9vb5nv0bmzaliqdhjxkkwzz2ydq6zkwax5p15y81sw0q"
   },
   "stable": {
    "version": [
@@ -2513,14 +2513,14 @@
   "repo": "iyefrat/all-the-icons-completion",
   "unstable": {
    "version": [
-    20220106,
-    1310
+    20220409,
+    1204
    ],
    "deps": [
     "all-the-icons"
    ],
-   "commit": "9e7d456b0934ecb568b6f05a8445e3f4ce32261f",
-   "sha256": "04bnmmd6lyx0p39sgymqvmcy7bk8mr7sikbpy49adxi7d2891ldg"
+   "commit": "286e2c064a1298be0d8d4100dc91d7a7a554d04a",
+   "sha256": "19q35l8ljsgk5f5pcxals2wr7mq4gs278y8bhy983gnlwm80ww43"
   }
  },
  {
@@ -2585,8 +2585,8 @@
    "deps": [
     "all-the-icons"
    ],
-   "commit": "66317e945dc63b7947b99162d8c482ffe936ff96",
-   "sha256": "0wdlcgr11yq0f8ld8fkks51fbf63d8ddm2firga0402g5gs8ybqc"
+   "commit": "21d5859f1412413f165e0ca44f6002902409a9f9",
+   "sha256": "0a5ny68g82rwjd262ni4dflq1mgv6i99fgxbbp5m2w781mvcgl7a"
   },
   "stable": {
    "version": [
@@ -2641,28 +2641,28 @@
   "repo": "seagle0128/all-the-icons-ivy-rich",
   "unstable": {
    "version": [
-    20220324,
-    317
+    20220411,
+    222
    ],
    "deps": [
     "all-the-icons",
     "ivy-rich"
    ],
-   "commit": "498ea281656569593b8fe4b47162447767daf408",
-   "sha256": "1zpqvzg76i5k48a2qvafls7fg3y0lrwfk9im0zhngczjy5gadldq"
+   "commit": "b2fc7db5432431e56babb3440c7a4aab8ff0744d",
+   "sha256": "1620wmakvgnar61np80jsr52gixxir70fmbf70kn2kv0ybza1ngw"
   },
   "stable": {
    "version": [
     1,
     7,
-    0
+    1
    ],
    "deps": [
     "all-the-icons",
     "ivy-rich"
    ],
-   "commit": "a866ed554932d4c52f802b2235e6d5c3382d8a67",
-   "sha256": "0id821qis6yqaicr0dv2cxyfdy8dh0m5xp7zbfrgnbzk1ah0npd5"
+   "commit": "42dead856fe4647fdc18bc5a8b64440f03026525",
+   "sha256": "167hwik7mjlvq502r0kx8hcrpizcyv532g5j3jayp5rvv2x6zwki"
   }
  },
  {
@@ -2676,8 +2676,8 @@
     20210306,
     1040
    ],
-   "commit": "a7dc21078e25dab2b054d64e5b40ecce2878edb2",
-   "sha256": "12q9wddkynl90hl8vcy69hwl2g9flfz7r4fsp81bwc3vv130s7cg"
+   "commit": "6503bf0e5429a51906fb1db94941a4fa678bf9b1",
+   "sha256": "0dypf86x9i1lcqn1kqg5dk3h5bs1k5psw2w4al6c6iy9765ws3b4"
   }
  },
  {
@@ -2715,8 +2715,8 @@
     20220212,
     1526
    ],
-   "commit": "490f9b781d6aa2be376b01326b4ccdea756ff382",
-   "sha256": "1bp5rcqni80izky8mzg0bmf8q8n3niwhjix6jsa9w81584kmcaha"
+   "commit": "68d4f3bc6a29b3941f43bbc8067aa8870023cffc",
+   "sha256": "14asfxn6sa55gcvlp2ixim742w5c2s0nnk42sjzrx75xsl0fasrs"
   },
   "stable": {
    "version": [
@@ -3229,11 +3229,11 @@
   "repo": "bastibe/annotate.el",
   "unstable": {
    "version": [
-    20220225,
-    1955
+    20220408,
+    921
    ],
-   "commit": "5bf59f80389d03f11bc0daa7b9cb24a0bc29f6c5",
-   "sha256": "0xkv0b8d8zywv86160bxhb5z7v401lzgqssagk08rzvb3vrrjf31"
+   "commit": "a3d42262f518a52e221c038cca3c1630ea90db25",
+   "sha256": "0vxyqkhdsvl2rch0ln3jbrs6wn96lbwn5bhpgrvr93bh6lzq3zl4"
   },
   "stable": {
    "version": [
@@ -3271,18 +3271,18 @@
     20200914,
     644
    ],
-   "commit": "724723ed0a6b179398f4105f5eb5ea088d1bac4a",
-   "sha256": "0qzg5qhf3p4ifspbz6l1yj4fl6sdgbi74kprql20sx9y58dyhamd"
+   "commit": "505464961f07f0991263708fd8cbf5f7ad12f53f",
+   "sha256": "149g366ijc7aqglf27xsy806az8r2s8s6p8w8rx4wvdrhds2wpl7"
   },
   "stable": {
    "version": [
     2,
     6,
     2,
-    1
+    2
    ],
-   "commit": "59c7944b1a2e8015e473eb1932353818614a1e5b",
-   "sha256": "0p6jh8hyyf7xg0sni2rchck2fd1wyr5v106dfxxm09krxxawh0nh"
+   "commit": "442c76badc353d1b621243c43293106f60f7d746",
+   "sha256": "0kskd56y71p4w1bgr15szbzjl05kfxpf1cs4bd9dnwdwfp5s0ygw"
   }
  },
  {
@@ -3624,19 +3624,19 @@
   "repo": "raxod502/apheleia",
   "unstable": {
    "version": [
-    20220114,
-    2329
+    20220410,
+    2121
    ],
-   "commit": "9ed3c9d72ada133426a40bac6f4a719706d99532",
-   "sha256": "1zg1yk6g7kx22vxg74srzkxgw4880lwf6aifxgz058v3fhk0zgks"
+   "commit": "806210414b84549f1c19d2df94a4a0491a581f2f",
+   "sha256": "0y3iyd5p0sbwijqhpsnlfrvg3ra19cqkmv9q0jshy74k674gwpbs"
   },
   "stable": {
    "version": [
-    1,
-    2
+    2,
+    0
    ],
-   "commit": "443f5aeb1a7115a2db7af4a0a66e111c13d4252c",
-   "sha256": "06i912zybc6c1djb9xqfqydl6achgxsmx6hjy50y9lxc0f2p5py9"
+   "commit": "84b04329d7c0ddf41e41433b3f732714995a2bfd",
+   "sha256": "0kd0aydpfvxzq8qc6cknx11hcc6vwp7lxzjwbkcr5w4jynza59v1"
   }
  },
  {
@@ -3699,11 +3699,11 @@
   "repo": "alexmurray/apparmor-mode",
   "unstable": {
    "version": [
-    20211014,
-    2319
+    20220411,
+    648
    ],
-   "commit": "9d1937af52cd8ecfeec27185644ea8cbf0dc1c08",
-   "sha256": "1kzvqxz0m2lgcm0whb121g1580vi7bvk4fj780d5xqqqlv0091a0"
+   "commit": "abc2a6adf563b89daee9f8fa07a71d78957defdb",
+   "sha256": "1gyvz9659r3563hn68644v4lahnsa0ax9np31p7y4p8j6mhsc0y8"
   }
  },
  {
@@ -3741,8 +3741,8 @@
     20210802,
     1715
    ],
-   "commit": "9b4b41cac699e85cb36bd0e4ef2cb39f7af1cf3d",
-   "sha256": "1khbqp8iqm6p5a83bvcvdiykd9qpa4c2545l3sbb5q3qg8js67cn"
+   "commit": "1221be63e78c6cfe1af31e01b0909eeb08d9cc9a",
+   "sha256": "0dgzk00kq5a6bxzwjzvhdn9h8vsij5n4in7lni9nv0qmqc0p3hm2"
   },
   "stable": {
    "version": [
@@ -3761,11 +3761,11 @@
   "repo": "vietor/aproject",
   "unstable": {
    "version": [
-    20190730,
-    152
+    20220410,
+    541
    ],
-   "commit": "b534e2a62738ad59a8a3cddd386466c145dad3b2",
-   "sha256": "08nhfa845cn20kx0q9rchs24imfmvpywi1b8mn40d1lw587yr519"
+   "commit": "13e176ee69851403bec6471c5cceed17b7912b6f",
+   "sha256": "1kb1vlqla4l2mixkd5awmgbh0bzwbngj8sq5mjvrw6slf7i35xjn"
   },
   "stable": {
    "version": [
@@ -3784,11 +3784,11 @@
   "repo": "waymondo/apropospriate-theme",
   "unstable": {
    "version": [
-    20220323,
-    1703
+    20220411,
+    2036
    ],
-   "commit": "7bcabbbbef2cb1dd12917f248402565b557d8f60",
-   "sha256": "1frlcjd82g0m3aj3wi45gv5gzqy16frj7as22v4c07b78xg1mzks"
+   "commit": "0f8ff945942ecb036691ce4400c664a16545c491",
+   "sha256": "104inw43k4rmrjr4fl64phr3phlmnvdrmqrr7zjiqc1h5rj6qn57"
   },
   "stable": {
    "version": [
@@ -3895,8 +3895,8 @@
     20220314,
     1647
    ],
-   "commit": "379dddfbe4e801df6fdb81a55528fab6c7dbb78e",
-   "sha256": "1w505zv614xsc0bjc0539fw68x88vfxmd8k9mnp5364pvjfc7g87"
+   "commit": "515d2230352fffcc982ae2e322d95cbee6aca760",
+   "sha256": "1x8mwhfwcpbwaha5qb5hnl6ga29cbi27a26m0q4840agpr53s1km"
   },
   "stable": {
    "version": [
@@ -4336,8 +4336,8 @@
     20201026,
     339
    ],
-   "commit": "3f4b12016bd1d0115207013ebc3f02fa7f50917b",
-   "sha256": "07gf5p6c78kxyji4q89gz2ffyixdccn5h610d7nidiiix1bwvh1p"
+   "commit": "bc04527ce11d15117130b3f2932b4ad9176c8062",
+   "sha256": "09kpk1k5sn5jc6xpsp2imljsi0cbcqxhblsff1bzcksxnmnm3jdk"
   },
   "stable": {
    "version": [
@@ -4360,8 +4360,8 @@
     20210731,
     609
    ],
-   "commit": "7e07005dbbca6a5f409f37af37e5f5f81d057ded",
-   "sha256": "1mm9xfsk2kgqfy29k27b5z43j12nkpx1ssgp4y9k6bymrgbfx08v"
+   "commit": "d9d3f49fc8c5c650527ff5a0c6e2baa3f62a4332",
+   "sha256": "0lly3djprmxr6chifr3apsjqkvv39yx8g6572c2hf03242s0663z"
   },
   "stable": {
    "version": [
@@ -4661,8 +4661,8 @@
     "keytar",
     "s"
    ],
-   "commit": "f235a34306e230dcbf60f63e19fdc3b06425f7cf",
-   "sha256": "1pa4syiq7ds1hfpi268krlkyi8vl7hfr23md2x16zh0wlnsxnpm2"
+   "commit": "a5240ecbf07a503ce13a648a02bf53da6aeaffd7",
+   "sha256": "0f3mgvvfainfmg60rp5bg24mgjx8jjwvvn6mdqf9q6ypbc1bcdxk"
   },
   "stable": {
    "version": [
@@ -4767,14 +4767,14 @@
   "repo": "emacscollective/auto-compile",
   "unstable": {
    "version": [
-    20220111,
-    1108
+    20220407,
+    1522
    ],
    "deps": [
     "packed"
    ],
-   "commit": "3b4d94b020a2557e439233dbaa9d83fdea68f05a",
-   "sha256": "1zymk8kzw1mvkasf0dryy2sbwxdr8ppr0a4j5r69y108dmvplqwn"
+   "commit": "597969e4aa0ef18751d6a51cb59dd06d41317445",
+   "sha256": "109hmij1y4l4l7j3fyysnjwkxwvqwp5g84jq8jdikrdif4kylxwj"
   },
   "stable": {
    "version": [
@@ -5147,8 +5147,8 @@
    "deps": [
     "ht"
    ],
-   "commit": "939aa7f58c555a05451238e40c34bc8da0150870",
-   "sha256": "1rqphhfvi91vgqqxahgm2zkxk12dvqxvqgraqgagc75xpqsgw423"
+   "commit": "cb52226184bbaf37231c1be2d65466d20949b79a",
+   "sha256": "1yy03dn9bgmq8r01fr0pl35hmfjy1blxfbq92m4ha8xwjc46x00i"
   },
   "stable": {
    "version": [
@@ -5297,8 +5297,8 @@
     20210805,
     1344
    ],
-   "commit": "5551157ab81b55322e7787ce16ba84162933aece",
-   "sha256": "18zrh7s8xn9spr5lg5zasdb3rkldnvmhi31z08d4rxjfpfhikcql"
+   "commit": "84812796da212fd31ac534336d6d2a7a99a0ee43",
+   "sha256": "03kihmfvihirm5rp9zirbxsxj3xw0rsbc37fg4lkbipiklrw5l8n"
   },
   "stable": {
    "version": [
@@ -5710,8 +5710,8 @@
     "avy",
     "embark"
    ],
-   "commit": "b80d96ce0ab79e73829322e46c6d7493eb2b8c34",
-   "sha256": "1jsynjl0y7w0jqxqlibg8m4rwzv9lxj443m6dlac6zncz8plnizp"
+   "commit": "ab778510d5db9935a2d436b13d98c47b824172ee",
+   "sha256": "1w2jiv8wffm4lf22bkc4znbk20jarnpwl5483jd3bfg712ykqcsq"
   },
   "stable": {
    "version": [
@@ -6043,14 +6043,14 @@
   "repo": "tarsius/backline",
   "unstable": {
    "version": [
-    20200104,
-    1851
+    20220331,
+    2327
    ],
    "deps": [
     "outline-minor-faces"
    ],
-   "commit": "dc541a6daf82ab73774904ae9ccecd13e3c2af48",
-   "sha256": "0410p7144k2kh1bz050h45zrfd98j10sbx409la5x01l9xrmb03y"
+   "commit": "5610466a2d2d526a8338dd3b2ffabb9031485a42",
+   "sha256": "0ma1dfr6cf108whh6slgmshyk2aag6q8z2xm9psk6xrka7wm8yaj"
   },
   "stable": {
    "version": [
@@ -6298,11 +6298,11 @@
   "repo": "szermatt/emacs-bash-completion",
   "unstable": {
    "version": [
-    20210821,
-    1941
+    20220328,
+    844
    ],
-   "commit": "c5eaeed156ab906190c662d491269230967104b1",
-   "sha256": "0r221iirqsbz13s76r68i496izbirrvcw8ql3wsh205zmxa3jqg1"
+   "commit": "29b5fc860a5b0db9828acfceca09b773fbdb8e8a",
+   "sha256": "1gj62v4j3s21kbm1zapb7scv1zh4q9k1jjpgrr4wy0fqk7gzfprq"
   },
   "stable": {
    "version": [
@@ -6538,19 +6538,21 @@
   "url": "https://git.savannah.nongnu.org/git/bbdb.git",
   "unstable": {
    "version": [
-    20220224,
-    403
+    20220328,
+    1456
    ],
-   "commit": "00a003c9a3788c3a0fe8bd89b827b4e9bbdf2261",
-   "sha256": "0iskn78ynz24wdbq1ja24m0pqcbhb4dfipnxx0nijdsbf6xpj37r"
+   "commit": "a50c89a6f01be757335e64df322837300c4ced04",
+   "sha256": "1ymcrpf97prhxdbv4x8nzyb6yn9b1k69xq51l35vmjdvhhdcfhz2"
   },
   "stable": {
    "version": [
     3,
-    2
+    2,
+    2,
+    1
    ],
-   "commit": "f18720ff5cd963a0bf6fc0e41293e50c0172b8ae",
-   "sha256": "1s5qi8njiqdpgnzlik36islzh13zfhybnynqisr61p602pn4ghk7"
+   "commit": "a50c89a6f01be757335e64df322837300c4ced04",
+   "sha256": "1ymcrpf97prhxdbv4x8nzyb6yn9b1k69xq51l35vmjdvhhdcfhz2"
   }
  },
  {
@@ -6770,20 +6772,20 @@
   "repo": "DamienCassou/beginend",
   "unstable": {
    "version": [
-    20210504,
-    341
+    20220409,
+    846
    ],
-   "commit": "4b4e4808dc3248ea61b3d8bdd7c6b73edd3b6902",
-   "sha256": "0cx8k5vvqkhkaa9ay4cnb2gshi8118zq87ddbxmffai6ryj2lg7b"
+   "commit": "bbcfdc0909c20ddee41e95b7ade7de63af73b220",
+   "sha256": "06z0c2ryq8j3sd3m5pph5l6qnxy51bdqy6b8ya3z94qa63xm3ksb"
   },
   "stable": {
    "version": [
     2,
-    2,
+    3,
     0
    ],
-   "commit": "9c7a92779d75f6fd985cf707ff5241bc98ccea6c",
-   "sha256": "1r9033zlx2q2dk3bjz004flxdiw79qiswq0zqdjnlzwassvk0f35"
+   "commit": "62c75804ba7d74f4c01c0629722c061c11bed393",
+   "sha256": "17r8v1sjvgcmprywny9fdg54x4pssp8p7a9ivv5mrygkqjz1vykk"
   }
  },
  {
@@ -6934,8 +6936,8 @@
     20210715,
     1004
    ],
-   "commit": "7183369a489a12f4a776f03c8e1a9bfe62d0ab3d",
-   "sha256": "1fg0w1c1fdvqjf5rki4zw2m8zwdxsc2g43s9vm635v6akb8ryqmy"
+   "commit": "dbfa68942862f12f1034d08adaccd94fdd81921e",
+   "sha256": "10g24wxghl15z1dwbvfc9nv9w060zgnm66l7xmcif0333ks1q5il"
   },
   "stable": {
    "version": [
@@ -7178,8 +7180,8 @@
   "repo": "tmalsburg/helm-bibtex",
   "unstable": {
    "version": [
-    20220117,
-    1131
+    20220404,
+    1608
    ],
    "deps": [
     "biblio",
@@ -7189,8 +7191,8 @@
     "parsebib",
     "s"
    ],
-   "commit": "db73156576ee3e4ea9d7fb06a20e3cc2c8225eaf",
-   "sha256": "086skvifcm6jnzbmhx9xlcjx303a9w6v00q557pc1qja0hanxic9"
+   "commit": "c089a1cc87d91611366b9430c2890c628b3342c4",
+   "sha256": "1vlpq96w4bvbjz4pa3f2l8vs0jp7gb7k7jlhqjbdpm5qv09q513k"
   },
   "stable": {
    "version": [
@@ -7232,11 +7234,11 @@
   "repo": "tarsius/bicycle",
   "unstable": {
    "version": [
-    20220101,
-    1042
+    20220402,
+    1036
    ],
-   "commit": "c69b010c7b4899b6c016f926ad3a6e11ebfec0bc",
-   "sha256": "141mq2ivwpmb952zdh7rvr24awi0ffpz5nm7wyc6kz8wlm5pgavv"
+   "commit": "624de5d111adb277ff3fb0d044bf685e24642de5",
+   "sha256": "02m6n4cscxzzdbifgmlyc1xqn2497dr3m6kklck4p31vimy3qyyj"
   },
   "stable": {
    "version": [
@@ -7632,26 +7634,20 @@
   "repo": "Artawower/blamer.el",
   "unstable": {
    "version": [
-    20220302,
-    1936
-   ],
-   "deps": [
-    "a"
+    20220404,
+    1917
    ],
-   "commit": "0dc1328b8640207ac75a009c690d392f63c44f4d",
-   "sha256": "1sdgbwv3iiwcw5af7hdk04ab841nl8y8xm854b9qdh9n0micwx3a"
+   "commit": "f5c0b5ef2ae46062ba13dd03215cdfc49d0fd30b",
+   "sha256": "1acwh5xcfizmd6m4kwlvpyysznknjwzqmgppc33khldqiv3ga9sp"
   },
   "stable": {
    "version": [
     0,
     4,
-    4
-   ],
-   "deps": [
-    "a"
+    6
    ],
-   "commit": "0dc1328b8640207ac75a009c690d392f63c44f4d",
-   "sha256": "1sdgbwv3iiwcw5af7hdk04ab841nl8y8xm854b9qdh9n0micwx3a"
+   "commit": "f5c0b5ef2ae46062ba13dd03215cdfc49d0fd30b",
+   "sha256": "1acwh5xcfizmd6m4kwlvpyysznknjwzqmgppc33khldqiv3ga9sp"
   }
  },
  {
@@ -8057,11 +8053,11 @@
   "repo": "ideasman42/emacs-bookmark-in-project",
   "unstable": {
    "version": [
-    20220212,
-    156
+    20220401,
+    348
    ],
-   "commit": "70ae40b4c4cdf44999ee4c738f5a4ae34a2d8421",
-   "sha256": "1hidzm6yv5fqx93shfxx70xsjbyzkia00ylxd06jniqpydl3fydh"
+   "commit": "e95aa25b933e705e87b7a9328e89c8cf0898c201",
+   "sha256": "14vradzbh7rd11427q3kzbwsq3kmy6m8by2bd74bwpkyaw5x44ci"
   }
  },
  {
@@ -8072,11 +8068,11 @@
   "repo": "minad/bookmark-view",
   "unstable": {
    "version": [
-    20220216,
-    2024
+    20220403,
+    2204
    ],
-   "commit": "314e74e11386af72ca282e228996321a8a6d4c9a",
-   "sha256": "1bqajd2slg5gh33q84ps9cpv0g04y5gz6m8gy55m01f2zrwxvyqc"
+   "commit": "0d40ac67f53b7fa75fe65c38a5ef65701ce4c3da",
+   "sha256": "0sa5lypdxgffzz22kq2jpcc02xmcmr77bsc0iggh7b2khnxjppxj"
   },
   "stable": {
    "version": [
@@ -8152,15 +8148,15 @@
   "repo": "emacscollective/borg",
   "unstable": {
    "version": [
-    20220216,
-    1925
+    20220406,
+    1207
    ],
    "deps": [
     "epkg",
     "magit"
    ],
-   "commit": "378089e179e439a4999e14a410868743694cb911",
-   "sha256": "07wygkg94m5xr0r4yfcvcxdy3a9mh7pxfg3gzvy8dka6cax7fj25"
+   "commit": "b4c9081c8c697fdc2fa71cb07adc2f77dc3c27dd",
+   "sha256": "1cigyvyxpg3740dsjsx9xx6lg7rwxg0xp3icr0cvcxk5nnd7lcfm"
   },
   "stable": {
    "version": [
@@ -8447,11 +8443,11 @@
   "repo": "browse-kill-ring/browse-kill-ring",
   "unstable": {
    "version": [
-    20200210,
-    921
+    20220410,
+    1509
    ],
-   "commit": "c7a188a6148f6391b6926d25b9cf191d4a8b3f42",
-   "sha256": "12ajcdzqajhs1li0pd8vp2wm6kl5vxcsnka1ygd2144cbi0dx6gk"
+   "commit": "6e06736a8245a8cdf436f6585c71439239219836",
+   "sha256": "0i7np8bz7v3j19z33f0cq0fx096d3h6p130md0jmzgq945lxvp3a"
   },
   "stable": {
    "version": [
@@ -8545,15 +8541,15 @@
   "repo": "niedbalski/emacs-btc-ticker",
   "unstable": {
    "version": [
-    20151113,
-    1459
+    20220409,
+    1647
    ],
    "deps": [
     "json",
     "request"
    ],
-   "commit": "845235b545f070d0812cd1654cbaa4997565824f",
-   "sha256": "022j0gw5qkxjz8f70vqjxysifv2mz6cigf9n5z03zmpvwwvxmx2z"
+   "commit": "2ed18ac6338d5fe98c578f0875840af07f0bc42a",
+   "sha256": "0hx96ah2y1s5hj5f3i2y50v1m0lfphg71sr4fhssjls0yvl995sr"
   }
  },
  {
@@ -8853,8 +8849,8 @@
     20200924,
     345
    ],
-   "commit": "1734ee6cadaa8094e6b06876c57dbca5dbd289cf",
-   "sha256": "0h8da68hclfjrxpq3h84fanldm8vgkriljw0qn2vwpdd5yw5258v"
+   "commit": "10cdf0ddee1af7b5f34b625b395523595390c96c",
+   "sha256": "0qn2hrh39d9jj7wrz1m3n2rgzmn37jv0x7j9q68fly8yjm77fh93"
   },
   "stable": {
    "version": [
@@ -9100,14 +9096,14 @@
   "repo": "alphapapa/burly.el",
   "unstable": {
    "version": [
-    20211005,
-    1159
+    20220413,
+    1529
    ],
    "deps": [
     "map"
    ],
-   "commit": "c94fe0a355859fe6ddfa34cf7d362dca896f38a1",
-   "sha256": "0jl8dj4mk4zc0kckdj3qmrhc21xxchp4x9cgd9fdhza50icbmy92"
+   "commit": "96f59fe24fdce14d14f204372f99bf522ab192bf",
+   "sha256": "0mzv82qd2w3nsfjj08kmsb8sjg0fmmhjldbymqd60ybx3gq9h9ba"
   },
   "stable": {
    "version": [
@@ -9252,19 +9248,19 @@
   "repo": "jorgenschaefer/emacs-buttercup",
   "unstable": {
    "version": [
-    20220321,
-    1903
+    20220410,
+    1557
    ],
-   "commit": "c365dae776f823aa7489bcf0f750ca748fefdb28",
-   "sha256": "1p7c6p33nk23jywwd9b7c7062chr8x0bjffgall9rxsyqczdqzxx"
+   "commit": "ceedad5efa797e860dbb356bc2c3028a4e0321ec",
+   "sha256": "1fp9f0lprmzdacjsd78yrbbrzksk2kz0bvals1cbnrqr4dhknxhi"
   },
   "stable": {
    "version": [
     1,
-    24
+    25
    ],
-   "commit": "1de6be465cfe2c3f00183de9351bd838690c9f81",
-   "sha256": "1w02p4bfkyga6sign4flq2kw0hawyvnv63410pyh8nm7acp311gg"
+   "commit": "ba62f80555d46faf49dc451c0ad20f39f6a170ab",
+   "sha256": "0fsysvsypda6b7azc15bpaprq3bwx4gb6rlq2mj6f8rgwdqc8153"
   }
  },
  {
@@ -9933,11 +9929,11 @@
   "repo": "minad/cape",
   "unstable": {
    "version": [
-    20220313,
-    58
+    20220413,
+    2256
    ],
-   "commit": "79e8771c18c76a5bef5fdbf74718527e74b6d702",
-   "sha256": "1v5q066xppxf0crzcliqa2mya0x18qjmz5xp0mcr2szi1nps8z7s"
+   "commit": "aadf69d01512bf980245ffe073df5710ccdb6385",
+   "sha256": "0hjj5jw7sa8nqpxbkyvn57f6k70v6f8lc7a2algg9qq8swk0ic6r"
   },
   "stable": {
    "version": [
@@ -10131,8 +10127,8 @@
     "s",
     "shut-up"
    ],
-   "commit": "218433b408b95efdc026081ee3f44e976a3aa36b",
-   "sha256": "08bniq7hba6438nfwfnmhkvm1yqln5f27239ndq1gbhc3wnnq61q"
+   "commit": "50df921ddb48682da4ca5437a8ed20618ae9717e",
+   "sha256": "081kvqii4siipkvlfiz4adzpwrqsq47lxxp13yp7mrj9g22p0bqp"
   },
   "stable": {
    "version": [
@@ -10164,8 +10160,8 @@
     20160410,
     1449
    ],
-   "commit": "7c6719d3bb4fe552958634bd5a11abc56681f3a7",
-   "sha256": "0gywc2mzdzq3ny0jjffa3151vi7zb9i8ddy5d63x4yhicf5sxlh1"
+   "commit": "be8b69e55916cf2e78886927f58c7c49b969c0b8",
+   "sha256": "1sv5rcj04i374f9z7rg7d2p0gclhclczys4j5x4q493kv15c6zir"
   },
   "stable": {
    "version": [
@@ -10275,6 +10271,21 @@
   }
  },
  {
+  "ename": "catppuccin-theme",
+  "commit": "8d488aefda7d252649daa5be0af70e5623a4b2ec",
+  "sha256": "1bhf7blfdbsbfwyj53nf5xnlagspn0nri6hbqziha3zv1vzlg741",
+  "fetcher": "github",
+  "repo": "catppuccin/emacs",
+  "unstable": {
+   "version": [
+    20220330,
+    1021
+   ],
+   "commit": "352ebf62099e95cb4a71060a7d4a228f00358b97",
+   "sha256": "01qh2q0vlgpni66mks4xzvdzm22yq314n5n4jx20bdknbhlvb8rq"
+  }
+ },
+ {
   "ename": "cbm",
   "commit": "f28dbc97dc23cdb0b4c74f8805775c787635871e",
   "sha256": "02ch0gdw610c8dfxxjxs7ijsc9lzbhklj7hqgwfwksnyc36zcjmn",
@@ -10648,8 +10659,8 @@
     20171115,
     2108
    ],
-   "commit": "6bbfdf3109f044191750ac893aadbfc0d1b2fb0e",
-   "sha256": "0mz18pj1phxpjp54w4l7xcrm3lzp9jick4fws1wy8mk4566qiixm"
+   "commit": "8a11a6ae40396bac028437b5bb472ac722c54dda",
+   "sha256": "0pjms66ygx7icwxr3iq1s9m06vr4g6xvrd6m90jjxra78ywbc8ys"
   },
   "stable": {
    "version": [
@@ -10804,8 +10815,8 @@
     20220318,
     1007
    ],
-   "commit": "140a63995ca15d393c7e7003cf0e6edddcd4088c",
-   "sha256": "1ssl0nzm2bs3iyjak9x2gkl3206v5ihbzsspqrvrgijfv3h9yhzr"
+   "commit": "595be50f2ecdf603b87f9aeed7b8089f4317ad29",
+   "sha256": "0z4qzy63awxa7q7jflgv3asiixnl9fv162999cp5nfmnyx1jkizn"
   },
   "stable": {
    "version": [
@@ -11319,16 +11330,16 @@
   "url": "https://tildegit.org/contrapunctus/chronometrist.git",
   "unstable": {
    "version": [
-    20220326,
-    1439
+    20220401,
+    1453
    ],
    "deps": [
     "dash",
     "seq",
     "ts"
    ],
-   "commit": "3f52469f31f0bc23dd63d0b3c29bc2040dfcd98a",
-   "sha256": "1mjvn02dwhnwq6x1llnlpxzvpfkl753mbs68dahd520fvyjglnrq"
+   "commit": "059579e841148362d5081a43dcb27c8a3c7751ea",
+   "sha256": "1jrq5rjw8q88vcd82f2z5qfgzj2agb4ywsyflaj04k3fwxqgnwnf"
   },
   "stable": {
    "version": [
@@ -11372,14 +11383,14 @@
   "url": "https://tildegit.org/contrapunctus/chronometrist.git",
   "unstable": {
    "version": [
-    20220326,
-    1439
+    20220401,
+    1453
    ],
    "deps": [
     "chronometrist"
    ],
-   "commit": "3f52469f31f0bc23dd63d0b3c29bc2040dfcd98a",
-   "sha256": "1mjvn02dwhnwq6x1llnlpxzvpfkl753mbs68dahd520fvyjglnrq"
+   "commit": "059579e841148362d5081a43dcb27c8a3c7751ea",
+   "sha256": "1jrq5rjw8q88vcd82f2z5qfgzj2agb4ywsyflaj04k3fwxqgnwnf"
   },
   "stable": {
    "version": [
@@ -11409,8 +11420,8 @@
     "chronometrist",
     "spark"
    ],
-   "commit": "3f52469f31f0bc23dd63d0b3c29bc2040dfcd98a",
-   "sha256": "1mjvn02dwhnwq6x1llnlpxzvpfkl753mbs68dahd520fvyjglnrq"
+   "commit": "059579e841148362d5081a43dcb27c8a3c7751ea",
+   "sha256": "1jrq5rjw8q88vcd82f2z5qfgzj2agb4ywsyflaj04k3fwxqgnwnf"
   },
   "stable": {
    "version": [
@@ -11482,8 +11493,8 @@
   "repo": "clojure-emacs/cider",
   "unstable": {
    "version": [
-    20220324,
-    542
+    20220405,
+    1216
    ],
    "deps": [
     "clojure-mode",
@@ -11493,8 +11504,8 @@
     "sesman",
     "spinner"
    ],
-   "commit": "36277802a47b0dbc9c1fd60f60908963c59c58d6",
-   "sha256": "0z05paq62aq520n3nqc089pyx58yn670r80cda896syqs7qrxpq9"
+   "commit": "db972bbdfbe777272529ec848c9f1991ae94dbda",
+   "sha256": "0hvgczbyki9yvip00gx75laxshjbx0lixf3ibc4rj1mfplfvlcxk"
   },
   "stable": {
    "version": [
@@ -11640,14 +11651,14 @@
   "repo": "ailiop/cilk-mode",
   "unstable": {
    "version": [
-    20211222,
-    1541
+    20220411,
+    1342
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "6e46cdb72ae0348c77b70f1679b34a1155e70797",
-   "sha256": "02rrjjaak0kjm0kifdfb7a427b6q86whs1hkc515fdl1bdr7slaj"
+   "commit": "794821e129ea47b04fdeedc61d9ccb3c4240c72d",
+   "sha256": "0yvh3f165j3i4qk4qixk7xnqvfckz4dh5z7sdm3940f3wgk2g2mv"
   },
   "stable": {
    "version": [
@@ -11792,8 +11803,8 @@
   "repo": "bdarcus/citar",
   "unstable": {
    "version": [
-    20220324,
-    1539
+    20220411,
+    146
    ],
    "deps": [
     "citeproc",
@@ -11801,8 +11812,8 @@
     "parsebib",
     "s"
    ],
-   "commit": "e97e33128051b5311d640492a3dfaf8dd7cdfcfd",
-   "sha256": "0yyb3gq140cl4dxlaagm8rwxf4cvv51g20sv5d3xfkhbkymbqjf6"
+   "commit": "c94799e9f33e0645b5ac8696e19bdc9328d7cb7e",
+   "sha256": "1p8jdm08r4gyc7p00i1dp2k52ddhqwxyy7f1wzkpx6rxjbqlah95"
   },
   "stable": {
    "version": [
@@ -11905,11 +11916,11 @@
   "repo": "universal-ctags/citre",
   "unstable": {
    "version": [
-    20220324,
-    1741
+    20220406,
+    315
    ],
-   "commit": "8b51e58819e0a4b65c15f01177d1a154d9a9d153",
-   "sha256": "0yrcqypj1paszp2iwv0c67bh7vy1p3fj9n4h1ghn1y0pcqgbccb9"
+   "commit": "0ae60846b0b58f09ea463f603bcc3f414a8fb35d",
+   "sha256": "0wqvsdbasbz0hbw90883683mh5h1h8rcy7qw6qbabdiyigsv2867"
   },
   "stable": {
    "version": [
@@ -12688,14 +12699,14 @@
   "repo": "emacscollective/closql",
   "unstable": {
    "version": [
-    20220216,
-    1906
+    20220402,
+    1037
    ],
    "deps": [
     "emacsql-sqlite"
    ],
-   "commit": "1ba85ce9f7094aeddce25044689278eda6739531",
-   "sha256": "1s9riibws28xjn2bjn9qz3m2gvcmrn18b7g5y6am4sy7rgkx3nwx"
+   "commit": "522cc52a4df6b55099888e89a18f48f7c9275c3d",
+   "sha256": "16kk5x8p0jh9lvn043i5b4pnndrjxipnzz1crbr552qkkh7wy0fb"
   },
   "stable": {
    "version": [
@@ -12871,19 +12882,17 @@
     20220322,
     1258
    ],
-   "commit": "843d1d198d15f65781d71118573461fb03a3101c",
-   "sha256": "000ls9briydjr5akwm7zcia3ir9l9i7xwgn06qp3wl5j9wgasbh2"
+   "commit": "56dafdf19906bc19c5f90c0ea8ede02c3b44958b",
+   "sha256": "0x8q7g2snbisf44mryb3a8j9122h3aqqw2rhja41m8h5gbh0adxg"
   },
   "stable": {
    "version": [
     3,
     23,
-    0,
-    -1,
-    5
+    1
    ],
-   "commit": "18b02cc127730e3b007c2b56c6e115d476f0d5e0",
-   "sha256": "0qglzmmy4kyylz5fxg25mhwg01d5x5dpblh4zm3vyvmydbrdik7r"
+   "commit": "efe08e289466683b0945a5396f6848064dec5ae0",
+   "sha256": "1sm70am8h6fxbpxv7ky2vnx394i3qvg0vl215hg2lqaf9p9ll0ld"
   }
  },
  {
@@ -13068,8 +13077,8 @@
   "repo": "wandersoncferreira/code-review",
   "unstable": {
    "version": [
-    20220318,
-    1429
+    20220328,
+    108
    ],
    "deps": [
     "a",
@@ -13082,8 +13091,8 @@
     "markdown-mode",
     "uuidgen"
    ],
-   "commit": "6a10610826990e62c99486e30c0b3ef5869559e3",
-   "sha256": "0zajjm560vyjryr9yclda0j6f13w44mqzh1rz7kqxfl5sp6sv53m"
+   "commit": "85ab2080e489b4ca01c787f5a316ade02a4ee877",
+   "sha256": "0j0ijnzfd7b3a2jqi94zlky8iqv9g7vj9fx5fd4g2k53ilgapmdl"
   },
   "stable": {
    "version": [
@@ -13283,14 +13292,14 @@
   "repo": "ankurdave/color-identifiers-mode",
   "unstable": {
    "version": [
-    20220318,
-    1558
+    20220327,
+    1143
    ],
    "deps": [
     "dash"
    ],
-   "commit": "05dfc97b004f1a962313710d81cffae3b2f9c98a",
-   "sha256": "161mn6b14kbpf4lyqw9ijxqir8qxbz9rr7ydx03z6shjfp7ciz54"
+   "commit": "6fe76f0c3090f6023da3806e9d760e93810905d4",
+   "sha256": "05lsgksrif3isrlgr31fcwpmndgbl6qggj6jxznj3lqvhq9vz5zj"
   },
   "stable": {
    "version": [
@@ -13426,11 +13435,11 @@
   "repo": "purcell/color-theme-sanityinc-tomorrow",
   "unstable": {
    "version": [
-    20210907,
-    1208
+    20220412,
+    1643
    ],
-   "commit": "e2857533627f3eda3e9e21de7f2a99b8634c1c15",
-   "sha256": "0hi1wg9v5ax71q14jk6mpp3mpfx2ma490l0kxdq2wkajkmh4apr1"
+   "commit": "2b373a767129ed4e8c4d52e0ee827786224d7106",
+   "sha256": "13hkqpczf256r44vczf8nbbs4rwjikjwsshgj54alzzgcxsxc174"
   },
   "stable": {
    "version": [
@@ -13535,8 +13544,8 @@
    "deps": [
     "s"
    ],
-   "commit": "d4958edf2a4a8cbe55097320e191045d496847d8",
-   "sha256": "1yi1ha4iyfb0362x7wk65lksh6377mga0xyva65s035i75r4k05n"
+   "commit": "3e7e10bfa7124a7d29a79ab1385d2f1f413952ed",
+   "sha256": "1i719q025nb053mn65rj9r2hxln7drk998nq3j2ib1g89vvj12kg"
   },
   "stable": {
    "version": [
@@ -13870,11 +13879,11 @@
   "repo": "company-mode/company-mode",
   "unstable": {
    "version": [
-    20220326,
-    48
+    20220406,
+    2323
    ],
-   "commit": "783287526a791590bea4f9a23992c2bfebdb4c8d",
-   "sha256": "1cxr4dc0yfnccjk3l3sc15ys0pzff0r133msq59nzk6r48ba9p0q"
+   "commit": "1005540b1cdf176cbcf893b2fa83d2075cbbe3ca",
+   "sha256": "0fh1ym2axvhw25i4g56znsclapr9mvidq9n33cz4gxp4g2l82z2v"
   },
   "stable": {
    "version": [
@@ -14328,8 +14337,8 @@
     "emojify",
     "ht"
    ],
-   "commit": "34f33e4bd1fc11da306c1d159def96cd92e4c00f",
-   "sha256": "0v6j7xjl5gs513gydxj2hn5f17p6y6fqbf8ik8v5ac5lifhwcn6q"
+   "commit": "2ea893fcf436b1795ebacbb01f3a1ae93ed88dfc",
+   "sha256": "17xwhipidalj3ai5xl7i1y72qzvyv9d5ab0ql452a99ib8dkxy04"
   },
   "stable": {
    "version": [
@@ -14424,16 +14433,16 @@
   "repo": "jcs-elpa/company-fuzzy",
   "unstable": {
    "version": [
-    20220325,
-    1206
+    20220409,
+    1753
    ],
    "deps": [
     "company",
     "ht",
     "s"
    ],
-   "commit": "4fd30469d50a5d49e035a02a29c6acf5fb72a494",
-   "sha256": "1qqdma87jvmybd0af5ls86v2k62586ijqkymg99w6dxvlsd8wj6w"
+   "commit": "a3a5803ddc77e092db01b4e46288e406e6568262",
+   "sha256": "1nyw0cd8qjxz3q5iahqr1kg749p9i3vcmwhd5gnv6370knxyd35s"
   },
   "stable": {
    "version": [
@@ -15096,15 +15105,15 @@
   "repo": "tumashu/company-posframe",
   "unstable": {
    "version": [
-    20220110,
-    1017
+    20220331,
+    2141
    ],
    "deps": [
     "company",
     "posframe"
    ],
-   "commit": "ede518dbe05c93b3699052204d0b7a98b2e1c0df",
-   "sha256": "0mginqfmf42h3f88s6mgpqngbnwsnbv1x6k08cr2mmqc1khg4xnw"
+   "commit": "df0e34f69dc8e9aaa1a6c5e88783898f4ae3f2df",
+   "sha256": "0qkyxjlzgrpg7vrpdknqhb7649qqhqp4m1ry6as6sf288nbnw28s"
   },
   "stable": {
    "version": [
@@ -15217,8 +15226,8 @@
     "company-quickhelp",
     "popup"
    ],
-   "commit": "fe68967d901ec284022fd67d296866795476e60d",
-   "sha256": "1586vwl280z463h9yb5ijjhwi3dmizcmwxy54rh2pd8yljgxsjlm"
+   "commit": "c438a75d229d2803299207e9bf8a38fdea30c0c6",
+   "sha256": "1wid4sy5qizxng1hfmh821x3dj9fji2i87vzfww491bd99nq2d00"
   },
   "stable": {
    "version": [
@@ -15638,26 +15647,26 @@
   "repo": "johannes-mueller/company-wordfreq.el",
   "unstable": {
    "version": [
-    20210201,
-    1839
+    20220405,
+    2000
    ],
    "deps": [
     "company"
    ],
-   "commit": "3787785af2135c42af7b22562da554628141afdb",
-   "sha256": "0iwhi1pw14finc9n9avlv79wnyl8628cmdka5j83hjv1bs2fnysw"
+   "commit": "83569cf346c2320ef22f6a858e3424f771c4324e",
+   "sha256": "1rmv8985adf1vibs070fnzzjnbxaj0qgwjyqmnd5v7v020rkpmrc"
   },
   "stable": {
    "version": [
     0,
     1,
-    1
+    2
    ],
    "deps": [
     "company"
    ],
-   "commit": "3787785af2135c42af7b22562da554628141afdb",
-   "sha256": "0iwhi1pw14finc9n9avlv79wnyl8628cmdka5j83hjv1bs2fnysw"
+   "commit": "83569cf346c2320ef22f6a858e3424f771c4324e",
+   "sha256": "1rmv8985adf1vibs070fnzzjnbxaj0qgwjyqmnd5v7v020rkpmrc"
   }
  },
  {
@@ -16077,11 +16086,11 @@
   "repo": "minad/consult",
   "unstable": {
    "version": [
-    20220319,
-    2221
+    20220412,
+    1243
    ],
-   "commit": "47c4f405efdf4692c6b7e1dd2098573db9aeae6c",
-   "sha256": "1nph35a4q2a4sbsmh9hcxvwcr4pfshnmrc8ahk4qn825a7iny70w"
+   "commit": "af452dc5d429e15fb1228dd6967d592f1c483640",
+   "sha256": "0b87i9v4mdd9ay1kngsylp725vkw9wvi3r1mqd6gb49ygs9bz6f6"
   },
   "stable": {
    "version": [
@@ -16150,15 +16159,16 @@
   "repo": "mohkale/consult-eglot",
   "unstable": {
    "version": [
-    20210905,
-    1830
+    20220409,
+    1238
    ],
    "deps": [
     "consult",
-    "eglot"
+    "eglot",
+    "project"
    ],
-   "commit": "f93c571dc392a8b11d35541bffde30bd9f411d30",
-   "sha256": "1jqg6sg6iaqxpfn7symiy221mg9sn4y1rn0l1rw9rj9xmcnng7s0"
+   "commit": "0da8801dd8435160ce1f62ad8066bd52e38f5cbd",
+   "sha256": "1qxk1npxbf8m3g9spikgdxcf6mzjx6cwy3f5vn6zz5ksh14xw3sd"
   },
   "stable": {
    "version": [
@@ -16182,15 +16192,15 @@
   "repo": "minad/consult-flycheck",
   "unstable": {
    "version": [
-    20210530,
-    202
+    20220403,
+    1810
    ],
    "deps": [
     "consult",
     "flycheck"
    ],
-   "commit": "0ad7e8ff15683a4d64b79c29b3fcf847edfe244b",
-   "sha256": "09h9p7axy4gavzz2fn847hx2xvfxlnz4x9lpvp9arivjzn0yqrzi"
+   "commit": "9b40f136c017fadf6239d7602d16bf73b4ad5198",
+   "sha256": "0m30kz2ixxih433kddkyi0sfh7hkwm746417l2f30b273vlfj7ya"
   },
   "stable": {
    "version": [
@@ -16263,29 +16273,29 @@
   "repo": "gagbo/consult-lsp",
   "unstable": {
    "version": [
-    20220320,
-    1125
+    20220409,
+    1107
    ],
    "deps": [
     "consult",
     "f",
     "lsp-mode"
    ],
-   "commit": "0dfc9d55876d4cf7c32f8a663fe6343927f78052",
-   "sha256": "15w586gp8x4d52wlf4b6lcmgsidav8slqr97yrj1jfhyri2sryx9"
+   "commit": "a8eb3a062feb2715f174500d0624d3a85e000cf7",
+   "sha256": "12yq494xd256fsqzlvcpv70i6szyvqchhrw9wnkw320ciim815sw"
   },
   "stable": {
    "version": [
-    0,
-    6
+    1,
+    0
    ],
    "deps": [
     "consult",
     "f",
     "lsp-mode"
    ],
-   "commit": "c3d9f1bbb5ac8504b874d79fb3a573457d584640",
-   "sha256": "13haynm8s406rasqkdsl2x5j2lbjcw3q3knv6mr9z0da2igwrag9"
+   "commit": "a750a90c265176f0285cb13aded119383836a7b2",
+   "sha256": "14dyclspkf1a34nvjj800ckz1phsizq07ps8k4x0ah6ik0hfhy1w"
   }
  },
  {
@@ -16296,15 +16306,15 @@
   "url": "https://codeberg.org/jao/consult-notmuch.git",
   "unstable": {
    "version": [
-    20220302,
-    229
+    20220408,
+    1923
    ],
    "deps": [
     "consult",
     "notmuch"
    ],
-   "commit": "883527072b56bb09dd921800bca13860caaa4ffe",
-   "sha256": "0xzpkpf2sb89qkbqcrwddp4pgnzdjp40bc5da22jq9r4pf67y7qs"
+   "commit": "5e952b540552dea5965929711a716775b9a0dc74",
+   "sha256": "1jg05qng54j8m5rnvp8x5fv9ib4i8ba2g569vjgazjq20g6b3lc8"
   },
   "stable": {
    "version": [
@@ -16320,6 +16330,25 @@
   }
  },
  {
+  "ename": "consult-org-roam",
+  "commit": "f34e29fd26e1b708274dd0b44baa29af762cf1a5",
+  "sha256": "1h952zkb4a9a4l1kdgzs0lwlvmvqggqgwghcgxkxj3pk3qvf0slx",
+  "fetcher": "github",
+  "repo": "jgru/consult-org-roam",
+  "unstable": {
+   "version": [
+    20220410,
+    632
+   ],
+   "deps": [
+    "consult",
+    "org-roam"
+   ],
+   "commit": "53b50493309a8f5e4dcc3951ec341b3124fddbf6",
+   "sha256": "00bc1padsnw6dmnfabl90p4qj8709446vvmb8i0gbk5a36m2yjn0"
+  }
+ },
+ {
   "ename": "consult-project-extra",
   "commit": "c7df62c7b77134617aa018025736a37760fad471",
   "sha256": "0s77hk2iq0q77cdw1j805a5w74hrcj6fvpwk1y9yy0bp0w4gcr4m",
@@ -16424,15 +16453,15 @@
   "repo": "mohkale/consult-yasnippet",
   "unstable": {
    "version": [
-    20211122,
-    810
+    20220409,
+    1209
    ],
    "deps": [
     "consult",
     "yasnippet"
    ],
-   "commit": "9f38ad510328e708370a3a6b41cf40e8bd031b04",
-   "sha256": "019m29j9xf49shd3qnkvxx8bb20d7xavq1y5a07k5vn9lahmzhj2"
+   "commit": "cdb256d2c50e4f8473c6052e1009441b65b8f8ab",
+   "sha256": "0sr0v6kd91sbz8zfg35b5y2s3mr047a75kwh9himn2jgrm75kl50"
   }
  },
  {
@@ -16708,14 +16737,14 @@
   "repo": "galeo/corfu-doc",
   "unstable": {
    "version": [
-    20220318,
-    1052
+    20220407,
+    1556
    ],
    "deps": [
     "corfu"
    ],
-   "commit": "95fdae5755e6c88cf77b409b555290c36961ec6c",
-   "sha256": "09lmvb88nj7ivsr6gh93xhbfav80pm69z3dgnifnn1g2gfjnjjka"
+   "commit": "07307b68a3e22537cc16e0b326b0212c6e8bc58e",
+   "sha256": "08bv49jpnm9yi890ppzsnajy7n21mhjm9bm2z5pp0qyj0zlfq9gf"
   }
  },
  {
@@ -16796,15 +16825,15 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20211230,
-    1909
+    20220402,
+    953
    ],
    "deps": [
     "ivy",
     "swiper"
    ],
-   "commit": "c97ea72285f2428ed61b519269274d27f2b695f9",
-   "sha256": "05ivdsq6l6ixdn5p0rjh7mcgw19fm38m137xb8yi2c9gii6yk6g2"
+   "commit": "7489968257a74f176c0d1de7ec8bd1e2011f0db4",
+   "sha256": "0gmgfv9d5vicd5lqcbzn0i6qfjw42whhww6hdqch2pgkhl4i1ria"
   },
   "stable": {
    "version": [
@@ -17034,14 +17063,14 @@
   "repo": "redguardtoo/counsel-etags",
   "unstable": {
    "version": [
-    20220213,
-    1104
+    20220405,
+    510
    ],
    "deps": [
     "counsel"
    ],
-   "commit": "80b5816c1fab8c0621601f7fbe7ba65b2c67e9cd",
-   "sha256": "10bprk9ixbsyfzrl7b23gc6wgwwyg4ksyw9w28071r2hpz2dssv7"
+   "commit": "c74ae94297c4a2dc0b6878c2e9460a4f386158d4",
+   "sha256": "01a11dij88ysnrpmrs0flc9m43mlbc41zcahwmaqdp58rvgc24ji"
   },
   "stable": {
    "version": [
@@ -17428,16 +17457,16 @@
   "repo": "AdamNiederer/cov",
   "unstable": {
    "version": [
-    20211203,
-    416
+    20220410,
+    2247
    ],
    "deps": [
     "elquery",
     "f",
     "s"
    ],
-   "commit": "6c951cca9867e26df316ca5dc313ceabd22070a5",
-   "sha256": "16xf7hfyq39wc363g6lqmdcl0vidk4i9wycdws17954w9gzhahq6"
+   "commit": "8396fa82a84965cd88fa23f5b361ab80ff28e231",
+   "sha256": "14qgws2zi9qvw7jvp155xh8437g409g02bv7042xkjxz13bwa5ss"
   }
  },
  {
@@ -18630,14 +18659,14 @@
   "repo": "ideasman42/emacs-cycle-at-point",
   "unstable": {
    "version": [
-    20220220,
-    431
+    20220406,
+    1340
    ],
    "deps": [
     "recomplete"
    ],
-   "commit": "ea22b90f35f4cef73387047b3ef3fad83787d4e2",
-   "sha256": "100aziv6wwrkalx07sy8za6kvnj30pknj1shbymspw13bpp7wqxj"
+   "commit": "4637a9288028f3eaa31cfa9658cfe78f423b16cf",
+   "sha256": "11s016kcv15p8001xivimjlrc7h9xiisa47s769wq1n93csq9749"
   }
  },
  {
@@ -18723,8 +18752,8 @@
     20211111,
     1407
    ],
-   "commit": "d85cbf676dd7bec80fbfc23d038575a21859ac87",
-   "sha256": "16ix9zxwmr0m8c6p61dddwmgs95jv942pr9alz9az7dw71d0flac"
+   "commit": "d2d2ea33a21e1915a52790ef64fdd1f28867854c",
+   "sha256": "13ckyzfw8y2skdx9ynwn4m0cpmcd13qr4fxdymaxfid7x162i62r"
   },
   "stable": {
    "version": [
@@ -19132,11 +19161,11 @@
   "repo": "bradyt/dart-mode",
   "unstable": {
    "version": [
-    20210830,
+    20220401,
     0
    ],
-   "commit": "3bac14200f9f8f8fcebc383087572da5c3823c34",
-   "sha256": "1vql8m4nj0brmv58b6lkbhykik8n6j4i7d3nylcls78y7ihc2cz8"
+   "commit": "9c846769abd37f7fdc7ba8388d1f3a2b844b75e3",
+   "sha256": "1qlxjfmw8hbg1d1ll4jivsjw6a3x6j5q00w6kkvl58n65pkpm5ng"
   },
   "stable": {
    "version": [
@@ -19192,11 +19221,11 @@
   "repo": "magnars/dash.el",
   "unstable": {
    "version": [
-    20210826,
-    1149
+    20220404,
+    2004
    ],
-   "commit": "da167c51e9fd167a48d06c7c0ee8e3ac7abd9718",
-   "sha256": "14fwib33l32fmmjr03zyk9xynblrkggb1b47x2ihh6jfxq8i9qm1"
+   "commit": "dc61f4641779616122692e34a32ba2a158ee034c",
+   "sha256": "1lhcqlmysqlv38i3nx09bn4ad8q3ly9r5i0ba0lx3a1al94djmpl"
   },
   "stable": {
    "version": [
@@ -19271,8 +19300,8 @@
    "deps": [
     "dash"
    ],
-   "commit": "da167c51e9fd167a48d06c7c0ee8e3ac7abd9718",
-   "sha256": "14fwib33l32fmmjr03zyk9xynblrkggb1b47x2ihh6jfxq8i9qm1"
+   "commit": "dc61f4641779616122692e34a32ba2a158ee034c",
+   "sha256": "1lhcqlmysqlv38i3nx09bn4ad8q3ly9r5i0ba0lx3a1al94djmpl"
   },
   "stable": {
    "version": [
@@ -19295,11 +19324,11 @@
   "repo": "emacs-dashboard/emacs-dashboard",
   "unstable": {
    "version": [
-    20220326,
-    725
+    20220409,
+    620
    ],
-   "commit": "1d3fce6e8e8605f770f2b23184b055029128c477",
-   "sha256": "0kylaqz16xmc22xainarnwn31rlanw3ycapdxga0hgyg972p1z45"
+   "commit": "126743bb77c02d12d4f7e3678cef47d6a836cbc1",
+   "sha256": "168cxkwray5b30nlc77ypmb1z3f3s258psvkb6lxyyc6xfswcjv9"
   },
   "stable": {
    "version": [
@@ -19347,8 +19376,8 @@
    "deps": [
     "dashboard"
    ],
-   "commit": "73d280e029dfb68c2666dbc20130300439b170b7",
-   "sha256": "1rsv008hfk8v8wkhfqhhpyf5k7hhhh0aisa36ram6a3y5gwj0ac5"
+   "commit": "2b0bf850e893c87380ae0b64d887db0b3a3fcead",
+   "sha256": "0l9ijqia6z0miwpfxzi3pab90bq9iirc2b8aansly6jg4ybihmxj"
   },
   "stable": {
    "version": [
@@ -19957,8 +19986,8 @@
     "s",
     "wiki-summary"
    ],
-   "commit": "ba801ce1851a83bad2b962c47aef1f86f56286dd",
-   "sha256": "0psf7cnps4qkxz48cqvkgqcqyll825d5zdlw297v670rjjxbpclm"
+   "commit": "63095df0b1b55207a6b51b745ca00bb152dbedf6",
+   "sha256": "1nmmwxg2yfliqhdy9c7d8dfcqiwzw84hd4a8a7jy9cq4ribpavgh"
   },
   "stable": {
    "version": [
@@ -20344,11 +20373,11 @@
   "repo": "astoff/devdocs.el",
   "unstable": {
    "version": [
-    20220326,
-    943
+    20220410,
+    1627
    ],
-   "commit": "be6cdf690a49d5bb39da7ea29c10cec660f7c60a",
-   "sha256": "0wq220bv7k2aqqsfc83akg6ygrwshn5haaqibpzgr05n8w4264v6"
+   "commit": "4257e59dafbffb2616d240f84c5c25770ee28cac",
+   "sha256": "1ddzydqrgz2c12s24gy3c1gb2d9344z7ykxy2yn5gn6dzjynfnl9"
   }
  },
  {
@@ -20591,14 +20620,14 @@
   "repo": "dgutov/diff-hl",
   "unstable": {
    "version": [
-    20220124,
-    323
+    20220405,
+    2359
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "4a08b02afec1fc6b1e84de46cc34f75f6c9c3bcc",
-   "sha256": "1c8v4c9cz9mcn70dws79yh1fd3nxkbb6mdrlqs5nwy7m3d2l567a"
+   "commit": "9d5dc2ffa1e4c7b43734b03dccb5ae6a80800569",
+   "sha256": "1mk0lqfgln23zqx4fc1z6vv2wprmksjv2cy7yyrj8qvkm29fqm94"
   },
   "stable": {
    "version": [
@@ -20692,6 +20721,21 @@
   }
  },
  {
+  "ename": "diffsync",
+  "commit": "581413a6c017265568a89b08ad608bb0b4563123",
+  "sha256": "1kny243c3gy9wkyhc06mw12wwbmigsidicrhl7bzhrpbam7an4w4",
+  "fetcher": "github",
+  "repo": "ber-ro/diffsync",
+  "unstable": {
+   "version": [
+    20220408,
+    1341
+   ],
+   "commit": "32a3e64bec16b34c3df4dc41d3df09a2ca2dc63f",
+   "sha256": "0znbk21nymmiq5hprvqly0w6dfsbsabaqnqkgnncc35cqm2qx8cl"
+  }
+ },
+ {
   "ename": "diffview",
   "commit": "0ea5dd4c9c114618ac20f565c878f509ce8d9872",
   "sha256": "0vlzmykvxjwjww313brl1nr13kz41jypsk0s3l8q3rbsnkpfic5k",
@@ -20858,8 +20902,8 @@
     20220101,
     1042
    ],
-   "commit": "d7f5ba3169c1c6962bc7fb0bdbfb2c6fae018025",
-   "sha256": "1apipnqpmzfvlarsyjkpx02773krw878hxdgcax2y0f77vmqpnrr"
+   "commit": "63471f8798157d15776fc8d9470796e56d1a415b",
+   "sha256": "0m06fmq7ldxd5gsk25w4wcwin06x13y37gl0lcdapn902rly4l5g"
   },
   "stable": {
    "version": [
@@ -20935,8 +20979,8 @@
     20220218,
     1541
    ],
-   "commit": "8f517bbb04411a125860ce4fb169bcea06b364e9",
-   "sha256": "0frffd2b7q22xdvk9li9vivd810sy6xkw001ajc0q7c70wxj0ksk"
+   "commit": "94749f5095353343ce458f08ba4cfeb880b4bf24",
+   "sha256": "044zjpp37a3ciq2dhfpzjnvc408ch53fpszl9zsj7c0gv9npd2jg"
   },
   "stable": {
    "version": [
@@ -21633,14 +21677,14 @@
   "repo": "jojojames/dired-sidebar",
   "unstable": {
    "version": [
-    20220317,
-    1546
+    20220413,
+    753
    ],
    "deps": [
     "dired-subtree"
    ],
-   "commit": "aed7e44b5a4ef37fa7be6210ddfe73bb724bac6f",
-   "sha256": "1wc4lb7rpim4npjl7aszc1ddpsqf2an8v7j4dasxlvdq0n2zz6qn"
+   "commit": "0521cdc53e4a7ae7ea4728e5ac9f69287528dc56",
+   "sha256": "0r25hnij6yfdnspp0kmcp1j8dkw44xgq05ldvxqmricawxnsaxw8"
   },
   "stable": {
    "version": [
@@ -21813,8 +21857,8 @@
     20220103,
     1744
    ],
-   "commit": "f9140b2c42151dca669003d685c9f079b2e3dc37",
-   "sha256": "0m4hsg50ykbkgmv5kl6y0h4i20ln813fw9yzwslxgnz2479nad2b"
+   "commit": "59f8e5bf5c2991aa54a471f61f14d77976db194a",
+   "sha256": "1ai5hxy87ljz6ch8blj4khm4v9clqxmrfhh5m5hnz9kd7n3d2wyh"
   },
   "stable": {
    "version": [
@@ -21978,11 +22022,11 @@
   "repo": "alexluigit/dirvish",
   "unstable": {
    "version": [
-    20220325,
-    1418
+    20220413,
+    1257
    ],
-   "commit": "7d26d98df1a7af0266261e0e666a890a86a52bd0",
-   "sha256": "1yw1y5kdhs2213bvsmd65yhw3h2c7dzb70977bjd0pa083xddr0p"
+   "commit": "78ba565d1aa476d76e799876716ea2ff79a6aadc",
+   "sha256": "0p7r3vj8vjhbw3kxw9i1210l3fvhg0hm2pp1a0jamn3a7d31534l"
   },
   "stable": {
    "version": [
@@ -22694,8 +22738,8 @@
   "repo": "Silex/docker.el",
   "unstable": {
    "version": [
-    20220320,
-    1935
+    20220409,
+    1157
    ],
    "deps": [
     "aio",
@@ -22706,8 +22750,8 @@
     "tablist",
     "transient"
    ],
-   "commit": "fbd896e3138f497b89a128d17b6f5e0e5286515b",
-   "sha256": "0d430ignd6yw117srysc8bxghlq0h8k533pl8k882q0mfgpnaqhw"
+   "commit": "cf137f5b8af7cbda17ef1d09c626db35e0e84078",
+   "sha256": "0rdi882r746nv8zzpcc3rv9p110ylwv1bk7nbzcychn7qsc05ydz"
   },
   "stable": {
    "version": [
@@ -22909,8 +22953,8 @@
    "deps": [
     "s"
    ],
-   "commit": "6267907a6b57c32b430b481fe129a6cae8792784",
-   "sha256": "1blgf4jw5crd4daidcnj5hv57hzvhqwhfsgxvxb8rlzaapk751wc"
+   "commit": "604999a4a40d0599808fdef99612740c143cc590",
+   "sha256": "1a9kwy6p5dw1kvdr9d52kgxn6w89xxn3r2p9y6hxl4f9s923j70a"
   },
   "stable": {
    "version": [
@@ -23070,16 +23114,16 @@
   "repo": "seagle0128/doom-modeline",
   "unstable": {
    "version": [
-    20220325,
-    554
+    20220412,
+    853
    ],
    "deps": [
     "all-the-icons",
     "dash",
     "shrink-path"
    ],
-   "commit": "edf18b93cceb5cf00e1006d0034663ef4d9fdc11",
-   "sha256": "0l0lb3in80p9hgqqbrjrnbcjb2vqxw4qxgxl42vz6kvx77fk77j7"
+   "commit": "7d8eb7c44087a62d8dd6e8ba1afc26facd914fbc",
+   "sha256": "0y050g6qgzzw7krabgw0gx2dx6mv7kkzy5y501id37cgryhws483"
   },
   "stable": {
    "version": [
@@ -23809,8 +23853,8 @@
     20210909,
     1010
    ],
-   "commit": "33d625d08bcf596a6c309d791a2cab70f2b8abce",
-   "sha256": "1pak38z3bq35b21lz3wm0jvhjznffhi7i6h9nvs1qcf9s7frw2b6"
+   "commit": "a27ffbdbd6153db839fdb01495753f2556759640",
+   "sha256": "0kl1b8g64gv524g8ys5rimy0xm4bvvr7c7s4q4qcyjx5h51fpa45"
   },
   "stable": {
    "version": [
@@ -23836,8 +23880,8 @@
    "deps": [
     "reformatter"
    ],
-   "commit": "eda7a16ae378e7c482c11228c43ef32b893a1520",
-   "sha256": "0z39a1c227si435j3k8vkf4q6l01jdf70x69dywsmnrkcrcvrbf8"
+   "commit": "196f16a01f4c855de7becddbc4cfed2f6788693a",
+   "sha256": "0znk3z8khzkb068rqz9ms9c28i4f30cmb4kafqjhxf6980mcp9vn"
   },
   "stable": {
    "version": [
@@ -24575,14 +24619,14 @@
   "repo": "joostkremers/ebib",
   "unstable": {
    "version": [
-    20220314,
-    2256
+    20220407,
+    2003
    ],
    "deps": [
     "parsebib"
    ],
-   "commit": "600b5e3d3dd98ba4017ad257470424b4507b4e59",
-   "sha256": "0mybyw2hh104z53lnp2pvcm9sg01wdad0hqyxl6msrq12n8pkr4x"
+   "commit": "6a044c9cc3429ff6c4072be1c184e0c6ffc49b58",
+   "sha256": "1isv6gmqcfqxlc8nsflsm4z266x8x56w3msj4skz9nvjljyhgd77"
   },
   "stable": {
    "version": [
@@ -25244,11 +25288,11 @@
   "repo": "sinic/ednc",
   "unstable": {
    "version": [
-    20220226,
-    1619
+    20220404,
+    2105
    ],
-   "commit": "bf588399e241742962613ce2a96f0cffc86417f6",
-   "sha256": "0y0rxiqa1vxz4ylhagr9mnh1x4lghg1md3k1pqzciq9gnqgl3fpn"
+   "commit": "d1a3c37235dd87e0bce6ffc75f5568218d6d83b4",
+   "sha256": "19k9mi6phdny1ihxf5apkxfv67cvyihl0za7al29dvim6172km4y"
   }
  },
  {
@@ -25467,8 +25511,8 @@
   "repo": "joaotavora/eglot",
   "unstable": {
    "version": [
-    20220324,
-    1606
+    20220406,
+    1459
    ],
    "deps": [
     "eldoc",
@@ -25478,8 +25522,8 @@
     "seq",
     "xref"
    ],
-   "commit": "03fc783c4b701fc8c19096b7167b73bd5d8f63a8",
-   "sha256": "1w2j3rrbgh1mffhzbjgm3hcvijmfdcfp06pkgnacfi9dydwcap62"
+   "commit": "2c34dae387c583aa307615779ff570a84d5e723c",
+   "sha256": "1wzl0vj5fvxgm3j596vmczjazdn1ix6dgh4fvg3zn25i2rbxa7l0"
   },
   "stable": {
    "version": [
@@ -25505,16 +25549,16 @@
   "repo": "fsharp/emacs-fsharp-mode",
   "unstable": {
    "version": [
-    20211020,
-    1758
+    20220409,
+    1811
    ],
    "deps": [
     "eglot",
     "fsharp-mode",
     "jsonrpc"
    ],
-   "commit": "b3aa4c53fc9e98648b25ad036e657632ae2fe192",
-   "sha256": "14n1xpj5waflhc1zj8mfnm4xavy560n1hamqk6a0dvsahpixjx6g"
+   "commit": "454a4ac3efaec2109178c3b0ca7392ce2818ec26",
+   "sha256": "1zdah0d52806bkbm24lz0hl9z97224w1k6r8c0fbyyi16265ghc3"
   },
   "stable": {
    "version": [
@@ -25536,15 +25580,15 @@
   "repo": "yveszoundi/eglot-java",
   "unstable": {
    "version": [
-    20211213,
-    1014
+    20220403,
+    1815
    ],
    "deps": [
     "eglot",
     "jsonrpc"
    ],
-   "commit": "66b9615ab021d26d92de34e5131cee44f8e58886",
-   "sha256": "0lfifd43fz09avwgy6gs7j06s2xxlll6vkrbfbb9gl4r6q17786y"
+   "commit": "da76eb69b3f86992d62302649a987f157b7b7371",
+   "sha256": "0m64jdv20pch1f1n41rh28bgi4cxa84vdfpq7sdxjgs8laqc928g"
   }
  },
  {
@@ -25763,6 +25807,30 @@
   }
  },
  {
+  "ename": "el-fetch",
+  "commit": "97761f51eec22d45a64f6fcc9765b7ac924e56ef",
+  "sha256": "0mk9zyrx1bs9mii748vjvsj1h4frhqac7hda7jp6xyxlr6n4ys88",
+  "fetcher": "gitlab",
+  "repo": "xgqt/emacs-el-fetch",
+  "unstable": {
+   "version": [
+    20220404,
+    2144
+   ],
+   "commit": "2af3483c4ced80c22f0b4ccabdea06d87a23b5f9",
+   "sha256": "0jqmh7ivn6vaxsni4adxzyd8df4z6j6jf4iqfn88cqci7ddh7zjb"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
+   ],
+   "commit": "3ccb2619e75c966b1bf1ad8a68919566be70042f",
+   "sha256": "0jqmh7ivn6vaxsni4adxzyd8df4z6j6jf4iqfn88cqci7ddh7zjb"
+  }
+ },
+ {
   "ename": "el-fly-indent-mode",
   "commit": "237311b98eec4b577409f55e16d8e640936d41a2",
   "sha256": "00iqiawbzijm515lswbkzxf1m6ys242xrg6lzf8k40g2ygyd1q1r",
@@ -25881,8 +25949,8 @@
     20170824,
     1954
    ],
-   "commit": "5df1d3a956544f1d3ad0bcd81daf47fff33ab8cc",
-   "sha256": "06ldnrpqvbdxfzr8v7pj9xacgvkp36xjlhvjkpxldmqj1l5v8a6w"
+   "commit": "6ebfe64410d54b4cf76f655e416d49935d5e2ceb",
+   "sha256": "0s04nrcm7y9zljj4sni5ij2b3jciwqrxxscsm1ibchh48i1gffp7"
   },
   "stable": {
    "version": [
@@ -25932,8 +26000,8 @@
     "hercules",
     "org-ql"
    ],
-   "commit": "dd7edc12568902561c8939e389626b3f0c7f6312",
-   "sha256": "0zc6d58plwnmmf0k0dgklfaya5k6ai6gmabpjl5n16r50x39jafs"
+   "commit": "4ac85deae0a2c5f76337cffc0744c8373e5d8f5d",
+   "sha256": "0rl31hh80xfdgawpfpwfpnbhbphc43h5immk36p6cv357nb2xj4s"
   }
  },
  {
@@ -25951,8 +26019,8 @@
     "el-secretario",
     "elfeed"
    ],
-   "commit": "dd7edc12568902561c8939e389626b3f0c7f6312",
-   "sha256": "0zc6d58plwnmmf0k0dgklfaya5k6ai6gmabpjl5n16r50x39jafs"
+   "commit": "4ac85deae0a2c5f76337cffc0744c8373e5d8f5d",
+   "sha256": "0rl31hh80xfdgawpfpwfpnbhbphc43h5immk36p6cv357nb2xj4s"
   }
  },
  {
@@ -25970,8 +26038,8 @@
     "el-secretario",
     "org-ql"
    ],
-   "commit": "dd7edc12568902561c8939e389626b3f0c7f6312",
-   "sha256": "0zc6d58plwnmmf0k0dgklfaya5k6ai6gmabpjl5n16r50x39jafs"
+   "commit": "4ac85deae0a2c5f76337cffc0744c8373e5d8f5d",
+   "sha256": "0rl31hh80xfdgawpfpwfpnbhbphc43h5immk36p6cv357nb2xj4s"
   }
  },
  {
@@ -25989,8 +26057,8 @@
     "el-secretario",
     "notmuch"
    ],
-   "commit": "dd7edc12568902561c8939e389626b3f0c7f6312",
-   "sha256": "0zc6d58plwnmmf0k0dgklfaya5k6ai6gmabpjl5n16r50x39jafs"
+   "commit": "4ac85deae0a2c5f76337cffc0744c8373e5d8f5d",
+   "sha256": "0rl31hh80xfdgawpfpwfpnbhbphc43h5immk36p6cv357nb2xj4s"
   }
  },
  {
@@ -26001,16 +26069,16 @@
   "url": "https://git.sr.ht/~zetagon/el-secretario",
   "unstable": {
    "version": [
-    20211222,
-    1620
+    20220328,
+    1246
    ],
    "deps": [
     "dash",
     "el-secretario",
     "org-ql"
    ],
-   "commit": "dd7edc12568902561c8939e389626b3f0c7f6312",
-   "sha256": "0zc6d58plwnmmf0k0dgklfaya5k6ai6gmabpjl5n16r50x39jafs"
+   "commit": "4ac85deae0a2c5f76337cffc0744c8373e5d8f5d",
+   "sha256": "0rl31hh80xfdgawpfpwfpnbhbphc43h5immk36p6cv357nb2xj4s"
   }
  },
  {
@@ -26732,6 +26800,25 @@
   }
  },
  {
+  "ename": "elfeed-summary",
+  "commit": "18ebc0f8936a60ab06cb5da512d8b168179a06cb",
+  "sha256": "04jk4ncmnhv8l233vwlk1aj1jqi6yp885y505hw5shhx2wi1ps8d",
+  "fetcher": "github",
+  "repo": "SqrtMinusOne/elfeed-summary",
+  "unstable": {
+   "version": [
+    20220331,
+    1634
+   ],
+   "deps": [
+    "elfeed",
+    "magit-section"
+   ],
+   "commit": "517cea6cb6fbf95ef3cb062591364bb7bda8c251",
+   "sha256": "17ir0kmb6v9fyl6ink2mc25fxf0hs2kbcpfaxwcr8kz087n2bz7n"
+  }
+ },
+ {
   "ename": "elfeed-web",
   "commit": "62459d16ee44d5fcf170c0ebc981ca2c7d4672f2",
   "sha256": "14ydwvjjc6wbhkj4g4xdh0c3nh4asqsz8ln7my5vjib881vmaq1n",
@@ -27143,8 +27230,8 @@
     "s",
     "seq"
    ],
-   "commit": "d4e434fa1857ba2f58d27c7520ebeac0515cd140",
-   "sha256": "0vqqi7g2xwsldmgffi1ygfv87qar6xyqk9r2j23hpyqjh9pzcvx5"
+   "commit": "1e277684d8a6681a2410cce2dd589ee30a998369",
+   "sha256": "1gnr61ibzcznfqy5f8capmbz75rcfikwy106rjdmp45qz2jwp4di"
   },
   "stable": {
    "version": [
@@ -27451,20 +27538,20 @@
   "url": "https://thelambdalab.xyz/git/elpher.git",
   "unstable": {
    "version": [
-    20220228,
-    1307
+    20220411,
+    818
    ],
-   "commit": "ecb5e17d37249bc38c25ee278094fb93b63b0a49",
-   "sha256": "0q2wmsxvcg6c98fbnldk64lc49zlzd42k8zisk03f8g91l12wxac"
+   "commit": "ab75cffa4572115c3d6b17348b6bfa2f746f4798",
+   "sha256": "166fjq9d883hifa35zklyjrm4c575nd6zxdx7akbwibrgwi65bl0"
   },
   "stable": {
    "version": [
     3,
     3,
-    2
+    3
    ],
-   "commit": "6e3a8ef5af192eddcd834efac49866f84e2c73dd",
-   "sha256": "1p43x7mf14q84armxhp294xaclq5c6mpggq619ravia0kdrqij1w"
+   "commit": "ab75cffa4572115c3d6b17348b6bfa2f746f4798",
+   "sha256": "166fjq9d883hifa35zklyjrm4c575nd6zxdx7akbwibrgwi65bl0"
   }
  },
  {
@@ -27546,15 +27633,26 @@
   "repo": "AdamNiederer/elquery",
   "unstable": {
    "version": [
-    20200628,
-    1756
+    20220331,
+    143
    ],
    "deps": [
-    "dash",
-    "s"
+    "dash"
+   ],
+   "commit": "38f3bd41096cb270919b06095da0b9ac1add4598",
+   "sha256": "169i8nd0iwapn2r9grni40qcgzkwsa7267c2z1cdwmwlb5whqs34"
+  },
+  "stable": {
+   "version": [
+    1,
+    1,
+    0
    ],
-   "commit": "cba7629ad886c4e51d66f8b509aad48bdfe100cc",
-   "sha256": "119g9ca40rg0aam7i2n4jhjzjzm8r7bg6q0yjaw5x1j7ywks5af6"
+   "deps": [
+    "dash"
+   ],
+   "commit": "8d82d0d3005d6ec6d1e7fcd7f26abb1a165cc79a",
+   "sha256": "035zjzmd7yfw0rsjpaklc2wwiqw6brkjadch9x8n8n2gjyxg05mn"
   }
  },
  {
@@ -27804,11 +27902,11 @@
   "repo": "emacscollective/elx",
   "unstable": {
    "version": [
-    20220321,
-    1200
+    20220331,
+    2252
    ],
-   "commit": "fb5fe4e017d5a10a9ae4c9e17d6a9c8ac656530a",
-   "sha256": "1rhrvn9vmb00makvg2gdaaakg76wpsl7spn402hyzgg7jhmqhfgs"
+   "commit": "ea0b10340b22e8dd0454fe37ba84ff2157fada4f",
+   "sha256": "1p2jcq3yyasad6c9dbnc4sm3ksx1z023s1j55qfffl238rh0kgrh"
   },
   "stable": {
    "version": [
@@ -27828,11 +27926,11 @@
   "repo": "tecosaur/emacs-everywhere",
   "unstable": {
    "version": [
-    20220220,
-    1404
+    20220407,
+    329
    ],
-   "commit": "f23230e67c45536501d651ef6b93546b4ac9fe4f",
-   "sha256": "0x9kfrcf59l0ql9b71a4hbgxjl9lb5w0fwydxcyz5ib0yk5nca55"
+   "commit": "54b9ba1ac0d7f8b644354fd6d27c9e3aff111dcc",
+   "sha256": "165ba97ll0k8fsr3k2bxpwg4lnmd3513vn4mdgxcx9ll5p1jr4nd"
   }
  },
  {
@@ -27882,11 +27980,11 @@
   "repo": "skeeto/emacsql",
   "unstable": {
    "version": [
-    20220101,
-    1820
+    20220408,
+    1614
    ],
-   "commit": "374726060d74df0e2bcb9d0355ff41e2c400ed30",
-   "sha256": "0z382qksrwhkv0ayjp8nays65c3xwd4kylj41k1pc3nnqg6b2k45"
+   "commit": "373975cbccf7776af771e23f86043b236a330702",
+   "sha256": "0p4aj1h0qp201vywdlsc8snga8b6bn1ndzrzsaw7rwpa3b6c4i4s"
   },
   "stable": {
    "version": [
@@ -27899,40 +27997,6 @@
   }
  },
  {
-  "ename": "emacsql-libsqlite3",
-  "commit": "4e7ce4ac946c7b7e2c4feecd3b753ea163ecc435",
-  "sha256": "0cpniv5r9k38qapyzhzcjhb0hpv7i6jxqnxy6nwm7ml6nhrgkai9",
-  "fetcher": "github",
-  "repo": "emacscollective/emacsql-libsqlite3",
-  "unstable": {
-   "version": [
-    20220129,
-    2241
-   ],
-   "deps": [
-    "emacsql",
-    "emacsql-sqlite",
-    "sqlite3"
-   ],
-   "commit": "2aca80a3869d4fd654e79c4a1e20b5227fc2ba39",
-   "sha256": "0x0fmxgjs17hckx2a32y96nlqdcsx42wcw4lpyc6nk98ikraipgq"
-  },
-  "stable": {
-   "version": [
-    0,
-    3,
-    0
-   ],
-   "deps": [
-    "emacsql",
-    "emacsql-sqlite",
-    "sqlite3"
-   ],
-   "commit": "2aca80a3869d4fd654e79c4a1e20b5227fc2ba39",
-   "sha256": "0x0fmxgjs17hckx2a32y96nlqdcsx42wcw4lpyc6nk98ikraipgq"
-  }
- },
- {
   "ename": "emacsql-mysql",
   "commit": "9cc47c05fb0d282531c9560252090586e9f6196e",
   "sha256": "1c20zhpdzfqjds6kcjhiq1m5ch53fsx6n1xk30i35kkg1wxaaqzy",
@@ -27946,8 +28010,8 @@
    "deps": [
     "emacsql"
    ],
-   "commit": "374726060d74df0e2bcb9d0355ff41e2c400ed30",
-   "sha256": "0z382qksrwhkv0ayjp8nays65c3xwd4kylj41k1pc3nnqg6b2k45"
+   "commit": "373975cbccf7776af771e23f86043b236a330702",
+   "sha256": "0p4aj1h0qp201vywdlsc8snga8b6bn1ndzrzsaw7rwpa3b6c4i4s"
   },
   "stable": {
    "version": [
@@ -27976,8 +28040,8 @@
    "deps": [
     "emacsql"
    ],
-   "commit": "374726060d74df0e2bcb9d0355ff41e2c400ed30",
-   "sha256": "0z382qksrwhkv0ayjp8nays65c3xwd4kylj41k1pc3nnqg6b2k45"
+   "commit": "373975cbccf7776af771e23f86043b236a330702",
+   "sha256": "0p4aj1h0qp201vywdlsc8snga8b6bn1ndzrzsaw7rwpa3b6c4i4s"
   },
   "stable": {
    "version": [
@@ -28006,8 +28070,8 @@
    "deps": [
     "emacsql"
    ],
-   "commit": "374726060d74df0e2bcb9d0355ff41e2c400ed30",
-   "sha256": "0z382qksrwhkv0ayjp8nays65c3xwd4kylj41k1pc3nnqg6b2k45"
+   "commit": "373975cbccf7776af771e23f86043b236a330702",
+   "sha256": "0p4aj1h0qp201vywdlsc8snga8b6bn1ndzrzsaw7rwpa3b6c4i4s"
   },
   "stable": {
    "version": [
@@ -28023,6 +28087,45 @@
   }
  },
  {
+  "ename": "emacsql-sqlite-builtin",
+  "commit": "780e7b4449c54f6ff5716b4953c85accfb7f0ebd",
+  "sha256": "1a062am3ff11i8nh368m8yq8vwcgl9d7i4bcfilpx9zzm1car1va",
+  "fetcher": "github",
+  "repo": "emacscollective/emacsql-sqlite-builtin",
+  "unstable": {
+   "version": [
+    20220331,
+    1934
+   ],
+   "deps": [
+    "emacsql",
+    "emacsql-sqlite"
+   ],
+   "commit": "0f7b7b02fb9a49fbebda2c0f830f2e43dd1e22d0",
+   "sha256": "063j84zv4zfhbgszkjy4ldqbh9ij11sfpd5l6a1hyr81ywrq45j8"
+  }
+ },
+ {
+  "ename": "emacsql-sqlite-module",
+  "commit": "0efbc8e05348b2e87f9d1f08629e7a2389a089f4",
+  "sha256": "1p3jh49r7cmbc3r79ws3l44pxyrf9faywvgwhiakpa51295ilcqc",
+  "fetcher": "github",
+  "repo": "emacscollective/emacsql-sqlite-builtin",
+  "unstable": {
+   "version": [
+    20220407,
+    1931
+   ],
+   "deps": [
+    "emacsql",
+    "emacsql-sqlite",
+    "sqlite3"
+   ],
+   "commit": "0f7b7b02fb9a49fbebda2c0f830f2e43dd1e22d0",
+   "sha256": "063j84zv4zfhbgszkjy4ldqbh9ij11sfpd5l6a1hyr81ywrq45j8"
+  }
+ },
+ {
   "ename": "emacsql-sqlite3",
   "commit": "5a25cf38b4f39b1c4d259143f1586fdad605b101",
   "sha256": "06zm6vs6sry2lwksikxp0rjyvs1rgiqyapyw7m8hgy336h810v84",
@@ -28156,11 +28259,11 @@
   "repo": "oantolin/embark",
   "unstable": {
    "version": [
-    20220326,
-    56
+    20220413,
+    2146
    ],
-   "commit": "b80d96ce0ab79e73829322e46c6d7493eb2b8c34",
-   "sha256": "1jsynjl0y7w0jqxqlibg8m4rwzv9lxj443m6dlac6zncz8plnizp"
+   "commit": "ab778510d5db9935a2d436b13d98c47b824172ee",
+   "sha256": "1w2jiv8wffm4lf22bkc4znbk20jarnpwl5483jd3bfg712ykqcsq"
   },
   "stable": {
    "version": [
@@ -28179,15 +28282,15 @@
   "repo": "oantolin/embark",
   "unstable": {
    "version": [
-    20220321,
-    239
+    20220413,
+    1944
    ],
    "deps": [
     "consult",
     "embark"
    ],
-   "commit": "b80d96ce0ab79e73829322e46c6d7493eb2b8c34",
-   "sha256": "1jsynjl0y7w0jqxqlibg8m4rwzv9lxj443m6dlac6zncz8plnizp"
+   "commit": "ab778510d5db9935a2d436b13d98c47b824172ee",
+   "sha256": "1w2jiv8wffm4lf22bkc4znbk20jarnpwl5483jd3bfg712ykqcsq"
   },
   "stable": {
    "version": [
@@ -28627,8 +28730,8 @@
     "emojify",
     "request"
    ],
-   "commit": "8ebfc21d243fc17faf074b36dbc4be6141139906",
-   "sha256": "1mdh1f3lbng0nbwih3haf7wj4x4mmgviziv5fwki449495mw041q"
+   "commit": "97848eefd56b569e6090f9f09d4f1c21c57a4249",
+   "sha256": "1mvxdlr0a4rwjy0pj4n7rp00q80ah8i6cyz62wlyp942aazmjp7j"
   },
   "stable": {
    "version": [
@@ -28947,8 +29050,8 @@
     "inheritenv",
     "seq"
    ],
-   "commit": "57d78f0138d9c676dff182e713249ad055ccf85d",
-   "sha256": "12bs9ywyf30qrmhibbdvcf5i24mvq8l2j3y0fv32fb2ydk4lpcmw"
+   "commit": "4730b31ff1479b6d822ccc7517251dcb52de45b3",
+   "sha256": "0w2fnqqihiqkkqw1x1gghgd0644gf7r5wp12dr7h1ljhfcb4kz83"
   },
   "stable": {
    "version": [
@@ -29085,14 +29188,14 @@
   "repo": "emacscollective/epkg",
   "unstable": {
    "version": [
-    20220216,
-    1916
+    20220402,
+    1046
    ],
    "deps": [
     "closql"
    ],
-   "commit": "475bfb19e293edcdbeb23d30b2e4954ca7ab8f39",
-   "sha256": "0f4p5xrlsfmsn61xvh3mx9y84bklsyjz6jgkdajiyd7wrmhlyjzf"
+   "commit": "eb16c8ca8cfe989ac085d335c9b17f2c496fd29f",
+   "sha256": "0wfhjz5dcws4vg8xj58qs60pr27nh1kwskfg29wcfq4gix4v701l"
   },
   "stable": {
    "version": [
@@ -29122,8 +29225,8 @@
     "epkg",
     "marginalia"
    ],
-   "commit": "d41cfe1a00d01a45938d2af2fb311fdb17d3c381",
-   "sha256": "0i295rr9fslhxrqh8967whq1h903i3a45c4x6ycff1fhrxb87frf"
+   "commit": "6e6bf0c552e27416dccaf90cb2abdd37f244c2ff",
+   "sha256": "063cjypy35argxr99g23hfhls3bd04k6ywa0r5zb8721vcd6qrkr"
   },
   "stable": {
    "version": [
@@ -29217,21 +29320,6 @@
   }
  },
  {
-  "ename": "eprime-mode",
-  "commit": "41405ce2b327350415db3c4f13266856909d0cf9",
-  "sha256": "0vhp6ccsxjxnka4gsicnf71d7qy9wsxh2adnvhxk2v4p99ifygsl",
-  "fetcher": "github",
-  "repo": "VioletHynes/eprime-mode",
-  "unstable": {
-   "version": [
-    20140513,
-    1816
-   ],
-   "commit": "17a481af26496be91c07139a9bfc05cfe722506f",
-   "sha256": "1wwg46xdb488wxvglwvsy08vznrnmdmmbcvm9vb60dy3gqjmz7cw"
-  }
- },
- {
   "ename": "eproject",
   "commit": "d7e82668617a9b599f8994c720f3f123ba1e008a",
   "sha256": "0kpg4r57khbyinc73v9kj32b9m3b4nb5014r5fkl5mzzpzmd85b4",
@@ -29699,14 +29787,14 @@
   "repo": "ergoemacs/ergoemacs-mode",
   "unstable": {
    "version": [
-    20220223,
-    1148
+    20220411,
+    338
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "757475874a840f99b20c56182c7199257b6ae477",
-   "sha256": "1ipwzl0l26g5qvc1sgmz2ra5vn1j3hl0mnkgzpa3j4p8gsmxdiqr"
+   "commit": "9cd89eef490f6c9f4af273bb3dd2c68d5ed2de61",
+   "sha256": "10p8pi5hlaka2pbrrzfcxjsrv142394k17z8hdx1fq0gvjcycrpl"
   },
   "stable": {
    "version": [
@@ -29752,18 +29840,18 @@
     20200914,
     644
    ],
-   "commit": "724723ed0a6b179398f4105f5eb5ea088d1bac4a",
-   "sha256": "0qzg5qhf3p4ifspbz6l1yj4fl6sdgbi74kprql20sx9y58dyhamd"
+   "commit": "505464961f07f0991263708fd8cbf5f7ad12f53f",
+   "sha256": "149g366ijc7aqglf27xsy806az8r2s8s6p8w8rx4wvdrhds2wpl7"
   },
   "stable": {
    "version": [
     2,
     6,
     2,
-    1
+    2
    ],
-   "commit": "59c7944b1a2e8015e473eb1932353818614a1e5b",
-   "sha256": "0p6jh8hyyf7xg0sni2rchck2fd1wyr5v106dfxxm09krxxawh0nh"
+   "commit": "442c76badc353d1b621243c43293106f60f7d746",
+   "sha256": "0kskd56y71p4w1bgr15szbzjl05kfxpf1cs4bd9dnwdwfp5s0ygw"
   }
  },
  {
@@ -29777,18 +29865,18 @@
     20220215,
     1844
    ],
-   "commit": "510b025db164ec18e49117d070f4e08ebe8f4da1",
-   "sha256": "1wliqzp5nw07qxmy9024i2dmbidn9216niz09299q9z447raisp3"
+   "commit": "ca880f9bdde00289e3e8563712a84d164abf7654",
+   "sha256": "0danaqzagnmgj8i9645pk3963qg7y79kiipmivhjyrksi2llgg9g"
   },
   "stable": {
    "version": [
     25,
     0,
     -1,
-    2
+    3
    ],
-   "commit": "85d0a8366e64f8272e332a63a2cba59afa3f7eb9",
-   "sha256": "0nln44fd5kxjsgr0k95xn46jshp035s66rna7gb0lsm2iggcfwy8"
+   "commit": "47f121af8ee55a0dbe2a8c9ab85031ba052bad6b",
+   "sha256": "1ir42hz81bzxn1shqq0gn824hxd6j774889vjy68psi95psfs8r2"
   }
  },
  {
@@ -30310,14 +30398,14 @@
   "repo": "Phundrak/eshell-info-banner.el",
   "unstable": {
    "version": [
-    20220326,
-    933
+    20220402,
+    1721
    ],
    "deps": [
     "s"
    ],
-   "commit": "9c17e92f0229c9002e071842a88396c3f2439d72",
-   "sha256": "08kqqlvia3hzl9yq5yia92a27rk3fsahdizlf7rpywkmj5aix43l"
+   "commit": "53fc69b8712b9869cee49468a6e418d64d2c3ab9",
+   "sha256": "16ma3z7sxj95p3jfaszdvaj45rjkmb806mlm2vv5pgcbzqjfhrp6"
   },
   "stable": {
    "version": [
@@ -30492,6 +30580,30 @@
   }
  },
  {
+  "ename": "eslint-disable-rule",
+  "commit": "1098ad81fe2478db807fb7860f32368bef26f576",
+  "sha256": "0659b6yqi5hyq6sbvx759axx0ngfw3zmar08l84vdzs564zkcjy7",
+  "fetcher": "github",
+  "repo": "DamienCassou/eslint-disable-rule",
+  "unstable": {
+   "version": [
+    20220328,
+    354
+   ],
+   "commit": "7d4cc05d336fbc465f91a87b38bf360efaf76fcf",
+   "sha256": "08428v3w80v16c8a57gd6abfz2jafvrh0sbscsxm07ykcsp7y2cf"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    0
+   ],
+   "commit": "7d4cc05d336fbc465f91a87b38bf360efaf76fcf",
+   "sha256": "08428v3w80v16c8a57gd6abfz2jafvrh0sbscsxm07ykcsp7y2cf"
+  }
+ },
+ {
   "ename": "eslint-fix",
   "commit": "b46e83f2ea2c4df1ef343c79c7e249605c9639b3",
   "sha256": "0rzdd5jnhp5cwldxnq50cfdvmwwljwq9wv2cj4281dc45vy9p5k1",
@@ -30516,6 +30628,24 @@
   }
  },
  {
+  "ename": "eslint-rc",
+  "commit": "05462dc69319f57b3f0a3eb0ecb7d3d97978f364",
+  "sha256": "1pn1mwlkqnb4cfb07wvqc39v2071sp0vhi275rrkhxip3gib1sgd",
+  "fetcher": "github",
+  "repo": "jjuliano/eslint-rc-emacs",
+  "unstable": {
+   "version": [
+    20220328,
+    800
+   ],
+   "deps": [
+    "eslint-fix"
+   ],
+   "commit": "eb6f3e715792952bc957d5dc8ab1a607f3dbbd55",
+   "sha256": "1bdv3lbcq8wppcn8dcbp53zsxrz3qaz72iazpg5dbdq047rm6s1x"
+  }
+ },
+ {
   "ename": "eslintd-fix",
   "commit": "c72d2b3ee9b8066d51d09e165e58e9846ca879cc",
   "sha256": "0lv4xpp9bm1yyn9mj7hpgw1v46yyxr0nlwggbav78jbg4v7ai04v",
@@ -30925,8 +31055,8 @@
     "cl-lib",
     "kv"
    ],
-   "commit": "f88a323bd15ad7bd94eda684e1a36525ba81a089",
-   "sha256": "1sx8mjk0pfbl664brfwmswn6q1z0iyz23d1457z1imh98b1g91xy"
+   "commit": "23c9684af4c0548dc00e28fd7b504fcfd43abb5f",
+   "sha256": "0sr31xarr8d9711x3mhy2p2wh6f5mk7j39sr5233b9qkq9a4k947"
   },
   "stable": {
    "version": [
@@ -31276,6 +31406,29 @@
   }
  },
  {
+  "ename": "everlasting-scratch",
+  "commit": "7d14ddda9729eec229a72a8827d0f0a5be779db7",
+  "sha256": "0ikpp9cvi4xh2bqlza8p2bnw26mv0km33ywp0l3a6n35n1f068v6",
+  "fetcher": "github",
+  "repo": "beacoder/everlasting-scratch",
+  "unstable": {
+   "version": [
+    20220412,
+    921
+   ],
+   "commit": "b3f8339f9564a1926bd8b71c163fa7660cc3b1f4",
+   "sha256": "17lbrcgddrxw111a8al3i5cgnksmkv1qi0wzqzmvvggq073mvmqr"
+  },
+  "stable": {
+   "version": [
+    0,
+    1
+   ],
+   "commit": "509cf24422d4047b110aac8ed077b52a8011cfe7",
+   "sha256": "04snf28gk7lc9pd5ilv9w1xjm14fi3ajp6dwaz4bbq8haacm3hpz"
+  }
+ },
+ {
   "ename": "evil",
   "commit": "69567536a89f0294726ae58f748386a8d336c55e",
   "sha256": "0nbfhynlv213rjl6jh4lji1q94s99q4iv18mnd3x23r91sx7ssm3",
@@ -31283,15 +31436,15 @@
   "repo": "emacs-evil/evil",
   "unstable": {
    "version": [
-    20220309,
-    2216
+    20220413,
+    2212
    ],
    "deps": [
     "cl-lib",
     "goto-chg"
    ],
-   "commit": "3e41a823334abbba9cf16e482855699054d9dfe0",
-   "sha256": "1ir4ybrnylx9slyb7znrshfjf0gw1xi7f9nf6bryidqxspsn2ri5"
+   "commit": "05714e8daacadb7603a05ffe81d1fbda7439a748",
+   "sha256": "0240j6xqvy6mpsj4id5xs1i5g9scipa40i02m29c0m4nw8alyg11"
   },
   "stable": {
    "version": [
@@ -31485,15 +31638,15 @@
   "repo": "emacs-evil/evil-collection",
   "unstable": {
    "version": [
-    20220314,
-    1559
+    20220414,
+    250
    ],
    "deps": [
     "annalist",
     "evil"
    ],
-   "commit": "e55718869252a8cd46e61e350bb514194a37f2f8",
-   "sha256": "0inq608gk9kn3383qni7ll93qhw3qqy7yi22ympv0y3279n8725b"
+   "commit": "ceac1a9681cb47de35aa37d63532b1b92cd58b72",
+   "sha256": "1w77sbfgpyhg0631a3f8lfi4qg5ncqalklkx21fpx2195lsjhd17"
   },
   "stable": {
    "version": [
@@ -32051,26 +32204,26 @@
   "repo": "redguardtoo/evil-matchit",
   "unstable": {
    "version": [
-    20210923,
-    931
+    20220404,
+    221
    ],
    "deps": [
     "evil"
    ],
-   "commit": "14c7c7ed0a1ca8d3407688e0150f794db9389997",
-   "sha256": "1yhn38hh8rqi60h3pfqb18fvdgxks91v561dbfrbsnwnlw8babxn"
+   "commit": "1884276feca8bd927a371760673b0f99d734e1c5",
+   "sha256": "12as39q0ya1174h867fkz3g3vph8mdni6k0mbdfb8r3l6x7rw6sl"
   },
   "stable": {
    "version": [
     2,
     4,
-    1
+    3
    ],
    "deps": [
     "evil"
    ],
-   "commit": "9b228b097a863e9deef8033b11747597e055674b",
-   "sha256": "0cxv1bmbnir59k778dip5mkjyqhbh10pk9b4ayvwpgiz25dlp4ss"
+   "commit": "1884276feca8bd927a371760673b0f99d734e1c5",
+   "sha256": "12as39q0ya1174h867fkz3g3vph8mdni6k0mbdfb8r3l6x7rw6sl"
   }
  },
  {
@@ -32186,20 +32339,20 @@
   "repo": "redguardtoo/evil-nerd-commenter",
   "unstable": {
    "version": [
-    20220106,
-    1224
+    20220404,
+    301
    ],
-   "commit": "42ba1a473b4f1df061baddd2f8b812a2f35e366e",
-   "sha256": "1y6qy4gv7k8aghi5snvh248nxpgxv0daryd2794n6gfb4ciwycrr"
+   "commit": "29ced6fda6a76771a8a054ef55c13a1330793d4d",
+   "sha256": "0xnm8i23c2p3mdf4xxjk00766ygvysk7c8iib2jkah5pfg6jc9vb"
   },
   "stable": {
    "version": [
     3,
     5,
-    6
+    7
    ],
-   "commit": "42ba1a473b4f1df061baddd2f8b812a2f35e366e",
-   "sha256": "1y6qy4gv7k8aghi5snvh248nxpgxv0daryd2794n6gfb4ciwycrr"
+   "commit": "29ced6fda6a76771a8a054ef55c13a1330793d4d",
+   "sha256": "0xnm8i23c2p3mdf4xxjk00766ygvysk7c8iib2jkah5pfg6jc9vb"
   }
  },
  {
@@ -32620,15 +32773,15 @@
   "repo": "hlissner/evil-snipe",
   "unstable": {
    "version": [
-    20211114,
-    1647
+    20220403,
+    1639
    ],
    "deps": [
     "cl-lib",
     "evil"
    ],
-   "commit": "a79177df406a79b4ffa25743c752f21363bba1cc",
-   "sha256": "0pz2s0g0859zhyryvn1glngw1aq7a04x9rydl1l89h50hf5avmvj"
+   "commit": "1444065e3fb637ec3c976ce68a4679625713b1d5",
+   "sha256": "1lzjw22fmjhw1ivnn9053n3zicnb8k2jgwyzvyv6x29fvqhw5xgb"
   },
   "stable": {
    "version": [
@@ -32714,14 +32867,14 @@
   "repo": "emacs-evil/evil-surround",
   "unstable": {
    "version": [
-    20210615,
-    2119
+    20220412,
+    1724
    ],
    "deps": [
     "evil"
    ],
-   "commit": "282a975bda83310d20a2c536ac3cf95d2bf188a5",
-   "sha256": "0f9y5dwjkjv768s63bypp6nb51kklhkq58ixgzfs59r423y8l1nl"
+   "commit": "2bc8aa6425f1311e985cf51ea6b5233c1ee6ce1c",
+   "sha256": "1ghc10rsrfvmd7m5qf7695gz241v9m5c2fg2mflwy8pw0h2l9nki"
   },
   "stable": {
    "version": [
@@ -32811,8 +32964,8 @@
    "deps": [
     "evil"
    ],
-   "commit": "3e41a823334abbba9cf16e482855699054d9dfe0",
-   "sha256": "1ir4ybrnylx9slyb7znrshfjf0gw1xi7f9nf6bryidqxspsn2ri5"
+   "commit": "05714e8daacadb7603a05ffe81d1fbda7439a748",
+   "sha256": "0240j6xqvy6mpsj4id5xs1i5g9scipa40i02m29c0m4nw8alyg11"
   },
   "stable": {
    "version": [
@@ -32835,15 +32988,15 @@
   "repo": "iyefrat/evil-tex",
   "unstable": {
    "version": [
-    20211208,
-    1631
+    20220412,
+    639
    ],
    "deps": [
     "auctex",
     "evil"
    ],
-   "commit": "0fa85c3fc88d96621002b5a1b79efcc06776642f",
-   "sha256": "0r38d1z7xdmiwxvpkzfbisd8scjj5i4v1y629j5n73f2xapk83df"
+   "commit": "ae397c8bfe8d16e54e96a9955273b767fc2347fd",
+   "sha256": "1lz787yshg8zadd9bplx0cppn4ch7sfrwppa5spivnysnnxh876k"
   },
   "stable": {
    "version": [
@@ -33014,15 +33167,15 @@
   "repo": "meain/evil-textobj-tree-sitter",
   "unstable": {
    "version": [
-    20220325,
-    1401
+    20220404,
+    1501
    ],
    "deps": [
     "evil",
     "tree-sitter"
    ],
-   "commit": "d488792ee1ceadf3ae4a8b7b93ca3a88d36111cc",
-   "sha256": "0mwxv0al1i8vplsh2bl8y5vl9zga6zlz6f8mjbbm6gvcnzpbz5ff"
+   "commit": "e5fda8eca926e65f7aadc9ed27d768eb6d1d415f",
+   "sha256": "00r744a9yym36by50d94xarnk0pcdvikka65681j1wrwcxv9narm"
   }
  },
  {
@@ -33061,8 +33214,8 @@
     "tree-edit",
     "tree-sitter"
    ],
-   "commit": "63816d614e6e2112c2f26e65afd7440f022ba2ad",
-   "sha256": "1c0s9hsm5wisikgxzskmnkin0r2vs9yc5yhgkjrsrvaiiv05g9ip"
+   "commit": "774a1e9598617f334fcd31aa606c5e738012fb60",
+   "sha256": "1bc51pmrr37yf116vmw436y2gidr5410ya2vlylrh3scssyd6zgw"
   }
  },
  {
@@ -33465,8 +33618,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "3a8d97c096c2c5714b667130fd8a80d5622ee067",
-   "sha256": "1fdfg9zblk82546fhmha84lz45g4nrgmqqq39jsr601axalfkl7q"
+   "commit": "6336db9be13d46e2d4bc3b50bc37a3fbf30fdc9e",
+   "sha256": "17nw4rim92mf5yvfgjwryx2r8cijkdrqxsvsjcyhhkcycylhkyjv"
   },
   "stable": {
    "version": [
@@ -33766,11 +33919,11 @@
   "repo": "agzam/exwm-edit",
   "unstable": {
    "version": [
-    20200728,
-    8
+    20220414,
+    106
    ],
-   "commit": "2fd9426922c8394ec8d21c50dcc20b7d03af21e4",
-   "sha256": "1gwqwj50ch8iib5yqbyvski7vxiwid6s49lj2xcy5kksnx1a2410"
+   "commit": "b5b7e950f57e30befd68d51df34540b70e6ac28f",
+   "sha256": "11yjvry950xiq91rzbx9jsa8hx3lnabhkqzgiqlcgx36q6diw6fh"
   }
  },
  {
@@ -34035,15 +34188,15 @@
   "repo": "rejeep/f.el",
   "unstable": {
    "version": [
-    20210624,
-    1103
+    20220405,
+    1534
    ],
    "deps": [
     "dash",
     "s"
    ],
-   "commit": "50af874cd19042f17c8686813d52569b1025c76a",
-   "sha256": "0k6qp5vqyiql9f6i6z95iskjpv9wn6sd66wnf2x0jxbws4r2bjxy"
+   "commit": "b5cb884b3b4372a6f3d1d4428cf092ca1e5c8044",
+   "sha256": "04wa28css71k5h7faxybczl0qy008kk1m5pdfb53g7ybjrn5cxdn"
   },
   "stable": {
    "version": [
@@ -34206,19 +34359,19 @@
   "repo": "WJCFerguson/emacs-faff-theme",
   "unstable": {
    "version": [
-    20220318,
-    2213
+    20220407,
+    145
    ],
-   "commit": "c58c162a2d1284033497feff4bfa8c3210685d9d",
-   "sha256": "0v5xn0zpc2khy97pbhvhja724hfc9y3rm9fmqf0xzpm6czbgi4xr"
+   "commit": "f824c3f55ea42d65e0b632879c6948d3eb43b2f3",
+   "sha256": "1i36ndcak5svml173v98dnw9vwa8bc0qxhnkwsrwmrnvg44rw0a0"
   },
   "stable": {
    "version": [
     3,
-    1
+    2
    ],
-   "commit": "1385058dfe1db579cc5e08bd81ad9b15282f0650",
-   "sha256": "1ph7myinasxbamr7vpiijihqniq06ng4h58jgh04xb7vvi4b07nx"
+   "commit": "fffae9ada9057e81812f90edbd589f4a4f346768",
+   "sha256": "1rcjawwjk0jkihv26wrhhp0ncnj9qq1q16gkb9c8ys1qvaqyaiah"
   }
  },
  {
@@ -34706,11 +34859,11 @@
   "url": "https://git.sr.ht/~technomancy/fennel-mode",
   "unstable": {
    "version": [
-    20220309,
-    445
+    20220329,
+    116
    ],
-   "commit": "c55eecd7c731a18c40be98684370c4c6903d243d",
-   "sha256": "1cg21a2p9pqx9dif35k0p393ckz8f433qznwxgircajjmz65b7b2"
+   "commit": "50ef3c6246f36085cd908cf5432133cadb792304",
+   "sha256": "0rk5x4ipam32aizdjinhbmb0cjg7wakdh78fnm60jc7a07175ip3"
   },
   "stable": {
    "version": [
@@ -34752,8 +34905,8 @@
     "f",
     "s"
    ],
-   "commit": "dd51ad1a5a0d85ab3c71e9bd31499d50ec8b1f74",
-   "sha256": "1qvi1z6w8j94pp71gwvjd8h14m6fnf0wg824iwk7pvfyhfmi3p91"
+   "commit": "f261845c9b051614a8408be4c772912b12e8f2c9",
+   "sha256": "0kb1yafk1hrc80l7r6q2ffq1pmy93xajahrdrs6w37qyn00pwp32"
   },
   "stable": {
    "version": [
@@ -34926,8 +35079,8 @@
     20210707,
     354
    ],
-   "commit": "466b2314f48aee2bab17810eb4fd7f9b061c9a46",
-   "sha256": "1dmdmgmb7gw2p62p1i1ii1b4b6wvh0kg1vvvlfpx5jmv2ix01drc"
+   "commit": "68fc17bd7e7cfdcdfc25b8c30fe44a3e8c165dd5",
+   "sha256": "0h31p0dxs6gyphcmn0s5bay653fmdqmyj4yzb42bhngpdid0ykb6"
   },
   "stable": {
    "version": [
@@ -35207,8 +35360,8 @@
     "s",
     "transient"
    ],
-   "commit": "be1ae9bcb1b85d93f138c510dbc16c28af228916",
-   "sha256": "0jslc8j153sglagfjq5vrcnhgzjjxkf763h3md9735z231svvvk6"
+   "commit": "6e707da7ffc87d4e90c90694004d91dfa8b1d4ca",
+   "sha256": "16cxd0hdn7wn3v8bwrr06y1q0grcllqj5qyajhbrlqwws1y86d0h"
   },
   "stable": {
    "version": [
@@ -36069,8 +36222,8 @@
   "repo": "flycheck/flycheck",
   "unstable": {
    "version": [
-    20220314,
-    27
+    20220328,
+    1518
    ],
    "deps": [
     "dash",
@@ -36078,12 +36231,12 @@
     "pkg-info",
     "seq"
    ],
-   "commit": "278d0810f05eb03600d835c2bdd67d6b55a58034",
-   "sha256": "1c722aapkqbkxqchpchd2id9kz4hv2dckyl851x4na3yd7k0dzky"
+   "commit": "55f25fd98abc145c0c464756504132c271f0f039",
+   "sha256": "0z1j5w7kifk130ijgkajbxg7n3kj3znn3rd4kwpxb2njwi5ml18x"
   },
   "stable": {
    "version": [
-    31
+    32
    ],
    "deps": [
     "dash",
@@ -36091,8 +36244,8 @@
     "pkg-info",
     "seq"
    ],
-   "commit": "401b115d10e202a1b31f57340438420081af21ce",
-   "sha256": "141i6wzqlb0dslmca6930cal7q4y5wbwzmxrpjk3hgm6nxz483p8"
+   "commit": "3b5b4248074f016922c2674789d4a242528cf4c7",
+   "sha256": "0dx6wqxz1yfp4shas4yn6abqc8bz21ks3glcyzznm3xspjdaq21s"
   }
  },
  {
@@ -36163,14 +36316,14 @@
   "repo": "leotaku/flycheck-aspell",
   "unstable": {
    "version": [
-    20220128,
-    1518
+    20220411,
+    826
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "ffe905560bb917ae4bbbbb8ad2d7e2c70664225a",
-   "sha256": "1rk5vlw8c2d0jycp1i7r030gldwg0fikj23fj7z3sw5x254p7waq"
+   "commit": "5ec0f9b28b1d86eec192b23bc24d9a33dfe51882",
+   "sha256": "02qv8gxlnasak87gggfg1643m5281fzjh4snpq1gjwyv6biqlldz"
   }
  },
  {
@@ -36410,8 +36563,8 @@
    "deps": [
     "flycheck"
    ],
-   "commit": "d8a6ee9a16aa24b5be01f1edf9843d41bdc75555",
-   "sha256": "010gzxwvr2p2wv358r76ajkn48ilgmkmv7z6bckqbap0cjhrqq43"
+   "commit": "35daaccc75b0367844b249a8cb05bf73bcebd52a",
+   "sha256": "0id3jp0d2bkrk17l6svj5c518yp6ndlqg7py962qdrvzz82004j7"
   },
   "stable": {
    "version": [
@@ -36995,8 +37148,8 @@
    "deps": [
     "flycheck"
    ],
-   "commit": "6b76fa9c43834fabe501c7ab1816797af4e4a7d1",
-   "sha256": "1l2lv9n159c04rk3z044ib5w1kpgld6j1i63106bmr3za3kkkqv6"
+   "commit": "69ccdf4b6e9cd87e8cce615884287b65d6ee6bb6",
+   "sha256": "1xk9ya7267yx8419cb9bm79p0nbxp9974lswypgxv90l4ra5p1jb"
   },
   "stable": {
    "version": [
@@ -37074,8 +37227,8 @@
     "grammarly",
     "s"
    ],
-   "commit": "2b71f7708798aba0c766768eeb161bd2696d663d",
-   "sha256": "0vg9gpa4sifzdv6z5ax3cqgmqa1xzaq4g5fqpswsyr55jaxpi5r7"
+   "commit": "b3c9c3f0e1f8954dcee9cd6661a8e39c6d7eddb9",
+   "sha256": "0vdcsy8hgs7pn9pinp1kv3bzxjqcp1ba43licinkxfpf08laiwdc"
   },
   "stable": {
    "version": [
@@ -37494,14 +37647,14 @@
   "repo": "emacs-languagetool/flycheck-languagetool",
   "unstable": {
    "version": [
-    20220228,
-    737
+    20220402,
+    1703
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "018b4e12b9b5e80e0169ce044fb2a898a747bd1f",
-   "sha256": "0v8wf6jax2gzqrsj8lijybc47bkz665mbw87a73iz6dcmlyrxsmy"
+   "commit": "60b1098139d5367c2d07b615d80d83f39ee316bc",
+   "sha256": "13rz1fy7pj16lfwnvhrgr1wzv32kiqvibi2sssb3vwnv6qfg885i"
   },
   "stable": {
    "version": [
@@ -37777,8 +37930,8 @@
     "flycheck",
     "package-lint"
    ],
-   "commit": "ecd03f83790611888d693c684d719e033f69cb40",
-   "sha256": "00py39n1383761wq6wp194pvyk94ydqdbxj9kl64g9jnipkp7849"
+   "commit": "615c1ed8c6fb7c73abec6aaa73d3fef498d231bc",
+   "sha256": "1qlsnqw88qalnh3sa0mzjkf8nfbyk6cdy7xmqiwdshym878qj4q0"
   },
   "stable": {
    "version": [
@@ -38226,8 +38379,8 @@
     "flycheck",
     "relint"
    ],
-   "commit": "4d112871b82d5ea6d0d3e4aaacc55a45536707b7",
-   "sha256": "1plqica209q1x8kzyy4iz97bvd8vqxgv1l00mlf946q201ps7yb1"
+   "commit": "c66d0c8d2e3a8abb6a3dfda597801e460b2eeb6f",
+   "sha256": "0ccvpj6bjjbski4kycdy97vhjxfz3wy4vsf62a3prygd1vjyplz5"
   },
   "stable": {
    "version": [
@@ -38709,11 +38862,11 @@
   "repo": "leotaku/flycheck-aspell",
   "unstable": {
    "version": [
-    20220128,
-    1518
+    20220411,
+    826
    ],
-   "commit": "ffe905560bb917ae4bbbbb8ad2d7e2c70664225a",
-   "sha256": "1rk5vlw8c2d0jycp1i7r030gldwg0fikj23fj7z3sw5x254p7waq"
+   "commit": "5ec0f9b28b1d86eec192b23bc24d9a33dfe51882",
+   "sha256": "02qv8gxlnasak87gggfg1643m5281fzjh4snpq1gjwyv6biqlldz"
   }
  },
  {
@@ -38788,8 +38941,8 @@
    "deps": [
     "flymake"
    ],
-   "commit": "097c8754367f68ea84eac9f5f31664cecb95eeb9",
-   "sha256": "1nw2lib8c919bwiljqbj2b098frw6ciamyd66ms131pzm633iplc"
+   "commit": "3163144d06fe1f9b10bc5a711ac22e5619aabc52",
+   "sha256": "1qhbijl750gbrwyi0lalrqapvzqrlxk0vf5zsf5iypgkxp02lv61"
   },
   "stable": {
    "version": [
@@ -38910,8 +39063,8 @@
    "deps": [
     "flycheck"
    ],
-   "commit": "850a3f2f6908db5d4a3739e385b2c9fb3ad488f9",
-   "sha256": "1axr0wgmjr58fhhl2zwh5l4wd9x8h66rv2917ynxwq61p955wi87"
+   "commit": "9040be3763b8f9952dccd9a04be25ac20a0f8745",
+   "sha256": "1003mxx8xl62z4srbdd9sz8f2l3g6h6rs29nvx99gpz4alh0ycd2"
   }
  },
  {
@@ -39016,8 +39169,8 @@
     "grammarly",
     "s"
    ],
-   "commit": "bb8bae85b0cd5a3d4603bbb35f9237bcd83d250f",
-   "sha256": "1a2mzmgp6sb0wylcasg764rczlqc0nj09wbxdfmdjghdcl679pr1"
+   "commit": "665f1404b4f99e5f067445f368042d3ec9388925",
+   "sha256": "0mjx0n1zh9chx6ywymrvb29br7zbxx8xxi93fy7kwcv0jk1jzysx"
   },
   "stable": {
    "version": [
@@ -39033,6 +39186,21 @@
   }
  },
  {
+  "ename": "flymake-hadolint",
+  "commit": "0d0ffd0d2b8c8b0557d5664b471c6050eeffa0fc",
+  "sha256": "16xn6i77r8c0m7v2m8n277gvifvvvn5mhpm06jgzhkgkkzdxn5g8",
+  "fetcher": "github",
+  "repo": "buzztaiki/flymake-hadolint",
+  "unstable": {
+   "version": [
+    20220328,
+    823
+   ],
+   "commit": "82a6df7f6cc95e1ab95c5d28f2edcd8c1d4c7382",
+   "sha256": "07fanb8ifdpwfnf1rr1h4v2dihmdnnxsikb9s9qxmfbpf0rmjnf9"
+  }
+ },
+ {
   "ename": "flymake-haml",
   "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
   "sha256": "0dmdhh12h4xrx6mc0qrwavngk2sx0l4pfqkjjyavabsgcs9wlgp1",
@@ -39257,14 +39425,14 @@
   "repo": "emacs-languagetool/flymake-languagetool",
   "unstable": {
    "version": [
-    20211227,
-    1908
+    20220414,
+    109
    ],
    "deps": [
     "s"
    ],
-   "commit": "330a277f6469f3382fb758bd19117aa4ca5aabf9",
-   "sha256": "1sgcws103qbj259zi0qrpn5cgjiab36sl2w2nnfs96bky228byc9"
+   "commit": "47170c0fffc95f965d4e1ef742cf052cfadd3439",
+   "sha256": "0na86dg6z75rycqpbg0f0mlzxzyjwvr78qjcvj1sh9pq8dwcilbl"
   },
   "stable": {
    "version": [
@@ -39380,8 +39548,8 @@
    "deps": [
     "flymake"
    ],
-   "commit": "dba854423933224f0d983bde8981f7c6b62a7865",
-   "sha256": "08j9zcj42zxwdlycqcivhh58rr1abafb66vbgcik9h2givnkx2ys"
+   "commit": "ca33d4816f30dfc589eaf9b38988607d622b6a3e",
+   "sha256": "0yfcghkbvi5f5vz1xigl0r0dl3091g5j9zafjy2pk2m8mh2jsnpw"
   },
   "stable": {
    "version": [
@@ -39469,8 +39637,8 @@
    "deps": [
     "flymake-easy"
    ],
-   "commit": "8f6222324e4f205312b51c8a862b24562db0e02e",
-   "sha256": "1cpfif8v9qrcfiklfy0rvj31f8ixj6npydzkqsn2xjxd8j8266zb"
+   "commit": "58aa83015faa491e336357a9a8592604fba52701",
+   "sha256": "1kl6b40a6p8nbhf4i6iv0wgn4dcfwpiw3s2hfyk6vp7lryc9jakn"
   },
   "stable": {
    "version": [
@@ -39608,15 +39776,15 @@
   "repo": "mohkale/flymake-rest",
   "unstable": {
    "version": [
-    20220313,
-    1311
+    20220409,
+    1233
    ],
    "deps": [
     "flymake",
     "let-alist"
    ],
-   "commit": "6c0f39ae1e8b476b195adfe477b40cf6c4a162b6",
-   "sha256": "1qmzf49ags9ymdfi7q4mk4amp522ssq2hnrknkrx1sj0lfxkkypw"
+   "commit": "4b7051222b64650e2ec8c8340fdbe792138ede83",
+   "sha256": "1bxyhqz4rgclqp4p29jkr5wvg143cd1f8nlv38zj23x8hfp2n6si"
   },
   "stable": {
    "version": [
@@ -39752,6 +39920,30 @@
   }
  },
  {
+  "ename": "flymake-swi-prolog",
+  "commit": "2cd3a22a666eaa1161860e7c45a46dd51187773b",
+  "sha256": "0r5xr8gg5sshyf5iacmqiad10jrb1xay92mrc6v6a34y4x9grlmg",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~eshel/flymake-swi-prolog",
+  "unstable": {
+   "version": [
+    20220404,
+    950
+   ],
+   "commit": "ae0e4b706a40b71c007ed6cb0ec5425d49bea4c3",
+   "sha256": "07wpm394vm026ihw1lzndmrw8bx9fk48bh6569llvcw439ni0mzy"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    2
+   ],
+   "commit": "ae0e4b706a40b71c007ed6cb0ec5425d49bea4c3",
+   "sha256": "07wpm394vm026ihw1lzndmrw8bx9fk48bh6569llvcw439ni0mzy"
+  }
+ },
+ {
   "ename": "flymake-vala",
   "commit": "855ea20024b606314f8590129259747cac0bcc97",
   "sha256": "1fs4alyf3dckdf1pm6vgh4wjpl22wrlhfx9nv072l0dg48zgyw16",
@@ -40502,8 +40694,8 @@
   "repo": "magit/forge",
   "unstable": {
    "version": [
-    20220326,
-    908
+    20220407,
+    1932
    ],
    "deps": [
     "closql",
@@ -40516,8 +40708,8 @@
     "transient",
     "yaml"
    ],
-   "commit": "2aaf4462e868acf6eca95e5ca2c3693c3f059c2b",
-   "sha256": "16d3zcjwxhy18jhgcznwx643v9fc93yxb6fxgkasrzb0dlxrhhwq"
+   "commit": "22c43d3471760dfe00cff0f27e8349ce0e3cb247",
+   "sha256": "1d0npv5vwp5nb0cl6dp917qg8c5w305w7k18hqm9kwz6wxn7v2cv"
   },
   "stable": {
    "version": [
@@ -40572,15 +40764,15 @@
   "repo": "lassik/emacs-format-all-the-code",
   "unstable": {
    "version": [
-    20220322,
-    1003
+    20220412,
+    1141
    ],
    "deps": [
     "inheritenv",
     "language-id"
    ],
-   "commit": "eb2a7fa6da15d23b57921218a36ac67d523e81f1",
-   "sha256": "1lf719fifgaci4hirz1bdnf918ijmkp017ynmlg1gq0lfx7ay7gj"
+   "commit": "a07bf109ce8e27458a40420508943f53856549fc",
+   "sha256": "0sj30s70nmm09rlq5h2fxjmrlw2mcwq30ncwqvlxqawpfpxzn5yj"
   },
   "stable": {
    "version": [
@@ -40657,11 +40849,11 @@
   "repo": "larsbrinkhoff/forth-mode",
   "unstable": {
    "version": [
-    20210829,
-    1824
+    20220402,
+    2103
    ],
-   "commit": "38d5152011ee67e0cff9d4a5ddfb1f908e5be013",
-   "sha256": "09irbi8z1p2006abl4fnkyfj3c16nzzf55wqighlc2ri2v8bbisb"
+   "commit": "122a9916c1ad1f1e3f4888951e1ad92a2fc10804",
+   "sha256": "1fb99l3kmxhhd9dyl99wy48b0r7zz5279nf4iargv7641xwkksy8"
   }
  },
  {
@@ -40877,11 +41069,11 @@
   "repo": "tarsius/frameshot",
   "unstable": {
    "version": [
-    20210819,
-    2123
+    20220407,
+    1933
    ],
-   "commit": "029df561ef6572b1ab034490ac48d909d037ac1d",
-   "sha256": "1b6frjhv4gkix0yj6ibvjgaf4y2b94xq0x4y021v086sp5ifsh3g"
+   "commit": "e33a2cfd591f59fe75723c556285669858d714bf",
+   "sha256": "0n94pn68bchm3s12mj0s46m3kvsrp4ijh0rry29azbkb4k0p791k"
   },
   "stable": {
    "version": [
@@ -41268,14 +41460,11 @@
   "repo": "fsharp/emacs-fsharp-mode",
   "unstable": {
    "version": [
-    20211229,
-    1121
-   ],
-   "deps": [
-    "s"
+    20220408,
+    1321
    ],
-   "commit": "b3aa4c53fc9e98648b25ad036e657632ae2fe192",
-   "sha256": "14n1xpj5waflhc1zj8mfnm4xavy560n1hamqk6a0dvsahpixjx6g"
+   "commit": "454a4ac3efaec2109178c3b0ca7392ce2818ec26",
+   "sha256": "1zdah0d52806bkbm24lz0hl9z97224w1k6r8c0fbyyi16265ghc3"
   },
   "stable": {
    "version": [
@@ -41341,8 +41530,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "cd194eebbf3bfc8ab795b41f99613faae342df34",
-   "sha256": "1qj9wvggyakp0v1yyr2fkj13ddgjj67g0fad2yk1xma44d454xfm"
+   "commit": "60005b6cfda0ae7d5c21e5a59f6edc90bd9707cc",
+   "sha256": "1h3sn8g5vb2gr4czrfdsm30c2cv7jm0455zj8ca9z9kapa43fmdi"
   },
   "stable": {
    "version": [
@@ -41495,14 +41684,14 @@
   "repo": "diku-dk/futhark-mode",
   "unstable": {
    "version": [
-    20220211,
-    1009
+    20220331,
+    1711
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "03c6ab09c8a580aaaab89709edcd999e66fca0e7",
-   "sha256": "12rf82ijlisvksq6jvkzgd73y3vgiwmprxfjssjzz8p5myp0m42i"
+   "commit": "f5daf5c340ed1242756e0d72f70ff6f9af6358e3",
+   "sha256": "1fyqrzrwpgv4cizqznaad98xpdk8mxd635kqxsl54n9f96ra2hd2"
   }
  },
  {
@@ -41540,8 +41729,8 @@
     20211231,
     1837
    ],
-   "commit": "9c500225fc1e084935f4865e2117acef8e30c5f5",
-   "sha256": "1y7439ipgpj57asmxhdgnkjyakh7ijj2242al5ljpswqmb5404kk"
+   "commit": "63993780a628dc2cf357ce44789017b44d7f7b06",
+   "sha256": "1zbijvavwa2niqwqajs1b7fgrmkq1lvz3j6kbaqmv2649krpnshq"
   },
   "stable": {
    "version": [
@@ -41608,11 +41797,11 @@
   "repo": "tarsius/fwb-cmds",
   "unstable": {
    "version": [
-    20220101,
-    1035
+    20220402,
+    1732
    ],
-   "commit": "1143188080e33afd3330f540c7e7df48898a4777",
-   "sha256": "032ykl67f5x1f98gm8s9jiynlvip16r4lkl64a7xn36g32a4g4x9"
+   "commit": "254dfda0a9f0e03b8b865089343845d3da2c8743",
+   "sha256": "1x50s5mvxlbcaqrx3bf3kjvb5xgc2rsk3i0ify9l8y2rpc8lbh92"
   },
   "stable": {
    "version": [
@@ -41941,15 +42130,15 @@
   "repo": "emacs-geiser/geiser",
   "unstable": {
    "version": [
-    20220324,
-    51
+    20220410,
+    306
    ],
    "deps": [
     "project",
     "transient"
    ],
-   "commit": "cbfab92584072ba0e1c4119612a8438db61ecbf6",
-   "sha256": "1gxa5ba5n7k169klg3zyrl8ywyljmcp006x2fql3s7awz0c98rw0"
+   "commit": "1300dd1a410a172588c529734a4fb1c8b58eaef1",
+   "sha256": "0ssw15rmn06nhk9zdpgkqclc603phx5jh3r5zjvf2pm0gdacwy2y"
   },
   "stable": {
    "version": [
@@ -42436,16 +42625,16 @@
   "repo": "thisch/gerrit.el",
   "unstable": {
    "version": [
-    20220323,
-    1105
+    20220413,
+    1219
    ],
    "deps": [
     "dash",
     "magit",
     "s"
    ],
-   "commit": "b7603d14f3869e1fba6265bd8255469a47be7357",
-   "sha256": "1hshq5bv3cmd04mkq8lckk9cnmjlhb4l34wapgpqrsyhfnz18zxw"
+   "commit": "1f2be2a157555b9f328cc3f8bc07c5898038b331",
+   "sha256": "1qjnwz8f678nf0zd2qy7jazqw9r9ccxpmsb84mlc7l6xg64kdgzw"
   }
  },
  {
@@ -42736,15 +42925,15 @@
   "repo": "magit/ghub",
   "unstable": {
    "version": [
-    20220325,
-    1028
+    20220403,
+    1248
    ],
    "deps": [
     "let-alist",
     "treepy"
    ],
-   "commit": "fdf2e5bb9ba34216d6a76444c1889863db447b29",
-   "sha256": "03c1934gck19gmhmy1cv3m2fma7f9pxi9l7p1pcz7iy1x6cyi6bm"
+   "commit": "8c4d0baa37230ef47f4950e7b101304851dd5c95",
+   "sha256": "13rkw6ydpfp7v92py4yxfyd0ifm4pxnr6069vpvblmg4y8z4zh30"
   },
   "stable": {
    "version": [
@@ -43035,15 +43224,15 @@
   "repo": "walseb/git-backup-ivy",
   "unstable": {
    "version": [
-    20200709,
-    818
+    20220412,
+    1914
    ],
    "deps": [
     "git-backup",
     "ivy"
    ],
-   "commit": "0a5c52e64d0062f77ffefc9213e75690c6d7b111",
-   "sha256": "060x20c4q7cr5zrfsa28z2zgr6isfb2y2ys450h46a9yi3w9h60f"
+   "commit": "c53e1bc800963c0d826226c37c22e36f2353c70d",
+   "sha256": "02ilrrgb2vijhd7sylj8dxdbpxh83zxhkkb8m9kqn8mqxpj0ii1g"
   }
  },
  {
@@ -43102,15 +43291,15 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20220222,
-    1036
+    20220331,
+    2308
    ],
    "deps": [
     "transient",
     "with-editor"
    ],
-   "commit": "b1702991eec2c068d282fc2f1bd665726a14e10d",
-   "sha256": "0gyvbhwm5x7wgm4cdp3v0h8vv5vkw066fmwsvlvgyqqppkq5pqz3"
+   "commit": "3cfc8458e14c705afdfbeb7dcd3d3f43d7479344",
+   "sha256": "1v21p89srk09ahszwm257j950f8j939y3yx8qzmrvmwya4isi9n7"
   },
   "stable": {
    "version": [
@@ -43207,8 +43396,8 @@
     20211222,
     913
    ],
-   "commit": "abe65ed3937fe038123549b948f37a3bbf1c4029",
-   "sha256": "1jkhvxlk4lkfjgd5vlfjy8z7w6n7j91rxqr48ricyzzl62p4v2wr"
+   "commit": "46a20d2db8a0b330f5ac838bad67c9795d95e7fe",
+   "sha256": "1qlpdpdxc6xhaiv5s6f8k2y35dn1wvbn17vxzy0d31nqhbqgbwhx"
   },
   "stable": {
    "version": [
@@ -43321,30 +43510,30 @@
   "repo": "akirak/git-identity.el",
   "unstable": {
    "version": [
-    20210905,
-    1208
+    20220402,
+    708
    ],
    "deps": [
     "dash",
     "f",
     "hydra"
    ],
-   "commit": "e2620767694d8cd2860b632c47fbe92e20a9ef14",
-   "sha256": "1wyfszd9jzg6c7lbl2rw7xpbr6fr4rj70h0jyqnwz081j9w92bb1"
+   "commit": "e7da2b3e3a5a790311431e3263b00df41d335136",
+   "sha256": "0mm5fbp9x1far97bk7n2y5hmcjbmd3iss9wx7iqh1852b4k4087x"
   },
   "stable": {
    "version": [
     0,
     2,
-    0
+    1
    ],
    "deps": [
     "dash",
     "f",
     "hydra"
    ],
-   "commit": "e2620767694d8cd2860b632c47fbe92e20a9ef14",
-   "sha256": "1wyfszd9jzg6c7lbl2rw7xpbr6fr4rj70h0jyqnwz081j9w92bb1"
+   "commit": "e7da2b3e3a5a790311431e3263b00df41d335136",
+   "sha256": "0mm5fbp9x1far97bk7n2y5hmcjbmd3iss9wx7iqh1852b4k4087x"
   }
  },
  {
@@ -43394,11 +43583,11 @@
   "repo": "sshaw/git-link",
   "unstable": {
    "version": [
-    20220217,
-    2315
+    20220406,
+    2328
    ],
-   "commit": "f5691f8c66eb0f6050d9ab3834ab32661244b378",
-   "sha256": "1ifq9z4p0rbz2bpm6qz89xg5ycn5fflsyradzzxzsgyys0zc6szx"
+   "commit": "0197c9812417e18df2c7b5cd5c0084271c2f3286",
+   "sha256": "0vsgb6jridasscp45prqlwf8lh9x7br3cfqby2lwzgzr8kqphivv"
   },
   "stable": {
    "version": [
@@ -43450,8 +43639,8 @@
     20211020,
     2306
    ],
-   "commit": "62fbf2e5b84ca789e7bc2f87939386023b5ba3df",
-   "sha256": "0aqz65pcqc35h5z4s606f48iqn87h5v9nj3cp6n9yjxa2v7w5hfk"
+   "commit": "bb71cb2226a1cf105c329f3186bfcb5bb37e2f2d",
+   "sha256": "1k3wncwsywdxyfimaz2lg14528zcs3kr8dd4x4yv1v04b5r6myz5"
   },
   "stable": {
    "version": [
@@ -43707,8 +43896,8 @@
     20220313,
     2033
    ],
-   "commit": "2123bcd08fe42094b07180632be2cd2af606ee21",
-   "sha256": "1n41px99cs6q53lfs2dn9h7ml6hc4yz7mbjlg30hp4l8a3j74lz3"
+   "commit": "785d2192d7cd30fb7d9c6cd660133a4002f598cc",
+   "sha256": "0pm91mmpfflm5ids34nflhda7pxhq67qj187wkmpy9lr3wgz695l"
   },
   "stable": {
    "version": [
@@ -44549,11 +44738,26 @@
   "repo": "lokedhs/gnu-apl-mode",
   "unstable": {
    "version": [
-    20211012,
-    1139
+    20220404,
+    341
+   ],
+   "commit": "c8695b0d55b5167263a843252ffd21a589018427",
+   "sha256": "03hwnzzxn5d1wdw93dgznflsx9m9hb133gv54pbrij2454pkvm4g"
+  }
+ },
+ {
+  "ename": "gnu-indent",
+  "commit": "51c6eeb58d893e129177d5de77b3d53fb8139441",
+  "sha256": "17jrj1v0kvpqm1aa75zzn58yqariql5pj9ywf9iv1s9670ydhql9",
+  "fetcher": "git",
+  "url": "https://codeberg.org/akib/emacs-gnu-indent.git",
+  "unstable": {
+   "version": [
+    20220330,
+    422
    ],
-   "commit": "5d998206a963f2205dc6c4eddb41fb34187cb527",
-   "sha256": "1yzyq8k770j78f2gkkr1n1d5jpdfmj9l3w40pjd7fmn94xg3qw9a"
+   "commit": "cd5dc79ac65c24e9e775bd2582ad620e316f2182",
+   "sha256": "07ccrjlh5ph8sdsrd7k5ihrjl4qgsjf9qr54y90fq5b9hzy9ksgp"
   }
  },
  {
@@ -45075,8 +45279,8 @@
     "cl-lib",
     "go-mode"
    ],
-   "commit": "3273fcece5d9ab7edd4f15b2d6bce61f4e5a0666",
-   "sha256": "00qzn136d8cl3szbi44xf3iiv75r6n1m7wwgldmzn4i5mpz8dbq7"
+   "commit": "fa2693278637f56759480d2bf203bb8aad107230",
+   "sha256": "1dy96rgss19pwj3pp39wrm5kk933xbqmk79y6a599mnkiixdyaaz"
   },
   "stable": {
    "version": [
@@ -45171,8 +45375,8 @@
     20220114,
     2239
    ],
-   "commit": "3273fcece5d9ab7edd4f15b2d6bce61f4e5a0666",
-   "sha256": "00qzn136d8cl3szbi44xf3iiv75r6n1m7wwgldmzn4i5mpz8dbq7"
+   "commit": "fa2693278637f56759480d2bf203bb8aad107230",
+   "sha256": "1dy96rgss19pwj3pp39wrm5kk933xbqmk79y6a599mnkiixdyaaz"
   },
   "stable": {
    "version": [
@@ -45292,8 +45496,8 @@
    "deps": [
     "go-mode"
    ],
-   "commit": "3273fcece5d9ab7edd4f15b2d6bce61f4e5a0666",
-   "sha256": "00qzn136d8cl3szbi44xf3iiv75r6n1m7wwgldmzn4i5mpz8dbq7"
+   "commit": "fa2693278637f56759480d2bf203bb8aad107230",
+   "sha256": "1dy96rgss19pwj3pp39wrm5kk933xbqmk79y6a599mnkiixdyaaz"
   },
   "stable": {
    "version": [
@@ -45409,11 +45613,11 @@
   "repo": "lorniu/go-translate",
   "unstable": {
    "version": [
-    20220321,
-    210
+    20220404,
+    1240
    ],
-   "commit": "2616a4c2e26827ecba0f2576d26b01a63546b452",
-   "sha256": "00bs8alcd2hj4c2yz1m6h1h0zddy9vicmhvipz5q1lsmnbaamwmr"
+   "commit": "b3b3e0acfe5ebeba556f3b98bcff089b889c82c4",
+   "sha256": "00d1z91zq2sixl80g4ax7n7hc1wh4dmzg5c1p66i9lsmybg2aaxh"
   },
   "stable": {
    "version": [
@@ -45495,11 +45699,11 @@
   "repo": "minad/goggles",
   "unstable": {
    "version": [
-    20220222,
-    1514
+    20220403,
+    1812
    ],
-   "commit": "5d10b00b5f4ee686683c48804235f62d644ae2ef",
-   "sha256": "0q7vnvqr9283wg0gj7cwn8b540syhzyibjkhv3h81qi3cwk5a5fy"
+   "commit": "6941fd5bc19c0a2789dda38334d2be582ed34e5a",
+   "sha256": "16vc4j1hbs25vy414wjid8i821cx1pcld3ilnrlapix3hlsnnjbc"
   },
   "stable": {
    "version": [
@@ -45682,8 +45886,8 @@
     20220210,
     1659
    ],
-   "commit": "af78b49ac4fef8083094d5105f72528ee7d09073",
-   "sha256": "00vryh0h5sc72f49172nxnxwkphw811k58ivkmal97zd2v3m6w7g"
+   "commit": "629edc1ca95113f882e0c136d155a0f2e2e952bb",
+   "sha256": "15yiv4lx77aan23mjzrzd5da6lcr0brs7agimxm05ya2lhs4n0jq"
   }
  },
  {
@@ -45907,8 +46111,8 @@
     20210323,
     332
    ],
-   "commit": "573a53f070c71e02d89866f4cdc2ba5ccdc9cecb",
-   "sha256": "1am0l056dyi71wwzv7viigia9qybdh9b19w4ql1fkrr80zr5m0v3"
+   "commit": "75597233576dd60e43f535f20d11650404f9207d",
+   "sha256": "06nv842ycvksvbqacsydbq4pwj8hr304llifrpyalk9wdv15jldi"
   },
   "stable": {
    "version": [
@@ -45994,8 +46198,8 @@
     20210323,
     422
    ],
-   "commit": "27fcc9e7062c9d672a513ba306fd32f7736dab78",
-   "sha256": "1zmpmv7121cv2v5sm3pg5jz7rfhikj8351isx2qa2z165b3ixssz"
+   "commit": "6355c1bab7a1c543b517c9cb1236071576a82c59",
+   "sha256": "01650x7vnjrcf5v8d2a2zx1xscbw6hrcxyfjj4d43l9hzsp4kx9m"
   },
   "stable": {
    "version": [
@@ -46024,8 +46228,8 @@
     "magit-popup",
     "s"
    ],
-   "commit": "fcb4f7ccee1a01bd759c3d4e7331d40c61a1feca",
-   "sha256": "1qdlmj8gpsc5365kplm0wif93y8bwfnya47y013nqjk748ins8vv"
+   "commit": "b76ddb07718332bbd6cb59bda77c62dad7dcfcb9",
+   "sha256": "1zhskkvdczk8f0bz7zxp4f0b7maz4zmzy6agh2a4jxsvnig6sj4q"
   },
   "stable": {
    "version": [
@@ -46172,20 +46376,20 @@
   "repo": "lifeisfoo/emacs-grails",
   "unstable": {
    "version": [
-    20200519,
-    1909
+    20220407,
+    1847
    ],
-   "commit": "d47273a619d6731683afe60636259b02e2c78a2e",
-   "sha256": "1j2sd51bnn6ngz5sd01akmrnh9938g7v1fh6mxq4lbzjwgnzbvgy"
+   "commit": "350869ecc4f429fc4e26f826d6050d068e724c5d",
+   "sha256": "1zw8hh97jlxjdgi5spsfd40qgahwbcca2cg2wbqyn1pgq4rjdx0i"
   },
   "stable": {
    "version": [
     0,
-    4,
-    2
+    5,
+    0
    ],
-   "commit": "d47273a619d6731683afe60636259b02e2c78a2e",
-   "sha256": "1j2sd51bnn6ngz5sd01akmrnh9938g7v1fh6mxq4lbzjwgnzbvgy"
+   "commit": "350869ecc4f429fc4e26f826d6050d068e724c5d",
+   "sha256": "1zw8hh97jlxjdgi5spsfd40qgahwbcca2cg2wbqyn1pgq4rjdx0i"
   }
  },
  {
@@ -46196,11 +46400,11 @@
   "repo": "Groovy-Emacs-Modes/groovy-emacs-modes",
   "unstable": {
    "version": [
-    20160504,
-    911
+    20220407,
+    1954
    ],
-   "commit": "bf732d367b16887f81d404481c11ed1a58671d4e",
-   "sha256": "1w7ly961mqb1396653ali52h0311f0dz3pbmlaxml67dshidjjci"
+   "commit": "29210e5a969c02169b68e04f2e28e3bf2fc13363",
+   "sha256": "1m1j5c7pjs4iv39m8axxp5cq648misvhh7fyyfs22lv3yf805q1l"
   },
   "stable": {
    "version": [
@@ -46259,8 +46463,8 @@
     "s",
     "websocket"
    ],
-   "commit": "067c58d79a90071a0d70012fa1722c5c79abdc01",
-   "sha256": "1w3mj1izjs0y7xpbpy7vrkj7ljpbiz7ivkv4h17847q6w79y92wa"
+   "commit": "9cde43ad6c5dc1a120e731c36bc8e708a4c9a5b5",
+   "sha256": "060kfibdn0vz2wqi5036ghm4fhrngqm943d7hvpw056hz2iywkqc"
   },
   "stable": {
    "version": [
@@ -46672,8 +46876,8 @@
     20220323,
     1519
    ],
-   "commit": "3b06e0f594efc5d835eb30a4b89ad951e7b4d7a1",
-   "sha256": "026r6wh0plpwb6ag05ysfhcsw7l4001xwb7wqw1xchxh7jhvpmdy"
+   "commit": "6b427143a8f61bb0b5dd070d554e5058130d15ff",
+   "sha256": "07nxnyqli58kydpx7b8y4qv134d8n4pb0458max74w7ivgz3jrh2"
   },
   "stable": {
    "version": [
@@ -46759,8 +46963,8 @@
     "dash",
     "s"
    ],
-   "commit": "bf732d367b16887f81d404481c11ed1a58671d4e",
-   "sha256": "1w7ly961mqb1396653ali52h0311f0dz3pbmlaxml67dshidjjci"
+   "commit": "29210e5a969c02169b68e04f2e28e3bf2fc13363",
+   "sha256": "1m1j5c7pjs4iv39m8axxp5cq648misvhh7fyyfs22lv3yf805q1l"
   },
   "stable": {
    "version": [
@@ -46809,8 +47013,8 @@
     20211119,
     815
    ],
-   "commit": "1b3b807e84cb250f0cc70876a438fed3b27eb756",
-   "sha256": "1p99lrq6p6xyn9lc2zmf68ns70kayhri1xls0h1h6ibxsqzvxyac"
+   "commit": "ac92a8d54efe000557564a9b01a426f34cc01dfa",
+   "sha256": "0i46i060ndls8pvczmgr7myfbj2cljg4q178n4a6dfa9sr5z6ja2"
   },
   "stable": {
    "version": [
@@ -47036,14 +47240,14 @@
   "repo": "tmalsburg/guess-language.el",
   "unstable": {
    "version": [
-    20210623,
-    1505
+    20220408,
+    1545
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "e6b78ed2a36bf5debd3d07ffd99a5a8ca60609d6",
-   "sha256": "0g0vdz42s6hns249lfxcha7l7ihqpyay3n5iijziwrbrrhqi6rx6"
+   "commit": "b1fc363ca2c30b8a8ddaf2e366bca7770c8cfbec",
+   "sha256": "1sgzvi6ax05rfnjdlmhkd52sr26b6w3q1lfcrrv6rdzsifarh2iv"
   }
  },
  {
@@ -47640,15 +47844,16 @@
   "repo": "otavioschwanck/harpoon.el",
   "unstable": {
    "version": [
-    20220301,
-    607
+    20220402,
+    446
    ],
    "deps": [
     "f",
-    "hydra"
+    "hydra",
+    "project"
    ],
-   "commit": "331eea2ed64e34cdbea024fa0fd6ba930b60d95f",
-   "sha256": "0clfdvsw08hb68iq9rhhlfb8rzp1dd81yx5k0d7zs0nqbldr71av"
+   "commit": "a23571eaab94fb2da0569ed5ab3c1b469f123b97",
+   "sha256": "0xl7lfj9cc9qp72ibjyilrdxrknvfd07fk206c8933yngrkqf376"
   }
  },
  {
@@ -47777,11 +47982,11 @@
   "repo": "haskell/haskell-mode",
   "unstable": {
    "version": [
-    20220324,
-    1803
+    20220331,
+    1645
    ],
-   "commit": "b1505b727b1fb8ae352e59dc90ec6dd05369ce32",
-   "sha256": "1a2znlg42jg5v2ml1n6a5chrh4365kppfrrd2y6f8rk4x6jwr6mx"
+   "commit": "4ec2aa32b1772e629a6a2b47b84048e1990d6728",
+   "sha256": "0m0irwlwz17dmx4k1x82slmbxaxkmhxdjm9ha1490jf4wbbh93q4"
   },
   "stable": {
    "version": [
@@ -47877,26 +48082,26 @@
   "repo": "purplg/hass",
   "unstable": {
    "version": [
-    20211222,
-    2321
+    20220402,
+    1326
    ],
    "deps": [
     "request"
    ],
-   "commit": "6b025d526dbb9f701a318f4163b4bab0d3b47e59",
-   "sha256": "1zrkfdf1dmjbfblswl3bhsa3dbwdcbxzmjkqlx06ayjbq48q990f"
+   "commit": "c6bded14ae4b68194bd9e35428e9973ca144569b",
+   "sha256": "1qklrp1gskcr93j8gzi1nsp6kzjq7pra1rnyls67l4nchff2knl3"
   },
   "stable": {
    "version": [
     2,
-    0,
-    0
+    1,
+    2
    ],
    "deps": [
     "request"
    ],
-   "commit": "3deecf853a1089186973dddf3a1a2a78d874feac",
-   "sha256": "14aiybj07w65a1hd8izc6awlqffz02gl670szwrk4lj9abxrs0gj"
+   "commit": "22873f7df205cc1144ebff7aa2dc9bb85031c8a3",
+   "sha256": "1qklrp1gskcr93j8gzi1nsp6kzjq7pra1rnyls67l4nchff2knl3"
   }
  },
  {
@@ -47947,8 +48152,8 @@
     20210108,
     1835
    ],
-   "commit": "b6daf4c8bfd7fa6ba7b4bdbfe03c0be7704add04",
-   "sha256": "0g4xp5z6wqhfivyls6asjnqdxmafbyl24fvcqk2s5zd9j94x6649"
+   "commit": "2390e7899eec7497202c3b58de435060ca2ceaa0",
+   "sha256": "0sxq05cbz1h2f1h860dzx0k7lxbxpli0smdh3pq03fa926jp8iry"
   },
   "stable": {
    "version": [
@@ -48087,15 +48292,15 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20220319,
-    1850
+    20220413,
+    708
    ],
    "deps": [
     "helm-core",
     "popup"
    ],
-   "commit": "5e035c9193bf1e1d4bb709794a154957544dcfc7",
-   "sha256": "1my6c87ia7h99dbbbw1yxcmgacwss1j36rf3swn3k2ab6k34hsf4"
+   "commit": "5546efa7d177068c4f28fe41a02927cf19a7b018",
+   "sha256": "1p0blx8k6vvmi8y5v0wkz9n1bvljin4gn5apk0k26cv6npllrycz"
   },
   "stable": {
    "version": [
@@ -48194,8 +48399,8 @@
    "deps": [
     "helm"
    ],
-   "commit": "9109208978bc739fb8fdae760abcea4225048dd1",
-   "sha256": "0cm1r1qmmmvdmr0sshsndvi9s99n52y4nkirq7cs8alg86iyiyrk"
+   "commit": "1b464c0d2b9e50a0cef2310dbf8babb1a9933834",
+   "sha256": "1v7v96h1kls7znxf9ph34j8h1y7jnfad91dbiq6j0pff885s9190"
   },
   "stable": {
    "version": [
@@ -48387,8 +48592,8 @@
     "cl-lib",
     "helm"
    ],
-   "commit": "db73156576ee3e4ea9d7fb06a20e3cc2c8225eaf",
-   "sha256": "086skvifcm6jnzbmhx9xlcjx303a9w6v00q557pc1qja0hanxic9"
+   "commit": "c089a1cc87d91611366b9430c2890c628b3342c4",
+   "sha256": "1vlpq96w4bvbjz4pa3f2l8vs0jp7gb7k7jlhqjbdpm5qv09q513k"
   },
   "stable": {
    "version": [
@@ -48993,14 +49198,14 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20220319,
-    1850
+    20220409,
+    756
    ],
    "deps": [
     "async"
    ],
-   "commit": "5e035c9193bf1e1d4bb709794a154957544dcfc7",
-   "sha256": "1my6c87ia7h99dbbbw1yxcmgacwss1j36rf3swn3k2ab6k34hsf4"
+   "commit": "5546efa7d177068c4f28fe41a02927cf19a7b018",
+   "sha256": "1p0blx8k6vvmi8y5v0wkz9n1bvljin4gn5apk0k26cv6npllrycz"
   },
   "stable": {
    "version": [
@@ -49557,8 +49762,8 @@
    "deps": [
     "helm"
    ],
-   "commit": "6a1d1fefad4b7f3723220da2edaef0b7d6f09a0e",
-   "sha256": "0wzq9pj1gbyv7cyar0r4hgmskwmksq7xfpjldibw30vzrpiqapas"
+   "commit": "0feb38491cd000d7d6fd3595cc3bf572bf3b60f9",
+   "sha256": "0i2c9ig4z9c0dvs5a5nym6rh6sg4vji3llrjdgn58w3zsx6784nv"
   },
   "stable": {
    "version": [
@@ -49662,15 +49867,15 @@
   "repo": "PythonNut/helm-flx",
   "unstable": {
    "version": [
-    20180103,
-    516
+    20220402,
+    21
    ],
    "deps": [
     "flx",
     "helm"
    ],
-   "commit": "6640fac5cb16bee73c95b8ed1248a4e5e113690e",
-   "sha256": "1fh1dy6xpc476hs87mn9fwxhxi97h7clfnnm7dxb7hg43xmgsjjs"
+   "commit": "27dd9e3ce385a3ca15092150e65781de14b5b00b",
+   "sha256": "1ipg6sfwnv9ilhy3qy84ml3awf74gm18vjmkw42adcsvyg54w843"
   }
  },
  {
@@ -49822,8 +50027,8 @@
     "flx",
     "helm"
    ],
-   "commit": "e0cf739c0765c3f0186b9d5f691c2c7750a484c2",
-   "sha256": "1kkcnczk295aib8r37qfl0bcvrvki12wi0r5aqjc1g8vklaf9vbp"
+   "commit": "5ea8a2db5fec36ae3604c94c5f8fff1ed459feff",
+   "sha256": "19yxfrvybfpannnrracw9dkflafj98f5pmf2vkh7k2sxkswbmll0"
   },
   "stable": {
    "version": [
@@ -50169,8 +50374,8 @@
    "deps": [
     "helm"
    ],
-   "commit": "06255ec6347efb8f1884b4a844f40f94239137bb",
-   "sha256": "1yp1l6na6mf91wym28pnmc06zwbhg2i3p9i1z7kx9wf3mc3982gn"
+   "commit": "85a3af1a45221ec326df2e5638c28996348fe09a",
+   "sha256": "0k701c3dzdw051bv1s17bc82qd62v2zglrgsrk27d8aa5cix40xq"
   },
   "stable": {
    "version": [
@@ -51995,8 +52200,8 @@
     "s",
     "searcher"
    ],
-   "commit": "fedb0c735270764a0fd38cebcd2b3c32612fd455",
-   "sha256": "0jv8qbffr5wckblkdy2ka0rryczr72m8kgmg5y2is1jajnxsfwam"
+   "commit": "5d43df9ceedaa5a712d2ceef2aa2317ed4b7cc1d",
+   "sha256": "0s08q1ssgbp69q4vj6ysz424mrn79wk3dqpfbwp0v5kgq0882x9l"
   },
   "stable": {
    "version": [
@@ -52476,8 +52681,8 @@
    "deps": [
     "helm-core"
    ],
-   "commit": "c1d5f9a2ccdb133aaf6122632166ba4b6fbc188b",
-   "sha256": "05vd7gxa21lg49hhs0pg0skpidav9qmhcijkjakzi4v8p29qjg72"
+   "commit": "c9f5a998e8b69f0bcf0c0bb25931155a436c36cb",
+   "sha256": "1ma941sqvnzrb2dr3qvzfsxiy57v6iwji5a0la86s2mgv06zhp3c"
   },
   "stable": {
    "version": [
@@ -52529,15 +52734,15 @@
   "repo": "Giedriusj1/helm-tree-sitter",
   "unstable": {
    "version": [
-    20220124,
-    2246
+    20220328,
+    1345
    ],
    "deps": [
     "helm",
     "tree-sitter"
    ],
-   "commit": "1cace1f9a8c5c519b985f7ee542ba3375eabd0e1",
-   "sha256": "1ka0xq5ghhn4r82k1aq5v4scariwvpwbr7c179j36axxlyvr6zkn"
+   "commit": "ef5209bd1deb56d6cab7a26e6d55615161f2115a",
+   "sha256": "1cmjz8dl8r218r1bx85slzb91xwlrhxq9w73p5ql967wd9dzi60g"
   }
  },
  {
@@ -52859,8 +53064,8 @@
   "repo": "Wilfred/helpful",
   "unstable": {
    "version": [
-    20220220,
-    2308
+    20220412,
+    421
    ],
    "deps": [
     "dash",
@@ -52868,8 +53073,8 @@
     "f",
     "s"
    ],
-   "commit": "67cdd1030b3022d3dc4da2297f55349da57cde01",
-   "sha256": "064rnxcf1w7zrjr39a72hngyndj24wkmmyqrgr1bpgsl87zgvbrg"
+   "commit": "c2729a236a84a1fbd3d184c163fbd10e0fd62077",
+   "sha256": "0q5a1s4wkxjp56gy95qzkxzz8w46djacgh9fhwm509rkkdxpp30c"
   },
   "stable": {
    "version": [
@@ -53427,20 +53632,20 @@
   "url": "https://git.sr.ht/~tsdh/highlight-parentheses.el",
   "unstable": {
    "version": [
-    20210821,
-    1957
+    20220408,
+    845
    ],
-   "commit": "98178e79a92515fcacd278fb486702dedde0bed3",
-   "sha256": "02psp4sfirvab6bv9nylfqqfrmmz87wv8x1sf8bmrrqqk0rwn37p"
+   "commit": "438a1cb2563e2a2496be4678cc0df8d5b22caf5d",
+   "sha256": "0ixjai9w9x4sm1lx9yljl58r7ydbbjlkb0a2pbv316l8qph8w44r"
   },
   "stable": {
    "version": [
     2,
-    0,
-    4
+    1,
+    1
    ],
-   "commit": "8d43acc799328023ea1ca687122bbf8f068b4989",
-   "sha256": "0i3fcrkkwalgcb9whw6gjcl5f4yr7vd4vp450i8lj9nab22p7mqc"
+   "commit": "438a1cb2563e2a2496be4678cc0df8d5b22caf5d",
+   "sha256": "0ixjai9w9x4sm1lx9yljl58r7ydbbjlkb0a2pbv316l8qph8w44r"
   }
  },
  {
@@ -53878,20 +54083,20 @@
   "repo": "tarsius/hl-todo",
   "unstable": {
    "version": [
-    20220323,
-    1714
+    20220402,
+    1112
    ],
-   "commit": "c0f0555a6b9f3818f29e6394db0b45d6d5675edf",
-   "sha256": "15sndz0dd8aasg23yp298rlrw17pn73irzn048fmvri8wl8951hv"
+   "commit": "7772ce536e5146f44efc3cc0ce2d9326f115683d",
+   "sha256": "03gb1vp44bf6a0h6r298bw1zsfd7rxxpph2ll2prspx7kzi2f5ph"
   },
   "stable": {
    "version": [
     3,
     4,
-    1
+    2
    ],
-   "commit": "c0f0555a6b9f3818f29e6394db0b45d6d5675edf",
-   "sha256": "15sndz0dd8aasg23yp298rlrw17pn73irzn048fmvri8wl8951hv"
+   "commit": "e52285965b5ee89c18080661d4f80270143ae8dc",
+   "sha256": "03i3dvg7scvbxx6z07916zqc7p8w5s9nxv4v2phr68046zjz05dw"
   }
  },
  {
@@ -54192,8 +54397,8 @@
     20210924,
     936
    ],
-   "commit": "e963cef1bf24b2da491c1aafd4260ee6ae3a766c",
-   "sha256": "1w51drd0zchgl5yxyg1a3rd0xkxf6cybfalzdz7cjprd8kmipmj5"
+   "commit": "95a1be449624aa2b25128b900b6211034d0e17bb",
+   "sha256": "1lfwa6r3z79kvahgily4drmpf2y4sfwkv5gqbpn57fjxh2sq4rwp"
   }
  },
  {
@@ -54483,8 +54688,8 @@
     20200929,
     559
    ],
-   "commit": "a221c1af3d0a2bdc849adabd4044bb3f63895b54",
-   "sha256": "1warqfy5gq56mxypkpzd29k280yka2zzi131rrm1j2rr49ipj6dq"
+   "commit": "88beaf52358a5b59c598e1f6c9fc16dd6bd5a850",
+   "sha256": "1ldf07gaynb463giwlplb332fc1k2xabrrzpw64f0n2rnmjhafll"
   },
   "stable": {
    "version": [
@@ -56048,11 +56253,11 @@
   "repo": "tarsius/imake",
   "unstable": {
    "version": [
-    20210918,
-    2046
+    20220401,
+    1051
    ],
-   "commit": "e69a09e7962afe81474aa6c88974a1e6add15624",
-   "sha256": "0953irnlzx0nl4iirpgf7llyld2n8yl1w9yjkh0lvlz1l9gcpvqy"
+   "commit": "2541fb021dec9eaa3083aca4c8ce30b67a50d6b9",
+   "sha256": "0k89lbq9dfi3vx7kmf8z3an0x278806skr5s86y54c2l0190giz3"
   },
   "stable": {
    "version": [
@@ -56339,8 +56544,8 @@
    "deps": [
     "impatient-mode"
    ],
-   "commit": "8376bcfc2bbb3762e26dfc1bb8866c452f7935fe",
-   "sha256": "01g5r3sh1qma3vpyzzhixpw62y0kvphznpnfd80w4a5a3gbwp5m2"
+   "commit": "e5513ae24dfdb58b7c2c2bba544124af4619b241",
+   "sha256": "1m841f9d9iqmmlycaa703d43svpizix3vbyhqbzrp9idn2l68xb2"
   },
   "stable": {
    "version": [
@@ -56480,8 +56685,8 @@
     20220227,
     653
    ],
-   "commit": "c6373bdfaf43255141983aea245571364f04d3cb",
-   "sha256": "0iphkl27ihnv2dmjaj1b3292xsx8g8m11r7hjikh421n9f1p5xy0"
+   "commit": "604027eda4ee8a44b085ffebbee944ad0d57fa20",
+   "sha256": "01s4l66afvzs6fb8mv3r8zs514ak6j13p1jhjrsw16s4dnmgc1nj"
   },
   "stable": {
    "version": [
@@ -57005,8 +57210,8 @@
     20210204,
     354
    ],
-   "commit": "7e4c8b0d0a43b6f1c6c4d6dbd2f3bf5ce7f20067",
-   "sha256": "1qc54wx5f1yvap9hxi1k5qqsascxxs9lq317qpzipmbazw7qk7ch"
+   "commit": "c2c879acf89682559b157fb069e1da008f4912ea",
+   "sha256": "1j7vrrdwxr1m78i08aciws4bacb30fxfrix7ciscx0ii7ifx3hc4"
   },
   "stable": {
    "version": [
@@ -57137,11 +57342,11 @@
   "repo": "ideasman42/emacs-inkpot-theme",
   "unstable": {
    "version": [
-    20220326,
-    733
+    20220412,
+    538
    ],
-   "commit": "a8d0d2ecd4855ba91e21d0481b02dff3755f8afd",
-   "sha256": "0qz91mzfp8ywk9ngaw60q0nczxykanl5sbgf42v9xfgm6fys8yal"
+   "commit": "8e5c3ce6269debfe7879dfa33a82a4f63c881720",
+   "sha256": "1q3j1vfyh0a5fmqayz6q6znwszmkpbyv717lzqpjlll4yj8bzw37"
   }
  },
  {
@@ -57716,8 +57921,8 @@
    "deps": [
     "f"
    ],
-   "commit": "1ccf7219c2f78485aa23174e46aa8cd77a98a6a0",
-   "sha256": "0bws8fiqysqjcyw1y1ng1dic7nv7g1syml9hldb9gf7b0xan35yz"
+   "commit": "3a56ce86e96bd843123f01785d304e022dd020c4",
+   "sha256": "02c9yrjpqa30skimvh1bf45p9zr12n8m53r7992hjpnk8xadyvj9"
   },
   "stable": {
    "version": [
@@ -57949,11 +58154,11 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20211231,
-    1730
+    20220406,
+    1052
    ],
-   "commit": "c97ea72285f2428ed61b519269274d27f2b695f9",
-   "sha256": "05ivdsq6l6ixdn5p0rjh7mcgw19fm38m137xb8yi2c9gii6yk6g2"
+   "commit": "7489968257a74f176c0d1de7ec8bd1e2011f0db4",
+   "sha256": "0gmgfv9d5vicd5lqcbzn0i6qfjw42whhww6hdqch2pgkhl4i1ria"
   },
   "stable": {
    "version": [
@@ -57980,8 +58185,8 @@
     "avy",
     "ivy"
    ],
-   "commit": "c97ea72285f2428ed61b519269274d27f2b695f9",
-   "sha256": "05ivdsq6l6ixdn5p0rjh7mcgw19fm38m137xb8yi2c9gii6yk6g2"
+   "commit": "7489968257a74f176c0d1de7ec8bd1e2011f0db4",
+   "sha256": "0gmgfv9d5vicd5lqcbzn0i6qfjw42whhww6hdqch2pgkhl4i1ria"
   },
   "stable": {
    "version": [
@@ -58013,8 +58218,8 @@
     "cl-lib",
     "ivy"
    ],
-   "commit": "db73156576ee3e4ea9d7fb06a20e3cc2c8225eaf",
-   "sha256": "086skvifcm6jnzbmhx9xlcjx303a9w6v00q557pc1qja0hanxic9"
+   "commit": "c089a1cc87d91611366b9430c2890c628b3342c4",
+   "sha256": "1vlpq96w4bvbjz4pa3f2l8vs0jp7gb7k7jlhqjbdpm5qv09q513k"
   },
   "stable": {
    "version": [
@@ -58227,8 +58432,8 @@
     "ivy",
     "s"
    ],
-   "commit": "eb358d8460b944bf764cb6c01f205e6af94c4861",
-   "sha256": "07lazz8ca9sshrgswl47zz8gvc0niwyi397m3x3vrn5738qd0bf9"
+   "commit": "eb004b51b6bf7f41cf084aecc6d31e90a174ffd6",
+   "sha256": "08gbbmv6ksd6lpwc53acjvxb5yni78r4rxfi5bnxvqq2fn1vw1iz"
   },
   "stable": {
    "version": [
@@ -58341,15 +58546,15 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20210311,
-    1108
+    20220402,
+    1348
    ],
    "deps": [
     "hydra",
     "ivy"
    ],
-   "commit": "c97ea72285f2428ed61b519269274d27f2b695f9",
-   "sha256": "05ivdsq6l6ixdn5p0rjh7mcgw19fm38m137xb8yi2c9gii6yk6g2"
+   "commit": "7489968257a74f176c0d1de7ec8bd1e2011f0db4",
+   "sha256": "0gmgfv9d5vicd5lqcbzn0i6qfjw42whhww6hdqch2pgkhl4i1ria"
   },
   "stable": {
    "version": [
@@ -58681,8 +58886,8 @@
     "s",
     "searcher"
    ],
-   "commit": "63d55b3c333881d3c9d1e3f1ee50a72e79fd9e0e",
-   "sha256": "1mydy1akn25xb9wy8y08vmk997h2nvqdm48fnxldxbkli2d0zv1j"
+   "commit": "4501687a2cc9d8746a054bbc89691e7e2deff1f3",
+   "sha256": "08nk430yygbc6hqj7s8nn0w62p36hk92a6cfylbbpqgbc5cyrsjj"
   },
   "stable": {
    "version": [
@@ -59288,8 +59493,8 @@
     "auto-complete",
     "jedi-core"
    ],
-   "commit": "e942a0e410cbb2a214c9cb30aaf0e47eb0895b78",
-   "sha256": "1c4nqgg1w2qv0mhpi6hhz3xr5kk4bbxc951fhik6dpi2c2w8p73s"
+   "commit": "81c5a42b83f3a3c9d062b487f48009def11310f8",
+   "sha256": "0pg6yl2bgx6gh74nnvicak12fwsi257fivkvgy4zlikhbi2b17ar"
   },
   "stable": {
    "version": [
@@ -59321,8 +59526,8 @@
     "epc",
     "python-environment"
    ],
-   "commit": "e942a0e410cbb2a214c9cb30aaf0e47eb0895b78",
-   "sha256": "1c4nqgg1w2qv0mhpi6hhz3xr5kk4bbxc951fhik6dpi2c2w8p73s"
+   "commit": "81c5a42b83f3a3c9d062b487f48009def11310f8",
+   "sha256": "0pg6yl2bgx6gh74nnvicak12fwsi257fivkvgy4zlikhbi2b17ar"
   },
   "stable": {
    "version": [
@@ -59867,8 +60072,8 @@
     20180807,
     1352
    ],
-   "commit": "516abed166d687aa8b197973315bd6ea0900fb62",
-   "sha256": "0l0hk6lfn6rvfxjmnkyigc0qqh6k1jbfg4i3g2s2d994hihdynhp"
+   "commit": "b8b4e3e54118b38fd6003cb97e1ff6e456a24f26",
+   "sha256": "18wx2lrww2qa2ig7g2vry14ql767hyy01sf6kb6ml1f1fs0crqn9"
   },
   "stable": {
    "version": [
@@ -60058,14 +60263,14 @@
   "repo": "mooz/js2-mode",
   "unstable": {
    "version": [
-    20220316,
-    1506
+    20220402,
+    2211
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "b9ed9e406d59661bb099cb2307dfbfcc1d47beae",
-   "sha256": "15c5smxfh2dgk6da012fsvjz9c075cxfp2q8fglbalazplzwv4zc"
+   "commit": "fed41615b26404e0bfd7e4f64643981ca798a34b",
+   "sha256": "007b4z3qpdy6apljb48aay9v1pf6pkrq0prhwhdqcqkq9rbghg7m"
   },
   "stable": {
    "version": [
@@ -60554,8 +60759,8 @@
     20211023,
     1434
    ],
-   "commit": "47f43f7d839019cac3ba6559d93b29487ca118cb",
-   "sha256": "0gfm6xnijxxgc1fjqgbsvzf9m68pfcbdhrii6c7a29v5cw6khkaj"
+   "commit": "b1a7119843cb81677d15cba9df64d02b30ea08a8",
+   "sha256": "1n1dzwg0sfsdkcm18iqiqwf6jspmp2vwipiasdja54ns1m98w2cv"
   },
   "stable": {
    "version": [
@@ -60849,20 +61054,20 @@
   "repo": "leon-barrett/just-mode.el",
   "unstable": {
    "version": [
-    20210818,
-    1526
+    20220401,
+    1814
    ],
-   "commit": "8cf9e686c8c7bb725c724b5220a4a3ed17d005d0",
-   "sha256": "0i280w7nv6zdzpwsyc9njlz5n75awqgpmmh3wklzrfh7mh1vzp89"
+   "commit": "35f1bd4748cd3e960e6930b34310e5506212b304",
+   "sha256": "19piyjnkvy8g87s7gyn07wh67kdygxksv3k7xiq49wb3rpqdrr0g"
   },
   "stable": {
    "version": [
     0,
     1,
-    5
+    6
    ],
-   "commit": "8cf9e686c8c7bb725c724b5220a4a3ed17d005d0",
-   "sha256": "0i280w7nv6zdzpwsyc9njlz5n75awqgpmmh3wklzrfh7mh1vzp89"
+   "commit": "35f1bd4748cd3e960e6930b34310e5506212b304",
+   "sha256": "19piyjnkvy8g87s7gyn07wh67kdygxksv3k7xiq49wb3rpqdrr0g"
   }
  },
  {
@@ -61229,15 +61434,15 @@
   "repo": "ogdenwebb/emacs-kaolin-themes",
   "unstable": {
    "version": [
-    20220317,
-    1238
+    20220413,
+    1705
    ],
    "deps": [
     "autothemer",
     "cl-lib"
    ],
-   "commit": "78df90fa411c0d24d884abd47bf63a167231a84c",
-   "sha256": "05z7w4ig17w5vxz3g4waghkq8ay9cdjc22aihn34h3q7h1vlv5dd"
+   "commit": "bd37ae6e48d918e9d72513345903093239a8ad8d",
+   "sha256": "0sv1f7yhh5ap6j1a5j6ysrgbhqmnk4mpgkmzdjlclg8209d8as24"
   },
   "stable": {
    "version": [
@@ -61568,11 +61773,11 @@
   "repo": "tarsius/keycast",
   "unstable": {
    "version": [
-    20220211,
-    2035
+    20220407,
+    1930
    ],
-   "commit": "a94f9839addabc2d491ee5c8927453ae2c5ce0fb",
-   "sha256": "0yxi1s4czkxhzl6dp3b9iaqds35gjccqgrghvfmqyyvmzi0lzss4"
+   "commit": "809ce7625a8c8c7ae1ca4e4a38aa857f83c4e732",
+   "sha256": "0qv5y3zj3d3pv4mw2s38g1dnq5lf57ja7nka2k50j5sdfyhy15h6"
   },
   "stable": {
    "version": [
@@ -61665,14 +61870,14 @@
   "repo": "tarsius/keymap-utils",
   "unstable": {
    "version": [
-    20220101,
-    1036
+    20220402,
+    1112
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "753fa7b5bdb761a1eb9a7b09db50c0bee3ae5241",
-   "sha256": "0604l1rxvxq88i2pnb4q0jaf9i3pmf3756nkrivvaj1l4v6nswlk"
+   "commit": "7f51c35abdb7e7c5b6e91f2dc01eb59df70bc3ca",
+   "sha256": "1xashacybsn90c9a9pvk2bgrja7d8j3ziwdrc4h6i7acxhskvmsq"
   },
   "stable": {
    "version": [
@@ -61803,8 +62008,8 @@
     20220222,
     639
    ],
-   "commit": "33e5e50b795a48315d869d9545c650b7641eed0a",
-   "sha256": "12zkfsbsbf3s5ifyfrbv5xyyrif59rkk89in83ghys03qp5kmybs"
+   "commit": "4d99f966deaf5345d68b4c852a196bd2c09396bc",
+   "sha256": "0ybqjavid761abc0pfiw12mp2iwcvm4xqzmb8k47znvfa0c54wwn"
   },
   "stable": {
    "version": [
@@ -62059,8 +62264,8 @@
     20210318,
     2106
    ],
-   "commit": "06c15c1f7567c6dbc97248c85467bdfd2fcf3cf8",
-   "sha256": "0w36wggnmf7dq0kqkkm66zq9adq2r1f8zrdjw6qnbg7b9bdxwxik"
+   "commit": "4fbf9059ce5917ac27685d2b5795e4c447a3f571",
+   "sha256": "0f2ix6kkixvvqjrr0nz9s6vjckd7s8dn03sf5zmq1xnph6cbrzf4"
   },
   "stable": {
    "version": [
@@ -62359,11 +62564,11 @@
   "repo": "r0bobo/kubedoc.el",
   "unstable": {
    "version": [
-    20211005,
-    810
+    20220401,
+    1113
    ],
-   "commit": "20692189359ce0517726a945c8ab798bb91a8624",
-   "sha256": "1f1lv4wbfx4w371gvnplzmm4rmgr4zlbk2fy4cmck5vp8g179q4h"
+   "commit": "f8503f121e38f0ff9343544a5c912e50b25efd4c",
+   "sha256": "0j4w8dqbcmdy571xn870jib92fmsl6sj71pm1mi39bgh28yfqbvg"
   }
  },
  {
@@ -62374,8 +62579,8 @@
   "repo": "abrochard/kubel",
   "unstable": {
    "version": [
-    20220318,
-    2124
+    20220331,
+    1355
    ],
    "deps": [
     "dash",
@@ -62383,8 +62588,8 @@
     "transient",
     "yaml-mode"
    ],
-   "commit": "6ce4a13b1de666a90f5acfdfd8c78f6ea2013c60",
-   "sha256": "16xam2yhj77mj388hrzbh2ah8y1k5sbfacavjmriaxrnn5c8v16d"
+   "commit": "b598b21988b8d5b2f44803a31f891f12ea511982",
+   "sha256": "1p0y4a4g0y77b4v1x650mz7m504iqjdf2xwnqhjygc9n3a0cqsp5"
   },
   "stable": {
    "version": [
@@ -62416,8 +62621,8 @@
     "evil",
     "kubel"
    ],
-   "commit": "6ce4a13b1de666a90f5acfdfd8c78f6ea2013c60",
-   "sha256": "16xam2yhj77mj388hrzbh2ah8y1k5sbfacavjmriaxrnn5c8v16d"
+   "commit": "b598b21988b8d5b2f44803a31f891f12ea511982",
+   "sha256": "1p0y4a4g0y77b4v1x650mz7m504iqjdf2xwnqhjygc9n3a0cqsp5"
   },
   "stable": {
    "version": [
@@ -62440,8 +62645,8 @@
   "repo": "kubernetes-el/kubernetes-el",
   "unstable": {
    "version": [
-    20220213,
-    1809
+    20220331,
+    1314
    ],
    "deps": [
     "dash",
@@ -62452,8 +62657,8 @@
     "transient",
     "with-editor"
    ],
-   "commit": "d52ad7dacf17b659060e52d5e3318cafd7946616",
-   "sha256": "05ibxsbfdaqdiabwl92j3mgcyf0gk5bzlwdlfms2f76wbrmpqw0l"
+   "commit": "e0d0cd6b949802fe63ff8940cc743cc7efedb089",
+   "sha256": "1xnl8bci3j0l14gkb0n23kr4867cmypyxcydjn59niwab9srg7pm"
   },
   "stable": {
    "version": [
@@ -62487,8 +62692,8 @@
     "evil",
     "kubernetes"
    ],
-   "commit": "d52ad7dacf17b659060e52d5e3318cafd7946616",
-   "sha256": "05ibxsbfdaqdiabwl92j3mgcyf0gk5bzlwdlfms2f76wbrmpqw0l"
+   "commit": "e0d0cd6b949802fe63ff8940cc743cc7efedb089",
+   "sha256": "1xnl8bci3j0l14gkb0n23kr4867cmypyxcydjn59niwab9srg7pm"
   },
   "stable": {
    "version": [
@@ -62632,14 +62837,14 @@
   "url": "https://git.sr.ht/~tarsius/l",
   "unstable": {
    "version": [
-    20211118,
-    1837
+    20220412,
+    1418
    ],
    "deps": [
     "seq"
    ],
-   "commit": "5e2c05478868e9e5fac909ac1bee535ffc5c6695",
-   "sha256": "11fmcqn9xpq8hqwf914yd715xrbfyymki95iq5y3r4x42gl30q7s"
+   "commit": "6a3e0b9709b2b386ac83f1dd05e54ad2a1ae11e3",
+   "sha256": "108kd0ymm4rfqchryjgmyvxsfd11xbp8ddlynprbckp61mjhqsaj"
   },
   "stable": {
    "version": [
@@ -62795,8 +63000,8 @@
     "highlight",
     "math-symbol-lists"
    ],
-   "commit": "c73645f35868bf436f9b50dc81a75b58c7e10806",
-   "sha256": "0bpyzm71b1fh48yp73m4vh99c7q4sd69lynkww6c8yrjdqlwbb27"
+   "commit": "d264cd8ed859635dc0f71e1d9213a911b46939b6",
+   "sha256": "1x87q32r73vfawk0ijxddlib1f278lwmj8fq8zhs090npj0rw427"
   },
   "stable": {
    "version": [
@@ -62935,19 +63140,19 @@
   "repo": "lassik/emacs-language-id",
   "unstable": {
    "version": [
-    20220321,
-    638
+    20220411,
+    1932
    ],
-   "commit": "46a44793a2ac73c7b70f8b4c11818423aa1582e3",
-   "sha256": "0i3qww2lc7kcvw27iwwvi871k81s8jc2rbfbpcnrsy3cnrxx7smd"
+   "commit": "5325af36d9cd726de47a698ac159fce59f3fd6d9",
+   "sha256": "0fyalqpipw6855dacrv72fqmvbmn7nvbgb5byz8wl68qpykyla6b"
   },
   "stable": {
    "version": [
     0,
-    18
+    19
    ],
-   "commit": "c945568a2e40e8d7e9738a534ce54e9ff59779c6",
-   "sha256": "0ny0sicma48snzyhh6xv1zv4vc87mmf4jyacpky3i6mk6gdwxfl8"
+   "commit": "9efb210e5f746dd83bb3f132b46fb0b1f035def4",
+   "sha256": "0p1kx67fdg8r8fp479170b4hl5j9r3n2x41bi189aq29b02qh94m"
   }
  },
  {
@@ -63573,8 +63778,8 @@
     20220307,
     854
    ],
-   "commit": "b55384d9cd14aa0ba3eb100660f929cfa6674558",
-   "sha256": "0wn9v7qarciq16hhcl8dy8yp1hcdhmircqkla59g5khv3qybjphs"
+   "commit": "11e850395448ee7012dba16bd6df103f5552ebfb",
+   "sha256": "0hzky36vrlb7kvpyz4gy3zn01zdlmlx0s58w6ggk5djbcvjc2rfx"
   },
   "stable": {
    "version": [
@@ -63852,11 +64057,11 @@
   "repo": "tecosaur/lexic",
   "unstable": {
    "version": [
-    20220211,
-    1347
+    20220405,
+    1339
    ],
-   "commit": "6301a5ad00cf8eb74e7a522c84c7ccabbec16241",
-   "sha256": "1bh5x3zhcx0pdfbqr90dvh6b4q361z6nsmzzcry4pld093wji0dn"
+   "commit": "83e78f8b1b42b15a890aa29dbeccb2eb389215fb",
+   "sha256": "16iancwz1n50g2kqvs8ipyljh7x268ssj6lkzy82mmngskfz7sz8"
   }
  },
  {
@@ -63889,8 +64094,8 @@
     20220102,
     1653
    ],
-   "commit": "fc5ae30f6738dfd0664864698bfebb5423241ff8",
-   "sha256": "1ici0jqx136vcqh3rzcg4xgqsh3kjg65d5hnpivvhmflbjhkbxzr"
+   "commit": "6e1e42768d40528e7a13f7cebf0a56cffbeda3c6",
+   "sha256": "03ml1jk2d25f7rcz08f4g354sw3vb4yx5fanqaa9dnkr9zwrn9wr"
   },
   "stable": {
    "version": [
@@ -64113,8 +64318,8 @@
    "deps": [
     "request"
    ],
-   "commit": "52fcd8efc293694af1b23ea401a2991f8554dbbc",
-   "sha256": "1cp0301l3byhzd4gyil9p7iljfgkjn2c93ilc9b88b1kj7cvbp2z"
+   "commit": "e6959223f8e0760063a1048d433d9a9d76c09dd6",
+   "sha256": "1jvsqfhm64avzav7n0q6l588vc09w14bbaz6lbgl5pdcc1dgvjcj"
   },
   "stable": {
    "version": [
@@ -64155,8 +64360,8 @@
     20220209,
     755
    ],
-   "commit": "618d98641a4fc1c55d07de72c12754b85da27910",
-   "sha256": "1kvkbj4rpvilxl6w119xh7x9w8xdw4cgnw7gd3vl50krzj9s1ajz"
+   "commit": "0f5db066c87fe91c1f269cf6b92653f3230c44a1",
+   "sha256": "19a822jdfpxw7safhgyfsygav4wmr78i0fvw70jarhm2vj9wknpq"
   },
   "stable": {
    "version": [
@@ -64176,8 +64381,8 @@
   "repo": "emacs-vs/line-reminder",
   "unstable": {
    "version": [
-    20220309,
-    848
+    20220405,
+    1658
    ],
    "deps": [
     "fringe-helper",
@@ -64185,8 +64390,8 @@
     "indicators",
     "ov"
    ],
-   "commit": "d60c0d498f12d550200d505cd8b43f953eff2ae4",
-   "sha256": "1kx2k2fsygf9qq9wq9cs6h7c4lr58ip781l9yrffj2vhhhmrg5kj"
+   "commit": "45519a4738a999b06f6d40f7dcf2022904e67aa9",
+   "sha256": "1d5mvxkjy6fpi2jiinc532pbmwdlcgql80bna7kwkg88cdyws1n4"
   },
   "stable": {
    "version": [
@@ -64319,14 +64524,14 @@
   "repo": "noctuid/link-hint.el",
   "unstable": {
    "version": [
-    20220320,
-    1727
+    20220414,
+    56
    ],
    "deps": [
     "avy"
    ],
-   "commit": "44e98956e04dfa8e440951c6cc6cefb9e64f1658",
-   "sha256": "0fhs1ha2j4k1pkfhyvc3x2mp9r3xl7slj6y4hqfzgllmhzmr93g0"
+   "commit": "a24546e0dee901bce94e3a11c20b1ed12a22b9c6",
+   "sha256": "0zdsm2wp04nlnlixgwgrs49hcg6a0pwyxv44y9is449kk5593m11"
   }
  },
  {
@@ -64431,8 +64636,8 @@
     20211004,
     1429
    ],
-   "commit": "08e6da70e485307b7c5777caeb60737de183d228",
-   "sha256": "0d5vkm5cpnl38zfbjfhbl6wffmrlxx4bxkh4w4f04pr97i899n9z"
+   "commit": "ba6b7c16ea633112282c3fbdf41b06c82727a541",
+   "sha256": "1fw6ld08a2gd8bhyjpgxqbjjmb6kv317bcrc98n3v093cph1b58w"
   },
   "stable": {
    "version": [
@@ -65022,11 +65227,11 @@
   "repo": "donkirkby/live-py-plugin",
   "unstable": {
    "version": [
-    20220208,
-    308
+    20220404,
+    0
    ],
-   "commit": "d3c813f90083ee1a146b3e2d96c8bc47b9e7ff7b",
-   "sha256": "18kak48a6zs065xx7q47kqs9hx5n0lbr0a2pvlh1wxhncnh8vgpj"
+   "commit": "09ae89505a7b411ab659bba83dd1a2a26a584a2e",
+   "sha256": "0i65v6p306ch08plcham1n1g9b0ln9s3hmkrdd52mp9bjjhwqcgk"
   },
   "stable": {
    "version": [
@@ -65421,8 +65626,8 @@
     "ht",
     "s"
    ],
-   "commit": "b5ca8bd44a900fb85636fec9b326d0c117d3b8a6",
-   "sha256": "1ay81g4s02jkwwy62s2c3218b5z9z012nyrqihlx44fyglyi27b1"
+   "commit": "87cdae737bc540520aa8c8eb3e90a9a3a2108592",
+   "sha256": "10956s0ix1m19g8r9b0pm8wicm19nyk87k1bqbpcg9f28c2rml9k"
   },
   "stable": {
    "version": [
@@ -65447,11 +65652,11 @@
   "url": "https://hg.osdn.net/view/lognav-mode/lognav-mode",
   "unstable": {
    "version": [
-    20191124,
-    1011
+    20220410,
+    1344
    ],
-   "commit": "7eb9cd2af5b47116fe475870b41dded55052c14c",
-   "sha256": "10f3im4x55ag6mhrrsjkylmaxm5s7dj7mwmppzm2yvs1nq0fxa79"
+   "commit": "100541ec31468b771073a7d2ad4512c1dcb1eb07",
+   "sha256": "11kk4irx6mgq4frfbwinx9bw1lg5nyk4js137j50rq3wfgkbjsbs"
   }
  },
  {
@@ -65656,28 +65861,28 @@
   "repo": "okamsn/loopy",
   "unstable": {
    "version": [
-    20220209,
-    320
+    20220330,
+    127
    ],
    "deps": [
     "map",
     "seq"
    ],
-   "commit": "e3933cccbce289eef2591cd0bbd42de55a56cba7",
-   "sha256": "14wd16dkqcn8ip6ijhzchdm9i6i205lgin66g7amrqs26vx6wqw6"
+   "commit": "cd49433244ef450a1dd10a65a7839076d61bdcf1",
+   "sha256": "0mdr09vqy4xrqb2l4g3j8n99zvqajw1jxxvvm9zv03zkwvcink1c"
   },
   "stable": {
    "version": [
     0,
-    9,
+    10,
     1
    ],
    "deps": [
     "map",
     "seq"
    ],
-   "commit": "f75f906397fb95a20ecdb61589d02712de0264fb",
-   "sha256": "02za26xsivayqmdbs2fy36vp1jvlvr5zanb19ayglbpakmg8ply2"
+   "commit": "cd49433244ef450a1dd10a65a7839076d61bdcf1",
+   "sha256": "0mdr09vqy4xrqb2l4g3j8n99zvqajw1jxxvvm9zv03zkwvcink1c"
   }
  },
  {
@@ -65688,28 +65893,28 @@
   "repo": "okamsn/loopy",
   "unstable": {
    "version": [
-    20211020,
-    157
+    20220330,
+    127
    ],
    "deps": [
     "dash",
     "loopy"
    ],
-   "commit": "e3933cccbce289eef2591cd0bbd42de55a56cba7",
-   "sha256": "14wd16dkqcn8ip6ijhzchdm9i6i205lgin66g7amrqs26vx6wqw6"
+   "commit": "cd49433244ef450a1dd10a65a7839076d61bdcf1",
+   "sha256": "0mdr09vqy4xrqb2l4g3j8n99zvqajw1jxxvvm9zv03zkwvcink1c"
   },
   "stable": {
    "version": [
     0,
-    9,
+    10,
     1
    ],
    "deps": [
     "dash",
     "loopy"
    ],
-   "commit": "f75f906397fb95a20ecdb61589d02712de0264fb",
-   "sha256": "02za26xsivayqmdbs2fy36vp1jvlvr5zanb19ayglbpakmg8ply2"
+   "commit": "cd49433244ef450a1dd10a65a7839076d61bdcf1",
+   "sha256": "0mdr09vqy4xrqb2l4g3j8n99zvqajw1jxxvvm9zv03zkwvcink1c"
   }
  },
  {
@@ -65880,8 +66085,8 @@
     "request",
     "s"
    ],
-   "commit": "20112b40fd3f6cbd20c659ef43a6da6635e610df",
-   "sha256": "1p3f90f0gsa8mj9pv905f51zb1ymyfbhz20171hv69klz4hlqfsn"
+   "commit": "bc1c71d797d919869f9a7086f8413d260e9df3ef",
+   "sha256": "1q8m98a0xz49sd080sxg8dcp8jn50d2lm11nmz4pbcn7cf678hy9"
   },
   "stable": {
    "version": [
@@ -66040,26 +66245,26 @@
   "repo": "fredcamps/lsp-jedi",
   "unstable": {
    "version": [
-    20210602,
-    1925
+    20220407,
+    406
    ],
    "deps": [
     "lsp-mode"
    ],
-   "commit": "ab265f7fb26f4fa0385158a9f9d3649b606d2e23",
-   "sha256": "013vmhcxz7648jxxhk69rr0v5br2839517l72fwzk770l02mc6si"
+   "commit": "b22927b2b51bde8692e70ea60cbb90ff4bfaffb4",
+   "sha256": "1aadck54fx2f907wi0bm9bwrhjf9ivzfyrrgp50m8a4yjnh9acfv"
   },
   "stable": {
    "version": [
     1,
-    0,
+    1,
     0
    ],
    "deps": [
     "lsp-mode"
    ],
-   "commit": "a6a6dcfbab69caee0b88dbe4244772e0bea5531a",
-   "sha256": "0l2dawi7avzb9i1wfff4kdfbz9s7vp4443y7x3va0jrsn3v33485"
+   "commit": "b22927b2b51bde8692e70ea60cbb90ff4bfaffb4",
+   "sha256": "1aadck54fx2f907wi0bm9bwrhjf9ivzfyrrgp50m8a4yjnh9acfv"
   }
  },
  {
@@ -66138,8 +66343,8 @@
    "deps": [
     "lsp-mode"
    ],
-   "commit": "435128d5cdc8822ccf1bb58f45184cdd9fb8589f",
-   "sha256": "197drh6lwghdcf52hdk7kc315jlpxlaz8cj76b4q28s0g63bh8bc"
+   "commit": "ac7d53f72b50df121ee69d0d8fe684d327adade6",
+   "sha256": "1093g7lyf7k2zcxgmcy0hkjkz3x302x0l3v7g8madrd7axx23sbb"
   },
   "stable": {
    "version": [
@@ -66164,8 +66369,8 @@
   "repo": "emacs-lsp/lsp-metals",
   "unstable": {
    "version": [
-    20220314,
-    1111
+    20220330,
+    1958
    ],
    "deps": [
     "dap-mode",
@@ -66177,8 +66382,8 @@
     "scala-mode",
     "treemacs"
    ],
-   "commit": "b7fe3ade85d020560947f1a4f4913130c9dd1809",
-   "sha256": "0dq18p5bqqyf36mqck0iprydjm77y29k8n2d25xz26i64s3pkykq"
+   "commit": "b7f77de69431786c54e9a57845e4f2d75fbee053",
+   "sha256": "02bp1j7k5hmp3rmlswhn3plr7f8vl10bqgb68safl88hmqlvvgxd"
   },
   "stable": {
    "version": [
@@ -66208,8 +66413,8 @@
   "repo": "emacs-lsp/lsp-mode",
   "unstable": {
    "version": [
-    20220325,
-    1415
+    20220412,
+    1914
    ],
    "deps": [
     "dash",
@@ -66219,8 +66424,8 @@
     "markdown-mode",
     "spinner"
    ],
-   "commit": "95a5270ff783af063392286e8f45cf338c5a9765",
-   "sha256": "1sbww4m1pm5n0y3gzsqdggv39ic39gy0l15va5m26pvz9ffd7367"
+   "commit": "d1be7c90e0c6bf6c810e19a12b6a6e76568f0456",
+   "sha256": "1qksj5l8iz9s7yhrkrsvf012w7kbdxjnwqi9bvzy7lk518xqhk97"
   },
   "stable": {
    "version": [
@@ -66367,16 +66572,30 @@
   "repo": "emacs-lsp/lsp-pyright",
   "unstable": {
    "version": [
-    20211103,
-    619
+    20220411,
+    1753
+   ],
+   "deps": [
+    "dash",
+    "ht",
+    "lsp-mode"
+   ],
+   "commit": "308ba57a272c5b17705e534584bd52933e2ace6b",
+   "sha256": "020njrx0g4isjshldq4gd3f0jp6h3xgk7xs0n0a7czp5hakx9p3n"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    0
    ],
    "deps": [
     "dash",
     "ht",
     "lsp-mode"
    ],
-   "commit": "fa6698a6e33880feb16d264172aa665d14cb8a6f",
-   "sha256": "10y3gsc4wawh4rjv25dr10wb65wmwmrz1wnf5qsaglq2c5svhxhy"
+   "commit": "3598bc7c47c2f2ff6fc94ca50b5a4e4db4c25f97",
+   "sha256": "020njrx0g4isjshldq4gd3f0jp6h3xgk7xs0n0a7czp5hakx9p3n"
   }
  },
  {
@@ -66393,8 +66612,8 @@
    "deps": [
     "lsp-mode"
    ],
-   "commit": "ab052be5c4347e909dbfeecc83d43b9d75ccedda",
-   "sha256": "1bdlkqkqssz56kskff2pm2bkdb0bscfbqbd1vk3li20036c5dq05"
+   "commit": "a56459216b3fdd99f7e3703ce0d20bb517b0222e",
+   "sha256": "0m23gbxfs1gyhj4i2iwq7g7818qpr2z6hwp7cllnflxf3j5m95s0"
   },
   "stable": {
    "version": [
@@ -66517,8 +66736,8 @@
   "repo": "emacs-lsp/lsp-treemacs",
   "unstable": {
    "version": [
-    20220102,
-    1517
+    20220328,
+    625
    ],
    "deps": [
     "dash",
@@ -66527,8 +66746,8 @@
     "lsp-mode",
     "treemacs"
    ],
-   "commit": "72d367757a89453a712f6ba1df9b6e789ece2bbd",
-   "sha256": "0jy4zq1b5l6m2nd2zz99m0fy88w570d4n8v84lrkkzllc1n488lk"
+   "commit": "355e468b7fa9887c616a8bfe873d8e456303b67b",
+   "sha256": "0a9m0n50j3lkig9zsdach6fwxc0m6z33mb2pwwxyhv1xp3jksv92"
   },
   "stable": {
    "version": [
@@ -66554,16 +66773,16 @@
   "repo": "emacs-lsp/lsp-ui",
   "unstable": {
    "version": [
-    20220311,
-    1634
+    20220411,
+    1413
    ],
    "deps": [
     "dash",
     "lsp-mode",
     "markdown-mode"
    ],
-   "commit": "96b1ecbfbf87a775f05b5f0b55253376a3bd61e7",
-   "sha256": "0xjskdws354zbs906frcmx37862xldpai09sicdk8jy2sdwhamk6"
+   "commit": "7698f9b683349f13c0ff92c1b0f68c2fb11995b7",
+   "sha256": "1wgzbnwg04gdm6jn3qgyc3nv0ff5zj2rc905m39gsl6bzaz6vbda"
   },
   "stable": {
    "version": [
@@ -66667,11 +66886,11 @@
   "repo": "hawk/lux",
   "unstable": {
    "version": [
-    20220121,
-    913
+    20220328,
+    1301
    ],
-   "commit": "4304c89b3c9cccb256655b7d1058d7619e926dc7",
-   "sha256": "1fynv13wv13dzl7s84x6b4sav1im3rhrzds38w4vl1nx2jvgiya4"
+   "commit": "924dcda3e4212c0b28e8ce140b9d8e9a1117c5ef",
+   "sha256": "0gq5f2jg0nlmqg6vlgkvms0axa1yjqbql6xjkgv1qh5iwwgkiinx"
   }
  },
  {
@@ -67050,11 +67269,11 @@
   "repo": "roadrunner1776/magik",
   "unstable": {
    "version": [
-    20220311,
-    1219
+    20220408,
+    1250
    ],
-   "commit": "86f1ca9f0f45e61a1ac7b96c809a85defc4ca665",
-   "sha256": "0scg4n7p9k7kj18w2v73f3w5f6xwf7fpjvf0sa253jwpdk6ln5b8"
+   "commit": "9c0faba222afc875cf604dd7fe4265f1ff891535",
+   "sha256": "17wz1mwfnpjzqzzlhns5jk7zc7ma22kasb0wfpwrnsra8wdx4svj"
   },
   "stable": {
    "version": [
@@ -67074,8 +67293,8 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20220326,
-    946
+    20220412,
+    2029
    ],
    "deps": [
     "dash",
@@ -67084,8 +67303,8 @@
     "transient",
     "with-editor"
    ],
-   "commit": "b1702991eec2c068d282fc2f1bd665726a14e10d",
-   "sha256": "0gyvbhwm5x7wgm4cdp3v0h8vv5vkw066fmwsvlvgyqqppkq5pqz3"
+   "commit": "3cfc8458e14c705afdfbeb7dcd3d3f43d7479344",
+   "sha256": "1v21p89srk09ahszwm257j950f8j939y3yx8qzmrvmwya4isi9n7"
   },
   "stable": {
    "version": [
@@ -67164,14 +67383,14 @@
   "repo": "ideasman42/emacs-magit-commit-mark",
   "unstable": {
    "version": [
-    20220315,
-    250
+    20220406,
+    2314
    ],
    "deps": [
     "magit"
    ],
-   "commit": "f0fff86ffb669357b0897132d386c4c19dbf300e",
-   "sha256": "0l9fg19izp4f4ph9by1zz6nwpxpvgdl77kcbxykphf22wx5j0jyr"
+   "commit": "18d03e38f2825dfcf9d121720ee550294e5611a0",
+   "sha256": "0621rcfbd81p6vlr2i3h9lbbqagp4iyr4z63g38y0bylfj4hlc8j"
   }
  },
  {
@@ -67443,15 +67662,15 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20220130,
-    2007
+    20220331,
+    2308
    ],
    "deps": [
     "libgit",
     "magit"
    ],
-   "commit": "b1702991eec2c068d282fc2f1bd665726a14e10d",
-   "sha256": "0gyvbhwm5x7wgm4cdp3v0h8vv5vkw066fmwsvlvgyqqppkq5pqz3"
+   "commit": "3cfc8458e14c705afdfbeb7dcd3d3f43d7479344",
+   "sha256": "1v21p89srk09ahszwm257j950f8j939y3yx8qzmrvmwya4isi9n7"
   },
   "stable": {
    "version": [
@@ -67599,14 +67818,14 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20220325,
-    1720
+    20220329,
+    1154
    ],
    "deps": [
     "dash"
    ],
-   "commit": "b1702991eec2c068d282fc2f1bd665726a14e10d",
-   "sha256": "0gyvbhwm5x7wgm4cdp3v0h8vv5vkw066fmwsvlvgyqqppkq5pqz3"
+   "commit": "3cfc8458e14c705afdfbeb7dcd3d3f43d7479344",
+   "sha256": "1v21p89srk09ahszwm257j950f8j939y3yx8qzmrvmwya4isi9n7"
   },
   "stable": {
    "version": [
@@ -68181,8 +68400,8 @@
     20210108,
     1832
    ],
-   "commit": "3a8398de3a79ca03f9fe55f6f31f70f3f62f8999",
-   "sha256": "1788n96c5h2s0qmwc7xw9anhcw6l0qqfbgx8mrp2n95mdix04n18"
+   "commit": "4d00496bffe0299ef4ea26c705b895e4b50f4cf2",
+   "sha256": "14ihhixwj4rsjc6f1d7159zi4hwgfn1z6rrgl3vvqxxsxp7al4jy"
   },
   "stable": {
    "version": [
@@ -68207,8 +68426,8 @@
    "deps": [
     "manage-minor-mode"
    ],
-   "commit": "492307c6c67c1b397084d85129e2b82cfd2c6556",
-   "sha256": "1di0m42hxi276a1axqayzvwqalw77zxy89qlnshldh373r5s20ax"
+   "commit": "006eabbde7be9d6bf2038bfd9597323c794a8292",
+   "sha256": "0k6r9i7c4ji747km760xdxfwsk7nbydwfl7av0bvp0kpdda50n0w"
   },
   "stable": {
    "version": [
@@ -68384,11 +68603,11 @@
   "repo": "minad/marginalia",
   "unstable": {
    "version": [
-    20220312,
-    1357
+    20220413,
+    621
    ],
-   "commit": "e63d27e6fb24ed16339de9d813c555d40aa1e4ca",
-   "sha256": "0pfl2h0xgd9jbpzw8b25pa601gad8p4l470yrkhzyzv5hs7774s4"
+   "commit": "20c019e8847128b1303fbbad339a55a7ec2a482d",
+   "sha256": "06f4y3l767x07rih7jr7zcdb73ilsrmnk5ychkd8ci9ylcimlhni"
   },
   "stable": {
    "version": [
@@ -68504,11 +68723,11 @@
   "repo": "jrblevin/markdown-mode",
   "unstable": {
    "version": [
-    20220212,
-    728
+    20220406,
+    410
    ],
-   "commit": "521658eb32e456681592443e04ae507c3a59ed07",
-   "sha256": "162xfchw2nxsx5a53kx15qlhr0vqqsn1vpqjnfp3ys7yngs3vvdm"
+   "commit": "d2a3d5b8625a7c6be21f19f9146745cd5c791a6a",
+   "sha256": "00wiyghp38x788hn5rbm26lihx0bjwj4w76ya1bx6vl5g8k1h2yw"
   },
   "stable": {
    "version": [
@@ -68719,8 +68938,8 @@
     20200720,
     1034
    ],
-   "commit": "9fb36834f151ff47ae4122cc18c341f366f035fc",
-   "sha256": "0yb4kr5986shjjd8j6sjvynh4ijmq38y4yjy2hmrzk7chd658qnc"
+   "commit": "e624dd8a9075aafade6d53a5e8b4e83db4123110",
+   "sha256": "1058wnv1vf8k01i0xndazildns8fxwfkg3s7i93hdadga0vh838s"
   },
   "stable": {
    "version": [
@@ -68800,24 +69019,28 @@
   "url": "https://codeberg.org/martianh/mastodon.el",
   "unstable": {
    "version": [
-    20220216,
-    1103
+    20220405,
+    1531
    ],
    "deps": [
     "request",
     "seq"
    ],
-   "commit": "f7de456e918fdde1c7728e6fe435d9d40d98dd4b",
-   "sha256": "0hk3w0z9qh5wn76rab6glb269s2fardcy82llg4azjp2vna4zb4l"
+   "commit": "b3649a12a398537ade7136d704f2f05ccc856e23",
+   "sha256": "13swcbvwhjl8ksrgzvmfafkgd3iz8znk49bs1n48w3g9qvh097w7"
   },
   "stable": {
    "version": [
+    1,
     0,
-    9,
     0
    ],
-   "commit": "5095797ef32b922d2a624fa6beb970b5e9cf5ca0",
-   "sha256": "0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"
+   "deps": [
+    "request",
+    "seq"
+   ],
+   "commit": "b3649a12a398537ade7136d704f2f05ccc856e23",
+   "sha256": "13swcbvwhjl8ksrgzvmfafkgd3iz8znk49bs1n48w3g9qvh097w7"
   }
  },
  {
@@ -68908,11 +69131,11 @@
   "url": "https://git.code.sf.net/p/matlab-emacs/src",
   "unstable": {
    "version": [
-    20220311,
-    1955
+    20220412,
+    913
    ],
-   "commit": "45febb409c474417562f79e90387d3568b4fc024",
-   "sha256": "0sn4c8gbvf68sn3qh75lq499lqds1rcc7ccifj5zgzxcgaf2x2wf"
+   "commit": "5069e3ca0034e0da64eb9b3cd426f52992938d06",
+   "sha256": "02b4gayf67fgsridj2a57p0x298pj4dly8nkimyjm15k8152s9c9"
   }
  },
  {
@@ -69415,11 +69638,11 @@
   "repo": "meow-edit/meow",
   "unstable": {
    "version": [
-    20220321,
-    2047
+    20220409,
+    24
    ],
-   "commit": "979acca991cdada7438f360ef0fec573b20f4f96",
-   "sha256": "0m46nil2bbmks6d9zg18246xfwjyghdfsim5fvfhxq39amw5rp9j"
+   "commit": "ec03160337ea0c9f073b137791eea908491ff840",
+   "sha256": "13r5zlkw887dap6v5p24aff738r3gk4v56h8wcnzlfm09x6fwh07"
   },
   "stable": {
    "version": [
@@ -69439,21 +69662,21 @@
   "repo": "ocaml/merlin",
   "unstable": {
    "version": [
-    20220318,
-    2012
+    20220404,
+    2046
    ],
-   "commit": "fb5cfc2a5091ffa77894629538efb0ec953fb6e7",
-   "sha256": "13g281pyfdid3kcd00x04k12f5b4zyx3xk19h636wah9hn27dyjn"
+   "commit": "4b8acadcfc4d703d3afe7c6d16477567cfa15442",
+   "sha256": "0qiqyhp2mfj90mbfba268rzipi7f3jyqkzsw7ilq1kwrcvwbblvr"
   },
   "stable": {
    "version": [
     4,
-    4,
+    5,
     -4,
-    413
+    414
    ],
-   "commit": "7607238326a9352cbee9ecf612669e28ae9fa36e",
-   "sha256": "0wijg1vh2q6yr46vkv34vvksligd0ajl4hv7m6qbz3ywqr8akg23"
+   "commit": "cc1582373e5baea1d236a63be39493858032a182",
+   "sha256": "125gyk63fg9plqkyrkl3wvpr3czjxgvshf4496fc4swldl7z587c"
   }
  },
  {
@@ -69471,22 +69694,22 @@
     "auto-complete",
     "merlin"
    ],
-   "commit": "fb5cfc2a5091ffa77894629538efb0ec953fb6e7",
-   "sha256": "13g281pyfdid3kcd00x04k12f5b4zyx3xk19h636wah9hn27dyjn"
+   "commit": "4b8acadcfc4d703d3afe7c6d16477567cfa15442",
+   "sha256": "0qiqyhp2mfj90mbfba268rzipi7f3jyqkzsw7ilq1kwrcvwbblvr"
   },
   "stable": {
    "version": [
     4,
-    4,
+    5,
     -4,
-    413
+    414
    ],
    "deps": [
     "auto-complete",
     "merlin"
    ],
-   "commit": "7607238326a9352cbee9ecf612669e28ae9fa36e",
-   "sha256": "0wijg1vh2q6yr46vkv34vvksligd0ajl4hv7m6qbz3ywqr8akg23"
+   "commit": "cc1582373e5baea1d236a63be39493858032a182",
+   "sha256": "125gyk63fg9plqkyrkl3wvpr3czjxgvshf4496fc4swldl7z587c"
   }
  },
  {
@@ -69504,22 +69727,22 @@
     "company",
     "merlin"
    ],
-   "commit": "fb5cfc2a5091ffa77894629538efb0ec953fb6e7",
-   "sha256": "13g281pyfdid3kcd00x04k12f5b4zyx3xk19h636wah9hn27dyjn"
+   "commit": "4b8acadcfc4d703d3afe7c6d16477567cfa15442",
+   "sha256": "0qiqyhp2mfj90mbfba268rzipi7f3jyqkzsw7ilq1kwrcvwbblvr"
   },
   "stable": {
    "version": [
     4,
-    4,
+    5,
     -4,
-    413
+    414
    ],
    "deps": [
     "company",
     "merlin"
    ],
-   "commit": "7607238326a9352cbee9ecf612669e28ae9fa36e",
-   "sha256": "0wijg1vh2q6yr46vkv34vvksligd0ajl4hv7m6qbz3ywqr8akg23"
+   "commit": "cc1582373e5baea1d236a63be39493858032a182",
+   "sha256": "125gyk63fg9plqkyrkl3wvpr3czjxgvshf4496fc4swldl7z587c"
   }
  },
  {
@@ -69559,29 +69782,29 @@
   "repo": "ocaml/merlin",
   "unstable": {
    "version": [
-    20210615,
-    1208
+    20220330,
+    1736
    ],
    "deps": [
     "iedit",
     "merlin"
    ],
-   "commit": "fb5cfc2a5091ffa77894629538efb0ec953fb6e7",
-   "sha256": "13g281pyfdid3kcd00x04k12f5b4zyx3xk19h636wah9hn27dyjn"
+   "commit": "4b8acadcfc4d703d3afe7c6d16477567cfa15442",
+   "sha256": "0qiqyhp2mfj90mbfba268rzipi7f3jyqkzsw7ilq1kwrcvwbblvr"
   },
   "stable": {
    "version": [
     4,
-    4,
+    5,
     -4,
-    413
+    414
    ],
    "deps": [
     "iedit",
     "merlin"
    ],
-   "commit": "7607238326a9352cbee9ecf612669e28ae9fa36e",
-   "sha256": "0wijg1vh2q6yr46vkv34vvksligd0ajl4hv7m6qbz3ywqr8akg23"
+   "commit": "cc1582373e5baea1d236a63be39493858032a182",
+   "sha256": "125gyk63fg9plqkyrkl3wvpr3czjxgvshf4496fc4swldl7z587c"
   }
  },
  {
@@ -69761,14 +69984,20 @@
   "repo": "AdamNiederer/metamorph",
   "unstable": {
    "version": [
-    20201025,
-    2357
+    20220328,
+    129
    ],
-   "deps": [
-    "ov"
+   "commit": "3633e32a9601c491df32d6c2212dbe63dc6484f4",
+   "sha256": "1wpibd9ib27xp4693d1hq2qcf0yfcdyrc97i5b7zkc4h6ll3hxyc"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
    ],
-   "commit": "ec74c733d78c995af69ed24aa5b8a3d84e0c1b29",
-   "sha256": "0xkj9m9j2mgd61lxnag1n97zd01dkh9dgwpvinq142v145rd4xvn"
+   "commit": "3633e32a9601c491df32d6c2212dbe63dc6484f4",
+   "sha256": "1wpibd9ib27xp4693d1hq2qcf0yfcdyrc97i5b7zkc4h6ll3hxyc"
   }
  },
  {
@@ -70326,11 +70555,11 @@
   "repo": "tarsius/minions",
   "unstable": {
    "version": [
-    20211110,
-    142
+    20220402,
+    1113
    ],
-   "commit": "fca3ba548dccc6e553affca8068c9aecb6a9a789",
-   "sha256": "1bzxxs8mxaihpjkbxgynhsi39lbbnij28grdc3sk9sq09j9752vw"
+   "commit": "edf4173ec7e49ecaa2bff7e49e2194e9d1edb258",
+   "sha256": "1hwwb64cm5f2fm25pmqlzfvhc0nxq2lmnr021njf5p403wjx43si"
   },
   "stable": {
    "version": [
@@ -70843,11 +71072,11 @@
   "repo": "tarsius/mode-line-debug",
   "unstable": {
    "version": [
-    20210525,
-    2014
+    20220402,
+    1122
    ],
-   "commit": "41184eb66a3205abcc32a885780004207df86dbd",
-   "sha256": "0qnrvddbka8klmihfaydpkwrigrjmbabxnm0vkybdqwzx619hwyi"
+   "commit": "eaf123f451113c946977482807e90f3b351a619a",
+   "sha256": "13rjb2r6ml3mflv13pcrdibn7rm3b9pc7z856da55kxkl4v9n40j"
   },
   "stable": {
    "version": [
@@ -70867,11 +71096,11 @@
   "repo": "ideasman42/emacs-mode-line-idle",
   "unstable": {
    "version": [
-    20220211,
-    548
+    20220406,
+    2322
    ],
-   "commit": "ab45689351aa089c9fa82805b2cf34847d26b407",
-   "sha256": "08flayni445wfzkmzzvppw6ak03c0asipxdl3b8rwmwjjxglx9pd"
+   "commit": "6ff3eb73586e9f3d6197447290aa92fd49f467e8",
+   "sha256": "1ygsfzw2s3d8jli2z6qsgmy3yrmigpy364525v7jrn2ns7p9i3kd"
   }
  },
  {
@@ -70906,19 +71135,19 @@
   "repo": "SpecialBomb/emacs-modern-fringes",
   "unstable": {
    "version": [
-    20200321,
-    1817
+    20220401,
+    202
    ],
-   "commit": "108daba8407dc8acf140157e7f49137c397a0af7",
-   "sha256": "15370yw3147fzx8ly1svk7xvm0l9fg2gbzd8sx9ls93nyml7c5k7"
+   "commit": "98473694a33922cfdddb18b4791028e4854b53b5",
+   "sha256": "0j1lyzia3i37q6b35pd06j5bkz2yji0f0r6xcgg79177zyyqj0lp"
   },
   "stable": {
    "version": [
     4,
-    4
+    5
    ],
-   "commit": "6884dd16e4d76dedd792f0c5fed48ca8a2f11222",
-   "sha256": "10h5557sppi41pgbbjsffc9n67h8ja28skhdlklc0n6zap71m87s"
+   "commit": "98473694a33922cfdddb18b4791028e4854b53b5",
+   "sha256": "0j1lyzia3i37q6b35pd06j5bkz2yji0f0r6xcgg79177zyyqj0lp"
   }
  },
  {
@@ -70981,26 +71210,26 @@
  },
  {
   "ename": "modus-themes",
-  "commit": "1d0f3490e4b5d9b04398bc0ecd1e9a997c269d78",
-  "sha256": "1f1c9dkmrxn4ih50w3xnkl0j5n03sp8zc201h2iga1ig22rgy7h4",
-  "fetcher": "gitlab",
-  "repo": "protesilaos/modus-themes",
+  "commit": "efe3a60d8d9f467713e928b3890233c1224c3128",
+  "sha256": "1j4vp4j6z916mh0b2g5rzii0h9xnl1ambiaqvl5i8jycmwd38gg0",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~protesilaos/modus-themes",
   "unstable": {
    "version": [
-    20220325,
-    617
+    20220413,
+    1844
    ],
-   "commit": "03f7046dff86c5342af778ad3f9850af7e950aed",
-   "sha256": "1ab0s4jqav3l66zzgxpx9gr6p0s3d6rhd98jkh3i3hba7qqsjn7x"
+   "commit": "dd2b51a76f7177224202b68efdd1bec6fdc65553",
+   "sha256": "110qj8ivbr21lgfssbb6hvi0a1798aaapwclasiigj458db5z6iy"
   },
   "stable": {
    "version": [
     2,
-    2,
-    0
+    3,
+    2
    ],
-   "commit": "7b203db9e4295903792d999c40eb912b107ad30c",
-   "sha256": "14sik5hf3k2p4p6h2qrr5cknfzmksxyhng4xb2fg2cxdvxw7s1aa"
+   "commit": "6bdc035ea1d5559ec6220521d5926780539f04b9",
+   "sha256": "00c3sa663rnl2rvnjdqzghcyfbdri09xjfigyrgd5xa3y0mnpqiz"
   }
  },
  {
@@ -71334,11 +71563,11 @@
   "repo": "tarsius/moody",
   "unstable": {
    "version": [
-    20220120,
-    1155
+    20220402,
+    1624
    ],
-   "commit": "aa6666eb344947bf1eb9d14619f4249403048321",
-   "sha256": "09yyihx6cpa724z6cj2rqspajwj325ipgpmckklpgq6l4h5xnwy4"
+   "commit": "9c81859e522717f9a5c2b3ae88cf673a02bffc23",
+   "sha256": "0h2v7rsjgms71pljc8lqis3bxkjln3gs8jja8bk5ndy9d4d986jz"
   },
   "stable": {
    "version": [
@@ -71455,20 +71684,20 @@
   "repo": "tarsius/morlock",
   "unstable": {
    "version": [
-    20220223,
-    1454
+    20220329,
+    1833
    ],
-   "commit": "ca6d72900392f1940914ee38ac3ebbce89f11373",
-   "sha256": "1bb1z1ycbafzyd3rq7mdr9akjcyfyvx3p0l68akkach1yj4gk137"
+   "commit": "1fbeea5d4a5f1f236814fcecaee1d158fb50094c",
+   "sha256": "1iwm8yb46czvyp6i77w2r5c1bqh1q5i791jjsxgy1hnj03gwm6b3"
   },
   "stable": {
    "version": [
     1,
     0,
-    3
+    4
    ],
-   "commit": "ca6d72900392f1940914ee38ac3ebbce89f11373",
-   "sha256": "1bb1z1ycbafzyd3rq7mdr9akjcyfyvx3p0l68akkach1yj4gk137"
+   "commit": "6683502bdb4ad0a1c37862df10b3ebfeb8ac6391",
+   "sha256": "16bnxp066ll5rd1f2vasrdc0zhvvpf001ssn3zrdnn12g778v555"
   }
  },
  {
@@ -71637,8 +71866,8 @@
     20210306,
     1053
    ],
-   "commit": "1b950579e8a422ef3aaaa1e183db330a448f18e5",
-   "sha256": "1gay1s7kgpkml9bk6s9a2srp19g64m57q2cc6r42h89z128wgh0k"
+   "commit": "f8331d15a81fe39a8532ec537d273221e1f1d0b7",
+   "sha256": "014bh3nbmpmq1l6fx5h4y513bis91jql7mm22idgx543kmjz9mmq"
   },
   "stable": {
    "version": [
@@ -72039,16 +72268,16 @@
   "repo": "xzz53/mu4e-alert",
   "unstable": {
    "version": [
-    20220320,
-    1917
+    20220411,
+    2
    ],
    "deps": [
     "alert",
     "ht",
     "s"
    ],
-   "commit": "cfd8bf3edab29ba7babb7cbe75c67aeb15a8a386",
-   "sha256": "1wgfs61x2m9prjnmc0019km177p9ayzyhxxf8py97fckxn2hkwlz"
+   "commit": "56c58eea4fe5cd015300649d98d0314b454b0fc7",
+   "sha256": "17k981q708jgc5jbzd8fpagyqbscb395hnpzdlpnj8w0kpf38mjk"
   },
   "stable": {
    "version": [
@@ -72502,14 +72731,14 @@
   "repo": "magnars/multiple-cursors.el",
   "unstable": {
    "version": [
-    20211112,
-    2223
+    20220328,
+    1724
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "8a60fc7ef0ae6e5ca089a7c95264cd0ae83e7274",
-   "sha256": "14yayh8hmv00f27kgz5y57z035ccv94cmsgqpyl15p1vnwiq2if3"
+   "commit": "aae47aebc0ae829211fa1e923232715d8e327b36",
+   "sha256": "1rpimqf8srlvilnqi02lr7my9ccxc89gc14pzs6jdffc60gb4659"
   },
   "stable": {
    "version": [
@@ -74254,8 +74483,8 @@
    "deps": [
     "reformatter"
    ],
-   "commit": "0df268136d14f27770fa5bb3bdb991e987337cf4",
-   "sha256": "137hvv9ry2h5975v06x22bdirdn7ms0gv216wkz6y68897k7hv3p"
+   "commit": "487b8e26c1ea816894c590790978762daf2ee339",
+   "sha256": "1nqrp2jmsw21cq01xmy285nyb5rj5s5ikzi8hb981jifcdy7bdji"
   },
   "stable": {
    "version": [
@@ -74447,8 +74676,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "13414b7a294fa6f35bbeb535cdcab6b256e39da7",
-   "sha256": "1grc5fk7ng4d6i8fwfpm3cb2b19s9sbdjbdn8ybchk7cj45kkl24"
+   "commit": "2d7237a49ad6a9b6425e68fa4d3245cbe5a7169d",
+   "sha256": "0509b6n0sjkfpj5hhxm5cb2zxhjnaxjnjmr9dcfbkfmyx3s8gkc0"
   },
   "stable": {
    "version": [
@@ -74486,15 +74715,15 @@
   "repo": "thomp/noaa",
   "unstable": {
    "version": [
-    20210606,
-    2050
+    20220410,
+    1334
    ],
    "deps": [
     "dash",
     "request"
    ],
-   "commit": "e2a4870fd5f8e37956d9317b74317d99f17b87ad",
-   "sha256": "1djlfvnmzcjva1s4pjhr4hhmqmd30mm48933lpgy3pnwp7gq910x"
+   "commit": "bfa7b2f9abcc7a18472c6998634450c876900170",
+   "sha256": "1d6c1zad3gava05ncnqxznbcy1y3m4hcs1x9p5dbqcs2vsw5l5ln"
   }
  },
  {
@@ -74787,8 +75016,8 @@
     20220226,
     1200
    ],
-   "commit": "8ed6a172b35708428f84f30af44fa81c12852e43",
-   "sha256": "1gknm711bfyvl7mrd0an1rjlw584vrxj8j922wy60j9mrka1wmgz"
+   "commit": "97f16b26518036b2c493dd6af11d98006ca49f77",
+   "sha256": "006q9qchgzsj5w1d2k10nwcp1zaa6p8f4kmgjv0ca29avhb2qjwm"
   },
   "stable": {
    "version": [
@@ -74807,14 +75036,14 @@
   "url": "https://git.sr.ht/~tarsius/notmuch-addr",
   "unstable": {
    "version": [
-    20210615,
-    1512
+    20220402,
+    1624
    ],
    "deps": [
     "notmuch"
    ],
-   "commit": "c447ddb94b3c2a473ec1762fc083794acd6057f0",
-   "sha256": "0x6vvi3j27xi2gkgd9mf7mfprmymdhc4zvna9gn71padpaqf9v50"
+   "commit": "4fc0621106bf5d3ef66152456a22403bccdf0a4d",
+   "sha256": "0318zjp7nv02pyycllpf6zbi6ccf7yf6n0466qk3hmsb1jd2vxjl"
   },
   "stable": {
    "version": [
@@ -74926,14 +75155,14 @@
   "url": "https://git.sr.ht/~tarsius/notmuch-transient",
   "unstable": {
    "version": [
-    20210703,
-    2133
+    20220402,
+    1625
    ],
    "deps": [
     "notmuch"
    ],
-   "commit": "d43ac12e397e1f014deef6c76aaf9b187b17ba5b",
-   "sha256": "1hv3p124wg8lc9jzb8llp47q9x3c9bwy7k6zvsncb1p513n7z8di"
+   "commit": "d8994bd33d50cc70e0c0bb04588ab384f5104185",
+   "sha256": "14z6lmgq3l6q2csswk6x95h8dr2kdvm2ifzfv6n4fqyl39za8hjz"
   },
   "stable": {
    "version": [
@@ -74956,28 +75185,26 @@
   "url": "https://depp.brause.cc/nov.el.git",
   "unstable": {
    "version": [
-    20220320,
-    1009
+    20220406,
+    1747
    ],
    "deps": [
-    "dash",
     "esxml"
    ],
-   "commit": "b6ea69a83fef6c4f547da3a4551ebed2cfe436a7",
-   "sha256": "1jxqwn8ybb61y59p7302ac9ph65xlqyrk8nqmswrr2czm1px7zjb"
+   "commit": "12faf16fbbaf09aadec26dfbda5809d886248c02",
+   "sha256": "10507fdfx02wb3j7g34w4ii8rgnjbmriq63ir6x1agf38s3i9p52"
   },
   "stable": {
    "version": [
     0,
-    3,
-    4
+    4,
+    0
    ],
    "deps": [
-    "dash",
     "esxml"
    ],
-   "commit": "b3c7cc28e95fe25ce7b443e5f49e2e45360944a3",
-   "sha256": "0va9xjrq30cv5kb59a4rq5mcm83ggnv774r8spmskff3hj8012wf"
+   "commit": "12faf16fbbaf09aadec26dfbda5809d886248c02",
+   "sha256": "10507fdfx02wb3j7g34w4ii8rgnjbmriq63ir6x1agf38s3i9p52"
   }
  },
  {
@@ -75300,11 +75527,11 @@
   "repo": "enricoflor/numbex",
   "unstable": {
    "version": [
-    20220323,
-    2011
+    20220327,
+    2049
    ],
-   "commit": "c1db2846cf7448307500fec718fab7a02b179c8b",
-   "sha256": "0kssw66g4hy5xs8map2vn3vygjhawp9jl0wx7nmjaaz8vagv8zca"
+   "commit": "78a4f72e666a67486dd616b89f7318a8ae3c125b",
+   "sha256": "1f5fhwj9bm3i3rnaig3gp88lg5l0b5yq4anqid6479j7ig3g7w0i"
   }
  },
  {
@@ -75426,11 +75653,11 @@
   "repo": "TeMPOraL/nyan-mode",
   "unstable": {
    "version": [
-    20200526,
-    1054
+    20220408,
+    2334
    ],
-   "commit": "06e67ab2c490756d3eeed4a68aba7c33e508a5d5",
-   "sha256": "0d0hdjliad8afz4br38gwidph9zhmm5s09y45n95kqlazq62jfsx"
+   "commit": "09904af23adb839c6a9c1175349a1fb67f5b4370",
+   "sha256": "03xp4dvq3y3q9xyb6pm9m5gb756rvbxcqk52ind08n7prqv4w1lp"
   },
   "stable": {
    "version": [
@@ -75507,6 +75734,37 @@
   }
  },
  {
+  "ename": "ob-ada-spark",
+  "commit": "4f04564c778f9d404f50381c895a75f22361dae3",
+  "sha256": "0iyyhq8xvjs3a263xdmnba7gx8lzwgqbsqk64dcr2bcrpqiia9f8",
+  "fetcher": "github",
+  "repo": "rocher/ob-ada-spark",
+  "unstable": {
+   "version": [
+    20220401,
+    926
+   ],
+   "deps": [
+    "f"
+   ],
+   "commit": "1213b877bc893ac5990a20052ea2bf2d8f086260",
+   "sha256": "18v4psk9ilvbnsbdksarix7zak7pbyxbn0rfy3kv9r2p0nrw9brj"
+  },
+  "stable": {
+   "version": [
+    1,
+    2,
+    5,
+    2
+   ],
+   "deps": [
+    "f"
+   ],
+   "commit": "1213b877bc893ac5990a20052ea2bf2d8f086260",
+   "sha256": "18v4psk9ilvbnsbdksarix7zak7pbyxbn0rfy3kv9r2p0nrw9brj"
+  }
+ },
+ {
   "ename": "ob-applescript",
   "commit": "23b075774be913539c3f057dcb7f24fbc05c37a4",
   "sha256": "1gk8cgscj9wbl5k8ahh1a61p271xpk5vk2w64a8y3njnwrwxm9jc",
@@ -75574,6 +75832,21 @@
   }
  },
  {
+  "ename": "ob-bitfield",
+  "commit": "4032df23d0f2fdab9655a386bf5645d30acf5f53",
+  "sha256": "0aiq97h595h03fv6hz276vx1aaacl6gk4yn60ncizkas3vs8sj6h",
+  "fetcher": "github",
+  "repo": "gsingh93/ob-bitfield",
+  "unstable": {
+   "version": [
+    20220401,
+    600
+   ],
+   "commit": "28e01448ee66b8b6858294cad1b7dae0b9a85e6a",
+   "sha256": "16j2f54ys401q8h4hj4qvd0z7fqwk2lnfi8995sgvs00xnx2wdzk"
+  }
+ },
+ {
   "ename": "ob-blockdiag",
   "commit": "261b77a3fd07644d1c250b16857de70cc1bbf478",
   "sha256": "1lmawbgrlp6qd7p664jcl98y1xd2yqw9np6j52bh9i6s3cz6628g",
@@ -75697,11 +75970,11 @@
   "repo": "TxGVNN/ob-compile",
   "unstable": {
    "version": [
-    20220320,
-    1343
+    20220413,
+    228
    ],
-   "commit": "cbfad24503491ba2bb0fff7454c339e655968c90",
-   "sha256": "01jmyvan8f5p4v8yyafyvv6j6fm01y184b3y6wxfk4c80m2zh86f"
+   "commit": "eb4fca6dc728cdc1e73d5d7ca8cad0f4cb1ad36a",
+   "sha256": "0y7pfb6q90mxh8rv0cdz4m28jb2alnwpkhhb7iyyhh0n4166da23"
   }
  },
  {
@@ -75813,6 +76086,21 @@
   }
  },
  {
+  "ename": "ob-dsq",
+  "commit": "aeef41c7d1882f400d30615e9718a22445f14697",
+  "sha256": "16g99k7v1x3n3bsc92kf692xx7d4016x378m4ndhh1jpvbg2gmn0",
+  "fetcher": "github",
+  "repo": "fritzgrabo/ob-dsq",
+  "unstable": {
+   "version": [
+    20220405,
+    2219
+   ],
+   "commit": "37090235c064ba5a5e436b0b77b5442f606cf5b3",
+   "sha256": "0vpxjbri5vs560rjfgy1fy8zi0jadfa0bxj0hqdc23bjmvdg45wx"
+  }
+ },
+ {
   "ename": "ob-elixir",
   "commit": "287e4758f6f1df0152d68577abd91478c4a3f4ab",
   "sha256": "1l5b9hww2vmqnjlsd6lbjpz9walck82ngang1amfnk4xn6d0gdhi",
@@ -76761,6 +77049,21 @@
   }
  },
  {
+  "ename": "oblivion-theme",
+  "commit": "7d4af0029c1d935137aebebcc19eda206bf5f9ac",
+  "sha256": "0a8q63kxlxd2svz5l8sbh6yiyhd6bl8a3hz335a09w1501f23lki",
+  "fetcher": "gitlab",
+  "repo": "ideasman42/emacs-oblivion-theme",
+  "unstable": {
+   "version": [
+    20220411,
+    525
+   ],
+   "commit": "d46983d69d75d8db6284ad297b17eedc495be2eb",
+   "sha256": "1wgv1hjm7xsy4f0xgh2ndiknxxbr4scrvzvqqz530f3nxx00hwz9"
+  }
+ },
+ {
   "ename": "obsidian-theme",
   "commit": "e90227252eb69d3eac81f5a6bd5e3a582d33f335",
   "sha256": "17ckshimdma6fqiis4kxczxkbrsfpm2a0b41m5f3qz3qlhcw2xgr",
@@ -76786,8 +77089,8 @@
     20220307,
     1315
    ],
-   "commit": "f490dbb90052516e532b7cc2f4e6bce149e1cfb3",
-   "sha256": "141rd4a80vvf4hmlnfzprjg6hzgjs6g09rpy0wzxi1jsz7f0xc9j"
+   "commit": "9324ea439a77b4f3a31e9302b97ce1812cf8f17d",
+   "sha256": "0rznnw6id09s5gvx40zgsl8dlwiinpya26pdw2w0a0bm0kf5k148"
   },
   "stable": {
    "version": [
@@ -76980,26 +77283,26 @@
   "repo": "oer/oer-reveal",
   "unstable": {
    "version": [
-    20220321,
-    1632
+    20220402,
+    1505
    ],
    "deps": [
     "org-re-reveal"
    ],
-   "commit": "8ac1829bbe3458a100ef7de1195a9714b59db98b",
-   "sha256": "0f75k0vvikvzlkd6yr7wl53lh167njfwd0hkfp8mkxfzls36rwxk"
+   "commit": "df7180a8d75dedb2fd8878843a3d3cc654be508d",
+   "sha256": "0wf02hziqxmjvcxbnl8nr6dmgw9ivmx2n1ybrqh2k75zz1rnzasc"
   },
   "stable": {
    "version": [
     4,
-    3,
+    4,
     0
    ],
    "deps": [
     "org-re-reveal"
    ],
-   "commit": "8ac1829bbe3458a100ef7de1195a9714b59db98b",
-   "sha256": "0f75k0vvikvzlkd6yr7wl53lh167njfwd0hkfp8mkxfzls36rwxk"
+   "commit": "df7180a8d75dedb2fd8878843a3d3cc654be508d",
+   "sha256": "0wf02hziqxmjvcxbnl8nr6dmgw9ivmx2n1ybrqh2k75zz1rnzasc"
   }
  },
  {
@@ -77050,15 +77353,15 @@
   "url": "https://git.sr.ht/~tarsius/ol-notmuch",
   "unstable": {
    "version": [
-    20210530,
-    2054
+    20220402,
+    1627
    ],
    "deps": [
     "notmuch",
     "org"
    ],
-   "commit": "126fb446d8fa9e54cf21103afaf506fd81273c02",
-   "sha256": "1pkb333m1rryhxf26p8661y7w9fnsaarn0qkzys1pyfj09q9rsmj"
+   "commit": "48a7245f560f2da61bfdb374d0059bea81639ddf",
+   "sha256": "17zb3hn8343mlpszdxf47kskd08lisw4ggw999m62ybji88yfxib"
   },
   "stable": {
    "version": [
@@ -77136,11 +77439,11 @@
   "repo": "rnkn/olivetti",
   "unstable": {
    "version": [
-    20211030,
-    838
+    20220330,
+    635
    ],
-   "commit": "a31ac05a161a91fe5c157930b62a6c07037982ee",
-   "sha256": "0wc0rki4zvzdxs126g5c8d92h1vfn9slfkdx831rr9d0jx93wc7s"
+   "commit": "8d287a80c5e3d72ac01b56c8afe60b01f18500b4",
+   "sha256": "0axgfpnwsi2wfr8nrzmfqkmj7y31h28sadl4yqv58m849x90gdra"
   },
   "stable": {
    "version": [
@@ -77727,11 +78030,11 @@
   "repo": "oantolin/orderless",
   "unstable": {
    "version": [
-    20220312,
-    1944
+    20220406,
+    1434
    ],
-   "commit": "f2c78c4a6059c5f892e48a3887d4368a547515ff",
-   "sha256": "1zr3pk1ifvn9j4f4n7g53q4wcd3r4zybjni8kyiil4jadmvsglfl"
+   "commit": "8f64537f556f26492fe5ee401d8d578d7d88684b",
+   "sha256": "068sqaxlig3fj7z3a5hc34mnw6g3lv9kn68ibq6yw1b4q8r82knq"
   },
   "stable": {
    "version": [
@@ -77923,14 +78226,14 @@
   "repo": "awth13/org-appear",
   "unstable": {
    "version": [
-    20220211,
-    727
+    20220405,
+    1146
    ],
    "deps": [
     "org"
    ],
-   "commit": "ffbd742267ff81ba8433177fac5d7fe22b6d68a9",
-   "sha256": "0h1689mzkcgnrnpjwlh3a9ks9vb0a8sj60nlyn9x2nkcalg6vsw4"
+   "commit": "8dd1e564153d8007ebc4bb4e14250bde84e26a34",
+   "sha256": "0aq6vqya8cj6wjgi8yjbrvkjg9if2ampyx4g6szdpmyc5mq7zgll"
   },
   "stable": {
    "version": [
@@ -77953,11 +78256,11 @@
   "repo": "bkaestner/org-arbeitszeit",
   "unstable": {
    "version": [
-    20220127,
-    754
+    20220328,
+    1951
    ],
-   "commit": "5b307ebc0db0d58ed6b94d4db30f2653b5782e41",
-   "sha256": "0dcawxni158af3jdhr22zkh39b39qvzsdk6kc5l8vjwjd37r1kks"
+   "commit": "60e6adfe457bcc4ee47e3e5805b6b40544f98ee0",
+   "sha256": "0m93d60bybw2sjw75h65y76r9aspdfpv846pwm6xvjph9v614dgy"
   }
  },
  {
@@ -78110,10 +78413,10 @@
  },
  {
   "ename": "org-board",
-  "commit": "d8063ee17586d9b1e7415f7b924239826b81ab08",
-  "sha256": "00jsrxc8f85cvrh7364n7337frdj12yknlfp28fhdgk2ph6d7bp4",
+  "commit": "92100b66bac72090515e957ab53d654829c922cf",
+  "sha256": "0rvwycaq6xsnnz2l8mnyj5vdq5bc0zj7iax0kz18lv2gr4cpx4sx",
   "fetcher": "github",
-  "repo": "scallywag/org-board",
+  "repo": "charlesroelli/org-board",
   "unstable": {
    "version": [
     20200619,
@@ -78310,14 +78613,14 @@
   "repo": "Chobbes/org-chef",
   "unstable": {
    "version": [
-    20210930,
-    1418
+    20220412,
+    1423
    ],
    "deps": [
     "org"
    ],
-   "commit": "87e9a6c4844ff32f47c8d1108ec0f087a3148a8e",
-   "sha256": "0xdfaf3shl3iij7nnshb5ryccqq70rpk0zm0d3fdwdbfa8rf7fkp"
+   "commit": "f244b33a5a42d2879b9a6f4fcfeedcefb3326b94",
+   "sha256": "19dnp8s3aplcran1byr525fc3pmvyva6lac9ba68685ga0pxc4j9"
   }
  },
  {
@@ -79262,16 +79565,16 @@
   "repo": "ahungry/org-jira",
   "unstable": {
    "version": [
-    20220225,
-    158
+    20220328,
+    407
    ],
    "deps": [
     "cl-lib",
     "dash",
     "request"
    ],
-   "commit": "96e92585ed6f510f87363be3cb10d804f67e1b52",
-   "sha256": "1n1h3xby4998hdv6j4gllznzbhh4gl2wr9bm4235n859zypq9b4l"
+   "commit": "502de6d31d0b2fd8480787461b7167d5dd3b088a",
+   "sha256": "16wm0k5sa7r12chfz96nfk2474a3wa7q7dinhc7hfl1x5c7v60zk"
   },
   "stable": {
    "version": [
@@ -79296,14 +79599,14 @@
   "repo": "bastibe/org-journal",
   "unstable": {
    "version": [
-    20220103,
-    829
+    20220408,
+    629
    ],
    "deps": [
     "org"
    ],
-   "commit": "f121450610650c63aabf13afd0d2089e05fad2e4",
-   "sha256": "0hai9m2bxwhnk3xcbcdis93spz4ncvcrhdwi8cdp1j5gsvgdxm86"
+   "commit": "839a2e19865a03bec30ef32431f981f33880a754",
+   "sha256": "0ggg9p1i016pkwa2322chpwisbllzp1vd4p3qbkzyd5mdp59gwph"
   },
   "stable": {
    "version": [
@@ -79341,21 +79644,21 @@
   "repo": "SqrtMinusOne/org-journal-tags",
   "unstable": {
    "version": [
-    20220305,
-    2019
+    20220411,
+    2018
    ],
    "deps": [
     "magit-section",
     "org-journal",
     "transient"
    ],
-   "commit": "b395f5c90aa06885aa9441217cc0abaaa53ccc11",
-   "sha256": "1kkf6sryj9xgplxpf69lz3wz1zaifarr1cwgq5if3yc1bb868ax2"
+   "commit": "1e19f7a1a815881e244c6ff42a12c56d3249c6f5",
+   "sha256": "02maqn8hpl3cmjq1bhd2pfvy8gqw00jjijfmzzdfx7wwfvgz3vb7"
   },
   "stable": {
    "version": [
     0,
-    1,
+    2,
     0
    ],
    "deps": [
@@ -79363,8 +79666,8 @@
     "org-journal",
     "transient"
    ],
-   "commit": "16e7ad11ca3ff3085f3098f492c5cfb3f6ded253",
-   "sha256": "12l0r1ayi7qwczaaa9590rqfmib8rj0f287c0s7gphmvyds078j7"
+   "commit": "66740f8615bd487097e8614ffa8caa9aab81c1eb",
+   "sha256": "1m1a8kfnz544j7xjjhpii2sj20sqfbpfzg4l4606smb6i7zszvdh"
   }
  },
  {
@@ -79437,8 +79740,8 @@
     "posframe",
     "s"
    ],
-   "commit": "d18e73dbed8ae104699295143a44356fa1029358",
-   "sha256": "0387n6z3kyqvslv395wajmbsg3p05918wn1wgm2bi4d9kjw6y3qm"
+   "commit": "832bbb9bbdee8b58170c984ead487f3ad612820c",
+   "sha256": "1m459hv1064yjg4dhif5b249rfrb70590kgdxx818w5x3va80i3l"
   }
  },
  {
@@ -79673,11 +79976,11 @@
   "repo": "minad/org-modern",
   "unstable": {
    "version": [
-    20220325,
-    1506
+    20220413,
+    2110
    ],
-   "commit": "dc19304f409259d1b258c51cedd2d362e0ff9b98",
-   "sha256": "1b0cis1n786c4lkrsi71ak2wv21mhgbfk3q2pp6qiqhddah0l1cg"
+   "commit": "8cd0d0653a962e1f9e99e9c8dc126d8615f132f0",
+   "sha256": "1844f71lzarhxyyjfpdlz3pb31rdwyj8jgjlvd434gbsm8mkchaj"
   },
   "stable": {
    "version": [
@@ -79751,14 +80054,14 @@
   "repo": "jeremy-compostella/org-msg",
   "unstable": {
    "version": [
-    20210916,
-    1114
+    20220331,
+    1707
    ],
    "deps": [
     "htmlize"
    ],
-   "commit": "77f5911b7d390a069104db20be86293506ffbff2",
-   "sha256": "08kv8639zdfr3fpzx4zpbgf40vjpa1xwkhxzz7vdpmjq19i3c28w"
+   "commit": "60e22e446325a9b3387396459d98be7c1c52579d",
+   "sha256": "077g7gvn1k6i2x4m2kd3dkrznc89f5a5pd916wsmpy703pv0aca5"
   }
  },
  {
@@ -80423,28 +80726,28 @@
   "repo": "oer/org-re-reveal",
   "unstable": {
    "version": [
-    20220315,
-    1704
+    20220402,
+    1456
    ],
    "deps": [
     "htmlize",
     "org"
    ],
-   "commit": "e5bae22b9ef63a9fcfbbaa000e087703751eaad0",
-   "sha256": "1njib0ah1913lk3ma18y8m5k8jqki17i9298cc03k7vvfw3l19wz"
+   "commit": "c787ebf93d51b63b8726df241e3e2fcda35d4ae1",
+   "sha256": "02y6qm4va43c25i7b0q3pvk888war64rrb2p9bmv5p8176dy1mjw"
   },
   "stable": {
    "version": [
     3,
-    12,
-    5
+    13,
+    0
    ],
    "deps": [
     "htmlize",
     "org"
    ],
-   "commit": "e5bae22b9ef63a9fcfbbaa000e087703751eaad0",
-   "sha256": "1njib0ah1913lk3ma18y8m5k8jqki17i9298cc03k7vvfw3l19wz"
+   "commit": "c787ebf93d51b63b8726df241e3e2fcda35d4ae1",
+   "sha256": "02y6qm4va43c25i7b0q3pvk888war64rrb2p9bmv5p8176dy1mjw"
   }
  },
  {
@@ -80599,8 +80902,8 @@
   "repo": "jkitchin/org-ref",
   "unstable": {
    "version": [
-    20220318,
-    2105
+    20220331,
+    2336
    ],
    "deps": [
     "avy",
@@ -80614,8 +80917,8 @@
     "parsebib",
     "s"
    ],
-   "commit": "ec449195438f815698241f0b01a5395221b3306e",
-   "sha256": "19hf4lp1z14gczs0d39vi8lcl67bbraz2wkimshk8fwhjc14wf4l"
+   "commit": "10ed481413a8cbc676d26e754a3e7c6ff7d44cf3",
+   "sha256": "0nwbjh5pn8p16w33jd0d4vi497aaww7368899q1hr12yjl9b6c3q"
   },
   "stable": {
    "version": [
@@ -80698,8 +81001,8 @@
     "dash",
     "org"
    ],
-   "commit": "c42078f8601b7f600135f66e75246a53c5f9975f",
-   "sha256": "1afmv6ncjbm6dalgz459lhh0rif8rlag23n05jwdv7izibwb1dm2"
+   "commit": "9ebd42b521e7adf26a35cbb17144113a83f73264",
+   "sha256": "0wjz26qmjwiz1594b4s9vycbbz7zhs52xpa0ksph92fcl21c5fp5"
   },
   "stable": {
    "version": [
@@ -80723,11 +81026,11 @@
   "repo": "brabalan/org-review",
   "unstable": {
    "version": [
-    20160907,
-    537
+    20220411,
+    1205
    ],
-   "commit": "058e75b7f28d2ad2390290fe17a63d98ef5ab763",
-   "sha256": "1j917zblg5ncls9lbvpzhqal55mx27d3kpvhzvjw2h7x47ji6iym"
+   "commit": "466f7d8f183f226f1e665cf806cb094471903d9c",
+   "sha256": "122l2n1qz5qps3jphimp1dd743ckbqcvnjdwc5zcdzp9x70yy3nh"
   }
  },
  {
@@ -80762,8 +81065,8 @@
   "repo": "org-roam/org-roam",
   "unstable": {
    "version": [
-    20220319,
-    1902
+    20220409,
+    2317
    ],
    "deps": [
     "dash",
@@ -80772,8 +81075,8 @@
     "magit-section",
     "org"
    ],
-   "commit": "d71675fb479d11da3ae597bb13bc1c96256ff0b0",
-   "sha256": "056gkk7fxla2rm8lzzig1rq8brhznciifdn0pqfxwwyvpa6sy1i5"
+   "commit": "3bb45afccb9f17758c5604e4d883c769f4fc3545",
+   "sha256": "04pdlix7wcgkfml41dy2arr2sv3z9s4g3r4ydrbash4w257q9bqq"
   },
   "stable": {
    "version": [
@@ -81426,15 +81729,15 @@
   "url": "https://repo.or.cz/org-tag-beautify.git",
   "unstable": {
    "version": [
-    20220315,
-    1159
+    20220409,
+    2310
    ],
    "deps": [
     "all-the-icons",
     "org-pretty-tags"
    ],
-   "commit": "aad66c775e3010f7af2ebd3e0914aa6a57127f1b",
-   "sha256": "01y53nh9z7y77gns28dg5s2sr672i3sb39vpflx7mhfcijkribzj"
+   "commit": "72456c2a1caa811a4cda2f7b07ba58645c3efbb8",
+   "sha256": "04lgrbgk0jsmgkla8jif6kma9328535ajrvqaiyja0r2c5d5x7ng"
   }
  },
  {
@@ -81858,20 +82161,20 @@
   "repo": "nullman/emacs-org-visibility",
   "unstable": {
    "version": [
-    20220227,
-    1536
+    20220404,
+    1502
    ],
-   "commit": "623d596ff02e54d7e090fa30c67a4d0dd4e7fe72",
-   "sha256": "0cnwrjhbp8jfsbax7v46xiq6xzcp4by73dbkkgw19bjj5mywiqc9"
+   "commit": "a3aef6573d23309f9a6f340b41fa103cca3c79a6",
+   "sha256": "0fc9zisw87kn5jp5pkac13jwai9m5jrm9xvbmsig7s2yr12ifwch"
   },
   "stable": {
    "version": [
     1,
     1,
-    4
+    5
    ],
-   "commit": "623d596ff02e54d7e090fa30c67a4d0dd4e7fe72",
-   "sha256": "0cnwrjhbp8jfsbax7v46xiq6xzcp4by73dbkkgw19bjj5mywiqc9"
+   "commit": "71b888c9c5cbabb762e83ae7b2b5b9b4e4f4283c",
+   "sha256": "0fc9zisw87kn5jp5pkac13jwai9m5jrm9xvbmsig7s2yr12ifwch"
   }
  },
  {
@@ -81935,16 +82238,16 @@
   "repo": "akhramov/org-wild-notifier.el",
   "unstable": {
    "version": [
-    20220221,
-    928
+    20220402,
+    2331
    ],
    "deps": [
     "alert",
     "async",
     "dash"
    ],
-   "commit": "860392e309e75474ae03128ce52b6592bd28027a",
-   "sha256": "1npl118j457zcsmn2b4vsx6kmz8v6k8czrqgmi2fl7aql5xhvp6j"
+   "commit": "4b1d874aafdee90815136c308f1f3bd3577971ec",
+   "sha256": "0wqcm65gisiapkx9m8zd5l6ysir2m7vk0px8adv04kjb5j937isq"
   },
   "stable": {
    "version": [
@@ -81970,30 +82273,30 @@
   "repo": "marcIhm/org-working-set",
   "unstable": {
    "version": [
-    20220228,
-    1652
+    20220407,
+    1708
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "25ddd0169eafece581bbb4919427a4d64dab8ae8",
-   "sha256": "08s9rf57yci4xla6dlkb9av9qd2nwls487vxr4zfyb932j8vdp4h"
+   "commit": "d5375818919f21910a97c4617b2a316c40272fb9",
+   "sha256": "0kdb3m36msy2hqq1mkzzdvbp5dxazv3rfgr17vhi4nm0na47wk2p"
   },
   "stable": {
    "version": [
     2,
     6,
-    1
+    2
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "25ddd0169eafece581bbb4919427a4d64dab8ae8",
-   "sha256": "08s9rf57yci4xla6dlkb9av9qd2nwls487vxr4zfyb932j8vdp4h"
+   "commit": "d5375818919f21910a97c4617b2a316c40272fb9",
+   "sha256": "0kdb3m36msy2hqq1mkzzdvbp5dxazv3rfgr17vhi4nm0na47wk2p"
   }
  },
  {
@@ -82246,8 +82549,8 @@
     "ht",
     "s"
    ],
-   "commit": "3cdd1985ec06fe42b81f3029512c7530a33f15c8",
-   "sha256": "0xg4vikw8k3kzn5vlqcf1jagalnq2xwd4wps8l37fr1iqkpr7wqb"
+   "commit": "484ec25e863a619e53d1ddd351c70541f19cc45a",
+   "sha256": "0q9ykb9lxb9lwcgy77db8c994ka1rxpaid0immj3zvpxwi2hkbld"
   },
   "stable": {
    "version": [
@@ -82305,15 +82608,15 @@
   "repo": "magit/orgit",
   "unstable": {
    "version": [
-    20220211,
-    25
+    20220402,
+    1629
    ],
    "deps": [
     "magit",
     "org"
    ],
-   "commit": "42b7f682b3e4e487ff209a44221a729921241133",
-   "sha256": "0vns8fbavfgyazlhbvwgc17w3v5iaf7ng92na2sl4lvc33rk941j"
+   "commit": "bc4168ecd241a8e2b4b30af51f671b53fe3187be",
+   "sha256": "16fyp8vd9d0c97s0vp7n8qg34dh38g5z2h4llvdrs3y51s2v5zyd"
   },
   "stable": {
    "version": [
@@ -82337,8 +82640,8 @@
   "repo": "magit/orgit-forge",
   "unstable": {
    "version": [
-    20220211,
-    26
+    20220402,
+    1632
    ],
    "deps": [
     "forge",
@@ -82346,8 +82649,8 @@
     "org",
     "orgit"
    ],
-   "commit": "36e57a0359992e02312f453b8086512e77beb150",
-   "sha256": "0mrq7mrgvj5r0bmxa4365xycfwp6m42mdqi5l5pljr5xz6k3rnc4"
+   "commit": "a2e547d152e154eda48675f172b7d78c7307315a",
+   "sha256": "0a76b4x6wl2dr9cpmv6a25prh6ip5k3h7k1sld501212qyay2khs"
   },
   "stable": {
    "version": [
@@ -82373,15 +82676,15 @@
   "repo": "tarsius/orglink",
   "unstable": {
    "version": [
-    20220101,
-    1045
+    20220402,
+    1637
    ],
    "deps": [
     "org",
     "seq"
    ],
-   "commit": "d0210403b62eaf5c68f04a313f509589f253bc12",
-   "sha256": "1619ly90vh2lla5rbw87a4n0rfal3wpbf7005jjiyv2ay88nc7l9"
+   "commit": "bb4b19f48134f43410cd9762a086da59fa338e98",
+   "sha256": "0r930pzfks9b0whbmawmgx4s6vxk8hfsz9k19lddn6rxb64c9db0"
   },
   "stable": {
    "version": [
@@ -82663,11 +82966,11 @@
   "repo": "minad/osm",
   "unstable": {
    "version": [
-    20220325,
-    2356
+    20220403,
+    904
    ],
-   "commit": "881b1c969fcf3dae5c020ce520e5a16f8f2b6f18",
-   "sha256": "06ryshf804m6npygf8546kxg1xsjsl52kgbzr147h2ay5kq90q06"
+   "commit": "ae8194e3032d8740edd7c08380ff5dbc6767fd9d",
+   "sha256": "137lc50913c3fjfsw668d2rvg58r122z722wc314f6rvdsxx7h1d"
   },
   "stable": {
    "version": [
@@ -82942,11 +83245,11 @@
   "repo": "tarsius/outline-minor-faces",
   "unstable": {
    "version": [
-    20210530,
-    1259
+    20220402,
+    1637
    ],
-   "commit": "942bd43ea7099984e9ebccf48db70af345d4b6bf",
-   "sha256": "0xnzwb1ybhq38qgd3ml18565bbagfx6yzcfndc5d4ll7bzij6jbh"
+   "commit": "d9b220eaa7e845a02fd17779f3f1820527a6ef50",
+   "sha256": "071lhipssh79kzy2lm7j2phmmsfp745yl2n95h7w5c7i9kxvc2zh"
   },
   "stable": {
    "version": [
@@ -83382,6 +83685,25 @@
   }
  },
  {
+  "ename": "ox-gist",
+  "commit": "d376675eec6ebaa711431b296b467385dc02d44a",
+  "sha256": "1svl5m50fcyygiljybaawz6380xkq3vlznnb4kchqbhy20020riz",
+  "fetcher": "github",
+  "repo": "punchagan/ox-gist",
+  "unstable": {
+   "version": [
+    20220410,
+    2034
+   ],
+   "deps": [
+    "gist",
+    "s"
+   ],
+   "commit": "e9f1f11af0e97fee30c2b15b56c236b1f4e1f400",
+   "sha256": "0qxbqrcqvxs2pz5and0lxpc813v68j7a7qpw4y2l2adxx4zjazzj"
+  }
+ },
+ {
   "ename": "ox-haunt",
   "commit": "94b0a0a20d25dbe10333bb167d81f036b9fd03e0",
   "sha256": "00fbljwkinx50b57srziw51k16kbzq2k0xylgjxg9ayy3hqqn5j1",
@@ -83436,25 +83758,26 @@
   "repo": "kaushalmodi/ox-hugo",
   "unstable": {
    "version": [
-    20220322,
-    137
+    20220411,
+    1555
    ],
    "deps": [
     "org"
    ],
-   "commit": "d04f41af6d128ccb9421c9bcd83b5fb12d14f440",
-   "sha256": "0qqaqykcm3pzc8a3ap4jnspn2p1034f6qhv6xyf43iqy8nhvrl03"
+   "commit": "d3d4c57444f03898e78d2ae11e97fdb94a4655c5",
+   "sha256": "0wzn9pm72bm1r9z42d7g38l0s1s5dplgmvnqppl02mx6ls1lx1rz"
   },
   "stable": {
    "version": [
     0,
-    8
+    10,
+    0
    ],
    "deps": [
     "org"
    ],
-   "commit": "9751d34e1133b89a533a978c085b0715f85db648",
-   "sha256": "11h464cyc28ld0b0zridgm4drydc1qjxbm1y24zrwlkyqqjk6yr7"
+   "commit": "ad412e0d2c8b36232abe090893cc731ffb1b8e17",
+   "sha256": "0x9hixb518bblaap0zjbp19dswv1davi4qkqz2a6a2ilvmfi47zz"
   }
  },
  {
@@ -83795,14 +84118,14 @@
   "repo": "yjwen/org-reveal",
   "unstable": {
    "version": [
-    20220216,
-    1506
+    20220410,
+    1533
    ],
    "deps": [
     "org"
    ],
-   "commit": "fed9be1f4c317c08ca2372bd45cb9d1bcf8a3f7e",
-   "sha256": "1vmkj60lmah79r62k2gigkblilkw21ciyj324iwvk6hqmaahw6km"
+   "commit": "862b41df7734f57019543f6bd82ff7dad7183358",
+   "sha256": "1009w8bp2rkqjvks97xlzbprrb1fxhcdb9fzx08ak229glvwav08"
   }
  },
  {
@@ -84285,15 +84608,15 @@
   "repo": "purcell/package-lint",
   "unstable": {
    "version": [
-    20220213,
-    1457
+    20220412,
+    1648
    ],
    "deps": [
     "cl-lib",
     "let-alist"
    ],
-   "commit": "873025ffc85b5e40ec361e953218fa09c6ebd621",
-   "sha256": "10sinzpnk41xvdb1va9vv6nnwyyryvmyrvxxwq6xska9ab580g6y"
+   "commit": "80a9d9815ab2919c992ad29ae4846443dec43a35",
+   "sha256": "0sfxpw19vi7hsr3j86wbwxfi02020z38qg1w72j8k6mm0m9m21yi"
   },
   "stable": {
    "version": [
@@ -84322,8 +84645,8 @@
    "deps": [
     "package-lint"
    ],
-   "commit": "873025ffc85b5e40ec361e953218fa09c6ebd621",
-   "sha256": "10sinzpnk41xvdb1va9vv6nnwyyryvmyrvxxwq6xska9ab580g6y"
+   "commit": "80a9d9815ab2919c992ad29ae4846443dec43a35",
+   "sha256": "0sfxpw19vi7hsr3j86wbwxfi02020z38qg1w72j8k6mm0m9m21yi"
   },
   "stable": {
    "version": [
@@ -84420,11 +84743,11 @@
   "repo": "emacscollective/packed",
   "unstable": {
    "version": [
-    20211021,
-    1753
+    20220402,
+    1638
    ],
-   "commit": "51f22a68e23b87626d162c58a0afbc21ad22f210",
-   "sha256": "1gpv2vaci0m48fzn0sy7iwl1mnkkqc30bf05jjrqlpn9kpbjyf1p"
+   "commit": "1e2d1a96a2105fec7c1e95d3484790da45fbdf36",
+   "sha256": "0ph97hkbvv1hdf6g7mjxgqahj1z8zwhiha1kjw2dj0g0ymwh6iwm"
   },
   "stable": {
    "version": [
@@ -84506,8 +84829,8 @@
     20210104,
     2224
    ],
-   "commit": "28783cd6b86b3cd41e51e6b2486173e2485a76cc",
-   "sha256": "0c9971l4xz2qm6pskad9fga6rcz72lyr2jfzwjxwhqx1v7ss46bc"
+   "commit": "cc283621c64e4f1133a63e0945658a4abecf42ef",
+   "sha256": "1rivzf1brs45sh4pcdc0cyx0kads0pfqsz62csh4njs9mhxlxp2k"
   },
   "stable": {
    "version": [
@@ -84559,8 +84882,8 @@
   "repo": "r0man/paimon.el",
   "unstable": {
    "version": [
-    20220325,
-    1032
+    20220326,
+    2051
    ],
    "deps": [
     "aio",
@@ -84572,14 +84895,14 @@
     "request",
     "transient"
    ],
-   "commit": "8e28efe96a171b04b1fd83f763ca26e939dd44ed",
-   "sha256": "1d3bcy1wb7wsw6qqihwdy835z32pibz9d8ia8xcarzcg5c983is8"
+   "commit": "01675ff30ce0f29ad81f9275b4fc0797c0a7073f",
+   "sha256": "0kpn9i8dd1ij5fx8h9ycilfhz9ik2kaw5dq2xn4j5jifqrfbl268"
   },
   "stable": {
    "version": [
     0,
     1,
-    3
+    5
    ],
    "deps": [
     "aio",
@@ -84591,8 +84914,8 @@
     "request",
     "transient"
    ],
-   "commit": "b29ccfcedefd03cc05d98cd06a5935ecf4bd6917",
-   "sha256": "1wd1z2l0jyx20y2h95w6ybjabjn613m09gmrp6bj13ry4355sfvs"
+   "commit": "01675ff30ce0f29ad81f9275b4fc0797c0a7073f",
+   "sha256": "0kpn9i8dd1ij5fx8h9ycilfhz9ik2kaw5dq2xn4j5jifqrfbl268"
   }
  },
  {
@@ -84993,11 +85316,11 @@
   "repo": "tarsius/paren-face",
   "unstable": {
    "version": [
-    20220129,
-    2216
+    20220402,
+    1639
    ],
-   "commit": "4f6ad761a7d508bb6b3e6539559929d2706caa10",
-   "sha256": "13d8psgd2j3vqmgwwf62gwyq7h6qlj8rrs31fxwjqmzzdblwqy1y"
+   "commit": "1e66895083bd9e6d918450b1cd8be61a19bfc67f",
+   "sha256": "0aqs201b30i6zlk4v90m03g99hzbiyw9b6c4wd31z51x5h9prvxa"
   },
   "stable": {
    "version": [
@@ -85109,8 +85432,8 @@
    "deps": [
     "s"
    ],
-   "commit": "c6330d9fc28fe92c83415c2a56e675a6e04841fa",
-   "sha256": "1bgpbc38f37ja6xsny7q28wwvg0m6hs34zgqk3q39zadq595q6iy"
+   "commit": "dbeb8f474b3cf2dfc13a38a2edef2c2c242621ae",
+   "sha256": "0y9cl85f55p8y47j9vmgw10vj9vvx8wv7anipr16lvccdjhl77hc"
   },
   "stable": {
    "version": [
@@ -85186,11 +85509,11 @@
   "repo": "clojure-emacs/parseclj",
   "unstable": {
    "version": [
-    20220313,
-    1649
+    20220328,
+    558
    ],
-   "commit": "f32c041f2b301e790429fd16677c8cab11645702",
-   "sha256": "1i3xrhfhdjadq6qyn492r37ayd88cna1yih87b9n3iky1ziryljj"
+   "commit": "b04eae67384c1d8181edf318fd62d422a8220724",
+   "sha256": "10vavzmhwh0bh10sp4zkhjp17cxpy8whnaxmk7icc543r7z1vyzd"
   },
   "stable": {
    "version": [
@@ -86304,14 +86627,14 @@
   "repo": "nex3/perspective-el",
   "unstable": {
    "version": [
-    20220320,
-    437
+    20220412,
+    547
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "d3afc52ed098b713b6607943bd1ee0ef899db267",
-   "sha256": "0bbpmrjyz0zfgbfhf340axnx93ln39ml58frpqiiablz9n1xvj0j"
+   "commit": "9f898cadc43c2c2e947d72636af30f028e2b925f",
+   "sha256": "0ay7h3gr1qf01im17jn1jpj82lyd5mw0ynryq4l21mjxbsb9vvmf"
   },
   "stable": {
    "version": [
@@ -86802,8 +87125,8 @@
     20220120,
     1959
    ],
-   "commit": "5f26bec865ee159dc30d3922f17bc42adfcfed50",
-   "sha256": "0132az773sk6w1wdz4a1wxmxy5w69x4h2jrgd67h94k845nyl348"
+   "commit": "f8cbf368c803cbcc8ca2468f98a37cf915673c1c",
+   "sha256": "0avlzya8b2lg190y6kkinh7s6rizhr5m6c150zfq7dp9djc4p62r"
   },
   "stable": {
    "version": [
@@ -88851,11 +89174,11 @@
   "repo": "karthink/popper",
   "unstable": {
    "version": [
-    20220309,
-    457
+    20220406,
+    336
    ],
-   "commit": "60297066e31e012b8087b1b7818febd73e02d2cf",
-   "sha256": "1ivj61hjg5gqlivb04ynnk2mry8bac9mmf9f473naplzwnd741p1"
+   "commit": "6599c9b5a12b411c6cf1536bf200ae233fa24389",
+   "sha256": "0k306s29qj8dxgjzv24lxz3xnykra99h2gv76802snlyjbnzc50y"
   },
   "stable": {
    "version": [
@@ -88877,8 +89200,8 @@
     20211231,
     1823
    ],
-   "commit": "e112ef1cc6c86151ea97a0bad49026fbbacc768c",
-   "sha256": "1iwq7p7f1xpiwzlizqqm2jzf2ly0cgaj8zskjrya0lymfz8rw7dx"
+   "commit": "0a4a906ef747948eb6ee5521b47607970a7f3044",
+   "sha256": "1r9gvgdgp8bl4i56jway2rw9r2sv4dz48mxsl1xli49xrp41k1lg"
   },
   "stable": {
    "version": [
@@ -89021,8 +89344,8 @@
     20210215,
     1849
    ],
-   "commit": "8f90c6faeecd77c88883cafc03c37a5cce4b1982",
-   "sha256": "0zs4z22ib34jg1lblqr5b0gdywb88fp769dk2x53s6sq1gi7cvkp"
+   "commit": "76b8b427cc1bbb5aeaa2dc20cfa0443b89efab43",
+   "sha256": "0p00q4ffdxzb9i0dcnafaby6wzh3q1vdbxq8ysprb62mdz8lmpi6"
   },
   "stable": {
    "version": [
@@ -89262,11 +89585,11 @@
   "repo": "jschaf/powershell.el",
   "unstable": {
    "version": [
-    20220103,
-    925
+    20220402,
+    643
    ],
-   "commit": "ce1f0ae0b2e41cd0934a9dfbf2ff016b1d14e9c0",
-   "sha256": "111aqj1858ykimwdp2kh2j599n3rzz0nnv0sq424jn8dypx0fcvr"
+   "commit": "77b27faf8a292f1dc9f54c872241dc53b6791bf1",
+   "sha256": "0i66gq5pzgnh4x2y05vsd54cnb8v3adp7gxljwzzljm2jpwmb8hn"
   }
  },
  {
@@ -89352,8 +89675,8 @@
   "repo": "blahgeek/emacs-pr-review",
   "unstable": {
    "version": [
-    20220213,
-    1524
+    20220412,
+    440
    ],
    "deps": [
     "ghub",
@@ -89361,8 +89684,8 @@
     "magit-section",
     "markdown-mode"
    ],
-   "commit": "5c44b06e314a43a30de8323cae75b1e87594f991",
-   "sha256": "1f2lrwbb85i31vcjin9b0gi89m2zn9w2npwi1sqp0bjd0ndimwp5"
+   "commit": "cfc5643c4ab66f17a31d82418465ae434486d8db",
+   "sha256": "0gf5s7f4906qypy3imaqh7zy24xd1ijz57rh72vdvjd33n4x857f"
   }
  },
  {
@@ -89396,28 +89719,28 @@
   "repo": "LaurenceWarne/prefab.el",
   "unstable": {
    "version": [
-    20220314,
-    2005
+    20220403,
+    1026
    ],
    "deps": [
     "f",
     "transient"
    ],
-   "commit": "4d9cac415a4ee86bb5793ce18a350a30f562c2fd",
-   "sha256": "0f4cm5kvsa14yl93vw750ll51vf1g4b04vl6zivq1nzrb8gjj6zr"
+   "commit": "ffcf9c640c8c458a58b752ef2608e07a929a1104",
+   "sha256": "119gbadnzgxhrw5y5swyzkm5268wjpjnxfy21ybsxw8dj2rsvvzj"
   },
   "stable": {
    "version": [
     0,
     1,
-    0
+    1
    ],
    "deps": [
     "f",
     "transient"
    ],
-   "commit": "70c20db8423e39e9889222531ba52715c6d5ce87",
-   "sha256": "1f4qikrs9zdnnr6f1a5vwb0f9kqn1b7fb5n5n9r14h1wc6pn6y48"
+   "commit": "e4775959e5410a24f84fa2855b9709fb65fc89b3",
+   "sha256": "0c6kr1m28gf8yvn9rcbdrrwmyfma3c27l3iy8jhsd8rm6girm102"
   }
  },
  {
@@ -89558,14 +89881,14 @@
   "repo": "jjuliano/prettier-rc-emacs",
   "unstable": {
    "version": [
-    20220321,
-    1516
+    20220330,
+    145
    ],
    "deps": [
     "prettier-js"
    ],
-   "commit": "f2aa1a7469d62a11479a3abb826c8fb96dd00082",
-   "sha256": "1rlfh2c680nl2bbv82mp4y6k6cp7qwp2axi0v998zb62ymw6p1bv"
+   "commit": "99e40a9783299e41911f6b37156626d53e43809e",
+   "sha256": "0qbjrrmkm1qnmmki80didis903dmc60aacxh773xlvglyxlvgyxn"
   },
   "stable": {
    "version": [
@@ -89786,6 +90109,30 @@
   }
  },
  {
+  "ename": "private-comments-mode",
+  "commit": "ee5f195654dbb1b55ab1a31f39e497a85bf23639",
+  "sha256": "0ncmka1r5p79amiy9pkikcvnxwzfm9blkr6jm8nd6fm41mp12ld9",
+  "fetcher": "github",
+  "repo": "masukomi/private-comments-mode",
+  "unstable": {
+   "version": [
+    20220330,
+    1316
+   ],
+   "commit": "57eb1ba3812e44344b7d5336c3a3ad14a28e4f9e",
+   "sha256": "0m5qksmzbjwzv10n7hb3v8sa6zab4kp2w7ayv2g7fc94cm1aljz2"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
+   ],
+   "commit": "9d7a650278749cdbcc2564b54b15d66be8213efc",
+   "sha256": "0mzrrk1j07arc126h70v9plib32gnfr0haavf2qb219rh6hrljzg"
+  }
+ },
+ {
   "ename": "private-diary",
   "commit": "ef39950941c522e64ea991c9eeecfb5f6f18f6a2",
   "sha256": "0dgnf375c00nlkp66kbkzsf469063l03b9miiplbhd63zshlv1i1",
@@ -90009,8 +90356,8 @@
     20210715,
     1213
    ],
-   "commit": "7bd4d77808e15bc3845b0ab2421bb31c20e981cc",
-   "sha256": "16ybwsqlw5j92bynm9x56s351y4mh2s51ycbcfcl3460b9adqsxl"
+   "commit": "7ec546f2fb96b8220a7967f248d0d6df7c55b9c8",
+   "sha256": "1wvavcdlikw33r7vs2fr7f6a5i96fmcf3y546f39dh1xbw1qyz7i"
   },
   "stable": {
    "version": [
@@ -90151,11 +90498,11 @@
   "repo": "fritzgrabo/project-tab-groups",
   "unstable": {
    "version": [
-    20211018,
-    2252
+    20220331,
+    918
    ],
-   "commit": "f0a6c93c2cefdb781b6f1ef6628aff54aac35e7d",
-   "sha256": "1y8xzabh7n7p4g0b2zhv4z9n771skr1fpxfwlm0lia1g4c37rsyh"
+   "commit": "837267a23fa57199599b96af94c2db2e80a859d3",
+   "sha256": "1yrypgykgvvfq0qpkv4arc766r5kq1cidpmkk6ymlj376rviivvf"
   }
  },
  {
@@ -90166,11 +90513,11 @@
   "repo": "bbatsov/projectile",
   "unstable": {
    "version": [
-    20220313,
-    1334
+    20220402,
+    624
    ],
-   "commit": "20df208385ce7b80207602c9931e31094eca85fb",
-   "sha256": "15nnmnapyclk6v69l2l0vhy5k5x682l0kj9nj454nmdqqh4lmkwy"
+   "commit": "defce6e6bb504bdfab1e091550e2f709310327b9",
+   "sha256": "1qxns4s8wf02aiwp8hwcbqqydyldvj0ssh6rdbyi3fkq87fajcp6"
   },
   "stable": {
    "version": [
@@ -90240,8 +90587,8 @@
   "repo": "asok/projectile-rails",
   "unstable": {
    "version": [
-    20210810,
-    1303
+    20220403,
+    1621
    ],
    "deps": [
     "dash",
@@ -90251,8 +90598,8 @@
     "projectile",
     "rake"
    ],
-   "commit": "30828afbfa7b0e07970e3e668e975e7916b824c4",
-   "sha256": "1m1n1rvna9qhq3dl4sd90lnkzvk7vaz2832r3zhfyg6l5d7dybh6"
+   "commit": "2a0107e83d8320507e288c853e0762bec110cd15",
+   "sha256": "1vihbp5phm1mkhjlr7vdlvpz6cm7664sgwkxp8dif2h3q9ggrzla"
   },
   "stable": {
    "version": [
@@ -90572,11 +90919,11 @@
   "repo": "ProofGeneral/PG",
   "unstable": {
    "version": [
-    20220310,
-    2253
+    20220329,
+    655
    ],
-   "commit": "f34a4938399e6b863f14315ba5eeefb5ce047c50",
-   "sha256": "1cgnjpxjrdwf1sk8a7b76gsdvlsl8p0cwb4yhizvafm5p4276v5s"
+   "commit": "a894bcc5f915f1c76a2a83c12c12ea3497542426",
+   "sha256": "0s3glxi0382xhs6asv7ajrs3qzfj27qd8j4szdn8a8pmskl3c81m"
   }
  },
  {
@@ -90671,17 +91018,19 @@
     20220303,
     1716
    ],
-   "commit": "b5a35bcc7e4cc4ff00eb105449b300fca3a8b0d2",
-   "sha256": "1gydvww2n64gsa2nyi5150jwsgxg0mdpxr3h9kpzdd4rqxab07z7"
+   "commit": "eb27c201f121b02c990c3665edce5171a8c70192",
+   "sha256": "1ccp9gj2h8snm9y8hkmii8yy4xr4as2ymjzxnnk9mpw84jqbf0r8"
   },
   "stable": {
    "version": [
     3,
     20,
-    0
+    1,
+    -1,
+    1
    ],
-   "commit": "bc799d78f81115940eec953e2937245c70e3e6e4",
-   "sha256": "0qnr8dp0cc2sfhacgjws1kc3s5c1xvbcrn5pi83p0axj0kdhjdbm"
+   "commit": "7db4eca77f2b03f93632edca5825f33ab65590e7",
+   "sha256": "00nykcx2xkvsvlj92vr6gnh04mpifh5cwynnqihgnh7lrgxlm2b7"
   }
  },
  {
@@ -91083,11 +91432,11 @@
   "repo": "AmaiKinono/puni",
   "unstable": {
    "version": [
-    20220204,
-    1645
+    20220405,
+    1808
    ],
-   "commit": "e6681214afc6b5ae06e4813492633bb4ad9b2b1b",
-   "sha256": "0jqii5ijbnppayawrl27b22accpxayf5i4h15zx1s0wpb77km0s8"
+   "commit": "bb9b1e271b51b3dfae984da15f0e40f5be5b2473",
+   "sha256": "1m581adq9pp6q22n2dfazzmnlyb375ggk4f0ihpccrwccf2kzdk3"
   }
  },
  {
@@ -91145,8 +91494,8 @@
     20210109,
     244
    ],
-   "commit": "0acd1af446424ba855153161fe07a20f67dc0a89",
-   "sha256": "0rxdsmx8826az4blhnnvqrx7bjky9hwph6gkyrh33sck26xhh3g5"
+   "commit": "9c37067e611b5253a095f03245c247aa97bd7614",
+   "sha256": "03kxds61qzn5f8ffz4mdcsck8nlnp4z87h1wm4l4560qkcx2p95y"
   }
  },
  {
@@ -91577,15 +91926,15 @@
   "repo": "tumashu/pyim",
   "unstable": {
    "version": [
-    20220130,
-    722
+    20220411,
+    238
    ],
    "deps": [
     "async",
     "xr"
    ],
-   "commit": "028e443527166e8cd6ecc903e635fbe89aca9c91",
-   "sha256": "1qpskp8jqxwfbg274lkl95fmilygzxqpy2i7vv0vdl7pdknvbkgk"
+   "commit": "01d6c038b87ddf61cb60e77e7b43e398b9f780b5",
+   "sha256": "126hdpng1zi0x63l4mlc468hpfqcwpk6l4yz7x6gsdy2v6ib4zrg"
   },
   "stable": {
    "version": [
@@ -91762,17 +92111,17 @@
     20210411,
     1931
    ],
-   "commit": "556304eb1e54c67940d0f9d0497ffa368b50a22a",
-   "sha256": "0j6vwjw83wyhalwzic94pimjvjwsxyyz6mh6zsic44hc80ycnrj0"
+   "commit": "01676aea6042da07bf52a35b5bf82cc55865d13a",
+   "sha256": "183ijnn4502m4aa86d72dy5rnxj6qngszqnp5v7y70nds8f2pcid"
   },
   "stable": {
    "version": [
     2,
     13,
-    1
+    5
    ],
-   "commit": "0e1ca11ac65cbe5a65437518fca1e25f1ad0e48e",
-   "sha256": "049mfnlwan1qq0awnxriw29v285ly4d3r8a8xgxhzpwg3k2z3sdn"
+   "commit": "95cbd2bd14576cb5d9eade4798e73e8601c884de",
+   "sha256": "0kwkv2qbdr4k9ah2h09g3nrdwi7ky4k53hrqf4s3g89dcnz7s7ql"
   }
  },
  {
@@ -92110,11 +92459,11 @@
   "repo": "python-mode-devs/python-mode",
   "unstable": {
    "version": [
-    20220315,
-    1118
+    20220408,
+    1906
    ],
-   "commit": "29c6815c585c200eda2541b678e499d06c3e14d2",
-   "sha256": "1b146lq5hwr76fl1abg189xsjdvz8ggaas18n8d3yx4zvjskiqs9"
+   "commit": "ee956c6a6c5aacf3cc32479eed9f84ccc5aec7dd",
+   "sha256": "1gdff63rn5aiwxkaxr5bqgs4zda3qd84bc1bqd40wjdfmhzr41if"
   },
   "stable": {
    "version": [
@@ -92134,8 +92483,8 @@
   "repo": "wbolster/emacs-python-pytest",
   "unstable": {
    "version": [
-    20211215,
-    1101
+    20220404,
+    1635
    ],
    "deps": [
     "dash",
@@ -92143,8 +92492,8 @@
     "s",
     "transient"
    ],
-   "commit": "ea53891a219659d9339220d5db50a8c525f199af",
-   "sha256": "176c4banbgd474iw49cw17wbvncr13xwgqjsfpvvakd0awpyvzw1"
+   "commit": "08df2134393d47887a6e411d45b86e137cfcd28a",
+   "sha256": "1vw8yd0vpm53avdr9mjcs5ck4axhmkqypy32xmn4h3qzyc121cha"
   },
   "stable": {
    "version": [
@@ -92305,11 +92654,11 @@
   "repo": "psaris/q-mode",
   "unstable": {
    "version": [
-    20220123,
-    1721
+    20220306,
+    1629
    ],
-   "commit": "0bc3cdb32636278b1dc0bcc55741b147441347f6",
-   "sha256": "0dyf35fhm2wzq6p2wcgdhf81y4rs92j5np7jvrwp9ic9xzw51cx5"
+   "commit": "3eac36d23131088e32057716a3241407fa8dc041",
+   "sha256": "1wlgkyh8ci03448n5fm0p4z7jkhbrvrd3s8rbxvbdbl6ll1d9x15"
   }
  },
  {
@@ -92420,8 +92769,8 @@
   "repo": "quarto-dev/quarto-emacs",
   "unstable": {
    "version": [
-    20220306,
-    2243
+    20220405,
+    1556
    ],
    "deps": [
     "markdown-mode",
@@ -92429,8 +92778,8 @@
     "polymode",
     "request"
    ],
-   "commit": "9250975a4602d7a78efa2b0e477088aa2df5659c",
-   "sha256": "0n0cqcfmq9d36vdqa47scpny8hpdr975ykw01nf7924zacwgnjfb"
+   "commit": "2a199735866dc34126a061c6f2990378b381e687",
+   "sha256": "0bdigc8d2b9g2dgdcalf5f0a7hh56sji7k78vv23ikdydmag5bi1"
   }
  },
  {
@@ -92494,8 +92843,8 @@
     "leaf",
     "quelpa"
    ],
-   "commit": "1fb156302a4b14ee003720b7dbac5f3041345842",
-   "sha256": "18cy7kjhi6jcixnbl3vvmszrbkh04cbpkjk8ls1m6apvc0l0g9ll"
+   "commit": "82f6fa34f0b4747fe535bed56e67a66812195e97",
+   "sha256": "0xg3s0l8a1gysbmvbazwa54pp1d4wdfm66bnxkswrsfdr2zwfrwf"
   },
   "stable": {
    "version": [
@@ -92633,8 +92982,8 @@
     20210904,
     1553
    ],
-   "commit": "c680f5137c49e352ff3779f9c82a3f1bd4a2d9b6",
-   "sha256": "1jjvjdig87krjmnwlxmlal56ks0nx4pgwrb5836srkd3aqlir90b"
+   "commit": "66f44ba79ed098ae07dc7a9ef445cc8c3687a119",
+   "sha256": "06sd5hx86higqhk3jvmbpw1j3n7jmd9550h81hhkpxhk629w1nkr"
   },
   "stable": {
    "version": [
@@ -92792,11 +93141,11 @@
   "repo": "greghendershott/racket-mode",
   "unstable": {
    "version": [
-    20220325,
-    1342
+    20220406,
+    1330
    ],
-   "commit": "c1774ad168bd0857cf695ad39ae4d61cd668f6d9",
-   "sha256": "1rksxymhadsj6zikhbn68j9iq0b01m9ajdddkk4kbaczh35vwyx5"
+   "commit": "e7efbb52fdf2219532230a199153d8a33889c26f",
+   "sha256": "10d089fvbdxlkqy8hhl42ljsj89j5vzrzckw0vs0im55a8vrih9r"
   }
  },
  {
@@ -93796,20 +94145,20 @@
   "repo": "xendk/reaper",
   "unstable": {
    "version": [
-    20220211,
-    1223
+    20220413,
+    2343
    ],
-   "commit": "d073fa8d00411af58fced861b7236aaa23b0692d",
-   "sha256": "0qg81yasilwk15jpxm0177slh9byihni9kc217m44pn0fxgpnsmi"
+   "commit": "b5c03fc4c2104b1ae661327a0e72d5ce02ee5584",
+   "sha256": "17gn1nlzmflhc6hnpckdkxlm9l2m9mbfadcgm9n0i20i8gp88f76"
   },
   "stable": {
    "version": [
     1,
-    2,
-    1
+    3,
+    0
    ],
-   "commit": "d30397ffccc91b633bc0bdca9d3d1a340981009b",
-   "sha256": "0i46fkhrd14x21grqrmf9avkqxm81dsmrisndwmvkxk6jy5i6dd6"
+   "commit": "5a69cc206c8719bde897394376555bb74e77b915",
+   "sha256": "0c0a0mvhs0cx2lq3rkimxagyc33gn8ha1vb3p3py6h466lmyqbh4"
   }
  },
  {
@@ -94101,11 +94450,11 @@
   "repo": "minad/recursion-indicator",
   "unstable": {
    "version": [
-    20220224,
-    1333
+    20220403,
+    1812
    ],
-   "commit": "e9bca04318fef45badd487cda002ff9617429f6b",
-   "sha256": "0cjn61dn67vxz3495h7klszqwkjv17bmlfv01adj8d2cibc5wqi3"
+   "commit": "63d946c5cb11b81184151f1385efed325f6cac2d",
+   "sha256": "1p0m1fklflvfd78p506js2i687fxv061j8n959wiiv6avm41nccp"
   },
   "stable": {
    "version": [
@@ -94334,8 +94683,8 @@
     20210831,
     1405
    ],
-   "commit": "b57f5d480003ab7b0880e0059dcc51747fb2e088",
-   "sha256": "16ajp4p26aaswxcxpqgh43p3dk699gab1xc3l3aj7x1sjf3ag3zq"
+   "commit": "452a99b556ebf1953f92fe3e16c20d10d1fed466",
+   "sha256": "1brdpwnjl46hzlbyhkizy73p9vvfqyydi140rbmxap29y9iyzi1d"
   },
   "stable": {
    "version": [
@@ -94928,8 +95277,8 @@
     20210902,
     2140
    ],
-   "commit": "9c32dc6fcd05c72177ec1659c33f3b834233b890",
-   "sha256": "0vpxk1hmic9r1z7z2yxh1pff2m7zlvrh3j27bdcc0q3xnbzkmh7m"
+   "commit": "350d717f5c2564817179c4b6b1c615b10fd062e8",
+   "sha256": "1068ypgnlza1y8zpzpr1fayda72bxcfcy9ikmhrpkzhpvznqr2x4"
   }
  },
  {
@@ -95101,8 +95450,8 @@
     "f",
     "s"
    ],
-   "commit": "4ff5fd1660eabaccca1fdbec8bdfbe0ad84eeb6a",
-   "sha256": "18c5gg6cgxg6dijrc6ijiw0mkxfkyb6pw3dd8vzipz17pszf2bjf"
+   "commit": "e01c36223728bb5d0293a7312f047d83e4ba64ae",
+   "sha256": "1iy13vkn0lhj4hxi925vhbqh1cvcdwfc9yic5khb52qwqsb0ycyw"
   },
   "stable": {
    "version": [
@@ -95304,11 +95653,11 @@
   "repo": "ROCKTAKEY/rhq",
   "unstable": {
    "version": [
-    20220308,
-    1254
+    20220329,
+    1027
    ],
-   "commit": "9cd8c2d61c3b8d4c92542a8c7f7493f61a850dc0",
-   "sha256": "0pj9900jmlid6ygwv5r8nnz1j4axcspyk73hl2vi1xvlna93yxdr"
+   "commit": "46a3108436cc4a2c5343b010f2086088d7b9682b",
+   "sha256": "1swc4i5fb1b7khwk01n0hyz4k473mxfigihqca1b8xfi8vsa3bvy"
   },
   "stable": {
    "version": [
@@ -95916,15 +96265,15 @@
   "repo": "pezra/rspec-mode",
   "unstable": {
    "version": [
-    20220203,
-    211
+    20220401,
+    306
    ],
    "deps": [
     "cl-lib",
     "ruby-mode"
    ],
-   "commit": "4215ff1f2d1cee24a144ff08297276dc7b971c25",
-   "sha256": "11bada87rji78pw0d3l9g70vz2i1cvdlwxl4ixxcyc6whlfbff3f"
+   "commit": "a54ac64097b6ccc6acc52a8b077ceb63766fc4d1",
+   "sha256": "0s512jgd62rh0x5x24jzkmnw7hs6m1s1bcys41hr1vv27i0j2zvh"
   },
   "stable": {
    "version": [
@@ -97106,8 +97455,8 @@
     20200830,
     301
    ],
-   "commit": "e34e756d264800b701c07414ceffd9dd768cdf84",
-   "sha256": "0v6njsp1g7m0qjss4rhmbnrg8yccxyk7dy477cbpdijxw3fdi2yv"
+   "commit": "e62afcf5d524638aaf5014fbd32ff8ddeac9e29d",
+   "sha256": "1m2mraic2xkrmgs3swyjlgnwb3jxryzw1kvl317nrdd13vlnndk9"
   }
  },
  {
@@ -97575,20 +97924,20 @@
   "repo": "t-e-r-m/sculpture-themes",
   "unstable": {
    "version": [
-    20220311,
-    2122
+    20220406,
+    2330
    ],
-   "commit": "407cbed4145af8feb5232b1161a5f79b6a9878fb",
-   "sha256": "0x15fwrc53z1g517jrqyjdd8diil8sjdp9qhbhnbm2nsp97f07yk"
+   "commit": "a21871b75cc7cb575ceb43640d039307fbb412e1",
+   "sha256": "0ki45bvc93p76mxpsm5pyknqgf67xz6c122yssps1hcxhdazij5v"
   },
   "stable": {
    "version": [
     1,
-    3,
-    0
+    4,
+    3
    ],
-   "commit": "07d74b29908447ff33365c23686682066549d671",
-   "sha256": "1azfr5np6m2zg7r3ga172mls3x64gb3m57lcfzwxgb9l8pmjy3an"
+   "commit": "a21871b75cc7cb575ceb43640d039307fbb412e1",
+   "sha256": "0ki45bvc93p76mxpsm5pyknqgf67xz6c122yssps1hcxhdazij5v"
   }
  },
  {
@@ -97665,8 +98014,8 @@
     "dash",
     "f"
    ],
-   "commit": "09ae519ce825affeb6a033dac81bf7af946127ad",
-   "sha256": "1gprpjnm7r2faj53qcnch7s05s4jjrsh94hiji50kdi3lrwf2rs3"
+   "commit": "a144b16ba107f26f497b65da70b306a802b1d6d4",
+   "sha256": "0542l0pbmiap01an8nhnzvpdbscn244l66bblkfikc5f6rh6s7fy"
   },
   "stable": {
    "version": [
@@ -98111,15 +98460,15 @@
   "repo": "twlz0ne/separedit.el",
   "unstable": {
    "version": [
-    20220226,
-    1344
+    20220315,
+    1610
    ],
    "deps": [
     "dash",
     "edit-indirect"
    ],
-   "commit": "a33a04479fc1d4fa0ee618833965ce9914b9c1f4",
-   "sha256": "1llvhm9kwv67rng7zd91j5cfx34aklx64drs3hrm5nlxpjass7sm"
+   "commit": "c3c493a700a9bf8078d65b23b9ae1aad3774b8d9",
+   "sha256": "0dri9i2x62xy2zbgws719ivx9l39pjq01bxpnjzs9n69zx9il9ff"
   },
   "stable": {
    "version": [
@@ -98605,6 +98954,21 @@
   }
  },
  {
+  "ename": "shanty-themes",
+  "commit": "202aaca417d9e7a5a473fe4e448b13fa4ca3a444",
+  "sha256": "004dgk5nqrv222jvln5mpv85asxr7khif0g1sgx2qbzq859am983",
+  "fetcher": "github",
+  "repo": "qhga/shanty-themes",
+  "unstable": {
+   "version": [
+    20220405,
+    1126
+   ],
+   "commit": "55b6a2653e43187559ff8b5103bcb9dc54e68ab6",
+   "sha256": "0c11jkzalm714q0qj0rcbk946i2v4gxh73n22k7q63afqdk9sizw"
+  }
+ },
+ {
   "ename": "share2computer",
   "commit": "47647167cc7b9d7ad0a2fc4785849f69dc07d6cb",
   "sha256": "067xc1awknx9iqwd4lfj1gkni6aszzfr1179avzzfn1ggp7yzkmq",
@@ -98790,20 +99154,20 @@
   "repo": "redguardtoo/shellcop",
   "unstable": {
    "version": [
-    20211118,
-    1229
+    20220409,
+    620
    ],
-   "commit": "c97a80b58337f7ac257cace4a3fbed86f7fe8456",
-   "sha256": "0spivhcsnjjpc1x51nqy7ax57661ssq46sf7x9z1l3v8paxgaqxs"
+   "commit": "f6060cc292d0143c925252b27d5db21de03ce7f0",
+   "sha256": "0gqrmfxg1wd42pp071ax66kv9vfy88wgfp7hpvsq6ba3mrvqah4w"
   },
   "stable": {
    "version": [
     0,
     0,
-    7
+    8
    ],
-   "commit": "8213452241244b797f84e936e6ccd18b6dec3de5",
-   "sha256": "01kvxvwq1v87125arv7lpmlcbjf84pqcyyxm3lfhvzka25d5ibga"
+   "commit": "f6060cc292d0143c925252b27d5db21de03ce7f0",
+   "sha256": "0gqrmfxg1wd42pp071ax66kv9vfy88wgfp7hpvsq6ba3mrvqah4w"
   }
  },
  {
@@ -98937,8 +99301,8 @@
    "deps": [
     "reformatter"
    ],
-   "commit": "8496b0df2209cf6792c5197b924dd55807f0cffd",
-   "sha256": "1sb9zdig0ypr3c0dmm26cysc6dsij5vxf3zypqpjdh77si5asx24"
+   "commit": "ceb1ed4df3d7e198e4c5af0c2fd44c4d9d65832e",
+   "sha256": "1apaka8w4iwpa2ba652zpl5kl17ixjfnws0pnmx52yyvfj7bjv7n"
   },
   "stable": {
    "version": [
@@ -99002,11 +99366,11 @@
   "repo": "emacs-w3m/emacs-w3m",
   "unstable": {
    "version": [
-    20211029,
-    150
+    20220405,
+    124
    ],
-   "commit": "6112c6a9e13c00c2c7aecd96820a46b4800d4cda",
-   "sha256": "18c1rbcpxv289fbzl66lvyd41l1jhkia7296sksaqsgv9n79c2w6"
+   "commit": "c3a3a947fb267df1f03287be2eab4f7119707e90",
+   "sha256": "1f065v3i7n60lgdz9nzvla3n1xzcvznrg8f3kbf2ccvp5viwzi10"
   }
  },
  {
@@ -99081,8 +99445,8 @@
     20210715,
     1227
    ],
-   "commit": "ff41a9988523891de92379b611f8c00b44d4127e",
-   "sha256": "0k29xx6ym2mqcn6rszxl4p05zqfpfvhcwvc3h3cx0bf5b8pnxd3j"
+   "commit": "2a83fd87252a71391d9c17d03ff0e5b1f94ae05d",
+   "sha256": "155wfql6j6a4rsw8zr1iy13a672yi4dlg60yayk4rmlxh91dj4nw"
   },
   "stable": {
    "version": [
@@ -99942,11 +100306,11 @@
   "repo": "dawranliou/sketch-themes",
   "unstable": {
    "version": [
-    20211209,
-    1708
+    20220404,
+    1741
    ],
-   "commit": "f0425fb8d2c78a414c653d7bd1b3bf4d282afa1a",
-   "sha256": "0vfq8yhskprhj80wag7r82vzlgf8avj1v612yxi510c2wjrnygzq"
+   "commit": "8a609ec8fbf12231ba67aab9fcbb6b3ad0420359",
+   "sha256": "1mfy1vzdsli5qrdbbpm0bkhmvq8qp0692za5ykp7fbq9sxmqd65c"
   },
   "stable": {
    "version": [
@@ -101174,14 +101538,14 @@
   "repo": "zzkt/smog",
   "unstable": {
    "version": [
-    20200211,
-    528
+    20220405,
+    251
    ],
    "deps": [
     "org"
    ],
-   "commit": "531957d7356f623b026aa45923e536421f682c1a",
-   "sha256": "0rb8vjnkn9pp0lrmmvsfslmw7xya4n18s82vs98545phwc4bjga5"
+   "commit": "28b053198ff9c1b142789614d85d7d762d9b0fa3",
+   "sha256": "0hqmpgvggsrq2dj0zxy3675dvf6wbw7kyhv72wjqb2ldx35j52pq"
   }
  },
  {
@@ -101409,15 +101773,15 @@
   "repo": "SpringHan/sniem",
   "unstable": {
    "version": [
-    20220210,
-    1654
+    20220404,
+    307
    ],
    "deps": [
     "dash",
     "s"
    ],
-   "commit": "5824a3c33ee51acc1d3cba36ef6892ebb3a8df1c",
-   "sha256": "0svjaid3x3l7c59g7ckpgsnmgh7j118rakmfs0qhjh5xla60bglm"
+   "commit": "afe4286dec79ef45a42a343033f69d90dd308535",
+   "sha256": "1nq1w4vxcb1sv0gbdfrmjxjk07vailjrigk6yhjms65ansy7qfsq"
   }
  },
  {
@@ -101762,16 +102126,16 @@
   "repo": "artenator/somafm.el",
   "unstable": {
    "version": [
-    20200224,
-    48
+    20220402,
+    2131
    ],
    "deps": [
     "cl-lib",
     "dash",
     "request"
    ],
-   "commit": "918e7c876f26f74ab21b585de2607819e9e74c08",
-   "sha256": "1a2bsz5b9mz5wxj5bf4k79ddjln987k8s2d12q8fifq5pnj1gp26"
+   "commit": "90b661fb1abc652feb6508eb61735919d02e9687",
+   "sha256": "0n8y8aj42j646vfjarl6w1dxn7wxqx3w6vjwbm8wj4i8nm17a77z"
   }
  },
  {
@@ -101940,8 +102304,8 @@
     "cl-lib",
     "deferred"
    ],
-   "commit": "323a364d2c220873f935ad46142c05c4fd1dea1d",
-   "sha256": "1dsb6j2kli0a0y06yn7gj5c72f6qz9fpwqhnvh9glcbqf6vv068r"
+   "commit": "d9f499f960eab07fbb56f3513a2992f69df7ab44",
+   "sha256": "1cj0vclk82j2llg9zrlj4p735k5cna9fcvin2hlak1raqjdx5riw"
   },
   "stable": {
    "version": [
@@ -102327,11 +102691,11 @@
   "repo": "condy0919/spdx.el",
   "unstable": {
    "version": [
-    20220325,
-    106
+    20220327,
+    113
    ],
-   "commit": "914df7fa483825d813e7aaeb9dffce629aae2a52",
-   "sha256": "0ccw0wmc5kx9x31x0ycw74ngh6zdkjqm10my9ypfc97rfv2q6bh1"
+   "commit": "279caa7aa99e7b5d6f2f9307b20e9fcb730ffb29",
+   "sha256": "1ilkyi7j1nj9g6xdvq8y85wk34qhb7zan5a1ds1q3nbmdzgxgmwj"
   }
  },
  {
@@ -102895,8 +103259,8 @@
    "deps": [
     "reformatter"
    ],
-   "commit": "0351dad6bec06a381484c0c95309d46a7a8acdb4",
-   "sha256": "0hra8lrg4fkqr6x6cq9mbqx8y7fkbccgzxmqfngy8cj2dbcvp9k9"
+   "commit": "5d3f776c7eaac0c353ad184b54ef17b2ebc58015",
+   "sha256": "1k7rfdm9vd21lfa2h967423swq6w9yp2h4al481yl774cbssdc1y"
   },
   "stable": {
    "version": [
@@ -102941,11 +103305,19 @@
   "repo": "pekingduck/emacs-sqlite3-api",
   "unstable": {
    "version": [
-    20220202,
-    728
+    20220327,
+    521
+   ],
+   "commit": "7cb4b660fe30deb8a4229f3abb18bd99ca9c971c",
+   "sha256": "1b7if1dp6i5kqwhq25gna89xbca66i4mmgx1a5yn12kncfdgs6d7"
+  },
+  "stable": {
+   "version": [
+    0,
+    15
    ],
-   "commit": "88dfeae8f9612cb3564a7393aa8a5c867aacbaf8",
-   "sha256": "0sj1fsgcgfzz6dfpmp8r5gmdwpbdzpk5g5lm8j7c3nqj6wqgg7g6"
+   "commit": "7cb4b660fe30deb8a4229f3abb18bd99ca9c971c",
+   "sha256": "1b7if1dp6i5kqwhq25gna89xbca66i4mmgx1a5yn12kncfdgs6d7"
   }
  },
  {
@@ -103041,11 +103413,11 @@
   "repo": "srfi-explorations/emacs-srfi",
   "unstable": {
    "version": [
-    20220321,
-    2152
+    20220406,
+    1831
    ],
-   "commit": "5efe17755c04dedb62033c1c53eda3c28c3a5f65",
-   "sha256": "0yxjzp1wxyggjk15d84b0399z5d5xspphdsy4m8r52aqcfxaqnd6"
+   "commit": "dbcdc58d3ea9e0767b24bb0f05fc8de8849889fe",
+   "sha256": "1a7s7p3lq5gvgkw9ldzgg8nvjap4j6szdk0gw5njq02jccfzc7ll"
   },
   "stable": {
    "version": [
@@ -103196,14 +103568,14 @@
   "repo": "death/ssh-tunnels",
   "unstable": {
    "version": [
-    20190622,
-    931
+    20220410,
+    1424
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "d32e2072f50bcbde787196abb5862735837dc8be",
-   "sha256": "1i0wmdv0pglsz1pbhfjrpr1q6sxh1q74s41vnjxk5r2q8p1fh69n"
+   "commit": "a74488a71c2827dcaf42d9381d0d974aca96e27f",
+   "sha256": "0lrfrzxwjrhj90ampkg92pcpblb4i7744kwx2sl6ivkp7ldklyfn"
   }
  },
  {
@@ -103337,11 +103709,11 @@
   "repo": "SFTtech/starlit-emacs",
   "unstable": {
    "version": [
-    20220325,
-    1418
+    20220412,
+    1312
    ],
-   "commit": "9a76710497482110f5cba6e86aea66d94f5dbb50",
-   "sha256": "16nswflx3ccqkc64ijy4wvq0qqikijqh5dvj0j2ylf8bydnv4xqb"
+   "commit": "ba7f57db3988075394d6ccec97f0dcb35ebb089d",
+   "sha256": "19vlv75ycsr89wi4fhh5fsw0q37dw32hyhbznbbc83dpahmxda8n"
   }
  },
  {
@@ -103534,11 +103906,11 @@
   "repo": "motform/stimmung-themes",
   "unstable": {
    "version": [
-    20220326,
-    1241
+    20220412,
+    1434
    ],
-   "commit": "659d5814c5f9b21b159778ffab30aa9d8fb2cb96",
-   "sha256": "0skvns8x15cffwmv904sfgqz5rh4kv84aflwk547p7j1fcz8pja2"
+   "commit": "77146bd3ad4f275847c965148572bb0ff0b54c1e",
+   "sha256": "1xmak2mcqvjvckip2hp6gx63nn6k59la4sk8a8rprissd7mj0mkg"
   }
  },
  {
@@ -103568,14 +103940,28 @@
   "repo": "beacoder/stock-tracker",
   "unstable": {
    "version": [
-    20200228,
-    542
+    20220414,
+    131
+   ],
+   "deps": [
+    "async",
+    "dash"
+   ],
+   "commit": "6ad9c9d39569d89753b2a54ccb5e8636e04c016e",
+   "sha256": "1lsmgrlx5izw565af06ixnrr6j2gpyw09flp26qhvgb1xfgrkmhk"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    2
    ],
    "deps": [
+    "async",
     "dash"
    ],
-   "commit": "32ae436a4cad49fea5038cc3e8eb638a3a83dd6c",
-   "sha256": "0dmjvgkhd445azs6vrj8lzcfmnm3h4prajr0c416s2ircrzpgnd9"
+   "commit": "971382eff7c291e4c247aa9b8b846281be324d7a",
+   "sha256": "0bpjc7dgylv0fra5dskjq0kx4naz62aafsyd9wcvs01sfkafymva"
   }
  },
  {
@@ -103995,14 +104381,14 @@
   "url": "https://git.sr.ht/~amk/subsonic.el",
   "unstable": {
    "version": [
-    20211231,
-    1449
+    20220403,
+    1208
    ],
    "deps": [
     "transient"
    ],
-   "commit": "992bce5fe3c2322101610d53d08a89ec3bb8fc43",
-   "sha256": "0vd003r0f7n5pp1xw6lvg2cvyz1mr5w42v35y67028cyjdlv1mxd"
+   "commit": "e9acece0f840bc6ea096ae56e77573939a2c510c",
+   "sha256": "0pynzc34bzppdfl1bxkhb0r7z4c0kd1bil5vblnyn4gnjx00jb94"
   },
   "stable": {
    "version": [
@@ -104354,8 +104740,8 @@
    "deps": [
     "svg-lib"
    ],
-   "commit": "fee61c6a0b0570bd24fd335efef17c7385297aa0",
-   "sha256": "1lyizbmh5f6dq5jaymri219k8i5ww7yi1pzncha03qskg8r0qncl"
+   "commit": "07640c97a1dcc305010a384fffdaa7788c342da7",
+   "sha256": "0f5p07li2nr65jil57b52qiryp8b5blzcnymx05cc4pm4m539aff"
   }
  },
  {
@@ -104525,16 +104911,16 @@
   "repo": "danielmartin/swift-helpful",
   "unstable": {
    "version": [
-    20210801,
-    2036
+    20220402,
+    1433
    ],
    "deps": [
     "dash",
     "lsp-mode",
     "swift-mode"
    ],
-   "commit": "75f2fc6bd4530a230946ae7cc9eaf67a36fa3ee4",
-   "sha256": "0z6prh1xrc8ddq57kas6kvp6n4pia25aps5pg3aq78cwfchzzrk0"
+   "commit": "fe5c4a97fabbc89bd4761cfe4f8f8ce6f6d89703",
+   "sha256": "1wjb0cdxz9wkbz1xj062z67i8vjkyfl86206px8xvfx6dgbnikd0"
   },
   "stable": {
    "version": [
@@ -104648,8 +105034,8 @@
    "deps": [
     "ivy"
    ],
-   "commit": "c97ea72285f2428ed61b519269274d27f2b695f9",
-   "sha256": "05ivdsq6l6ixdn5p0rjh7mcgw19fm38m137xb8yi2c9gii6yk6g2"
+   "commit": "7489968257a74f176c0d1de7ec8bd1e2011f0db4",
+   "sha256": "0gmgfv9d5vicd5lqcbzn0i6qfjw42whhww6hdqch2pgkhl4i1ria"
   },
   "stable": {
    "version": [
@@ -105276,11 +105662,11 @@
   "repo": "jabranham/system-packages",
   "unstable": {
    "version": [
-    20210103,
-    8
+    20220409,
+    1023
    ],
-   "commit": "05add2fe051846e2ecb3c23ef22c41ecc59a1f36",
-   "sha256": "0n4qr5qqy6hbc1hg4wi1d2ckdl870v5mf9xhv5m9vrlwaphvnnjr"
+   "commit": "c087d2c6e598f85fc2760324dce20104ea442fa3",
+   "sha256": "00idwy8jzvkgs8qzafiy6s344rgms452n8mxbjg6yszwp3y3hmq1"
   },
   "stable": {
    "version": [
@@ -105542,6 +105928,24 @@
   }
  },
  {
+  "ename": "tabspaces",
+  "commit": "d0adcadc4cf81da6e1a7ec7c65ba510ff2f8f45c",
+  "sha256": "0aq9vqs5ixp78ppagzgw1jcjbvfafj6gz4a8jd438l7cd6ngsq6a",
+  "fetcher": "github",
+  "repo": "mclear-tools/tabspaces",
+  "unstable": {
+   "version": [
+    20220403,
+    2030
+   ],
+   "deps": [
+    "project"
+   ],
+   "commit": "04af3a2e31d300d58eeb2b13458edd9b283241db",
+   "sha256": "13whrvgxrkmllsn6kc608i33q8gj40k00isypnc24pvwc084izn5"
+  }
+ },
+ {
   "ename": "tabula-rasa",
   "commit": "e79d0cf9ea9ce714e784373385132c15ae1ca2f1",
   "sha256": "0ggmb328hkq415az085zxzk68s6dh2lzrm2cdn7k61yj7889cj6m",
@@ -105659,11 +106063,11 @@
   "repo": "11111000000/tao-theme-emacs",
   "unstable": {
    "version": [
-    20211221,
-    1443
+    20220414,
+    354
    ],
-   "commit": "891338eba148d8f0e80102323d18ce8e9eda30d4",
-   "sha256": "1sdj6n2ma004m6b88nrd3mri4vyciyac4zbd1ivqc6mgwj5b7vhy"
+   "commit": "d6fe980783e22df310df1ae51ac249c28c83ac53",
+   "sha256": "0pi1rbz6fdqy7l39ymqa509n8f16lfgwv9b9995g29xp0sil35hm"
   },
   "stable": {
    "version": [
@@ -105683,11 +106087,11 @@
   "repo": "saf-dmitry/taskpaper-mode",
   "unstable": {
    "version": [
-    20220117,
-    2118
+    20220410,
+    1953
    ],
-   "commit": "f4fd155f48c24393a42bb7e04f71161e6da6b284",
-   "sha256": "1bxlaz84fc5yw2ca2m2va8cjspfa142r1ba9wwsnnlnw7ma8fs3l"
+   "commit": "15c81940078207e43cb6930abeea1e9c47fefc52",
+   "sha256": "1ikkz6shhhbvfww75sx8vlmrcaz8fyc3kxck5gl46696wg9arhrh"
   },
   "stable": {
    "version": [
@@ -105995,11 +106399,11 @@
   "repo": "minad/tempel",
   "unstable": {
    "version": [
-    20220310,
-    2211
+    20220413,
+    2112
    ],
-   "commit": "56ee3bf1462efeb40caf7008ac93a3ea25866453",
-   "sha256": "1rd2w6j8yrv1d7fcxj39lgqdms2r6wsm4szqcd3fya216cmblyqd"
+   "commit": "d915e56b3c5cee3388a9e60334447a1b2ab3e2d4",
+   "sha256": "14w59kyx5z2wi42qfx59zy6zl3glqvc9y9wxj80dvvcg5dnfmgn0"
   },
   "stable": {
    "version": [
@@ -106689,11 +107093,11 @@
   "repo": "Dspil/text-categories",
   "unstable": {
    "version": [
-    20220310,
-    1053
+    20220411,
+    2150
    ],
-   "commit": "f046a0e3da5283fdf3046b2f4cf3689a520ae552",
-   "sha256": "0amx3wa5vr913vvvz7vlyajvg8d5nagjfnc9gmi842nzqcm2699j"
+   "commit": "44cf654a4da7907fb53c8783f1eefa69fce00b43",
+   "sha256": "1y66cibv191qvqj89jnb63iygwk0az1cgqws5d3vnfnj5lh63lz7"
   }
  },
  {
@@ -106757,6 +107161,29 @@
   }
  },
  {
+  "ename": "textsize",
+  "commit": "103d9c9206ee686dbee5fdf55f28a697d114609d",
+  "sha256": "1871cidjp98ihq5nnjzda45igz4ykiqhzi45zsmsmih9hlnxv1wv",
+  "fetcher": "github",
+  "repo": "WJCFerguson/textsize",
+  "unstable": {
+   "version": [
+    20220323,
+    1330
+   ],
+   "commit": "6d20632d2b3467144babe01e55275b699219f171",
+   "sha256": "11rg08waziii410g9d1lkyhmpnp0dw5r2bsw5l3x80f4n5c1k0a0"
+  },
+  "stable": {
+   "version": [
+    2,
+    0
+   ],
+   "commit": "c4ce18bc57f3d3171920bd79e0221509e15894ca",
+   "sha256": "0s00kbgkyw422jil5avzlrpjj77m3l50qr9gba4li375szxp301c"
+  }
+ },
+ {
   "ename": "textx-mode",
   "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
   "sha256": "0004z2ym3rmbqr42ysziqja7y5fl2fnmhbsqclk0mvr247gmb4vf",
@@ -106821,11 +107248,11 @@
   "repo": "monkeyjunglejuice/matrix-emacs-theme",
   "unstable": {
    "version": [
-    20220115,
+    20220331,
     632
    ],
-   "commit": "70edeba78da844bfbcbcaa24abd5c8983a9df0d7",
-   "sha256": "17w40rz4wd7c6w893ksasrsw203jna4n9jsnpymssdmjdf7sbwxk"
+   "commit": "00f3e6ffda899ddd0ac2366753d6e810dbdf7bbb",
+   "sha256": "06r8nxsx4k6pa46dv7w9chwh1f8s545rpl4m2ipbyfmppyvarf4x"
   }
  },
  {
@@ -107018,18 +107445,18 @@
     20200212,
     1903
    ],
-   "commit": "9cdad0dbf6fdc6078b3c04c3941fd4e87fe40d2c",
-   "sha256": "1irfw968wsryry9sf9bs3n1854wa6m2xprb2pkk7wgj0z1701mx8"
+   "commit": "324f6a7e36232aedd8151ed9014ce5c3c45264c5",
+   "sha256": "0mv8sqwslmpsvc5y72dykv7xyqhc7wlmv2d2wi85nfnnvcnadlbd"
   },
   "stable": {
    "version": [
     2022,
-    3,
-    21,
+    4,
+    11,
     0
    ],
-   "commit": "5e4ce0994de546bc7e17a0ba588518cabd01f303",
-   "sha256": "1fj5zgpwvw6ybs72f09r3zf72glwjg4930mggwpl3ki1fql81g6w"
+   "commit": "a16ba4dfe78d98335c6d1990c13ee8c89cf970f1",
+   "sha256": "0nrgk6xa3r2gvak0zqlmhzqjz1b03kkrxc24qk9xqbg1c4sqnaiv"
   }
  },
  {
@@ -107565,16 +107992,16 @@
   "repo": "abrochard/emacs-todoist",
   "unstable": {
    "version": [
-    20220318,
-    2120
+    20220412,
+    2337
    ],
    "deps": [
     "dash",
     "org",
     "transient"
    ],
-   "commit": "383d139a4627f4199cdda99f08551ed3237595a2",
-   "sha256": "1wvf1mq0j7bnjswssvnn2b4vqfxd19hw15v2ch6c7zai0jrqylzh"
+   "commit": "f6906be346073f082a6d1f9ae14932ec2bfd99f5",
+   "sha256": "0iwsic69cffwiy63dhxmypy89zvadrr82pjcn228ipdnimkgd11p"
   }
  },
  {
@@ -107696,11 +108123,40 @@
   "repo": "topikettunen/tok-theme",
   "unstable": {
    "version": [
-    20220222,
-    1140
+    20220411,
+    655
+   ],
+   "commit": "f8ec6b3e301d511649ce84b36067c8eab7038c72",
+   "sha256": "08lssap3c9dsy1w66mhbyam9f2rhdmb2dw25fzzgy1ziqg1mn0rv"
+  }
+ },
+ {
+  "ename": "tokei",
+  "commit": "6d4fb56833636a71c6fedc352c4fd1bf84600637",
+  "sha256": "1qhwblza7w2yd0y2wll4m5hfy08xmgpg4pqi35k2l9fkzz9mj5dg",
+  "fetcher": "github",
+  "repo": "nagy/tokei.el",
+  "unstable": {
+   "version": [
+    20220413,
+    1836
+   ],
+   "deps": [
+    "magit-section"
+   ],
+   "commit": "c6e1f333283c6c3f366141ba32dcd57252f6947e",
+   "sha256": "0jzfhxpkv4syl1wxfyxzkjhkr5h9j8562xwafr2vai2vc6y9p94y"
+  },
+  "stable": {
+   "version": [
+    0,
+    1
+   ],
+   "deps": [
+    "magit-section"
    ],
-   "commit": "b21fe53b70fa2936b052b9db8e2d4704ac40d9f6",
-   "sha256": "08si1qbdcy36h08256a9fgybifbx3bghx3z9l6j6j1kyz6s1w6gy"
+   "commit": "3308412efdf72bc9d5a64250678e0c0c0e0f8511",
+   "sha256": "02w0v1lpj02xv9c3yhqlnd3fbadnqfz72gy2sck784pkv09zkfg1"
   }
  },
  {
@@ -107801,20 +108257,20 @@
   "repo": "trevorpogue/topspace",
   "unstable": {
    "version": [
-    20220323,
-    2050
+    20220413,
+    630
    ],
-   "commit": "1daae45343622c65fdfc9abe456020fd17e9168d",
-   "sha256": "1gwv7r6xaxkpnd7nyyj1v6xh4pd8lrnh3crlbf2d1sz49c5rf1zd"
+   "commit": "cb9dbf5c0f7a7d7c60daeed8f00c20e750f5ffec",
+   "sha256": "1zbsj1vakh0k646hbmlg10gmh7yg6jddagpg55j9w3pzzwm31psi"
   },
   "stable": {
    "version": [
     0,
-    1,
-    2
+    2,
+    0
    ],
-   "commit": "270b4ace5151f38ee5145689437d2b7a2d52cd96",
-   "sha256": "1mj5fd7kqmaz7qdx8rdqlri4999np8fd492hgpwli98zr6ha8spc"
+   "commit": "edb0d582ae70549ad37b80c7ef22ae434feed3f2",
+   "sha256": "1mhp5wqwwhcn2crq277nj4bxl3nfn1l2gfbf6sirjksgs1zmrmkm"
   }
  },
  {
@@ -108142,17 +108598,17 @@
  },
  {
   "ename": "tramp-term",
-  "commit": "5c84660c641f0bdf3cca8ad2a0f8f6e5d18b59c3",
-  "sha256": "1vbdwj8q66j6h5ijqzxhyaqf8wf9rbs03x8ppfijxl5qd2bhc1dy",
+  "commit": "2a828684033d39d34639aeecac83a50f8d0a3385",
+  "sha256": "1lns8krf78nix805n2as9bqzw6ks4l0i0ws7i3p24y4lzk57sqhp",
   "fetcher": "github",
-  "repo": "randymorris/tramp-term.el",
+  "repo": "cuspymd/tramp-term.el",
   "unstable": {
    "version": [
-    20190628,
-    1207
+    20220412,
+    1546
    ],
-   "commit": "fdc3d5a29ca9549db462cd66d8f5d97026a1200f",
-   "sha256": "1xznm3q2d4xffynqb1bkpcif8jr6mpkrir4hc7gmi4q987j2lpdr"
+   "commit": "e2e5375a444d4eb5d144bef12e066c02befd1352",
+   "sha256": "1jdjf2m4kdq13ipx1mn57bj28n2wfnjd89xvxbw3cn4im61j7iyw"
   }
  },
  {
@@ -108181,11 +108637,11 @@
   "repo": "magit/transient",
   "unstable": {
    "version": [
-    20220325,
-    1619
+    20220413,
+    2332
    ],
-   "commit": "270eff1c7cc910dfe9882e97df608627028eaa40",
-   "sha256": "197j1jih73vjd3awycbiyfkj1fxmizaqs8h3id0kd1gyyjq4anck"
+   "commit": "19cf9bef5d5c70fdd636ea021a0d26f0104a473d",
+   "sha256": "044x5h4hzwk6d3npcqi3v0w58glgb9bx153pwvpy1i4aml7vg26x"
   },
   "stable": {
    "version": [
@@ -108235,6 +108691,30 @@
   }
  },
  {
+  "ename": "translate-mode",
+  "commit": "4fe526726c4ba96b75971b3b1f97cf0f17e488f0",
+  "sha256": "08zd2xw72bjx7jkcrdw4ha87d0hzf5kzs01wm8hns3g9lar30xza",
+  "fetcher": "github",
+  "repo": "rayw000/translate-mode",
+  "unstable": {
+   "version": [
+    20220402,
+    853
+   ],
+   "commit": "fb73b3d928a8011a21402e2c14aa4aab56bd05ae",
+   "sha256": "1a01kvkpr0d2c7llj5hawwampz45ysv55gzvdvdldc0yc9qhvhyl"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    2
+   ],
+   "commit": "fb73b3d928a8011a21402e2c14aa4aab56bd05ae",
+   "sha256": "1a01kvkpr0d2c7llj5hawwampz45ysv55gzvdvdldc0yc9qhvhyl"
+  }
+ },
+ {
   "ename": "transmission",
   "commit": "9ed7e414687c0bd82b140a1bd8044084d094d18f",
   "sha256": "0w0hlr4y4xpcrpvclqqqasggkgrwnzrdib51mhkh3f3mqyiw8gs9",
@@ -108314,8 +108794,8 @@
     20200910,
     1636
    ],
-   "commit": "8cf1c0d52509fa789870b300f2a7b3564e021104",
-   "sha256": "0kq5piwrby9xdx4xmqm63nsbg597xa46lzh4v59irkf89irsay49"
+   "commit": "e3721ed8bd1ac985c497eb718112906a2534bdbc",
+   "sha256": "10nklm1r8sqxwbdbs6qv2fqg5ga4n7wqcf2mrs8rps6gm2pa8vsq"
   },
   "stable": {
    "version": [
@@ -108395,14 +108875,14 @@
   "url": "https://git.sr.ht/~tarsius/tray",
   "unstable": {
    "version": [
-    20210214,
-    1119
+    20220402,
+    1640
    ],
    "deps": [
     "transient"
    ],
-   "commit": "e2b169daae9d1d6f7e9fc32365247027fb4e87ba",
-   "sha256": "1wrip00q6lbpllhaz0c7llnm774dq2mizr39ynfssvsdci38z1lm"
+   "commit": "5bd96ecb464844749712e5fa786e2e5258b1885d",
+   "sha256": "1g8nh86afj75na9bzlam28ng0nafvwc2alxpwx6snc9xm8px0cl4"
   },
   "stable": {
    "version": [
@@ -108425,8 +108905,8 @@
   "repo": "ethan-leba/tree-edit",
   "unstable": {
    "version": [
-    20220319,
-    1652
+    20220407,
+    1629
    ],
    "deps": [
     "dash",
@@ -108436,8 +108916,8 @@
     "tree-sitter-langs",
     "tsc"
    ],
-   "commit": "63816d614e6e2112c2f26e65afd7440f022ba2ad",
-   "sha256": "1c0s9hsm5wisikgxzskmnkin0r2vs9yc5yhgkjrsrvaiiv05g9ip"
+   "commit": "774a1e9598617f334fcd31aa606c5e738012fb60",
+   "sha256": "1bc51pmrr37yf116vmw436y2gidr5410ya2vlylrh3scssyd6zgw"
   }
  },
  {
@@ -108493,15 +108973,15 @@
   "url": "https://codeberg.org/FelipeLema/tree-sitter-indent.el.git",
   "unstable": {
    "version": [
-    20220305,
-    1919
+    20220411,
+    1439
    ],
    "deps": [
     "seq",
     "tree-sitter"
    ],
-   "commit": "785b8cb8ab17bffec958e421260746e16b438727",
-   "sha256": "03c7lbig8rflny20v85w7bpla2x9653dk4azjifcs0m0vpjjghma"
+   "commit": "4ef246db3e4ff99f672fe5e4b416c890f885c09e",
+   "sha256": "0hs8fiwa5idhfxiskdp9k37ciqy32ll08fmf50y3bvrh6512dd66"
   },
   "stable": {
    "version": [
@@ -108524,26 +109004,26 @@
   "repo": "emacs-tree-sitter/tree-sitter-langs",
   "unstable": {
    "version": [
-    20220319,
-    356
+    20220328,
+    1344
    ],
    "deps": [
     "tree-sitter"
    ],
-   "commit": "f4effc81fcac3592bce7072619a0e17043412cf4",
-   "sha256": "01bzlhnz7n781gp9d48973gxkcc95rscjs0c24am73505srl38jz"
+   "commit": "0dd5e56e2f5646aa51ed0fc9eb869a8f7090228a",
+   "sha256": "0jyzpiyl3b88vwfzkda7ak77kl0b2nybvsz0j9cndl3pf95d62g0"
   },
   "stable": {
    "version": [
     0,
     11,
-    4
+    6
    ],
    "deps": [
     "tree-sitter"
    ],
-   "commit": "f4effc81fcac3592bce7072619a0e17043412cf4",
-   "sha256": "01bzlhnz7n781gp9d48973gxkcc95rscjs0c24am73505srl38jz"
+   "commit": "0dd5e56e2f5646aa51ed0fc9eb869a8f7090228a",
+   "sha256": "0jyzpiyl3b88vwfzkda7ak77kl0b2nybvsz0j9cndl3pf95d62g0"
   }
  },
  {
@@ -108590,8 +109070,8 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20220216,
-    1950
+    20220411,
+    1944
    ],
    "deps": [
     "ace-window",
@@ -108603,8 +109083,8 @@
     "pfuture",
     "s"
    ],
-   "commit": "b18a05b1f62074a40e6011d83cd4c92cbee040dd",
-   "sha256": "0975n5d1rl9dqi9qwsg724cjxl753rw30xxngg7qs6338mp77c1y"
+   "commit": "6e206216cec383d47acec872a0c8ef6e70b7746b",
+   "sha256": "1ahk3ijhs6qgxqwz0v0zx1x8pz1x7l2902m8n2548npqa868gxrh"
   },
   "stable": {
    "version": [
@@ -108641,8 +109121,8 @@
     "all-the-icons",
     "treemacs"
    ],
-   "commit": "b18a05b1f62074a40e6011d83cd4c92cbee040dd",
-   "sha256": "0975n5d1rl9dqi9qwsg724cjxl753rw30xxngg7qs6338mp77c1y"
+   "commit": "6e206216cec383d47acec872a0c8ef6e70b7746b",
+   "sha256": "1ahk3ijhs6qgxqwz0v0zx1x8pz1x7l2902m8n2548npqa868gxrh"
   },
   "stable": {
    "version": [
@@ -108673,8 +109153,8 @@
     "evil",
     "treemacs"
    ],
-   "commit": "b18a05b1f62074a40e6011d83cd4c92cbee040dd",
-   "sha256": "0975n5d1rl9dqi9qwsg724cjxl753rw30xxngg7qs6338mp77c1y"
+   "commit": "6e206216cec383d47acec872a0c8ef6e70b7746b",
+   "sha256": "1ahk3ijhs6qgxqwz0v0zx1x8pz1x7l2902m8n2548npqa868gxrh"
   },
   "stable": {
    "version": [
@@ -108704,8 +109184,8 @@
    "deps": [
     "treemacs"
    ],
-   "commit": "b18a05b1f62074a40e6011d83cd4c92cbee040dd",
-   "sha256": "0975n5d1rl9dqi9qwsg724cjxl753rw30xxngg7qs6338mp77c1y"
+   "commit": "6e206216cec383d47acec872a0c8ef6e70b7746b",
+   "sha256": "1ahk3ijhs6qgxqwz0v0zx1x8pz1x7l2902m8n2548npqa868gxrh"
   },
   "stable": {
    "version": [
@@ -108736,8 +109216,8 @@
     "pfuture",
     "treemacs"
    ],
-   "commit": "b18a05b1f62074a40e6011d83cd4c92cbee040dd",
-   "sha256": "0975n5d1rl9dqi9qwsg724cjxl753rw30xxngg7qs6338mp77c1y"
+   "commit": "6e206216cec383d47acec872a0c8ef6e70b7746b",
+   "sha256": "1ahk3ijhs6qgxqwz0v0zx1x8pz1x7l2902m8n2548npqa868gxrh"
   },
   "stable": {
    "version": [
@@ -108770,8 +109250,8 @@
     "persp-mode",
     "treemacs"
    ],
-   "commit": "b18a05b1f62074a40e6011d83cd4c92cbee040dd",
-   "sha256": "0975n5d1rl9dqi9qwsg724cjxl753rw30xxngg7qs6338mp77c1y"
+   "commit": "6e206216cec383d47acec872a0c8ef6e70b7746b",
+   "sha256": "1ahk3ijhs6qgxqwz0v0zx1x8pz1x7l2902m8n2548npqa868gxrh"
   },
   "stable": {
    "version": [
@@ -108804,8 +109284,8 @@
     "perspective",
     "treemacs"
    ],
-   "commit": "b18a05b1f62074a40e6011d83cd4c92cbee040dd",
-   "sha256": "0975n5d1rl9dqi9qwsg724cjxl753rw30xxngg7qs6338mp77c1y"
+   "commit": "6e206216cec383d47acec872a0c8ef6e70b7746b",
+   "sha256": "1ahk3ijhs6qgxqwz0v0zx1x8pz1x7l2902m8n2548npqa868gxrh"
   },
   "stable": {
    "version": [
@@ -108837,8 +109317,8 @@
     "projectile",
     "treemacs"
    ],
-   "commit": "b18a05b1f62074a40e6011d83cd4c92cbee040dd",
-   "sha256": "0975n5d1rl9dqi9qwsg724cjxl753rw30xxngg7qs6338mp77c1y"
+   "commit": "6e206216cec383d47acec872a0c8ef6e70b7746b",
+   "sha256": "1ahk3ijhs6qgxqwz0v0zx1x8pz1x7l2902m8n2548npqa868gxrh"
   },
   "stable": {
    "version": [
@@ -108869,8 +109349,8 @@
     "dash",
     "treemacs"
    ],
-   "commit": "b18a05b1f62074a40e6011d83cd4c92cbee040dd",
-   "sha256": "0975n5d1rl9dqi9qwsg724cjxl753rw30xxngg7qs6338mp77c1y"
+   "commit": "6e206216cec383d47acec872a0c8ef6e70b7746b",
+   "sha256": "1ahk3ijhs6qgxqwz0v0zx1x8pz1x7l2902m8n2548npqa868gxrh"
   }
  },
  {
@@ -109882,8 +110362,8 @@
     20200719,
     618
    ],
-   "commit": "b9069b8af1bfa360d3b7197a7101fe0233c92750",
-   "sha256": "05873v76z7f7jrhkc78bmkgmqjvbidyaf1dymcccc8cgsc7bixp1"
+   "commit": "e0edb861ea256e28faaa7d447ca8f16b144d410d",
+   "sha256": "0b0swqhd5k7i4fk02gxyr1knxjnc8iq1rx9i87iwbha95r0zpm1d"
   },
   "stable": {
    "version": [
@@ -109926,11 +110406,11 @@
   "repo": "ideasman42/emacs-undo-fu",
   "unstable": {
    "version": [
-    20220211,
-    548
+    20220412,
+    2337
    ],
-   "commit": "e81c8da4416b15cac9d5ac7574e11471417a65ca",
-   "sha256": "1f25h3rx09ci56gkpypsscp8bkqmj7fr2yfniki0y92czix9x70s"
+   "commit": "f9c39c248cb965cd3c7cb3c8e15a4eee71921f8c",
+   "sha256": "071k1fnhk102psqg7myj25aqdd61wpvd4zhv4k4p2hlx4d6a2wi6"
   }
  },
  {
@@ -109941,11 +110421,11 @@
   "repo": "ideasman42/emacs-undo-fu-session",
   "unstable": {
    "version": [
-    20220326,
-    622
+    20220412,
+    1212
    ],
-   "commit": "7bbc89a42f6bb4abcd4513488bd45784cf4041e4",
-   "sha256": "1is1ywsr78k9fil44psb8hqhm8b2a8hmv1pf6a8h04hwv3svpf3q"
+   "commit": "d2a5ca1299d35f88419e94bf941d6347ce140f2e",
+   "sha256": "0qwvql0vdir0yv78gk3yzpqasm53bylpdjm5cm6i5sxh41865d12"
   }
  },
  {
@@ -110004,8 +110484,8 @@
     20210106,
     220
    ],
-   "commit": "3bd4c8d3df15fb54a79f97e26177819fc0ebf877",
-   "sha256": "1dwy1pcvsqdxi7zrfgh3k9g2h9dnc3yyaqabmin5h3abs6mivb7v"
+   "commit": "cd354ea1a74338760ac6f5872d573e3ecb6b4bd2",
+   "sha256": "1yi0lhsg84dvy2jp8dq2g09419fw6h6dipbxapfvzdklr4svgm3c"
   },
   "stable": {
    "version": [
@@ -110799,8 +111279,8 @@
    "deps": [
     "exec-path-from-shell"
    ],
-   "commit": "31d8bbec16eff342bd4c02b0cb12ea31dd31bf19",
-   "sha256": "0388kwc65hpbimd53br2x9z9dvxw20wnny09kldw5nnlvzvzrba1"
+   "commit": "b2995563f41c162a082cd4823a499887f807176e",
+   "sha256": "087cjh7qlq0sglqj58g5jkywzn9sc26lv9f706g6ffirq7x6xizv"
   },
   "stable": {
    "version": [
@@ -110826,8 +111306,8 @@
     20220220,
     150
    ],
-   "commit": "fb82a02b6c86e6224482b27caa08662b023b40a1",
-   "sha256": "1lncgprxmir4czq8iiww9cmpd4si77vipkgksjrv37r9xz5hgyr4"
+   "commit": "005706b5c2ae70c2c442030dcccfa7c7e3c23ddb",
+   "sha256": "0kk2r8lfc6q7rb1yykkf1z156mryb3zs0xbpw3czr7m576zwwrzi"
   },
   "stable": {
    "version": [
@@ -110868,20 +111348,20 @@
    "deps": [
     "tuareg"
    ],
-   "commit": "d5dbad6b807f09731d87344ea778b29c432b76e2",
-   "sha256": "0lndsas27h9mmrjv1g2r5jhwjip1si6xrinp58w04kvzcvgypp2w"
+   "commit": "5d72a0ab34bf621b2150e9e267ec108fb1c5899a",
+   "sha256": "0f3lyiqxkl9gqhfa8d7nmk8kq8r8m8b0c6iprqr6l715cwk8qzfz"
   },
   "stable": {
    "version": [
     2,
     9,
-    0
+    1
    ],
    "deps": [
     "tuareg"
    ],
-   "commit": "676e2cd6545fd327e02330d1ccb20c02d6b26eab",
-   "sha256": "1mdpqc1b67p5rm2jsbwy0gjjgdlfqcakjyh1cwdj959ykz4zy9ld"
+   "commit": "d273db2a3561e5c760bafd0075f1f82af000e6c7",
+   "sha256": "1pmsmi0j4gb1vsd69j0bppkv79wbwz5xcffq78n1i2ibhff6r4j0"
   }
  },
  {
@@ -110907,11 +111387,11 @@
   "repo": "kanru/uuidgen-el",
   "unstable": {
    "version": [
-    20200816,
-    1308
+    20220405,
+    1345
    ],
-   "commit": "b50e6fef2de4199a8f207b46588c2cb3890ddd85",
-   "sha256": "08m74kj7h70kna3pifk3sgsy7mck11p32vi48h9wzqnafyq3n55d"
+   "commit": "7b728c1d92e196c3acf87a004949335cfc18eab3",
+   "sha256": "1z7x4p1qgyginn74xapd1iq0k53m9qbfk57dzc8srg7fcn5ip1js"
   },
   "stable": {
    "version": [
@@ -110930,11 +111410,11 @@
   "repo": "kborling/uwu-theme",
   "unstable": {
    "version": [
-    20220324,
-    1828
+    20220411,
+    1904
    ],
-   "commit": "a40f96f35cd6dafe0fc98bd19c9783f6b265173c",
-   "sha256": "1ppar0fz98xsbdl9yvh3rk09i1zk9170n4j7rlnvj3a9gnp9bdvq"
+   "commit": "feef3e73dbcb3fbba431c62a99a3333959f6158e",
+   "sha256": "0b16d5fkrqbj5v83cbkzchzgp4fhj7qqj67lsd5ix8pgqfgbhi4y"
   }
  },
  {
@@ -111095,6 +111575,21 @@
   }
  },
  {
+  "ename": "vampyricdark-theme",
+  "commit": "37f00aa9b7158a5f00a19eb2bdcf5342d8037268",
+  "sha256": "1rdi1bh3q1v2bq4w9wd2z858kqn0psxh159mahr46xr9kilvn1mm",
+  "fetcher": "github",
+  "repo": "VampyricDark/emacs",
+  "unstable": {
+   "version": [
+    20220405,
+    2235
+   ],
+   "commit": "7b9ac67efd38466765b85b1dd131d6b64d8f71f9",
+   "sha256": "1qr69mi3lqkb9j4wgc8sb6d1rxbdvaqqcg5pp2z35vsxw44x8ck1"
+  }
+ },
+ {
   "ename": "vbasense",
   "commit": "8e7dd1e985d55149f48e4f93a31fb28ec01a4add",
   "sha256": "1440q2bi4arpl5lbqh7zscg7v3884clqx54p2fdfcfkz47ky4z9n",
@@ -111166,11 +111661,11 @@
   "repo": "velkyel/vc-darcs",
   "unstable": {
    "version": [
-    20170905,
-    320
+    20220406,
+    659
    ],
-   "commit": "390fb1ebdda1ffac45b9be02626dde3b6d95ac11",
-   "sha256": "1fcqkavc7hlbhswx5nnaqhash42cjsbr72ijznx5cplr582g3mfq"
+   "commit": "56426a235b742618b48fad8538777a9b3ffb7240",
+   "sha256": "16q9kp9fvm6vpdr9b5p16lyjqbs8zplj4klz93s96n3jwxv50kim"
   }
  },
  {
@@ -111414,16 +111909,16 @@
   "repo": "DamienCassou/vdirel",
   "unstable": {
    "version": [
-    20210813,
-    754
+    20220412,
+    646
    ],
    "deps": [
     "helm",
     "org-vcard",
     "seq"
    ],
-   "commit": "dccc51bf68ad3f0066a462b354ec395229bd6a7f",
-   "sha256": "0mlfmigqsqmvn3rzyxnpq5zy6k0xf4vd2ww2qrr7kd2dqyv55hhw"
+   "commit": "4eebcf91bdb9ee10fbbba198c4995ae070442f26",
+   "sha256": "055qn11in0wz3mcvhi8kf187m7z55w4gs8pxq017bpx094xmqvhz"
   },
   "stable": {
    "version": [
@@ -111971,11 +112466,11 @@
   "repo": "thanhvg/emacs-virtual-comment",
   "unstable": {
    "version": [
-    20220301,
-    430
+    20220405,
+    229
    ],
-   "commit": "5205379bcfa1774a745e3dcbaa4ea861ff6a9ad2",
-   "sha256": "1blgy286id63mqr2gan7xkg88rn2nwj36vqdsyyxq8w2p3f5qh54"
+   "commit": "d1f08e8bec3b52818d44ff06f719950b89204126",
+   "sha256": "0fsjly3c9b29z8b113h7jzizlvb45xpp3jc7ay0dq3x5mfgpmnxb"
   }
  },
  {
@@ -112294,8 +112789,8 @@
     20220319,
     1730
    ],
-   "commit": "94021437d4dded5039e75c236b4a230d9fbdf7d6",
-   "sha256": "09q43zpx010jmwiz3wbsfwy4kmfz23z1xy7ka7a9nymd97kjnq9p"
+   "commit": "7389cb19e2d32435c6d19a67a851335a51490920",
+   "sha256": "0pf39fanzp45l92mw3cpl8ymvzhhrrpl98dj378wipgr7qnk89ch"
   },
   "stable": {
    "version": [
@@ -112317,8 +112812,8 @@
     20220319,
     1729
    ],
-   "commit": "a1a6708419944c95fd36bdc8f8771fb8746a698b",
-   "sha256": "04jccdrsx5r7q067sfyx5qcamlb3df1lx2v04zc436v7cxmj9s9z"
+   "commit": "05e80702e57a192be0bdc9f6271f0c4abbd17c29",
+   "sha256": "03ncnrqi22fpjw0a1wpbr03jg833s2bw6j76k501n51dz2dqfyyk"
   },
   "stable": {
    "version": [
@@ -112391,11 +112886,11 @@
   "repo": "akermu/emacs-libvterm",
   "unstable": {
    "version": [
-    20211226,
-    817
+    20220412,
+    1140
    ],
-   "commit": "a940dd2ee8a82684860e320c0f6d5e15d31d916f",
-   "sha256": "0r1iz92sn2ddi11arr9s8z7cdpjli7pn55yhaswvp4sdch7chb5r"
+   "commit": "a2f2286c40725244257f46d3a27a730e73f9f596",
+   "sha256": "08z9r3wz5rnx5pbv82pi5123hynbnwyhzgpkldxfcj4w3cd4qwhs"
   }
  },
  {
@@ -112647,11 +113142,11 @@
   "repo": "emacs-w3m/emacs-w3m",
   "unstable": {
    "version": [
-    20211122,
-    335
+    20220405,
+    124
    ],
-   "commit": "6112c6a9e13c00c2c7aecd96820a46b4800d4cda",
-   "sha256": "18c1rbcpxv289fbzl66lvyd41l1jhkia7296sksaqsgv9n79c2w6"
+   "commit": "c3a3a947fb267df1f03287be2eab4f7119707e90",
+   "sha256": "1f065v3i7n60lgdz9nzvla3n1xzcvznrg8f3kbf2ccvp5viwzi10"
   }
  },
  {
@@ -112727,8 +113222,8 @@
     20211104,
     1455
    ],
-   "commit": "0f94ac2dd4fa125fc5f152700779edce75a6b03b",
-   "sha256": "1iqmd763gik32blrc8ki9rikm3k5iksm0xg12rffmilawc2vn480"
+   "commit": "a53c0e819258ea9dbea3ad64b16e4c6c6201f5a5",
+   "sha256": "0iig6sqngd51cmsmcp31dawfjl7vd0rr7r1q82vv1jwk6xa7wsqg"
   }
  },
  {
@@ -112747,6 +113242,21 @@
   }
  },
  {
+  "ename": "wal-mode",
+  "commit": "6e345508060284bb98d9b5ba604f4ddda80c32fb",
+  "sha256": "07v4hgf7n8jb5z44v4j8lb3wjmh3paijf6fmq61n7mwgqrys39wi",
+  "fetcher": "github",
+  "repo": "LucasKl/wal-major-mode",
+  "unstable": {
+   "version": [
+    20220409,
+    1214
+   ],
+   "commit": "1daaf882824e8483419dc999c2d5507ad30cc929",
+   "sha256": "080lb9qk7ra931sqcz6j65yd7f8jvkwgly9gv12qq0h9sid8i5k4"
+  }
+ },
+ {
   "ename": "walkclj",
   "commit": "44472b35938fe70d4cb3d15397495fe321fcd464",
   "sha256": "0m971dlazildhgj8jqg4x679i6s6p80mbpri7l24ynxk45wix22m",
@@ -113785,8 +114295,8 @@
     20210510,
     533
    ],
-   "commit": "b108b73ddf8f7e747d5a20a681560171e02ad037",
-   "sha256": "13il7yi6j0cd995xzadbilhg50zcvzbpcqvivh9r1qbqq3q5aw1y"
+   "commit": "b2e35321f03914cae90be4f942d911b7e7175899",
+   "sha256": "14ralz7jn98ckcmwshq1yg35bpybjlfw04cxy9qcnk67sfnp3ggv"
   },
   "stable": {
    "version": [
@@ -113858,8 +114368,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "3c1a55103e52c7a3010ee0043af22484d23a441e",
-   "sha256": "0bkfx18jpy8b91yq917va5x2mkrzqlyi6a38bi90zfqhxz5h69g4"
+   "commit": "500ad90695e8a5a0cefabb7500158eab0835a0ce",
+   "sha256": "1v6i32fmnbqri86k6wrp0b3dj8ij2941wc1hbyzwnd5g3jyy3yqj"
   },
   "stable": {
    "version": [
@@ -114417,11 +114927,11 @@
   "repo": "magit/with-editor",
   "unstable": {
    "version": [
-    20220318,
-    1640
+    20220412,
+    1340
    ],
-   "commit": "e8569e027ff5c9bef8d9ff0734e3293e1c0574a2",
-   "sha256": "1q5c46kinh0s3pyms64nbzzbzgfq5a29qjzw4khsh0b73p8245gf"
+   "commit": "3d1af157b466c689ae2c4d1ddc1562d613d84879",
+   "sha256": "1xd35ma3mm45dzz3gw9cqjdsnl04bpzq7q9qwibc93i2c0l0xf60"
   },
   "stable": {
    "version": [
@@ -114802,11 +115312,11 @@
   "repo": "pashinin/workgroups2",
   "unstable": {
    "version": [
-    20220308,
-    1314
+    20220327,
+    1001
    ],
-   "commit": "b2c457a720e98dd1c560860e44a6a80372ef07ef",
-   "sha256": "198bm8l8jf6xvc7djy3d9z7xm437pkabmi9i30pd79g5l2dikj8f"
+   "commit": "59952e80acecfd6f8b79f075d473501ee468085e",
+   "sha256": "0jsk210ahf05dm0bmpbl1hj9xld2cvwiyjp09wg084fj5h6fdk6d"
   },
   "stable": {
    "version": [
@@ -115586,11 +116096,11 @@
   "repo": "ideasman42/emacs-xref-rst",
   "unstable": {
    "version": [
-    20220211,
-    548
+    20220406,
+    2311
    ],
-   "commit": "f07722ac9c2952e86d9e84546c3c5eb1a768247e",
-   "sha256": "1wq815c2bs1fqjkl7kjpzmhdlw95dsayvcgclnkk1bb70xgzsivg"
+   "commit": "7964709276ff033cd138efabfafb4f2179e75c22",
+   "sha256": "15sdarz7iqifk9jazgp8l4v8ni48jb6rrixzmf1h60d5r3rf0z68"
   }
  },
  {
@@ -115924,14 +116434,14 @@
   "repo": "knu/yaml-imenu.el",
   "unstable": {
    "version": [
-    20210530,
-    251
+    20220406,
+    1703
    ],
    "deps": [
     "yaml-mode"
    ],
-   "commit": "01741205fb33d2ed511502d1cd65a711e07a3117",
-   "sha256": "1z8yzi322y8wnvci77xp7fb7x5l3z8zy1ng4zaa1z856va8x2971"
+   "commit": "c1fbba8b03a7bef4fc2b87404914fa9c6eb67b55",
+   "sha256": "1p5zyjj9hvqjfhyp68c04w6cxj5qh4psd4y8kafyrz3n05wimzl5"
   },
   "stable": {
    "version": [
@@ -116146,8 +116656,8 @@
     20220212,
     1742
    ],
-   "commit": "82772ac2508a4549c75f2aa31d901caea468a0fb",
-   "sha256": "1ccyf0y9886vq4007xr4g8w05jnw3v8pfzlqxdk7j4babj8kyjw9"
+   "commit": "a5ae81e44c8707949fad521ba532bc92568f79c2",
+   "sha256": "1s4qxxqz81sz1jydgrs9j7qkw3lyzcg76zx32646ibb6i093x8mf"
   },
   "stable": {
    "version": [
@@ -116215,14 +116725,14 @@
   "repo": "AndreaCrotti/yasnippet-snippets",
   "unstable": {
    "version": [
-    20220221,
-    1234
+    20220401,
+    1534
    ],
    "deps": [
     "yasnippet"
    ],
-   "commit": "b7c09f1ad7e1a62da6f6042bfaa2b26d111c7e81",
-   "sha256": "0r4rjsgd13n8k0ijypwh3ky0dzzmz0p08lfaalpbqk3w555mkzyf"
+   "commit": "c5bf4c4085aa61b9c07563de89f7aacc2a357db5",
+   "sha256": "12kvg1nl93893pwhhx49a78camb8m8yzrgn6wg7kh9y50bqmh9ma"
   },
   "stable": {
    "version": [
@@ -116730,11 +117240,11 @@
   "repo": "bbatsov/zenburn-emacs",
   "unstable": {
    "version": [
-    20220221,
-    2005
+    20220412,
+    2023
    ],
-   "commit": "cef1e26146c1b8b32fc5ce346f2cfa9861eb67d4",
-   "sha256": "198n2pikpvk65bqivw7f8bvy9j9mpc2149zxzqc16m2868l9ngsx"
+   "commit": "89c0e39317850d5ccf14dcbbaff06b0a193454a6",
+   "sha256": "06f7jaglgrckfw36l2pb63y1qxn64svc7wa3c6np3hjpjs5y13f5"
   },
   "stable": {
    "version": [
@@ -116914,15 +117424,15 @@
   "repo": "EFLS/zetteldeft",
   "unstable": {
    "version": [
-    20211214,
-    2221
+    20220331,
+    1903
    ],
    "deps": [
     "ace-window",
     "deft"
    ],
-   "commit": "7fd18ba9eb3552befcb564ddd5e2201d7aa39ee5",
-   "sha256": "0w252rsfzy3vm08bqxi8f0mb9mpx532c7bkyminal8x7ssn1bdn6"
+   "commit": "9309bdb1cba8120b43158c09da86727c6bd42373",
+   "sha256": "1nnq9zsf2whfmd8bm1razsvc00ljgkky840h9ara64wggrh9sli9"
   },
   "stable": {
    "version": [
@@ -117061,11 +117571,11 @@
   "repo": "localauthor/zk",
   "unstable": {
    "version": [
-    20220321,
-    2050
+    20220412,
+    1937
    ],
-   "commit": "4c6426e5e26e6a4d375442660d4f78aaea1691f7",
-   "sha256": "056xx1xlq9hwfjbympkl517544n1gfs605q0c7jkixh2vs6ipydr"
+   "commit": "9f3eac6ad104eeb54e14f9688641b2f49ce15942",
+   "sha256": "0iwm3swln4mah3xd69b9bbi1fx2zvd0fjsp2sirzqrqxwxqa2s8a"
   }
  },
  {
@@ -117082,8 +117592,8 @@
    "deps": [
     "zk"
    ],
-   "commit": "4c6426e5e26e6a4d375442660d4f78aaea1691f7",
-   "sha256": "056xx1xlq9hwfjbympkl517544n1gfs605q0c7jkixh2vs6ipydr"
+   "commit": "9f3eac6ad104eeb54e14f9688641b2f49ce15942",
+   "sha256": "0iwm3swln4mah3xd69b9bbi1fx2zvd0fjsp2sirzqrqxwxqa2s8a"
   }
  },
  {
@@ -117281,20 +117791,20 @@
   "repo": "cyrus-and/zoom",
   "unstable": {
    "version": [
-    20201215,
-    1913
+    20220411,
+    1126
    ],
-   "commit": "c7beef180bc4037404e2d56b9ab9b7c76d1713a0",
-   "sha256": "0vzrg5vfb4rnripdxlnl2gs6mm85ysiwnn8rclsaljrmk5xrp5ls"
+   "commit": "2104abb074682db79b9ff3a748e8e2e760a4d8cf",
+   "sha256": "0wp7a1ibyqll8rpirsiazpf51lnd0q3yrya9pqvlx9ik5r41jp2m"
   },
   "stable": {
    "version": [
     0,
     2,
-    3
+    4
    ],
-   "commit": "85694c9baa99bcf247528a6743383a3a1e5323fe",
-   "sha256": "1xckqfkrx95b2bfdczz90y0b23bghlqkp2k5ml59ai2drb96l17h"
+   "commit": "2104abb074682db79b9ff3a748e8e2e760a4d8cf",
+   "sha256": "0wp7a1ibyqll8rpirsiazpf51lnd0q3yrya9pqvlx9ik5r41jp2m"
   }
  },
  {
@@ -117308,8 +117818,8 @@
     20201205,
     1038
    ],
-   "commit": "1823f8431b36beae112a67f5b102e06afaaa52bf",
-   "sha256": "0mqz10ngfn2kyhm918gwx185zmmvzj47vha5dvwwkqxx28xcsfq6"
+   "commit": "6d9caa87d1ef3cf3e4ac995c15cd7aa6aecd4ee3",
+   "sha256": "0p6sxgfjh9ld5d2ylx5w8im0m2skzgdk45bcn0sran4dsvp6jf3d"
   },
   "stable": {
    "version": [
@@ -117417,15 +117927,15 @@
   "repo": "egh/zotxt-emacs",
   "unstable": {
    "version": [
-    20210222,
-    347
+    20210908,
+    402
    ],
    "deps": [
     "deferred",
     "request"
    ],
-   "commit": "45961801f9e0350d7457d0d84c5004f63aed9070",
-   "sha256": "18hi6m2ngl9yz599q5bhifafi4vz1adc06bjl0bhb3rs62vbkwk2"
+   "commit": "96a132d6b39f6bc19a58913b761d42efc198f8a4",
+   "sha256": "1qwn5ym2ljzbliy1qbafm3wzh8ayl177m3z2fvj2fy3cg9smi3bv"
   },
   "stable": {
    "version": [
diff --git a/pkgs/applications/editors/emacs/elisp-packages/tree-sitter-langs/default-grammars.json b/pkgs/applications/editors/emacs/elisp-packages/tree-sitter-langs/default-grammars.json
new file mode 100644
index 0000000000000..6a5608cbf8d56
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/tree-sitter-langs/default-grammars.json
@@ -0,0 +1,32 @@
+[
+  "tree-sitter-agda",
+  "tree-sitter-bash",
+  "tree-sitter-c",
+  "tree-sitter-c-sharp",
+  "tree-sitter-cpp",
+  "tree-sitter-css",
+  "tree-sitter-elixir",
+  "tree-sitter-elm",
+  "tree-sitter-fluent",
+  "tree-sitter-go",
+  "tree-sitter-haskell",
+  "tree-sitter-hcl",
+  "tree-sitter-html",
+  "tree-sitter-java",
+  "tree-sitter-javascript",
+  "tree-sitter-jsdoc",
+  "tree-sitter-json",
+  "tree-sitter-julia",
+  "tree-sitter-nix",
+  "tree-sitter-ocaml",
+  "tree-sitter-php",
+  "tree-sitter-prisma",
+  "tree-sitter-python",
+  "tree-sitter-ruby",
+  "tree-sitter-rust",
+  "tree-sitter-scala",
+  "tree-sitter-swift",
+  "tree-sitter-typescript",
+  "tree-sitter-verilog",
+  "tree-sitter-zig"
+]
diff --git a/pkgs/applications/editors/emacs/elisp-packages/tree-sitter-langs/default.nix b/pkgs/applications/editors/emacs/elisp-packages/tree-sitter-langs/default.nix
new file mode 100644
index 0000000000000..e62a37565c83c
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/tree-sitter-langs/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, pkgs
+, symlinkJoin
+, fetchzip
+, melpaBuild
+, stdenv
+, fetchFromGitHub
+, writeText
+, melpaStablePackages
+, runCommand
+, tree-sitter-grammars
+, plugins ? map (g: tree-sitter-grammars.${g}) (lib.importJSON ./default-grammars.json)
+, final
+}:
+
+let
+  inherit (melpaStablePackages) tree-sitter-langs;
+
+  libSuffix = if stdenv.isDarwin then "dylib" else "so";
+  soName = g: lib.removeSuffix "-grammar" (lib.removePrefix "tree-sitter-" g.pname) + "." + libSuffix;
+
+  grammarDir = runCommand "emacs-tree-sitter-grammars" {
+    # Fake same version number as upstream language bundle to prevent triggering runtime downloads
+    inherit (tree-sitter-langs) version;
+  } (''
+    install -d $out/langs/bin
+    echo -n $version > $out/langs/bin/BUNDLE-VERSION
+  '' + lib.concatStringsSep "\n" (map (
+    g: "ln -s ${g}/parser $out/langs/bin/${soName g}") plugins
+  ));
+
+in
+melpaStablePackages.tree-sitter-langs.overrideAttrs(old: {
+  postPatch = old.postPatch or "" + ''
+    substituteInPlace ./tree-sitter-langs-build.el \
+    --replace "tree-sitter-langs-grammar-dir tree-sitter-langs--dir"  "tree-sitter-langs-grammar-dir \"${grammarDir}/langs\""
+  '';
+
+  passthru = old.passthru or {} // {
+    inherit plugins;
+    withPlugins = fn: final.tree-sitter-langs.override { plugins = fn tree-sitter-grammars; };
+  };
+
+})
diff --git a/pkgs/applications/editors/emacs/elisp-packages/tree-sitter-langs/update-defaults.py b/pkgs/applications/editors/emacs/elisp-packages/tree-sitter-langs/update-defaults.py
new file mode 100755
index 0000000000000..19bcb8989c30d
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/tree-sitter-langs/update-defaults.py
@@ -0,0 +1,74 @@
+#!/usr/bin/env nix-shell
+#! nix-shell ../../../../../../. -i python3 -p python3 -p nix
+from os.path import (
+    dirname,
+    abspath,
+    join,
+)
+from typing import (
+    List,
+    Any,
+)
+import subprocess
+import json
+import sys
+import os
+
+
+def fmt_grammar(grammar: str) -> str:
+    return "tree-sitter-" + grammar
+
+
+def eval_expr(nixpkgs: str, expr: str) -> Any:
+    p = subprocess.run(
+        [
+            "nix-instantiate",
+            "--json",
+            "--eval",
+            "--expr",
+            ("with import %s {}; %s" % (nixpkgs, expr)),
+        ],
+        check=True,
+        stdout=subprocess.PIPE,
+    )
+    return json.loads(p.stdout)
+
+
+def check_grammar_exists(nixpkgs: str, grammar: str) -> bool:
+    return eval_expr(
+        nixpkgs, f'lib.hasAttr "{fmt_grammar(grammar)}" tree-sitter-grammars'
+    )
+
+
+def build_attr(nixpkgs, attr: str) -> str:
+    return (
+        subprocess.run(
+            ["nix-build", "--no-out-link", nixpkgs, "-A", attr],
+            check=True,
+            stdout=subprocess.PIPE,
+        )
+        .stdout.decode()
+        .strip()
+    )
+
+
+if __name__ == "__main__":
+    cwd = dirname(abspath(__file__))
+    nixpkgs = abspath(join(cwd, "../../../../../.."))
+
+    src_dir = build_attr(nixpkgs, "emacs.pkgs.tree-sitter-langs.src")
+
+    existing: List[str] = []
+
+    grammars = os.listdir(join(src_dir, "repos"))
+    for g in grammars:
+        exists = check_grammar_exists(nixpkgs, g)
+        if exists:
+            existing.append(fmt_grammar(g))
+        else:
+            sys.stderr.write("Missing grammar: " + fmt_grammar(g) + "\n")
+            sys.stderr.flush()
+
+    with open(join(cwd, "default-grammars.json"), mode="w") as f:
+        json.dump(sorted(existing), f, indent=2)
+        f.write("\n")
diff --git a/pkgs/applications/editors/emacs/elisp-packages/tsc/default.nix b/pkgs/applications/editors/emacs/elisp-packages/tsc/default.nix
new file mode 100644
index 0000000000000..a9462298979d0
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/tsc/default.nix
@@ -0,0 +1,89 @@
+{ lib
+, symlinkJoin
+, melpaBuild
+, fetchFromGitHub
+, rustPlatform
+, writeText
+, clang
+, llvmPackages
+
+, runtimeShell
+, writeScript
+, python3
+, nix-prefetch-github
+, nix
+}:
+
+let
+
+  srcMeta = lib.importJSON ./src.json;
+  inherit (srcMeta) version;
+
+  src = fetchFromGitHub srcMeta.src;
+
+  tsc = melpaBuild {
+    inherit src;
+    inherit version;
+
+    pname = "tsc";
+    commit = version;
+
+    sourceRoot = "source/core";
+
+    recipe = writeText "recipe" ''
+      (tsc
+      :repo "emacs-tree-sitter/elisp-tree-sitter"
+      :fetcher github)
+    '';
+  };
+
+  tsc-dyn = rustPlatform.buildRustPackage {
+    inherit version;
+    inherit src;
+
+    pname = "tsc-dyn";
+
+    nativeBuildInputs = [ clang ];
+    sourceRoot = "source/core";
+
+    configurePhase = ''
+      export LIBCLANG_PATH="${llvmPackages.libclang.lib}/lib"
+    '';
+
+    postInstall = ''
+      LIB=($out/lib/libtsc_dyn.*)
+      TSC_PATH=$out/share/emacs/site-lisp/elpa/tsc-${version}
+      install -d $TSC_PATH
+      install -m444 $out/lib/libtsc_dyn.* $TSC_PATH/''${LIB/*libtsc_/tsc-}
+      echo -n $version > $TSC_PATH/DYN-VERSION
+      rm -r $out/lib
+    '';
+
+    inherit (srcMeta) cargoSha256;
+  };
+
+in symlinkJoin {
+  name = "tsc-${version}";
+  paths = [ tsc tsc-dyn ];
+
+  passthru = {
+    updateScript = let
+      pythonEnv = python3.withPackages(ps: [ ps.requests ]);
+    in writeScript "tsc-update" ''
+      #!${runtimeShell}
+      set -euo pipefail
+      export PATH=${lib.makeBinPath [
+        nix-prefetch-github
+        nix
+        pythonEnv
+      ]}:$PATH
+      exec python3 ${builtins.toString ./update.py} ${builtins.toString ./.}
+    '';
+  };
+
+  meta = {
+    description = "The core APIs of the Emacs binding for tree-sitter.";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ pimeys ];
+  };
+}
diff --git a/pkgs/applications/editors/emacs/elisp-packages/tsc/src.json b/pkgs/applications/editors/emacs/elisp-packages/tsc/src.json
new file mode 100644
index 0000000000000..6aa6fee1830ab
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/tsc/src.json
@@ -0,0 +1,10 @@
+{
+  "src": {
+    "owner": "emacs-tree-sitter",
+    "repo": "elisp-tree-sitter",
+    "rev": "909717c685ff5a2327fa2ca8fb8a25216129361c",
+    "sha256": "LrakDpP3ZhRQqz47dPcyoQnu5lROdaNlxGaQfQT6u+k="
+  },
+  "version": "0.18.0",
+  "cargoSha256": "sha256-IRCZqszBkGF8anF/kpcPOzHdOP4lAtJBAp6FS5tAOx8="
+}
diff --git a/pkgs/applications/editors/emacs/elisp-packages/tsc/update.py b/pkgs/applications/editors/emacs/elisp-packages/tsc/update.py
new file mode 100644
index 0000000000000..ce2054f909ef3
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/tsc/update.py
@@ -0,0 +1,122 @@
+#!/usr/bin/env python3
+from textwrap import dedent
+from os.path import (
+    abspath,
+    dirname,
+    join,
+)
+from typing import (
+    Dict,
+    Any,
+)
+import subprocess
+import tempfile
+import json
+import sys
+import re
+
+import requests
+
+
+def eval_drv(nixpkgs: str, expr: str) -> Any:
+    expr = "\n".join(
+        (
+            "with (import %s {});" % nixpkgs,
+            expr,
+        )
+    )
+
+    with tempfile.NamedTemporaryFile(mode="w") as f:
+        f.write(dedent(expr))
+        f.flush()
+        p = subprocess.run(
+            ["nix-instantiate", "--json", f.name], stdout=subprocess.PIPE, check=True
+        )
+
+    return p.stdout.decode().strip()
+
+
+def get_src(tag_name: str) -> Dict[str, str]:
+    p = subprocess.run(
+        [
+            "nix-prefetch-github",
+            "--rev",
+            tag_name,
+            "--json",
+            "emacs-tree-sitter",
+            "elisp-tree-sitter",
+        ],
+        stdout=subprocess.PIPE,
+        check=True,
+    )
+    src = json.loads(p.stdout)
+
+    fields = ["owner", "repo", "rev", "sha256"]
+
+    return {f: src[f] for f in fields}
+
+
+def get_cargo_sha256(drv_path: str):
+    # Note: No check=True since we expect this command to fail
+    p = subprocess.run(["nix-store", "-r", drv_path], stderr=subprocess.PIPE)
+
+    stderr = p.stderr.decode()
+    lines = iter(stderr.split("\n"))
+
+    for l in lines:
+        if l.startswith("error: hash mismatch in fixed-output derivation"):
+            break
+    else:
+        raise ValueError("Did not find expected hash mismatch message")
+
+    for l in lines:
+        m = re.match(r"\s+got:\s+(.+)$", l)
+        if m:
+            return m.group(1)
+
+    raise ValueError("Could not extract actual sha256 hash: ", stderr)
+
+
+if __name__ == "__main__":
+    cwd = sys.argv[1]
+
+    nixpkgs = abspath(join(cwd, "../../../../../.."))
+
+    tag_name = requests.get(
+        "https://api.github.com/repos/emacs-tree-sitter/elisp-tree-sitter/releases/latest"
+    ).json()["tag_name"]
+
+    src = get_src(tag_name)
+
+    with tempfile.NamedTemporaryFile(mode="w") as f:
+        json.dump(src, f)
+        f.flush()
+
+        drv_path = eval_drv(
+            nixpkgs,
+            """
+        rustPlatform.buildRustPackage {
+          pname = "tsc-dyn";
+          version = "%s";
+          nativeBuildInputs = [ clang ];
+          src = fetchFromGitHub (lib.importJSON %s);
+          sourceRoot = "source/core";
+          cargoSha256 = lib.fakeSha256;
+        }
+        """
+            % (tag_name, f.name),
+        )
+
+    cargo_sha256 = get_cargo_sha256(drv_path)
+
+    with open(join(cwd, "src.json"), mode="w") as f:
+        json.dump(
+            {
+                "src": src,
+                "version": tag_name,
+                "cargoSha256": cargo_sha256,
+            },
+            f,
+            indent=2,
+        )
+        f.write("\n")
diff --git a/pkgs/applications/editors/emacs/elisp-packages/update b/pkgs/applications/editors/emacs/elisp-packages/update
new file mode 100755
index 0000000000000..02701fb546d95
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/update
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+SCRIPT_DIR="$( cd "$(dirname "$0")" ; pwd -P )"
+cd "$SCRIPT_DIR"
+
+./update-from-overlay
+
+./update-manual
+git commit -m "emacs.pkgs.manualPackages: $(date --iso)" -- .
diff --git a/pkgs/applications/editors/emacs/elisp-packages/update-manual b/pkgs/applications/editors/emacs/elisp-packages/update-manual
new file mode 100755
index 0000000000000..3b199eecc3d2b
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/update-manual
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+SCRIPT_DIR="$( cd "$(dirname "$0")" ; pwd -P )"
+cd "$SCRIPT_DIR"
+
+nix-build --no-out-link update-manual.nix | xargs -n 1 -P $(nproc) bash -c
diff --git a/pkgs/applications/editors/emacs/elisp-packages/update-manual.nix b/pkgs/applications/editors/emacs/elisp-packages/update-manual.nix
new file mode 100644
index 0000000000000..788d096e6ec69
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/update-manual.nix
@@ -0,0 +1,11 @@
+let
+  pkgs = import ../../../../../. {
+    config.allowBroken = true;
+  };
+  inherit (pkgs) lib emacs;
+  inherit (lib) isDerivation hasAttr filterAttrs mapAttrs attrValues;
+
+  # Extract updateScript's from manually package emacs packages
+  hasScript = filterAttrs (_: v: isDerivation v && hasAttr "updateScript" v) emacs.pkgs.manualPackages;
+
+in attrValues (mapAttrs (_: v: v.updateScript) hasScript)
diff --git a/pkgs/applications/editors/emacs/generic.nix b/pkgs/applications/editors/emacs/generic.nix
index 82a1d6af83295..637f5b543cb69 100644
--- a/pkgs/applications/editors/emacs/generic.nix
+++ b/pkgs/applications/editors/emacs/generic.nix
@@ -8,10 +8,10 @@
 }:
 { stdenv, lib, fetchurl, fetchpatch, ncurses, xlibsWrapper, libXaw, libXpm
 , Xaw3d, libXcursor,  pkg-config, gettext, libXft, dbus, libpng, libjpeg, giflib
-, libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux
+, libtiff, librsvg, libwebp, gconf, libxml2, imagemagick, gnutls, libselinux
 , alsa-lib, cairo, acl, gpm, AppKit, GSS, ImageIO, m17n_lib, libotf
 , sigtool, jansson, harfbuzz, sqlite, nixosTests
-, dontRecurseIntoAttrs ,emacsPackagesFor
+, dontRecurseIntoAttrs, emacsPackagesFor
 , libgccjit, targetPlatform, makeWrapper # native-comp params
 , systemd ? null
 , withX ? !stdenv.isDarwin
@@ -22,6 +22,7 @@
 , withMotif ? false, motif ? null
 , withSQLite3 ? false
 , withCsrc ? true
+, withWebP ? false
 , srcRepo ? false, autoreconfHook ? null, texinfo ? null
 , siteStart ? ./site-start.el
 , nativeComp ? false
@@ -134,6 +135,7 @@ let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
     ++ lib.optionals (withX && withGTK3) [ gtk3-x11 gsettings-desktop-schemas ]
     ++ lib.optional (withX && withMotif) motif
     ++ lib.optional withSQLite3 sqlite
+    ++ lib.optional withWebP libwebp
     ++ lib.optionals (withX && withXwidgets) [ webkitgtk glib-networking ]
     ++ lib.optionals withNS [ AppKit GSS ImageIO ]
     ++ lib.optionals stdenv.isDarwin [ sigtool ]
diff --git a/pkgs/applications/editors/gnome-builder/default.nix b/pkgs/applications/editors/gnome-builder/default.nix
index 8fd9f56a9d221..7cfde3a91f399 100644
--- a/pkgs/applications/editors/gnome-builder/default.nix
+++ b/pkgs/applications/editors/gnome-builder/default.nix
@@ -5,7 +5,6 @@
 , appstream-glib
 , desktop-file-utils
 , fetchurl
-, fetchpatch
 , flatpak
 , gnome
 , libgit2-glib
@@ -41,23 +40,15 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-builder";
-  version = "42.0";
+  version = "42.1";
 
   outputs = [ "out" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "Uu/SltaLL/GCNBwEgdz9cGVMQIvbZ5/Ot225cDwiQo8=";
+    sha256 = "XU1RtwKGW0gBcgHwxgfiSifXIDGo9ciNT86HW1VFZwo=";
   };
 
-  patches = [
-    # Fix appstream validation
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-builder/-/commit/d7151679e0c925d27216256dc32fe67fb298d059.patch";
-      sha256 = "vdNJawkqSBaFGRZvxzvjOryQpBL4jcN7tr1t3ihD7LA=";
-    })
-  ];
-
   nativeBuildInputs = [
     appstream-glib
     desktop-file-utils
@@ -115,8 +106,6 @@ stdenv.mkDerivation rec {
     "-Dnetwork_tests=false"
   ];
 
-  # Some tests fail due to being unable to find the Vte typelib, and I don't
-  # understand why. Somebody should look into fixing this.
   doCheck = true;
 
   postPatch = ''
diff --git a/pkgs/applications/editors/helix/default.nix b/pkgs/applications/editors/helix/default.nix
index 6cc5714fb83fe..fb1abcd6cffe3 100644
--- a/pkgs/applications/editors/helix/default.nix
+++ b/pkgs/applications/editors/helix/default.nix
@@ -1,18 +1,18 @@
-{ fetchFromGitHub, lib, rustPlatform, makeWrapper }:
+{ fetchzip, lib, rustPlatform, makeWrapper }:
 
 rustPlatform.buildRustPackage rec {
   pname = "helix";
-  version = "0.6.0";
+  version = "22.03";
 
-  src = fetchFromGitHub {
-    owner = "helix-editor";
-    repo = pname;
-    rev = "v${version}";
-    fetchSubmodules = true;
-    sha256 = "sha256-d/USOtcPLjdgzN7TBCouBRmoSDH5LZD4R5Qq7lUrWZw=";
+  # This release tarball includes source code for the tree-sitter grammars,
+  # which is not ordinarily part of the repository.
+  src = fetchzip {
+    url = "https://github.com/helix-editor/helix/releases/download/${version}/helix-${version}-source.tar.xz";
+    sha256 = "DP/hh6JfnyHdW2bg0cvhwlWvruNDvL9bmXM46iAUQzA=";
+    stripRoot = false;
   };
 
-  cargoSha256 = "sha256-/EATU7HsGNB35YOBp8sofbPd1nl4d3Ggj1ay3QuHkCI=";
+  cargoSha256 = "zJQ+KvO+6iUIb0eJ+LnMbitxaqTxfqgu7XXj3j0GiX4=";
 
   nativeBuildInputs = [ makeWrapper ];
 
@@ -29,6 +29,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://helix-editor.com";
     license = licenses.mpl20;
     mainProgram = "hx";
-    maintainers = with maintainers; [ yusdacra ];
+    maintainers = with maintainers; [ danth yusdacra ];
   };
 }
diff --git a/pkgs/applications/editors/jetbrains/versions.json b/pkgs/applications/editors/jetbrains/versions.json
index 83f486edfcf9a..9303fd9a4cd62 100644
--- a/pkgs/applications/editors/jetbrains/versions.json
+++ b/pkgs/applications/editors/jetbrains/versions.json
@@ -27,18 +27,18 @@
     "idea-community": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIC-{version}.tar.gz",
-      "version": "2021.3.2",
-      "sha256": "99e2225846d118e3190023abc65c8b2c62a1d1463f601c79a20b9494c54a08c9",
-      "url": "https://download.jetbrains.com/idea/ideaIC-2021.3.2.tar.gz",
-      "version-major-minor": "2021.3"
+      "version": "2022.1",
+      "sha256": "0400e6152fa0173e4e9a514c6398eef8f19150893298658c0b3eb1427e5bcbe5",
+      "url": "https://download.jetbrains.com/idea/ideaIC-2022.1.tar.gz",
+      "version-major-minor": "2022.1"
     },
     "idea-ultimate": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIU-{version}-no-jbr.tar.gz",
-      "version": "2021.3.2",
-      "sha256": "face5d154a2c9244b278bfc6dca37218ae3344090526a0679086eff9b0c56670",
-      "url": "https://download.jetbrains.com/idea/ideaIU-2021.3.2-no-jbr.tar.gz",
-      "version-major-minor": "2021.3"
+      "version": "2022.1",
+      "sha256": "f786bbd4a7c82273f6871996584fb7b37aa2b32fb07c7f554076f203284c77b6",
+      "url": "https://download.jetbrains.com/idea/ideaIU-2022.1-no-jbr.tar.gz",
+      "version-major-minor": "2022.1"
     },
     "mps": {
       "update-channel": "MPS RELEASE",
@@ -125,18 +125,18 @@
     "idea-community": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIC-{version}.dmg",
-      "version": "2021.3.2",
-      "sha256": "20d8cee2bbedaeb0ea388f795e13d08eca5b59e59d4e980ac2d8bc07c9fed3e9",
-      "url": "https://download.jetbrains.com/idea/ideaIC-2021.3.2.dmg",
-      "version-major-minor": "2021.3"
+      "version": "2022.1",
+      "sha256": "6f9dddab5c280bb2ad6bb8d46bcc85c1b167974ce4b412a68faf31f7f7d1c194",
+      "url": "https://download.jetbrains.com/idea/ideaIC-2022.1.dmg",
+      "version-major-minor": "2022.1"
     },
     "idea-ultimate": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIU-{version}.dmg",
-      "version": "2021.3.2",
-      "sha256": "9f574562b866e6ccc3d2f9b4c245c45844d1d0fd54be3dbdcc893d40ba1cf54a",
-      "url": "https://download.jetbrains.com/idea/ideaIU-2021.3.2.dmg",
-      "version-major-minor": "2021.3"
+      "version": "2022.1",
+      "sha256": "2f1e51db514b39b54cb4029815b7f92764b378f2cf2eb16e69e2ee3c0b35f416",
+      "url": "https://download.jetbrains.com/idea/ideaIU-2022.1.dmg",
+      "version-major-minor": "2022.1"
     },
     "mps": {
       "update-channel": "MPS RELEASE",
@@ -223,18 +223,18 @@
     "idea-community": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIC-{version}-aarch64.dmg",
-      "version": "2021.3.2",
-      "sha256": "79e540fb0cd480837b3a954e4802f4f252073955393e8927c9c1b28c37112d51",
-      "url": "https://download.jetbrains.com/idea/ideaIC-2021.3.2-aarch64.dmg",
-      "version-major-minor": "2021.3"
+      "version": "2022.1",
+      "sha256": "f61bdf70e373a948a71331e68a7303bf90cf47ea4e2f97338aaf96d19e8862c4",
+      "url": "https://download.jetbrains.com/idea/ideaIC-2022.1-aarch64.dmg",
+      "version-major-minor": "2022.1"
     },
     "idea-ultimate": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIU-{version}-aarch64.dmg",
-      "version": "2021.3.2",
-      "sha256": "511c6aed9c5cd4c7665a9bac9ba94582977013244cbe88b820eb5464fce91a1c",
-      "url": "https://download.jetbrains.com/idea/ideaIU-2021.3.2-aarch64.dmg",
-      "version-major-minor": "2021.3"
+      "version": "2022.1",
+      "sha256": "af9c0e8d47fcded5f567293b7991fd0ac8df838b83884149109fd91ec2dec769",
+      "url": "https://download.jetbrains.com/idea/ideaIU-2022.1-aarch64.dmg",
+      "version-major-minor": "2022.1"
     },
     "mps": {
       "update-channel": "MPS RELEASE",
diff --git a/pkgs/applications/editors/jupyter-kernels/octave/kernel.nix b/pkgs/applications/editors/jupyter-kernels/octave/kernel.nix
index 9ebb4257784b2..7ede04427b5bd 100644
--- a/pkgs/applications/editors/jupyter-kernels/octave/kernel.nix
+++ b/pkgs/applications/editors/jupyter-kernels/octave/kernel.nix
@@ -4,20 +4,18 @@ with python3Packages;
 
 buildPythonPackage rec {
   pname = "octave-kernel";
-  version = "0.32.0";
+  version = "0.34.2";
 
   src = fetchPypi {
     pname = "octave_kernel";
     inherit version;
-    sha256 = "0dfbxfcf3bz4jswnpkibnjwlkgy0y4j563nrhaqxv3nfa65bksif";
+    sha256 = "sha256-5ki2lekfK7frPsmPBIzYQOfANCUY9x+F2ZRAQSdPTxo=";
   };
 
   propagatedBuildInputs = [ metakernel ipykernel ];
 
-  # Tests require jupyter_kernel_test to run, but it hasn't seen a
-  # release since 2017 and seems slightly abandoned.
-  # Doing fetchPypi on it doesn't work, even though it exists here:
-  # https://pypi.org/project/jupyter_kernel_test/.
+  # Tests fail because the kernel appears to be halting or failing to launch
+  # There appears to be a similar problem with metakernel's tests
   doCheck = false;
 
   meta = with lib; {
diff --git a/pkgs/applications/editors/jupyter-kernels/wolfram/default.nix b/pkgs/applications/editors/jupyter-kernels/wolfram/default.nix
new file mode 100644
index 0000000000000..2d00d6e1fc2e7
--- /dev/null
+++ b/pkgs/applications/editors/jupyter-kernels/wolfram/default.nix
@@ -0,0 +1,22 @@
+{ callPackage
+, wolfram-engine
+}:
+
+# To test:
+# $(nix-build -E 'with import ./. {}; jupyter.override { definitions = { wolfram = wolfram-for-jupyter-kernel.definition; }; }')/bin/jupyter-notebook
+let kernel = callPackage ./kernel.nix {};
+in {
+  definition = {
+    displayName = "Wolfram Language ${wolfram-engine.version}";
+    argv = [
+      "${wolfram-engine}/bin/wolfram"
+      "-script"
+      "${kernel}/share/Wolfram/WolframLanguageForJupyter/Resources/KernelForWolframLanguageForJupyter.wl"
+      "{connection_file}"
+      "ScriptInstall" # suppresses prompt
+    ];
+    language = "Wolfram Language";
+    logo32 = "${wolfram-engine}/share/icons/hicolor/32x32/apps/wolfram-wolframlanguage.png";
+    logo64 = "${wolfram-engine}/share/icons/hicolor/64x64/apps/wolfram-wolframlanguage.png";
+  };
+}
diff --git a/pkgs/applications/editors/jupyter-kernels/wolfram/kernel.nix b/pkgs/applications/editors/jupyter-kernels/wolfram/kernel.nix
new file mode 100644
index 0000000000000..65b02bac59b8d
--- /dev/null
+++ b/pkgs/applications/editors/jupyter-kernels/wolfram/kernel.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "wolfram-for-jupyter-kernel";
+  version = "0.9.2";
+
+  src = fetchFromGitHub {
+    owner = "WolframResearch";
+    repo = "WolframLanguageForJupyter";
+    rev = "v${version}";
+    sha256 = "19d9dvr0bv7iy0x8mk4f576ha7z7h7id39nyrggwf9cp7gymxf47";
+  };
+
+  dontConfigure = true;
+
+  installPhase = ''
+    patchShebangs ./configure-jupyter.wls
+    mkdir -p $out/share/Wolfram
+    cp -r {WolframLanguageForJupyter,images,extras,LICENSE} $out/share/Wolfram
+  '';
+
+  # no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A Jupyter kernel for Wolfram Language.";
+    homepage = "https://github.com/WolframResearch/WolframLanguageForJupyter";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fbeffa ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names b/pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names
index 6cf7d30f27492..a6cae7a4505b3 100644
--- a/pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names
+++ b/pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names
@@ -1,19 +1,20 @@
-alexherbo2/auto-pairs.kak
-alexherbo2/replace-mode.kak
-alexherbo2/sleuth.kak
-andreyorst/fzf.kak
-andreyorst/powerline.kak
-basbebe/pandoc.kak
-danr/kakoune-easymotion
-Delapouite/kakoune-buffers
-Delapouite/kakoune-registers
-enricozb/tabs.kak@main
-greenfork/active-window.kak
-kakoune-editor/kakoune-extra-filetypes
-kakounedotcom/connect.kak
-kakounedotcom/prelude.kak
-lePerdu/kakboard
-listentolist/kakoune-rainbow
-mayjs/openscad.kak
-occivink/kakoune-buffer-switcher
-occivink/kakoune-vertical-selection
+repo,branch,alias
+alexherbo2/auto-pairs.kak,,
+alexherbo2/replace-mode.kak,,
+alexherbo2/sleuth.kak,,
+andreyorst/fzf.kak,,
+andreyorst/powerline.kak,,
+basbebe/pandoc.kak,,
+danr/kakoune-easymotion,,
+Delapouite/kakoune-buffers,,
+Delapouite/kakoune-registers,,
+enricozb/tabs.kak@main,,
+greenfork/active-window.kak,,
+kakoune-editor/kakoune-extra-filetypes,,
+kakounedotcom/connect.kak,,
+kakounedotcom/prelude.kak,,
+lePerdu/kakboard,,
+listentolist/kakoune-rainbow,,
+mayjs/openscad.kak,,
+occivink/kakoune-buffer-switcher,,
+occivink/kakoune-vertical-selection,,
diff --git a/pkgs/applications/editors/lapce/default.nix b/pkgs/applications/editors/lapce/default.nix
index 2653806a14f34..d13b4c05302db 100644
--- a/pkgs/applications/editors/lapce/default.nix
+++ b/pkgs/applications/editors/lapce/default.nix
@@ -17,22 +17,27 @@
 , vulkan-loader
 , copyDesktopItems
 , makeDesktopItem
+, openssl
+, libobjc
+, Security
+, CoreServices
+, ApplicationServices
+, Carbon
+, AppKit
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "lapce";
-  version = "0.0.10";
+  version = "0.0.12";
 
   src = fetchFromGitHub {
     owner = "lapce";
     repo = pname;
     rev = "v${version}";
-    sha256 = "tOVFm4DFQurFU4DtpPwxXQLbTGCZnrV1FfYKtvkRxRE=";
+    sha256 = "sha256-ZFQjQ5+G0b0Fgg3+du/drt+62rC/TCNR5MIdJXAkTrE=";
   };
 
-  cargoPatches = [ ./fix-version.patch ];
-
-  cargoSha256 = "BwB3KgmI5XnZ5uHv6f+kGKBzpyxPWcoKvF7qw90eorI=";
+  cargoSha256 = "sha256-sMTootPsenaWzLLFImo6HWC1pcm2uFupPhVWsUJp1Ak=";
 
   nativeBuildInputs = [
     cmake
@@ -42,7 +47,12 @@ rustPlatform.buildRustPackage rec {
     copyDesktopItems
   ];
 
+  # Get openssl-sys to use pkg-config
+  OPENSSL_NO_VENDOR = 1;
+
   buildInputs = [
+    openssl
+  ] ++ lib.optionals stdenv.isLinux [
     freetype
     fontconfig
     libxkbcommon
@@ -52,10 +62,17 @@ rustPlatform.buildRustPackage rec {
     libXrandr
     libXi
     vulkan-loader
+  ] ++ lib.optionals stdenv.isDarwin [
+    libobjc
+    Security
+    CoreServices
+    ApplicationServices
+    Carbon
+    AppKit
   ];
 
   # Add missing vulkan dependency to rpath
-  preFixup = ''
+  preFixup = lib.optionalString stdenv.isLinux ''
     patchelf --add-needed ${vulkan-loader}/lib/libvulkan.so.1 $out/bin/lapce
   '';
 
@@ -78,6 +95,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/lapce/lapce";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ elliot ];
-    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/applications/editors/lapce/fix-version.patch b/pkgs/applications/editors/lapce/fix-version.patch
deleted file mode 100644
index 2a8d96be1696f..0000000000000
--- a/pkgs/applications/editors/lapce/fix-version.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/Cargo.lock b/Cargo.lock
-index bc9a0f8..45a74ad 100644
---- a/Cargo.lock
-+++ b/Cargo.lock
-@@ -2165,7 +2165,7 @@ dependencies = [
- 
- [[package]]
- name = "lapce"
--version = "0.0.9"
-+version = "0.0.10"
- dependencies = [
-  "lapce-core",
-  "lapce-proxy",
-@@ -2173,7 +2173,7 @@ dependencies = [
- 
- [[package]]
- name = "lapce-core"
--version = "0.0.9"
-+version = "0.0.10"
- dependencies = [
-  "Inflector",
-  "alacritty_terminal 0.15.0",
-@@ -2233,7 +2233,7 @@ dependencies = [
- 
- [[package]]
- name = "lapce-proxy"
--version = "0.0.9"
-+version = "0.0.10"
- dependencies = [
-  "alacritty_terminal 0.16.0-rc2",
-  "anyhow",
diff --git a/pkgs/applications/editors/marker/default.nix b/pkgs/applications/editors/marker/default.nix
index c6779b8fba874..93b8dabb6814e 100644
--- a/pkgs/applications/editors/marker/default.nix
+++ b/pkgs/applications/editors/marker/default.nix
@@ -1,5 +1,7 @@
-{ lib, stdenv
+{ stdenv
+, lib
 , fetchFromGitHub
+, itstool
 , meson
 , ninja
 , pkg-config
@@ -24,6 +26,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
+    itstool
     meson
     ninja
     pkg-config
diff --git a/pkgs/applications/editors/mg/default.nix b/pkgs/applications/editors/mg/default.nix
index c6f014238ea71..8545be13e3b91 100644
--- a/pkgs/applications/editors/mg/default.nix
+++ b/pkgs/applications/editors/mg/default.nix
@@ -11,6 +11,10 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-qnb0yB/NNJV257dsLmP84brajoRG03U+Ja1ACYbBvbE=";
   };
 
+  postPatch = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+    substituteInPlace configure --replace "./conftest" "echo"
+  '';
+
   enableParallelBuilding = true;
 
   makeFlags = [ "PKG_CONFIG=${buildPackages.pkg-config}/bin/${buildPackages.pkg-config.targetPrefix}pkg-config" ];
diff --git a/pkgs/applications/editors/mle/default.nix b/pkgs/applications/editors/mle/default.nix
index d57e4d36b4e38..55249dde579b6 100644
--- a/pkgs/applications/editors/mle/default.nix
+++ b/pkgs/applications/editors/mle/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, termbox, pcre, uthash, lua5_3 }:
+{ lib, stdenv, fetchFromGitHub, termbox, pcre, uthash, lua5_3, makeWrapper, installShellFiles }:
 
 stdenv.mkDerivation rec {
   pname = "mle";
@@ -18,12 +18,22 @@ stdenv.mkDerivation rec {
     patchShebangs tests/*
   '';
 
+  nativeBuildInputs = [ makeWrapper installShellFiles ];
+
   buildInputs = [ termbox pcre uthash lua5_3 ];
 
   doCheck = true;
 
   installFlags = [ "prefix=${placeholder "out"}" ];
 
+  postInstall = ''
+    installManPage mle.1
+  '';
+
+  postFixup = lib.optionalString stdenv.isDarwin ''
+    wrapProgram $out/bin/mle --prefix DYLD_LIBRARY_PATH : ${termbox}/lib
+  '';
+
   meta = with lib; {
     description = "Small, flexible terminal-based text editor";
     homepage = "https://github.com/adsr/mle";
diff --git a/pkgs/applications/editors/neovim/default.nix b/pkgs/applications/editors/neovim/default.nix
index e06096933c975..b4858b21eeedb 100644
--- a/pkgs/applications/editors/neovim/default.nix
+++ b/pkgs/applications/editors/neovim/default.nix
@@ -25,13 +25,13 @@ let
 in
   stdenv.mkDerivation rec {
     pname = "neovim-unwrapped";
-    version = "0.6.1";
+    version = "0.7.0";
 
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "neovim";
       rev = "v${version}";
-      sha256 = "sha256-0XCW047WopPr3pRTy9rF3Ff6MvNRHT4FletzOERD41A=";
+      sha256 = "sha256-eYYaHpfSaYYrLkcD81Y4rsAMYDP1IJ7fLJJepkACkA8=";
     };
 
     patches = [
diff --git a/pkgs/applications/editors/neovim/neovide/default.nix b/pkgs/applications/editors/neovim/neovide/default.nix
index 2c0a50bfed6b9..9cb786989efb8 100644
--- a/pkgs/applications/editors/neovim/neovide/default.nix
+++ b/pkgs/applications/editors/neovim/neovide/default.nix
@@ -25,16 +25,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "neovide";
-  version = "unstable-2022-02-04";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "Kethku";
     repo = "neovide";
-    rev = "92bc1725f1733547eb0ae25b740425f03f358c2a";
-    sha256 = "sha256-bKTteaj6gddp0NuV5Y0pfHotezU9Hmb136xOC9zkJ/M=";
+    rev = version;
+    sha256 = "sha256-pbniOWjEw1Z+PoXqbbFOUkW5Ii1UDOMoZpAvVF1uNEg=";
   };
 
-  cargoSha256 = "sha256-TaZN49ou6bf1vW0mEsmaItp1c73d0M826MMrSGXpnGE=";
+  cargoSha256 = "sha256-7o7uJXH68pvfuiG1eSNmbPx8OO8QJjCe+oEFl38bFm4=";
 
   SKIA_SOURCE_DIR =
     let
@@ -46,7 +46,7 @@ rustPlatform.buildRustPackage rec {
         sha256 = "sha256-F1DWLm7bdKnuCu5tMMekxSyaGq8gPRNtZwcRVXJxjZQ=";
       };
       # The externals for skia are taken from skia/DEPS
-      externals = lib.mapAttrs (n: v: fetchgit v) (lib.importJSON ./skia-externals.json);
+      externals = lib.mapAttrs (n: fetchgit) (lib.importJSON ./skia-externals.json);
     in
       runCommand "source" {} (
         ''
@@ -128,7 +128,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Kethku/neovide";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ck3d ];
-    platforms = platforms.unix;
+    platforms = platforms.linux;
     mainProgram = "neovide";
   };
 }
diff --git a/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock b/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock
index 7a1975c37c6b5..9a8aaeeb56c42 100644
--- a/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock
+++ b/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock
@@ -1,9 +1,9 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    msgpack (1.4.2)
+    msgpack (1.5.1)
     multi_json (1.15.0)
-    neovim (0.8.1)
+    neovim (0.9.0)
       msgpack (~> 1.1)
       multi_json (~> 1.0)
 
diff --git a/pkgs/applications/editors/neovim/ruby_provider/gemset.nix b/pkgs/applications/editors/neovim/ruby_provider/gemset.nix
index 60dcc8ba38323..1a4f517412fe4 100644
--- a/pkgs/applications/editors/neovim/ruby_provider/gemset.nix
+++ b/pkgs/applications/editors/neovim/ruby_provider/gemset.nix
@@ -4,17 +4,17 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06iajjyhx0rvpn4yr3h1hc4w4w3k59bdmfhxnjzzh76wsrdxxrc6";
+      sha256 = "sha256-fPWiGi0w4OFlMZOIf3gd21jyeYhg5t/VdLz7kK9fD8Q=";
       type = "gem";
     };
-    version = "1.4.2";
+    version = "1.5.1";
   };
   multi_json = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
+      sha256 = "sha256-H9BBOLbkqQAX6NG4BMA5AxOZhm/z+6u3girqNnx4YV0=";
       type = "gem";
     };
     version = "1.15.0";
@@ -25,9 +25,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lfrbi4r6lagn2q92lyivk2w22i2spw0jbdzxxlcfj2zhv2wnvvi";
+      sha256 = "sha256-hRI43XGHGeqxMvpFjp0o79GGReiLXTkhwh5LYq6AQL4=";
       type = "gem";
     };
-    version = "0.8.1";
+    version = "0.9.0";
   };
 }
diff --git a/pkgs/applications/editors/oed/default.nix b/pkgs/applications/editors/oed/default.nix
index 2281ca8c08b3d..f4012220c50d5 100644
--- a/pkgs/applications/editors/oed/default.nix
+++ b/pkgs/applications/editors/oed/default.nix
@@ -14,6 +14,15 @@ stdenv.mkDerivation rec {
     hash = "sha256-Z8B1RIFve3UPj+9G/WJX0BNc2ynG/qtoGfoesarYGz8=";
   };
 
+  postPatch = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+    substituteInPlace configure --replace "./conftest" "echo"
+  '';
+
+  installPhase = ''
+    install -m755 -Dt $out/bin ed
+    install -m644 -Dt $out/share/man/man1 ed.1
+  '';
+
   meta = with lib; {
     homepage = "https://github.com/ibara/oed";
     description = "Portable ed editor from OpenBSD";
diff --git a/pkgs/applications/editors/pinegrow/default.nix b/pkgs/applications/editors/pinegrow/default.nix
index dfcf8e4f787c2..a91c5f64c0979 100644
--- a/pkgs/applications/editors/pinegrow/default.nix
+++ b/pkgs/applications/editors/pinegrow/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   version = "6.5";
 
   src = fetchurl {
-    url = "https://download.pinegrow.com/PinegrowLinux64.${version}.zip";
+    url = "https://github.com/Pinegrow/PinegrowReleases/releases/download/pg${version}/PinegrowLinux64.${version}.zip";
     sha256 = "1l7cf5jgidpykaf68mzf92kywl1vxwl3fg43ibgr2rg4cnl1g82b";
   };
 
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://pinegrow.com";
     description = "UI Web Editor";
-    platforms = platforms.linux;
+    platforms = [ "x86_64-linux" ];
     license = with licenses; [ unfreeRedistributable ];
     maintainers = with maintainers; [ gador ];
   };
diff --git a/pkgs/applications/editors/poke/default.nix b/pkgs/applications/editors/poke/default.nix
index c2ade207d6093..77466cfdbea86 100644
--- a/pkgs/applications/editors/poke/default.nix
+++ b/pkgs/applications/editors/poke/default.nix
@@ -22,11 +22,11 @@ let
   isCross = stdenv.hostPlatform != stdenv.buildPlatform;
 in stdenv.mkDerivation rec {
   pname = "poke";
-  version = "2.2";
+  version = "2.3";
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-xF6k5xpRohhTZzhcAc65dZbsW3EDOGm+xKYLHLciWQM=";
+    sha256 = "sha256-NpDPERbafLOp7GtPcAPiU+JotRAhKiiP04qv7Q68x2Y=";
   };
 
   outputs = [ "out" "dev" "info" "lib" "man" ];
diff --git a/pkgs/applications/editors/rstudio/default.nix b/pkgs/applications/editors/rstudio/default.nix
index eada77eea8433..8d4aa112cdb66 100644
--- a/pkgs/applications/editors/rstudio/default.nix
+++ b/pkgs/applications/editors/rstudio/default.nix
@@ -154,7 +154,7 @@ in
     hunspellDictionaries = with lib; filter isDerivation (unique (attrValues hunspellDicts));
     # These dicts contain identically-named dict files, so we only keep the
     # -large versions in case of clashes
-    largeDicts = with lib; filter (d: hasInfix "-large-wordlist" d) hunspellDictionaries;
+    largeDicts = with lib; filter (d: hasInfix "-large-wordlist" d.name) hunspellDictionaries;
     otherDicts = with lib; filter
       (d: !(hasAttr "dictFileName" d &&
         elem d.dictFileName (map (d: d.dictFileName) largeDicts)))
diff --git a/pkgs/applications/editors/setzer/default.nix b/pkgs/applications/editors/setzer/default.nix
index 3cfc37b36a032..cc1d08cc3f9b6 100644
--- a/pkgs/applications/editors/setzer/default.nix
+++ b/pkgs/applications/editors/setzer/default.nix
@@ -18,13 +18,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "setzer";
-  version = "0.4.4";
+  version = "0.4.7";
 
   src = fetchFromGitHub {
     owner = "cvfosammmm";
     repo = "Setzer";
     rev = "v${version}";
-    hash = "sha256-y39u1eSX7vzcIJzoykU7Y7FTmeZnBW/IlvJLzKHfz8Y=";
+    hash = "sha256-IP56jOiiIK9EW4D5yEdLc49rUzcvegAX3Yyk2ERK/pE=";
   };
 
   format = "other";
diff --git a/pkgs/applications/editors/vim/common.nix b/pkgs/applications/editors/vim/common.nix
index 13c5c49db482b..fe5d5b85080da 100644
--- a/pkgs/applications/editors/vim/common.nix
+++ b/pkgs/applications/editors/vim/common.nix
@@ -1,12 +1,12 @@
 { lib, fetchFromGitHub }:
 rec {
-  version = "8.2.4350";
+  version = "8.2.4609";
 
   src = fetchFromGitHub {
     owner = "vim";
     repo = "vim";
     rev = "v${version}";
-    sha256 = "sha256-+fCyLZi9+9r7tYoRQsVESkcoHHtM7vrVuOGdJi/9iF0=";
+    sha256 = "sha256-IiWZJ4zT+VbcxwKChl847pS9jU9AlxZ/yQUIL8I2MhQ=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix
index 92578520b98ec..88853f3e7d321 100644
--- a/pkgs/applications/editors/vim/plugins/generated.nix
+++ b/pkgs/applications/editors/vim/plugins/generated.nix
@@ -3,6 +3,451 @@
 
 final: prev:
 {
+  BetterLua-vim = buildVimPluginFrom2Nix {
+    pname = "BetterLua.vim";
+    version = "2020-08-14";
+    src = fetchFromGitHub {
+      owner = "euclidianAce";
+      repo = "BetterLua.vim";
+      rev = "d2d6c115575d09258a794a6f20ac60233eee59d5";
+      sha256 = "1rvlx21kw8865dg6q97hx9i2s1n8mn1nyhn0m7dkx625pghsx3js";
+    };
+    meta.homepage = "https://github.com/euclidianAce/BetterLua.vim/";
+  };
+
+  BufOnly-vim = buildVimPluginFrom2Nix {
+    pname = "BufOnly.vim";
+    version = "2010-10-18";
+    src = fetchFromGitHub {
+      owner = "vim-scripts";
+      repo = "BufOnly.vim";
+      rev = "43dd92303979bdb234a3cb2f5662847f7a3affe7";
+      sha256 = "1gvpaqvvxjma0dl1zai68bpv42608api4054appwkw9pgczkkcdl";
+    };
+    meta.homepage = "https://github.com/vim-scripts/BufOnly.vim/";
+  };
+
+  CheckAttach = buildVimPluginFrom2Nix {
+    pname = "CheckAttach";
+    version = "2019-05-08";
+    src = fetchFromGitHub {
+      owner = "chrisbra";
+      repo = "CheckAttach";
+      rev = "8f0b1350431d1d34655a147e6f1cfe6cb5dda5f7";
+      sha256 = "1z9a40nbdjd3pnp28nfsi2bijsbaiphc0ia816f5flkchn07gmmj";
+    };
+    meta.homepage = "https://github.com/chrisbra/CheckAttach/";
+  };
+
+  Colour-Sampler-Pack = buildVimPluginFrom2Nix {
+    pname = "Colour-Sampler-Pack";
+    version = "2012-11-30";
+    src = fetchFromGitHub {
+      owner = "vim-scripts";
+      repo = "Colour-Sampler-Pack";
+      rev = "05cded87b2ef29aaa9e930230bb88e23abff4441";
+      sha256 = "03v2r18sfgs0xbgy9p56pxfdg0lsk6m7wyr5hw63wm1nzpwiipg3";
+    };
+    meta.homepage = "https://github.com/vim-scripts/Colour-Sampler-Pack/";
+  };
+
+  Coqtail = buildVimPluginFrom2Nix {
+    pname = "Coqtail";
+    version = "2022-04-15";
+    src = fetchFromGitHub {
+      owner = "whonore";
+      repo = "Coqtail";
+      rev = "93fca5d307007c05722050ffa8b4e508ca6f3b81";
+      sha256 = "022wv0lpz50ihvnkc38rmds0dl4g4b71yig9dc8nn8sicyv0312w";
+    };
+    meta.homepage = "https://github.com/whonore/Coqtail/";
+  };
+
+  DoxygenToolkit-vim = buildVimPluginFrom2Nix {
+    pname = "DoxygenToolkit.vim";
+    version = "2010-11-06";
+    src = fetchFromGitHub {
+      owner = "vim-scripts";
+      repo = "DoxygenToolkit.vim";
+      rev = "afd8663d36d2ec19d26befdb10e89e912d26bbd3";
+      sha256 = "1za8li02j4nhqjjsyxg4p78638h5af4izim37zc0p1x55zr3i85r";
+    };
+    meta.homepage = "https://github.com/vim-scripts/DoxygenToolkit.vim/";
+  };
+
+  FTerm-nvim = buildVimPluginFrom2Nix {
+    pname = "FTerm.nvim";
+    version = "2022-04-17";
+    src = fetchFromGitHub {
+      owner = "numToStr";
+      repo = "FTerm.nvim";
+      rev = "c2a4c4bbd00da68d864683cd09a5d3a2b80de11d";
+      sha256 = "01xscq18slsib2liqp7mbd4wil6l61m2ipihg2i6a14s9bcd1b0y";
+    };
+    meta.homepage = "https://github.com/numToStr/FTerm.nvim/";
+  };
+
+  FixCursorHold-nvim = buildVimPluginFrom2Nix {
+    pname = "FixCursorHold.nvim";
+    version = "2022-02-17";
+    src = fetchFromGitHub {
+      owner = "antoinemadec";
+      repo = "FixCursorHold.nvim";
+      rev = "1bfb32e7ba1344925ad815cb0d7f901dbc0ff7c1";
+      sha256 = "0b1iffk6pa2zwd9fvlgqli72r8qj74b7hqkhlw6awhc7r1qj8m1q";
+    };
+    meta.homepage = "https://github.com/antoinemadec/FixCursorHold.nvim/";
+  };
+
+  Improved-AnsiEsc = buildVimPluginFrom2Nix {
+    pname = "Improved-AnsiEsc";
+    version = "2015-08-26";
+    src = fetchFromGitHub {
+      owner = "vim-scripts";
+      repo = "Improved-AnsiEsc";
+      rev = "e1c59a8e9203fab6b9150721f30548916da73351";
+      sha256 = "1smjs4kz2kmzprzp9az4957675nakb43146hshbby39j5xz4jsbz";
+    };
+    meta.homepage = "https://github.com/vim-scripts/Improved-AnsiEsc/";
+  };
+
+  Jenkinsfile-vim-syntax = buildVimPluginFrom2Nix {
+    pname = "Jenkinsfile-vim-syntax";
+    version = "2021-01-26";
+    src = fetchFromGitHub {
+      owner = "martinda";
+      repo = "Jenkinsfile-vim-syntax";
+      rev = "0d05729168ea44d60862f17cffa80024ab30bcc9";
+      sha256 = "05z30frs4f5z0l4qgxk08r7mb19bzhqs36hi213yin78cz62b9gy";
+    };
+    meta.homepage = "https://github.com/martinda/Jenkinsfile-vim-syntax/";
+  };
+
+  LanguageClient-neovim = buildVimPluginFrom2Nix {
+    pname = "LanguageClient-neovim";
+    version = "2020-12-10";
+    src = fetchFromGitHub {
+      owner = "autozimu";
+      repo = "LanguageClient-neovim";
+      rev = "a42594c9c320b1283e9b9058b85a8097d8325fed";
+      sha256 = "0lj9na3g2cl0vj56jz8rhz9lm2d3xps5glk8ds491i2ixy4vdm37";
+    };
+    meta.homepage = "https://github.com/autozimu/LanguageClient-neovim/";
+  };
+
+  LanguageTool-nvim = buildVimPluginFrom2Nix {
+    pname = "LanguageTool.nvim";
+    version = "2020-10-19";
+    src = fetchFromGitHub {
+      owner = "vigoux";
+      repo = "LanguageTool.nvim";
+      rev = "809e7d77fec834597f495fec737c59292a10025b";
+      sha256 = "1g12dz85xq8qd92dgna0a3w6zgxa74njlvmvly4k20610r63bzrn";
+    };
+    meta.homepage = "https://github.com/vigoux/LanguageTool.nvim/";
+  };
+
+  LeaderF = buildVimPluginFrom2Nix {
+    pname = "LeaderF";
+    version = "2022-04-19";
+    src = fetchFromGitHub {
+      owner = "Yggdroot";
+      repo = "LeaderF";
+      rev = "ecd38845d65ffbe4b080cc3c2c1c7f0bfe835bb3";
+      sha256 = "0cjx9v0fafm2npknr85wb37934ysdggnmiwr9cwbd5risp9ircwh";
+    };
+    meta.homepage = "https://github.com/Yggdroot/LeaderF/";
+  };
+
+  MatchTagAlways = buildVimPluginFrom2Nix {
+    pname = "MatchTagAlways";
+    version = "2017-05-20";
+    src = fetchFromGitHub {
+      owner = "Valloric";
+      repo = "MatchTagAlways";
+      rev = "352eb479a4ad1608e0880b79ab2357aac2cf4bed";
+      sha256 = "0y8gq4cs0wm2ijagc2frpmm664z355iridxyl5893576v5aqp8z1";
+    };
+    meta.homepage = "https://github.com/Valloric/MatchTagAlways/";
+  };
+
+  Navigator-nvim = buildVimPluginFrom2Nix {
+    pname = "Navigator.nvim";
+    version = "2022-04-11";
+    src = fetchFromGitHub {
+      owner = "numToStr";
+      repo = "Navigator.nvim";
+      rev = "52225923679ec866651bb0c2e0691374131ec939";
+      sha256 = "0knzisdbaa3aa20ai8lwi8v4ai49jl741a1slpcrjnm6zhb484nv";
+    };
+    meta.homepage = "https://github.com/numToStr/Navigator.nvim/";
+  };
+
+  NeoSolarized = buildVimPluginFrom2Nix {
+    pname = "NeoSolarized";
+    version = "2020-08-07";
+    src = fetchFromGitHub {
+      owner = "overcache";
+      repo = "NeoSolarized";
+      rev = "b94b1a9ad51e2de015266f10fdc6e142f97bd617";
+      sha256 = "019nz56yirpg1ahg8adfafrxznalw056qwm3xjm9kzg6da8j6v48";
+    };
+    meta.homepage = "https://github.com/overcache/NeoSolarized/";
+  };
+
+  NrrwRgn = buildVimPluginFrom2Nix {
+    pname = "NrrwRgn";
+    version = "2022-02-13";
+    src = fetchFromGitHub {
+      owner = "chrisbra";
+      repo = "NrrwRgn";
+      rev = "e027db9d94f94947153cd7b5ac9abd04371ab2b0";
+      sha256 = "0mcwyqbfc2m865w44s96ra2k0v1mn5kkkxf8i71iqhvc7fvnrfah";
+    };
+    meta.homepage = "https://github.com/chrisbra/NrrwRgn/";
+  };
+
+  PreserveNoEOL = buildVimPluginFrom2Nix {
+    pname = "PreserveNoEOL";
+    version = "2013-06-14";
+    src = fetchFromGitHub {
+      owner = "vim-scripts";
+      repo = "PreserveNoEOL";
+      rev = "940e3ce90e54d8680bec1135a21dcfbd6c9bfb62";
+      sha256 = "1726jpr2zf6jrb00pp082ikbx4mll3a877pnzs6i18f9fgpaqqgd";
+    };
+    meta.homepage = "https://github.com/vim-scripts/PreserveNoEOL/";
+  };
+
+  QFEnter = buildVimPluginFrom2Nix {
+    pname = "QFEnter";
+    version = "2020-10-09";
+    src = fetchFromGitHub {
+      owner = "yssl";
+      repo = "QFEnter";
+      rev = "df0a75b287c210f98ae353a12bbfdaf73d858beb";
+      sha256 = "0gdp7nmjlp8ng2rp2v66d8bincnkwrqqpbggb079f0f9szrqlp54";
+    };
+    meta.homepage = "https://github.com/yssl/QFEnter/";
+  };
+
+  Recover-vim = buildVimPluginFrom2Nix {
+    pname = "Recover.vim";
+    version = "2015-08-14";
+    src = fetchFromGitHub {
+      owner = "chrisbra";
+      repo = "Recover.vim";
+      rev = "efa491f6121f65e025f42d79a93081abb8db69d4";
+      sha256 = "17szim82bwnhf9q4n0n4jfmqkmhq6p0lh0j4y77a2x6lkn0pns5s";
+    };
+    meta.homepage = "https://github.com/chrisbra/Recover.vim/";
+  };
+
+  Rename = buildVimPluginFrom2Nix {
+    pname = "Rename";
+    version = "2011-08-31";
+    src = fetchFromGitHub {
+      owner = "vim-scripts";
+      repo = "Rename";
+      rev = "b240f28d2ede65fa77cd99fe045efe79202f7a34";
+      sha256 = "1d1myg4zyc281zcc1ba9idbgcgxndb4a0jwqr4yqxhhzdgszw46r";
+    };
+    meta.homepage = "https://github.com/vim-scripts/Rename/";
+  };
+
+  ReplaceWithRegister = buildVimPluginFrom2Nix {
+    pname = "ReplaceWithRegister";
+    version = "2014-10-31";
+    src = fetchFromGitHub {
+      owner = "vim-scripts";
+      repo = "ReplaceWithRegister";
+      rev = "832efc23111d19591d495dc72286de2fb0b09345";
+      sha256 = "0mb0sx85j1k59b1zz95r4vkq4kxlb4krhncq70mq7fxrs5bnhq8g";
+    };
+    meta.homepage = "https://github.com/vim-scripts/ReplaceWithRegister/";
+  };
+
+  SchemaStore-nvim = buildVimPluginFrom2Nix {
+    pname = "SchemaStore.nvim";
+    version = "2022-04-19";
+    src = fetchFromGitHub {
+      owner = "b0o";
+      repo = "SchemaStore.nvim";
+      rev = "4112585513210a3a55e587344649a4bfb8709bdc";
+      sha256 = "1sjm13vq8608xwfhc9hyfn1n4bwpgivnpw04331giwmf4j3kp422";
+    };
+    meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
+  };
+
+  Shade-nvim = buildVimPluginFrom2Nix {
+    pname = "Shade.nvim";
+    version = "2022-02-01";
+    src = fetchFromGitHub {
+      owner = "sunjon";
+      repo = "Shade.nvim";
+      rev = "4286b5abc47d62d0c9ffb22a4f388b7bf2ac2461";
+      sha256 = "0mb0cnf8065qmjq85hlgb4a1mqk1nwl7966l1imb54hpzw828rzl";
+    };
+    meta.homepage = "https://github.com/sunjon/Shade.nvim/";
+  };
+
+  ShowMultiBase = buildVimPluginFrom2Nix {
+    pname = "ShowMultiBase";
+    version = "2010-10-18";
+    src = fetchFromGitHub {
+      owner = "vim-scripts";
+      repo = "ShowMultiBase";
+      rev = "85a39fd12668ce973d3d9282263912b2b8f0d338";
+      sha256 = "0hg5352ahzgh2kwqha5v8ai024fld93xag93hb53wjf5b8nzsz8i";
+    };
+    meta.homepage = "https://github.com/vim-scripts/ShowMultiBase/";
+  };
+
+  SimpylFold = buildVimPluginFrom2Nix {
+    pname = "SimpylFold";
+    version = "2021-11-04";
+    src = fetchFromGitHub {
+      owner = "tmhedberg";
+      repo = "SimpylFold";
+      rev = "b4a87e509c3d873238a39d1c85d0b97d6819f283";
+      sha256 = "0ff5x7ay67wn9c0mi8sb6110i93zrf97c4whg0bd7pr2nmadpvk0";
+    };
+    meta.homepage = "https://github.com/tmhedberg/SimpylFold/";
+  };
+
+  SpaceCamp = buildVimPluginFrom2Nix {
+    pname = "SpaceCamp";
+    version = "2021-04-07";
+    src = fetchFromGitHub {
+      owner = "jaredgorski";
+      repo = "SpaceCamp";
+      rev = "376af5c2204de61726ea86b596acb2dab9795e1f";
+      sha256 = "0h3wxkswd5z9y46d6272sr210i73j5pwf5faw7qhr1plilfgx4gb";
+    };
+    meta.homepage = "https://github.com/jaredgorski/SpaceCamp/";
+  };
+
+  SpaceVim = buildVimPluginFrom2Nix {
+    pname = "SpaceVim";
+    version = "2022-04-19";
+    src = fetchFromGitHub {
+      owner = "SpaceVim";
+      repo = "SpaceVim";
+      rev = "a1b65988e72a091334cedfe7ed1d067819f4e1eb";
+      sha256 = "096q33lrgn4i8ic6y66snb312ly3rdxm8a15mykawn1n533d04nq";
+    };
+    meta.homepage = "https://github.com/SpaceVim/SpaceVim/";
+  };
+
+  Spacegray-vim = buildVimPluginFrom2Nix {
+    pname = "Spacegray.vim";
+    version = "2021-07-06";
+    src = fetchFromGitHub {
+      owner = "ackyshake";
+      repo = "Spacegray.vim";
+      rev = "c699ca10ed421c462bd1c87a158faaa570dc8e28";
+      sha256 = "0ma8w6p5jh6llka49x5j5ql8fmhv0bx5hhsn5b2phak79yqg1k61";
+    };
+    meta.homepage = "https://github.com/ackyshake/Spacegray.vim/";
+  };
+
+  SudoEdit-vim = buildVimPluginFrom2Nix {
+    pname = "SudoEdit.vim";
+    version = "2020-02-27";
+    src = fetchFromGitHub {
+      owner = "chrisbra";
+      repo = "SudoEdit.vim";
+      rev = "e203eada5b563e9134ce2aae26b09edae0904fd7";
+      sha256 = "0pf9iix50pw3p430ky51rv11ra1hppdpwa5flzcd5kciybr76n0n";
+    };
+    meta.homepage = "https://github.com/chrisbra/SudoEdit.vim/";
+  };
+
+  TrueZen-nvim = buildVimPluginFrom2Nix {
+    pname = "TrueZen.nvim";
+    version = "2021-10-12";
+    src = fetchFromGitHub {
+      owner = "Pocco81";
+      repo = "TrueZen.nvim";
+      rev = "508b977d71650da5c9243698614a9a1416f116d4";
+      sha256 = "0sr4y1mg83l28l5ias2pv0gxkcgwailfjn2skx35z63f2il3zkbx";
+    };
+    meta.homepage = "https://github.com/Pocco81/TrueZen.nvim/";
+  };
+
+  VimCompletesMe = buildVimPluginFrom2Nix {
+    pname = "VimCompletesMe";
+    version = "2022-02-18";
+    src = fetchFromGitHub {
+      owner = "ackyshake";
+      repo = "VimCompletesMe";
+      rev = "9adf692d7ae6424038458a89d4a411f0a27d1388";
+      sha256 = "1sndgb3291dyifaa8adri2mb8cgbinbar3nw1fnf67k9ahwycaz0";
+    };
+    meta.homepage = "https://github.com/ackyshake/VimCompletesMe/";
+  };
+
+  VimOrganizer = buildVimPluginFrom2Nix {
+    pname = "VimOrganizer";
+    version = "2020-12-15";
+    src = fetchFromGitHub {
+      owner = "hsitz";
+      repo = "VimOrganizer";
+      rev = "09636aed78441a9de2767fcef6d7c567f322cc40";
+      sha256 = "0phpcxmyz562yyp88rbx9pqg46w8r1lyapb700nvxwvqkcd82pfw";
+    };
+    meta.homepage = "https://github.com/hsitz/VimOrganizer/";
+  };
+
+  Vundle-vim = buildVimPluginFrom2Nix {
+    pname = "Vundle.vim";
+    version = "2019-08-17";
+    src = fetchFromGitHub {
+      owner = "VundleVim";
+      repo = "Vundle.vim";
+      rev = "b255382d6242d7ea3877bf059d2934125e0c4d95";
+      sha256 = "0fkmklcq3fgvd6x6irz9bgyvcdaxafykk3k89gsi9p6b0ikw3rw6";
+    };
+    meta.homepage = "https://github.com/VundleVim/Vundle.vim/";
+  };
+
+  YUNOcommit-vim = buildVimPluginFrom2Nix {
+    pname = "YUNOcommit.vim";
+    version = "2014-11-26";
+    src = fetchFromGitHub {
+      owner = "esneider";
+      repo = "YUNOcommit.vim";
+      rev = "981082055a73ef076d7e27477874d2303153a448";
+      sha256 = "0mjc7fn405vcx1n7vadl98p5wgm6jxrlbdbkqgjq8f1m1ir81zab";
+    };
+    meta.homepage = "https://github.com/esneider/YUNOcommit.vim/";
+  };
+
+  YankRing-vim = buildVimPluginFrom2Nix {
+    pname = "YankRing.vim";
+    version = "2015-07-29";
+    src = fetchFromGitHub {
+      owner = "vim-scripts";
+      repo = "YankRing.vim";
+      rev = "28854abef8fa4ebd3cb219aefcf22566997d8f65";
+      sha256 = "0zdp8pdsqgrh6lfw8ipjhrig6psvmdxkim9ik801y3r373sk2hxw";
+    };
+    meta.homepage = "https://github.com/vim-scripts/YankRing.vim/";
+  };
+
+  YouCompleteMe = buildVimPluginFrom2Nix {
+    pname = "YouCompleteMe";
+    version = "2022-04-02";
+    src = fetchFromGitHub {
+      owner = "ycm-core";
+      repo = "YouCompleteMe";
+      rev = "3ededaed2f9923d50bf3860ba8dace0f7d2724cd";
+      sha256 = "1n2h5wsp9vclsvzr40m1ffb6kjmcg0mccfj790giw77qa2i9s1rl";
+      fetchSubmodules = true;
+    };
+    meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
+  };
+
   a-vim = buildVimPluginFrom2Nix {
     pname = "a.vim";
     version = "2010-11-06";
@@ -41,12 +486,12 @@ final: prev:
 
   aerial-nvim = buildVimPluginFrom2Nix {
     pname = "aerial.nvim";
-    version = "2022-03-24";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "aerial.nvim";
-      rev = "b9f6067529ef123b8ace705ea356869f66aad320";
-      sha256 = "1wcdshvq2nw1dx8xxzplvq519bzzb3qgf7lh0sqafjd19nzgwiji";
+      rev = "6d5246a3f0d2861eaad4121eb467bc5e6537690d";
+      sha256 = "0by8s35hhvk38l79y5nm88cvwy53vx21ps1wg9niway5xrp0khcs";
     };
     meta.homepage = "https://github.com/stevearc/aerial.nvim/";
   };
@@ -77,12 +522,12 @@ final: prev:
 
   ale = buildVimPluginFrom2Nix {
     pname = "ale";
-    version = "2022-03-23";
+    version = "2022-04-06";
     src = fetchFromGitHub {
       owner = "dense-analysis";
       repo = "ale";
-      rev = "80dcd648d389965603246c2c5a4554e3e4aa184c";
-      sha256 = "1a38q83sgv13aw3iy40mjzkg1wsc5zmf5mmkjqpdcgv5aixyb8m5";
+      rev = "607f33a1b0f662d9809d54363e8e81a4965862ce";
+      sha256 = "0bqd1h1hid68x51032ysr44i4gg12xkqqfj1zn3hli31xf9zgcnx";
     };
     meta.homepage = "https://github.com/dense-analysis/ale/";
   };
@@ -101,12 +546,12 @@ final: prev:
 
   aniseed = buildVimPluginFrom2Nix {
     pname = "aniseed";
-    version = "2022-03-21";
+    version = "2022-04-09";
     src = fetchFromGitHub {
       owner = "Olical";
       repo = "aniseed";
-      rev = "bd79727af8a21037222a08ec9bcaf1c85488aaa4";
-      sha256 = "0l4hvhmf9cgw921956rh97x6aqhjzs2jxsdnk2m38a9fr738hknk";
+      rev = "c55d4879935f07dbf46e86389246449d7af272b1";
+      sha256 = "0yghy4yh5qw5x2qxwz8wp27gmhh7yp0pcgkdv2p1lcilvdz9321s";
     };
     meta.homepage = "https://github.com/Olical/aniseed/";
   };
@@ -161,12 +606,12 @@ final: prev:
 
   async-vim = buildVimPluginFrom2Nix {
     pname = "async.vim";
-    version = "2022-01-04";
+    version = "2022-04-04";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "async.vim";
-      rev = "f20569020d65bec3249222606c073c0943045b5e";
-      sha256 = "0lff0v2vd06amcjirnpa4wc4l4nsbngcrdqcv34kszyqgzd7phka";
+      rev = "2082d13bb195f3203d41a308b89417426a7deca1";
+      sha256 = "08mblrrkxn1hivj1yjrn3vx3skd6l3xl96800i6qrsbsjlx5s5k3";
     };
     meta.homepage = "https://github.com/prabirshrestha/async.vim/";
   };
@@ -209,12 +654,12 @@ final: prev:
 
   asynctasks-vim = buildVimPluginFrom2Nix {
     pname = "asynctasks.vim";
-    version = "2022-01-12";
+    version = "2022-04-06";
     src = fetchFromGitHub {
       owner = "skywind3000";
       repo = "asynctasks.vim";
-      rev = "dfecf57c79ded5ead2911e32caff46d8cede8c5c";
-      sha256 = "1w58y2ccgry47nhidqv4vg1wag7saphs2xad9wfpq65sj8vva3kk";
+      rev = "f1da08bb6bc1a458a7d0b3325eeabd0c77e08ff5";
+      sha256 = "1whc7irj0p07x3iy2r2rkkx89flsbv42pbjjbvhkj90fsv9wxcpd";
     };
     meta.homepage = "https://github.com/skywind3000/asynctasks.vim/";
   };
@@ -269,12 +714,12 @@ final: prev:
 
   auto-session = buildVimPluginFrom2Nix {
     pname = "auto-session";
-    version = "2022-03-15";
+    version = "2022-04-12";
     src = fetchFromGitHub {
       owner = "rmagatti";
       repo = "auto-session";
-      rev = "ba1606202588a1d4cc68360d6ef9549f0fc464a1";
-      sha256 = "029pwryrsc1hzxsc6jvin7vxx21rj2270kw2hqj0dj74qn8b8dg5";
+      rev = "e840b844abcc19ad6e406b193a2a5ce285238458";
+      sha256 = "0yx662qipzdmg28x0h454y95jrp952p51pl9h1dxjnwyswn8xrnm";
     };
     meta.homepage = "https://github.com/rmagatti/auto-session/";
   };
@@ -365,28 +810,16 @@ final: prev:
 
   better-escape-nvim = buildVimPluginFrom2Nix {
     pname = "better-escape.nvim";
-    version = "2022-03-14";
+    version = "2022-03-28";
     src = fetchFromGitHub {
       owner = "max397574";
       repo = "better-escape.nvim";
-      rev = "d2efbf0093235525e81f537f8f4e63f23acedf06";
-      sha256 = "1xx23v9jgpzdhyp1diyq0vc36vlxzljx36qnax2cms36kfnc398l";
+      rev = "d5ee0cef56a7e41a86048c14f25e964876ac20c1";
+      sha256 = "04hi2zmaz02fiyvjs94lqn7imp20fn2vpwww37sg7gim18b1mpl4";
     };
     meta.homepage = "https://github.com/max397574/better-escape.nvim/";
   };
 
-  BetterLua-vim = buildVimPluginFrom2Nix {
-    pname = "BetterLua.vim";
-    version = "2020-08-14";
-    src = fetchFromGitHub {
-      owner = "euclidianAce";
-      repo = "BetterLua.vim";
-      rev = "d2d6c115575d09258a794a6f20ac60233eee59d5";
-      sha256 = "1rvlx21kw8865dg6q97hx9i2s1n8mn1nyhn0m7dkx625pghsx3js";
-    };
-    meta.homepage = "https://github.com/euclidianAce/BetterLua.vim/";
-  };
-
   bitbake-vim = buildVimPluginFrom2Nix {
     pname = "bitbake.vim";
     version = "2021-02-06";
@@ -437,12 +870,12 @@ final: prev:
 
   bufdelete-nvim = buildVimPluginFrom2Nix {
     pname = "bufdelete.nvim";
-    version = "2022-03-24";
+    version = "2022-04-12";
     src = fetchFromGitHub {
       owner = "famiu";
       repo = "bufdelete.nvim";
-      rev = "05f9b2831abc693996b335494337b88e616e9eed";
-      sha256 = "09a5r51k8926v51ma45jfqqwwjnk52yy5ql9swmrxnvnrdsjah3p";
+      rev = "96454aedf95f52393a28cfcfc76482895de014ee";
+      sha256 = "0rr87wbqil2k2cia759kisllwcsbq0s3yhcl9h849qgd4gr2926h";
     };
     meta.homepage = "https://github.com/famiu/bufdelete.nvim/";
   };
@@ -461,28 +894,16 @@ final: prev:
 
   bufferline-nvim = buildVimPluginFrom2Nix {
     pname = "bufferline.nvim";
-    version = "2022-03-21";
+    version = "2022-04-20";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "bufferline.nvim";
-      rev = "e1202c6569353d03ef0cb3da11b839dba26854dd";
-      sha256 = "1nd5pvbg0yw8jl4rn56dzhabmiwkvlzb8iv595rrkqdb2msdl4qx";
+      rev = "f02e19bd29a27944e6bcc1e7a492fe07534b6630";
+      sha256 = "10gwj4kd7kngcrfgm4jja08ss5hza7s1bzs11fjk08y489mhracp";
     };
     meta.homepage = "https://github.com/akinsho/bufferline.nvim/";
   };
 
-  BufOnly-vim = buildVimPluginFrom2Nix {
-    pname = "BufOnly.vim";
-    version = "2010-10-18";
-    src = fetchFromGitHub {
-      owner = "vim-scripts";
-      repo = "BufOnly.vim";
-      rev = "43dd92303979bdb234a3cb2f5662847f7a3affe7";
-      sha256 = "1gvpaqvvxjma0dl1zai68bpv42608api4054appwkw9pgczkkcdl";
-    };
-    meta.homepage = "https://github.com/vim-scripts/BufOnly.vim/";
-  };
-
   calendar-vim = buildVimPluginFrom2Nix {
     pname = "calendar.vim";
     version = "2022-03-21";
@@ -507,18 +928,6 @@ final: prev:
     meta.homepage = "https://github.com/bkad/camelcasemotion/";
   };
 
-  catppuccin-nvim = buildVimPluginFrom2Nix {
-    pname = "catppuccin-nvim";
-    version = "2022-03-20";
-    src = fetchFromGitHub {
-      owner = "catppuccin";
-      repo = "nvim";
-      rev = "f079dda3dc23450d69b4bad11bfbd9af2c77f6f3";
-      sha256 = "1w0n96fbrkm3vdl64v1yzkly8wpcn5g9qflmpb8r1ww9hhig7a38";
-    };
-    meta.homepage = "https://github.com/catppuccin/nvim/";
-  };
-
   caw-vim = buildVimPluginFrom2Nix {
     pname = "caw.vim";
     version = "2021-09-20";
@@ -531,18 +940,6 @@ final: prev:
     meta.homepage = "https://github.com/tyru/caw.vim/";
   };
 
-  chadtree = buildVimPluginFrom2Nix {
-    pname = "chadtree";
-    version = "2022-03-24";
-    src = fetchFromGitHub {
-      owner = "ms-jpq";
-      repo = "chadtree";
-      rev = "e9606bfa350f277d54a61742d560e6122dc4d32c";
-      sha256 = "1vyg48ghr8fd15fh41pk5qlgngdqkw8gwhkkyq9hbvs2mxw8x80c";
-    };
-    meta.homepage = "https://github.com/ms-jpq/chadtree/";
-  };
-
   changeColorScheme-vim = buildVimPluginFrom2Nix {
     pname = "changeColorScheme.vim";
     version = "2010-10-18";
@@ -567,18 +964,6 @@ final: prev:
     meta.homepage = "https://github.com/sudormrfbin/cheatsheet.nvim/";
   };
 
-  CheckAttach = buildVimPluginFrom2Nix {
-    pname = "CheckAttach";
-    version = "2019-05-08";
-    src = fetchFromGitHub {
-      owner = "chrisbra";
-      repo = "CheckAttach";
-      rev = "8f0b1350431d1d34655a147e6f1cfe6cb5dda5f7";
-      sha256 = "1z9a40nbdjd3pnp28nfsi2bijsbaiphc0ia816f5flkchn07gmmj";
-    };
-    meta.homepage = "https://github.com/chrisbra/CheckAttach/";
-  };
-
   ci_dark = buildVimPluginFrom2Nix {
     pname = "ci_dark";
     version = "2022-03-27";
@@ -665,12 +1050,12 @@ final: prev:
 
   cmp-calc = buildVimPluginFrom2Nix {
     pname = "cmp-calc";
-    version = "2021-10-11";
+    version = "2022-04-12";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-calc";
-      rev = "eb7bd1d7382ac26d8eb7346e36405c0ae94333a2";
-      sha256 = "0b88fn4zb2sp4c9fnn9m8qb41djv17mmydhx6bryqnrc8mqycajy";
+      rev = "3bb9f0da74979ed1f5d77afa26aa8155daa9288f";
+      sha256 = "1qvpd3xx42rg38zdni85bcvakln5dz4xh79rqxa6z21dd3clp3ch";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-calc/";
   };
@@ -761,12 +1146,12 @@ final: prev:
 
   cmp-nvim-ultisnips = buildVimPluginFrom2Nix {
     pname = "cmp-nvim-ultisnips";
-    version = "2022-03-19";
+    version = "2022-04-15";
     src = fetchFromGitHub {
       owner = "quangnguyen30192";
       repo = "cmp-nvim-ultisnips";
-      rev = "f90ebb220306e39766ad0ec1f094e4e12bb2fdd4";
-      sha256 = "1pfa3fpjna1969a9ij40b4rmss413mzr5m27i2lhq21xw2f0fi6a";
+      rev = "c6ace8ca97ca7db5cca319759efd93fbf6cc0bce";
+      sha256 = "0jys7fl9r6n7khacypkg643lk2aadsnniyrm7nar0k08swdwhl48";
     };
     meta.homepage = "https://github.com/quangnguyen30192/cmp-nvim-ultisnips/";
   };
@@ -821,12 +1206,12 @@ final: prev:
 
   cmp-tabnine = buildVimPluginFrom2Nix {
     pname = "cmp-tabnine";
-    version = "2022-01-26";
+    version = "2022-04-04";
     src = fetchFromGitHub {
       owner = "tzachar";
       repo = "cmp-tabnine";
-      rev = "2a051347190a22b738e9784426199b9db745e1da";
-      sha256 = "1z3imhw4jgswd957aqhf1yf5dihb1k9dfd22abshziv45fb0fggy";
+      rev = "1c6e5c55f3a879354891c59cf27da733890bfc88";
+      sha256 = "1hmif83kl2h4zz4xqkxb0xc003wzlirr26znx0r1f8z54f1j1hik";
     };
     meta.homepage = "https://github.com/tzachar/cmp-tabnine/";
   };
@@ -881,12 +1266,12 @@ final: prev:
 
   cmp_luasnip = buildVimPluginFrom2Nix {
     pname = "cmp_luasnip";
-    version = "2022-03-26";
+    version = "2022-04-01";
     src = fetchFromGitHub {
       owner = "saadparwaiz1";
       repo = "cmp_luasnip";
-      rev = "85f2767842a35064f61128b71b8dab1e38c413c4";
-      sha256 = "13s04x9vx3n854q9abb0knls5aycxigbwqgllfmp2xgaycgxqksa";
+      rev = "b10829736542e7cc9291e60bab134df1273165c9";
+      sha256 = "1qygdas99m7py98rqxyza88lmk2as8yi9khjac603x6anxmq766l";
     };
     meta.homepage = "https://github.com/saadparwaiz1/cmp_luasnip/";
   };
@@ -929,12 +1314,12 @@ final: prev:
 
   coc-lua = buildVimPluginFrom2Nix {
     pname = "coc-lua";
-    version = "2022-03-08";
+    version = "2022-04-20";
     src = fetchFromGitHub {
       owner = "josa42";
       repo = "coc-lua";
-      rev = "5581530535bc10c42f84c16665d79fbaf7d49806";
-      sha256 = "1qf8gihw8bdn6253qly2d9d60ng95r20fy8v8l2vv5lfmzdaaz27";
+      rev = "0df59c8c81acfb7b0abadd49222a769ddf0730ec";
+      sha256 = "0ij2q9q96dv3rms6qdjsqvgyl0fk3w1h67fhjq7kcagci78cka9k";
     };
     meta.homepage = "https://github.com/josa42/coc-lua/";
   };
@@ -989,24 +1374,24 @@ final: prev:
 
   coc-nvim = buildVimPluginFrom2Nix {
     pname = "coc.nvim";
-    version = "2022-03-26";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "16e74f9b31d20b8dfc8933132beed4c175d824ea";
-      sha256 = "0nrfm8517fz31qrg0gfh888q7wcbxxkbpcp39ycvwkdfxpq1bzwr";
+      rev = "6f81e3034bf04f2d8d65b82b3ac15d93b737cf0b";
+      sha256 = "0hx8g0xlh0n6yqpv58s8vb2k0gdh1h13d05l1m3wn3gpvid17xi3";
     };
     meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
 
   codi-vim = buildVimPluginFrom2Nix {
     pname = "codi.vim";
-    version = "2022-03-20";
+    version = "2022-04-16";
     src = fetchFromGitHub {
       owner = "metakirby5";
       repo = "codi.vim";
-      rev = "7d2604c8ef8bf2154e191746692477da39aed399";
-      sha256 = "0na5nlzi9rz1gx1p98wksy6axmxkq4mmhxq3dzg0pv0m0137vi1g";
+      rev = "d9a93193dbb23516eebb19ef5ba01b43287ea35d";
+      sha256 = "0yk3jfp8r432s0kan0g6ml0yyz731yygv0zzpx75l9lfagdv0xpy";
     };
     meta.homepage = "https://github.com/metakirby5/codi.vim/";
   };
@@ -1035,18 +1420,6 @@ final: prev:
     meta.homepage = "https://github.com/lilydjwg/colorizer/";
   };
 
-  Colour-Sampler-Pack = buildVimPluginFrom2Nix {
-    pname = "Colour-Sampler-Pack";
-    version = "2012-11-30";
-    src = fetchFromGitHub {
-      owner = "vim-scripts";
-      repo = "Colour-Sampler-Pack";
-      rev = "05cded87b2ef29aaa9e930230bb88e23abff4441";
-      sha256 = "03v2r18sfgs0xbgy9p56pxfdg0lsk6m7wyr5hw63wm1nzpwiipg3";
-    };
-    meta.homepage = "https://github.com/vim-scripts/Colour-Sampler-Pack/";
-  };
-
   command-t = buildVimPluginFrom2Nix {
     pname = "command-t";
     version = "2022-02-25";
@@ -1062,12 +1435,12 @@ final: prev:
 
   comment-nvim = buildVimPluginFrom2Nix {
     pname = "comment.nvim";
-    version = "2022-03-25";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "numtostr";
       repo = "comment.nvim";
-      rev = "03b2a8f81102f2994f4888760e0f08385d841c3f";
-      sha256 = "1ilzpdyis41p1x6wbkavjpva5hvxclagw6hjn76vpmwibnz99pfy";
+      rev = "ef3e6bfa41073a73c298ae90d2796f8ceda71c6a";
+      sha256 = "1ki607wsam22h01gwq8a4vw3jq1yj2zmfp2laglh5cy5dgarm4vv";
     };
     meta.homepage = "https://github.com/numtostr/comment.nvim/";
   };
@@ -1206,12 +1579,12 @@ final: prev:
 
   conjure = buildVimPluginFrom2Nix {
     pname = "conjure";
-    version = "2022-02-15";
+    version = "2022-04-09";
     src = fetchFromGitHub {
       owner = "Olical";
       repo = "conjure";
-      rev = "6c53d863c0843be0f68a138def146d6b8f725b22";
-      sha256 = "1f5z99ac72433f2nj714fk6xd76mq7yr5i5z1afwgrhx61zbwn5h";
+      rev = "422cadf51dd44306713f3f7965e40ec606290c49";
+      sha256 = "04m1p4l2i61g7d3yax1g7c1h38pkkzz1jvirvd1xcyzw08wn7ldh";
     };
     meta.homepage = "https://github.com/Olical/conjure/";
   };
@@ -1230,12 +1603,12 @@ final: prev:
 
   copilot-vim = buildVimPluginFrom2Nix {
     pname = "copilot.vim";
-    version = "2022-02-15";
+    version = "2022-04-09";
     src = fetchFromGitHub {
       owner = "github";
       repo = "copilot.vim";
-      rev = "47eb231463d3654de1a205c4e30567fbd006965d";
-      sha256 = "06znz1869h7cdh9xc0b54mysslgpf3qdwsj5zvnzrzk6fnfin03q";
+      rev = "573da1aaadd7402c3ab22fb1ae6853db1dc82acb";
+      sha256 = "1j2rva50rl8kn480b613z6a0xnfwkvyi4amg9n4r2l89dxdsni84";
     };
     meta.homepage = "https://github.com/github/copilot.vim/";
   };
@@ -1254,28 +1627,16 @@ final: prev:
 
   coq_nvim = buildVimPluginFrom2Nix {
     pname = "coq_nvim";
-    version = "2022-03-26";
+    version = "2022-04-20";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "coq_nvim";
-      rev = "ad255350b66809d4af3aae75f4fb4dd576a06ab4";
-      sha256 = "17l6ajaj03d5v8abi8m754ypqwhz1nw232n15y8av15ll0pb7gk0";
+      rev = "0502a7f14ab73b80353d076842d58730a0239a16";
+      sha256 = "1s46iafdwxr20qw08si0lwbh81x9ffh2wvd4rxcyvhlxc7h686rp";
     };
     meta.homepage = "https://github.com/ms-jpq/coq_nvim/";
   };
 
-  Coqtail = buildVimPluginFrom2Nix {
-    pname = "Coqtail";
-    version = "2022-03-25";
-    src = fetchFromGitHub {
-      owner = "whonore";
-      repo = "Coqtail";
-      rev = "7a1cb8fb1cbdf136bba50a22ddcc056e83dc435c";
-      sha256 = "0jj966bansbfzbhbfgyqciis36s7z46n9n8ihy2m7vxynibbf9yp";
-    };
-    meta.homepage = "https://github.com/whonore/Coqtail/";
-  };
-
   cosco-vim = buildVimPluginFrom2Nix {
     pname = "cosco.vim";
     version = "2018-08-07";
@@ -1302,12 +1663,12 @@ final: prev:
 
   crates-nvim = buildVimPluginFrom2Nix {
     pname = "crates.nvim";
-    version = "2022-02-27";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "saecki";
       repo = "crates.nvim";
-      rev = "6f0837b598d9bf0a30bc30dff39114b2e0cb79f3";
-      sha256 = "1vr3p2yqdhf9515y4203h5vjgrc8gnjk1yl9lb4d83ywbbpgcxi0";
+      rev = "fc46bf69f0b2293f25581123b46023226d102cc1";
+      sha256 = "079hraq9cjxjpqrli4y2nk9xwpvkhxmrbrhxq9by1wb1q1a39da3";
     };
     meta.homepage = "https://github.com/saecki/crates.nvim/";
   };
@@ -1374,12 +1735,12 @@ final: prev:
 
   ctrlp-vim = buildVimPluginFrom2Nix {
     pname = "ctrlp.vim";
-    version = "2022-03-23";
+    version = "2022-04-14";
     src = fetchFromGitHub {
       owner = "ctrlpvim";
       repo = "ctrlp.vim";
-      rev = "40ee62ef9b415da647618b08d1b28d19180a22eb";
-      sha256 = "1f73gfbc59lx36xfdh2y6fcan2ia59m9vx1bjq32hj987iw2wxhy";
+      rev = "3ce448c9687ae96dea0caf4da388ecd8d9072f72";
+      sha256 = "1fgmj63844nydfqcxyxwmn528451dbh1s0y2fi38r10svwvddiil";
     };
     meta.homepage = "https://github.com/ctrlpvim/ctrlp.vim/";
   };
@@ -1434,12 +1795,12 @@ final: prev:
 
   defx-nvim = buildVimPluginFrom2Nix {
     pname = "defx.nvim";
-    version = "2022-03-01";
+    version = "2022-04-14";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "defx.nvim";
-      rev = "6d97ad7fae49f7c00644dd96da64e14c3e23c835";
-      sha256 = "0vyahlli5jg1a8m3dnln16n93jlzyimj0jx76dlbg7x906hkjd91";
+      rev = "b636df644005bb4805cba70b238df73b302640eb";
+      sha256 = "1aha5vashdiz59iy8l8kbkyvwngw5m7n131k7ar82gxi0zqsj6q8";
     };
     meta.homepage = "https://github.com/Shougo/defx.nvim/";
   };
@@ -1772,72 +2133,48 @@ final: prev:
 
   diffview-nvim = buildVimPluginFrom2Nix {
     pname = "diffview.nvim";
-    version = "2022-02-21";
+    version = "2022-04-14";
     src = fetchFromGitHub {
       owner = "sindrets";
       repo = "diffview.nvim";
-      rev = "cf32c3fcdbc2f6855f6bb883302c9f290e9c3d88";
-      sha256 = "0vikawxr40pkprsn8yzpacs33hfakpb98j5lmpf7sjmvyzkb1x8b";
+      rev = "2d1f45282587d565cc4d84112490bc944c0b491d";
+      sha256 = "0cwp07igj131fp650wk6nh80kygvlf7h0r8p915jsyxfh9y06p7i";
     };
     meta.homepage = "https://github.com/sindrets/diffview.nvim/";
   };
 
   direnv-vim = buildVimPluginFrom2Nix {
     pname = "direnv.vim";
-    version = "2022-03-04";
+    version = "2022-04-09";
     src = fetchFromGitHub {
       owner = "direnv";
       repo = "direnv.vim";
-      rev = "451e3637a15af7d4a206ac761af7a2247f139e0e";
-      sha256 = "0bynm225is7xkzkllx7d95cjarpxaj2yq1p0g2svgwxgqjhb6yhx";
+      rev = "4c858b8cd8cbfac998534096e6ffb710d7a07358";
+      sha256 = "1yjrjdwgsv6vi7mlabinxwfaizrd09jkg4w57gkch4xxw7sk6y23";
     };
     meta.homepage = "https://github.com/direnv/direnv.vim/";
   };
 
   doki-theme-vim = buildVimPluginFrom2Nix {
     pname = "doki-theme-vim";
-    version = "2022-02-16";
+    version = "2022-04-05";
     src = fetchFromGitHub {
       owner = "doki-theme";
       repo = "doki-theme-vim";
-      rev = "fe7112ce7db0c8c65420e82aabfe7a98be2b538b";
-      sha256 = "07vy5kf7pqsdqsz5jmqj6lm2aizcncfi4j1vmkpnjw9rpp3c733r";
+      rev = "5aa443597811208f5d3afbdbe9d4ead79339de58";
+      sha256 = "0jwm03fhwi9q57fgis31kgdf7l8jdb8glbh1is6rl9g0vb0a40ba";
     };
     meta.homepage = "https://github.com/doki-theme/doki-theme-vim/";
   };
 
-  DoxygenToolkit-vim = buildVimPluginFrom2Nix {
-    pname = "DoxygenToolkit.vim";
-    version = "2010-11-06";
-    src = fetchFromGitHub {
-      owner = "vim-scripts";
-      repo = "DoxygenToolkit.vim";
-      rev = "afd8663d36d2ec19d26befdb10e89e912d26bbd3";
-      sha256 = "1za8li02j4nhqjjsyxg4p78638h5af4izim37zc0p1x55zr3i85r";
-    };
-    meta.homepage = "https://github.com/vim-scripts/DoxygenToolkit.vim/";
-  };
-
-  dracula-vim = buildVimPluginFrom2Nix {
-    pname = "dracula-vim";
-    version = "2022-03-24";
-    src = fetchFromGitHub {
-      owner = "dracula";
-      repo = "vim";
-      rev = "d7723a842a6cfa2f62cf85530ab66eb418521dc2";
-      sha256 = "1qzil8rwpdzf64gq63ds0cf509ldam77l3fz02g1mia5dry75r02";
-    };
-    meta.homepage = "https://github.com/dracula/vim/";
-  };
-
   dressing-nvim = buildVimPluginFrom2Nix {
     pname = "dressing.nvim";
-    version = "2022-03-24";
+    version = "2022-03-31";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "dressing.nvim";
-      rev = "31f12fff6e71a14ddce30bfc7ec9b29a2137ccde";
-      sha256 = "0kjx04q2hnbvw68wh3d9li9p9s5d07j308kfhawpnhnmv6g57nzw";
+      rev = "cad08fac5ed6d5e8384d8c0759268e2f6b89b217";
+      sha256 = "0lc04cvq6iasg724zhpzp1j3bhwj4gphvqbzfh41ikzsy8d2jrpy";
     };
     meta.homepage = "https://github.com/stevearc/dressing.nvim/";
   };
@@ -1856,12 +2193,12 @@ final: prev:
 
   edge = buildVimPluginFrom2Nix {
     pname = "edge";
-    version = "2022-03-21";
+    version = "2022-04-14";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "edge";
-      rev = "36c08622c4420129fa576ceafa4ed3388d3beb56";
-      sha256 = "0hai4ns9chvqb8x7vgcl0i0lxqvqwxwhpa489zsqsp1lb436bwqc";
+      rev = "957a0f4d17f253ac23f9c870eb92d7ad2ea4b7e0";
+      sha256 = "15m6b5svvcfsmiq87vhn77q5z7zg22vpnh9qbcv0y6cd04s69n2d";
     };
     meta.homepage = "https://github.com/sainnhe/edge/";
   };
@@ -1905,28 +2242,16 @@ final: prev:
 
   elvish-vim = buildVimPluginFrom2Nix {
     pname = "elvish.vim";
-    version = "2019-06-29";
+    version = "2022-04-04";
     src = fetchFromGitHub {
       owner = "dmix";
       repo = "elvish.vim";
-      rev = "67ef8e89bff7cb8ea936f2164c8c268bbb3295f0";
-      sha256 = "133hr3i7zxysf2gnnimhz3gf3nda3fyfxmqq7mhq544v2mki4x9m";
+      rev = "ab3f9cff31fb3c2871d437dd058b13526ddf66a0";
+      sha256 = "1y1adg42iv0xhww2vxmxw3pky5syjc3djc1h2s7mm0bjg2marlha";
     };
     meta.homepage = "https://github.com/dmix/elvish.vim/";
   };
 
-  embark-vim = buildVimPluginFrom2Nix {
-    pname = "embark-vim";
-    version = "2022-03-26";
-    src = fetchFromGitHub {
-      owner = "embark-theme";
-      repo = "vim";
-      rev = "3f7f03aa2ae0d4185792aaf9b960bca0d22c48fd";
-      sha256 = "0gv2ivrwsrhnsr2kh56yj3m1l4ydwq27vllzxa5vkpbb11jydf3d";
-    };
-    meta.homepage = "https://github.com/embark-theme/vim/";
-  };
-
   emmet-vim = buildVimPluginFrom2Nix {
     pname = "emmet-vim";
     version = "2021-12-04";
@@ -1954,12 +2279,12 @@ final: prev:
 
   everforest = buildVimPluginFrom2Nix {
     pname = "everforest";
-    version = "2022-03-21";
+    version = "2022-04-14";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "everforest";
-      rev = "764e36cf49a5845217ef09281adf708ab5abd9e3";
-      sha256 = "03byh70krkcgcj6yis7x73bzs8b21qic5qhi01az057rp7mx462l";
+      rev = "64f486a4856bfbfd6604c700c938b34cf551561b";
+      sha256 = "18yxab99d9cy45ir2dfqr8wi0s56qyrzglgcslp97wnjiq79673d";
     };
     meta.homepage = "https://github.com/sainnhe/everforest/";
   };
@@ -2014,12 +2339,12 @@ final: prev:
 
   feline-nvim = buildVimPluginFrom2Nix {
     pname = "feline.nvim";
-    version = "2022-03-24";
+    version = "2022-04-12";
     src = fetchFromGitHub {
       owner = "feline-nvim";
       repo = "feline.nvim";
-      rev = "290bea8e8a782586de32bb8d0bfb056ff8acdb9c";
-      sha256 = "0sjg8hb6z9c7kscx26jkdxl31qy244w76iywy8xp7143kb9p0qx1";
+      rev = "79f5e9e5a76842b72f1814dcd4fc239a95ead391";
+      sha256 = "1svj1464hlash4igbai9mdman7cvlb8rfiyyylm7yn4wh8c2xb3k";
     };
     meta.homepage = "https://github.com/feline-nvim/feline.nvim/";
   };
@@ -2038,36 +2363,36 @@ final: prev:
 
   fern-vim = buildVimPluginFrom2Nix {
     pname = "fern.vim";
-    version = "2022-03-24";
+    version = "2022-04-14";
     src = fetchFromGitHub {
       owner = "lambdalisue";
       repo = "fern.vim";
-      rev = "45950d39965150a6c6bff1979303e735460379d0";
-      sha256 = "067aild4sr5zd08fn2dna9ndycf5i4w524kkz88yzhyr7h5rc0w4";
+      rev = "ab237a1e9e9ff2ea28f2d5d0c945beefd1c07d5b";
+      sha256 = "1ij2s7pb0lk532zdqg1j9anqagqhb9c8lmn17mabhrmi65a9dg6c";
     };
     meta.homepage = "https://github.com/lambdalisue/fern.vim/";
   };
 
   ferret = buildVimPluginFrom2Nix {
     pname = "ferret";
-    version = "2021-08-06";
+    version = "2022-04-17";
     src = fetchFromGitHub {
       owner = "wincent";
       repo = "ferret";
-      rev = "a513036f28d9ef1092d95ba7f183b3966a070194";
-      sha256 = "117ifszvd2f6h86ialqnm10j14bhhcyn4pjl0289zsyf2fk4kksn";
+      rev = "35757c7c9364d940efd8a46877acde04193819c2";
+      sha256 = "0b8y7qailjg2366dw03pbfsr7lq9js8jzfcpw8ljyfim94fcj650";
     };
     meta.homepage = "https://github.com/wincent/ferret/";
   };
 
   fidget-nvim = buildVimPluginFrom2Nix {
     pname = "fidget.nvim";
-    version = "2022-03-20";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "j-hui";
       repo = "fidget.nvim";
-      rev = "d47f2bbf7d984f69dc53bf2d37f9292e3e99ae8a";
-      sha256 = "0nw05yzy1a9yq8jvjgzq1y2wbq1x8rski6brmz3pn4rdmpkzqvsd";
+      rev = "956683191df04c5a401e1f1fb2e53b957fbcecaa";
+      sha256 = "1hwkm19x8zccwcnq72b8jk6dcmhngsxqcs3c02sarr2n0vqwvip0";
     };
     meta.homepage = "https://github.com/j-hui/fidget.nvim/";
   };
@@ -2084,18 +2409,6 @@ final: prev:
     meta.homepage = "https://github.com/bogado/file-line/";
   };
 
-  FixCursorHold-nvim = buildVimPluginFrom2Nix {
-    pname = "FixCursorHold.nvim";
-    version = "2022-02-17";
-    src = fetchFromGitHub {
-      owner = "antoinemadec";
-      repo = "FixCursorHold.nvim";
-      rev = "1bfb32e7ba1344925ad815cb0d7f901dbc0ff7c1";
-      sha256 = "0b1iffk6pa2zwd9fvlgqli72r8qj74b7hqkhlw6awhc7r1qj8m1q";
-    };
-    meta.homepage = "https://github.com/antoinemadec/FixCursorHold.nvim/";
-  };
-
   flake8-vim = buildVimPluginFrom2Nix {
     pname = "flake8-vim";
     version = "2020-10-20";
@@ -2147,12 +2460,12 @@ final: prev:
 
   formatter-nvim = buildVimPluginFrom2Nix {
     pname = "formatter.nvim";
-    version = "2022-03-22";
+    version = "2022-03-29";
     src = fetchFromGitHub {
       owner = "mhartington";
       repo = "formatter.nvim";
-      rev = "cc42c16a793cba102ac75574ab187a77995ba06b";
-      sha256 = "1qz87l2da378wcbbck6n9p82apl594x2kxldl4sxhy88rbbqi2vb";
+      rev = "bec8a57d6e990a503e87eb71ae530cd2c1402e31";
+      sha256 = "14llli9s5x58m7z4ay5b9d2pypq378h3i4062rasdqi5c5and07n";
     };
     meta.homepage = "https://github.com/mhartington/formatter.nvim/";
   };
@@ -2171,12 +2484,12 @@ final: prev:
 
   friendly-snippets = buildVimPluginFrom2Nix {
     pname = "friendly-snippets";
-    version = "2022-03-27";
+    version = "2022-04-17";
     src = fetchFromGitHub {
       owner = "rafamadriz";
       repo = "friendly-snippets";
-      rev = "e302658e765cf20e6af5a1be8cc07a996d6ee2cc";
-      sha256 = "15s2k776wf4qs3w101q6dwip8abqhsxb1f7xnx41zq7j1r09i20r";
+      rev = "804c3f55ec4ec46f7257451b3cd731df991b9212";
+      sha256 = "0sznw2q70zac924yf0z0ic3frmmjmryjh4af46fw2zrbrq4kk9vq";
     };
     meta.homepage = "https://github.com/rafamadriz/friendly-snippets/";
   };
@@ -2193,18 +2506,6 @@ final: prev:
     meta.homepage = "https://github.com/raghur/fruzzy/";
   };
 
-  FTerm-nvim = buildVimPluginFrom2Nix {
-    pname = "FTerm.nvim";
-    version = "2022-03-13";
-    src = fetchFromGitHub {
-      owner = "numToStr";
-      repo = "FTerm.nvim";
-      rev = "233633a5f6fe8398187a4eba93eba0828ef3d5f3";
-      sha256 = "0sxnii921xia4mrf67qz7ichi9xqr9zf193hb9dx199l7hl6k1p8";
-    };
-    meta.homepage = "https://github.com/numToStr/FTerm.nvim/";
-  };
-
   fugitive-gitlab-vim = buildVimPluginFrom2Nix {
     pname = "fugitive-gitlab.vim";
     version = "2021-09-20";
@@ -2267,12 +2568,12 @@ final: prev:
 
   fzf-vim = buildVimPluginFrom2Nix {
     pname = "fzf.vim";
-    version = "2022-03-07";
+    version = "2022-04-07";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "fzf.vim";
-      rev = "b23e4bb8f853cb9641a609c5c8545751276958b0";
-      sha256 = "02gz5j1pa8d7sgksjfikv8vf3gz41r6z33qwhiy9nvgnrwwmckwf";
+      rev = "d5f1f8641b24c0fd5b10a299824362a2a1b20ae0";
+      sha256 = "19yidjybsp41yj1yvdq5b01yph7sbd976bfq476hh7920ij6zqh2";
     };
     meta.homepage = "https://github.com/junegunn/fzf.vim/";
   };
@@ -2339,12 +2640,12 @@ final: prev:
 
   gina-vim = buildVimPluginFrom2Nix {
     pname = "gina.vim";
-    version = "2021-06-12";
+    version = "2022-03-30";
     src = fetchFromGitHub {
       owner = "lambdalisue";
       repo = "gina.vim";
-      rev = "abdbe0fe33f3b6fc59e94f7cc3072768f8dfd8ac";
-      sha256 = "1f3shh6jxr5i1an2dbb1vmc0l2xg03fm6ava25ahxg4b5ka59bc5";
+      rev = "ff6c2ddeca98f886b57fb42283c12e167d6ab575";
+      sha256 = "09jlnpix2dy6kggiz96mrm5l1f9x1gl5afpdmfrxgkighn2rwpzq";
     };
     meta.homepage = "https://github.com/lambdalisue/gina.vim/";
   };
@@ -2411,12 +2712,12 @@ final: prev:
 
   gitsigns-nvim = buildVimPluginFrom2Nix {
     pname = "gitsigns.nvim";
-    version = "2022-03-25";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "gitsigns.nvim";
-      rev = "2a107231d92fa37224efdbc475abfba71f94b5ee";
-      sha256 = "0i17r2c48csff7pl0k1vvc5j61xh3qv4xq6v75raz937w0kj6hfg";
+      rev = "498abfa13dd749be963bc87a5b37da0d3e42a50e";
+      sha256 = "11d2pnqgngm6546r1nr0cf1dj7qkgvdn0ld2h1jn3fm07l892sgv";
     };
     meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
   };
@@ -2447,12 +2748,12 @@ final: prev:
 
   glow-nvim = buildVimPluginFrom2Nix {
     pname = "glow.nvim";
-    version = "2022-03-10";
+    version = "2022-04-13";
     src = fetchFromGitHub {
       owner = "ellisonleao";
       repo = "glow.nvim";
-      rev = "64052ad16286281861de9281dc0695c80cc9ccc4";
-      sha256 = "0ykd5ps6i7256w6yxvpjp6yia85ds9ln8icd29lzddf1qpza4rnr";
+      rev = "0c76518e440f2ea4dbadd87beec8eea4ce030f17";
+      sha256 = "093qa13dd32rn8r50pw3s65186ch2i9wawf1dwylqymjn1afnqbk";
     };
     meta.homepage = "https://github.com/ellisonleao/glow.nvim/";
   };
@@ -2529,18 +2830,6 @@ final: prev:
     meta.homepage = "https://github.com/morhetz/gruvbox/";
   };
 
-  gruvbox-community = buildVimPluginFrom2Nix {
-    pname = "gruvbox-community";
-    version = "2022-03-06";
-    src = fetchFromGitHub {
-      owner = "gruvbox-community";
-      repo = "gruvbox";
-      rev = "b6f47ae7031f6746a1f1918c17574aa12c474ef0";
-      sha256 = "0m8rrm5v542a2c30sg7hlgm7r6gs4ah1n6nr5dc101l2064kg97g";
-    };
-    meta.homepage = "https://github.com/gruvbox-community/gruvbox/";
-  };
-
   gruvbox-flat-nvim = buildVimPluginFrom2Nix {
     pname = "gruvbox-flat.nvim";
     version = "2022-01-19";
@@ -2555,24 +2844,24 @@ final: prev:
 
   gruvbox-material = buildVimPluginFrom2Nix {
     pname = "gruvbox-material";
-    version = "2022-03-21";
+    version = "2022-04-14";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "gruvbox-material";
-      rev = "b8b63c81637c845e8a7c2dff4c206b714f7b93e4";
-      sha256 = "0ds72yyca1sgrr5b7i683i0lpfz6n75vrij94vc8z07ivn33qy2r";
+      rev = "45d05b6affeec1f858a13c0d8fe511db32c85afd";
+      sha256 = "18sf80zgdsfb2bd9dgdww9prlhkydk695gj9wd9zah24zfc5mcv7";
     };
     meta.homepage = "https://github.com/sainnhe/gruvbox-material/";
   };
 
   gruvbox-nvim = buildVimPluginFrom2Nix {
     pname = "gruvbox.nvim";
-    version = "2022-02-12";
+    version = "2022-04-18";
     src = fetchFromGitHub {
       owner = "ellisonleao";
       repo = "gruvbox.nvim";
-      rev = "dc6bae93ded04ac542d429ff5cc87189dde44294";
-      sha256 = "06mvdxi1pf9mw0zrk0cib3bi9p82ymdc3acm4r2rr4rqww8mrq4x";
+      rev = "028302225e19eb203ebb6876b689cc0ce2631169";
+      sha256 = "0npsh72z3xb9p1jdhz1g9jpx20c2d52mkkg4ix07bmy40ynkbsxs";
     };
     meta.homepage = "https://github.com/ellisonleao/gruvbox.nvim/";
   };
@@ -2603,12 +2892,12 @@ final: prev:
 
   harpoon = buildVimPluginFrom2Nix {
     pname = "harpoon";
-    version = "2022-02-16";
+    version = "2022-04-05";
     src = fetchFromGitHub {
       owner = "ThePrimeagen";
       repo = "harpoon";
-      rev = "b2bb0d6f2b8a55895afda53f0ad04527998d3411";
-      sha256 = "0izsscglfk6lpisxvarr0qw4m9br8854wi6jhyp2msd8r9gcrzi7";
+      rev = "28762aa04d6395538e26e1efff5213b26720e68f";
+      sha256 = "0c2fpwm8v2fzkg8rq7lhpv8lzm614y4x6n2xp612sj824jm7aj03";
     };
     meta.homepage = "https://github.com/ThePrimeagen/harpoon/";
   };
@@ -2699,12 +2988,12 @@ final: prev:
 
   hotpot-nvim = buildVimPluginFrom2Nix {
     pname = "hotpot.nvim";
-    version = "2022-03-23";
+    version = "2022-04-10";
     src = fetchFromGitHub {
       owner = "rktjmp";
       repo = "hotpot.nvim";
-      rev = "72704e1914648774a4fb42f57ca411d689e08ae6";
-      sha256 = "1dh6i2asqrhxc1irnhr46drn8ksj7xq81m6ankvy1gj8bkc74dmp";
+      rev = "8ccf600ccb5dbc28ea329d641a58e2fd6974d38e";
+      sha256 = "0kppddixgkzn3q8zbkgllqmwbxlr46p5hlnddqdv5lnp6fw4w6xf";
     };
     meta.homepage = "https://github.com/rktjmp/hotpot.nvim/";
   };
@@ -2759,28 +3048,16 @@ final: prev:
 
   impatient-nvim = buildVimPluginFrom2Nix {
     pname = "impatient.nvim";
-    version = "2022-03-22";
+    version = "2022-03-31";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "impatient.nvim";
-      rev = "989eefca3539b9958df100e8e3130f55eafe1709";
-      sha256 = "0cypb6nm0jlgf4cbsazwplvniiqrnda32nk2nkaqm0dbprs920sv";
+      rev = "2337df7d778e17a58d8709f651653b9039946d8d";
+      sha256 = "06gz1qsdqil1f2wsfyslk8vsdxxjjrsak0gfar2298ardaqb3dhp";
     };
     meta.homepage = "https://github.com/lewis6991/impatient.nvim/";
   };
 
-  Improved-AnsiEsc = buildVimPluginFrom2Nix {
-    pname = "Improved-AnsiEsc";
-    version = "2015-08-26";
-    src = fetchFromGitHub {
-      owner = "vim-scripts";
-      repo = "Improved-AnsiEsc";
-      rev = "e1c59a8e9203fab6b9150721f30548916da73351";
-      sha256 = "1smjs4kz2kmzprzp9az4957675nakb43146hshbby39j5xz4jsbz";
-    };
-    meta.homepage = "https://github.com/vim-scripts/Improved-AnsiEsc/";
-  };
-
   increment-activator = buildVimPluginFrom2Nix {
     pname = "increment-activator";
     version = "2021-09-16";
@@ -2819,12 +3096,12 @@ final: prev:
 
   indent-blankline-nvim = buildVimPluginFrom2Nix {
     pname = "indent-blankline.nvim";
-    version = "2022-03-25";
+    version = "2022-04-15";
     src = fetchFromGitHub {
       owner = "lukas-reineke";
       repo = "indent-blankline.nvim";
-      rev = "ebedbed53690a53cd15b53c124eb29f9faffc1d2";
-      sha256 = "1wsxvlpq78vyvgz6g0ji07dy1b10bsfr1qk9qdpj2n5592zp8zlk";
+      rev = "045d9582094b27f5ae04d8b635c6da8e97e53f1d";
+      sha256 = "0wxkvx1xy7p4872fh9ydsnnqlpwm9x3afwakgxv38l9vmk5mpid4";
     };
     meta.homepage = "https://github.com/lukas-reineke/indent-blankline.nvim/";
   };
@@ -2927,12 +3204,12 @@ final: prev:
 
   jedi-vim = buildVimPluginFrom2Nix {
     pname = "jedi-vim";
-    version = "2022-01-30";
+    version = "2022-04-08";
     src = fetchFromGitHub {
       owner = "davidhalter";
       repo = "jedi-vim";
-      rev = "32d05f7742dfb0ef84bee99e059ac3b7cb9526eb";
-      sha256 = "19z9i07w3wgf939fiy6kh7mq5pvlay3w37sm0sv4bmrdi42p8b4z";
+      rev = "e82d07faa17c3b3fe04b4fa6ab074e8e8601a596";
+      sha256 = "1h5zdwfi584kgjh1mws240mgirf9ai0nrc0rx0zylvcdfk19l9v1";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/davidhalter/jedi-vim/";
@@ -2962,18 +3239,6 @@ final: prev:
     meta.homepage = "https://github.com/nanotech/jellybeans.vim/";
   };
 
-  Jenkinsfile-vim-syntax = buildVimPluginFrom2Nix {
-    pname = "Jenkinsfile-vim-syntax";
-    version = "2021-01-26";
-    src = fetchFromGitHub {
-      owner = "martinda";
-      repo = "Jenkinsfile-vim-syntax";
-      rev = "0d05729168ea44d60862f17cffa80024ab30bcc9";
-      sha256 = "05z30frs4f5z0l4qgxk08r7mb19bzhqs36hi213yin78cz62b9gy";
-    };
-    meta.homepage = "https://github.com/martinda/Jenkinsfile-vim-syntax/";
-  };
-
   jq-vim = buildVimPluginFrom2Nix {
     pname = "jq.vim";
     version = "2019-05-21";
@@ -3012,12 +3277,12 @@ final: prev:
 
   kanagawa-nvim = buildVimPluginFrom2Nix {
     pname = "kanagawa.nvim";
-    version = "2022-03-21";
+    version = "2022-04-14";
     src = fetchFromGitHub {
       owner = "rebelot";
       repo = "kanagawa.nvim";
-      rev = "f5881a688b951cb35a7f36628b23ee4393d96daf";
-      sha256 = "1h4m0mcgvpdxh6pzkg2k5am9g31w8xpq84rcpqchvql7yhyjv4g7";
+      rev = "acf0f5d61236b416c804d649cd76db8390de9ae6";
+      sha256 = "03xmcph28q1y8n0ykga5m6biw9flpnx02sy7j2w3f1q2shknnwf3";
     };
     meta.homepage = "https://github.com/rebelot/kanagawa.nvim/";
   };
@@ -3058,30 +3323,6 @@ final: prev:
     meta.homepage = "https://github.com/qnighy/lalrpop.vim/";
   };
 
-  LanguageClient-neovim = buildVimPluginFrom2Nix {
-    pname = "LanguageClient-neovim";
-    version = "2020-12-10";
-    src = fetchFromGitHub {
-      owner = "autozimu";
-      repo = "LanguageClient-neovim";
-      rev = "a42594c9c320b1283e9b9058b85a8097d8325fed";
-      sha256 = "0lj9na3g2cl0vj56jz8rhz9lm2d3xps5glk8ds491i2ixy4vdm37";
-    };
-    meta.homepage = "https://github.com/autozimu/LanguageClient-neovim/";
-  };
-
-  LanguageTool-nvim = buildVimPluginFrom2Nix {
-    pname = "LanguageTool.nvim";
-    version = "2020-10-19";
-    src = fetchFromGitHub {
-      owner = "vigoux";
-      repo = "LanguageTool.nvim";
-      rev = "809e7d77fec834597f495fec737c59292a10025b";
-      sha256 = "1g12dz85xq8qd92dgna0a3w6zgxa74njlvmvly4k20610r63bzrn";
-    };
-    meta.homepage = "https://github.com/vigoux/LanguageTool.nvim/";
-  };
-
   last256 = buildVimPluginFrom2Nix {
     pname = "last256";
     version = "2020-12-09";
@@ -3108,36 +3349,24 @@ final: prev:
 
   lazygit-nvim = buildVimPluginFrom2Nix {
     pname = "lazygit.nvim";
-    version = "2022-03-06";
+    version = "2022-04-15";
     src = fetchFromGitHub {
       owner = "kdheepak";
       repo = "lazygit.nvim";
-      rev = "ca8ea75e5a1d838635fd2fcc5c3467a5bb33c4ec";
-      sha256 = "1h09yp9kmzbcraw88gdkzlv834p0yi5xacpmx4ksmp4yh4an6h5d";
+      rev = "68407ff60c1abe56cecedd4bec41380df5070a21";
+      sha256 = "080h4w55l36rvi4bb8z3bx2g41wp9lk08ihmz0jfmp7dzfgjszsi";
     };
     meta.homepage = "https://github.com/kdheepak/lazygit.nvim/";
   };
 
-  LeaderF = buildVimPluginFrom2Nix {
-    pname = "LeaderF";
-    version = "2022-03-22";
-    src = fetchFromGitHub {
-      owner = "Yggdroot";
-      repo = "LeaderF";
-      rev = "60e14a5bbd52a22578d6335c606d0539067b9327";
-      sha256 = "05bx5wm8r5rs4y51pkgb2m6bxzddacn7f3bdsgnmbvxz0rxyq8dp";
-    };
-    meta.homepage = "https://github.com/Yggdroot/LeaderF/";
-  };
-
   lean-nvim = buildVimPluginFrom2Nix {
     pname = "lean.nvim";
-    version = "2022-03-23";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "Julian";
       repo = "lean.nvim";
-      rev = "c22a0a6d288488a05a74aaa53dac4d2d71f7a30d";
-      sha256 = "0rb1gw3ndrjw5k1l2ckm936xp83krrwi3ylr27il8mdf4xllw3y8";
+      rev = "354630520ed3fe73c69796fb2e566a7c2125cd04";
+      sha256 = "1gwgbgg0dc0fwcdz6qs6mgvg0ybxgld3wm2wprq89abpacfz29dz";
     };
     meta.homepage = "https://github.com/Julian/lean.nvim/";
   };
@@ -3192,12 +3421,12 @@ final: prev:
 
   lf-vim = buildVimPluginFrom2Nix {
     pname = "lf.vim";
-    version = "2021-02-18";
+    version = "2022-03-30";
     src = fetchFromGitHub {
       owner = "ptzz";
       repo = "lf.vim";
-      rev = "73fb502c6d1470243b1f4d8afa81e289d9edd94b";
-      sha256 = "1whrzpavv46r64l3b7vax4sj23kjdfjiwmhfpssb6bprhc9c4j97";
+      rev = "eab8f04b2953f08e3fcd425585598d176369ae4b";
+      sha256 = "125qdj8grw1vilhfqzmjwcwk3r4f1m2kxnxga9klmgypjmcgnkxd";
     };
     meta.homepage = "https://github.com/ptzz/lf.vim/";
   };
@@ -3288,12 +3517,12 @@ final: prev:
 
   lightspeed-nvim = buildVimPluginFrom2Nix {
     pname = "lightspeed.nvim";
-    version = "2022-03-09";
+    version = "2022-04-04";
     src = fetchFromGitHub {
       owner = "ggandor";
       repo = "lightspeed.nvim";
-      rev = "58c9e321b188e040703b01f16922623911f11117";
-      sha256 = "1x9w6nk69a6xzhr9jpcvnw3jby09k49y7gikasxyq5gpq6rp9dfs";
+      rev = "cfde2b2fe0dafc5684780399961595357998f611";
+      sha256 = "0zcippcfv87vcsbld0kka4mn2lixg0r6m2c82g9bssf304skfhfr";
     };
     meta.homepage = "https://github.com/ggandor/lightspeed.nvim/";
   };
@@ -3324,12 +3553,12 @@ final: prev:
 
   lir-nvim = buildVimPluginFrom2Nix {
     pname = "lir.nvim";
-    version = "2022-03-27";
+    version = "2022-04-20";
     src = fetchFromGitHub {
       owner = "tamago324";
       repo = "lir.nvim";
-      rev = "00c30733467be30a72311e08030bba34ceb4f6df";
-      sha256 = "1psyvz4qb28mlkbxjs5xy6l4vhw9jyzc0j460xx2phiiz7raq852";
+      rev = "43b2fae50a49fbf435899201b0c687b72ab2cc8f";
+      sha256 = "0ayq5nj6mmxc4pd6sf49wllkr1bkgvx6dsdy0hl2f3w20sn5bpba";
     };
     meta.homepage = "https://github.com/tamago324/lir.nvim/";
   };
@@ -3360,12 +3589,12 @@ final: prev:
 
   litee-filetree-nvim = buildVimPluginFrom2Nix {
     pname = "litee-filetree.nvim";
-    version = "2022-03-08";
+    version = "2022-04-06";
     src = fetchFromGitHub {
       owner = "ldelossa";
       repo = "litee-filetree.nvim";
-      rev = "4f54ff9708c59385dd2f08aad1ba7df879e638fc";
-      sha256 = "076wyp90mr43xniv0zc7wh6rfk1wr50cpfw5lvaj6ai7dyys466n";
+      rev = "2a59ba7c362d1e39b80baa47dc237a7eeca42ba0";
+      sha256 = "1xw3p3jhyyggp82a8n99nqk9hnm8z6n84lclb2wjbma9a0xzk9kl";
     };
     meta.homepage = "https://github.com/ldelossa/litee-filetree.nvim/";
   };
@@ -3455,23 +3684,23 @@ final: prev:
 
   lsp_signature-nvim = buildVimPluginFrom2Nix {
     pname = "lsp_signature.nvim";
-    version = "2022-03-05";
+    version = "2022-04-16";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "lsp_signature.nvim";
-      rev = "e4f7dad45a1a3bb390977b4e69a528993bcefeac";
-      sha256 = "0smxcvgyc575kmz9aw20k47awh5j11ywnc1lpq1hdgkppxm7lnm2";
+      rev = "a351509512687293fd659ba4ee7e34412c3a8f70";
+      sha256 = "00xzd8b13krysdw21zm9ms902cxm04xl1wd2l7rb04431s2v9vc0";
     };
     meta.homepage = "https://github.com/ray-x/lsp_signature.nvim/";
   };
 
   lspkind-nvim = buildVimPluginFrom2Nix {
     pname = "lspkind-nvim";
-    version = "2022-02-05";
+    version = "2022-04-18";
     src = fetchFromGitHub {
       owner = "onsails";
       repo = "lspkind-nvim";
-      rev = "93e98a0c900327ce7e9be1cbf24aebbe7170e375";
+      rev = "57e5b5dfbe991151b07d272a06e365a77cc3d0e7";
       sha256 = "1c13ll09v16prhzgmv8pappck4x3ahhc5sizp6r61kb7k4mkfpfk";
     };
     meta.homepage = "https://github.com/onsails/lspkind-nvim/";
@@ -3515,24 +3744,24 @@ final: prev:
 
   lualine-nvim = buildVimPluginFrom2Nix {
     pname = "lualine.nvim";
-    version = "2022-03-27";
+    version = "2022-04-17";
     src = fetchFromGitHub {
       owner = "nvim-lualine";
       repo = "lualine.nvim";
-      rev = "f14175e142825c69c5b39e8f1564b9945a97d4aa";
-      sha256 = "0x6f88ixb6xd5nh3d8y5sql8yfyqs5fnpvdkdv9ywp7swzaydgqc";
+      rev = "18a07f790ed7ed1f11d1b130c02782e9dfd8dd7d";
+      sha256 = "09bfj2g7jn693xwi5f3zk90p4vg6jpijr1y8pl5k4hjbrg8nb68k";
     };
     meta.homepage = "https://github.com/nvim-lualine/lualine.nvim/";
   };
 
   luasnip = buildVimPluginFrom2Nix {
     pname = "luasnip";
-    version = "2022-03-27";
+    version = "2022-04-15";
     src = fetchFromGitHub {
       owner = "l3mon4d3";
       repo = "luasnip";
-      rev = "d03f0c32b2aa763915401421f6b084315936590f";
-      sha256 = "0qrryj40v70wl1mwn3jc0f50ygslc0848gppki5sxv1aq56a58ps";
+      rev = "6b67cb12747225a6412d8263bb97d6d2b8d9366a";
+      sha256 = "08a1kk8z3mcq65dh0hi44188dxkqjfg3yilr8viamyni1kwy7gf3";
     };
     meta.homepage = "https://github.com/l3mon4d3/luasnip/";
   };
@@ -3551,12 +3780,12 @@ final: prev:
 
   lush-nvim = buildVimPluginFrom2Nix {
     pname = "lush.nvim";
-    version = "2022-03-24";
+    version = "2022-04-12";
     src = fetchFromGitHub {
       owner = "rktjmp";
       repo = "lush.nvim";
-      rev = "fa7694fe221ca595d6f8c4f1aab531b4c1d48d7b";
-      sha256 = "14cs574nk0hr6mbf80gcjdarwbngbgj73s1grn6yczr2gqqqmhwk";
+      rev = "87e9039138051ae75f76235924a273ac1a78cc3e";
+      sha256 = "1plsm3xsf7bm709l6q341cbvm7na78a11b32n3j86j204zybdvbs";
     };
     meta.homepage = "https://github.com/rktjmp/lush.nvim/";
   };
@@ -3587,12 +3816,12 @@ final: prev:
 
   marks-nvim = buildVimPluginFrom2Nix {
     pname = "marks.nvim";
-    version = "2022-03-03";
+    version = "2022-04-03";
     src = fetchFromGitHub {
       owner = "chentau";
       repo = "marks.nvim";
-      rev = "74885b10abf792f61a612f5724030678b9704dab";
-      sha256 = "12653fd7h1s0hf55399vdk2w3aqyx8n8v62kgpvb62mywbg37bam";
+      rev = "8e80a20a170434bc77decc97bc4364c3ba848925";
+      sha256 = "0bah5xjrwq43ihw37gw8nxsj3qdh9fjqs9n7fkfhsg6hyp1qy4fc";
     };
     meta.homepage = "https://github.com/chentau/marks.nvim/";
   };
@@ -3609,42 +3838,18 @@ final: prev:
     meta.homepage = "https://github.com/vim-scripts/matchit.zip/";
   };
 
-  MatchTagAlways = buildVimPluginFrom2Nix {
-    pname = "MatchTagAlways";
-    version = "2017-05-20";
-    src = fetchFromGitHub {
-      owner = "Valloric";
-      repo = "MatchTagAlways";
-      rev = "352eb479a4ad1608e0880b79ab2357aac2cf4bed";
-      sha256 = "0y8gq4cs0wm2ijagc2frpmm664z355iridxyl5893576v5aqp8z1";
-    };
-    meta.homepage = "https://github.com/Valloric/MatchTagAlways/";
-  };
-
   material-nvim = buildVimPluginFrom2Nix {
     pname = "material.nvim";
-    version = "2022-03-25";
+    version = "2022-04-18";
     src = fetchFromGitHub {
       owner = "marko-cerovac";
       repo = "material.nvim";
-      rev = "82f74e8ec5d21a8ec9ebe1175c330a0b6e490212";
-      sha256 = "0hgcgj84d92js6i6skwzznz0ym8cgzwr4pz5aqi038g8ldpcx0ki";
+      rev = "9679aaf52e709b892a2cac044e44b694ea027709";
+      sha256 = "183afbjbblwx6r8ix1z3h7nq54fhbdf5w2nagwd850w90iq6kyic";
     };
     meta.homepage = "https://github.com/marko-cerovac/material.nvim/";
   };
 
-  mattn-calendar-vim = buildVimPluginFrom2Nix {
-    pname = "mattn-calendar-vim";
-    version = "2022-02-10";
-    src = fetchFromGitHub {
-      owner = "mattn";
-      repo = "calendar-vim";
-      rev = "2083a41e2d310f9bbbbf644517f30e901f1fb04d";
-      sha256 = "13wakcprkh93i7afykkpavxqvxssjh573pjjljsgip3y3778ms5q";
-    };
-    meta.homepage = "https://github.com/mattn/calendar-vim/";
-  };
-
   mayansmoke = buildVimPluginFrom2Nix {
     pname = "mayansmoke";
     version = "2010-10-18";
@@ -3659,24 +3864,24 @@ final: prev:
 
   mini-nvim = buildVimPluginFrom2Nix {
     pname = "mini.nvim";
-    version = "2022-03-26";
+    version = "2022-04-20";
     src = fetchFromGitHub {
       owner = "echasnovski";
       repo = "mini.nvim";
-      rev = "b0763e58ccb8b203f87fcd58fe2fecb095119f96";
-      sha256 = "0qbyvz7l9p9iia7mh41119zdgz2v8xrkp8wcxl6hyxqri18j49yn";
+      rev = "8134370549e73a5a72d24ffc7ea6a881cf4502ad";
+      sha256 = "0llkj31jkqnm3igs2f7cw8wxbc9877jk1mc2shnh1ii2dh0kmz68";
     };
     meta.homepage = "https://github.com/echasnovski/mini.nvim/";
   };
 
   minimap-vim = buildVimPluginFrom2Nix {
     pname = "minimap.vim";
-    version = "2022-01-31";
+    version = "2022-04-15";
     src = fetchFromGitHub {
       owner = "wfxr";
       repo = "minimap.vim";
-      rev = "c8ea2a5550b95b007631bc83908c48a3368eb57c";
-      sha256 = "08amdbn4xcdl7d09w3iqgrlyfmqnxlwmnild9q5mpqh5z372y6i0";
+      rev = "3395cbd51bf042ef6d2cd714eb493eb7ed5fbb76";
+      sha256 = "1bia6l9dhx0hk3jk38zgid8ljs28azrmz5xfp4mv5wa1g1kby0bl";
     };
     meta.homepage = "https://github.com/wfxr/minimap.vim/";
   };
@@ -3707,12 +3912,12 @@ final: prev:
 
   mkdx = buildVimPluginFrom2Nix {
     pname = "mkdx";
-    version = "2022-03-22";
+    version = "2022-04-08";
     src = fetchFromGitHub {
       owner = "SidOfc";
       repo = "mkdx";
-      rev = "e3f0718d53347e884f9f2282c35df0063ec6f9b1";
-      sha256 = "13j611r2hzz2ldbvir89bxab4cicy5nrg9s780dsriz2g4slj5hg";
+      rev = "a4645528e2ddedfb6350c142660c3e0468057f1c";
+      sha256 = "11vz3wmii9d1dhz4bvfqlax5s6yawd640xflyqvd1i45102p55vd";
     };
     meta.homepage = "https://github.com/SidOfc/mkdx/";
   };
@@ -3729,18 +3934,6 @@ final: prev:
     meta.homepage = "https://github.com/tomasr/molokai/";
   };
 
-  moonlight-nvim = buildVimPluginFrom2Nix {
-    pname = "moonlight.nvim";
-    version = "2021-05-16";
-    src = fetchFromGitHub {
-      owner = "shaunsingh";
-      repo = "moonlight.nvim";
-      rev = "e24e4218ec680b6396532808abf57ca0ada82e66";
-      sha256 = "0m9w3fpypsqxydjd93arbjqb5576nl40iy27i4ijlrqhgdhl49y3";
-    };
-    meta.homepage = "https://github.com/shaunsingh/moonlight.nvim/";
-  };
-
   mru = buildVimPluginFrom2Nix {
     pname = "mru";
     version = "2022-03-12";
@@ -3753,18 +3946,6 @@ final: prev:
     meta.homepage = "https://github.com/yegappan/mru/";
   };
 
-  Navigator-nvim = buildVimPluginFrom2Nix {
-    pname = "Navigator.nvim";
-    version = "2022-03-25";
-    src = fetchFromGitHub {
-      owner = "numToStr";
-      repo = "Navigator.nvim";
-      rev = "58d07e658c15b61ef7b6e375073b1f06934bc28f";
-      sha256 = "0d40rilwcxi7q36fnk4xpyx1cq3nb4yf22j8k8zq6mwg5h4j648r";
-    };
-    meta.homepage = "https://github.com/numToStr/Navigator.nvim/";
-  };
-
   ncm2 = buildVimPluginFrom2Nix {
     pname = "ncm2";
     version = "2022-03-17";
@@ -4031,24 +4212,24 @@ final: prev:
 
   neoformat = buildVimPluginFrom2Nix {
     pname = "neoformat";
-    version = "2022-03-23";
+    version = "2022-04-14";
     src = fetchFromGitHub {
       owner = "sbdchd";
       repo = "neoformat";
-      rev = "bccf41d62e874fd614d83c8b0e942cdda6b98012";
-      sha256 = "163pfqa33n1hzz3wb02ymisvl070lz1apcgyn349xbq4fz7ry3b9";
+      rev = "06920fa90ec7db3f81c6f842ebaf008c39e088cf";
+      sha256 = "1f5j7aisnpvykgj7p64cbvfww05fsv47pi04ckkh0gkc49g5sjmg";
     };
     meta.homepage = "https://github.com/sbdchd/neoformat/";
   };
 
   neogit = buildVimPluginFrom2Nix {
     pname = "neogit";
-    version = "2022-03-21";
+    version = "2022-04-13";
     src = fetchFromGitHub {
       owner = "TimUntersberger";
       repo = "neogit";
-      rev = "9987421e0724ce704d0035f50a7080c677a85d71";
-      sha256 = "14sbbih38494ybhs5khsd07rq0136gdacjchfz8bx3sq05l0blmf";
+      rev = "c8dd268091ffcbcb673de59c5b37ff26a2eb24ed";
+      sha256 = "0a5y5vlpfmx113byas8y91s0ng6xnxmjpva0jiv9wk419kgnk0f1";
     };
     meta.homepage = "https://github.com/TimUntersberger/neogit/";
   };
@@ -4103,12 +4284,12 @@ final: prev:
 
   neorg = buildVimPluginFrom2Nix {
     pname = "neorg";
-    version = "2022-03-26";
+    version = "2022-04-18";
     src = fetchFromGitHub {
       owner = "nvim-neorg";
       repo = "neorg";
-      rev = "8f8c1ae889ffe666423a89271933272ebffec3ef";
-      sha256 = "10fgkrr9wn6jj35qa42c353k4rnys9a2wrckjk0kwrx6kvx7m6l6";
+      rev = "4a3ca2c0cb46a5320c124565fd4d9830435aa29f";
+      sha256 = "15jwzz2ldxg6ql1lzn626dcfxgndqzgpamakqk0yicbidhmdird0";
     };
     meta.homepage = "https://github.com/nvim-neorg/neorg/";
   };
@@ -4127,12 +4308,12 @@ final: prev:
 
   neosnippet-snippets = buildVimPluginFrom2Nix {
     pname = "neosnippet-snippets";
-    version = "2021-10-02";
+    version = "2022-04-01";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neosnippet-snippets";
-      rev = "8a6655a034eb7c12138dad505ef1004bf383a45d";
-      sha256 = "0mwvcjdrk324azqy5m2lpl3z1gi92jspxvmcjcxqnppfjsv1iyhd";
+      rev = "725c989f18e9c134cddd63a7c6b15bed5c244657";
+      sha256 = "0657ial95l0jgyj9ld6qbncnnrl5qkh6pqp40lr703ddqkz10s03";
     };
     meta.homepage = "https://github.com/Shougo/neosnippet-snippets/";
   };
@@ -4149,18 +4330,6 @@ final: prev:
     meta.homepage = "https://github.com/Shougo/neosnippet.vim/";
   };
 
-  NeoSolarized = buildVimPluginFrom2Nix {
-    pname = "NeoSolarized";
-    version = "2020-08-07";
-    src = fetchFromGitHub {
-      owner = "overcache";
-      repo = "NeoSolarized";
-      rev = "b94b1a9ad51e2de015266f10fdc6e142f97bd617";
-      sha256 = "019nz56yirpg1ahg8adfafrxznalw056qwm3xjm9kzg6da8j6v48";
-    };
-    meta.homepage = "https://github.com/overcache/NeoSolarized/";
-  };
-
   neoterm = buildVimPluginFrom2Nix {
     pname = "neoterm";
     version = "2022-01-20";
@@ -4175,12 +4344,12 @@ final: prev:
 
   neovim-ayu = buildVimPluginFrom2Nix {
     pname = "neovim-ayu";
-    version = "2022-02-05";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "Shatur";
       repo = "neovim-ayu";
-      rev = "88bee216a0b1429d6301faa733712da84cf0e650";
-      sha256 = "069y6ji6xnanzy3ad70lcgn5g3p2nxr62qn08fdhdrq6a75iz3ys";
+      rev = "dde7e6f02fbcb5860b24f616c9a07b5f9e52a361";
+      sha256 = "0800qwxlj84f8ygvniwwyrcjyfwsx7kmzq8vyz9m50zd7b20al9f";
     };
     meta.homepage = "https://github.com/Shatur/neovim-ayu/";
   };
@@ -4295,12 +4464,12 @@ final: prev:
 
   nightfox-nvim = buildVimPluginFrom2Nix {
     pname = "nightfox.nvim";
-    version = "2022-03-27";
+    version = "2022-04-20";
     src = fetchFromGitHub {
       owner = "EdenEast";
       repo = "nightfox.nvim";
-      rev = "2b19e2ad758f078b607408b15bdaf39f3beafac6";
-      sha256 = "0xn78z74wldjq7p5xzlbv4562b6i5nha3lj0bc2hv6w9n3m7q494";
+      rev = "5d2581a71510c319d128a8b02a21181abc611202";
+      sha256 = "118lda4cgxkbf13khyg2i36i7fcrlfz29l0wfjhg90ci3w8qvajs";
     };
     meta.homepage = "https://github.com/EdenEast/nightfox.nvim/";
   };
@@ -4367,28 +4536,16 @@ final: prev:
 
   nordic-nvim = buildVimPluginFrom2Nix {
     pname = "nordic.nvim";
-    version = "2022-03-13";
+    version = "2022-04-10";
     src = fetchFromGitHub {
       owner = "andersevenrud";
       repo = "nordic.nvim";
-      rev = "612f7db0b904d11eeddd41474e71e4bf67acc453";
-      sha256 = "000s48f80gpwsqfgxcsafifd10ii99w8kw237i9afa2msrk9w1fs";
+      rev = "fd9bfa20eb7513ac95fc49952949ae1ee3e0956a";
+      sha256 = "0isxr0a8v7rfcv7cgyz1g9q9m7z9a2ng3bsw4cfq8x3xzhhgka7l";
     };
     meta.homepage = "https://github.com/andersevenrud/nordic.nvim/";
   };
 
-  NrrwRgn = buildVimPluginFrom2Nix {
-    pname = "NrrwRgn";
-    version = "2022-02-13";
-    src = fetchFromGitHub {
-      owner = "chrisbra";
-      repo = "NrrwRgn";
-      rev = "e027db9d94f94947153cd7b5ac9abd04371ab2b0";
-      sha256 = "0mcwyqbfc2m865w44s96ra2k0v1mn5kkkxf8i71iqhvc7fvnrfah";
-    };
-    meta.homepage = "https://github.com/chrisbra/NrrwRgn/";
-  };
-
   nterm-nvim = buildVimPluginFrom2Nix {
     pname = "nterm.nvim";
     version = "2021-11-10";
@@ -4403,24 +4560,24 @@ final: prev:
 
   nui-nvim = buildVimPluginFrom2Nix {
     pname = "nui.nvim";
-    version = "2022-03-08";
+    version = "2022-04-08";
     src = fetchFromGitHub {
       owner = "MunifTanjim";
       repo = "nui.nvim";
-      rev = "513ff9bbdde7da53e209232d4328e734ea2bd96a";
-      sha256 = "08r2ifkj9zj8c771ahl2i0b8crp3cw2cdshkpq26ci14ypdq0304";
+      rev = "42552b3797c3452c5c94e0c84a04fbda9591b9d1";
+      sha256 = "0ggiq9yvrkv2fff41qzvz82lsxxc8swlxfvv1n9g5am8zym2ssk1";
     };
     meta.homepage = "https://github.com/MunifTanjim/nui.nvim/";
   };
 
   null-ls-nvim = buildVimPluginFrom2Nix {
     pname = "null-ls.nvim";
-    version = "2022-03-25";
+    version = "2022-04-16";
     src = fetchFromGitHub {
       owner = "jose-elias-alvarez";
       repo = "null-ls.nvim";
-      rev = "7253974f8bd8c805a2a1cf7456b4d47913f4a094";
-      sha256 = "0xy80c1wra3ir8v0ywrrmyswprbzknlwf69q9g33g29zsmgfx9dr";
+      rev = "a887bd6c1bb992ccf48e673b40e061c3e816204f";
+      sha256 = "1mifn1b83ypvaplmma1zx080vmm5nv40263lsva3z6byqyq3kfl1";
     };
     meta.homepage = "https://github.com/jose-elias-alvarez/null-ls.nvim/";
   };
@@ -4463,36 +4620,36 @@ final: prev:
 
   nvim-autopairs = buildVimPluginFrom2Nix {
     pname = "nvim-autopairs";
-    version = "2022-03-25";
+    version = "2022-04-13";
     src = fetchFromGitHub {
       owner = "windwp";
       repo = "nvim-autopairs";
-      rev = "f3ebca37d6ef1ff22d1f2c764a9e619d1fe5f3c7";
-      sha256 = "0w5xsj55iz30khiw4y47h43i40z2ly607bm8hvddpvrd50i5vcz1";
+      rev = "38d486a1c47ae2722a78cf569008de0a64f4b153";
+      sha256 = "0qka37c8ikcqvbjq0n0kxgm8l30jy3aixs5i00a25wcwxj40kzxv";
     };
     meta.homepage = "https://github.com/windwp/nvim-autopairs/";
   };
 
   nvim-base16 = buildVimPluginFrom2Nix {
     pname = "nvim-base16";
-    version = "2022-03-13";
+    version = "2022-03-28";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "nvim-base16";
-      rev = "9893a06a11b448e05c0bd1f44970acbb7712e8ba";
-      sha256 = "0hhlyw9nacyc4pyx2537y145lm9p3s4m4ckh8cwbambp5ypnn8kl";
+      rev = "f3c8eaa6c8c0dcd752aa28042f9435c464349776";
+      sha256 = "18xlhyyg9yq54p6jnq4dri47zfw62xfnx4ci9j9iiiii1dyzwr2z";
     };
     meta.homepage = "https://github.com/RRethy/nvim-base16/";
   };
 
   nvim-bqf = buildVimPluginFrom2Nix {
     pname = "nvim-bqf";
-    version = "2022-03-21";
+    version = "2022-04-18";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-bqf";
-      rev = "7d3630f1616c2e5cf9f1c8efc1cf186b9249ce7b";
-      sha256 = "0y9kp05qgs7mmivs52ab26jhiqj1izz4jhj1n4x26zmaqbpw4viw";
+      rev = "3dbd349cf75cb23c7d1575b235ee57ecbe665d9d";
+      sha256 = "12nlfz0imx6i6w8jc4pw5czyfzr8m2mhlmql10i5hdncqi9ggaar";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-bqf/";
   };
@@ -4523,12 +4680,12 @@ final: prev:
 
   nvim-cmp = buildVimPluginFrom2Nix {
     pname = "nvim-cmp";
-    version = "2022-03-22";
+    version = "2022-04-20";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "nvim-cmp";
-      rev = "272cbdca3e327bf43e8df85c6f4f00921656c4e4";
-      sha256 = "1z3nsrkla35sl6d66bjnk0qvqn1a5m8vn670qyb8y9nqs344fy8d";
+      rev = "f51dc68e1bb170fc49c2d7e13eb45e5ec83f5ee9";
+      sha256 = "11f53yic8j3iqd4yb0gy2d54vscqqll4lcqqcj1rp195vdd476ak";
     };
     meta.homepage = "https://github.com/hrsh7th/nvim-cmp/";
   };
@@ -4595,48 +4752,48 @@ final: prev:
 
   nvim-cursorline = buildVimPluginFrom2Nix {
     pname = "nvim-cursorline";
-    version = "2022-01-22";
+    version = "2022-04-15";
     src = fetchFromGitHub {
       owner = "yamatsum";
       repo = "nvim-cursorline";
-      rev = "88232dd52f186e3bff9aa594aa9c3a062f400642";
-      sha256 = "1lgcfwkc3kq9jyh7r19v6rpmbflq2nplg46kvb79l07212pz64s0";
+      rev = "804f0023692653b2b2368462d67d2a87056947f9";
+      sha256 = "1zqbykfi4mjp07y8c1kir4lxgvcaxqy9jkn558y3n1jakpk3l72j";
     };
     meta.homepage = "https://github.com/yamatsum/nvim-cursorline/";
   };
 
   nvim-dap = buildVimPluginFrom2Nix {
     pname = "nvim-dap";
-    version = "2022-03-25";
+    version = "2022-04-18";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-dap";
-      rev = "e6d7ba5847fbe5f33ba211cf28d3cea72cfa9865";
-      sha256 = "0w57cxj07law5igbxvblfk59pv5c8z714dm80njb168ldgy26kz6";
+      rev = "d6d8317ce9e096029150bc5844916347a9af6f45";
+      sha256 = "0p5317hf7a9ky78dg68j4daj6z0nmhxiq4v52nfld54kz1f5dkmx";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
   };
 
   nvim-dap-ui = buildVimPluginFrom2Nix {
     pname = "nvim-dap-ui";
-    version = "2022-03-21";
+    version = "2022-04-17";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "nvim-dap-ui";
-      rev = "45805d69273f1ca0753a096abd419e89af8e5f8a";
-      sha256 = "03jjhsdl0w5w0s7d9a64fmvwdpm1pkvjvd5gh1hgsavbpf0w71mb";
+      rev = "f136bb253f6811984369a20924251bcbfe00a5cd";
+      sha256 = "00nxdgsxa3yc0ifsmbs8d1s428p37x3ax3rlxacs983f5xlgmizq";
     };
     meta.homepage = "https://github.com/rcarriga/nvim-dap-ui/";
   };
 
   nvim-dap-virtual-text = buildVimPluginFrom2Nix {
     pname = "nvim-dap-virtual-text";
-    version = "2022-02-19";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "theHamsta";
       repo = "nvim-dap-virtual-text";
-      rev = "7f82fec9a1c7fce292c9a9a7310e7d121607db93";
-      sha256 = "1x9y74nvcvbwakvlzz4k7h1azkldphmdygwgs5cz7qf9pxbx67lq";
+      rev = "1c3560ecfe8a865118efe7092308abe9e8b0ae68";
+      sha256 = "1piz5qxymc2igqdscc3cvvympxrgmxd1ybsnqy13l7ycmknkp9hd";
     };
     meta.homepage = "https://github.com/theHamsta/nvim-dap-virtual-text/";
   };
@@ -4667,12 +4824,12 @@ final: prev:
 
   nvim-fzf-commands = buildVimPluginFrom2Nix {
     pname = "nvim-fzf-commands";
-    version = "2021-05-31";
+    version = "2022-03-31";
     src = fetchFromGitHub {
       owner = "vijaymarupudi";
       repo = "nvim-fzf-commands";
-      rev = "c6188c8618ca6b579af37cbc242414e1016bcd45";
-      sha256 = "0nn04gpz3n0jqb9kyxbmipkixzp1lk2f67knxqzzzlxm27m839fy";
+      rev = "015e77ea3185ca9175544e879e2cbb2cfb08323f";
+      sha256 = "1w6s1kl83fyvwycym3i5azcx4q5ryzsjszh6wvk5pxqm2pmzs8lx";
     };
     meta.homepage = "https://github.com/vijaymarupudi/nvim-fzf-commands/";
   };
@@ -4691,36 +4848,36 @@ final: prev:
 
   nvim-gps = buildVimPluginFrom2Nix {
     pname = "nvim-gps";
-    version = "2022-03-27";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "smiteshp";
       repo = "nvim-gps";
-      rev = "1ad35eada2972c055b181c73852438a6ea51b484";
-      sha256 = "1kv7p2lcilvkvzl9whdkxgg94vk9fa9d1bikwhahxv2zxzk10qkz";
+      rev = "944ea6e7244a839452ab721515141ea9208c0536";
+      sha256 = "0i3mjk9n9czpadzpwp2wx1640h5sl51cjgnggrm8rg9qxj5108g7";
     };
     meta.homepage = "https://github.com/smiteshp/nvim-gps/";
   };
 
   nvim-highlite = buildVimPluginFrom2Nix {
     pname = "nvim-highlite";
-    version = "2022-03-07";
+    version = "2022-04-18";
     src = fetchFromGitHub {
       owner = "Iron-E";
       repo = "nvim-highlite";
-      rev = "925167117f5de9702781af9e43a9d86318a20329";
-      sha256 = "1a87ry1rl86xbqhd76bgqxxavq7qmsh9ds2crmlgd9f3wgsk4bxn";
+      rev = "e46cb5695b8457403488ad44b5379421c0c5dc17";
+      sha256 = "0343pk8wylms0lnrpa0a5x2ig97an2ps64fgjpa8n85ng1z49z97";
     };
     meta.homepage = "https://github.com/Iron-E/nvim-highlite/";
   };
 
   nvim-hlslens = buildVimPluginFrom2Nix {
     pname = "nvim-hlslens";
-    version = "2022-03-20";
+    version = "2022-04-03";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-hlslens";
-      rev = "22f7df73283c6f947a56fef0355f5a3ee2971152";
-      sha256 = "1qjy4n0ly5vmkpfyjanqb76jvh6qa5ldqvhgfgxk91b9l35ca95l";
+      rev = "1944094111217db8d40aac697ffc71f16136d9ec";
+      sha256 = "0f0lqldrgzi72qrafzwqk3i71v74xvsrhgrfnidnbnvd3jc7sa0b";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-hlslens/";
   };
@@ -4739,12 +4896,12 @@ final: prev:
 
   nvim-jdtls = buildVimPluginFrom2Nix {
     pname = "nvim-jdtls";
-    version = "2022-03-25";
+    version = "2022-04-14";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-jdtls";
-      rev = "dd1e8dc1daac110cd86dccc159007deac856a89b";
-      sha256 = "1hzbn9v42z0m8s6fnf2r5navcshclsfpc88sasack5c1nvsvv43s";
+      rev = "ffb08466d51f717775d85e7e334ac83156c0ca98";
+      sha256 = "1rlnidcn8zww6lvqx1syw2331i2gn67765cip2pz5rh8mbv4l67x";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-jdtls/";
   };
@@ -4787,36 +4944,36 @@ final: prev:
 
   nvim-lint = buildVimPluginFrom2Nix {
     pname = "nvim-lint";
-    version = "2022-03-09";
+    version = "2022-04-18";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-lint";
-      rev = "8cc31931859dc3cc187fd68509f8649599f72cba";
-      sha256 = "006d9l0p86s08vhr5jjm6gi2j27wjbk3c3vfdbq9yi3bz974hgf1";
+      rev = "e5416bdb27a0e61cd213850646534a18bb2ba61d";
+      sha256 = "1qrjpx99pb67yccvmb66ahcaa7wk9z6s9zvaxm5fpbm1xasci1mz";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-lint/";
   };
 
   nvim-lsp-ts-utils = buildVimPluginFrom2Nix {
     pname = "nvim-lsp-ts-utils";
-    version = "2022-03-15";
+    version = "2022-04-04";
     src = fetchFromGitHub {
       owner = "jose-elias-alvarez";
       repo = "nvim-lsp-ts-utils";
-      rev = "1d2c585cb69a91cf53f17a90d2544ed10eb03193";
-      sha256 = "07vf3xzcld2h3j6hnrrib60p2gnjkcb96h33sm8kfdvaj1578pbd";
+      rev = "1826275ee0fc7fded65e8716b231db86a17080e3";
+      sha256 = "129zjds8c69hahv307wnpdsjzfh29flsr99lkjma8dymsan96lb0";
     };
     meta.homepage = "https://github.com/jose-elias-alvarez/nvim-lsp-ts-utils/";
   };
 
   nvim-lspconfig = buildVimPluginFrom2Nix {
     pname = "nvim-lspconfig";
-    version = "2022-03-23";
+    version = "2022-04-17";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lspconfig";
-      rev = "7d5a6dc46dd2ebaeb74b573922f289ae33089fe7";
-      sha256 = "1dz2q6n2ibq9l2js088wfp2y5md6z8lqs6hy02xajglvb0d9g3fg";
+      rev = "ad9903c66bac88f344890acb6532f63f1cd4dac3";
+      sha256 = "10fg52g53yk0d10rm96kw907wdkgqw762ib6530zrnw7p8fbm2ms";
     };
     meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
@@ -4835,24 +4992,24 @@ final: prev:
 
   nvim-metals = buildVimPluginFrom2Nix {
     pname = "nvim-metals";
-    version = "2022-03-20";
+    version = "2022-04-16";
     src = fetchFromGitHub {
       owner = "scalameta";
       repo = "nvim-metals";
-      rev = "3312490ef74ea149121a82fde578a13b1921cef9";
-      sha256 = "0xi13qji716kdbbq579pj7rxbjfkwjrsdp3qvfb937spwzbak2jc";
+      rev = "bc6f2ba6d6b2c5ffd65b41f3df74761a90e538da";
+      sha256 = "0fk41l2jmlhrylc9xbh4h9a35j106r0lr7rd0i2lp0acqai629qg";
     };
     meta.homepage = "https://github.com/scalameta/nvim-metals/";
   };
 
   nvim-neoclip-lua = buildVimPluginFrom2Nix {
     pname = "nvim-neoclip.lua";
-    version = "2022-02-22";
+    version = "2022-04-06";
     src = fetchFromGitHub {
       owner = "AckslD";
       repo = "nvim-neoclip.lua";
-      rev = "d859891e4bff9729ad6e63bd4aebc51946de8786";
-      sha256 = "17dbvr1y7hzrv04c89b4nmgmgg0qccrkz6qsh7vsava0lvjs4zm5";
+      rev = "09fa54a2e9866ba05d08980e27b29099d6d0ed6e";
+      sha256 = "0l17anql1a5vbh5v8djlssfh3a09y6zxrs6vpabkfsj9lp8sls46";
     };
     meta.homepage = "https://github.com/AckslD/nvim-neoclip.lua/";
   };
@@ -4871,12 +5028,12 @@ final: prev:
 
   nvim-notify = buildVimPluginFrom2Nix {
     pname = "nvim-notify";
-    version = "2022-03-20";
+    version = "2022-04-17";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "nvim-notify";
-      rev = "da1030208347ad8937fdad1d4f8092b578e3ea2f";
-      sha256 = "0myrcm6170ncff7ymdlaiahh9230yff794f4dc2lzwv5igkxxiha";
+      rev = "2c8f744de34c72a5a1fabcc66da11aa017ffab88";
+      sha256 = "1yc98fv30fvkjb7d8acjqvl8kai1hz0mslp04n1d2069q0n6k08n";
     };
     meta.homepage = "https://github.com/rcarriga/nvim-notify/";
   };
@@ -4895,12 +5052,12 @@ final: prev:
 
   nvim-scrollview = buildVimPluginFrom2Nix {
     pname = "nvim-scrollview";
-    version = "2022-03-15";
+    version = "2022-04-13";
     src = fetchFromGitHub {
       owner = "dstein64";
       repo = "nvim-scrollview";
-      rev = "f1cdec5869de70359c8dff06e9057b99a56a0e48";
-      sha256 = "028wvmdbj2fllkw6nr2sasxpamqpl3gmrzdn8lw2bjfzy5xf88x1";
+      rev = "ba6c48bf7919dd48a371e7b9c683b8858053e885";
+      sha256 = "1pziragklk4zciy2q07llsa6ldqv090ynwclzrgwsv79l1rf9mzm";
     };
     meta.homepage = "https://github.com/dstein64/nvim-scrollview/";
   };
@@ -4919,12 +5076,12 @@ final: prev:
 
   nvim-spectre = buildVimPluginFrom2Nix {
     pname = "nvim-spectre";
-    version = "2022-03-22";
+    version = "2022-04-07";
     src = fetchFromGitHub {
       owner = "nvim-pack";
       repo = "nvim-spectre";
-      rev = "3bbf9cb2e36200d67c150d71d49011c133d3bbb8";
-      sha256 = "1jif3knz78mqf6sgckfwin1wx6ad4wppdc2y0hcxlj2kwm17xqzk";
+      rev = "345e5dd57773e2b4b425a2515c831108b9808a0f";
+      sha256 = "1lyqzzl1722hdx0cwry8659dbd679nilx5lb1w52ym3sixz4a9hy";
     };
     meta.homepage = "https://github.com/nvim-pack/nvim-spectre/";
   };
@@ -4943,24 +5100,24 @@ final: prev:
 
   nvim-tree-lua = buildVimPluginFrom2Nix {
     pname = "nvim-tree.lua";
-    version = "2022-03-27";
+    version = "2022-04-18";
     src = fetchFromGitHub {
       owner = "kyazdani42";
       repo = "nvim-tree.lua";
-      rev = "524758a207f9c5bf3888b446d9f93192a837b8a7";
-      sha256 = "0kz7qhirm7gkklmyysanndm4pimvfm0p0qzz3q96hv01hpm3d17y";
+      rev = "0f0f858348aacc94f98ba32880760c5a5440b825";
+      sha256 = "1ciir7h9s0g9i62b49swa8c8cgjqg4lz6zapkj5a8gqxqa10qh23";
     };
     meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/";
   };
 
   nvim-treesitter = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter";
-    version = "2022-03-27";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "b995eebe84df88092a41cbfd591bfc1565f70d8e";
-      sha256 = "1738mssq22n1njrpi004apgfv00fxn7yx00r3175qn57bjw9bks9";
+      rev = "62fa8f77c43ed3a4ac2bbdfa4327f6b4a835bbea";
+      sha256 = "0cq0zbs9a52wx84ivpna4qw67dlz7i9nw6mln8948qadnzk1960r";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
@@ -5003,12 +5160,12 @@ final: prev:
 
   nvim-treesitter-textobjects = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-textobjects";
-    version = "2022-03-25";
+    version = "2022-04-15";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-textobjects";
-      rev = "2885b60e9f9b90b4e2a32b0f8adf8571bf1f390e";
-      sha256 = "0q1dph3pz2ygz1wccjgcdfqyb4faj47rv2v9a4p4ngw2vd00qjgy";
+      rev = "29c5e9effe53f19f250e3a88d1427b35031bc90d";
+      sha256 = "09bpgd0fqpcwifs2wna1lqyrfn4rmp2gfan4635lwjp4sixj52vc";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/";
   };
@@ -5027,24 +5184,24 @@ final: prev:
 
   nvim-ts-context-commentstring = buildVimPluginFrom2Nix {
     pname = "nvim-ts-context-commentstring";
-    version = "2022-03-18";
+    version = "2022-04-07";
     src = fetchFromGitHub {
       owner = "joosepalviste";
       repo = "nvim-ts-context-commentstring";
-      rev = "7810f1fe706092290dd338f40e5e857bac4a03cf";
-      sha256 = "0hl3fivd0yn9g1di2545inz92szsqxq0svwhr8ymyg5sgx465rfc";
+      rev = "88343753dbe81c227a1c1fd2c8d764afb8d36269";
+      sha256 = "1qfgg9lzva7m3kbrxhhccf766by5n2sf456cdvadypr83sniq6ay";
     };
     meta.homepage = "https://github.com/joosepalviste/nvim-ts-context-commentstring/";
   };
 
   nvim-ts-rainbow = buildVimPluginFrom2Nix {
     pname = "nvim-ts-rainbow";
-    version = "2022-03-20";
+    version = "2022-04-17";
     src = fetchFromGitHub {
       owner = "p00f";
       repo = "nvim-ts-rainbow";
-      rev = "af1a18d2577ba0be5b59bc4b32aebd2569ff085e";
-      sha256 = "1z100akjipzp3zyr7d54vbwwf53dj4f8y8qzf7fv32la142a7idq";
+      rev = "04284dc97eac0d0ecfea68e10be824d1a6585de0";
+      sha256 = "1i8i58m1r1322wvs8jl0nzs6lgqw78ibkp5hah07kgi2ynzr3dj3";
     };
     meta.homepage = "https://github.com/p00f/nvim-ts-rainbow/";
   };
@@ -5087,24 +5244,24 @@ final: prev:
 
   nvim_context_vt = buildVimPluginFrom2Nix {
     pname = "nvim_context_vt";
-    version = "2022-03-01";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "haringsrob";
       repo = "nvim_context_vt";
-      rev = "3fa6223a21528f0f5528469f33f7f0e237ca9e8b";
-      sha256 = "0j7m976iyw0rw7hry0sb86jc2vyrsmnpiyj7nn353hbkwazxi2lh";
+      rev = "2407c8c304138e18c0ef42e4dbebb56a3813bbd5";
+      sha256 = "1yk3qb3rblnqdif9cm5j3ndj3s7wn63z6av6m9pl5h6gvhwhcrk4";
     };
     meta.homepage = "https://github.com/haringsrob/nvim_context_vt/";
   };
 
   nvimdev-nvim = buildVimPluginFrom2Nix {
     pname = "nvimdev.nvim";
-    version = "2022-03-15";
+    version = "2022-04-11";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvimdev.nvim";
-      rev = "cb0fcc1cdbe3864554a7b1ecbe706eb4de4ec680";
-      sha256 = "063fyzawn6i67cv3221s282ln5gpms3qw97blrd80l18syykj2b9";
+      rev = "79f06ba252a5a8a525475f6072bd99494da9a1d7";
+      sha256 = "0wm6hm97rrpw45jyihydxyy98vxgypcvwnx6406609s8n8w0sbyz";
     };
     meta.homepage = "https://github.com/neovim/nvimdev.nvim/";
   };
@@ -5135,12 +5292,12 @@ final: prev:
 
   octo-nvim = buildVimPluginFrom2Nix {
     pname = "octo.nvim";
-    version = "2022-02-28";
+    version = "2022-04-14";
     src = fetchFromGitHub {
       owner = "pwntester";
       repo = "octo.nvim";
-      rev = "5e461b944fbf9b6207cf06102ca09fd7778854f7";
-      sha256 = "0s04m3xg98sj74fhhvdmafijmjhpa70hgcylg43yxlgdcscqbd72";
+      rev = "0beb4de71062435ad934caba5728f7f01ae8b969";
+      sha256 = "01k7jl34x8wikq6ff456650wgf5f5z9z6a3ypr10a3pl8p7wfyzr";
     };
     meta.homepage = "https://github.com/pwntester/octo.nvim/";
   };
@@ -5183,12 +5340,12 @@ final: prev:
 
   onedarkpro-nvim = buildVimPluginFrom2Nix {
     pname = "onedarkpro.nvim";
-    version = "2022-03-25";
+    version = "2022-04-12";
     src = fetchFromGitHub {
       owner = "olimorris";
       repo = "onedarkpro.nvim";
-      rev = "46b0ffb97f3778a1f6f5da6471a42f3f64bbf238";
-      sha256 = "13gyfz9fxgzvmcwwv19f8csmanv52144gvr5xdgvcg5nygkmydcp";
+      rev = "653b5d729cb2c14c564cf5ab2145e2e24354a2ba";
+      sha256 = "1xw49fliqalz18nj0pa81xsx1d9zwphdzcai503m1bn2m2nclp6h";
     };
     meta.homepage = "https://github.com/olimorris/onedarkpro.nvim/";
   };
@@ -5231,12 +5388,12 @@ final: prev:
 
   orgmode = buildVimPluginFrom2Nix {
     pname = "orgmode";
-    version = "2022-03-10";
+    version = "2022-04-20";
     src = fetchFromGitHub {
       owner = "nvim-orgmode";
       repo = "orgmode";
-      rev = "e1f3054987ce054525258d9a3cc5837bf6e75212";
-      sha256 = "0hwsajd7lhc04da7yzx770f3bgn2jsibcg1pjhxyib1prr17mpy0";
+      rev = "8cd85f7afabef643db6b5d3dc01942870e71533d";
+      sha256 = "16rkvz8x6rvapyq7grch77j0wd5pnhjwv932v72ai6gy940d56l2";
     };
     meta.homepage = "https://github.com/nvim-orgmode/orgmode/";
   };
@@ -5363,24 +5520,24 @@ final: prev:
 
   playground = buildVimPluginFrom2Nix {
     pname = "playground";
-    version = "2022-02-16";
+    version = "2022-04-08";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "playground";
-      rev = "9df82a27a49e1c14e9d7416b537517a79d675086";
-      sha256 = "1hhrcsrgcy3vqxn9gsm68r77n6z5bw4cr0r47darffan5rxykz21";
+      rev = "13e2d2d63ce7bc5d875e8bdf89cb070bc8cc7a00";
+      sha256 = "1klkg3n3rymb6b9im7hq9yq26mqf2v79snsqbx72am649c6qc0ns";
     };
     meta.homepage = "https://github.com/nvim-treesitter/playground/";
   };
 
   plenary-nvim = buildVimPluginFrom2Nix {
     pname = "plenary.nvim";
-    version = "2022-03-20";
+    version = "2022-04-17";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "plenary.nvim";
-      rev = "0d660152000a40d52158c155625865da2aa7aa1b";
-      sha256 = "0r8amnlaqxg9jpqk6v4rzlfrc8q161jy1bpy35jrk7gva76kp9hm";
+      rev = "9069d14a120cadb4f6825f76821533f2babcab92";
+      sha256 = "0pgzi0brqn4kcbv1k5d50xm0bcwaq50sk5jnj3q9ls2pvv7lb9a0";
     };
     meta.homepage = "https://github.com/nvim-lua/plenary.nvim/";
   };
@@ -5399,12 +5556,12 @@ final: prev:
 
   popfix = buildVimPluginFrom2Nix {
     pname = "popfix";
-    version = "2021-03-11";
+    version = "2022-04-10";
     src = fetchFromGitHub {
       owner = "RishabhRD";
       repo = "popfix";
-      rev = "f3571e676739208871bd38f9fa0fddf554b6a7a8";
-      sha256 = "19hvwxcqca8l6dvlaccfvqc8755bpr0z0hi7l9qiw6rm458bhchi";
+      rev = "ea262861ce3905b90c2c203b74a7be2539f1aba4";
+      sha256 = "082dppmfppzam9y2x7drmrdd704hh2j2lw84rrkh8033gpnrn341";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/RishabhRD/popfix/";
@@ -5436,28 +5593,16 @@ final: prev:
 
   presenting-vim = buildVimPluginFrom2Nix {
     pname = "presenting.vim";
-    version = "2021-06-02";
+    version = "2022-03-27";
     src = fetchFromGitHub {
       owner = "sotte";
       repo = "presenting.vim";
-      rev = "fd826318582ffccf2f79aff7bef365d68f2ca4fc";
-      sha256 = "1s2c44ngv5vpszwg0nkcghb5flzq9pby1m0l7gr7vwb9p7xl3b83";
+      rev = "e960e204d8e4526d2650c23eaea908317c6becb9";
+      sha256 = "1hpid82gdczis0g0pxvx445n2wg7j4zx66fm43zxq08kcv3k5ara";
     };
     meta.homepage = "https://github.com/sotte/presenting.vim/";
   };
 
-  PreserveNoEOL = buildVimPluginFrom2Nix {
-    pname = "PreserveNoEOL";
-    version = "2013-06-14";
-    src = fetchFromGitHub {
-      owner = "vim-scripts";
-      repo = "PreserveNoEOL";
-      rev = "940e3ce90e54d8680bec1135a21dcfbd6c9bfb62";
-      sha256 = "1726jpr2zf6jrb00pp082ikbx4mll3a877pnzs6i18f9fgpaqqgd";
-    };
-    meta.homepage = "https://github.com/vim-scripts/PreserveNoEOL/";
-  };
-
   prev_indent = buildVimPluginFrom2Nix {
     pname = "prev_indent";
     version = "2014-03-08";
@@ -5533,29 +5678,16 @@ final: prev:
 
   pywal-nvim = buildVimPluginFrom2Nix {
     pname = "pywal.nvim";
-    version = "2022-02-20";
+    version = "2022-04-08";
     src = fetchFromGitHub {
       owner = "AlphaTechnolog";
       repo = "pywal.nvim";
-      rev = "bd58195939d31dd0f15a720fba2956e91598cefe";
-      sha256 = "10fs5assp96rvlcxckd8cwnkfwfckjmf0j8cqq91vb2wx8knxc8g";
-      fetchSubmodules = true;
+      rev = "475a9f0be1d111cfad2049245fd81448a51c124d";
+      sha256 = "0by27995bkn21qiiyvw1danydagi4issfrah2zi5480qnwir6s7r";
     };
     meta.homepage = "https://github.com/AlphaTechnolog/pywal.nvim/";
   };
 
-  QFEnter = buildVimPluginFrom2Nix {
-    pname = "QFEnter";
-    version = "2020-10-09";
-    src = fetchFromGitHub {
-      owner = "yssl";
-      repo = "QFEnter";
-      rev = "df0a75b287c210f98ae353a12bbfdaf73d858beb";
-      sha256 = "0gdp7nmjlp8ng2rp2v66d8bincnkwrqqpbggb079f0f9szrqlp54";
-    };
-    meta.homepage = "https://github.com/yssl/QFEnter/";
-  };
-
   quick-scope = buildVimPluginFrom2Nix {
     pname = "quick-scope";
     version = "2022-01-29";
@@ -5676,54 +5808,30 @@ final: prev:
     meta.homepage = "https://github.com/ryvnf/readline.vim/";
   };
 
-  Recover-vim = buildVimPluginFrom2Nix {
-    pname = "Recover.vim";
-    version = "2015-08-14";
-    src = fetchFromGitHub {
-      owner = "chrisbra";
-      repo = "Recover.vim";
-      rev = "efa491f6121f65e025f42d79a93081abb8db69d4";
-      sha256 = "17szim82bwnhf9q4n0n4jfmqkmhq6p0lh0j4y77a2x6lkn0pns5s";
-    };
-    meta.homepage = "https://github.com/chrisbra/Recover.vim/";
-  };
-
   refactoring-nvim = buildVimPluginFrom2Nix {
     pname = "refactoring.nvim";
-    version = "2022-03-23";
+    version = "2022-04-11";
     src = fetchFromGitHub {
       owner = "theprimeagen";
       repo = "refactoring.nvim";
-      rev = "93967110eb45d7234802c0c0e2ef909968e8461e";
-      sha256 = "1mphqq650d3x0g2nl4pkgflp3hsi68agzj807r64x82p3266abzs";
+      rev = "94eaa199ad892f26d2c8594dbbc5656314cf5bdb";
+      sha256 = "1smq4snh40ljhyc32qvj3w51xpl7ci0navm1l8xr03z8hpssz39w";
     };
     meta.homepage = "https://github.com/theprimeagen/refactoring.nvim/";
   };
 
   registers-nvim = buildVimPluginFrom2Nix {
     pname = "registers.nvim";
-    version = "2022-03-07";
+    version = "2022-04-17";
     src = fetchFromGitHub {
       owner = "tversteeg";
       repo = "registers.nvim";
-      rev = "c66458fe5f83b57d40b678058a8eeb6340f9275c";
-      sha256 = "0zf4w1ahg9dfvrw6b394asy8pyc0yjjffs73nf1mwp0bkk3hdvzh";
+      rev = "dfcf0962ce88b52e00dd96dfaabc9997a18f4efe";
+      sha256 = "19gjsap19mbrdp1ds4wk4w5hkd6g302afc0m3h3fsg7dxyw1r84j";
     };
     meta.homepage = "https://github.com/tversteeg/registers.nvim/";
   };
 
-  Rename = buildVimPluginFrom2Nix {
-    pname = "Rename";
-    version = "2011-08-31";
-    src = fetchFromGitHub {
-      owner = "vim-scripts";
-      repo = "Rename";
-      rev = "b240f28d2ede65fa77cd99fe045efe79202f7a34";
-      sha256 = "1d1myg4zyc281zcc1ba9idbgcgxndb4a0jwqr4yqxhhzdgszw46r";
-    };
-    meta.homepage = "https://github.com/vim-scripts/Rename/";
-  };
-
   renamer-nvim = buildVimPluginFrom2Nix {
     pname = "renamer.nvim";
     version = "2022-01-15";
@@ -5736,18 +5844,6 @@ final: prev:
     meta.homepage = "https://github.com/filipdutescu/renamer.nvim/";
   };
 
-  ReplaceWithRegister = buildVimPluginFrom2Nix {
-    pname = "ReplaceWithRegister";
-    version = "2014-10-31";
-    src = fetchFromGitHub {
-      owner = "vim-scripts";
-      repo = "ReplaceWithRegister";
-      rev = "832efc23111d19591d495dc72286de2fb0b09345";
-      sha256 = "0mb0sx85j1k59b1zz95r4vkq4kxlb4krhncq70mq7fxrs5bnhq8g";
-    };
-    meta.homepage = "https://github.com/vim-scripts/ReplaceWithRegister/";
-  };
-
   rest-nvim = buildVimPluginFrom2Nix {
     pname = "rest.nvim";
     version = "2022-01-26";
@@ -5774,12 +5870,12 @@ final: prev:
 
   rnvimr = buildVimPluginFrom2Nix {
     pname = "rnvimr";
-    version = "2022-03-16";
+    version = "2022-04-08";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "rnvimr";
-      rev = "26dc0949680b77216ab4de7ae909b324944a493c";
-      sha256 = "1ci10s7kcpvg1g9k33ydn4zp8bnm69271mbhys5k9lc50qky2cp2";
+      rev = "65705df886624833105f6f146ac4cf8c4d426aad";
+      sha256 = "1xc83qih6pw1g3qrkjzmn3bri0xn8cmqiqykxajd77ijxjaq9xsp";
     };
     meta.homepage = "https://github.com/kevinhwang91/rnvimr/";
   };
@@ -5880,18 +5976,6 @@ final: prev:
     meta.homepage = "https://github.com/vmware-archive/salt-vim/";
   };
 
-  SchemaStore-nvim = buildVimPluginFrom2Nix {
-    pname = "SchemaStore.nvim";
-    version = "2022-03-25";
-    src = fetchFromGitHub {
-      owner = "b0o";
-      repo = "SchemaStore.nvim";
-      rev = "f665a87f88b7b891aa5e1f91236b5bab29c2faaf";
-      sha256 = "1i90yyrm7ji8wf3if431al9ggcnps37k3lsnga3ixqa5pr7xsrg9";
-    };
-    meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
-  };
-
   scrollbar-nvim = buildVimPluginFrom2Nix {
     pname = "scrollbar.nvim";
     version = "2021-11-16";
@@ -5976,30 +6060,6 @@ final: prev:
     meta.homepage = "https://github.com/osyo-manga/shabadou.vim/";
   };
 
-  Shade-nvim = buildVimPluginFrom2Nix {
-    pname = "Shade.nvim";
-    version = "2022-02-01";
-    src = fetchFromGitHub {
-      owner = "sunjon";
-      repo = "Shade.nvim";
-      rev = "4286b5abc47d62d0c9ffb22a4f388b7bf2ac2461";
-      sha256 = "0mb0cnf8065qmjq85hlgb4a1mqk1nwl7966l1imb54hpzw828rzl";
-    };
-    meta.homepage = "https://github.com/sunjon/Shade.nvim/";
-  };
-
-  ShowMultiBase = buildVimPluginFrom2Nix {
-    pname = "ShowMultiBase";
-    version = "2010-10-18";
-    src = fetchFromGitHub {
-      owner = "vim-scripts";
-      repo = "ShowMultiBase";
-      rev = "85a39fd12668ce973d3d9282263912b2b8f0d338";
-      sha256 = "0hg5352ahzgh2kwqha5v8ai024fld93xag93hb53wjf5b8nzsz8i";
-    };
-    meta.homepage = "https://github.com/vim-scripts/ShowMultiBase/";
-  };
-
   sideways-vim = buildVimPluginFrom2Nix {
     pname = "sideways.vim";
     version = "2022-02-12";
@@ -6013,18 +6073,6 @@ final: prev:
     meta.homepage = "https://github.com/AndrewRadev/sideways.vim/";
   };
 
-  SimpylFold = buildVimPluginFrom2Nix {
-    pname = "SimpylFold";
-    version = "2021-11-04";
-    src = fetchFromGitHub {
-      owner = "tmhedberg";
-      repo = "SimpylFold";
-      rev = "b4a87e509c3d873238a39d1c85d0b97d6819f283";
-      sha256 = "0ff5x7ay67wn9c0mi8sb6110i93zrf97c4whg0bd7pr2nmadpvk0";
-    };
-    meta.homepage = "https://github.com/tmhedberg/SimpylFold/";
-  };
-
   skim-vim = buildVimPluginFrom2Nix {
     pname = "skim.vim";
     version = "2020-11-11";
@@ -6051,12 +6099,12 @@ final: prev:
 
   slimv = buildVimPluginFrom2Nix {
     pname = "slimv";
-    version = "2022-02-11";
+    version = "2022-04-03";
     src = fetchFromGitHub {
       owner = "kovisoft";
       repo = "slimv";
-      rev = "1b88c3a67948b446720883ed8eadb8c2b83a21ef";
-      sha256 = "0m0kkc75ifg7lvk8p3vgq5iy8hr254ywj7hhjgxwzm2zbrwkr04s";
+      rev = "eb5856c616466b0f463e27a30965ea142003a552";
+      sha256 = "1c4hprzqzxkf0yqkqc8261qr7xk817nm28cp38dw4z1rmjcg1l04";
     };
     meta.homepage = "https://github.com/kovisoft/slimv/";
   };
@@ -6099,12 +6147,12 @@ final: prev:
 
   sonokai = buildVimPluginFrom2Nix {
     pname = "sonokai";
-    version = "2022-03-21";
+    version = "2022-04-14";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "sonokai";
-      rev = "774ccdb95a04539530be34fa17a34c0f64139aca";
-      sha256 = "1myz05j6i7h0yyffbip6a2gpfb61y35w48aa1wlh8i3m9bhy7g4a";
+      rev = "4f29ac457ac759286bce3bb1a34f9517c91306c9";
+      sha256 = "1yzyk78nb0xj5f2fnfvhrpgahg3mgx82bpw7nimvf0rd29dbpfqj";
     };
     meta.homepage = "https://github.com/sainnhe/sonokai/";
   };
@@ -6133,30 +6181,6 @@ final: prev:
     meta.homepage = "https://github.com/liuchengxu/space-vim/";
   };
 
-  SpaceCamp = buildVimPluginFrom2Nix {
-    pname = "SpaceCamp";
-    version = "2021-04-07";
-    src = fetchFromGitHub {
-      owner = "jaredgorski";
-      repo = "SpaceCamp";
-      rev = "376af5c2204de61726ea86b596acb2dab9795e1f";
-      sha256 = "0h3wxkswd5z9y46d6272sr210i73j5pwf5faw7qhr1plilfgx4gb";
-    };
-    meta.homepage = "https://github.com/jaredgorski/SpaceCamp/";
-  };
-
-  Spacegray-vim = buildVimPluginFrom2Nix {
-    pname = "Spacegray.vim";
-    version = "2021-07-06";
-    src = fetchFromGitHub {
-      owner = "ackyshake";
-      repo = "Spacegray.vim";
-      rev = "c699ca10ed421c462bd1c87a158faaa570dc8e28";
-      sha256 = "0ma8w6p5jh6llka49x5j5ql8fmhv0bx5hhsn5b2phak79yqg1k61";
-    };
-    meta.homepage = "https://github.com/ackyshake/Spacegray.vim/";
-  };
-
   spacevim = buildVimPluginFrom2Nix {
     pname = "spacevim";
     version = "2018-03-29";
@@ -6169,18 +6193,6 @@ final: prev:
     meta.homepage = "https://github.com/ctjhoa/spacevim/";
   };
 
-  SpaceVim = buildVimPluginFrom2Nix {
-    pname = "SpaceVim";
-    version = "2022-03-27";
-    src = fetchFromGitHub {
-      owner = "SpaceVim";
-      repo = "SpaceVim";
-      rev = "a8d183fdd97de3c1ee54c0e5f0efe9e95a19d866";
-      sha256 = "0rhpasj5jw7jhij6pqjrsb48gwf4hrpadh8ab9d611v6akkkxlvv";
-    };
-    meta.homepage = "https://github.com/SpaceVim/SpaceVim/";
-  };
-
   sparkup = buildVimPluginFrom2Nix {
     pname = "sparkup";
     version = "2012-06-11";
@@ -6231,12 +6243,12 @@ final: prev:
 
   splitjoin-vim = buildVimPluginFrom2Nix {
     pname = "splitjoin.vim";
-    version = "2022-03-21";
+    version = "2022-04-03";
     src = fetchFromGitHub {
       owner = "AndrewRadev";
       repo = "splitjoin.vim";
-      rev = "c32b18751a81715e3c13cff22fea9fb5ce31ef35";
-      sha256 = "12kp185ndag507b7l4qvhr369zyikwgh0wyi9lrjyr2ar5impjqc";
+      rev = "dbcd3069fb2b4ecfdd964c1e93aa59fcf7f850b6";
+      sha256 = "1rgc9cbfpjnk8pf7wh9pyyljckbn1i88z5bggyn15q3lfhskvidc";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/AndrewRadev/splitjoin.vim/";
@@ -6326,18 +6338,6 @@ final: prev:
     meta.homepage = "https://github.com/lambdalisue/suda.vim/";
   };
 
-  SudoEdit-vim = buildVimPluginFrom2Nix {
-    pname = "SudoEdit.vim";
-    version = "2020-02-27";
-    src = fetchFromGitHub {
-      owner = "chrisbra";
-      repo = "SudoEdit.vim";
-      rev = "e203eada5b563e9134ce2aae26b09edae0904fd7";
-      sha256 = "0pf9iix50pw3p430ky51rv11ra1hppdpwa5flzcd5kciybr76n0n";
-    };
-    meta.homepage = "https://github.com/chrisbra/SudoEdit.vim/";
-  };
-
   supertab = buildVimPluginFrom2Nix {
     pname = "supertab";
     version = "2021-04-30";
@@ -6425,12 +6425,12 @@ final: prev:
 
   tabline-nvim = buildVimPluginFrom2Nix {
     pname = "tabline.nvim";
-    version = "2022-01-16";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "kdheepak";
       repo = "tabline.nvim";
-      rev = "c3dfa81da0a4eab7817207fa01fdcbeed783d586";
-      sha256 = "1ihblfr8bb300vfcdvsk74inw17s4c2s9xvsxgphnh85alaxbks4";
+      rev = "2eb56826bf7b85b9090aff73a696e0e803bf89ae";
+      sha256 = "10fqssr8la7y54q7iz2kgx1axv2rwmv0mjvnz0yvadcfz80q2ksv";
     };
     meta.homepage = "https://github.com/kdheepak/tabline.nvim/";
   };
@@ -6510,12 +6510,12 @@ final: prev:
 
   tagbar = buildVimPluginFrom2Nix {
     pname = "tagbar";
-    version = "2022-03-15";
+    version = "2022-04-07";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "tagbar";
-      rev = "69659cfc9d081caf31c8d548dd4c19593839317b";
-      sha256 = "1wdrn0zvqhz7pd0rgl5z3zri3sy4hb947nmw9imvwi62mpdhsh7d";
+      rev = "ccee72f1d1ed71a001e57592bd585ae77c5f83b2";
+      sha256 = "1k6vsrvdsb1hkjfff3pbqf57zglwsh2csc6aj6lan790n9p63a3m";
     };
     meta.homepage = "https://github.com/preservim/tagbar/";
   };
@@ -6570,12 +6570,12 @@ final: prev:
 
   telescope-asynctasks-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-asynctasks.nvim";
-    version = "2021-10-22";
+    version = "2022-04-09";
     src = fetchFromGitHub {
       owner = "GustavoKatel";
       repo = "telescope-asynctasks.nvim";
-      rev = "80bd6570e5423d14ad1e6fd56a199955ac1b895f";
-      sha256 = "1vhjdj0jqxlyj6lmysjalnsbh5365fm2irs733hwycicd95f43iv";
+      rev = "065300fb0a8ba6a1c81991da1873c73e136dcdc0";
+      sha256 = "077jj9zmd7ybgpdbc06mjkwdvjvbsa93dc45jbsiqs0yl8vf4hg7";
     };
     meta.homepage = "https://github.com/GustavoKatel/telescope-asynctasks.nvim/";
   };
@@ -6594,12 +6594,12 @@ final: prev:
 
   telescope-coc-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-coc.nvim";
-    version = "2022-02-21";
+    version = "2022-04-11";
     src = fetchFromGitHub {
       owner = "fannheyward";
       repo = "telescope-coc.nvim";
-      rev = "33a8785dc0d0a5fdd243875eba48bfec95e2cebc";
-      sha256 = "1zf4x7jwy0p52nq2yhzap9bi8kc4npbdvxs6gbwy9kd1ddidfrkb";
+      rev = "e5c3c4855a0bb6859975209a480dc830ea802540";
+      sha256 = "02lap2sx1502kwva457z0gdisb28iwf38n7dpw6kdhnxl63yad0n";
     };
     meta.homepage = "https://github.com/fannheyward/telescope-coc.nvim/";
   };
@@ -6618,12 +6618,12 @@ final: prev:
 
   telescope-file-browser-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-file-browser.nvim";
-    version = "2022-03-25";
+    version = "2022-04-20";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-file-browser.nvim";
-      rev = "c6f5104ff309649ebbaec283bbd1ab54511dd109";
-      sha256 = "1b3z4i5jlxjk44x245b5sqnzcn5k1jww8viy0394hj6zqf7ink2w";
+      rev = "ee355b83e00475e11dec82e3ea166f846a392018";
+      sha256 = "1s39si5fifv6bvjk8kzs2zy18ap5q22pfqg68wn5icnp588498hz";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-file-browser.nvim/";
   };
@@ -6679,12 +6679,12 @@ final: prev:
 
   telescope-github-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-github.nvim";
-    version = "2022-01-25";
+    version = "2022-04-06";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-github.nvim";
-      rev = "b46686fd5a928aaf5d433dc9e2aae7d26453f530";
-      sha256 = "1dv4m8xycqq1npc99m5mdv4vh6dwcgf6p7nh1lk82kwyhz1rcw8l";
+      rev = "c66aee748d572961af0e6ad5130b994343f922a7";
+      sha256 = "11crv79xbhxzp9y35rf9fg4mgbwsrj709aw22n98575f0r2vqfgz";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-github.nvim/";
   };
@@ -6715,12 +6715,12 @@ final: prev:
 
   telescope-symbols-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-symbols.nvim";
-    version = "2021-08-07";
+    version = "2022-04-17";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-symbols.nvim";
-      rev = "d2d7d6b4298a1f733649526661d872c5e7a75521";
-      sha256 = "0jxnalhfgmnllwb38a9dgzrnrhdnxgcbi2p7m4jk5p87260a9gvk";
+      rev = "f7d7c84873c95c7bd5682783dd66f84170231704";
+      sha256 = "1yw09d2snma0vy36nfdswm1snf21w183aji7f6y8jnkx47g6gc37";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-symbols.nvim/";
   };
@@ -6787,12 +6787,12 @@ final: prev:
 
   telescope-nvim = buildVimPluginFrom2Nix {
     pname = "telescope.nvim";
-    version = "2022-03-26";
+    version = "2022-04-18";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope.nvim";
-      rev = "cf2d6d34282afd90f0f5d2aba265a23b068494c2";
-      sha256 = "042w0l8hdcxaj3pmbp0w1mqmivfm48pv3vlcz6d423qiljbkrk9k";
+      rev = "6e7ed1b9638f09661fcb3a6db68f3ad77c8036be";
+      sha256 = "11p5byic4qb9cgaffnrwa4s0qdzvxl6313phz5qdll78hwjw2fmy";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
   };
@@ -6968,12 +6968,12 @@ final: prev:
 
   toggleterm-nvim = buildVimPluginFrom2Nix {
     pname = "toggleterm.nvim";
-    version = "2022-03-24";
+    version = "2022-04-18";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "toggleterm.nvim";
-      rev = "9f969e7f72d19966756318d61f2562f67dbb1f9c";
-      sha256 = "118hwkn9cw2wsqigqvbpvbhbag6ywc325lvn088dfpzbn9k7vfmr";
+      rev = "dca8f4d9516270cb41c147ed692f3ee420c5e515";
+      sha256 = "0ajypqnx9kglqh5h3vwyy9ccmazq8gjgb84hjrabr9hgvcnyj5hq";
     };
     meta.homepage = "https://github.com/akinsho/toggleterm.nvim/";
   };
@@ -6992,12 +6992,12 @@ final: prev:
 
   traces-vim = buildVimPluginFrom2Nix {
     pname = "traces.vim";
-    version = "2021-11-17";
+    version = "2022-04-11";
     src = fetchFromGitHub {
       owner = "markonm";
       repo = "traces.vim";
-      rev = "803d97786d0fbe95d33fe3c69e213518ea296839";
-      sha256 = "1hqma8pjl1ladw8iraa6cnsp9jasx4w08zxq5q63ff5mzdb1avn1";
+      rev = "9663fcf84de5776bee71b6c816c25ccb6ea11d1a";
+      sha256 = "0gwn1kclcqp1yvaja6wqf27ng8d4wrd2j7795syxdk3d8vmpn55d";
     };
     meta.homepage = "https://github.com/markonm/traces.vim/";
   };
@@ -7038,18 +7038,6 @@ final: prev:
     meta.homepage = "https://github.com/folke/trouble.nvim/";
   };
 
-  TrueZen-nvim = buildVimPluginFrom2Nix {
-    pname = "TrueZen.nvim";
-    version = "2021-10-12";
-    src = fetchFromGitHub {
-      owner = "Pocco81";
-      repo = "TrueZen.nvim";
-      rev = "508b977d71650da5c9243698614a9a1416f116d4";
-      sha256 = "0sr4y1mg83l28l5ias2pv0gxkcgwailfjn2skx35z63f2il3zkbx";
-    };
-    meta.homepage = "https://github.com/Pocco81/TrueZen.nvim/";
-  };
-
   tslime-vim = buildVimPluginFrom2Nix {
     pname = "tslime.vim";
     version = "2020-09-09";
@@ -7064,12 +7052,12 @@ final: prev:
 
   tsuquyomi = buildVimPluginFrom2Nix {
     pname = "tsuquyomi";
-    version = "2020-10-16";
+    version = "2022-04-12";
     src = fetchFromGitHub {
       owner = "Quramy";
       repo = "tsuquyomi";
-      rev = "144526df5340d3bd0b413e6127c0393de171889a";
-      sha256 = "1amizvbpv4mwpi39x9xn5aj1kjkgl4sgh54irnhs4ga76zn0s09d";
+      rev = "8f6e2464171c5367867959093aa4b9c99b636a57";
+      sha256 = "1h8gw0nlwd31yx6xd67c0bw4bw71rxpldlvmnfp8cxnpjiav3zkj";
     };
     meta.homepage = "https://github.com/Quramy/tsuquyomi/";
   };
@@ -7100,12 +7088,12 @@ final: prev:
 
   ultisnips = buildVimPluginFrom2Nix {
     pname = "ultisnips";
-    version = "2022-02-17";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "SirVer";
       repo = "ultisnips";
-      rev = "ca21d30c7a72e0e18ad95f25ded5a5f820052685";
-      sha256 = "1zn97bjlhz3izs7dh97w528zlfi91k0pl95lrmr5cz2px65icsry";
+      rev = "e1ae43e44fb6b53144a5a8703a3d6cf10492a4a0";
+      sha256 = "1rzhv8dma9ijf6g9z5drbi45bngzh4ccr3h4i0b8x3w4ab97p17q";
     };
     meta.homepage = "https://github.com/SirVer/ultisnips/";
   };
@@ -7124,12 +7112,12 @@ final: prev:
 
   unicode-vim = buildVimPluginFrom2Nix {
     pname = "unicode.vim";
-    version = "2021-09-02";
+    version = "2022-04-18";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "unicode.vim";
-      rev = "664d7b2e5cedf36ea3a85ad7e8e28e43c16f025b";
-      sha256 = "1033x76ixh2k454y23swqhn8bf9nibl8jzijva53c0xk7018kzh4";
+      rev = "cc36bfa066d4a773e3152cc3c70051bc23ef2893";
+      sha256 = "1npirr14khfmpvnvbmys98lxhy0yg5ah3270s85b9lp2xhxnkpps";
     };
     meta.homepage = "https://github.com/chrisbra/unicode.vim/";
   };
@@ -7148,12 +7136,12 @@ final: prev:
 
   urlview-nvim = buildVimPluginFrom2Nix {
     pname = "urlview.nvim";
-    version = "2022-03-29";
+    version = "2022-04-20";
     src = fetchFromGitHub {
       owner = "axieax";
       repo = "urlview.nvim";
-      rev = "4ca1b22d914ff3187acd5a9486421769928c9d8f";
-      sha256 = "1vy977y7favs76mpk6v3x18ph40y0d20kmm6bssvnlql1nh3ihbd";
+      rev = "fcd59fc3a49e75993c3828c49df18bf3da51f45d";
+      sha256 = "16y3hicljn9y60jzvq7xmhhp7r3y0v5v4f1i16hj65rly96wziq7";
     };
     meta.homepage = "https://github.com/axieax/urlview.nvim/";
   };
@@ -7170,18 +7158,6 @@ final: prev:
     meta.homepage = "https://github.com/vim-scripts/utl.vim/";
   };
 
-  vader-vim = buildVimPluginFrom2Nix {
-    pname = "vader.vim";
-    version = "2020-02-13";
-    src = fetchFromGitHub {
-      owner = "junegunn";
-      repo = "vader.vim";
-      rev = "6fff477431ac3191c69a3a5e5f187925466e275a";
-      sha256 = "153cr1mrf5w5lyr8374brwx1z5yl9h0cnijxnd3xikh3yi3pbmwk";
-    };
-    meta.homepage = "https://github.com/junegunn/vader.vim/";
-  };
-
   vCoolor-vim = buildVimPluginFrom2Nix {
     pname = "vCoolor.vim";
     version = "2020-10-14";
@@ -7194,6 +7170,18 @@ final: prev:
     meta.homepage = "https://github.com/KabbAmine/vCoolor.vim/";
   };
 
+  vader-vim = buildVimPluginFrom2Nix {
+    pname = "vader.vim";
+    version = "2020-02-13";
+    src = fetchFromGitHub {
+      owner = "junegunn";
+      repo = "vader.vim";
+      rev = "6fff477431ac3191c69a3a5e5f187925466e275a";
+      sha256 = "153cr1mrf5w5lyr8374brwx1z5yl9h0cnijxnd3xikh3yi3pbmwk";
+    };
+    meta.homepage = "https://github.com/junegunn/vader.vim/";
+  };
+
   venn-nvim = buildVimPluginFrom2Nix {
     pname = "venn.nvim";
     version = "2021-10-19";
@@ -7220,16 +7208,88 @@ final: prev:
 
   vifm-vim = buildVimPluginFrom2Nix {
     pname = "vifm.vim";
-    version = "2022-03-24";
+    version = "2022-03-28";
     src = fetchFromGitHub {
       owner = "vifm";
       repo = "vifm.vim";
-      rev = "11d8fb106515a4c4e6016742053356c9f0434fed";
-      sha256 = "1gjaqmkrxg5x6mpb7dnznbbzrv3iadcw7snxjx7bzmr0b24mddcp";
+      rev = "069349e5dbba9fbb24b88ebedb89f728387fae79";
+      sha256 = "1rrzhg8qpvgvcm9fkr05hmkw95gn37pys0h0d6rii6qhbx9z95vs";
     };
     meta.homepage = "https://github.com/vifm/vifm.vim/";
   };
 
+  vim-CtrlXA = buildVimPluginFrom2Nix {
+    pname = "vim-CtrlXA";
+    version = "2021-08-09";
+    src = fetchFromGitHub {
+      owner = "Konfekt";
+      repo = "vim-CtrlXA";
+      rev = "404ea1e055921db5679b3734108d72850d6faa76";
+      sha256 = "10bgyqnwcqly3sxl27np1b690hnj1snqbcvg8pzh4zgdysfgy9xg";
+    };
+    meta.homepage = "https://github.com/Konfekt/vim-CtrlXA/";
+  };
+
+  vim-DetectSpellLang = buildVimPluginFrom2Nix {
+    pname = "vim-DetectSpellLang";
+    version = "2022-03-15";
+    src = fetchFromGitHub {
+      owner = "konfekt";
+      repo = "vim-DetectSpellLang";
+      rev = "d5b55e3307e72e45f8d736818c76884016583538";
+      sha256 = "0l9bdgqaxfpndpf4v5kxn34zx5pnhf62chp4flzyyhhzlz52dqjw";
+    };
+    meta.homepage = "https://github.com/konfekt/vim-DetectSpellLang/";
+  };
+
+  vim-LanguageTool = buildVimPluginFrom2Nix {
+    pname = "vim-LanguageTool";
+    version = "2021-02-08";
+    src = fetchFromGitHub {
+      owner = "dpelle";
+      repo = "vim-LanguageTool";
+      rev = "0372ffae78aa3eac3bfa48ba3bf2f4015a86385a";
+      sha256 = "00476l49lczj1rw5gb6vs7s9r0zi1khw0g1v6bsfwl5r32699l7r";
+    };
+    meta.homepage = "https://github.com/dpelle/vim-LanguageTool/";
+  };
+
+  vim-ReplaceWithRegister = buildVimPluginFrom2Nix {
+    pname = "vim-ReplaceWithRegister";
+    version = "2021-07-05";
+    src = fetchFromGitHub {
+      owner = "inkarkat";
+      repo = "vim-ReplaceWithRegister";
+      rev = "aad1e8fa31cb4722f20fe40679caa56e25120032";
+      sha256 = "1cfgixq5smwbp55x2baaj1kw736w2mykysppphair44vb4w9rlgm";
+    };
+    meta.homepage = "https://github.com/inkarkat/vim-ReplaceWithRegister/";
+  };
+
+  vim-ReplaceWithSameIndentRegister = buildVimPluginFrom2Nix {
+    pname = "vim-ReplaceWithSameIndentRegister";
+    version = "2020-06-17";
+    src = fetchFromGitHub {
+      owner = "inkarkat";
+      repo = "vim-ReplaceWithSameIndentRegister";
+      rev = "0b7f542560bd21822a004e8accdf472eb477c9cf";
+      sha256 = "04zvhqh9rjfiwfk8r0zci608pw09svqb42nvp8pvqb11xp2ydg2y";
+    };
+    meta.homepage = "https://github.com/inkarkat/vim-ReplaceWithSameIndentRegister/";
+  };
+
+  vim-SyntaxRange = buildVimPluginFrom2Nix {
+    pname = "vim-SyntaxRange";
+    version = "2021-01-16";
+    src = fetchFromGitHub {
+      owner = "inkarkat";
+      repo = "vim-SyntaxRange";
+      rev = "3a7fd9ff50fabafe61df12522ed2f275c8e2f45e";
+      sha256 = "1b5xyacbn87z8wkacjpnjk82xmxzivlb111427kwb5kxxdh4w7gq";
+    };
+    meta.homepage = "https://github.com/inkarkat/vim-SyntaxRange/";
+  };
+
   vim-abolish = buildVimPluginFrom2Nix {
     pname = "vim-abolish";
     version = "2021-03-20";
@@ -7484,12 +7544,12 @@ final: prev:
 
   vim-airline = buildVimPluginFrom2Nix {
     pname = "vim-airline";
-    version = "2022-03-23";
+    version = "2022-04-12";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline";
-      rev = "a306a7abfd8b4450fcfdc0384dadb996148d2c1b";
-      sha256 = "0qvz41rpdbcsszh0n4jhjrw9anyzsh4r1j694a3ryjj58gg9smjy";
+      rev = "be5bda1f1dbfa4e36b2adabaf3f423adfa66c336";
+      sha256 = "1k0yv95i2kigggmh3dcg9rq6pkh7qcycsv9nm6jshgsfic8ly8n5";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline/";
   };
@@ -7664,12 +7724,12 @@ final: prev:
 
   vim-bazel = buildVimPluginFrom2Nix {
     pname = "vim-bazel";
-    version = "2021-01-31";
+    version = "2022-04-09";
     src = fetchFromGitHub {
       owner = "bazelbuild";
       repo = "vim-bazel";
-      rev = "58c750d13ec2337ba3e5992f96891bbb843a9dbf";
-      sha256 = "0xsgj1j8xamkri75cjnih5xzwp8y7g1i7hgbbbmknz5d8jm3p204";
+      rev = "31b0d5e4f51da1aeb56d65bf505a744e6de405de";
+      sha256 = "1cx4axwcm7mm2c2xi4ghv1nlgfzl29g820znbpm77r8hpaqkj7ki";
     };
     meta.homepage = "https://github.com/bazelbuild/vim-bazel/";
   };
@@ -7784,12 +7844,12 @@ final: prev:
 
   vim-bufkill = buildVimPluginFrom2Nix {
     pname = "vim-bufkill";
-    version = "2020-08-04";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "qpkorr";
       repo = "vim-bufkill";
-      rev = "2bd6d7e791668ea52bb26be2639406fcf617271f";
-      sha256 = "1cvma03bg9psil67kg1x90lny7a31ljz5shybcl1jrfpzsybcqvg";
+      rev = "3113181d0c1bfb8719f3ddcd2e2f35a8d763d1e5";
+      sha256 = "1jfwzizkfljkz6cqjzx3sn5wnn3kl2kvwinl5bbp9vjc6ssnz2df";
     };
     meta.homepage = "https://github.com/qpkorr/vim-bufkill/";
   };
@@ -7856,12 +7916,12 @@ final: prev:
 
   vim-clap = buildVimPluginFrom2Nix {
     pname = "vim-clap";
-    version = "2022-03-25";
+    version = "2022-04-08";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-clap";
-      rev = "6fd4fecaf8b1da31c625e5f02822778d4a2a08b5";
-      sha256 = "0h9z49r20wyqwvj4dr5grq0zdaz2d728jxc29l5q3rb1nh9nqbfi";
+      rev = "6e99d7924862b0a929983a36dd1d9bb9ae87ec44";
+      sha256 = "1w7sjryw6inq2v4ryfabphbavmpgz6qa6f7jxyx1irjsd3293z65";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-clap/";
   };
@@ -8024,12 +8084,12 @@ final: prev:
 
   vim-cool = buildVimPluginFrom2Nix {
     pname = "vim-cool";
-    version = "2020-04-18";
+    version = "2022-03-30";
     src = fetchFromGitHub {
       owner = "romainl";
       repo = "vim-cool";
-      rev = "27ad4ecf7532b750fadca9f36e1c5498fc225af2";
-      sha256 = "1in44gf7hs978nc9328zh1kj3jh04kcinw0m8spcbgj079782sg8";
+      rev = "0ad6a212a910cef0aac7af244ee008ddd39a75c2";
+      sha256 = "1jv3nl6vdn562zhd387yggwflncmy7vf89md5kkacmkvjz8rkis5";
     };
     meta.homepage = "https://github.com/romainl/vim-cool/";
   };
@@ -8082,18 +8142,6 @@ final: prev:
     meta.homepage = "https://github.com/ap/vim-css-color/";
   };
 
-  vim-CtrlXA = buildVimPluginFrom2Nix {
-    pname = "vim-CtrlXA";
-    version = "2021-08-09";
-    src = fetchFromGitHub {
-      owner = "Konfekt";
-      repo = "vim-CtrlXA";
-      rev = "404ea1e055921db5679b3734108d72850d6faa76";
-      sha256 = "10bgyqnwcqly3sxl27np1b690hnj1snqbcvg8pzh4zgdysfgy9xg";
-    };
-    meta.homepage = "https://github.com/Konfekt/vim-CtrlXA/";
-  };
-
   vim-cue = buildVimPluginFrom2Nix {
     pname = "vim-cue";
     version = "2021-06-18";
@@ -8178,18 +8226,6 @@ final: prev:
     meta.homepage = "https://github.com/sunaku/vim-dasht/";
   };
 
-  vim-DetectSpellLang = buildVimPluginFrom2Nix {
-    pname = "vim-DetectSpellLang";
-    version = "2022-03-15";
-    src = fetchFromGitHub {
-      owner = "konfekt";
-      repo = "vim-DetectSpellLang";
-      rev = "d5b55e3307e72e45f8d736818c76884016583538";
-      sha256 = "0l9bdgqaxfpndpf4v5kxn34zx5pnhf62chp4flzyyhhzlz52dqjw";
-    };
-    meta.homepage = "https://github.com/konfekt/vim-DetectSpellLang/";
-  };
-
   vim-deus = buildVimPluginFrom2Nix {
     pname = "vim-deus";
     version = "2021-03-28";
@@ -8298,18 +8334,6 @@ final: prev:
     meta.homepage = "https://github.com/jhradilek/vim-docbk/";
   };
 
-  vim-docbk-snippets = buildVimPluginFrom2Nix {
-    pname = "vim-docbk-snippets";
-    version = "2021-07-30";
-    src = fetchFromGitHub {
-      owner = "jhradilek";
-      repo = "vim-snippets";
-      rev = "81a8dcb66886a0717e9ca73c8857ee90c3989063";
-      sha256 = "0d6532qx66aiawpq2fdji0mnmvnlg5dnbvds5s4pgzafydikpr70";
-    };
-    meta.homepage = "https://github.com/jhradilek/vim-snippets/";
-  };
-
   vim-easy-align = buildVimPluginFrom2Nix {
     pname = "vim-easy-align";
     version = "2019-04-29";
@@ -8348,12 +8372,12 @@ final: prev:
 
   vim-easymotion = buildVimPluginFrom2Nix {
     pname = "vim-easymotion";
-    version = "2020-12-17";
+    version = "2022-04-04";
     src = fetchFromGitHub {
       owner = "easymotion";
       repo = "vim-easymotion";
-      rev = "d75d9591e415652b25d9e0a3669355550325263d";
-      sha256 = "1j2kgh1iri0fqkbgbgvfjqgsksfipnmr1xbj554i602pnm0hbg19";
+      rev = "b3cfab2a6302b3b39f53d9fd2cd997e1127d7878";
+      sha256 = "1h30ak0ir5320asd5p7a9bqiv5whakv3022b3rakgnsjg503nxz1";
     };
     meta.homepage = "https://github.com/easymotion/vim-easymotion/";
   };
@@ -8384,12 +8408,12 @@ final: prev:
 
   vim-elixir = buildVimPluginFrom2Nix {
     pname = "vim-elixir";
-    version = "2022-01-26";
+    version = "2022-03-29";
     src = fetchFromGitHub {
       owner = "elixir-editors";
       repo = "vim-elixir";
-      rev = "ff7a1223dfc5386c41bb582039a90a262d488607";
-      sha256 = "0a82c6vmdjfq1cjiakdxd9mz0ivqivrjcrppqpwch9rzp98qspag";
+      rev = "edf880c41ec1768faafc480433ae72ceffaf4362";
+      sha256 = "14jgwgwynynlipvmr02i9h4q2mc459fz4jyflcngvpyc9ady9ald";
     };
     meta.homepage = "https://github.com/elixir-editors/vim-elixir/";
   };
@@ -8420,12 +8444,12 @@ final: prev:
 
   vim-endwise = buildVimPluginFrom2Nix {
     pname = "vim-endwise";
-    version = "2022-03-24";
+    version = "2022-03-29";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-endwise";
-      rev = "8faf48b69b04af120e162ce113ea21eac322e3b4";
-      sha256 = "0zfgsqs2mal1yh8x4lj1kx2ib80clsh9s9swh44cq5ga5glfkyn8";
+      rev = "720b3ee46a86fe8858baeed473e11bca54b997a9";
+      sha256 = "1rql1zbzi1ffj0bdw4qkm1rbb5zscxqaml0rx0rh4y3zr7ny7vny";
     };
     meta.homepage = "https://github.com/tpope/vim-endwise/";
   };
@@ -8480,12 +8504,12 @@ final: prev:
 
   vim-eunuch = buildVimPluginFrom2Nix {
     pname = "vim-eunuch";
-    version = "2022-03-23";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-eunuch";
-      rev = "01aa41b276b45e2df2cb680ab38e78ea7e5786c1";
-      sha256 = "149hnk9ja9vnw5vr7axliyqh0l2xz6i4l3lngdlzi1xic0xfwxf5";
+      rev = "c1ee64a9775b4adff8d4e052b158f380682bc249";
+      sha256 = "17m1632a4nwilg0d29gx7gsng8f1w82q049iynm4gy1aqczlwgxh";
     };
     meta.homepage = "https://github.com/tpope/vim-eunuch/";
   };
@@ -8516,12 +8540,12 @@ final: prev:
 
   vim-extradite = buildVimPluginFrom2Nix {
     pname = "vim-extradite";
-    version = "2019-05-08";
+    version = "2022-04-15";
     src = fetchFromGitHub {
       owner = "int3";
       repo = "vim-extradite";
-      rev = "58c77fffbb5d61eb0b87c8b4ef0ad78e9659d621";
-      sha256 = "1mm2icx50q5iyhaz1dypnbqh14s1wsnw8skpxcm1klhqn02zk46f";
+      rev = "73dab6a94d9dd3cb6189b458bfdf38493280b332";
+      sha256 = "0qlf69bdfmgf5j47q6vx02rjrngil93rq3im9ag3601zq55rxq8a";
     };
     meta.homepage = "https://github.com/int3/vim-extradite/";
   };
@@ -8540,12 +8564,12 @@ final: prev:
 
   vim-fireplace = buildVimPluginFrom2Nix {
     pname = "vim-fireplace";
-    version = "2022-03-11";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fireplace";
-      rev = "49f213283ffd79e1a397a30ce9e11849eaacf8e1";
-      sha256 = "0lk6xxbf111p1d75vagfhf1qydm1mzm4xycmyydfr46acy6a8hbk";
+      rev = "b6bef833b56632df917bcf33bc50b8a5d1e26139";
+      sha256 = "1b0qw5l8gyq3bf8ii1f2xb7kfdgyi0c4yivcmmziq8nqvrzwwzwp";
     };
     meta.homepage = "https://github.com/tpope/vim-fireplace/";
   };
@@ -8672,12 +8696,12 @@ final: prev:
 
   vim-fugitive = buildVimPluginFrom2Nix {
     pname = "vim-fugitive";
-    version = "2022-03-26";
+    version = "2022-04-14";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "321328c6c5901a597348155fc0e83b800544dcb0";
-      sha256 = "11sd87c9vw1gs9pkvv0y24yqhkack0yxv5mg50ss6v7mjjdngv66";
+      rev = "4b0f2b604562e9681ae3b80c2665f168ac637cea";
+      sha256 = "0amph3kjqq0hl74akpp5czjw2gk6mh6l2zz113mrb95nri0bz73q";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
@@ -8768,12 +8792,12 @@ final: prev:
 
   vim-gitgutter = buildVimPluginFrom2Nix {
     pname = "vim-gitgutter";
-    version = "2022-02-23";
+    version = "2022-04-15";
     src = fetchFromGitHub {
       owner = "airblade";
       repo = "vim-gitgutter";
-      rev = "18d12985ea6cb7ede59755ff4fd0a9fa1e6bf835";
-      sha256 = "1gs7vaf9pyd8ji0vc9iafd46g4iqy8rpa2jif0k56wxzcrjw4r22";
+      rev = "d5bae104031bb1633cb5c5178dc7d4ac422b422a";
+      sha256 = "1k6bn3wm9chaqhkaw382169ia5ycbbnw00hwyaabx7fbzc8zf7zw";
     };
     meta.homepage = "https://github.com/airblade/vim-gitgutter/";
   };
@@ -8816,12 +8840,12 @@ final: prev:
 
   vim-go = buildVimPluginFrom2Nix {
     pname = "vim-go";
-    version = "2022-03-19";
+    version = "2022-04-15";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "dcefd64ba251ffc3d497f8758036735c8f6cc824";
-      sha256 = "1j5jrs7kk59ilqsjs0qk5213psv33xnnifsqrjc7h63p28sv3pnw";
+      rev = "687eb72bb6e84012ef2b0b2474175e46243e43b0";
+      sha256 = "0llf81fh166xvdvy0vj93a964hp2clb3lqdy2sp3fhzldzyv0bab";
     };
     meta.homepage = "https://github.com/fatih/vim-go/";
   };
@@ -8922,18 +8946,6 @@ final: prev:
     meta.homepage = "https://github.com/chkno/vim-haskell-module-name/";
   };
 
-  vim-haskellconceal = buildVimPluginFrom2Nix {
-    pname = "vim-haskellconceal";
-    version = "2017-06-15";
-    src = fetchFromGitHub {
-      owner = "twinside";
-      repo = "vim-haskellconceal";
-      rev = "802f82a5afee56e9e1251e6f756104a3bd114234";
-      sha256 = "1kh6853hi4rgl4z1xs8kz9l1q9w7lh0r42y2m0rabfpr6yh3091r";
-    };
-    meta.homepage = "https://github.com/twinside/vim-haskellconceal/";
-  };
-
   vim-haskellConcealPlus = buildVimPluginFrom2Nix {
     pname = "vim-haskellConcealPlus";
     version = "2020-01-21";
@@ -8946,6 +8958,18 @@ final: prev:
     meta.homepage = "https://github.com/enomsg/vim-haskellConcealPlus/";
   };
 
+  vim-haskellconceal = buildVimPluginFrom2Nix {
+    pname = "vim-haskellconceal";
+    version = "2017-06-15";
+    src = fetchFromGitHub {
+      owner = "twinside";
+      repo = "vim-haskellconceal";
+      rev = "802f82a5afee56e9e1251e6f756104a3bd114234";
+      sha256 = "1kh6853hi4rgl4z1xs8kz9l1q9w7lh0r42y2m0rabfpr6yh3091r";
+    };
+    meta.homepage = "https://github.com/twinside/vim-haskellconceal/";
+  };
+
   vim-hcl = buildVimPluginFrom2Nix {
     pname = "vim-hcl";
     version = "2022-02-25";
@@ -9117,12 +9141,12 @@ final: prev:
 
   vim-illuminate = buildVimPluginFrom2Nix {
     pname = "vim-illuminate";
-    version = "2022-03-13";
+    version = "2022-04-10";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "vim-illuminate";
-      rev = "487563de7ed6195fd46da178cb38dc1ff110c1ce";
-      sha256 = "1k4pzq1gxqpcrx828ywypff1cjrns34rh8q7yz1j8nhlqvgrda9s";
+      rev = "c82e6d04f27a41d7fdcad9be0bce5bb59fcb78e5";
+      sha256 = "192a6il56r4cfkqq67vh5kbdfa7vzwmh33sb8zy6zlri0a0h7dw8";
     };
     meta.homepage = "https://github.com/RRethy/vim-illuminate/";
   };
@@ -9201,12 +9225,12 @@ final: prev:
 
   vim-jack-in = buildVimPluginFrom2Nix {
     pname = "vim-jack-in";
-    version = "2021-03-27";
+    version = "2022-04-03";
     src = fetchFromGitHub {
       owner = "clojure-vim";
       repo = "vim-jack-in";
-      rev = "80c69cc021486d1cfa5dac7d9d6ab6954ff20c27";
-      sha256 = "11dw8kngzznzf91n6iyvw7yi1l35vgpva32dck3n25vpxc24krpn";
+      rev = "5467e00e26f15680b0a7998f8aa20d5a7dd44cd5";
+      sha256 = "1wi379l8d793v6hjx11v0dhgdn8a9ihx64gv51v9wpmjlvp9xbzd";
     };
     meta.homepage = "https://github.com/clojure-vim/vim-jack-in/";
   };
@@ -9346,28 +9370,16 @@ final: prev:
 
   vim-kitty-navigator = buildVimPluginFrom2Nix {
     pname = "vim-kitty-navigator";
-    version = "2022-02-04";
+    version = "2022-03-27";
     src = fetchFromGitHub {
       owner = "knubie";
       repo = "vim-kitty-navigator";
-      rev = "8d9af030c8a74cdda6ab9a510d9a13bca80e8f9b";
-      sha256 = "03rf49w3x67aayfn6hl0jhf4gik1scq4khhnvicp1zabdn8cq175";
+      rev = "7bf84bc1253bebb86cbf63efa274a656e1faadc6";
+      sha256 = "126z01zqrpnkhi7kprl8kqwkr5ahxyrnx3pvzzmfqb9320v98d18";
     };
     meta.homepage = "https://github.com/knubie/vim-kitty-navigator/";
   };
 
-  vim-LanguageTool = buildVimPluginFrom2Nix {
-    pname = "vim-LanguageTool";
-    version = "2021-02-08";
-    src = fetchFromGitHub {
-      owner = "dpelle";
-      repo = "vim-LanguageTool";
-      rev = "0372ffae78aa3eac3bfa48ba3bf2f4015a86385a";
-      sha256 = "00476l49lczj1rw5gb6vs7s9r0zi1khw0g1v6bsfwl5r32699l7r";
-    };
-    meta.homepage = "https://github.com/dpelle/vim-LanguageTool/";
-  };
-
   vim-lastplace = buildVimPluginFrom2Nix {
     pname = "vim-lastplace";
     version = "2022-02-22";
@@ -9490,12 +9502,12 @@ final: prev:
 
   vim-localvimrc = buildVimPluginFrom2Nix {
     pname = "vim-localvimrc";
-    version = "2022-03-10";
+    version = "2022-04-06";
     src = fetchFromGitHub {
       owner = "embear";
       repo = "vim-localvimrc";
-      rev = "4c768d215a0654d61ea72eeec423716bd971948e";
-      sha256 = "0q2c8n1kbqsx005cn0p1f5334qgslkla2zag03q0vy57g3yhydv4";
+      rev = "b0a81e42e6036f716bd9e6b025978dfb7dacaa53";
+      sha256 = "1327i1pamz3bwhj1zyr2bjn142bhp45y1xlv8gs7dm7zyixfksd3";
     };
     meta.homepage = "https://github.com/embear/vim-localvimrc/";
   };
@@ -9538,12 +9550,12 @@ final: prev:
 
   vim-lsp = buildVimPluginFrom2Nix {
     pname = "vim-lsp";
-    version = "2022-03-04";
+    version = "2022-04-17";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "vim-lsp";
-      rev = "bfb7541eb88eb9804287af39aca70102e60d2bf0";
-      sha256 = "1kaa92ylw5i8ysb2yxyqf666194wwcixgagi7gq3apkddr35a6g0";
+      rev = "8df4aa40191717b34f5da8d3c8e90dc0f1f62e0b";
+      sha256 = "0nx63rn86cjprwbvqpzarxxn1id6jndvww9n10ssdf5cfkw697b7";
     };
     meta.homepage = "https://github.com/prabirshrestha/vim-lsp/";
   };
@@ -9610,12 +9622,12 @@ final: prev:
 
   vim-markdown = buildVimPluginFrom2Nix {
     pname = "vim-markdown";
-    version = "2022-02-22";
+    version = "2022-04-13";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "vim-markdown";
-      rev = "95e90840c45911b62261bae02e3ba2777877eaf5";
-      sha256 = "1jrj3419ar7lnj6mriq3pvffsg6g3kxg36jrixi96a0cl2aqrs8b";
+      rev = "c031a3e65c50d6aa0bfc81f8be9d248f9644426d";
+      sha256 = "0l8ginadb4jxnrggd1lvia8kan397x02jf3v6sgkcyxawwpgfl0x";
     };
     meta.homepage = "https://github.com/preservim/vim-markdown/";
   };
@@ -9647,12 +9659,12 @@ final: prev:
 
   vim-matchup = buildVimPluginFrom2Nix {
     pname = "vim-matchup";
-    version = "2022-02-18";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "andymass";
       repo = "vim-matchup";
-      rev = "7fd8806138f404498db7a3e848d8fa55ad61e7cf";
-      sha256 = "061jvw0rdwz7s4yaiq7s32cx0y1vkknsc80gh2gj53jsbcpk30zp";
+      rev = "bb04f9fa64b96bd3d6c4c146c6f9c55a69587fac";
+      sha256 = "1wrgxsdv3q2px0q7w6jf5dnj2abr0vf1pfq5f53zq784h08m07hq";
     };
     meta.homepage = "https://github.com/andymass/vim-matchup/";
   };
@@ -9911,12 +9923,12 @@ final: prev:
 
   vim-obsession = buildVimPluginFrom2Nix {
     pname = "vim-obsession";
-    version = "2022-03-25";
+    version = "2022-04-05";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-obsession";
-      rev = "d2818a614ec3a5d174c6bb19e87e2eeb207f4900";
-      sha256 = "08scgvpc5rmcc6xwbqir1b8y4fx58im5gn55fpg33s5346lxwd62";
+      rev = "7d39576149d17bde3c096fd57e3a2cdae65deaf5";
+      sha256 = "0g716c3dvd7068lfgcbxlzn86529kji4zms5n2xgrn3h0vn722zz";
     };
     meta.homepage = "https://github.com/tpope/vim-obsession/";
   };
@@ -10115,12 +10127,12 @@ final: prev:
 
   vim-parinfer = buildVimPluginFrom2Nix {
     pname = "vim-parinfer";
-    version = "2020-02-04";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "bhurlow";
       repo = "vim-parinfer";
-      rev = "a8c075ce5256bffbf1f62e08aba37dca88d0cf1a";
-      sha256 = "1v2pyjyxvqw2kl9j4pdpdlbl2q3jnndcb8iqgyygs7jn91c4s073";
+      rev = "e8ae788a91f41d627cec905c61a2dec9c9183341";
+      sha256 = "0dkxfdakgcs6743dzja7l5vdc2pczv3ahr79g93mzjj0wbn6gd1i";
     };
     meta.homepage = "https://github.com/bhurlow/vim-parinfer/";
   };
@@ -10199,12 +10211,12 @@ final: prev:
 
   vim-plug = buildVimPluginFrom2Nix {
     pname = "vim-plug";
-    version = "2022-01-03";
+    version = "2022-04-04";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "vim-plug";
-      rev = "e300178a0e2fb04b56de8957281837f13ecf0b27";
-      sha256 = "0bfgadn31n516x0m0kr88jk9x79rl6zllnwij759wpazmw1p0xg8";
+      rev = "93ab5909784e09134e90f15cafa8a5edcc9a00fe";
+      sha256 = "0cq2ilqqq90bpp8pzylqi759hqb9ni6l1rqkvj6aj7a4b29a59nv";
     };
     meta.homepage = "https://github.com/junegunn/vim-plug/";
   };
@@ -10223,12 +10235,12 @@ final: prev:
 
   vim-polyglot = buildVimPluginFrom2Nix {
     pname = "vim-polyglot";
-    version = "2022-02-20";
+    version = "2022-04-18";
     src = fetchFromGitHub {
       owner = "sheerun";
       repo = "vim-polyglot";
-      rev = "83422e0a1fcfc88f3475104b0e0674e8dbe3130e";
-      sha256 = "1fj2avq18qx6rkghqiyp14qg166889kfpj7hzy5a1n71n5c8lh2j";
+      rev = "db7bb8ba22f5798bf3abe9f786bc6e6d002725f8";
+      sha256 = "1fjy26ncql66fn7jdmggkndad1ib9csblvyq42sq9qcdci0lb9jx";
     };
     meta.homepage = "https://github.com/sheerun/vim-polyglot/";
   };
@@ -10295,12 +10307,12 @@ final: prev:
 
   vim-projectionist = buildVimPluginFrom2Nix {
     pname = "vim-projectionist";
-    version = "2022-03-13";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-projectionist";
-      rev = "93b2af188fe0937edea414b8e05a362b74f4b31d";
-      sha256 = "13x66y0dp70s2wcz5jkcqyp1r44sn3xdn70khzgl3jlv94ij3s1y";
+      rev = "8fb9440ad4cea6ffea8efc3efa4d8d64e7fb9785";
+      sha256 = "0nlsi05r2gvmwzzrrcifvx1rq09d16mnfa3gl2qif5dgmrj7qzni";
     };
     meta.homepage = "https://github.com/tpope/vim-projectionist/";
   };
@@ -10415,12 +10427,12 @@ final: prev:
 
   vim-quickrun = buildVimPluginFrom2Nix {
     pname = "vim-quickrun";
-    version = "2021-11-07";
+    version = "2022-04-16";
     src = fetchFromGitHub {
       owner = "thinca";
       repo = "vim-quickrun";
-      rev = "4f2f5628098efba5db2ae152dc3ac0d9b310659a";
-      sha256 = "03db4xyzhsjdfa940bhkh7s8bka7rrpw6l1sscjk9s1mqs5ypjcl";
+      rev = "53917966d392d5517d38e63b2520bd2641763778";
+      sha256 = "03cswzwfpjf0v3nnjr0141p03fswsv13kphhac4i3ajal30nh80h";
     };
     meta.homepage = "https://github.com/thinca/vim-quickrun/";
   };
@@ -10463,12 +10475,12 @@ final: prev:
 
   vim-rails = buildVimPluginFrom2Nix {
     pname = "vim-rails";
-    version = "2022-01-16";
+    version = "2022-04-16";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-rails";
-      rev = "de73f6d1b0bf1b2af2d576f3420fc861af14769f";
-      sha256 = "18lqsvnacgj5pb35qvw0bk9dpsddj63k4bmyzp8syikpqq3dzn26";
+      rev = "d38f1bf8575b920042153689492721b80252ae41";
+      sha256 = "18c3maypsl265f3a03602mnq4lky5w786i9iaphv5x5rlnfwj8wa";
     };
     meta.homepage = "https://github.com/tpope/vim-rails/";
   };
@@ -10497,30 +10509,6 @@ final: prev:
     meta.homepage = "https://github.com/tpope/vim-repeat/";
   };
 
-  vim-ReplaceWithRegister = buildVimPluginFrom2Nix {
-    pname = "vim-ReplaceWithRegister";
-    version = "2021-07-05";
-    src = fetchFromGitHub {
-      owner = "inkarkat";
-      repo = "vim-ReplaceWithRegister";
-      rev = "aad1e8fa31cb4722f20fe40679caa56e25120032";
-      sha256 = "1cfgixq5smwbp55x2baaj1kw736w2mykysppphair44vb4w9rlgm";
-    };
-    meta.homepage = "https://github.com/inkarkat/vim-ReplaceWithRegister/";
-  };
-
-  vim-ReplaceWithSameIndentRegister = buildVimPluginFrom2Nix {
-    pname = "vim-ReplaceWithSameIndentRegister";
-    version = "2020-06-17";
-    src = fetchFromGitHub {
-      owner = "inkarkat";
-      repo = "vim-ReplaceWithSameIndentRegister";
-      rev = "0b7f542560bd21822a004e8accdf472eb477c9cf";
-      sha256 = "04zvhqh9rjfiwfk8r0zci608pw09svqb42nvp8pvqb11xp2ydg2y";
-    };
-    meta.homepage = "https://github.com/inkarkat/vim-ReplaceWithSameIndentRegister/";
-  };
-
   vim-rhubarb = buildVimPluginFrom2Nix {
     pname = "vim-rhubarb";
     version = "2021-09-13";
@@ -10571,12 +10559,12 @@ final: prev:
 
   vim-salve = buildVimPluginFrom2Nix {
     pname = "vim-salve";
-    version = "2022-01-14";
+    version = "2022-04-15";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-salve";
-      rev = "7f66b7a6446fc259798c5525ba15d4e65e2fd142";
-      sha256 = "12xcql1sl23jbni6xh2cvhjxr4byaz3d987frsp41gdxkaig12cq";
+      rev = "81f131b494cd7baa8e4e1f9242721e7107ea2f2b";
+      sha256 = "0kl2nq1lqj2kgimz477xafnyh7z9fa44mwl2qajw5qchvx4f9h0a";
     };
     meta.homepage = "https://github.com/tpope/vim-salve/";
   };
@@ -10641,14 +10629,26 @@ final: prev:
     meta.homepage = "https://github.com/tpope/vim-scriptease/";
   };
 
+  vim-search-pulse = buildVimPluginFrom2Nix {
+    pname = "vim-search-pulse";
+    version = "2017-01-05";
+    src = fetchFromGitHub {
+      owner = "inside";
+      repo = "vim-search-pulse";
+      rev = "9f8f473e3813bd76ecb66e8d6182d96bda39b6df";
+      sha256 = "1xr90a8wvjfkgw1yrh0zcvpvp9ma6z0wqkl8v8pabf20vckgy2q0";
+    };
+    meta.homepage = "https://github.com/inside/vim-search-pulse/";
+  };
+
   vim-sensible = buildVimPluginFrom2Nix {
     pname = "vim-sensible";
-    version = "2019-11-24";
+    version = "2022-04-11";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-sensible";
-      rev = "2d9f34c09f548ed4df213389caa2882bfe56db58";
-      sha256 = "153i3kh44ri046va3qdrbvvsv7gy25fsd9pc2yhrg23lvj169zfp";
+      rev = "226203be173bf0b95ee2a5cb6575ae604b3f9f7a";
+      sha256 = "0hi64zsg2acrmzshmvrmgjqd7wjgghpggw0rmjx8kd7vwcmwvfcl";
     };
     meta.homepage = "https://github.com/tpope/vim-sensible/";
   };
@@ -10739,12 +10739,12 @@ final: prev:
 
   vim-sleuth = buildVimPluginFrom2Nix {
     pname = "vim-sleuth";
-    version = "2022-03-26";
+    version = "2022-04-14";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-sleuth";
-      rev = "edffd9ee2cfafa3aba291f105a1d4f9f0e2d5701";
-      sha256 = "1rkn4qawz3p0h1pz0g712k3iz72qvapqd8k1f05kbabxymw6yqd7";
+      rev = "e116c2cc2555b09aee9b18eba405b925c8b7eaf9";
+      sha256 = "02ljdb3p7fp0h3nf6rxv5kgsxqdvgkwrwgb01x4xn100spkv6y6i";
     };
     meta.homepage = "https://github.com/tpope/vim-sleuth/";
   };
@@ -10835,12 +10835,12 @@ final: prev:
 
   vim-snippets = buildVimPluginFrom2Nix {
     pname = "vim-snippets";
-    version = "2022-03-27";
+    version = "2022-04-20";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "57d23f6f44203374edcbb7d41903a491ec8cbed7";
-      sha256 = "0371pv4pl99icxhbqbqfx7ds1i1kwv1k9p28i5pxayngkyhd7l39";
+      rev = "0decc32aad4564452c2f8a5cbfe387195f1a8bba";
+      sha256 = "1ycmls9xpkfzkrws2aby88zmsv1489d659sllrgmbmh04g0pq8vy";
     };
     meta.homepage = "https://github.com/honza/vim-snippets/";
   };
@@ -10979,12 +10979,12 @@ final: prev:
 
   vim-surround = buildVimPluginFrom2Nix {
     pname = "vim-surround";
-    version = "2022-03-25";
+    version = "2022-04-10";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-surround";
-      rev = "9857a874632d1b983a7f4b1c85e3d15990c8b101";
-      sha256 = "0ihcqrgvrllnrll9vgg1ywmhsvf43dwdpqv89r8mi70wsnzbgk3v";
+      rev = "81fc0ec460dd8b25a76346e09aecdbca2677f1a7";
+      sha256 = "0k8fyyjak1l6f1hsb3pbyri1jsgxzbhcbih7p4vc8cdm346yms1i";
     };
     meta.homepage = "https://github.com/tpope/vim-surround/";
   };
@@ -11013,26 +11013,14 @@ final: prev:
     meta.homepage = "https://github.com/machakann/vim-swap/";
   };
 
-  vim-SyntaxRange = buildVimPluginFrom2Nix {
-    pname = "vim-SyntaxRange";
-    version = "2021-01-16";
-    src = fetchFromGitHub {
-      owner = "inkarkat";
-      repo = "vim-SyntaxRange";
-      rev = "3a7fd9ff50fabafe61df12522ed2f275c8e2f45e";
-      sha256 = "1b5xyacbn87z8wkacjpnjk82xmxzivlb111427kwb5kxxdh4w7gq";
-    };
-    meta.homepage = "https://github.com/inkarkat/vim-SyntaxRange/";
-  };
-
   vim-table-mode = buildVimPluginFrom2Nix {
     pname = "vim-table-mode";
-    version = "2022-03-01";
+    version = "2022-04-05";
     src = fetchFromGitHub {
       owner = "dhruvasagar";
       repo = "vim-table-mode";
-      rev = "698ff3074c45d4292ed6a2f629e6114fdaf4420b";
-      sha256 = "0a8lzjp0mj2ml82sql44qbq1dwxmrxjp5h3snzclw4y64919yf21";
+      rev = "816072c0f50ba753458ea466eb2349799a4467f9";
+      sha256 = "1ndj4f1rlyq7kpbmv7y79c2vnh0brz2m8nh13jw1y7sv7gbkxyxf";
     };
     meta.homepage = "https://github.com/dhruvasagar/vim-table-mode/";
   };
@@ -11088,12 +11076,12 @@ final: prev:
 
   vim-test = buildVimPluginFrom2Nix {
     pname = "vim-test";
-    version = "2022-03-26";
+    version = "2022-04-06";
     src = fetchFromGitHub {
       owner = "vim-test";
       repo = "vim-test";
-      rev = "56bbfa295fe62123d2ebe8ed57dd002afab46097";
-      sha256 = "0ggk1c5767hjjfg1nwdm880bj9cgj6bgvf25dgjhwx83xxhzpp6d";
+      rev = "2240d7a4b868cb594b7d83544e1b6db4df806e5e";
+      sha256 = "12qn395bnmxxsq64c60s46gdz4ad2hbhn3g2kbnw9d56dyb47vag";
     };
     meta.homepage = "https://github.com/vim-test/vim-test/";
   };
@@ -11268,12 +11256,12 @@ final: prev:
 
   vim-tpipeline = buildVimPluginFrom2Nix {
     pname = "vim-tpipeline";
-    version = "2022-03-21";
+    version = "2022-04-19";
     src = fetchFromGitHub {
       owner = "vimpostor";
       repo = "vim-tpipeline";
-      rev = "1da5d790a7b5c073453bcddf34da8145df04b32f";
-      sha256 = "1x2hlfy3r4qsgshhlz73qdjrjrnzj88z5h9vhnvml4sljf5y9r2d";
+      rev = "7a5d832ca3086aeddc607304a2dde481b66f1719";
+      sha256 = "0dnlq3iv7dq798m1llpn72b4kwvxrw7q7bgkswhaqhgcsb1xjxwz";
     };
     meta.homepage = "https://github.com/vimpostor/vim-tpipeline/";
   };
@@ -11328,12 +11316,12 @@ final: prev:
 
   vim-ultest = buildVimPluginFrom2Nix {
     pname = "vim-ultest";
-    version = "2022-03-19";
+    version = "2022-04-09";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "vim-ultest";
-      rev = "2a35653111b023660b519f6dbd95c97996ce8b02";
-      sha256 = "1b840fnfqh19p2gzhc1xxisn0gyw756miian4znk0zzj2wlja151";
+      rev = "a99eb0bdf7d901d538b5dd724e2ab3a958c1799c";
+      sha256 = "0mlb2qvxw7ds0b6jrxw5224mz1bzlzb4vly2wnygzrl6mhsk2xyw";
     };
     meta.homepage = "https://github.com/rcarriga/vim-ultest/";
   };
@@ -11352,12 +11340,12 @@ final: prev:
 
   vim-unimpaired = buildVimPluginFrom2Nix {
     pname = "vim-unimpaired";
-    version = "2022-02-02";
+    version = "2022-04-10";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-unimpaired";
-      rev = "f992923d336e93c7f50fe9b35a07d5a92660ecaf";
-      sha256 = "04l0v2jgkvhkfjj7j5r7x81gq2zwbjh5vh4p860p38razq6aixpl";
+      rev = "80ab990c7ff7251f43262aae4b60ff6eff2ef3a4";
+      sha256 = "0qmxzk0vcglyrvx2hpxm6qgr6mcc1xnf6srw77ga9g0aazjr2hxc";
     };
     meta.homepage = "https://github.com/tpope/vim-unimpaired/";
   };
@@ -11400,12 +11388,12 @@ final: prev:
 
   vim-visual-multi = buildVimPluginFrom2Nix {
     pname = "vim-visual-multi";
-    version = "2022-03-25";
+    version = "2022-04-08";
     src = fetchFromGitHub {
       owner = "mg979";
       repo = "vim-visual-multi";
-      rev = "4fcd3797e380f2e4c8ea8be31ec6469e6f86f971";
-      sha256 = "135jggj34pdczjby1p2vpr1b30whcabsfxjgvyrra45hlg45kzgn";
+      rev = "d5b820655e17c6ccd363885e5614652e4cffae95";
+      sha256 = "0mp8g825l0zcj0gh3v5wa29dq5hhx0f96ijsd5bxhh694vppx8q5";
     };
     meta.homepage = "https://github.com/mg979/vim-visual-multi/";
   };
@@ -11422,6 +11410,18 @@ final: prev:
     meta.homepage = "https://github.com/thinca/vim-visualstar/";
   };
 
+  vim-vp4 = buildVimPluginFrom2Nix {
+    pname = "vim-vp4";
+    version = "2021-01-06";
+    src = fetchFromGitHub {
+      owner = "ngemily";
+      repo = "vim-vp4";
+      rev = "511ec1cd651a25b30d75ec6df29e61b9ca75d1b9";
+      sha256 = "1vr8j4w6s26hjbil2kx57nnslrjczp4jvmc7s8lhl41z0r6nj4fb";
+    };
+    meta.homepage = "https://github.com/ngemily/vim-vp4/";
+  };
+
   vim-vsnip = buildVimPluginFrom2Nix {
     pname = "vim-vsnip";
     version = "2022-02-26";
@@ -11436,12 +11436,12 @@ final: prev:
 
   vim-vsnip-integ = buildVimPluginFrom2Nix {
     pname = "vim-vsnip-integ";
-    version = "2022-01-12";
+    version = "2022-04-18";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "vim-vsnip-integ";
-      rev = "5541e4ac18c732700c4310c86384bea19644d4a7";
-      sha256 = "0ilx1vmn76vnqf8v699jad0jshpg63v0m1f8ck1mh3zp53430d4q";
+      rev = "64c2ed66406c58163cf81fb5e13ac2f9fcdfb52b";
+      sha256 = "0r4kxw112rxc7sz5dzcginbv5ak1as4ky40db2r5wdg5nm08c4z8";
     };
     meta.homepage = "https://github.com/hrsh7th/vim-vsnip-integ/";
   };
@@ -11460,12 +11460,12 @@ final: prev:
 
   vim-wakatime = buildVimPluginFrom2Nix {
     pname = "vim-wakatime";
-    version = "2022-02-22";
+    version = "2022-04-13";
     src = fetchFromGitHub {
       owner = "wakatime";
       repo = "vim-wakatime";
-      rev = "f922f82954cb68fccfd20ad3eacc78fb2559a937";
-      sha256 = "1inb0vh1mfg6ihasd317ykw0dsnx8z16jvm6f6i8ldy3fw79y9wg";
+      rev = "9cf2f1910d5cd7f25657176fe60b1745a310f1b3";
+      sha256 = "0jxkfiq5553ad7zabxlgwzwwsgwznkn0rahfmr79r1dvvqm9m1a6";
     };
     meta.homepage = "https://github.com/wakatime/vim-wakatime/";
   };
@@ -11556,12 +11556,12 @@ final: prev:
 
   vim-xkbswitch = buildVimPluginFrom2Nix {
     pname = "vim-xkbswitch";
-    version = "2022-03-23";
+    version = "2022-04-11";
     src = fetchFromGitHub {
       owner = "lyokha";
       repo = "vim-xkbswitch";
-      rev = "d6c9b8e06c1e7b3f14abc772ad61d73e687eede6";
-      sha256 = "015jr832zwa7gcakbllifh3r45iyfywraswsm70vvbam165wwxph";
+      rev = "a0a7dd335189c5ba0c6afee875c6713d70e6e3fc";
+      sha256 = "09lpivh5a6n61ypw0n31ncy5bj4cpzvvn4s6666yjnpsmi2phsix";
     };
     meta.homepage = "https://github.com/lyokha/vim-xkbswitch/";
   };
@@ -11662,18 +11662,6 @@ final: prev:
     meta.homepage = "https://github.com/jreybert/vimagit/";
   };
 
-  VimCompletesMe = buildVimPluginFrom2Nix {
-    pname = "VimCompletesMe";
-    version = "2022-02-18";
-    src = fetchFromGitHub {
-      owner = "ackyshake";
-      repo = "VimCompletesMe";
-      rev = "9adf692d7ae6424038458a89d4a411f0a27d1388";
-      sha256 = "1sndgb3291dyifaa8adri2mb8cgbinbar3nw1fnf67k9ahwycaz0";
-    };
-    meta.homepage = "https://github.com/ackyshake/VimCompletesMe/";
-  };
-
   vimelette = buildVimPluginFrom2Nix {
     pname = "vimelette";
     version = "2019-05-02";
@@ -11698,18 +11686,6 @@ final: prev:
     meta.homepage = "https://github.com/Shougo/vimfiler.vim/";
   };
 
-  VimOrganizer = buildVimPluginFrom2Nix {
-    pname = "VimOrganizer";
-    version = "2020-12-15";
-    src = fetchFromGitHub {
-      owner = "hsitz";
-      repo = "VimOrganizer";
-      rev = "09636aed78441a9de2767fcef6d7c567f322cc40";
-      sha256 = "0phpcxmyz562yyp88rbx9pqg46w8r1lyapb700nvxwvqkcd82pfw";
-    };
-    meta.homepage = "https://github.com/hsitz/VimOrganizer/";
-  };
-
   vimoutliner = buildVimPluginFrom2Nix {
     pname = "vimoutliner";
     version = "2021-04-24";
@@ -11772,12 +11748,12 @@ final: prev:
 
   vimspector = buildVimPluginFrom2Nix {
     pname = "vimspector";
-    version = "2022-03-23";
+    version = "2022-04-13";
     src = fetchFromGitHub {
       owner = "puremourning";
       repo = "vimspector";
-      rev = "99ce7a74699f12e05bf6059125d767b05ceb212b";
-      sha256 = "0hj26vyq8cbw5zsq94i4hay27fs9z5xxyniflz975ddii8189qa9";
+      rev = "ebeebc121423a5ab9a31c996f9881880b658c644";
+      sha256 = "0npcra2k49rz9ij4kc6dyb8dpmfi6kivpp89ggmpnd0989vn9i56";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/puremourning/vimspector/";
@@ -11785,12 +11761,12 @@ final: prev:
 
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2022-03-24";
+    version = "2022-04-10";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "4eccec4e9fc46a52ba832ac2f8ab749ea33d6790";
-      sha256 = "07mydwxqhk9l0ciqpczd51x4s58asmqa3f0bznw7cdvp9qa6a6sn";
+      rev = "7bfcfb7b9a734b07e04209350bbe56d7123efb48";
+      sha256 = "1w09kmrm6rpffzh3xz9zsqm7h9f56a6p1wzclz96wvy8mr6hd6bn";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
@@ -11845,28 +11821,16 @@ final: prev:
 
   vista-vim = buildVimPluginFrom2Nix {
     pname = "vista.vim";
-    version = "2021-11-15";
+    version = "2022-04-12";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vista.vim";
-      rev = "a0469c645dcbe4033b857da27d35491f39e2f776";
-      sha256 = "1i0j11lbqdych2914chb9rlmr902q52v400y3ifzi38g5md9zv3w";
+      rev = "f9c8c8ad4135346a945e1ebfb00b723976d92dfc";
+      sha256 = "0p7axng18xjkjz0m00lwhf59wa7gvn158l3c3g4sx7g6f6zh57n9";
     };
     meta.homepage = "https://github.com/liuchengxu/vista.vim/";
   };
 
-  Vundle-vim = buildVimPluginFrom2Nix {
-    pname = "Vundle.vim";
-    version = "2019-08-17";
-    src = fetchFromGitHub {
-      owner = "VundleVim";
-      repo = "Vundle.vim";
-      rev = "b255382d6242d7ea3877bf059d2934125e0c4d95";
-      sha256 = "0fkmklcq3fgvd6x6irz9bgyvcdaxafykk3k89gsi9p6b0ikw3rw6";
-    };
-    meta.homepage = "https://github.com/VundleVim/Vundle.vim/";
-  };
-
   wal-vim = buildVimPluginFrom2Nix {
     pname = "wal.vim";
     version = "2020-11-08";
@@ -11905,12 +11869,12 @@ final: prev:
 
   wilder-nvim = buildVimPluginFrom2Nix {
     pname = "wilder.nvim";
-    version = "2022-03-13";
+    version = "2022-04-17";
     src = fetchFromGitHub {
       owner = "gelguy";
       repo = "wilder.nvim";
-      rev = "b59648ad8588bcba377f4eecdea317796ebd1f9d";
-      sha256 = "0aic96isjssgmlqkr30m9j3895v27f3hgkgsqbl3zwkvjqa218d6";
+      rev = "a9ea0c69b37850752d5f8431b7be6bf8f1a0254c";
+      sha256 = "0vd01sjj4q26a653wv9icfyd7g34rnl4whbnl3ic6pvb9cvj72wk";
     };
     meta.homepage = "https://github.com/gelguy/wilder.nvim/";
   };
@@ -12011,18 +11975,6 @@ final: prev:
     meta.homepage = "https://github.com/guns/xterm-color-table.vim/";
   };
 
-  YankRing-vim = buildVimPluginFrom2Nix {
-    pname = "YankRing.vim";
-    version = "2015-07-29";
-    src = fetchFromGitHub {
-      owner = "vim-scripts";
-      repo = "YankRing.vim";
-      rev = "28854abef8fa4ebd3cb219aefcf22566997d8f65";
-      sha256 = "0zdp8pdsqgrh6lfw8ipjhrig6psvmdxkim9ik801y3r373sk2hxw";
-    };
-    meta.homepage = "https://github.com/vim-scripts/YankRing.vim/";
-  };
-
   yats-vim = buildVimPluginFrom2Nix {
     pname = "yats.vim";
     version = "2022-01-05";
@@ -12036,31 +11988,6 @@ final: prev:
     meta.homepage = "https://github.com/HerringtonDarkholme/yats.vim/";
   };
 
-  YouCompleteMe = buildVimPluginFrom2Nix {
-    pname = "YouCompleteMe";
-    version = "2022-03-23";
-    src = fetchFromGitHub {
-      owner = "ycm-core";
-      repo = "YouCompleteMe";
-      rev = "89bba25c96866662ca38c2428f73eb64b0351ba3";
-      sha256 = "0yrhvd9c0g6ay02b77sr657hn7ambcifwjfqsjywmnirr4zja45p";
-      fetchSubmodules = true;
-    };
-    meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
-  };
-
-  YUNOcommit-vim = buildVimPluginFrom2Nix {
-    pname = "YUNOcommit.vim";
-    version = "2014-11-26";
-    src = fetchFromGitHub {
-      owner = "esneider";
-      repo = "YUNOcommit.vim";
-      rev = "981082055a73ef076d7e27477874d2303153a448";
-      sha256 = "0mjc7fn405vcx1n7vadl98p5wgm6jxrlbdbkqgjq8f1m1ir81zab";
-    };
-    meta.homepage = "https://github.com/esneider/YUNOcommit.vim/";
-  };
-
   zeavim-vim = buildVimPluginFrom2Nix {
     pname = "zeavim.vim";
     version = "2019-06-07";
@@ -12145,4 +12072,112 @@ final: prev:
     meta.homepage = "https://github.com/nanotee/zoxide.vim/";
   };
 
+  catppuccin-nvim = buildVimPluginFrom2Nix {
+    pname = "catppuccin-nvim";
+    version = "2022-04-18";
+    src = fetchFromGitHub {
+      owner = "catppuccin";
+      repo = "nvim";
+      rev = "8a67df6da476cba68ecf26a519a5279686edbd2e";
+      sha256 = "1w96rvpbm7lk9lcc5i13d6dyb5b10vkjh1902xmklqvpzy1wya19";
+    };
+    meta.homepage = "https://github.com/catppuccin/nvim/";
+  };
+
+  chad = buildVimPluginFrom2Nix {
+    pname = "chad";
+    version = "2022-04-20";
+    src = fetchFromGitHub {
+      owner = "ms-jpq";
+      repo = "chadtree";
+      rev = "d9a84322624d14c1e249e9a8a4573c9d205a9bc9";
+      sha256 = "16lha28fmi463snf71w0nz6ll0yiiiz7xrh2v7irkgx214q1gh6z";
+    };
+    meta.homepage = "https://github.com/ms-jpq/chadtree/";
+  };
+
+  dracula-vim = buildVimPluginFrom2Nix {
+    pname = "dracula-vim";
+    version = "2022-03-24";
+    src = fetchFromGitHub {
+      owner = "dracula";
+      repo = "vim";
+      rev = "d7723a842a6cfa2f62cf85530ab66eb418521dc2";
+      sha256 = "1qzil8rwpdzf64gq63ds0cf509ldam77l3fz02g1mia5dry75r02";
+    };
+    meta.homepage = "https://github.com/dracula/vim/";
+  };
+
+  embark-vim = buildVimPluginFrom2Nix {
+    pname = "embark-vim";
+    version = "2022-04-08";
+    src = fetchFromGitHub {
+      owner = "embark-theme";
+      repo = "vim";
+      rev = "d231d6f6ddb9c405ccf9ec2331deaf1d0b2c8d2a";
+      sha256 = "0pbzjmywkxsfr3dw1gvaisnq87ryzk9565s4gj77yr8qrbjh1k1j";
+    };
+    meta.homepage = "https://github.com/embark-theme/vim/";
+  };
+
+  gruvbox-community = buildVimPluginFrom2Nix {
+    pname = "gruvbox-community";
+    version = "2022-03-06";
+    src = fetchFromGitHub {
+      owner = "gruvbox-community";
+      repo = "gruvbox";
+      rev = "b6f47ae7031f6746a1f1918c17574aa12c474ef0";
+      sha256 = "0m8rrm5v542a2c30sg7hlgm7r6gs4ah1n6nr5dc101l2064kg97g";
+    };
+    meta.homepage = "https://github.com/gruvbox-community/gruvbox/";
+  };
+
+  mattn-calendar-vim = buildVimPluginFrom2Nix {
+    pname = "mattn-calendar-vim";
+    version = "2022-02-10";
+    src = fetchFromGitHub {
+      owner = "mattn";
+      repo = "calendar-vim";
+      rev = "2083a41e2d310f9bbbbf644517f30e901f1fb04d";
+      sha256 = "13wakcprkh93i7afykkpavxqvxssjh573pjjljsgip3y3778ms5q";
+    };
+    meta.homepage = "https://github.com/mattn/calendar-vim/";
+  };
+
+  pure-lua = buildVimPluginFrom2Nix {
+    pname = "pure-lua";
+    version = "2021-05-16";
+    src = fetchFromGitHub {
+      owner = "shaunsingh";
+      repo = "moonlight.nvim";
+      rev = "e24e4218ec680b6396532808abf57ca0ada82e66";
+      sha256 = "0m9w3fpypsqxydjd93arbjqb5576nl40iy27i4ijlrqhgdhl49y3";
+    };
+    meta.homepage = "https://github.com/shaunsingh/moonlight.nvim/";
+  };
+
+  rose-pine = buildVimPluginFrom2Nix {
+    pname = "rose-pine";
+    version = "2022-04-19";
+    src = fetchFromGitHub {
+      owner = "rose-pine";
+      repo = "neovim";
+      rev = "758568b92e0a17c3618f71d43cce96a3a5436985";
+      sha256 = "0zxyyjp1527681rrw25f8vzx1d6djqac04zcay02hxi2rcnjpan5";
+    };
+    meta.homepage = "https://github.com/rose-pine/neovim/";
+  };
+
+  vim-docbk-snippets = buildVimPluginFrom2Nix {
+    pname = "vim-docbk-snippets";
+    version = "2021-07-30";
+    src = fetchFromGitHub {
+      owner = "jhradilek";
+      repo = "vim-snippets";
+      rev = "81a8dcb66886a0717e9ca73c8857ee90c3989063";
+      sha256 = "0d6532qx66aiawpq2fdji0mnmvnlg5dnbvds5s4pgzafydikpr70";
+    };
+    meta.homepage = "https://github.com/jhradilek/vim-snippets/";
+  };
+
 }
diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix
index 8b55c1706939f..f59317d1cf5de 100644
--- a/pkgs/applications/editors/vim/plugins/overrides.nix
+++ b/pkgs/applications/editors/vim/plugins/overrides.nix
@@ -1116,8 +1116,10 @@ self: super: {
       "coc-emmet"
       "coc-eslint"
       "coc-explorer"
+      "coc-flutter"
       "coc-git"
       "coc-go"
+      "coc-haxe"
       "coc-highlight"
       "coc-html"
       "coc-imselect"
diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names
index f138c6d42d9c1..1a307c8c7c7f9 100644
--- a/pkgs/applications/editors/vim/plugins/vim-plugin-names
+++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names
@@ -1,1010 +1,1014 @@
-907th/vim-auto-save
-aca/completion-tabnine
-AckslD/nvim-neoclip.lua
-AckslD/nvim-whichkey-setup.lua
-ackyshake/Spacegray.vim
-ackyshake/VimCompletesMe
-ahmedkhalf/lsp-rooter.nvim
-ahmedkhalf/project.nvim
-airblade/vim-gitgutter
-airblade/vim-rooter
-ajmwagar/vim-deus
-akinsho/bufferline.nvim
-akinsho/toggleterm.nvim
-aklt/plantuml-syntax
-allendang/nvim-expand-expr
-AlphaTechnolog/pywal.nvim
-altercation/vim-colors-solarized
-alvan/vim-closetag
-alvarosevilla95/luatab.nvim
-alx741/vim-hindent
-alx741/vim-stylishask
-AmeerTaweel/todo.nvim
-amiorin/ctrlp-z
-andersevenrud/cmp-tmux
-andersevenrud/nordic.nvim
-andrep/vimacs
-andreshazard/vim-logreview
-AndrewRadev/sideways.vim
-AndrewRadev/splitjoin.vim
-AndrewRadev/switch.vim
-AndrewRadev/tagalong.vim
-andsild/peskcolor.vim
-andviro/flake8-vim
-andweeb/presence.nvim
-andymass/vim-matchup
-andys8/vim-elm-syntax
-antoinemadec/coc-fzf
-antoinemadec/FixCursorHold.nvim
-ap/vim-css-color
-arcticicestudio/nord-vim@master
-arkav/lualine-lsp-progress
-arthurxavierx/vim-unicoder
-artur-shaik/vim-javacomplete2
-autozimu/LanguageClient-neovim
-axelf4/vim-strip-trailing-whitespace
-axieax/urlview.nvim
-ayu-theme/ayu-vim
-b0o/SchemaStore.nvim
-b3nj5m1n/kommentary
-bakpakin/fennel.vim
-bazelbuild/vim-bazel
-bbchung/clighter8
-BeneCollyridam/futhark-vim
-benizi/vim-automkdir
-bhurlow/vim-parinfer
-bitc/vim-hdevtools
-bkad/camelcasemotion
-bling/vim-bufferline
-blueballs-theme/blueballs-neovim
-blueyed/vim-diminactive
-bogado/file-line
-bohlender/vim-smt2
-brennanfee/vim-gui-position
-bronson/vim-trailing-whitespace
-brooth/far.vim
-buoto/gotests-vim
-camspiers/lens.vim
-camspiers/snap
-carlitux/deoplete-ternjs
-catppuccin/nvim as catppuccin-nvim
-ccarpita/rtorrent-syntax-file
-cespare/vim-toml
-chaoren/vim-wordmotion
-chentau/marks.nvim
-chikatoike/concealedyank.vim
-chikatoike/sourcemap.vim
-chkno/vim-haskell-module-name
-chr4/nginx.vim
-chr4/sslsecure.vim
-chrisbra/CheckAttach
-chrisbra/csv.vim
-chrisbra/NrrwRgn
-chrisbra/Recover.vim
-chrisbra/SudoEdit.vim
-chrisbra/unicode.vim
-chrisgeo/sparkup
-chriskempson/base16-vim
-ChristianChiarulli/nvcode-color-schemes.vim
-christoomey/vim-sort-motion
-christoomey/vim-tmux-navigator
-ciaranm/inkpot
-ckarnell/antonys-macro-repeater
-clojure-vim/vim-jack-in
-cloudhead/neovim-fuzzy
-CoatiSoftware/vim-sourcetrail
-coc-extensions/coc-svelte
-cocopon/iceberg.vim
-codota/tabnine-vim
-cohama/lexima.vim
-ConradIrwin/vim-bracketed-paste
-crusoexia/vim-monokai
-ctjhoa/spacevim
-ctrlpvim/ctrlp.vim
-dag/vim-fish
-dag/vim2hs
-dannyob/quickfixstatus
-darfink/starsearch.vim
-dart-lang/dart-vim-plugin
-david-a-wheeler/vim-metamath
-davidhalter/jedi-vim
-dcharbon/vim-flatbuffers
-dense-analysis/ale
-deoplete-plugins/deoplete-clang
-deoplete-plugins/deoplete-dictionary
-deoplete-plugins/deoplete-go
-deoplete-plugins/deoplete-jedi
-deoplete-plugins/deoplete-lsp
-deoplete-plugins/deoplete-zsh
-derekelkins/agda-vim
-derekwyatt/vim-scala
-dhruvasagar/vim-prosession
-dhruvasagar/vim-table-mode
-digitaltoad/vim-pug
-direnv/direnv.vim
-dleonard0/pony-vim-syntax
-dmix/elvish.vim
-doki-theme/doki-theme-vim
-dominikduda/vim_current_word
-dpelle/vim-LanguageTool
-dracula/vim as dracula-vim
-drewtempelmeyer/palenight.vim
-drmingdrmer/xptemplate
-dstein64/nvim-scrollview
-dstein64/vim-startuptime
-dylanaraps/wal.vim
-eagletmt/ghcmod-vim
-eagletmt/neco-ghc
-easymotion/vim-easymotion
-echasnovski/mini.nvim
-eddiebergman/nvim-treesitter-pyfold
-eddyekofo94/gruvbox-flat.nvim
-EdenEast/nightfox.nvim
-editorconfig/editorconfig-vim
-edkolev/tmuxline.vim
-edluffy/hologram.nvim
-edluffy/specs.nvim
-edwinb/idris2-vim
-ehamberg/vim-cute-python
-eigenfoo/stan-vim
-eikenb/acp
-elixir-editors/vim-elixir
-ellisonleao/glow.nvim
-ellisonleao/gruvbox.nvim
-elmcast/elm-vim
-elzr/vim-json
-embark-theme/vim as embark-vim
-embear/vim-localvimrc
-enomsg/vim-haskellConcealPlus
-enricobacis/vim-airline-clock
-ervandew/supertab
-esneider/YUNOcommit.vim
-euclidianAce/BetterLua.vim
-euclio/vim-markdown-composer
-evanleck/vim-svelte
-f-person/git-blame.nvim
-f3fora/cmp-spell
-famiu/bufdelete.nvim
-fannheyward/telescope-coc.nvim
-farmergreg/vim-lastplace
-fatih/vim-go
-fcpg/vim-osc52
-FelikZ/ctrlp-py-matcher
-feline-nvim/feline.nvim
-fenetikm/falcon
-fhill2/floating.nvim
-fhill2/telescope-ultisnips.nvim
-fiatjaf/neuron.vim
-filipdutescu/renamer.nvim
-fisadev/vim-isort
-flazz/vim-colorschemes
-floobits/floobits-neovim
-folke/lsp-colors.nvim
-folke/lua-dev.nvim
-folke/todo-comments.nvim
-folke/tokyonight.nvim
-folke/trouble.nvim
-folke/twilight.nvim
-folke/which-key.nvim
-folke/zen-mode.nvim
-FooSoft/vim-argwrap
-freitass/todo.txt-vim
-frigoeu/psc-ide-vim
-fruit-in/brainfuck-vim
-fruit-in/vim-nong-theme
-fsharp/vim-fsharp
-garbas/vim-snipmate
-gbrlsnchs/telescope-lsp-handlers.nvim
-gcmt/taboo.vim
-gcmt/wildfire.vim
-gelguy/wilder.nvim
-gennaro-tedesco/nvim-jqx
-gennaro-tedesco/nvim-peekup
-gentoo/gentoo-syntax
-GEverding/vim-hocon
-gfanto/fzf-lsp.nvim
-ggandor/lightspeed.nvim
-gibiansky/vim-textobj-haskell
-gioele/vim-autoswap
-github/copilot.vim
-gleam-lang/gleam.vim
-glepnir/dashboard-nvim
-glepnir/oceanic-material
-glepnir/zephyr-nvim
-glts/vim-textobj-comment
-godlygeek/csapprox
-godlygeek/tabular
-GoldsteinE/compe-latex-symbols
-google/vim-codefmt
-google/vim-jsonnet
-google/vim-maktaba
-gorkunov/smartpairs.vim
-gotcha/vimelette
-gpanders/editorconfig.nvim
-gregsexton/gitv
-gruvbox-community/gruvbox as gruvbox-community
-gu-fan/riv.vim
-guns/vim-clojure-highlight
-guns/vim-clojure-static
-guns/vim-sexp
-guns/xterm-color-table.vim
-GustavoKatel/telescope-asynctasks.nvim
-gyim/vim-boxdraw
-haringsrob/nvim_context_vt
-hashivim/vim-packer
-hashivim/vim-terraform
-hashivim/vim-vagrant
-hauleth/sad.vim
-haya14busa/incsearch-easymotion.vim
-haya14busa/incsearch.vim
-haya14busa/is.vim
-haya14busa/vim-asterisk
-haya14busa/vim-poweryank
-heavenshell/vim-jsdoc
-hecal3/vim-leader-guide
-henrik/vim-indexed-search
-HerringtonDarkholme/yats.vim
-honza/vim-snippets
-hotwatermorning/auto-git-diff
-hrsh7th/cmp-buffer
-hrsh7th/cmp-calc
-hrsh7th/cmp-cmdline
-hrsh7th/cmp-emoji
-hrsh7th/cmp-nvim-lsp
-hrsh7th/cmp-nvim-lsp-document-symbol
-hrsh7th/cmp-nvim-lua
-hrsh7th/cmp-omni
-hrsh7th/cmp-path
-hrsh7th/cmp-vsnip
-hrsh7th/nvim-cmp
-hrsh7th/nvim-compe
-hrsh7th/vim-vsnip
-hrsh7th/vim-vsnip-integ
-hsanson/vim-android
-hsitz/VimOrganizer
-https://git.sr.ht/~whynothugo/lsp_lines.nvim
-hura/vim-asymptote
-iamcco/coc-spell-checker
-iamcco/coc-tailwindcss
-iamcco/markdown-preview.nvim
-ianks/vim-tsx
-idanarye/vim-merginal
-idris-hackers/idris-vim
-Inazuma110/deoplete-greek
-inkarkat/vim-ReplaceWithRegister
-inkarkat/vim-ReplaceWithSameIndentRegister
-inkarkat/vim-SyntaxRange
-int3/vim-extradite
-Iron-E/nvim-highlite
-ishan9299/nvim-solarized-lua
-itchyny/calendar.vim
-itchyny/lightline.vim
-itchyny/thumbnail.vim
-itchyny/vim-cursorword
-itchyny/vim-gitbranch
-itspriddle/vim-shellcheck
-ivalkeen/vim-simpledb
-ivanov/vim-ipython
-j-hui/fidget.nvim
-jackguo380/vim-lsp-cxx-highlight
-jacoborus/tender.vim
-jakwings/vim-pony
-jamessan/vim-gnupg
-jaredgorski/SpaceCamp
-jasonccox/vim-wayland-clipboard
-jaxbot/semantic-highlight.vim
-JazzCore/ctrlp-cmatcher
-jbyuki/venn.nvim
-jc-doyle/cmp-pandoc-references
-jceb/vim-hier
-jceb/vim-orgmode
-jeetsukumaran/vim-buffergator
-jeetsukumaran/vim-indentwise
-jeffkreeftmeijer/neovim-sensible
-jeffkreeftmeijer/vim-numbertoggle
-jelera/vim-javascript-syntax
-jgdavey/tslime.vim
-jghauser/mkdir.nvim@main
-jhradilek/vim-docbk
-jhradilek/vim-snippets as vim-docbk-snippets
-jiangmiao/auto-pairs
-jistr/vim-nerdtree-tabs
-jjo/vim-cue
-jlanzarotta/bufexplorer
-jlesquembre/nterm.nvim
-jnurmine/zenburn
-jonbri/vim-colorstepper
-jonsmithers/vim-html-template-literals
-joonty/vim-xdebug
-joosepalviste/nvim-ts-context-commentstring
-jordwalke/vim-reasonml
-josa42/coc-lua
-josa42/nvim-lightline-lsp
-josa42/vim-lightline-coc
-jose-elias-alvarez/minsnip.nvim
-jose-elias-alvarez/null-ls.nvim
-jose-elias-alvarez/nvim-lsp-ts-utils
-joshdick/onedark.vim
-jpalardy/vim-slime
-jparise/vim-graphql
-jparise/vim-phabricator
-jreybert/vimagit
-jsfaint/gen_tags.vim
-JuliaEditorSupport/deoplete-julia
-JuliaEditorSupport/julia-vim
-Julian/lean.nvim
-Julian/vim-textobj-variable-segment
-juliosueiras/vim-terraform-completion
-junegunn/fzf.vim
-junegunn/goyo.vim
-junegunn/gv.vim
-junegunn/limelight.vim
-junegunn/seoul256.vim
-junegunn/vader.vim
-junegunn/vim-after-object
-junegunn/vim-easy-align
-junegunn/vim-emoji
-junegunn/vim-github-dashboard
-junegunn/vim-peekaboo
-junegunn/vim-plug
-junegunn/vim-slash
-justincampbell/vim-eighties
-justinj/vim-pico8-syntax
-justinmk/vim-dirvish
-justinmk/vim-sneak
-jvgrootveld/telescope-zoxide
-jvirtanen/vim-hcl
-jvoorhis/coq.vim
-KabbAmine/vCoolor.vim
-KabbAmine/zeavim.vim
-kalbasit/vim-colemak
-kana/vim-niceblock
-kana/vim-operator-replace
-kana/vim-operator-user
-kana/vim-tabpagecd
-kana/vim-textobj-entire
-kana/vim-textobj-function
-kana/vim-textobj-user
-karb94/neoscroll.nvim
-kassio/neoterm
-kbenzie/vim-spirv
-kchmck/vim-coffee-script
-kdheepak/cmp-latex-symbols
-kdheepak/lazygit.nvim
-kdheepak/tabline.nvim
-KeitaNakamura/neodark.vim
-KeitaNakamura/tex-conceal.vim
-keith/investigate.vim
-keith/rspec.vim
-keith/swift.vim
-kevinhwang91/nvim-bqf
-kevinhwang91/nvim-hlslens
-kevinhwang91/rnvimr
-kien/rainbow_parentheses.vim
-knubie/vim-kitty-navigator
-konfekt/fastfold
-Konfekt/vim-alias
-Konfekt/vim-CtrlXA
-konfekt/vim-DetectSpellLang
-kosayoda/nvim-lightbulb
-kovisoft/slimv
-kristijanhusak/defx-git
-kristijanhusak/defx-icons
-kristijanhusak/deoplete-phpactor
-kristijanhusak/vim-carbon-now-sh
-kristijanhusak/vim-dadbod-completion
-kristijanhusak/vim-dadbod-ui
-kristijanhusak/vim-dirvish-git
-kristijanhusak/vim-hybrid-material
-kshenoy/vim-signature
-kyazdani42/nvim-tree.lua
-kyazdani42/nvim-web-devicons
-l3mon4d3/luasnip
-lambdalisue/fern.vim
-lambdalisue/gina.vim
-lambdalisue/suda.vim
-lambdalisue/vim-gista
-lambdalisue/vim-manpager
-lambdalisue/vim-pager
-latex-box-team/latex-box
-ldelossa/litee-calltree.nvim
-ldelossa/litee-filetree.nvim
-ldelossa/litee-symboltree.nvim
-ldelossa/litee.nvim
-leafgarland/typescript-vim
-leanprover/lean.vim
-ledger/vim-ledger
-lepture/vim-jinja
-lervag/vimtex
-lewis6991/gitsigns.nvim
-lewis6991/impatient.nvim
-lf-lang/lingua-franca.vim
-lfe-support/vim-lfe
-lfilho/cosco.vim
-lifepillar/pgsql.vim
-lifepillar/vim-gruvbox8
-lifepillar/vim-mucomplete
-lighttiger2505/deoplete-vim-lsp
-lilydjwg/colorizer
-lilydjwg/fcitx.vim@fcitx5
-liuchengxu/graphviz.vim
-liuchengxu/space-vim
-liuchengxu/vim-clap
-liuchengxu/vim-which-key
-liuchengxu/vista.vim
-LnL7/vim-nix
-lotabout/skim.vim
-luan/vim-concourse
-LucHermitte/lh-brackets
-LucHermitte/lh-vim-lib
-ludovicchabant/vim-gutentags
-ludovicchabant/vim-lawrencium
-lukas-reineke/cmp-under-comparator
-lukas-reineke/indent-blankline.nvim
-lukaszkorecki/workflowish
-lumiliet/vim-twig
-luochen1990/rainbow
-luukvbaal/stabilize.nvim
-lyokha/vim-xkbswitch
-m-pilia/vim-ccls
-machakann/vim-highlightedyank
-machakann/vim-sandwich
-machakann/vim-swap
-maksimr/vim-jsbeautify
-MarcWeber/vim-addon-actions
-MarcWeber/vim-addon-async
-MarcWeber/vim-addon-background-cmd
-MarcWeber/vim-addon-commenting
-MarcWeber/vim-addon-completion
-MarcWeber/vim-addon-errorformats
-MarcWeber/vim-addon-goto-thing-at-cursor
-MarcWeber/vim-addon-local-vimrc
-MarcWeber/vim-addon-manager
-MarcWeber/vim-addon-mru
-MarcWeber/vim-addon-mw-utils
-MarcWeber/vim-addon-nix
-MarcWeber/vim-addon-other
-MarcWeber/vim-addon-php-manual
-MarcWeber/vim-addon-signs
-MarcWeber/vim-addon-sql
-MarcWeber/vim-addon-syntax-checker
-MarcWeber/vim-addon-toggle-buffer
-MarcWeber/vim-addon-xdebug
-marko-cerovac/material.nvim
-markonm/traces.vim
-martinda/Jenkinsfile-vim-syntax
-MattesGroeger/vim-bookmarks
-mattn/calendar-vim as mattn-calendar-vim
-mattn/emmet-vim
-mattn/vim-gist
-mattn/webapi-vim
-matze/vim-move
-max397574/better-escape.nvim
-maximbaz/lightline-ale
-maxjacobson/vim-fzf-coauthorship
-MaxMEllon/vim-jsx-pretty
-mbbill/undotree
-mboughaba/i3config.vim
-mcchrish/nnn.vim
-megaannum/forms
-megaannum/self
-mengelbrecht/lightline-bufferline
-metakirby5/codi.vim
-metalelf0/jellybeans-nvim
-mfukar/robotframework-vim
-mfussenegger/nvim-dap
-mfussenegger/nvim-jdtls
-mfussenegger/nvim-lint
-mg979/vim-visual-multi
-mg979/vim-xtabline
-mhartington/formatter.nvim
-mhartington/oceanic-next
-mhinz/vim-crates
-mhinz/vim-grepper
-mhinz/vim-janah
-mhinz/vim-sayonara@7e774f58c5865d9c10d40396850b35ab95af17c5
-mhinz/vim-signify
-mhinz/vim-startify
-michaeljsmith/vim-indent-object
-mileszs/ack.vim
-milkypostman/vim-togglelist
-mindriot101/vim-yapf
-mk12/vim-lean
-mkasa/lushtags
-mlr-msft/vim-loves-dafny
-moll/vim-bbye
-mopp/sky-color-clock.vim
-morhetz/gruvbox
-motus/pig.vim
-mpickering/hlint-refactor-vim
-ms-jpq/chadtree@chad
-ms-jpq/coq_nvim
-mtikekar/vim-bsv
-MunifTanjim/nui.nvim@main
-mustache/vim-mustache-handlebars
-mzlogin/vim-markdown-toc
-mzlogin/vim-smali
-nacro90/numb.nvim
-nanotech/jellybeans.vim
-nanotee/zoxide.vim
-natebosch/vim-lsc
-nathanaelkane/vim-indent-guides
-nathangrigg/vim-beancount
-nathanmsmith/nvim-ale-diagnostic
-navarasu/onedark.nvim
-navicore/vissort.vim
-nbouscal/vim-stylish-haskell
-ncm2/float-preview.nvim
-ncm2/ncm2
-ncm2/ncm2-bufword
-ncm2/ncm2-cssomni
-ncm2/ncm2-github
-ncm2/ncm2-html-subscope
-ncm2/ncm2-jedi
-ncm2/ncm2-markdown-subscope
-ncm2/ncm2-neoinclude
-ncm2/ncm2-neosnippet
-ncm2/ncm2-path
-ncm2/ncm2-syntax
-ncm2/ncm2-tagprefix
-ncm2/ncm2-tmux
-ncm2/ncm2-ultisnips
-ncm2/ncm2-vim
-ndmitchell/ghcid
-neoclide/coc-denite
-neoclide/coc-neco
-neoclide/coc.nvim@release
-neoclide/denite-extra
-neoclide/denite-git
-neoclide/jsonc.vim
-neoclide/vim-easygit
-neomake/neomake
-neovim/nvim-lspconfig
-neovim/nvimdev.nvim
-neovimhaskell/haskell-vim
-neovimhaskell/nvim-hs.vim
-neutaaaaan/iosvkem
-nfnty/vim-nftables
-nicoe/deoplete-khard
-nishigori/increment-activator
-nixprime/cpsm
-NLKNguyen/papercolor-theme
-noahfrederick/vim-noctu
-noc7c9/vim-iced-coffee-script
-norcalli/nvim-colorizer.lua
-norcalli/nvim-terminal.lua
-norcalli/snippets.nvim
-NTBBloodbath/galaxyline.nvim
-NTBBloodbath/rest.nvim
-ntpeters/vim-better-whitespace
-numirias/semshi
-numtostr/comment.nvim
-numToStr/FTerm.nvim
-numToStr/Navigator.nvim
-nvie/vim-flake8
-nvim-lua/completion-nvim
-nvim-lua/diagnostic-nvim
-nvim-lua/lsp-status.nvim
-nvim-lua/lsp_extensions.nvim
-nvim-lua/plenary.nvim
-nvim-lua/popup.nvim
-nvim-lualine/lualine.nvim
-nvim-neorg/neorg
-nvim-orgmode/orgmode
-nvim-pack/nvim-spectre
-nvim-telescope/telescope-cheat.nvim
-nvim-telescope/telescope-dap.nvim
-nvim-telescope/telescope-file-browser.nvim
-nvim-telescope/telescope-frecency.nvim
-nvim-telescope/telescope-fzf-native.nvim
-nvim-telescope/telescope-fzf-writer.nvim
-nvim-telescope/telescope-fzy-native.nvim
-nvim-telescope/telescope-github.nvim
-nvim-telescope/telescope-project.nvim
-nvim-telescope/telescope-symbols.nvim
-nvim-telescope/telescope-ui-select.nvim
-nvim-telescope/telescope-z.nvim
-nvim-telescope/telescope.nvim
-nvim-treesitter/completion-treesitter
-nvim-treesitter/nvim-treesitter
-nvim-treesitter/nvim-treesitter-refactor
-nvim-treesitter/nvim-treesitter-textobjects
-nvim-treesitter/playground
-oberblastmeister/neuron.nvim
-oberblastmeister/termwrapper.nvim
-ocaml/vim-ocaml
-octol/vim-cpp-enhanced-highlight
-ojroques/nvim-bufdel
-ojroques/vim-oscyank
-Olical/aniseed
-Olical/conjure
-olimorris/onedarkpro.nvim
-onsails/diaglist.nvim
-onsails/lspkind-nvim
-OrangeT/vim-csharp
-osyo-manga/shabadou.vim
-osyo-manga/vim-anzu
-osyo-manga/vim-over
-osyo-manga/vim-textobj-multiblock
-osyo-manga/vim-watchdogs
-overcache/NeoSolarized
-p00f/nvim-ts-rainbow
-pangloss/vim-javascript
-pantharshit00/vim-prisma
-parsonsmatt/intero-neovim
-PaterJason/cmp-conjure
-pearofducks/ansible-vim
-peitalin/vim-jsx-typescript
-peterbjorgensen/sved
-peterhoeg/vim-qml
-PeterRincker/vim-argumentative
-petRUShka/vim-opencl
-phaazon/hop.nvim
-phanviet/vim-monokai-pro
-Pocco81/TrueZen.nvim
-ponko2/deoplete-fish
-posva/vim-vue
-powerman/vim-plugin-AnsiEsc
-PProvost/vim-ps1
-prabirshrestha/async.vim
-prabirshrestha/asyncomplete-lsp.vim
-prabirshrestha/asyncomplete.vim
-prabirshrestha/vim-lsp
-preservim/nerdcommenter
-preservim/nerdtree
-preservim/tagbar
-preservim/vim-markdown
-preservim/vim-pencil
-preservim/vim-wordy
-preservim/vimux
-prettier/vim-prettier
-projekt0n/circles.nvim
-psliwka/vim-smoothie
-ptzz/lf.vim
-puremourning/vimspector
-purescript-contrib/purescript-vim
-pwntester/octo.nvim
-python-mode/python-mode
-qnighy/lalrpop.vim
-qpkorr/vim-bufkill
-quangnguyen30192/cmp-nvim-ultisnips
-Quramy/tsuquyomi
-racer-rust/vim-racer
-radenling/vim-dispatch-neovim
-rafamadriz/friendly-snippets
-rafamadriz/neon
-rafaqz/ranger.vim
-rafi/awesome-vim-colorschemes
-raghur/fruzzy
-raghur/vim-ghost
-Raimondi/delimitMate
-rakr/vim-one
-ray-x/aurora
-ray-x/cmp-treesitter
-ray-x/lsp_signature.nvim
-rbgrouleff/bclose.vim
-rbong/vim-flog
-rcarriga/nvim-dap-ui
-rcarriga/nvim-notify
-rcarriga/vim-ultest
-rebelot/kanagawa.nvim
-rhysd/clever-f.vim
-rhysd/committia.vim
-rhysd/conflict-marker.vim
-rhysd/devdocs.vim
-rhysd/git-messenger.vim
-rhysd/vim-clang-format
-rhysd/vim-grammarous
-rhysd/vim-operator-surround
-RishabhRD/nvim-lsputils
-RishabhRD/popfix
-rktjmp/fwatch.nvim
-rktjmp/hotpot.nvim
-rktjmp/lush.nvim
-rmagatti/auto-session
-rmagatti/goto-preview
-RobertAudi/securemodelines
-rodjek/vim-puppet
-romainl/vim-cool
-romainl/vim-qf
-romainl/vim-qlist
-roman/golden-ratio
-romgrk/barbar.nvim
-romgrk/nvim-treesitter-context
-ron-rs/ron.vim
-ron89/thesaurus_query.vim
-roxma/nvim-cm-racer
-roxma/nvim-completion-manager
-roxma/nvim-yarp
-roxma/vim-tmux-clipboard
-RRethy/nvim-base16
-RRethy/vim-hexokinase
-RRethy/vim-illuminate
-rstacruz/vim-closer
-ruanyl/vim-gh-line
-ruifm/gitlinker.nvim
-rust-lang/rust.vim
-ryanoasis/vim-devicons
-ryvnf/readline.vim
-saadparwaiz1/cmp_luasnip
-saecki/crates.nvim
-sainnhe/edge
-sainnhe/everforest
-sainnhe/gruvbox-material
-sainnhe/sonokai
-sakhnik/nvim-gdb
-samoshkin/vim-mergetool
-sbdchd/neoformat
-sblumentritt/bitbake.vim
-scalameta/nvim-metals
-sdiehl/vim-ormolu
-sebastianmarkow/deoplete-rust
-SevereOverfl0w/deoplete-github
-Shatur/neovim-ayu
-shaunsingh/moonlight.nvim@pure-lua
-shaunsingh/nord.nvim
-sheerun/vim-polyglot
-shinchu/lightline-gruvbox.vim
-Shougo/context_filetype.vim
-Shougo/defx.nvim
-Shougo/denite.nvim
-Shougo/deol.nvim
-Shougo/deoplete.nvim
-Shougo/echodoc.vim
-Shougo/neco-syntax
-Shougo/neco-vim
-Shougo/neocomplete.vim
-Shougo/neoinclude.vim
-Shougo/neomru.vim
-Shougo/neosnippet-snippets
-Shougo/neosnippet.vim
-Shougo/neoyank.vim
-Shougo/tabpagebuffer.vim
-Shougo/unite.vim
-Shougo/vimfiler.vim
-Shougo/vimproc.vim
-Shougo/vimshell.vim
-shumphrey/fugitive-gitlab.vim
-sickill/vim-pasta
-SidOfc/mkdx
-simnalamburt/vim-mundo
-simrat39/rust-tools.nvim
-simrat39/symbols-outline.nvim
-sindrets/diffview.nvim
-sindrets/winshift.nvim
-SirVer/ultisnips
-sjl/gundo.vim
-sjl/splice.vim
-sk1418/last256
-skywind3000/asyncrun.vim
-skywind3000/asynctasks.vim
-slashmili/alchemist.vim
-smiteshp/nvim-gps
-sodapopcan/vim-twiggy
-solarnz/arcanist.vim
-sonph/onehalf
-sotte/presenting.vim
-SpaceVim/SpaceVim
-spywhere/lightline-lsp
-srcery-colors/srcery-vim
-steelsojka/completion-buffers
-steelsojka/pears.nvim
-stefandtw/quickfix-reflector.vim
-stephpy/vim-yaml
-stevearc/aerial.nvim
-stevearc/dressing.nvim
-stsewd/fzf-checkout.vim
-sudormrfbin/cheatsheet.nvim
-sunaku/vim-dasht
-sunjon/Shade.nvim
-svermeulen/vim-subversive
-symphorien/vim-nixhash
-t9md/vim-choosewin
-t9md/vim-smalls
-TaDaa/vimade
-takac/vim-hardtime
-tamago324/compe-zsh
-tamago324/lir.nvim
-tami5/compe-conjure
-tami5/lispdocs.nvim
-tami5/lspsaga.nvim
-tami5/sqlite.lua
-tbastos/vim-lua
-tbodt/deoplete-tabnine
-ternjs/tern_for_vim
-terrortylor/nvim-comment
-terryma/vim-expand-region
-terryma/vim-multiple-cursors
-tex/vimpreviewpandoc
-Th3Whit3Wolf/one-nvim
-theHamsta/nvim-dap-virtual-text
-ThePrimeagen/git-worktree.nvim
-ThePrimeagen/harpoon
-theprimeagen/refactoring.nvim
-ThePrimeagen/vim-apm
-thinca/vim-ft-diff_fold
-thinca/vim-prettyprint
-thinca/vim-quickrun
-thinca/vim-scouter
-thinca/vim-themis
-thinca/vim-visualstar
-thirtythreeforty/lessspace.vim
-thosakwe/vim-flutter
-tiagofumo/vim-nerdtree-syntax-highlight
-tikhomirov/vim-glsl
-TimUntersberger/neogit
-tjdevries/colorbuddy.nvim
-tjdevries/nlua.nvim
-tjdevries/train.nvim
-tmhedberg/SimpylFold
-tmsvg/pear-tree
-tmux-plugins/vim-tmux
-tmux-plugins/vim-tmux-focus-events
-tom-anders/telescope-vim-bookmarks.nvim
-tomasiser/vim-code-dark
-tomasr/molokai
-tomlion/vim-solidity
-tommcdo/vim-exchange
-tommcdo/vim-fubitive
-tommcdo/vim-lion
-tommcdo/vim-ninja-feet
-tomtom/tcomment_vim
-tomtom/tlib_vim
-tools-life/taskwiki
-towolf/vim-helm
-tpope/vim-abolish
-tpope/vim-capslock
-tpope/vim-commentary
-tpope/vim-dadbod
-tpope/vim-dispatch
-tpope/vim-endwise
-tpope/vim-eunuch
-tpope/vim-fireplace
-tpope/vim-flagship
-tpope/vim-fugitive
-tpope/vim-git
-tpope/vim-liquid
-tpope/vim-obsession
-tpope/vim-pathogen
-tpope/vim-projectionist
-tpope/vim-ragtag
-tpope/vim-rails
-tpope/vim-repeat
-tpope/vim-rhubarb
-tpope/vim-rsi
-tpope/vim-salve
-tpope/vim-scriptease
-tpope/vim-sensible
-tpope/vim-sexp-mappings-for-regular-people
-tpope/vim-sleuth
-tpope/vim-speeddating
-tpope/vim-surround
-tpope/vim-tbone
-tpope/vim-unimpaired
-tpope/vim-vinegar
-travitch/hasksyn
-tremor-rs/tremor-vim
-triglav/vim-visual-increment
-troydm/zoomwintab.vim
-turbio/bracey.vim
-tversteeg/registers.nvim
-tweekmonster/wstrip.vim
-twerth/ir_black
-twinside/vim-haskellconceal
-Twinside/vim-hoogle
-tyru/caw.vim
-tyru/open-browser-github.vim
-tyru/open-browser.vim
-tzachar/cmp-tabnine
-tzachar/compe-tabnine
-uarun/vim-protobuf
-udalov/kotlin-vim
-ujihisa/neco-look
-unblevable/quick-scope
-ur4ltz/surround.nvim
-urbit/hoon.vim
-Valloric/MatchTagAlways
-Valodim/deoplete-notmuch
-vhda/verilog_systemverilog.vim
-vifm/vifm.vim
-vigoux/LanguageTool.nvim
-vijaymarupudi/nvim-fzf
-vijaymarupudi/nvim-fzf-commands
-vim-airline/vim-airline
-vim-airline/vim-airline-themes
-vim-autoformat/vim-autoformat
-vim-erlang/vim-erlang-compiler
-vim-erlang/vim-erlang-omnicomplete
-vim-erlang/vim-erlang-runtime
-vim-erlang/vim-erlang-tags
-vim-pandoc/vim-pandoc
-vim-pandoc/vim-pandoc-after
-vim-pandoc/vim-pandoc-syntax
-vim-python/python-syntax
-vim-ruby/vim-ruby
-vim-scripts/a.vim
-vim-scripts/align
-vim-scripts/argtextobj.vim
-vim-scripts/autoload_cscope.vim
-vim-scripts/bats.vim
-vim-scripts/BufOnly.vim
-vim-scripts/changeColorScheme.vim
-vim-scripts/Colour-Sampler-Pack
-vim-scripts/DoxygenToolkit.vim
-vim-scripts/emodeline
-vim-scripts/gitignore.vim
-vim-scripts/Improved-AnsiEsc
-vim-scripts/jdaddy.vim
-vim-scripts/matchit.zip
-vim-scripts/mayansmoke
-vim-scripts/PreserveNoEOL
-vim-scripts/prev_indent
-vim-scripts/random.vim
-vim-scripts/rcshell.vim
-vim-scripts/Rename
-vim-scripts/ReplaceWithRegister
-vim-scripts/ShowMultiBase
-vim-scripts/tabmerge
-vim-scripts/taglist.vim
-vim-scripts/timestamp.vim
-vim-scripts/utl.vim
-vim-scripts/vis
-vim-scripts/wombat256.vim
-vim-scripts/YankRing.vim
-vim-syntastic/syntastic
-vim-test/vim-test
-vim-utils/vim-husk
-Vimjas/vim-python-pep8-indent
-vimlab/split-term.vim
-vimoutliner/vimoutliner
-vimpostor/vim-tpipeline
-vimsence/vimsence
-vimwiki/vimwiki
-vito-c/jq.vim
-vmchale/ats-vim
-vmchale/dhall-vim
-vmware-archive/salt-vim
-vn-ki/coc-clap
-voldikss/vim-floaterm
-vuki656/package-info.nvim
-VundleVim/Vundle.vim
-w0ng/vim-hybrid
-wakatime/vim-wakatime
-wannesm/wmgraphviz.vim
-wbthomason/packer.nvim
-weilbith/nvim-code-action-menu
-wellle/targets.vim
-wellle/tmux-complete.vim
-wesQ3/vim-windowswap
-wfxr/minimap.vim
-whonore/Coqtail
-will133/vim-dirdiff
-wincent/command-t
-wincent/ferret
-wincent/terminus
-windwp/nvim-autopairs
-windwp/nvim-ts-autotag
-winston0410/cmd-parser.nvim
-winston0410/range-highlight.nvim
-wlangstroth/vim-racket
-wsdjeg/vim-fetch
-xavierd/clang_complete
-xolox/vim-easytags
-xolox/vim-misc
-xuhdev/vim-latex-live-preview
-Xuyuanp/nerdtree-git-plugin
-Xuyuanp/scrollbar.nvim
-yamatsum/nvim-cursorline
-yamatsum/nvim-nonicons
-ycm-core/YouCompleteMe
-yegappan/mru
-Yggdroot/hiPairs
-Yggdroot/indentLine
-Yggdroot/LeaderF
-Yilin-Yang/vim-markbar
-yssl/QFEnter
-yuki-yano/ncm2-dictionary
-yunlingz/ci_dark
-zah/nim.vim
-zhou13/vim-easyescape
-ziglang/zig.vim
+repo,branch,alias
+https://github.com/euclidianAce/BetterLua.vim/,,
+https://github.com/vim-scripts/BufOnly.vim/,,
+https://github.com/chrisbra/CheckAttach/,,
+https://github.com/vim-scripts/Colour-Sampler-Pack/,,
+https://github.com/whonore/Coqtail/,,
+https://github.com/vim-scripts/DoxygenToolkit.vim/,,
+https://github.com/numToStr/FTerm.nvim/,,
+https://github.com/antoinemadec/FixCursorHold.nvim/,,
+https://github.com/vim-scripts/Improved-AnsiEsc/,,
+https://github.com/martinda/Jenkinsfile-vim-syntax/,,
+https://github.com/autozimu/LanguageClient-neovim/,,
+https://github.com/vigoux/LanguageTool.nvim/,,
+https://github.com/Yggdroot/LeaderF/,,
+https://github.com/Valloric/MatchTagAlways/,,
+https://github.com/numToStr/Navigator.nvim/,,
+https://github.com/overcache/NeoSolarized/,,
+https://github.com/chrisbra/NrrwRgn/,,
+https://github.com/vim-scripts/PreserveNoEOL/,,
+https://github.com/yssl/QFEnter/,,
+https://github.com/chrisbra/Recover.vim/,,
+https://github.com/vim-scripts/Rename/,,
+https://github.com/vim-scripts/ReplaceWithRegister/,,
+https://github.com/b0o/SchemaStore.nvim/,,
+https://github.com/sunjon/Shade.nvim/,,
+https://github.com/vim-scripts/ShowMultiBase/,,
+https://github.com/tmhedberg/SimpylFold/,,
+https://github.com/jaredgorski/SpaceCamp/,,
+https://github.com/SpaceVim/SpaceVim/,,
+https://github.com/ackyshake/Spacegray.vim/,,
+https://github.com/chrisbra/SudoEdit.vim/,,
+https://github.com/Pocco81/TrueZen.nvim/,,
+https://github.com/ackyshake/VimCompletesMe/,,
+https://github.com/hsitz/VimOrganizer/,,
+https://github.com/VundleVim/Vundle.vim/,,
+https://github.com/esneider/YUNOcommit.vim/,,
+https://github.com/vim-scripts/YankRing.vim/,,
+https://github.com/ycm-core/YouCompleteMe/,,
+https://github.com/vim-scripts/a.vim/,,
+https://github.com/mileszs/ack.vim/,,
+https://github.com/eikenb/acp/,,
+https://github.com/stevearc/aerial.nvim/,,
+https://github.com/derekelkins/agda-vim/,,
+https://github.com/slashmili/alchemist.vim/,,
+https://github.com/dense-analysis/ale/,,
+https://github.com/vim-scripts/align/,,
+https://github.com/Olical/aniseed/,,
+https://github.com/pearofducks/ansible-vim/,,
+https://github.com/ckarnell/antonys-macro-repeater/,,
+https://github.com/solarnz/arcanist.vim/,,
+https://github.com/vim-scripts/argtextobj.vim/,,
+https://github.com/prabirshrestha/async.vim/,,
+https://github.com/prabirshrestha/asyncomplete-lsp.vim/,,
+https://github.com/prabirshrestha/asyncomplete.vim/,,
+https://github.com/skywind3000/asyncrun.vim/,,
+https://github.com/skywind3000/asynctasks.vim/,,
+https://github.com/vmchale/ats-vim/,,
+https://github.com/ray-x/aurora/,,
+https://github.com/hotwatermorning/auto-git-diff/,,
+https://github.com/jiangmiao/auto-pairs/,,
+https://github.com/rmagatti/auto-session/,,
+https://github.com/vim-scripts/autoload_cscope.vim/,,
+https://github.com/rafi/awesome-vim-colorschemes/,,
+https://github.com/ayu-theme/ayu-vim/,,
+https://github.com/romgrk/barbar.nvim/,,
+https://github.com/chriskempson/base16-vim/,,
+https://github.com/vim-scripts/bats.vim/,,
+https://github.com/rbgrouleff/bclose.vim/,,
+https://github.com/max397574/better-escape.nvim/,,
+https://github.com/sblumentritt/bitbake.vim/,,
+https://github.com/blueballs-theme/blueballs-neovim/,,
+https://github.com/turbio/bracey.vim/,,
+https://github.com/fruit-in/brainfuck-vim/,,
+https://github.com/famiu/bufdelete.nvim/,,
+https://github.com/jlanzarotta/bufexplorer/,,
+https://github.com/akinsho/bufferline.nvim/,,
+https://github.com/mattn/calendar-vim/,,mattn-calendar-vim
+https://github.com/itchyny/calendar.vim/,,
+https://github.com/bkad/camelcasemotion/,,
+https://github.com/tyru/caw.vim/,,
+https://github.com/ms-jpq/chadtree/,,chad
+https://github.com/vim-scripts/changeColorScheme.vim/,,
+https://github.com/sudormrfbin/cheatsheet.nvim/,,
+https://github.com/yunlingz/ci_dark/,,
+https://github.com/projekt0n/circles.nvim/,,
+https://github.com/xavierd/clang_complete/,,
+https://github.com/rhysd/clever-f.vim/,,
+https://github.com/bbchung/clighter8/,,
+https://github.com/winston0410/cmd-parser.nvim/,,
+https://github.com/hrsh7th/cmp-buffer/,,
+https://github.com/hrsh7th/cmp-calc/,,
+https://github.com/hrsh7th/cmp-cmdline/,,
+https://github.com/PaterJason/cmp-conjure/,,
+https://github.com/hrsh7th/cmp-emoji/,,
+https://github.com/kdheepak/cmp-latex-symbols/,,
+https://github.com/hrsh7th/cmp-nvim-lsp/,,
+https://github.com/hrsh7th/cmp-nvim-lsp-document-symbol/,,
+https://github.com/hrsh7th/cmp-nvim-lua/,,
+https://github.com/quangnguyen30192/cmp-nvim-ultisnips/,,
+https://github.com/hrsh7th/cmp-omni/,,
+https://github.com/jc-doyle/cmp-pandoc-references/,,
+https://github.com/hrsh7th/cmp-path/,,
+https://github.com/f3fora/cmp-spell/,,
+https://github.com/tzachar/cmp-tabnine/,,
+https://github.com/andersevenrud/cmp-tmux/,,
+https://github.com/ray-x/cmp-treesitter/,,
+https://github.com/lukas-reineke/cmp-under-comparator/,,
+https://github.com/hrsh7th/cmp-vsnip/,,
+https://github.com/saadparwaiz1/cmp_luasnip/,,
+https://github.com/vn-ki/coc-clap/,,
+https://github.com/neoclide/coc-denite/,,
+https://github.com/antoinemadec/coc-fzf/,,
+https://github.com/josa42/coc-lua/,,
+https://github.com/neoclide/coc-neco/,,
+https://github.com/iamcco/coc-spell-checker/,,
+https://github.com/coc-extensions/coc-svelte/,,
+https://github.com/iamcco/coc-tailwindcss/,,
+https://github.com/neoclide/coc.nvim/,release,
+https://github.com/metakirby5/codi.vim/,,
+https://github.com/tjdevries/colorbuddy.nvim/,,
+https://github.com/lilydjwg/colorizer/,,
+https://github.com/wincent/command-t/,,
+https://github.com/numtostr/comment.nvim/,,
+https://github.com/rhysd/committia.vim/,,
+https://github.com/tami5/compe-conjure/,,
+https://github.com/GoldsteinE/compe-latex-symbols/,,
+https://github.com/tzachar/compe-tabnine/,,
+https://github.com/tamago324/compe-zsh/,,
+https://github.com/steelsojka/completion-buffers/,,
+https://github.com/nvim-lua/completion-nvim/,,
+https://github.com/aca/completion-tabnine/,,
+https://github.com/nvim-treesitter/completion-treesitter/,,
+https://github.com/chikatoike/concealedyank.vim/,,
+https://github.com/rhysd/conflict-marker.vim/,,
+https://github.com/Olical/conjure/,,
+https://github.com/Shougo/context_filetype.vim/,,
+https://github.com/github/copilot.vim/,,
+https://github.com/jvoorhis/coq.vim/,,
+https://github.com/ms-jpq/coq_nvim/,,
+https://github.com/lfilho/cosco.vim/,,
+https://github.com/nixprime/cpsm/,,
+https://github.com/saecki/crates.nvim/,,
+https://github.com/godlygeek/csapprox/,,
+https://github.com/chrisbra/csv.vim/,,
+https://github.com/JazzCore/ctrlp-cmatcher/,,
+https://github.com/FelikZ/ctrlp-py-matcher/,,
+https://github.com/amiorin/ctrlp-z/,,
+https://github.com/ctrlpvim/ctrlp.vim/,,
+https://github.com/dart-lang/dart-vim-plugin/,,
+https://github.com/glepnir/dashboard-nvim/,,
+https://github.com/kristijanhusak/defx-git/,,
+https://github.com/kristijanhusak/defx-icons/,,
+https://github.com/Shougo/defx.nvim/,,
+https://github.com/Raimondi/delimitMate/,,
+https://github.com/neoclide/denite-extra/,,
+https://github.com/neoclide/denite-git/,,
+https://github.com/Shougo/denite.nvim/,,
+https://github.com/Shougo/deol.nvim/,,
+https://github.com/deoplete-plugins/deoplete-clang/,,
+https://github.com/deoplete-plugins/deoplete-dictionary/,,
+https://github.com/ponko2/deoplete-fish/,,
+https://github.com/SevereOverfl0w/deoplete-github/,,
+https://github.com/deoplete-plugins/deoplete-go/,,
+https://github.com/Inazuma110/deoplete-greek/,,
+https://github.com/deoplete-plugins/deoplete-jedi/,,
+https://github.com/JuliaEditorSupport/deoplete-julia/,,
+https://github.com/nicoe/deoplete-khard/,,
+https://github.com/deoplete-plugins/deoplete-lsp/,,
+https://github.com/Valodim/deoplete-notmuch/,,
+https://github.com/kristijanhusak/deoplete-phpactor/,,
+https://github.com/sebastianmarkow/deoplete-rust/,,
+https://github.com/tbodt/deoplete-tabnine/,,
+https://github.com/carlitux/deoplete-ternjs/,,
+https://github.com/lighttiger2505/deoplete-vim-lsp/,,
+https://github.com/deoplete-plugins/deoplete-zsh/,,
+https://github.com/Shougo/deoplete.nvim/,,
+https://github.com/rhysd/devdocs.vim/,,
+https://github.com/vmchale/dhall-vim/,,
+https://github.com/onsails/diaglist.nvim/,,
+https://github.com/nvim-lua/diagnostic-nvim/,,
+https://github.com/sindrets/diffview.nvim/,,
+https://github.com/direnv/direnv.vim/,,
+https://github.com/doki-theme/doki-theme-vim/,,
+https://github.com/stevearc/dressing.nvim/,,
+https://github.com/Shougo/echodoc.vim/,,
+https://github.com/sainnhe/edge/,,
+https://github.com/editorconfig/editorconfig-vim/,,
+https://github.com/gpanders/editorconfig.nvim/,,
+https://github.com/elmcast/elm-vim/,,
+https://github.com/dmix/elvish.vim/,,
+https://github.com/mattn/emmet-vim/,,
+https://github.com/vim-scripts/emodeline/,,
+https://github.com/sainnhe/everforest/,,
+https://github.com/fenetikm/falcon/,,
+https://github.com/brooth/far.vim/,,
+https://github.com/konfekt/fastfold/,,
+https://github.com/lilydjwg/fcitx.vim/,fcitx5,
+https://github.com/feline-nvim/feline.nvim/,,
+https://github.com/bakpakin/fennel.vim/,,
+https://github.com/lambdalisue/fern.vim/,,
+https://github.com/wincent/ferret/,,
+https://github.com/j-hui/fidget.nvim/,,
+https://github.com/bogado/file-line/,,
+https://github.com/andviro/flake8-vim/,,
+https://github.com/ncm2/float-preview.nvim/,,
+https://github.com/fhill2/floating.nvim/,,
+https://github.com/floobits/floobits-neovim/,,
+https://github.com/mhartington/formatter.nvim/,,
+https://github.com/megaannum/forms/,,
+https://github.com/rafamadriz/friendly-snippets/,,
+https://github.com/raghur/fruzzy/,,
+https://github.com/shumphrey/fugitive-gitlab.vim/,,
+https://github.com/BeneCollyridam/futhark-vim/,,
+https://github.com/rktjmp/fwatch.nvim/,,
+https://github.com/stsewd/fzf-checkout.vim/,,
+https://github.com/gfanto/fzf-lsp.nvim/,,
+https://github.com/junegunn/fzf.vim/,,
+https://github.com/NTBBloodbath/galaxyline.nvim/,,
+https://github.com/jsfaint/gen_tags.vim/,,
+https://github.com/gentoo/gentoo-syntax/,,
+https://github.com/ndmitchell/ghcid/,,
+https://github.com/eagletmt/ghcmod-vim/,,
+https://github.com/lambdalisue/gina.vim/,,
+https://github.com/f-person/git-blame.nvim/,,
+https://github.com/rhysd/git-messenger.vim/,,
+https://github.com/ThePrimeagen/git-worktree.nvim/,,
+https://github.com/vim-scripts/gitignore.vim/,,
+https://github.com/ruifm/gitlinker.nvim/,,
+https://github.com/lewis6991/gitsigns.nvim/,,
+https://github.com/gregsexton/gitv/,,
+https://github.com/gleam-lang/gleam.vim/,,
+https://github.com/ellisonleao/glow.nvim/,,
+https://github.com/roman/golden-ratio/,,
+https://github.com/buoto/gotests-vim/,,
+https://github.com/rmagatti/goto-preview/,,
+https://github.com/junegunn/goyo.vim/,,
+https://github.com/liuchengxu/graphviz.vim/,,
+https://github.com/gruvbox-community/gruvbox/,,gruvbox-community
+https://github.com/morhetz/gruvbox/,,
+https://github.com/eddyekofo94/gruvbox-flat.nvim/,,
+https://github.com/sainnhe/gruvbox-material/,,
+https://github.com/ellisonleao/gruvbox.nvim/,,
+https://github.com/sjl/gundo.vim/,,
+https://github.com/junegunn/gv.vim/,,
+https://github.com/ThePrimeagen/harpoon/,,
+https://github.com/neovimhaskell/haskell-vim/,,
+https://github.com/travitch/hasksyn/,,
+https://github.com/Yggdroot/hiPairs/,,
+https://github.com/mpickering/hlint-refactor-vim/,,
+https://github.com/edluffy/hologram.nvim/,,
+https://github.com/urbit/hoon.vim/,,
+https://github.com/phaazon/hop.nvim/,,
+https://github.com/rktjmp/hotpot.nvim/,,
+https://github.com/mboughaba/i3config.vim/,,
+https://github.com/cocopon/iceberg.vim/,,
+https://github.com/idris-hackers/idris-vim/,,
+https://github.com/edwinb/idris2-vim/,,
+https://github.com/lewis6991/impatient.nvim/,,
+https://github.com/nishigori/increment-activator/,,
+https://github.com/haya14busa/incsearch-easymotion.vim/,,
+https://github.com/haya14busa/incsearch.vim/,,
+https://github.com/lukas-reineke/indent-blankline.nvim/,,
+https://github.com/Yggdroot/indentLine/,,
+https://github.com/ciaranm/inkpot/,,
+https://github.com/parsonsmatt/intero-neovim/,,
+https://github.com/keith/investigate.vim/,,
+https://github.com/neutaaaaan/iosvkem/,,
+https://github.com/twerth/ir_black/,,
+https://github.com/haya14busa/is.vim/,,
+https://github.com/vim-scripts/jdaddy.vim/,,
+https://github.com/davidhalter/jedi-vim/,,
+https://github.com/metalelf0/jellybeans-nvim/,,
+https://github.com/nanotech/jellybeans.vim/,,
+https://github.com/vito-c/jq.vim/,,
+https://github.com/neoclide/jsonc.vim/,,
+https://github.com/JuliaEditorSupport/julia-vim/,,
+https://github.com/rebelot/kanagawa.nvim/,,
+https://github.com/b3nj5m1n/kommentary/,,
+https://github.com/udalov/kotlin-vim/,,
+https://github.com/qnighy/lalrpop.vim/,,
+https://github.com/sk1418/last256/,,
+https://github.com/latex-box-team/latex-box/,,
+https://github.com/kdheepak/lazygit.nvim/,,
+https://github.com/Julian/lean.nvim/,,
+https://github.com/leanprover/lean.vim/,,
+https://github.com/camspiers/lens.vim/,,
+https://github.com/thirtythreeforty/lessspace.vim/,,
+https://github.com/cohama/lexima.vim/,,
+https://github.com/ptzz/lf.vim/,,
+https://github.com/LucHermitte/lh-brackets/,,
+https://github.com/LucHermitte/lh-vim-lib/,,
+https://github.com/maximbaz/lightline-ale/,,
+https://github.com/mengelbrecht/lightline-bufferline/,,
+https://github.com/shinchu/lightline-gruvbox.vim/,,
+https://github.com/spywhere/lightline-lsp/,,
+https://github.com/itchyny/lightline.vim/,,
+https://github.com/ggandor/lightspeed.nvim/,,
+https://github.com/junegunn/limelight.vim/,,
+https://github.com/lf-lang/lingua-franca.vim/,,
+https://github.com/tamago324/lir.nvim/,,
+https://github.com/tami5/lispdocs.nvim/,,
+https://github.com/ldelossa/litee-calltree.nvim/,,
+https://github.com/ldelossa/litee-filetree.nvim/,,
+https://github.com/ldelossa/litee-symboltree.nvim/,,
+https://github.com/ldelossa/litee.nvim/,,
+https://github.com/folke/lsp-colors.nvim/,,
+https://github.com/ahmedkhalf/lsp-rooter.nvim/,,
+https://github.com/nvim-lua/lsp-status.nvim/,,
+https://github.com/nvim-lua/lsp_extensions.nvim/,,
+https://git.sr.ht/~whynothugo/lsp_lines.nvim,,
+https://github.com/ray-x/lsp_signature.nvim/,,
+https://github.com/onsails/lspkind-nvim/,,
+https://github.com/tami5/lspsaga.nvim/,,
+https://github.com/folke/lua-dev.nvim/,,
+https://github.com/arkav/lualine-lsp-progress/,,
+https://github.com/nvim-lualine/lualine.nvim/,,
+https://github.com/l3mon4d3/luasnip/,,
+https://github.com/alvarosevilla95/luatab.nvim/,,
+https://github.com/rktjmp/lush.nvim/,,
+https://github.com/mkasa/lushtags/,,
+https://github.com/iamcco/markdown-preview.nvim/,,
+https://github.com/chentau/marks.nvim/,,
+https://github.com/vim-scripts/matchit.zip/,,
+https://github.com/marko-cerovac/material.nvim/,,
+https://github.com/vim-scripts/mayansmoke/,,
+https://github.com/echasnovski/mini.nvim/,,
+https://github.com/wfxr/minimap.vim/,,
+https://github.com/jose-elias-alvarez/minsnip.nvim/,,
+https://github.com/jghauser/mkdir.nvim/,main,
+https://github.com/SidOfc/mkdx/,,
+https://github.com/tomasr/molokai/,,
+https://github.com/shaunsingh/moonlight.nvim/,,pure-lua
+https://github.com/yegappan/mru/,,
+https://github.com/ncm2/ncm2/,,
+https://github.com/ncm2/ncm2-bufword/,,
+https://github.com/ncm2/ncm2-cssomni/,,
+https://github.com/yuki-yano/ncm2-dictionary/,,
+https://github.com/ncm2/ncm2-github/,,
+https://github.com/ncm2/ncm2-html-subscope/,,
+https://github.com/ncm2/ncm2-jedi/,,
+https://github.com/ncm2/ncm2-markdown-subscope/,,
+https://github.com/ncm2/ncm2-neoinclude/,,
+https://github.com/ncm2/ncm2-neosnippet/,,
+https://github.com/ncm2/ncm2-path/,,
+https://github.com/ncm2/ncm2-syntax/,,
+https://github.com/ncm2/ncm2-tagprefix/,,
+https://github.com/ncm2/ncm2-tmux/,,
+https://github.com/ncm2/ncm2-ultisnips/,,
+https://github.com/ncm2/ncm2-vim/,,
+https://github.com/eagletmt/neco-ghc/,,
+https://github.com/ujihisa/neco-look/,,
+https://github.com/Shougo/neco-syntax/,,
+https://github.com/Shougo/neco-vim/,,
+https://github.com/Shougo/neocomplete.vim/,,
+https://github.com/KeitaNakamura/neodark.vim/,,
+https://github.com/sbdchd/neoformat/,,
+https://github.com/TimUntersberger/neogit/,,
+https://github.com/Shougo/neoinclude.vim/,,
+https://github.com/neomake/neomake/,,
+https://github.com/Shougo/neomru.vim/,,
+https://github.com/rafamadriz/neon/,,
+https://github.com/nvim-neorg/neorg/,,
+https://github.com/karb94/neoscroll.nvim/,,
+https://github.com/Shougo/neosnippet-snippets/,,
+https://github.com/Shougo/neosnippet.vim/,,
+https://github.com/kassio/neoterm/,,
+https://github.com/rose-pine/neovim/,main,rose-pine
+https://github.com/Shatur/neovim-ayu/,,
+https://github.com/cloudhead/neovim-fuzzy/,,
+https://github.com/jeffkreeftmeijer/neovim-sensible/,,
+https://github.com/Shougo/neoyank.vim/,,
+https://github.com/preservim/nerdcommenter/,,
+https://github.com/preservim/nerdtree/,,
+https://github.com/Xuyuanp/nerdtree-git-plugin/,,
+https://github.com/oberblastmeister/neuron.nvim/,,
+https://github.com/fiatjaf/neuron.vim/,,
+https://github.com/chr4/nginx.vim/,,
+https://github.com/EdenEast/nightfox.nvim/,,
+https://github.com/zah/nim.vim/,,
+https://github.com/tjdevries/nlua.nvim/,,
+https://github.com/mcchrish/nnn.vim/,,
+https://github.com/arcticicestudio/nord-vim/,master,
+https://github.com/shaunsingh/nord.nvim/,,
+https://github.com/andersevenrud/nordic.nvim/,,
+https://github.com/jlesquembre/nterm.nvim/,,
+https://github.com/MunifTanjim/nui.nvim/,main,
+https://github.com/jose-elias-alvarez/null-ls.nvim/,,
+https://github.com/nacro90/numb.nvim/,,
+https://github.com/ChristianChiarulli/nvcode-color-schemes.vim/,,
+https://github.com/catppuccin/nvim/,,catppuccin-nvim
+https://github.com/nathanmsmith/nvim-ale-diagnostic/,,
+https://github.com/windwp/nvim-autopairs/,,
+https://github.com/RRethy/nvim-base16/,,
+https://github.com/kevinhwang91/nvim-bqf/,,
+https://github.com/ojroques/nvim-bufdel/,,
+https://github.com/roxma/nvim-cm-racer/,,
+https://github.com/hrsh7th/nvim-cmp/,,
+https://github.com/weilbith/nvim-code-action-menu/,,
+https://github.com/norcalli/nvim-colorizer.lua/,,
+https://github.com/terrortylor/nvim-comment/,,
+https://github.com/hrsh7th/nvim-compe/,,
+https://github.com/roxma/nvim-completion-manager/,,
+https://github.com/yamatsum/nvim-cursorline/,,
+https://github.com/mfussenegger/nvim-dap/,,
+https://github.com/rcarriga/nvim-dap-ui/,,
+https://github.com/theHamsta/nvim-dap-virtual-text/,,
+https://github.com/allendang/nvim-expand-expr/,,
+https://github.com/vijaymarupudi/nvim-fzf/,,
+https://github.com/vijaymarupudi/nvim-fzf-commands/,,
+https://github.com/sakhnik/nvim-gdb/,,
+https://github.com/smiteshp/nvim-gps/,,
+https://github.com/Iron-E/nvim-highlite/,,
+https://github.com/kevinhwang91/nvim-hlslens/,,
+https://github.com/neovimhaskell/nvim-hs.vim/,,
+https://github.com/mfussenegger/nvim-jdtls/,,
+https://github.com/gennaro-tedesco/nvim-jqx/,,
+https://github.com/kosayoda/nvim-lightbulb/,,
+https://github.com/josa42/nvim-lightline-lsp/,,
+https://github.com/mfussenegger/nvim-lint/,,
+https://github.com/jose-elias-alvarez/nvim-lsp-ts-utils/,,
+https://github.com/neovim/nvim-lspconfig/,,
+https://github.com/RishabhRD/nvim-lsputils/,,
+https://github.com/scalameta/nvim-metals/,,
+https://github.com/AckslD/nvim-neoclip.lua/,,
+https://github.com/yamatsum/nvim-nonicons/,,
+https://github.com/rcarriga/nvim-notify/,,
+https://github.com/gennaro-tedesco/nvim-peekup/,,
+https://github.com/dstein64/nvim-scrollview/,,
+https://github.com/ishan9299/nvim-solarized-lua/,,
+https://github.com/nvim-pack/nvim-spectre/,,
+https://github.com/norcalli/nvim-terminal.lua/,,
+https://github.com/kyazdani42/nvim-tree.lua/,,
+https://github.com/nvim-treesitter/nvim-treesitter/,,
+https://github.com/romgrk/nvim-treesitter-context/,,
+https://github.com/eddiebergman/nvim-treesitter-pyfold/,,
+https://github.com/nvim-treesitter/nvim-treesitter-refactor/,,
+https://github.com/nvim-treesitter/nvim-treesitter-textobjects/,,
+https://github.com/windwp/nvim-ts-autotag/,,
+https://github.com/joosepalviste/nvim-ts-context-commentstring/,,
+https://github.com/p00f/nvim-ts-rainbow/,,
+https://github.com/kyazdani42/nvim-web-devicons/,,
+https://github.com/AckslD/nvim-whichkey-setup.lua/,,
+https://github.com/roxma/nvim-yarp/,,
+https://github.com/haringsrob/nvim_context_vt/,,
+https://github.com/neovim/nvimdev.nvim/,,
+https://github.com/glepnir/oceanic-material/,,
+https://github.com/mhartington/oceanic-next/,,
+https://github.com/pwntester/octo.nvim/,,
+https://github.com/Th3Whit3Wolf/one-nvim/,,
+https://github.com/navarasu/onedark.nvim/,,
+https://github.com/joshdick/onedark.vim/,,
+https://github.com/olimorris/onedarkpro.nvim/,,
+https://github.com/sonph/onehalf/,,
+https://github.com/tyru/open-browser-github.vim/,,
+https://github.com/tyru/open-browser.vim/,,
+https://github.com/nvim-orgmode/orgmode/,,
+https://github.com/vuki656/package-info.nvim/,,
+https://github.com/wbthomason/packer.nvim/,,
+https://github.com/drewtempelmeyer/palenight.vim/,,
+https://github.com/NLKNguyen/papercolor-theme/,,
+https://github.com/tmsvg/pear-tree/,,
+https://github.com/steelsojka/pears.nvim/,,
+https://github.com/andsild/peskcolor.vim/,,
+https://github.com/lifepillar/pgsql.vim/,,
+https://github.com/motus/pig.vim/,,
+https://github.com/aklt/plantuml-syntax/,,
+https://github.com/nvim-treesitter/playground/,,
+https://github.com/nvim-lua/plenary.nvim/,,
+https://github.com/dleonard0/pony-vim-syntax/,,
+https://github.com/RishabhRD/popfix/,,
+https://github.com/nvim-lua/popup.nvim/,,
+https://github.com/andweeb/presence.nvim/,,
+https://github.com/sotte/presenting.vim/,,
+https://github.com/vim-scripts/prev_indent/,,
+https://github.com/ahmedkhalf/project.nvim/,,
+https://github.com/frigoeu/psc-ide-vim/,,
+https://github.com/purescript-contrib/purescript-vim/,,
+https://github.com/python-mode/python-mode/,,
+https://github.com/vim-python/python-syntax/,,
+https://github.com/AlphaTechnolog/pywal.nvim/,,
+https://github.com/unblevable/quick-scope/,,
+https://github.com/stefandtw/quickfix-reflector.vim/,,
+https://github.com/dannyob/quickfixstatus/,,
+https://github.com/luochen1990/rainbow/,,
+https://github.com/kien/rainbow_parentheses.vim/,,
+https://github.com/vim-scripts/random.vim/,,
+https://github.com/winston0410/range-highlight.nvim/,,
+https://github.com/rafaqz/ranger.vim/,,
+https://github.com/vim-scripts/rcshell.vim/,,
+https://github.com/ryvnf/readline.vim/,,
+https://github.com/theprimeagen/refactoring.nvim/,,
+https://github.com/tversteeg/registers.nvim/,,
+https://github.com/filipdutescu/renamer.nvim/,,
+https://github.com/NTBBloodbath/rest.nvim/,,
+https://github.com/gu-fan/riv.vim/,,
+https://github.com/kevinhwang91/rnvimr/,,
+https://github.com/mfukar/robotframework-vim/,,
+https://github.com/ron-rs/ron.vim/,,
+https://github.com/keith/rspec.vim/,,
+https://github.com/ccarpita/rtorrent-syntax-file/,,
+https://github.com/simrat39/rust-tools.nvim/,,
+https://github.com/rust-lang/rust.vim/,,
+https://github.com/hauleth/sad.vim/,,
+https://github.com/vmware-archive/salt-vim/,,
+https://github.com/Xuyuanp/scrollbar.nvim/,,
+https://github.com/RobertAudi/securemodelines/,,
+https://github.com/megaannum/self/,,
+https://github.com/jaxbot/semantic-highlight.vim/,,
+https://github.com/numirias/semshi/,,
+https://github.com/junegunn/seoul256.vim/,,
+https://github.com/osyo-manga/shabadou.vim/,,
+https://github.com/AndrewRadev/sideways.vim/,,
+https://github.com/lotabout/skim.vim/,,
+https://github.com/mopp/sky-color-clock.vim/,,
+https://github.com/kovisoft/slimv/,,
+https://github.com/gorkunov/smartpairs.vim/,,
+https://github.com/camspiers/snap/,,
+https://github.com/norcalli/snippets.nvim/,,
+https://github.com/sainnhe/sonokai/,,
+https://github.com/chikatoike/sourcemap.vim/,,
+https://github.com/liuchengxu/space-vim/,,
+https://github.com/ctjhoa/spacevim/,,
+https://github.com/chrisgeo/sparkup/,,
+https://github.com/edluffy/specs.nvim/,,
+https://github.com/sjl/splice.vim/,,
+https://github.com/vimlab/split-term.vim/,,
+https://github.com/AndrewRadev/splitjoin.vim/,,
+https://github.com/tami5/sqlite.lua/,,
+https://github.com/srcery-colors/srcery-vim/,,
+https://github.com/chr4/sslsecure.vim/,,
+https://github.com/luukvbaal/stabilize.nvim/,,
+https://github.com/eigenfoo/stan-vim/,,
+https://github.com/darfink/starsearch.vim/,,
+https://github.com/lambdalisue/suda.vim/,,
+https://github.com/ervandew/supertab/,,
+https://github.com/ur4ltz/surround.nvim/,,
+https://github.com/peterbjorgensen/sved/,,
+https://github.com/keith/swift.vim/,,
+https://github.com/AndrewRadev/switch.vim/,,
+https://github.com/simrat39/symbols-outline.nvim/,,
+https://github.com/vim-syntastic/syntastic/,,
+https://github.com/kdheepak/tabline.nvim/,,
+https://github.com/vim-scripts/tabmerge/,,
+https://github.com/codota/tabnine-vim/,,
+https://github.com/gcmt/taboo.vim/,,
+https://github.com/Shougo/tabpagebuffer.vim/,,
+https://github.com/godlygeek/tabular/,,
+https://github.com/AndrewRadev/tagalong.vim/,,
+https://github.com/preservim/tagbar/,,
+https://github.com/vim-scripts/taglist.vim/,,
+https://github.com/wellle/targets.vim/,,
+https://github.com/tools-life/taskwiki/,,
+https://github.com/tomtom/tcomment_vim/,,
+https://github.com/GustavoKatel/telescope-asynctasks.nvim/,,
+https://github.com/nvim-telescope/telescope-cheat.nvim/,,
+https://github.com/fannheyward/telescope-coc.nvim/,,
+https://github.com/nvim-telescope/telescope-dap.nvim/,,
+https://github.com/nvim-telescope/telescope-file-browser.nvim/,,
+https://github.com/nvim-telescope/telescope-frecency.nvim/,,
+https://github.com/nvim-telescope/telescope-fzf-native.nvim/,,
+https://github.com/nvim-telescope/telescope-fzf-writer.nvim/,,
+https://github.com/nvim-telescope/telescope-fzy-native.nvim/,,
+https://github.com/nvim-telescope/telescope-github.nvim/,,
+https://github.com/gbrlsnchs/telescope-lsp-handlers.nvim/,,
+https://github.com/nvim-telescope/telescope-project.nvim/,,
+https://github.com/nvim-telescope/telescope-symbols.nvim/,,
+https://github.com/nvim-telescope/telescope-ui-select.nvim/,,
+https://github.com/fhill2/telescope-ultisnips.nvim/,,
+https://github.com/tom-anders/telescope-vim-bookmarks.nvim/,,
+https://github.com/nvim-telescope/telescope-z.nvim/,,
+https://github.com/jvgrootveld/telescope-zoxide/,,
+https://github.com/nvim-telescope/telescope.nvim/,,
+https://github.com/jacoborus/tender.vim/,,
+https://github.com/wincent/terminus/,,
+https://github.com/oberblastmeister/termwrapper.nvim/,,
+https://github.com/ternjs/tern_for_vim/,,
+https://github.com/KeitaNakamura/tex-conceal.vim/,,
+https://github.com/ron89/thesaurus_query.vim/,,
+https://github.com/itchyny/thumbnail.vim/,,
+https://github.com/vim-scripts/timestamp.vim/,,
+https://github.com/tomtom/tlib_vim/,,
+https://github.com/wellle/tmux-complete.vim/,,
+https://github.com/edkolev/tmuxline.vim/,,
+https://github.com/folke/todo-comments.nvim/,,
+https://github.com/AmeerTaweel/todo.nvim/,,
+https://github.com/freitass/todo.txt-vim/,,
+https://github.com/akinsho/toggleterm.nvim/,,
+https://github.com/folke/tokyonight.nvim/,,
+https://github.com/markonm/traces.vim/,,
+https://github.com/tjdevries/train.nvim/,,
+https://github.com/tremor-rs/tremor-vim/,,
+https://github.com/folke/trouble.nvim/,,
+https://github.com/jgdavey/tslime.vim/,,
+https://github.com/Quramy/tsuquyomi/,,
+https://github.com/folke/twilight.nvim/,,
+https://github.com/leafgarland/typescript-vim/,,
+https://github.com/SirVer/ultisnips/,,
+https://github.com/mbbill/undotree/,,
+https://github.com/chrisbra/unicode.vim/,,
+https://github.com/Shougo/unite.vim/,,
+https://github.com/axieax/urlview.nvim/,,
+https://github.com/vim-scripts/utl.vim/,,
+https://github.com/KabbAmine/vCoolor.vim/,,
+https://github.com/junegunn/vader.vim/,,
+https://github.com/jbyuki/venn.nvim/,,
+https://github.com/vhda/verilog_systemverilog.vim/,,
+https://github.com/vifm/vifm.vim/,,
+https://github.com/dracula/vim/,,dracula-vim
+https://github.com/embark-theme/vim/,,embark-vim
+https://github.com/Konfekt/vim-CtrlXA/,,
+https://github.com/konfekt/vim-DetectSpellLang/,,
+https://github.com/dpelle/vim-LanguageTool/,,
+https://github.com/inkarkat/vim-ReplaceWithRegister/,,
+https://github.com/inkarkat/vim-ReplaceWithSameIndentRegister/,,
+https://github.com/inkarkat/vim-SyntaxRange/,,
+https://github.com/tpope/vim-abolish/,,
+https://github.com/MarcWeber/vim-addon-actions/,,
+https://github.com/MarcWeber/vim-addon-async/,,
+https://github.com/MarcWeber/vim-addon-background-cmd/,,
+https://github.com/MarcWeber/vim-addon-commenting/,,
+https://github.com/MarcWeber/vim-addon-completion/,,
+https://github.com/MarcWeber/vim-addon-errorformats/,,
+https://github.com/MarcWeber/vim-addon-goto-thing-at-cursor/,,
+https://github.com/MarcWeber/vim-addon-local-vimrc/,,
+https://github.com/MarcWeber/vim-addon-manager/,,
+https://github.com/MarcWeber/vim-addon-mru/,,
+https://github.com/MarcWeber/vim-addon-mw-utils/,,
+https://github.com/MarcWeber/vim-addon-nix/,,
+https://github.com/MarcWeber/vim-addon-other/,,
+https://github.com/MarcWeber/vim-addon-php-manual/,,
+https://github.com/MarcWeber/vim-addon-signs/,,
+https://github.com/MarcWeber/vim-addon-sql/,,
+https://github.com/MarcWeber/vim-addon-syntax-checker/,,
+https://github.com/MarcWeber/vim-addon-toggle-buffer/,,
+https://github.com/MarcWeber/vim-addon-xdebug/,,
+https://github.com/junegunn/vim-after-object/,,
+https://github.com/vim-airline/vim-airline/,,
+https://github.com/enricobacis/vim-airline-clock/,,
+https://github.com/vim-airline/vim-airline-themes/,,
+https://github.com/Konfekt/vim-alias/,,
+https://github.com/hsanson/vim-android/,,
+https://github.com/osyo-manga/vim-anzu/,,
+https://github.com/ThePrimeagen/vim-apm/,,
+https://github.com/PeterRincker/vim-argumentative/,,
+https://github.com/FooSoft/vim-argwrap/,,
+https://github.com/haya14busa/vim-asterisk/,,
+https://github.com/hura/vim-asymptote/,,
+https://github.com/907th/vim-auto-save/,,
+https://github.com/vim-autoformat/vim-autoformat/,,
+https://github.com/benizi/vim-automkdir/,,
+https://github.com/gioele/vim-autoswap/,,
+https://github.com/bazelbuild/vim-bazel/,,
+https://github.com/moll/vim-bbye/,,
+https://github.com/nathangrigg/vim-beancount/,,
+https://github.com/ntpeters/vim-better-whitespace/,,
+https://github.com/MattesGroeger/vim-bookmarks/,,
+https://github.com/gyim/vim-boxdraw/,,
+https://github.com/ConradIrwin/vim-bracketed-paste/,,
+https://github.com/mtikekar/vim-bsv/,,
+https://github.com/jeetsukumaran/vim-buffergator/,,
+https://github.com/bling/vim-bufferline/,,
+https://github.com/qpkorr/vim-bufkill/,,
+https://github.com/tpope/vim-capslock/,,
+https://github.com/kristijanhusak/vim-carbon-now-sh/,,
+https://github.com/m-pilia/vim-ccls/,,
+https://github.com/t9md/vim-choosewin/,,
+https://github.com/rhysd/vim-clang-format/,,
+https://github.com/liuchengxu/vim-clap/,,
+https://github.com/guns/vim-clojure-highlight/,,
+https://github.com/guns/vim-clojure-static/,,
+https://github.com/rstacruz/vim-closer/,,
+https://github.com/alvan/vim-closetag/,,
+https://github.com/tomasiser/vim-code-dark/,,
+https://github.com/google/vim-codefmt/,,
+https://github.com/kchmck/vim-coffee-script/,,
+https://github.com/kalbasit/vim-colemak/,,
+https://github.com/altercation/vim-colors-solarized/,,
+https://github.com/flazz/vim-colorschemes/,,
+https://github.com/jonbri/vim-colorstepper/,,
+https://github.com/tpope/vim-commentary/,,
+https://github.com/luan/vim-concourse/,,
+https://github.com/romainl/vim-cool/,,
+https://github.com/octol/vim-cpp-enhanced-highlight/,,
+https://github.com/mhinz/vim-crates/,,
+https://github.com/OrangeT/vim-csharp/,,
+https://github.com/ap/vim-css-color/,,
+https://github.com/jjo/vim-cue/,,
+https://github.com/itchyny/vim-cursorword/,,
+https://github.com/ehamberg/vim-cute-python/,,
+https://github.com/tpope/vim-dadbod/,,
+https://github.com/kristijanhusak/vim-dadbod-completion/,,
+https://github.com/kristijanhusak/vim-dadbod-ui/,,
+https://github.com/sunaku/vim-dasht/,,
+https://github.com/ajmwagar/vim-deus/,,
+https://github.com/ryanoasis/vim-devicons/,,
+https://github.com/blueyed/vim-diminactive/,,
+https://github.com/will133/vim-dirdiff/,,
+https://github.com/justinmk/vim-dirvish/,,
+https://github.com/kristijanhusak/vim-dirvish-git/,,
+https://github.com/tpope/vim-dispatch/,,
+https://github.com/radenling/vim-dispatch-neovim/,,
+https://github.com/jhradilek/vim-docbk/,,
+https://github.com/junegunn/vim-easy-align/,,
+https://github.com/zhou13/vim-easyescape/,,
+https://github.com/neoclide/vim-easygit/,,
+https://github.com/easymotion/vim-easymotion/,,
+https://github.com/xolox/vim-easytags/,,
+https://github.com/justincampbell/vim-eighties/,,
+https://github.com/elixir-editors/vim-elixir/,,
+https://github.com/andys8/vim-elm-syntax/,,
+https://github.com/junegunn/vim-emoji/,,
+https://github.com/tpope/vim-endwise/,,
+https://github.com/vim-erlang/vim-erlang-compiler/,,
+https://github.com/vim-erlang/vim-erlang-omnicomplete/,,
+https://github.com/vim-erlang/vim-erlang-runtime/,,
+https://github.com/vim-erlang/vim-erlang-tags/,,
+https://github.com/tpope/vim-eunuch/,,
+https://github.com/tommcdo/vim-exchange/,,
+https://github.com/terryma/vim-expand-region/,,
+https://github.com/int3/vim-extradite/,,
+https://github.com/wsdjeg/vim-fetch/,,
+https://github.com/tpope/vim-fireplace/,,
+https://github.com/dag/vim-fish/,,
+https://github.com/tpope/vim-flagship/,,
+https://github.com/nvie/vim-flake8/,,
+https://github.com/dcharbon/vim-flatbuffers/,,
+https://github.com/voldikss/vim-floaterm/,,
+https://github.com/rbong/vim-flog/,,
+https://github.com/thosakwe/vim-flutter/,,
+https://github.com/fsharp/vim-fsharp/,,
+https://github.com/thinca/vim-ft-diff_fold/,,
+https://github.com/tommcdo/vim-fubitive/,,
+https://github.com/tpope/vim-fugitive/,,
+https://github.com/maxjacobson/vim-fzf-coauthorship/,,
+https://github.com/ruanyl/vim-gh-line/,,
+https://github.com/raghur/vim-ghost/,,
+https://github.com/mattn/vim-gist/,,
+https://github.com/lambdalisue/vim-gista/,,
+https://github.com/tpope/vim-git/,,
+https://github.com/itchyny/vim-gitbranch/,,
+https://github.com/airblade/vim-gitgutter/,,
+https://github.com/junegunn/vim-github-dashboard/,,
+https://github.com/tikhomirov/vim-glsl/,,
+https://github.com/jamessan/vim-gnupg/,,
+https://github.com/fatih/vim-go/,,
+https://github.com/rhysd/vim-grammarous/,,
+https://github.com/jparise/vim-graphql/,,
+https://github.com/mhinz/vim-grepper/,,
+https://github.com/lifepillar/vim-gruvbox8/,,
+https://github.com/brennanfee/vim-gui-position/,,
+https://github.com/ludovicchabant/vim-gutentags/,,
+https://github.com/takac/vim-hardtime/,,
+https://github.com/chkno/vim-haskell-module-name/,,
+https://github.com/enomsg/vim-haskellConcealPlus/,,
+https://github.com/twinside/vim-haskellconceal/,,
+https://github.com/jvirtanen/vim-hcl/,,
+https://github.com/bitc/vim-hdevtools/,,
+https://github.com/towolf/vim-helm/,,
+https://github.com/RRethy/vim-hexokinase/,,
+https://github.com/jceb/vim-hier/,,
+https://github.com/machakann/vim-highlightedyank/,,
+https://github.com/alx741/vim-hindent/,,
+https://github.com/GEverding/vim-hocon/,,
+https://github.com/Twinside/vim-hoogle/,,
+https://github.com/jonsmithers/vim-html-template-literals/,,
+https://github.com/vim-utils/vim-husk/,,
+https://github.com/w0ng/vim-hybrid/,,
+https://github.com/kristijanhusak/vim-hybrid-material/,,
+https://github.com/noc7c9/vim-iced-coffee-script/,,
+https://github.com/RRethy/vim-illuminate/,,
+https://github.com/nathanaelkane/vim-indent-guides/,,
+https://github.com/michaeljsmith/vim-indent-object/,,
+https://github.com/jeetsukumaran/vim-indentwise/,,
+https://github.com/henrik/vim-indexed-search/,,
+https://github.com/ivanov/vim-ipython/,,
+https://github.com/fisadev/vim-isort/,,
+https://github.com/clojure-vim/vim-jack-in/,,
+https://github.com/mhinz/vim-janah/,,
+https://github.com/artur-shaik/vim-javacomplete2/,,
+https://github.com/pangloss/vim-javascript/,,
+https://github.com/jelera/vim-javascript-syntax/,,
+https://github.com/lepture/vim-jinja/,,
+https://github.com/maksimr/vim-jsbeautify/,,
+https://github.com/heavenshell/vim-jsdoc/,,
+https://github.com/elzr/vim-json/,,
+https://github.com/google/vim-jsonnet/,,
+https://github.com/MaxMEllon/vim-jsx-pretty/,,
+https://github.com/peitalin/vim-jsx-typescript/,,
+https://github.com/knubie/vim-kitty-navigator/,,
+https://github.com/farmergreg/vim-lastplace/,,
+https://github.com/xuhdev/vim-latex-live-preview/,,
+https://github.com/ludovicchabant/vim-lawrencium/,,
+https://github.com/hecal3/vim-leader-guide/,,
+https://github.com/mk12/vim-lean/,,
+https://github.com/ledger/vim-ledger/,,
+https://github.com/lfe-support/vim-lfe/,,
+https://github.com/josa42/vim-lightline-coc/,,
+https://github.com/tommcdo/vim-lion/,,
+https://github.com/tpope/vim-liquid/,,
+https://github.com/embear/vim-localvimrc/,,
+https://github.com/andreshazard/vim-logreview/,,
+https://github.com/mlr-msft/vim-loves-dafny/,,
+https://github.com/natebosch/vim-lsc/,,
+https://github.com/prabirshrestha/vim-lsp/,,
+https://github.com/jackguo380/vim-lsp-cxx-highlight/,,
+https://github.com/tbastos/vim-lua/,,
+https://github.com/google/vim-maktaba/,,
+https://github.com/lambdalisue/vim-manpager/,,
+https://github.com/Yilin-Yang/vim-markbar/,,
+https://github.com/preservim/vim-markdown/,,
+https://github.com/euclio/vim-markdown-composer/,,
+https://github.com/mzlogin/vim-markdown-toc/,,
+https://github.com/andymass/vim-matchup/,,
+https://github.com/samoshkin/vim-mergetool/,,
+https://github.com/idanarye/vim-merginal/,,
+https://github.com/david-a-wheeler/vim-metamath/,,
+https://github.com/xolox/vim-misc/,,
+https://github.com/crusoexia/vim-monokai/,,
+https://github.com/phanviet/vim-monokai-pro/,,
+https://github.com/matze/vim-move/,,
+https://github.com/lifepillar/vim-mucomplete/,,
+https://github.com/terryma/vim-multiple-cursors/,,
+https://github.com/simnalamburt/vim-mundo/,,
+https://github.com/mustache/vim-mustache-handlebars/,,
+https://github.com/tiagofumo/vim-nerdtree-syntax-highlight/,,
+https://github.com/jistr/vim-nerdtree-tabs/,,
+https://github.com/nfnty/vim-nftables/,,
+https://github.com/kana/vim-niceblock/,,
+https://github.com/tommcdo/vim-ninja-feet/,,
+https://github.com/LnL7/vim-nix/,,
+https://github.com/symphorien/vim-nixhash/,,
+https://github.com/noahfrederick/vim-noctu/,,
+https://github.com/fruit-in/vim-nong-theme/,,
+https://github.com/jeffkreeftmeijer/vim-numbertoggle/,,
+https://github.com/tpope/vim-obsession/,,
+https://github.com/ocaml/vim-ocaml/,,
+https://github.com/rakr/vim-one/,,
+https://github.com/petRUShka/vim-opencl/,,
+https://github.com/kana/vim-operator-replace/,,
+https://github.com/rhysd/vim-operator-surround/,,
+https://github.com/kana/vim-operator-user/,,
+https://github.com/jceb/vim-orgmode/,,
+https://github.com/sdiehl/vim-ormolu/,,
+https://github.com/fcpg/vim-osc52/,,
+https://github.com/ojroques/vim-oscyank/,,
+https://github.com/osyo-manga/vim-over/,,
+https://github.com/hashivim/vim-packer/,,
+https://github.com/lambdalisue/vim-pager/,,
+https://github.com/vim-pandoc/vim-pandoc/,,
+https://github.com/vim-pandoc/vim-pandoc-after/,,
+https://github.com/vim-pandoc/vim-pandoc-syntax/,,
+https://github.com/bhurlow/vim-parinfer/,,
+https://github.com/sickill/vim-pasta/,,
+https://github.com/tpope/vim-pathogen/,,
+https://github.com/junegunn/vim-peekaboo/,,
+https://github.com/preservim/vim-pencil/,,
+https://github.com/jparise/vim-phabricator/,,
+https://github.com/justinj/vim-pico8-syntax/,,
+https://github.com/junegunn/vim-plug/,,
+https://github.com/powerman/vim-plugin-AnsiEsc/,,
+https://github.com/sheerun/vim-polyglot/,,
+https://github.com/jakwings/vim-pony/,,
+https://github.com/haya14busa/vim-poweryank/,,
+https://github.com/prettier/vim-prettier/,,
+https://github.com/thinca/vim-prettyprint/,,
+https://github.com/pantharshit00/vim-prisma/,,
+https://github.com/tpope/vim-projectionist/,,
+https://github.com/dhruvasagar/vim-prosession/,,
+https://github.com/uarun/vim-protobuf/,,
+https://github.com/PProvost/vim-ps1/,,
+https://github.com/digitaltoad/vim-pug/,,
+https://github.com/rodjek/vim-puppet/,,
+https://github.com/Vimjas/vim-python-pep8-indent/,,
+https://github.com/romainl/vim-qf/,,
+https://github.com/romainl/vim-qlist/,,
+https://github.com/peterhoeg/vim-qml/,,
+https://github.com/thinca/vim-quickrun/,,
+https://github.com/racer-rust/vim-racer/,,
+https://github.com/wlangstroth/vim-racket/,,
+https://github.com/tpope/vim-ragtag/,,
+https://github.com/tpope/vim-rails/,,
+https://github.com/jordwalke/vim-reasonml/,,
+https://github.com/tpope/vim-repeat/,,
+https://github.com/tpope/vim-rhubarb/,,
+https://github.com/airblade/vim-rooter/,,
+https://github.com/tpope/vim-rsi/,,
+https://github.com/vim-ruby/vim-ruby/,,
+https://github.com/tpope/vim-salve/,,
+https://github.com/machakann/vim-sandwich/,,
+https://github.com/mhinz/vim-sayonara/,7e774f58c5865d9c10d40396850b35ab95af17c5,
+https://github.com/derekwyatt/vim-scala/,,
+https://github.com/thinca/vim-scouter/,,
+https://github.com/tpope/vim-scriptease/,,
+https://github.com/inside/vim-search-pulse/,,
+https://github.com/tpope/vim-sensible/,,
+https://github.com/guns/vim-sexp/,,
+https://github.com/tpope/vim-sexp-mappings-for-regular-people/,,
+https://github.com/itspriddle/vim-shellcheck/,,
+https://github.com/kshenoy/vim-signature/,,
+https://github.com/mhinz/vim-signify/,,
+https://github.com/ivalkeen/vim-simpledb/,,
+https://github.com/junegunn/vim-slash/,,
+https://github.com/tpope/vim-sleuth/,,
+https://github.com/jpalardy/vim-slime/,,
+https://github.com/mzlogin/vim-smali/,,
+https://github.com/t9md/vim-smalls/,,
+https://github.com/psliwka/vim-smoothie/,,
+https://github.com/bohlender/vim-smt2/,,
+https://github.com/justinmk/vim-sneak/,,
+https://github.com/garbas/vim-snipmate/,,
+https://github.com/honza/vim-snippets/,,
+https://github.com/jhradilek/vim-snippets/,,vim-docbk-snippets
+https://github.com/tomlion/vim-solidity/,,
+https://github.com/christoomey/vim-sort-motion/,,
+https://github.com/CoatiSoftware/vim-sourcetrail/,,
+https://github.com/tpope/vim-speeddating/,,
+https://github.com/kbenzie/vim-spirv/,,
+https://github.com/mhinz/vim-startify/,,
+https://github.com/dstein64/vim-startuptime/,,
+https://github.com/axelf4/vim-strip-trailing-whitespace/,,
+https://github.com/nbouscal/vim-stylish-haskell/,,
+https://github.com/alx741/vim-stylishask/,,
+https://github.com/svermeulen/vim-subversive/,,
+https://github.com/tpope/vim-surround/,,
+https://github.com/evanleck/vim-svelte/,,
+https://github.com/machakann/vim-swap/,,
+https://github.com/dhruvasagar/vim-table-mode/,,
+https://github.com/kana/vim-tabpagecd/,,
+https://github.com/tpope/vim-tbone/,,
+https://github.com/hashivim/vim-terraform/,,
+https://github.com/juliosueiras/vim-terraform-completion/,,
+https://github.com/vim-test/vim-test/,,
+https://github.com/glts/vim-textobj-comment/,,
+https://github.com/kana/vim-textobj-entire/,,
+https://github.com/kana/vim-textobj-function/,,
+https://github.com/gibiansky/vim-textobj-haskell/,,
+https://github.com/osyo-manga/vim-textobj-multiblock/,,
+https://github.com/kana/vim-textobj-user/,,
+https://github.com/Julian/vim-textobj-variable-segment/,,
+https://github.com/thinca/vim-themis/,,
+https://github.com/tmux-plugins/vim-tmux/,,
+https://github.com/roxma/vim-tmux-clipboard/,,
+https://github.com/tmux-plugins/vim-tmux-focus-events/,,
+https://github.com/christoomey/vim-tmux-navigator/,,
+https://github.com/milkypostman/vim-togglelist/,,
+https://github.com/cespare/vim-toml/,,
+https://github.com/vimpostor/vim-tpipeline/,,
+https://github.com/bronson/vim-trailing-whitespace/,,
+https://github.com/ianks/vim-tsx/,,
+https://github.com/lumiliet/vim-twig/,,
+https://github.com/sodapopcan/vim-twiggy/,,
+https://github.com/rcarriga/vim-ultest/,,
+https://github.com/arthurxavierx/vim-unicoder/,,
+https://github.com/tpope/vim-unimpaired/,,
+https://github.com/hashivim/vim-vagrant/,,
+https://github.com/tpope/vim-vinegar/,,
+https://github.com/triglav/vim-visual-increment/,,
+https://github.com/mg979/vim-visual-multi/,,
+https://github.com/thinca/vim-visualstar/,,
+https://github.com/ngemily/vim-vp4/,HEAD,
+https://github.com/hrsh7th/vim-vsnip/,,
+https://github.com/hrsh7th/vim-vsnip-integ/,,
+https://github.com/posva/vim-vue/,,
+https://github.com/wakatime/vim-wakatime/,,
+https://github.com/osyo-manga/vim-watchdogs/,,
+https://github.com/jasonccox/vim-wayland-clipboard/,,
+https://github.com/liuchengxu/vim-which-key/,,
+https://github.com/wesQ3/vim-windowswap/,,
+https://github.com/chaoren/vim-wordmotion/,,
+https://github.com/preservim/vim-wordy/,,
+https://github.com/joonty/vim-xdebug/,,
+https://github.com/lyokha/vim-xkbswitch/,,
+https://github.com/mg979/vim-xtabline/,,
+https://github.com/stephpy/vim-yaml/,,
+https://github.com/mindriot101/vim-yapf/,,
+https://github.com/dag/vim2hs/,,
+https://github.com/dominikduda/vim_current_word/,,
+https://github.com/andrep/vimacs/,,
+https://github.com/TaDaa/vimade/,,
+https://github.com/jreybert/vimagit/,,
+https://github.com/gotcha/vimelette/,,
+https://github.com/Shougo/vimfiler.vim/,,
+https://github.com/vimoutliner/vimoutliner/,,
+https://github.com/tex/vimpreviewpandoc/,,
+https://github.com/Shougo/vimproc.vim/,,
+https://github.com/vimsence/vimsence/,,
+https://github.com/Shougo/vimshell.vim/,,
+https://github.com/puremourning/vimspector/,,
+https://github.com/lervag/vimtex/,,
+https://github.com/preservim/vimux/,,
+https://github.com/vimwiki/vimwiki/,,
+https://github.com/vim-scripts/vis/,,
+https://github.com/navicore/vissort.vim/,,
+https://github.com/liuchengxu/vista.vim/,,
+https://github.com/dylanaraps/wal.vim/,,
+https://github.com/mattn/webapi-vim/,,
+https://github.com/folke/which-key.nvim/,,
+https://github.com/gelguy/wilder.nvim/,,
+https://github.com/gcmt/wildfire.vim/,,
+https://github.com/sindrets/winshift.nvim/,,
+https://github.com/wannesm/wmgraphviz.vim/,,
+https://github.com/vim-scripts/wombat256.vim/,,
+https://github.com/lukaszkorecki/workflowish/,,
+https://github.com/tweekmonster/wstrip.vim/,,
+https://github.com/drmingdrmer/xptemplate/,,
+https://github.com/guns/xterm-color-table.vim/,,
+https://github.com/HerringtonDarkholme/yats.vim/,,
+https://github.com/KabbAmine/zeavim.vim/,,
+https://github.com/folke/zen-mode.nvim/,,
+https://github.com/jnurmine/zenburn/,,
+https://github.com/glepnir/zephyr-nvim/,,
+https://github.com/ziglang/zig.vim/,,
+https://github.com/troydm/zoomwintab.vim/,,
+https://github.com/nanotee/zoxide.vim/,,
diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix
index ab5250a48e686..ffe7f9a336a39 100644
--- a/pkgs/applications/editors/vscode/extensions/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/default.nix
@@ -67,6 +67,18 @@ let
         };
       };
 
+      adpyke.codesnap = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "codesnap";
+          publisher = "adpyke";
+          version = "1.3.4";
+          sha256 = "sha256-dR6qODSTK377OJpmUqG9R85l1sf9fvJJACjrYhSRWgQ=";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
       alefragnani.project-manager = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "project-manager";
@@ -554,8 +566,8 @@ let
         mktplcRef = {
           name = "vscode-markdownlint";
           publisher = "DavidAnson";
-          version = "0.46.0";
-          sha256 = "sha256-2FvE+6fnZPtR0At4NjLKSMCbPu8T7o8xtpvYiEjh7ck=";
+          version = "0.47.0";
+          sha256 = "sha256-KtDJo8rhQXkZtJz93E+J7eNiAIcLk4e5qKDLoR3DoGw=";
         };
         meta = with lib; {
           changelog = "https://marketplace.visualstudio.com/items/DavidAnson.vscode-markdownlint/changelog";
@@ -698,8 +710,8 @@ let
         mktplcRef = {
           name = "gitlens";
           publisher = "eamodio";
-          version = "12.0.3";
-          sha256 = "sha256-PHQXfk0JggkEBRflHp+OAUOCVuymCubaszfDCYbpfG0=";
+          version = "12.0.6";
+          sha256 = "sha256-Q8l/GryB9iMhFnu5npUcDjWuImfrmVZF3xvm7nX/77Q=";
         };
         meta = with lib; {
           changelog = "https://marketplace.visualstudio.com/items/eamodio.gitlens/changelog";
@@ -790,8 +802,8 @@ let
         mktplcRef = {
           name = "prettier-vscode";
           publisher = "esbenp";
-          version = "9.3.0";
-          sha256 = "sha256-hJgPjWf7a8+ltjmXTK8U/MwqgIZqBjmcCfHsAk2G3PA=";
+          version = "9.5.0";
+          sha256 = "sha256-L/jW6xAnJ8v9Qq+iyQI8usGr8BoICR+2ENAMGQ05r0A=";
         };
         meta = with lib; {
           changelog = "https://marketplace.visualstudio.com/items/esbenp.prettier-vscode/changelog";
@@ -1123,8 +1135,8 @@ let
         mktplcRef = {
           name = "Ionide-fsharp";
           publisher = "Ionide";
-          version = "5.10.1";
-          sha256 = "sha256-LkWWgyh4khPyUgekVeO8ZzPK+1gTrS8d9Yz6/kHomr8=";
+          version = "6.0.1";
+          sha256 = "sha256-1W1qKnjmyK80np+J6S/nku3QJGypxYnuE0BPw8Onzas=";
         };
         meta = with lib; {
           changelog = "https://marketplace.visualstudio.com/items/Ionide.Ionide-fsharp/changelog";
@@ -1242,8 +1254,8 @@ let
         mktplcRef = {
           name = "vscode-peacock";
           publisher = "johnpapa";
-          version = "4.0.0";
-          sha256 = "1i65w70f0kikah1cx7m0bji6qd800jabfci0xisdqxyzaksg7ysz";
+          version = "4.0.1";
+          sha256 = "sha256-oYXYOamwacgRqv3+ZREJ1vqRlwMz8LpO+wa6CVEEdbI=";
         };
         meta = with lib; {
           license = licenses.mit;
@@ -1466,8 +1478,8 @@ let
         mktplcRef = {
           name = "vscode-docker";
           publisher = "ms-azuretools";
-          version = "1.20.0";
-          sha256 = "sha256-i3gYTP76YEDItG2oXR9pEXuGv0qmyf1Xv6HQvDBEOyg=";
+          version = "1.22.0";
+          sha256 = "sha256-+cY9uLQ4oIk7V/4uCNc6BdIAQCXvPPGeqd0apbDjDos=";
         };
         meta = {
           license = lib.licenses.mit;
@@ -1699,8 +1711,8 @@ let
         mktplcRef = {
           name = "material-icon-theme";
           publisher = "PKief";
-          version = "4.14.1";
-          sha256 = "sha256-OHXi0EfeyKMeFiMU5yg0aDoWds4ED0lb+l6T12XZ3LQ=";
+          version = "4.16.0";
+          sha256 = "sha256-AOHvWoVB26caNgEEnKBhw5Z/tRtaTSeVLkO6Rlc/kqo=";
         };
         meta = {
           license = lib.licenses.mit;
diff --git a/pkgs/applications/editors/vscode/generic.nix b/pkgs/applications/editors/vscode/generic.nix
index d704497b4f0c7..9a4f1b92d41ff 100644
--- a/pkgs/applications/editors/vscode/generic.nix
+++ b/pkgs/applications/editors/vscode/generic.nix
@@ -66,9 +66,9 @@ let
     buildInputs = [ libsecret libXScrnSaver libxshmfence ]
       ++ lib.optionals (!stdenv.isDarwin) ([ at-spi2-atk ] ++ atomEnv.packages);
 
-    runtimeDependencies = lib.optional (stdenv.isLinux) [ (lib.getLib systemd) fontconfig.lib libdbusmenu ];
+    runtimeDependencies = lib.optional stdenv.isLinux [ (lib.getLib systemd) fontconfig.lib libdbusmenu ];
 
-    nativeBuildInputs = [unzip] ++ lib.optionals (!stdenv.isDarwin) [ autoPatchelfHook wrapGAppsHook ];
+    nativeBuildInputs = [ unzip ] ++ lib.optionals stdenv.isLinux [ autoPatchelfHook nodePackages.asar wrapGAppsHook ];
 
     dontBuild = true;
     dontConfigure = true;
@@ -114,12 +114,18 @@ let
       # this is a fix for "save as root" functionality
       packed="resources/app/node_modules.asar"
       unpacked="resources/app/node_modules"
-      ${nodePackages.asar}/bin/asar extract "$packed" "$unpacked"
+      asar extract "$packed" "$unpacked"
       substituteInPlace $unpacked/@vscode/sudo-prompt/index.js \
         --replace "/usr/bin/pkexec" "/run/wrappers/bin/pkexec" \
         --replace "/bin/bash" "${bash}/bin/bash"
       rm -rf "$packed"
 
+      # without this symlink loading JsChardet, the library that is used for auto encoding detection when files.autoGuessEncoding is true,
+      # fails to load with: electron/js2c/renderer_init: Error: Cannot find module 'jschardet'
+      # and the window immediately closes which renders VSCode unusable
+      # see https://github.com/NixOS/nixpkgs/issues/152939 for full log
+      ln -rs "$unpacked" "$packed"
+
       # this fixes bundled ripgrep
       chmod +x resources/app/node_modules/@vscode/ripgrep/bin/rg
     '';
diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix
index a9ab7e8e55dee..f479c6686afee 100644
--- a/pkgs/applications/editors/vscode/vscode.nix
+++ b/pkgs/applications/editors/vscode/vscode.nix
@@ -14,17 +14,17 @@ let
   archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "077a847p8l2yk3dpn8qqwjdch5nqm8a7fxlnwg5xzx892lr6l4ax";
-    x86_64-darwin = "03gbrnkzks4if3mkpwn4yjajj3z9cax0jskhw8pz5n1mibv4kg4p";
-    aarch64-linux = "0xqpc69m5jmm6dyvhlc20bpbr2czmi0pn00jxpf5md8fqxmbvj90";
-    aarch64-darwin = "1zd2s841xpq5fk6bkrbqbzbcyladpp8sp7wx2spkzj1gmbjfzw4a";
-    armv7l-linux = "1swbg3zklixyk3cf0nh0xcwszm9rrvw1caqzmb80lc3c7qx9qx1s";
+    x86_64-linux = "1si0r8nww5m3yn3vzw0pk3nykfvxnlwna4pp11bsli4vqj1ym2nz";
+    x86_64-darwin = "002rkvc8fa7r9x2dsjhkwzmc1sp5mq998frrw5xd6bym0cp4j76l";
+    aarch64-linux = "0w9gjk2a5z8cqlg43jn2r588asymiklm1b28l54gvqp7jawlb0fd";
+    aarch64-darwin = "18h2kk6fcdz38xzyn37brbbj4nbrjgzv9xsz7c7iai8d01vh7s33";
+    armv7l-linux = "16cs2ald40nh76m3fxxfd233hr687dhwbqdkvjz4s6xxwi0rhvwc";
   }.${system};
 in
   callPackage ./generic.nix rec {
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.66.0";
+    version = "1.66.2";
     pname = "vscode";
 
     executableName = "code" + lib.optionalString isInsiders "-insiders";
diff --git a/pkgs/applications/editors/vscode/vscodium.nix b/pkgs/applications/editors/vscode/vscodium.nix
index 0101b896e8cf7..6f42778d31e28 100644
--- a/pkgs/applications/editors/vscode/vscodium.nix
+++ b/pkgs/applications/editors/vscode/vscodium.nix
@@ -13,10 +13,10 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "0dv28i8mxf45n7xj4gzgh4gsx76875nxs4yfqswxij8kzz72vqfn";
-    x86_64-darwin = "0xs4f1ffqcbvzw1v64f9l8i7rflz7h1j5xgjxdz6l0hw0j4aalb2";
-    aarch64-linux = "1fa7g531apigp8k7fxkp2ijmhz5axx7ixzdhlwgbsb80rb2mqhi0";
-    armv7l-linux = "1ry9qm6rk46s0jn7hl30jbjdhi3fshzcs0x9krd9qin7by18hhz3";
+    x86_64-linux = "1i76ix318y6b2dcfnisg13bp5d7nzvcx7zcpl94mkrn974db30pn";
+    x86_64-darwin = "1qk1vykl838vwsffyjpazx7x9ajwxczpgz5vhch16iikfz2vh1vk";
+    aarch64-linux = "13jifiqn2v17d6vwacq6aib1lzyp2021kjdswkp7wpx6ck5lkm21";
+    armv7l-linux = "1zhriscsmfcsagsp2ds0fn316fybs5f2f2r3w5q29jwczgcnlam4";
   }.${system};
 
   sourceRoot = {
@@ -31,7 +31,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.66.0";
+    version = "1.66.2";
     pname = "vscodium";
 
     executableName = "codium";
diff --git a/pkgs/applications/emulators/basiliskii/default.nix b/pkgs/applications/emulators/basiliskii/default.nix
new file mode 100644
index 0000000000000..ec7076db46787
--- /dev/null
+++ b/pkgs/applications/emulators/basiliskii/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, lib, fetchFromGitHub, autoconf, automake, pkg-config, SDL2, gtk2 }:
+stdenv.mkDerivation {
+  pname = "basiliskii";
+  version = "unstable-2022-04-05";
+
+  src = fetchFromGitHub {
+    owner = "kanjitalk755";
+    repo = "macemu";
+    rev = "d4baa318e49a29d7ea5fc71a637191d6c470546f";
+    sha256 = "jBKTC2fIPJ6mSkMABNxcd2ujXJ+duCXw291iz5ZmiVg=";
+  };
+  sourceRoot = "source/BasiliskII/src/Unix";
+  patches = [ ./remove-redhat-6-workaround-for-scsi-sg.h.patch ];
+  nativeBuildInputs = [ autoconf automake pkg-config ];
+  buildInputs = [ SDL2 gtk2 ];
+  preConfigure = ''
+    NO_CONFIGURE=1 ./autogen.sh
+  '';
+  configureFlags = [ "--enable-sdl-video" "--enable-sdl-audio" "--with-bincue" ];
+
+  meta = with lib; {
+    description = "68k Macintosh emulator";
+    homepage = "https://basilisk.cebix.net/";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ quag ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/emulators/basiliskii/remove-redhat-6-workaround-for-scsi-sg.h.patch b/pkgs/applications/emulators/basiliskii/remove-redhat-6-workaround-for-scsi-sg.h.patch
new file mode 100644
index 0000000000000..8535d6227c298
--- /dev/null
+++ b/pkgs/applications/emulators/basiliskii/remove-redhat-6-workaround-for-scsi-sg.h.patch
@@ -0,0 +1,10 @@
+diff --git a/Linux/scsi_linux.cpp b/Linux/scsi_linux.cpp
+--- a/Linux/scsi_linux.cpp
++++ b/Linux/scsi_linux.cpp
+@@ -22,5 +22,5 @@
+ #include <sys/ioctl.h>
+ #include <linux/param.h>
+-#include <linux/../scsi/sg.h>	// workaround for broken RedHat 6.0 /usr/include/scsi
++#include <scsi/sg.h>
+ #include <unistd.h>
+ #include <errno.h>
diff --git a/pkgs/applications/emulators/ares/default.nix b/pkgs/applications/emulators/bsnes/ares/default.nix
index 33a7858455d67..33a7858455d67 100644
--- a/pkgs/applications/emulators/ares/default.nix
+++ b/pkgs/applications/emulators/bsnes/ares/default.nix
diff --git a/pkgs/applications/emulators/ares/fix-ruby.patch b/pkgs/applications/emulators/bsnes/ares/fix-ruby.patch
index 01bd57ebaaddf..01bd57ebaaddf 100644
--- a/pkgs/applications/emulators/ares/fix-ruby.patch
+++ b/pkgs/applications/emulators/bsnes/ares/fix-ruby.patch
diff --git a/pkgs/applications/emulators/bsnes-hd/default.nix b/pkgs/applications/emulators/bsnes/bsnes-hd/default.nix
index 6494185958c29..6494185958c29 100644
--- a/pkgs/applications/emulators/bsnes-hd/default.nix
+++ b/pkgs/applications/emulators/bsnes/bsnes-hd/default.nix
diff --git a/pkgs/applications/emulators/bsnes-hd/macos-copy-app-to-prefix.patch b/pkgs/applications/emulators/bsnes/bsnes-hd/macos-copy-app-to-prefix.patch
index d38efbc99bce1..d38efbc99bce1 100644
--- a/pkgs/applications/emulators/bsnes-hd/macos-copy-app-to-prefix.patch
+++ b/pkgs/applications/emulators/bsnes/bsnes-hd/macos-copy-app-to-prefix.patch
diff --git a/pkgs/applications/emulators/bsnes-hd/macos-replace-sips-with-png2icns.patch b/pkgs/applications/emulators/bsnes/bsnes-hd/macos-replace-sips-with-png2icns.patch
index 85adb33e3ab4f..85adb33e3ab4f 100644
--- a/pkgs/applications/emulators/bsnes-hd/macos-replace-sips-with-png2icns.patch
+++ b/pkgs/applications/emulators/bsnes/bsnes-hd/macos-replace-sips-with-png2icns.patch
diff --git a/pkgs/applications/emulators/higan/001-include-cmath.patch b/pkgs/applications/emulators/bsnes/higan/001-include-cmath.patch
index 67644e656aa79..67644e656aa79 100644
--- a/pkgs/applications/emulators/higan/001-include-cmath.patch
+++ b/pkgs/applications/emulators/bsnes/higan/001-include-cmath.patch
diff --git a/pkgs/applications/emulators/higan/002-sips-to-png2icns.patch b/pkgs/applications/emulators/bsnes/higan/002-sips-to-png2icns.patch
index 0585c8a38c725..0585c8a38c725 100644
--- a/pkgs/applications/emulators/higan/002-sips-to-png2icns.patch
+++ b/pkgs/applications/emulators/bsnes/higan/002-sips-to-png2icns.patch
diff --git a/pkgs/applications/emulators/higan/default.nix b/pkgs/applications/emulators/bsnes/higan/default.nix
index c5f38a040c1fc..c5f38a040c1fc 100644
--- a/pkgs/applications/emulators/higan/default.nix
+++ b/pkgs/applications/emulators/bsnes/higan/default.nix
diff --git a/pkgs/applications/emulators/commanderx16/emulator.nix b/pkgs/applications/emulators/commanderx16/emulator.nix
index 73442215ff1ea..d15c99d355bb9 100644
--- a/pkgs/applications/emulators/commanderx16/emulator.nix
+++ b/pkgs/applications/emulators/commanderx16/emulator.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "x16-emulator";
-  version = "38";
+  version = "40";
 
   src = fetchFromGitHub {
     owner = "commanderx16";
     repo = pname;
     rev = "r${version}";
-    sha256 = "WNRq/m97NpOBWIk6mtxBAKmkxCGWacWjXeOvIhBrkYE=";
+    hash = "sha256-7ZzVd2NJCFNAFrS2cj6bxcq/AzO5VakoFX9o1Ac9egg=";
   };
 
   dontConfigure = true;
@@ -21,8 +21,10 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     runHook preInstall
-    install -D --mode 755 --target-directory $out/bin/ x16emu
-    install -D --mode 444 --target-directory $out/share/doc/${pname} README.md
+
+    install -Dm 755 -t $out/bin/ x16emu
+    install -Dm 444 -t $out/share/doc/${pname} README.md
+
     runHook postInstall
   '';
 
@@ -31,7 +33,7 @@ stdenv.mkDerivation rec {
     description = "The official emulator of CommanderX16 8-bit computer";
     license = licenses.bsd2;
     maintainers = with maintainers; [ AndersonTorres ];
-    platforms = SDL2.meta.platforms;
+    inherit (SDL2.meta) platforms;
   };
 
   passthru = {
diff --git a/pkgs/applications/emulators/commanderx16/rom.nix b/pkgs/applications/emulators/commanderx16/rom.nix
index 5da77ebceefe2..617c0a16b83c5 100644
--- a/pkgs/applications/emulators/commanderx16/rom.nix
+++ b/pkgs/applications/emulators/commanderx16/rom.nix
@@ -2,20 +2,24 @@
 , lib
 , fetchFromGitHub
 , cc65
+, python3
 }:
 
 stdenv.mkDerivation rec {
   pname = "x16-rom";
-  version = "38";
+  version = "40";
 
   src = fetchFromGitHub {
     owner = "commanderx16";
     repo = pname;
     rev = "r${version}";
-    sha256 = "xaqF0ppB7I7ST8Uh3jPbC14uRAb/WH21tHlNeTvYpoI=";
+    hash = "sha256-5oqttuTJiJOUENncOJipAar22OsI1uG3G69m+eYoSh0=";
   };
 
-  nativeBuildInputs = [ cc65 ];
+  nativeBuildInputs = [
+    cc65
+    python3
+  ];
 
   postPatch = ''
     patchShebangs scripts/
@@ -25,8 +29,10 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     runHook preInstall
-    install -D --mode 444 --target-directory $out/share/${pname} build/x16/rom.bin
-    install -D --mode 444 --target-directory $out/share/doc/${pname} README.md
+
+    install -Dm 444 -t $out/share/${pname} build/x16/rom.bin
+    install -Dm 444 -t $out/share/doc/${pname} README.md
+
     runHook postInstall
   '';
 
@@ -35,7 +41,7 @@ stdenv.mkDerivation rec {
     description = "ROM file for CommanderX16 8-bit computer";
     license = licenses.bsd2;
     maintainers = with maintainers; [ AndersonTorres ];
-    platforms = cc65.meta.platforms;
+    inherit (cc65.meta) platforms;
   };
 
   passthru = {
diff --git a/pkgs/applications/emulators/dolphin-emu/master.nix b/pkgs/applications/emulators/dolphin-emu/master.nix
index be3e7f555f8f4..8780975a84ad5 100644
--- a/pkgs/applications/emulators/dolphin-emu/master.nix
+++ b/pkgs/applications/emulators/dolphin-emu/master.nix
@@ -1,8 +1,8 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, cmake
 , wrapQtAppsHook, qtbase, bluez, ffmpeg, libao, libGLU, libGL, pcre, gettext
-, libXrandr, libusb1, lzo, libpthreadstubs, libXext, libXxf86vm, libXinerama
+, libXrandr, libusb1, libpthreadstubs, libXext, libXxf86vm, libXinerama
 , libSM, libXdmcp, readline, openal, udev, libevdev, portaudio, curl, alsa-lib
-, miniupnpc, enet, mbedtls, soundtouch, sfml, writeScript
+, miniupnpc, enet, mbedtls, soundtouch, sfml, xz, writeScript
 , vulkan-loader ? null, libpulseaudio ? null
 
 # - Inputs used for Darwin
@@ -25,8 +25,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     curl ffmpeg libao libGLU libGL pcre gettext libpthreadstubs libpulseaudio
-    libXrandr libXext libXxf86vm libXinerama libSM readline openal libXdmcp lzo
-    portaudio libusb1 libpng hidapi miniupnpc enet mbedtls soundtouch sfml
+    libXrandr libXext libXxf86vm libXinerama libSM readline openal libXdmcp
+    portaudio libusb1 libpng hidapi miniupnpc enet mbedtls soundtouch sfml xz
     qtbase
   ] ++ lib.optionals stdenv.isLinux [
     bluez udev libevdev alsa-lib vulkan-loader
diff --git a/pkgs/applications/emulators/dolphin-emu/primehack.nix b/pkgs/applications/emulators/dolphin-emu/primehack.nix
index 90510d645226f..fdfc6d44ecade 100644
--- a/pkgs/applications/emulators/dolphin-emu/primehack.nix
+++ b/pkgs/applications/emulators/dolphin-emu/primehack.nix
@@ -14,7 +14,6 @@
 , gettext
 , libXrandr
 , libusb1
-, lzo
 , libpthreadstubs
 , libXext
 , libXxf86vm
@@ -34,6 +33,7 @@
 , soundtouch
 , sfml
 , fmt
+, xz
 , vulkan-loader
 , libpulseaudio
 
@@ -81,7 +81,6 @@ stdenv.mkDerivation rec {
     readline
     openal
     libXdmcp
-    lzo
     portaudio
     libusb1
     libpng
@@ -92,6 +91,7 @@ stdenv.mkDerivation rec {
     soundtouch
     sfml
     fmt
+    xz
     qtbase
   ] ++ lib.optionals stdenv.isLinux [
     bluez
diff --git a/pkgs/applications/emulators/flycast/default.nix b/pkgs/applications/emulators/flycast/default.nix
index 67ba4590db62e..fd5123d05fa2b 100644
--- a/pkgs/applications/emulators/flycast/default.nix
+++ b/pkgs/applications/emulators/flycast/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flycast";
-  version = "1.2";
+  version = "1.3";
 
   src = fetchFromGitHub {
     owner = "flyinghead";
     repo = "flycast";
     rev = "v${version}";
-    sha256 = "sha256-MzHAGK++oukIs84OR/l6gBwCJssdi8Iyte5Rtro2+Q0=";
+    sha256 = "sha256-FAHm8Fu/yv2rJvWCY+g50TYH4zOT6rO7F+jTL2T6EOU=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/emulators/mame/0001-Revert-Added-PDF-documentation-to-dist.mak.patch b/pkgs/applications/emulators/mame/0001-Revert-Added-PDF-documentation-to-dist.mak.patch
new file mode 100644
index 0000000000000..cee425eaa93df
--- /dev/null
+++ b/pkgs/applications/emulators/mame/0001-Revert-Added-PDF-documentation-to-dist.mak.patch
@@ -0,0 +1,37 @@
+From 54aebffc4584ee68149d4b5b64ceaa79a82b8427 Mon Sep 17 00:00:00 2001
+From: Thiago Kenji Okada <thiagokokada@gmail.com>
+Date: Sat, 9 Apr 2022 13:16:08 +0100
+Subject: [PATCH] Revert "Added PDF documentation to dist.mak"
+
+This reverts commit c0e93076232e794c919231e4386445d78b2d80b1.
+---
+ dist.mak | 8 +-------
+ 1 file changed, 1 insertion(+), 7 deletions(-)
+
+diff --git a/dist.mak b/dist.mak
+index edbb4cd67cb..c378dfdf708 100644
+--- a/dist.mak
++++ b/dist.mak
+@@ -109,7 +109,7 @@ GEN_FOLDERS := $(addprefix $(STAGEDIR)/,$(CREATED_DIRS))
+ COPY_BINARIES := $(addprefix $(STAGEDIR)/,$(addsuffix $(EXE),$(BINARIES)))
+ COPY_FILES := $(addprefix $(STAGEDIR)/,$(COPIED_FILES))
+ 
+-all: $(COPY_BINARIES) $(COPY_FILES) $(STAGEDIR)/docs/MAME.pdf
++all: $(COPY_BINARIES) $(COPY_FILES)
+ 
+ clean:
+ 	$(SILENT) rm -rf $(STAGEDIR)
+@@ -124,10 +124,4 @@ $(STAGEDIR)/%: $(BINDIR)/% | $(GEN_FOLDERS)
+ $(STAGEDIR)/%: % | $(GEN_FOLDERS)
+ 	$(call COPY,$<,$@)
+ 
+-$(STAGEDIR)/docs/MAME.pdf: docs/build/latex/MAME.pdf | $(GEN_FOLDERS)
+-	$(call COPY,$<,$@)
+-
+-docs/build/latex/MAME.pdf:
+-	$(MAKE) -C docs latexpdf
+-
+ .PHONY: all clean
+-- 
+2.33.1
+
diff --git a/pkgs/applications/emulators/mame/default.nix b/pkgs/applications/emulators/mame/default.nix
index ce3fb3d06aed2..a024433e3edff 100644
--- a/pkgs/applications/emulators/mame/default.nix
+++ b/pkgs/applications/emulators/mame/default.nix
@@ -2,22 +2,34 @@
 , stdenv
 , alsa-lib
 , CoreAudioKit
+, expat
 , fetchFromGitHub
+, flac
 , fontconfig
 , ForceFeedback
+, glm
 , installShellFiles
+, libjpeg
 , libpcap
 , libpulseaudio
 , libXi
 , libXinerama
+, lua5_3
 , makeDesktopItem
 , makeWrapper
 , pkg-config
+, portaudio
+, portmidi
+, pugixml
 , python3
 , qtbase
+, rapidjson
 , SDL2
 , SDL2_ttf
+, utf8proc
 , which
+, writeScript
+, zlib
 }:
 
 let
@@ -33,39 +45,69 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mame";
-  version = "0.239";
+  version = "0.242";
 
   src = fetchFromGitHub {
     owner = "mamedev";
     repo = "mame";
     rev = "mame${builtins.replaceStrings [ "." ] [ "" ] version}";
-    sha256 = "sha256-svclBaFkp4d6db+zWZNvZP8vWIFz/7M5N1M6WseOFEk=";
+    sha256 = "sha256-06iKM9cpjXuNvChQTPjhb9oQptC4KTZEoxzZk8+x3/k=";
   };
 
   hardeningDisable = [ "fortify" ];
-  NIX_CFLAGS_COMPILE = [ "-Wno-error=maybe-uninitialized" "-Wno-error=missing-braces" ];
 
   makeFlags = [
-    "TOOLS=1"
-    "USE_LIBSDL=1"
     "CC=${stdenv.cc.targetPrefix}cc"
     "CXX=${stdenv.cc.targetPrefix}c++"
+    "TOOLS=1"
+    "USE_LIBSDL=1"
+    # "USE_SYSTEM_LIB_ASIO=1"
+    "USE_SYSTEM_LIB_EXPAT=1"
+    "USE_SYSTEM_LIB_FLAC=1"
+    "USE_SYSTEM_LIB_GLM=1"
+    "USE_SYSTEM_LIB_JPEG=1"
+    "USE_SYSTEM_LIB_LUA=1"
+    "USE_SYSTEM_LIB_PORTAUDIO=1"
+    "USE_SYSTEM_LIB_PORTMIDI=1"
+    "USE_SYSTEM_LIB_PUGIXML=1"
+    "USE_SYSTEM_LIB_RAPIDJSON=1"
+    "USE_SYSTEM_LIB_UTF8PROC=1"
+    "USE_SYSTEM_LIB_ZLIB=1"
   ];
 
   dontWrapQtApps = true;
 
   # https://docs.mamedev.org/initialsetup/compilingmame.html
-  buildInputs =
-    [ SDL2 SDL2_ttf qtbase ]
-    ++ lib.optionals stdenv.isLinux [ alsa-lib libpulseaudio libXinerama libXi fontconfig ]
-    ++ lib.optionals stdenv.isDarwin [ libpcap CoreAudioKit ForceFeedback ];
+  buildInputs = [
+    expat
+    zlib
+    flac
+    lua5_3
+    portmidi
+    portaudio
+    utf8proc
+    libjpeg
+    rapidjson
+    pugixml
+    glm
+    SDL2
+    SDL2_ttf
+    qtbase
+  ]
+  ++ lib.optionals stdenv.isLinux [ alsa-lib libpulseaudio libXinerama libXi fontconfig ]
+  ++ lib.optionals stdenv.isDarwin [ libpcap CoreAudioKit ForceFeedback ];
 
   nativeBuildInputs = [ python3 pkg-config which makeWrapper installShellFiles ];
 
-  # by default MAME assumes that paths with stock resources
-  # are relative and that you run MAME changing to
-  # install directory, so we add absolute paths here
   patches = [
+    # MAME is now generating the PDF documentation on its release script since commit:
+    # https://github.com/mamedev/mame/commit/c0e93076232e794c919231e4386445d78b2d80b1
+    # however this needs sphinx+latex to build, and it is available in the website
+    # anyway for those who need it
+    ./0001-Revert-Added-PDF-documentation-to-dist.mak.patch
+    # by default MAME assumes that paths with stock resources
+    # are relative and that you run MAME changing to
+    # install directory, so we add absolute paths here
     ./emuopts.patch
   ];
 
@@ -93,13 +135,21 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = writeScript "mame-update-script" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p curl common-updater-scripts jq
+
+    set -eu -o pipefail
+
+    latest_version=$(curl -s https://api.github.com/repos/mamedev/mame/releases/latest | jq --raw-output .tag_name)
+    update-source-version mame "''${latest_version/mame0/0.}"
+  '';
+
   meta = with lib; {
     description = "Is a multi-purpose emulation framework";
     homepage = "https://www.mamedev.org/";
     license = with licenses; [ bsd3 gpl2Plus ];
     platforms = platforms.unix;
     maintainers = with maintainers; [ thiagokokada ];
-    # macOS needs more time to build
-    timeout = 24 * 3600;
   };
 }
diff --git a/pkgs/applications/emulators/proton-caller/default.nix b/pkgs/applications/emulators/proton-caller/default.nix
index d10c43642325b..22bc7054da388 100644
--- a/pkgs/applications/emulators/proton-caller/default.nix
+++ b/pkgs/applications/emulators/proton-caller/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "proton-caller";
-  version = "2.3.2";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "caverym";
     repo = pname;
     rev = version;
-    sha256 = "sha256-k+cH86atuVoLCQ+I1zu08f4T+y0u8vnjo3VA+Otg+a4=";
+    sha256 = "sha256-eyHFKAGx8du4osoGDsMFzVE/TC/ZMPsx6mrWUPDCLJ4=";
   };
 
-  cargoSha256 = "sha256-rkgg96IdIhVXZ5y/ECUxNPyPV9Nv5XGAtlxAkILry2s=";
+  cargoSha256 = "sha256-/4+r5rvRUqQL8EVIg/22ZytXyE4+SV4UEcXiEw4795U=";
 
   meta = with lib; {
     description = "Run Windows programs with Proton";
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/caverym/proton-caller";
     license = licenses.mit;
     maintainers = with maintainers; [ kho-dialga ];
+    mainProgram = "proton-call";
   };
 }
diff --git a/pkgs/applications/emulators/retroarch/cores.nix b/pkgs/applications/emulators/retroarch/cores.nix
index e0045a3827d18..b553640d144e8 100644
--- a/pkgs/applications/emulators/retroarch/cores.nix
+++ b/pkgs/applications/emulators/retroarch/cores.nix
@@ -1,23 +1,22 @@
 { lib
 , stdenv
-, SDL
 , alsa-lib
 , boost
-, buildPackages
 , bzip2
 , cmake
 , curl
 , fetchFromGitHub
 , ffmpeg
 , fluidsynth
+, gcc10Stdenv
 , gettext
 , hexdump
 , hidapi
 , icu
 , libaio
+, libevdev
 , libGL
 , libGLU
-, libevdev
 , libjpeg
 , libpcap
 , libpng
@@ -32,6 +31,7 @@
 , portaudio
 , python3
 , retroarch
+, SDL
 , sfml
 , snappy
 , udev
@@ -53,17 +53,19 @@ let
     , description
       # Check https://github.com/libretro/libretro-core-info for license information
     , license
+    , stdenvOverride ? stdenv
     , src ? (getCoreSrc core)
     , broken ? false
-    , version ? "unstable-2022-01-21"
+    , version ? "unstable-2022-04-21"
     , platforms ? retroarch.meta.platforms
       # The resulting core file is based on core name
       # Setting `normalizeCore` to `true` will convert `-` to `_` on the core filename
     , normalizeCore ? true
     , ...
     }@args:
-    stdenv.mkDerivation (
+    stdenvOverride.mkDerivation (
       let
+        inherit (stdenvOverride) hostPlatform;
         d2u = if normalizeCore then (lib.replaceChars [ "-" ] [ "_" ]) else (x: x);
       in
       (rec {
@@ -79,12 +81,12 @@ let
             linux = "unix";
             darwin = "osx";
             windows = "win";
-          }.${stdenv.hostPlatform.parsed.kernel.name} or stdenv.hostPlatform.parsed.kernel.name}"
+          }.${hostPlatform.parsed.kernel.name} or hostPlatform.parsed.kernel.name}"
           "ARCH=${{
             armv7l = "arm";
             armv6l = "arm";
             i686 = "x86";
-          }.${stdenv.hostPlatform.parsed.cpu.name} or stdenv.hostPlatform.parsed.cpu.name}"
+          }.${hostPlatform.parsed.cpu.name} or hostPlatform.parsed.cpu.name}"
         ] ++ (args.makeFlags or [ ]);
 
         coreDir = "${placeholder "out"}/lib/retroarch/cores";
@@ -94,9 +96,9 @@ let
 
           mkdir -p $out/bin
           mkdir -p $coreDir
-          mv ${d2u args.core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary} $coreDir
+          mv ${d2u args.core}_libretro${hostPlatform.extensions.sharedLibrary} $coreDir
           makeWrapper ${retroarch}/bin/retroarch $out/bin/retroarch-${core} \
-            --add-flags "-L $coreDir/${d2u core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary} $@"
+            --add-flags "-L $coreDir/${d2u core}_libretro${hostPlatform.extensions.sharedLibrary} $@"
 
           runHook postInstall
         '';
@@ -298,37 +300,11 @@ in
   citra = mkLibRetroCore {
     core = "citra";
     description = "Port of Citra to libretro";
+    stdenvOverride = gcc10Stdenv;
     license = lib.licenses.gpl2Plus;
-    extraNativeBuildInputs = [ cmake pkg-config ];
-    extraBuildInputs = [ libGLU libGL boost ];
-    makefile = "Makefile";
-    cmakeFlags = [
-      "-DENABLE_LIBRETRO=ON"
-      "-DENABLE_QT=OFF"
-      "-DENABLE_SDL2=OFF"
-      "-DENABLE_WEB_SERVICE=OFF"
-      "-DENABLE_DISCORD_PRESENCE=OFF"
-    ];
-    preConfigure = "sed -e '77d' -i externals/cmake-modules/GetGitRevisionDescription.cmake";
-    postBuild = "cd src/citra_libretro";
-  };
-
-  citra-canary = mkLibRetroCore {
-    core = "citra-canary";
-    description = "Port of Citra Canary/Experimental to libretro";
-    license = lib.licenses.gpl2Plus;
-    extraNativeBuildInputs = [ cmake pkg-config ];
-    extraBuildInputs = [ libGLU libGL boost ];
+    extraBuildInputs = [ libGLU libGL boost ffmpeg nasm ];
     makefile = "Makefile";
-    cmakeFlags = [
-      "-DENABLE_LIBRETRO=ON"
-      "-DENABLE_QT=OFF"
-      "-DENABLE_SDL2=OFF"
-      "-DENABLE_WEB_SERVICE=OFF"
-      "-DENABLE_DISCORD_PRESENCE=OFF"
-    ];
-    preConfigure = "sed -e '77d' -i externals/cmake-modules/GetGitRevisionDescription.cmake";
-    postBuild = "cd src/citra_libretro";
+    makeFlags = [ "HAVE_FFMPEG_STATIC=0" ];
   };
 
   desmume = mkLibRetroCore {
@@ -383,6 +359,7 @@ in
     core = "dosbox";
     description = "Port of DOSBox to libretro";
     license = lib.licenses.gpl2Only;
+    stdenvOverride = gcc10Stdenv;
   };
 
   eightyone = mkLibRetroCore {
@@ -476,11 +453,9 @@ in
     description = "Port of Hatari to libretro";
     license = lib.licenses.gpl2Only;
     extraBuildInputs = [ SDL zlib ];
-    extraNativeBuildInputs = [ cmake which ];
-    dontUseCmakeConfigure = true;
+    extraNativeBuildInputs = [ which ];
     dontConfigure = true;
     makeFlags = [ "EXTERNAL_ZLIB=1" ];
-    depsBuildBuild = [ buildPackages.stdenv.cc ];
   };
 
   mame = mkLibRetroCore {
@@ -488,7 +463,6 @@ in
     description = "Port of MAME to libretro";
     license = with lib.licenses; [ bsd3 gpl2Plus ];
     extraBuildInputs = [ alsa-lib libGLU libGL portaudio python3 xorg.libX11 ];
-    makefile = "Makefile.libretro";
   };
 
   mame2000 = mkLibRetroCore {
@@ -619,7 +593,6 @@ in
     src = getCoreSrc core;
     description = "Neko Project II kai libretro port";
     license = lib.licenses.mit;
-    makefile = "Makefile.libretro";
     makeFlags = [
       # See https://github.com/AZO234/NP2kai/tags
       "NP2KAI_VERSION=rev.22"
diff --git a/pkgs/applications/emulators/retroarch/default.nix b/pkgs/applications/emulators/retroarch/default.nix
index 2c49874e54468..e9aa7d80d57fc 100644
--- a/pkgs/applications/emulators/retroarch/default.nix
+++ b/pkgs/applications/emulators/retroarch/default.nix
@@ -35,11 +35,11 @@
 }:
 
 let
-  version = "1.10.0";
+  version = "1.10.3";
   libretroCoreInfo = fetchFromGitHub {
     owner = "libretro";
     repo = "libretro-core-info";
-    sha256 = "sha256-3j7fvcfbgyk71MmbUUKYi+/0cpQFNbYXO+DMDUjDqkQ=";
+    sha256 = "sha256-wIIMEWrria8bZe/rcoJwDA9aCMWwbkDQFyEU80TZXFQ=";
     rev = "v${version}";
   };
   runtimeLibs = lib.optional withVulkan vulkan-loader
@@ -52,13 +52,13 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "libretro";
     repo = "RetroArch";
-    sha256 = "sha256-bpTSzODVRKRs1OW6JafjbU3e/AqdQeGzWcg1lb9SIyo=";
+    sha256 = "sha256-nAv1yv0laqlOmB8UUkK5wSYy/ySqXloEErm+yV30bbA=";
     rev = "v${version}";
   };
 
   patches = [
-    ./0001-Disable-menu_show_core_updater.patch
-    ./0002-Use-fixed-paths-on-libretro_info_path.patch
+    ./disable-menu_show_core_updater.patch
+    ./use-fixed-paths-on-libretro_info_path.patch
   ];
 
   postPatch = ''
@@ -104,10 +104,30 @@ stdenv.mkDerivation rec {
   '' + lib.optionalString (runtimeLibs != [ ]) ''
     wrapProgram $out/bin/retroarch \
       --prefix LD_LIBRARY_PATH ':' ${lib.makeLibraryPath runtimeLibs}
+  '' + lib.optionalString stdenv.isDarwin ''
+    # https://github.com/libretro/RetroArch/blob/master/retroarch-apple-packaging.sh
+    app=$out/Applications/RetroArch.app
+    mkdir -p $app/Contents/MacOS
+    cp -r pkg/apple/OSX/* $app/Contents
+    cp $out/bin/retroarch $app/Contents/MacOS
+    # FIXME: using Info_Metal.plist results in input not working
+    # mv $app/Contents/Info_Metal.plist $app/Contents/Info.plist
+
+    substituteInPlace $app/Contents/Info.plist \
+      --replace '${"\${EXECUTABLE_NAME}"}' 'RetroArch' \
+      --replace '$(PRODUCT_BUNDLE_IDENTIFIER)' 'com.libretro.RetroArch' \
+      --replace '${"\${PRODUCT_NAME}"}' 'RetroArch' \
+      --replace '${"\${MACOSX_DEPLOYMENT_TARGET}"}' '10.13'
+
+    cp media/retroarch.icns $app/Contents/Resources/
   '';
 
   preFixup = "rm $out/bin/retroarch-cg2glsl";
 
+  # Workaround for the following error affecting newer versions of Clang:
+  # ./config.def.h:xxx:x: error: 'TARGET_OS_TV' is not defined, evaluates to 0 [-Werror,-Wundef-prefix=TARGET_OS_]
+  NIX_CFLAGS_COMPILE = lib.optional stdenv.cc.isClang [ "-Wno-undef-prefix" ];
+
   meta = with lib; {
     homepage = "https://libretro.com";
     description = "Multi-platform emulator frontend for libretro cores";
@@ -115,8 +135,5 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     changelog = "https://github.com/libretro/RetroArch/blob/v${version}/CHANGES.md";
     maintainers = with maintainers; [ MP2E edwtjo matthewbauer kolbycrouch thiagokokada ];
-    # FIXME: exits with error on macOS:
-    # No Info.plist file in application bundle or no NSPrincipalClass in the Info.plist file, exiting
-    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/applications/emulators/retroarch/disable-menu-show-core-updater.patch b/pkgs/applications/emulators/retroarch/disable-menu-show-core-updater.patch
deleted file mode 100644
index 34fea554ef71e..0000000000000
--- a/pkgs/applications/emulators/retroarch/disable-menu-show-core-updater.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/retroarch.cfg b/retroarch.cfg
-index cdcb199c9f..ab72f3920f 100644
---- a/retroarch.cfg
-+++ b/retroarch.cfg
-@@ -681,7 +681,7 @@
- # menu_show_online_updater = true
- 
- # If disabled, will hide the ability to update cores (and core info files) inside the menu.
--# menu_show_core_updater = true
-+menu_show_core_updater = false
- 
- # If disabled, the libretro core will keep running in the background when we
- # are in the menu.
diff --git a/pkgs/applications/emulators/retroarch/0001-Disable-menu_show_core_updater.patch b/pkgs/applications/emulators/retroarch/disable-menu_show_core_updater.patch
index 75018dc8c4d1e..427cb4871dc96 100644
--- a/pkgs/applications/emulators/retroarch/0001-Disable-menu_show_core_updater.patch
+++ b/pkgs/applications/emulators/retroarch/disable-menu_show_core_updater.patch
@@ -1,7 +1,7 @@
 From 546b343294209abbb193883ab76b679b7f99c6d3 Mon Sep 17 00:00:00 2001
 From: Thiago Kenji Okada <thiagokokada@gmail.com>
 Date: Sat, 20 Nov 2021 16:03:50 -0300
-Subject: [PATCH 1/2] Disable "menu_show_core_updater"
+Subject: [PATCH] Disable "menu_show_core_updater"
 
 ---
  retroarch.cfg | 2 +-
diff --git a/pkgs/applications/emulators/retroarch/hashes.json b/pkgs/applications/emulators/retroarch/hashes.json
index 1280f25047d89..80e4e278c9451 100644
--- a/pkgs/applications/emulators/retroarch/hashes.json
+++ b/pkgs/applications/emulators/retroarch/hashes.json
@@ -2,8 +2,8 @@
     "atari800": {
         "owner": "libretro",
         "repo": "libretro-atari800",
-        "rev": "478a8ec99a7f8436a39d5ac193c5fe313233ee7b",
-        "sha256": "LJpRegJVR2+sS1UmTTpVest0rMrNDBMXmj/jRFVglWI="
+        "rev": "beab30e7ea10b7ed14d0514064f47d16f76cd995",
+        "sha256": "r9MsnasNhhYdFyr2VHJXkTXssB5U00JW6wN/+i+SNUk="
     },
     "beetle-gba": {
         "owner": "libretro",
@@ -14,62 +14,62 @@
     "beetle-lynx": {
         "owner": "libretro",
         "repo": "beetle-lynx-libretro",
-        "rev": "8930e88a4342945c023cbf713031a65de11a8e75",
-        "sha256": "bg/a+9ZJNTUIuEHKrFIss8sia3JWMWXIXbxha5qKVeI="
+        "rev": "de0d520d679cb92767876d4e98da908b1ea6a2d6",
+        "sha256": "BszU5bnlHBOwQSZOM9P4WIP863rS5RluNWvGBFxqzYs="
     },
     "beetle-ngp": {
         "owner": "libretro",
         "repo": "beetle-ngp-libretro",
-        "rev": "f7c393184e5228c3d3807ee74c951c4c549107d8",
-        "sha256": "7vki8VkwOzxwMZcUxekg1DFSskV7VNQ1SRaU3M1xHZ0="
+        "rev": "facf8e1f5440c5d289258ee3c483710f3bf916fb",
+        "sha256": "vDKDt7MvCB9XQYP291cwcEPDxfNIVgNSWtBYz9PVgcw="
     },
     "beetle-pce-fast": {
         "owner": "libretro",
         "repo": "beetle-pce-fast-libretro",
-        "rev": "0f43fd4dc406e7da6bbdc13b6eb1c105d6072f8a",
-        "sha256": "u1lOgXEYuGAF4sOLdsBzcA4/A5Yz1b82TjFBiM57yE4="
+        "rev": "e8801687f232a6f8828b3ff5dadbc9fe1b0076fc",
+        "sha256": "YM+URLnMqsdmk/5yqCg8U4mPpgtmj5qne2CrbTpTeN8="
     },
     "beetle-pcfx": {
         "owner": "libretro",
         "repo": "beetle-pcfx-libretro",
-        "rev": "6d2b11e17ad5a95907c983e7c8a70e75508c2d41",
-        "sha256": "WG2YpCYdL/MxW5EbiP2+1VtAjbX7yYDIcLXhb+YySI4="
+        "rev": "bfc0954e14b261a04dcf8dbe0df8798f16ae3f3c",
+        "sha256": "XzCb1lZFYgsg+3eQ1OqyycNxCgLtZFA30rno3ytdnoM="
     },
     "beetle-psx": {
         "owner": "libretro",
         "repo": "beetle-psx-libretro",
-        "rev": "297970e4ff080ea80a5670209aeea4fde8059020",
-        "sha256": "6kZher3/+5ywXyC3n9R9JVA4IVLZBaSfAcWEKp2SsDE="
+        "rev": "5a24d54d30dd00d817d267cf92fd5b3f4640928f",
+        "sha256": "uG1BhElNW75PnfM+rEYfbl97iwRT89hnl84yvlgx6fg="
     },
     "beetle-saturn": {
         "owner": "libretro",
         "repo": "beetle-saturn-libretro",
-        "rev": "e6ba71f8bcc647b646d94dec812b24d00c41cf3f",
-        "sha256": "tDbV+CsDr4bowBbJ/C8J9scfCryTAXxz58pGaUHU5yU="
+        "rev": "dd18f9c477106263b3b7b050f4970d331ff7b23a",
+        "sha256": "RN5dmORtNOjIklSz/n11lz37bZ4IcPD7cyRcBGS4Oi8="
     },
     "beetle-snes": {
         "owner": "libretro",
         "repo": "beetle-bsnes-libretro",
-        "rev": "bc867656d7438aaffc6818b3b92350587bc78a47",
-        "sha256": "TyUCRGK+uyXowDjXW9/4m+zL8Vh/3GGsX1eznrTCbAg="
+        "rev": "d770563fc3c4bd9abb522952cefb4aa923ba0b91",
+        "sha256": "zHPtfgp9hc8Q4gXJ5VgfJLWLeYjCsQhkfU1T5RM7AL0="
     },
     "beetle-supergrafx": {
         "owner": "libretro",
         "repo": "beetle-supergrafx-libretro",
-        "rev": "7bae6fb1a238f1e66b129c7c70c7cb6dbdc09fa1",
-        "sha256": "OAJ86XrwjDrgCjrk0RHMn8sHYaJFhJhLaQnhaEVXN38="
+        "rev": "59991a98c232b1a8350a9d67ac554c5b22771d3c",
+        "sha256": "zv3dAPWrj6hkNaFQ5vUKm5Orcrb2XO48WSkAFiAVUO0="
     },
     "beetle-vb": {
         "owner": "libretro",
         "repo": "beetle-vb-libretro",
-        "rev": "aa77198c6c60b935503b5ea2149b8ff7598344da",
-        "sha256": "ShsMYc2vjDoiN1yCCoSl91P5ecYJDj/V+VWUYuYVxas="
+        "rev": "246555f8ed7e0b9e5748b2ee2ed6743187c61393",
+        "sha256": "96lQlDqx2bvFeovqGGkemxqS2zlHw92O6YeTEGlgf34="
     },
     "beetle-wswan": {
         "owner": "libretro",
         "repo": "beetle-wswan-libretro",
-        "rev": "5717c101b314f64d4c384c23b1934d09fcbf82bb",
-        "sha256": "Nfezb6hja1qHv1fMGU9HMbbb56GHAfe/zIgRqrzz334="
+        "rev": "d1fb3f399a2bc16b9ad0f2e8c8ba9f7051cd26bd",
+        "sha256": "p9mJv7zBFjNh1sh5iAjBZzxP6k8ydUNDXLQIjHl9doQ="
     },
     "blastem": {
         "owner": "libretro",
@@ -80,14 +80,14 @@
     "bluemsx": {
         "owner": "libretro",
         "repo": "bluemsx-libretro",
-        "rev": "5dfdb75106e10ef8bc21b8bcea1432ecbd590b2a",
-        "sha256": "0D0xufIt3qmQ+/UjyWynoLyLDSza8cTrFp3UwGWBXko="
+        "rev": "92d0c41b4973854114c7b2d06ab727a266d404c5",
+        "sha256": "dL4k+zG8L4KK4lwf9eXPVGk/u5xQn2htIEpoKyj9kQI="
     },
     "bsnes": {
         "owner": "libretro",
         "repo": "bsnes-libretro",
-        "rev": "1b2987ab1e9caf5c8d7550da01ffa08edff2f128",
-        "sha256": "l6Jvn0ZgFaKSWjiV2bN9aemxLyfnNEQFc+HS1/MuiaY="
+        "rev": "26c583e1c5d09253b6c61e2b9d418e8758eef632",
+        "sha256": "Qa0ScFHcEgBUoWouNoW4JINZ2aHjNATndxhcwKw476Q="
     },
     "bsnes-hd": {
         "owner": "DerKoun",
@@ -98,152 +98,141 @@
     "bsnes-mercury": {
         "owner": "libretro",
         "repo": "bsnes-mercury",
-        "rev": "d232c6ea90552f5921fec33a06626f08d3e18b24",
-        "sha256": "fpl7hmqz+Ca+9ZeM6E1JSikbiu+NJUU8xXtyl6Dd9Gg="
+        "rev": "4ba6d8d88e57d3193d95e1bcf39e8d31121f76d4",
+        "sha256": "w2MVslgRlxW4SMzgcXP4gXr9A8B07N7LNrB1LXzk1Zk="
     },
     "citra": {
         "owner": "libretro",
         "repo": "citra",
-        "rev": "b1959d07a340bfd9af65ad464fd19eb6799a96ef",
-        "sha256": "bwnYkMvbtRF5bGZRYVtMWxnCu9P45qeX4+ntOj9eRds=",
-        "fetchSubmodules": true,
-        "leaveDotGit": true,
-        "deepClone": true
-    },
-    "citra-canary": {
-        "owner": "libretro",
-        "repo": "citra",
-        "rev": "5401990a9be46e4497abc92db3d5f2042674303d",
-        "sha256": "JKKJBa840i7ESwMrB5tKamCBmrYvvoEUdibqxkWg5Gc=",
-        "fetchSubmodules": true,
-        "leaveDotGit": true,
-        "deepClone": true
+        "rev": "44e01f99016008eff18bc7a28234d1098382358d",
+        "sha256": "vIrUStv+VM8pYeznnWSVBRfSA71/B7VIY7B/syymGzE=",
+        "fetchSubmodules": true
     },
     "desmume": {
         "owner": "libretro",
         "repo": "desmume",
-        "rev": "7ea0fc96804fcd9c8d33e8f76cf64b1be50cc5ea",
-        "sha256": "4S/CirRVOBN6PVbato5X5fu0tBn3Fu5FEAbdf3TBqng="
+        "rev": "5d0ae2be2c9fb6362af528b3722e81323318eb9f",
+        "sha256": "4bJ6fLZ+fV7SnZ71YT3JFcXFOgmskNUCmCHwc2QNl0A="
     },
     "desmume2015": {
         "owner": "libretro",
         "repo": "desmume2015",
-        "rev": "cd89fb7c48c735cb321311fbce7e6e9889dda1ce",
-        "sha256": "9Ou/n6pxRjJOp/Ybpyg4+Simosj2X26kLZCMEqeVL6U="
+        "rev": "af397ff3d1f208c27f3922cc8f2b8e08884ba893",
+        "sha256": "kEb+og4g7rJvCinBZKcb42geZO6W8ynGsTG9yqYgI+U="
     },
     "dolphin": {
         "owner": "libretro",
         "repo": "dolphin",
-        "rev": "3b19e6d1781584f3e1fd2922b48b8ae6b3bcb686",
-        "sha256": "EcgJhkMzdZfYRwSpU1OcsJqQyq4V8dq5PndVufZFy7k="
+        "rev": "6a0b6ee8a4d5363e669f5faf43abc8f17e4278a8",
+        "sha256": "TeeHnttGmCeOTDTK/gJM+RpusjDDndapZAa3T+oLiq0="
     },
     "dosbox": {
         "owner": "libretro",
         "repo": "dosbox-libretro",
-        "rev": "aa71b67d54eaaf9e41cdd3cb5153d9cff0ad116e",
-        "sha256": "L0Y67UROjldnXUlLQ+Xbd7RHLb96jDxlB/k+LR9Kbas="
+        "rev": "74cd17ed0ff810ff78cb8c1f1e45513bfe8a0f32",
+        "sha256": "0PIloW7j/87asDJ8IDw4r3r4muxNF+RbvkIRPLZQvRc="
     },
     "eightyone": {
         "owner": "libretro",
         "repo": "81-libretro",
-        "rev": "86d7d5afe98f16006d4b1fdb99d281f1d7ea6b2f",
-        "sha256": "QN7anzqv1z8SgY8dlkjr8Ns7reGWc7hTneiRmorXZSk="
+        "rev": "2e34567a320cba27b9162b1776db4de3cdb7cf03",
+        "sha256": "vjrHRLzc9Fy0MwV9d+LlcJTGJfVsRauEig8R+erBtfw="
     },
     "fbalpha2012": {
         "owner": "libretro",
         "repo": "fbalpha2012",
-        "rev": "23f98fc7cf4f2f216149c263cf5913d2e28be8d4",
-        "sha256": "dAInW6tTV7oXcPhKMnHWcmQaWQCTqRrYHD2yuaI1I1w="
+        "rev": "7f8860543a81ba79c0e1ce1aa219af44568c628a",
+        "sha256": "r1lH+CR+nVRCPkVo0XwLi35/ven/FEkNhWUTA6cUVxc="
     },
     "fbneo": {
         "owner": "libretro",
         "repo": "fbneo",
-        "rev": "4ecf2782a4eee042d1e126d1671e5231b6437b6e",
-        "sha256": "15MYI03r45mmRsXCwzWnjfBdtzSaHLp7DfmcACQFTvU="
+        "rev": "e4625a196b9232ba93a156e3a5164aa11193f20a",
+        "sha256": "/5JmwuLWWBQWXnqCMjKzOC2XG6wo5a6xgQOYX1P1zcw="
     },
     "fceumm": {
         "owner": "libretro",
         "repo": "libretro-fceumm",
-        "rev": "eb06d17e7912780a3ee117ae73bc50c3948c761c",
-        "sha256": "aBqskJtK1bFBjwaoo9hilr33fyAWsdj5+hFC3WY3sKk="
+        "rev": "b3c35b6515b2b6a789c589f976a4a323ebebe3eb",
+        "sha256": "zwFQGQyO0Vj/IBM1k8JB3D/jB3OwDuGdSHLavr8Fxgw="
     },
     "flycast": {
         "owner": "libretro",
         "repo": "flycast",
-        "rev": "0d8c6a2e717c002bc76ce26a152353b004fb15e7",
-        "sha256": "t2RGHAyYXeHVqTqqhayOUWx/msFN9q/Z9P2wXJUtQTI="
+        "rev": "4c293f306bc16a265c2d768af5d0cea138426054",
+        "sha256": "9IxpRBY1zifhOebLJSDMA/wiOfcZj+KOiPrgmjiFxvo="
     },
     "fmsx": {
         "owner": "libretro",
         "repo": "fmsx-libretro",
-        "rev": "dfcda056896576c6a1c75c002a82d0e6c1160ccc",
-        "sha256": "9ANZ1suAQcYOhqSchQ20Yuqvgw06j5Sd3Z1fjrp2UFc="
+        "rev": "11fa9f3c08cde567394c41320ca76798c2c64670",
+        "sha256": "1u5c5oDIjjXEquh6UBv2H1F/Ln7h44DTF1ohDG0Qnww="
     },
     "freeintv": {
         "owner": "libretro",
         "repo": "freeintv",
-        "rev": "d58caf23ed1438a1db58f8d6ac24ca521b411d3b",
-        "sha256": "nUV+A3Zh66M1K5NDK0ksNF5H1HS3AQdeYLaGfaA34n4="
+        "rev": "295dd3c9e4b2d4f652f6a6a904afbe90a8187068",
+        "sha256": "tz0X6AfD7IL3Y50vjgSO5r6sDhu++6Gj8Rp7de5OqMk="
     },
     "gambatte": {
         "owner": "libretro",
         "repo": "gambatte-libretro",
-        "rev": "79bb2e56d034c30d8dcac02b6c34a59ec8fe91bc",
-        "sha256": "H+Hkeep18whaSYbyG8DcaJqsVVu7DEX9T28pkfXfyCg="
+        "rev": "15536214cdce31894d374b2ffa2494543057082b",
+        "sha256": "cTSoK6rezRajnuWPt7WkYn3SWL0sTu7h5X3Ig1KukDA="
     },
     "genesis-plus-gx": {
         "owner": "libretro",
         "repo": "Genesis-Plus-GX",
-        "rev": "88c9ad000ba553b9c819d9eb259f741fabd877bb",
-        "sha256": "8ZCMq8/sk5TqwTNWMfDevZHRPSOM1PJ57kiZZ7qfQxA="
+        "rev": "7520ac8aae7b08262c0472e724e6ef0bfe41d285",
+        "sha256": "wKcO/dulgZKgXTuHdcQvfSrfxSI5UA0az6qMLtP4K6g="
     },
     "gpsp": {
         "owner": "libretro",
         "repo": "gpsp",
-        "rev": "e554360dd3ed283696fc607877024a219248b735",
-        "sha256": "ImsqB89XmjF8nvs7j8IZVvFltgZRYvF2L7LTcJG/xCU="
+        "rev": "f0f0b31f9ab95946965b75fed8d31e19290f3d43",
+        "sha256": "aiegBSpQDyXzVkyWuUpI66QvA1tqS8PQ8+75U89K10A="
     },
     "gw": {
         "owner": "libretro",
         "repo": "gw-libretro",
-        "rev": "0f1ccca156388880bf4507ad44741f80945dfc6f",
-        "sha256": "BVpx8pL224J2u9W6UDrxzfEv4qIsh6wrf3bDdd1R850="
+        "rev": "d08a08154ce8ed8e9de80582c108f157e4c6b226",
+        "sha256": "PWd/r4BBmhiNqJdV6OaXHr4XCdR1GyVipq3zvyBcqEs="
     },
     "handy": {
         "owner": "libretro",
         "repo": "libretro-handy",
-        "rev": "3b02159ba32aa37c1b93d7f7eac56b28e3715645",
-        "sha256": "mBKK+pdWgkxYkV4OOiBrlWbLAMugDX0fd6QRh0D7JYU="
+        "rev": "517bb2d02909271836604c01c8f09a79ad605297",
+        "sha256": "Igf/OvmnCzoWjCZBoep7T0pXsoBKq3NJpXlYhE7nr3s="
     },
     "hatari": {
         "owner": "libretro",
         "repo": "hatari",
-        "rev": "79d128888ca3efdd27d639a35edf72a9bc81a798",
-        "sha256": "du2xORgAXTSQArqNuFa5gjticgZ+weqySFHVz2Y2qzI="
+        "rev": "e5e36a5262cfeadc3d1c7b411b7a70719c4f293c",
+        "sha256": "T4I3NVEMBKr5HLs60x48VNRl2TMnhqvaF+LTtYQ7qdU="
     },
     "mame": {
         "owner": "libretro",
         "repo": "mame",
-        "rev": "2f9c793a77222ae46266c71f64d491cf7870dc1e",
-        "sha256": "WAhm6QMMVbnuSIK4PW7Ek+AAkMs7s95gGb6ERzlon0w="
+        "rev": "b7dd999590717638ceade2e24d16d63147aa12ad",
+        "sha256": "QgENNjykhO+WSxAb//J+R7QP3/rZnxqv7sarO4eBYuc="
     },
     "mame2000": {
         "owner": "libretro",
         "repo": "mame2000-libretro",
-        "rev": "4793742b457945afb74053c8a895e6ff0b36b033",
-        "sha256": "DA9fZTic/jlYzSAIiOjfhohyEyQZiBNdIa8YCZoKZNs="
+        "rev": "dd9d6612c29bf5b29bc2f94cab2d43fe3dcd69ee",
+        "sha256": "X0fP0bNBk2hqXVdRspylLIjZO563aMXkyX4qgx/3Vr8="
     },
     "mame2003": {
         "owner": "libretro",
         "repo": "mame2003-libretro",
-        "rev": "dbda6ddacdd8962cfea25000421dba398e551aef",
-        "sha256": "RSL3iZZEJCxOtsJqjnM5ZiT0yM2nAgg/Ujq6FBLMHkk="
+        "rev": "3eb27d5f161522cf873c0642f14b8e2267b3820f",
+        "sha256": "TQ4FwboKeEP58hOL2hYs4OYes2o0wSKFSp4CqZV5r6I="
     },
     "mame2003-plus": {
         "owner": "libretro",
         "repo": "mame2003-plus-libretro",
-        "rev": "9c0c954f0f88730f44abdd4d414691fef6b1cd7c",
-        "sha256": "NLdHc0VuZhqQhAzv+8kipc0mhqT2BNaJeLYZUx7DwRU="
+        "rev": "e5ee29ecb8182952f861f22516e5791625fe2671",
+        "sha256": "YunfAITR/Etm8lvEab/HigZoBz+ayJQ7ezjItWI/HvE="
     },
     "mame2010": {
         "owner": "libretro",
@@ -260,26 +249,26 @@
     "mame2016": {
         "owner": "libretro",
         "repo": "mame2016-libretro",
-        "rev": "bcff8046328da388d100b1634718515e1b15415d",
-        "sha256": "XxnX39+0VUbG9TF8+wFEFVxHCm2rzrJsIQryyNsF6zU="
+        "rev": "01058613a0109424c4e7211e49ed83ac950d3993",
+        "sha256": "IsM7f/zlzvomVOYlinJVqZllUhDfy4NNTeTPtNmdVak="
     },
     "melonds": {
         "owner": "libretro",
         "repo": "melonds",
-        "rev": "0053daa700018657bf2e47562b3b4eb86f9b9d03",
-        "sha256": "K6ZYuk7cE+ioq1rLRyAKNQxddCYIOXLU5SXT7sYgGnc="
+        "rev": "e93ec3e462d3dfc1556781510a3cee113f02abb2",
+        "sha256": "NDrsqX17OKw1/PIZSrWAxhVl+Qk/xG7lCnr6Ts+7YJ4="
     },
     "mesen": {
         "owner": "libretro",
         "repo": "mesen",
-        "rev": "094d82bf724448426acbaad45e83bc38994e32f6",
-        "sha256": "9+AqZRv8lugNNa+ZZzIPJNO87J1aBUEiOggL8aYno1M="
+        "rev": "bb9ea02eba28682986044a6f49329ec533aa26ba",
+        "sha256": "G2NQDpByvI9RFEwrRiKXcMnPtVtqpvEoZgk7/fk5qCU="
     },
     "mesen-s": {
         "owner": "libretro",
         "repo": "mesen-s",
-        "rev": "42eb0e8ad346608dae86feb8a04833d16ad21541",
-        "sha256": "q6zeoNiZtFy8ZYls9/E+O7o9BYTcVcmYjbJA48qiraU="
+        "rev": "b0b53409eecb696fb13f411ffde72e8f576feb09",
+        "sha256": "lDHyeIsVsI5+ZK8EJI50alrFuu0uJmxscda5bR1UmQQ="
     },
     "meteor": {
         "owner": "libretro",
@@ -290,39 +279,39 @@
     "mgba": {
         "owner": "libretro",
         "repo": "mgba",
-        "rev": "43da6e1d54ad0395f474346db88fe59a4c0aa451",
-        "sha256": "JxiWIBQi1fZoBV2lvx2r7iIvlQm0BYuJFz0TsxngUT8="
+        "rev": "5d48e0744059ebf38a4e937b256ffd5df4e0d103",
+        "sha256": "OYw2nlldFx5B7WX0E8Gbgfp1j4h65ZxyKDS9tneHXQg="
     },
     "mupen64plus": {
         "owner": "libretro",
         "repo": "mupen64plus-libretro-nx",
-        "rev": "350f90a73cf0f5d65357ce982ccbaa3b22fc3569",
-        "sha256": "9Hq93+dvO60LBbcXLIHsTq243QThicI0rVJW3tou/5Y="
+        "rev": "6e9dcd2cd9d23d3e79eaf2349bf7e9f25ad45bf1",
+        "sha256": "rs/VL2K6aS8Rl01IyxUiWipzLEzg+7+fbXxI0qN5X/I="
     },
     "neocd": {
         "owner": "libretro",
         "repo": "neocd_libretro",
-        "rev": "83d10f3be10fff2f28aa56fc674c687528cb7f5c",
-        "sha256": "yYZGoMsUfE8cpU9i826UWQGi1l0zPJPcBDb2CINxGeQ="
+        "rev": "327aeceecdf71c8a0c0af3d6dc53686c94fe44ad",
+        "sha256": "cY0P+0EQ0b9df+YT2EMvrxjp5L+DwIg31rEJqchU+hc="
     },
     "nestopia": {
         "owner": "libretro",
         "repo": "nestopia",
-        "rev": "8af07b7ab49e45495cbc4ba73cd2f879d9908b55",
-        "sha256": "Z447flP1L/7gWEovWhbBearPKzsZNnGE2cz7jH7kEnY="
+        "rev": "a9e197f2583ef4f36e9e77d930a677e63a2c2f62",
+        "sha256": "QqmWSk8Ejf7QMJk0cVBgpnyqcK6oLjCnnXMXInuWfYc="
     },
     "np2kai": {
         "owner": "AZO234",
         "repo": "NP2kai",
-        "rev": "30d4b6959c48db039207a37e278c868c7737ed69",
-        "sha256": "uIcgbpcEz6yUKrBe0r84Yq2ihWfT0+TdUTIF5kMT5mI=",
+        "rev": "2b09ea6a589cdcae27bca27160b3f82638fbb45d",
+        "sha256": "M3kGA1TU3xui6of9XgUspI+Zf+hjYP1d2mgKwxsy3IQ=",
         "fetchSubmodules": true
     },
     "o2em": {
         "owner": "libretro",
         "repo": "libretro-o2em",
-        "rev": "f1050243e0d5285e7769e94a882b0cf39d2b7370",
-        "sha256": "wD+iJ8cKC8jYFZ6OVvX71uO7sSh5b/LLoc5+g7f3Yyg="
+        "rev": "641f06d67d192a0677ec861fcb731d3ce8da0f87",
+        "sha256": "s3FreOziXeGhUyQdSoOywZldD21m3+OXK0EJ2Z8rXiY="
     },
     "opera": {
         "owner": "libretro",
@@ -333,59 +322,59 @@
     "parallel-n64": {
         "owner": "libretro",
         "repo": "parallel-n64",
-        "rev": "28c4572c9a09447b3bf5ed5fbd3594a558bc210d",
-        "sha256": "by8NvKjVT9OrgVhNtv5E4Fqmdva42lWV8UQi0SKfBL8="
+        "rev": "b804ab1a199d6ff1f8fef4aa7dfcf663990e430b",
+        "sha256": "zAet6hYa/79CBbvwZNTNs/ayWuHHlwg+0Y4BAUFddBc="
     },
     "pcsx2": {
         "owner": "libretro",
         "repo": "pcsx2",
-        "rev": "3ef2a36b0608e9dcae808c7ef01c7a760d628735",
-        "sha256": "ezqVntonhGfejiGx9cxQEnjsXEHqT++M1fO0Jz1t/Us="
+        "rev": "0251730a21d7238856d79aa25e2942b48edb38f6",
+        "sha256": "a/lWLBCww4QwxdO7Sbvmfq0XF9FnP4xzF51ljsWk46I="
     },
     "pcsx_rearmed": {
         "owner": "libretro",
         "repo": "pcsx_rearmed",
-        "rev": "12fc12797064599dfca2d44043d5c02a949711ef",
-        "sha256": "SXmNfHGyk+KChiwkKlA+d/oezzp/7p1DJY+w2bES6kg="
+        "rev": "e24732050e902bd5402b2b7da7c391d2ca8fa799",
+        "sha256": "tPz5E3QO6FucjYOzdjbY2FHLPz1Fmms10tdt7rZIW8U="
     },
     "picodrive": {
         "owner": "libretro",
         "repo": "picodrive",
-        "rev": "50b8b47838fea8096535d543caaacdcc56aa7df2",
-        "sha256": "C1Htwel5PHZcjkKmjiiN/QgRofMhqlArxktOSqoTxTc=",
+        "rev": "7ff457f2f833570013f2a7e2608ac40632e0735d",
+        "sha256": "xEG5swvvWFhvosC1XpFaZphESNaf4AtX+6UE02B57j8=",
         "fetchSubmodules": true
     },
     "play": {
         "owner": "jpd002",
         "repo": "Play-",
-        "rev": "fd6a5161030215090d48a8036680f57914c71bb0",
-        "sha256": "g6UBRV7biLjPBXdlejjXUSk3v1wrsYWA3quZlpPj23U=",
+        "rev": "39eb5c2eb6da65dc76b1c4d1319175a68120a77a",
+        "sha256": "EF3p0lvHjKGt4pxtTAkDM+uHsnW72lN+Ki8BaZIk/BQ=",
         "fetchSubmodules": true
     },
     "ppsspp": {
         "owner": "hrydgard",
         "repo": "ppsspp",
-        "rev": "54d63cc1daf2a0cdc812e9af85854bb4ae5ef399",
-        "sha256": "iB/8zf4FYdsbiKZVq/YISTEQSoo1kme1uZsyuhbOcoc=",
+        "rev": "83b8211abf7fb705835eb1ccf8feae04816ae96c",
+        "sha256": "8K4bz/GUnE8GrlAVFULMXLC+i3ZYvR28EpehEg6up4s=",
         "fetchSubmodules": true
     },
     "prboom": {
         "owner": "libretro",
         "repo": "libretro-prboom",
-        "rev": "af1b5bf89d01095326ee27e178f9257f9e728873",
-        "sha256": "pvTUv4E+wBOYfjz8Ph11CK4E7rIm1T+u90TWDNXEBIU="
+        "rev": "b22a6b19fd976a14374db9083baea9c91b079106",
+        "sha256": "NmEWRTHaZjV2Y6Wrc3WOamXCnOawKc2ja1KBDxokRiY="
     },
     "prosystem": {
         "owner": "libretro",
         "repo": "prosystem-libretro",
-        "rev": "89e6df7b60d151310fedbe118fb472959a9dcd61",
-        "sha256": "uxgKddS53X7ntPClE8MGezBAG+7OAFvMXTnyKpOOau0="
+        "rev": "fbf62c3dacaac694f7ec26cf9be10a51b27271e7",
+        "sha256": "Opb6CUeT/bnaTg4MJo7DNsVyaPa73PLbIor25HHWzZ0="
     },
     "quicknes": {
         "owner": "libretro",
         "repo": "QuickNES_Core",
-        "rev": "743e6e06db246c5edab27c738c7a573d83140485",
-        "sha256": "NYmP+HFeZGUeIRaT3bzdpWw9cmEAaBkA3EGnw/zpDXA="
+        "rev": "e6f08c165af45fc2d2f26c80ba0cfc33e26f9cfe",
+        "sha256": "JQtlqN3mvIwKy6iN9opHPHnh0E7AIn9JVitIfXklI/I="
     },
     "sameboy": {
         "owner": "libretro",
@@ -396,56 +385,56 @@
     "scummvm": {
         "owner": "libretro",
         "repo": "scummvm",
-        "rev": "80cb7269a33b233dcea27d8d01df084b0d35c80a",
-        "sha256": "5kMWM8d5aBbT7TseNyaYxw7VDkrLL0G+KUvJcUboQgA="
+        "rev": "2fb2e4c551c9c1510c56f6e890ee0300b7b3fca3",
+        "sha256": "wrlFqu+ONbYH4xMFDByOgySobGrkhVc7kYWI4JzA4ew="
     },
     "smsplus-gx": {
         "owner": "libretro",
         "repo": "smsplus-gx",
-        "rev": "3f1ffede55bcfe0168caa484a00bf041ab591abf",
-        "sha256": "fD+grzMPk4uXvmzGf+f9Mor0eefBLHIumCydsSHUsck="
+        "rev": "9de9847dc8ba458e9522d5ae8b87bf71ad437257",
+        "sha256": "XzqQ/3XH5L79UQep+DZ+mDHnUJKZQXzjNCZNZw2mGvY="
     },
     "snes9x": {
         "owner": "snes9xgit",
         "repo": "snes9x",
-        "rev": "34b6160805c4995a8edf5f9b3328f5e492ae4c44",
-        "sha256": "YRRqtd5iu2evRk+7SyQpqpxqTaEFOkDZ/XQHEjpSBcM="
+        "rev": "3c729a9763263bc3a69f48370e43ae05e672970a",
+        "sha256": "01M6Wvbu1omMwh3Xg4RGh028jirGs7mLpxwKJgMRQxA="
     },
     "snes9x2002": {
         "owner": "libretro",
         "repo": "snes9x2002",
-        "rev": "e16cb16efa00765b1bc3b8fee195680efb1542c7",
-        "sha256": "0dhLpNy+NUE3mE/ejEwbq3G28/a2HONS5NPslI5LOEc="
+        "rev": "c4397de75a5f11403d154abd935e39fe969bca94",
+        "sha256": "yL4SIRR1Er+7Iq3YPfoe5ES47nvyA3UmGK+upLzKiFA="
     },
     "snes9x2005": {
         "owner": "libretro",
         "repo": "snes9x2005",
-        "rev": "77e9cd293c791b47f4397da0a47242b329243cb5",
-        "sha256": "iHGfZIGzE4n3EHrVRxTULuYKsOse5NcJftmasoJFwFo="
+        "rev": "23f759bc4bf2e39733296f7749e446418e3cd0f3",
+        "sha256": "/bZrMp7NHgdYvA3Tw1ZoWXRg7VxmatRUX5cCJsU3NCY="
     },
     "snes9x2010": {
         "owner": "libretro",
         "repo": "snes9x2010",
-        "rev": "714b1c8e08c7580430190119b07e793405773ac2",
-        "sha256": "yKSQEE+lT4V2V1XqemfziHuIt79TcvC0ranU9ounTXo="
+        "rev": "c98224bc74aa0bbf355d128b22e4a2a4e94215b0",
+        "sha256": "mf5msdwdcRRfFWHwmWLS/qKd7gNlLwexGEB6wB6TfhE="
     },
     "stella": {
         "owner": "stella-emu",
         "repo": "stella",
-        "rev": "1db9de390a331a7d55c35591c93d9e89184cce5f",
-        "sha256": "vICKxx+UBYvMzZ3a3F86yzJRKfdo0jMxa27wsUX0KZw="
+        "rev": "efb2a9f299cad241e12d811580f28d75b6c3438d",
+        "sha256": "QYwDTd8EZUMXJiuSJtoW8XQXgl+Wx0lPkNLOwzM5bzA="
     },
     "stella2014": {
         "owner": "libretro",
         "repo": "stella2014-libretro",
-        "rev": "934c7a2a44ef038af529b68950ddba4f7ea3478e",
-        "sha256": "s7LQ47sAPTyk4COONk4qnebxCq78zGLIjh3Y2+1fIak="
+        "rev": "1351a4fe2ca6b1f3a66c7db0df2ec268ab002d41",
+        "sha256": "/sVDOfP5CE8k808lhmH3tT47oZ1ka3pgDG5LglfPmHc="
     },
     "swanstation": {
         "owner": "libretro",
         "repo": "swanstation",
-        "rev": "61c5debe60192b0fecd8c15310b2e4c4473f9438",
-        "sha256": "DZJApJnGDMsUhjO35TBc7tMldCGKDPPtrwxPLe0Ey1s="
+        "rev": "0e53a5ac09a30d73d78b628f7e4954ebe5615801",
+        "sha256": "vOu99fsm2oeSi96tWR+vV5suZSYCyXJVgOdvjnKbNhg="
     },
     "tgbdual": {
         "owner": "libretro",
@@ -462,8 +451,8 @@
     "tic80": {
         "owner": "libretro",
         "repo": "tic-80",
-        "rev": "967eb78c3610385a0e6cba8bb5c60ebc3b886d3e",
-        "sha256": "N0QFNTYFVbhWwt2yx5fLM7Dl6pJZPYrt9o3+6rjnWa8=",
+        "rev": "e9f62f85a154796c6baaee8a9f6fd0cfdd447019",
+        "sha256": "JTAoIqxqpaLjsQiIpJ4wQsREI5/rTxVxDywoL3oLI4Q=",
         "fetchSubmodules": true
     },
     "vba-m": {
@@ -475,25 +464,25 @@
     "vba-next": {
         "owner": "libretro",
         "repo": "vba-next",
-        "rev": "b218f48bb27b5d3885fa4076ff325922b5acd817",
-        "sha256": "idqGMbMA9mZlIh0QAba3BxpPDi/bFJJkUbnxV3xMOCo="
+        "rev": "4191e09e2b0fcf175a15348c1fa8a12bbc6320dd",
+        "sha256": "IG2oH4F17tlSv1cXYZobggb37tFNE53JOHzan/X0+ws="
     },
     "vecx": {
         "owner": "libretro",
         "repo": "libretro-vecx",
-        "rev": "28d6efc8972313903d0802a736ff8c3bc115e78f",
-        "sha256": "VYa8s+HB8IYF+HS6SA+sO5DzpgCtnMGrh88KTVNGICY="
+        "rev": "141af284202c86ed0d4ce9030c76954a144287cf",
+        "sha256": "p5vMuG2vr3BTJOQWNcTPb89MlkVrRvJNTIJSU8r9zfU="
     },
     "virtualjaguar": {
         "owner": "libretro",
         "repo": "virtualjaguar-libretro",
-        "rev": "d1b1b28a6ad2518b746e3f7537ec6d66db96ec57",
-        "sha256": "Io25dt80fqIqIxwzF2DK9J5UFz6YCUQoqThcIuxdEBo="
+        "rev": "263c979be4ca757c43fb525bd6f0887998e57041",
+        "sha256": "6Q6Y0IFUWS9ZPhnAK3EUo4hMGPdBn8eNEYCK/zLgAKU="
     },
     "yabause": {
         "owner": "libretro",
         "repo": "yabause",
-        "rev": "f30153ff9e534b96049c6f1ac3075b572642ceb5",
-        "sha256": "AdqCr5X3Bq8ic2jkIestmYi+CBByZ5Fyf0BUYwBkWnA="
+        "rev": "17dfcd8de4700341d972993501d3a043925675ce",
+        "sha256": "xwW7Oe3Cy3yC0xC5acLW6OGUIG+dKd1mwiXK5ZAumdo="
     }
 }
diff --git a/pkgs/applications/emulators/retroarch/update.py b/pkgs/applications/emulators/retroarch/update_cores.py
index 68f72103168e8..c6c44926fc829 100755
--- a/pkgs/applications/emulators/retroarch/update.py
+++ b/pkgs/applications/emulators/retroarch/update_cores.py
@@ -26,19 +26,7 @@ CORES = {
     "bsnes": {"repo": "bsnes-libretro"},
     "bsnes-hd": {"repo": "bsnes-hd", "owner": "DerKoun"},
     "bsnes-mercury": {"repo": "bsnes-mercury"},
-    "citra": {
-        "repo": "citra",
-        "fetch_submodules": True,
-        "deep_clone": True,
-        "leave_dot_git": True,
-    },
-    "citra-canary": {
-        "repo": "citra",
-        "fetch_submodules": True,
-        "deep_clone": True,
-        "leave_dot_git": True,
-        "rev": "canary",
-    },
+    "citra": { "repo": "citra", "fetch_submodules": True },
     "desmume": {"repo": "desmume"},
     "desmume2015": {"repo": "desmume2015"},
     "dolphin": {"repo": "dolphin"},
@@ -119,10 +107,16 @@ def get_repo_hash_fetchFromGitHub(
     extra_args = []
     if deep_clone:
         extra_args.append("--deep-clone")
+    else:
+        extra_args.append("--no-deep-clone")
     if fetch_submodules:
         extra_args.append("--fetch-submodules")
+    else:
+        extra_args.append("--no-fetch-submodules")
     if leave_dot_git:
         extra_args.append("--leave-dot-git")
+    else:
+        extra_args.append("--no-leave-dot-git")
     if rev:
         extra_args.append("--rev")
         extra_args.append(rev)
diff --git a/pkgs/applications/emulators/retroarch/0002-Use-fixed-paths-on-libretro_info_path.patch b/pkgs/applications/emulators/retroarch/use-fixed-paths-on-libretro_info_path.patch
index 9aa8db6ab048b..fd3913ea157ea 100644
--- a/pkgs/applications/emulators/retroarch/0002-Use-fixed-paths-on-libretro_info_path.patch
+++ b/pkgs/applications/emulators/retroarch/use-fixed-paths-on-libretro_info_path.patch
@@ -1,7 +1,7 @@
-From 6788718299e1aba3ff8b31cd6ef012e8d3643bd3 Mon Sep 17 00:00:00 2001
+From 7bf021529ff15ca2580b15b3c0bfdc137d5beffe Mon Sep 17 00:00:00 2001
 From: Thiago Kenji Okada <thiagokokada@gmail.com>
-Date: Sat, 20 Nov 2021 15:59:23 -0300
-Subject: [PATCH 2/2] Use fixed paths on "libretro_info_path"
+Date: Wed, 9 Mar 2022 18:24:15 +0000
+Subject: [PATCH] Use fixed paths on "libretro_info_path"
 
 This patch sets "libretro_info_path" to `handle = false`, so instead of
 using the values from `retroarch.cfg`, it will always use the default.
@@ -10,16 +10,16 @@ Also, it patches the default "libretro_info_path" to the
 `@libretro_info_path` string, so we can substitute it with the full path
 to it during build.
 ---
- configuration.c                    | 2 +-
- frontend/drivers/platform_darwin.m | 9 ++-------
- frontend/drivers/platform_unix.c   | 8 ++++----
- 3 files changed, 7 insertions(+), 12 deletions(-)
+ configuration.c                    |  2 +-
+ frontend/drivers/platform_darwin.m |  9 ++-------
+ frontend/drivers/platform_unix.c   | 12 ++++--------
+ 3 files changed, 7 insertions(+), 16 deletions(-)
 
 diff --git a/configuration.c b/configuration.c
-index e6a3841324..afb1d6e2ce 100644
+index 7e346ff6e9..c4b2100203 100644
 --- a/configuration.c
 +++ b/configuration.c
-@@ -1456,7 +1456,7 @@ static struct config_path_setting *populate_settings_path(
+@@ -1466,7 +1466,7 @@ static struct config_path_setting *populate_settings_path(
     SETTING_PATH("core_options_path",
           settings->paths.path_core_options, false, NULL, true);
     SETTING_PATH("libretro_info_path",
@@ -29,10 +29,10 @@ index e6a3841324..afb1d6e2ce 100644
           settings->paths.path_content_database, false, NULL, true);
     SETTING_PATH("cheat_database_path",
 diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m
-index f922e50c55..52732f65ae 100644
+index 6c5fdca400..552dcb7e2b 100644
 --- a/frontend/drivers/platform_darwin.m
 +++ b/frontend/drivers/platform_darwin.m
-@@ -383,14 +383,9 @@ static void frontend_darwin_get_env(int *argc, char *argv[],
+@@ -388,14 +388,9 @@ static void frontend_darwin_get_env(int *argc, char *argv[],
           home_dir_buf, "shaders_glsl",
           sizeof(g_defaults.dirs[DEFAULT_DIR_SHADER]));
  #endif
@@ -50,21 +50,25 @@ index f922e50c55..52732f65ae 100644
  #ifdef HAVE_VIDEO_LAYOUT
     fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT], home_dir_buf, "layouts", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT]));
 diff --git a/frontend/drivers/platform_unix.c b/frontend/drivers/platform_unix.c
-index 722e1c595c..d87e01cf12 100644
+index b3b5dad173..7f1561e523 100644
 --- a/frontend/drivers/platform_unix.c
 +++ b/frontend/drivers/platform_unix.c
-@@ -1815,8 +1815,8 @@ static void frontend_unix_get_env(int *argc,
+@@ -1820,12 +1820,8 @@ static void frontend_unix_get_env(int *argc,
        strcpy_literal(base_path, "retroarch");
  #endif
  
--   fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE], base_path,
--         "cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
+-   if (!string_is_empty(libretro_directory))
+-      strlcpy(g_defaults.dirs[DEFAULT_DIR_CORE], libretro_directory,
+-            sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
+-   else
+-      fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE], base_path,
+-            "cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
 +   fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE], "@libretro_directory@",
 +         "", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
  #if defined(DINGUX)
     /* On platforms that require manual core installation/
      * removal, placing core info files in the same directory
-@@ -1825,8 +1825,8 @@ static void frontend_unix_get_env(int *argc,
+@@ -1834,8 +1830,8 @@ static void frontend_unix_get_env(int *argc,
     fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], base_path,
           "core_info", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
  #else
@@ -76,5 +80,5 @@ index 722e1c595c..d87e01cf12 100644
     fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG], base_path,
           "autoconfig", sizeof(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG]));
 -- 
-2.31.1
+2.32.0
 
diff --git a/pkgs/applications/emulators/retroarch/wrapper.nix b/pkgs/applications/emulators/retroarch/wrapper.nix
index b3797c9e9e368..6adcb8ffd8b44 100644
--- a/pkgs/applications/emulators/retroarch/wrapper.nix
+++ b/pkgs/applications/emulators/retroarch/wrapper.nix
@@ -8,8 +8,7 @@ stdenv.mkDerivation {
 
   buildCommand = ''
     mkdir -p $out/lib
-    for coreDir in $cores
-    do
+    for coreDir in $cores; do
       ln -s $coreDir/* $out/lib/.
     done
 
@@ -29,9 +28,14 @@ stdenv.mkDerivation {
 
   meta = with retroarch.meta; {
     inherit changelog description homepage license maintainers platforms;
-    longDescription =
-      "RetroArch is the reference frontend for the libretro API. The following cores are included: "
-      + lib.concatStringsSep ", " (map (x: "${x.name}") cores)
-      + ".";
+    longDescription = ''
+      RetroArch is the reference frontend for the libretro API.
+
+      The following cores are included:
+      ${lib.concatStringsSep "\n" (map (x: "  - ${x.name}") cores)}
+    '';
+    # FIXME: exits with error on macOS:
+    # No Info.plist file in application bundle or no NSPrincipalClass in the Info.plist file, exiting
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/applications/emulators/ryujinx/default.nix b/pkgs/applications/emulators/ryujinx/default.nix
index 7a4f4351dc943..e235b2c80fb47 100644
--- a/pkgs/applications/emulators/ryujinx/default.nix
+++ b/pkgs/applications/emulators/ryujinx/default.nix
@@ -17,13 +17,13 @@
 
 buildDotnetModule rec {
   pname = "ryujinx";
-  version = "1.1.77"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
+  version = "1.1.100"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
 
   src = fetchFromGitHub {
     owner = "Ryujinx";
     repo = "Ryujinx";
-    rev = "df70442c46e7ee133b1fb79dc23ddd134e618085";
-    sha256 = "1m9msp7kxsj7251l2yjcfzrb4k1lisk9sip7acm22pxmi1a7gw73";
+    rev = "26a881176eb6513a98889648e0d5b7fe647cd0e3";
+    sha256 = "09wjygkdr9sr0hwv77czi0x5xw8y585k9pghdm5s3iqjn9gbb45k";
   };
 
   dotnet-sdk = dotnetCorePackages.sdk_6_0;
@@ -63,6 +63,10 @@ buildDotnetModule rec {
   ];
 
   preInstall = ''
+    # workaround for https://github.com/Ryujinx/Ryujinx/issues/2349
+    mkdir -p $out/lib/sndio-6
+    ln -s ${sndio}/lib/libsndio.so $out/lib/sndio-6/libsndio.so.6
+
     # Ryujinx tries to use ffmpeg from PATH
     makeWrapperArgs+=(
       --suffix PATH : ${lib.makeBinPath [ ffmpeg ]}
diff --git a/pkgs/applications/emulators/ryujinx/deps.nix b/pkgs/applications/emulators/ryujinx/deps.nix
index 33f55f8cb6e8c..fbafa4eaa2ecf 100644
--- a/pkgs/applications/emulators/ryujinx/deps.nix
+++ b/pkgs/applications/emulators/ryujinx/deps.nix
@@ -11,10 +11,10 @@
   (fetchNuGet { pname = "GLibSharp"; version = "3.22.25.128"; sha256 = "1j8i5izk97ga30z1qpd765zqd2q5w71y8bhnkqq4bj59768fyxp5"; })
   (fetchNuGet { pname = "GtkSharp"; version = "3.22.25.128"; sha256 = "0z0wx0p3gc02r8d7y88k1rw307sb2vapbr1k1yc5qdc38fxz5jsy"; })
   (fetchNuGet { pname = "GtkSharp.Dependencies"; version = "1.1.1"; sha256 = "0ffywnc3ca1lwhxdnk99l238vsprsrsh678bgm238lb7ja7m52pw"; })
-  (fetchNuGet { pname = "LibHac"; version = "0.16.0"; sha256 = "1kivnf4c4km1a8y0sl34z9gfazlivna0x31q0065n0sz13g82spi"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.3"; sha256 = "0rrrfgkr7rzhlnsnajvzb1ijkybp99d992bqxy9pbawmq7d60bdk"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.3"; sha256 = "09whyl3i9mzy10n5zxlq66lj3l4p29hm75igmdip2fb376zxyam3"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.3"; sha256 = "11kv50kll3iq88kn40f5v5qlq8mydv6y6xz2cbzjw4aadd44njwq"; })
+  (fetchNuGet { pname = "LibHac"; version = "0.16.1"; sha256 = "131qnqa1asdmymwdvpjza6w646b05jzn1cxjdxgwh7qdcdb77xyx"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.4"; sha256 = "1fvv5ri32pbl43628zqnim6fbv6hjxf66p0v793xdh57dzkdyh0j"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.4"; sha256 = "1m8iaq78kii0z4lxwq1igm8f4yv010blrifab4zp491b0j0qg1d4"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.4"; sha256 = "1sqv7vhkm4j11rl7mfvs4mmmclcdps2n4pf31ck2mcx54nr4d2kj"; })
   (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "16.8.0"; sha256 = "1y05sjk7wgd29a47v1yhn2s1lrd8wgazkilvmjbvivmrrm3fqjs8"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.5.0"; sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l"; })
@@ -23,12 +23,11 @@
   (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "6.15.0"; sha256 = "0jn9a20a2zixnkm3bmpmvmiv7mk0hqdlnpi0qgjkg1nir87czm19"; })
   (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "6.15.0"; sha256 = "1nbgydr45f7lp980xyrkzpyaw2mkkishjwp3slgxk7f0mz6q8i1v"; })
   (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "16.8.0"; sha256 = "1ln2mva7j2mpsj9rdhpk8vhm3pgd8wn563xqdcwd38avnhp74rm9"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "6.0.3"; sha256 = "1py3nrfvllqlnb9mhs0qwgy7c14n33b2hfb0qc49rx22sqv8ylbp"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.3"; sha256 = "1y428glba68s76icjzfl1v3p61pcz7rd78wybhabs8zq8w9cp2pj"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.3"; sha256 = "0k9gc94cvn36p0v3pj296asg2sq9a8ah6lfw0xvvmd4hq2k72s79"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.3"; sha256 = "0f04srx6q0jk81a60n956hz32fdngzp0xmdb2x7gyl77gsq8yijj"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.3"; sha256 = "0180ipzzz9pc6f6l17rg5bxz1ghzbapmiqq66kdl33bmbny6vmm9"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.3"; sha256 = "1rjkzs2013razi2xs943q62ys1jh8blhjcnj75qkvirf859d11qw"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.4"; sha256 = "0vgjwpy55mf6x22a634cdidckyq5hi941i9p10jqyrbnc637frv2"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.4"; sha256 = "1qasm6j25lmcc4xn7f7s3jli1pypz1kfnj7j9dkjlx9mc8r356zp"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.4"; sha256 = "1gibwhplbanv6bz3l71w8vhzlgqsh21bms30dbf1n60v7p02fl3h"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.4"; sha256 = "0gkzqsmj12wwdh548rb9drjgmyzvqalmwwq0fzvgj9c7zm1gdndi"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.4"; sha256 = "1x4ysack9n57h8w1ybfyczkf3w6jsgz7ila0czm2011w4sjnyqj0"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
diff --git a/pkgs/applications/emulators/ryujinx/updater.sh b/pkgs/applications/emulators/ryujinx/updater.sh
index 9c2f69e606cac..3f6acf5e44d47 100755
--- a/pkgs/applications/emulators/ryujinx/updater.sh
+++ b/pkgs/applications/emulators/ryujinx/updater.sh
@@ -1,33 +1,60 @@
 #! /usr/bin/env nix-shell
-#! nix-shell -i bash -p coreutils gnused curl common-updater-scripts nuget-to-nix nix-prefetch-git jq dotnet-sdk_6
+#! nix-shell -I nixpkgs=./. -i bash -p coreutils gnused curl common-updater-scripts nuget-to-nix nix-prefetch-git jq dotnet-sdk_6
 set -euo pipefail
 cd "$(dirname "${BASH_SOURCE[0]}")"
 
 DEPS_FILE="$(realpath "./deps.nix")"
 
-RELEASE_JOB_DATA=$(
-    curl -s -H "Accept: application/vnd.github.v3+json" \
-        https://api.github.com/repos/Ryujinx/Ryujinx/actions/workflows |
-        jq -r '.workflows[] | select(.name == "Release job") | { id, path }'
-)
-RELEASE_JOB_ID=$(echo "$RELEASE_JOB_DATA" | jq -r '.id')
-RELEASE_JOB_FILE=$(echo "$RELEASE_JOB_DATA" | jq -r '.path')
-
-BASE_VERSION=$(
-    curl -s "https://raw.githubusercontent.com/Ryujinx/Ryujinx/master/${RELEASE_JOB_FILE}" |
-        grep -Po 'RYUJINX_BASE_VERSION:.*?".*"' |
-        sed 's/RYUJINX_BASE_VERSION: "\(.*\)"/\1/'
-)
-
-LATEST_RELEASE_JOB_DATA=$(
-    curl -s -H "Accept: application/vnd.github.v3+json" \
-        "https://api.github.com/repos/Ryujinx/Ryujinx/actions/workflows/${RELEASE_JOB_ID}/runs" |
-        jq -r '.workflow_runs[0] | { head_sha, run_number }'
-)
-COMMIT=$(echo "$LATEST_RELEASE_JOB_DATA" | jq -r '.head_sha')
-PATCH_VERSION=$(echo "$LATEST_RELEASE_JOB_DATA" | jq -r '.run_number')
-
-NEW_VERSION="${BASE_VERSION}.${PATCH_VERSION}"
+# provide a github token so you don't get rate limited
+# if you use gh cli you can use:
+#     `export GITHUB_TOKEN="$(cat ~/.config/gh/config.yml | yq '.hosts."github.com".oauth_token' -r)"`
+# or just set your token by hand:
+#     `read -s -p "Enter your token: " GITHUB_TOKEN; export GITHUB_TOKEN`
+#     (we use read so it doesn't show in our shell history and in secret mode so the token you paste isn't visible)
+if [ -z "${GITHUB_TOKEN:-}" ]; then
+    echo "no GITHUB_TOKEN provided - you could meet API request limiting" >&2
+fi
+
+# or provide the new version manually
+# manually modify and uncomment or export these env vars in your shell so they're accessable within the script
+# make sure you don't commit your changes here
+#
+# NEW_VERSION=""
+# COMMIT=""
+
+if [ -z ${NEW_VERSION+x} ] && [ -z ${COMMIT+x} ]; then
+    RELEASE_JOB_DATA=$(
+        curl -s -H "Accept: application/vnd.github.v3+json" \
+            ${GITHUB_TOKEN:+ -H "Authorization: bearer $GITHUB_TOKEN"} \
+            https://api.github.com/repos/Ryujinx/Ryujinx/actions/workflows
+    )
+    if [ -z "$RELEASE_JOB_DATA" ] || [[ $RELEASE_JOB_DATA =~ "rate limit exceeded" ]]; then
+        echo "failed to get release job data" >&2
+        exit 1
+    fi
+    RELEASE_JOB_ID=$(echo "$RELEASE_JOB_DATA" | jq -r '.workflows[] | select(.name == "Release job") | .id')
+    RELEASE_JOB_FILE=$(echo "$RELEASE_JOB_DATA" | jq -r '.workflows[] | select(.name == "Release job") | .path')
+
+    LATEST_RELEASE_JOB_DATA=$(
+        curl -s -H "Accept: application/vnd.github.v3+json" \
+            ${GITHUB_TOKEN:+ -H "Authorization: bearer $GITHUB_TOKEN"} \
+            "https://api.github.com/repos/Ryujinx/Ryujinx/actions/workflows/${RELEASE_JOB_ID}/runs"
+    )
+    if [ -z "$LATEST_RELEASE_JOB_DATA" ] || [[ $LATEST_RELEASE_JOB_DATA =~ "rate limit exceeded" ]]; then
+        echo "failed to get latest release job data" >&2
+        exit 1
+    fi
+    COMMIT=$(echo "$LATEST_RELEASE_JOB_DATA" | jq -r '.workflow_runs[0] | .head_sha')
+    PATCH_VERSION=$(echo "$LATEST_RELEASE_JOB_DATA" | jq -r '.workflow_runs[0] | .run_number')
+
+    BASE_VERSION=$(
+        curl -s "https://raw.githubusercontent.com/Ryujinx/Ryujinx/master/${RELEASE_JOB_FILE}" |
+            grep -Po 'RYUJINX_BASE_VERSION:.*?".*"' |
+            sed 's/RYUJINX_BASE_VERSION: "\(.*\)"/\1/'
+    )
+
+    NEW_VERSION="${BASE_VERSION}.${PATCH_VERSION}"
+fi
 
 OLD_VERSION="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
 
diff --git a/pkgs/applications/emulators/snes9x-gtk/default.nix b/pkgs/applications/emulators/snes9x-gtk/default.nix
deleted file mode 100644
index ff7df4b094407..0000000000000
--- a/pkgs/applications/emulators/snes9x-gtk/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, wrapGAppsHook, alsa-lib
-, SDL2, zlib, gtkmm3, libXv, libepoxy, minizip, pulseaudio, portaudio }:
-
-stdenv.mkDerivation rec {
-  pname = "snes9x-gtk";
-  version = "1.61";
-
-  src = fetchFromGitHub {
-    owner = "snes9xgit";
-    repo = "snes9x";
-    rev = version;
-    fetchSubmodules = true;
-    sha256 = "1kay7aj30x0vn8rkylspdycydrzsc0aidjbs0dd238hr5hid723b";
-  };
-
-  nativeBuildInputs = [ meson ninja pkg-config wrapGAppsHook ];
-  buildInputs = [ alsa-lib SDL2 zlib gtkmm3 libXv libepoxy minizip pulseaudio portaudio ];
-
-  preConfigure = "cd gtk";
-
-  meta = with lib; {
-    homepage = "https://www.snes9x.com";
-    description = "Super Nintendo Entertainment System (SNES) emulator";
-
-    longDescription = ''
-      Snes9x is a portable, freeware Super Nintendo Entertainment System (SNES)
-      emulator. It basically allows you to play most games designed for the SNES
-      and Super Famicom Nintendo game systems on your PC or Workstation; which
-      includes some real gems that were only ever released in Japan.
-    '';
-
-    # see https://github.com/snes9xgit/snes9x/blob/master/LICENSE for exact details
-    license = licenses.unfreeRedistributable;
-    maintainers = with maintainers; [ qknight xfix ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/applications/emulators/snes9x/default.nix b/pkgs/applications/emulators/snes9x/default.nix
new file mode 100644
index 0000000000000..779e4dab3b3d0
--- /dev/null
+++ b/pkgs/applications/emulators/snes9x/default.nix
@@ -0,0 +1,130 @@
+{ lib
+, stdenv
+, alsa-lib
+, autoreconfHook
+, fetchFromGitHub
+, fetchpatch
+, gtkmm3
+, libepoxy
+, libpng
+, libX11
+, libXv
+, libXext
+, libXinerama
+, meson
+, minizip
+, ninja
+, pkg-config
+, portaudio
+, pulseaudio
+, SDL2
+, wrapGAppsHook
+, zlib
+, withGtk ? false
+}:
+
+stdenv.mkDerivation rec {
+  pname =
+    if withGtk then
+      "snes9x-gtk"
+    else
+      "snes9x";
+  version = "1.61";
+
+  src = fetchFromGitHub {
+    owner = "snes9xgit";
+    repo = "snes9x";
+    rev = version;
+    fetchSubmodules = true;
+    sha256 = "1kay7aj30x0vn8rkylspdycydrzsc0aidjbs0dd238hr5hid723b";
+  };
+
+  patches = [
+    # Fix cross-compilation, otherwise it fails to detect host compiler features
+    # Doesn't affect non CC builds
+    (fetchpatch {
+      url = "https://mirror.its.dal.ca/gentoo-portage/games-emulation/snes9x/files/snes9x-1.53-cross-compile.patch";
+      sha256 = "sha256-ZCmnprimz8PtDIXkB1dYD0oura9icW81yKvJ4coKaDg=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+  ]
+  ++ lib.optionals (!withGtk) [
+    autoreconfHook
+  ]
+  ++ lib.optionals withGtk [
+    meson
+    ninja
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    libX11
+    libXext
+    libXv
+    minizip
+    zlib
+  ]
+  # on non-Linux platforms this will build without sound support on X11 build
+  ++ lib.optionals stdenv.isLinux [
+    alsa-lib
+    pulseaudio
+  ]
+  ++ lib.optionals (!withGtk) [
+    libpng
+    libXinerama
+  ]
+  ++ lib.optionals withGtk [
+    gtkmm3
+    libepoxy
+    portaudio
+    SDL2
+  ];
+
+  configureFlags =
+    lib.optional stdenv.hostPlatform.sse4_1Support "--enable-sse41"
+    ++ lib.optional stdenv.hostPlatform.avx2Support "--enable-avx2";
+
+  installPhase = lib.optionalString (!withGtk) ''
+    runHook preInstall
+
+    install -Dm755 snes9x -t "$out/bin/"
+    install -Dm644 snes9x.conf.default -t "$out/share/doc/${pname}/"
+    install -Dm644 ../docs/{control-inputs,controls,snapshots}.txt -t \
+      "$out/share/doc/${pname}/"
+
+    runHook postInstall
+  '';
+
+  preAutoreconf = lib.optionalString (!withGtk) "cd unix";
+  preConfigure = lib.optionalString withGtk "cd gtk";
+
+  enableParallelBuilding = true;
+
+  meta = with lib;
+    let
+      interface = if withGtk then "GTK" else "X11";
+    in
+    {
+      homepage = "https://www.snes9x.com";
+      description = "Super Nintendo Entertainment System (SNES) emulator, ${interface} version";
+
+      longDescription = ''
+        Snes9x is a portable, freeware Super Nintendo Entertainment System (SNES)
+        emulator. It basically allows you to play most games designed for the SNES
+        and Super Famicom Nintendo game systems on your PC or Workstation; which
+        includes some real gems that were only ever released in Japan.
+
+        Version build with ${interface} interface.
+      '';
+
+      license = licenses.unfreeRedistributable // {
+        url = "https://github.com/snes9xgit/snes9x/blob/${version}/LICENSE";
+      };
+      maintainers = with maintainers; [ qknight xfix thiagokokada ];
+      platforms = platforms.unix;
+      broken = (withGtk && stdenv.isDarwin);
+    };
+}
diff --git a/pkgs/applications/emulators/tinyemu/default.nix b/pkgs/applications/emulators/tinyemu/default.nix
index c32fd24fe4770..ca3f8acd88ca2 100644
--- a/pkgs/applications/emulators/tinyemu/default.nix
+++ b/pkgs/applications/emulators/tinyemu/default.nix
@@ -21,7 +21,12 @@ stdenv.mkDerivation rec {
     openssl
   ];
 
-  makeFlags = [ "DESTDIR=$(out)" "bindir=/bin" ];
+  makeFlags = [
+    "CC:=$(CC)"
+    "STRIP:=$(STRIP)"
+    "DESTDIR=$(out)"
+    "bindir=/bin"
+  ];
 
   preInstall = ''
     mkdir -p "$out/bin"
diff --git a/pkgs/applications/emulators/yuzu/base.nix b/pkgs/applications/emulators/yuzu/base.nix
deleted file mode 100644
index aff09134fae9f..0000000000000
--- a/pkgs/applications/emulators/yuzu/base.nix
+++ /dev/null
@@ -1,86 +0,0 @@
-{ pname, version, src, branchName
-, stdenv, lib, wrapQtAppsHook
-, cmake, pkg-config
-, libpulseaudio, libjack2, alsa-lib, sndio
-, vulkan-loader, vulkan-headers
-, qtbase, qtwebengine, qttools
-, nlohmann_json, rapidjson
-, zlib, zstd, libzip, lz4
-, glslang
-, boost173
-, catch2
-, fmt_8
-, SDL2
-, udev
-, libusb1
-, ffmpeg
-}:
-
-stdenv.mkDerivation rec {
-  inherit pname version src;
-
-  nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
-  buildInputs = [
-    libpulseaudio libjack2 alsa-lib sndio
-    vulkan-loader vulkan-headers
-    qtbase qtwebengine qttools
-    nlohmann_json rapidjson
-    zlib zstd libzip lz4
-    glslang
-    boost173
-    catch2
-    fmt_8
-    SDL2
-    udev
-    libusb1
-    ffmpeg
-  ];
-
-  cmakeFlags = [
-    "-DYUZU_USE_BUNDLED_QT=OFF"
-    "-DYUZU_USE_BUNDLED_SDL2=OFF"
-    "-DYUZU_USE_BUNDLED_FFMPEG=OFF"
-    "-DENABLE_QT_TRANSLATION=ON"
-    "-DYUZU_USE_QT_WEB_ENGINE=ON"
-    "-DUSE_DISCORD_PRESENCE=ON"
-  ];
-
-  # This changes `ir/opt` to `ir/var/empty` in `externals/dynarmic/src/dynarmic/CMakeLists.txt`
-  # making the build fail, as that path does not exist
-  dontFixCmake = true;
-
-  preConfigure = ''
-    # Trick the configure system. This prevents a check for submodule directories.
-    rm -f .gitmodules
-
-    # see https://github.com/NixOS/nixpkgs/issues/114044, setting this through cmakeFlags does not work.
-    cmakeFlagsArray+=(
-      "-DTITLE_BAR_FORMAT_IDLE=yuzu ${branchName} ${version}"
-      "-DTITLE_BAR_FORMAT_RUNNING=yuzu ${branchName} ${version} | {3}"
-    )
-  '';
-
-  # Fix vulkan detection
-  postFixup = ''
-    wrapProgram $out/bin/yuzu --prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib
-    wrapProgram $out/bin/yuzu-cmd --prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib
-  '';
-
-  meta = with lib; {
-    homepage = "https://yuzu-emu.org";
-    description = "The ${branchName} branch of an experimental Nintendo Switch emulator written in C++";
-    longDescription = ''
-      An experimental Nintendo Switch emulator written in C++.
-      Using the mainline branch is recommanded for general usage.
-      Using the early-access branch is recommanded if you would like to try out experimental features, with a cost of stability.
-    '';
-    license = with licenses; [
-      gpl2Plus
-      # Icons
-      cc-by-nd-30 cc0
-    ];
-    maintainers = with maintainers; [ ivar joshuafern sbruder ];
-    platforms = platforms.linux;
-    broken = stdenv.isAarch64; # Currently aarch64 is not supported.
-  };
-}
diff --git a/pkgs/applications/emulators/yuzu/compatibility-list.json b/pkgs/applications/emulators/yuzu/compatibility-list.json
new file mode 100644
index 0000000000000..f780b1deff004
--- /dev/null
+++ b/pkgs/applications/emulators/yuzu/compatibility-list.json
@@ -0,0 +1 @@
+[{"id":"0006b2db-d7ac-44ca-bfbe-e28263a41afd","directory":"samsara-deluxe-edition","title":"Samsara: Deluxe Edition","compatibility":99,"releases":[{"id":"010014000C63C000","region":null}]},{"id":"000f7b84-cb3a-4e56-b34e-4d201f0798cc","directory":"barry-the-bunny","title":"Barry the Bunny","compatibility":99,"releases":[{"id":"0100C46015AA0000","region":null}]},{"id":"001027b2-7b31-4f26-aa64-dff9a9b7866e","directory":"aca-neogeo-metal-slug-3","title":"ACA NEOGEO METAL SLUG 3","compatibility":2,"releases":[{"id":"0100BA8001DC6000","region":null}]},{"id":"001a1be6-35d9-48be-9181-671401213b97","directory":"crossniq","title":"CROSSNIQ+","compatibility":1,"releases":[{"id":"01007BB00E760000","region":null}]},{"id":"001cb4d8-cf72-4292-b8b6-97ec3fc023ae","directory":"arcade-archives-image-fight","title":"Arcade Archives IMAGE FIGHT","compatibility":99,"releases":[{"id":"010008300C978000","region":null}]},{"id":"00303016-7f48-4386-b3e5-1c043c0d2877","directory":"path-through-the-forest","title":"Path: Through the Forest","compatibility":99,"releases":[{"id":"010036C0131E8000","region":null}]},{"id":"003e14aa-0699-4425-9e86-3eef87f5315b","directory":"deadly-days","title":"Deadly Days","compatibility":1,"releases":[{"id":"010095A011A14000","region":null}]},{"id":"00438af7-529e-44f9-b8d8-b48905ee0826","directory":"tetras-escape","title":"TETRA's Escape","compatibility":99,"releases":[{"id":"01004E500A15C000","region":null}]},{"id":"0045e76f-9fd9-4dd0-b5d0-64df6bde1547","directory":"untitled-goose-game","title":"Untitled Goose Game","compatibility":0,"releases":[{"id":"010082400BCC6000","region":null}]},{"id":"005faf1c-42ec-4c95-9a8a-00947085839a","directory":"cyber-hook","title":"Cyber Hook","compatibility":99,"releases":[{"id":"010008A00F15C000","region":null}]},{"id":"00619131-acb5-4cef-bc90-d721db0cf4df","directory":"chime-sharp","title":"Chime Sharp","compatibility":99,"releases":[{"id":"010069900C4AC000","region":null}]},{"id":"0061f86a-4b67-40ae-bfd6-d3bb2b6fed83","directory":"fishwitch-halloween","title":"FishWitch Halloween","compatibility":99,"releases":[{"id":"01004AA016918000","region":null}]},{"id":"0062101a-3109-4361-9914-51b33e6d4820","directory":"the-number-puzzle","title":"THE Number Puzzle","compatibility":99,"releases":[{"id":"0100A6F00A0FE000","region":null}]},{"id":"0063b5e2-64d2-4d6c-908e-141764fb3dd6","directory":"dairoku-agents-of-sakuratani","title":"Dairoku: Agents of Sakuratani","compatibility":99,"releases":[{"id":"010031F0143AE000","region":null}]},{"id":"007431da-a370-4ae5-8b2c-6709e47fe540","directory":"rivals-of-aether","title":"Rivals of Aether","compatibility":99,"releases":[{"id":"0100D2700DE7C000","region":null}]},{"id":"00760040-b010-4eda-867a-6f076aa7cd8b","directory":"va-11-hall-a-cyberpunk-bartender-action","title":"VA-11 Hall-A: Cyberpunk Bartender Action","compatibility":3,"releases":[{"id":"010086500D3C8000","region":null}]},{"id":"007d1b30-b2b4-4c05-a170-c5d7f71310e3","directory":"dusk-diver","title":"Dusk Diver","compatibility":3,"releases":[{"id":"0100B2B00E7AA000","region":null}]},{"id":"008490e4-94de-48ac-9ee3-bf859cb20c4d","directory":"space-commander-war-and-trade","title":"Space Commander: War and Trade","compatibility":0,"releases":[{"id":"0100E1E014AFA000","region":null}]},{"id":"0088eb2b-4ecc-4385-a19b-cd03056cfa07","directory":"wood-block-escape-puzzles-3","title":"Wood Block Escape Puzzles 3","compatibility":99,"releases":[{"id":"0100FA60152CC000","region":null}]},{"id":"008bc3d4-7e83-44d7-a6b5-f6c12b1e61d4","directory":"grizzland","title":"Grizzland","compatibility":2,"releases":[{"id":"010091300FFA0000","region":null}]},{"id":"008e5f9e-1428-4b99-bef0-4d8b4e281efc","directory":"mindball-play","title":"Mindball Play","compatibility":99,"releases":[{"id":"01002CD00C7C8000","region":null}]},{"id":"009302c8-fa3d-41a4-a209-4ecea3057bde","directory":"horse-farm","title":"Horse Farm","compatibility":4,"releases":[{"id":"010040900F032000","region":null}]},{"id":"00c489ba-0bb8-4151-a7e9-e67032bbbb48","directory":"enchanted-in-the-moonlight-kiryu-chikage-and-yukinojo-","title":"Enchanted in the Moonlight - Kiryu, Chikage & Yukinojo -","compatibility":3,"releases":[{"id":"010068300E08E000","region":null}]},{"id":"00c52b4e-54bd-4ef9-bf3c-62d3c2557d2f","directory":"the-wardrobe-even-better-edition","title":"The Wardrobe: Even Better Edition","compatibility":0,"releases":[{"id":"01008B200FC6C000","region":null}]},{"id":"00c65a86-4a43-4d11-81cd-ab502493fabe","directory":"throw-it-animal-park","title":"Throw it! Animal Park","compatibility":99,"releases":[{"id":"0100A52011374000","region":null}]},{"id":"00c88822-8324-4caf-91c5-6e83b8b7c225","directory":"wizards-wand-of-epicosity","title":"Wizards: Wand of Epicosity","compatibility":1,"releases":[{"id":"0100C7600E77E000","region":null}]},{"id":"00ce8157-a53b-4055-a833-723362dce618","directory":"8-9-ball-pocket","title":"8 & 9 Ball Pocket","compatibility":99,"releases":[{"id":"010049B016CF8000","region":null}]},{"id":"00e896e9-0a71-4764-b159-69b7c54d8bd9","directory":"devious-dungeon-demo","title":"Devious Dungeon DEMO","compatibility":99,"releases":[{"id":"0100EB900A534000","region":null}]},{"id":"00f6959e-063a-4ffb-a176-6cb4a2eb2e39","directory":"guild-of-darksteel","title":"Guild of Darksteel","compatibility":99,"releases":[{"id":"0100700013364000","region":null}]},{"id":"01019252-62f3-4bce-8915-a11bff86cdec","directory":"starlit-adventures-golden-stars","title":"Starlit Adventures Golden Stars","compatibility":99,"releases":[{"id":"010098E010FDA000","region":null}]},{"id":"010c619b-8da7-405d-a46f-7024b3eec4b6","directory":"dead-effect-2","title":"Dead Effect 2","compatibility":0,"releases":[{"id":"01007860152EE000","region":null}]},{"id":"01129eac-ddcb-4fbc-af9f-83359e385f3b","directory":"midnight-evil","title":"Midnight Evil","compatibility":99,"releases":[{"id":"0100A1200F20C000","region":null}]},{"id":"0114261a-d54e-4b3a-b169-534f0b0b740b","directory":"rayman-r-legends-definitive-edition-demo","title":"RAYMAN® LEGENDS: DEFINITIVE EDITION DEMO","compatibility":1,"releases":[{"id":"0100974004924000","region":null}]},{"id":"011ba4ba-6e43-4f48-8156-af39b883dc1f","directory":"arcade-archives-orius","title":"Arcade Archives ORIUS","compatibility":99,"releases":[{"id":"0100752016C3C000","region":null}]},{"id":"011d3d94-fa2f-4a69-8804-870dc6a15a73","directory":"asteroids-recharged","title":"Asteroids: Recharged","compatibility":2,"releases":[{"id":"01007DB01689C000","region":null}]},{"id":"012a66dc-b7ea-498d-832f-4b984298d4d3","directory":"arcade-archives-donkey-kong-3","title":"Arcade Archives DONKEY KONG 3","compatibility":2,"releases":[{"id":"010002E00D3FE000","region":null}]},{"id":"012f487b-733f-4c09-8e91-8fa11b2a0e48","directory":"mortal-kombat-11","title":"Mortal Kombat 11","compatibility":5,"releases":[{"id":"0100F2200C984000","region":null}]},{"id":"0131fb9e-1a78-43f3-b9d9-6e7c01c1d9e1","directory":"fantasy-hero-unsigned-legacy","title":"FANTASY HERO ~unsigned legacy~","compatibility":1,"releases":[{"id":"0100767008502000","region":null}]},{"id":"013776e4-78a9-4ff2-8dbb-7309afb6aaf3","directory":"golf-story","title":"Golf Story","compatibility":0,"releases":[{"id":"0100779004172000","region":null}]},{"id":"0144b61b-db22-4d37-9710-59d82d42b802","directory":"unicornicopia","title":"Unicornicopia","compatibility":99,"releases":[{"id":"0100A8700B30E000","region":null}]},{"id":"01468391-2729-43f3-8a0b-4d8bb6fa5559","directory":"x-morph-defense","title":"X-Morph: Defense","compatibility":99,"releases":[{"id":"0100DF100B97C000","region":null}]},{"id":"01483cc5-6848-48e4-8938-82506ee86f22","directory":"resolutiion","title":"Resolutiion","compatibility":5,"releases":[{"id":"0100E7F00FFB8000","region":null}]},{"id":"0149e6ce-d105-460a-ace5-17c176e866ca","directory":"serial-cleaner","title":"Serial Cleaner","compatibility":0,"releases":[{"id":"0100818008004000","region":null}]},{"id":"014ec7ad-c9e6-4c96-b065-cff7b33daa92","directory":"ramp-car-jumping","title":"Ramp Car Jumping","compatibility":4,"releases":[{"id":"0100F30012CBE000","region":null}]},{"id":"01519e31-7a53-402f-9da4-e29cd5d5d218","directory":"payday-2","title":"PAYDAY 2","compatibility":0,"releases":[{"id":"0100274004052000","region":null}]},{"id":"01554519-c001-4256-9593-3f7b71580afc","directory":"resident-evil","title":"Resident Evil","compatibility":1,"releases":[{"id":"010050F00BC1A000","region":null}]},{"id":"01585892-1b9e-4db7-bdd1-833022b77751","directory":"katana-zero","title":"Katana ZERO","compatibility":1,"releases":[{"id":"010029600D56A000","region":null}]},{"id":"0172902a-2c5e-4d38-9761-83e5bd5cc919","directory":"titans-pinball","title":"Titans Pinball","compatibility":99,"releases":[{"id":"01009C400E93E000","region":null}]},{"id":"017369db-f3af-45e6-a4e8-f737b84fba35","directory":"blocky-puzzle","title":"Blocky Puzzle","compatibility":99,"releases":[{"id":"01008B7015532000","region":null}]},{"id":"0176b68f-42d7-476f-90b0-a7782e1854e8","directory":"mushihimesama","title":"Mushihimesama","compatibility":1,"releases":[{"id":"010045800FBD0000","region":null}]},{"id":"0176e052-0257-4c09-a8d3-316e6c5602f8","directory":"stitchy-in-tooki-trouble","title":"Stitchy in Tooki Trouble","compatibility":0,"releases":[{"id":"010077B014518000","region":null}]},{"id":"01886de7-8948-4794-9bb1-0c514b856ab7","directory":"robox","title":"Robox","compatibility":99,"releases":[{"id":"010018800C7D2000","region":null}]},{"id":"018f0069-8fcb-45d9-9569-fafa365b88bb","directory":"lost-in-harmony","title":"Lost in Harmony","compatibility":99,"releases":[{"id":"0100B6C00AF6E000","region":null}]},{"id":"0193f221-2265-4818-82bc-064f6616837b","directory":"jetpin","title":"jetPIN","compatibility":99,"releases":[{"id":"0100BCC013864000","region":null}]},{"id":"019a74d6-11f9-4e2a-bbd1-46619aec45d4","directory":"neoverse-trinity-edition","title":"Neoverse Trinity Edition","compatibility":2,"releases":[{"id":"01001A201331E000","region":null}]},{"id":"01a6c714-fbdb-4198-8829-2cd1be71cf93","directory":"warlocks-tower","title":"Warlock's Tower","compatibility":99,"releases":[{"id":"010086C00790C000","region":null}]},{"id":"01a87ead-6dbb-49fa-b9b6-3b285a9ace6d","directory":"crypto-by-powgi","title":"Crypto by POWGI","compatibility":99,"releases":[{"id":"0100D480111C6000","region":null}]},{"id":"01bd32a5-03bf-4c4b-b4df-8c1e8f3ef3e7","directory":"evoland-legendary-edition","title":"Evoland Legendary Edition","compatibility":1,"releases":[{"id":"0100ED100B160000","region":null}]},{"id":"01bf2f4a-4eab-49a6-aad6-299628592331","directory":"hotline-miami-collection","title":"Hotline Miami Collection","compatibility":0,"releases":[{"id":"0100D0E00E51E000","region":null}]},{"id":"01c6bb6f-aa9a-4869-bfa0-7459ce9bb0f5","directory":"perry-pig-jump","title":"Perry Pig Jump","compatibility":99,"releases":[{"id":"01001E800D314000","region":null}]},{"id":"01d391d8-4b16-4bcd-b17d-ea0f36d09158","directory":"knight-terrors","title":"Knight Terrors","compatibility":99,"releases":[{"id":"0100D51006AAC000","region":null}]},{"id":"01d5a9a3-49ce-44e9-951c-73e708be78a4","directory":"arietta-of-spirits","title":"Arietta of Spirits","compatibility":2,"releases":[{"id":"0100E95015392000","region":null}]},{"id":"01f3da51-5ec6-4046-8bf3-192fa5c84ea5","directory":"the-childs-sight","title":"The Childs Sight","compatibility":99,"releases":[{"id":"010066800E9F8000","region":null}]},{"id":"01fa5774-bb1c-4eec-ae86-32cbca53bc17","directory":"bridge-constructor-ultimate-edition","title":"Bridge Constructor Ultimate Edition","compatibility":99,"releases":[{"id":"0100B2500F0E0000","region":null}]},{"id":"01ff1612-9583-40aa-abf9-12d2691d3ae6","directory":"this-is-the-zodiac-speaking","title":"This is the Zodiac Speaking","compatibility":99,"releases":[{"id":"010052D0129E4000","region":null}]},{"id":"020774d7-f81e-489d-a92d-81d9eb946e99","directory":"video-poker-at-aces-casino","title":"Video Poker at Aces Casino","compatibility":99,"releases":[{"id":"010049901147A000","region":null}]},{"id":"020dd823-9809-4f63-a75a-d4dfce101ed2","directory":"love-a-puzzle-box-filled-with-stories","title":"LOVE - A Puzzle Box Filled with Stories","compatibility":99,"releases":[{"id":"01004F0013BAA000","region":null}]},{"id":"021c63e3-31b9-4877-b07e-f5cd30bbb9e7","directory":"the-wardrobe","title":"The Wardrobe","compatibility":99,"releases":[{"id":"0100A6D009840000","region":null}]},{"id":"02208c4f-2448-4d68-b5a6-a7a8d191bc59","directory":"2048-cat","title":"2048 CAT","compatibility":0,"releases":[{"id":"01005E101014C000","region":null}]},{"id":"022a79fa-f098-470a-b783-5123209f91cb","directory":"townsmen","title":"Townsmen","compatibility":3,"releases":[{"id":"010049E00BA34000","region":null}]},{"id":"02348c3d-a06e-44c8-bff1-d3c2d21144cb","directory":"gunhouse","title":"Gunhouse","compatibility":99,"releases":[{"id":"010081C008164000","region":null}]},{"id":"023621d3-ecd1-4410-811e-0d10eb72dc04","directory":"hardway-party","title":"Hardway Party","compatibility":99,"releases":[{"id":"0100BB600C096000","region":null}]},{"id":"023723a6-48b9-4e31-aab5-e8e6741a3fc8","directory":"tetras-escape-demo","title":"Tetra's Escape DEMO","compatibility":99,"releases":[{"id":"01001F200A536000","region":null}]},{"id":"024a10a9-873f-4288-abb8-fc1cc988eefb","directory":"pity-pit","title":"Pity Pit","compatibility":99,"releases":[{"id":"0100197011BFE000","region":null}]},{"id":"024ffac6-eb15-4a76-b29c-36241a5a610c","directory":"broken-age","title":"Broken Age","compatibility":1,"releases":[{"id":"0100EDD0068A6000","region":null}]},{"id":"026c211b-1a6f-433e-b727-4a5a10aa38ee","directory":"cargo-crew-driver","title":"Cargo Crew Driver","compatibility":99,"releases":[{"id":"0100DD6014870000","region":null}]},{"id":"0273ebc8-91b9-4f6a-8295-46d574258a0f","directory":"multi-quiz","title":"Multi Quiz","compatibility":99,"releases":[{"id":"01008E2013FB4000","region":null}]},{"id":"02741eb6-1473-44bd-9b47-6e708fac2ecc","directory":"hero-express","title":"Hero Express","compatibility":99,"releases":[{"id":"0100BEA00E63A000","region":null}]},{"id":"027458bb-a69b-4bdf-8673-5e293c4026f6","directory":"bloodstained-curse-of-the-moon-2","title":"Bloodstained: Curse of the Moon 2","compatibility":0,"releases":[{"id":"01004680124E6000","region":null}]},{"id":"0275f145-b729-4f08-9bb2-47bc3d4b4b69","directory":"flight-sim-2019","title":"Flight Sim 2019","compatibility":1,"releases":[{"id":"0100B9000F2D8000","region":null}]},{"id":"027af589-d0bc-45fe-9bc5-021538fef37b","directory":"psikyo-shooting-stars-alpha","title":"Psikyo Shooting Stars Alpha","compatibility":4,"releases":[{"id":"01007A200F2E2000","region":null}]},{"id":"028dfaf6-f71a-4e77-9fba-02f9ab66a8fe","directory":"regions-of-ruin","title":"Regions of Ruin","compatibility":99,"releases":[{"id":"01005FD00F15A000","region":null}]},{"id":"0291b9ae-5e17-4a84-b8bc-620528a23367","directory":"star-ghost","title":"Star Ghost","compatibility":4,"releases":[{"id":"01002EB007D3A000","region":null}]},{"id":"0292fc04-d7fc-434b-9eef-d0be437dc71f","directory":"a-day-without-me","title":"A Day Without Me","compatibility":99,"releases":[{"id":"0100CD501401E000","region":null}]},{"id":"02a03133-df4e-4446-9ae9-cd8189220251","directory":"rigid-force-redux","title":"Rigid Force Redux","compatibility":0,"releases":[{"id":"0100763010D5A000","region":null}]},{"id":"02abfa5e-b34f-4cc8-bf88-186b62451ab6","directory":"just-shapes-beats-demo","title":"Just Shapes & Beats Demo","compatibility":99,"releases":[{"id":"0100D9600BA8E000","region":null}]},{"id":"02b18ac9-d844-4827-aeab-613019664c58","directory":"uno-demo","title":"Uno Demo","compatibility":99,"releases":[{"id":"010037B00A9C8000","region":null}]},{"id":"02c84d2f-d018-4af9-8944-e2443e2bc0f0","directory":"sumire","title":"Sumire","compatibility":1,"releases":[{"id":"01003D50126A4000","region":null}]},{"id":"02c89828-6468-41db-acd5-d34470c836ab","directory":"gearclub-unlimited","title":"Gear.Club Unlimited","compatibility":1,"releases":[{"id":"010065E003FD8000","region":null}]},{"id":"02d7e5aa-cc90-47cd-8f07-f4de0ad1c41b","directory":"timberman-vs","title":"Timberman VS","compatibility":99,"releases":[{"id":"0100EA1009022000","region":null}]},{"id":"02d82fa2-e38e-4c2b-9b57-839f0fb8dc61","directory":"null-drifter","title":"Null Drifter","compatibility":99,"releases":[{"id":"01000CC010594000","region":null}]},{"id":"02e71fc4-167c-458d-a6b8-2f4564fac71c","directory":"the-dark-eye-memoria","title":"The Dark Eye: Memoria","compatibility":99,"releases":[{"id":"01003FA00EE36000","region":null}]},{"id":"02e8c180-6592-4140-af57-85d1e5cf29c2","directory":"god-wars-the-complete-legend","title":"GOD WARS The Complete Legend","compatibility":99,"releases":[{"id":"0100F3D00B032000","region":null}]},{"id":"02f5b14c-87b0-41c6-9d8e-05a34bc6c634","directory":"8-ball-pocket","title":"8-Ball Pocket","compatibility":99,"releases":[{"id":"0100A9900F3BE000","region":null}]},{"id":"02f824e9-6665-468d-a6bb-0d3bb7ace158","directory":"prehistoric-life-puzzles","title":"Prehistoric Life Puzzles","compatibility":99,"releases":[{"id":"0100CC9015E30000","region":null}]},{"id":"02fac8d7-97dc-4f0b-aea8-d9e45fae6e86","directory":"prison-architect-nintendo-switch-edition","title":"Prison Architect: Nintendo Switch Edition","compatibility":1,"releases":[{"id":"010029200AB1C000","region":null}]},{"id":"02fbbefa-67d5-4e16-bf7e-a0e28cfb1511","directory":"1-anagrams","title":"#1 Anagrams","compatibility":99,"releases":[{"id":"0100F1D014F08000","region":null}]},{"id":"02fd7bf2-2e52-4bcd-8783-542942bd9cea","directory":"fantasy-tavern-sextet-vol-3-postlude-days","title":"Fantasy Tavern Sextet -Vol.3 Postlude Days-","compatibility":4,"releases":[{"id":"010043D014336000","region":null}]},{"id":"0300f2f2-7add-4196-a952-82ba6e735c4b","directory":"spintires-mudrunner-american-wilds","title":"Spintires: MudRunner - American Wilds","compatibility":2,"releases":[{"id":"01009D200952E000","region":null}]},{"id":"0307b175-72e6-45da-a8cc-d07c3f854868","directory":"link-a-pix-deluxe","title":"Link-a-Pix Deluxe","compatibility":0,"releases":[{"id":"010047600FBFE000","region":null}]},{"id":"0320f44f-ac02-463f-affd-536cc0963cc2","directory":"bridge-constructor-the-walking-dead","title":"Bridge Constructor: The Walking Dead","compatibility":99,"releases":[{"id":"01002AD0126AE000","region":null}]},{"id":"0321122f-a505-42ef-a1fc-71d5301c3309","directory":"just-dance-2019","title":"Just Dance 2019","compatibility":0,"releases":[{"id":"010075600AE96000","region":null}]},{"id":"03291850-6c69-4df0-9a55-aa7a1ea7f41f","directory":"startide","title":"Startide","compatibility":99,"releases":[{"id":"010051D00C9F8000","region":null}]},{"id":"032d0936-77ad-4041-86d2-4ff8148db22e","directory":"emma-lost-in-memories","title":"Emma: Lost in Memories","compatibility":99,"releases":[{"id":"010017B0102A8000","region":null}]},{"id":"03442c19-4ed9-427b-ba92-3fb1fd710c1f","directory":"five-nights-at-freddys-sister-location","title":"Five Nights at Freddy's: Sister Location","compatibility":4,"releases":[{"id":"01003B200E440000","region":null}]},{"id":"0348f10e-4526-4483-981f-650359fbbc9b","directory":"mushroom-savior","title":"Mushroom Savior","compatibility":99,"releases":[{"id":"0100812012554000","region":null}]},{"id":"03698c43-9f0e-4441-a3dc-085978bb0ff9","directory":"never-again","title":"Never Again","compatibility":99,"releases":[{"id":"01005F201038C000","region":null}]},{"id":"03699871-074b-4770-bea8-3e46971c5f62","directory":"skully","title":"Skully","compatibility":2,"releases":[{"id":"0100D7B011654000","region":null}]},{"id":"03722d61-ccf7-4012-9fcf-3561b0e3c2f3","directory":"word-forward","title":"Word Forward","compatibility":99,"releases":[{"id":"010051B016642000","region":null}]},{"id":"0374b54a-ebe0-45a1-aa1f-41e49f25d592","directory":"arcade-archives-vs-gradius","title":"Arcade Archives VS. GRADIUS","compatibility":4,"releases":[{"id":"01004EC00E634000","region":null}]},{"id":"037b6d81-0bcc-4319-9395-d9f27304cec3","directory":"the-midnight-sanctuary","title":"The Midnight Sanctuary","compatibility":99,"releases":[{"id":"0100DEC00B2BC000","region":null}]},{"id":"0381c189-fae0-466e-8150-5ce8d8ff6b43","directory":"snack-world-the-dungeon-crawl-gold","title":"SNACK WORLD: THE DUNGEON CRAWL — GOLD","compatibility":99,"releases":[{"id":"010010400D46A000","region":null}]},{"id":"038761c3-cfa3-4b0f-998a-73ef6d63d53c","directory":"pixel-game-maker-series-jewelinx","title":"Pixel Game Maker Series JEWELiNX","compatibility":99,"releases":[{"id":"010054E0168A6000","region":null}]},{"id":"0399e8ee-afa6-409e-be90-c863ac4c8897","directory":"cat-milk","title":".cat Milk","compatibility":99,"releases":[{"id":"0100972015984000","region":null}]},{"id":"039b5923-7444-485d-931d-56d15534fe79","directory":"touhou-spell-bubble","title":"Touhou spell bubble","compatibility":0,"releases":[{"id":"0100E9D00D6C2000","region":null}]},{"id":"03a0a436-aa88-4e62-9715-d73f1178f9e3","directory":"space-wars","title":"Space Wars","compatibility":99,"releases":[{"id":"010014F015DF2000","region":null}]},{"id":"03a69dde-0b31-4ee4-8cc6-6a05459cb390","directory":"traditional-tactics-ne","title":"Traditional Tactics Ne+","compatibility":99,"releases":[{"id":"010008C01010A000","region":null}]},{"id":"03a89231-9bd5-4efe-b1eb-12ebb3f29f15","directory":"hoggy2","title":"Hoggy2","compatibility":99,"releases":[{"id":"0100F7300ED2C000","region":null}]},{"id":"03ae7cbc-0efe-444b-87fd-ea3bd7845dbb","directory":"beat-rush","title":"Beat Rush","compatibility":99,"releases":[{"id":"0100DC500B4B0000","region":null}]},{"id":"03bd3eff-a7a6-4844-9ec9-755603d0f4f8","directory":"the-sokoban","title":"The Sokoban","compatibility":99,"releases":[{"id":"01003B4015BE4000","region":null}]},{"id":"03ee7eb7-f034-472f-9f9f-5b76e494b038","directory":"bullseye","title":"Bullseye™","compatibility":99,"releases":[{"id":"0100C06014588000","region":null}]},{"id":"040db7cb-98b4-452f-ae49-2d9d0a2b4be7","directory":"collapsed","title":"Collapsed","compatibility":99,"releases":[{"id":"01004F1012716000","region":null}]},{"id":"04197cee-d255-4215-8b05-b4ea4a45d666","directory":"sydney-hunter-and-the-curse-of-the-mayan","title":"Sydney Hunter and the Curse of the Mayan","compatibility":1,"releases":[{"id":"010007300C482000","region":null}]},{"id":"042343e6-7a4d-4181-b220-9e8b35c6cb24","directory":"okunoka","title":"OkunoKA","compatibility":99,"releases":[{"id":"01006AB00BD82000","region":null}]},{"id":"0435b268-a2ca-4788-b13f-b152e087ef73","directory":"pixel-game-maker-series-dungeon-of-nazarick","title":"Pixel Game Maker Series DUNGEON OF NAZARICK","compatibility":99,"releases":[{"id":"0100F40013720000","region":null}]},{"id":"043b85ef-0143-4690-9337-aba68eb22c0a","directory":"harvest-moon-r-one-world","title":"Harvest Moon®: One World","compatibility":2,"releases":[{"id":"010016B010FDE000","region":null}]},{"id":"044242f6-b9e1-4c67-9c7b-13e02dfc684b","directory":"ibb-obb","title":"ibb & obb","compatibility":99,"releases":[{"id":"0100E09009600000","region":null}]},{"id":"04531cc0-031c-41e2-bb07-dee28ec5e503","directory":"race-with-ryan","title":"Race with Ryan","compatibility":99,"releases":[{"id":"010075D00DD04000","region":null}]},{"id":"0458286c-d1c0-4d93-a867-aca2ab2c264a","directory":"trover-saves-the-universe","title":"Trover Saves The Universe","compatibility":99,"releases":[{"id":"010089600FB72000","region":null}]},{"id":"045f2c38-e15e-4d08-9194-6081d60796fb","directory":"dogfight","title":"Dogfight","compatibility":99,"releases":[{"id":"0100E80013BB0000","region":null}]},{"id":"046256e9-7ca4-4d7e-8786-6ccdcbb570eb","directory":"mon-amour","title":"Mon Amour","compatibility":99,"releases":[{"id":"0100E5500D294000","region":null}]},{"id":"0465c1af-696c-49d5-9092-c18682ac9494","directory":"farm-builder","title":"Farm Builder","compatibility":99,"releases":[{"id":"0100BC50122B6000","region":null}]},{"id":"046e0269-cf03-40fb-9c42-e4c5d171b058","directory":"yu-gi-oh-legacy-of-the-duelist-link-evolution","title":"Yu-Gi-Oh! Legacy of the Duelist: Link Evolution","compatibility":3,"releases":[{"id":"010022400BE5A000","region":null}]},{"id":"047b4e59-0370-41b8-b421-dfb0bf3ee733","directory":"splatter","title":"Splatter","compatibility":99,"releases":[{"id":"0100C8C0163E2000","region":null}]},{"id":"0485c2fd-1cf5-4b06-95d0-fe96d4369ec3","directory":"elva-the-eco-dragon","title":"Elva the Eco Dragon","compatibility":99,"releases":[{"id":"010012E0157A6000","region":null}]},{"id":"048f98bc-98b4-4eca-a84e-8469b78126af","directory":"she-sees-red-interactive-movie","title":"She Sees Red - Interactive Movie","compatibility":1,"releases":[{"id":"01000320110C2000","region":null}]},{"id":"04983c67-22f9-432e-bc7e-a57671f812c5","directory":"hoa","title":"Hoa","compatibility":99,"releases":[{"id":"010022E013A1A000","region":null}]},{"id":"04a14571-c5a5-44cc-945a-c1329e1e7402","directory":"tap-skaters","title":"Tap Skaters","compatibility":99,"releases":[{"id":"0100EBC00ECA8000","region":null}]},{"id":"04a9afdd-f96e-468d-af7e-7f0d2028d7e5","directory":"dead-dungeon","title":"Dead Dungeon","compatibility":99,"releases":[{"id":"01000D900E0F0000","region":null}]},{"id":"04acd6e8-cf01-493f-bad2-d6385859c6d3","directory":"spooky-chase","title":"Spooky Chase","compatibility":99,"releases":[{"id":"010097C01336A000","region":null}]},{"id":"04bf9899-6e58-49ee-b3ae-682dca48c699","directory":"race-arcade","title":"Race Arcade","compatibility":5,"releases":[{"id":"010054A008EE2000","region":null}]},{"id":"04c1d34c-8d64-4f19-96fa-f3c422ef0b21","directory":"override-mech-city-brawl-super-charged-mega-edition","title":"Override: Mech City Brawl – Super Charged Mega Edition","compatibility":99,"releases":[{"id":"0100F2600EA72000","region":null}]},{"id":"04c49116-b803-4a52-aa2f-b3982fdf166d","directory":"the-amazing-american-circus","title":"The Amazing American Circus","compatibility":99,"releases":[{"id":"0100630015B34000","region":null}]},{"id":"04d38b99-74af-4eeb-a574-5ce20286dc8f","directory":"bedtime-blues","title":"Bedtime Blues","compatibility":99,"releases":[{"id":"01001D600D2C8000","region":null}]},{"id":"04d4a2cb-beed-429c-a1ca-3e4bf33d0f5f","directory":"krystopia-a-puzzle-journey","title":"Krystopia: A Puzzle Journey","compatibility":99,"releases":[{"id":"0100971011AFC000","region":null}]},{"id":"04d702e9-bc1c-4f4b-9a9d-909c98c91e08","directory":"project-warlock","title":"Project Warlock","compatibility":0,"releases":[{"id":"0100BDB01150E000","region":null}]},{"id":"04d82582-b141-4d6d-8275-4f2d8d7d0df4","directory":"rpg-maker-mv","title":"RPG Maker MV","compatibility":99,"releases":[{"id":"0100E2C00B414000","region":null}]},{"id":"04d8c37f-0643-4e03-97ea-9b5c708f642a","directory":"donkey-kong-country-tropical-freeze","title":"Donkey Kong Country: Tropical Freeze","compatibility":1,"releases":[{"id":"0100C1F0051B6000","region":null}]},{"id":"04e7168b-337e-42e2-a43f-d3ce75975d71","directory":"close-to-the-sun","title":"Close to the Sun","compatibility":99,"releases":[{"id":"0100B7200DAC6000","region":null}]},{"id":"04eb51d7-8878-4e08-bff0-b43693c33078","directory":"choices-that-matter-and-their-souls-were-eaten","title":"Choices That Matter: And Their Souls Were Eaten","compatibility":99,"releases":[{"id":"01003DA0132EE000","region":null}]},{"id":"051d139e-0622-4b9a-9bbd-8a722874fdff","directory":"himno","title":"Himno","compatibility":99,"releases":[{"id":"010069900F270000","region":null}]},{"id":"05224cd5-7bdf-4b85-a9bc-a0abc6e657a2","directory":"a-winters-daydream","title":"A Winter's Daydream","compatibility":99,"releases":[{"id":"01000ED00F64E000","region":null}]},{"id":"053b753f-3a42-4f91-9524-b2f4b583173f","directory":"hidden-through-time","title":"Hidden Through Time","compatibility":0,"releases":[{"id":"01006D00109FE000","region":null}]},{"id":"053f229e-a2d6-442d-b150-caf49f29c22d","directory":"atelier-escha-and-logy-alchemists-of-the-dusk-sky-dx","title":"Atelier Escha & Logy: Alchemists of the Dusk Sky DX","compatibility":99,"releases":[{"id":"0100E5600EE8E000","region":null}]},{"id":"0542b59f-f5f5-4acb-866d-ba1fcb67743a","directory":"vaporum-lockdown","title":"Vaporum: Lockdown","compatibility":99,"releases":[{"id":"010088D013CE0000","region":null}]},{"id":"054d3a62-da65-4548-972f-5e09c5d244af","directory":"soccer-tactics-and-glory","title":"Soccer, Tactics & Glory","compatibility":99,"releases":[{"id":"010095C00F9DE000","region":null}]},{"id":"0565155a-5684-41bf-b336-f11a8cde8d22","directory":"lego-harry-potter-collection","title":"LEGO Harry Potter Collection","compatibility":3,"releases":[{"id":"010052A00B5D2000","region":null}]},{"id":"05681e05-63f0-42a9-8119-d84ade46feec","directory":"faraday-protocol","title":"Faraday Protocol","compatibility":99,"releases":[{"id":"010076E0145A6000","region":null}]},{"id":"05760a8d-8963-42e3-9aa1-da125fa75e58","directory":"minecraft-dungeons","title":"Minecraft Dungeons","compatibility":1,"releases":[{"id":"01006C100EC08000","region":null}]},{"id":"057c9dcf-93fb-4df1-ae4e-5d5d805fd6a9","directory":"craps-at-aces-casino","title":"Craps at Aces Casino","compatibility":99,"releases":[{"id":"01001CC014784000","region":null}]},{"id":"058eb0d3-aa86-4bac-85eb-88c0a79db175","directory":"snowball-collections-bubble","title":"Snowball Collections Bubble","compatibility":99,"releases":[{"id":"0100C20014B3C000","region":null}]},{"id":"059203a5-f0d8-4bd4-a8c1-f11a45f23bb7","directory":"jack-n-jill-dx","title":"Jack N' Jill DX","compatibility":1,"releases":[{"id":"01006E900B6EC000","region":null}]},{"id":"0597a469-c452-48fa-881d-6c49c429dad1","directory":"party-golf","title":"Party Golf","compatibility":0,"releases":[{"id":"0100B8E00359E000","region":null}]},{"id":"05a202e3-c724-4600-ae5f-35282edeaa6a","directory":"would-you-like-to-run-an-idol-cafe","title":"Would you like to run an idol cafe?","compatibility":99,"releases":[{"id":"0100A02016B4A000","region":null}]},{"id":"05a291cb-57bf-45f2-beb7-de2bc9722cac","directory":"pirates-pinball","title":"Pirates Pinball","compatibility":99,"releases":[{"id":"010077C00D610000","region":null}]},{"id":"05b490bb-d8c8-4063-836f-30ed1bc2e7e1","directory":"8-bit-farm","title":"8-Bit Farm","compatibility":99,"releases":[{"id":"01008E500EDE0000","region":null}]},{"id":"05bf85fb-8567-482b-8f52-20d73c1c6052","directory":"embr","title":"Embr","compatibility":99,"releases":[{"id":"0100CC6013432000","region":null}]},{"id":"05c9832f-d6b3-426e-ad04-3d085b6bf53f","directory":"strangers-of-the-power-3","title":"Strangers of the Power 3","compatibility":99,"releases":[{"id":"010081B00D890000","region":null}]},{"id":"05cc20e8-b373-420c-bde3-303801add377","directory":"xylophone","title":"Xylophone","compatibility":99,"releases":[{"id":"0100518015236000","region":null}]},{"id":"05dd4b3b-810e-4f18-a625-a882c7cec932","directory":"banner-saga-2","title":"Banner Saga 2","compatibility":5,"releases":[{"id":"0100388008758000","region":null}]},{"id":"05ec4bbd-cd3e-41cd-8af7-46c66d28eb7b","directory":"arcade-archives-soccer","title":"Arcade Archives SOCCER","compatibility":99,"releases":[{"id":"0100EFB01316C000","region":null}]},{"id":"05f4c845-e854-42ff-8286-ca0d6c4e703f","directory":"hidden-in-plain-sight","title":"Hidden in Plain Sight","compatibility":99,"releases":[{"id":"01004BA0110D6000","region":null}]},{"id":"060d85f5-d6fb-4e12-a50b-b35bfec3c304","directory":"obakeidoro","title":"OBAKEIDORO!","compatibility":1,"releases":[{"id":"010074600CC7A000","region":null}]},{"id":"060fab3b-4176-43ba-87ea-8f6fbcb52d74","directory":"little-friends-dogs-and-cats","title":"Little Friends: Dogs & Cats","compatibility":4,"releases":[{"id":"010079A00D9E8000","region":null}]},{"id":"0612c1d6-110c-4f49-aa14-09d337cc6716","directory":"travel-mosaics-9-mysterious-prague","title":"Travel Mosaics 9: Mysterious Prague","compatibility":99,"releases":[{"id":"0100E530133DA000","region":null}]},{"id":"0613691d-168c-44e5-977b-99599b7659f9","directory":"the-red-lantern","title":"The Red Lantern","compatibility":99,"releases":[{"id":"0100C6800D9D0000","region":null}]},{"id":"06331385-f45e-4be0-b839-975ce46c7d94","directory":"farming-simulator-nintendo-switch-edition","title":"Farming Simulator Nintendo Switch Edition","compatibility":1,"releases":[{"id":"0100D04004176000","region":null}]},{"id":"06377d5b-d1ae-47e0-88aa-5f4aec4b28b8","directory":"shadow-blade-reload","title":"Shadow Blade: Reload","compatibility":0,"releases":[{"id":"0100D5500DA94000","region":null}]},{"id":"0641afb5-a4d1-4229-b470-42f6e517c505","directory":"puzzle-bundle-3-in-1","title":"Puzzle Bundle - 3 in 1","compatibility":99,"releases":[{"id":"01004BC012436000","region":null}]},{"id":"065236fc-3d34-4ebc-b774-925df118f6e1","directory":"unhatched","title":"Unhatched","compatibility":99,"releases":[{"id":"01007D1013512000","region":null}]},{"id":"065bd008-cf29-4763-8186-266be728d134","directory":"siralim-3","title":"Siralim 3","compatibility":1,"releases":[{"id":"010073E00DBDA000","region":null}]},{"id":"06625524-c00b-49ef-9e1a-58537b5f2380","directory":"eat-beat-deadspike-san","title":"EAT BEAT DEADSPIKE-san","compatibility":1,"releases":[{"id":"0100A9B009678000","region":null}]},{"id":"06700092-816e-488b-9a33-0e0b54ce66b1","directory":"memoranda","title":"Memoranda","compatibility":99,"releases":[{"id":"01004B201308A000","region":null}]},{"id":"068baded-4c91-4806-9d2f-fb7c04f51e8a","directory":"rolling-gunner","title":"Rolling Gunner","compatibility":0,"releases":[{"id":"010076200CA16000","region":null}]},{"id":"068d9321-772d-4aa8-b75b-4f48aa1bb6a4","directory":"el-hijo-a-wild-west-tale","title":"El Hijo - A Wild West Tale","compatibility":2,"releases":[{"id":"010020A01209C000","region":null}]},{"id":"068e2bc8-60ca-49a4-95c6-17a0a71b68bf","directory":"turnip-boy-commits-tax-evasion","title":"Turnip Boy Commits Tax Evasion","compatibility":0,"releases":[{"id":"01008DF012A7A000","region":null}]},{"id":"068fff22-3f66-44ec-b786-17396f66fd97","directory":"alvastia-chronicles","title":"Alvastia Chronicles","compatibility":4,"releases":[{"id":"0100F0700CD8E000","region":null}]},{"id":"069ab4e6-10e0-49f5-b853-74fc5c26faea","directory":"inversus-deluxe","title":"INVERSUS Deluxe","compatibility":1,"releases":[{"id":"01001D0003B96000","region":null}]},{"id":"069b9a83-b3df-4662-b6ae-9dbce0483b3a","directory":"zombillie","title":"Zombillie","compatibility":99,"releases":[{"id":"0100CD300A1BA000","region":null}]},{"id":"069f5ad7-1c38-4631-a8f5-868602cc75f6","directory":"maze","title":"Maze","compatibility":99,"releases":[{"id":"0100E8B012FBC000","region":null}]},{"id":"06a25351-7335-409f-adc5-e55db813b181","directory":"nekopara-vol2","title":"NEKOPARA Vol.2","compatibility":0,"releases":[{"id":"010012900C782000","region":null}]},{"id":"06b4c047-674b-4991-a14e-8f7cbd48f8e8","directory":"tyr-chains-of-valhalla","title":"Tyr : Chains of Valhalla","compatibility":0,"releases":[{"id":"01003B200C6CA000","region":null}]},{"id":"06b9213a-bd6a-4542-a7c5-4fda944cefd8","directory":"lots-of-slots","title":"Lots of Slots","compatibility":99,"releases":[{"id":"0100CAB00FDC4000","region":null}]},{"id":"06c674e3-457a-48be-aaea-f1e0c0503bdd","directory":"klondike-solitaire-collection","title":"Klondike Solitaire Collection","compatibility":99,"releases":[{"id":"01000F6014D62000","region":null}]},{"id":"06d02ee3-2135-4926-b1ba-3ea32afc8f4c","directory":"i-hate-running-backwards","title":"I Hate Running Backwards","compatibility":99,"releases":[{"id":"01006D300AA58000","region":null}]},{"id":"06d4e565-ab1c-4364-898c-2679dc2f45a7","directory":"linelight","title":"Linelight","compatibility":99,"releases":[{"id":"0100EDE012B58000","region":null}]},{"id":"06f45c11-b1e2-4c1d-a1f4-ec6265518e71","directory":"croixleur-sigma","title":"Croixleur Sigma","compatibility":0,"releases":[{"id":"01000F0007D92000","region":null}]},{"id":"06f5e19f-b24b-410d-a13f-ed2cd3f7a778","directory":"sonic-mania","title":"Sonic Mania","compatibility":0,"releases":[{"id":"01009AA000FAA000","region":null}]},{"id":"06f907a6-b2ee-4bf8-a1ef-f185ae7db0b4","directory":"cube-blast-match","title":"Cube Blast: Match","compatibility":99,"releases":[{"id":"010019B013A12000","region":null}]},{"id":"06fa799f-0c6d-4b6b-866c-e0c3321a11f3","directory":"shadowgate","title":"Shadowgate","compatibility":99,"releases":[{"id":"010073400B696000","region":null}]},{"id":"07018016-8a81-4946-84cd-99a5e47c6c5e","directory":"zombies-ruined-my-day","title":"Zombies ruined my day","compatibility":99,"releases":[{"id":"010011B0122CA000","region":null}]},{"id":"0702d35e-f773-49cb-8e09-05bed41da271","directory":"piczle-lines-dx-demo","title":"Piczle Lines DX Demo","compatibility":99,"releases":[{"id":"0100917007888000","region":null}]},{"id":"070c6273-ecf2-4aeb-8e9c-bb2d644dca3b","directory":"aca-neogeo-puzzle-bobble","title":"ACA NEOGEO PUZZLE BOBBLE","compatibility":99,"releases":[{"id":"010049A00C7AA000","region":null}]},{"id":"07148a9c-2812-457c-ab04-cd3f2311e6e7","directory":"balloon-pop-learning-letters-numbers-colors-game-for-kids","title":"Balloon Pop - Learning Letters, Numbers, Colors, Game for Kids","compatibility":99,"releases":[{"id":"0100C5F015F70000","region":null}]},{"id":"071e0cf6-45f0-4bec-9b0f-bddc6f5fd777","directory":"saints-row-the-third-the-full-package","title":"SAINTS ROW: THE THIRD - THE FULL PACKAGE","compatibility":4,"releases":[{"id":"0100DE600BEEE000","region":null}]},{"id":"071e2f01-8b43-40bd-8379-40e61a84ff16","directory":"trigger-witch","title":"Trigger Witch","compatibility":99,"releases":[{"id":"010006A01441C000","region":null}]},{"id":"071ede26-edcd-4fd0-aa1b-89c47bfb1498","directory":"arcade-archives-vs-baseball","title":"Arcade Archives VS. BASEBALL","compatibility":99,"releases":[{"id":"0100865011CBC000","region":null}]},{"id":"071fe529-cd62-4850-b628-b92cad696cb7","directory":"mario-kart-live-home-circuit","title":"Mario Kart Live: Home Circuit™","compatibility":5,"releases":[{"id":"0100ED100BA3A000","region":null}]},{"id":"0720774f-15fe-4b47-acdc-8e58c5b07f50","directory":"crimsonland","title":"Crimsonland","compatibility":3,"releases":[{"id":"01005640080B0000","region":null}]},{"id":"072454b7-3ef9-4618-8034-65ad08f1ccb0","directory":"steamburg","title":"Steamburg","compatibility":99,"releases":[{"id":"01004DD00C87A000","region":null}]},{"id":"07286ba9-b58b-4aa5-81e7-3dbf0bbf78d6","directory":"guard-duty","title":"Guard Duty","compatibility":99,"releases":[{"id":"0100C69010522000","region":null}]},{"id":"073f3fa5-3d89-4066-9630-ce0dbf1712fc","directory":"puzzle-book","title":"Puzzle Book","compatibility":99,"releases":[{"id":"010043100F0EA000","region":null}]},{"id":"07433093-b16d-480e-82cb-3d3a42cb175c","directory":"galactic-invasion","title":"Galactic Invasion","compatibility":99,"releases":[{"id":"0100F9301632A000","region":null}]},{"id":"074dc1c8-02f2-4fc5-b60f-affc7c53f58e","directory":"radiohammer-station","title":"RADIOHAMMER STATION","compatibility":99,"releases":[{"id":"01008FA00ACEC000","region":null}]},{"id":"074fc4ab-e9af-4d93-8c92-b4e08c8c54fb","directory":"magicolors","title":"Magicolors","compatibility":99,"releases":[{"id":"010032C011356000","region":null}]},{"id":"0750e87c-41bb-4c85-8f18-c39dc9d866c8","directory":"xenoraid","title":"Xenoraid","compatibility":99,"releases":[{"id":"0100928005BD2000","region":null}]},{"id":"0753f321-4038-466b-ac90-d43b0186378d","directory":"exploding-kittens","title":"Exploding Kittens","compatibility":99,"releases":[{"id":"0100BC20118EE000","region":null}]},{"id":"076b7c2f-4e9e-4ec1-a74d-d3a78a90a281","directory":"the-experiment-escape-room","title":"The Experiment: Escape Room","compatibility":0,"releases":[{"id":"01006050114D4000","region":null}]},{"id":"077389f9-3cb9-41df-a7e8-fbb45b08d659","directory":"rico","title":"RICO","compatibility":99,"releases":[{"id":"01009D5009234000","region":null}]},{"id":"077581d2-e817-49aa-8176-697dc933c029","directory":"get-ogre-it","title":"Get Ogre It","compatibility":99,"releases":[{"id":"0100926014A96000","region":null}]},{"id":"077a681f-d6ea-4034-8112-253c6934442b","directory":"modern-combat-blackout","title":"Modern Combat Blackout","compatibility":5,"releases":[{"id":"0100D8700B712000","region":null}]},{"id":"07819478-12ba-4fe0-a081-35601f194f8b","directory":"starlink-battle-for-atlas-digital-edition","title":"Starlink: Battle for Atlas Digital Edition","compatibility":4,"releases":[{"id":"01002CC003FE6000","region":null}]},{"id":"0793348f-81f6-4c11-88c4-841ab15b880d","directory":"detective-di-the-silk-rose-murders","title":"Detective Di: The Silk Rose Murders","compatibility":99,"releases":[{"id":"0100032016AF6000","region":null}]},{"id":"079f984a-7226-4b0a-b998-116d85e025e9","directory":"marble-power-blast","title":"Marble Power Blast","compatibility":99,"releases":[{"id":"01008E800D1FE000","region":null}]},{"id":"07a2d9f9-c3a4-447c-8489-ed1b169e809d","directory":"danganronpa-s-ultimate-summer-camp","title":"Danganronpa S: Ultimate Summer Camp","compatibility":2,"releases":[{"id":"0100DF3014170000","region":null}]},{"id":"07ac6163-1b2a-4339-ae6f-f83de8879653","directory":"the-men-of-yoshiwara-ohgiya","title":"The Men of Yoshiwara: Ohgiya","compatibility":99,"releases":[{"id":"0100F4E006B32000","region":null}]},{"id":"07adb711-fabf-442e-9d2b-30fcd34fa67c","directory":"journey-of-the-broken-circle","title":"Journey of the Broken Circle","compatibility":99,"releases":[{"id":"0100251012E38000","region":null}]},{"id":"07b1b848-598f-4737-a332-251e868d0857","directory":"loot-monkey-bling-palace","title":"Loot Monkey: Bling Palace","compatibility":99,"releases":[{"id":"0100B1200ADEA000","region":null}]},{"id":"07b6c2f1-9832-473e-8196-e683bec0d4e3","directory":"henosis","title":"HENOSIS","compatibility":99,"releases":[{"id":"0100B8C014824000","region":null}]},{"id":"07cbbcef-0524-47f9-ba67-c28853cbc2d3","directory":"namco-museum-pac-man-vs-free-multiplayer-only-ver","title":"NAMCO MUSEUM (PAC-MAN VS. Free Multiplayer-only Ver.)","compatibility":5,"releases":[{"id":"0100BA3003B70000","region":null}]},{"id":"07d40f2d-3192-41a1-bcc6-29b4478ec2a5","directory":"rally-racers","title":"Rally Racers","compatibility":99,"releases":[{"id":"010057F007AA2000","region":null}]},{"id":"07d4a8a8-3a00-4188-994e-b39a625dcad7","directory":"battle-supremacy-ground-assault","title":"Battle Supremacy - Ground Assault","compatibility":99,"releases":[{"id":"0100F2100D8F2000","region":null}]},{"id":"07d9c3de-dbb2-41b8-a2f6-cd32807d8100","directory":"cook-serve-delicious-3","title":"Cook, Serve, Delicious! 3?!","compatibility":99,"releases":[{"id":"0100B82010B6C000","region":null}]},{"id":"07ebab3f-cace-4d35-bbae-5d8241570d00","directory":"warhammer-age-of-sigmar-champions","title":"Warhammer Age of Sigmar: Champions","compatibility":99,"releases":[{"id":"010089A00C7B0000","region":null}]},{"id":"07ee9c88-9f37-40d0-88b9-22e74dbe8296","directory":"aca-neogeo-metal-slug-2","title":"ACA NEOGEO METAL SLUG 2","compatibility":2,"releases":[{"id":"010086300486E000","region":null}]},{"id":"07fa22eb-4f54-4817-a26b-a56b0d3082ab","directory":"match-3-adventure-collection","title":"Match 3 Adventure Collection","compatibility":99,"releases":[{"id":"0100F3B015B14000","region":null}]},{"id":"07fb9ac2-7350-4993-96fe-1806fba05257","directory":"ashen","title":"Ashen","compatibility":4,"releases":[{"id":"010027B00E40E000","region":null}]},{"id":"08097f2d-8772-4136-b98e-ad09340eb092","directory":"rogue-explorer","title":"Rogue Explorer","compatibility":1,"releases":[{"id":"010090C014D3C000","region":null}]},{"id":"08112409-1784-4470-b650-35d6ae1e002e","directory":"crimson-keep","title":"Crimson Keep","compatibility":99,"releases":[{"id":"010004300C33A000","region":null}]},{"id":"081485f2-37cd-4a22-9c3d-681491e9d8fb","directory":"how-to-take-off-your-mask-remastered","title":"How to take off your Mask Remastered","compatibility":2,"releases":[{"id":"01005000133AE000","region":null}]},{"id":"0815a04f-8a85-4732-8967-236b3a566568","directory":"up-cliff-drive","title":"Up Cliff Drive","compatibility":99,"releases":[{"id":"0100D86012928000","region":null}]},{"id":"08186222-6a9c-4ab3-ac5c-1a2e7ab3bd0d","directory":"bite-the-bullet","title":"Bite the Bullet","compatibility":1,"releases":[{"id":"0100A0800EA9C000","region":null}]},{"id":"08372744-7f6f-49e2-bdf5-355d8c7de55e","directory":"dgeneration-the-original","title":"D/Generation : The Original","compatibility":99,"releases":[{"id":"010020700B432000","region":null}]},{"id":"083db69c-401c-4911-a956-29af2a21ccc2","directory":"akihabara-crash-123stage1","title":"Akihabara CRASH! 123STAGE+1","compatibility":99,"releases":[{"id":"010033100AC2C000","region":null}]},{"id":"08525a1b-6531-480d-8a93-d97681c753e5","directory":"blind-postman","title":"Blind Postman","compatibility":99,"releases":[{"id":"0100F8F015D3C000","region":null}]},{"id":"0855a1ea-bf5b-4ff7-8fef-02ebc432c537","directory":"demon-turf","title":"Demon Turf","compatibility":1,"releases":[{"id":"0100FF5015492000","region":null}]},{"id":"086a55b0-5765-457f-8a25-c2c10c61b1ec","directory":"children-of-morta","title":"Children of Morta","compatibility":2,"releases":[{"id":"01002DE00C250000","region":null}]},{"id":"086ca05d-d44d-40f4-9e47-347a27b8b4a6","directory":"necrosphere-deluxe","title":"Necrosphere Deluxe","compatibility":99,"releases":[{"id":"01003F000C7F8000","region":null}]},{"id":"086ce65f-5aed-4fe9-96df-501e3787ca2a","directory":"the-charming-empire","title":"The Charming Empire","compatibility":99,"releases":[{"id":"010006200949E000","region":null}]},{"id":"0877abb7-f55a-475c-a339-2c4f75956b45","directory":"alchemic-dungeons-dx","title":"Alchemic Dungeons DX","compatibility":99,"releases":[{"id":"01000E800CC26000","region":null}]},{"id":"08a10bf9-0900-4325-b8a1-cf9c55223070","directory":"trios-lofi-beats-numbers-to-chill-to","title":"TRIOS - lofi beats / numbers to chill to","compatibility":99,"releases":[{"id":"01007F5013AFA000","region":null}]},{"id":"08a4ebaf-4053-4418-8e75-abe4a2e940b9","directory":"niffelheim","title":"Niffelheim","compatibility":99,"releases":[{"id":"010022600A79A000","region":null}]},{"id":"08b09d92-b8aa-4280-9748-1f80c6cddf2b","directory":"n-nplusplus","title":"N++ (NPLUSPLUS)","compatibility":1,"releases":[{"id":"01000D5005974000","region":null}]},{"id":"08d68578-c99c-4dda-8969-8d52c5412c86","directory":"goat-simulator-the-goaty","title":"Goat Simulator: The GOATY","compatibility":4,"releases":[{"id":"010032600C8CE000","region":null}]},{"id":"08d95293-32ed-4b9a-83ee-57f3f90030b0","directory":"freaky-awesome","title":"Freaky Awesome","compatibility":2,"releases":[{"id":"01001EE00AD4C000","region":null}]},{"id":"08e0ab45-ab12-4667-a3cf-4e8bb80cfb10","directory":"metro-last-light-redux","title":"Metro: Last Light Redux","compatibility":3,"releases":[{"id":"0100F0400E850000","region":null}]},{"id":"08f0b234-9d61-4ea6-ae54-d6a4a0e00179","directory":"bulletstorm-duke-of-switch-edition","title":"Bulletstorm: Duke of Switch Edition","compatibility":2,"releases":[{"id":"01003DD00D658000","region":null}]},{"id":"0902646f-2e94-462b-a549-c60b7d4f1105","directory":"ankh-guardian-treasure-of-the-demons-temple","title":"Ankh Guardian - Treasure of the Demon's Temple","compatibility":0,"releases":[{"id":"010055500CCD2000","region":null}]},{"id":"0908a57b-d2bb-42ce-8d5e-a592f04fdf1c","directory":"immerse-land","title":"IMMERSE LAND","compatibility":99,"releases":[{"id":"0100F15012D36000","region":null}]},{"id":"0917dd33-f931-4747-ae3a-30e566f8d7cd","directory":"moero-chronicle-hyper","title":"Moero Chronicle Hyper","compatibility":5,"releases":[{"id":"0100B8500D570000","region":null}]},{"id":"091bb3dd-f832-43ab-98c5-3dc624415338","directory":"iris-fall","title":"Iris.Fall","compatibility":1,"releases":[{"id":"0100945012168000","region":null}]},{"id":"0934cf38-21ec-41ec-8db7-65c625947517","directory":"journey-to-the-savage-planet","title":"Journey to the Savage Planet","compatibility":1,"releases":[{"id":"0100FB90103DE000","region":null}]},{"id":"09424dd7-e24d-4d9c-bac4-131515ddd8db","directory":"headball-soccer-deluxe","title":"Headball Soccer Deluxe","compatibility":99,"releases":[{"id":"010032800E6D2000","region":null}]},{"id":"094882ee-9e94-419d-8d5b-568ff17f2f87","directory":"arcade-archives-x-multiply","title":"Arcade Archives X MULTIPLY","compatibility":4,"releases":[{"id":"010063600D3FA000","region":null}]},{"id":"094f2104-c820-4be0-b460-3b2204674623","directory":"hellblade-senuas-sacrifice","title":"Hellblade: Senua's Sacrifice","compatibility":3,"releases":[{"id":"010044500CF8E000","region":null}]},{"id":"09541ba7-7e4c-40c1-bace-7cae51114185","directory":"my-butler","title":"My Butler","compatibility":3,"releases":[{"id":"0100F6F0118B8000","region":null}]},{"id":"096e208c-62b9-44e7-808f-8d0fc75f829b","directory":"phantaruk","title":"Phantaruk","compatibility":99,"releases":[{"id":"0100DDD00C0EA000","region":null}]},{"id":"0970280b-f61a-42ed-bbbd-d1d2d7aca19f","directory":"bamerang","title":"Bamerang","compatibility":99,"releases":[{"id":"01008D30128E0000","region":null}]},{"id":"09732939-623e-404f-80fb-159f4aa24a40","directory":"touhou-kobuto-v-burst-battle","title":"Touhou Kobuto V: Burst Battle","compatibility":1,"releases":[{"id":"010010F004022000","region":null}]},{"id":"0973d66f-b464-4242-9e75-e77d6aff207e","directory":"indigo-7-quest-for-love","title":"Indigo 7 Quest for love","compatibility":99,"releases":[{"id":"0100AC60143F4000","region":null}]},{"id":"09802efa-d123-4c63-a2e4-bfedf25efa6a","directory":"paladins","title":"Paladins","compatibility":4,"releases":[{"id":"010023900AEE0000","region":null}]},{"id":"09891c88-479d-4882-9b1b-11b5eaf3e03d","directory":"arcade-archives-ninja-spirit","title":"Arcade Archives Ninja Spirit","compatibility":99,"releases":[{"id":"01002F300D2C6000","region":null}]},{"id":"098ba6bb-c831-42e5-b3c2-f0527b7b89bf","directory":"nubarron-the-adventure-of-an-unlucky-gnome","title":"Nubarron: The adventure of an unlucky gnome","compatibility":99,"releases":[{"id":"0100343013248000","region":null}]},{"id":"09995088-cd5f-4d33-a79a-aa88189a6732","directory":"totes-the-goat","title":"Totes the Goat","compatibility":99,"releases":[{"id":"01003D3009996000","region":null}]},{"id":"09ba32f7-2fa7-479a-9729-9c1d17e7ae72","directory":"tower-of-babel-no-mercy","title":"Tower of Babel - no mercy","compatibility":0,"releases":[{"id":"01002D20103E0000","region":null}]},{"id":"09c1d4ce-c95e-4667-851b-16acdf112bc0","directory":"creepy-tale","title":"Creepy Tale","compatibility":2,"releases":[{"id":"0100A19011EEE000","region":null}]},{"id":"09c854b9-c1c8-4244-b16a-083020c12ab1","directory":"ravva-and-the-cyclops-curse","title":"Ravva and the Cyclops Curse","compatibility":99,"releases":[{"id":"0100CA2014A0A000","region":null}]},{"id":"09ccb58c-75f4-4fb9-8c3f-e452d1048ecb","directory":"cresteaju","title":"Cresteaju","compatibility":99,"releases":[{"id":"01005C2013B00000","region":null}]},{"id":"09ccc361-3fec-407a-b9e4-21da8c7d23e6","directory":"reverse-memories","title":"Reverse Memories","compatibility":99,"releases":[{"id":"01003A6015316000","region":null}]},{"id":"09d3c71e-a094-4cff-aae6-7ea2e9dc999c","directory":"arcade-archives-tube-panic","title":"Arcade Archives TUBE PANIC","compatibility":99,"releases":[{"id":"01006D4011738000","region":null}]},{"id":"09e58672-e752-47bb-ad98-052b4f5493bb","directory":"battle-brothers-a-turn-based-tactical-rpg","title":"Battle Brothers – A Turn Based Tactical RPG","compatibility":1,"releases":[{"id":"0100C5000F294000","region":null}]},{"id":"09e5b8aa-d065-4453-8899-f091ad222cbc","directory":"pile-up-box-by-box","title":"Pile Up! Box by Box","compatibility":99,"releases":[{"id":"0100A4C011F2C000","region":null}]},{"id":"09ed6517-1e5c-4f7e-89d8-bc5e0333a0c4","directory":"dog-gone-golfing","title":"DOG GONE GOLFING","compatibility":99,"releases":[{"id":"01004CD012C9A000","region":null}]},{"id":"0a13637f-47bd-448e-afda-0d595b5fcf5d","directory":"gym-hero-idle-fitness-tycoon","title":"Gym Hero - Idle Fitness Tycoon","compatibility":99,"releases":[{"id":"0100E7400DBE2000","region":null}]},{"id":"0a1651df-98f8-4c7b-92d6-af18128d56d4","directory":"a-train-all-aboard-tourism","title":"A-Train: All Aboard! Tourism","compatibility":2,"releases":[{"id":"0100A3E010E56000","region":null}]},{"id":"0a204999-a813-4017-b7d4-b1896dc2af07","directory":"quell-zen","title":"Quell Zen","compatibility":99,"releases":[{"id":"0100C240116E8000","region":null}]},{"id":"0a30ec36-a0a1-4618-b1bf-7ee20750d3c3","directory":"the-legend-of-dark-witch","title":"The Legend of Dark Witch","compatibility":0,"releases":[{"id":"0100B1900F0B6000","region":null}]},{"id":"0a35d808-a71b-4377-afb4-85f167e9b70b","directory":"my-universe-pet-clinic-cats-dogs","title":"My Universe - PET CLINIC CATS & DOGS","compatibility":99,"releases":[{"id":"0100CD5011A02000","region":null}]},{"id":"0a3e35af-f6f8-45dd-afd5-3a3d4cae4027","directory":"duck-hunting-challenge","title":"Duck Hunting Challenge","compatibility":99,"releases":[{"id":"01000BA00C9EE000","region":null}]},{"id":"0a41b046-6849-4604-90c2-d2f03b6be93d","directory":"renzo-racer","title":"Renzo Racer","compatibility":99,"releases":[{"id":"01007CC0130C6000","region":null}]},{"id":"0a50480f-5cb1-4574-ad96-ecf97b6e062b","directory":"island-flight-simulator","title":"Island Flight Simulator","compatibility":2,"releases":[{"id":"010077900440A000","region":null}]},{"id":"0a686140-1a17-40de-a858-57075439e709","directory":"winter-sports-games","title":"Winter Sports Games","compatibility":99,"releases":[{"id":"010001800DBA6000","region":null}]},{"id":"0a6a1131-1bc2-4e3f-8173-3c5e1ebba03c","directory":"kaiju-khaos","title":"KAIJU KHAOS","compatibility":99,"releases":[{"id":"01005B500A1A2000","region":null}]},{"id":"0a6f20a7-b32e-4fb4-8ce5-a0bea4426d77","directory":"roboshark-rampage","title":"RoboShark Rampage","compatibility":99,"releases":[{"id":"0100715015F8A000","region":null}]},{"id":"0a80d05c-a802-4720-8b72-4ebc0431cf2c","directory":"aca-neogeo-art-of-fighting","title":"ACA NEOGEO ART OF FIGHTING","compatibility":99,"releases":[{"id":"01006A80038FC000","region":null}]},{"id":"0a8925a0-294b-472c-933e-67141081aaa1","directory":"bloo-kid-2","title":"Bloo Kid 2","compatibility":4,"releases":[{"id":"010055900FADA000","region":null}]},{"id":"0a9671a7-3603-413e-ab36-89e5bef10694","directory":"desktop-soccer","title":"Desktop Soccer","compatibility":99,"releases":[{"id":"01004F200CB08000","region":null}]},{"id":"0a9947c0-0cbb-4c0c-91d2-88bc637a4ebd","directory":"sunless-skies-sovereign-edition","title":"Sunless Skies: Sovereign Edition","compatibility":0,"releases":[{"id":"0100A940127F6000","region":null}]},{"id":"0aa00229-98cc-4a5f-857f-e762f7888e70","directory":"crashnauts","title":"Crashnauts","compatibility":99,"releases":[{"id":"0100A49012F5C000","region":null}]},{"id":"0aa1a525-c4e6-4919-a873-d4f1951a65b1","directory":"the-tower-of-beatrice","title":"The Tower of Beatrice","compatibility":99,"releases":[{"id":"010047300EBA6000","region":null}]},{"id":"0aa40d97-3710-41ef-ab7c-7b7842a76ee3","directory":"dodgeball-academia","title":"Dodgeball Academia","compatibility":99,"releases":[{"id":"010001F014D9A000","region":null}]},{"id":"0ab8e0b8-f784-4d5a-902f-de69a9072544","directory":"defentron","title":"Defentron","compatibility":99,"releases":[{"id":"0100CDE0136E6000","region":null}]},{"id":"0abc3bc9-2e0b-49f4-92a7-55d0e4132d2d","directory":"degrees-of-separation","title":"Degrees of Separation","compatibility":4,"releases":[{"id":"010067900B9C4000","region":null}]},{"id":"0ac50959-23fc-42ae-a647-13da6a94f973","directory":"santa-tracker","title":"Santa Tracker","compatibility":99,"releases":[{"id":"01000BA00CD2C000","region":null}]},{"id":"0adea618-0369-450f-a244-7c6c2442783b","directory":"ty-the-tasmanian-tiger-2-bush-rescue-hd","title":"TY the Tasmanian Tiger™ 2: Bush Rescue™ HD","compatibility":2,"releases":[{"id":"0100BC701417A000","region":null}]},{"id":"0adefa10-5d61-4e49-8f1d-41669fb062bf","directory":"knowledge-trainer-trivia","title":"Knowledge Trainer: Trivia","compatibility":99,"releases":[{"id":"01004CD00F690000","region":null}]},{"id":"0ae27399-f21f-4adf-82ca-5caedffb80b9","directory":"apple-slash","title":"Apple Slash","compatibility":99,"releases":[{"id":"01008E1012FE6000","region":null}]},{"id":"0aefa7c9-a4e6-4026-b15a-1add97a58f1d","directory":"war-titans","title":"War Titans","compatibility":99,"releases":[{"id":"0100C10012EFC000","region":null}]},{"id":"0af3d94c-d9f4-4988-8fdb-a5f0728dbc6d","directory":"lanternium","title":"Lanternium","compatibility":99,"releases":[{"id":"010015500F186000","region":null}]},{"id":"0b0115a1-8249-4cee-ba0c-cf6a08685df9","directory":"zombie-is-planting","title":"Zombie Is Planting","compatibility":99,"releases":[{"id":"01006C50159C8000","region":null}]},{"id":"0b06b002-eb53-448d-bb06-ade14044700f","directory":"king-oddball","title":"King Oddball","compatibility":1,"releases":[{"id":"0100B1300783E000","region":null}]},{"id":"0b09f691-4f99-476f-93cf-9a2c6da84108","directory":"the-liar-princess-and-the-blind-prince","title":"The Liar Princess and the Blind Prince","compatibility":1,"releases":[{"id":"010064B00B95C000","region":null}]},{"id":"0b0cb8d0-cc49-4a60-9f72-081157c5d75e","directory":"jewel-wars","title":"JEWEL WARS","compatibility":99,"releases":[{"id":"0100B5E00D218000","region":null}]},{"id":"0b1290ad-9eed-42db-82db-cd82c1ada8ab","directory":"tomb-of-the-mask","title":"Tomb of the Mask","compatibility":99,"releases":[{"id":"0100EE701494A000","region":null}]},{"id":"0b217259-e59c-433f-8e8e-51790584184d","directory":"candy-match-kiddies","title":"Candy Match Kiddies","compatibility":99,"releases":[{"id":"0100762014780000","region":null}]},{"id":"0b256889-bd0f-46fb-9adf-074877fa95b2","directory":"the-final-station","title":"The Final Station","compatibility":99,"releases":[{"id":"0100CDC00789E000","region":null}]},{"id":"0b3895de-3b17-4017-adc8-76311a24a82a","directory":"wondershot","title":"Wondershot","compatibility":99,"releases":[{"id":"0100F5D00C812000","region":null}]},{"id":"0b473c17-65dc-4d9d-8813-d4865a32c314","directory":"techno-tanks","title":"Techno Tanks","compatibility":99,"releases":[{"id":"0100F4A01487A000","region":null}]},{"id":"0b582623-02de-48e8-b1d9-2c7122e9036a","directory":"mugsters-demo","title":"Mugsters Demo","compatibility":99,"releases":[{"id":"01008F200C880000","region":null}]},{"id":"0b673328-6d4a-42a4-b4cc-35fbd5368b43","directory":"irony-curtain-from-matryoshka-with-love","title":"Irony Curtain: From Matryoshka with Love","compatibility":99,"releases":[{"id":"0100E5700CD56000","region":null}]},{"id":"0b6817ae-9367-4bb4-8f5c-dd05ad2d741c","directory":"shift-happens","title":"Shift Happens","compatibility":1,"releases":[{"id":"0100B1000AC3A000","region":null}]},{"id":"0b685090-6d17-4efd-a474-abaab70c11f4","directory":"fear-of-traffic","title":"Fear of Traffic","compatibility":99,"releases":[{"id":"0100E2800EF4A000","region":null}]},{"id":"0b708963-a0b2-4733-8c72-769dd76b1cb5","directory":"archery-club","title":"Archery Club","compatibility":1,"releases":[{"id":"0100D510169B2000","region":null}]},{"id":"0b77e0bd-3e3b-4e8b-8fb3-8ad4383dfe9a","directory":"restless-night","title":"Restless Night","compatibility":99,"releases":[{"id":"0100FF201568E000","region":null}]},{"id":"0b789aba-30ae-43b3-93fc-cbd993441bee","directory":"castle-of-no-escape","title":"Castle of no Escape","compatibility":99,"releases":[{"id":"010094F01328C000","region":null}]},{"id":"0b7acc8e-2070-40a0-95bf-4858c93d7aab","directory":"arcade-archives-track-and-field","title":"Arcade Archives TRACK & FIELD","compatibility":5,"releases":[{"id":"01002C300E630000","region":null}]},{"id":"0b8d85fc-b730-41d4-a8ed-c8f9fb967e08","directory":"super-sami-roll","title":"Super Sami Roll","compatibility":1,"releases":[{"id":"0100C69014B1E000","region":null}]},{"id":"0b94bdbb-97ff-440c-a197-c1361179d605","directory":"hulu","title":"Hulu","compatibility":5,"releases":[{"id":"0100A66003384000","region":null}]},{"id":"0ba42b2d-c6b5-4450-b853-5e4d9403c398","directory":"catan","title":"Catan","compatibility":2,"releases":[{"id":"010092C00C5EC000","region":null}]},{"id":"0bb07baa-3e2a-47a9-a28a-1a4818b2f077","directory":"the-fall","title":"The Fall","compatibility":99,"releases":[{"id":"01002DD00AF9E000","region":null}]},{"id":"0bb88805-569e-44fd-9c9f-e64607deba7c","directory":"black-hole","title":"Black Hole","compatibility":99,"releases":[{"id":"0100461007BB0000","region":null}]},{"id":"0bbd82c1-e9ad-45c7-a413-a9dce128be11","directory":"arcade-archives-alpha-mission","title":"Arcade Archives ALPHA MISSION","compatibility":99,"releases":[{"id":"01005DD00BE08000","region":null}]},{"id":"0bcf1e78-f2a9-4775-9a6d-004cec03263c","directory":"shikhondo-soul-eater","title":"Shikhondo - Soul Eater","compatibility":1,"releases":[{"id":"010061400A990000","region":null}]},{"id":"0bcf214d-cd55-4277-846d-75d326bf2bf6","directory":"no-more-heroes","title":"No More Heroes","compatibility":1,"releases":[{"id":"0100F0400F202000","region":null}]},{"id":"0bee566b-0d5d-4bd2-b974-c5b47cf19cde","directory":"bit-trip-beat","title":"BIT.TRIP BEAT","compatibility":99,"releases":[{"id":"010038B012D32000","region":null}]},{"id":"0bf9b34b-4a34-45b9-b2e5-f8fa0d67382e","directory":"jars","title":"JARS","compatibility":99,"releases":[{"id":"0100A1F0156F0000","region":null}]},{"id":"0c03a3f9-1e91-4563-bd34-05efd29bf35f","directory":"demons-rise-war-for-the-deep","title":"Demon's Rise - War for the Deep","compatibility":99,"releases":[{"id":"0100C3501094E000","region":null}]},{"id":"0c413d0c-e584-4eed-b5b6-8e983d058097","directory":"hookbots","title":"Hookbots","compatibility":99,"releases":[{"id":"0100AFA00DED4000","region":null}]},{"id":"0c461b03-9656-4448-b969-6c326d02a152","directory":"desert-child","title":"Desert Child","compatibility":99,"releases":[{"id":"01000DC00AF1C000","region":null}]},{"id":"0c519f5e-9569-4989-a5d0-d8601a2ebb0b","directory":"true-fear-forsaken-souls-part-2","title":"True Fear: Forsaken Souls - Part 2","compatibility":99,"releases":[{"id":"0100DC400E5CE000","region":null}]},{"id":"0c553c65-7dab-4b4b-bf33-a839a0e9a2f2","directory":"spider-solitaire-collection","title":"Spider Solitaire Collection","compatibility":99,"releases":[{"id":"0100ED3014E6A000","region":null}]},{"id":"0c5bd2c0-69db-4f07-bbb5-f3204704aa80","directory":"the-colonists","title":"The Colonists","compatibility":99,"releases":[{"id":"010086901425C000","region":null}]},{"id":"0c65fa44-df8d-4236-b6a4-2dd923e6204f","directory":"ttv2","title":"TTV2","compatibility":99,"releases":[{"id":"0100752011628000","region":null}]},{"id":"0c673305-4337-49de-855e-8ab6a5046aaa","directory":"sega-ages-virtua-racing","title":"SEGA AGES Virtua Racing","compatibility":1,"releases":[{"id":"010054400D2E6000","region":null}]},{"id":"0c6cc0bc-22d7-4914-9671-421b2d2feb32","directory":"pizza-titan-ultra","title":"Pizza Titan Ultra","compatibility":99,"releases":[{"id":"01004A900C352000","region":null}]},{"id":"0c6e7682-cfbe-459b-b73b-77e0eaab238f","directory":"night-trap-25th-anniversary-edition","title":"Night Trap - 25th Anniversary Edition","compatibility":4,"releases":[{"id":"0100D8500A692000","region":null}]},{"id":"0c7506fb-45ac-403d-9902-1d74d2918bbf","directory":"nexomon-extinction","title":"Nexomon: Extinction","compatibility":1,"releases":[{"id":"01005A5011A44000","region":null}]},{"id":"0c8900f8-4321-4df7-8485-fd9339ccc781","directory":"exertus-redux","title":"Exertus: Redux","compatibility":99,"releases":[{"id":"0100453016AF2000","region":null}]},{"id":"0c8b7d98-bc0b-4c09-b006-5e9acb4b835d","directory":"ovivo","title":"OVIVO","compatibility":5,"releases":[{"id":"010045F00D56C000","region":null}]},{"id":"0c90984a-5337-4015-abb1-e75f27083139","directory":"timothy-and-the-mysterious-forest","title":"Timothy and the Mysterious Forest","compatibility":99,"releases":[{"id":"0100393013A10000","region":null}]},{"id":"0cb93916-a25d-481f-a2e8-e4a5d28762f6","directory":"dandy-dungeon-legend-of-brave-yamada-","title":"Dandy Dungeon - Legend of Brave Yamada -","compatibility":1,"releases":[{"id":"0100DFB00D808000","region":null}]},{"id":"0cc372da-3c58-4098-b1ce-c1708f0fc27f","directory":"outbreak-the-nightmare-chronicles","title":"Outbreak The Nightmare Chronicles","compatibility":99,"releases":[{"id":"01006EE013100000","region":null}]},{"id":"0ccf686d-f5c7-4515-ac14-fcc84e9d3f1c","directory":"love-letter-from-thief-x","title":"Love Letter from Thief X","compatibility":99,"releases":[{"id":"0100D36011AD4000","region":null}]},{"id":"0cdd4cdc-ddca-43b6-b7bf-8a07a9677c98","directory":"sky-mercenaries-redux","title":"Sky Mercenaries Redux","compatibility":99,"releases":[{"id":"0100668010DC2000","region":null}]},{"id":"0ce625b9-a945-46e3-a1c2-cd1a67c9b34a","directory":"poker-pretty-girls-battle-texas-holdem","title":"Poker Pretty Girls Battle: Texas Hold'em","compatibility":99,"releases":[{"id":"01003B9014D3E000","region":null}]},{"id":"0cf26c5e-4414-48f3-b0ad-f343fcfd2270","directory":"tennis-1920s","title":"Tennis 1920s","compatibility":99,"releases":[{"id":"010022300F856000","region":null}]},{"id":"0d0be9c3-8acb-451f-9490-2f769d7f2740","directory":"cyber-shadow","title":"Cyber Shadow","compatibility":99,"releases":[{"id":"01008D100DE46000","region":null}]},{"id":"0d20e2c3-95dc-48d8-897f-579fef4c1afa","directory":"velocity2x","title":"Velocity2X","compatibility":4,"releases":[{"id":"010002800B818000","region":null}]},{"id":"0d3b20b1-106f-4db7-b43d-1170f331f64a","directory":"guilty-gear","title":"GUILTY GEAR","compatibility":99,"releases":[{"id":"0100C8400B248000","region":null}]},{"id":"0d3be0bc-54fb-4ec3-949a-cb15c423d1db","directory":"classic-solitaire","title":"Classic Solitaire","compatibility":99,"releases":[{"id":"01000CA014A10000","region":null}]},{"id":"0d3f61e3-7144-4c1c-9dad-428e27074241","directory":"zhed","title":"ZHED","compatibility":99,"releases":[{"id":"010089300FDC2000","region":null}]},{"id":"0d3f6e0d-277b-4df3-8435-e63693e40d23","directory":"case-animatronics","title":"CASE: Animatronics","compatibility":99,"releases":[{"id":"0100EA700EC90000","region":null}]},{"id":"0d4fbf02-bc80-464a-8172-9f0afe512c8e","directory":"chicken-police-paint-it-red","title":"Chicken Police – Paint it RED!","compatibility":99,"releases":[{"id":"0100713010E7A000","region":null}]},{"id":"0d6448ab-df39-4dad-97f4-4e53ac87c86a","directory":"aca-neogeo-neo-turf-masters","title":"ACA NEOGEO NEO TURF MASTERS","compatibility":1,"releases":[{"id":"01002E70032E8000","region":null}]},{"id":"0d68e3f8-3d38-453f-8e05-db189e2a6557","directory":"the-keep","title":"The Keep","compatibility":99,"releases":[{"id":"0100005006BA4000","region":null}]},{"id":"0d6eb6fe-c6fa-494f-b8bb-18c66de7130a","directory":"arcade-archives-rygar","title":"Arcade Archives RYGAR","compatibility":99,"releases":[{"id":"0100C2D00981E000","region":null}]},{"id":"0d981092-cf70-4e29-9d72-e16a58d3471b","directory":"witchspring3-re-fine]-the-story-of-eirudy","title":"WitchSpring3 [Re:Fine] - The Story of Eirudy","compatibility":99,"releases":[{"id":"010091F014E5C000","region":null}]},{"id":"0d9e6c56-c35e-408e-be50-e9afaf838117","directory":"xenogunner","title":"Xenogunner","compatibility":99,"releases":[{"id":"010039300B6A2000","region":null}]},{"id":"0dad4f72-71b8-4335-81d8-199bfac28a85","directory":"reds-kingdom","title":"Red's Kingdom","compatibility":4,"releases":[{"id":"010006600AE9C000","region":null}]},{"id":"0db0b69f-d6f4-4037-a62f-4c760638e798","directory":"uncharted-tides-port-royal","title":"Uncharted Tides: Port Royal","compatibility":99,"releases":[{"id":"0100CC8011000000","region":null}]},{"id":"0dc06167-6f7b-438f-a87d-d0947370e3cc","directory":"depth-of-extinction","title":"Depth of Extinction","compatibility":99,"releases":[{"id":"010096300DE22000","region":null}]},{"id":"0dca4859-aeed-4ef1-b221-72a3d6088fe7","directory":"knights-of-pen-and-paper-1-deluxier-edition","title":"Knights of Pen and Paper +1 Deluxier Edition","compatibility":1,"releases":[{"id":"0100D3F008746000","region":null}]},{"id":"0dccce4b-97b6-4028-bf28-28c50aa42b14","directory":"the-caligula-effect-overdose","title":"The Caligula Effect: Overdose","compatibility":3,"releases":[{"id":"010069100B7F0000","region":null}]},{"id":"0dd3fa06-4e1e-41bc-b514-0890b4839712","directory":"fossil-hunters","title":"Fossil Hunters","compatibility":1,"releases":[{"id":"0100CA500756C000","region":null}]},{"id":"0dd5d393-48a2-4bb7-b00f-8881197b3608","directory":"minigolf-adventure","title":"Minigolf Adventure","compatibility":99,"releases":[{"id":"01005500158D0000","region":null}]},{"id":"0de0bf2f-5119-45f0-be0c-da1aeea1704b","directory":"pianista","title":"PIANISTA","compatibility":1,"releases":[{"id":"010077300A86C000","region":null}]},{"id":"0de6e9da-8164-4e26-8369-8b8492f6e798","directory":"dungeon-solver","title":"Dungeon Solver","compatibility":99,"releases":[{"id":"01008300128F2000","region":null}]},{"id":"0deac9b4-bfe0-4e23-8fb1-002d4500dbce","directory":"umihara-kawase-fresh","title":"Umihara Kawase Fresh!","compatibility":5,"releases":[{"id":"0100DE400D7B8000","region":null}]},{"id":"0deb16b5-373d-419b-8d68-9409e42bc274","directory":"ragdoll-fighter","title":"Ragdoll Fighter","compatibility":0,"releases":[{"id":"0100400013A46000","region":null}]},{"id":"0df2eeab-b43c-4762-8e57-61bce5bd6ad8","directory":"unsighted","title":"UNSIGHTED","compatibility":99,"releases":[{"id":"0100FF6014BEE000","region":null}]},{"id":"0e037590-ab54-411e-9be5-c6c59532ed46","directory":"undead-darlings-no-cure-for-love","title":"Undead Darlings ~no cure for love~","compatibility":99,"releases":[{"id":"0100ED301196A000","region":null}]},{"id":"0e1328f0-c085-49cf-8c2c-f0eb576cdb9e","directory":"golf-zero","title":"Golf Zero","compatibility":1,"releases":[{"id":"01007EA01252E000","region":null}]},{"id":"0e1bfa86-4406-4a17-aad8-728c11e86df0","directory":"shantae-riskys-revenge-directors-cut","title":"Shantae: Risky's Revenge - Director's Cut","compatibility":0,"releases":[{"id":"0100ADA012370000","region":null}]},{"id":"0e1f249c-d0b9-43ab-a0fb-77b932e9e09e","directory":"please-dont-touch-anything-classic","title":"Please, Don't Touch Anything: Classic","compatibility":99,"releases":[{"id":"0100CC000DA44000","region":null}]},{"id":"0e20bf71-3636-40f4-b122-1fb4e51cdd57","directory":"hyperspace-delivery-service","title":"Hyperspace Delivery Service","compatibility":99,"releases":[{"id":"010049000F6B0000","region":null}]},{"id":"0e24b468-c12b-4729-a4c1-a3fe29da1173","directory":"happy-animals-bowling","title":"Happy Animals Bowling","compatibility":99,"releases":[{"id":"01009FB00EE4A000","region":null}]},{"id":"0e44f104-c215-490d-b861-256fcbd4a795","directory":"inmost","title":"INMOST","compatibility":0,"releases":[{"id":"0100F1401161E000","region":null}]},{"id":"0e49aed5-61ad-4869-a23f-9f3afb011aa5","directory":"cabelas-the-hunt-championship-edition","title":"Cabela's: The Hunt - Championship Edition","compatibility":4,"releases":[{"id":"0100E24004510000","region":null}]},{"id":"0e6b5224-89f8-48d0-9862-439c102f91b6","directory":"venus-improbable-dream","title":"Venus: Improbable Dream","compatibility":99,"releases":[{"id":"0100F1B015400000","region":null}]},{"id":"0e715bb8-f834-4b2b-b10f-e8b6efd0c293","directory":"cafeteria-nipponica","title":"Cafeteria Nipponica","compatibility":1,"releases":[{"id":"01008E300D136000","region":null}]},{"id":"0e72c97b-edc2-4cda-a753-b5509ef2632b","directory":"city-traffic-driver","title":"City Traffic Driver","compatibility":99,"releases":[{"id":"0100D4C016B08000","region":null}]},{"id":"0e758144-2757-4fd7-83d7-725d1089c398","directory":"aca-neogeo-fatal-fury-2","title":"ACA NEOGEO FATAL FURY 2","compatibility":99,"releases":[{"id":"0100CAF001DBE000","region":null}]},{"id":"0e7d2809-5822-4325-b8f7-35df5931b36e","directory":"planet-rix-13","title":"Planet RIX-13","compatibility":99,"releases":[{"id":"01001B100C3D4000","region":null}]},{"id":"0e877a15-f53c-447d-ab55-e7bb9977881d","directory":"tanzia","title":"Tanzia","compatibility":99,"releases":[{"id":"01004DF007564000","region":null}]},{"id":"0e887f3e-a24a-422e-be34-3b439fba02a1","directory":"spirit-roots","title":"Spirit Roots","compatibility":0,"releases":[{"id":"01000AC00F5EC000","region":null}]},{"id":"0e8df0a7-8514-4263-b6df-2af3ba853ab5","directory":"lets-sing-2019","title":"Let's Sing 2019","compatibility":99,"releases":[{"id":"010062200CAD2000","region":null}]},{"id":"0e8edca4-50a6-4ef2-853d-24fffb1e4574","directory":"aegis-defenders-demo","title":"Aegis Defenders demo","compatibility":99,"releases":[{"id":"010064500AF72000","region":null}]},{"id":"0e943a00-7b51-4a6e-8388-9a466a877760","directory":"fighting-ex-layer-another-dash","title":"FIGHTING EX LAYER ANOTHER DASH","compatibility":1,"releases":[{"id":"0100D02014048000","region":null}]},{"id":"0e9de394-d679-4d27-9856-39369cbace31","directory":"party-hard-2","title":"Party Hard 2","compatibility":1,"releases":[{"id":"010022801217E000","region":null}]},{"id":"0ea60a0f-3131-4396-93de-9b99dcff2670","directory":"doodle-derby","title":"Doodle Derby","compatibility":4,"releases":[{"id":"0100F2C00F060000","region":null}]},{"id":"0eb86a91-8685-4a51-bc14-867b616df8e6","directory":"2weistein-the-curse-of-the-red-dragon","title":"2weistein – The Curse of the Red Dragon","compatibility":99,"releases":[{"id":"0100E20012886000","region":null}]},{"id":"0ebe4caf-e111-4b92-b7af-d838b4070084","directory":"inventioneers","title":"Inventioneers","compatibility":99,"releases":[{"id":"0100DAC00BB52000","region":null}]},{"id":"0ece7af1-8cf5-47c1-97c2-77dd10a01b53","directory":"bleep-bloop","title":"Bleep Bloop","compatibility":0,"releases":[{"id":"0100AEA00CCAE000","region":null}]},{"id":"0ee10f69-5e32-4968-9d8d-26f4a1f97920","directory":"beyond-blue","title":"Beyond Blue","compatibility":99,"releases":[{"id":"0100DBC012C9E000","region":null}]},{"id":"0ee7c2ac-9722-49f0-918c-dd599c94f72a","directory":"super-magbot","title":"Super Magbot","compatibility":1,"releases":[{"id":"010018D013CAA000","region":null}]},{"id":"0eea9292-2f99-455d-adcf-4e5e45e6d434","directory":"garden-paws","title":"Garden Paws","compatibility":99,"releases":[{"id":"01009A000C35C000","region":null}]},{"id":"0eed6725-c336-48b2-855c-7852ac746fec","directory":"the-red-strings-club","title":"The Red Strings Club","compatibility":5,"releases":[{"id":"0100EB100D17C000","region":null}]},{"id":"0ef21a6c-ba99-48aa-9823-a4c4086872bb","directory":"the-manga-works","title":"The Manga Works","compatibility":0,"releases":[{"id":"0100A3500E2D8000","region":null}]},{"id":"0efbad4b-26ff-4ee8-87b8-0867017a7b09","directory":"mulaka","title":"Mulaka","compatibility":4,"releases":[{"id":"0100211005E94000","region":null}]},{"id":"0f0bcd40-fa62-438d-b1b4-61d0255de62a","directory":"dream-house-days-dx","title":"Dream House Days DX","compatibility":99,"releases":[{"id":"0100BE9014420000","region":null}]},{"id":"0f0fd0ab-7889-4553-aeba-02bef5b0ea8f","directory":"miden-tower","title":"Miden Tower","compatibility":99,"releases":[{"id":"01001EB011D38000","region":null}]},{"id":"0f137050-e378-4568-9511-b88b7acaf36e","directory":"goosebumps-the-game","title":"Goosebumps The Game","compatibility":3,"releases":[{"id":"0100B8000B190000","region":null}]},{"id":"0f177323-a9a9-4007-ae13-9b8b80f7e26f","directory":"farm-expert-2018-for-nintendo-switch","title":"Farm Expert 2018 for Nintendo Switch","compatibility":99,"releases":[{"id":"0100BB9009FC8000","region":null}]},{"id":"0f183135-c12d-4bfa-a70c-2f39b1424497","directory":"beach-bounce-remastered","title":"Beach Bounce Remastered","compatibility":99,"releases":[{"id":"01004060145C0000","region":null}]},{"id":"0f22e4c4-27d8-41a7-88ed-6d471a3f27aa","directory":"piczle-cross-adventure","title":"Piczle Cross Adventure","compatibility":99,"releases":[{"id":"01000EE010B40000","region":null}]},{"id":"0f23ea9a-764a-42a2-b5b1-1446c509cb2f","directory":"sacred-stones","title":"Sacred Stones","compatibility":99,"releases":[{"id":"01005CE00F970000","region":null}]},{"id":"0f2423f2-d962-4068-9ad5-078bc2062ae8","directory":"from-earth-to-heaven","title":"From Earth To Heaven","compatibility":99,"releases":[{"id":"01000EE015C66000","region":null}]},{"id":"0f2bad5d-bede-4aba-ae55-3bd6e9394c8e","directory":"fuser","title":"FUSER™","compatibility":2,"releases":[{"id":"0100E1F013674000","region":null},{"id":"010089D00E28A000","region":null}]},{"id":"0f31bd9d-f6be-4d4a-851a-4d462a22adc5","directory":"dicey-dungeons","title":"Dicey Dungeons","compatibility":1,"releases":[{"id":"0100BBF011394000","region":null}]},{"id":"0f351c74-acde-4957-8239-a25b8c34a7db","directory":"fifa-18","title":"FIFA 18","compatibility":5,"releases":[{"id":"0100F7B002340000","region":null}]},{"id":"0f36f79f-d2cc-49d6-b694-89ff3d1d4245","directory":"poi-explorer-edition","title":"Poi: Explorer Edition","compatibility":1,"releases":[{"id":"01005EC0039E4000","region":null}]},{"id":"0f39289b-563b-41e1-9b4a-c6b796350d04","directory":"arcade-archives-shusse-ozumo","title":"Arcade Archives Shusse Ozumo","compatibility":4,"releases":[{"id":"01007A4009834000","region":null}]},{"id":"0f3f1767-0178-4324-ace4-4ec3ca20da24","directory":"syberia","title":"Syberia","compatibility":5,"releases":[{"id":"0100421003FD4000","region":null}]},{"id":"0f52d11c-8d5f-4f41-9fe5-93da4d34059e","directory":"kakuro-magic","title":"Kakuro Magic","compatibility":99,"releases":[{"id":"0100137011172000","region":null}]},{"id":"0f53289b-a70e-46d7-b6e4-8a08c091133f","directory":"gleaner-heights","title":"Gleaner Heights","compatibility":5,"releases":[{"id":"0100D6300ED2E000","region":null}]},{"id":"0f5b105f-82a3-4545-9c64-842b4934bdc9","directory":"new-star-manager","title":"New Star Manager","compatibility":99,"releases":[{"id":"010082900C5FA000","region":null}]},{"id":"0f5f93bd-5372-4f4e-afbb-07658474c00c","directory":"save-your-nuts","title":"Save Your Nuts","compatibility":99,"releases":[{"id":"010091000F72C000","region":null}]},{"id":"0f624235-ee78-4ce5-81e9-5ff6f086ccdf","directory":"monster-truck-arena","title":"Monster Truck Arena","compatibility":99,"releases":[{"id":"0100098016148000","region":null}]},{"id":"0f688bcc-1f73-4608-b205-ca2c4221cf3f","directory":"accidental-queens-collection","title":"Accidental Queens Collection","compatibility":99,"releases":[{"id":"010053601357E000","region":null}]},{"id":"0f7fe8f6-4c28-4c94-a1b3-224ea641687a","directory":"slide-stars","title":"Slide Stars","compatibility":99,"releases":[{"id":"010010D011E1C000","region":null}]},{"id":"0f99c46f-1ae2-4c0e-a812-bc0a1d2042bc","directory":"space-dave","title":"Space Dave","compatibility":99,"releases":[{"id":"0100E28002D74000","region":null}]},{"id":"0f9cb2e4-c59f-467c-8339-61d81ae4e3c8","directory":"tank-mechanic-simulator","title":"Tank Mechanic Simulator","compatibility":99,"releases":[{"id":"0100E06012BB4000","region":null}]},{"id":"0fa0aced-3a76-4af2-bd06-68298bfa102c","directory":"smoke-and-sacrifice","title":"Smoke And Sacrifice","compatibility":99,"releases":[{"id":"0100207007EB2000","region":null}]},{"id":"0fae18c3-2432-41b3-a8cd-e897d03c4918","directory":"badland-game-of-the-year-edition","title":"Badland: Game of the Year Edition","compatibility":99,"releases":[{"id":"0100D730151C8000","region":null}]},{"id":"0fb08e59-b003-4491-981a-f7855ae0e398","directory":"quell-reflect","title":"Quell Reflect","compatibility":99,"releases":[{"id":"0100111012438000","region":null}]},{"id":"0fb1ee65-50fd-4bfb-8b47-e7209f305d5e","directory":"lethis-path-of-progress","title":"Lethis - Path of Progress","compatibility":99,"releases":[{"id":"0100CF600F366000","region":null}]},{"id":"0fb5149d-233c-4e1d-acfc-1aa99d75db4f","directory":"happy-game","title":"Happy Game","compatibility":99,"releases":[{"id":"010031D013A4E000","region":null}]},{"id":"0fb63a1d-96c4-4350-a303-3026d964d050","directory":"guardian-of-lore","title":"Guardian of Lore","compatibility":99,"releases":[{"id":"010092B016A18000","region":null}]},{"id":"0fcaabfc-629e-4f64-83d1-52282026ff59","directory":"offroad-mini-racing","title":"Offroad Mini Racing","compatibility":99,"releases":[{"id":"0100EE0014072000","region":null}]},{"id":"0fcd1a55-096e-4ff0-b886-ef23209e5550","directory":"narita-boy","title":"Narita Boy","compatibility":0,"releases":[{"id":"010062200E912000","region":null}]},{"id":"0fe2eada-c107-4749-a249-085a039e28a2","directory":"kings-bounty-ii","title":"King's Bounty II","compatibility":4,"releases":[{"id":"010026F013B3A000","region":null}]},{"id":"0fe4fb97-849e-490a-8c0d-de09c5843e89","directory":"best-day-ever","title":"Best Day Ever","compatibility":99,"releases":[{"id":"010022D0142BE000","region":null}]},{"id":"0fee546a-4f9b-4b79-be40-2be921f861f5","directory":"new-pokemon-snap","title":"New Pokémon Snap™","compatibility":1,"releases":[{"id":"0100F4300BF2C000","region":null}]},{"id":"0ff2bb98-8e26-4a1e-8413-874520b28a3b","directory":"nerf-legends","title":"Nerf Legends","compatibility":99,"releases":[{"id":"0100D0A012D0E000","region":null}]},{"id":"100c186b-1bd2-4bbc-81a0-c90dfed7b9ae","directory":"atelier-lulua-~the-scion-of-arland~","title":"Atelier Lulua ~The Scion of Arland~","compatibility":4,"releases":[{"id":"0100B1400CD50000","region":null}]},{"id":"101fff51-1174-4946-94ac-5a03b2e39db2","directory":"odysseus-kosmos-and-his-robot-quest","title":"Odysseus Kosmos and his Robot Quest","compatibility":99,"releases":[{"id":"0100353013D06000","region":null}]},{"id":"1022160e-98fe-40c3-9af0-fdf2ba8e2e2f","directory":"bqm-blockquest-maker-","title":"BQM -BlockQuest Maker-","compatibility":99,"releases":[{"id":"0100CA400B6D0000","region":null}]},{"id":"1022b89b-33c3-4537-af8b-efc816a24c57","directory":"tilt-pack","title":"Tilt Pack","compatibility":99,"releases":[{"id":"010026E0104C0000","region":null}]},{"id":"1033f8fc-3e5d-4349-9917-a462c805fef7","directory":"youtube","title":"YouTube","compatibility":5,"releases":[{"id":"01003A400C3DA000","region":null}]},{"id":"1047febf-8ace-45a8-b237-1c0f66462089","directory":"aca-neogeo-samurai-shodown-ii","title":"ACA NEOGEO SAMURAI SHODOWN II","compatibility":99,"releases":[{"id":"010052B00871C000","region":null}]},{"id":"1062094a-c04d-497f-8a00-2a3c48f9a8bc","directory":"root-double-before-crime-after-days-xtend-edition","title":"Root Double -Before Crime * After Days- Xtend Edition","compatibility":5,"releases":[{"id":"0100936011556000","region":null}]},{"id":"1072f1d3-a2e1-44e1-86be-aba1023f04ca","directory":"power-racing-bundle","title":"Power Racing Bundle","compatibility":99,"releases":[{"id":"01004A301226A000","region":null}]},{"id":"10782f2e-4be3-47d3-a907-662f682927dd","directory":"park-inc","title":"Park Inc","compatibility":99,"releases":[{"id":"010048A014B8E000","region":null}]},{"id":"109c0c1b-4463-4d71-91a3-1cd5969bf849","directory":"syberia-1-and-2","title":"Syberia 1 & 2","compatibility":5,"releases":[{"id":"01004BB00421E000","region":null}]},{"id":"10a2059c-a34a-4aef-9452-6a3a4772b2b5","directory":"towaga-among-shadows","title":"Towaga: Among Shadows","compatibility":0,"releases":[{"id":"010062900E610000","region":null}]},{"id":"10b11ea8-768f-4edc-b50b-e3bfd4a3f136","directory":"fight-of-animals-arena","title":"Fight of Animals: Arena","compatibility":99,"releases":[{"id":"0100AC6015996000","region":null}]},{"id":"10b6e65b-3646-4484-992e-19d3363218a7","directory":"marbles-rush","title":"Marbles Rush","compatibility":99,"releases":[{"id":"010001601590E000","region":null}]},{"id":"10c8133d-8b43-4178-a345-a809ea1c9bea","directory":"my-diggy-dog-2","title":"My Diggy Dog 2","compatibility":0,"releases":[{"id":"01008EB012608000","region":null}]},{"id":"10c97f95-a512-454a-b4ba-c26d9fd7eebf","directory":"rolld","title":"Roll'd","compatibility":99,"releases":[{"id":"0100B7200FC96000","region":null}]},{"id":"10ccfae7-7a1e-4461-94cf-ea7a2029fea8","directory":"worm-jazz","title":"Worm Jazz","compatibility":99,"releases":[{"id":"01009CD012CC0000","region":null}]},{"id":"10cdea6c-df89-4447-851b-80bc8532d925","directory":"attack-on-titan-2","title":"Attack on Titan 2","compatibility":1,"releases":[{"id":"010034500641A000","region":null}]},{"id":"10dc0eb2-5299-4bc8-a28e-10c1972dc9e4","directory":"unepic","title":"Unepic","compatibility":1,"releases":[{"id":"01008F80049C6000","region":null}]},{"id":"10dc5578-4ee2-48d7-8c24-8e32516ffabd","directory":"johnny-turbos-arcade-express-raider","title":"Johnny Turbo’s Arcade: Express Raider","compatibility":99,"releases":[{"id":"0100378002CCA000","region":null}]},{"id":"10e26e57-d3e7-4bc6-b763-fbd6f0169a02","directory":"monster-crown","title":"Monster Crown","compatibility":0,"releases":[{"id":"0100E0600C78E000","region":null}]},{"id":"10e52b36-bf7c-4cf4-9232-4a048ef1924c","directory":"among-the-sleep-enhanced-edition","title":"Among the Sleep - Enhanced Edition","compatibility":4,"releases":[{"id":"010046500C8D2000","region":null}]},{"id":"10f563ce-ed19-4f5a-91d3-151b137663b7","directory":"takorita-meets-fries","title":"Takorita Meets Fries","compatibility":99,"releases":[{"id":"0100E02015EDA000","region":null}]},{"id":"10f927ec-54cc-455e-972f-9a1adbf175a9","directory":"actraiser-renaissance","title":"Actraiser Renaissance","compatibility":0,"releases":[{"id":"010049E013134000","region":null}]},{"id":"10fc0124-ac41-4eda-b8f4-6272b735fc73","directory":"warsaw","title":"WARSAW","compatibility":99,"releases":[{"id":"0100DFB011B12000","region":null}]},{"id":"10ff9ebd-664e-4d61-9810-bc3b3b6de97e","directory":"shinsekai-into-the-depths","title":"Shinsekai Into the Depths™","compatibility":2,"releases":[{"id":"01004EE0104F6000","region":null}]},{"id":"1109a1bd-5f14-440a-a68e-7bd95c247061","directory":"embracelet","title":"Embracelet","compatibility":99,"releases":[{"id":"010071B012940000","region":null}]},{"id":"110c6f1a-cc4d-4f47-beea-df33f6a54902","directory":"blitz-breaker","title":"Blitz Breaker","compatibility":99,"releases":[{"id":"0100C7001526C000","region":null}]},{"id":"11254983-27e3-417d-9a7e-24f4996a03a7","directory":"the-jackbox-party-pack-4","title":"The Jackbox Party Pack 4","compatibility":99,"releases":[{"id":"0100E1F003EE8000","region":null}]},{"id":"11271371-4d58-4de3-a4ef-4cfeee69fa4a","directory":"commander-keen-in-keen-dreams-definitive-edition","title":"Commander Keen in Keen Dreams: Definitive Edition","compatibility":99,"releases":[{"id":"0100E400129EC000","region":null}]},{"id":"11282353-0ead-467f-a245-428055dada32","directory":"castaway-paradise","title":"Castaway Paradise","compatibility":99,"releases":[{"id":"0100D1101445C000","region":null}]},{"id":"11297484-d3af-43cb-acf7-480308955bd5","directory":"sakura-santa","title":"Sakura Santa","compatibility":99,"releases":[{"id":"0100D99016B22000","region":null}]},{"id":"1134264f-4c31-45aa-ae1b-efca7d07f60c","directory":"the-good-life","title":"The Good Life","compatibility":99,"releases":[{"id":"0100B1B015ABA000","region":null}]},{"id":"1136a8bb-393d-445a-975a-2d82e8992593","directory":"sorry-james","title":"Sorry, James","compatibility":99,"releases":[{"id":"01009EA00F180000","region":null}]},{"id":"1136ccb0-553b-450d-adef-d3a5dd6a4597","directory":"aca-neogeo-sengoku","title":"ACA NEOGEO SENGOKU","compatibility":1,"releases":[{"id":"0100D170038EA000","region":null}]},{"id":"11392d80-6e7a-4075-8231-d1043559a0a0","directory":"duck-life-adventure","title":"Duck Life Adventure","compatibility":99,"releases":[{"id":"01005BC012C66000","region":null}]},{"id":"113b01dc-a1fb-4daf-b7d9-749adccabc07","directory":"donut-county","title":"Donut County","compatibility":0,"releases":[{"id":"0100E2800C364000","region":null}]},{"id":"113c19b4-7bce-420e-8758-43af88f817dc","directory":"bonkies","title":"Bonkies","compatibility":99,"releases":[{"id":"01008E20128DE000","region":null}]},{"id":"114e4565-b61c-4156-9566-5e2929511c7b","directory":"millie","title":"Millie","compatibility":99,"releases":[{"id":"0100976008FBE000","region":null}]},{"id":"11603e8a-d5b8-4e58-a75c-f3e4949aff9b","directory":"retrograde-arena","title":"Retrograde Arena","compatibility":99,"releases":[{"id":"0100802011A2A000","region":null}]},{"id":"1168c41b-817f-4c6d-9bc9-2b58103eb3a8","directory":"chess-knights-shinobi","title":"Chess Knights: Shinobi","compatibility":99,"releases":[{"id":"01009D6013CB0000","region":null}]},{"id":"117be7d2-af9b-4125-b03c-86e3107cf968","directory":"always-sometimes-monsters","title":"Always Sometimes Monsters","compatibility":99,"releases":[{"id":"0100895013EE0000","region":null}]},{"id":"117ce0a9-0000-4d3f-8dcc-76cbcb13f6a6","directory":"lost-sphear","title":"LOST SPHEAR","compatibility":0,"releases":[{"id":"010077B0038B2000","region":null}]},{"id":"118b0979-380f-4fa8-ae81-efbb3e69cdd2","directory":"sudoku-classic","title":"Sudoku Classic","compatibility":99,"releases":[{"id":"0100380015262000","region":null}]},{"id":"1191eb5b-8b00-44ab-8bb6-a90366998e07","directory":"word-search-by-powgi","title":"Word Search by POWGI","compatibility":99,"releases":[{"id":"0100F9A008AD6000","region":null}]},{"id":"1192ee2a-4dbf-43be-be82-083bd4e22ba7","directory":"braveland-trilogy","title":"Braveland Trilogy","compatibility":99,"releases":[{"id":"0100A5B00D3D2000","region":null}]},{"id":"11afb680-d98d-4134-843c-3d42e64d6b9c","directory":"namco-museum-r-archives-vol-1","title":"NAMCO MUSEUM® ARCHIVES Vol 1","compatibility":2,"releases":[{"id":"010084E010E18000","region":null}]},{"id":"11ba351e-d67a-4cbd-a9a3-98f1cd5cc64e","directory":"lets-sing-country","title":"Let's Sing Country","compatibility":99,"releases":[{"id":"0100E5A00DF60000","region":null}]},{"id":"11beb21e-9824-477d-b718-fb6657de11c1","directory":"choices-that-matter-and-their-heroes-were-lost","title":"Choices That Matter: And Their Heroes Were Lost","compatibility":99,"releases":[{"id":"01006680132F0000","region":null}]},{"id":"11c396e0-d1e4-4d60-97b0-1ca022203a84","directory":"attack-of-the-toy-tanks","title":"Attack of the Toy Tanks","compatibility":99,"releases":[{"id":"010039600E7AC000","region":null}]},{"id":"11c39e2b-b2e5-4d72-b475-6a3830909881","directory":"save-me-mr-tako-definitive-edition","title":"Save me Mr Tako: Definitive Edition","compatibility":99,"releases":[{"id":"010099601473E000","region":null}]},{"id":"11d05985-31e7-4901-8434-2d02e816f286","directory":"the-saviors-gang","title":"The Savior's Gang","compatibility":99,"releases":[{"id":"01002BA00C7CE000","region":null}]},{"id":"11dcbc76-1052-4934-b09e-4fd007ca3445","directory":"ragtag-adventurers","title":"Ragtag Adventurers","compatibility":99,"releases":[{"id":"010032200BBC0000","region":null}]},{"id":"11e10014-39bd-4b5b-aebe-bc043e56da4c","directory":"dream-daddy-a-dad-dating-simulator","title":"Dream Daddy: A Dad Dating Simulator","compatibility":99,"releases":[{"id":"0100BF500E94E000","region":null}]},{"id":"11e6b926-1b79-4ce7-abb9-f5616c808a81","directory":"aca-neogeo-the-king-of-fighters-95","title":"ACA NEOGEO THE KING OF FIGHTERS '95","compatibility":99,"releases":[{"id":"01009DC001DB6000","region":null}]},{"id":"11e73b84-a764-4542-8bb3-24cecb6e2f64","directory":"max-the-curse-of-brotherhood","title":"Max: The Curse of Brotherhood","compatibility":0,"releases":[{"id":"01001C9007614000","region":null}]},{"id":"11e9f4cd-4b32-4f3d-a640-596ad2459f4d","directory":"captain-toad-treasure-tracker","title":"Captain Toad: Treasure Tracker","compatibility":0,"releases":[{"id":"01009BF0072D4000","region":null}]},{"id":"12111a8c-17f7-402f-8781-5d234ee265d1","directory":"just-dance-2018","title":"Just Dance 2018","compatibility":0,"releases":[{"id":"0100A0500348A000","region":null}]},{"id":"12126413-acd8-4ccc-8e06-58ae33b985d0","directory":"siegecraft-commander","title":"Siegecraft Commander","compatibility":99,"releases":[{"id":"010016B005CF8000","region":null}]},{"id":"121294f6-90f0-4a41-b720-e35e03cfc887","directory":"mercenaries-blaze-dawn-of-the-twin-dragons","title":"Mercenaries Blaze: Dawn of the Twin Dragons","compatibility":0,"releases":[{"id":"0100A790133FC000","region":null}]},{"id":"12316866-554e-49ff-8c73-8be31235f594","directory":"spot-the-differences-party","title":"Spot The Differences: Party!","compatibility":99,"releases":[{"id":"010052100D1B4000","region":null}]},{"id":"1231e9f7-123d-4051-b73f-4eaf1320a82e","directory":"rainbocorns","title":"Rainbocorns","compatibility":99,"releases":[{"id":"01005EE0142F6000","region":null}]},{"id":"123bbe82-016f-4d14-8382-ee9b9456ca1a","directory":"potata-fairy-flower","title":"Potata: Fairy Flower","compatibility":5,"releases":[{"id":"01005FC010EB2000","region":null}]},{"id":"12411e4a-2981-427a-929d-d935e2ffde88","directory":"super-toy-cars-2","title":"Super Toy Cars 2","compatibility":2,"releases":[{"id":"0100C6800D770000","region":null}]},{"id":"1246f3fc-4bb3-4ff5-9acf-9ae286424cf7","directory":"the-legend-of-zelda-breath-of-the-wild","title":"The Legend of Zelda: Breath of the Wild","compatibility":1,"releases":[{"id":"01007EF00011E000","region":null}]},{"id":"1247a15e-a09f-4055-9236-9839d0c1f6a0","directory":"personality-and-psychology-premium","title":"Personality and Psychology Premium","compatibility":99,"releases":[{"id":"0100DEA00B758000","region":null}]},{"id":"124cc074-e891-43f2-8f90-5a09d2047147","directory":"she-and-the-light-bearer","title":"She and the Light Bearer","compatibility":1,"releases":[{"id":"01008CD00C5FC000","region":null}]},{"id":"124f1a2c-d833-4ffa-b5e9-08d0c2d23028","directory":"saboteur-sio","title":"Saboteur SiO","compatibility":0,"releases":[{"id":"0100D94012FE8000","region":null}]},{"id":"124fd6c9-9d3c-4a3f-8f18-24b41a5c2cdb","directory":"roki","title":"Röki","compatibility":99,"releases":[{"id":"010022600E4AE000","region":null}]},{"id":"1259a413-3b14-4f0d-bccf-2c8459b0a712","directory":"super-mario-3d-world-bowsers-fury","title":"Super Mario™ 3D World + Bowser’s Fury","compatibility":0,"releases":[{"id":"010028600EBDA000","region":null}]},{"id":"12626755-3764-4ff7-9437-50051bd6fb34","directory":"tokyo-school-life","title":"Tokyo School Life","compatibility":99,"releases":[{"id":"0100E2E00CB14000","region":null}]},{"id":"1262a7e3-1efa-4901-9ba0-5f245e084d1c","directory":"kings-of-paradise","title":"Kings of Paradise","compatibility":99,"releases":[{"id":"0100FE9013182000","region":null}]},{"id":"1272064d-6d1e-4415-8332-ddd1af2ae4b9","directory":"arcade-archives-traverse-usa","title":"Arcade Archives Traverse USA","compatibility":4,"releases":[{"id":"010029D006ED8000","region":null}]},{"id":"1280b2e2-cabe-49dd-877a-869a9e23c24f","directory":"vampires-fall-origins","title":"Vampire's Fall: Origins","compatibility":99,"releases":[{"id":"0100BD0012A68000","region":null}]},{"id":"12915b33-3c15-4dbf-9bca-5bd2fcee8565","directory":"fatal-twelve","title":"FATAL TWELVE","compatibility":99,"releases":[{"id":"010054101370E000","region":null}]},{"id":"129361a4-ab74-436a-b346-1269921d6987","directory":"jet-ski-rush","title":"Jet Ski Rush","compatibility":99,"releases":[{"id":"01004BC010D70000","region":null}]},{"id":"1297432c-533c-4d57-a48e-ba73a6907831","directory":"langrisser-i-ii","title":"Langrisser I & II","compatibility":1,"releases":[{"id":"0100BAB00E8C0000","region":null}]},{"id":"12abb349-215e-4b76-961d-6dc41b1e1a56","directory":"shinobi-blade","title":"Shinobi Blade","compatibility":99,"releases":[{"id":"0100006013A4A000","region":null}]},{"id":"12adb826-8c9c-4c3d-9361-1ce84c12a4e0","directory":"pba-pro-bowling-2021","title":"PBA Pro Bowling 2021","compatibility":3,"releases":[{"id":"0100F95013772000","region":null}]},{"id":"12ae30e3-ec20-4afd-b9fa-fc984ac93472","directory":"drag-sim-2020","title":"Drag Sim 2020","compatibility":0,"releases":[{"id":"0100B59011A1C000","region":null}]},{"id":"12b4a6a5-8361-44b3-80ba-7edc8b1dcc5e","directory":"apple-knight","title":"Apple Knight","compatibility":0,"releases":[{"id":"01004C1013548000","region":null}]},{"id":"12cd2960-6c90-48f0-8be0-6a4cb65f0b3b","directory":"sakura-swim-club","title":"Sakura Swim Club","compatibility":1,"releases":[{"id":"0100425015F7E000","region":null}]},{"id":"12d1f9b8-0ed2-46c4-8cd6-22d8f9ca5f0f","directory":"decay-of-logos","title":"Decay of Logos","compatibility":99,"releases":[{"id":"010027700FD2E000","region":null}]},{"id":"12d80c91-e1a7-4773-800b-5f6aae517f52","directory":"ittle-dew-2","title":"Ittle Dew 2+","compatibility":0,"releases":[{"id":"01004070022F0000","region":null}]},{"id":"12e16ceb-6085-4ca1-84f1-e6a48c5c2599","directory":"lethal-league-blaze","title":"Lethal League Blaze","compatibility":1,"releases":[{"id":"01003AB00983C000","region":null}]},{"id":"12e298fc-8cf2-460a-87a2-424c5f0d83db","directory":"here-be-dragons","title":"Here Be Dragons","compatibility":5,"releases":[{"id":"0100F9B012C6A000","region":null}]},{"id":"12f1da60-2c2f-43c4-9e6d-fbf32cef4f3d","directory":"ghostrunner","title":"Ghostrunner","compatibility":3,"releases":[{"id":"010090F012916000","region":null}]},{"id":"12f6df58-67bc-49a9-883d-1bff1eeab9ac","directory":"red-ronin","title":"Red Ronin","compatibility":99,"releases":[{"id":"01000FE014632000","region":null}]},{"id":"130078d4-c20d-4714-b5be-2e3c96ab0526","directory":"cubixx","title":"Cubixx","compatibility":99,"releases":[{"id":"0100DDE00DAC4000","region":null}]},{"id":"13013e71-7ad8-44c4-a422-847218d15728","directory":"green","title":"GREEN","compatibility":99,"releases":[{"id":"010068D00AE68000","region":null}]},{"id":"1305480e-a0fa-4f25-aad4-86d255838844","directory":"the-great-perhaps","title":"The Great Perhaps","compatibility":99,"releases":[{"id":"010007B012514000","region":null}]},{"id":"13079917-76b1-4898-a87e-bfb5ba58a423","directory":"super-squidlit","title":"Super Squidlit","compatibility":99,"releases":[{"id":"01009BD0128EC000","region":null}]},{"id":"13185fc8-84e4-49a8-9602-402dbf9e34d1","directory":"risk-of-rain-2","title":"Risk of Rain 2","compatibility":2,"releases":[{"id":"010076D00E4BA000","region":null}]},{"id":"131ea256-b191-41f8-bd3f-aeb04f69dc17","directory":"istanbul-digital-edition","title":"Istanbul: Digital Edition","compatibility":99,"releases":[{"id":"01008E700CAAC000","region":null}]},{"id":"13363229-d71e-4027-9655-f02a36bb9642","directory":"megaton-rainfall","title":"Megaton Rainfall","compatibility":3,"releases":[{"id":"010005A00B312000","region":null}]},{"id":"133a3d57-7dc0-41b2-80a5-c2ce1f5fd64f","directory":"unto-the-end","title":"Unto The End","compatibility":99,"releases":[{"id":"0100E49013190000","region":null}]},{"id":"133d776f-3f09-4557-8387-cda5bae46574","directory":"color-your-world","title":"Color Your World","compatibility":99,"releases":[{"id":"0100EB00132FE000","region":null}]},{"id":"133e203d-b19c-4b0b-9c3e-1cbcdeb2c539","directory":"the-survivalists","title":"The Survivalists","compatibility":2,"releases":[{"id":"0100EF200DA60000","region":null}]},{"id":"133f868e-c4d6-4ed7-93b4-14949197f528","directory":"arcade-archives-pooyan","title":"Arcade Archives POOYAN","compatibility":4,"releases":[{"id":"0100A6E00D3F8000","region":null}]},{"id":"1347b7c8-b381-4caa-b717-51e8aead14f5","directory":"freddy-fazbears-pizzeria-simulator","title":"Freddy Fazbear's Pizzeria Simulator","compatibility":99,"releases":[{"id":"01009C000E442000","region":null}]},{"id":"135ada33-d572-428d-9e63-2998748ba221","directory":"horace","title":"Horace","compatibility":99,"releases":[{"id":"010086D011EB8000","region":null}]},{"id":"13714937-5ff9-4d3b-8897-71f0b9e4bb2c","directory":"rocket-league","title":"Rocket League","compatibility":3,"releases":[{"id":"01005EE0036EC000","region":null}]},{"id":"137885f2-d411-4e22-911e-96ba1e770d42","directory":"skee-ball","title":"Skee-Ball","compatibility":99,"releases":[{"id":"0100B2F008BD8000","region":null}]},{"id":"137af45a-d177-4700-87d2-973d0e668129","directory":"call-of-juarez-gunslinger","title":"Call of Juarez: Gunslinger","compatibility":1,"releases":[{"id":"0100B4700BFC6000","region":null}]},{"id":"1382e58d-839a-4f76-b663-33efd91f249e","directory":"spongebob-squarepants-battle-for-bikini-bottom-rehydrated","title":"SpongeBob SquarePants: Battle for Bikini Bottom - Rehydrated","compatibility":1,"releases":[{"id":"010062800D39C000","region":null}]},{"id":"1382ebfb-7623-4e61-bb4c-eadf7129bfb2","directory":"de-mambo","title":"De Mambo","compatibility":4,"releases":[{"id":"01008E900471E000","region":null}]},{"id":"13878c70-366c-45a9-8595-5ebaa7613498","directory":"push-the-box-puzzle-game","title":"Push the Box - Puzzle Game","compatibility":99,"releases":[{"id":"01001DD0116AA000","region":null}]},{"id":"138f32a6-1bbb-4240-96d3-eba409011e07","directory":"otto","title":"Otto","compatibility":99,"releases":[{"id":"010068B0094A0000","region":null}]},{"id":"13993903-2d89-4c84-bdef-46db9eaa44b9","directory":"pocket-clothier","title":"Pocket Clothier","compatibility":99,"releases":[{"id":"010052900DC7E000","region":null}]},{"id":"13a4e002-6720-4440-b2ea-d60bffe427bd","directory":"virtuaverse","title":"VirtuaVerse","compatibility":99,"releases":[{"id":"0100D7C013544000","region":null}]},{"id":"13a8c665-b413-4e76-8fc9-1fda289e0a67","directory":"lockstone","title":"Lockstone","compatibility":99,"releases":[{"id":"0100610011780000","region":null}]},{"id":"13af1247-2296-49bf-a827-aed247922f55","directory":"voxel-pirates","title":"Voxel Pirates","compatibility":99,"releases":[{"id":"0100AFA011068000","region":null}]},{"id":"13b4607b-72c9-44d8-9b91-889ce8abf9c4","directory":"the-bridge","title":"The Bridge","compatibility":0,"releases":[{"id":"01002A2004530000","region":null}]},{"id":"13b83e28-e4c5-469f-9412-98f16c512a12","directory":"whipseey-and-the-lost-atlas","title":"Whipseey and the Lost Atlas","compatibility":1,"releases":[{"id":"010017500E7E0000","region":null}]},{"id":"13b89ff7-647d-4838-9126-10b2526470d8","directory":"desktop-baseball","title":"Desktop Baseball","compatibility":99,"releases":[{"id":"0100FC800E64E000","region":null}]},{"id":"13be55e7-7a6c-485b-9515-195859609ee3","directory":"doggie-ninja-the-burning-strikers","title":"Doggie Ninja The Burning Strikers","compatibility":99,"releases":[{"id":"0100013010456000","region":null}]},{"id":"13c299bf-da28-47e2-bff0-50067ab987f1","directory":"detective-dolittle","title":"Detective Dolittle","compatibility":1,"releases":[{"id":"010030600E65A000","region":null}]},{"id":"13c98210-4771-41da-a939-41f575a33734","directory":"s-n-i-p-e-r-hunter-scope","title":"S.N.I.P.E.R. - Hunter Scope","compatibility":0,"releases":[{"id":"0100B8B012ECA000","region":null}]},{"id":"13ca5850-eb1a-4cc7-a24a-ccfddc37fd01","directory":"arcade-archives-seicross","title":"Arcade Archives SEICROSS","compatibility":99,"releases":[{"id":"0100740014CBE000","region":null}]},{"id":"13cacd3e-5127-4eaa-b280-cdc86390e0c2","directory":"3d-minigolf","title":"3D MiniGolf","compatibility":1,"releases":[{"id":"01006DA00707C000","region":null}]},{"id":"13cefb29-65b1-4269-a53c-2a1d80b17d0a","directory":"street-outlaws-2-winner-takes-all","title":"Street Outlaws 2: Winner Takes All","compatibility":99,"releases":[{"id":"0100A49012D10000","region":null}]},{"id":"13d074d6-1601-4623-a318-53059abb3869","directory":"the-mahjong-huntress","title":"The Mahjong Huntress","compatibility":99,"releases":[{"id":"0100D1A00C330000","region":null}]},{"id":"13d90096-4ecd-48ed-968b-4f97314ec22f","directory":"scrap-rush","title":"SCRAP RUSH!!","compatibility":99,"releases":[{"id":"0100A8000B65C000","region":null}]},{"id":"13d92c7d-9014-4f14-b405-60432902b0b7","directory":"fluxteria","title":"Fluxteria","compatibility":99,"releases":[{"id":"01008D4010C46000","region":null}]},{"id":"13dec7bb-9512-4380-a581-3030f8993664","directory":"the-drama-queen-murder","title":"The Drama Queen Murder","compatibility":99,"releases":[{"id":"0100BD700EBC0000","region":null}]},{"id":"13e25db0-74bc-4ef4-819e-2a6b6f82b717","directory":"streets-of-rage-4","title":"Streets of Rage 4","compatibility":1,"releases":[{"id":"0100EC9010258000","region":null}]},{"id":"13e719a8-440c-42a0-aa3a-ec137e608115","directory":"mini-trains","title":"Mini Trains","compatibility":1,"releases":[{"id":"0100FB700DE1A000","region":null}]},{"id":"13f81878-3f4e-4c9a-848e-15a2cfe93815","directory":"dodge-hard","title":"DODGE HARD","compatibility":99,"releases":[{"id":"0100DE400D5A4000","region":null}]},{"id":"140dbca6-0dd4-4c8e-bcf4-e4ee82ea04b6","directory":"pokemon-lets-go-pikachu-and-pokemon-lets-go-eevee-demo-version","title":"Pokémon: Let’s Go, Pikachu! and Pokémon: Let’s Go, Eevee! Demo Version","compatibility":1,"releases":[{"id":"0100C1800D7AE000","region":null}]},{"id":"141bed7b-0603-4a2b-90b2-81a66ba84df6","directory":"big-bobby-car-the-big-race","title":"BIG-Bobby-Car - The Big Race","compatibility":99,"releases":[{"id":"010007401287E000","region":null}]},{"id":"1422204d-13f9-4963-b088-867a269978d5","directory":"hellpoint","title":"Hellpoint","compatibility":4,"releases":[{"id":"010024600C794000","region":null}]},{"id":"1429463d-a697-4506-9b7f-8d777ef367e5","directory":"a-gummys-life","title":"A Gummy's Life","compatibility":99,"releases":[{"id":"0100ABC009708000","region":null}]},{"id":"1433f02f-3366-44b3-8566-7bab2cd415e1","directory":"collidalot","title":"Collidalot","compatibility":99,"releases":[{"id":"010030800BC36000","region":null}]},{"id":"14361049-20f4-45f2-8899-2921e21d73c1","directory":"rmx-real-motocross","title":"RMX Real Motocross","compatibility":99,"releases":[{"id":"01008AC0115C6000","region":null}]},{"id":"14398c8e-6895-4e9b-a05e-5ab341fd7d4e","directory":"guardian-force-saturn-tribute","title":"Guardian Force - Saturn Tribute","compatibility":99,"releases":[{"id":"0100C67015270000","region":null}]},{"id":"1443b012-0498-4125-a696-871782a60e69","directory":"bubble-bobble-4-friends","title":"Bubble Bobble 4 Friends","compatibility":3,"releases":[{"id":"010010900F7B4000","region":null}]},{"id":"14447c7a-41b4-4376-89ae-8ab090e1dacb","directory":"nena","title":"NENA","compatibility":99,"releases":[{"id":"0100C39013874000","region":null}]},{"id":"1452a155-81d0-4b81-a4a4-75bf5e055703","directory":"will-a-wonderful-world","title":"WILL: A Wonderful World","compatibility":99,"releases":[{"id":"0100D360098B6000","region":null}]},{"id":"1452ecb0-fc2a-4b79-8a0a-7c2655e8444c","directory":"fall-gummies","title":"Fall Gummies","compatibility":99,"releases":[{"id":"01005CB013872000","region":null}]},{"id":"1454c243-3148-4b41-972a-e04ef3a98e6a","directory":"fuze-player","title":"FUZE Player","compatibility":99,"releases":[{"id":"010055801134E000","region":null}]},{"id":"1461d0db-f64b-4b34-bd11-c1e369720a88","directory":"king-leo","title":"King Leo","compatibility":99,"releases":[{"id":"01002D0015888000","region":null}]},{"id":"146be457-5d2c-41bf-8b02-483718aba736","directory":"aca-neogeo-shock-troopers","title":"ACA NEOGEO SHOCK TROOPERS","compatibility":1,"releases":[{"id":"01008A9001DC2000","region":null}]},{"id":"146c0cba-b9cf-4b61-875e-f6383ef1dda1","directory":"escape-first-2","title":"Escape First 2","compatibility":99,"releases":[{"id":"010021201296A000","region":null}]},{"id":"1481278b-ebb1-4046-b6a9-54b068f53ebd","directory":"yooka-laylee-and-the-impossible-lair","title":"Yooka-Laylee and the Impossible Lair","compatibility":0,"releases":[{"id":"010022F00DA66000","region":null}]},{"id":"148984d8-4eae-4602-81a2-8f7c0dad4594","directory":"sokodice","title":"Sokodice","compatibility":99,"releases":[{"id":"010094501406E000","region":null}]},{"id":"148a0fe8-475e-444d-9ef2-88503d1ae753","directory":"brawl","title":"BRAWL","compatibility":3,"releases":[{"id":"0100A42004718000","region":null}]},{"id":"148da4b8-e8b9-439c-8558-02a58b6ac586","directory":"god-eater-3","title":"GOD EATER 3","compatibility":4,"releases":[{"id":"01001C700873E000","region":null}]},{"id":"149354ab-db83-4e70-99b7-391450753f20","directory":"professor-rubiks-brain-fitness","title":"Professor Rubik's Brain Fitness","compatibility":99,"releases":[{"id":"01000160127EC000","region":null}]},{"id":"14be7350-4107-458f-ad56-a674735e1a02","directory":"little-misfortune","title":"Little Misfortune","compatibility":99,"releases":[{"id":"0100E7000E826000","region":null}]},{"id":"14cf2538-52af-44e7-a7d5-c1ef13247c9b","directory":"road-z-survival-the-last-winter","title":"Road Z Survival: The Last Winter","compatibility":99,"releases":[{"id":"0100F89016626000","region":null}]},{"id":"14d75c4e-21ce-41e0-8f76-38f4e5ee3889","directory":"legrand-legacy-tale-of-the-fatebounds","title":"LEGRAND LEGACY: Tale of the Fatebounds","compatibility":99,"releases":[{"id":"0100E7500BF84000","region":null}]},{"id":"14fae381-3e9f-4ff6-9b52-7c4b4326ef08","directory":"lacuna-a-sci-fi-noir-adventure","title":"Lacuna - A Sci-Fi Noir Adventure","compatibility":99,"releases":[{"id":"0100CA201683E000","region":null}]},{"id":"15048ed5-0e28-4589-813e-022151cebf51","directory":"infernium","title":"Infernium","compatibility":99,"releases":[{"id":"0100D4300A4CA000","region":null}]},{"id":"1507e490-f043-4b03-b2dc-9f6617f6fe11","directory":"rogue-legacy","title":"Rogue Legacy","compatibility":3,"releases":[{"id":"010056500AD50000","region":null}]},{"id":"150e9b73-0106-4a98-8f90-fa0d73ed70db","directory":"pacific-wings","title":"Pacific Wings","compatibility":5,"releases":[{"id":"010006900EF5E000","region":null}]},{"id":"15171d58-347e-4a0c-8fd9-9a88b74bfebf","directory":"supermoose","title":"SuperMoose","compatibility":99,"releases":[{"id":"0100A0A013AEE000","region":null}]},{"id":"152d3634-a728-4aea-aaf5-942b8f6aa7f0","directory":"double-kick-heroes","title":"Double Kick Heroes","compatibility":99,"releases":[{"id":"01000F400C1A4000","region":null}]},{"id":"15365f32-52ca-4e56-bf19-c03ce78ac31e","directory":"home-escape","title":"Home Escape","compatibility":99,"releases":[{"id":"01006D100E1DE000","region":null}]},{"id":"153fff97-c2fe-4705-bb5b-f17efbf1e154","directory":"doggie-ninja-the-golden-mission","title":"Doggie Ninja The Golden Mission","compatibility":99,"releases":[{"id":"0100F9400D6CC000","region":null}]},{"id":"15519c25-bfd3-4e99-b671-f4a49f65b735","directory":"animal-revolt-battle-simulator","title":"Animal Revolt Battle Simulator","compatibility":99,"releases":[{"id":"0100778017196000","region":null}]},{"id":"155cab79-2ed6-422f-ab9c-eaf41d51845e","directory":"youtubers-life-omg-edition","title":"Youtubers Life OMG Edition","compatibility":3,"releases":[{"id":"01002C9005F36000","region":null}]},{"id":"1561028a-bba1-447a-8e90-ad320484b3c1","directory":"pretty-princess-party","title":"Pretty Princess Party","compatibility":99,"releases":[{"id":"01007F00128CC000","region":null}]},{"id":"1563b1e0-3da4-4a54-bf81-610f5bd586e1","directory":"unholy-heights","title":"Unholy Heights","compatibility":99,"releases":[{"id":"0100B58007D40000","region":null}]},{"id":"1595d5b2-abe6-409a-83c4-427990a4c4c5","directory":"hitman-3-cloud-version","title":"HITMAN 3 - Cloud Version","compatibility":99,"releases":[{"id":"01004990132AC000","region":null}]},{"id":"159b4cd3-0c06-441f-84c4-7a04a7f3628e","directory":"double-dragon-iii-the-sacred-stones","title":"DOUBLE DRAGON Ⅲ: The Sacred Stones","compatibility":1,"releases":[{"id":"01001AD00E49A000","region":null}]},{"id":"159cf8df-96c4-4132-8cc3-94522e1d7087","directory":"r-b-i-baseball-21","title":"R.B.I. Baseball 21","compatibility":4,"releases":[{"id":"0100B4A0115CA000","region":null}]},{"id":"159f89da-a76e-4d89-9f77-af9cc2535ff9","directory":"girls-tank-battle","title":"Girls Tank Battle","compatibility":99,"releases":[{"id":"0100C1C0158F2000","region":null}]},{"id":"15a4a24a-7d2e-45d6-97cd-c9b0a830f2a2","directory":"three-fourths-home-extended-edition","title":"Three Fourths Home: Extended Edition","compatibility":99,"releases":[{"id":"0100D1D00ACB8000","region":null}]},{"id":"15b08700-5be0-47f9-a8e6-ea75d16851d8","directory":"the-knight-and-the-dragon","title":"the Knight & the Dragon","compatibility":99,"releases":[{"id":"010031B00DB34000","region":null}]},{"id":"15b7a5c9-eae3-47b7-9512-2410a5bc3f57","directory":"where-the-water-tastes-like-wine","title":"Where the Water Tastes Like Wine","compatibility":0,"releases":[{"id":"01005D800E022000","region":null}]},{"id":"15be02af-1631-4f4c-9e1b-83c65ba57134","directory":"kuukiyomi-consider-it","title":"KUUKIYOMI: Consider It!","compatibility":0,"releases":[{"id":"010079600BF22000","region":null}]},{"id":"15be382b-f4e7-4233-bf25-7cdf54a278ca","directory":"memory-lane-2","title":"Memory Lane 2","compatibility":99,"releases":[{"id":"01003840151F8000","region":null}]},{"id":"15dfaac9-94da-4b7d-b40a-8fc94d31cad6","directory":"she-remembered-caterpillars","title":"She Remembered Caterpillars","compatibility":99,"releases":[{"id":"01004F50085F2000","region":null}]},{"id":"15e0e206-6ed6-446b-b8ce-e161a6385901","directory":"arcade-archives-thunder-dragon","title":"Arcade Archives THUNDER DRAGON","compatibility":99,"releases":[{"id":"0100D540141FE000","region":null}]},{"id":"15e558cf-dda6-4f06-86ec-8ee57625a3e1","directory":"hyperbrawl-tournament","title":"HyperBrawl Tournament","compatibility":1,"releases":[{"id":"01006C500A29C000","region":null}]},{"id":"15e5ee50-e6e2-4575-a424-29a9c166db57","directory":"reverse-crawl","title":"Reverse Crawl","compatibility":99,"releases":[{"id":"010080000D8CA000","region":null}]},{"id":"15ea2c81-bfbf-4739-a89f-aaf2d9ce3ad0","directory":"beyond-enemy-lines-essentials","title":"Beyond Enemy Lines: Essentials","compatibility":99,"releases":[{"id":"0100B8F00DACA000","region":null}]},{"id":"15f3fbd5-9eb7-4530-b02b-3e3dba670278","directory":"drizzlepath-deja-vu","title":"Drizzlepath: Deja Vu","compatibility":99,"releases":[{"id":"0100377015A84000","region":null}]},{"id":"1601bd2b-e4aa-41fb-9597-1f52f63f017e","directory":"wasteland-2-directors-cut","title":"Wasteland 2: Director's Cut","compatibility":3,"releases":[{"id":"010039A00BC64000","region":null}]},{"id":"160fae18-542f-4392-b4f9-d7183ae1f7bb","directory":"3000th-duel","title":"3000th Duel","compatibility":1,"releases":[{"id":"0100FB5010D2E000","region":null}]},{"id":"1625ba8e-f23a-49f0-a671-a7b9777d5b2e","directory":"attack-on-beetle","title":"Attack on Beetle","compatibility":99,"releases":[{"id":"0100427012690000","region":null}]},{"id":"16268300-6feb-42fb-a4e4-df0092789661","directory":"unbound-worlds-apart","title":"Unbound: Worlds Apart","compatibility":2,"releases":[{"id":"0100C5A013B7A000","region":null}]},{"id":"163c25d6-e63b-4302-9050-b0fb1f9ac9c0","directory":"wing-of-darkness","title":"Wing of Darkness","compatibility":2,"releases":[{"id":"010035B012F28000","region":null}]},{"id":"164d69cb-90d1-40b5-ab18-ec51c6455c3f","directory":"macbat-64-journey-of-a-nice-chap","title":"Macbat 64: Journey of a Nice Chap","compatibility":99,"releases":[{"id":"0100272012DEC000","region":null}]},{"id":"164e775b-c57f-4c18-872c-22d78fcd09b7","directory":"gelly-break","title":"Gelly Break","compatibility":2,"releases":[{"id":"01009D000AF3A000","region":null}]},{"id":"16530325-9173-4dc3-acdc-90fbe6a813eb","directory":"arcade-archives-kurikinton","title":"Arcade Archives KURIKINTON","compatibility":99,"releases":[{"id":"01001AD014CC6000","region":null}]},{"id":"16539121-f973-4654-9f56-d44759a05e24","directory":"arcade-archives-pac-man","title":"Arcade Archives PAC-MAN","compatibility":99,"releases":[{"id":"0100431015ABE000","region":null}]},{"id":"16663ed0-70f0-495f-ab13-99a13b1d2b5f","directory":"resident-evil-0","title":"Resident Evil 0","compatibility":0,"releases":[{"id":"010097000BC10000","region":null}]},{"id":"16670d6e-841f-4acc-8e09-d93b6d43a100","directory":"sports-adventure-pinball","title":"Sports & Adventure Pinball","compatibility":99,"releases":[{"id":"0100CAF015C32000","region":null}]},{"id":"166c2d88-d4e0-4b14-b9cb-439eaf4fb3f4","directory":"coffee-talk","title":"Coffee Talk","compatibility":99,"releases":[{"id":"010066200E1E6000","region":null}]},{"id":"166f735b-3862-4e1c-8fd1-281e6d93bb95","directory":"inside-grass-a-little-adventure","title":"Inside Grass: A little adventure","compatibility":99,"releases":[{"id":"0100EC7012D34000","region":null}]},{"id":"1671f8ba-5de6-4cdc-bd98-75115ea689a1","directory":"catherine-full-body","title":"Catherine: Full Body","compatibility":2,"releases":[{"id":"0100BF00112C0000","region":null}]},{"id":"167ca5d5-b087-4190-a0aa-29a34ca02ab5","directory":"worms-wmd","title":"Worms W.M.D","compatibility":4,"releases":[{"id":"01001AE005166000","region":null}]},{"id":"16827019-62b9-4b9d-bc1e-cbeb53632272","directory":"party-crashers","title":"Party Crashers","compatibility":99,"releases":[{"id":"0100CB10089DE000","region":null}]},{"id":"168fc201-0521-4469-bcb1-f7f9164a4235","directory":"where-cards-fall","title":"Where Cards Fall","compatibility":99,"releases":[{"id":"010055501288A000","region":null}]},{"id":"1692cf28-bbcc-41fd-9a92-4607f09b89fd","directory":"rogue-star-rescue","title":"Rogue Star Rescue","compatibility":99,"releases":[{"id":"0100BE6013408000","region":null}]},{"id":"1693afc3-0105-4ff2-9184-61918398a510","directory":"pj-masks-heroes-of-the-night","title":"PJ MASKS: HEROES OF THE NIGHT","compatibility":99,"releases":[{"id":"0100614013DC0000","region":null}]},{"id":"1695613f-898f-4a3f-86d7-79620651dbbf","directory":"spiral-memoria-the-summer-i-meet-myself","title":"Spiral Memoria -The Summer I Meet Myself-","compatibility":1,"releases":[{"id":"0100F6D01250C000","region":null}]},{"id":"16ab1654-6c79-4cb7-b419-e8267591194d","directory":"zenith","title":"Zenith","compatibility":99,"releases":[{"id":"0100AAC00E692000","region":null}]},{"id":"16b55431-03be-42b5-9af2-851e120f9421","directory":"tangrams-deluxe","title":"Tangrams Deluxe","compatibility":0,"releases":[{"id":"01009CC00BD6E000","region":null}]},{"id":"16c3742f-de31-4935-a079-b34bf2f2698e","directory":"please-teach-me-onedari-shogi","title":"Please Teach Me Onedari Shogi","compatibility":1,"releases":[{"id":"0100F2C00EED4000","region":null}]},{"id":"16d462a2-e81b-4ca2-9944-34151376fe26","directory":"tactical-mind","title":"Tactical Mind","compatibility":99,"releases":[{"id":"01000F20083A8000","region":null}]},{"id":"16d4d6cb-d3e6-48c6-874a-44dad3a010d3","directory":"metal-unit","title":"Metal Unit","compatibility":99,"releases":[{"id":"0100F25014BD6000","region":null}]},{"id":"16db7c08-bc25-4dec-83af-df6eed1fb93b","directory":"zombo-buster-rising","title":"Zombo Buster Rising","compatibility":99,"releases":[{"id":"010096201690C000","region":null}]},{"id":"16e51da3-8640-4475-8e25-9e046f34527f","directory":"flipping-death","title":"Flipping Death","compatibility":3,"releases":[{"id":"01009FB002B2E000","region":null}]},{"id":"16e84023-89a6-42ab-a270-76888a7352c0","directory":"sniper","title":"Sniper","compatibility":99,"releases":[{"id":"0100839010DD6000","region":null}]},{"id":"16ed8fd0-f69e-4584-baff-a377ba7721b2","directory":"donutsnjustice","title":"Donuts'n'Justice","compatibility":99,"releases":[{"id":"0100D01014DC8000","region":null}]},{"id":"16f2c62b-5c84-49d3-823d-ec220545acbf","directory":"nape-retroverse-collection","title":"NAPE RETROVERSE COLLECTION","compatibility":99,"releases":[{"id":"0100415016902000","region":null}]},{"id":"16f4c437-10c1-4838-9cd8-6866170f2eb5","directory":"dominate-board-game","title":"Dominate - Board Game","compatibility":99,"releases":[{"id":"01007A1012376000","region":null}]},{"id":"16f9892d-8e09-4bcf-bd5c-4ef4439009fd","directory":"battery-jam","title":"Battery Jam","compatibility":99,"releases":[{"id":"0100E4400C0A2000","region":null}]},{"id":"16fe8d17-a3b3-4561-9786-b11bf1ea7bea","directory":"vortex-attack-ex","title":"Vortex Attack EX","compatibility":99,"releases":[{"id":"010018400E4FC000","region":null}]},{"id":"17156ad0-c452-435f-9687-fcbb527de4f7","directory":"barricadez-revisited","title":"BARRICADEZ ReVisited","compatibility":99,"releases":[{"id":"010004A0143C4000","region":null}]},{"id":"171c111c-6a51-45ec-b390-c9899f5a4e83","directory":"shipped","title":"Shipped","compatibility":99,"releases":[{"id":"0100B2E00F13E000","region":null}]},{"id":"1722cb84-19f3-4d9b-be62-a5c10c3c9501","directory":"suzerain","title":"Suzerain","compatibility":1,"releases":[{"id":"0100531014988000","region":null}]},{"id":"1723432d-3dcd-4ccd-ba68-f6a7296513f0","directory":"pig-eat-ball","title":"Pig Eat Ball","compatibility":1,"releases":[{"id":"01000FD00D5CC000","region":null}]},{"id":"1728c626-69cd-4c61-a930-cb3219afad51","directory":"tallowmere","title":"Tallowmere","compatibility":99,"releases":[{"id":"01006AA006BE4000","region":null}]},{"id":"172fae20-664d-4dbd-873c-98bd8fd21399","directory":"code-of-princess-ex","title":"Code of Princess EX","compatibility":3,"releases":[{"id":"010034E005C9C000","region":null}]},{"id":"1732a213-d64c-4570-89bc-36540ac04974","directory":"beach-buggy-racing","title":"Beach Buggy Racing","compatibility":1,"releases":[{"id":"010095C00406C000","region":null}]},{"id":"1739d604-f693-4c94-ba4b-60c50e515f54","directory":"peaky-blinders-mastermind","title":"Peaky Blinders: Mastermind","compatibility":99,"releases":[{"id":"010002100CDCC000","region":null}]},{"id":"173bc7fd-c2fb-41c5-8fc8-c0306273aee0","directory":"love-pop","title":"Love Pop!","compatibility":99,"releases":[{"id":"010072D0167D0000","region":null}]},{"id":"17527141-9b96-48f5-bee7-78b2865e993d","directory":"happy-birthdays","title":"Happy Birthdays","compatibility":99,"releases":[{"id":"010083600AE9E000","region":null}]},{"id":"17575b19-2805-463b-be73-4e2024784a9e","directory":"aca-neogeo-2020-super-baseball","title":"ACA NEOGEO 2020 SUPER BASEBALL","compatibility":4,"releases":[{"id":"01003C400871E000","region":null}]},{"id":"17577fc2-393d-495e-b5ab-ddb87b803daf","directory":"risk-of-rain","title":"Risk of Rain","compatibility":1,"releases":[{"id":"0100AAA00ACBE000","region":null}]},{"id":"176528b6-d924-4c40-8398-13dfbcbf0982","directory":"mah-jongg-puzzle-pai-sen","title":"Mah-jongg Puzzle Pai-Sen","compatibility":99,"releases":[{"id":"0100EC400E1C0000","region":null}]},{"id":"177b2492-13c5-41e6-9494-947ab9495dc7","directory":"castle-crashers-remastered","title":"Castle Crashers Remastered","compatibility":4,"releases":[{"id":"010001300D14A000","region":null}]},{"id":"1787bdb4-0146-4348-ba11-7eeb402f42ec","directory":"bubble-cats-rescue","title":"Bubble Cats Rescue","compatibility":99,"releases":[{"id":"0100D0200EA92000","region":null}]},{"id":"178a288f-0a49-4aeb-bc51-19320656596e","directory":"car-mechanic-simulator-pocket-edition","title":"Car Mechanic Simulator Pocket Edition","compatibility":99,"releases":[{"id":"01009D100F112000","region":null}]},{"id":"1795ac7c-2ac4-4004-a223-b0ed3641e1e0","directory":"glass-masquerade","title":"Glass Masquerade","compatibility":99,"releases":[{"id":"0100D4C00C9FC000","region":null}]},{"id":"17ab0fbd-fc0f-46cb-b684-d30df0926741","directory":"easy-flight-simulator","title":"Easy Flight Simulator","compatibility":99,"releases":[{"id":"010031F015C98000","region":null}]},{"id":"17aff7ee-10b5-4e81-8a54-e628ed3958ed","directory":"aca-neogeo-samurai-shodown-iv","title":"ACA NEOGEO SAMURAI SHODOWN IV","compatibility":4,"releases":[{"id":"010047F001DBC000","region":null}]},{"id":"17b38226-e8fa-43a3-802b-1d19e5f86326","directory":"grid-autosport","title":"GRID Autosport","compatibility":3,"releases":[{"id":"0100DC800A602000","region":null}]},{"id":"17bee7e0-49ee-46dd-94c4-9988f7897c5e","directory":"vivid-knight","title":"Vivid Knight","compatibility":99,"releases":[{"id":"01006EB01626E000","region":null}]},{"id":"17cc208c-8c74-416e-be13-3875e8766090","directory":"thunder-paw","title":"Thunder Paw","compatibility":99,"releases":[{"id":"01009AF0110E4000","region":null}]},{"id":"17d380ec-eb24-4d1c-8aef-5983eb138e55","directory":"bad-dream-fever","title":"Bad Dream: Fever","compatibility":99,"releases":[{"id":"0100B3B00D81C000","region":null}]},{"id":"17de4c6a-4884-44cf-b456-349c1df0e23d","directory":"felix-the-reaper","title":"Felix The Reaper","compatibility":99,"releases":[{"id":"010003B00D3A2000","region":null}]},{"id":"17f3b080-0403-47a2-95e6-44a532952277","directory":"the-inner-world-the-last-wind-monk","title":"The Inner World - The Last Wind Monk","compatibility":0,"releases":[{"id":"0100A9D00B31A000","region":null}]},{"id":"1804bdec-c829-4336-a582-146c05d9efe7","directory":"crossroad-crash","title":"Crossroad crash","compatibility":99,"releases":[{"id":"0100CFA015CBC000","region":null}]},{"id":"181d9641-085c-479a-887a-39ebcd26e09e","directory":"laser-kitty-pow-pow","title":"Laser Kitty Pow Pow","compatibility":99,"releases":[{"id":"0100A0800E974000","region":null}]},{"id":"18237aa5-915e-4a83-adf0-0be56cd3e10d","directory":"pecaminosa-a-pixel-noir-game","title":"Pecaminosa - a pixel noir game","compatibility":99,"releases":[{"id":"0100876014188000","region":null}]},{"id":"18283db7-ca9d-498c-809f-a5198b90eb91","directory":"in-other-waters","title":"In Other Waters","compatibility":99,"releases":[{"id":"0100B6E01056E000","region":null}]},{"id":"182a8a40-7764-4682-aec7-4c98be81d189","directory":"gemstone-keeper","title":"Gemstone Keeper","compatibility":99,"releases":[{"id":"01000D600EFC4000","region":null}]},{"id":"1833a30b-cb91-4a3c-a578-8a29590c412f","directory":"angry-golf","title":"Angry Golf","compatibility":99,"releases":[{"id":"01008B50144EC000","region":null}]},{"id":"184584f7-21cc-4e3c-ba65-3575bf9bb8e6","directory":"puzzle-plowing-a-field","title":"Puzzle Plowing A Field","compatibility":99,"releases":[{"id":"010057F013764000","region":null}]},{"id":"1858901c-251d-43f5-b485-4f5369a83c0c","directory":"kauils-treasure","title":"KAUIL’S TREASURE","compatibility":99,"releases":[{"id":"010028F013358000","region":null}]},{"id":"1858c78a-53e0-4529-a67d-5b58fc405bd8","directory":"the-unicorn-princess","title":"The Unicorn Princess","compatibility":1,"releases":[{"id":"010064E00ECBC000","region":null}]},{"id":"185c04c6-322f-4c3c-be93-abf1741bff8c","directory":"demolish-and-build-2018","title":"Demolish & Build 2018","compatibility":0,"releases":[{"id":"010099D00D1A4000","region":null}]},{"id":"18698ad2-5625-48b9-944d-8a44f08b8c4c","directory":"bad-north","title":"Bad North","compatibility":3,"releases":[{"id":"0100E98006F22000","region":null}]},{"id":"186b350d-3103-4c32-b576-e12bc976f4a7","directory":"sayonara-wild-hearts","title":"Sayonara Wild Hearts","compatibility":0,"releases":[{"id":"010010A00A95E000","region":null}]},{"id":"1874e3e7-40c2-4216-8036-7777016facca","directory":"cosmic-defenders","title":"Cosmic Defenders","compatibility":99,"releases":[{"id":"01000AB00E73A000","region":null}]},{"id":"187defd4-ffb9-44e0-8604-a199f451ce34","directory":"crowdy-farm-puzzle","title":"Crowdy Farm Puzzle","compatibility":99,"releases":[{"id":"0100E21012232000","region":null}]},{"id":"187f93ab-df3a-410c-8521-e2428591e719","directory":"arcade-archives-koutetsu-yousai-strahl","title":"Arcade Archives KOUTETSU YOUSAI STRAHL","compatibility":99,"releases":[{"id":"01005370123D0000","region":null}]},{"id":"188e17a9-49a5-4f1a-85d4-eb966d1d258c","directory":"projection-first-light","title":"Projection: First Light","compatibility":1,"releases":[{"id":"010063901024A000","region":null}]},{"id":"189627ea-6822-47c0-9a13-061ae4f15d22","directory":"space-cows","title":"Space Cows","compatibility":99,"releases":[{"id":"010005500E81E000","region":null}]},{"id":"18a4eaf5-c3f9-4466-93bf-4955e040adf8","directory":"mecho-wars-desert-ashes","title":"Mecho Wars: Desert Ashes","compatibility":99,"releases":[{"id":"01006D500B0C8000","region":null}]},{"id":"18ae9873-ce8e-4a75-8c6c-2e92f884e81d","directory":"christmas-tina","title":"Christmas Tina","compatibility":99,"releases":[{"id":"010003001536E000","region":null}]},{"id":"18be2db5-fa81-4e88-9e57-bf012949f58c","directory":"flip-wars","title":"Flip Wars","compatibility":4,"releases":[{"id":"010095A004040000","region":null}]},{"id":"18d20635-7781-48b6-9741-38b6c8337da0","directory":"distraint-deluxe-edition","title":"DISTRAINT: Deluxe Edition","compatibility":99,"releases":[{"id":"010075B004DD2000","region":null}]},{"id":"18e96304-628f-4946-b1b9-62cbee40969e","directory":"pro-flight-simulator","title":"Pro Flight Simulator","compatibility":99,"releases":[{"id":"0100B11016870000","region":null}]},{"id":"18efd594-0681-4033-8e40-c64fbba44163","directory":"little-busters-converted-edition","title":"Little Busters! Converted Edition","compatibility":5,"releases":[{"id":"0100943010310000","region":null}]},{"id":"18f50822-daa5-4c20-a609-fed8ebe9ab93","directory":"pachi-pachi-on-a-roll","title":"Pachi Pachi On A Roll","compatibility":99,"releases":[{"id":"0100F2B012658000","region":null}]},{"id":"18fa17af-8ecb-4e81-85c4-ff2372952e9c","directory":"renegade","title":"Renegade","compatibility":99,"releases":[{"id":"010047A00E486000","region":null}]},{"id":"18fa84a5-48b3-4b9b-96d0-5eed622208a3","directory":"rocket-fist","title":"Rocket Fist","compatibility":99,"releases":[{"id":"0100D800040AC000","region":null}]},{"id":"1909498e-1644-458c-8ee0-830b40f03048","directory":"instant-chef-party","title":"INSTANT Chef Party","compatibility":99,"releases":[{"id":"01002500129F4000","region":null}]},{"id":"19150f00-5406-4937-9b64-a3ecf10646eb","directory":"tiny-derby","title":"Tiny Derby","compatibility":0,"releases":[{"id":"01009E100D660000","region":null}]},{"id":"1917899d-5b62-43ba-807a-58cfb0813b4a","directory":"polyroll","title":"Polyroll","compatibility":3,"releases":[{"id":"010074B00ED32000","region":null}]},{"id":"1919172d-52ef-4720-ac77-15926b186478","directory":"piczle-lines-dx","title":"Piczle Lines DX","compatibility":99,"releases":[{"id":"0100D06003056000","region":null}]},{"id":"19285ae9-6af4-47ec-a6ef-5f70ac25aa5c","directory":"super-mega-baseball-2-ultimate-edition","title":"Super Mega Baseball 2: Ultimate Edition","compatibility":99,"releases":[{"id":"0100120004644000","region":null}]},{"id":"19343141-bbce-4cea-9ee7-bf34742d1556","directory":"tales-from-the-dragon-mountain-2-the-lair","title":"Tales from the Dragon Mountain 2: The Lair","compatibility":99,"releases":[{"id":"01002F5012864000","region":null}]},{"id":"19723410-b1c7-4a87-84aa-4270bc1b3a39","directory":"hexagravity","title":"HexaGravity","compatibility":0,"releases":[{"id":"01007AC00E012000","region":null}]},{"id":"1986c51c-2bda-4e0c-a64b-864db3effb78","directory":"hidden-folks","title":"Hidden Folks","compatibility":0,"releases":[{"id":"01003BB00B08E000","region":null}]},{"id":"199226dc-75cc-4281-9ece-7121c8c8b54b","directory":"invisible-fist","title":"Invisible Fist","compatibility":99,"releases":[{"id":"0100C5B00FADE000","region":null}]},{"id":"199ade7e-5be4-4abd-b358-65593d343e39","directory":"wild-adventure-pinball","title":"Wild & Adventure Pinball","compatibility":99,"releases":[{"id":"010092C016564000","region":null}]},{"id":"19b058d8-d974-47bf-a68a-34896186902d","directory":"rebel-cops","title":"Rebel Cops","compatibility":99,"releases":[{"id":"0100D9B00E22C000","region":null}]},{"id":"19bec2a9-c533-4f75-833b-082b2c7c911d","directory":"unlock-the-king-3","title":"Unlock The King 3","compatibility":99,"releases":[{"id":"0100E5501206E000","region":null}]},{"id":"19c57777-390a-455a-bfa3-e5b8d313b907","directory":"stump","title":"STUMP","compatibility":99,"releases":[{"id":"010000300B4EE000","region":null}]},{"id":"19caa1f6-1773-48dd-b88f-2583e27a06ff","directory":"jigsaw-fun-wonderful-nature","title":"Jigsaw Fun: Wonderful Nature","compatibility":99,"releases":[{"id":"0100751015DC2000","region":null}]},{"id":"19cbd956-f04b-453e-bcd7-6315b509cdca","directory":"saviors-of-sapphire-wings-stranger-of-sword-city-revisited","title":"Saviors of Sapphire Wings / Stranger of Sword City Revisited","compatibility":99,"releases":[{"id":"0100AA00128BA000","region":null}]},{"id":"19cc0748-0636-41d6-821d-9a33fb39805a","directory":"windstorm-start-of-a-great-friendship","title":"Windstorm: Start of a Great Friendship","compatibility":2,"releases":[{"id":"01005A100B314000","region":null}]},{"id":"19e4c776-b83c-4736-9677-e7b5203fd442","directory":"60-parsecs","title":"60 Parsecs!","compatibility":99,"releases":[{"id":"010010100FF14000","region":null}]},{"id":"19ea85d6-b3cc-4c4b-839f-af98c918b062","directory":"food-truck-tycoon-asian-cuisine","title":"Food Truck Tycoon - Asian Cuisine","compatibility":1,"releases":[{"id":"0100AC3011C4C000","region":null}]},{"id":"19f2114c-0b30-4d13-8f8c-a39b57c320f1","directory":"idoldays","title":"IdolDays","compatibility":99,"releases":[{"id":"01002EC014BCA000","region":null}]},{"id":"19f7c2e8-32c0-47be-8210-54ffa0f819aa","directory":"police-stories","title":"Police Stories","compatibility":5,"releases":[{"id":"0100E5000DDD2000","region":null}]},{"id":"19fc75f8-f7cf-4b24-8700-74e1a78aabdb","directory":"aca-neogeo-the-king-of-fighters-2000","title":"ACA NEOGEO THE KING OF FIGHTERS 2000","compatibility":4,"releases":[{"id":"0100B97002B44000","region":null}]},{"id":"1a0c2073-858d-4b4c-85be-b0043e7017c5","directory":"troll-and-i","title":"Troll and I","compatibility":2,"releases":[{"id":"0100F78002040000","region":null}]},{"id":"1a0c6cbb-f3a8-4f2a-abb8-041b97bb4f3f","directory":"hatsune-miku-logic-paint-s","title":"Hatsune Miku Logic Paint S","compatibility":1,"releases":[{"id":"0100B4101459A000","region":null}]},{"id":"1a165aca-27f9-4167-908c-067f3187ea92","directory":"shadows-of-kurgansk","title":"Shadows of Kurgansk","compatibility":99,"releases":[{"id":"01004D90159B0000","region":null}]},{"id":"1a16dbf6-ddb9-48c2-9b0f-0ea1b532b099","directory":"arcade-archives-donkey-kong-jr","title":"Arcade Archives DONKEY KONG JR.","compatibility":1,"releases":[{"id":"0100DDC00C7A6000","region":null}]},{"id":"1a194a0f-1708-4997-a851-0dfbed372820","directory":"flood-of-light","title":"Flood of Light","compatibility":2,"releases":[{"id":"0100D1700ACFC000","region":null}]},{"id":"1a19c72b-9b7f-4285-b917-4549467d73d9","directory":"comic-coloring-book","title":"Comic Coloring Book","compatibility":99,"releases":[{"id":"0100EE40138C2000","region":null}]},{"id":"1a1a63ee-31e9-4966-bb1c-658b51da23d4","directory":"star-ghost-demo","title":"Star Ghost Demo","compatibility":99,"releases":[{"id":"01005AE00A528000","region":null}]},{"id":"1a342092-06c1-4018-bebf-44897bd0ef95","directory":"fell-seal-arbiters-mark","title":"Fell Seal: Arbiter's Mark","compatibility":99,"releases":[{"id":"0100A0C00D846000","region":null}]},{"id":"1a4c57d1-61d4-4e01-956a-aa4fd892b1db","directory":"gravity-duck","title":"Gravity Duck","compatibility":99,"releases":[{"id":"0100E4A00EEF6000","region":null}]},{"id":"1a6a9d71-7363-45c1-a1b4-35cf4f845c43","directory":"aery-little-bird-adventure","title":"Aery - Little Bird Adventure","compatibility":99,"releases":[{"id":"0100875011D0C000","region":null}]},{"id":"1a6c08c6-9d9e-41d5-a55a-99f4aefbaaff","directory":"the-jackbox-party-pack-8","title":"The Jackbox Party Pack 8","compatibility":4,"releases":[{"id":"010050F015280000","region":null}]},{"id":"1a6f60bf-5423-4163-936b-68b3a1d92271","directory":"willy-morgan-and-the-curse-of-bone-town","title":"Willy Morgan and the Curse of Bone Town","compatibility":99,"releases":[{"id":"010035C013B50000","region":null}]},{"id":"1a804d51-8970-496b-b188-4a04043a5d77","directory":"book-of-demons","title":"Book of Demons","compatibility":5,"releases":[{"id":"01007A200F452000","region":null}]},{"id":"1a823130-53a6-4088-9c19-d408c1211eb5","directory":"beastie-bay-dx","title":"Beastie Bay DX","compatibility":99,"releases":[{"id":"01004EF012D9A000","region":null}]},{"id":"1a83b518-a354-456f-8bf9-93926f015525","directory":"terra-lander-ii-rockslide-rescue","title":"Terra Lander II - Rockslide Rescue","compatibility":99,"releases":[{"id":"0100E360145EC000","region":null}]},{"id":"1a84186c-06a9-49f4-a304-96f5ff33fb9b","directory":"c14-dating","title":"C14 Dating","compatibility":0,"releases":[{"id":"0100CAA0132D2000","region":null}]},{"id":"1a8bf253-a9fa-48aa-ae59-892de9220f4f","directory":"waifu-discovered-2-medieval-fantasy","title":"Waifu Discovered 2: Medieval Fantasy","compatibility":4,"releases":[{"id":"01006420153D4000","region":null}]},{"id":"1a8ee269-4e7b-412c-b509-31f71bba300d","directory":"war-theatre","title":"War Theatre","compatibility":99,"releases":[{"id":"010084D00A134000","region":null}]},{"id":"1a9810ba-13df-46be-8ca0-4874fb2d07df","directory":"nuclear-throne","title":"Nuclear Throne","compatibility":5,"releases":[{"id":"0100CFE00CE6E000","region":null}]},{"id":"1aa31ff3-5f01-4a74-a3d7-9d9bc9b7a8c4","directory":"devil-may-cry-3-special-edition","title":"Devil May Cry 3 Special Edition","compatibility":2,"releases":[{"id":"01007B600D5BC000","region":null}]},{"id":"1aa82e9d-ae1b-4bfd-b1f4-ccc1651dad4e","directory":"timelie","title":"Timelie","compatibility":99,"releases":[{"id":"01005D6014BE8000","region":null}]},{"id":"1abd10bc-f200-46bf-8db4-7c23d1f24cb5","directory":"marenian-tavern-story-patty-and-the-hungry-god","title":"Marenian Tavern Story: Patty and the Hungry God","compatibility":99,"releases":[{"id":"010040E00C2D2000","region":null}]},{"id":"1ac260e3-9376-43d6-9b85-71280c9b7cfa","directory":"dawn-of-the-breakers","title":"Dawn of the Breakers","compatibility":4,"releases":[{"id":"0100F0B0081DA000","region":null}]},{"id":"1acc36ff-e353-4630-9c7c-8db303c06ce0","directory":"binaries","title":"Binaries","compatibility":2,"releases":[{"id":"01002A1004C48000","region":null}]},{"id":"1ade5687-15a8-419f-9745-fb90f773d194","directory":"johnny-turbos-arcade-sly-spy","title":"Johnny Turbo's Arcade: Sly Spy","compatibility":99,"releases":[{"id":"0100B70003836000","region":null}]},{"id":"1ae0c056-7081-458f-abdb-5696900020cd","directory":"neurodeck","title":"Neurodeck","compatibility":99,"releases":[{"id":"0100B38013F66000","region":null}]},{"id":"1ae1283a-8692-4e87-a14d-1bab43ef7504","directory":"arcade-archives-pettan-pyuu","title":"Arcade Archives Pettan Pyuu","compatibility":99,"releases":[{"id":"01007FC011CF0000","region":null}]},{"id":"1af59a1c-c356-4641-9574-3ce9332a5cc9","directory":"smashy-road-wanted-2","title":"Smashy Road: Wanted 2","compatibility":99,"releases":[{"id":"010012D016176000","region":null}]},{"id":"1af82d4f-12b6-490c-b66d-e292d60d9caa","directory":"arcade-archives-exerion","title":"Arcade Archives EXERION","compatibility":99,"releases":[{"id":"010055B009820000","region":null}]},{"id":"1b0c76bd-c0ea-4ba2-bc09-f86147224075","directory":"aca-neogeo-world-heroes-2-jet","title":"ACA NEOGEO WORLD HEROES 2 JET","compatibility":2,"releases":[{"id":"01006C3004FAE000","region":null}]},{"id":"1b0d0835-d0d6-480d-b528-3d53254dac97","directory":"spoiler-alert","title":"Spoiler Alert","compatibility":99,"releases":[{"id":"0100F9D00C598000","region":null}]},{"id":"1b1c2af9-c084-4cf1-927f-79ab944dec2f","directory":"megaquarium","title":"Megaquarium","compatibility":99,"releases":[{"id":"010082B00E8B8000","region":null}]},{"id":"1b1cf6e2-2a7a-4581-80ea-4fe4d4cba01d","directory":"arcade-archives-ice-climber","title":"Arcade Archives ICE CLIMBER","compatibility":4,"releases":[{"id":"01007D200D3FC000","region":null}]},{"id":"1b2d6e6a-8aaa-4354-a7c9-e7920a6f77c3","directory":"photon-cube","title":"Photon Cube","compatibility":99,"releases":[{"id":"010024D0032F2000","region":null}]},{"id":"1b2dc0bf-ac84-4b07-a7ed-8d7b830a6251","directory":"junior-league-sports","title":"Junior League Sports","compatibility":99,"releases":[{"id":"01008B1008466000","region":null}]},{"id":"1b39e247-b8dc-405b-bf1a-c5f192b1d863","directory":"effie","title":"Effie","compatibility":99,"releases":[{"id":"01002550129F0000","region":null}]},{"id":"1b3f40fa-8447-40d9-a857-0ba5ff0af098","directory":"speed-truck-racing","title":"Speed Truck Racing","compatibility":0,"releases":[{"id":"010061F013A0E000","region":null}]},{"id":"1b47054e-38b2-41a8-82e7-dbd7d387f714","directory":"season-match","title":"Season Match","compatibility":99,"releases":[{"id":"010001900BDCA000","region":null}]},{"id":"1b627bf1-61ed-43e8-8ff0-dd8e740696f8","directory":"angry-video-game-nerd-1-2-deluxe","title":"Angry Video Game Nerd 1 & 2 Deluxe","compatibility":0,"releases":[{"id":"010084500C7DC000","region":null}]},{"id":"1b7422f9-ac6a-4619-85d7-94b08a700f36","directory":"warplanes-ww2-dogfight","title":"Warplanes: WW2 Dogfight","compatibility":99,"releases":[{"id":"010068E00D346000","region":null}]},{"id":"1b767711-b29a-42d3-99e5-c3401f82f3cf","directory":"lovekami-healing-harem","title":"Lovekami -Healing Harem-","compatibility":99,"releases":[{"id":"01002DF01599E000","region":null}]},{"id":"1b7b1e72-3d55-48c7-8ba6-1a4ac75e4337","directory":"grab-the-bottle","title":"Grab the Bottle","compatibility":99,"releases":[{"id":"01003FF009E60000","region":null}]},{"id":"1b7d41b7-f6ea-4d84-a432-581daa61142f","directory":"drowning-cross","title":"Drowning Cross","compatibility":99,"releases":[{"id":"0100B5F017376000","region":null}]},{"id":"1b7f5e3e-9b32-4e95-bc4b-15861f3b138f","directory":"street-racer-underground","title":"Street Racer Underground","compatibility":99,"releases":[{"id":"0100EEE0129F2000","region":null}]},{"id":"1b90423b-68dd-4fab-8d28-575edd8968c3","directory":"pure-pool","title":"Pure Pool","compatibility":99,"releases":[{"id":"0100AEC012DEE000","region":null}]},{"id":"1b932e67-52eb-431e-9c98-c6c3b16bc000","directory":"golf-royale","title":"Golf Royale","compatibility":0,"releases":[{"id":"01004B10149F8000","region":null}]},{"id":"1ba1b3c3-ab5c-4a0f-a73d-643a544be78c","directory":"sparkle-zero","title":"Sparkle ZERO","compatibility":99,"releases":[{"id":"0100E4F00AE14000","region":null}]},{"id":"1baca302-5c37-433e-a9c3-90412d7c404b","directory":"clock-simulator","title":"Clock Simulator","compatibility":99,"releases":[{"id":"010002A00CC42000","region":null}]},{"id":"1baf9bb5-994e-493d-874f-1f69cdf6d7c9","directory":"lumione","title":"Lumione","compatibility":99,"releases":[{"id":"01001E80154B8000","region":null}]},{"id":"1bb464c3-5501-469d-8667-77e4783cf64d","directory":"cooking-tycoons-2-3-in-1-bundle","title":"Cooking Tycoons 2 - 3 in 1 Bundle","compatibility":1,"releases":[{"id":"01005350126E0000","region":null}]},{"id":"1bb74c4d-3b9e-4cf2-8236-4ae5497f73b3","directory":"curious-cases","title":"Curious Cases","compatibility":0,"releases":[{"id":"010054501075C000","region":null}]},{"id":"1bbe5841-76ad-4640-a91c-90b884ce0d65","directory":"overcooked-all-you-can-eat","title":"Overcooked! All You Can Eat","compatibility":1,"releases":[{"id":"0100F28011892000","region":null}]},{"id":"1bc61f4f-9170-4e83-b061-6e24d88d373a","directory":"say-no-more","title":"Say No! More","compatibility":99,"releases":[{"id":"01001C3012912000","region":null}]},{"id":"1bd2a89e-d085-49df-89b5-8b3d60cf92fe","directory":"super-cane-magic-zero","title":"Super Cane Magic ZERO","compatibility":99,"releases":[{"id":"0100D9B00DB5E000","region":null}]},{"id":"1bd45288-a764-4507-bcf2-566277700657","directory":"tohu","title":"TOHU","compatibility":99,"releases":[{"id":"0100B5E011920000","region":null}]},{"id":"1bd5678d-7c07-4023-a2f3-c08104098cf9","directory":"baobabs-mausoleum-ep1-ovnifagos-dont-eat-flamingos","title":"Baobabs Mausoleum Ep.1: Ovnifagos Don't Eat Flamingos","compatibility":99,"releases":[{"id":"0100425009FB2000","region":null}]},{"id":"1be4c250-c870-4e08-8cb0-6d8df536af9b","directory":"qbik","title":"Qbik","compatibility":99,"releases":[{"id":"0100465009020000","region":null}]},{"id":"1befaa75-8022-4843-b8fe-d97430cbb55a","directory":"bake-n-switch","title":"Bake ‘n Switch","compatibility":99,"releases":[{"id":"01003E2010282000","region":null}]},{"id":"1bf296dc-df30-4736-841c-9951d7d88f51","directory":"99moves","title":"99Moves","compatibility":99,"releases":[{"id":"0100DE900CB84000","region":null}]},{"id":"1bfd3d43-7f28-440a-b7e8-5aa0c41c168a","directory":"hotel-dracula","title":"Hotel Dracula","compatibility":99,"releases":[{"id":"01008D000D980000","region":null}]},{"id":"1c0b7af9-937a-4410-8737-3a5631cab603","directory":"subaracity","title":"SubaraCity","compatibility":99,"releases":[{"id":"0100CD6004130000","region":null}]},{"id":"1c0c2b3d-cf3b-4066-bf66-e76c49b548dd","directory":"twist-switch-bundle","title":"Twist & Switch Bundle","compatibility":99,"releases":[{"id":"0100448014568000","region":null}]},{"id":"1c0e9ef3-8ec8-44c9-8f58-622555bcb0c8","directory":"sky-racket","title":"Sky Racket","compatibility":2,"releases":[{"id":"01004F0010A02000","region":null}]},{"id":"1c1002c8-2e8b-46f3-9256-102f8fe250c7","directory":"cloudpunk","title":"Cloudpunk","compatibility":0,"releases":[{"id":"0100916011210000","region":null}]},{"id":"1c18979f-1b35-4b30-bfc1-293981de97f2","directory":"crazy-zen-codeword","title":"Crazy Zen Codeword","compatibility":99,"releases":[{"id":"01001A2016CFE000","region":null}]},{"id":"1c2bc530-0ee8-4c4a-934a-929f918ae90b","directory":"de-blob","title":"de Blob","compatibility":1,"releases":[{"id":"0100D0A009310000","region":null}]},{"id":"1c2c2c9a-d540-4fa1-88b1-000ab47d82f0","directory":"gerritory","title":"Gerritory","compatibility":99,"releases":[{"id":"0100F1E011982000","region":null}]},{"id":"1c2ca6ef-b015-4bc8-8e70-069572fbec8f","directory":"reactorx","title":"ReactorX","compatibility":99,"releases":[{"id":"01003BF014B18000","region":null}]},{"id":"1c389996-39fa-4122-9db8-970bc4bbc580","directory":"spider-solitaire-f","title":"Spider Solitaire F","compatibility":99,"releases":[{"id":"01001BF00B54E000","region":null}]},{"id":"1c3d7ae8-229d-4926-ba19-b2c28249a414","directory":"2urvive","title":"2URVIVE","compatibility":99,"releases":[{"id":"01007550131EE000","region":null}]},{"id":"1c491c16-1514-41ff-b0f4-9aa9c8dc9cf9","directory":"micetopia","title":"Micetopia","compatibility":0,"releases":[{"id":"0100B8701266A000","region":null}]},{"id":"1c52c4a6-19d5-420d-93b5-dd5c564f1b3b","directory":"desktop-table-tennis","title":"Desktop Table Tennis","compatibility":99,"releases":[{"id":"01001C800DBC0000","region":null}]},{"id":"1c584b0b-31e1-4a7e-acac-ea73959c4651","directory":"torchlight-ii","title":"Torchlight II","compatibility":1,"releases":[{"id":"010090400D366000","region":null}]},{"id":"1c5a9026-ae97-47ba-bfc7-c8839ba50d0a","directory":"spaceland","title":"Spaceland","compatibility":0,"releases":[{"id":"010034800FB60000","region":null}]},{"id":"1c5b0e37-a177-4668-acd3-c5b7b34e146c","directory":"sky-gamblers-storm-raiders-2","title":"Sky Gamblers: Storm Raiders 2","compatibility":5,"releases":[{"id":"010068200E96E000","region":null}]},{"id":"1c61dc9f-d777-4a32-a5fc-2a30cb004ee6","directory":"push-the-crate-2","title":"Push the Crate 2","compatibility":99,"releases":[{"id":"0100B60010432000","region":null}]},{"id":"1c642de0-ac45-400c-87a2-ccd5781b54f0","directory":"esports-life-tycoon","title":"Esports Life Tycoon","compatibility":2,"releases":[{"id":"01001AA00BADC000","region":null}]},{"id":"1c74c506-dbaf-462c-a1f5-0a93ee497a4d","directory":"ascendant-hearts","title":"Ascendant Hearts","compatibility":0,"releases":[{"id":"01009C200F45A000","region":null}]},{"id":"1c754a18-98cc-44eb-a8c0-da2504e24db6","directory":"stonefly","title":"Stonefly","compatibility":99,"releases":[{"id":"010000E0145BA000","region":null}]},{"id":"1c791f8a-d542-4f12-b313-ea59266ed746","directory":"our-world-is-ended","title":"Our World Is Ended.","compatibility":3,"releases":[{"id":"0100D5D00C6BE000","region":null}]},{"id":"1c89d9bd-14e9-4424-8a6e-d65a64bf07f1","directory":"island-saver","title":"Island Saver","compatibility":99,"releases":[{"id":"0100A2600FCA0000","region":null}]},{"id":"1c96c67d-4cc1-4491-bb20-36886b2918e3","directory":"robot-car-war-transform-battle-machines","title":"Robot Car War: Transform Battle Machines","compatibility":99,"releases":[{"id":"010010001636E000","region":null}]},{"id":"1c98fb1a-4205-45d5-b5de-a9b61e6af6a8","directory":"everhood","title":"Everhood","compatibility":0,"releases":[{"id":"0100E20014028000","region":null}]},{"id":"1c9e6738-ba70-4069-aaf7-a5e647bec1d6","directory":"the-sundew","title":"The Sundew","compatibility":99,"releases":[{"id":"0100E1E01523A000","region":null}]},{"id":"1ca3e61c-6ba6-4395-a7b7-5c6768f7e591","directory":"castle-kong","title":"Castle Kong","compatibility":99,"releases":[{"id":"010042201353E000","region":null}]},{"id":"1cb4163c-6928-44fc-8fc8-56d6924240b5","directory":"aqua-tv","title":"Aqua TV","compatibility":99,"releases":[{"id":"01008ED00B916000","region":null}]},{"id":"1cb49f8f-e562-4b90-9590-bd4c68d00503","directory":"twitch","title":"Twitch","compatibility":99,"releases":[{"id":"01008D101524E000","region":null}]},{"id":"1cbd4e14-607c-40ee-ac93-d148e36e359a","directory":"nascar-heat-ultimate-edition","title":"NASCAR Heat Ultimate Edition+","compatibility":0,"releases":[{"id":"0100DC7013938000","region":null}]},{"id":"1cc3e48c-8d3b-44c1-9d13-70866f0abccf","directory":"digerati-indie-bundle-ink-and-hackyzack","title":"Digerati Indie Bundle: INK & HackyZack","compatibility":99,"releases":[{"id":"01003D800BE5C000","region":null}]},{"id":"1cd37a9e-cce2-47c1-9369-11d1bd73a37c","directory":"luigis-mansion-3","title":"Luigi's Mansion 3","compatibility":3,"releases":[{"id":"0100DCA0064A6000","region":null}]},{"id":"1cd90b58-81d2-4350-a2bc-164a47727d51","directory":"void-source","title":"Void Source","compatibility":99,"releases":[{"id":"010099E013430000","region":null}]},{"id":"1cda8699-af49-43fb-be4a-9c416a7e00c1","directory":"cast-of-the-seven-godsends","title":"Cast of the Seven Godsends","compatibility":99,"releases":[{"id":"0100AEF00A270000","region":null}]},{"id":"1ce96f5d-524c-4f95-8784-412fb7c5c65f","directory":"forklift-the-simulation","title":"Forklift - The Simulation","compatibility":99,"releases":[{"id":"01006A900EB1A000","region":null}]},{"id":"1cec6689-db5f-4f7d-9083-3f0464c77364","directory":"johnny-rocket","title":"Johnny Rocket","compatibility":99,"releases":[{"id":"0100C030124E8000","region":null}]},{"id":"1cfc3c63-334c-4efa-b28b-cbdfc1adcf1b","directory":"drawngeon-dungeons-of-ink-and-paper","title":"Drawngeon: Dungeons of Ink and Paper","compatibility":99,"releases":[{"id":"0100B7E0102E4000","region":null}]},{"id":"1d004410-8b5c-4a54-8f32-0a929d412c36","directory":"code-realize-wintertide-miracles","title":"Code: Realize ~Wintertide Miracles~","compatibility":0,"releases":[{"id":"0100A27013626000","region":null}]},{"id":"1d0954b8-a9f9-4f67-b747-e926c7089813","directory":"debris-infinity","title":"Debris Infinity","compatibility":1,"releases":[{"id":"010034F00BFC8000","region":null}]},{"id":"1d2d4e81-8a45-415d-8be7-0f193ef17473","directory":"pirate-pop-plus","title":"Pirate Pop Plus","compatibility":99,"releases":[{"id":"010025E0092B6000","region":null}]},{"id":"1d3d08b1-ef84-4a26-9d21-7bbec898d2ae","directory":"survival-z","title":"Survival Z","compatibility":99,"releases":[{"id":"01008950156C4000","region":null}]},{"id":"1d4072d7-074e-47a8-a0b2-af9c0361cba3","directory":"fuzzball","title":"FuzzBall","compatibility":99,"releases":[{"id":"010067600F1A0000","region":null}]},{"id":"1d611969-6159-4cf2-9317-9805d4fd8f1a","directory":"rally-rock-n-racing","title":"Rally Rock 'N Racing","compatibility":99,"releases":[{"id":"0100F5700DE18000","region":null}]},{"id":"1d79b3a6-3cd6-4213-8388-22880d4632e4","directory":"shaq-fu-a-legend-reborn","title":"Shaq Fu: A Legend Reborn","compatibility":0,"releases":[{"id":"0100769004584000","region":null}]},{"id":"1d86e9c8-87b9-41ab-97a1-01569d1911fc","directory":"anodyne-2-return-to-dust","title":"Anodyne 2: Return to Dust","compatibility":99,"releases":[{"id":"01007BB012B0A000","region":null}]},{"id":"1d8c64a8-0a7a-4b1b-a7ee-9e8d51ba5c4d","directory":"tumblestone-demo","title":"Tumblestone Demo","compatibility":99,"releases":[{"id":"010023300B0F0000","region":null}]},{"id":"1d91644f-d24f-434f-91f9-20af67ed991c","directory":"road-3-pack","title":"Road 3 Pack","compatibility":99,"releases":[{"id":"01009070133D0000","region":null}]},{"id":"1db92208-2f1a-40ec-93eb-b814a01f339e","directory":"os-omega","title":"OS Omega","compatibility":99,"releases":[{"id":"01005A8015436000","region":null}]},{"id":"1dc32f05-35cf-4c73-979c-8194995df63f","directory":"ion-fury","title":"Ion Fury","compatibility":99,"releases":[{"id":"010041C00D086000","region":null}]},{"id":"1dc803c7-67f7-41e0-8a0d-b4742b48ad4e","directory":"cupcake-match","title":"Cupcake Match","compatibility":99,"releases":[{"id":"0100EB501414A000","region":null}]},{"id":"1dcd2616-0b5d-4988-8f21-3145ba3fea63","directory":"when-the-past-was-around","title":"When the Past was Around","compatibility":0,"releases":[{"id":"01008C9012F4A000","region":null}]},{"id":"1dce20cc-d6fc-41db-b765-f7c6c3628ea5","directory":"pressure-overdrive","title":"Pressure Overdrive","compatibility":2,"releases":[{"id":"01003F300C6BC000","region":null}]},{"id":"1dd07a31-daea-41f2-bcd5-f2dd1cea9074","directory":"nova-111","title":"Nova-111","compatibility":99,"releases":[{"id":"0100B2E0160E6000","region":null}]},{"id":"1dd0f0a1-4dae-4fc5-ada9-6cb560d37fda","directory":"draculas-legacy","title":"Dracula's Legacy","compatibility":5,"releases":[{"id":"01001B80099F6000","region":null}]},{"id":"1dd5f709-22c5-4ffc-91dd-3374546b325d","directory":"pang-adventures","title":"Pang Adventures","compatibility":1,"releases":[{"id":"010087300B730000","region":null}]},{"id":"1de0e68d-a41e-4018-9f2a-6cd392a94059","directory":"galaxy-of-pen-paper-1-edition","title":"Galaxy of Pen & Paper +1 Edition","compatibility":99,"releases":[{"id":"0100CFD00BF3E000","region":null}]},{"id":"1de42e24-74bd-4b74-886a-b9c1c99a1071","directory":"aca-neogeo-soccer-brawl","title":"ACA NEOGEO SOCCER BRAWL","compatibility":99,"releases":[{"id":"0100DBF004FAA000","region":null}]},{"id":"1df1008a-1587-4cde-84f2-98d549d290ae","directory":"the-missing-jj-macfield-and-the-island-of-memories","title":"The MISSING: J.J. Macfield and the Island of Memories","compatibility":2,"releases":[{"id":"0100F1B00B456000","region":null}]},{"id":"1e0044f2-509d-475e-afa9-39a1ee48bab0","directory":"mochi-mochi-boy","title":"Mochi Mochi Boy","compatibility":99,"releases":[{"id":"01008C500E7D8000","region":null}]},{"id":"1e0de444-f4b8-4b47-922d-9abaa3ec9d3e","directory":"sega-ages-phantasy-star","title":"SEGA AGES Phantasy Star","compatibility":1,"releases":[{"id":"01005A300C9F6000","region":null}]},{"id":"1e23ee88-3e8e-4453-9c31-030beecda57f","directory":"subsurface-circular","title":"Subsurface Circular","compatibility":1,"releases":[{"id":"01002C80086E6000","region":null}]},{"id":"1e2bfa2d-7b9f-448f-8f68-df8349628413","directory":"game-builder-garage","title":"Game Builder Garage™","compatibility":2,"releases":[{"id":"0100FA5010788000","region":null}]},{"id":"1e2d3cbf-6632-4f29-aad4-235164403551","directory":"zengeon","title":"Zengeon","compatibility":2,"releases":[{"id":"0100057011E50000","region":null}]},{"id":"1e30fecb-c229-48f9-a54b-23941db78f8d","directory":"arcade-archives-crazy-climber2","title":"Arcade Archives CRAZY CLIMBER2","compatibility":1,"releases":[{"id":"010055B009814000","region":null}]},{"id":"1e34cd6a-8ccf-4455-9fd8-a15ad59f2ac9","directory":"arcade-archives-psycho-soldier","title":"Arcade Archives PSYCHO SOLDIER","compatibility":4,"releases":[{"id":"01000D200C7A4000","region":null}]},{"id":"1e38c6d2-f5f3-4979-97de-fce614ec4a6c","directory":"chroma-quaternion","title":"Chroma Quaternion","compatibility":99,"releases":[{"id":"01003F0014F32000","region":null}]},{"id":"1e395234-65e0-485b-9d64-16132d22e9e2","directory":"river-city-girls","title":"River City Girls","compatibility":1,"releases":[{"id":"01004E700DFE6000","region":null}]},{"id":"1e3c2b9a-21d0-46c7-bebf-6502a745dd78","directory":"the-outer-worlds","title":"The Outer Worlds","compatibility":3,"releases":[{"id":"0100626011656000","region":null}]},{"id":"1e4caeb0-dde0-4004-be20-9df029febaa6","directory":"zombie-driver-immortal-edition","title":"Zombie Driver Immortal Edition","compatibility":0,"releases":[{"id":"01006CF00DA8C000","region":null}]},{"id":"1e550c82-f91b-4799-8a2f-98a3965c3765","directory":"paint","title":"Paint","compatibility":99,"releases":[{"id":"0100946012446000","region":null}]},{"id":"1e667873-9e4c-4c24-adba-c756f6c9038e","directory":"pretty-girls-mahjong-solitaire","title":"Pretty Girls Mahjong Solitaire","compatibility":99,"releases":[{"id":"01008B7013F7C000","region":null}]},{"id":"1e6a542a-5f6d-4c65-bbb4-d486ec971d89","directory":"i-dream-of-you-and-ice-cream","title":"I dream of you and ice cream","compatibility":99,"releases":[{"id":"010071D0121B0000","region":null}]},{"id":"1e70e208-ba60-4bdd-8aeb-b07985676282","directory":"nba-2k18","title":"NBA 2K18","compatibility":5,"releases":[{"id":"0100760002048000","region":null}]},{"id":"1e75bd94-930c-43b5-8c76-9c740f6e2bf4","directory":"revenant-dogma","title":"Revenant Dogma","compatibility":99,"releases":[{"id":"0100BE400BEC8000","region":null}]},{"id":"1e8e5bb5-f93e-432a-801a-63cce5703e88","directory":"city-pipes","title":"City Pipes","compatibility":99,"releases":[{"id":"0100DE80166F6000","region":null}]},{"id":"1e8f2bf1-619f-4b5e-a49f-2f8aa1828b74","directory":"lost-grimoires-3-the-forgotten-well","title":"Lost Grimoires 3: The Forgotten Well","compatibility":99,"releases":[{"id":"0100BBB015694000","region":null}]},{"id":"1e8fce03-2328-4b1c-8f32-c4365a7c364f","directory":"princess-maker-gogo-princess","title":"Princess Maker Go!Go! Princess","compatibility":99,"releases":[{"id":"010018100F688000","region":null}]},{"id":"1eb66164-f8f6-404c-9c23-8d3cc390ddfc","directory":"tangledeep","title":"Tangledeep","compatibility":1,"releases":[{"id":"010048F007ADE000","region":null}]},{"id":"1ec0a469-ed00-474a-941e-768a0cc2d46e","directory":"disney-magical-world-2-enchanted-edition","title":"Disney Magical World 2: Enchanted Edition","compatibility":99,"releases":[{"id":"010029E01403A000","region":null}]},{"id":"1ecb849e-bab0-4e69-82f7-5a4be0556b74","directory":"boyfriend-dungeon","title":"Boyfriend Dungeon","compatibility":2,"releases":[{"id":"0100D2200BC82000","region":null}]},{"id":"1ede7b32-8104-4ffa-92f4-8e8e2dcc3b5e","directory":"dragon-marked-for-death-frontline-fighters","title":"Dragon Marked for Death: Frontline Fighters","compatibility":0,"releases":[{"id":"010089700150E000","region":null}]},{"id":"1ee1894e-ee4d-4501-b860-b410516227d1","directory":"mega-man-x-legacy-collection-2","title":"Mega Man X Legacy Collection 2","compatibility":1,"releases":[{"id":"01005250086C4000","region":null}]},{"id":"1ee66f3e-ec97-4953-b255-4ba2ced87737","directory":"ghost-blade-hd","title":"Ghost Blade HD","compatibility":99,"releases":[{"id":"010063200C588000","region":null}]},{"id":"1ef95ee4-8e8f-442e-9e07-93bf33346716","directory":"groove-coaster-wai-wai-party","title":"GROOVE COASTER WAI WAI PARTY!!!!","compatibility":0,"releases":[{"id":"0100EB500D92E000","region":null}]},{"id":"1f07335a-fdce-454c-adc5-219a3f422233","directory":"battle-chef-brigade-deluxe","title":"Battle Chef Brigade Deluxe","compatibility":1,"releases":[{"id":"0100CC2001C6C000","region":null}]},{"id":"1f082208-397f-4d1e-ae5f-d0c73f38522c","directory":"zombie-army-trilogy","title":"Zombie Army Trilogy","compatibility":1,"releases":[{"id":"0100C7300EEE4000","region":null}]},{"id":"1f0e83f8-5cc2-4251-8a89-6e1c6db5718e","directory":"super-kirby-clash","title":"Super Kirby Clash","compatibility":1,"releases":[{"id":"01003FB00C5A8000","region":null}]},{"id":"1f115fb6-4066-4495-b764-31bc9b930378","directory":"portal-knights-demo","title":"Portal Knights Demo","compatibility":99,"releases":[{"id":"010086100AA54000","region":null}]},{"id":"1f11a10e-7f4e-45e8-94db-d439b951d912","directory":"junkyard-builder","title":"Junkyard Builder","compatibility":99,"releases":[{"id":"01006700152AE000","region":null}]},{"id":"1f2022e5-46be-4233-9116-55dfb2d608a2","directory":"epic-dumpster-bear-2-he-who-bears-wins","title":"Epic Dumpster Bear 2: He Who Bears Wins","compatibility":99,"releases":[{"id":"0100271014B26000","region":null}]},{"id":"1f27a8f6-94a2-4213-84cb-c00e97b24146","directory":"claybook","title":"Claybook","compatibility":5,"releases":[{"id":"010009300AA6C000","region":null}]},{"id":"1f2e6f86-ce0f-429d-8c16-4f8f59341de0","directory":"the-wild-at-heart","title":"The Wild at Heart","compatibility":99,"releases":[{"id":"0100129014FA8000","region":null}]},{"id":"1f35ae36-1882-43cd-ba02-d004926d310e","directory":"table-top-racing-world-tour-nitro-edition","title":"Table Top Racing: World Tour - Nitro Edition","compatibility":3,"releases":[{"id":"010015B00BB00000","region":null}]},{"id":"1f36cc18-c8d0-48b7-9b33-130282f47e3d","directory":"justice-chronicles","title":"Justice Chronicles","compatibility":99,"releases":[{"id":"01000F4015BF6000","region":null}]},{"id":"1f3e2fac-9f00-449c-8217-a1fd68089f1d","directory":"shiftlings-enhanced-edition","title":"Shiftlings - Enhanced Edition","compatibility":0,"releases":[{"id":"01000750084B2000","region":null}]},{"id":"1f3f1303-c384-4713-9745-66ec468448ad","directory":"atelier-shallie-alchemists-of-the-dusk-sea-dx","title":"Atelier Shallie: Alchemists of the Dusk Sea DX","compatibility":99,"releases":[{"id":"010005C00EE90000","region":null}]},{"id":"1f4093da-43eb-424f-ada1-d1afae710413","directory":"kero-blaster","title":"Kero Blaster","compatibility":4,"releases":[{"id":"0100DA200A09A000","region":null}]},{"id":"1f4722e8-012f-4f08-9245-7cb3841ea5db","directory":"animus-harbinger","title":"ANIMUS: Harbinger","compatibility":0,"releases":[{"id":"0100E5A00FD38000","region":null}]},{"id":"1f4d56a2-30cd-443f-aa84-b7fdede4ed67","directory":"motogp19","title":"MotoGP19","compatibility":3,"releases":[{"id":"01004B800D0E8000","region":null}]},{"id":"1f552c09-0d17-433a-9836-c95bfbf51f20","directory":"safari-pinball","title":"Safari Pinball","compatibility":99,"releases":[{"id":"01005DE00F3BC000","region":null}]},{"id":"1f578feb-cc6a-4dac-a3e8-f2472a2a5fc5","directory":"rocket-rabbit-coin-race","title":"Rocket Rabbit - Coin Race","compatibility":99,"releases":[{"id":"010031C0110F6000","region":null}]},{"id":"1f5ce262-7d4a-4c95-9bfc-12cc8ea9ace9","directory":"spelunker-party-demo-version","title":"Spelunker Party! DEMO VERSION","compatibility":99,"releases":[{"id":"01000D7005E28000","region":null}]},{"id":"1f6773ef-2866-46a8-9e14-253e30dd8a7d","directory":"arcade-archives-task-force-harrier","title":"Arcade Archives TASK FORCE HARRIER","compatibility":99,"releases":[{"id":"01007EB014716000","region":null}]},{"id":"1f684c48-f43a-4552-a9c5-f0b362392705","directory":"squareboy-vs-bullies-arena-edition","title":"Squareboy vs Bullies: Arena Edition","compatibility":99,"releases":[{"id":"0100DE40068CA000","region":null}]},{"id":"1f8cddc1-ec72-4a34-bf3f-a41f85bc5b95","directory":"casino-roulette-royal","title":"Casino Roulette Royal","compatibility":99,"releases":[{"id":"01002EE015ED4000","region":null}]},{"id":"1f903d0c-65f3-4b58-b581-0c53d1264385","directory":"lair-of-the-clockwork-god","title":"Lair of the Clockwork God","compatibility":99,"releases":[{"id":"01008280119B2000","region":null}]},{"id":"1f9a73e4-7108-413a-b19d-f31b594e64bb","directory":"pixel-game-maker-series-dragon-peak","title":"Pixel Game Maker Series DRAGON PEAK","compatibility":99,"releases":[{"id":"01004040145CA000","region":null}]},{"id":"1fb8c7c5-ceb0-4f51-a0af-3cbde335b08b","directory":"steampunk-tower-2","title":"Steampunk Tower 2","compatibility":99,"releases":[{"id":"0100AA8012EF2000","region":null}]},{"id":"1fc1c0c3-0d94-4261-888d-4f676a0e03e5","directory":"arcade-archives-vigilante","title":"Arcade Archives VIGILANTE","compatibility":99,"releases":[{"id":"0100EA300EFF0000","region":null}]},{"id":"1fce57d7-90f1-42f2-87eb-ad14f13194aa","directory":"aca-neogeo-super-sidekicks-2","title":"ACA NEOGEO SUPER SIDEKICKS 2","compatibility":4,"releases":[{"id":"010055A00A300000","region":null}]},{"id":"1fcf6234-3ac5-41b6-9b68-2fc9ad0034aa","directory":"planetarian","title":"planetarian","compatibility":2,"releases":[{"id":"0100BD100C752000","region":null}]},{"id":"1fd088d8-7bd7-4831-8289-97f7a2466072","directory":"rocketsrocketsrockets","title":"ROCKETSROCKETSROCKETS","compatibility":99,"releases":[{"id":"010053400BFA6000","region":null}]},{"id":"1fd485b9-215c-462f-bfcb-45cd5bec3a95","directory":"funbox-party","title":"FunBox Party","compatibility":1,"releases":[{"id":"0100A8F00B3D0000","region":null}]},{"id":"1fe0a9a0-ecbc-40b4-bf37-a197b40d058a","directory":"deep-ones-demo","title":"Deep Ones Demo","compatibility":99,"releases":[{"id":"010071000AAFC000","region":null}]},{"id":"1fe5f60f-db40-4154-b6c1-d25f3d81569b","directory":"ninja-gaiden-master-collection","title":"NINJA GAIDEN: Master Collection","compatibility":0,"releases":[{"id":"01002AF014F4C000","region":null}]},{"id":"1fe804e6-ca03-4d5a-9849-df3680574082","directory":"capes-escape-game","title":"Cape's escape game","compatibility":99,"releases":[{"id":"0100C73013506000","region":null}]},{"id":"1feecf39-7dcf-403d-b3a0-643feb5380ad","directory":"rock-n-racing-bundle-off-road-rally","title":"Rock 'N Racing Bundle Off Road & Rally","compatibility":99,"releases":[{"id":"0100FDE013DE4000","region":null}]},{"id":"20116a7e-0380-45c4-8160-f99465e9a2c4","directory":"sky-children-of-the-light","title":"Sky: Children of the Light","compatibility":5,"releases":[{"id":"0100C52011460000","region":null}]},{"id":"2016c53d-59fe-4d46-9391-57b6c95bd0cb","directory":"the-lego-movie-2-videogame","title":"The LEGO Movie 2 Videogame","compatibility":2,"releases":[{"id":"0100A4400BE74000","region":null}]},{"id":"201f3f51-d912-4091-a3d0-b3e58168cc44","directory":"solitaire-tripeaks-flowers","title":"Solitaire TriPeaks Flowers","compatibility":99,"releases":[{"id":"0100AD3012234000","region":null}]},{"id":"20258df2-9766-49c1-a430-a10912f37f3e","directory":"little-nightmares-complete-edition","title":"Little Nightmares Complete Edition","compatibility":3,"releases":[{"id":"01002FC00412C000","region":null}]},{"id":"20382fd5-e22d-4163-9bcb-88b088e40da3","directory":"rift-keeper","title":"Rift Keeper","compatibility":99,"releases":[{"id":"0100AC600D898000","region":null}]},{"id":"20427ac3-1424-45cb-9b38-524eb879d587","directory":"mr-shifty","title":"Mr. Shifty","compatibility":99,"releases":[{"id":"010031F002B66000","region":null}]},{"id":"205d95b3-aa7c-4bb0-8d39-cf4ae0f39539","directory":"car-trader","title":"Car Trader","compatibility":99,"releases":[{"id":"01006E200E322000","region":null}]},{"id":"206b8848-33ee-48a0-a109-4ca33ed1f71d","directory":"gemini-arms","title":"GEMINI ARMS","compatibility":3,"releases":[{"id":"01004BF01267E000","region":null}]},{"id":"207471ef-d9ff-48c4-a0d3-bb23953f665f","directory":"the-end-is-nigh","title":"The End Is Nigh","compatibility":3,"releases":[{"id":"01004A9006B84000","region":null}]},{"id":"207fe52d-6855-4b14-afae-f7cc7e53b5d4","directory":"area-86","title":"Area 86","compatibility":1,"releases":[{"id":"01004DA012976000","region":null}]},{"id":"20875a64-7dcc-4a1e-ad71-a117e5ef7238","directory":"soul-knight","title":"Soul Knight","compatibility":1,"releases":[{"id":"0100A0800B83A000","region":null}]},{"id":"20881c63-972f-4cfb-80d6-80a775da2e4f","directory":"john-wick-hex","title":"John Wick Hex","compatibility":0,"releases":[{"id":"01007090104EC000","region":null}]},{"id":"208cb4e5-fa3a-465f-a503-6c33c4e84fa3","directory":"sega-ages-wonder-boy-monster-land","title":"SEGA AGES Wonder Boy: Monster Land","compatibility":0,"releases":[{"id":"01001E700AC60000","region":null}]},{"id":"20972b55-7da6-45f3-89f0-442b8946eadb","directory":"monster-train-first-class","title":"Monster Train First Class","compatibility":99,"releases":[{"id":"01006D9013894000","region":null}]},{"id":"20a59e40-0375-40fc-be00-3e62c693c2ca","directory":"i-am-the-hero","title":"I Am The Hero","compatibility":99,"releases":[{"id":"0100019006F4E000","region":null}]},{"id":"20ac99fa-9033-469d-b524-ca65a5371192","directory":"12-is-better-than-6","title":"12 is Better Than 6","compatibility":2,"releases":[{"id":"01007F600D1B8000","region":null}]},{"id":"20bb8183-b7e9-43a9-bec1-8dcc580a3cc9","directory":"bishoujo-battle-mahjong-solitaire","title":"Bishoujo Battle Mahjong Solitaire","compatibility":99,"releases":[{"id":"01008AE013F82000","region":null}]},{"id":"20cd1374-31f1-45f3-81be-2c46bf841bbd","directory":"skellboy-refractured","title":"Skellboy Refractured","compatibility":99,"releases":[{"id":"0100D7001453A000","region":null}]},{"id":"20d5a7b7-a72c-4504-b971-371fca167412","directory":"daemon-x-machina","title":"DAEMON X MACHINA™","compatibility":2,"releases":[{"id":"0100B6400CA56000","region":null}]},{"id":"20dff95b-4fa1-464a-a061-d0b38d935ad7","directory":"pixel-game-maker-series-the-witch-and-the-66-mushrooms","title":"Pixel Game Maker Series The Witch and The 66 Mushrooms","compatibility":99,"releases":[{"id":"01002C90133CA000","region":null}]},{"id":"20e3d5fc-72ff-4a19-ba80-6321a05a3165","directory":"frodoric-the-driver","title":"Frodoric The Driver","compatibility":99,"releases":[{"id":"0100716013B3C000","region":null}]},{"id":"20e9137a-82c4-4c95-b2c0-26aa17e13336","directory":"4x4-dirt-track","title":"4x4 Dirt Track","compatibility":0,"releases":[{"id":"01006890126E4000","region":null}]},{"id":"20ecf007-e540-432c-bd50-12288a726ad6","directory":"the-aquatic-adventure-of-the-last-human","title":"The Aquatic Adventure of the Last Human","compatibility":0,"releases":[{"id":"0100A6F00C34E000","region":null}]},{"id":"20f4c4af-3c1d-4ff1-a9bd-bdfdad8b99a5","directory":"poker-club","title":"Poker Club","compatibility":99,"releases":[{"id":"0100F16010A40000","region":null}]},{"id":"21013044-7fbf-494f-9384-aec7dc7f259a","directory":"grave-danger","title":"Grave Danger","compatibility":1,"releases":[{"id":"010074E0099FA000","region":null}]},{"id":"21030b15-bc98-4680-a754-9469d05796be","directory":"stickman-far-east-battle","title":"Stickman: Far East Battle","compatibility":99,"releases":[{"id":"0100C6F0163B0000","region":null}]},{"id":"21057225-0710-4b15-a9e8-a1b54506dc07","directory":"razion-ex","title":"Razion EX","compatibility":0,"releases":[{"id":"010032B013CE4000","region":null}]},{"id":"2119bf7e-de48-4e57-aeea-a072d1ebf3b0","directory":"estiman","title":"Estiman","compatibility":0,"releases":[{"id":"01008E500CF02000","region":null}]},{"id":"21231b5c-65e1-469d-9958-73406c400c13","directory":"radical-rabbit-stew","title":"Radical Rabbit Stew","compatibility":99,"releases":[{"id":"0100C8B00D2BE000","region":null}]},{"id":"2125e57f-b93b-40ae-b810-bc8fc3606c17","directory":"skulls-of-the-shogun-bone-a-fide-edition","title":"Skulls of the Shogun: Bone-A-Fide Edition","compatibility":99,"releases":[{"id":"0100D1100BF9C000","region":null}]},{"id":"212b8819-5458-49a3-94bb-6ce54131af65","directory":"caveblazers","title":"Caveblazers","compatibility":5,"releases":[{"id":"01001A100C0E8000","region":null}]},{"id":"2131b9b9-2898-4944-a9dc-64b7d13d52b7","directory":"my-lovely-daughter","title":"My Lovely Daughter","compatibility":99,"releases":[{"id":"010086B00C784000","region":null}]},{"id":"21430a69-56f5-4e52-a202-a14221d6e05f","directory":"metamorphosis","title":"Metamorphosis","compatibility":99,"releases":[{"id":"010055200E87E000","region":null}]},{"id":"2147ea00-2529-4561-83b6-513b23b49f6e","directory":"final-fantasy-xx-2-hd-remaster","title":"FINAL FANTASY X/X-2 HD Remaster","compatibility":1,"releases":[{"id":"0100BC300CB48000","region":null}]},{"id":"2149cdcc-49b3-4b74-bca3-e403f1046c68","directory":"realm-royale","title":"Realm Royale","compatibility":99,"releases":[{"id":"0100CC400DDE8000","region":null}]},{"id":"21599666-82bf-4518-beaa-6a2f592878b5","directory":"arcade-archives-super-punch-out","title":"Arcade Archives SUPER PUNCH-OUT!!","compatibility":0,"releases":[{"id":"01007E2011CE4000","region":null}]},{"id":"215a5c85-be4d-4646-9e7a-02960a0395d8","directory":"slayaway-camp-butchers-cut","title":"Slayaway Camp: Butcher's Cut","compatibility":0,"releases":[{"id":"0100501006494000","region":null}]},{"id":"21626c01-f7d5-4465-9681-b014c9729c14","directory":"spelunky","title":"Spelunky","compatibility":0,"releases":[{"id":"0100710013ABA000","region":null}]},{"id":"2175a0c6-24b6-4c6b-a320-9795c3bb41f2","directory":"the-trail-frontier-challenge","title":"The Trail: Frontier Challenge","compatibility":99,"releases":[{"id":"0100B0E0086F6000","region":null}]},{"id":"217f4ac9-a6e3-431a-ba97-11a6bca49ab9","directory":"hardcube","title":"HardCube","compatibility":99,"releases":[{"id":"01000C90117FA000","region":null}]},{"id":"21859f8d-4bf6-4957-8e2e-a887adf3d2b3","directory":"cave-story","title":"Cave Story+","compatibility":1,"releases":[{"id":"0100B7D0022EE000","region":null}]},{"id":"218e3d35-9319-4e66-aa14-a12eb2820078","directory":"grand-prix-rock-n-racing","title":"Grand Prix Rock 'N Racing","compatibility":99,"releases":[{"id":"0100D84005AF6000","region":null}]},{"id":"21953b79-3d68-48cf-906c-fa5124d6cfcb","directory":"octopath-traveler","title":"Octopath Traveler","compatibility":1,"releases":[{"id":"010057D006492000","region":null}]},{"id":"2198df3b-5d0b-4395-bfa0-56add2aa9099","directory":"scribblenauts-showdown","title":"Scribblenauts Showdown","compatibility":5,"releases":[{"id":"01001E40041BE000","region":null}]},{"id":"21aafce7-1080-4a35-afb7-355ee49893b7","directory":"kirakira-stars-idol-project-reika","title":"Kirakira stars idol project Reika","compatibility":99,"releases":[{"id":"010009E0154C0000","region":null}]},{"id":"21ad9527-423a-497b-9d0e-1c51c842ee87","directory":"word-mesh","title":"Word Mesh","compatibility":99,"releases":[{"id":"010042800E748000","region":null}]},{"id":"21afa80e-1e9c-45d3-a8ab-bb7c95958696","directory":"debtor","title":"Debtor","compatibility":99,"releases":[{"id":"0100D96011D0E000","region":null}]},{"id":"21b46363-8d89-4935-9ca0-1c982caa4ebd","directory":"noreload-heroes","title":"NoReload Heroes","compatibility":1,"releases":[{"id":"0100E9A00B0BC000","region":null}]},{"id":"21b96f74-c035-47fc-a4c4-3b485e68c843","directory":"landflix-odyssey","title":"Landflix Odyssey","compatibility":99,"releases":[{"id":"0100BE3013A38000","region":null}]},{"id":"21bc2d01-e013-4bbc-bb39-897f2685f21f","directory":"a-jugglers-tale","title":"A Juggler's Tale","compatibility":99,"releases":[{"id":"0100CFD01517A000","region":null}]},{"id":"21de6c2e-45c1-4dc4-ba47-1bc61af6b114","directory":"wenjia","title":"Wenjia","compatibility":0,"releases":[{"id":"010035600EC94000","region":null}]},{"id":"21e59cc0-b312-4b15-bb43-6c1f829a6945","directory":"arcade-archives-radical-radial","title":"Arcade Archives RADICAL RADIAL","compatibility":99,"releases":[{"id":"0100A01011B04000","region":null}]},{"id":"22046a28-1842-40f5-82b8-9d580d482991","directory":"canceled-super-puzzles-dream","title":"Canceled! Super Puzzles Dream","compatibility":99,"releases":[{"id":"010023E016F8E000","region":null}]},{"id":"22135b58-c614-4888-9e2e-b073a51ed893","directory":"rise-and-shine","title":"Rise and Shine","compatibility":3,"releases":[{"id":"010065B00B0EC000","region":null}]},{"id":"221afbe6-2dec-4cc0-906b-ba37047fb688","directory":"fobia","title":"Fobia","compatibility":99,"releases":[{"id":"010056000BA1C000","region":null}]},{"id":"222af30e-b532-478d-aebf-8be7cc072594","directory":"road-96","title":"Road 96","compatibility":1,"releases":[{"id":"010031B0145B4000","region":null}]},{"id":"2231e39e-911e-4a1c-898f-605b69f431dd","directory":"super-skelemania","title":"Super Skelemania","compatibility":99,"releases":[{"id":"010039700D200000","region":null}]},{"id":"2234a4c2-afda-4b86-af77-47ea1f4dbc30","directory":"dungeon-nightmares-1-2-collection","title":"Dungeon Nightmares 1+2 Collection","compatibility":99,"releases":[{"id":"01009020135FE000","region":null}]},{"id":"2255a9e1-e120-4101-ac68-c617b692ece5","directory":"the-fall-part-2-unbound","title":"The Fall Part 2: Unbound","compatibility":99,"releases":[{"id":"01003E5002320000","region":null}]},{"id":"22597902-9e9e-40ce-a7da-75ac7dd49cf5","directory":"20xx","title":"20XX","compatibility":3,"releases":[{"id":"0100749009844000","region":null}]},{"id":"226d3d5f-b5f1-4bad-b4c2-79ddd629f181","directory":"kakurasu-world","title":"Kakurasu World","compatibility":99,"releases":[{"id":"010053C012AE2000","region":null}]},{"id":"22852653-ecee-4b9b-819d-9906dfa6e650","directory":"zombie-raid","title":"Zombie Raid","compatibility":99,"releases":[{"id":"0100A0E0153D0000","region":null}]},{"id":"2286d67d-338d-4888-9193-fa4942b7a236","directory":"good-night-knight","title":"Good Night, Knight","compatibility":99,"releases":[{"id":"01003AD0123A2000","region":null}]},{"id":"22b3bf07-2e57-420f-8498-7a8a54cb225b","directory":"at-sundown-shots-in-the-dark","title":"At Sundown: Shots in the Dark","compatibility":99,"releases":[{"id":"010032A008754000","region":null}]},{"id":"22b57769-80c5-400f-9361-62d2a3087f80","directory":"aca-neogeo-mutation-nation","title":"ACA NEOGEO MUTATION NATION","compatibility":99,"releases":[{"id":"01007F4004FA4000","region":null}]},{"id":"22bb3ec3-0c40-4f74-9f02-7152c50c73eb","directory":"robonauts","title":"Robonauts","compatibility":4,"releases":[{"id":"0100618004096000","region":null}]},{"id":"22bf5101-3823-43ae-8542-d9820e9521e5","directory":"paper-wars-cannon-fodder-devastated","title":"Paper Wars: Cannon Fodder Devastated","compatibility":99,"releases":[{"id":"0100D1D007F4E000","region":null}]},{"id":"22c5850e-f2c3-4867-830c-06861061929f","directory":"dirt-trackin-sprint-cars","title":"Dirt Trackin Sprint Cars","compatibility":99,"releases":[{"id":"01004CB01378A000","region":null}]},{"id":"22c7c7a9-b996-4bb7-90e9-f27ff8156fae","directory":"arcade-archives-ninja-kazan","title":"Arcade Archives Ninja Kazan","compatibility":99,"releases":[{"id":"010054B013FB2000","region":null}]},{"id":"22cda249-4823-43d5-8ff3-55e881b5429d","directory":"travel-mosaics-5-waltzing-vienna","title":"Travel Mosaics 5: Waltzing Vienna","compatibility":99,"releases":[{"id":"01004C4010C00000","region":null}]},{"id":"22d3a6a8-de8e-4951-aee1-9cb0419c3120","directory":"stay-cool-kobayashi-san-a-river-city-ransom-story","title":"STAY COOL, KOBAYASHI-SAN!: A RIVER CITY RANSOM STORY","compatibility":2,"releases":[{"id":"0100B61009C60000","region":null}]},{"id":"22dba733-83ec-4ebb-89bd-3b5ddc06f702","directory":"q-yo-blaster","title":"Q-YO Blaster","compatibility":5,"releases":[{"id":"0100F1100E606000","region":null}]},{"id":"22e266eb-92d9-42bc-9ae3-ca7962106c16","directory":"horror-sports-pinball","title":"Horror & Sports Pinball","compatibility":99,"releases":[{"id":"0100A6B016838000","region":null}]},{"id":"22e5384f-c6c6-4742-a291-7cd6468a03cd","directory":"monster-rancher-1-2-dx","title":"Monster Rancher 1 & 2 DX","compatibility":99,"releases":[{"id":"0100195015AC6000","region":null}]},{"id":"22e8123c-547f-4326-9eaf-7b3fd03acea2","directory":"smoots-world-cup-tennis","title":"Smoots World Cup Tennis","compatibility":0,"releases":[{"id":"0100A1A011944000","region":null}]},{"id":"22ea4756-2509-494b-97a0-8faa2f0fab68","directory":"ys-origin","title":"Ys Origin","compatibility":2,"releases":[{"id":"0100F90010882000","region":null}]},{"id":"22edb79e-f733-4f12-91b7-7e19b2231373","directory":"mr-blaster","title":"Mr Blaster","compatibility":99,"releases":[{"id":"0100D3300F110000","region":null}]},{"id":"22f1a7a0-2c51-4854-aec3-3deff3c4a265","directory":"voxelgram","title":"Voxelgram","compatibility":99,"releases":[{"id":"0100082010A4E000","region":null}]},{"id":"22f210bc-7b6c-413f-9d34-fa16080a2454","directory":"the-world-next-door","title":"The World Next Door","compatibility":99,"releases":[{"id":"0100E6200D56E000","region":null}]},{"id":"22fc5500-274c-4000-b13e-231fc7496b37","directory":"replica","title":"REPLICA","compatibility":99,"releases":[{"id":"0100EC3012AAC000","region":null}]},{"id":"2301177c-07ef-4928-a52a-acdeeb636235","directory":"lieat","title":"LiEat","compatibility":99,"releases":[{"id":"01000810151FA000","region":null}]},{"id":"23019c5d-3e3d-49e2-9672-08074cd0e8c5","directory":"secrets-of-magic-2-witches-wizards","title":"Secrets of Magic 2 - Witches & Wizards","compatibility":99,"releases":[{"id":"01000C100CFD8000","region":null}]},{"id":"230c236b-2300-4cbd-8fe1-b6b55d448f6f","directory":"sword-art-online-fatal-bullet-complete-edition","title":"SWORD ART ONLINE: FATAL BULLET Complete Edition","compatibility":4,"releases":[{"id":"01005DF00DC26000","region":null}]},{"id":"2328fbd4-7ea7-4ad8-91fb-d9637e53eb57","directory":"zumba-burn-it-up","title":"Zumba Burn It Up!","compatibility":3,"releases":[{"id":"0100C1700CD94000","region":null}]},{"id":"232e64fd-0a6b-42c4-b6da-4e5d387a82c6","directory":"tools-up","title":"Tools Up!","compatibility":0,"releases":[{"id":"010093F00E818000","region":null}]},{"id":"23456eed-20e3-471e-ac2c-9d2e56be07fa","directory":"telling-lies","title":"Telling Lies","compatibility":99,"releases":[{"id":"010021100DF22000","region":null}]},{"id":"234a0b6c-9545-4df8-89b7-5c1374098a0e","directory":"pocket-circuit","title":"Pocket Circuit","compatibility":99,"releases":[{"id":"01002D4012BBC000","region":null}]},{"id":"235121eb-4d4c-4563-9a84-b331a664b7cb","directory":"salt-and-sanctuary","title":"Salt and Sanctuary","compatibility":2,"releases":[{"id":"0100D250083B4000","region":null}]},{"id":"23522ed0-3e25-4a26-aaba-9c1065891d5a","directory":"diablo-iii-eternal-collection","title":"Diablo III: Eternal Collection","compatibility":1,"releases":[{"id":"01001B300B9BE000","region":null}]},{"id":"2352eeb6-d666-49f8-8d03-bfe3fe85f392","directory":"castle-of-no-escape-2","title":"Castle of no Escape 2","compatibility":99,"releases":[{"id":"0100F5500FA0E000","region":null}]},{"id":"23577b90-9779-4bdd-813d-d9b455be6df4","directory":"bucket-knight","title":"Bucket Knight","compatibility":1,"releases":[{"id":"0100089010A92000","region":null}]},{"id":"2367e1e5-82a3-41b3-8d65-0e7d92565f13","directory":"nerdook-bundle-vol-1","title":"Nerdook Bundle Vol. 1","compatibility":1,"releases":[{"id":"01000B2011352000","region":null}]},{"id":"237c60fa-0edb-4550-9fb8-85b26afd0c66","directory":"contract-killers","title":"Contract Killers","compatibility":99,"releases":[{"id":"0100726013C06000","region":null}]},{"id":"238e9728-9459-46bf-b874-842ae19977d2","directory":"light-fall","title":"Light Fall","compatibility":99,"releases":[{"id":"010030A006F6E000","region":null}]},{"id":"2390c702-1839-486b-833f-0025ca64edb2","directory":"blaster-master-zero-3","title":"Blaster Master Zero 3","compatibility":1,"releases":[{"id":"01002030143D0000","region":null}]},{"id":"2398e965-01cd-43ea-8aca-647e2d45a25b","directory":"metroid-dread","title":"Metroid™ Dread","compatibility":1,"releases":[{"id":"010093801237C000","region":null}]},{"id":"239b4c1c-5b1b-4397-ad68-5d12c94970ff","directory":"plumber-puzzles","title":"Plumber Puzzles","compatibility":99,"releases":[{"id":"0100ABF016B50000","region":null}]},{"id":"23a9dbc1-8447-44af-bc30-c72856c6ad93","directory":"the-grisaia-trilogy","title":"THE GRISAIA TRILOGY","compatibility":2,"releases":[{"id":"01003B300E4AA000","region":null}]},{"id":"23c0c458-2a75-45e9-a8ee-a61707c9787d","directory":"vvvvvv","title":"VVVVVV","compatibility":0,"releases":[{"id":"0100B1E0022F8000","region":null}]},{"id":"23c99558-7d3a-418d-9bcc-eb36b5c51ea3","directory":"ironcast","title":"IRONCAST","compatibility":1,"releases":[{"id":"01004DB003E6A000","region":null}]},{"id":"23ca17e4-55ed-48fe-a6ab-1eb9af257d4d","directory":"dungreed","title":"Dungreed","compatibility":0,"releases":[{"id":"0100FAD00C2AA000","region":null}]},{"id":"23cbb844-b213-46c4-9a78-a5b30ebd638d","directory":"cosmic-express","title":"Cosmic Express","compatibility":99,"releases":[{"id":"0100334013308000","region":null}]},{"id":"23d1b984-3a37-44b7-9f2f-acc7a50d3ffe","directory":"guns-gore-and-cannoli-2","title":"Guns, Gore and Cannoli 2","compatibility":0,"releases":[{"id":"01006D4003BCE000","region":null}]},{"id":"23d85b67-7f6b-443e-8351-56d3c8c32445","directory":"guess-the-character","title":"Guess the Character","compatibility":99,"releases":[{"id":"010089900C9FA000","region":null}]},{"id":"23e42778-2af4-4d07-9856-acaf20d86cca","directory":"picture-painting-puzzle-1000","title":"Picture Painting Puzzle 1000!","compatibility":99,"releases":[{"id":"0100A1A00C5D8000","region":null}]},{"id":"23f76bae-06e4-4709-a210-62f68aead488","directory":"xenon-valkyrie-demo","title":"Xenon Valkyrie+ Demo","compatibility":99,"releases":[{"id":"01007A300C856000","region":null}]},{"id":"23f808d0-c857-4d86-9324-33cd73feba24","directory":"pokemon-brilliant-diamond","title":"Pokémon™ Brilliant Diamond","compatibility":2,"releases":[{"id":"0100000011D90000","region":null}]},{"id":"23f82ff7-422d-4047-b115-e52e4cd9d629","directory":"space-crew","title":"Space Crew","compatibility":99,"releases":[{"id":"01004550100CC000","region":null}]},{"id":"240674b2-77e0-42e9-92b0-aeb2b3faf09c","directory":"lines-xl","title":"Lines XL","compatibility":99,"releases":[{"id":"010032F01096C000","region":null}]},{"id":"241cdc10-ea0e-4472-9fdc-94c2543349b2","directory":"think-of-the-children","title":"Think of the Children","compatibility":1,"releases":[{"id":"0100F2300A5DA000","region":null}]},{"id":"241d5092-b083-4675-83a3-da801b95905a","directory":"there-is-no-game-wrong-dimension","title":"There Is No Game: Wrong Dimension","compatibility":0,"releases":[{"id":"0100009013566000","region":null}]},{"id":"243ff8e7-f082-49fa-9ace-7b4dacc487b1","directory":"deemo","title":"DEEMO","compatibility":1,"releases":[{"id":"01002CC0062B8000","region":null}]},{"id":"24443beb-3f53-4089-8681-f7abbd482638","directory":"earth-atlantis","title":"Earth Atlantis","compatibility":1,"releases":[{"id":"0100E07006C84000","region":null}]},{"id":"24516c21-a98f-442d-8ba2-6bfb878a2397","directory":"tricky-spider","title":"Tricky Spider","compatibility":99,"releases":[{"id":"010097000EDB4000","region":null}]},{"id":"24518ec9-b9c5-48f1-a2ba-bab59d6d2b44","directory":"dynos-ghosts","title":"Dynos & Ghosts","compatibility":99,"releases":[{"id":"01007C30140F4000","region":null}]},{"id":"2451a42f-57ce-42b8-aa73-d93b70d8c2f9","directory":"thimbleweed-park","title":"Thimbleweed Park","compatibility":4,"releases":[{"id":"01009BD003B36000","region":null}]},{"id":"245933b0-2802-4136-8c14-a108a9268064","directory":"premium-pool-arena","title":"Premium Pool Arena","compatibility":0,"releases":[{"id":"0100D98007784000","region":null}]},{"id":"246ea180-88a6-436a-8428-38d11a12f8b7","directory":"star-crossed-myth-the-department-of-wishes-","title":"Star-Crossed Myth - The Department of Wishes -","compatibility":4,"releases":[{"id":"01005EB00EA10000","region":null}]},{"id":"246f8f1e-932c-4712-94ff-b126d21f3043","directory":"aca-neogeo-spin-master","title":"ACA NEOGEO SPIN MASTER","compatibility":4,"releases":[{"id":"01007D1004DBA000","region":null}]},{"id":"2474ca57-195e-4e6b-af72-f89f26dbce7c","directory":"the-incredible-adventures-of-super-panda","title":"The Incredible Adventures of Super Panda","compatibility":99,"releases":[{"id":"0100D1500F6DC000","region":null}]},{"id":"247ae799-a7fa-4a08-bfb8-bab65a164209","directory":"crash-team-racing-nitro-fueled","title":"Crash™ Team Racing Nitro-Fueled","compatibility":1,"releases":[{"id":"0100F9F00C696000","region":null}]},{"id":"24838602-eaa0-464e-a519-82edcb61f8b0","directory":"okinawa-rush","title":"Okinawa Rush","compatibility":99,"releases":[{"id":"0100D7B013BA8000","region":null}]},{"id":"24856159-94a7-4427-85dd-8c65b153ae42","directory":"trenga-unlimited","title":"Trenga Unlimited","compatibility":99,"releases":[{"id":"0100A8E013A16000","region":null}]},{"id":"24a40a71-39be-47b7-9aa1-d37b78e03dd2","directory":"truberbrook","title":"Trüberbrook","compatibility":99,"releases":[{"id":"0100E6300D448000","region":null}]},{"id":"24a69d36-978a-479b-981d-f104f51fd60e","directory":"reverie-sweet-as-edition","title":"Reverie: Sweet As Edition","compatibility":99,"releases":[{"id":"01008FF00B8FA000","region":null}]},{"id":"24a89d69-4e13-4e46-9082-30e8ba0ad8e4","directory":"hammer-2-reloaded","title":"Hammer 2 Reloaded","compatibility":1,"releases":[{"id":"01008FB015E40000","region":null}]},{"id":"24b65360-13d5-408c-b59c-c7b639980c5c","directory":"hunt","title":"Hunt","compatibility":99,"releases":[{"id":"01000DE0125B8000","region":null}]},{"id":"24bdf7c3-b4dd-47e7-9b64-9c34d2667fe3","directory":"baseball-riot","title":"Baseball Riot","compatibility":4,"releases":[{"id":"01004860080A0000","region":null}]},{"id":"24c042dc-653a-4cc1-95f1-45ca373883c8","directory":"mighty-goose","title":"Mighty Goose","compatibility":1,"releases":[{"id":"0100AD701344C000","region":null}]},{"id":"24c60885-fc30-49a5-b274-08a5740d2a51","directory":"perchang","title":"Perchang","compatibility":99,"releases":[{"id":"010011700D1B2000","region":null}]},{"id":"24c68af7-de4e-4a94-9189-ed7028e936c5","directory":"pba-pro-bowling","title":"PBA Pro Bowling","compatibility":3,"releases":[{"id":"010085700ABC8000","region":null}]},{"id":"24da3cc6-6e24-470f-81e5-f80fff6d4299","directory":"911-operator","title":"911 Operator","compatibility":0,"releases":[{"id":"0100CF10099B2000","region":null}]},{"id":"24df0ef5-c19f-4985-97d7-23979a17568d","directory":"boomerang-x","title":"Boomerang X","compatibility":99,"releases":[{"id":"0100C09014530000","region":null}]},{"id":"24e1cf3a-ae7e-4477-828b-4a2fdd116785","directory":"fortnite","title":"Fortnite","compatibility":2,"releases":[{"id":"010025400AECE000","region":null}]},{"id":"24eacb5a-67d1-4d9e-a468-5b41d84ba4cc","directory":"air-strike-ww2-fighters-sky-combat","title":"Air Strike: WW2 Fighters Sky Combat","compatibility":0,"releases":[{"id":"0100E2F016680000","region":null}]},{"id":"24ed537b-65a6-4382-933a-fa88c6226505","directory":"the-eternal-castle-remastered]","title":"The Eternal Castle [REMASTERED]","compatibility":99,"releases":[{"id":"010061900F896000","region":null}]},{"id":"24f11789-c7c1-4150-9f32-2d43581269f2","directory":"atomicrops","title":"Atomicrops","compatibility":99,"releases":[{"id":"0100AD30095A4000","region":null}]},{"id":"2502f6a9-b5b3-4e48-a2cc-a84da27e5b11","directory":"nba-2k20","title":"NBA 2K20","compatibility":99,"releases":[{"id":"010026000E466000","region":null}]},{"id":"250b193f-ed39-4cf7-bcd4-9f44164b0910","directory":"golden-force","title":"Golden Force","compatibility":1,"releases":[{"id":"01007DE013A48000","region":null}]},{"id":"25106727-7c11-4242-8d9c-cfdce93e2bbb","directory":"lets-sing-2021","title":"Let's Sing 2021","compatibility":99,"releases":[{"id":"010061F0119FA000","region":null}]},{"id":"251209de-fe72-4234-8cd0-3203dbe4fa42","directory":"nicole","title":"Nicole","compatibility":99,"releases":[{"id":"0100A95012668000","region":null}]},{"id":"2515706e-c36c-4094-82ba-440e49a8f303","directory":"the-bug-butcher","title":"The Bug Butcher","compatibility":0,"releases":[{"id":"01008D700AB14000","region":null}]},{"id":"251cee89-edab-4796-9d06-3209a827e7c5","directory":"cross-the-moon","title":"Cross the Moon","compatibility":99,"releases":[{"id":"0100946014BBC000","region":null}]},{"id":"2521ed47-f1b0-4cda-8533-9b3a1b19e239","directory":"beefense-beemastered","title":"BeeFense BeeMastered","compatibility":99,"releases":[{"id":"010018F007786000","region":null}]},{"id":"2537bf82-30b8-4e90-9e80-dd5467a7f84f","directory":"super-battle-cards","title":"Super Battle Cards","compatibility":99,"releases":[{"id":"0100D1B0102B0000","region":null}]},{"id":"254d6953-8096-487f-93d9-005cc89e56f1","directory":"delicious-pretty-girls-mahjong-solitaire","title":"Delicious! Pretty Girls Mahjong Solitaire","compatibility":99,"releases":[{"id":"0100498013F7E000","region":null}]},{"id":"254edea8-76de-4295-a1b8-146439e022c2","directory":"her-majestys-ship","title":"Her Majesty's Ship","compatibility":99,"releases":[{"id":"0100531011EF4000","region":null}]},{"id":"2557ff56-1d8b-4b0e-bbf0-0b0523cb44e8","directory":"gunbrick-reloaded","title":"Gunbrick: Reloaded","compatibility":1,"releases":[{"id":"01008DF00B78E000","region":null}]},{"id":"255f0446-96c3-4c4b-9a50-6ba26a067b39","directory":"fishing-fighters","title":"Fishing Fighters","compatibility":99,"releases":[{"id":"0100F38014A3E000","region":null}]},{"id":"2566e0e9-6e7c-4600-8936-40ab67185eec","directory":"arcade-archives-kids-horehore-daisakusen","title":"Arcade Archives Kid's Horehore Daisakusen","compatibility":99,"releases":[{"id":"0100E7C001DE0000","region":null}]},{"id":"2570eaaa-7827-4b57-94c0-9a83e433ec4d","directory":"hell-is-other-demons","title":"Hell is Other Demons","compatibility":99,"releases":[{"id":"0100E4300C278000","region":null}]},{"id":"258b9af0-342e-4188-bcdc-e24e13070c41","directory":"valthirian-arc-hero-school-story-demo","title":"Valthirian Arc: Hero School Story Demo","compatibility":99,"releases":[{"id":"0100CEC00BF04000","region":null}]},{"id":"25949273-4413-4c5a-8023-1452a20afc48","directory":"the-lightbringer","title":"The Lightbringer","compatibility":0,"releases":[{"id":"0100491014980000","region":null}]},{"id":"25ad20e7-0e34-4c2c-bb17-189d4d63a75b","directory":"7th-sector","title":"7th Sector","compatibility":1,"releases":[{"id":"01004B200DF76000","region":null}]},{"id":"25b069c8-3a7f-40c8-8c4c-c0aef49027f0","directory":"little-bug","title":"Little Bug","compatibility":1,"releases":[{"id":"0100F8D016700000","region":null}]},{"id":"25be889e-3780-4a34-a547-abdf74cf8497","directory":"shift-quantum-demo","title":"Shift Quantum Demo","compatibility":99,"releases":[{"id":"0100CA000C682000","region":null}]},{"id":"25cfe7d4-1efc-45f7-ad65-eb19162b46d7","directory":"retro-game-pack","title":"Retro Game Pack","compatibility":99,"releases":[{"id":"010026D0122B8000","region":null}]},{"id":"25d9e72f-ec5c-462e-8ea6-ce49827333f4","directory":"state-of-anarchy-master-of-mayhem","title":"State of Anarchy: Master of Mayhem","compatibility":99,"releases":[{"id":"010000700A572000","region":null}]},{"id":"25debf59-5320-401c-95c3-fefa89349fea","directory":"true-fear-forsaken-souls-part-1-demo","title":"True Fear: Forsaken Souls - Part 1 Demo","compatibility":99,"releases":[{"id":"010020100B768000","region":null}]},{"id":"25e6efee-38ec-4fa2-8c32-dc0645891d69","directory":"bomb","title":"Bomb","compatibility":99,"releases":[{"id":"0100516011606000","region":null}]},{"id":"26079cf6-911a-47ff-9733-7b0b187bea27","directory":"arcade-archives-haunted-castle","title":"Arcade Archives HAUNTED CASTLE","compatibility":99,"releases":[{"id":"010093E01450A000","region":null}]},{"id":"26127716-4ad5-48e2-b217-204cbc0e208f","directory":"never-stop","title":"Never Stop","compatibility":5,"releases":[{"id":"010021D00ACA2000","region":null}]},{"id":"2618b207-6f6f-4bcf-966c-457d9fee70a1","directory":"narcos-rise-of-the-cartels","title":"Narcos: Rise of the Cartels","compatibility":99,"releases":[{"id":"010072B00BDDE000","region":null}]},{"id":"26197e54-da9a-461e-ba31-545f08ea27ae","directory":"oxenfree","title":"OXENFREE","compatibility":2,"releases":[{"id":"01008B8004E36000","region":null}]},{"id":"261ab5d4-dd4b-4ff3-8ba2-9c27919b8732","directory":"seabed","title":"SeaBed","compatibility":99,"releases":[{"id":"0100C2400D68C000","region":null}]},{"id":"261bdb11-cbfa-43df-a516-64f00eba821b","directory":"infinite-tanks-wwii","title":"Infinite Tanks WWII","compatibility":99,"releases":[{"id":"010057101473A000","region":null}]},{"id":"2629aacc-38a7-482b-bc86-397ed191c035","directory":"ultimate-ski-jumping-2020","title":"Ultimate Ski Jumping 2020","compatibility":99,"releases":[{"id":"01006B601117E000","region":null}]},{"id":"262a87e3-cac4-43da-ad76-8c0ddbefab8d","directory":"one-escape","title":"One Escape","compatibility":99,"releases":[{"id":"010024C013E58000","region":null}]},{"id":"262cf9d1-fb3b-48bf-b896-e16531f67fbb","directory":"make-war","title":"Make War","compatibility":99,"releases":[{"id":"0100B0B011748000","region":null}]},{"id":"262dc5bb-818d-4b5d-9ec5-4b83abcfcc89","directory":"connection-haunted-server-error","title":"/Connection Haunted <SERVER ERROR>","compatibility":99,"releases":[{"id":"0100A5D01174C000","region":null}]},{"id":"262de758-7345-4316-8771-23ced1bcae4e","directory":"combat-core","title":"Combat Core","compatibility":99,"releases":[{"id":"0100A040069DE000","region":null}]},{"id":"262e0821-02af-45c8-93c1-ecca506485d8","directory":"far-lone-sails","title":"FAR: Lone Sails","compatibility":0,"releases":[{"id":"010022700E7D6000","region":null}]},{"id":"2648b853-0203-4aa5-b24e-f27e86e59ef7","directory":"black-bird","title":"BLACK BIRD","compatibility":0,"releases":[{"id":"010022B00ACE6000","region":null}]},{"id":"265ecef2-e08d-4b25-8b6a-eb992527166b","directory":"the-journey-down-chapter-one","title":"The Journey Down: Chapter One","compatibility":99,"releases":[{"id":"010052C00B184000","region":null}]},{"id":"266eddfa-e1b3-425b-9c56-893a44b09174","directory":"nightshade","title":"Nightshade/百花百狼","compatibility":2,"releases":[{"id":"010042300C4F6000","region":null}]},{"id":"2680263e-02ed-4487-84d3-253b96b6a65f","directory":"lost-castle","title":"Lost Castle","compatibility":0,"releases":[{"id":"0100581007068000","region":null}]},{"id":"2680607a-3659-4621-b617-e4df4966da96","directory":"arcade-archives-super-dodge-ball","title":"Arcade Archives Super Dodge Ball","compatibility":99,"releases":[{"id":"0100C6C009812000","region":null}]},{"id":"26849633-a46f-42cc-a9d8-84c67c0333ad","directory":"sky-gamblers-storm-raiders","title":"Sky Gamblers: Storm Raiders","compatibility":99,"releases":[{"id":"010093D00AC38000","region":null}]},{"id":"268f76e7-4d54-467f-9649-9b7b85e327b8","directory":"laraan","title":"Laraan","compatibility":99,"releases":[{"id":"0100AFE00E882000","region":null}]},{"id":"26a5e587-e712-4849-86b7-0a5ed195b582","directory":"pic-a-pix-deluxe-demo","title":"Pic-a-Pix Deluxe Demo","compatibility":99,"releases":[{"id":"01006E30099B8000","region":null}]},{"id":"26a84019-d132-4c6c-b377-928fc9fe5c7c","directory":"survival","title":"Survival","compatibility":99,"releases":[{"id":"0100DBB0136CE000","region":null}]},{"id":"26aa6a68-ca76-4e1e-923a-21ae86acb337","directory":"nickelodeon-kart-racers","title":"Nickelodeon Kart Racers","compatibility":0,"releases":[{"id":"0100D6200933C000","region":null}]},{"id":"26b92ab8-14ee-4b1f-b822-067e47754738","directory":"squabble","title":"Squabble","compatibility":99,"releases":[{"id":"010027E01435C000","region":null}]},{"id":"26ba904b-fc72-43a3-a123-3acc8b1e8854","directory":"knight-squad-2","title":"Knight Squad 2","compatibility":99,"releases":[{"id":"010024B00E1D6000","region":null}]},{"id":"26ba9c65-13b9-464b-b937-ffe43e23934a","directory":"mini-puzzle-balls","title":"Mini Puzzle Balls","compatibility":99,"releases":[{"id":"0100591010262000","region":null}]},{"id":"26e4371c-8ef2-435b-81b9-fc9914513285","directory":"slice-of-life","title":"Slice of Life","compatibility":99,"releases":[{"id":"010093A0117A0000","region":null}]},{"id":"26e5bf9a-87be-4558-b2e7-cb5b04d176ac","directory":"tetris-r-effect-connected","title":"Tetris® Effect: Connected","compatibility":2,"releases":[{"id":"0100DE501433A000","region":null}]},{"id":"26ea2bb8-b2c8-4201-bec7-bca6cdc2509d","directory":"flashback","title":"FLASHBACK","compatibility":1,"releases":[{"id":"01000A0004C50000","region":null}]},{"id":"26f2bbf5-6575-4c93-ae6a-b9f7bd896cd1","directory":"family-vacation-california","title":"Family Vacation: California","compatibility":99,"releases":[{"id":"010070A015100000","region":null}]},{"id":"26f88a47-d812-4669-a0ba-87a4464be5d4","directory":"touchdown-pinball","title":"Touchdown Pinball","compatibility":99,"releases":[{"id":"0100D04010E38000","region":null}]},{"id":"26fa5d12-391c-4cfa-917e-3127a522ba87","directory":"the-room","title":"The Room","compatibility":0,"releases":[{"id":"010079400BEE0000","region":null}]},{"id":"26fec3d3-07da-467c-807d-754cd48a0564","directory":"pocket-academy-demo","title":"Pocket Academy Demo","compatibility":99,"releases":[{"id":"010004D00D222000","region":null}]},{"id":"27063981-7c54-476f-b40c-a2e64bdc04b4","directory":"mekorama","title":"Mekorama","compatibility":4,"releases":[{"id":"0100B360068B2000","region":null}]},{"id":"2710af6d-9981-4786-9dd6-e7efdef080ec","directory":"hello-neighbor","title":"Hello Neighbor","compatibility":99,"releases":[{"id":"0100FAA00B168000","region":null}]},{"id":"2715224a-d26a-4de3-be6d-5fb6f4548121","directory":"aca-neogeo-alpha-mission-ii","title":"ACA NEOGEO ALPHA MISSION II","compatibility":99,"releases":[{"id":"0100A76002B46000","region":null}]},{"id":"2715dbc7-aa93-422d-814d-c8437c84fadb","directory":"knights-of-pen-and-paper-2-deluxiest-edition","title":"Knights of Pen & Paper 2 Deluxiest Edition","compatibility":3,"releases":[{"id":"010004400B22A000","region":null}]},{"id":"2722e23f-654e-4934-9a65-8fee06ff6a01","directory":"omotomo","title":"OmoTomO","compatibility":99,"releases":[{"id":"0100395010AD2000","region":null}]},{"id":"27298c36-6b52-4571-8bf6-e223048eeb88","directory":"resident-evil-4","title":"resident evil 4","compatibility":0,"releases":[{"id":"010099A00BC1E000","region":null}]},{"id":"2745a96a-3811-432d-bd95-2950c86cb072","directory":"shadows-of-adam","title":"Shadows of Adam","compatibility":99,"releases":[{"id":"0100AD700CBBE000","region":null}]},{"id":"2747c708-1c36-4cb9-856f-cfc01f946681","directory":"fallout-shelter","title":"Fallout Shelter","compatibility":2,"releases":[{"id":"010043500A17A000","region":null}]},{"id":"27569774-9c2c-4a07-98ac-b79c757a61c1","directory":"fateextella-link","title":"Fate/EXTELLA LINK","compatibility":4,"releases":[{"id":"01006E000C81C000","region":null}]},{"id":"2762e4cf-930a-4c94-b5c6-7d99caa47d5f","directory":"taiwan-monster-fruit-prologue","title":"Taiwan Monster Fruit : Prologue","compatibility":99,"releases":[{"id":"010028E013E0A000","region":null}]},{"id":"2769dcaa-bb34-490a-a10b-7e675382ed92","directory":"ooo-ascension","title":"oOo: Ascension","compatibility":99,"releases":[{"id":"010074000BE8E000","region":null}]},{"id":"276a7e80-33d1-49f0-b824-31bf163d712b","directory":"dry-drowning","title":"Dry Drowning","compatibility":99,"releases":[{"id":"01008ED00DABC000","region":null}]},{"id":"27858943-9d18-47d2-a238-50b15abb5c71","directory":"encodya","title":"Encodya","compatibility":99,"releases":[{"id":"0100D08014D88000","region":null}]},{"id":"278ab89b-8909-49c8-91e0-109341854849","directory":"arcade-archives-block-hole","title":"Arcade Archives BLOCK HOLE","compatibility":99,"releases":[{"id":"01009E7013B2C000","region":null}]},{"id":"278d00fd-578f-437e-92f1-2472a815377b","directory":"party-games-15-in-1","title":"Party Games: 15 in 1","compatibility":99,"releases":[{"id":"01009D901321A000","region":null}]},{"id":"2794ca70-e9f8-47c5-9c39-697b5d07fd0d","directory":"mighty-fight-federation","title":"Mighty Fight Federation","compatibility":99,"releases":[{"id":"0100C1E0135E0000","region":null}]},{"id":"27a06875-089e-400b-adc3-81a3a5ddd5b0","directory":"minute-of-islands","title":"Minute of Islands","compatibility":99,"releases":[{"id":"01004F500F9E4000","region":null}]},{"id":"27a134df-7243-4958-a192-323001acdf31","directory":"gone-home","title":"Gone Home","compatibility":2,"releases":[{"id":"0100EEC00AA6E000","region":null}]},{"id":"27ad3aa1-5d5b-4ae3-9e88-7c37e79c9156","directory":"dokuro","title":"Dokuro (ドクロ)","compatibility":2,"releases":[{"id":"01005EE00BC78000","region":null}]},{"id":"27b12f82-42a4-4999-9684-23926ba7fec9","directory":"snake-vs-snake","title":"Snake vs Snake","compatibility":4,"releases":[{"id":"0100FF700B96C000","region":null}]},{"id":"27b583df-6125-4ae3-a82b-374a7c0ba7b6","directory":"hot-shot-burn","title":"Hot Shot Burn","compatibility":99,"releases":[{"id":"0100DB80123D2000","region":null}]},{"id":"27b5ce95-7626-426d-872c-14cafdb8be87","directory":"twist-and-match","title":"Twist & Match","compatibility":99,"releases":[{"id":"0100EBE00DB2C000","region":null}]},{"id":"27b816a5-4c90-4980-8558-cd0c7f5bd009","directory":"my-little-fruit-juice-booth","title":"My Little Fruit Juice Booth","compatibility":99,"releases":[{"id":"0100B950153B2000","region":null}]},{"id":"27cb7e53-7e2c-4f66-9f5f-be3876170e5d","directory":"levelhead","title":"Levelhead","compatibility":99,"releases":[{"id":"01009A200BE42000","region":null}]},{"id":"27d5168b-e0c7-49e0-88f3-9c632880ad96","directory":"the-ramen-sensei","title":"The Ramen Sensei","compatibility":99,"releases":[{"id":"010020B00E89E000","region":null}]},{"id":"27d5cfdb-eca6-48b6-96ce-33ee307a27e7","directory":"the-park","title":"The Park","compatibility":99,"releases":[{"id":"01005C500D690000","region":null}]},{"id":"27f51d99-8642-407a-bb41-2f7924e0939a","directory":"community-inc","title":"Community Inc","compatibility":99,"releases":[{"id":"010059C00E900000","region":null}]},{"id":"27f581f2-dba3-41e9-a4d5-95609a18266c","directory":"hungry-baby-party-treats","title":"Hungry Baby: Party Treats","compatibility":99,"releases":[{"id":"01002A100E010000","region":null}]},{"id":"27fc53ea-2f66-4e8a-8112-7938007f41dd","directory":"halloween-forever","title":"Halloween Forever","compatibility":0,"releases":[{"id":"010057D013210000","region":null}]},{"id":"28114dea-3c42-4a10-8091-cc7e7dc30754","directory":"hell-sports","title":"Hell Sports","compatibility":0,"releases":[{"id":"010036A01342C000","region":null}]},{"id":"28148d4a-f1d1-4325-a50d-b2a4ca5a8d84","directory":"marvels-guardians-of-the-galaxy-cloud-version","title":"Marvel's Guardians of the Galaxy: Cloud Version","compatibility":99,"releases":[{"id":"0100C3F01567E000","region":null}]},{"id":"2814b905-7f36-45bc-b0e1-d75a32486fee","directory":"welcome-to-primrose-lake","title":"Welcome to Primrose Lake","compatibility":99,"releases":[{"id":"0100D7F010B94000","region":null}]},{"id":"2814f61c-3d78-4aa1-b9b1-8aeac1037016","directory":"very-very-valet","title":"Very Very Valet","compatibility":99,"releases":[{"id":"0100379013A62000","region":null}]},{"id":"282d7e28-a1bf-4909-ae56-9c3307aa2780","directory":"all-walls-must-fall","title":"All Walls Must Fall","compatibility":99,"releases":[{"id":"0100CBD012FB6000","region":null}]},{"id":"28331c17-fb9e-42a4-843d-617c6e3bc532","directory":"monster-bugs-eat-people","title":"Monster Bugs Eat People","compatibility":99,"releases":[{"id":"01005FC01000E000","region":null}]},{"id":"28412b0d-5b31-446f-aa5e-29a62435650b","directory":"moero-crystal-h","title":"Moero Crystal H","compatibility":5,"releases":[{"id":"01004EB0119AC000","region":null}]},{"id":"28508d8c-2aaa-4601-8efc-d367023c029c","directory":"monkey-king-master-of-the-clouds","title":"Monkey King: Master of the Clouds","compatibility":0,"releases":[{"id":"01004C500B8E0000","region":null}]},{"id":"2854ccc1-b80a-4502-8340-6e8f1159f1f8","directory":"batman-the-enemy-within","title":"Batman: The Enemy Within","compatibility":2,"releases":[{"id":"0100E6300AA3A000","region":null}]},{"id":"28566967-36cb-4640-a898-35a361850f51","directory":"taiko-no-tatsujin-rhythmic-adventure-pack","title":"Taiko no Tatsujin: Rhythmic Adventure Pack","compatibility":0,"releases":[{"id":"0100DD6012644000","region":null}]},{"id":"286fdfc0-ad6f-471c-8e9b-3762bb803531","directory":"earthfall-alien-horde","title":"Earthfall: Alien Horde","compatibility":99,"releases":[{"id":"0100DFC00E472000","region":null}]},{"id":"28825b3c-4e8b-46dd-a417-95a43e861a55","directory":"pandaball","title":"PandaBall","compatibility":99,"releases":[{"id":"010044A0134E8000","region":null}]},{"id":"288c324b-d13f-4429-a1e3-b066be756ef5","directory":"nordlicht","title":"Nordlicht","compatibility":0,"releases":[{"id":"0100A5601375C000","region":null}]},{"id":"288cc6a1-4b59-42ac-aad5-be93aff5e63b","directory":"the-mooseman","title":"The Mooseman","compatibility":99,"releases":[{"id":"010033300AC1A000","region":null}]},{"id":"2892dabe-3058-4213-918c-c0f982901afd","directory":"war-truck-simulator","title":"War Truck Simulator","compatibility":99,"releases":[{"id":"0100B6B013B8A000","region":null}]},{"id":"28a9659a-baf9-4c96-9295-101c4fec1540","directory":"despotism-3k","title":"Despotism 3k","compatibility":1,"releases":[{"id":"010082C011B24000","region":null}]},{"id":"28ac1f5b-ed5a-445b-99f7-6c3a2476b509","directory":"tinker-racers","title":"Tinker Racers","compatibility":0,"releases":[{"id":"0100F93012A36000","region":null}]},{"id":"28ad66bf-0931-4eb6-89d2-a9137254467c","directory":"down-to-hell","title":"Down to Hell","compatibility":99,"releases":[{"id":"0100B6600FE06000","region":null}]},{"id":"28b11ed4-e1de-4456-90f2-8530293fa798","directory":"embers-of-mirrim","title":"Embers of Mirrim","compatibility":1,"releases":[{"id":"0100322004844000","region":null}]},{"id":"28b1ba55-cf86-4670-9c4e-7148e823c381","directory":"kholat","title":"Kholat","compatibility":99,"releases":[{"id":"0100F680116A2000","region":null}]},{"id":"28cbdd1b-89ba-4e9b-bce7-04de52efb8dd","directory":"zarvot","title":"Zarvot","compatibility":99,"releases":[{"id":"0100E7900C4C0000","region":null}]},{"id":"28cdb5a8-e701-4673-aba5-0a94c2baa92b","directory":"sisters-royale-five-sisters-under-fire","title":"Sisters Royale: Five Sisters Under Fire","compatibility":1,"releases":[{"id":"0100B3900F02A000","region":null}]},{"id":"28efe0cb-199b-4132-bfaf-7f1821a2cf6a","directory":"phantom-trigger","title":"Phantom Trigger","compatibility":5,"releases":[{"id":"0100C31005A50000","region":null}]},{"id":"28f5a6ea-fca9-44c5-bb9d-8be6b0cf3c3f","directory":"five-nights-at-freddys-4","title":"Five Nights at Freddy's 4","compatibility":99,"releases":[{"id":"010083800E43E000","region":null}]},{"id":"29141afd-6353-428b-aed4-2472e92e6916","directory":"danger-gazers","title":"Danger Gazers","compatibility":3,"releases":[{"id":"0100B3901324A000","region":null}]},{"id":"291f5d68-e1c8-486b-9557-23ac9132dac2","directory":"aery-dreamscape","title":"Aery - Dreamscape","compatibility":99,"releases":[{"id":"0100C5A016C2E000","region":null}]},{"id":"29597c3b-7f4e-41d6-b048-820d40030793","directory":"orbals","title":"Orbals","compatibility":99,"releases":[{"id":"0100372013286000","region":null}]},{"id":"296085e7-34b2-4acb-ac37-99f7fbba578a","directory":"madoris-r","title":"MADORIS R","compatibility":99,"releases":[{"id":"0100A5A01119A000","region":null}]},{"id":"2961af0c-10be-46c3-8e05-d8b3a2d17fa1","directory":"jewel-fever-2-demo","title":"Jewel Fever 2 Demo","compatibility":99,"releases":[{"id":"010021400C6C4000","region":null}]},{"id":"29680773-1ab1-496e-a06d-1979f725babd","directory":"red-colony","title":"Red Colony","compatibility":99,"releases":[{"id":"0100ED90137C6000","region":null}]},{"id":"2975b278-0b2b-4a8c-816d-92277b3fc69c","directory":"worlds-of-magic-planar-conquest","title":"Worlds of Magic: Planar Conquest","compatibility":99,"releases":[{"id":"010000301025A000","region":null}]},{"id":"2976f228-38a7-4f2b-be5b-580ea1e97457","directory":"orbibot","title":"Orbibot","compatibility":0,"releases":[{"id":"010006A0158A8000","region":null}]},{"id":"297ed1c2-911b-4bb7-9d14-626143431603","directory":"automachef","title":"Automachef","compatibility":99,"releases":[{"id":"0100AA800DA42000","region":null}]},{"id":"298ad295-1c30-4143-bb8f-6d4896df8156","directory":"stilstand","title":"Stilstand","compatibility":99,"releases":[{"id":"0100442015FDA000","region":null}]},{"id":"29936ce7-d786-4207-b138-14b027cd3852","directory":"clash-force","title":"Clash Force","compatibility":99,"releases":[{"id":"01005ED0107F4000","region":null}]},{"id":"299653a2-9224-4fd1-868b-9a4f9d5d8d50","directory":"overwhelm","title":"OVERWHELM","compatibility":3,"releases":[{"id":"01005F000CC18000","region":null}]},{"id":"2999b067-96f9-44b8-a17f-e26c1864976f","directory":"ninjin-clash-of-carrots","title":"Ninjin: Clash of Carrots","compatibility":99,"releases":[{"id":"010003C00B868000","region":null}]},{"id":"29ad44d9-0372-4c19-855c-2594449f845c","directory":"travel-mosaics-3-tokyo-animated","title":"Travel Mosaics 3: Tokyo Animated","compatibility":99,"releases":[{"id":"0100102010BFC000","region":null}]},{"id":"29c16c60-63e7-487c-8139-76343086ff9e","directory":"grim-fandango-remastered","title":"Grim Fandango Remastered","compatibility":2,"releases":[{"id":"0100B7900B024000","region":null}]},{"id":"29e2b51f-693e-41ad-9b2b-ec51be9c7ba5","directory":"dawn-of-survivors","title":"Dawn of Survivors","compatibility":99,"releases":[{"id":"010009500C30C000","region":null}]},{"id":"29ea1d88-907d-4ab0-9fab-45ccbd18d64a","directory":"samurai-defender-ninja-warfare","title":"Samurai Defender: Ninja Warfare","compatibility":99,"releases":[{"id":"01002B400873C000","region":null}]},{"id":"29f82e00-a6bd-4dcf-9b4d-622ebe70a45d","directory":"disjunction","title":"Disjunction","compatibility":4,"releases":[{"id":"01000B70122A2000","region":null}]},{"id":"29fce534-5504-46f1-b18a-c33fca5bdc75","directory":"pic-a-pix-pieces","title":"Pic-a-Pix Pieces","compatibility":4,"releases":[{"id":"010065500C980000","region":null}]},{"id":"29ff7102-60c5-4e4f-82bd-d85d7fa75fd3","directory":"vegas-party","title":"Vegas Party","compatibility":99,"releases":[{"id":"01009CD003A0A000","region":null}]},{"id":"2a067c15-b84c-4520-9128-890b2d806df3","directory":"jewel-rotation","title":"Jewel Rotation","compatibility":99,"releases":[{"id":"010060200F954000","region":null}]},{"id":"2a0fab55-8ab3-47fe-81d6-3164b8b0e3f0","directory":"void-trrlm-void-terrarium","title":"void tRrLM(); //Void Terrarium","compatibility":1,"releases":[{"id":"0100FF7010E7E000","region":null}]},{"id":"2a18bdf0-dcf4-44db-a866-10ba8e3b6040","directory":"fire-tonight","title":"Fire Tonight","compatibility":99,"releases":[{"id":"0100810013704000","region":null}]},{"id":"2a270d9f-292f-4a5f-8062-6c3af5fcaada","directory":"tied-together-demo","title":"Tied Together Demo","compatibility":99,"releases":[{"id":"01001DB00CCA6000","region":null}]},{"id":"2a2c1ef6-cec0-4f68-85cf-029ed06dbe0b","directory":"writhe","title":"WRITHE","compatibility":99,"releases":[{"id":"0100567011972000","region":null}]},{"id":"2a3a13a2-c35c-476f-83dc-c6b6642cfa3b","directory":"fort-triumph","title":"Fort Triumph","compatibility":99,"releases":[{"id":"01008DE013C40000","region":null}]},{"id":"2a53acef-ef91-4f34-a1d7-f4d58a417571","directory":"the-stretchers","title":"The Stretchers","compatibility":1,"releases":[{"id":"0100AA400A238000","region":null}]},{"id":"2a548889-e3de-4df7-a7d2-591fec232c11","directory":"rock-n-racing-bundle-grand-prix-rally","title":"Rock 'N Racing Bundle Grand Prix & Rally","compatibility":2,"releases":[{"id":"01000CC012D74000","region":null}]},{"id":"2a5543d7-ada4-4e38-b787-561da8c6aeda","directory":"tricky-towers","title":"Tricky Towers","compatibility":1,"releases":[{"id":"010015F005C8E000","region":null}]},{"id":"2a55a15e-7c69-4c35-95ac-b9df2c5ae55f","directory":"tadpole-treble-encore","title":"Tadpole Treble Encore","compatibility":99,"releases":[{"id":"01004D400C870000","region":null}]},{"id":"2a689c18-22d5-419d-8ec3-69fb0283cec4","directory":"gunbarich-for-nintendo-switch","title":"GUNBARICH for Nintendo Switch","compatibility":1,"releases":[{"id":"01002B2004F76000","region":null}]},{"id":"2a69aa7f-abf4-43c8-a934-c55d9206527b","directory":"radio-commander","title":"Radio Commander","compatibility":99,"releases":[{"id":"0100BAD013B6E000","region":null}]},{"id":"2a70c104-f7b5-4be7-921e-2151f6744dfa","directory":"nyan-cat-lost-in-space","title":"Nyan Cat: Lost in Space","compatibility":99,"releases":[{"id":"010049F00EC30000","region":null}]},{"id":"2a7904bf-9b0c-47ba-9b95-f0692214849d","directory":"cooking-simulator-pizza","title":"Cooking Simulator - Pizza","compatibility":99,"releases":[{"id":"010033C014666000","region":null}]},{"id":"2a7a9dc8-53c8-4026-8ec2-7888fa8dcb8c","directory":"arcade-archives-typhoon-gal","title":"Arcade Archives TYPHOON GAL","compatibility":99,"releases":[{"id":"01006B80156D2000","region":null}]},{"id":"2a81a464-c86e-4211-b657-7c276083000f","directory":"puzzle-chess","title":"Puzzle & Chess","compatibility":99,"releases":[{"id":"0100287014E96000","region":null}]},{"id":"2a8afe20-6cea-46bd-b049-ff851898ee14","directory":"eat-your-letters","title":"Eat your letters","compatibility":99,"releases":[{"id":"0100BBA014FCC000","region":null}]},{"id":"2a8df75e-c542-4e55-8171-06dc7a291d8e","directory":"super-star-blast","title":"Super Star Blast","compatibility":99,"releases":[{"id":"01000E300E2D6000","region":null}]},{"id":"2a8f7b2c-14c7-4002-b564-f884456bf186","directory":"earthlock-demo","title":"EARTHLOCK Demo","compatibility":99,"releases":[{"id":"010067300AFFA000","region":null}]},{"id":"2a965068-ad2c-47ac-9a2e-0e04579d44b1","directory":"spacecolorsrunner","title":"SpaceColorsRunner","compatibility":99,"releases":[{"id":"0100E6700EF4C000","region":null}]},{"id":"2a9bf3c4-747d-4e5a-a509-9cdc003fc47f","directory":"i-am-ball","title":"I am Ball","compatibility":99,"releases":[{"id":"010070A01134A000","region":null}]},{"id":"2a9fa91f-8493-493c-8ab8-0f7e7a29b054","directory":"plunge","title":"Plunge","compatibility":99,"releases":[{"id":"0100F1800B3EC000","region":null}]},{"id":"2aa2fee2-a108-411d-80b7-c18170dcda1d","directory":"picross-s","title":"PICROSS S","compatibility":0,"releases":[{"id":"0100BA0003EEA000","region":null}]},{"id":"2aba7821-5614-415d-a829-4646d9d33d00","directory":"hix-puzzle-islands","title":"HIX: Puzzle Islands","compatibility":99,"releases":[{"id":"01002F70156FA000","region":null}]},{"id":"2abba450-bb63-4986-baef-5fe33dea43ab","directory":"bloodrayne-2-revamped","title":"BloodRayne 2: ReVamped","compatibility":0,"releases":[{"id":"0100BF50147C2000","region":null}]},{"id":"2ac25c48-6f54-4a56-97e2-ea9d5b3c7afd","directory":"gabbuchi","title":"Gabbuchi","compatibility":1,"releases":[{"id":"0100CCB00CBA8000","region":null}]},{"id":"2ad954cc-a4bd-4db9-9359-1e954a2732f2","directory":"hiragana-pixel-party","title":"Hiragana Pixel Party","compatibility":1,"releases":[{"id":"0100F3D008436000","region":null}]},{"id":"2ae69877-53a8-4e95-a062-1f9236b6d289","directory":"still-there","title":"Still There","compatibility":99,"releases":[{"id":"0100EF600F6C4000","region":null}]},{"id":"2aeacdd4-3bb3-416f-8c7a-3047a71c85e3","directory":"super-putty-squad","title":"Super Putty Squad","compatibility":5,"releases":[{"id":"0100331005E8E000","region":null}]},{"id":"2afb0488-46d2-4891-961e-fdf47764fd0d","directory":"rrootage-reloaded","title":"rRootage Reloaded","compatibility":0,"releases":[{"id":"01005CD015986000","region":null}]},{"id":"2b09f667-06f6-41bb-9222-b42e90d0b6e4","directory":"alpaca-ball-allstars","title":"Alpaca Ball: Allstars","compatibility":99,"releases":[{"id":"0100DE70131F4000","region":null}]},{"id":"2b0cfeed-7ebc-4065-a094-597bedd89eaf","directory":"secrets-of-magic-the-book-of-spells","title":"Secrets of Magic - The Book of Spells","compatibility":99,"releases":[{"id":"01003CB00CFD6000","region":null}]},{"id":"2b16a843-03b2-40f1-9023-87698ec8fb8f","directory":"uoris-dx","title":"UORiS DX","compatibility":99,"releases":[{"id":"0100F6300F94C000","region":null}]},{"id":"2b194c6d-a81d-43ec-8e8f-7634e6cd5faa","directory":"bezier-second-edition","title":"Bezier: Second Edition","compatibility":99,"releases":[{"id":"0100F1400FC9A000","region":null}]},{"id":"2b1dc18c-68cb-491e-964b-85c87c27d99f","directory":"minecraft-story-mode-season-two","title":"Minecraft: Story Mode - Season Two","compatibility":3,"releases":[{"id":"01003EF007ABA000","region":null}]},{"id":"2b24f456-7102-40db-bbe8-3a588c5bf315","directory":"arcade-archives-vs-castlevania","title":"Arcade Archives VS. CASTLEVANIA","compatibility":4,"releases":[{"id":"010029600EAE4000","region":null}]},{"id":"2b304feb-e4b8-43ae-b60e-a628550e6f47","directory":"firefighters-airport-heroes","title":"Firefighters - Airport Heroes","compatibility":99,"releases":[{"id":"010097500FBFA000","region":null}]},{"id":"2b3c1e1b-d779-47b4-b6b9-4f0f2f65bb84","directory":"ritual-crown-of-horns","title":"Ritual: Crown of Horns","compatibility":2,"releases":[{"id":"010042500FABA000","region":null}]},{"id":"2b3c5d30-9150-41c0-8c5f-82d7b60be2d4","directory":"sokobond","title":"Sokobond","compatibility":99,"releases":[{"id":"0100DF8013304000","region":null}]},{"id":"2b492945-407b-4f0e-9e29-8b54c071251e","directory":"raging-justice","title":"Raging Justice","compatibility":99,"releases":[{"id":"01003D00099EC000","region":null}]},{"id":"2b53a767-9d50-455a-833b-4681f188f239","directory":"gnomes-garden-2","title":"Gnomes Garden 2","compatibility":99,"releases":[{"id":"010008D00CCEC000","region":null}]},{"id":"2b5586c3-dd6f-489a-8cc2-2a8d06a19373","directory":"stellar-interface","title":"Stellar Interface","compatibility":99,"releases":[{"id":"01005A700C954000","region":null}]},{"id":"2b585edd-36b3-4055-ad61-b7b4296983d5","directory":"regina-mac","title":"Regina & Mac","compatibility":99,"releases":[{"id":"0100B56011B90000","region":null}]},{"id":"2b594bfb-9c3a-4220-8556-ed064d36fb03","directory":"angels-of-death","title":"Angels of Death","compatibility":1,"releases":[{"id":"0100AE000AEBC000","region":null}]},{"id":"2b64566e-8e40-40cd-8623-ab978b28528c","directory":"no-heroes-here","title":"No Heroes Here","compatibility":3,"releases":[{"id":"01009B400ACBA000","region":null}]},{"id":"2b655829-9398-4602-b04f-34e93f7a013e","directory":"street-outlaws-the-list","title":"Street Outlaws: The List","compatibility":99,"releases":[{"id":"010012400D202000","region":null}]},{"id":"2b80ad41-57f6-457b-974c-09ab898abbb9","directory":"freecell-solitaire-collection","title":"FreeCell Solitaire Collection","compatibility":99,"releases":[{"id":"0100E11014E68000","region":null}]},{"id":"2b815b5b-9998-4d31-9c31-797fd3ab856c","directory":"halloween-pinball","title":"Halloween Pinball","compatibility":99,"releases":[{"id":"0100E0D00C336000","region":null}]},{"id":"2b84296b-948d-4b10-ba6e-218d291f3f95","directory":"unlock-the-king","title":"Unlock The King","compatibility":99,"releases":[{"id":"0100AB2010B4C000","region":null}]},{"id":"2b8a3cd6-cd1d-4533-b41d-38fabe4aa304","directory":"my-universe-doctors-nurses","title":"My Universe - Doctors & Nurses","compatibility":99,"releases":[{"id":"01009CE015FD4000","region":null}]},{"id":"2ba1dd5a-6e24-46b1-818f-1d28bc9fbb62","directory":"darkest-dungeon","title":"Darkest Dungeon","compatibility":5,"releases":[{"id":"01008F1008DA6000","region":null}]},{"id":"2ba56d23-0c7a-4370-b3bb-4107c4c4b6ac","directory":"azurebreak-heroes","title":"Azurebreak Heroes","compatibility":99,"releases":[{"id":"010031D012BA4000","region":null}]},{"id":"2ba8eb51-9db9-446f-b291-338d2673f517","directory":"rekt-high-octane-stunts","title":"REKT! High Octane Stunts","compatibility":99,"releases":[{"id":"0100F1900B144000","region":null}]},{"id":"2ba99096-12b9-4471-9e78-5149d57f4712","directory":"salad-bar-tycoon","title":"Salad Bar Tycoon","compatibility":99,"releases":[{"id":"0100708012ECC000","region":null}]},{"id":"2baec860-a7d8-4013-b34c-5766b8a8d805","directory":"dual-brain-vol3-shapes","title":"Dual Brain Vol.3: Shapes","compatibility":1,"releases":[{"id":"0100C0F01078E000","region":null}]},{"id":"2bcce98f-5c40-4e9a-8a68-0a4329cc4cab","directory":"animal-pals-bubble-pop","title":"Animal Pals Bubble Pop","compatibility":99,"releases":[{"id":"010049501393A000","region":null}]},{"id":"2bd58ca4-cac9-4207-9721-57b9e4111c24","directory":"doom","title":"DOOM","compatibility":3,"releases":[{"id":"0100416004C00000","region":null}]},{"id":"2c049962-d0fa-4377-8a13-bb329d84d14d","directory":"undead-battle-royale","title":"Undead Battle Royale","compatibility":99,"releases":[{"id":"010033E014E3E000","region":null}]},{"id":"2c0fd009-5ee0-47ab-8fe7-fc44b042a837","directory":"cyanide-happiness-freakpocalypse","title":"Cyanide & Happiness - Freakpocalypse","compatibility":99,"releases":[{"id":"0100D0B01135C000","region":null}]},{"id":"2c14599d-7961-48b0-9880-a02e9486eb4a","directory":"creaks","title":"Creaks","compatibility":2,"releases":[{"id":"0100B0E010CF8000","region":null}]},{"id":"2c1d4f44-c17b-4ad8-8130-3e2a5e027bf3","directory":"gris","title":"GRIS","compatibility":0,"releases":[{"id":"0100E1700C31C000","region":null}]},{"id":"2c28f1f2-68a2-45a5-997b-68b6d7b5430e","directory":"mimpi-dreams","title":"Mimpi Dreams","compatibility":4,"releases":[{"id":"0100C41009E1A000","region":null}]},{"id":"2c57de46-5599-4899-852f-52bae94060d0","directory":"endocrisis","title":"Endocrisis","compatibility":99,"releases":[{"id":"0100A340154E6000","region":null}]},{"id":"2c668835-a72d-4cb0-9acb-a830ca3faf9e","directory":"asterix-and-obelix-xxl-2","title":"Asterix & Obelix XXL 2","compatibility":4,"releases":[{"id":"010050400BD38000","region":null}]},{"id":"2c6e66e5-eac6-4651-b00d-03105b70fdfd","directory":"blood-will-be-spilled","title":"Blood will be Spilled","compatibility":99,"releases":[{"id":"0100E060102AA000","region":null}]},{"id":"2c6fe20e-aa4e-4743-a4cf-cf9b38f0e285","directory":"more-dark","title":"More Dark","compatibility":99,"releases":[{"id":"01004230123E0000","region":null}]},{"id":"2c8d0849-4211-4cd3-b6e5-8fd5cb0ce2f2","directory":"laid-back-camp-virtual-fumoto-campsite","title":"Laid-Back Camp - Virtual - Fumoto Campsite","compatibility":0,"releases":[{"id":"0100030012E82000","region":null}]},{"id":"2c97f94b-9c6f-47b6-b3c2-3371f143f341","directory":"lost-lands-3-the-golden-curse","title":"Lost Lands 3: The Golden Curse","compatibility":99,"releases":[{"id":"0100156014C6A000","region":null}]},{"id":"2cb127eb-e996-43c0-af31-5153c3638b5a","directory":"hindsight-20-20-wrath-of-the-raakshasa","title":"Hindsight 20/20 - Wrath of the Raakshasa","compatibility":99,"releases":[{"id":"01005E3008452000","region":null}]},{"id":"2cbe4c69-0ba9-4a3a-ab9e-3d5e553a12a5","directory":"arcade-archives-wild-western","title":"Arcade Archives WILD WESTERN","compatibility":4,"releases":[{"id":"01001B000D8B6000","region":null}]},{"id":"2cc6c616-b346-4b1e-9c96-583a876c0643","directory":"the-sushi-spinnery","title":"The Sushi Spinnery","compatibility":99,"releases":[{"id":"010044200D2C4000","region":null}]},{"id":"2ccb3da9-5ac0-4a84-951e-63f52b208445","directory":"shift-happens-demo","title":"Shift Happens Demo","compatibility":99,"releases":[{"id":"010029E00B0D8000","region":null}]},{"id":"2cd09981-8d61-4193-97a4-b2c239bf4e05","directory":"nightmare-boy","title":"Nightmare Boy","compatibility":99,"releases":[{"id":"01005F4009112000","region":null}]},{"id":"2cdae8da-96a7-4233-932c-91c663d17d20","directory":"arcade-archives-shingen-samurai-fighter","title":"Arcade Archives SHINGEN SAMURAI-FIGHTER","compatibility":99,"releases":[{"id":"0100A9F014DB6000","region":null}]},{"id":"2cf744f1-784c-4cb1-9e9d-85ae51cd0d81","directory":"treadnauts","title":"Treadnauts","compatibility":99,"releases":[{"id":"01006EB004B0E000","region":null}]},{"id":"2d03e4ab-09db-4f60-82fd-e5026a02857b","directory":"robbie-swifthand-and-the-orb-of-mysteries","title":"Robbie Swifthand and the Orb of Mysteries","compatibility":2,"releases":[{"id":"010026500DAA8000","region":null}]},{"id":"2d20206e-85fa-436a-b7d0-83f1af57f3d6","directory":"monochrome-order","title":"Monochrome Order","compatibility":1,"releases":[{"id":"010075200F1CA000","region":null}]},{"id":"2d205f94-139d-4f51-ae83-2bcc89e20a82","directory":"paw-patrol-mighty-pups-save-adventure-bay","title":"PAW Patrol Mighty Pups Save Adventure Bay","compatibility":1,"releases":[{"id":"01001F201121E000","region":null}]},{"id":"2d2288a3-c9b7-4b6c-bf83-4074725ba702","directory":"aca-neogeo-real-bout-fatal-fury","title":"ACA NEOGEO REAL BOUT FATAL FURY","compatibility":2,"releases":[{"id":"010030F008730000","region":null}]},{"id":"2d311550-703e-4d03-bad2-cec598b5dbac","directory":"head-over-heels","title":"Head over Heels","compatibility":99,"releases":[{"id":"010048A0151CA000","region":null}]},{"id":"2d342f9b-dff4-42ab-8d05-394afe906c1f","directory":"vaporum","title":"Vaporum","compatibility":99,"releases":[{"id":"010030F00CA1E000","region":null}]},{"id":"2d356936-b25b-4d64-b271-b02a97276f2d","directory":"arcade-archives-circus-charlie","title":"Arcade Archives CIRCUS CHARLIE","compatibility":99,"releases":[{"id":"0100557012752000","region":null}]},{"id":"2d3a928c-b90c-437e-a181-fdedb3d3816d","directory":"the-almost-gone","title":"The Almost Gone","compatibility":1,"releases":[{"id":"010079A0112BE000","region":null}]},{"id":"2d4c03c3-d5db-4668-8268-4f1f417a9696","directory":"jdm-racing","title":"JDM Racing","compatibility":99,"releases":[{"id":"010002D00EDD0000","region":null}]},{"id":"2d5da000-8676-428d-88b5-ce3ff7c13fb5","directory":"professor-lupo-and-his-horrible-pets","title":"Professor Lupo and his Horrible Pets","compatibility":0,"releases":[{"id":"010018300C83A000","region":null}]},{"id":"2d5e8023-e179-48b4-b7c6-c99c5bab208b","directory":"remothered-broken-porcelain","title":"Remothered: Broken Porcelain","compatibility":3,"releases":[{"id":"0100FBD00F5F6000","region":null}]},{"id":"2d60e067-dc8a-48c3-a4f5-ba9825f67e95","directory":"please-the-gods","title":"Please The Gods","compatibility":99,"releases":[{"id":"0100E5500FE0A000","region":null}]},{"id":"2d62c5d1-e638-4fa4-9c25-08f64ea68219","directory":"the-church-in-the-darkness","title":"The Church in the Darkness","compatibility":99,"releases":[{"id":"010000B00D800000","region":null}]},{"id":"2d6fa37f-5e74-466e-ac68-219045ce79f9","directory":"just-glide","title":"Just Glide","compatibility":99,"releases":[{"id":"01002C301033E000","region":null}]},{"id":"2d7755c9-a089-4008-86a9-97208358d316","directory":"alchemists-castle","title":"Alchemist's Castle","compatibility":0,"releases":[{"id":"010001E00F75A000","region":null}]},{"id":"2d793e23-4f89-4ad1-b4b1-ec9b70938dca","directory":"realmyst-masterpiece-edition","title":"realMyst: Masterpiece Edition","compatibility":2,"releases":[{"id":"0100E64010BAA000","region":null}]},{"id":"2d7fb843-820d-4260-bd8c-ee1b9f37e854","directory":"bonfire-peaks","title":"Bonfire Peaks","compatibility":99,"releases":[{"id":"010057C01330A000","region":null}]},{"id":"2d8543f6-e27a-410a-85b0-16a0c89f7b32","directory":"aragami-shadow-edition","title":"Aragami: Shadow Edition","compatibility":99,"releases":[{"id":"010071800BA74000","region":null}]},{"id":"2d85d9be-78a5-4c4e-93aa-f94a2b6e8223","directory":"bloxiq","title":"bloxiq","compatibility":99,"releases":[{"id":"01002F300AC18000","region":null}]},{"id":"2d9675d1-1e34-4d4c-a458-aadbdb0935ea","directory":"bioshock-2-remastered","title":"BioShock 2 Remastered","compatibility":4,"releases":[{"id":"01002620102C6000","region":null}]},{"id":"2d9c1475-54aa-4b77-8759-22fd2e94eeb5","directory":"dark-arcana-the-carnival","title":"Dark Arcana: The Carnival","compatibility":99,"releases":[{"id":"01003D301357A000","region":null}]},{"id":"2da01d0f-bacd-4113-ba74-3c27727acb7e","directory":"aca-neogeo-samurai-shodown-iii","title":"ACA NEOGEO SAMURAI SHODOWN III","compatibility":99,"releases":[{"id":"0100804008794000","region":null}]},{"id":"2da41c46-2ca3-4f4d-a2c2-2917f12361e7","directory":"doubles-hard","title":"Doubles Hard","compatibility":99,"releases":[{"id":"0100024011858000","region":null}]},{"id":"2db69998-2c95-447f-bc0f-3c0ff616e902","directory":"caveman-chuck-prehistoric-adventure","title":"Caveman Chuck: Prehistoric Adventure","compatibility":99,"releases":[{"id":"010080C00AC3C000","region":null}]},{"id":"2dc32575-1ca5-4c8f-8cc5-74f8b4503429","directory":"save-koch","title":"Save Koch","compatibility":99,"releases":[{"id":"0100C8300FA90000","region":null}]},{"id":"2dd151e2-3031-48d8-8ae0-e72df746cfec","directory":"sunless-sea-zubmariner-edition","title":"Sunless Sea: Zubmariner Edition","compatibility":3,"releases":[{"id":"01005A700ECF8000","region":null}]},{"id":"2de4b2ff-9ecf-4501-b28b-d3d1c0b2b894","directory":"onigiri","title":"Onigiri","compatibility":99,"releases":[{"id":"0100BC200B99E000","region":null}]},{"id":"2de9ca7d-afe0-41aa-8159-6a26d9fa31f5","directory":"dark-thrones","title":"Dark Thrones","compatibility":1,"releases":[{"id":"01002D5014EB4000","region":null}]},{"id":"2deab351-bd80-4ef6-9c81-90fcc3e32400","directory":"light-tracer","title":"Light Tracer","compatibility":0,"releases":[{"id":"010087700D07C000","region":null}]},{"id":"2df885ac-a961-400c-bc99-23e09a5e0d23","directory":"truck-simulator","title":"Truck Simulator","compatibility":99,"releases":[{"id":"010066D013354000","region":null}]},{"id":"2e00eee8-1a21-4d26-8deb-a397073d902e","directory":"toree-2","title":"Toree 2","compatibility":99,"releases":[{"id":"0100C7301658C000","region":null}]},{"id":"2e0577a9-ab69-4364-b462-bf80afc9791d","directory":"aca-neogeo-world-heroes-2","title":"ACA NEOGEO WORLD HEROES 2","compatibility":99,"releases":[{"id":"01001BD00915A000","region":null}]},{"id":"2e224d9c-899f-40a3-8a1a-3f53d3e5ed3e","directory":"asdivine-menace","title":"Asdivine Menace","compatibility":1,"releases":[{"id":"0100FE000EC24000","region":null}]},{"id":"2e2610c1-fb3c-4e99-98f0-6de79bb8855e","directory":"transistor","title":"Transistor","compatibility":3,"releases":[{"id":"0100BE500BEA2000","region":null}]},{"id":"2e34b406-84cf-42b7-9265-01783497231a","directory":"red-rope-dont-fall-behind","title":"Red Rope: Don't Fall Behind +","compatibility":99,"releases":[{"id":"01002800110CA000","region":null}]},{"id":"2e42827f-837a-4944-914d-5a168cae0f9d","directory":"swap-this","title":"Swap This!","compatibility":1,"releases":[{"id":"010005500ADDC000","region":null}]},{"id":"2e42fd87-ae31-4832-a9d7-905a234ce9ae","directory":"duel-princess","title":"Duel Princess","compatibility":0,"releases":[{"id":"0100EDD016562000","region":null}]},{"id":"2e64dc24-624d-4622-b35b-8a658606a23b","directory":"dininho-space-adventure","title":"Dininho Space Adventure","compatibility":99,"releases":[{"id":"010027E0158A6000","region":null}]},{"id":"2e6ff344-f455-4fa7-96cf-11d5d9eaadcd","directory":"samurai-shodown-2","title":"SAMURAI SHODOWN!2","compatibility":0,"releases":[{"id":"010095300F778000","region":null}]},{"id":"2e751254-d567-4c85-92f1-250e102e54e9","directory":"mentori-puzzle","title":"Mentori Puzzle","compatibility":99,"releases":[{"id":"010080B00AF0E000","region":null}]},{"id":"2e891f14-70fa-48de-a1f1-1ed0c2ef5244","directory":"black-book","title":"Black Book","compatibility":99,"releases":[{"id":"0100DD1014AB8000","region":null}]},{"id":"2e9c54c3-5dcf-470b-a5c8-1adf17213268","directory":"smelter","title":"Smelter","compatibility":2,"releases":[{"id":"0100B45010E9C000","region":null}]},{"id":"2eadb046-8cc2-4837-a561-40049f22f6d7","directory":"arcade-archives-golf","title":"Arcade Archives GOLF","compatibility":99,"releases":[{"id":"01005BA00E6BE000","region":null}]},{"id":"2eb0cdad-043b-46d4-bece-9f78f2007ecc","directory":"maitetsupure-station","title":"Maitetsu:Pure Station","compatibility":99,"releases":[{"id":"0100D9900F220000","region":null}]},{"id":"2eb58c74-78a7-4f83-bbbe-3b32d1fb830a","directory":"dont-forget-me","title":"Don't Forget Me","compatibility":99,"releases":[{"id":"01006DF015F00000","region":null}]},{"id":"2ec5de8f-8d9c-4ea0-bba6-0a315dc69e9c","directory":"behold-the-kickmen","title":"Behold the Kickmen","compatibility":99,"releases":[{"id":"0100558010B26000","region":null}]},{"id":"2ecbbf44-dfc8-4347-825c-303d18dad4fc","directory":"slam-land","title":"Slam Land","compatibility":99,"releases":[{"id":"01004E400A48C000","region":null}]},{"id":"2ed15f64-0abd-4758-9b0a-912eb43cf853","directory":"jigsaw-fun-piece-it-together","title":"Jigsaw Fun: Piece It Together!","compatibility":99,"releases":[{"id":"01008F1012DF4000","region":null}]},{"id":"2ed69050-8b03-480c-b6e1-1c6af4599711","directory":"cytus-a","title":"Cytus α","compatibility":1,"releases":[{"id":"010063100B2C2000","region":null}]},{"id":"2f06f14e-df13-4397-940a-7098ce561dc4","directory":"we-the-revolution","title":"We. The Revolution","compatibility":99,"releases":[{"id":"010045C00E27C000","region":null}]},{"id":"2f092c64-0cfa-4d0e-82fd-49b38a2fac34","directory":"7-billion-humans","title":"7 Billion Humans","compatibility":1,"releases":[{"id":"0100DA900B67A000","region":null}]},{"id":"2f133c3a-697d-4ed2-9a62-6c8ccadc137e","directory":"valkyria-chronicles-4","title":"Valkyria Chronicles 4","compatibility":4,"releases":[{"id":"01005C600AC68000","region":null}]},{"id":"2f1d5455-2701-437b-9276-8f1213c3710d","directory":"baobabs-mausoleum-ep2-1313-barnabas-dead-end-drive","title":"Baobabs Mausoleum Ep.2: 1313 Barnabas Dead End Drive","compatibility":99,"releases":[{"id":"010079300E976000","region":null}]},{"id":"2f207759-4a12-447b-a7bd-aab223f3734b","directory":"speed-brawl","title":"Speed Brawl","compatibility":5,"releases":[{"id":"010040F00AA9A000","region":null}]},{"id":"2f39f7c1-9d07-42f0-8ef1-81c54fdff93d","directory":"yokus-island-express","title":"Yoku's Island Express","compatibility":4,"releases":[{"id":"010002D00632E000","region":null}]},{"id":"2f3f7b28-40dc-4245-9970-54cf35d467f5","directory":"the-jackbox-party-pack","title":"The Jackbox Party Pack","compatibility":99,"releases":[{"id":"0100AE5003EE6000","region":null}]},{"id":"2f47c60c-43e4-437a-9b49-7505724106bb","directory":"defenders-of-ekron-definitive-edition","title":"Defenders of Ekron: Definitive Edition","compatibility":99,"releases":[{"id":"01008BB00F824000","region":null}]},{"id":"2f559e7e-837f-4252-9571-99aa36675ce8","directory":"tux-and-fanny","title":"Tux and Fanny","compatibility":99,"releases":[{"id":"0100E3301426E000","region":null}]},{"id":"2f6128d9-502f-47d4-bf5a-638d7478c592","directory":"atelier-firis-the-alchemist-and-the-mysterious-journey-dx","title":"Atelier Firis: The Alchemist and the Mysterious Journey DX","compatibility":99,"releases":[{"id":"010023201421E000","region":null}]},{"id":"2f70a015-ed03-4d4c-9f9f-8f9e4735db10","directory":"lofi-ping-pong","title":"Lofi Ping Pong","compatibility":99,"releases":[{"id":"0100D2C013288000","region":null}]},{"id":"2f73dcf4-f022-4f5e-8bd3-1ff2594aefa0","directory":"akibas-trip-hellbound-debriefed","title":"AKIBA'S TRIP: Hellbound & Debriefed","compatibility":99,"releases":[{"id":"01009E8012976000","region":null}]},{"id":"2f8787a9-3732-41d1-ab2c-9a9013ea3b02","directory":"kotodama-the-7-mysteries-of-fujisawa","title":"Kotodama: The 7 Mysteries of Fujisawa","compatibility":0,"releases":[{"id":"010046600CCA4000","region":null}]},{"id":"2fa16b43-f78d-4077-b3f6-19162d7dc700","directory":"armello","title":"Armello","compatibility":1,"releases":[{"id":"010070A00A5F4000","region":null}]},{"id":"2fa346a7-ec9c-4c3b-8556-d9ff54ce08d2","directory":"mowin-and-throwin","title":"Mowin' & Throwin'","compatibility":99,"releases":[{"id":"01001C500D850000","region":null}]},{"id":"2fadd10c-399a-4d73-b0c8-49b21ef8b601","directory":"baldurs-gate-dark-alliance","title":"Baldur's Gate: Dark Alliance","compatibility":0,"releases":[{"id":"0100FD1014726000","region":null}]},{"id":"2faec41b-9a72-4a15-b58b-bcce4665abec","directory":"freddy-spaghetti-2","title":"Freddy Spaghetti 2","compatibility":99,"releases":[{"id":"0100329015900000","region":null}]},{"id":"2fb77223-9b73-4427-a2e9-487d987b692c","directory":"mexican-train-dominoes-gold","title":"Mexican Train Dominoes Gold","compatibility":99,"releases":[{"id":"01007320134EE000","region":null}]},{"id":"2fc91efa-0b6c-40ac-9ed0-2da2af13a05c","directory":"inked-a-tale-of-love","title":"Inked: A Tale of Love","compatibility":99,"releases":[{"id":"01008B801471C000","region":null}]},{"id":"2fe91d42-a9b4-4586-ab3a-628b6117d34f","directory":"everyday-todays-menu-for-emiya-family","title":"Everyday♪ Today's MENU for EMIYA Family","compatibility":1,"releases":[{"id":"010031B012254000","region":null}]},{"id":"2ff80137-7601-4fd4-b7fb-3f17591c5dfb","directory":"oddworld-munchs-oddysee","title":"Oddworld: Munch's Oddysee","compatibility":4,"releases":[{"id":"0100BB500EE3C000","region":null}]},{"id":"300ae4ff-2934-4866-92b3-84627024870f","directory":"grisaia-phantom-trigger-03","title":"GRISAIA PHANTOM TRIGGER 03","compatibility":3,"releases":[{"id":"01005250123B8000","region":null}]},{"id":"301ee9be-e52e-400b-aeec-bab95afb8232","directory":"project-starship-x","title":"Project Starship X","compatibility":1,"releases":[{"id":"0100EC5012BDE000","region":null}]},{"id":"30240933-1ef4-42a3-8275-278f5bab0eb4","directory":"my-hero-ones-justice-2","title":"MY HERO ONE'S JUSTICE 2","compatibility":2,"releases":[{"id":"01007E700DBF6000","region":null}]},{"id":"3024941e-4396-4584-90d7-e6a31870df10","directory":"olliolli-switch-stance","title":"OlliOlli: Switch Stance","compatibility":99,"releases":[{"id":"0100E0200B980000","region":null}]},{"id":"30260332-0135-4c51-a352-a1f2d395f392","directory":"embers-of-mirrim-demo","title":"Embers of Mirrim Demo","compatibility":99,"releases":[{"id":"01008AF0080B8000","region":null}]},{"id":"30303741-f964-4b81-84d1-d469dc105d25","directory":"max-the-curse-of-brotherhood-demo","title":"Max: The Curse of Brotherhood (Demo)","compatibility":99,"releases":[{"id":"0100A9A0088FE000","region":null}]},{"id":"30333a11-79fe-488d-844c-aaeea0167be6","directory":"arcade-archives-vs-wrecking-crew","title":"Arcade Archives VS. WRECKING CREW","compatibility":99,"releases":[{"id":"0100B490113C8000","region":null}]},{"id":"303d2984-6283-40c6-8d2c-049cdbc15336","directory":"delta-squad","title":"Delta Squad","compatibility":99,"releases":[{"id":"0100C5E00E4E0000","region":null}]},{"id":"3048c0d6-825e-4651-ab7b-3edc09a620ab","directory":"aviary-attorney-definitive-edition","title":"Aviary Attorney: Definitive Edition","compatibility":1,"releases":[{"id":"0100B280106A0000","region":null}]},{"id":"30530b59-047c-4c25-aa10-b15077432445","directory":"the-witcher-3-wild-hunt-complete-edition","title":"The Witcher 3: Wild Hunt — Complete Edition","compatibility":5,"releases":[{"id":"0100BFE00E9CA000","region":null}]},{"id":"3059c05a-cc3f-40ef-847c-4db825ee73f7","directory":"i-zombie","title":"I, Zombie","compatibility":99,"releases":[{"id":"0100429006A06000","region":null}]},{"id":"3071ae4e-8265-404e-aaef-9daff482afa5","directory":"the-men-of-yoshiwara-kikuya","title":"The Men of Yoshiwara: Kikuya","compatibility":99,"releases":[{"id":"0100E95006B30000","region":null}]},{"id":"30a37296-1e38-4038-8cb4-04ad8feae446","directory":"pooplers","title":"Pooplers","compatibility":99,"releases":[{"id":"01005C5011086000","region":null}]},{"id":"30a6d8eb-9b56-4f5a-b758-9c19195d01dd","directory":"escape-from-life-inc","title":"Escape from Life Inc","compatibility":99,"releases":[{"id":"010023E013244000","region":null}]},{"id":"30aac3b7-a998-4a88-b264-a0f0d43437bc","directory":"mutazione","title":"Mutazione","compatibility":99,"releases":[{"id":"0100D750132D8000","region":null}]},{"id":"30b4484f-d9a1-4326-a2e1-ff26d7875911","directory":"taxi-sim-2020","title":"Taxi Sim 2020","compatibility":99,"releases":[{"id":"0100CD4011A18000","region":null}]},{"id":"30b6c15a-cb3e-48ea-8e63-88e31ea8085c","directory":"farm-together","title":"Farm Together","compatibility":99,"releases":[{"id":"010086B00BB50000","region":null}]},{"id":"30beec3d-8258-4c01-8492-4cbed8af655a","directory":"ultracore","title":"Ultracore","compatibility":1,"releases":[{"id":"0100E5C00DC46000","region":null}]},{"id":"30d5b111-ef51-40df-a9bd-ae93e0179f4e","directory":"kuso","title":"kuso","compatibility":99,"releases":[{"id":"01007C000C314000","region":null}]},{"id":"30e6c464-488f-493c-a5c3-8bb38f265008","directory":"astebreed","title":"Astebreed","compatibility":99,"releases":[{"id":"010057A00C1F6000","region":null}]},{"id":"30ecfd04-c26a-4d7d-a4df-465a0d8d618b","directory":"eqi","title":"EQI","compatibility":99,"releases":[{"id":"01000FA0149B6000","region":null}]},{"id":"310377b8-239e-4166-b18b-f1edd0fd4479","directory":"afl-evolution-2","title":"AFL Evolution 2","compatibility":99,"releases":[{"id":"01001B400D334000","region":null}]},{"id":"311a9a38-e0d1-42a1-b905-d63469d03b61","directory":"jay-and-silent-bob-mall-brawl","title":"Jay and Silent Bob: Mall Brawl","compatibility":1,"releases":[{"id":"0100CD1010740000","region":null}]},{"id":"311e098c-6b32-47a7-be6e-459af132139b","directory":"wayout","title":"Wayout","compatibility":99,"releases":[{"id":"01008E300E400000","region":null}]},{"id":"31334fe8-aa20-47e1-b1ca-6349bcfe3ace","directory":"titan-chaser","title":"Titan Chaser","compatibility":1,"releases":[{"id":"0100B4601500E000","region":null}]},{"id":"31392f21-3cc3-423f-ac55-6195ae03bfa8","directory":"smash-club-streets-of-shmeenis","title":"Smash Club: Streets of Shmeenis","compatibility":99,"releases":[{"id":"0100D6F013856000","region":null}]},{"id":"3143cc2e-4152-465b-8cd0-3fff8dec24bf","directory":"cake-laboratory","title":"Cake Laboratory","compatibility":99,"releases":[{"id":"0100B8E00CBB0000","region":null}]},{"id":"314b1501-5b88-4279-a25c-863b7c0f3fdf","directory":"teddy-the-wanderer-mountain-hike","title":"Teddy The Wanderer: Mountain Hike","compatibility":99,"releases":[{"id":"010078300DA14000","region":null}]},{"id":"314b3628-16d9-413c-a43c-9a79135ac09e","directory":"arcade-archives-twinbee","title":"Arcade Archives TwinBee","compatibility":99,"releases":[{"id":"010050200FFD2000","region":null}]},{"id":"314b39c3-97bc-4a4e-96ea-36645b9b2ac4","directory":"skate-city","title":"Skate City","compatibility":0,"releases":[{"id":"0100134011E32000","region":null}]},{"id":"3151ec43-5278-436b-9258-eb6c84f83777","directory":"call-of-cthulhu","title":"Call of Cthulhu","compatibility":0,"releases":[{"id":"010046000EE40000","region":null}]},{"id":"316155f2-34f9-4455-8c8e-b6d96a10227d","directory":"defend-the-kingdom","title":"Defend the Kingdom","compatibility":99,"releases":[{"id":"0100BBE015384000","region":null}]},{"id":"31856a5e-9846-4b09-9ee4-f1f4fe323289","directory":"waifu-uncovered","title":"Waifu Uncovered","compatibility":2,"releases":[{"id":"0100B130119D0000","region":null}]},{"id":"3186e43b-70bc-422d-9e2c-e411b5898947","directory":"bit-dungeon-plus","title":"Bit Dungeon Plus","compatibility":99,"releases":[{"id":"0100C6E0047C8000","region":null}]},{"id":"318c3d82-af21-4762-8288-9567c6b6e02e","directory":"no-time-to-relax","title":"No Time to Relax","compatibility":99,"releases":[{"id":"0100DE600FDFE000","region":null}]},{"id":"31a5f266-e8ad-46c1-a2cf-af773b958ddb","directory":"gaps-by-powgi","title":"Gaps by POWGI","compatibility":99,"releases":[{"id":"0100C4E015078000","region":null}]},{"id":"31a80cb7-b6f3-4411-b739-a60efb056f50","directory":"indivisible","title":"Indivisible","compatibility":2,"releases":[{"id":"01001D3003FDE000","region":null}]},{"id":"31acc5fa-f768-4a04-9cc2-06b1aafa7c4e","directory":"picross-s6","title":"PICROSS S6","compatibility":0,"releases":[{"id":"010025901432A000","region":null}]},{"id":"31bba738-76f5-4685-98b6-5c0815670f9e","directory":"sticky-monsters","title":"Sticky Monsters","compatibility":99,"releases":[{"id":"0100AA4014136000","region":null}]},{"id":"31c03d2d-e36f-44c4-b33e-e1f2c33bb073","directory":"one-step-from-eden","title":"One Step From Eden","compatibility":2,"releases":[{"id":"010048800F41C000","region":null}]},{"id":"31d60154-2d11-4394-b89c-db32415a64e6","directory":"what-the-zombies","title":"What The Zombies?!","compatibility":99,"releases":[{"id":"0100341016214000","region":null}]},{"id":"31dfbaf1-3ff6-40f4-b98b-2ba1d2e92675","directory":"monster-hunter-generations-ultimate-demo","title":"MONSTER HUNTER GENERATIONS ULTIMATE™ Demo","compatibility":99,"releases":[{"id":"0100E6400B1EA000","region":null}]},{"id":"31e178d1-349b-4cb4-bf33-600bc93898eb","directory":"blindy","title":"Blindy","compatibility":99,"releases":[{"id":"01007BF00FCB0000","region":null}]},{"id":"31f158e0-c83b-4527-a7d8-11726a020bb4","directory":"katamari-damacy-reroll","title":"Katamari Damacy REROLL","compatibility":1,"releases":[{"id":"0100D7000C2C6000","region":null}]},{"id":"31fbcf1c-7110-47dd-8007-37632ee8a4e1","directory":"rogue-singularity","title":"Rogue Singularity","compatibility":99,"releases":[{"id":"010068400ABB6000","region":null}]},{"id":"31fec938-4702-4ad0-bcb7-b3f036ba56c7","directory":"super-daryl-deluxe","title":"Super Daryl Deluxe","compatibility":99,"releases":[{"id":"010078800869A000","region":null}]},{"id":"32035180-d8ef-4b2f-bec7-397d4d30f67b","directory":"jumanji-the-video-game","title":"JUMANJI: The Video Game","compatibility":3,"releases":[{"id":"0100B4D00C76E000","region":null}]},{"id":"321560be-10e6-409e-bb29-41ba851f5d69","directory":"aca-neogeo-ninja-commando","title":"ACA NEOGEO NINJA COMMANDO","compatibility":5,"releases":[{"id":"01007E800AFB6000","region":null}]},{"id":"32169608-10b0-4cd3-aca2-9f8135c95697","directory":"the-secret-order-shadow-breach","title":"The Secret Order: Shadow Breach","compatibility":99,"releases":[{"id":"010044F0114B8000","region":null}]},{"id":"321d5852-f688-4623-8981-847f6f274f0b","directory":"phogs","title":"PHOGS!","compatibility":99,"releases":[{"id":"0100DA400F624000","region":null}]},{"id":"322680d9-3c18-40b9-84ff-0b01dc67a5c7","directory":"jiffy","title":"Jiffy","compatibility":5,"releases":[{"id":"01008330134DA000","region":null}]},{"id":"322f2db0-4582-441a-b2ad-fa0878142b9b","directory":"dungeon-stars","title":"Dungeon Stars","compatibility":99,"releases":[{"id":"0100E79009A94000","region":null}]},{"id":"32341f83-0c02-40ec-8e14-6c15c2d09858","directory":"snk-vs-capcom-the-match-of-the-millennium","title":"SNK VS. CAPCOM: THE MATCH OF THE MILLENNIUM","compatibility":99,"releases":[{"id":"010027D0137E0000","region":null}]},{"id":"323cf813-833e-4ee5-89e4-f8e001080e70","directory":"sinucaattack","title":"#SinucaAttack","compatibility":99,"releases":[{"id":"0100E0001338C000","region":null}]},{"id":"3242b203-1fd2-4dad-a588-250ffb7347b9","directory":"lotus-reverie-first-nexus","title":"Lotus Reverie: First Nexus","compatibility":99,"releases":[{"id":"010049901561C000","region":null}]},{"id":"324cc92a-e452-4be6-8ab4-b46e8d91994e","directory":"reknum","title":"Reknum","compatibility":99,"releases":[{"id":"0100A1D00FE54000","region":null}]},{"id":"32537e9e-b5f1-47af-b507-8507caff8797","directory":"ruinverse","title":"Ruinverse","compatibility":99,"releases":[{"id":"0100361013ACC000","region":null}]},{"id":"3260f32e-f8ba-4475-bbb2-959162101e8e","directory":"empire-of-angels-iv","title":"Empire of Angels IV","compatibility":99,"releases":[{"id":"0100D1A01460A000","region":null}]},{"id":"3262f262-2f1f-4f4a-b16f-6d09000f00c7","directory":"sentry","title":"SENTRY","compatibility":99,"releases":[{"id":"0100A5D012DAC000","region":null}]},{"id":"326d9bf1-9fa3-4ea0-9544-ca0e776be161","directory":"vigil-the-longest-night","title":"Vigil: The Longest Night","compatibility":1,"releases":[{"id":"01002D100EF3A000","region":null}]},{"id":"327318d6-16c6-414d-ac3f-23557cbd0f6e","directory":"edgar-bokbok-in-boulzac","title":"Edgar - Bokbok in Boulzac","compatibility":0,"releases":[{"id":"01009E700F726000","region":null}]},{"id":"32890cf5-529a-42b6-ac61-2cf266971205","directory":"splitter-critters","title":"Splitter Critters","compatibility":99,"releases":[{"id":"0100C320083BE000","region":null}]},{"id":"328bae36-f019-4c1d-8465-026e2b09e2f2","directory":"henchman-story","title":"Henchman Story","compatibility":99,"releases":[{"id":"01003580162D8000","region":null}]},{"id":"328ee7ac-23b4-48e4-b868-a1cd95e1eb01","directory":"the-stillness-of-the-wind","title":"The Stillness of the Wind","compatibility":4,"releases":[{"id":"01009AB00BDFE000","region":null}]},{"id":"3296573f-6b47-415c-9a5c-c502c25965f1","directory":"final-fantasy-vii","title":"FINAL FANTASY VII","compatibility":4,"releases":[{"id":"0100A5B00BDC6000","region":null}]},{"id":"329e7a3b-3475-4fb8-94e2-46d487b67d53","directory":"overdriven-reloaded-special-edition","title":"Overdriven Reloaded: Special Edition","compatibility":99,"releases":[{"id":"010051A00ACAC000","region":null}]},{"id":"32a34d48-601b-4f0c-9886-e7ed7f2b5a9e","directory":"the-swindle","title":"The Swindle","compatibility":99,"releases":[{"id":"010040D00B7CE000","region":null}]},{"id":"32a7cba5-ec93-4aa2-b517-d9427ef0ffd8","directory":"jump-force-deluxe-edition","title":"JUMP FORCE - Deluxe Edition","compatibility":3,"releases":[{"id":"0100183010F12000","region":null}]},{"id":"32b149bf-fb15-40cc-a338-69157b190a14","directory":"monkey-wall","title":"Monkey Wall","compatibility":99,"releases":[{"id":"0100F9700C73E000","region":null}]},{"id":"32b9d88e-b5cf-440a-9236-73c7ef20fffd","directory":"shin-megami-tensei-v","title":"Shin Megami Tensei V","compatibility":2,"releases":[{"id":"010063B012DC6000","region":null}]},{"id":"32c2182b-2c12-4838-b178-81d79e9122c4","directory":"jigsaw-tetra","title":"Jigsaw Tetra","compatibility":99,"releases":[{"id":"010068401471A000","region":null}]},{"id":"32c995b4-5f1f-4208-906f-672078eea5b5","directory":"koloro","title":"Koloro","compatibility":99,"releases":[{"id":"01005D200C9AA000","region":null}]},{"id":"32cba5f7-399c-4223-824b-432e21362efc","directory":"relicta","title":"Relicta","compatibility":99,"releases":[{"id":"01002AD013C52000","region":null}]},{"id":"32ce4fd0-7a6c-43db-b1ac-6d8f7bce6686","directory":"bone-marrow","title":"Bone Marrow","compatibility":1,"releases":[{"id":"01009E8015704000","region":null}]},{"id":"32d5112a-6ac7-4466-97fa-4e9a58d64931","directory":"earthnight","title":"EarthNight","compatibility":1,"releases":[{"id":"0100A2E00BB0C000","region":null}]},{"id":"32d77d62-00bc-41f8-b504-7ccc7bf60960","directory":"chapeau","title":"Chapeau","compatibility":99,"releases":[{"id":"010004100FBB0000","region":null}]},{"id":"32dac534-588d-46c5-8024-db7e21a76280","directory":"aca-neogeo-neo-geo-cup-98-the-road-to-the-victory","title":"ACA NEOGEO NEO GEO CUP '98: THE ROAD TO THE VICTORY","compatibility":99,"releases":[{"id":"010061C00AFDA000","region":null}]},{"id":"32ec6569-3c64-46af-b380-b2c2a7383028","directory":"soul-searching","title":"Soul Searching","compatibility":99,"releases":[{"id":"0100F2100F0B2000","region":null}]},{"id":"32f16bb2-3025-4c32-8da2-a27204541f6f","directory":"ages-of-mages-the-last-keeper","title":"Ages of Mages: The last keeper","compatibility":1,"releases":[{"id":"0100E4700E040000","region":null}]},{"id":"33003dff-2ddf-48c2-b31b-aa7ab6f7714a","directory":"nevaeh","title":"Nevaeh","compatibility":99,"releases":[{"id":"0100C20012A54000","region":null}]},{"id":"330d6552-6dd4-498c-b533-c0429148daec","directory":"instant-tennis-demo","title":"INSTANT TENNIS DEMO","compatibility":99,"releases":[{"id":"0100ADA00BE3C000","region":null}]},{"id":"33148dcc-f9e4-429f-a36e-ac7e6c8b3a0e","directory":"spectrum","title":"Spectrum","compatibility":99,"releases":[{"id":"01008B000A5AE000","region":null}]},{"id":"331e1c13-5f70-41ce-99cc-9600d480439d","directory":"lost-sea","title":"Lost Sea","compatibility":99,"releases":[{"id":"010071B00964A000","region":null}]},{"id":"3325305f-1bb7-468f-b3ce-7f91178a8331","directory":"fight-of-gods","title":"Fight of Gods","compatibility":1,"releases":[{"id":"01002F600C684000","region":null}]},{"id":"33547cec-0302-4ea4-930d-41a0a10df857","directory":"citizens-unite-earth-x-space","title":"Citizens Unite!: Earth x Space","compatibility":99,"releases":[{"id":"0100D9C012900000","region":null}]},{"id":"3355041e-0acb-456f-ae9d-102d17053999","directory":"pictooi","title":"Pictooi","compatibility":99,"releases":[{"id":"0100C8B0153CE000","region":null}]},{"id":"336e417d-4d8f-476e-b130-9a1b257ab125","directory":"bitmaster","title":"Bitmaster","compatibility":99,"releases":[{"id":"010026E0141C8000","region":null}]},{"id":"3374b0ec-c3a9-44be-8d91-dc2ac50698a5","directory":"joker-poker-video-poker","title":"Joker Poker - Video Poker","compatibility":99,"releases":[{"id":"010055E012BAA000","region":null}]},{"id":"3377b51b-4240-4e1e-a88b-24266d41da3b","directory":"naught","title":"Naught","compatibility":99,"releases":[{"id":"0100103011894000","region":null}]},{"id":"338bf69e-4ad0-44a4-842e-2720f5b9a913","directory":"wanderjahr-tryagainorwalkaway","title":"Wanderjahr TryAgainOrWalkAway","compatibility":99,"releases":[{"id":"010078800825E000","region":null}]},{"id":"338e97b7-6bcb-4523-80d4-4d62c5ed73d8","directory":"aborigenus","title":"Aborigenus","compatibility":99,"releases":[{"id":"0100EFC010398000","region":null}]},{"id":"339790d8-1052-493c-8364-e182de090a73","directory":"eternal-hope","title":"Eternal Hope","compatibility":1,"releases":[{"id":"010000E015046000","region":null}]},{"id":"3399b29a-b07c-4602-8899-6989a8ab5b7b","directory":"atari-flashback-classics","title":"Atari Flashback Classics","compatibility":0,"releases":[{"id":"0100CF3007578000","region":null}]},{"id":"33a6967a-181f-4744-841d-1fad45d097cd","directory":"crush-your-enemies","title":"Crush Your Enemies!","compatibility":99,"releases":[{"id":"01005F900902A000","region":null}]},{"id":"33ac1f1b-b98e-49b5-a372-e5935a1df1e3","directory":"arcade-archives-vs-mah-jong","title":"Arcade Archives VS. MAH-JONG","compatibility":99,"releases":[{"id":"0100A10010C54000","region":null}]},{"id":"33ac41f8-1f62-472f-b886-e3b06f7246eb","directory":"futuregrind","title":"FutureGrind","compatibility":99,"releases":[{"id":"010005100AF90000","region":null}]},{"id":"33ad5955-ec2b-401e-b374-45b6135c6dec","directory":"spirit-of-the-north","title":"Spirit of the North","compatibility":3,"releases":[{"id":"01005E101122E000","region":null}]},{"id":"33b5cecb-a083-4c95-abd4-606c2b455d61","directory":"masquerada-songs-and-shadows","title":"Masquerada: Songs and Shadows","compatibility":99,"releases":[{"id":"0100113008262000","region":null}]},{"id":"33e3cdbc-83a8-4fe2-8771-698cdd9c98c9","directory":"crazy-bmx-world","title":"Crazy BMX World","compatibility":99,"releases":[{"id":"01005CC012BFE000","region":null}]},{"id":"33eb5083-af83-4383-aa67-48a0bab8f427","directory":"suicide-guy-sleepin-deeply","title":"Suicide Guy: Sleepin' Deeply","compatibility":99,"releases":[{"id":"0100DE000C2E4000","region":null}]},{"id":"33fab108-f3b2-45df-8540-a918dca65dd7","directory":"the-sinking-city","title":"The Sinking City","compatibility":3,"releases":[{"id":"010028D00BA1A000","region":null}]},{"id":"3404a157-c7d1-42bf-8427-b3756442ec63","directory":"bloodrayne-betrayal-fresh-bites","title":"BloodRayne Betrayal: Fresh Bites","compatibility":1,"releases":[{"id":"01009AB013EE2000","region":null}]},{"id":"3404f058-30fe-4fb3-b1fd-9c02f9b3bd9a","directory":"knockout-home-fitness","title":"Knockout Home Fitness","compatibility":0,"releases":[{"id":"0100A1B0149E4000","region":null}]},{"id":"341040f1-57ee-464a-9290-80d58c057bbb","directory":"aca-neogeo-burning-fight","title":"ACA NEOGEO BURNING FIGHT","compatibility":99,"releases":[{"id":"01002AA004DB4000","region":null}]},{"id":"343e3fde-af5c-4adb-a816-e3a57b5cc506","directory":"worse-than-death","title":"Worse Than Death","compatibility":99,"releases":[{"id":"010037500C4DE000","region":null}]},{"id":"343f8903-f291-48a1-ad8c-4768d08ebb3f","directory":"strikers1945-2-for-nintendo-switch","title":"STRIKERS1945  2 for Nintendo Switch","compatibility":99,"releases":[{"id":"0100720008ED2000","region":null}]},{"id":"344e02f1-4a2d-4ad0-b9a5-d050da371788","directory":"the-alto-collection","title":"The Alto Collection","compatibility":0,"releases":[{"id":"01006B100E44C000","region":null}]},{"id":"3462227f-20ef-4845-b208-21d95db1dca5","directory":"earth-defense-force-world-brothers","title":"EARTH DEFENSE FORCE: WORLD BROTHERS","compatibility":2,"releases":[{"id":"01006D5014796000","region":null}]},{"id":"34648c72-7572-492e-944f-b89966cafea1","directory":"pixel-heroes-mega-byte-magic","title":"Pixel Heroes: Mega Byte & Magic","compatibility":5,"releases":[{"id":"0100B42012EA4000","region":null}]},{"id":"346f7792-05f4-4114-93fa-381c2afcd58f","directory":"solitaire-deluxe-bundle-3-in-1","title":"Solitaire Deluxe Bundle - 3 in 1","compatibility":99,"releases":[{"id":"01009100115C0000","region":null}]},{"id":"347bbed6-72c2-474c-a34c-fce2d3122a8b","directory":"perseverance","title":"Perseverance","compatibility":99,"releases":[{"id":"0100A0300FC3E000","region":null}]},{"id":"347e6b2d-ff62-4c31-aa80-77bd253a329f","directory":"brightstone-mysteries-paranormal-hotel","title":"Brightstone Mysteries: Paranormal Hotel","compatibility":99,"releases":[{"id":"01002E50129DA000","region":null}]},{"id":"348d4c5a-612d-4abf-bfde-be0f87bbe6f3","directory":"de-yabatanien","title":"De: Yabatanien","compatibility":99,"releases":[{"id":"01003F80133CC000","region":null}]},{"id":"34943eb0-57cc-478e-a76a-8af85c303fd4","directory":"zumba-aqua","title":"Zumba Aqua","compatibility":99,"releases":[{"id":"01009B10162F4000","region":null}]},{"id":"34a2c9ed-21df-4e19-8f1c-da3394961325","directory":"save-me-mr-tako-tasukete-tako-san","title":"Save me Mr Tako: Tasukete Tako-San","compatibility":99,"releases":[{"id":"0100A6A00A5D0000","region":null}]},{"id":"34bdb3f9-95b1-4c8c-94ff-db564e4da5c5","directory":"kentucky-route-zero-tv-edition","title":"Kentucky Route Zero: TV Edition","compatibility":1,"releases":[{"id":"0100327005C94000","region":null}]},{"id":"34c42a25-7000-4ca8-a084-5604037825ce","directory":"sludge-life","title":"Sludge Life","compatibility":99,"releases":[{"id":"0100F03010C72000","region":null}]},{"id":"34c8de49-78cc-4c2e-aafc-c31c2f91f24f","directory":"ping-pong-trick-shot-evolution","title":"Ping Pong Trick Shot EVOLUTION","compatibility":99,"releases":[{"id":"0100C9B00D422000","region":null}]},{"id":"34d0da99-06e6-4490-a15e-c2e29926fefb","directory":"johnny-turbos-arcade-wizard-fire","title":"Johnny Turbo's Arcade: Wizard Fire","compatibility":4,"releases":[{"id":"0100D230069CC000","region":null}]},{"id":"34e20bf6-37fc-452a-9703-777981553fde","directory":"disgaea-5-complete-demo","title":"Disgaea 5 Complete Demo","compatibility":3,"releases":[{"id":"0100E67003A86000","region":null}]},{"id":"34e235a8-3483-4ed0-9f43-bb4bd887d671","directory":"cybertaxi","title":"CyberTaxi","compatibility":99,"releases":[{"id":"0100490013FDA000","region":null}]},{"id":"34e94f46-6276-4c44-b5f4-2004ebb02127","directory":"12-labours-of-hercules","title":"12 Labours of Hercules","compatibility":4,"releases":[{"id":"010058900D4AE000","region":null}]},{"id":"34e9d2b9-6357-4b53-bbfb-c281ea68cadc","directory":"grand-prix-racing","title":"Grand Prix Racing","compatibility":99,"releases":[{"id":"01004110137A6000","region":null}]},{"id":"34f21787-de79-4423-93d7-a21dc561626e","directory":"catch-a-duck","title":"Catch a Duck","compatibility":99,"releases":[{"id":"01003BE00ECAE000","region":null}]},{"id":"34f6dfb5-6684-4fe3-9e19-de6c82431b9e","directory":"princess-maker-faery-tales-come-true-","title":"PRINCESS MAKER -FAERY TALES COME TRUE-","compatibility":99,"releases":[{"id":"010018700A5EC000","region":null}]},{"id":"3500e683-c9c8-41d5-aa9f-9f606d880011","directory":"edna-harvey-the-breakout-anniversary-edition","title":"Edna & Harvey: The Breakout – Anniversary Edition","compatibility":99,"releases":[{"id":"01004F000B716000","region":null}]},{"id":"35059c2b-fb02-489e-8a94-1b146f554d55","directory":"espacio-cosmic-light-seeker","title":"Espacio Cosmic Light-Seeker","compatibility":99,"releases":[{"id":"0100DBA012876000","region":null}]},{"id":"3507331a-7588-40ff-b234-3647e146c519","directory":"retro-classix-4in1-pack-sly-spy-shootout-wizard-fire-super-real-darwin","title":"Retro Classix 4in1 Pack: Sly Spy, Shootout, Wizard Fire & Super Real Darwin","compatibility":99,"releases":[{"id":"0100AE0012190000","region":null}]},{"id":"351e8ecd-2ad1-4e37-88fd-1f1f0713956f","directory":"our-battle-has-just-begun-episode-1","title":"Our Battle Has Just Begun! episode 1","compatibility":99,"releases":[{"id":"01000D9015324000","region":null}]},{"id":"3526bd46-1775-418d-8ee3-60ce88d55700","directory":"poker-hands","title":"Poker Hands","compatibility":99,"releases":[{"id":"010030A01243E000","region":null}]},{"id":"352bf68f-0c06-4139-a01d-a3624a2e206f","directory":"worldneverland-elnea-kingdom","title":"WorldNeverland - Elnea Kingdom","compatibility":1,"releases":[{"id":"01008E9007064000","region":null}]},{"id":"352e5368-cde5-424b-9034-0fbef56d5bda","directory":"demo-cinderella-an-interactive-fairytale","title":"Demo: Cinderella - An Interactive Fairytale","compatibility":99,"releases":[{"id":"010062200CF14000","region":null}]},{"id":"35333a5b-6eee-49e1-a2e9-9540cd0e80b4","directory":"maid-of-sker","title":"Maid of Sker","compatibility":99,"releases":[{"id":"01002E900CF38000","region":null}]},{"id":"35334966-6aa6-4f80-8281-3083e80a596f","directory":"rapala-fishing-pro-series","title":"Rapala Fishing Pro Series","compatibility":99,"releases":[{"id":"010042A00A9CC000","region":null}]},{"id":"3539e620-95aa-46c7-a368-3d83ba10a4a0","directory":"poker-champion-texas-holdem","title":"Poker Champion: Texas Hold'em","compatibility":99,"releases":[{"id":"01009090159FE000","region":null}]},{"id":"353c8805-d637-4906-8b5f-abee9fd76320","directory":"rustler","title":"Rustler","compatibility":99,"releases":[{"id":"010071E0145F8000","region":null}]},{"id":"3548fc9c-c684-4430-8599-18b62fe4bd49","directory":"typerider","title":"Type:Rider","compatibility":99,"releases":[{"id":"0100D5B00D6DA000","region":null}]},{"id":"35524be3-e9a3-489f-be6a-d08f41afc061","directory":"checkers-for-kids","title":"Checkers for Kids","compatibility":1,"releases":[{"id":"0100605015752000","region":null}]},{"id":"3558f359-fb89-457d-8194-7210deb0ec01","directory":"turrican-flashback","title":"Turrican Flashback","compatibility":0,"releases":[{"id":"010004B0130C8000","region":null}]},{"id":"3562988b-4756-4970-8ca3-389149380da7","directory":"regina-mac-world","title":"Regina & Mac World","compatibility":99,"releases":[{"id":"0100ED70147A2000","region":null}]},{"id":"357d9dbc-fcce-426a-a09a-6c48b335d7de","directory":"guts-and-glory","title":"Guts & Glory","compatibility":99,"releases":[{"id":"01005E5009EF2000","region":null}]},{"id":"357df1e1-6af3-4299-bb99-28f187633a37","directory":"knockout-city-cross-play-beta","title":"Knockout City™ Cross-Play Beta","compatibility":99,"releases":[{"id":"0100A3F013BDE000","region":null}]},{"id":"35876728-4fce-4318-bbc0-1c770d035d97","directory":"arcade-archives-soldam","title":"Arcade Archives SOLDAM","compatibility":99,"releases":[{"id":"0100E32015798000","region":null}]},{"id":"358c77bf-bb5b-4137-8666-7d9c110a81ab","directory":"planetary-defense-force","title":"Planetary Defense Force","compatibility":99,"releases":[{"id":"010005800F1BA000","region":null}]},{"id":"35a14aa2-5e96-488a-94de-c033ad884c71","directory":"la-noire","title":"L.A. Noire","compatibility":1,"releases":[{"id":"0100830004FB6000","region":null}]},{"id":"35b2b721-f9ee-43bd-9954-2637d1b175fa","directory":"toy-stunt-bike-tiptops-trials","title":"Toy Stunt Bike: Tiptop's Trials","compatibility":99,"releases":[{"id":"01009FF00A160000","region":null}]},{"id":"35c21c8b-c579-41a4-b07c-10e9ded817ba","directory":"silverstarchess","title":"SilverStarChess","compatibility":99,"releases":[{"id":"010016D00A964000","region":null}]},{"id":"35c88c60-5713-4624-b8a9-b53bc6d95b65","directory":"hayfever","title":"Hayfever","compatibility":99,"releases":[{"id":"0100EA900FB2C000","region":null}]},{"id":"35d2757a-152e-4b9a-8a4c-17f0a904ad21","directory":"concept-destruction","title":"Concept Destruction","compatibility":99,"releases":[{"id":"0100971011224000","region":null}]},{"id":"35d2acf0-31c3-4e2a-b8f3-709ce0d79ce3","directory":"battle-chasers-nightwar","title":"Battle Chasers: Nightwar","compatibility":1,"releases":[{"id":"0100551001D88000","region":null}]},{"id":"35dfedf9-5bb7-420b-96b9-1840c2457617","directory":"hexon","title":"HexON","compatibility":99,"releases":[{"id":"0100495011B6A000","region":null}]},{"id":"35e3494c-af30-488b-ae6e-52337e78d893","directory":"arcade-archives-terra-cresta","title":"Arcade Archives TERRA CRESTA","compatibility":99,"releases":[{"id":"0100422001DDA000","region":null}]},{"id":"35e99473-3abb-493c-b149-f2665300e36e","directory":"candleman","title":"Candleman","compatibility":0,"releases":[{"id":"010034400CB5E000","region":null}]},{"id":"35fc893e-bf02-4bbd-bc31-a7ffd56ef20d","directory":"sega-ages-space-harrier","title":"SEGA AGES Space Harrier","compatibility":1,"releases":[{"id":"0100C3E00B700000","region":null}]},{"id":"360a60f9-dd13-461d-9030-e0fb229a89b7","directory":"omega-strike","title":"Omega Strike","compatibility":5,"releases":[{"id":"0100F8C00C21C000","region":null}]},{"id":"3619b156-1d2c-485a-a6c8-e8bdbf8dbb19","directory":"pixeljunk-monsters-2-demo","title":"PixelJunk™ Monsters 2 Demo","compatibility":99,"releases":[{"id":"01004AF00A772000","region":null}]},{"id":"362a1b83-c759-4f33-a59d-a1b6bdfcd2bf","directory":"cuphead","title":"Cuphead","compatibility":0,"releases":[{"id":"0100A5C00D162000","region":null}]},{"id":"363c2fbc-8836-4b5b-b664-24c60ec543d4","directory":"outbreak","title":"Outbreak","compatibility":99,"releases":[{"id":"010047F013104000","region":null}]},{"id":"364327bf-cc1e-4410-a07f-bf8dea72868e","directory":"wizards-of-brandel","title":"Wizards of Brandel","compatibility":99,"releases":[{"id":"010081900F9E2000","region":null}]},{"id":"36583beb-cad5-4c9d-bf90-4783393c1631","directory":"ori-and-the-blind-forest-definitive-edition","title":"Ori and the Blind Forest: Definitive Edition","compatibility":1,"releases":[{"id":"010061D00DB74000","region":null}]},{"id":"3659e4ea-8a70-44c6-adca-05132d58006c","directory":"astro-bears-party","title":"Astro Bears Party","compatibility":1,"releases":[{"id":"0100E5F00643C000","region":null}]},{"id":"365ec92e-96cf-4eb9-9b2a-379dff43c1b3","directory":"metropolis-lux-obscura","title":"Metropolis: Lux Obscura","compatibility":1,"releases":[{"id":"01003F000973E000","region":null}]},{"id":"36883e9f-56cc-4218-8769-8493eb048dba","directory":"papas-quiz","title":"Papa's Quiz","compatibility":99,"releases":[{"id":"01004B0015044000","region":null}]},{"id":"368aa0bf-f7f0-4b7c-b437-c716f75ed67f","directory":"sparkle-4-tales","title":"Sparkle 4 Tales","compatibility":99,"releases":[{"id":"010030D00EA1C000","region":null}]},{"id":"36a8cb96-5cc2-4087-ab95-42ff64ea7c57","directory":"freedom-finger","title":"Freedom Finger","compatibility":1,"releases":[{"id":"010082B00EE50000","region":null}]},{"id":"36aa3f90-0186-4f5c-9e27-9c4308bab12d","directory":"my-hero-ones-justice","title":"MY HERO ONE'S JUSTICE","compatibility":0,"releases":[{"id":"010039000B68E000","region":null}]},{"id":"36ace7b8-15e5-4cd0-8227-01675074702d","directory":"hakoniwa-explorer-plus","title":"Hakoniwa Explorer Plus","compatibility":4,"releases":[{"id":"0100618010D76000","region":null}]},{"id":"36acefd9-d6ac-4e1c-9314-926be24abeaf","directory":"old-mans-journey","title":"Old Man's Journey","compatibility":1,"releases":[{"id":"0100CE2007A86000","region":null}]},{"id":"36b93a6d-8853-4a7b-a894-64b22d00545a","directory":"dungeon-defenders-awakened","title":"Dungeon Defenders: Awakened","compatibility":4,"releases":[{"id":"0100BF800DFAC000","region":null}]},{"id":"36bf1d26-3474-47a5-86e0-d9213ab39012","directory":"arkham-horror-mothers-embrace","title":"Arkham Horror: Mother's Embrace","compatibility":99,"releases":[{"id":"010069A010606000","region":null}]},{"id":"36cf4ad9-e8fe-4d7b-bf80-8074be1fe968","directory":"captain-backwater","title":"Captain Backwater","compatibility":99,"releases":[{"id":"0100465016540000","region":null}]},{"id":"36d6107f-8909-42b5-a561-8e4ef43fefdf","directory":"child-of-light-ultimate-edition","title":"Child of Light Ultimate Edition","compatibility":0,"releases":[{"id":"01007D000AD8A000","region":null}]},{"id":"36dd911f-b5ff-4929-875a-7322e33a3ca3","directory":"the-demon-crystal","title":"The Demon Crystal","compatibility":99,"releases":[{"id":"0100ACF00D32E000","region":null}]},{"id":"36dfbb36-2d2c-4f86-9573-f08dde172017","directory":"ring-of-pain","title":"Ring of Pain","compatibility":1,"releases":[{"id":"0100F090122D2000","region":null}]},{"id":"36e39cb7-40d7-43bf-af13-2eaed60ab496","directory":"koral","title":"KORAL","compatibility":4,"releases":[{"id":"010088500D5EE000","region":null}]},{"id":"36f7d5b3-b8b7-4e39-9236-9580e148a595","directory":"3d-advantime","title":"3D ADVANTIME","compatibility":99,"releases":[{"id":"010063101531C000","region":null}]},{"id":"37033189-16e2-4745-aa87-14fd8c0df362","directory":"my-maite","title":"My Maitê","compatibility":99,"releases":[{"id":"0100E21015588000","region":null}]},{"id":"37140bf1-7f60-475d-b498-54f5e0fa5578","directory":"task-force-delta-afghanistan","title":"Task Force Delta - Afghanistan","compatibility":99,"releases":[{"id":"0100D6C0137F6000","region":null}]},{"id":"37195122-8ae8-4520-a5fb-7b8effcaddfc","directory":"us-navy-sea-conflict","title":"US Navy Sea Conflict","compatibility":99,"releases":[{"id":"0100207015A36000","region":null}]},{"id":"371d9858-b3eb-4de3-b7c3-d058be6a5f66","directory":"arms-demo","title":"ARMS Demo","compatibility":5,"releases":[{"id":"0100A5400AC86000","region":null}]},{"id":"371fce9a-6a6d-4b4b-93d7-416b4b134863","directory":"red-white-yellow","title":"Red White Yellow","compatibility":99,"releases":[{"id":"01003B2015510000","region":null}]},{"id":"372fb43e-bb9b-4670-9a44-812b0adfb390","directory":"need-for-speed-hot-pursuit-remastered","title":"Need for Speed™ Hot Pursuit Remastered","compatibility":2,"releases":[{"id":"010029B0118E8000","region":null}]},{"id":"37363872-9351-46c9-93cd-cab41f596b1d","directory":"ultimate-runner","title":"Ultimate Runner","compatibility":99,"releases":[{"id":"010045200A1C2000","region":null}]},{"id":"3738b0d7-02a4-4d36-8391-b4c506ae437d","directory":"the-kids-we-were","title":"The Kids We Were","compatibility":99,"releases":[{"id":"010068301606C000","region":null}]},{"id":"3738c265-e012-4cd2-abed-4f1827497aff","directory":"football-manager-2019-touch","title":"Football Manager 2019 Touch","compatibility":99,"releases":[{"id":"010078500C21A000","region":null}]},{"id":"37493cfe-48bb-4e19-bc4f-fce3c2327799","directory":"speedway-bundle-stock-truck","title":"Speedway Bundle Stock & Truck","compatibility":99,"releases":[{"id":"01000D6013D36000","region":null}]},{"id":"374f4358-92ed-478c-8305-a0e71163052a","directory":"helheim-hassle","title":"Helheim Hassle","compatibility":4,"releases":[{"id":"0100B9C012B66000","region":null}]},{"id":"37548656-9ca4-403d-97b3-b5b66f8e2cbf","directory":"grim-legends-the-forsaken-bride","title":"Grim Legends: The Forsaken Bride","compatibility":99,"releases":[{"id":"010009F011F90000","region":null}]},{"id":"375616e1-8141-4cf0-b8ff-f24283cb4acf","directory":"doom-destiny-worlds","title":"Doom & Destiny Worlds","compatibility":0,"releases":[{"id":"01001B4011480000","region":null}]},{"id":"3756ff04-82ea-46f1-b8b9-2b90b6359a91","directory":"steam-tactics","title":"Steam Tactics","compatibility":99,"releases":[{"id":"0100AE100DAFA000","region":null}]},{"id":"3768b535-8bef-4de0-a978-f68e3ab5b430","directory":"homo-machina","title":"Homo Machina","compatibility":99,"releases":[{"id":"010011700D6E2000","region":null}]},{"id":"3773e865-27ac-44ee-9c85-886a3db33acf","directory":"game-dev-tycoon","title":"Game Dev Tycoon","compatibility":1,"releases":[{"id":"0100E95010F6A000","region":null}]},{"id":"379b93ea-5aa8-4b3f-86ea-3f46e8ea71ba","directory":"robbotto","title":"Robbotto","compatibility":99,"releases":[{"id":"01004F400B978000","region":null}]},{"id":"37b88d24-bcc7-41c2-a5c3-30600063b8c9","directory":"jet-kave-adventure","title":"Jet Kave Adventure","compatibility":1,"releases":[{"id":"0100E4900D266000","region":null}]},{"id":"37c054a9-e819-49b3-9e47-3f324dece542","directory":"fire-emblem-shadow-dragon-the-blade-of-light","title":"Fire Emblem™: Shadow Dragon & the Blade of Light","compatibility":2,"releases":[{"id":"0100A12011CC8000","region":null}]},{"id":"37c2d6b9-39d1-4930-a5c1-a4240852c403","directory":"space-elite-force-2","title":"Space Elite Force 2","compatibility":99,"releases":[{"id":"010084F0123AC000","region":null}]},{"id":"37db56a0-f900-4bc1-8911-e77c8668c8d2","directory":"mindcell","title":"Mindcell","compatibility":99,"releases":[{"id":"01005E6015A62000","region":null}]},{"id":"37dc5335-d5ad-43dc-b91e-f94a54f5a2f5","directory":"kitty-powers-matchmaker","title":"Kitty Powers' Matchmaker","compatibility":99,"releases":[{"id":"010079000F0D2000","region":null}]},{"id":"37dcb949-1949-4ad4-bb29-c4aa9c8bb5a9","directory":"infernal-radiation","title":"Infernal Radiation","compatibility":99,"releases":[{"id":"0100B5C014AC6000","region":null}]},{"id":"37ee7ee6-57b7-433a-8508-6c0bca2d6799","directory":"ambition-of-the-slimes","title":"Ambition of the Slimes","compatibility":3,"releases":[{"id":"0100A620083DA000","region":null}]},{"id":"37eed7d8-7286-43b2-910c-3cb3321470f5","directory":"invirium","title":"Invirium","compatibility":99,"releases":[{"id":"0100A960149DA000","region":null}]},{"id":"3808321e-540d-45c6-808a-4ba6e72bc40a","directory":"occultism-interrogation-the-ritual-of-little-nightmares","title":"Occultism Interrogation: The ritual of little nightmares","compatibility":99,"releases":[{"id":"0100183015008000","region":null}]},{"id":"380ef8f8-5cb9-4eef-bde2-a0d4f4028675","directory":"lego-r-builders-journey","title":"LEGO® Builder's Journey","compatibility":0,"releases":[{"id":"01005EE0140AE000","region":null}]},{"id":"381c1b57-cd78-4896-a930-ada78343cb30","directory":"arcade-archives-time-tunnel","title":"Arcade Archives TIME TUNNEL","compatibility":99,"releases":[{"id":"010084200DC72000","region":null}]},{"id":"381d1def-6932-4975-bb03-f897557efa19","directory":"working-zombies","title":"Working Zombies","compatibility":0,"releases":[{"id":"0100F38011FBC000","region":null}]},{"id":"381f9ef3-f0dd-4efb-b7e0-7855d94e1966","directory":"iota","title":"iota","compatibility":99,"releases":[{"id":"010086A013FD8000","region":null}]},{"id":"3820911d-7256-44a2-b687-49fbabc36949","directory":"the-binding-of-isaac-afterbirth","title":"The Binding of Isaac: Afterbirth+","compatibility":1,"releases":[{"id":"010021C000B6A000","region":null}]},{"id":"3833de3c-95f0-4f99-bd49-b6a5ab8fa331","directory":"foxyland-2","title":"FoxyLand 2","compatibility":0,"releases":[{"id":"01000AC010024000","region":null}]},{"id":"383f8ab9-a232-4eb6-b085-6bd07c4c9287","directory":"disco-dodgeball-remix","title":"Disco Dodgeball - REMIX","compatibility":1,"releases":[{"id":"0100C81004780000","region":null}]},{"id":"38482faa-f6b9-47b1-8c3e-cdef00e60e4e","directory":"submerged","title":"Submerged","compatibility":99,"releases":[{"id":"0100EDA00D866000","region":null}]},{"id":"384af1d9-c629-46e1-8bcd-522e8fd07dd3","directory":"high-noon-revolver","title":"High Noon Revolver","compatibility":99,"releases":[{"id":"01006FE00D2B0000","region":null}]},{"id":"3856b95e-253c-4494-bbcc-9663617323ec","directory":"bookbound-brigade","title":"Bookbound Brigade","compatibility":99,"releases":[{"id":"010054500F564000","region":null}]},{"id":"386ae55f-1e63-415f-83cb-74910c7165a4","directory":"monkey-barrels","title":"MONKEY BARRELS","compatibility":99,"releases":[{"id":"0100FBD00ED24000","region":null}]},{"id":"386dc250-4dde-4f7f-ae13-f5237b910210","directory":"nights-of-azure-2-bride-of-the-new-moon","title":"Nights of Azure 2: Bride of the New Moon","compatibility":4,"releases":[{"id":"0100628004BCE000","region":null}]},{"id":"387049d6-a7f5-418a-aa80-94a9f0092858","directory":"the-lions-song","title":"The Lion's Song","compatibility":3,"releases":[{"id":"0100735004898000","region":null}]},{"id":"3871c1ae-1f36-49c3-b629-9b0f4111f861","directory":"bombfest","title":"BOMBFEST","compatibility":99,"releases":[{"id":"010001600C962000","region":null}]},{"id":"3881f200-83ad-4c01-a4b6-68c9df69f019","directory":"heal-console-edition","title":"Heal: Console Edition","compatibility":99,"releases":[{"id":"01008C70147B0000","region":null}]},{"id":"388d4ce0-e29c-4d52-9306-f3b569e30c84","directory":"death-end-re-quest","title":"Death end re;Quest","compatibility":99,"releases":[{"id":"01004FD013DD8000","region":null}]},{"id":"38a0ad9b-de0e-4c54-b4b4-34a7d7d16a46","directory":"max-and-the-book-of-chaos","title":"Max and the book of chaos","compatibility":99,"releases":[{"id":"0100A8C011F26000","region":null}]},{"id":"38b28b47-e809-4975-87ea-39aa4948f20e","directory":"woven","title":"Woven","compatibility":0,"releases":[{"id":"01006F100EB16000","region":null}]},{"id":"38bf99c9-b20f-42b2-86d5-bad64166f789","directory":"retro-highway","title":"Retro Highway","compatibility":3,"releases":[{"id":"010004C015EFC000","region":null}]},{"id":"38c1eb73-6698-499a-a6b0-8486f00fc4b5","directory":"foxyland","title":"FoxyLand","compatibility":1,"releases":[{"id":"0100D2501001A000","region":null}]},{"id":"38c89153-7ff9-45a3-b3e6-a95a8c686eb0","directory":"the-world-ends-with-you-final-remix","title":"The World Ends with You: Final Remix","compatibility":0,"releases":[{"id":"0100C1500B82E000","region":null}]},{"id":"38ef9658-53a7-408d-a1a4-e3fdf95277af","directory":"sir-eatsalot","title":"Sir Eatsalot","compatibility":99,"releases":[{"id":"01003C700EB20000","region":null}]},{"id":"38f3d805-2aeb-4b9f-b057-f26f34fee670","directory":"stellatum","title":"STELLATUM","compatibility":99,"releases":[{"id":"0100BC800EDA2000","region":null}]},{"id":"391ffd72-0472-47bd-8dad-d0db649798d4","directory":"crawl","title":"Crawl","compatibility":0,"releases":[{"id":"0100BF7006BCA000","region":null}]},{"id":"39291eb6-4e3a-45d9-94ae-55d8445dde35","directory":"path-of-sin-greed","title":"Path of Sin: Greed","compatibility":99,"releases":[{"id":"01001E500EA16000","region":null}]},{"id":"392fa26e-3f0e-4c49-a32f-0cc46fa40084","directory":"city-driving-simulator-2","title":"City Driving Simulator 2","compatibility":0,"releases":[{"id":"0100FDA015C38000","region":null}]},{"id":"39416f88-96c4-48e1-8c28-19bb12cba9d4","directory":"dragon-quest-ii-luminaries-of-the-legendary-line","title":"DRAGON QUEST II: Luminaries of the Legendary Line","compatibility":1,"releases":[{"id":"010062200EFB4000","region":null}]},{"id":"3958c555-7c2a-4a7f-9d9d-3e6569247ea2","directory":"liberated","title":"Liberated","compatibility":2,"releases":[{"id":"0100C8000F146000","region":null}]},{"id":"3959486e-3634-4db6-b8e0-46b6f2e5836d","directory":"spiritfarer","title":"Spiritfarer","compatibility":2,"releases":[{"id":"0100BD400DC52000","region":null}]},{"id":"395b0bb0-adae-45a5-8735-d62b6fba44e5","directory":"shovel-knight-showdown","title":"Shovel Knight Showdown","compatibility":0,"releases":[{"id":"0100B380022AE000","region":null}]},{"id":"395edbd4-16a5-4654-923d-c350c29bd95b","directory":"mighty-aphid","title":"Mighty Aphid","compatibility":99,"releases":[{"id":"0100F41015614000","region":null}]},{"id":"3975c70c-dff9-49c8-8b4e-91582c0be8f2","directory":"huntdown","title":"Huntdown","compatibility":0,"releases":[{"id":"0100EBA004726000","region":null}]},{"id":"3985d075-450d-4f60-8404-345a453c0f95","directory":"darts","title":"Darts","compatibility":99,"releases":[{"id":"01005A6010A04000","region":null}]},{"id":"3996189f-83bc-43ec-8221-56dc1bf450c6","directory":"warframe","title":"Warframe","compatibility":99,"releases":[{"id":"0100FEE00A64E000","region":null}]},{"id":"39aa9fe9-3f01-4212-bde6-def5041bb06d","directory":"cities-skylines-nintendo-switch-edition","title":"Cities: Skylines - Nintendo Switch Edition","compatibility":2,"releases":[{"id":"0100D8800B87C000","region":null}]},{"id":"39aedd02-ee6f-4dcb-be81-f594e44a7339","directory":"arcade-archives-bells-and-whistles","title":"Arcade Archives Bells & Whistles","compatibility":99,"releases":[{"id":"01002F00100A2000","region":null}]},{"id":"39c22e44-ee76-4e43-9430-dbc7ca78c5cb","directory":"age-of-sokoban","title":"Age of Sokoban","compatibility":99,"releases":[{"id":"01003770152AA000","region":null}]},{"id":"39dae2e7-9489-4189-a23b-4e86cb3e29ed","directory":"kill-the-bad-guy","title":"Kill The Bad Guy","compatibility":99,"releases":[{"id":"010011B00910C000","region":null}]},{"id":"39ec97c1-167c-40e6-bed6-faccce183a15","directory":"olliolli-world","title":"OlliOlli World","compatibility":99,"releases":[{"id":"0100C5D01128E000","region":null}]},{"id":"39f5a5e3-3fde-40f8-a9d7-28a39cbbb455","directory":"cube-creator-x","title":"Cube Creator X","compatibility":99,"releases":[{"id":"010001600D1E8000","region":null}]},{"id":"3a0aac4f-fc29-4c18-bcdf-04efb3c3f37d","directory":"forma8","title":"forma.8","compatibility":1,"releases":[{"id":"01008EA00405C000","region":null}]},{"id":"3a11e078-36c6-484b-aa4e-686e2668e87d","directory":"dungholes","title":"Dungholes","compatibility":99,"releases":[{"id":"0100604014272000","region":null}]},{"id":"3a18d72a-dd55-447c-ac5c-bab8a8553d4c","directory":"terrorhythm-trrt","title":"TERRORHYTHM (TRRT)","compatibility":3,"releases":[{"id":"010043700EB68000","region":null}]},{"id":"3a1a712c-22c9-4290-a92d-ab8e350a34ef","directory":"rabisco","title":"Rabisco+","compatibility":99,"releases":[{"id":"0100146014DC6000","region":null}]},{"id":"3a26a354-b1d7-47ea-b628-c7ce35bac036","directory":"arcade-archives-thunder-cross-ii","title":"Arcade Archives THUNDER CROSS II","compatibility":99,"releases":[{"id":"0100F400144C6000","region":null}]},{"id":"3a28490b-07dd-4a4a-8076-b2565df6ea50","directory":"match-three-pirates-heir-to-davy-jones","title":"Match Three: Pirates! Heir to Davy Jones","compatibility":99,"releases":[{"id":"0100699012DF6000","region":null}]},{"id":"3a5a9af4-6857-47b0-85c2-ef27c2222997","directory":"super-destronaut-dx","title":"Super Destronaut DX","compatibility":99,"releases":[{"id":"010008800B18A000","region":null}]},{"id":"3a691065-bf20-4351-8976-7bea84945764","directory":"please-dont-touch-anything","title":"Please, Don't Touch Anything","compatibility":3,"releases":[{"id":"0100E2300C4C4000","region":null}]},{"id":"3a733f5a-04fe-4497-94b3-092a82caf71e","directory":"dungeon-village-demo","title":"Dungeon Village Demo","compatibility":99,"releases":[{"id":"010093700BCDC000","region":null}]},{"id":"3a77437e-5acf-45b7-950b-7c7597c0d7c0","directory":"odium-to-the-core","title":"Odium to the Core","compatibility":99,"releases":[{"id":"010029F00C876000","region":null}]},{"id":"3a80b8e3-b611-4aca-a70c-c0d32cbac20c","directory":"atelier-sophie-the-alchemist-of-the-mysterious-book-dx-digital-art-book","title":"Atelier Sophie: The Alchemist of the Mysterious Book DX Digital Art Book","compatibility":99,"releases":[{"id":"010041C014222000","region":null}]},{"id":"3a96710d-2860-474d-b4a9-bd96aa99f559","directory":"japanese-mah-jongg","title":"Japanese Mah-jongg","compatibility":99,"releases":[{"id":"0100C8E0083C4000","region":null}]},{"id":"3a9a0a44-7b31-4af2-97a9-8dbd9a7c4949","directory":"a-summer-with-the-shiba-inu","title":"A Summer with the Shiba Inu","compatibility":99,"releases":[{"id":"01007DD011C4A000","region":null}]},{"id":"3a9d9732-30de-4582-b3b7-1c3a938f9aaf","directory":"stay","title":"STAY","compatibility":99,"releases":[{"id":"0100616009082000","region":null}]},{"id":"3a9ef63b-a842-4372-b49f-26127a5f8bce","directory":"tied-together","title":"Tied Together","compatibility":99,"releases":[{"id":"0100B6D00C2DE000","region":null}]},{"id":"3aa77e86-3ee4-4353-9c52-f6842c8629ee","directory":"classic-logical-bundle-4in1","title":"Classic Logical Bundle (4in1)","compatibility":99,"releases":[{"id":"01002F101353A000","region":null}]},{"id":"3aa805e6-ea42-4623-9061-af328aac7a72","directory":"dynasty-warriors-8-xtreme-legends-definitive-edition","title":"DYNASTY WARRIORS 8: Xtreme Legends Definitive Edition","compatibility":2,"releases":[{"id":"0100E9A00CB30000","region":null}]},{"id":"3aa9758d-ef55-49b0-8423-08af0b1ae08c","directory":"mias-picnic","title":"Mia's Picnic","compatibility":99,"releases":[{"id":"0100CBF013B94000","region":null}]},{"id":"3aacdcd5-0b94-431c-870c-78e690ef457c","directory":"shining-resonance-refrain","title":"Shining Resonance Refrain","compatibility":0,"releases":[{"id":"01009A5009A9E000","region":null}]},{"id":"3ab7bbf7-a925-425e-93aa-1ae5bd678a65","directory":"rogue-heroes-ruins-of-tasos","title":"Rogue Heroes: Ruins of Tasos","compatibility":99,"releases":[{"id":"01009FA010848000","region":null}]},{"id":"3abc563d-114c-44ab-a125-6a044904da3a","directory":"ea-sports-fifa-20-nintendo-switch-legacy-edition","title":"EA SPORTS FIFA 20 Nintendo Switch Legacy Edition","compatibility":5,"releases":[{"id":"01005DE00D05C000","region":null}]},{"id":"3abeb73a-ecff-4794-9d58-da00caa0fd94","directory":"super-meatball","title":"Super Meatball","compatibility":99,"releases":[{"id":"01008BE0136C2000","region":null}]},{"id":"3ac16f73-e4aa-45c1-b6fa-ae3f7e9aa80d","directory":"the-book-of-unwritten-tales-2","title":"The Book of Unwritten Tales 2","compatibility":99,"releases":[{"id":"010062500BFC0000","region":null}]},{"id":"3ac9a79a-c3a2-4cd4-a7ae-51c2e4232a49","directory":"mace-space-shooter","title":"M.A.C.E. Space Shooter","compatibility":3,"releases":[{"id":"0100F02005D1E000","region":null}]},{"id":"3acfafe7-ef4d-4d1d-b37e-a30aac9a219b","directory":"discolored","title":"Discolored","compatibility":99,"releases":[{"id":"01004CE012A18000","region":null}]},{"id":"3ad759fa-be84-41ab-bb30-7e3e49e412df","directory":"the-walking-dead-a-new-frontier","title":"The Walking Dead: A New Frontier","compatibility":4,"releases":[{"id":"010056E00B4F4000","region":null}]},{"id":"3ae0840f-c2b5-40d7-9430-98a99f34303c","directory":"word-puzzles-by-powgi","title":"Word Puzzles by POWGI","compatibility":99,"releases":[{"id":"01002BE00BA82000","region":null}]},{"id":"3ae60705-50dc-4b36-ac48-06af4c10b99a","directory":"cars-3-driven-to-win","title":"Cars 3: Driven to Win","compatibility":3,"releases":[{"id":"01008D1001512000","region":null}]},{"id":"3afc0cad-180e-4ee8-b935-4051d8ac2561","directory":"dex","title":"Dex","compatibility":1,"releases":[{"id":"01003F601025E000","region":null}]},{"id":"3b02c86b-57ad-4b64-9b68-ce2217934906","directory":"sweet-witches","title":"Sweet Witches","compatibility":0,"releases":[{"id":"0100D6D00EC2C000","region":null}]},{"id":"3b2bb85f-6a3f-44d7-a7b6-035adee36760","directory":"ship-sim-2020","title":"Ship Sim 2020","compatibility":99,"releases":[{"id":"0100016011A1A000","region":null}]},{"id":"3b39f624-d88e-495c-b8be-04f41a01a525","directory":"warp-frontier","title":"Warp Frontier","compatibility":0,"releases":[{"id":"01005C50152DC000","region":null}]},{"id":"3b4334f8-291f-4b63-a783-04466920f27f","directory":"gangsta-paradise","title":"Gangsta Paradise","compatibility":99,"releases":[{"id":"01001A50145E0000","region":null}]},{"id":"3b48c529-67dc-456a-98b9-4ba552f3edd0","directory":"escape-game-fort-boyard","title":"Escape Game Fort Boyard","compatibility":0,"releases":[{"id":"0100B0F011A84000","region":null}]},{"id":"3b525ae4-a3f0-4a45-a402-fa18d7dd1305","directory":"paratopic","title":"Paratopic","compatibility":99,"releases":[{"id":"01001F0012868000","region":null}]},{"id":"3b5982a5-6722-43e5-87cb-63e855e4c98e","directory":"skittles","title":"Skittles","compatibility":99,"releases":[{"id":"0100FC1015302000","region":null}]},{"id":"3b5aed28-1c47-4f87-9fb9-564efb2121a3","directory":"rotating-brave","title":"Rotating Brave","compatibility":99,"releases":[{"id":"01003A300B7A6000","region":null}]},{"id":"3b5c0bbd-4084-486a-b0de-c1b914732abb","directory":"overpass","title":"OVERPASS","compatibility":4,"releases":[{"id":"01008EA00E816000","region":null}]},{"id":"3b6253a9-ece8-4b66-bc12-d403d54df0fd","directory":"immortus-temporus","title":"Immortus Temporus","compatibility":99,"releases":[{"id":"0100211015A7E000","region":null}]},{"id":"3b702c1c-6a3a-4b53-b442-36e179dc9aa3","directory":"dongo-adventure","title":"Dongo Adventure","compatibility":99,"releases":[{"id":"010088B010DD2000","region":null}]},{"id":"3b7a7e3e-9bdd-4dfb-8fe3-e7bf6a35ccd3","directory":"death-coming","title":"Death Coming","compatibility":5,"releases":[{"id":"0100F3B00CF32000","region":null}]},{"id":"3b8c39f1-f00e-4836-bfa5-7a7a8c9d0b3c","directory":"caged-garden-cock-robin","title":"Caged Garden Cock Robin","compatibility":0,"releases":[{"id":"010092600E9A2000","region":null}]},{"id":"3ba52dd0-c8eb-4239-8f59-dd148b7e2527","directory":"rogue-bit","title":"Rogue Bit","compatibility":99,"releases":[{"id":"010052500D984000","region":null}]},{"id":"3bac4707-4238-42b3-8d2c-581db2453cff","directory":"aca-neogeo-the-king-of-fighters-2002","title":"ACA NEOGEO THE KING OF FIGHTERS 2002","compatibility":5,"releases":[{"id":"0100CFD00AFDE000","region":null}]},{"id":"3bbd9c00-bed7-4681-a685-d9e0c47c1817","directory":"dying-light-platinum-edition","title":"Dying Light: Platinum Edition","compatibility":4,"releases":[{"id":"01008C8012920000","region":null}]},{"id":"3bc21c1f-059c-4596-8ab1-a8980d9de9e1","directory":"astro-aqua-kitty","title":"ASTRO AQUA KITTY","compatibility":1,"releases":[{"id":"01007210128C0000","region":null}]},{"id":"3bc2b15b-0036-4f99-9658-7e64a71a2be1","directory":"greedroid","title":"Greedroid","compatibility":99,"releases":[{"id":"0100BD800DFA6000","region":null}]},{"id":"3bd42223-3640-462b-9d83-e087662998fe","directory":"beyond-enemy-lines-covert-operations","title":"Beyond Enemy Lines: Covert Operations","compatibility":99,"releases":[{"id":"010056500CAD8000","region":null}]},{"id":"3bd46875-5910-40d4-81eb-06bfc1f73f9e","directory":"sheltered","title":"Sheltered","compatibility":4,"releases":[{"id":"010036D00C362000","region":null}]},{"id":"3bd75a6b-87df-4acf-9142-b1cd50bdd6eb","directory":"squids-odyssey","title":"Squids Odyssey","compatibility":99,"releases":[{"id":"01008FF00A4B6000","region":null}]},{"id":"3bf3296c-030c-4c84-8fed-ccb62c76e87a","directory":"bunny-bounce","title":"Bunny Bounce","compatibility":99,"releases":[{"id":"01006AA0145C4000","region":null}]},{"id":"3bf3dd5a-0ca5-4218-83ca-a25b89ac1b12","directory":"widget-satchel","title":"Widget Satchel","compatibility":2,"releases":[{"id":"0100C7800CA06000","region":null}]},{"id":"3bf98440-1958-405c-bce0-e5ce0a982367","directory":"daggerhood","title":"Daggerhood","compatibility":4,"releases":[{"id":"0100A7F00C5FE000","region":null}]},{"id":"3bfe6eaf-e2a2-4cfd-b761-f38f11603f89","directory":"baldo-the-guardian-owls","title":"Baldo\nThe guardian owls","compatibility":0,"releases":[{"id":"0100A75005E92000","region":null}]},{"id":"3c0e9a01-ca10-49b5-9564-69a74d413884","directory":"robbotto-demo","title":"Robbotto Demo","compatibility":99,"releases":[{"id":"01009C400C5CA000","region":null}]},{"id":"3c1dae79-b6f1-4663-92a1-09356b627c94","directory":"squeakers","title":"Squeakers","compatibility":99,"releases":[{"id":"0100085012A0E000","region":null}]},{"id":"3c25b539-7a49-4e69-8046-a37773c3d6a9","directory":"crossbow-bloodnight","title":"CROSSBOW: Bloodnight","compatibility":1,"releases":[{"id":"0100D1D013536000","region":null}]},{"id":"3c2fafdd-2f7e-47b2-bf99-2518bff58f3f","directory":"world-tree-marche","title":"World Tree Marché","compatibility":99,"releases":[{"id":"0100D6A00BE66000","region":null}]},{"id":"3c3b099c-80e1-4383-b001-33f7cc886b22","directory":"merry-christmas-snowball-bubble","title":"Merry Christmas Snowball Bubble","compatibility":99,"releases":[{"id":"0100E4D0169E0000","region":null}]},{"id":"3c444f15-33b0-4ed5-ac0e-6ff353a619e9","directory":"nippon-marathon","title":"Nippon Marathon","compatibility":1,"releases":[{"id":"0100EF5008FC4000","region":null}]},{"id":"3c49dfb5-53d0-4964-b615-89e1fd97f923","directory":"dragon-snakes","title":"Dragon Snakes","compatibility":99,"releases":[{"id":"010083A00DEC8000","region":null}]},{"id":"3c5358b5-0626-4199-ae87-e76bf8cb1a1f","directory":"hyper-jam","title":"Hyper Jam","compatibility":3,"releases":[{"id":"0100B3300B4AA000","region":null}]},{"id":"3c673ee0-112e-42bc-b1ad-786251686eb1","directory":"monica-e-a-guarda-dos-coelhos","title":"Monica e a Guarda dos Coelhos","compatibility":3,"releases":[{"id":"0100C1400BD6A000","region":null}]},{"id":"3c6faf57-61c7-4121-a799-765559b8f1f7","directory":"jumping-stack-ball","title":"Jumping Stack Ball","compatibility":99,"releases":[{"id":"01008EF01426C000","region":null}]},{"id":"3c785436-b196-408b-87c3-e70e68cff8c8","directory":"pocket-stables","title":"Pocket Stables","compatibility":99,"releases":[{"id":"01008D400E1BA000","region":null}]},{"id":"3c94661a-2c86-48df-b083-024f8cac74d8","directory":"connection-rehaunted","title":"Connection reHaunted","compatibility":99,"releases":[{"id":"0100E84014C72000","region":null}]},{"id":"3c97de6a-862c-46a4-86c8-d2a58b22692b","directory":"tiki-brawl","title":"Tiki Brawl","compatibility":99,"releases":[{"id":"0100AEC012F16000","region":null}]},{"id":"3c9e76d2-d411-4808-a426-a738b2930b60","directory":"quad-fighter-k","title":"Quad Fighter K","compatibility":99,"releases":[{"id":"010067D00AC46000","region":null}]},{"id":"3ca3f698-23b3-4b69-89a8-cf1b179f53b9","directory":"coast-guard-beach-rescue-team","title":"Coast Guard: Beach Rescue Team","compatibility":99,"releases":[{"id":"01000EC01212E000","region":null}]},{"id":"3caa13fd-6e95-49f8-9076-fe09849d663f","directory":"star-ocean-first-departure-r","title":"STAR OCEAN First Departure R","compatibility":1,"releases":[{"id":"0100EBF00E702000","region":null}]},{"id":"3cad0c86-3f54-4503-9d0f-45fd0e2ca0d8","directory":"atomic-heist","title":"Atomic Heist","compatibility":99,"releases":[{"id":"01005FE00EC4E000","region":null}]},{"id":"3cbfd7de-79e7-45c6-b338-969b54a50594","directory":"sega-ages-puyo-puyo","title":"SEGA AGES Puyo Puyo","compatibility":2,"releases":[{"id":"01005F600CB0E000","region":null}]},{"id":"3cd1635c-3802-4e7a-872a-3c791ff20101","directory":"head-games","title":"Head Games","compatibility":99,"releases":[{"id":"0100CE001546E000","region":null}]},{"id":"3cd9eb98-d5ef-413c-80bd-00ca4dc58de7","directory":"hyperdrive-massacre","title":"Hyperdrive Massacre","compatibility":99,"releases":[{"id":"0100D4600E9B2000","region":null}]},{"id":"3ce4ffc2-59c2-4d27-bf43-f33cc07eae55","directory":"crypt-of-the-serpent-king","title":"Crypt of the Serpent King","compatibility":1,"releases":[{"id":"0100BA100E160000","region":null}]},{"id":"3cea0b7b-5d4f-4522-a64b-34e898c42969","directory":"super-meat-boy","title":"Super Meat Boy","compatibility":1,"releases":[{"id":"01004F8006A78000","region":null}]},{"id":"3cf06d1f-2461-4bea-a1d4-80303af36cd1","directory":"hero-pop","title":"Hero Pop","compatibility":99,"releases":[{"id":"010026F01162E000","region":null}]},{"id":"3cf58f47-e1af-4e68-a5c8-5a00a44367a0","directory":"magic-twins","title":"Magic Twins","compatibility":99,"releases":[{"id":"010036F014100000","region":null}]},{"id":"3cf6c26f-7cb1-456e-96d9-384761d2faee","directory":"arcade-archives-burger-time","title":"Arcade Archives Burger Time","compatibility":3,"releases":[{"id":"0100EBB012400000","region":null}]},{"id":"3cf93ff7-43ff-4929-9524-a1b8b45c885f","directory":"medulla","title":"Medulla","compatibility":99,"releases":[{"id":"01008A300F61E000","region":null}]},{"id":"3cfaecd3-8bb1-4583-ac34-2c49eb9cce16","directory":"hamsterdam","title":"Hamsterdam","compatibility":99,"releases":[{"id":"0100FA800DF86000","region":null}]},{"id":"3d232d04-1f63-4924-b285-d0ee6e95dcb5","directory":"kensh","title":"Kenshō","compatibility":99,"releases":[{"id":"01000F000AAF0000","region":null}]},{"id":"3d3b1286-c51d-4c32-9816-315bc1de20f9","directory":"whiskey-mafia-franks-story","title":"Whiskey Mafia: Frank's Story","compatibility":99,"releases":[{"id":"0100B9A015AF6000","region":null}]},{"id":"3d4163d3-f838-45cc-81d9-5b1b8679844e","directory":"another-lost-phone-lauras-story","title":"Another Lost Phone: Laura's Story","compatibility":1,"releases":[{"id":"010008400A268000","region":null}]},{"id":"3d456046-8b7f-45b6-a13a-2ac8c87a1115","directory":"cadence-of-hyrule-crypt-of-the-necrodancer-featuring-the-legend-of-zelda","title":"Cadence of Hyrule – Crypt of the NecroDancer Featuring The Legend of Zelda","compatibility":0,"releases":[{"id":"01000B900D8B0000","region":null}]},{"id":"3d4ac65f-6ef9-49a6-84b5-26160302ace8","directory":"mad-rat-dead","title":"Mad Rat Dead","compatibility":1,"releases":[{"id":"0100E6701231C000","region":null}]},{"id":"3d5af242-bd82-4e08-a299-503c24102869","directory":"flaskoman","title":"Flaskoman","compatibility":99,"releases":[{"id":"010098E01645E000","region":null}]},{"id":"3d5c6dda-dc44-42a1-b2ff-de6feeb62592","directory":"yumenikki-dream-diary-","title":"YUMENIKKI -DREAM DIARY-","compatibility":3,"releases":[{"id":"0100D6B00CD88000","region":null}]},{"id":"3d5f91b1-9ee3-49cf-93b6-b96e945fbcf2","directory":"sky-gamblers-afterburner","title":"Sky Gamblers - Afterburner","compatibility":4,"releases":[{"id":"010003F00CC98000","region":null}]},{"id":"3d74f94a-fcef-4102-b76f-7ba4554116c2","directory":"sushi-time","title":"Sushi Time!","compatibility":99,"releases":[{"id":"010096300D9C0000","region":null}]},{"id":"3d7790e7-cc8f-4a28-93f5-02fd881ca8f5","directory":"zombiotik","title":"Zombiotik","compatibility":99,"releases":[{"id":"010045E01057E000","region":null}]},{"id":"3d77915f-c75a-4e46-84cb-44737e273ac3","directory":"screencheat-unplugged","title":"Screencheat: Unplugged","compatibility":99,"releases":[{"id":"01009BB00AD62000","region":null}]},{"id":"3d92595c-3044-467d-8e03-30678bfdf32b","directory":"arcade-archives-scramble","title":"Arcade Archives Scramble","compatibility":99,"releases":[{"id":"0100F9D00F176000","region":null}]},{"id":"3d962468-0605-4b5a-b687-ffad65333ac0","directory":"out-of-space-couch-edition","title":"Out of Space: Couch Edition","compatibility":99,"releases":[{"id":"0100C67011B14000","region":null}]},{"id":"3da721be-32f8-4469-9100-9e908b40bcc0","directory":"dungeon-of-the-endless","title":"Dungeon of the Endless","compatibility":1,"releases":[{"id":"010034300F0E2000","region":null}]},{"id":"3dae824b-c7a3-4ed1-af8d-59c177caec97","directory":"calculation-castle-grecos-ghostly-challenge-addition","title":"Calculation Castle : Greco's Ghostly Challenge \"Addition\"","compatibility":99,"releases":[{"id":"01004B500AB88000","region":null}]},{"id":"3db3aa1f-5fc3-4088-ae4e-6241f58802b7","directory":"otokomizu","title":"Otokomizu","compatibility":99,"releases":[{"id":"01006AA00EE44000","region":null}]},{"id":"3dbc85e1-2008-4d8b-93fe-39c7200cd129","directory":"sakura-succubus","title":"Sakura Succubus","compatibility":0,"releases":[{"id":"0100375012E50000","region":null}]},{"id":"3dd14364-6fc0-405b-a3c2-7f05e7ba3bc1","directory":"world-of-solitaire","title":"World Of Solitaire","compatibility":99,"releases":[{"id":"01009D50103E8000","region":null}]},{"id":"3de09d78-20b5-4404-b0f7-ccf34d22a5ab","directory":"aca-neogeo-the-last-blade","title":"ACA NEOGEO THE LAST BLADE","compatibility":4,"releases":[{"id":"0100A5A004FB2000","region":null}]},{"id":"3de70c9f-2c36-4e7e-aed5-d1a63c0b00af","directory":"professional-farmer-nintendo-switch-edition","title":"Professional Farmer: Nintendo Switch Edition","compatibility":99,"releases":[{"id":"010077B00BDD8000","region":null}]},{"id":"3de7e3ea-c849-451e-bb3d-b41dee6122e0","directory":"balance-blox","title":"Balance Blox","compatibility":5,"releases":[{"id":"01000D700D2D6000","region":null}]},{"id":"3dea191e-669d-415c-9c84-548921fd0ecf","directory":"gyro-boss-dx","title":"Gyro Boss DX","compatibility":99,"releases":[{"id":"0100A8E00DB92000","region":null}]},{"id":"3df72b20-622e-4cdf-ac19-e90ec3a786a7","directory":"logic-puzzle-collection-sudoku-permudoku-nonodoku","title":"Logic Puzzle Collection: Sudoku - Permudoku - Nonodoku","compatibility":99,"releases":[{"id":"0100EEE012FE4000","region":null}]},{"id":"3df762e1-72ab-4212-a5ff-2bf09715897c","directory":"dont-sink","title":"Don't Sink","compatibility":99,"releases":[{"id":"0100C4D00B608000","region":null}]},{"id":"3e095e75-c70f-451e-a31a-8b508f4e212d","directory":"top-boat-racing-simulator-3d","title":"Top Boat: Racing Simulator 3D","compatibility":99,"releases":[{"id":"01001B9015E7A000","region":null}]},{"id":"3e098778-d647-4548-b02a-504552870184","directory":"star-wars-jedi-knight-ii-jedi-outcast","title":"STAR WARS Jedi Knight II: Jedi Outcast","compatibility":4,"releases":[{"id":"0100BB500EACA000","region":null}]},{"id":"3e0de233-2770-48c8-ba07-d3ab52846c1d","directory":"bash-the-bear","title":"Bash The Bear","compatibility":4,"releases":[{"id":"010023300CD52000","region":null}]},{"id":"3e16b16e-1336-40fc-94dc-6889bcf4126c","directory":"12-labours-of-hercules-iv-mother-nature","title":"12 Labours of Hercules IV: Mother Nature","compatibility":99,"releases":[{"id":"0100FD50148AA000","region":null}]},{"id":"3e19b5fa-f0f5-4589-b6ba-7bb81f538795","directory":"wheels-of-aurelia","title":"Wheels of Aurelia","compatibility":99,"releases":[{"id":"0100DFC00405E000","region":null}]},{"id":"3e25bcce-9ecf-42cd-a2e9-27cd7185ccc5","directory":"whispering-willows","title":"Whispering Willows","compatibility":1,"releases":[{"id":"010015A00AF1E000","region":null}]},{"id":"3e36dc2a-ebe9-412c-b9ff-e87a69f16ec6","directory":"zomb","title":"ZOMB","compatibility":99,"releases":[{"id":"0100E2B00E064000","region":null}]},{"id":"3e43759a-dc74-445e-b07a-32ff994e4cf2","directory":"dreaming-sarah","title":"Dreaming Sarah","compatibility":99,"releases":[{"id":"010048F012C24000","region":null}]},{"id":"3e46122a-323a-463c-bd06-6c535ec09c6c","directory":"gnomes-garden-new-home","title":"Gnomes Garden: New Home","compatibility":99,"releases":[{"id":"010085B00CCEE000","region":null}]},{"id":"3e47276b-8502-415a-9e57-c7a6b4a6fa5f","directory":"bards-gold-nintendo-switch-edition","title":"Bard's Gold - Nintendo Switch Edition","compatibility":5,"releases":[{"id":"0100DEB00D76E000","region":null}]},{"id":"3e4a1dc1-2215-4deb-b49e-89b9d1a2af34","directory":"hot-springs-story","title":"Hot Springs Story","compatibility":3,"releases":[{"id":"010090B00B1F0000","region":null}]},{"id":"3e51618f-c638-4252-82b1-053174e02c5e","directory":"repressed","title":"Repressed","compatibility":99,"releases":[{"id":"0100771011472000","region":null}]},{"id":"3e68b4fd-53db-4162-9210-f0a4283f3501","directory":"twist-bounce","title":"Twist&Bounce","compatibility":99,"releases":[{"id":"0100E18012A64000","region":null}]},{"id":"3e69c395-750d-4318-a708-ca093cba2d06","directory":"witch-hunter","title":"Witch Hunter","compatibility":99,"releases":[{"id":"0100E600151BC000","region":null}]},{"id":"3e6dd7e1-79f9-49e5-b25f-299c5836c5be","directory":"agony","title":"Agony","compatibility":3,"releases":[{"id":"010072600D21C000","region":null}]},{"id":"3e81a1ca-d054-4bb5-b1eb-c1d2e897eb1a","directory":"world-soccer-pinball","title":"World Soccer Pinball","compatibility":99,"releases":[{"id":"01001E300B038000","region":null}]},{"id":"3e85aee1-f560-469a-a7fa-005549f0e3da","directory":"yonder-the-cloud-catcher-chronicles","title":"Yonder: The Cloud Catcher Chronicles","compatibility":2,"releases":[{"id":"0100534009FF2000","region":null}]},{"id":"3e972a74-333f-4577-b520-672cc3b3c68a","directory":"strife-veteran-edition","title":"Strife: Veteran Edition","compatibility":4,"releases":[{"id":"0100BDE012928000","region":null}]},{"id":"3ea91cbd-d621-4bf3-a5ad-17a629a11d74","directory":"clumsy-rush","title":"Clumsy Rush","compatibility":99,"releases":[{"id":"010084201056A000","region":null}]},{"id":"3eb9f316-b195-4edb-9387-eb53dbed6c28","directory":"sky-rogue","title":"Sky Rogue","compatibility":99,"releases":[{"id":"0100C5700434C000","region":null}]},{"id":"3edcb8c3-3ece-4550-b839-4e46530171ae","directory":"bad-dream-coma","title":"Bad Dream: Coma","compatibility":99,"releases":[{"id":"01000CB00D094000","region":null}]},{"id":"3ee07ee3-7d29-4ba4-900b-02aaac245896","directory":"shinrai-broken-beyond-despair","title":"SHINRAI - Broken Beyond Despair","compatibility":99,"releases":[{"id":"0100F58016212000","region":null}]},{"id":"3ee3a360-f059-4c03-a43f-4724c64553dc","directory":"swimsanity","title":"Swimsanity!","compatibility":1,"releases":[{"id":"010049D00C8B0000","region":null}]},{"id":"3eeca59b-fe1a-4de7-834e-2342f030ad19","directory":"reventure","title":"Reventure","compatibility":99,"releases":[{"id":"0100E2E00EA42000","region":null}]},{"id":"3eed2a33-46c8-4fd7-b94f-c27fdc5afcd0","directory":"big-brain-academy-brain-vs-brain","title":"Big Brain Academy™: Brain vs. Brain","compatibility":3,"releases":[{"id":"0100620012D6E000","region":null}]},{"id":"3eefd188-1a22-4bd1-80e6-22e76c202563","directory":"symmetry","title":"SYMMETRY","compatibility":99,"releases":[{"id":"0100C1C00D01C000","region":null}]},{"id":"3ef38437-7a76-4ffb-90ed-f321577b611b","directory":"storm-in-a-teacup","title":"Storm In A Teacup","compatibility":99,"releases":[{"id":"0100B2300B932000","region":null}]},{"id":"3ef40d63-2b5a-45b8-8ccc-670eda961f70","directory":"make-a-killing","title":"Make a Killing","compatibility":99,"releases":[{"id":"010059F012984000","region":null}]},{"id":"3efa1d7e-d133-4315-8194-402b83c049bd","directory":"the-sisters-party-of-the-year","title":"The Sisters - Party of the Year","compatibility":99,"releases":[{"id":"0100F8F014080000","region":null}]},{"id":"3efa9838-838b-4e66-b88e-25f30f9ba069","directory":"amaneswitch","title":"雨音スイッチ -AmaneSwitch-","compatibility":99,"releases":[{"id":"0100D12015CCA000","region":null}]},{"id":"3f085e2a-c210-4b28-bbba-149bd1661eaa","directory":"akash-path-of-the-five","title":"Akash: Path of the Five","compatibility":99,"releases":[{"id":"01009A800F0C8000","region":null}]},{"id":"3f0f3195-58d1-4fb3-8773-07c3850006f1","directory":"omg-zombies","title":"OMG Zombies!","compatibility":0,"releases":[{"id":"01006DB00D970000","region":null}]},{"id":"3f1208ce-8be1-4344-a081-c46acad6d2d4","directory":"missing-features-2d","title":"Missing Features: 2D","compatibility":2,"releases":[{"id":"0100E3601495C000","region":null}]},{"id":"3f129cf8-9e9e-4a61-a2c7-53890fa2a50c","directory":"drowning-demo","title":"Drowning (Demo)","compatibility":99,"releases":[{"id":"010049900D3C6000","region":null}]},{"id":"3f2e8f4d-f01d-45ee-93b0-b11fa7e89b55","directory":"henry-the-hamster-handler","title":"Henry The Hamster Handler","compatibility":0,"releases":[{"id":"010007E00A1A4000","region":null}]},{"id":"3f355aff-67c8-430d-9acf-9e39c7012912","directory":"castlevania-advance-collection","title":"Castlevania Advance Collection","compatibility":2,"releases":[{"id":"0100B33014710000","region":null}]},{"id":"3f391c1f-f3d0-4a93-9951-b793cd57c502","directory":"arcade-archives-frisky-tom","title":"Arcade Archives Frisky Tom","compatibility":99,"releases":[{"id":"0100B820144C2000","region":null}]},{"id":"3f4544c5-486e-402f-852d-cca71a220efa","directory":"windjammers","title":"Windjammers","compatibility":1,"releases":[{"id":"010048800B638000","region":null}]},{"id":"3f4f6bbb-a2fc-4ef4-9915-faa0bd733b31","directory":"karma-incarnation-1","title":"Karma. Incarnation 1","compatibility":99,"releases":[{"id":"0100FDD014EF0000","region":null}]},{"id":"3f5848f3-847d-45e9-97b3-de9b022b484d","directory":"super-beat-sports","title":"Super Beat Sports","compatibility":4,"releases":[{"id":"0100F7000464A000","region":null}]},{"id":"3f641703-0d90-4655-984a-d075d254056f","directory":"labyrinth-city-pierre-the-maze-detective","title":"Labyrinth City: Pierre the Maze Detective","compatibility":1,"releases":[{"id":"01000D50144D2000","region":null}]},{"id":"3f6b4e28-bb9f-4af5-870c-7f29fb83b686","directory":"thronebreaker-the-witcher-tales","title":"Thronebreaker: The Witcher Tales","compatibility":2,"releases":[{"id":"0100E910103B4000","region":null}]},{"id":"3f6f6be1-373e-4205-bf21-13e881583df9","directory":"war-solution-casual-math-game","title":"War Solution - Casual Math Game","compatibility":99,"releases":[{"id":"01001B0013A50000","region":null}]},{"id":"3f75b2a3-a53f-4266-a277-d328fdd8e21b","directory":"zero-strain","title":"Zero Strain","compatibility":1,"releases":[{"id":"01004B001058C000","region":null}]},{"id":"3f7ceea6-f2cf-466c-b88c-be83a538f81a","directory":"hammerwatch","title":"Hammerwatch","compatibility":4,"releases":[{"id":"01003B9007E86000","region":null}]},{"id":"3f7dc597-f2e5-4df0-9d01-3c2d0357cf3d","directory":"rollercoaster-tycoon-adventures","title":"RollerCoaster Tycoon Adventures","compatibility":1,"releases":[{"id":"0100E3900B598000","region":null}]},{"id":"3f8c83d1-dd8f-483a-a72b-b448eb3c2d1d","directory":"chameleon","title":"Chameleon","compatibility":99,"releases":[{"id":"0100DA900FCEA000","region":null}]},{"id":"3f926382-6c4f-4c5d-a598-744f8ae2bbdf","directory":"void-bastards","title":"Void Bastards","compatibility":1,"releases":[{"id":"0100D010113A8000","region":null}]},{"id":"3f968a2a-7a34-47c0-a6f9-91750c023e5c","directory":"caesar-empire-war","title":"CAESAR EMPIRE WAR","compatibility":99,"releases":[{"id":"0100B7E0153A2000","region":null}]},{"id":"3faa3f63-5488-42ef-a462-19d5d287c362","directory":"ultra-hyperball","title":"Ultra Hyperball","compatibility":99,"releases":[{"id":"01009C000415A000","region":null}]},{"id":"3fb592f0-a8af-4479-b48e-d7e8713406a8","directory":"hellmut-the-badass-from-hell","title":"Hellmut: The Badass from Hell","compatibility":99,"releases":[{"id":"0100A0300D1A0000","region":null}]},{"id":"3fbeb66d-ab1d-463c-904b-e4952f9feafc","directory":"asterix-obelix-xxl-3-the-crystal-menhir","title":"Asterix & Obelix XXL 3  - The Crystal Menhir","compatibility":3,"releases":[{"id":"010081500EA1E000","region":null}]},{"id":"3fc03bd7-d0ec-4344-a7f8-8d428ec615e6","directory":"one-piece-unlimited-world-red-deluxe-edition","title":"ONE PIECE: Unlimited World Red Deluxe Edition","compatibility":1,"releases":[{"id":"0100574002AF4000","region":null}]},{"id":"3fca3f67-751d-41ce-a94a-9d719498767e","directory":"kingdom-tales","title":"Kingdom Tales","compatibility":99,"releases":[{"id":"0100DBE013B78000","region":null}]},{"id":"3ffa3e6b-2881-4a0b-b07b-13071e342aca","directory":"super-disc-soccer","title":"Super Disc Soccer","compatibility":99,"releases":[{"id":"01002AB014B34000","region":null}]},{"id":"3fffab85-965f-49ef-8d98-702b3ee5ca02","directory":"the-silver-case-2425","title":"The Silver Case 2425","compatibility":2,"releases":[{"id":"0100F1701434E000","region":null}]},{"id":"400e00a7-3551-4964-9152-1b343975d41b","directory":"code-realize-~guardian-of-rebirth~","title":"Code: Realize ~Guardian of Rebirth~","compatibility":0,"releases":[{"id":"010021D00F404000","region":null}]},{"id":"4015b323-8bae-4e73-9a2c-a1cf049ceeca","directory":"dragon-audit","title":"Dragon Audit","compatibility":99,"releases":[{"id":"0100DBC00BD5A000","region":null}]},{"id":"401fca48-94bd-4d68-bd8e-9352fcfdf5bf","directory":"missile-command-recharged","title":"Missile Command: Recharged","compatibility":0,"releases":[{"id":"0100745011D28000","region":null}]},{"id":"40281524-9302-498e-b09e-05eced12b569","directory":"hollow","title":"Hollow","compatibility":99,"releases":[{"id":"0100F210061E8000","region":null}]},{"id":"403284be-f6b5-4cfa-bd19-f918d5dcf51d","directory":"conjurer-andys-repeatable-dungeon","title":"Conjurer Andy's Repeatable Dungeon","compatibility":99,"releases":[{"id":"0100C8500CBC4000","region":null}]},{"id":"4037bc6e-1381-470d-bd41-bf5a08d1b221","directory":"american-hero","title":"American Hero","compatibility":99,"releases":[{"id":"01004D6013EE4000","region":null}]},{"id":"40383df6-ad2b-465b-b63e-2cb21dc488ea","directory":"arcade-archives-hyper-sports","title":"Arcade Archives HYPER SPORTS","compatibility":99,"releases":[{"id":"010065C00F976000","region":null}]},{"id":"403ee0be-8245-459d-8c71-efbae4b87803","directory":"oddmar","title":"Oddmar","compatibility":0,"releases":[{"id":"01001F100FA04000","region":null}]},{"id":"4059e641-85df-4174-87a7-6e94d46b9aa4","directory":"wartile","title":"WARTILE","compatibility":99,"releases":[{"id":"0100CD900FB24000","region":null}]},{"id":"40664a1e-ddd9-4a8e-a80e-c3d7feb80403","directory":"kontrakt","title":"Kontrakt","compatibility":99,"releases":[{"id":"01008A6014E8E000","region":null}]},{"id":"40697286-0795-4763-bbbe-d51319dfd4fd","directory":"gato-roboto","title":"Gato Roboto","compatibility":5,"releases":[{"id":"010025500C098000","region":null}]},{"id":"40764927-354a-4471-9e01-d2e83f4067df","directory":"retro-classix-2in1-pack-bad-dudes-two-crude-dudes","title":"Retro Classix 2in1 pack: Bad Dudes & Two Crude Dudes","compatibility":99,"releases":[{"id":"0100772012186000","region":null}]},{"id":"4077bf7e-90b6-4d17-811b-4532f98ab403","directory":"lost-artifacts-time-machine","title":"Lost Artifacts: Time Machine","compatibility":99,"releases":[{"id":"010005400EC0C000","region":null}]},{"id":"408c60d3-e897-4ce7-bf6a-a09275ba14d9","directory":"puzzle-puppers-demo","title":"Puzzle Puppers Demo","compatibility":99,"releases":[{"id":"010021300ABDE000","region":null}]},{"id":"40bd02c3-235e-4834-a2d8-01a86cd38054","directory":"blizzard-r-arcade-collection","title":"Blizzard® Arcade Collection","compatibility":5,"releases":[{"id":"0100743013D56000","region":null}]},{"id":"40c4d81c-2e47-4164-9705-8617aaa5671f","directory":"ok-ko-lets-play-heroes","title":"OK K.O.! Let’s Play Heroes","compatibility":99,"releases":[{"id":"010030B00B2F6000","region":null}]},{"id":"40c7060c-fee5-4f07-b7a4-0575a16cf5fc","directory":"saints-row-iv-re-elected","title":"Saints Row IV: Re-Elected","compatibility":3,"releases":[{"id":"01008D100D43E000","region":null}]},{"id":"40ceca45-27ff-4b9a-8f71-ad2f7105d449","directory":"the-forgotten-city-cloud-version","title":"The Forgotten City - Cloud Version","compatibility":99,"releases":[{"id":"01009830159CA000","region":null}]},{"id":"40d39270-5e04-48d8-a0f2-68aac7405e3e","directory":"weakwood-throne","title":"WeakWood Throne","compatibility":99,"releases":[{"id":"0100011012A70000","region":null}]},{"id":"40d607ac-f0c6-44b1-84a4-e1f57ad794a3","directory":"the-gardens-between","title":"The Gardens Between","compatibility":2,"releases":[{"id":"0100B13007A6A000","region":null}]},{"id":"40d7aa7d-392d-43f6-a110-f99ece6c83d0","directory":"buissons","title":"Buissons","compatibility":99,"releases":[{"id":"010040F015A58000","region":null}]},{"id":"40da9f43-5421-4d78-b239-1bb24a6ff6d8","directory":"spooky-ghosts-dot-com","title":"Spooky Ghosts Dot Com","compatibility":99,"releases":[{"id":"0100C6100D75E000","region":null}]},{"id":"40dc0daa-9a6b-498c-96a7-52532a9397fe","directory":"kingdoms-of-amalur-re-reckoning","title":"Kingdoms of Amalur: Re-Reckoning","compatibility":2,"releases":[{"id":"0100EF50132BE000","region":null}]},{"id":"40dde633-5577-49f7-9cf0-a3f45d2bd720","directory":"loco-sports","title":"LocO-SportS","compatibility":99,"releases":[{"id":"0100BA000FC9C000","region":null}]},{"id":"40e68bb0-53e1-4934-91d9-9c43bbf49fcd","directory":"i-wanna-fly","title":"I wanna fly","compatibility":99,"releases":[{"id":"010025C00D8A2000","region":null}]},{"id":"40eba49c-c81f-4c4f-b953-8f0f4c3d2ded","directory":"indie-puzzle-bundle-vol-1","title":"Indie Puzzle Bundle Vol 1","compatibility":99,"releases":[{"id":"0100A2101107C000","region":null}]},{"id":"40efaa20-2c73-4035-9a07-6497572e4f07","directory":"arcade-archives-yie-ar-kung-fu","title":"Arcade Archives Yie Ar KUNG-FU","compatibility":99,"releases":[{"id":"01003FB00E954000","region":null}]},{"id":"40f56e13-674a-4270-85f3-b812c9293cd0","directory":"antonball-deluxe","title":"Antonball Deluxe","compatibility":99,"releases":[{"id":"01007330142E0000","region":null}]},{"id":"41073382-1387-4541-bdad-dd7211bed571","directory":"forager","title":"Forager","compatibility":5,"releases":[{"id":"01001D200BCC4000","region":null}]},{"id":"410a1745-51fc-4268-ac05-e8b2a2816f26","directory":"among-us","title":"Among Us","compatibility":4,"releases":[{"id":"0100B0C013912000","region":null}]},{"id":"41153b90-f364-44f7-83f1-ad546777226a","directory":"arcade-archives-guzzler","title":"Arcade Archives GUZZLER","compatibility":99,"releases":[{"id":"010025E01450E000","region":null}]},{"id":"41153ccb-3e3f-436a-9ab5-900194d0dd0c","directory":"gun-skaters","title":"Gun Skaters","compatibility":99,"releases":[{"id":"010055601349E000","region":null}]},{"id":"4132bd2a-3ad3-4349-b1e6-0277fc2715b3","directory":"blink-rogues","title":"Blink: Rogues","compatibility":99,"releases":[{"id":"0100FAC0148C2000","region":null}]},{"id":"41338c70-db0b-49ec-ae1b-bece1ec97292","directory":"dusty-raging-fist","title":"Dusty Raging Fist","compatibility":99,"releases":[{"id":"010097D00402C000","region":null}]},{"id":"413de0cd-90bd-4549-8a4c-b06c753f45aa","directory":"dirt-trackin-2","title":"Dirt Trackin 2","compatibility":99,"releases":[{"id":"0100695011280000","region":null}]},{"id":"4141b54e-c26c-46c6-8493-2c7a33663f12","directory":"lets-sing-2018","title":"Let's Sing 2018","compatibility":3,"releases":[{"id":"0100ECB00A0FC000","region":null}]},{"id":"41476934-8aa3-448b-b250-3801cfb3cf9b","directory":"azure-striker-gunvolt-striker-pack","title":"Azure Striker GUNVOLT: STRIKER PACK","compatibility":1,"releases":[{"id":"0100192003FA4000","region":null}]},{"id":"414d994e-926c-4832-a9e1-2d7fbabebba7","directory":"pool-billiard","title":"Pool BILLIARD","compatibility":99,"releases":[{"id":"0100F490066A6000","region":null}]},{"id":"41689744-625f-4c81-a705-060d1d861783","directory":"glass-masquerade-double-pack","title":"Glass Masquerade Double Pack","compatibility":99,"releases":[{"id":"01002FD01191A000","region":null}]},{"id":"416b3ebc-efeb-436c-b179-0ff94461af38","directory":"womenup-super-puzzles-dream","title":"#womenUp, Super Puzzles Dream","compatibility":99,"releases":[{"id":"01003DB011AE8000","region":null}]},{"id":"416c3f31-308a-4d21-8f04-52315cf0bab1","directory":"ailment","title":"Ailment","compatibility":2,"releases":[{"id":"01006E8011C1E000","region":null}]},{"id":"419c8c02-5ac0-4bd0-9c75-b3378f49b568","directory":"sausage-sports-club","title":"Sausage Sports Club","compatibility":0,"releases":[{"id":"01006EE00380C000","region":null}]},{"id":"419d6ea0-8af3-4d91-ae55-52e5efabe126","directory":"ara-fell-enhanced-edition","title":"Ara Fell: Enhanced Edition","compatibility":0,"releases":[{"id":"010080B0115BA000","region":null}]},{"id":"41a6cee7-b8d6-4b69-b024-cc5a54481b19","directory":"sturmfront-the-mutant-war-ubel-edition","title":"SturmFront - The Mutant War: Übel Edition","compatibility":0,"releases":[{"id":"010029701420A000","region":null}]},{"id":"41acef75-39a8-412a-88d7-c4e31389acfc","directory":"new-super-luckys-tale","title":"New Super Lucky's Tale","compatibility":1,"releases":[{"id":"010017700B6C2000","region":null}]},{"id":"41be1343-e2a9-4a64-9033-2b181b328d28","directory":"shark-copter-vs-zombie-dancers","title":"Shark Copter vs. Zombie Dancers","compatibility":99,"releases":[{"id":"01007D50136DE000","region":null}]},{"id":"41bf9b3f-6785-49db-998c-6f3761667e07","directory":"sophias-world","title":"Sophia's World","compatibility":99,"releases":[{"id":"0100952016222000","region":null}]},{"id":"41cb6f85-7e57-4b35-b8f1-ca76aa5e2cb6","directory":"under-depths-of-fear","title":"Under: Depths of Fear","compatibility":99,"releases":[{"id":"0100E4C013280000","region":null}]},{"id":"41d185f9-4472-4342-94cb-f59b5a1c5ff1","directory":"battle-hunters","title":"Battle Hunters","compatibility":99,"releases":[{"id":"0100A3B011EDE000","region":null}]},{"id":"41ddfeab-77db-4de9-92cc-21f72f8d368a","directory":"poker-texas-omaha-holdem","title":"Poker - Texas & Omaha Hold'em","compatibility":99,"releases":[{"id":"0100BF10168C8000","region":null}]},{"id":"41dfd715-461f-42c0-99c6-0eb41f6d1e06","directory":"potion-party","title":"Potion Party","compatibility":0,"releases":[{"id":"01000A4014596000","region":null}]},{"id":"41e74317-494a-4f1c-99d0-814d3e949175","directory":"colt-canyon","title":"Colt Canyon","compatibility":99,"releases":[{"id":"0100B9801210A000","region":null}]},{"id":"41f17264-3f9b-4465-8bfb-a43f57d4186f","directory":"midnight-deluxe-demo","title":"Midnight Deluxe Demo","compatibility":99,"releases":[{"id":"0100ACC00A56E000","region":null}]},{"id":"41fce889-170a-4e05-9685-c349adfe83f2","directory":"soldam-drop-connect-erase","title":"Soldam: Drop, Connect, Erase","compatibility":99,"releases":[{"id":"0100A290048B0000","region":null}]},{"id":"420117b5-3aa7-460e-b5fb-90e99e7c1efe","directory":"snipperclips-cut-it-out-together-demo","title":"Snipperclips – Cut it out, together! ™ Demo","compatibility":99,"releases":[{"id":"0100D87002EE0000","region":null}]},{"id":"420a9ec9-a29a-4d0b-a03b-aa1b5a9b6922","directory":"galaxy-champions-tv","title":"Galaxy Champions TV","compatibility":1,"releases":[{"id":"010023500EF76000","region":null}]},{"id":"42169e65-311d-4b3f-b65c-623db1822c1a","directory":"warface","title":"Warface","compatibility":99,"releases":[{"id":"0100D1E00E972000","region":null}]},{"id":"4219fd53-8a6f-4e96-830f-acc49b6d5722","directory":"arcade-archives-a-jax","title":"Arcade Archives A-JAX","compatibility":99,"releases":[{"id":"0100C240148E4000","region":null}]},{"id":"42278096-42e0-4636-81d5-6351607cd8b8","directory":"apex-legends","title":"Apex Legends™","compatibility":99,"releases":[{"id":"0100D9500FC66000","region":null}]},{"id":"4233c036-603e-49e8-919d-558134a446b2","directory":"gems-of-magic-lost-family","title":"Gems of Magic: Lost Family","compatibility":99,"releases":[{"id":"0100383012DF2000","region":null}]},{"id":"42394bba-53cf-4d64-a1ba-8b613656d951","directory":"interrogation-you-will-be-deceived","title":"Interrogation: You will be deceived","compatibility":99,"releases":[{"id":"010041501005E000","region":null}]},{"id":"42409727-05a3-41cc-8826-ce4f1cf89d47","directory":"rev-up-rc-grand-prix","title":"Rev Up! RC Grand Prix","compatibility":0,"releases":[{"id":"0100CED014550000","region":null}]},{"id":"42453b0d-7d4c-4192-8e42-fa88547aecbb","directory":"served","title":"Served!","compatibility":99,"releases":[{"id":"0100B2C00E4DA000","region":null}]},{"id":"424f096a-abff-48bf-b96e-91cb30921a9a","directory":"war-torn-dreams","title":"War-Torn Dreams","compatibility":99,"releases":[{"id":"0100563011B4A000","region":null}]},{"id":"424f92bb-fca3-4347-9467-60eac35f9a3d","directory":"retro-classix-collection-1-data-east","title":"Retro Classix Collection #1: Data East","compatibility":99,"releases":[{"id":"010049E01218C000","region":null}]},{"id":"4252dc69-e388-4a9e-a75e-0f8443861627","directory":"witch-and-hero-2","title":"Witch & Hero 2","compatibility":0,"releases":[{"id":"0100F4F00FD4E000","region":null}]},{"id":"42666021-bbd4-46ac-afb9-0400809bdc90","directory":"queens-quest-2-stories-of-forgotten-past","title":"Queen's Quest 2: Stories of Forgotten Past","compatibility":99,"releases":[{"id":"01004C400CCCA000","region":null}]},{"id":"42724e27-0773-4fd0-829c-ec07981f064d","directory":"flipon","title":"Flipon","compatibility":99,"releases":[{"id":"01007800122C8000","region":null}]},{"id":"4272fbf0-0361-4dac-bafe-84147bd1edc0","directory":"mastho-is-together","title":"Mastho is Together","compatibility":0,"releases":[{"id":"01006F50152B8000","region":null}]},{"id":"427a15f9-eb07-4531-b4e0-3b303d5e0b85","directory":"aca-neogeo-samurai-shodown-v-special","title":"ACA NEOGEO SAMURAI SHODOWN V SPECIAL","compatibility":5,"releases":[{"id":"010049F00AFE8000","region":null}]},{"id":"427e92cf-b78e-4856-8d54-7699b6d0509f","directory":"johnny-turbos-arcade-nitro-ball","title":"Johnny Turbo's Arcade: Nitro Ball","compatibility":99,"releases":[{"id":"0100D07002CD6000","region":null}]},{"id":"42a12e5f-6a06-4792-bea1-b02a7da569e1","directory":"american-fugitive","title":"American Fugitive","compatibility":1,"releases":[{"id":"010002B00C534000","region":null}]},{"id":"42ac82db-7ab9-4d17-a876-414e17e23cd3","directory":"world-cruise-story","title":"World Cruise Story","compatibility":99,"releases":[{"id":"01001CC00D522000","region":null}]},{"id":"42bc0f13-5fc5-4dbb-8efe-3e28946a27ff","directory":"octahedron-transfixed-edition-demo","title":"Octahedron: Transfixed Edition Demo","compatibility":99,"releases":[{"id":"010092D00CC12000","region":null}]},{"id":"42ccae15-130a-4cd2-bb03-51fdb5d976b6","directory":"sega-ages-shinobi","title":"SEGA AGES Shinobi","compatibility":0,"releases":[{"id":"010076800E30E000","region":null}]},{"id":"42d92306-0c6f-4945-864d-60c2b374136e","directory":"bullet-trail","title":"Bullet Trail","compatibility":99,"releases":[{"id":"010057B013CA2000","region":null}]},{"id":"42facacc-8e06-40d6-b837-d812b77cac0d","directory":"my-little-fast-food-booth","title":"My little fast food booth","compatibility":99,"releases":[{"id":"0100A27014B36000","region":null}]},{"id":"43071d1a-a193-40e3-991e-04d420518239","directory":"barrier-x","title":"BARRIER X","compatibility":0,"releases":[{"id":"01007D100F1A6000","region":null}]},{"id":"431cd89f-1843-4f77-9f43-1a0f0c0dfd8b","directory":"tank-battle-retro","title":"Tank Battle Retro","compatibility":99,"releases":[{"id":"0100401014ED8000","region":null}]},{"id":"43226300-fe6a-46e1-a1e0-481b98917ec1","directory":"ivanych-vs-eared-beast","title":"Ivanych vs Eared Beast","compatibility":99,"releases":[{"id":"01002D400CCF4000","region":null}]},{"id":"4329b92e-66f4-4c7a-b312-fe95b48da20b","directory":"fuga-melodies-of-steel","title":"Fuga: Melodies of Steel","compatibility":99,"releases":[{"id":"01000130120EE000","region":null}]},{"id":"432a5781-39e5-4919-9dcb-5525f3dd0f1f","directory":"de-blob-2","title":"de Blob 2","compatibility":1,"releases":[{"id":"010034E00A114000","region":null}]},{"id":"4336e865-0068-416a-8f19-68a19c1ba32e","directory":"aca-neogeo-street-hoop","title":"ACA NEOGEO STREET HOOP","compatibility":99,"releases":[{"id":"0100CE1004FA6000","region":null}]},{"id":"43419ec0-5a8a-4bd4-b8b0-23049dfa15b6","directory":"aca-neogeo-ghost-pilots","title":"ACA NEOGEO GHOST PILOTS","compatibility":1,"releases":[{"id":"01005D700A2F8000","region":null}]},{"id":"434fda1e-d352-423c-be20-15baef828ae5","directory":"shape-suitable","title":"SHAPE SUITABLE","compatibility":99,"releases":[{"id":"0100737015768000","region":null}]},{"id":"43528d9a-7072-4ad6-ae90-1bcd66baac1d","directory":"cubikolor","title":"Cubikolor","compatibility":5,"releases":[{"id":"010096500B018000","region":null}]},{"id":"43561796-1cbd-4191-9dbb-6a83f8193422","directory":"battle-axe","title":"Battle Axe","compatibility":0,"releases":[{"id":"0100747011890000","region":null}]},{"id":"435b5b71-aa61-473f-b89c-953e503aeed9","directory":"travel-mosaics-2-roman-holiday","title":"Travel Mosaics 2: Roman Holiday","compatibility":99,"releases":[{"id":"0100A8D010BFA000","region":null}]},{"id":"4366133d-45dd-4285-acac-19af988f0589","directory":"refreshing-sideways-puzzle-ghost-hammer","title":"Refreshing Sideways Puzzle  Ghost Hammer","compatibility":99,"releases":[{"id":"01003AA00F5C4000","region":null}]},{"id":"436a0eb3-f4bc-44f0-b548-25b7fd62b812","directory":"bleed-complete-bundle","title":"Bleed Complete Bundle","compatibility":0,"releases":[{"id":"010006001107E000","region":null}]},{"id":"436f47cb-d4c4-41bd-adca-1948ccf8f0d1","directory":"arcade-archives-guerrilla-war","title":"Arcade Archives GUERRILLA WAR","compatibility":99,"releases":[{"id":"01003F4011D34000","region":null}]},{"id":"43729d38-ef7f-4e52-ac5d-9b3db02d2bea","directory":"picross-s5","title":"PICROSS S5","compatibility":1,"releases":[{"id":"0100AC30133EC000","region":null}]},{"id":"4374711a-0d14-4339-9bc9-46b0b20032a9","directory":"elli","title":"Elli","compatibility":1,"releases":[{"id":"010073C00BDB0000","region":null}]},{"id":"43871d22-cc1d-495c-a07a-b9d13d528d73","directory":"deer-drive-legends","title":"Deer Drive Legends","compatibility":3,"releases":[{"id":"0100C8900DC54000","region":null}]},{"id":"438a9e6e-498d-4bf5-8b1b-80e26f6ce940","directory":"the-smurfs-mission-vileaf","title":"The Smurfs - Mission Vileaf","compatibility":4,"releases":[{"id":"010040A01407E000","region":null}]},{"id":"43934c3d-391e-4afa-b73f-16784b4ec191","directory":"reminiscence-in-the-night","title":"Reminiscence in the Night","compatibility":99,"releases":[{"id":"0100B9A01631E000","region":null}]},{"id":"4393a498-f804-499c-b692-0f40ba7b348d","directory":"robotics-notes-elite","title":"ROBOTICS;NOTES ELITE","compatibility":99,"releases":[{"id":"01002A900EE8A000","region":null}]},{"id":"439f4a84-37d9-499e-a6d8-974fc0637184","directory":"scourgebringer","title":"ScourgeBringer","compatibility":4,"releases":[{"id":"01005F7011950000","region":null}]},{"id":"43a67184-1ac2-4b2b-909f-f5b4528a929c","directory":"monster-sanctuary","title":"Monster Sanctuary","compatibility":0,"releases":[{"id":"0100A0F00DA68000","region":null}]},{"id":"43afb751-2063-4635-96bc-d62b18e7636a","directory":"pokemon-mystery-dungeon-rescue-team-dx","title":"Pokémon Mystery Dungeon: Rescue Team DX","compatibility":1,"releases":[{"id":"01003D200BAA2000","region":null}]},{"id":"43b3be95-274f-4a50-bdeb-90501132eb3e","directory":"pong-quest","title":"PONG Quest","compatibility":99,"releases":[{"id":"010069900FD68000","region":null}]},{"id":"43b70ab2-d73a-4e36-b7ea-947708d15713","directory":"johnny-turbos-arcade-heavy-burger","title":"Johnny Turbo's Arcade: Heavy Burger","compatibility":99,"releases":[{"id":"010060400BA9A000","region":null}]},{"id":"43c19023-b8f1-48a7-b64f-414dd7ea25da","directory":"tears-of-avia","title":"Tears of Avia","compatibility":99,"releases":[{"id":"010076E0150CC000","region":null}]},{"id":"43c64ebc-6cb8-4a5f-b1d4-396eb03d9192","directory":"atelier-ayesha-the-alchemist-of-dusk-dx","title":"Atelier Ayesha: The Alchemist of Dusk DX","compatibility":1,"releases":[{"id":"0100D9D00EE8C000","region":null}]},{"id":"43c88a89-d8f2-4b69-a8e2-c183897004d8","directory":"nairi-tower-of-shirin","title":"NAIRI: Tower of Shirin","compatibility":99,"releases":[{"id":"0100A6F00AC70000","region":null}]},{"id":"43cf0473-34d8-446d-a386-0eb56e90da8e","directory":"relic-hunters-zero-remix","title":"Relic Hunters Zero: Remix","compatibility":99,"releases":[{"id":"0100534011012000","region":null}]},{"id":"43f6780a-a209-4f41-89cf-ff967c5cdafe","directory":"super-trench-attack","title":"SUPER TRENCH ATTACK","compatibility":99,"releases":[{"id":"010079100CD8A000","region":null}]},{"id":"440f1150-18e3-44b4-a3c1-fb4a208605e5","directory":"pocket-rumble","title":"Pocket Rumble","compatibility":2,"releases":[{"id":"01007C600294E000","region":null}]},{"id":"441903d5-e8f7-431f-b80e-4804bd9574e5","directory":"wave-break","title":"Wave Break","compatibility":99,"releases":[{"id":"01006D801367E000","region":null}]},{"id":"4424ccd4-171b-4a41-9415-96f53bf93013","directory":"acalesia","title":"Acalesia","compatibility":99,"releases":[{"id":"010092E014400000","region":null}]},{"id":"442a62d3-e8f6-4917-b4a9-29a2e42f253b","directory":"art-sqool","title":"Art Sqool","compatibility":99,"releases":[{"id":"01006AA013086000","region":null}]},{"id":"442ebcab-7fff-4185-8b0e-1c435aa15b0c","directory":"crash-drive-3","title":"Crash Drive 3","compatibility":99,"releases":[{"id":"0100E2A00FA2C000","region":null}]},{"id":"4438b9bc-b6a8-4257-b82f-dc25f5f692aa","directory":"the-executioner","title":"The Executioner","compatibility":1,"releases":[{"id":"0100C2E0129A6000","region":null}]},{"id":"443daf2c-775a-4148-8cdb-7d042132be10","directory":"3-out-of-10-season-one","title":"3 out of 10: Season One","compatibility":99,"releases":[{"id":"01001AD013B16000","region":null}]},{"id":"4449fecb-ea1a-4e63-8675-e551e9738e7d","directory":"asmr-journey-jigsaw-puzzle","title":"ASMR Journey - Jigsaw Puzzle","compatibility":99,"releases":[{"id":"01001B801495A000","region":null}]},{"id":"444d40f5-ecda-4b73-85dd-ab8a34f267de","directory":"sumer","title":"Sumer","compatibility":99,"releases":[{"id":"01002DD004972000","region":null}]},{"id":"4458f2bd-d295-45a6-9066-2a0738877c8d","directory":"stardrone","title":"StarDrone","compatibility":99,"releases":[{"id":"01007D200C512000","region":null}]},{"id":"445a436d-67c5-473c-bf79-eddb5ff5f40f","directory":"bombing-busters","title":"Bombing Busters","compatibility":99,"releases":[{"id":"0100E7E00C4CA000","region":null}]},{"id":"445d4af6-e7c0-4901-8ef6-f058e0776373","directory":"ellipsis","title":"Ellipsis","compatibility":99,"releases":[{"id":"010058401223E000","region":null}]},{"id":"4462450c-d7af-4a8e-9f3c-8cbd2d277669","directory":"a-short-hike","title":"A Short Hike","compatibility":0,"releases":[{"id":"01004890117B2000","region":null}]},{"id":"446c608b-02ba-48a3-89a0-dd37c3be2b72","directory":"solitaire-klondike-minimal","title":"Solitaire Klondike Minimal","compatibility":99,"releases":[{"id":"01004AF012576000","region":null}]},{"id":"446fbe08-6b78-4b9c-907b-3f2cffb84c45","directory":"wizard-of-legend","title":"Wizard of Legend","compatibility":2,"releases":[{"id":"0100522007AAA000","region":null}]},{"id":"4476244e-ca8c-4d94-8ff5-d90720a7ba75","directory":"sphinx-and-the-cursed-mummy","title":"Sphinx and the Cursed Mummy","compatibility":5,"releases":[{"id":"0100BD500BA94000","region":null}]},{"id":"4484eac9-1fd7-4c2b-9c14-f7bef3aa05aa","directory":"disease-hidden-object-","title":"Disease -Hidden Object-","compatibility":3,"releases":[{"id":"01005E600AB64000","region":null}]},{"id":"449519fc-9eba-4e77-abd4-293b95d37f57","directory":"is-it-wrong-to-try-to-pick-up-girls-in-a-dungeon-familia-myth-infinite-combate","title":"Is It Wrong to Try to Pick Up Girls in a Dungeon? Familia Myth Infinite Combate","compatibility":1,"releases":[{"id":"010063E0104BE000","region":null}]},{"id":"44985db8-61b8-4a6c-9b10-a48c9c379330","directory":"superbeat-xonic","title":"SUPERBEAT: XONiC","compatibility":0,"releases":[{"id":"01007020044F0000","region":null}]},{"id":"44bfa7aa-3930-4b81-8a14-379d12fa232a","directory":"smilebasic-4","title":"SmileBASIC 4","compatibility":99,"releases":[{"id":"0100C9100B06A000","region":null}]},{"id":"44ccde1b-36c3-4960-931e-b543f39dd6dc","directory":"miitopia","title":"Miitopia™","compatibility":3,"releases":[{"id":"01003DA010E8A000","region":null}]},{"id":"44cec55a-9b0c-451b-a957-a1fd7e89740f","directory":"get-me-outta-here","title":"Get Me Outta Here","compatibility":2,"releases":[{"id":"01006DC00FA0A000","region":null}]},{"id":"44d3a231-daa5-4879-9e03-997a24982486","directory":"doodle-god-evolution-demo","title":"Doodle God : Evolution Demo","compatibility":99,"releases":[{"id":"0100E2700D5B6000","region":null}]},{"id":"44d76032-8223-4655-8a06-484b3619fc47","directory":"sir-lovelot","title":"Sir Lovelot","compatibility":99,"releases":[{"id":"0100E9201410E000","region":null}]},{"id":"44d99777-833f-481c-9763-c6acecd731a7","directory":"negative-the-way-of-shinobi","title":"Negative: The Way of Shinobi","compatibility":99,"releases":[{"id":"01008390136FC000","region":null}]},{"id":"44e086be-6033-4a93-b700-83ece7415afc","directory":"war-dogs-reds-return","title":"War Dogs: Red's Return","compatibility":99,"releases":[{"id":"010056901285A000","region":null}]},{"id":"44f4611c-bd54-4f52-a610-ebe1e588e6a3","directory":"in-vert","title":"IN-VERT","compatibility":99,"releases":[{"id":"010003A00EA90000","region":null}]},{"id":"44f8daf5-4613-40dd-bdf6-7e1fb8c3c71b","directory":"color-zen","title":"Color Zen","compatibility":1,"releases":[{"id":"0100CA100C0BA000","region":null}]},{"id":"44fc8048-12ce-4f97-9a85-dd23339c8c96","directory":"hyrule-warriors-definitive-edition","title":"Hyrule Warriors: Definitive Edition","compatibility":2,"releases":[{"id":"0100AE00096EA000","region":null}]},{"id":"4505b005-6936-4bd5-a843-9f71f514baf5","directory":"magical-maze","title":"Magical Maze","compatibility":99,"releases":[{"id":"01004670143D8000","region":null}]},{"id":"450af1f7-3731-4a5d-889c-ec85f1e2285f","directory":"retro-arcade-shooter-attack-from-pluto","title":"Retro Arcade Shooter - Attack from Pluto","compatibility":1,"releases":[{"id":"010067D012972000","region":null}]},{"id":"451ca35f-4fdb-4430-bfa8-3b000ab8e15c","directory":"azuran-tales-trials","title":"Azuran Tales: TRIALS","compatibility":99,"releases":[{"id":"0100C7D00DE24000","region":null}]},{"id":"451f5a30-f1dd-4bad-b212-ac7519fd561f","directory":"ziksquare","title":"ZikSquare","compatibility":4,"releases":[{"id":"010086700EF16000","region":null}]},{"id":"452778b3-679f-4cea-811b-38cac3ee172b","directory":"moto-rush-gt","title":"Moto Rush GT","compatibility":99,"releases":[{"id":"01003F200D0F2000","region":null}]},{"id":"45304549-6fc2-429c-8050-63b18c56134e","directory":"momodora-reverie-under-the-moonlight","title":"Momodora: Reverie Under the Moonlight","compatibility":5,"releases":[{"id":"01004A400C320000","region":null}]},{"id":"45371859-b537-4453-88f2-cd7cd2b7e09b","directory":"the-casino-roulette-video-poker-slot-machines-craps-baccarat","title":"The Casino -Roulette, Video Poker, Slot Machines, Craps, Baccarat-","compatibility":99,"releases":[{"id":"01002490132F2000","region":null}]},{"id":"4538aea8-f9a9-4cef-a908-0bf7cf7a7974","directory":"death-end-re-quest-2","title":"Death end re;Quest 2","compatibility":99,"releases":[{"id":"0100EB701568A000","region":null}]},{"id":"45482077-b840-4383-a2bc-d56e815eefbd","directory":"iro-hero","title":"Iro Hero","compatibility":99,"releases":[{"id":"0100D1B00A5A2000","region":null}]},{"id":"4548fd48-4683-49d3-b29e-35b085c22c20","directory":"solitaire-card-games","title":"Solitaire Card Games","compatibility":99,"releases":[{"id":"01004DB014FCE000","region":null}]},{"id":"45497fb9-910a-4554-bbe4-272c3e5ec76b","directory":"nice-slice","title":"Nice Slice","compatibility":99,"releases":[{"id":"0100EDD00D530000","region":null}]},{"id":"455adce6-b758-4d6a-bee6-6a0af09f1e4f","directory":"puzzle-quest-the-legend-returns","title":"Puzzle Quest: The Legend Returns","compatibility":0,"releases":[{"id":"0100B2900DF20000","region":null}]},{"id":"455b7af2-007e-45dc-aabe-62c192973e1e","directory":"jump-king","title":"Jump King","compatibility":1,"releases":[{"id":"01003D601014A000","region":null}]},{"id":"456c6bd6-dc92-4421-82e9-cee478af83ea","directory":"jotun-valhalla-edition","title":"Jotun: Valhalla Edition","compatibility":1,"releases":[{"id":"0100340009736000","region":null}]},{"id":"456e0738-aba9-42ec-a60e-ec4c966804c4","directory":"golf-with-your-friends","title":"Golf With Your Friends","compatibility":1,"releases":[{"id":"01006FB00EBE0000","region":null}]},{"id":"4571c63a-fbb0-44db-934f-56424b3e4d6d","directory":"sol-divide-sword-of-darkness-for-nintendo-switch","title":"SOL DIVIDE -SWORD OF DARKNESS- for Nintendo Switch","compatibility":99,"releases":[{"id":"0100590009C38000","region":null}]},{"id":"4575d2b6-bb53-4745-b081-7d591cabc0ab","directory":"treasures-of-the-aegean","title":"Treasures of the Aegean","compatibility":1,"releases":[{"id":"0100769015806000","region":null}]},{"id":"4581a8fb-45f0-4b84-a417-2b1e4d4c857a","directory":"bloody-rally-show","title":"Bloody Rally Show","compatibility":99,"releases":[{"id":"010073F015150000","region":null}]},{"id":"458607f2-f8ca-4db3-aace-fec8cd21e502","directory":"star-wars-knights-of-the-old-republic","title":"STAR WARS™: Knights of the Old Republic™","compatibility":2,"releases":[{"id":"0100854015868000","region":null}]},{"id":"458778cf-548e-4499-9f6c-0da09347ae1a","directory":"ben-10-power-trip","title":"Ben 10: Power Trip!","compatibility":5,"releases":[{"id":"01009CD00E3AA000","region":null}]},{"id":"45888fcc-73ec-4361-90f9-08617462a252","directory":"poltergeist-crusader","title":"Poltergeist Crusader","compatibility":99,"releases":[{"id":"01006DA013562000","region":null}]},{"id":"458e7aa1-acab-4162-92bb-34a4f8df3f33","directory":"risk-r-global-domination-demo","title":"RISK® Global Domination - Demo","compatibility":99,"releases":[{"id":"010068200BF14000","region":null}]},{"id":"45991e27-5f7f-492e-aa34-809ac1acb249","directory":"battle-supremacy","title":"Battle Supremacy","compatibility":3,"releases":[{"id":"01003B300B568000","region":null}]},{"id":"45a23375-4609-480c-a8fe-de0e149d0483","directory":"work-trip","title":"Work Trip","compatibility":99,"releases":[{"id":"0100DA801614A000","region":null}]},{"id":"45c63b8e-ed9d-4004-8723-6a284f5e63f0","directory":"mana-spark","title":"Mana Spark","compatibility":99,"releases":[{"id":"01005A700CC3C000","region":null}]},{"id":"45e44a97-6a71-4993-b467-8f1a8281c0ee","directory":"cartoon-network-battle-crashers","title":"Cartoon Network: Battle Crashers","compatibility":3,"releases":[{"id":"010010B003A26000","region":null}]},{"id":"45f3d7b7-58ca-47b4-8733-2e8c4ba6a711","directory":"arcade-archives-darwin-4078","title":"Arcade Archives DARWIN 4078","compatibility":99,"releases":[{"id":"0100BBB014CC0000","region":null}]},{"id":"45fea49a-4351-421b-8853-ab87d6cec33e","directory":"race-track-driver","title":"Race Track Driver","compatibility":0,"releases":[{"id":"0100E33015A32000","region":null}]},{"id":"4601db33-8801-4df1-8fbe-c0970d3d9f59","directory":"beat-cop","title":"Beat Cop","compatibility":4,"releases":[{"id":"01009C300BB4C000","region":null}]},{"id":"4605bf08-08bf-449f-8f78-ab021781f070","directory":"little-kite","title":"Little Kite","compatibility":99,"releases":[{"id":"010034F013552000","region":null}]},{"id":"461bd541-e2bf-48c5-a34e-74e5dea56bdb","directory":"faeria","title":"Faeria","compatibility":99,"releases":[{"id":"010069100DB08000","region":null}]},{"id":"4620bc74-33a6-46ce-a5f5-9c1f24210616","directory":"pixel-puzzle-makeout-league","title":"Pixel Puzzle Makeout League","compatibility":2,"releases":[{"id":"010000E00E612000","region":null}]},{"id":"4635ae9b-90b9-41a0-aa8f-46ad84930442","directory":"liberated-enhanced-edition","title":"Liberated: Enhanced Edition","compatibility":2,"releases":[{"id":"01003A90133A6000","region":null}]},{"id":"464302f0-87c5-4b43-b68a-2b40cdbe6825","directory":"agent-a-a-puzzle-in-disguise","title":"Agent A: A puzzle in disguise","compatibility":0,"releases":[{"id":"010005400A45E000","region":null}]},{"id":"464373a0-c0a2-4d86-9575-0471a122db3c","directory":"chalk-dash-carnival","title":"Chalk Dash Carnival","compatibility":99,"releases":[{"id":"010000A00CA78000","region":null}]},{"id":"46509a0d-18c7-401a-b433-896ca807d963","directory":"pac-man-championship-edition-2-plus","title":"PAC-MAN CHAMPIONSHIP EDITION 2 PLUS","compatibility":2,"releases":[{"id":"010024C001224000","region":null}]},{"id":"46599e47-6c85-47ed-8b1a-3a5251007654","directory":"fire-water","title":"Fire & Water","compatibility":99,"releases":[{"id":"0100F4E013AAE000","region":null}]},{"id":"4662484b-4d8e-443b-9621-8e389ef16bb8","directory":"pure-electric-love-look-at-my-eyes-moe-yamauchi-","title":"Pure / Electric Love \"Look at my eyes!\" - Moe Yamauchi -","compatibility":5,"releases":[{"id":"010009000AC2A000","region":null}]},{"id":"46657fad-116d-4bd8-a152-26e8b7a8b9c8","directory":"motogp-20","title":"MotoGP™20","compatibility":3,"releases":[{"id":"01001FA00FBBC000","region":null}]},{"id":"468309c6-a980-4fb3-a799-ba96352940a5","directory":"cube-samurai-run-squared","title":"Cube Samurai: Run Squared","compatibility":99,"releases":[{"id":"010018E0159BA000","region":null}]},{"id":"46847e22-c23d-4ab8-89df-bacda722fc6d","directory":"extreme-race","title":"Extreme Race","compatibility":99,"releases":[{"id":"0100386016194000","region":null}]},{"id":"469ae9d8-a145-43b2-b0bb-441b98d55401","directory":"danganronpa-v3-killing-harmony-anniversary-edition","title":"Danganronpa V3: Killing Harmony Anniversary Edition","compatibility":99,"releases":[{"id":"010063F014176000","region":null}]},{"id":"46a424f3-2996-4872-ac04-92334e26fe62","directory":"instant-sports-winter-games","title":"Instant Sports Winter Games","compatibility":99,"releases":[{"id":"0100833014F3A000","region":null}]},{"id":"46a8e4f9-dd8b-4ce1-8830-96aeb1563e47","directory":"no-thing","title":"NO THING","compatibility":99,"releases":[{"id":"0100F7D00A1BC000","region":null}]},{"id":"46adfd96-ba00-4d14-b22c-7d620e0ca9a4","directory":"bloody-bunny-the-game","title":"Bloody Bunny, The Game","compatibility":99,"releases":[{"id":"0100E510143EC000","region":null}]},{"id":"46b4f09c-f4b3-400b-80c0-b9c0ae88f8a4","directory":"myths-of-orion-light-from-the-north","title":"Myths of Orion: Light from the North","compatibility":99,"releases":[{"id":"010065E011D5C000","region":null}]},{"id":"46b5b447-3187-4e21-87ef-c6e795cc9a39","directory":"desktop-bowling","title":"Desktop Bowling","compatibility":99,"releases":[{"id":"0100FF800EC2E000","region":null}]},{"id":"46cd55ad-5b8f-4221-8c6f-45b2219fea62","directory":"a-knights-quest","title":"A Knight's Quest","compatibility":2,"releases":[{"id":"01005EF00CFDA000","region":null}]},{"id":"46d88ccd-b56c-4ad9-aaf0-e2963bddfc37","directory":"magical-girls","title":"Magical Girls","compatibility":0,"releases":[{"id":"0100461013AAA000","region":null}]},{"id":"46df785c-8b8e-4f17-969d-455c624edc66","directory":"the-inner-world","title":"The Inner World","compatibility":0,"releases":[{"id":"0100B0B00B318000","region":null}]},{"id":"46f5c3f1-00e8-4040-86e1-5e74fc7e04fd","directory":"mail-mole","title":"Mail Mole","compatibility":99,"releases":[{"id":"01009940140D8000","region":null}]},{"id":"46f5e0cf-70f7-49e9-8943-df32b953f89a","directory":"clea","title":"Clea","compatibility":0,"releases":[{"id":"010058900F52E000","region":null}]},{"id":"46feff0f-8073-4cb6-bcfa-ce22fb3573df","directory":"demon-hunter-revelation","title":"Demon Hunter: Revelation","compatibility":2,"releases":[{"id":"0100BF7013AE2000","region":null}]},{"id":"4717c513-6645-4191-b02a-fa69e7e11768","directory":"aquatic-rampage","title":"Aquatic Rampage","compatibility":99,"releases":[{"id":"01002370153E0000","region":null}]},{"id":"4719c66b-e419-46b1-835e-b5e0a3201fe2","directory":"pokemon-unite","title":"Pokémon UNITE","compatibility":4,"releases":[{"id":"0100939011ED4000","region":null}]},{"id":"4732cb39-0b1e-40a1-8a88-acb44953be01","directory":"project-triangle-strategy-debut-demo","title":"Project TRIANGLE STRATEGY™ Debut Demo","compatibility":1,"releases":[{"id":"01002980140F6000","region":null}]},{"id":"4733b07f-a4c3-4531-8af2-628521d52df9","directory":"musynx","title":"MUSYNX","compatibility":1,"releases":[{"id":"01007B6006092000","region":null}]},{"id":"473af39c-1d8c-4e80-a00f-7d8b1bf6b610","directory":"terratech","title":"TerraTech","compatibility":99,"releases":[{"id":"010096400CBC6000","region":null}]},{"id":"4746ea2b-bc58-48d6-8fad-b1061827be1e","directory":"zoo-dentist","title":"Zoo Dentist","compatibility":99,"releases":[{"id":"0100CC80152C4000","region":null}]},{"id":"47480e8e-b779-488a-89d2-501a720da4b1","directory":"danganronpa-trigger-happy-havoc-anniversary-edition","title":"Danganronpa: Trigger Happy Havoc Anniversary Edition","compatibility":99,"releases":[{"id":"0100812014172000","region":null}]},{"id":"475b9397-7500-47be-87ad-58e9391271f9","directory":"monster-harvest","title":"Monster Harvest","compatibility":3,"releases":[{"id":"01004E001256A000","region":null}]},{"id":"4764790e-2b63-4220-acae-64996d725a07","directory":"kropki-8","title":"Kropki 8","compatibility":99,"releases":[{"id":"010070C011E2A000","region":null}]},{"id":"47712e97-ded3-4407-9d2a-8ea5834da22f","directory":"rune-factory-4-special","title":"Rune Factory 4 Special","compatibility":1,"releases":[{"id":"010051D00E3A4000","region":null}]},{"id":"477b9bd1-14a1-4da1-889b-40bb1df66763","directory":"dark-veer","title":"Dark Veer","compatibility":99,"releases":[{"id":"01007FB00FC5E000","region":null}]},{"id":"477cd89b-d34e-44d7-8f1e-7ec5f085b04c","directory":"pikuniku","title":"Pikuniku","compatibility":0,"releases":[{"id":"010097D006DEA000","region":null}]},{"id":"47830a59-e435-49af-b64c-0857c353e54d","directory":"into-a-dream","title":"Into A Dream","compatibility":99,"releases":[{"id":"0100E12013D74000","region":null}]},{"id":"4786c7ea-97e3-4c67-9c81-19b2606b8705","directory":"throne-quest-deluxe","title":"Throne Quest Deluxe","compatibility":0,"releases":[{"id":"010070800EC56000","region":null}]},{"id":"47a55b2c-09f5-446f-b21d-7e83669fb5c2","directory":"plastic-rebellion","title":"Plastic Rebellion","compatibility":99,"releases":[{"id":"0100C7D014BBA000","region":null}]},{"id":"47c45653-0bdb-47d0-81ff-99b1c731b19a","directory":"logscape-puzzle-game","title":"LogScape - Puzzle Game","compatibility":99,"releases":[{"id":"0100A03015C16000","region":null}]},{"id":"47f9cc77-4c42-4ccc-b9f2-6282d97f0a45","directory":"atelier-meruru-~the-apprentice-of-arland~-dx","title":"Atelier Meruru ~The Apprentice of Arland~ DX","compatibility":3,"releases":[{"id":"0100ADD00C6FA000","region":null}]},{"id":"4818680c-654f-4c78-ae33-71973e71e676","directory":"chained","title":"Chained","compatibility":99,"releases":[{"id":"01000B9011596000","region":null}]},{"id":"481a75b8-3030-4804-82f7-9d0933d0f383","directory":"mother-russia-bleeds","title":"Mother Russia Bleeds","compatibility":0,"releases":[{"id":"0100D9C00AA52000","region":null}]},{"id":"482f53fb-f46e-47e2-9d86-5e2996d2df33","directory":"crocs-world-3","title":"Croc's World 3","compatibility":1,"releases":[{"id":"010025200FC54000","region":null}]},{"id":"482ff01e-084e-40bb-97ed-e10a6e53f833","directory":"puzzle-herder","title":"Puzzle Herder","compatibility":99,"releases":[{"id":"010099100E03C000","region":null}]},{"id":"48331247-5269-4842-b159-67ac2c97cdf3","directory":"offroad-racing-buggy-x-atv-x-moto","title":"Offroad Racing - Buggy X ATV X Moto","compatibility":1,"releases":[{"id":"01003CD00E8BC000","region":null}]},{"id":"48346d23-a19f-407b-9af0-220084544710","directory":"ghost-elisa-cameron","title":"Ghost: Elisa Cameron","compatibility":99,"releases":[{"id":"0100E46014A32000","region":null}]},{"id":"48369355-bb83-4d6e-8743-59c38bc02542","directory":"trax-build-it-race-it","title":"Trax - Build it Race it","compatibility":99,"releases":[{"id":"01004C200ADA0000","region":null}]},{"id":"48370116-0b28-4b94-af3a-eb6e47537d28","directory":"jamestown","title":"Jamestown+","compatibility":2,"releases":[{"id":"010000100C4B8000","region":null}]},{"id":"4840a43c-e481-4cc5-a89e-ac48b9fedf14","directory":"taxi-driver-the-simulation","title":"Taxi Driver - The Simulation","compatibility":99,"releases":[{"id":"010073A010430000","region":null}]},{"id":"484ae2ef-89e1-4681-81e0-7ca436a6d859","directory":"dungeon-village","title":"Dungeon Village","compatibility":99,"releases":[{"id":"010016700BCD4000","region":null}]},{"id":"484fb5e3-9a08-4689-8435-c5419471d46f","directory":"devil-slayer-raksasi","title":"Devil Slayer Raksasi","compatibility":3,"releases":[{"id":"01003C900EFF6000","region":null}]},{"id":"4850ee78-b43a-4b65-8967-37b0b0535e34","directory":"this-strange-realm-of-mine","title":"This Strange Realm Of Mine","compatibility":99,"releases":[{"id":"0100C7C00F77C000","region":null}]},{"id":"485a1b57-24e6-4be1-9952-149dc4230e69","directory":"links-puzzle","title":"Links Puzzle","compatibility":99,"releases":[{"id":"010054F015D5C000","region":null}]},{"id":"485a7bbf-d362-4b51-b958-227610e94721","directory":"the-talos-principle-deluxe-edition","title":"The Talos Principle: Deluxe Edition","compatibility":4,"releases":[{"id":"010092A00D43C000","region":null}]},{"id":"4863bbc9-4311-4dc1-b961-e4c6c1975ef1","directory":"golazo","title":"Golazo!","compatibility":1,"releases":[{"id":"010013800F0A4000","region":null}]},{"id":"4869c967-031e-4544-8f1c-b4fe1f02b459","directory":"sweets-swap-classic","title":"Sweets Swap Classic","compatibility":99,"releases":[{"id":"01006DE016788000","region":null}]},{"id":"486f72a2-8bba-4138-9508-5f079ee0d334","directory":"unavowed","title":"Unavowed","compatibility":99,"releases":[{"id":"0100C18014DC0000","region":null}]},{"id":"487b7497-94a9-4ac7-bb24-01b0de85850c","directory":"food-truck-tycoon","title":"Food Truck Tycoon","compatibility":1,"releases":[{"id":"0100F3900D0F0000","region":null}]},{"id":"487cd274-bc95-4ca4-b4d9-ff7e752118b5","directory":"achtung-cthulhu-tactics","title":"Achtung! Cthulhu Tactics","compatibility":99,"releases":[{"id":"010079B00B3F4000","region":null}]},{"id":"48821cee-f50a-4f8b-a133-65daf6af90d3","directory":"demons-tier","title":"Demon's Tier+","compatibility":3,"releases":[{"id":"0100161011458000","region":null}]},{"id":"4889544a-a149-4d22-9d44-5daa1c854f9e","directory":"wonder-blade","title":"Wonder Blade","compatibility":99,"releases":[{"id":"010037A00F5E2000","region":null}]},{"id":"488c5e50-91a3-425b-910f-bd51543138a4","directory":"shiro","title":"Shiro","compatibility":99,"releases":[{"id":"0100244016BAE000","region":null}]},{"id":"48957471-aae1-46c2-909a-dc68a8deabbf","directory":"kitty-love-way-to-look-for-love-","title":"Kitty Love -Way to look for love-","compatibility":1,"releases":[{"id":"0100EAE00BE4A000","region":null}]},{"id":"489be885-0b37-431c-8cb1-9fd1a3eee228","directory":"brawl-chess","title":"Brawl Chess","compatibility":1,"releases":[{"id":"010068F00F444000","region":null}]},{"id":"48a7a027-9eca-4992-9136-43bf61e0462b","directory":"dark-witch-music-episode-rudymical-demo","title":"Dark Witch Music Episode: Rudymical Demo","compatibility":0,"releases":[{"id":"010047A008760000","region":null}]},{"id":"48b27fef-fee4-4bf1-bd68-5f1dba93cc37","directory":"zombieland-double-tap-road-trip","title":"Zombieland: Double Tap - Road Trip","compatibility":99,"releases":[{"id":"010004D00D32A000","region":null}]},{"id":"48b32db3-5a59-4aaa-ad0b-274468cecc4b","directory":"super-bomberman-r","title":"Super Bomberman R","compatibility":2,"releases":[{"id":"01007AD00013E000","region":null}]},{"id":"48c61045-6f9e-4fad-9e12-b94fa66aa084","directory":"spelunky-2","title":"Spelunky 2","compatibility":1,"releases":[{"id":"01007EC013ABC000","region":null}]},{"id":"48d015bb-4a94-4d13-8d0f-51a7ba59b389","directory":"castle-heroes","title":"Castle Heroes","compatibility":0,"releases":[{"id":"0100632014A12000","region":null}]},{"id":"48e9e213-fb46-4317-86a1-97c30f9553da","directory":"miracle-snack-shop","title":"Miracle Snack Shop","compatibility":1,"releases":[{"id":"0100B4C014466000","region":null}]},{"id":"48f09685-1ca8-42b9-ac18-e2a2026bf2e9","directory":"solseraph","title":"SolSeraph","compatibility":3,"releases":[{"id":"010077600BE3A000","region":null}]},{"id":"48ff5c8f-6dbb-4898-a6ce-50e3b2ad4464","directory":"jelly-champs","title":"Jelly Champs!","compatibility":99,"releases":[{"id":"010019D012018000","region":null}]},{"id":"490154a0-9610-402e-af54-098582090473","directory":"ary-and-the-secret-of-seasons","title":"Ary and the Secret of Seasons","compatibility":1,"releases":[{"id":"0100C2500CAB6000","region":null}]},{"id":"4913abbf-1e92-40c9-b823-2efe53e2b14e","directory":"deadlings","title":"Deadlings","compatibility":99,"releases":[{"id":"0100DDE00E81A000","region":null}]},{"id":"4929a773-da00-4949-afe8-b4e54e1630b8","directory":"peace-death-complete-edition","title":"Peace, Death! Complete Edition","compatibility":99,"releases":[{"id":"010069300C90A000","region":null}]},{"id":"4932c39b-45f6-4c57-a391-fb14a063f4a3","directory":"mmc-kenken-the-worlds-most-exciting-math-and-logic-puzzle","title":"MMC KENKEN - The World's Most Exciting Math and Logic Puzzle -","compatibility":99,"releases":[{"id":"0100136015456000","region":null}]},{"id":"49359c31-0001-4f70-8129-9f4a64d2d4db","directory":"last-stop","title":"Last Stop","compatibility":99,"releases":[{"id":"0100FBF014064000","region":null}]},{"id":"493a3532-f4cf-4437-9a37-b9843e3811d7","directory":"death-ray-manta-se","title":"Death Ray Manta SE","compatibility":1,"releases":[{"id":"0100F11012BC2000","region":null}]},{"id":"493e6ced-ba08-442a-8537-c24686982795","directory":"factotum-90","title":"Factotum 90","compatibility":2,"releases":[{"id":"0100BD6010638000","region":null}]},{"id":"4940e3c0-52d4-46d6-812a-8b64b8d0ce98","directory":"doug-hates-his-job","title":"Doug Hates His Job","compatibility":99,"releases":[{"id":"0100A14013B1E000","region":null}]},{"id":"49417f12-f786-45da-b1ab-09c07ac96b44","directory":"standby","title":"STANDBY","compatibility":0,"releases":[{"id":"0100FF500E668000","region":null}]},{"id":"494c30c4-e813-4e6a-8c4b-6f4ca2f0f11f","directory":"guards","title":"Guards","compatibility":99,"releases":[{"id":"010061401498C000","region":null}]},{"id":"494f0525-6d49-4458-b3bd-9e2cd2420ead","directory":"saboteur","title":"Saboteur!","compatibility":0,"releases":[{"id":"0100F6F00B9E8000","region":null}]},{"id":"494f2034-3d5e-4a7f-97f8-ff6af856b1db","directory":"12-labours-of-hercules-ii-the-cretan-bull","title":"12 Labours of Hercules II: The Cretan Bull","compatibility":3,"releases":[{"id":"0100B1A010014000","region":null}]},{"id":"4954521f-759c-4210-93bd-f4f4e5bfee06","directory":"warhammer-quest-2-the-end-times","title":"Warhammer Quest 2: The End Times","compatibility":0,"releases":[{"id":"01002FF00F460000","region":null}]},{"id":"495b0d1b-b343-4b32-9a65-4894891b6f84","directory":"scheming-through-the-zombie-apocalypse-the-beginning","title":"Scheming Through The Zombie Apocalypse: The Beginning","compatibility":99,"releases":[{"id":"0100AE300F5B4000","region":null}]},{"id":"495c5336-dc9f-46b8-bced-4ba6a0417982","directory":"we-are-doomed","title":"WE ARE DOOMED","compatibility":99,"releases":[{"id":"01000F101286A000","region":null}]},{"id":"49690765-86de-493a-ad02-9e39679ebcb1","directory":"haustoria","title":"Haustoria","compatibility":99,"releases":[{"id":"0100077016288000","region":null}]},{"id":"4974a2e7-6dee-4ca2-8ac8-fae2d5c6b37f","directory":"aca-neogeo-real-bout-fatal-fury-special","title":"ACA NEOGEO REAL BOUT FATAL FURY SPECIAL","compatibility":2,"releases":[{"id":"010088500878C000","region":null}]},{"id":"497c7f99-b643-486a-986f-a1fad85f9dbb","directory":"black-future-88","title":"Black Future '88","compatibility":99,"releases":[{"id":"010049000B69E000","region":null}]},{"id":"498ea669-7199-4a92-bfd4-12afc83d3f9e","directory":"tennis-in-the-face","title":"Tennis in the Face","compatibility":4,"releases":[{"id":"01002970080AA000","region":null}]},{"id":"4990b351-ee3a-4b7b-b22d-1aa49338b30d","directory":"stay-safe","title":"Stay Safe","compatibility":99,"releases":[{"id":"0100FD40102A6000","region":null}]},{"id":"49955f50-308b-4ef8-8b41-a61b03ea33ef","directory":"genetic-disaster","title":"Genetic Disaster","compatibility":1,"releases":[{"id":"010014901144C000","region":null}]},{"id":"49971a07-dc64-4bbf-8dbb-9adf12488c14","directory":"puzzle-frenzy","title":"Puzzle Frenzy","compatibility":99,"releases":[{"id":"0100093016CEE000","region":null}]},{"id":"49b527ac-45c7-46ef-bb87-559ad3927629","directory":"when-ski-lifts-go-wrong","title":"When Ski Lifts Go Wrong","compatibility":99,"releases":[{"id":"01009AD00BFD0000","region":null}]},{"id":"49bb82c3-bc40-4bf8-a3bd-db2c54c7e600","directory":"lucid-cycle","title":"Lucid Cycle","compatibility":99,"releases":[{"id":"0100055015A82000","region":null}]},{"id":"49c098e1-a563-4e96-a536-dacf5c3a4d79","directory":"return-of-the-obra-dinn","title":"Return of the Obra Dinn","compatibility":1,"releases":[{"id":"010032E00E6E2000","region":null}]},{"id":"49c5ef87-66b4-4a28-9aaa-cac123d70ae4","directory":"terra-lander","title":"Terra Lander","compatibility":99,"releases":[{"id":"01002C80145EA000","region":null}]},{"id":"49d31917-7f55-4e19-9c10-0f20a5001856","directory":"our-two-bedroom-story","title":"Our Two Bedroom Story","compatibility":3,"releases":[{"id":"010097F010FE6000","region":null}]},{"id":"49d61968-d27a-4781-9643-3197356813a7","directory":"paperball-deluxe","title":"Paperball Deluxe","compatibility":99,"releases":[{"id":"0100A24012374000","region":null}]},{"id":"49daa5ca-9b34-4468-9a44-b96d1092b360","directory":"monster-energy-supercross-the-official-videogame","title":"Monster Energy Supercross - The Official Videogame","compatibility":4,"releases":[{"id":"0100742007266000","region":null}]},{"id":"49e4b4bb-251f-4992-8c79-45f4654abdea","directory":"capes-escape-game-4th-room","title":"Cape’s Escape Game 4th Room","compatibility":99,"releases":[{"id":"0100FD20162F0000","region":null}]},{"id":"49e88722-54ed-4147-85b5-c49c8e6a5001","directory":"hike","title":"Hike","compatibility":99,"releases":[{"id":"0100E9C014932000","region":null}]},{"id":"49eb8b17-5d64-4017-a46c-8918ce2c60fe","directory":"the-legend-of-the-blue-warrior","title":"The Legend Of The Blue Warrior","compatibility":99,"releases":[{"id":"0100C13012F8E000","region":null}]},{"id":"49ef1c8d-7ffd-42bf-babc-7f0379b0fe43","directory":"nba-2k21","title":"NBA 2K21","compatibility":5,"releases":[{"id":"0100E24011D1E000","region":null}]},{"id":"49f02b03-61e3-44bc-aa6a-b6514f4386d3","directory":"quadle","title":"Quadle","compatibility":99,"releases":[{"id":"010080B00D8D4000","region":null}]},{"id":"4a070317-2eea-43d8-a394-1af7b77708bf","directory":"baobabs-mausoleum-ep3-un-pato-en-muertoburgo","title":"Baobabs Mausoleum Ep.3: Un Pato en Muertoburgo","compatibility":99,"releases":[{"id":"01006D300FFA6000","region":null}]},{"id":"4a18a35a-8d58-4dc2-8935-9fe3b0ed7bb5","directory":"yestermorrow","title":"YesterMorrow","compatibility":2,"releases":[{"id":"010076B0101A0000","region":null}]},{"id":"4a21f603-7d3e-4c94-8868-a09506cc4a82","directory":"arcade-archives-swimmer","title":"Arcade Archives SWIMMER","compatibility":99,"releases":[{"id":"01001620143BC000","region":null}]},{"id":"4a2baa2d-027a-44c1-831b-8c085d4c2de2","directory":"spinnys-journey","title":"Spinny's Journey","compatibility":1,"releases":[{"id":"01001E40136FE000","region":null}]},{"id":"4a3909aa-f239-4b27-8945-6cb34054e59c","directory":"tested-on-humans-escape-room","title":"Tested on Humans: Escape Room","compatibility":99,"releases":[{"id":"01006F701507A000","region":null}]},{"id":"4a3b6d10-8e29-432c-8674-0f684263f382","directory":"world-of-tanks-blitz","title":"World of Tanks Blitz","compatibility":99,"releases":[{"id":"0100DA501160C000","region":null}]},{"id":"4a3e2505-707f-4d04-9638-4f1da5bcc9d3","directory":"zombie-night-terror","title":"Zombie Night Terror","compatibility":99,"releases":[{"id":"01004F900B838000","region":null}]},{"id":"4a47a83c-bbca-4e73-8474-1602dd9125a3","directory":"poisoft-thud-card","title":"Poisoft Thud Card","compatibility":99,"releases":[{"id":"0100DCE009732000","region":null}]},{"id":"4a4e59d7-7778-4849-9749-19cce45d9854","directory":"alien-escape","title":"Alien Escape","compatibility":0,"releases":[{"id":"0100C1500DBDE000","region":null}]},{"id":"4a504a95-3314-4aaa-95ed-ae5ccfc12e0f","directory":"unreal-life","title":"UNREAL LIFE","compatibility":99,"releases":[{"id":"0100A06011A48000","region":null}]},{"id":"4a5094c5-6d65-4bbf-9eda-ce7648368b74","directory":"animated-jigsaws-beautiful-japanese-scenery-demo","title":"Animated Jigsaws: Beautiful Japanese Scenery Demo","compatibility":99,"releases":[{"id":"0100A1900B5B8000","region":null}]},{"id":"4a63b57c-4048-499a-bf9e-589daae2faf2","directory":"promesa","title":"Promesa","compatibility":99,"releases":[{"id":"010052F0149C8000","region":null}]},{"id":"4a777875-920f-42ca-86cf-5bdb7557be84","directory":"famicom-detective-club-the-girl-who-stands-behind","title":"Famicom Detective Club™: The Girl Who Stands Behind","compatibility":0,"releases":[{"id":"0100D670126F6000","region":null}]},{"id":"4a84757c-8a1e-4936-b515-8be852b55452","directory":"umurangi-generation-special-edition","title":"Umurangi Generation Special Edition","compatibility":99,"releases":[{"id":"0100CA3014ADE000","region":null}]},{"id":"4aa0f2bd-92cc-4752-a0a0-3c70fb226d88","directory":"beast-quest","title":"Beast Quest","compatibility":99,"releases":[{"id":"01001EB00E9FE000","region":null}]},{"id":"4ad2acb8-ee8d-453a-8e52-3a284dcf7ce0","directory":"firefighters-airport-fire-department","title":"Firefighters: Airport Fire Department","compatibility":3,"releases":[{"id":"0100BB1009E50000","region":null}]},{"id":"4ad3c8e0-7390-49c1-af77-8b970c707744","directory":"one-more-dungeon-demo","title":"One More Dungeon Demo","compatibility":99,"releases":[{"id":"01003AE00A872000","region":null}]},{"id":"4ad5583e-ca44-4287-9934-c2be7e8862b7","directory":"steinsgate-elite","title":"STEINS;GATE ELITE","compatibility":2,"releases":[{"id":"010042800B880000","region":null}]},{"id":"4adf0369-6aca-4044-a1c9-cff41ac7712b","directory":"katana-kata","title":"Katana Kata","compatibility":99,"releases":[{"id":"01002E1013C3E000","region":null}]},{"id":"4ae33f14-10bb-432d-9301-278501dd20f2","directory":"marvel-ultimate-alliance-3-the-black-order","title":"MARVEL ULTIMATE ALLIANCE 3: The Black Order","compatibility":2,"releases":[{"id":"010060700AC50000","region":null}]},{"id":"4af0ffe2-867c-4462-9e07-f5361adc7ff2","directory":"root","title":"Root","compatibility":99,"releases":[{"id":"01000AF01518A000","region":null}]},{"id":"4afd7898-1d4d-4dae-80c3-a141ae4a5e4b","directory":"plague-road","title":"Plague Road","compatibility":99,"releases":[{"id":"0100FF8005EB2000","region":null}]},{"id":"4b07b75f-3a15-4e64-bfaa-a00617418e40","directory":"remilore","title":"RemiLore","compatibility":1,"releases":[{"id":"010095900B436000","region":null}]},{"id":"4b1310a3-9d02-4075-a200-b03315ac5a0a","directory":"slime-san","title":"Slime-san","compatibility":99,"releases":[{"id":"0100112003B8A000","region":null}]},{"id":"4b1e033f-85ef-4ea3-a589-c24c36442d9e","directory":"family-mysteries-poisonous-promises","title":"Family Mysteries: Poisonous Promises","compatibility":1,"releases":[{"id":"0100034012606000","region":null}]},{"id":"4b27e5d2-1aca-4b28-aec2-1b56961158b4","directory":"aca-neogeo-the-king-of-fighters-98","title":"ACA NEOGEO THE KING OF FIGHTERS '98","compatibility":2,"releases":[{"id":"0100B42001DB4000","region":null}]},{"id":"4b2a4e3a-1236-4624-a62d-74df0d547fbe","directory":"aca-neogeo-king-of-the-monsters","title":"ACA NEOGEO KING OF THE MONSTERS","compatibility":99,"releases":[{"id":"0100B1300871A000","region":null}]},{"id":"4b303933-f24d-4cdf-90fb-bd424f31f9ea","directory":"mahjong-masters","title":"Mahjong Masters","compatibility":99,"releases":[{"id":"0100DD9015E44000","region":null}]},{"id":"4b5d88b0-34cf-4e6f-b433-2c07de8c2e50","directory":"adventures-of-bertram-fiddle-episode-2-a-bleaker-predicklement","title":"Adventures of Bertram Fiddle Episode 2: A Bleaker Predicklement","compatibility":99,"releases":[{"id":"010021F00C1C0000","region":null}]},{"id":"4b68bf70-7480-491d-86a1-c8eb4dce2f15","directory":"bouncy-bob-2","title":"Bouncy Bob 2","compatibility":99,"releases":[{"id":"010081100FE08000","region":null}]},{"id":"4b6aabbf-14c9-4699-ab1d-0d4dff79db48","directory":"garage","title":"Garage","compatibility":1,"releases":[{"id":"01000FA00A4E4000","region":null}]},{"id":"4b6b7c72-e01b-4b1b-9c00-849f3c88b27f","directory":"103","title":"103","compatibility":99,"releases":[{"id":"0100264012980000","region":null}]},{"id":"4b8034a7-a85f-4efa-a55c-e9c91b3edc38","directory":"deemo-reborn","title":"DEEMO -Reborn-","compatibility":99,"releases":[{"id":"01008B10132A2000","region":null}]},{"id":"4b8150e3-a969-4cb9-901f-c10c3a169d7f","directory":"dead-cells","title":"Dead Cells","compatibility":1,"releases":[{"id":"0100646009FBE000","region":null}]},{"id":"4b81587e-c09c-46d4-9c56-d72e0a2d38b9","directory":"spyhack","title":"SpyHack","compatibility":99,"releases":[{"id":"01005D701264A000","region":null}]},{"id":"4ba012c0-6d64-44cb-875f-d0212bf9ed77","directory":"chromagun","title":"ChromaGun","compatibility":0,"releases":[{"id":"010039A008E76000","region":null}]},{"id":"4bb1fb6d-fe23-43af-9ba6-21a190ab3cab","directory":"match-three-pirates-ii","title":"Match Three Pirates II","compatibility":99,"releases":[{"id":"010090C016EE4000","region":null}]},{"id":"4bbed6de-19a0-45ae-8009-76d0d3023851","directory":"arkan-the-dog-adventurer","title":"Arkan: The dog adventurer","compatibility":99,"releases":[{"id":"0100C4A014766000","region":null}]},{"id":"4bcec22b-b7da-47b5-a3ed-b1b781e7a209","directory":"instant-sports-paradise","title":"Instant Sports Paradise","compatibility":1,"releases":[{"id":"0100D4D014F38000","region":null}]},{"id":"4be8226e-a4f5-4802-aee4-22996fd9f5e4","directory":"build-a-bridge","title":"Build a Bridge!","compatibility":99,"releases":[{"id":"01004D200BB96000","region":null}]},{"id":"4bf29b1c-f8c1-4d7c-b6ff-dde6c9de7dc7","directory":"oceanhorn-monster-of-uncharted-seas","title":"Oceanhorn - Monster of Uncharted Seas","compatibility":0,"releases":[{"id":"01007D7001D0E000","region":null}]},{"id":"4bf7a444-316a-4880-b07b-44bbcbe4b9d3","directory":"real-farm-premium-edition","title":"Real Farm - Premium Edition","compatibility":99,"releases":[{"id":"01006C101226C000","region":null}]},{"id":"4bfe0669-e411-4797-9203-1102e128581e","directory":"superliminal","title":"Superliminal","compatibility":4,"releases":[{"id":"010075701153A000","region":null}]},{"id":"4c0e5f49-306a-44c5-b525-64d2d8afe30b","directory":"preventive-strike","title":"Preventive Strike","compatibility":99,"releases":[{"id":"010009300D278000","region":null}]},{"id":"4c159662-76b6-4d76-9477-cc9a70687ec7","directory":"romance-of-the-three-kingdoms-xiv-diplomacy-and-strategy-expansion-pack-bundle","title":"ROMANCE OF THE THREE KINGDOMS XIV: Diplomacy and Strategy Expansion Pack Bundle","compatibility":99,"releases":[{"id":"0100ED7012DB2000","region":null}]},{"id":"4c2eaf03-5c05-4f62-b9dd-2c17f7f3dc46","directory":"animated-jigsaws-beautiful-japanese-scenery","title":"Animated Jigsaws: Beautiful Japanese Scenery","compatibility":99,"releases":[{"id":"01003C200A232000","region":null}]},{"id":"4c518ccc-8844-42c3-964f-d7209812a1ad","directory":"the-witcher-3-wild-hunt","title":"The Witcher 3: Wild Hunt","compatibility":4,"releases":[{"id":"0100E67012924000","region":null}]},{"id":"4c532f62-6c51-4ea3-9bad-7bd67c41029b","directory":"virtual-battle","title":"Virtual Battle","compatibility":99,"releases":[{"id":"0100226013C14000","region":null}]},{"id":"4c53b1a1-3ce9-4d5b-9724-74752ab5eb2b","directory":"slots-of-poker-at-aces-casino","title":"Slots of Poker at Aces Casino","compatibility":99,"releases":[{"id":"0100023012640000","region":null}]},{"id":"4c59cf0d-4570-41d3-bebd-638296b7c44e","directory":"minecraft-nintendo-switch-edition","title":"Minecraft: Nintendo Switch Edition","compatibility":0,"releases":[{"id":"01006BD001E06000","region":null}]},{"id":"4c666e56-c945-4078-a86c-95dfa32d129a","directory":"draw-a-stickman-epic-2","title":"Draw a Stickman: EPIC 2","compatibility":3,"releases":[{"id":"010030D004F34000","region":null}]},{"id":"4c7d0b30-26ad-4186-b677-b3314a7ab22d","directory":"balancelot","title":"Balancelot","compatibility":99,"releases":[{"id":"0100ECE0133AA000","region":null}]},{"id":"4c891790-ca49-4a33-aed7-cfc41a1607ad","directory":"harvest-moon-light-of-hope-special-edition","title":"Harvest Moon: Light of Hope Special Edition","compatibility":1,"releases":[{"id":"0100CF8003E70000","region":null}]},{"id":"4c8ebc5f-57e8-43a0-9ef7-9f7aa124c33c","directory":"tracks-toybox-edition","title":"Tracks - Toybox Edition","compatibility":3,"releases":[{"id":"0100192010F5A000","region":null}]},{"id":"4c974d42-c39d-482b-879f-f2063418e710","directory":"its-raining-fists-and-metal","title":"It's Raining Fists and Metal","compatibility":3,"releases":[{"id":"010022C00E8D8000","region":null}]},{"id":"4ca2e1be-37ad-4fa7-9225-43b60e611139","directory":"big-bash-boom","title":"Big Bash Boom","compatibility":1,"releases":[{"id":"010038D00B10A000","region":null}]},{"id":"4ca308c3-bcec-4e80-a351-6d707baca25e","directory":"dark-water-slime-invader","title":"Dark Water: Slime Invader","compatibility":99,"releases":[{"id":"0100C88014614000","region":null}]},{"id":"4ca51da4-6552-4278-8794-9f4c6efdabd1","directory":"angelo-and-deemon-one-hell-of-a-quest","title":"Angelo and Deemon: One Hell of a Quest","compatibility":99,"releases":[{"id":"0100D20015C06000","region":null}]},{"id":"4cc89c6f-32a3-48eb-8316-1556f9b42f9e","directory":"party-treats","title":"Party Treats","compatibility":99,"releases":[{"id":"010027D00F63C000","region":null}]},{"id":"4cc8ab8a-fd84-4913-bba7-c4bf962390dc","directory":"wild-guns-reloaded","title":"Wild Guns Reloaded","compatibility":1,"releases":[{"id":"0100CFC00A1D8000","region":null}]},{"id":"4cd00482-d506-41ee-9201-031aefea47d8","directory":"among-pipes","title":"Among Pipes","compatibility":0,"releases":[{"id":"0100AC4014872000","region":null}]},{"id":"4cd55601-b83e-4f71-951c-7c3f685ee19d","directory":"catlateral-damage-remeowstered","title":"Catlateral Damage: Remeowstered","compatibility":99,"releases":[{"id":"010077A00CB58000","region":null}]},{"id":"4cde7fbd-4270-493b-ae59-903907be6ef4","directory":"the-legend-of-tianding","title":"The Legend of Tianding","compatibility":99,"releases":[{"id":"0100AD90155FC000","region":null}]},{"id":"4ceccf7f-54fe-4171-8b63-d462523f5e61","directory":"stela","title":"Stela","compatibility":2,"releases":[{"id":"01002DE01043E000","region":null}]},{"id":"4d007190-aeac-4ed2-a115-21cc14a9093e","directory":"mystic-vale","title":"Mystic Vale","compatibility":99,"releases":[{"id":"010065500ED96000","region":null}]},{"id":"4d152905-a873-447d-8d2e-f0f856388f50","directory":"the-sexy-brutale","title":"The Sexy Brutale","compatibility":2,"releases":[{"id":"0100F89003BC8000","region":null}]},{"id":"4d2cc62e-137a-4fac-89f5-48240a187d36","directory":"lust-for-darkness","title":"Lust for Darkness","compatibility":0,"releases":[{"id":"0100F3100EB44000","region":null}]},{"id":"4d2e5753-c9b1-45e6-9fec-99e121c0fa1a","directory":"twister-road","title":"Twister Road","compatibility":99,"releases":[{"id":"010088F00F66C000","region":null}]},{"id":"4d2e9c9a-9c31-46a6-9416-3212897d8ff4","directory":"tengai-for-nintendo-switch","title":"TENGAI for Nintendo Switch","compatibility":99,"releases":[{"id":"0100B2600A398000","region":null}]},{"id":"4d451b33-ea4f-48a8-88d2-b94ccc315e56","directory":"infliction-extended-cut","title":"Infliction: Extended Cut","compatibility":99,"releases":[{"id":"01001CB00EFD6000","region":null}]},{"id":"4d52dd4f-ebb1-4181-9fe2-1ef05ea31585","directory":"the-last-days","title":"The Last Days","compatibility":99,"releases":[{"id":"0100487012CC6000","region":null}]},{"id":"4d5a9976-a361-48ec-82be-f5169815667a","directory":"valfaris-slain-double-pack","title":"Valfaris & Slain Double Pack","compatibility":2,"releases":[{"id":"0100CBF0115F2000","region":null}]},{"id":"4d631cdb-83d6-480e-b566-326d96034931","directory":"steamroll-rustless-edition","title":"Steamroll: Rustless Edition","compatibility":99,"releases":[{"id":"01001D6011D58000","region":null}]},{"id":"4d6366e4-9b26-456d-ba8a-5e64211d91ff","directory":"driving-world-aspen","title":"Driving World: Aspen","compatibility":0,"releases":[{"id":"0100D46014CCE000","region":null}]},{"id":"4d68f15e-ed9a-4ebe-8410-d00a01500597","directory":"little-dragons-cafe","title":"Little Dragons Café","compatibility":1,"releases":[{"id":"0100A3F009142000","region":null}]},{"id":"4d8791ec-75a3-4b8d-bf87-d5981c457137","directory":"evans-remains","title":"Evan's Remains","compatibility":99,"releases":[{"id":"01003F900E74E000","region":null}]},{"id":"4d8fd380-f48e-4dff-a806-86868e89c095","directory":"home-run-high","title":"Home Run High","compatibility":99,"releases":[{"id":"010013300F882000","region":null}]},{"id":"4d981c61-37a7-4ca9-a782-c2b54b7ae5cb","directory":"dayd-through-time","title":"DayD: Through Time","compatibility":2,"releases":[{"id":"010072600D8EC000","region":null}]},{"id":"4d9a0ec1-726a-4d11-b7c7-a05a4554ce89","directory":"habroxia-2","title":"Habroxia 2","compatibility":2,"releases":[{"id":"0100E3D013B28000","region":null}]},{"id":"4da8e468-d662-45f7-9e91-4939fb4beff2","directory":"through-the-darkest-of-times","title":"Through the Darkest of Times","compatibility":0,"releases":[{"id":"01007130114CC000","region":null}]},{"id":"4daa2887-ba05-4b96-980f-a344bf33ce04","directory":"mindseize","title":"MindSeize","compatibility":0,"releases":[{"id":"0100B05012FB2000","region":null}]},{"id":"4dc03dfd-6b53-4b32-b691-92df8a495d11","directory":"tennis-world-tour-2","title":"Tennis World Tour 2","compatibility":1,"releases":[{"id":"01002AF011D14000","region":null}]},{"id":"4dcb855c-bc79-4276-97df-5c6c5e3da8e2","directory":"dirt-bike-retro","title":"Dirt Bike Retro","compatibility":0,"releases":[{"id":"01006D60147E0000","region":null}]},{"id":"4dcba8c0-4815-485f-b1de-4388a218a9e6","directory":"forty-thieves-solitaire-collection","title":"Forty Thieves Solitaire Collection","compatibility":99,"releases":[{"id":"0100F3D01601C000","region":null}]},{"id":"4dd0e0a1-caf2-4a1a-8360-ab15b69a5fff","directory":"yet-another-zombie-defense-hd","title":"Yet Another Zombie Defense HD","compatibility":99,"releases":[{"id":"010085500B29A000","region":null}]},{"id":"4dd0ee2c-fb38-44db-bfb3-348a78e7eaa0","directory":"remnants-of-naezith","title":"Remnants of Naezith","compatibility":4,"releases":[{"id":"010043B00AAC0000","region":null}]},{"id":"4dd4d1fd-4415-4e6a-bc47-2a18af70e291","directory":"milkmaid-of-the-milky-way","title":"Milkmaid of the Milky Way","compatibility":99,"releases":[{"id":"010075000EE32000","region":null}]},{"id":"4de3932b-d194-46ea-8f6b-634598e885a6","directory":"mundaun","title":"Mundaun","compatibility":99,"releases":[{"id":"01002AB012858000","region":null}]},{"id":"4de9513b-3a1a-4253-85cf-7a2728e57bba","directory":"zombies-cool","title":"Zombie's Cool","compatibility":99,"releases":[{"id":"01001740116EC000","region":null}]},{"id":"4df2a221-2131-41ba-a8e3-560b44675eef","directory":"shiren-the-wanderer-the-tower-of-fortune-and-the-dice-of-fate","title":"Shiren the Wanderer: The Tower of Fortune and the Dice of Fate","compatibility":1,"releases":[{"id":"01007430122D0000","region":null}]},{"id":"4df8624b-6d01-48ae-b383-aa23f4a1ca6f","directory":"collar-x-malice","title":"Collar X Malice","compatibility":0,"releases":[{"id":"010083E00F40E000","region":null}]},{"id":"4e04ce58-71d8-4e54-b4da-cceefdd92ab9","directory":"chronos-before-the-ashes","title":"Chronos: Before the Ashes","compatibility":99,"releases":[{"id":"010006800E13A000","region":null}]},{"id":"4e07f5dc-0cbb-457e-b20c-0ace1a5e0474","directory":"neon-abyss","title":"Neon Abyss","compatibility":0,"releases":[{"id":"0100BAB01113A000","region":null}]},{"id":"4e0d8601-e4bf-4efe-ae3a-20a243f415a4","directory":"smugglecraft","title":"SmuggleCraft","compatibility":99,"releases":[{"id":"0100C4200B820000","region":null}]},{"id":"4e1f877e-3e10-480c-97ab-e0709a51c02d","directory":"yumeiri","title":"Yumeiri","compatibility":99,"releases":[{"id":"0100E44013632000","region":null}]},{"id":"4e2a727c-8910-44a1-9c88-a3e08520feaf","directory":"kaze-and-the-wild-masks","title":"Kaze and the Wild Masks","compatibility":2,"releases":[{"id":"010038B00F142000","region":null}]},{"id":"4e2d1d69-7eef-4846-944a-28d61fb4c4ff","directory":"xeodrifter","title":"Xeodrifter","compatibility":1,"releases":[{"id":"01005B5009364000","region":null}]},{"id":"4e49cc2f-db9f-4916-a337-51ba00078fa4","directory":"life-of-fly-2","title":"Life of Fly 2","compatibility":99,"releases":[{"id":"010069A01506E000","region":null}]},{"id":"4e54d65b-05f4-49b4-9478-6a153fe1c5f3","directory":"dungeon-of-crawl","title":"Dungeon of Crawl","compatibility":99,"releases":[{"id":"01004050148C4000","region":null}]},{"id":"4e582d55-adb5-44d7-8749-52a3ab994034","directory":"destruction","title":"Destruction","compatibility":99,"releases":[{"id":"01003A400BF8C000","region":null}]},{"id":"4e591835-2838-41eb-bfec-1d0dccfdb7fc","directory":"aca-neogeo-top-players-golf","title":"ACA NEOGEO TOP PLAYER’S GOLF","compatibility":99,"releases":[{"id":"0100B7400A304000","region":null}]},{"id":"4e64f8a7-f256-4eda-8e94-a310be21ff67","directory":"turok","title":"Turok","compatibility":3,"releases":[{"id":"010085500D5F6000","region":null}]},{"id":"4e757e3d-590c-410a-9440-8ec65b138cc8","directory":"farm-for-your-life","title":"Farm for your Life","compatibility":99,"releases":[{"id":"0100B87013EBE000","region":null}]},{"id":"4e83c80e-cabc-4335-ad8c-7947c2f73db0","directory":"infini","title":"Infini","compatibility":99,"releases":[{"id":"0100874012158000","region":null}]},{"id":"4e8b70de-8798-4cb3-ac72-1b3c63ff26c0","directory":"frontier-quest","title":"Frontier Quest","compatibility":99,"releases":[{"id":"0100A55014E2C000","region":null}]},{"id":"4eab83d4-b923-4c22-9e91-452ef062a7d3","directory":"1-2-switch","title":"1-2-Switch","compatibility":1,"releases":[{"id":"01000320000CC000","region":null}]},{"id":"4eb09ec9-0f25-43fc-9d3d-ea0079d62cb8","directory":"gensokyodefenders","title":"GensokyoDefenders","compatibility":3,"releases":[{"id":"010000300C79C000","region":null}]},{"id":"4ecbce6a-76a9-4536-b945-4aaa2bd0b3d3","directory":"bowling","title":"Bowling","compatibility":99,"releases":[{"id":"01008CE00FDCC000","region":null}]},{"id":"4ed1e2c8-dc8e-4a24-a56c-ed8d881aad06","directory":"faircrofts-antiques-the-heir-of-glen-kinnoch-collectors-edition","title":"Faircroft's Antiques: The Heir of Glen Kinnoch Collector's Edition","compatibility":99,"releases":[{"id":"010059701469E000","region":null}]},{"id":"4ed36528-7216-428a-93dc-091c2c1d148e","directory":"warhammer-quest","title":"Warhammer Quest","compatibility":0,"releases":[{"id":"01002B000C4AA000","region":null}]},{"id":"4eda0ac2-3e73-4b7b-bf26-17ce1aec4150","directory":"halloween-super-puzzles-dream","title":"#Halloween, Super Puzzles Dream","compatibility":99,"releases":[{"id":"01000E50134A4000","region":null}]},{"id":"4ee927f4-c135-4eaa-b159-1ab4076cb761","directory":"fatal-frame-maiden-of-black-water","title":"FATAL FRAME: Maiden of Black Water","compatibility":1,"releases":[{"id":"0100BEB015604000","region":null}]},{"id":"4eebe5a8-a30a-4bfb-b4a2-c6fa5ace1e9c","directory":"the-mystery-of-the-hudson-case","title":"The Mystery of the Hudson Case","compatibility":99,"releases":[{"id":"01004C500AAF6000","region":null}]},{"id":"4eecb1e8-1ff4-4466-852b-76ef4dafec2a","directory":"sun-wukong-vs-robot","title":"Sun Wukong VS Robot","compatibility":99,"releases":[{"id":"0100400013E20000","region":null}]},{"id":"4eee911a-e2b8-4298-a3ed-1aa6192b62f8","directory":"candy-raid-the-factory","title":"Candy Raid: The Factory","compatibility":99,"releases":[{"id":"0100B040128E6000","region":null}]},{"id":"4ef4e8d9-44ce-48ee-ba9c-e3d96903ff68","directory":"a-fold-apart","title":"A Fold Apart","compatibility":0,"releases":[{"id":"01003A600D8FC000","region":null}]},{"id":"4ef9eb89-3a02-4a8a-a0ce-a8c1fcd4c352","directory":"pode","title":"Pode","compatibility":1,"releases":[{"id":"01009440095FE000","region":null}]},{"id":"4efc72b2-0698-411b-a441-035261389f78","directory":"shantae-half-genie-hero","title":"Shantae: Half-Genie Hero","compatibility":1,"releases":[{"id":"0100AE0003424000","region":null}]},{"id":"4f058405-0df9-4539-8a6c-db894034706f","directory":"best-sniper-legacy-dino-hunt-shooter-3d","title":"Best Sniper Legacy: Dino Hunt & Shooter 3D","compatibility":99,"releases":[{"id":"01006FA0150C6000","region":null}]},{"id":"4f09cf33-cf17-432f-ab86-e4baebd84fc9","directory":"banner-saga-3","title":"Banner Saga 3","compatibility":5,"releases":[{"id":"010071E00875A000","region":null}]},{"id":"4f0ffff6-90e1-4d4c-bd81-d8c4d6e1fd05","directory":"picross-s3","title":"PICROSS S3","compatibility":0,"releases":[{"id":"010079200D330000","region":null}]},{"id":"4f1a573b-7594-4493-956b-c9ed5e0f7a4a","directory":"crash-dummy","title":"Crash Dummy","compatibility":99,"releases":[{"id":"010046600BD0E000","region":null}]},{"id":"4f33a21c-9351-4805-a2c9-8d9e95c69ee1","directory":"toon-war","title":"Toon War","compatibility":99,"releases":[{"id":"01009EA00E2B8000","region":null}]},{"id":"4f3a6322-40d3-4267-b21d-97c6c2a3cc1a","directory":"puzzle-and-dragons-gold","title":"Puzzle & Dragons GOLD","compatibility":99,"releases":[{"id":"0100C5700ECE0000","region":null}]},{"id":"4f3a6d35-e339-45a3-9cfe-f15597665f9e","directory":"mushroom-wars-2","title":"Mushroom Wars 2","compatibility":4,"releases":[{"id":"0100700006EF6000","region":null}]},{"id":"4f50941e-7122-450f-b502-6dfc0077e6d2","directory":"space-ribbon","title":"Space Ribbon","compatibility":3,"releases":[{"id":"010010A009830000","region":null}]},{"id":"4f55d8eb-eb2d-4b26-b414-173ed3d463ec","directory":"witch-and-hero","title":"Witch & Hero","compatibility":99,"releases":[{"id":"010028700D1CA000","region":null}]},{"id":"4f5975ea-4ee3-43a8-85aa-43b0998e05ae","directory":"instant-sports-summer-games","title":"Instant Sports Summer Games","compatibility":2,"releases":[{"id":"010099A011A46000","region":null}]},{"id":"4f69bd5c-6e23-432b-b223-2db0bc83b1d2","directory":"beyond-a-steel-sky","title":"Beyond a Steel Sky","compatibility":1,"releases":[{"id":"010023C015242000","region":null}]},{"id":"4f748394-fa4f-42dc-bb15-26bd86ff2973","directory":"snk-heroines-tag-team-frenzy","title":"SNK HEROINES Tag Team Frenzy","compatibility":3,"releases":[{"id":"010027F00AD6C000","region":null}]},{"id":"4f8e181a-c427-4155-a399-29fafd9bae44","directory":"spacetime-odissey","title":"SPACETIME ODISSEY","compatibility":99,"releases":[{"id":"01001B0016C9A000","region":null}]},{"id":"4f9ad5da-396c-4ea7-8ff2-a37d6ecafbcd","directory":"aca-neogeo-sengoku-2","title":"ACA NEOGEO SENGOKU 2","compatibility":4,"releases":[{"id":"01009B300872A000","region":null}]},{"id":"4fa4f9a9-7458-4f56-ba7b-71392de46623","directory":"dungeon-and-gravestone","title":"Dungeon and Gravestone","compatibility":99,"releases":[{"id":"010028601190C000","region":null}]},{"id":"4fb61c22-d19b-4f77-9604-53bb7357da6d","directory":"gal-gun-returns","title":"Gal*Gun Returns","compatibility":0,"releases":[{"id":"0100AA50138B4000","region":null}]},{"id":"4fb63e06-c40c-4ac5-b325-160d0c1af7d5","directory":"final-fantasy-viii-remastered","title":"FINAL FANTASY VIII Remastered","compatibility":4,"releases":[{"id":"01008B900DC0A000","region":null}]},{"id":"4fbc292f-2624-41c5-b2ca-3320b50f9bdd","directory":"destiny-connect-tick-tock-travelers","title":"Destiny Connect: Tick-Tock Travelers","compatibility":3,"releases":[{"id":"010069500DD86000","region":null}]},{"id":"4fbcabb0-8e76-4925-8b22-60a5106f805e","directory":"fishing-star-world-tour","title":"Fishing Star World Tour","compatibility":1,"releases":[{"id":"0100DEB00ACE2000","region":null}]},{"id":"4fc4efdd-4bb1-4109-ba02-b661682042e6","directory":"gonner","title":"GoNNER","compatibility":99,"releases":[{"id":"01007C2002B3C000","region":null}]},{"id":"4fc53128-6fdd-4a48-84fb-c3e6f7505b38","directory":"witch-thief","title":"Witch Thief","compatibility":99,"releases":[{"id":"01002FC00C6D0000","region":null}]},{"id":"4fcd9008-5e6c-41dd-84fa-502b34c41208","directory":"arcade-archives-the-fairyland-story","title":"Arcade Archives The Fairyland Story","compatibility":99,"releases":[{"id":"01007F701323E000","region":null}]},{"id":"4fd14c97-b4ce-44b7-85a0-e845337cc8ef","directory":"game-tengoku-cruisinmix-special","title":"Game Tengoku CruisinMix Special","compatibility":2,"releases":[{"id":"01000E800F326000","region":null}]},{"id":"4fd1f65c-f426-4126-9c6e-5320c3315479","directory":"team-troopers","title":"Team Troopers","compatibility":99,"releases":[{"id":"01009E0014164000","region":null}]},{"id":"4fd3ad55-1504-41f3-bb12-1df8d8d504d8","directory":"santa-throw","title":"Santa Throw","compatibility":99,"releases":[{"id":"0100E890170E8000","region":null}]},{"id":"4fd8d8d0-2cd5-4eb9-80b6-7f096bfb8d69","directory":"alluris","title":"Alluris","compatibility":99,"releases":[{"id":"0100AC501122A000","region":null}]},{"id":"4feb9bc4-e78f-4839-98cb-d9e34386bca0","directory":"ultra-space-battle-brawl","title":"Ultra Space Battle Brawl","compatibility":99,"releases":[{"id":"0100E67008D84000","region":null}]},{"id":"4ff7106a-13db-40d9-9faf-37e4c0f8c61c","directory":"dragon-sinker","title":"Dragon Sinker","compatibility":1,"releases":[{"id":"0100356009860000","region":null}]},{"id":"50059fd8-c07d-4570-a25d-2b630762643b","directory":"knightin","title":"Knightin'+","compatibility":0,"releases":[{"id":"01005F8010D98000","region":null}]},{"id":"501fa399-64b0-4739-b3a5-b7a8ff927380","directory":"crash-bandicoot-n-sane-trilogy","title":"Crash Bandicoot N. Sane Trilogy","compatibility":1,"releases":[{"id":"0100D1B006744000","region":null}]},{"id":"502b6d9c-f000-4be0-b2b0-f72b5e800ee5","directory":"carx-drift-racing-online","title":"CarX Drift Racing Online","compatibility":99,"releases":[{"id":"01001A10134B8000","region":null}]},{"id":"502bcfa4-7020-4261-b5cc-7a883a5d3305","directory":"nekopara-vol3","title":"NEKOPARA Vol.3","compatibility":99,"releases":[{"id":"010045000E418000","region":null}]},{"id":"502ed52a-6086-472c-844a-7d103eacb063","directory":"the-walking-dead-the-final-season-season-pass","title":"The Walking Dead: The Final Season - Season Pass","compatibility":2,"releases":[{"id":"010060F00AA70000","region":null}]},{"id":"50312190-6ca4-48a6-975f-15eb025a3638","directory":"caveman-warriors","title":"Caveman Warriors","compatibility":0,"releases":[{"id":"01006DB004566000","region":null}]},{"id":"5033579f-7ce4-4934-8a29-6c7a2cad5636","directory":"pigeon-fight","title":"Pigeon Fight","compatibility":99,"releases":[{"id":"010006B013CA6000","region":null}]},{"id":"503a76bc-d597-4cac-9d7d-48d936dcd336","directory":"convoy-a-tactical-roguelike","title":"Convoy: A Tactical Roguelike","compatibility":0,"releases":[{"id":"010058800E90A000","region":null}]},{"id":"503e988c-741b-46ff-9d34-7a9c576bbc1b","directory":"dandy-ace","title":"Dandy Ace","compatibility":1,"releases":[{"id":"0100608014708000","region":null}]},{"id":"5055b1ee-d8df-4c0a-b0d1-75eeb111b285","directory":"the-bunker","title":"The Bunker","compatibility":4,"releases":[{"id":"01001B40086E2000","region":null}]},{"id":"50669b11-b939-499d-8070-b62587e686f0","directory":"teslagrad","title":"Teslagrad","compatibility":0,"releases":[{"id":"01005C8005F34000","region":null}]},{"id":"50670ab4-1a8c-4220-8261-e525a73be4be","directory":"be-a-walker","title":"BE-A Walker","compatibility":1,"releases":[{"id":"01003A1010E3C000","region":null}]},{"id":"506b5a0c-42ae-4a89-a73a-dd645c11996c","directory":"paint-your-pet","title":"Paint your Pet","compatibility":99,"releases":[{"id":"0100AB90129CA000","region":null}]},{"id":"506ea1a7-13fe-417d-83ad-0b7346ceb66a","directory":"exzeus-the-complete-collection","title":"ExZeus: The Complete Collection","compatibility":99,"releases":[{"id":"0100A7A0147BA000","region":null}]},{"id":"50897edc-61bd-4508-96be-b75ed0183fdb","directory":"pet-shop-snacks","title":"Pet Shop Snacks","compatibility":99,"releases":[{"id":"0100FCB00EEF2000","region":null}]},{"id":"508b1b84-a7bb-4c72-a447-26cddee74e3a","directory":"touhou-genso-wanderer-lotus-labyrinth-r","title":"Touhou Genso Wanderer -Lotus Labyrinth R-","compatibility":99,"releases":[{"id":"0100A7A015E4C000","region":null}]},{"id":"50a2045f-590f-4e70-9dba-6a4bff9b3356","directory":"the-magister","title":"The Magister","compatibility":99,"releases":[{"id":"01006E7013018000","region":null}]},{"id":"50a221bd-dc01-4d02-afb3-223da9afe9e1","directory":"reflection-of-mine","title":"Reflection of Mine","compatibility":99,"releases":[{"id":"010045D01273A000","region":null}]},{"id":"50a4b715-f2f7-4b93-850c-970a818bc153","directory":"aeternoblade-ii","title":"AeternoBlade II","compatibility":1,"releases":[{"id":"0100AE500E76A000","region":null}]},{"id":"50af6c76-97bd-4503-898f-a7f6411fd255","directory":"lanota","title":"Lanota","compatibility":99,"releases":[{"id":"0100E7200B272000","region":null}]},{"id":"50b5a2a3-3e59-4b37-a109-4f1f28056146","directory":"aca-neogeo-the-king-of-fighters-99","title":"ACA NEOGEO THE KING OF FIGHTERS '99","compatibility":4,"releases":[{"id":"0100583001DCA000","region":null}]},{"id":"50c0dffb-8801-4492-b105-8e9d488ed296","directory":"soulblight","title":"Soulblight","compatibility":99,"releases":[{"id":"0100928005094000","region":null}]},{"id":"5109f13c-725d-494e-b0fb-fe23789ee3a0","directory":"kyle-is-famous-complete-edition","title":"Kyle is Famous: Complete Edition","compatibility":99,"releases":[{"id":"0100090014ABE000","region":null}]},{"id":"5115e45d-d7b4-4a02-8eb8-4ccc1f99bf7c","directory":"reed-remastered","title":"Reed Remastered","compatibility":99,"releases":[{"id":"01005D50107F2000","region":null}]},{"id":"511760a2-a2ed-4821-96e3-f003f71ed399","directory":"lynn-the-girl-drawn-on-puzzles","title":"Lynn, The Girl Drawn On Puzzles","compatibility":99,"releases":[{"id":"0100C200163DE000","region":null}]},{"id":"511d441d-3b27-49f9-9a5b-acfd3d03db9a","directory":"double-dragon-4","title":"Double Dragon 4","compatibility":1,"releases":[{"id":"010001B005E5C000","region":null}]},{"id":"5122c0aa-a6cd-46b4-abd9-457b56f3ba43","directory":"big-dipper","title":"Big Dipper","compatibility":99,"releases":[{"id":"0100A42011B28000","region":null}]},{"id":"5134df76-7e6e-4559-afb1-49df1b072fc6","directory":"save-farty","title":"Save Farty","compatibility":99,"releases":[{"id":"01007FF01388E000","region":null}]},{"id":"5145a4c5-5641-4dd8-b76c-668d9b52e9ee","directory":"shaolin-vs-wutang","title":"Shaolin vs Wutang","compatibility":99,"releases":[{"id":"01003AB01062C000","region":null}]},{"id":"514e8e2c-59fb-474d-b2ab-d711591f0773","directory":"ubermosh-santicide","title":"UBERMOSH: SANTICIDE","compatibility":99,"releases":[{"id":"010040D01222C000","region":null}]},{"id":"515455c1-181a-4cb2-bc4a-d2f3f0f96a1d","directory":"arcade-archives-pop-flamer","title":"Arcade Archives POP FLAMER","compatibility":99,"releases":[{"id":"0100CC701508E000","region":null}]},{"id":"51559a3b-bd4f-47d4-8296-61e1046ad0b0","directory":"construction-simulator-2-us-console-edition","title":"Construction Simulator 2 US - Console Edition","compatibility":3,"releases":[{"id":"0100E5D00DE2C000","region":null}]},{"id":"51890479-444c-4816-a94d-a9e2d7b02603","directory":"cold-silence","title":"Cold Silence","compatibility":99,"releases":[{"id":"010035B01706E000","region":null}]},{"id":"518942ba-380e-4d0d-8dc3-75522fde38e2","directory":"infectra","title":"Infectra","compatibility":99,"releases":[{"id":"01004140132A8000","region":null}]},{"id":"51994f63-ee6c-46e4-84d1-4125196e6644","directory":"the-gardener-and-the-wild-vines","title":"The Gardener and the Wild Vines","compatibility":99,"releases":[{"id":"01006350148DA000","region":null}]},{"id":"519e884f-d55a-46e7-8ad5-5ed07944ded0","directory":"shovel-knight-king-of-cards","title":"Shovel Knight: King of Cards","compatibility":2,"releases":[{"id":"01008B20022AA000","region":null}]},{"id":"51a3a270-f973-46d6-becc-99c7729e62f1","directory":"contra-anniversary-collection","title":"Contra Anniversary Collection","compatibility":0,"releases":[{"id":"0100DCA00DA7E000","region":null}]},{"id":"51b328c2-3480-43aa-8718-d598dfaee343","directory":"puzzlement","title":"puzzlement","compatibility":99,"releases":[{"id":"010005D00FC06000","region":null}]},{"id":"51cfb425-7e9b-4ede-a553-833851c5879e","directory":"frosty-jump","title":"Frosty Jump","compatibility":99,"releases":[{"id":"0100A5D0100DE000","region":null}]},{"id":"51d05072-d106-4ab9-bfcc-529296a86b17","directory":"piano","title":"Piano","compatibility":99,"releases":[{"id":"010045B011E1E000","region":null}]},{"id":"51e44e8d-2d03-4199-bd02-19fea83ee823","directory":"battle-and-crash","title":"BATTLE & CRASH","compatibility":99,"releases":[{"id":"010044400E99C000","region":null}]},{"id":"51e74aa2-23d3-4d26-be6a-85b042bc1730","directory":"pokemon-shield","title":"Pokémon Shield","compatibility":1,"releases":[{"id":"01008DB008C2C000","region":null}]},{"id":"51fa6525-e1ab-4534-aabc-533a3369a8ec","directory":"invisigun-reloaded","title":"Invisigun Reloaded","compatibility":99,"releases":[{"id":"01005F400E644000","region":null}]},{"id":"5201964a-1dcd-465e-95cf-1796b242a1d4","directory":"what-the-dub","title":"What the Dub?!","compatibility":99,"releases":[{"id":"0100937014244000","region":null}]},{"id":"52102966-9f99-4a7a-ba55-bd90a3a20b1e","directory":"amoeba-battle-microscopic-rts-action","title":"Amoeba Battle - Microscopic RTS Action","compatibility":99,"releases":[{"id":"010041D00DEB2000","region":null}]},{"id":"5214addc-0e20-4122-b096-92da57628be6","directory":"eastward","title":"Eastward","compatibility":2,"releases":[{"id":"010071B00F63A000","region":null}]},{"id":"5216e4e2-be9b-4dff-a337-1814e4e8bd53","directory":"blood-and-guts-bundle","title":"Blood and Guts Bundle","compatibility":0,"releases":[{"id":"0100EE5011DB6000","region":null}]},{"id":"521dc13d-a74a-401d-9f30-18a2bf9298c2","directory":"clusterpuck-99","title":"ClusterPuck 99","compatibility":4,"releases":[{"id":"010085A00821A000","region":null}]},{"id":"521e0762-4843-4cb8-adce-82d8cb91b40d","directory":"aeternoblade","title":"AeternoBlade","compatibility":1,"releases":[{"id":"01006C40086EA000","region":null}]},{"id":"522857c9-9e4c-49eb-813c-5dc038a8644b","directory":"the-mummy-demastered","title":"The Mummy Demastered","compatibility":0,"releases":[{"id":"0100496004194000","region":null}]},{"id":"52320a48-8cfd-4059-896e-c4bc011e5622","directory":"ruin-raiders","title":"Ruin Raiders","compatibility":99,"releases":[{"id":"0100D7D0138A2000","region":null}]},{"id":"523498eb-d935-425a-92fd-f4e4924affad","directory":"anode","title":"Anode","compatibility":99,"releases":[{"id":"01009E600D78C000","region":null}]},{"id":"52368889-9244-4e88-b28b-57908b9a7c14","directory":"mushroom-quest","title":"Mushroom Quest","compatibility":99,"releases":[{"id":"010035901046C000","region":null}]},{"id":"523724c6-35a4-47f6-9bb9-1c5e60d4e125","directory":"slash-ninja","title":"Slash Ninja","compatibility":99,"releases":[{"id":"01008800130EA000","region":null}]},{"id":"52373db8-29df-48e2-80e4-95f2142b4014","directory":"wheres-samantha","title":"Where's Samantha?","compatibility":99,"releases":[{"id":"010047F014B82000","region":null}]},{"id":"5245a997-9e77-42d7-93d2-33270a62a9fa","directory":"life-of-fly","title":"Life of Fly","compatibility":99,"releases":[{"id":"0100B3A0137EA000","region":null}]},{"id":"52461ad8-3703-4b6c-bffa-5d48f9659a5a","directory":"ryans-rescue-squad","title":"Ryan's Rescue Squad","compatibility":99,"releases":[{"id":"0100D0E0139A0000","region":null}]},{"id":"52464fe5-74e7-4c28-a26c-24fee81ea428","directory":"vektor-wars","title":"Vektor Wars","compatibility":99,"releases":[{"id":"010098400E39E000","region":null}]},{"id":"524b10c4-1067-48c6-98f0-9c9bce8fafc3","directory":"mystery-mine","title":"Mystery Mine","compatibility":99,"releases":[{"id":"01002800117EE000","region":null}]},{"id":"526f9344-ce7b-42b3-9b1f-9f877b0b7112","directory":"graceful-explosion-machine","title":"Graceful Explosion Machine","compatibility":1,"releases":[{"id":"01004D10020F2000","region":null}]},{"id":"5276314d-52b6-4812-988d-a48209f2ed18","directory":"horror-bundle-vol-1","title":"Horror Bundle Vol. 1","compatibility":5,"releases":[{"id":"0100E3801140A000","region":null}]},{"id":"528a091b-1666-4f52-81e4-846dea77ead2","directory":"fragment-of-marine","title":"Fragment of Marine","compatibility":99,"releases":[{"id":"01001A300C802000","region":null}]},{"id":"5298c07e-4a2c-4bc0-9e8f-010f7f44ce49","directory":"crying-suns","title":"Crying Suns","compatibility":99,"releases":[{"id":"010074A00E872000","region":null}]},{"id":"529d1d3c-a99d-4438-9451-ef9d95439e12","directory":"rusty-gun","title":"Rusty Gun","compatibility":99,"releases":[{"id":"01000E4012A00000","region":null}]},{"id":"52a06bbb-2798-4c1d-9204-ab46b749f1ef","directory":"beach-volleyball-challenge","title":"Beach Volleyball Challenge","compatibility":99,"releases":[{"id":"01001200160DC000","region":null}]},{"id":"52cb6e02-940f-4711-891c-ca4f9f65d071","directory":"vroom-in-the-night-sky","title":"Vroom in the night sky","compatibility":99,"releases":[{"id":"01004E90028A2000","region":null}]},{"id":"52cc2e79-8a92-4ad9-b083-2414366d646b","directory":"muddledash","title":"Muddledash","compatibility":99,"releases":[{"id":"010087C009246000","region":null}]},{"id":"52d26f3d-b5b5-4812-8118-ecf9085077e7","directory":"hand-of-fate-2","title":"Hand of Fate 2","compatibility":1,"releases":[{"id":"01003620068EA000","region":null}]},{"id":"52da0162-feb7-460d-942a-167251059453","directory":"miner-warfare","title":"Miner Warfare","compatibility":99,"releases":[{"id":"010044900CCCC000","region":null}]},{"id":"52e8a855-68f7-4b54-95e8-c36d33dba361","directory":"has-been-heroes","title":"Has-Been Heroes","compatibility":1,"releases":[{"id":"0100E29001298000","region":null}]},{"id":"52e90120-ba9f-4e37-b508-2ad05a4f6647","directory":"tennis-club-story","title":"Tennis Club Story","compatibility":99,"releases":[{"id":"01006CB00EEEA000","region":null}]},{"id":"52edc479-35d0-4a60-9c3e-11da54da6015","directory":"ubermosh-black","title":"UBERMOSH:BLACK","compatibility":99,"releases":[{"id":"0100A5101210E000","region":null}]},{"id":"52f0ead1-4940-48aa-a92d-5dc6cef36442","directory":"squareboy-vs-bullies-arena-edition-demo","title":"Squareboy vs Bullies: Arena Edition Demo","compatibility":99,"releases":[{"id":"010039300A56C000","region":null}]},{"id":"530e41cc-1f3b-41ad-99cd-af53e668ae4f","directory":"riot-civil-unrest","title":"RIOT - Civil Unrest","compatibility":99,"releases":[{"id":"010088E00B816000","region":null}]},{"id":"53136ce0-84e7-4789-b4d5-4292a6a99402","directory":"ninja-gaiden-master-collection-deluxe-edition","title":"NINJA GAIDEN: Master Collection Deluxe Edition","compatibility":0,"releases":[{"id":"01002AF014F4C000","region":null}]},{"id":"532c81bd-d19e-4a80-a5a7-119569b462c3","directory":"deep-sky-derelicts-definitive-edition","title":"Deep Sky Derelicts: Definitive Edition","compatibility":0,"releases":[{"id":"0100C3E00D68E000","region":null}]},{"id":"534f370c-768d-480a-b566-6a5834226595","directory":"duke-of-defense","title":"Duke of Defense","compatibility":99,"releases":[{"id":"0100AE300CB00000","region":null}]},{"id":"53533ea2-93fc-47b0-855e-e62cfc5ddb5d","directory":"top-down-racer","title":"Top Down Racer","compatibility":99,"releases":[{"id":"010092C016480000","region":null}]},{"id":"5366247a-6f5c-413d-b2a6-26e694bd7f93","directory":"table-soccer-foosball","title":"Table Soccer Foosball","compatibility":99,"releases":[{"id":"0100F8A013D5E000","region":null}]},{"id":"5372c5b7-9c3f-4cb1-a752-072d2879aa22","directory":"vesta","title":"Vesta","compatibility":99,"releases":[{"id":"010057B00712C000","region":null}]},{"id":"53804b82-ce6d-4abc-9bc4-a35b9f2eee25","directory":"eclipse-edge-of-light","title":"Eclipse: Edge of Light","compatibility":99,"releases":[{"id":"01001F20100B8000","region":null}]},{"id":"53806384-97e7-4983-8c72-7cc050e2b05e","directory":"goblin-sword","title":"Goblin Sword","compatibility":2,"releases":[{"id":"010067C010F88000","region":null}]},{"id":"53961401-749c-4335-b065-c65e77a58f3c","directory":"galgun-2","title":"Gal*Gun 2","compatibility":4,"releases":[{"id":"010024700901A000","region":null}]},{"id":"53985a74-323a-406d-80a6-652cd1cb01bc","directory":"picross-s4","title":"PICROSS S4","compatibility":0,"releases":[{"id":"0100C250115DC000","region":null}]},{"id":"53a60a06-8831-4d58-99dd-429de6a61204","directory":"anthill","title":"Anthill","compatibility":1,"releases":[{"id":"010054C00D842000","region":null}]},{"id":"53bf54d1-c26b-408e-87d2-92757ef63f0e","directory":"soap-dodgem","title":"Soap Dodgem","compatibility":99,"releases":[{"id":"010025C007892000","region":null}]},{"id":"53c923d2-4af1-462d-8e67-9cca409e9901","directory":"rain-city","title":"Rain City","compatibility":99,"releases":[{"id":"01003C700D0DE000","region":null}]},{"id":"53d1f903-b46b-4507-a45c-084f0dfa7599","directory":"luciform","title":"Luciform","compatibility":99,"releases":[{"id":"010073201423E000","region":null}]},{"id":"53d39354-15ad-4f40-a70c-9e9a36244eca","directory":"construction-simulator-3-console-edition","title":"Construction Simulator 3 - Console Edition","compatibility":99,"releases":[{"id":"0100A5600FAC0000","region":null}]},{"id":"53dee15d-937d-41d8-aa44-4d47c7cc02dc","directory":"no-longer-home","title":"No Longer Home","compatibility":99,"releases":[{"id":"0100D99014262000","region":null}]},{"id":"53f06700-bab2-4b75-952c-eb1fa3533a89","directory":"new-super-mario-bros-u-deluxe","title":"New Super Mario Bros. U Deluxe","compatibility":2,"releases":[{"id":"0100EA80032EA000","region":null}]},{"id":"53faed5c-f365-4ac8-8855-cec724c4572d","directory":"caveman-warriors-demo","title":"Caveman Warriors Demo","compatibility":99,"releases":[{"id":"010078700B2CC000","region":null}]},{"id":"53fe4961-b18f-4d54-bd44-4689896d8e91","directory":"disney-tsum-tsum-festival","title":"Disney TSUM TSUM FESTIVAL","compatibility":99,"releases":[{"id":"010012800EBAE000","region":null}]},{"id":"5401e254-3776-4839-b9b8-70e6dc27ab79","directory":"killer-chambers","title":"Killer Chambers","compatibility":99,"releases":[{"id":"01005D10133B8000","region":null}]},{"id":"5406989a-4123-40c9-abc6-fcb4b60b69dc","directory":"manual-samuel","title":"Manual Samuel","compatibility":1,"releases":[{"id":"0100748009A28000","region":null}]},{"id":"54090a5d-d46f-4839-ac42-7d0391612def","directory":"neo-cab","title":"Neo Cab","compatibility":0,"releases":[{"id":"0100EBB00D2F4000","region":null}]},{"id":"54093919-00cc-4590-9d75-9bbedd80d51b","directory":"the-elder-scrolls-r-blades","title":"The Elder Scrolls®: Blades","compatibility":4,"releases":[{"id":"01003D700DD8A000","region":null}]},{"id":"540ec27f-5721-4efd-932f-d94b6dcee075","directory":"ghosts-n-goblins-resurrection","title":"Ghosts 'n Goblins Resurrection","compatibility":2,"releases":[{"id":"0100D6200F2BA000","region":null}]},{"id":"540f8a4a-b527-4da1-9c54-6df45ea9e4fd","directory":"space-marshals","title":"Space Marshals","compatibility":99,"releases":[{"id":"0100782013A04000","region":null}]},{"id":"5410dcce-bfe0-40e6-bbeb-bd1f61e1af17","directory":"word-sudoku-by-powgi-demo","title":"Word Sudoku by POWGI Demo","compatibility":99,"releases":[{"id":"0100FC900CAE4000","region":null}]},{"id":"541f7f48-874a-43e7-9fb4-ccb696ffe07b","directory":"the-path-of-motus","title":"The Path of Motus","compatibility":99,"releases":[{"id":"01001BB00C2EC000","region":null}]},{"id":"5420d867-883e-458d-a98e-76c2fb69e0d0","directory":"blobcat","title":"BlobCat","compatibility":0,"releases":[{"id":"0100F3500A20C000","region":null}]},{"id":"5422c0a0-38d1-453d-b0eb-ddc58fd11669","directory":"the-adventure-of-ravi-n-navi","title":"The Adventure of Ravi 'n' Navi","compatibility":99,"releases":[{"id":"0100D800159FA000","region":null}]},{"id":"5431a492-82e6-40a6-b52d-734b73ba1e66","directory":"nexoria-dungeon-rogue-heroes","title":"Nexoria: Dungeon Rogue Heroes","compatibility":99,"releases":[{"id":"0100B69012EC6000","region":null}]},{"id":"5434149e-6bae-4c7b-aba4-e9d50c920ff2","directory":"windbound","title":"Windbound","compatibility":3,"releases":[{"id":"010044000F7F2000","region":null}]},{"id":"5438e4e4-355a-4550-85a2-3410151165e6","directory":"milli-greg","title":"Milli & Greg","compatibility":99,"releases":[{"id":"01005FA015D68000","region":null}]},{"id":"543fe310-74ca-485b-8b64-079d7b627c11","directory":"scribblenauts-mega-pack","title":"Scribblenauts Mega Pack","compatibility":1,"releases":[{"id":"0100E7100B198000","region":null}]},{"id":"54637fd6-a19b-4bc4-9168-10a41bd0adfa","directory":"windmill-kings","title":"Windmill Kings","compatibility":99,"releases":[{"id":"010099600FC2A000","region":null}]},{"id":"54679173-db79-402b-845e-323b8ade9000","directory":"caretaker","title":"Caretaker","compatibility":99,"releases":[{"id":"0100DA70115E6000","region":null}]},{"id":"547447ca-5ff4-44f9-93ce-0ff63d5774b7","directory":"my-hidden-things","title":"My Hidden Things","compatibility":99,"releases":[{"id":"0100E4701373E000","region":null}]},{"id":"548d7378-5d83-48f0-bb99-dad860ed66b0","directory":"ydanji","title":"Yōdanji","compatibility":1,"releases":[{"id":"01006A600623E000","region":null}]},{"id":"5498169d-7a20-444e-a4df-24e4a7a70110","directory":"i-am-setsuna","title":"I Am Setsuna","compatibility":1,"releases":[{"id":"0100849000BDA000","region":null}]},{"id":"54b2e992-f78a-4cf0-a167-c49cee03e593","directory":"minecraft","title":"Minecraft","compatibility":4,"releases":[{"id":"0100D71004694000","region":null}]},{"id":"54bc7c25-0776-4e6a-8cca-750bbbc9895c","directory":"pixel-head-soccer","title":"Pixel Head Soccer","compatibility":99,"releases":[{"id":"0100D69015042000","region":null}]},{"id":"54bdaa88-228c-4a5d-8d88-961a830eac62","directory":"calculator","title":"Calculator","compatibility":0,"releases":[{"id":"010004701504A000","region":null}]},{"id":"54c53dd8-8777-4ec9-ae69-d23df98087b2","directory":"aeon-drive","title":"Aeon Drive","compatibility":99,"releases":[{"id":"010046701597E000","region":null}]},{"id":"54c9c16d-93ac-48f6-8621-c7dc649293d0","directory":"synthetik-ultimate","title":"SYNTHETIK: Ultimate","compatibility":5,"releases":[{"id":"01009BF00E7D2000","region":null}]},{"id":"54d81824-8149-4df2-8ca4-b89a5ece2c19","directory":"the-takeover","title":"The TakeOver","compatibility":0,"releases":[{"id":"0100CAE01021A000","region":null}]},{"id":"54d82c29-6794-4bc2-9f11-b71c340ae398","directory":"rage-in-peace","title":"Rage in Peace","compatibility":3,"releases":[{"id":"0100E1B00A46C000","region":null}]},{"id":"54d9247f-153e-433c-9a71-37f4c5078ebf","directory":"president-fnet","title":"President F.net","compatibility":99,"releases":[{"id":"01003B800B54C000","region":null}]},{"id":"54ded8bd-1db0-49f5-9a56-789896664594","directory":"tiny-barbarian-dx","title":"Tiny Barbarian DX","compatibility":0,"releases":[{"id":"0100D940022F6000","region":null}]},{"id":"54df7f01-fd6a-45e7-a61a-8c9aa1dc52a5","directory":"taimumari-complete-edition","title":"Taimumari: Complete Edition","compatibility":2,"releases":[{"id":"010040A00EA26000","region":null}]},{"id":"55001896-6be3-4618-a467-c1073db6ed43","directory":"32-secs","title":"32 Secs","compatibility":99,"releases":[{"id":"010065F01375E000","region":null}]},{"id":"550ecb52-27c2-4381-b996-3986863228dd","directory":"thumper","title":"Thumper","compatibility":4,"releases":[{"id":"01006F6002840000","region":null}]},{"id":"5515fb8d-a3c5-494d-a3d3-0206da8d3b5c","directory":"virtuous-western","title":"Virtuous Western","compatibility":99,"releases":[{"id":"0100D48016014000","region":null}]},{"id":"552061b9-8639-468a-bc1c-b04f413fbf2f","directory":"city-driving-simulator","title":"City Driving Simulator","compatibility":99,"releases":[{"id":"0100AC101212C000","region":null}]},{"id":"55717384-1464-4518-92cf-a2762226ec64","directory":"demetrios-the-big-cynical-adventure","title":"Demetrios - The BIG Cynical Adventure","compatibility":99,"releases":[{"id":"0100AB600ACB4000","region":null}]},{"id":"55726add-da87-431f-ba87-70adcaee5773","directory":"super-punch-patrol","title":"Super Punch Patrol","compatibility":3,"releases":[{"id":"01001F90122B2000","region":null}]},{"id":"557ad4ad-887c-4462-a5dd-a665cd40a8ce","directory":"subnautica-below-zero","title":"Subnautica: Below Zero","compatibility":1,"releases":[{"id":"010014C011146000","region":null}]},{"id":"557d60fb-b79f-44a1-9014-d74debed02a5","directory":"deponia","title":"Deponia","compatibility":4,"releases":[{"id":"010023600C704000","region":null}]},{"id":"5582ed4f-3e5b-43c2-b8d5-337fc45704f7","directory":"caveman-tales","title":"Caveman Tales","compatibility":99,"releases":[{"id":"0100EB70128E8000","region":null}]},{"id":"55963a63-5f61-43b8-a3be-60a46c22f86b","directory":"lapis-x-labyrinth","title":"Lapis x Labyrinth","compatibility":2,"releases":[{"id":"010059500D070000","region":null}]},{"id":"55b88cfe-6a00-40d4-9fc1-a2041b3fcdf6","directory":"truck-simulator-usa","title":"Truck Simulator USA","compatibility":3,"releases":[{"id":"01008DD00E66C000","region":null}]},{"id":"55ce1ead-14e4-4f0e-897a-bd251f25c7c9","directory":"flying-hero-x","title":"Flying Hero X","compatibility":2,"releases":[{"id":"0100419013A8A000","region":null}]},{"id":"55d1d8de-d61c-420a-80fa-273d924cf6d6","directory":"saga-scarlet-grace-ambitions","title":"SaGa SCARLET GRACE: AMBITIONS","compatibility":2,"releases":[{"id":"010003A00D0B4000","region":null}]},{"id":"55d249b3-cd52-4f4d-bfec-243c7ca21279","directory":"pako-caravan","title":"PAKO Caravan","compatibility":99,"releases":[{"id":"0100461013E50000","region":null}]},{"id":"55e357f5-c070-4625-8ab3-4fec58b811da","directory":"the-story-goes-on","title":"The Story Goes On","compatibility":99,"releases":[{"id":"01007FA00DA22000","region":null}]},{"id":"55e4b62b-2a00-45c4-ad09-ff04c9a98bf6","directory":"spaceex-commander","title":"SpaceEx Commander","compatibility":99,"releases":[{"id":"0100299013B72000","region":null}]},{"id":"55e6c9a6-ab1e-4238-94fc-61667b7c5b92","directory":"yumemidori-nostalgia","title":"Yumemidori Nostalgia","compatibility":99,"releases":[{"id":"010052F0134B6000","region":null}]},{"id":"55eb5bc3-e04c-4371-8fef-7b929c256a02","directory":"numbala","title":"Numbala","compatibility":99,"releases":[{"id":"010002700C34C000","region":null}]},{"id":"55f42300-d83b-4c4e-9445-a4d188d5710d","directory":"hungry-shark-world","title":"Hungry Shark World","compatibility":0,"releases":[{"id":"0100E1A00AF40000","region":null}]},{"id":"55f6c600-1b1c-498e-ba6e-c47ded089b44","directory":"aca-neogeo-aero-fighters-3","title":"ACA NEOGEO AERO FIGHTERS 3","compatibility":2,"releases":[{"id":"0100B91008780000","region":null}]},{"id":"55ffa248-1b95-49a5-b056-29c09464e1d5","directory":"circa-infinity","title":"Circa Infinity","compatibility":99,"releases":[{"id":"0100FF0015708000","region":null}]},{"id":"560c5b01-cc56-4a02-a3e4-c5fb6b1921f2","directory":"big-crown-showdown","title":"Big Crown: Showdown","compatibility":99,"releases":[{"id":"010088100C35E000","region":null}]},{"id":"56285de8-fe31-4e8b-be28-da8533fcb117","directory":"frutakia-2","title":"Frutakia 2","compatibility":99,"releases":[{"id":"010099700B760000","region":null}]},{"id":"562e711d-0245-4a6f-9791-4004852ade87","directory":"apparition","title":"Apparition","compatibility":99,"releases":[{"id":"01005F20116A0000","region":null}]},{"id":"562fc0d0-e72a-4425-9dff-d7fd9c90af6e","directory":"box-align","title":"Box Align","compatibility":0,"releases":[{"id":"010040800BA8A000","region":null}]},{"id":"56354915-ccf2-4dd4-ae38-4c36e1f30b75","directory":"super-mario-odyssey","title":"Super Mario Odyssey","compatibility":1,"releases":[{"id":"0100000000010000","region":null}]},{"id":"56396c59-65b2-43d6-b0a3-b67521086cab","directory":"the-lost-light-of-sisu","title":"The Lost Light of Sisu","compatibility":99,"releases":[{"id":"010052D00B754000","region":null}]},{"id":"5654ea41-bf0b-479a-8a93-bafd68c1c470","directory":"arcade-archives-sunsetriders","title":"Arcade Archives SUNSETRIDERS","compatibility":3,"releases":[{"id":"0100D90011534000","region":null}]},{"id":"5676ad93-cb7d-436f-b19c-624aa113dec0","directory":"gunpowder-on-the-teeth-arcade","title":"Gunpowder on The Teeth: Arcade","compatibility":99,"releases":[{"id":"010050E00EC8E000","region":null}]},{"id":"56777427-86e5-45f0-a0ae-34fad3a20243","directory":"pixel-game-maker-series-buraigun-galaxy-storm","title":"Pixel Game Maker Series BURAIGUN GALAXY STORM","compatibility":3,"releases":[{"id":"0100F9101573E000","region":null}]},{"id":"56823f13-dc22-4abf-9174-4aec078fb488","directory":"best-friend-forever","title":"Best Friend Forever","compatibility":99,"releases":[{"id":"010075100ED92000","region":null}]},{"id":"5695159e-bd43-46e6-a669-7ce511d63c99","directory":"bai-qu-hundreds-of-melodies","title":"Bai Qu: Hundreds of Melodies","compatibility":99,"releases":[{"id":"0100810015412000","region":null}]},{"id":"56965234-9ac1-4ad5-9740-daa3f26896de","directory":"arcade-archives-life-force","title":"Arcade Archives LIFE FORCE","compatibility":1,"releases":[{"id":"0100F380105A4000","region":null}]},{"id":"569cff83-73e8-48d2-9841-f6bbb5882159","directory":"scribbled","title":"scribbled","compatibility":99,"releases":[{"id":"0100C4A015516000","region":null}]},{"id":"569e024d-9028-4711-b741-a905f0690a10","directory":"giga-wrecker-alt","title":"GIGA WRECKER ALT.","compatibility":0,"releases":[{"id":"010045F00BFC2000","region":null}]},{"id":"56a4068d-1da8-43c7-96a4-7fc14eb591f8","directory":"cannon-brawl","title":"Cannon Brawl","compatibility":99,"releases":[{"id":"0100499013C4A000","region":null}]},{"id":"56a62523-17fb-478a-b600-699bc6326656","directory":"horatio-goes-snowboarding","title":"Horatio Goes Snowboarding","compatibility":99,"releases":[{"id":"01001E7016716000","region":null}]},{"id":"56aa5d52-bbd0-4ac8-a0f0-ca6365916c36","directory":"kitten-squad","title":"Kitten Squad","compatibility":4,"releases":[{"id":"01000C900A136000","region":null}]},{"id":"56ac85e1-5824-4909-901a-0cf97d23d1a1","directory":"destructivator-se","title":"Destructivator SE","compatibility":99,"releases":[{"id":"0100D74012E0A000","region":null}]},{"id":"56ae2a0f-101e-48b4-95dc-a52f57a4803a","directory":"chop","title":"CHOP","compatibility":1,"releases":[{"id":"0100AFD00F13C000","region":null}]},{"id":"56afaaf7-54a5-4a02-ba5f-be4194ce395e","directory":"one-way-ticket","title":"One-Way Ticket","compatibility":3,"releases":[{"id":"0100EEA00E3EA000","region":null}]},{"id":"56b5f99b-2ca5-4ff4-a856-9fe19f614306","directory":"aldred-knight","title":"Aldred Knight","compatibility":1,"releases":[{"id":"01000E000EEF8000","region":null}]},{"id":"56c408a0-2812-45b5-b5ad-c9d79f751847","directory":"the-solitaire-conspiracy","title":"The Solitaire Conspiracy","compatibility":99,"releases":[{"id":"0100749013DCE000","region":null}]},{"id":"56c66cbc-d5d3-40e7-8f2d-ee904e791d48","directory":"zoids-wild-blast-unleashed","title":"Zoids Wild Blast Unleashed","compatibility":1,"releases":[{"id":"010069C0123D8000","region":null}]},{"id":"56cb187d-52b7-4095-aec5-c7e0e883a1b3","directory":"dinosaur-jigsaw-puzzles-dino-puzzle-game-for-kids-toddlers","title":"Dinosaur Jigsaw Puzzles - Dino Puzzle Game for Kids & Toddlers","compatibility":99,"releases":[{"id":"010061D0167FA000","region":null}]},{"id":"56cb9ada-620f-44be-ab9b-835e7dd14d1b","directory":"anodyne","title":"Anodyne","compatibility":99,"releases":[{"id":"01007DD00ABB4000","region":null}]},{"id":"56cc7fe2-6e87-444a-af00-0bc6270a5d8b","directory":"endurance-space-action","title":"Endurance - space action","compatibility":1,"releases":[{"id":"010045C011DF6000","region":null}]},{"id":"56d5d778-d986-460b-8788-19b563c1dab2","directory":"loop-hero","title":"Loop Hero","compatibility":99,"releases":[{"id":"010004E01523C000","region":null}]},{"id":"56dc2fc1-b0c5-4351-97ff-e13bfc544cbf","directory":"ego-protocol-remastered","title":"Ego Protocol: Remastered","compatibility":99,"releases":[{"id":"0100CC0010A46000","region":null}]},{"id":"56dcf735-20bd-4914-acdd-852aec9823f7","directory":"crazy-mini-golf-arcade","title":"Crazy Mini Golf Arcade","compatibility":99,"releases":[{"id":"0100120008468000","region":null}]},{"id":"56e95e05-352c-4c3c-a995-d0b707f42537","directory":"mandalas","title":"Mandalas","compatibility":99,"releases":[{"id":"0100AD50164D0000","region":null}]},{"id":"56ea3035-49b0-4c4b-91f9-91bf59ea8fdc","directory":"rockn-racing-off-road-dx","title":"Rock'N Racing Off Road DX","compatibility":99,"releases":[{"id":"0100513005AF4000","region":null}]},{"id":"56eb9e81-893b-487f-a9bf-09f193163595","directory":"roah","title":"Roah","compatibility":99,"releases":[{"id":"01000440123A6000","region":null}]},{"id":"56f30f50-78e0-499d-ba4f-5caccee77e44","directory":"my-aunt-is-a-witch","title":"My Aunt is a Witch","compatibility":1,"releases":[{"id":"01002C6012334000","region":null}]},{"id":"56fcbe5e-6fe1-415d-8483-39812beb1a0a","directory":"golem-gates","title":"Golem Gates","compatibility":99,"releases":[{"id":"01003C000D84C000","region":null}]},{"id":"570254ac-9aca-421b-85bc-12f4c2c7f087","directory":"sheepo","title":"Sheepo","compatibility":99,"releases":[{"id":"010095C014068000","region":null}]},{"id":"5712304f-2d21-4431-b35a-3bb77f2f7da5","directory":"polygod","title":"Polygod","compatibility":99,"releases":[{"id":"010017600B180000","region":null}]},{"id":"57229483-d57c-49a1-8d42-c32936e8e4d8","directory":"fernz-gate","title":"Fernz Gate","compatibility":3,"releases":[{"id":"01006E800B7F2000","region":null}]},{"id":"5727f89e-c453-4357-936b-778993587fea","directory":"nine-parchments","title":"Nine Parchments","compatibility":3,"releases":[{"id":"0100D03003F0E000","region":null}]},{"id":"57311839-9df4-41ba-ba91-e2de14a2d27b","directory":"bonito-days","title":"Bonito Days","compatibility":99,"releases":[{"id":"0100ACD0154CC000","region":null}]},{"id":"5737a129-5067-45dc-b82f-15ded00feee1","directory":"rock-boshers-dx-directors-cut","title":"ROCK BOSHERS DX: Director's Cut","compatibility":99,"releases":[{"id":"0100CD100BEA4000","region":null}]},{"id":"57395944-bac4-4dcd-ab37-a7cb68a2121a","directory":"the-letter-a-horror-visual-novel","title":"The Letter: A Horror Visual Novel","compatibility":99,"releases":[{"id":"010054700D680000","region":null}]},{"id":"573ca7e0-6430-4b8a-aaaf-77f911cc7047","directory":"bakumatsu-renka-shinsengumi","title":"Bakumatsu Renka SHINSENGUMI","compatibility":99,"releases":[{"id":"01008260138C4000","region":null}]},{"id":"5747847a-06b8-4dec-b19b-b0d5be2b4c92","directory":"namco-museum-r-archives-vol-2","title":"NAMCO MUSEUM® ARCHIVES Vol 2","compatibility":0,"releases":[{"id":"0100BCE010E1A000","region":null}]},{"id":"575250e4-4682-48a7-8e95-c2000964ecee","directory":"smashroom","title":"Smashroom","compatibility":99,"releases":[{"id":"0100FF5015416000","region":null}]},{"id":"575ab844-01cc-4473-a18d-7814ec92a3d4","directory":"rift-racoon","title":"Rift Racoon","compatibility":99,"releases":[{"id":"01002A2013648000","region":null}]},{"id":"57612a98-836a-4f7f-aad5-361375b9d640","directory":"zaccaria-pinball","title":"Zaccaria Pinball","compatibility":5,"releases":[{"id":"010092400A678000","region":null}]},{"id":"57680887-6a10-49d0-963c-2808dbc6828f","directory":"crayon-shinchan-the-storm-called-flaming-kasukabe-runner","title":"CRAYON SHINCHAN The Storm Called FLAMING KASUKABE RUNNER!!","compatibility":0,"releases":[{"id":"0100D470106DC000","region":null}]},{"id":"576a5c76-c8d5-4da4-94e0-d8bd06604161","directory":"eternal-edge","title":"Eternal Edge","compatibility":4,"releases":[{"id":"010007100A16A000","region":null}]},{"id":"5778bd2c-2d72-4bc7-b222-7190fa92146f","directory":"agatha-knife","title":"Agatha Knife","compatibility":99,"releases":[{"id":"010093600A60C000","region":null}]},{"id":"57816bb7-2004-43f9-ad7e-94a26d1d9a13","directory":"jetsnguns","title":"Jets'n'Guns","compatibility":99,"releases":[{"id":"010026200FF36000","region":null}]},{"id":"5782483e-fb4f-41f0-a493-327056dc6f75","directory":"pretty-girls-mahjong-solitaire-blue","title":"Pretty Girls Mahjong Solitaire - Blue","compatibility":0,"releases":[{"id":"0100EBF014D42000","region":null}]},{"id":"57a8c56a-005e-4335-bd21-8b22a7662527","directory":"super-mario-party","title":"Super Mario Party","compatibility":2,"releases":[{"id":"010036B0034E4000","region":null}]},{"id":"57aa88ef-9940-4914-b3a8-8ee8ed650beb","directory":"plants-vs-zombies-battle-for-neighborville-complete-edition","title":"Plants vs. Zombies: Battle for Neighborville™ Complete Edition","compatibility":4,"releases":[{"id":"0100C56010FD8000","region":null}]},{"id":"57c544b3-8975-47a2-b4e2-886272f867ae","directory":"kamiko","title":"KAMIKO","compatibility":0,"releases":[{"id":"010085300314E000","region":null}]},{"id":"57c88b5e-bd63-4c39-95ae-d1322c88ff3b","directory":"super-soccer-blast","title":"Super Soccer Blast","compatibility":2,"releases":[{"id":"0100D61012270000","region":null}]},{"id":"57cc0bdc-aa9d-4459-b4ae-64e902ebd837","directory":"green-phoenix","title":"Green Phoenix","compatibility":99,"releases":[{"id":"0100E20014C46000","region":null}]},{"id":"57d8ce32-e678-431b-83bd-699142b912af","directory":"super-smash-bros-ultimate","title":"Super Smash Bros. Ultimate","compatibility":2,"releases":[{"id":"01006A800016E000","region":null}]},{"id":"57e7087a-99a7-4c3f-837e-92693d0962d4","directory":"gunslugs","title":"Gunslugs","compatibility":99,"releases":[{"id":"01008050130EE000","region":null}]},{"id":"57ebc871-7c7c-4929-bd56-1449f27c5095","directory":"aca-neogeo-crossed-swords","title":"ACA NEOGEO CROSSED SWORDS","compatibility":99,"releases":[{"id":"0100D2400AFB0000","region":null}]},{"id":"57f8f3fe-1caa-4eff-bef9-ce98f4779546","directory":"ski-jump-challenge","title":"Ski Jump Challenge","compatibility":99,"releases":[{"id":"0100D95014202000","region":null}]},{"id":"580f5109-c42f-49ce-88f2-c0e166e8de02","directory":"qb-planets","title":"QB Planets","compatibility":99,"releases":[{"id":"01009E8015FB6000","region":null}]},{"id":"5813cb58-cf43-413c-88c0-5f6a05c053bb","directory":"super-soccer-blast-america-vs-europe","title":"Super Soccer Blast: America VS Europe","compatibility":3,"releases":[{"id":"0100A0C0145F6000","region":null}]},{"id":"5813cd3b-e1fb-4238-b0e7-6fd01cddcca4","directory":"enter-the-gungeon","title":"Enter the Gungeon","compatibility":1,"releases":[{"id":"01009D60076F6000","region":null}]},{"id":"58142047-6f09-4161-ac94-66a38dac5c4e","directory":"kingdom-hearts-melody-of-memory","title":"KINGDOM HEARTS Melody of Memory","compatibility":3,"releases":[{"id":"01005D2011EA8000","region":null}]},{"id":"58155dae-9474-484f-9743-da2dec12cc69","directory":"sentinels-of-freedom","title":"Sentinels of Freedom","compatibility":0,"releases":[{"id":"01009E500D29C000","region":null}]},{"id":"5817b135-1b55-49c8-a3be-412d56963881","directory":"night-lights","title":"Night Lights","compatibility":99,"releases":[{"id":"0100BEF016476000","region":null}]},{"id":"5819cc3b-2d29-40d2-8e0c-22e96482f64d","directory":"kirby-fighters-2","title":"Kirby Fighters™ 2","compatibility":0,"releases":[{"id":"0100227010460000","region":null}]},{"id":"582428de-b2c1-4c64-b00e-059d18b4fe67","directory":"jigsaw-masterpieces","title":"Jigsaw Masterpieces","compatibility":99,"releases":[{"id":"0100BB800E0D2000","region":null}]},{"id":"582de476-1097-4113-841f-6a4df04678dc","directory":"garage-mechanic-simulator","title":"Garage Mechanic Simulator","compatibility":99,"releases":[{"id":"01001DC00E324000","region":null}]},{"id":"5845a0ee-77a1-4b50-b536-90dec63b210a","directory":"guess-the-word","title":"Guess the word","compatibility":99,"releases":[{"id":"01005DC00D80C000","region":null}]},{"id":"584e19a2-63e2-421d-bf99-bd6d87051db6","directory":"space-warrior","title":"Space Warrior","compatibility":99,"releases":[{"id":"010090F014CA4000","region":null}]},{"id":"5855aede-c758-4180-8120-6c6ec9471599","directory":"unspottable","title":"Unspottable","compatibility":0,"releases":[{"id":"0100B410138C0000","region":null}]},{"id":"585b133f-aaac-4b12-b2f9-9f01fd5526b8","directory":"spacecats-with-lasers","title":"Spacecats with Lasers","compatibility":99,"releases":[{"id":"0100D9B0041CE000","region":null}]},{"id":"585fcf06-c597-46a4-88f5-5fe134b7592e","directory":"finding-teddy-2-definitive-edition","title":"Finding Teddy 2 : Definitive Edition","compatibility":99,"releases":[{"id":"0100FF100FB68000","region":null}]},{"id":"58601196-ee61-4963-8963-e4438cc77b3d","directory":"tesla-force","title":"Tesla Force","compatibility":99,"releases":[{"id":"0100FFD00FDF8000","region":null}]},{"id":"5871dd51-387c-4702-ad59-f30c407c7770","directory":"arcade-archives-elevator-action","title":"Arcade Archives ELEVATOR ACTION","compatibility":5,"releases":[{"id":"0100BF8006EC6000","region":null}]},{"id":"588cbc23-e744-409a-bed3-2de49bd89e37","directory":"curling","title":"Curling","compatibility":99,"releases":[{"id":"010038E0137A8000","region":null}]},{"id":"588f23dd-dd4e-46e9-8b44-698c15d0e0b6","directory":"under-the-jolly-roger","title":"Under the Jolly Roger","compatibility":0,"releases":[{"id":"010031E00EA24000","region":null}]},{"id":"588f7ab4-ec40-4d1e-9c7d-078439e92c84","directory":"arcade-archives-raiden","title":"Arcade Archives RAIDEN","compatibility":1,"releases":[{"id":"010025E0131A6000","region":null}]},{"id":"589538d3-c092-4ae6-80df-bd6bddd8d19a","directory":"puddle-knights","title":"Puddle Knights","compatibility":99,"releases":[{"id":"0100FE10127F4000","region":null}]},{"id":"58c95052-47a5-425e-8399-a2a665369242","directory":"roommates","title":"Roommates","compatibility":99,"releases":[{"id":"0100B8C01252A000","region":null}]},{"id":"58d038b8-6ed7-4d37-b51a-a55d42a3e1d4","directory":"lets-go-nuts","title":"Let's Go Nuts","compatibility":99,"releases":[{"id":"010070600DFE4000","region":null}]},{"id":"58d42dd1-a5fe-4e64-9e19-a2b5e762db7a","directory":"charterstone-digital-edition","title":"Charterstone: Digital Edition","compatibility":99,"releases":[{"id":"01008F500E042000","region":null}]},{"id":"58efb4eb-07b1-4923-b086-7b958c938589","directory":"ultra-street-fighter-ii-the-final-challengers","title":"Ultra Street Fighter II: The Final Challengers","compatibility":0,"releases":[{"id":"01007330027EE000","region":null}]},{"id":"59013324-8278-44b8-a8f2-1a461768edbb","directory":"inversus-deluxe-demo","title":"INVERSUS Deluxe Demo","compatibility":99,"releases":[{"id":"010009100845A000","region":null}]},{"id":"590150c5-c731-49b1-b924-331838746a10","directory":"out-there-w-the-alliance","title":"Out There: Ω The Alliance","compatibility":99,"releases":[{"id":"010076C00B8F0000","region":null}]},{"id":"5903a86a-3e65-4beb-a804-8690ef93fbef","directory":"everdark-tower","title":"Everdark Tower","compatibility":1,"releases":[{"id":"010029500DFBA000","region":null}]},{"id":"590af3d7-8b78-4b79-a972-0d359dabbd8f","directory":"mononoke-slashdown","title":"Mononoke Slashdown","compatibility":4,"releases":[{"id":"0100F3A00FB78000","region":null}]},{"id":"5912ee62-b37c-432a-a5dc-1c67ce0f1e86","directory":"mekabolt","title":"Mekabolt","compatibility":99,"releases":[{"id":"0100F4F00F098000","region":null}]},{"id":"591960d0-dccb-4c64-8844-6a7d3e8198fa","directory":"five-nights-at-freddys-2","title":"Five Nights at Freddy's 2","compatibility":2,"releases":[{"id":"01004EB00E43A000","region":null}]},{"id":"591d1cf5-c96b-4cc2-ad76-98db07fdcd2d","directory":"road-redemption","title":"Road Redemption","compatibility":1,"releases":[{"id":"010053000B986000","region":null}]},{"id":"591e8572-1fde-4c40-9cb0-e246a0cdf51d","directory":"fe","title":"Fe","compatibility":1,"releases":[{"id":"0100D2600736A000","region":null}]},{"id":"592ddac8-1ba3-47b1-8cd6-c425e15c7ae3","directory":"subnautica","title":"Subnautica","compatibility":1,"releases":[{"id":"0100429011144000","region":null}]},{"id":"592e5d9b-8f8c-4852-94e7-bfd9faaf3103","directory":"xtreme-club-racing","title":"Xtreme Club Racing","compatibility":99,"releases":[{"id":"0100DAE00DE4E000","region":null}]},{"id":"592f7237-5ba3-41c0-97a8-7d4226bbc57d","directory":"brotherhood-united","title":"Brotherhood United","compatibility":99,"releases":[{"id":"0100BCD010E88000","region":null}]},{"id":"593e5c0e-6d88-4527-877b-c7fb47a7e42f","directory":"aca-neogeo-robo-army","title":"ACA NEOGEO ROBO ARMY","compatibility":1,"releases":[{"id":"01000C9004FA2000","region":null}]},{"id":"594ee02d-07b2-4f85-967a-8a8ae1124172","directory":"super-life-of-pixel","title":"Super Life of Pixel","compatibility":99,"releases":[{"id":"010042000CA02000","region":null}]},{"id":"5961cb2b-16a9-47bf-b3ae-e2e59067b714","directory":"i-and-me","title":"I and Me","compatibility":99,"releases":[{"id":"01005C40037C6000","region":null}]},{"id":"59622777-31c4-4d8a-82c1-ea4d1727152b","directory":"duke-nukem-3d-20th-anniversary-world-tour","title":"Duke Nukem 3D: 20th Anniversary World Tour","compatibility":4,"releases":[{"id":"01007EF00CB88000","region":null}]},{"id":"59648252-0a05-4a9b-8b1d-7880160ac4cd","directory":"rimelands-hammer-of-thor","title":"Rimelands: Hammer of Thor","compatibility":99,"releases":[{"id":"01006AC00EE6E000","region":null}]},{"id":"597cabd3-9823-4a6c-b0f4-c711addd2bbf","directory":"cryogear","title":"Cryogear","compatibility":99,"releases":[{"id":"0100AC100CCF6000","region":null}]},{"id":"597d0999-bbea-4696-b88a-4c568c29c0f7","directory":"human-resource-machine","title":"Human Resource Machine","compatibility":1,"releases":[{"id":"0100701001D92000","region":null}]},{"id":"59b03c99-04c1-4975-b201-bd3703f892cc","directory":"robotics-notes-dash","title":"ROBOTICS;NOTES DaSH","compatibility":99,"releases":[{"id":"010039A0117C0000","region":null}]},{"id":"59c2e6b6-8547-4933-b6e6-dfd964ec662d","directory":"sonic-forces","title":"SONIC FORCES","compatibility":2,"releases":[{"id":"01001270012B6000","region":null}]},{"id":"59c745a7-2ce9-4481-93c6-1dd484d950af","directory":"sgc-short-games-collection-1","title":"SGC - Short Games Collection #1","compatibility":99,"releases":[{"id":"01007BB015210000","region":null}]},{"id":"59cac437-4c21-4198-8a51-dd9f5612472e","directory":"hextones","title":"Hextones","compatibility":99,"releases":[{"id":"01005A0015670000","region":null}]},{"id":"59db8036-ef97-43a6-928d-5553b032c229","directory":"top-speed-drag-fast-racing","title":"Top Speed: Drag & Fast Racing","compatibility":99,"releases":[{"id":"010082600F1AC000","region":null}]},{"id":"5a0109a3-75b0-4f34-81be-3dbcf9da36d5","directory":"flying-soldiers","title":"Flying Soldiers","compatibility":99,"releases":[{"id":"010080701194E000","region":null}]},{"id":"5a2bb522-18fa-40d6-9c3e-83168c6ae893","directory":"jungle-z","title":"Jungle Z","compatibility":99,"releases":[{"id":"010080E00D3DE000","region":null}]},{"id":"5a3ca5ac-542c-4c8a-98fd-e1823828d0dc","directory":"abyss","title":"Abyss","compatibility":99,"releases":[{"id":"0100E7400C7C4000","region":null}]},{"id":"5a3e5aef-2c52-4f9b-aea8-1442fc7c3b3e","directory":"percys-predicament-deluxe","title":"Percy's Predicament Deluxe","compatibility":99,"releases":[{"id":"01005CE00617E000","region":null}]},{"id":"5a580f03-c64d-4b7c-bbb9-106d0fdda41f","directory":"pocket-races","title":"Pocket Races","compatibility":0,"releases":[{"id":"0100A250144E0000","region":null}]},{"id":"5a5fde1e-9599-47bd-bc04-dfe6db200f95","directory":"blood-breed","title":"Blood Breed","compatibility":99,"releases":[{"id":"01006A0010D6A000","region":null}]},{"id":"5a6e7b46-fa8f-4f4c-8e4a-d31a1760b036","directory":"pinocchio-super-puzzles-dream","title":"#pinocchio, Super Puzzles Dream","compatibility":99,"releases":[{"id":"01004D30157D2000","region":null}]},{"id":"5a6fe736-5b7e-40d7-b1b0-95236d8b53bb","directory":"truck-mechanic-simulator","title":"Truck Mechanic Simulator","compatibility":99,"releases":[{"id":"01003A00122E2000","region":null}]},{"id":"5a7cdb08-bb31-484a-8f95-0750b9deceac","directory":"little-mouses-encyclopedia","title":"Little Mouse's Encyclopedia","compatibility":0,"releases":[{"id":"0100FE0014200000","region":null}]},{"id":"5a8f4624-4baf-4b18-9ad2-f802415abf2c","directory":"werewolf-pinball","title":"Werewolf Pinball","compatibility":99,"releases":[{"id":"0100A0E00B7A4000","region":null}]},{"id":"5a9e99e8-3922-43bb-8675-87d55eb85b48","directory":"n-verlore-verstand","title":"'n Verlore Verstand","compatibility":0,"releases":[{"id":"010098800C4B0000","region":null}]},{"id":"5aa9023a-1b3e-4666-95e2-05865ee44514","directory":"phantom-breaker-battle-grounds-overdrive","title":"Phantom Breaker: Battle Grounds Overdrive","compatibility":2,"releases":[{"id":"0100063005C86000","region":null}]},{"id":"5aacc0aa-243d-457b-b429-013e38fb7ee6","directory":"restless-hero","title":"Restless Hero","compatibility":99,"releases":[{"id":"0100A00012652000","region":null}]},{"id":"5aae09b1-4b4e-42d7-83a0-3d53de919479","directory":"redneck-skeet-shooting","title":"Redneck Skeet Shooting","compatibility":99,"releases":[{"id":"0100BDE00E4C0000","region":null}]},{"id":"5ab3a00e-e930-4cdd-944d-e2db0db14f79","directory":"aca-neogeo-strikers-1945-plus","title":"ACA NEOGEO STRIKERS 1945 PLUS","compatibility":4,"releases":[{"id":"010061600BF7E000","region":null}]},{"id":"5abe24c8-1cc8-4d1c-92ff-9f63fa860746","directory":"tt-isle-of-man","title":"TT Isle of Man","compatibility":2,"releases":[{"id":"010099900CAB2000","region":null}]},{"id":"5abeced1-ea96-42f3-9683-d6cd35f090f9","directory":"kunai","title":"KUNAI","compatibility":0,"releases":[{"id":"010035A00DF62000","region":null}]},{"id":"5ad05de4-12c4-477e-a1d2-c5625758aa32","directory":"otttd-over-the-top-tower-defense","title":"OTTTD: Over The Top Tower Defense","compatibility":99,"releases":[{"id":"01000320060AC000","region":null}]},{"id":"5ad975e0-894e-46d6-8d55-119a0967e0cc","directory":"super-chicken-catchers","title":"Super Chicken Catchers","compatibility":99,"releases":[{"id":"010059500EAFE000","region":null}]},{"id":"5ae13a9c-e925-4255-b6aa-857c554cb864","directory":"family-feud-r","title":"Family Feud®","compatibility":1,"releases":[{"id":"010060200FC44000","region":null}]},{"id":"5ae61b4e-5400-4830-b194-66f025218534","directory":"chromagun-demo","title":"ChromaGun Demo","compatibility":99,"releases":[{"id":"0100EA500902E000","region":null}]},{"id":"5aece8f7-fde6-4659-9106-c05a0908e104","directory":"6180-the-moon","title":"6180 the moon","compatibility":1,"releases":[{"id":"0100ECF008474000","region":null}]},{"id":"5aef53d1-3d6d-4f9e-8b38-dfb086455676","directory":"valkyria-chronicles","title":"Valkyria Chronicles","compatibility":99,"releases":[{"id":"0100CAF00B744000","region":null}]},{"id":"5b05c5e3-a9cc-4e0f-8898-c709df0c1eaf","directory":"cat-quest","title":"Cat Quest","compatibility":0,"releases":[{"id":"0100A2F006FBE000","region":null}]},{"id":"5b185e2e-45ee-4efb-b605-b0c3a5671030","directory":"fairy-fencer-f-advent-dark-force","title":"Fairy Fencer F: Advent Dark Force","compatibility":99,"releases":[{"id":"010002300C632000","region":null}]},{"id":"5b1943fc-8fde-4f77-823d-9c0568198706","directory":"under-leaves","title":"Under Leaves","compatibility":0,"releases":[{"id":"01008F3013E4E000","region":null}]},{"id":"5b1a313c-68c5-469c-9ab7-3c1559fd5682","directory":"the-procession-to-calvary","title":"The Procession To Calvary","compatibility":99,"releases":[{"id":"0100767012DB8000","region":null}]},{"id":"5b1d594a-3375-4a0e-9ebc-7f36526d34f0","directory":"doomsday-vault","title":"Doomsday Vault","compatibility":99,"releases":[{"id":"0100B6C0124FE000","region":null}]},{"id":"5b1e19ce-afbb-4719-90a8-c02d5157a4e0","directory":"ninnindays2","title":"NinNinDays2","compatibility":99,"releases":[{"id":"0100DEF016364000","region":null}]},{"id":"5b327ebb-95b0-4e8e-8e26-af64c33b4c1f","directory":"mickey-storm-and-the-cursed-mask","title":"Mickey Storm and the Cursed Mask","compatibility":1,"releases":[{"id":"010061D0139D0000","region":null}]},{"id":"5b329e16-e7d3-4e9f-a816-72e4e5d29f0a","directory":"fill-a-pix-phils-epic-adventure-demo","title":"Fill-a-Pix: Phil's Epic Adventure Demo","compatibility":99,"releases":[{"id":"01002FC00B694000","region":null}]},{"id":"5b33ffc2-817f-4251-826f-815a5106e7e0","directory":"weapon-of-choice-dx","title":"Weapon of Choice DX","compatibility":99,"releases":[{"id":"01001FB012114000","region":null}]},{"id":"5b3bcc8d-ab73-46e5-9662-0c15af481ffc","directory":"shakes-on-a-plane","title":"Shakes on a Plane","compatibility":99,"releases":[{"id":"01008DA012EC0000","region":null}]},{"id":"5b3c45dc-307c-4af5-ba9f-afdce1392bb4","directory":"zeroptian-invasion","title":"Zeroptian Invasion","compatibility":99,"releases":[{"id":"010090100D3D6000","region":null}]},{"id":"5b569314-9647-47e4-bf35-372ab841bf5b","directory":"brick-breaker","title":"Brick Breaker","compatibility":0,"releases":[{"id":"010026800BB06000","region":null}]},{"id":"5b5cae9e-81f6-49b6-a7b1-2e3eff4787d4","directory":"dust-an-elysian-tail","title":"Dust: An Elysian Tail","compatibility":2,"releases":[{"id":"0100B6E00A420000","region":null}]},{"id":"5b5e5139-b86c-41d6-a1e9-e5ad3896e861","directory":"cupid-parasite","title":"Cupid Parasite","compatibility":3,"releases":[{"id":"0100E010152CA000","region":null}]},{"id":"5b657b84-cf90-44cf-b516-73baf283292f","directory":"adventures-of-chris","title":"Adventures of Chris","compatibility":0,"releases":[{"id":"010072601233C000","region":null}]},{"id":"5b9a4ea5-fc57-415e-96e9-fb3a889f68ee","directory":"siebenstreichs-nerdventure","title":"Siebenstreich's Nerdventure","compatibility":99,"releases":[{"id":"01006F3015228000","region":null}]},{"id":"5b9c0caf-9fb1-4a1b-82f3-1e350bc05c8b","directory":"reed-2","title":"Reed 2","compatibility":99,"releases":[{"id":"01003EF0118D2000","region":null}]},{"id":"5ba0b456-37e8-443a-a0ed-c30c18cf2571","directory":"knight-swap-2","title":"Knight Swap 2","compatibility":99,"releases":[{"id":"0100D84011926000","region":null}]},{"id":"5ba6a4b8-2a44-48b1-ac2a-1bb8810423d1","directory":"need-a-packet","title":"Need a packet?","compatibility":99,"releases":[{"id":"0100BBC00E4F8000","region":null}]},{"id":"5bb3562e-12fe-41a0-94f7-a489f0628396","directory":"legendary-eleven","title":"Legendary Eleven","compatibility":99,"releases":[{"id":"0100A73006E74000","region":null}]},{"id":"5bc6d3c7-1dd2-4712-a76e-59fe574bd53f","directory":"circle-of-sumo","title":"Circle of Sumo","compatibility":0,"releases":[{"id":"010039700BA7E000","region":null}]},{"id":"5bc912c7-5684-440f-a7cb-5ec5557d2b42","directory":"many-faces","title":"Many Faces","compatibility":99,"releases":[{"id":"01009D4011BFC000","region":null}]},{"id":"5bd480a5-b817-4810-9306-de4ad4eabc8a","directory":"slots-of-the-season","title":"Slots of the Season","compatibility":99,"releases":[{"id":"01005FC0133D2000","region":null}]},{"id":"5bd62b81-8c9f-4b75-841d-6f8618f42e35","directory":"quantum-replica","title":"Quantum Replica","compatibility":99,"releases":[{"id":"010045101288A000","region":null}]},{"id":"5bdacb4c-c495-451c-8a52-78e4f92630ec","directory":"bioshock-remastered","title":"BioShock Remastered","compatibility":2,"releases":[{"id":"0100AD10102B2000","region":null}]},{"id":"5be18d66-2ef3-42e1-bc96-8e138b34b2ed","directory":"clubhouse-games-51-worldwide-classics","title":"Clubhouse Games™: 51 Worldwide Classics","compatibility":0,"releases":[{"id":"010047700D540000","region":null}]},{"id":"5be2611b-95ef-44e9-aaac-4e64122eae7b","directory":"genesis-noir","title":"Genesis Noir","compatibility":3,"releases":[{"id":"01009C701165E000","region":null}]},{"id":"5be2a489-132a-4907-be50-a183fb808b53","directory":"aliens-drive-me-crazy","title":"Aliens Drive Me Crazy","compatibility":99,"releases":[{"id":"01001030160F4000","region":null}]},{"id":"5bee1e96-a37c-442b-8863-efc206d88232","directory":"escape-2088","title":"Escape 2088","compatibility":99,"releases":[{"id":"01001F2013DF2000","region":null}]},{"id":"5bf67a56-81ac-485f-9419-f96e5585b0b8","directory":"lode-runner-legacy-demo-version","title":"Lode Runner Legacy Demo Version","compatibility":99,"releases":[{"id":"010086500AC4A000","region":null}]},{"id":"5bfa3eeb-4f9e-4f17-847b-1a36089f6c1c","directory":"the-padre","title":"The Padre","compatibility":99,"releases":[{"id":"0100EB000C818000","region":null}]},{"id":"5c019507-bee7-4f92-89db-71bc786e0381","directory":"lost-artifacts-golden-island","title":"Lost Artifacts: Golden Island","compatibility":99,"releases":[{"id":"01005B600E396000","region":null}]},{"id":"5c0c7a3a-627a-403e-a132-2a6b92f7dd13","directory":"kingdom-two-crowns","title":"Kingdom Two Crowns","compatibility":1,"releases":[{"id":"01005EF003FF2000","region":null}]},{"id":"5c0fd2b7-4ff6-43a6-8710-260c0b380527","directory":"the-flame-in-the-flood-complete-edition","title":"The Flame In The Flood: Complete Edition","compatibility":1,"releases":[{"id":"0100C38004DCC000","region":null}]},{"id":"5c20152c-27b9-409a-a0df-b4a5eb0088b6","directory":"metaverse-keeper","title":"Metaverse Keeper","compatibility":3,"releases":[{"id":"0100AFF00F938000","region":null}]},{"id":"5c214cae-e9b4-4e54-a12e-e5af0e95e3f1","directory":"bullet-battle-evolution","title":"Bullet Battle: Evolution","compatibility":99,"releases":[{"id":"010029400DE76000","region":null}]},{"id":"5c4cda37-6004-4f4e-bf13-4ce571042ebc","directory":"coffin-dodgers","title":"Coffin Dodgers","compatibility":3,"releases":[{"id":"0100178009648000","region":null}]},{"id":"5c544f10-d0a4-4e4b-98b4-3e65d23c452d","directory":"happy-hoarder","title":"Happy Hoarder","compatibility":99,"releases":[{"id":"010057A01457E000","region":null}]},{"id":"5c57500b-8cbf-4753-9cca-5fd0f3aa84ab","directory":"arcade-archives-the-tin-star","title":"Arcade Archives THE TIN STAR","compatibility":99,"releases":[{"id":"010000700F292000","region":null}]},{"id":"5c6094ba-739a-4c83-94d1-e0e4751057dc","directory":"crosskrush","title":"CrossKrush","compatibility":99,"releases":[{"id":"0100472013142000","region":null}]},{"id":"5c63940a-30ed-4cfc-af71-4bf002de137d","directory":"neurovoider","title":"NeuroVoider","compatibility":99,"releases":[{"id":"0100BA0004F38000","region":null}]},{"id":"5c6c0432-2d17-4695-9e37-76d09e22dc40","directory":"super-mario-maker-2","title":"Super Mario Maker 2","compatibility":0,"releases":[{"id":"01009B90006DC000","region":null}]},{"id":"5c894f3c-1ed2-4704-8243-284d6ea739e4","directory":"missile-dancer","title":"Missile Dancer","compatibility":0,"releases":[{"id":"0100CFA0138C8000","region":null}]},{"id":"5c8ce8a3-2b48-4565-b63f-0827913101f3","directory":"driving-world-italian-job","title":"Driving World: Italian Job","compatibility":99,"releases":[{"id":"01003FA0164E0000","region":null}]},{"id":"5c90aa90-1d8d-483e-9d88-9d548d017910","directory":"wacky-run","title":"Wacky Run","compatibility":99,"releases":[{"id":"0100DCD013CDA000","region":null}]},{"id":"5c90ab7f-196a-4fb6-bc3a-e9a811bb0a22","directory":"legends-of-ethernal","title":"Legends of Ethernal","compatibility":3,"releases":[{"id":"01008EE012CD4000","region":null}]},{"id":"5c987a8e-9c1e-4ff4-a255-257e0416cb49","directory":"aca-neogeo-nam-1975","title":"ACA NEOGEO NAM-1975","compatibility":99,"releases":[{"id":"0100A8C001DCE000","region":null}]},{"id":"5c9bb915-dee8-4532-93a6-37453b532527","directory":"absolute-drift","title":"Absolute Drift","compatibility":2,"releases":[{"id":"0100A5B010A66000","region":null}]},{"id":"5caea039-423a-4af1-83e1-b28426e2a893","directory":"double-cross","title":"Double Cross","compatibility":99,"releases":[{"id":"0100F7300BD8E000","region":null}]},{"id":"5cb87fab-27a7-404b-b60f-fd01ca3a87de","directory":"burst-shooter","title":"Burst Shooter","compatibility":99,"releases":[{"id":"0100870012912000","region":null}]},{"id":"5cbf45e8-cea1-42ba-aa33-08e714915836","directory":"lonely-mountains-downhill","title":"Lonely Mountains: Downhill","compatibility":5,"releases":[{"id":"0100A0C00E0DE000","region":null}]},{"id":"5cbfc3b2-7ad3-4fbf-8489-533ce2b1667e","directory":"word-sudoku-by-powgi","title":"Word Sudoku by POWGI","compatibility":99,"releases":[{"id":"01002AA00C708000","region":null}]},{"id":"5cc0f7b3-b03f-4501-9240-03060e728e02","directory":"cards-of-the-dead","title":"Cards of the Dead","compatibility":99,"releases":[{"id":"010074E015E2A000","region":null}]},{"id":"5cc2c1c3-f019-45c8-b865-44d7effdf24e","directory":"the-infectious-madness-of-doctor-dekker","title":"The Infectious Madness of Doctor Dekker","compatibility":99,"releases":[{"id":"01008940086E0000","region":null}]},{"id":"5cd3825d-f30a-44a9-9154-507ed11eb5b6","directory":"heartandslash","title":"Heart&Slash","compatibility":99,"releases":[{"id":"0100D12008EE4000","region":null}]},{"id":"5ce3262e-2b26-444f-ae75-6d533be7c191","directory":"slime-rancher-plortable-edition","title":"Slime Rancher: Plortable Edition","compatibility":1,"releases":[{"id":"0100B9C0148D0000","region":null}]},{"id":"5cec25e3-b756-4692-9b61-1b59adf350f8","directory":"unruly-heroes","title":"Unruly Heroes","compatibility":0,"releases":[{"id":"010001300CC4A000","region":null}]},{"id":"5cee3938-1cf1-4e7e-bd16-b45951390e7a","directory":"jydge","title":"JYDGE","compatibility":4,"releases":[{"id":"010035A0044E8000","region":null}]},{"id":"5cef6bc6-ea8b-403b-82f0-ac9ec1e7a22d","directory":"love-esquire","title":"Love Esquire","compatibility":1,"releases":[{"id":"0100D600129A4000","region":null}]},{"id":"5cf92786-09df-487f-819f-8bf714c846aa","directory":"arcade-archives-ikari-warriors","title":"Arcade Archives IKARI WARRIORS","compatibility":4,"releases":[{"id":"010049400C7A8000","region":null}]},{"id":"5cff1413-f85e-4e78-a738-4b4085a77f07","directory":"gynoug","title":"Gynoug","compatibility":99,"releases":[{"id":"0100B150163A4000","region":null}]},{"id":"5cffdc59-756b-4b3e-992c-9de9a9da5aec","directory":"push-the-crate","title":"Push the Crate","compatibility":99,"releases":[{"id":"010016400F07E000","region":null}]},{"id":"5d031cf3-2bba-4907-9368-e71892ae5803","directory":"fast-rmx","title":"FAST RMX","compatibility":3,"releases":[{"id":"01009510001CA000","region":null}]},{"id":"5d03604a-0879-4825-8c74-aa29bcf97ea0","directory":"smash-rush","title":"Smash Rush","compatibility":4,"releases":[{"id":"010084000FA78000","region":null}]},{"id":"5d182291-99c2-4d81-a0fe-3dea8d17740c","directory":"solas-128","title":"SOLAS 128","compatibility":99,"releases":[{"id":"0100488011B16000","region":null}]},{"id":"5d313f44-b4cd-4316-af1e-7bde4378669f","directory":"arcade-archives-saboten-bombers","title":"Arcade Archives SABOTEN BOMBERS","compatibility":99,"releases":[{"id":"01007C80144D6000","region":null}]},{"id":"5d316834-92f4-4fdd-b9b5-461f94f040f5","directory":"ark-survival-evolved","title":"ARK: Survival Evolved","compatibility":4,"releases":[{"id":"0100D4A00B284000","region":null}]},{"id":"5d3af4b5-8ec5-43bb-b683-7b936a05e5dd","directory":"yuri","title":"Yuri","compatibility":99,"releases":[{"id":"0100FC900963E000","region":null}]},{"id":"5d4cba47-fb46-45d1-bd42-a9d6e5ea9966","directory":"battle-group-2","title":"Battle Group 2","compatibility":99,"releases":[{"id":"0100FE000BA42000","region":null}]},{"id":"5d53cbf2-fbba-4a47-901f-d417ab1ec88a","directory":"beholder-2","title":"Beholder 2","compatibility":0,"releases":[{"id":"01000DF00EBBA000","region":null}]},{"id":"5d6b0880-4aef-4f93-9fd4-202895a58571","directory":"classic-checkers","title":"Classic Checkers","compatibility":99,"releases":[{"id":"0100D89014A0E000","region":null}]},{"id":"5d77c02e-edf5-46a0-bc3b-425c2902a766","directory":"pool-panic","title":"Pool Panic","compatibility":99,"releases":[{"id":"0100D6D00A490000","region":null}]},{"id":"5d7fd1c1-a1f7-446d-8c81-1fa515b9389b","directory":"80-days","title":"80 DAYS","compatibility":99,"releases":[{"id":"0100B0700E944000","region":null}]},{"id":"5d817318-8e13-421b-bc92-2883aefe68e5","directory":"little-inferno","title":"Little Inferno","compatibility":0,"releases":[{"id":"0100B18001D8E000","region":null}]},{"id":"5d8963ab-4ee9-4d9d-9a50-67fe787f0498","directory":"sparkle-unleashed","title":"Sparkle Unleashed","compatibility":99,"releases":[{"id":"01000DC007E90000","region":null}]},{"id":"5d8d6098-d496-43f9-8d82-3a8c5b8cb53e","directory":"across-the-grooves","title":"Across the Grooves","compatibility":99,"releases":[{"id":"010043C010AEA000","region":null}]},{"id":"5da3baa7-c868-41c5-886c-44628e3cfefa","directory":"whiskey-mafia-leos-family","title":"Whiskey Mafia: Leo's Family","compatibility":99,"releases":[{"id":"0100A12016BAC000","region":null}]},{"id":"5da5fb9c-6813-4b8c-b459-f6d44d0acb8c","directory":"gravity-rider-zero","title":"Gravity Rider Zero","compatibility":99,"releases":[{"id":"01002C2011828000","region":null}]},{"id":"5dbe9bac-d0f2-45da-a6b4-ea2bf58509e0","directory":"the-casebook-of-arkady-smith","title":"The Casebook of Arkady Smith","compatibility":99,"releases":[{"id":"01008AB00FBA6000","region":null}]},{"id":"5dc2958a-3310-4118-9ded-024391770f1c","directory":"escape-from-a-deserted-island-the-adventures-of-nyanzou-kumakichi-escape-game-series","title":"Escape From a Deserted Island\n~The Adventures of Nyanzou&Kumakichi: Escape Game Series~","compatibility":99,"releases":[{"id":"01000830155A2000","region":null}]},{"id":"5dd24bb2-77b2-42e9-9c86-8617ae3a8cb1","directory":"mazm-the-phantom-of-the-opera","title":"MazM: The Phantom of the Opera","compatibility":99,"releases":[{"id":"0100060013786000","region":null}]},{"id":"5dd9221a-1fc0-43b4-b29e-87c0583bb906","directory":"just-dance-r-2022","title":"Just Dance® 2022","compatibility":2,"releases":[{"id":"0100EA6014BB8000","region":null}]},{"id":"5de1b9df-2b1e-4b06-b79a-4a2df33351b1","directory":"heroine-anthem-zero-episode-1","title":"HEROINE ANTHEM ZERO episode 1","compatibility":0,"releases":[{"id":"01001B70080F0000","region":null}]},{"id":"5de4b1c6-0397-4872-979e-92e51bbef766","directory":"inops","title":"Inops","compatibility":99,"releases":[{"id":"0100DD200B59E000","region":null}]},{"id":"5de5549a-ecbf-4a88-b48d-81a6634ae4f9","directory":"crash-bandicoot-4-its-about-time","title":"Crash Bandicoot™ 4: It’s About Time","compatibility":2,"releases":[{"id":"010073401175E000","region":null}]},{"id":"5e1466d1-ca5c-46ca-9b6a-1d8a85d65110","directory":"pawarumi","title":"Pawarumi","compatibility":99,"releases":[{"id":"0100A56006CEE000","region":null}]},{"id":"5e290adb-2e88-4d84-be0c-21bf09d079fd","directory":"super-tennis","title":"Super Tennis","compatibility":0,"releases":[{"id":"01002950102CE000","region":null}]},{"id":"5e3194b3-aea4-4faf-af1d-d99e6808c7dc","directory":"arcade-archives-mrgoemon","title":"Arcade Archives Mr.GOEMON","compatibility":99,"releases":[{"id":"0100D7000F17A000","region":null}]},{"id":"5e363b09-7d60-4e26-ba88-35bd2dea0586","directory":"iridium","title":"Iridium","compatibility":5,"releases":[{"id":"010095C016C14000","region":null}]},{"id":"5e448f34-54c6-403a-8240-18dc5538a364","directory":"arcade-archives-atomic-robo-kid","title":"Arcade Archives Atomic Robo-Kid","compatibility":99,"releases":[{"id":"0100426001DE4000","region":null}]},{"id":"5e4b75ae-70e5-4dd3-b760-737b366e6c4b","directory":"peasant-knight","title":"Peasant Knight","compatibility":1,"releases":[{"id":"010028A0048A6000","region":null}]},{"id":"5e4efb76-a71a-4f0b-acf9-9f4da7e4dbb7","directory":"outpost-delta","title":"Outpost Delta","compatibility":99,"releases":[{"id":"0100CCF00F5BC000","region":null}]},{"id":"5e5622f5-8003-4ef4-8492-4ea15a862fe4","directory":"in-my-shadow","title":"In My Shadow","compatibility":99,"releases":[{"id":"010022A01537A000","region":null}]},{"id":"5e5f3e40-67c4-4136-8ea8-d221d30531e2","directory":"deeeer-simulator-your-average-everyday-deer-game","title":"DEEEER Simulator: Your Average Everyday Deer Game","compatibility":2,"releases":[{"id":"0100190014D72000","region":null}]},{"id":"5e665be3-da54-46f0-af8c-784a7a568b9e","directory":"the-mystery-of-woolley-mountain","title":"The Mystery of Woolley Mountain","compatibility":99,"releases":[{"id":"0100C5200D178000","region":null}]},{"id":"5e6e7b20-71a2-4ec0-9c78-1ac726588e07","directory":"olympic-boxing","title":"Olympic Boxing","compatibility":99,"releases":[{"id":"0100EF70137A4000","region":null}]},{"id":"5e7a701a-3542-4c04-8636-0bd125b4266e","directory":"arcade-archives-victory-road","title":"Arcade Archives VICTORY ROAD","compatibility":99,"releases":[{"id":"010007100C7B6000","region":null}]},{"id":"5e7fdde7-3fe7-4e83-82ff-389bfbcf3cb6","directory":"cyberhive","title":"CyberHive","compatibility":99,"releases":[{"id":"0100EB9014722000","region":null}]},{"id":"5e80e524-8ddd-4346-8b0d-3518fca0b548","directory":"super-rock-blasters","title":"Super Rock Blasters!","compatibility":99,"releases":[{"id":"01009E4006CC8000","region":null}]},{"id":"5e824d72-610b-4a2b-9b09-242bf84d8a60","directory":"the-path-of-motus-demo","title":"The Path of Motus Demo","compatibility":99,"releases":[{"id":"010062600D236000","region":null}]},{"id":"5e829452-5dc7-45c4-a75e-392c9569c8ba","directory":"enchanted-in-the-moonlight-miyabi-kyoga-and-samon-","title":"Enchanted in the Moonlight - Miyabi, Kyoga & Samon -","compatibility":99,"releases":[{"id":"0100C2000E08C000","region":null}]},{"id":"5e98ba77-6995-454e-918b-25347a7c6539","directory":"road-to-guangdong","title":"Road To Guangdong","compatibility":99,"releases":[{"id":"0100735010F58000","region":null}]},{"id":"5ec70cb3-81fe-4813-b6b4-879b4b9be457","directory":"arcade-archives-xx-mission","title":"Arcade Archives XX MISSION","compatibility":99,"releases":[{"id":"01008F3010752000","region":null}]},{"id":"5edfcacf-540a-46e4-bf42-6ba8121fd575","directory":"basketball-pinball","title":"Basketball Pinball","compatibility":99,"releases":[{"id":"0100BC5014FD0000","region":null}]},{"id":"5eebf069-42c8-4057-b770-718095d5c461","directory":"the-bradwell-conspiracy","title":"The Bradwell Conspiracy","compatibility":99,"releases":[{"id":"010097C00DF08000","region":null}]},{"id":"5eef099c-4585-4801-9f55-16f5c9d7be2c","directory":"out-of-the-box","title":"Out of The Box","compatibility":99,"releases":[{"id":"01005A700A166000","region":null}]},{"id":"5eef488c-0fd7-496f-b52c-4d5b09092d07","directory":"wingspan","title":"WINGSPAN","compatibility":99,"releases":[{"id":"0100E05011350000","region":null}]},{"id":"5efdf1dc-3e63-4df5-874e-a0e9fdccc954","directory":"morphies-law","title":"Morphies Law","compatibility":4,"releases":[{"id":"01005DA003E6E000","region":null}]},{"id":"5f0640df-f698-46b7-a908-cd41264b07c1","directory":"quest-of-dungeons","title":"Quest of Dungeons","compatibility":2,"releases":[{"id":"01001DE005012000","region":null}]},{"id":"5f231908-2157-424d-9a17-1296708709e3","directory":"fly-punch-boom","title":"Fly Punch Boom!","compatibility":99,"releases":[{"id":"0100FC300F4A4000","region":null}]},{"id":"5f506087-d872-45d3-9731-7acf3236c885","directory":"deru-the-art-of-cooperation","title":"Deru - The Art of Cooperation","compatibility":99,"releases":[{"id":"0100ED700469A000","region":null}]},{"id":"5f59a211-5bae-4e53-8f97-4676be5c967a","directory":"pew-paw","title":"Pew Paw","compatibility":1,"releases":[{"id":"010045A01221E000","region":null}]},{"id":"5f61639c-99ed-4837-8854-1d06a77897f4","directory":"straimium-immortaly","title":"Straimium Immortaly","compatibility":99,"releases":[{"id":"0100DA000D71A000","region":null}]},{"id":"5f63a56b-4cd5-4f66-9d5f-1fc807be63b3","directory":"escape-first","title":"Escape First","compatibility":4,"releases":[{"id":"01000E8010A98000","region":null}]},{"id":"5f65a088-13c4-463c-906f-0938b2c951fc","directory":"fill-a-pix-phils-epic-adventure","title":"Fill-a-Pix: Phil's Epic Adventure","compatibility":1,"releases":[{"id":"010095600AA36000","region":null}]},{"id":"5f68e6e0-28a6-48fc-b910-0812ca9eca3b","directory":"bloodrayne-revamped","title":"BloodRayne: ReVamped","compatibility":99,"releases":[{"id":"0100A420147C0000","region":null}]},{"id":"5f70272a-a2dc-4fce-9880-72a8e109cc2a","directory":"brothers-a-tale-of-two-sons","title":"Brothers: A Tale of Two Sons","compatibility":4,"releases":[{"id":"01000D500D08A000","region":null}]},{"id":"5f915f14-7789-477b-ae62-a83df54c764c","directory":"defoliation","title":"Defoliation","compatibility":99,"releases":[{"id":"010044300A65E000","region":null}]},{"id":"5f93e947-4680-4385-a033-9ae84b717b90","directory":"bloodshore","title":"Bloodshore","compatibility":99,"releases":[{"id":"01009F8015E94000","region":null}]},{"id":"5f9a8e1b-d975-4372-9ad4-d21ca988f442","directory":"moorhuhn-wanted","title":"Moorhuhn Wanted","compatibility":99,"releases":[{"id":"0100ED100B634000","region":null}]},{"id":"5fa09c2b-2e3f-4ef8-8972-de94f972d464","directory":"blazblue-cross-tag-battle-special-trial","title":"BLAZBLUE CROSS TAG BATTLE SPECIAL TRIAL","compatibility":4,"releases":[{"id":"0100C6E00AF2C000","region":null}]},{"id":"5fae852e-0a38-49ad-9305-dc6e7db07eb0","directory":"blade-ii-the-return-of-evil","title":"Blade II - The Return Of Evil","compatibility":3,"releases":[{"id":"01009CC00E224000","region":null}]},{"id":"5fb1f88c-54de-4588-8c8c-9912d45b4551","directory":"merrily-perilly","title":"Merrily Perilly","compatibility":99,"releases":[{"id":"01009DF014F44000","region":null}]},{"id":"5fb285a8-5397-4d68-ab38-bcd274bfaa53","directory":"the-big-journey","title":"The Big Journey","compatibility":1,"releases":[{"id":"010089600E66A000","region":null}]},{"id":"5fb8b5ef-0204-48df-a6a7-111236d856e0","directory":"crypt-of-the-necrodancer-nintendo-switch-edition","title":"Crypt of the NecroDancer: Nintendo Switch Edition","compatibility":0,"releases":[{"id":"0100CEA007D08000","region":null}]},{"id":"5fcf4642-0ec8-4f99-b089-c5af257d6cf2","directory":"one-eyed-kutkh","title":"One Eyed Kutkh","compatibility":99,"releases":[{"id":"0100E000092B2000","region":null}]},{"id":"5fd51f16-bdbd-41fa-8f09-e531f089c916","directory":"orbt-xl","title":"Orbt XL","compatibility":99,"releases":[{"id":"010025F011DB4000","region":null}]},{"id":"5fd66a64-b756-4388-bcd7-1fbffd36e67d","directory":"jigsaw-fun-amazing-animals","title":"Jigsaw Fun: Amazing Animals","compatibility":99,"releases":[{"id":"0100FE1015DC0000","region":null}]},{"id":"5fd6e96f-3986-48de-865a-ac62ec240f83","directory":"banners-of-ruin","title":"Banners of Ruin","compatibility":99,"releases":[{"id":"0100BEB014D94000","region":null}]},{"id":"5fd719ea-145b-448b-88fc-5f862911a716","directory":"sparkle-2","title":"Sparkle 2","compatibility":1,"releases":[{"id":"010028D0045CE000","region":null}]},{"id":"5fed29a2-d941-4381-a93a-e6866be1ed5d","directory":"raji-an-ancient-epic","title":"Raji: An Ancient Epic","compatibility":2,"releases":[{"id":"010010B00DDA2000","region":null}]},{"id":"5ff74f49-5097-41c9-954a-78b1517c1974","directory":"mousebot-escape-from-catlab","title":"MouseBot: Escape from CatLab","compatibility":99,"releases":[{"id":"010022301531E000","region":null}]},{"id":"5ffc4ddc-71c9-4f88-84d8-721735a570e7","directory":"3d-billiards-pool-and-snooker","title":"3D Billiards - Pool & Snooker","compatibility":99,"releases":[{"id":"010055D00BDD0000","region":null}]},{"id":"5ffeac48-44cc-471d-8929-a079ec1df66b","directory":"spirit-hunter-ng","title":"Spirit Hunter: NG","compatibility":99,"releases":[{"id":"0100FAE00E19A000","region":null}]},{"id":"5fffbfe0-e28f-4b24-982e-d56faddf5601","directory":"monster-jam-steel-titans-2","title":"Monster Jam Steel Titans 2","compatibility":99,"releases":[{"id":"010051B0131F0000","region":null}]},{"id":"600461ce-0ff8-42cd-a0d7-34d0ec8dd59a","directory":"turmoil","title":"Turmoil","compatibility":99,"releases":[{"id":"010089200F0E4000","region":null}]},{"id":"6006f88c-20ac-4473-8236-e5d6eaa4dcf0","directory":"actual-sunlight","title":"Actual Sunlight","compatibility":99,"releases":[{"id":"0100CD40104DE000","region":null}]},{"id":"60079b4d-752b-4267-a484-8ac4683a8518","directory":"pinball-big-splash","title":"Pinball Big Splash","compatibility":99,"releases":[{"id":"0100BB50144EA000","region":null}]},{"id":"600aa450-8027-4f58-ba79-d740894b8f3f","directory":"aircraft-evolution","title":"Aircraft Evolution","compatibility":99,"releases":[{"id":"0100E95011FDC000","region":null}]},{"id":"600fa70f-f1c5-47a8-aba0-18f7fc5955fb","directory":"be-a-poker-champion-texas-holdem","title":"Be a Poker Champion! Texas Hold'em","compatibility":99,"releases":[{"id":"0100E50013EFE000","region":null}]},{"id":"6012725e-68ac-4d6d-bfb2-5522f4301a34","directory":"inspector-waffles","title":"Inspector Waffles","compatibility":99,"releases":[{"id":"01004E4014F06000","region":null}]},{"id":"60317e6f-adc1-4ef7-b0ff-5787a8a472ae","directory":"boomerang-fu","title":"Boomerang Fu","compatibility":0,"releases":[{"id":"010081A00EE62000","region":null}]},{"id":"603b245e-be32-4049-86cf-cd996b270e1b","directory":"grecos-hall-of-kanji-learn-japaneseless-beginner-greater","title":"Greco’s Hall of Kanji Learn Japanese< Beginner >","compatibility":3,"releases":[{"id":"0100B6700DEC2000","region":null}]},{"id":"6042738c-54e0-40af-83b0-e22af3e3f97a","directory":"the-low-road","title":"The Low Road","compatibility":99,"releases":[{"id":"0100BAB00A116000","region":null}]},{"id":"6044763c-7f25-4720-9584-a44577a56e16","directory":"super-hiking-league-dx","title":"Super Hiking League DX","compatibility":99,"releases":[{"id":"0100EA4012072000","region":null}]},{"id":"6046575c-7e0f-40fa-842a-52ef96828d96","directory":"dumpy-bumpy","title":"Dumpy & Bumpy","compatibility":99,"releases":[{"id":"0100930016422000","region":null}]},{"id":"604910fc-4ccf-488c-a774-694e75caf9a2","directory":"puzzle-box-maker","title":"Puzzle Box Maker","compatibility":99,"releases":[{"id":"0100476004A9E000","region":null}]},{"id":"604a134c-9ac4-4f03-92e1-7fe9cf48df31","directory":"stikbold-a-dodgeball-adventure-deluxe-demo","title":"Stikbold! A Dodgeball Adventure DELUXE Demo","compatibility":99,"releases":[{"id":"0100454008DA8000","region":null}]},{"id":"605255f3-79ab-4da2-9583-3677c312dfa3","directory":"osyaberi-puzzle-chigatan-spot-the-differences-with-everyone","title":"Osyaberi! Puzzle Chigatan ~Spot the Differences with Everyone~","compatibility":99,"releases":[{"id":"0100429013B88000","region":null}]},{"id":"6055d1dd-f903-40dc-9919-241b67e340b4","directory":"the-long-journey-home","title":"The Long Journey Home","compatibility":99,"releases":[{"id":"0100E0E00C518000","region":null}]},{"id":"60575cf1-0c5d-48c9-ad55-33f5db38bd02","directory":"doom-ii-classic","title":"DOOM II (Classic)","compatibility":1,"releases":[{"id":"0100D4F00DD02000","region":null}]},{"id":"605ddd8c-c5e7-405f-bd92-4eebfda8955b","directory":"saturday-morning-rpg","title":"Saturday Morning RPG","compatibility":1,"releases":[{"id":"0100F0000869C000","region":null}]},{"id":"607d8f66-e251-4552-b4b3-5c0f20f421fe","directory":"hunting-simulator","title":"Hunting Simulator","compatibility":99,"releases":[{"id":"0100C460040EA000","region":null}]},{"id":"607e7818-f82e-4508-92c1-818c55294372","directory":"destinys-princess-a-war-story-a-love-story","title":"Destiny's Princess: A War Story, A Love Story","compatibility":99,"releases":[{"id":"0100B7F00B4E6000","region":null}]},{"id":"608c8250-8094-4e56-bf48-538865d76a78","directory":"barrage-fantasia","title":"Barrage Fantasia","compatibility":99,"releases":[{"id":"0100F2A013752000","region":null}]},{"id":"60a33116-1cf9-4f19-86bd-59e952ffd63c","directory":"super-mario-3d-all-stars","title":"Super Mario™ 3D All-Stars","compatibility":4,"releases":[{"id":"010049900F546000","region":null}]},{"id":"60b8a132-9241-408c-b72a-cb7996c950d6","directory":"katana-kami-a-way-of-the-samurai-story","title":"KATANA KAMI: A Way of the Samurai Story","compatibility":3,"releases":[{"id":"0100F9800EDFA000","region":null}]},{"id":"60be7251-b40f-4c8d-8aff-0830158aa7cb","directory":"plague-inc-evolved","title":"Plague Inc: Evolved","compatibility":0,"releases":[{"id":"01000CE00CBB8000","region":null}]},{"id":"60cccea7-66e5-4aaa-ae68-fc369b1e42e6","directory":"seers-isle","title":"Seers Isle","compatibility":99,"releases":[{"id":"0100394010844000","region":null}]},{"id":"60cfea0a-6cb9-4990-b942-8e7dbaad5921","directory":"one-night-stand","title":"One Night Stand","compatibility":99,"releases":[{"id":"0100F1300EC60000","region":null}]},{"id":"60d18655-6507-4b8c-a2d7-1eaf5f391a99","directory":"sega-ages-gain-ground","title":"SEGA AGES Gain Ground","compatibility":0,"releases":[{"id":"01001E600AF08000","region":null}]},{"id":"60db6da8-4d77-4fb1-be63-5c27d0bcbb08","directory":"illusion-of-lphalcia","title":"Illusion of L'Phalcia","compatibility":99,"releases":[{"id":"01000B700EC22000","region":null}]},{"id":"60dd6e7b-0d88-44a8-885d-d1cf7c9c7471","directory":"beautiful-desolation","title":"BEAUTIFUL DESOLATION","compatibility":2,"releases":[{"id":"01006B0014590000","region":null}]},{"id":"60e5d67f-229d-4428-b50d-38e4cbc10c7c","directory":"descenders","title":"Descenders","compatibility":2,"releases":[{"id":"0100D4600D0E4000","region":null}]},{"id":"60ee4f80-7ed1-4cfd-a053-efc558550f4f","directory":"raiders-of-the-lost-island","title":"Raiders Of The Lost Island","compatibility":99,"releases":[{"id":"0100966013BB2000","region":null}]},{"id":"60f1b861-eccf-4752-a916-40d56a4f6ca5","directory":"ultra-off-road-2019-alaska","title":"Ultra Off-Road 2019: Alaska","compatibility":99,"releases":[{"id":"010077500FA64000","region":null}]},{"id":"60faae36-0e37-4997-ab64-16bedc1530fb","directory":"soulslayer","title":"Soulslayer","compatibility":99,"releases":[{"id":"010088E00EBB6000","region":null}]},{"id":"61059ef6-9bf8-4c00-bb35-b4bb330bce3b","directory":"chicken-assassin-reloaded","title":"Chicken Assassin: Reloaded","compatibility":99,"releases":[{"id":"0100E3C00A118000","region":null}]},{"id":"610b27a8-c4f5-4f55-92cd-f15ed69467ca","directory":"car-demolition-clicker","title":"Car Demolition Clicker","compatibility":1,"releases":[{"id":"0100D8B013D02000","region":null}]},{"id":"610e6591-f0e7-452a-9573-25ffbc0f6c8a","directory":"dunk-lords","title":"Dunk Lords","compatibility":99,"releases":[{"id":"0100EC30140B6000","region":null}]},{"id":"610ef000-52e1-4e74-ab43-70c7f327d1b0","directory":"elevatorto-the-moon-turbo-champions-edition","title":"Elevator...to the Moon! Turbo Champion's Edition","compatibility":99,"releases":[{"id":"010024C00D734000","region":null}]},{"id":"6117036d-d0c1-4715-ad90-448ee57b7f1d","directory":"pure-chase-80s","title":"Pure Chase 80's","compatibility":1,"releases":[{"id":"01003A2016DC6000","region":null}]},{"id":"61365081-585f-4d53-a01b-f23ee3c575f3","directory":"extreme-poker","title":"EXTREME POKER","compatibility":1,"releases":[{"id":"010031A00BC9E000","region":null}]},{"id":"616ca5a6-3dd2-46f4-93b8-6c42d1884b3e","directory":"dreaming-canvas","title":"Dreaming Canvas","compatibility":99,"releases":[{"id":"010058B00F3C0000","region":null}]},{"id":"616e2ef2-10c4-4902-baaf-d79c79df9673","directory":"pocket-mini-golf","title":"Pocket Mini Golf","compatibility":1,"releases":[{"id":"010000C010E76000","region":null}]},{"id":"61934a85-7ed4-4c4d-832d-7fd0113891ab","directory":"my-child-lebensborn","title":"My Child Lebensborn","compatibility":99,"releases":[{"id":"010035D0131B2000","region":null}]},{"id":"619a2b58-9672-44e3-a12e-377717c95f68","directory":"super-metboy","title":"SUPER METBOY!","compatibility":99,"releases":[{"id":"0100F79012AAA000","region":null}]},{"id":"61a9aac4-4bd1-4bec-a29e-d66a90fdf125","directory":"a-year-of-springs","title":"A YEAR OF SPRINGS","compatibility":99,"releases":[{"id":"0100FE6016424000","region":null}]},{"id":"61b059f8-8870-4d0f-b3ab-203772f0ded7","directory":"unpacking","title":"Unpacking","compatibility":0,"releases":[{"id":"0100701015846000","region":null}]},{"id":"61ceda70-fb19-44b2-86a4-758ec5ca6d4c","directory":"creepy-tale-2","title":"Creepy Tale 2","compatibility":99,"releases":[{"id":"0100B4C0161BE000","region":null}]},{"id":"61eeb419-3ecb-444f-ab4b-db73981fce2b","directory":"aca-neogeo-ninja-combat","title":"ACA NEOGEO NINJA COMBAT","compatibility":2,"releases":[{"id":"010052A00A306000","region":null}]},{"id":"61f0c625-2a8d-4c4e-a59a-525e51d348d9","directory":"gutwhale","title":"Gutwhale","compatibility":99,"releases":[{"id":"0100953014DCA000","region":null}]},{"id":"61f23721-3af8-4566-b8cb-d5923d853160","directory":"dont-touch-this-button","title":"Don't Touch this Button!","compatibility":99,"releases":[{"id":"01009B401613C000","region":null}]},{"id":"61f422f8-c847-4e4e-b15d-5fc1bac98f5e","directory":"the-office-quest","title":"The Office Quest","compatibility":99,"releases":[{"id":"0100A2A00B08C000","region":null}]},{"id":"61f7994a-fd08-4bc2-aad8-c52704ef4c51","directory":"semispheres","title":"Semispheres","compatibility":1,"releases":[{"id":"01009840046BC000","region":null}]},{"id":"61fb9a3f-baac-4b85-89d4-99266bfd958a","directory":"nyakamon-adventures","title":"Nyakamon Adventures","compatibility":99,"releases":[{"id":"0100FA2014C78000","region":null}]},{"id":"62018567-7be3-4b7e-bb6e-70ca23ff1d95","directory":"silk","title":"Silk","compatibility":99,"releases":[{"id":"010045500DFE2000","region":null}]},{"id":"6204f801-defe-46c9-a58d-3428d1574413","directory":"top-run","title":"Top Run","compatibility":99,"releases":[{"id":"010092D00FF66000","region":null}]},{"id":"62056acd-78a3-4b8b-913d-9856a07101d6","directory":"project-winter","title":"Project Winter","compatibility":99,"releases":[{"id":"01002AB012C0C000","region":null}]},{"id":"62099338-29c4-4a73-92e8-7f4d9f7fe45e","directory":"a-monsters-expedition","title":"A Monster's Expedition","compatibility":0,"releases":[{"id":"0100C01013302000","region":null}]},{"id":"620c7943-e437-4e4e-a49c-4bccc0b33b6a","directory":"bravely-default-ii-demo","title":"Bravely Default™ II Demo","compatibility":4,"releases":[{"id":"0100B6801137E000","region":null}]},{"id":"622b291b-d745-4de3-b8f1-2bbfdeda5735","directory":"pixeljunk-monsters-2","title":"PixelJunk Monsters 2","compatibility":1,"releases":[{"id":"0100E4D00A690000","region":null}]},{"id":"622d4ec0-bafd-4c84-879b-e7e92ebb689e","directory":"sega-ages-thunder-force-ac","title":"SEGA AGES Thunder Force AC","compatibility":1,"releases":[{"id":"0100D0800C612000","region":null}]},{"id":"622f4703-e100-454f-924a-7bdc61f7c652","directory":"paranautical-activity","title":"Paranautical Activity","compatibility":99,"releases":[{"id":"010063400B2EC000","region":null}]},{"id":"623109fc-5016-403f-b66d-df0a1ef5dc30","directory":"grim-legends-3-the-dark-city","title":"Grim Legends 3: The Dark City","compatibility":99,"releases":[{"id":"01004F9012D84000","region":null}]},{"id":"623a8f61-6d70-4094-8caf-4c472b291c6a","directory":"hyper-sentinel-demo","title":"Hyper Sentinel Demo","compatibility":99,"releases":[{"id":"0100C2500B718000","region":null}]},{"id":"62573552-c523-4f81-b8e0-186bae43e734","directory":"gnome-more-war","title":"Gnome More War","compatibility":99,"releases":[{"id":"0100EB8011B0C000","region":null}]},{"id":"62584b57-089f-4b33-b848-5acf2459298d","directory":"gearclub-unlimited-2","title":"Gear.Club Unlimited 2","compatibility":0,"releases":[{"id":"010072900AFF0000","region":null}]},{"id":"625f92cb-4f13-4d8b-99a2-f07cd12461c4","directory":"super-inefficient-golf","title":"Super Inefficient Golf","compatibility":99,"releases":[{"id":"010056800B534000","region":null}]},{"id":"62680a03-b5c5-40b5-ae17-9b71d1f55bb5","directory":"laytons-mystery-journey-katrielle-and-the-millionaires-conspiracy-deluxe-edition","title":"LAYTON’S MYSTERY JOURNEY: Katrielle and the Millionaires’ Conspiracy - Deluxe Edition","compatibility":3,"releases":[{"id":"0100FB700D224000","region":null}]},{"id":"62747f1f-8992-4551-b116-939f0d934253","directory":"football-run","title":"Football Run","compatibility":99,"releases":[{"id":"010072701635E000","region":null}]},{"id":"62748442-3640-4771-8ded-0f4ef48bebee","directory":"fitness-boxing-2-rhythm-exercise","title":"Fitness Boxing 2: Rhythm & Exercise","compatibility":0,"releases":[{"id":"0100073011382000","region":null}]},{"id":"628874bc-fe11-4ad7-9804-5673e6ee7310","directory":"masky","title":"Masky","compatibility":99,"releases":[{"id":"010048000F946000","region":null}]},{"id":"628bc512-e0e7-4cac-bec4-e6f3b066f2a0","directory":"the-jackbox-party-pack-7","title":"The Jackbox Party Pack 7","compatibility":99,"releases":[{"id":"01007F30113A6000","region":null}]},{"id":"628c3e70-f1db-433c-86d0-6aa71bd59818","directory":"tower-inferno","title":"Tower Inferno","compatibility":99,"releases":[{"id":"010012500FD08000","region":null}]},{"id":"6291a400-5c27-44e0-93a4-28a1728d5308","directory":"gemini","title":"Gemini","compatibility":99,"releases":[{"id":"0100D71013AF4000","region":null}]},{"id":"62a10373-60f3-4b9d-b618-08b7943b39c0","directory":"quest-for-the-golden-duck","title":"Quest for the Golden Duck","compatibility":99,"releases":[{"id":"0100D9200D51E000","region":null}]},{"id":"62b83522-3da1-497b-9b60-cc491298fdf0","directory":"raspberry-mash","title":"RASPBERRY MASH","compatibility":99,"releases":[{"id":"0100298013CC0000","region":null}]},{"id":"62c2f4d1-795f-4085-8423-cb0c2cf02cfd","directory":"omno","title":"OMNO","compatibility":99,"releases":[{"id":"01006400167CA000","region":null}]},{"id":"62d9bbdd-6c93-43e1-bf1c-0db8cd96ae79","directory":"cooking-festival","title":"Cooking Festival","compatibility":2,"releases":[{"id":"01006920137D2000","region":null}]},{"id":"62e1da4b-1c80-4756-92bb-8acdbbd0a428","directory":"merchants-of-kaidan","title":"Merchants of Kaidan","compatibility":99,"releases":[{"id":"0100E5000D3CA000","region":null}]},{"id":"62ed44d3-03f5-46cd-8a92-33038a82805e","directory":"deemo","title":"Deemo","compatibility":99,"releases":[{"id":"0100DD100AE8C000","region":null}]},{"id":"62f0f060-843b-43d5-9cb7-2c56cb0af4fe","directory":"kyub","title":"KYUB","compatibility":99,"releases":[{"id":"010063D005B32000","region":null}]},{"id":"62f5b814-9f03-49eb-a106-fa36cfa014db","directory":"super-bomberman-r-online","title":"SUPER BOMBERMAN R ONLINE","compatibility":5,"releases":[{"id":"01007380121FE000","region":null}]},{"id":"62f5f336-3d17-4ec3-8ea7-7a90905699eb","directory":"the-forbidden-arts","title":"The Forbidden Arts","compatibility":0,"releases":[{"id":"010007700D4AC000","region":null}]},{"id":"6305608e-ac08-46be-9714-ff19613ea6fa","directory":"superbrothers-sword-and-sworcery-ep","title":"Superbrothers: Sword & Sworcery EP","compatibility":3,"releases":[{"id":"0100AA400C396000","region":null}]},{"id":"6315ac24-f6ae-438b-98d2-a71eedb8b872","directory":"112-operator","title":"112 Operator","compatibility":99,"releases":[{"id":"0100D82015774000","region":null}]},{"id":"631f70be-2b6c-44fc-ab5d-40f05f69f234","directory":"clannad-side-stories","title":"CLANNAD Side Stories","compatibility":3,"releases":[{"id":"01007B501372C000","region":null}]},{"id":"63262aea-fac4-4f45-a3fa-9f802095a1c4","directory":"secret-files-3","title":"Secret Files 3","compatibility":99,"releases":[{"id":"010028F010644000","region":null}]},{"id":"633dbeb8-6fc8-4191-9c2c-e6d6b7b0e512","directory":"puyo-puyo-tetris-demo","title":"Puyo Puyo Tetris Demo","compatibility":99,"releases":[{"id":"01000DC003740000","region":null}]},{"id":"63461d39-24c9-4f0d-8617-918d812071e4","directory":"aca-neogeo-fatal-fury-special","title":"ACA NEOGEO FATAL FURY SPECIAL","compatibility":2,"releases":[{"id":"010019A0038FA000","region":null}]},{"id":"63476f90-13b2-4537-93f9-4bc86bed20a2","directory":"cube-raiders","title":"Cube Raiders","compatibility":99,"releases":[{"id":"0100FAC00E978000","region":null}]},{"id":"6348023e-2ba4-4a1b-ac8e-ea0539a04bc9","directory":"aperion-cyberstorm-demo]","title":"Aperion Cyberstorm [DEMO]","compatibility":99,"releases":[{"id":"01008CA00D71C000","region":null}]},{"id":"63484572-29a2-43fe-9c1e-f420bd520ed1","directory":"the-choice-of-life-middle-ages","title":"The Choice of Life: Middle Ages","compatibility":99,"releases":[{"id":"0100982013C80000","region":null}]},{"id":"6351de91-bee1-4b65-b4b4-7747dbd30fdf","directory":"arcade-archives-vs-balloon-fight","title":"Arcade Archives VS. BALLOON FIGHT","compatibility":99,"releases":[{"id":"010061400F7E4000","region":null}]},{"id":"6361167f-a02f-4dda-86e6-61bf3b32a0b6","directory":"strike-force-kitty","title":"Strike Force Kitty","compatibility":99,"releases":[{"id":"010038A00E6C6000","region":null}]},{"id":"63685aa4-fc82-41f9-aebe-572aebe5e8e0","directory":"aca-neogeo-ninja-masters","title":"ACA NEOGEO NINJA MASTER'S","compatibility":5,"releases":[{"id":"0100C6300AFE0000","region":null}]},{"id":"636b04a6-d828-43bf-a556-9682f46f29c0","directory":"city-match-a-block-pop-puzzle-game","title":"City Match - A Block Pop Puzzle Game","compatibility":99,"releases":[{"id":"0100E06015B60000","region":null}]},{"id":"63745ee3-c2f5-416f-9f35-082d800e71d5","directory":"west-of-loathing","title":"West of Loathing","compatibility":2,"releases":[{"id":"010031B00A4E8000","region":null}]},{"id":"637997af-fc86-463d-ad1f-63b8287cf6cb","directory":"blazing-chrome","title":"Blazing Chrome","compatibility":3,"releases":[{"id":"0100C2700C252000","region":null}]},{"id":"637a07b5-c27c-4044-a8fd-face1695dea7","directory":"mars-or-die","title":"Mars or Die!","compatibility":4,"releases":[{"id":"010048200B606000","region":null}]},{"id":"6386d106-9114-4abf-99a8-17f067b1fe91","directory":"truck-and-logistics-simulator","title":"Truck and Logistics Simulator","compatibility":99,"releases":[{"id":"0100F2100AA5C000","region":null}]},{"id":"63976010-dc86-48f8-9040-1524a26a64b7","directory":"lets-sing-2020","title":"Let's Sing 2020","compatibility":99,"releases":[{"id":"010065F00DF4A000","region":null}]},{"id":"63cba8f6-9d9b-42ed-983e-0eee4c89dc5b","directory":"2048-battles","title":"2048 Battles","compatibility":1,"releases":[{"id":"010096500EA94000","region":null}]},{"id":"63cfc745-de88-4672-9341-4101bfd6a290","directory":"fairy-knights","title":"Fairy Knights","compatibility":99,"releases":[{"id":"010015A0110AC000","region":null}]},{"id":"63d62eba-6912-48aa-8ddb-7be1e1ebad87","directory":"banana-treasures-island","title":"Banana Treasures Island","compatibility":99,"releases":[{"id":"010064F01354A000","region":null}]},{"id":"63e66df0-c287-4a47-b365-9b1007332a9c","directory":"tank-de-la-muerta","title":"Tank De La Muerta","compatibility":99,"releases":[{"id":"0100E6A016142000","region":null}]},{"id":"63edc567-cd5f-4dc1-9a40-16d598cb122e","directory":"aca-neogeo-puzzle-bobble-2","title":"ACA NEOGEO PUZZLE BOBBLE 2","compatibility":5,"releases":[{"id":"0100BC700C7AE000","region":null}]},{"id":"63f69589-ed71-4f36-a285-0f1e4b1ddeed","directory":"apocryph-an-old-school-shooter","title":"Apocryph: an old-school shooter","compatibility":5,"releases":[{"id":"010045D009EFC000","region":null}]},{"id":"63ffca93-ad3e-4e8a-9309-e6d438f84af7","directory":"1001-ultimate-mahjong-2","title":"1001 Ultimate Mahjong  2","compatibility":4,"releases":[{"id":"010063E00BBDC000","region":null}]},{"id":"640105fc-3d5e-4e07-9aed-b08afa37979f","directory":"astrowings-space-war","title":"AstroWings: Space War","compatibility":99,"releases":[{"id":"0100DF401249C000","region":null}]},{"id":"640652d0-08cc-400b-953f-99dfb16546de","directory":"code-realize-future-blessings","title":"Code: Realize ~Future Blessings~","compatibility":0,"releases":[{"id":"010002400F408000","region":null}]},{"id":"640a7ab8-b88f-4173-8040-9ad72a4b8cd5","directory":"julies-sweets","title":"Julie's Sweets","compatibility":1,"releases":[{"id":"010011400AF8E000","region":null}]},{"id":"641f51d6-c267-470c-9aa2-f378104602a0","directory":"moonshades-a-classic-dungeon-crawler-rpg","title":"Moonshades: a classic dungeon crawler RPG","compatibility":99,"releases":[{"id":"01008180157AC000","region":null}]},{"id":"6427167a-6469-47cc-af0f-9fda64ee08f2","directory":"kid-tripp","title":"Kid Tripp","compatibility":0,"releases":[{"id":"0100C0A004C2C000","region":null}]},{"id":"64394780-0b16-4a9a-af46-a7af836b7e0a","directory":"island-maze","title":"Island Maze","compatibility":99,"releases":[{"id":"0100F0E00F5EA000","region":null}]},{"id":"645202fc-f6fe-4e65-8cfc-7aa037d43864","directory":"sagrada","title":"Sagrada","compatibility":99,"releases":[{"id":"010096D0116DE000","region":null}]},{"id":"64619699-7cc3-4a11-8a36-264037753dfa","directory":"corridor-z","title":"Corridor Z","compatibility":2,"releases":[{"id":"010096100E230000","region":null}]},{"id":"648c16da-cdda-4277-9e9a-1e059345d174","directory":"warp-shift","title":"Warp Shift","compatibility":0,"releases":[{"id":"0100DB300A026000","region":null}]},{"id":"64915498-df1a-4da5-9b23-ae3994e2ded1","directory":"junk-planet","title":"JUNK PLANET","compatibility":99,"releases":[{"id":"010069800D2B4000","region":null}]},{"id":"6494cd7f-9f61-47b3-861f-07bc1c9b2a79","directory":"mythic-ocean","title":"Mythic Ocean","compatibility":99,"releases":[{"id":"0100F4F014108000","region":null}]},{"id":"649deb7d-5c03-47ee-a2aa-4b985221fbf0","directory":"hotel-sowls","title":"Hotel Sowls","compatibility":1,"releases":[{"id":"0100B7E01234E000","region":null}]},{"id":"64b2c2fe-fb41-4f39-9f1d-9a0ca449c2d9","directory":"epitaph","title":"Epitaph","compatibility":99,"releases":[{"id":"0100646012282000","region":null}]},{"id":"64c9129d-cf05-466d-bd21-65ba0aeda16e","directory":"final-fantasy-xii-the-zodiac-age","title":"FINAL FANTASY XII THE ZODIAC AGE","compatibility":3,"releases":[{"id":"0100EB100AB42000","region":null}]},{"id":"64d670b2-e988-498f-85dd-0ba7d80d2fa1","directory":"wordherd","title":"WordHerd","compatibility":99,"releases":[{"id":"0100D74010F44000","region":null}]},{"id":"64e7b2bb-be08-45e5-960b-f4c904f4c393","directory":"fantasy-cards","title":"Fantasy Cards","compatibility":99,"releases":[{"id":"01006DA015878000","region":null}]},{"id":"64e9b49f-6a5d-4a2c-bdf6-ac1f66c1abd1","directory":"cyber-complex","title":"Cyber Complex","compatibility":99,"releases":[{"id":"0100D6B010DC0000","region":null}]},{"id":"64eb5f41-0317-4a60-9f40-56f5ca8d3cbf","directory":"retro-classix-2-in-1-pack-express-raider-shootout","title":"Retro Classix 2-in-1 Pack: Express Raider & Shootout","compatibility":99,"releases":[{"id":"0100C0D012188000","region":null}]},{"id":"64fb1be9-183a-45e0-8118-adc74711d652","directory":"burn-supertrucks","title":"Burn! SuperTrucks","compatibility":99,"releases":[{"id":"0100B5A013822000","region":null}]},{"id":"64ffba37-df73-4e26-a7ed-3c69b96406ba","directory":"goosebumps-dead-of-night","title":"Goosebumps Dead of Night","compatibility":99,"releases":[{"id":"010014C0100C6000","region":null}]},{"id":"65026439-a81b-4f1d-af4e-b210cef27816","directory":"isoland-2-ashes-of-time","title":"Isoland 2 - Ashes of Time","compatibility":99,"releases":[{"id":"0100F5600D194000","region":null}]},{"id":"65035d4e-eeb0-401c-ae56-54144636711c","directory":"trials-rising-open-beta","title":"Trials Rising Open Beta","compatibility":99,"releases":[{"id":"0100D9200D090000","region":null}]},{"id":"6514d879-463c-48ad-902a-ddaa0073e9b7","directory":"cat-quest-ii","title":"Cat Quest II","compatibility":0,"releases":[{"id":"01008BE00E968000","region":null}]},{"id":"652ac89d-9e3d-4a92-b379-32fa44e35065","directory":"human-rocket-person","title":"Human Rocket Person","compatibility":99,"releases":[{"id":"0100B0800DBAC000","region":null}]},{"id":"652ec456-5cb1-4585-9764-f186a2b6ba26","directory":"bit-trip-flux","title":"BIT.TRIP FLUX","compatibility":99,"releases":[{"id":"0100293012D40000","region":null}]},{"id":"65308d2d-8366-44ed-91c9-2fcffb071a7e","directory":"zen-chess-collection","title":"Zen Chess Collection","compatibility":99,"releases":[{"id":"01005F200F7C2000","region":null}]},{"id":"6530cb93-a86d-4f40-87a6-3fa4bbb99cdd","directory":"arcade-archives-libble-rabble","title":"Arcade Archives LIBBLE RABBLE","compatibility":99,"releases":[{"id":"0100CB7015AC4000","region":null}]},{"id":"653caadb-9209-47f9-b51c-6cc67f43eb1c","directory":"poly-puzzle","title":"Poly Puzzle","compatibility":99,"releases":[{"id":"01001F70112BA000","region":null}]},{"id":"6545a98b-a9c2-4a3d-a086-909ad5ab4b7a","directory":"roulette-at-aces-casino","title":"Roulette at Aces Casino","compatibility":99,"releases":[{"id":"01005D3012322000","region":null}]},{"id":"654bff82-0888-438c-875d-7cb0d6a310aa","directory":"ai-the-somnium-files","title":"AI: THE SOMNIUM FILES","compatibility":2,"releases":[{"id":"010089B00D09C000","region":null}]},{"id":"654ee652-94bb-4dcf-aeed-56d8aaad87fe","directory":"energy-cycle","title":"Energy Cycle","compatibility":1,"releases":[{"id":"0100BFE00865E000","region":null}]},{"id":"6555b236-0c64-49b2-a604-cb44a53e73e8","directory":"chess-ultra","title":"Chess Ultra","compatibility":5,"releases":[{"id":"0100A5900472E000","region":null}]},{"id":"6555efde-7231-4d08-9cac-68527a42078c","directory":"pretty-girls-mahjong-solitaire-green","title":"Pretty Girls Mahjong Solitaire - Green","compatibility":99,"releases":[{"id":"0100B55014D44000","region":null}]},{"id":"6559ce75-ac48-4c9d-b9c7-854ee23e7a13","directory":"nonograms-prophecy","title":"Nonograms Prophecy","compatibility":99,"releases":[{"id":"0100FF500E738000","region":null}]},{"id":"656e8982-e1dd-40e4-a04c-02be0dedcac5","directory":"my-exotic-farm-2018","title":"My Exotic Farm 2018","compatibility":99,"releases":[{"id":"0100E8600C866000","region":null}]},{"id":"656ea9d4-7939-4a3d-b438-d985e32c517f","directory":"yes-your-grace","title":"Yes, Your Grace","compatibility":99,"releases":[{"id":"01006040110AE000","region":null}]},{"id":"657131a6-edf2-4eb1-9059-621825bc141d","directory":"of-tanks-and-demons-iii","title":"Of Tanks and Demons III","compatibility":1,"releases":[{"id":"01007C30129FE000","region":null}]},{"id":"658206b6-01c8-49a5-aa21-a555b850f9ff","directory":"arcade-archives-xevious","title":"Arcade Archives XEVIOUS","compatibility":99,"releases":[{"id":"010082C015ABC000","region":null}]},{"id":"6582e78a-6ac0-4a82-b5c0-b91a48a619f8","directory":"arcade-archives-mirai-ninja","title":"Arcade Archives MIRAI NINJA","compatibility":99,"releases":[{"id":"01000D50169C4000","region":null}]},{"id":"65859d92-644b-4605-91a7-7460c6c44ebe","directory":"a-normal-lost-phone","title":"A Normal Lost Phone","compatibility":3,"releases":[{"id":"0100978009B98000","region":null}]},{"id":"65860786-4e5a-40ec-b936-de97f56e8f43","directory":"yellow-fins","title":"Yellow Fins","compatibility":99,"releases":[{"id":"010021700F6A4000","region":null}]},{"id":"658b2387-750c-479a-869d-968cb26b3bbc","directory":"wreckin-ball-adventure","title":"Wreckin' Ball Adventure","compatibility":99,"releases":[{"id":"0100C5D00EDB8000","region":null}]},{"id":"659618e8-0dc6-4c85-9bed-a748dd67b345","directory":"aca-neogeo-fatal-fury-3","title":"ACA NEOGEO FATAL FURY 3","compatibility":4,"releases":[{"id":"01000D1008714000","region":null}]},{"id":"659ae932-7ada-4f06-a34a-25561d101f39","directory":"cosmic-top-secret","title":"Cosmic Top Secret","compatibility":99,"releases":[{"id":"0100ACB014104000","region":null}]},{"id":"659ede42-c323-494e-93fc-e6412b14f3e8","directory":"linn-path-of-orchards","title":"Linn: Path of Orchards","compatibility":99,"releases":[{"id":"0100394012038000","region":null}]},{"id":"65a2f5b1-da58-4291-842c-fe0a3664606a","directory":"freddy-spaghetti","title":"Freddy Spaghetti","compatibility":1,"releases":[{"id":"010033B0134A2000","region":null}]},{"id":"65a3acbc-96ca-488f-8c7b-031004901c2d","directory":"the-wanderer-frankensteins-creature","title":"The Wanderer: Frankenstein's Creature","compatibility":99,"releases":[{"id":"010095F010568000","region":null}]},{"id":"65a4d24f-3b2a-4ae8-ace8-de28b3299d5f","directory":"the-house-in-fata-morgana-dreams-of-the-revenants-edition","title":"The House in Fata Morgana: Dreams of the Revenants Edition","compatibility":1,"releases":[{"id":"010016101100A000","region":null}]},{"id":"65add294-808c-40f1-a7db-32e83332fbed","directory":"blossom-tales-the-sleeping-king","title":"Blossom Tales: The Sleeping King","compatibility":4,"releases":[{"id":"0100C1000706C000","region":null}]},{"id":"65b70655-f9fd-4147-abc2-1515e1ac3cc5","directory":"getamped-mobile","title":"GetAmped Mobile","compatibility":99,"releases":[{"id":"0100AA4008210000","region":null}]},{"id":"65c81db5-c188-48bc-8d27-c8b75c1df1d4","directory":"super-rocket-shootout","title":"Super Rocket Shootout","compatibility":99,"releases":[{"id":"0100095009236000","region":null}]},{"id":"65d937dc-4156-4f8f-bb13-190ef0747cf2","directory":"tales-from-the-dragon-mountain-the-strix","title":"Tales from the Dragon Mountain: The Strix","compatibility":99,"releases":[{"id":"01009860125C0000","region":null}]},{"id":"65dc38c7-f11c-4bc7-9a49-bfa311ecc002","directory":"haunted-poppys-nightmare","title":"Haunted: Poppy's Nightmare","compatibility":99,"releases":[{"id":"0100B0E00F074000","region":null}]},{"id":"65efd420-40b6-4b45-9e0b-54c5b7cc9329","directory":"truck-driver","title":"Truck Driver","compatibility":99,"releases":[{"id":"0100CB50107BA000","region":null}]},{"id":"65f1517a-1f6b-4f74-8830-8370de75cb76","directory":"fifa-22-nintendo-switch-legacy-edition","title":"FIFA 22 Nintendo Switch™ Legacy Edition","compatibility":2,"releases":[{"id":"0100216014472000","region":null}]},{"id":"65fd372e-c201-483f-b8e7-86b3fbda2810","directory":"dadish","title":"Dadish","compatibility":3,"releases":[{"id":"0100B8B013310000","region":null}]},{"id":"66142747-35bf-4c20-b4cd-ff20692e3086","directory":"desktop-rugby","title":"Desktop Rugby","compatibility":99,"releases":[{"id":"0100FAC00F716000","region":null}]},{"id":"661f7afa-5938-49c0-9594-5dfde6a1a76a","directory":"woodsalt","title":"Woodsalt","compatibility":99,"releases":[{"id":"0100288012966000","region":null}]},{"id":"661ff712-c89a-41cd-932e-8a51c4310471","directory":"the-unexpected-quest","title":"The Unexpected Quest","compatibility":99,"releases":[{"id":"010043C012DB4000","region":null}]},{"id":"66236f9b-aab5-4f7b-8ba0-4c0e95da663c","directory":"story-of-seasons-pioneers-of-olive-town","title":"STORY OF SEASONS: Pioneers of Olive Town","compatibility":1,"releases":[{"id":"010082E012A84000","region":null}]},{"id":"662e65a6-287d-4402-8dd2-b3d925776bf2","directory":"rollin-eggz","title":"Rollin' Eggz","compatibility":99,"releases":[{"id":"01004FD00D7C8000","region":null}]},{"id":"66310b10-42bc-473c-9b4c-9cd3bb3fb712","directory":"snowboarding-the-next-phase","title":"Snowboarding The Next Phase","compatibility":1,"releases":[{"id":"0100BE200C34A000","region":null}]},{"id":"66377d34-c391-4c7a-93bb-c6e3233afd3f","directory":"quiplash-2-interlashional-the-say-anything-party-game","title":"Quiplash 2 InterLASHional: The Say Anything Party Game!","compatibility":99,"releases":[{"id":"0100AF100EE76000","region":null}]},{"id":"66384604-1f41-4772-b808-fbc0656eabf1","directory":"ginger-beyond-the-crystal","title":"Ginger: Beyond the Crystal","compatibility":2,"releases":[{"id":"0100C50007070000","region":null}]},{"id":"663dfd98-324f-4c4d-bac4-464840c903e5","directory":"awe","title":"Awe","compatibility":99,"releases":[{"id":"0100E1800CD2A000","region":null}]},{"id":"66484227-bc25-4903-b1c1-57b41412f89f","directory":"dragon-quest","title":"DRAGON QUEST","compatibility":0,"releases":[{"id":"0100EFC00EFB2000","region":null}]},{"id":"6648fd3e-b7d6-42ca-af3b-aa58dec40391","directory":"aca-neogeo-baseball-stars-professional","title":"ACA NEOGEO BASEBALL STARS PROFESSIONAL","compatibility":99,"releases":[{"id":"01003FE00A2F6000","region":null}]},{"id":"664eca90-5689-43f6-9d57-cd22fd4b66dd","directory":"induction","title":"Induction","compatibility":99,"releases":[{"id":"01007AE014E66000","region":null}]},{"id":"6660f8c5-6831-4e03-93ef-dd4f87e7550a","directory":"fallen-legion-rise-to-glory","title":"Fallen Legion: Rise to Glory","compatibility":2,"releases":[{"id":"0100A260094EE000","region":null}]},{"id":"66687304-b9fd-46da-a39f-0e2631905c47","directory":"hotel-transylvania-3-monsters-overboard","title":"Hotel Transylvania 3 Monsters Overboard","compatibility":0,"releases":[{"id":"0100017007980000","region":null}]},{"id":"6669b44a-79e7-4456-af45-d4eb9f55a563","directory":"zombie-scrapper","title":"Zombie Scrapper","compatibility":99,"releases":[{"id":"010015000DB1A000","region":null}]},{"id":"666d3358-c445-41db-9371-514cb9b9d952","directory":"him-her","title":"Him & Her","compatibility":99,"releases":[{"id":"010039601162A000","region":null}]},{"id":"66708ecf-d9c8-42c2-b3ea-f479eda40ffc","directory":"wandersong","title":"Wandersong","compatibility":99,"releases":[{"id":"0100F8A00853C000","region":null}]},{"id":"668731a8-8788-4312-b815-6abd38d6a22b","directory":"darksiders-ii-deathinitive-edition","title":"Darksiders II Deathinitive Edition","compatibility":3,"releases":[{"id":"010071800BA98000","region":null}]},{"id":"668d1379-33e6-4c4a-a427-ab3240fb386c","directory":"arcade-archives-crazy-climber","title":"Arcade Archives CRAZY CLIMBER","compatibility":1,"releases":[{"id":"0100BB1001DD6000","region":null}]},{"id":"669b682d-bf34-4c60-9b30-73e7b07c46ba","directory":"curious-expedition-2","title":"Curious Expedition 2","compatibility":99,"releases":[{"id":"010033500E0DC000","region":null}]},{"id":"66a84f46-6802-4e2e-b71e-338821cfab57","directory":"l-o-l-surprise-movie-night","title":"L.O.L. Surprise! Movie Night","compatibility":99,"releases":[{"id":"0100D16014DD4000","region":null}]},{"id":"66ad7636-3b53-44bc-a4f2-1ffef951d414","directory":"ancient-rush-2","title":"Ancient Rush 2","compatibility":99,"releases":[{"id":"010021700BC56000","region":null}]},{"id":"66c44bf2-6fbd-4c0c-a752-72d175f3187f","directory":"takotan","title":"Takotan","compatibility":99,"releases":[{"id":"0100761012B0C000","region":null}]},{"id":"66c6c68c-8b19-4a5b-80c6-c8642f43a10f","directory":"pine","title":"Pine","compatibility":3,"releases":[{"id":"01002BA00D662000","region":null}]},{"id":"66d09f9c-2958-44fe-a75c-925c8d2ee8df","directory":"dead-or-school","title":"DEAD OR SCHOOL","compatibility":99,"releases":[{"id":"0100A5000F7AA000","region":null}]},{"id":"66e52566-196f-4618-8c6d-634518c9e339","directory":"crowdy-farm-rush","title":"Crowdy Farm Rush","compatibility":99,"releases":[{"id":"0100578012A02000","region":null}]},{"id":"66eb649b-f371-4314-8d73-334e7aca1c15","directory":"fantasy-friends","title":"Fantasy Friends","compatibility":99,"releases":[{"id":"010017C012726000","region":null}]},{"id":"66f6d35f-c363-4e24-bafa-0b035e6eb984","directory":"magic-nations","title":"Magic Nations","compatibility":99,"releases":[{"id":"0100F6600AC00000","region":null}]},{"id":"66f7b869-cd5c-4661-8079-8369b7a1b5cb","directory":"omen-exitio-plague","title":"Omen Exitio: Plague","compatibility":99,"releases":[{"id":"01001D500EB90000","region":null}]},{"id":"66fdce60-1b1a-4235-b800-41e4de5b7113","directory":"west-of-dead","title":"West of Dead","compatibility":0,"releases":[{"id":"0100C2C00D74E000","region":null}]},{"id":"6701956c-4b0e-4930-abef-f16f028fb2d0","directory":"robophobik","title":"RoboPhobik","compatibility":99,"releases":[{"id":"0100187011F8E000","region":null}]},{"id":"6702a419-416b-443b-91a6-3fb8f5fde94b","directory":"super-puzzle-pack","title":"Super Puzzle Pack","compatibility":99,"releases":[{"id":"01003AB011FD8000","region":null}]},{"id":"67077cc3-3ba0-4a56-a0e1-3bb802457503","directory":"mom-hid-my-game","title":"Mom Hid My Game!","compatibility":99,"releases":[{"id":"0100702005E18000","region":null}]},{"id":"670806f7-6708-4467-beec-e22c39d29dcb","directory":"arcade-archives-kid-niki-radical-ninja","title":"Arcade Archives Kid Niki Radical Ninja","compatibility":99,"releases":[{"id":"010010B008A36000","region":null}]},{"id":"67316dfc-92df-4453-9921-65dcb3cf8920","directory":"damsel","title":"Damsel","compatibility":2,"releases":[{"id":"0100BD2009A1C000","region":null}]},{"id":"6737582a-8a20-4b7a-b3e6-e1ac9b0d2331","directory":"mario-kart-8-deluxe","title":"Mario Kart 8 Deluxe","compatibility":2,"releases":[{"id":"0100152000022000","region":null}]},{"id":"673a0e03-5395-4357-a00e-fdca1316c899","directory":"football-manager-2020-touch","title":"Football Manager 2020 Touch","compatibility":5,"releases":[{"id":"0100DA500EFB0000","region":null}]},{"id":"673bfd2c-79f2-4c34-aab1-f4b38d2c6835","directory":"memories-of-east-coast","title":"Memories of East Coast","compatibility":99,"releases":[{"id":"0100CF201641C000","region":null}]},{"id":"6742196b-ad34-4698-a381-07cd72863299","directory":"the-journey-down-chapter-two","title":"The Journey Down: Chapter Two","compatibility":99,"releases":[{"id":"01009AB00B186000","region":null}]},{"id":"6743d148-26d0-4292-afa1-84348f21a3f9","directory":"tennis","title":"Tennis","compatibility":99,"releases":[{"id":"0100D7A005DFC000","region":null}]},{"id":"674e93ce-2863-4b2c-bad6-7a8e378d2889","directory":"they-breathe","title":"They Breathe","compatibility":99,"releases":[{"id":"010088801230E000","region":null}]},{"id":"67540743-fc1c-4350-920d-24b5de8e4cfc","directory":"mighty-switch-force-collection","title":"Mighty Switch Force! Collection","compatibility":0,"releases":[{"id":"010060D00AE36000","region":null}]},{"id":"6755303d-b286-423f-abd0-dbdf04c1b928","directory":"tank-battle-heroes","title":"Tank Battle Heroes","compatibility":99,"releases":[{"id":"0100EBF0129E4000","region":null}]},{"id":"67561a26-1064-4bdf-9cda-66334ca50fd9","directory":"blind-men","title":"Blind Men","compatibility":99,"releases":[{"id":"010089D011310000","region":null}]},{"id":"6759f6ea-fae0-4eda-adf5-69958378719d","directory":"panorama-cotton","title":"Panorama Cotton","compatibility":2,"releases":[{"id":"0100BAB01692A000","region":null}]},{"id":"675c8ec0-a438-4bd0-a881-975be0ef993f","directory":"cybarian-the-time-traveling-warrior","title":"Cybarian: The Time Traveling Warrior","compatibility":99,"releases":[{"id":"010045300E52A000","region":null}]},{"id":"67623535-b7a2-47e3-909f-20120f069a3d","directory":"moorhuhn-jump-and-run-traps-and-treasures","title":"Moorhuhn Jump and Run 'Traps and Treasures'","compatibility":99,"releases":[{"id":"0100E3D014ABC000","region":null}]},{"id":"67668459-038a-4216-bb69-7a65b6bffba0","directory":"trailblazers","title":"Trailblazers","compatibility":0,"releases":[{"id":"0100BCA00843A000","region":null}]},{"id":"676c32c1-f3ae-4bfe-bbe5-7d471d172835","directory":"sega-genesis-classics","title":"SEGA Genesis Classics","compatibility":0,"releases":[{"id":"0100A6300B250000","region":null}]},{"id":"678f5379-4635-4161-a9e5-516f7e18b250","directory":"fisti-fluffs","title":"Fisti-Fluffs","compatibility":99,"releases":[{"id":"0100B82012E86000","region":null}]},{"id":"6790df08-5d90-400c-b82f-a9bb85d0daee","directory":"aca-neogeo-pulstar","title":"ACA NEOGEO PULSTAR","compatibility":99,"releases":[{"id":"01008EA008712000","region":null}]},{"id":"679bab52-e7eb-4bce-ac52-f35a557bf90f","directory":"dont-starve-nintendo-switch-edition","title":"Don't Starve: Nintendo Switch Edition","compatibility":1,"releases":[{"id":"0100751007ADA000","region":null}]},{"id":"679d8702-3305-4c22-833d-a1e60b88694f","directory":"mad-bullets","title":"Mad Bullets","compatibility":99,"releases":[{"id":"01008F000E908000","region":null}]},{"id":"67a5f4a7-a09f-478e-9b48-57630d39d047","directory":"if-my-heart-had-wings","title":"If My Heart Had Wings","compatibility":99,"releases":[{"id":"01001AC00ED72000","region":null}]},{"id":"67af7cb5-9577-409b-a0db-5b8889834de9","directory":"dual-brain-vol1-calculation","title":"Dual Brain Vol.1: Calculation","compatibility":1,"releases":[{"id":"0100E6900F2A8000","region":null}]},{"id":"67b32723-aaea-48a1-bc45-e71c9ba7606c","directory":"james-pond-codename-robocod","title":"James Pond Codename Robocod","compatibility":3,"releases":[{"id":"0100CD5008D9E000","region":null}]},{"id":"67b3d143-eab8-4f06-881e-08ab110b77a5","directory":"lifeless-planet-premiere-edition","title":"Lifeless Planet: Premiere Edition","compatibility":0,"releases":[{"id":"01005B6008132000","region":null}]},{"id":"67bfcadd-aee9-4368-b869-214324218aa6","directory":"vambrace-cold-soul","title":"Vambrace: Cold Soul","compatibility":99,"releases":[{"id":"01000E000DD40000","region":null}]},{"id":"67bfe41e-46fc-4310-b2d4-09bd11550e0b","directory":"mario-party-superstars","title":"Mario Party™ Superstars","compatibility":2,"releases":[{"id":"01006FE013472000","region":null}]},{"id":"67c47ceb-5189-42b6-9409-689d90d99e60","directory":"toroom","title":"Toroom","compatibility":99,"releases":[{"id":"01003C9015BD6000","region":null}]},{"id":"67d44bac-e5db-4876-bd9c-8d7966761181","directory":"dark-quest-2","title":"Dark Quest 2","compatibility":0,"releases":[{"id":"0100BFF00D5AE000","region":null}]},{"id":"67d9e4e9-aa67-4765-98f5-59fa1f2f01e6","directory":"gravity-light","title":"Gravity Light","compatibility":99,"releases":[{"id":"010097F01653E000","region":null}]},{"id":"67ddfeea-5708-4fb9-a2f7-66c548cd0540","directory":"grandpa-and-the-zombies","title":"Grandpa and the Zombies","compatibility":99,"releases":[{"id":"010038500BCD6000","region":null}]},{"id":"67e92944-c536-46e5-84cf-34f1e1d7ceca","directory":"my-riding-stables-2-a-new-adventure","title":"My Riding Stables 2: A New Adventure","compatibility":99,"releases":[{"id":"010042A00FBF0000","region":null}]},{"id":"67f0fced-db0f-427c-be57-61e8bcbd264c","directory":"thief-town","title":"Thief Town","compatibility":99,"releases":[{"id":"0100EE401046E000","region":null}]},{"id":"67f3319a-cb20-4de4-89c5-ca3a9bc5ee6a","directory":"animaludo","title":"AnimaLudo","compatibility":99,"releases":[{"id":"01009660154D0000","region":null}]},{"id":"67f36324-c214-471d-b4ed-27f0c6bd465a","directory":"travel-mosaics-7-fantastic-berlin","title":"Travel Mosaics 7: Fantastic Berlin","compatibility":99,"releases":[{"id":"01000BD0119DE000","region":null}]},{"id":"67f92476-1866-464e-811d-75c4b7fa07e6","directory":"pure-electric-love-everyone-else-ema-sakura-","title":"Pure / Electric Love \"Everyone else!\" - Ema Sakura -","compatibility":3,"releases":[{"id":"010050300AC28000","region":null}]},{"id":"67fa4e81-9454-4c82-a879-f824714e31f1","directory":"beattalk","title":"BeatTalk","compatibility":99,"releases":[{"id":"01004A6014788000","region":null}]},{"id":"67fb249b-d5f4-4e84-b50c-da1010f8117e","directory":"stranded-sails-explorers-of-the-cursed-islands","title":"Stranded Sails - Explorers of the Cursed Islands","compatibility":2,"releases":[{"id":"010078D00E8F4000","region":null}]},{"id":"681b3a8b-327b-497a-a00e-67146ed3db3d","directory":"residual","title":"Residual","compatibility":99,"releases":[{"id":"0100D880159D2000","region":null}]},{"id":"681c6780-b86f-4e6a-a48b-1be56ac5b00f","directory":"quarantine-circular","title":"Quarantine Circular","compatibility":99,"releases":[{"id":"0100F1400BA88000","region":null}]},{"id":"68292727-366c-4f56-a3b9-ed6ab7cbdd8b","directory":"grand-slam-tennis","title":"Grand Slam Tennis","compatibility":99,"releases":[{"id":"0100BB701534C000","region":null}]},{"id":"682c7372-a747-4a9e-8eaa-1a207e770f7f","directory":"infinitecorp-cyberpunk-card-game","title":"InfiniteCorp: Cyberpunk Card Game","compatibility":99,"releases":[{"id":"0100A4F015E78000","region":null}]},{"id":"684aa4cd-0aee-4b12-8eb3-ad271f5b9275","directory":"the-true","title":"The True","compatibility":99,"releases":[{"id":"0100C19013ECC000","region":null}]},{"id":"684d5dc2-5205-4bcb-8d6f-fbf0610e8a2d","directory":"the-seven-chambers","title":"The Seven Chambers","compatibility":99,"releases":[{"id":"0100721014E52000","region":null}]},{"id":"684e379a-4c15-4923-af12-af5fdcbd59b7","directory":"tt-isle-of-man-ride-on-the-edge-2","title":"TT Isle of Man Ride on the Edge 2","compatibility":4,"releases":[{"id":"010000400F582000","region":null}]},{"id":"685720d7-59e9-4cf4-bc3e-5a8709ecce6a","directory":"boost-beast","title":"BOOST BEAST","compatibility":3,"releases":[{"id":"0100766003E5C000","region":null}]},{"id":"685b4052-6da4-4d5f-aa95-45a2e0f7b5ae","directory":"damascus-gear-operation-tokyo","title":"Damascus Gear Operation Tokyo","compatibility":99,"releases":[{"id":"01006AA0084FE000","region":null}]},{"id":"685fb2c2-d16b-482a-996e-b3d1c7fcd091","directory":"darksiders-warmastered-edition","title":"Darksiders Warmastered Edition","compatibility":1,"releases":[{"id":"0100E1400BA96000","region":null}]},{"id":"68668016-97ea-4d58-80e7-6c62ee8b41ec","directory":"travel-mosaics-8-breathtaking-seoul","title":"Travel Mosaics 8: Breathtaking Seoul","compatibility":0,"releases":[{"id":"0100AE30119E0000","region":null}]},{"id":"687cf1f7-1ca5-4deb-b552-eeec68b80a1d","directory":"g-i-joe-operation-blackout","title":"G.I. Joe: Operation Blackout","compatibility":99,"releases":[{"id":"0100EB10108EA000","region":null}]},{"id":"688aa34b-8ed5-4a56-b74f-c8b2637e850c","directory":"mugsters","title":"Mugsters","compatibility":99,"releases":[{"id":"010073E008E6E000","region":null}]},{"id":"689281ce-5052-470a-99c3-6bef4b310c98","directory":"animal-rivals-nintendo-switch-edition","title":"Animal Rivals: Nintendo Switch Edition","compatibility":3,"releases":[{"id":"010065B009B3A000","region":null}]},{"id":"6893509d-292c-415e-9c8a-d260f3f15e3c","directory":"fantasy-tavern-sextet-vol-2-adventurers-days","title":"Fantasy Tavern Sextet -Vol.2 Adventurer's Days-","compatibility":4,"releases":[{"id":"01005C10136CA000","region":null}]},{"id":"689da056-22cb-44ee-a830-439ada527ba7","directory":"monster-hunter-generations-ultimate","title":"Monster Hunter Generations Ultimate","compatibility":1,"releases":[{"id":"0100770008DD8000","region":null}]},{"id":"68bdcde1-8b46-421e-951f-89cd18a67225","directory":"nongunz-doppelganger-edition","title":"Nongunz: Doppelganger Edition","compatibility":99,"releases":[{"id":"0100542012884000","region":null}]},{"id":"68c0d1a5-cb0b-4f3c-ab46-00e90e773d95","directory":"paper-dolls-original","title":"Paper Dolls Original","compatibility":3,"releases":[{"id":"010004500DE50000","region":null}]},{"id":"68ca0026-7fc5-481c-b5d7-724ea9c3be4b","directory":"archlion-saga","title":"Archlion Saga","compatibility":1,"releases":[{"id":"0100B3500DFB8000","region":null}]},{"id":"68f06377-6720-4793-a16f-ae83541bc74a","directory":"blue-rider","title":"Blue Rider","compatibility":99,"releases":[{"id":"01006A600B5E6000","region":null}]},{"id":"68f0daeb-d1a2-4100-8454-02edcb12d3ca","directory":"sega-ages-alex-kidd-in-miracle-world","title":"SEGA AGES Alex Kidd in Miracle World","compatibility":0,"releases":[{"id":"0100A8900AF04000","region":null}]},{"id":"692a0d80-be16-4865-9274-f6eedbb58104","directory":"astroneer","title":"ASTRONEER","compatibility":99,"releases":[{"id":"0100E63013E60000","region":null}]},{"id":"692a93a9-97e2-4f38-b824-07d3ecee76e5","directory":"escape-doodland","title":"Escape Doodland","compatibility":99,"releases":[{"id":"010036600C7BE000","region":null}]},{"id":"69329625-91e1-45ac-b663-bb57bd5cc252","directory":"glitchangels","title":"Glitchangels","compatibility":99,"releases":[{"id":"0100CDA014AF6000","region":null}]},{"id":"69337b3a-e535-4e30-b604-6e65d949e549","directory":"a-boy-and-his-blob","title":"A Boy and His Blob","compatibility":0,"releases":[{"id":"01008AF0160C4000","region":null}]},{"id":"694922ff-a137-411c-b469-be7ec7ac928c","directory":"project-knight","title":"PROJECT : KNIGHT","compatibility":99,"releases":[{"id":"0100BE60149F2000","region":null}]},{"id":"694ad68e-9a4e-45f1-8f9a-68be3edf4aee","directory":"nekopara-vol-4","title":"NEKOPARA Vol.4","compatibility":99,"releases":[{"id":"010049F013656000","region":null}]},{"id":"6951297b-80c2-4662-9064-1161c2ba47a5","directory":"kingdom-tales-2","title":"Kingdom Tales 2","compatibility":99,"releases":[{"id":"0100AE7013B90000","region":null}]},{"id":"6958ed3a-a47f-47c3-91a3-771eda2c66de","directory":"pixel-game-maker-series-cham-the-cat-adventure","title":"Pixel Game Maker Series CHAM THE CAT ADVENTURE","compatibility":99,"releases":[{"id":"01005A40168A2000","region":null}]},{"id":"695d8a4b-f3b2-4746-ae10-e15dcda2df7b","directory":"super-saurio-fly","title":"Super Saurio Fly","compatibility":99,"releases":[{"id":"01004CF00A60E000","region":null}]},{"id":"695eab81-8f43-4da2-95d6-7505f1fcf686","directory":"space-otter-charlie","title":"Space Otter Charlie","compatibility":99,"releases":[{"id":"0100DCF0120D2000","region":null}]},{"id":"695f425c-0855-4e31-8869-de75a3d5ecf0","directory":"kaptain-brawe-a-brawe-new-world","title":"Kaptain Brawe: A Brawe New World","compatibility":2,"releases":[{"id":"0100B53013236000","region":null}]},{"id":"6965e716-e7c4-46e0-afd9-adb6ca3b2149","directory":"knock-knock","title":"Knock-Knock","compatibility":99,"releases":[{"id":"010001A00A1F6000","region":null}]},{"id":"6968c778-ea67-4b60-b0db-4723a3e74d7a","directory":"dragon-quest-iii-the-seeds-of-salvation","title":"DRAGON QUEST III: The Seeds of Salvation","compatibility":4,"releases":[{"id":"010015600EFB6000","region":null}]},{"id":"696b0887-fc8c-49e7-82ed-53e756831d19","directory":"bibi-and-tina-adventures-with-horses","title":"Bibi & Tina – Adventures with Horses","compatibility":99,"releases":[{"id":"0100BF400AF38000","region":null}]},{"id":"696b3cb7-5952-44cb-8be7-cf85c155ea26","directory":"nuts","title":"NUTS","compatibility":99,"releases":[{"id":"01000A00135DC000","region":null}]},{"id":"697309bf-9e16-4a06-ba02-79045c106e83","directory":"asterix-obelix-slap-them-all","title":"Asterix & Obelix: Slap them All!","compatibility":1,"releases":[{"id":"01002B401285E000","region":null}]},{"id":"69752083-2f13-41b9-b522-6b1ba14d8b2c","directory":"99vidas-definitive-edition","title":"99Vidas - Definitive Edition","compatibility":99,"releases":[{"id":"0100B2C00682E000","region":null}]},{"id":"6984ea21-9094-4317-952e-b181ed65bc97","directory":"mega-party-a-tootuff-adventure","title":"MEGA PARTY - a tootuff adventure","compatibility":99,"releases":[{"id":"010033A011614000","region":null}]},{"id":"69857e44-d501-4e83-8d8a-560e788c24b4","directory":"koi-dx","title":"Koi DX","compatibility":0,"releases":[{"id":"01001E500401C000","region":null}]},{"id":"69916e13-a342-4f04-8d66-6bae8f67cf4d","directory":"crashbots","title":"Crashbots","compatibility":99,"releases":[{"id":"0100BF200CD74000","region":null}]},{"id":"699633b8-a713-4277-9f26-46f81c7badd8","directory":"energy-cycle-edge-demo","title":"Energy Cycle Edge (Demo)","compatibility":2,"releases":[{"id":"0100A9900C380000","region":null}]},{"id":"69a87da2-62e6-448f-870b-2ce8b11d897f","directory":"doom-and-destiny","title":"Doom & Destiny","compatibility":0,"releases":[{"id":"010019F00CF92000","region":null}]},{"id":"69b686cc-7024-43a1-9460-162052334879","directory":"super-dodge-ball","title":"Super Dodge Ball","compatibility":99,"releases":[{"id":"010096300E48A000","region":null}]},{"id":"69cb8a10-7927-447c-8249-65855b7d6867","directory":"furwind","title":"Furwind","compatibility":0,"releases":[{"id":"0100A6B00D4EC000","region":null}]},{"id":"69d84967-530d-432b-bc21-744f0fb9fcc6","directory":"star-wars-republic-commando","title":"STAR WARS™ Republic Commando™","compatibility":5,"releases":[{"id":"0100FA10115F8000","region":null}]},{"id":"69e0a12f-a025-41d9-8888-701a41967d7b","directory":"tharsis","title":"Tharsis","compatibility":0,"releases":[{"id":"010034D010E78000","region":null}]},{"id":"69e8f66a-08c1-4fa7-828c-fae6f44c9544","directory":"lydia","title":"Lydia","compatibility":99,"releases":[{"id":"01009800100B4000","region":null}]},{"id":"69ed4d68-a0aa-42da-b218-75adf2972d80","directory":"sparklite","title":"Sparklite","compatibility":2,"releases":[{"id":"01007ED00C032000","region":null}]},{"id":"69f44e25-55fb-45fc-a819-379f79b0de6f","directory":"bunny-adventure","title":"Bunny Adventure","compatibility":99,"releases":[{"id":"01004A201292C000","region":null}]},{"id":"6a038133-9fde-42b2-8cac-1689f599f830","directory":"aca-neogeo-metal-slug-4","title":"ACA NEOGEO METAL SLUG 4","compatibility":2,"releases":[{"id":"01009CE00AFAE000","region":null}]},{"id":"6a10308f-23a6-4074-a31c-4af20b68b930","directory":"one-hand-clapping","title":"One Hand Clapping","compatibility":99,"releases":[{"id":"0100FDD01209A000","region":null}]},{"id":"6a519673-4ec5-48b5-b19c-d126cce53672","directory":"art-of-balance-demo","title":"Art of Balance DEMO","compatibility":99,"releases":[{"id":"010062F00CAE2000","region":null}]},{"id":"6a689077-967d-443f-8940-51f5ab1a3293","directory":"metallic-child","title":"METALLIC CHILD","compatibility":2,"releases":[{"id":"01009DE014D6E000","region":null}]},{"id":"6a6ccc27-0c12-4a56-ab59-81ddf79cd62b","directory":"fifa-21-nintendo-switch-legacy-edition","title":"FIFA 21 Nintendo Switch™ Legacy Edition","compatibility":2,"releases":[{"id":"01000A001171A000","region":null}]},{"id":"6a6eef6f-dd26-4fc2-8e44-1746a99786fe","directory":"override-2-super-mech-league","title":"Override 2: Super Mech League","compatibility":99,"releases":[{"id":"0100647012F62000","region":null}]},{"id":"6a70b484-3766-48d1-a883-e60934aaa542","directory":"shiny-ski-resort","title":"Shiny Ski Resort","compatibility":99,"releases":[{"id":"010082400ED18000","region":null}]},{"id":"6a7ae334-4245-43ae-98fb-c46d99b2c97e","directory":"horror-pinball-bundle","title":"Horror Pinball Bundle","compatibility":2,"releases":[{"id":"0100E4200FA82000","region":null}]},{"id":"6a82c4d9-c5f2-4cc1-9522-1e8746fff3f3","directory":"retro-tanks","title":"Retro Tanks","compatibility":99,"releases":[{"id":"01002F6011D12000","region":null}]},{"id":"6a93e78b-c282-4c86-a882-8cae1931fd04","directory":"skelly-selest-straimium-immortaly-double-pack","title":"Skelly Selest &  Straimium Immortaly Double Pack","compatibility":99,"releases":[{"id":"010028001179C000","region":null}]},{"id":"6a98650a-c651-46db-b261-7a2dbada88c0","directory":"stone","title":"STONE","compatibility":99,"releases":[{"id":"010070D00F640000","region":null}]},{"id":"6a9d5eea-bbbb-4511-a33b-3a81b60898ca","directory":"chinese-parents","title":"Chinese Parents","compatibility":99,"releases":[{"id":"010046F012A04000","region":null}]},{"id":"6aa50a32-33be-421f-9a6b-11fc993159b9","directory":"island-farmer","title":"Island Farmer","compatibility":99,"releases":[{"id":"0100FA60160DE000","region":null}]},{"id":"6aa80d9c-41f8-4c96-8d56-53d111f76269","directory":"howling-village-echoes","title":"Howling Village: Echoes","compatibility":99,"releases":[{"id":"01000E40163F2000","region":null}]},{"id":"6ab9a661-7542-412c-bcb2-71b75aefc2fb","directory":"sheep-in-hell","title":"Sheep in Hell","compatibility":99,"releases":[{"id":"01005B800EA5A000","region":null}]},{"id":"6abe4e5e-4b2a-4d36-b610-00db60cd6ec5","directory":"zombo-buster-advance","title":"Zombo Buster Advance","compatibility":99,"releases":[{"id":"0100BC5014D68000","region":null}]},{"id":"6ac4f560-3a79-40c0-b3f8-59386faed73c","directory":"kuukiyomi-2-consider-it-more-new-era","title":"KUUKIYOMI 2: Consider It More! - New Era","compatibility":99,"releases":[{"id":"010037500F282000","region":null}]},{"id":"6ad0926c-f434-4c81-a1cb-e14a8fd6279c","directory":"razed","title":"RAZED","compatibility":99,"releases":[{"id":"0100CB5009A2C000","region":null}]},{"id":"6ad18cc3-ddc9-4238-8d7f-dd925e6119de","directory":"behind-the-screen","title":"Behind The Screen","compatibility":1,"releases":[{"id":"010053200B0E0000","region":null}]},{"id":"6add1724-8592-4c77-9189-86f8da518fb1","directory":"teddy-gangs","title":"Teddy Gangs","compatibility":99,"releases":[{"id":"0100FAE00F728000","region":null}]},{"id":"6ae417f7-1342-4a89-926e-887893e2c4a2","directory":"monster-boy-and-the-cursed-kingdom","title":"Monster Boy and the Cursed Kingdom","compatibility":1,"releases":[{"id":"01006F7001D10000","region":null}]},{"id":"6ae5d08a-9d02-4c6a-b09b-50fa4de84cb6","directory":"ploid","title":"PLOID","compatibility":99,"releases":[{"id":"010081B013B58000","region":null}]},{"id":"6aec5de5-6d79-4b29-b18d-377f0e52750f","directory":"dandara","title":"Dandara","compatibility":1,"releases":[{"id":"0100BFC002B4E000","region":null}]},{"id":"6aedf0eb-0ed6-41e9-94f0-477430e847e5","directory":"puzzle-pipes","title":"Puzzle Pipes","compatibility":99,"releases":[{"id":"0100A010153CC000","region":null}]},{"id":"6af3e732-fb19-49d5-8be7-9691e02cd036","directory":"my-coloring-book","title":"My Coloring Book","compatibility":0,"releases":[{"id":"0100E76013F1C000","region":null}]},{"id":"6af77040-0675-4019-822c-d75ca70dcbe2","directory":"foregone","title":"Foregone","compatibility":3,"releases":[{"id":"010044B00E70A000","region":null}]},{"id":"6afc79f8-75e4-418a-99ec-6283d936b2ca","directory":"home-sheep-home-farmageddon-party-edition","title":"Home Sheep Home: Farmageddon Party Edition","compatibility":99,"releases":[{"id":"010076000F6B8000","region":null}]},{"id":"6b04570b-6bfd-4128-b85f-4f224a32a4c5","directory":"indie-darling-bundle-vol-2","title":"Indie Darling Bundle Vol 2","compatibility":99,"releases":[{"id":"01006DD011074000","region":null}]},{"id":"6b1414e6-cdb9-444a-a28d-e4de3c97047e","directory":"aqua-moto-racing-utopia","title":"Aqua Moto Racing Utopia","compatibility":1,"releases":[{"id":"0100D0D00516A000","region":null}]},{"id":"6b32af42-8ba6-45ac-b447-ca0eb4871d8f","directory":"mercury-race","title":"Mercury Race","compatibility":99,"releases":[{"id":"0100C9A00B60A000","region":null}]},{"id":"6b3f7a1c-99d5-447d-a465-1842fbde2f9a","directory":"the-otterman-empire","title":"The Otterman Empire","compatibility":3,"releases":[{"id":"01004A700DBD6000","region":null},{"id":"0100B0101265C000","region":null}]},{"id":"6b4603eb-77f4-4b7b-9a99-7eb3315bb520","directory":"abarenbo-tengu-zombie-nation","title":"Abarenbo Tengu & Zombie Nation","compatibility":99,"releases":[{"id":"010040E012A5A000","region":null}]},{"id":"6b467099-9c89-45e4-bc85-81c659e8e201","directory":"summer-sweetheart","title":"Summer Sweetheart","compatibility":1,"releases":[{"id":"01004E500DB9E000","region":null}]},{"id":"6b4878a0-39b6-472e-ac27-24a465ce4787","directory":"cat","title":".cat","compatibility":99,"releases":[{"id":"010079D013E18000","region":null}]},{"id":"6b53ea95-60eb-42a7-81c2-246848d3e9ec","directory":"woodle-tree-adventures-demo","title":"Woodle Tree Adventures Demo","compatibility":99,"releases":[{"id":"010008300D1E0000","region":null}]},{"id":"6b59478f-a656-45d0-af8e-b59cac222da8","directory":"mxgp3-the-official-motocross-videogame","title":"MXGP3 - The Official Motocross Videogame","compatibility":3,"releases":[{"id":"0100D940063A0000","region":null}]},{"id":"6b5ac046-9bf2-47ee-bb5e-e5bf8c6d47bd","directory":"train-station-renovation","title":"Train Station Renovation","compatibility":99,"releases":[{"id":"0100C670149D4000","region":null}]},{"id":"6b5d4b9d-0d25-4b86-a507-633d1f687618","directory":"gunbird-for-nintendo-switch","title":"GUNBIRD for Nintendo Switch","compatibility":4,"releases":[{"id":"01003C6008940000","region":null}]},{"id":"6b697610-e073-4003-9e93-f5778336f93d","directory":"strange-field-football","title":"Strange Field Football","compatibility":99,"releases":[{"id":"01000A6013F86000","region":null}]},{"id":"6b6c1e61-2b21-4661-959f-10bb8c0869cd","directory":"dragon-blaze-for-nintendo-switch","title":"Dragon Blaze for Nintendo Switch","compatibility":2,"releases":[{"id":"010099B00A2DC000","region":null}]},{"id":"6b77bb2f-75a8-40fd-a826-edbc8d2a24a7","directory":"game-dev-story","title":"Game Dev Story","compatibility":4,"releases":[{"id":"0100AF700BCD2000","region":null}]},{"id":"6b7a17c7-4eab-46bb-b77c-ba8e3f178f36","directory":"dragonfangz-the-rose-and-dungeon-of-time","title":"DragonFangZ - The Rose & Dungeon of Time","compatibility":2,"releases":[{"id":"0100DA0006F50000","region":null}]},{"id":"6b7cc99e-9dc6-43ea-856b-e193ab405a93","directory":"earthlock","title":"EARTHLOCK","compatibility":2,"releases":[{"id":"01006E50042EA000","region":null}]},{"id":"6b81e174-4a91-4afd-8a89-955c88a2c597","directory":"riddled-corpses-ex","title":"Riddled Corpses EX","compatibility":0,"releases":[{"id":"01002C700C326000","region":null}]},{"id":"6b8a07b6-199c-4e82-acf6-8a7d646f5463","directory":"tesla-vs-lovecraft","title":"Tesla vs Lovecraft","compatibility":99,"releases":[{"id":"0100FBC007EAE000","region":null}]},{"id":"6bae551f-13d4-4cb2-812e-de04e7835b02","directory":"the-alliance-alive-hd-remastered","title":"The Alliance Alive HD Remastered","compatibility":1,"releases":[{"id":"01003CF00DCFA000","region":null}]},{"id":"6bb47d82-239f-4026-88d9-a28108a99a69","directory":"drums","title":"Drums","compatibility":1,"releases":[{"id":"0100652012F58000","region":null}]},{"id":"6bc00557-a0ba-4b20-8a1b-02861acf3bcc","directory":"puzzles-for-toddlers-kids-animals-cars-and-more","title":"Puzzles for Toddlers & Kids: Animals, Cars and more","compatibility":5,"releases":[{"id":"010071E011308000","region":null}]},{"id":"6bc151c6-1bfd-466b-b799-c318f9fe86ea","directory":"super-space-snake","title":"Super Space Snake","compatibility":99,"releases":[{"id":"01004DE01162C000","region":null}]},{"id":"6bc95279-b2b9-4f8b-a0b1-70d17e6ce0bc","directory":"strike-suit-zero-directors-cut","title":"Strike Suit Zero: Director's Cut","compatibility":99,"releases":[{"id":"010072500D52E000","region":null}]},{"id":"6bcf074b-8368-4792-903e-7a72f08f2f65","directory":"dungeonoid","title":"Dungeonoid","compatibility":99,"releases":[{"id":"01002130136C0000","region":null}]},{"id":"6bdbb458-f615-49d3-9c20-d123184652d9","directory":"conarium","title":"Conarium","compatibility":1,"releases":[{"id":"010015801308E000","region":null}]},{"id":"6beb8961-5d60-48d1-9daf-cb1262a7cb19","directory":"wuppo-definitive-edition","title":"Wuppo: Definitive Edition","compatibility":5,"releases":[{"id":"01003F800E87C000","region":null}]},{"id":"6befcd10-bb3d-4da3-8d32-529e36465597","directory":"aca-neogeo-the-king-of-fighters-97","title":"ACA NEOGEO THE KING OF FIGHTERS '97","compatibility":2,"releases":[{"id":"0100170008728000","region":null}]},{"id":"6bf60ca8-e5fb-43ce-a135-9cdad7d97f4d","directory":"shadowverse-champions-battle","title":"Shadowverse: Champion's Battle","compatibility":99,"releases":[{"id":"01005880134C2000","region":null}]},{"id":"6bf72de9-7daa-4e2b-be1c-4e4e1d89f31d","directory":"quell","title":"Quell","compatibility":99,"releases":[{"id":"0100492012378000","region":null}]},{"id":"6bf8116b-d08a-4cb8-8f3d-4170e6c119f6","directory":"axe-champ","title":"Axe Champ!","compatibility":99,"releases":[{"id":"01009E7015954000","region":null}]},{"id":"6c00db3a-78ab-44da-9258-70204bfae694","directory":"afterparty","title":"Afterparty","compatibility":3,"releases":[{"id":"0100DB100BBCE000","region":null}]},{"id":"6c149c88-6605-4e51-bcc5-890cbcdf3168","directory":"world-conqueror-x","title":"World Conqueror X","compatibility":99,"releases":[{"id":"01009D500A194000","region":null}]},{"id":"6c27da92-dc64-4301-abaa-19758a99732e","directory":"wordsweeper-by-powgi","title":"Wordsweeper by POWGI","compatibility":99,"releases":[{"id":"01008A500ED8E000","region":null}]},{"id":"6c423419-d841-441e-bbc8-ffe84cea142f","directory":"petoons-party","title":"Petoons Party","compatibility":2,"releases":[{"id":"010044400EEAE000","region":null}]},{"id":"6c59e28b-4b5c-4db3-8e45-ac5be51ca03d","directory":"survive-mrcube","title":"Survive! MR.CUBE","compatibility":99,"releases":[{"id":"010029A00AEB0000","region":null}]},{"id":"6c60bade-15fd-4231-9123-3c89e0800581","directory":"bounce-mania","title":"Bounce Mania","compatibility":99,"releases":[{"id":"01003FD014FB0000","region":null}]},{"id":"6c6d08f4-fef1-478e-8173-63074bfa451c","directory":"mario-rabbids-kingdom-battle","title":"Mario + Rabbids Kingdom Battle","compatibility":2,"releases":[{"id":"010067300059A000","region":null}]},{"id":"6c78a63a-9f48-4d22-92c2-ce68bcf910be","directory":"arcade-archives-nova2001","title":"Arcade Archives NOVA2001","compatibility":99,"releases":[{"id":"0100A5E009822000","region":null}]},{"id":"6c78e6ae-b9d6-432f-b71f-330ada6f6919","directory":"mushroom-heroes","title":"Mushroom Heroes","compatibility":99,"releases":[{"id":"01005BD0112B8000","region":null}]},{"id":"6c78f522-8ed0-4914-a4f8-f0b1fddfb5df","directory":"captain-starone","title":"Captain StarONE","compatibility":99,"releases":[{"id":"0100BF000CB3C000","region":null}]},{"id":"6c802aa1-7078-4c45-a750-7d76dbc2c7d1","directory":"catch-em-goldfish-scooping","title":"Catch 'Em! Goldfish Scooping","compatibility":99,"releases":[{"id":"0100E7F00BA5A000","region":null}]},{"id":"6c82d2c7-9fd5-4a3c-acc2-5dd746968493","directory":"emoji-music","title":"emoji MUSIC","compatibility":99,"releases":[{"id":"01005AC016C0C000","region":null}]},{"id":"6c88f7d7-4abf-488f-897c-b77279de9e8b","directory":"johnny-turbos-arcade-joe-and-mac-returns","title":"Johnny Turbo's Arcade: Joe and Mac Returns","compatibility":99,"releases":[{"id":"01003D7002CC0000","region":null}]},{"id":"6c8b0b12-6de4-41ac-930b-db5e60c06d20","directory":"puzzle-puppers","title":"Puzzle Puppers","compatibility":99,"releases":[{"id":"01003590089EA000","region":null}]},{"id":"6c8fcd94-f323-4d83-ba1c-d185c6833f1c","directory":"othercide","title":"Othercide","compatibility":99,"releases":[{"id":"0100E5900F49A000","region":null}]},{"id":"6c99312a-1a37-4db8-994d-40d4d98d8930","directory":"calculation-castle-grecos-ghostly-challenge-subtraction","title":"Calculation Castle : Greco's Ghostly Challenge \"Subtraction \"","compatibility":99,"releases":[{"id":"0100A6500B176000","region":null}]},{"id":"6ca2df1f-be97-405d-850c-20a988d7b6d2","directory":"spy-chameleon","title":"Spy Chameleon","compatibility":99,"releases":[{"id":"0100662008632000","region":null}]},{"id":"6ca62f11-16d5-47ea-94e3-7c4c8907c350","directory":"aca-neogeo-ragnagard","title":"ACA NEOGEO RAGNAGARD","compatibility":5,"releases":[{"id":"010006300AFCE000","region":null}]},{"id":"6cb33b8d-d0ea-4d27-8d3c-4c2b7610d527","directory":"puzzle-9","title":"Puzzle 9","compatibility":99,"releases":[{"id":"01007E201634C000","region":null}]},{"id":"6cb41d03-66eb-45ba-9f5d-db2ac1901cd4","directory":"toejam-and-earl-back-in-the-groove","title":"ToeJam & Earl: Back in the Groove!","compatibility":2,"releases":[{"id":"0100B5200BB7C000","region":null}]},{"id":"6cb93c0c-eb2d-49d1-9d95-2303f0af9537","directory":"medieval-tower-defense","title":"Medieval Tower Defense","compatibility":99,"releases":[{"id":"01008890162A8000","region":null}]},{"id":"6cba75b7-e292-432b-997a-76610a19e778","directory":"multilevel-parking-driver","title":"Multilevel Parking Driver","compatibility":99,"releases":[{"id":"0100B74015434000","region":null}]},{"id":"6cc4fc75-2c0d-4b1e-b1f5-5f5501e0563f","directory":"battle-planet-judgement-day","title":"Battle Planet - Judgement Day","compatibility":99,"releases":[{"id":"0100D2800EB40000","region":null}]},{"id":"6cd69ed7-fc3f-42f7-8617-8ec47dbcbf08","directory":"big-buck-hunter-arcade","title":"Big Buck Hunter Arcade","compatibility":2,"releases":[{"id":"010062B00A874000","region":null}]},{"id":"6cd8951d-b897-4c41-8565-a4c38d5e8aea","directory":"blaster-master-zero","title":"Blaster Master Zero","compatibility":0,"releases":[{"id":"0100225000FEE000","region":null}]},{"id":"6ce0080d-f925-44b1-872a-a60850a05d87","directory":"zombievital-dg","title":"ZombieVital DG","compatibility":99,"releases":[{"id":"010048F014748000","region":null}]},{"id":"6ce2f536-f131-4678-be27-1827c82288d3","directory":"aca-neogeo-magical-drop-iii","title":"ACA NEOGEO MAGICAL DROP III","compatibility":99,"releases":[{"id":"01008ED008776000","region":null}]},{"id":"6ce6ef38-907a-41d0-a0b6-1749c3c5dd3e","directory":"forgotton-anne","title":"Forgotton Anne","compatibility":1,"releases":[{"id":"010059E00B93C000","region":null}]},{"id":"6ce8088e-0d78-4165-a12a-1a2623256d48","directory":"burnout-paradise-remastered","title":"Burnout™ Paradise Remastered","compatibility":3,"releases":[{"id":"0100DBF01000A000","region":null}]},{"id":"6ce8cc8d-e5d8-4c5b-b409-3799c87b300e","directory":"stern-pinball-arcade","title":"Stern Pinball Arcade","compatibility":5,"releases":[{"id":"0100AE0006474000","region":null}]},{"id":"6cf68278-3381-4553-b531-4e60c4b6e7f8","directory":"puzzle-wall","title":"Puzzle Wall","compatibility":99,"releases":[{"id":"01002C900BF74000","region":null}]},{"id":"6d03f2e2-a610-4aff-8b10-59207313bb8b","directory":"grand-prix-story","title":"Grand Prix Story","compatibility":1,"releases":[{"id":"0100BE600D07A000","region":null}]},{"id":"6d24e957-17ae-4ac5-8835-098e1c824be2","directory":"my-girlfriend-is-a-mermaid","title":"My Girlfriend is a Mermaid!?","compatibility":99,"releases":[{"id":"01000D700BE88000","region":null}]},{"id":"6d260671-e075-45ae-855e-128d5e74c1e4","directory":"dead-in-vinland-true-viking-edition","title":"Dead in Vinland - True Viking edition","compatibility":99,"releases":[{"id":"010005400E394000","region":null}]},{"id":"6d27f273-25b4-43e9-90eb-cc99de2cb873","directory":"trine-4-the-nightmare-prince","title":"Trine 4: The Nightmare Prince","compatibility":5,"releases":[{"id":"010055E00CA68000","region":null}]},{"id":"6d2ad664-0aa0-479a-a408-9c21add25ab3","directory":"swarmriders","title":"SWARMRIDERS","compatibility":99,"releases":[{"id":"0100E7001210C000","region":null}]},{"id":"6d34035e-0332-4dc8-98eb-268224b4c0f2","directory":"luna-the-shadow-dust","title":"LUNA The Shadow Dust","compatibility":1,"releases":[{"id":"0100B950129DC000","region":null}]},{"id":"6d3b4b59-0ec1-44fa-8b48-98e757cdd291","directory":"murder-mystery-machine","title":"Murder Mystery Machine","compatibility":0,"releases":[{"id":"01006C4014720000","region":null}]},{"id":"6d44ca13-7118-48a2-9042-ebbd6cc43dfd","directory":"labyrinth-of-the-witch","title":"Labyrinth of the Witch","compatibility":1,"releases":[{"id":"010022D0089AE000","region":null}]},{"id":"6d46d9f1-16ff-40fd-9bc7-17ed6e409d79","directory":"the-station","title":"The Station","compatibility":0,"releases":[{"id":"010007F00AF56000","region":null}]},{"id":"6d49c737-8965-411e-8886-1403b323a92d","directory":"the-hong-kong-massacre","title":"The Hong Kong Massacre","compatibility":99,"releases":[{"id":"01001950137D8000","region":null}]},{"id":"6d4d32cb-a579-4644-a2ee-36344ffd018e","directory":"aca-neogeo-aggressors-of-dark-kombat","title":"ACA NEOGEO AGGRESSORS OF DARK KOMBAT","compatibility":4,"releases":[{"id":"0100B4800AFBA000","region":null}]},{"id":"6d4fcaa2-e182-444d-bca7-1438c7e7cc73","directory":"knockout-city","title":"Knockout City™","compatibility":5,"releases":[{"id":"01009EF00DDB4000","region":null}]},{"id":"6d59d933-2220-4875-8ec5-b66ac2642020","directory":"hyperlight-ultimate","title":"Hyperlight Ultimate","compatibility":99,"releases":[{"id":"0100F4C00D958000","region":null}]},{"id":"6d62ab9d-ba30-41b1-b019-eb4e148ca717","directory":"nelly-cootalot-the-fowl-fleet","title":"Nelly Cootalot: The Fowl Fleet","compatibility":99,"releases":[{"id":"01005F000B784000","region":null}]},{"id":"6d701f4e-727c-4d9c-8755-d0c913468daa","directory":"reknum-cheri-dreamland","title":"Reknum Cheri Dreamland","compatibility":99,"releases":[{"id":"01005320144BC000","region":null}]},{"id":"6d7ca98d-abdc-44d6-bcbb-5d8db73a4dce","directory":"speedway-heroes","title":"Speedway Heroes","compatibility":1,"releases":[{"id":"01006CC015D12000","region":null}]},{"id":"6d90e561-bd30-412e-8365-f94797adf643","directory":"layers-of-fear-2","title":"Layers of Fear 2","compatibility":99,"releases":[{"id":"01001730144DA000","region":null}]},{"id":"6d933545-52c2-4bb7-affb-6c7baeef91c4","directory":"mazm-jekyll-and-hyde","title":"MazM: Jekyll and Hyde","compatibility":0,"releases":[{"id":"0100BF001091E000","region":null}]},{"id":"6da2370e-f19c-4795-bce6-f5a9bcd511ae","directory":"kadobat-wars","title":"KADOBAT WARS","compatibility":99,"releases":[{"id":"01000A800ADEE000","region":null}]},{"id":"6da2b68d-741d-494d-bb5e-e0c8099de1a7","directory":"explosive-jake","title":"Explosive Jake","compatibility":99,"releases":[{"id":"01009B7010B42000","region":null}]},{"id":"6da4df37-ba7b-47b2-a66f-d966d7b54185","directory":"okunoka-madness","title":"OkunoKA Madness","compatibility":99,"releases":[{"id":"0100907011392000","region":null}]},{"id":"6da7c406-253a-4246-9ebf-0b6c99d79826","directory":"stencil-art","title":"Stencil Art","compatibility":99,"releases":[{"id":"01008DB013114000","region":null}]},{"id":"6db167bc-9f06-4f6c-8977-a0971454920e","directory":"dungeon-limbus","title":"Dungeon Limbus","compatibility":99,"releases":[{"id":"0100CAB012FCC000","region":null}]},{"id":"6dbfe5f3-f1c6-440a-8212-6263934e103c","directory":"my-little-dog-adventure","title":"My Little Dog Adventure","compatibility":99,"releases":[{"id":"0100872012B34000","region":null}]},{"id":"6dc6cfd2-ec4e-47f1-906b-0f2eb9337281","directory":"rogue-robots","title":"Rogue Robots","compatibility":1,"releases":[{"id":"0100F3B010F56000","region":null}]},{"id":"6dc7c6da-ec24-48c1-bf8b-405b067e37b9","directory":"aca-neogeo-sengoku-3","title":"ACA NEOGEO SENGOKU 3","compatibility":4,"releases":[{"id":"01008D000877C000","region":null}]},{"id":"6dd9736b-ce0b-43b9-a7b3-8095c8e30d2d","directory":"oneiros","title":"Oneiros","compatibility":99,"releases":[{"id":"0100463013246000","region":null}]},{"id":"6dfd08b2-7acd-421e-95dd-eb0ec46c3101","directory":"aca-neogeo-puzzled","title":"ACA NEOGEO PUZZLED","compatibility":1,"releases":[{"id":"0100A290038F8000","region":null}]},{"id":"6e02672f-25b5-4952-bc54-963a24cb4e08","directory":"redeemer-enhanced-edition","title":"Redeemer: Enhanced Edition","compatibility":4,"releases":[{"id":"01000D100DCF8000","region":null}]},{"id":"6e03b5e0-6a65-4d85-98fd-3323506c547e","directory":"ori-and-the-will-of-the-wisps","title":"Ori and the Will of the Wisps","compatibility":1,"releases":[{"id":"01008DD013200000","region":null}]},{"id":"6e0d0b40-319b-41dc-ad5c-1a920c25c2b5","directory":"boxboy-boxgirl-demo","title":"BOXBOY! + BOXGIRL!™ Demo","compatibility":99,"releases":[{"id":"0100B7200E02E000","region":null}]},{"id":"6e2777e2-f6ec-4a37-900f-428108143296","directory":"batu-ta-batu","title":"Batu Ta Batu","compatibility":99,"releases":[{"id":"0100E2F011DE8000","region":null}]},{"id":"6e2f638f-1c39-4ea5-a696-3727e5be9d11","directory":"chicken-range","title":"Chicken Range","compatibility":2,"releases":[{"id":"0100F6C00A016000","region":null}]},{"id":"6e33831f-c307-4227-82e5-e4dc4869f272","directory":"esport-manager","title":"ESport Manager","compatibility":99,"releases":[{"id":"010029C00D768000","region":null}]},{"id":"6e350026-2f10-40ba-a00d-03a06bade192","directory":"klang-2","title":"Klang 2","compatibility":99,"releases":[{"id":"010074D0111C4000","region":null}]},{"id":"6e351211-c229-498c-89a0-e71b639099e9","directory":"synergia","title":"Synergia","compatibility":99,"releases":[{"id":"01009E700F448000","region":null}]},{"id":"6e4be8cf-595b-4f3e-9e8a-07f5d383f089","directory":"blazblue-cross-tag-battle","title":"BLAZBLUE CROSS TAG BATTLE","compatibility":0,"releases":[{"id":"0100B61008208000","region":null}]},{"id":"6e64c242-ac65-4927-8485-53fe4cc5b189","directory":"future-aero-racing-s-ultra","title":"Future Aero Racing S Ultra","compatibility":99,"releases":[{"id":"0100A98010E40000","region":null}]},{"id":"6e67c301-eaca-4818-9560-ed5e93613ee5","directory":"barry-bradfords-putt-panic-party","title":"Barry Bradford's Putt Panic Party","compatibility":99,"releases":[{"id":"0100FB000EB96000","region":null}]},{"id":"6e6b81cd-4abf-4973-af22-52e0782ecec3","directory":"air-conflicts-pacific-carriers","title":"Air Conflicts: Pacific Carriers","compatibility":4,"releases":[{"id":"0100C7600C7D6000","region":null}]},{"id":"6e7f6b86-9f7f-41ce-b8dd-9db77d890fdc","directory":"the-secret-order-return-to-the-buried-kingdom","title":"The Secret Order: Return to the Buried Kingdom","compatibility":99,"releases":[{"id":"0100971012B4E000","region":null}]},{"id":"6e92fa90-fcff-44dd-864e-aa0c8ac2cf95","directory":"jcb-pioneer-mars","title":"JCB Pioneer: Mars","compatibility":99,"releases":[{"id":"0100841008BDE000","region":null}]},{"id":"6e93e94c-901f-4275-9b81-e4fee3d5011b","directory":"the-turing-test","title":"The Turing Test","compatibility":4,"releases":[{"id":"0100EA100F516000","region":null}]},{"id":"6ea6b6f5-f923-4f56-91bd-98cd4d8fe9af","directory":"arms","title":"ARMS","compatibility":0,"releases":[{"id":"01009B500007C000","region":null}]},{"id":"6eaacc43-bbbe-44e4-87ed-380a05d0754a","directory":"deathstate-abyssal-edition","title":"Deathstate : Abyssal Edition","compatibility":99,"releases":[{"id":"0100F9C0078CC000","region":null}]},{"id":"6eb451fb-49b9-4795-963b-10566edb2040","directory":"crashn-the-boys-street-challenge","title":"Crash'n the Boys Street Challenge","compatibility":99,"releases":[{"id":"01008B000E494000","region":null}]},{"id":"6eb7072a-7775-4a74-b26f-b5b806c7e9b7","directory":"aca-neogeo-magical-drop-ii","title":"ACA NEOGEO MAGICAL DROP II","compatibility":4,"releases":[{"id":"0100A050038F2000","region":null}]},{"id":"6eb728b8-e52e-4b42-9b6d-2ca298ada573","directory":"lost-in-random","title":"Lost in Random™","compatibility":99,"releases":[{"id":"01005FE01291A000","region":null}]},{"id":"6ec77cb0-2e32-4160-8d73-0d96f9fa0147","directory":"forever-forest","title":"Forever Forest","compatibility":99,"releases":[{"id":"01007CD00BCE2000","region":null}]},{"id":"6edc6792-9ce2-4dc5-ae77-10615af90d9b","directory":"lost-orbit-terminal-velocity","title":"LOST ORBIT: Terminal Velocity","compatibility":99,"releases":[{"id":"010054600AC74000","region":null}]},{"id":"6edd29b7-35cc-40ff-8522-517af556f8ba","directory":"yaga","title":"Yaga","compatibility":99,"releases":[{"id":"01006FB00DB02000","region":null}]},{"id":"6ee29fb9-2190-4b61-bdfe-a8bae122b999","directory":"zombie-blast-crew","title":"Zombie Blast Crew","compatibility":99,"releases":[{"id":"0100B610138F8000","region":null}]},{"id":"6eec85b2-9b14-46af-9210-70e7574da146","directory":"youtubers-life-2","title":"Youtubers Life 2","compatibility":99,"releases":[{"id":"01004DE013EDE000","region":null}]},{"id":"6eeec8be-e9c8-4f49-bdd9-50e90e63c02d","directory":"crocs-world-run","title":"Croc's World Run","compatibility":99,"releases":[{"id":"0100EC400D712000","region":null}]},{"id":"6ef212e9-9dbc-4d07-a463-9a8b570ef927","directory":"tachyon-project","title":"Tachyon Project","compatibility":99,"releases":[{"id":"010087E006E6E000","region":null}]},{"id":"6efe4d0b-c853-4e7d-98b9-8c849f87346e","directory":"boom-ball-boost-edition","title":"Boom Ball: Boost Edition","compatibility":99,"releases":[{"id":"01009FA00A570000","region":null}]},{"id":"6f190c5e-31a4-4e63-bdca-9a0e593a7275","directory":"animal-crossing-new-horizons","title":"Animal Crossing: New Horizons","compatibility":1,"releases":[{"id":"01006F8002326000","region":null}]},{"id":"6f1c9f70-67e1-4299-9fcb-b4701d0b0588","directory":"monster-blast","title":"Monster Blast","compatibility":5,"releases":[{"id":"0100E2D0128E6000","region":null}]},{"id":"6f2038a1-4a27-47b9-a07d-1d30971db6a2","directory":"akuarium","title":"Akuarium","compatibility":99,"releases":[{"id":"0100D4C00EE0C000","region":null}]},{"id":"6f2b6099-5e64-4c0e-8624-2b7b02d4faa3","directory":"cybxus-hearts","title":"Cybxus Hearts","compatibility":1,"releases":[{"id":"01006B9013672000","region":null}]},{"id":"6f34345a-a6a2-425d-a72b-32f039a475c9","directory":"octogeddon","title":"Octogeddon","compatibility":99,"releases":[{"id":"0100E6E00AF44000","region":null}]},{"id":"6f3aabe7-8b59-4171-9d46-74f9b6de976a","directory":"mages-of-mystralia","title":"Mages of Mystralia","compatibility":99,"releases":[{"id":"0100549008C9C000","region":null}]},{"id":"6f3bed75-3ced-4c8a-9e2d-5fa49dc609e7","directory":"to-the-moon","title":"To the Moon","compatibility":2,"releases":[{"id":"010036700F83E000","region":null}]},{"id":"6f430252-6acd-469a-a075-9e4efbc3c38b","directory":"earth-marines","title":"Earth Marines","compatibility":99,"releases":[{"id":"0100AB4015D1A000","region":null}]},{"id":"6f5589c2-6221-4134-acb7-7826f0107aa7","directory":"aca-neogeo-baseball-stars-2","title":"ACA NEOGEO BASEBALL STARS 2","compatibility":99,"releases":[{"id":"0100B0B00A8C2000","region":null}]},{"id":"6f5bd7b3-6dec-48dc-9f9e-7277c0fd1961","directory":"candy-2048-challenge","title":"Candy 2048 Challenge","compatibility":99,"releases":[{"id":"0100D6B012DE8000","region":null}]},{"id":"6f5becf2-2558-404b-b2e4-b193814121f6","directory":"the-enigma-machine","title":"The Enigma Machine","compatibility":99,"releases":[{"id":"0100D06016B7E000","region":null}]},{"id":"6f6165f3-a856-4f82-8de6-9fa98d3d403a","directory":"perfect-angle","title":"Perfect Angle","compatibility":99,"releases":[{"id":"010089F00A3B4000","region":null}]},{"id":"6f65bc93-e216-4067-b952-379ff59cfe92","directory":"eagletalon-vs-horde-of-the-flies","title":"EAGLETALON vs. HORDE OF THE FLIES","compatibility":99,"releases":[{"id":"0100D45010F16000","region":null}]},{"id":"6f6c225f-556e-4b2f-a691-ac17693a72fd","directory":"connect-bricks","title":"Connect Bricks","compatibility":99,"releases":[{"id":"0100A32014912000","region":null}]},{"id":"6f733465-a060-48f3-96d2-7021263b21b0","directory":"zombie-watch","title":"Zombie Watch","compatibility":99,"releases":[{"id":"0100C88016CF6000","region":null}]},{"id":"6f7559d2-b3df-4cb3-8e48-185b4c20553e","directory":"distrust","title":"Distrust","compatibility":99,"releases":[{"id":"01002F300D9CE000","region":null}]},{"id":"6f83b026-f443-416b-98df-612903c60c96","directory":"eat-beat-deadspike-san-demo","title":"EAT BEAT DEADSPIKE-san Demo","compatibility":99,"releases":[{"id":"0100BEA0096CE000","region":null}]},{"id":"6f8ae4cf-7318-48e8-bdd3-1dad1854e87a","directory":"aca-neogeo-blazing-star","title":"ACA NEOGEO BLAZING STAR","compatibility":1,"releases":[{"id":"0100DFC003398000","region":null}]},{"id":"6f8fe791-207a-441d-a2cc-6c8102b789c0","directory":"mace-tower-defense","title":"M.A.C.E. Tower Defense","compatibility":4,"releases":[{"id":"010032800F038000","region":null}]},{"id":"6f9a12d4-0d48-4fb7-ac2f-c46ef027d0ad","directory":"destropolis","title":"Destropolis","compatibility":99,"releases":[{"id":"010017D0130C4000","region":null}]},{"id":"6f9b7e8a-4872-47ec-825e-f0263fd27805","directory":"la-mulana","title":"LA-MULANA","compatibility":5,"releases":[{"id":"010026000F662000","region":null}]},{"id":"6fa2ff13-0961-4a29-b537-df1d11c94819","directory":"firefighters-the-simulation","title":"Firefighters – The Simulation","compatibility":4,"releases":[{"id":"0100434003C58000","region":null}]},{"id":"6fa990e8-e1f4-4078-a042-acfb2aa8b358","directory":"your-toy","title":"Your Toy","compatibility":0,"releases":[{"id":"010071800B4B2000","region":null}]},{"id":"6fa99ea4-7f58-4c7b-82e7-3e3449a242f9","directory":"198x","title":"198X","compatibility":0,"releases":[{"id":"01007BB00FC8A000","region":null}]},{"id":"6fbd215c-ef76-4c99-af1f-c64342d7fc3c","directory":"sir-tincan-adventures-in-the-castle","title":"Sir Tincan - Adventures in the Castle","compatibility":99,"releases":[{"id":"0100A78011974000","region":null}]},{"id":"6fc13882-3472-4001-aa48-44ccf3f00204","directory":"creepy-balls","title":"Creepy Balls","compatibility":99,"releases":[{"id":"0100EA0016F1C000","region":null}]},{"id":"6fcf8029-d333-4567-aa03-f79fe914f6c6","directory":"earth-wars","title":"EARTH WARS","compatibility":1,"releases":[{"id":"01009B7006C88000","region":null}]},{"id":"6fe21370-f04b-435a-ae04-4599f5e50738","directory":"toolboy","title":"Toolboy","compatibility":99,"releases":[{"id":"0100B55012216000","region":null}]},{"id":"6fecab9b-80bb-495a-ac00-81a648c586fb","directory":"snooker-19","title":"Snooker 19","compatibility":4,"releases":[{"id":"01008DA00CBBA000","region":null}]},{"id":"6ff089b3-2c0e-40d6-91ec-482da2f16fc5","directory":"animal-bomber","title":"Animal Bomber","compatibility":4,"releases":[{"id":"01000030146BE000","region":null}]},{"id":"6ff16485-6a02-4c13-b73e-15a0c24a7f36","directory":"labyrinth-legend","title":"Labyrinth Legend","compatibility":99,"releases":[{"id":"0100A4001573C000","region":null}]},{"id":"6ff292df-24fe-4b25-812a-27b91e9a6d2b","directory":"minesweeper-genius","title":"Minesweeper Genius","compatibility":99,"releases":[{"id":"010000500B9F4000","region":null}]},{"id":"6ff3c46e-4482-4d0a-8adc-0f032166bc4a","directory":"desktop-basketball","title":"Desktop Basketball","compatibility":99,"releases":[{"id":"010019601144E000","region":null}]},{"id":"6ff8807f-9a2c-45d2-a1de-e287e106fe88","directory":"bus-fix-2019","title":"Bus Fix 2019","compatibility":99,"releases":[{"id":"0100F8300E864000","region":null}]},{"id":"6ffb12d6-8b4e-48a9-8194-f1fe6c9ee7b4","directory":"risk-system","title":"Risk System","compatibility":99,"releases":[{"id":"01007D90101F8000","region":null}]},{"id":"6fff9111-7b1e-4681-984b-ff5cda9f3537","directory":"demon-hunter-riddles-of-light","title":"Demon Hunter: Riddles of Light","compatibility":99,"releases":[{"id":"01002C5015EFE000","region":null}]},{"id":"7006d101-20c8-4d1f-8004-ac8936ad214a","directory":"glittering-sword","title":"Glittering Sword","compatibility":5,"releases":[{"id":"0100230013D0C000","region":null}]},{"id":"7007baec-bebc-4aed-b4f9-6d8798537c60","directory":"damaged-in-transit","title":"Damaged In Transit","compatibility":99,"releases":[{"id":"010059400E2FC000","region":null}]},{"id":"700ce8af-c941-4948-a17a-79ca03a14fbe","directory":"gods-remastered","title":"GODS Remastered","compatibility":1,"releases":[{"id":"0100BAA00AE16000","region":null}]},{"id":"701e5564-ccc2-420a-8bae-06c107388e28","directory":"blade-strangers","title":"Blade Strangers","compatibility":3,"releases":[{"id":"01005950022EC000","region":null}]},{"id":"70224e70-4d81-4fd9-8dc2-3c8629f4c01d","directory":"ohsir-the-insult-simulator","title":"Oh...Sir! The Insult Simulator","compatibility":99,"releases":[{"id":"0100782005A44000","region":null}]},{"id":"7023b0b2-b7ff-40fb-a312-f4c866768588","directory":"mad-tower-tycoon","title":"Mad Tower Tycoon","compatibility":99,"releases":[{"id":"0100C5F012A3C000","region":null}]},{"id":"702ad4ae-13b8-4e85-bc8d-f65cda2b065b","directory":"solitaire","title":"Solitaire","compatibility":99,"releases":[{"id":"0100A2E00B8EC000","region":null}]},{"id":"70347577-17b5-4d88-9798-c487b6aa7d48","directory":"halloween-jigsaw-puzzles-puzzle-game-for-kids-toddlers","title":"Halloween Jigsaw Puzzles - Puzzle Game for Kids & Toddlers","compatibility":99,"releases":[{"id":"01004C70167C8000","region":null}]},{"id":"703b20ff-7fcc-4ba9-8f9e-cf7b83acf9d1","directory":"torquel-physics-modified-edition-","title":"TorqueL -Physics Modified Edition-","compatibility":99,"releases":[{"id":"0100D0B0093D8000","region":null}]},{"id":"703ee114-36a5-41df-8bdf-f5a15696f76f","directory":"redout","title":"Redout","compatibility":0,"releases":[{"id":"0100DA20021D0000","region":null}]},{"id":"703f65f3-38e3-4224-9346-75ab2dff80f6","directory":"monster-loves-you","title":"Monster Loves You","compatibility":99,"releases":[{"id":"0100B7700BB7A000","region":null}]},{"id":"703ff038-ba87-48fb-986e-fa49fd2b65cb","directory":"chess","title":"Chess","compatibility":0,"releases":[{"id":"010088801200A000","region":null}]},{"id":"705c4c8d-f2fb-4cc5-a87b-44c60c6ebef8","directory":"marooners","title":"Marooners","compatibility":99,"releases":[{"id":"010044600FDF0000","region":null}]},{"id":"70635b97-151e-408c-b768-a3d7bd20385f","directory":"bug-academy","title":"Bug Academy","compatibility":99,"releases":[{"id":"01005CD011474000","region":null}]},{"id":"70642d4e-f357-49f9-a584-3c4c8835b428","directory":"spinch","title":"Spinch","compatibility":99,"releases":[{"id":"010076D0122A8000","region":null}]},{"id":"708aa1a3-c610-4049-92f2-b575b05dde4f","directory":"juicy-realm","title":"Juicy Realm","compatibility":99,"releases":[{"id":"0100C7600F654000","region":null}]},{"id":"708eca76-7bd9-48b6-b6a4-b1bc1f0c3204","directory":"bot-vinnik-chess","title":"BOT.vinnik Chess","compatibility":99,"releases":[{"id":"010018A01514E000","region":null}]},{"id":"709c3ffd-7d5f-48fe-9edb-78fd39d2ddeb","directory":"iconoclasts","title":"Iconoclasts","compatibility":1,"releases":[{"id":"0100BC60099FE000","region":null}]},{"id":"70a98fe8-7b4a-48a5-81d3-48366769f9c2","directory":"shadow-gangs","title":"Shadow Gangs","compatibility":4,"releases":[{"id":"0100BE501382A000","region":null}]},{"id":"70af6b2d-fe30-4086-be41-3e49e858eee7","directory":"halloween-snowball-bubble","title":"Halloween Snowball Bubble","compatibility":99,"releases":[{"id":"01007B6016018000","region":null}]},{"id":"70b453b5-33e9-4905-b943-878622b8c126","directory":"darkestville-castle","title":"Darkestville Castle","compatibility":99,"releases":[{"id":"0100184011918000","region":null}]},{"id":"70b5de1d-3c90-4b6b-bf9e-9b4d4dc650ed","directory":"aca-neogeo-waku-waku-7","title":"ACA NEOGEO WAKU WAKU 7","compatibility":4,"releases":[{"id":"0100CEF001DC0000","region":null}]},{"id":"70ba7a66-1827-4aa0-914a-0638f7da9103","directory":"legend-of-keepers-career-of-a-dungeon-manager","title":"Legend of Keepers: Career of a Dungeon Manager","compatibility":99,"releases":[{"id":"0100C67015076000","region":null}]},{"id":"70c9b9a6-6e19-421f-aef9-e80df58992dd","directory":"xenoblade-chronicles-definitive-edition","title":"Xenoblade Chronicles™ Definitive Edition","compatibility":1,"releases":[{"id":"0100FF500E34A000","region":null}]},{"id":"70c9ff67-4432-4ac0-8566-2a3a1aaf4b90","directory":"9th-dawn-iii","title":"9th Dawn III","compatibility":0,"releases":[{"id":"0100DB00117BA000","region":null}]},{"id":"70d20390-c0f9-40b3-bd0f-7e427439719c","directory":"overlanders","title":"Overlanders","compatibility":3,"releases":[{"id":"0100D7F00EC64000","region":null}]},{"id":"70e094b8-71da-4905-a75e-79e98f56571e","directory":"piofiore-fated-memories","title":"Piofiore: Fated Memories","compatibility":0,"releases":[{"id":"01009240117A2000","region":null}]},{"id":"70eb9161-e6d7-4ea9-ab45-99c56223c7b2","directory":"alwas-awakening","title":"Alwa's Awakening","compatibility":0,"releases":[{"id":"01004C200B0B4000","region":null}]},{"id":"70f826d2-8739-4ffa-9c0a-1f801cd8a71f","directory":"quell-memento","title":"Quell Memento","compatibility":99,"releases":[{"id":"0100D1201183A000","region":null}]},{"id":"70fa2068-8a74-4841-b057-fe06480ccbad","directory":"baldurs-gate-and-baldurs-gate-ii-enhanced-editions","title":"Baldur's Gate and Baldur's Gate II: Enhanced Editions","compatibility":3,"releases":[{"id":"010010A00DA48000","region":null}]},{"id":"70fa39c5-b1c3-4a7f-875d-1ba019312465","directory":"curious-expedition","title":"Curious Expedition","compatibility":0,"releases":[{"id":"010079500E0DA000","region":null}]},{"id":"70fb815b-4052-4f36-9cff-b844d082cefe","directory":"orbitblazers","title":"Orbitblazers","compatibility":0,"releases":[{"id":"010061100FA8E000","region":null}]},{"id":"71156b37-b4ee-48d2-b464-5721b79d4914","directory":"timberman-vs-demo","title":"Timberman VS Demo","compatibility":99,"releases":[{"id":"010038400CADC000","region":null}]},{"id":"71172686-7fdb-4b2c-b76d-e3c75d5dd8f9","directory":"hocus-2","title":"hocus 2","compatibility":99,"releases":[{"id":"010068400EDF6000","region":null}]},{"id":"7131918d-3c04-44d7-bee4-8750f10f001e","directory":"aces-of-the-luftwaffe-squadron","title":"Aces of the Luftwaffe - Squadron","compatibility":1,"releases":[{"id":"0100B28003440000","region":null}]},{"id":"7131946c-014c-4d56-96e8-0a374a403bf4","directory":"clea-2","title":"Clea 2","compatibility":0,"releases":[{"id":"010045E0142A4000","region":null}]},{"id":"71399b17-d4ab-40e4-8689-f6873adb32ad","directory":"later-daters","title":"Later Daters","compatibility":99,"releases":[{"id":"01004EB00DACE000","region":null}]},{"id":"713b5660-6fb5-444e-a5bd-61e20053bb7e","directory":"adventure-llama","title":"Adventure Llama","compatibility":99,"releases":[{"id":"010014B0130F2000","region":null}]},{"id":"7143e845-d091-494f-9a88-fa814adf1e8e","directory":"singled-out","title":"Singled Out","compatibility":0,"releases":[{"id":"0100F10012002000","region":null}]},{"id":"716ab6d6-c9b4-4238-ba1e-e5e7861d502c","directory":"wintermoor-tactics-club","title":"Wintermoor Tactics Club","compatibility":99,"releases":[{"id":"0100C2000F468000","region":null}]},{"id":"717f967c-f1a5-49db-8d1a-72dddc30c703","directory":"shopping-mall-parking-lot","title":"Shopping Mall Parking Lot","compatibility":99,"releases":[{"id":"01008030155B4000","region":null}]},{"id":"7186282a-3109-4a11-99fc-cb8c2e676f99","directory":"chaos-on-deponia","title":"Chaos on Deponia","compatibility":3,"releases":[{"id":"01002C900C9AC000","region":null}]},{"id":"718da66c-88ce-48f3-9a6e-2d9c7d87c11c","directory":"detective-driver-miami-files","title":"Detective Driver: Miami Files","compatibility":99,"releases":[{"id":"01007CB0128B2000","region":null}]},{"id":"71a6a771-64ce-4d10-8cf0-0e7c03637b3f","directory":"super-pixel-racers","title":"Super Pixel Racers","compatibility":1,"releases":[{"id":"0100F5100E9DE000","region":null}]},{"id":"71ad58cb-ecd6-4b13-8d3a-da1f38002694","directory":"hextech-mayhem-a-league-of-legends-story","title":"Hextech Mayhem: A League of Legends Story™","compatibility":99,"releases":[{"id":"01007A9015620000","region":null}]},{"id":"71bc3bfe-e29f-4528-8f8f-a0a6549c2cb1","directory":"clustertruck","title":"Clustertruck","compatibility":2,"releases":[{"id":"010096900A4D2000","region":null}]},{"id":"71bfecf6-144b-458a-a06f-d66b0073c961","directory":"lego-the-incredibles","title":"LEGO The Incredibles","compatibility":3,"releases":[{"id":"0100A01006E00000","region":null}]},{"id":"71c3ce5a-bf94-428b-9f22-03d5b94b4b06","directory":"trybit-logic","title":"TRYBIT LOGIC","compatibility":99,"releases":[{"id":"0100DFA00C6A6000","region":null}]},{"id":"71c46ca5-1f6e-4809-b315-0bf775c3540f","directory":"color-jumper","title":"Color Jumper","compatibility":99,"releases":[{"id":"01003BC00FBAA000","region":null}]},{"id":"71d0afb9-c594-4ffe-85ff-3885f544ee5e","directory":"egg-up","title":"Egg Up","compatibility":99,"releases":[{"id":"010046401595E000","region":null}]},{"id":"71f930b2-40f6-4932-b55c-2b85209553ad","directory":"one-dog-story","title":"One Dog Story","compatibility":1,"releases":[{"id":"01009C301061A000","region":null}]},{"id":"720c7dff-b4c5-456c-8ea3-7685b8737836","directory":"final-light-the-prison","title":"Final Light, The Prison","compatibility":99,"releases":[{"id":"01001BA00AE4E000","region":null}]},{"id":"721c78ff-e021-4a14-b2e8-7fde6672cb69","directory":"drift-zone-arcade","title":"Drift Zone Arcade","compatibility":99,"releases":[{"id":"0100C2200E0F2000","region":null}]},{"id":"722c041e-18f7-46a6-94bc-c34e87dfbf33","directory":"green-hell","title":"Green Hell","compatibility":99,"releases":[{"id":"0100453012FEA000","region":null}]},{"id":"72391b2d-9c88-4a59-a983-ac161cdd3b8e","directory":"battlezone-gold-edition","title":"Battlezone Gold Edition","compatibility":1,"releases":[{"id":"01006D800A988000","region":null}]},{"id":"7246dcea-f4bc-45c9-a50c-d961a5549642","directory":"super-sports-blast","title":"Super Sports Blast","compatibility":99,"releases":[{"id":"0100829013996000","region":null}]},{"id":"7251f728-059f-45db-a3a5-2fee498c3328","directory":"mary-skelter-2","title":"Mary Skelter 2","compatibility":1,"releases":[{"id":"01003DE00C95E000","region":null}]},{"id":"725567c4-7327-4857-98b2-9a6de7268ec3","directory":"slinki","title":"Slinki","compatibility":99,"releases":[{"id":"0100A4A0129BC000","region":null}]},{"id":"725cdf8f-655e-45b6-ac95-f1e6c55da279","directory":"mystik-belle-enchanted-edition","title":"Mystik Belle Enchanted Edition","compatibility":99,"releases":[{"id":"0100FFB015C6E000","region":null}]},{"id":"7260f944-3db0-439d-af8b-4d41a6f44ca4","directory":"immortal-redneck","title":"Immortal Redneck","compatibility":99,"releases":[{"id":"01000F400435A000","region":null}]},{"id":"72737cbf-156f-4890-9e1e-424401010985","directory":"sudoku-universe","title":"Sudoku Universe","compatibility":99,"releases":[{"id":"010093000CB62000","region":null}]},{"id":"7273c7e5-a325-477d-9232-b03526d5fcb4","directory":"blastful","title":"Blastful","compatibility":99,"releases":[{"id":"0100FFD0142D4000","region":null}]},{"id":"72749247-6f6c-4fec-87a5-8ce1dbb2c05c","directory":"hexagroove-tactical-dj","title":"Hexagroove: Tactical DJ","compatibility":99,"releases":[{"id":"010015500E9C0000","region":null}]},{"id":"7276ca87-87ff-4ee6-8533-f5e84febc9df","directory":"aca-neogeo-king-of-the-monsters-2","title":"ACA NEOGEO KING OF THE MONSTERS 2","compatibility":99,"releases":[{"id":"010029D00AFD0000","region":null}]},{"id":"7277111d-fafa-4ec7-aa1f-ce4b65c63fde","directory":"scrap","title":"Scrap","compatibility":99,"releases":[{"id":"0100BB200E9BA000","region":null}]},{"id":"727877b9-a38a-44f6-9a13-fbe75813467c","directory":"leisure-suit-larry-wet-dreams-dry-twice","title":"Leisure Suit Larry - Wet Dreams Dry Twice","compatibility":99,"releases":[{"id":"010031A0135CA000","region":null}]},{"id":"727fa0d1-eae4-4395-b2df-ddd80b67b4ff","directory":"tony-hawks-pro-skater-1-2","title":"Tony Hawk's™ Pro Skater™ 1 + 2","compatibility":1,"releases":[{"id":"0100CC00102B4000","region":null}]},{"id":"72920cf4-6e8d-4b1e-9e8e-2b16412f977f","directory":"sublevel-zero-redux","title":"Sublevel Zero Redux","compatibility":99,"releases":[{"id":"0100E6400BCE8000","region":null}]},{"id":"729306f6-1c43-4455-b8ec-cf7c9d4b5e0d","directory":"arcade-archives-super-cobra","title":"Arcade Archives SUPER COBRA","compatibility":99,"releases":[{"id":"0100929013172000","region":null}]},{"id":"729416c8-1b04-4562-a29c-c0b9b6c1973d","directory":"mountain-rescue-simulator","title":"Mountain Rescue Simulator","compatibility":99,"releases":[{"id":"01009DB00D6E0000","region":null}]},{"id":"72a90cd4-0e1c-4c4b-91f9-2f9dc0820bf9","directory":"retrovamp","title":"Retrovamp","compatibility":99,"releases":[{"id":"01000F10123E2000","region":null}]},{"id":"72a9fe91-6479-49ce-96bc-f0daab90943a","directory":"gates-of-hell","title":"Gates Of Hell","compatibility":99,"releases":[{"id":"0100EA001069E000","region":null}]},{"id":"72ad8ded-448e-4ca1-9396-c439752099e3","directory":"dragon-question","title":"Dragon Question","compatibility":99,"releases":[{"id":"010098E0148D6000","region":null}]},{"id":"72b1b493-e157-4874-b58e-f0e469e157f3","directory":"fred3ric","title":"Fred3ric","compatibility":99,"releases":[{"id":"0100AC40108D8000","region":null}]},{"id":"72c5c41f-c7ec-4f25-a372-c5004d62c663","directory":"alien-cruise","title":"Alien Cruise","compatibility":99,"releases":[{"id":"0100A2E00D0E0000","region":null}]},{"id":"72cf715d-27b6-47eb-8dfb-db6db940b70d","directory":"melty-blood-type-lumina-deluxe-edition","title":"MELTY BLOOD: TYPE LUMINA - Deluxe Edition","compatibility":1,"releases":[{"id":"01001E30126A0000","region":null}]},{"id":"72d305b0-85ec-45d0-ab91-82d084ebb81a","directory":"shu","title":"Shu","compatibility":1,"releases":[{"id":"01001DE0076A4000","region":null}]},{"id":"72e995ae-f1dd-46cb-80b5-9ad683ec1825","directory":"azkend-2-the-world-beneath","title":"Azkend 2: The World Beneath","compatibility":4,"releases":[{"id":"0100EB800868C000","region":null}]},{"id":"72f32d02-3709-4612-8083-d4e39fe0674e","directory":"guitar","title":"Guitar","compatibility":1,"releases":[{"id":"0100A2D00EFBE000","region":null}]},{"id":"72fa9b4c-29b1-454e-a9ca-e29e13605f4e","directory":"vampire-the-masquerade-coteries-of-new-york","title":"Vampire: The Masquerade - Coteries of New York","compatibility":99,"releases":[{"id":"010020C00FFB6000","region":null}]},{"id":"73010328-f9dd-424b-b281-2d58b8344aef","directory":"pokemon-cafe-mix","title":"Pokémon Café Mix","compatibility":3,"releases":[{"id":"010072400E04A000","region":null}]},{"id":"7302a1c3-23d3-4a29-8845-d842958b6bd1","directory":"luxar","title":"Luxar","compatibility":99,"releases":[{"id":"0100EC2011A80000","region":null}]},{"id":"73069258-2d70-4cc6-b6d3-838bbe0e99f5","directory":"bibi-blocksberg-big-broom-race-3","title":"Bibi Blocksberg – Big Broom Race 3","compatibility":99,"releases":[{"id":"01005FF00AF36000","region":null}]},{"id":"730caa81-5c1b-4fbc-aa83-ae8085d23863","directory":"gunman-clive-hd-collection","title":"Gunman Clive HD Collection","compatibility":2,"releases":[{"id":"010061000D318000","region":null}]},{"id":"73200036-b9fb-4533-9204-38fe95d14a42","directory":"overland","title":"Overland","compatibility":99,"releases":[{"id":"01000D200C180000","region":null}]},{"id":"732b640c-e529-473a-ac25-308194a5b578","directory":"shantae-half-genie-hero-ultimate-edition","title":"Shantae: Half- Genie Hero Ultimate Edition","compatibility":1,"releases":[{"id":"01006A200936C000","region":null}]},{"id":"7348c891-e19e-42d0-acfd-6ef1c261ed51","directory":"brigandine-the-legend-of-runersia","title":"BRIGANDINE The Legend of Runersia","compatibility":1,"releases":[{"id":"010011000EA7A000","region":null}]},{"id":"7357c282-dbef-413e-929e-64afda2ac984","directory":"jigsaw-solace","title":"JigSaw Solace","compatibility":99,"releases":[{"id":"01009AF0101CC000","region":null}]},{"id":"736ca318-2d17-44fd-b481-502a1e6cd849","directory":"the-original-mobile-games","title":"The Original Mobile Games","compatibility":99,"releases":[{"id":"010085E00C886000","region":null}]},{"id":"73769c70-22b1-4cd4-a98a-88e66c7b3a46","directory":"highschool-romance","title":"Highschool Romance","compatibility":99,"releases":[{"id":"0100944015F78000","region":null}]},{"id":"7379cabc-b4fb-43ba-93cb-db6f2e360665","directory":"pankapu","title":"Pankapu","compatibility":1,"releases":[{"id":"0100635006C32000","region":null}]},{"id":"7381311c-b57c-4a36-b8ae-ab51f31ea72e","directory":"xmas-super-puzzles-dream","title":"#Xmas, Super Puzzles Dream","compatibility":99,"releases":[{"id":"0100D79013828000","region":null}]},{"id":"7386167e-a488-4c07-8c8b-be873114f725","directory":"asdivine-saga","title":"Asdivine Saga","compatibility":99,"releases":[{"id":"0100B7F015BF2000","region":null}]},{"id":"73887c90-61fb-4259-b370-faf91a0fe8e4","directory":"birthday-of-midnight","title":"Birthday of Midnight","compatibility":99,"releases":[{"id":"01009B0012888000","region":null}]},{"id":"7389350d-9afc-4de0-b400-2941ebf2ee4d","directory":"asdivine-dios","title":"Asdivine Dios","compatibility":5,"releases":[{"id":"010054B00D4A2000","region":null}]},{"id":"73898488-0e04-4647-bc91-9c13ecdc1d38","directory":"galactic-trooper-armada","title":"Galactic Trooper Armada","compatibility":99,"releases":[{"id":"01005F3013E16000","region":null}]},{"id":"7392cfe9-a732-4fdb-bd4e-987ca4d1eb6a","directory":"vertical-strike-endless-challenge","title":"VERTICAL STRIKE ENDLESS CHALLENGE","compatibility":99,"releases":[{"id":"0100CA6009888000","region":null}]},{"id":"739bc33a-8fbc-48ce-a897-6c05706a6e37","directory":"korg-gadget-for-nintendo-switch","title":"KORG Gadget for Nintendo Switch","compatibility":4,"releases":[{"id":"0100EC8004762000","region":null}]},{"id":"739f80aa-7fda-4ee2-a3df-47bff3e2decc","directory":"infestor","title":"Infestor","compatibility":99,"releases":[{"id":"010018A012822000","region":null}]},{"id":"73a84984-4416-4290-9895-efa0b84f7b4b","directory":"bakugan-champions-of-vestroia","title":"Bakugan: Champions of Vestroia","compatibility":1,"releases":[{"id":"0100730011BDC000","region":null}]},{"id":"73dc59f9-fc9e-479d-b056-8dfd5dce126a","directory":"digerati-presents-make-it-quick-bundle-vol-1","title":"Digerati Presents: Make It Quick Bundle Vol. 1","compatibility":99,"releases":[{"id":"0100ABD012EF8000","region":null}]},{"id":"73e343f5-8f9e-4d6e-a29c-dccfdfeba503","directory":"flatland-vol-2","title":"FLATLAND Vol. 2","compatibility":99,"releases":[{"id":"01005F50155BE000","region":null}]},{"id":"73ebb799-c7e6-4ee8-a009-88d87585031f","directory":"tennis-open-2020","title":"Tennis Open 2020","compatibility":99,"releases":[{"id":"0100459011750000","region":null}]},{"id":"73f04c30-8424-4665-b06b-1808adf764a7","directory":"vostok-inc","title":"Vostok Inc.","compatibility":99,"releases":[{"id":"01004D8007368000","region":null}]},{"id":"73f2bf11-8fdc-4d81-8b53-38cac6563540","directory":"rip-them-off","title":"Rip Them Off","compatibility":99,"releases":[{"id":"01004BF013BA0000","region":null}]},{"id":"73f5db74-b5d1-4913-93ab-58b4b9198819","directory":"ember","title":"Ember","compatibility":99,"releases":[{"id":"010041A00FEC6000","region":null}]},{"id":"740d88f3-1181-4429-958d-d03ebdd2cc6d","directory":"arcane-arts-academy","title":"Arcane Arts Academy","compatibility":99,"releases":[{"id":"0100D50014AC4000","region":null}]},{"id":"7413f695-7eb0-46cd-94e7-50f024f835ad","directory":"lone-mclonegan-a-western-adventure","title":"Lone McLonegan : A Western Adventure","compatibility":99,"releases":[{"id":"0100939015968000","region":null}]},{"id":"7423b750-a4af-4e2d-bd70-d4ba1838075a","directory":"invisiballs","title":"Invisiballs","compatibility":99,"releases":[{"id":"0100E03009DB8000","region":null}]},{"id":"742a3fc4-8014-405e-8eb4-fe60d83e7348","directory":"life-is-strange-true-colors","title":"Life is Strange: True Colors™","compatibility":3,"releases":[{"id":"0100500012AB4000","region":null}]},{"id":"7439163d-cf3d-41b4-8b25-3fd99721bad0","directory":"angerforce-reloaded-for-nintendo-switch","title":"AngerForce: Reloaded for Nintendo Switch","compatibility":2,"releases":[{"id":"010001E00A5F6000","region":null}]},{"id":"744a4f76-164e-41b1-9467-73e488c4afe4","directory":"fractured-minds","title":"Fractured Minds","compatibility":99,"releases":[{"id":"01004200099F2000","region":null}]},{"id":"744aa82b-c217-4e07-b832-b98a82ec1580","directory":"hunter-shooting-camp","title":"Hunter Shooting Camp","compatibility":99,"releases":[{"id":"0100A2A01586C000","region":null}]},{"id":"744ed22c-52b2-406c-ae16-5d414277f277","directory":"scrap-garden","title":"Scrap Garden","compatibility":99,"releases":[{"id":"01003DF01568C000","region":null}]},{"id":"745f4d59-d1a3-49e1-bdc8-df2902519d92","directory":"disgaea-6-defiance-of-destiny","title":"Disgaea 6: Defiance of Destiny","compatibility":1,"releases":[{"id":"0100ABC013136000","region":null}]},{"id":"7473dd3b-e875-42a1-8cb9-7f04ae487135","directory":"pixel-game-maker-series-block-slime-cave","title":"Pixel Game Maker Series BLOCK SLIME CAVE","compatibility":99,"releases":[{"id":"0100CCA015740000","region":null}]},{"id":"74874e29-f28c-4450-bd8f-67cff475b03e","directory":"super-dragon-ball-heroes-world-mission-launch-edition","title":"SUPER DRAGON BALL HEROES WORLD MISSION - Launch Edition","compatibility":2,"releases":[{"id":"0100E5E00C464000","region":null}]},{"id":"748dc47d-b385-4a27-8f2e-2dbeb45d3e3c","directory":"ben-10","title":"Ben 10","compatibility":3,"releases":[{"id":"01006E1004404000","region":null}]},{"id":"74943d84-e44a-44d2-bdc9-4055b527a98d","directory":"totally-reliable-delivery-service","title":"Totally Reliable Delivery Service","compatibility":2,"releases":[{"id":"0100512010728000","region":null}]},{"id":"74b1bd91-0975-4b90-8571-ed385205eebe","directory":"lost-lands-ice-spell","title":"Lost Lands: Ice Spell","compatibility":99,"releases":[{"id":"01000030151B0000","region":null}]},{"id":"74dd7f60-2294-456d-8a3c-2a301c6ace2d","directory":"1-sudokus","title":"#1 Sudokus","compatibility":99,"releases":[{"id":"0100CDD016BB0000","region":null}]},{"id":"74dec9aa-5833-48b3-aec6-40cacaefffab","directory":"streets-of-rogue","title":"Streets of Rogue","compatibility":0,"releases":[{"id":"01008CD00C222000","region":null}]},{"id":"74ed300f-e911-42d6-9bb4-d7b96edac4c3","directory":"stick-fight-the-game","title":"Stick Fight: The Game","compatibility":99,"releases":[{"id":"0100622009FB0000","region":null}]},{"id":"74edd582-105f-4276-a24f-a7a26cee6b9d","directory":"sinner-sacrifice-for-redemption","title":"SINNER: Sacrifice for Redemption","compatibility":99,"releases":[{"id":"0100B16009C10000","region":null}]},{"id":"74f63fe8-dc49-4148-8f3f-39e01a837c6a","directory":"barbarous-tavern-of-emyr","title":"Barbarous: Tavern of Emyr","compatibility":3,"releases":[{"id":"01003350102E2000","region":null}]},{"id":"74f9d0be-7e99-494d-a877-bc5b5d84bf47","directory":"johnny-turbos-arcade-super-real-darwin","title":"Johnny Turbo's Arcade: Super Real Darwin","compatibility":99,"releases":[{"id":"0100039002CCC000","region":null}]},{"id":"75142432-cbca-4900-8a50-3128e1f4f380","directory":"minoria","title":"Minoria","compatibility":2,"releases":[{"id":"0100FAE010864000","region":null}]},{"id":"752456af-4e23-4730-9960-b58c1e1d1573","directory":"sling-ming","title":"Sling Ming","compatibility":99,"releases":[{"id":"01000F1008C92000","region":null}]},{"id":"752df41f-4c9b-43d5-b536-ad5dd7e51a37","directory":"demons-crystals","title":"Demon's Crystals","compatibility":99,"releases":[{"id":"0100A2B00BD88000","region":null}]},{"id":"7532088c-8fef-4ca9-ae10-a501483cfc27","directory":"rwby-grimm-eclipse-definitive-edition","title":"RWBY: Grimm Eclipse - Definitive Edition","compatibility":2,"releases":[{"id":"0100E21013908000","region":null}]},{"id":"7534c23f-9f37-4909-901b-82676f6fb2f3","directory":"ghost-sweeper","title":"Ghost Sweeper","compatibility":99,"releases":[{"id":"01004B301108C000","region":null}]},{"id":"753bf546-bb22-4174-a56a-df7573426efe","directory":"planescape-torment-and-icewind-dale-enhanced-editions","title":"Planescape: Torment and Icewind Dale: Enhanced Editions","compatibility":4,"releases":[{"id":"010030B00C316000","region":null}]},{"id":"753e39b1-2895-459b-a9d0-c05662ca2f1b","directory":"stardust-galaxy-warriors-stellar-climax","title":"Stardust Galaxy Warriors: Stellar Climax","compatibility":0,"releases":[{"id":"01001B600BC32000","region":null}]},{"id":"7558134f-3f38-4f92-8fa3-5d9140e1ca47","directory":"ziggy-the-chaser","title":"Ziggy the Chaser","compatibility":99,"releases":[{"id":"0100D7B013DD0000","region":null}]},{"id":"7558cdee-eff9-4222-aff1-55cad928a9f5","directory":"metal-slug-1st-2nd-mission-double-pack","title":"\"METAL SLUG 1st & 2nd MISSION\" Double Pack","compatibility":1,"releases":[{"id":"0100F2B012E62000","region":null}]},{"id":"7559c776-15a9-4713-9c8b-a7e8ef45c40d","directory":"dead-z-meat","title":"Dead Z Meat","compatibility":99,"releases":[{"id":"0100A24011F52000","region":null}]},{"id":"755f4749-1280-4858-98f4-b5ff3078f743","directory":"spirit-arena","title":"Spirit Arena","compatibility":99,"releases":[{"id":"010001B01398C000","region":null}]},{"id":"7569633a-bc6f-485e-8354-066f46b42d2d","directory":"foreclosed","title":"FORECLOSED","compatibility":0,"releases":[{"id":"0100AE001256E000","region":null}]},{"id":"756b2b3c-5e86-4e9c-b79f-bc993fdbbfca","directory":"the-long-reach","title":"The Long Reach","compatibility":4,"releases":[{"id":"010052B003A38000","region":null}]},{"id":"75801358-1334-4b88-b185-b514ed924734","directory":"reason-casual-puzzle","title":"Reason - Casual Puzzle","compatibility":99,"releases":[{"id":"01003AD011E36000","region":null}]},{"id":"759ce230-d96b-4b79-bf6f-9cebd0dd4a43","directory":"bob-help-them","title":"Bob Help Them","compatibility":99,"releases":[{"id":"010081E013F1E000","region":null}]},{"id":"759ef931-54e9-48b2-acb4-1a18c770e061","directory":"unblock-brick","title":"Unblock Brick","compatibility":99,"releases":[{"id":"0100BAD01452C000","region":null}]},{"id":"759f1734-93c1-4193-aebf-3c84ffcd6736","directory":"dogurai","title":"Dogurai","compatibility":0,"releases":[{"id":"010077B0100DA000","region":null}]},{"id":"75a04e0a-ade1-459d-a755-81aa6bb39005","directory":"strike-daz-cans","title":"Strike Daz Cans","compatibility":99,"releases":[{"id":"0100A4B015380000","region":null}]},{"id":"75b841a1-ca83-4d28-a9ec-aa6e053aa4f9","directory":"dirt-bike-insanity","title":"Dirt Bike Insanity","compatibility":99,"releases":[{"id":"0100A8A013DA4000","region":null}]},{"id":"75b8f699-3d33-4fdb-8983-ed92e4cfbae3","directory":"dangerous-relationship","title":"Dangerous Relationship","compatibility":99,"releases":[{"id":"01008680118BA000","region":null}]},{"id":"75bd253c-c94d-4f73-b68d-05139e69bc13","directory":"instant-sports-tennis","title":"INSTANT SPORTS TENNIS","compatibility":99,"releases":[{"id":"010031B0145B8000","region":null}]},{"id":"75bd92b3-3816-460a-a492-8a346f66820b","directory":"resident-evil-6","title":"Resident Evil 6","compatibility":0,"releases":[{"id":"01002A000CD48000","region":null}]},{"id":"75bf33ab-afb1-4499-84f8-7e4f816cba8c","directory":"autobahn-polizei-simulator-2-nintendo-switch-edition","title":"Autobahn Polizei Simulator 2 - Nintendo Switch™ Edition","compatibility":99,"releases":[{"id":"0100913015928000","region":null}]},{"id":"75cda4dc-e3ad-492d-a308-9ae3b15f7953","directory":"cant-drive-this","title":"Can't Drive This","compatibility":1,"releases":[{"id":"0100593008BDC000","region":null}]},{"id":"75da3ba1-2a31-4edb-9942-96834c94df6e","directory":"conglomerate-451-overloaded","title":"Conglomerate 451: Overloaded","compatibility":99,"releases":[{"id":"01008DE0121F4000","region":null}]},{"id":"75dcfc0e-043d-484c-9a66-17983a74095e","directory":"swords-souls-neverseen","title":"Swords & Souls: Neverseen","compatibility":99,"releases":[{"id":"01006B0014CAA000","region":null}]},{"id":"76092898-2eb3-4274-bd9c-35aac4cd5154","directory":"my-friend-peppa-pig","title":"My Friend Peppa Pig","compatibility":1,"releases":[{"id":"01008C9014694000","region":null}]},{"id":"760e2db6-c6a7-4476-9ff6-d2f742dd5b04","directory":"cubicity","title":"Cubicity","compatibility":3,"releases":[{"id":"010040D011D04000","region":null}]},{"id":"7612c37d-7359-4396-aa28-ab190ed1eaa1","directory":"fight","title":"Fight","compatibility":99,"releases":[{"id":"0100995013404000","region":null}]},{"id":"761c6381-c513-4f51-94c3-30e479203806","directory":"sea-king-hunter","title":"Sea King Hunter","compatibility":1,"releases":[{"id":"0100B0C00EBB2000","region":null}]},{"id":"762014e4-38da-485c-b58f-7e3128a8bacf","directory":"inkypen","title":"InkyPen","compatibility":99,"releases":[{"id":"01003A200BD8A000","region":null}]},{"id":"76209785-8504-49fc-9513-f68169ab461d","directory":"toki","title":"Toki","compatibility":1,"releases":[{"id":"0100F3400A432000","region":null}]},{"id":"76257989-c8b7-429c-bb9d-5528e6330ebe","directory":"space-moth-lunar-edition","title":"Space Moth Lunar Edition","compatibility":1,"releases":[{"id":"01005B6015B9E000","region":null}]},{"id":"762bff2b-b6b2-41c0-a317-6e293495b25d","directory":"shovel-knight-shovel-of-hope","title":"Shovel Knight: Shovel of Hope","compatibility":0,"releases":[{"id":"01002D2011850000","region":null}]},{"id":"76384cec-eb70-4209-9c14-a3fe8a6d5982","directory":"godly-corp","title":"Godly Corp","compatibility":1,"releases":[{"id":"010014900D744000","region":null}]},{"id":"76390df2-a963-4b91-a58e-862bb64a4453","directory":"olympia-soiree","title":"Olympia Soirée","compatibility":0,"releases":[{"id":"0100A910143B2000","region":null}]},{"id":"763f1616-a3b6-445d-8ef0-274f68bfe49a","directory":"gotcha-racing-2nd","title":"Gotcha Racing 2nd","compatibility":99,"releases":[{"id":"0100E8D007E16000","region":null}]},{"id":"76417c73-8eb3-4c6d-bac9-e78534ac8d0c","directory":"sega-ages-herzog-zwei","title":"SEGA AGES Herzog Zwei","compatibility":0,"releases":[{"id":"010029900E314000","region":null}]},{"id":"7648c956-fa19-446b-9110-8e5dfba765c3","directory":"hampuzz","title":"Hampuzz","compatibility":99,"releases":[{"id":"0100D85016326000","region":null}]},{"id":"764e2202-0410-4276-9a35-f868ad141920","directory":"puyo-puyo-champions","title":"Puyo Puyo Champions","compatibility":0,"releases":[{"id":"0100AAE00CAB4000","region":null}]},{"id":"765e1ce1-9cd1-45de-a01f-4f9b5f30a15f","directory":"marble-it-up","title":"Marble It Up!","compatibility":2,"releases":[{"id":"0100B5B00693E000","region":null}]},{"id":"76681c81-06e3-477b-a11d-996711fe228d","directory":"oceanhorn-monster-of-uncharted-seas-demo","title":"Oceanhorn - Monster of Uncharted Seas Demo","compatibility":99,"releases":[{"id":"010090B005150000","region":null}]},{"id":"7670f760-7061-4ff6-81e0-5dd3e21372cd","directory":"the-touryst","title":"The Touryst","compatibility":4,"releases":[{"id":"0100C3300D8C4000","region":null}]},{"id":"76740756-f256-4108-ac3e-45ca087adc9c","directory":"lost-lands-mistakes-of-the-past","title":"Lost Lands: Mistakes of the Past","compatibility":99,"releases":[{"id":"01002EE0151C0000","region":null}]},{"id":"7676fcfc-de5f-432d-aab5-06e2a7adb750","directory":"city-of-brass","title":"City of Brass","compatibility":1,"releases":[{"id":"01009BC00B872000","region":null}]},{"id":"767e0369-1265-4b6d-bce7-42e34958fb36","directory":"1979-revolution-black-friday","title":"1979 Revolution: Black Friday","compatibility":1,"releases":[{"id":"0100D1000B18C000","region":null}]},{"id":"768e1e75-dd26-48cd-8639-839371b6b695","directory":"death-squared","title":"Death Squared","compatibility":1,"releases":[{"id":"010085900337E000","region":null}]},{"id":"769b4832-3088-4630-9098-f1c0d7e5c524","directory":"ikenfell","title":"Ikenfell","compatibility":99,"releases":[{"id":"010040900AF46000","region":null}]},{"id":"769cc6f8-fafb-404f-ac74-b8439a362fe8","directory":"mist-hunter","title":"Mist Hunter","compatibility":99,"releases":[{"id":"010059200CC40000","region":null}]},{"id":"769f428f-c1db-43b3-8cca-8cabae016447","directory":"dungeontop","title":"DungeonTop","compatibility":99,"releases":[{"id":"01004A0013790000","region":null}]},{"id":"76a5b0ce-c628-4911-a118-8d9d06537a94","directory":"murder-house","title":"Murder House","compatibility":99,"releases":[{"id":"010032C015DA0000","region":null}]},{"id":"76b0c1c1-a7ca-4f91-aa77-673bd1ecd0cd","directory":"a-sound-plan","title":"A Sound Plan","compatibility":99,"releases":[{"id":"0100F0901006C000","region":null}]},{"id":"76b643b0-4f6c-4d2e-9305-3d1b082f525f","directory":"shadow-corridor","title":"Shadow Corridor","compatibility":99,"releases":[{"id":"010015C015712000","region":null}]},{"id":"76bd4938-9cb2-41ce-8ae8-d7cfa3cbcc25","directory":"tokyo-dark-remembrance","title":"Tokyo Dark – Remembrance –","compatibility":4,"releases":[{"id":"01003E500F962000","region":null}]},{"id":"76c421dc-02a1-4ec8-b154-79ef917b9e70","directory":"toy-stunt-bike-tiptops-trials-demo","title":"Toy Stunt Bike: Tiptop's Trials (Demo)","compatibility":99,"releases":[{"id":"010072800B1FC000","region":null}]},{"id":"7717b340-8ed0-4134-9e04-b451b7990678","directory":"crimzon-clover-world-explosion","title":"Crimzon Clover - World EXplosion","compatibility":0,"releases":[{"id":"01006B800DE26000","region":null}]},{"id":"77244957-f72b-481d-9e71-bf39cccf0dea","directory":"dodonpachi-resurrection","title":"DoDonPachi Resurrection","compatibility":1,"releases":[{"id":"01005A001489A000","region":null}]},{"id":"7730c9bd-1b1e-4fc1-a5a6-4e8513574242","directory":"circuit-dude","title":"Circuit Dude","compatibility":99,"releases":[{"id":"0100BE7010610000","region":null}]},{"id":"7732c621-2a22-4691-9517-3cf8b67a6655","directory":"monster-jam-steel-titans","title":"Monster Jam Steel Titans","compatibility":99,"releases":[{"id":"010095C00F354000","region":null}]},{"id":"77411f44-ab66-4eb8-aecf-56b8a4509c29","directory":"pop-the-bubbles","title":"Pop the Bubbles","compatibility":99,"releases":[{"id":"0100068011DB0000","region":null}]},{"id":"774875ce-2ec3-4fcd-8a09-964c9f22147f","directory":"wish-travel-super-puzzles-dream","title":"#Wish travel, Super Puzzles Dream","compatibility":99,"releases":[{"id":"01007A20150A0000","region":null}]},{"id":"775a45a7-199b-4168-8de2-f57352e1358c","directory":"total-arcade-racing","title":"Total Arcade Racing","compatibility":1,"releases":[{"id":"0100A64010D48000","region":null}]},{"id":"776ecff7-d178-4253-ba95-7941fe1b911b","directory":"lust-for-darkness-dawn-edition","title":"Lust for Darkness: Dawn Edition","compatibility":99,"releases":[{"id":"0100F0B00F68E000","region":null}]},{"id":"7787fe67-634f-4d04-aadc-5319b9a704fe","directory":"night-in-the-woods","title":"Night in the Woods","compatibility":1,"releases":[{"id":"0100921006A04000","region":null}]},{"id":"7794b06c-8591-4359-a5e7-5a8a361bbda2","directory":"iris-school-of-wizardry-vinculum-hearts-","title":"Iris School of Wizardry -Vinculum Hearts-","compatibility":2,"releases":[{"id":"0100AD300B786000","region":null}]},{"id":"779f6883-9021-4c1e-b944-98926ed11124","directory":"steredenn-binary-stars","title":"Steredenn: Binary Stars","compatibility":0,"releases":[{"id":"0100775004794000","region":null}]},{"id":"77a55641-4fc8-4a78-b4df-732d31c6bbb8","directory":"new-york-mysteries-secrets-of-the-mafia","title":"New York Mysteries: Secrets of the Mafia","compatibility":99,"releases":[{"id":"01001250157C2000","region":null}]},{"id":"77ab0417-54c9-4838-a542-98dd7527f4c4","directory":"colsword","title":"Colsword","compatibility":99,"releases":[{"id":"0100D730161DA000","region":null}]},{"id":"77b1715d-0404-4589-b4a7-33f7d55f72c3","directory":"mega-man-x-legacy-collection","title":"Mega Man X Legacy Collection","compatibility":2,"releases":[{"id":"01005C60086BE000","region":null}]},{"id":"77b341b8-999d-4012-a49c-5ca62d14debf","directory":"junk-jack","title":"Junk Jack","compatibility":99,"releases":[{"id":"010043901005A000","region":null}]},{"id":"77b92a0d-df96-4736-a2ff-1ea0583f12d8","directory":"rush-rally-3","title":"Rush Rally 3","compatibility":3,"releases":[{"id":"010020900E7A8000","region":null}]},{"id":"77b98eb0-21ab-42f4-858f-05b76a620c49","directory":"let-it-roll-slide-puzzle","title":"Let it roll slide puzzle","compatibility":99,"releases":[{"id":"0100421014FBE000","region":null}]},{"id":"77ce575a-4220-4bef-8c4f-5d115db7e332","directory":"arcade-archives-alpine-ski","title":"Arcade Archives ALPINE SKI","compatibility":4,"releases":[{"id":"010083800DC70000","region":null}]},{"id":"77d41423-3200-46aa-9c1d-561d0782e436","directory":"rez-plz","title":"REZ PLZ","compatibility":2,"releases":[{"id":"010071D00F156000","region":null}]},{"id":"77de47d9-7e86-47c6-bb8d-dda64fc951ae","directory":"sheep-patrol","title":"Sheep Patrol","compatibility":99,"releases":[{"id":"0100A7D010524000","region":null}]},{"id":"77df7f5a-627a-4581-912c-d3af715cf615","directory":"feathery-ears","title":"Feathery Ears","compatibility":2,"releases":[{"id":"01006C3011C56000","region":null}]},{"id":"77e513b9-623d-48bf-b881-7e84fd03e74f","directory":"mega-mall-story-2","title":"Mega Mall Story 2","compatibility":99,"releases":[{"id":"010030200EC42000","region":null}]},{"id":"7808823b-b8d5-4e89-8d24-4ff2e0f9e682","directory":"active-neurons-3-wonders-of-the-world","title":"Active Neurons 3 - Wonders Of The World","compatibility":99,"releases":[{"id":"0100EE1013E12000","region":null}]},{"id":"780ff123-c929-486d-86dd-22f6d766ca39","directory":"boreal-blade","title":"Boreal Blade","compatibility":99,"releases":[{"id":"01008E500AFF6000","region":null}]},{"id":"7819e854-2280-47e5-bf25-620907789edd","directory":"water-balloon-mania","title":"Water Balloon Mania","compatibility":99,"releases":[{"id":"0100B79011F06000","region":null}]},{"id":"78249993-6324-43df-a6bd-a0b516905adb","directory":"farming-simulator-20","title":"Farming Simulator 20","compatibility":1,"releases":[{"id":"0100EB600E914000","region":null}]},{"id":"7826735e-c7ad-4401-aa29-a768a9ceef5c","directory":"evolution-board-game","title":"Evolution Board Game","compatibility":4,"releases":[{"id":"01006A800FA22000","region":null}]},{"id":"78293f3d-0f3b-4842-bc81-f452ef66a8f5","directory":"rocket-wars","title":"Rocket Wars","compatibility":99,"releases":[{"id":"0100E88009A34000","region":null}]},{"id":"7829c948-e841-4290-a9bc-d6702079f554","directory":"leisure-suit-larry-wet-dreams-dont-dry","title":"Leisure Suit Larry - Wet Dreams Don't Dry","compatibility":0,"releases":[{"id":"0100A8E00CAA0000","region":null}]},{"id":"782c75b9-2d3c-4c02-b59b-3423cc765718","directory":"atelier-ryza-ever-darkness-and-the-secret-hideout","title":"Atelier Ryza: Ever Darkness & the Secret Hideout","compatibility":2,"releases":[{"id":"0100D1900EC80000","region":null}]},{"id":"78311ddd-51d1-440d-a471-8626d18aa61d","directory":"foodtruck-arena","title":"Foodtruck Arena","compatibility":99,"releases":[{"id":"010043E01476A000","region":null}]},{"id":"7836a044-af78-4ec8-a2af-6f00823ed351","directory":"football-drama","title":"Football Drama","compatibility":99,"releases":[{"id":"01003C101481E000","region":null}]},{"id":"78378c79-8a15-49aa-9cab-c7ec02aff40c","directory":"endless-fables-shadow-within","title":"Endless Fables: Shadow Within","compatibility":99,"releases":[{"id":"0100117015AE4000","region":null}]},{"id":"783af029-e5e9-415f-97c1-f4ff06aa07b9","directory":"adrenaline-rush-miami-drive","title":"Adrenaline Rush - Miami Drive","compatibility":99,"releases":[{"id":"010029700EB76000","region":null}]},{"id":"7841e683-3274-4a36-b329-3bb0381317aa","directory":"jigsaw-masterpieces-ex-kawaii-cute-goddesses","title":"Jigsaw Masterpieces EX - Kawaii Cute Goddesses -","compatibility":99,"releases":[{"id":"0100FEF015F74000","region":null}]},{"id":"786ef356-e8e0-4603-98ef-cd5aa397d282","directory":"night-call","title":"Night Call","compatibility":99,"releases":[{"id":"0100F3A0095A6000","region":null}]},{"id":"787fe3e4-0526-4926-9723-335b00ed08ce","directory":"retro-classix-2-in-1-pack-gate-of-doom-wizard-fire","title":"Retro Classix 2-in-1 Pack: Gate of Doom & Wizard Fire","compatibility":99,"releases":[{"id":"0100F38012182000","region":null}]},{"id":"788342f2-d87d-4530-bc5b-c70264f5f5ae","directory":"voxel-shot-for-nintendo-switch","title":"Voxel Shot for Nintendo Switch","compatibility":99,"releases":[{"id":"01003A300B5F8000","region":null}]},{"id":"788bf697-b983-469e-ad2a-5fa3434540fd","directory":"zumatch","title":"Zumatch","compatibility":99,"releases":[{"id":"0100203014E78000","region":null}]},{"id":"78933525-ef96-459e-8280-639420c18945","directory":"rbi-baseball-17","title":"R.B.I. Baseball 17","compatibility":4,"releases":[{"id":"0100B5A004302000","region":null}]},{"id":"789d8716-683f-4169-b063-230a93ccfda9","directory":"air-missions-hind","title":"Air Missions: HIND","compatibility":0,"releases":[{"id":"0100C9E00F54C000","region":null}]},{"id":"78a648f1-f582-4465-afed-7d10cdb86747","directory":"circa-infinity-ultimate-edition","title":"Circa Infinity Ultimate Edition","compatibility":99,"releases":[{"id":"010005F016964000","region":null}]},{"id":"78aaa857-86e6-4709-bcb5-13196581136f","directory":"rift-adventure","title":"Rift Adventure","compatibility":99,"releases":[{"id":"0100F5501483C000","region":null}]},{"id":"78abe25e-0444-4e7b-982a-7e67ba818176","directory":"fat-city","title":"Fat City","compatibility":99,"releases":[{"id":"01001CC00CB54000","region":null}]},{"id":"78af8ecd-ea97-4454-9356-ba804dffc99a","directory":"valthirian-arc-hero-school-story","title":"Valthirian Arc: Hero School Story","compatibility":1,"releases":[{"id":"010042100BAA6000","region":null}]},{"id":"78b19138-1520-45e6-a50d-90cb17ff6a17","directory":"zombie-gold-rush","title":"ZOMBIE GOLD RUSH","compatibility":1,"releases":[{"id":"0100CFE003A64000","region":null}]},{"id":"78b297e2-2932-4c17-b77a-a01e42e566fd","directory":"deaths-door","title":"Death's Door","compatibility":0,"releases":[{"id":"0100B31015AF8000","region":null}]},{"id":"78b3c439-001f-474b-8c3a-0b97d6ef42c1","directory":"sudoky","title":"Sudoky","compatibility":99,"releases":[{"id":"0100A68011B0A000","region":null}]},{"id":"78c54dc6-c35d-40c9-84e3-5716c4f3226b","directory":"epic-astro-story","title":"Epic Astro Story","compatibility":0,"releases":[{"id":"0100AE300D496000","region":null}]},{"id":"78c9b2a6-68c6-4c2c-9955-6f7da018be0a","directory":"cloudbase-prime","title":"Cloudbase Prime","compatibility":99,"releases":[{"id":"010023800FE12000","region":null}]},{"id":"78d1856c-c97f-4e90-920a-8c25c92ee031","directory":"biolab-wars","title":"Biolab Wars","compatibility":99,"releases":[{"id":"0100AEC010052000","region":null}]},{"id":"78d514f4-3387-47f8-b537-3afc2af49d05","directory":"itta","title":"ITTA","compatibility":5,"releases":[{"id":"010068700C70A000","region":null}]},{"id":"78d51611-b18f-4528-9c00-b44ca2b5f7db","directory":"aery-a-journey-beyond-time","title":"Aery – A Journey Beyond Time","compatibility":0,"releases":[{"id":"0100DF8014056000","region":null}]},{"id":"78dc17cb-baf1-47c5-96fb-fd51793143bf","directory":"oniken-unstoppable-edition","title":"Oniken: Unstoppable Edition","compatibility":99,"releases":[{"id":"010037900C814000","region":null}]},{"id":"78dff127-ce20-490f-ba9d-9e8daa165226","directory":"damascus-gear-operation-osaka","title":"Damascus Gear Operation Osaka","compatibility":99,"releases":[{"id":"0100A8000E228000","region":null}]},{"id":"78e57fd6-39fa-4b67-a630-4f55a0366b4f","directory":"racing-xtreme-2","title":"Racing Xtreme 2","compatibility":99,"releases":[{"id":"0100F580157FE000","region":null}]},{"id":"78ebbe30-6574-42a7-8ec4-256980ce8fc7","directory":"3d-arcade-fishing","title":"3D Arcade Fishing","compatibility":99,"releases":[{"id":"010010C013F2A000","region":null}]},{"id":"78f57de2-322a-4110-a100-788907a30e65","directory":"fatal-fury-first-contact","title":"FATAL FURY FIRST CONTACT","compatibility":99,"releases":[{"id":"010059B012E60000","region":null}]},{"id":"78fa7ff2-6238-4e06-8a00-58e67f69c711","directory":"warriors-orochi-4","title":"WARRIORS OROCHI 4","compatibility":99,"releases":[{"id":"010016A00AEC0000","region":null}]},{"id":"79054240-8f3b-45e1-96fa-6825a220496d","directory":"knights-and-bikes","title":"Knights and Bikes","compatibility":99,"releases":[{"id":"0100B7000D89E000","region":null}]},{"id":"790d8a32-7ba7-4d5c-bde9-c63db89a0582","directory":"mad-age-and-this-guy","title":"Mad Age & This Guy","compatibility":99,"releases":[{"id":"01008E300C88A000","region":null}]},{"id":"790e92b9-1527-41ee-9d76-1feb3b496041","directory":"extreme-trucks-simulator","title":"Extreme Trucks Simulator","compatibility":99,"releases":[{"id":"010097800F1B4000","region":null}]},{"id":"791484bd-54fe-4706-8711-1f5291712e1e","directory":"ninja-village","title":"Ninja Village","compatibility":0,"releases":[{"id":"010090600CB98000","region":null}]},{"id":"7916799f-1d67-4842-8084-eb53f5a68f33","directory":"lambs-on-the-road-the-beginning","title":"Lambs on the road : The Beginning","compatibility":99,"releases":[{"id":"01005160151EE000","region":null}]},{"id":"7921cdd9-c99d-42e8-8b08-8a9ae3f1f8a5","directory":"perception","title":"Perception","compatibility":99,"releases":[{"id":"0100563005B70000","region":null}]},{"id":"792345c3-e580-44a6-b5f5-9c14a8e549e5","directory":"plantera-deluxe-demo","title":"Plantera Deluxe Demo","compatibility":99,"releases":[{"id":"010003D00867A000","region":null}]},{"id":"792f6d86-2800-4571-95b5-6a14cf844982","directory":"dragon-quest-r-xi-s-echoes-of-an-elusive-age-definitive-edition","title":"DRAGON QUEST® XI S: Echoes of an Elusive Age – Definitive Edition","compatibility":2,"releases":[{"id":"01006C300E9F0000","region":null}]},{"id":"7933be16-45ba-4690-8bf9-3ec47ea2fb4e","directory":"g-mode-archives29-zanac","title":"G-MODE Archives29 ZANAC","compatibility":99,"releases":[{"id":"0100FD7013470000","region":null}]},{"id":"7939d5d7-31be-490c-8ae2-1560c76b524f","directory":"ohsir-the-hollywood-roast","title":"Oh...Sir! The Hollywood Roast","compatibility":99,"releases":[{"id":"0100F45006A00000","region":null}]},{"id":"794544d0-d89b-48bd-b1b9-207fb64c1f11","directory":"the-card-poker-texas-hold-em-blackjack-and-page-one","title":"THE Card: Poker, Texas hold 'em, Blackjack and Page One","compatibility":3,"releases":[{"id":"0100EB600AB5E000","region":null}]},{"id":"794f5cb2-3088-4240-ba71-7c654364032b","directory":"wulverblade","title":"Wulverblade","compatibility":99,"releases":[{"id":"010033700418A000","region":null}]},{"id":"79527c87-23b9-4a52-a19c-22e97474e478","directory":"cinders","title":"Cinders","compatibility":99,"releases":[{"id":"01009AC00D5F4000","region":null}]},{"id":"79687c95-1ead-44e2-b3d1-4aaad514fd28","directory":"dc-universe-online","title":"DC Universe Online","compatibility":99,"releases":[{"id":"01005B000D786000","region":null}]},{"id":"7972c10c-efd1-4f70-b2c3-8315fe7a9a24","directory":"baila-latino","title":"Baila Latino","compatibility":99,"releases":[{"id":"010076B011EC8000","region":null}]},{"id":"7974dc1b-e068-4a30-a7ed-5293c46a6756","directory":"adventure-pinball-bundle","title":"Adventure Pinball Bundle","compatibility":99,"releases":[{"id":"0100C990102A0000","region":null}]},{"id":"7974e4d3-9d78-4947-b634-eb6544f76a39","directory":"capes-escape-game-2nd-room","title":"Cape's Escape Game 2nd room","compatibility":99,"releases":[{"id":"0100F04013F5E000","region":null}]},{"id":"7990e99b-df10-4fe2-9f92-cf9d2b159c16","directory":"gaokaolove100days","title":"Gaokao.Love.100Days","compatibility":0,"releases":[{"id":"010091400B596000","region":null}]},{"id":"7991aec3-4b61-42c6-b067-3eeb542da244","directory":"overcooked-2","title":"Overcooked! 2","compatibility":0,"releases":[{"id":"01006FD0080B2000","region":null}]},{"id":"79a6ad7c-a5fc-42b4-9c6a-cf310214bb99","directory":"aca-neogeo-world-heroes","title":"ACA NEOGEO WORLD HEROES","compatibility":99,"releases":[{"id":"01002DD004FAC000","region":null}]},{"id":"79b1907a-bbae-45eb-9768-4374438194aa","directory":"the-pew-pew-bundle-vol-1","title":"The Pew Pew Bundle Vol. 1","compatibility":99,"releases":[{"id":"0100EE50122BC000","region":null}]},{"id":"79bbf3e3-8fe3-437b-9973-94073ab18100","directory":"pukan-bye-bye","title":"Pukan, Bye-Bye!","compatibility":99,"releases":[{"id":"010061601676A000","region":null}]},{"id":"79c52382-f4c4-4113-91e9-9374e23d6a2e","directory":"aca-neogeo-money-puzzle-exchanger","title":"ACA NEOGEO Money Puzzle Exchanger","compatibility":4,"releases":[{"id":"010038F00AFA0000","region":null}]},{"id":"79d30161-fbac-4d25-bdc6-ddb82aa19dbc","directory":"stranger-things-3-the-game","title":"Stranger Things 3: The Game","compatibility":0,"releases":[{"id":"0100DD600DD48000","region":null}]},{"id":"79d6d383-a128-46d8-a262-b63a43bcfb2c","directory":"nuclien","title":"Nuclien","compatibility":99,"releases":[{"id":"01005140089F6000","region":null}]},{"id":"79dc4834-dcbf-4bea-acb4-a360696e0cc2","directory":"black-jack","title":"Black Jack","compatibility":99,"releases":[{"id":"010045C011DE6000","region":null}]},{"id":"79e85666-26ce-4a61-ac6f-bc8c4c3ea917","directory":"all-star-fruit-racing","title":"All-Star Fruit Racing","compatibility":3,"releases":[{"id":"0100C1F00A9B8000","region":null}]},{"id":"79f95c8a-304f-4081-8856-36a32d84b75b","directory":"venture-towns-demo","title":"Venture Towns Demo","compatibility":99,"releases":[{"id":"010083D00D170000","region":null}]},{"id":"79fe62d0-6b5b-4769-ab73-6e4b5d0e40ea","directory":"the-escapists-2","title":"The Escapists 2","compatibility":2,"releases":[{"id":"0100CA100489C000","region":null}]},{"id":"7a03c48c-7ed7-4c16-85bc-271911d658b6","directory":"sega-genesis-nintendo-switch-online","title":"SEGA Genesis™ – Nintendo Switch Online","compatibility":2,"releases":[{"id":"0100B3C014BDA000","region":null}]},{"id":"7a066f1f-0ca8-4b87-95f8-e0a32f47a9b8","directory":"kosmonavtes-escape-reality","title":"Kosmonavtes: Escape Reality","compatibility":99,"releases":[{"id":"0100C890159AA000","region":null}]},{"id":"7a0b06fd-d7f6-4063-9d27-9dc66bddd103","directory":"royal-tower-defense","title":"Royal Tower Defense","compatibility":99,"releases":[{"id":"0100132013678000","region":null}]},{"id":"7a1d6eb9-8b7a-430e-8e70-e337edc1bb07","directory":"railway-empire-nintendo-switch-edition","title":"Railway Empire - Nintendo Switch™ Edition","compatibility":99,"releases":[{"id":"01002EE00DC02000","region":null}]},{"id":"7a22c5ea-a1cb-45ad-9bf5-63ef5c326a05","directory":"family-tree","title":"Family Tree","compatibility":99,"releases":[{"id":"01007BA00F0E6000","region":null}]},{"id":"7a2539ff-09ff-4726-abd8-50cee2df0364","directory":"weaving-tides","title":"Weaving Tides","compatibility":99,"releases":[{"id":"0100823012CA0000","region":null}]},{"id":"7a3627bd-106f-46ee-9097-fe8fc0f3dc50","directory":"him-her-3","title":"HIM & HER 3","compatibility":99,"releases":[{"id":"010000E0161BC000","region":null}]},{"id":"7a39cd2c-cc4c-4f39-9e84-e2d10c710520","directory":"longstory-a-dating-game-for-the-real-world","title":"LongStory: A dating game for the real world","compatibility":99,"releases":[{"id":"0100A4300B4FC000","region":null}]},{"id":"7a3bc69d-a4f2-44cb-b7ab-bab586195c99","directory":"mujo","title":"MUJO","compatibility":0,"releases":[{"id":"0100A8400471A000","region":null}]},{"id":"7a3e0e39-725d-455a-a65b-2c6462c65a8e","directory":"lets-sing-queen","title":"Let's Sing Queen","compatibility":0,"releases":[{"id":"01003CE011A86000","region":null}]},{"id":"7a461dd5-6477-4010-95fe-32e64e4f8a5c","directory":"winds-of-change","title":"Winds Of Change","compatibility":99,"releases":[{"id":"01001D2013756000","region":null}]},{"id":"7a53fbc5-9f43-4b4e-af26-1f328157c247","directory":"emergency-driver-simulator","title":"Emergency Driver Simulator","compatibility":99,"releases":[{"id":"0100382016A0E000","region":null}]},{"id":"7a56e78b-271e-49ca-8017-e978c662357e","directory":"dreamball","title":"DreamBall","compatibility":5,"releases":[{"id":"010034D00F330000","region":null}]},{"id":"7a5db389-7a6b-472b-952a-7db286fff362","directory":"sudoku-relax","title":"Sudoku Relax","compatibility":99,"releases":[{"id":"010027B00DDF4000","region":null}]},{"id":"7a6659d4-bdba-4f3a-9ff8-c22a63ef514a","directory":"unforeseen-incidents","title":"Unforeseen Incidents","compatibility":99,"releases":[{"id":"010052800DB46000","region":null}]},{"id":"7a79e5fb-0436-42df-afcd-1f295f6bf6c4","directory":"dungeon-encounters","title":"DUNGEON ENCOUNTERS","compatibility":99,"releases":[{"id":"0100328013BCA000","region":null}]},{"id":"7a8322a2-e338-4d1f-a281-abdc53b35722","directory":"arcade-archives-kangaroo","title":"Arcade Archives Kangaroo","compatibility":99,"releases":[{"id":"0100141011CF2000","region":null}]},{"id":"7a986ec7-12da-422a-b390-628087857ba2","directory":"dragon-ball-xenoverse-2-lite-version","title":"DRAGON BALL XENOVERSE 2 Lite Version","compatibility":99,"releases":[{"id":"0100B9F00B58E000","region":null}]},{"id":"7a98ae90-3381-4b4a-b600-5e0e4e06a06a","directory":"valiant-hearts-the-great-war","title":"Valiant Hearts: The Great War","compatibility":0,"releases":[{"id":"010099700B01A000","region":null}]},{"id":"7aaacb97-3772-46d1-a66f-5501a954d1e7","directory":"kolumno","title":"Kolumno","compatibility":99,"releases":[{"id":"01002EF013734000","region":null}]},{"id":"7aabcfd4-955c-41f0-8e47-f865e2f75dab","directory":"construction-site-driver","title":"Construction Site Driver","compatibility":99,"releases":[{"id":"010000E016DDE000","region":null}]},{"id":"7aac18eb-9bb9-4d13-833b-6b0c02c1f756","directory":"spacejacked","title":"Spacejacked","compatibility":99,"releases":[{"id":"010084500EA2E000","region":null}]},{"id":"7ab2d687-3f85-42b2-8d6d-68eec39e7209","directory":"ladders-by-powgi","title":"Ladders by POWGI","compatibility":99,"releases":[{"id":"0100E26014312000","region":null}]},{"id":"7ab994b8-e28c-4495-a546-48b4e80f3f18","directory":"fairy-tale-puzzlesmagic-objects","title":"Fairy Tale Puzzles~Magic Objects~","compatibility":0,"releases":[{"id":"010072E00B36A000","region":null}]},{"id":"7abc85e5-05d2-4f41-9fa8-94b4ed129eee","directory":"bear-with-me-the-lost-robots","title":"Bear With Me: The Lost Robots","compatibility":0,"releases":[{"id":"010020700DE04000","region":null}]},{"id":"7ac8a1df-ab8b-4ea0-afd4-89105428e53e","directory":"minefield","title":"Minefield","compatibility":99,"releases":[{"id":"0100B7500F756000","region":null}]},{"id":"7add49f4-a227-4d18-9cac-2f95ff604780","directory":"arcade-archives-dragon-buster","title":"Arcade Archives DRAGON BUSTER","compatibility":99,"releases":[{"id":"0100130015E0E000","region":null}]},{"id":"7ae74068-df81-4ed6-b9bb-791a96fad7d1","directory":"bulb-boy","title":"Bulb Boy","compatibility":99,"releases":[{"id":"01006F900473A000","region":null}]},{"id":"7aeb9dec-2ea4-4e67-b6df-b24182716135","directory":"lfo-lost-future-omega-","title":"L.F.O. -Lost Future Omega-","compatibility":1,"releases":[{"id":"0100732009CAE000","region":null}]},{"id":"7aece9e7-9c60-4e20-bc8e-d5dcdda2c770","directory":"stray-cat-doors2","title":"Stray Cat Doors2","compatibility":1,"releases":[{"id":"010035D014B96000","region":null}]},{"id":"7af61d88-5fb0-4bb9-b3d0-5547625ce48f","directory":"it-came-from-space-and-ate-our-brains","title":"It came from space and ate our brains","compatibility":99,"releases":[{"id":"01002E501015A000","region":null}]},{"id":"7b0b3cbb-c6f5-4f77-8a52-e97b597f5a6f","directory":"ubermosh-omega","title":"UBERMOSH:OMEGA","compatibility":99,"releases":[{"id":"0100DBA0109C2000","region":null}]},{"id":"7b0b9425-032d-4894-aeda-18b023db5277","directory":"sniper-elite-3-ultimate-edition","title":"Sniper Elite 3 Ultimate Edition","compatibility":2,"releases":[{"id":"010075A00BA14000","region":null}]},{"id":"7b0cd6ac-56e3-469f-9ef8-ddc4f703a9e1","directory":"mad-father","title":"Mad Father","compatibility":3,"releases":[{"id":"01005E7013476000","region":null}]},{"id":"7b1eaae6-efdb-4161-8343-8a4d5043dc9a","directory":"cattails","title":"Cattails","compatibility":0,"releases":[{"id":"010004400B28A000","region":null}]},{"id":"7b29514b-ac90-4c97-bf6f-05725aa37905","directory":"brawlhalla","title":"Brawlhalla","compatibility":4,"releases":[{"id":"0100C6800B934000","region":null}]},{"id":"7b2a397f-c023-4cd4-880d-a8c1b73953f8","directory":"word-wheel-by-powgi","title":"Word Wheel by POWGI","compatibility":99,"releases":[{"id":"01002A600E346000","region":null}]},{"id":"7b374e5d-eee1-4321-923b-dcf06ef6dc9c","directory":"rainbow-billy-the-curse-of-the-leviathan","title":"Rainbow Billy: The Curse of the Leviathan","compatibility":99,"releases":[{"id":"0100235014746000","region":null}]},{"id":"7b3feb41-8cc8-411a-a1a9-7a89247b145f","directory":"wolfenstein-youngblood","title":"Wolfenstein: Youngblood","compatibility":4,"releases":[{"id":"01003BD00CAAE000","region":null}]},{"id":"7b4186f8-b94e-4dcc-87ac-c157c2d370be","directory":"her-love-in-the-force","title":"Her Love in the Force","compatibility":99,"releases":[{"id":"0100A9001317E000","region":null}]},{"id":"7b4992d4-c556-482d-888d-84310d9ec377","directory":"king-of-seas","title":"King of Seas","compatibility":99,"releases":[{"id":"0100C17010BF2000","region":null}]},{"id":"7b58e725-4a0a-4ed6-a306-2b65da41f811","directory":"assault-chainguns-km","title":"Assault ChaingunS KM","compatibility":99,"releases":[{"id":"0100BF8012A30000","region":null}]},{"id":"7b646591-5c6b-4029-8a3b-20f2a550a167","directory":"pantsu-hunter-back-to-the-90s","title":"Pantsu Hunter: Back to the 90s","compatibility":2,"releases":[{"id":"010006E00DFAE000","region":null}]},{"id":"7b77adfd-de92-4364-a41e-2cbedc45c619","directory":"table-tennis","title":"Table Tennis","compatibility":99,"releases":[{"id":"0100CB00125B6000","region":null}]},{"id":"7b7f40fa-d014-4b0e-9cd7-ac4b9238fd60","directory":"romancing-saga-2","title":"Romancing SaGa 2","compatibility":1,"releases":[{"id":"01001F600829A000","region":null}]},{"id":"7b7f9a91-0069-418e-96b4-abda2ae03297","directory":"world-quiz","title":"World Quiz","compatibility":99,"releases":[{"id":"0100099016862000","region":null}]},{"id":"7b849bb6-603e-40f8-b5b3-fa17a808a518","directory":"gunslugs-2","title":"Gunslugs 2","compatibility":99,"releases":[{"id":"010062A013914000","region":null}]},{"id":"7b9bdec0-e037-4614-980c-529d53ee3e18","directory":"mars-horizon","title":"Mars Horizon","compatibility":1,"releases":[{"id":"010044701191E000","region":null}]},{"id":"7ba0b379-5de7-4ff5-baaa-8fe8842f84ae","directory":"falcon-age","title":"Falcon Age","compatibility":99,"releases":[{"id":"0100C3F011B58000","region":null}]},{"id":"7bba659c-bc5b-4fc3-85a0-496a82bafdfa","directory":"cuccchi","title":"Cuccchi","compatibility":99,"releases":[{"id":"0100F5F015AE0000","region":null}]},{"id":"7bbda616-f194-419a-8bcf-6f8e81b410d1","directory":"superola-and-the-lost-burgers","title":"Superola and the Lost Burgers","compatibility":99,"releases":[{"id":"010033C009E46000","region":null}]},{"id":"7bc3f7e6-b7af-4841-9b06-6c885bf6c458","directory":"just-dance-2020","title":"Just Dance 2020","compatibility":0,"releases":[{"id":"0100DDB00DB38000","region":null}]},{"id":"7bcc572d-05d6-4bff-8cf8-8863cd1d7c63","directory":"electro-ride-the-neon-racing","title":"Electro Ride: The Neon Racing","compatibility":99,"releases":[{"id":"0100C6301324C000","region":null}]},{"id":"7bceeab2-e6ad-45b7-8a3d-d9c0ad3e3d0a","directory":"crawlco-block-knockers","title":"Crawlco Block Knockers","compatibility":99,"releases":[{"id":"0100148012F7A000","region":null}]},{"id":"7bcff2f0-d162-45a1-93d3-95909fdae1a7","directory":"the-lost-cube","title":"The Lost Cube","compatibility":99,"releases":[{"id":"01000F2013CF8000","region":null}]},{"id":"7bd1980e-fcdf-4a76-81e8-62165e1fa4dd","directory":"pretty-girls-panic-plus","title":"Pretty Girls Panic! PLUS","compatibility":99,"releases":[{"id":"01001E3014D46000","region":null}]},{"id":"7bd3a460-b545-4821-8483-b1b9c292bb66","directory":"thy-sword","title":"Thy Sword","compatibility":1,"releases":[{"id":"01000AC011588000","region":null}]},{"id":"7bd84f9a-99a1-4111-9ed5-68c89ac204a6","directory":"bit-trip-void","title":"BIT.TRIP VOID","compatibility":99,"releases":[{"id":"01000AD012D3A000","region":null}]},{"id":"7c003c6c-c604-47b4-b21b-e384d926e500","directory":"axiom-verge-2","title":"Axiom Verge 2","compatibility":1,"releases":[{"id":"01002FC010240000","region":null}]},{"id":"7c06cd3a-2437-4b57-ae6a-aa92e88d426d","directory":"puzzle-car","title":"Puzzle Car","compatibility":99,"releases":[{"id":"01004AF01590C000","region":null}]},{"id":"7c212262-014c-4af3-a1f6-acc61c24b10f","directory":"in-rays-of-the-light","title":"In rays of the Light","compatibility":99,"releases":[{"id":"0100A760129A0000","region":null}]},{"id":"7c22e0fb-5aaf-42d3-ab43-b3b1330085d0","directory":"reel-fishing-road-trip-adventure","title":"Reel Fishing: Road Trip Adventure","compatibility":99,"releases":[{"id":"010007C00E558000","region":null}]},{"id":"7c2af0a6-926c-4d73-b628-8835cfa0f6f1","directory":"super-one-more-jump-demo","title":"Super One More Jump Demo","compatibility":99,"releases":[{"id":"010088F00AD80000","region":null}]},{"id":"7c418840-86e5-4b23-9f6f-1acaa513f216","directory":"bot-vice","title":"Bot Vice","compatibility":4,"releases":[{"id":"010065C00CD98000","region":null}]},{"id":"7c47580e-e8ec-49dc-8305-bb2e8b5463cf","directory":"titan-quest","title":"Titan Quest","compatibility":2,"releases":[{"id":"0100605008268000","region":null}]},{"id":"7c4b6b7f-9888-40ad-bc60-fc46cd655543","directory":"free-throw-basketball","title":"Free Throw Basketball","compatibility":99,"releases":[{"id":"0100865014246000","region":null}]},{"id":"7c4cb465-e05e-46f1-8ec2-e454ad9678aa","directory":"ghost-sync","title":"Ghost Sync","compatibility":99,"releases":[{"id":"0100F41015BF4000","region":null}]},{"id":"7c4fc628-d321-44c3-8c6d-3a64189a7726","directory":"naruto-shippuden-ultimate-ninja-storm-trilogy","title":"NARUTO SHIPPUDEN: Ultimate Ninja Storm Trilogy","compatibility":2,"releases":[{"id":"0100EC800800C000","region":null}]},{"id":"7c54382a-a14f-4867-810f-410483a54991","directory":"undermine","title":"UnderMine","compatibility":2,"releases":[{"id":"01000B3012F3A000","region":null}]},{"id":"7c5c8795-c337-407a-877d-528877328673","directory":"return-of-the-heir","title":"Return of the Heir","compatibility":99,"releases":[{"id":"01009AA014736000","region":null}]},{"id":"7c68c27e-b4c7-4e36-a665-b7dff85ea7e9","directory":"megadimension-neptunia-vii","title":"Megadimension Neptunia VII","compatibility":3,"releases":[{"id":"010006F011220000","region":null}]},{"id":"7c719b65-24d7-4a59-ad93-fd8073b652dd","directory":"ravensword-shadowlands","title":"Ravensword: Shadowlands","compatibility":99,"releases":[{"id":"0100957013E26000","region":null}]},{"id":"7c7299fe-1076-434a-a715-f9c5b9b230a4","directory":"onirike","title":"Onirike","compatibility":99,"releases":[{"id":"0100F150141DC000","region":null}]},{"id":"7c8cc74d-78fb-44cd-9df5-abbffea696c3","directory":"world-of-goo","title":"World of Goo","compatibility":0,"releases":[{"id":"010009E001D90000","region":null}]},{"id":"7c9e1018-5f6d-4d63-8fac-effa2c803713","directory":"galak-z-variant-s","title":"GALAK-Z: Variant S","compatibility":4,"releases":[{"id":"0100C9800A454000","region":null}]},{"id":"7ca5daac-71f2-449e-bcb8-6585ec6a3acb","directory":"tales-from-the-borderlands","title":"Tales from the Borderlands","compatibility":99,"releases":[{"id":"0100F0C011A68000","region":null}]},{"id":"7cab2c93-8bfe-431e-bdfd-7569e7b2b8ed","directory":"feral-fury","title":"Feral Fury","compatibility":2,"releases":[{"id":"010097E00ADC2000","region":null}]},{"id":"7cb0a6af-ab0d-4720-b2aa-3a64a24face1","directory":"mosaic","title":"Mosaic","compatibility":0,"releases":[{"id":"010032800D740000","region":null}]},{"id":"7cb3e542-b2ce-43ed-9728-65382a36d4d0","directory":"gunkid-99","title":"GUNKID 99","compatibility":99,"releases":[{"id":"0100B79014D66000","region":null}]},{"id":"7cb5c946-e745-4c38-9f80-b0858da98804","directory":"family-tennis-sp","title":"Family Tennis SP","compatibility":3,"releases":[{"id":"010049A00F5AC000","region":null}]},{"id":"7cc4d6ca-b39b-47ed-a55f-56a5936432b2","directory":"epistory-typing-chronicles","title":"Epistory - Typing Chronicles","compatibility":99,"releases":[{"id":"0100DA50128BE000","region":null}]},{"id":"7cc83c93-1458-40dc-a477-ad490976d3cd","directory":"ghost-files-memory-of-a-crime","title":"Ghost Files: Memory of a Crime","compatibility":3,"releases":[{"id":"0100046011AE6000","region":null}]},{"id":"7cceceee-fdcc-49ae-be1c-9d526e9af6b9","directory":"toki-tori-2-demo","title":"Toki Tori 2+ Demo","compatibility":99,"releases":[{"id":"010087E00B0E6000","region":null}]},{"id":"7ce569f9-0b1d-4d14-b776-6d42150ba382","directory":"clue-the-classic-mystery-game","title":"Clue: The Classic Mystery Game","compatibility":0,"releases":[{"id":"010029400CA20000","region":null}]},{"id":"7ced507e-c293-412d-baea-442fd8c01c87","directory":"inksplosion","title":"InkSplosion","compatibility":99,"releases":[{"id":"010039E00A15E000","region":null}]},{"id":"7cfde255-5b32-4522-a9a7-504dcc5b3de6","directory":"royal-adviser","title":"Royal Adviser","compatibility":99,"releases":[{"id":"0100ADF00C630000","region":null}]},{"id":"7d088358-9ae7-48f3-837f-254d4f1e82f7","directory":"sin-slayers","title":"Sin Slayers","compatibility":0,"releases":[{"id":"01006FE010438000","region":null}]},{"id":"7d0c2879-3978-4b60-bada-4974533dac0e","directory":"cannon-army","title":"CANNON ARMY","compatibility":99,"releases":[{"id":"01006400155DC000","region":null}]},{"id":"7d0f285b-c540-46a1-89a4-54995a2174dc","directory":"gakuen-club","title":"Gakuen Club","compatibility":99,"releases":[{"id":"010052900B8EE000","region":null}]},{"id":"7d13ca64-ddce-4fb6-bb5e-37ee72cdc40e","directory":"trancelation","title":"Trancelation","compatibility":99,"releases":[{"id":"0100DBF0110EE000","region":null}]},{"id":"7d2d44b0-4bfa-4e0d-85e9-3568d925ed14","directory":"ultra-hat-dimension","title":"Ultra Hat Dimension","compatibility":99,"releases":[{"id":"01002D4012222000","region":null}]},{"id":"7d345d2d-7cc5-407a-be74-cb3f75c2275d","directory":"western-1849-reloaded","title":"Western 1849 Reloaded","compatibility":99,"releases":[{"id":"010085F00B93A000","region":null}]},{"id":"7d5189f4-02c8-42d0-ab5b-ab26fd1bee01","directory":"waking-violet","title":"Waking Violet","compatibility":99,"releases":[{"id":"0100C160071B8000","region":null}]},{"id":"7d5b6912-96fe-4006-a388-0152c274611d","directory":"famicom-detective-club-the-missing-heir","title":"Famicom Detective Club™: The Missing Heir","compatibility":0,"releases":[{"id":"010033F0126F4000","region":null}]},{"id":"7d665eb7-e934-4ad8-9739-04e0266e03b4","directory":"epic-loon","title":"Epic Loon","compatibility":5,"releases":[{"id":"0100262009626000","region":null}]},{"id":"7d685512-0ce6-49f5-a7b1-c5dbb0d18cf2","directory":"kirakira-stars-idol-project-memories","title":"Kirakira stars idol project Memories","compatibility":99,"releases":[{"id":"01005BD015A3C000","region":null}]},{"id":"7d6aa409-8c60-49a4-baf7-57c8d05e1af4","directory":"rico-london","title":"RICO: London","compatibility":99,"releases":[{"id":"0100DD80146F0000","region":null}]},{"id":"7d72f140-8d96-4be7-9afc-4cea04cd4f87","directory":"bright-paw","title":"Bright Paw","compatibility":1,"releases":[{"id":"0100E0E0121D6000","region":null}]},{"id":"7d7f9f9e-1aa6-48b0-bf65-a77f77c2057b","directory":"where-the-bees-make-honey","title":"Where the Bees Make Honey","compatibility":99,"releases":[{"id":"01000C000C966000","region":null}]},{"id":"7d7fa6b9-4e32-4a33-a90c-727064eb94a6","directory":"ash-of-gods-redemption","title":"Ash of Gods: Redemption","compatibility":99,"releases":[{"id":"0100E4C00DE30000","region":null}]},{"id":"7d86c677-165a-4be4-960a-cb64ff497ebd","directory":"story-of-seasons-friends-of-mineral-town","title":"STORY OF SEASONS: Friends of Mineral Town","compatibility":1,"releases":[{"id":"0100ED400EEC2000","region":null}]},{"id":"7d9ef1ee-12a3-4671-9d3f-b56778e54b72","directory":"dungeon-escape","title":"Dungeon Escape","compatibility":99,"releases":[{"id":"01000BC0140C6000","region":null}]},{"id":"7db2f2da-022a-46af-9336-05742fe61d83","directory":"streets-of-red-devils-dare-deluxe","title":"Streets of Red - Devil's Dare Deluxe","compatibility":0,"releases":[{"id":"0100C1700A9F0000","region":null}]},{"id":"7db49f1f-8743-49dc-bbbd-9794c66a8f2f","directory":"castle-pals","title":"Castle Pals","compatibility":99,"releases":[{"id":"0100DA2011F18000","region":null}]},{"id":"7dbe4991-ed81-4ecf-af67-eb96a20d1d0d","directory":"skelittle-a-giant-party","title":"Skelittle: A Giant Party!","compatibility":99,"releases":[{"id":"01008E700F952000","region":null}]},{"id":"7dc5743c-b185-4aae-adc9-f919b55e0579","directory":"arcade-archives-ninja-gaiden","title":"Arcade Archives NINJA GAIDEN","compatibility":4,"releases":[{"id":"01003EF00D3B4000","region":null}]},{"id":"7dd4053c-0e8e-43fd-8c08-fe021c0d777b","directory":"vostok-inc-demo","title":"Vostok Inc. Demo","compatibility":99,"releases":[{"id":"010044200A112000","region":null}]},{"id":"7dd83b96-a3ed-4ce5-9210-6d50223043fb","directory":"sakura-in-gameland","title":"Sakura In Gameland","compatibility":99,"releases":[{"id":"01002D20129EC000","region":null}]},{"id":"7debf5b9-33fa-4f0d-8c27-36ccae2a865f","directory":"battlesloths","title":"BATTLESLOTHS","compatibility":99,"releases":[{"id":"010044E00D97C000","region":null}]},{"id":"7df1590e-a384-4a58-a807-053d9e43e1da","directory":"daylife-in-japan-pixel-art-jigsaw-puzzle","title":"Daylife in Japan - Pixel Art Jigsaw Puzzle","compatibility":99,"releases":[{"id":"010086A013904000","region":null}]},{"id":"7df5f68f-bfe6-484a-94df-f3f4ac9f3a09","directory":"60-seconds","title":"60 Seconds!","compatibility":3,"releases":[{"id":"0100969005E98000","region":null}]},{"id":"7df8b6b5-f6f4-4b92-a943-dcace0c9af53","directory":"arcade-archives-lightning-fighters","title":"Arcade Archives LIGHTNING FIGHTERS","compatibility":1,"releases":[{"id":"0100043011CEC000","region":null}]},{"id":"7dfd8e27-836b-405b-ac35-591eb28000b6","directory":"moai-vi-unexpected-guests","title":"Moai VI: Unexpected Guests","compatibility":99,"releases":[{"id":"010020400BDD2000","region":null}]},{"id":"7e10f785-0ba0-41d4-aa39-8c07255317c2","directory":"anime-studio-story","title":"Anime Studio Story","compatibility":99,"releases":[{"id":"010062500EB84000","region":null}]},{"id":"7e167dd4-0777-4856-9a94-6bbfdae9b6a6","directory":"the-prince-of-landis","title":"The Prince of Landis","compatibility":99,"releases":[{"id":"010058C015B82000","region":null}]},{"id":"7e1c0abb-2aa9-4706-af42-3b7a75d03145","directory":"red-wings-aces-of-the-sky","title":"Red Wings: Aces of the Sky","compatibility":1,"releases":[{"id":"0100D8A00E880000","region":null}]},{"id":"7e20b883-226f-4566-af97-197ded7f07ec","directory":"season-match-3-curse-of-the-witch-crow","title":"Season Match 3: Curse of the Witch Crow","compatibility":99,"releases":[{"id":"0100C8E00BDCE000","region":null}]},{"id":"7e2b3d64-eb38-4581-bc77-be8f14033fe2","directory":"son-of-a-witch","title":"Son of a Witch","compatibility":99,"releases":[{"id":"0100AD000B9AC000","region":null}]},{"id":"7e2ccd7c-6d0a-491b-b823-d159cee604c9","directory":"chasm","title":"Chasm","compatibility":0,"releases":[{"id":"0100DE200C350000","region":null}]},{"id":"7e338255-8be7-4215-9c75-7f816927bc54","directory":"jet-set-knights","title":"Jet Set Knights","compatibility":0,"releases":[{"id":"01005C1012C22000","region":null}]},{"id":"7e37d6f6-5e73-434b-97f5-a25bcec5de82","directory":"johnny-turbos-arcade-bad-dudes","title":"Johnny Turbo's Arcade: Bad Dudes","compatibility":5,"releases":[{"id":"01006E4003832000","region":null}]},{"id":"7e4160b3-5036-433b-9f8a-3a8ad697181c","directory":"forest-guardian","title":"Forest Guardian","compatibility":99,"releases":[{"id":"0100E9B01243C000","region":null}]},{"id":"7e4523d3-59cb-4632-9cd4-71ac674fe3c7","directory":"collection-of-mana","title":"Collection of Mana","compatibility":1,"releases":[{"id":"01002A600D7FC000","region":null}]},{"id":"7e474a55-1c18-43b5-8a99-d1817b3bb44b","directory":"duped","title":"Duped","compatibility":99,"releases":[{"id":"01008AE00E95C000","region":null}]},{"id":"7e5193ea-34ec-4ed3-aa0c-0b1f21a6e1ec","directory":"eldest-souls","title":"Eldest Souls","compatibility":2,"releases":[{"id":"010093C00F30A000","region":null}]},{"id":"7e5a6768-bce0-4ea8-9a4c-c9c110fd78a5","directory":"sonic-colors-ultimate","title":"Sonic Colors: Ultimate","compatibility":1,"releases":[{"id":"010040E0116B8000","region":null}]},{"id":"7e5babe1-bc2f-456b-807f-77e73dec762a","directory":"trailer-trashers","title":"Trailer Trashers","compatibility":99,"releases":[{"id":"0100EB701117A000","region":null}]},{"id":"7e5ed3cb-2207-4f96-8221-b42519fdbe67","directory":"squeakers-ii","title":"Squeakers II","compatibility":99,"releases":[{"id":"0100BD80153BC000","region":null}]},{"id":"7e60059d-eaf6-4172-bb9d-584c17d54734","directory":"arcade-archives-burnin-rubber","title":"Arcade Archives BURNIN' RUBBER","compatibility":0,"releases":[{"id":"01003B4012478000","region":null}]},{"id":"7e653402-b065-4e9c-95e3-181276e6d735","directory":"lets-play-oink-games","title":"Let’s Play! Oink Games","compatibility":99,"releases":[{"id":"01001A8015506000","region":null}]},{"id":"7e79633e-d726-4788-831e-253424eafc59","directory":"super-crate-box","title":"Super Crate Box","compatibility":0,"releases":[{"id":"0100B2D00C63A000","region":null}]},{"id":"7e7caf45-d127-4cbe-98c0-637c970ccbb5","directory":"arcade-archives-route-16","title":"Arcade Archives ROUTE 16","compatibility":99,"releases":[{"id":"010060000BF7C000","region":null}]},{"id":"7e864b90-a58c-4fe0-b48f-814409d55131","directory":"arcade-archives-ben-bero-beh","title":"Arcade Archives BEN BERO BEH","compatibility":99,"releases":[{"id":"01004D0012D28000","region":null}]},{"id":"7e9cf58b-5649-4b64-a5b9-b3890be5b3f8","directory":"football-manager-2021-touch","title":"Football Manager 2021 Touch","compatibility":5,"releases":[{"id":"01007CF013152000","region":null}]},{"id":"7eae988b-9ee9-4c82-9021-7f1cedb742dc","directory":"mega-man-legacy-collection","title":"Mega Man Legacy Collection","compatibility":2,"releases":[{"id":"01002D4007AE0000","region":null}]},{"id":"7eb071d1-f760-4e13-80d6-786c74fdc0f7","directory":"pokemon-quest","title":"Pokémon Quest","compatibility":1,"releases":[{"id":"01005D100807A000","region":null}]},{"id":"7ebc9f3d-e64e-4086-b66e-4f94bd053cae","directory":"pixel-game-maker-series-biggerman-io","title":"Pixel Game Maker Series Biggerman.io","compatibility":99,"releases":[{"id":"0100AD9016C6C000","region":null}]},{"id":"7ec587d0-6a79-475a-927d-7de2ae8adb65","directory":"tamashii","title":"Tamashii","compatibility":99,"releases":[{"id":"010012800EE3E000","region":null}]},{"id":"7ed6a71a-34d2-4940-b17f-a3695086af77","directory":"sparkle-3-genesis","title":"Sparkle 3 Genesis","compatibility":99,"releases":[{"id":"01005E200A3AC000","region":null}]},{"id":"7edffeb1-c595-43b0-9701-8abf82b1fbf6","directory":"undertale","title":"Undertale","compatibility":1,"releases":[{"id":"010080B00AD66000","region":null}]},{"id":"7ee00a32-f7f9-48d0-b9f8-3390a6df1a3f","directory":"a-dark-room","title":"A Dark Room","compatibility":99,"releases":[{"id":"010021D00D53E000","region":null}]},{"id":"7efc10cd-5948-48db-9a41-e94e68da84d4","directory":"north","title":"NORTH","compatibility":99,"releases":[{"id":"01004840086FE000","region":null}]},{"id":"7f06e839-7cd8-4625-a703-ecc4f656d00a","directory":"summer-in-mara","title":"Summer in Mara","compatibility":1,"releases":[{"id":"0100A130109B2000","region":null}]},{"id":"7f61e657-0704-4700-b19d-1c7c70c0034c","directory":"dead-ground","title":"Dead Ground","compatibility":99,"releases":[{"id":"010075C013AA0000","region":null}]},{"id":"7f6281b5-ec35-4522-bca9-c59d249b465c","directory":"6souls","title":"6Souls","compatibility":99,"releases":[{"id":"0100421016BF2000","region":null}]},{"id":"7f6650e1-b271-4f04-ab9a-39bb121f996d","directory":"o-o","title":"O---O","compatibility":99,"releases":[{"id":"01002E6014FC4000","region":null}]},{"id":"7f678dbd-70c3-424c-90ee-afa68eb62cfc","directory":"apocalipsis-wormwood-edition","title":"Apocalipsis Wormwood Edition","compatibility":1,"releases":[{"id":"01008FC00C5BC000","region":null}]},{"id":"7f6fd53a-a1bb-4851-b38b-3c2100a01c1c","directory":"strange-brigade","title":"Strange Brigade","compatibility":4,"releases":[{"id":"01001DC012E7E000","region":null}]},{"id":"7f7a7505-d5a7-41a7-b4c2-f079309dccd1","directory":"march-to-a-million","title":"March to a Million","compatibility":99,"releases":[{"id":"010097500E552000","region":null}]},{"id":"7f806ffd-8a0b-4b83-a5be-67aaf082f107","directory":"what-the-box","title":"What the Box?","compatibility":99,"releases":[{"id":"010066F00DD50000","region":null}]},{"id":"7f8ca5b1-4bfd-47ab-be31-e6ef40ed59cf","directory":"innerspace","title":"InnerSpace","compatibility":0,"releases":[{"id":"0100F200049C8000","region":null}]},{"id":"7f97e748-0eb3-4f2a-a208-138f5d397afb","directory":"arcade-archives-ninja-kid-ii","title":"Arcade Archives Ninja-Kid II","compatibility":4,"releases":[{"id":"0100D3F009810000","region":null}]},{"id":"7f992364-9576-4902-b054-eeee29cbae00","directory":"ultimate-custom-night","title":"Ultimate Custom Night","compatibility":99,"releases":[{"id":"010033500E444000","region":null}]},{"id":"7fa3b028-8212-4c15-aaa0-0767ac4dcad8","directory":"hot-gimmick-cosplay-jong-for-nintendo-switch","title":"Hot Gimmick Cosplay-jong for Nintendo Switch","compatibility":99,"releases":[{"id":"010025A00AACE000","region":null}]},{"id":"7faf0569-72f5-4909-b3d4-bd574060d1c8","directory":"ninja-buddy-epic-quest","title":"Ninja Buddy Epic Quest","compatibility":99,"releases":[{"id":"0100573013D46000","region":null}]},{"id":"7fc9e74f-94df-472a-a33d-52b368f24883","directory":"tales-of-the-tiny-planet","title":"Tales of the Tiny Planet","compatibility":1,"releases":[{"id":"0100408007078000","region":null}]},{"id":"7fcc120b-ef19-4ec0-96d1-0b5c5c60eee4","directory":"ghost-of-a-tale","title":"Ghost of a Tale","compatibility":3,"releases":[{"id":"0100D140112BC000","region":null}]},{"id":"7fd3d3e1-dfd2-4f0e-9cf0-c3424d681a2e","directory":"avenger-bird","title":"Avenger Bird","compatibility":99,"releases":[{"id":"010016300D172000","region":null}]},{"id":"7fdecffb-a163-4bd7-8026-62f854d707fc","directory":"geminose-animal-popstars","title":"Geminose Animal Popstars","compatibility":99,"releases":[{"id":"0100DBC013492000","region":null}]},{"id":"7fe6ef8f-4dcb-4021-8553-3a2775f3688d","directory":"warplanes-ww1-sky-aces","title":"Warplanes: WW1 Sky Aces","compatibility":99,"releases":[{"id":"01005E201301A000","region":null}]},{"id":"7ff4bfe4-94b8-4a0b-a811-545e11c6dd4f","directory":"earthworms-demo","title":"Earthworms Demo","compatibility":99,"releases":[{"id":"0100E3500BD84000","region":null}]},{"id":"8010d5cc-6505-4a47-9f59-6f4c2679c62c","directory":"milanoir","title":"Milanoir","compatibility":3,"releases":[{"id":"0100CFF0048D2000","region":null}]},{"id":"8019aa5b-b85a-43c5-9352-cbdddf281d2d","directory":"danger-scavenger","title":"Danger Scavenger","compatibility":99,"releases":[{"id":"0100EFA013E7C000","region":null}]},{"id":"801b6009-d079-41ed-9da8-d1029843484a","directory":"skyland-rush-air-raid-attack","title":"Skyland Rush - Air Raid Attack","compatibility":99,"releases":[{"id":"0100CAC011F46000","region":null}]},{"id":"801cd70a-f406-465c-b331-d5b616050dae","directory":"desktop-soccer-trial-edition","title":"Desktop Soccer Trial Edition","compatibility":99,"releases":[{"id":"010047300CB92000","region":null}]},{"id":"80393f41-219f-4ca5-8a29-39f551f71519","directory":"outlast-bundle-of-terror","title":"Outlast: Bundle of Terror","compatibility":1,"releases":[{"id":"01008D4007A1E000","region":null}]},{"id":"803cc555-aa83-4331-9121-54f1bbc2bbcf","directory":"super-wiloo-demake","title":"Super Wiloo Demake","compatibility":99,"releases":[{"id":"010076300EE80000","region":null}]},{"id":"803d72e1-c6e4-4dc7-ac68-b0182c48fe8f","directory":"johnny-turbos-arcade-two-crude-dudes","title":"Johnny Turbo's Arcade: Two Crude Dudes","compatibility":4,"releases":[{"id":"010080D002CC6000","region":null}]},{"id":"803e401e-2611-476e-a449-92190b107737","directory":"wild-horror-pinball","title":"Wild & Horror Pinball","compatibility":99,"releases":[{"id":"0100D0A0164C6000","region":null}]},{"id":"8041204d-4f52-4081-8571-fc644a701460","directory":"jigsaw-finale","title":"Jigsaw Finale","compatibility":99,"releases":[{"id":"01007B201621A000","region":null}]},{"id":"804481dd-6a32-4775-b80e-a3f8290cd245","directory":"silver-chains","title":"Silver Chains","compatibility":1,"releases":[{"id":"0100074010E74000","region":null}]},{"id":"806224c3-bed3-4084-8602-efeac41f493e","directory":"city-bus-driving-simulator","title":"City Bus Driving Simulator","compatibility":99,"releases":[{"id":"01005E501284E000","region":null}]},{"id":"806c712b-cf74-4185-80fa-65c56bd3f50d","directory":"one-last-memory","title":"One Last Memory","compatibility":99,"releases":[{"id":"0100C19015F0C000","region":null}]},{"id":"8079e5ad-1c6d-4c80-97e0-c5cc04074b1e","directory":"isolomus","title":"Isolomus","compatibility":99,"releases":[{"id":"010001F0145A8000","region":null}]},{"id":"807b7f06-ca22-4ba0-afdb-1bfc44ec9fd1","directory":"hexologic","title":"Hexologic","compatibility":99,"releases":[{"id":"010016300A95A000","region":null}]},{"id":"807c53b4-968a-4888-bffc-064be78aaa4b","directory":"boot-hill-bounties","title":"Boot Hill Bounties","compatibility":99,"releases":[{"id":"0100D5900B4CA000","region":null}]},{"id":"807fe4d3-e4e0-4f52-9008-2327b6ccb083","directory":"atelier-sophie-the-alchemist-of-the-mysterious-book-dx","title":"Atelier Sophie: The Alchemist of the Mysterious Book DX","compatibility":2,"releases":[{"id":"0100D8701421C000","region":null}]},{"id":"80808b12-ce36-46ff-a4d0-97191e820fcf","directory":"mutant-year-zero-road-to-eden-deluxe-edition","title":"Mutant Year Zero: Road to Eden - Deluxe Edition","compatibility":99,"releases":[{"id":"0100E6B00DEA4000","region":null}]},{"id":"80910432-d4da-4869-9a12-acc8c400e85e","directory":"my-universe-fashion-boutique","title":"My Universe - Fashion Boutique","compatibility":99,"releases":[{"id":"0100F71011A0A000","region":null}]},{"id":"80ab008f-3327-4bc0-a376-0fd30337ac4b","directory":"farmer-sim-2020","title":"Farmer Sim 2020","compatibility":3,"releases":[{"id":"01001BB00F20E000","region":null}]},{"id":"80bf96df-f2fc-471e-b487-c32999a8b8b2","directory":"i-am-dead","title":"I Am Dead","compatibility":99,"releases":[{"id":"0100E6501145E000","region":null}]},{"id":"80c61888-d1a4-4861-849b-9a4647af210e","directory":"pillar","title":"Pillar","compatibility":99,"releases":[{"id":"010098500D532000","region":null}]},{"id":"80d3b4f8-5a4f-49a6-8906-4863162fb2bb","directory":"find-10-differences","title":"Find 10 Differences","compatibility":99,"releases":[{"id":"010046801537E000","region":null}]},{"id":"80d5c6c6-5fbc-4041-8146-8b2d56036dcc","directory":"the-first-tree","title":"The First Tree","compatibility":0,"releases":[{"id":"010098800A1E4000","region":null}]},{"id":"80e307cc-0d46-413f-a331-2d726de900c4","directory":"30-in-1-game-collection","title":"30-in-1 Game Collection","compatibility":99,"releases":[{"id":"010056D00E234000","region":null}]},{"id":"80e9da6c-1ec9-4aae-8e07-0e02ac0505b8","directory":"wilmots-warehouse","title":"Wilmot's Warehouse","compatibility":99,"releases":[{"id":"010071F00D65A000","region":null}]},{"id":"80eea466-cfd5-445d-b9ee-dd2cc21a06c0","directory":"monster-truck-xt-airport-derby","title":"Monster Truck XT Airport Derby","compatibility":0,"releases":[{"id":"01000460144B4000","region":null}]},{"id":"80ff340b-7988-414f-9708-22d4ee5ab123","directory":"sushi-reversi","title":"SUSHI REVERSI","compatibility":99,"releases":[{"id":"01005AB01119C000","region":null}]},{"id":"810b8530-916d-4452-8623-9ebc5aa8d6d4","directory":"dininho-adventures","title":"Dininho Adventures","compatibility":2,"releases":[{"id":"01002E4011924000","region":null}]},{"id":"81277741-1405-49a3-a544-085948b1c868","directory":"townscaper","title":"Townscaper","compatibility":99,"releases":[{"id":"01001260143FC000","region":null}]},{"id":"812a7c12-9679-4651-8a14-8274f1efe8a3","directory":"ty-the-tasmanian-tiger-hd","title":"TY the Tasmanian Tiger HD","compatibility":3,"releases":[{"id":"010038400C2FE000","region":null}]},{"id":"8136c93a-e17b-4899-9e39-2ad2aa9e4c66","directory":"romeow-in-the-cracked-world","title":"Romeow: in the cracked world","compatibility":99,"releases":[{"id":"0100DE9016798000","region":null}]},{"id":"8137e65f-985d-4e57-addf-f4a6978361bb","directory":"hunters-legacy-purrfect-edition","title":"Hunter's Legacy: Purrfect Edition","compatibility":99,"releases":[{"id":"010068000CAC0000","region":null}]},{"id":"81435995-203f-4231-bb46-383fce97590f","directory":"aca-neogeo-galaxy-fight-universal-warriors","title":"ACA NEOGEO GALAXY FIGHT: UNIVERSAL WARRIORS","compatibility":2,"releases":[{"id":"01002580038DE000","region":null}]},{"id":"8146d74d-300b-4beb-a4c5-9b3bf322efd5","directory":"cinderella-an-interactive-fairytale","title":"Cinderella - An Interactive Fairytale","compatibility":99,"releases":[{"id":"010002200CECA000","region":null}]},{"id":"814aa3ea-620f-4d98-8ed0-356af6774973","directory":"the-adventures-of-elena-temple","title":"The Adventures of Elena Temple","compatibility":99,"releases":[{"id":"010035C00A4BC000","region":null}]},{"id":"814d5be5-d1f2-4a61-9909-7077e00a1a7f","directory":"car-trader-simulator","title":"Car Trader Simulator","compatibility":99,"releases":[{"id":"0100E5E010EA6000","region":null}]},{"id":"8151b3d7-d332-4774-b4ee-51aa65133488","directory":"skelattack","title":"Skelattack","compatibility":1,"releases":[{"id":"01001A900F862000","region":null}]},{"id":"815204ec-8395-4ca0-b8e0-0277b47818d1","directory":"professional-construction-the-simulation","title":"Professional Construction – The Simulation","compatibility":99,"releases":[{"id":"0100A9800A1B6000","region":null}]},{"id":"8154c209-7fc3-49e0-97c8-f5bdb42142be","directory":"tales-of-djungarian-hamster","title":"Tales of Djungarian Hamster","compatibility":99,"releases":[{"id":"0100D6F012AE6000","region":null}]},{"id":"81554e8d-e085-46b1-b4d3-f44a6a7754ed","directory":"shining-resonance-refrain-demo","title":"Shining Resonance Refrain Demo","compatibility":99,"releases":[{"id":"01006EE00AE38000","region":null}]},{"id":"815857a9-41db-4d5e-86a6-1b7a10580e70","directory":"arcade-archives-space-cruiser","title":"Arcade Archives SPACE CRUISER","compatibility":99,"releases":[{"id":"0100B43015796000","region":null}]},{"id":"8160310e-562f-4f46-a000-dc7d273f221a","directory":"vectronom","title":"Vectronom","compatibility":99,"releases":[{"id":"010084000DAF6000","region":null}]},{"id":"8168aece-e52b-4370-90cd-c364af53269b","directory":"lost-lands-dark-overlord-free-to-play","title":"Lost Lands: Dark Overlord (free to play)","compatibility":99,"releases":[{"id":"0100A3B0107AE000","region":null}]},{"id":"8183851a-7add-4b2d-912f-ff9e6c4434ad","directory":"splashy-cube","title":"Splashy Cube","compatibility":99,"releases":[{"id":"01000650134FE000","region":null}]},{"id":"818a8d2f-c6fc-44ad-b80f-2f6ee789f32e","directory":"immortal-realms-vampire-wars","title":"Immortal Realms: Vampire Wars","compatibility":99,"releases":[{"id":"010079501025C000","region":null}]},{"id":"81a456d3-355f-4997-8c53-832037d5bf24","directory":"ghostbusters-the-video-game-remastered","title":"Ghostbusters: The Video Game Remastered","compatibility":3,"releases":[{"id":"0100EAE00D9EC000","region":null}]},{"id":"81b44865-a038-4205-afb7-27e18390a549","directory":"zombie-hill-race","title":"Zombie Hill Race","compatibility":0,"releases":[{"id":"01001010134EA000","region":null}]},{"id":"81b8a386-9ab2-4781-a56c-8739a6a70805","directory":"impossible-mission","title":"Impossible Mission","compatibility":5,"releases":[{"id":"0100345009240000","region":null}]},{"id":"81c2b67a-df44-48c4-9fe2-dceca7999493","directory":"myastere-ruins-of-deazniff","title":"Myastere -Ruins of Deazniff-","compatibility":5,"releases":[{"id":"01003E3013BE4000","region":null}]},{"id":"81cd6357-aff5-4f69-a78b-6e703fef41a3","directory":"the-last-dead-end","title":"The Last Dead End","compatibility":99,"releases":[{"id":"0100AAD011592000","region":null}]},{"id":"81e356a5-aa8b-4cfc-93d5-73ad902285b8","directory":"aaa-clock","title":"AAA Clock","compatibility":99,"releases":[{"id":"0100179015DE0000","region":null}]},{"id":"81e5c9e9-856a-4133-a930-9fa8cc29018a","directory":"ramageddon","title":"Ramageddon","compatibility":99,"releases":[{"id":"0100D7801281A000","region":null}]},{"id":"81f85c11-b7b5-4a53-9172-82fd2d868c33","directory":"flying-girl-striker","title":"FLYING GIRL STRIKER","compatibility":99,"releases":[{"id":"0100CCA00EDCE000","region":null}]},{"id":"81fb495f-e8cb-4b7f-abba-71f0df61f3a0","directory":"jewel-fever-2","title":"Jewel Fever 2","compatibility":99,"releases":[{"id":"0100A4900B2DE000","region":null}]},{"id":"8209e9a5-8b7a-476c-abf2-2ed8a2c6c639","directory":"fighting-fantasy-legends","title":"Fighting Fantasy Legends","compatibility":99,"releases":[{"id":"01003C5015608000","region":null}]},{"id":"8210137f-7f9d-4894-a663-faf08973f201","directory":"pineview-drive","title":"Pineview Drive","compatibility":99,"releases":[{"id":"010000F013E10000","region":null}]},{"id":"82125e34-ebd4-4853-8d27-b49bf8b60298","directory":"staxel","title":"Staxel","compatibility":99,"releases":[{"id":"0100FEF00BE9C000","region":null}]},{"id":"82225d5a-5112-44a2-ad30-7e5321a46758","directory":"country-tales","title":"Country Tales","compatibility":99,"releases":[{"id":"0100C1E012A42000","region":null}]},{"id":"82349dec-4045-483f-9d9d-0e0eea9d8acf","directory":"aca-neogeo-power-spikes-ii","title":"ACA NEOGEO POWER SPIKES II","compatibility":3,"releases":[{"id":"01000F3008718000","region":null}]},{"id":"824e13bb-831a-4c80-95d6-390b1e1cc5e4","directory":"voez","title":"VOEZ","compatibility":0,"releases":[{"id":"0100A7F002830000","region":null}]},{"id":"824f3a32-cb40-4da9-9620-98827bd08bd1","directory":"raiden-v-directors-cut","title":"Raiden V: Director's Cut","compatibility":4,"releases":[{"id":"01002B000D97E000","region":null}]},{"id":"82608e63-69a5-4e43-a9cf-c000f8a0125b","directory":"the-journey-down-chapter-three","title":"The Journey Down: Chapter Three","compatibility":99,"releases":[{"id":"01006BC00B188000","region":null}]},{"id":"82618761-07d9-4f84-84e5-5a27e3ccb1c3","directory":"mainframe-defenders","title":"Mainframe Defenders","compatibility":99,"releases":[{"id":"0100B2801518E000","region":null}]},{"id":"82619092-90b9-481d-a247-d54eb0f95a67","directory":"void","title":"V.O.I.D.","compatibility":99,"releases":[{"id":"010040000D08E000","region":null}]},{"id":"8267c6d7-ff9d-4846-b3a6-c9b8cf5bfeed","directory":"old-school-rpg-bundle","title":"Old School RPG Bundle","compatibility":99,"releases":[{"id":"010053200F49E000","region":null}]},{"id":"82687868-0a4a-4ae2-93c2-03479664a200","directory":"airfield-mania","title":"Airfield Mania","compatibility":99,"releases":[{"id":"01009DF00DB42000","region":null}]},{"id":"8268fe5f-1551-474e-a2d7-f0a38808fe9b","directory":"mighty-gunvolt-burst-demo","title":"MIGHTY GUNVOLT BURST Demo","compatibility":4,"releases":[{"id":"010045B00849C000","region":null}]},{"id":"826d9568-2837-4e67-8419-7962dda73552","directory":"the-adventures-of-elena-temple-definitive-edition","title":"The Adventures of Elena Temple: Definitive Edition","compatibility":99,"releases":[{"id":"0100F5D01034E000","region":null}]},{"id":"82703798-50b2-4b0f-9cc4-abdd2b2fae0d","directory":"bayala-the-game","title":"bayala - the game","compatibility":99,"releases":[{"id":"0100194010422000","region":null}]},{"id":"827b3b8d-42f1-4a4c-b74e-363b98ff1167","directory":"ultimate-racing-2d","title":"Ultimate Racing 2D","compatibility":0,"releases":[{"id":"01009D000FAE0000","region":null}]},{"id":"8280218e-668c-456c-80b7-526d74f52410","directory":"wheel-of-fortune","title":"Wheel of Fortune","compatibility":2,"releases":[{"id":"010033600ADE6000","region":null}]},{"id":"8283c607-9b19-42ff-aecf-713d2ec9dc33","directory":"observer","title":"Observer","compatibility":1,"releases":[{"id":"01002A000C478000","region":null}]},{"id":"8298ab2f-ebfb-4422-9701-3e1d8e00da6c","directory":"winkings","title":"WinKings","compatibility":99,"releases":[{"id":"010046F00F5E4000","region":null}]},{"id":"829d239a-abbd-44d7-8d44-311e6a567415","directory":"steinsgate-my-darlings-embrace","title":"STEINS;GATE: My Darling's Embrace","compatibility":99,"releases":[{"id":"0100CB400E9BC000","region":null}]},{"id":"82aaed85-a436-4fac-9eb9-3deccf0d8d5b","directory":"enigmatis-2-the-mists-of-ravenwood","title":"Enigmatis 2: The Mists of Ravenwood","compatibility":5,"releases":[{"id":"0100C6200A0AA000","region":null}]},{"id":"82b09097-8cd2-44b3-95b2-6c7ca9877fee","directory":"arcade-archives-pirate-pete","title":"Arcade Archives PIRATE PETE","compatibility":99,"releases":[{"id":"0100FAC011CEE000","region":null}]},{"id":"82b17c91-63cf-4724-8c54-49170e033579","directory":"monument","title":"Monument","compatibility":99,"releases":[{"id":"010091C013F6E000","region":null}]},{"id":"82c37a13-f76b-48a5-85ca-0a1980cc79c9","directory":"keep-talking-and-nobody-explodes","title":"Keep Talking and Nobody Explodes","compatibility":99,"releases":[{"id":"01008D400A584000","region":null}]},{"id":"82d1cf54-8b47-47f5-984c-770b313c4872","directory":"the-addams-family-mansion-mayhem","title":"The Addams Family: Mansion Mayhem","compatibility":1,"releases":[{"id":"01007B701315E000","region":null}]},{"id":"82d27cca-cb2e-44c9-b7c3-f4d89681b61b","directory":"ministry-of-broadcast","title":"Ministry of Broadcast","compatibility":99,"releases":[{"id":"010069200EB80000","region":null}]},{"id":"82db4e64-5c02-441d-9a2d-671ba7ba73be","directory":"rise-of-the-slime","title":"Rise of the Slime","compatibility":99,"releases":[{"id":"01000CA013AF2000","region":null}]},{"id":"82dfc0a0-8226-4c59-9b7e-9d555e0873bb","directory":"volta-x","title":"Volta-X","compatibility":99,"releases":[{"id":"0100A7900E79C000","region":null}]},{"id":"82e8408a-8cd0-46ea-bf02-8009dd9bb103","directory":"stikbold-a-dodgeball-adventure-deluxe","title":"Stikbold! A Dodgeball Adventure DELUXE","compatibility":99,"releases":[{"id":"0100E24006FA8000","region":null}]},{"id":"82ea772c-67d8-4080-acae-57b2ec919316","directory":"slabwell-the-quest-for-kaktuns-alpaca","title":"SlabWell: The Quest For Kaktun's Alpaca","compatibility":99,"releases":[{"id":"01003AD00DEAE000","region":null}]},{"id":"82f14198-45ea-4d4d-a6d0-aee5df38faef","directory":"nullum","title":"Nullum","compatibility":99,"releases":[{"id":"0100EE5013198000","region":null}]},{"id":"82f98319-586e-43d3-a4e5-ef87e2e03382","directory":"downwell","title":"Downwell","compatibility":5,"releases":[{"id":"010093D00C726000","region":null}]},{"id":"82f99bfb-462d-43b7-b36a-fd12c5cf93a8","directory":"batbarian-testament-of-the-primordials","title":"Batbarian: Testament of the Primordials","compatibility":1,"releases":[{"id":"01005F3012748000","region":null}]},{"id":"830a7778-4bd8-41c5-b7c3-d98f6625cd18","directory":"scarlett-mysteries-cursed-child","title":"Scarlett Mysteries: Cursed Child","compatibility":99,"releases":[{"id":"01006A800FD60000","region":null}]},{"id":"831a58ce-10b0-4391-a1b7-e8f73e87f155","directory":"crayola-scoot","title":"Crayola Scoot","compatibility":2,"releases":[{"id":"0100C66007E96000","region":null}]},{"id":"831af724-fc38-4afd-a23c-ed56f55cbdf9","directory":"arcade-archives-legend-of-makai","title":"Arcade Archives LEGEND OF MAKAI","compatibility":99,"releases":[{"id":"01007DB013B06000","region":null}]},{"id":"8321e063-2ca6-44b7-a6e1-ab5db7f4613f","directory":"sparkle-2-evo","title":"Sparkle 2 EVO","compatibility":99,"releases":[{"id":"010079F00671C000","region":null}]},{"id":"832a5531-43af-4714-be47-e192855f8fb8","directory":"arcade-space-shooter-2-in-1","title":"Arcade Space Shooter 2 in 1","compatibility":99,"releases":[{"id":"0100717014938000","region":null}]},{"id":"832be336-92ba-46a2-80ac-0f56f516903b","directory":"9-ball-pocket","title":"9-Ball Pocket","compatibility":99,"releases":[{"id":"0100D63016060000","region":null}]},{"id":"832d2fcb-f62e-4236-8a19-d45ae9d9773a","directory":"lawnmower-game-racing","title":"Lawnmower Game: Racing","compatibility":99,"releases":[{"id":"0100065013F20000","region":null}]},{"id":"83380732-03b1-4f67-9946-c145c1842348","directory":"ethan-meteor-hunter","title":"Ethan: Meteor Hunter","compatibility":99,"releases":[{"id":"0100CDE00C87C000","region":null}]},{"id":"8344e3ae-8cdd-48ae-8e08-75b9ae7e7aef","directory":"neon-hell","title":"Neon Hell","compatibility":99,"releases":[{"id":"01009B90169D8000","region":null}]},{"id":"83588d34-ac66-4675-8018-502315a3a00c","directory":"spider-solitaire","title":"Spider Solitaire","compatibility":99,"releases":[{"id":"010092A0102AE000","region":null}]},{"id":"837564bc-3246-41a2-908d-5e8952a61e00","directory":"secret-files-2-puritas-cordis","title":"Secret Files 2: Puritas Cordis","compatibility":99,"releases":[{"id":"010079100D950000","region":null}]},{"id":"83766ac8-8652-4c6f-8769-412aea2027c9","directory":"summer-sports-games","title":"Summer Sports Games","compatibility":0,"releases":[{"id":"010083600D930000","region":null}]},{"id":"83818685-e693-4f8b-914a-061fc7a44c16","directory":"crysis-remastered","title":"Crysis Remastered","compatibility":2,"releases":[{"id":"0100E66010ADE000","region":null}]},{"id":"83884900-4a12-4bd1-9155-9624b0f91c7f","directory":"worbital","title":"Worbital","compatibility":99,"releases":[{"id":"010097A0071A8000","region":null}]},{"id":"838c1d06-4b10-4428-af60-e9bef4b21302","directory":"just-shapes-and-beats","title":"Just Shapes & Beats","compatibility":3,"releases":[{"id":"0100830008426000","region":null}]},{"id":"83914aa8-113d-4178-b4cc-636be0c7e9de","directory":"10-second-run-returns-demo","title":"10 Second Run RETURNS Demo","compatibility":3,"releases":[{"id":"0100DC000A472000","region":null}]},{"id":"83977584-09a5-4730-8ff5-b7b20ab78f01","directory":"silver-falls-episode-prelude","title":"Silver Falls Episode Prelude","compatibility":99,"releases":[{"id":"010038B0147E2000","region":null}]},{"id":"8398cd6c-ab74-40d2-9b37-fe4e62031e0e","directory":"spice-and-wolf-vr","title":"Spice and Wolf VR","compatibility":0,"releases":[{"id":"0100C9B00EAEE000","region":null}]},{"id":"83ab0d35-bea9-4364-9a70-c3bc91acbe03","directory":"nerved","title":"Nerved","compatibility":99,"releases":[{"id":"01008B0010160000","region":null}]},{"id":"83b607a7-6db9-4ffc-921e-b6075612109c","directory":"sweet-bakery-tycoon","title":"Sweet Bakery Tycoon","compatibility":99,"releases":[{"id":"010072401447A000","region":null}]},{"id":"83ba7be9-2f2c-42e3-ba56-f1ff6a0e0943","directory":"aca-neogeo-zed-blade","title":"ACA NEOGEO ZED BLADE","compatibility":4,"releases":[{"id":"01005AF004DBC000","region":null}]},{"id":"83c3dd31-1a8a-4469-873d-e6f1c7e93b7b","directory":"postal-redux","title":"Postal REDUX","compatibility":99,"releases":[{"id":"0100C31011C24000","region":null}]},{"id":"83c4cfe4-4793-4049-8860-e97edd2c715e","directory":"the-bridge-demo","title":"The Bridge Demo","compatibility":99,"releases":[{"id":"0100E3500B00E000","region":null}]},{"id":"83cee6f0-c2e7-4680-a620-26a3fd8b2826","directory":"mystic-fate","title":"Mystic Fate","compatibility":99,"releases":[{"id":"010059701386C000","region":null}]},{"id":"83df5578-cd06-4ecb-b6b7-7d9aadc06204","directory":"awesome-pea-demo","title":"Awesome Pea (Demo)","compatibility":99,"releases":[{"id":"010023800D3F2000","region":null}]},{"id":"83e0433d-833d-4680-a4e7-dfe81ce479f3","directory":"aca-neogeo-blues-journey","title":"ACA NEOGEO BLUE'S JOURNEY","compatibility":1,"releases":[{"id":"0100379003900000","region":null}]},{"id":"83e9f8d8-9a25-4591-b1f9-77b1732ee53d","directory":"roundguard","title":"Roundguard","compatibility":99,"releases":[{"id":"010074300F7F6000","region":null}]},{"id":"83eec6a0-73b0-4ef9-945e-01f35d067db5","directory":"escape-game-aloha","title":"Escape Game : Aloha","compatibility":99,"releases":[{"id":"010079100A2F4000","region":null}]},{"id":"83f3403f-f4e3-4bce-9db3-c06472800543","directory":"dead-end-job","title":"Dead End Job","compatibility":99,"releases":[{"id":"01004C500BD40000","region":null}]},{"id":"84104c4b-a53e-4bce-8671-022ea96b6e10","directory":"assault-on-metaltron","title":"Assault On Metaltron","compatibility":99,"releases":[{"id":"0100F0A00C2F2000","region":null}]},{"id":"843225fb-96e4-471a-9cc4-b88c93f30833","directory":"ninjala","title":"Ninjala","compatibility":4,"releases":[{"id":"0100CCD0073EA000","region":null}]},{"id":"843d7b9d-ca76-490d-ad51-89cfc210b4c9","directory":"poison-control","title":"Poison Control","compatibility":1,"releases":[{"id":"0100EB6012FD2000","region":null}]},{"id":"844616dd-1c04-48bf-a472-d45faf2a6dda","directory":"hero-u-rogue-to-redemption","title":"Hero-U: Rogue to Redemption","compatibility":99,"releases":[{"id":"010077D01094C000","region":null}]},{"id":"8449f377-5d3c-41ad-9e01-f0623468fc64","directory":"root-letter-last-answer","title":"Root Letter: Last Answer","compatibility":3,"releases":[{"id":"010030A00DA3A000","region":null}]},{"id":"844a109e-c8ba-4ef0-81e8-d258b1b21ba5","directory":"hello-kitty-kruisers-with-sanrio-friends","title":"Hello Kitty Kruisers With Sanrio Friends","compatibility":1,"releases":[{"id":"010087D0084A8000","region":null}]},{"id":"844af9c6-a1d2-4d37-badc-6ca352273ef0","directory":"arcade-archives-donkey-kong","title":"Arcade Archives DONKEY KONG","compatibility":1,"releases":[{"id":"0100E9E00B052000","region":null}]},{"id":"8450ab3b-34e8-40ac-81ea-50e90771cb49","directory":"rxn-raijin-","title":"RXN -Raijin-","compatibility":1,"releases":[{"id":"010012C0060F0000","region":null}]},{"id":"8458a748-9bf0-4ba5-85f9-7b089bea3b2e","directory":"captain-sabertooth-and-the-magic-diamond","title":"Captain Sabertooth and the Magic Diamond","compatibility":3,"releases":[{"id":"0100F0C011A0C000","region":null}]},{"id":"8461201b-48a5-4d1b-9058-d91572acbca3","directory":"headliner-novinews","title":"Headliner: NoviNews","compatibility":99,"releases":[{"id":"0100EFE00E1DC000","region":null}]},{"id":"8462dbcf-117b-4531-a628-f195a8e5d7a7","directory":"monster-prom-xxl","title":"Monster Prom: XXL","compatibility":99,"releases":[{"id":"0100C9600D028000","region":null}]},{"id":"84695a43-aaa0-4769-a7d6-4fbb6a98846e","directory":"goonya-fighter","title":"Goonya Fighter","compatibility":99,"releases":[{"id":"010098000D646000","region":null}]},{"id":"846a4ba3-4b32-42f5-b933-a3b97c2e1832","directory":"arcade-archives-urban-champion","title":"Arcade Archives URBAN CHAMPION","compatibility":4,"releases":[{"id":"010042200BE0C000","region":null}]},{"id":"8478e318-7d20-4edd-9ecc-f791906c80c8","directory":"timingooo","title":"TIMINGooo!","compatibility":99,"releases":[{"id":"010074B0168F2000","region":null}]},{"id":"848b241a-0356-4f39-9036-4187ef94e78d","directory":"full-metal-furies","title":"Full Metal Furies","compatibility":4,"releases":[{"id":"010079300AD54000","region":null}]},{"id":"848ce2b3-702f-496a-ba38-87031581934b","directory":"self","title":"SELF","compatibility":99,"releases":[{"id":"0100D7300E966000","region":null}]},{"id":"84a8b645-f11f-4972-b675-efdda0a3851b","directory":"umihara-kawase-bazooka","title":"Umihara Kawase BaZooKa!","compatibility":99,"releases":[{"id":"0100842011BD6000","region":null}]},{"id":"84ab7630-1507-4322-b369-cdd53b40cbbe","directory":"super-dungeon-tactics","title":"Super Dungeon Tactics","compatibility":99,"releases":[{"id":"010023100B19A000","region":null}]},{"id":"84aca464-bb94-436c-89d7-845747b355e6","directory":"mind-scanners","title":"Mind Scanners","compatibility":99,"releases":[{"id":"0100D8C01535C000","region":null}]},{"id":"84b10de3-73f7-4df5-bbb5-36af63ff8424","directory":"pixel-game-maker-series-isekai-quartet-adventure-action-game","title":"Pixel Game Maker Series ISEKAI QUARTET Adventure:Action Game","compatibility":99,"releases":[{"id":"0100F71014BFE000","region":null}]},{"id":"84b2140b-14fe-46e2-b063-c49b36f3963b","directory":"grand-brix-shooter","title":"Grand Brix Shooter","compatibility":3,"releases":[{"id":"010038D00EC88000","region":null}]},{"id":"84bb1cb0-2bc3-4ccc-b5d2-8890021620a2","directory":"diamond-girl-an-earnest-education-in-love","title":"Diamond Girl ★An Earnest Education in Love★","compatibility":2,"releases":[{"id":"0100B9B011DA4000","region":null}]},{"id":"84c4503c-88dd-45ca-abba-8c36c2518e29","directory":"la-mulana-2","title":"LA-MULANA 2","compatibility":2,"releases":[{"id":"010038000F644000","region":null}]},{"id":"84cbd2a9-9f8f-4336-80f9-c8ad1ffb4828","directory":"aca-neogeo-world-heroes-perfect","title":"ACA NEOGEO WORLD HEROES PERFECT","compatibility":4,"releases":[{"id":"01009D4001DC4000","region":null}]},{"id":"84cbf8de-9d1c-48ac-a479-12a2c9d8108f","directory":"disney-classic-games-aladdin-and-the-lion-king","title":"Disney Classic Games: Aladdin and The Lion King","compatibility":2,"releases":[{"id":"0100A2F00EEFC000","region":null}]},{"id":"84cda573-fc55-43a2-8778-bcd20709eaf3","directory":"spellbreak","title":"Spellbreak","compatibility":99,"releases":[{"id":"010076C01015C000","region":null}]},{"id":"84d1b8d4-8bfc-4336-9667-a14a9d5a185a","directory":"droneridge","title":"DroneRidge","compatibility":99,"releases":[{"id":"010009201121C000","region":null}]},{"id":"84d5c2d0-4a4c-4eb7-84b5-4ce6c0cecf32","directory":"oniken-unstoppable-edition-and-odallus-the-dark-call-bundle","title":"Oniken: Unstoppable Edition & Odallus: The Dark Call Bundle","compatibility":3,"releases":[{"id":"0100E1800E202000","region":null}]},{"id":"84dc076c-05ab-4e75-a4cf-d6b6a944a85c","directory":"monster-viator","title":"Monster Viator","compatibility":99,"releases":[{"id":"01001620105FE000","region":null}]},{"id":"84de46de-53ff-4316-8b32-987aba820681","directory":"blow-up-monsters","title":"Blow Up Monsters","compatibility":99,"releases":[{"id":"01005840143D2000","region":null}]},{"id":"84e85787-a7b6-42f3-be90-2ac721149d68","directory":"the-wonderful-101-remastered","title":"The Wonderful 101: Remastered","compatibility":0,"releases":[{"id":"0100B1300FF08000","region":null}]},{"id":"84f5420c-6cba-4717-91a9-14c04e8a9af6","directory":"everything","title":"Everything","compatibility":99,"releases":[{"id":"010031F00B246000","region":null}]},{"id":"8501bb39-59ff-4d1a-bdc0-6f0a7f1f231b","directory":"sega-ages-columns-ii-a-voyage-through-time","title":"SEGA AGES Columns II: A Voyage Through Time","compatibility":1,"releases":[{"id":"0100A0600C610000","region":null}]},{"id":"850d6e1e-b91b-46ab-918e-75ed12b6391b","directory":"the-golf","title":"The Golf","compatibility":0,"releases":[{"id":"010014A00AC5A000","region":null}]},{"id":"851e4bbf-d0d0-4a0a-8f4e-8c2b87158817","directory":"connect-color-dots-fun-water-flow-pipe-line-art-puzzle-game","title":"Connect Color Dots: Fun Water Flow Pipe Line Art Puzzle Game","compatibility":99,"releases":[{"id":"0100410014916000","region":null}]},{"id":"852708e7-a139-4b01-8363-ef9b565600db","directory":"galactic-defence-squadron","title":"Galactic Defence Squadron","compatibility":99,"releases":[{"id":"0100E2800BBC2000","region":null}]},{"id":"8535df2f-9001-4e59-851c-8f6d658637fb","directory":"black-legend","title":"Black Legend","compatibility":99,"releases":[{"id":"0100C3200E7E6000","region":null}]},{"id":"853a6fff-8a6c-4e2d-b2ab-d5f7859d3ce9","directory":"breakfast-bar-tycoon","title":"Breakfast Bar Tycoon","compatibility":99,"releases":[{"id":"01003320103F0000","region":null}]},{"id":"8545e39e-515f-4b66-ba9f-7f1cc53d5ef0","directory":"between-time-escape-room","title":"Between Time: Escape Room","compatibility":99,"releases":[{"id":"010048B016406000","region":null}]},{"id":"855cdc43-568a-4699-b52f-7a4f8d104dfe","directory":"aground","title":"Aground","compatibility":99,"releases":[{"id":"01007C300E74C000","region":null}]},{"id":"856fe114-8787-4283-944c-1926a91aed47","directory":"cricktogame-nintendo-switch-edition","title":"CricktoGame: Nintendo Switch Edition","compatibility":99,"releases":[{"id":"0100320009D06000","region":null}]},{"id":"85868732-d3ac-412c-bd81-6194929c9142","directory":"bocce","title":"Bocce","compatibility":99,"releases":[{"id":"01008B001551E000","region":null}]},{"id":"8587dadd-bb74-4433-acf3-b12221100ef3","directory":"time-tenshi","title":"Time Tenshi","compatibility":1,"releases":[{"id":"0100D24012A04000","region":null}]},{"id":"85918a5f-1bb7-4aea-814d-707ef289b01b","directory":"tropico-6-nintendo-switch-edition","title":"Tropico 6 - Nintendo Switch™ Edition","compatibility":2,"releases":[{"id":"0100FBE0113CC000","region":null}]},{"id":"85a8d7a1-0a6e-474d-a27b-adf6c0a8a8fe","directory":"red-ball-escape","title":"Red Ball Escape","compatibility":99,"releases":[{"id":"0100B44015420000","region":null}]},{"id":"85a9febe-880b-410a-ab76-5684c6f757ab","directory":"maneater","title":"Maneater","compatibility":3,"releases":[{"id":"010093D00CB22000","region":null}]},{"id":"85b4d2da-52a8-4032-80fe-76ebbd09ebc8","directory":"newt-one","title":"Newt One","compatibility":99,"releases":[{"id":"0100B9500E886000","region":null}]},{"id":"85d20f35-45d1-4eff-98b1-bdcf50e33053","directory":"arcade-archives-road-fighter","title":"Arcade Archives ROAD FIGHTER","compatibility":4,"releases":[{"id":"0100FBA00E35C000","region":null}]},{"id":"85d8c403-79fb-41c9-8c7a-b53c26f37119","directory":"dustoff-z","title":"Dustoff Z","compatibility":99,"releases":[{"id":"0100D7E012F2E000","region":null}]},{"id":"85d8e543-9562-4444-b9a5-cecac897ef6e","directory":"jeopardy","title":"Jeopardy!","compatibility":0,"releases":[{"id":"01006E400AE2A000","region":null}]},{"id":"85e49b3c-5906-42d7-9bc1-b2a4dea78a9f","directory":"circuits","title":"Circuits","compatibility":99,"releases":[{"id":"01008FA00D686000","region":null}]},{"id":"85ee74a1-162d-4e0b-815a-22d1b98d674d","directory":"codebreaker-puzzle-1000-eng-jan","title":"Codebreaker Puzzle 1000! ENG & JAN","compatibility":99,"releases":[{"id":"010011D0142B0000","region":null}]},{"id":"85fc54e0-da31-425d-a632-0ba08b7c9c5e","directory":"aria-chronicle","title":"ARIA CHRONICLE","compatibility":99,"releases":[{"id":"0100691013C46000","region":null}]},{"id":"8600083c-6796-4e15-b004-7c50a2e11590","directory":"no-more-heroes-2-desperate-struggle","title":"No More Heroes 2: Desperate Struggle","compatibility":1,"releases":[{"id":"010071400F204000","region":null}]},{"id":"8600b75e-9307-4c5e-bc0a-2956a73b9dab","directory":"blacksmith-of-the-sand-kingdom","title":"Blacksmith of the Sand Kingdom","compatibility":99,"releases":[{"id":"010068E013450000","region":null}]},{"id":"860decff-d589-4f67-a2d5-a8e006d19b15","directory":"lovers-in-a-dangerous-spacetime","title":"Lovers in a Dangerous Spacetime","compatibility":1,"releases":[{"id":"0100230005A52000","region":null}]},{"id":"864e2fda-afda-418b-8a28-8758b4c735a3","directory":"bow-to-blood-last-captain-standing","title":"Bow to Blood: Last Captain Standing","compatibility":99,"releases":[{"id":"0100B4700C57E000","region":null}]},{"id":"8650a463-d0a7-4998-bfb0-a0620b02285e","directory":"super-sportmatchen","title":"Super Sportmatchen","compatibility":3,"releases":[{"id":"0100A9300A4AE000","region":null}]},{"id":"8669aef8-ad34-4000-bebe-a2f52f55b508","directory":"bravematch","title":"BraveMatch","compatibility":99,"releases":[{"id":"010081501371E000","region":null}]},{"id":"866ee195-3a0f-4b07-92e8-906a801a9dab","directory":"jack-axe","title":"Jack Axe","compatibility":99,"releases":[{"id":"0100EF500EF42000","region":null}]},{"id":"8672c60e-eac6-49c3-b857-a6a40b377d37","directory":"gems-of-magic-fathers-day","title":"Gems of Magic: Father's Day","compatibility":1,"releases":[{"id":"01009AA014EE4000","region":null}]},{"id":"867e7d19-47f2-42b9-aab4-04f2767ad33e","directory":"arcade-archives-terra-force","title":"Arcade Archives TERRA FORCE","compatibility":99,"releases":[{"id":"0100348001DE6000","region":null}]},{"id":"86846760-30bb-48fd-bf6d-624c600c20d8","directory":"arcade-archives-cosmo-police-galivan","title":"Arcade Archives Cosmo Police Galivan","compatibility":99,"releases":[{"id":"010071C00982C000","region":null}]},{"id":"86862d25-3081-4938-983f-34f0fa7c798f","directory":"sega-ages-fantasy-zone","title":"SEGA AGES Fantasy Zone","compatibility":1,"releases":[{"id":"010072100E312000","region":null}]},{"id":"8693e688-150c-495a-8d40-f57571034d89","directory":"killer-queen-black","title":"Killer Queen Black","compatibility":5,"releases":[{"id":"0100F2900B3E2000","region":null}]},{"id":"86b301f5-5a40-436a-bd2e-0a86aff65f5a","directory":"bioshock-infinite-the-complete-edition","title":"BioShock Infinite: The Complete Edition","compatibility":3,"releases":[{"id":"0100D560102C8000","region":null}]},{"id":"86b77f0e-73f3-44bd-aef3-7ddf864a66bf","directory":"monster-puzzle","title":"Monster Puzzle","compatibility":99,"releases":[{"id":"01004DE00DD44000","region":null}]},{"id":"86c8eb74-af74-4c9b-9ddc-da518cd4789f","directory":"retro-city-rampage-dx","title":"Retro City Rampage DX","compatibility":0,"releases":[{"id":"0100F17004156000","region":null}]},{"id":"86cbea62-80e3-4f7b-8d7e-95ac1c29620a","directory":"arcade-classics-anniversary-collection","title":"Arcade Classics Anniversary Collection","compatibility":0,"releases":[{"id":"010050000D6C4000","region":null}]},{"id":"86d32307-2a0f-48c1-8e8f-faee9db7eb47","directory":"deathtrap-dungeon-trilogy","title":"Deathtrap Dungeon Trilogy","compatibility":5,"releases":[{"id":"010061500F462000","region":null}]},{"id":"86dd9157-9b6d-4497-8175-d66888953c09","directory":"date-night-bowling","title":"Date Night Bowling","compatibility":0,"releases":[{"id":"0100713011E92000","region":null}]},{"id":"86e8a82e-1897-4206-9e01-7032ef9fc939","directory":"arcade-spirits","title":"Arcade Spirits","compatibility":99,"releases":[{"id":"010077000F620000","region":null}]},{"id":"86ed348e-99ba-426e-a560-70ed6f27c583","directory":"robozarro","title":"Robozarro","compatibility":99,"releases":[{"id":"010044A010BB8000","region":null}]},{"id":"86ef0b82-1ddd-495f-b375-99796a324cc1","directory":"arcade-archives-double-dragon-ii-the-revenge","title":"Arcade Archives DOUBLE DRAGON II The Revenge","compatibility":5,"releases":[{"id":"01009E3001DDE000","region":null}]},{"id":"86f25dac-5b2a-422b-97a8-5e6b520e2e21","directory":"gal-metal","title":"Gal Metal","compatibility":4,"releases":[{"id":"010048600B14E000","region":null}]},{"id":"86f36f06-9497-415e-8af7-57de36b506db","directory":"gleylancer","title":"Gleylancer","compatibility":1,"releases":[{"id":"010027C016254000","region":null}]},{"id":"86f3afc2-19c0-48d7-9477-8a5d3aecc7cd","directory":"wanderjahr-tryagainorwalkaway-demo","title":"Wanderjahr TryAgainOrWalkAway Demo","compatibility":99,"releases":[{"id":"01004E300899E000","region":null}]},{"id":"87002986-bebd-4860-98f3-e4ee985d9503","directory":"drone-fight","title":"Drone Fight","compatibility":5,"releases":[{"id":"010058C00A916000","region":null}]},{"id":"87056452-4787-4102-9af5-e04e678fed5f","directory":"stories-untold","title":"Stories Untold","compatibility":99,"releases":[{"id":"010074400F6A8000","region":null}]},{"id":"87219e67-336e-4924-8a26-98a50ad8ea08","directory":"noble-armada-lost-worlds","title":"NOBLE ARMADA: LOST WORLDS","compatibility":99,"releases":[{"id":"010068000D9F2000","region":null}]},{"id":"873c3e9b-814c-4d45-a137-27c8aa5f328b","directory":"the-innsmouth-case","title":"The Innsmouth Case","compatibility":4,"releases":[{"id":"0100E680138CA000","region":null}]},{"id":"8743aa8b-ace7-431b-9b3a-1b470080b109","directory":"not-tonight-take-back-control-edition","title":"Not Tonight: Take Back Control Edition","compatibility":2,"releases":[{"id":"0100DAF00D0E2000","region":null}]},{"id":"8752df05-3929-4401-9993-5b34f7ca43ed","directory":"abyss-of-the-sacrifice","title":"密室のサクリファイス/ABYSS OF THE SACRIFICE","compatibility":1,"releases":[{"id":"010047F012BE2000","region":null}]},{"id":"875eb566-50c2-4b2f-ac2e-775b6cc3d303","directory":"super-fowlst-2","title":"Super Fowlst 2","compatibility":99,"releases":[{"id":"0100DD7014AA0000","region":null}]},{"id":"8764f8ac-c7e0-47a5-a88f-174feaad60e2","directory":"car-wash-cars-trucks-garage-game-for-toddlers-kids","title":"Car Wash – Cars & Trucks Garage Game for Toddlers & Kids","compatibility":99,"releases":[{"id":"010032C014CCA000","region":null}]},{"id":"8766d2d9-20c5-4e47-88cf-fedc595e668f","directory":"asdivine-hearts-ii","title":"Asdivine Hearts II","compatibility":1,"releases":[{"id":"01007D300CD8C000","region":null}]},{"id":"877bb525-20c5-47bc-b35f-c15af5a3bada","directory":"volgarr-the-viking","title":"Volgarr the Viking","compatibility":0,"releases":[{"id":"0100B1A0066DC000","region":null}]},{"id":"877dc19e-238c-4f9f-93ff-b5c159ee7730","directory":"1993-shenandoah","title":"1993 Shenandoah","compatibility":99,"releases":[{"id":"010075601150A000","region":null}]},{"id":"87903a63-1841-40bf-aeb5-db6f2849e3e2","directory":"switch-n-shoot","title":"Switch 'N' Shoot","compatibility":2,"releases":[{"id":"0100ABE00CE7C000","region":null}]},{"id":"87943fdb-ba9a-468b-a9ed-e682db764594","directory":"door-kickers","title":"Door Kickers","compatibility":3,"releases":[{"id":"0100B0601205E000","region":null}]},{"id":"8797bfe3-4ba9-430b-a61e-4824a447e23f","directory":"diablo-r-ii-resurrected","title":"Diablo® II: Resurrected™","compatibility":4,"releases":[{"id":"0100726014352000","region":null}]},{"id":"87b488c2-91dd-40c7-8c85-c1a22dfefa27","directory":"arcade-archives-gradius-iii","title":"Arcade Archives GRADIUS III","compatibility":99,"releases":[{"id":"01006230131A4000","region":null}]},{"id":"87bb9007-6644-4394-8ecd-8e8d2d878a64","directory":"hyrule-warriors-age-of-calamity","title":"Hyrule Warriors: Age of Calamity","compatibility":2,"releases":[{"id":"01002B00111A2000","region":null}]},{"id":"87bbd418-1966-4fc3-a826-77f195c9f21a","directory":"connect-it","title":"Connect It!","compatibility":99,"releases":[{"id":"010049B014CD0000","region":null}]},{"id":"87bc96bc-a3c4-4977-962f-182f778ea25c","directory":"banner-saga-1","title":"Banner Saga 1","compatibility":5,"releases":[{"id":"0100465008756000","region":null}]},{"id":"87d6780a-82cc-46e9-94ba-2fcaa218b46f","directory":"candy-jump-featuring-frosty","title":"Candy Jump featuring Frosty","compatibility":99,"releases":[{"id":"0100E57013B2E000","region":null}]},{"id":"87d9553c-9c6b-4d09-8e33-82f0cd9f601f","directory":"keen-one-girl-army","title":"Keen: One Girl Army","compatibility":99,"releases":[{"id":"0100D7C01115E000","region":null}]},{"id":"87da6bf3-fd2a-4f86-a156-aad8bec3fa21","directory":"the-four-kings-casino-and-slots","title":"The Four Kings Casino and Slots","compatibility":99,"releases":[{"id":"010034100D096000","region":null}]},{"id":"87e00bc3-1c15-4422-98ee-3d93a476a73e","directory":"trials-rising-standard-edition","title":"Trials Rising Standard Edition","compatibility":4,"releases":[{"id":"01003E800A102000","region":null}]},{"id":"87fce9db-a8b0-441c-a8a7-a0dce24b7dcb","directory":"leopoldo-manquiseil","title":"Leopoldo Manquiseil","compatibility":99,"releases":[{"id":"010094300C888000","region":null}]},{"id":"880825e3-ed9b-4076-ae3f-3849d74efaab","directory":"hexa-maze","title":"Hexa Maze","compatibility":99,"releases":[{"id":"010066900BDE6000","region":null}]},{"id":"88120cdc-ffc7-49d5-910a-2c1ac19d2c2f","directory":"joe-jump-impossible-quest","title":"Joe Jump Impossible Quest","compatibility":99,"releases":[{"id":"0100EA500D996000","region":null}]},{"id":"8816193c-3203-4c78-a0c2-8afbd5a1427e","directory":"event-horizon","title":"Event Horizon","compatibility":99,"releases":[{"id":"0100AC100DC48000","region":null}]},{"id":"882762b4-b551-49b2-a2dd-f6ebb8123b1c","directory":"arcade-archives-contra","title":"Arcade Archives CONTRA","compatibility":1,"releases":[{"id":"01007F4012B84000","region":null}]},{"id":"88286691-6804-4264-975e-749cd4d70a73","directory":"deleveled","title":"Deleveled","compatibility":99,"releases":[{"id":"010092E00E7F4000","region":null}]},{"id":"882f60b7-f2b4-4c05-80e9-bd34ad5943d6","directory":"the-knight-of-queen","title":"THE KNIGHT OF QUEEN","compatibility":99,"releases":[{"id":"0100D73012850000","region":null}]},{"id":"88387298-d494-458c-8237-5cf0b894ae8d","directory":"tcheco-in-the-castle-of-lucio","title":"Tcheco in the Castle of Lucio","compatibility":1,"releases":[{"id":"0100F43011E5A000","region":null}]},{"id":"883a5702-b72e-4c42-99eb-1fb5f788589e","directory":"mark-of-the-ninja-remastered","title":"Mark of the Ninja: Remastered","compatibility":3,"releases":[{"id":"01009A700A538000","region":null}]},{"id":"8846593b-8678-407f-a51b-3e12eed583d0","directory":"balloon-girl","title":"Balloon Girl","compatibility":99,"releases":[{"id":"0100A7A012C06000","region":null}]},{"id":"884a72b9-1e3c-4edd-b125-3f5cb268f61a","directory":"ninjala-exclusive-ninja-club","title":"Ninjala Exclusive Ninja Club","compatibility":99,"releases":[{"id":"010033A0118DC000","region":null}]},{"id":"884a937c-d7ea-4b1f-994f-664acbf5cf4b","directory":"air-stunt-racing","title":"Air Stunt Racing","compatibility":99,"releases":[{"id":"01002CD016A7C000","region":null}]},{"id":"884c6a49-1db2-4066-b122-829dd5a2e5aa","directory":"brain-meltdown-into-despair","title":"Brain Meltdown - Into Despair","compatibility":99,"releases":[{"id":"010001A015AB2000","region":null}]},{"id":"885293a6-6a08-466f-bdba-d2c8421be1d0","directory":"frederic-2-evil-strikes-back","title":"Frederic 2: Evil Strikes Back","compatibility":1,"releases":[{"id":"01000490067AE000","region":null}]},{"id":"8853f133-f11c-4d13-aee0-4845259321f3","directory":"arcade-archives-water-ski","title":"Arcade Archives WATER SKI","compatibility":4,"releases":[{"id":"0100CA200DC6E000","region":null}]},{"id":"88567dab-9174-45b0-91f6-00f3d2ba3b83","directory":"later-alligator","title":"Later Alligator","compatibility":99,"releases":[{"id":"0100E8F012DE4000","region":null}]},{"id":"8858e7b3-efea-4708-8896-01d4b337f54a","directory":"snake-it-til-you-make-it","title":"Snake It 'Til You Make It","compatibility":99,"releases":[{"id":"01003CF01063C000","region":null}]},{"id":"8862e154-6d59-41e2-a4ef-07145807dee6","directory":"air-bounce-the-jump-n-run-challenge","title":"Air Bounce - The Jump 'n' Run Challenge","compatibility":99,"releases":[{"id":"010066D013A8C000","region":null}]},{"id":"886b2a03-8071-4402-a5e1-4eb07c16ccd9","directory":"crsed-f-o-a-d","title":"CRSED: F.O.A.D.","compatibility":5,"releases":[{"id":"0100E2300FB84000","region":null}]},{"id":"887f52eb-819f-4fc8-b435-b22fd5fd8e92","directory":"shanky-the-vegans-nightmare","title":"Shanky: The Vegan`s Nightmare","compatibility":99,"releases":[{"id":"010006C00CC10000","region":null}]},{"id":"8887a716-0b18-4457-b9b5-c2d90bc43b97","directory":"cycle-28","title":"Cycle 28","compatibility":99,"releases":[{"id":"010021800B6C0000","region":null}]},{"id":"8890ff91-a7cd-44b8-b2a1-6a264c5c482b","directory":"jisei-the-first-case-hd","title":"Jisei: The First Case HD","compatibility":99,"releases":[{"id":"010038D011F08000","region":null}]},{"id":"889ff57c-f4bb-4594-9043-2ef60cc771b6","directory":"her-majestys-spiffing","title":"Her Majesty's SPIFFING","compatibility":0,"releases":[{"id":"0100946008DAE000","region":null}]},{"id":"88ab39b7-3baf-4c76-ab4b-36078a0aac51","directory":"star-renegades","title":"Star Renegades","compatibility":99,"releases":[{"id":"010060D00F658000","region":null}]},{"id":"88b89440-8435-4f99-ba7e-438e247bc806","directory":"down-in-bermuda","title":"Down in Bermuda","compatibility":99,"releases":[{"id":"0100D7100FDDE000","region":null}]},{"id":"88d6a806-bec3-4f94-8197-359997a4e68f","directory":"aca-neogeo-league-bowling","title":"ACA NEOGEO LEAGUE BOWLING","compatibility":2,"releases":[{"id":"0100A2900AFA4000","region":null}]},{"id":"88f9a6a8-0b82-40b6-ad52-7d05aca34e09","directory":"highway-haste","title":"Highway Haste","compatibility":1,"releases":[{"id":"0100CD2014058000","region":null}]},{"id":"8903cf5c-02ee-47bf-b382-b713e8c92af0","directory":"persian-nights-2-the-moonlight-veil","title":"Persian Nights 2: The Moonlight Veil","compatibility":99,"releases":[{"id":"0100A0401346A000","region":null}]},{"id":"89189a8b-c8fb-4a3f-b12f-b95c16abf8dc","directory":"shady-part-of-me","title":"Shady Part of Me","compatibility":99,"releases":[{"id":"0100820013612000","region":null}]},{"id":"8919b93a-4a63-42a0-be9d-4ef4e9e139fd","directory":"samurai-shodown-neogeo-collection","title":"SAMURAI SHODOWN NEOGEO COLLECTION","compatibility":99,"releases":[{"id":"0100F6800F48E000","region":null}]},{"id":"891d009b-e27b-4531-b68f-b93da45c447d","directory":"inferno-climber-reborn","title":"INFERNO CLIMBER: REBORN","compatibility":99,"releases":[{"id":"010086300A558000","region":null}]},{"id":"891f1728-611d-4870-aca8-b159c5cffffc","directory":"doom-3","title":"DOOM 3","compatibility":4,"releases":[{"id":"010029D00E740000","region":null}]},{"id":"892e4f40-e4f3-444c-a37c-2b95b4f418bb","directory":"doom-1993","title":"DOOM (1993)","compatibility":3,"releases":[{"id":"010018900DD00000","region":null}]},{"id":"893440f1-4e31-44fa-989f-132b556b19f6","directory":"lumines-remastered","title":"LUMINES REMASTERED","compatibility":1,"releases":[{"id":"0100A4200A284000","region":null}]},{"id":"89408f0d-16d7-478b-82a1-c430b0a19c78","directory":"math-classroom-challenge","title":"Math Classroom Challenge","compatibility":99,"releases":[{"id":"010066E015998000","region":null}]},{"id":"8942cf1c-a61d-444d-8cd8-85c6b4fe6bf4","directory":"syberia-3","title":"Syberia 3","compatibility":0,"releases":[{"id":"0100CBE004E6C000","region":null}]},{"id":"89660c6a-e172-49d0-89f3-a51cc14fc663","directory":"fly-together","title":"Fly TOGETHER!","compatibility":99,"releases":[{"id":"0100B6D00DA1C000","region":null}]},{"id":"8983f323-1ffd-4e62-ab45-ad1027aac162","directory":"pretty-girls-panic","title":"Pretty Girls Panic!","compatibility":99,"releases":[{"id":"0100653013F7A000","region":null}]},{"id":"89929093-204f-4359-ac25-5350d4670d13","directory":"torquel-physics-modified-edition-demo","title":"TorqueL -Physics Modified Edition- Demo","compatibility":99,"releases":[{"id":"010076A009426000","region":null}]},{"id":"89ae49db-5431-4b05-9f30-ba4e19642998","directory":"sudoku-relax-5-full-bloom","title":"Sudoku Relax 5 Full Bloom","compatibility":99,"releases":[{"id":"01004DB0126AC000","region":null}]},{"id":"89b43cfc-3514-4dd0-9c8f-893efce5b890","directory":"newtons-cradle-puzzle-game","title":"Newton's Cradle Puzzle Game","compatibility":99,"releases":[{"id":"0100C0B012666000","region":null}]},{"id":"89b5b71d-12b5-4bf1-990e-b8e1ff0d3d21","directory":"12-orbits","title":"12 orbits","compatibility":3,"releases":[{"id":"0100A840047C2000","region":null}]},{"id":"89c2905a-87de-4d63-9d2d-de2aa07a7231","directory":"alchemic-jousts","title":"Alchemic Jousts","compatibility":99,"releases":[{"id":"0100F5400AB6C000","region":null}]},{"id":"89c9a7a1-bdf0-421a-8cbe-30fc758d6d30","directory":"no-straight-roads","title":"No Straight Roads","compatibility":3,"releases":[{"id":"01009F3011004000","region":null}]},{"id":"89ce4a2e-41a1-48cd-b63f-3698c25e4364","directory":"nature-matters","title":"Nature Matters","compatibility":0,"releases":[{"id":"01002820142C6000","region":null}]},{"id":"89cf67c3-fb9e-4623-870a-98ec3573d3b3","directory":"aca-neogeo-karnovs-revenge","title":"ACA NEOGEO KARNOV'S REVENGE","compatibility":2,"releases":[{"id":"010014E004FA8000","region":null}]},{"id":"89d1cfc6-de5c-4e09-acc1-106058f7032f","directory":"dreamwalker-never-fall-asleep","title":"Dreamwalker: Never Fall Asleep","compatibility":99,"releases":[{"id":"0100068010226000","region":null}]},{"id":"89d1e0e8-2efd-4816-97d5-73a64d891c39","directory":"glyph","title":"Glyph","compatibility":99,"releases":[{"id":"0100EB501130E000","region":null}]},{"id":"89dca81e-28e3-4290-9465-0869a10043f9","directory":"slayin-2","title":"Slayin 2","compatibility":3,"releases":[{"id":"01004E900EDDA000","region":null}]},{"id":"89e020ec-eb68-48e0-9feb-9fe094484ec8","directory":"panda-jump","title":"Panda Jump","compatibility":99,"releases":[{"id":"0100C47012D86000","region":null}]},{"id":"89e55765-4978-4d2b-8bf3-ba8284a66d4b","directory":"super-monkey-ball-banana-blitz-hd","title":"Super Monkey Ball: Banana Blitz HD","compatibility":0,"releases":[{"id":"0100B2A00E1E0000","region":null}]},{"id":"89f92b51-3ef4-4a17-b13d-c2df481ba3fe","directory":"violett-demo","title":"Violett Demo","compatibility":99,"releases":[{"id":"01003B2009D18000","region":null}]},{"id":"8a00e549-e980-48ba-91a8-ba85558cd660","directory":"shinya-ichizoku-the-battle-for-hokkaidos-delicious-foods","title":"Shinya Ichizoku The Battle for Hokkaido's Delicious Foods","compatibility":99,"releases":[{"id":"0100BA6015E82000","region":null}]},{"id":"8a08357c-2f63-4a40-9e26-86968520c972","directory":"rock-of-ages-3-make-break","title":"Rock of Ages 3: Make & Break","compatibility":99,"releases":[{"id":"0100A1B00DB36000","region":null}]},{"id":"8a08ce6a-03bf-48cf-afed-f50a7973b698","directory":"binarystar-infinity","title":"Binarystar Infinity","compatibility":99,"releases":[{"id":"0100CFB013AE4000","region":null}]},{"id":"8a14ab9c-b05b-4406-a94a-ac6222f7d2b3","directory":"neverending-nightmares","title":"Neverending Nightmares","compatibility":4,"releases":[{"id":"0100F79012600000","region":null}]},{"id":"8a1c4fc9-0b5d-4a74-8ac2-b6f4739f364a","directory":"angels-punishment","title":"Angel's Punishment","compatibility":1,"releases":[{"id":"010062B015D28000","region":null}]},{"id":"8a22897e-fb54-4531-8a81-932ae24d9be6","directory":"arcaea","title":"Arcaea","compatibility":2,"releases":[{"id":"0100E680149DC000","region":null}]},{"id":"8a2528aa-d5ef-471e-a8c2-af3a8a5f53e1","directory":"sports-party","title":"Sports Party","compatibility":5,"releases":[{"id":"0100DE9005170000","region":null}]},{"id":"8a26cae4-0753-462d-a105-34fbb6f56f4e","directory":"wide-ocean-big-jacket","title":"Wide Ocean Big Jacket","compatibility":99,"releases":[{"id":"0100A9C010246000","region":null}]},{"id":"8a2ce300-efcf-45ee-a504-9ee035b3d0e1","directory":"pokemon-lets-go-pikachu","title":"Pokémon: Let’s Go, Pikachu!","compatibility":1,"releases":[{"id":"010003F003A34000","region":null}]},{"id":"8a3a1b42-44c9-4bc9-9508-da8a59fe22ca","directory":"zero-gunner-2-for-nintendo-switch","title":"ZERO GUNNER 2- for Nintendo Switch","compatibility":1,"releases":[{"id":"0100A6A00894C000","region":null}]},{"id":"8a3d5b1a-e1ba-40ae-b819-45e86f925b46","directory":"air-hockey","title":"Air Hockey","compatibility":1,"releases":[{"id":"010005A00A4F4000","region":null}]},{"id":"8a3f64a8-bbec-4603-96a0-10a13349311d","directory":"skyland-heart-of-the-mountain","title":"Skyland: Heart of the Mountain","compatibility":99,"releases":[{"id":"01007860144F4000","region":null}]},{"id":"8a4ead8c-2de8-4154-8e92-db52677b3650","directory":"extreme-car-driver","title":"Extreme Car Driver","compatibility":0,"releases":[{"id":"0100615015E4A000","region":null}]},{"id":"8a601ae1-821c-4259-b66b-1954daf937e5","directory":"breathedge","title":"Breathedge","compatibility":99,"releases":[{"id":"01000AA013A5E000","region":null}]},{"id":"8a609710-43b3-432e-ac04-c7b863e151dd","directory":"ballzout","title":"BallzOut","compatibility":99,"releases":[{"id":"01004820120C0000","region":null}]},{"id":"8a69cf77-434a-4cc9-a822-fa6a2e77f464","directory":"gnomes-garden-lost-king","title":"Gnomes Garden: Lost King","compatibility":99,"releases":[{"id":"010036C00D0D6000","region":null}]},{"id":"8a6ef618-4e58-40ec-aea8-af08a3ad739c","directory":"pizza-parking","title":"Pizza Parking","compatibility":99,"releases":[{"id":"01006C700D2CE000","region":null}]},{"id":"8a74367f-6143-48df-a2e5-476a92fdedce","directory":"the-house-of-da-vinci","title":"The House of Da Vinci","compatibility":2,"releases":[{"id":"01004AD00E094000","region":null}]},{"id":"8a809606-9cc9-439b-823a-8f41935a2020","directory":"felix-the-toy","title":"Felix The Toy","compatibility":99,"releases":[{"id":"010020B014D8E000","region":null}]},{"id":"8a98e294-1221-4b04-b428-aa8798a5610d","directory":"gardeners-path","title":"Gardener's Path","compatibility":99,"releases":[{"id":"010019F016BFC000","region":null}]},{"id":"8a9ca65b-b855-4603-a5e3-06133ff481fd","directory":"exception","title":"Exception","compatibility":99,"releases":[{"id":"0100F2D00C7DE000","region":null}]},{"id":"8ab54287-3e50-4390-85b4-031259f1034e","directory":"death-come-true","title":"Death Come True","compatibility":2,"releases":[{"id":"010012B011AB2000","region":null}]},{"id":"8abcd565-03bf-4710-9346-5fc318b56117","directory":"astria-ascending","title":"Astria Ascending","compatibility":2,"releases":[{"id":"01003070146FE000","region":null}]},{"id":"8acb5205-864c-487c-9a4c-176026b8010e","directory":"pixel-game-maker-series-steos-sorrow-song-of-bounty-hunter","title":"Pixel Game Maker Series STEOS -Sorrow song of Bounty hunter-","compatibility":99,"releases":[{"id":"0100247013722000","region":null}]},{"id":"8acd61ab-c8de-4624-aa71-165b2ad2586a","directory":"lost-kings-lullaby","title":"Lost King's Lullaby","compatibility":99,"releases":[{"id":"01002C400ADC0000","region":null}]},{"id":"8ad5a264-86f6-4d27-a2c5-ac70d96c162a","directory":"dreamworks-spirit-luckys-big-adventure","title":"DreamWorks Spirit Lucky’s Big Adventure","compatibility":99,"releases":[{"id":"0100236011B4C000","region":null}]},{"id":"8adec3aa-bc6f-4568-bf94-bdd41a3b42a7","directory":"annas-quest","title":"Anna's Quest","compatibility":99,"releases":[{"id":"0100A9801134C000","region":null}]},{"id":"8af328cc-9aed-437c-bc50-c23151929201","directory":"lego-worlds","title":"LEGO Worlds","compatibility":0,"releases":[{"id":"0100838002AEA000","region":null}]},{"id":"8af43721-9df2-41bb-b18e-5412a3a9f924","directory":"mega-man-11","title":"Mega Man 11","compatibility":0,"releases":[{"id":"0100B0C0086B0000","region":null}]},{"id":"8af52b6f-86fe-4c26-9782-ec4136499635","directory":"dungeons-hell","title":"Dungeon's Hell","compatibility":1,"releases":[{"id":"0100474015BCE000","region":null}]},{"id":"8afabe60-75a1-4b3e-b953-66e10bdbd168","directory":"marchen-forest","title":"Märchen Forest","compatibility":99,"releases":[{"id":"01001B2012D5E000","region":null}]},{"id":"8afc2cae-51d9-4076-9292-f1310612b960","directory":"unknown-fate","title":"Unknown Fate","compatibility":99,"releases":[{"id":"010045200D3A4000","region":null}]},{"id":"8b025fd6-55c4-4593-b036-d704e2eb30a6","directory":"cotton-100","title":"Cotton 100%","compatibility":1,"releases":[{"id":"0100D5A01692C000","region":null}]},{"id":"8b0bb610-ee80-4805-b45e-b72b77032873","directory":"midnight-deluxe","title":"Midnight Deluxe","compatibility":0,"releases":[{"id":"01000FB008900000","region":null}]},{"id":"8b139d57-d7ed-4577-a05a-ac6aa0a52165","directory":"rbi-baseball-19","title":"R.B.I. Baseball 19","compatibility":4,"releases":[{"id":"0100FCB00BF40000","region":null}]},{"id":"8b234089-b05c-45f8-924a-6696c4a043d1","directory":"unstrong-space-calamity","title":"Unstrong: Space Calamity","compatibility":99,"releases":[{"id":"0100D36016AE4000","region":null}]},{"id":"8b39309c-39ed-43be-8722-fb0a83e117e9","directory":"tap-tap-legions","title":"Tap Tap Legions","compatibility":99,"releases":[{"id":"0100EBA01399E000","region":null}]},{"id":"8b3e397a-0b75-4f25-a604-0203258aeaaa","directory":"tales-of-vesperia-definitive-edition","title":"Tales of Vesperia: Definitive Edition","compatibility":1,"releases":[{"id":"01002C0008E52000","region":null}]},{"id":"8b4787b6-14d5-45f1-b494-5d6297fe1f66","directory":"rolling-sky","title":"Rolling Sky","compatibility":99,"releases":[{"id":"0100BAA00D60A000","region":null}]},{"id":"8b4fb4e8-2ca8-416a-aaf1-73e59f7ab130","directory":"chess-gambit","title":"Chess Gambit","compatibility":99,"releases":[{"id":"0100FE1015F16000","region":null}]},{"id":"8b5d55ef-0e59-400e-b2d8-54d85a8104d2","directory":"doodle-god-crime-city","title":"Doodle God: Crime City","compatibility":2,"releases":[{"id":"01007E700D5B4000","region":null}]},{"id":"8b662f40-21cf-4f49-8524-f2ce35d788db","directory":"just-die-already","title":"Just Die Already","compatibility":99,"releases":[{"id":"0100AC600CF0A000","region":null}]},{"id":"8b8ecf4d-4224-43c6-a640-ebac714bfd2f","directory":"piczle-lines-dx-bundle","title":"Piczle Lines DX Bundle","compatibility":99,"releases":[{"id":"01006960121A8000","region":null}]},{"id":"8b989545-2d77-4760-a19b-97173a2b2b63","directory":"the-legend-of-ninja","title":"The Legend of Ninja","compatibility":99,"releases":[{"id":"0100C5A01327E000","region":null}]},{"id":"8b993524-13b0-477c-87d5-afc1bbe2fd00","directory":"gem-smashers","title":"Gem Smashers","compatibility":5,"releases":[{"id":"01001A4008192000","region":null}]},{"id":"8b999ded-4de2-4ceb-9c58-1d3e241e1084","directory":"gnomes-garden-3-the-thief-of-castles","title":"Gnomes Garden 3: The thief of castles","compatibility":99,"releases":[{"id":"010017C00BE12000","region":null}]},{"id":"8ba23714-ef70-427c-a514-3ebc98dbd352","directory":"alphadia-genesis","title":"Alphadia Genesis","compatibility":0,"releases":[{"id":"0100C7801232C000","region":null}]},{"id":"8bcb2e7c-4122-4a6f-b08c-a6176e466d6b","directory":"pub-encounter","title":"Pub Encounter","compatibility":99,"releases":[{"id":"0100CAB00B4E4000","region":null}]},{"id":"8bf4c3a3-e8a9-4b78-8bba-0ba1eae0e78b","directory":"prepare-the-first-rpg-village-the-adventures-of-nyanzou-kumakichi-escape-game-series","title":"Prepare the First RPG Village\n~The Adventures of Nyanzou&Kumakichi: Escape Game Series~","compatibility":99,"releases":[{"id":"0100AA30161C6000","region":null}]},{"id":"8bf6fe32-26b4-4197-a554-da68bd4f5d65","directory":"kingdom-rush-origins","title":"Kingdom Rush Origins","compatibility":2,"releases":[{"id":"0100ABE0121F8000","region":null}]},{"id":"8bfff1a5-f60c-494f-bbdc-b8815c143628","directory":"drum-box","title":"Drum Box","compatibility":99,"releases":[{"id":"01009BE015A20000","region":null}]},{"id":"8c07891d-faf6-4fb8-906b-e2927e4dc578","directory":"moon-raider","title":"Moon Raider","compatibility":99,"releases":[{"id":"01000C301457C000","region":null}]},{"id":"8c19c17c-07dc-435f-b755-3817fff8cc8d","directory":"aspire-inas-tale","title":"Aspire: Ina's Tale","compatibility":99,"releases":[{"id":"0100AC5016808000","region":null}]},{"id":"8c247ca5-3960-4301-8d4c-b6eb264ec624","directory":"ys-viii-lacrimosa-of-dana","title":"Ys VIII: Lacrimosa of DANA","compatibility":1,"releases":[{"id":"01007F200B0C0000","region":null}]},{"id":"8c26465c-4989-405e-b16b-636514543ef0","directory":"johnny-turbos-arcade-super-burger-time","title":"Johnny Turbo's Arcade: Super Burger Time","compatibility":99,"releases":[{"id":"01000E400222A000","region":null}]},{"id":"8c279f7f-8b60-4613-be41-c13d570a8fa1","directory":"chocobos-mystery-dungeon-every-buddy","title":"Chocobo's Mystery Dungeon EVERY BUDDY!","compatibility":2,"releases":[{"id":"0100BF600BF26000","region":null}]},{"id":"8c2ba144-a0e9-48df-b938-391e409f0e05","directory":"instant-sports","title":"Instant Sports","compatibility":99,"releases":[{"id":"010099700D750000","region":null}]},{"id":"8c33ef9e-2e80-4b43-9737-a6b9c793294e","directory":"aeternoblade-demo","title":"AeternoBlade Demo","compatibility":99,"releases":[{"id":"0100B1C00949A000","region":null}]},{"id":"8c37ada9-3897-4aaa-a6bc-d44ca475cdef","directory":"tower-of-time","title":"Tower Of Time","compatibility":99,"releases":[{"id":"010094600DC86000","region":null}]},{"id":"8c3ad559-326b-4809-8b87-2f6e2039ec55","directory":"arcadia-fallen","title":"Arcadia Fallen","compatibility":99,"releases":[{"id":"0100BC8016306000","region":null}]},{"id":"8c3c5097-4f8d-4140-959d-299cca7a1ce3","directory":"immortals-fenyx-rising","title":"Immortals Fenyx Rising™","compatibility":4,"releases":[{"id":"01004A600EC0A000","region":null}]},{"id":"8c3f31a6-becb-41ed-89c2-bafb474930c2","directory":"archvale","title":"Archvale","compatibility":99,"releases":[{"id":"0100A4D0146B2000","region":null}]},{"id":"8c4615b0-0fac-46ed-ba5e-ebfb63cca6df","directory":"terra-bomber","title":"Terra Bomber","compatibility":99,"releases":[{"id":"01003990145EE000","region":null}]},{"id":"8c65faf2-8658-4fb7-a816-5370578359ff","directory":"duck-souls","title":"Duck Souls+","compatibility":99,"releases":[{"id":"0100E9B010028000","region":null}]},{"id":"8c67caa0-8575-479e-8847-3a6f5c963cee","directory":"flat-heroes","title":"Flat Heroes","compatibility":0,"releases":[{"id":"0100C53004C52000","region":null}]},{"id":"8c73cbaf-5cfe-465d-be28-4b7d10c4614b","directory":"retro-machina","title":"Retro Machina","compatibility":99,"releases":[{"id":"01000ED014A2C000","region":null}]},{"id":"8c78fe76-6038-45ac-897c-e7a221cd75b6","directory":"senran-kagura-reflexions","title":"SENRAN KAGURA Reflexions","compatibility":1,"releases":[{"id":"0100E0C00ADAC000","region":null}]},{"id":"8c81e26f-6748-40bd-b870-f4626fda447c","directory":"bats-bloodsucker-anti-terror-squad","title":"BATS: Bloodsucker Anti-Terror Squad","compatibility":99,"releases":[{"id":"0100F97015D46000","region":null}]},{"id":"8c885821-584b-4c02-8065-cd2d3e9d5193","directory":"the-skylia-prophecy","title":"The Skylia Prophecy","compatibility":99,"releases":[{"id":"01007D50140E4000","region":null}]},{"id":"8c888bd8-51a7-4419-8a1d-f0cd68b06950","directory":"justin-danger","title":"Justin Danger","compatibility":99,"releases":[{"id":"010045D0142C8000","region":null}]},{"id":"8c95dd59-b865-42c9-b8d1-83a8486bf36b","directory":"number-place-10000","title":"Number Place 10000","compatibility":99,"releases":[{"id":"010020500C8C8000","region":null}]},{"id":"8cac8bc2-4c58-4269-9b68-c32581386ac4","directory":"war-tech-fighters","title":"War Tech Fighters","compatibility":99,"releases":[{"id":"010049500DE56000","region":null}]},{"id":"8cadfa0b-8732-47ce-91fc-8ea4991ad42b","directory":"colorgrid","title":"Colorgrid","compatibility":99,"releases":[{"id":"010039B011312000","region":null}]},{"id":"8cbac864-c886-4645-9a45-1661bd541cc0","directory":"garden-story","title":"Garden Story","compatibility":3,"releases":[{"id":"0100B4D012490000","region":null}]},{"id":"8cc2b8c5-f310-41ae-bf5e-c1a3e8eb6f01","directory":"ikaruga","title":"Ikaruga","compatibility":3,"releases":[{"id":"01009F20086A0000","region":null}]},{"id":"8cc5e474-3bcd-455c-89f8-e9c30085d328","directory":"platago-super-platform-game-maker","title":"PlataGO! Super Platform Game Maker","compatibility":5,"releases":[{"id":"010044E008FC6000","region":null}]},{"id":"8cd27cbc-2baf-43f3-8a46-5e40b4c8f8aa","directory":"digerati-best-sellers","title":"Digerati Best Sellers","compatibility":99,"releases":[{"id":"01001C5012F52000","region":null}]},{"id":"8cdee0a2-6064-4843-9afb-e57b306d9441","directory":"lord-of-the-click-ii","title":"Lord of the Click II","compatibility":99,"releases":[{"id":"0100F54015F86000","region":null}]},{"id":"8ce0b09a-3b6b-4498-9ce2-f1d2e42d9427","directory":"donut-match","title":"Donut Match","compatibility":99,"releases":[{"id":"01000A5015EA4000","region":null}]},{"id":"8ce95e55-78f4-4fd9-8951-f925c3c80144","directory":"the-town-of-light-deluxe-edition","title":"The Town of Light: Deluxe Edition","compatibility":99,"releases":[{"id":"010058000A576000","region":null}]},{"id":"8ceb0664-3507-4b4b-afc3-89fd88f2287c","directory":"rack-n-ruin","title":"Rack N Ruin","compatibility":1,"releases":[{"id":"0100B8100C54A000","region":null}]},{"id":"8cf465c8-5082-4c10-90ac-f4ac8f55ee5f","directory":"arcade-archives-sea-fighter-poseidon","title":"Arcade Archives SEA FIGHTER POSEIDON","compatibility":99,"releases":[{"id":"01006BA015070000","region":null}]},{"id":"8d081d15-b96a-4156-a649-67c099fd3357","directory":"lotus-bloom","title":"Lotus Bloom","compatibility":99,"releases":[{"id":"0100A55015B98000","region":null}]},{"id":"8d172360-69f6-4b02-bfe0-f7d6c0865e58","directory":"forest-home","title":"Forest Home","compatibility":99,"releases":[{"id":"010094F00E0EE000","region":null}]},{"id":"8d216c0f-7b89-4fc0-970e-76754751d857","directory":"fantasy-checkers","title":"Fantasy Checkers","compatibility":0,"releases":[{"id":"0100C3E014F40000","region":null}]},{"id":"8d4c90cb-b828-4371-af57-a58ede9e218e","directory":"pocket-warriors","title":"Pocket Warriors","compatibility":99,"releases":[{"id":"01009B4013C00000","region":null}]},{"id":"8d4f7d4b-5b20-4447-8443-735aa81ea7cc","directory":"jurassic-world-evolution-complete-edition","title":"Jurassic World Evolution: Complete Edition","compatibility":2,"releases":[{"id":"010050A011344000","region":null}]},{"id":"8d5e505d-8ced-41e6-ae71-7510bb422bbd","directory":"r-type-dimensions-ex-demo-version","title":"R-Type Dimensions EX Demo Version","compatibility":99,"releases":[{"id":"0100A4100DDC2000","region":null}]},{"id":"8d672c12-1e0e-46f7-a8c8-13c36b65b2db","directory":"stunt-kite-party","title":"Stunt Kite Party","compatibility":99,"releases":[{"id":"0100AF000B4AE000","region":null}]},{"id":"8d747a52-dc6c-4b3e-991c-f39b76da7a07","directory":"neverout","title":"Neverout","compatibility":99,"releases":[{"id":"010043800AD94000","region":null}]},{"id":"8d7674ac-b942-466c-93dd-d9e703416611","directory":"woodle-tree-adventures","title":"Woodle Tree Adventures","compatibility":1,"releases":[{"id":"0100956007854000","region":null}]},{"id":"8d831cd4-71d5-4e73-a3d7-7105c1710b05","directory":"exodemon","title":"Exodemon","compatibility":99,"releases":[{"id":"0100A82013976000","region":null}]},{"id":"8d85b497-8bcf-4089-a824-8f49030a89c6","directory":"game-dev-story-demo","title":"Game Dev Story Demo","compatibility":99,"releases":[{"id":"010022000BCDA000","region":null}]},{"id":"8d884d3f-f55d-46cf-8856-39198dc2c902","directory":"urban-street-fighting","title":"Urban Street Fighting","compatibility":99,"releases":[{"id":"010054F014016000","region":null}]},{"id":"8d8df59a-111d-4bce-9568-13e82da6850d","directory":"awesome-pea-2","title":"Awesome Pea 2","compatibility":3,"releases":[{"id":"0100B7D01147E000","region":null}]},{"id":"8d971070-7184-4512-bf1b-ba0ac1ab7195","directory":"rive-ultimate-edition","title":"RIVE: Ultimate Edition","compatibility":99,"releases":[{"id":"010069C00401A000","region":null}]},{"id":"8dac02f4-893a-43a8-8758-3b96604049f8","directory":"lode-runner-legacy","title":"Lode Runner Legacy","compatibility":3,"releases":[{"id":"010016C009374000","region":null}]},{"id":"8daf0a85-6e11-4223-9589-8bd3aad5d8b1","directory":"1917-the-alien-invasion-dx","title":"1917 - The Alien Invasion DX","compatibility":0,"releases":[{"id":"01005CA0099AA000","region":null}]},{"id":"8dbb64f6-a187-4d3d-b433-f9dce9f994fc","directory":"house-cleaning-survival","title":"House Cleaning Survival","compatibility":99,"releases":[{"id":"0100EFE01452A000","region":null}]},{"id":"8dcc986d-f188-41f7-8c37-9f9df608371f","directory":"black-paradox","title":"Black Paradox","compatibility":99,"releases":[{"id":"010071900D95A000","region":null}]},{"id":"8dce7074-665a-4751-a9f6-3e0a804bb7e7","directory":"ball-lab","title":"Ball laB","compatibility":99,"releases":[{"id":"0100C8B01546C000","region":null}]},{"id":"8de9aa77-7b73-4ce2-bc3b-a7f1906d1bf0","directory":"wwe-2k-battlegrounds","title":"WWE 2K Battlegrounds","compatibility":4,"releases":[{"id":"010081700EDF4000","region":null}]},{"id":"8e1f823a-2c56-4b4f-a11d-82d89e9738d2","directory":"atom-rpg","title":"ATOM RPG","compatibility":2,"releases":[{"id":"0100B9400FA38000","region":null}]},{"id":"8e2f06ec-2aa0-4a52-9dcd-b5744fbb33ae","directory":"starblox-inc","title":"StarBlox Inc.","compatibility":99,"releases":[{"id":"010006F00EE72000","region":null}]},{"id":"8e3e7f2c-17da-4781-8174-20eb3ebc9b4f","directory":"unit-4","title":"Unit 4","compatibility":99,"releases":[{"id":"0100B1400D92A000","region":null}]},{"id":"8e46b376-77ba-4cc8-83e5-fab85c472c3e","directory":"rubix-roller","title":"Rubix Roller","compatibility":99,"releases":[{"id":"010080E01515A000","region":null}]},{"id":"8e5ac266-2c66-4491-aa1f-720bcc4be738","directory":"radon-blast","title":"Radon Blast","compatibility":99,"releases":[{"id":"0100323014580000","region":null}]},{"id":"8e784ab5-b2e2-41a3-ba1d-eb4996681d90","directory":"air-conflicts-secret-wars","title":"Air Conflicts: Secret Wars","compatibility":3,"releases":[{"id":"0100B2B00C7D4000","region":null}]},{"id":"8e833e2f-7b39-49d0-90d1-855316983370","directory":"league-of-champions-soccer","title":"League Of Champions Soccer","compatibility":99,"releases":[{"id":"01006040153A0000","region":null}]},{"id":"8e89a004-a257-4418-9555-b7f1c21487ed","directory":"warhammer-40000-space-wolf","title":"WARHAMMER 40,000: SPACE WOLF","compatibility":99,"releases":[{"id":"0100E5600D7B2000","region":null}]},{"id":"8e90938d-e5bc-4587-aa92-fcab6efd596c","directory":"dollhouse","title":"Dollhouse","compatibility":99,"releases":[{"id":"010065D014E0A000","region":null}]},{"id":"8eab0bfe-2bb5-47a4-a61a-ab556fb7c978","directory":"just-dance-2017","title":"Just Dance 2017","compatibility":0,"releases":[{"id":"0100BCE000598000","region":null}]},{"id":"8ec187f4-7d99-4629-a062-37c46cbad86a","directory":"isoland","title":"Isoland","compatibility":99,"releases":[{"id":"010065200D192000","region":null}]},{"id":"8ec9657c-1880-4b48-97be-e621cc3a48e7","directory":"johnny-turbos-arcade-joe-and-mac-caveman-ninja","title":"Johnny Turbo's Arcade Joe and Mac Caveman Ninja","compatibility":4,"releases":[{"id":"0100355002CBE000","region":null}]},{"id":"8ecdb45c-cdcf-4468-85e4-0d2aaaa38cbe","directory":"preston-sterling-and-the-legend-of-excalibur","title":"Preston Sterling and the Legend of Excalibur","compatibility":99,"releases":[{"id":"010052601473C000","region":null}]},{"id":"8ee06cb1-3fb5-4e00-bc0e-250a7e974d37","directory":"dune-sea","title":"Dune Sea","compatibility":99,"releases":[{"id":"0100D4B010DCA000","region":null}]},{"id":"8ee6f66c-7cb0-4e94-87ae-9499f3af6dbd","directory":"jurassic-pinball","title":"Jurassic Pinball","compatibility":99,"releases":[{"id":"0100CE100A826000","region":null}]},{"id":"8ee9aa03-4d93-4df4-9af6-96bfc7c3139a","directory":"bubble","title":"Bubble","compatibility":99,"releases":[{"id":"01004A4011CB4000","region":null}]},{"id":"8ef5a535-573c-49cb-aced-6b41803186a0","directory":"hatsune-miku-project-diva-mega-mix","title":"Hatsune Miku: Project DIVA Mega Mix","compatibility":0,"releases":[{"id":"01001CC00FA1A000","region":null}]},{"id":"8f008fab-df17-4457-8c87-19e30acc4d6f","directory":"stones-of-the-revenant","title":"Stones of the Revenant","compatibility":0,"releases":[{"id":"0100AFC00F7B6000","region":null}]},{"id":"8f09e9ce-55e2-496b-b781-e75465a10c4f","directory":"mech-rage","title":"Mech Rage","compatibility":99,"releases":[{"id":"0100EC000CE24000","region":null}]},{"id":"8f0c5c13-62f7-4952-8c11-d319b8a83038","directory":"kill-it-with-fire","title":"Kill It With Fire","compatibility":99,"releases":[{"id":"0100152012BB0000","region":null}]},{"id":"8f172b43-e826-40eb-8990-1a3f8e1e684f","directory":"traffix","title":"Traffix","compatibility":99,"releases":[{"id":"01002B700F88A000","region":null}]},{"id":"8f3bd36d-9747-4eed-bbd5-fc60f2528725","directory":"gnosia","title":"Gnosia","compatibility":1,"releases":[{"id":"01008EF013A7C000","region":null}]},{"id":"8f468c01-197f-4244-98db-6ba259aac7ac","directory":"choices-that-matter-and-the-sun-went-out","title":"Choices That Matter: And The Sun Went Out","compatibility":99,"releases":[{"id":"01000BA0132EA000","region":null}]},{"id":"8f4eca0a-663b-40ab-94c6-1a0c11648c6b","directory":"alveole","title":"Alveole","compatibility":99,"releases":[{"id":"01008320152D0000","region":null}]},{"id":"8f4eedf6-ef92-48e1-a6af-6dd885af07d8","directory":"guilt-battle-arena","title":"GUILT BATTLE ARENA","compatibility":1,"releases":[{"id":"010060E009062000","region":null}]},{"id":"8f579c29-1b5f-40a6-8246-b712f6f3a991","directory":"gensou-skydrift","title":"GENSOU Skydrift","compatibility":0,"releases":[{"id":"0100E9E00DBF4000","region":null}]},{"id":"8f5e9b83-054d-4ada-b050-76330f514c30","directory":"green-video-game","title":"GREEN VIDEO GAME","compatibility":1,"releases":[{"id":"0100DFE00F002000","region":null}]},{"id":"8f669828-d50b-4aa2-b7e5-bf75849447b9","directory":"sigi-a-fart-for-melusina","title":"Sigi - A Fart for Melusina","compatibility":99,"releases":[{"id":"01007FC00B674000","region":null}]},{"id":"8f67a4fa-31ea-418e-9c08-4a82a68957f8","directory":"doughlings-invasion","title":"Doughlings: Invasion","compatibility":99,"releases":[{"id":"0100FFA00C9F4000","region":null}]},{"id":"8f7998d9-f629-46a4-aaad-080ce1cd4ba6","directory":"crazy-oce","title":"Crazy Oce","compatibility":99,"releases":[{"id":"0100ADF01388C000","region":null}]},{"id":"8f79d057-8adb-4dea-a4c9-d3c396271e7c","directory":"transformers-battlegrounds","title":"TRANSFORMERS: BATTLEGROUNDS","compatibility":2,"releases":[{"id":"01005E500E528000","region":null}]},{"id":"8f7f2e4c-27ff-4c76-9cf9-8028866564d3","directory":"pick-me-up-rescue-rangers","title":"PICK ME UP! - Rescue Rangers -","compatibility":99,"releases":[{"id":"01006050129D2000","region":null}]},{"id":"8f951d33-50fc-4dce-a220-18e21be68bc1","directory":"stacks-on-stacks-on-stacks","title":"Stacks On Stacks (On Stacks)","compatibility":99,"releases":[{"id":"0100888013B14000","region":null}]},{"id":"8fa3ab67-5b07-4312-a36e-d48f89f4c093","directory":"arcade-archives-tnk-iii","title":"Arcade Archives T.N.K III","compatibility":99,"releases":[{"id":"0100C7800C7A0000","region":null}]},{"id":"8fa99e8d-8df3-43aa-ba63-4255b6e85917","directory":"curse-of-the-dead-gods","title":"Curse of the Dead Gods","compatibility":3,"releases":[{"id":"0100D4A0118EA000","region":null}]},{"id":"8fac6a13-e310-4ad9-922e-aef5b48ed522","directory":"another-sight","title":"Another Sight","compatibility":3,"releases":[{"id":"01001A900D312000","region":null}]},{"id":"8fb14ddb-d61d-4588-8e34-5e5fcc1af7c8","directory":"corpse-party","title":"Corpse Party","compatibility":1,"releases":[{"id":"0100F7E01343E000","region":null}]},{"id":"8fc1fb6f-67dc-4e9d-b9db-87ea9b420bc3","directory":"fire-emblem-warriors","title":"Fire Emblem Warriors","compatibility":3,"releases":[{"id":"0100F15003E64000","region":null}]},{"id":"8fd67ee0-ba54-4387-9867-24bf9f98d6d2","directory":"1-crosswords-bundle","title":"#1 Crosswords Bundle","compatibility":99,"releases":[{"id":"01008F50155A6000","region":null}]},{"id":"8ff4615e-d64d-48ed-8a23-1c1dff9c08fa","directory":"rawr-off","title":"Rawr-Off","compatibility":99,"releases":[{"id":"010003F00C5C0000","region":null}]},{"id":"9001d0c4-0e7d-4d4a-b9be-d8f34a0939f0","directory":"sen-seven-eight-nine","title":"SEN: Seven Eight Nine","compatibility":99,"releases":[{"id":"01000E800F7F0000","region":null}]},{"id":"900d0354-770d-435e-b2d6-d46744bf9d81","directory":"the-jackbox-party-pack-6","title":"The Jackbox Party Pack 6","compatibility":99,"releases":[{"id":"01005A400DB52000","region":null}]},{"id":"90126d7e-d454-440c-80ce-d1f68fab3be9","directory":"biker-garage-mechanic-simulator","title":"Biker Garage: Mechanic Simulator","compatibility":99,"releases":[{"id":"01009E1016B10000","region":null}]},{"id":"90217aa0-8d8a-4bea-8ca1-9b1c2d8b5ed0","directory":"severed","title":"Severed","compatibility":2,"releases":[{"id":"0100157004512000","region":null}]},{"id":"902501e2-e9ea-450a-a696-9ec141f697dc","directory":"zombies-ate-my-neighbors-and-ghoul-patrol","title":"Zombies Ate My Neighbors and Ghoul Patrol","compatibility":0,"releases":[{"id":"0100A34012CCA000","region":null}]},{"id":"902cd4f4-aee0-47cd-ad20-98cfea274899","directory":"i-f-o","title":"I.F.O","compatibility":99,"releases":[{"id":"0100225015482000","region":null}]},{"id":"902efdce-6484-4907-8e6b-47adf51c019e","directory":"international-basketball","title":"International Basketball","compatibility":99,"releases":[{"id":"0100B1F013F2E000","region":null}]},{"id":"903b2f7f-9826-4b8b-9f4b-699841c3e5c9","directory":"hotshot-racing","title":"Hotshot Racing","compatibility":1,"releases":[{"id":"0100BDE008218000","region":null}]},{"id":"903de3f1-a6fb-422b-87d9-806336e4594d","directory":"pac-man-99","title":"PAC-MAN™ 99","compatibility":1,"releases":[{"id":"0100AD9012510000","region":null}]},{"id":"904107dc-ed86-4b57-9805-665c11d1b658","directory":"the-suicide-of-rachel-foster","title":"The Suicide of Rachel Foster","compatibility":3,"releases":[{"id":"0100779015CDC000","region":null}]},{"id":"904624f8-0db8-47d1-864b-c865e1f3acf5","directory":"without-escape","title":"Without Escape","compatibility":99,"releases":[{"id":"0100E8400FDCA000","region":null}]},{"id":"90498537-5b09-4204-8af7-11dc3f9ebf7f","directory":"fin-and-the-ancient-mystery","title":"Fin and the Ancient Mystery","compatibility":0,"releases":[{"id":"0100C8200E942000","region":null}]},{"id":"904a0339-d5d0-46fd-8140-45cd09a70fcb","directory":"dungeons-and-aliens","title":"Dungeons & Aliens","compatibility":99,"releases":[{"id":"010032800D46C000","region":null}]},{"id":"9052f19c-cad7-4756-8eee-2ec5b0f4e7be","directory":"gigantic-army","title":"GIGANTIC ARMY","compatibility":3,"releases":[{"id":"010067A00D35E000","region":null}]},{"id":"90652bf7-c7b2-46dd-8bae-eb0b0e610405","directory":"arcade-archives-vs-tennis","title":"Arcade Archives VS. TENNIS","compatibility":99,"releases":[{"id":"01009A6013AE0000","region":null}]},{"id":"9076bc4e-763b-4e22-b182-a41bbda9d083","directory":"fimbul","title":"Fimbul","compatibility":99,"releases":[{"id":"0100C3A00BB76000","region":null}]},{"id":"907be691-74da-4e31-869d-27bbce132688","directory":"steel-assault","title":"Steel Assault","compatibility":2,"releases":[{"id":"01001C6014772000","region":null}]},{"id":"907e99c8-4808-4a7f-a19f-95d83830f68c","directory":"paper-train","title":"Paper Train","compatibility":99,"releases":[{"id":"010022C00F20A000","region":null}]},{"id":"9089cb98-6e54-4856-a093-da48b1125b08","directory":"big-rumble-boxing-creed-champions","title":"Big Rumble Boxing: Creed Champions","compatibility":1,"releases":[{"id":"0100CCC0153F6000","region":null}]},{"id":"908d8826-3eaf-4c30-96d5-a77015a69c39","directory":"labyrinth-of-refrain-coven-of-dusk","title":"Labyrinth of Refrain: Coven of Dusk","compatibility":0,"releases":[{"id":"010058500B3E0000","region":null}]},{"id":"90b16bcc-debb-419f-bc34-212caa14b086","directory":"baby-puzzle-first-learning-shapes-for-toddlers","title":"Baby Puzzle - First Learning Shapes for Toddlers","compatibility":99,"releases":[{"id":"0100B3E013E56000","region":null}]},{"id":"90bec178-90ac-4955-92b0-e53a6affb92b","directory":"spice-and-wolf-vr2","title":"Spice and Wolf VR2","compatibility":99,"releases":[{"id":"0100DBD0128FE000","region":null}]},{"id":"90cb7cb7-f2c0-4aa3-ad4c-78380344cf31","directory":"darksiders-iii","title":"Darksiders III","compatibility":3,"releases":[{"id":"0100F8F014190000","region":null}]},{"id":"90d45c47-cc5c-4422-8a3b-a63bdc926262","directory":"venture-kid","title":"Venture Kid","compatibility":1,"releases":[{"id":"010095B00DBC8000","region":null}]},{"id":"90dbe6ba-b49f-4505-b7ad-a28db1748cbf","directory":"one-finger-death-punch-2","title":"One Finger Death Punch 2","compatibility":99,"releases":[{"id":"01000B500EB22000","region":null}]},{"id":"90f6f233-8fad-458d-9332-8c6a5626488a","directory":"inside","title":"INSIDE","compatibility":1,"releases":[{"id":"0100D2D009028000","region":null}]},{"id":"90f98c34-5873-48d3-a61b-d8a19c3f57aa","directory":"dating-life-miley-x-emily","title":"Dating Life: Miley X Emily","compatibility":99,"releases":[{"id":"0100BB5015AA8000","region":null}]},{"id":"91045c47-80d6-40f4-bd31-1276e1ecf314","directory":"double-dragon","title":"DOUBLE DRAGON","compatibility":1,"releases":[{"id":"010067C00E496000","region":null}]},{"id":"91098fbe-e0fa-4c8c-9ae3-65de99c83480","directory":"sudoku-master","title":"Sudoku Master","compatibility":99,"releases":[{"id":"01004DE014AEE000","region":null}]},{"id":"910ec3eb-751f-471e-a213-0521d7dd1772","directory":"they-bleed-pixels","title":"They Bleed Pixels","compatibility":99,"releases":[{"id":"01001C2010D08000","region":null}]},{"id":"91121b24-3a6e-45d6-a26d-5337ddff2612","directory":"bomber-crew","title":"Bomber Crew","compatibility":4,"releases":[{"id":"01007900080B6000","region":null}]},{"id":"91231882-e1e2-4cd7-b883-548285db5d8f","directory":"morphite","title":"Morphite","compatibility":99,"releases":[{"id":"0100776003F0C000","region":null}]},{"id":"9124b01f-fc4e-458b-8d57-9fdf56edb9ab","directory":"normans-great-illusion","title":"Norman's Great Illusion","compatibility":99,"releases":[{"id":"010016E011EFA000","region":null}]},{"id":"912b58b4-3ddd-42c6-bfbc-2fa33022a088","directory":"contra-rogue-corps","title":"CONTRA: ROGUE CORPS","compatibility":1,"releases":[{"id":"0100F2600D710000","region":null}]},{"id":"912dd349-171b-4c40-8d24-58b4672597ba","directory":"switchy-road","title":"Switchy Road","compatibility":99,"releases":[{"id":"010059400E0BA000","region":null}]},{"id":"91305b89-09eb-4e8a-abdf-cffd5e4a2b92","directory":"xenoraptor","title":"XenoRaptor","compatibility":99,"releases":[{"id":"010079100EB48000","region":null}]},{"id":"913741a1-4a54-44f0-b5ed-9b34c4b7221d","directory":"pillars-of-eternity-complete-edition","title":"Pillars of Eternity: Complete Edition","compatibility":3,"releases":[{"id":"0100D6200E130000","region":null}]},{"id":"914194b7-6c42-4043-8f09-b930b461eb3d","directory":"brainz","title":"BrainZ","compatibility":99,"releases":[{"id":"01004A800F0CA000","region":null}]},{"id":"914c8530-2cde-40ce-a1a2-fca1028feeec","directory":"a-tale-of-synapse-the-chaos-theories","title":"A Tale of Synapse: The Chaos Theories","compatibility":99,"releases":[{"id":"01000BC013B0A000","region":null}]},{"id":"916ba995-825b-4890-9ee2-04c9af3eb116","directory":"wrc-8-fia-world-rally-championship","title":"WRC 8 FIA World Rally Championship","compatibility":5,"releases":[{"id":"010087800DCEA000","region":null}]},{"id":"9171a844-82ce-4d46-8054-2b022489763a","directory":"eliza","title":"Eliza","compatibility":99,"releases":[{"id":"0100D1700E832000","region":null}]},{"id":"9173c1a0-b9d1-4828-bea3-33418c783006","directory":"griftlands","title":"Griftlands","compatibility":99,"releases":[{"id":"0100E49013514000","region":null}]},{"id":"917a0c04-067b-4e08-86c7-c259ef4779b0","directory":"sumatra-fate-of-yandi","title":"Sumatra: Fate of Yandi","compatibility":0,"releases":[{"id":"010026A013DD6000","region":null}]},{"id":"917c5a3a-11bf-4881-9ecd-5d01ac946d9c","directory":"the-tiny-bang-story","title":"The Tiny Bang Story","compatibility":99,"releases":[{"id":"01009B300D76A000","region":null}]},{"id":"918807a6-5b29-4f9b-9108-fca8150a7eef","directory":"ruiner","title":"RUINER","compatibility":1,"releases":[{"id":"01006EC00F2CC000","region":null}]},{"id":"918b93f4-92b6-46f6-91ca-60d8e91c1a00","directory":"super-treasure-arena","title":"Super Treasure Arena","compatibility":99,"releases":[{"id":"010024A005A2A000","region":null}]},{"id":"91960037-41b9-4c38-82ca-7feb2fb6bcfe","directory":"copperbell","title":"CopperBell","compatibility":99,"releases":[{"id":"0100C5A0115C4000","region":null}]},{"id":"91980373-7b2e-4336-8f47-6f588bbd2118","directory":"capcom-arcade-stadium","title":"Capcom Arcade Stadium","compatibility":3,"releases":[{"id":"01001E0013208000","region":null}]},{"id":"91a43e92-07dc-4e05-a981-280719dd7a3a","directory":"morphite-demo","title":"Morphite Demo","compatibility":99,"releases":[{"id":"0100E1500B5EE000","region":null}]},{"id":"91b005bb-d10f-4064-8a0f-babcd289db10","directory":"goken","title":"GOKEN","compatibility":1,"releases":[{"id":"0100126006EF0000","region":null}]},{"id":"91bdb1d8-034c-4a95-ab70-77cb60bdbc7f","directory":"ni-no-kuni-ii-revenant-kingdom-princes-edition","title":"Ni no Kuni™ II: Revenant Kingdom PRINCE'S EDITION","compatibility":1,"releases":[{"id":"0100BE7013E06000","region":null}]},{"id":"91c61b1f-ca5e-4f90-9fb2-7358db3cd856","directory":"flip-over-frog","title":"FLIP OVER FROG","compatibility":99,"releases":[{"id":"0100AFC00B120000","region":null}]},{"id":"91ca3454-8b06-4c2c-aa9c-b6175c09d10d","directory":"fuze4-nintendo-switch","title":"FUZE4 Nintendo Switch","compatibility":5,"releases":[{"id":"0100EAD007E98000","region":null}]},{"id":"91d0f429-c36b-4577-8e5e-e7971cd9d96c","directory":"pinkman","title":"Pinkman+","compatibility":99,"releases":[{"id":"0100BD8013992000","region":null}]},{"id":"91deab0a-ded9-49e7-97a4-2ad921841728","directory":"saga-frontier-remastered","title":"SaGa Frontier Remastered","compatibility":1,"releases":[{"id":"0100A51013530000","region":null}]},{"id":"91e8ae57-78a3-4291-9090-056db5edac07","directory":"owlboy","title":"Owlboy","compatibility":1,"releases":[{"id":"0100BC2004FF4000","region":null}]},{"id":"91f51d45-473f-425f-bd3e-a5188d3e67f7","directory":"space-scavenger","title":"Space Scavenger","compatibility":99,"releases":[{"id":"0100B37011E2C000","region":null}]},{"id":"91f7ed6f-1129-4019-9475-f0f676b7ad9f","directory":"the-plane-effect","title":"The Plane Effect","compatibility":99,"releases":[{"id":"0100F4C013866000","region":null}]},{"id":"91fe0bb1-d56a-4136-91cd-9532b2862c42","directory":"gods-will-fall","title":"Gods Will Fall","compatibility":3,"releases":[{"id":"0100CFA0111C8000","region":null}]},{"id":"922da700-2eaf-4679-a63e-696e5b47139e","directory":"rime","title":"RiME","compatibility":3,"releases":[{"id":"0100A62002042000","region":null}]},{"id":"9230b1d9-082a-46b1-8211-88ac46ef0e2a","directory":"seven-knights-time-wanderer","title":"Seven Knights -Time Wanderer-","compatibility":4,"releases":[{"id":"010018400C24E000","region":null}]},{"id":"9238e5db-f81a-4935-a699-6dfc552e5a9b","directory":"animus","title":"ANIMUS","compatibility":0,"releases":[{"id":"010097600C322000","region":null}]},{"id":"92421a02-e962-4bee-b5d7-c5b352de95f2","directory":"arcade-archives-moon-patrol","title":"Arcade Archives MOON PATROL","compatibility":1,"releases":[{"id":"01003000097FE000","region":null}]},{"id":"9246e08c-ca47-4dc6-8e4e-cd6c90e456ed","directory":"melty-blood-type-lumina","title":"MELTY BLOOD: TYPE LUMINA","compatibility":1,"releases":[{"id":"01001E30126A0000","region":null}]},{"id":"925c58f6-8515-4eac-924e-9828c93a5d06","directory":"crash-autodrive","title":"CRASH: Autodrive","compatibility":99,"releases":[{"id":"01005AE0125F0000","region":null}]},{"id":"925e3fa4-6c3e-4229-ba47-0b5c40615d9e","directory":"redout-space-assault","title":"Redout: Space Assault","compatibility":99,"releases":[{"id":"0100326010B98000","region":null}]},{"id":"926629ef-5ce5-43f8-b462-02dd1db98b3f","directory":"tacticool-champs","title":"Tacticool Champs","compatibility":99,"releases":[{"id":"010044A00CEB4000","region":null}]},{"id":"926e7162-33f1-4438-a0a7-6e1c62dfc711","directory":"what-comes-after","title":"What Comes After","compatibility":99,"releases":[{"id":"0100013013F30000","region":null}]},{"id":"928f37e1-fa13-4e4d-8c0a-e1cead26d639","directory":"feather","title":"Feather","compatibility":3,"releases":[{"id":"0100E4300CB3E000","region":null}]},{"id":"929c7474-8098-42ea-8dff-3f8cce8a4d35","directory":"car-quest","title":"Car Quest","compatibility":0,"releases":[{"id":"01007BD00AE70000","region":null}]},{"id":"92aac202-bfc9-424e-a244-01dde5cdf315","directory":"garfield-kart-furious-racing","title":"Garfield Kart Furious Racing","compatibility":2,"releases":[{"id":"010061E00E8BE000","region":null}]},{"id":"92bc8a02-cb6e-4e70-b3d0-184b3c1eadf8","directory":"catty-batty-the-spirit-guide","title":"Catty & Batty: The Spirit Guide","compatibility":99,"releases":[{"id":"0100AEF014C82000","region":null}]},{"id":"92bde1d0-207b-45ff-8168-ded79b7e016c","directory":"pixark","title":"PixARK","compatibility":99,"releases":[{"id":"0100CC700B2B4000","region":null}]},{"id":"92c5bfd8-2ee6-449b-8858-00d2231d46a4","directory":"world-soccer","title":"World Soccer","compatibility":99,"releases":[{"id":"010083B00B97A000","region":null}]},{"id":"92d66290-6d90-4475-ae3a-a148aa0b8dd2","directory":"moorhuhn-kart-2","title":"Moorhuhn Kart 2","compatibility":99,"releases":[{"id":"010045C00F274000","region":null}]},{"id":"92e843ea-413c-4219-bd5f-7eab1a932488","directory":"hed-the-pig","title":"Hed the Pig","compatibility":1,"releases":[{"id":"0100690013826000","region":null}]},{"id":"92eccc9a-59a2-4eb6-b316-693432cc23e1","directory":"iris-and-the-giant","title":"Iris and the Giant","compatibility":99,"releases":[{"id":"01008780123A0000","region":null}]},{"id":"92ece80b-59f6-4f24-a07a-aafa69170906","directory":"aeon-must-die","title":"Aeon Must Die!","compatibility":0,"releases":[{"id":"01000B600F918000","region":null}]},{"id":"92fad2dc-59d8-466f-9eb3-977371f5711f","directory":"magnus-failure","title":"Magnus Failure","compatibility":99,"releases":[{"id":"0100F490159A2000","region":null}]},{"id":"92fdc7d4-07e2-4f19-931e-e25be59691c5","directory":"gems-of-war","title":"Gems of War","compatibility":4,"releases":[{"id":"0100BD800986E000","region":null}]},{"id":"92ff9311-7da9-4d39-9c9e-7a4ab8a41639","directory":"arcade-archives-naughty-boy","title":"Arcade Archives NAUGHTY BOY","compatibility":99,"releases":[{"id":"0100419010C60000","region":null}]},{"id":"930651df-8b48-42bf-a2de-ebdae094a1b5","directory":"the-spectrum-retreat","title":"The Spectrum Retreat","compatibility":99,"releases":[{"id":"010041C00A68C000","region":null}]},{"id":"930edcbd-dc79-4c28-9e86-8ad79601558b","directory":"vasterclaws-3-dragon-slayer-of-the-god-world","title":"VasterClaws 3:Dragon slayer of the God world","compatibility":99,"releases":[{"id":"0100082014D86000","region":null}]},{"id":"93150f44-82be-410f-8ea2-4bbbe122453f","directory":"mecha-storm","title":"Mecha Storm","compatibility":99,"releases":[{"id":"01001FA009A1E000","region":null}]},{"id":"93190e97-13c7-48c1-8af7-6bee24532787","directory":"bafl-brakes-are-for-losers","title":"BAFL - Brakes Are For Losers","compatibility":1,"releases":[{"id":"01004C70086EC000","region":null}]},{"id":"931ec0a8-e99c-44f7-a294-aa543736746b","directory":"syrup-and-the-ultimate-sweet","title":"Syrup and The Ultimate Sweet","compatibility":99,"releases":[{"id":"01001FF0104D8000","region":null}]},{"id":"93206a95-d0c6-468b-9e32-4e6946c506d2","directory":"chameleon-run-deluxe-edition","title":"Chameleon Run Deluxe Edition","compatibility":1,"releases":[{"id":"010024F008742000","region":null}]},{"id":"932ab717-0ac9-4f85-a69b-729c44cd4756","directory":"bee-simulator","title":"Bee Simulator","compatibility":2,"releases":[{"id":"01009E700DB2E000","region":null}]},{"id":"9334858d-59c0-4423-b3a0-182468733a64","directory":"arcade-archives-the-legend-of-kage","title":"Arcade Archives THE LEGEND OF KAGE","compatibility":99,"releases":[{"id":"0100353009836000","region":null}]},{"id":"9350021d-96a0-447a-ab22-7bcc456f9cb7","directory":"football-heroes-turbo","title":"Football Heroes Turbo","compatibility":99,"releases":[{"id":"0100D9B00B666000","region":null}]},{"id":"93510eb1-c769-493b-aa61-20dac3ea766d","directory":"super-destronaut-dx-2","title":"Super Destronaut DX-2","compatibility":99,"releases":[{"id":"0100DCF015512000","region":null}]},{"id":"93548908-6e55-41bd-9e08-5a2bbc3177c4","directory":"dark-souls-remastered","title":"DARK SOULS: REMASTERED","compatibility":2,"releases":[{"id":"01004AB00A260000","region":null}]},{"id":"93682fd1-8c8a-4584-a311-96cc7790d1a3","directory":"great-conqueror-rome","title":"Great Conqueror: Rome","compatibility":99,"releases":[{"id":"01005670128FC000","region":null}]},{"id":"93685567-627e-4a47-8ff3-12b7525932d3","directory":"valfaris","title":"Valfaris","compatibility":2,"releases":[{"id":"010089700F30C000","region":null}]},{"id":"937f3faa-2bcc-4506-aa3c-e629a40e509d","directory":"planet-alpha","title":"PLANET ALPHA","compatibility":3,"releases":[{"id":"010003C0099EE000","region":null}]},{"id":"93812f0d-3c1f-4d5a-877e-b4b65563a5ab","directory":"comic-coloring-book-complete-edition","title":"Comic Coloring Book - Complete Edition","compatibility":99,"releases":[{"id":"0100CEF015DEE000","region":null}]},{"id":"938f372f-b147-438c-aafb-e4917789c9dd","directory":"fifty-words-by-powgi","title":"Fifty Words by POWGI","compatibility":99,"releases":[{"id":"010094D00F17C000","region":null}]},{"id":"93a8a545-0530-4c5c-a80e-b636c0b0c9af","directory":"one-line-coloring","title":"One Line Coloring","compatibility":99,"releases":[{"id":"01009170129FA000","region":null}]},{"id":"93a8a67a-fdd5-428a-91ea-354eb6e6e9f2","directory":"paradox-soul","title":"Paradox Soul","compatibility":99,"releases":[{"id":"010065100E7DA000","region":null}]},{"id":"93abc975-8c8e-40f4-a91a-4fada98f3cbc","directory":"aca-neogeo-samurai-shodown","title":"ACA NEOGEO SAMURAI SHODOWN","compatibility":99,"releases":[{"id":"01005C9002B42000","region":null}]},{"id":"93ac86da-5d50-4dbb-b941-9795e6ee529a","directory":"crossing-souls","title":"Crossing Souls","compatibility":1,"releases":[{"id":"0100B1E00AA56000","region":null}]},{"id":"93cb8e39-5679-4af7-ac74-3c539ea7d973","directory":"five-nights-at-freddys-3","title":"Five Nights at Freddy's 3","compatibility":99,"releases":[{"id":"010056100E43C000","region":null}]},{"id":"93cc3b54-39bb-4aa5-af11-fa5fef84242b","directory":"battlloon","title":"BATTLLOON","compatibility":99,"releases":[{"id":"010048300D5C2000","region":null}]},{"id":"93d1bad5-3aa5-4e0c-be15-9f09d35e8939","directory":"voxel-galaxy","title":"Voxel Galaxy","compatibility":99,"releases":[{"id":"0100B1E0100A4000","region":null}]},{"id":"93e029a8-cb8a-47a8-a54b-7b0f0ab6072a","directory":"hermitage-strange-case-files","title":"Hermitage: Strange Case Files","compatibility":99,"releases":[{"id":"01008D10115C2000","region":null}]},{"id":"93e44828-892a-4f1b-b40d-3bda1e09fc2c","directory":"risk-global-domination","title":"RISK Global Domination","compatibility":5,"releases":[{"id":"0100E8300A67A000","region":null}]},{"id":"93fab154-777a-4236-b27d-c51d1d1a9114","directory":"dimension-drive","title":"Dimension Drive","compatibility":1,"releases":[{"id":"0100401003A0C000","region":null}]},{"id":"94033437-ee4b-4230-97af-e3af1fa68e13","directory":"doctor-who-the-edge-of-reality","title":"Doctor Who: The Edge of Reality","compatibility":99,"releases":[{"id":"010066C01366E000","region":null}]},{"id":"94082dc8-e037-462e-94bc-e9c81d942c74","directory":"eyes-the-horror-game","title":"Eyes: The Horror Game","compatibility":99,"releases":[{"id":"0100EFE00A3C2000","region":null}]},{"id":"9416a0e8-25e8-4ba9-b1d1-fef2c99837f8","directory":"witcheye","title":"Witcheye","compatibility":99,"releases":[{"id":"0100BD4011FFE000","region":null}]},{"id":"9422081c-9c41-4908-b120-54f881d784c3","directory":"world-war-z","title":"World War Z","compatibility":4,"releases":[{"id":"010099F013898000","region":null}]},{"id":"9425e16e-eee6-46cd-971e-decca85aed5e","directory":"professor-lupo-ocean","title":"Professor Lupo: Ocean","compatibility":0,"releases":[{"id":"0100D1F0132F6000","region":null}]},{"id":"94284d97-ac9a-4a49-a793-b6cb6e5cb9d9","directory":"iron-crypticle","title":"Iron Crypticle","compatibility":99,"releases":[{"id":"01005EC00BEEC000","region":null}]},{"id":"942afcbf-b2e1-45ee-a247-50bbd8a53b65","directory":"hentai-vs-evil","title":"Hentai vs. Evil","compatibility":99,"releases":[{"id":"0100267013F04000","region":null}]},{"id":"94330f14-4578-4348-aee8-ee6504b5014e","directory":"a-plague-tale-innocence-cloud-version","title":"A Plague Tale: Innocence - Cloud Version","compatibility":99,"releases":[{"id":"01003CE015180000","region":null}]},{"id":"943e324b-d434-4a09-87bf-f27b0ebea976","directory":"vasilis","title":"Vasilis","compatibility":99,"releases":[{"id":"0100AD300E4FA000","region":null}]},{"id":"9443945c-327f-4233-bb7f-e61fd92df7ad","directory":"skatemasta-tcheco","title":"Skatemasta Tcheco","compatibility":99,"releases":[{"id":"01001F101289A000","region":null}]},{"id":"94455c2b-d02b-441d-9dac-3d54b48cf361","directory":"ultimate-bumper-cars-dodgems","title":"Ultimate Bumper Cars: Dodgems","compatibility":1,"releases":[{"id":"01006640142DE000","region":null}]},{"id":"9457a71a-b704-441b-b8f8-e24fac59f064","directory":"mini-car-racing-2","title":"Mini Car Racing 2","compatibility":99,"releases":[{"id":"0100779015FFE000","region":null}]},{"id":"945b2df8-5cf9-45f3-b167-74dd8f47be41","directory":"tetra-for-nintendo-switch-international-edition","title":"TETRA for Nintendo Switch™ International Edition","compatibility":99,"releases":[{"id":"0100671016432000","region":null}]},{"id":"945b32c5-1b8b-4f1d-9f71-60bf4d8fefb5","directory":"slain-back-from-hell","title":"Slain: Back From Hell","compatibility":2,"releases":[{"id":"0100224004004000","region":null}]},{"id":"9460ea30-1074-4cfc-99d7-c24c9eac70bf","directory":"six-sides-of-the-world","title":"Six Sides of the World","compatibility":99,"releases":[{"id":"0100F8000B37E000","region":null}]},{"id":"94634f05-d8be-4e9c-ab8f-2b2f0dbbbfd5","directory":"car-mechanic-manager","title":"Car Mechanic Manager","compatibility":99,"releases":[{"id":"010048800D95C000","region":null}]},{"id":"9463ca44-abf7-4b8f-92ac-773b16ac6ad0","directory":"warshmallows","title":"Warshmallows","compatibility":99,"releases":[{"id":"01009AC016040000","region":null}]},{"id":"94833ad1-443e-435b-afca-9a4e62c566be","directory":"active-neurons-puzzle-game","title":"Active Neurons - Puzzle game","compatibility":99,"releases":[{"id":"010039A010DA0000","region":null}]},{"id":"94846217-1559-40db-8266-01062fd76b44","directory":"xeno-crisis","title":"Xeno Crisis","compatibility":0,"releases":[{"id":"010013F009B88000","region":null}]},{"id":"9487ff7e-07eb-4901-954f-4247d70fc32f","directory":"cyber-protocol","title":"Cyber Protocol","compatibility":2,"releases":[{"id":"0100C1300DE74000","region":null}]},{"id":"948c1a4b-8df4-487d-be03-c42f9abf4e62","directory":"pocket-arcade-story","title":"Pocket Arcade Story","compatibility":99,"releases":[{"id":"010011B00E6B2000","region":null}]},{"id":"948ff28d-3e3e-405f-84b8-b4a9f50f6fee","directory":"pinball-fx3","title":"Pinball FX3","compatibility":1,"releases":[{"id":"0100DB7003828000","region":null}]},{"id":"949092a4-69ce-4813-9eaa-b2b54d8ac69d","directory":"akinofa","title":"Akinofa","compatibility":99,"releases":[{"id":"010039201520E000","region":null}]},{"id":"9491414d-dabe-4118-a405-be86fffb8eb9","directory":"gearshifters","title":"Gearshifters","compatibility":99,"releases":[{"id":"0100DB8010DBE000","region":null}]},{"id":"94917151-ce03-457f-8d3d-25b3eff26569","directory":"ghost-10","title":"Ghost 1.0","compatibility":2,"releases":[{"id":"0100EEB005ACC000","region":null}]},{"id":"9498d4f2-fb86-403c-bd59-d029a6f2c150","directory":"lightseekers","title":"Lightseekers","compatibility":99,"releases":[{"id":"01009EA00C792000","region":null}]},{"id":"949c10a9-882e-4067-a6bd-449d89aca1d5","directory":"epic-clicker-journey","title":"Epic Clicker Journey","compatibility":99,"releases":[{"id":"0100CA200EE70000","region":null}]},{"id":"949c253c-239d-45c9-8aa6-71cad84866de","directory":"unworthy","title":"Unworthy","compatibility":99,"releases":[{"id":"01004AB00B4F8000","region":null}]},{"id":"94a27c39-921e-433d-84dd-72006cccc63f","directory":"nihilumbra","title":"Nihilumbra","compatibility":2,"releases":[{"id":"0100AA0008736000","region":null}]},{"id":"94a34c23-51d1-449d-b53a-492e29edbfed","directory":"touhou-hyouibana-antinomy-of-common-flowers","title":"Touhou Hyouibana ~ Antinomy of Common Flowers.","compatibility":99,"releases":[{"id":"0100ECF012414000","region":null}]},{"id":"94a7923c-d4f1-462c-a257-dc4ec2214eb2","directory":"kemono-heroes","title":"Kemono Heroes","compatibility":0,"releases":[{"id":"0100B61010272000","region":null}]},{"id":"94c273be-c4e3-49bd-bb53-2d3a19ccc7f0","directory":"heroki","title":"Heroki","compatibility":1,"releases":[{"id":"010057300B0DC000","region":null}]},{"id":"94c57dd1-5137-42c4-aa1d-5d0bf73c5bc1","directory":"hollow-knight","title":"Hollow Knight","compatibility":0,"releases":[{"id":"0100633007D48000","region":null}]},{"id":"94db200e-e8f3-400a-9e26-6a4fdb3e7016","directory":"dyna-bomb","title":"Dyna Bomb","compatibility":3,"releases":[{"id":"01007DD00DFDE000","region":null}]},{"id":"94e2aada-3dd6-46ce-85dd-a2af04418947","directory":"slay-the-spire","title":"Slay the Spire","compatibility":3,"releases":[{"id":"010026300BA4A000","region":null}]},{"id":"94f19881-b23a-41d1-99eb-f0f1d3cfb951","directory":"conduct-together","title":"Conduct TOGETHER!","compatibility":1,"releases":[{"id":"010043700C9B0000","region":null}]},{"id":"950871f5-90ae-4864-9527-3c29b51c8864","directory":"handpan","title":"Handpan","compatibility":99,"releases":[{"id":"010086D01674E000","region":null}]},{"id":"9516bf3d-4a56-4812-a59f-028b29d6e384","directory":"aegis-defenders","title":"Aegis Defenders","compatibility":1,"releases":[{"id":"01008E6006502000","region":null}]},{"id":"9537a845-d7d1-4b1a-b558-d1b68d6759fa","directory":"turtlepop-journey-to-freedom","title":"TurtlePop: Journey to Freedom","compatibility":2,"releases":[{"id":"0100B1F0090F2000","region":null}]},{"id":"95576ae2-a958-48a5-abcd-78b77ac14b65","directory":"ice-station-z","title":"Ice Station Z","compatibility":99,"releases":[{"id":"0100954014718000","region":null}]},{"id":"9575451f-7ab8-40c9-a303-0394da68eda8","directory":"aca-neogeo-prehistoric-isle-2","title":"ACA NEOGEO PREHISTORIC ISLE 2","compatibility":99,"releases":[{"id":"0100A7800AFAA000","region":null}]},{"id":"958d48ab-d008-4a90-ba37-01aef0068490","directory":"shark-pinball","title":"Shark Pinball","compatibility":99,"releases":[{"id":"01002F701576A000","region":null}]},{"id":"95902038-6d92-4f12-96a2-29fd6c352e3b","directory":"my-universe-my-baby","title":"My Universe - My Baby","compatibility":99,"releases":[{"id":"0100E20011A06000","region":null}]},{"id":"959de09a-3be2-4db6-bd0e-a2b1900e423e","directory":"miles-and-kilo","title":"Miles & Kilo","compatibility":99,"releases":[{"id":"01004B7009F00000","region":null}]},{"id":"959e3516-9c94-40e8-8bb6-f226f5c1e4df","directory":"strawberry-vinegar","title":"Strawberry Vinegar","compatibility":1,"releases":[{"id":"0100D7E011C64000","region":null}]},{"id":"959eac5c-36ad-4040-96e9-20b2bc2b1812","directory":"colloc","title":"Colloc","compatibility":99,"releases":[{"id":"01007880115E8000","region":null}]},{"id":"95ac0796-2fcb-449c-9f82-ca45ac708a9f","directory":"chill-panda","title":"Chill Panda","compatibility":99,"releases":[{"id":"0100AEF011DF4000","region":null}]},{"id":"95acea0d-456e-4e23-9dc2-292dd347ea0e","directory":"swamp-defense-2","title":"Swamp Defense 2","compatibility":99,"releases":[{"id":"010025000CBEA000","region":null}]},{"id":"95b482b8-9e5b-491f-8bd2-9e73cd62aa60","directory":"wonder-boy-the-dragons-trap","title":"Wonder Boy: The Dragon's Trap","compatibility":0,"releases":[{"id":"0100A6300150C000","region":null}]},{"id":"95c62973-cb16-4997-96f3-1628ab8a7892","directory":"masagoro","title":"MASAGORO","compatibility":99,"releases":[{"id":"0100FEC014F9E000","region":null}]},{"id":"95cbb73f-d0d8-4600-bccc-4483e4e0d687","directory":"arcade-archives-mat-mania-exciting-hour","title":"Arcade Archives MAT MANIA EXCITING HOUR","compatibility":99,"releases":[{"id":"0100C5B009804000","region":null}]},{"id":"95d2afb7-de83-401c-ab93-c1f04320b8ec","directory":"pixel-game-maker-series-remote-bomber","title":"Pixel Game Maker Series Remote Bomber","compatibility":99,"releases":[{"id":"010025501424C000","region":null}]},{"id":"95d4fe11-48e7-4fd8-a14d-2f5364203339","directory":"yuoni-rises","title":"夕鬼 零 Yuoni: Rises","compatibility":99,"releases":[{"id":"01002EE00F48C000","region":null}]},{"id":"95e46f8f-e1f2-4088-aefe-78e4a3e3b766","directory":"sushi-striker-the-way-of-sushido-eshop-demo","title":"Sushi Striker: The Way of Sushido eShop Demo","compatibility":99,"releases":[{"id":"0100FA500B128000","region":null}]},{"id":"95e66041-d6f2-4351-9e1b-4147b960b75a","directory":"nintendo-entertainment-system-nintendo-switch-online","title":"Nintendo Entertainment System - Nintendo Switch Online","compatibility":0,"releases":[{"id":"0100D870045B6000","region":null}]},{"id":"960421b4-8f70-4f3c-802f-c5d9f7dba1a2","directory":"gerrrms","title":"GERRRMS","compatibility":99,"releases":[{"id":"010058F010296000","region":null}]},{"id":"9628cb84-5720-4738-a34f-ebbbc8fb6097","directory":"logic-puzzle-1000","title":"〇× LOGIC PUZZLE 1000 !","compatibility":99,"releases":[{"id":"010091700F76E000","region":null}]},{"id":"964313a1-670c-400a-aa46-ffb87d5279ef","directory":"armed-emeth","title":"Armed Emeth","compatibility":99,"releases":[{"id":"0100BC90155D6000","region":null}]},{"id":"964b3a07-1151-4d96-a9d3-fa23191103e1","directory":"death-tales","title":"Death Tales","compatibility":99,"releases":[{"id":"0100A51013550000","region":null}]},{"id":"964f56be-9aa4-45cc-b428-a0e0ef2c54a3","directory":"the-marauder-chronicles-curse-over-valdria","title":"The Marauder Chronicles: Curse Over Valdria","compatibility":99,"releases":[{"id":"01002620160BC000","region":null}]},{"id":"9660f49b-f0d6-4c38-ac69-bad6da26079b","directory":"sables-grimoire","title":"Sable's Grimoire","compatibility":99,"releases":[{"id":"010086F012E52000","region":null}]},{"id":"967bda2a-91d9-43e8-8425-89c0625aa7e0","directory":"dreamworks-dragons-dawn-of-new-riders","title":"DreamWorks Dragons Dawn of New Riders","compatibility":4,"releases":[{"id":"0100ED200B6FC000","region":null}]},{"id":"967c0cb7-b45c-4342-81fe-ca59763a854b","directory":"brave-dungeon-dark-witch-storycombat","title":"Brave Dungeon + Dark Witch Story:COMBAT","compatibility":2,"releases":[{"id":"01000F5003068000","region":null}]},{"id":"96898fc3-53cc-4c66-8fee-abda7804948a","directory":"mirror","title":"Mirror","compatibility":1,"releases":[{"id":"010080F00F490000","region":null}]},{"id":"968a8444-58f3-4335-98d9-4d09649d27fa","directory":"cooking-simulator","title":"Cooking Simulator","compatibility":99,"releases":[{"id":"01001E400FD58000","region":null}]},{"id":"968d1f3e-b526-4b76-8218-d105660c6ee2","directory":"psikyo-shooting-stars-bravo","title":"Psikyo Shooting Stars Bravo","compatibility":4,"releases":[{"id":"0100D7400F2E4000","region":null}]},{"id":"96917456-1c7b-4d22-b7b1-904577c596b7","directory":"rascal-fight","title":"Rascal Fight","compatibility":99,"releases":[{"id":"0100E73010754000","region":null}]},{"id":"969d1b5a-eb5c-48c2-b381-9c58e16fc199","directory":"timespinner","title":"Timespinner","compatibility":2,"releases":[{"id":"0100DD300CF3A000","region":null}]},{"id":"96ad1115-5c40-49fc-a1f5-32e1d03cb5be","directory":"gibbous-a-cthulhu-adventure","title":"Gibbous - A Cthulhu Adventure","compatibility":3,"releases":[{"id":"0100D95012C0A000","region":null}]},{"id":"96af36ff-297d-42dc-823f-83dc5bfd453f","directory":"johnny-turbos-arcade-break-thru","title":"Johnny Turbo's Arcade: Break Thru","compatibility":99,"releases":[{"id":"010066D002CC8000","region":null}]},{"id":"96b7630c-10d0-4b57-9fe2-d36583b5b5bd","directory":"arcade-archives-p-47","title":"Arcade Archives P-47","compatibility":99,"releases":[{"id":"010067A011FF0000","region":null}]},{"id":"96d2c8ce-7073-42b6-9f8c-fe8a610753d1","directory":"captain-cat","title":"Captain Cat","compatibility":99,"releases":[{"id":"0100D1F00D688000","region":null}]},{"id":"96fb75c6-e008-4810-a25a-baeac4274f0e","directory":"pipe-fitter","title":"Pipe Fitter","compatibility":99,"releases":[{"id":"0100571016352000","region":null}]},{"id":"9705592c-cf51-49d3-ad63-50f3a56abbf8","directory":"eternal-radiance","title":"Eternal Radiance","compatibility":99,"releases":[{"id":"0100F0C014A16000","region":null}]},{"id":"9708b699-e61d-4caa-b63f-9e758ec2b61e","directory":"my-forged-wedding","title":"My Forged Wedding","compatibility":3,"releases":[{"id":"0100D37011F42000","region":null}]},{"id":"971b228d-4f90-46c2-aa30-edfc0e10d194","directory":"windscape","title":"Windscape","compatibility":99,"releases":[{"id":"010059900BA3C000","region":null}]},{"id":"972b0afe-f4d0-4520-9935-ae386c180775","directory":"kubinashi-recollection","title":"Kubinashi Recollection","compatibility":99,"releases":[{"id":"01001A1015B68000","region":null}]},{"id":"9734f8b3-eda8-43e0-a4c5-6c3a880bb8a8","directory":"heart-of-the-woods","title":"Heart of the Woods","compatibility":99,"releases":[{"id":"010031300F666000","region":null}]},{"id":"9742ad27-a933-4347-b0bd-7c1a77114cd9","directory":"pop-blocks","title":"Pop Blocks","compatibility":99,"releases":[{"id":"0100739015DCC000","region":null}]},{"id":"97439c47-3166-4a79-8bfd-f6068a4072e6","directory":"hue","title":"Hue","compatibility":99,"releases":[{"id":"01005A700C9BA000","region":null}]},{"id":"9744120f-848d-4718-8742-f1f37e38d1f9","directory":"family-vacation-2-road-trip","title":"Family Vacation 2: Road Trip","compatibility":99,"releases":[{"id":"0100972015102000","region":null}]},{"id":"97460bc4-66c5-4de7-bfbb-c23476907628","directory":"ender-lilies-quietus-of-the-knights","title":"ENDER LILIES: Quietus of the Knights","compatibility":1,"releases":[{"id":"0100CCF012E9A000","region":null}]},{"id":"974d9e04-4444-41c9-aa9e-3ff8ecd1a334","directory":"bubble-shooter-dx","title":"Bubble Shooter DX","compatibility":99,"releases":[{"id":"010053B00D26E000","region":null}]},{"id":"97514c58-b0ff-4a4d-9426-2beb08f00acf","directory":"fairy-tail","title":"FAIRY TAIL","compatibility":1,"releases":[{"id":"0100CF900FA3E000","region":null}]},{"id":"975b8b22-6c24-4358-92f9-087cfc210931","directory":"retimed-demo","title":"Retimed Demo","compatibility":99,"releases":[{"id":"0100A8200D0EE000","region":null}]},{"id":"975c8545-425a-4b40-9d20-b389c2bdf24e","directory":"element","title":"Element","compatibility":3,"releases":[{"id":"0100A6700AF10000","region":null}]},{"id":"975e6ac1-21d4-4dee-ac1c-4efe736cbf98","directory":"i-ai","title":"I, AI","compatibility":99,"releases":[{"id":"01009CE01261C000","region":null}]},{"id":"9768e0c9-33c4-41a6-b57b-ce2395e49b28","directory":"good-pizza-great-pizza","title":"Good Pizza, Great Pizza","compatibility":1,"releases":[{"id":"0100F610122F6000","region":null}]},{"id":"976f37ed-eca7-4049-89cf-9478c2e1ad04","directory":"battleship","title":"BATTLESHIP","compatibility":99,"releases":[{"id":"0100F0400C878000","region":null}]},{"id":"9778aa2e-c185-49a2-8aa4-59d19e743112","directory":"disaster-report-4-summer-memories","title":"Disaster Report 4: Summer Memories","compatibility":4,"releases":[{"id":"010020700E2A2000","region":null}]},{"id":"977b58db-7f13-4e66-bdb6-942e1acd67d8","directory":"chroma-squad","title":"Chroma Squad","compatibility":99,"releases":[{"id":"010012E00EA66000","region":null}]},{"id":"977d8140-1172-434e-8c4f-510861780e34","directory":"darius-cozmic-collection-console","title":"Darius Cozmic Collection Console","compatibility":0,"releases":[{"id":"01000330105BE000","region":null}]},{"id":"978509c1-b386-421d-ac84-ab0ec3534e16","directory":"eight-dragons","title":"Eight Dragons","compatibility":99,"releases":[{"id":"01003AD013BD2000","region":null}]},{"id":"979ae6b6-484b-4d79-bba5-6ed0516f6a09","directory":"ni-no-kuni-wrath-of-the-white-witch","title":"Ni no Kuni: Wrath of the White Witch","compatibility":1,"releases":[{"id":"0100E5600D446000","region":null}]},{"id":"979fa651-1413-4221-aa12-20c1a94d6ce8","directory":"mary-kay-andrews-the-fixer-upper","title":"Mary Kay Andrews: The Fixer Upper","compatibility":99,"releases":[{"id":"0100232015D6E000","region":null}]},{"id":"97a6a34f-def2-4e4d-881d-6c8055ed699a","directory":"jim-is-moving-out","title":"Jim is Moving Out!","compatibility":99,"releases":[{"id":"01001F5006DF6000","region":null}]},{"id":"97a932e0-4bd9-448d-9fe2-08b5b2dc20b1","directory":"old-school-musical","title":"Old School Musical","compatibility":99,"releases":[{"id":"0100C3D00923A000","region":null}]},{"id":"97b71d31-1655-480a-a43d-c758cd5faba9","directory":"fitness-boxing","title":"Fitness Boxing","compatibility":0,"releases":[{"id":"0100E7300AAD4000","region":null}]},{"id":"97b8037b-383b-4eb6-8d88-8d77bff2bd23","directory":"grid-mania","title":"Grid Mania","compatibility":1,"releases":[{"id":"010031200981C000","region":null}]},{"id":"97c66a86-32ee-4652-af7f-04290673cb51","directory":"mars-power-industries","title":"Mars Power Industries","compatibility":99,"releases":[{"id":"01003B900ED8C000","region":null}]},{"id":"97d866e6-cd9f-4339-8922-3c946cfc73c0","directory":"bomb-chicken","title":"Bomb Chicken","compatibility":0,"releases":[{"id":"01008AF00A532000","region":null}]},{"id":"97d88a35-65a1-4d61-890d-2a0a036cdaf7","directory":"thomas-was-alone","title":"Thomas Was Alone","compatibility":99,"releases":[{"id":"010019D0126E2000","region":null}]},{"id":"97e8ec9d-7723-444c-9d96-da49ddd698ee","directory":"animated-jigsaws-wild-animals","title":"Animated Jigsaws: Wild Animals","compatibility":99,"releases":[{"id":"01004A200C236000","region":null}]},{"id":"97f66dc9-aa12-4fa3-8204-c566cc268587","directory":"deaths-hangover","title":"Death's Hangover","compatibility":5,"releases":[{"id":"0100492011A8A000","region":null}]},{"id":"97f8c6da-3a72-494e-983d-799c2dc9c5ea","directory":"get-a-grip-chip","title":"Get-A-Grip Chip","compatibility":99,"releases":[{"id":"01003AA01373C000","region":null}]},{"id":"981caa8c-c99d-4e83-aacc-f671e8cc74bb","directory":"drunk-fu-wasted-masters","title":"Drunk-Fu: Wasted Masters","compatibility":99,"releases":[{"id":"0100F2400CF00000","region":null}]},{"id":"98231b5e-bb20-4678-a3f8-9434af45331d","directory":"twin-robots-ultimate-edition","title":"Twin Robots: Ultimate Edition","compatibility":99,"releases":[{"id":"0100047009742000","region":null}]},{"id":"9839f061-4b81-4e1b-8e7e-4d68e56512cb","directory":"holy-potatoes-were-in-space","title":"Holy Potatoes! We're In Space?!","compatibility":5,"releases":[{"id":"010096B009E12000","region":null}]},{"id":"9840c366-a7b7-4e0d-a9d7-ade0058a199b","directory":"0x0-minimalist","title":"0x0 Minimalist","compatibility":99,"releases":[{"id":"01001E3013FC4000","region":null}]},{"id":"98418511-0da2-4d68-a960-7c45fd7d8ba8","directory":"steamworld-quest-hand-of-gilgamech","title":"SteamWorld Quest: Hand of Gilgamech","compatibility":3,"releases":[{"id":"0100F6D00D83E000","region":null}]},{"id":"98422872-ad78-4185-96a9-0901e4ac2bb0","directory":"shantae-and-the-seven-sirens","title":"Shantae and the Seven Sirens","compatibility":0,"releases":[{"id":"0100EB901040A000","region":null}]},{"id":"984e8e0d-4571-4a07-bc0b-7f8514e28510","directory":"islanders","title":"ISLANDERS","compatibility":99,"releases":[{"id":"0100522014E10000","region":null}]},{"id":"9850f969-8b53-4678-a98c-f0698055b5b1","directory":"big-pharma","title":"Big Pharma","compatibility":99,"releases":[{"id":"010077E00F30E000","region":null}]},{"id":"986382e2-2f62-4fcc-b85f-9f1e63f15d42","directory":"ploid-saga","title":"PLOID SAGA","compatibility":99,"releases":[{"id":"0100E5B011F48000","region":null}]},{"id":"986ca139-9a3a-4c0c-bab5-333de2c72e2a","directory":"holedown","title":"holedown","compatibility":99,"releases":[{"id":"01003CE00EAF0000","region":null}]},{"id":"9878d205-d4e9-4bb9-987a-4d86b3ba1c09","directory":"swapperoo","title":"Swapperoo","compatibility":99,"releases":[{"id":"0100B110113FA000","region":null}]},{"id":"9879605e-1878-49e8-bf6f-40da14d11b6d","directory":"voxel-sword","title":"Voxel Sword","compatibility":99,"releases":[{"id":"0100BFB00D1F4000","region":null}]},{"id":"987ffda6-11a2-4451-9d2d-1fae42a7c79e","directory":"bouncing-hero","title":"Bouncing Hero","compatibility":99,"releases":[{"id":"010010D010632000","region":null}]},{"id":"988131c4-7d47-408d-b09d-972d1bca7007","directory":"aluna-sentinel-of-the-shards","title":"Aluna: Sentinel of the Shards","compatibility":4,"releases":[{"id":"010045201487C000","region":null}]},{"id":"988d5756-b5c1-4f41-b097-3085de144e7c","directory":"war-of-stealth-assassin","title":"War Of Stealth - assassin","compatibility":99,"releases":[{"id":"01004FA01391A000","region":null}]},{"id":"9894432d-f9a8-4b9b-9af3-dffdabba8667","directory":"tarot-readings-premium","title":"Tarot Readings Premium","compatibility":99,"releases":[{"id":"010029100B75C000","region":null}]},{"id":"989b01b7-a266-45d5-9008-fa52673bc244","directory":"run-the-fan","title":"Run the Fan","compatibility":0,"releases":[{"id":"010074F00DE4A000","region":null}]},{"id":"989f950d-1eca-4376-ae21-3bc23536a538","directory":"slice-dice-and-rice","title":"Slice, Dice & Rice","compatibility":1,"releases":[{"id":"0100F4500AA4E000","region":null}]},{"id":"98af54ee-f935-4633-b41b-bd2d1dbb6323","directory":"yiik-a-postmodern-rpg","title":"YIIK: A Postmodern RPG","compatibility":2,"releases":[{"id":"0100634008266000","region":null}]},{"id":"98b24315-4182-4801-aefc-18f0f45749c3","directory":"johnny-turbos-arcade-gate-of-doom","title":"Johnny Turbo's Arcade: Gate Of Doom","compatibility":2,"releases":[{"id":"010069B002CDE000","region":null}]},{"id":"98bb0182-5d54-437a-85bc-f6a3b4735abd","directory":"tardy","title":"Tardy","compatibility":99,"releases":[{"id":"01008B200D748000","region":null}]},{"id":"98c72921-ab7b-40b2-a0a1-94b6b884a5a7","directory":"never-stop-sneakin","title":"Never Stop Sneakin'","compatibility":1,"releases":[{"id":"0100A70006B8A000","region":null}]},{"id":"98d60610-cf65-4bcd-8a9b-6bcab97db8f4","directory":"where-are-my-friends","title":"Where Are My Friends?","compatibility":99,"releases":[{"id":"0100FDB0092B4000","region":null}]},{"id":"98d86bca-088d-4aaa-9cfe-0f4739366a83","directory":"punch-club","title":"Punch Club","compatibility":2,"releases":[{"id":"0100A6000ACEA000","region":null}]},{"id":"98e101c9-17d2-4e1c-ba56-c8c3868a3892","directory":"nine-witches-family-disruption","title":"Nine Witches: Family Disruption","compatibility":0,"releases":[{"id":"01006790101A2000","region":null}]},{"id":"98f9a637-368e-407b-932e-36404a7a1a50","directory":"tiny-world-racing","title":"Tiny World Racing","compatibility":99,"releases":[{"id":"0100F3D013568000","region":null}]},{"id":"98fd0359-9d7f-4885-bd74-4a2413bbe49f","directory":"pitfall-planet","title":"Pitfall Planet","compatibility":2,"releases":[{"id":"0100AFC00A680000","region":null}]},{"id":"991327eb-9e09-4c0a-81a5-7655266ea2a9","directory":"evil-inside","title":"Evil Inside","compatibility":99,"releases":[{"id":"01002E800D44E000","region":null}]},{"id":"9919ac5d-91aa-4557-8ac5-08abb77d6fec","directory":"warlocks-2-god-slayers","title":"Warlocks 2: God Slayers","compatibility":99,"releases":[{"id":"0100E0400E320000","region":null}]},{"id":"99251eb2-ebd4-43ec-9f65-89260529f743","directory":"aca-neogeo-the-king-of-fighters-2001","title":"ACA NEOGEO THE KING OF FIGHTERS 2001","compatibility":5,"releases":[{"id":"010048200AFC2000","region":null}]},{"id":"99297283-4d6a-4d3f-a581-fb3fd1a06a80","directory":"neonwall","title":"Neonwall","compatibility":99,"releases":[{"id":"0100743008694000","region":null}]},{"id":"99384d0b-d8e0-45ff-a44e-2185241d825a","directory":"lunas-fishing-garden","title":"Luna's Fishing Garden","compatibility":0,"releases":[{"id":"0100374015A2C000","region":null}]},{"id":"993a34ce-2660-49e4-9f35-da21e017c70f","directory":"south-park-the-fractured-but-whole-standard-edition","title":"South Park: The Fractured but Whole - Standard Edition","compatibility":5,"releases":[{"id":"01008F2005154000","region":null}]},{"id":"995c75b7-406c-4f1a-b010-a9c485e65894","directory":"station-manager","title":"Station Manager","compatibility":0,"releases":[{"id":"010087000FD2A000","region":null}]},{"id":"996c41b3-0bfb-42f9-abeb-ab74a0b55d09","directory":"pixel-action-heroes","title":"Pixel Action Heroes","compatibility":99,"releases":[{"id":"0100F5B007638000","region":null}]},{"id":"99982b4a-0ee8-489b-b0a5-76529657df29","directory":"shadow-bug","title":"Shadow Bug","compatibility":0,"releases":[{"id":"01007D9007792000","region":null}]},{"id":"999c63bc-fbde-4828-be7d-c71f94fb04f6","directory":"farmers-dynasty","title":"Farmer's Dynasty","compatibility":99,"releases":[{"id":"010055600516C000","region":null}]},{"id":"99b16737-6a39-4b5a-9c71-f171875a4be2","directory":"my-little-ramenbar","title":"My Little Ramenbar","compatibility":99,"releases":[{"id":"01001A4015F3A000","region":null}]},{"id":"99b66a37-8923-4b49-b6fb-468f79089f81","directory":"infinite-golf-2","title":"Infinite Golf 2","compatibility":99,"releases":[{"id":"0100AB801507C000","region":null}]},{"id":"99ba9711-81ba-467a-b7c8-1e70d9a0aee4","directory":"heroes-of-loot","title":"Heroes of Loot","compatibility":3,"releases":[{"id":"010091E01330C000","region":null}]},{"id":"99c338e8-6bcd-490c-9ffe-57982eab7ffe","directory":"crazy-zen-mini-golf","title":"Crazy Zen Mini Golf","compatibility":1,"releases":[{"id":"0100F9900D8C8000","region":null}]},{"id":"99dc85fc-b7ed-4235-896b-861eaf81976c","directory":"sushi-striker-the-way-of-sushido","title":"Sushi Striker: The Way of Sushido","compatibility":1,"releases":[{"id":"0100DDD0085A4000","region":null}]},{"id":"99ddde39-4a11-4e04-a1a8-6ad5e6a5c7be","directory":"shmup-collection","title":"Shmup Collection","compatibility":3,"releases":[{"id":"01000A601139E000","region":null}]},{"id":"99e302f2-2e38-4eb7-ac62-97e7803d6228","directory":"devious-dungeon-collection","title":"Devious Dungeon Collection","compatibility":99,"releases":[{"id":"010040F011DE4000","region":null}]},{"id":"99eb0522-1872-4eb9-a18b-a2ed0a8fbd91","directory":"twin-breaker-a-sacred-symbols-adventure","title":"Twin Breaker: A Sacred Symbols Adventure","compatibility":99,"releases":[{"id":"0100C68012128000","region":null}]},{"id":"9a13c374-d8ec-44a9-9ea7-1f5592c8e9ef","directory":"adventure-field-4","title":"Adventure Field 4","compatibility":99,"releases":[{"id":"0100E140149F0000","region":null}]},{"id":"9a158abb-7235-4f91-8484-8d4a54276465","directory":"nira","title":"Nira","compatibility":99,"releases":[{"id":"01001A6013E8A000","region":null}]},{"id":"9a281ac5-8c41-4758-b839-d74c57af47d4","directory":"rbi-baseball-20","title":"R.B.I. Baseball 20","compatibility":1,"releases":[{"id":"010061400E7D4000","region":null}]},{"id":"9a3297ba-c575-4e59-9ad4-7586357beaf9","directory":"enchanting-mahjong-match","title":"Enchanting Mahjong Match","compatibility":1,"releases":[{"id":"01007A4008486000","region":null}]},{"id":"9a4a7112-d553-431e-b69d-23f5394f5ccb","directory":"crazy-gravity","title":"Crazy Gravity","compatibility":99,"releases":[{"id":"01007CC015A7A000","region":null}]},{"id":"9a521185-b7ab-4137-99cd-2a27bd2c48b2","directory":"arcade-archives-athena","title":"Arcade Archives ATHENA","compatibility":5,"releases":[{"id":"0100BEC00C7A2000","region":null}]},{"id":"9a531632-a64e-43e7-a685-341b4600e2a8","directory":"silent-world","title":"Silent World","compatibility":99,"releases":[{"id":"0100A32010618000","region":null}]},{"id":"9a552409-7efd-415f-b053-4ea1109b3d83","directory":"jumping-joe-and-friends","title":"Jumping Joe & Friends","compatibility":0,"releases":[{"id":"0100D87009954000","region":null}]},{"id":"9a58b646-2b55-4c13-9585-0d1feaaf4de8","directory":"solo-islands-of-the-heart","title":"Solo: Islands of the Heart","compatibility":99,"releases":[{"id":"010008600D1AC000","region":null}]},{"id":"9a68faa7-1b8b-40e8-bfc1-646e709e4073","directory":"vandals","title":"Vandals","compatibility":99,"releases":[{"id":"01007C500D650000","region":null}]},{"id":"9a6b122a-cb63-40a3-b426-4d396761e029","directory":"speed-dating-for-ghosts","title":"Speed Dating for Ghosts","compatibility":99,"releases":[{"id":"0100E22010D06000","region":null}]},{"id":"9a765a44-ed96-44eb-9b3c-71924c394a66","directory":"bubble-bubble-ocean","title":"Bubble Bubble Ocean","compatibility":99,"releases":[{"id":"01006B5013EF2000","region":null}]},{"id":"9a812505-4fe6-4f18-8810-55eab8472339","directory":"indiecalypse","title":"Indiecalypse","compatibility":99,"releases":[{"id":"010002A00CD68000","region":null}]},{"id":"9a87136a-6e4f-49fd-af41-d37d0fc4cc83","directory":"space-blast-zom-a-matching-game","title":"Space Blast Zom A Matching Game","compatibility":99,"releases":[{"id":"0100C65013DA0000","region":null}]},{"id":"9a98f236-86c3-458c-bc93-5dfe2764c93e","directory":"top-gun-air-combat","title":"Top Gun Air Combat","compatibility":99,"releases":[{"id":"0100B190137F2000","region":null}]},{"id":"9a9b1a8b-ee94-4b31-9860-66603d2250ec","directory":"manticore-galaxy-on-fire","title":"Manticore - Galaxy on Fire","compatibility":5,"releases":[{"id":"0100C9A00952A000","region":null}]},{"id":"9aa13636-c2d2-48c9-b9c1-4213d94d822d","directory":"american-ninja-warrior-challenge","title":"American Ninja Warrior: Challenge","compatibility":0,"releases":[{"id":"010089D00A3FA000","region":null}]},{"id":"9ac58ef0-8309-496b-a318-b604c9203367","directory":"travis-strikes-again-no-more-heroes","title":"Travis Strikes Again: No More Heroes","compatibility":0,"releases":[{"id":"010011600C946000","region":null}]},{"id":"9ac6fd2c-e531-40e3-a8fa-2646c67337cb","directory":"slot","title":"Slot","compatibility":0,"releases":[{"id":"01007DD011608000","region":null}]},{"id":"9acf29ff-cad6-45d4-9783-739973c17b74","directory":"qv","title":"QV","compatibility":99,"releases":[{"id":"010015D0127D6000","region":null}]},{"id":"9ad5b99b-7483-43ef-bb68-e96c46c0a2e2","directory":"broken-sword-5-the-serpents-curse","title":"Broken Sword 5 - the Serpent's Curse","compatibility":4,"releases":[{"id":"01001E60085E6000","region":null}]},{"id":"9adb76b7-f384-492a-9a60-e0a760efb49f","directory":"the-snake-king","title":"The Snake King","compatibility":99,"releases":[{"id":"0100205011C54000","region":null}]},{"id":"9adf512f-7be6-4714-b0bd-884e9a7f8ceb","directory":"elemental-knights-r","title":"Elemental Knights R","compatibility":4,"releases":[{"id":"01005FA009370000","region":null}]},{"id":"9ae179c9-8095-4f37-86ff-2b0dfd62386c","directory":"viviette","title":"Viviette","compatibility":1,"releases":[{"id":"010037900CB1C000","region":null}]},{"id":"9ae27836-7e1e-4f66-87fd-58c18b0efd84","directory":"arcade-archives-phozon","title":"Arcade Archives PHOZON","compatibility":99,"releases":[{"id":"010016E015D26000","region":null}]},{"id":"9ae3173c-f0a2-4f0c-a730-043f50064c73","directory":"roarr-jurassic-edition","title":"Roarr! Jurassic Edition","compatibility":99,"releases":[{"id":"010068200C5BE000","region":null}]},{"id":"9af8db5a-313e-4425-95c0-95db13340ac8","directory":"luckslinger","title":"Luckslinger","compatibility":99,"releases":[{"id":"0100EAB00B196000","region":null}]},{"id":"9b006db4-725f-4d92-9a06-bef9cc7e1be2","directory":"astro-rangers","title":"Astro Rangers","compatibility":99,"releases":[{"id":"01007B4016D58000","region":null}]},{"id":"9b010ce7-b748-4bc1-a889-9285e343014b","directory":"combat-core-demo","title":"Combat Core (Demo)","compatibility":99,"releases":[{"id":"01009BC00C0A0000","region":null}]},{"id":"9b05587e-68fb-4957-ad28-bf759646bc4c","directory":"cecconoid","title":"Cecconoid","compatibility":99,"releases":[{"id":"01007A1012852000","region":null}]},{"id":"9b0c4d80-f527-4012-b672-8c2e5d645619","directory":"graceful-explosion-machine-demo","title":"Graceful Explosion Machine Demo","compatibility":99,"releases":[{"id":"0100F1000CF16000","region":null}]},{"id":"9b12338f-2139-434d-84e0-bd67028c3f7b","directory":"assault-gunners-hd-edition","title":"ASSAULT GUNNERS HD EDITION","compatibility":0,"releases":[{"id":"01009A400A97C000","region":null}]},{"id":"9b12b7c8-6671-4845-b0b1-58d63cc6c0ee","directory":"grisaia-phantom-trigger-01-to-05","title":"GRISAIA PHANTOM TRIGGER 01 to 05","compatibility":2,"releases":[{"id":"01004AB0133E8000","region":null}]},{"id":"9b32a114-ab7b-4d6a-9a03-7a5c98ce0b82","directory":"the-bullet-time-of-revenge","title":"The Bullet: Time of Revenge","compatibility":99,"releases":[{"id":"01003720118E0000","region":null}]},{"id":"9b571cd1-eea3-4d11-b189-14fb73f39a74","directory":"armed-7-dx","title":"Armed 7 DX","compatibility":99,"releases":[{"id":"0100C5B0113A0000","region":null}]},{"id":"9b6b9cff-dfc0-4a41-9339-f8593470e4a5","directory":"infinite-adventures-r","title":"Infinite Adventures®","compatibility":99,"releases":[{"id":"01008C1011F2E000","region":null}]},{"id":"9b734c87-cd9d-4224-ad74-0194fac19b4e","directory":"paw-patrol-the-movie-adventure-city-calls","title":"PAW Patrol The Movie: Adventure City Calls","compatibility":1,"releases":[{"id":"0100FFE013628000","region":null}]},{"id":"9b8705db-ba25-43bd-805c-ca3350b44870","directory":"grass-cutter-mutated-lawns","title":"Grass Cutter - Mutated Lawns","compatibility":99,"releases":[{"id":"010028200E132000","region":null}]},{"id":"9b8bb282-1a4a-40b2-9246-7ec8f410526a","directory":"the-dark-crystal-age-of-resistance-tactics","title":"The Dark Crystal: Age of Resistance Tactics","compatibility":99,"releases":[{"id":"010051800E922000","region":null}]},{"id":"9b8ef9c4-eeb1-4df9-b01f-e6c6883be0f3","directory":"arcade-archives-sky-skipper","title":"Arcade Archives Sky Skipper","compatibility":4,"releases":[{"id":"010008F00B054000","region":null}]},{"id":"9b9a9ddb-88ba-4304-a95c-4538c9dbf164","directory":"growtopia","title":"Growtopia","compatibility":99,"releases":[{"id":"010065F00BE6C000","region":null}]},{"id":"9b9ed157-ce30-4fdf-90be-9e29c524e54a","directory":"atv-drift-and-tricks","title":"ATV Drift & Tricks","compatibility":3,"releases":[{"id":"01000F600B01E000","region":null}]},{"id":"9ba1f4dd-2634-4048-aea1-3f7cd0f7485f","directory":"defend-your-castle","title":"Defend Your Castle","compatibility":2,"releases":[{"id":"01006E600D9C2000","region":null}]},{"id":"9ba3b900-54e8-49e9-92a5-5ed63d78e504","directory":"masters-of-anima","title":"Masters of Anima","compatibility":3,"releases":[{"id":"0100CC7009196000","region":null}]},{"id":"9bad4425-6f68-40a9-a738-87b0c1b18fb3","directory":"oninaki","title":"ONINAKI","compatibility":1,"releases":[{"id":"01001AF00CE54000","region":null}]},{"id":"9bbe537c-5a2c-4e2d-a656-37a715d4eea9","directory":"puss","title":"PUSS!","compatibility":1,"releases":[{"id":"010069401270E000","region":null}]},{"id":"9bc07bd7-deb0-484c-8856-c3a213c013c8","directory":"unlock-the-king-2","title":"Unlock the King 2","compatibility":99,"releases":[{"id":"0100A3E011CB0000","region":null}]},{"id":"9bc40694-eec7-4142-88ea-4b595901249b","directory":"monopoly-for-nintendo-switch","title":"MONOPOLY for Nintendo Switch","compatibility":1,"releases":[{"id":"01007430037F6000","region":null}]},{"id":"9bce7c5b-0e8a-4fc9-89ac-415f8b57abb5","directory":"crocs-world-run-demo","title":"Croc's World Run Demo","compatibility":99,"releases":[{"id":"01009A500D8CC000","region":null}]},{"id":"9bcffe9f-4950-4847-800d-fca3e69203b7","directory":"undead-beyond","title":"Undead & Beyond","compatibility":1,"releases":[{"id":"010076F011F54000","region":null}]},{"id":"9bdc8670-392f-4222-86e1-094130443cf8","directory":"hang-the-kings","title":"Hang The Kings","compatibility":99,"releases":[{"id":"0100973011358000","region":null}]},{"id":"9bf8fbe5-130e-4f09-aaf5-5d938ec8ffcb","directory":"steamworld-dig-2","title":"SteamWorld Dig 2","compatibility":1,"releases":[{"id":"0100CA9002322000","region":null}]},{"id":"9c026dc4-58c7-4989-bbd4-820365fde1ef","directory":"farmquest","title":"Farmquest","compatibility":99,"releases":[{"id":"01008FC016886000","region":null}]},{"id":"9c02c471-cb72-4e05-810d-10cd5822d24a","directory":"utopia-9-a-volatile-vacation","title":"UTOPIA 9 - A Volatile Vacation","compatibility":99,"releases":[{"id":"010029B00CC3E000","region":null}]},{"id":"9c2531d8-fa29-431e-87bf-0cbc8cee4ae7","directory":"snowrunner","title":"SnowRunner","compatibility":2,"releases":[{"id":"0100FBD013AB6000","region":null}]},{"id":"9c2b02fb-131a-4604-b92d-115e1df68301","directory":"nexomon","title":"Nexomon","compatibility":99,"releases":[{"id":"01000BE0156B2000","region":null}]},{"id":"9c30b2c9-76d7-42af-a5c7-9d9779914eee","directory":"micro-pico-racers","title":"Micro Pico Racers","compatibility":0,"releases":[{"id":"0100E5E012744000","region":null}]},{"id":"9c3af3e3-152c-440e-ba10-1b5f846b26cb","directory":"party-trivia","title":"Party Trivia","compatibility":99,"releases":[{"id":"0100DBD00ABF4000","region":null}]},{"id":"9c4d866f-ea51-42ba-b113-df509efd90d8","directory":"enigmatis-the-ghosts-of-maple-creek","title":"Enigmatis: The Ghosts of Maple Creek","compatibility":99,"releases":[{"id":"0100BB20152BA000","region":null}]},{"id":"9c51213a-1793-4c4d-a599-7f069ab017a0","directory":"horse-club-adventures","title":"Horse Club Adventures","compatibility":99,"releases":[{"id":"0100A6B012932000","region":null}]},{"id":"9c55cc8f-ebcb-4fd5-aa83-f7542b3b6f9f","directory":"mario-golf-super-rush","title":"Mario Golf™: Super Rush","compatibility":2,"releases":[{"id":"0100C9C00E25C000","region":null}]},{"id":"9c58730d-a79a-4882-890b-a83f9378be48","directory":"my-singing-monsters-playground","title":"My Singing Monsters Playground","compatibility":99,"releases":[{"id":"0100A23015182000","region":null}]},{"id":"9c64c1b2-ae31-4c8b-8d5f-27338f49e2e6","directory":"bridge-constructor-portal","title":"Bridge Constructor Portal","compatibility":0,"releases":[{"id":"010016E004796000","region":null}]},{"id":"9c73e313-eefd-4559-9153-ded6a5ceb5d3","directory":"destroy-all-humans","title":"Destroy All Humans!","compatibility":99,"releases":[{"id":"01009E701356A000","region":null}]},{"id":"9ca38fd0-c2fd-4edd-8010-a69947f25c88","directory":"thea-2-the-shattering","title":"Thea 2: The Shattering","compatibility":99,"releases":[{"id":"0100612015862000","region":null}]},{"id":"9caa8e7f-253a-4236-8786-4d2f4447daca","directory":"zombie-panic-in-wonderland-dx","title":"Zombie Panic in Wonderland DX","compatibility":2,"releases":[{"id":"0100A8600D566000","region":null}]},{"id":"9cb21241-80f2-4e9a-a3b4-abcba61e636a","directory":"notes","title":"Notes","compatibility":99,"releases":[{"id":"01009A90155BC000","region":null}]},{"id":"9cc58289-ec31-4ff3-8af3-70af1b152833","directory":"proficient-paddles-deluxe","title":"Proficient Paddles Deluxe","compatibility":99,"releases":[{"id":"0100E8B00CBD6000","region":null}]},{"id":"9cdfae4f-ccf6-4acd-92af-81acc6caedcd","directory":"kona","title":"Kona","compatibility":1,"releases":[{"id":"0100464009294000","region":null}]},{"id":"9ce50f0e-4086-45b0-88b2-47db1b263fe2","directory":"double-switch-25th-anniversary-edition","title":"Double Switch - 25th Anniversary Edition","compatibility":99,"releases":[{"id":"0100FC000EE10000","region":null}]},{"id":"9cf0bb32-b7e7-4a5f-ba2d-26bd690a856d","directory":"never-breakup","title":"Never Breakup","compatibility":99,"releases":[{"id":"010039801093A000","region":null}]},{"id":"9cf9d0fa-49b1-4a70-8800-de60ed7f8c1e","directory":"devil-engine","title":"Devil Engine","compatibility":2,"releases":[{"id":"010031B00CF66000","region":null}]},{"id":"9d07673a-cd1d-4dfe-8959-e1328dac672a","directory":"feudal-alloy","title":"Feudal Alloy","compatibility":99,"releases":[{"id":"0100AA3009738000","region":null}]},{"id":"9d07834d-3939-40d2-bebc-5f490004d6c1","directory":"pretty-girls-klondike-solitaire","title":"Pretty Girls Klondike Solitaire","compatibility":99,"releases":[{"id":"01004F90149D2000","region":null}]},{"id":"9d12f383-96b8-4821-9a5a-5f0ea71ab119","directory":"super-space-serpent-secondary-edition","title":"Super Space Serpent Secondary Edition","compatibility":99,"releases":[{"id":"0100BD50129C4000","region":null}]},{"id":"9d19a3d0-d699-447b-8561-034c80156201","directory":"a-case-of-distrust","title":"A Case of Distrust","compatibility":99,"releases":[{"id":"0100CDB00BC94000","region":null}]},{"id":"9d1f0528-607f-4e7a-9dac-7f0ce148c689","directory":"maddening-euphoria","title":"Maddening Euphoria","compatibility":99,"releases":[{"id":"01003DF00E328000","region":null}]},{"id":"9d342a94-a0a7-437b-be47-cdfa3adf8fc3","directory":"derpy-conga","title":"Derpy Conga","compatibility":99,"releases":[{"id":"01002430155DA000","region":null}]},{"id":"9d368981-9f1d-4070-8d8c-7a7d63007bda","directory":"travel-mosaics-a-paris-tour","title":"Travel Mosaics: A Paris Tour","compatibility":99,"releases":[{"id":"01007DB00A226000","region":null}]},{"id":"9d3bfbc3-fca2-47d7-b68a-b1ac360a2bae","directory":"nightmares-from-the-deep-2-the-sirens-call","title":"Nightmares from the Deep 2: The Siren`s Call","compatibility":99,"releases":[{"id":"01006E700B702000","region":null}]},{"id":"9d48b55e-7c7b-420b-af89-71ec894f643c","directory":"glam","title":"Glam","compatibility":99,"releases":[{"id":"0100F0E013F16000","region":null}]},{"id":"9d4a244a-79d2-4363-8a64-11c13a34827b","directory":"acorn-tactics","title":"ACORN Tactics","compatibility":1,"releases":[{"id":"0100DBC0081A4000","region":null}]},{"id":"9d5eb22c-dba1-4d0f-8d09-fdda78d24eef","directory":"off-and-on-again","title":"Off And On Again","compatibility":99,"releases":[{"id":"01006F5013202000","region":null}]},{"id":"9d72ffb7-9871-4486-8a0f-194583eac624","directory":"aeolis-tournament","title":"Aeolis Tournament","compatibility":99,"releases":[{"id":"010001C011354000","region":null}]},{"id":"9d863e19-d1ed-46ac-a3ef-9a9d6a8de161","directory":"signs-of-the-sojourner","title":"Signs of the Sojourner","compatibility":99,"releases":[{"id":"0100E03012B3C000","region":null}]},{"id":"9d870153-2adb-437c-969b-05e438855cf8","directory":"beyond-enemy-lines-remastered-edition","title":"Beyond Enemy Lines - Remastered Edition","compatibility":99,"releases":[{"id":"0100AE7010434000","region":null}]},{"id":"9d89a55c-c83f-48e0-8aec-f15e44bba43d","directory":"shantae-and-the-pirates-curse","title":"Shantae and the Pirate's Curse","compatibility":1,"releases":[{"id":"0100EFD00A4FA000","region":null}]},{"id":"9d9881ca-44d4-4268-b3fc-0ff7b87b8329","directory":"soccer-slammers","title":"Soccer Slammers","compatibility":99,"releases":[{"id":"010011A00A9A8000","region":null}]},{"id":"9d9bbb6d-edaf-482c-a3ee-acdbcbe91186","directory":"code-shifter","title":"CODE SHIFTER","compatibility":99,"releases":[{"id":"010086100CDCA000","region":null}]},{"id":"9d9f8fd4-c465-45d0-ba05-86e184b3f96a","directory":"road-fury","title":"Road Fury","compatibility":99,"releases":[{"id":"010062C014050000","region":null}]},{"id":"9dac47c8-3377-4207-b841-4ecd56117889","directory":"path-of-giants","title":"Path of Giants","compatibility":99,"releases":[{"id":"0100CAD011462000","region":null}]},{"id":"9db13963-d8e1-4dd5-8d43-e7e519de970b","directory":"break-dot","title":"BREAK DOT","compatibility":99,"releases":[{"id":"010086E01037C000","region":null}]},{"id":"9db5e47a-5b8c-4473-84f0-2d25cd6195ef","directory":"sega-ages-ichidant-r","title":"SEGA AGES Ichidant-R","compatibility":99,"releases":[{"id":"010025200E30C000","region":null}]},{"id":"9db9136d-53b0-403e-9a52-cae409893722","directory":"fury-unleashed","title":"Fury Unleashed","compatibility":1,"releases":[{"id":"0100ECE00C0C4000","region":null}]},{"id":"9dbf54e9-7328-43fc-9df0-e78995e187e4","directory":"ape-out","title":"Ape Out","compatibility":3,"releases":[{"id":"01005B100C268000","region":null}]},{"id":"9dd00039-f8e5-43c0-9bbb-75c2c4d2c840","directory":"the-longing","title":"The Longing","compatibility":2,"releases":[{"id":"0100F3D0122C2000","region":null}]},{"id":"9dd17ebf-68dc-4e23-b1e3-56404cd5ffb0","directory":"blaster-master-zero-2","title":"Blaster Master Zero 2","compatibility":0,"releases":[{"id":"01005AA00D676000","region":null}]},{"id":"9de75681-fc27-40e1-8274-430fcc4a26af","directory":"aca-neogeo-real-bout-fatal-fury-2","title":"ACA NEOGEO REAL BOUT FATAL FURY 2","compatibility":4,"releases":[{"id":"0100CF3008798000","region":null}]},{"id":"9de872ad-d12e-4581-a36d-7dfd8c1dc53a","directory":"crazy-trucks","title":"Crazy Trucks","compatibility":1,"releases":[{"id":"0100079016724000","region":null}]},{"id":"9dee4524-6a71-476b-b166-92a94b0dde2d","directory":"limbo","title":"LIMBO","compatibility":2,"releases":[{"id":"01009C8009026000","region":null}]},{"id":"9dee7e7e-c67b-4a9f-81c4-0be116bf630e","directory":"evertried","title":"Evertried","compatibility":99,"releases":[{"id":"0100193013AD0000","region":null}]},{"id":"9e02111a-b34c-4194-8f77-074b210effb7","directory":"invisible-inc-nintendo-switch-edition","title":"Invisible, Inc. Nintendo Switch Edition","compatibility":4,"releases":[{"id":"010031B00C48C000","region":null}]},{"id":"9e0a0328-3dc7-46c6-a5af-072c7e6f048d","directory":"menseki-area-maze-puzzles","title":"Menseki: Area Maze puzzles","compatibility":99,"releases":[{"id":"01005BF0169D0000","region":null}]},{"id":"9e108bc0-82a0-4487-9167-182a3f7d4838","directory":"puzzletronics","title":"Puzzletronics","compatibility":99,"releases":[{"id":"01004B4014D90000","region":null}]},{"id":"9e14dbb7-2252-47de-a10c-7460a6c0ca67","directory":"olympic-games-tokyo-2020-the-official-video-game","title":"Olympic Games Tokyo 2020 – The Official Video Game™","compatibility":99,"releases":[{"id":"0100A8B00E14A000","region":null}]},{"id":"9e2a3dcf-0fa1-44b4-8a24-17514e822f4a","directory":"ao-tennis-2","title":"AO Tennis 2","compatibility":4,"releases":[{"id":"010047000E9AA000","region":null}]},{"id":"9e2e621f-0ae2-4f23-a959-3d74dec08e0d","directory":"ninja-shodown","title":"Ninja Shodown","compatibility":99,"releases":[{"id":"010088E003A76000","region":null}]},{"id":"9e377bc0-ac97-42d0-b318-e4da6dd718dd","directory":"aca-neogeo-last-resort","title":"ACA NEOGEO LAST RESORT","compatibility":99,"releases":[{"id":"01000D10038E6000","region":null}]},{"id":"9e3a19cd-c521-4cb5-a9a4-1036fb8df3d5","directory":"blackmoor-2","title":"Blackmoor 2","compatibility":1,"releases":[{"id":"0100A0A00E660000","region":null}]},{"id":"9e43993f-97d6-4e68-800a-ad687375ac91","directory":"ziggurat","title":"Ziggurat","compatibility":99,"releases":[{"id":"0100CD500E706000","region":null}]},{"id":"9e43bb75-76b0-4617-b601-46e4cbf947ab","directory":"niche-a-genetics-survival-game","title":"Niche - a genetics survival game","compatibility":99,"releases":[{"id":"01000EC010BF4000","region":null}]},{"id":"9e53d0a5-67fa-42e5-bac8-3a68462b77ce","directory":"safety-first","title":"Safety First!","compatibility":99,"releases":[{"id":"0100A5200C2E0000","region":null}]},{"id":"9e69082a-83c4-42e7-a816-d0084286d214","directory":"ai","title":"世界の中心で、AIは戦う","compatibility":99,"releases":[{"id":"0100F73013B54000","region":null}]},{"id":"9e76b9d0-e5e8-4d32-9f37-0b14a5f733a3","directory":"bud-spencer-and-terence-hill-slaps-and-beans","title":"Bud Spencer & Terence Hill - Slaps And Beans","compatibility":3,"releases":[{"id":"01000D200AC0C000","region":null}]},{"id":"9e7d7a81-47a3-4637-9998-aaf4e243f5c0","directory":"deadly-fighter-2","title":"Deadly Fighter 2","compatibility":99,"releases":[{"id":"01007E400ECC6000","region":null}]},{"id":"9e8797fa-2af5-4368-b5cd-ba8e17073d4a","directory":"guns-of-mercy-rangers-edition","title":"Guns of Mercy - Rangers Edition","compatibility":99,"releases":[{"id":"010088700C5F8000","region":null}]},{"id":"9e891ee1-3929-4116-bce7-87a04ac1725a","directory":"enigmatis-3-the-shadow-of-karkhala","title":"Enigmatis 3: The Shadow of Karkhala","compatibility":99,"releases":[{"id":"01004A1015408000","region":null}]},{"id":"9e8f7b79-47b1-4ad0-983b-f5a4b277a8d9","directory":"music-racer","title":"Music Racer","compatibility":99,"releases":[{"id":"010046400F310000","region":null}]},{"id":"9eb7e351-3384-4c9a-92ba-7d50f157e4a1","directory":"act-it-out-xl-a-game-of-charades","title":"ACT IT OUT XL! A Game of Charades","compatibility":99,"releases":[{"id":"0100E6600B6EA000","region":null}]},{"id":"9ebe08f4-52e4-48c4-8981-09014ab332cd","directory":"prime-world-defenders","title":"Prime World: Defenders","compatibility":99,"releases":[{"id":"0100DE500CAA2000","region":null}]},{"id":"9ec35797-0167-4afd-95d7-02c83df13e47","directory":"pizza-bar-tycoon","title":"Pizza Bar Tycoon","compatibility":99,"releases":[{"id":"0100DEC00F7EC000","region":null}]},{"id":"9ec40f16-305f-4bbe-94be-8359781d59d0","directory":"charge-kid","title":"Charge Kid","compatibility":99,"releases":[{"id":"0100F52013A66000","region":null}]},{"id":"9ec51f4e-d34c-4ddc-9d80-98f7b9836f03","directory":"animal-up","title":"Animal Up!","compatibility":99,"releases":[{"id":"0100A16010966000","region":null}]},{"id":"9ed2578c-75b5-4c61-8d94-66fa87569f41","directory":"the-deer-god","title":"The Deer God","compatibility":99,"releases":[{"id":"01000B6007A3C000","region":null}]},{"id":"9ed74d0d-1a4b-45cd-8866-5a1b41545790","directory":"neversong","title":"Neversong","compatibility":0,"releases":[{"id":"0100E940044F2000","region":null}]},{"id":"9ee12c0b-058e-4341-92b7-0fdeb6d54c6b","directory":"supraland","title":"Supraland","compatibility":3,"releases":[{"id":"0100A6E01201C000","region":null}]},{"id":"9ee545d0-c7c3-4fd6-a7dc-d9b2865e8d77","directory":"dungeon-and-puzzles","title":"Dungeon and Puzzles","compatibility":99,"releases":[{"id":"01009B4013B5E000","region":null}]},{"id":"9ef55638-dae4-4ea8-be21-f7ed853d04d8","directory":"professional-farmer-american-dream","title":"Professional Farmer: American Dream","compatibility":99,"releases":[{"id":"010082900D6DC000","region":null}]},{"id":"9ef7a9e5-b446-47e2-a897-d918b050d728","directory":"enter-digiton-heart-of-corruption","title":"Enter Digiton: Heart of Corruption","compatibility":99,"releases":[{"id":"0100623013642000","region":null}]},{"id":"9ef972da-a138-454a-a8b6-d6f2df827fa4","directory":"cosmic-star-heroine","title":"Cosmic Star Heroine","compatibility":1,"releases":[{"id":"010067C00A776000","region":null}]},{"id":"9efaae9a-ece0-4804-8223-115bd991579e","directory":"asemblance","title":"Asemblance","compatibility":99,"releases":[{"id":"0100D5800DECA000","region":null}]},{"id":"9f0fa31e-c851-43a2-9494-47dce2f4dc26","directory":"die-with-glory","title":"Die With Glory","compatibility":99,"releases":[{"id":"0100BCC014414000","region":null}]},{"id":"9f170931-2be6-4bf6-a0ff-c7d50e521390","directory":"monster-boy-and-the-cursed-kingdom-demo","title":"Monster Boy and the Cursed Kingdom Demo","compatibility":99,"releases":[{"id":"01000C600D7CE000","region":null}]},{"id":"9f21c68b-8eaf-4c1a-a338-9bb9d5149052","directory":"get-over-here","title":"Get Over Here","compatibility":1,"releases":[{"id":"0100B5B00E77C000","region":null}]},{"id":"9f422d7b-951b-49d6-81bb-b6826929ba38","directory":"kitty-maestro","title":"Kitty Maestro","compatibility":99,"releases":[{"id":"0100C8300FA30000","region":null}]},{"id":"9f5cb530-387a-4f4e-bbb0-e14ea71833a6","directory":"arcade-archives-sasuke-vs-commander","title":"Arcade Archives SASUKE VS COMMANDER","compatibility":99,"releases":[{"id":"0100AA600C8D6000","region":null}]},{"id":"9f7acdf3-7466-4bcc-874c-7992cd32e45f","directory":"danger-mouse-the-danger-games","title":"Danger Mouse: The Danger Games","compatibility":99,"releases":[{"id":"01003ED0099B0000","region":null}]},{"id":"9f99ac44-0455-454d-b658-9b5c63f17359","directory":"ant-gravity-tinys-adventure","title":"Ant-Gravity: Tiny's Adventure","compatibility":99,"releases":[{"id":"0100DC00115FA000","region":null}]},{"id":"9fa6b758-b145-4983-805d-bde4923a48ff","directory":"faircrofts-antiques-treasures-of-treffenburg-collectors-edition","title":"Faircroft's Antiques: Treasures of Treffenburg Collector's Edition","compatibility":99,"releases":[{"id":"010083C01469C000","region":null}]},{"id":"9fc2bb8c-9b7f-4fef-93de-71cec9dd4a09","directory":"memory-lane","title":"Memory Lane","compatibility":4,"releases":[{"id":"010062F011E7C000","region":null}]},{"id":"9fcc1dac-20d2-45ff-8f8a-37bfad1f334c","directory":"ninja-village-demo","title":"Ninja Village Demo","compatibility":99,"releases":[{"id":"0100F3400D228000","region":null}]},{"id":"9fec84ec-aa15-4928-b67c-8c0a76a9c503","directory":"espgaluda-ii","title":"Espgaluda II","compatibility":1,"releases":[{"id":"0100911014898000","region":null}]},{"id":"9feedc14-d8f2-4c3c-947a-68dc663d120b","directory":"dgeneration-hd","title":"D/Generation HD","compatibility":1,"releases":[{"id":"0100EEC00A262000","region":null}]},{"id":"9ff8c365-78ad-4a13-8533-415ef7352664","directory":"super-kickers-league","title":"Super Kickers League","compatibility":1,"releases":[{"id":"0100196009998000","region":null}]},{"id":"9ffa6301-f861-4c8c-b1d1-525259083264","directory":"hook","title":"Hook","compatibility":99,"releases":[{"id":"0100DFF00DA4E000","region":null}]},{"id":"9fff4943-1955-425e-99e8-64fb7230f636","directory":"star-wars-jedi-knight-jedi-academy","title":"STAR WARS™ Jedi Knight: Jedi Academy","compatibility":4,"releases":[{"id":"01008CA00FAE8000","region":null}]},{"id":"a002be67-0615-4808-8a7c-822fe9bb0a6b","directory":"space-war-arena","title":"Space War Arena","compatibility":99,"releases":[{"id":"010067600AD78000","region":null}]},{"id":"a0043ee3-359d-4e3c-9673-bc6e1f85e179","directory":"graviter","title":"Graviter","compatibility":99,"releases":[{"id":"0100892013A80000","region":null}]},{"id":"a0067f9b-a06d-407d-973c-d72c8b9fbc4a","directory":"grab-lab","title":"Grab Lab","compatibility":99,"releases":[{"id":"0100A6C00CF70000","region":null}]},{"id":"a0071dde-25fe-4dd6-880a-da5d183a70e7","directory":"almost-there-the-platformer","title":"Almost There: The Platformer","compatibility":99,"releases":[{"id":"01009C400C88C000","region":null}]},{"id":"a00c237d-fbcc-4c84-9cb7-d355c828fcad","directory":"santas-xmas-adventure","title":"Santa's Xmas Adventure","compatibility":99,"releases":[{"id":"0100618013560000","region":null}]},{"id":"a0295548-bd7f-4678-b35b-11754b51618c","directory":"chicken-rider","title":"Chicken Rider","compatibility":99,"releases":[{"id":"01002E500E3EE000","region":null}]},{"id":"a0296e81-ebad-401a-9988-ab5734ee9577","directory":"akihabara-feel-the-rhythm-remixed","title":"Akihabara - Feel the Rhythm Remixed","compatibility":99,"releases":[{"id":"010053100B0EA000","region":null}]},{"id":"a035fd00-56f0-4269-98e5-7f9269d969ab","directory":"quest-hunter","title":"Quest Hunter","compatibility":1,"releases":[{"id":"010095500D9F4000","region":null}]},{"id":"a039c167-db9f-4c0c-ba96-b9cc8fb634d3","directory":"nefarious","title":"Nefarious","compatibility":99,"releases":[{"id":"010023500B0BA000","region":null}]},{"id":"a03bf6b8-b66f-49b6-bcfc-1266bb4b604b","directory":"ghosts-and-apples","title":"Ghosts and Apples","compatibility":99,"releases":[{"id":"01009CE01657E000","region":null}]},{"id":"a04bd120-1ae2-4596-a747-994ba917b818","directory":"the-legend-of-zelda-skyward-sword-hd","title":"The Legend of Zelda™: Skyward Sword HD","compatibility":1,"releases":[{"id":"01002DA013484000","region":null}]},{"id":"a04ef474-2663-413c-ba9d-9cd5df3eeef2","directory":"have-a-blast","title":"Have a Blast","compatibility":99,"releases":[{"id":"01007E9015750000","region":null}]},{"id":"a05136be-4827-4eda-b326-4a03bd38ace4","directory":"empire-invasion","title":"Empire Invasion","compatibility":0,"releases":[{"id":"01009860147E4000","region":null}]},{"id":"a0555f11-9957-4d9d-9b1a-2baa83402d17","directory":"mastercube","title":"Mastercube","compatibility":99,"releases":[{"id":"01000ED0124F2000","region":null}]},{"id":"a057d910-b396-4128-8b69-650c52b98f48","directory":"paradise-killer","title":"Paradise Killer","compatibility":3,"releases":[{"id":"01007FB010DC8000","region":null}]},{"id":"a05da63b-0ed5-4d95-bbbf-3b8470572245","directory":"a-good-snowman-is-hard-to-build","title":"A Good Snowman is Hard to Build","compatibility":99,"releases":[{"id":"0100423013306000","region":null}]},{"id":"a060108f-7387-4933-9a38-6e2fbc85c75c","directory":"football-manager-2022-touch","title":"Football Manager 2022 Touch","compatibility":5,"releases":[{"id":"0100AD60152C2000","region":null}]},{"id":"a06b10ed-a84b-4c3f-84cd-ff682e46d921","directory":"the-adventures-of-spunk-dodgers-and-splat","title":"The Adventures of Spunk Dodgers and Splat","compatibility":99,"releases":[{"id":"0100BFD015F88000","region":null}]},{"id":"a07ff85f-83a9-4889-b22a-cc7ef7a14ee9","directory":"devil-may-cry","title":"Devil May Cry","compatibility":1,"releases":[{"id":"0100E8000D5B8000","region":null}]},{"id":"a08cc6bd-244a-456e-b3db-7d749e8853a6","directory":"mayhem-brawler","title":"Mayhem Brawler","compatibility":1,"releases":[{"id":"01002C70149B4000","region":null}]},{"id":"a08dc3d0-5a55-4074-837b-e8716a2196dd","directory":"piczle-puzzle-watch-collection","title":"Piczle Puzzle & Watch Collection","compatibility":99,"releases":[{"id":"01001A30155B6000","region":null}]},{"id":"a0901335-059f-4aa2-a219-f078cf1a0b0e","directory":"fox-n-forests","title":"FOX n FORESTS","compatibility":1,"releases":[{"id":"01008A100A028000","region":null}]},{"id":"a0bcfcd9-84db-47b2-a85c-40ffa45282a7","directory":"trine-enchanted-edition","title":"Trine Enchanted Edition","compatibility":2,"releases":[{"id":"0100D9000A930000","region":null}]},{"id":"a0bfc206-a80e-41c5-ab71-70602e11445d","directory":"ancient-stories-gods-of-egypt","title":"Ancient Stories: Gods of Egypt","compatibility":99,"releases":[{"id":"010073201632C000","region":null}]},{"id":"a0cfdbda-34ce-48e2-a160-bc3344696968","directory":"real-boxing-2","title":"Real Boxing 2","compatibility":99,"releases":[{"id":"0100F7101205A000","region":null}]},{"id":"a0d3e37c-4ead-448f-b906-124b9c9e8678","directory":"chicory-a-colorful-tale","title":"Chicory: A Colorful Tale","compatibility":99,"releases":[{"id":"0100DEC01622A000","region":null}]},{"id":"a0e6fa4b-cae3-4c64-9c97-d0710a3bec94","directory":"kentucky-robo-chicken","title":"Kentucky Robo Chicken","compatibility":99,"releases":[{"id":"0100A8200B15C000","region":null}]},{"id":"a0e79e86-3fb8-44b6-b067-76d721ac3a3d","directory":"deployment","title":"Deployment","compatibility":99,"releases":[{"id":"01000BF00B6BC000","region":null}]},{"id":"a0ed7269-7e79-4d3f-8f8b-136f4d791975","directory":"afterpulse","title":"Afterpulse","compatibility":99,"releases":[{"id":"01004D501213C000","region":null}]},{"id":"a0f68ad2-7657-4893-9aaa-4f154652bb31","directory":"slender-the-arrival","title":"Slender: The Arrival","compatibility":99,"releases":[{"id":"0100FDC00D0C0000","region":null}]},{"id":"a104fb68-1692-4f67-982f-ebab4c957681","directory":"black-widow-recharged","title":"Black Widow: Recharged","compatibility":99,"releases":[{"id":"01008B6016322000","region":null}]},{"id":"a11505b1-8bb9-4bac-8a4f-004a97f38044","directory":"boulder-dash-r-deluxe","title":"Boulder Dash® Deluxe","compatibility":1,"releases":[{"id":"01000670156B4000","region":null}]},{"id":"a1190511-7f69-4976-8d82-9472ff36f5da","directory":"brutal-rage","title":"BRUTAL RAGE","compatibility":99,"releases":[{"id":"01006490135B0000","region":null}]},{"id":"a12214b4-eabf-41d2-b4e2-2e3b5fd0eaee","directory":"drift-legends","title":"Drift Legends","compatibility":2,"releases":[{"id":"010018E00BA22000","region":null}]},{"id":"a12413bb-d275-4916-b4a9-45dc61c540b3","directory":"the-pyraplex","title":"The Pyraplex","compatibility":99,"releases":[{"id":"0100BBD00D9D6000","region":null}]},{"id":"a1244193-8e98-49a0-985e-0380775095e4","directory":"overcooked-special-edition","title":"Overcooked Special Edition","compatibility":2,"releases":[{"id":"01009B900401E000","region":null}]},{"id":"a12802e9-3f07-4633-a9e0-43ae8db1ce7f","directory":"battle-of-kings","title":"Battle of Kings","compatibility":0,"releases":[{"id":"010035E00C1AE000","region":null}]},{"id":"a1297a9a-09dd-4512-ac71-7925d6fc2c33","directory":"jumphead-battle4fun","title":"JumpHead: Battle4Fun!","compatibility":99,"releases":[{"id":"0100DE800B1F2000","region":null}]},{"id":"a143cfaa-5589-4a3f-a259-1556032dac95","directory":"space-blaze","title":"Space Blaze","compatibility":2,"releases":[{"id":"0100B9F00C162000","region":null}]},{"id":"a145cf82-177d-4183-b507-b9274bc73cfc","directory":"uno-r","title":"UNO®","compatibility":0,"releases":[{"id":"0100B6E012EBE000","region":null}]},{"id":"a163827a-9add-47cf-9ead-011aedbe59a4","directory":"blacksad-under-the-skin","title":"Blacksad: Under the Skin","compatibility":99,"releases":[{"id":"010032000EA2C000","region":null}]},{"id":"a165dde4-19b0-4149-b3b0-042707a75680","directory":"pinball-lockdown","title":"Pinball Lockdown","compatibility":99,"releases":[{"id":"0100EA8011DF2000","region":null}]},{"id":"a16f7be5-2a20-4f0c-bb8a-96214c24c8bd","directory":"raiden-iv-x-mikado-remix","title":"Raiden IV x MIKADO remix","compatibility":5,"releases":[{"id":"0100ECA01410C000","region":null}]},{"id":"a18a1942-7194-4d45-9fa5-e32a3aa9d06b","directory":"tomb-sweeper","title":"Tomb Sweeper","compatibility":99,"releases":[{"id":"01007EE015B38000","region":null}]},{"id":"a196e516-b44c-412e-87f0-3e63b9a953bb","directory":"super-volley-blast","title":"Super Volley Blast","compatibility":99,"releases":[{"id":"010035B00B3F0000","region":null}]},{"id":"a199303c-e018-4856-b22b-42cd048470d7","directory":"four-kings-video-poker","title":"Four Kings: Video Poker","compatibility":99,"releases":[{"id":"010093301236A000","region":null}]},{"id":"a1b80154-a7ee-46a6-a641-c8f4abf44757","directory":"death-mark","title":"Death Mark","compatibility":3,"releases":[{"id":"0100D1B00B6FA000","region":null}]},{"id":"a1bb375c-3e68-4568-80b6-f6b697ae4af6","directory":"real-heroes-firefighter","title":"Real Heroes: Firefighter","compatibility":99,"releases":[{"id":"010048600CC16000","region":null}]},{"id":"a1bbba40-4063-47e6-b764-cc773d20a2db","directory":"swim-out","title":"Swim Out","compatibility":99,"releases":[{"id":"0100F92005D54000","region":null}]},{"id":"a1be04b2-7a6b-453c-9f83-b0feeeb7f673","directory":"beach-buggy-racing-2-island-adventure","title":"Beach Buggy Racing 2: Island Adventure","compatibility":0,"releases":[{"id":"0100C43012344000","region":null}]},{"id":"a1c10da7-c2ad-4531-b2a0-afeb62b145a2","directory":"little-racer","title":"Little Racer","compatibility":99,"releases":[{"id":"0100E6D00E81C000","region":null}]},{"id":"a1c59d97-91e5-4762-9f4a-5b512005a287","directory":"touhou-genso-wanderer-reloaded","title":"Touhou Genso Wanderer Reloaded","compatibility":2,"releases":[{"id":"01004E900B082000","region":null}]},{"id":"a1ca2d11-190b-4fd6-8691-f1576c414537","directory":"super-star-path","title":"Super Star Path","compatibility":99,"releases":[{"id":"01009FF00CB1A000","region":null}]},{"id":"a1d76db5-af4d-4c55-ac41-3029a7848ccf","directory":"funimation","title":"Funimation","compatibility":99,"releases":[{"id":"01008E10130F8000","region":null}]},{"id":"a1da765d-39f1-48ba-b6a1-c5445cc14b7f","directory":"detention","title":"Detention","compatibility":3,"releases":[{"id":"0100730007A9C000","region":null}]},{"id":"a1e6afcd-b519-4f7a-84c0-da5edde3bafa","directory":"energy-balance","title":"Energy Balance","compatibility":2,"releases":[{"id":"0100C920092B0000","region":null}]},{"id":"a1ef37d9-544e-44a3-8812-0058c57aea29","directory":"castlevania-anniversary-collection","title":"Castlevania Anniversary Collection","compatibility":0,"releases":[{"id":"01001A800D6BC000","region":null}]},{"id":"a1f2388c-70f7-42ad-bb8d-368ea39fbd5c","directory":"taiko-no-tatsujin-drum-n-fun","title":"Taiko no Tatsujin: Drum 'n' Fun!","compatibility":1,"releases":[{"id":"01002C000B552000","region":null}]},{"id":"a1f4b7d4-47bb-4533-bbf7-866f753e8f48","directory":"monster-dynamite","title":"Monster Dynamite","compatibility":99,"releases":[{"id":"010036C00BDE4000","region":null}]},{"id":"a1fe2332-317d-4cdc-a476-63246ba71da4","directory":"art-of-balance","title":"Art of Balance","compatibility":3,"releases":[{"id":"01008EC006BE2000","region":null}]},{"id":"a2022729-eeca-4e26-86f9-0101bd6c42d4","directory":"trove","title":"Trove","compatibility":99,"releases":[{"id":"0100CB400BC68000","region":null}]},{"id":"a20862bf-1c31-49ac-9810-242b135a1e6a","directory":"bladed-fury","title":"Bladed Fury","compatibility":1,"releases":[{"id":"0100DF0011A6A000","region":null}]},{"id":"a20f8c44-6837-4324-a7a8-af3caf654f55","directory":"super-nintendo-entertainment-system-nintendo-switch-online","title":"Super Nintendo Entertainment System - Nintendo Switch Online","compatibility":0,"releases":[{"id":"01008D300C50C000","region":null}]},{"id":"a2125279-363d-4ae8-ba65-1c7589c6d249","directory":"scott-pilgrim-vs-the-world-the-game-complete-edition","title":"Scott Pilgrim vs. The World™: The Game – Complete Edition","compatibility":1,"releases":[{"id":"0100394011C30000","region":null}]},{"id":"a216a52d-3ee9-426a-b1c9-6058d6c4f401","directory":"kingdom-new-lands","title":"Kingdom: New Lands","compatibility":99,"releases":[{"id":"0100BD9004AB6000","region":null}]},{"id":"a225a4a2-7272-4a7a-8fbe-4d8fb9017c93","directory":"luke-and-rebecca","title":"Luke & Rebecca","compatibility":4,"releases":[{"id":"0100A5A00B34E000","region":null}]},{"id":"a22b0ff3-6c07-4055-b7c1-79e6f6dc4f3e","directory":"finalsword-definitiveedition","title":"FINALSWORD DefinitiveEdition","compatibility":0,"releases":[{"id":"0100F62013DAE000","region":null}]},{"id":"a2315d34-d176-49c0-a01b-d7219104f9c3","directory":"fitness-boxing-eshop-demo","title":"Fitness Boxing eShop Demo","compatibility":99,"releases":[{"id":"0100ED800CBFC000","region":null}]},{"id":"a236a853-19fd-4267-b96e-2b3c5f78f415","directory":"snow-moto-racing-freedom","title":"Snow Moto Racing Freedom","compatibility":3,"releases":[{"id":"010045300516E000","region":null}]},{"id":"a237dd99-2c2e-4f49-af96-d41532b0578a","directory":"nba-2k22","title":"NBA 2K22","compatibility":5,"releases":[{"id":"0100B94014F8E000","region":null}]},{"id":"a23b2f5a-5261-4ba2-9cf7-016674feb8cf","directory":"atomine","title":"ATOMINE","compatibility":99,"releases":[{"id":"0100FB500631E000","region":null}]},{"id":"a2482b92-bfeb-4fd7-9898-8077e0ca472a","directory":"calico","title":"Calico","compatibility":3,"releases":[{"id":"010013A00E750000","region":null}]},{"id":"a24b2f33-b3a9-4d33-bf97-672ae2fcfd5b","directory":"mecho-tales","title":"Mecho Tales","compatibility":2,"releases":[{"id":"0100C4F005EB4000","region":null}]},{"id":"a261c3c2-db90-4320-9443-bb3903f1cd6b","directory":"the-magnificent-trufflepigs","title":"The Magnificent Trufflepigs","compatibility":99,"releases":[{"id":"0100F3F015016000","region":null}]},{"id":"a271e095-f5b6-4bc7-a1bf-273df22ee178","directory":"astrology-and-horoscopes-premium","title":"Astrology and Horoscopes Premium","compatibility":99,"releases":[{"id":"010034800B75E000","region":null}]},{"id":"a2774236-5b6c-4334-a416-05ddd73439a7","directory":"tetsumo-party","title":"Tetsumo Party","compatibility":99,"releases":[{"id":"0100EC000D39A000","region":null}]},{"id":"a279de78-b4eb-4a70-8285-e4c135171d28","directory":"guacamelee-super-turbo-championship-edition","title":"Guacamelee! Super Turbo Championship Edition","compatibility":0,"releases":[{"id":"0100BAE00B470000","region":null}]},{"id":"a2853c57-70a7-42fc-bb3e-8aecd190e15f","directory":"kid-tripp-demo","title":"Kid Tripp Demo","compatibility":99,"releases":[{"id":"010093E00ACB0000","region":null}]},{"id":"a28a8ab7-1eac-4112-9e4d-9a6d060d8fa2","directory":"train-station-simulator","title":"Train Station Simulator","compatibility":99,"releases":[{"id":"010086000EBDE000","region":null}]},{"id":"a29d8af5-f07e-4bf4-a4e6-03de341a3965","directory":"unravel-two","title":"Unravel Two","compatibility":4,"releases":[{"id":"0100E5D00CC0C000","region":null}]},{"id":"a29dead0-adac-441d-855f-8dde759d0329","directory":"checkers-master","title":"Checkers Master","compatibility":99,"releases":[{"id":"010067E014C38000","region":null}]},{"id":"a2a6e3ec-c989-421a-91b2-e9121cd894af","directory":"snakeybus","title":"Snakeybus","compatibility":99,"releases":[{"id":"0100F9C00F32E000","region":null}]},{"id":"a2a928ca-a2cd-441f-9aaa-e83393f93ac2","directory":"borderlands-the-handsome-collection","title":"Borderlands: The Handsome Collection","compatibility":4,"releases":[{"id":"010096F00FF22000","region":null}]},{"id":"a2ab0a40-b639-46fb-9f31-0a01589cee72","directory":"yu-no-a-girl-who-chants-love-at-the-bound-of-this-world","title":"YU-NO: A girl who chants love at the bound of this world.","compatibility":0,"releases":[{"id":"010037D00DBDC000","region":null}]},{"id":"a2c8c652-9001-4afc-9bd2-f73fd654d618","directory":"aery-broken-memories","title":"Aery - Broken Memories","compatibility":1,"releases":[{"id":"0100087012810000","region":null}]},{"id":"a2cfd07f-7e92-4f75-91b2-c6c14d017c04","directory":"neverlast","title":"Neverlast","compatibility":99,"releases":[{"id":"0100A9600EDF8000","region":null}]},{"id":"a2d3e260-49bf-483d-9007-c6b5cf5f5a9c","directory":"hard-west","title":"Hard West","compatibility":2,"releases":[{"id":"0100ECE00D13E000","region":null}]},{"id":"a2d62a71-0f50-4214-8776-37a6e4bf9b6c","directory":"apsulov-end-of-gods","title":"Apsulov: End of Gods","compatibility":3,"releases":[{"id":"01008560110C6000","region":null}]},{"id":"a2de25a8-c12f-4dd2-b5f6-bd8f76bf4eaf","directory":"supersonic-tank-cats","title":"Supersonic Tank Cats","compatibility":99,"releases":[{"id":"0100DB00156B0000","region":null}]},{"id":"a2ea9a92-9218-4bf3-a4b8-94c127e70db9","directory":"suicide-guy","title":"Suicide Guy","compatibility":99,"releases":[{"id":"01005CD00A2A2000","region":null}]},{"id":"a2ef2580-6f8d-47c7-b47a-1f438a46fe73","directory":"mega-mall-story","title":"Mega Mall Story","compatibility":99,"releases":[{"id":"0100BBC00CB9A000","region":null}]},{"id":"a2f1d9ae-eeb2-446a-8a49-0013f62ecc38","directory":"driving-world-nordic-challenge","title":"Driving World: Nordic Challenge","compatibility":0,"releases":[{"id":"010047C014B44000","region":null}]},{"id":"a2fd1a67-29b9-410b-9215-83a43964435a","directory":"the-elder-scrolls-v-skyrim","title":"The Elder Scrolls V: Skyrim","compatibility":4,"releases":[{"id":"01000A10041EA000","region":null}]},{"id":"a309726a-6ffe-4e13-8d60-8aeb9c904df4","directory":"arcade-archives-ikari-iii-the-rescue","title":"Arcade Archives IKARI III -THE RESCUE-","compatibility":99,"releases":[{"id":"01004B1010E58000","region":null}]},{"id":"a31567f7-782c-466a-a9ef-c02c9c61431f","directory":"magicat","title":"MagiCat","compatibility":0,"releases":[{"id":"01008E500BF62000","region":null}]},{"id":"a316fe5d-568c-47c5-b7e7-ab55e49489bf","directory":"elden-path-of-the-forgotten","title":"Elden: Path of the Forgotten","compatibility":2,"releases":[{"id":"0100B5B00EF38000","region":null}]},{"id":"a31d1081-7a22-49fb-9320-cdaca86032dd","directory":"broforce","title":"Broforce","compatibility":1,"releases":[{"id":"010060A00B53C000","region":null}]},{"id":"a32f06fa-a815-486d-adb7-dbcec181493f","directory":"nickelodeon-kart-racers-2-grand-prix","title":"Nickelodeon Kart Racers 2: Grand Prix","compatibility":2,"releases":[{"id":"0100EBC00FE14000","region":null}]},{"id":"a334245d-3abb-4ba7-8c95-0f9439382b71","directory":"the-adventures-of-bertram-fiddle-episode-1-a-dreadly-business","title":"The Adventures of Bertram Fiddle: Episode 1: A Dreadly Business","compatibility":1,"releases":[{"id":"01003B400A00A000","region":null}]},{"id":"a334c40e-c74e-4339-9cd8-d8c5294c58f0","directory":"one-strike","title":"One Strike","compatibility":4,"releases":[{"id":"01003A800B102000","region":null}]},{"id":"a33b2be6-3b33-4c88-9e41-df6b71dd7627","directory":"octocopter-double-or-squids","title":"Octocopter: Double or Squids","compatibility":99,"releases":[{"id":"010096B00A08E000","region":null}]},{"id":"a33d2577-fd12-4479-a3d6-b6c9ebe1fc4f","directory":"bloodstained-curse-of-the-moon","title":"Bloodstained: Curse of the Moon","compatibility":1,"releases":[{"id":"01004B800AF5A000","region":null}]},{"id":"a342c9eb-a32a-4b30-8a03-3872c69fa978","directory":"vertical-drop-heroes-hd","title":"Vertical Drop Heroes HD","compatibility":99,"releases":[{"id":"01009F100B0B8000","region":null}]},{"id":"a3437219-6b6f-413b-84a2-ede4cde8b4d9","directory":"booble-hentai","title":"Booble Hentai","compatibility":99,"releases":[{"id":"010003C0161CE000","region":null}]},{"id":"a34d6d1b-6adc-493d-810f-660c32f7810c","directory":"silence","title":"Silence","compatibility":3,"releases":[{"id":"0100F1400B0D6000","region":null}]},{"id":"a352e6d5-2edc-45f4-8162-9bfacfec5647","directory":"cosmonauta","title":"Cosmonauta","compatibility":99,"releases":[{"id":"01009DE010948000","region":null}]},{"id":"a359aba0-538d-4f8c-a4b0-03167eaeeb0f","directory":"lines-infinite","title":"Lines Infinite","compatibility":99,"releases":[{"id":"0100A9000F17E000","region":null}]},{"id":"a364469c-7d4e-4605-bf07-8b35fc0a21d4","directory":"the-falconeer-warrior-edition","title":"The Falconeer: Warrior Edition","compatibility":0,"releases":[{"id":"0100BA5013E52000","region":null}]},{"id":"a366f423-b6fe-4a3e-9eb2-35b1a983a250","directory":"legends-of-talia-arcadia","title":"Legends of Talia: Arcadia","compatibility":99,"releases":[{"id":"0100013012E4E000","region":null}]},{"id":"a36e2ee9-24d2-4000-8a56-f19de6a1ef25","directory":"kosmonavtes-academy-escape","title":"Kosmonavtes: Academy Escape","compatibility":99,"releases":[{"id":"0100D65016AE0000","region":null}]},{"id":"a379e88c-56b7-42f9-9e8b-67d4efb313c5","directory":"monument-builders-rushmore","title":"Monument Builders Rushmore","compatibility":99,"releases":[{"id":"01002C600C412000","region":null}]},{"id":"a383f281-aa82-4599-9762-66bfc04868d6","directory":"ping-redux","title":"PING REDUX","compatibility":99,"releases":[{"id":"0100A05013B5A000","region":null}]},{"id":"a3b21fd2-fc09-41b6-b746-8858fe50877a","directory":"the-man-with-the-ivory-cane","title":"The Man With The Ivory Cane","compatibility":99,"releases":[{"id":"01003E8010E3A000","region":null}]},{"id":"a3c4300d-10d7-46e6-acd4-007ec36ba5ad","directory":"divine-ascent","title":"Divine Ascent","compatibility":99,"releases":[{"id":"0100C0100C7EA000","region":null}]},{"id":"a3d44120-5445-452d-b999-01982700e352","directory":"the-long-dark","title":"The Long Dark","compatibility":0,"releases":[{"id":"01007A700A87C000","region":null}]},{"id":"a3dc2832-e796-4b56-95fd-572b8caac2cc","directory":"eight-minute-empire-complete-edition","title":"Eight-Minute Empire: Complete Edition","compatibility":99,"releases":[{"id":"0100E6100E3A0000","region":null}]},{"id":"a3ee168d-880a-4ee7-b489-607766e05364","directory":"breathing-fear","title":"Breathing Fear","compatibility":99,"releases":[{"id":"01003D50100F4000","region":null}]},{"id":"a3eeace7-2d19-420f-8970-2f6920695ef3","directory":"kingdom-rush-frontiers","title":"Kingdom Rush Frontiers","compatibility":99,"releases":[{"id":"010046200FC62000","region":null}]},{"id":"a3f8e9da-40a0-41b1-8c1c-ef0155984063","directory":"pocket-academy","title":"Pocket Academy","compatibility":99,"releases":[{"id":"01009C100CE6A000","region":null}]},{"id":"a43574ca-2107-4204-b5ba-0480d71a0f43","directory":"drag-racing-rivals","title":"Drag Racing Rivals","compatibility":99,"releases":[{"id":"0100388012922000","region":null}]},{"id":"a442a91f-ee2f-4d71-bd22-ef4eeeb01399","directory":"terraria","title":"Terraria","compatibility":2,"releases":[{"id":"0100E46006708000","region":null}]},{"id":"a446864e-428e-427c-af86-c39d2cb1eeb7","directory":"harvest-life","title":"Harvest Life","compatibility":3,"releases":[{"id":"0100D0500AD30000","region":null}]},{"id":"a44e8c29-74b5-4b01-b49d-eed1fc389f7e","directory":"gunvolt-chronicles-luminous-avenger-ix","title":"Gunvolt Chronicles: Luminous Avenger iX","compatibility":0,"releases":[{"id":"01008C800E654000","region":null}]},{"id":"a45c1c9b-dc73-4381-bf59-02bfb10e86c7","directory":"drunken-fist","title":"Drunken Fist","compatibility":99,"releases":[{"id":"0100BDB012F78000","region":null}]},{"id":"a46f379e-bddb-4e29-9139-893394f4748b","directory":"ciel-fledge-a-daughter-raising-simulator","title":"Ciel Fledge: A Daughter Raising Simulator","compatibility":99,"releases":[{"id":"010061E00E05E000","region":null}]},{"id":"a48fe53c-7f07-4390-8137-8bc9b13dd0e0","directory":"emily-archer-and-the-curse-of-tutankhamun","title":"Emily Archer and the Curse of Tutankhamun","compatibility":1,"releases":[{"id":"0100ADF014C2A000","region":null}]},{"id":"a494746e-01c6-444e-8ffc-72bba0ec39b0","directory":"discovery","title":"Discovery","compatibility":99,"releases":[{"id":"01008CD00901C000","region":null}]},{"id":"a49959d7-be9f-4baa-b3ff-8c744ad4a21d","directory":"super-mega-baseball-3","title":"Super Mega Baseball 3","compatibility":99,"releases":[{"id":"010067300E024000","region":null}]},{"id":"a4a42abc-288a-484d-87be-2ac37c1cfbce","directory":"inbento","title":"inbento","compatibility":99,"releases":[{"id":"01003EB010008000","region":null}]},{"id":"a4b125c7-2840-4206-8dbd-473c73616449","directory":"tales-of-the-orient-the-rising-sun","title":"Tales of the Orient - The Rising Sun","compatibility":99,"releases":[{"id":"01004DC00CFD2000","region":null}]},{"id":"a4b4e390-ab2e-4d83-9eec-67b6fc1e9854","directory":"beekyr-reloaded","title":"Beekyr Reloaded","compatibility":99,"releases":[{"id":"0100F8900ADC8000","region":null}]},{"id":"a4c062a8-749d-4dac-bf97-4e940452f40c","directory":"kwaidan-azuma-manor-story","title":"Kwaidan ~Azuma manor story~","compatibility":99,"releases":[{"id":"0100894011F62000","region":null}]},{"id":"a4c17b57-5eb8-466b-b9f1-1f6162459e73","directory":"spencer","title":"Spencer","compatibility":99,"releases":[{"id":"0100BA300C39A000","region":null}]},{"id":"a4ccb4fb-ad3b-4441-9a82-452aa05c1989","directory":"olympic-table-tennis","title":"Olympic Table Tennis","compatibility":99,"releases":[{"id":"0100E7E013DEA000","region":null}]},{"id":"a4dd823a-366a-45a1-b717-61ae99640489","directory":"pixel-gladiator","title":"Pixel Gladiator","compatibility":99,"releases":[{"id":"010060A00F5E8000","region":null}]},{"id":"a4e8c32d-1d35-4524-b94a-e923ae763ad9","directory":"poker-pretty-girls-battle-fantasy-world-edition","title":"Poker Pretty Girls Battle: Fantasy World Edition","compatibility":99,"releases":[{"id":"01005DD0149D0000","region":null}]},{"id":"a4f28435-5df5-4934-8f4e-057b07108564","directory":"shin-megami-tensei-iii-nocturne-hd-remaster","title":"Shin Megami Tensei III Nocturne HD Remaster","compatibility":3,"releases":[{"id":"01003B0012DC2000","region":null}]},{"id":"a4f816b2-9c58-4c54-9422-5af221a2abd2","directory":"league-of-evil","title":"League of Evil","compatibility":1,"releases":[{"id":"01009C100390E000","region":null}]},{"id":"a5002806-f32f-4a08-84be-36487cafd721","directory":"worlds-end-club","title":"World's End Club","compatibility":1,"releases":[{"id":"01005A2014362000","region":null}]},{"id":"a5042512-0b61-4bf7-be37-0d782be3a4e8","directory":"path-to-mnemosyne","title":"Path to Mnemosyne","compatibility":99,"releases":[{"id":"010031600ACF4000","region":null}]},{"id":"a51e4c58-49d4-4dce-ba9e-14a902d32f6f","directory":"visit-once","title":"Visit Once","compatibility":99,"releases":[{"id":"0100D78013A60000","region":null}]},{"id":"a52d9256-0741-4ffe-a653-efd742bc731f","directory":"instant-tennis","title":"INSTANT TENNIS","compatibility":99,"releases":[{"id":"0100F4500A47E000","region":null}]},{"id":"a52f6c71-d0c0-4245-a7fc-f4a67446578f","directory":"omega-labyrinth-life","title":"Omega Labyrinth Life","compatibility":1,"releases":[{"id":"010079200E85C000","region":null}]},{"id":"a53b4a8a-c6a1-4329-95a0-2bac45705f4b","directory":"super-glitch-dash","title":"Super Glitch Dash","compatibility":99,"releases":[{"id":"0100CC2014240000","region":null}]},{"id":"a53ebb9b-c94c-4119-a7d3-5715ed456224","directory":"gordian-rooms-a-curious-heritage","title":"Gordian Rooms: A curious heritage","compatibility":99,"releases":[{"id":"01007C1013676000","region":null}]},{"id":"a55b710c-6ff6-4374-a9d4-0888c9e26740","directory":"left-right-the-mansion","title":"Left-Right : The Mansion","compatibility":99,"releases":[{"id":"01002E900CD6E000","region":null}]},{"id":"a571afa8-69c2-4a8f-b375-aa0ebb23b430","directory":"pokken-tournament-dx","title":"Pokkén Tournament DX","compatibility":2,"releases":[{"id":"0100B3F000BE2000","region":null}]},{"id":"a5743146-3b57-4179-983c-300ffc92f521","directory":"fishing-barents-sea-complete-edition","title":"Fishing: Barents Sea Complete Edition","compatibility":3,"releases":[{"id":"0100CB500CE76000","region":null}]},{"id":"a5778f67-1f3a-448d-b255-2ecd93144596","directory":"one-way-heroics-plus","title":"One Way Heroics Plus","compatibility":99,"releases":[{"id":"0100AD9011056000","region":null}]},{"id":"a57b5768-110e-46ca-ab3c-8dd702430134","directory":"fate-of-the-pharaoh","title":"Fate Of The Pharaoh","compatibility":5,"releases":[{"id":"0100C75013BD8000","region":null}]},{"id":"a58e892f-e566-4a83-b330-a31cc5e8c2db","directory":"mini-motor-racing-x","title":"Mini Motor Racing X","compatibility":0,"releases":[{"id":"01003560119A6000","region":null}]},{"id":"a5969713-49e6-472f-a0f6-b8892d7fcaf7","directory":"sega-ages-g-loc-air-battle","title":"SEGA AGES G-LOC AIR BATTLE","compatibility":1,"releases":[{"id":"010096D00E310000","region":null}]},{"id":"a59d6714-3900-4207-b175-75db4fe7ab22","directory":"gas-guzzlers-extreme","title":"Gas Guzzlers Extreme","compatibility":99,"releases":[{"id":"0100366013DA8000","region":null}]},{"id":"a5a453d0-9d35-4065-b5d2-d34d50e6bde7","directory":"a-night-at-the-races","title":"A Night at the Races","compatibility":99,"releases":[{"id":"010067A014106000","region":null}]},{"id":"a5a74019-e759-4aca-8265-92b117566e61","directory":"roguecube","title":"RogueCube","compatibility":99,"releases":[{"id":"0100C7300C0EC000","region":null}]},{"id":"a5a973ac-fd3d-4c8a-99f8-420f84a9ff1e","directory":"escaping-a-kids-room-the-adventures-of-nyanzou-kumakichi-escape-game-series","title":"Escaping a  Kid's Room~The Adventures of Nyanzou&Kumakichi: Escape Game Series~","compatibility":99,"releases":[{"id":"0100168014B20000","region":null}]},{"id":"a5b338c0-30e4-48e5-a8f0-9856e33e4210","directory":"taiko-no-tatsujin-rhythmic-adventure-1","title":"Taiko no Tatsujin: Rhythmic Adventure 1","compatibility":0,"releases":[{"id":"01001BE0133F6000","region":null}]},{"id":"a5d17ab0-42cf-4da8-8987-61501619b992","directory":"crash-drive-2","title":"Crash Drive 2","compatibility":99,"releases":[{"id":"010007900FCE2000","region":null}]},{"id":"a5e734a9-3fc5-4121-8b8c-cac9c819405d","directory":"mom-hid-my-game-2","title":"Mom Hid My Game! 2","compatibility":99,"releases":[{"id":"01000C701456A000","region":null}]},{"id":"a60b5fa2-5b78-41a0-bda0-4fc366d7a077","directory":"prehistoric-dude","title":"Prehistoric Dude","compatibility":99,"releases":[{"id":"010054F01266C000","region":null}]},{"id":"a619c735-a761-44b2-965b-2f16c456ed55","directory":"fledgling-heroes","title":"Fledgling Heroes","compatibility":99,"releases":[{"id":"010087E00D5F2000","region":null}]},{"id":"a6267ea9-edef-4443-ab3e-fbe084c87c5a","directory":"explosive-dinosaurs","title":"Explosive Dinosaurs","compatibility":99,"releases":[{"id":"0100A7701298C000","region":null}]},{"id":"a62fc206-b5ac-4009-8d50-b8a82167b025","directory":"brick-bat-crazy","title":"Brick Bat Crazy","compatibility":99,"releases":[{"id":"0100FB30148EE000","region":null}]},{"id":"a639281d-9826-4f27-8d63-1633060b0c50","directory":"battle-supremacy-evolution","title":"Battle Supremacy - Evolution","compatibility":99,"releases":[{"id":"010099B00E898000","region":null}]},{"id":"a639c9d9-a994-4136-8f29-034ac056cf53","directory":"arcade-archives-ikki","title":"Arcade Archives Ikki","compatibility":99,"releases":[{"id":"01000DB00980A000","region":null}]},{"id":"a64777c2-f8b2-42bd-b8de-44ede2a4343c","directory":"lazy-galaxy-rebel-story","title":"Lazy Galaxy: Rebel Story","compatibility":99,"releases":[{"id":"010049200B536000","region":null}]},{"id":"a649f52e-843d-4082-bf56-23868f560397","directory":"dying-reborn-nintendo-switch-edition","title":"DYING: Reborn - Nintendo Switch Edition","compatibility":99,"releases":[{"id":"01008EA00C27E000","region":null}]},{"id":"a655e2c3-4656-43b1-888f-2df2adc461a4","directory":"a-street-cats-tale","title":"A Street Cat's Tale","compatibility":99,"releases":[{"id":"0100759010EC8000","region":null}]},{"id":"a6629fbd-0db7-4999-9bff-70e9d26cb78e","directory":"mummy-pinball","title":"Mummy Pinball","compatibility":99,"releases":[{"id":"010038B00B9AE000","region":null}]},{"id":"a677edff-af19-43d0-a508-2759188799d1","directory":"dotori","title":"DOTORI","compatibility":99,"releases":[{"id":"0100DBD013C92000","region":null}]},{"id":"a6796aa6-5350-48a5-902e-31e14c7ab084","directory":"geki-yaba-runner-anniversary-edition","title":"Geki Yaba Runner Anniversary Edition","compatibility":4,"releases":[{"id":"01000F000D9F0000","region":null}]},{"id":"a67bdd0a-9276-47b9-99c8-27e19f0582ae","directory":"marble-parkour","title":"Marble Parkour","compatibility":99,"releases":[{"id":"0100721014C24000","region":null}]},{"id":"a68076d5-6f39-44b5-b399-8eb160eeda9f","directory":"last-day-of-june","title":"Last Day of June","compatibility":99,"releases":[{"id":"0100DA700879C000","region":null}]},{"id":"a680a990-c5a6-424e-8e8d-39e54fd1a7c3","directory":"remothered-tormented-fathers","title":"Remothered: Tormented Fathers","compatibility":3,"releases":[{"id":"01008F600F2D0000","region":null}]},{"id":"a6858e33-ca32-4ed3-a9f2-403449264d82","directory":"infection-maze","title":"Infection Maze","compatibility":99,"releases":[{"id":"0100D7301527A000","region":null}]},{"id":"a6a07070-3a54-4a31-ae1a-7911675ab0f1","directory":"lord-of-the-click","title":"Lord of the Click","compatibility":99,"releases":[{"id":"0100706013240000","region":null}]},{"id":"a6aab4d2-3abe-424a-8812-8e44d4879816","directory":"skytime","title":"SkyTime","compatibility":99,"releases":[{"id":"0100F3C00C400000","region":null}]},{"id":"a6abd0a7-2936-4908-a3a8-339ffa1e6014","directory":"super-punch","title":"Super Punch","compatibility":99,"releases":[{"id":"01009D20136CC000","region":null}]},{"id":"a6bfed74-0bcb-4602-89f8-2973b877216a","directory":"holy-cow-milking-simulator","title":"HOLY COW! Milking Simulator","compatibility":99,"releases":[{"id":"01004500159AC000","region":null}]},{"id":"a6c27efe-e0cf-4e98-9348-21ef42da59fd","directory":"opus-the-day-we-found-earth","title":"OPUS: The Day We Found Earth","compatibility":99,"releases":[{"id":"010049C0075F0000","region":null}]},{"id":"a6c4eb03-fb3a-463e-ad76-06e79eea287e","directory":"swaps-and-traps","title":"Swaps and Traps","compatibility":99,"releases":[{"id":"0100ED500E858000","region":null}]},{"id":"a6c588cf-d7f4-401c-81ac-e94e01c37326","directory":"tiny-troopers-joint-ops-xl","title":"Tiny Troopers Joint Ops XL","compatibility":99,"releases":[{"id":"0100B52006E8C000","region":null}]},{"id":"a6c88823-875f-4da9-ba0e-027f6afd9e89","directory":"twelve-minutes","title":"Twelve Minutes","compatibility":99,"releases":[{"id":"0100CD701434C000","region":null}]},{"id":"a6d9e1b2-627a-4be1-a43e-e7eb5d56b17d","directory":"chiki-chiki-boxy-pro-wrestling","title":"Chiki-Chiki Boxy Pro Wrestling","compatibility":99,"releases":[{"id":"010056300D21A000","region":null}]},{"id":"a6dcded1-22d6-44f8-ae0c-13637d7218b4","directory":"ice-age-scrats-nutty-adventure","title":"Ice Age Scrat's Nutty Adventure!","compatibility":99,"releases":[{"id":"01004E5007E92000","region":null}]},{"id":"a6ea41fc-6cc3-48f7-8cf2-fc919d743ee9","directory":"cel-damage-hd","title":"Cel Damage HD","compatibility":99,"releases":[{"id":"010019B00BE72000","region":null}]},{"id":"a6ec9863-5cb5-4d1f-85c7-e42ea9418f37","directory":"rollercoaster-tycoon-3-complete-edition","title":"RollerCoaster Tycoon 3 Complete Edition","compatibility":1,"releases":[{"id":"01004900113F8000","region":null}]},{"id":"a6ed9cc9-0e6e-4cb4-a330-5115047c1da3","directory":"the-friends-of-ringo-ishikawa","title":"The friends of Ringo Ishikawa","compatibility":2,"releases":[{"id":"010030700CBBC000","region":null}]},{"id":"a6f6735a-aae2-414b-b6d6-35cd5eadbec9","directory":"antventor","title":"AntVentor","compatibility":99,"releases":[{"id":"0100FE1011400000","region":null}]},{"id":"a70171a8-2e34-4880-91a8-a2ed4ee4dcdb","directory":"dog","title":".dog","compatibility":99,"releases":[{"id":"01002F5016892000","region":null}]},{"id":"a712eb65-6702-4a58-8c81-f7875028b382","directory":"polandball-can-into-space","title":"Polandball: Can Into Space","compatibility":99,"releases":[{"id":"0100A3500B4EC000","region":null}]},{"id":"a7135a0b-7c48-4ee2-b557-7c5d2e5c3c9d","directory":"football-game","title":"Football Game","compatibility":1,"releases":[{"id":"010027800FECE000","region":null}]},{"id":"a71fb7f1-e428-465b-94a7-42bb780b8d87","directory":"olija","title":"Olija","compatibility":99,"releases":[{"id":"01004D501230A000","region":null}]},{"id":"a720a280-7de3-4323-8a55-90d5ed8c6300","directory":"archaica-the-path-of-light","title":"Archaica: The Path Of Light","compatibility":99,"releases":[{"id":"01003C2010C78000","region":null}]},{"id":"a720c4ab-3dcf-4a33-9c4a-47bdb2cec32d","directory":"epic-chef","title":"Epic Chef","compatibility":99,"releases":[{"id":"0100E70014562000","region":null}]},{"id":"a72c010c-efc6-4e86-bf33-3c28beb6c19b","directory":"make-the-burger","title":"Make the Burger","compatibility":99,"releases":[{"id":"01008E2016768000","region":null}]},{"id":"a745c3d9-63e3-466a-b51b-e81eb3e6d311","directory":"undernauts-labyrinth-of-yomi","title":"Undernauts: Labyrinth of Yomi","compatibility":0,"releases":[{"id":"010036D014A7E000","region":null}]},{"id":"a757060e-5c90-4dcd-b5ae-dbb146dc754a","directory":"press-a-to-party","title":"Press “A” to Party","compatibility":99,"releases":[{"id":"010059901442E000","region":null}]},{"id":"a75bec0b-cfab-4759-a4b6-d8855b895f2e","directory":"floor-kids","title":"Floor Kids","compatibility":0,"releases":[{"id":"0100DF9005E7A000","region":null}]},{"id":"a75d785d-c81e-4663-8170-087ceb47612c","directory":"seal-electric-railway","title":"Seal Electric Railway","compatibility":99,"releases":[{"id":"01005BE0136DC000","region":null}]},{"id":"a75fe323-eb94-4dd7-923e-18235a6b39b1","directory":"realpolitiks","title":"Realpolitiks","compatibility":1,"releases":[{"id":"0100C9F00BC50000","region":null}]},{"id":"a76cea99-1028-48ef-8cca-2ba53c180567","directory":"just-ignore-them","title":"Just Ignore Them","compatibility":99,"releases":[{"id":"010090C00F7BA000","region":null}]},{"id":"a76de213-4058-4f09-8997-7b605c12e281","directory":"3-little-pigs-and-bad-wolf","title":"3 Little Pigs & Bad Wolf","compatibility":2,"releases":[{"id":"0100B2700E9F4000","region":null}]},{"id":"a7702db3-7461-4132-9318-ba3cc5640c4d","directory":"bayonetta-2","title":"Bayonetta 2","compatibility":1,"releases":[{"id":"01007960049A0000","region":null}]},{"id":"a7786314-e4e9-4b2c-9454-840935f7499d","directory":"octodad-dadliest-catch","title":"Octodad: Dadliest Catch","compatibility":99,"releases":[{"id":"0100CAB006F54000","region":null}]},{"id":"a77f9035-e746-4a89-931f-d94b91bdff09","directory":"lost-lands-2-the-four-horsemen","title":"Lost Lands 2: The Four Horsemen","compatibility":99,"releases":[{"id":"0100133014510000","region":null}]},{"id":"a784d5f9-d268-4187-8690-90c223565aa6","directory":"mr-driller-drillland","title":"Mr. DRILLER DrillLand","compatibility":2,"releases":[{"id":"0100DCA011262000","region":null}]},{"id":"a78cc379-3d44-4ae5-87fc-ca41625aaa96","directory":"golf-club-wasteland","title":"Golf Club Wasteland","compatibility":0,"releases":[{"id":"010036A0150D6000","region":null}]},{"id":"a7911ea8-e0e2-4bea-8b7d-75d59065ab5b","directory":"atelier-lydie-and-suelle-~the-alchemists-and-the-mysterious-paintings~","title":"Atelier Lydie & Suelle ~The Alchemists and the Mysterious Paintings~","compatibility":4,"releases":[{"id":"010009900947A000","region":null}]},{"id":"a7935f0b-f95d-4de6-9f68-f69f817a4fb7","directory":"moorhuhn-remake","title":"Moorhuhn Remake","compatibility":3,"releases":[{"id":"010026D00AABE000","region":null}]},{"id":"a7938271-3c65-4751-83ec-2b81908bd253","directory":"cursed-castilla","title":"Cursed Castilla","compatibility":1,"releases":[{"id":"0100ED700B376000","region":null}]},{"id":"a796f576-3c6a-41fa-8446-b31af674616f","directory":"raging-loop","title":"Raging Loop","compatibility":1,"releases":[{"id":"010020400E1C2000","region":null}]},{"id":"a79a7209-6b87-4f2f-9dc7-ee0c97615849","directory":"deponia-doomsday","title":"Deponia Doomsday","compatibility":99,"releases":[{"id":"010024000C852000","region":null}]},{"id":"a7ab5082-9be2-449c-aa0f-2317422b1c60","directory":"shing","title":"Shing!","compatibility":99,"releases":[{"id":"01007C200FC64000","region":null}]},{"id":"a7ba42e3-9f9a-4ad8-baa1-2de832b71146","directory":"boxboy-boxgirl","title":"BOXBOY! + BOXGIRL!","compatibility":2,"releases":[{"id":"010018300D006000","region":null}]},{"id":"a7d59802-fced-44ee-bdda-cb3851c603ea","directory":"the-mean-greens-plastic-warfare","title":"The Mean Greens - Plastic Warfare","compatibility":99,"releases":[{"id":"01002220138AE000","region":null}]},{"id":"a7dc929f-75c6-41cb-b274-4899da9191de","directory":"heroes-of-hammerwatch-ultimate-edition","title":"Heroes of Hammerwatch - Ultimate Edition","compatibility":0,"releases":[{"id":"0100D2B00BC54000","region":null}]},{"id":"a7ec6c91-731e-4849-88e7-8b98a5aba675","directory":"creature-in-the-well","title":"Creature in the Well","compatibility":4,"releases":[{"id":"01007C600D778000","region":null}]},{"id":"a7f6a6eb-691f-447e-898a-418fcdb5d2c9","directory":"house-flipper","title":"House Flipper","compatibility":99,"releases":[{"id":"0100CAE00EB02000","region":null}]},{"id":"a7f710ae-f5ad-44dc-9a2f-f2b4328fc16d","directory":"tower-of-babel","title":"Tower Of Babel","compatibility":99,"releases":[{"id":"0100F7B00595C000","region":null}]},{"id":"a7fddd89-e45d-4cb3-a5cd-cea347eee54a","directory":"tunche","title":"Tunche","compatibility":2,"releases":[{"id":"01006F00139DA000","region":null}]},{"id":"a801a1ff-4e2a-46a4-875c-02c57ebbc2d4","directory":"paladin","title":"Paladin","compatibility":99,"releases":[{"id":"010011600BB84000","region":null}]},{"id":"a805ca73-3894-4f75-87f4-77f1d4eba065","directory":"forklift-simulator","title":"Forklift Simulator","compatibility":99,"releases":[{"id":"0100C7B016794000","region":null}]},{"id":"a81cc4de-6af1-43a0-9644-f01f958c4f36","directory":"oh-my-godheads-party-edition","title":"Oh My Godheads: Party Edition","compatibility":99,"releases":[{"id":"01003B900AE12000","region":null}]},{"id":"a823d3f1-ceed-4830-bcf8-b4fbc63bbbe2","directory":"breeder-homegrown-directors-cut","title":"Breeder Homegrown: Director's Cut","compatibility":99,"releases":[{"id":"010051A010C7C000","region":null}]},{"id":"a824663c-abc2-4f62-817a-777966fb99e6","directory":"my-universe-interior-designer","title":"My Universe - Interior Designer","compatibility":99,"releases":[{"id":"010029E01583C000","region":null}]},{"id":"a826a43b-e8f9-40a4-8000-0e13a11426de","directory":"joggernauts","title":"Joggernauts","compatibility":4,"releases":[{"id":"0100EF100BD96000","region":null}]},{"id":"a83949ab-1240-408a-8ce1-7170cbacbc8d","directory":"bridge-3","title":"Bridge! 3","compatibility":1,"releases":[{"id":"01000B1010D8E000","region":null}]},{"id":"a84a2d75-3b12-46f7-921c-28a1aee89a40","directory":"fishing-universe-simulator","title":"Fishing Universe Simulator","compatibility":99,"releases":[{"id":"010069800D292000","region":null}]},{"id":"a8651e67-aa64-47f4-9e2e-798789cb05ff","directory":"88-heroes-98-heroes-edition","title":"88 Heroes - 98 Heroes Edition","compatibility":0,"releases":[{"id":"010006A0042F0000","region":null}]},{"id":"a86c8378-088e-451f-ac0e-e0623f8e7c92","directory":"storm-boy","title":"Storm Boy","compatibility":1,"releases":[{"id":"010040D00BCF4000","region":null}]},{"id":"a86fb9ca-a2dc-4a8e-a6c5-61fe947f912d","directory":"red-colony-2","title":"Red Colony 2","compatibility":1,"releases":[{"id":"01000E50153FE000","region":null}]},{"id":"a870cff1-0bfb-4ba0-9574-de8fce170a3f","directory":"power-racing-bundle-3","title":"Power Racing Bundle 3","compatibility":99,"releases":[{"id":"01008F5013E6C000","region":null}]},{"id":"a8761d94-bf79-4b60-b8a7-ad4a63fd07d8","directory":"motogp18","title":"MotoGP18","compatibility":3,"releases":[{"id":"0100361007268000","region":null}]},{"id":"a88bb601-595a-42ee-b7dd-1915bb7b811c","directory":"double-dragon-neon","title":"Double Dragon Neon","compatibility":1,"releases":[{"id":"01005B10132B2000","region":null}]},{"id":"a88d238a-b939-4b01-8eee-69d64753398d","directory":"super-club-tennis","title":"Super Club Tennis","compatibility":99,"releases":[{"id":"010072A00B632000","region":null}]},{"id":"a895a8e3-97ee-4f40-be07-775779ea89bf","directory":"snow-battle-princess-sayuki","title":"Snow Battle Princess Sayuki","compatibility":99,"releases":[{"id":"0100ADF00CB64000","region":null}]},{"id":"a89e6495-1c54-441e-8af7-231d390e04c0","directory":"aca-neogeo-the-king-of-fighters-2003","title":"ACA NEOGEO THE KING OF FIGHTERS 2003","compatibility":5,"releases":[{"id":"0100EF100AFE6000","region":null}]},{"id":"a8b3277d-b628-43f5-8031-8ff3dc430627","directory":"swordbreaker-the-game","title":"Swordbreaker The Game","compatibility":99,"releases":[{"id":"0100A500115BC000","region":null}]},{"id":"a8c33dc5-d378-47b3-90e4-1cc77f77c327","directory":"my-magic-florist","title":"My Magic Florist","compatibility":99,"releases":[{"id":"01007A5013700000","region":null}]},{"id":"a8cb4be5-0409-430b-bd75-7fa549ef7543","directory":"crazy-strike-bowling-ex","title":"Crazy Strike Bowling EX","compatibility":2,"releases":[{"id":"01006BC00C27A000","region":null}]},{"id":"a8cb7611-5830-493d-b6c0-c8229097a7b0","directory":"bleed-2","title":"Bleed 2","compatibility":3,"releases":[{"id":"0100A48008AE8000","region":null}]},{"id":"a8cbffa7-39ef-4e5b-98e7-10686f4465f4","directory":"adverse","title":"ADVERSE","compatibility":99,"releases":[{"id":"01008C901266E000","region":null}]},{"id":"a8ce4954-559a-4915-9b1e-896ee61d892c","directory":"toem","title":"TOEM","compatibility":99,"releases":[{"id":"01005140151C2000","region":null}]},{"id":"a8d7bf57-2ffa-4050-bd21-5d52590508f3","directory":"super-mega-space-blaster-special-turbo","title":"Super Mega Space Blaster Special Turbo","compatibility":99,"releases":[{"id":"0100BDD00EC5C000","region":null}]},{"id":"a8d8d44a-7690-4011-b447-78729000d6d2","directory":"trivial-pursuit-live","title":"TRIVIAL PURSUIT Live!","compatibility":0,"releases":[{"id":"010020700A5E0000","region":null}]},{"id":"a8e0c208-cca5-4906-babc-13891680553e","directory":"aca-neogeo-cyber-lip","title":"ACA NEOGEO CYBER-LIP","compatibility":2,"releases":[{"id":"010082200AFBE000","region":null}]},{"id":"a8ee87ff-2ebe-4ba2-a144-023180ebfb4c","directory":"collar-x-malice-unlimited","title":"Collar X Malice -Unlimited-","compatibility":0,"releases":[{"id":"0100E3B00F412000","region":null}]},{"id":"a9044ea8-3dc0-47c9-aaff-db3e325e512b","directory":"arcade-archives-saint-dragon","title":"Arcade Archives SAINT DRAGON","compatibility":99,"releases":[{"id":"0100A52010192000","region":null}]},{"id":"a922623f-e580-43ed-a5f8-4e10f7feac88","directory":"mutant-mudds-collection","title":"Mutant Mudds Collection","compatibility":2,"releases":[{"id":"01004BE004A86000","region":null}]},{"id":"a9430d91-3123-4116-89a7-a8c55c2ebfee","directory":"cannibal-cuisine","title":"Cannibal Cuisine","compatibility":99,"releases":[{"id":"0100E5500C756000","region":null}]},{"id":"a956779f-b49e-410d-a3c1-c3ac3d0e4640","directory":"ys-ix-monstrum-nox","title":"Ys IX: Monstrum Nox","compatibility":4,"releases":[{"id":"0100E390124D8000","region":null}]},{"id":"a958e6df-8f77-4f39-9fd1-da86bb3f3bdd","directory":"rbi-baseball-18","title":"R.B.I. Baseball 18","compatibility":4,"releases":[{"id":"01005CC007616000","region":null}]},{"id":"a96acdee-eb74-459d-be1c-73fe6ee2a361","directory":"sorcerer-knights","title":"Sorcerer Knights","compatibility":99,"releases":[{"id":"01003F4016B18000","region":null}]},{"id":"a9734595-623e-4d82-ab7f-55f80ae4fdb9","directory":"hacky-zack","title":"Hacky Zack","compatibility":99,"releases":[{"id":"01003BA00A67E000","region":null}]},{"id":"a985f485-01ae-448d-afdf-a84abda3f747","directory":"hyper-light-drifter-special-edition","title":"Hyper Light Drifter - Special Edition","compatibility":5,"releases":[{"id":"01003B200B372000","region":null}]},{"id":"a98dc0ce-6b09-498a-9604-12526d0a12af","directory":"the-walking-vegetables-radical-edition","title":"The Walking Vegetables: Radical Edition","compatibility":99,"releases":[{"id":"0100E7D00C17A000","region":null}]},{"id":"a98e3f70-0622-4e29-9bfe-986d5673867a","directory":"galaxy-shooter","title":"Galaxy Shooter","compatibility":99,"releases":[{"id":"01008100169AC000","region":null}]},{"id":"a9985436-0b01-4f45-81b5-38e3e750a22f","directory":"refunct","title":"Refunct","compatibility":0,"releases":[{"id":"01007A800D520000","region":null}]},{"id":"a99be1c5-1ed5-4e7c-90d6-c22047eec2be","directory":"arcade-archives-mappy","title":"Arcade Archives MAPPY","compatibility":99,"releases":[{"id":"0100C5D015AD0000","region":null}]},{"id":"a9a34876-afc7-4c0f-894a-bd41a664d59f","directory":"grimshade","title":"Grimshade","compatibility":99,"releases":[{"id":"01001E200F2F8000","region":null}]},{"id":"a9b6f094-09eb-4768-9d37-2ed8a6c57ca6","directory":"pupaipo-space-deluxe","title":"PuPaiPo Space Deluxe","compatibility":99,"releases":[{"id":"01007BE00FE5E000","region":null}]},{"id":"a9cf454d-2774-473a-8042-2b352f8388e5","directory":"time-recoil","title":"Time Recoil","compatibility":99,"releases":[{"id":"0100F770045CA000","region":null}]},{"id":"a9d12316-f303-4fcf-8c59-59795b03a0ce","directory":"reflex-unit-2","title":"Reflex Unit 2","compatibility":99,"releases":[{"id":"010014901201E000","region":null}]},{"id":"a9f1b93c-4f9f-4997-8647-91ba4b51106d","directory":"defense-grid-2","title":"Defense Grid 2","compatibility":99,"releases":[{"id":"010061300BBF8000","region":null}]},{"id":"aa0174d7-dc8d-46ed-9ec0-d32f3facc9a6","directory":"icey","title":"ICEY","compatibility":1,"releases":[{"id":"0100BE9007E7E000","region":null}]},{"id":"aa0a13c8-e5e2-4e04-bc35-1461ba82fbab","directory":"indie-gems-bundle-jrpg-edition","title":"Indie Gems Bundle - JRPG Edition","compatibility":99,"releases":[{"id":"0100A95010942000","region":null}]},{"id":"aa1be8e5-ced1-4fab-bc71-fd28ba8cda5d","directory":"fantasy-friends-under-the-sea","title":"Fantasy Friends: Under the Sea","compatibility":99,"releases":[{"id":"0100DAA0153C0000","region":null}]},{"id":"aa1d6494-b173-4d54-ac0e-4a033099aa91","directory":"kirakira-stars-idol-project-ai","title":"Kirakira stars idol project Ai","compatibility":99,"releases":[{"id":"01008C0014C10000","region":null}]},{"id":"aa1f8b4a-c4a6-46e1-bf1b-59c3e1630108","directory":"urban-trial-playground","title":"Urban Trial Playground","compatibility":1,"releases":[{"id":"01001B10068EC000","region":null}]},{"id":"aa2c75b9-4a33-4268-8c72-c1dc38fc41ea","directory":"hexxagon-board-game","title":"Hexxagon - Board Game","compatibility":99,"releases":[{"id":"0100369012840000","region":null}]},{"id":"aa3447cb-9c87-4c72-961d-7e05f36b800e","directory":"mario-and-sonic-at-the-olympic-games-tokyo-2020","title":"Mario & Sonic at the Olympic Games Tokyo 2020","compatibility":1,"releases":[{"id":"010003000E146000","region":null}]},{"id":"aa4b2b40-aa46-4bd0-aa41-cf870e290cd7","directory":"bit-trip-runner","title":"BIT.TRIP RUNNER","compatibility":3,"releases":[{"id":"0100E62012D3C000","region":null}]},{"id":"aa509f2e-3e87-4bee-be16-ba6820e4c78c","directory":"the-bluecoats-north-south","title":"The Bluecoats North & South","compatibility":1,"releases":[{"id":"0100A5A00B2AA000","region":null}]},{"id":"aa6ffec6-2536-43af-aaaa-405673f81040","directory":"arcade-archives-time-pilot","title":"Arcade Archives TIME PILOT","compatibility":4,"releases":[{"id":"0100AF300D2E8000","region":null}]},{"id":"aa81de21-30e8-4dce-b079-55d2a5cf0087","directory":"semblance","title":"Semblance","compatibility":0,"releases":[{"id":"010080F0099FC000","region":null}]},{"id":"aa8b1094-607f-4274-bc8a-a00f71a4eeaa","directory":"red-square-escape","title":"Red Square Escape","compatibility":99,"releases":[{"id":"010052B015B74000","region":null}]},{"id":"aa8c764c-1086-432d-928d-527ce0c9ceee","directory":"you-died-but-a-necromancer-revived-you","title":"You Died but a Necromancer revived you","compatibility":99,"releases":[{"id":"0100F6700DBD8000","region":null}]},{"id":"aa9573c4-e9dc-48d3-9e05-fc1bb17e8fd5","directory":"energy-cycle-edge","title":"Energy Cycle Edge","compatibility":99,"releases":[{"id":"0100B8700BD14000","region":null}]},{"id":"aa95e5dd-9bb3-4289-9cc1-d9970d0941d5","directory":"beast-breaker","title":"Beast Breaker","compatibility":99,"releases":[{"id":"010042401436C000","region":null}]},{"id":"aaa51ee8-e6bc-41fe-8349-775ce77ddfe6","directory":"dragons-lair-trilogy","title":"Dragon's Lair Trilogy","compatibility":1,"releases":[{"id":"010027100C544000","region":null}]},{"id":"aaa6042e-9504-49e2-a26e-07839e365bdf","directory":"flynn-son-of-crimson","title":"Flynn: Son of Crimson","compatibility":5,"releases":[{"id":"01005F2014B80000","region":null}]},{"id":"aab2ee71-cfa7-4e2b-b2bf-f7f92a2459e7","directory":"alba-a-wildlife-adventure","title":"Alba: A Wildlife Adventure","compatibility":2,"releases":[{"id":"01007FB013B10000","region":null}]},{"id":"aac19174-b9ed-465d-b07b-f1fb4a21ecf3","directory":"cozy-grove","title":"Cozy Grove","compatibility":0,"releases":[{"id":"01003370136EA000","region":null}]},{"id":"aac3f3fa-aace-43ca-8e57-8d6561733cb5","directory":"glass-masquerade-2-illusions","title":"Glass Masquerade 2: Illusions","compatibility":99,"releases":[{"id":"0100EE300FC36000","region":null}]},{"id":"aac560b8-1134-4ef7-9bb7-71bcb2d5e2f7","directory":"mittelborg-city-of-mages","title":"Mittelborg: City of Mages","compatibility":99,"releases":[{"id":"0100F65011E52000","region":null}]},{"id":"aad666e0-4915-43be-87d0-9efd9d0a4500","directory":"zero-zero-zero-zero","title":"Zero Zero Zero Zero","compatibility":99,"releases":[{"id":"010010500390C000","region":null}]},{"id":"aadb3cce-0a79-4d31-9426-acb8f73cea88","directory":"button-button-up","title":"Button Button Up!","compatibility":1,"releases":[{"id":"010011000E31A000","region":null}]},{"id":"aadc1ccd-5549-45b8-a933-1f87ccf548cd","directory":"buildings-have-feelings-too","title":"Buildings Have Feelings Too!","compatibility":99,"releases":[{"id":"0100C0B00D290000","region":null}]},{"id":"aadcd132-04c2-4ea4-a035-c8947b59df3e","directory":"wurroom","title":"Wurroom","compatibility":99,"releases":[{"id":"01003B401148E000","region":null}]},{"id":"aae7c1df-f96f-4e8c-878b-016a2c57145c","directory":"sephirothic-stories","title":"Sephirothic Stories","compatibility":1,"releases":[{"id":"010059700D4A0000","region":null}]},{"id":"aae8c545-406b-402b-939a-939037e7ad8e","directory":"yooka-laylee","title":"Yooka-Laylee","compatibility":0,"releases":[{"id":"0100F110029C8000","region":null}]},{"id":"aaf1aed1-54ea-428d-b637-460810c1900a","directory":"dark-devotion","title":"Dark Devotion","compatibility":3,"releases":[{"id":"010083A00BF6C000","region":null}]},{"id":"aaf91fd1-7093-4361-8097-6fde02abacf1","directory":"radiation-island","title":"Radiation Island","compatibility":5,"releases":[{"id":"01009E40095EE000","region":null}]},{"id":"aafc1c12-115e-453d-a7fa-ecdd1fe8a298","directory":"pixel-art-bundle-vol-1","title":"Pixel Art Bundle Vol. 1","compatibility":99,"releases":[{"id":"0100B3201140C000","region":null}]},{"id":"ab003f2d-356f-48ab-b21c-2d5e798551db","directory":"avicii-invector","title":"AVICII Invector","compatibility":0,"releases":[{"id":"010064600F982000","region":null}]},{"id":"ab131a88-09fc-4172-a35f-64a3b5d3d8ce","directory":"mermaid-castle","title":"Mermaid Castle","compatibility":0,"releases":[{"id":"0100B5901230C000","region":null}]},{"id":"ab160326-7fc4-4105-9da5-6c7260ebd2f5","directory":"retro-fighter-dragons-revenge","title":"Retro Fighter - Dragon's Revenge","compatibility":99,"releases":[{"id":"0100F4101443C000","region":null}]},{"id":"ab17030d-b327-44e3-bc6b-39b0b8d5fca1","directory":"clannad","title":"CLANNAD","compatibility":1,"releases":[{"id":"0100A3A00CC7E000","region":null}]},{"id":"ab18e9cb-be87-496b-b4d1-98add531e9b5","directory":"splat-the-fruit","title":"Splat the Fruit","compatibility":99,"releases":[{"id":"01004C800A79C000","region":null}]},{"id":"ab1e389e-a697-4798-ba9e-a4b1cde35d15","directory":"battojutsu","title":"BATTOJUTSU","compatibility":99,"releases":[{"id":"01006EE00E67C000","region":null}]},{"id":"ab21649e-9d4f-4d6c-b9ec-d38d497c8e4b","directory":"bridge-builder-adventure","title":"Bridge Builder Adventure","compatibility":99,"releases":[{"id":"01001BD010758000","region":null}]},{"id":"ab246c63-9da0-4d12-b6ff-f725f62cbdb2","directory":"aqua-lungers","title":"Aqua Lungers","compatibility":99,"releases":[{"id":"0100FE0010886000","region":null}]},{"id":"ab2557b6-497c-43a6-8b17-02f4d1cc26c1","directory":"hunting-simulator-2","title":"Hunting Simulator 2","compatibility":3,"releases":[{"id":"010061F010C3A000","region":null}]},{"id":"ab335dd1-9abd-4ec1-a5b7-47b36b8a155f","directory":"lovecrafts-untold-stories","title":"Lovecraft´s Untold Stories","compatibility":1,"releases":[{"id":"010041100CE7E000","region":null}]},{"id":"ab3e1780-5c04-46d9-a388-9980b0292aae","directory":"devil-may-cry-2","title":"Devil May Cry 2","compatibility":0,"releases":[{"id":"01007CF00D5BA000","region":null}]},{"id":"ab4125c4-9006-4f30-91ca-041b4fd497a9","directory":"unmetal","title":"UnMetal","compatibility":0,"releases":[{"id":"01008F4014A74000","region":null}]},{"id":"ab520008-acd7-43d4-b935-4a75af70d16c","directory":"color-dots-connect","title":"Color Dots Connect","compatibility":99,"releases":[{"id":"01004F7015382000","region":null}]},{"id":"ab55d09e-5376-459f-9f71-89e198d4a402","directory":"aerial_knights-never-yield","title":"Aerial_Knight's Never Yield","compatibility":1,"releases":[{"id":"0100E9B013D4A000","region":null}]},{"id":"ab586efc-0bed-429e-83a0-1a16e3fb2fec","directory":"anarcute","title":"Anarcute","compatibility":99,"releases":[{"id":"010050900E1C6000","region":null}]},{"id":"ab5da151-4dbe-476a-b062-5ca269b0862f","directory":"monster-truck-championship","title":"Monster Truck Championship","compatibility":99,"releases":[{"id":"0100D30010C42000","region":null}]},{"id":"ab610baa-199e-469f-88c0-b98b02635d5f","directory":"mahjong-deluxe-3","title":"Mahjong Deluxe 3","compatibility":99,"releases":[{"id":"0100E0300B13C000","region":null}]},{"id":"ab662694-b43e-46a5-a9a2-731cc2818889","directory":"doom-destiny-advanced","title":"Doom & Destiny Advanced","compatibility":0,"releases":[{"id":"01003B800E164000","region":null}]},{"id":"ab6a046e-d86f-4cf5-a1d4-47f9d5cc1344","directory":"super-arcade-soccer-2021","title":"Super Arcade Soccer 2021","compatibility":99,"releases":[{"id":"010081F00F75C000","region":null}]},{"id":"ab6dcc4c-aa67-4217-8e16-56d5cc20aec3","directory":"black-the-fall","title":"Black The Fall","compatibility":3,"releases":[{"id":"0100502007F54000","region":null}]},{"id":"ab6e3d08-d59d-4f25-8acd-7db2f27ce190","directory":"mathland","title":"MathLand","compatibility":99,"releases":[{"id":"01004B100A1C4000","region":null}]},{"id":"ab6f14a1-7c0a-47f3-ba27-348c4619eb76","directory":"world-soccer-strikers-91","title":"World Soccer Strikers '91","compatibility":99,"releases":[{"id":"010032B013896000","region":null}]},{"id":"ab8a717c-234d-403e-8cc5-9996ec0bc057","directory":"freecell-solitaire-deluxe","title":"Freecell Solitaire Deluxe","compatibility":99,"releases":[{"id":"0100C4300EEEE000","region":null}]},{"id":"ab8ead75-87f5-4b3b-810e-bc9e5cfb6a12","directory":"into-the-dead-2","title":"Into the Dead 2","compatibility":99,"releases":[{"id":"01000F700DECE000","region":null}]},{"id":"ab9c824c-c6c9-463a-880e-0f03855046a5","directory":"haunted-halloween-86","title":"HAUNTED: Halloween '86","compatibility":1,"releases":[{"id":"010085500F6B6000","region":null}]},{"id":"ab9cc8d5-a540-45b0-a76f-529d990b340d","directory":"smashing-the-battle","title":"SMASHING THE BATTLE","compatibility":0,"releases":[{"id":"01002AA00C974000","region":null}]},{"id":"aba63f9f-2204-4285-a6a8-084d6646a4aa","directory":"persona-r-5-strikers","title":"Persona® 5 Strikers","compatibility":0,"releases":[{"id":"0100801011C3E000","region":null}]},{"id":"aba6d40d-9fcb-43fd-be08-1bdb91383395","directory":"funny-bunny-adventures","title":"Funny Bunny Adventures","compatibility":99,"releases":[{"id":"0100EA501033C000","region":null}]},{"id":"abaa9a73-a44e-4ad2-802b-35dc720eeb2f","directory":"typoman","title":"Typoman","compatibility":2,"releases":[{"id":"0100A250093DE000","region":null}]},{"id":"abb51823-38b4-4d48-8ca2-f61c47476ee7","directory":"mazezam-puzzle-game","title":"MazezaM - Puzzle Game","compatibility":99,"releases":[{"id":"0100EEB0122BA000","region":null}]},{"id":"abc42d50-46f1-43de-a31b-f353d133c071","directory":"doki-doki-literature-club-plus","title":"Doki Doki Literature Club Plus!","compatibility":0,"releases":[{"id":"010086901543E000","region":null}]},{"id":"abc73770-4031-4590-884a-4789269497eb","directory":"desktop-volleyball","title":"Desktop Volleyball","compatibility":99,"releases":[{"id":"01001240126F2000","region":null}]},{"id":"abcf946f-275d-4952-8f24-f4635fb7ae47","directory":"doodle-devil-3volution","title":"Doodle Devil: 3volution","compatibility":99,"releases":[{"id":"0100996012D7A000","region":null}]},{"id":"abd277be-06f2-4728-b5de-64ecc5bda901","directory":"arcade-archives-cybattler","title":"Arcade Archives CYBATTLER","compatibility":99,"releases":[{"id":"0100AF5013F00000","region":null}]},{"id":"abd290e3-44ac-461e-bc6a-93e6903164e4","directory":"gnomes-garden","title":"Gnomes Garden","compatibility":99,"releases":[{"id":"01004D300BF98000","region":null}]},{"id":"abd86039-11d3-4efb-b0da-0c1f5fdc0cb9","directory":"the-walking-dead-the-complete-first-season","title":"The Walking Dead: The Complete First Season","compatibility":4,"releases":[{"id":"010029200B6AA000","region":null}]},{"id":"abe29986-a326-4b47-9f29-5e03e9f658fe","directory":"kill-la-kill-if","title":"KILL la KILL -IF","compatibility":4,"releases":[{"id":"0100FB400D832000","region":null}]},{"id":"abf8b2cb-8d10-4a1e-a2ab-896e98aeafe5","directory":"tens","title":"TENS!","compatibility":99,"releases":[{"id":"01009C4012336000","region":null}]},{"id":"abf97fc9-ce1d-4ede-ac7d-c1c49efb065d","directory":"octopath-traveler-prologue-demo-version","title":"Octopath Traveler - Prologue Demo Version","compatibility":3,"releases":[{"id":"010096000B3EA000","region":null}]},{"id":"abfb63bf-5718-4ed0-b4a5-044d49e50118","directory":"squidlit","title":"Squidlit","compatibility":1,"releases":[{"id":"0100FCD0102EC000","region":null}]},{"id":"ac13842b-8fe6-4b14-8df4-f433d33e88fa","directory":"brunch-club","title":"Brunch Club","compatibility":99,"releases":[{"id":"0100B2700E90E000","region":null}]},{"id":"ac15408d-a462-407e-9057-a88c4e0f830d","directory":"avocuddle","title":"AvoCuddle","compatibility":99,"releases":[{"id":"01008FB011248000","region":null}]},{"id":"ac181238-b7a4-40ec-adf7-00ed30bc9525","directory":"final-fantasy-r-crystal-chronicles-remastered-edition","title":"FINAL FANTASY® CRYSTAL CHRONICLES™ Remastered Edition","compatibility":1,"releases":[{"id":"0100CE4010AAC000","region":null}]},{"id":"ac27ed3f-4dc2-4391-bf09-4a2402fca704","directory":"just-a-phrase-by-powgi","title":"Just a Phrase by POWGI","compatibility":99,"releases":[{"id":"010045100F722000","region":null}]},{"id":"ac2fdfb3-0fe7-43b8-a589-a84ed54ece13","directory":"back-to-bed","title":"Back to Bed","compatibility":99,"releases":[{"id":"0100F4100AF16000","region":null}]},{"id":"ac308ffd-059d-4dd1-8172-4c2ff77de743","directory":"resident-evil-revelations-2","title":"Resident Evil Revelations 2","compatibility":2,"releases":[{"id":"010095300212A000","region":null}]},{"id":"ac3eb988-bd07-4daf-a9c8-4dfbfe57da7e","directory":"history-2048","title":"History 2048","compatibility":99,"releases":[{"id":"0100B1E00D234000","region":null}]},{"id":"ac6c767f-0082-4bfb-9b00-344ab488045a","directory":"part-time-ufo","title":"Part Time UFO™","compatibility":1,"releases":[{"id":"01006B5012B32000","region":null}]},{"id":"ac73a532-43a1-4a19-969f-7f97bf7d308b","directory":"heavens-vault","title":"Heaven's Vault","compatibility":99,"releases":[{"id":"0100FD901000C000","region":null}]},{"id":"ac78e67c-d424-4262-875d-15970d6802af","directory":"grindstone","title":"Grindstone","compatibility":0,"releases":[{"id":"0100538012496000","region":null}]},{"id":"ac80ed20-23ab-4900-bac6-48c7f4eb05ad","directory":"tactics-v-obsidian-brigade","title":"Tactics V: \"Obsidian Brigade\"","compatibility":99,"releases":[{"id":"01007C7006AEE000","region":null}]},{"id":"ac8c8dbb-a270-4f48-8d7d-6d41d3ed32d0","directory":"dragon-quest-builders","title":"Dragon Quest Builders","compatibility":4,"releases":[{"id":"010008900705C000","region":null}]},{"id":"ac9c2b68-dd33-4d42-938e-4e0e835a288f","directory":"escape-trick-35-fateful-enigmas","title":"ESCAPE TRICK: 35 Fateful Enigmas","compatibility":99,"releases":[{"id":"010087F005DFE000","region":null}]},{"id":"aca2a9ff-973a-4809-8597-beacc16e29b6","directory":"a-hero-and-a-garden","title":"A HERO AND A GARDEN","compatibility":99,"releases":[{"id":"01009E1011EC4000","region":null}]},{"id":"aca4d02d-9524-4098-8c1e-d4f6d9f0653d","directory":"piczle-cells","title":"Piczle Cells","compatibility":99,"releases":[{"id":"0100458015054000","region":null}]},{"id":"acc669d9-4ec1-4089-ae3b-861b67e647ee","directory":"pipe-push-paradise","title":"Pipe Push Paradise","compatibility":99,"releases":[{"id":"0100F7B00B864000","region":null}]},{"id":"acc8dc4c-3fc8-4bc0-bbfd-09bee2587c22","directory":"magequit","title":"MageQuit","compatibility":99,"releases":[{"id":"0100F9C012142000","region":null}]},{"id":"accfa48c-c6cd-4963-a379-e02d66f80394","directory":"perfect-traffic-simulator","title":"Perfect Traffic Simulator","compatibility":99,"releases":[{"id":"0100144011030000","region":null}]},{"id":"acd60203-4423-4433-ae45-a13ba2fe03dd","directory":"freecell-battle-king","title":"FREECELL BATTLE KING","compatibility":99,"releases":[{"id":"0100E6100CCE6000","region":null}]},{"id":"acd9fdd4-ff7f-4c50-94d0-16891a5227c7","directory":"0-degrees","title":"0 Degrees","compatibility":99,"releases":[{"id":"010011A0147CA000","region":null}]},{"id":"acdecd76-24ce-4ccb-aad4-bcba66be4a84","directory":"hamster-bob","title":"Hamster Bob","compatibility":99,"releases":[{"id":"01007A2011284000","region":null}]},{"id":"acea06c1-f390-4f7e-85c5-b8a7b572bc78","directory":"scandal-in-the-spotlight","title":"Scandal In The Spotlight","compatibility":3,"releases":[{"id":"01009B6013180000","region":null}]},{"id":"aced43b2-44d8-4a0d-9b97-32ed3b094d4b","directory":"carto","title":"Carto","compatibility":0,"releases":[{"id":"0100810012A1A000","region":null}]},{"id":"acf4ad06-8359-4a1d-99fb-08f93bd06c05","directory":"raining-coins","title":"Raining Coins","compatibility":99,"releases":[{"id":"010091B00B762000","region":null}]},{"id":"ad0cc941-1f48-43a0-9d29-f85263635975","directory":"chaos-code-new-sign-of-catastrophe","title":"CHAOS CODE -NEW SIGN OF CATASTROPHE-","compatibility":3,"releases":[{"id":"01007600115CE000","region":null}]},{"id":"ad153cae-adc5-4848-acd9-5b294b5f226d","directory":"dauntless","title":"Dauntless","compatibility":99,"releases":[{"id":"0100B9500D1B0000","region":null}]},{"id":"ad1eda00-e11c-4322-baf7-19d4bf11ee23","directory":"mordheim-warband-skirmish","title":"Mordheim: Warband Skirmish","compatibility":99,"releases":[{"id":"010071B009FB6000","region":null}]},{"id":"ad24ef6d-d919-41c1-a925-dbbb04786751","directory":"sallys-law","title":"Sally's Law","compatibility":99,"releases":[{"id":"01007BB00A0A0000","region":null}]},{"id":"ad31e055-5f74-423e-9fe2-033e9dd89337","directory":"toki-tori-2-nintendo-switch-edition","title":"Toki Tori 2+: Nintendo Switch Edition","compatibility":2,"releases":[{"id":"0100A2B008696000","region":null}]},{"id":"ad36c413-ff4b-4e90-bf4f-f3d3ca31cb65","directory":"a-gliders-journey","title":"A Glider's Journey","compatibility":99,"releases":[{"id":"01006C00110F2000","region":null}]},{"id":"ad43568f-03b8-4a6e-8fa4-08fd8239f19c","directory":"madness-beverage","title":"Madness Beverage","compatibility":99,"releases":[{"id":"01002AD016DE0000","region":null}]},{"id":"ad49b266-b270-4d78-8544-170b2c61a215","directory":"construction-machines-simulator","title":"Construction Machines Simulator","compatibility":1,"releases":[{"id":"01004BA00B566000","region":null}]},{"id":"ad5efcfe-8782-4a3f-9389-5f494613e7a5","directory":"i-and-me-demo","title":"I and Me Demo","compatibility":99,"releases":[{"id":"010007B009314000","region":null}]},{"id":"ad6bf61a-02aa-40cd-a62f-86713aaea8a5","directory":"sudoku-relax-2-summer-waves","title":"Sudoku Relax 2 Summer Waves","compatibility":99,"releases":[{"id":"01009C600F02C000","region":null}]},{"id":"ad6e23f8-f9fb-47b9-b2c7-c954aa603505","directory":"aca-neogeo-the-king-of-fighters-94","title":"ACA NEOGEO THE KING OF FIGHTERS '94","compatibility":4,"releases":[{"id":"0100EB2001DCC000","region":null}]},{"id":"ad7ed8bf-b4f2-4181-891e-6fbb5dd6866f","directory":"arcade-archives-10-yard-fight","title":"Arcade Archives 10-Yard Fight","compatibility":1,"releases":[{"id":"0100BE80097FA000","region":null}]},{"id":"ad82525f-edf9-411c-a41d-a117d33de904","directory":"splash-blast-panic","title":"Splash Blast Panic","compatibility":99,"releases":[{"id":"01006F900AB7E000","region":null}]},{"id":"ad85ab58-2322-4afb-8c65-c7f10e1ab4b8","directory":"unbox-newbies-adventure","title":"UNBOX: Newbie's Adventure","compatibility":1,"releases":[{"id":"0100592005164000","region":null}]},{"id":"ad9250cc-7b9a-4143-96a3-c81f6637272d","directory":"picross-lord-of-the-nazarick","title":"PICROSS LORD OF THE NAZARICK","compatibility":1,"releases":[{"id":"010012100E8DC000","region":null}]},{"id":"ad92cc85-8c0f-47a1-875b-35d524ebaf36","directory":"fantasy-tower-defense","title":"Fantasy Tower Defense","compatibility":99,"releases":[{"id":"01007AA012E02000","region":null}]},{"id":"ad956b3c-398e-416d-a7eb-4b762d933d60","directory":"portal-knights","title":"Portal Knights","compatibility":2,"releases":[{"id":"0100437004170000","region":null}]},{"id":"ad977171-3e80-427a-bf51-6376045eca10","directory":"moonfall-ultimate","title":"Moonfall Ultimate","compatibility":99,"releases":[{"id":"0100C2E00B494000","region":null}]},{"id":"ada08717-d034-46d5-8551-f0901655f92d","directory":"f-117a-stealth-fighter","title":"F-117A Stealth Fighter","compatibility":99,"releases":[{"id":"0100E720115CC000","region":null}]},{"id":"ada9413a-ff65-4120-b959-61cd9d9d8bda","directory":"steam-prison","title":"Steam Prison","compatibility":0,"releases":[{"id":"01008010118CC000","region":null}]},{"id":"ada9cefa-4fef-4286-a6a3-bdb02405c3f1","directory":"task-force-kampas","title":"Task Force Kampas","compatibility":99,"releases":[{"id":"01002D4011208000","region":null}]},{"id":"adaccabb-6e6f-4ce4-abe9-2a734231ffd7","directory":"planet-quiz-learn-discover","title":"Planet Quiz: Learn & Discover","compatibility":99,"releases":[{"id":"010057C015C3A000","region":null}]},{"id":"adb1fadc-43ef-4f3b-892f-fa1587c1b3b7","directory":"iron-wings","title":"Iron Wings","compatibility":99,"releases":[{"id":"01005270118D6000","region":null}]},{"id":"adb298c7-4f63-4224-b17d-130c26ea8190","directory":"112th-seed","title":"112th Seed","compatibility":99,"releases":[{"id":"010051E012302000","region":null}]},{"id":"adb4f501-4401-486c-81d8-8e415eb83c8c","directory":"sea-king","title":"Sea King","compatibility":99,"releases":[{"id":"0100E4A00D066000","region":null}]},{"id":"adb9b511-685d-457a-9871-af74cff7f302","directory":"zen-bound-2","title":"Zen Bound 2","compatibility":99,"releases":[{"id":"01001AF008BDA000","region":null}]},{"id":"adbc9dbe-f6ce-4be3-aa9e-09d985c15d00","directory":"angry-bunnies-colossal-carrot-crusade","title":"Angry Bunnies: Colossal Carrot Crusade","compatibility":99,"releases":[{"id":"0100F3500D05E000","region":null}]},{"id":"adbf3566-ef31-47ee-ae87-5788ca7fbc76","directory":"reigns-kings-and-queens","title":"Reigns: Kings & Queens","compatibility":99,"releases":[{"id":"0100CCE00A4F2000","region":null}]},{"id":"adc311b2-0a44-4543-8d85-4dfc5b8b5b7a","directory":"the-videokid","title":"The VideoKid","compatibility":99,"releases":[{"id":"0100D0500B0A6000","region":null}]},{"id":"adc352e1-f796-4a82-af4b-9316411e070b","directory":"evil-defenders","title":"Evil Defenders","compatibility":99,"releases":[{"id":"010080600B53E000","region":null}]},{"id":"adc5026b-46a7-49c1-b46a-154613e7e961","directory":"carcassonne","title":"Carcassonne","compatibility":1,"releases":[{"id":"0100C9200A9C2000","region":null}]},{"id":"adc552d3-dbb9-49f2-84d0-ff4339a7c04a","directory":"ecrossminton","title":"eCrossminton","compatibility":99,"releases":[{"id":"0100E0A0110F4000","region":null}]},{"id":"add2f26a-d809-4779-b57f-45e95a66b07e","directory":"bombfall","title":"BombFall","compatibility":99,"releases":[{"id":"0100FCA00C8D0000","region":null}]},{"id":"add41152-c751-4fa7-80bc-da613e66ce02","directory":"super-weekend-mode","title":"Super Weekend Mode","compatibility":99,"releases":[{"id":"01003D700D564000","region":null}]},{"id":"adde0ba3-bcfd-4d7c-960b-1d69abad0efb","directory":"ekstase","title":"Ekstase","compatibility":99,"releases":[{"id":"01004F10143E4000","region":null}]},{"id":"adf36bf6-214e-4b5e-9d10-8765ce77e05a","directory":"bakery-master","title":"Bakery Master","compatibility":99,"releases":[{"id":"0100BA50144DE000","region":null}]},{"id":"adf52087-60bc-4ba3-b7a6-a06729191c25","directory":"the-jackbox-party-pack-2","title":"The Jackbox Party Pack 2","compatibility":99,"releases":[{"id":"010015D003EE4000","region":null}]},{"id":"adf5f9f4-1cc6-4e90-b4dc-24bc4de1e5ae","directory":"trails-and-traces-the-tomb-of-thomas-tew","title":"Trails and Traces: The Tomb of Thomas Tew","compatibility":99,"releases":[{"id":"01008D4014102000","region":null}]},{"id":"adf69feb-3ba6-461c-afe2-9e86cd5c0c3a","directory":"palindrome-syndrome-escape-room","title":"Palindrome Syndrome: Escape Room","compatibility":99,"releases":[{"id":"0100CE30142D6000","region":null}]},{"id":"adfca367-8f4a-4512-a557-dd78930006d7","directory":"mistover","title":"MISTOVER","compatibility":99,"releases":[{"id":"010034E00EFD0000","region":null}]},{"id":"ae0f342d-8ff5-4b96-853e-f2d798226f85","directory":"clouds-and-sheep-2","title":"Clouds & Sheep 2","compatibility":99,"releases":[{"id":"010079700B4EA000","region":null}]},{"id":"ae150b50-e631-4d45-b20f-99688b7ee937","directory":"cake-bash","title":"Cake Bash","compatibility":2,"releases":[{"id":"010014A0115BE000","region":null}]},{"id":"ae1bff77-7192-4ac0-9b3b-77f7db8182f6","directory":"educational-games-for-kids","title":"Educational Games for Kids","compatibility":99,"releases":[{"id":"0100599013216000","region":null}]},{"id":"ae1fd4f2-0b42-4285-86e5-89223de1d6c8","directory":"healers-quest","title":"Healer's Quest","compatibility":99,"releases":[{"id":"0100613013150000","region":null}]},{"id":"ae3d8cb5-1e25-4556-806f-ea3e199f0439","directory":"knight-with-tactics","title":"Knight with Tactics","compatibility":99,"releases":[{"id":"0100DEB013C76000","region":null}]},{"id":"ae784153-04d2-4d50-8827-050ca68c87f6","directory":"eldrador-r-creatures","title":"Eldrador® Creatures","compatibility":1,"releases":[{"id":"010068F012880000","region":null}]},{"id":"ae88572e-c325-4678-98a6-f978088895ec","directory":"aliens-strike","title":"Aliens Strike","compatibility":99,"releases":[{"id":"01000E5016EF6000","region":null}]},{"id":"ae88fa22-8c86-4c5a-b002-6979cf8bcecb","directory":"access-denied","title":"Access Denied","compatibility":5,"releases":[{"id":"0100A9900CB5C000","region":null}]},{"id":"ae93f9e3-7815-4bb3-a0c5-b91fcb9e74c4","directory":"funghi-explosion","title":"Funghi Explosion","compatibility":99,"releases":[{"id":"0100E7B00BF24000","region":null}]},{"id":"ae95c431-c897-4637-a224-b5ae3e256896","directory":"angry-alligator","title":"Angry Alligator","compatibility":99,"releases":[{"id":"0100A78012A76000","region":null}]},{"id":"aea190d1-23d3-4917-9620-babead9fa063","directory":"amazing-breaker","title":"Amazing Breaker","compatibility":99,"releases":[{"id":"0100BE70163C8000","region":null}]},{"id":"aeab5d29-db69-48fe-8d30-8f561e98dec6","directory":"detective-case-and-clown-bot-in-murder-in-the-hotel-lisbon","title":"Detective Case and Clown Bot in: Murder in The Hotel Lisbon","compatibility":99,"releases":[{"id":"0100AB700AF14000","region":null}]},{"id":"aeabb7b1-9db7-46a0-86bf-cc1319e3772f","directory":"grand-guilds","title":"Grand Guilds","compatibility":99,"releases":[{"id":"010038100D436000","region":null}]},{"id":"aeac0953-0651-4651-8b12-283f87523300","directory":"mutant-football-league-dynasty-edition","title":"Mutant Football League: Dynasty Edition","compatibility":4,"releases":[{"id":"0100C3E00ACAA000","region":null}]},{"id":"aebfcc1a-24c2-4555-a7fa-9f4901725bdc","directory":"jurassic-excite","title":"Jurassic Excite","compatibility":99,"releases":[{"id":"010043F010412000","region":null}]},{"id":"aec1abf6-2785-4191-8cdc-c39b4f02e1fb","directory":"super-one-more-jump","title":"Super One More Jump","compatibility":0,"releases":[{"id":"0100284007D6C000","region":null}]},{"id":"aecca06c-81bd-41e3-9d33-d9df6f8c20e2","directory":"bayonetta","title":"Bayonetta","compatibility":0,"releases":[{"id":"010076F0049A2000","region":null}]},{"id":"aece254e-3fb9-462a-9df5-2c7350008a44","directory":"1912-titanic-mystery","title":"1912: Titanic Mystery","compatibility":0,"releases":[{"id":"0100750014426000","region":null}]},{"id":"aed005c2-e0c4-43ec-9809-1a0f8170b942","directory":"lovekami-divinity-stage","title":"Lovekami -Divinity Stage-","compatibility":99,"releases":[{"id":"01004A4013318000","region":null}]},{"id":"aedb5256-3d19-4748-8ddd-c57d9f73f25d","directory":"runbow","title":"Runbow","compatibility":0,"releases":[{"id":"0100ADF00700E000","region":null}]},{"id":"aedf9a65-4e74-4f13-b6f9-acb70584d242","directory":"red-hot-ricochet","title":"Red Hot Ricochet","compatibility":99,"releases":[{"id":"0100C7600AF00000","region":null}]},{"id":"aef3d6ce-a659-413b-a8da-e56649cb9b99","directory":"tokyo-mirage-sessions-fe-encore","title":"Tokyo Mirage Sessions #FE Encore","compatibility":0,"releases":[{"id":"0100A9400C9C2000","region":null}]},{"id":"af0610ba-0132-4f6b-b773-6a4417b1a954","directory":"corpse-party-blood-drive","title":"Corpse Party: Blood Drive","compatibility":0,"releases":[{"id":"010016400B1FE000","region":null}]},{"id":"af0829bd-4239-4155-b919-a903a6330dff","directory":"escape-from-chernobyl","title":"Escape from Chernobyl","compatibility":99,"releases":[{"id":"0100FEF00F0AA000","region":null}]},{"id":"af09aa56-d65f-482d-ab28-230a7e9d8550","directory":"not-a-hero-super-snazzy-edition","title":"NOT A HERO: SUPER SNAZZY EDITION","compatibility":99,"releases":[{"id":"0100CB800B07E000","region":null}]},{"id":"af0ed3c4-ad2a-4afe-b8b9-ea012ed35bc8","directory":"battle-calculator","title":"Battle Calculator","compatibility":99,"releases":[{"id":"01007F7015B3A000","region":null}]},{"id":"af260b43-2e1d-4748-b497-77a71ecb8622","directory":"tiny-metal-full-metal-rumble","title":"TINY METAL: FULL METAL RUMBLE","compatibility":1,"releases":[{"id":"0100B1600DB3A000","region":null}]},{"id":"af50a11f-9fc1-4cb3-bae9-577f3898b8e0","directory":"fear-effect-sedna","title":"Fear Effect Sedna","compatibility":4,"releases":[{"id":"01005AC0068F6000","region":null}]},{"id":"af5b14fa-913d-4d9d-b4ad-5e80371de065","directory":"shred-2-freeride-mountainbiking","title":"Shred! 2 - Freeride Mountainbiking","compatibility":3,"releases":[{"id":"01003DD00BF0E000","region":null}]},{"id":"af5e22dc-30cd-46a9-9066-c987dbbc0ee3","directory":"naruto-ultimate-ninja-storm","title":"NARUTO: Ultimate Ninja STORM","compatibility":4,"releases":[{"id":"0100715007354000","region":null}]},{"id":"af6301cf-b031-47a2-be71-c600477af9d9","directory":"anima-gate-of-memories-the-nameless-chronicles","title":"Anima: Gate of Memories - The Nameless Chronicles","compatibility":1,"releases":[{"id":"01007A400B3F8000","region":null}]},{"id":"af6e2502-da5a-4f8c-8495-ce1b67147344","directory":"fatum-betula","title":"Fatum Betula","compatibility":99,"releases":[{"id":"0100E82013ED6000","region":null}]},{"id":"af6e3450-ecf1-4c4c-9228-a0bbc8e83434","directory":"theofil","title":"Theofil","compatibility":99,"releases":[{"id":"0100A0C01547A000","region":null}]},{"id":"af76b32f-8e7e-4359-81f2-21073bcd55df","directory":"red-game-without-a-great-name","title":"Red Game Without a Great Name","compatibility":99,"releases":[{"id":"01002290070E4000","region":null}]},{"id":"af788a0c-3308-4296-913d-3634395bc605","directory":"superepic-the-entertainment-war","title":"SuperEpic: The Entertainment War","compatibility":99,"releases":[{"id":"0100630010252000","region":null}]},{"id":"af7acf48-7a1c-488f-b66f-a71918443356","directory":"h-i-c-h","title":"H.I.C.H.","compatibility":99,"releases":[{"id":"010087C01606E000","region":null}]},{"id":"af7e2b7d-0a74-450e-9d3b-e3d6ec316a5a","directory":"bastion","title":"Bastion","compatibility":3,"releases":[{"id":"010038600B27E000","region":null}]},{"id":"af8264a8-99a0-44ad-a5aa-f49cc33b8518","directory":"jetsnguns-2","title":"Jets'n'Guns 2","compatibility":0,"releases":[{"id":"01000BF012920000","region":null}]},{"id":"af87b34e-7415-4dfd-a49e-5c6938e661f6","directory":"atelier-ryza-2-lost-legends-the-secret-fairy","title":"Atelier Ryza 2: Lost Legends & the Secret Fairy","compatibility":4,"releases":[{"id":"01009A9012022000","region":null}]},{"id":"af87ede1-6068-4134-8174-df004d6d841b","directory":"retro-space-fighter","title":"Retro Space Fighter","compatibility":99,"releases":[{"id":"01001FE0133FA000","region":null}]},{"id":"af951749-4069-4f15-ae94-73258d555370","directory":"out-of-line","title":"Out of Line","compatibility":99,"releases":[{"id":"0100E7601535E000","region":null}]},{"id":"af9d75ab-6dd8-4a6e-bcaa-fc9e60e02f82","directory":"arcade-archives-clu-clu-land","title":"Arcade Archives CLU CLU LAND","compatibility":4,"releases":[{"id":"0100EDC00E35A000","region":null}]},{"id":"afa74c40-4e83-4ca1-b5ba-cdb3750a4d8c","directory":"cat-girl-without-salad-amuse-bouche","title":"Cat Girl Without Salad: Amuse-Bouche","compatibility":2,"releases":[{"id":"010076000C86E000","region":null}]},{"id":"afafd99d-2749-4e7e-b0bb-e381f6b0b6ba","directory":"blackwind","title":"Blackwind","compatibility":99,"releases":[{"id":"0100262011494000","region":null}]},{"id":"afb43f5d-7d6d-488a-a031-a1bf5867f204","directory":"tanky-tanks","title":"Tanky Tanks","compatibility":99,"releases":[{"id":"01000D4011D10000","region":null}]},{"id":"afbc8814-10ac-4204-bf2c-586e53cfeb86","directory":"dungeon-bricker","title":"Dungeon Bricker","compatibility":1,"releases":[{"id":"010058E015B10000","region":null}]},{"id":"afdaa445-19df-4771-b9fa-c9194055d205","directory":"undead-horde","title":"Undead Horde","compatibility":99,"releases":[{"id":"01009B700D0B8000","region":null}]},{"id":"afdb5ab0-c8e5-4b5b-8f77-5758a096fba2","directory":"livestream-escape-from-hotel-izanami","title":"Livestream: Escape from Hotel Izanami","compatibility":0,"releases":[{"id":"0100E45014338000","region":null}]},{"id":"afe80d72-7373-4fb1-a1cc-be139421b581","directory":"picross-s2","title":"PICROSS S2","compatibility":2,"releases":[{"id":"0100C9600A88E000","region":null}]},{"id":"afe9b6f7-d48e-41e9-9dfb-f0357a91f8ec","directory":"unexplored","title":"UnExplored","compatibility":99,"releases":[{"id":"01007820096FC000","region":null}]},{"id":"aff1a15f-340f-43bc-b33f-8faf26319401","directory":"rooms-the-adventure-of-anne-and-george","title":"Rooms: The Adventure of Anne & George","compatibility":99,"releases":[{"id":"01001F100B586000","region":null}]},{"id":"aff622e0-b2aa-4629-8662-5d692b567641","directory":"tunnel-of-doom","title":"Tunnel of Doom","compatibility":99,"releases":[{"id":"01000CE01428C000","region":null}]},{"id":"aff67641-60f3-4b89-901b-1498e62939bb","directory":"duck-life-battle","title":"Duck Life: Battle","compatibility":99,"releases":[{"id":"010015C00E73C000","region":null}]},{"id":"b0064a27-8e32-42dd-bec6-bb174844cc5e","directory":"banner-of-the-maid","title":"Banner of the Maid","compatibility":1,"releases":[{"id":"010013C010C5C000","region":null}]},{"id":"b00c1378-b82c-4610-bbad-f4e2ac13df5c","directory":"towertale","title":"Towertale","compatibility":2,"releases":[{"id":"0100F6200F77E000","region":null}]},{"id":"b01f89a8-09b1-4e83-a120-d1f3f7c57ec7","directory":"revertia","title":"Revertia","compatibility":99,"releases":[{"id":"01005F300C1A8000","region":null}]},{"id":"b023e43b-fbce-4958-b36b-8978a7d1e789","directory":"dreamwalker","title":"Dreamwalker","compatibility":99,"releases":[{"id":"0100A7D00C694000","region":null}]},{"id":"b026b16b-adac-463d-8d91-c117b4adbb4a","directory":"madorica-real-estate","title":"Madorica Real Estate","compatibility":0,"releases":[{"id":"010099700BF10000","region":null}]},{"id":"b0338f72-1b2c-44e1-b6b1-1367a1764331","directory":"mercenary-kings-reloaded-edition","title":"Mercenary Kings: Reloaded Edition","compatibility":1,"releases":[{"id":"0100F900046C4000","region":null}]},{"id":"b033c88d-8873-4ec7-a441-ad334b73acee","directory":"phoenix-wright-ace-attorney-trilogy","title":"Phoenix Wright: Ace Attorney Trilogy","compatibility":1,"releases":[{"id":"0100CB000A142000","region":null}]},{"id":"b041b51c-5b04-4b55-af42-46ef5c8306a9","directory":"regency-solitaire","title":"Regency Solitaire","compatibility":99,"releases":[{"id":"0100BFB00D6E4000","region":null}]},{"id":"b047c920-cb5b-44ed-a243-02a04e82e229","directory":"star-story-the-horizon-escape","title":"Star Story: The Horizon Escape","compatibility":99,"releases":[{"id":"0100D7000AE6A000","region":null}]},{"id":"b04fdac4-0244-4e79-8b69-4c40fa83bc1a","directory":"frost","title":"Frost","compatibility":2,"releases":[{"id":"0100B5300B49A000","region":null}]},{"id":"b0533e27-572b-4b5a-b8a9-2aa4a7c2deda","directory":"outbreak-the-new-nightmare","title":"Outbreak: The New Nightmare","compatibility":99,"releases":[{"id":"0100B450130FC000","region":null}]},{"id":"b05bc235-4b15-4533-a3dd-0da2fd3b16c4","directory":"double-dragon-ii-the-revenge","title":"DOUBLE DRAGON Ⅱ: The Revenge","compatibility":0,"releases":[{"id":"0100DD900E498000","region":null}]},{"id":"b06d6b88-c2c1-4906-8855-ba9c6451bc46","directory":"bloons-td-5","title":"Bloons TD 5","compatibility":1,"releases":[{"id":"0100B8400A1C6000","region":null}]},{"id":"b07f1e9b-beb2-462c-a60f-99338f8f705a","directory":"hyper-sentinel","title":"Hyper Sentinel","compatibility":99,"releases":[{"id":"0100692003FCE000","region":null}]},{"id":"b0872603-c9c0-4610-a9c0-05c0ea2a1934","directory":"grisaia-phantom-trigger-01-02","title":"GRISAIA PHANTOM TRIGGER 01&02","compatibility":3,"releases":[{"id":"01009D7011B02000","region":null}]},{"id":"b0902cc9-4415-4126-bc8c-a7769f56ea91","directory":"northgard","title":"Northgard","compatibility":3,"releases":[{"id":"0100A9E00D97A000","region":null}]},{"id":"b0aa0d1c-dd75-4d39-80a5-7462541f7d29","directory":"port-royale-4","title":"Port Royale 4","compatibility":99,"releases":[{"id":"01007EF013CA0000","region":null}]},{"id":"b0b11e1f-f86c-4d7c-ba1c-2a5422e59e9c","directory":"fateextella-the-umbral-star","title":"Fate/EXTELLA: The Umbral Star","compatibility":1,"releases":[{"id":"010053E002EA2000","region":null}]},{"id":"b0b9655d-7a75-41c9-aca1-568e1a9d77f3","directory":"the-mysterious-case-of-dr-jekyll-and-mr-hyde","title":"The Mysterious Case of Dr.Jekyll and Mr.Hyde","compatibility":99,"releases":[{"id":"0100A4A014AF4000","region":null}]},{"id":"b0bd9d40-1a6a-4878-a558-3b1bc460d0d6","directory":"crypto-is-dead","title":"Crypto Is Dead","compatibility":99,"releases":[{"id":"010040A015C04000","region":null}]},{"id":"b0c089d3-9315-436b-8c2f-e7a779d96a51","directory":"yumeutsutsu-re-after","title":"Yumeutsutsu Re:After","compatibility":99,"releases":[{"id":"0100B56011502000","region":null}]},{"id":"b0ebc7e6-286e-4f66-94c6-bdc8bf7eac5e","directory":"gunbird2-for-nintendo-switch","title":"GUNBIRD2 for Nintendo Switch","compatibility":4,"releases":[{"id":"0100BCB00AE98000","region":null}]},{"id":"b0fc6fac-6c27-47cd-bf61-f40d99f0616c","directory":"space-marshals-2","title":"Space Marshals 2","compatibility":99,"releases":[{"id":"0100BDA014578000","region":null}]},{"id":"b10199a4-3019-48c9-8c25-cae8201753c8","directory":"dusk-82","title":"DUSK '82","compatibility":99,"releases":[{"id":"01002FB016784000","region":null}]},{"id":"b104da84-7e5b-4bce-99db-8d475a035b49","directory":"klaus","title":"-KLAUS-","compatibility":99,"releases":[{"id":"010099F00EF3E000","region":null}]},{"id":"b10a9ea2-5006-4789-aed3-848ca45feb31","directory":"timber-tennis-versus","title":"Timber Tennis: Versus","compatibility":99,"releases":[{"id":"010074500699A000","region":null}]},{"id":"b10b1f53-84af-41a2-8308-6aaf9827321d","directory":"demon-pit","title":"Demon Pit","compatibility":99,"releases":[{"id":"010084600F51C000","region":null}]},{"id":"b10d59bd-cc75-420e-8704-cd9cc6b756a0","directory":"super-holobunnies-pause-cafe","title":"Super Holobunnies: Pause Café","compatibility":99,"releases":[{"id":"0100B6900D776000","region":null}]},{"id":"b117fa91-3b3c-4294-8eb5-b2417386306e","directory":"abyss-the-wraiths-of-eden","title":"Abyss: The Wraiths of Eden","compatibility":99,"releases":[{"id":"010036F013A40000","region":null}]},{"id":"b11ccb63-c85e-497c-a9e2-a56c347e69cd","directory":"my-bewitching-perfume","title":"My Bewitching Perfume","compatibility":2,"releases":[{"id":"01002EC011DA6000","region":null}]},{"id":"b11d645b-4494-479e-a9a3-5b2e220bf147","directory":"mercenaries-wings-the-false-phoenix","title":"Mercenaries Wings: The False Phoenix","compatibility":99,"releases":[{"id":"010094500C216000","region":null}]},{"id":"b13960fd-49fc-4f40-948f-774ee90068bf","directory":"blackjack-hands","title":"Blackjack Hands","compatibility":99,"releases":[{"id":"010043A012A32000","region":null}]},{"id":"b147aeda-458b-404a-b4be-dbb2ed6916fc","directory":"murder-diaries-3-santas-trail-of-blood","title":"Murder Diaries 3 - Santa's Trail of Blood","compatibility":99,"releases":[{"id":"01001FE016B58000","region":null}]},{"id":"b150c5cb-2f58-444d-9b07-f558bf72defe","directory":"welcome-to-hanwell","title":"Welcome to Hanwell","compatibility":2,"releases":[{"id":"010096000EEBA000","region":null}]},{"id":"b165fb97-dbc9-4952-863c-4b80ecfe5415","directory":"this-is-the-police-2","title":"This is the Police 2","compatibility":2,"releases":[{"id":"01004C100A04C000","region":null}]},{"id":"b16da9c4-c772-4d09-bd14-f42bbc6c05bf","directory":"secret-files-sam-peters","title":"Secret Files Sam Peters","compatibility":99,"releases":[{"id":"01002B300ECA2000","region":null}]},{"id":"b188328d-ca1d-4e6f-9b8a-a1411d79d2da","directory":"aer-memories-of-old","title":"AER Memories of Old","compatibility":2,"releases":[{"id":"0100A0400DDE0000","region":null}]},{"id":"b1a1dd92-e828-4954-aa27-31847ccbb851","directory":"dont-knock-twice","title":"Don't Knock Twice","compatibility":1,"releases":[{"id":"0100E470067A8000","region":null}]},{"id":"b1a37445-1994-4f6e-bd27-e68fd5a8584d","directory":"ascendance","title":"ASCENDANCE","compatibility":99,"releases":[{"id":"0100C9F00AAEE000","region":null}]},{"id":"b1abb55e-5ffd-490f-a6fc-9bbe43f49867","directory":"mystic-pillars-a-story-based-puzzle-game","title":"Mystic Pillars: A Story-Based Puzzle Game","compatibility":99,"releases":[{"id":"0100B72010F86000","region":null}]},{"id":"b1c1f366-15e8-4ac7-8733-bc830038bfec","directory":"super-blackjack-battle-2-turbo-edition-the-card-warriors","title":"Super Blackjack Battle 2 Turbo Edition - The Card Warriors","compatibility":99,"releases":[{"id":"010093800A98C000","region":null}]},{"id":"b1c5d00a-fb53-4110-a693-eefdf94bc4c5","directory":"chrono-clash-fantasy-tactics","title":"CHRONO CLASH: Fantasy Tactics","compatibility":2,"releases":[{"id":"0100EA600B85E000","region":null}]},{"id":"b1d0d010-b638-4897-8b1e-d9887d0b5c5a","directory":"snk-gals-fighters","title":"SNK GALS' FIGHTERS","compatibility":0,"releases":[{"id":"01007EE011116000","region":null}]},{"id":"b1e2f692-ca68-4f8c-b446-172cbb06e0b7","directory":"the-last-friend","title":"The Last Friend","compatibility":99,"releases":[{"id":"010007901467A000","region":null}]},{"id":"b1ed2910-a991-45a4-b350-42705bf65b90","directory":"hive-jump","title":"Hive Jump","compatibility":99,"releases":[{"id":"01001B000CAF0000","region":null}]},{"id":"b1f76055-51b0-4f64-b72c-808dec531ee9","directory":"stardash","title":"Stardash","compatibility":99,"releases":[{"id":"01002100137BA000","region":null}]},{"id":"b1f7681f-41ec-4dd0-adb4-fb9e676243fe","directory":"star-crossed-myth-the-department-of-punishments-","title":"Star-Crossed Myth - The Department of Punishments -","compatibility":4,"releases":[{"id":"01008AF00EA12000","region":null}]},{"id":"b2075ca3-8cf0-41a0-abf8-35dcf945b302","directory":"gunlord-x","title":"Gunlord X","compatibility":0,"releases":[{"id":"0100EC200BFF8000","region":null}]},{"id":"b20b601c-744f-4f40-a94a-bf6e3d0d61d3","directory":"12-labours-of-hercules-iii-girl-power","title":"12 Labours of Hercules III: Girl Power","compatibility":99,"releases":[{"id":"0100613013814000","region":null}]},{"id":"b22858dd-820b-4d8a-bb48-db617bedcacf","directory":"gallic-wars-battle-simulator","title":"Gallic Wars: Battle Simulator","compatibility":99,"releases":[{"id":"0100804014922000","region":null}]},{"id":"b22d8190-5535-4607-997b-1fda9119bd64","directory":"final-sword","title":"FINAL SWORD","compatibility":99,"releases":[{"id":"01001900112B2000","region":null}]},{"id":"b231018f-767d-495c-b110-ecd58fa1b855","directory":"atelier-rorona-~the-alchemist-of-arland~-dx","title":"Atelier Rorona ~The Alchemist of Arland~ DX","compatibility":2,"releases":[{"id":"010088600C66E000","region":null}]},{"id":"b23be6e9-2315-4ffe-ba3d-947d7c147c7f","directory":"magazine-mogul","title":"Magazine Mogul","compatibility":99,"releases":[{"id":"01004A200E722000","region":null}]},{"id":"b241cbc3-673b-474f-b00e-da2c963795f1","directory":"grandmaster-sudoku","title":"Grandmaster Sudoku","compatibility":99,"releases":[{"id":"0100A720148A0000","region":null}]},{"id":"b24ba3a8-dd3a-49dc-a529-26024828df96","directory":"assault-android-cactus","title":"Assault Android Cactus+","compatibility":1,"releases":[{"id":"0100DF200B24C000","region":null}]},{"id":"b24d429c-f96a-407b-a202-16502cd1844d","directory":"wanna-survive","title":"Wanna Survive","compatibility":99,"releases":[{"id":"0100D67013910000","region":null}]},{"id":"b253f00b-971c-485e-99e1-7d4b15578feb","directory":"white-night","title":"White Night","compatibility":99,"releases":[{"id":"0100D99009734000","region":null}]},{"id":"b25a049c-9973-40ca-9165-2bba6365e7f6","directory":"kickerinho-world","title":"Kickerinho World","compatibility":99,"releases":[{"id":"0100C52013C3C000","region":null}]},{"id":"b25e80f1-ba5a-434b-b76b-84b064da50d2","directory":"wrestling-empire","title":"Wrestling Empire","compatibility":3,"releases":[{"id":"0100F2B013CA4000","region":null}]},{"id":"b263fe4d-7731-4cfb-a50c-4de0edb457a7","directory":"a-pretty-odd-bunny","title":"A Pretty Odd Bunny","compatibility":3,"releases":[{"id":"010046D01431C000","region":null}]},{"id":"b26bbfd9-2633-44af-baea-5db2ffed8456","directory":"mini-metro","title":"Mini Metro","compatibility":0,"releases":[{"id":"0100091008272000","region":null}]},{"id":"b2743a7f-d575-43e0-944b-d1e21c074cb6","directory":"lamentum","title":"Lamentum","compatibility":1,"releases":[{"id":"0100EC901551C000","region":null}]},{"id":"b27677c7-53cb-4c4f-ab4c-3366b030c93a","directory":"checkers","title":"Checkers","compatibility":99,"releases":[{"id":"01001B80124E4000","region":null}]},{"id":"b276afd4-3719-411e-93dd-657b6a3d40f6","directory":"star-hunter-dx","title":"Star Hunter DX","compatibility":0,"releases":[{"id":"01009170152E8000","region":null}]},{"id":"b2791d63-12f8-4199-9529-aee1ffb56a27","directory":"the-messenger","title":"The Messenger","compatibility":0,"releases":[{"id":"0100DC300AC78000","region":null}]},{"id":"b279a9e6-16cc-4b29-8a3e-e78cc5a4e769","directory":"the-pinball-arcade","title":"The Pinball Arcade","compatibility":99,"releases":[{"id":"0100CD300880E000","region":null}]},{"id":"b27e9b5a-74fd-41ee-bde5-1d083a31f9bc","directory":"arcade-archives-usaaf-mustang","title":"Arcade Archives USAAF MUSTANG","compatibility":1,"releases":[{"id":"0100B3D0156D4000","region":null}]},{"id":"b28ffff3-a37f-40b8-ad70-dde28624ce61","directory":"digimon-story-cyber-sleuth-complete-edition","title":"Digimon Story Cyber Sleuth: Complete Edition","compatibility":4,"releases":[{"id":"010014E00DB56000","region":null}]},{"id":"b2a6a4c8-fbdf-466a-927c-c64197b327a7","directory":"operation-hardcore","title":"Operation Hardcore","compatibility":99,"releases":[{"id":"010039C00A45C000","region":null}]},{"id":"b2a6a820-4355-49fa-a0b9-4defd57e67b4","directory":"suguru-nature","title":"Suguru Nature","compatibility":99,"releases":[{"id":"0100BF9012AC6000","region":null}]},{"id":"b2ad7821-2f72-425e-8c3a-a847d5654d3e","directory":"my-brother-rabbit","title":"My Brother Rabbit","compatibility":99,"releases":[{"id":"01006BE00B3C8000","region":null}]},{"id":"b2b7592a-377b-4843-b3d6-6d93563c12e0","directory":"arcade-archives-magmax","title":"Arcade Archives MAGMAX","compatibility":99,"releases":[{"id":"0100F9400982A000","region":null}]},{"id":"b2b9551c-44d8-4c5e-a9cb-caacc3434d50","directory":"dull-grey","title":"Dull Grey","compatibility":99,"releases":[{"id":"010068D0141F2000","region":null}]},{"id":"b2c57706-c929-4350-836f-f00f72ed4d8d","directory":"biped","title":"Biped","compatibility":0,"releases":[{"id":"010053B0117F8000","region":null}]},{"id":"b2db226b-2df9-43c3-97b9-c6c2b4de000a","directory":"gerty","title":"Gerty","compatibility":99,"releases":[{"id":"010024C01242E000","region":null}]},{"id":"b2de3c5f-9c04-41ac-8428-89c192d3f9f0","directory":"bonds-of-the-skies","title":"Bonds of the Skies","compatibility":5,"releases":[{"id":"01009AA00D49E000","region":null}]},{"id":"b3009e2d-30fc-42cf-83f0-1b555c53ede0","directory":"pilot-sports","title":"Pilot Sports","compatibility":99,"releases":[{"id":"01007A500B0B2000","region":null}]},{"id":"b3015032-52aa-4252-9c82-578569e9be7c","directory":"hyperparasite","title":"HyperParasite","compatibility":3,"releases":[{"id":"010061400ED90000","region":null}]},{"id":"b30d3751-01cd-401b-bdbd-c733c3e0eb89","directory":"tangle-tower","title":"Tangle Tower","compatibility":0,"releases":[{"id":"0100F7600F3B8000","region":null}]},{"id":"b32305e0-988c-4559-a6d8-7786bdc443e7","directory":"shovel-knight-treasure-trove","title":"Shovel Knight: Treasure Trove","compatibility":1,"releases":[{"id":"010057D0021E8000","region":null}]},{"id":"b3271834-b1cb-4f82-9f5a-a0617d9dc9f1","directory":"guns-gore-and-cannoli","title":"Guns, Gore and Cannoli","compatibility":2,"releases":[{"id":"0100934003BCC000","region":null}]},{"id":"b3286e43-da5e-4d6d-b5e3-aff5df5e6840","directory":"milkchoco","title":"MilkChoco","compatibility":99,"releases":[{"id":"010056D00B0F4000","region":null}]},{"id":"b3313a5e-372d-44bf-8924-f1609c2d2b11","directory":"arcade-archives-vandyke","title":"Arcade Archives VANDYKE","compatibility":99,"releases":[{"id":"01004CE0156D0000","region":null}]},{"id":"b33c5a11-95fe-407b-ab33-68ddb3d87822","directory":"sea-of-solitude-the-directors-cut","title":"Sea of Solitude: The Director's Cut","compatibility":3,"releases":[{"id":"0100AFE012BA2000","region":null}]},{"id":"b33c929a-a435-4213-bbfa-d982a665b78e","directory":"do-not-feed-the-monkeys","title":"Do Not Feed the Monkeys","compatibility":99,"releases":[{"id":"0100FE400EBBC000","region":null}]},{"id":"b34410a2-5fe3-4c1c-a8ee-7cb4f1429985","directory":"farm-mechanic-simulator","title":"Farm Mechanic Simulator","compatibility":99,"releases":[{"id":"01005C70122E0000","region":null}]},{"id":"b348094a-f823-4079-96d0-4f56b8a2227f","directory":"transcripted","title":"Transcripted","compatibility":99,"releases":[{"id":"010009F004E66000","region":null}]},{"id":"b34cb5ca-8bd3-42d5-96e9-7a7348ba95f2","directory":"five-dates","title":"Five Dates","compatibility":99,"releases":[{"id":"0100C7E0134BE000","region":null}]},{"id":"b3554996-4575-4db0-b916-b5d0973e7fc2","directory":"red-faction-guerrilla-re-mars-tered","title":"Red Faction Guerrilla Re-Mars-tered","compatibility":99,"releases":[{"id":"010075000C608000","region":null}]},{"id":"b359f810-9a6c-4c3d-8248-d958971fe3be","directory":"sniper-time-the-shooting-range","title":"Sniper Time: The Shooting Range","compatibility":99,"releases":[{"id":"01009BD0144EE000","region":null}]},{"id":"b35b6543-2f69-45a5-ad60-1c62137b3395","directory":"tumbleseed","title":"TumbleSeed","compatibility":1,"releases":[{"id":"01004B1001D22000","region":null}]},{"id":"b3628a18-69a9-4663-82a7-afebc3140f13","directory":"battleground","title":"Battleground","compatibility":99,"releases":[{"id":"0100650010DD4000","region":null}]},{"id":"b36aa837-9e9e-446e-95e6-47cbbf97dd90","directory":"jump-rope-challenge","title":"Jump Rope Challenge","compatibility":0,"releases":[{"id":"0100B9C012706000","region":null}]},{"id":"b399dcf2-e309-4afb-b12f-f56d3799fa75","directory":"pony-world-3","title":"Pony World 3","compatibility":99,"releases":[{"id":"0100345014C54000","region":null}]},{"id":"b39ce5ce-4e40-4247-8106-ebf46debba9c","directory":"into-the-breach","title":"Into the Breach","compatibility":2,"releases":[{"id":"010057D00B612000","region":null}]},{"id":"b3a08da3-651f-4b62-8d26-7d895a550404","directory":"monopoly-for-nintendo-switch-demo","title":"Monopoly for Nintendo Switch - Demo","compatibility":99,"releases":[{"id":"010095B00AA38000","region":null}]},{"id":"b3a27c87-dfff-47f8-acc1-fb35bfbad9bf","directory":"timothy-vs-the-aliens","title":"Timothy vs the Aliens","compatibility":99,"releases":[{"id":"0100A01011898000","region":null}]},{"id":"b3a699c5-fa26-43ab-b81c-cdf5524b8647","directory":"anshi","title":"AnShi","compatibility":99,"releases":[{"id":"01000FD00DF78000","region":null}]},{"id":"b3b0ba42-011f-4627-afcc-9442a25ad5fb","directory":"skypeace","title":"SKYPEACE","compatibility":99,"releases":[{"id":"010021A00ABEE000","region":null}]},{"id":"b3b59b8e-0f79-4a3d-a065-54c2d4755acf","directory":"deaths-gambit-afterlife","title":"Death's Gambit: Afterlife","compatibility":99,"releases":[{"id":"01006A0015812000","region":null}]},{"id":"b3b8ee07-c058-459c-a1dc-0b289f9c7c59","directory":"danmaku-unlimited-3","title":"Danmaku Unlimited 3","compatibility":3,"releases":[{"id":"0100417007F78000","region":null}]},{"id":"b3c80064-aff8-411b-a3a4-677e48a3be4e","directory":"splatoon-2-special-demo","title":"Splatoon™ 2 Special Demo","compatibility":99,"releases":[{"id":"01006BB00D45A000","region":null}]},{"id":"b3d0a8dd-21e6-4705-b9a3-780dc2c1e7d5","directory":"riddled-corpses-ex-demo","title":"Riddled Corpses EX Demo","compatibility":99,"releases":[{"id":"010001F00D9B8000","region":null}]},{"id":"b3d4ba16-df5b-44a9-ab33-b457b9fb51c9","directory":"agatha-christie-hercule-poirot-the-first-cases","title":"Agatha Christie - Hercule Poirot: The First Cases","compatibility":0,"releases":[{"id":"010000F012936000","region":null}]},{"id":"b3d90bfc-9e1b-45ff-8e1c-9c14d3eacd86","directory":"explosionade-dx","title":"Explosionade DX","compatibility":99,"releases":[{"id":"0100410012112000","region":null}]},{"id":"b3dc80de-f6cd-48db-a808-1d2a9af2afe9","directory":"fight-of-animals","title":"Fight of Animals","compatibility":0,"releases":[{"id":"010047E010B3E000","region":null}]},{"id":"b3df7897-9374-4fe7-8b35-c241c1d1a919","directory":"stardew-valley","title":"Stardew Valley","compatibility":2,"releases":[{"id":"0100E65002BB8000","region":null}]},{"id":"b3f060ca-35a6-40a7-b46b-8732815dc2e4","directory":"shephy","title":"Shephy","compatibility":99,"releases":[{"id":"010040B003E5E000","region":null}]},{"id":"b3f35b63-c982-47ba-9f1a-b7fbe07e1080","directory":"darts-up","title":"Darts Up","compatibility":2,"releases":[{"id":"0100BA500B660000","region":null}]},{"id":"b403c0c8-a53a-42ca-aa08-3fcb3a93dc39","directory":"real-time-battle-shogi-online","title":"Real Time Battle Shogi Online","compatibility":99,"releases":[{"id":"0100C9D00F264000","region":null}]},{"id":"b404edae-df0b-4e96-96a3-14852783f2d0","directory":"aca-neogeo-3-count-bout","title":"ACA NEOGEO 3 COUNT BOUT","compatibility":99,"releases":[{"id":"0100FC000AFC6000","region":null}]},{"id":"b404f8e4-6d7c-453e-bb8f-2fcbadef7be6","directory":"black-hole-demo","title":"Black Hole Demo","compatibility":99,"releases":[{"id":"01004BE00A682000","region":null}]},{"id":"b41a963e-a148-4bb2-b1d5-29fb65c6e17c","directory":"rento-fortune","title":"Rento Fortune","compatibility":99,"releases":[{"id":"01008EE00B22C000","region":null}]},{"id":"b41f061c-054e-4fb0-b30c-d42c8e678aad","directory":"back-in-1995","title":"Back in 1995","compatibility":4,"releases":[{"id":"010044F00BB80000","region":null}]},{"id":"b420372b-07bb-4abd-b191-58b5705dcb22","directory":"futoshiki-math","title":"Futoshiki Math","compatibility":99,"releases":[{"id":"0100C1A012AE0000","region":null}]},{"id":"b421a38e-b933-40d9-9050-457662ba23dc","directory":"bendy-and-the-ink-machine","title":"Bendy and the Ink Machine","compatibility":0,"releases":[{"id":"010074500BBC4000","region":null}]},{"id":"b42a9d36-d62d-4955-8e0f-67133fa64b50","directory":"ponpu","title":"Ponpu","compatibility":4,"releases":[{"id":"010096B01179A000","region":null}]},{"id":"b42d6858-f00b-4e6c-a09d-7f47ee92eafb","directory":"cow-catcher","title":"Cow Catcher","compatibility":99,"releases":[{"id":"01003E00151AE000","region":null}]},{"id":"b43aaec5-997c-4dd3-940e-a499bfaa8745","directory":"secret-files-tunguska","title":"Secret Files: Tunguska","compatibility":99,"releases":[{"id":"01006C800C4A6000","region":null}]},{"id":"b4414d26-cf88-4eb0-b777-44abb68af4a1","directory":"colorful-colore","title":"Colorful Colore","compatibility":99,"releases":[{"id":"0100F6D013CDC000","region":null}]},{"id":"b4515ad0-d34f-4aa4-b0ed-add4235010da","directory":"bossgard","title":"BOSSGARD","compatibility":99,"releases":[{"id":"010076F00EBE4000","region":null}]},{"id":"b4537a76-07e7-4979-87b9-ee7b10cd16e6","directory":"shikaku-shapes","title":"Shikaku Shapes","compatibility":99,"releases":[{"id":"010007D012AD0000","region":null}]},{"id":"b4563cc7-8a56-4a98-90f2-aed36c2c6c55","directory":"red-crow-mysteries-legion","title":"Red Crow Mysteries: Legion","compatibility":99,"releases":[{"id":"01006CB0124D0000","region":null}]},{"id":"b460b798-8ad2-4f4e-80c0-b7aabdbb0aa6","directory":"my-time-at-portia","title":"My Time at Portia","compatibility":3,"releases":[{"id":"0100E25008E68000","region":null}]},{"id":"b476ae29-3ebd-4d0e-854c-6d14e79bae71","directory":"mercenaries-saga-chronicles","title":"Mercenaries Saga Chronicles","compatibility":0,"releases":[{"id":"0100273008FBC000","region":null}]},{"id":"b4975f11-fc3e-4959-80be-5a28cf724a65","directory":"10-second-run-returns","title":"10 Second Run RETURNS","compatibility":4,"releases":[{"id":"01004D1007926000","region":null}]},{"id":"b4980de7-fb38-43ff-b5ed-1437cbb8b454","directory":"super-hoops","title":"Super Hoops","compatibility":99,"releases":[{"id":"01004D6015950000","region":null}]},{"id":"b4a87f58-ba07-4f92-982d-7c7258781313","directory":"blaze-and-the-monster-machines-axle-city-racers","title":"Blaze and the Monster Machines: Axle City Racers","compatibility":1,"releases":[{"id":"010096601362C000","region":null}]},{"id":"b4ad0890-8ebe-48eb-abd8-8d366c1fa27e","directory":"sakura-succubus-3","title":"Sakura Succubus 3","compatibility":99,"releases":[{"id":"0100FC10150E0000","region":null}]},{"id":"b4b14abf-4d16-4a7d-b48c-7c8d9c8ba9bc","directory":"dynamite-fishing-world-games","title":"Dynamite Fishing - World Games","compatibility":1,"releases":[{"id":"01003A000976E000","region":null}]},{"id":"b4bac280-5cfc-48c8-8057-cba84dd6cf33","directory":"horned-knight","title":"Horned Knight","compatibility":99,"releases":[{"id":"01002FA014514000","region":null}]},{"id":"b4be1bcc-b817-4bb8-adbb-d3b69757ac50","directory":"dont-die-mr-robot","title":"Don't Die, Mr Robot!","compatibility":5,"releases":[{"id":"010007200AC0E000","region":null}]},{"id":"b4cbb269-c23b-4bd9-9f33-cf2c5f67f0c7","directory":"gorsd","title":"GORSD","compatibility":1,"releases":[{"id":"01000C7003FE8000","region":null}]},{"id":"b4d6a7c2-dc19-47d3-994b-44be15cd5632","directory":"eqqo","title":"EQQO","compatibility":99,"releases":[{"id":"0100E95010058000","region":null}]},{"id":"b4dfe906-8622-4e47-9383-1386cf7d8b78","directory":"legal-dungeon","title":"Legal Dungeon","compatibility":99,"releases":[{"id":"01000AA013BFE000","region":null}]},{"id":"b4eba8df-011c-4c69-8cfc-5a3caa1e2677","directory":"hover","title":"Hover","compatibility":99,"releases":[{"id":"0100F6800910A000","region":null}]},{"id":"b4ee7666-513a-49e9-98f5-59ab49abcc8b","directory":"skelly-selest","title":"Skelly Selest","compatibility":0,"releases":[{"id":"01006C000DC8A000","region":null}]},{"id":"b4f1950a-2e97-44ef-bb54-525d81d218bf","directory":"revenant-saga","title":"Revenant Saga","compatibility":3,"releases":[{"id":"0100AA2006510000","region":null}]},{"id":"b4f9cb20-3eba-463f-be12-0d0fa11864ad","directory":"the-coma-recut","title":"The Coma: Recut","compatibility":2,"releases":[{"id":"010033100691A000","region":null}]},{"id":"b4feb997-8f05-4751-b650-4cd09f373847","directory":"penny-punching-princess","title":"Penny-Punching Princess","compatibility":1,"releases":[{"id":"0100C510049E0000","region":null}]},{"id":"b503ed03-f3ca-4916-9786-43a43fdcd6ff","directory":"airheart-tales-of-broken-wings","title":"Airheart - Tales of broken Wings","compatibility":99,"releases":[{"id":"01003DD00BFEE000","region":null}]},{"id":"b50b0566-ba15-438b-a587-a6e6f52c67b0","directory":"sleep-tight","title":"Sleep Tight","compatibility":0,"releases":[{"id":"01004AC0081DC000","region":null}]},{"id":"b514e6e1-211f-4838-abcc-88fe2894af83","directory":"team-sonic-racing","title":"Team Sonic Racing","compatibility":3,"releases":[{"id":"010092B0091D0000","region":null}]},{"id":"b523946e-100e-43e1-a50d-1d67028d4cbb","directory":"ludomania","title":"Ludomania","compatibility":99,"releases":[{"id":"0100F0300B7BE000","region":null}]},{"id":"b52b7f79-efa0-4201-847a-868b5aa4641c","directory":"connectank","title":"ConnecTank™","compatibility":99,"releases":[{"id":"0100436013EF6000","region":null}]},{"id":"b5314c2a-b548-49db-9b68-672a99fb2301","directory":"rock-of-ages-2-bigger-and-boulder","title":"Rock of Ages 2: Bigger & Boulder","compatibility":99,"releases":[{"id":"010091D00BE38000","region":null}]},{"id":"b53e84ac-c1be-44d0-883f-adf007286d15","directory":"woodcutter","title":"Woodcutter","compatibility":99,"releases":[{"id":"0100363015476000","region":null}]},{"id":"b53e8bf3-fe90-4031-b983-a53cf6ad3f79","directory":"isolation-story","title":"Isolation Story","compatibility":99,"releases":[{"id":"0100924013162000","region":null}]},{"id":"b54730d4-1151-4f90-a145-ce23a29cff6f","directory":"deiland-pocket-planet-edition","title":"Deiland: Pocket Planet Edition","compatibility":1,"releases":[{"id":"0100D150131F8000","region":null}]},{"id":"b54dbcc4-166b-45b0-95cc-10c8871bfbb8","directory":"firework","title":"Firework","compatibility":99,"releases":[{"id":"0100BA9012B36000","region":null}]},{"id":"b561bf6e-a04b-4063-81d7-c7cca040fe21","directory":"project-nimbus-complete-edition","title":"Project Nimbus: Complete Edition","compatibility":99,"releases":[{"id":"0100ACE00DAB6000","region":null}]},{"id":"b5790399-6086-44a0-bee0-9688274ec347","directory":"risky-rescue","title":"Risky Rescue","compatibility":99,"releases":[{"id":"01005AF00CCA2000","region":null}]},{"id":"b5853cd7-1129-423b-b557-8f96bd9d7c6d","directory":"mario-tennis-aces","title":"Mario Tennis Aces","compatibility":0,"releases":[{"id":"0100BDE00862A000","region":null}]},{"id":"b5934943-0be9-4f1d-9ed3-b042ee333723","directory":"boss-rush-mythology","title":"Boss Rush: Mythology","compatibility":99,"releases":[{"id":"0100AB9013564000","region":null}]},{"id":"b5942bc8-1016-4f86-a4f8-ec78b72bf34a","directory":"lily-of-the-hollow-resurrection","title":"Lily of the Hollow - Resurrection","compatibility":99,"releases":[{"id":"01005D7013B0C000","region":null}]},{"id":"b599b00f-2ded-4ce2-bba5-993ff31c521f","directory":"dice-legacy","title":"Dice Legacy","compatibility":99,"releases":[{"id":"01002E4013EAE000","region":null}]},{"id":"b59d8820-b2be-4202-ad08-3a691f957bba","directory":"buried-stars","title":"Buried Stars","compatibility":1,"releases":[{"id":"010078C00DB40000","region":null}]},{"id":"b5a753ca-62e9-4753-b241-6baf7c08e013","directory":"portal-dogs","title":"Portal Dogs","compatibility":99,"releases":[{"id":"010050D00FE0C000","region":null}]},{"id":"b5b6e63b-26c5-462c-8b42-552fe9d3ed81","directory":"popeye","title":"Popeye","compatibility":99,"releases":[{"id":"010058E014EBC000","region":null}]},{"id":"b5b8c84a-2731-4f30-8bca-bd209b44d86f","directory":"blazing-beaks","title":"Blazing Beaks","compatibility":2,"releases":[{"id":"010021A00DE54000","region":null}]},{"id":"b5bba3a8-af6e-41e3-83f5-1da7356ace2d","directory":"willy-jetman-astromonkeys-revenge","title":"Willy Jetman: Astromonkey's Revenge","compatibility":99,"releases":[{"id":"010000100FB62000","region":null}]},{"id":"b5be1eba-b3cd-4757-9d4c-dd9fc28961c4","directory":"dreamgallery","title":"DreamGallery","compatibility":2,"releases":[{"id":"0100D560106E0000","region":null}]},{"id":"b5c14d52-8d94-4304-94a1-1f604bff1ad8","directory":"moorhuhn-knights-and-castles","title":"Moorhuhn Knights & Castles","compatibility":99,"releases":[{"id":"010030800841A000","region":null}]},{"id":"b5c439c3-d905-4557-adc0-41d59a3169c4","directory":"olivers-adventures-in-the-fairyland","title":"Oliver's Adventures in the Fairyland","compatibility":99,"releases":[{"id":"0100E4600F188000","region":null}]},{"id":"b5c766a0-0398-48c9-b71b-769cafa61796","directory":"selfy-collection-the-dream-fashion-stylist","title":"SELFY COLLECTION The dream fashion stylist!","compatibility":99,"releases":[{"id":"010044700FB46000","region":null}]},{"id":"b5cfd167-7173-497f-bead-97c725f37f79","directory":"the-pillar-puzzle-escape","title":"The Pillar: Puzzle Escape","compatibility":99,"releases":[{"id":"0100B80012C1E000","region":null}]},{"id":"b5d79071-7c47-4940-880c-923b143b5a2b","directory":"bringit-to-mom","title":"BringIt to MOM","compatibility":99,"releases":[{"id":"0100D590120D6000","region":null}]},{"id":"b5da712f-e00d-450c-b936-7d17451232cd","directory":"tetris-99","title":"Tetris 99","compatibility":3,"releases":[{"id":"010040600C5CE000","region":null}]},{"id":"b5da9b21-a541-4b06-980f-376097a4b8f6","directory":"super-crush-ko","title":"Super Crush KO","compatibility":0,"releases":[{"id":"010030900D9A6000","region":null}]},{"id":"b5db415b-c964-4001-849a-84c08b9a2d38","directory":"runestone-keeper","title":"Runestone Keeper","compatibility":99,"releases":[{"id":"010032200EC9C000","region":null}]},{"id":"b5ef9a24-501f-43a0-bc5e-743ddc4b6d19","directory":"earthworms","title":"Earthworms","compatibility":99,"releases":[{"id":"0100DCE00B756000","region":null}]},{"id":"b5fd69a3-8170-4409-922b-ef953c51f548","directory":"monochrome-world","title":"Monochrome World","compatibility":99,"releases":[{"id":"0100B5E0113F2000","region":null}]},{"id":"b6255665-baa9-4d74-8e28-f7a2f7c084a9","directory":"kine","title":"Kine","compatibility":99,"releases":[{"id":"010089000F0E8000","region":null}]},{"id":"b6429ba0-7a11-4c8f-b39b-0e9492fcd2f8","directory":"mancala-classic-board-game","title":"Mancala Classic Board Game","compatibility":99,"releases":[{"id":"0100598014310000","region":null}]},{"id":"b6447469-c5ba-482f-8e7a-821f63556564","directory":"kawaii-deathu-desu","title":"Kawaii Deathu Desu","compatibility":0,"releases":[{"id":"0100C5F00F446000","region":null}]},{"id":"b646d308-fdae-4713-8bf4-9ec187804ba9","directory":"profane","title":"Profane","compatibility":1,"releases":[{"id":"0100AB700FE02000","region":null}]},{"id":"b64826cf-c6c5-4cc1-a6a8-01058bf7bd32","directory":"super-hydorah","title":"Super Hydorah","compatibility":1,"releases":[{"id":"010099F00B374000","region":null}]},{"id":"b659f504-5e46-4d30-b8e5-47dbbe395398","directory":"maiden-spell","title":"Maiden & Spell","compatibility":99,"releases":[{"id":"01004FE014198000","region":null}]},{"id":"b66ed656-4a5f-4a71-b3c1-75431f3ea7d8","directory":"jolt-family-robot-racer","title":"Jolt Family Robot Racer","compatibility":99,"releases":[{"id":"01002A0009E18000","region":null}]},{"id":"b6706ffd-045f-4f78-bc92-32c7544702f1","directory":"wax-museum","title":"Wax Museum","compatibility":0,"releases":[{"id":"0100326016A6E000","region":null}]},{"id":"b67a76c7-30be-4cd9-9678-501cbbd17b91","directory":"sedomairi","title":"SEDOMAIRI","compatibility":99,"releases":[{"id":"01008CD01625C000","region":null}]},{"id":"b67b5945-c844-43b4-9022-284bf127c3b2","directory":"pico-park","title":"PICO PARK","compatibility":3,"releases":[{"id":"01004EA00DF70000","region":null}]},{"id":"b687f44d-e2f6-4e99-8928-26fe603997bc","directory":"office-lovers","title":"Office Lovers","compatibility":99,"releases":[{"id":"01003EA01290A000","region":null}]},{"id":"b68bfbc3-1398-41cf-a000-0018cbf0507c","directory":"bit-trip-core","title":"BIT.TRIP CORE","compatibility":99,"releases":[{"id":"0100016012D38000","region":null}]},{"id":"b691adb7-f4de-4595-b184-aa6761732863","directory":"tinboy","title":"Tinboy","compatibility":99,"releases":[{"id":"01001CA00C514000","region":null}]},{"id":"b69c41cc-06c8-452c-a6ea-dfb1d382bbc9","directory":"smashing-the-battle-ghost-soul","title":"SMASHING THE BATTLE GHOST SOUL","compatibility":0,"releases":[{"id":"010089B0155F8000","region":null}]},{"id":"b69d42c3-dd12-4478-ab11-575307e339a5","directory":"moon","title":"moon","compatibility":99,"releases":[{"id":"0100E1800EFCE000","region":null}]},{"id":"b6b3dd1e-110f-43d8-844c-ff016e5afadb","directory":"arcade-archives-tecmo-bowl","title":"Arcade Archives TECMO BOWL","compatibility":99,"releases":[{"id":"010064A00BE0E000","region":null}]},{"id":"b6bde324-8ea7-4fb8-b6bc-c07741c7f14b","directory":"good-job","title":"Good Job!™","compatibility":1,"releases":[{"id":"0100B0500FE4E000","region":null}]},{"id":"b6bf4aa8-585e-4e61-b2ee-6c4391bd2b42","directory":"some-distant-memory","title":"Some Distant Memory","compatibility":99,"releases":[{"id":"01009EE00E91E000","region":null}]},{"id":"b6cb913f-8da3-40d3-89bb-aad693fc91d6","directory":"spheroids","title":"Spheroids","compatibility":99,"releases":[{"id":"0100FD200A45A000","region":null}]},{"id":"b6d8c48f-8052-4573-ada6-71ffbc56667e","directory":"kairobotica","title":"Kairobotica","compatibility":99,"releases":[{"id":"0100D5F00EC52000","region":null}]},{"id":"b6e18962-0d08-46d0-9794-985a2a111ec1","directory":"retimed","title":"Retimed","compatibility":99,"releases":[{"id":"010086E00BCB2000","region":null}]},{"id":"b6e2526d-5b77-456e-90d7-9b1713b3499d","directory":"runner3","title":"Runner3","compatibility":99,"releases":[{"id":"01004B4002B6A000","region":null}]},{"id":"b6e83323-6bcf-46b0-9004-90cc627d10d2","directory":"smash-boats","title":"Smash Boats","compatibility":0,"releases":[{"id":"0100CFD00F89C000","region":null}]},{"id":"b6f74d57-a408-466b-b0b0-2b7b3b41d9bd","directory":"mitsurugi-kamui-hikae","title":"Mitsurugi Kamui Hikae","compatibility":99,"releases":[{"id":"010045000BF6A000","region":null}]},{"id":"b6fc5329-2d93-4042-81c2-7759e138a147","directory":"our-flick-erasers","title":"Our Flick Erasers","compatibility":99,"releases":[{"id":"01006D900EE58000","region":null}]},{"id":"b70d3412-b0a7-4bb2-8d32-a33938b029b9","directory":"kirakira-stars-idol-project-nagisa","title":"Kirakira stars idol project Nagisa","compatibility":99,"releases":[{"id":"01002B101530A000","region":null}]},{"id":"b7184f44-4f08-40e4-b47e-cb4d3c19b225","directory":"claws-of-furry","title":"Claws of Furry","compatibility":99,"releases":[{"id":"0100AE9008744000","region":null}]},{"id":"b71bbf4e-2b14-439c-a9d6-6d14fccf03b4","directory":"gold-digger","title":"Gold Digger","compatibility":99,"releases":[{"id":"010076C014630000","region":null}]},{"id":"b72f35b9-1fb3-43bd-bd85-51ab89fb5e97","directory":"night-flight","title":"Night Flight","compatibility":99,"releases":[{"id":"010096C01515C000","region":null}]},{"id":"b742d05f-d69b-4465-9756-ffedc4d097cd","directory":"ganbare-super-strikers","title":"Ganbare! Super Strikers","compatibility":99,"releases":[{"id":"0100A6400F29A000","region":null}]},{"id":"b76342d2-be74-4706-abdc-9c62e89c63f5","directory":"bullet-beat","title":"Bullet Beat","compatibility":99,"releases":[{"id":"01007310128EC000","region":null}]},{"id":"b7a0fb53-eaa1-40a5-baa9-cb61c939ba99","directory":"knights-retreat","title":"Knight's Retreat","compatibility":99,"releases":[{"id":"0100554012A34000","region":null}]},{"id":"b7ad024f-ce9e-40c4-a119-461a46f5be8e","directory":"swords-and-soldiers-2-shawarmageddon","title":"Swords and Soldiers 2 Shawarmageddon","compatibility":99,"releases":[{"id":"010059D00BCAE000","region":null}]},{"id":"b7b097c3-70be-46f1-9ea1-8f3f5e7e072d","directory":"super-phantom-cat-remake","title":"Super Phantom Cat: Remake","compatibility":99,"releases":[{"id":"0100C9A00D124000","region":null}]},{"id":"b7b4ce92-f1ee-4a20-ade8-c4ce17e5efc6","directory":"what-the-fork","title":"What The Fork","compatibility":99,"releases":[{"id":"0100DB5012366000","region":null}]},{"id":"b7c0e917-984a-4a01-8a9a-ee748ce41a8f","directory":"sudoku-relax-3-autumn-leaves","title":"Sudoku Relax 3 Autumn Leaves","compatibility":99,"releases":[{"id":"0100D6100FF44000","region":null}]},{"id":"b7ca93cc-bf6e-40e7-9189-c555b373714e","directory":"hob-the-definitive-edition","title":"Hob: The Definitive Edition","compatibility":1,"releases":[{"id":"01004B100A5CC000","region":null}]},{"id":"b7d5789e-58df-46c7-9ad3-7bbf6d957d50","directory":"pga-tour-2k21","title":"PGA TOUR 2K21","compatibility":4,"releases":[{"id":"010053401147C000","region":null}]},{"id":"b7d65ee1-4da6-4013-a2ad-bbfbbe536928","directory":"hells-high-harmonizers","title":"Hell's High Harmonizers","compatibility":99,"releases":[{"id":"0100BD3010934000","region":null}]},{"id":"b7ddef9b-58e4-485b-9624-ea09112daa0e","directory":"lyrica2-stars-align","title":"Lyrica2 Stars Align","compatibility":99,"releases":[{"id":"0100A9C0134DE000","region":null}]},{"id":"b7e2a9b1-3bbc-4e4f-91fd-41a7abb02daf","directory":"arcade-archives-gradius-ii","title":"Arcade Archives GRADIUS II","compatibility":1,"releases":[{"id":"0100721012F9C000","region":null}]},{"id":"b7e319f4-1a81-486e-bacd-50a58c0436a5","directory":"beholder-complete-edition","title":"Beholder: Complete Edition","compatibility":0,"releases":[{"id":"0100D1300C1EA000","region":null}]},{"id":"b7e6f0ca-a590-42f5-b55e-42e3764d2b5f","directory":"black-rainbow","title":"Black Rainbow","compatibility":5,"releases":[{"id":"0100236011A42000","region":null}]},{"id":"b7e7a5bc-221b-47db-b706-d21058e8b166","directory":"legend-of-kay-anniversary","title":"Legend of Kay Anniversary","compatibility":2,"releases":[{"id":"01002DB007A96000","region":null}]},{"id":"b7eaecb5-5345-4795-b7a6-6c34b7db1ece","directory":"dead-dust","title":"Dead Dust","compatibility":99,"releases":[{"id":"010096C014BB2000","region":null}]},{"id":"b7ed176a-fc86-4f92-a254-e777afd236a5","directory":"lyrica","title":"Lyrica","compatibility":99,"releases":[{"id":"010008000C8F6000","region":null}]},{"id":"b7fe945c-0ddd-4dca-9e00-6395aaca8d4b","directory":"shoot-1up-dx","title":"Shoot 1UP DX","compatibility":99,"releases":[{"id":"0100CCE00DDB6000","region":null}]},{"id":"b7ff44ce-98f3-44e1-85df-e59e312fc336","directory":"uncanny-valley","title":"Uncanny Valley","compatibility":5,"releases":[{"id":"01002D900C5E4000","region":null}]},{"id":"b801f1ca-8fe3-4e00-805e-deef778dd836","directory":"sid-meiers-civilization-vi","title":"Sid Meier’s Civilization VI","compatibility":4,"releases":[{"id":"010044500C182000","region":null}]},{"id":"b80aeecf-2698-46aa-bfd9-bd0c7312acb6","directory":"creepy-brawlers","title":"Creepy Brawlers","compatibility":99,"releases":[{"id":"0100BBB00F6B2000","region":null}]},{"id":"b81c803c-c23f-4643-9c14-7af5ff6dfccd","directory":"monobot","title":"MONOBOT","compatibility":99,"releases":[{"id":"01005E201530E000","region":null}]},{"id":"b81d4f6a-2928-45d9-b38e-b4e6d9807365","directory":"tyd-wag-vir-niemand","title":"Tyd wag vir Niemand","compatibility":99,"releases":[{"id":"010073A00C4B2000","region":null}]},{"id":"b83d1d0f-25b3-40f5-97ca-fbfac34cb1b4","directory":"fairune-collection","title":"Fairune Collection","compatibility":1,"releases":[{"id":"01008A6009758000","region":null}]},{"id":"b83d7b95-b7b5-4d31-963a-8f43e094454b","directory":"just-dance-r-2021","title":"Just Dance® 2021","compatibility":1,"releases":[{"id":"0100BF9011B52000","region":null}]},{"id":"b845461e-05a9-41e1-9688-f62e904d93a2","directory":"3d-air-hockey","title":"3D Air Hockey","compatibility":0,"releases":[{"id":"01000220158C4000","region":null}]},{"id":"b849b91c-5cf6-4486-a0cd-095cebb2c2d7","directory":"plantera-deluxe","title":"Plantera Deluxe","compatibility":99,"releases":[{"id":"010087000428E000","region":null}]},{"id":"b84a0fc4-2dd5-4205-bd44-3a4bd24de9ef","directory":"deep-ones","title":"Deep Ones","compatibility":4,"releases":[{"id":"0100FAF009562000","region":null}]},{"id":"b857f78e-840b-4e8e-9a66-f0087f61efcd","directory":"arcade-archives-solomons-key","title":"Arcade Archives Solomon's Key","compatibility":4,"releases":[{"id":"01008C900982E000","region":null}]},{"id":"b8751e50-79e7-4358-946c-28b8295badf7","directory":"cattch","title":"CATTCH","compatibility":0,"releases":[{"id":"01009F0013A42000","region":null}]},{"id":"b8780a7b-2cd9-4660-be2b-92852c7ac1fe","directory":"the-darkside-detective","title":"The Darkside Detective","compatibility":99,"releases":[{"id":"01003DE00918E000","region":null}]},{"id":"b8922bbf-98b2-4e1e-b039-d83d1e000cf5","directory":"kasiori","title":"KASIORI","compatibility":99,"releases":[{"id":"0100E75014D7A000","region":null}]},{"id":"b89aa8ad-0523-42a7-8fc3-81b672476a10","directory":"killallzombies","title":"#KILLALLZOMBIES","compatibility":1,"releases":[{"id":"01004D100C510000","region":null}]},{"id":"b8b18081-37be-41bb-8f45-f087800ab8d0","directory":"alders-blood","title":"Alder's Blood","compatibility":99,"releases":[{"id":"0100D740110C0000","region":null}]},{"id":"b8b7550a-9217-4549-a3c7-952170fdc716","directory":"mighty-gunvolt-burst","title":"MIGHTY GUNVOLT BURST","compatibility":1,"releases":[{"id":"01000E2003FA0000","region":null}]},{"id":"b8bd5ff4-11b4-4fda-815e-6c057728947b","directory":"toree-3d","title":"Toree 3D","compatibility":99,"releases":[{"id":"0100E9701479E000","region":null}]},{"id":"b8c73bb7-3350-4bbb-9866-2ea5c1bfbe0a","directory":"minigolf-tour","title":"MiniGolf Tour","compatibility":1,"releases":[{"id":"01000D50149D8000","region":null}]},{"id":"b8ce149d-10f9-4c2f-b3cd-00fe69efb9c5","directory":"animated-jigsaws-japanese-women","title":"Animated Jigsaws: Japanese Women","compatibility":99,"releases":[{"id":"01002BB00C01E000","region":null}]},{"id":"b8d47a61-a0bd-49dc-aa4d-65925e921522","directory":"the-battle-of-mahjong","title":"The Battle Of Mahjong","compatibility":99,"releases":[{"id":"0100AC300BBE4000","region":null}]},{"id":"b8ea2916-3da3-4b2c-ab2c-ef4bc88f5b9b","directory":"skullgirls-2nd-encore","title":"Skullgirls 2nd Encore","compatibility":4,"releases":[{"id":"010046B00DE62000","region":null}]},{"id":"b8ed8ec0-c821-4372-aed9-449816fe2a87","directory":"wonder-boy-returns-remix","title":"WONDER BOY RETURNS REMIX","compatibility":0,"releases":[{"id":"010069B00D9FE000","region":null}]},{"id":"b8f826d8-f0ae-4182-907d-43fa46bf52b5","directory":"help-will-come-tomorrow","title":"Help Will Come Tomorrow","compatibility":1,"releases":[{"id":"0100F130115EC000","region":null}]},{"id":"b8fcb021-fd22-4186-a2c8-d95f04dfacb2","directory":"flatland-vol-1","title":"FLATLAND Vol.1","compatibility":4,"releases":[{"id":"0100DBF011922000","region":null}]},{"id":"b9069018-c2c9-47c5-a75d-7f22373903fa","directory":"iron-snout","title":"Iron Snout","compatibility":99,"releases":[{"id":"010010200D09A000","region":null}]},{"id":"b90b1520-0a6a-4728-8f22-504b0a42076a","directory":"cathedral","title":"Cathedral","compatibility":3,"releases":[{"id":"0100BEB01327A000","region":null}]},{"id":"b90fe7c7-7f77-4715-ad7e-77899f6bf531","directory":"uglydolls-an-imperfect-adventure","title":"UglyDolls: An Imperfect Adventure","compatibility":99,"releases":[{"id":"010079000B56C000","region":null}]},{"id":"b9235fb9-411e-4815-87de-500b9a4e7fbc","directory":"breakpoint","title":"Breakpoint","compatibility":0,"releases":[{"id":"01009380114E0000","region":null}]},{"id":"b929966a-3f59-4d39-89df-1ac1e9417580","directory":"so-many-me-extended-edition","title":"So Many Me: Extended Edition","compatibility":99,"releases":[{"id":"010062C00F558000","region":null}]},{"id":"b92d59a1-7854-4fa6-945b-cb771fd45ad7","directory":"sector-781","title":"Sector 781","compatibility":99,"releases":[{"id":"0100245013EA4000","region":null}]},{"id":"b92ec1de-32bf-4352-acbe-8a9acdc87333","directory":"songs-for-a-hero-definitive-edition","title":"Songs for a Hero: Definitive Edition","compatibility":1,"releases":[{"id":"0100802012890000","region":null}]},{"id":"b938e2cf-44c9-41b1-b6bd-138c52ee2084","directory":"arcade-archives-frogger","title":"Arcade Archives FROGGER","compatibility":99,"releases":[{"id":"010047100F978000","region":null}]},{"id":"b9392b68-8999-4bdb-bdcf-f1f852c53bb2","directory":"can-androids-pray-blue","title":"CAN ANDROIDS PRAY:BLUE","compatibility":99,"releases":[{"id":"010049101124C000","region":null}]},{"id":"b9602f9a-f256-4a65-ad2a-5ec3213857c5","directory":"dragodino","title":"DragoDino","compatibility":99,"releases":[{"id":"0100566009238000","region":null}]},{"id":"b97b6d76-1861-4791-a51f-26389cacd62e","directory":"mad-carnage","title":"Mad Carnage","compatibility":0,"releases":[{"id":"010024A009428000","region":null}]},{"id":"b99ec87a-e651-4a55-abe7-72d9daf06142","directory":"physical-contact-picture-place","title":"Physical Contact: Picture Place","compatibility":99,"releases":[{"id":"0100AAD004358000","region":null}]},{"id":"b9ac2c92-eb07-42fe-b808-acdd261b751f","directory":"shantae","title":"Shantae","compatibility":4,"releases":[{"id":"0100430013120000","region":null}]},{"id":"b9b64e10-d7aa-4fae-967e-0e0c47745740","directory":"fault-milestone-one","title":"fault - milestone one","compatibility":99,"releases":[{"id":"0100F6200B7D4000","region":null}]},{"id":"b9ba13a9-1e29-457c-b91c-9391393d74ad","directory":"not-not-a-brain-buster","title":"Not Not - A Brain Buster","compatibility":0,"releases":[{"id":"01004D500D9BE000","region":null}]},{"id":"b9bb5eb9-8e43-4540-bdde-14bb746cc75a","directory":"strike-ten-pin-bowling","title":"Strike! Ten Pin Bowling","compatibility":99,"releases":[{"id":"0100B080104BC000","region":null}]},{"id":"b9bc639d-d898-46fb-ac32-bb080ff018c8","directory":"aca-neogeo-kizuna-encounter","title":"ACA NEOGEO KIZUNA ENCOUNTER","compatibility":5,"releases":[{"id":"0100A2200AFE2000","region":null}]},{"id":"b9c4e264-1496-4e12-92b7-bd4f7c3261b1","directory":"just-black-jack","title":"Just Black Jack","compatibility":99,"releases":[{"id":"0100EB700EF74000","region":null}]},{"id":"b9c76a04-8bdc-4166-a704-6d735637186e","directory":"necroworm","title":"NecroWorm","compatibility":99,"releases":[{"id":"0100A35011406000","region":null}]},{"id":"b9db9e46-8640-43f6-b5cf-5af5c6f66836","directory":"burnstar","title":"Burnstar","compatibility":99,"releases":[{"id":"010044D00A770000","region":null}]},{"id":"b9e534c9-8c1d-4159-ab4d-c3215de14bb3","directory":"x-morph-defense-demo","title":"X-Morph: Defense Demo","compatibility":99,"releases":[{"id":"01009CD00C786000","region":null}]},{"id":"b9f2a296-202a-4a63-bf77-500bf0bb1c21","directory":"snake-pass","title":"Snake Pass","compatibility":4,"releases":[{"id":"0100C0F0020E8000","region":null}]},{"id":"b9fbe397-b09c-4762-b7ae-6916937d56d4","directory":"wolfenstein-ii-the-new-colossus","title":"Wolfenstein II: The New Colossus","compatibility":4,"releases":[{"id":"01009040091E0000","region":null}]},{"id":"ba052f69-01d8-4440-8634-ead31bff005a","directory":"neon-caves","title":"Neon Caves","compatibility":5,"releases":[{"id":"010042800CDCE000","region":null}]},{"id":"ba079915-c131-4f30-9917-5737d0cbce02","directory":"neverwinter-nights-enhanced-edition","title":"Neverwinter Nights: Enhanced Edition","compatibility":5,"releases":[{"id":"010013700DA4A000","region":null}]},{"id":"ba1130b1-76d1-4e08-98e1-25dee9589092","directory":"find-the-balance","title":"Find The Balance","compatibility":99,"releases":[{"id":"0100F3700C09C000","region":null}]},{"id":"ba115c6d-fb16-4c0e-84a1-a0c3bce0427b","directory":"johnny-bonasera-full-season","title":"Johnny Bonasera Full Season","compatibility":99,"releases":[{"id":"01002B40135DE000","region":null}]},{"id":"ba301124-3fb5-415d-9186-ca9b35915e09","directory":"resident-evil-5","title":"Resident Evil 5","compatibility":0,"releases":[{"id":"010018100CD46000","region":null}]},{"id":"ba32dd42-4403-4a57-b22f-25ea6da62774","directory":"royal-roads","title":"Royal Roads","compatibility":99,"releases":[{"id":"0100AFE00DDAC000","region":null}]},{"id":"ba4413eb-a812-4edf-99e0-b57bb700afd4","directory":"songbringer","title":"Songbringer","compatibility":99,"releases":[{"id":"010031D00A604000","region":null}]},{"id":"ba457358-13b4-416f-8bfb-b17693d19648","directory":"wargroove","title":"Wargroove","compatibility":3,"releases":[{"id":"01000F0002BB6000","region":null}]},{"id":"ba5ac11b-1225-4c62-8dba-b1e2296f3995","directory":"mini-car-racing","title":"Mini Car Racing","compatibility":1,"releases":[{"id":"0100D5E0141F6000","region":null}]},{"id":"ba662b43-9826-4233-923a-dff303414616","directory":"creepy-road","title":"Creepy Road","compatibility":99,"releases":[{"id":"0100C3300C68C000","region":null}]},{"id":"ba81603d-e11b-4eb7-af2d-2b71ada5fe11","directory":"mini-island-challenge-bundle","title":"Mini Island Challenge Bundle","compatibility":99,"releases":[{"id":"010050C0124CE000","region":null}]},{"id":"ba94bbd9-5bd4-4af6-82be-37c7e9eb5e4c","directory":"sam-max-beyond-time-and-space","title":"Sam & Max: Beyond Time and Space","compatibility":1,"releases":[{"id":"0100855015500000","region":null}]},{"id":"baa36077-d44d-47f4-aa3f-0325ddd8afdf","directory":"surfingers","title":"Surfingers","compatibility":99,"releases":[{"id":"0100CEB00CD6C000","region":null}]},{"id":"baa9082b-7ba3-4a30-b374-bdaf0ff9d61c","directory":"river-city-melee-mach","title":"River City Melee Mach!!","compatibility":2,"releases":[{"id":"0100B2100767C000","region":null}]},{"id":"bacb224d-5576-454b-87a7-0193b24ab470","directory":"go-minimal","title":"Go Minimal","compatibility":99,"releases":[{"id":"01004FF016F46000","region":null}]},{"id":"bad1c522-b30d-4eaa-a36a-6c1eaf7e61ff","directory":"cris-tales","title":"Cris Tales","compatibility":99,"releases":[{"id":"0100B0400EBC4000","region":null}]},{"id":"bad747ec-10b9-47fe-8de8-d19418ca26f8","directory":"ruvato-original-complex","title":"Ruvato : Original Complex","compatibility":99,"releases":[{"id":"01007690147D8000","region":null}]},{"id":"badc2b66-c2b1-4a83-9643-0d48e7da7eff","directory":"butcher","title":"BUTCHER","compatibility":1,"releases":[{"id":"0100177005C8A000","region":null}]},{"id":"baef6de7-f1b5-4560-86e6-306a4a8250e1","directory":"stranded-deep","title":"Stranded Deep","compatibility":99,"releases":[{"id":"01004F4014C62000","region":null}]},{"id":"baf8f23a-b4ab-4d93-ad81-eaf326cdd6a3","directory":"out-there-the-alliance-demo","title":"Out There: Ω The Alliance - Demo","compatibility":99,"releases":[{"id":"010048F00CC7C000","region":null}]},{"id":"baf9910a-2197-40e7-abf9-7506a1f9fd12","directory":"pet-care","title":"Pet Care","compatibility":99,"releases":[{"id":"010082A00D80A000","region":null}]},{"id":"bafd496c-f0ea-411d-8196-b54b6839fbb7","directory":"the-princess-guide","title":"The Princess Guide","compatibility":1,"releases":[{"id":"0100E6A00B960000","region":null}]},{"id":"bb0752b7-7ce4-4800-93c2-a4707eac9c61","directory":"animal-doctor","title":"Animal Doctor","compatibility":99,"releases":[{"id":"01008A7013010000","region":null}]},{"id":"bb0a9806-93cc-4842-ad9a-b3a3adef5dc5","directory":"asphalt-9-legends","title":"Asphalt 9: Legends","compatibility":5,"releases":[{"id":"01007B000C834000","region":null}]},{"id":"bb18e33c-fdd1-4d31-842f-458a665c8c14","directory":"coffee-crisis","title":"Coffee Crisis","compatibility":99,"releases":[{"id":"0100CF800C810000","region":null}]},{"id":"bb23ec6d-ebe8-487c-b41a-e9d64e1e468f","directory":"storm-tale","title":"Storm Tale","compatibility":0,"releases":[{"id":"0100362014538000","region":null}]},{"id":"bb340bee-00e0-4b59-8a98-2fc11b7b5d0e","directory":"chess-ace","title":"Chess Ace","compatibility":99,"releases":[{"id":"01003F9010D6C000","region":null}]},{"id":"bb358599-e0b9-4126-a115-2fe4ba4faeab","directory":"oceanhorn-2-knights-of-the-lost-realm","title":"Oceanhorn 2: Knights of the Lost Realm","compatibility":1,"releases":[{"id":"01006CB010840000","region":null}]},{"id":"bb5b2608-316d-4ddf-b3a4-c75035529bff","directory":"arcade-archives-sky-kid","title":"Arcade Archives SKY KID","compatibility":99,"releases":[{"id":"0100192015D24000","region":null}]},{"id":"bb609a49-61e0-401b-bd56-dff24a1049b7","directory":"incredible-mandy","title":"Incredible Mandy","compatibility":2,"releases":[{"id":"010087C00E31C000","region":null}]},{"id":"bb73f4ac-4027-40c7-a478-4ec896df42c0","directory":"radiation-city","title":"Radiation City","compatibility":99,"releases":[{"id":"0100DA400E07E000","region":null}]},{"id":"bb75d647-8cd9-447f-ac33-c701235d4c09","directory":"super-arcade-racing","title":"Super Arcade Racing","compatibility":99,"releases":[{"id":"0100738012566000","region":null}]},{"id":"bb7c85a1-1b6f-4d52-8b10-1b9ddc71fe96","directory":"namco-museum","title":"NAMCO MUSEUM","compatibility":1,"releases":[{"id":"010002F001220000","region":null}]},{"id":"bb7d1f51-c834-4ae4-8572-d0c416ec02b0","directory":"empire-of-sin","title":"Empire of Sin","compatibility":99,"releases":[{"id":"010058600E530000","region":null}]},{"id":"bb842f18-38ca-4df0-b2e8-68d8c708bede","directory":"arcade-archives-renegade","title":"Arcade Archives Renegade","compatibility":99,"releases":[{"id":"010081E001DD2000","region":null}]},{"id":"bb895a51-bea5-4d93-9e02-0bf993e19424","directory":"wrestledunk-sports","title":"Wrestledunk Sports","compatibility":0,"releases":[{"id":"0100DBC013496000","region":null}]},{"id":"bb90c300-90a9-4896-ac48-29623c01a899","directory":"alchemist-adventure","title":"Alchemist Adventure","compatibility":99,"releases":[{"id":"0100946014634000","region":null}]},{"id":"bb92dd05-639e-45b9-816a-3cda2f8e527c","directory":"shut-eye","title":"Shut Eye","compatibility":99,"releases":[{"id":"0100A7900B936000","region":null}]},{"id":"bb9cb019-b7e6-4e0e-b4ab-aaa46fc7cd27","directory":"arcade-archives-arabian","title":"Arcade Archives ARABIAN","compatibility":99,"releases":[{"id":"0100CDD013178000","region":null}]},{"id":"bbafeae9-326e-4e4d-80fe-2115b4af468e","directory":"pocoyo-party","title":"Pocoyo Party","compatibility":1,"releases":[{"id":"01003FE0129FC000","region":null}]},{"id":"bbb0b698-a7d0-46af-87c7-33e6f2e32922","directory":"ultimate-fishing-simulator","title":"Ultimate Fishing Simulator","compatibility":99,"releases":[{"id":"010048901295C000","region":null}]},{"id":"bbb728cf-3acd-4fd9-957c-f0c8107d6444","directory":"talk-it-out-handheld-game","title":"Talk it Out: Handheld Game","compatibility":99,"releases":[{"id":"010088100EE4E000","region":null}]},{"id":"bbbbca40-d520-45e4-baa8-3b997b7e2946","directory":"forgotten-hill-disillusion","title":"Forgotten Hill Disillusion","compatibility":99,"releases":[{"id":"0100D590162D0000","region":null}]},{"id":"bbc70e27-5f3b-462e-82c8-87dfa7cf8642","directory":"crosscode","title":"CrossCode","compatibility":1,"releases":[{"id":"01003D90058FC000","region":null}]},{"id":"bbcbb9ae-bf5c-4158-9f06-124324deef0c","directory":"crashlands","title":"Crashlands","compatibility":2,"releases":[{"id":"010027100BD16000","region":null}]},{"id":"bbcd2fa9-4408-402b-b08a-71c7c91ff7bb","directory":"wanderlust-travel-stories","title":"Wanderlust Travel Stories","compatibility":1,"releases":[{"id":"0100B27010436000","region":null}]},{"id":"bbedb311-3544-4ab0-9251-9256912e31cc","directory":"alchemist-simulator","title":"Alchemist Simulator","compatibility":1,"releases":[{"id":"01001BB014512000","region":null}]},{"id":"bbfb52c1-ebc7-48f1-a751-e8d67ae72f7d","directory":"clockwork-aquario","title":"Clockwork Aquario","compatibility":0,"releases":[{"id":"01003AC0140DC000","region":null}]},{"id":"bc0472d2-b0bb-416f-9ee2-1136190661ee","directory":"goetia","title":"Goetia","compatibility":99,"releases":[{"id":"0100D82009024000","region":null}]},{"id":"bc0dc834-ba73-46ab-bae5-c5a4ab1d5196","directory":"last-4-alive-escape-from-zombies","title":"Last 4 Alive: Escape From Zombies","compatibility":99,"releases":[{"id":"0100C6101591A000","region":null}]},{"id":"bc1e2b11-81a2-4dcb-8c02-9fa91218d0e8","directory":"bubsy-paws-on-fire","title":"Bubsy: Paws on Fire!","compatibility":2,"releases":[{"id":"0100DBE00C554000","region":null}]},{"id":"bc1f1bae-65d6-4cd1-936e-71794cb1c0c6","directory":"arcade-archives-rushn-attack","title":"Arcade Archives Rush'n Attack","compatibility":99,"releases":[{"id":"0100341013852000","region":null}]},{"id":"bc38dd99-f9b9-403f-be0f-9a923d7eabed","directory":"packet-queen","title":"Packet Queen #","compatibility":99,"releases":[{"id":"0100B90008E1E000","region":null}]},{"id":"bc3a6e5f-cac9-4fd0-95de-4d35f6a94910","directory":"layers-of-fear-legacy","title":"Layers of Fear: Legacy","compatibility":0,"releases":[{"id":"0100BF5006A7C000","region":null}]},{"id":"bc3fedf6-400c-440f-ab2d-b00b20e47595","directory":"omg-police-car-chase-tv-simulator","title":"OMG Police - Car Chase TV Simulator","compatibility":99,"releases":[{"id":"0100896011282000","region":null}]},{"id":"bc445a39-66bb-41d7-8c92-713c0a01999d","directory":"tower-climb","title":"Tower Climb","compatibility":0,"releases":[{"id":"01004A300F91E000","region":null}]},{"id":"bc572811-385a-455e-9e07-257d90e73019","directory":"thoth","title":"THOTH","compatibility":99,"releases":[{"id":"0100AC500EEE8000","region":null}]},{"id":"bc57c9df-31bd-47ca-ba49-ff2de1cd1646","directory":"paperbound-brawlers","title":"Paperbound Brawlers","compatibility":99,"releases":[{"id":"01006AD00B82C000","region":null}]},{"id":"bc59108d-abc4-49da-8911-e4a9755c4919","directory":"heroland","title":"Heroland","compatibility":3,"releases":[{"id":"0100C2700E338000","region":null}]},{"id":"bc6d6449-14a6-4ad9-a0a2-91fe606a4ce6","directory":"kingmaker-rise-to-the-throne","title":"Kingmaker: Rise to the Throne","compatibility":99,"releases":[{"id":"0100A1B00C8CC000","region":null}]},{"id":"bc6db81c-61df-4bfb-83eb-cfc3898cfb41","directory":"rogue-aces","title":"Rogue Aces","compatibility":99,"releases":[{"id":"0100EC7009348000","region":null}]},{"id":"bc71443d-9b7c-43ea-bcba-6c2760b5f558","directory":"60-seconds-reatomized","title":"60 Seconds! Reatomized","compatibility":99,"releases":[{"id":"010070100F782000","region":null}]},{"id":"bc752eb9-3952-4dba-9208-a0bdf740de56","directory":"half-past-fate","title":"Half Past Fate","compatibility":1,"releases":[{"id":"0100D4D00F8F2000","region":null}]},{"id":"bc7a8592-e430-4db1-915d-becbdc03b1fb","directory":"antiquia-lost","title":"Antiquia Lost","compatibility":1,"releases":[{"id":"0100016007154000","region":null}]},{"id":"bc89df5d-6567-416b-bde2-6411305b4e9e","directory":"asdivine-kamura","title":"Asdivine Kamura","compatibility":1,"releases":[{"id":"0100C8E00F50A000","region":null}]},{"id":"bc8edc41-547f-4922-b901-6d02f5ba68a3","directory":"red-death","title":"Red Death","compatibility":99,"releases":[{"id":"0100069010592000","region":null}]},{"id":"bc95800f-f431-4ae8-8642-05368fdfac65","directory":"arcade-archives-pinball","title":"Arcade Archives Pinball","compatibility":4,"releases":[{"id":"010049500E354000","region":null}]},{"id":"bc9cf8b2-5356-4085-9f2c-2e6b434b73cc","directory":"solitaire-klondike-black","title":"Solitaire Klondike BLACK","compatibility":99,"releases":[{"id":"01007D600D242000","region":null}]},{"id":"bca2a97a-422d-4085-9814-a315c4be88ea","directory":"890b","title":"890B","compatibility":99,"releases":[{"id":"0100182013F2C000","region":null}]},{"id":"bca345a0-dea6-4ee5-9b53-7936350b5c33","directory":"lovekami-useless-goddess","title":"Lovekami -Useless Goddess-","compatibility":99,"releases":[{"id":"0100336014F4E000","region":null}]},{"id":"bca34e18-fe26-4e71-b5f2-ce4eb4c7af01","directory":"dark-burial","title":"Dark Burial","compatibility":99,"releases":[{"id":"0100896011A60000","region":null}]},{"id":"bcaf2feb-05cc-411f-bd1f-c42de1ecd771","directory":"sega-ages-sonic-the-hedgehog-2","title":"SEGA AGES Sonic The Hedgehog 2","compatibility":1,"releases":[{"id":"01000D200C614000","region":null}]},{"id":"bcb1dbe3-e84b-424c-91dd-b634f260f06d","directory":"implosion-demo","title":"IMPLOSION Demo","compatibility":99,"releases":[{"id":"01005BE008674000","region":null}]},{"id":"bcb94ff9-c296-475f-a88c-1340021599a1","directory":"taiko-no-tatsujin-rhythmic-adventure-2","title":"Taiko no Tatsujin: Rhythmic Adventure 2","compatibility":99,"releases":[{"id":"01001580133F2000","region":null}]},{"id":"bcc84f0e-a0d7-430d-902a-ee6eaaaf0ca9","directory":"supermash","title":"SuperMash","compatibility":1,"releases":[{"id":"01001F900B78C000","region":null}]},{"id":"bcca1f26-a6a1-462e-a02c-35332fa9628b","directory":"gothic-murder-adventure-that-changes-destiny","title":"Gothic Murder: Adventure That Changes Destiny","compatibility":0,"releases":[{"id":"01001010121DE000","region":null}]},{"id":"bcde1a05-acb8-446f-a0bc-a49e09553928","directory":"colormotif-deluxe","title":"Color.Motif Deluxe","compatibility":99,"releases":[{"id":"01002EB010146000","region":null}]},{"id":"bcdeb86e-7886-499a-912d-3481b7247e3c","directory":"aperion-cyberstorm","title":"Aperion Cyberstorm","compatibility":99,"releases":[{"id":"010051C003A08000","region":null}]},{"id":"bcdf95fc-2309-49d9-9375-d8c75ff8a7ca","directory":"momonga-pinball-adventures","title":"Momonga Pinball Adventures","compatibility":99,"releases":[{"id":"01002CC00BC4C000","region":null}]},{"id":"bcf940bd-e24c-4137-aa84-f94272408977","directory":"space-grunts","title":"Space Grunts","compatibility":99,"releases":[{"id":"0100AE701287E000","region":null}]},{"id":"bd04868c-d7d6-455f-9a21-6cade59fec00","directory":"season-match-2","title":"Season Match 2","compatibility":99,"releases":[{"id":"0100F6B00BDCC000","region":null}]},{"id":"bd0b1913-1089-4b37-8c09-6abdef04115b","directory":"noreload-heroes-enhanced-edition","title":"NoReload Heroes Enhanced Edition","compatibility":99,"releases":[{"id":"010052E011A62000","region":null}]},{"id":"bd0ccf9f-e734-4c08-b776-a2d1aa322099","directory":"pure-mahjong","title":"Pure Mahjong","compatibility":99,"releases":[{"id":"0100F2700D3F0000","region":null}]},{"id":"bd0f7790-0970-4001-bfed-6c55b95c0ee6","directory":"aca-neogeo-garou-mark-of-the-wolves","title":"ACA NEOGEO GAROU: MARK OF THE WOLVES","compatibility":1,"releases":[{"id":"0100CB2001DB8000","region":null}]},{"id":"bd30905d-aa19-4755-ac3f-0643ebdb24f4","directory":"the-language-of-love","title":"The Language Of Love","compatibility":1,"releases":[{"id":"01007AF012E16000","region":null}]},{"id":"bd46a34a-cfda-4fc0-ab32-b75641216162","directory":"adventure-time-pirates-of-the-enchiridion","title":"Adventure Time: Pirates of the Enchiridion","compatibility":0,"releases":[{"id":"0100C4E004406000","region":null}]},{"id":"bd482142-3353-4f0b-8461-52bd27915995","directory":"mariozza-cops","title":"MARIOZZA COPS","compatibility":99,"releases":[{"id":"01008D301446C000","region":null}]},{"id":"bd48d52d-29d5-4dd5-8399-3a2b72a4c851","directory":"battle-princess-madelyn","title":"Battle Princess Madelyn","compatibility":2,"releases":[{"id":"0100C4D0093EA000","region":null}]},{"id":"bd552acf-a877-4757-8a97-982f1d277aff","directory":"freakout-calamity-tv-show","title":"Freakout: Calamity TV Show","compatibility":2,"releases":[{"id":"01003AB010692000","region":null}]},{"id":"bd64d28c-09be-4e52-a1e9-fd0bbe1a542e","directory":"seeds-of-resilience","title":"Seeds of Resilience","compatibility":99,"releases":[{"id":"01000580117EA000","region":null}]},{"id":"bd701a48-bf54-40c1-83b0-717877d63ebc","directory":"the-shapeshifting-detective","title":"The Shapeshifting Detective","compatibility":99,"releases":[{"id":"01001FF00BEE8000","region":null}]},{"id":"bd711d49-4486-4841-99c1-83c66dabaa95","directory":"the-journey-down-trilogy","title":"The Journey Down Trilogy","compatibility":99,"releases":[{"id":"01008EF00C900000","region":null}]},{"id":"bd8e79cb-772b-48d6-9990-e0c9610815fc","directory":"everspace-stellar-edition","title":"Everspace - Stellar Edition","compatibility":4,"releases":[{"id":"0100DCF0093EC000","region":null}]},{"id":"bd910017-ef57-4bb3-9b9b-4b0a8d8f268a","directory":"flowlines-vs","title":"Flowlines VS","compatibility":99,"releases":[{"id":"0100F5D00CD58000","region":null}]},{"id":"bd957ff8-721f-4cae-b4a6-7f596fe860c8","directory":"wind-peaks","title":"Wind Peaks","compatibility":99,"releases":[{"id":"0100E9101405A000","region":null}]},{"id":"bd9d9836-2726-4bcb-bf3e-1883d7cac2e6","directory":"dream-alone","title":"Dream Alone","compatibility":4,"releases":[{"id":"01000AA0093DC000","region":null}]},{"id":"bd9fa3e1-c1e2-460b-a3c9-c3025fe809eb","directory":"clone-drone-in-the-danger-zone","title":"Clone Drone in the Danger Zone","compatibility":99,"releases":[{"id":"0100AA201236E000","region":null}]},{"id":"bda95244-e87c-494c-91ca-08d5c3d7e868","directory":"ord","title":"Ord.","compatibility":99,"releases":[{"id":"0100F9A012892000","region":null}]},{"id":"bdaec8f9-6eeb-40b7-99e2-38a7f8f9a0db","directory":"retromania-wrestling","title":"RetroMania Wrestling","compatibility":99,"releases":[{"id":"0100BB700EF82000","region":null}]},{"id":"bdb22b07-dc5c-4bc8-9393-cae9b235ea56","directory":"a-long-way-down","title":"A Long Way Down","compatibility":99,"releases":[{"id":"01006A90144E4000","region":null}]},{"id":"bdc24cea-abbf-46cc-b8dd-4a34cdd64a75","directory":"mercenaries-rebirth-call-of-the-wild-lynx","title":"Mercenaries Rebirth: Call of the Wild Lynx","compatibility":0,"releases":[{"id":"010031E01627E000","region":null}]},{"id":"bdc47bd3-f7f6-44d7-ae6c-bff64b00da60","directory":"tumblestone","title":"Tumblestone","compatibility":99,"releases":[{"id":"0100AFE00452E000","region":null}]},{"id":"bdc5b1bb-1431-41b4-bcf1-4f9bb4867c73","directory":"the-legend-of-evil","title":"The Legend of Evil","compatibility":99,"releases":[{"id":"01001F600B3EE000","region":null}]},{"id":"bdcad92f-ec8a-4a30-af73-e23561326eb3","directory":"space-aliens-invaders","title":"Space Aliens Invaders","compatibility":99,"releases":[{"id":"0100C6D013D9A000","region":null}]},{"id":"bdda475d-eee5-473e-b435-243267ca1738","directory":"pix-jungle-adventures","title":"Pix Jungle Adventures","compatibility":99,"releases":[{"id":"01001AB015446000","region":null}]},{"id":"bdeaba17-0e46-4c1f-8d30-8dd8f2c78b30","directory":"spelunker-party","title":"Spelunker Party!","compatibility":1,"releases":[{"id":"010021F004270000","region":null}]},{"id":"bdf0aa16-7763-44c7-8859-e7eb27577bfc","directory":"aloof","title":"Aloof","compatibility":99,"releases":[{"id":"01007BA0164D8000","region":null}]},{"id":"bdf68a35-8e60-42d5-a8de-da264499a61f","directory":"drowning","title":"Drowning","compatibility":1,"releases":[{"id":"010052000A574000","region":null}]},{"id":"bdf68b93-6600-40b8-a9fc-e5445c9366b0","directory":"sky-races","title":"Sky Races","compatibility":99,"releases":[{"id":"01005970169DE000","region":null}]},{"id":"bdf6e565-af36-4e05-899e-9f673b1be37c","directory":"dungeon-rushers","title":"Dungeon Rushers","compatibility":3,"releases":[{"id":"01002CB006AFA000","region":null}]},{"id":"bdfba0b6-545f-4cbd-9586-54b321822664","directory":"dat-gaem","title":"Dat Gaem","compatibility":99,"releases":[{"id":"0100883013C02000","region":null}]},{"id":"bdff17a3-cb4d-4d83-a953-09e2d147154d","directory":"phantom-doctrine","title":"Phantom Doctrine","compatibility":4,"releases":[{"id":"010096F00E5B0000","region":null}]},{"id":"be18f044-e833-41bd-9aa0-3731a1ce4ae2","directory":"arrog","title":"Arrog","compatibility":99,"releases":[{"id":"01007AB012102000","region":null}]},{"id":"be1ed3d2-00cd-4fdc-986b-0097c09636e2","directory":"trouserheart","title":"Trouserheart","compatibility":2,"releases":[{"id":"01001EF00BF3A000","region":null}]},{"id":"be24d957-c470-4a23-9c22-142688f5299e","directory":"brain-breaker","title":"Brain Breaker","compatibility":99,"releases":[{"id":"0100B83013242000","region":null}]},{"id":"be34f229-3c49-4d90-bab1-4d0c1e08962b","directory":"side-b","title":"Side B","compatibility":99,"releases":[{"id":"0100B04013F8C000","region":null}]},{"id":"be3a94ec-7b85-496e-9f27-d46474adee5c","directory":"gunpig-firepower-for-hire","title":"GUNPIG: Firepower For Hire","compatibility":99,"releases":[{"id":"0100E8701358A000","region":null}]},{"id":"be3f126d-dad3-465a-ac42-70041eb7874f","directory":"animal-hunter-z","title":"Animal Hunter Z","compatibility":99,"releases":[{"id":"010035500CA0E000","region":null}]},{"id":"be422054-b12c-4c03-8655-8e0286ad67ad","directory":"reigns-game-of-thrones","title":"Reigns: Game of Thrones","compatibility":99,"releases":[{"id":"010028B00CBD0000","region":null}]},{"id":"be446eea-ebb8-4283-8e1b-29d33ead19af","directory":"fight-crab","title":"Fight Crab","compatibility":4,"releases":[{"id":"01006980127F0000","region":null}]},{"id":"be4d8354-f7dd-4e4e-9809-4ce51bc98b4e","directory":"burly-men-at-sea","title":"Burly Men at Sea","compatibility":99,"releases":[{"id":"01002BD00983E000","region":null}]},{"id":"be522056-4ff6-4eaa-8d3b-347222157487","directory":"ultra-space-battle-brawl-demo","title":"Ultra Space Battle Brawl Demo","compatibility":99,"releases":[{"id":"010066F009524000","region":null}]},{"id":"be68e6e1-4b6f-417f-b36f-20ee075ea814","directory":"lost-ember","title":"Lost Ember","compatibility":99,"releases":[{"id":"0100E3400F242000","region":null}]},{"id":"be6ffb10-882a-4a43-a569-bd406209d37d","directory":"rain-world","title":"Rain World","compatibility":3,"releases":[{"id":"010047600BF72000","region":null}]},{"id":"be7c5440-9f65-4a6f-8289-4945dc2ff0c0","directory":"backworlds","title":"Backworlds","compatibility":99,"releases":[{"id":"0100FEA014316000","region":null}]},{"id":"be7d55da-9be1-436f-8b72-a01449b7d348","directory":"hidden","title":"Hidden","compatibility":99,"releases":[{"id":"01004E800F03C000","region":null}]},{"id":"be865ad2-b4be-4b8c-aedf-736e877fc7c8","directory":"lego-dc-super-villains","title":"LEGO DC Super-Villains","compatibility":3,"releases":[{"id":"010070D009FEC000","region":null}]},{"id":"be893133-bb66-4eb1-954d-a377bd56434e","directory":"carnage-battle-arena","title":"Carnage: Battle Arena","compatibility":1,"releases":[{"id":"0100D7E011272000","region":null}]},{"id":"be89fc9c-b60c-4b84-8b00-b54650e8b15a","directory":"deadly-premonition-2-a-blessing-in-disguise","title":"Deadly Premonition 2: A Blessing In Disguise","compatibility":1,"releases":[{"id":"0100BAC011928000","region":null}]},{"id":"be8cfe83-12ae-49ff-ae1d-48bd0f74eb1a","directory":"wrc-9-the-official-game","title":"WRC 9 The Official Game","compatibility":5,"releases":[{"id":"01001A0011798000","region":null}]},{"id":"be9b1ccf-a03a-4bbe-ba9a-cdeece050439","directory":"death-and-taxes","title":"Death and Taxes","compatibility":99,"releases":[{"id":"01000D60126B6000","region":null}]},{"id":"be9cb8ef-7e93-4849-84b7-87c2d3a073f8","directory":"sky-force-anniversary","title":"Sky Force Anniversary","compatibility":1,"releases":[{"id":"010083100B5CA000","region":null}]},{"id":"beb02fa4-e8a9-4d80-8bdf-2e6152e1de67","directory":"bodyquest","title":"BodyQuest","compatibility":99,"releases":[{"id":"0100DDF01348C000","region":null}]},{"id":"bec1e795-5843-44f8-a112-856e10c3809a","directory":"whip-whip","title":"WHIP! WHIP!","compatibility":99,"releases":[{"id":"0100B5600A88C000","region":null}]},{"id":"bec7e351-6122-4041-9663-b4e4a0449f39","directory":"omensight-definitive-edition","title":"Omensight: Definitive Edition","compatibility":99,"releases":[{"id":"0100CDC00C40A000","region":null}]},{"id":"bec9fc8b-bb3a-4ed2-93d4-8f098cc47d94","directory":"bloodroots","title":"Bloodroots","compatibility":2,"releases":[{"id":"010091400D238000","region":null}]},{"id":"becb66af-dcf6-4abd-86de-0638bb2e5af9","directory":"aokana-four-rhythms-across-the-blue","title":"Aokana - Four Rhythms Across the Blue","compatibility":1,"releases":[{"id":"0100990011866000","region":null}]},{"id":"bed17a56-819b-4e48-8c61-f171facda73d","directory":"european-conqueror-x","title":"European Conqueror X","compatibility":99,"releases":[{"id":"010041700D3D4000","region":null}]},{"id":"bedb25d8-61de-4bb1-a175-6e1050d97560","directory":"arcade-archives-earth-defense-force","title":"Arcade Archives EARTH DEFENSE FORCE","compatibility":0,"releases":[{"id":"01005960123CE000","region":null}]},{"id":"beebf475-e2bd-457a-8bf8-ae021144fc0d","directory":"rayman-legends-definitive-edition","title":"Rayman Legends Definitive Edition","compatibility":0,"releases":[{"id":"01005FF002E2A000","region":null}]},{"id":"bf029d5c-3bfd-4226-9196-6967a392c87b","directory":"undeads-building","title":"Undead's Building","compatibility":99,"releases":[{"id":"0100C1200D60C000","region":null}]},{"id":"bf0d1293-2373-4eb6-b7d6-1feadf77ebf6","directory":"street-power-soccer","title":"Street Power Soccer","compatibility":99,"releases":[{"id":"0100888011CB2000","region":null}]},{"id":"bf130fba-2697-436a-ab22-b25f6b96838b","directory":"grim-legends-2-song-of-the-dark-swan","title":"Grim Legends 2: Song of the Dark Swan","compatibility":99,"releases":[{"id":"010078E012D80000","region":null}]},{"id":"bf276fba-8270-4522-8ed7-f3e20bfc3030","directory":"johnny-turbos-arcade-heavy-barrel","title":"Johnny Turbo's Arcade: Heavy Barrel","compatibility":99,"releases":[{"id":"0100C6D002CB8000","region":null}]},{"id":"bf2d5509-7a1e-4181-9457-ed51c62c30f9","directory":"fantasy-tavern-sextet-vol-1-new-world-days","title":"Fantasy Tavern Sextet -Vol.1 New World Days-","compatibility":4,"releases":[{"id":"01000E2012F6E000","region":null}]},{"id":"bf315a0e-5035-437b-b80c-d0a74dd4fa1d","directory":"eternum-ex","title":"Eternum Ex","compatibility":99,"releases":[{"id":"0100CB900B498000","region":null}]},{"id":"bf379c4e-1bbe-4fd2-a367-715acd0bd925","directory":"racedierun","title":"#RaceDieRun","compatibility":99,"releases":[{"id":"01005D400E5C8000","region":null}]},{"id":"bf3f0e9c-22d6-4c8a-ab1a-10c0cdd8ebeb","directory":"ghostanoid","title":"Ghostanoid","compatibility":99,"releases":[{"id":"01008BC012850000","region":null}]},{"id":"bf440cd9-8bbc-4524-a72c-d63959977f10","directory":"fly-the-bird","title":"Fly The Bird","compatibility":0,"releases":[{"id":"0100217014ABA000","region":null}]},{"id":"bf4c85b0-583e-47ec-8090-97f932c36bd2","directory":"boot-hill-heroes","title":"Boot Hill Heroes","compatibility":1,"releases":[{"id":"0100FED0137FE000","region":null}]},{"id":"bf5e5258-d24b-4bc1-b7d2-d64b5fb9051c","directory":"kids-farm-puzzle","title":"Kids: Farm Puzzle","compatibility":99,"releases":[{"id":"0100E220152A6000","region":null}]},{"id":"bf5f80f7-f607-4abd-b525-bbcca3fd8d1f","directory":"spellworm","title":"Spellworm","compatibility":99,"releases":[{"id":"0100BFC00F18A000","region":null}]},{"id":"bf6bec15-e867-4c9d-8f18-0cacfb97aa89","directory":"revolver-and-co","title":"Revolver and Co","compatibility":99,"releases":[{"id":"0100C15014CE4000","region":null}]},{"id":"bf75a99d-1a79-4ef9-a524-a877aaf83419","directory":"aca-neogeo-the-king-of-fighters-96","title":"ACA NEOGEO THE KING OF FIGHTERS '96","compatibility":99,"releases":[{"id":"01006F0004FB4000","region":null}]},{"id":"bf7f586d-88d3-49c0-9c10-f835029095df","directory":"along-the-edge","title":"Along the Edge","compatibility":99,"releases":[{"id":"010083E010AE8000","region":null}]},{"id":"bf800bef-506f-4ca6-9cdb-99a6a7a3f84c","directory":"disc-jam","title":"Disc Jam","compatibility":5,"releases":[{"id":"0100510004D2C000","region":null}]},{"id":"bfa1e88e-159a-4774-b037-61f4c6ca1e54","directory":"arcade-archives-the-genji-and-the-heike-clans","title":"Arcade Archives The Genji and the Heike Clans","compatibility":99,"releases":[{"id":"01006F7015AC0000","region":null}]},{"id":"bfa3aceb-4639-4785-b132-d821a19731e6","directory":"fez","title":"FEZ","compatibility":2,"releases":[{"id":"01008D900B984000","region":null}]},{"id":"bfa9e099-eb2c-427b-b04b-8332ee99653d","directory":"arcade-archives-hacha-mecha-fighter","title":"Arcade Archives HACHA MECHA FIGHTER","compatibility":99,"releases":[{"id":"010068B014CC2000","region":null}]},{"id":"bfbc453a-85ae-4374-8ec5-bf54b92c209b","directory":"castlestorm","title":"CastleStorm","compatibility":1,"releases":[{"id":"010097C00AB66000","region":null}]},{"id":"bfc891a7-2f24-4884-a91c-096b6145e925","directory":"gurgamoth","title":"Gurgamoth","compatibility":99,"releases":[{"id":"01000D700EAA0000","region":null}]},{"id":"bfce2639-0082-4f8b-b117-7ab4de0fa00a","directory":"distraint-collection","title":"DISTRAINT Collection","compatibility":99,"releases":[{"id":"0100967013B48000","region":null}]},{"id":"bfcf51ec-0a93-4f6c-a6a3-505036b1fddc","directory":"monstrum","title":"Monstrum","compatibility":99,"releases":[{"id":"010039F00EF70000","region":null}]},{"id":"bfcfe27b-e0d7-4fbd-b330-a6e2d99f5aaf","directory":"galak-z-the-void-deluxe-edition","title":"GALAK-Z: The Void: Deluxe Edition","compatibility":1,"releases":[{"id":"010091D00BF9E000","region":null}]},{"id":"bfdd15bb-e0d4-4ec4-9a8c-3b58776d7b9d","directory":"membrane","title":"MEMBRANE","compatibility":1,"releases":[{"id":"0100EA6004516000","region":null}]},{"id":"bff16442-12e9-4ed1-9d06-4650b4f156a8","directory":"pocket-soccer","title":"Pocket Soccer","compatibility":99,"releases":[{"id":"0100542016718000","region":null}]},{"id":"c00175e5-d947-423e-a42a-1dfa517fbb15","directory":"aca-neogeo-top-hunter-roddy-and-cathy","title":"ACA NEOGEO TOP HUNTER RODDY & CATHY","compatibility":99,"releases":[{"id":"0100A0D004FB0000","region":null}]},{"id":"c0284a5f-9224-4342-8cca-9cff78acc3ba","directory":"ace-of-seafood","title":"Ace of Seafood","compatibility":2,"releases":[{"id":"0100FF1004D56000","region":null}]},{"id":"c02b621d-8f83-42b7-8113-dee905633757","directory":"skellboy","title":"Skellboy","compatibility":2,"releases":[{"id":"01008CA00CF34000","region":null}]},{"id":"c0303345-6aae-4c99-9fd3-051fe1d25ede","directory":"silver-screen-story","title":"Silver Screen Story","compatibility":99,"releases":[{"id":"010026F00E45E000","region":null}]},{"id":"c039f7ef-a21d-4d29-9213-6f133874ef2f","directory":"sea-salt","title":"Sea Salt","compatibility":99,"releases":[{"id":"010033300EC86000","region":null}]},{"id":"c05ad24f-1542-4a30-8bda-cdde4b6f6071","directory":"metagal","title":"METAGAL","compatibility":1,"releases":[{"id":"01009A500D4A8000","region":null}]},{"id":"c06df851-c6a6-4886-8d27-cdbbda560dd7","directory":"samurai-aces-for-nintendo-switch","title":"Samurai Aces for Nintendo Switch","compatibility":1,"releases":[{"id":"0100ADF0096F2000","region":null}]},{"id":"c08112f0-3bda-4ee5-b600-e83aab61c630","directory":"five-nights-at-freddys","title":"Five Nights at Freddy's","compatibility":3,"releases":[{"id":"0100B6200D8D2000","region":null}]},{"id":"c0869f63-1dcc-4c32-96e0-f76e9a2dc3b4","directory":"skyforge","title":"Skyforge","compatibility":99,"releases":[{"id":"01008C80122BE000","region":null}]},{"id":"c08ae4ff-ae96-453d-88b1-238c80995d77","directory":"true-fear-forsaken-souls-part-1","title":"True Fear: Forsaken Souls - Part 1","compatibility":3,"releases":[{"id":"0100E75004766000","region":null}]},{"id":"c08c8a63-97fc-4b81-b974-e3d202d11860","directory":"theatre-tales","title":"Theatre Tales","compatibility":99,"releases":[{"id":"010030D00D960000","region":null}]},{"id":"c09af7eb-e873-446a-bc55-d3c0b927ee21","directory":"block-puzzle","title":"Block Puzzle","compatibility":99,"releases":[{"id":"0100010016026000","region":null}]},{"id":"c09dd195-37f4-4e2d-86e0-98611be69b4c","directory":"the-game-is-on","title":"The Game is ON","compatibility":99,"releases":[{"id":"010077A013C6C000","region":null}]},{"id":"c09e8211-efdd-4a13-96ee-2440583bcb69","directory":"sky-ride","title":"Sky Ride","compatibility":99,"releases":[{"id":"0100DDB004F30000","region":null}]},{"id":"c0a18fb7-8f49-4976-8dbd-ed1b23544487","directory":"monster-hunter-stories-2-wings-of-ruin","title":"Monster Hunter Stories 2: Wings of Ruin","compatibility":1,"releases":[{"id":"0100E21011446000","region":null}]},{"id":"c0a87427-5ec1-4985-ae08-92fa5df2c478","directory":"gravity-heroes","title":"Gravity Heroes","compatibility":99,"releases":[{"id":"01000AF013090000","region":null}]},{"id":"c0ab9b3c-e988-4d57-89e0-f09e8ee0936e","directory":"robothorium","title":"Robothorium","compatibility":99,"releases":[{"id":"0100ACF00CD2E000","region":null}]},{"id":"c0b50739-5f4a-4755-a379-ae1d1d3ba4ab","directory":"filament","title":"Filament","compatibility":99,"releases":[{"id":"0100E4401139C000","region":null}]},{"id":"c0b8c173-9235-4a5d-9360-27c2f4998346","directory":"dark-fantasy-jigsaw-puzzle","title":"Dark Fantasy: Jigsaw Puzzle","compatibility":99,"releases":[{"id":"01005D301432E000","region":null}]},{"id":"c0c5f3e2-dddd-4f4d-96c5-5cbc68dd6f79","directory":"the-dresden-files-cooperative-card-game","title":"The Dresden Files Cooperative Card Game","compatibility":99,"releases":[{"id":"0100AAE0100C4000","region":null}]},{"id":"c0e22db2-a082-4fd0-9c19-e06ba3b30ae7","directory":"legends-of-amberland-the-forgotten-crown","title":"Legends of Amberland: The Forgotten Crown","compatibility":99,"releases":[{"id":"01007170100AA000","region":null}]},{"id":"c0e86db1-a77e-4525-b8d7-aeed553e4b68","directory":"merchant-of-the-skies","title":"Merchant of the Skies","compatibility":1,"releases":[{"id":"01001B201264E000","region":null}]},{"id":"c0f2f75d-3044-499f-a8d8-3cc2065f9d6b","directory":"invasion-of-alien-x-earth-in-crisis","title":"Invasion of Alien X - Earth in Crisis","compatibility":99,"releases":[{"id":"01008BD00F072000","region":null}]},{"id":"c1163f8a-e285-4436-8719-0067070e250b","directory":"nintendo-64-nintendo-switch-online","title":"Nintendo 64™ – Nintendo Switch Online","compatibility":5,"releases":[{"id":"0100C9A00ECE6000","region":null}]},{"id":"c12afdd6-d390-468e-adaa-d7ebdfda78e1","directory":"goatpunks","title":"GoatPunks","compatibility":99,"releases":[{"id":"01006C00081B4000","region":null}]},{"id":"c12c58c4-0ea2-4d13-9eb7-6cc7f7302cef","directory":"gabbuchi-demo","title":"Gabbuchi Demo","compatibility":99,"releases":[{"id":"010068000DE92000","region":null}]},{"id":"c12cac1a-9a60-496b-a492-17d0613bfa27","directory":"highrise-heroes-word-challenge","title":"Highrise Heroes: Word Challenge","compatibility":99,"releases":[{"id":"0100A750113FC000","region":null}]},{"id":"c139d308-a06e-4624-8640-e89360b9f995","directory":"skull-rogue","title":"Skull Rogue","compatibility":99,"releases":[{"id":"0100CF2011454000","region":null}]},{"id":"c13b80f4-16f5-4749-ae0e-be9f5996b0e0","directory":"switchy-road-delux","title":"Switchy Road DeluX","compatibility":99,"releases":[{"id":"0100DED012642000","region":null}]},{"id":"c141583a-cb94-4505-a471-d70aa02fd9bf","directory":"123-dots","title":"123 Dots","compatibility":99,"releases":[{"id":"0100A3D015232000","region":null}]},{"id":"c14887f7-f055-4eda-b714-8e6d4ceb5382","directory":"penguin-wars","title":"Penguin Wars","compatibility":99,"releases":[{"id":"0100B280067BE000","region":null}]},{"id":"c15ac8c4-c0eb-42ca-a916-b70584a4b71d","directory":"airborne-kingdom","title":"Airborne Kingdom","compatibility":99,"releases":[{"id":"010087E014832000","region":null}]},{"id":"c165f1b3-c3d8-4959-9ec3-12fe1e73ea17","directory":"steamworld-dig","title":"SteamWorld Dig","compatibility":1,"releases":[{"id":"01009320084A4000","region":null}]},{"id":"c1726596-8680-4a30-86f0-4514bbba3acc","directory":"the-jackbox-party-pack-3","title":"The Jackbox Party Pack 3","compatibility":99,"releases":[{"id":"0100CC80013D6000","region":null}]},{"id":"c17407fc-96b6-4f7c-96da-45e3e6e67450","directory":"hoplegs","title":"Hoplegs","compatibility":99,"releases":[{"id":"010055B01636A000","region":null}]},{"id":"c179c090-bb10-4f7d-ae89-2279e3977092","directory":"away-journey-to-the-unexpected","title":"Away: Journey To The Unexpected","compatibility":99,"releases":[{"id":"01002F1005F3C000","region":null}]},{"id":"c1922541-6002-4747-bfa4-76df9b108f7f","directory":"footgoal-tiki-taka","title":"FootGoal! Tiki Taka","compatibility":99,"releases":[{"id":"01005F2012740000","region":null}]},{"id":"c1a325a2-f7f0-401f-9d58-5cda953f6523","directory":"crunchtime","title":"CrunchTime","compatibility":99,"releases":[{"id":"010003100F1F4000","region":null}]},{"id":"c1a61298-056d-42af-be3b-fdeb2cbd8f70","directory":"metro-simulator","title":"Metro Simulator","compatibility":99,"releases":[{"id":"01009EC014CC8000","region":null}]},{"id":"c1c80c59-ae43-45ad-8393-1547c42c47e1","directory":"faircrofts-antiques-home-for-christmas-collectors-edition","title":"Faircroft's Antiques: Home for Christmas Collector's Edition","compatibility":99,"releases":[{"id":"01004C90146A0000","region":null}]},{"id":"c1c9c2a7-2190-4ef5-90b7-e9af78edef2d","directory":"smite","title":"SMITE","compatibility":5,"releases":[{"id":"01005A600C318000","region":null}]},{"id":"c1cc988d-db13-4fdc-b7ec-7f8174311d15","directory":"burgertime-party","title":"BurgerTime Party!","compatibility":0,"releases":[{"id":"01006BB00E8FA000","region":null}]},{"id":"c1d13f30-18b7-4d19-801f-ad69a07818ee","directory":"arcanoid-breakout","title":"Arcanoid Breakout","compatibility":99,"releases":[{"id":"0100E53013E1C000","region":null}]},{"id":"c1e6dd9e-f7d1-4042-be20-200350e65b86","directory":"rotund-takeoff","title":"Rotund Takeoff","compatibility":99,"releases":[{"id":"01009AF014774000","region":null}]},{"id":"c2063a9d-5ab7-42c1-9652-699952670b43","directory":"red-siren-space-defense","title":"Red Siren: Space Defense","compatibility":99,"releases":[{"id":"010045400D73E000","region":null}]},{"id":"c214d1c7-a716-4e50-9bf8-63bd40be2061","directory":"arcade-archives-the-astyanax","title":"Arcade Archives THE ASTYANAX","compatibility":5,"releases":[{"id":"0100A7B01450C000","region":null}]},{"id":"c220018e-a554-46ae-baeb-6d9a648a50f1","directory":"asdivine-cross","title":"Asdivine Cross","compatibility":99,"releases":[{"id":"010054F013AC6000","region":null}]},{"id":"c2223202-fe7a-4197-85fc-60908fdcc387","directory":"space-elite-force","title":"Space Elite Force","compatibility":99,"releases":[{"id":"0100707011722000","region":null}]},{"id":"c2368f90-ce07-470a-abcc-b05f8a4f5da2","directory":"the-last-show-of-mr-chardish","title":"The Last Show of Mr. Chardish","compatibility":99,"releases":[{"id":"010087E01445A000","region":null}]},{"id":"c24e1e0a-6dcb-411f-a6f6-52fe2d767d5e","directory":"world-to-the-west","title":"World to the West","compatibility":99,"releases":[{"id":"01000E30042F2000","region":null}]},{"id":"c25a8523-6719-46d4-bfec-ff27c90a8ff4","directory":"spartan-fist","title":"Spartan Fist","compatibility":99,"releases":[{"id":"010038400CD96000","region":null}]},{"id":"c2621418-bb8f-40ec-8496-3a576ef43134","directory":"sound-waves","title":"Sound waves","compatibility":99,"releases":[{"id":"0100FB401589A000","region":null}]},{"id":"c264dd1d-627a-4967-928f-8ad4a5d82330","directory":"gradiently","title":"Gradiently","compatibility":99,"releases":[{"id":"01001F3013F6C000","region":null}]},{"id":"c26f3551-4753-4659-a40d-7c58ff5f9996","directory":"league-of-the-shield","title":"League of the Shield","compatibility":99,"releases":[{"id":"010025E00FD40000","region":null}]},{"id":"c272db1d-0801-4d51-bf49-cd56fcb852bd","directory":"the-lord-of-the-rings-adventure-card-game","title":"The Lord of the Rings: Adventure Card Game","compatibility":99,"releases":[{"id":"010085A00C5E8000","region":null}]},{"id":"c27704e8-80fb-4c0c-9df6-d846bb5a18c5","directory":"mainlining","title":"Mainlining","compatibility":1,"releases":[{"id":"01001C100D80E000","region":null}]},{"id":"c2811c8a-09bd-414e-98e4-f5eeebedc5b2","directory":"1-crosswords","title":"#1 Crosswords","compatibility":99,"releases":[{"id":"010097E0141F0000","region":null}]},{"id":"c282f387-b68f-4447-803e-55b0a4bff44f","directory":"meganoid","title":"Meganoid","compatibility":99,"releases":[{"id":"010028101227A000","region":null}]},{"id":"c287ba5a-302b-4195-8172-9e6d00e99925","directory":"the-house-of-da-vinci-2","title":"The House of Da Vinci 2","compatibility":99,"releases":[{"id":"01005A80113D2000","region":null}]},{"id":"c29dd6a9-5918-453c-afab-fa9804fa7656","directory":"hexagon-defense","title":"Hexagon Defense","compatibility":99,"releases":[{"id":"0100F3C013AFC000","region":null}]},{"id":"c2b3d9ce-6ef6-46eb-a3cc-3e5ad0fdc901","directory":"torn-tales-rebound-edition","title":"Torn Tales: Rebound Edition","compatibility":99,"releases":[{"id":"0100BEB010F2A000","region":null}]},{"id":"c2b75519-ba7e-46d9-9346-bdeb605deea8","directory":"arcade-archives-shanghai-iii","title":"Arcade Archives Shanghai III","compatibility":99,"releases":[{"id":"01003A4001DD4000","region":null}]},{"id":"c2b7a43d-9e36-4f8a-8f77-2fda7deb88fb","directory":"vera-blanc-full-moon","title":"Vera Blanc: Full Moon","compatibility":99,"releases":[{"id":"0100C850134A0000","region":null}]},{"id":"c2bafb7c-6ff2-4dcd-bad3-79037eb67f6d","directory":"super-mutant-alien-assault","title":"Super Mutant Alien Assault","compatibility":99,"releases":[{"id":"01006D000D2A0000","region":null}]},{"id":"c2bc0a50-ccaa-4d46-8a54-8fdef7583b69","directory":"marsupilami-hoobadventure","title":"MARSUPILAMI - HOOBADVENTURE","compatibility":1,"releases":[{"id":"010074F014628000","region":null}]},{"id":"c2bc0ed6-17f3-427d-9b63-62af415b9bc3","directory":"gleamlight","title":"Gleamlight","compatibility":0,"releases":[{"id":"0100ED2010292000","region":null}]},{"id":"c2c61e98-ee22-471a-a60e-6a2a6f2398bb","directory":"bounty-battle","title":"Bounty Battle","compatibility":99,"releases":[{"id":"0100E1200DC1A000","region":null}]},{"id":"c2d471d0-6551-465b-bcce-1e1bc14a7560","directory":"super-bit-blaster-xl","title":"Super Bit Blaster XL","compatibility":99,"releases":[{"id":"010048800E7A2000","region":null}]},{"id":"c2d5b18e-ec1d-41d1-9434-58d6bab24064","directory":"space-lift-danger-panic","title":"Space Lift Danger Panic!","compatibility":99,"releases":[{"id":"01000EB00BE02000","region":null}]},{"id":"c2e2676b-be7a-44dd-839f-401d9ff3d70d","directory":"bibi-and-tina-at-the-horse-farm","title":"Bibi & Tina at the horse farm","compatibility":99,"releases":[{"id":"010062400E69C000","region":null}]},{"id":"c2f9fe5d-0510-48da-a09c-78ac7e339d25","directory":"a-frog-game","title":"A Frog Game","compatibility":99,"releases":[{"id":"01006CE0134E6000","region":null}]},{"id":"c30d1e8a-3069-4bd0-9d9c-01efdb1b77a6","directory":"princess-loot-pixel-again","title":"Princess.Loot.Pixel.Again","compatibility":99,"releases":[{"id":"0100174015E56000","region":null}]},{"id":"c3152d38-ea8b-4d7e-a44e-9fe0e302830b","directory":"spitlings","title":"Spitlings","compatibility":99,"releases":[{"id":"010042700E3FC000","region":null}]},{"id":"c3252cdb-40ac-40b6-9b5f-394431741ed3","directory":"the-shrouded-isle","title":"The Shrouded Isle","compatibility":0,"releases":[{"id":"01007EB00D208000","region":null}]},{"id":"c3364000-53f8-4913-bb41-406c264bbfb0","directory":"cthulhu-saves-christmas","title":"Cthulhu Saves Christmas","compatibility":99,"releases":[{"id":"01006FA012FE0000","region":null}]},{"id":"c3396483-563a-41f4-9602-ff15585f7b9c","directory":"orangeblood","title":"Orangeblood","compatibility":99,"releases":[{"id":"0100993012968000","region":null}]},{"id":"c347fd3b-f67c-47c7-a9b5-eb2b33388351","directory":"greak-memories-of-azur","title":"Greak: Memories of Azur","compatibility":2,"releases":[{"id":"010045E012ECE000","region":null}]},{"id":"c34ee6b5-4717-4e2b-a792-14729e58c283","directory":"drive","title":"#DRIVE","compatibility":1,"releases":[{"id":"01000F20122FA000","region":null}]},{"id":"c35bbe0e-aeef-496e-a310-a8c309359646","directory":"yono-and-the-celestial-elephants","title":"Yono and the Celestial Elephants","compatibility":0,"releases":[{"id":"0100BE50042F6000","region":null}]},{"id":"c3678009-3b14-4ba6-9192-a10266aacdd2","directory":"mousecraft","title":"MouseCraft","compatibility":0,"releases":[{"id":"01004E500DB3C000","region":null}]},{"id":"c36c19f4-e6ad-44f4-8ce7-4c95bf5023bf","directory":"ooops-2","title":"Ooops! 2","compatibility":99,"releases":[{"id":"0100ED7014430000","region":null}]},{"id":"c36fa79b-fd3a-40ef-9392-59d753e01d9e","directory":"cardaclysm-shards-of-the-four","title":"Cardaclysm: Shards of the Four","compatibility":1,"releases":[{"id":"01001FC0152F6000","region":null}]},{"id":"c3801588-34cb-4bd1-9b95-02b08a0da6b2","directory":"mega-man-zerozx-legacy-collection","title":"Mega Man Zero/ZX Legacy Collection","compatibility":2,"releases":[{"id":"010025C00D410000","region":null}]},{"id":"c3826880-f006-458b-97d7-940ee6e0f563","directory":"physical-contact-speed","title":"Physical Contact: SPEED","compatibility":99,"releases":[{"id":"01008110036FE000","region":null}]},{"id":"c382deaf-24cb-4198-9430-f78e1690ee1f","directory":"venture-towns","title":"Venture Towns","compatibility":99,"releases":[{"id":"0100F1500CC64000","region":null}]},{"id":"c3850780-8ea6-4c81-908c-6667e1d4936a","directory":"aca-neogeo-zupapa","title":"ACA NEOGEO ZUPAPA!","compatibility":4,"releases":[{"id":"01002E700AFC4000","region":null}]},{"id":"c389b8ef-5f34-400d-a02b-e609297e3f76","directory":"clan-n","title":"Clan N","compatibility":4,"releases":[{"id":"010065000D25C000","region":null}]},{"id":"c38c93c5-f0a7-42e7-857a-c5a646d908bc","directory":"solar-flux","title":"Solar Flux","compatibility":99,"releases":[{"id":"0100153003AF2000","region":null}]},{"id":"c38f1774-3e17-42d8-a14e-3205da796d15","directory":"talking-tom-candy-run","title":"Talking Tom Candy Run","compatibility":2,"releases":[{"id":"01009720105B2000","region":null}]},{"id":"c3a525b6-f7ec-4a26-bac2-3e0197d6b1fc","directory":"animus-revenant","title":"ANIMUS: Revenant","compatibility":1,"releases":[{"id":"01009C60152B6000","region":null}]},{"id":"c3b1ea67-367c-4c42-b3fa-60b89d19393c","directory":"disgaea-4-complete","title":"Disgaea 4 Complete+","compatibility":1,"releases":[{"id":"0100A9800E9B4000","region":null}]},{"id":"c3b710d8-99c3-4e66-9c9e-084ae22d4fad","directory":"giana-sisters-twisted-dreams-owltimate-edition","title":"Giana Sisters: Twisted Dreams - Owltimate Edition","compatibility":4,"releases":[{"id":"01003830092B8000","region":null}]},{"id":"c3cc2715-dd15-42b6-94c1-a013327f6031","directory":"before-i-forget","title":"Before I Forget","compatibility":99,"releases":[{"id":"0100460012A10000","region":null}]},{"id":"c3d843e3-b286-495b-a0f1-b5c84cb76d2f","directory":"rival-megagun","title":"Rival Megagun","compatibility":99,"releases":[{"id":"0100A7D008392000","region":null}]},{"id":"c3d9961d-57e6-418d-bd65-c632910a8042","directory":"super-ping-pong-trick-shot","title":"Super Ping Pong Trick Shot","compatibility":99,"releases":[{"id":"01008EC005F88000","region":null}]},{"id":"c3dcdab8-53ec-4610-ad8c-49cbd6177ed8","directory":"curve-racer","title":"Curve Racer","compatibility":99,"releases":[{"id":"0100F54013E14000","region":null}]},{"id":"c3e2c019-baa6-4de3-bdb2-4fe2f52fc308","directory":"puzzle-adventure-blockle","title":"Puzzle Adventure Blockle","compatibility":99,"releases":[{"id":"0100F93004288000","region":null}]},{"id":"c3e3f18e-20f0-48df-8bc0-3c59a437b85f","directory":"b-ark","title":"B.ARK","compatibility":0,"releases":[{"id":"01009B901145C000","region":null}]},{"id":"c4023679-b969-4de0-9a74-760894285f10","directory":"ultragoodness-2","title":"UltraGoodness 2","compatibility":99,"releases":[{"id":"0100618013D62000","region":null}]},{"id":"c402759a-505f-4e69-a9bf-7064e306600d","directory":"dragons-dogma-dark-arisen","title":"Dragon's Dogma: Dark Arisen","compatibility":2,"releases":[{"id":"010032C00AC58000","region":null}]},{"id":"c40412e8-ae24-4eb7-97f5-a521fd5fd236","directory":"the-legend-of-heroes-trails-of-cold-steel-iv","title":"The Legend of Heroes: Trails of Cold Steel IV","compatibility":99,"releases":[{"id":"0100D3C010DE8000","region":null}]},{"id":"c40bb747-3023-4c87-9b99-e662ce05bbce","directory":"ever-forward","title":"Ever Forward","compatibility":99,"releases":[{"id":"0100CED01553A000","region":null}]},{"id":"c4133f2c-307b-4610-a36f-0c6d4ebe0732","directory":"happy-birthdays-demo","title":"Happy Birthdays Demo","compatibility":99,"releases":[{"id":"010069700AF9C000","region":null}]},{"id":"c427a2b0-0209-42e9-baa9-c651054e8a2b","directory":"cube-life-island-survival","title":"Cube Life: Island Survival","compatibility":99,"releases":[{"id":"0100519007636000","region":null}]},{"id":"c4291da6-e899-4d9f-a1fc-1ae6fc46130a","directory":"naruto-shippuden-ultimate-ninja-storm-2","title":"NARUTO SHIPPUDEN: Ultimate Ninja STORM 2","compatibility":99,"releases":[{"id":"0100922008008000","region":null}]},{"id":"c4305ae9-26c9-4cc6-b39e-e121c638f98e","directory":"dungeons-of-clay","title":"Dungeons of Clay","compatibility":1,"releases":[{"id":"0100BBB014E92000","region":null}]},{"id":"c43364a9-4ec6-4ff5-bf38-a74d25f63952","directory":"robotech-the-macross-saga-hd-edition","title":"Robotech: The Macross Saga HD Edition","compatibility":0,"releases":[{"id":"010060B0129CC000","region":null}]},{"id":"c4411a91-e256-40df-a155-1a22e0efce50","directory":"haunted-dungeonshyakki-castle","title":"Haunted Dungeons:Hyakki Castle","compatibility":99,"releases":[{"id":"010023F008204000","region":null}]},{"id":"c4456376-55e8-4ee6-8758-527c24370765","directory":"over-the-alps","title":"Over the Alps","compatibility":3,"releases":[{"id":"010036B0113DA000","region":null}]},{"id":"c44a489f-79bb-49dc-b70a-1ec5db6e612a","directory":"yum-yum-line","title":"Yum Yum Line","compatibility":99,"releases":[{"id":"0100A2F012DF0000","region":null}]},{"id":"c453103e-03ba-4d0f-ad3a-66fafc60676b","directory":"tin-kuna","title":"Tin & Kuna","compatibility":99,"releases":[{"id":"0100F7C010AF6000","region":null}]},{"id":"c45e9884-947d-4c4c-8212-653109dc1e42","directory":"samurai-jack-battle-through-time","title":"Samurai Jack: Battle Through Time","compatibility":2,"releases":[{"id":"01006C600E46E000","region":null}]},{"id":"c465feea-6b2f-4d11-9ddc-ac5f9197b3e2","directory":"dream","title":"Dream","compatibility":99,"releases":[{"id":"01008B20129F2000","region":null}]},{"id":"c46efd86-44de-4b38-a799-ac4eab7ce768","directory":"minefield","title":"Minefield","compatibility":99,"releases":[{"id":"01009C300DBAE000","region":null}]},{"id":"c470d2cf-8925-4f62-a3d8-be379fa27149","directory":"from-orbit","title":"From Orbit","compatibility":99,"releases":[{"id":"0100AE600DBE4000","region":null}]},{"id":"c4752998-ed9e-4a76-b23c-5f266f8bd0ab","directory":"grow-song-of-the-evertree","title":"Grow: Song of The Evertree","compatibility":2,"releases":[{"id":"0100409012F96000","region":null}]},{"id":"c4790696-6960-48ba-b3a9-2afb4fe10c2d","directory":"sam-max-save-the-world","title":"Sam & Max Save the World","compatibility":2,"releases":[{"id":"0100CD301354E000","region":null}]},{"id":"c47f3a10-d5ce-447c-a962-0ece8c570c50","directory":"sky-jaguar-2","title":"Sky Jaguar 2","compatibility":99,"releases":[{"id":"0100E0C010AB8000","region":null}]},{"id":"c4952f9f-21b4-4ee7-8e6b-fe281200c845","directory":"steamworld-heist-ultimate-edition","title":"SteamWorld Heist: Ultimate Edition","compatibility":3,"releases":[{"id":"0100A21007FFA000","region":null}]},{"id":"c4971599-2b71-43be-b442-417f16ba1e12","directory":"arcade-archives-halleys-comet","title":"Arcade Archives HALLEY'S COMET","compatibility":99,"releases":[{"id":"01006F9013B04000","region":null}]},{"id":"c4af1761-221f-42ff-b44a-8bea86898d66","directory":"bouncy-bob","title":"Bouncy Bob","compatibility":0,"releases":[{"id":"0100A2700A86E000","region":null}]},{"id":"c4b56fdf-8a54-427a-94f4-5b2b10d978c7","directory":"conga-master-party","title":"Conga Master Party!","compatibility":1,"releases":[{"id":"01007EF00399C000","region":null}]},{"id":"c4c82a56-178b-4d0c-aed2-7b9a8b218fa0","directory":"super-mombo-quest","title":"Super Mombo Quest","compatibility":99,"releases":[{"id":"0100DCC01376E000","region":null}]},{"id":"c4e8e471-9520-40e8-a0a0-25ba5fc103f8","directory":"panzer-paladin","title":"Panzer Paladin","compatibility":0,"releases":[{"id":"01004AE0108E0000","region":null}]},{"id":"c4f0b495-2d6f-4019-bb72-a70d77c66d55","directory":"flatland-prologue","title":"Flatland: Prologue","compatibility":99,"releases":[{"id":"0100B54012798000","region":null}]},{"id":"c5023d0c-fbc6-4969-837d-7e480ebf930a","directory":"one-piece-pirate-warriors-4","title":"ONE PIECE: PIRATE WARRIORS 4","compatibility":1,"releases":[{"id":"01008FE00E2F6000","region":null}]},{"id":"c502f999-e412-4572-81f2-7c0f47096359","directory":"death-race-2020","title":"Death Race 2020","compatibility":99,"releases":[{"id":"0100DD6013126000","region":null}]},{"id":"c5039b64-f5bf-4ae7-b551-3a6909e19997","directory":"deadbolt","title":"DEADBOLT","compatibility":0,"releases":[{"id":"01002ED00ACC0000","region":null}]},{"id":"c50529fe-7aef-4dfd-a0d2-0ae4d17e3ee0","directory":"escape-route","title":"Escape Route","compatibility":99,"releases":[{"id":"01009210144D4000","region":null}]},{"id":"c50b88f0-ff29-4937-84b1-eb4c2220f6d6","directory":"road-to-ballhalla","title":"Road to Ballhalla","compatibility":99,"releases":[{"id":"010002F009A7A000","region":null}]},{"id":"c50d9f1d-b075-4939-8866-0ee0279d6835","directory":"arcade-archives-armed-f","title":"Arcade Archives Armed F","compatibility":4,"releases":[{"id":"010014F001DE2000","region":null}]},{"id":"c50fa8d0-d653-48fb-b6c6-6deceb0f6f08","directory":"queens-quest-3-the-end-of-dawn","title":"Queen's Quest 3: The End of Dawn","compatibility":99,"releases":[{"id":"0100D4400D994000","region":null}]},{"id":"c51bca60-2437-4b21-aae8-4d7bdae36d85","directory":"half-dead","title":"HALF DEAD","compatibility":99,"releases":[{"id":"0100552011612000","region":null}]},{"id":"c522f52d-5498-446a-937b-90f3e64354cf","directory":"black-jack-world-tour","title":"Black Jack World Tour","compatibility":99,"releases":[{"id":"0100CDA013BFA000","region":null}]},{"id":"c5265389-4fe1-411b-9663-f6faa9199a7b","directory":"lost-dream","title":"Lost Dream","compatibility":99,"releases":[{"id":"01007A00162B8000","region":null}]},{"id":"c5277259-c305-45ce-868b-8b689945e062","directory":"uchu-shinshuchu","title":"Uchu Shinshuchu","compatibility":0,"releases":[{"id":"01007B1014570000","region":null}]},{"id":"c53a45b7-0c68-4de1-aa08-61822a61ae72","directory":"armed-to-the-gears","title":"Armed to the Gears","compatibility":99,"releases":[{"id":"0100BF1016A66000","region":null}]},{"id":"c53c81d9-d56f-4d53-ae8a-a92efd2752b4","directory":"keywe","title":"KeyWe","compatibility":1,"releases":[{"id":"0100E2B012056000","region":null}]},{"id":"c53f1c68-f8ee-42f0-be0a-e887379d43f1","directory":"g-mode-archives25-topolon","title":"G-MODE Archives25 Topolon","compatibility":99,"releases":[{"id":"0100038013A98000","region":null}]},{"id":"c54743be-644e-454c-be63-53bb934ef347","directory":"sally-face","title":"Sally Face","compatibility":1,"releases":[{"id":"0100BBF0122B4000","region":null}]},{"id":"c5597c17-3bb6-43aa-9606-7c7d9b1bb3a3","directory":"ohedo-towns","title":"Oh!Edo Towns","compatibility":99,"releases":[{"id":"01009A700DA8E000","region":null}]},{"id":"c559fe44-3396-48fc-910d-d543700b7185","directory":"pillar-demo","title":"Pillar Demo","compatibility":99,"releases":[{"id":"0100F5400D534000","region":null}]},{"id":"c561d0b7-c8c5-4208-acca-840c803473c2","directory":"half-past-fate-romantic-distancing","title":"Half Past Fate: Romantic Distancing","compatibility":1,"releases":[{"id":"0100095013EBA000","region":null}]},{"id":"c580d5a7-3d75-41e6-be41-f6e73ae26735","directory":"paradox-error","title":"Paradox Error","compatibility":99,"releases":[{"id":"010003A014D3A000","region":null}]},{"id":"c583921f-bbb6-4782-9f50-50d403bd694f","directory":"outbuddies-dx","title":"Outbuddies DX","compatibility":3,"releases":[{"id":"0100B8900EFA6000","region":null}]},{"id":"c58ad2f5-58f0-4568-9d27-8b8402b88949","directory":"time-carnage","title":"Time Carnage","compatibility":99,"releases":[{"id":"01004C500B698000","region":null}]},{"id":"c596bc23-68ed-4ee6-a985-026d1f082847","directory":"sagebrush","title":"Sagebrush","compatibility":99,"releases":[{"id":"010012100E208000","region":null}]},{"id":"c5a35c54-8e59-4f95-ae34-5a3e28afb163","directory":"opus-rocket-of-whispers","title":"OPUS: Rocket of Whispers","compatibility":99,"releases":[{"id":"01002C4009990000","region":null}]},{"id":"c5a90b54-c014-407c-b062-416818ff8b08","directory":"hero-hours-contract","title":"Hero Hours Contract","compatibility":99,"releases":[{"id":"0100EEE012280000","region":null}]},{"id":"c5af09f2-954c-4d4f-8929-b20649a3806b","directory":"colossus-down","title":"Colossus Down","compatibility":0,"releases":[{"id":"0100E2F0128B4000","region":null}]},{"id":"c5bab20d-5fc9-4021-910c-035713aca436","directory":"ms-splosion-man","title":"Ms. Splosion Man","compatibility":1,"releases":[{"id":"01005EF00B4BC000","region":null}]},{"id":"c5bd6cab-24b6-469f-bfdd-61d7c5988376","directory":"colossus-mission","title":"Colossus Mission","compatibility":99,"releases":[{"id":"010047A014B40000","region":null}]},{"id":"c5cc8f04-91fb-449b-a5d7-3c980da652d2","directory":"molecats","title":"Molecats","compatibility":99,"releases":[{"id":"0100E1100D92C000","region":null}]},{"id":"c5cc9870-0c01-4f1e-ac26-647465624e8e","directory":"hero-must-die-again","title":"Hero must die. again","compatibility":0,"releases":[{"id":"010049500F996000","region":null}]},{"id":"c5debb59-12e1-4307-aca2-46702ca0bb3f","directory":"pixel-game-maker-series-osyaberi-horijyo-holin-slash","title":"Pixel Game Maker Series Osyaberi! Horijyo! Holin Slash","compatibility":99,"releases":[{"id":"010061D0144D0000","region":null}]},{"id":"c5e150df-cc0a-4c74-a4a9-35660878087d","directory":"arcade-fuzz","title":"ARCADE FUZZ","compatibility":99,"releases":[{"id":"01005A8010C7E000","region":null}]},{"id":"c5e822e5-5d3a-4ec6-9a9d-0e3232feb159","directory":"gem-crash","title":"GEM CRASH","compatibility":99,"releases":[{"id":"010011000972A000","region":null}]},{"id":"c5e897c4-02e1-40b0-af27-60aa4267fc81","directory":"jdm-racing-2","title":"JDM Racing - 2","compatibility":0,"releases":[{"id":"01004C60139DE000","region":null}]},{"id":"c5ebebab-70b3-4fe8-bcbe-45d455ef1b9e","directory":"basketball-club-story","title":"Basketball Club Story","compatibility":99,"releases":[{"id":"010061B0114C4000","region":null}]},{"id":"c5eceaff-c78c-4fa1-acfd-2317a2770638","directory":"dog-duty","title":"Dog Duty","compatibility":99,"releases":[{"id":"01005D00107E8000","region":null}]},{"id":"c5f85324-98f8-4296-b4f9-3fb48763f150","directory":"idle-champions-of-the-forgotten-realms","title":"Idle Champions of the Forgotten Realms","compatibility":99,"releases":[{"id":"01001E700EB28000","region":null}]},{"id":"c6056fab-1f50-47dc-b82d-e5693251dc36","directory":"izneo","title":"izneo","compatibility":99,"releases":[{"id":"0100D8E00C874000","region":null}]},{"id":"c60e3e1b-4ce1-49b6-8317-5f0cd9c3479a","directory":"blaster-master-zero-demo","title":"Blaster Master Zero Demo","compatibility":99,"releases":[{"id":"010025B002E92000","region":null}]},{"id":"c60f03dc-95ae-4bff-b5a5-47d40a0bf223","directory":"alone-with-you","title":"Alone With You","compatibility":99,"releases":[{"id":"0100F0F01161A000","region":null}]},{"id":"c60fde57-6e37-4c66-8da8-e5c7104a6273","directory":"mx-nitro-unleashed","title":"MX Nitro: Unleashed","compatibility":99,"releases":[{"id":"0100161009E5C000","region":null}]},{"id":"c6213daa-3be8-4569-8fc0-636aaba3d10c","directory":"sword-art-online-hollow-realization-deluxe-edition","title":"SWORD ART ONLINE: Hollow Realization Deluxe Edition","compatibility":0,"releases":[{"id":"0100EC400D54E000","region":null}]},{"id":"c621a0e0-b234-40d2-b163-4394ddc3cd38","directory":"sweet-sugar-candy","title":"Sweet Sugar Candy","compatibility":99,"releases":[{"id":"010093F0155B0000","region":null}]},{"id":"c62a6831-c9f3-493f-b731-660b0dbc8725","directory":"capes-escape-game-2-5th-room","title":"Cape's Escape Game 2.5th Room","compatibility":99,"releases":[{"id":"01006320151D6000","region":null}]},{"id":"c62bee64-4378-4aeb-917c-cc950297e092","directory":"bug-fables-the-everlasting-sapling","title":"Bug Fables: The Everlasting Sapling","compatibility":1,"releases":[{"id":"010051A00E99E000","region":null}]},{"id":"c64cfd0b-e5a5-4adf-8f31-edf41b4c6767","directory":"struggling","title":"Struggling","compatibility":99,"releases":[{"id":"0100681011B56000","region":null}]},{"id":"c6554ce4-fcc4-4976-8125-e7521b65253e","directory":"riverbond","title":"Riverbond","compatibility":99,"releases":[{"id":"010087200289A000","region":null}]},{"id":"c656a41d-1b8f-4d19-8de4-858d7af2e70b","directory":"space-invaders-forever","title":"Space Invaders Forever","compatibility":0,"releases":[{"id":"0100F0C012C10000","region":null}]},{"id":"c65bbb0c-e378-4902-a7fd-ede1e179e257","directory":"super-star-panda","title":"Super Star Panda","compatibility":99,"releases":[{"id":"01005EB01363C000","region":null}]},{"id":"c6694e0b-5ee2-48ca-94c1-762b004051bc","directory":"piffle-a-cat-puzzle-adventure","title":"Piffle: A Cat Puzzle Adventure","compatibility":99,"releases":[{"id":"010092B010448000","region":null}]},{"id":"c672ea3a-7571-489e-b571-34e67250cd62","directory":"vigor","title":"Vigor","compatibility":99,"releases":[{"id":"0100E8200DAF4000","region":null}]},{"id":"c67c7673-d0cd-4422-b7e9-868e04dc2001","directory":"atelier-lydie-suelle-the-alchemists-and-the-mysterious-paintings-dx","title":"Atelier Lydie & Suelle: The Alchemists and the Mysterious Paintings DX","compatibility":3,"releases":[{"id":"01001A5014220000","region":null}]},{"id":"c67d00b0-1004-4c5e-a400-8fc4c940f1df","directory":"terror-squid","title":"TERROR SQUID","compatibility":99,"releases":[{"id":"010070C00FB56000","region":null}]},{"id":"c67da557-41b9-4b68-8a72-a4726da464f4","directory":"xenoblade-chronicles-2","title":"Xenoblade Chronicles 2","compatibility":2,"releases":[{"id":"0100E95004038000","region":null}]},{"id":"c6936c20-81e1-4129-a590-569b523dda03","directory":"arcade-archives-bio-ship-paladin","title":"Arcade Archives BIO-SHIP PALADIN","compatibility":99,"releases":[{"id":"010011D01505A000","region":null}]},{"id":"c6975b28-ef98-489c-9143-3a173730913f","directory":"80s-overdrive","title":"80's OVERDRIVE","compatibility":1,"releases":[{"id":"01006B1011B9E000","region":null}]},{"id":"c69c969c-6aed-4d46-a4a1-a7d2a5037e28","directory":"batman-the-telltale-series","title":"Batman - The Telltale Series","compatibility":1,"releases":[{"id":"0100011005D92000","region":null}]},{"id":"c6b3392a-ba8b-4f43-92f3-980be6b3649c","directory":"awkward","title":"Awkward","compatibility":99,"releases":[{"id":"010073900A7A0000","region":null}]},{"id":"c6b3c4bd-341e-464e-8613-152b793c221f","directory":"roundout-by-powgi","title":"Roundout by POWGI","compatibility":99,"releases":[{"id":"01000A001399A000","region":null}]},{"id":"c6bb32ac-2f51-492e-97d3-6a4d7cc62d72","directory":"clocker","title":"Clocker","compatibility":0,"releases":[{"id":"0100DF9013AD4000","region":null}]},{"id":"c6c23234-cb23-4951-be87-ea43e4c4d88e","directory":"smart-moves","title":"Smart Moves","compatibility":99,"releases":[{"id":"0100DA9013AB4000","region":null}]},{"id":"c6c5196d-2d33-4cfd-a302-f2a75f53bbb1","directory":"poly-bridge","title":"Poly Bridge","compatibility":1,"releases":[{"id":"0100EAB00605C000","region":null}]},{"id":"c6c53ece-e0a0-4bd1-80a7-1504997e7844","directory":"day-and-night","title":"Day and Night","compatibility":99,"releases":[{"id":"0100FCF00F6CC000","region":null}]},{"id":"c6ce761e-93e7-410c-8b84-e7a2c9716ba4","directory":"help-me-doctor","title":"Help Me Doctor","compatibility":99,"releases":[{"id":"01005080105C8000","region":null}]},{"id":"c6d370d1-fa68-4dfc-8d59-1e04643c0f1c","directory":"aca-neogeo-thrash-rally","title":"ACA NEOGEO THRASH RALLY","compatibility":3,"releases":[{"id":"010061900AFAC000","region":null}]},{"id":"c6d7e672-d0c4-491d-9b83-369409e8a026","directory":"dark-tower-rpg-dungeon-puzzle","title":"Dark Tower: RPG Dungeon Puzzle","compatibility":99,"releases":[{"id":"01001A5010CC6000","region":null}]},{"id":"c6e6e2ce-7526-4e9f-bc0d-0add47f575f3","directory":"7-years-from-now","title":"7 Years From Now","compatibility":99,"releases":[{"id":"0100E75014A64000","region":null}]},{"id":"c6f6cdec-9c8b-4988-80fa-2efb5b5492f4","directory":"go-all-out","title":"Go All Out!","compatibility":99,"releases":[{"id":"01000C800FADC000","region":null}]},{"id":"c6f81396-960a-449d-8707-ae70705b6aca","directory":"36-fragments-of-midnight","title":"36 Fragments of Midnight","compatibility":1,"releases":[{"id":"01003670066DE000","region":null}]},{"id":"c6fed24d-0b4e-4d5a-8af1-295107438f0b","directory":"super-dragonfly-chronicles","title":"Super Dragonfly Chronicles","compatibility":99,"releases":[{"id":"0100967012972000","region":null}]},{"id":"c7168215-db59-4b56-9e4d-7199c6763952","directory":"overboard","title":"Overboard!","compatibility":99,"releases":[{"id":"01000CA014CA0000","region":null}]},{"id":"c729b6fc-b9a8-4eb6-97e5-dfa7465c1fe9","directory":"outbreak-lost-hope","title":"Outbreak Lost Hope","compatibility":99,"releases":[{"id":"0100D9F013102000","region":null}]},{"id":"c72e41d9-0255-454f-b3a7-8ebc2cc816f7","directory":"coloring-book","title":"Coloring Book","compatibility":3,"releases":[{"id":"0100A7000BD28000","region":null}]},{"id":"c73107cb-1ecd-47e5-a035-ac06076c424e","directory":"tonight-we-riot","title":"Tonight We Riot","compatibility":99,"releases":[{"id":"0100D400100F8000","region":null}]},{"id":"c7530f7b-7243-4a7d-b5f1-f25df7b34ee6","directory":"r-type-r-final-2","title":"R-Type® Final 2","compatibility":3,"releases":[{"id":"0100F930136B6000","region":null}]},{"id":"c7572b6f-6bcd-40dd-a6c3-6c76f3205eed","directory":"nirvana-pilot-yume","title":"Nirvana Pilot Yume","compatibility":2,"releases":[{"id":"010020901088A000","region":null}]},{"id":"c785a106-ecbe-4b09-8fca-cf71c820f7d7","directory":"broken-lines","title":"Broken Lines","compatibility":1,"releases":[{"id":"0100A5800F6AC000","region":null},{"id":"0100BD8011BCC000","region":null}]},{"id":"c7880c0b-eea1-4168-9462-8b4a8364e8c3","directory":"trash-quest","title":"Trash Quest","compatibility":99,"releases":[{"id":"0100F19016702000","region":null}]},{"id":"c78b731a-1ed2-45f7-956e-2a4332520511","directory":"darkwood","title":"Darkwood","compatibility":1,"releases":[{"id":"010033500B7B6000","region":null}]},{"id":"c78e982c-d988-4544-8675-88750029221b","directory":"ubongo","title":"Ubongo","compatibility":0,"releases":[{"id":"0100992010BF8000","region":null}]},{"id":"c79189cb-b90f-4a7d-b458-ce8311ff6657","directory":"everybody-hearts","title":"Everybody, Hearts!","compatibility":99,"releases":[{"id":"0100A6900B77A000","region":null}]},{"id":"c79858c0-d88c-4ca1-b50d-e4522bd7ee37","directory":"cubers-arena","title":"Cubers: Arena","compatibility":99,"releases":[{"id":"010082E00F1CE000","region":null}]},{"id":"c7b987ff-6bbc-4527-bd44-32a59a866a2f","directory":"motogp-21","title":"MotoGP™21","compatibility":99,"releases":[{"id":"01000F5013820000","region":null}]},{"id":"c7c587e4-af22-452c-a28e-71009f361d2d","directory":"nekopara-vol1","title":"NEKOPARA Vol.1","compatibility":0,"releases":[{"id":"0100B4900AD3E000","region":null}]},{"id":"c7ca700c-6079-4f37-9aed-644cdc4f0a52","directory":"eagle-island","title":"Eagle Island","compatibility":0,"releases":[{"id":"010037400C7DA000","region":null}]},{"id":"c7cafc76-bd43-44e8-874c-5b19de1c42da","directory":"gofishing-3d","title":"GoFishing 3D","compatibility":99,"releases":[{"id":"01007BC00DE68000","region":null}]},{"id":"c7eb7d5b-b786-4953-ac78-c75f7d13ee08","directory":"doctor-who-the-lonely-assassins","title":"Doctor Who: The Lonely Assassins","compatibility":99,"releases":[{"id":"010007C0136C4000","region":null}]},{"id":"c807d286-1157-4f60-a907-573e5bc789d4","directory":"victor-vran-overkill-edition","title":"Victor Vran Overkill Edition","compatibility":99,"releases":[{"id":"0100E81007A06000","region":null}]},{"id":"c812cfae-21b3-4b86-8411-5a1e2b06b998","directory":"bioshock-the-collection","title":"BioShock: The Collection","compatibility":2,"releases":[{"id":"0100AD10102B2000","region":null}]},{"id":"c8259c90-60a8-4f4f-93d9-6f5add86a6a7","directory":"horizon-shift-81","title":"Horizon Shift '81","compatibility":99,"releases":[{"id":"010025300B914000","region":null}]},{"id":"c83b8b67-fa1a-4977-89c2-b9546cd22ccc","directory":"death-crown","title":"Death Crown","compatibility":99,"releases":[{"id":"0100A780135C8000","region":null}]},{"id":"c846733a-5cda-4100-bac7-1cf72fd9d44a","directory":"mina-michi","title":"Mina & Michi","compatibility":99,"releases":[{"id":"0100CBD012CF4000","region":null}]},{"id":"c84dae3a-ae58-44c9-986c-84b45b98f4b5","directory":"our-summer-festival","title":"Our Summer Festival","compatibility":99,"releases":[{"id":"0100D18016DAA000","region":null}]},{"id":"c85870fd-0bb0-446f-af8c-951b903c7138","directory":"exorder","title":"EXORDER","compatibility":1,"releases":[{"id":"0100FA800A1F4000","region":null}]},{"id":"c8637bd3-9250-4a2f-b4da-1e23e140389b","directory":"etherborn","title":"Etherborn","compatibility":5,"releases":[{"id":"01000E200BE10000","region":null}]},{"id":"c86b2560-afce-4370-acc3-5eca5f29ba72","directory":"yu-gi-oh-rush-duel-dawn-of-the-battle-royale","title":"Yu-Gi-Oh! RUSH DUEL: Dawn of the Battle Royale!!","compatibility":1,"releases":[{"id":"0100261015BE2000","region":null}]},{"id":"c87bc37f-ef27-43f4-b824-5714c8154f82","directory":"monaco-complete-edition","title":"Monaco: Complete Edition","compatibility":99,"releases":[{"id":"010007300DE1E000","region":null}]},{"id":"c87e85b6-0fe7-4d4c-9ce0-aa613686c26a","directory":"florence","title":"Florence","compatibility":0,"releases":[{"id":"010040700E8FC000","region":null}]},{"id":"c88710da-767d-4188-afe0-5d1b78b93930","directory":"my-universe-school-teacher","title":"My Universe - School Teacher","compatibility":99,"releases":[{"id":"01006C301199C000","region":null}]},{"id":"c88b6d61-2399-440d-badb-ec4125e4feea","directory":"world-for-two","title":"World for Two","compatibility":0,"releases":[{"id":"0100FC2012680000","region":null}]},{"id":"c897e8b0-584e-487b-81db-5c9d1930f492","directory":"castlestorm-ii","title":"CastleStorm II","compatibility":99,"releases":[{"id":"010007400EB64000","region":null}]},{"id":"c899441c-408c-40a2-8136-13495e10b713","directory":"fancy-solitaire","title":"Fancy Solitaire","compatibility":99,"releases":[{"id":"010055000F788000","region":null}]},{"id":"c8a34fbf-6b29-499d-ad60-99a0c6a4342c","directory":"shadow-fight-2","title":"Shadow Fight 2","compatibility":0,"releases":[{"id":"0100AB000ABFE000","region":null}]},{"id":"c8a6574e-5633-451b-89bc-78b688436795","directory":"cooking-tycoons-3-in-1-bundle","title":"Cooking Tycoons - 3 in 1 Bundle","compatibility":99,"releases":[{"id":"0100DF9010206000","region":null}]},{"id":"c8a7e202-d394-4ecc-a196-aed42620f516","directory":"sakura-succubus-2","title":"Sakura Succubus 2","compatibility":99,"releases":[{"id":"0100BC70149C6000","region":null}]},{"id":"c8ac42c0-fe02-40e2-808f-54fbc98c8361","directory":"nekomiko","title":"NekoMiko","compatibility":4,"releases":[{"id":"010043200F874000","region":null}]},{"id":"c8bd7d7d-3ee8-4356-aeac-79ec0e1e221e","directory":"long-ago-a-puzzle-tale","title":"Long Ago: A Puzzle Tale","compatibility":99,"releases":[{"id":"010063C00C688000","region":null}]},{"id":"c8bda8ca-1f8f-46a8-8901-f1f8d45d1a1c","directory":"party-planet","title":"Party Planet","compatibility":3,"releases":[{"id":"01004F10066B0000","region":null}]},{"id":"c8bfd672-8dde-4e61-b687-e72b4a64bbd4","directory":"pixboy","title":"Pixboy","compatibility":99,"releases":[{"id":"01005F2011F8C000","region":null}]},{"id":"c8c35b41-41df-4617-b1e8-cb31f72e08ed","directory":"crumble","title":"Crumble","compatibility":99,"releases":[{"id":"010011001458E000","region":null}]},{"id":"c8c4c39f-0b63-401c-a7ce-20258c7b877d","directory":"fullblast","title":"FullBlast","compatibility":0,"releases":[{"id":"01008D800AE4A000","region":null}]},{"id":"c8d292fa-dc62-4b41-905f-0cc7c8fd747f","directory":"hell-warders","title":"Hell Warders","compatibility":99,"releases":[{"id":"0100A2100BFCE000","region":null}]},{"id":"c8e092a1-e3e9-48c7-893e-448d60ab0dd1","directory":"rogue-wizards","title":"Rogue Wizards","compatibility":99,"releases":[{"id":"010076301319C000","region":null}]},{"id":"c8e550c4-6bbc-4501-a2ae-595a7188f7a9","directory":"shio","title":"Shio","compatibility":2,"releases":[{"id":"0100C2F00A568000","region":null}]},{"id":"c8f1d30a-f337-4984-ada3-99751fb468af","directory":"rise-of-insanity","title":"Rise of Insanity","compatibility":99,"releases":[{"id":"0100E9C010EA8000","region":null}]},{"id":"c9046710-9cdb-44bc-af35-7c9ec414b55f","directory":"chiki-chiki-boxy-racers","title":"Chiki-Chiki Boxy Racers","compatibility":1,"releases":[{"id":"01003CD00BE22000","region":null}]},{"id":"c90c3e60-5f47-46e7-aa30-deb550e13654","directory":"super-loop-drive","title":"Super Loop Drive","compatibility":3,"releases":[{"id":"01003E300FCAE000","region":null}]},{"id":"c91ac644-6113-4192-bb54-fefd37103fce","directory":"monster-energy-supercross-the-official-videogame-3","title":"Monster Energy Supercross - The Official Videogame 3","compatibility":3,"releases":[{"id":"010097800EA20000","region":null}]},{"id":"c933bafc-c4a2-4828-a2e8-0d9a10fd5d54","directory":"alt-frequencies","title":"Alt-Frequencies","compatibility":0,"releases":[{"id":"01003E700FD66000","region":null}]},{"id":"c944b8b7-09c1-4e6f-bbaa-0e5e1ae73619","directory":"frozen-friends","title":"Frozen Friends","compatibility":99,"releases":[{"id":"0100F8A010AEC000","region":null}]},{"id":"c9502af2-1fb5-4a15-acad-178f4c72ef60","directory":"the-swords-of-ditto-mormos-curse","title":"The Swords of Ditto: Mormo's Curse","compatibility":2,"releases":[{"id":"010037D00D568000","region":null}]},{"id":"c956eec0-0b9f-4cdf-b988-572b1f732abe","directory":"piczle-colors-demo","title":"Piczle Colors Demo","compatibility":99,"releases":[{"id":"010002A00D168000","region":null}]},{"id":"c9606e8a-9a3a-4798-b71d-7a9360b1f91d","directory":"tribal-pass","title":"Tribal Pass","compatibility":99,"releases":[{"id":"0100CCB012D4C000","region":null}]},{"id":"c9694e53-6387-49e4-a37b-43e7b17da247","directory":"galaxy-warfighter","title":"Galaxy Warfighter","compatibility":99,"releases":[{"id":"0100EDB01005C000","region":null}]},{"id":"c97691c0-6202-47f7-b2df-ac0ce4d9e9f5","directory":"gonner2","title":"GONNER2","compatibility":99,"releases":[{"id":"0100EA70127F2000","region":null}]},{"id":"c977bf2a-7cb0-4744-877c-a40f047b430b","directory":"neon-chrome","title":"Neon Chrome","compatibility":99,"releases":[{"id":"010075E0047F8000","region":null}]},{"id":"c9789750-ed07-49df-b9b1-64fef0c1efe9","directory":"crimson-spires","title":"Crimson Spires","compatibility":99,"releases":[{"id":"0100DC4013FFE000","region":null}]},{"id":"c99210a5-3b14-4ce9-81cb-1580c775b21d","directory":"sleep-attack","title":"Sleep Attack","compatibility":99,"releases":[{"id":"010050500FE30000","region":null}]},{"id":"c99f9891-7482-41ac-8513-14c17d23376f","directory":"battle-of-archers","title":"Battle of Archers","compatibility":99,"releases":[{"id":"0100B4801683A000","region":null}]},{"id":"c9a0ad16-0391-484b-82f1-fc15f75f07f9","directory":"smoots-golf","title":"Smoots Golf","compatibility":2,"releases":[{"id":"010030F015C8C000","region":null}]},{"id":"c9a6703f-c003-4388-a157-625a8d8c8cc3","directory":"samurai-warriors-5","title":"SAMURAI WARRIORS 5","compatibility":1,"releases":[{"id":"0100B28014132000","region":null}]},{"id":"c9aa3ef9-2f51-44a6-9117-c99c286b97f0","directory":"spy-alarm","title":"Spy Alarm","compatibility":99,"releases":[{"id":"01000E6015350000","region":null}]},{"id":"c9c0045d-b41a-4c50-80ce-2da2fe54801a","directory":"little-shopping","title":"Little Shopping","compatibility":99,"releases":[{"id":"0100DD700D95E000","region":null}]},{"id":"c9e0a022-6250-4a05-b591-838fbd6d843b","directory":"carebotz","title":"Carebotz","compatibility":99,"releases":[{"id":"0100BE00156AC000","region":null}]},{"id":"c9e202ab-9511-4013-a1b8-dfdbb8604f48","directory":"ball-attraction","title":"Ball Attraction","compatibility":99,"releases":[{"id":"010038F00ED14000","region":null}]},{"id":"c9ebf74b-b993-498b-acc7-7c7ad895bc3e","directory":"teddy-the-wanderer-kayaking","title":"Teddy the Wanderer: Kayaking","compatibility":99,"releases":[{"id":"0100F6200CBE0000","region":null}]},{"id":"c9ee83b4-f943-4b6d-bb80-b554667e944f","directory":"neighbours-back-from-hell","title":"Neighbours back From Hell","compatibility":1,"releases":[{"id":"010065F00F55A000","region":null}]},{"id":"c9f2a078-76ad-4fd8-a582-9ff6d79fb213","directory":"astro-duel-deluxe","title":"Astro Duel Deluxe","compatibility":1,"releases":[{"id":"0100F0400351C000","region":null}]},{"id":"c9f3a8ee-539b-429e-a3dc-4827c00ed4e2","directory":"sakura-nova","title":"Sakura Nova","compatibility":99,"releases":[{"id":"0100434015F7A000","region":null}]},{"id":"c9f3c0d2-9ad6-4001-b6c8-56c05f36c6f4","directory":"ritual-sorcerer-angel","title":"Ritual: Sorcerer Angel","compatibility":99,"releases":[{"id":"0100BD300F0EC000","region":null}]},{"id":"ca063b3e-bb1e-40b5-b245-ffb883ca0468","directory":"word-search-by-powgi-demo","title":"Word Search by POWGI Demo","compatibility":99,"releases":[{"id":"01009CF00A9C4000","region":null}]},{"id":"ca07bbf3-f069-4be0-aac1-bb00be43090a","directory":"arcade-archives-mario-bros","title":"Arcade Archives Mario Bros.","compatibility":0,"releases":[{"id":"0100755004608000","region":null}]},{"id":"ca09113d-782f-49c1-af49-b7b6125dd91a","directory":"pandemic","title":"Pandemic","compatibility":99,"releases":[{"id":"0100ADA00AD2E000","region":null}]},{"id":"ca17739e-04c3-47ec-a563-073ed05f054d","directory":"miners-races","title":"Miners Races","compatibility":99,"releases":[{"id":"0100EDA0163FE000","region":null}]},{"id":"ca188a91-920a-4852-9493-9ff85d54a13b","directory":"jet-lancer","title":"Jet Lancer","compatibility":5,"releases":[{"id":"0100F3500C70C000","region":null}]},{"id":"ca271e50-aedb-4830-8203-b60257d0e826","directory":"x-force-genesis","title":"X-Force Genesis","compatibility":1,"releases":[{"id":"010006C015C4A000","region":null}]},{"id":"ca317cda-7024-42ca-b3f8-1d83d865382c","directory":"1971-project-helios","title":"1971 Project Helios","compatibility":1,"releases":[{"id":"0100829010F4A000","region":null}]},{"id":"ca4b7009-3f74-42cc-b7e0-4e3cbfe1ddb8","directory":"super-archer","title":"Super Archer","compatibility":99,"releases":[{"id":"01008BE0155C0000","region":null}]},{"id":"ca5126d5-9123-468a-a88a-a9ff1516c3a8","directory":"littlewood","title":"Littlewood","compatibility":99,"releases":[{"id":"0100D1600EEBC000","region":null}]},{"id":"ca860e07-fdb5-4b0e-90ee-d0eed85446db","directory":"my-universe-cooking-star-restaurant","title":"My Universe - Cooking Star Restaurant","compatibility":99,"releases":[{"id":"0100158011A08000","region":null}]},{"id":"ca87641d-56c0-4771-9d1a-6636443d99ca","directory":"fly-oclock","title":"Fly O'Clock","compatibility":99,"releases":[{"id":"0100EDA00BBBE000","region":null}]},{"id":"ca88d3c0-d699-427e-9115-40bdda21bbd3","directory":"star-wars-pinball","title":"Star Wars Pinball","compatibility":2,"releases":[{"id":"01006DA00DEAC000","region":null}]},{"id":"ca8fd81a-ca35-40ae-964f-a0eb52e9d781","directory":"connect-the-dots","title":"Connect the Dots","compatibility":99,"releases":[{"id":"01007B30157A2000","region":null}]},{"id":"ca931d96-4ce8-4d58-8664-4c1ef5593081","directory":"pixel-devil-and-the-broken-cartridge","title":"Pixel Devil and the Broken Cartridge","compatibility":0,"releases":[{"id":"010011300D52A000","region":null}]},{"id":"ca960350-0efb-45dd-aaf1-f19b6b6b48b9","directory":"fallen-legion-revenants","title":"Fallen Legion Revenants","compatibility":99,"releases":[{"id":"0100AA801258C000","region":null}]},{"id":"ca96c634-e015-4a47-bd6a-bc667e8de962","directory":"pangeon","title":"Pangeon","compatibility":99,"releases":[{"id":"0100EF701265E000","region":null}]},{"id":"ca9713ee-7e6e-4326-b0da-fa63065076d8","directory":"tengam","title":"Tengam","compatibility":99,"releases":[{"id":"0100FDE012B22000","region":null}]},{"id":"ca9f51d0-81ac-4e5e-a3ac-ba0162e12167","directory":"jump-step-step","title":"Jump, Step, Step","compatibility":3,"releases":[{"id":"01003F300E7E2000","region":null}]},{"id":"caaa1e0c-2c0a-4174-84fd-3355f182debd","directory":"home-postmortem-edition","title":"Home: Postmortem Edition","compatibility":99,"releases":[{"id":"0100867011618000","region":null}]},{"id":"caae19cc-9e25-4d6e-847b-9d983c0137b6","directory":"hypercharge-unboxed","title":"HYPERCHARGE Unboxed","compatibility":99,"releases":[{"id":"0100A8B00F0B4000","region":null}]},{"id":"cabae146-223b-4ead-bd71-622589d10419","directory":"the-last-survey","title":"The Last Survey","compatibility":99,"releases":[{"id":"010062D0156C0000","region":null}]},{"id":"cac5eda1-94dc-4f3e-a6f1-78343a44d51f","directory":"crocs-world-2","title":"Croc's World 2","compatibility":99,"releases":[{"id":"01009DB00DE12000","region":null}]},{"id":"cacc6807-f4ae-40c6-b2ac-1fc0dacc2aa2","directory":"soul-axiom-rebooted","title":"Soul Axiom Rebooted","compatibility":99,"releases":[{"id":"010064F00C212000","region":null}]},{"id":"cace0cef-5403-4fa4-bb08-4ea499470dd2","directory":"king-of-fighters-r-2","title":"KING OF FIGHTERS R-2","compatibility":0,"releases":[{"id":"0100D47012330000","region":null}]},{"id":"cadd6a5a-42e1-42e1-99c4-1171011298ec","directory":"fhtagn-tales-of-the-creeping-madness","title":"Fhtagn! - Tales of the Creeping Madness","compatibility":1,"releases":[{"id":"01006B8014020000","region":null}]},{"id":"cae03fdd-da4d-4c6f-9af1-fab017238f59","directory":"demons-tilt","title":"DEMON'S TILT","compatibility":99,"releases":[{"id":"0100BE800E6D8000","region":null}]},{"id":"cae052d9-f040-4f91-8ac4-37ca1af14647","directory":"the-amazing-shinsengumi-heroes-in-love","title":"The Amazing Shinsengumi: Heroes in Love","compatibility":99,"releases":[{"id":"010083800B4E8000","region":null}]},{"id":"cae8172c-3a77-4141-9688-85fe69e6251f","directory":"super-korotama","title":"Super Korotama","compatibility":4,"releases":[{"id":"010000D00F81A000","region":null}]},{"id":"cb02e063-f193-4fa4-9f7a-f3de75a501c1","directory":"alternate-jake-hunter-daedalus-the-awakening-of-golden-jazz","title":"Alternate Jake Hunter: DAEDALUS The Awakening of Golden Jazz","compatibility":1,"releases":[{"id":"0100C3D00D1D4000","region":null}]},{"id":"cb087d81-7aa9-4125-a72f-b1529861263a","directory":"tomoyo-after-its-a-wonderful-life-cs-edition","title":"Tomoyo After -It's a Wonderful Life- CS Edition","compatibility":4,"releases":[{"id":"0100398010314000","region":null}]},{"id":"cb08a9ef-fc22-41c6-8515-89b6743c09d8","directory":"dreamscaper","title":"Dreamscaper","compatibility":99,"releases":[{"id":"010066C00FA94000","region":null}]},{"id":"cb0b294b-d669-423a-8405-a2a952c5b062","directory":"motorcycle-mechanic-simulator","title":"Motorcycle Mechanic Simulator","compatibility":99,"releases":[{"id":"010042900E464000","region":null}]},{"id":"cb13fb50-673c-4513-b100-802ed0be2b12","directory":"turok-2-seeds-of-evil","title":"Turok 2: Seeds of Evil","compatibility":5,"releases":[{"id":"0100CDC00D8D6000","region":null}]},{"id":"cb1774ca-aaf5-4610-98dc-fde63e2c318a","directory":"strikey-sisters","title":"Strikey Sisters","compatibility":4,"releases":[{"id":"010060600CFDE000","region":null}]},{"id":"cb3de65b-bfa7-4387-9445-567e76bee387","directory":"bring-honey-home","title":"Bring Honey Home","compatibility":99,"releases":[{"id":"0100A4D01514A000","region":null}]},{"id":"cb4069c1-a45e-475a-9754-d5faf800cfe7","directory":"the-copper-canyon-dixie-dash","title":"The Copper Canyon Dixie Dash","compatibility":99,"releases":[{"id":"01000F20102AC000","region":null}]},{"id":"cb40cc37-8da9-46d1-a34e-8f1b4d40b686","directory":"monster-energy-supercross-the-official-videogame-2","title":"Monster Energy Supercross - The Official Videogame 2","compatibility":99,"releases":[{"id":"0100F8100B982000","region":null}]},{"id":"cb48bd44-67e2-4b7e-b05b-ac697947bd25","directory":"my-big-sister","title":"My Big Sister","compatibility":99,"releases":[{"id":"0100A0F00D82A000","region":null}]},{"id":"cb49369e-de61-4788-92a6-d5dd28bba16a","directory":"pups-purrs-animal-hospital","title":"Pups & Purrs Animal Hospital","compatibility":99,"releases":[{"id":"0100649014936000","region":null}]},{"id":"cb4b039d-2c51-4680-9cea-edbd732884dd","directory":"arcade-archives-karate-champ","title":"Arcade Archives Karate Champ","compatibility":99,"releases":[{"id":"010071400981A000","region":null}]},{"id":"cb551b37-1476-4385-8299-f296bc10242a","directory":"blazblue-centralfiction-special-edition","title":"BLAZBLUE CENTRALFICTION Special Edition","compatibility":1,"releases":[{"id":"0100EE800C93E000","region":null}]},{"id":"cb552e5c-b3f1-452e-a981-357c71971e2e","directory":"castle-of-pixel-skulls","title":"Castle Of Pixel Skulls","compatibility":1,"releases":[{"id":"0100765014830000","region":null}]},{"id":"cb580b62-141e-4964-a3e8-acf6b483f7a6","directory":"battle-princess-madelyn-royal-edition","title":"Battle Princess Madelyn Royal Edition","compatibility":0,"releases":[{"id":"0100A7500DF64000","region":null}]},{"id":"cb5b0aaf-4ca0-45e6-b7b8-cfdde0385fca","directory":"squad-killer","title":"Squad Killer","compatibility":99,"releases":[{"id":"01002540144FA000","region":null}]},{"id":"cb5d0092-79c4-4f91-828a-1981c0e26282","directory":"spongebob-krusty-cook-off","title":"SpongeBob: Krusty Cook-Off","compatibility":1,"releases":[{"id":"01000D3013E8C000","region":null}]},{"id":"cb5e39fc-9bad-47b4-b211-ee27d7ea75eb","directory":"gun-crazy","title":"Gun Crazy","compatibility":1,"releases":[{"id":"01009630106A6000","region":null}]},{"id":"cb6191c7-493d-4746-b603-7addb885b6e9","directory":"animated-jigsaws-collection","title":"Animated Jigsaws Collection","compatibility":99,"releases":[{"id":"010098600CF06000","region":null}]},{"id":"cb63c93a-627b-4166-a4a7-61bbd6b96bca","directory":"mahluk-dark-demon","title":"Mahluk dark demon","compatibility":99,"releases":[{"id":"010099A0145E8000","region":null}]},{"id":"cb7db4f4-5b9c-4154-bebc-78248700852d","directory":"firewatch","title":"Firewatch","compatibility":2,"releases":[{"id":"0100AC300919A000","region":null}]},{"id":"cb7eeed9-2e57-46df-adf6-55219bdf1fcb","directory":"catastronauts","title":"Catastronauts","compatibility":99,"releases":[{"id":"0100DF3009730000","region":null}]},{"id":"cb808a50-3842-4709-9c7c-fa8be3965995","directory":"swallow-up","title":"Swallow Up","compatibility":99,"releases":[{"id":"010078800EE1A000","region":null}]},{"id":"cb80b3b6-a5e1-45f4-840b-a55954e60034","directory":"s-w-a-n-chernobyl-unexplored","title":"S.W.A.N.: Chernobyl Unexplored","compatibility":99,"releases":[{"id":"010062E015ED6000","region":null}]},{"id":"cb80f3a9-99ca-4f5f-8627-9b6f53304c5e","directory":"death-road-to-canada","title":"Death Road to Canada","compatibility":2,"releases":[{"id":"0100423009358000","region":null}]},{"id":"cb84791b-1e15-45b0-9711-f92a394e4367","directory":"dual-brain-vol2-reflex","title":"Dual Brain Vol.2: Reflex","compatibility":1,"releases":[{"id":"010065D0103D6000","region":null}]},{"id":"cb9cb1f7-9931-49b9-a217-33bf80ebc907","directory":"the-caligula-effect-2","title":"The Caligula Effect 2","compatibility":1,"releases":[{"id":"0100CC3014886000","region":null}]},{"id":"cbb497bf-6fd7-45fa-b002-a0ca10652d83","directory":"grisaia-phantom-trigger-04","title":"GRISAIA PHANTOM TRIGGER 04","compatibility":99,"releases":[{"id":"0100D970123BA000","region":null}]},{"id":"cbb9c34a-36ca-4c3b-ad53-1165b0b6bad4","directory":"super-neptunia-rpg","title":"Super Neptunia RPG","compatibility":1,"releases":[{"id":"01004D600AC14000","region":null}]},{"id":"cbc223e1-cb96-4162-a883-d36fa796bd64","directory":"qube-qross","title":"Qube Qross","compatibility":99,"releases":[{"id":"01000930140DA000","region":null}]},{"id":"cbc53983-3e22-4f71-a247-5606bf2768a3","directory":"dusk","title":"DUSK","compatibility":1,"releases":[{"id":"01007740160D4000","region":null}]},{"id":"cbd234eb-d5e0-4054-a9a1-dd244d506174","directory":"warioware-get-it-together","title":"WarioWare™: Get It Together!","compatibility":0,"releases":[{"id":"0100563010E0C000","region":null}]},{"id":"cbd51097-2ee4-4a44-8b92-36baee6f2001","directory":"nba-2k19","title":"NBA 2K19","compatibility":5,"releases":[{"id":"01001FF00B544000","region":null}]},{"id":"cbd7591d-abd5-4520-8d63-287f8cffdc72","directory":"city-builder","title":"City Builder","compatibility":99,"releases":[{"id":"0100D4800AEC8000","region":null}]},{"id":"cbd89458-d691-4ea9-9ca9-15fb061e0b6c","directory":"jackquest-the-tale-of-the-sword","title":"JackQuest: The Tale of the Sword","compatibility":2,"releases":[{"id":"0100C80009ABE000","region":null}]},{"id":"cbda9727-d9a1-4bb0-85c5-e1ce304e83e2","directory":"paw-paw-paw","title":"Paw Paw Paw","compatibility":1,"releases":[{"id":"01008E2013144000","region":null}]},{"id":"cbdae4b7-2e85-4c1d-9e52-dc21a428b2dd","directory":"little-bit-war","title":"Little Bit War","compatibility":99,"releases":[{"id":"0100572010EF8000","region":null}]},{"id":"cbde3179-0a2a-4939-a3c1-e378896418fe","directory":"panda-hero","title":"Panda Hero","compatibility":99,"releases":[{"id":"01002A300BDE2000","region":null}]},{"id":"cbe31cbc-2922-4b2f-b8a9-9cd050818284","directory":"party-arcade","title":"Party Arcade","compatibility":99,"releases":[{"id":"01007FC00A040000","region":null}]},{"id":"cbedf444-c5e7-42f2-a93b-a2dd91daae3d","directory":"they-came-from-the-sky","title":"They Came From the Sky","compatibility":99,"releases":[{"id":"0100768010970000","region":null}]},{"id":"cbfd8b2d-436e-49af-877f-6e9687a92a64","directory":"fightn-rage","title":"Fight'N Rage","compatibility":2,"releases":[{"id":"0100C7D00E730000","region":null}]},{"id":"cc025a72-82e5-4b63-8a9d-3fc8dd70b8d4","directory":"voice-of-cards-the-isle-dragon-roars","title":"Voice of Cards: The Isle Dragon Roars","compatibility":99,"releases":[{"id":"010071400F836000","region":null}]},{"id":"cc0aa2e8-b3ea-4540-97c3-82f84d133d99","directory":"steinsgate-0","title":"STEINS;GATE 0","compatibility":99,"releases":[{"id":"010037700E9B8000","region":null}]},{"id":"cc0c1344-4671-4483-8249-d82300c414b9","directory":"cruisn-blast","title":"Cruis'n Blast","compatibility":1,"releases":[{"id":"0100B41013C82000","region":null}]},{"id":"cc0d539c-7bd8-4566-9988-c4647c20448b","directory":"steam-rails-to-riches-complete-edition","title":"Steam: Rails to Riches Complete Edition","compatibility":99,"releases":[{"id":"0100E3C0146E4000","region":null}]},{"id":"cc1844f1-f849-4df7-8813-8ff22e2273ba","directory":"bus-driver-simulator","title":"Bus Driver Simulator","compatibility":99,"releases":[{"id":"010030D012FF6000","region":null}]},{"id":"cc26dca0-58da-4b04-a719-9772dd9fe811","directory":"nosferatu-lilinor","title":"Nosferatu Lilinor","compatibility":99,"releases":[{"id":"0100373010D26000","region":null}]},{"id":"cc2736fe-1fcc-4518-a53d-38df55f4e0d5","directory":"gorogoa","title":"Gorogoa","compatibility":1,"releases":[{"id":"0100F2A005C98000","region":null}]},{"id":"cc38443a-4c0e-493a-a011-21c7ee9d0e68","directory":"bomber-fox","title":"Bomber Fox","compatibility":99,"releases":[{"id":"0100A1F012948000","region":null}]},{"id":"cc40f76e-0f60-488d-8065-5a64b0b5ae80","directory":"kirby-star-allies-demo","title":"Kirby™ Star Allies Demo","compatibility":2,"releases":[{"id":"01005A70096FA000","region":null}]},{"id":"cc482256-0dd4-4068-9151-e14f6195c19a","directory":"duo-zombies","title":"Duo Zombies","compatibility":99,"releases":[{"id":"01009AB01613E000","region":null}]},{"id":"cc4fc296-6332-4956-be3d-e321fcd60159","directory":"rad","title":"RAD","compatibility":99,"releases":[{"id":"010024400C516000","region":null}]},{"id":"cc5985e3-0f69-416b-a3b6-0ffddf11a20d","directory":"re-turn-one-way-trip","title":"Re:Turn - One Way Trip","compatibility":99,"releases":[{"id":"0100F03011616000","region":null}]},{"id":"cc5da67e-0e30-4978-9271-c9f296a92915","directory":"the-persistence","title":"The Persistence","compatibility":99,"releases":[{"id":"010050101127C000","region":null}]},{"id":"cc5e4654-7017-4f33-807a-59a21c4660c0","directory":"halcyon-6-starbase-commander","title":"Halcyon 6: Starbase Commander","compatibility":99,"releases":[{"id":"01006B30092F0000","region":null}]},{"id":"cc5e7f66-1c3a-47a3-9c7f-c0f6e6bcbd6b","directory":"trine-2-complete-story","title":"Trine 2: Complete Story","compatibility":1,"releases":[{"id":"010064E00A932000","region":null}]},{"id":"cc70180e-f9f8-4109-8d9f-6f90e70e9fb4","directory":"sine-mora-ex","title":"Sine Mora EX","compatibility":2,"releases":[{"id":"01002820036A8000","region":null}]},{"id":"cc7105cc-d004-428f-8684-14b2c4de37ed","directory":"monkey-business","title":"Monkey Business","compatibility":99,"releases":[{"id":"010038800DF74000","region":null}]},{"id":"cc7f308e-4167-4551-b8e7-a115bcd247cc","directory":"the-dungeon-of-naheulbeuk-the-amulet-of-chaos-chicken-edition","title":"The Dungeon of Naheulbeuk: The Amulet of Chaos - Chicken Edition","compatibility":1,"releases":[{"id":"010023901191C000","region":null}]},{"id":"cc8156fd-8707-459e-abdd-08fec694f6a3","directory":"word-crush-hidden","title":"Word Crush Hidden","compatibility":99,"releases":[{"id":"010078E0153A6000","region":null}]},{"id":"cc88c22d-68a1-4958-96ee-aefb1eb02775","directory":"the-last-kids-on-earth-and-the-staff-of-doom","title":"The Last Kids on Earth and the Staff of Doom","compatibility":99,"releases":[{"id":"0100C27011544000","region":null}]},{"id":"cc95687d-82e9-4b4d-8227-cb7d1c9912bd","directory":"baba-is-you","title":"Baba Is You","compatibility":0,"releases":[{"id":"01002CD00A51C000","region":null}]},{"id":"cca68f1a-c50a-4bf6-b852-c3c6cc86e346","directory":"2064-read-only-memories-integral","title":"2064: Read Only Memories INTEGRAL","compatibility":1,"releases":[{"id":"010024C0067C4000","region":null}]},{"id":"ccbaf4f1-e05e-4bc9-8ed7-9801f3ef1579","directory":"vaccine","title":"Vaccine","compatibility":99,"releases":[{"id":"01009E2003FE2000","region":null}]},{"id":"cccd91c7-d6d1-45de-ae61-39c9c05976a2","directory":"inexistence-rebirth","title":"Inexistence Rebirth","compatibility":3,"releases":[{"id":"010001D014348000","region":null}]},{"id":"ccd3dc80-f4a9-4228-be22-e72fa48dbf77","directory":"drink-more-glurp","title":"Drink More Glurp","compatibility":99,"releases":[{"id":"010093F00F894000","region":null}]},{"id":"ccd764c8-60b2-4bfe-b5f6-38fb07090490","directory":"borderlands-the-pre-sequel","title":"Borderlands: The Pre-Sequel","compatibility":0,"releases":[{"id":"010007400FF24000","region":null}]},{"id":"ccd7e06f-775b-429e-97ff-2538cca17218","directory":"watermelon-party","title":"Watermelon Party","compatibility":99,"releases":[{"id":"010047800E516000","region":null}]},{"id":"ccd882ac-1d3a-4426-81c1-03b012ec3abb","directory":"suicide-guy-collection","title":"Suicide Guy Collection","compatibility":99,"releases":[{"id":"01001E3012CC2000","region":null}]},{"id":"cce3b7cf-a68a-42b6-9af0-9207099050d2","directory":"uno-for-nintendo-switch","title":"UNO for Nintendo Switch","compatibility":3,"releases":[{"id":"01005AA00372A000","region":null}]},{"id":"cce84b72-8d2e-4dda-bde1-a20f1ac3100a","directory":"street-cleaner-the-video-game","title":"Street Cleaner: The Video Game","compatibility":99,"releases":[{"id":"0100D460144F2000","region":null}]},{"id":"ccea107e-b24c-4479-9faa-68e86db5f05f","directory":"world-of-riders","title":"World Of Riders","compatibility":99,"releases":[{"id":"010020500E862000","region":null}]},{"id":"ccefc5f4-992d-4e63-bb0e-104eacb48ee1","directory":"asdivine-hearts","title":"Asdivine Hearts","compatibility":0,"releases":[{"id":"010042800A516000","region":null}]},{"id":"ccf6fb52-a310-4066-be2b-6fdde386d4fa","directory":"how-buddys-parents-met","title":"How Buddy’s parents met","compatibility":99,"releases":[{"id":"010060D0158DC000","region":null}]},{"id":"ccf89113-9166-4747-b999-0f2f6ac22b97","directory":"the-unholy-society","title":"The Unholy Society","compatibility":99,"releases":[{"id":"0100E4C011304000","region":null}]},{"id":"ccffb1d6-6afc-46db-b0e1-c17fcffafb6e","directory":"bring-them-home","title":"Bring Them Home","compatibility":99,"releases":[{"id":"01000BF00BE40000","region":null}]},{"id":"cd1335e3-2a3e-499f-a87e-4d1c46f9b3ba","directory":"darkest-hunters","title":"Darkest Hunters","compatibility":99,"releases":[{"id":"0100F1F00D5B2000","region":null}]},{"id":"cd1e9d00-e470-40de-a49c-ade2092598d9","directory":"loot-hero-dx","title":"Loot Hero DX","compatibility":99,"releases":[{"id":"010077E013D60000","region":null}]},{"id":"cd20ff54-0daf-495f-8159-0180081d12fe","directory":"haunted-dawn-the-zombie-apocalypse","title":"Haunted Dawn: The Zombie Apocalypse","compatibility":99,"releases":[{"id":"01009E6014F18000","region":null}]},{"id":"cd25a2ee-661f-4603-b7ba-65f3e0118296","directory":"animal-fun-for-toddlers-and-kids","title":"Animal Fun for Toddlers and Kids","compatibility":99,"releases":[{"id":"01002F4011A8E000","region":null}]},{"id":"cd28ecd8-377e-4708-a988-b836425b081d","directory":"the-legend-of-heroes-trails-of-cold-steel-iii","title":"The Legend of Heroes: Trails of Cold Steel III","compatibility":0,"releases":[{"id":"01005420101DA000","region":null}]},{"id":"cd3a54c9-496e-4350-aeb4-aec0caab34ad","directory":"league-of-evil-demo","title":"League of Evil Demo","compatibility":99,"releases":[{"id":"01005B3005D6E000","region":null}]},{"id":"cd3e58ab-949f-4c4f-8750-407dc47bdde2","directory":"star-drives","title":"Star Drives","compatibility":99,"releases":[{"id":"010011D015FF6000","region":null}]},{"id":"cd4a6884-62e0-4b47-b8b6-e763bef482bc","directory":"wolflame","title":"Wolflame","compatibility":3,"releases":[{"id":"01003380113A2000","region":null}]},{"id":"cd87b4b8-6ac2-4492-afed-441a74d62b31","directory":"button-city","title":"Button City","compatibility":99,"releases":[{"id":"0100754013D5A000","region":null}]},{"id":"cd89c3b1-db23-426a-859b-21e024d1ed3b","directory":"aca-neogeo-riding-hero","title":"ACA NEOGEO RIDING HERO","compatibility":99,"releases":[{"id":"01002C900A302000","region":null}]},{"id":"cd944f21-5a03-4ce3-ac5f-a9c1843f1324","directory":"blades-of-time","title":"Blades of Time","compatibility":5,"releases":[{"id":"0100CFA00CC74000","region":null}]},{"id":"cd9d9265-0bba-473a-ba8b-55e94e38b508","directory":"the-longest-five-minutes","title":"The Longest Five Minutes","compatibility":1,"releases":[{"id":"0100CE1004E72000","region":null}]},{"id":"cd9d9b3a-748d-4761-ba9e-89d6ddd39a0b","directory":"arcade-archives-front-line","title":"Arcade Archives FRONT LINE","compatibility":5,"releases":[{"id":"0100496006EC8000","region":null}]},{"id":"cda8f354-238a-43dd-9c3c-c927ee7d43ff","directory":"flan","title":"Flan","compatibility":99,"releases":[{"id":"010038200E088000","region":null}]},{"id":"cdaaf147-7d32-4e9d-9e59-8a05449a0c09","directory":"bleed","title":"Bleed","compatibility":2,"releases":[{"id":"010042C006490000","region":null}]},{"id":"cdb612a8-292c-413b-b9b7-84d9fe156532","directory":"air-mail","title":"Air Mail","compatibility":99,"releases":[{"id":"01004C700B106000","region":null}]},{"id":"cdbbc335-3bd6-409d-9172-36c081ebf41b","directory":"surviving-the-aftermath","title":"Surviving the Aftermath","compatibility":99,"releases":[{"id":"0100F61013456000","region":null}]},{"id":"cdc89699-5c9c-4dcf-8767-da53bd86bafb","directory":"levels-addictive-puzzle-game","title":"Levels+ : Addictive Puzzle Game","compatibility":99,"releases":[{"id":"0100C960041DC000","region":null}]},{"id":"cdcb3d2a-6420-4bbe-bf4a-a81d80786b58","directory":"verlet-swing","title":"Verlet Swing","compatibility":99,"releases":[{"id":"0100E9D00D268000","region":null}]},{"id":"cdd1bbc8-eac9-4ad2-b534-7fef58b31732","directory":"rhythm-of-the-gods","title":"Rhythm of the Gods","compatibility":99,"releases":[{"id":"010081D0100F0000","region":null}]},{"id":"cdd72e98-068e-47e6-b3d5-4ab12fe35922","directory":"pic-a-pix-deluxe","title":"Pic-a-Pix Deluxe","compatibility":4,"releases":[{"id":"01005F900416E000","region":null}]},{"id":"cdd921fa-ce48-4396-9ff1-e2c9bfc90f18","directory":"pokemon-sword","title":"Pokémon Sword","compatibility":2,"releases":[{"id":"0100ABF008968000","region":null}]},{"id":"cde0bfc1-a505-4c0a-8a2a-d18f6d65816e","directory":"lumo","title":"Lumo","compatibility":2,"releases":[{"id":"0100FF00042EE000","region":null}]},{"id":"cde65c8b-ed48-4e92-b58e-151eddba7d96","directory":"yokus-island-express-demo","title":"Yoku's Island Express Demo","compatibility":99,"releases":[{"id":"0100D6300B938000","region":null}]},{"id":"cdf36837-bdc0-4b2f-bd33-adfbc39394b9","directory":"hyperforma","title":"Hyperforma","compatibility":99,"releases":[{"id":"01006EA00D892000","region":null}]},{"id":"cdf703c8-ff13-40aa-8e6d-345803f70550","directory":"blood-waves","title":"Blood Waves","compatibility":3,"releases":[{"id":"01007E700D17E000","region":null}]},{"id":"cdf8e50b-7aff-4400-8750-378ccb48280d","directory":"ball-physics-draw-puzzles","title":"Ball Physics Draw Puzzles","compatibility":99,"releases":[{"id":"0100EF0015F3C000","region":null}]},{"id":"cdfa2e00-041a-4fe1-8c8b-bb4aa07c25d1","directory":"forgotten-tales-day-of-the-dead","title":"Forgotten Tales - Day of the Dead","compatibility":99,"releases":[{"id":"010064300CFD4000","region":null}]},{"id":"cdfde087-8a2b-4c17-b37b-d3e077b394f7","directory":"windjammers-2","title":"Windjammers 2","compatibility":0,"releases":[{"id":"0100AF500EF0C000","region":null}]},{"id":"ce18c9e8-5eba-49b2-a438-b01733611448","directory":"okami-hd","title":"OKAMI HD","compatibility":3,"releases":[{"id":"0100276009872000","region":null}]},{"id":"ce366ef7-b0cb-4aeb-a4f3-0a29d3c85239","directory":"hexceed","title":"hexceed","compatibility":99,"releases":[{"id":"0100F59014E8C000","region":null}]},{"id":"ce42c395-1eb5-4754-89d8-2d8af5e9911a","directory":"10-second-ninja-x","title":"10 Second Ninja X","compatibility":99,"releases":[{"id":"010055501321C000","region":null}]},{"id":"ce517396-9e24-4c0c-8d10-37272f8bbd4a","directory":"duel-on-board","title":"Duel on Board","compatibility":99,"releases":[{"id":"01006AA013A2A000","region":null}]},{"id":"ce61e0c5-64c6-426c-a14f-78c6b844decf","directory":"breakforcist-battle","title":"#Breakforcist Battle","compatibility":99,"releases":[{"id":"010038B0084EA000","region":null}]},{"id":"ce63b99c-6cb7-47a9-b975-ba4d35ca8aa7","directory":"the-dark-side-of-the-moon-an-interactive-fmv-thriller","title":"The Dark Side of the Moon: An Interactive FMV Thriller","compatibility":99,"releases":[{"id":"0100E9D016226000","region":null}]},{"id":"ce6875a4-2797-431d-bd6e-b8906067a896","directory":"dread-nautical","title":"Dread Nautical","compatibility":0,"releases":[{"id":"010045500D0F4000","region":null}]},{"id":"ce6b3b84-afba-4293-8c22-17202a801b0f","directory":"dragon-ball-fighterz","title":"DRAGON BALL FIGHTERZ","compatibility":3,"releases":[{"id":"0100A250097F0000","region":null}]},{"id":"ce70fe99-3288-4dce-bd37-e735e7aef120","directory":"arcade-archives-heroic-episode","title":"Arcade Archives HEROIC EPISODE","compatibility":99,"releases":[{"id":"01009A4008A30000","region":null}]},{"id":"ce7f6147-6cdb-4bb8-a425-b64ddd7d3773","directory":"deathsmiles-i-ii","title":"Deathsmiles I・II","compatibility":99,"releases":[{"id":"01009120119B4000","region":null}]},{"id":"ce8014b8-12a9-497e-a129-678b4825874b","directory":"pushy-and-pully-in-blockland","title":"Pushy and Pully in Blockland","compatibility":0,"releases":[{"id":"0100F1200F6D8000","region":null}]},{"id":"ce869a12-1960-43cf-a148-4a025ba260b8","directory":"snakes-ladders","title":"Snakes & Ladders","compatibility":99,"releases":[{"id":"010052C00ABFA000","region":null}]},{"id":"ce9a5ab0-ab33-4aed-93da-ca5dcaa98198","directory":"farmers-co-op-out-of-this-world","title":"Farmers Co-op: Out of This World","compatibility":99,"releases":[{"id":"0100C6F013FFA000","region":null}]},{"id":"cea16a5f-0261-4cc5-b1d0-834a0d7556a6","directory":"the-adventure-pals","title":"The Adventure Pals","compatibility":0,"releases":[{"id":"01008ED0087A4000","region":null}]},{"id":"cea6c029-2d9c-40ea-a1b4-5d057c9bd080","directory":"use-your-words","title":"Use Your Words","compatibility":99,"releases":[{"id":"01007C0003AEC000","region":null}]},{"id":"ceb7714e-c499-47a4-9815-bb8c42d5e481","directory":"stray-cat-doors","title":"Stray Cat Doors","compatibility":1,"releases":[{"id":"01002D200CF50000","region":null}]},{"id":"cebb097e-3fa4-4016-b784-99fd8a974334","directory":"digerati-indie-darling-bundle-vol-3","title":"Digerati Indie Darling Bundle Vol. 3","compatibility":99,"releases":[{"id":"01004DE011076000","region":null}]},{"id":"cebeb3e5-4cda-4a20-be65-b33a796c1213","directory":"arcade-archives-markham","title":"Arcade Archives MARKHAM","compatibility":99,"releases":[{"id":"0100299013ADE000","region":null}]},{"id":"cec30012-c1bb-499b-b75c-301671db0e6a","directory":"robots-under-attack","title":"Robots under attack!","compatibility":99,"releases":[{"id":"010077C00F370000","region":null}]},{"id":"ced95c05-589f-4a8e-8b2f-e382f5679763","directory":"its-spring-again","title":"It's Spring Again","compatibility":99,"releases":[{"id":"0100EDC00AAAA000","region":null}]},{"id":"cedeac46-4719-4976-a50a-f927937fbf08","directory":"odallus-the-dark-call","title":"Odallus: The Dark Call","compatibility":5,"releases":[{"id":"010084300C816000","region":null}]},{"id":"cedfb609-0b65-48bd-ad5c-3864fd46ccb1","directory":"the-last-door-complete-edition","title":"The Last Door - Complete Edition","compatibility":99,"releases":[{"id":"0100DBE00C76C000","region":null}]},{"id":"cee6fc03-23d0-4456-bfd3-07da321026fe","directory":"oddworld-new-n-tasty","title":"Oddworld: New 'n' Tasty","compatibility":2,"releases":[{"id":"01005E700ABB8000","region":null}]},{"id":"cef343ca-704b-4de7-ad1b-f8eaf060eac1","directory":"rock-n-racing-bundle-off-road-grand-prix","title":"Rock 'N Racing Bundle Off Road & Grand Prix","compatibility":99,"releases":[{"id":"01008F801398E000","region":null}]},{"id":"cf07ac2a-1540-4027-9293-8290a3e1595b","directory":"kathy-rain-directors-cut","title":"Kathy Rain: Director's Cut","compatibility":99,"releases":[{"id":"0100892015238000","region":null}]},{"id":"cf0cb27c-1ff6-4470-9c73-3ae9c72a2f66","directory":"torchlight-iii","title":"Torchlight III","compatibility":3,"releases":[{"id":"010075400DDB8000","region":null}]},{"id":"cf110387-7b68-44dc-beca-98fce95caccc","directory":"forestry-the-simulation","title":"Forestry - The Simulation","compatibility":99,"releases":[{"id":"01002E9014308000","region":null}]},{"id":"cf26d197-406e-48b4-b554-c4baa91a5e77","directory":"shadows-2-perfidia","title":"Shadows 2: Perfidia","compatibility":1,"releases":[{"id":"010000000EEF0000","region":null}]},{"id":"cf2a674d-1044-4f6d-a777-234d176a68c8","directory":"morbid-the-seven-acolytes","title":"Morbid: The Seven Acolytes","compatibility":2,"releases":[{"id":"010040E00F642000","region":null}]},{"id":"cf3ade4e-b5a9-447e-8c43-0514a23223cc","directory":"dragon-star-varnir","title":"Dragon Star Varnir","compatibility":99,"releases":[{"id":"01001C60148CC000","region":null}]},{"id":"cf444c4d-3c94-4e9f-b366-b3a216cf2fac","directory":"light-fingers","title":"Light Fingers","compatibility":99,"releases":[{"id":"0100A0E005E42000","region":null}]},{"id":"cf447abc-ab26-437a-98bc-ef9fa392e812","directory":"final-fantasy-xv-pocket-edition-hd","title":"FINAL FANTASY XV POCKET EDITION HD","compatibility":2,"releases":[{"id":"010068F00AA78000","region":null}]},{"id":"cf4aa029-0071-447a-9e7a-2bb434f52e03","directory":"gryphon-knight-epic-definitive-edition","title":"Gryphon Knight Epic: Definitive Edition","compatibility":99,"releases":[{"id":"0100A16011872000","region":null}]},{"id":"cf4da2c5-3c0d-4e56-9083-6ede1e89382f","directory":"aaero-complete-edition","title":"Aaero: Complete Edition","compatibility":0,"releases":[{"id":"010097A00CC0A000","region":null}]},{"id":"cf63d44a-a64f-4409-93a0-f2827413d2e8","directory":"octahedron-transfixed-edition","title":"Octahedron: Transfixed Edition","compatibility":5,"releases":[{"id":"010049100B93E000","region":null}]},{"id":"cf6a4659-07ee-4348-b7f3-899f7ec1c47e","directory":"super-chariot","title":"Super Chariot","compatibility":3,"releases":[{"id":"010065F004E5E000","region":null}]},{"id":"cf6eb529-7009-4262-8a4c-fecb4f207bc4","directory":"kiai-resonance","title":"Kiai Resonance","compatibility":99,"releases":[{"id":"010087D00C82E000","region":null}]},{"id":"cf7b72d0-4c67-4002-9d39-d304c29e1b27","directory":"murder-diaries","title":"Murder Diaries","compatibility":99,"releases":[{"id":"0100262015908000","region":null}]},{"id":"cf7cec36-3b0c-4436-b09b-806fa1496894","directory":"citizens-of-space","title":"Citizens of Space","compatibility":99,"releases":[{"id":"0100E4200D84E000","region":null}]},{"id":"cf979370-d03c-43f6-a67a-25d10b83049a","directory":"evil-tonight","title":"Evil Tonight","compatibility":4,"releases":[{"id":"01001B2013D72000","region":null}]},{"id":"cf9ab91c-f627-4953-933a-28b8bd0f5e38","directory":"shieldwall-chronicles-swords-of-the-north","title":"Shieldwall Chronicles: Swords of the North","compatibility":99,"releases":[{"id":"0100C7E01442C000","region":null}]},{"id":"cfa6243a-4057-496a-9791-4d9e853cfb6a","directory":"root-film","title":"Root Film","compatibility":1,"releases":[{"id":"01001C701348A000","region":null}]},{"id":"cfab1d59-4bd3-463e-ae47-35df5f6ad5e1","directory":"theme-park-simulator-roller-coaster-thrill-rides","title":"Theme Park Simulator: Roller Coaster & Thrill Rides","compatibility":99,"releases":[{"id":"01006BE0109B6000","region":null}]},{"id":"cfacc2a8-1dfd-4b0f-aba9-0218bf5f8fdd","directory":"twin-robots-ultimate-edition-demo","title":"Twin Robots: Ultimate Edition Demo","compatibility":99,"releases":[{"id":"010012600A9DA000","region":null}]},{"id":"cfad77ac-0eff-44bd-805e-376496f9b789","directory":"macrotis-a-mothers-journey","title":"Macrotis: A Mother's Journey","compatibility":99,"releases":[{"id":"01001B7011202000","region":null}]},{"id":"cfb30543-28fc-4efc-81d0-bf978fcd1087","directory":"asobu-tights","title":"ASOBU Tights","compatibility":0,"releases":[{"id":"0100473013DFE000","region":null}]},{"id":"cfb3626c-a845-48eb-ad2c-4b3e0026f468","directory":"arcade-archives-gradius","title":"Arcade Archives GRADIUS","compatibility":99,"releases":[{"id":"0100A070105A6000","region":null}]},{"id":"cfb7137c-30ad-486d-8697-26eae078940d","directory":"hyperide-vector-raid","title":"Hyperide: Vector Raid","compatibility":99,"releases":[{"id":"01000E200C8D4000","region":null}]},{"id":"cfcf0981-fbfe-43cf-82c4-27640315fd4b","directory":"heroes-of-the-monkey-tavern-demo","title":"Heroes of the Monkey Tavern Demo","compatibility":99,"releases":[{"id":"0100F4F006EB0000","region":null}]},{"id":"cfd946f0-8cdf-419e-b9c4-c4aa3e05e2f7","directory":"morto-chapter-1","title":"MORTO - Chapter 1","compatibility":99,"releases":[{"id":"0100734014C20000","region":null}]},{"id":"cfd98cef-4ce8-440b-841c-52001b6c03f5","directory":"crisis-wing","title":"Crisis Wing","compatibility":2,"releases":[{"id":"0100CAC015A8A000","region":null}]},{"id":"cfe67329-2bb8-4e3c-a437-3a6c60077b5b","directory":"demolition-crew","title":"Demolition Crew","compatibility":99,"releases":[{"id":"01000D100D99A000","region":null}]},{"id":"cfec0999-b26e-42aa-becf-675ec3fb0e06","directory":"headspun","title":"Headspun","compatibility":99,"releases":[{"id":"010067400EA5C000","region":null}]},{"id":"cfef4473-5f7f-4fad-bf12-dbf511325cc8","directory":"grisaia-phantom-trigger-5-5","title":"GRISAIA PHANTOM TRIGGER 5.5","compatibility":99,"releases":[{"id":"0100CAF013AE6000","region":null}]},{"id":"cffbcf24-1616-4fc0-bb86-6bdb2833cbf4","directory":"minecraft-story-mode-the-complete-adventure","title":"Minecraft: Story Mode - The Complete Adventure","compatibility":1,"releases":[{"id":"010059C002AC2000","region":null}]},{"id":"d00308be-c934-4b88-bee4-94f0c902c2ae","directory":"detective-puz","title":"Detective Puz","compatibility":99,"releases":[{"id":"01006C8013708000","region":null}]},{"id":"d00f7ce1-480f-4a9d-ba88-a1cda3882aaf","directory":"amazing-brick-breaker","title":"Amazing Brick Breaker","compatibility":99,"releases":[{"id":"0100DD700F1F6000","region":null}]},{"id":"d01356ce-d0f3-42c4-b04e-35800c35a7f3","directory":"thenightfall","title":"TheNightfall","compatibility":99,"releases":[{"id":"01000AA00D30E000","region":null}]},{"id":"d01f8c7e-1d1a-4d54-ab5d-23f169b848cd","directory":"horizon-chase-turbo","title":"Horizon Chase Turbo","compatibility":0,"releases":[{"id":"01009EA00B714000","region":null}]},{"id":"d02abe7c-48e9-4a40-9bee-8eec4fdb1e6f","directory":"queens-quest-4-sacred-truce","title":"Queen's Quest 4: Sacred Truce","compatibility":99,"releases":[{"id":"0100DCF00F13A000","region":null}]},{"id":"d02f1883-224f-456a-8f3b-217028a163bd","directory":"sense-a-cyberpunk-ghost-story","title":"Sense - A Cyberpunk Ghost Story","compatibility":2,"releases":[{"id":"01009CD00F44A000","region":null}]},{"id":"d031059e-1a04-4e72-ab22-4e7fbedebdcb","directory":"hot-wheels-unleashed","title":"HOT WHEELS UNLEASHED™","compatibility":3,"releases":[{"id":"0100AA60136D2000","region":null}]},{"id":"d0447e7b-eb81-4e81-a3d4-ebee985bc328","directory":"phar-lap-horse-racing-challenge","title":"PHAR LAP - Horse Racing Challenge","compatibility":2,"releases":[{"id":"010036200D2F6000","region":null}]},{"id":"d0492975-c726-4b21-8909-383b6ca4bbac","directory":"the-legend-of-zelda-links-awakening","title":"The Legend of Zelda: Link's Awakening","compatibility":1,"releases":[{"id":"01006BB00C6F0000","region":null}]},{"id":"d0505d44-1312-4bf8-aa27-54db151726d6","directory":"laid-back-camp-virtual-lake-motosu","title":"Laid-Back Camp - Virtual - Lake Motosu","compatibility":0,"releases":[{"id":"01002BA012E80000","region":null}]},{"id":"d0564a5d-997f-41da-b16a-d9e937a4b442","directory":"inside-my-radio","title":"Inside My Radio","compatibility":99,"releases":[{"id":"0100973002D6A000","region":null}]},{"id":"d05a7a6e-1295-4cc3-bd30-46bcc8ccb32d","directory":"grisaia-phantom-trigger-06","title":"GRISAIA PHANTOM TRIGGER 06","compatibility":2,"releases":[{"id":"0100240013AE8000","region":null}]},{"id":"d06a2670-418c-486d-bb80-c9d704db8f0b","directory":"cardpocalypse","title":"Cardpocalypse","compatibility":99,"releases":[{"id":"0100C5100DB04000","region":null}]},{"id":"d06d1f7e-047a-450e-9520-80fd274d7dce","directory":"them-bombs","title":"Them Bombs!","compatibility":1,"releases":[{"id":"01006C400ACEE000","region":null}]},{"id":"d06e8a94-c738-4f3e-92fa-8e2917fe4fbf","directory":"new-york-mysteries-high-voltage","title":"New York Mysteries: High Voltage","compatibility":99,"releases":[{"id":"0100D7E016684000","region":null}]},{"id":"d0750daa-36f8-4bc9-ab29-3d28702ca6dc","directory":"varion","title":"Varion","compatibility":99,"releases":[{"id":"01009DE00B5CC000","region":null}]},{"id":"d077e458-7680-4951-b9b4-79902df25f56","directory":"offroad-driving-simulator-4x4-trucks-suv-trophy","title":"Offroad Driving Simulator 4x4: Trucks & SUV Trophy","compatibility":0,"releases":[{"id":"0100352013A44000","region":null}]},{"id":"d088cd4d-b39f-4aad-ac15-1e4ec3ecfc3a","directory":"hypnospace-outlaw","title":"Hypnospace Outlaw","compatibility":5,"releases":[{"id":"0100959010466000","region":null}]},{"id":"d08c6b4e-bf19-46e8-9bf7-578c6ea5b749","directory":"glaive-brick-breaker","title":"Glaive: Brick Breaker","compatibility":99,"releases":[{"id":"01005CB009E20000","region":null}]},{"id":"d0b112f8-1338-4f3a-acdd-1e965b02f982","directory":"parallel","title":"Parallel","compatibility":99,"releases":[{"id":"0100F8300A95C000","region":null}]},{"id":"d0c599cd-0074-472a-a53a-64ef9e166998","directory":"rest-in-pieces","title":"Rest in Pieces","compatibility":99,"releases":[{"id":"01004A600EB3E000","region":null}]},{"id":"d0d217b1-ec06-4940-9e75-610b09c69a38","directory":"the-last-campfire","title":"The Last Campfire","compatibility":1,"releases":[{"id":"0100449011506000","region":null}]},{"id":"d0d8a2d4-3b46-4423-9013-0f25bf080c25","directory":"the-rainsdowne-players","title":"The Rainsdowne Players","compatibility":99,"releases":[{"id":"010093600D5E0000","region":null}]},{"id":"d0d8c7fb-1f46-4832-bab2-ef2939907299","directory":"off-the-road-unleashed","title":"Off The Road Unleashed","compatibility":5,"releases":[{"id":"010045C0112F8000","region":null}]},{"id":"d0e01eb7-a67e-4135-89fd-04045766f9c1","directory":"letter-quest-remastered","title":"Letter Quest Remastered","compatibility":0,"releases":[{"id":"01008C300648E000","region":null}]},{"id":"d0e8bcda-7233-483e-9532-9c75535104c9","directory":"dexteritrip","title":"Dexteritrip","compatibility":99,"releases":[{"id":"010044000CBCA000","region":null}]},{"id":"d10be0fa-5686-46d4-a3ff-89be08d43638","directory":"pawn-of-the-dead","title":"Pawn of the Dead","compatibility":99,"releases":[{"id":"0100D8C01674C000","region":null}]},{"id":"d10ca87b-133c-4fa9-98b4-5b685f6198d4","directory":"billy-bomber","title":"Billy Bomber","compatibility":99,"releases":[{"id":"010008600F1F2000","region":null}]},{"id":"d112c338-f11a-40ef-b45d-6b0f5ba0f52d","directory":"140","title":"140","compatibility":99,"releases":[{"id":"01007E600EEE6000","region":null}]},{"id":"d119cf47-894d-4262-b7d1-32cb571e9766","directory":"rusty-spout-rescue-adventure","title":"Rusty Spout Rescue Adventure","compatibility":99,"releases":[{"id":"01000C6011AC2000","region":null}]},{"id":"d11f95b6-39ed-414f-be29-a93ea951201f","directory":"resident-evil-revelations","title":"Resident Evil Revelations","compatibility":1,"releases":[{"id":"0100643002136000","region":null}]},{"id":"d11ffa35-50dc-4c4c-a773-92cd88069c33","directory":"disgaea-1-complete","title":"Disgaea 1 Complete","compatibility":1,"releases":[{"id":"01004B100AF18000","region":null}]},{"id":"d120fb0f-3132-470d-bdfa-3d2815b4157c","directory":"arcade-archives-star-force","title":"Arcade Archives STAR FORCE","compatibility":4,"releases":[{"id":"010069F008A38000","region":null}]},{"id":"d123ed9b-53f8-46fb-a572-2bb11de5274c","directory":"borderlands-game-of-the-year-edition","title":"Borderlands: Game of the Year Edition","compatibility":3,"releases":[{"id":"010064800F66A000","region":null}]},{"id":"d1479d55-bd27-4697-a84f-ae274edea267","directory":"panzer-dragoon-remake","title":"Panzer Dragoon: Remake","compatibility":2,"releases":[{"id":"0100C6A00E94A000","region":null}]},{"id":"d150f0fb-9a4c-4b6b-b46c-5b05fa9e8f9d","directory":"fishing-adventure","title":"Fishing Adventure","compatibility":99,"releases":[{"id":"01002600105C6000","region":null}]},{"id":"d153618a-97b1-4311-8ba7-f1ac9a914c1a","directory":"blazerush","title":"BlazeRush","compatibility":99,"releases":[{"id":"0100AD400BBE0000","region":null}]},{"id":"d16395e8-9d40-46c9-8855-f67c79784eac","directory":"children-of-zodiarcs","title":"Children of Zodiarcs","compatibility":1,"releases":[{"id":"0100C1A00AC3E000","region":null}]},{"id":"d1644656-e78d-46e9-81f2-a789f8723ed0","directory":"tiny-hands-adventure","title":"Tiny Hands Adventure","compatibility":99,"releases":[{"id":"010061A00AE64000","region":null}]},{"id":"d1671d5d-ef39-4574-9efc-e0f97028cdf6","directory":"lost-horizon-2","title":"Lost Horizon 2","compatibility":99,"releases":[{"id":"01005ED010642000","region":null}]},{"id":"d16c1a0c-5691-4d7c-99f3-538bc61cba9c","directory":"aca-neogeo-magician-lord","title":"ACA NEOGEO MAGICIAN LORD","compatibility":99,"releases":[{"id":"01007920038F6000","region":null}]},{"id":"d17084d5-9f5f-4a8e-8cdb-0e7c80a0dabb","directory":"darius-cozmic-collection-arcade","title":"Darius Cozmic Collection Arcade","compatibility":1,"releases":[{"id":"01001D20105C0000","region":null}]},{"id":"d177c225-3144-4ec8-adaa-a92e4b06c588","directory":"fantasy-general-ii-invasion","title":"Fantasy General II: Invasion","compatibility":99,"releases":[{"id":"0100C7D012FB8000","region":null}]},{"id":"d18db235-aaa7-4e7c-9417-4e9d6375b2cb","directory":"arcade-archives-vendetta","title":"Arcade Archives VENDETTA","compatibility":4,"releases":[{"id":"010087D0150BE000","region":null}]},{"id":"d194ad8a-c250-42d5-8d32-010012b6fd6d","directory":"lucah-born-of-a-dream","title":"Lucah: Born of a Dream","compatibility":99,"releases":[{"id":"0100AAA00DD4C000","region":null}]},{"id":"d197e8b2-5ec1-4d22-904b-d98a314ca8b2","directory":"the-kings-bird","title":"The King's Bird","compatibility":4,"releases":[{"id":"010020500BD98000","region":null}]},{"id":"d1a42825-d60b-4212-a5d3-905327a08b5f","directory":"fast-furious-spy-racers-rise-of-sh1ft3r","title":"Fast & Furious: Spy Racers Rise of SH1FT3R","compatibility":1,"releases":[{"id":"010034C013624000","region":null}]},{"id":"d1aee9c1-f8f5-414e-b2d2-c47c0f74a9fd","directory":"shadow-of-loot-box","title":"Shadow of Loot Box","compatibility":99,"releases":[{"id":"010051A00AAEA000","region":null}]},{"id":"d1be6636-c693-4f54-a9e2-66e5295f1450","directory":"funtime","title":"#Funtime","compatibility":99,"releases":[{"id":"01001E500F7FC000","region":null}]},{"id":"d1bf2326-5a7d-4b55-a0fd-c54694de62da","directory":"fates-of-ort","title":"Fates of Ort","compatibility":99,"releases":[{"id":"010087C014FD4000","region":null}]},{"id":"d1cff173-12ce-43a6-93f9-4602ca26cbcd","directory":"pokemon-tv","title":"Pokémon TV","compatibility":99,"releases":[{"id":"010009F014D98000","region":null}]},{"id":"d1d243ff-30e0-40b5-b6c9-a2bb406fba47","directory":"aca-neogeo-shock-troopers-2nd-squad","title":"ACA NEOGEO SHOCK TROOPERS 2nd Squad","compatibility":4,"releases":[{"id":"01004DE001DC8000","region":null}]},{"id":"d1da71b5-14db-4f16-8ca9-5ab9cd5efe36","directory":"desktop-dodgeball","title":"Desktop Dodgeball","compatibility":99,"releases":[{"id":"010056E00FA3A000","region":null}]},{"id":"d1dc2e04-ea88-4c32-8d70-0b42ee4b1164","directory":"blacksea-odyssey","title":"Blacksea Odyssey","compatibility":99,"releases":[{"id":"01006B400C178000","region":null}]},{"id":"d1f40ec1-3c38-4ce5-bd00-972131faed72","directory":"horror-adventure-pinball","title":"Horror & Adventure Pinball","compatibility":99,"releases":[{"id":"01004510164CC000","region":null}]},{"id":"d1f41128-7cf7-492f-bad1-53e745ff775e","directory":"slither-loop","title":"Slither Loop","compatibility":99,"releases":[{"id":"0100820012ADE000","region":null}]},{"id":"d202435b-f4b7-4db1-a122-23de0214fde9","directory":"alphaset-by-powgi","title":"Alphaset by POWGI","compatibility":99,"releases":[{"id":"010053B0123DC000","region":null}]},{"id":"d20c7626-0bd5-4e8a-825a-1bd34b55134f","directory":"dark-nights-with-poe-and-munro","title":"Dark Nights with Poe and Munro","compatibility":99,"releases":[{"id":"0100669011998000","region":null}]},{"id":"d20e9b02-7f30-4a49-a0b5-1a5a360e82b9","directory":"toridama-brave-challenge","title":"TORIDAMA: Brave Challenge","compatibility":99,"releases":[{"id":"0100D6700C3E6000","region":null}]},{"id":"d20eaad2-f177-40e8-8e22-378468e6a368","directory":"crysis-3-remastered","title":"Crysis 3 Remastered","compatibility":3,"releases":[{"id":"0100CD3010AE2000","region":null}]},{"id":"d21927b8-dd6a-464b-84d1-c8613f835bdb","directory":"ageless","title":"Ageless","compatibility":99,"releases":[{"id":"0100156011032000","region":null}]},{"id":"d21d93fa-6b44-48bc-8697-c4b11924b0a6","directory":"chefs-tail","title":"Chef's Tail","compatibility":99,"releases":[{"id":"010026D0153DC000","region":null}]},{"id":"d2234d6a-53c8-424a-abb8-2105502aaa86","directory":"xenon-valkyrie","title":"Xenon Valkyrie+","compatibility":4,"releases":[{"id":"010064200C324000","region":null}]},{"id":"d22541d7-6dfc-4c09-a3c6-9fbeaf6fdbc9","directory":"princess-closet","title":"Princess Closet","compatibility":2,"releases":[{"id":"010098201125E000","region":null}]},{"id":"d2256d10-d0dd-488a-81b7-e8e4d5637dd2","directory":"surgeon-simulator-cpr","title":"Surgeon Simulator CPR","compatibility":3,"releases":[{"id":"0100E7400B83E000","region":null}]},{"id":"d242cc49-8d05-46b8-92f3-89fc9c17a048","directory":"little-briar-rose","title":"Little Briar Rose","compatibility":99,"releases":[{"id":"010089400E4E2000","region":null}]},{"id":"d244dd22-df96-4b9f-9d85-5c299573aadd","directory":"vampyr","title":"VAMPYR","compatibility":1,"releases":[{"id":"01000BD00CE64000","region":null}]},{"id":"d245b6fb-6bf9-42d9-836d-11c3ccefce70","directory":"rock-n-racing-bundle-3-in-1","title":"Rock 'N Racing Bundle 3 in 1","compatibility":99,"releases":[{"id":"010061B013EB2000","region":null}]},{"id":"d24bf428-0193-43a4-a9a5-482532b18691","directory":"stick-it-to-the-man","title":"Stick It to The Man","compatibility":99,"releases":[{"id":"0100AD7003FF4000","region":null}]},{"id":"d24dd89c-a7a5-41d4-9149-24e7ac77fb3a","directory":"karma-knight","title":"Karma Knight","compatibility":2,"releases":[{"id":"01005300128E2000","region":null}]},{"id":"d251b0d3-483a-4281-83a0-14ebe4aca425","directory":"nowhere-prophet","title":"Nowhere Prophet","compatibility":99,"releases":[{"id":"0100CC1010464000","region":null}]},{"id":"d28d63c1-d79e-40a0-8a2c-89072a1c84d7","directory":"doom-r-eternal","title":"DOOM® Eternal","compatibility":4,"releases":[{"id":"0100B1A00D8CE000","region":null}]},{"id":"d2987bfe-b0a6-452d-a1ea-5c7fc2cc350c","directory":"city-stunt-driver","title":"City Stunt Driver","compatibility":99,"releases":[{"id":"010074A016842000","region":null}]},{"id":"d2aa6231-e793-44f5-af89-e97f88e5fe1f","directory":"arcade-archives-kiki-kaikai","title":"Arcade Archives KIKI KAIKAI","compatibility":99,"releases":[{"id":"0100A3B009838000","region":null}]},{"id":"d2b91a0d-0d81-4716-af89-f3db36baf92d","directory":"blair-witch","title":"Blair Witch","compatibility":0,"releases":[{"id":"01006CC01182C000","region":null}]},{"id":"d2bbc354-6dbc-475c-a920-e1d566467f4d","directory":"meteoroids-3d","title":"Meteoroids 3D","compatibility":99,"releases":[{"id":"0100D7D015A6C000","region":null}]},{"id":"d2c7778e-b902-4e7e-a7cd-2df387edd4c4","directory":"ninnindays","title":"NinNinDays","compatibility":5,"releases":[{"id":"0100746010E4C000","region":null}]},{"id":"d2ca20c3-7391-4229-a198-6c8fc5d14cec","directory":"bloodstained-ritual-of-the-night","title":"Bloodstained: Ritual of the Night","compatibility":0,"releases":[{"id":"0100BF500207C000","region":null}]},{"id":"d2d6dd75-a329-47e6-bb6d-40d4b7bf0391","directory":"last-encounter","title":"Last Encounter","compatibility":99,"releases":[{"id":"010067A00964E000","region":null}]},{"id":"d2dbf399-c80a-4e86-b0e5-2469df8e5f07","directory":"shmubedi-boo","title":"Shmubedi Boo","compatibility":99,"releases":[{"id":"0100ECD01165C000","region":null}]},{"id":"d2e4b5d9-c1f4-4d71-ac29-ce3b59174693","directory":"baobabs-mausoleum-grindhouse-edition","title":"Baobabs Mausoleum Grindhouse Edition","compatibility":99,"releases":[{"id":"01003370139D4000","region":null}]},{"id":"d2e9d740-7d1e-492c-b345-2f47560a5cd0","directory":"fire-emblem-three-houses","title":"Fire Emblem™: Three Houses","compatibility":1,"releases":[{"id":"010055D009F78000","region":null}]},{"id":"d3037026-9fbc-4fe5-b211-81d4c909f224","directory":"gridd-retroenhanced","title":"GRIDD: Retroenhanced","compatibility":99,"releases":[{"id":"0100197008B52000","region":null}]},{"id":"d324e114-3c28-41f1-91a4-f0578a5c4964","directory":"eekeemoo-splinters-of-the-dark-shard","title":"Eekeemoo - Splinters of the Dark Shard","compatibility":99,"releases":[{"id":"01006F900A298000","region":null}]},{"id":"d3294eef-1cb4-425e-bb8b-138975d46fbf","directory":"holy-potatoes-what-the-hell","title":"Holy Potatoes! What The Hell?!","compatibility":99,"releases":[{"id":"0100342009E16000","region":null}]},{"id":"d32c2561-2fa3-4197-8664-167204d37276","directory":"chess-brain","title":"Chess Brain","compatibility":99,"releases":[{"id":"0100CF9015A60000","region":null}]},{"id":"d32ee037-c307-497a-bb6a-ae9eefa9322b","directory":"l-o-l-surprise-remix-we-rule-the-world","title":"L.O.L. Surprise! Remix: We Rule The World","compatibility":99,"releases":[{"id":"0100F2B0123AE000","region":null}]},{"id":"d33a5314-a01b-4c40-b235-e3bd46289ad6","directory":"transient-extended-edition","title":"Transient: Extended Edition","compatibility":99,"releases":[{"id":"0100D080166F8000","region":null}]},{"id":"d33bd133-c30f-4da4-be1a-ff901d7360a3","directory":"astalon-tears-of-the-earth","title":"Astalon: Tears of the Earth","compatibility":99,"releases":[{"id":"01004A2013ACE000","region":null}]},{"id":"d34900ef-3d0a-49ef-baa0-eabc703b0a83","directory":"collection-of-saga-final-fantasy-legend","title":"COLLECTION of SaGa FINAL FANTASY LEGEND","compatibility":99,"releases":[{"id":"0100B77012266000","region":null}]},{"id":"d3598c85-4040-42dd-88d7-3af5cf1b0fac","directory":"new-frontier-days-~founding-pioneers~","title":"New Frontier Days ~Founding Pioneers~","compatibility":0,"releases":[{"id":"01004C200100E000","region":null}]},{"id":"d35bbe3b-4fbb-4245-acdd-47e40a2b712b","directory":"songbird-symphony","title":"Songbird Symphony","compatibility":99,"releases":[{"id":"0100E5400BF94000","region":null}]},{"id":"d36db1f0-f16a-4342-ac73-79788e1369d9","directory":"rise-race-the-future","title":"Rise: Race The Future","compatibility":0,"releases":[{"id":"01006BA00E652000","region":null}]},{"id":"d380f6ce-85b7-45fa-a705-c61224a01bdd","directory":"youkai-poetry","title":"Youkai Poetry","compatibility":99,"releases":[{"id":"010085D014E02000","region":null}]},{"id":"d38bf005-b14b-452d-94b7-914de329b22f","directory":"grood","title":"Grood","compatibility":99,"releases":[{"id":"01005240121F2000","region":null}]},{"id":"d38c61bf-e9ba-437e-849c-7b6d1e8944a6","directory":"pix-the-cat","title":"Pix the Cat","compatibility":99,"releases":[{"id":"010088800B72E000","region":null}]},{"id":"d395917d-3947-4620-8a5f-f65c48cc1de9","directory":"mask-of-mists","title":"Mask of Mists","compatibility":99,"releases":[{"id":"0100FFE011F0A000","region":null}]},{"id":"d399cc0c-d888-43c6-acbb-46558b532c02","directory":"xenon-racer","title":"Xenon Racer","compatibility":1,"releases":[{"id":"010026800BA16000","region":null}]},{"id":"d3c7759f-c161-45eb-9b3b-4f8c86b64f5d","directory":"assassins-creed-iii-remastered","title":"Assassin's Creed III: Remastered","compatibility":5,"releases":[{"id":"01007F600B134000","region":null}]},{"id":"d3c828fb-c216-4bff-92b0-53c10280f96c","directory":"drive-buy","title":"Drive Buy","compatibility":99,"releases":[{"id":"010093A0108DC000","region":null}]},{"id":"d3cd40fa-3e6b-423d-8ee6-de9c50bf8671","directory":"serious-scramblers","title":"Serious Scramblers","compatibility":99,"releases":[{"id":"0100C8C00FA10000","region":null}]},{"id":"d3f29998-0a92-43af-8475-d2589772f472","directory":"demetrios-demo","title":"Demetrios Demo","compatibility":99,"releases":[{"id":"0100CA300C5BA000","region":null}]},{"id":"d3ffc8c1-0cf4-4524-99c3-df007580c958","directory":"little-big-workshop","title":"Little Big Workshop","compatibility":4,"releases":[{"id":"0100F6B01188E000","region":null}]},{"id":"d40540ea-ce05-4291-b37a-f9107140a101","directory":"alphadia-genesis-2","title":"Alphadia Genesis 2","compatibility":99,"releases":[{"id":"01005CE015080000","region":null}]},{"id":"d417f438-90ee-49ea-8f67-336dd8a8b61a","directory":"route-me-mail-and-delivery-co","title":"Route Me Mail and Delivery Co","compatibility":99,"releases":[{"id":"01001C701481C000","region":null}]},{"id":"d41c70bf-abf9-41b9-9583-e17f157d972a","directory":"castle-of-heart","title":"Castle of Heart","compatibility":4,"releases":[{"id":"01003C100445C000","region":null}]},{"id":"d41c7b82-556f-4118-b045-60e3e172eacb","directory":"tanks-meet-zombies","title":"Tanks Meet Zombies","compatibility":99,"releases":[{"id":"010030B00C370000","region":null}]},{"id":"d4294b31-63cc-40d6-afa9-be5938d414e2","directory":"glo","title":"GLO","compatibility":99,"releases":[{"id":"010027C01545C000","region":null}]},{"id":"d42b87fc-4a91-4392-a070-45ea07993631","directory":"dragon-quest-builders-demo","title":"Dragon Quest Builders™ Demo","compatibility":99,"releases":[{"id":"0100C360070F6000","region":null}]},{"id":"d4560c63-d81e-49ed-8d18-8d2bd2a836f9","directory":"indygo","title":"Indygo","compatibility":99,"releases":[{"id":"01004C8012BB8000","region":null}]},{"id":"d459418d-4363-40c2-ba22-3de0da4f66db","directory":"xcom-r-2-collection","title":"XCOM® 2 Collection","compatibility":99,"releases":[{"id":"0100D0B00FB74000","region":null}]},{"id":"d45dc0d3-7ea2-428e-b0ee-0bd0694bd0ea","directory":"little-town-hero","title":"Little Town Hero","compatibility":1,"releases":[{"id":"01000FB00AA90000","region":null}]},{"id":"d4721e00-04c8-47a1-9aeb-1507b142ecb3","directory":"puyo-puyo-tetris","title":"Puyo Puyo Tetris","compatibility":0,"releases":[{"id":"010073C001D5E000","region":null}]},{"id":"d4783ffe-a52c-43ca-a7ce-2c70fe45e6dc","directory":"aca-neogeo-metal-slug-x","title":"ACA NEOGEO METAL SLUG X","compatibility":3,"releases":[{"id":"01008FD004DB6000","region":null}]},{"id":"d480d866-42ed-47d4-8153-ef9e0baec570","directory":"fruitfall-crush","title":"FruitFall Crush","compatibility":2,"releases":[{"id":"010038A007AA4000","region":null}]},{"id":"d48c0f2d-35e8-42c0-aa8c-3ef1e6be0222","directory":"gunmas-ambition-you-and-me-are-gunma-","title":"Gunma's Ambition  -You and me are Gunma-","compatibility":99,"releases":[{"id":"0100EC20101E4000","region":null}]},{"id":"d48e351b-7ceb-49ed-ae84-4e33498087be","directory":"pulstario","title":"Pulstario","compatibility":99,"releases":[{"id":"0100D61010526000","region":null}]},{"id":"d49c3734-881b-4a61-8e9c-3b68863ce01b","directory":"shinobi-spirits-s-legend-of-heroes","title":"Shinobi Spirits S: Legend of Heroes","compatibility":99,"releases":[{"id":"0100B0300E8B6000","region":null}]},{"id":"d4b52b6b-b051-49df-ad63-c46256997cbb","directory":"draw-chilly","title":"DRAW CHILLY","compatibility":99,"releases":[{"id":"01004C100FA84000","region":null}]},{"id":"d4c0fb54-92db-4d25-b1d5-663946c9b810","directory":"nostalgic-train","title":"NOSTALGIC TRAIN","compatibility":3,"releases":[{"id":"0100160014F22000","region":null}]},{"id":"d4d234e9-7cae-48ae-aaa2-a4df3fb2b619","directory":"the-count-lucanor","title":"The Count Lucanor","compatibility":4,"releases":[{"id":"01000850037C0000","region":null}]},{"id":"d4d9fada-1bbe-4c1b-b1d1-dde781ef3273","directory":"elea-paradigm-shift","title":"ELEA: Paradigm Shift","compatibility":99,"releases":[{"id":"010008E010012000","region":null}]},{"id":"d4e2a041-a7a8-4702-9d91-d27600841b7b","directory":"family-mysteries-3-criminal-mindset","title":"Family Mysteries 3: Criminal Mindset","compatibility":99,"releases":[{"id":"01001F0014C32000","region":null}]},{"id":"d4ec35a7-05e2-4cb7-9b60-66b8d0252df6","directory":"chronus-arc","title":"Chronus Arc","compatibility":99,"releases":[{"id":"0100E9F00CACC000","region":null}]},{"id":"d4f22e49-cb2d-4d37-ab91-d415068a7e08","directory":"the-bards-tale-arpg-remastered-and-resnarkled","title":"The Bard's Tale ARPG: Remastered and Resnarkled","compatibility":4,"releases":[{"id":"0100CD500DDAE000","region":null}]},{"id":"d5208571-4019-420a-a84e-2b19376c4d75","directory":"travel-mosaics-4-adventures-in-rio","title":"Travel Mosaics 4: Adventures In Rio","compatibility":99,"releases":[{"id":"010096D010BFE000","region":null}]},{"id":"d5293900-e532-49a3-9cf6-a198c70c2ed5","directory":"steven-universe-save-the-light","title":"Steven Universe: Save the Light","compatibility":1,"releases":[{"id":"010008C00B2F2000","region":null}]},{"id":"d52a5e97-8250-42a2-aea1-7e77139b74dd","directory":"active-life-outdoor-challenge","title":"ACTIVE LIFE Outdoor Challenge","compatibility":99,"releases":[{"id":"0100A21012AA6000","region":null}]},{"id":"d52b6ebb-aefa-4e73-bfe4-b5db0874dc77","directory":"double-dragon-and-kunio-kun-retro-brawler-bundle","title":"Double Dragon & Kunio-kun: Retro Brawler Bundle","compatibility":99,"releases":[{"id":"0100B1500E9F2000","region":null}]},{"id":"d531a3c3-c8b1-4af1-9be6-64d06232b197","directory":"abzu","title":"ABZÛ","compatibility":1,"releases":[{"id":"0100C1300BBC6000","region":null}]},{"id":"d53388e7-ef5b-429a-975c-3fb909854f44","directory":"little-squires-quests","title":"Little Squire's Quests","compatibility":99,"releases":[{"id":"0100DF9013D68000","region":null}]},{"id":"d535c1fe-d0dd-4788-926a-26d0f2d53c54","directory":"dadish-2","title":"Dadish 2","compatibility":99,"releases":[{"id":"0100BB70140BA000","region":null}]},{"id":"d54228d6-e050-49d9-abba-8545e31d3635","directory":"bad-north-demo","title":"Bad North Demo","compatibility":99,"releases":[{"id":"010075000D092000","region":null}]},{"id":"d5461cfb-32d3-411f-b5b5-86bc0abb80b0","directory":"fifa-19","title":"FIFA 19","compatibility":5,"releases":[{"id":"0100FFA0093E8000","region":null}]},{"id":"d5492eab-3190-4ab3-807f-8acd3cde5c2f","directory":"animal-fight-club","title":"Animal Fight Club","compatibility":99,"releases":[{"id":"010019500E642000","region":null}]},{"id":"d54e03bf-d6ad-46a7-a12a-e716a0fa3efc","directory":"agatha-christie-the-abc-murders","title":"Agatha Christie - The ABC Murders","compatibility":0,"releases":[{"id":"010087C011C4E000","region":null}]},{"id":"d55c97d3-9740-4eea-bc50-99bb51dcafca","directory":"re-zero-starting-life-in-another-world-the-prophecy-of-the-throne","title":"Re:ZERO -Starting Life in Another World- The Prophecy of the Throne","compatibility":4,"releases":[{"id":"01000B20117B8000","region":null}]},{"id":"d55d9443-4a65-49ae-b131-8bfd11ef288b","directory":"seeders-puzzle-reboot","title":"Seeders Puzzle Reboot","compatibility":99,"releases":[{"id":"0100F3000EBA8000","region":null}]},{"id":"d565a08d-50b9-420d-a14c-e93489ba0da0","directory":"regalia-of-men-and-monarchs-royal-edition","title":"Regalia: Of Men and Monarchs - Royal Edition","compatibility":0,"releases":[{"id":"0100FDF0083A6000","region":null}]},{"id":"d56a1ed5-0639-4a7f-9f35-dd70546cdc87","directory":"sturmwind-ex","title":"STURMWIND EX","compatibility":1,"releases":[{"id":"0100C5500E7AE000","region":null}]},{"id":"d5839014-25b7-4e55-bae2-97761dc1a574","directory":"capes-escape-game-5th-room","title":"Cape’s Escape Game 5th Room","compatibility":99,"releases":[{"id":"0100B2A016C9E000","region":null}]},{"id":"d58a5308-7ee9-4b11-8fe6-82ec8ba70e80","directory":"reptilian-rebellion","title":"Reptilian Rebellion","compatibility":5,"releases":[{"id":"010094800D3DA000","region":null}]},{"id":"d58b415b-7455-4eda-8ecc-771a47b40040","directory":"aca-neogeo-football-frenzy","title":"ACA NEOGEO FOOTBALL FRENZY","compatibility":99,"releases":[{"id":"0100EEA00AFB2000","region":null}]},{"id":"d58babc8-9dd3-4ec7-b85a-59c7bcfb74bf","directory":"neon-junctions","title":"Neon Junctions","compatibility":99,"releases":[{"id":"010085900E3B6000","region":null}]},{"id":"d59d24da-7535-4e53-a69f-77933ec87bd8","directory":"ellen","title":"Ellen","compatibility":0,"releases":[{"id":"010021A00E6CC000","region":null}]},{"id":"d59f68fd-a339-4781-99a2-5c917b6c2a19","directory":"yumeutsutsu-re-master","title":"Yumeutsutsu Re:Master","compatibility":99,"releases":[{"id":"01004FE0107EE000","region":null}]},{"id":"d5b0ad7a-feb4-4205-baa5-35e242ff5d97","directory":"dungeon-warfare","title":"Dungeon Warfare","compatibility":99,"releases":[{"id":"0100F8900E878000","region":null}]},{"id":"d5b79c2d-8b45-4eba-91ed-3244a40c344e","directory":"the-fox-awaits-me","title":"The Fox Awaits Me","compatibility":1,"releases":[{"id":"01002B400B590000","region":null}]},{"id":"d5ce0068-d035-4a3e-b518-bef11c80a6d5","directory":"hopping-girl-kohane-jumping-kingdom-princess-of-the-black-rabbit","title":"Hopping girl KOHANE Jumping Kingdom: Princess of the Black Rabbit","compatibility":0,"releases":[{"id":"010087800EE5A000","region":null}]},{"id":"d5d2c2b1-ddc2-43fa-ba1d-582e9af1d698","directory":"axiom-verge","title":"Axiom Verge","compatibility":1,"releases":[{"id":"0100052004384000","region":null}]},{"id":"d5f87365-3e1a-4a35-8fb1-c5a53d730cda","directory":"super-blood-hockey","title":"Super Blood Hockey","compatibility":99,"releases":[{"id":"010051A00D716000","region":null}]},{"id":"d5fb943a-bf87-44b8-ba84-64785ac5b01e","directory":"rush-rover","title":"Rush Rover","compatibility":99,"releases":[{"id":"0100E3A00A9D4000","region":null}]},{"id":"d601023f-3b84-4c05-b83b-c892a41bfbb5","directory":"popslinger","title":"PopSlinger","compatibility":99,"releases":[{"id":"0100809016D64000","region":null}]},{"id":"d60141a6-da08-4c48-b219-195af502cf41","directory":"skyscrappers","title":"SkyScrappers","compatibility":99,"releases":[{"id":"0100EA400BF44000","region":null}]},{"id":"d60753c7-48ac-4405-b452-42a5830a9819","directory":"ships","title":"Ships","compatibility":99,"releases":[{"id":"01000E800FCB4000","region":null}]},{"id":"d6082ea2-0a5e-4e25-8258-b414b6fc1eb4","directory":"final-fantasy-ix","title":"FINAL FANTASY IX","compatibility":2,"releases":[{"id":"01007EF00B094000","region":null}]},{"id":"d60fe27f-f278-4a35-a5b0-4dce43616040","directory":"troubleshooter","title":"Troubleshooter","compatibility":99,"releases":[{"id":"0100B5B0113CE000","region":null}]},{"id":"d61dc3fb-6850-4fa0-a17e-d23a130c36a8","directory":"the-lost-child","title":"The Lost Child","compatibility":1,"releases":[{"id":"01008A000A404000","region":null}]},{"id":"d61ec2f0-1458-4630-ad7f-72ffa9192988","directory":"power-racing-bundle-2","title":"Power Racing Bundle 2","compatibility":99,"releases":[{"id":"0100AD6013E1A000","region":null}]},{"id":"d62192f4-889a-4092-9e0a-81ed397e36cb","directory":"animal-learning-puzzle-for-toddlers-and-kids","title":"Animal Learning Puzzle for Toddlers and Kids","compatibility":99,"releases":[{"id":"01007F00145B6000","region":null}]},{"id":"d6244f63-69ed-4239-a815-da9773b5d60d","directory":"heroes-trials","title":"Heroes Trials","compatibility":99,"releases":[{"id":"010082800AE4C000","region":null}]},{"id":"d628ef3c-21d5-4e0a-8bd3-b417da47e1b4","directory":"constructor-plus","title":"Constructor Plus","compatibility":99,"releases":[{"id":"0100A330022C2000","region":null}]},{"id":"d62f5cad-9584-4752-bdeb-27f44d355ee1","directory":"raiders-of-the-north-sea","title":"Raiders of the North Sea","compatibility":99,"releases":[{"id":"010091700D826000","region":null}]},{"id":"d6468228-23f3-480b-8fc4-755b1982b029","directory":"driving-school-sim","title":"Driving School Sim","compatibility":0,"releases":[{"id":"0100DDB014698000","region":null}]},{"id":"d64fee46-d9e4-45cb-af2a-628110dec13a","directory":"exit-the-gungeon","title":"Exit the Gungeon","compatibility":1,"releases":[{"id":"0100DD30110CC000","region":null}]},{"id":"d6661332-1336-4ec0-9f1f-94e4254f8b9a","directory":"the-mims-beginning","title":"The Mims Beginning","compatibility":99,"releases":[{"id":"010044500F3C2000","region":null}]},{"id":"d6665235-fbc2-4d84-933f-37cf8b7970bd","directory":"monster-slayers","title":"Monster Slayers","compatibility":99,"releases":[{"id":"0100D1700C732000","region":null}]},{"id":"d666541e-b88d-46d2-94f0-ce1adf6a5a97","directory":"monster-jam-crush-it","title":"Monster Jam Crush It!","compatibility":4,"releases":[{"id":"010088400366E000","region":null}]},{"id":"d68026d7-a665-4f65-9de6-944882e1eebd","directory":"animal-super-squad","title":"Animal Super Squad","compatibility":1,"releases":[{"id":"0100EFE009424000","region":null}]},{"id":"d685107c-e479-4812-a418-62b07ed26705","directory":"farabel","title":"Farabel","compatibility":99,"releases":[{"id":"0100C9E00FD62000","region":null}]},{"id":"d685818e-069f-49cb-afa4-2b4676effb86","directory":"wunderling","title":"Wunderling","compatibility":3,"releases":[{"id":"01001C400482C000","region":null}]},{"id":"d68a1756-a68b-4fae-a8e0-f894a754879e","directory":"carnivores-dinosaur-hunt","title":"Carnivores: Dinosaur Hunt","compatibility":0,"releases":[{"id":"01005F5011AC4000","region":null}]},{"id":"d68d309e-e981-43e1-a7a8-d717a92cef44","directory":"moon-hunters","title":"Moon Hunters","compatibility":1,"releases":[{"id":"01004FD00382A000","region":null}]},{"id":"d6945473-69bd-47d3-add3-e40663eac4a5","directory":"red-bow","title":"Red Bow","compatibility":1,"releases":[{"id":"0100CF600FF7A000","region":null}]},{"id":"d6b5c1a5-a7c2-46d3-bfd1-5c76e81a4d44","directory":"pippu-bauble-quest","title":"Pippu - Bauble Quest","compatibility":99,"releases":[{"id":"0100313014CE6000","region":null}]},{"id":"d6bb68a7-4e66-4e95-896d-1a898c82c71f","directory":"dracula-frames","title":"Dracula Frames","compatibility":99,"releases":[{"id":"0100898015EA0000","region":null}]},{"id":"d6c52671-6269-4d10-b9eb-66e07e073063","directory":"baron-fur-is-gonna-fly","title":"Baron: Fur Is Gonna Fly","compatibility":99,"releases":[{"id":"010039C0106C6000","region":null}]},{"id":"d6c7f3c4-9d47-4831-8edc-17960bcd3908","directory":"neon-city-riders","title":"Neon City Riders","compatibility":3,"releases":[{"id":"0100A7B00FFC2000","region":null}]},{"id":"d6d3fa1d-4981-4930-8a5d-0edd4268d05c","directory":"cook-serve-delicious-2","title":"Cook, Serve, Delicious! 2!!","compatibility":2,"releases":[{"id":"0100FD800D594000","region":null}]},{"id":"d6d59c49-a2f5-448d-be55-c608f12ac3b1","directory":"travel-mosaics-6-christmas-around-the-world","title":"Travel Mosaics 6: Christmas Around the World","compatibility":99,"releases":[{"id":"0100D520119D6000","region":null}]},{"id":"d6df1dcc-462a-4f2e-8a46-2d63a76e5b55","directory":"yoko-yuki-dr-rats-revenge","title":"Yoko & Yuki: Dr. Rat's Revenge","compatibility":99,"releases":[{"id":"010008C014432000","region":null}]},{"id":"d70dfc47-dfe6-4b37-8efc-adc4892a4a57","directory":"we-know-the-devil","title":"We Know the Devil","compatibility":99,"releases":[{"id":"01004BD015930000","region":null}]},{"id":"d70f690a-86a1-4dc1-8c47-fbcb41768456","directory":"hardcore-maze-cube","title":"Hardcore Maze Cube","compatibility":99,"releases":[{"id":"0100D55011D60000","region":null}]},{"id":"d716a219-57d7-4a1d-9d02-ff88817b5c1a","directory":"awesome-pea","title":"Awesome Pea","compatibility":1,"releases":[{"id":"0100B8C00CFCE000","region":null}]},{"id":"d71b2335-dffc-44b4-8a43-aa36377b1a0d","directory":"aca-neogeo-twinkle-star-sprites","title":"ACA NEOGEO TWINKLE STAR SPRITES","compatibility":5,"releases":[{"id":"0100B8300AFD8000","region":null}]},{"id":"d71c3d7e-b897-46e5-b72e-4094e0b6a473","directory":"arcade-archives-moon-cresta","title":"Arcade Archives MOON CRESTA","compatibility":99,"releases":[{"id":"01000BE001DD8000","region":null}]},{"id":"d723694c-9d80-4b95-b26d-2601b7a8f782","directory":"anima-gate-of-memories","title":"Anima: Gate of Memories","compatibility":2,"releases":[{"id":"0100706005B6A000","region":null}]},{"id":"d728ca60-7a80-408d-987b-4ff9559d659e","directory":"elliot-quest","title":"Elliot Quest","compatibility":0,"releases":[{"id":"0100128003A24000","region":null}]},{"id":"d728f66e-d930-4794-878a-911216453d3f","directory":"klondike-solitaire","title":"Klondike Solitaire","compatibility":4,"releases":[{"id":"010079D00C8AE000","region":null}]},{"id":"d72d7133-7c09-472c-9178-56ddd1006ce8","directory":"escape-from-tethys","title":"Escape From Tethys","compatibility":99,"releases":[{"id":"010092901203A000","region":null}]},{"id":"d7316e6c-c8a2-4670-8124-c70523961b15","directory":"lost-horizon","title":"Lost Horizon","compatibility":3,"releases":[{"id":"010064200F7D8000","region":null}]},{"id":"d7347d15-5f89-4d4f-a0d6-0471d95bbfb4","directory":"almightree-the-last-dreamer","title":"Almightree: The Last Dreamer","compatibility":99,"releases":[{"id":"010063000C3CE000","region":null}]},{"id":"d73f2a6c-0fd4-4fe4-87a2-c64a1999ffd8","directory":"skul-the-hero-slayer","title":"Skul: The Hero Slayer","compatibility":0,"releases":[{"id":"0100ACF013E9A000","region":null}]},{"id":"d7467fac-0a86-4ec1-b1c3-26552cb31158","directory":"volleyball-challenge","title":"Volleyball Challenge","compatibility":99,"releases":[{"id":"010032D014A38000","region":null}]},{"id":"d7481411-eb40-472d-a5bf-0d9c3e0da0b4","directory":"metropolis-lux-obscura-demo","title":"Metropolis: Lux Obscura Demo","compatibility":99,"releases":[{"id":"0100BB500AAE6000","region":null}]},{"id":"d74ed31b-5e23-4620-95bf-4231c8aeda25","directory":"ayo-the-clown","title":"Ayo the Clown","compatibility":0,"releases":[{"id":"01006C6014878000","region":null}]},{"id":"d7619e6a-e353-4159-8410-9e64c6aa3ece","directory":"snipperclips-cut-it-out-together","title":"Snipperclips – Cut it out, together!","compatibility":0,"releases":[{"id":"0100704000B3A000","region":null}]},{"id":"d763e7f0-514a-4068-9421-4242182d02c3","directory":"spiritsphere-dx","title":"SpiritSphere DX","compatibility":99,"releases":[{"id":"01009D60080B4000","region":null}]},{"id":"d7666df1-e78b-48f7-865d-02ed0ef64284","directory":"aca-neogeo-the-last-blade-2","title":"ACA NEOGEO THE LAST BLADE 2","compatibility":4,"releases":[{"id":"0100699008792000","region":null}]},{"id":"d769a038-2360-4472-afed-ea5833e576ff","directory":"the-raven-remastered","title":"The Raven Remastered","compatibility":99,"releases":[{"id":"010058A00BF1C000","region":null}]},{"id":"d76d0e7f-fb0f-4abb-a048-c7c46c594b56","directory":"beats-runner","title":"Beats Runner","compatibility":99,"releases":[{"id":"010095200EA5E000","region":null}]},{"id":"d76f30f6-1b74-426e-8443-a17e46c7032c","directory":"640","title":"64.0","compatibility":99,"releases":[{"id":"0100EFE00E964000","region":null}]},{"id":"d771a0c2-0ef6-4f31-b4fe-34484d10f0e1","directory":"lego-r-marvel-super-heroes","title":"LEGO® Marvel™ Super Heroes","compatibility":99,"releases":[{"id":"01006F600FFC8000","region":null}]},{"id":"d77754c8-ce77-4b12-b28c-207a11d80486","directory":"new-york-mysteries-the-lantern-of-souls","title":"New York Mysteries: The Lantern of Souls","compatibility":99,"releases":[{"id":"010051801671C000","region":null}]},{"id":"d78b4acc-f275-423d-98cb-9f008565e50f","directory":"daemon-x-machina-prototype-missions","title":"DAEMON X MACHINA: Prototype Missions","compatibility":5,"releases":[{"id":"0100BF600D83A000","region":null}]},{"id":"d790af9a-03ef-4770-a46f-02a627893cff","directory":"rabi-ribi","title":"Rabi-Ribi","compatibility":0,"releases":[{"id":"01005BF00E4DE000","region":null}]},{"id":"d7983a9f-23af-4c8c-acf7-18dcc9929130","directory":"indie-gems-bundle-explosions-edition","title":"Indie Gems Bundle - Explosions Edition","compatibility":99,"releases":[{"id":"01004C300FCD4000","region":null}]},{"id":"d79bf50b-068f-417b-aa2c-10990f497e54","directory":"spaceship-curse","title":"Spaceship Curse","compatibility":99,"releases":[{"id":"01007E40136D8000","region":null}]},{"id":"d7a27863-6c7d-42a8-a711-c2bffcc840fb","directory":"machiknights-blood-bagos-","title":"MachiKnights -Blood bagos-","compatibility":99,"releases":[{"id":"0100F2400D434000","region":null}]},{"id":"d7a4fff4-4b7c-4ac3-909d-f4dfcb541f7f","directory":"figment","title":"Figment","compatibility":2,"releases":[{"id":"0100118009C68000","region":null}]},{"id":"d7b90751-492f-4f6c-9fa9-46ab6a0a8e28","directory":"vampire-the-masquerade-shadows-of-new-york","title":"Vampire: The Masquerade - Shadows of New York","compatibility":99,"releases":[{"id":"01002C301280E000","region":null}]},{"id":"d7ba4e5b-9bb3-4ead-ae31-7b19cf9bbd4c","directory":"jenny-leclue-detectivu","title":"Jenny LeClue - Detectivu","compatibility":99,"releases":[{"id":"0100C2700AEB8000","region":null}]},{"id":"d7bbc108-4e7f-45be-9010-d895e450e160","directory":"mike-dies","title":"Mike Dies","compatibility":99,"releases":[{"id":"0100D0B00AEFA000","region":null}]},{"id":"d7c4b996-06b5-4a77-b371-59ec650ac0fa","directory":"the-coma-2-vicious-sisters","title":"The Coma 2: Vicious Sisters","compatibility":2,"releases":[{"id":"0100B7C01169C000","region":null}]},{"id":"d7cb6045-ec59-4b49-8f7a-aa7a3733a384","directory":"aggelos","title":"Aggelos","compatibility":2,"releases":[{"id":"010004D00A9C0000","region":null}]},{"id":"d7e148a4-58c3-48c8-ac47-c80b64caaaa5","directory":"dawn-of-survivors-2","title":"Dawn of Survivors 2","compatibility":99,"releases":[{"id":"0100878014E22000","region":null}]},{"id":"d7eb9805-9473-4a97-b184-a009036d1c66","directory":"pocket-harvest","title":"Pocket Harvest","compatibility":99,"releases":[{"id":"010058C00E25A000","region":null}]},{"id":"d7f6915c-70d7-4a17-91ce-0278ad129837","directory":"ruined-king-a-league-of-legends-story","title":"Ruined King: A League of Legends Story™","compatibility":99,"releases":[{"id":"0100947013122000","region":null}]},{"id":"d7fb4d90-af27-4aff-abc4-e826ba7c08b9","directory":"candle-the-power-of-the-flame","title":"Candle: The Power of the Flame","compatibility":2,"releases":[{"id":"0100E4600B166000","region":null}]},{"id":"d80b85e5-a0fb-4cde-a8b4-541c0d91c188","directory":"crysis-2-remastered","title":"Crysis 2 Remastered","compatibility":3,"releases":[{"id":"0100582010AE0000","region":null}]},{"id":"d80d4c50-6082-4a0a-a187-1aab0d96cd3d","directory":"sports-pinball-bundle","title":"Sports Pinball Bundle","compatibility":99,"releases":[{"id":"0100F490151AA000","region":null}]},{"id":"d81b007e-3929-4409-bbbb-b773feb5b5a0","directory":"bacon-man-an-adventure","title":"Bacon Man: An Adventure","compatibility":2,"releases":[{"id":"0100EAF00E32E000","region":null}]},{"id":"d8223ab4-0a9e-4af8-bd29-bcb47765a700","directory":"necrobarista-final-pour","title":"Necrobarista - Final Pour -","compatibility":3,"releases":[{"id":"0100E64015370000","region":null}]},{"id":"d829859a-8f1c-4889-af67-04c42c18d010","directory":"rise-eterna","title":"Rise Eterna","compatibility":99,"releases":[{"id":"010015F014A5C000","region":null}]},{"id":"d82db4aa-3989-46ee-afb2-81b93d70132b","directory":"friday-the-13th-the-game-ultimate-slasher-edition","title":"Friday the 13th: The Game Ultimate Slasher Edition","compatibility":1,"releases":[{"id":"010092A00C4B6000","region":null}]},{"id":"d83882d1-7341-42ec-8472-bc815b5b77c3","directory":"ninja-striker","title":"Ninja Striker!","compatibility":99,"releases":[{"id":"010081D00A480000","region":null}]},{"id":"d83c61e4-c5a4-44cd-8b92-f1b6a481c209","directory":"anima-gate-of-memories-arcane-edition","title":"Anima: Gate of Memories - Arcane Edition","compatibility":2,"releases":[{"id":"010033F00B3FA000","region":null}]},{"id":"d8782742-ac16-4442-9bc9-7d1a90b71a11","directory":"driving-school-original","title":"Driving School Original","compatibility":99,"releases":[{"id":"01003FD00A02A000","region":null}]},{"id":"d87f369b-4830-4195-bfcc-90b58f03ce76","directory":"rainbows-toilets-unicorns","title":"Rainbows, toilets & unicorns","compatibility":99,"releases":[{"id":"01009D9010B9E000","region":null}]},{"id":"d887789a-f724-436a-abf5-fc806fbe94af","directory":"piczle-colors","title":"Piczle Colors","compatibility":99,"releases":[{"id":"010029600CD44000","region":null}]},{"id":"d88ecf98-a771-42ae-a6c2-2d986e0bc23a","directory":"we-should-talk","title":"We should talk.","compatibility":99,"releases":[{"id":"0100560010E3E000","region":null}]},{"id":"d892733a-387c-4d7a-8342-a21236137234","directory":"spidersolitaire-black","title":"SpiderSolitaire BLACK","compatibility":99,"releases":[{"id":"010082700C618000","region":null}]},{"id":"d8b69fdd-b1ef-4227-8b8a-b8fedcb1b15a","directory":"locomotion","title":"Locomotion","compatibility":99,"releases":[{"id":"0100708010800000","region":null}]},{"id":"d8bfaa4a-84da-48c4-a6c6-8607abfc7547","directory":"maria-the-witch","title":"Maria The Witch","compatibility":99,"releases":[{"id":"0100EB6005E90000","region":null}]},{"id":"d8d29a6a-bfc7-4c25-bd20-39b444eb2f2c","directory":"composer","title":"Composer","compatibility":0,"releases":[{"id":"0100BDA0165A6000","region":null}]},{"id":"d8e4737b-94d3-4ef8-8774-165f0d612a12","directory":"dinosaur-fossil-puzzles","title":"Dinosaur Fossil Puzzles","compatibility":99,"releases":[{"id":"0100B96015C94000","region":null}]},{"id":"d9063381-3ec8-46ad-b06f-ade2d6c413f4","directory":"animal-crossing-new-horizons-island-transfer-tool","title":"Animal Crossing: New Horizons Island Transfer Tool","compatibility":5,"releases":[{"id":"0100F38011CFE000","region":null}]},{"id":"d90675c0-2ab5-435d-b6e8-6e6472a8599f","directory":"unrailed","title":"Unrailed!","compatibility":5,"releases":[{"id":"010042C011476000","region":null}]},{"id":"d9154da6-bf4c-4b1d-9d94-5076036f18c5","directory":"digerati-presents-the-dungeon-crawl-vol-1","title":"Digerati Presents: The Dungeon Crawl Vol. 1","compatibility":2,"releases":[{"id":"010035D0121EC000","region":null}]},{"id":"d916405b-7b1c-4fc7-adfe-a709508a6eab","directory":"v-rally-4","title":"V-Rally 4","compatibility":2,"releases":[{"id":"010064400B138000","region":null}]},{"id":"d92616a9-b5e0-4bd4-9e84-bd3560305ac1","directory":"adams-venture-origins","title":"Adam's Venture™: Origins","compatibility":3,"releases":[{"id":"0100C0C0040E4000","region":null}]},{"id":"d92d6eda-6549-4403-b060-7235e392c83a","directory":"zenge","title":"Zenge","compatibility":99,"releases":[{"id":"01008DD0114AE000","region":null}]},{"id":"d934ef21-8915-4397-9aa5-badf6216369a","directory":"fall-of-light-darkest-edition","title":"Fall of Light: Darkest Edition","compatibility":1,"releases":[{"id":"01005A600BE60000","region":null}]},{"id":"d9383c45-e667-407c-9963-313d14cbf2ca","directory":"football-battle","title":"Football Battle","compatibility":99,"releases":[{"id":"01005F901566E000","region":null}]},{"id":"d93c9aaa-cd15-45fe-97d3-0d3de097ec33","directory":"diggerman","title":"Diggerman","compatibility":99,"releases":[{"id":"0100E4400C9A6000","region":null}]},{"id":"d9418c54-c9e5-41d7-82cb-54f1d8dd2fc7","directory":"red-square-escape-2","title":"Red Square Escape 2","compatibility":99,"releases":[{"id":"0100336015C9C000","region":null}]},{"id":"d942f99c-b439-4bb1-8e1f-fccae1150e85","directory":"bubble-shooter-fx","title":"Bubble Shooter FX","compatibility":99,"releases":[{"id":"0100C7C016454000","region":null}]},{"id":"d9498424-ba1e-4a9d-9d44-a9d3bb6b4e97","directory":"filmechanism","title":"FILMECHANISM","compatibility":99,"releases":[{"id":"01000F201542E000","region":null}]},{"id":"d94f8440-4b8d-4f85-add4-f4abaea4a72a","directory":"fantasy-strike","title":"Fantasy Strike","compatibility":0,"releases":[{"id":"0100944003820000","region":null}]},{"id":"d95c5eea-339d-467b-87b5-666ddf935fb8","directory":"metal-commando","title":"Metal Commando","compatibility":1,"releases":[{"id":"0100BE5015B7C000","region":null}]},{"id":"d96760e3-d400-48ad-a48f-0587b6408d2b","directory":"blue-reflection-second-light","title":"BLUE REFLECTION: Second Light","compatibility":3,"releases":[{"id":"010071C013390000","region":null}]},{"id":"d971d4b5-96cc-4f69-9e1f-5836927e0965","directory":"heroes-of-the-monkey-tavern","title":"Heroes of the Monkey Tavern","compatibility":1,"releases":[{"id":"0100352006A10000","region":null}]},{"id":"d9773332-1c8c-4609-8db0-4aa7c95ac156","directory":"mantis-burn-racing","title":"Mantis Burn Racing","compatibility":3,"releases":[{"id":"0100E98002F6E000","region":null}]},{"id":"d97a1052-c225-49e7-8dfa-3f5066ec300d","directory":"lego-city-undercover","title":"LEGO CITY Undercover","compatibility":1,"releases":[{"id":"01003A30012C0000","region":null}]},{"id":"d97dd4c0-39c6-4444-b826-3cf2d1908d3e","directory":"tamiku","title":"Tamiku","compatibility":99,"releases":[{"id":"010008A0128C4000","region":null}]},{"id":"d984a1db-aa05-46d6-8305-48c197d69eb0","directory":"turbo-skiddy-racing","title":"Turbo Skiddy Racing","compatibility":99,"releases":[{"id":"0100789014E26000","region":null}]},{"id":"d984cbcc-87f4-4393-8730-51e4f33f59e2","directory":"mx-vs-atv-all-out","title":"MX vs ATV All Out","compatibility":2,"releases":[{"id":"0100218011E7E000","region":null}]},{"id":"d98a3606-a089-48fb-83eb-9a8f5309c712","directory":"pixel-game-maker-series-werewolf-princess-kaguya","title":"Pixel Game Maker Series Werewolf Princess Kaguya","compatibility":3,"releases":[{"id":"0100859013CE6000","region":null}]},{"id":"d98e6ef8-6ce0-49bc-80bd-848b5a2da446","directory":"dead-synchronicity-tomorrow-comes-today","title":"Dead Synchronicity: Tomorrow Comes Today","compatibility":0,"releases":[{"id":"0100B410040F2000","region":null}]},{"id":"d9935299-e234-4546-91e8-7d8e5e31d93a","directory":"late-shift","title":"Late Shift","compatibility":99,"releases":[{"id":"0100055007B86000","region":null}]},{"id":"d997b974-3177-4091-b56d-a16af5dc6a7a","directory":"lost-lands-the-wanderer","title":"Lost Lands: The Wanderer","compatibility":99,"releases":[{"id":"0100AEC014C92000","region":null}]},{"id":"d99aa492-9a86-4cde-a2d1-76b2fb985866","directory":"alteric","title":"Alteric","compatibility":0,"releases":[{"id":"01004DB00935A000","region":null}]},{"id":"d9a29dc6-4b61-49c8-9b99-cd8f304e8c1d","directory":"fire-unghs-quest","title":"Fire: Ungh’s Quest","compatibility":99,"releases":[{"id":"010025C014798000","region":null}]},{"id":"d9ab34ff-9bf1-4c0d-ad9d-8767aa63cfdb","directory":"for-the-king","title":"For The King","compatibility":2,"releases":[{"id":"010069400B6BE000","region":null}]},{"id":"d9ac0026-c5e0-4cf0-9b9c-e45fe250d92f","directory":"aca-neogeo-art-of-fighting-2","title":"ACA NEOGEO ART OF FIGHTING 2","compatibility":4,"releases":[{"id":"010066600877E000","region":null}]},{"id":"d9b07875-7c0c-4a77-be7c-0b080588758b","directory":"the-great-ace-attorney-chronicles","title":"The Great Ace Attorney Chronicles","compatibility":0,"releases":[{"id":"010036E00FB20000","region":null}]},{"id":"d9c9e9c3-c5c3-41d2-8e89-d9f121676af9","directory":"dragon-quest-builders-2","title":"DRAGON QUEST BUILDERS 2","compatibility":2,"releases":[{"id":"010042000A986000","region":null}]},{"id":"d9ce454c-fe54-455f-8055-34fbe999e4dc","directory":"heart-chain-kitty","title":"Heart Chain Kitty","compatibility":99,"releases":[{"id":"010053C014E1A000","region":null}]},{"id":"d9dbef04-c3b9-4837-9a06-a192a999cac9","directory":"troubledays","title":"TroubleDays","compatibility":99,"releases":[{"id":"01005EA012430000","region":null}]},{"id":"d9e2fefe-9811-431a-83ea-60454d54a2ea","directory":"stealth","title":"Stealth","compatibility":99,"releases":[{"id":"01002BB013BF8000","region":null}]},{"id":"d9e9b661-e27d-4715-9e6d-73a08cb2e2f2","directory":"lumini","title":"Lumini","compatibility":99,"releases":[{"id":"010052B00B194000","region":null}]},{"id":"d9efb07c-f2eb-4060-a13c-4fedc9ca7b3f","directory":"lego-jurassic-world","title":"LEGO Jurassic World","compatibility":1,"releases":[{"id":"01001C100E772000","region":null}]},{"id":"d9f58c2d-3717-4af7-98e3-ca59b703d5fa","directory":"momolu-and-friends","title":"Momolu and Friends","compatibility":99,"releases":[{"id":"0100B6B015730000","region":null}]},{"id":"d9fd8635-f90c-4545-9c94-59189d564f59","directory":"motorsport-manager-for-nintendo-switch","title":"Motorsport Manager for Nintendo Switch","compatibility":1,"releases":[{"id":"01002A900D6D6000","region":null}]},{"id":"da0ac767-588d-485d-9a01-b9c11becce6e","directory":"paint-the-town-red","title":"Paint the Town Red","compatibility":99,"releases":[{"id":"010026E013EFC000","region":null}]},{"id":"da1add1b-4eec-4b87-9d6f-13c97275dfd1","directory":"parasomnia-verum","title":"Parasomnia Verum","compatibility":99,"releases":[{"id":"010055A015CE6000","region":null}]},{"id":"da1b224f-ade1-4945-97f4-9ad674e13834","directory":"die-for-valhalla","title":"Die for Valhalla!","compatibility":2,"releases":[{"id":"0100D98005E8C000","region":null}]},{"id":"da1d3b01-0136-48ce-bf47-c767adc61449","directory":"going-under","title":"Going Under","compatibility":1,"releases":[{"id":"01004D501113C000","region":null}]},{"id":"da385653-5743-48b0-bc11-c090634717d6","directory":"smash-reversi","title":"Smash Reversi","compatibility":99,"releases":[{"id":"01003C800CB9E000","region":null}]},{"id":"da3d011a-a65f-4087-99a4-a59d474a8f31","directory":"the-jackbox-party-pack-5","title":"The Jackbox Party Pack 5","compatibility":99,"releases":[{"id":"01006FE0096AC000","region":null}]},{"id":"da421095-f526-4b44-9ce8-5372f6ed7671","directory":"cotton-2-saturn-tribute","title":"COTTOn 2 - Saturn Tribute","compatibility":99,"releases":[{"id":"0100A18015268000","region":null}]},{"id":"da47bebd-8614-41c4-a1e9-c68ef285e670","directory":"inertial-drift","title":"Inertial Drift","compatibility":1,"releases":[{"id":"01002BD00F626000","region":null}]},{"id":"da492f06-5cf7-4d12-8919-d0039b3a094b","directory":"savage-halloween","title":"Savage Halloween","compatibility":1,"releases":[{"id":"01007130135E2000","region":null}]},{"id":"da518150-eeec-4374-adda-0e78a499cd36","directory":"gang-beasts","title":"Gang Beasts","compatibility":4,"releases":[{"id":"0100D58012E12000","region":null}]},{"id":"da571ffd-10d6-4742-8863-9b76d1423444","directory":"rush-rally-origins","title":"Rush Rally Origins","compatibility":5,"releases":[{"id":"0100EA00147A8000","region":null}]},{"id":"da60dc86-d21f-4e1b-ac3d-01b5bdda7d3d","directory":"the-dealer-simulator","title":"The Dealer Simulator","compatibility":99,"releases":[{"id":"01002FB013B8E000","region":null}]},{"id":"da6d87c2-16e7-4167-b32e-d48b7bcaf1d0","directory":"nicky-the-home-alone-golf-ball","title":"Nicky - The Home Alone Golf Ball","compatibility":99,"releases":[{"id":"010058800F860000","region":null}]},{"id":"da8aeb4f-e221-476e-98b9-e1791346d155","directory":"wytchwood","title":"Wytchwood","compatibility":99,"releases":[{"id":"01003750154D6000","region":null}]},{"id":"da8bae1a-6371-4c76-bb0f-045b977707e4","directory":"ace-invaders","title":"Ace Invaders","compatibility":2,"releases":[{"id":"0100189013E9C000","region":null}]},{"id":"da916662-5d0f-4b54-ab14-cf5853ce6a01","directory":"bit-trip-fate","title":"BIT.TRIP FATE","compatibility":99,"releases":[{"id":"0100744012D3E000","region":null}]},{"id":"dab9bdd8-50c5-494d-9d51-a730e2572387","directory":"shalnor-legends-sacred-lands","title":"Shalnor Legends: Sacred Lands","compatibility":99,"releases":[{"id":"0100B4900E008000","region":null}]},{"id":"dabd8a77-05fb-446d-89c6-f7a30c4a4c8b","directory":"titan-glory","title":"Titan Glory","compatibility":99,"releases":[{"id":"0100FE801185E000","region":null}]},{"id":"dac74b56-32dc-443a-b3d8-5dcbb57c1836","directory":"aca-neogeo-gururin","title":"ACA NEOGEO Gururin","compatibility":3,"releases":[{"id":"0100CE400A2FA000","region":null}]},{"id":"dadc95b7-16d7-44c3-a182-4e5a36aa4d8e","directory":"chess-knights-viking-lands","title":"Chess Knights: Viking Lands","compatibility":99,"releases":[{"id":"0100C51013902000","region":null}]},{"id":"dae411e3-69e2-4eac-a311-c34ba76f1cc6","directory":"guts-n-goals","title":"Guts 'N Goals","compatibility":99,"releases":[{"id":"01005930137AE000","region":null}]},{"id":"daefed59-5829-4f98-ada6-6aa48df7dadf","directory":"stab-stab-stab","title":"STAB STAB STAB!","compatibility":99,"releases":[{"id":"010095600F1A8000","region":null}]},{"id":"db0ad32b-1172-4711-9f2e-9543e6d7c40b","directory":"family-mysteries-2-echoes-of-tomorrow","title":"Family Mysteries 2: Echoes of Tomorrow","compatibility":99,"releases":[{"id":"0100335012D08000","region":null}]},{"id":"db336f39-2bf0-4f9f-9e6f-71dc20f968a6","directory":"rolling-sky-2","title":"Rolling Sky 2","compatibility":1,"releases":[{"id":"01007C900FD96000","region":null}]},{"id":"db34c34d-56a6-4b4e-83c1-f78c68304751","directory":"climbros","title":"Climbros","compatibility":0,"releases":[{"id":"01003FF011856000","region":null}]},{"id":"db477d45-923f-4384-9110-ff248601f665","directory":"rpg-maker-mv-player","title":"RPG Maker MV Player","compatibility":99,"releases":[{"id":"01008A900CB90000","region":null}]},{"id":"db7483b0-7014-4f9c-a156-c0ad701ffac0","directory":"sweets-swap","title":"Sweets Swap","compatibility":99,"releases":[{"id":"0100B280148F2000","region":null}]},{"id":"db77ef6f-3226-4a17-9fc7-337b8f3ac750","directory":"centipede-recharged","title":"Centipede: Recharged","compatibility":0,"releases":[{"id":"0100EA501521A000","region":null}]},{"id":"db82e6c5-02e4-497b-9ddf-1810f1672aea","directory":"active-soccer-2019","title":"Active Soccer 2019","compatibility":99,"releases":[{"id":"0100BEB00AAF8000","region":null}]},{"id":"dba0801c-4552-4dfb-b962-67a94032bb21","directory":"control-ultimate-edition-cloud-version","title":"Control Ultimate Edition - Cloud Version","compatibility":99,"releases":[{"id":"0100041013360000","region":null}]},{"id":"dbb67627-747f-44b5-b368-8efeac496145","directory":"teratopia","title":"Teratopia","compatibility":99,"releases":[{"id":"01001CC012CC4000","region":null}]},{"id":"dbc041ec-17b5-4c90-9965-0d535836c781","directory":"heaven-dust","title":"Heaven Dust","compatibility":1,"releases":[{"id":"010059100D928000","region":null}]},{"id":"dbc59aed-5347-443f-80a0-d0ad2a52ae7a","directory":"brawlout","title":"Brawlout","compatibility":2,"releases":[{"id":"01001FD0040F4000","region":null}]},{"id":"dbcd6318-fcc9-45ae-8753-de923ef56109","directory":"enchanted-path","title":"Enchanted Path","compatibility":99,"releases":[{"id":"0100C20015ED8000","region":null}]},{"id":"dbcf5f36-fdea-4cd6-bd2c-1b3359e21177","directory":"kissed-by-the-baddest-bidder","title":"Kissed by the Baddest Bidder","compatibility":3,"releases":[{"id":"0100F3A00F4CA000","region":null}]},{"id":"dbd4ebca-66ca-4b31-b4a2-444602e9a164","directory":"shovel-knight-specter-of-torment","title":"Shovel Knight: Specter of Torment","compatibility":1,"releases":[{"id":"01001180021FA000","region":null}]},{"id":"dbd8564d-4968-4021-b659-f89be5f79936","directory":"wildfire","title":"Wildfire","compatibility":99,"releases":[{"id":"0100D9D011E3C000","region":null}]},{"id":"dbd862a9-9da8-4f6f-861f-a9f35d00d1de","directory":"hopiko","title":"HoPiKo","compatibility":99,"releases":[{"id":"010071B00C904000","region":null}]},{"id":"dbda8252-26ad-4b3e-a3c9-08fbc63fd57b","directory":"one-deck-dungeon","title":"One Deck Dungeon","compatibility":99,"releases":[{"id":"0100B5D012F38000","region":null}]},{"id":"dbf5455f-3091-4825-ad4b-1b1639133788","directory":"balthazars-dream","title":"Balthazar's Dream","compatibility":99,"releases":[{"id":"0100BC400FB64000","region":null}]},{"id":"dbfd4c12-f014-4626-b76f-0e4d6c3e259e","directory":"sinless","title":"Sinless","compatibility":99,"releases":[{"id":"0100B8800F858000","region":null}]},{"id":"dc04ed01-0da9-4ddc-8c8b-42b348c722ba","directory":"puppies-and-kittens","title":"PUPPIES AND KITTENS","compatibility":99,"releases":[{"id":"0100A0E014C6C000","region":null}]},{"id":"dc1438f6-a98f-4058-b3fa-115a1087680e","directory":"estranged-the-departure","title":"Estranged: The Departure","compatibility":99,"releases":[{"id":"01004F9012FD8000","region":null}]},{"id":"dc1eef19-3da2-46ab-8167-58976d8026b8","directory":"pyre-on-fire-ten-pages","title":"Pyre on Fire: Ten Pages","compatibility":99,"releases":[{"id":"0100375013B56000","region":null}]},{"id":"dc2a3201-74bf-4dbd-8aeb-03952ec19faf","directory":"haven-park","title":"Haven Park","compatibility":99,"releases":[{"id":"0100E390155E4000","region":null}]},{"id":"dc2add31-bdc3-4e5e-9bc4-920f3636383a","directory":"kowloon-high-school-chronicle","title":"Kowloon High-School Chronicle","compatibility":1,"releases":[{"id":"0100FF70134BA000","region":null}]},{"id":"dc391bac-5d74-4a3c-a6df-d578a02b5f8e","directory":"crown-trick","title":"Crown Trick","compatibility":0,"releases":[{"id":"0100059012BAE000","region":null}]},{"id":"dc3e4cdf-2e6d-4cc4-acfd-c6f641481874","directory":"pathway","title":"Pathway","compatibility":99,"releases":[{"id":"0100114014724000","region":null}]},{"id":"dc50e778-ab1b-496e-a4f6-8187c31e8c8b","directory":"deadly-premonition-origins","title":"Deadly Premonition Origins","compatibility":0,"releases":[{"id":"0100EBE00F22E000","region":null}]},{"id":"dc5a9821-1b56-4538-8d51-70ed8ad1fa31","directory":"super-shape-shooter","title":"Super Shape Shooter","compatibility":99,"releases":[{"id":"0100C2201475C000","region":null}]},{"id":"dc5ba2ad-747b-4128-ba56-a477093bff72","directory":"zeus-quests-remastered","title":"Zeus Quests Remastered","compatibility":99,"releases":[{"id":"0100EE200B764000","region":null}]},{"id":"dc69a363-c648-42c3-a3a9-17dc858834cd","directory":"containment","title":"Containment","compatibility":99,"releases":[{"id":"0100589010EFE000","region":null}]},{"id":"dc73cdf7-0640-4a65-a282-8ebf4179d9bc","directory":"discmaster","title":"Discmaster","compatibility":99,"releases":[{"id":"0100D7800C4DC000","region":null}]},{"id":"dc742099-201d-4ed4-9d49-19f3cfaa5bc0","directory":"yoga-master","title":"YOGA MASTER","compatibility":4,"releases":[{"id":"01001B6010D58000","region":null}]},{"id":"dc807ac8-ad9b-412e-840d-bba4bebe1da0","directory":"burger-master","title":"Burger Master","compatibility":99,"releases":[{"id":"0100AC30143E6000","region":null}]},{"id":"dc813496-a802-4924-b86d-9f824a43e725","directory":"spell-casting-purrfectly-portable-edition","title":"Spell Casting: Purrfectly Portable Edition","compatibility":99,"releases":[{"id":"0100C3300C3F2000","region":null}]},{"id":"dc8a5aee-d03a-4e6e-a8fe-bd0a949b7ee9","directory":"dogworld","title":"Dogworld","compatibility":99,"releases":[{"id":"01001BB014EB6000","region":null}]},{"id":"dc8cb034-2bfa-493e-8a01-f77700aa6fc2","directory":"never-give-up","title":"Never Give Up","compatibility":99,"releases":[{"id":"01005AD00B91A000","region":null}]},{"id":"dca24cf6-1b76-407c-a20b-04197d552e35","directory":"i-saw-black-clouds","title":"I Saw Black Clouds","compatibility":1,"releases":[{"id":"01001860140B0000","region":null}]},{"id":"dcbd38d9-8e11-459d-a4c4-5b36f5a799e5","directory":"passpartout-the-starving-artist","title":"Passpartout: The Starving Artist","compatibility":99,"releases":[{"id":"0100CE600B7B4000","region":null}]},{"id":"dccd9a55-9329-4a58-b6b1-aefb58e6eac8","directory":"lost-phone-stories","title":"Lost Phone Stories","compatibility":99,"releases":[{"id":"010046600B76A000","region":null}]},{"id":"dccdb533-3bc0-41db-ac80-33565a7dee54","directory":"shapeshooter","title":"Shapeshooter","compatibility":99,"releases":[{"id":"01003E20153E2000","region":null}]},{"id":"dcd8f573-1ae3-4f78-b236-360115201392","directory":"blue-fire","title":"Blue Fire","compatibility":3,"releases":[{"id":"010073B010F6E000","region":null}]},{"id":"dce55542-618e-4b4d-9950-d732d1f82f62","directory":"ultrawings","title":"Ultrawings","compatibility":0,"releases":[{"id":"0100DAF00B620000","region":null}]},{"id":"dced43a6-312f-4a27-812d-7eea7133fefd","directory":"pokemon-lets-go-eevee","title":"Pokémon: Let’s Go, Eevee!","compatibility":0,"releases":[{"id":"0100187003A36000","region":null}]},{"id":"dd076fb9-9d68-45ff-b242-1b942c56de78","directory":"rising-hell","title":"Rising Hell","compatibility":0,"releases":[{"id":"010020C012F48000","region":null}]},{"id":"dd18a428-de08-40ef-9f0d-4d056725f338","directory":"king-lucas","title":"King Lucas","compatibility":99,"releases":[{"id":"0100E6B00FFBA000","region":null}]},{"id":"dd1d8e40-77e3-46f9-bc3c-70fe7c6fa5db","directory":"crime-opera-the-butterfly-effect","title":"Crime Opera: The Butterfly Effect","compatibility":99,"releases":[{"id":"01009B00144FC000","region":null}]},{"id":"dd2400d3-9550-450e-8718-bda2e2ae6547","directory":"joe-devers-lone-wolf","title":"Joe Dever's Lone Wolf","compatibility":0,"releases":[{"id":"0100D49008748000","region":null}]},{"id":"dd2fd8e2-7451-40ad-a710-8438a840c285","directory":"collidalot-demo","title":"Collidalot Demo","compatibility":99,"releases":[{"id":"010075100D450000","region":null}]},{"id":"dd32b64b-4557-4d57-9c79-0b07c89a2d05","directory":"toon-shooters-2","title":"Toon Shooters 2","compatibility":99,"releases":[{"id":"0100D31013F24000","region":null}]},{"id":"dd3cd1f0-108c-43ef-86f3-6f21f9857434","directory":"river-city-ransom","title":"River City Ransom","compatibility":1,"releases":[{"id":"0100CE300E48C000","region":null}]},{"id":"dd3d4b87-c573-4c6a-97de-a49aa61e850b","directory":"color-zen-kids","title":"Color Zen Kids","compatibility":99,"releases":[{"id":"0100DDA00C0BC000","region":null}]},{"id":"dd499a3d-348b-4aab-bbb8-c089fa59c33f","directory":"super-meat-boy-forever","title":"Super Meat Boy Forever","compatibility":4,"releases":[{"id":"01009C200D60E000","region":null}]},{"id":"dd4e0167-408b-48dc-8a64-d0b3b8a64ff9","directory":"tick-tock-a-tale-for-two","title":"Tick Tock: A Tale for Two","compatibility":99,"releases":[{"id":"0100E9000C42C000","region":null}]},{"id":"dd4e8642-258d-486e-928c-de2b99ded1f2","directory":"touchbattletanksp","title":"TouchBattleTankSP","compatibility":1,"releases":[{"id":"01000EC007C22000","region":null}]},{"id":"dd5b36f2-d14a-40af-b17d-b8105dfb0afe","directory":"funny-farm-animal-jigsaw-puzzle-game-for-kids-and-toddlers","title":"Funny Farm Animal Jigsaw Puzzle Game for Kids and Toddlers","compatibility":99,"releases":[{"id":"0100CB40153AE000","region":null}]},{"id":"dd5ddf2f-1651-494a-b284-332690a21fb5","directory":"shisen-sho-nikakudori","title":"Shisen-Sho NIKAKUdori","compatibility":99,"releases":[{"id":"0100FEE01316E000","region":null}]},{"id":"dd6f1b4d-f4db-40f7-8db9-e0fd3d68d5bc","directory":"my-little-icecream-booth","title":"My little IceCream Booth","compatibility":99,"releases":[{"id":"0100386013F8A000","region":null}]},{"id":"dd78bf8d-00e6-43cd-988f-75a449f0c0d1","directory":"america-wild-hunting","title":"America Wild Hunting","compatibility":99,"releases":[{"id":"010090B014218000","region":null}]},{"id":"dd7d5009-6afe-4636-8fda-8e5673518ca4","directory":"nurse-love-addiction","title":"Nurse Love Addiction","compatibility":0,"releases":[{"id":"01009F401002E000","region":null}]},{"id":"dd7dc035-4713-4da4-8a14-a2f0d23f4321","directory":"one-person-story","title":"One Person Story","compatibility":99,"releases":[{"id":"010076600FD64000","region":null}]},{"id":"dd80d851-bbba-49b3-9b45-34c462f8913f","directory":"mechanika","title":"MechaNika","compatibility":99,"releases":[{"id":"0100A7900BADA000","region":null}]},{"id":"dd829ae1-fdf8-4714-9f4c-0b98dc9ea5ae","directory":"911-operator-deluxe-edition","title":"911 Operator Deluxe Edition","compatibility":99,"releases":[{"id":"01000360107BC000","region":null}]},{"id":"dd91c81b-9184-4945-8451-bb858830e6b2","directory":"boxing-champs","title":"Boxing Champs","compatibility":99,"releases":[{"id":"0100AAB00E524000","region":null}]},{"id":"dd9e8fde-e849-429c-89af-bc1824871f45","directory":"crystal-ortha","title":"Crystal Ortha","compatibility":99,"releases":[{"id":"01008FA012FC0000","region":null}]},{"id":"ddac21d3-298a-4738-b411-bd3240fe6175","directory":"deltarune-chapter-1","title":"DELTARUNE Chapter 1","compatibility":1,"releases":[{"id":"010023800D64A000","region":null}]},{"id":"ddafe4df-1c97-4e47-acc3-14fbcfc91693","directory":"prinny-r-2-dawn-of-operation-panties-dood","title":"Prinny® 2: Dawn of Operation Panties, Dood!","compatibility":99,"releases":[{"id":"01008FA01187A000","region":null}]},{"id":"ddb09f34-4eb6-421d-8ccb-8e58a1ba545d","directory":"aca-neogeo-pleasure-goal-5-on-5-mini-soccer","title":"ACA NEOGEO PLEASURE GOAL: 5 ON 5 MINI SOCCER","compatibility":4,"releases":[{"id":"0100C2400AFCC000","region":null}]},{"id":"ddb3d37c-abf3-494d-9fad-287debe30a32","directory":"life-of-boris-super-slav","title":"Life of Boris: Super Slav","compatibility":99,"releases":[{"id":"01003AB012F00000","region":null}]},{"id":"ddbd0ebb-710a-4f00-a785-8124048a6fe9","directory":"legend-of-the-skyfish","title":"Legend of the Skyfish","compatibility":0,"releases":[{"id":"0100ECC00EF3C000","region":null}]},{"id":"ddc745a4-95a1-4b2c-b9a8-0d94c5d1a61b","directory":"this-war-of-mine-complete-edition","title":"This War of Mine: Complete Edition","compatibility":5,"releases":[{"id":"0100A8700BC2A000","region":null}]},{"id":"ddd170db-a9ff-422b-af80-d59709d1665e","directory":"skybolt-zack","title":"Skybolt Zack","compatibility":0,"releases":[{"id":"010041C01014E000","region":null}]},{"id":"ddd19536-127e-40fc-b1da-2f89f7598300","directory":"solitaire-spider-minimal","title":"Solitaire Spider Minimal","compatibility":99,"releases":[{"id":"0100A73012A74000","region":null}]},{"id":"ddd7f510-6ad5-4773-9ac3-78d1850eb61f","directory":"hollow-2","title":"Hollow 2","compatibility":99,"releases":[{"id":"01007DE016E9E000","region":null}]},{"id":"ddd90bcb-510a-4d59-92ab-49bb6faeb13a","directory":"9-monkeys-of-shaolin","title":"9 Monkeys of Shaolin","compatibility":99,"releases":[{"id":"010005E00E2BC000","region":null}]},{"id":"dde06d13-615d-4a17-9f07-cb9969deb9b6","directory":"ittle-dew","title":"Ittle Dew","compatibility":0,"releases":[{"id":"01005070088E0000","region":null}]},{"id":"dde93dea-a89d-45f6-9b9a-3d29868dabc0","directory":"a-hat-in-time","title":"A Hat in Time","compatibility":2,"releases":[{"id":"010056E00853A000","region":null}]},{"id":"ddf03c65-2c18-44a8-ae34-ce6dfa6f6d63","directory":"dreamo","title":"DREAMO","compatibility":5,"releases":[{"id":"0100D24013466000","region":null}]},{"id":"ddf2e573-e141-49ed-9b4c-b27ab115424f","directory":"dragon-pinball","title":"Dragon Pinball","compatibility":99,"releases":[{"id":"010026400DE10000","region":null}]},{"id":"ddf306b6-c0da-4734-a882-43f98eb89f7c","directory":"onimusha-warlords","title":"Onimusha: Warlords","compatibility":1,"releases":[{"id":"0100416008A12000","region":null}]},{"id":"ddffb260-eb1f-4f4a-9255-7296744ff114","directory":"where-angels-cry","title":"Where Angels Cry","compatibility":99,"releases":[{"id":"010027D011C9C000","region":null}]},{"id":"de021930-fa99-4395-ae43-7157e32a830b","directory":"vitamin-connection","title":"Vitamin Connection","compatibility":0,"releases":[{"id":"010088900E330000","region":null}]},{"id":"de100759-8d9f-4e46-b6e1-e4ce0ca6b976","directory":"pixel-game-maker-series-shiba-mekuri","title":"Pixel Game Maker Series Shiba Mekuri","compatibility":99,"releases":[{"id":"0100B3901642C000","region":null}]},{"id":"de16b03c-4b64-4179-b6d5-c554656d92ca","directory":"20-ladies","title":"20 Ladies","compatibility":99,"releases":[{"id":"0100DB6015A80000","region":null}]},{"id":"de1a3c4c-32a1-4e89-8204-4646e83e1181","directory":"mary-skelter-finale","title":"Mary Skelter Finale","compatibility":0,"releases":[{"id":"0100530014438000","region":null}]},{"id":"de1e393c-bfa7-4e7e-8160-ac400d1639dc","directory":"arcade-archives-bomb-jack","title":"Arcade Archives BOMB JACK","compatibility":5,"releases":[{"id":"0100192009824000","region":null}]},{"id":"de205856-a8f7-4898-ab48-895f9eda477f","directory":"jin-conception","title":"Jin Conception","compatibility":99,"releases":[{"id":"01005E3014C3E000","region":null}]},{"id":"de266e3c-992e-46d6-97b4-d9fab4601424","directory":"being-stronger-while-playing-silverstar-go-dx","title":"Being Stronger While Playing! SilverStar Go DX","compatibility":3,"releases":[{"id":"0100092011764000","region":null}]},{"id":"de2b19a4-41eb-47a0-8037-3ca8d378f752","directory":"mad-games-tycoon","title":"Mad Games Tycoon","compatibility":0,"releases":[{"id":"010061E00EB1E000","region":null}]},{"id":"de2e1ab8-6a72-4533-a524-f2523ae15869","directory":"disgaea-5-complete","title":"Disgaea 5 Complete","compatibility":2,"releases":[{"id":"01005700031AE000","region":null}]},{"id":"de311e13-a6e9-4ab0-bd6e-d5f1868cf4f3","directory":"pen-and-paper-games-bundle","title":"Pen and Paper Games Bundle","compatibility":99,"releases":[{"id":"01005B9011830000","region":null}]},{"id":"de324337-e934-458c-bc0d-9e311a715f68","directory":"spectacular-sparky","title":"Spectacular Sparky","compatibility":99,"releases":[{"id":"010009F011FB2000","region":null}]},{"id":"de5079c3-d709-4ce5-b09e-e5814ca4cbca","directory":"arcade-archives-formation-z","title":"Arcade Archives FORMATION Z","compatibility":99,"releases":[{"id":"0100045010A28000","region":null}]},{"id":"de595f46-4317-455c-80e0-efb07a7a1265","directory":"satazius-next","title":"Satazius NEXT","compatibility":1,"releases":[{"id":"01009580113A4000","region":null}]},{"id":"de5b5cb9-0303-4881-a1c6-8c0c261ba848","directory":"oddworld-strangers-wrath","title":"Oddworld: Stranger's Wrath","compatibility":3,"releases":[{"id":"01002EA00ABBA000","region":null}]},{"id":"de72bace-25aa-41dd-8c64-333be7834a0f","directory":"hide-dance","title":"Hide & Dance!","compatibility":99,"releases":[{"id":"0100CA7012CD6000","region":null}]},{"id":"de74feeb-5c7e-4c3b-8570-e89a47156cf7","directory":"dragon-hills","title":"Dragon Hills","compatibility":99,"releases":[{"id":"0100A6B016248000","region":null}]},{"id":"de755c27-d0d3-461d-aaf8-9ae51a6958ce","directory":"holy-potatoes-a-weapon-shop","title":"Holy Potatoes! A Weapon Shop?!","compatibility":0,"releases":[{"id":"0100FC5009E10000","region":null}]},{"id":"de77cabc-287d-4ab7-9643-9ef223a99cad","directory":"space-robinson","title":"Space Robinson","compatibility":0,"releases":[{"id":"0100795011D68000","region":null}]},{"id":"de7f1704-5dca-401b-b05c-80301e02a203","directory":"rangerdog","title":"Rangerdog","compatibility":99,"releases":[{"id":"0100341015246000","region":null}]},{"id":"de890c60-066c-44ee-ade0-7013e78784f5","directory":"deuces-wild-video-poker","title":"Deuces Wild - Video Poker","compatibility":99,"releases":[{"id":"0100B3501283E000","region":null}]},{"id":"de8bdad0-e51c-4d62-a830-cff44372ff69","directory":"rugby-challenge-4","title":"Rugby Challenge 4","compatibility":99,"releases":[{"id":"010009B00D33C000","region":null}]},{"id":"deb09593-d69c-459b-a92e-fbb93fba4356","directory":"fracter","title":"FRACTER","compatibility":0,"releases":[{"id":"010018F010CD2000","region":null}]},{"id":"ded05c93-46b5-45a1-b095-ac6158d44e6f","directory":"warborn","title":"WARBORN","compatibility":99,"releases":[{"id":"010054900F51A000","region":null}]},{"id":"defe3a6b-aaea-47b9-83c0-ae3ad59af1c1","directory":"dungeon-munchies","title":"Dungeon Munchies","compatibility":99,"releases":[{"id":"0100A610167C4000","region":null}]},{"id":"df0247ae-1b73-4790-9113-fd810933fda9","directory":"world-splitter","title":"World Splitter","compatibility":99,"releases":[{"id":"010095D014950000","region":null}]},{"id":"df1823c8-f8cc-4def-9305-039174612e1d","directory":"moonlighter","title":"Moonlighter","compatibility":0,"releases":[{"id":"0100F4700B2E0000","region":null}]},{"id":"df196b62-a491-462b-86c9-f4b132468c00","directory":"the-long-gate","title":"The Long Gate","compatibility":99,"releases":[{"id":"0100E3A013DB2000","region":null}]},{"id":"df1cf2b6-28dd-460b-8749-a3edfa8e257c","directory":"american-man","title":"American Man","compatibility":99,"releases":[{"id":"01004280160C0000","region":null}]},{"id":"df23606e-f4f4-4336-82b3-749f65064a33","directory":"persephone","title":"Persephone","compatibility":99,"releases":[{"id":"01005EB013FBA000","region":null}]},{"id":"df4043f9-3ce3-44c0-8992-9a1b1a8a1aea","directory":"ultra-foodmess","title":"Ultra Foodmess","compatibility":99,"releases":[{"id":"0100C4801223C000","region":null}]},{"id":"df489554-e3bb-4f05-8713-27ae81ddc9db","directory":"yuppie-psycho-executive-edition","title":"Yuppie Psycho: Executive Edition","compatibility":99,"releases":[{"id":"0100307011C44000","region":null}]},{"id":"df7efe92-560d-48f1-9e66-e26e9d3ccd10","directory":"warparty","title":"Warparty","compatibility":99,"releases":[{"id":"010035A00D4E6000","region":null}]},{"id":"df88b0fe-e669-4def-ae37-5f677fa15fd6","directory":"super-monkey-ball-banana-mania","title":"Super Monkey Ball Banana Mania","compatibility":1,"releases":[{"id":"010001701248C000","region":null}]},{"id":"df964e81-c068-41e5-99a1-8b28922f74a3","directory":"muse-dash","title":"Muse Dash","compatibility":0,"releases":[{"id":"01008E200C5C2000","region":null}]},{"id":"df9ae8a6-b9e9-4d8d-a1ac-8243976cfe9e","directory":"arcade-archives-black-heart","title":"Arcade Archives BLACK HEART","compatibility":99,"releases":[{"id":"010015E015676000","region":null}]},{"id":"df9f947e-c4af-4ae4-9f0a-359852e5c1b9","directory":"closer","title":"CLOSER","compatibility":99,"releases":[{"id":"0100358015762000","region":null}]},{"id":"dfa6abb4-4f0c-43f7-bf22-18af62be8963","directory":"melbits-world","title":"Melbits World","compatibility":99,"releases":[{"id":"01000FA010340000","region":null}]},{"id":"dfadaed0-7ec2-49e0-b730-b19aa64b9b2c","directory":"amnesia-collection","title":"Amnesia: Collection","compatibility":3,"releases":[{"id":"01003CC00D0BE000","region":null}]},{"id":"dfb92790-5b45-4627-bb2b-ec7ef623f09d","directory":"ace-strike","title":"Ace Strike","compatibility":99,"releases":[{"id":"010052E0146C0000","region":null}]},{"id":"dfc51c13-9d75-4a53-a05d-177d97f65704","directory":"amazing-princess-sarah","title":"Amazing Princess Sarah","compatibility":0,"releases":[{"id":"01006720150DA000","region":null}]},{"id":"dfd212b3-88eb-46b0-bf5f-d3a9ac15404a","directory":"vasara-collection","title":"VASARA Collection","compatibility":99,"releases":[{"id":"0100FE200AF48000","region":null}]},{"id":"dfdea820-6d2b-4a9c-96be-fe1a7af22fd5","directory":"summer-paws","title":"Summer Paws","compatibility":99,"releases":[{"id":"0100BD401493A000","region":null}]},{"id":"dffb9d5a-f9ce-4acf-a827-c2a40ef53d66","directory":"arcade-archives-ninja-kid","title":"Arcade Archives Ninja-Kid","compatibility":99,"releases":[{"id":"0100369001DDC000","region":null}]},{"id":"dffe1ba0-3ebe-4ebd-92c0-2d94516c0daf","directory":"colorfall","title":"Colorfall","compatibility":0,"releases":[{"id":"0100C8A014BB0000","region":null}]},{"id":"e003cc87-4bb7-46eb-bdd8-ab323a3870cd","directory":"legend-of-the-tetrarchs","title":"Legend of the Tetrarchs","compatibility":99,"releases":[{"id":"01007E900DFB6000","region":null}]},{"id":"e00bc067-188a-4d51-bbe9-0e2c0d6f8a7e","directory":"car-driving-school-simulator","title":"Car Driving School Simulator","compatibility":99,"releases":[{"id":"01001B7012A3E000","region":null}]},{"id":"e0140c5f-1e37-45af-b429-96932abf8617","directory":"retro-classix-2-in-1-pack-heavy-barrel-super-burger-time","title":"Retro Classix 2-in-1 Pack: Heavy Barrel & Super Burger Time","compatibility":99,"releases":[{"id":"0100254012184000","region":null}]},{"id":"e015a033-0318-40eb-b975-2c4285effe61","directory":"arcade-archives-p-o-w-prisoners-of-war","title":"Arcade Archives P.O.W. -PRISONERS OF WAR-","compatibility":99,"releases":[{"id":"0100547010920000","region":null}]},{"id":"e01c27c7-ce1a-4d50-8a0c-f979353470eb","directory":"this-is-the-police","title":"This Is the Police","compatibility":1,"releases":[{"id":"0100066004D68000","region":null}]},{"id":"e01fbd74-b0b3-46f0-b25b-4862b5afe16a","directory":"arena-of-valor","title":"Arena of Valor","compatibility":99,"releases":[{"id":"01008D8006A6A000","region":null}]},{"id":"e02e0d3f-cfbb-48d6-8de3-1fa23f007d82","directory":"mars-chaos-menace","title":"Mars: Chaos Menace","compatibility":99,"releases":[{"id":"0100B2400C67E000","region":null}]},{"id":"e02e9014-bc0f-446e-ab5f-0bec6a8738c3","directory":"serious-sam-collection","title":"Serious Sam Collection","compatibility":5,"releases":[{"id":"010007D00D43A000","region":null}]},{"id":"e02ff5ee-cd00-4087-a22d-0af03bb3df76","directory":"overwatch-legendary-edition","title":"Overwatch: Legendary Edition","compatibility":5,"releases":[{"id":"0100F8600E21E000","region":null}]},{"id":"e037e780-2f4b-43be-953e-ac35afda12e2","directory":"party-hard","title":"Party Hard","compatibility":0,"releases":[{"id":"010076E009C5E000","region":null}]},{"id":"e040ce79-11b5-43bb-a328-371d473ebcec","directory":"shelter-generations","title":"Shelter Generations","compatibility":99,"releases":[{"id":"01009EB004CB0000","region":null}]},{"id":"e04875e4-032b-4434-aef2-c29535444f09","directory":"capcom-beat-em-up-bundle","title":"Capcom Beat 'Em Up Bundle","compatibility":1,"releases":[{"id":"010094E00B52E000","region":null}]},{"id":"e05bab6f-e4ea-460a-bd72-306f144457ed","directory":"together","title":"Together","compatibility":99,"releases":[{"id":"010041C013C94000","region":null}]},{"id":"e06514bd-d7c3-4ec6-ae55-2fe23582dabe","directory":"project-highrise-architects-edition","title":"Project Highrise: Architect's Edition","compatibility":99,"releases":[{"id":"0100BBD00976C000","region":null}]},{"id":"e071ea75-8582-45f9-b997-556377f0abc7","directory":"arcade-archives-time-pilot-84","title":"Arcade Archives TIME PILOT '84","compatibility":99,"releases":[{"id":"01003200144CA000","region":null}]},{"id":"e0727e89-2cbd-4aae-995a-4bdb34b49133","directory":"body-of-evidence","title":"Body of Evidence","compatibility":99,"releases":[{"id":"0100721013510000","region":null}]},{"id":"e0813105-891a-44de-bdba-10b34f06298c","directory":"job-the-leprechaun","title":"Job the Leprechaun","compatibility":99,"releases":[{"id":"01007CE00C960000","region":null}]},{"id":"e08fe28d-5341-4ffd-ad74-a98cdec2abb3","directory":"picklock","title":"Picklock","compatibility":99,"releases":[{"id":"010059C012966000","region":null}]},{"id":"e0924a6d-caeb-46dd-8c20-72607329c192","directory":"boulder-dash-30th-anniversary","title":"Boulder Dash 30th Anniversary","compatibility":0,"releases":[{"id":"0100DB20107BE000","region":null}]},{"id":"e09631c5-6d89-4b32-85eb-9ee359d311a2","directory":"cabin-fever","title":"Cabin Fever","compatibility":99,"releases":[{"id":"0100680016472000","region":null}]},{"id":"e0bead2c-040a-48b4-8f24-d905e6d7699e","directory":"riptide-gp-renegade","title":"Riptide GP: Renegade","compatibility":0,"releases":[{"id":"01002A6006AA4000","region":null}]},{"id":"e0bf4059-fd46-4e17-8aa6-19eb8762624b","directory":"what-the-golf","title":"WHAT THE GOLF?","compatibility":0,"releases":[{"id":"01002C000E35E000","region":null}]},{"id":"e0c6361d-5fea-4cc3-9ef6-afca52b461f4","directory":"caterpillar-royale","title":"Caterpillar Royale","compatibility":99,"releases":[{"id":"01002B300D8F0000","region":null}]},{"id":"e0cdcab2-b30e-4d05-ab12-8727ea222343","directory":"spyro-reignited-trilogy","title":"Spyro Reignited Trilogy","compatibility":2,"releases":[{"id":"010077B00E046000","region":null}]},{"id":"e0d13172-7eb6-4b10-8a14-b6fc7de7fd49","directory":"arcade-archives-city-connection","title":"Arcade Archives City CONNECTION","compatibility":99,"releases":[{"id":"010007A00980C000","region":null}]},{"id":"e0db6142-6f92-47e3-ab73-78350d2510bb","directory":"teamfight-manager","title":"Teamfight Manager","compatibility":99,"releases":[{"id":"0100FE50169BC000","region":null}]},{"id":"e0dd05c3-0b06-4463-b12f-0b76365455a3","directory":"freecell-solitaire","title":"Freecell Solitaire","compatibility":99,"releases":[{"id":"010060600D894000","region":null}]},{"id":"e0e4acd8-89df-44c4-b832-321ddf724d17","directory":"tennis-world-tour","title":"Tennis World Tour","compatibility":99,"releases":[{"id":"0100092006814000","region":null}]},{"id":"e0ebd565-f648-4ee7-896f-cd5ed5729b11","directory":"nidhogg-2","title":"Nidhogg 2","compatibility":5,"releases":[{"id":"0100C8700B0B6000","region":null}]},{"id":"e0f4bcb6-d715-42f9-85cf-e2ae5764f86b","directory":"arcade-archives-punch-out","title":"Arcade Archives PUNCH-OUT!!","compatibility":1,"releases":[{"id":"01001530097F8000","region":null}]},{"id":"e0f636b9-bd10-4d18-a03a-a5705d3204c1","directory":"knock-em-down-bowling","title":"Knock 'Em Down! Bowling","compatibility":99,"releases":[{"id":"010085000BA5C000","region":null}]},{"id":"e0f6915e-aeae-41f4-914f-d0e92e570ede","directory":"moto-racer-4","title":"Moto Racer 4","compatibility":4,"releases":[{"id":"01002ED00B01C000","region":null}]},{"id":"e0fab6c7-0ff1-46ac-86f6-a3cd727e4432","directory":"super-hyperactive-ninja","title":"Super Hyperactive Ninja","compatibility":99,"releases":[{"id":"010032B00C31E000","region":null}]},{"id":"e0fcc0fa-3e01-4b13-bcfe-0180b4130af1","directory":"dark-grim-mariupolis","title":"Dark Grim Mariupolis","compatibility":99,"releases":[{"id":"010090F013A32000","region":null}]},{"id":"e0fd8921-074e-4ceb-935d-c0bfe5f8f5ba","directory":"kukkorodays","title":"KukkoroDays","compatibility":5,"releases":[{"id":"010022801242C000","region":null}]},{"id":"e11c03f5-dc32-41c9-ac11-e6ec5a71d05f","directory":"cave-bad","title":"Cave Bad","compatibility":99,"releases":[{"id":"0100CC7013F1A000","region":null}]},{"id":"e12f5bc8-2561-45c9-8a50-3348bda1ef78","directory":"pc-building-simulator","title":"PC Building Simulator","compatibility":1,"releases":[{"id":"010072800CBE8000","region":null}]},{"id":"e133d6fb-b8d2-4cb0-badb-b0274f685a10","directory":"horror-tales-the-wine","title":"HORROR TALES: The Wine","compatibility":99,"releases":[{"id":"01009C9014E04000","region":null}]},{"id":"e1383227-95be-44ab-b3a1-2731113ca50f","directory":"touhou-luna-nights","title":"Touhou Luna Nights","compatibility":5,"releases":[{"id":"0100D850131B0000","region":null}]},{"id":"e14c965b-9f0c-4811-8d1c-a02618a7de35","directory":"akane","title":"Akane","compatibility":4,"releases":[{"id":"01007F100DE52000","region":null}]},{"id":"e15337ec-e9c5-449b-bb3f-e1365e61780c","directory":"the-eyes-of-ara","title":"The Eyes of Ara","compatibility":99,"releases":[{"id":"0100B5900DFB2000","region":null}]},{"id":"e15be281-6cb8-4dd0-ac21-601a4d0a488f","directory":"urban-flow","title":"Urban Flow","compatibility":1,"releases":[{"id":"0100B110109F8000","region":null}]},{"id":"e15d7c86-e09b-4765-9750-14d085f70aa0","directory":"ski-sniper","title":"Ski Sniper","compatibility":99,"releases":[{"id":"0100945011246000","region":null}]},{"id":"e1641c1d-16ed-47b3-be64-1e70a309daa8","directory":"crossbow-crusade","title":"Crossbow Crusade","compatibility":99,"releases":[{"id":"0100F890150CE000","region":null}]},{"id":"e16ae725-fe26-4612-8fa7-2125a3d206e8","directory":"blasphemous","title":"Blasphemous","compatibility":1,"releases":[{"id":"0100698009C6E000","region":null}]},{"id":"e174cdce-92c9-4474-9f33-f13ef152310f","directory":"bishoujo-battle-cyber-panic","title":"Bishoujo Battle Cyber Panic!","compatibility":99,"releases":[{"id":"0100F16013F80000","region":null}]},{"id":"e17670d3-7582-438d-b5bc-ebf2db5ed166","directory":"bridge-strike","title":"Bridge Strike","compatibility":1,"releases":[{"id":"0100A6C011B10000","region":null}]},{"id":"e183bb5c-d08d-464a-999d-2cb79869550e","directory":"arcade-archives-raimais","title":"Arcade Archives RAIMAIS","compatibility":99,"releases":[{"id":"010091F015E12000","region":null}]},{"id":"e1baa658-7cf3-4210-9a5b-6670535ff62c","directory":"megabyte-punch","title":"Megabyte Punch","compatibility":99,"releases":[{"id":"0100FC700F942000","region":null}]},{"id":"e1c863e0-a763-4e25-ab30-1f99f8c6ce77","directory":"hitori-logic","title":"Hitori Logic","compatibility":99,"releases":[{"id":"01007BF012AD2000","region":null}]},{"id":"e1cd2372-11ba-4f4b-9073-54313708ca7c","directory":"epic-word-search-collection-2","title":"Epic Word Search Collection 2","compatibility":99,"releases":[{"id":"01001FF01247E000","region":null}]},{"id":"e1ce54c8-9770-47f6-853a-83862c72e690","directory":"archery-blast","title":"Archery Blast","compatibility":99,"releases":[{"id":"01003B8014D6C000","region":null}]},{"id":"e1d669a4-1353-4e9f-830e-aefe48029f2f","directory":"murder-diaries-2","title":"Murder Diaries 2","compatibility":99,"releases":[{"id":"010028F01590A000","region":null}]},{"id":"e1d73c49-785d-46e3-8a69-f1cedc594e8c","directory":"super-toy-cars","title":"Super Toy Cars","compatibility":99,"releases":[{"id":"0100384009344000","region":null}]},{"id":"e1f3919a-aa5c-4ef5-8724-839c6a056278","directory":"dobutsu-shogi-world","title":"DOBUTSU SHOGI WORLD","compatibility":99,"releases":[{"id":"01009BD00E33E000","region":null}]},{"id":"e1f43768-95a8-4bb7-9dfc-9a31ed9b67fd","directory":"the-dark-eye-chains-of-satinav","title":"The Dark Eye: Chains of Satinav","compatibility":2,"releases":[{"id":"010016900EE3A000","region":null}]},{"id":"e2111a4b-7272-4ff4-a5f2-5c8ae5f880c9","directory":"arcade-archives-vs-super-mario-bros","title":"Arcade Archives VS. SUPER MARIO BROS.","compatibility":1,"releases":[{"id":"010021D00812A000","region":null}]},{"id":"e2342361-637d-4c2f-9589-1d83e9ffbc19","directory":"sports-wild-pinball","title":"Sports & Wild Pinball","compatibility":99,"releases":[{"id":"01005E6016836000","region":null}]},{"id":"e2352e05-5c05-44c3-bb3c-11968d28e685","directory":"lost-wing","title":"Lost Wing","compatibility":1,"releases":[{"id":"010064600F1D6000","region":null}]},{"id":"e23ded3a-62f9-4b90-bba2-3bc4a505b4eb","directory":"inferno-2","title":"Inferno 2","compatibility":99,"releases":[{"id":"010063200AB12000","region":null}]},{"id":"e256d17d-7228-4186-a189-c0c8512dbaf7","directory":"mega-man-11-demo-version","title":"Mega Man 11 Demo Version","compatibility":0,"releases":[{"id":"010076800B06E000","region":null}]},{"id":"e25b9c7f-6f14-4894-9e48-516eb22f7662","directory":"cricket-19","title":"Cricket 19","compatibility":99,"releases":[{"id":"010022D00D4F0000","region":null}]},{"id":"e26579ca-3c67-4f02-829c-34e48edf07f6","directory":"quiplash","title":"Quiplash","compatibility":99,"releases":[{"id":"010015A0113E0000","region":null}]},{"id":"e2733532-2ee1-4f60-ba46-e82653db5f71","directory":"ronister-adventure","title":"Ronister Adventure","compatibility":99,"releases":[{"id":"0100E230159DE000","region":null}]},{"id":"e2796f6e-5f74-49be-b17d-903eddb92c5e","directory":"retrace-memories-of-death","title":"Retrace: Memories of Death","compatibility":99,"releases":[{"id":"0100C4C013688000","region":null}]},{"id":"e28321fd-4f07-439f-8270-02216bf8e89f","directory":"starlight-alliance","title":"Starlight Alliance","compatibility":99,"releases":[{"id":"0100478014C30000","region":null}]},{"id":"e2832ba5-9bfc-4691-8256-cc17dfa6b823","directory":"gelly-break-demo","title":"Gelly Break Demo","compatibility":99,"releases":[{"id":"010057D00CF10000","region":null}]},{"id":"e2894d72-b706-4340-af58-a3cde46a94ad","directory":"bohemian-killing","title":"Bohemian Killing","compatibility":99,"releases":[{"id":"0100AD1010CCE000","region":null}]},{"id":"e292c8f9-6d77-46f3-abea-2ca571d9d70d","directory":"rune-lord","title":"Rune Lord","compatibility":1,"releases":[{"id":"01008CD00FB66000","region":null}]},{"id":"e297276a-c229-4aaa-b490-39a1f8e26dd6","directory":"meow-motors","title":"Meow Motors","compatibility":2,"releases":[{"id":"0100EBE00D5B0000","region":null}]},{"id":"e29ae27d-6a5d-4f4d-9e2d-07550e46c62f","directory":"pictoquest","title":"PictoQuest","compatibility":0,"releases":[{"id":"010043B00E1CE000","region":null}]},{"id":"e2a7e278-1dc6-46e1-991b-074f7f747981","directory":"r-type-dimensions-ex","title":"R-Type Dimensions EX","compatibility":0,"releases":[{"id":"0100E5400BE64000","region":null}]},{"id":"e2c83db9-5ed7-4263-87eb-c27fdd9a1f2b","directory":"while-true-learn","title":"while True: learn()","compatibility":99,"releases":[{"id":"010092601020A000","region":null}]},{"id":"e2ca6dea-d4a8-46cb-9327-807b1fdb7de3","directory":"space-avenger-empire-of-nexx","title":"Space Avenger: Empire of Nexx","compatibility":99,"releases":[{"id":"01002C30122F4000","region":null}]},{"id":"e2caf2c5-f19c-484b-b16f-dcf9a0dab12c","directory":"alwas-legacy","title":"Alwa's Legacy","compatibility":0,"releases":[{"id":"01001B7012214000","region":null}]},{"id":"e2ceee7e-7aae-4a75-940e-489ec4828aa8","directory":"thea-the-awakening","title":"Thea: The Awakening","compatibility":99,"releases":[{"id":"010075900CD1C000","region":null}]},{"id":"e2dcabea-b9e1-4120-b05d-5896dd742094","directory":"the-complex","title":"The Complex","compatibility":3,"releases":[{"id":"01004170113D4000","region":null}]},{"id":"e2de5793-895e-4182-81bd-f3aa9a361344","directory":"battle-worlds-kronos","title":"Battle Worlds: Kronos","compatibility":99,"releases":[{"id":"0100DEB00D5A8000","region":null}]},{"id":"e2e49c7a-287c-4594-b102-2b2bf6a3dc70","directory":"neo-atlas-1469","title":"Neo ATLAS 1469","compatibility":99,"releases":[{"id":"0100B78006CCA000","region":null}]},{"id":"e2e79d25-b448-4d4d-8c4b-77332f9cc30f","directory":"atelier-totori-~the-adventurer-of-arland~-dx","title":"Atelier Totori ~The Adventurer of Arland~ DX","compatibility":2,"releases":[{"id":"01009BC00C6F6000","region":null}]},{"id":"e2f911a8-d5f0-426a-8517-17e852df038b","directory":"mind-maze","title":"Mind Maze","compatibility":99,"releases":[{"id":"010023601360A000","region":null}]},{"id":"e2ff94ba-5f56-43a9-bd5b-e57d3d88de96","directory":"dragon-ball-xenoverse-2-for-nintendo-switch","title":"DRAGON BALL Xenoverse 2 for Nintendo Switch","compatibility":4,"releases":[{"id":"010078D000F88000","region":null}]},{"id":"e300e0d1-8c9b-42b4-9d7b-3a4a28725a5b","directory":"must-dash-amigos","title":"Must Dash Amigos","compatibility":99,"releases":[{"id":"0100F6000EAA8000","region":null}]},{"id":"e30a2879-ee4a-43ab-b973-05a13107a2ba","directory":"galaxy-squad","title":"Galaxy Squad","compatibility":99,"releases":[{"id":"0100270015190000","region":null}]},{"id":"e3210b8f-294f-4eca-8fff-7ff0bda2e566","directory":"noir-chronicles-city-of-crime","title":"Noir Chronicles: City of Crime","compatibility":99,"releases":[{"id":"0100DFF00C5E6000","region":null}]},{"id":"e323c5ef-3bb1-4b22-b62b-7660b4e15435","directory":"wand-wars","title":"Wand Wars","compatibility":99,"releases":[{"id":"010059E00BB08000","region":null}]},{"id":"e328bcb9-1ea0-4a74-b90b-b363d073496f","directory":"dragon-lapis","title":"Dragon Lapis","compatibility":99,"releases":[{"id":"010076F012CD8000","region":null}]},{"id":"e32f712a-ea8a-44de-811a-4ae53a810627","directory":"parking-madness","title":"Parking Madness","compatibility":99,"releases":[{"id":"010059801292A000","region":null}]},{"id":"e32f9c07-cb4d-49bb-b390-b4a0243834dd","directory":"ludo-xxl","title":"Ludo XXL","compatibility":99,"releases":[{"id":"01008B5015C8E000","region":null}]},{"id":"e332eb81-40a6-4d04-a699-9cbbec861a34","directory":"yesterday-origins","title":"Yesterday Origins","compatibility":3,"releases":[{"id":"01004F4003FDC000","region":null}]},{"id":"e33c1a42-6c1d-4144-b6fc-ab35508f7818","directory":"waku-waku-sweets","title":"WAKU WAKU SWEETS","compatibility":99,"releases":[{"id":"010058100C80A000","region":null}]},{"id":"e34fcbf8-3f1b-48e5-841f-983bffb1a3de","directory":"superhot","title":"SUPERHOT","compatibility":0,"releases":[{"id":"01001A500E8B4000","region":null}]},{"id":"e374e86e-2872-4768-9967-bb3ed832e756","directory":"grave-keeper","title":"Grave Keeper","compatibility":99,"releases":[{"id":"01000A600EA88000","region":null}]},{"id":"e38c78b8-a8bc-49d9-b99d-62e85e4ca189","directory":"domiverse","title":"Domiverse","compatibility":99,"releases":[{"id":"010033200D232000","region":null}]},{"id":"e38cb2b0-fcfb-4a85-90ad-9837a1f2a194","directory":"oxyjet","title":"Oxyjet","compatibility":99,"releases":[{"id":"010041700A04A000","region":null}]},{"id":"e39e5596-2cfa-4b28-afc8-87e2e459f9dd","directory":"carrion","title":"CARRION","compatibility":1,"releases":[{"id":"0100B1600E9AE000","region":null}]},{"id":"e3af4568-a47f-4768-bf88-e9b3f53a9bae","directory":"lets-cook-together","title":"Let's Cook Together","compatibility":99,"releases":[{"id":"0100448011BC4000","region":null}]},{"id":"e3d09b4f-57cc-4078-8190-51c2b9144764","directory":"football-manager-touch-2018","title":"Football Manager Touch 2018","compatibility":99,"releases":[{"id":"010097F0099B4000","region":null}]},{"id":"e3d2a098-40b4-4fea-a83e-55a58f4fe6f9","directory":"hellbreachers","title":"Hellbreachers","compatibility":99,"releases":[{"id":"01002BF013F0C000","region":null}]},{"id":"e3dfc78c-2fd4-4f0f-a8ef-bfa3919ff489","directory":"wicce","title":"Wicce","compatibility":99,"releases":[{"id":"0100A64014D78000","region":null}]},{"id":"e3e44ca5-5a37-460a-b552-0f974dfd2215","directory":"instant-farmer","title":"Instant Farmer","compatibility":99,"releases":[{"id":"0100D5A01514C000","region":null}]},{"id":"e3e9404f-f553-46a2-81ea-89f1418930d8","directory":"the-walking-dead-season-two","title":"The Walking Dead: Season Two","compatibility":2,"releases":[{"id":"010099100B6AC000","region":null}]},{"id":"e3f1f869-d936-4d70-975b-e11000565d55","directory":"contraptions","title":"Contraptions","compatibility":99,"releases":[{"id":"010004900D976000","region":null}]},{"id":"e40b3985-fdf7-4629-8503-1b0e1c242e7a","directory":"worldend-syndrome","title":"Worldend Syndrome","compatibility":0,"releases":[{"id":"010048900CF64000","region":null}]},{"id":"e424514d-f246-4471-b73a-f073d24bdf61","directory":"worms-rumble","title":"Worms Rumble","compatibility":4,"releases":[{"id":"010016A010396000","region":null}]},{"id":"e42fc0b4-37db-4143-b97e-a29a53eb3e39","directory":"bombslinger","title":"Bombslinger","compatibility":4,"releases":[{"id":"010087300445A000","region":null}]},{"id":"e431f6a7-a59e-475a-a14e-007fda5f6185","directory":"super-impossible-road","title":"Super Impossible Road","compatibility":0,"releases":[{"id":"0100E82015112000","region":null}]},{"id":"e43b9746-93f0-4abf-95b9-7f6319ca4b93","directory":"escape-from-the-universe","title":"Escape from the Universe","compatibility":99,"releases":[{"id":"01005A100ED8A000","region":null}]},{"id":"e43e3cbe-93c2-41f4-a7fb-d1d659a40248","directory":"eggggg-the-platform-puker","title":"Eggggg - The platform puker","compatibility":1,"releases":[{"id":"0100121007308000","region":null}]},{"id":"e45d6006-7a19-4263-99b4-be8e1179e84a","directory":"bouncy-bullets","title":"Bouncy Bullets","compatibility":1,"releases":[{"id":"010016900DF72000","region":null}]},{"id":"e460231d-a425-4137-bda5-12256aae51a9","directory":"pokemon-shining-pearl","title":"Pokémon™ Shining Pearl","compatibility":2,"releases":[{"id":"010018E011D92000","region":null}]},{"id":"e460b232-2717-4506-8df7-8f77995d4652","directory":"zotrix-starglider","title":"Zotrix Starglider","compatibility":99,"releases":[{"id":"0100B22013610000","region":null}]},{"id":"e46febd0-de1a-48a1-adce-bbc2af89b0b9","directory":"spellspire","title":"Spellspire","compatibility":99,"releases":[{"id":"0100E74007EAC000","region":null}]},{"id":"e4719fa3-2335-40f6-b4dd-144da938eefb","directory":"tri6-infinite","title":"Tri6: Infinite","compatibility":1,"releases":[{"id":"0100483011F16000","region":null}]},{"id":"e47b2628-7731-4537-90c6-7af00837fb64","directory":"moving-out","title":"Moving Out","compatibility":1,"releases":[{"id":"0100C4C00E73E000","region":null}]},{"id":"e47d1b94-98ae-4e40-9057-a546dff124b6","directory":"danganronpa-2-goodbye-despair-anniversary-edition","title":"Danganronpa 2: Goodbye Despair Anniversary Edition","compatibility":99,"releases":[{"id":"010083A014174000","region":null}]},{"id":"e487e12a-7c49-4691-bf44-7e8769dadd5b","directory":"air-racers","title":"Air Racers","compatibility":99,"releases":[{"id":"0100E16016A5C000","region":null}]},{"id":"e4957cb4-266b-425e-ad8a-e25be676b2de","directory":"pool-slide-story","title":"Pool Slide Story","compatibility":99,"releases":[{"id":"0100C9200F09A000","region":null}]},{"id":"e4961e44-5c13-472c-9a98-1c5ddb788876","directory":"damn-dolls","title":"Damn Dolls","compatibility":99,"releases":[{"id":"0100A1B01543C000","region":null}]},{"id":"e4a54e60-6858-4319-a3f8-39229da380e0","directory":"super-hero-fight-club-reloaded","title":"Super Hero Fight Club: Reloaded","compatibility":99,"releases":[{"id":"010009000CBB6000","region":null}]},{"id":"e4b86413-c163-4ebc-9e39-66362065ab72","directory":"my-little-riding-champion","title":"My Little Riding Champion","compatibility":99,"releases":[{"id":"01008C600395A000","region":null}]},{"id":"e4c873a7-73ea-4df7-918e-85ea2d7c18e6","directory":"putty-pals","title":"Putty Pals","compatibility":3,"releases":[{"id":"010049E003748000","region":null}]},{"id":"e4d5cdb6-cca4-435e-88ae-11ffb543dfcf","directory":"bingo-for-nintendo-switch","title":"BINGO for Nintendo Switch","compatibility":1,"releases":[{"id":"010087D008D64000","region":null}]},{"id":"e4e41cea-7acf-49da-b66d-e969364e109f","directory":"aca-neogeo-stakes-winner-2","title":"ACA NEOGEO STAKES WINNER 2","compatibility":99,"releases":[{"id":"010047D00AFD4000","region":null}]},{"id":"e503f06c-cea4-478d-87d4-6de0344d18fc","directory":"dark-witch-music-episode-rudymical","title":"Dark Witch Music Episode: Rudymical","compatibility":0,"releases":[{"id":"01001FA0034E2000","region":null}]},{"id":"e504e4f3-0ad9-4528-a10e-3671c78c33d0","directory":"joes-diner","title":"Joe's Diner","compatibility":99,"releases":[{"id":"0100080013E0E000","region":null}]},{"id":"e517306b-517a-4fa9-90e7-8c623fa503f0","directory":"solstice-chronicles-mia","title":"Solstice Chronicles: MIA","compatibility":2,"releases":[{"id":"0100DB500B17C000","region":null}]},{"id":"e5184691-ced0-4e12-83e7-d0f1c0175dd0","directory":"taxi-chaos","title":"Taxi Chaos","compatibility":3,"releases":[{"id":"0100B76011DAA000","region":null}]},{"id":"e5404da7-4c7d-4ff7-a02e-44f27edfe3ff","directory":"anti-hero-bundle","title":"Anti Hero Bundle","compatibility":99,"releases":[{"id":"0100596011E20000","region":null}]},{"id":"e54141b7-4866-4eba-b42f-2f84ea5cada3","directory":"business-tour-deluxe","title":"Business Tour Deluxe","compatibility":99,"releases":[{"id":"0100E61013758000","region":null}]},{"id":"e54e9e26-fa47-4fa4-91fa-e891838c8245","directory":"knight-swap","title":"Knight Swap","compatibility":99,"releases":[{"id":"010060C010B4A000","region":null}]},{"id":"e557c075-3288-49c3-879e-5dceb1de8b0d","directory":"one-piece-pirate-warriors-3-deluxe-edition","title":"ONE PIECE Pirate Warriors 3 Deluxe Edition","compatibility":3,"releases":[{"id":"0100774009CF6000","region":null}]},{"id":"e55c073d-df68-48d9-9d4e-02a83671eb47","directory":"sword-of-the-guardian","title":"Sword of the Guardian","compatibility":99,"releases":[{"id":"01000D70049BE000","region":null}]},{"id":"e55ec1de-1713-418d-afeb-094bb0ffb5a0","directory":"the-long-return","title":"The Long Return","compatibility":99,"releases":[{"id":"01003C3013300000","region":null}]},{"id":"e569f596-d8cd-40d5-926a-e34285f3028f","directory":"othello","title":"Othello","compatibility":0,"releases":[{"id":"0100902001014000","region":null}]},{"id":"e56c2a8c-3b9a-4324-8542-d8e943b21d28","directory":"nickelodeon-all-star-brawl","title":"Nickelodeon All-Star Brawl","compatibility":1,"releases":[{"id":"0100DCF013740000","region":null}]},{"id":"e581c940-ba5e-47d4-936d-943eabbef39e","directory":"story-of-a-gladiator","title":"Story of a Gladiator","compatibility":99,"releases":[{"id":"0100D5D00DAF2000","region":null}]},{"id":"e58a5a38-b154-41c6-affa-24f194cc0ef3","directory":"the-warlock-of-firetop-mountain-goblin-scourge-edition","title":"The Warlock of Firetop Mountain: Goblin Scourge Edition!","compatibility":99,"releases":[{"id":"0100219008678000","region":null}]},{"id":"e58dc885-1350-4a13-875b-7b3898045a8a","directory":"machinarium","title":"Machinarium","compatibility":4,"releases":[{"id":"01002D70049CA000","region":null}]},{"id":"e592281b-8f05-4daa-99c3-1ca0fb72cb87","directory":"door-kickers-action-squad","title":"Door Kickers: Action Squad","compatibility":1,"releases":[{"id":"01005ED00CD70000","region":null}]},{"id":"e59f6b0d-7cf9-49d1-9882-59bc3f4f89e9","directory":"chess-royal","title":"Chess Royal","compatibility":99,"releases":[{"id":"0100DAD0137B0000","region":null}]},{"id":"e5ac959b-81ec-43e6-b627-cd5656b7cc9d","directory":"godstrike","title":"Godstrike","compatibility":99,"releases":[{"id":"0100FA50138A6000","region":null}]},{"id":"e5affd72-857d-492d-9aec-f04bdb1b43e9","directory":"mr-trials","title":"Mr Trials","compatibility":99,"releases":[{"id":"010054501462E000","region":null}]},{"id":"e5b46fed-bd71-4142-8a27-59d7edbbc1a8","directory":"wallachia-reign-of-dracula","title":"Wallachia: Reign of Dracula","compatibility":4,"releases":[{"id":"010017E012888000","region":null}]},{"id":"e5c9a476-ab94-4cf3-a849-cce0ec9503bc","directory":"supermarket-shriek","title":"Supermarket Shriek","compatibility":99,"releases":[{"id":"0100C01012654000","region":null}]},{"id":"e5cbc2c8-3e6f-477d-b460-315529c4dccf","directory":"skeletal-avenger","title":"Skeletal Avenger","compatibility":99,"releases":[{"id":"0100BA5011E16000","region":null}]},{"id":"e5d2dd3b-037f-4104-8cc6-64c4a9f29050","directory":"2weistein-the-curse-of-the-red-dragon-2","title":"2weistein – The Curse of the Red Dragon 2","compatibility":99,"releases":[{"id":"01005E7014C4E000","region":null}]},{"id":"e5da8396-8d7b-48a9-9eb5-1d56dab00454","directory":"starman","title":"Starman","compatibility":99,"releases":[{"id":"010073000C43C000","region":null}]},{"id":"e5dadde2-8350-40b9-ae84-ff67ffc64ef0","directory":"kids-farm-coloring","title":"KIDS: FARM COLORING","compatibility":99,"releases":[{"id":"010000001260E000","region":null}]},{"id":"e5e1684a-3b58-42d4-89f6-45f2477bc13d","directory":"airport-simulator-day-night","title":"Airport Simulator: Day & Night","compatibility":99,"releases":[{"id":"01009AE015CE4000","region":null}]},{"id":"e5fc1ad4-e468-48c3-b80e-1a980f1adffe","directory":"wildbus","title":"Wildbus","compatibility":99,"releases":[{"id":"01009130156BA000","region":null}]},{"id":"e6027b5f-55cf-4397-860a-2a1918e31a44","directory":"bears-restaurant","title":"Bear's Restaurant","compatibility":99,"releases":[{"id":"0100C0E014A4E000","region":null}]},{"id":"e60426fd-c4ce-4f6f-945a-e5ee39bae01b","directory":"gravifire","title":"GraviFire","compatibility":99,"releases":[{"id":"010054A013E0C000","region":null}]},{"id":"e6237dbd-8ff7-492a-a813-8bcbf568a21e","directory":"gun-gun-pixies","title":"Gun Gun Pixies","compatibility":0,"releases":[{"id":"01009EB00DC76000","region":null}]},{"id":"e624f01d-246a-4811-810c-6cc3e279afd5","directory":"touhou-sky-arena-matsuri-climax","title":"TOUHOU SKY ARENA -MATSURI-CLIMAX","compatibility":99,"releases":[{"id":"0100F42007752000","region":null}]},{"id":"e6262310-53ea-45ad-9308-ad59118f2904","directory":"fault-milestone-two-side-above","title":"fault - milestone two side: above","compatibility":99,"releases":[{"id":"010023D012C52000","region":null}]},{"id":"e63df27b-e4d7-499d-925e-470b146ae839","directory":"aca-neogeo-super-sidekicks-3-the-next-glory","title":"ACA NEOGEO SUPER SIDEKICKS 3 : THE NEXT GLORY","compatibility":99,"releases":[{"id":"0100A4D00A308000","region":null}]},{"id":"e6477203-3e7a-4c95-9b57-26b86cbbc6d7","directory":"animal-pairs-matching-concentration-game-for-toddlers-kids","title":"Animal Pairs - Matching & Concentration Game for Toddlers & Kids","compatibility":99,"releases":[{"id":"010033C0121DC000","region":null}]},{"id":"e648f472-bb9a-4a4d-b381-2722a7334054","directory":"negative-nancy","title":"Negative Nancy","compatibility":99,"releases":[{"id":"0100A300147D0000","region":null}]},{"id":"e64ce1ab-72a1-4e90-ad78-5a695fb070a2","directory":"bravely-default-ii","title":"BRAVELY DEFAULT™ II","compatibility":2,"releases":[{"id":"01006DC010326000","region":null}]},{"id":"e650478a-cea3-4e05-b452-94d94077ad88","directory":"demong-hunter","title":"Demong Hunter","compatibility":2,"releases":[{"id":"010000401313A000","region":null}]},{"id":"e65c1824-5bd8-4af7-b505-20fb27cd4bf8","directory":"vosaria-lair-of-the-forgotten","title":"Vosaria: Lair of the Forgotten","compatibility":99,"releases":[{"id":"01000EC00E60E000","region":null}]},{"id":"e66f8cc2-cd8f-4e55-b4eb-7b88a677cb07","directory":"vera-blanc-ghost-in-the-castle","title":"Vera Blanc: Ghost In The Castle","compatibility":99,"releases":[{"id":"0100805013BDA000","region":null}]},{"id":"e672cb11-5e08-4941-afc5-c52747d59eda","directory":"dancing-dreamer","title":"Dancing Dreamer","compatibility":99,"releases":[{"id":"010034C0152A8000","region":null}]},{"id":"e67d86fa-b146-412e-a00c-a6a82878ff45","directory":"romancing-saga-3","title":"Romancing SaGa 3","compatibility":1,"releases":[{"id":"0100D0400D27A000","region":null}]},{"id":"e67dacda-46a7-4b20-ba9d-d6b699815c17","directory":"emergency-hq","title":"EMERGENCY HQ","compatibility":99,"releases":[{"id":"010016B00EBE6000","region":null}]},{"id":"e6954ea3-ecb1-45cf-95e8-26ad80db90a5","directory":"magic-scroll-tactics","title":"Magic Scroll Tactics","compatibility":99,"releases":[{"id":"0100AAA00D404000","region":null}]},{"id":"e69d05f4-4620-4276-9f3b-4845c02c7c45","directory":"sega-ages-puyo-puyo-2","title":"SEGA AGES Puyo Puyo 2","compatibility":1,"releases":[{"id":"010019700D13A000","region":null}]},{"id":"e69d248d-c2a1-4d02-870b-3f9d0aec77a5","directory":"pure-electric-love-what-do-you-want-eri-kitami-","title":"Pure / Electric Love \"What do you want?\" - Eri Kitami -","compatibility":99,"releases":[{"id":"01007B900A508000","region":null}]},{"id":"e6a6d658-e8c9-4132-a76f-b8016e5ac829","directory":"animal-puzzle-preschool-learning-game-for-kids-and-toddlers","title":"Animal Puzzle - Preschool Learning Game for Kids and Toddlers","compatibility":99,"releases":[{"id":"0100F7A015F38000","region":null}]},{"id":"e6a86c34-0893-46bb-b43c-e3ab0640ced1","directory":"monopoly-r-madness","title":"MONOPOLY® Madness","compatibility":99,"releases":[{"id":"01005FF013DC2000","region":null}]},{"id":"e6aa6578-f201-4a89-aaa7-43813d385008","directory":"secret-neighbor","title":"Secret Neighbor","compatibility":99,"releases":[{"id":"0100540013468000","region":null}]},{"id":"e6c48cbf-eeca-403c-9b90-518bda8c8b76","directory":"star-horizon","title":"Star Horizon","compatibility":99,"releases":[{"id":"0100EC2011B9C000","region":null}]},{"id":"e6c658be-2682-40a1-a703-fe53e8ba4d94","directory":"trine-3-the-artifacts-of-power","title":"Trine 3: The Artifacts of Power","compatibility":3,"releases":[{"id":"0100DEC00A934000","region":null}]},{"id":"e6c6681e-5d13-458f-8451-4cf6f9181084","directory":"dungeons-bombs","title":"Dungeons & Bombs","compatibility":99,"releases":[{"id":"0100BE801360E000","region":null}]},{"id":"e6cbab9f-9447-4a57-8f75-a5245bfa6c80","directory":"takeshi-and-hiroshi","title":"Takeshi and Hiroshi","compatibility":99,"releases":[{"id":"0100CFD012908000","region":null}]},{"id":"e6d1202b-6ba1-4401-8772-45cea87a99a2","directory":"frontline-zed","title":"Frontline Zed","compatibility":3,"releases":[{"id":"0100861012474000","region":null}]},{"id":"e6eae8e8-9326-440d-afef-23cff1841d96","directory":"werewolf-the-apocalypse-heart-of-the-forest","title":"Werewolf: The Apocalypse — Heart of the Forest","compatibility":99,"releases":[{"id":"0100379013998000","region":null}]},{"id":"e6f36580-a879-4704-b739-04ecc9f97e11","directory":"gorilla-big-adventure","title":"Gorilla Big Adventure","compatibility":99,"releases":[{"id":"010076F013D5C000","region":null}]},{"id":"e6f7bfe3-790c-4f2b-9c8a-0eb9da19e0f1","directory":"boom-blaster","title":"Boom Blaster","compatibility":99,"releases":[{"id":"01002E6013ED8000","region":null}]},{"id":"e6fabd57-15a3-4251-9bfb-833459431f57","directory":"seek-hearts","title":"Seek Hearts","compatibility":99,"releases":[{"id":"010075D0101FA000","region":null}]},{"id":"e70cfc62-e986-4172-986f-8ab1cfb78eeb","directory":"metachampions","title":"MetaChampions","compatibility":99,"releases":[{"id":"01006DB00FBF6000","region":null}]},{"id":"e71ee723-9e6a-48a6-8619-bb4f4cf6711d","directory":"the-bear-and-the-admiral","title":"The Bear And The Admiral","compatibility":99,"releases":[{"id":"0100B7E0161FC000","region":null}]},{"id":"e71f560c-536e-4f9e-afd3-e5d551a0aa7b","directory":"strike-force-2-terrorist-hunt","title":"Strike Force 2 - Terrorist Hunt","compatibility":99,"releases":[{"id":"01004B500F07C000","region":null}]},{"id":"e73719b2-4567-4b8a-97ef-403bbb0f7a25","directory":"a-robot-named-fight","title":"A Robot Named Fight","compatibility":1,"releases":[{"id":"0100EB600A4DA000","region":null}]},{"id":"e74c286d-a9c4-4b3a-b0f6-ac1acfcb5188","directory":"technosphere","title":"Technosphere","compatibility":99,"releases":[{"id":"01004CD01039A000","region":null}]},{"id":"e74ecf10-72f8-4e52-86a9-9a4c13cccaeb","directory":"rodent-warriors","title":"Rodent Warriors","compatibility":99,"releases":[{"id":"0100CFA013C4C000","region":null}]},{"id":"e754e0b9-05a8-4574-9522-3344a13b7b54","directory":"match","title":"Match","compatibility":99,"releases":[{"id":"0100C61011DEA000","region":null}]},{"id":"e758e916-0c0b-4938-9b11-767f257cd84f","directory":"woodle-tree-2-deluxe","title":"Woodle Tree 2: Deluxe","compatibility":2,"releases":[{"id":"0100E0300EB04000","region":null}]},{"id":"e7604fb9-018e-4ce5-b350-97fac49196f3","directory":"deep-diving-adventures","title":"Deep Diving Adventures","compatibility":99,"releases":[{"id":"010026800FA88000","region":null}]},{"id":"e77b6d07-55d4-42c3-a5a5-80f4ab29a7d5","directory":"psyvariar-delta","title":"Psyvariar Delta","compatibility":1,"releases":[{"id":"01001CF00AD06000","region":null}]},{"id":"e782c3d2-5d4c-4b25-be48-c87ff9def46b","directory":"chop-is-dish","title":"Chop is Dish","compatibility":99,"releases":[{"id":"010031E00F6AE000","region":null}]},{"id":"e7ab0ece-8f64-4d18-93d5-d75ae66e981d","directory":"flux8","title":"Flux8","compatibility":99,"releases":[{"id":"010039C00E2CE000","region":null}]},{"id":"e7b1416b-340d-4f05-8d85-4c90fc04edd0","directory":"classic-pool","title":"Classic Pool","compatibility":1,"releases":[{"id":"01006740157F8000","region":null}]},{"id":"e7b67091-17bf-421e-9ce2-ca4fd073f312","directory":"wonder-boy-asha-in-monster-world","title":"Wonder Boy Asha in Monster World","compatibility":1,"releases":[{"id":"0100EB2012E36000","region":null}]},{"id":"e7c74175-e5d6-4153-85c1-ac3934274a06","directory":"legend-of-mana","title":"Legend of Mana","compatibility":4,"releases":[{"id":"01003570130E2000","region":null}]},{"id":"e7d8a07e-13a1-4006-8a2b-79ef6f86c12e","directory":"guilty-gear-xx-accent-core-plus-r","title":"GUILTY GEAR XX ACCENT CORE PLUS R","compatibility":99,"releases":[{"id":"01006F80082E4000","region":null}]},{"id":"e7d93f80-e40e-4c5e-84fd-4aab5d2091a0","directory":"classic-snake-adventures","title":"Classic Snake Adventures","compatibility":99,"releases":[{"id":"0100E6C00EB12000","region":null}]},{"id":"e7e054e2-9e95-40d2-a67b-96b328aa5b80","directory":"headsnatchers","title":"Headsnatchers","compatibility":3,"releases":[{"id":"0100A8200C372000","region":null}]},{"id":"e805fb78-9351-4a89-89c0-5d2cd0e062ae","directory":"phoenotopia-awakening","title":"Phoenotopia : Awakening","compatibility":99,"releases":[{"id":"01005E100A4F0000","region":null}]},{"id":"e8062c6c-6975-4184-b255-dcd5ba6ff54f","directory":"jettomero-hero-of-the-universe","title":"Jettomero: Hero of the Universe","compatibility":99,"releases":[{"id":"0100A5A00AF26000","region":null}]},{"id":"e80696f9-3c26-4f74-9a48-365d9bb2bc4f","directory":"lost-artifacts","title":"Lost Artifacts","compatibility":99,"releases":[{"id":"01003F500E658000","region":null}]},{"id":"e80ca335-cdfa-4144-9ee0-565924df529b","directory":"epic-word-search-collection","title":"Epic Word Search Collection","compatibility":99,"releases":[{"id":"0100D000111C2000","region":null}]},{"id":"e817f9a4-5d75-44fa-891e-136e4cc80d67","directory":"my-memory-of-us","title":"My Memory of Us","compatibility":0,"releases":[{"id":"0100E7700C284000","region":null}]},{"id":"e830aa92-7159-412c-b7fe-c88ad40c2346","directory":"jigsaw-abundance","title":"JigSaw Abundance","compatibility":99,"releases":[{"id":"0100B440119AA000","region":null}]},{"id":"e8366075-1ab9-4014-9e9a-1b833d922cf9","directory":"love-3","title":"LOVE 3","compatibility":99,"releases":[{"id":"010088A0167A0000","region":null}]},{"id":"e8394bb7-a33f-470a-a761-0370ef631d48","directory":"murder-by-numbers","title":"Murder by Numbers","compatibility":0,"releases":[{"id":"010061700FA8C000","region":null}]},{"id":"e842a1c7-75dd-4bab-afaa-94d0a77443b5","directory":"azure-reflections","title":"Azure Reflections","compatibility":0,"releases":[{"id":"01006FB00990E000","region":null}]},{"id":"e84daa5f-b7b7-4ae3-975e-d9b78060bddd","directory":"physical-contact-2048","title":"Physical Contact: 2048","compatibility":99,"releases":[{"id":"0100BF1003B9A000","region":null}]},{"id":"e87581b4-0885-4a7e-b125-8aca625b9170","directory":"capes-escape-game-3rd-room","title":"Cape’s Escape Game 3rd Room","compatibility":1,"releases":[{"id":"0100AA5015B96000","region":null}]},{"id":"e8783bc8-f84c-4da7-8b3f-bad1ac05651b","directory":"knights-of-pen-and-paper-bundle","title":"Knights of Pen and Paper Bundle","compatibility":99,"releases":[{"id":"01009A300C836000","region":null}]},{"id":"e879617c-c753-4a8b-84fe-ad80dbb09cbb","directory":"a-magical-high-school-girl","title":"A Magical High School Girl","compatibility":1,"releases":[{"id":"01008DD006C52000","region":null}]},{"id":"e886ddb8-1b88-4f63-9c9f-1ea2c156f5fc","directory":"orn-the-tiny-forest-sprite","title":"Orn: The Tiny Forest Sprite","compatibility":99,"releases":[{"id":"01006C70102EA000","region":null}]},{"id":"e88766d1-f3db-407f-a5d3-d4da0393a0b8","directory":"pool-8-ball-billiards","title":"Pool: 8 Ball Billiards","compatibility":99,"releases":[{"id":"01003FF015E54000","region":null}]},{"id":"e89c02c4-aab8-4ee2-b78f-07593528f870","directory":"the-darkside-detective-a-fumble-in-the-dark","title":"The Darkside Detective: A Fumble in the Dark","compatibility":99,"releases":[{"id":"0100576012B44000","region":null}]},{"id":"e8b5ac05-120d-4924-8032-2b7fbf4b642f","directory":"kosmokrats","title":"Kosmokrats","compatibility":99,"releases":[{"id":"0100C2B013B70000","region":null}]},{"id":"e8c7d542-1126-4ac6-b44f-29fc2bdfae1c","directory":"skyhill","title":"SKYHILL","compatibility":1,"releases":[{"id":"0100A0A00D1AA000","region":null}]},{"id":"e8cafc9c-5856-4404-a026-2d3a3356b178","directory":"nurse-love-syndrome","title":"Nurse Love Syndrome","compatibility":99,"releases":[{"id":"010003701002C000","region":null}]},{"id":"e8f97029-3d6b-4b88-a5b3-d66fe7a3de8b","directory":"forward-to-the-sky","title":"Forward To The Sky","compatibility":2,"releases":[{"id":"0100DBA011136000","region":null}]},{"id":"e8fe6720-ab41-4db8-9aed-9aa52b3b507d","directory":"secrets-of-me","title":"Secrets of Me","compatibility":99,"releases":[{"id":"01008DF01290C000","region":null}]},{"id":"e8ff7c5d-55d2-432b-88be-2c8074395e96","directory":"om-nom-run","title":"Om Nom: Run","compatibility":99,"releases":[{"id":"010032D01641E000","region":null}]},{"id":"e906f233-424b-42f8-bf90-a07418f939ef","directory":"pumped-bmx-pro","title":"Pumped BMX Pro","compatibility":99,"releases":[{"id":"01009AE00B788000","region":null}]},{"id":"e90d49b8-56f9-4b7e-8164-69ddf8d69e7c","directory":"squidgies-takeover","title":"Squidgies Takeover","compatibility":99,"releases":[{"id":"010009300D31C000","region":null}]},{"id":"e925ffb6-a2ad-48ca-a27f-119eca176316","directory":"arcade-archives-plus-alpha","title":"Arcade Archives PLUS ALPHA","compatibility":99,"releases":[{"id":"01007F8010C66000","region":null}]},{"id":"e9264c11-7784-48c6-a1d9-7002295e27c8","directory":"super-mario-bros-35","title":"Super Mario Bros.™ 35","compatibility":4,"releases":[{"id":"0100277011F1A000","region":null}]},{"id":"e9289207-dd26-4b80-b717-8bcf9febff4a","directory":"caladrius-blaze","title":"Caladrius Blaze","compatibility":1,"releases":[{"id":"01004FD00D66A000","region":null}]},{"id":"e9299e96-2399-401f-b62f-059bf292428f","directory":"pocket-league-story","title":"Pocket League Story","compatibility":99,"releases":[{"id":"010016D00D2C2000","region":null}]},{"id":"e940c0d7-e002-4ddf-8601-5d0061687d35","directory":"five-nights-at-freddys-help-wanted","title":"Five Nights at Freddy's: Help Wanted","compatibility":5,"releases":[{"id":"0100F7901118C000","region":null}]},{"id":"e94b180f-3154-4c32-86c8-b6acacfd5831","directory":"neo-the-world-ends-with-you","title":"NEO: The World Ends with You","compatibility":1,"releases":[{"id":"010043B013C5C000","region":null}]},{"id":"e94fb01f-59f3-4e91-86df-7dedbd7f1858","directory":"ding-dong-xl","title":"Ding Dong XL","compatibility":1,"releases":[{"id":"0100B6D00DA6E000","region":null}]},{"id":"e9526b4a-ae70-4ce2-8f32-db3bdbc2a7eb","directory":"robot-squad-simulator","title":"Robot Squad Simulator","compatibility":99,"releases":[{"id":"01001B800D742000","region":null}]},{"id":"e9702fde-9255-4a9a-bc4b-82c0f48fc900","directory":"star-sky","title":"Star Sky","compatibility":99,"releases":[{"id":"0100ACD00E27E000","region":null}]},{"id":"e97b76ca-2bb2-4ba1-bcba-6acfd9b3be81","directory":"strange-telephone","title":"Strange Telephone","compatibility":99,"releases":[{"id":"01002F800FD12000","region":null}]},{"id":"e98260e9-74eb-462f-9e46-842dbb4399af","directory":"pack-master","title":"Pack Master","compatibility":99,"releases":[{"id":"0100BEE011402000","region":null}]},{"id":"e989212c-d853-4e5f-9119-45544c443a34","directory":"star99","title":"Star99","compatibility":1,"releases":[{"id":"0100E6B0115FC000","region":null}]},{"id":"e995f747-24ab-4c61-b531-c530d0f9c063","directory":"corpse-killer-25th-anniversary-edition","title":"Corpse Killer - 25th Anniversary Edition","compatibility":99,"releases":[{"id":"0100D36013BDC000","region":null}]},{"id":"e9a33552-8141-4152-a90e-cfe6e39a4a2f","directory":"cruel-bands-career","title":"Cruel Bands Career","compatibility":99,"releases":[{"id":"0100F7900D8A4000","region":null}]},{"id":"e9acfe54-b692-4acb-abec-2991ac8aa4ab","directory":"immortal-planet","title":"Immortal Planet","compatibility":4,"releases":[{"id":"01007BC00E55A000","region":null}]},{"id":"e9ae9e60-3c06-4ab0-a2b4-df5632127237","directory":"jacks-or-better-video-poker","title":"Jacks or Better - Video Poker","compatibility":0,"releases":[{"id":"0100DD901201A000","region":null}]},{"id":"e9af6b32-162e-49a9-9683-e9cbd11eb99c","directory":"g-darius-hd","title":"G-DARIUS HD","compatibility":3,"releases":[{"id":"0100BCE013042000","region":null}]},{"id":"e9b2581c-b478-4cbd-889b-6b74412d5178","directory":"real-drift-racing","title":"Real Drift Racing","compatibility":99,"releases":[{"id":"0100A8A00E462000","region":null}]},{"id":"e9b6fbb0-fcf5-4171-9f0d-6f1118e81143","directory":"mable-and-the-wood","title":"Mable & The Wood","compatibility":99,"releases":[{"id":"01000B400E53A000","region":null}]},{"id":"e9bd487a-cb6a-468c-b8cd-0eb3a9750c00","directory":"my-arctic-farm-2018","title":"My Arctic Farm 2018","compatibility":99,"releases":[{"id":"01009A400C868000","region":null}]},{"id":"e9be1466-df80-4127-a737-279dc54d42ab","directory":"soccer-pinball","title":"Soccer Pinball","compatibility":99,"releases":[{"id":"0100B5000E05C000","region":null}]},{"id":"e9cbad53-53b9-40df-bb24-02d1fba3110a","directory":"alien-isolation","title":"Alien: Isolation","compatibility":3,"releases":[{"id":"010075D00E8BA000","region":null}]},{"id":"e9dac2f8-0bf5-4b20-a548-a5af579fd5a6","directory":"thief-of-thieves-season-one","title":"Thief of Thieves: Season One","compatibility":2,"releases":[{"id":"0100CE700F62A000","region":null}]},{"id":"e9df6c02-53f2-4af0-9e23-040b83cf6fac","directory":"neogeo-pocket-color-selection-vol-1","title":"NEOGEO POCKET COLOR SELECTION Vol.1","compatibility":0,"releases":[{"id":"010006D0128B4000","region":null}]},{"id":"e9e20555-697a-46a4-8053-2ff3588d9cdc","directory":"battlestar-galactica-deadlock","title":"Battlestar Galactica Deadlock","compatibility":99,"releases":[{"id":"010059C00E39C000","region":null}]},{"id":"e9ef4845-b6f6-43ee-bc6d-d642237e58ba","directory":"sniper-elite-4","title":"Sniper Elite 4","compatibility":4,"releases":[{"id":"010007B010FCC000","region":null}]},{"id":"e9f69bed-2059-4e58-851c-b89c2204aa99","directory":"the-explorer-of-night","title":"The Explorer of Night","compatibility":99,"releases":[{"id":"0100308013768000","region":null}]},{"id":"e9f88c7c-9dfe-4381-8e62-632061a57609","directory":"dwarf-journey","title":"Dwarf Journey","compatibility":99,"releases":[{"id":"01009E8013FCE000","region":null}]},{"id":"e9f9f510-1168-49bc-b0eb-dd2442480516","directory":"underhero","title":"Underhero","compatibility":99,"releases":[{"id":"01005CD00F85A000","region":null}]},{"id":"ea0a142c-7cf8-4aa2-9242-db654f687acb","directory":"beasts-of-maravilla-island","title":"Beasts of Maravilla Island","compatibility":99,"releases":[{"id":"01008FF014670000","region":null}]},{"id":"ea1fcc02-7409-444c-853d-61de28b3eff1","directory":"ancestors-legacy","title":"Ancestors Legacy","compatibility":99,"releases":[{"id":"01009EE0111CC000","region":null}]},{"id":"ea27fb31-6e60-4260-bd68-2c76027f5a8b","directory":"super-jumpy-ball","title":"Super Jumpy Ball","compatibility":1,"releases":[{"id":"010015700D5DC000","region":null}]},{"id":"ea2d515b-a5d9-4cde-9c12-c2dc712db878","directory":"pinball-jam","title":"Pinball Jam","compatibility":99,"releases":[{"id":"0100AD50167EC000","region":null}]},{"id":"ea345728-8524-4f72-8ed5-12d4b5d4c55e","directory":"steven-universe-unleash-the-light","title":"Steven Universe: Unleash the Light","compatibility":1,"releases":[{"id":"0100599012F08000","region":null}]},{"id":"ea3941b1-f994-42d1-89d4-a876180fb740","directory":"super-box-land-demake","title":"Super Box Land Demake","compatibility":99,"releases":[{"id":"0100D6A00F802000","region":null}]},{"id":"ea6222b9-bcbc-49ec-8114-a4e73802d116","directory":"diabolic","title":"Diabolic","compatibility":99,"releases":[{"id":"0100F73011456000","region":null}]},{"id":"ea73641f-35d9-4cec-9675-8b3298b1cc77","directory":"mahjong-solitaire-refresh","title":"Mahjong Solitaire Refresh","compatibility":99,"releases":[{"id":"01008C300B624000","region":null}]},{"id":"ea815de3-fca1-45ea-b495-4d1c7f9045a8","directory":"pinstripe","title":"Pinstripe","compatibility":0,"releases":[{"id":"010041100B148000","region":null}]},{"id":"ea94352f-0227-4f08-a69b-45ef63ce992e","directory":"lunch-a-palooza","title":"Lunch A Palooza","compatibility":99,"releases":[{"id":"0100E0C011D52000","region":null}]},{"id":"ea97ff20-8bf1-432a-9bc7-a3152969b7d7","directory":"axs","title":"AXS","compatibility":99,"releases":[{"id":"0100C55014592000","region":null}]},{"id":"eaa590e8-9725-4811-bf24-c362e89e0ff9","directory":"captain-tsubasa-rise-of-new-champions","title":"Captain Tsubasa: Rise of New Champions","compatibility":0,"releases":[{"id":"0100EAE010560000","region":null}]},{"id":"eaa6bda8-a467-4ef7-9fde-39e01131ccfa","directory":"grey-skies-a-war-of-the-worlds-story","title":"Grey Skies: A War of the Worlds Story","compatibility":99,"releases":[{"id":"0100DA7013792000","region":null}]},{"id":"eaa87f6c-1021-41c2-823c-b6f72af4bf33","directory":"state-of-mind","title":"State of Mind","compatibility":99,"releases":[{"id":"0100844004CB6000","region":null}]},{"id":"eab0b7fa-fa18-4b0e-a1db-5032bf1cc401","directory":"island","title":"ISLAND","compatibility":3,"releases":[{"id":"0100F06013710000","region":null}]},{"id":"eab4414a-0365-4da7-bbf9-9ad377a2db2a","directory":"arcade-archives-penguin-kun-wars","title":"Arcade Archives Penguin-Kun Wars","compatibility":99,"releases":[{"id":"0100B0A00C8D8000","region":null}]},{"id":"eab5eecb-a14e-41be-8e08-5c9093eececd","directory":"skatebird","title":"SkateBIRD","compatibility":99,"releases":[{"id":"0100FA400FF78000","region":null}]},{"id":"eabb9635-8112-448e-8a3f-33d89f3f6068","directory":"dungeon-shooting","title":"Dungeon Shooting","compatibility":99,"releases":[{"id":"010049D010A42000","region":null}]},{"id":"ead11e47-38d2-4bdc-a3ec-dc4c0e035b9a","directory":"magic-potion-millionaire","title":"Magic Potion Millionaire","compatibility":99,"releases":[{"id":"0100672015B72000","region":null}]},{"id":"ead240cc-a0c5-408b-8bd1-d98d7ab7f046","directory":"simulacra","title":"SIMULACRA","compatibility":99,"releases":[{"id":"0100E3D00EA82000","region":null}]},{"id":"ead604ac-9cb4-4c57-ac67-6c0c4a0b9394","directory":"motif","title":"Motif","compatibility":99,"releases":[{"id":"0100A76014BC0000","region":null}]},{"id":"ead9e331-9e14-4863-9d62-0a4db1ee0374","directory":"legendary-fishing","title":"Legendary Fishing","compatibility":1,"releases":[{"id":"0100A7700B46C000","region":null}]},{"id":"eada11ec-7b91-4758-862f-87cfa449fd9c","directory":"gem-miner","title":"Gem Miner","compatibility":99,"releases":[{"id":"01006EA01451E000","region":null}]},{"id":"eadfa995-68e1-4475-b089-4a729f3ca519","directory":"manifold-garden","title":"Manifold Garden","compatibility":1,"releases":[{"id":"0100361009B1A000","region":null}]},{"id":"eadff797-075a-4074-bbf5-6d63177270c6","directory":"two-point-hospital","title":"Two Point Hospital","compatibility":1,"releases":[{"id":"010031200E044000","region":null}]},{"id":"eae5d05a-9d14-4d78-884e-857f27cbc0ef","directory":"happy-words","title":"Happy Words","compatibility":99,"releases":[{"id":"010094F00D626000","region":null}]},{"id":"eae8b3ca-6664-46a6-8f5e-d749322d1649","directory":"yoshis-crafted-world","title":"Yoshi’s Crafted World","compatibility":1,"releases":[{"id":"01006000040C2000","region":null}]},{"id":"eaeb1686-5773-4458-af82-3c5965e0cb70","directory":"child-of-light-r-ultimate-edition-valiant-hearts-the-great-war-r","title":"Child of Light® Ultimate Edition + Valiant Hearts: The Great War®","compatibility":0,"releases":[{"id":"01006C70146A2000","region":null}]},{"id":"eaef3d40-db61-44d0-aa36-176087341aa7","directory":"knight-squad","title":"Knight Squad","compatibility":1,"releases":[{"id":"0100A6800DE70000","region":null}]},{"id":"eaf5fcad-cdd5-4ef6-a7f4-1e1bc851c95f","directory":"barbearian","title":"Barbearian","compatibility":2,"releases":[{"id":"0100F7E01308C000","region":null}]},{"id":"eafdf5f1-e47f-4aa0-b8b5-3ed4d2fcef28","directory":"bitlogic-a-cyberpunk-arcade-adventure","title":"Bitlogic - A Cyberpunk Arcade Adventure","compatibility":99,"releases":[{"id":"0100DD100DE16000","region":null}]},{"id":"eb02acc8-5de7-4401-9712-88af4617e66b","directory":"roof-rage","title":"Roof Rage","compatibility":4,"releases":[{"id":"010088100DD42000","region":null}]},{"id":"eb23a371-e4d1-4663-bef5-5f83e74d7ec4","directory":"liege-dragon","title":"Liege Dragon","compatibility":99,"releases":[{"id":"010041F0128AE000","region":null}]},{"id":"eb3033b0-5e77-4be5-8757-deea75a3345f","directory":"the-storytale","title":"the StoryTale","compatibility":99,"releases":[{"id":"0100858010DC4000","region":null}]},{"id":"eb42e6b9-b96a-440e-9124-1786e17101b8","directory":"tiny-lands","title":"Tiny Lands","compatibility":3,"releases":[{"id":"0100F18014AC2000","region":null}]},{"id":"eb4601ba-4715-4dbe-a71c-08a49d6394f3","directory":"doughlings-arcade","title":"Doughlings: Arcade","compatibility":4,"releases":[{"id":"010040E00B636000","region":null}]},{"id":"eb5bb0ed-7151-4736-974e-82e9eb417e7b","directory":"hair-mower-3d","title":"Hair Mower 3D","compatibility":99,"releases":[{"id":"0100679010FEE000","region":null}]},{"id":"eb5fe610-2446-49df-830f-ec42a7762ba5","directory":"lost-lands-dark-overlord","title":"Lost Lands: Dark Overlord","compatibility":99,"releases":[{"id":"0100BDD010AC8000","region":null}]},{"id":"eb78f1d2-31ba-4c0b-8727-461eb2c6dc17","directory":"guacamelee-2","title":"Guacamelee! 2","compatibility":1,"releases":[{"id":"01007E100456C000","region":null}]},{"id":"eb8bac71-e364-4e60-afe0-9a3384a13475","directory":"dodge-these-balls","title":"Dodge These Balls","compatibility":99,"releases":[{"id":"010019A0134E2000","region":null}]},{"id":"eb8e7ab4-9196-4c92-842a-6e734c0be53f","directory":"all-in-casino-girls","title":"All in Casino Girls","compatibility":99,"releases":[{"id":"0100689013A92000","region":null}]},{"id":"eb9bca23-823d-44de-829d-a62e5c276651","directory":"giraffe-and-annika","title":"Giraffe and Annika","compatibility":99,"releases":[{"id":"01007E90116CE000","region":null}]},{"id":"eb9c3e65-dd12-4de0-ab8d-26cd98502e8a","directory":"rover-wars","title":"Rover Wars","compatibility":99,"releases":[{"id":"010000E011176000","region":null}]},{"id":"eba5598d-4b7a-45dc-9d94-894e2c8116ff","directory":"aery-sky-castle","title":"Aery - Sky Castle","compatibility":99,"releases":[{"id":"010018E012914000","region":null}]},{"id":"ebaa533c-3011-48fb-9862-fe170ef17e04","directory":"chickens-madness","title":"Chickens Madness","compatibility":99,"releases":[{"id":"0100669011C36000","region":null}]},{"id":"ebbf0013-877f-435b-8d65-00524689da17","directory":"calculation-castle-grecos-ghostly-challenge-multiplication","title":"Calculation Castle : Greco's Ghostly Challenge \"Multiplication \"","compatibility":99,"releases":[{"id":"0100ECE00B210000","region":null}]},{"id":"ebbffc58-cd95-4ade-927b-68cfdcc6de00","directory":"barbero","title":"Barbero","compatibility":99,"releases":[{"id":"010017E015636000","region":null}]},{"id":"ebeda982-0796-4861-a9bc-97a7a198ee66","directory":"devious-dungeon","title":"Devious Dungeon","compatibility":1,"releases":[{"id":"01009EA00A320000","region":null}]},{"id":"ebef297b-9942-4f17-bc8c-d242b85c5130","directory":"spellkeeper","title":"SpellKeeper","compatibility":99,"releases":[{"id":"010045800C80C000","region":null}]},{"id":"ebff6290-9e08-4619-8e28-13c499e6520d","directory":"bloody-zombies","title":"Bloody Zombies","compatibility":1,"releases":[{"id":"0100875008000000","region":null}]},{"id":"ec107f65-1471-480d-b625-9a6473dbefcc","directory":"glitchs-trip","title":"Glitch's Trip","compatibility":1,"releases":[{"id":"0100B6F01227C000","region":null}]},{"id":"ec1ae12c-5a2c-4f8b-bea1-c05e303d71eb","directory":"titans-black-ops","title":"Titans Black Ops","compatibility":99,"releases":[{"id":"0100D1D015956000","region":null}]},{"id":"ec25237c-f581-4c5b-9c9e-b8e9a0ab777d","directory":"four-in-a-row","title":"Four in a Row","compatibility":99,"releases":[{"id":"010058A01302A000","region":null}]},{"id":"ec2bc9c2-f39e-4f0f-9865-0f9d77ba5d1f","directory":"old-school-racer-2","title":"Old School Racer 2","compatibility":99,"releases":[{"id":"010099000BA48000","region":null}]},{"id":"ec2fafd0-44e2-442f-bc33-03d0bb97f2b8","directory":"dont-give-up-a-cynical-tale","title":"DON'T GIVE UP: A Cynical Tale","compatibility":99,"releases":[{"id":"0100224013C7E000","region":null}]},{"id":"ec386500-c590-4eb5-9aed-d559b4c37f23","directory":"furi","title":"Furi","compatibility":3,"releases":[{"id":"01009D3008D20000","region":null}]},{"id":"ec47f676-3a40-4c7a-aadd-df09ff37569c","directory":"football-cup-2021","title":"Football Cup 2021","compatibility":99,"releases":[{"id":"0100D43013BC6000","region":null}]},{"id":"ec4d86e1-f8ba-4ff1-9945-acdd0f964ecb","directory":"star-wars-episode-i-racer","title":"STAR WARS™ Episode I Racer","compatibility":2,"releases":[{"id":"0100BD100FFBE000","region":null}]},{"id":"ec4f1cc5-972f-4ae5-adae-a3753e9bef35","directory":"prison-princess","title":"Prison Princess","compatibility":1,"releases":[{"id":"0100F4800F872000","region":null}]},{"id":"ec6b6c4c-13b8-4cc9-b135-aeb99a8771bb","directory":"street-fighter-30th-anniversary-collection","title":"Street Fighter 30th Anniversary Collection","compatibility":1,"releases":[{"id":"0100024008310000","region":null}]},{"id":"ec73a992-34e6-4f63-8f91-7983ca0c9662","directory":"super-tennis-blast","title":"Super Tennis Blast","compatibility":1,"releases":[{"id":"010000500DB50000","region":null}]},{"id":"ec7cc9a3-4d47-4ce7-83e5-ce548b0ed0f1","directory":"case-2-animatronics-survival","title":"CASE 2: Animatronics Survival","compatibility":99,"releases":[{"id":"0100C4C0132F8000","region":null}]},{"id":"ec80934d-b5dc-407e-a06c-670543362d55","directory":"pixeljunk-eden-2","title":"PixelJunk Eden 2","compatibility":99,"releases":[{"id":"0100382011002000","region":null}]},{"id":"ec906309-aa4a-47fb-94dd-0dba7132a973","directory":"ayakashi-romance-reborn-dawn-chapter-twilight-chapter","title":"Ayakashi: Romance Reborn Dawn Chapter & Twilight Chapter","compatibility":99,"releases":[{"id":"0100EED013184000","region":null}]},{"id":"eca32618-f598-4a29-9e8f-8bb5c244239c","directory":"splatoon-2-special-demo-2020","title":"Splatoon™ 2 Special Demo 2020","compatibility":99,"releases":[{"id":"01002120116C4000","region":null}]},{"id":"eca4ac36-11bc-4a94-82c1-fa2bdf1b5791","directory":"solar-blast","title":"Solar Blast","compatibility":99,"releases":[{"id":"0100694013B7E000","region":null}]},{"id":"ecc02a30-3279-42a1-9b55-724d6c93ff86","directory":"tiger-trios-tasty-travels","title":"Tiger Trio's Tasty Travels","compatibility":99,"releases":[{"id":"0100679014BDC000","region":null}]},{"id":"ecd664c0-0563-4e0c-b6e2-fa32c9e68091","directory":"aca-neogeo-the-super-spy","title":"ACA NEOGEO THE SUPER SPY","compatibility":99,"releases":[{"id":"0100F7F00AFA2000","region":null}]},{"id":"ecdff992-2001-4c72-bc12-e4f73f4e7d99","directory":"endless-fables-dark-moor","title":"Endless Fables: Dark Moor","compatibility":99,"releases":[{"id":"01004F3011F92000","region":null}]},{"id":"ece1b6b6-5c1b-4eb5-9a24-1e6d1d57caed","directory":"shift-quantum","title":"Shift Quantum","compatibility":0,"releases":[{"id":"01000E8009E1C000","region":null}]},{"id":"ecedd270-6d14-487a-8009-84b4996129c5","directory":"one-eyed-lee-and-the-dinner-party","title":"One-Eyed Lee and the Dinner Party","compatibility":99,"releases":[{"id":"0100F3E0157CE000","region":null}]},{"id":"ecf339ed-d676-4c08-b21b-2026d80690db","directory":"speed-limit","title":"Speed Limit","compatibility":3,"releases":[{"id":"01000540139F6000","region":null}]},{"id":"ed003aa8-7be9-4248-b056-6390ac18e806","directory":"rogue-trooper-redux","title":"Rogue Trooper Redux","compatibility":1,"releases":[{"id":"01001CC00416C000","region":null}]},{"id":"ed07fe72-4e93-4334-8706-f38b44492932","directory":"smoots-summer-games","title":"Smoots Summer Games","compatibility":99,"releases":[{"id":"01006FC00E6C4000","region":null}]},{"id":"ed0e5fc5-cb02-44d7-99c5-daaa6d580a47","directory":"save-the-ninja-clan","title":"Save the Ninja Clan","compatibility":99,"releases":[{"id":"0100D6E008700000","region":null}]},{"id":"ed0f252e-9225-43c7-a9f7-7fd0810d9105","directory":"space-pioneer","title":"Space Pioneer","compatibility":99,"releases":[{"id":"010047B010260000","region":null}]},{"id":"ed14e22f-f8cd-486f-8fe4-8809ad598689","directory":"endless-puzzle-fun-collection","title":"Endless Puzzle Fun Collection","compatibility":1,"releases":[{"id":"0100D6A015B12000","region":null}]},{"id":"ed1a692a-3ed5-411c-a2f2-97f667914c98","directory":"the-next-penelope","title":"The Next Penelope","compatibility":1,"releases":[{"id":"01000CF0084BC000","region":null}]},{"id":"ed1b876e-c522-472f-bf70-9b20e4bd862f","directory":"active-neurons-2","title":"Active Neurons 2","compatibility":99,"releases":[{"id":"01000D1011EF0000","region":null}]},{"id":"ed29070f-73a2-422d-993f-ecba2449f441","directory":"celeste","title":"Celeste","compatibility":0,"releases":[{"id":"01002B30028F6000","region":null}]},{"id":"ed376620-a10d-489a-970b-7565b1eb14e4","directory":"39-days-to-mars","title":"39 Days to Mars","compatibility":99,"releases":[{"id":"0100AF400C4CE000","region":null}]},{"id":"ed4261a8-6999-4b4c-acc0-46af1935e8a3","directory":"golf-peaks","title":"Golf Peaks","compatibility":99,"releases":[{"id":"0100E3500D342000","region":null}]},{"id":"ed49eaf5-66a2-4400-a032-545197c672b4","directory":"eternal-card-game","title":"Eternal Card Game","compatibility":99,"releases":[{"id":"0100F0B00A214000","region":null}]},{"id":"ed599889-d73d-43ef-ac12-c058003751c7","directory":"tic-tac-letters-by-powgi","title":"Tic-Tac-Letters by POWGI","compatibility":99,"releases":[{"id":"01001ED00F384000","region":null}]},{"id":"ed5a71ea-efe0-43a1-99b7-d0c696701f51","directory":"abbies-farm-for-kids-and-toddlers","title":"Abbie's Farm for kids and toddlers","compatibility":99,"releases":[{"id":"0100A6B014926000","region":null}]},{"id":"ed5b48de-1243-4f22-a0f6-a83dd6155cf4","directory":"nba-2k-playgrounds-2","title":"NBA 2K Playgrounds 2","compatibility":4,"releases":[{"id":"01001AE00C1B2000","region":null}]},{"id":"ed64463e-a816-426c-8d5d-e61e2449ee17","directory":"uni","title":"UNI","compatibility":99,"releases":[{"id":"0100A0F00BC24000","region":null}]},{"id":"ed6d5a37-bd3c-4d6e-bd30-eed531d66c6c","directory":"my-friend-pedro","title":"My Friend Pedro","compatibility":1,"releases":[{"id":"010031200B94C000","region":null}]},{"id":"ed73f9fb-098b-4c65-82b9-0b0188bbe750","directory":"snk-40th-anniversary-collection","title":"SNK 40th ANNIVERSARY COLLECTION","compatibility":1,"releases":[{"id":"01004AB00AEF8000","region":null}]},{"id":"ed842ece-280b-429a-9112-3874c13afa65","directory":"dustoff-heli-rescue-2","title":"Dustoff Heli Rescue 2","compatibility":99,"releases":[{"id":"0100C00005E38000","region":null}]},{"id":"ed89283c-f190-43d3-aa47-a243ca7ea02f","directory":"splatoon-2","title":"Splatoon 2","compatibility":2,"releases":[{"id":"01003BC0000A0000","region":null}]},{"id":"ed948a7f-e408-484e-af25-cef01c54b037","directory":"disc-room","title":"Disc Room","compatibility":3,"releases":[{"id":"010015B012E0C000","region":null}]},{"id":"edc597f0-50bd-44ce-9c93-3fb8de7d10b7","directory":"strike-force-war-on-terror","title":"Strike Force - War on Terror","compatibility":99,"releases":[{"id":"010039100DACC000","region":null}]},{"id":"edca6981-6bf0-43c7-bd35-7f3aede30e16","directory":"drift-racing-madness","title":"Drift Racing Madness","compatibility":99,"releases":[{"id":"0100850011FDA000","region":null}]},{"id":"edf3064a-30b7-406d-8230-01023521c334","directory":"implosion","title":"IMPLOSION","compatibility":1,"releases":[{"id":"0100737003190000","region":null}]},{"id":"edf34146-3143-437d-82b5-a19397c3ebdd","directory":"wizodd","title":"Wizodd","compatibility":99,"releases":[{"id":"01003970146E6000","region":null}]},{"id":"edf9e025-3d15-4192-8a7d-fd5aa65bb5fa","directory":"kemono-friends-picross","title":"KEMONO FRIENDS PICROSS","compatibility":2,"releases":[{"id":"01004B100BDA2000","region":null}]},{"id":"ee06672d-607a-4e18-bdac-b458f563e4fb","directory":"arcade-archives-gemini-wing","title":"Arcade Archives Gemini Wing","compatibility":99,"releases":[{"id":"0100938012A2E000","region":null}]},{"id":"ee0ba630-4378-4ef2-8a4c-f50661d484f6","directory":"cobra-kai-the-karate-kid-saga-continues","title":"Cobra Kai: The Karate Kid Saga Continues","compatibility":1,"releases":[{"id":"01005790110F0000","region":null}]},{"id":"ee0cc7e0-9031-44de-b1d5-217112fdf4b0","directory":"naruto-shippuden-ultimate-ninja-r-storm-4-road-to-boruto","title":"NARUTO SHIPPUDEN™: Ultimate Ninja® STORM 4 ROAD TO BORUTO","compatibility":5,"releases":[{"id":"010084D00CF5E000","region":null}]},{"id":"ee12c048-8323-4e0c-b570-abf248c33579","directory":"summer-catchers","title":"Summer Catchers","compatibility":99,"releases":[{"id":"0100853013824000","region":null}]},{"id":"ee138101-c325-43c0-99dc-dc91d327fc33","directory":"the-flower-collectors","title":"The Flower Collectors","compatibility":99,"releases":[{"id":"01005860122C4000","region":null}]},{"id":"ee1477da-a669-417b-a58a-61e005ee7b10","directory":"beauty-bounce","title":"Beauty Bounce","compatibility":99,"releases":[{"id":"0100CFB0145C2000","region":null}]},{"id":"ee187093-1b9f-4d92-b1da-2b60eca95bcf","directory":"magical-girls-second-magic","title":"Magical Girls Second Magic","compatibility":99,"releases":[{"id":"0100969015B04000","region":null}]},{"id":"ee263509-1918-48e6-a1db-80022791f65c","directory":"aca-neogeo-metal-slug","title":"ACA NEOGEO METAL SLUG","compatibility":3,"releases":[{"id":"0100EBE002B3E000","region":null}]},{"id":"ee275362-2131-4fac-b493-ff24f96cee81","directory":"sega-ages-lightening-force-quest-for-the-darkstar","title":"SEGA AGES Lightening Force: Quest for the Darkstar","compatibility":1,"releases":[{"id":"01006AB00BEE4000","region":null}]},{"id":"ee29c81b-b31e-4b30-bf5a-98c1d0150275","directory":"palm-reading-premium","title":"Palm Reading Premium","compatibility":99,"releases":[{"id":"010002900B75A000","region":null}]},{"id":"ee2a8662-a285-4bcd-8567-ded1f8b3c7ad","directory":"the-ambassador-fractured-timelines","title":"The Ambassador: Fractured Timelines","compatibility":99,"releases":[{"id":"0100F0C00FE6E000","region":null}]},{"id":"ee2b2521-9da7-4564-98f6-dde95de8576a","directory":"house-of-golf","title":"House of Golf","compatibility":3,"releases":[{"id":"0100C3A00B97E000","region":null}]},{"id":"ee30cc2f-925a-41fe-95b0-022121d1c430","directory":"the-card-battle-eternal-destiny","title":"THE Card Battle: Eternal Destiny","compatibility":99,"releases":[{"id":"0100FBE0151DC000","region":null}]},{"id":"ee32a889-49a9-4f61-90eb-9bcc171514ca","directory":"stubbs-the-zombie-in-rebel-without-a-pulse","title":"Stubbs the Zombie in Rebel Without a Pulse","compatibility":99,"releases":[{"id":"0100964012528000","region":null}]},{"id":"ee35323d-62db-474d-a318-ec7df946b2eb","directory":"adventures-of-pip","title":"Adventures of Pip","compatibility":1,"releases":[{"id":"01002B5012004000","region":null}]},{"id":"ee3a207a-0a56-4772-9da4-f83c6bd9ce09","directory":"way-of-the-passive-fist","title":"Way of the Passive Fist","compatibility":99,"releases":[{"id":"0100BA200C378000","region":null}]},{"id":"ee444b95-c2ef-488b-8862-3db1462ba5a0","directory":"jetboard-joust","title":"Jetboard Joust","compatibility":99,"releases":[{"id":"0100AEB0138A4000","region":null}]},{"id":"ee52b86d-6479-487b-8135-b43668fb04dc","directory":"world-end-economica-complete","title":"WORLD END ECONOMiCA ~complete~","compatibility":99,"releases":[{"id":"01001F801458C000","region":null}]},{"id":"ee5315a2-18cf-40c6-b34c-7cf5b1e5c9d7","directory":"my-jurassic-farm-2018","title":"My Jurassic Farm 2018","compatibility":99,"releases":[{"id":"0100BCD00C86A000","region":null}]},{"id":"ee5352d1-e15a-4b32-9244-24f7b7c166d5","directory":"neko-navy-daydream-edition","title":"Neko Navy - Daydream Edition","compatibility":99,"releases":[{"id":"0100E5500B020000","region":null}]},{"id":"ee555114-e7fc-47aa-ad8c-6a9f952571c9","directory":"nelke-and-the-legendary-alchemists-~ateliers-of-the-new-world~","title":"Nelke & the Legendary Alchemists ~Ateliers of the New World~","compatibility":3,"releases":[{"id":"01006ED00BC76000","region":null}]},{"id":"ee56dd02-f8bf-47fe-94ee-8de81d80748b","directory":"what-remains-of-edith-finch","title":"What Remains of Edith Finch","compatibility":4,"releases":[{"id":"010038900DFE0000","region":null}]},{"id":"ee5aa4e8-d2e8-495e-8e67-5ecd9fd19594","directory":"s-u-m-slay-uncool-monsters","title":"S.U.M. - Slay Uncool Monsters","compatibility":99,"releases":[{"id":"010060A0138FC000","region":null}]},{"id":"ee62bbd5-0cd7-4856-b268-f49229334c14","directory":"metaloid-origin","title":"Metaloid: Origin","compatibility":0,"releases":[{"id":"01002DE00E5D0000","region":null}]},{"id":"ee844b38-fc39-4fbc-8929-d530c68416bc","directory":"of-mice-and-sand-revised-","title":"OF MICE AND SAND -REVISED-","compatibility":99,"releases":[{"id":"01002310064B4000","region":null}]},{"id":"ee8505be-907e-492e-be62-707fcd1deb01","directory":"poopdie-chapter-one","title":"Poopdie - Chapter One","compatibility":0,"releases":[{"id":"010051A011AD8000","region":null}]},{"id":"ee87f7c1-cba0-405d-b123-46e0bfaff710","directory":"super-dodgeball-beats","title":"Super Dodgeball Beats","compatibility":99,"releases":[{"id":"010003900E46A000","region":null}]},{"id":"ee96bc2f-eee6-45ef-b7b6-7e327af1690e","directory":"byakko-tai-samurai-boys","title":"Byakko-tai Samurai Boys","compatibility":99,"releases":[{"id":"0100BBA013CAC000","region":null}]},{"id":"ee9f7384-3600-4c24-8f2a-077b81920765","directory":"ghost-parade","title":"Ghost Parade","compatibility":0,"releases":[{"id":"010094C00E180000","region":null}]},{"id":"eead0e12-be88-440c-aa16-144840c65541","directory":"jigsaw-fun-greatest-cities","title":"Jigsaw Fun: Greatest Cities","compatibility":99,"releases":[{"id":"0100696015DBE000","region":null}]},{"id":"eeb3dbcd-1100-4512-80b6-5d10b07d6c7d","directory":"puyo-puyo-tetris-r-2","title":"Puyo Puyo™ Tetris® 2","compatibility":0,"releases":[{"id":"010038E011940000","region":null}]},{"id":"eebda8eb-868b-47f6-a1a9-d371cbe8b840","directory":"roombo-first-blood","title":"Roombo: First Blood","compatibility":2,"releases":[{"id":"0100F3000FA58000","region":null}]},{"id":"eebee0c3-0192-4fed-a494-1d5d3f45c43d","directory":"night-book","title":"Night Book","compatibility":3,"releases":[{"id":"0100B5E0140B2000","region":null}]},{"id":"eec0794a-463e-4a53-9e9d-723f765f649c","directory":"aca-neogeo-stakes-winner","title":"ACA NEOGEO STAKES WINNER","compatibility":2,"releases":[{"id":"01004B600A2FC000","region":null}]},{"id":"eec94039-7aa1-4015-9014-9d628aebd7d9","directory":"indie-gems-bundle-nonograms-edition","title":"Indie Gems Bundle - Nonograms edition","compatibility":99,"releases":[{"id":"0100510011BC0000","region":null}]},{"id":"eed5009f-745a-45e9-bafd-a2958e16865a","directory":"akuto-showdown","title":"Akuto: Showdown","compatibility":99,"releases":[{"id":"010026E00FEBE000","region":null}]},{"id":"eedc2b4a-ea7d-4d9b-b99d-4e3dc6a84da5","directory":"puzzle-box-3-in-1","title":"Puzzle Box 3 in 1","compatibility":99,"releases":[{"id":"0100E710153BA000","region":null}]},{"id":"eee2185a-b348-4dbb-8a1f-374ef9c61f0b","directory":"panmorphia-enchanted","title":"Panmorphia: Enchanted","compatibility":99,"releases":[{"id":"0100042016884000","region":null}]},{"id":"ef0076c1-4ad1-48b7-869e-8e7b59a1bd8c","directory":"love-colors","title":"Love Colors","compatibility":99,"releases":[{"id":"0100121012BB6000","region":null}]},{"id":"ef0a9be0-765a-49b2-9279-df172485bbaa","directory":"super-arcade-football","title":"Super Arcade Football","compatibility":99,"releases":[{"id":"0100B26016078000","region":null}]},{"id":"ef149a82-3694-4f5b-a93e-a26c3ac01d68","directory":"shadows","title":"Shadows","compatibility":99,"releases":[{"id":"0100045010EB6000","region":null}]},{"id":"ef202326-b7c8-4ca6-b6c3-a492df7205ec","directory":"toast-time-smash-up","title":"Toast Time: Smash Up!","compatibility":99,"releases":[{"id":"010014900865A000","region":null}]},{"id":"ef2caf5b-4984-4949-9cee-c8bda0c262d6","directory":"headland","title":"Headland","compatibility":99,"releases":[{"id":"0100A8F0165F2000","region":null}]},{"id":"ef308b77-606c-4e5a-97ee-1e465a45de7f","directory":"wood-block-escape-puzzles","title":"Wood Block Escape Puzzles","compatibility":99,"releases":[{"id":"0100963014D92000","region":null}]},{"id":"ef31eec3-c003-4d97-b5c9-a34c680d831f","directory":"esports-legend","title":"eSports Legend","compatibility":99,"releases":[{"id":"0100B4F00FC4E000","region":null}]},{"id":"ef55bdeb-8572-401e-b5c5-a6fe8436ec6a","directory":"yuso","title":"Yuso","compatibility":99,"releases":[{"id":"01004D800AAAC000","region":null}]},{"id":"ef69cebd-176d-470c-b8c0-c0ee259a56f1","directory":"kraken-academy","title":"Kraken Academy!!","compatibility":99,"releases":[{"id":"0100D1301367A000","region":null}]},{"id":"ef72f056-047a-4e9c-bb9c-d1c29fe80a22","directory":"unitied","title":"Unitied","compatibility":99,"releases":[{"id":"01003900122A6000","region":null}]},{"id":"ef734df8-1b45-4ed6-8428-7cde1376c315","directory":"tetragon","title":"Tetragon","compatibility":1,"releases":[{"id":"01001BB013EAA000","region":null}]},{"id":"ef781323-7977-4921-8e2e-7d4f7240751f","directory":"awakening-of-cthulhu","title":"Awakening of Cthulhu","compatibility":99,"releases":[{"id":"0100085012D64000","region":null}]},{"id":"ef898738-6145-4131-aedc-4060772383ce","directory":"the-ninja-saviors-return-of-the-warriors","title":"The Ninja Saviors: Return of the Warriors","compatibility":2,"releases":[{"id":"0100AD100E8B2000","region":null}]},{"id":"ef8b51c7-a9b8-4580-881c-4d389ac1224a","directory":"dragon-ball-z-kakarot-a-new-power-awakens-set","title":"DRAGON BALL Z: KAKAROT + A NEW POWER AWAKENS SET","compatibility":2,"releases":[{"id":"010051C0134F8000","region":null}]},{"id":"ef8c3a82-b3a5-4724-9dbb-b7d4131fa5d8","directory":"destrobots","title":"Destrobots","compatibility":4,"releases":[{"id":"01008BB0113D6000","region":null}]},{"id":"ef9a47e7-f7b1-4398-a189-db0a807015e4","directory":"graveyard-keeper","title":"Graveyard Keeper","compatibility":2,"releases":[{"id":"0100B6800B5C8000","region":null}]},{"id":"efae2518-fa04-48e7-a2c6-8eeba4f4d4ca","directory":"doraemon-story-of-seasons","title":"DORAEMON  STORY OF SEASONS","compatibility":3,"releases":[{"id":"010073700E412000","region":null}]},{"id":"efd70e93-699e-4120-9e79-08562ad4fdca","directory":"kingdom-of-arcadia","title":"Kingdom of Arcadia","compatibility":0,"releases":[{"id":"0100B4E012CAC000","region":null}]},{"id":"efe0a9f2-4d9c-489f-898d-7f8f92a82dce","directory":"dark-fantasy-jigsaw-puzzle-2","title":"Dark Fantasy: Jigsaw Puzzle 2","compatibility":99,"releases":[{"id":"010047C0157AA000","region":null}]},{"id":"efe61778-ab2d-4ba3-af8a-d88f9cae2133","directory":"ice-cream-surfer","title":"Ice Cream Surfer","compatibility":1,"releases":[{"id":"010053700A25A000","region":null}]},{"id":"efef4f54-d2b7-4087-b0fc-db3647c99537","directory":"infinite-minigolf","title":"Infinite Minigolf","compatibility":2,"releases":[{"id":"010039C001296000","region":null}]},{"id":"efefbeb3-69f0-459d-9dc9-cf7062256a10","directory":"lego-ninjago-movie-video-game","title":"LEGO NINJAGO Movie Video Game","compatibility":3,"releases":[{"id":"01007FC00206E000","region":null}]},{"id":"eff2e343-2f0a-40ad-affd-e0e9ab114878","directory":"mahjong-adventure","title":"Mahjong Adventure","compatibility":99,"releases":[{"id":"01007C6013A3A000","region":null}]},{"id":"effe4595-a3ff-4020-9992-9c4cd33c4e71","directory":"double-pug-switch","title":"Double Pug Switch","compatibility":99,"releases":[{"id":"0100A5D00C7C0000","region":null}]},{"id":"f000ba9a-62bc-4e51-b1b8-97883a844fbf","directory":"talisman-digital-edition","title":"Talisman: Digital Edition","compatibility":5,"releases":[{"id":"0100BE300F6AA000","region":null}]},{"id":"f01ecf29-40ec-4b19-9a99-e211cc13d051","directory":"demons-of-asteborg","title":"Demons of Asteborg","compatibility":5,"releases":[{"id":"0100B92015538000","region":null}]},{"id":"f0232524-037e-4514-a1cc-2ec31daa9597","directory":"alex-kidd-in-miracle-world-dx","title":"Alex Kidd in Miracle World DX","compatibility":0,"releases":[{"id":"010025D01221A000","region":null}]},{"id":"f02b668e-66c2-4c72-bff8-7eb0c8aaf09f","directory":"treasure-stack","title":"Treasure Stack","compatibility":4,"releases":[{"id":"0100B3900B766000","region":null}]},{"id":"f037f085-2d74-4485-a8a3-951e971e25d4","directory":"trail-boss-bmx","title":"Trail Boss BMX","compatibility":99,"releases":[{"id":"010004901194A000","region":null}]},{"id":"f05165e2-7a4f-426a-b6e6-796854bf6882","directory":"perils-of-baking","title":"Perils of Baking","compatibility":99,"releases":[{"id":"01008CA00F7E0000","region":null}]},{"id":"f055e9f7-00a1-46db-9140-31e042bc09f5","directory":"commandos-2-hd-remaster","title":"Commandos 2 - HD Remaster","compatibility":1,"releases":[{"id":"010065A01158E000","region":null}]},{"id":"f0569d72-2f55-415e-84c7-8253366693ea","directory":"soccerdie-cosmic-cup","title":"SoccerDie: Cosmic Cup","compatibility":99,"releases":[{"id":"010074E00C872000","region":null}]},{"id":"f05b6eec-96a9-4995-8281-5a7eac04f6e6","directory":"dc-super-hero-girls-teen-power","title":"DC Super Hero Girls™: Teen Power","compatibility":2,"releases":[{"id":"0100F8F00C4F2000","region":null}]},{"id":"f05b7b27-8403-4359-8850-0c341271c447","directory":"arcade-archives-argus","title":"Arcade Archives ARGUS","compatibility":99,"releases":[{"id":"0100A5700AF32000","region":null}]},{"id":"f061d92f-52c9-4079-8a36-0894481fe78d","directory":"tauronos","title":"TAURONOS","compatibility":99,"releases":[{"id":"010076001311E000","region":null}]},{"id":"f070c47e-6873-4c51-889e-6bee05ef224e","directory":"katamari-damacy-reroll-demo","title":"Katamari Damacy REROLL Demo","compatibility":99,"releases":[{"id":"010065900CB3A000","region":null}]},{"id":"f0808d58-0eef-45ee-a420-9d3bf556b16c","directory":"go-vacation","title":"Go Vacation","compatibility":2,"releases":[{"id":"0100C1800A9B6000","region":null}]},{"id":"f081a10d-8f3d-455a-b347-42e7121bb52a","directory":"night-vision","title":"Night Vision","compatibility":99,"releases":[{"id":"0100C3801458A000","region":null}]},{"id":"f0976eef-30dd-436d-8364-53c03ae4725c","directory":"mo-astray","title":"MO:Astray","compatibility":99,"releases":[{"id":"010011300F74C000","region":null}]},{"id":"f098e5ec-6467-4551-867c-4de3d7f9bd0d","directory":"quake","title":"QUAKE","compatibility":5,"releases":[{"id":"0100BA5012E54000","region":null}]},{"id":"f09af212-1492-4011-ad89-f8651126941e","directory":"even-the-ocean","title":"Even the Ocean","compatibility":99,"releases":[{"id":"010061000D82C000","region":null}]},{"id":"f0a102b9-dfa3-4d7f-b727-b90891e47617","directory":"balloon-pop-for-toddlers-kids-learn-numbers-letters-colors-animals","title":"Balloon Pop for Toddlers & Kids - Learn Numbers, Letters, Colors & Animals","compatibility":99,"releases":[{"id":"0100C9301248E000","region":null}]},{"id":"f0af8179-b4a1-4051-8794-bc4b32c1e218","directory":"hashihime-of-the-old-book-town-append","title":"Hashihime of the Old Book Town append","compatibility":2,"releases":[{"id":"0100EA9015126000","region":null}]},{"id":"f0b3ac43-a759-4a0f-baa5-0aa3bcd64641","directory":"hitchhiker-a-mystery-game","title":"Hitchhiker - A Mystery Game","compatibility":99,"releases":[{"id":"010081400DB00000","region":null}]},{"id":"f0c8bcd6-5fa4-46d6-9519-ae11395db1ed","directory":"petal-crash","title":"Petal Crash","compatibility":99,"releases":[{"id":"010094100A55A000","region":null}]},{"id":"f0cc6a47-7173-478e-903d-8cc650368a9d","directory":"astrologaster","title":"Astrologaster","compatibility":99,"releases":[{"id":"0100B80010C48000","region":null}]},{"id":"f0d3ffd0-c3ce-4d80-b2bb-c6d779fa387d","directory":"maze-with-cube","title":"Maze with cube","compatibility":99,"releases":[{"id":"01008F8013BD0000","region":null}]},{"id":"f0e8532a-19c1-4533-a677-5481eef99bfb","directory":"rally-racer-offroad-racing-car-game","title":"Rally Racer: Offroad Racing Car Game","compatibility":99,"releases":[{"id":"010000A014E5A000","region":null}]},{"id":"f0f92e69-cb57-4b3b-9518-a7d60f022964","directory":"sega-ages-out-run","title":"SEGA AGES Out Run","compatibility":2,"releases":[{"id":"0100D4D00AC62000","region":null}]},{"id":"f0ff65dd-0c4b-4d24-8b6d-8472d7692a07","directory":"road-racing-highway-car-chase","title":"Road Racing: Highway Car Chase","compatibility":99,"releases":[{"id":"0100ED40162C4000","region":null}]},{"id":"f103d703-fc7b-4bca-a43c-00f22bb799cf","directory":"the-way-remastered","title":"The Way Remastered","compatibility":1,"releases":[{"id":"0100F8900A5B0000","region":null}]},{"id":"f10ea96b-d3ca-44c2-8e7e-24be17eb2e86","directory":"baobabs-mausoleum-demo","title":"Baobabs Mausoleum: DEMO","compatibility":99,"releases":[{"id":"0100D3000AEC2000","region":null}]},{"id":"f1111314-7ca8-4f23-9250-d1a87964d2fd","directory":"kirby-star-allies","title":"Kirby Star Allies","compatibility":1,"releases":[{"id":"01007E3006DDA000","region":null}]},{"id":"f1134512-9efe-4101-8b1a-e7943c2fa055","directory":"aqua-kitty-udx","title":"AQUA KITTY UDX","compatibility":1,"releases":[{"id":"0100AC10085CE000","region":null}]},{"id":"f11d1bea-2549-49dd-a881-ca09fd0f3ea3","directory":"sundered-eldritch-edition","title":"Sundered: Eldritch Edition","compatibility":1,"releases":[{"id":"01002D3007962000","region":null}]},{"id":"f132b3aa-2869-45e0-831a-51d4941ff1f0","directory":"pato-box","title":"Pato Box","compatibility":99,"releases":[{"id":"010031F006E76000","region":null}]},{"id":"f1337364-bac9-41de-9daa-f6f8da90a216","directory":"bustafellows","title":"BUSTAFELLOWS","compatibility":0,"releases":[{"id":"0100A9101418C000","region":null}]},{"id":"f142a456-7918-4ce2-8119-795ffd04afe6","directory":"pets-no-more","title":"Pets No More","compatibility":99,"releases":[{"id":"010084F0157AE000","region":null}]},{"id":"f1500e37-c58c-44e2-8bda-37096e5b65b1","directory":"balan-wonderworld","title":"BALAN WONDERWORLD","compatibility":4,"releases":[{"id":"0100438012EC8000","region":null}]},{"id":"f1540061-4f6d-477d-8ac0-c6cc48e14c0d","directory":"sega-ages-sonic-the-hedgehog","title":"SEGA AGES Sonic The Hedgehog","compatibility":1,"releases":[{"id":"010051F00AC5E000","region":null}]},{"id":"f1641591-2106-41b3-b2e3-d3fa0d4de2a7","directory":"simple-dominoes","title":"Simple Dominoes","compatibility":99,"releases":[{"id":"0100F5601653C000","region":null}]},{"id":"f1687838-362c-414a-aa40-a86b190b6da5","directory":"teacup","title":"Teacup","compatibility":99,"releases":[{"id":"0100172012F88000","region":null}]},{"id":"f1734cfa-19aa-47d2-bc19-c499dc3b6f2d","directory":"arcade-archives-64th-street","title":"Arcade Archives 64th. STREET","compatibility":0,"releases":[{"id":"01008CE0123CC000","region":null}]},{"id":"f17e3043-f7ec-4126-b750-f24775b30833","directory":"tetraminos","title":"Tetraminos","compatibility":99,"releases":[{"id":"010037A00BB02000","region":null}]},{"id":"f19ccc86-e1c3-4fda-97e8-1dcbf2409a00","directory":"starlight-shores","title":"Starlight Shores","compatibility":99,"releases":[{"id":"010014F01539E000","region":null}]},{"id":"f19e11e5-2777-4ec9-a460-e9e4b7462083","directory":"speedway-racing","title":"Speedway Racing","compatibility":99,"releases":[{"id":"0100AC00107B8000","region":null}]},{"id":"f1a0e985-e306-4c16-a26c-63bbf6c4c694","directory":"valentina","title":"Valentina","compatibility":99,"releases":[{"id":"0100A59012070000","region":null}]},{"id":"f1a300ae-4b5f-41f3-ba18-4d7bdd2ac583","directory":"paper-mario-the-origami-king","title":"Paper Mario™: The Origami King","compatibility":1,"releases":[{"id":"0100A3900C3E2000","region":null}]},{"id":"f1a60ad4-65fb-400b-8026-5eb6146975a0","directory":"azure-saga-pathfinder-deluxe-edition","title":"Azure Saga: Pathfinder DELUXE Edition","compatibility":1,"releases":[{"id":"010029E00C780000","region":null}]},{"id":"f1a783e0-7c52-4e75-9444-00e3cae008f9","directory":"tanuki-justice","title":"Tanuki Justice","compatibility":3,"releases":[{"id":"01007A601318C000","region":null}]},{"id":"f1ae6cf5-38ff-4d7b-8710-ebec2b45ec5e","directory":"naruto-shippuden-ultimate-ninja-storm-3-full-burst","title":"NARUTO SHIPPUDEN: Ultimate Ninja STORM 3 Full Burst","compatibility":1,"releases":[{"id":"01006BB00800A000","region":null}]},{"id":"f1e8bf58-9643-48a6-bd0b-b084edbfc01c","directory":"rally-road","title":"Rally Road","compatibility":99,"releases":[{"id":"010031900F66E000","region":null}]},{"id":"f1e922a2-34fd-427c-bb24-48d1505563c0","directory":"detective-gallo","title":"Detective Gallo","compatibility":1,"releases":[{"id":"01009C0009842000","region":null}]},{"id":"f1ec463e-0e3c-426e-94dd-2dfbc5e95413","directory":"bird-game","title":"Bird Game +","compatibility":99,"releases":[{"id":"01001B700B278000","region":null}]},{"id":"f1ec803a-e648-4d74-bf95-584bca3f1bad","directory":"nowhere-girl","title":"Nowhere Girl","compatibility":99,"releases":[{"id":"010041B014EC0000","region":null}]},{"id":"f1f75540-bbe8-4533-a4d5-a25cc41a6e6a","directory":"super-arcade-soccer","title":"Super Arcade Soccer","compatibility":99,"releases":[{"id":"01002EC009AEE000","region":null}]},{"id":"f1fe36f4-ec88-43fd-85cd-19cd03c42019","directory":"dead-fun-pack-penguins-and-aliens-strike-again","title":"Dead Fun Pack: Penguins and Aliens Strike Again","compatibility":99,"releases":[{"id":"01008D800A162000","region":null}]},{"id":"f20081bc-cd7c-48a2-830d-6c081c085c96","directory":"pikmin-3-deluxe","title":"Pikmin™ 3 Deluxe","compatibility":1,"releases":[{"id":"0100F4C009322000","region":null}]},{"id":"f21855db-d702-4d18-afe2-20cfbeebba86","directory":"aca-neogeo-aero-fighters-2","title":"ACA NEOGEO AERO FIGHTERS 2","compatibility":1,"releases":[{"id":"0100AC40038F4000","region":null}]},{"id":"f227486f-d7d9-402d-b663-b46003fd2621","directory":"energy-invasion","title":"Energy Invasion","compatibility":99,"releases":[{"id":"0100A8E0090B0000","region":null}]},{"id":"f22a0bd7-54e4-4c6b-8a9d-b3797cd13eae","directory":"strikers1945-for-nintendo-switch","title":"STRIKERS1945 for Nintendo Switch","compatibility":99,"releases":[{"id":"0100FF5005B76000","region":null}]},{"id":"f239c109-12de-4bef-a070-daaecdd7a437","directory":"johnny-turbos-arcade-shoot-out","title":"Johnny Turbo's Arcade: Shoot Out","compatibility":99,"releases":[{"id":"010007F00B9F0000","region":null}]},{"id":"f240ddd1-3237-4d5e-aa54-aa062a3beac7","directory":"farm-mystery","title":"Farm Mystery","compatibility":99,"releases":[{"id":"01000E400ED98000","region":null}]},{"id":"f241bcad-e3d9-4fdd-a157-06207ec63770","directory":"circle-of-sumo-online-rumble","title":"Circle of Sumo: Online Rumble!","compatibility":99,"releases":[{"id":"01009BB00F850000","region":null}]},{"id":"f2426cac-5fa3-495b-8ff3-234216c3fed6","directory":"arcade-archives-double-dragon","title":"Arcade Archives DOUBLE DRAGON","compatibility":4,"releases":[{"id":"0100F25001DD0000","region":null}]},{"id":"f2433fe6-7636-4feb-baa1-caec0bae5e86","directory":"gigantosaurus-the-game","title":"Gigantosaurus The Game","compatibility":3,"releases":[{"id":"01002C400E526000","region":null}]},{"id":"f248154d-5235-4edf-b576-653c2c99710c","directory":"kingdom-rush","title":"Kingdom Rush","compatibility":1,"releases":[{"id":"0100A280121F6000","region":null}]},{"id":"f24db6b2-99c6-4804-aec4-4ec02428b56d","directory":"space-invaders-invincible-collection","title":"Space Invaders Invincible Collection","compatibility":1,"releases":[{"id":"0100424012C94000","region":null}]},{"id":"f2706fe6-91b0-48a3-9a94-fb008470264f","directory":"who-wants-to-be-a-millionaire","title":"Who Wants to Be a Millionaire?","compatibility":1,"releases":[{"id":"010027F0128EA000","region":null}]},{"id":"f27387c4-5a68-44e0-a450-6fade3d13855","directory":"bdsm-big-drunk-satanic-massacre","title":"BDSM: Big Drunk Satanic Massacre","compatibility":1,"releases":[{"id":"01002FA00DE72000","region":null}]},{"id":"f27ea59f-91f8-4a7d-b22b-7a60cdf04fa8","directory":"arcade-archives-liquid-kids","title":"Arcade Archives Liquid Kids","compatibility":99,"releases":[{"id":"01009E7013B2A000","region":null}]},{"id":"f27ee8eb-0206-4b7c-bb02-ae2986e31dd8","directory":"human-fall-flat","title":"Human: Fall Flat","compatibility":1,"releases":[{"id":"01000CA004DCA000","region":null}]},{"id":"f2856fe5-e6d6-4529-bc47-a5651557eb49","directory":"artifact-adventure-gaiden-dx","title":"Artifact Adventure Gaiden DX","compatibility":99,"releases":[{"id":"0100CDD00DA70000","region":null}]},{"id":"f2880e12-5903-4603-b46e-6743ef1e58a2","directory":"panty-party","title":"Panty Party","compatibility":1,"releases":[{"id":"01002BD00CB86000","region":null}]},{"id":"f289d00d-3fc1-4d3c-8f7e-02ae7b6b144d","directory":"ihugu","title":"IHUGU","compatibility":99,"releases":[{"id":"0100C0F00CA9C000","region":null}]},{"id":"f293dac5-3a3c-4083-a3df-c3c44c8d03f7","directory":"valley","title":"Valley","compatibility":99,"releases":[{"id":"0100E0E00B108000","region":null}]},{"id":"f2ad6ac5-2424-4d2c-9a0e-8a6214200928","directory":"alpha","title":"ALPHA","compatibility":0,"releases":[{"id":"01000A800B998000","region":null}]},{"id":"f2c75850-2d4d-4642-9aac-352c622bc6db","directory":"spiral-splatter","title":"Spiral Splatter","compatibility":99,"releases":[{"id":"010023E008702000","region":null}]},{"id":"f2c7fff2-e7d2-462a-bc11-ff0f8993a7cb","directory":"flinthook","title":"Flinthook","compatibility":4,"releases":[{"id":"0100307004B4C000","region":null}]},{"id":"f2cd9d98-61a7-4d4a-affe-df7005281567","directory":"sky-roll","title":"Sky Roll!","compatibility":99,"releases":[{"id":"0100225014F64000","region":null}]},{"id":"f2cdc8a0-efb7-43b0-ae89-87f1d181e7bb","directory":"yomawari-the-long-night-collection","title":"Yomawari: The Long Night Collection","compatibility":0,"releases":[{"id":"010012F00B6F2000","region":null}]},{"id":"f2ce03b6-bed5-4dcf-8dac-9b59197dad71","directory":"wwe-2k18","title":"WWE 2K18","compatibility":5,"releases":[{"id":"010009800203E000","region":null}]},{"id":"f2d54780-8f61-4f7a-82c3-43f4729a33da","directory":"golf","title":"Golf","compatibility":1,"releases":[{"id":"01007D8010018000","region":null}]},{"id":"f2d5f9f4-63e1-4d6b-899f-5505470ebc49","directory":"lost-sphear-demo","title":"LOST SPHEAR Demo","compatibility":99,"releases":[{"id":"0100F5E008AA0000","region":null}]},{"id":"f2df3f9e-0fb6-4094-bc36-8ed9fda33e3d","directory":"skydrift-infinity","title":"Skydrift Infinity","compatibility":1,"releases":[{"id":"0100DE000BBDA000","region":null}]},{"id":"f2f6ceba-eb16-4c54-a95e-a8dc32facba3","directory":"lovechoice","title":"LoveChoice","compatibility":99,"releases":[{"id":"0100807015FF4000","region":null}]},{"id":"f30ed098-1601-43d1-a528-85accd296d16","directory":"paradise-lost","title":"Paradise Lost","compatibility":99,"releases":[{"id":"010077A012A5C000","region":null}]},{"id":"f32186fa-3bf0-42d1-b0f8-e200d026cb1c","directory":"pixel-game-maker-series-oumuamua","title":"Pixel Game Maker Series OUMUAMUA","compatibility":99,"releases":[{"id":"01006D90168A4000","region":null}]},{"id":"f326ac71-d297-406b-beed-34a045a93b86","directory":"in-celebration-of-violence","title":"In Celebration of Violence","compatibility":1,"releases":[{"id":"01004780112B6000","region":null}]},{"id":"f33757ba-892b-4526-b934-a2c4d0611be4","directory":"fun-fun-animal-park","title":"FUN! FUN! Animal Park","compatibility":1,"releases":[{"id":"010002F00CC20000","region":null}]},{"id":"f3379897-bb64-4d96-b156-ba8ebad4a5fd","directory":"little-nightmares-ii","title":"Little Nightmares II","compatibility":2,"releases":[{"id":"010097100EDD6000","region":null}]},{"id":"f339fb89-e574-45ee-8b8d-a20ac8a65632","directory":"powertris","title":"Powertris","compatibility":99,"releases":[{"id":"01001CA012F30000","region":null}]},{"id":"f36c5e5e-640e-45eb-baf1-fa9a4861a8ac","directory":"frane-dragons-odyssey","title":"Frane: Dragons' Odyssey","compatibility":99,"releases":[{"id":"0100C0C00DD0E000","region":null}]},{"id":"f372d540-352e-4c8d-b172-dfff81a8d9a8","directory":"get-10-quest","title":"Get 10 quest","compatibility":99,"releases":[{"id":"01006F30129F8000","region":null}]},{"id":"f3765d78-467e-4bda-b75e-b23d6391afce","directory":"autumns-journey","title":"Autumn's Journey","compatibility":99,"releases":[{"id":"01001EC013576000","region":null}]},{"id":"f378e1ed-383d-4225-b8d4-d537839752b0","directory":"escape-first-3","title":"Escape First 3","compatibility":1,"releases":[{"id":"010057801486C000","region":null}]},{"id":"f37cc649-020d-4a42-b1dc-2b4e098772da","directory":"juiced","title":"Juiced!","compatibility":99,"releases":[{"id":"0100F7C012D68000","region":null}]},{"id":"f3859922-d162-4d7b-acfd-f5403987c6dd","directory":"two-parsecs-from-earth","title":"Two Parsecs From Earth","compatibility":99,"releases":[{"id":"0100BCE012894000","region":null}]},{"id":"f39f1bc3-573c-44dc-ad5f-d2cdecde6621","directory":"drawful-2","title":"Drawful 2","compatibility":5,"releases":[{"id":"0100F7800A434000","region":null}]},{"id":"f3a51815-b81b-4936-b782-22ace2a72a07","directory":"blast-brawl-2","title":"Blast Brawl 2","compatibility":99,"releases":[{"id":"01001E900EC04000","region":null}]},{"id":"f3affad9-9552-4d2e-a8c9-4885a6757fbd","directory":"zumania-magic-casual-puzzle","title":"Zumania - Magic Casual Puzzle","compatibility":99,"releases":[{"id":"0100D6E015CFC000","region":null}]},{"id":"f3ba1aca-83f7-446a-80c2-ae2f6ad1276c","directory":"grip","title":"GRIP","compatibility":2,"releases":[{"id":"0100459009A2A000","region":null}]},{"id":"f3bd21e1-0ac6-47ec-be45-cfdc234bfdbb","directory":"street-basketball","title":"Street Basketball","compatibility":99,"releases":[{"id":"0100E7A00DAC2000","region":null}]},{"id":"f3c76348-235d-486c-a001-2cf1dd12fe88","directory":"my-riding-stables-life-with-horses","title":"My Riding Stables - Life with Horses","compatibility":99,"releases":[{"id":"010034300BFC4000","region":null}]},{"id":"f3d0ff93-e5d5-48e5-a2ed-3d33c1f4d401","directory":"brief-battles","title":"Brief Battles","compatibility":99,"releases":[{"id":"0100F4500BBCC000","region":null}]},{"id":"f3dbc93b-faf9-4995-a08d-5e8f0901ad5e","directory":"a-chti-bundle","title":"A Ch'ti Bundle","compatibility":99,"releases":[{"id":"010096A00CC80000","region":null}]},{"id":"f3e76cc4-07b6-46f0-a2d5-690a6c16a700","directory":"pool-pro-gold","title":"Pool Pro GOLD","compatibility":99,"releases":[{"id":"010070B01260C000","region":null}]},{"id":"f3f142c9-fd8e-48e2-890c-c34d5895a16e","directory":"miniature-the-story-puzzle","title":"Miniature - The Story Puzzle","compatibility":99,"releases":[{"id":"010039200EC66000","region":null}]},{"id":"f3f36a74-5148-4266-ab29-a2294df82749","directory":"picross-s-genesis-master-system-edition","title":"PICROSS S GENESIS & Master System edition","compatibility":0,"releases":[{"id":"010089701567A000","region":null}]},{"id":"f3f63766-cae4-4a32-a8a7-86be128d2d10","directory":"persian-nights-sands-of-wonders","title":"Persian Nights: Sands of Wonders","compatibility":1,"releases":[{"id":"010023100B96E000","region":null}]},{"id":"f41ba445-0e9a-4598-9eb7-c4cad7d15e65","directory":"99seconds","title":"99Seconds","compatibility":5,"releases":[{"id":"0100BA800CA6A000","region":null}]},{"id":"f4205221-b981-4916-a351-58e7f68307e8","directory":"arcade-archives-wiz","title":"Arcade Archives Wiz","compatibility":99,"releases":[{"id":"0100ABB00E352000","region":null}]},{"id":"f4420d76-62ef-4492-acd2-768ef6e66700","directory":"tiny-racer","title":"Tiny Racer","compatibility":99,"releases":[{"id":"01005D0011A40000","region":null}]},{"id":"f44c4ab1-c686-4bb9-a623-f19e64c6f6ce","directory":"knights-guns","title":"Knights & Guns","compatibility":99,"releases":[{"id":"010060A011ECC000","region":null}]},{"id":"f44db9f0-2129-473c-bd82-a33d3be87f38","directory":"go-birdie","title":"Go! Birdie","compatibility":99,"releases":[{"id":"010073E014BAE000","region":null}]},{"id":"f45994aa-0249-4bf5-b810-89b42a4649cc","directory":"my-last-first-kiss","title":"My Last First Kiss","compatibility":99,"releases":[{"id":"01004800160C8000","region":null}]},{"id":"f460f3f8-5ac6-404b-99d1-caa76de600fa","directory":"billion-road","title":"Billion Road","compatibility":99,"releases":[{"id":"010057700FF7C000","region":null}]},{"id":"f469b8ab-dd8e-4570-824d-c7cdecb1cd3c","directory":"asterix-obelix-xxl-romastered","title":"Asterix & Obelix XXL: Romastered","compatibility":3,"releases":[{"id":"0100F46011B50000","region":null}]},{"id":"f46eb660-f84b-444b-be9c-bf1c9d412368","directory":"starship-avenger-operation-take-back-earth","title":"STARSHIP AVENGER Operation: Take Back Earth","compatibility":1,"releases":[{"id":"01001BB00AC26000","region":null}]},{"id":"f483a0b3-307a-435b-addd-6ce0a94f0175","directory":"aca-neogeo-art-of-fighting-3","title":"ACA NEOGEO ART OF FIGHTING 3","compatibility":99,"releases":[{"id":"01004AC002B40000","region":null}]},{"id":"f4888402-2c66-4fef-a008-cd3410cbf104","directory":"radio-squid","title":"Radio Squid","compatibility":99,"releases":[{"id":"0100655012064000","region":null}]},{"id":"f4890921-2a07-43e4-b35e-be9b02dc2405","directory":"super-destronaut-land-wars","title":"Super Destronaut: Land Wars","compatibility":99,"releases":[{"id":"0100575011092000","region":null}]},{"id":"f4949e96-0a9f-4ded-83d5-34ead8e9172a","directory":"dungeon-adventure","title":"Dungeon Adventure","compatibility":99,"releases":[{"id":"0100610016C82000","region":null}]},{"id":"f49b94f9-f7cb-4b06-a594-8371504afeb7","directory":"dig-dog","title":"Dig Dog","compatibility":3,"releases":[{"id":"0100A5A00DBB0000","region":null}]},{"id":"f49ccb4c-1bf0-4654-8e72-9f8fb2c0ccb7","directory":"wordify","title":"Wordify","compatibility":99,"releases":[{"id":"010083E011BC8000","region":null}]},{"id":"f4a142af-77a5-45e2-aa9f-381fbcc5cd2b","directory":"basketball","title":"Basketball","compatibility":99,"releases":[{"id":"01008F600CA1A000","region":null}]},{"id":"f4aa1a68-1d6a-44a4-bfca-6785f9888e81","directory":"fibbage-xl","title":"Fibbage XL","compatibility":99,"releases":[{"id":"01002AC0113DE000","region":null}]},{"id":"f4bd3a8e-2dc1-428f-ac30-059406b27647","directory":"aca-neogeo-savage-reign","title":"ACA NEOGEO SAVAGE REIGN","compatibility":99,"releases":[{"id":"0100E5400AFC8000","region":null}]},{"id":"f4c1d231-1173-42eb-a1e9-7143f58a5981","directory":"a-little-lily-princess","title":"A Little Lily Princess","compatibility":99,"releases":[{"id":"01004E0014FC6000","region":null}]},{"id":"f4cd22c2-bf56-49ae-8f0b-94debf546d45","directory":"taninani","title":"TaniNani","compatibility":99,"releases":[{"id":"01007DB010D2C000","region":null}]},{"id":"f4d32079-455d-410e-a74a-97f899ba2fe0","directory":"georifters","title":"Georifters","compatibility":99,"releases":[{"id":"0100C11010298000","region":null}]},{"id":"f4de6480-7a86-4729-a8a4-3cda52845911","directory":"thunderflash","title":"Thunderflash","compatibility":99,"releases":[{"id":"0100EF5013140000","region":null}]},{"id":"f4e332a8-4fd3-462a-8795-2f7988e8b5bb","directory":"push-ups-workout","title":"Push-Ups Workout","compatibility":99,"releases":[{"id":"01002F2014984000","region":null}]},{"id":"f4f2f50f-3676-4f8b-bbc7-f30299f16346","directory":"aca-neogeo-samurai-shodown-v","title":"ACA NEOGEO SAMURAI SHODOWN V","compatibility":99,"releases":[{"id":"01000C800AFD6000","region":null}]},{"id":"f4f65943-c779-41ca-a5f5-2ed58e4368f4","directory":"moto-rider-go-highway-traffic","title":"Moto Rider GO: Highway Traffic","compatibility":99,"releases":[{"id":"0100953015526000","region":null}]},{"id":"f4f8587d-a510-4300-a4f0-3de7151eead6","directory":"street-racing-tokyo-rush","title":"Street Racing: Tokyo Rush","compatibility":99,"releases":[{"id":"01001E901482A000","region":null}]},{"id":"f50761a1-d198-4e00-8896-b317af178106","directory":"swords-and-sandals-spartacus","title":"Swords and Sandals: Spartacus","compatibility":0,"releases":[{"id":"0100241012432000","region":null}]},{"id":"f50c55b7-29f7-48c5-ad3c-e83d90bb35df","directory":"reaper-tale-of-a-pale-swordsman","title":"Reaper: Tale of a Pale Swordsman","compatibility":0,"releases":[{"id":"01000F300F082000","region":null}]},{"id":"f5259adc-ff7b-428e-9b2a-c827dcd395ba","directory":"next-up-hero","title":"Next Up Hero","compatibility":0,"releases":[{"id":"0100271004570000","region":null}]},{"id":"f5322a63-7a33-407a-b3a2-e0a101582a95","directory":"atomik-rungunjumpgun","title":"ATOMIK: RunGunJumpGun","compatibility":0,"releases":[{"id":"01000D1006CEC000","region":null}]},{"id":"f532c28c-5300-46b5-b064-16042e8c3499","directory":"agartha-s","title":"AGARTHA-S","compatibility":99,"releases":[{"id":"010076700CA18000","region":null}]},{"id":"f538c7c0-d78c-468f-ab59-fa00391920ad","directory":"calculation-castle-grecos-ghostly-challenge-division","title":"Calculation Castle : Greco's Ghostly Challenge \"Division \"","compatibility":99,"releases":[{"id":"010045500B212000","region":null}]},{"id":"f53db1cc-2d5e-4fe4-897f-36f7ecbf3b16","directory":"purrs-in-heaven","title":"Purrs In Heaven","compatibility":1,"releases":[{"id":"0100A71010B9C000","region":null}]},{"id":"f5401e9f-ac8a-4c69-9e83-92bfc4b3581e","directory":"neon-drive","title":"Neon Drive","compatibility":99,"releases":[{"id":"010032000EAC6000","region":null}]},{"id":"f54817b8-c08d-4a3d-9c01-be8bd0287788","directory":"counter-recon-the-first-mission","title":"Counter Recon: The First Mission","compatibility":99,"releases":[{"id":"010005A0143CC000","region":null}]},{"id":"f54dc608-026b-46b9-9754-b2f189c122d9","directory":"infinite-beyond-the-mind","title":"Infinite - Beyond the Mind","compatibility":99,"releases":[{"id":"010085D0101A4000","region":null}]},{"id":"f55176a6-5f56-4e48-85d8-0c2da278a1a2","directory":"galacide","title":"Galacide","compatibility":99,"releases":[{"id":"0100E9100F244000","region":null}]},{"id":"f55177dd-b9fc-449e-8590-0267d110d31f","directory":"super-street-racer","title":"Super Street: Racer","compatibility":3,"releases":[{"id":"010074200E910000","region":null}]},{"id":"f560165b-73cd-49a6-843d-8c5eb221f760","directory":"johnny-turbos-arcade-fighters-history","title":"Johnny Turbo's Arcade: Fighter's History","compatibility":4,"releases":[{"id":"0100B3F00B9F2000","region":null}]},{"id":"f564b7c9-e3aa-45de-9146-ee19233116d2","directory":"speedrunners","title":"SpeedRunners","compatibility":99,"releases":[{"id":"0100C8B00C4AE000","region":null}]},{"id":"f567c83a-a549-42a3-a406-464f8234d838","directory":"girabox","title":"Girabox","compatibility":99,"releases":[{"id":"01006BA013990000","region":null}]},{"id":"f56d1a68-1097-434e-b09d-b183af4073c0","directory":"mechstermination-force","title":"Mechstermination Force","compatibility":3,"releases":[{"id":"0100E4600D31A000","region":null}]},{"id":"f59b8462-c17a-4926-bb04-aeefcae22641","directory":"the-game-of-life-2","title":"THE GAME OF LIFE 2","compatibility":0,"releases":[{"id":"0100B620139D8000","region":null}]},{"id":"f5ba1e08-f2f7-4690-b12e-2e8a57042346","directory":"commander-keen-in-keen-dreams","title":"Commander Keen in Keen Dreams","compatibility":99,"releases":[{"id":"0100C4D00D16A000","region":null}]},{"id":"f5be271b-01cb-4c05-b08f-b36326affbf6","directory":"birds-and-blocks","title":"Birds and Blocks","compatibility":99,"releases":[{"id":"010084B012FF0000","region":null}]},{"id":"f5c6b1e4-91af-46db-a8f5-c415f189bee9","directory":"arcade-archives-the-ninja-warriors","title":"Arcade Archives THE NINJA WARRIORS","compatibility":4,"releases":[{"id":"0100DC000983A000","region":null}]},{"id":"f5cbe983-f07c-4bf7-8bc0-14e203d1b94c","directory":"within-the-blade","title":"Within the Blade","compatibility":99,"releases":[{"id":"0100BE5011486000","region":null}]},{"id":"f5cd6279-9416-48f6-942a-fc16344d82b4","directory":"my-farm","title":"My Farm","compatibility":99,"releases":[{"id":"010021F00AD76000","region":null}]},{"id":"f5e9d60b-2956-4692-9c0b-89e0aba9117e","directory":"frederic-resurrection-of-music","title":"Frederic: Resurrection of Music","compatibility":5,"releases":[{"id":"01005B1006988000","region":null}]},{"id":"f5f0fca5-c640-4e0f-a86e-d08e81858e9a","directory":"doodle-god-evolution","title":"Doodle God: Evolution","compatibility":3,"releases":[{"id":"0100D3200AF74000","region":null}]},{"id":"f5f2c651-82fa-44aa-a9ff-97a37825e41a","directory":"metro-2033-redux","title":"Metro 2033 Redux","compatibility":3,"releases":[{"id":"0100D4900E82C000","region":null}]},{"id":"f5f9afcb-d19c-4907-a40c-3ed407dd3a0e","directory":"shape-of-the-world","title":"Shape of the World","compatibility":3,"releases":[{"id":"0100B25009B96000","region":null}]},{"id":"f60c2502-f211-4c27-a79c-64be87bd04c0","directory":"tennis-go","title":"Tennis Go","compatibility":99,"releases":[{"id":"010029F00FCC4000","region":null}]},{"id":"f624d8f7-8c24-40e5-92d6-c0319623c129","directory":"super-cable-boy","title":"Super Cable Boy","compatibility":0,"releases":[{"id":"01008260145F2000","region":null}]},{"id":"f625cee2-8fce-4457-b950-64e112b3ef5b","directory":"infection-board-game","title":"Infection - Board Game","compatibility":99,"releases":[{"id":"0100A7F01283C000","region":null}]},{"id":"f626856e-210d-4c66-933a-764891545f15","directory":"jessika","title":"Jessika","compatibility":99,"releases":[{"id":"0100457015902000","region":null}]},{"id":"f6291ae3-c7d7-4984-a2cc-da0bcfc9e32f","directory":"skies-of-fury-dx","title":"Skies of Fury DX","compatibility":1,"releases":[{"id":"0100D67006F14000","region":null}]},{"id":"f6313eb0-2612-4e65-a70c-fce2d5a4e17b","directory":"art-of-rally","title":"art of rally","compatibility":1,"releases":[{"id":"0100A88012504000","region":null}]},{"id":"f64f82dd-efd8-4f73-878b-f6aafc7161f4","directory":"heave-ho","title":"Heave Ho","compatibility":1,"releases":[{"id":"0100ADD00E17E000","region":null}]},{"id":"f65f2639-c959-40a2-b955-2f09bc48130b","directory":"qbics-paint","title":"Qbics Paint","compatibility":99,"releases":[{"id":"0100A8D003BAE000","region":null}]},{"id":"f66095ed-28a1-4f84-9ee2-af2d6f969788","directory":"ultra-age","title":"Ultra Age","compatibility":0,"releases":[{"id":"01008D4015904000","region":null}]},{"id":"f66ddc9e-f436-4cfd-a4c6-e2df3e3ba479","directory":"speed-3-grand-prix","title":"Speed 3: Grand Prix","compatibility":99,"releases":[{"id":"0100F18010BA0000","region":null}]},{"id":"f66e4139-ec83-4517-96a7-e8e5f48a1e7d","directory":"car-mayhem","title":"Car Mayhem","compatibility":99,"releases":[{"id":"010021200E062000","region":null}]},{"id":"f6747554-c66d-4add-97e9-7bc3da2d7dfb","directory":"sakura-succubus-4","title":"Sakura Succubus 4","compatibility":0,"releases":[{"id":"010029D015BD2000","region":null}]},{"id":"f6748c07-73c3-43c6-ab6b-ee1a96621fb8","directory":"quench","title":"Quench","compatibility":99,"releases":[{"id":"010005300EDCC000","region":null}]},{"id":"f6860cd9-fe3c-4ecc-9491-f3b0cb6e76b0","directory":"underland","title":"Underland","compatibility":99,"releases":[{"id":"0100C94015CBA000","region":null}]},{"id":"f68a11e0-92ab-48ec-a62e-0d4810b76c22","directory":"arc-of-alchemist","title":"Arc of Alchemist","compatibility":99,"releases":[{"id":"0100C7D00E6A0000","region":null}]},{"id":"f6989962-fdf8-4288-99aa-d9d8e380e40a","directory":"jump-gunners","title":"Jump Gunners","compatibility":99,"releases":[{"id":"0100EBE00FDC0000","region":null}]},{"id":"f698e37e-062a-456c-a7f2-1b4dbed5bf0f","directory":"sudoku-relax-4-winter-snow","title":"Sudoku Relax 4 Winter Snow","compatibility":99,"releases":[{"id":"010010E010AAA000","region":null}]},{"id":"f6a477ba-3c76-4620-8141-79a49bc3342e","directory":"arcade-archives-mx5000","title":"Arcade Archives MX5000","compatibility":99,"releases":[{"id":"0100ACB010ED2000","region":null}]},{"id":"f6aa72e5-0fff-4917-9100-bb08d5e37b43","directory":"divinity-original-sin-2-definitive-edition","title":"Divinity: Original Sin 2 - Definitive Edition","compatibility":3,"releases":[{"id":"010027400CDC6000","region":null}]},{"id":"f6baeeea-e6f5-42b2-aaef-09b89fc2b144","directory":"mario-tennis-aces-special-online-demo","title":"Mario Tennis™ Aces Special Online Demo","compatibility":99,"releases":[{"id":"0100A4200DA76000","region":null}]},{"id":"f6c2e98b-03f5-4f5d-9e54-70eaded85ede","directory":"crocs-world","title":"Croc's World","compatibility":3,"releases":[{"id":"01004F800C4DA000","region":null}]},{"id":"f6c6314e-2d42-4e48-a57b-f25ddc726ac2","directory":"tactical-mind-2","title":"Tactical Mind 2","compatibility":99,"releases":[{"id":"0100BD700F5F0000","region":null}]},{"id":"f6ca6345-ef46-46d3-844e-b45ea8329c27","directory":"electronic-super-joy","title":"Electronic Super Joy","compatibility":99,"releases":[{"id":"0100A3000F070000","region":null}]},{"id":"f6cee2bc-488e-42db-b35e-e1693df80edd","directory":"starcrossed","title":"StarCrossed","compatibility":99,"releases":[{"id":"010022500C964000","region":null}]},{"id":"f6d14e57-3179-4e5d-bfe6-76fdaccbf470","directory":"zotrix-solar-division","title":"Zotrix: Solar Division","compatibility":99,"releases":[{"id":"01001EE00A6B0000","region":null}]},{"id":"f6dad735-6bee-4f97-93c7-b41a6724d08b","directory":"mimic-hunter","title":"Mimic Hunter","compatibility":99,"releases":[{"id":"010024A00C854000","region":null}]},{"id":"f6dc7427-502f-4ae0-8d3a-d9d2179ae996","directory":"panmorphia","title":"Panmorphia","compatibility":99,"releases":[{"id":"01004E6016370000","region":null}]},{"id":"f6e264e4-ec96-4ae9-9612-dd384650325e","directory":"treachery-in-beatdown-city","title":"Treachery in Beatdown City","compatibility":0,"releases":[{"id":"0100B0600ABE6000","region":null}]},{"id":"f6e38620-27b3-449a-b50d-e8f4d02c7e0f","directory":"black-and-white-bushido","title":"Black and White Bushido","compatibility":99,"releases":[{"id":"010000F00BF68000","region":null}]},{"id":"f6e8cd75-9736-4256-ad86-2c8fdb9dcc3a","directory":"in-between","title":"In Between","compatibility":99,"releases":[{"id":"010038200A98E000","region":null}]},{"id":"f6eaf063-57e6-4c46-9ca4-8b19ea3f0431","directory":"hello-neighbor-hide-and-seek","title":"Hello Neighbor Hide and Seek","compatibility":3,"releases":[{"id":"010092B00C4F0000","region":null}]},{"id":"f6f0f3db-7e3d-4e9e-92b9-055600a8059f","directory":"wildtrax-racing","title":"WildTrax Racing","compatibility":2,"releases":[{"id":"0100A0501185A000","region":null}]},{"id":"f70137ac-9257-4e7d-b874-99a91ac1e179","directory":"the-escapists-complete-edition","title":"The Escapists: Complete Edition","compatibility":1,"releases":[{"id":"01001B700BA7C000","region":null}]},{"id":"f70332a2-68f0-4ad9-9254-e81c2257ccb7","directory":"uurnog-uurnlimited","title":"Uurnog Uurnlimited","compatibility":1,"releases":[{"id":"0100F55004AB8000","region":null}]},{"id":"f70c5f9a-40d8-432b-9259-c5ac8c58e595","directory":"world-of-final-fantasy-maxima","title":"WORLD OF FINAL FANTASY MAXIMA","compatibility":1,"releases":[{"id":"010072000BD32000","region":null}]},{"id":"f714a07b-e7a0-48c7-9ee6-5f3fb940318f","directory":"toki-tori","title":"Toki Tori","compatibility":2,"releases":[{"id":"0100EE80098E6000","region":null}]},{"id":"f71c7de0-5aee-4340-ad1b-87cd8f34e4b6","directory":"solitaire-battle-royal","title":"SOLITAIRE BATTLE ROYAL","compatibility":99,"releases":[{"id":"0100B4700BDBA000","region":null}]},{"id":"f7213688-622d-41e9-baed-be9c7dd6443d","directory":"ninja-epic-adventure","title":"Ninja Epic Adventure","compatibility":99,"releases":[{"id":"0100FA6014264000","region":null}]},{"id":"f7233cf2-7dcb-4fb0-be7d-e27f91abba84","directory":"piczle-lines-dx-500-more-puzzles","title":"Piczle Lines DX 500 More Puzzles!","compatibility":99,"releases":[{"id":"010017600B532000","region":null}]},{"id":"f7234f8b-3459-43f1-be1b-9eecd4b700e6","directory":"hyperide","title":"Hyperide","compatibility":99,"releases":[{"id":"010091000CC0E000","region":null}]},{"id":"f726526f-fc6d-44b2-9018-bdde2cb484a4","directory":"mahjong","title":"Mahjong","compatibility":99,"releases":[{"id":"010014B00BB04000","region":null}]},{"id":"f72a7eb7-f9ac-4ef1-9be4-b260f717d351","directory":"arcade-archives-zero-team","title":"Arcade Archives ZERO TEAM","compatibility":0,"releases":[{"id":"0100EFF0137DA000","region":null}]},{"id":"f73dbbbc-9837-4678-9c13-5ebd6879777e","directory":"otherworldly","title":"Otherworldly","compatibility":99,"releases":[{"id":"0100DBB010EB8000","region":null}]},{"id":"f73f2052-4031-4567-bd48-335099fdd6ce","directory":"harvest-moon-mad-dash","title":"Harvest Moon: Mad Dash","compatibility":0,"releases":[{"id":"010022400E71C000","region":null}]},{"id":"f73fb744-9e3e-4311-8c52-8b5a7e178480","directory":"loopindex","title":"Loopindex","compatibility":99,"releases":[{"id":"0100AD90153C8000","region":null}]},{"id":"f744cea2-e96f-4f81-9afe-adfaf05c5cca","directory":"white-girl","title":"White Girl","compatibility":99,"releases":[{"id":"0100102014B16000","region":null}]},{"id":"f7460a42-9c0e-4983-aa8c-fe663df4249b","directory":"tandem-a-tale-of-shadows","title":"Tandem : A Tale of Shadows","compatibility":99,"releases":[{"id":"0100B7A015362000","region":null}]},{"id":"f750db63-ab8e-4ed6-8c50-24692e3c4ee3","directory":"super-chariot-demo","title":"Super Chariot Demo","compatibility":99,"releases":[{"id":"0100B7B009532000","region":null}]},{"id":"f75da884-064f-4315-9ce0-4f04b4cca71d","directory":"senran-kagura-peach-ball","title":"SENRAN KAGURA Peach Ball","compatibility":0,"releases":[{"id":"0100D1800D902000","region":null}]},{"id":"f75fa583-e7b2-47da-b18f-e6f86c26f461","directory":"oniria-crimes","title":"Oniria Crimes","compatibility":99,"releases":[{"id":"0100A290131BA000","region":null}]},{"id":"f76259ad-b0e8-4805-a2ff-5063ddc9d2e6","directory":"ghost-grab-3000","title":"Ghost Grab 3000","compatibility":99,"releases":[{"id":"010057500E744000","region":null}]},{"id":"f768e414-97b3-44a8-96ba-327ff8f81e65","directory":"sushiparty","title":"SushiParty","compatibility":99,"releases":[{"id":"01005FC013414000","region":null}]},{"id":"f7825cd3-0bc2-423e-b02e-3731e0a628a1","directory":"elliot","title":"Elliot","compatibility":99,"releases":[{"id":"0100D85013754000","region":null}]},{"id":"f783d214-e411-4da2-a468-9a6e5f9a0980","directory":"gas-station-highway-services","title":"Gas Station: Highway Services","compatibility":99,"releases":[{"id":"010032D012602000","region":null}]},{"id":"f78944be-7bb2-415a-8dee-9b0e324d119e","directory":"doodle-games-bundle","title":"Doodle Games Bundle","compatibility":99,"releases":[{"id":"010002B013452000","region":null}]},{"id":"f78ba72b-8c11-4b63-8a4b-f42c32633822","directory":"devious-dungeon-2","title":"Devious Dungeon 2","compatibility":99,"releases":[{"id":"0100F1800DD4E000","region":null}]},{"id":"f79f5d82-c287-4191-91c1-1adf54082fb7","directory":"sky-force-reloaded","title":"Sky Force Reloaded","compatibility":1,"releases":[{"id":"01006FE005B6E000","region":null}]},{"id":"f7ac967a-e96a-4ca1-a7e6-f3b8f3d924aa","directory":"evergate","title":"Evergate","compatibility":99,"releases":[{"id":"01009C4012284000","region":null}]},{"id":"f7bcd1a9-7c56-4a36-b749-52d63db9caa2","directory":"aca-neogeo-over-top","title":"ACA NEOGEO OVER TOP","compatibility":4,"releases":[{"id":"01003A5001DBA000","region":null}]},{"id":"f7c81f12-b6a3-4301-a5ef-1accf4157a40","directory":"bargain-hunter","title":"Bargain Hunter","compatibility":0,"releases":[{"id":"01005F600D2D8000","region":null}]},{"id":"f7dac82c-8a2a-433c-9650-3b513687d3d0","directory":"wood-block-escape-puzzles-2","title":"Wood Block Escape Puzzles 2","compatibility":99,"releases":[{"id":"01001F2014CCC000","region":null}]},{"id":"f7e71524-840e-4409-8bb0-83a4be8e3fb4","directory":"arcade-archives-rod-land","title":"Arcade Archives Rod Land","compatibility":99,"releases":[{"id":"01000C2013972000","region":null}]},{"id":"f7ed597e-be4a-4167-a408-c9fa9db3e442","directory":"grisaia-phantom-trigger-05","title":"GRISAIA PHANTOM TRIGGER 05","compatibility":99,"releases":[{"id":"01002330123BC000","region":null}]},{"id":"f7f39298-ef2a-4d4a-a575-c0d349fd3a8d","directory":"swords-and-soldiers","title":"Swords & Soldiers","compatibility":99,"releases":[{"id":"010019500B69A000","region":null}]},{"id":"f7f6d869-ead7-4a0a-9854-1985d635b376","directory":"warriorb","title":"WarriOrb","compatibility":99,"releases":[{"id":"010032700EAC4000","region":null}]},{"id":"f804d592-795e-4505-9266-057164e343dd","directory":"mahjong-stories-vampire-romance","title":"Mahjong Stories: Vampire Romance","compatibility":0,"releases":[{"id":"0100BAA00CDFA000","region":null}]},{"id":"f805a325-6396-4cc1-a224-bc2b7ea6d47a","directory":"ghoulboy","title":"Ghoulboy","compatibility":0,"releases":[{"id":"0100A9500C606000","region":null}]},{"id":"f80739d5-f2ff-4984-bb51-9781b4cbe85b","directory":"aca-neogeo-metal-slug-5","title":"ACA NEOGEO METAL SLUG 5","compatibility":5,"releases":[{"id":"01004C000AFDC000","region":null}]},{"id":"f8181daa-1873-4e2c-a54d-5dd3fbada0d1","directory":"outbreak-epidemic","title":"Outbreak: Epidemic","compatibility":99,"releases":[{"id":"0100C850130FE000","region":null}]},{"id":"f81a3dcc-aca9-4b6b-89a5-b8971ac63ad5","directory":"tiny-gladiators","title":"Tiny Gladiators","compatibility":99,"releases":[{"id":"0100DF900FC52000","region":null}]},{"id":"f8311a6c-5ad6-4e71-a24d-25825f9ce592","directory":"where-angels-cry-tears-of-the-fallen-collectors-edition","title":"Where Angels Cry: Tears of the Fallen Collector's Edition","compatibility":99,"releases":[{"id":"01008F30107F8000","region":null}]},{"id":"f8369515-3bba-46a3-bf2f-8faba455d650","directory":"habroxia","title":"Habroxia","compatibility":99,"releases":[{"id":"01007E100EFA8000","region":null}]},{"id":"f8394654-c12e-4340-b9b4-da6433bad3f5","directory":"modern-tales-age-of-invention","title":"Modern Tales: Age of Invention","compatibility":99,"releases":[{"id":"010004900D772000","region":null}]},{"id":"f83ada34-f86a-4117-98f4-93ff5e405fa9","directory":"real-driving-sim","title":"Real Driving Sim","compatibility":0,"releases":[{"id":"0100748012ABE000","region":null}]},{"id":"f8445d7b-1bb1-45a3-9990-1c992eacc809","directory":"bass-pro-shops-the-strike-championship-edition","title":"Bass Pro Shops: The Strike - Championship Edition","compatibility":4,"releases":[{"id":"0100E3100450E000","region":null}]},{"id":"f8483da0-922d-4812-bb51-7377db922e7b","directory":"couch-co-op-bundle-vol-2","title":"Couch Co-Op Bundle Vol. 2","compatibility":99,"releases":[{"id":"01000E301107A000","region":null}]},{"id":"f851f346-c484-4471-b7e7-9239c47e2bdc","directory":"legend-of-numbers","title":"Legend of Numbers","compatibility":99,"releases":[{"id":"0100EDA013C08000","region":null}]},{"id":"f85aca9b-0337-4700-a3f0-f7bf5a7c1826","directory":"video-poker-collection","title":"Video Poker Collection","compatibility":99,"releases":[{"id":"0100FFE012842000","region":null}]},{"id":"f863671e-b5b3-41a3-b18e-b9657e821e4c","directory":"collide-a-ball-2","title":"Collide-a-Ball 2","compatibility":99,"releases":[{"id":"01009E700EEA6000","region":null}]},{"id":"f8636966-6596-43e1-849d-6a2c1d51eb36","directory":"wanba-warriors","title":"Wanba Warriors","compatibility":99,"releases":[{"id":"0100E29010A4A000","region":null}]},{"id":"f8737ad8-e0ef-4132-9a82-7a8f4e8a2d6e","directory":"friday-the-13th-killer-puzzle","title":"Friday the 13th: Killer Puzzle","compatibility":4,"releases":[{"id":"010003F00BD48000","region":null}]},{"id":"f875921a-ade0-41c2-85a9-920270d500a1","directory":"monomals","title":"Monomals","compatibility":99,"releases":[{"id":"01003030161DC000","region":null}]},{"id":"f88339c7-6528-4427-9339-446856c87526","directory":"sakuna-of-rice-and-ruin","title":"Sakuna: Of Rice and Ruin","compatibility":2,"releases":[{"id":"0100B1400E8FE000","region":null}]},{"id":"f8843017-a4e8-49b7-9fd3-5076c6be7d38","directory":"dead-by-daylight","title":"Dead by Daylight","compatibility":99,"releases":[{"id":"01004C400CF96000","region":null}]},{"id":"f89eb06b-491b-4c8a-a9c1-6ae06cd08ae2","directory":"deep-space-rush","title":"Deep Space Rush","compatibility":99,"releases":[{"id":"01000A700F956000","region":null}]},{"id":"f8ab9d8b-189f-4448-a6ae-e2cbd94d4bf3","directory":"green-game-timeswapper","title":"Green Game: TimeSwapper","compatibility":4,"releases":[{"id":"0100CBB0070EE000","region":null}]},{"id":"f8af1d4e-0b7f-4f79-b856-4bf1dd6ea22d","directory":"slime-tactics","title":"Slime Tactics","compatibility":99,"releases":[{"id":"010016600DBFC000","region":null}]},{"id":"f8b414fe-cac7-4fd0-8dc5-41a77a483be7","directory":"azur-lane-crosswave","title":"Azur Lane: Crosswave","compatibility":2,"releases":[{"id":"010065D012FA0000","region":null}]},{"id":"f8b7a9b3-332d-4e0a-af25-eebcf1c01e41","directory":"aery-calm-mind","title":"Aery - Calm Mind","compatibility":99,"releases":[{"id":"01000A8015390000","region":null}]},{"id":"f8d234bb-b225-42f6-bf9e-d8daf711b9e9","directory":"nolimitfantasy-super-puzzles-dream","title":"#NoLimitFantasy, Super Puzzles Dream","compatibility":99,"releases":[{"id":"0100325012C12000","region":null}]},{"id":"f8d3d36e-540d-45d9-9d84-358bdd25b80c","directory":"critadel","title":"Critadel","compatibility":99,"releases":[{"id":"0100602014212000","region":null}]},{"id":"f8d542c3-583b-444e-8d84-6a65d9c32ee5","directory":"rainswept","title":"Rainswept","compatibility":99,"releases":[{"id":"01007EC010B48000","region":null}]},{"id":"f8d55a60-c0d8-4181-b645-773722389225","directory":"arcade-archives-buta-san","title":"Arcade Archives Buta san","compatibility":99,"releases":[{"id":"0100A47009818000","region":null}]},{"id":"f8db3e53-7ebe-43c1-96fc-fc0031714268","directory":"the-forgotten-land","title":"The Forgotten Land","compatibility":99,"releases":[{"id":"0100F780103E6000","region":null}]},{"id":"f8ea7891-a7b9-4a3e-ab2f-f69fae9862b6","directory":"card-game-bundle-vol-1","title":"Card Game Bundle Vol. 1","compatibility":99,"releases":[{"id":"01005BC01145A000","region":null}]},{"id":"f8eaa3f0-bd1a-468c-89f2-e8ac16895e00","directory":"syberia-2","title":"Syberia 2","compatibility":5,"releases":[{"id":"010028C003FD6000","region":null}]},{"id":"f8f41aec-08a6-4768-aee2-fc1455dbb710","directory":"curved-space","title":"Curved Space","compatibility":0,"releases":[{"id":"0100CE5014026000","region":null}]},{"id":"f8f74c72-f7ed-446a-b714-a8d72c6a2e32","directory":"ayakashi-koi-gikyoku-trial-version","title":"Ayakashi Koi Gikyoku《Trial version》","compatibility":99,"releases":[{"id":"010075400DEC6000","region":null}]},{"id":"f909f115-c64f-45c7-b138-7d6573a56e49","directory":"the-vanishing-of-ethan-carter","title":"The Vanishing of Ethan Carter","compatibility":99,"releases":[{"id":"0100BCF00E970000","region":null}]},{"id":"f90a3ecc-1878-4f15-a752-de9dd57e9a97","directory":"hopes-farm","title":"Hope's Farm","compatibility":99,"releases":[{"id":"01005C0015594000","region":null}]},{"id":"f90f9631-90bc-4bc1-a859-f282e52b4cc1","directory":"freedom-planet","title":"Freedom Planet","compatibility":1,"releases":[{"id":"0100EB800B614000","region":null}]},{"id":"f91028ab-3e2b-45e6-99b6-3c2ce4f89ce9","directory":"tails-of-iron","title":"Tails Of Iron","compatibility":99,"releases":[{"id":"0100EF3013F60000","region":null}]},{"id":"f9177c0c-0010-4777-9b1a-b34f33ca3d14","directory":"paw-patrol-on-a-roll","title":"PAW Patrol: On a Roll!","compatibility":0,"releases":[{"id":"0100CEC003A4A000","region":null}]},{"id":"f921f40f-774b-41c6-80a4-b40b15b343bd","directory":"revenge-of-the-bird-king","title":"Revenge of the Bird King","compatibility":99,"releases":[{"id":"01004EB00C2E6000","region":null}]},{"id":"f93607af-fb1d-4895-bfd8-d072f6106dec","directory":"johnny-turbos-arcade-night-slashers","title":"Johnny Turbo's Arcade: Night Slashers","compatibility":99,"releases":[{"id":"0100F7300C90E000","region":null}]},{"id":"f9364590-8f0a-4eee-9859-60c0a539b2ce","directory":"aca-neogeo-fatal-fury","title":"ACA NEOGEO FATAL FURY","compatibility":4,"releases":[{"id":"0100EE6002B48000","region":null}]},{"id":"f93bd721-1fce-4857-bf51-1663dd6e6c03","directory":"prinny-r-can-i-really-be-the-hero","title":"Prinny®: Can I Really Be the Hero?","compatibility":99,"releases":[{"id":"01007A0011878000","region":null}]},{"id":"f946fc0e-2553-4bf8-85b4-47ffc3ef3cba","directory":"spirits-of-xanadu","title":"Spirits of Xanadu","compatibility":99,"releases":[{"id":"0100CC3014C74000","region":null}]},{"id":"f94701f3-2fd8-4984-b52e-2b04bb03897b","directory":"burger-chef-tycoon","title":"Burger Chef Tycoon","compatibility":1,"releases":[{"id":"0100DF900EA8E000","region":null}]},{"id":"f94f6c2e-23f4-4f72-b72b-542e9884627c","directory":"project-aether-first-contact","title":"Project AETHER: First Contact","compatibility":99,"releases":[{"id":"010046D013EB6000","region":null}]},{"id":"f953997b-fc3d-4787-8c03-5a6b28ff18b1","directory":"operation-pig","title":"Operation Pig","compatibility":99,"releases":[{"id":"010038B00BFD4000","region":null}]},{"id":"f95505ba-ae54-4406-8b21-d1e55eb9f427","directory":"spacebase-startopia","title":"Spacebase Startopia","compatibility":99,"releases":[{"id":"0100BF4013D70000","region":null}]},{"id":"f95b8a04-4bed-43cc-b429-b47de80e77b5","directory":"operencia-the-stolen-sun","title":"Operencia: The Stolen Sun","compatibility":4,"releases":[{"id":"01006CF00CFA4000","region":null}]},{"id":"f95bb3ad-ed1a-4be1-b270-b54276f493e4","directory":"the-adventures-of-00-dilly-r","title":"The Adventures of 00 Dilly®","compatibility":99,"releases":[{"id":"0100137010152000","region":null}]},{"id":"f9664f01-2186-43c5-abeb-634b1d3b2367","directory":"chess-minimal","title":"Chess Minimal","compatibility":99,"releases":[{"id":"010030D010D66000","region":null}]},{"id":"f96c5622-555e-44b0-8366-000cfcdb17cf","directory":"ball-physics-draw-puzzles-2","title":"Ball Physics Draw Puzzles 2","compatibility":99,"releases":[{"id":"0100F5F0165F4000","region":null}]},{"id":"f97c3da4-9e6e-4e32-ad9a-40d0f41eb15c","directory":"steel-rain","title":"Steel Rain","compatibility":99,"releases":[{"id":"0100D51010D5E000","region":null}]},{"id":"f98226aa-59f7-41bc-8f71-4b53dc425893","directory":"drawn-to-life-two-realms","title":"Drawn to Life: Two Realms","compatibility":1,"releases":[{"id":"0100FF1012C1C000","region":null}]},{"id":"f9b526e8-8e95-4337-9928-45d510865372","directory":"marblelous-animals","title":"Marblelous Animals","compatibility":99,"releases":[{"id":"0100A6F00F364000","region":null}]},{"id":"f9cbba28-19cd-4787-9a46-3391b834ccbc","directory":"kitaria-fables","title":"Kitaria Fables","compatibility":99,"releases":[{"id":"0100F30013BFC000","region":null}]},{"id":"f9d1f07a-6cca-43b5-990d-2a587c945946","directory":"if-found","title":"If Found...","compatibility":0,"releases":[{"id":"01006550129C6000","region":null}]},{"id":"f9d761b5-3fc1-4a69-a893-5735025fe004","directory":"truck-simulator-2","title":"Truck Simulator 2","compatibility":99,"releases":[{"id":"01001730159E8000","region":null}]},{"id":"f9db30dd-38b3-4d20-a478-488a9063254d","directory":"carnival-games","title":"Carnival Games","compatibility":2,"releases":[{"id":"010088C0092FE000","region":null}]},{"id":"f9e45d9e-fb7d-4ad5-9e4d-7e6740296a40","directory":"the-last-blade-beyond-the-destiny","title":"THE LAST BLADE: Beyond the Destiny","compatibility":99,"releases":[{"id":"0100A35012908000","region":null}]},{"id":"f9ed0cc3-8884-4e50-ba8a-52d56f42a359","directory":"virus-the-outbreak","title":"VIRUS: The Outbreak","compatibility":99,"releases":[{"id":"0100489013A3C000","region":null}]},{"id":"f9f5281c-6061-4068-b321-f3cf592d6fde","directory":"trollhunters-defenders-of-arcadia","title":"Trollhunters: Defenders of Arcadia","compatibility":3,"releases":[{"id":"0100145011008000","region":null}]},{"id":"f9f8e2f8-1c8a-4d39-a09f-ab1529cfc70e","directory":"roulette","title":"Roulette","compatibility":99,"releases":[{"id":"0100BAB011DEC000","region":null}]},{"id":"fa09cc53-240b-44c1-8c1e-dec51524fea7","directory":"battle-for-blood","title":"Battle for Blood","compatibility":99,"releases":[{"id":"01007AB013E9E000","region":null}]},{"id":"fa1a66ea-7a92-4bbe-8824-4f96ad9025e7","directory":"indie-darling-bundle-vol-1","title":"Indie Darling Bundle Vol. 1","compatibility":99,"releases":[{"id":"0100BAE011072000","region":null}]},{"id":"fa1d83e3-dc84-4c98-a9fe-a5df750186c7","directory":"rhythm-fighter","title":"Rhythm Fighter","compatibility":99,"releases":[{"id":"0100729012D18000","region":null}]},{"id":"fa4c92cf-765b-42f2-90b4-13e36ed9c1b4","directory":"love","title":"LOVE","compatibility":99,"releases":[{"id":"0100B6200D204000","region":null}]},{"id":"fa4e7ceb-6ba0-4012-bc80-dd47b5575962","directory":"toby-the-secret-mine","title":"Toby: The Secret Mine","compatibility":2,"releases":[{"id":"0100A4A00B2E8000","region":null}]},{"id":"fa642e98-0957-4bdc-bc8c-62ef3ff6e1b4","directory":"kuukiyomi-3-consider-it-more-and-more-father-to-son","title":"KUUKIYOMI 3: Consider It More and More!! - Father to Son","compatibility":99,"releases":[{"id":"01001AC013DEC000","region":null}]},{"id":"fa6deb7a-7161-446a-8420-a2720131b5a1","directory":"dodo-peak","title":"Dodo Peak","compatibility":4,"releases":[{"id":"01001770115C8000","region":null}]},{"id":"fa6f456f-28b8-46f1-be46-3b0358e18e18","directory":"idle-inventor-factory-tycoon","title":"Idle Inventor - Factory Tycoon","compatibility":99,"releases":[{"id":"0100FBA01588C000","region":null}]},{"id":"fa6f5310-9d6e-4be2-9a1c-e23db71fb81a","directory":"angels-with-scaly-wings","title":"Angels with Scaly Wings","compatibility":0,"releases":[{"id":"0100FC90122CC000","region":null}]},{"id":"fa74b482-2d49-4e40-b892-57181372e37c","directory":"beat-me","title":"Beat Me!","compatibility":99,"releases":[{"id":"01002D20129FC000","region":null}]},{"id":"fa78c4ee-61cb-46c9-b723-d49fb8374df3","directory":"clay-skeet-shooting","title":"Clay Skeet Shooting","compatibility":99,"releases":[{"id":"0100D36013DF6000","region":null}]},{"id":"fa7ae349-52a0-4c66-8289-dc0288f77c37","directory":"give-it-up-bouncy","title":"Give It Up! Bouncy","compatibility":99,"releases":[{"id":"0100CC001369E000","region":null}]},{"id":"fa89f0b2-782c-4678-a671-c0021c64f45d","directory":"pokemon-home","title":"Pokémon HOME","compatibility":4,"releases":[{"id":"010015F008C54000","region":null}]},{"id":"fa955193-bf9e-426c-891f-73515bb5590d","directory":"wild-park-manager","title":"Wild Park Manager","compatibility":99,"releases":[{"id":"0100CFF010202000","region":null}]},{"id":"faabbd13-0166-4f78-82b4-44bac956ce39","directory":"arcade-archives-thunder-cross","title":"Arcade Archives THUNDER CROSS","compatibility":99,"releases":[{"id":"01004E4013E62000","region":null}]},{"id":"fab175a7-2daa-460c-ba6d-97dafd0ad12c","directory":"hardcore-mecha","title":"HARDCORE MECHA","compatibility":0,"releases":[{"id":"01002F0011DD4000","region":null}]},{"id":"fabddce0-cdf8-4a2e-8f2f-c52ad66e5998","directory":"under-night-in-birth-exelatecl-r","title":"Under Night In-Birth Exe:Late[cl-r]","compatibility":1,"releases":[{"id":"010038C00EC34000","region":null}]},{"id":"fabe141b-e355-42d5-9dcd-ab5c9c4e2ed0","directory":"my-secret-pets","title":"My Secret Pets!","compatibility":99,"releases":[{"id":"01009070118B4000","region":null}]},{"id":"facdbe14-e6ae-4a11-adcc-85e6e7a18867","directory":"the-last-remnant-remastered","title":"THE LAST REMNANT Remastered","compatibility":2,"releases":[{"id":"0100AC800D022000","region":null}]},{"id":"fad48de8-f079-47ce-a4a9-16de94fd6cae","directory":"pool-puzzles","title":"Pool Puzzles","compatibility":99,"releases":[{"id":"0100300016400000","region":null}]},{"id":"fadfea90-6ff6-4532-8419-dba69b908dd8","directory":"raining-blobs","title":"Raining Blobs","compatibility":99,"releases":[{"id":"0100F3F00B86A000","region":null}]},{"id":"fae396c1-0ab7-441c-9ce8-60d432018ae3","directory":"arrest-of-a-stone-buddha","title":"Arrest of a stone Buddha","compatibility":5,"releases":[{"id":"0100184011B32000","region":null}]},{"id":"fae40a0a-b108-4ba3-9c9a-9e3897645424","directory":"car-mechanic-simulator","title":"Car Mechanic Simulator","compatibility":99,"releases":[{"id":"0100F2D00C97E000","region":null}]},{"id":"faea8e79-f984-4d40-bb50-6b1870d94aaa","directory":"life-goes-on","title":"Life Goes On","compatibility":99,"releases":[{"id":"010006300AFFE000","region":null}]},{"id":"faeef2d9-e6ff-46bc-b03d-4f7e4acaae86","directory":"warhammer-age-of-sigmar-storm-ground","title":"Warhammer Age of Sigmar: Storm Ground","compatibility":1,"releases":[{"id":"010031201307A000","region":null}]},{"id":"faf17261-5295-4803-9734-e7612b55be82","directory":"super-fowlst","title":"Super Fowlst","compatibility":99,"releases":[{"id":"0100D22016872000","region":null}]},{"id":"faf80d9f-9198-4195-844b-839f2c4d9e9a","directory":"bury-me-my-love","title":"Bury me, my Love","compatibility":99,"releases":[{"id":"010066F00C76A000","region":null}]},{"id":"fb0dc983-427a-4b30-8b3f-a0954d0c4abd","directory":"another-world","title":"Another World","compatibility":2,"releases":[{"id":"01003C300AAAE000","region":null}]},{"id":"fb1196cb-b1df-42f4-bba2-115fdb579859","directory":"event-horizon-space-defense","title":"Event Horizon: Space Defense","compatibility":99,"releases":[{"id":"010072C010002000","region":null}]},{"id":"fb1d8a9a-d0a1-4796-b8fe-c38746a2d181","directory":"pan-pan-a-tiny-big-adventure","title":"PAN-PAN A tiny big adventure","compatibility":1,"releases":[{"id":"0100F0D004CAE000","region":null}]},{"id":"fb375514-3cc7-4e11-aa81-d2976477b071","directory":"2in1-application-driver-and-serial-killer-sniper","title":"2in1 - Application Driver and Serial Killer / Sniper","compatibility":99,"releases":[{"id":"0100C3701429C000","region":null}]},{"id":"fb395e9a-4157-4d91-8763-455ae5c5bd3f","directory":"rain-on-your-parade","title":"Rain on Your Parade","compatibility":99,"releases":[{"id":"0100BDD014232000","region":null}]},{"id":"fb39fde7-f26c-4627-81b6-bba1adf39467","directory":"arcade-archives-raiders5","title":"Arcade Archives RAIDERS5","compatibility":99,"releases":[{"id":"0100DC4009828000","region":null}]},{"id":"fb4d6cb4-8fb3-45c3-a8ba-a449930a4024","directory":"ayakashi-koi-gikyoku-forbidden-romance-with-mysterious-spirit-","title":"Ayakashi Koi Gikyoku -Forbidden Romance with Mysterious Spirit-","compatibility":1,"releases":[{"id":"010042E00AC80000","region":null}]},{"id":"fb5cc263-5703-4f99-ab0c-cd0b23e7e792","directory":"crystal-crisis","title":"Crystal Crisis","compatibility":2,"releases":[{"id":"0100972008234000","region":null}]},{"id":"fb5ce9c1-92b3-46ff-a071-043fad3b1626","directory":"dojoran","title":"Dojoran","compatibility":99,"releases":[{"id":"0100B44015F1C000","region":null}]},{"id":"fb60ad9d-da79-46ba-93d5-c91b60ba8ca3","directory":"zombie-apocalypse","title":"Zombie Apocalypse","compatibility":99,"releases":[{"id":"0100F65013E84000","region":null}]},{"id":"fb69b9aa-0e4a-42e6-a722-c2790d49a90f","directory":"a-little-golf-journey","title":"A Little Golf Journey","compatibility":0,"releases":[{"id":"0100DBD01543A000","region":null}]},{"id":"fb851701-7709-4651-9fce-0b1b4f7d6cf4","directory":"mafia-slots","title":"Mafia Slots","compatibility":99,"releases":[{"id":"0100E15014C5A000","region":null}]},{"id":"fb8f5e43-5a66-40f0-9c70-d2dfae48581d","directory":"trivial-pursuit-live-demo","title":"Trivial Pursuit LIVE - DEMO","compatibility":99,"releases":[{"id":"01005BA00BEE6000","region":null}]},{"id":"fb90cc82-3509-4472-84e2-0afe82997421","directory":"monster-hunter-rise","title":"MONSTER HUNTER RISE","compatibility":4,"releases":[{"id":"0100B04011742000","region":null}]},{"id":"fba48c59-5f8b-4f23-b09b-e0a8e0cb2272","directory":"box-that-ball","title":"Box That Ball","compatibility":99,"releases":[{"id":"010053B016690000","region":null}]},{"id":"fba8f653-dac7-4e30-b408-2c1891a5e37d","directory":"max-reloaded-ii","title":"Max Reloaded II","compatibility":99,"releases":[{"id":"01000D60132D0000","region":null}]},{"id":"fbade9cb-9874-414e-9626-803721a5dfae","directory":"speaking-simulator","title":"Speaking Simulator","compatibility":99,"releases":[{"id":"010020500E7A6000","region":null}]},{"id":"fbafb25a-2ce0-45fd-8a09-f6430c1a995c","directory":"lego-marvel-super-heroes-2","title":"LEGO Marvel Super Heroes 2","compatibility":2,"releases":[{"id":"0100D3A00409E000","region":null}]},{"id":"fbb3f637-502d-40bc-b30d-0c56966471d0","directory":"lawnmower-game-next-generation","title":"Lawnmower Game: Next Generation","compatibility":99,"releases":[{"id":"01009AA013DD4000","region":null}]},{"id":"fbbc0e73-6c72-46a7-b488-126ed1aa52ac","directory":"xenoblade-chronicles-2-torna-~-the-golden-country","title":"Xenoblade Chronicles 2: Torna ~ The Golden Country","compatibility":2,"releases":[{"id":"0100C9F009F7A000","region":null}]},{"id":"fbdd1029-94b4-4d06-87ec-8691dd52f566","directory":"rescue-tale","title":"Rescue Tale","compatibility":99,"releases":[{"id":"01003C400AD42000","region":null}]},{"id":"fbe8a1e1-fe23-4ccd-8f10-b2b2f0270d43","directory":"random-heroes-gold-edition","title":"Random Heroes: Gold Edition","compatibility":99,"releases":[{"id":"0100EA4011484000","region":null}]},{"id":"fbe8a74f-69a2-41bd-8073-9061d0da5620","directory":"electronic-super-joy-2","title":"Electronic Super Joy 2","compatibility":99,"releases":[{"id":"01002450112D4000","region":null}]},{"id":"fbf215b6-6b7a-4996-8c18-8bfcf2b65522","directory":"samurai-shodown","title":"SAMURAI SHODOWN","compatibility":1,"releases":[{"id":"01002DF00F76C000","region":null}]},{"id":"fbf2c61f-425f-4b72-92a7-9b232dfe3262","directory":"framed-collection","title":"FRAMED Collection","compatibility":5,"releases":[{"id":"0100F1A00A5DC000","region":null}]},{"id":"fbf8974d-17ef-43aa-a7f3-d88b1d0750f0","directory":"haven","title":"Haven","compatibility":4,"releases":[{"id":"0100E2600DBAA000","region":null}]},{"id":"fbf94d0a-9a82-421f-9c8a-9b5f4629fb43","directory":"prinny-presents-nis-classics-volume-1-phantom-brave-the-hermuda-triangle-remastered-soul-nomad-the-world-eaters","title":"Prinny Presents NIS Classics Volume 1: Phantom Brave: The Hermuda Triangle Remastered / Soul Nomad & the World Eaters","compatibility":99,"releases":[{"id":"01001FA01451C000","region":null}]},{"id":"fbfbb962-4226-459f-82d1-d27bf417f301","directory":"animals-for-toddlers","title":"Animals for Toddlers","compatibility":99,"releases":[{"id":"0100451012492000","region":null}]},{"id":"fc152151-01a4-4602-85ec-22589d306cc7","directory":"spot-the-difference","title":"Spot The Difference","compatibility":99,"releases":[{"id":"0100E04009BD4000","region":null}]},{"id":"fc244da5-6b32-45af-bc2c-6267dbdeb7d2","directory":"selma-and-the-wisp","title":"Selma and the Wisp","compatibility":1,"releases":[{"id":"0100DF300DE6A000","region":null}]},{"id":"fc25c6dc-3ebd-4fb5-98d9-f011c81b4322","directory":"depixtion","title":"Depixtion","compatibility":99,"releases":[{"id":"0100C9100FAE2000","region":null}]},{"id":"fc2c5598-fc8f-49d5-8bb2-42e03dee15f0","directory":"towerfall","title":"TowerFall","compatibility":2,"releases":[{"id":"0100A1C00359C000","region":null}]},{"id":"fc37855f-afc5-4caa-8035-b7cdefa15243","directory":"power-rangers-battle-for-the-grid","title":"Power Rangers: Battle for the Grid","compatibility":1,"releases":[{"id":"0100E1E00CF1A000","region":null}]},{"id":"fc3c34ef-ae12-44ed-bfa5-52d6aba41d54","directory":"south-park-the-stick-of-truth","title":"South Park: The Stick of Truth","compatibility":1,"releases":[{"id":"010095300B6A4000","region":null}]},{"id":"fc4747f0-7ff1-42b9-a649-c90b8f066e53","directory":"munchkin-quacked-quest","title":"Munchkin: Quacked Quest","compatibility":3,"releases":[{"id":"0100AD600C5EA000","region":null}]},{"id":"fc598a0a-cfc4-4f4a-9566-0f9f5800584a","directory":"rampage-knights","title":"Rampage Knights","compatibility":99,"releases":[{"id":"0100D2E00C4CC000","region":null}]},{"id":"fc7fbead-a9ac-4243-bbc5-0fa7b12f2441","directory":"16-bit-soccer","title":"16-Bit Soccer","compatibility":99,"releases":[{"id":"0100E98013C90000","region":null}]},{"id":"fc8232f0-8e81-4780-8c04-0b2e5dec9a1b","directory":"a-duel-hand-disaster-trackher","title":"A Duel Hand Disaster: Trackher","compatibility":99,"releases":[{"id":"010026B006802000","region":null}]},{"id":"fc85191e-8673-44f8-ba20-787a65391f44","directory":"lost-words-beyond-the-page","title":"Lost Words: Beyond the Page","compatibility":99,"releases":[{"id":"0100018013124000","region":null}]},{"id":"fc8ab562-4c89-49c2-8ed1-0ca4a5ec6cec","directory":"alfonzos-arctic-adventure","title":"Alfonzo's Arctic Adventure","compatibility":99,"releases":[{"id":"01003E0012F5A000","region":null}]},{"id":"fc8c17be-66e6-4905-a77f-65ec45317480","directory":"disco-elysium-the-final-cut","title":"Disco Elysium - The Final Cut","compatibility":99,"releases":[{"id":"01006C5015E84000","region":null}]},{"id":"fc8e1a3c-d397-4ede-a31a-15a6c8e46ce9","directory":"aca-neogeo-the-ultimate-11-snk-football-championship","title":"ACA NEOGEO THE ULTIMATE 11: SNK FOOTBALL CHAMPIONSHIP","compatibility":5,"releases":[{"id":"0100591008790000","region":null}]},{"id":"fc971c13-0544-42bf-915b-158a4179251c","directory":"pool","title":"POOL","compatibility":99,"releases":[{"id":"0100161009A52000","region":null}]},{"id":"fc9b7090-3a73-4abc-8c24-319a319effde","directory":"spartan","title":"Spartan","compatibility":3,"releases":[{"id":"0100E6A009A26000","region":null}]},{"id":"fca07452-98fd-49fb-b971-bdfec6977f49","directory":"darksiders-genesis","title":"Darksiders Genesis","compatibility":3,"releases":[{"id":"0100F2300D4BA000","region":null}]},{"id":"fca4ef5d-71ef-45dc-9e37-cd8cb691f004","directory":"brunswick-pro-billiards","title":"Brunswick Pro Billiards","compatibility":1,"releases":[{"id":"01002E700F958000","region":null}]},{"id":"fca6651a-0e87-4f6d-b650-ba238605629c","directory":"axes","title":"AXES","compatibility":99,"releases":[{"id":"0100DA3011174000","region":null}]},{"id":"fcac357a-af57-4ddb-a57e-1e1834cca57a","directory":"arcade-archives-omega-fighter","title":"Arcade Archives OMEGA FIGHTER","compatibility":99,"releases":[{"id":"01004A200BB48000","region":null}]},{"id":"fcb665b1-1a80-47b6-bd99-9097efbf8166","directory":"cave-digger","title":"Cave Digger","compatibility":1,"releases":[{"id":"0100D30012B38000","region":null}]},{"id":"fcbc7de6-a7b1-402b-a4cd-03e03c5b9850","directory":"vsr-void-space-racing","title":"VSR: Void Space Racing","compatibility":4,"releases":[{"id":"0100C7C00AE6C000","region":null}]},{"id":"fcc17f11-6402-4292-8578-1e07ba773cfe","directory":"arcade-archives-excitebike","title":"Arcade Archives EXCITEBIKE","compatibility":1,"releases":[{"id":"0100328009800000","region":null}]},{"id":"fcc4b086-dd78-444f-a30b-9d1e63da5342","directory":"aca-neogeo-super-sidekicks","title":"ACA NEOGEO SUPER SIDEKICKS","compatibility":99,"releases":[{"id":"0100A0E004DB2000","region":null}]},{"id":"fcc9ef7e-7776-45f3-a182-3bf8c16169df","directory":"mountain-bike-hill-climb-race-real-2d-arcade-dirt-racing-games","title":"Mountain Bike Hill Climb Race: Real 2D Arcade Dirt Racing Games","compatibility":99,"releases":[{"id":"010003C01491A000","region":null}]},{"id":"fcd27188-ed93-4344-a6c7-decac9adc733","directory":"lost-artifacts-soulstone","title":"Lost Artifacts: Soulstone","compatibility":99,"releases":[{"id":"010075E00D8C6000","region":null}]},{"id":"fcd60880-04c0-48f7-9256-310a771bc20f","directory":"meanders","title":"MEANDERS","compatibility":99,"releases":[{"id":"0100EEF00CBC0000","region":null}]},{"id":"fcdd62ec-9424-48b2-9a41-1c1c0075591a","directory":"sunblaze","title":"Sunblaze","compatibility":99,"releases":[{"id":"0100BFE014476000","region":null}]},{"id":"fce52cd2-784d-44dc-96be-fbb7f59f89e5","directory":"caves-and-castles-underworld","title":"Caves and Castles: Underworld","compatibility":1,"releases":[{"id":"0100CEC013C56000","region":null}]},{"id":"fce583a3-bf74-4fd9-b5df-ff1fbc6c50ad","directory":"little-triangle","title":"Little Triangle","compatibility":99,"releases":[{"id":"01000690085BE000","region":null}]},{"id":"fce7f143-8724-4fd7-b023-9a53c44a931a","directory":"lichtspeer-double-speer-edition","title":"Lichtspeer: Double Speer Edition","compatibility":2,"releases":[{"id":"01004360045C8000","region":null}]},{"id":"fcf459a2-91a3-4c6f-b1fc-9d28e20605b0","directory":"shakedown-hawaii","title":"Shakedown: Hawaii","compatibility":1,"releases":[{"id":"0100B10002904000","region":null}]},{"id":"fcf9fb29-5ac6-4984-ae3a-dc0af0e5cfcd","directory":"classic-games-collection-vol1","title":"Classic Games Collection Vol.1","compatibility":0,"releases":[{"id":"010031D00EA96000","region":null}]},{"id":"fd0ae51a-6e8d-40da-82c8-58732a54bba0","directory":"pirates-all-aboard","title":"Pirates: All Aboard!","compatibility":99,"releases":[{"id":"0100FC5009952000","region":null}]},{"id":"fd0b6796-c082-47b7-9b9b-b122bb160fe2","directory":"rebel-galaxy-outlaw","title":"Rebel Galaxy Outlaw","compatibility":1,"releases":[{"id":"0100CAA01084A000","region":null}]},{"id":"fd0cdc0b-3910-4c36-b080-1caad5fe850d","directory":"cafe-enchante","title":"Café Enchanté","compatibility":0,"releases":[{"id":"01005C00117A8000","region":null}]},{"id":"fd24b7e3-0d77-46b6-96f5-4a7e979ed90d","directory":"ephemeral-fantasy-on-dark","title":"EPHEMERAL -FANTASY ON DARK-","compatibility":99,"releases":[{"id":"0100B4D01303C000","region":null}]},{"id":"fd3b898e-698e-4b85-ae81-ae1e88596858","directory":"urban-trial-tricky","title":"Urban Trial Tricky","compatibility":1,"releases":[{"id":"0100A2500EB92000","region":null}]},{"id":"fd4068e3-1686-4448-97ca-517ff2ccf210","directory":"joojees-journey","title":"Joojee's Journey","compatibility":99,"releases":[{"id":"0100DBB013444000","region":null}]},{"id":"fd637db0-c494-4281-8f6c-f905c3eef698","directory":"boris-the-rocket","title":"BORIS THE ROCKET","compatibility":99,"releases":[{"id":"010092C013FB8000","region":null}]},{"id":"fd6d7482-e72a-42c8-9c84-f7b3be2f80bf","directory":"demons-rise-lords-of-chaos","title":"Demon's Rise - Lords of Chaos","compatibility":1,"releases":[{"id":"0100E29013818000","region":null}]},{"id":"fd7b63f4-4b34-472c-a6f8-b524fc9061ad","directory":"lastfight","title":"LASTFIGHT","compatibility":99,"releases":[{"id":"01009E100BDD6000","region":null}]},{"id":"fd82065c-3ee2-4c66-9a46-987748e8def0","directory":"razerwire-nanowars","title":"RazerWire: Nanowars","compatibility":99,"releases":[{"id":"01004FC01688A000","region":null}]},{"id":"fd840635-bd1b-468d-8310-6ebf26669f0d","directory":"cotton-boomerang-saturn-tribute","title":"COTTOn Boomerang - Saturn Tribute","compatibility":99,"releases":[{"id":"010077001526E000","region":null}]},{"id":"fd88225a-4d5e-44c7-b130-183ee0edc493","directory":"dezatopia","title":"Dezatopia","compatibility":5,"releases":[{"id":"0100AFC00E06A000","region":null}]},{"id":"fd8a06d7-8e04-41b5-b1c2-dbd0b59e373b","directory":"subdivision-infinity-dx","title":"Subdivision Infinity DX","compatibility":1,"releases":[{"id":"010001400E474000","region":null}]},{"id":"fd9eb5d7-ae2c-4c93-9eab-6c6265c7848e","directory":"violett","title":"Violett","compatibility":2,"releases":[{"id":"01005880063AA000","region":null}]},{"id":"fdc29bf8-ffa9-44a6-8dc1-cbdc5475eaf0","directory":"colors-live","title":"Colors Live","compatibility":5,"releases":[{"id":"010020500BD86000","region":null}]},{"id":"fdcb51f9-861f-4b83-9dbd-34fdee0a1f5c","directory":"pixel-game-maker-series-puzzle-pedestrians","title":"Pixel Game Maker Series Puzzle Pedestrians","compatibility":99,"releases":[{"id":"0100EA2013BCC000","region":null}]},{"id":"fdd79f35-157b-4f32-9d4e-8358a385a26a","directory":"distraint-2","title":"DISTRAINT 2","compatibility":99,"releases":[{"id":"01009740120FE000","region":null}]},{"id":"fddd42a1-5499-4428-812f-fc4ad9c44630","directory":"synaptic-drive","title":"SYNAPTIC DRIVE","compatibility":99,"releases":[{"id":"0100D8400DAF0000","region":null}]},{"id":"fde2122e-0c50-415b-bcce-29d61d05e63d","directory":"project-starship","title":"Project Starship","compatibility":99,"releases":[{"id":"0100AD9010596000","region":null}]},{"id":"fde27268-f0ad-4e2f-a82a-25aec7a055b7","directory":"wild-pinball-bundle","title":"Wild Pinball Bundle","compatibility":2,"releases":[{"id":"0100DA7015C02000","region":null}]},{"id":"fde2ee7f-f811-4738-a7a8-45389357c817","directory":"laws-of-machine","title":"Laws of Machine","compatibility":99,"releases":[{"id":"0100CF90147B6000","region":null}]},{"id":"fde696b2-0271-4d70-9caf-f1f2e2f73b7e","directory":"space-revenge","title":"Space Revenge","compatibility":99,"releases":[{"id":"0100E0D014C4C000","region":null}]},{"id":"fde8abf6-7a49-44ed-9494-dedfd11e0698","directory":"pumpkin-jack","title":"Pumpkin Jack","compatibility":3,"releases":[{"id":"01006C10131F6000","region":null}]},{"id":"fdf66d36-9091-4aac-a670-c2558b14f49b","directory":"sniper-elite-v2-remastered","title":"Sniper Elite V2 Remastered","compatibility":2,"releases":[{"id":"0100BB000A3AA000","region":null}]},{"id":"fdfd2430-60ec-4ce5-904f-f514f8e6b550","directory":"cultist-simulator-initiate-edition","title":"Cultist Simulator: Initiate Edition","compatibility":99,"releases":[{"id":"01006F40119B6000","region":null}]},{"id":"fdfdfcf0-815c-4eac-bb76-161f091010f0","directory":"bouncy-bullets-2","title":"Bouncy Bullets 2","compatibility":99,"releases":[{"id":"01000000160F6000","region":null}]},{"id":"fdfe2107-707b-48f8-9ce7-cc7a427d35db","directory":"go-fish-go","title":"Go! Fish Go!","compatibility":1,"releases":[{"id":"0100E6300F854000","region":null}]},{"id":"fe0803c2-e093-4a0e-b59e-8af9cfefb69f","directory":"darq-complete-edition","title":"DARQ Complete Edition","compatibility":99,"releases":[{"id":"0100440012FFA000","region":null}]},{"id":"fe0a8790-8801-4030-b4a8-91c5214f59ed","directory":"otti-the-house-keeper","title":"Otti: The House Keeper","compatibility":99,"releases":[{"id":"01006AF013A9E000","region":null}]},{"id":"fe18c0d4-af83-4c61-a120-2997fe486dfa","directory":"arcade-archives-crime-fighters","title":"Arcade Archives CRIME FIGHTERS","compatibility":99,"releases":[{"id":"01002620141B6000","region":null}]},{"id":"fe2234b6-7229-458a-aac6-e7166acea490","directory":"goodbye-deponia","title":"Goodbye Deponia","compatibility":2,"releases":[{"id":"0100CA500C90C000","region":null}]},{"id":"fe241c96-c568-452e-aa7f-da3c24a15f60","directory":"splasher","title":"Splasher","compatibility":1,"releases":[{"id":"0100FF9003F10000","region":null}]},{"id":"fe281668-25c8-4e18-94b8-e5ffbeb4b008","directory":"octafight","title":"OctaFight","compatibility":99,"releases":[{"id":"0100C20013196000","region":null}]},{"id":"fe330624-5fee-41bd-a4b5-859e54bcfa6a","directory":"minit","title":"Minit","compatibility":1,"releases":[{"id":"0100ED600A87A000","region":null}]},{"id":"fe37e82b-9e71-4a8d-917c-800039ee6a59","directory":"lets-sing-2022","title":"Let's Sing 2022","compatibility":99,"releases":[{"id":"0100CC30149B8000","region":null}]},{"id":"fe53cf13-ed2b-4c45-a7d3-961aff71f387","directory":"mega-man-legacy-collection-2","title":"Mega Man Legacy Collection 2","compatibility":0,"releases":[{"id":"0100842008EC4000","region":null}]},{"id":"fe56325e-62a8-4863-af52-999c89fe524f","directory":"escape-from-mirrorland-the-adventures-of-nyanzou-kumakichi-escape-game-series","title":"Escape from Mirrorland\n~The Adventures of Nyanzou&Kumakichi: Escape Game Series~","compatibility":99,"releases":[{"id":"010049F016CA0000","region":null}]},{"id":"fe5a9ab5-ba6d-4f1c-be55-066eacb97d5f","directory":"thief-simulator","title":"Thief Simulator","compatibility":1,"releases":[{"id":"0100CE400E34E000","region":null}]},{"id":"fe5c3459-5250-46fa-96b3-9def61710376","directory":"shovel-knight-pocket-dungeon","title":"Shovel Knight Pocket Dungeon","compatibility":0,"releases":[{"id":"01006B00126EC000","region":null}]},{"id":"fe5cb57a-7940-46d8-aaa6-777f1e2cc62b","directory":"defunct","title":"Defunct","compatibility":99,"releases":[{"id":"010039300BDB2000","region":null}]},{"id":"fe61869e-0690-4b37-af7d-39a8f4739265","directory":"new-york-mysteries-the-outbreak","title":"New York Mysteries: The Outbreak","compatibility":99,"releases":[{"id":"01001320168F6000","region":null}]},{"id":"fe6bc772-6c72-4163-a281-8f322d429fc5","directory":"one-more-dungeon","title":"One More Dungeon","compatibility":1,"releases":[{"id":"0100BD3006A02000","region":null}]},{"id":"fe71fed3-6474-4c85-89ad-a95766ce1d19","directory":"hades","title":"Hades","compatibility":5,"releases":[{"id":"0100535012974000","region":null}]},{"id":"fe7fdfb9-8aef-4e51-b89d-547ca49bdf2c","directory":"dariusburst-another-chronicle-ex","title":"Dariusburst: Another Chronicle EX+","compatibility":99,"releases":[{"id":"010043F013044000","region":null}]},{"id":"fe81f817-9ca7-49fd-8643-8b905309057f","directory":"truck-racing-championship","title":"Truck Racing Championship","compatibility":99,"releases":[{"id":"010018800D1FC000","region":null}]},{"id":"fe850dab-4d8d-4099-b607-43f6c56a17d5","directory":"bff-or-die","title":"BFF or Die","compatibility":99,"releases":[{"id":"0100EFB01272E000","region":null}]},{"id":"fe8abfe6-3403-408a-a578-555524840970","directory":"duck-game","title":"Duck Game","compatibility":1,"releases":[{"id":"0100750001C70000","region":null}]},{"id":"fe8b6dc0-d9f6-4d35-8757-c2207fbbfe19","directory":"sword-of-the-necromancer","title":"Sword of the Necromancer","compatibility":4,"releases":[{"id":"0100E4701355C000","region":null}]},{"id":"fe99e110-e2e7-47d7-8afc-a0e3cbca797f","directory":"dude-stop","title":"Dude, Stop","compatibility":99,"releases":[{"id":"01002C100FBB6000","region":null}]},{"id":"fe9a14c9-4d47-4e3a-8a0b-676bf9484d2e","directory":"rims-racing","title":"RiMS Racing","compatibility":2,"releases":[{"id":"01003CD01299E000","region":null}]},{"id":"fe9df3ba-e2f2-4cf5-b7a1-13ebf31d2c03","directory":"castle-on-the-coast","title":"Castle on the Coast","compatibility":99,"releases":[{"id":"01009A3015CA4000","region":null}]},{"id":"fea44348-2e40-4bc0-8019-171658af46a4","directory":"flowing-lights","title":"Flowing Lights","compatibility":99,"releases":[{"id":"0100DDD0131D6000","region":null}]},{"id":"fea5f239-85cf-4091-ba28-fa8cb0dc8e24","directory":"reversi-lets-go","title":"Reversi Let's Go","compatibility":99,"releases":[{"id":"0100FCD0142E2000","region":null}]},{"id":"feb55770-16b2-4674-8604-49dc777fadad","directory":"pelican-and-medjed","title":"Pelican and Medjed","compatibility":99,"releases":[{"id":"010056900E89C000","region":null}]},{"id":"fed558a0-99b0-4f65-a7ca-919baadc41be","directory":"outbreak-endless-nightmares","title":"Outbreak: Endless Nightmares","compatibility":1,"releases":[{"id":"0100A0D013464000","region":null}]},{"id":"fee6a07c-c336-4148-9dd4-8c0738beda71","directory":"ink","title":"INK","compatibility":99,"releases":[{"id":"010060300A67C000","region":null}]},{"id":"fef3186c-f881-4a97-8f4b-5b1351fdf2bc","directory":"edna-and-harvey-harveys-new-eyes","title":"Edna & Harvey: Harvey's New Eyes","compatibility":5,"releases":[{"id":"0100ABE00DB4E000","region":null}]},{"id":"fefbddee-5c9c-4696-99c7-f6169aa83508","directory":"void-gore","title":"Void Gore","compatibility":2,"releases":[{"id":"01006D9013842000","region":null}]},{"id":"ff033ba7-6c0b-4aa2-a9ee-fc56a95f86d9","directory":"tiny-metal","title":"TINY METAL","compatibility":4,"releases":[{"id":"010074800741A000","region":null}]},{"id":"ff040e6c-e707-48b4-990c-cc751b214bab","directory":"ultimate-chicken-horse","title":"Ultimate Chicken Horse","compatibility":1,"releases":[{"id":"0100FCF002A58000","region":null}]},{"id":"ff085fef-1c5a-4b2f-8daf-8a65d3d43c9c","directory":"qubyte-classics-the-immortal-by-piko","title":"QUByte Classics - The Immortal by PIKO","compatibility":99,"releases":[{"id":"010064F016294000","region":null}]},{"id":"ff1355e7-b509-4585-92d3-582b616b1504","directory":"qube-2","title":"Q.U.B.E. 2","compatibility":4,"releases":[{"id":"010023600AA34000","region":null}]},{"id":"ff1446e6-0ae1-42e5-be42-06bc3e0f1e24","directory":"beat-them-all","title":"Beat Them All","compatibility":99,"releases":[{"id":"0100A52016056000","region":null}]},{"id":"ff167930-cfc7-4d18-952d-4999a4a7dc73","directory":"warhammer-40-000-mechanicus","title":"Warhammer 40,000: Mechanicus","compatibility":3,"releases":[{"id":"0100C6000EEA8000","region":null}]},{"id":"ff1fa561-0df8-4652-a43f-baeadd5e9bf4","directory":"cotton-reboot","title":"Cotton Reboot!","compatibility":4,"releases":[{"id":"01005E8013CD8000","region":null}]},{"id":"ff2026b9-505f-4417-a135-ef0df220272d","directory":"the-little-acre","title":"The Little Acre","compatibility":0,"releases":[{"id":"0100A5000D590000","region":null}]},{"id":"ff23e5e0-db35-433e-a373-f060f20ce7c2","directory":"grimvalor","title":"Grimvalor","compatibility":0,"releases":[{"id":"01001C700F518000","region":null}]},{"id":"ff290e72-7668-49a0-aa9f-1ecdd41726ee","directory":"omvorm","title":"Omvorm","compatibility":99,"releases":[{"id":"0100EFB00B7B8000","region":null}]},{"id":"ff361a74-a09f-4386-b245-3fe821607970","directory":"car-driving-simulator","title":"Car Driving Simulator","compatibility":99,"releases":[{"id":"010003401564E000","region":null}]},{"id":"ff3882fe-ae81-48e2-bd8d-0ca843da22bf","directory":"block-a-pix-deluxe","title":"Block-a-Pix Deluxe","compatibility":99,"releases":[{"id":"0100D1100D1A8000","region":null}]},{"id":"ff3eb840-6c9a-4ffe-a83e-c58765371525","directory":"hill-climbing-mania","title":"Hill Climbing Mania","compatibility":1,"releases":[{"id":"0100147011F4E000","region":null}]},{"id":"ff419f5f-a6a4-4913-b3fc-4ffee6f8961b","directory":"mays-mysteries-the-secret-of-dragonville","title":"May's Mysteries: The Secret of Dragonville","compatibility":99,"releases":[{"id":"010099F015372000","region":null}]},{"id":"ff4768f1-6bec-40f1-bfbe-d44c3a8ce86b","directory":"crocs-world-2-demo","title":"Croc's World 2 Demo","compatibility":99,"releases":[{"id":"01003DD00DE14000","region":null}]},{"id":"ff52a484-b5a0-4b84-a2ac-ace5a1fb7a6d","directory":"syder-reloaded","title":"Syder Reloaded","compatibility":99,"releases":[{"id":"0100A2500E232000","region":null}]},{"id":"ff5305d8-9b84-4454-bddc-09c5a0c34069","directory":"outlast-2","title":"Outlast 2","compatibility":3,"releases":[{"id":"0100DE70085E8000","region":null}]},{"id":"ff53d7e8-7a40-4e75-a4a1-39372536defe","directory":"arcade-archives-rally-x","title":"Arcade Archives RALLY-X","compatibility":99,"releases":[{"id":"010026A015ACC000","region":null}]},{"id":"ff612d27-47e0-42ab-a8c9-3b160933f954","directory":"arcade-archives-in-the-hunt","title":"Arcade Archives IN THE HUNT","compatibility":99,"releases":[{"id":"01002B800F2B8000","region":null}]},{"id":"ff7fadca-abb1-4807-93d0-e01f0ea6f0ba","directory":"rad-rodgers-radical-edition","title":"Rad Rodgers Radical Edition","compatibility":3,"releases":[{"id":"010000600CD54000","region":null}]},{"id":"ff8d8434-e68a-476a-bf52-769c23575dd9","directory":"milos-quest","title":"Milo's Quest","compatibility":2,"releases":[{"id":"0100B770104D6000","region":null}]},{"id":"ff963ece-7464-4bc4-bf71-21fd9030eede","directory":"gekido-kintaros-revenge","title":"Gekido Kintaro's Revenge","compatibility":1,"releases":[{"id":"010052A00942A000","region":null}]},{"id":"ffa1ffd0-2236-4234-9781-6ff0bf20c485","directory":"the-tenth-line-special-edition","title":"The Tenth Line Special Edition","compatibility":99,"releases":[{"id":"010090E00ECF4000","region":null}]},{"id":"ffa3cb04-27e4-4757-84d8-721507433690","directory":"spelunker-hd-deluxe","title":"Spelunker HD Deluxe","compatibility":0,"releases":[{"id":"010042B015582000","region":null}]},{"id":"ffaa3afe-31f6-46ef-a8a3-e9a202349df4","directory":"pancake-bar-tycoon","title":"Pancake Bar Tycoon","compatibility":99,"releases":[{"id":"0100D150132FA000","region":null}]},{"id":"ffae1efb-7dc8-49c5-a7f8-8f521de65604","directory":"tales-from-space-mutant-blobs-attack","title":"Tales From Space: Mutant Blobs Attack","compatibility":99,"releases":[{"id":"0100CB100D17A000","region":null}]},{"id":"ffb180f7-3f55-48dc-8355-f41e571232cc","directory":"biz-builder-delux","title":"Biz Builder Delux","compatibility":99,"releases":[{"id":"010061D00FD26000","region":null}]},{"id":"ffb793fc-8cf2-479e-a067-2eaa866c9238","directory":"super-animal-royale","title":"Super Animal Royale","compatibility":99,"releases":[{"id":"0100DB3011E8C000","region":null}]},{"id":"ffbc64dd-3e96-470e-b541-cd720b405b0a","directory":"grandia-hd-collection","title":"GRANDIA HD Collection","compatibility":4,"releases":[{"id":"0100E0600BBC8000","region":null}]},{"id":"ffc56cb6-ec52-4ffc-b3f4-286fdfe7a673","directory":"saboteur-ii-avenging-angel","title":"Saboteur II: Avenging Angel","compatibility":0,"releases":[{"id":"010007700CFA2000","region":null}]},{"id":"fff7647f-4e37-49b3-966c-c0c8e8c25825","directory":"from-shadows","title":"From Shadows","compatibility":99,"releases":[{"id":"0100901014412000","region":null}]},{"id":"fffb3851-5dab-4374-9820-5524eb26bf5e","directory":"assassins-creed-the-rebel-collection","title":"Assassin’s Creed: The Rebel Collection","compatibility":4,"releases":[{"id":"010044700DEB0000","region":null}]}]
diff --git a/pkgs/applications/emulators/yuzu/default.nix b/pkgs/applications/emulators/yuzu/default.nix
index f212abb448a6e..5f2df651f845b 100644
--- a/pkgs/applications/emulators/yuzu/default.nix
+++ b/pkgs/applications/emulators/yuzu/default.nix
@@ -1,28 +1,40 @@
-{ branch ? "mainline", libsForQt5, fetchFromGitHub }:
+{ branch ? "mainline"
+, libsForQt5
+, fetchFromGitHub
+}:
+
 let
-  inherit libsForQt5 fetchFromGitHub;
+  # Fetched from https://api.yuzu-emu.org/gamedb, last updated 2022-03-23.
+  # Please make sure to update this when updating yuzu!
+  compat-list = ./compatibility-list.json;
 in {
-  mainline = libsForQt5.callPackage ./base.nix rec {
+  mainline = libsForQt5.callPackage ./generic.nix rec {
     pname = "yuzu-mainline";
-    version = "953";
-    branchName = branch;
+    version = "992";
+
     src = fetchFromGitHub {
       owner = "yuzu-emu";
       repo = "yuzu-mainline";
       rev = "mainline-0-${version}";
-      sha256 = "0p07gybyhr6flzmhz92qlrwcq7l37c2wmcxw8sbrvhj2pgaaw9ic";
+      sha256 = "1x3fwwdw86jvygbzy9k99j6avfsd867ywm2x25izw10jznpsaixs";
       fetchSubmodules = true;
     };
+
+    inherit branch compat-list;
   };
-  early-access = libsForQt5.callPackage ./base.nix rec {
+
+  early-access = libsForQt5.callPackage ./generic.nix rec {
     pname = "yuzu-ea";
-    version = "2557";
-    branchName = branch;
+    version = "2690";
+
     src = fetchFromGitHub {
       owner = "pineappleEA";
       repo = "pineapple-src";
       rev = "EA-${version}";
-      sha256 = "013xxgyn8y5fv0xbrm0zfl9xmi0gx4hpflrbjskg1hcvb2bjqyvj";
+      sha256 = "0zm06clbdh9cccq9932q9v976q7sjknynkdvvp04h1wcskmrxi3c";
+      fetchSubmodules = true;
     };
+
+    inherit branch compat-list;
   };
 }.${branch}
diff --git a/pkgs/applications/emulators/yuzu/generic.nix b/pkgs/applications/emulators/yuzu/generic.nix
new file mode 100644
index 0000000000000..0429d1fb0ee78
--- /dev/null
+++ b/pkgs/applications/emulators/yuzu/generic.nix
@@ -0,0 +1,157 @@
+{ pname
+, version
+, src
+, branch
+, compat-list
+
+, lib
+, stdenv
+, runCommandLocal
+, substituteAll
+, wrapQtAppsHook
+, alsa-lib
+, boost
+, catch2
+, cmake
+, doxygen
+, ffmpeg
+, fmt_8
+, glslang
+, libjack2
+, libopus
+, libpulseaudio
+, libusb1
+, libva
+, libzip
+, lz4
+, nlohmann_json
+, perl
+, pkg-config
+, python3
+, qtbase
+, qttools
+, qtwebengine
+, rapidjson
+, SDL2
+, sndio
+, speexdsp
+, udev
+, vulkan-headers
+, vulkan-loader
+, zlib
+, zstd
+}:
+
+stdenv.mkDerivation rec {
+  inherit pname version src;
+
+  nativeBuildInputs = [
+    cmake
+    doxygen
+    perl
+    pkg-config
+    python3
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    alsa-lib
+    boost
+    catch2
+    ffmpeg
+    fmt_8
+    glslang
+    libjack2
+    libopus
+    libpulseaudio
+    libusb1
+    libva
+    libzip
+    lz4
+    nlohmann_json
+    qtbase
+    qttools
+    qtwebengine
+    rapidjson
+    SDL2
+    sndio
+    speexdsp
+    udev
+    zlib
+    zstd
+  ];
+
+  doCheck = true;
+
+  # This changes `ir/opt` to `ir/var/empty` in `externals/dynarmic/src/dynarmic/CMakeLists.txt`
+  # making the build fail, as that path does not exist
+  dontFixCmake = true;
+
+  cmakeFlags = [
+    "-DYUZU_USE_BUNDLED_QT=OFF"
+    "-DYUZU_USE_BUNDLED_FFMPEG=OFF"
+    "-DYUZU_USE_BUNDLED_OPUS=OFF"
+    "-DYUZU_USE_EXTERNAL_SDL2=OFF"
+
+    "-DENABLE_QT_TRANSLATION=ON"
+    "-DYUZU_USE_QT_WEB_ENGINE=ON"
+    "-DUSE_DISCORD_PRESENCE=ON"
+
+    # We dont want to bother upstream with potentially outdated compat reports
+    "-DYUZU_ENABLE_COMPATIBILITY_REPORTING=OFF"
+    "-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF" # We provide this deterministically
+  ];
+
+  preConfigure = ''
+    # This prevents a check for submodule directories.
+    rm -f .gitmodules
+
+    # see https://github.com/NixOS/nixpkgs/issues/114044, setting this through cmakeFlags does not work.
+    cmakeFlagsArray+=(
+      "-DTITLE_BAR_FORMAT_IDLE=yuzu ${branch} ${version}"
+      "-DTITLE_BAR_FORMAT_RUNNING=yuzu ${branch} ${version} | {3}"
+    )
+  '';
+
+  # This must be done after cmake finishes as it overwrites the file
+  postConfigure = ''
+    ln -sf ${compat-list} ./dist/compatibility_list/compatibility_list.json
+  '';
+
+  # Fix vulkan detection
+  postFixup = ''
+    for bin in $out/bin/yuzu $out/bin/yuzu-cmd; do
+      wrapProgram $bin --prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib
+    done
+  '';
+
+  passthru.updateScript = runCommandLocal "yuzu-${branch}-updateScript" {
+    script = substituteAll {
+      src = ./update.sh;
+      inherit branch;
+    };
+  } "install -Dm755 $script $out";
+
+  meta = with lib; {
+    homepage = "https://yuzu-emu.org";
+    changelog = "https://yuzu-emu.org/entry";
+    description = "The ${branch} branch of an experimental Nintendo Switch emulator written in C++";
+    longDescription = ''
+      An experimental Nintendo Switch emulator written in C++.
+      Using the mainline branch is recommanded for general usage.
+      Using the early-access branch is recommanded if you would like to try out experimental features, with a cost of stability.
+    '';
+    mainProgram = "yuzu";
+    platforms = [ "x86_64-linux" ];
+    license = with licenses; [
+      gpl3Plus
+      # Icons
+      cc-by-nd-30 cc0
+    ];
+    maintainers = with maintainers; [
+      ivar
+      joshuafern
+      sbruder
+    ];
+  };
+}
diff --git a/pkgs/applications/emulators/yuzu/update.sh b/pkgs/applications/emulators/yuzu/update.sh
new file mode 100755
index 0000000000000..270164902c115
--- /dev/null
+++ b/pkgs/applications/emulators/yuzu/update.sh
@@ -0,0 +1,102 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p nix nix-prefetch-git coreutils curl jq gnused
+
+set -e
+
+# Will be replaced with the actual branch when running this from passthru.updateScript
+BRANCH="@branch@"
+
+if [[ ! "$(basename $PWD)" = "yuzu" ]]; then
+    echo "error: Script must be ran from yuzu's directory!"
+    exit 1
+fi
+
+getLocalVersion() {
+    pushd ../../../.. >/dev/null
+    nix eval --raw -f default.nix "$1".version
+    popd >/dev/null
+}
+
+getLocalHash() {
+    pushd ../../../.. >/dev/null
+    nix eval --raw -f default.nix "$1".src.drvAttrs.outputHash
+    popd >/dev/null
+}
+
+updateCompatList() {
+    NEW_COMPAT_LIST="$(curl -s "https://api.yuzu-emu.org/gamedb")"
+
+    if [[ "$(cat ./compatibility-list.json)" = "${NEW_COMPAT_LIST}" ]]; then
+        echo "Compatibility list is already up to date!"
+    else
+        local TODAY="$(date +"%Y-%m-%d")"
+
+        echo "Compatibility list: updated to $TODAY"
+        echo "${NEW_COMPAT_LIST}" > ./compatibility-list.json
+
+        sed -i -e "s/last updated .*/last updated $TODAY./" ./default.nix
+    fi
+}
+
+updateMainline() {
+    OLD_MAINLINE_VERSION="$(getLocalVersion "yuzu-mainline")"
+    OLD_MAINLINE_HASH="$(getLocalHash "yuzu-mainline")"
+
+    NEW_MAINLINE_VERSION="$(curl -s ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \
+        "https://api.github.com/repos/yuzu-emu/yuzu-mainline/releases?per_page=1" | jq -r '.[0].name' | cut -d" " -f2)"
+
+    if [[ "${OLD_MAINLINE_VERSION}" = "${NEW_MAINLINE_VERSION}" ]]; then
+        echo "yuzu-mainline is already up to date!"
+
+        [ "$KEEP_GOING" ] && return || exit
+    else
+        echo "yuzu-mainline: ${OLD_MAINLINE_VERSION} -> ${NEW_MAINLINE_VERSION}"
+    fi
+
+    echo "  Fetching source code..."
+
+    NEW_MAINLINE_HASH="$(nix-prefetch-git --quiet --fetch-submodules --rev "mainline-0-${NEW_MAINLINE_VERSION}" "https://github.com/yuzu-emu/yuzu-mainline" | jq -r '.sha256')"
+
+    echo "  Succesfully fetched. hash: ${NEW_MAINLINE_HASH}"
+
+    sed -i "s/${OLD_MAINLINE_VERSION}/${NEW_MAINLINE_VERSION}/" ./default.nix
+    sed -i "s/${OLD_MAINLINE_HASH}/${NEW_MAINLINE_HASH}/" ./default.nix
+}
+
+updateEarlyAccess() {
+    OLD_EA_VERSION="$(getLocalVersion "yuzu-ea")"
+    OLD_EA_HASH="$(getLocalHash "yuzu-ea")"
+
+    NEW_EA_VERSION="$(curl -s ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \
+        "https://api.github.com/repos/pineappleEA/pineapple-src/releases?per_page=1" | jq -r '.[0].name' | cut -d"-" -f2 | cut -d" " -f1)"
+
+    if [[ "${OLD_EA_VERSION}" = "${NEW_EA_VERSION}" ]]; then
+        echo "yuzu-ea is already up to date!"
+
+        [ "$KEEP_GOING" ] && return || exit
+    else
+        echo "yuzu-ea: ${OLD_EA_VERSION} -> ${NEW_EA_VERSION}"
+    fi
+
+    echo "  Fetching source code..."
+
+    NEW_EA_HASH="$(nix-prefetch-git --quiet --fetch-submodules --rev "EA-${NEW_EA_VERSION}" "https://github.com/pineappleEA/pineapple-src" | jq -r '.sha256')"
+
+    echo "  Succesfully fetched. hash: ${NEW_EA_HASH}"
+
+    sed -i "s/${OLD_EA_VERSION}/${NEW_EA_VERSION}/" ./default.nix
+    sed -i "s/${OLD_EA_HASH}/${NEW_EA_HASH}/" ./default.nix
+}
+
+if [[ "$BRANCH" = "mainline" ]]; then
+    updateMainline
+    updateCompatList
+elif [[ "$BRANCH" = "early-access" ]]; then
+    updateEarlyAccess
+    updateCompatList
+else
+    KEEP_GOING=1
+    updateMainline
+    updateEarlyAccess
+    updateCompatList
+fi
diff --git a/pkgs/applications/emulators/zesarux/default.nix b/pkgs/applications/emulators/zesarux/default.nix
index 4df6cfafbc013..4a00f9b03496e 100644
--- a/pkgs/applications/emulators/zesarux/default.nix
+++ b/pkgs/applications/emulators/zesarux/default.nix
@@ -50,6 +50,14 @@ stdenv.mkDerivation rec {
       url = "https://github.com/chernandezba/zesarux/commit/4493439b38f565c5be7c36239ecaf0cf80045627.diff";
       sha256 = "sha256-f+21naPcPXdcVvqU8ymlGfl1WkYGOeOBe9B/WFUauTI=";
     })
+
+    # Patch pending upstream release for libcaca-0.99.beta20 support:
+    #  https://github.com/chernandezba/zesarux/pull/1
+    (fetchpatch {
+      name = "libcaca-0.99.beta20.patch";
+      url = "https://github.com/chernandezba/zesarux/commit/542786338d00ab6fcdf712bbd6f5e891e8b26c34.diff";
+      sha256 = "sha256-UvXvBb9Nzw5HNz0uiv2SV1Oeiw7aVCa0jhEbThDRVec=";
+    })
   ];
 
   postPatch = ''
diff --git a/pkgs/applications/finance/irpf/default.nix b/pkgs/applications/finance/irpf/default.nix
index e7ac78da18ef4..5736bc2e388db 100644
--- a/pkgs/applications/finance/irpf/default.nix
+++ b/pkgs/applications/finance/irpf/default.nix
@@ -6,17 +6,18 @@
 , makeDesktopItem
 , makeWrapper
 , unzip
+, xdg-utils
 }:
 
 stdenvNoCC.mkDerivation rec {
   pname = "irpf";
-  version = "2022-1.0";
+  version = "2022-1.3";
 
   src = let
     year = lib.head (lib.splitVersion version);
   in fetchzip {
     url = "https://downloadirpf.receita.fazenda.gov.br/irpf/${year}/irpf/arquivos/IRPF${version}.zip";
-    sha256 = "0h8f51ilvg7m6hlx0y5mpxhac90p32ksbrffw0hxdqbilgjz1s68";
+    sha256 = "sha256-nAmcVPSnMIWuq2zj1xq/657RmzaSmdtxlI9cp9v5P0A=";
   };
 
   nativeBuildInputs = [ unzip makeWrapper copyDesktopItems ];
@@ -47,6 +48,7 @@ stdenvNoCC.mkDerivation rec {
       --add-flags "-Dawt.useSystemAAFontSettings=on" \
       --add-flags "-Dswing.aatext=true" \
       --add-flags "-jar $BASEDIR/${pname}.jar" \
+      --prefix PATH : ${lib.makeBinPath [ xdg-utils ]} \
       --set _JAVA_AWT_WM_NONREPARENTING 1 \
       --set AWT_TOOLKIT MToolkit
 
@@ -57,7 +59,12 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Programa Oficial da Receita para elaboração do IRPF";
+    description = "Brazillian government application for reporting income tax";
+    longDescription = ''
+      Brazillian government application for reporting income tax.
+
+      IRFP - Imposto de Renda Pessoa Física - Receita Federal do Brasil.
+    '';
     homepage = "https://www.gov.br/receitafederal/pt-br";
     license = licenses.unfree;
     platforms = platforms.all;
diff --git a/pkgs/applications/graphics/ImageMagick/7.0.nix b/pkgs/applications/graphics/ImageMagick/7.0.nix
index 7a8cae9bf81aa..b4c06ae77192e 100644
--- a/pkgs/applications/graphics/ImageMagick/7.0.nix
+++ b/pkgs/applications/graphics/ImageMagick/7.0.nix
@@ -29,7 +29,7 @@
 , curl
 , ApplicationServices
 , Foundation
-, testVersion
+, testers
 , imagemagick
 }:
 
@@ -45,13 +45,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "imagemagick";
-  version = "7.1.0-26";
+  version = "7.1.0-31";
 
   src = fetchFromGitHub {
     owner = "ImageMagick";
     repo = "ImageMagick";
     rev = version;
-    hash = "sha256-q1CL64cfyb5fN9aVYJfls+v0XRFd4jH+B8n+UJqPE1I=";
+    hash = "sha256-Pf+x3TnmvKTCDL3dGLyAr6JUl5E3BRi/XW/dkuCr2YA=";
   };
 
   outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
@@ -64,9 +64,7 @@ stdenv.mkDerivation rec {
     ++ (if arch != null then [ "--with-gcc-arch=${arch}" ] else [ "--without-gcc-arch" ])
     ++ lib.optional (librsvg != null) "--with-rsvg"
     ++ lib.optional (liblqr1 != null) "--with-lqr"
-    # libjxl is broken on aarch64 (see meta.broken in libjxl) for now,
-    # let's disable it for now to unbreak the imagemagick build.
-    ++ lib.optional (libjxl != null && !stdenv.isAarch64) "--with-jxl"
+    ++ lib.optional (libjxl != null ) "--with-jxl"
     ++ lib.optionals (ghostscript != null)
       [
         "--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts"
@@ -92,11 +90,8 @@ stdenv.mkDerivation rec {
       libxml2
       libheif
       djvulibre
+      libjxl
     ]
-    # libjxl is broken on aarch64 (see meta.broken in libjxl) for now,
-    # let's disable it for now to unbreak the imagemagick build.
-    ++ lib.optionals (!stdenv.isAarch64)
-      [ libjxl ]
     ++ lib.optionals (!stdenv.hostPlatform.isMinGW)
       [ openexr librsvg openjpeg ]
     ++ lib.optionals stdenv.isDarwin [
@@ -125,7 +120,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru.tests.version =
-    testVersion { package = imagemagick; };
+    testers.testVersion { package = imagemagick; };
 
   meta = with lib; {
     homepage = "http://www.imagemagick.org/";
diff --git a/pkgs/applications/graphics/apitrace/default.nix b/pkgs/applications/graphics/apitrace/default.nix
index f842cf6f5c4b8..756f0da9f3481 100644
--- a/pkgs/applications/graphics/apitrace/default.nix
+++ b/pkgs/applications/graphics/apitrace/default.nix
@@ -11,6 +11,12 @@ stdenv.mkDerivation rec {
     owner = "apitrace";
   };
 
+  patches = [
+    # glibc 2.34 compat
+    # derived from https://github.com/apitrace/apitrace/commit/d28a980802ad48568c87da02d630c8babfe163bb
+    ./glibc-2.34-compat.patch
+  ];
+
   # LD_PRELOAD wrappers need to be statically linked to work against all kinds
   # of games -- so it's fine to use e.g. bundled snappy.
   buildInputs = [ libX11 procps python2 libdwarf qtbase qtwebkit ];
diff --git a/pkgs/applications/graphics/apitrace/glibc-2.34-compat.patch b/pkgs/applications/graphics/apitrace/glibc-2.34-compat.patch
new file mode 100644
index 0000000000000..3f8cebe030c04
--- /dev/null
+++ b/pkgs/applications/graphics/apitrace/glibc-2.34-compat.patch
@@ -0,0 +1,13 @@
+diff --git a/wrappers/dlsym.cpp b/wrappers/dlsym.cpp
+index 2eda082..0c0c8ee 100644
+--- a/wrappers/dlsym.cpp
++++ b/wrappers/dlsym.cpp
+@@ -34,7 +34,7 @@
+ #include "os.hpp"
+ 
+ 
+-#ifdef __GLIBC__
++#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ < 34
+ 
+ 
+ #include <dlfcn.h>
diff --git a/pkgs/applications/graphics/awesomebump/default.nix b/pkgs/applications/graphics/awesomebump/default.nix
index 4d79f10a9e10f..e7bc474e17d34 100644
--- a/pkgs/applications/graphics/awesomebump/default.nix
+++ b/pkgs/applications/graphics/awesomebump/default.nix
@@ -46,7 +46,7 @@ in mkDerivation {
 
     # AwesomeBump expects to find Core and Configs in its current directory.
     makeQtWrapper $d/AwesomeBump $out/bin/AwesomeBump \
-        --run "cd $d"
+        --chdir "$d"
   '';
 
   # $ cd Sources; qmake; make ../workdir/linux-g++-dgb-gl4/obj/glwidget.o
diff --git a/pkgs/applications/graphics/cloudcompare/default.nix b/pkgs/applications/graphics/cloudcompare/default.nix
index cd3f026dfa098..6a6820240f4a9 100644
--- a/pkgs/applications/graphics/cloudcompare/default.nix
+++ b/pkgs/applications/graphics/cloudcompare/default.nix
@@ -1,13 +1,16 @@
 { lib
 , mkDerivation
 , fetchFromGitHub
+, fetchpatch
 , cmake
-, dxflib
+, boost
+, cgal_5
 , eigen
 , flann
 , gdal
+, gmp
 , LASzip
-, libLAS
+, mpfr
 , pdal
 , pcl
 , qtbase
@@ -15,36 +18,43 @@
 , qttools
 , tbb
 , xercesc
+, wrapGAppsHook
 }:
 
 mkDerivation rec {
   pname = "cloudcompare";
-  # Released version(v2.11.3) doesn't work with packaged PCL.
-  version = "unstable-2021-10-14";
+  version = "2.12.0";
 
   src = fetchFromGitHub {
     owner = "CloudCompare";
     repo = "CloudCompare";
-    rev = "1f65ba63756e23291ae91ff52d04da468ade8249";
-    sha256 = "x1bDjFjXIl3r+yo1soWvRB+4KGP50/WBoGlrH013JQo=";
-    # As of writing includes (https://github.com/CloudCompare/CloudCompare/blob/a1c589c006fc325e8b560c77340809b9c7e7247a/.gitmodules):
-    # * libE57Format
-    # * PoissonRecon
-    # * CCCoreLib
+    rev = "v${version}";
+    sha256 = "sha256-hu3ckVocExi9lvxelHAwKb/MZacH4CcCE+vIzElgP/A=";
     fetchSubmodules = true;
   };
 
+  patches = [
+    # fix issues compiling on aarch64. remove once upgraded past 2.12.0
+    (fetchpatch {
+      url = "https://github.com/CloudCompare/CloudCompare/commit/7e71861fdbd6ea704add5ba69343f47d8fc3d5ae.patch";
+      sha256 = "sha256-CRUPjxtKUbsqOyYsjKF+dRZ+E3rqrv5mS3ZaOay2wk8=";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
     eigen # header-only
+    wrapGAppsHook
   ];
 
   buildInputs = [
-    dxflib
+    boost
+    cgal_5
     flann
     gdal
+    gmp
     LASzip
-    libLAS
+    mpfr
     pdal
     pcl
     qtbase
@@ -72,9 +82,32 @@ mkDerivation rec {
     "-DPLUGIN_IO_QPHOTOSCAN=ON"
     "-DPLUGIN_IO_QRDB=OFF" # Riegl rdblib is proprietary; not packaged in nixpkgs
 
+    "-DCCCORELIB_USE_CGAL=ON" # enables Delauney triangulation support
     "-DPLUGIN_STANDARD_QPCL=ON" # Adds PCD import and export support
+    "-DPLUGIN_STANDARD_QANIMATION=ON"
+    "-DPLUGIN_STANDARD_QBROOM=ON"
+    "-DPLUGIN_STANDARD_QCANUPO=ON"
+    "-DPLUGIN_STANDARD_QCOMPASS=ON"
+    "-DPLUGIN_STANDARD_QCSF=ON"
+    "-DPLUGIN_STANDARD_QFACETS=ON"
+    "-DPLUGIN_STANDARD_QHOUGH_NORMALS=ON"
+    "-DEIGEN_ROOT_DIR=${eigen}/include/eigen3" # needed for hough normals
+    "-DPLUGIN_STANDARD_QHPR=ON"
+    "-DPLUGIN_STANDARD_QM3C2=ON"
+    "-DPLUGIN_STANDARD_QMPLANE=ON"
+    "-DPLUGIN_STANDARD_QPOISSON_RECON=ON"
+    "-DPLUGIN_STANDARD_QRANSAC_SD=ON"
+    "-DPLUGIN_STANDARD_QSRA=ON"
+    "-DPLUGIN_STANDARD_QCLOUDLAYERS=ON"
   ];
 
+  dontWrapGApps = true;
+
+  # fix file dialogs crashing on non-NixOS (and avoid double wrapping)
+  preFixup = ''
+    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
   meta = with lib; {
     description = "3D point cloud and mesh processing software";
     homepage = "https://cloudcompare.org";
diff --git a/pkgs/applications/graphics/cq-editor/default.nix b/pkgs/applications/graphics/cq-editor/default.nix
index 33bae268c8a62..bb157ad18db03 100644
--- a/pkgs/applications/graphics/cq-editor/default.nix
+++ b/pkgs/applications/graphics/cq-editor/default.nix
@@ -27,7 +27,7 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
     pyparsing
     pyqtgraph
     spyder
-    pathpy
+    path
     qtconsole
     requests
   ];
diff --git a/pkgs/applications/graphics/darktable/default.nix b/pkgs/applications/graphics/darktable/default.nix
index e950d5e36f5ca..0fe5a0b183e8c 100644
--- a/pkgs/applications/graphics/darktable/default.nix
+++ b/pkgs/applications/graphics/darktable/default.nix
@@ -14,6 +14,7 @@
 , desktop-file-utils
 , exiv2
 , glib
+, glib-networking
 , ilmbase
 , gtk3
 , intltool
@@ -71,6 +72,7 @@ stdenv.mkDerivation rec {
     curl
     exiv2
     glib
+    glib-networking
     gtk3
     ilmbase
     lcms2
diff --git a/pkgs/applications/graphics/drawing/default.nix b/pkgs/applications/graphics/drawing/default.nix
index 40c651ac25705..cd92a0d39ec76 100644
--- a/pkgs/applications/graphics/drawing/default.nix
+++ b/pkgs/applications/graphics/drawing/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 , meson
 , ninja
 , pkg-config
@@ -29,6 +30,16 @@ python3.pkgs.buildPythonApplication rec {
     sha256 = "sha256-qNaljtuA5E/QaLJ9QILPRQCqOvKmX4ZGq/0z5unA8KA=";
   };
 
+  patches = [
+    # Fix build with meson 0.61, can be removed on next update.
+    # https://github.com/NixOS/nixpkgs/issues/167584
+    (fetchpatch {
+      url = "https://github.com/maoschanz/drawing/commit/6dd271089af76b69322500778e3ad6615a117dcc.patch";
+      sha256 = "sha256-4pKWm3LYstVxZ4+gGsZDfM4K+7WBY8EYjylzc/CQZmo=";
+      includes = [ "data/meson.build" "help/meson.build" ];
+    })
+  ];
+
   nativeBuildInputs = [
     appstream-glib
     desktop-file-utils
diff --git a/pkgs/applications/graphics/drawio/default.nix b/pkgs/applications/graphics/drawio/default.nix
index e53030428e61d..f93e415bcd63d 100644
--- a/pkgs/applications/graphics/drawio/default.nix
+++ b/pkgs/applications/graphics/drawio/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "drawio";
-  version = "17.2.4";
+  version = "17.4.2";
 
   src = fetchurl {
     url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/drawio-x86_64-${version}.rpm";
-    sha256 = "sha256-dKl7DxNneoQEL+QhZmpfQCd15RoeDRnkZt3sv8t2KM4=";
+    sha256 = "294f99d9060bc394490b20d2ddab75ed5c0166d7960850f065eb8897ef31a2e3";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/foxotron/default.nix b/pkgs/applications/graphics/foxotron/default.nix
index 39fb78b317f18..f60ea4ea90c8c 100644
--- a/pkgs/applications/graphics/foxotron/default.nix
+++ b/pkgs/applications/graphics/foxotron/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
     cp -R ${lib.optionalString stdenv.hostPlatform.isDarwin "Foxotron.app/Contents/MacOS/"}Foxotron \
       ../{config.json,Shaders,Skyboxes} $out/lib/foxotron/
     wrapProgram $out/lib/foxotron/Foxotron \
-      --run "cd $out/lib/foxotron"
+      --chdir "$out/lib/foxotron"
     ln -s $out/{lib/foxotron,bin}/Foxotron
 
     runHook postInstall
diff --git a/pkgs/applications/graphics/geeqie/default.nix b/pkgs/applications/graphics/geeqie/default.nix
index 037cf7c8ed624..98103efab64f3 100644
--- a/pkgs/applications/graphics/geeqie/default.nix
+++ b/pkgs/applications/graphics/geeqie/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "geeqie";
-  version = "1.7.2";
+  version = "1.7.3";
 
   src = fetchFromGitHub {
     owner = "BestImageViewer";
     repo = "geeqie";
     rev = "v${version}";
-    sha256 = "sha256-Abr7trlms6bxOAqE6xNKRv51TBGNilNdBhUZUg7OTKY=";
+    sha256 = "sha256-O+yz/uNxueR+naEJG8EZ+k/JutRjJ5wwbB9DYb8YNLw=";
   };
 
   patches = [
diff --git a/pkgs/applications/graphics/gimp/plugins/default.nix b/pkgs/applications/graphics/gimp/plugins/default.nix
index fe1afe5b07b64..79760bb31a650 100644
--- a/pkgs/applications/graphics/gimp/plugins/default.nix
+++ b/pkgs/applications/graphics/gimp/plugins/default.nix
@@ -5,7 +5,7 @@
 { config, lib, pkgs }:
 
 let
-  inherit (pkgs) stdenv fetchurl pkg-config intltool glib fetchFromGitHub;
+  inherit (pkgs) stdenv fetchurl fetchpatch pkg-config intltool glib fetchFromGitHub;
 in
 
 lib.makeScope pkgs.newScope (self:
@@ -66,6 +66,45 @@ in
   # Allow overriding GIMP package in the scope.
   inherit (pkgs) gimp;
 
+  bimp = pluginDerivation rec {
+    /* menu:
+       File/Batch Image Manipulation...
+    */
+    pname = "bimp";
+    version = "2.6";
+
+    src = fetchFromGitHub {
+      owner = "alessandrofrancesconi";
+      repo = "gimp-plugin-bimp";
+      rev = "v${version}";
+      hash = "sha256-IJ3+/9UwxJTRo0hUdzlOndOHwso1wGv7Q4UuhbsFkco=";
+    };
+
+    patches = [
+      # Allow overriding installation path
+      # https://github.com/alessandrofrancesconi/gimp-plugin-bimp/pull/311
+      (fetchpatch {
+        url = "https://github.com/alessandrofrancesconi/gimp-plugin-bimp/commit/098edb5f70a151a3f377478fd6e0d08ed56b8ef7.patch";
+        sha256 = "2Afx9fmdn6ztbsll2f2j7mfffMWYWyr4BuBy9ySV6vM=";
+      })
+    ];
+
+    nativeBuildInputs = with pkgs; [ which ];
+
+    installFlags = [
+      "SYSTEM_INSTALL_DIR=${placeholder "out"}/${gimp.targetPluginDir}/bimp"
+    ];
+
+    installTargets = [ "install-admin" ];
+
+    meta = with lib; {
+      description = "Batch Image Manipulation Plugin for GIMP";
+      homepage = "https://github.com/alessandrofrancesconi/gimp-plugin-bimp";
+      license = licenses.gpl2Plus;
+      maintainers = with maintainers; [ ];
+    };
+  };
+
   gap = pluginDerivation {
     /* menu:
        Video
diff --git a/pkgs/applications/graphics/gscan2pdf/default.nix b/pkgs/applications/graphics/gscan2pdf/default.nix
index 9d8ae0c8d35f9..214688b56f899 100644
--- a/pkgs/applications/graphics/gscan2pdf/default.nix
+++ b/pkgs/applications/graphics/gscan2pdf/default.nix
@@ -10,11 +10,11 @@ with lib;
 
 perlPackages.buildPerlPackage rec {
   pname = "gscan2pdf";
-  version = "2.12.5";
+  version = "2.12.6";
 
   src = fetchurl {
     url = "mirror://sourceforge/gscan2pdf/gscan2pdf-${version}.tar.xz";
-    sha256 = "sha256-MFWW9DTJ/svtgN3fbw+zeGpgg3pgIoC9jZ1HkG5p6sc=";
+    sha256 = "sha256-9ntpUEM3buT3EhneXz9G8bibvzOnEK6Xt0jJcTvLKT0=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
@@ -111,8 +111,6 @@ perlPackages.buildPerlPackage rec {
     # # Looks like you failed 1 test of 1.
     # t/169_import_scan.t ........................... Dubious, test returned 1 (wstat 256, 0x100)
     rm t/169_import_scan.t
-    # t/1604_import_multipage_DjVu.t ................ Dubious, test returned 255 (wstat 65280, 0xff00)
-    rm t/1604_import_multipage_DjVu.t
 
     # Disable a test which passes but reports an incorrect status
     # t/0601_Dialog_Scan.t .......................... All 14 subtests passed
diff --git a/pkgs/applications/graphics/hydrus/default.nix b/pkgs/applications/graphics/hydrus/default.nix
index 1d0cf4bec7d08..5a25ad3998f71 100644
--- a/pkgs/applications/graphics/hydrus/default.nix
+++ b/pkgs/applications/graphics/hydrus/default.nix
@@ -10,14 +10,14 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "hydrus";
-  version = "478";
+  version = "482";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "hydrusnetwork";
     repo = "hydrus";
-    rev = "v${version}";
-    sha256 = "sha256-ZsQzKc2fOFTzI/kBS8ws2+XT9kRAn4L55n1EZgVy4Kk=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-b7zMHwsyZv4dCn4Gd/2a+MHhT3IHISJup/zm95pEcQ4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/imgbrd-grabber/default.nix b/pkgs/applications/graphics/imgbrd-grabber/default.nix
index 59d1e6817bd9e..b9f838c016f82 100644
--- a/pkgs/applications/graphics/imgbrd-grabber/default.nix
+++ b/pkgs/applications/graphics/imgbrd-grabber/default.nix
@@ -33,12 +33,12 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     openssl
-    makeWrapper
     libpulseaudio
     typescript
   ];
 
   nativeBuildInputs = [
+    makeWrapper
     qtmultimedia
     qtbase
     qtdeclarative
diff --git a/pkgs/applications/graphics/inkscape/default.nix b/pkgs/applications/graphics/inkscape/default.nix
index 0958676cc99bd..d29d1d65346e5 100644
--- a/pkgs/applications/graphics/inkscape/default.nix
+++ b/pkgs/applications/graphics/inkscape/default.nix
@@ -48,6 +48,7 @@ let
       lxml
       pillow
       scour
+      pyserial
     ]);
 in
 stdenv.mkDerivation rec {
diff --git a/pkgs/applications/graphics/jpegrescan/default.nix b/pkgs/applications/graphics/jpegrescan/default.nix
index 1a7320bf6930e..f96742e6c067b 100644
--- a/pkgs/applications/graphics/jpegrescan/default.nix
+++ b/pkgs/applications/graphics/jpegrescan/default.nix
@@ -28,8 +28,12 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ perlPackages.FileSlurp ];
 
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
   buildInputs = [
-    perl libjpeg_turbo makeWrapper
+    perl libjpeg_turbo
   ];
 
   meta = with lib; {
diff --git a/pkgs/applications/graphics/mypaint/default.nix b/pkgs/applications/graphics/mypaint/default.nix
index 7b83bdec8c6bc..b93b4794db81f 100644
--- a/pkgs/applications/graphics/mypaint/default.nix
+++ b/pkgs/applications/graphics/mypaint/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 , gtk3
 , gettext
 , json_c
@@ -31,6 +32,15 @@ in buildPythonApplication rec {
     fetchSubmodules = true;
   };
 
+  patches = [
+    # Fix build due to setuptools issue.
+    # https://github.com/mypaint/mypaint/pull/1183
+    (fetchpatch {
+      url = "https://github.com/mypaint/mypaint/commit/423950bec96d6057eac70442de577364d784a847.patch";
+      sha256 = "OxJJOi20bFMRibL59zx6svtMrkgeMYyEvbdSXbZHqpc=";
+    })
+  ];
+
   nativeBuildInputs = [
     gettext
     pkg-config
diff --git a/pkgs/applications/graphics/openboard/default.nix b/pkgs/applications/graphics/openboard/default.nix
index 084787d6315be..0725acd2379d8 100644
--- a/pkgs/applications/graphics/openboard/default.nix
+++ b/pkgs/applications/graphics/openboard/default.nix
@@ -33,11 +33,10 @@ in mkDerivation rec {
   };
 
   patches = [
-    # Poppler requires at least C++17
+    # Fix build with poppler >= 22.01
     (fetchpatch {
-      name = "use-c-17-for-pdf-on-linux-builds";
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/use-c-17-for-pdf-on-linux-builds.patch?h=openboard";
-      sha256 = "sha256-M6HigpOo8ul7qaub4cd7/ATUc85HezEyKyDuzsrZvC8=";
+      url = "https://github.com/OpenBoard-org/OpenBoard/commit/3a9b043e0fafec08e4123f362dcb7750f7476b59.patch";
+      sha256 = "sha256-yD163FK79HBU1W7m6sLxhfsRo4r/38zYTFWgeyqwU1o=";
     })
   ];
 
diff --git a/pkgs/applications/graphics/openscad/default.nix b/pkgs/applications/graphics/openscad/default.nix
index 413e16718216e..2379962bb55f7 100644
--- a/pkgs/applications/graphics/openscad/default.nix
+++ b/pkgs/applications/graphics/openscad/default.nix
@@ -59,6 +59,10 @@ mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  preBuild = ''
+    make objects/parser.cxx
+  '';
+
   postInstall = lib.optionalString stdenv.isDarwin ''
     mkdir $out/Applications
     mv $out/bin/*.app $out/Applications
diff --git a/pkgs/applications/graphics/pixeluvo/default.nix b/pkgs/applications/graphics/pixeluvo/default.nix
index d88be43698446..0c90b786baca9 100644
--- a/pkgs/applications/graphics/pixeluvo/default.nix
+++ b/pkgs/applications/graphics/pixeluvo/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
     description = "A Beautifully Designed Image and Photo Editor for Windows and Linux";
     homepage = "http://www.pixeluvo.com/";
     license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ wolfangaukang ];
   };
 }
diff --git a/pkgs/applications/graphics/rawtherapee/default.nix b/pkgs/applications/graphics/rawtherapee/default.nix
index 7d1acc1dcd69a..494180fdb598d 100644
--- a/pkgs/applications/graphics/rawtherapee/default.nix
+++ b/pkgs/applications/graphics/rawtherapee/default.nix
@@ -16,6 +16,9 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config wrapGAppsHook ];
 
+  # This patch is upstream; remove it in 5.9.
+  patches = [ ./fix-6324.patch ];
+
   buildInputs = [
     pixman libpthreadstubs gtkmm3 libXau libXdmcp
     lcms2 libiptcdata libcanberra-gtk3 fftw expat pcre libsigcxx lensfun librsvg
diff --git a/pkgs/applications/graphics/rawtherapee/fix-6324.patch b/pkgs/applications/graphics/rawtherapee/fix-6324.patch
new file mode 100644
index 0000000000000..fa324c2c9389b
--- /dev/null
+++ b/pkgs/applications/graphics/rawtherapee/fix-6324.patch
@@ -0,0 +1,356 @@
+See:
+  https://github.com/Beep6581/RawTherapee/issues/6324
+  https://github.com/Beep6581/RawTherapee/commit/2e0137d54243eb729d4a5f939c4320ec8f8f415d
+
+diff --git a/rtengine/canon_cr3_decoder.cc b/rtengine/canon_cr3_decoder.cc
+index 6274154cb..98c743dad 100644
+--- a/rtengine/canon_cr3_decoder.cc
++++ b/rtengine/canon_cr3_decoder.cc
+@@ -662,7 +662,7 @@ std::uint32_t _byteswap_ulong(std::uint32_t x)
+ #endif
+ 
+ struct LibRaw_abstract_datastream {
+-    IMFILE* ifp;
++    rtengine::IMFILE* ifp;
+ 
+     void lock()
+     {
+diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc
+index 812f122b3..5da696af2 100644
+--- a/rtengine/dcraw.cc
++++ b/rtengine/dcraw.cc
+@@ -2025,7 +2025,7 @@ void CLASS phase_one_load_raw_c()
+ #endif
+ {
+     int len[2], pred[2];
+-    IMFILE ifpthr = *ifp;
++    rtengine::IMFILE ifpthr = *ifp;
+     ifpthr.plistener = nullptr;
+ 
+ #ifdef _OPENMP
+@@ -3380,7 +3380,7 @@ void CLASS sony_arw2_load_raw()
+ {
+     uchar *data = new (std::nothrow) uchar[raw_width + 1];
+     merror(data, "sony_arw2_load_raw()");
+-    IMFILE ifpthr = *ifp;
++    rtengine::IMFILE ifpthr = *ifp;
+     int pos = ifpthr.pos;
+     ushort pix[16];
+ 
+@@ -6394,7 +6394,7 @@ int CLASS parse_tiff_ifd (int base)
+   unsigned sony_curve[] = { 0,0,0,0,0,4095 };
+   unsigned *buf, sony_offset=0, sony_length=0, sony_key=0;
+   struct jhead jh;
+-/*RT*/  IMFILE *sfp;
++/*RT*/  rtengine::IMFILE *sfp;
+ /*RT*/  int pana_raw = 0;
+ 
+   if (tiff_nifds >= sizeof tiff_ifd / sizeof tiff_ifd[0])
+@@ -6958,7 +6958,7 @@ it under the terms of the one of two licenses as you choose:
+     fread (buf, sony_length, 1, ifp);
+     sony_decrypt (buf, sony_length/4, 1, sony_key);
+     sfp = ifp;
+-/*RT*/ ifp = fopen (buf, sony_length);
++/*RT*/ ifp = rtengine::fopen (buf, sony_length);
+ // if ((ifp = tmpfile())) {
+ // fwrite (buf, sony_length, 1, ifp);
+ // fseek (ifp, 0, SEEK_SET);
+@@ -7264,7 +7264,7 @@ void CLASS parse_external_jpeg()
+ {
+   const char *file, *ext;
+   char *jname, *jfile, *jext;
+-/*RT*/  IMFILE *save=ifp;
++/*RT*/  rtengine::IMFILE *save=ifp;
+ 
+   ext  = strrchr (ifname, '.');
+   file = strrchr (ifname, '/');
+@@ -7292,7 +7292,7 @@ void CLASS parse_external_jpeg()
+       *jext = '0';
+     }
+   if (strcmp (jname, ifname)) {
+-/*RT*/    if ((ifp = fopen (jname))) {
++/*RT*/    if ((ifp = rtengine::fopen (jname))) {
+ //    if ((ifp = fopen (jname, "rb"))) {
+       if (verbose)
+ 	fprintf (stderr,_("Reading metadata from %s ...\n"), jname);
+diff --git a/rtengine/dcraw.h b/rtengine/dcraw.h
+index 89c1fcaff..f25157088 100644
+--- a/rtengine/dcraw.h
++++ b/rtengine/dcraw.h
+@@ -73,7 +73,7 @@ public:
+ 
+ protected:
+     int exif_base, ciff_base, ciff_len;
+-    IMFILE *ifp;
++    rtengine::IMFILE *ifp;
+     FILE *ofp;
+     short order;
+     const char *ifname;
+@@ -125,7 +125,7 @@ protected:
+         int         cur_buf_size;    // buffer size
+         uchar       *cur_buf;        // currently read block
+         int         fillbytes;          // Counter to add extra byte for block size N*16
+-        IMFILE      *input;
++        rtengine::IMFILE      *input;
+         struct int_pair grad_even[3][41];    // tables of gradients
+         struct int_pair grad_odd[3][41];
+         ushort		*linealloc;
+@@ -278,7 +278,7 @@ void parse_redcine();
+ class getbithuff_t
+ {
+ public:
+-   getbithuff_t(DCraw *p,IMFILE *&i, unsigned &z):parent(p),bitbuf(0),vbits(0),reset(0),ifp(i),zero_after_ff(z){}
++   getbithuff_t(DCraw *p,rtengine::IMFILE *&i, unsigned &z):parent(p),bitbuf(0),vbits(0),reset(0),ifp(i),zero_after_ff(z){}
+    unsigned operator()(int nbits, ushort *huff);
+ 
+ private:
+@@ -288,7 +288,7 @@ private:
+    DCraw *parent;
+    unsigned bitbuf;
+    int vbits, reset;
+-   IMFILE *&ifp;
++   rtengine::IMFILE *&ifp;
+    unsigned &zero_after_ff;
+ };
+ getbithuff_t getbithuff;
+@@ -296,7 +296,7 @@ getbithuff_t getbithuff;
+ class nikbithuff_t
+ {
+ public:
+-   explicit nikbithuff_t(IMFILE *&i):bitbuf(0),errors(0),vbits(0),ifp(i){}
++   explicit nikbithuff_t(rtengine::IMFILE *&i):bitbuf(0),errors(0),vbits(0),ifp(i){}
+    void operator()() {bitbuf = vbits = 0;};
+    unsigned operator()(int nbits, ushort *huff);
+    unsigned errorCount() { return errors; }
+@@ -309,7 +309,7 @@ private:
+    }
+    unsigned bitbuf, errors;
+    int vbits;
+-   IMFILE *&ifp;
++   rtengine::IMFILE *&ifp;
+ };
+ nikbithuff_t nikbithuff;
+ 
+@@ -378,7 +378,7 @@ void parse_qt (int end);
+ // ph1_bithuff(int nbits, ushort *huff);
+ class ph1_bithuff_t {
+ public:
+-   ph1_bithuff_t(DCraw *p, IMFILE *i, short &o):order(o),ifp(i),bitbuf(0),vbits(0){}
++   ph1_bithuff_t(DCraw *p, rtengine::IMFILE *i, short &o):order(o),ifp(i),bitbuf(0),vbits(0){}
+    unsigned operator()(int nbits, ushort *huff);
+    unsigned operator()(int nbits);
+    unsigned operator()();
+@@ -412,7 +412,7 @@ private:
+    }
+ 
+    short &order;
+-   IMFILE* const ifp;
++   rtengine::IMFILE* const ifp;
+    UINT64 bitbuf;
+    int vbits;
+ };
+@@ -430,11 +430,11 @@ void nokia_load_raw();
+ 
+ class pana_bits_t{
+ public:
+-   pana_bits_t(IMFILE *i, unsigned &u, unsigned enc):
++   pana_bits_t(rtengine::IMFILE *i, unsigned &u, unsigned enc):
+     ifp(i), load_flags(u), vbits(0), encoding(enc) {}
+    unsigned operator()(int nbits, unsigned *bytes=nullptr);
+ private:
+-   IMFILE *ifp;
++   rtengine::IMFILE *ifp;
+    unsigned &load_flags;
+    uchar buf[0x4000];
+    int vbits;
+diff --git a/rtengine/dfmanager.cc b/rtengine/dfmanager.cc
+index 1fb1d2e1b..951df2248 100644
+--- a/rtengine/dfmanager.cc
++++ b/rtengine/dfmanager.cc
+@@ -540,7 +540,7 @@ std::vector<badPix> *DFManager::getHotPixels ( const std::string &mak, const std
+ 
+ int DFManager::scanBadPixelsFile( Glib::ustring filename )
+ {
+-    FILE *file = fopen( filename.c_str(), "r" );
++    FILE *file = ::fopen( filename.c_str(), "r" );
+ 
+     if( !file ) {
+         return false;
+diff --git a/rtengine/myfile.cc b/rtengine/myfile.cc
+index 842766dcf..2321d18bb 100644
+--- a/rtengine/myfile.cc
++++ b/rtengine/myfile.cc
+@@ -70,7 +70,7 @@ int munmap(void *start, size_t length)
+ 
+ #ifdef MYFILE_MMAP
+ 
+-IMFILE* fopen (const char* fname)
++rtengine::IMFILE* rtengine::fopen (const char* fname)
+ {
+     int fd;
+ 
+@@ -123,13 +123,13 @@ IMFILE* fopen (const char* fname)
+     return mf;
+ }
+ 
+-IMFILE* gfopen (const char* fname)
++rtengine::IMFILE* rtengine::gfopen (const char* fname)
+ {
+     return fopen(fname);
+ }
+ #else
+ 
+-IMFILE* fopen (const char* fname)
++rtengine::IMFILE* rtengine::fopen (const char* fname)
+ {
+ 
+     FILE* f = g_fopen (fname, "rb");
+@@ -152,7 +152,7 @@ IMFILE* fopen (const char* fname)
+     return mf;
+ }
+ 
+-IMFILE* gfopen (const char* fname)
++rtengine::IMFILE* rtengine::gfopen (const char* fname)
+ {
+ 
+     FILE* f = g_fopen (fname, "rb");
+@@ -176,7 +176,7 @@ IMFILE* gfopen (const char* fname)
+ }
+ #endif //MYFILE_MMAP
+ 
+-IMFILE* fopen (unsigned* buf, int size)
++rtengine::IMFILE* rtengine::fopen (unsigned* buf, int size)
+ {
+ 
+     IMFILE* mf = new IMFILE;
+@@ -190,7 +190,7 @@ IMFILE* fopen (unsigned* buf, int size)
+     return mf;
+ }
+ 
+-void fclose (IMFILE* f)
++void rtengine::fclose (IMFILE* f)
+ {
+ #ifdef MYFILE_MMAP
+ 
+@@ -207,7 +207,7 @@ void fclose (IMFILE* f)
+     delete f;
+ }
+ 
+-int fscanf (IMFILE* f, const char* s ...)
++int rtengine::fscanf (IMFILE* f, const char* s ...)
+ {
+     // fscanf not easily wrapped since we have no terminating \0 at end
+     // of file data and vsscanf() won't tell us how many characters that
+@@ -253,7 +253,7 @@ int fscanf (IMFILE* f, const char* s ...)
+ }
+ 
+ 
+-char* fgets (char* s, int n, IMFILE* f)
++char* rtengine::fgets (char* s, int n, IMFILE* f)
+ {
+ 
+     if (f->pos >= f->size) {
+@@ -270,7 +270,7 @@ char* fgets (char* s, int n, IMFILE* f)
+     return s;
+ }
+ 
+-void imfile_set_plistener(IMFILE *f, rtengine::ProgressListener *plistener, double progress_range)
++void rtengine::imfile_set_plistener(IMFILE *f, rtengine::ProgressListener *plistener, double progress_range)
+ {
+     f->plistener = plistener;
+     f->progress_range = progress_range;
+@@ -278,7 +278,7 @@ void imfile_set_plistener(IMFILE *f, rtengine::ProgressListener *plistener, doub
+     f->progress_current = 0;
+ }
+ 
+-void imfile_update_progress(IMFILE *f)
++void rtengine::imfile_update_progress(IMFILE *f)
+ {
+     if (!f->plistener || f->progress_current < f->progress_next) {
+         return;
+diff --git a/rtengine/myfile.h b/rtengine/myfile.h
+index 423edea9a..c655696e6 100644
+--- a/rtengine/myfile.h
++++ b/rtengine/myfile.h
+@@ -30,8 +30,6 @@ namespace rtengine
+ 
+ class ProgressListener;
+ 
+-}
+-
+ struct IMFILE {
+     int fd;
+     ssize_t pos;
+@@ -141,3 +139,5 @@ inline unsigned char* fdata(int offset, IMFILE* f)
+ 
+ int fscanf (IMFILE* f, const char* s ...);
+ char* fgets (char* s, int n, IMFILE* f);
++
++}
+diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc
+index 9da601e2a..097b9e711 100644
+--- a/rtengine/rtthumbnail.cc
++++ b/rtengine/rtthumbnail.cc
+@@ -1922,7 +1922,7 @@ bool Thumbnail::writeImage (const Glib::ustring& fname)
+ 
+     Glib::ustring fullFName = fname + ".rtti";
+ 
+-    FILE* f = g_fopen (fullFName.c_str (), "wb");
++    FILE* f = ::g_fopen (fullFName.c_str (), "wb");
+ 
+     if (!f) {
+         return false;
+@@ -1965,7 +1965,7 @@ bool Thumbnail::readImage (const Glib::ustring& fname)
+         return false;
+     }
+ 
+-    FILE* f = g_fopen(fullFName.c_str (), "rb");
++    FILE* f = ::g_fopen(fullFName.c_str (), "rb");
+ 
+     if (!f) {
+         return false;
+@@ -2191,7 +2191,7 @@ bool Thumbnail::writeData  (const Glib::ustring& fname)
+         return false;
+     }
+ 
+-    FILE *f = g_fopen (fname.c_str (), "wt");
++    FILE *f = ::g_fopen (fname.c_str (), "wt");
+ 
+     if (!f) {
+         if (settings->verbose) {
+@@ -2214,7 +2214,7 @@ bool Thumbnail::readEmbProfile  (const Glib::ustring& fname)
+     embProfile = nullptr;
+     embProfileLength = 0;
+ 
+-    FILE* f = g_fopen (fname.c_str (), "rb");
++    FILE* f = ::g_fopen (fname.c_str (), "rb");
+ 
+     if (f) {
+         if (!fseek (f, 0, SEEK_END)) {
+@@ -2242,7 +2242,7 @@ bool Thumbnail::writeEmbProfile (const Glib::ustring& fname)
+ {
+ 
+     if (embProfileData) {
+-        FILE* f = g_fopen (fname.c_str (), "wb");
++        FILE* f = ::g_fopen (fname.c_str (), "wb");
+ 
+         if (f) {
+             fwrite (embProfileData, 1, embProfileLength, f);
+@@ -2257,7 +2257,7 @@ bool Thumbnail::writeEmbProfile (const Glib::ustring& fname)
+ bool Thumbnail::readAEHistogram  (const Glib::ustring& fname)
+ {
+ 
+-    FILE* f = g_fopen(fname.c_str(), "rb");
++    FILE* f = ::g_fopen(fname.c_str(), "rb");
+ 
+     if (!f) {
+         aeHistogram.reset();
+@@ -2280,7 +2280,7 @@ bool Thumbnail::writeAEHistogram (const Glib::ustring& fname)
+ {
+ 
+     if (aeHistogram) {
+-        FILE* f = g_fopen (fname.c_str (), "wb");
++        FILE* f = ::g_fopen (fname.c_str (), "wb");
+ 
+         if (f) {
+             fwrite (&aeHistogram[0], 1, (65536 >> aeHistCompression)*sizeof (aeHistogram[0]), f);
diff --git a/pkgs/applications/graphics/shotwell/default.nix b/pkgs/applications/graphics/shotwell/default.nix
index 56d41d3dd503b..098d330f004a1 100644
--- a/pkgs/applications/graphics/shotwell/default.nix
+++ b/pkgs/applications/graphics/shotwell/default.nix
@@ -41,11 +41,11 @@
 
 stdenv.mkDerivation rec {
   pname = "shotwell";
-  version = "0.30.14";
+  version = "0.30.15";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-McLkgzkI02GcssNnWgXw2lnCuqduKLkFOF/VbADBKJU=";
+    sha256 = "sha256-OlKtYLEC2g31902wMcRdTM8mNRPJVGFu4WZL9PTpvck=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/skanpage/default.nix b/pkgs/applications/graphics/skanpage/default.nix
index 17a228808972f..bee04cbad52c1 100644
--- a/pkgs/applications/graphics/skanpage/default.nix
+++ b/pkgs/applications/graphics/skanpage/default.nix
@@ -30,7 +30,7 @@ mkDerivation rec {
     description = "KDE utility to scan images and multi-page documents";
     homepage = "https://apps.kde.org/skanpage";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ samuelgrf ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/graphics/synfigstudio/default.nix b/pkgs/applications/graphics/synfigstudio/default.nix
index 2b9fee974b377..57f3560233609 100644
--- a/pkgs/applications/graphics/synfigstudio/default.nix
+++ b/pkgs/applications/graphics/synfigstudio/default.nix
@@ -103,10 +103,10 @@ stdenv.mkDerivation {
 
   preConfigure = "./bootstrap.sh";
 
-  nativeBuildInputs = [ pkg-config autoreconfHook gettext ];
+  nativeBuildInputs = [ pkg-config autoreconfHook gettext makeWrapper ];
   buildInputs = [
     ETL boost cairo glibmm gtk3 gtkmm3 imagemagick intltool
-    libjack2 libsigcxx libxmlxx makeWrapper mlt-qt5
+    libjack2 libsigcxx libxmlxx mlt-qt5
     synfig which gnome.adwaita-icon-theme
   ];
 
diff --git a/pkgs/applications/graphics/unigine-sanctuary/default.nix b/pkgs/applications/graphics/unigine-sanctuary/default.nix
new file mode 100644
index 0000000000000..25d10d6166783
--- /dev/null
+++ b/pkgs/applications/graphics/unigine-sanctuary/default.nix
@@ -0,0 +1,97 @@
+{ lib
+, stdenv
+, fetchurl
+, makeWrapper
+, autoPatchelfHook
+, libX11
+, libXext
+, libXrandr
+, libXinerama
+, libglvnd
+, openal
+, glibc
+, makeDesktopItem
+, copyDesktopItems
+, imagemagick
+, liberation_ttf
+}:
+stdenv.mkDerivation rec{
+  pname = "unigine-sanctuary";
+  version = "2.3";
+
+  src = fetchurl {
+    url = "https://m12-assets.unigine.com/d/Unigine_Sanctuary-${version}.run";
+    sha256 = "1m9r79q33hx213zg3c2kknnc7hi8jp2h88s9qynny4k4rg8vpa18";
+  };
+
+  libPath = lib.makeLibraryPath [
+    libglvnd
+    openal
+    glibc
+  ];
+
+  installPhase = ''
+    bash $src --target ${pname}-${version}
+
+    install -D -m 0755 ${pname}-${version}/bin/libUnigine_x86.so $out/lib/unigine/sanctuary/bin/libUnigine_x86.so
+    install -D -m 0755 ${pname}-${version}/bin/Sanctuary $out/lib/unigine/sanctuary/bin/Sanctuary
+    install -D -m 0755 ${pname}-${version}/1024x768_windowed.sh $out/bin/Sanctuary
+
+    cp -R ${pname}-${version}/data $out/lib/unigine/sanctuary
+
+    wrapProgram $out/bin/Sanctuary \
+      --prefix LD_LIBRARY_PATH : ${libPath}:$out/lib/unigine/sanctuary/bin \
+      --run "cd $out/lib/unigine/sanctuary"
+
+    convert -size 256x256 xc:Transparent -define gradient:center="128,128" -define gradient:vector="128,128 128,128" \
+      -define gradient:radii="128,128" -fill radial-gradient:'rgb(164,0,0)-rgb(67,1,3)' \
+      -draw "roundRectangle 0,0 256,256 50,50" ${pname}-${version}/icon.png
+    convert ${pname}-${version}/icon.png -size 181.991x181.991 -font ${liberation_ttf}/share/fonts/truetype/LiberationSans-Regular.ttf \
+      -pointsize 181.991 -define gradient:center="128,128" -define gradient:vector="128,128 128,128" \
+      -define gradient:radii="46.6974,46.6974" -fill radial-gradient:'rgb(249,197,46)-rgb(218,144,31)' \
+      -stroke none -strokewidth 4.54977 -draw 'text 69.3061,194.247 "S"' ${pname}-${version}/icon.png
+
+    for RES in 16 24 32 48 64 128 256; do
+      mkdir -p $out/share/icons/hicolor/"$RES"x"$RES"/apps
+      convert ${pname}-${version}/icon.png -resize "$RES"x"$RES" $out/share/icons/hicolor/"$RES"x"$RES"/apps/Sanctuary.png
+    done
+    convert ${pname}-${version}/icon.png -resize 128x128 $out/share/icons/Sanctuary.png
+
+    runHook postInstall
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "Sanctuary";
+      exec = "Sanctuary";
+      genericName = "A GPU Stress test tool from the UNIGINE";
+      icon = "Sanctuary";
+      desktopName = "Sanctuary Benchmark";
+    })
+  ];
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    makeWrapper
+    imagemagick
+    copyDesktopItems
+  ];
+
+  buildInputs = [
+    stdenv.cc.cc
+    libX11
+    libXext
+    libXrandr
+    libXinerama
+  ];
+
+  dontUnpack = true;
+
+  meta = {
+    description = "The Unigine Heaven GPU benchmarking tool";
+    homepage = "https://benchmark.unigine.com/sanctuary";
+    license = lib.licenses.unfree;
+    maintainers = [ lib.maintainers.BarinovMaxim ];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/pkgs/applications/graphics/unigine-tropics/default.nix b/pkgs/applications/graphics/unigine-tropics/default.nix
new file mode 100644
index 0000000000000..1057c2fa6cad7
--- /dev/null
+++ b/pkgs/applications/graphics/unigine-tropics/default.nix
@@ -0,0 +1,95 @@
+{ lib
+, stdenv
+, fetchurl
+, makeWrapper
+, autoPatchelfHook
+, libX11
+, libXext
+, libXrandr
+, libXinerama
+, libglvnd
+, openal
+, glibc
+, makeDesktopItem
+, copyDesktopItems
+, imagemagick
+}:
+let
+  version = "1.3";
+in
+stdenv.mkDerivation {
+  pname = "unigine-tropics";
+  inherit version;
+
+  src = fetchurl {
+    url = "http://m12-assets.unigine.com/d/Unigine_Tropics-${version}.run";
+    sha256 = "0icasdp46fjnic7gk83pknjx0gpap9j202dm0llcfg5zin5kbq7x";
+  };
+
+  libPath = lib.makeLibraryPath [
+    libglvnd
+    openal
+    glibc
+  ];
+
+  installPhase = ''
+    bash $src --target $name
+
+    install -D -m 0755 $name/bin/libUnigine_x86.so $out/lib/unigine/tropics/bin/libUnigine_x86.so
+    install -D -m 0755 $name/bin/Tropics $out/lib/unigine/tropics/bin/Tropics
+    install -D -m 0755 $name/1024x768_windowed.sh $out/bin/Tropics
+
+    cp -R $name/data $out/lib/unigine/tropics
+
+    wrapProgram $out/bin/Tropics \
+      --prefix LD_LIBRARY_PATH : $libPath:$out/lib/unigine/tropics/bin \
+      --run "cd $out/lib/unigine/tropics"
+
+    convert -size 256x256 xc:Transparent -fill gradient:'dodgerblue-white' -stroke Transparent -draw "roundrectangle 0,0 256,256 50,50"  $name/icon.png
+    convert $name/icon.png -fill white -stroke white -draw "polygon  69.2564,84.1261 117.9,84.1261 117.9,206.56 138.1,206.56 138.1,84.1261 186.744,84.1261 186.744,65.9877 69.2564,65.9877 69.2564,84.1261" $name/icon.png
+
+    for RES in 16 24 32 48 64 128 256
+    do
+        mkdir -p $out/share/icons/hicolor/"$RES"x"$RES"/apps
+        convert $name/icon.png -resize "$RES"x"$RES" $out/share/icons/hicolor/"$RES"x"$RES"/apps/Tropics.png
+    done
+    convert $name/icon.png -resize 128x128 $out/share/icons/Tropics.png
+
+    runHook postInstall
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "Tropics";
+      exec = "Tropics";
+      genericName = "A GPU Stress test tool from the UNIGINE";
+      icon = "Tropics";
+      desktopName = "Tropics Benchmark";
+    })
+  ];
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    makeWrapper
+    imagemagick
+    copyDesktopItems
+  ];
+
+  buildInputs = [
+    stdenv.cc.cc
+    libX11
+    libXext
+    libXrandr
+    libXinerama
+  ];
+
+  dontUnpack = true;
+
+  meta = {
+    description = "The Unigine Heaven GPU benchmarking tool";
+    homepage = "https://benchmark.unigine.com/tropics";
+    license = lib.licenses.unfree;
+    maintainers = [ lib.maintainers.BarinovMaxim ];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/pkgs/applications/graphics/unigine-valley/default.nix b/pkgs/applications/graphics/unigine-valley/default.nix
index 3187f573de704..9b51373178e44 100644
--- a/pkgs/applications/graphics/unigine-valley/default.nix
+++ b/pkgs/applications/graphics/unigine-valley/default.nix
@@ -1,10 +1,15 @@
-{ lib, stdenv, fetchurl
+{ lib
+, stdenv
+, fetchurl
 
-# Build-time dependencies
+  # Build-time dependencies
 , makeWrapper
 , file
+, makeDesktopItem
+, imagemagick
+, copyDesktopItems
 
-# Runtime dependencies
+  # Runtime dependencies
 , fontconfig
 , freetype
 , libX11
@@ -12,104 +17,120 @@
 , libXinerama
 , libXrandr
 , libXrender
-, libGL
-, openal}:
+, libglvnd
+, openal
+}:
 
 let
   version = "1.0";
 
-  arch = if stdenv.hostPlatform.system == "x86_64-linux" then
-    "x64"
-  else if stdenv.hostPlatform.system == "i686-linux" then
-    "x86"
-  else
-    throw "Unsupported platform ${stdenv.hostPlatform.system}";
-
+  arch =
+    if stdenv.hostPlatform.system == "x86_64-linux" then
+      "x64"
+    else if stdenv.hostPlatform.system == "i686-linux" then
+      "x86"
+    else
+      throw "Unsupported platform ${stdenv.hostPlatform.system}";
 in
-  stdenv.mkDerivation rec {
-    pname = "unigine-valley";
-    inherit version;
-
-    src = fetchurl {
-      url = "http://assets.unigine.com/d/Unigine_Valley-${version}.run";
-      sha256 = "5f0c8bd2431118551182babbf5f1c20fb14e7a40789697240dcaf546443660f4";
-    };
-
-    sourceRoot = "Unigine_Valley-${version}";
-    instPath = "lib/unigine/valley";
-
-    nativeBuildInputs = [file makeWrapper];
-
-    libPath = lib.makeLibraryPath [
-      stdenv.cc.cc  # libstdc++.so.6
-      fontconfig
-      freetype
-      libX11
-      libXext
-      libXinerama
-      libXrandr
-      libXrender
-      libGL
-      openal
-    ];
-
-    unpackPhase = ''
-      runHook preUnpack
-
-      cp $src extractor.run
-      chmod +x extractor.run
-      ./extractor.run --target $sourceRoot
-
-      runHook postUnpack
-    '';
-
-    patchPhase = ''
-      runHook prePatch
-
-      # Patch ELF files.
-      elfs=$(find bin -type f | xargs file | grep ELF | cut -d ':' -f 1)
-      for elf in $elfs; do
-        patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-linux-x86-64.so.2 $elf || true
-      done
-
-      runHook postPatch
-    '';
-
-    installPhase = ''
-      runHook preInstall
-
-      instdir=$out/${instPath}
-
-      # Install executables and libraries
-      mkdir -p $instdir/bin
-      install -m 0755 bin/browser_${arch} $instdir/bin
-      install -m 0755 bin/libApp{Stereo,Surround,Wall}_${arch}.so $instdir/bin
-      install -m 0755 bin/libGPUMonitor_${arch}.so $instdir/bin
-      install -m 0755 bin/libQt{Core,Gui,Network,WebKit,Xml}Unigine_${arch}.so.4 $instdir/bin
-      install -m 0755 bin/libUnigine_${arch}.so $instdir/bin
-      install -m 0755 bin/valley_${arch} $instdir/bin
-      install -m 0755 valley $instdir
-
-      # Install other files
-      cp -R data documentation $instdir
-
-      # Install and wrap executable
-      mkdir -p $out/bin
-      install -m 0755 valley $out/bin/valley
-      wrapProgram $out/bin/valley \
-        --run "cd $instdir" \
-        --prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:$instdir/bin:$libPath
-
-      runHook postInstall
-    '';
-
-    stripDebugList = ["${instPath}/bin"];
-
-    meta = {
-      description = "The Unigine Valley GPU benchmarking tool";
-      homepage = "https://unigine.com/products/benchmarks/valley/";
-      license = lib.licenses.unfree; # see also: $out/$instPath/documentation/License.pdf
-      maintainers = [ lib.maintainers.kierdavis ];
-      platforms = ["x86_64-linux" "i686-linux"];
-    };
-  }
+
+stdenv.mkDerivation rec {
+  pname = "unigine-valley";
+  inherit version;
+
+  src = fetchurl {
+    url = "https://m11-assets.unigine.com/d/Unigine_Valley-${version}.run";
+    sha256 = "5f0c8bd2431118551182babbf5f1c20fb14e7a40789697240dcaf546443660f4";
+  };
+
+  sourceRoot = "Unigine_Valley-${version}";
+  instPath = "lib/unigine/valley";
+
+  nativeBuildInputs = [ file makeWrapper imagemagick copyDesktopItems ];
+
+  libPath = lib.makeLibraryPath [
+    stdenv.cc.cc # libstdc++.so.6
+    fontconfig
+    freetype
+    libX11
+    libXext
+    libXinerama
+    libXrandr
+    libXrender
+    libglvnd
+    openal
+  ];
+
+  unpackPhase = ''
+    runHook preUnpack
+
+    cp $src extractor.run
+    chmod +x extractor.run
+    ./extractor.run --target $sourceRoot
+
+    runHook postUnpack
+  '';
+
+  postPatch = ''
+    # Patch ELF files.
+    elfs=$(find bin -type f | xargs file | grep ELF | cut -d ':' -f 1)
+    for elf in $elfs; do
+      patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-linux-x86-64.so.2 $elf || true
+    done
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    instdir=$out/${instPath}
+    mkdir -p $out/share/icons/hicolor $out/share/applications $out/bin $instdir/bin
+
+    # Install executables and libraries
+    install -m 0755 bin/browser_${arch} $instdir/bin
+    install -m 0755 bin/libApp{Stereo,Surround,Wall}_${arch}.so $instdir/bin
+    install -m 0755 bin/libGPUMonitor_${arch}.so $instdir/bin
+    install -m 0755 bin/libQt{Core,Gui,Network,WebKit,Xml}Unigine_${arch}.so.4 $instdir/bin
+    install -m 0755 bin/libUnigine_${arch}.so $instdir/bin
+    install -m 0755 bin/valley_${arch} $instdir/bin
+    install -m 0755 valley $instdir
+    install -m 0755 valley $out/bin/valley
+
+    # Install other files
+    cp -R data documentation $instdir
+
+    # Install and wrap executable
+    wrapProgram $out/bin/valley \
+      --chdir "$instdir" \
+      --prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:$instdir/bin:$libPath
+
+    # Make desktop Icon
+    convert $out/lib/unigine/valley/data/launcher/icon.png -resize 128x128 $out/share/icons/Valley.png
+    for RES in 16 24 32 48 64 128 256
+    do
+        mkdir -p $out/share/icons/hicolor/"$RES"x"$RES"/apps
+        convert $out/lib/unigine/valley/data/launcher/icon.png -resize "$RES"x"$RES" $out/share/icons/hicolor/"$RES"x"$RES"/apps/Valley.png
+    done
+
+    runHook postInstall
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "Valley";
+      exec = "valley";
+      genericName = "A GPU Stress test tool from the UNIGINE";
+      icon = "Valley";
+      desktopName = "Valley Benchmark";
+    })
+  ];
+
+  stripDebugList = [ "${instPath}/bin" ];
+
+  meta = {
+    description = "The Unigine Valley GPU benchmarking tool";
+    homepage = "https://unigine.com/products/benchmarks/valley/";
+    license = lib.licenses.unfree; # see also: $out/$instPath/documentation/License.pdf
+    maintainers = [ lib.maintainers.kierdavis ];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
+
diff --git a/pkgs/applications/graphics/yed/default.nix b/pkgs/applications/graphics/yed/default.nix
index d2873f6414288..0385c5db9d86b 100644
--- a/pkgs/applications/graphics/yed/default.nix
+++ b/pkgs/applications/graphics/yed/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "yEd";
-  version = "3.21.1";
+  version = "3.22";
 
   src = fetchzip {
     url = "https://www.yworks.com/resources/yed/demo/${pname}-${version}.zip";
-    sha256 = "1jw28hkd7p0n660gid8yh5y0kdcz6ycn4hsgjlf0pq48x9kv6w0c";
+    sha256 = "sha256-GHYdvWie2k9YarS9DaA4bExswV3UQ26O8+7K/6yvtac=";
   };
 
   nativeBuildInputs = [ makeWrapper unzip wrapGAppsHook ];
diff --git a/pkgs/applications/kde/fetch.sh b/pkgs/applications/kde/fetch.sh
index 72b76131f64a0..a24ef563f3e9b 100644
--- a/pkgs/applications/kde/fetch.sh
+++ b/pkgs/applications/kde/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/release-service/21.12.2/src -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/release-service/21.12.3/src -A '*.tar.xz' )
diff --git a/pkgs/applications/kde/kitinerary.nix b/pkgs/applications/kde/kitinerary.nix
index 83763ba965afc..f69e705bb2f92 100644
--- a/pkgs/applications/kde/kitinerary.nix
+++ b/pkgs/applications/kde/kitinerary.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, fetchpatch, lib, extra-cmake-modules
+{ mkDerivation, lib, extra-cmake-modules
 , qtdeclarative, ki18n, kmime, kpkpass
 , poppler, kcontacts, kcalendarcore
 , shared-mime-info
@@ -10,15 +10,6 @@ mkDerivation {
     license = with lib.licenses; [ lgpl21 ];
     maintainers = [ lib.maintainers.bkchr ];
   };
-
-  patches = [
-    # Fix build with poppler 22.03
-    (fetchpatch {
-      url = "https://github.com/KDE/kitinerary/commit/e21d1ffc5fa81a636245f49c97fe7cda63abbb1d.patch";
-      sha256 = "1/zgq9QIOCPplqplDqgpoqzuYFf/m1Ixxawe50t2F04=";
-    })
-  ];
-
   nativeBuildInputs = [
     extra-cmake-modules
     shared-mime-info # for update-mime-database
diff --git a/pkgs/applications/kde/srcs.nix b/pkgs/applications/kde/srcs.nix
index af8e47dd7493c..3d5948c290dc8 100644
--- a/pkgs/applications/kde/srcs.nix
+++ b/pkgs/applications/kde/srcs.nix
@@ -4,1843 +4,1843 @@
 
 {
   akonadi = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/akonadi-21.12.2.tar.xz";
-      sha256 = "1i1q8zda3hl564w02478wyqv35wj8npkqayy7b13shkq9b9j3nj8";
-      name = "akonadi-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/akonadi-21.12.3.tar.xz";
+      sha256 = "026srxk7da20vfhbj7jh8aip3sylpm61czwblj3wxxps0vbxxs2g";
+      name = "akonadi-21.12.3.tar.xz";
     };
   };
   akonadi-calendar = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/akonadi-calendar-21.12.2.tar.xz";
-      sha256 = "001ndvgqn6x70s7gdya1f1vr080mfkypam3k6z0i2ivlpymc3wly";
-      name = "akonadi-calendar-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/akonadi-calendar-21.12.3.tar.xz";
+      sha256 = "0hzy6y9pxa06k0pp5yr84i0sv15qgzjn7nrlmsylm6iy7fspqqbq";
+      name = "akonadi-calendar-21.12.3.tar.xz";
     };
   };
   akonadi-calendar-tools = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/akonadi-calendar-tools-21.12.2.tar.xz";
-      sha256 = "0f0l6wj3h2afbmvnq60cg0x03a412849dg4l9dwgdn8yxvnxkhw6";
-      name = "akonadi-calendar-tools-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/akonadi-calendar-tools-21.12.3.tar.xz";
+      sha256 = "1idh6kf8h9158rgw3b5lld7z9mvvif00jrvpz891cziblvr19p4a";
+      name = "akonadi-calendar-tools-21.12.3.tar.xz";
     };
   };
   akonadi-contacts = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/akonadi-contacts-21.12.2.tar.xz";
-      sha256 = "1aq81569kz529n66dl5jjzamy6kxw0xk5bcmjfvb3wpxznhiigqm";
-      name = "akonadi-contacts-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/akonadi-contacts-21.12.3.tar.xz";
+      sha256 = "04ixj09s27q8pbmfrb1475bc0h84sb5ikfxzpc4i5b3whx40g9dm";
+      name = "akonadi-contacts-21.12.3.tar.xz";
     };
   };
   akonadi-import-wizard = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/akonadi-import-wizard-21.12.2.tar.xz";
-      sha256 = "0b4mphxbqzf3akhafxc4fvil83l3z4qcf8xnblw23ficqqs8s0di";
-      name = "akonadi-import-wizard-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/akonadi-import-wizard-21.12.3.tar.xz";
+      sha256 = "1fbxx53zdcqp98mzdx45ccncppnxqfhc7j9qwwxcik0ygrmg9wcj";
+      name = "akonadi-import-wizard-21.12.3.tar.xz";
     };
   };
   akonadi-mime = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/akonadi-mime-21.12.2.tar.xz";
-      sha256 = "1nd6bf26lb5wfhzh4kn37iwmb6savcq9wsaph5c7jg6m0bdix1fn";
-      name = "akonadi-mime-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/akonadi-mime-21.12.3.tar.xz";
+      sha256 = "1bcrbf5z9175p206cvm5s6zq882nb32cf9akdcbnadqiibrpxkxv";
+      name = "akonadi-mime-21.12.3.tar.xz";
     };
   };
   akonadi-notes = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/akonadi-notes-21.12.2.tar.xz";
-      sha256 = "1s3bxnqsjnlgsnia0nvqyc3m1ppzanzna9598lgwbmz053rgn7ck";
-      name = "akonadi-notes-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/akonadi-notes-21.12.3.tar.xz";
+      sha256 = "0xkcw9izgxfzglciig2i4wiz6iflzjg0d6dp1nq6p1kwxwc899sb";
+      name = "akonadi-notes-21.12.3.tar.xz";
     };
   };
   akonadi-search = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/akonadi-search-21.12.2.tar.xz";
-      sha256 = "1hp2x8y59azl59znrqhrjn4n1bs2iqnkdsldv1f2k1ima6z5f4qy";
-      name = "akonadi-search-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/akonadi-search-21.12.3.tar.xz";
+      sha256 = "1id6zzjxc9zvpz1ryj2zn1yff5ak04r1mlk9cklbj99frzf0wv6p";
+      name = "akonadi-search-21.12.3.tar.xz";
     };
   };
   akonadiconsole = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/akonadiconsole-21.12.2.tar.xz";
-      sha256 = "1rqfmhi1mzh6yzjg7jf6adf1xqvpbhcxgld2pp4rd9g5mi9rlxlk";
-      name = "akonadiconsole-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/akonadiconsole-21.12.3.tar.xz";
+      sha256 = "1chb0ars9w05pq6ij2l8qfj1ac7pmzwg2mq1i4z8syhdklyryir1";
+      name = "akonadiconsole-21.12.3.tar.xz";
     };
   };
   akregator = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/akregator-21.12.2.tar.xz";
-      sha256 = "1srsm25qvbww0hl7r878n32b71g0p222zxyys7chzrg8izrh12b8";
-      name = "akregator-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/akregator-21.12.3.tar.xz";
+      sha256 = "1yy5c29zxpli4cddknmdvjkgii3j7pvw6lhwqfrqjc8jh83gm8f8";
+      name = "akregator-21.12.3.tar.xz";
     };
   };
   analitza = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/analitza-21.12.2.tar.xz";
-      sha256 = "1ak2wyfx67cwx85d5053f6flxwas973mhnm25mf4jw0qll72vid4";
-      name = "analitza-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/analitza-21.12.3.tar.xz";
+      sha256 = "0rgims4c80nficibg3lh764csh0kjsfnf7h303kyfd9yk59xa3in";
+      name = "analitza-21.12.3.tar.xz";
     };
   };
   ark = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ark-21.12.2.tar.xz";
-      sha256 = "1g05lyv8ll85myw0i62bxr4kmfd3dhldvmbgpgym9r1rgan12q90";
-      name = "ark-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ark-21.12.3.tar.xz";
+      sha256 = "1p30bgnb3aw0f2jnaksz7jfqqcz45b2x3bjrri0w5w580204a5s8";
+      name = "ark-21.12.3.tar.xz";
     };
   };
   artikulate = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/artikulate-21.12.2.tar.xz";
-      sha256 = "1g0h0dqqsf3x8q292hfhrizl9dlqzm8gjynzcyrzx0gvbfadj2l1";
-      name = "artikulate-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/artikulate-21.12.3.tar.xz";
+      sha256 = "0fbgmd3yfyv1pzz24874a0v7cl4yk6wlfryn8sn21smi054wqz6z";
+      name = "artikulate-21.12.3.tar.xz";
     };
   };
   audiocd-kio = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/audiocd-kio-21.12.2.tar.xz";
-      sha256 = "07nk060vkyn94ihs9v054zhsckfwpn8z911gy3hnyf1wdmnpfh2n";
-      name = "audiocd-kio-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/audiocd-kio-21.12.3.tar.xz";
+      sha256 = "1alyn7w0v1by3fkb6xfnwj0hayjrrnmwnajnrnpvn8skbqsbzlgc";
+      name = "audiocd-kio-21.12.3.tar.xz";
     };
   };
   baloo-widgets = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/baloo-widgets-21.12.2.tar.xz";
-      sha256 = "1ax7pak9qb60yzdca8frkb8qs4khs6f2wbkwyb48s7zmdxqyw1bj";
-      name = "baloo-widgets-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/baloo-widgets-21.12.3.tar.xz";
+      sha256 = "0cfcfmsgbaxi53a3r0f013lskm5yll7zaxw98nlj6r8fsq2slrhv";
+      name = "baloo-widgets-21.12.3.tar.xz";
     };
   };
   blinken = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/blinken-21.12.2.tar.xz";
-      sha256 = "0h0nw79zr891f54y2r3d3n837bzn24pfvkxsab1f0a228kjakw09";
-      name = "blinken-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/blinken-21.12.3.tar.xz";
+      sha256 = "1pbwb7q4p705k31kd62gira0x9qccjsn07d6h1w44wydc3lfdjnc";
+      name = "blinken-21.12.3.tar.xz";
     };
   };
   bomber = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/bomber-21.12.2.tar.xz";
-      sha256 = "1348mdiykfg1c3gr5fkcf71mxf7lyapwg5ym3jqp9vyc56vhwfjs";
-      name = "bomber-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/bomber-21.12.3.tar.xz";
+      sha256 = "1mlxs2dbsycq7mw9g1hl2l17gl0z33mrry5r0zmz74i67nfijg8w";
+      name = "bomber-21.12.3.tar.xz";
     };
   };
   bovo = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/bovo-21.12.2.tar.xz";
-      sha256 = "0i2i5ici9v402lrh83mhfsrxmqi0fs75rkfvhsbza3wab7b165kc";
-      name = "bovo-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/bovo-21.12.3.tar.xz";
+      sha256 = "1jzvazqy5vcwkyhnbzw7sh8ngff5clclq98vbbhzd9dmnacirdbq";
+      name = "bovo-21.12.3.tar.xz";
     };
   };
   calendarsupport = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/calendarsupport-21.12.2.tar.xz";
-      sha256 = "021rr06ln7l0v2xjzsij4r71jwpy1w1r761bjad0ywprwkdc93bm";
-      name = "calendarsupport-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/calendarsupport-21.12.3.tar.xz";
+      sha256 = "0annni037cp1ga2lj2gkjxlkygnaxna4fs095lbaqp5zljz3g8vp";
+      name = "calendarsupport-21.12.3.tar.xz";
     };
   };
   cantor = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/cantor-21.12.2.tar.xz";
-      sha256 = "0vq8yvdglf43y5r2f9bvamm9bp82q92hw9sr8xmgb5hqz5mkap78";
-      name = "cantor-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/cantor-21.12.3.tar.xz";
+      sha256 = "0v0xcgaz3rag044wmpiq8gs7pp6n7wcca0q1hzav7i651pgqjjks";
+      name = "cantor-21.12.3.tar.xz";
     };
   };
   cervisia = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/cervisia-21.12.2.tar.xz";
-      sha256 = "1vpm3cjknpa4s9mjdfngpvidqihfh5sb427yhnydr1q2dmllr9nn";
-      name = "cervisia-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/cervisia-21.12.3.tar.xz";
+      sha256 = "106x0xrscc6xvgijmqy892r1hrirjh32nj8lqhc7g7dzjaa7lhsj";
+      name = "cervisia-21.12.3.tar.xz";
     };
   };
   dolphin = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/dolphin-21.12.2.tar.xz";
-      sha256 = "0c0gk1djgl1d1qzibw5f1w29cnlxl6kan8pkg0izaqvnbmmx53wn";
-      name = "dolphin-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/dolphin-21.12.3.tar.xz";
+      sha256 = "0m5nqa8j0mcsrx9wxfcf8z39kxas51k03lschr721vm4x65j64jq";
+      name = "dolphin-21.12.3.tar.xz";
     };
   };
   dolphin-plugins = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/dolphin-plugins-21.12.2.tar.xz";
-      sha256 = "1mrsampq1zq5rri1kx77dz0afz4a6s8pvb1255q0pl7imgxhiaqc";
-      name = "dolphin-plugins-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/dolphin-plugins-21.12.3.tar.xz";
+      sha256 = "0rbz6fw98c71h10ry1xjc0pgzvphajmj18lnjm4hf7bbrizsmdb5";
+      name = "dolphin-plugins-21.12.3.tar.xz";
     };
   };
   dragon = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/dragon-21.12.2.tar.xz";
-      sha256 = "07zn4ishffh9g8hvkpfgm7j9cimw3plcabzk9p157nhgxr62z4sb";
-      name = "dragon-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/dragon-21.12.3.tar.xz";
+      sha256 = "09iwwlbv4jmxs92dz20z9fqg1sfnqih54izz8459ibl8vydfgfp1";
+      name = "dragon-21.12.3.tar.xz";
     };
   };
   elisa = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/elisa-21.12.2.tar.xz";
-      sha256 = "0zwy0bi4s25y6adgjhrhw992i2c1kjwpgvp9yg902h8zpsdynwh5";
-      name = "elisa-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/elisa-21.12.3.tar.xz";
+      sha256 = "0cg9v438fclqnv1rgx2k86mzfp5ggfcp7d5kr8xh4kjbmy17rzca";
+      name = "elisa-21.12.3.tar.xz";
     };
   };
   eventviews = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/eventviews-21.12.2.tar.xz";
-      sha256 = "1v3bpd0b3ph7v0kg8pyp4rr4j8cxy7y4csym5dlqn6l81db7d3gr";
-      name = "eventviews-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/eventviews-21.12.3.tar.xz";
+      sha256 = "01x9ccwspn1dwkmcxcr8p6pazj6w31pxhx0bzlfr6bgpccicp2w2";
+      name = "eventviews-21.12.3.tar.xz";
     };
   };
   ffmpegthumbs = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ffmpegthumbs-21.12.2.tar.xz";
-      sha256 = "17cyrimlnf1npffmxinnj3q5ynqg3agx35b55iqnw3xixrz4snzr";
-      name = "ffmpegthumbs-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ffmpegthumbs-21.12.3.tar.xz";
+      sha256 = "0x2gpx30azkz61p3xj1nm7hckyrmyh0qhs29ah30z6a5xw7336ws";
+      name = "ffmpegthumbs-21.12.3.tar.xz";
     };
   };
   filelight = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/filelight-21.12.2.tar.xz";
-      sha256 = "0khhwnms2ysy9ijpmmagm68w1zixmxs7svaaldd30xb3w52f78v2";
-      name = "filelight-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/filelight-21.12.3.tar.xz";
+      sha256 = "1w3q0l9p5ry2crwdzcyb1d4ms2y4gp3y0a3j5drpy8clmxn0gz18";
+      name = "filelight-21.12.3.tar.xz";
     };
   };
   granatier = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/granatier-21.12.2.tar.xz";
-      sha256 = "0j7yizbljqx1a4wd4prmb3463r67f3lk5gv5x8j1yx2zmiaq0qki";
-      name = "granatier-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/granatier-21.12.3.tar.xz";
+      sha256 = "16yriharl66frglmdy6750nixczh0l4c19nnr6dav15m8qfb3g6b";
+      name = "granatier-21.12.3.tar.xz";
     };
   };
   grantlee-editor = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/grantlee-editor-21.12.2.tar.xz";
-      sha256 = "0wxkg56s83i61i17cb2y6ziminaq2gammynrwm5jvkpi5vqwvi2s";
-      name = "grantlee-editor-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/grantlee-editor-21.12.3.tar.xz";
+      sha256 = "00qy1ncgwylc995g051x5l679s16wjpcj7il62ck7d0j02rah0n2";
+      name = "grantlee-editor-21.12.3.tar.xz";
     };
   };
   grantleetheme = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/grantleetheme-21.12.2.tar.xz";
-      sha256 = "0z1p0s7fakfbscppmrgp1irf3dm2ayadyd3yb5zdsr9xahs0b9md";
-      name = "grantleetheme-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/grantleetheme-21.12.3.tar.xz";
+      sha256 = "1w83slbkj2y1wk78srq2k95ybs66sb4mbaa0zm7fl9pkwhqxbnb7";
+      name = "grantleetheme-21.12.3.tar.xz";
     };
   };
   gwenview = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/gwenview-21.12.2.tar.xz";
-      sha256 = "1jkv34llga981dq08npk8alrg9h27prdpffcxkm368i77mvp9hv6";
-      name = "gwenview-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/gwenview-21.12.3.tar.xz";
+      sha256 = "0zbsyrwlwbc9zmdxcgk02dvcb0f8izhlcbbzqw8cgr4l2c90xl98";
+      name = "gwenview-21.12.3.tar.xz";
     };
   };
   incidenceeditor = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/incidenceeditor-21.12.2.tar.xz";
-      sha256 = "151jhn84d5amv3abvp6cd2q10mf4mmv3q5hn0inqrmapy3v6bn8i";
-      name = "incidenceeditor-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/incidenceeditor-21.12.3.tar.xz";
+      sha256 = "1sbflfggpqhwhg3iw46462z3p83sjhlx6f1fvgz251m020vqq9xa";
+      name = "incidenceeditor-21.12.3.tar.xz";
     };
   };
   itinerary = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/itinerary-21.12.2.tar.xz";
-      sha256 = "02w6696kdzgz2r9677nr1jyhd9mfhc2zhmasy70nblz0jn22bcq7";
-      name = "itinerary-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/itinerary-21.12.3.tar.xz";
+      sha256 = "0gvkhwnxichvpwrsb6wjiv5q80v8k2yqvgpvfdapxnd7sx6qp7fp";
+      name = "itinerary-21.12.3.tar.xz";
     };
   };
   juk = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/juk-21.12.2.tar.xz";
-      sha256 = "1qgxpy1ksrgvdik69vppzdl1crscn69284q4wvwc5qh9v6rhv1xn";
-      name = "juk-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/juk-21.12.3.tar.xz";
+      sha256 = "1ipzx031996h83f9w3fzbx5vf5nnskq9kf71a6aypqckk65vcqcs";
+      name = "juk-21.12.3.tar.xz";
     };
   };
   k3b = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/k3b-21.12.2.tar.xz";
-      sha256 = "0rjg3zs85gw62r3z3msp438jnf0ghc6y577br59ig19m10x33rz9";
-      name = "k3b-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/k3b-21.12.3.tar.xz";
+      sha256 = "0igqb6zw76j2hl9xclcwfny2831phdg9s2msa1y87zyc3c7g9nxc";
+      name = "k3b-21.12.3.tar.xz";
     };
   };
   kaccounts-integration = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kaccounts-integration-21.12.2.tar.xz";
-      sha256 = "0c4yxrhbas0wsmrxr0pwkpgw9gzdvvf5r5nxd15f656bwwhmqlwy";
-      name = "kaccounts-integration-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kaccounts-integration-21.12.3.tar.xz";
+      sha256 = "13q4d7ln98vdpb6ryk49zakx5bysdnjxifi7cma10fgk9gcqqhpb";
+      name = "kaccounts-integration-21.12.3.tar.xz";
     };
   };
   kaccounts-providers = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kaccounts-providers-21.12.2.tar.xz";
-      sha256 = "1srz43xf6kz7xfz8np94pdnhmvashk7y2f2a275rwpnlrl0yw1yd";
-      name = "kaccounts-providers-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kaccounts-providers-21.12.3.tar.xz";
+      sha256 = "0kcyvpa0b872q7s4amagqcrzpl8cxlb91nwc9yg91wg56mmfv7m0";
+      name = "kaccounts-providers-21.12.3.tar.xz";
     };
   };
   kaddressbook = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kaddressbook-21.12.2.tar.xz";
-      sha256 = "04ac5z9603lxylc6x55chnc0w59mx3z92nyvfnvjvp1ga77si36b";
-      name = "kaddressbook-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kaddressbook-21.12.3.tar.xz";
+      sha256 = "1hzq0fdy99l1kqw14d582l0s56gvrw86abihib6k4az4c6g3c0md";
+      name = "kaddressbook-21.12.3.tar.xz";
     };
   };
   kajongg = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kajongg-21.12.2.tar.xz";
-      sha256 = "04s3f8nj0rh1zy7sfa5kq0smbfsyylz9w3lxm2z69g7x5sb08k53";
-      name = "kajongg-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kajongg-21.12.3.tar.xz";
+      sha256 = "1sffssfpzsd83ippkwpmqdx8rfh9cpd7i22nsv8asnaylylvy3zd";
+      name = "kajongg-21.12.3.tar.xz";
     };
   };
   kalarm = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kalarm-21.12.2.tar.xz";
-      sha256 = "0f3hcsql20lim9nqb0ha5lpsrbh131rwcla9i6aax5sgw4m6nyfh";
-      name = "kalarm-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kalarm-21.12.3.tar.xz";
+      sha256 = "1miwcxim46hiabp2rbs874np544ip4x5nl1dc62h9li9784a9k3i";
+      name = "kalarm-21.12.3.tar.xz";
     };
   };
   kalarmcal = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kalarmcal-21.12.2.tar.xz";
-      sha256 = "15l893iv4smlppk7k682m9hwrph84p5chx5mgxixjxl28c1blcc8";
-      name = "kalarmcal-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kalarmcal-21.12.3.tar.xz";
+      sha256 = "160pmr702b68hys9l02azvrv6pagy1r2whw0zp3jlf6863p9fkqr";
+      name = "kalarmcal-21.12.3.tar.xz";
     };
   };
   kalgebra = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kalgebra-21.12.2.tar.xz";
-      sha256 = "0w1h3as6dip4hrp2ay61sz9gixf4s887jp42v7zjajwwhjs6xs1m";
-      name = "kalgebra-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kalgebra-21.12.3.tar.xz";
+      sha256 = "0870kdqha0nk2cm8hq8d9l2fqfw6hn0rx2qc9f9w8l4014rcn127";
+      name = "kalgebra-21.12.3.tar.xz";
     };
   };
   kalzium = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kalzium-21.12.2.tar.xz";
-      sha256 = "0kvrmvd2vgl6fklxq9sr46p6nnh0fk0l6licj9b5q9rz82xwbr50";
-      name = "kalzium-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kalzium-21.12.3.tar.xz";
+      sha256 = "1qha1dh638ms785j1b73j19pj8y3c7v1n4jd1m93026a292m8jll";
+      name = "kalzium-21.12.3.tar.xz";
     };
   };
   kamera = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kamera-21.12.2.tar.xz";
-      sha256 = "07n1xlmg7m6p5ca0i4hjjyv564cqrn4p6h5yqx4pw3pcq8nizqfz";
-      name = "kamera-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kamera-21.12.3.tar.xz";
+      sha256 = "1xwxmlnra9qdhvf1hhy04v72ar02pqxkg0l16a53809ilyss2wrm";
+      name = "kamera-21.12.3.tar.xz";
     };
   };
   kamoso = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kamoso-21.12.2.tar.xz";
-      sha256 = "09qn1px0mmcjhw9ikaz8xcjbdabh657ij3sa4ps37jbfzyyv45fb";
-      name = "kamoso-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kamoso-21.12.3.tar.xz";
+      sha256 = "1q98f6ni4p19pk0svbfw4mbfwnc9i5p9csms2aj76mp2dn78xpib";
+      name = "kamoso-21.12.3.tar.xz";
     };
   };
   kanagram = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kanagram-21.12.2.tar.xz";
-      sha256 = "1l4j2fy8mwdywp0prswng1f06rpwkfi54dc8z5z02b13p47hz5cy";
-      name = "kanagram-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kanagram-21.12.3.tar.xz";
+      sha256 = "131flw9pjvin4w1m36qkwgzna3llvxp1vq0ynzwfnvhs49i3g5gc";
+      name = "kanagram-21.12.3.tar.xz";
     };
   };
   kapman = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kapman-21.12.2.tar.xz";
-      sha256 = "0n1iz9jfgzpcpavb4ijfqp3hym7z53wzp5a5hiad8i6nws408grn";
-      name = "kapman-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kapman-21.12.3.tar.xz";
+      sha256 = "1974z7g3ylvf48xh3xhf3gr7iphgmj83ir9hss1a2ba0hpgg463k";
+      name = "kapman-21.12.3.tar.xz";
     };
   };
   kapptemplate = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kapptemplate-21.12.2.tar.xz";
-      sha256 = "1sjyji533x9ph9l63zf0llsb0m5fzb1lka03h5blm7fdyw570bad";
-      name = "kapptemplate-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kapptemplate-21.12.3.tar.xz";
+      sha256 = "16jgybcq3ixqwi7wli11ns7w4zdlj8rgw4chzsjcqxn6c0sqy8zq";
+      name = "kapptemplate-21.12.3.tar.xz";
     };
   };
   kate = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kate-21.12.2.tar.xz";
-      sha256 = "0r59rfyrbs50w9brl4rrq1wdfmrr3sz7plw2pqlc5xpzngrdlhs1";
-      name = "kate-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kate-21.12.3.tar.xz";
+      sha256 = "1pp0k00kvih0xkkv1q1gha4na2bwqc7dhyyrla7c2vvln8gi99dg";
+      name = "kate-21.12.3.tar.xz";
     };
   };
   katomic = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/katomic-21.12.2.tar.xz";
-      sha256 = "123ls2p6az9bpy741xg85azs0p1qbssgcg4fh8cqazkz0kgzr0hf";
-      name = "katomic-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/katomic-21.12.3.tar.xz";
+      sha256 = "1y4mnvkd6ajk0m0j2xph5zbw3a14clm2sswc4y8c9r4ipk3hqsgh";
+      name = "katomic-21.12.3.tar.xz";
     };
   };
   kbackup = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kbackup-21.12.2.tar.xz";
-      sha256 = "1yadxlqfz2a4lirxf2xmivggvdpbjiaw5zn7aw72jb3yjs7x6j03";
-      name = "kbackup-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kbackup-21.12.3.tar.xz";
+      sha256 = "0r1cqkfzpdqpwv5pds8l0p7lxlwpv0mr7rjys1icsp8gl4hbpv60";
+      name = "kbackup-21.12.3.tar.xz";
     };
   };
   kblackbox = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kblackbox-21.12.2.tar.xz";
-      sha256 = "1y5l5l5p3s2gf69rih3mjdv42h9ydfk66v10ad5na3b4sqbi2qi7";
-      name = "kblackbox-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kblackbox-21.12.3.tar.xz";
+      sha256 = "10j8rnpr3gjaqspx4mxqj9cncqj6v2jn5rkldr46bv7yxgjb5rw3";
+      name = "kblackbox-21.12.3.tar.xz";
     };
   };
   kblocks = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kblocks-21.12.2.tar.xz";
-      sha256 = "13anvyy3br7ybl74jcrnjmw5qjfyk4z6s7ncziw8l37ggg4k7n91";
-      name = "kblocks-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kblocks-21.12.3.tar.xz";
+      sha256 = "1n3jc96ws8078gk1il61dc96p3pzvj3z9brnwi274pk4cif63bli";
+      name = "kblocks-21.12.3.tar.xz";
     };
   };
   kbounce = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kbounce-21.12.2.tar.xz";
-      sha256 = "07k5vmfkh9l4b4sb4an5qlnq0b9hmhh6dax0bjgia0ng9vxd011q";
-      name = "kbounce-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kbounce-21.12.3.tar.xz";
+      sha256 = "1am4j11cjzlmav2zh5802kasy0kdcx78slycadnf96bmhxs8hvyv";
+      name = "kbounce-21.12.3.tar.xz";
     };
   };
   kbreakout = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kbreakout-21.12.2.tar.xz";
-      sha256 = "08rykfi82hgzg5l2bhs8nvh8si06nisy60653n6r7m8g327yyn1m";
-      name = "kbreakout-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kbreakout-21.12.3.tar.xz";
+      sha256 = "0vqlxaggzvvrb439ybsvd5kr9j2jzpwk4xy3yni83y830h1mmhhc";
+      name = "kbreakout-21.12.3.tar.xz";
     };
   };
   kbruch = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kbruch-21.12.2.tar.xz";
-      sha256 = "0vvl2rk636zpg27hj2jly1awg4z3fm6mk75qrda3hl6gm8rddw1v";
-      name = "kbruch-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kbruch-21.12.3.tar.xz";
+      sha256 = "1kcwbpa5lawkqqwn40r6d7savwvi7kkdgdxfxqxkviwnif2qkssx";
+      name = "kbruch-21.12.3.tar.xz";
     };
   };
   kcachegrind = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kcachegrind-21.12.2.tar.xz";
-      sha256 = "1fg7fn8a3bjbjr6bi298gqr4mr838v96bz9773pd7rnhffvvip8z";
-      name = "kcachegrind-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kcachegrind-21.12.3.tar.xz";
+      sha256 = "1cssjywnhfbnsvly4mralpx3af2pqkmhg1jj2q3cjiqx44i3gkyx";
+      name = "kcachegrind-21.12.3.tar.xz";
     };
   };
   kcalc = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kcalc-21.12.2.tar.xz";
-      sha256 = "037xk57gjfbjpw1q4gm9k1xkc3x5xxjr4d8xmnrnc6ni090648q4";
-      name = "kcalc-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kcalc-21.12.3.tar.xz";
+      sha256 = "15yqzhrlzcix8wvgaah8wf12msylgzyqwk58f58k5agxh97ahv4q";
+      name = "kcalc-21.12.3.tar.xz";
     };
   };
   kcalutils = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kcalutils-21.12.2.tar.xz";
-      sha256 = "0i474by8pyv64b7i807kym2q4wkhnyyn21vn56dbgp1awpi198i8";
-      name = "kcalutils-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kcalutils-21.12.3.tar.xz";
+      sha256 = "006sfkjzyid8byl2mmyn1is4nra9wjqh21ksd5g1kv948hf1jdcs";
+      name = "kcalutils-21.12.3.tar.xz";
     };
   };
   kcharselect = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kcharselect-21.12.2.tar.xz";
-      sha256 = "1czkni7wrl2l5v0zpvxfwdaqd5i0x6knzbjhzh8shdg3h19sgqrm";
-      name = "kcharselect-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kcharselect-21.12.3.tar.xz";
+      sha256 = "1aaiz9f9y2fmf284617pfnncgxjjjyfvdv08h900sc0bdlfmh4y7";
+      name = "kcharselect-21.12.3.tar.xz";
     };
   };
   kcolorchooser = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kcolorchooser-21.12.2.tar.xz";
-      sha256 = "12s2vfa3i7b5dh8c10xbqsy1xi9pq13vdj2xcpm5chkgw22595hv";
-      name = "kcolorchooser-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kcolorchooser-21.12.3.tar.xz";
+      sha256 = "0jnnbwaj9xb0ifcc95xay8yc4bx9f29wqkj3h4kffzdlwvw3vp7s";
+      name = "kcolorchooser-21.12.3.tar.xz";
     };
   };
   kcron = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kcron-21.12.2.tar.xz";
-      sha256 = "0ddgl61vw4mj8sa6zg1m4s6qagwygdkvw9pjmfs8fsa1anhlillk";
-      name = "kcron-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kcron-21.12.3.tar.xz";
+      sha256 = "0ffc71inp1kyd4xh39x6vbfggz0kpipd6r6vabfn187lpnpwcmpm";
+      name = "kcron-21.12.3.tar.xz";
     };
   };
   kde-dev-scripts = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kde-dev-scripts-21.12.2.tar.xz";
-      sha256 = "1vdssqwyi25j3saz5cw8n40y2i6bhq5l0rxbarh8m3iwcvx4ki3c";
-      name = "kde-dev-scripts-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kde-dev-scripts-21.12.3.tar.xz";
+      sha256 = "04w4kk7vpfkjj2fzylmq590kk7xskw3a0id3wndw8066pfafsfg3";
+      name = "kde-dev-scripts-21.12.3.tar.xz";
     };
   };
   kde-dev-utils = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kde-dev-utils-21.12.2.tar.xz";
-      sha256 = "0flzc0kl252imng2mpg9mp71k8jrxc3yy7dzqlfdnpjz36dwpaqf";
-      name = "kde-dev-utils-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kde-dev-utils-21.12.3.tar.xz";
+      sha256 = "1jdqv5zdigwazh3m580rmnylr6h6a6l5g2cpxy54v9sdvh3qb1yr";
+      name = "kde-dev-utils-21.12.3.tar.xz";
     };
   };
   kdebugsettings = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kdebugsettings-21.12.2.tar.xz";
-      sha256 = "0cimipq45c36nwk3alg738jl93zxja3xi77zjqk0k28ffn6qn7c2";
-      name = "kdebugsettings-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kdebugsettings-21.12.3.tar.xz";
+      sha256 = "19ng7hvqpyh3kh0pahrknh89c113mqx1kxjq4r26xbww1ypkz8zq";
+      name = "kdebugsettings-21.12.3.tar.xz";
     };
   };
   kdeconnect-kde = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kdeconnect-kde-21.12.2.tar.xz";
-      sha256 = "0crw0navhdsix0rpsya4vhffj35vlascpcflrs04vyws3v8xr026";
-      name = "kdeconnect-kde-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kdeconnect-kde-21.12.3.tar.xz";
+      sha256 = "1n9km7czif19cvrsdfcjbb02i1xgpa1z4ycn20d3g8azmli4zj4g";
+      name = "kdeconnect-kde-21.12.3.tar.xz";
     };
   };
   kdeedu-data = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kdeedu-data-21.12.2.tar.xz";
-      sha256 = "1cpbi5gkbq7xrv276vm0jlcjc5y9x1kw8l8x0z7syy06s4s3pvg9";
-      name = "kdeedu-data-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kdeedu-data-21.12.3.tar.xz";
+      sha256 = "11mxxcca6jxz4qcmba12p6xbv845xa16b8ag529409f3276w4915";
+      name = "kdeedu-data-21.12.3.tar.xz";
     };
   };
   kdegraphics-mobipocket = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kdegraphics-mobipocket-21.12.2.tar.xz";
-      sha256 = "0zbiz47mqa176gcina8v03fw2qqrc5v1l8mg2fcpnl5dxc9d56c4";
-      name = "kdegraphics-mobipocket-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kdegraphics-mobipocket-21.12.3.tar.xz";
+      sha256 = "091ix343p9vs4iyj8abq6mw9lbm1fx5167gykhm4g8bjk5vdri2q";
+      name = "kdegraphics-mobipocket-21.12.3.tar.xz";
     };
   };
   kdegraphics-thumbnailers = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kdegraphics-thumbnailers-21.12.2.tar.xz";
-      sha256 = "09adinkdfbn5hfic92zbdhq9ldxpnbgf9pybsp4ibpw2097l2k5f";
-      name = "kdegraphics-thumbnailers-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kdegraphics-thumbnailers-21.12.3.tar.xz";
+      sha256 = "0shdrl6n1724i8jrkmy8z6ayhflg93401jia87mcc1apaw9s8y83";
+      name = "kdegraphics-thumbnailers-21.12.3.tar.xz";
     };
   };
   kdenetwork-filesharing = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kdenetwork-filesharing-21.12.2.tar.xz";
-      sha256 = "0q7gndwvki3r9vhkxmwr8xzc54cjpk9nzhk2665wsk1msfp3xqw6";
-      name = "kdenetwork-filesharing-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kdenetwork-filesharing-21.12.3.tar.xz";
+      sha256 = "1y6sa22j2165j3x6ql1cfm30vv9ifb94mczbqbcjzmhqsypp5pw2";
+      name = "kdenetwork-filesharing-21.12.3.tar.xz";
     };
   };
   kdenlive = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kdenlive-21.12.2.tar.xz";
-      sha256 = "1h668q91pcq3km7pq75krgq06x8gglmp8al52b0imyc9g9wy28z6";
-      name = "kdenlive-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kdenlive-21.12.3.tar.xz";
+      sha256 = "1hamdi2v3rx5zjmvpx1bximdppmzgsk9gbjxwgr691lkybkgx8vs";
+      name = "kdenlive-21.12.3.tar.xz";
     };
   };
   kdepim-addons = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kdepim-addons-21.12.2.tar.xz";
-      sha256 = "00j67rvkvm1sri6ij5ziqjh340cmpsyfwwmw8hr1dsi3vlva4gk1";
-      name = "kdepim-addons-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kdepim-addons-21.12.3.tar.xz";
+      sha256 = "1pv780z29ccx05z12l2w5zdmby9d1q993jr0cyzvpapnmck9146h";
+      name = "kdepim-addons-21.12.3.tar.xz";
     };
   };
   kdepim-runtime = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kdepim-runtime-21.12.2.tar.xz";
-      sha256 = "0y1hgab16h9ypqh9isabbb4km2907vzdydfkd1m5b63vfbambz0j";
-      name = "kdepim-runtime-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kdepim-runtime-21.12.3.tar.xz";
+      sha256 = "1ahrnnc9vn0556s4nrsjgc9vbf5rb6yby7fn33p3jjnpgja0mc7m";
+      name = "kdepim-runtime-21.12.3.tar.xz";
     };
   };
   kdesdk-kioslaves = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kdesdk-kioslaves-21.12.2.tar.xz";
-      sha256 = "0vz6dk5an0bhnyglyqdgf3lqxdlc61k4vsbh8a4fky1zpvpwya84";
-      name = "kdesdk-kioslaves-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kdesdk-kioslaves-21.12.3.tar.xz";
+      sha256 = "1nhsvx5pznm3adf0scrcqqb2ibl52a241ki2gbwvxk2qpwwwx6jd";
+      name = "kdesdk-kioslaves-21.12.3.tar.xz";
     };
   };
   kdesdk-thumbnailers = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kdesdk-thumbnailers-21.12.2.tar.xz";
-      sha256 = "1w90zjnwnqh1a47kgmijr8xp6z096f6ij250qfcl3bwvhxqmsrb0";
-      name = "kdesdk-thumbnailers-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kdesdk-thumbnailers-21.12.3.tar.xz";
+      sha256 = "0337rhgil42wychi5anq2v61xq8mbcvma4gb50smapcrjfl7fkdy";
+      name = "kdesdk-thumbnailers-21.12.3.tar.xz";
     };
   };
   kdev-php = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kdev-php-21.12.2.tar.xz";
-      sha256 = "0ghxfllh8pkyrvsaz4iwc9bm98mkq6z3wr558w4wjykgjp69r08j";
-      name = "kdev-php-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kdev-php-21.12.3.tar.xz";
+      sha256 = "0z5iqgsh7w0hw0pw2522zlh5sd88zlplrxm3vjp3yvmza65471aa";
+      name = "kdev-php-21.12.3.tar.xz";
     };
   };
   kdev-python = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kdev-python-21.12.2.tar.xz";
-      sha256 = "05jj7q7agkgpbrxzwh0n2ipc854cgm8skjyjkqmxp2kdf3fdm8lj";
-      name = "kdev-python-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kdev-python-21.12.3.tar.xz";
+      sha256 = "1iyg1cfldf5mk62anw8schiw3ii0gp20qwg6ljk1r9hv583iwrq6";
+      name = "kdev-python-21.12.3.tar.xz";
     };
   };
   kdevelop = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kdevelop-21.12.2.tar.xz";
-      sha256 = "13kgkxvbjcb60ckapqrcr4m0y5kyag948xx6gwrvzhrhn46ynfgz";
-      name = "kdevelop-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kdevelop-21.12.3.tar.xz";
+      sha256 = "1shp8zlxr7iyysn1c8d3fp6rg6g2krj2v3zw5apalxcnal16bww6";
+      name = "kdevelop-21.12.3.tar.xz";
     };
   };
   kdf = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kdf-21.12.2.tar.xz";
-      sha256 = "1fs8bab6q7imfpqqgasvr98k57nm68ignfch2i76rdcywhx3q268";
-      name = "kdf-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kdf-21.12.3.tar.xz";
+      sha256 = "179ygy4kxkapfyxqj8h5xlvp1160vd72af34vd0a4r5az7wfd1m7";
+      name = "kdf-21.12.3.tar.xz";
     };
   };
   kdialog = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kdialog-21.12.2.tar.xz";
-      sha256 = "1k6zlh1gbpj0y40h1i8pan28d8chqjsnhd6pvsvr95b91d0pj2xn";
-      name = "kdialog-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kdialog-21.12.3.tar.xz";
+      sha256 = "04d1dqc5f02s867lllx1ix0nc55xw9hrpg7jxiy3v4c8vlzg0w53";
+      name = "kdialog-21.12.3.tar.xz";
     };
   };
   kdiamond = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kdiamond-21.12.2.tar.xz";
-      sha256 = "08b2a13bmxw3h6rhip619jvzgjrjgpz2v83i2azbqccfynisjnyh";
-      name = "kdiamond-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kdiamond-21.12.3.tar.xz";
+      sha256 = "1d3c4pckddnri9i19g2pi2ygpqakllrgy6azgvnh5hn20kgsw7d9";
+      name = "kdiamond-21.12.3.tar.xz";
     };
   };
   keditbookmarks = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/keditbookmarks-21.12.2.tar.xz";
-      sha256 = "1fxm0mm3sqp2frk2fcs2jw86wjxb2j5z9vyb34x7g80k5j17j57m";
-      name = "keditbookmarks-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/keditbookmarks-21.12.3.tar.xz";
+      sha256 = "0wfb7j1lhhdfw2x03p692mglmy9i9qys8mn4f3gxlb5imrd2hmnk";
+      name = "keditbookmarks-21.12.3.tar.xz";
     };
   };
   kfind = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kfind-21.12.2.tar.xz";
-      sha256 = "0kx6p4hyyalx5i8g4aq81aj30c9ac0380xvia9130g95pgkzd96c";
-      name = "kfind-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kfind-21.12.3.tar.xz";
+      sha256 = "1v1yxsbmzv4q5m5rbvl9n095d9fq0b1zphnl6vrzff5r8i53pzx0";
+      name = "kfind-21.12.3.tar.xz";
     };
   };
   kfloppy = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kfloppy-21.12.2.tar.xz";
-      sha256 = "10245c87379576n11xcjkll3rkvzv815qsavr4alsj1jr8w6zyg8";
-      name = "kfloppy-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kfloppy-21.12.3.tar.xz";
+      sha256 = "1phkigxd6bkwlcjrsfhlhn44ra9imfq0flcvp4vmza6c9ylsx6m8";
+      name = "kfloppy-21.12.3.tar.xz";
     };
   };
   kfourinline = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kfourinline-21.12.2.tar.xz";
-      sha256 = "1kz7ff31h8lvz7snqmjs6cma9i3py7dyd91i6ik2pwiar80sin1x";
-      name = "kfourinline-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kfourinline-21.12.3.tar.xz";
+      sha256 = "0rb5jcmmf19bidwywj56dn0wfrnrfi5kc75c20d7mxnlgygfdnkg";
+      name = "kfourinline-21.12.3.tar.xz";
     };
   };
   kgeography = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kgeography-21.12.2.tar.xz";
-      sha256 = "09h5zp8pxzr47s7j50l6xfssvk9zk56cqgnsjx75yh1n077z1d0j";
-      name = "kgeography-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kgeography-21.12.3.tar.xz";
+      sha256 = "1s1xyfffqkhmf4n74a4ksjz62rdiyl1fk1v57s9gnr6qw71wqql0";
+      name = "kgeography-21.12.3.tar.xz";
     };
   };
   kget = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kget-21.12.2.tar.xz";
-      sha256 = "0jmy2yxzrgq592dq075k7gp7ynk42i899jsbw0gbn79x69cxlkmv";
-      name = "kget-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kget-21.12.3.tar.xz";
+      sha256 = "1w249gvzz47ac7n1mnxxf20d9l7jmbh18m5dijy55ck61s4zcq4l";
+      name = "kget-21.12.3.tar.xz";
     };
   };
   kgoldrunner = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kgoldrunner-21.12.2.tar.xz";
-      sha256 = "0by6cq31jsls3qaqn4agrdhvd9jqg84plm6nbgh3rc85pnj5h22p";
-      name = "kgoldrunner-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kgoldrunner-21.12.3.tar.xz";
+      sha256 = "0gzz58407zjmk311kyyj5l2c1ciczcq9i8ckpwbd341dvwaww27q";
+      name = "kgoldrunner-21.12.3.tar.xz";
     };
   };
   kgpg = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kgpg-21.12.2.tar.xz";
-      sha256 = "1f193fyn1azwhm7b8gd5ffyb11acg1269mh1d2ly60ax83qjs48c";
-      name = "kgpg-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kgpg-21.12.3.tar.xz";
+      sha256 = "1mzq3g4xwg459k0mp9xvg8bhilizadbh4gck1764wq69bxlcyav3";
+      name = "kgpg-21.12.3.tar.xz";
     };
   };
   khangman = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/khangman-21.12.2.tar.xz";
-      sha256 = "0xih54w33vigvm3x2xp5lf29k4aga4yil0qv263965nxn9djnlaw";
-      name = "khangman-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/khangman-21.12.3.tar.xz";
+      sha256 = "000vn11pp4hwfh2689rmnwrrssrmrhx5569k02h4ynswkiykvbv6";
+      name = "khangman-21.12.3.tar.xz";
     };
   };
   khelpcenter = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/khelpcenter-21.12.2.tar.xz";
-      sha256 = "09ddkc7kiayx852mpgdmv04l19vrrc0yrf30hnyzkci58kbavvcq";
-      name = "khelpcenter-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/khelpcenter-21.12.3.tar.xz";
+      sha256 = "1fj1c57bqs009rx9db4ifvfmhhl4b35r5sfly3wvbfr4dapjqfqr";
+      name = "khelpcenter-21.12.3.tar.xz";
     };
   };
   kidentitymanagement = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kidentitymanagement-21.12.2.tar.xz";
-      sha256 = "00fwjax3kfvr8jsy04hp1jyihvskvprbg83z2avhcy6lvr7g25kk";
-      name = "kidentitymanagement-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kidentitymanagement-21.12.3.tar.xz";
+      sha256 = "18xwvlmqhih5jmig2mj3a6mc5awlxdv8f81da6cgm123imhrirk4";
+      name = "kidentitymanagement-21.12.3.tar.xz";
     };
   };
   kig = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kig-21.12.2.tar.xz";
-      sha256 = "100ds4728lfnb6r6c52rdzk2n4rcpc5jiv35q5qd7d6cszmxvhvx";
-      name = "kig-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kig-21.12.3.tar.xz";
+      sha256 = "0rl0z1djsf9ha0q94v0cnj5qm4ij6yjsil2s57r3v666h64yradn";
+      name = "kig-21.12.3.tar.xz";
     };
   };
   kigo = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kigo-21.12.2.tar.xz";
-      sha256 = "0g1sl7bw9aln7fm2786sgh0m44da6vfxc9g0rizw31ff8papnyb8";
-      name = "kigo-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kigo-21.12.3.tar.xz";
+      sha256 = "14pp73b9mbf0ny75b90vs7z9l61m7zp8cll7hl4bplqh1kig1szf";
+      name = "kigo-21.12.3.tar.xz";
     };
   };
   killbots = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/killbots-21.12.2.tar.xz";
-      sha256 = "1qryy2g2i6iqc6rsw8jz4c14x67glpm3zvcx2dghyll6q9hns43z";
-      name = "killbots-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/killbots-21.12.3.tar.xz";
+      sha256 = "1ncr55xq04vrx6bss1ahk86c3l9ckhv4zjbc6gq4krhjw0lkdfiv";
+      name = "killbots-21.12.3.tar.xz";
     };
   };
   kimagemapeditor = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kimagemapeditor-21.12.2.tar.xz";
-      sha256 = "11j55jvfxdpam3gkfv7355av9d6mz8z6djhplhmfd56llkmvw4n2";
-      name = "kimagemapeditor-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kimagemapeditor-21.12.3.tar.xz";
+      sha256 = "0qdmyrlf0jp3737p7x31wk428676xv77lx0mgyd9h2hdl0ipnbvr";
+      name = "kimagemapeditor-21.12.3.tar.xz";
     };
   };
   kimap = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kimap-21.12.2.tar.xz";
-      sha256 = "0sdas8knk6wa8hhgc3w62famdpq6pcxfhl4vmpw0r3aqskaci4q3";
-      name = "kimap-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kimap-21.12.3.tar.xz";
+      sha256 = "11jd9zkvflfh3gqs36fhj8mla3k44xf7zdb0z4nl9sk5nhhgm5px";
+      name = "kimap-21.12.3.tar.xz";
     };
   };
   kio-extras = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kio-extras-21.12.2.tar.xz";
-      sha256 = "0133cww4k2svn7cvw0fbdcwwv0zg09d27gz59gkpfswjmpsxdqj4";
-      name = "kio-extras-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kio-extras-21.12.3.tar.xz";
+      sha256 = "11zpnjdri7z4sz6zx26d9iv52aj4vf5lr9c114gg4pvz2l4h4h5i";
+      name = "kio-extras-21.12.3.tar.xz";
     };
   };
   kio-gdrive = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kio-gdrive-21.12.2.tar.xz";
-      sha256 = "1n3khrx5fczffwzg4bzxjhzy2kxf72dmb7fqs9hqfn1qkaahfv49";
-      name = "kio-gdrive-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kio-gdrive-21.12.3.tar.xz";
+      sha256 = "0bm3c7g6q7z2ydnha2x5c456x9wlgachi9453mlrd2zcsc7c5h87";
+      name = "kio-gdrive-21.12.3.tar.xz";
     };
   };
   kipi-plugins = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kipi-plugins-21.12.2.tar.xz";
-      sha256 = "11f3qmgqxdlzvv2zldjawn7a3kdigj5pb535rc9v9a8fp8mjvk88";
-      name = "kipi-plugins-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kipi-plugins-21.12.3.tar.xz";
+      sha256 = "1h6107d2a6jcyjsd191cg2ykgwm580j7wr0blg328ff6wwk1aizy";
+      name = "kipi-plugins-21.12.3.tar.xz";
     };
   };
   kirigami-gallery = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kirigami-gallery-21.12.2.tar.xz";
-      sha256 = "0rg9lg4iqxycfbhs62qs4ms4qadz1ii1dcv3ykkgn3w2brx77wad";
-      name = "kirigami-gallery-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kirigami-gallery-21.12.3.tar.xz";
+      sha256 = "0pjd9bq965v9x433p8rbhd7w3fj0808qd7x4c11ziyhy4cg9gwml";
+      name = "kirigami-gallery-21.12.3.tar.xz";
     };
   };
   kiriki = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kiriki-21.12.2.tar.xz";
-      sha256 = "1blj3vl87jdrr8qv2cyng20nr4d54gbk7w72z9rl02l62c9gkw5j";
-      name = "kiriki-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kiriki-21.12.3.tar.xz";
+      sha256 = "0qbm0zjjqnbcdm39zi8h240nblpa1pa7g1ls9mghzbqrdrh7n3a0";
+      name = "kiriki-21.12.3.tar.xz";
     };
   };
   kiten = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kiten-21.12.2.tar.xz";
-      sha256 = "18kxqrhfgch32583ra4422h7csd5ajijf9989bxz9hwi9mn3r2vl";
-      name = "kiten-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kiten-21.12.3.tar.xz";
+      sha256 = "0z0haqxxkh7m2510b5qfwbx8s45vcahbk503jp1x0bwz03mrwflw";
+      name = "kiten-21.12.3.tar.xz";
     };
   };
   kitinerary = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kitinerary-21.12.2.tar.xz";
-      sha256 = "0g7z6408nhrv54h6xxd2rd9wj2hmwzc3lg5risyqbg2zii9j0sp2";
-      name = "kitinerary-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kitinerary-21.12.3.tar.xz";
+      sha256 = "0kccrjiyib2zljr6rnc89y29jgi8cnhwfh1yq8psyzmca2n8lpxi";
+      name = "kitinerary-21.12.3.tar.xz";
     };
   };
   kjumpingcube = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kjumpingcube-21.12.2.tar.xz";
-      sha256 = "1abv3yi716n88b19rmimhw0vnnwyw28ab6fbcy9g1lgpbi69g5ax";
-      name = "kjumpingcube-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kjumpingcube-21.12.3.tar.xz";
+      sha256 = "1wlk6my6pawmdv3zgcpnyyzpjwz0wii0h8i1z0gxhbpg9nc8iy1r";
+      name = "kjumpingcube-21.12.3.tar.xz";
     };
   };
   kldap = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kldap-21.12.2.tar.xz";
-      sha256 = "1xda42f1q5ih3hdhmcbdz0fx2nchirlwips3gq0jb6lfzi5dbqpl";
-      name = "kldap-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kldap-21.12.3.tar.xz";
+      sha256 = "13llsfhx9lfvhf90a3vmpkyh02fjg5sp4fmrwrqyx9hjrbmy1g0a";
+      name = "kldap-21.12.3.tar.xz";
     };
   };
   kleopatra = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kleopatra-21.12.2.tar.xz";
-      sha256 = "1b2nq823gq1v20dnh3hm298fva7cmbn9hh0kmbq22kh98kv8chhh";
-      name = "kleopatra-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kleopatra-21.12.3.tar.xz";
+      sha256 = "10f61m0qrs0qipn94jd32gibyj8pcvprs8j7gmac0mym0b3djjls";
+      name = "kleopatra-21.12.3.tar.xz";
     };
   };
   klettres = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/klettres-21.12.2.tar.xz";
-      sha256 = "1wi1byr36x7z9scsy1gffna36m8x9vyfcqzndvx6042i2y0smhwz";
-      name = "klettres-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/klettres-21.12.3.tar.xz";
+      sha256 = "0l4zgfqd6l2bk67s2a0zldbcy8v7nwbv7yahvnyw4jf4jyv9q9rv";
+      name = "klettres-21.12.3.tar.xz";
     };
   };
   klickety = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/klickety-21.12.2.tar.xz";
-      sha256 = "19rn9p7cbxhn471b65nhwhpnfnhykjwj6n5lrsd431391dyhvshc";
-      name = "klickety-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/klickety-21.12.3.tar.xz";
+      sha256 = "03liv3fax764ngfkwp3ga96irn8qb509b08ljnhz5aw5v9yrssnk";
+      name = "klickety-21.12.3.tar.xz";
     };
   };
   klines = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/klines-21.12.2.tar.xz";
-      sha256 = "1r004rsy98lxh5vd3r4bc0l4d7ymija13barg9xglj53xzbyij3k";
-      name = "klines-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/klines-21.12.3.tar.xz";
+      sha256 = "1ypi64wdsw1zsj03wcxj02v27y1by113v89as8dyk9wr0pfmbpqf";
+      name = "klines-21.12.3.tar.xz";
     };
   };
   kmag = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kmag-21.12.2.tar.xz";
-      sha256 = "03kzahsr80wnbx6ky112ka3zm01pnc5h85l28a4186617swx344l";
-      name = "kmag-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kmag-21.12.3.tar.xz";
+      sha256 = "067x65gmip89rdgii2nwnxn7zi96cf7vfbhqzg0499pd2d69p3sl";
+      name = "kmag-21.12.3.tar.xz";
     };
   };
   kmahjongg = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kmahjongg-21.12.2.tar.xz";
-      sha256 = "1w8v6fchrkvsbyvnx8vvs801cvg52pr78ihvdjv6c0vpd0q7z9rz";
-      name = "kmahjongg-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kmahjongg-21.12.3.tar.xz";
+      sha256 = "02yvvpwkk5gbj445zv5xhfragk8220rlx0pkxf32pj0jsv7dnz1x";
+      name = "kmahjongg-21.12.3.tar.xz";
     };
   };
   kmail = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kmail-21.12.2.tar.xz";
-      sha256 = "003bnp00figa09qcp2hl45sivdk3d0j3amxdidyrn47q9vy40554";
-      name = "kmail-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kmail-21.12.3.tar.xz";
+      sha256 = "1knh6cf72hidc6jyiw250b708b410fla0c5w83zaavmwv37ah8z0";
+      name = "kmail-21.12.3.tar.xz";
     };
   };
   kmail-account-wizard = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kmail-account-wizard-21.12.2.tar.xz";
-      sha256 = "1nmg8qns3iglcc4l4g5nffnji1vgg43a9fa9rz1hacvlkarm98m4";
-      name = "kmail-account-wizard-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kmail-account-wizard-21.12.3.tar.xz";
+      sha256 = "0ar2rm6viissfipbak07fxivrgqgsdfilsprsqmvab44inw2g4pg";
+      name = "kmail-account-wizard-21.12.3.tar.xz";
     };
   };
   kmailtransport = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kmailtransport-21.12.2.tar.xz";
-      sha256 = "0rs6qihzy8q2n204zkhakgnjxwqy9pz9i0kv1j3amw2xv3f51rvw";
-      name = "kmailtransport-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kmailtransport-21.12.3.tar.xz";
+      sha256 = "0l3pgs781a6is937i0bkz9ykr40l36rwlrirsr4g8wh0gkc3ifi6";
+      name = "kmailtransport-21.12.3.tar.xz";
     };
   };
   kmbox = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kmbox-21.12.2.tar.xz";
-      sha256 = "1mfwaw4d480kbb60wb0kvl5z35ly2hn6h73kx9wdb5y7mz05rvn1";
-      name = "kmbox-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kmbox-21.12.3.tar.xz";
+      sha256 = "04cl2khj3a7n81nlmxsg8kgszrl22qm6s2kvbrhz39yfzi31cwqr";
+      name = "kmbox-21.12.3.tar.xz";
     };
   };
   kmime = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kmime-21.12.2.tar.xz";
-      sha256 = "0qxb0gf4pqfa0540fsbnf24nh9qwiamwl65q7vaanb80b211qp2g";
-      name = "kmime-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kmime-21.12.3.tar.xz";
+      sha256 = "03s7l4lywdvp97h4qjgq06qqcclvnhy83qsrfzv0w2wcl631nnpw";
+      name = "kmime-21.12.3.tar.xz";
     };
   };
   kmines = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kmines-21.12.2.tar.xz";
-      sha256 = "0dsqlqmbaggab38zzjyhnx318sn2mw6y51k52c7blm2l53a8zp3j";
-      name = "kmines-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kmines-21.12.3.tar.xz";
+      sha256 = "1wxy0cyz733wvnxfjhirqf41wnda4f6aqdiqmb5r1ngzzllgbglc";
+      name = "kmines-21.12.3.tar.xz";
     };
   };
   kmix = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kmix-21.12.2.tar.xz";
-      sha256 = "0fyjzzv6x9xf0g222jjsvrywnm3blhbzm2zwhxagrfkjvjpb2cvk";
-      name = "kmix-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kmix-21.12.3.tar.xz";
+      sha256 = "1zk2xljis1pv3m4vs5zr6wza6iv5y6wmh1csx3rn8ylfkrpk7h8k";
+      name = "kmix-21.12.3.tar.xz";
     };
   };
   kmousetool = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kmousetool-21.12.2.tar.xz";
-      sha256 = "1hh7sql04hpwvb8hbi7snvh2d6922a2yraah9hd1jiwniv3cv175";
-      name = "kmousetool-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kmousetool-21.12.3.tar.xz";
+      sha256 = "013qr1md3gbin7hcahnv14y9i2cg35r433s2w81fvgcakd38qvkj";
+      name = "kmousetool-21.12.3.tar.xz";
     };
   };
   kmouth = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kmouth-21.12.2.tar.xz";
-      sha256 = "0vxssxchh23bl237qw9pznbrkwyqx1bhbnp2fq9baw1bn88d18i5";
-      name = "kmouth-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kmouth-21.12.3.tar.xz";
+      sha256 = "0xvkp2pm2szbgzdsfmwrykma8npmlwmx2pb1iakbx3x1wyyjsbim";
+      name = "kmouth-21.12.3.tar.xz";
     };
   };
   kmplot = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kmplot-21.12.2.tar.xz";
-      sha256 = "025n51s7i5nr63knsd78pg48wfs4cldhplr68jmwv2k8pb5w9kxs";
-      name = "kmplot-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kmplot-21.12.3.tar.xz";
+      sha256 = "1vmrzfcdyaxgvyp9la2gvy3h5fhksmn24lsnrpvr6alj880mh8bq";
+      name = "kmplot-21.12.3.tar.xz";
     };
   };
   knavalbattle = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/knavalbattle-21.12.2.tar.xz";
-      sha256 = "1z1qqr5jjinm49p7rhr0pzf8ir2nvdq157zqxnnr6i11xqk2mnkj";
-      name = "knavalbattle-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/knavalbattle-21.12.3.tar.xz";
+      sha256 = "1mpj1783za6b7a7cjawy4v0z24dvcd34gdb25qch4gi9cx1lc28z";
+      name = "knavalbattle-21.12.3.tar.xz";
     };
   };
   knetwalk = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/knetwalk-21.12.2.tar.xz";
-      sha256 = "1gnir7h1iam51frdajp4h6xw4biz545nljdfcck17jiw6ad9py4j";
-      name = "knetwalk-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/knetwalk-21.12.3.tar.xz";
+      sha256 = "0ahms3imvkdknp1z2h6j42k9g1i20ygd2633icjv37d2cbij128m";
+      name = "knetwalk-21.12.3.tar.xz";
     };
   };
   knights = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/knights-21.12.2.tar.xz";
-      sha256 = "0k9hqgz3zw7vhrgbwnmy0v3j9kflz6wx8wavckg1i2l4qadprc1y";
-      name = "knights-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/knights-21.12.3.tar.xz";
+      sha256 = "1m2big16rdw3w347m5vi0qhypnb2rgz6804kkxs7ln0yx658y4x4";
+      name = "knights-21.12.3.tar.xz";
     };
   };
   knotes = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/knotes-21.12.2.tar.xz";
-      sha256 = "0f8ra6nkgndgkfnw194y5976kkrm7qdj1w7l27znwalzaydnxvjg";
-      name = "knotes-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/knotes-21.12.3.tar.xz";
+      sha256 = "07pj0aqwsy1xi5mx7x0h3zmxfg0n4afgjax9a9ihc553xs6k48d7";
+      name = "knotes-21.12.3.tar.xz";
     };
   };
   kolf = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kolf-21.12.2.tar.xz";
-      sha256 = "0as18rc45daak3xsmwn6k789yni46nsdkv83bfmbj3jcjhzv9x5k";
-      name = "kolf-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kolf-21.12.3.tar.xz";
+      sha256 = "00dhjy82d9964z94nn4vkkwynql3bfa6djwrgsq93f9d7grgkd7g";
+      name = "kolf-21.12.3.tar.xz";
     };
   };
   kollision = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kollision-21.12.2.tar.xz";
-      sha256 = "1ycim9gjn9p6w6yyzsipqn7zpvi946s287mp4br35zavsf25gzn0";
-      name = "kollision-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kollision-21.12.3.tar.xz";
+      sha256 = "0avin6s1lglfps6qlvz19i27nb0x0hgrl4q2brpq4kax7azs1nc3";
+      name = "kollision-21.12.3.tar.xz";
     };
   };
   kolourpaint = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kolourpaint-21.12.2.tar.xz";
-      sha256 = "0z53hp31sq4ksarvpzqmx9f3gac8ygrcj0ncppgbwwjkq63wr6v1";
-      name = "kolourpaint-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kolourpaint-21.12.3.tar.xz";
+      sha256 = "0kbz8jz33bk4zr7kk6mb1y42mdq6nykdfqm2cs08sxldd3nrs6fj";
+      name = "kolourpaint-21.12.3.tar.xz";
     };
   };
   kompare = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kompare-21.12.2.tar.xz";
-      sha256 = "0ps6ng77kzcqf6b2sh8xmqh5d4jwkmj3qnbyxh4v4xxjbwy0mrwm";
-      name = "kompare-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kompare-21.12.3.tar.xz";
+      sha256 = "097aawmziplsndj42bdjf3x3smal1fy67c2y7cik9p1qw9wgn24h";
+      name = "kompare-21.12.3.tar.xz";
     };
   };
   konqueror = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/konqueror-21.12.2.tar.xz";
-      sha256 = "0ia8qqas9x261ixa6jzih273ypqhdv5hijk042bcdmqd1z1s4n55";
-      name = "konqueror-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/konqueror-21.12.3.tar.xz";
+      sha256 = "0z3zq71n0lnpx5ggfg835zbmgf2ly4zsmz01yyyxn9n9d9b6d3px";
+      name = "konqueror-21.12.3.tar.xz";
     };
   };
   konquest = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/konquest-21.12.2.tar.xz";
-      sha256 = "1arxp4x8pcmv8yqg1xy5b23avh5a7x660vvh6kaviimysad5wmc5";
-      name = "konquest-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/konquest-21.12.3.tar.xz";
+      sha256 = "0lrahq9s70rx24dw4cgpvchr4s6pcl565vh343ggg24s1rd3ly80";
+      name = "konquest-21.12.3.tar.xz";
     };
   };
   konsole = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/konsole-21.12.2.tar.xz";
-      sha256 = "00gyzhcacd3467sv5ijihqva7pnvcy1chywfpy8qh2hcdkkvyfxa";
-      name = "konsole-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/konsole-21.12.3.tar.xz";
+      sha256 = "06sqm2xmairicrdcxnf7imvyvw0wyknrrym334scx2w7mfhjg5qs";
+      name = "konsole-21.12.3.tar.xz";
     };
   };
   kontact = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kontact-21.12.2.tar.xz";
-      sha256 = "16ld08sx5lvrm9r0ync7r8bpd540gxsssvhxj5p43chq6b9hr5lm";
-      name = "kontact-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kontact-21.12.3.tar.xz";
+      sha256 = "16p17b4llral0g48l3s9yg838x6hhc4dprlcpd00b8sy58c27f90";
+      name = "kontact-21.12.3.tar.xz";
     };
   };
   kontactinterface = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kontactinterface-21.12.2.tar.xz";
-      sha256 = "1qvjm27v797hcdqbr6jwdkwn3vpsy3f1i92slrwks03zj498ydlj";
-      name = "kontactinterface-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kontactinterface-21.12.3.tar.xz";
+      sha256 = "1qwx0q4bbk3d720ij37wbd54g9alw6ispjl1mq19hkk3gs5l1c78";
+      name = "kontactinterface-21.12.3.tar.xz";
     };
   };
   kontrast = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kontrast-21.12.2.tar.xz";
-      sha256 = "0mk2i2x1yz0ykbnqvdbdpi9kplyzjxlwhhsvl4rbq0726g3q6pas";
-      name = "kontrast-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kontrast-21.12.3.tar.xz";
+      sha256 = "1rp279mfq18p5kzw3788m8w6kkj8w7zfdv97rnl3n5jir4j94yxl";
+      name = "kontrast-21.12.3.tar.xz";
     };
   };
   konversation = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/konversation-21.12.2.tar.xz";
-      sha256 = "0lpkah6z12c4f77z6r5z31q5np3xwyb3y6xnsv1iq1rdzj0daxch";
-      name = "konversation-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/konversation-21.12.3.tar.xz";
+      sha256 = "05dxzkpadz29b5fm6pf225xqq0gaz9w50paz9341kzz4k3rnzq80";
+      name = "konversation-21.12.3.tar.xz";
     };
   };
   kopeninghours = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kopeninghours-21.12.2.tar.xz";
-      sha256 = "1s4wcnk7p0vjqdhyf8131l3s6bn86gfkwl45zwpi7lpyacwgdf6k";
-      name = "kopeninghours-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kopeninghours-21.12.3.tar.xz";
+      sha256 = "0pfkrns576ll6wc33c8i6pgzd9wf543w2isbvh393zyb1rr3bzgd";
+      name = "kopeninghours-21.12.3.tar.xz";
     };
   };
   kopete = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kopete-21.12.2.tar.xz";
-      sha256 = "1py45nk6bv5x2hnfzh5srq17lprkqrmpqr2h0fpmkmffx66njz5q";
-      name = "kopete-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kopete-21.12.3.tar.xz";
+      sha256 = "1v519sw2lzlap6xci3j55k8c48755sc9p3mgvj566b6jjq64xi5k";
+      name = "kopete-21.12.3.tar.xz";
     };
   };
   korganizer = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/korganizer-21.12.2.tar.xz";
-      sha256 = "1kablp0x65jmdz5n3y19rgplcvvmq8vxz0ljw7lkrwr3pvvhyv3q";
-      name = "korganizer-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/korganizer-21.12.3.tar.xz";
+      sha256 = "072pyzs38dv07mwi4hlfb4rh9jx40dpxac3ywy7kj6nyvbfjmh0r";
+      name = "korganizer-21.12.3.tar.xz";
     };
   };
   kosmindoormap = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kosmindoormap-21.12.2.tar.xz";
-      sha256 = "0max3mfwd5x8m3kqybnkrb4v93rdk1r007xw31l52j2rq2gh8pj2";
-      name = "kosmindoormap-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kosmindoormap-21.12.3.tar.xz";
+      sha256 = "06i616c873lkkpy2iwdjcgwnm6adjrr6rcain2rrb1j4pgzmmbvw";
+      name = "kosmindoormap-21.12.3.tar.xz";
     };
   };
   kpat = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kpat-21.12.2.tar.xz";
-      sha256 = "0vra8n9xsba67as0ybmbjy235v3s7dmrwlf18avnb3ygxy0h8swf";
-      name = "kpat-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kpat-21.12.3.tar.xz";
+      sha256 = "1jd9457hf15d2l6njkfyj9a7lfyabcm80vz3zjb2cykm16x3sdb8";
+      name = "kpat-21.12.3.tar.xz";
     };
   };
   kpimtextedit = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kpimtextedit-21.12.2.tar.xz";
-      sha256 = "06d42k433dvkfrnzfdx0b1qarrnmhnb4gyq7vgy6251ah8smild8";
-      name = "kpimtextedit-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kpimtextedit-21.12.3.tar.xz";
+      sha256 = "19hrqbjcmpi81vmnggrkrv0fcc9inhz5aa5klx0141aylnzfgwsl";
+      name = "kpimtextedit-21.12.3.tar.xz";
     };
   };
   kpkpass = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kpkpass-21.12.2.tar.xz";
-      sha256 = "0p2l1z4blfq1iz3x9cnwwx2p9cs6bb4vw1csj29s09i6237ippzx";
-      name = "kpkpass-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kpkpass-21.12.3.tar.xz";
+      sha256 = "05f88hlqxfak94jy8afiv91dgzxd9qgrkarnqi9rv1f5a3j7k3k7";
+      name = "kpkpass-21.12.3.tar.xz";
     };
   };
   kpmcore = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kpmcore-21.12.2.tar.xz";
-      sha256 = "1iyirvf04br0r8vclcpx0qrlm8wgqm9ww6xds3h9qjyqj1w8ng41";
-      name = "kpmcore-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kpmcore-21.12.3.tar.xz";
+      sha256 = "19h0ag54xzv4hwh950hshjghd4fb9xkdg8rlx6lvqa0w9b8admva";
+      name = "kpmcore-21.12.3.tar.xz";
     };
   };
   kpublictransport = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kpublictransport-21.12.2.tar.xz";
-      sha256 = "02ffpgki4mdyczxa5bqb9wmg2c6anwxnsmlfdn1k47ry7ny2k9sl";
-      name = "kpublictransport-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kpublictransport-21.12.3.tar.xz";
+      sha256 = "1jcba5bq320afzfs5ly3vyyicdix8fprpr02x67v8p7mdzg58cq6";
+      name = "kpublictransport-21.12.3.tar.xz";
     };
   };
   kqtquickcharts = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kqtquickcharts-21.12.2.tar.xz";
-      sha256 = "1sjm1vaksvp73866w09xadd1d0lakh00fwiic498siws4dvhhpif";
-      name = "kqtquickcharts-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kqtquickcharts-21.12.3.tar.xz";
+      sha256 = "0gl9c8zfn440202l82y4nfng0hyhivby8a4hf91rphi8f1xfxxmr";
+      name = "kqtquickcharts-21.12.3.tar.xz";
     };
   };
   krdc = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/krdc-21.12.2.tar.xz";
-      sha256 = "005i3a7l9aq63nxsivj28kzjy2zdl759snwm56cgwq9rgc6sc003";
-      name = "krdc-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/krdc-21.12.3.tar.xz";
+      sha256 = "09np9clvmdll7v2p9aswnlhz4cgsnly82za7k3k9fs66h5c8q20j";
+      name = "krdc-21.12.3.tar.xz";
     };
   };
   kreversi = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kreversi-21.12.2.tar.xz";
-      sha256 = "03b4c28297dzdzplmg818r27r9gpqj48rha9884h22fz9davgmhw";
-      name = "kreversi-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kreversi-21.12.3.tar.xz";
+      sha256 = "0lbypkh6lc5af43c2p19gs2c53icxd26abxf5rhs2c8182gr39b8";
+      name = "kreversi-21.12.3.tar.xz";
     };
   };
   krfb = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/krfb-21.12.2.tar.xz";
-      sha256 = "1989q0mig516hz0lbq2m8p85x8ikpyrhj36cvq4c32sd2nasxkvc";
-      name = "krfb-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/krfb-21.12.3.tar.xz";
+      sha256 = "1r8lvvh2z8xi0l3pizlpl12nm4fnbpgiwqmx18w8i51x4j27dv0n";
+      name = "krfb-21.12.3.tar.xz";
     };
   };
   kross-interpreters = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kross-interpreters-21.12.2.tar.xz";
-      sha256 = "14j7z6lwl0j7zdz29c1kjyhw0my6qfgnyxibwn9z87paxl8nv6z0";
-      name = "kross-interpreters-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kross-interpreters-21.12.3.tar.xz";
+      sha256 = "0wyr3xwdkb2fiadzh5lhjli1g0mbxjw353q7k1vbi2wxg5b9042g";
+      name = "kross-interpreters-21.12.3.tar.xz";
     };
   };
   kruler = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kruler-21.12.2.tar.xz";
-      sha256 = "1w5dw3qda69d4ycbiaj18gfn6w28dj2lc37x2d86kx5skv8adxbw";
-      name = "kruler-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kruler-21.12.3.tar.xz";
+      sha256 = "0jmb3a907jx0s80865lmd7in8ggdf30gdbgykpalzfrv7nkjamzr";
+      name = "kruler-21.12.3.tar.xz";
     };
   };
   kshisen = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kshisen-21.12.2.tar.xz";
-      sha256 = "0wjr9fnkmbylfq13zy3hifr4byj4y46f8cwh0w61ypgc0wjxnhhg";
-      name = "kshisen-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kshisen-21.12.3.tar.xz";
+      sha256 = "1i11gh87gfza58rpdd44pjb423an9a44cls117ba9gznxm67cph5";
+      name = "kshisen-21.12.3.tar.xz";
     };
   };
   ksirk = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ksirk-21.12.2.tar.xz";
-      sha256 = "1lif8n8n2pj4vaf7zifqj7mjv5dbhki75wbwjd4q061wpr434vfj";
-      name = "ksirk-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ksirk-21.12.3.tar.xz";
+      sha256 = "1ipnkg2mgj37g5s5ihlys176kn2c11f3d57xr9zhqf8fvkvrkfm0";
+      name = "ksirk-21.12.3.tar.xz";
     };
   };
   ksmtp = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ksmtp-21.12.2.tar.xz";
-      sha256 = "0hg5g401map67kjcgrd1a07iwyss5jnryhpsajffwz19sra855jp";
-      name = "ksmtp-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ksmtp-21.12.3.tar.xz";
+      sha256 = "0kdy5gsg1sgccvdk1fpf866xl9m8v8z034jpgf6s7n2pr5r5mni2";
+      name = "ksmtp-21.12.3.tar.xz";
     };
   };
   ksnakeduel = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ksnakeduel-21.12.2.tar.xz";
-      sha256 = "0rdbsyfd3bink5cb0k5l713jw4syhz82kchn95cbg5zgc2iclfw4";
-      name = "ksnakeduel-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ksnakeduel-21.12.3.tar.xz";
+      sha256 = "06rill73xhhxra7kmbvwwriv9vbi91641z334ry1m4rr1qm2cdd6";
+      name = "ksnakeduel-21.12.3.tar.xz";
     };
   };
   kspaceduel = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kspaceduel-21.12.2.tar.xz";
-      sha256 = "1kmwn55a4555g5m21jcr88k3f9aj87yifgrab6sx6gcw5q51d7vz";
-      name = "kspaceduel-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kspaceduel-21.12.3.tar.xz";
+      sha256 = "0dv539jlpkj8hr4cz0ncqm3scg6ja3s41p37bpqd94zicfvzxw84";
+      name = "kspaceduel-21.12.3.tar.xz";
     };
   };
   ksquares = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ksquares-21.12.2.tar.xz";
-      sha256 = "12k09lasxyaxq4bp4fhczj8bpi8l6h1gn4nj6ka3zbc4mxxz34yc";
-      name = "ksquares-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ksquares-21.12.3.tar.xz";
+      sha256 = "1wbrakq1wnwp558y140j9vbid3g0k332rwbilky7z11c0giiv76x";
+      name = "ksquares-21.12.3.tar.xz";
     };
   };
   ksudoku = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ksudoku-21.12.2.tar.xz";
-      sha256 = "1din2i3d9lhca5kw06ivixgk2prh1kfy8ikm0byl8qaqj4v89lji";
-      name = "ksudoku-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ksudoku-21.12.3.tar.xz";
+      sha256 = "1gw0ybwhvg1z8pcs72f73y52jvzvrw367g275axf2rw50iik6jwv";
+      name = "ksudoku-21.12.3.tar.xz";
     };
   };
   ksystemlog = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ksystemlog-21.12.2.tar.xz";
-      sha256 = "0cvx13859bm4kfz75iia3chzi5pbbv70lkmspvjpa6cpsn05zy53";
-      name = "ksystemlog-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ksystemlog-21.12.3.tar.xz";
+      sha256 = "0jkd0rx0xlzwsxa3s40sp5x4r19a9rg1x9klpnjfw0b326vgf2m9";
+      name = "ksystemlog-21.12.3.tar.xz";
     };
   };
   kteatime = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kteatime-21.12.2.tar.xz";
-      sha256 = "1m7ni3w82lqykgs5qfi0a43p9973244k8lr6rk30x7w551rc7yyw";
-      name = "kteatime-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kteatime-21.12.3.tar.xz";
+      sha256 = "0i3ps1a8y8crmxf1631q4zjfa0zglqhq1rk6id5v2xx8f10rkh54";
+      name = "kteatime-21.12.3.tar.xz";
     };
   };
   ktimer = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ktimer-21.12.2.tar.xz";
-      sha256 = "0jprayxn54pw7brrcb1b70y5sal9j6pfpwrphd2nyw5rkb2a484l";
-      name = "ktimer-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ktimer-21.12.3.tar.xz";
+      sha256 = "0s6zbygxnk69dciyz1iv1d6whfcv637licsd07n7fc8bsygqjl5p";
+      name = "ktimer-21.12.3.tar.xz";
     };
   };
   ktnef = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ktnef-21.12.2.tar.xz";
-      sha256 = "0cl589z0v6h1z3aszk4160y99gpihpk203rn73dmb7c6qsk11cbl";
-      name = "ktnef-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ktnef-21.12.3.tar.xz";
+      sha256 = "1in991n8alkxf40p0wvkr7gdaaz8w4kdw1rsq6sbjil6cs4cr5nl";
+      name = "ktnef-21.12.3.tar.xz";
     };
   };
   ktorrent = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ktorrent-21.12.2.tar.xz";
-      sha256 = "1zwakqp5j2795j4pln4sq595bc2zlw8cy8qdzwj365clfbpcbyc3";
-      name = "ktorrent-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ktorrent-21.12.3.tar.xz";
+      sha256 = "021x6qcbk4kdh5ay5mqmf92129s42j2rhrs0q350b0wcnpad55zd";
+      name = "ktorrent-21.12.3.tar.xz";
     };
   };
   ktouch = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ktouch-21.12.2.tar.xz";
-      sha256 = "1rq2n8395sb17rqd295axv2pbwzhqs8ikjqx5ryn4lv1713alabl";
-      name = "ktouch-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ktouch-21.12.3.tar.xz";
+      sha256 = "0wi01gr85sxs4qhvnwkkp1230wnvz7gdr74zar03rc3wzwgv22nd";
+      name = "ktouch-21.12.3.tar.xz";
     };
   };
   ktp-accounts-kcm = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ktp-accounts-kcm-21.12.2.tar.xz";
-      sha256 = "14niidb9kza6sms9rhhnvrba6rdwhc890b5inmlhdllnqbdrrcbl";
-      name = "ktp-accounts-kcm-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ktp-accounts-kcm-21.12.3.tar.xz";
+      sha256 = "1ydsfiw67avgwswvpy85s3siggyi4w610yqz5dyl535i6my1kl5n";
+      name = "ktp-accounts-kcm-21.12.3.tar.xz";
     };
   };
   ktp-approver = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ktp-approver-21.12.2.tar.xz";
-      sha256 = "11scv978silxrprkyd66b4xkdww05xpgk8kvrknlwp33rmhm05sn";
-      name = "ktp-approver-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ktp-approver-21.12.3.tar.xz";
+      sha256 = "0mvczpc0dy2m0dn25r2h2js3hw7s0qr8zl3syvqbyqqs51s59xnl";
+      name = "ktp-approver-21.12.3.tar.xz";
     };
   };
   ktp-auth-handler = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ktp-auth-handler-21.12.2.tar.xz";
-      sha256 = "006an8bva8zawnirv3ai3kjb59ffgany124ip546r5wg06zkk069";
-      name = "ktp-auth-handler-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ktp-auth-handler-21.12.3.tar.xz";
+      sha256 = "0lgg0ify9mbsd8has8ingkq3m0g91r9gvfq85s2xf90cwc1s429c";
+      name = "ktp-auth-handler-21.12.3.tar.xz";
     };
   };
   ktp-call-ui = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ktp-call-ui-21.12.2.tar.xz";
-      sha256 = "0n8yirlsig37839rl73azg8vf8ppdxlf1dqgkf5bz8g3jcs92gcm";
-      name = "ktp-call-ui-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ktp-call-ui-21.12.3.tar.xz";
+      sha256 = "1npr8qbpxx25pm9mky9sd0qngc5wphmy5blvl6qy7nvs2rqszgam";
+      name = "ktp-call-ui-21.12.3.tar.xz";
     };
   };
   ktp-common-internals = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ktp-common-internals-21.12.2.tar.xz";
-      sha256 = "0c7kfrgf8bqm7q9hp9fd8q49vakiihzl0dgdklpvgly48zfa2yan";
-      name = "ktp-common-internals-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ktp-common-internals-21.12.3.tar.xz";
+      sha256 = "0spr2gs5d561agvipkipwcxk2zjlhzvp6swdh8rcv23qr6igqjq6";
+      name = "ktp-common-internals-21.12.3.tar.xz";
     };
   };
   ktp-contact-list = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ktp-contact-list-21.12.2.tar.xz";
-      sha256 = "0pw5kl0lh0ph3y9hyws7h7phh475lw07gydxxjsfxsd4nb70hkz8";
-      name = "ktp-contact-list-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ktp-contact-list-21.12.3.tar.xz";
+      sha256 = "1qn3bmwl4kvm5ikbr0ycy2znm4c2yv4m5863d4vakr8xhhappamp";
+      name = "ktp-contact-list-21.12.3.tar.xz";
     };
   };
   ktp-contact-runner = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ktp-contact-runner-21.12.2.tar.xz";
-      sha256 = "0as41gba7ra65i6ml8j8fqh70x165cnmp9ry13ijrdf9vx21a45k";
-      name = "ktp-contact-runner-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ktp-contact-runner-21.12.3.tar.xz";
+      sha256 = "0bwi0j733jnwiqlxv8nik1whdvk4aggfayy2bcwwpj5zdzr3mbga";
+      name = "ktp-contact-runner-21.12.3.tar.xz";
     };
   };
   ktp-desktop-applets = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ktp-desktop-applets-21.12.2.tar.xz";
-      sha256 = "0675hlcjq6xyzl1sz3a45inc3g69z5ilxyhhicxns8by3ydmb82x";
-      name = "ktp-desktop-applets-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ktp-desktop-applets-21.12.3.tar.xz";
+      sha256 = "01h26jsdb7mkw8isxpy4sfpdn11q209xqhhpnk7xvchs8fpl5fni";
+      name = "ktp-desktop-applets-21.12.3.tar.xz";
     };
   };
   ktp-filetransfer-handler = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ktp-filetransfer-handler-21.12.2.tar.xz";
-      sha256 = "1cw2y06zcdfm9vixw99gbipgkl63vpkf73giq5ibal2g2yq9c2r5";
-      name = "ktp-filetransfer-handler-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ktp-filetransfer-handler-21.12.3.tar.xz";
+      sha256 = "0aq5ii7b2kk0qan4qph9glapp81sgqm2zzbdknggxz7vkhj5y6lk";
+      name = "ktp-filetransfer-handler-21.12.3.tar.xz";
     };
   };
   ktp-kded-module = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ktp-kded-module-21.12.2.tar.xz";
-      sha256 = "1mwmdnr2c6ilhhjlq8bwd7gwvjmiq1k3lph5vlb5hy8nrp9x2p1r";
-      name = "ktp-kded-module-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ktp-kded-module-21.12.3.tar.xz";
+      sha256 = "0921lahpqjx094ngk68pphkv306ajgxbp6yb0hkckmlic4f2hm37";
+      name = "ktp-kded-module-21.12.3.tar.xz";
     };
   };
   ktp-send-file = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ktp-send-file-21.12.2.tar.xz";
-      sha256 = "0083z5al3jgl1szmzddzkjln9ci37906mmnrcy9f0yxfq5v2gr44";
-      name = "ktp-send-file-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ktp-send-file-21.12.3.tar.xz";
+      sha256 = "0vvg0qz2zxckqqwfibsl88w0mpa7a0lzskwhzbvzir03x14rwjlc";
+      name = "ktp-send-file-21.12.3.tar.xz";
     };
   };
   ktp-text-ui = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ktp-text-ui-21.12.2.tar.xz";
-      sha256 = "0lhbsmhp23sil3rckk51156qhz15hjyp943mgh4s3w49lwxgjpc8";
-      name = "ktp-text-ui-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ktp-text-ui-21.12.3.tar.xz";
+      sha256 = "046611abkdn7qqh6n4v8ssdzg10q4g14rji7klypmccfng0px2xg";
+      name = "ktp-text-ui-21.12.3.tar.xz";
     };
   };
   ktuberling = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/ktuberling-21.12.2.tar.xz";
-      sha256 = "0w9gx0i895vd0gi8wgd6hqikqjz5ir4li14i15k4akc7i7niy46r";
-      name = "ktuberling-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/ktuberling-21.12.3.tar.xz";
+      sha256 = "1awsn285j9nggyypkra9ladgi46w2m7m09d8364w5d0sygpzmgsg";
+      name = "ktuberling-21.12.3.tar.xz";
     };
   };
   kturtle = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kturtle-21.12.2.tar.xz";
-      sha256 = "0xkl12albs66vnsbilkwpnw5qaqx2ss8wldsnigmf0x5d5hd554k";
-      name = "kturtle-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kturtle-21.12.3.tar.xz";
+      sha256 = "1689skwk2dwm4mrl2mrakb1cn74nyxd6xa8ipxsip5zhjgkkvg23";
+      name = "kturtle-21.12.3.tar.xz";
     };
   };
   kubrick = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kubrick-21.12.2.tar.xz";
-      sha256 = "1sd8biyndnc7y4d3zsy4bmi409js9viyd4q5ql6fd2wcz656y1im";
-      name = "kubrick-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kubrick-21.12.3.tar.xz";
+      sha256 = "0hx81cp1lql74c9067dw7mi78c6sp6p1a035j2nzjn9drpxal6p2";
+      name = "kubrick-21.12.3.tar.xz";
     };
   };
   kwalletmanager = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kwalletmanager-21.12.2.tar.xz";
-      sha256 = "0d2ma7dzn0nc25fj7lwaysfjfgqfl5nsisc01lp42n9k1bg0s0i5";
-      name = "kwalletmanager-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kwalletmanager-21.12.3.tar.xz";
+      sha256 = "01xif44iz1ik32swlrzzjycizy4hjlis1f336qc9p7affjyv2797";
+      name = "kwalletmanager-21.12.3.tar.xz";
     };
   };
   kwave = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kwave-21.12.2.tar.xz";
-      sha256 = "01bjsm3aj7m1mq3nr6iwmcxswq8sxdxhhdyc5zlgffifpym53dc5";
-      name = "kwave-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kwave-21.12.3.tar.xz";
+      sha256 = "07xbbii5gpllbpmkxfv5kwxawd390zp0angh94xjk0yq71lvdav2";
+      name = "kwave-21.12.3.tar.xz";
     };
   };
   kwordquiz = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/kwordquiz-21.12.2.tar.xz";
-      sha256 = "1na113adrd9djxk016riz3ajwrn9rbpc0ib34adfvp6nw48d9snp";
-      name = "kwordquiz-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/kwordquiz-21.12.3.tar.xz";
+      sha256 = "1p06ki75zy4il6k9siavqddpr9j02z3lbnd14pxwk42fhfmbx057";
+      name = "kwordquiz-21.12.3.tar.xz";
     };
   };
   libgravatar = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/libgravatar-21.12.2.tar.xz";
-      sha256 = "0xj3v0cknkvr8ac5iipxpz1azr0hk42zgaaip5ivn7qjfhp0zvv0";
-      name = "libgravatar-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/libgravatar-21.12.3.tar.xz";
+      sha256 = "1bihy3dfagwc7aday40myqjbn555mkzzaaq7c14ywkmhh99dhvh7";
+      name = "libgravatar-21.12.3.tar.xz";
     };
   };
   libkcddb = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/libkcddb-21.12.2.tar.xz";
-      sha256 = "07bcbmf3z5l0v5b6ra1h36yvbjpim1kzz1npd2h30iq09ibx6dr8";
-      name = "libkcddb-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/libkcddb-21.12.3.tar.xz";
+      sha256 = "14f1mzsfm0vyqzsyja0p8ln1105sw5dr6fssj25j0qw4rnf9yw32";
+      name = "libkcddb-21.12.3.tar.xz";
     };
   };
   libkcompactdisc = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/libkcompactdisc-21.12.2.tar.xz";
-      sha256 = "08abnybd0fa0vvpaixi18ljfz0s8a5pmbblzpcc8rvwzdjc7az6q";
-      name = "libkcompactdisc-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/libkcompactdisc-21.12.3.tar.xz";
+      sha256 = "1vmaf3b41sj0sm4k9zdliy5ba4ps5z0cwabggfish152wzw34kgn";
+      name = "libkcompactdisc-21.12.3.tar.xz";
     };
   };
   libkdcraw = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/libkdcraw-21.12.2.tar.xz";
-      sha256 = "0mzq0nha7mq5v3lb03xbspc0y2a7mg1mzlwbp3706ph6jp4m7mwa";
-      name = "libkdcraw-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/libkdcraw-21.12.3.tar.xz";
+      sha256 = "1pyqsaaficwxbg6hk8xg8srq79i6xdxvghkn2rf54zj1435d9kva";
+      name = "libkdcraw-21.12.3.tar.xz";
     };
   };
   libkdegames = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/libkdegames-21.12.2.tar.xz";
-      sha256 = "1m1qz59fb82bsj9ri3b8a1ph2ihgs97wlqq91pbgqw0kgvyvka1j";
-      name = "libkdegames-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/libkdegames-21.12.3.tar.xz";
+      sha256 = "0x5mw25c8hmnxhcxc2xm19xmgdxfbx89nrxfl6mzfrh8myr3ybsb";
+      name = "libkdegames-21.12.3.tar.xz";
     };
   };
   libkdepim = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/libkdepim-21.12.2.tar.xz";
-      sha256 = "0qqz9b17fz3kgh3gcyq30ds8fq7zkm14k85g4mywsn3lnn8bj6z9";
-      name = "libkdepim-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/libkdepim-21.12.3.tar.xz";
+      sha256 = "0g9jx6z5jf9yqn01xc1k038b4ljr9sil7bwvifc64s38qxl9wmww";
+      name = "libkdepim-21.12.3.tar.xz";
     };
   };
   libkeduvocdocument = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/libkeduvocdocument-21.12.2.tar.xz";
-      sha256 = "16vh1bycq92bh47phv7nk62r5vjaiv1p8fvq5p5idsz9ipzb1wzp";
-      name = "libkeduvocdocument-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/libkeduvocdocument-21.12.3.tar.xz";
+      sha256 = "16kk7ij2qxy5abgv9hgk1ycbx0f2gnpc9lxqbhl5sq9vxd4nblv0";
+      name = "libkeduvocdocument-21.12.3.tar.xz";
     };
   };
   libkexiv2 = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/libkexiv2-21.12.2.tar.xz";
-      sha256 = "1j1p1pw2l32q7lk8kp6r0nz9mzjdw6mxr2gi0p770k3k0arrsg87";
-      name = "libkexiv2-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/libkexiv2-21.12.3.tar.xz";
+      sha256 = "0r2m6d9rw0r6rm6xqpj1i3w0hplhivy8h90zggqynfzvfyr9c529";
+      name = "libkexiv2-21.12.3.tar.xz";
     };
   };
   libkgapi = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/libkgapi-21.12.2.tar.xz";
-      sha256 = "0n6x0vdirv5qbi9qmd8956i307dz0lp80bw5cqxgk4gr4f8hzi8w";
-      name = "libkgapi-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/libkgapi-21.12.3.tar.xz";
+      sha256 = "1vbk8786mk1irm94bsm97270gnd149nz7w0zqnvwz499f72d21jx";
+      name = "libkgapi-21.12.3.tar.xz";
     };
   };
   libkipi = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/libkipi-21.12.2.tar.xz";
-      sha256 = "0zlga9gy45cs3icx56gvq2nab7i3z5ydrmisa46vpca63w8swmys";
-      name = "libkipi-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/libkipi-21.12.3.tar.xz";
+      sha256 = "0w2kwi6djwp8mhmpfrr16v8fgmwjmsc89rcwpfhgii1p68xia8gc";
+      name = "libkipi-21.12.3.tar.xz";
     };
   };
   libkleo = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/libkleo-21.12.2.tar.xz";
-      sha256 = "0vqgycmj2v91car7ckksnjxbq3b5nzk31p4x3577dgck9jmi30zd";
-      name = "libkleo-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/libkleo-21.12.3.tar.xz";
+      sha256 = "19q128ldi0aspy7vc03r54vrf7wz7l1181x9pbmax8340nbnaz7l";
+      name = "libkleo-21.12.3.tar.xz";
     };
   };
   libkmahjongg = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/libkmahjongg-21.12.2.tar.xz";
-      sha256 = "10fgk8nhcr3rbdnh8az46jvl6w6xankdxzw4djj3qs4dpkl52vk4";
-      name = "libkmahjongg-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/libkmahjongg-21.12.3.tar.xz";
+      sha256 = "114viyqq7zlwsdnm96iyyvj8ma4p06m69hs641yv42xlbkspwbal";
+      name = "libkmahjongg-21.12.3.tar.xz";
     };
   };
   libkomparediff2 = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/libkomparediff2-21.12.2.tar.xz";
-      sha256 = "07yzzc6ns1yx92gpcvhnxw0xna6ly1j4l4lx1rbw3d94z796694z";
-      name = "libkomparediff2-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/libkomparediff2-21.12.3.tar.xz";
+      sha256 = "1j93lf9adyw581a9i8kc1pj6vadscibw49wvwfs750f0kxn5p0d2";
+      name = "libkomparediff2-21.12.3.tar.xz";
     };
   };
   libksane = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/libksane-21.12.2.tar.xz";
-      sha256 = "1iksfjwkibn1i8n541nngalrp8krc94qy9in801q10d291clwz9i";
-      name = "libksane-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/libksane-21.12.3.tar.xz";
+      sha256 = "0ci2284ysh4q8sbhqcg5bis2v02bp5x64h8n0qik14yy24x852zg";
+      name = "libksane-21.12.3.tar.xz";
     };
   };
   libksieve = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/libksieve-21.12.2.tar.xz";
-      sha256 = "03aaqqb5g9iv49crrf7zbmsri8jjszn5wfvmcw559swalmmyzb4i";
-      name = "libksieve-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/libksieve-21.12.3.tar.xz";
+      sha256 = "1li9cc5y6xbn4m4qa21qmsjd4xzshp67mxwh2nvr17mfs8ray7vd";
+      name = "libksieve-21.12.3.tar.xz";
     };
   };
   libktorrent = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/libktorrent-21.12.2.tar.xz";
-      sha256 = "06ak3bsy5x6a0r3l9hbfih9m41y3l357rpd42x8qp08djbs11xbf";
-      name = "libktorrent-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/libktorrent-21.12.3.tar.xz";
+      sha256 = "0i976al9bsc3gbplqbxkxr03sdhxv3yzjlfkdaghga8fkihzkkl0";
+      name = "libktorrent-21.12.3.tar.xz";
     };
   };
   lokalize = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/lokalize-21.12.2.tar.xz";
-      sha256 = "1x6sb1fw0fqvk3vg299xvih1v2xm9hviv5h1b624maasw071nfyy";
-      name = "lokalize-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/lokalize-21.12.3.tar.xz";
+      sha256 = "1gzfiajy377kx0iar85z72zqxh7y9vhp1hs03zzqymazawm9lqnn";
+      name = "lokalize-21.12.3.tar.xz";
     };
   };
   lskat = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/lskat-21.12.2.tar.xz";
-      sha256 = "0v16rg6d2l41xgkrkj8ibh5a0zjyb4jn7am6rbgl6k9g9mfqwdx7";
-      name = "lskat-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/lskat-21.12.3.tar.xz";
+      sha256 = "1cfs1lfwgxwpn2g56y7jb2c6ijd81bi8ba8ap0yyx6nhv6na072b";
+      name = "lskat-21.12.3.tar.xz";
     };
   };
   mailcommon = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/mailcommon-21.12.2.tar.xz";
-      sha256 = "01kirl4lk1xq7y474438jv0av3ccg18krlchllcigd9c0vcp67qj";
-      name = "mailcommon-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/mailcommon-21.12.3.tar.xz";
+      sha256 = "1zi8zkhv9g4vsylqzjm2wr9v6b20irfxhf4q467cmpqqrqpcp3af";
+      name = "mailcommon-21.12.3.tar.xz";
     };
   };
   mailimporter = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/mailimporter-21.12.2.tar.xz";
-      sha256 = "1ng8w4byq4iiwfzh4acl2glndlr7r9hr62qpj10kpn4fi0qblakb";
-      name = "mailimporter-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/mailimporter-21.12.3.tar.xz";
+      sha256 = "0lcr9zzdf16f82spr9x33jnzr23sx7xk2zvfpzdki3b5jxvapnsk";
+      name = "mailimporter-21.12.3.tar.xz";
     };
   };
   marble = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/marble-21.12.2.tar.xz";
-      sha256 = "093drig77dyxwfavx30h2nzdqkn52h6pjn54j7fnwygz4742qv7n";
-      name = "marble-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/marble-21.12.3.tar.xz";
+      sha256 = "0v6qd9cl6g8k55mjq2lswsfcxzf88w33nlm1193ps3ac0awjaaa4";
+      name = "marble-21.12.3.tar.xz";
     };
   };
   markdownpart = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/markdownpart-21.12.2.tar.xz";
-      sha256 = "0g7j15s15blqr0lfagmhvxxggdplvmnkf8g2b9ysjkrr49lgk7b6";
-      name = "markdownpart-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/markdownpart-21.12.3.tar.xz";
+      sha256 = "1drvjrvmd2c36xj3x7kxb7lvk23cmaw8mi976pdfnxn5pdamv6wl";
+      name = "markdownpart-21.12.3.tar.xz";
     };
   };
   mbox-importer = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/mbox-importer-21.12.2.tar.xz";
-      sha256 = "0qakmg86978zjm2m98602zbaiyiryrmlx2vk93yyv5xg352gphjb";
-      name = "mbox-importer-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/mbox-importer-21.12.3.tar.xz";
+      sha256 = "01bh0yzv23vkicc7lj217rp8c36kyyjlxmkwylss3hakr4b3afan";
+      name = "mbox-importer-21.12.3.tar.xz";
     };
   };
   messagelib = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/messagelib-21.12.2.tar.xz";
-      sha256 = "0ln473gdwsscjpsh50h2cbazxbc8qy1mmll9lsfngfw1qq49dwsp";
-      name = "messagelib-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/messagelib-21.12.3.tar.xz";
+      sha256 = "0xrhnkahqirsz37lbvx505ll7bfhr25lbq89yqq81bxbzkbvamsw";
+      name = "messagelib-21.12.3.tar.xz";
     };
   };
   minuet = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/minuet-21.12.2.tar.xz";
-      sha256 = "050pmw3srfb800h91x6pqn1vz7s6458w94r2innwc1j04pr8jaxv";
-      name = "minuet-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/minuet-21.12.3.tar.xz";
+      sha256 = "0r68z3j0j2gbwzj77wvsx1idrfkagj0pjai9j7fbqa0r6q833flr";
+      name = "minuet-21.12.3.tar.xz";
     };
   };
   okular = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/okular-21.12.2.tar.xz";
-      sha256 = "1k0bwyhk73gshc7f0j6mply2m9ykfd07mhkxwnzj874sby5rxhv9";
-      name = "okular-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/okular-21.12.3.tar.xz";
+      sha256 = "054rzdqsqkjx2sncyfcnfdvm9bp45sdw3rycmpzicnwpn5j4hcb3";
+      name = "okular-21.12.3.tar.xz";
     };
   };
   palapeli = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/palapeli-21.12.2.tar.xz";
-      sha256 = "0v5456hm56c7f9d49l5zjql6f4ap72wmkf8in8s95lqmpn42dl17";
-      name = "palapeli-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/palapeli-21.12.3.tar.xz";
+      sha256 = "076igql89sx55hfxjb79248ih4cjbkr1s1jnz46y3dk793rscm8g";
+      name = "palapeli-21.12.3.tar.xz";
     };
   };
   parley = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/parley-21.12.2.tar.xz";
-      sha256 = "1cwnlv57yqjm52i0jwl33pz4h9h448h0ljrg598ghby8p3b2i5w7";
-      name = "parley-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/parley-21.12.3.tar.xz";
+      sha256 = "10hv885l0gz5aymf72f42bhkncfarj768nb12q9fxqk4x5rviiw0";
+      name = "parley-21.12.3.tar.xz";
     };
   };
   partitionmanager = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/partitionmanager-21.12.2.tar.xz";
-      sha256 = "0rr7ic2ivm7lp3lj20b8rfbx1sr91s24fzxfzfwnw9znl9vj410q";
-      name = "partitionmanager-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/partitionmanager-21.12.3.tar.xz";
+      sha256 = "0x0k3vsbngcb7kvcgqj2w025fn9xvfd2232lx51xfar5r3jb7h1p";
+      name = "partitionmanager-21.12.3.tar.xz";
     };
   };
   picmi = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/picmi-21.12.2.tar.xz";
-      sha256 = "0qp8b1di3qnv4xrnpcmyi6myrrwzdlijhvxmacx4ijv7b7wlg4r7";
-      name = "picmi-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/picmi-21.12.3.tar.xz";
+      sha256 = "0gk1yq5ac55k6lxbxszxpd393fb9k6yphisb71lx2zv9gchl44n6";
+      name = "picmi-21.12.3.tar.xz";
     };
   };
   pim-data-exporter = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/pim-data-exporter-21.12.2.tar.xz";
-      sha256 = "0m4dq3x5kbncnvixjigb85j6siws6q600piw53qabiwd6w6rp1xy";
-      name = "pim-data-exporter-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/pim-data-exporter-21.12.3.tar.xz";
+      sha256 = "0qcwsbb4zsjgc15fhq9pp341wwm35y9v1lq8gnpjdsvfq2pczq5q";
+      name = "pim-data-exporter-21.12.3.tar.xz";
     };
   };
   pim-sieve-editor = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/pim-sieve-editor-21.12.2.tar.xz";
-      sha256 = "1cpazs6q6hv15ib6isif5syvpywxfdi7d3w8vc4pnfj94wkcq3gm";
-      name = "pim-sieve-editor-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/pim-sieve-editor-21.12.3.tar.xz";
+      sha256 = "1gp4gpagv6pfiy6gyfh14z1rb16iqm1npmngw6ybjlhh6d424n90";
+      name = "pim-sieve-editor-21.12.3.tar.xz";
     };
   };
   pimcommon = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/pimcommon-21.12.2.tar.xz";
-      sha256 = "1pnhjhnjx98wdc3dg71qgjjj3dsncl56d86cagkk2spicv901p69";
-      name = "pimcommon-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/pimcommon-21.12.3.tar.xz";
+      sha256 = "1k1d100lr277lgwyzn2ssxsx9x2yd9nfd5657r95vmdnkh2qs517";
+      name = "pimcommon-21.12.3.tar.xz";
     };
   };
   poxml = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/poxml-21.12.2.tar.xz";
-      sha256 = "1zzw9jwwd5nx12ma2ihffj6nhr3zlpahnj8k0r8mxcyn99j51kyn";
-      name = "poxml-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/poxml-21.12.3.tar.xz";
+      sha256 = "19hrb75fbh102fw8ajflj4777s7hq7vxv6kbwjir6wzsvdfanwdb";
+      name = "poxml-21.12.3.tar.xz";
     };
   };
   print-manager = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/print-manager-21.12.2.tar.xz";
-      sha256 = "0xqv7f9p27maa0p20nc92g6240qkcin9s3dldr5b5q944hkkxizq";
-      name = "print-manager-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/print-manager-21.12.3.tar.xz";
+      sha256 = "1q9vv5v9hivm583hcx8qa7xik9yv4zicrd02abcsn6hvgwmdav8b";
+      name = "print-manager-21.12.3.tar.xz";
     };
   };
   rocs = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/rocs-21.12.2.tar.xz";
-      sha256 = "1mjrgh0vfc1kvici5m1dx23s1c7qpvfx1br91yglgll1biajzqlq";
-      name = "rocs-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/rocs-21.12.3.tar.xz";
+      sha256 = "1fgjap71qnaydar9q155is7vwjlkpa8wi1162dsqxr5ywy464wrg";
+      name = "rocs-21.12.3.tar.xz";
     };
   };
   signon-kwallet-extension = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/signon-kwallet-extension-21.12.2.tar.xz";
-      sha256 = "0qfim8ahklwkixpxcm9sj1w49cmb0wz5r8np6ga3r2rh4vlqdxbf";
-      name = "signon-kwallet-extension-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/signon-kwallet-extension-21.12.3.tar.xz";
+      sha256 = "0sv0g50bxxd442ia7wzk2lkqwr8lsjxk5wm3zsskxhql851y0ybm";
+      name = "signon-kwallet-extension-21.12.3.tar.xz";
     };
   };
   skanlite = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/skanlite-21.12.2.tar.xz";
-      sha256 = "1fvdrzyvps0iqb9irnpdn81gmlmfhgfsfb5mg4i259sms6rq3h8m";
-      name = "skanlite-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/skanlite-21.12.3.tar.xz";
+      sha256 = "06dwmdjrss7cqqigg4rwsy5dya35577qwdaxj2jbvs2pkzp9rq3p";
+      name = "skanlite-21.12.3.tar.xz";
     };
   };
   spectacle = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/spectacle-21.12.2.tar.xz";
-      sha256 = "1966ynfdkaya1iydi2hfmcr13adk7agjr9ndz2hjrwgjagd29pyr";
-      name = "spectacle-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/spectacle-21.12.3.tar.xz";
+      sha256 = "155xin26lkjr0swb281afha906nqy2821lf2spmzzxa3xalzq3sv";
+      name = "spectacle-21.12.3.tar.xz";
     };
   };
   step = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/step-21.12.2.tar.xz";
-      sha256 = "1paq5wpya82s92zwacwbjf96nj52gy1sydk0gndyqi8jdplhlnps";
-      name = "step-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/step-21.12.3.tar.xz";
+      sha256 = "0j3w63bxj3b4lrfb0mnchlvsr987v5zwwjw5jrgvqidrhv1rh7dc";
+      name = "step-21.12.3.tar.xz";
     };
   };
   svgpart = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/svgpart-21.12.2.tar.xz";
-      sha256 = "15624gfcn85xkh6lypkw73iidnclprhqhpxrjggbng1x22jg2iwc";
-      name = "svgpart-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/svgpart-21.12.3.tar.xz";
+      sha256 = "0yg8sn1z9zfb7a6y61nw7vya516sfaydkgxh7cfwiz7sljl87z8j";
+      name = "svgpart-21.12.3.tar.xz";
     };
   };
   sweeper = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/sweeper-21.12.2.tar.xz";
-      sha256 = "07rqshzjjzqgmm5z0fn1hjd09prcwlnyilp3s61nl5fciby6m8fh";
-      name = "sweeper-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/sweeper-21.12.3.tar.xz";
+      sha256 = "1l4ag2nhy0da9z4nlf7fmjrim7pmwpm3m4v4y50jlpdv73f63246";
+      name = "sweeper-21.12.3.tar.xz";
     };
   };
   umbrello = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/umbrello-21.12.2.tar.xz";
-      sha256 = "07bp3rf31x5c1vag6pw0lal9b6zmvsqa8wg8a30kj7k9wabvjprb";
-      name = "umbrello-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/umbrello-21.12.3.tar.xz";
+      sha256 = "1i94l5hnn8hl0dgdq8sj5xm2vk372zfcnch9qvf9gcvhg08gdif6";
+      name = "umbrello-21.12.3.tar.xz";
     };
   };
   yakuake = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/yakuake-21.12.2.tar.xz";
-      sha256 = "1xkdyn944ga1xvwbbblnffvlnwgypspr909yvdy6xf5j0qaldsdk";
-      name = "yakuake-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/yakuake-21.12.3.tar.xz";
+      sha256 = "10mkr8svkjf2s023mf21cil2c5v986s5b2yp1hm0fzdgmawpwrh9";
+      name = "yakuake-21.12.3.tar.xz";
     };
   };
   zanshin = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/zanshin-21.12.2.tar.xz";
-      sha256 = "1ilgswm4jbjk1mbvcrdi451f1w4vwx3ah6y32a3y5a9blbh9bh6c";
-      name = "zanshin-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/zanshin-21.12.3.tar.xz";
+      sha256 = "1cwawpmx5hc60zkdkyh484lp3bwiipn6c3yh164gzw769vz9zr71";
+      name = "zanshin-21.12.3.tar.xz";
     };
   };
   zeroconf-ioslave = {
-    version = "21.12.2";
+    version = "21.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.12.2/src/zeroconf-ioslave-21.12.2.tar.xz";
-      sha256 = "0b59npqhmf3yvp9x0jm29bwzlyl0vm9l56jlsgwgiq7pwis5njwd";
-      name = "zeroconf-ioslave-21.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.3/src/zeroconf-ioslave-21.12.3.tar.xz";
+      sha256 = "09jmf233njbqam1swzvpzfgdplpjzdx48vjy6kcpmjvg2qlm7i2l";
+      name = "zeroconf-ioslave-21.12.3.tar.xz";
     };
   };
 }
diff --git a/pkgs/applications/misc/1password-gui/beta.nix b/pkgs/applications/misc/1password-gui/beta.nix
new file mode 100644
index 0000000000000..480366921aea2
--- /dev/null
+++ b/pkgs/applications/misc/1password-gui/beta.nix
@@ -0,0 +1,132 @@
+{ lib
+, stdenv
+, fetchurl
+, makeWrapper
+, alsa-lib
+, at-spi2-atk
+, at-spi2-core
+, atk
+, cairo
+, cups
+, dbus
+, expat
+, gdk-pixbuf
+, glib
+, gtk3
+, libX11
+, libXcomposite
+, libXdamage
+, libXext
+, libXfixes
+, libXrandr
+, libdrm
+, libxcb
+, libxkbcommon
+, libxshmfence
+, mesa
+, nspr
+, nss
+, pango
+, systemd
+, udev
+, xdg-utils
+
+  # The 1Password polkit file requires a list of users for whom polkit
+  # integrations should be enabled. This should be a list of strings that
+  # correspond to usernames.
+, polkitPolicyOwners ? []
+}:
+let
+  # Convert the polkitPolicyOwners variable to a polkit-compatible string for the polkit file.
+  policyOwners = lib.concatStringsSep " " (map (user: "unix-user:${user}") polkitPolicyOwners);
+
+in stdenv.mkDerivation rec {
+  pname = "1password";
+  version = "8.7.0-49.BETA";
+
+  src = fetchurl {
+    url = "https://downloads.1password.com/linux/tar/beta/x86_64/1password-${version}.x64.tar.gz";
+    sha256 = "sha256-cYT9Pi2WEjZQ5P7Dr84l65AHyD8tZrYC+m4hFxSsNd4=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  dontConfigure = true;
+  dontBuild = true;
+  dontPatchELF = true;
+
+  installPhase =
+    let rpath = lib.makeLibraryPath [
+      alsa-lib
+      at-spi2-atk
+      at-spi2-core
+      atk
+      cairo
+      cups
+      dbus
+      expat
+      gdk-pixbuf
+      glib
+      gtk3
+      libX11
+      libXcomposite
+      libXdamage
+      libXext
+      libXfixes
+      libXrandr
+      libdrm
+      libxcb
+      libxkbcommon
+      libxshmfence
+      mesa
+      nspr
+      nss
+      pango
+      systemd
+    ] + ":${stdenv.cc.cc.lib}/lib64";
+    in ''
+      runHook preInstall
+
+      mkdir -p $out/bin $out/share/1password
+      cp -a * $out/share/1password
+
+      # Desktop file
+      install -Dt $out/share/applications resources/${pname}.desktop
+      substituteInPlace $out/share/applications/${pname}.desktop \
+        --replace 'Exec=/opt/1Password/${pname}' 'Exec=${pname}'
+
+      '' + (lib.optionalString (polkitPolicyOwners != [ ])
+      ''
+      # Polkit file
+        mkdir -p $out/share/polkit-1/actions
+        substitute com.1password.1Password.policy.tpl $out/share/polkit-1/actions/com.1password.1Password.policy --replace "\''${POLICY_OWNERS}" "${policyOwners}"
+        '') + ''
+
+      # Icons
+      cp -a resources/icons $out/share
+
+      interp="$(cat $NIX_CC/nix-support/dynamic-linker)"
+      patchelf --set-interpreter $interp $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper}
+      patchelf --set-rpath ${rpath}:$out/share/1password $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper}
+      for file in $(find $out -type f -name \*.so\* ); do
+        patchelf --set-rpath ${rpath}:$out/share/1password $file
+      done
+
+      # Electron is trying to open udev via dlopen()
+      # and for some reason that doesn't seem to be impacted from the rpath.
+      # Adding udev to LD_LIBRARY_PATH fixes that.
+      makeWrapper $out/share/1password/1password $out/bin/1password \
+        --prefix PATH : ${lib.makeBinPath [ xdg-utils ]} \
+        --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev ]}
+
+      runHook postInstall
+    '';
+
+  meta = with lib; {
+    description = "Multi-platform password manager";
+    homepage = "https://1password.com/";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ timstott savannidgerinel maxeaubrey sebtm ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/misc/1password-gui/default.nix b/pkgs/applications/misc/1password-gui/default.nix
index 311ef3037bb8e..c43df6b5f570c 100644
--- a/pkgs/applications/misc/1password-gui/default.nix
+++ b/pkgs/applications/misc/1password-gui/default.nix
@@ -42,11 +42,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "1password";
-  version = "8.6.0";
+  version = "8.6.1";
 
   src = fetchurl {
     url = "https://downloads.1password.com/linux/tar/stable/x86_64/1password-${version}.x64.tar.gz";
-    sha256 = "AgmLbf2YHZr8McSIL5dxp5HxOC7gLrZWIopuA7aL0JI=";
+    sha256 = "sha256-CbSx1UJAvNrA1gTQyi6r8NgjwQ7H+tqWU9t3TUNrDMg=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -128,7 +128,7 @@ in stdenv.mkDerivation rec {
     description = "Multi-platform password manager";
     homepage = "https://1password.com/";
     license = licenses.unfree;
-    maintainers = with maintainers; [ timstott savannidgerinel ];
+    maintainers = with maintainers; [ timstott savannidgerinel maxeaubrey sebtm ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/misc/1password/default.nix b/pkgs/applications/misc/1password/default.nix
index 9d7a4fcd94ca4..62b2b1fefddf7 100644
--- a/pkgs/applications/misc/1password/default.nix
+++ b/pkgs/applications/misc/1password/default.nix
@@ -12,12 +12,12 @@ let
     if extension == "zip" then fetchzip args else fetchurl args;
 
   pname = "1password-cli";
-  version = "2.0.0";
+  version = "2.0.2";
   sources = rec {
-    aarch64-linux = fetch "linux_arm64" "sha256-NhCs68on8LzoeOmM5eP8LwmFaVWz6aghqtHzfUlACiA=" "zip";
-    i686-linux = fetch "linux_386" "sha256-vCxgEBq4YVfljq2zUpvBdZUbIiam4z64P1m9OMWq1f4=" "zip";
-    x86_64-linux = fetch "linux_amd64" "sha256-CDwrJ5ksXf9kwHobw4jvRUi1hLQzq4/yRlk+kHPN7UE=" "zip";
-    aarch64-darwin = fetch "apple_universal" "sha256-DC9hdzRjQ9iNjbe6PfRpMXzDeInq4rYSAa2nDHQMTRo=" "pkg";
+    aarch64-linux = fetch "linux_arm64" "sha256-DhKxY4Ry1IpT16UC3HbbUSKWzhGm/0R7rYrvqupg/Zo=" "zip";
+    i686-linux = fetch "linux_386" "sha256-ANoOYjG4+mci6TdF4HC9fP8e5eAckrbZITRuA1fqtCA=" "zip";
+    x86_64-linux = fetch "linux_amd64" "sha256-uPudElKu30smsupSIvGAmrF/f9TXoTzyUfSrUAvTDWw=" "zip";
+    aarch64-darwin = fetch "apple_universal" "sha256-P5qsy4kiE/DMJnJr3EUHMcb0KoUZyO2BQ5PIosPbnI8=" "pkg";
     x86_64-darwin = aarch64-darwin;
   };
   platforms = builtins.attrNames sources;
diff --git a/pkgs/applications/misc/ArchiSteamFarm/default.nix b/pkgs/applications/misc/ArchiSteamFarm/default.nix
index 7587a6ee12413..5b221384d038f 100644
--- a/pkgs/applications/misc/ArchiSteamFarm/default.nix
+++ b/pkgs/applications/misc/ArchiSteamFarm/default.nix
@@ -11,6 +11,7 @@
 
 buildDotnetModule rec {
   pname = "archisteamfarm";
+  # nixpkgs-update: no auto update
   version = "5.2.2.4";
 
   src = fetchFromGitHub {
diff --git a/pkgs/applications/misc/ArchiSteamFarm/deps-aarch64-linux.nix b/pkgs/applications/misc/ArchiSteamFarm/deps-aarch64-linux.nix
index db2f33332806a..7b0148457faf4 100644
--- a/pkgs/applications/misc/ArchiSteamFarm/deps-aarch64-linux.nix
+++ b/pkgs/applications/misc/ArchiSteamFarm/deps-aarch64-linux.nix
@@ -55,12 +55,12 @@
   (fetchNuGet { pname = "Humanizer.Core.zh-Hant"; version = "2.13.14"; sha256 = "07xsdx8j1rhp712kwy8jx9ang6f9zljqrvaggf0ssj5zqbliz93p"; })
   (fetchNuGet { pname = "JetBrains.Annotations"; version = "2021.3.0"; sha256 = "01ssylllbwpana2w3iybi533zlvcsbhzjc8kr0g4kg307kjbfn8v"; })
   (fetchNuGet { pname = "Markdig.Signed"; version = "0.26.0"; sha256 = "1giwdvmy6n4vfb0g7sxmdf9bklb4r2vdfhm1xfxvqys8rfm15d4z"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "6.0.3"; sha256 = "0s874cs94p1rxdy6n22ch3vr1ad1w0nkh7cnjxvxcjim2b4lfvln"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.3"; sha256 = "1jpw4s862j4aa7b7wchi03gxcy02j6hhpbsfbcayiyx6ry788i15"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.3"; sha256 = "0rrrfgkr7rzhlnsnajvzb1ijkybp99d992bqxy9pbawmq7d60bdk"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "6.0.3"; sha256 = "0s0xpqd0nc9kldfay5j1krbc1nyfasxw4xxjx1mwpnbr7n99wbms"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.3"; sha256 = "09whyl3i9mzy10n5zxlq66lj3l4p29hm75igmdip2fb376zxyam3"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.3"; sha256 = "11kv50kll3iq88kn40f5v5qlq8mydv6y6xz2cbzjw4aadd44njwq"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "6.0.4"; sha256 = "195yldf6ws9qbb2aqrrr9bbaq9f8i0dvyb8jgrvg7jhay8j775ay"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.4"; sha256 = "0s1hkanhfv7virdynxxx28kp3w596iiplvi0jqv3dsr63gl0m0m7"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.4"; sha256 = "1fvv5ri32pbl43628zqnim6fbv6hjxf66p0v793xdh57dzkdyh0j"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "6.0.4"; sha256 = "0244kxk61hddbgwkg7d7b3lf3w545w31m7hkmdb09b6jhk0kdf16"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.4"; sha256 = "1m8iaq78kii0z4lxwq1igm8f4yv010blrifab4zp491b0j0qg1d4"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.4"; sha256 = "1sqv7vhkm4j11rl7mfvs4mmmclcdps2n4pf31ck2mcx54nr4d2kj"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.JsonPatch"; version = "6.0.0-rc.1.21452.15"; sha256 = "0c3vnaag8gxlxij77n18m3hawpjkjjamsnq5kfjz5cvc7sfg3fwh"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.NewtonsoftJson"; version = "6.0.0-rc.1.21452.15"; sha256 = "1xyx358w4fqzxr9cy358agnm86rjijbnvikiqlngz2msgmldxi2z"; })
   (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.0.0"; sha256 = "18gdbsqf6i79ld4ikqr4jhx9ndsggm865b5xj1xmnmgg12ydp19a"; })
@@ -75,18 +75,17 @@
   (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "5.0.0"; sha256 = "1rdmgpg770x8qwaaa6ryc27zh93p697fcyvn5vkxp0wimlhqkbay"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "5.0.0"; sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; })
   (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.0.0"; sha256 = "0bknyf5kig5icwjxls7pcn51x2b2qf91dz9qv67fl70v6cczaz2r"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "6.0.3"; sha256 = "14lypnhdby9939l75y6i077x4ccb22yakzjrbapl8an438h09yf8"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.3"; sha256 = "1swbrmpsayy99ycwaq68dx9ydd5h3qv9brwig6ryff1xfn1llndq"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "6.0.3"; sha256 = "1py3nrfvllqlnb9mhs0qwgy7c14n33b2hfb0qc49rx22sqv8ylbp"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "6.0.3"; sha256 = "0rshhsygm3id8wig8mqs846l8dck65drszpzjh1d00d1fk2bxzs4"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.3"; sha256 = "0k9gc94cvn36p0v3pj296asg2sq9a8ah6lfw0xvvmd4hq2k72s79"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.3"; sha256 = "1y428glba68s76icjzfl1v3p61pcz7rd78wybhabs8zq8w9cp2pj"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "6.0.3"; sha256 = "0ws9vxias9iynhcajkl9lz4c8f6hc4b5spypxd0ha33lcjaj408a"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.3"; sha256 = "0gjj6p2nnxzhyrmmmwiyrll782famhll9lbgj8cji1i93amxq1pb"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.3"; sha256 = "0f04srx6q0jk81a60n956hz32fdngzp0xmdb2x7gyl77gsq8yijj"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "6.0.3"; sha256 = "003s3x2ffk4g76jy4b60n6vizly03amjbli4lngsy0wzc86c0ij1"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.3"; sha256 = "0180ipzzz9pc6f6l17rg5bxz1ghzbapmiqq66kdl33bmbny6vmm9"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.3"; sha256 = "1rjkzs2013razi2xs943q62ys1jh8blhjcnj75qkvirf859d11qw"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "6.0.4"; sha256 = "1zm9q9yvglsn5w786c9cjdfj1a8z4sipmvn9rhg3ps23rllxwmcc"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.4"; sha256 = "0g1vw0wr88zlfpdg2gz8c0mriasci1kzvjia4nj19j7b0zaga7f0"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "6.0.4"; sha256 = "08mrvb71kldzla2j7v10ifxrc6bwsrd4bms2rqfb7rmx00qs6yj0"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.4"; sha256 = "0vgjwpy55mf6x22a634cdidckyq5hi941i9p10jqyrbnc637frv2"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.4"; sha256 = "1qasm6j25lmcc4xn7f7s3jli1pypz1kfnj7j9dkjlx9mc8r356zp"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "6.0.4"; sha256 = "026kl3cdbk35rjcnbj92bv7pvx20jd80hxxrnz1s4kzlm4rsp0bv"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.4"; sha256 = "09i8ca56szmvyp1xlddyv3124rrcar8vgsq3pmprcylfdjarck6x"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.4"; sha256 = "1gibwhplbanv6bz3l71w8vhzlgqsh21bms30dbf1n60v7p02fl3h"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "6.0.4"; sha256 = "0h7vkcxaqjll65qka6hsz2hi0vmsizg4ys38a0qg76r0blsnk2yr"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.4"; sha256 = "0gkzqsmj12wwdh548rb9drjgmyzvqalmwwq0fzvgj9c7zm1gdndi"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.4"; sha256 = "1x4ysack9n57h8w1ybfyczkf3w6jsgz7ila0czm2011w4sjnyqj0"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
diff --git a/pkgs/applications/misc/ArchiSteamFarm/deps-x86_64-linux.nix b/pkgs/applications/misc/ArchiSteamFarm/deps-x86_64-linux.nix
index db2f33332806a..7b0148457faf4 100644
--- a/pkgs/applications/misc/ArchiSteamFarm/deps-x86_64-linux.nix
+++ b/pkgs/applications/misc/ArchiSteamFarm/deps-x86_64-linux.nix
@@ -55,12 +55,12 @@
   (fetchNuGet { pname = "Humanizer.Core.zh-Hant"; version = "2.13.14"; sha256 = "07xsdx8j1rhp712kwy8jx9ang6f9zljqrvaggf0ssj5zqbliz93p"; })
   (fetchNuGet { pname = "JetBrains.Annotations"; version = "2021.3.0"; sha256 = "01ssylllbwpana2w3iybi533zlvcsbhzjc8kr0g4kg307kjbfn8v"; })
   (fetchNuGet { pname = "Markdig.Signed"; version = "0.26.0"; sha256 = "1giwdvmy6n4vfb0g7sxmdf9bklb4r2vdfhm1xfxvqys8rfm15d4z"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "6.0.3"; sha256 = "0s874cs94p1rxdy6n22ch3vr1ad1w0nkh7cnjxvxcjim2b4lfvln"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.3"; sha256 = "1jpw4s862j4aa7b7wchi03gxcy02j6hhpbsfbcayiyx6ry788i15"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.3"; sha256 = "0rrrfgkr7rzhlnsnajvzb1ijkybp99d992bqxy9pbawmq7d60bdk"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "6.0.3"; sha256 = "0s0xpqd0nc9kldfay5j1krbc1nyfasxw4xxjx1mwpnbr7n99wbms"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.3"; sha256 = "09whyl3i9mzy10n5zxlq66lj3l4p29hm75igmdip2fb376zxyam3"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.3"; sha256 = "11kv50kll3iq88kn40f5v5qlq8mydv6y6xz2cbzjw4aadd44njwq"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "6.0.4"; sha256 = "195yldf6ws9qbb2aqrrr9bbaq9f8i0dvyb8jgrvg7jhay8j775ay"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.4"; sha256 = "0s1hkanhfv7virdynxxx28kp3w596iiplvi0jqv3dsr63gl0m0m7"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.4"; sha256 = "1fvv5ri32pbl43628zqnim6fbv6hjxf66p0v793xdh57dzkdyh0j"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "6.0.4"; sha256 = "0244kxk61hddbgwkg7d7b3lf3w545w31m7hkmdb09b6jhk0kdf16"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.4"; sha256 = "1m8iaq78kii0z4lxwq1igm8f4yv010blrifab4zp491b0j0qg1d4"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.4"; sha256 = "1sqv7vhkm4j11rl7mfvs4mmmclcdps2n4pf31ck2mcx54nr4d2kj"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.JsonPatch"; version = "6.0.0-rc.1.21452.15"; sha256 = "0c3vnaag8gxlxij77n18m3hawpjkjjamsnq5kfjz5cvc7sfg3fwh"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.NewtonsoftJson"; version = "6.0.0-rc.1.21452.15"; sha256 = "1xyx358w4fqzxr9cy358agnm86rjijbnvikiqlngz2msgmldxi2z"; })
   (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.0.0"; sha256 = "18gdbsqf6i79ld4ikqr4jhx9ndsggm865b5xj1xmnmgg12ydp19a"; })
@@ -75,18 +75,17 @@
   (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "5.0.0"; sha256 = "1rdmgpg770x8qwaaa6ryc27zh93p697fcyvn5vkxp0wimlhqkbay"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "5.0.0"; sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; })
   (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.0.0"; sha256 = "0bknyf5kig5icwjxls7pcn51x2b2qf91dz9qv67fl70v6cczaz2r"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "6.0.3"; sha256 = "14lypnhdby9939l75y6i077x4ccb22yakzjrbapl8an438h09yf8"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.3"; sha256 = "1swbrmpsayy99ycwaq68dx9ydd5h3qv9brwig6ryff1xfn1llndq"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "6.0.3"; sha256 = "1py3nrfvllqlnb9mhs0qwgy7c14n33b2hfb0qc49rx22sqv8ylbp"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "6.0.3"; sha256 = "0rshhsygm3id8wig8mqs846l8dck65drszpzjh1d00d1fk2bxzs4"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.3"; sha256 = "0k9gc94cvn36p0v3pj296asg2sq9a8ah6lfw0xvvmd4hq2k72s79"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.3"; sha256 = "1y428glba68s76icjzfl1v3p61pcz7rd78wybhabs8zq8w9cp2pj"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "6.0.3"; sha256 = "0ws9vxias9iynhcajkl9lz4c8f6hc4b5spypxd0ha33lcjaj408a"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.3"; sha256 = "0gjj6p2nnxzhyrmmmwiyrll782famhll9lbgj8cji1i93amxq1pb"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.3"; sha256 = "0f04srx6q0jk81a60n956hz32fdngzp0xmdb2x7gyl77gsq8yijj"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "6.0.3"; sha256 = "003s3x2ffk4g76jy4b60n6vizly03amjbli4lngsy0wzc86c0ij1"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.3"; sha256 = "0180ipzzz9pc6f6l17rg5bxz1ghzbapmiqq66kdl33bmbny6vmm9"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.3"; sha256 = "1rjkzs2013razi2xs943q62ys1jh8blhjcnj75qkvirf859d11qw"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "6.0.4"; sha256 = "1zm9q9yvglsn5w786c9cjdfj1a8z4sipmvn9rhg3ps23rllxwmcc"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.4"; sha256 = "0g1vw0wr88zlfpdg2gz8c0mriasci1kzvjia4nj19j7b0zaga7f0"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "6.0.4"; sha256 = "08mrvb71kldzla2j7v10ifxrc6bwsrd4bms2rqfb7rmx00qs6yj0"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.4"; sha256 = "0vgjwpy55mf6x22a634cdidckyq5hi941i9p10jqyrbnc637frv2"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.4"; sha256 = "1qasm6j25lmcc4xn7f7s3jli1pypz1kfnj7j9dkjlx9mc8r356zp"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "6.0.4"; sha256 = "026kl3cdbk35rjcnbj92bv7pvx20jd80hxxrnz1s4kzlm4rsp0bv"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.4"; sha256 = "09i8ca56szmvyp1xlddyv3124rrcar8vgsq3pmprcylfdjarck6x"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.4"; sha256 = "1gibwhplbanv6bz3l71w8vhzlgqsh21bms30dbf1n60v7p02fl3h"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "6.0.4"; sha256 = "0h7vkcxaqjll65qka6hsz2hi0vmsizg4ys38a0qg76r0blsnk2yr"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.4"; sha256 = "0gkzqsmj12wwdh548rb9drjgmyzvqalmwwq0fzvgj9c7zm1gdndi"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.4"; sha256 = "1x4ysack9n57h8w1ybfyczkf3w6jsgz7ila0czm2011w4sjnyqj0"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
diff --git a/pkgs/applications/misc/ablog/default.nix b/pkgs/applications/misc/ablog/default.nix
index b6a3a1dfdb56e..dfe39a0fa50d5 100644
--- a/pkgs/applications/misc/ablog/default.nix
+++ b/pkgs/applications/misc/ablog/default.nix
@@ -6,11 +6,11 @@ with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "ablog";
-  version = "0.10.23";
+  version = "0.10.24";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-fqqB17dNzcDZmFw3nj85T5zvMzY6SN/JxbB3IASOas8=";
+    sha256 = "sha256-bLpINvEH7B/duSRrfzvq25se0mvbbcxaEcAs8xMw6Kc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/misc/anytype/default.nix b/pkgs/applications/misc/anytype/default.nix
index 5f09fba4cb7a2..4603bea923869 100644
--- a/pkgs/applications/misc/anytype/default.nix
+++ b/pkgs/applications/misc/anytype/default.nix
@@ -2,13 +2,13 @@
 
 let
   pname = "anytype";
-  version = "0.24.0";
+  version = "0.25.0";
   name = "Anytype-${version}";
   nameExecutable = pname;
   src = fetchurl {
     url = "https://at9412003.fra1.digitaloceanspaces.com/Anytype-${version}.AppImage";
     name = "Anytype-${version}.AppImage";
-    sha256 = "sha256-QyexUZNn7QGHjXYO/+1kUebTmAzdVpwG9Ile8Uh3i8Q=";
+    sha256 = "sha256-cfiSZLfaVmxsZWDwulbMHKzHCG7zMKCWwg8q/2MolVs=";
   };
   appimageContents = appimageTools.extractType2 { inherit name src; };
 in
diff --git a/pkgs/applications/misc/archivy/default.nix b/pkgs/applications/misc/archivy/default.nix
index 2f07b6dbf9599..e7146052702b7 100644
--- a/pkgs/applications/misc/archivy/default.nix
+++ b/pkgs/applications/misc/archivy/default.nix
@@ -1,4 +1,8 @@
-{ lib, stdenv, python3, fetchPypi }:
+{ lib
+, stdenv
+, python3
+, fetchPypi
+}:
 
 let
   defaultOverrides = [
@@ -37,11 +41,12 @@ with py.pkgs;
 
 buildPythonApplication rec {
   pname = "archivy";
-  version = "1.7.1";
+  version = "1.7.2";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-UNGl5Dl/E3+uQ4HIxzHYliHF4lqD3GYdeoL+DtqUwCo=";
+    hash = "sha256-o5dVJDbdKgo6hMMU9mKzoouSgVWl7xSAp+Aq61VcfeU=";
   };
 
   # Relax some dependencies
@@ -54,6 +59,7 @@ buildPythonApplication rec {
       --replace 'python_frontmatter == 0.5.0' 'python_frontmatter' \
       --replace 'requests ==' 'requests >=' \
       --replace 'validators ==' 'validators >=' \
+      --replace 'flask-login == ' 'flask-login >= ' \
       --replace 'tinydb ==' 'tinydb >=' \
       --replace 'Flask_WTF == 0.14.3' 'Flask_WTF' \
       --replace 'Flask ==' 'Flask >='
diff --git a/pkgs/applications/misc/autospotting/default.nix b/pkgs/applications/misc/autospotting/default.nix
index ac929bfa5b152..47cf2e6b07ef8 100644
--- a/pkgs/applications/misc/autospotting/default.nix
+++ b/pkgs/applications/misc/autospotting/default.nix
@@ -22,6 +22,7 @@ buildGoPackage {
     description = "Automatically convert your existing AutoScaling groups to up to 90% cheaper spot instances with minimal configuration changes";
     license = licenses.free;
     maintainers = [ maintainers.costrouc ];
+    mainProgram = "AutoSpotting";
     platforms = platforms.unix;
   };
 
diff --git a/pkgs/applications/misc/azuredatastudio/default.nix b/pkgs/applications/misc/azuredatastudio/default.nix
index 458b0484af0ba..aa7150bb6b0b5 100644
--- a/pkgs/applications/misc/azuredatastudio/default.nix
+++ b/pkgs/applications/misc/azuredatastudio/default.nix
@@ -62,14 +62,14 @@ in
 stdenv.mkDerivation rec {
 
   pname = "azuredatastudio";
-  version = "1.33.1";
+  version = "1.35.1";
 
   desktopItems = [ desktopItem urlHandlerDesktopItem ];
 
   src = fetchurl {
     name = "${pname}-${version}.tar.gz";
     url = "https://azuredatastudio-update.azurewebsites.net/${version}/linux-x64/stable";
-    sha256 = "sha256-jgZ8iZkic26JSgFTXpu1u1+MM4G5AqyW6Mj1tx5QwcY=";
+    sha256 = "sha256-b/ha+81TlffnvSENzaePvfFugcKJffvjRU7y+x60OuQ=";
   };
 
   nativeBuildInputs = [
@@ -112,7 +112,7 @@ stdenv.mkDerivation rec {
   ];
 
   # this will most likely need to be updated when azuredatastudio's version changes
-  sqltoolsservicePath = "${targetPath}/resources/app/extensions/mssql/sqltoolsservice/Linux/3.0.0-release.139";
+  sqltoolsservicePath = "${targetPath}/resources/app/extensions/mssql/sqltoolsservice/Linux/3.0.0-release.215";
 
   rpath = lib.concatStringsSep ":" [
     atomEnv.libPath
diff --git a/pkgs/applications/misc/bikeshed/default.nix b/pkgs/applications/misc/bikeshed/default.nix
new file mode 100644
index 0000000000000..330235b80d73c
--- /dev/null
+++ b/pkgs/applications/misc/bikeshed/default.nix
@@ -0,0 +1,77 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+# build inputs
+, aiofiles
+, aiohttp
+, attrs
+, certifi
+, cssselect
+, html5lib
+, isodate
+, json-home-client
+, lxml
+, pillow
+, pygments
+, requests
+, result
+, setuptools
+, tenacity
+, widlparser
+}:
+
+buildPythonApplication rec {
+  pname = "bikeshed";
+  version = "3.4.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-vJW4yNbKCZraJ5vx8FheNsBl+zObGoLFgAVqoU0p9QQ=";
+  };
+
+  # Relax requirements from "==" to ">="
+  # https://github.com/tabatkins/bikeshed/issues/2178
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace "==" ">="
+  '';
+
+  propagatedBuildInputs = [
+    aiofiles
+    aiohttp
+    attrs
+    certifi
+    cssselect
+    html5lib
+    isodate
+    json-home-client
+    lxml
+    pillow
+    pygments
+    requests
+    result
+    setuptools
+    tenacity
+    widlparser
+  ];
+
+  checkPhase = ''
+    $out/bin/bikeshed test
+  '';
+
+  pythonImportsCheck = [ "bikeshed" ];
+
+  meta = with lib; {
+    description = "Preprocessor for anyone writing specifications that converts source files into actual specs";
+    longDescription = ''
+      Bikeshed is a pre-processor for spec documents, turning a source document
+      (containing only the actual spec content, plus several shorthands for linking
+      to terms and other things) into a final spec document, with appropriate boilerplate,
+      bibliography, indexes, etc all filled in. It's used on specs for CSS
+      and many other W3C working groups, WHATWG, the C++ standards committee, and elsewhere!
+    '';
+    homepage = "https://tabatkins.github.io/bikeshed/";
+    license = licenses.cc0;
+    maintainers = [ maintainers.kvark ];
+  };
+}
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index a0467b817142c..2e3ff53550a96 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -5,7 +5,7 @@
 , openvdb, libXxf86vm, tbb, alembic
 , zlib, zstd, fftw, opensubdiv, freetype, jemalloc, ocl-icd, addOpenGLRunpath
 , jackaudioSupport ? false, libjack2
-, cudaSupport ? config.cudaSupport or false, cudatoolkit_11
+, cudaSupport ? config.cudaSupport or false, cudaPackages ? {}
 , colladaSupport ? true, opencollada
 , spaceNavSupport ? stdenv.isLinux, libspnav
 , makeWrapper
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
       llvmPackages.openmp SDL Cocoa CoreGraphics ForceFeedback OpenAL OpenGL
     ])
     ++ optional jackaudioSupport libjack2
-    ++ optional cudaSupport cudatoolkit_11
+    ++ optional cudaSupport cudaPackages.cudatoolkit
     ++ optional colladaSupport opencollada
     ++ optional spaceNavSupport libspnav;
   pythonPath = with python310Packages; [ numpy requests ];
diff --git a/pkgs/applications/misc/bottles/default.nix b/pkgs/applications/misc/bottles/default.nix
index b0b1718c87b57..45a91522a2ab2 100644
--- a/pkgs/applications/misc/bottles/default.nix
+++ b/pkgs/applications/misc/bottles/default.nix
@@ -20,21 +20,23 @@ let
 in
 python3Packages.buildPythonApplication rec {
   pname = "bottles";
-  version = "2022.3.14-trento-3";
-  sha256 = "0wdqj9l69a9pnray2zcfgl2yw0hmrh23njbgwgqccimch014ckdq";
-  # Note: Update via pkgs/applications/misc/bottles/update.py
-  # mostly copypasted from pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py
+  version = "2022.4.14-trento-1";
 
   src = fetchFromGitHub {
     owner = "bottlesdevs";
     repo = pname;
     rev = version;
-    inherit sha256;
+    sha256 = "16cb01fhxa64f8fadwpr0mawfmchig6xlbx20mz4q9yh5fnagywj";
   };
 
   postPatch = ''
     chmod +x build-aux/meson/postinstall.py
     patchShebangs build-aux/meson/postinstall.py
+
+    substituteInPlace src/backend/wine/winecommand.py \
+      --replace \
+        'self.__get_runner()' \
+        '(lambda r: (f"${steam-run}/bin/steam-run {r}", r)[r == "wine" or r == "wine64"])(self.__get_runner())'
   '';
 
   nativeBuildInputs = [
@@ -89,22 +91,10 @@ python3Packages.buildPythonApplication rec {
   strictDeps = false; # broken with gobject-introspection setup hook, see https://github.com/NixOS/nixpkgs/issues/56943
   dontWrapGApps = true; # prevent double wrapping
 
-  preConfigure = ''
-    patchShebangs build-aux/meson/postinstall.py
-    substituteInPlace src/backend/wine/winecommand.py \
-      --replace \
-        'self.__get_runner()' \
-        '(lambda r: (f"${steam-run}/bin/steam-run {r}", r)[r == "wine" or r == "wine64"])(self.__get_runner())'
-  '';
-
   preFixup = ''
     makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
   '';
 
-  passthru = {
-    updateScript = ./update.py;
-  };
-
   meta = with lib; {
     description = "An easy-to-use wineprefix manager";
     homepage = "https://usebottles.com/";
diff --git a/pkgs/applications/misc/bottles/update.py b/pkgs/applications/misc/bottles/update.py
deleted file mode 100755
index 6adacd7d0e071..0000000000000
--- a/pkgs/applications/misc/bottles/update.py
+++ /dev/null
@@ -1,65 +0,0 @@
-#! /usr/bin/env nix-shell
-#! nix-shell -i python3 -p python3 nix nix-prefetch-git
-
-import fileinput
-import json
-import os
-import re
-import subprocess
-
-from datetime import datetime
-from urllib.request import urlopen, Request
-
-
-DIR = os.path.dirname(os.path.abspath(__file__))
-HEADERS = {'Accept': 'application/vnd.github.v3+json'}
-
-
-def github_api_request(endpoint):
-    base_url = 'https://api.github.com/'
-    request = Request(base_url + endpoint, headers=HEADERS)
-    with urlopen(request) as http_response:
-        return json.loads(http_response.read().decode('utf-8'))
-
-
-def get_commit_date(repo, sha):
-    url = f'https://api.github.com/repos/{repo}/commits/{sha}'
-    request = Request(url, headers=HEADERS)
-    with urlopen(request) as http_response:
-        commit = json.loads(http_response.read().decode())
-        date = commit['commit']['committer']['date'].rstrip('Z')
-        date = datetime.fromisoformat(date).date().isoformat()
-        return 'unstable-' + date
-
-
-def nix_prefetch_git(url, rev):
-    """Prefetches the requested Git revision (incl. submodules) of the given repository URL."""
-    print(f'nix-prefetch-git {url} {rev}')
-    out = subprocess.check_output(['nix-prefetch-git', '--quiet', '--url', url, '--rev', rev, '--fetch-submodules'])
-    return json.loads(out)['sha256']
-
-
-def nix_prefetch_url(url, unpack=False):
-    """Prefetches the content of the given URL."""
-    print(f'nix-prefetch-url {url}')
-    options = ['--type', 'sha256']
-    if unpack:
-        options += ['--unpack']
-    out = subprocess.check_output(['nix-prefetch-url'] + options + [url])
-    return out.decode('utf-8').rstrip()
-
-
-def update_file(relpath, version, sha256):
-    file_path = os.path.join(DIR, relpath)
-    with fileinput.FileInput(file_path, inplace=True) as f:
-        for line in f:
-            result = line
-            result = re.sub(r'^  version = ".+";', f'  version = "{version}";', result)
-            result = re.sub(r'^  sha256 = ".+";', f'  sha256 = "{sha256}";', result)
-            print(result, end='')
-
-
-if __name__ == "__main__":
-    bottles_version = github_api_request('repos/bottlesdevs/Bottles/releases/latest')['tag_name']
-    bottles_hash = nix_prefetch_git('https://github.com/bottlesdevs/Bottles.git', bottles_version)
-    update_file('default.nix', bottles_version, bottles_hash)
diff --git a/pkgs/applications/misc/buku/default.nix b/pkgs/applications/misc/buku/default.nix
index 5227f0e6f474f..990c4eb73e7bf 100644
--- a/pkgs/applications/misc/buku/default.nix
+++ b/pkgs/applications/misc/buku/default.nix
@@ -7,8 +7,9 @@ let
         version = "1.3.24";
         src = oldAttrs.src.override {
           inherit version;
-          sha256 = "ebbb777cbf9312359b897bf81ba00dae0f5cb69fba2a18265dcc18a6f5ef7519";
+          hash = "sha256-67t3fL+TEjWbiXv4G6ANrg9ctp+6KhgmXcwYpvXvdRk=";
         };
+        doCheck = false;
       });
       sqlalchemy-utils = super.sqlalchemy-utils.overridePythonAttrs (oldAttrs: rec {
         version = "0.36.6";
diff --git a/pkgs/applications/misc/calcoo/0001-javac-encoding.diff b/pkgs/applications/misc/calcoo/0001-javac-encoding.diff
new file mode 100644
index 0000000000000..c16616b3dd044
--- /dev/null
+++ b/pkgs/applications/misc/calcoo/0001-javac-encoding.diff
@@ -0,0 +1,21 @@
+diff -Naur calcoo-2.1.0-old/build.xml calcoo-2.1.0-new/build.xml
+--- calcoo-2.1.0-old/build.xml	1969-12-31 21:00:01.000000000 -0300
++++ calcoo-2.1.0-new/build.xml	2022-04-16 15:41:59.763861191 -0300
+@@ -16,7 +16,7 @@
+     <!-- Create the build directory structure used by compile -->

+     <mkdir dir="${build}"/>

+     <!-- Compile the java code from ${src} into ${build} -->

+-    <javac srcdir="${src}" destdir="${build}" includeantruntime="false"/>

++    <javac srcdir="${src}" destdir="${build}" includeantruntime="false" encoding="iso-8859-1"/>

+   </target>

+ 

+   <target name="copyresource" depends="compile">

+@@ -31,7 +31,7 @@
+   <target name="testcompile">

+     <mkdir dir="${testbuild}"/>

+     <!-- Compile the java code from ${testsrc} into ${testbuild} -->

+-    <javac srcdir="${testsrc}" destdir="${testbuild}" includeantruntime="false">

++    <javac srcdir="${testsrc}" destdir="${testbuild}" includeantruntime="false" encoding="iso-8859-1">

+ 		<classpath>

+ 			<pathelement location="${junitpath}\junit.jar"/>

+ 			<pathelement location="${junitpath}\hamcrest-core.jar"/>

diff --git a/pkgs/applications/misc/calcoo/default.nix b/pkgs/applications/misc/calcoo/default.nix
new file mode 100644
index 0000000000000..4af71bae653ea
--- /dev/null
+++ b/pkgs/applications/misc/calcoo/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, stdenv
+, fetchzip
+, ant
+, jdk
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+  pname = "calcoo";
+  version = "2.1.0";
+
+  src = fetchzip {
+    url = "mirror://sourceforge/project/calcoo/calcoo/${version}/${pname}-${version}.zip";
+    hash = "sha256-Bdavj7RaI5CkWiOJY+TPRIRfNelfW5qdl/74J1KZPI0=";
+  };
+
+  patches = [
+    # Sets javac encoding option on build.xml
+    ./0001-javac-encoding.diff
+  ];
+
+  nativeBuildInputs = [
+    ant
+    jdk
+    makeWrapper
+  ];
+
+  dontConfigure = true;
+
+  buildPhase = ''
+    runHook preBuild
+
+    ant
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin $out/share/${pname}
+    mv dist/lib/calcoo.jar $out/share/${pname}
+
+    makeWrapper ${jdk}/bin/java $out/bin/calcoo \
+    --add-flags "-jar $out/share/${pname}/calcoo.jar"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://calcoo.sourceforge.net/";
+    description = "RPN and algebraic scientific calculator";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    inherit (jdk.meta) platforms;
+  };
+}
diff --git a/pkgs/applications/misc/calcurse/default.nix b/pkgs/applications/misc/calcurse/default.nix
index 837fcc5c27d63..740c463038c8d 100644
--- a/pkgs/applications/misc/calcurse/default.nix
+++ b/pkgs/applications/misc/calcurse/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "calcurse";
-  version = "4.7.1";
+  version = "4.8.0";
 
   src = fetchurl {
     url = "https://calcurse.org/files/${pname}-${version}.tar.gz";
-    sha256 = "sha256-CnxV0HZ0Vp0WbAsOdYeyly09qBYM231gsdvSiVgDr7A=";
+    sha256 = "sha256-SKc2ZmzEtrUwEtc7OqcBUsGLQebHtIB/qw8WjWRa4yw=";
   };
 
   buildInputs = [ ncurses gettext python3 python3Packages.wrapPython ];
@@ -28,7 +28,8 @@ stdenv.mkDerivation rec {
       be used to filter and format appointments, making it suitable for use in scripts.
     '';
     homepage = "https://calcurse.org/";
+    changelog = "https://git.calcurse.org/calcurse.git/plain/CHANGES.md?h=v${version}";
     license = licenses.bsd2;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/misc/catclock/default.nix b/pkgs/applications/misc/catclock/default.nix
index 768eb7b308e40..fff8101e55a2c 100644
--- a/pkgs/applications/misc/catclock/default.nix
+++ b/pkgs/applications/misc/catclock/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation {
     homepage = "http://codefromabove.com/2014/05/catclock/";
     license = with licenses; mit;
     maintainers = with maintainers; [ ramkromberg ];
+    mainProgram = "xclock";
     platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/pkgs/applications/misc/charm/default.nix b/pkgs/applications/misc/charm/default.nix
index 907bc7a53e05f..0db2be5151a5e 100644
--- a/pkgs/applications/misc/charm/default.nix
+++ b/pkgs/applications/misc/charm/default.nix
@@ -2,18 +2,16 @@
 
 buildGoModule rec {
   pname = "charm";
-  version = "0.10.3";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "charmbracelet";
     repo = "charm";
     rev = "v${version}";
-    sha256 = "sha256-7WdSIpmpN8Zz2k5PveYZoCueQo5sLxLLZvZdzxRlkaE=";
+    sha256 = "sha256-98TUiFy4X7lMUostkgZikk6r6wzBPF0pqWthrS9nU+U=";
   };
 
-  vendorSha256 = "sha256-5cqZxh2uvmJV7DtAGzQwt//heF3kF9mjyB0KAs8nWZY=";
-
-  doCheck = false;
+  vendorSha256 = "sha256-enkt7BUAntbB75LR12NB0vW6z9dTPzk0bGdRrn3JHm4=";
 
   ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
 
diff --git a/pkgs/applications/misc/copyq/default.nix b/pkgs/applications/misc/copyq/default.nix
index 1050a91e99a12..763b8bd34d118 100644
--- a/pkgs/applications/misc/copyq/default.nix
+++ b/pkgs/applications/misc/copyq/default.nix
@@ -17,13 +17,13 @@
 
 mkDerivation rec {
   pname = "CopyQ";
-  version = "6.0.1";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner = "hluk";
     repo = "CopyQ";
     rev = "v${version}";
-    sha256 = "sha256-edrRgnjbszqJLbGLE4anCJSGApymvK0O+2ks5jWe8aw=";
+    sha256 = "sha256-2BWyLVxH50G+S/Hp8E5hWG64DcIamtZPGm0nSMwEhY4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/cubiomes-viewer/default.nix b/pkgs/applications/misc/cubiomes-viewer/default.nix
index 18b61bc8a9bc6..42355054ee881 100644
--- a/pkgs/applications/misc/cubiomes-viewer/default.nix
+++ b/pkgs/applications/misc/cubiomes-viewer/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cubiomes-viewer";
-  version = "2.0.0";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "Cubitect";
     repo = pname;
     rev = version;
-    sha256 = "sha256-6XPgSreWcRXN8ymP7zS5a7Cfl9wSLMxjmiugJPp6l+g=";
+    sha256 = "sha256-cIA6W82XEeW0k9WNygZ/KVFZE31QThpkV4OazVEvmtw=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/misc/dasel/default.nix b/pkgs/applications/misc/dasel/default.nix
index 317613ffd533a..7506f57e73fa6 100644
--- a/pkgs/applications/misc/dasel/default.nix
+++ b/pkgs/applications/misc/dasel/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "dasel";
-  version = "1.24.1";
+  version = "1.24.3";
 
   src = fetchFromGitHub {
     owner = "TomWright";
     repo = "dasel";
     rev = "v${version}";
-    sha256 = "sha256-B6MWoGYNjFBUxnSqAXt2DRRjSlmgbqIC7qEoMFGQ+zU=";
+    sha256 = "sha256-aAP5hyo4t5IX4wLwyNDuXxAYbAkS36S1UewYs9ZFJM4=";
   };
 
-  vendorSha256 = "sha256-NP+Is7Dxz4LGzx5vpv8pJOJhodAYHia1JXYfhJD54as=";
+  vendorSha256 = "sha256-zli9SEBU6n0JusAquqb9+O2W4yPZS7zmC5PCebVSeIA=";
 
   ldflags = [
     "-s" "-w" "-X github.com/tomwright/dasel/internal.Version=${version}"
diff --git a/pkgs/applications/misc/debian-goodies/default.nix b/pkgs/applications/misc/debian-goodies/default.nix
new file mode 100644
index 0000000000000..20d47e204f7cc
--- /dev/null
+++ b/pkgs/applications/misc/debian-goodies/default.nix
@@ -0,0 +1,70 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, curl
+, dialog
+, installShellFiles
+, perl
+, python3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "debian-goodies";
+  version = "0.87";
+
+  src = fetchFromGitLab {
+    domain = "salsa.debian.org";
+    owner = "debian";
+    repo = "debian-goodies";
+    rev = "debian/${version}";
+    sha256 = "sha256-7O2AY7tWYiOIy4ImFBxWu6S+ljc3VmqS/j4KyEzVVIA=";
+  };
+
+  postPatch = ''
+    substituteInPlace debmany/debmany \
+      --replace "/usr/bin/dialog" "${dialog}/bin/dialog" \
+      --replace "/usr/bin/whiptail" "${python3.pkgs.snack}/bin/whiptail"
+
+    substituteInPlace dman \
+      --replace "curl" "${curl}/bin/curl"
+  '';
+
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
+  buildInputs = [
+    perl
+    python3
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    # see https://salsa.debian.org/debian/debian-goodies/-/blob/master/debian/install
+    for bin in checkrestart dgrep dglob debget dpigs debman dman popbugs which-pkg-broke which-pkg-broke-build dhomepage debmany/debmany check-enhancements find-dbgsym-packages; do
+      install -Dm755 $bin -t $out/bin
+    done
+
+    install -Dm644 find-dbgsym-packages-templates/* -t $out/share/debian-goodies/find-dbgsym-packages-templates/
+
+    installShellCompletion --bash \
+      debmany/bash_completion/debmany \
+      debian/bash-completion
+
+    installManPage \
+      *.1 \
+      debmany/man/*.1 \
+      *.8
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Small toolbox-style utilities for Debian systems";
+    homepage = "https://salsa.debian.org/debian/debian-goodies";
+    license = licenses.gpl2Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/applications/misc/dunst/default.nix b/pkgs/applications/misc/dunst/default.nix
index 116d5430c2a81..6afd9ee624208 100644
--- a/pkgs/applications/misc/dunst/default.nix
+++ b/pkgs/applications/misc/dunst/default.nix
@@ -3,7 +3,7 @@
 , cairo, dbus, systemd, gdk-pixbuf, glib, libX11, libXScrnSaver
 , wayland, wayland-protocols
 , libXinerama, libnotify, pango, xorgproto, librsvg
-, testVersion, dunst
+, testers, dunst
 }:
 
 stdenv.mkDerivation rec {
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
   '';
 
-  passthru.tests.version = testVersion { package = dunst; };
+  passthru.tests.version = testers.testVersion { package = dunst; };
 
   meta = with lib; {
     description = "Lightweight and customizable notification daemon";
diff --git a/pkgs/applications/misc/electrum-grs/default.nix b/pkgs/applications/misc/electrum-grs/default.nix
index c8fb9f84ad190..d35941ccfb1bb 100644
--- a/pkgs/applications/misc/electrum-grs/default.nix
+++ b/pkgs/applications/misc/electrum-grs/default.nix
@@ -9,7 +9,7 @@
 }:
 
 let
-  version = "4.1.5";
+  version = "4.2.0";
 
   libsecp256k1_name =
     if stdenv.isLinux then "libsecp256k1.so.0"
@@ -20,19 +20,6 @@ let
     if stdenv.isLinux then "libzbar.so.0"
     else "libzbar${stdenv.hostPlatform.extensions.sharedLibrary}";
 
-  py = python3.override {
-    packageOverrides = self: super: {
-
-      aiorpcx = super.aiorpcx.overridePythonAttrs (oldAttrs: rec {
-        version = "0.18.7";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "1rswrspv27x33xa5bnhrkjqzhv0sknv5kd7pl1vidw9d2z4rx2l0";
-        };
-      });
-    };
-  };
-
 in
 
 python3.pkgs.buildPythonApplication {
@@ -43,17 +30,12 @@ python3.pkgs.buildPythonApplication {
     owner = "Groestlcoin";
     repo = "electrum-grs";
     rev = "refs/tags/v${version}";
-    sha256 = "0wvbjj80r1zxpz24adkicxsdjnv3nciga6rl1wfmky463w03rca2";
+    sha256 = "15n6snrs1kgdqkhp4wgs0bxxdz6mzl8dvf8h7s0jzc6r4b74vv3n";
   };
 
-  postPatch = ''
-    substituteInPlace contrib/requirements/requirements.txt \
-      --replace "dnspython>=2.0,<2.1" "dnspython>=2.0"
-  '';
-
   nativeBuildInputs = lib.optionals enableQt [ wrapQtAppsHook ];
 
-  propagatedBuildInputs = with py.pkgs; [
+  propagatedBuildInputs = with python3.pkgs; [
     aiohttp
     aiohttp-socks
     aiorpcx
diff --git a/pkgs/applications/misc/evtest/default.nix b/pkgs/applications/misc/evtest/default.nix
index 84fae703a0c3f..c4b0df2cc0d51 100644
--- a/pkgs/applications/misc/evtest/default.nix
+++ b/pkgs/applications/misc/evtest/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   src = fetchgit {
     url = "git://anongit.freedesktop.org/${pname}";
     rev = "refs/tags/${pname}-${version}";
-    sha256 = "168gdhzj11f4nk94a6z696sm8v1njzwww69bn6wr97l17897913g";
+    sha256 = "sha256-0UGcoGkNF/19aSTWNEFAmZP7seL/yObXsOLlZLiyG2Q=";
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/faircamp/default.nix b/pkgs/applications/misc/faircamp/default.nix
index 4486381b8b346..ef82703ac4cfd 100644
--- a/pkgs/applications/misc/faircamp/default.nix
+++ b/pkgs/applications/misc/faircamp/default.nix
@@ -9,17 +9,17 @@
 
 rustPlatform.buildRustPackage {
   pname = "faircamp";
-  version = "unstable-2022-01-19";
+  version = "unstable-2022-03-20";
 
   # TODO when switching to a stable release, use fetchFromGitea and add a
   # version test. Meanwhile, fetchgit is used to make unstableGitUpdater work.
   src = fetchgit {
     url = "https://codeberg.org/simonrepp/faircamp.git";
-    rev = "f8ffc7a35a12251b83966b35c63f72b4912f75a9";
-    sha256 = "sha256-9t42+813IPLUChbLkcwzoCr7FXSL1g+ZG6I3d+7pmec=";
+    rev = "863cecb468a58a774bd2d1d93f99f3c8ecd8205c";
+    sha256 = "sha256-JodIo601BYesbiHarnBk4/GuFR/bpCswxQbaysRP+CI=";
   };
 
-  cargoHash = "sha256-24ALBede3W8rjlBRdtL0aazRyK1RmNLdHF/bt5i4S5Y=";
+  cargoHash = "sha256-XqsUUc+s01t4KHtktbNhm52r0NeLbcBg5DVw3Xn0oZk=";
 
   nativeBuildInputs = [
     makeWrapper
diff --git a/pkgs/applications/misc/firestarter/default.nix b/pkgs/applications/misc/firestarter/default.nix
index 92c517835d834..dca8e12569192 100644
--- a/pkgs/applications/misc/firestarter/default.nix
+++ b/pkgs/applications/misc/firestarter/default.nix
@@ -8,11 +8,13 @@
 , glibc
 , git
 , pkg-config
-, cudatoolkit
+, cudaPackages ? {}
 , withCuda ? false
 }:
 
 let
+  inherit (cudaPackages) cudatoolkit;
+
   hwloc = stdenv.mkDerivation rec {
     pname = "hwloc";
     version = "2.2.0";
diff --git a/pkgs/applications/misc/fluidd/default.nix b/pkgs/applications/misc/fluidd/default.nix
index 766b05b2e1458..5d709235741a4 100644
--- a/pkgs/applications/misc/fluidd/default.nix
+++ b/pkgs/applications/misc/fluidd/default.nix
@@ -2,12 +2,12 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "fluidd";
-  version = "1.17.1";
+  version = "1.17.2";
 
   src = fetchurl {
     name = "fluidd-v${version}.zip";
     url = "https://github.com/cadriel/fluidd/releases/download/v${version}/fluidd.zip";
-    sha256 = "sha256-F4hAFLsZmRg/zeTHo9eYoT0BasorynGaSzNSbKr2/JE=";
+    sha256 = "sha256-kb7t3H2gpiN6/N/LxyG/Vu5Cp/zytAePsXmacxVyWCk=";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/applications/misc/foxitreader/default.nix b/pkgs/applications/misc/foxitreader/default.nix
index e69361dbd93e4..b206d14323b1c 100644
--- a/pkgs/applications/misc/foxitreader/default.nix
+++ b/pkgs/applications/misc/foxitreader/default.nix
@@ -74,6 +74,7 @@ mkDerivation rec {
     description = "A viewer for PDF documents";
     homepage = "https://www.foxitsoftware.com/";
     license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ p-h rhoriguchi ];
   };
 }
diff --git a/pkgs/applications/misc/gallery-dl/default.nix b/pkgs/applications/misc/gallery-dl/default.nix
index dc5dedbd1ad9a..46bd189fcf8a8 100644
--- a/pkgs/applications/misc/gallery-dl/default.nix
+++ b/pkgs/applications/misc/gallery-dl/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonApplication rec {
   pname = "gallery_dl";
-  version = "1.21.0";
+  version = "1.21.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-D/K+C7IX4VGv+FFYuPQEqwVYSjiDcSeElVunVMiFWI8=";
+    sha256 = "sha256-oLVrYM7F9JFDYgQL/XgJS9LeUexqcSlvmkwyAk1bpoY=";
   };
 
   propagatedBuildInputs = [ requests yt-dlp ];
diff --git a/pkgs/applications/misc/globe-cli/default.nix b/pkgs/applications/misc/globe-cli/default.nix
index e7ec63f97844a..9d2a5bbc786f8 100644
--- a/pkgs/applications/misc/globe-cli/default.nix
+++ b/pkgs/applications/misc/globe-cli/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/adamsky/globe";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ devhell ];
+    mainProgram = "globe";
   };
 }
diff --git a/pkgs/applications/misc/gnome-firmware-updater/default.nix b/pkgs/applications/misc/gnome-firmware-updater/default.nix
deleted file mode 100644
index 30d3b57003d1e..0000000000000
--- a/pkgs/applications/misc/gnome-firmware-updater/default.nix
+++ /dev/null
@@ -1,75 +0,0 @@
-{ lib, stdenv
-, fetchFromGitLab
-, fetchpatch
-, appstream-glib
-, desktop-file-utils
-, fwupd
-, gettext
-, glib
-, gtk3
-, libsoup
-, libxmlb
-, meson
-, ninja
-, pkg-config
-, systemd
-, help2man
-, wrapGAppsHook
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-firmware-updater";
-  version = "3.34.0";
-
-  src = fetchFromGitLab {
-    domain = "gitlab.gnome.org";
-    owner = "hughsie";
-    repo = "gnome-firmware-updater";
-    rev = version;
-    sha256 = "04pll0fzf4nr276kfw89r0524s6ppmls5rz4vq2j8c8gb50g0b6l";
-  };
-
-  patches = [
-    # Fixes manual build
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/hughsie/gnome-firmware-updater/commit/006b64dcb401d8c81a33222bc4be8274c23f3c9c.patch";
-      sha256 = "02303ip4ri5pv1bls8c0njb00qhn0jd0d8rmvsrig0fmacwfvc06";
-    })
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/hughsie/gnome-firmware-updater/commit/c4f076f2c902080618e0c27dec924fd0019f68a3.patch";
-      sha256 = "1yfxd7qsg3gwpamg0m2sbcfrgks59w70r9728arrc4pwx1hia2q1";
-    })
-  ];
-
-  nativeBuildInputs = [
-    appstream-glib # for ITS rules
-    desktop-file-utils
-    gettext
-    help2man
-    meson
-    ninja
-    pkg-config
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    fwupd
-    glib
-    gtk3
-    libsoup
-    libxmlb
-    systemd
-  ];
-
-  mesonFlags = [
-    "-Dconsolekit=false"
-  ];
-
-  meta = with lib; {
-    homepage = "https://gitlab.gnome.org/hughsie/gnome-firmware-updater";
-    description = "Tool for installing firmware on devices";
-    license = licenses.gpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/applications/misc/gnome-firmware/default.nix b/pkgs/applications/misc/gnome-firmware/default.nix
new file mode 100644
index 0000000000000..f3e32f195fc04
--- /dev/null
+++ b/pkgs/applications/misc/gnome-firmware/default.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, appstream-glib
+, desktop-file-utils
+, fwupd
+, gettext
+, glib
+, gtk4
+, libadwaita
+, libxmlb
+, meson
+, ninja
+, pkg-config
+, systemd
+, help2man
+, wrapGAppsHook4
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-firmware";
+  version = "42.1";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "World";
+    repo = "gnome-firmware";
+    rev = version;
+    sha256 = "9QZ98EElENWsME/jXoj9YJl2e+ipyLm0g4grQUwmnuE=";
+  };
+
+  nativeBuildInputs = [
+    appstream-glib # for ITS rules
+    desktop-file-utils
+    gettext
+    help2man
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    fwupd
+    glib
+    gtk4
+    libadwaita
+    libxmlb
+    systemd
+  ];
+
+  mesonFlags = [
+    "-Dconsolekit=false"
+  ];
+
+  meta = with lib; {
+    homepage = "https://gitlab.gnome.org/World/gnome-firmware";
+    description = "Tool for installing firmware on devices";
+    license = licenses.gpl2Plus;
+    maintainers = teams.gnome.members;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/gnome-solanum/default.nix b/pkgs/applications/misc/gnome-solanum/default.nix
index 8ad1267afa932..e7d2489bdb540 100644
--- a/pkgs/applications/misc/gnome-solanum/default.nix
+++ b/pkgs/applications/misc/gnome-solanum/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitLab
+, fetchpatch
 , rustPlatform
 , desktop-file-utils
 , meson
@@ -27,6 +28,15 @@ stdenv.mkDerivation rec {
     sha256 = "0cga6cz6jfbipzp008rjznkz7844licdc34lk133fcyqil0cg0ap";
   };
 
+  patches = [
+    # Fix build with meson 0.61, can be removed on next update
+    # https://gitlab.gnome.org/World/Solanum/-/merge_requests/49
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/World/Solanum/-/commit/e5c5d88f95b0fe4145c9ed346b8ca98a613d7cfe.patch";
+      sha256 = "j84P9KzMr0o38u4OD4ZPst+yqw1LCRoa1awT3nelFDI=";
+    })
+  ];
+
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
diff --git a/pkgs/applications/misc/gpsprune/default.nix b/pkgs/applications/misc/gpsprune/default.nix
index 1c898fa343ce2..48708bc057c7c 100644
--- a/pkgs/applications/misc/gpsprune/default.nix
+++ b/pkgs/applications/misc/gpsprune/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gpsprune";
-  version = "21.1";
+  version = "21.2";
 
   src = fetchurl {
     url = "https://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar";
-    sha256 = "sha256-WyI9IKzUmKGiqiYs6SSuGhVUdO2UCsPSSL/IjPLykiM=";
+    sha256 = "sha256-QgbLbpqlC2sITbPK4ZcaovmycwhWtnu06x8F0grpECc=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/applications/misc/gremlin-console/default.nix b/pkgs/applications/misc/gremlin-console/default.nix
index 8c596b06fd0ff..1c8fe38ea8e42 100644
--- a/pkgs/applications/misc/gremlin-console/default.nix
+++ b/pkgs/applications/misc/gremlin-console/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "gremlin-console";
-  version = "3.5.2";
+  version = "3.6.0";
   src = fetchzip {
     url = "https://downloads.apache.org/tinkerpop/${version}/apache-tinkerpop-gremlin-console-${version}-bin.zip";
-    sha256 = "sha256-PCr8lDQzypgozKCzD8FV4X4ls5lYZRMey1vfcFzo+Uc=";
+    sha256 = "sha256-gYlHZuRKpBpC0will4EoJGyHW41vSjAT8Yg8yK6PCms=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/misc/gsctl/default.nix b/pkgs/applications/misc/gsctl/default.nix
index 95a909c29a977..5014031d6c82e 100644
--- a/pkgs/applications/misc/gsctl/default.nix
+++ b/pkgs/applications/misc/gsctl/default.nix
@@ -1,22 +1,28 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, kubectl, stdenv }:
 
 buildGoModule rec {
   pname = "gsctl";
-  version = "1.1.4";
+  version = "1.1.5";
 
   src = fetchFromGitHub {
     owner = "giantswarm";
     repo = pname;
     rev = version;
-    sha256 = "sha256-uCNWgaLZMm1vPxFduj8mpjKYuYlp1ChF6bK+bmAWy50=";
+    sha256 = "sha256-P1hJoZ1YSZTCo5ha/Um/nYVVhbYC3dcrQGJYTSnqNu4=";
   };
 
-  vendorSha256 = "sha256-lZgHrQYqoyoM1Iv6vCqTMcv62zSKyxaAsq56kUXHrIA=";
+  vendorSha256 = "sha256-NeRABlKUpD2ZHRid/vu34Dh9uHZ+7IXWFPX8jkexUog=";
 
-  ldflags =
-    [ "-s" "-w" "-X github.com/giantswarm/gsctl/buildinfo.Version=${version}" ];
+  ldflags = [
+    "-s" "-w"
+    "-X github.com/giantswarm/gsctl/buildinfo.Version=${version}"
+  ];
 
-  doCheck = false;
+  checkInputs = [
+    kubectl
+  ];
+
+  doCheck = !stdenv.isDarwin;
 
   meta = with lib; {
     description = "The Giant Swarm command line interface";
diff --git a/pkgs/applications/misc/hello/default.nix b/pkgs/applications/misc/hello/default.nix
index ce49cfd69ca88..60482a84c9b43 100644
--- a/pkgs/applications/misc/hello/default.nix
+++ b/pkgs/applications/misc/hello/default.nix
@@ -2,8 +2,7 @@
 , stdenv
 , fetchurl
 , nixos
-, testVersion
-, testEqualDerivation
+, testers
 , hello
 }:
 
@@ -19,10 +18,10 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru.tests = {
-    version = testVersion { package = hello; };
+    version = testers.testVersion { package = hello; };
 
     invariant-under-noXlibs =
-      testEqualDerivation
+      testers.testEqualDerivation
         "hello must not be rebuilt when environment.noXlibs is set."
         hello
         (nixos { environment.noXlibs = true; }).pkgs.hello;
diff --git a/pkgs/applications/misc/hubstaff/default.nix b/pkgs/applications/misc/hubstaff/default.nix
index a164654b1a67e..44169f6a539e2 100644
--- a/pkgs/applications/misc/hubstaff/default.nix
+++ b/pkgs/applications/misc/hubstaff/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation {
     ln -s $opt/data/resources $opt/x86_64/resources
   '';
 
-  updateScript = writeShellScript "hubstaff-updater" ''
+  passthru.updateScript = writeShellScript "hubstaff-updater" ''
     set -eu -o pipefail
 
     installation_script_url=$(curl --fail --head --location --silent --output /dev/null --write-out %{url_effective} https://app.hubstaff.com/download/linux)
diff --git a/pkgs/applications/misc/hugo/default.nix b/pkgs/applications/misc/hugo/default.nix
index 81ee786aec6f2..8be9c83e50ade 100644
--- a/pkgs/applications/misc/hugo/default.nix
+++ b/pkgs/applications/misc/hugo/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "hugo";
-  version = "0.92.2";
+  version = "0.96.0";
 
   src = fetchFromGitHub {
     owner = "gohugoio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-kwqN/9H/ZI2eL09K/9bOMBWW9bow8LtKpbfxyfxIucA=";
+    sha256 = "sha256-3O+ZdOloh5gILPQssztt7s/MwRgDOnpJItwLn7FXnPU=";
   };
 
-  vendorSha256 = "sha256-7dJUl0IxsLj0ds2jqtChNCQEBiK9PahG159IhyFxwdM=";
+  vendorSha256 = "sha256-TgE/ToHBg2QBgtk0gPZTV/icIbQN14RpVAbL/8b+W0U=";
 
   doCheck = false;
 
@@ -27,9 +27,9 @@ buildGoModule rec {
     $out/bin/hugo gen man
     installManPage man/*
     installShellCompletion --cmd hugo \
-      --bash <($out/bin/hugo gen autocomplete --type=bash) \
-      --fish <($out/bin/hugo gen autocomplete --type=fish) \
-      --zsh <($out/bin/hugo gen autocomplete --type=zsh)
+      --bash <($out/bin/hugo completion bash) \
+      --fish <($out/bin/hugo completion fish) \
+      --zsh <($out/bin/hugo completion zsh)
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/index-fm/default.nix b/pkgs/applications/misc/index-fm/default.nix
index 4ab933aefe073..7414fb2a7e293 100644
--- a/pkgs/applications/misc/index-fm/default.nix
+++ b/pkgs/applications/misc/index-fm/default.nix
@@ -3,7 +3,6 @@
 , fetchFromGitLab
 , cmake
 , extra-cmake-modules
-, applet-window-buttons
 , karchive
 , kcoreaddons
 , ki18n
@@ -38,7 +37,6 @@ mkDerivation rec {
   ];
 
   buildInputs = [
-    applet-window-buttons
     karchive
     kcoreaddons
     ki18n
diff --git a/pkgs/applications/misc/ipmiview/default.nix b/pkgs/applications/misc/ipmiview/default.nix
index 4c01e52aa5dbe..a25806533ef86 100644
--- a/pkgs/applications/misc/ipmiview/default.nix
+++ b/pkgs/applications/misc/ipmiview/default.nix
@@ -13,12 +13,12 @@
 
 stdenv.mkDerivation rec {
   pname = "IPMIView";
-  version = "2.19.0";
-  buildVersion = "210401";
+  version = "2.20.0";
+  buildVersion = "220309";
 
   src = fetchurl {
     url = "https://www.supermicro.com/wftp/utility/IPMIView/Linux/IPMIView_${version}_build.${buildVersion}_bundleJRE_Linux_x64.tar.gz";
-    sha256 = "sha256-6hxOu/Wkcrp9MaMYlxOR2DZW21Wi3BIFZp3Vm8NRBWs=";
+    hash = "sha256-qtklBMuK0jb9Ye0IkYM2WYFRMAfZg9tk08a1JQ64cjA=";
   };
 
   nativeBuildInputs = [ patchelf makeWrapper ];
diff --git a/pkgs/applications/misc/join-desktop/default.nix b/pkgs/applications/misc/join-desktop/default.nix
new file mode 100644
index 0000000000000..0b09911ddb24b
--- /dev/null
+++ b/pkgs/applications/misc/join-desktop/default.nix
@@ -0,0 +1,73 @@
+{ lib
+, stdenv
+, fetchurl
+, alsa-lib
+, autoPatchelfHook
+, dpkg
+, gtk3
+, makeWrapper
+, mesa
+, nss
+, systemd
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "join-desktop";
+  version = "1.1.2";
+
+  src = fetchurl {
+    url = "https://github.com/joaomgcd/JoinDesktop/releases/download/v${version}/com.joaomgcd.join_${version}_amd64.deb";
+    sha256 = "sha256-k1LX/HC3tfL4Raipo7wp/LnfrPa38x8NBeKRyHJ72CU=";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    dpkg
+    makeWrapper
+  ];
+
+  buildInputs = [
+    alsa-lib
+    gtk3
+    mesa
+    nss
+    xorg.libXScrnSaver
+    xorg.libXtst
+  ];
+
+  unpackPhase = "dpkg-deb -x $src .";
+
+  runtimeDependencies = [
+    (lib.getLib systemd)
+    # TODO: check if they are required
+    # libnotify
+    # libappindicator
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin $out/share/join-desktop
+
+    mv usr/share/* $out/share
+    mv opt/Join\ Desktop/* $out/share/join-desktop
+
+    ln -s $out/share/join-desktop/com.joaomgcd.join $out/bin/
+
+    substituteInPlace $out/share/applications/com.joaomgcd.join.desktop \
+      --replace "/opt/Join Desktop/com.joaomgcd.join" "com.joaomgcd.join"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/joaomgcd/JoinDesktop/";
+    description = "Desktop app for Join";
+    # on https://joaoapps.com/join/desktop/ "Join Desktop is an open source app" but no license
+    license = licenses.free;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+
+}
diff --git a/pkgs/applications/misc/josm/default.nix b/pkgs/applications/misc/josm/default.nix
index cc6d4e33fb243..9a7ed898e51f4 100644
--- a/pkgs/applications/misc/josm/default.nix
+++ b/pkgs/applications/misc/josm/default.nix
@@ -3,20 +3,20 @@
 }:
 let
   pname = "josm";
-  version = "18387";
+  version = "18427";
   srcs = {
     jar = fetchurl {
       url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
-      sha256 = "sha256-zkEWZjjSy0ajG5X1/dIgLPZ7zr0BiaJJcHaN8sv/3yc=";
+      sha256 = "sha256-SsoeKfpWi41sd77LfaQW0OcHnyf8iLolKWF74dhalpY=";
     };
     macosx = fetchurl {
       url = "https://josm.openstreetmap.de/download/macosx/josm-macos-${version}-java17.zip";
-      sha256 = "sha256-xOVnnQ+eUkboT8Tq5F4QJEou1wAaHwiEdyiEKDR/fUk=";
+      sha256 = "sha256-cz3OT03StvJy9XYBiPxx+nz36O0cg+XrL/uc52/G/1c=";
     };
     pkg = fetchsvn {
       url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested";
       rev = version;
-      sha256 = "sha256-GbIWZTJmmUT8r9L63/6mcnRt7dvavqGAVbozxlbF89g=";
+      sha256 = "sha256-AyfUFE0y8d8FtgfhxSscQGE1IVNwYYNymH6jTnrUBTs=";
     };
   };
 in
diff --git a/pkgs/applications/misc/k4dirstat/default.nix b/pkgs/applications/misc/k4dirstat/default.nix
index e2e43ae099715..552a63240d513 100644
--- a/pkgs/applications/misc/k4dirstat/default.nix
+++ b/pkgs/applications/misc/k4dirstat/default.nix
@@ -7,7 +7,7 @@
 , kjobwidgets
 , kxmlgui
 , lib
-, testVersion
+, testers
 , k4dirstat
 }:
 
@@ -26,7 +26,7 @@ mkDerivation rec {
   buildInputs = [ kiconthemes kio kjobwidgets kxmlgui ];
 
   passthru.tests.version =
-    testVersion {
+    testers.testVersion {
       package = k4dirstat;
       command = "k4dirstat -platform offscreen --version &>/dev/stdout";
     };
diff --git a/pkgs/applications/misc/keylight-controller-mschneider82/default.nix b/pkgs/applications/misc/keylight-controller-mschneider82/default.nix
new file mode 100644
index 0000000000000..e019e9f1b9865
--- /dev/null
+++ b/pkgs/applications/misc/keylight-controller-mschneider82/default.nix
@@ -0,0 +1,53 @@
+{ buildGoModule, fetchFromGitHub, lib, libGL, nssmdns, pkg-config, xorg }:
+
+buildGoModule rec {
+  pname = "keylight-controller-mschneider82";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "mschneider82";
+    repo = "keylight-control";
+    rev = "v${version}";
+    sha256 = "sha256-UZfbGihCgFBQE1oExuzCexoNgpVGwNoA9orjZ9fh4gA=";
+  };
+
+  vendorSha256 = "sha256-nFttVJbEAAGsrAglMphuw0wJ2Kf8sWB4HrpVqfHO76o=";
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    libGL
+    nssmdns
+  ] ++ (with xorg; [
+    libX11
+    libX11.dev
+    libXcursor
+    libXext
+    libXi
+    libXinerama
+    libXrandr
+    libXxf86vm
+    xinput
+  ]);
+
+  meta = with lib; {
+    description = "A desktop application to control Elgato Keylights";
+    longDescription = ''
+      Requires having:
+      * Elgato's Keylight paired to local wifi network.
+      * Service avahi with nssmdns enabled.
+    '';
+    license = licenses.mit;
+    homepage = "https://github.com/mschneider82/keylight-control";
+    maintainers = with maintainers; [ superherointj ];
+  };
+}
+
+# Note: Application errors on first executions but works on re-runs.
+
+# Troubleshooting
+# 1. Keylight lists at: `avahi-browse --all --resolve --ignore-local`
+# 2. Ping Keylight's IP
+# 3. Resolve Keylight's hostname: `getent hosts elgato-key-light-XXXX.local`
diff --git a/pkgs/applications/misc/kjv/default.nix b/pkgs/applications/misc/kjv/default.nix
index 08a1b5a71af6d..ee599fd3b6ccc 100644
--- a/pkgs/applications/misc/kjv/default.nix
+++ b/pkgs/applications/misc/kjv/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, fetchpatch, readline }:
 
 let
-  patchPrefix = "https://github.com/samuelgrf/kjv/commit/";
+  patchPrefix = "https://web.archive.org/web/20220422205751/https://github.com/samuelgrf/kjv/commit/";
 
   add-apocrypha = fetchpatch {
     url = patchPrefix + "0856fa0d37b45de0d6b47d163b5ea9a0b7f2c061.patch";
@@ -35,7 +35,7 @@ stdenv.mkDerivation {
     description = "The Bible, King James Version";
     homepage = "https://github.com/bontibon/kjv";
     license = licenses.unlicense;
-    maintainers = with maintainers; [ jtobin samuelgrf ];
+    maintainers = with maintainers; [ jtobin ];
     mainProgram = "kjv";
   };
 }
diff --git a/pkgs/applications/misc/kratos/default.nix b/pkgs/applications/misc/kratos/default.nix
index 043f607c010db..a2892e9fa894b 100644
--- a/pkgs/applications/misc/kratos/default.nix
+++ b/pkgs/applications/misc/kratos/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kratos";
-  version = "0.8.3-alpha.1.pre.0";
+  version = "0.9.0-alpha.3";
 
   src = fetchFromGitHub {
     owner = "ory";
     repo = "kratos";
     rev = "v${version}";
-    sha256 = "1225paf0x6lb6cb3q5f4lyz0r426ifx4x8145q7nsc6v64srck2y";
+    sha256 = "1x6g5mbbz1nkqi814dcyvdn8dyizpilzsb9cqijw0kpw4y3px757";
   };
 
-  vendorSha256 = "10zhxbccjsp6hbmk2lnvbag6c92hz703mcaigaj4wvlf7glpldm6";
+  vendorSha256 = "1v29g302zqh7sc5s53dyz1mki0iijnr6nfj4fajayz2n7bfw3kh1";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/misc/lutris/default.nix b/pkgs/applications/misc/lutris/default.nix
index 0446c694fe0d1..e48065e6d9a08 100644
--- a/pkgs/applications/misc/lutris/default.nix
+++ b/pkgs/applications/misc/lutris/default.nix
@@ -84,13 +84,13 @@ let
 in
 buildPythonApplication rec {
   pname = "lutris-original";
-  version = "0.5.10";
+  version = "0.5.10.1";
 
   src = fetchFromGitHub {
     owner = "lutris";
     repo = "lutris";
-    rev = "v${version}";
-    sha256 = "sha256-PrnULCdQXNZ9OTa00NVyqiTdKRRkAYBcDj7lMwEqkw4=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-Bf8UEGEM6M4PKoX/qKQNb9XxrxLcjKZD1vR3R2/PykI=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
@@ -148,7 +148,7 @@ buildPythonApplication rec {
     homepage = "https://lutris.net";
     description = "Open Source gaming platform for GNU/Linux";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ chiiruno ];
+    maintainers = with maintainers; [ Madouura ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/masterpdfeditor/default.nix b/pkgs/applications/misc/masterpdfeditor/default.nix
index cab136d55dc98..68453252ba539 100644
--- a/pkgs/applications/misc/masterpdfeditor/default.nix
+++ b/pkgs/applications/misc/masterpdfeditor/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "masterpdfeditor";
-  version = "5.8.33";
+  version = "5.8.46";
 
   src = fetchurl {
     url = "https://code-industry.net/public/master-pdf-editor-${version}-qt5.x86_64.tar.gz";
-    sha256 = "sha256-sgLF/NpaNlkL5iA1l7QzMiYKwRcMDu2DHdTIaeHOtfI=";
+    sha256 = "sha256-xms4aqIxYXR6v226RMf+abrFU1xz2aDIL6iQ+Yfff1k=";
   };
 
   nativeBuildInputs = [ autoPatchelfHook wrapQtAppsHook ];
diff --git a/pkgs/applications/misc/mediainfo/default.nix b/pkgs/applications/misc/mediainfo/default.nix
index 146df27726bb1..a6dfa557b2c52 100644
--- a/pkgs/applications/misc/mediainfo/default.nix
+++ b/pkgs/applications/misc/mediainfo/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, autoreconfHook, pkg-config, libzen, libmediainfo, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "21.09";
+  version = "22.03";
   pname = "mediainfo";
   src = fetchurl {
     url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
-    sha256 = "0mqcqm8y2whnbdi2ry7jd755gfl5ccdqhwjh67hsyr7c0ajxk3vv";
+    sha256 = "sha256-Yjb5Kh1XqBdLPzDqbd6Kq1ONj2IPcoIk2FE3MWmAK+Q=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/applications/misc/megacmd/default.nix b/pkgs/applications/misc/megacmd/default.nix
index 8ca4ec4189576..698925220aafa 100644
--- a/pkgs/applications/misc/megacmd/default.nix
+++ b/pkgs/applications/misc/megacmd/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
-, autoconf
-, automake
+, autoreconfHook
 , c-ares
 , cryptopp
 , curl
@@ -14,7 +13,6 @@
 , libmediainfo
 , libraw
 , libsodium
-, libtool
 , libuv
 , libzen
 , pcre-cpp
@@ -35,7 +33,8 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ autoconf automake libtool pkg-config ];
+  enableParallelBuilding = true;
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   buildInputs = [
     c-ares
@@ -54,10 +53,6 @@ stdenv.mkDerivation rec {
     sqlite
   ];
 
-  preConfigure = ''
-    ./autogen.sh
-  '';
-
   configureFlags = [
     "--disable-curl-checks"
     "--disable-examples"
diff --git a/pkgs/applications/misc/megasync/default.nix b/pkgs/applications/misc/megasync/default.nix
index 15b7060ff2641..98622ae404ce5 100644
--- a/pkgs/applications/misc/megasync/default.nix
+++ b/pkgs/applications/misc/megasync/default.nix
@@ -28,13 +28,13 @@
 }:
 mkDerivation rec {
   pname = "megasync";
-  version = "4.6.3.0";
+  version = "4.6.5.0";
 
   src = fetchFromGitHub {
     owner = "meganz";
     repo = "MEGAsync";
     rev = "v${version}_Linux";
-    sha256 = "1j86vr8n2a17my61vkmx83cay1ibllzjprl5bfwaby5ibh4zclz4";
+    sha256 = "sha256-2gsJmMnt0+4vknd2HgOtCYCjVWT7eD0WBimmtsFEhvY=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/misc/mepo/default.nix b/pkgs/applications/misc/mepo/default.nix
index 72e05d19bbda1..1b5178bb14ad2 100644
--- a/pkgs/applications/misc/mepo/default.nix
+++ b/pkgs/applications/misc/mepo/default.nix
@@ -3,27 +3,39 @@
 , fetchFromSourcehut
 , pkg-config
 , zig
+, makeWrapper
 , curl
 , SDL2
 , SDL2_gfx
 , SDL2_image
 , SDL2_ttf
+, jq
+, ncurses
+, inconsolata-nerdfont
+, dmenu
+, xdotool
+, bemenu
+, withX11 ? false
 }:
 
-stdenv.mkDerivation rec {
+let
+  menuInputs = if withX11 then [ dmenu xdotool ] else [ bemenu ];
+in stdenv.mkDerivation rec {
   pname = "mepo";
-  version = "0.3";
+  version = "0.4.1";
 
   src = fetchFromSourcehut {
     owner = "~mil";
     repo = pname;
     rev = version;
-    hash = "sha256-B7BOAFhiOTILUdzh49hTMrNNHZpCNRDLW2uekXyptqQ=";
+    hash = "sha256-soIAQgo8Cyii/zzJapgJmC5hN/ySnHKoSbOg/XgTnGg=";
   };
 
-  nativeBuildInputs = [ pkg-config zig ];
+  nativeBuildInputs = [ pkg-config zig makeWrapper ];
 
-  buildInputs = [ curl SDL2 SDL2_gfx SDL2_image SDL2_ttf ];
+  buildInputs = [
+    curl SDL2 SDL2_gfx SDL2_image SDL2_ttf inconsolata-nerdfont jq ncurses
+  ] ++ menuInputs;
 
   preBuild = ''
     export HOME=$TMPDIR
@@ -46,12 +58,26 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
+  postInstall = ''
+    wrapProgram $out/bin/mepo_dl.sh\
+      --suffix PATH : ${lib.makeBinPath [ jq ncurses ]}
+    wrapProgram $out/bin/mepo_ui_helper_menu.sh\
+      --suffix PATH : ${lib.makeBinPath menuInputs}
+    for script in $(grep -l jq out/bin/mepo_ui_menu_*.sh); do
+      wrapProgram $script --suffix PATH : $out/bin:${lib.makeBinPath [ jq ]}
+    done
+    for prog in $out/bin/mepo*; do
+      if [ ! -f $out/bin/.$(basename $prog)-wrapped ]; then
+        wrapProgram $prog --suffix PATH : $out/bin
+      fi
+    done
+  '';
+
   meta = with lib; {
     description = "Fast, simple, and hackable OSM map viewer";
     homepage = "https://sr.ht/~mil/mepo/";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ sikmir ];
-    platforms = platforms.unix;
-    broken = stdenv.isDarwin; # See https://github.com/NixOS/nixpkgs/issues/86299
+    maintainers = with maintainers; [ sikmir McSinyx ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/metadata-cleaner/default.nix b/pkgs/applications/misc/metadata-cleaner/default.nix
index a92f79845134c..ee7703987eaa4 100644
--- a/pkgs/applications/misc/metadata-cleaner/default.nix
+++ b/pkgs/applications/misc/metadata-cleaner/default.nix
@@ -18,7 +18,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "metadata-cleaner";
-  version = "2.2.1";
+  version = "2.2.2";
 
   format = "other";
 
@@ -26,7 +26,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "rmnvgr";
     repo = "metadata-cleaner";
     rev = "v${version}";
-    hash = "sha256-clCCVOoiInaxg9++GiHMLaD+k0gAvt3oOmqQ/a+WgCE=";
+    hash = "sha256-V3qcQQwc2ykVTVgUJuNnVQ9iSPD0tv4C2hSILLxuE70=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/minigalaxy/default.nix b/pkgs/applications/misc/minigalaxy/default.nix
index 2786492d47a52..2be567f2a149a 100644
--- a/pkgs/applications/misc/minigalaxy/default.nix
+++ b/pkgs/applications/misc/minigalaxy/default.nix
@@ -31,6 +31,10 @@ python3Packages.buildPythonApplication rec {
     runHook postCheck
   '';
 
+  # Cannot find GSettings schemas when opening settings,
+  # probably https://github.com/NixOS/nixpkgs/issues/56943
+  strictDeps = false;
+
   nativeBuildInputs = [
     gettext
     wrapGAppsHook
diff --git a/pkgs/applications/misc/mob/default.nix b/pkgs/applications/misc/mob/default.nix
index 2b9c847bac8ff..e83ed045b0dc5 100644
--- a/pkgs/applications/misc/mob/default.nix
+++ b/pkgs/applications/misc/mob/default.nix
@@ -9,13 +9,13 @@
 
 buildGoPackage rec {
   pname = "mob";
-  version = "2.6.0";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "remotemobprogramming";
     repo = pname;
-    sha256 = "sha256-GJ4V4GQRUoXelk0ksHPoFL4iB1W7pe2UydK2AhYjysg=";
+    sha256 = "sha256-silAgScvhl388Uf6HkWqEkNmr/K6aUt/lj/rxzkk/f0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/mop/default.nix b/pkgs/applications/misc/mop/default.nix
index 105728b7f044e..e07fce797507a 100644
--- a/pkgs/applications/misc/mop/default.nix
+++ b/pkgs/applications/misc/mop/default.nix
@@ -1,18 +1,17 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "mop";
-  version = "0.2.0";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "mop-tracker";
     repo = "mop";
-    rev = "bc666ec165d08b43134f7ec0bf29083ad5466243";
-    sha256 = "sha256-fX7G4M3gfv31Eb2HChTY4RfVF2U92000U4ZnFNML5X4=";
+    rev = "v${version}";
+    sha256 = "sha256-oe8RG8E7xcp3ZqdDXYvpOVF3AfeSBFMherHD1YYFE/M=";
   };
 
-  goPackagePath = "github.com/michaeldv/mop";
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-kLQH7mMmBSsS9av+KnnEuBwiH6hzBOSozrn+1X+8774=";
 
   preConfigure = ''
     for i in *.go **/*.go; do
@@ -24,7 +23,7 @@ buildGoPackage rec {
 
   meta = with lib; {
     description = "Simple stock tracker implemented in go";
-    homepage =  "https://github.com/mop-tracker/mop";
+    homepage = "https://github.com/mop-tracker/mop";
     license = licenses.mit;
   };
 }
diff --git a/pkgs/applications/misc/mop/deps.nix b/pkgs/applications/misc/mop/deps.nix
deleted file mode 100644
index 4081cd1ddaa27..0000000000000
--- a/pkgs/applications/misc/mop/deps.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/nsf/termbox-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nsf/termbox-go";
-      rev = "9aecf65084a5754f12d27508fa2e6ed56851953b";
-      sha256 = "16sak07bgvmax4zxfrd4jia1dgygk733xa8vk8cdx28z98awbfsh";
-    };
-  }
-]
diff --git a/pkgs/applications/misc/multibootusb/default.nix b/pkgs/applications/misc/multibootusb/default.nix
index 3890246a63d6a..403df853343c3 100644
--- a/pkgs/applications/misc/multibootusb/default.nix
+++ b/pkgs/applications/misc/multibootusb/default.nix
@@ -101,7 +101,7 @@ python3Packages.buildPythonApplication rec {
       --prefix "PATH" ":" "${lib.makeBinPath runTimeDeps}"
 
       # Finally, move to directory that contains data
-      --run "cd $out/share/${pname}"
+      --chdir "$out/share/${pname}"
     )
   '';
 
diff --git a/pkgs/applications/misc/notejot/default.nix b/pkgs/applications/misc/notejot/default.nix
index deda8b07f475b..24877241f91ef 100644
--- a/pkgs/applications/misc/notejot/default.nix
+++ b/pkgs/applications/misc/notejot/default.nix
@@ -2,52 +2,45 @@
 , stdenv
 , fetchFromGitHub
 , gtk4
-, hicolor-icon-theme
 , json-glib
 , libadwaita
 , libgee
+, desktop-file-utils
 , meson
 , ninja
 , nix-update-script
 , pkg-config
-, python3
 , vala
 , wrapGAppsHook4
 }:
 
 stdenv.mkDerivation rec {
   pname = "notejot";
-  version = "3.4.9";
+  version = "3.5.1";
 
   src = fetchFromGitHub {
     owner = "lainsce";
     repo = pname;
     rev = version;
-    hash = "sha256-42k9CAnXAb7Ic580SIa95MDCkCWtso1F+0eD69HX8WI=";
+    hash = "sha256-p5F0OITgfZyvHwndI5r5BE524+nft7A2XfR3BJZFamU=";
   };
 
   nativeBuildInputs = [
+    desktop-file-utils
     meson
     ninja
     pkg-config
-    python3
     vala
     wrapGAppsHook4
   ];
 
   buildInputs = [
     gtk4
-    hicolor-icon-theme
     json-glib
     libadwaita
     libgee
   ];
 
-  postPatch = ''
-    chmod +x build-aux/post_install.py
-    patchShebangs build-aux/post_install.py
-  '';
-
   passthru.updateScript = nix-update-script {
     attrPath = pname;
   };
diff --git a/pkgs/applications/misc/nut/default.nix b/pkgs/applications/misc/nut/default.nix
index 41f46ff1c003d..e0e196ac14325 100644
--- a/pkgs/applications/misc/nut/default.nix
+++ b/pkgs/applications/misc/nut/default.nix
@@ -36,6 +36,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  NIX_CFLAGS_COMPILE = [ "-std=c++14" ];
+
   postInstall = ''
     wrapProgram $out/bin/nut-scanner --prefix LD_LIBRARY_PATH : \
       "$out/lib:${neon}/lib:${libusb-compat-0_1.out}/lib:${avahi}/lib:${freeipmi}/lib"
diff --git a/pkgs/applications/misc/obsidian/default.nix b/pkgs/applications/misc/obsidian/default.nix
index 3dad5c846952b..d34770051d0b8 100644
--- a/pkgs/applications/misc/obsidian/default.nix
+++ b/pkgs/applications/misc/obsidian/default.nix
@@ -2,7 +2,7 @@
 , fetchurl
 , lib
 , makeWrapper
-, electron_16
+, electron_17
 , makeDesktopItem
 , graphicsmagick
 , writeScript
@@ -13,6 +13,7 @@ let
   inherit (stdenv.hostPlatform) system;
   pname = "obsidian";
   version = "0.14.2";
+  appname = "Obsidian";
   meta = with lib; {
     description = "A powerful knowledge base that works on top of a local folder of plain text Markdown files";
     homepage = "https://obsidian.md";
@@ -27,29 +28,29 @@ let
     sha256 = if stdenv.isDarwin then "128kgqkf54ljkglwqa6i0qnfqhhmsv7hwbaqnml95n5dzyxrbm4s" else "00gip6pvkbywywlx71j87sxyh8yhkd36i1ydncbpnhsplr6smsq3";
   };
 
-  linux = stdenv.mkDerivation rec {
-    icon = fetchurl {
-      url = "https://forum.obsidian.md/uploads/default/original/1X/bf119bd48f748f4fd2d65f2d1bb05d3c806883b5.png";
-      sha256 = "18ylnbvxr6k4x44c4i1d55wxy2dq4fdppp43a4wl6h6zar0sc9s2";
-    };
+  icon = fetchurl {
+    url = "https://forum.obsidian.md/uploads/default/original/1X/bf119bd48f748f4fd2d65f2d1bb05d3c806883b5.png";
+    sha256 = "18ylnbvxr6k4x44c4i1d55wxy2dq4fdppp43a4wl6h6zar0sc9s2";
+  };
 
-    desktopItem = makeDesktopItem {
-      name = "obsidian";
-      desktopName = "Obsidian";
-      comment = "Knowledge base";
-      icon = "obsidian";
-      exec = "obsidian %u";
-      categories = [ "Office" ];
-      mimeTypes = [ "x-scheme-handler/obsidian" ];
-    };
+  desktopItem = makeDesktopItem {
+    name = "obsidian";
+    desktopName = "Obsidian";
+    comment = "Knowledge base";
+    icon = "obsidian";
+    exec = "obsidian %u";
+    categories = [ "Office" ];
+    mimeTypes = [ "x-scheme-handler/obsidian" ];
+  };
 
-    inherit pname version src;
-    meta.platforms = [ "x86_64-linux" ];
+  linux = stdenv.mkDerivation {
+    inherit pname version src desktopItem icon;
+    meta = meta // { platforms = [ "x86_64-linux" "aarch64-linux" ]; };
     nativeBuildInputs = [ makeWrapper graphicsmagick ];
     installPhase = ''
       runHook preInstall
       mkdir -p $out/bin
-      makeWrapper ${electron_16}/bin/electron $out/bin/obsidian \
+      makeWrapper ${electron_17}/bin/electron $out/bin/obsidian \
         --add-flags $out/share/obsidian/app.asar
       install -m 444 -D resources/app.asar $out/share/obsidian/app.asar
       install -m 444 -D resources/obsidian.asar $out/share/obsidian/obsidian.asar
@@ -71,10 +72,9 @@ let
     '';
   };
 
-  darwin = stdenv.mkDerivation rec {
-    appname = "Obsidian";
-    inherit pname version src;
-    meta.platforms = [ "x86_64-darwin" "aarch64-darwin" ];
+  darwin = stdenv.mkDerivation {
+    inherit pname version src appname;
+    meta = meta // { platforms = [ "x86_64-darwin" "aarch64-darwin" ]; };
     sourceRoot = "${appname}.app";
     nativeBuildInputs = [ makeWrapper undmg unzip ];
     installPhase = ''
diff --git a/pkgs/applications/misc/octoprint/default.nix b/pkgs/applications/misc/octoprint/default.nix
index 4dc6f87631894..b7b0f8ae46bf9 100644
--- a/pkgs/applications/misc/octoprint/default.nix
+++ b/pkgs/applications/misc/octoprint/default.nix
@@ -233,7 +233,7 @@ let
           self: super: {
             falcon = super.falcon.overridePythonAttrs (oldAttrs: rec {
               #pytestFlagsArray = [ "-W ignore::DeprecationWarning" ];
-              disabledTestPaths = oldAttrs.disabledTestPaths ++ [
+              disabledTestPaths = oldAttrs.disabledTestPaths or [] ++ [
                 "tests/asgi/test_asgi_servers.py"
               ];
             });
@@ -244,7 +244,7 @@ let
         (
           self: super: {
             sanic = super.sanic.overridePythonAttrs (oldAttrs: rec {
-              disabledTestPaths = oldAttrs.disabledTestPaths ++ [
+              disabledTestPaths = oldAttrs.disabledTestPaths or [] ++ [
                 "test_cli.py"
                 "test_cookies.py"
                 # requires network
diff --git a/pkgs/applications/misc/otpclient/default.nix b/pkgs/applications/misc/otpclient/default.nix
index 1f5f3d187290a..9f416ff75a3c6 100644
--- a/pkgs/applications/misc/otpclient/default.nix
+++ b/pkgs/applications/misc/otpclient/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "otpclient";
-  version = "2.4.9.1";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "paolostivanin";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-QcdPyuwbGK12Kul+gGTfRGmXfghr0qugpBEcrgATOT4=";
+    sha256 = "sha256-VUrLbGaDfPE+Ak20ZCJDmO/sgBzdf4S+SqvyQ7F6SQU=";
   };
 
   buildInputs = [ gtk3 jansson libgcrypt libzip libpng libcotp zbar ];
diff --git a/pkgs/applications/misc/pdfslicer/default.nix b/pkgs/applications/misc/pdfslicer/default.nix
index 31bc471401592..ed20f460a1677 100644
--- a/pkgs/applications/misc/pdfslicer/default.nix
+++ b/pkgs/applications/misc/pdfslicer/default.nix
@@ -24,6 +24,12 @@ stdenv.mkDerivation rec {
     sha256 = "0sja0ddd9c8wjjpzk2ag8q1lxpj09adgmhd7wnsylincqnj2jyls";
   };
 
+  postPatch = ''
+    # Don't build tests, vendored catch doesn't build with latest glibc.
+    substituteInPlace CMakeLists.txt \
+      --replace "add_subdirectory (tests)" ""
+  '';
+
   nativeBuildInputs = [
     cmake
     gettext
diff --git a/pkgs/applications/misc/pdfstudio/default.nix b/pkgs/applications/misc/pdfstudio/default.nix
index c91f6f64cf743..e27519da2cd7a 100644
--- a/pkgs/applications/misc/pdfstudio/default.nix
+++ b/pkgs/applications/misc/pdfstudio/default.nix
@@ -12,7 +12,7 @@ in
   pdfstudio = callPackage ./common.nix rec {
     pname = program;
     year = "2021";
-    version = "${year}.1.2";
+    version = "${year}.1.3";
     desktopName = "PDF Studio";
     longDescription = ''
       PDF Studio is an easy to use, full-featured PDF editing software. This is the standard/pro edition, which requires a license. For the free PDF Studio Viewer see the package pdfstudioviewer.
@@ -22,21 +22,21 @@ in
     ];
     src = fetchurl {
       url = makeurl { inherit pname year version; };
-      sha256 = "1188ll2qz58rr2slavqxisbz4q3fdzidpasb1p33926z0ym3rk45";
+      sha256 = "sha256-2az8/slWeLY7l7dCwyTaT18KFfvsO71vJFDZEvbDHGM=";
     };
   };
 
   pdfstudioviewer = callPackage ./common.nix rec {
     pname = program;
     year = "2021";
-    version = "${year}.1.2";
+    version = "${year}.1.3";
     desktopName = "PDF Studio Viewer";
     longDescription = ''
       PDF Studio Viewer is an easy to use, full-featured PDF editing software. This is the free edition. For the standard/pro edition, see the package pdfstudio.
     '';
     src = fetchurl {
       url = makeurl { inherit pname year version; };
-      sha256 = "128k3fm8m8zdykx4s30g5m2zl7cgmvs4qinf1w525zh84v56agz6";
+      sha256 = "sha256-kd+rQruBL0fudmc30agRO/XV97l/6unqU0GK25yhOzI=";
     };
   };
 }.${program}
diff --git a/pkgs/applications/misc/polybar/default.nix b/pkgs/applications/misc/polybar/default.nix
index 3660b0d7e0b1c..f737f18d158ef 100644
--- a/pkgs/applications/misc/polybar/default.nix
+++ b/pkgs/applications/misc/polybar/default.nix
@@ -2,6 +2,7 @@
 , cairo
 , cmake
 , fetchFromGitHub
+, libuv
 , libXdmcp
 , libpthreadstubs
 , libxcb
@@ -43,13 +44,13 @@
 
 stdenv.mkDerivation rec {
   pname = "polybar";
-  version = "3.5.7";
+  version = "3.6.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-h12VW3IY4do4cKz2Fd/QgVTBk+zJO+qXuRUCQUyO/x0=";
+    hash = "sha256-mLAcA8afGLNhRRU/x/TngCMcSRXdEM5wKWoYZhezJqU=";
     fetchSubmodules = true;
   };
 
@@ -62,6 +63,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     cairo
+    libuv
     libXdmcp
     libpthreadstubs
     libxcb
@@ -84,6 +86,14 @@ stdenv.mkDerivation rec {
   ++ lib.optional i3Support i3
   ++ lib.optional i3GapsSupport i3-gaps;
 
+  patches = [ ./remove-hardcoded-etc.diff ];
+
+  # Replace hardcoded /etc when copying and reading the default config.
+  postPatch = ''
+    substituteInPlace CMakeLists.txt --replace "/etc" $out
+    substituteAllInPlace src/utils/file.cpp
+  '';
+
   postInstall =
     if i3Support then ''
       wrapProgram $out/bin/polybar \
diff --git a/pkgs/applications/misc/polybar/remove-hardcoded-etc.diff b/pkgs/applications/misc/polybar/remove-hardcoded-etc.diff
new file mode 100644
index 0000000000000..d0c6db8b6b0ac
--- /dev/null
+++ b/pkgs/applications/misc/polybar/remove-hardcoded-etc.diff
@@ -0,0 +1,13 @@
+diff --git a/src/utils/file.cpp b/src/utils/file.cpp
+index 9511ad61..d3d82b99 100644
+--- a/src/utils/file.cpp
++++ b/src/utils/file.cpp
+@@ -322,7 +322,7 @@ namespace file_util {
+       possible_paths.push_back(xdg_config_dir + suffix + ".ini");
+     }
+ 
+-    possible_paths.push_back("/etc" + suffix + ".ini");
++    possible_paths.push_back("@out@" + suffix + ".ini");
+ 
+     for (const string& p : possible_paths) {
+       if (exists(p)) {
diff --git a/pkgs/applications/misc/portfolio-filemanager/default.nix b/pkgs/applications/misc/portfolio-filemanager/default.nix
index b7cd7c0e1170d..48039b64fb60a 100644
--- a/pkgs/applications/misc/portfolio-filemanager/default.nix
+++ b/pkgs/applications/misc/portfolio-filemanager/default.nix
@@ -17,7 +17,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "portfolio";
-  version = "0.9.12";
+  version = "0.9.14";
 
   format = "other";
 
@@ -25,7 +25,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "tchx84";
     repo = "Portfolio";
     rev = "v${version}";
-    sha256 = "sha256-P+XQRIL2DepoOSVElxVxMihqxdxwLVnvXuraZN8L7z8=";
+    hash = "sha256-mrb202ON0B6VlY+U+jN0jJmbT36jQ8krNnuODynaCUA=";
   };
 
   postPatch = ''
@@ -56,6 +56,10 @@ python3.pkgs.buildPythonApplication rec {
     pygobject3
   ];
 
+  checkPhase = ''
+    meson test
+  '';
+
   postInstall = ''
     ln -s dev.tchx84.Portfolio "$out/bin/portfolio"
   '';
diff --git a/pkgs/applications/misc/prusa-slicer/super-slicer.nix b/pkgs/applications/misc/prusa-slicer/super-slicer.nix
index c3037f0da8d26..41ba786227087 100644
--- a/pkgs/applications/misc/prusa-slicer/super-slicer.nix
+++ b/pkgs/applications/misc/prusa-slicer/super-slicer.nix
@@ -5,8 +5,8 @@ let
   description = "PrusaSlicer fork with more features and faster development cycle";
 
   versions = {
-    stable = { version = "2.3.57.10"; sha256 = "sha256-/1oZgmZpRoizVpklKaI12qP4bVIGYyVpybmuCIz3Y0M="; };
-    latest = { version = "2.3.57.10"; sha256 = "sha256-/1oZgmZpRoizVpklKaI12qP4bVIGYyVpybmuCIz3Y0M="; };
+    stable = { version = "2.3.57.12"; sha256 = "sha256-lePhDRHI++9zs54bTt2/Lu6ZQ7egjJCWb752aI0s7Mw=="; };
+    latest = { version = "2.3.57.12"; sha256 = "sha256-lePhDRHI++9zs54bTt2/Lu6ZQ7egjJCWb752aI0s7Mw=="; };
   };
 
   override = { version, sha256 }: super: {
diff --git a/pkgs/applications/misc/pure-maps/default.nix b/pkgs/applications/misc/pure-maps/default.nix
index 0914d2599c224..d634f2dd4af98 100644
--- a/pkgs/applications/misc/pure-maps/default.nix
+++ b/pkgs/applications/misc/pure-maps/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "pure-maps";
-  version = "2.9.2";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "rinigus";
     repo = "pure-maps";
     rev = version;
-    hash = "sha256-pMPjY6OXR6THiSQZ4mw9Kz+tAXJaOwzJEcpPOyZ+YKI=";
+    hash = "sha256-r36/Vpt4ZIWV1+VhqRBuo4uT7nmEGiFGIt3QGG3ijjs=";
     fetchSubmodules = true;
   };
 
@@ -37,6 +37,7 @@ mkDerivation rec {
   meta = with lib; {
     description = "Display vector and raster maps, places, routes, and provide navigation instructions with a flexible selection of data and service providers";
     homepage = "https://github.com/rinigus/pure-maps";
+    changelog = "https://github.com/rinigus/pure-maps/blob/${src.rev}/NEWS.md";
     license = licenses.gpl3Only;
     maintainers = [ maintainers.Thra11 ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/misc/pytrainer/default.nix b/pkgs/applications/misc/pytrainer/default.nix
index d7969155370eb..675df5d5ba3ed 100644
--- a/pkgs/applications/misc/pytrainer/default.nix
+++ b/pkgs/applications/misc/pytrainer/default.nix
@@ -26,13 +26,13 @@ let
   };
 in python.pkgs.buildPythonApplication rec {
   pname = "pytrainer";
-  version = "2.0.2";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "pytrainer";
     repo = "pytrainer";
     rev = "v${version}";
-    sha256 = "sha256-i3QC6ct7tS8B0QQjtVqPcd03LLIxo6djQe4YX35syzk=";
+    sha256 = "sha256-U2SVQKkr5HF7LB0WuCZ1xc7TljISjCNO26QUDGR+W/4=";
   };
 
   propagatedBuildInputs = with python.pkgs; [
diff --git a/pkgs/applications/misc/ranger/default.nix b/pkgs/applications/misc/ranger/default.nix
index 4bd8a182d6f1e..95f85430ba0b5 100644
--- a/pkgs/applications/misc/ranger/default.nix
+++ b/pkgs/applications/misc/ranger/default.nix
@@ -1,5 +1,9 @@
-{ lib, fetchFromGitHub, python3Packages, file, less, highlight
-, imagePreviewSupport ? true, w3m }:
+{ lib, fetchFromGitHub, python3Packages, file, less, highlight, w3m
+, imagePreviewSupport ? true
+, neoVimSupport ? true
+, improvedEncodingDetection ? true
+, rightToLeftTextSupport ? false
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "ranger";
@@ -15,8 +19,13 @@ python3Packages.buildPythonApplication rec {
   LC_ALL = "en_US.UTF-8";
 
   checkInputs = with python3Packages; [ pytestCheckHook ];
-  propagatedBuildInputs = [ file ]
-    ++ lib.optionals (imagePreviewSupport) [ python3Packages.pillow ];
+  propagatedBuildInputs = [
+    less
+    file
+  ] ++ lib.optionals imagePreviewSupport [ python3Packages.pillow ]
+    ++ lib.optionals neoVimSupport [ python3Packages.pynvim ]
+    ++ lib.optionals improvedEncodingDetection [ python3Packages.chardet ]
+    ++ lib.optionals rightToLeftTextSupport [ python3Packages.python-bidi ];
 
   preConfigure = ''
     ${lib.optionalString (highlight != null) ''
diff --git a/pkgs/applications/misc/rm-improved/default.nix b/pkgs/applications/misc/rm-improved/default.nix
index 0a1d38f5f7f96..c35fa3dc887b7 100644
--- a/pkgs/applications/misc/rm-improved/default.nix
+++ b/pkgs/applications/misc/rm-improved/default.nix
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage rec {
     description = "Replacement for rm with focus on safety, ergonomics and performance";
     homepage = "https://github.com/nivekuil/rip";
     maintainers = with maintainers; [ nils-degroot ];
+    mainProgram = "rip";
     license = licenses.gpl3Plus;
   };
 }
diff --git a/pkgs/applications/misc/sampler/default.nix b/pkgs/applications/misc/sampler/default.nix
index 2e1b94b6b6c7a..a020b15eea3e9 100644
--- a/pkgs/applications/misc/sampler/default.nix
+++ b/pkgs/applications/misc/sampler/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub, alsa-lib }:
+{ lib, buildGoModule, fetchFromGitHub, darwin, libiconv, alsa-lib, stdenv }:
 
 buildGoModule rec {
   pname = "sampler";
@@ -17,7 +17,10 @@ buildGoModule rec {
 
   subPackages = [ "." ];
 
-  buildInputs = [ alsa-lib ];
+  buildInputs = lib.optional stdenv.isLinux alsa-lib
+    ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.OpenAL
+  ];
 
   meta = with lib; {
     description = "Tool for shell commands execution, visualization and alerting";
diff --git a/pkgs/applications/misc/seatd/default.nix b/pkgs/applications/misc/seatd/default.nix
index 3149c171bdecd..177476900aa9b 100644
--- a/pkgs/applications/misc/seatd/default.nix
+++ b/pkgs/applications/misc/seatd/default.nix
@@ -5,7 +5,7 @@
 , pkg-config
 , scdoc
 , stdenv
-, systemd
+, systemdSupport ? stdenv.isLinux, systemd
 }:
 
 stdenv.mkDerivation rec {
@@ -25,9 +25,13 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ meson ninja pkg-config scdoc ];
 
-  buildInputs = [ systemd ];
+  buildInputs = lib.optionals systemdSupport [ systemd ];
 
-  mesonFlags = [ "-Dlibseat-logind=systemd" "-Dlibseat-builtin=enabled" ];
+  mesonFlags = [
+    "-Dlibseat-logind=${if systemdSupport then "systemd" else "disabled"}"
+    "-Dlibseat-builtin=enabled"
+    "-Dserver=enabled"
+  ];
 
   meta = with lib; {
     description = "A universal seat management library";
diff --git a/pkgs/applications/misc/sigi/default.nix b/pkgs/applications/misc/sigi/default.nix
index 62b8dd576591f..ff74d8b098f3a 100644
--- a/pkgs/applications/misc/sigi/default.nix
+++ b/pkgs/applications/misc/sigi/default.nix
@@ -1,28 +1,25 @@
-{ lib, rustPlatform, fetchCrate, installShellFiles, testVersion, sigi }:
+{ lib, rustPlatform, fetchCrate, installShellFiles, testers, sigi }:
 
 rustPlatform.buildRustPackage rec {
   pname = "sigi";
-  version = "3.0.3";
+  version = "3.2.1";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-tjhNE20GE1L8kvhdI5Mc90I75q8szOIV40vq2CBt98U=";
+    sha256 = "sha256-1eZ6i0CvjNyYlWb7c0OPlGtvVSFpi8hiOl/7qeeE9wA=";
   };
 
+  cargoSha256 = "sha256-Tyrcu/BYt9k4igiEIiZ2I7VIGiBZ3D2i6XfT/XGlU+U=";
   nativeBuildInputs = [ installShellFiles ];
 
-  # As part of its tests, sigi hard-codes a location to BATS based on git
-  # submodules. The tests are recommeded to skip for Linux packaging. They'll
-  # move to Rust after this issue: https://github.com/hiljusti/sigi/issues/19
-  checkFlags = [ "SKIP_BATS_TESTS=1" ];
+  # In case anything goes wrong.
+  checkFlags = [ "RUST_BACKTRACE=1" ];
 
   postInstall = ''
     installManPage sigi.1
   '';
 
-  cargoSha256 = "sha256-0e0r6hfXGJmrc6tgCqq2dQXu2MhkThViZwdG3r3g028=";
-
-  passthru.tests.version = testVersion { package = sigi; };
+  passthru.tests.version = testers.testVersion { package = sigi; };
 
   meta = with lib; {
     description = "Organizing CLI for people who don't love organizing.";
diff --git a/pkgs/applications/misc/sioyek/default.nix b/pkgs/applications/misc/sioyek/default.nix
new file mode 100644
index 0000000000000..7ffb24cb41930
--- /dev/null
+++ b/pkgs/applications/misc/sioyek/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, stdenv
+, installShellFiles
+, fetchFromGitHub
+, gumbo
+, harfbuzz
+, jbig2dec
+, mupdf
+, openjpeg
+, qt3d
+, qtbase
+, qmake
+, wrapQtAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sioyek";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "ahrm";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-G4iZi6xTJjWZN0T3lO0jPquxJ3p8Mc0ewmjJEKcGJ34=";
+  };
+
+  buildInputs = [ gumbo harfbuzz jbig2dec mupdf openjpeg qt3d qtbase ];
+
+  nativeBuildInputs = [ installShellFiles wrapQtAppsHook qmake ];
+
+  postPatch = ''
+    substituteInPlace pdf_viewer_build_config.pro \
+      --replace "-lmupdf-threads" "-lfreetype -lgumbo -ljbig2dec -lopenjp2 -ljpeg"
+    substituteInPlace pdf_viewer/main.cpp \
+      --replace "/usr/share/sioyek" "$out/share" \
+      --replace "/etc/sioyek" "$out/etc"
+  '';
+
+  qmakeFlags = "DEFINES+=\"LINUX_STANDARD_PATHS\" pdf_viewer_build_config.pro";
+
+  postInstall = ''
+    install -Dm644 tutorial.pdf $out/share/tutorial.pdf
+    cp -r pdf_viewer/shaders $out/share/
+    install -Dm644 -t $out/etc/ pdf_viewer/{keys,prefs}.config
+    installManPage resources/sioyek.1
+  '';
+
+  meta = with lib; {
+    description = "Sioyek is a PDF viewer designed for reading research papers and technical books.";
+    homepage = "https://sioyek.info/";
+    changelog = "https://github.com/ahrm/sioyek/releases";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.podocarp ];
+  };
+}
diff --git a/pkgs/applications/misc/skate/default.nix b/pkgs/applications/misc/skate/default.nix
index bb2315e7cff6b..04293d78ad975 100644
--- a/pkgs/applications/misc/skate/default.nix
+++ b/pkgs/applications/misc/skate/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "skate";
-  version = "0.1.4";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "charmbracelet";
     repo = "skate";
     rev = "v${version}";
-    sha256 = "sha256-vZps/VXNK+17quPyE1b56YXE2GsW3oB4vPi7sA8EPGE=";
+    sha256 = "sha256-glqBiwW87BwGRZGDSvvE/WeK4BKqXGmC6Q9qBk+ROuc=";
   };
 
-  vendorSha256 = "sha256-7cf/ldBli/q7aNiCO7qIw8o09hVpwDxF2h/UelP86V4=";
+  vendorSha256 = "sha256-VQvumXQx5Q0gt51NI65kjSnzGRyScpli36vfCygtAjE=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/misc/slides/default.nix b/pkgs/applications/misc/slides/default.nix
index 7287958d99ede..aaac0c1065772 100644
--- a/pkgs/applications/misc/slides/default.nix
+++ b/pkgs/applications/misc/slides/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "slides";
-  version = "0.7.3";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "maaslalani";
     repo = "slides";
     rev = "v${version}";
-    sha256 = "sha256-05geDWZSpFjLywuWkI+FPaTaO9dyNuPuMBk7dc1Yl6I=";
+    sha256 = "sha256-Ca0/M4B6yAdV4hbJ95gH9MVZg3EFIY5bSMkkYy2+P+Q=";
   };
 
   checkInputs = [
@@ -21,7 +21,7 @@ buildGoModule rec {
     go
   ];
 
-  vendorSha256 = "sha256-i+bbSwiH7TD+huxpTREThxnPkQZTMQJO7AP4kTlCseo=";
+  vendorSha256 = "sha256-pn7c/6RF/GpECQtaxsTau91T7pLg+ZAUBbnR7h8DfnY=";
 
   ldflags = [
     "-s"
@@ -32,7 +32,8 @@ buildGoModule rec {
   meta = with lib; {
     description = "Terminal based presentation tool";
     homepage = "https://github.com/maaslalani/slides";
+    changelog = "https://github.com/maaslalani/slides/releases/tag/v${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ maaslalani ];
+    maintainers = with maintainers; [ maaslalani penguwin ];
   };
 }
diff --git a/pkgs/applications/misc/stork/default.nix b/pkgs/applications/misc/stork/default.nix
index 48e2859fa8498..b65dad4735904 100644
--- a/pkgs/applications/misc/stork/default.nix
+++ b/pkgs/applications/misc/stork/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "stork";
-  version = "1.4.1";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "jameslittle230";
     repo = "stork";
     rev = "v${version}";
-    sha256 = "sha256-aBsxRLUufVUauySCxZKk/ZfcU/5KR7jOHmnx6mHmsFs=";
+    sha256 = "sha256-itjRJLbRTwovK+HcNEzwViEDTJ1MoRRTvZD412XYVKk=";
   };
 
-  cargoSha256 = "sha256-oNoWGdXYfp47IpqU1twbORPOYrHjArNf43Zyeyat4Xs=";
+  cargoSha256 = "sha256-GaYdgC3Bf759ZPcZxoFG0nmCSz7aNHuqtyid6RS8Ui8=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/applications/misc/taskwarrior/default.nix b/pkgs/applications/misc/taskwarrior/default.nix
index 8290a868ef07d..5a12380a4ff87 100644
--- a/pkgs/applications/misc/taskwarrior/default.nix
+++ b/pkgs/applications/misc/taskwarrior/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "taskwarrior";
-  version = "2.6.1";
+  version = "2.6.2";
 
   src = fetchFromGitHub {
     owner = "GothenburgBitFactory";
     repo = "taskwarrior";
     rev = "v${version}";
-    sha256 = "sha256-jMZzo2cegoapEHTvfD6ThU1IsXru3iOcpyDbZxkSXzQ=";
+    sha256 = "sha256-0YveqiylXJi4cdDCfnPtwCVOJbQrZYsxnXES+9B4Yfw=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/misc/terminal-typeracer/default.nix b/pkgs/applications/misc/terminal-typeracer/default.nix
index c6a700753f3ad..9840da035e5ab 100644
--- a/pkgs/applications/misc/terminal-typeracer/default.nix
+++ b/pkgs/applications/misc/terminal-typeracer/default.nix
@@ -29,6 +29,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://gitlab.com/ttyperacer/terminal-typeracer";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ yoctocell ];
+    mainProgram = "typeracer";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/misc/timewarrior/default.nix b/pkgs/applications/misc/timewarrior/default.nix
index adff6741d31fe..819df21ebe1d4 100644
--- a/pkgs/applications/misc/timewarrior/default.nix
+++ b/pkgs/applications/misc/timewarrior/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
     homepage = "https://timewarrior.net";
     license = licenses.mit;
     maintainers = with maintainers; [ matthiasbeyer mrVanDalo ];
+    mainProgram = "timew";
     platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/applications/misc/toipe/default.nix b/pkgs/applications/misc/toipe/default.nix
new file mode 100644
index 0000000000000..ca842ff6db00e
--- /dev/null
+++ b/pkgs/applications/misc/toipe/default.nix
@@ -0,0 +1,20 @@
+{ lib, fetchCrate, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "toipe";
+  version = "0.4.0";
+
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "sha256-lAvFCvNm55SjRmrhIkMBiM0nSlAG+jUEKLlLaGs1RkY=";
+  };
+
+  cargoSha256 = "sha256-WmWH/x69H17uHQEB0+GRUtApJnSEkoeFLLweP8NoBrk=";
+
+  meta = with lib; {
+    description = "Trusty terminal typing tester";
+    homepage = "https://github.com/Samyak2/toipe";
+    license = licenses.mit;
+    maintainers = with maintainers; [ loicreynier samyak ];
+  };
+}
diff --git a/pkgs/applications/misc/trenchbroom/default.nix b/pkgs/applications/misc/trenchbroom/default.nix
index 8a7025060607f..a49fbf71191e8 100644
--- a/pkgs/applications/misc/trenchbroom/default.nix
+++ b/pkgs/applications/misc/trenchbroom/default.nix
@@ -21,6 +21,19 @@ stdenv.mkDerivation rec {
       --subst-var-by APP_VERSION_YEAR ${lib.versions.major version} \
       --subst-var-by APP_VERSION_NUMBER ${lib.versions.minor version} \
       --subst-var-by GIT_DESCRIBE v${version}
+
+    # Tests don't compile because of vendored `catch2` being incompatible with glibc-2.34.
+    # Also, no need to since we don't even run them.
+    substituteInPlace lib/CMakeLists.txt \
+      --replace "add_subdirectory(Catch2)" ""
+    substituteInPlace lib/vecmath/CMakeLists.txt \
+      --replace "add_subdirectory(test)" "" \
+      --replace "add_subdirectory(lib)" ""
+    substituteInPlace lib/kdl/CMakeLists.txt \
+      --replace "add_subdirectory(test)" ""
+    substituteInPlace common/CMakeLists.txt \
+      --replace "add_subdirectory(test)" "" \
+      --replace "add_subdirectory(benchmark)" ""
   '';
 
   nativeBuildInputs = [ cmake git pandoc wrapQtAppsHook copyDesktopItems ];
diff --git a/pkgs/applications/misc/tty-solitaire/default.nix b/pkgs/applications/misc/tty-solitaire/default.nix
index b390c7bf9d142..137e5653d74f9 100644
--- a/pkgs/applications/misc/tty-solitaire/default.nix
+++ b/pkgs/applications/misc/tty-solitaire/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/mpereira/tty-solitaire";
     platforms = ncurses.meta.platforms;
     maintainers = [ maintainers.AndersonTorres ];
+    mainProgram = "ttysolitaire";
   };
 }
diff --git a/pkgs/applications/misc/tvbrowser/bin.nix b/pkgs/applications/misc/tvbrowser/bin.nix
index bd8fdf5e48c55..887a979219db2 100644
--- a/pkgs/applications/misc/tvbrowser/bin.nix
+++ b/pkgs/applications/misc/tvbrowser/bin.nix
@@ -41,7 +41,7 @@ in stdenv.mkDerivation rec {
     mkdir -p $out/bin
     makeWrapper ${jre}/bin/java $out/bin/${pname} \
       --add-flags "-jar $out/share/java/${pname}/${pname}.jar" \
-      --run "cd $out/share/java/${pname}"
+      --chdir "$out/share/java/${pname}"
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/upwork/default.nix b/pkgs/applications/misc/upwork/default.nix
index dc50a3b95678b..c6a79aa0e61e7 100644
--- a/pkgs/applications/misc/upwork/default.nix
+++ b/pkgs/applications/misc/upwork/default.nix
@@ -2,15 +2,15 @@
 , alsa-lib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig, freetype
 , gdk-pixbuf, glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid, libX11, libxcb
 , libXcomposite, libXcursor, libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender
-, libXScrnSaver, libXtst, mesa, nspr, nss, pango, systemd }:
+, libXScrnSaver, libXtst, mesa, nspr, nss, openssl, pango, systemd }:
 
 stdenv.mkDerivation rec {
   pname = "upwork";
-  version = "5.6.10.1";
+  version = "5.6.10.7";
 
   src = fetchurl {
-    url = "https://upwork-usw2-desktopapp.upwork.com/binaries/v5_6_10_1_de501d28cc034306/${pname}_${version}_amd64.deb";
-    sha256 = "8faf896d2570d1d210793f46a3860e934d03498c1f11640d43721b6eb2b56860";
+    url = "https://upwork-usw2-desktopapp.upwork.com/binaries/v5_6_10_7_f806fd1250954801/${pname}_${version}_amd64.deb";
+    sha256 = "6fe11cd53ffb66a02aa771153c4f58af34fea25847ee5bc13802fec9b0db0280";
   };
 
   nativeBuildInputs = [
@@ -39,13 +39,22 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     runHook preInstall
+
     mv usr $out
     mv opt $out
+
+    # Now it requires lib{ssl,crypto}.so.1.0.0. Fix based on Spotify pkg.
+    # https://github.com/NixOS/nixpkgs/blob/efea022d6fe0da84aa6613d4ddeafb80de713457/pkgs/applications/audio/spotify/default.nix#L129
+    mkdir -p $out/lib/upwork
+    ln -s ${lib.getLib openssl}/lib/libssl.so $out/lib/upwork/libssl.so.1.0.0
+    ln -s ${lib.getLib openssl}/lib/libcrypto.so $out/lib/upwork/libcrypto.so.1.0.0
+
     sed -e "s|/opt/Upwork|$out/bin|g" -i $out/share/applications/upwork.desktop
     makeWrapper $out/opt/Upwork/upwork \
       $out/bin/upwork \
       --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
       --prefix LD_LIBRARY_PATH : ${libPath}
+
     runHook postInstall
   '';
 
@@ -53,6 +62,7 @@ stdenv.mkDerivation rec {
     description = "Online freelancing platform desktop application for time tracking";
     homepage = "https://www.upwork.com/ab/downloads/";
     license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ zakkor wolfangaukang ];
   };
 }
diff --git a/pkgs/applications/misc/veracrypt/default.nix b/pkgs/applications/misc/veracrypt/default.nix
index 33d0da5c93a4f..2897bb996c84f 100644
--- a/pkgs/applications/misc/veracrypt/default.nix
+++ b/pkgs/applications/misc/veracrypt/default.nix
@@ -18,11 +18,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "veracrypt";
-  version = "1.24-Update7";
+  version = "1.25.9";
 
   src = fetchurl {
     url = "https://launchpad.net/${pname}/trunk/${toLower version}/+download/VeraCrypt_${version}_Source.tar.bz2";
-    sha256 = "0i7h44zn2mjzgh416l7kfs0dk6qc7b1bxsaxqqqcvgrpl453n7bc";
+    sha256 = "sha256-drbhgYS8IaQdKUn/Y9ch1JBUpxbO/zpL13tcNRC3lK8=";
   };
 
   patches = [
diff --git a/pkgs/applications/misc/xmrig/default.nix b/pkgs/applications/misc/xmrig/default.nix
index e40a0d7e5adee..b771bd7e62120 100644
--- a/pkgs/applications/misc/xmrig/default.nix
+++ b/pkgs/applications/misc/xmrig/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xmrig";
-  version = "6.16.4";
+  version = "6.17.0";
 
   src = fetchFromGitHub {
     owner = "xmrig";
     repo = "xmrig";
     rev = "v${version}";
-    sha256 = "sha256-hfdKhTUGoVN4DIURO+e3MOSpsL6GWxOV3LItd0nA51Y=";
+    sha256 = "sha256-K8mN3Wzlay2Qgoo70mu3Bh4lXUXNDpXYt17aNnwWkIc=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/xmrig/moneroocean.nix b/pkgs/applications/misc/xmrig/moneroocean.nix
index 25f27bd5063a2..2c69a3960f708 100644
--- a/pkgs/applications/misc/xmrig/moneroocean.nix
+++ b/pkgs/applications/misc/xmrig/moneroocean.nix
@@ -2,13 +2,13 @@
 
 xmrig.overrideAttrs (oldAttrs: rec {
   pname = "xmrig-mo";
-  version = "6.16.4-mo1";
+  version = "6.16.5-mo1";
 
   src = fetchFromGitHub {
     owner = "MoneroOcean";
     repo = "xmrig";
     rev = "v${version}";
-    sha256 = "sha256-OnKz/Sl/b0wpZ1tqeEXhNxNNmQJXBhv5YNnKu9aOVZA=";
+    sha256 = "sha256-TNiHvRLS+eAPHa+qbnVSAyWTPGJxdp9eheQamd4i24E=";
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/xteddy/default.nix b/pkgs/applications/misc/xteddy/default.nix
index 717ba66feb86a..481255393472d 100644
--- a/pkgs/applications/misc/xteddy/default.nix
+++ b/pkgs/applications/misc/xteddy/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   postFixup = ''
     # this is needed, because xteddy expects images to reside
     # in the current working directory
-    wrapProgram $out/bin/xteddy --run "cd $out/share/images/"
+    wrapProgram $out/bin/xteddy --chdir "$out/share/images/"
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/ydict/default.nix b/pkgs/applications/misc/ydict/default.nix
new file mode 100644
index 0000000000000..49370870f692a
--- /dev/null
+++ b/pkgs/applications/misc/ydict/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+  pname = "ydict";
+  version = "2.2.0";
+
+  src = fetchFromGitHub {
+    owner = "TimothyYe";
+    repo = "ydict";
+    rev = "v${version}";
+    sha256 = "sha256-zhjsXZsRk0UNijjqjGjZh4TiPxAM5p+ic3JMx2wrPeY=";
+  };
+
+  vendorSha256 = "sha256-O6czDfKD18rGVMIZv6II09oQu1w0ijQRuZRGt2gj9Cs=";
+
+  ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
+
+  # has no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A command-line Chinese dictionary";
+    homepage = "https://github.com/TimothyYe/ydict";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ zendo ];
+  };
+}
diff --git a/pkgs/applications/misc/zathura/core/default.nix b/pkgs/applications/misc/zathura/core/default.nix
index 000fc06bbf1bd..6398b88ffccd0 100644
--- a/pkgs/applications/misc/zathura/core/default.nix
+++ b/pkgs/applications/misc/zathura/core/default.nix
@@ -10,11 +10,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "zathura";
-  version = "0.4.8";
+  version = "0.4.9";
 
   src = fetchurl {
     url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz";
-    sha256 = "1nr0ym1mi2afk4ycdf1ppmkcv7i7hyzwn4p3r4m0j2qm3nvaiami";
+    sha256 = "0msy7s57mlx0wya99qpia4fpcy40pbj253kmx2y97nb0sqnc8c7w";
   };
 
   outputs = [ "bin" "man" "dev" "out" ];
diff --git a/pkgs/applications/misc/zettlr/default.nix b/pkgs/applications/misc/zettlr/default.nix
index b0d1b79509a62..d80c8d03bf43b 100644
--- a/pkgs/applications/misc/zettlr/default.nix
+++ b/pkgs/applications/misc/zettlr/default.nix
@@ -10,11 +10,11 @@
 # Based on https://gist.github.com/msteen/96cb7df66a359b827497c5269ccbbf94 and joplin-desktop nixpkgs.
 let
   pname = "zettlr";
-  version = "2.2.4";
+  version = "2.2.5";
   name = "${pname}-${version}";
   src = fetchurl {
     url = "https://github.com/Zettlr/Zettlr/releases/download/v${version}/Zettlr-${version}-x86_64.appimage";
-    sha256 = "sha256-lzXciToyUsHl8WV0IvdP6R2pYegL7/G04YPLb6gbCgQ=";
+    sha256 = "sha256-KP3lt0CweT1f/BR3IpnjwCqNvhFbrpz9KLg6K8OMs+I=";
   };
   appimageContents = appimageTools.extractType2 {
     inherit name src;
diff --git a/pkgs/applications/misc/zola/default.nix b/pkgs/applications/misc/zola/default.nix
index f6ed2daf8ec7c..24511096f1d4c 100644
--- a/pkgs/applications/misc/zola/default.nix
+++ b/pkgs/applications/misc/zola/default.nix
@@ -10,7 +10,7 @@
 , installShellFiles
 , libsass
 , zola
-, testVersion
+, testers
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -48,7 +48,7 @@ rustPlatform.buildRustPackage rec {
       --bash completions/zola.bash
   '';
 
-  passthru.tests.version = testVersion { package = zola; };
+  passthru.tests.version = testers.testVersion { package = zola; };
 
   meta = with lib; {
     description = "A fast static site generator with everything built-in";
diff --git a/pkgs/applications/networking/alpnpass/default.nix b/pkgs/applications/networking/alpnpass/default.nix
new file mode 100644
index 0000000000000..5cc0ac1cf05cf
--- /dev/null
+++ b/pkgs/applications/networking/alpnpass/default.nix
@@ -0,0 +1,34 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+}:
+
+buildGoModule rec {
+  pname = "alpnpass";
+  version = "0.1";
+
+  src = fetchFromGitHub {
+    owner = "VerSprite";
+    repo = "alpnpass";
+    rev = version;
+    hash = "sha256-hNZqGTV17rFSKLhZzNqH2E4SSb6Jhk7YQ4TN0HnE+9g=";
+  };
+
+  vendorSha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
+
+  meta = with lib; {
+    description = "Inspect the plaintext payload inside of proxied TLS connections";
+    longDescription = ''
+      This tool will listen on a given port, strip SSL encryption,
+      forward traffic through a plain TCP proxy,
+      then encrypt the returning traffic again
+      and send it to the target of your choice.
+
+      Unlike most SSL stripping solutions this tool will negotiate ALPN and
+      preserve the negotiated protocol all the way to the target.
+    '';
+    homepage = "https://github.com/VerSprite/alpnpass";
+    license = licenses.unlicense;
+    maintainers = [ maintainers.raboof ];
+  };
+}
diff --git a/pkgs/applications/networking/appgate-sdp/default.nix b/pkgs/applications/networking/appgate-sdp/default.nix
index 987f6e0c1ca28..7e4c5cfac888d 100644
--- a/pkgs/applications/networking/appgate-sdp/default.nix
+++ b/pkgs/applications/networking/appgate-sdp/default.nix
@@ -87,11 +87,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "appgate-sdp";
-  version = "5.5.3";
+  version = "5.5.4";
 
   src = fetchurl {
     url = "https://bin.appgate-sdp.com/${versions.majorMinor version}/client/appgate-sdp_${version}_amd64.deb";
-    sha256 = "sha256-qSo4JX/Jj+JkeetZIMw88MK7SzOgT8aNbQby2kJ91oo=";
+    sha256 = "sha256-7qfgUYD7uPb+ZEierREVfnHoGz0/b/J+hcsX/duDFWU=";
   };
 
   # just patch interpreter
diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix
index 7c0006f745c65..5d6df5dac0dea 100644
--- a/pkgs/applications/networking/browsers/brave/default.nix
+++ b/pkgs/applications/networking/browsers/brave/default.nix
@@ -37,6 +37,7 @@
 , pango
 , pipewire
 , udev
+, wayland
 , xorg
 , zlib
 , xdg-utils
@@ -82,6 +83,7 @@ rpath = lib.makeLibraryPath [
   pango
   pipewire
   udev
+  wayland
   xdg-utils
   xorg.libxcb
   zlib
@@ -91,11 +93,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "brave";
-  version = "1.37.109";
+  version = "1.37.116";
 
   src = fetchurl {
     url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
-    sha256 = "fL3vuCqUnzq38JD0bzM/DxLVb5P31iChbMVY2eax9RE=";
+    sha256 = "HoqmzUyYas5ho9S8ZeXHj+LuNspejuQ69B6HxuKXWtw=";
   };
 
   dontConfigure = true;
@@ -160,6 +162,7 @@ stdenv.mkDerivation rec {
   preFixup = ''
     # Add command line args to wrapGApp.
     gappsWrapperArgs+=(--add-flags ${lib.escapeShellArg commandLineArgs})
+    gappsWrapperArgs+=(--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland}}")
   '';
 
   installCheckPhase = ''
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index 6dd6d98c0efdb..0eca082db2801 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -39,14 +39,12 @@
 , glibc # gconv + locale
 
 # Package customization:
-, gnomeSupport ? false, gnome2 ? null
-, gnomeKeyringSupport ? false, libgnome-keyring3 ? null
 , cupsSupport ? true, cups ? null
 , proprietaryCodecs ? true
 , pulseSupport ? false, libpulseaudio ? null
 , ungoogled ? false, ungoogled-chromium
 # Optional dependencies:
-, libgcrypt ? null # gnomeSupport || cupsSupport
+, libgcrypt ? null # cupsSupport
 , systemdSupport ? stdenv.isLinux
 , systemd
 }:
@@ -63,6 +61,13 @@ let
     url = "https://chromium.googlesource.com/chromium/tools/build/+/e77882e0dde52c2ccf33c5570929b75b4a2a2522/recipes/recipe_modules/chromium/resources/clang-format?format=TEXT";
     sha256 = "0ic3hn65dimgfhakli1cyf9j3cxcqsf1qib706ihfhmlzxf7256l";
   };
+  # https://webrtc-review.googlesource.com/c/src/+/255601
+  webrtcWaylandScreenshareCoredumpFix = fetchurl {
+    # PipeWire capturer: check existence of cursor metadata
+    name = "webrtc-wayland-screenshare-coredump-fix.patch";
+    url = "https://webrtc-review.googlesource.com/changes/src~255601/revisions/2/patch?download";
+    hash = "sha256-PHGwEoYhMa+ZL2ner10FwdGUWUxsVr+HWuZOAEugYDY=";
+  };
 
   # The additional attributes for creating derivations based on the chromium
   # source tree.
@@ -154,8 +159,6 @@ let
       curl
       libepoxy
     ] ++ optional systemdSupport systemd
-      ++ optionals gnomeSupport [ gnome2.GConf libgcrypt ]
-      ++ optional gnomeKeyringSupport libgnome-keyring3
       ++ optionals cupsSupport [ libgcrypt cups ]
       ++ optional pulseSupport libpulseaudio;
 
@@ -166,7 +169,9 @@ let
       ./patches/widevine-79.patch
     ];
 
-    postPatch = ''
+    postPatch = optionalString (versionRange "100" "101") ''
+      base64 --decode ${webrtcWaylandScreenshareCoredumpFix} | patch -p1 -d third_party/webrtc
+    '' + ''
       # remove unused third-party
       for lib in ${toString gnSystemLibraries}; do
         if [ -d "third_party/$lib" ]; then
@@ -271,7 +276,7 @@ let
 
       # Optional features:
       use_gio = true;
-      use_gnome_keyring = gnomeKeyringSupport;
+      use_gnome_keyring = false; # Superseded by libsecret
       use_cups = cupsSupport;
 
       # Feature overrides:
@@ -283,6 +288,9 @@ let
       enable_widevine = true;
       # Provides the enable-webrtc-pipewire-capturer flag to support Wayland screen capture:
       rtc_use_pipewire = true;
+    } // optionalAttrs (chromiumVersionAtLeast "101") {
+      # Disable PGO because the profile data requires a newer compiler version (LLVM 14 isn't sufficient):
+      chrome_pgo_phase = 0;
     } // optionalAttrs proprietaryCodecs {
       # enable support for the H.264 codec
       proprietary_codecs = true;
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index e8d9a13f9ac74..5bd24faafe409 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -8,8 +8,6 @@
 # package customization
 # Note: enable* flags should not require full rebuilds (i.e. only affect the wrapper)
 , channel ? "stable"
-, gnomeSupport ? false, gnome2 ? null
-, gnomeKeyringSupport ? false
 , proprietaryCodecs ? true
 , enableWideVine ? false
 , ungoogled ? false # Whether to build chromium or ungoogled-chromium
@@ -46,7 +44,7 @@ let
 
     mkChromiumDerivation = callPackage ./common.nix ({
       inherit channel chromiumVersionAtLeast versionRange;
-      inherit gnome2 gnomeSupport gnomeKeyringSupport proprietaryCodecs
+      inherit proprietaryCodecs
               cupsSupport pulseSupport ungoogled;
       gnChromium = gn.overrideAttrs (oldAttrs: {
         inherit (upstream-info.deps.gn) version;
diff --git a/pkgs/applications/networking/browsers/chromium/get-commit-message.py b/pkgs/applications/networking/browsers/chromium/get-commit-message.py
index 85ebb8a7b9350..45f4282582f5b 100755
--- a/pkgs/applications/networking/browsers/chromium/get-commit-message.py
+++ b/pkgs/applications/networking/browsers/chromium/get-commit-message.py
@@ -38,9 +38,9 @@ for entry in feed.entries:
     else:
         print('chromium: TODO -> ' + version + '\n')
     print(url)
-    if fixes := re.search(r'This update includes .+ security fixes\.', content).group(0):
-        zero_days = re.search(r'Google is aware( of reports)? th(e|at) .+ in the wild\.', content)
-        if zero_days:
+    if fixes := re.search(r'This update includes .+ security fix(es)?\.', content):
+        fixes = fixes.group(0)
+        if zero_days := re.search(r'Google is aware( of reports)? th(e|at) .+ in the wild\.', content):
             fixes += " " + zero_days.group(0)
         print('\n' + '\n'.join(textwrap.wrap(fixes, width=72)))
     if cve_list := re.findall(r'CVE-[^: ]+', content):
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json
index cd525f8d2adda..8abd8fbdad5a8 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -1,8 +1,8 @@
 {
   "stable": {
-    "version": "100.0.4896.60",
-    "sha256": "1p7zggnhsz9gj3zil0nyas4ym5bd94vs0z6mdg7r1l0s0vrsaphf",
-    "sha256bin64": "07wavs9r6ilwx5rzyqvydcjskg6sml5b8m6mw7qzykvhs8bnvfh5",
+    "version": "100.0.4896.127",
+    "sha256": "0kgq38dy9mjyc44556i9gxhlsgd7dfvv1xi1ibk92b4p7i2y6427",
+    "sha256bin64": "0mm6lix14bf4ca440dyccnq54z0qvn5c886ghfyzy2q0bqzbq4nh",
     "deps": {
       "gn": {
         "version": "2022-01-21",
@@ -12,16 +12,16 @@
       }
     },
     "chromedriver": {
-      "version": "100.0.4896.20",
-      "sha256_linux": "1d3g43s5adn1vs7iv5ccp0f376qvnvf67mhid7kxkysnqv55bxdw",
-      "sha256_darwin": "129vw1ablb6xyr7j30zxkh7n835wi82ksd8c5m11mmdnrmrcdabv",
-      "sha256_darwin_aarch64": "0zgnisvdvcc726q22jn1cyfg41zz1af5l3fy3m81jlfhph2ibbra"
+      "version": "100.0.4896.60",
+      "sha256_linux": "0q9ddwhccd0jmzi8jksxlfjavmm913c9bmb4lz1ahxplsnxd8z31",
+      "sha256_darwin": "0q0ikhf5pkbrqln91fklbbfmqi33nfcjdg5dm7zb66b4alxwwas9",
+      "sha256_darwin_aarch64": "1vf3s0gq61riqsv85pr6xj0c2afdnv1b2w4gp2bwlfq4ffkfq38y"
     }
   },
   "beta": {
-    "version": "101.0.4951.15",
-    "sha256": "1gm70mz6gzildh1g082q4dg5q9namm9kvxfj5qrdcj67gvz5m66y",
-    "sha256bin64": "0z2rx7mw9wg5ly8wmxkflk8f9gifq4cxqvi224v9dr11qqj8gwm2",
+    "version": "101.0.4951.41",
+    "sha256": "0dzsbr309n70jg7fpq2qfnrgcm4553akvdmnzhss1fc85s467609",
+    "sha256bin64": "1jbj5cykxamf32c1s4gsid1wxcsdf4hng2d19q9h7b2ashkvvrbi",
     "deps": {
       "gn": {
         "version": "2022-03-14",
@@ -32,22 +32,22 @@
     }
   },
   "dev": {
-    "version": "102.0.4972.0",
-    "sha256": "1aihdym7h8sd52wiybnrgjrd618f3yby4bpbkc26xyrl8gviz31d",
-    "sha256bin64": "0mb67cfr397aclkiy0v9xqga07c166qdylq257k2kmhj7df1gcvn",
+    "version": "102.0.5005.12",
+    "sha256": "11n03hz3g8h7srywxrjwrdrxybdjvmdjrnigjlrwjkydprg1l7ab",
+    "sha256bin64": "0hc56a98ikkbgdw36dpz9k6r15jmjmnm7faml8z59vixxlvkrw7y",
     "deps": {
       "gn": {
-        "version": "2022-03-29",
+        "version": "2022-04-14",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "e39d5251c25155b9dfdb96adeab31b795095fd3b",
-        "sha256": "1clr0f847rmwwpmsl9zv4q6rw1shn09my775666v480szpahj9pk"
+        "rev": "fd9f2036f26d83f9fcfe93042fb952e5a7fe2167",
+        "sha256": "0b5xs0chcv3hfhy71rycsmgxnqbm375a333hwav8929k9cbi5p9h"
       }
     }
   },
   "ungoogled-chromium": {
-    "version": "100.0.4896.60",
-    "sha256": "1p7zggnhsz9gj3zil0nyas4ym5bd94vs0z6mdg7r1l0s0vrsaphf",
-    "sha256bin64": "07wavs9r6ilwx5rzyqvydcjskg6sml5b8m6mw7qzykvhs8bnvfh5",
+    "version": "100.0.4896.127",
+    "sha256": "0kgq38dy9mjyc44556i9gxhlsgd7dfvv1xi1ibk92b4p7i2y6427",
+    "sha256bin64": "0mm6lix14bf4ca440dyccnq54z0qvn5c886ghfyzy2q0bqzbq4nh",
     "deps": {
       "gn": {
         "version": "2022-01-21",
@@ -56,8 +56,8 @@
         "sha256": "1dzdvcn2r5c9giknvasf3y5y4901kav7igivjvrpww66ywsj8fzr"
       },
       "ungoogled-patches": {
-        "rev": "100.0.4896.60-1",
-        "sha256": "02q7ghxynkgkbilcb8bx8q26s80fvd4hbc58zq74pnzpmn7qi342"
+        "rev": "100.0.4896.127-1",
+        "sha256": "192kyhr0fa97csciv5kp496y9zwcsknwlrmdr4jic3rvv8ig1q9y"
       }
     }
   }
diff --git a/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
index 25a81d11efafc..a294a87080591 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
@@ -1,985 +1,985 @@
 {
-  version = "99.0b6";
+  version = "100.0b6";
   sources = [
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ach/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/ach/firefox-100.0b6.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "0bb4605a97661502cb23fe2ebfdb1a31831f8ca015349b3105d1245fcaa5eb69";
+      sha256 = "6b5ac2e733e44616405f31b16bc995f945740477d00988ce5dd4f16c4ec74085";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/af/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/af/firefox-100.0b6.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "564fd8895c6fa6aecebd5a7250bd73df45a6e51f90845d9597e59cd9175b6c2c";
+      sha256 = "5b25ad2870b33002060f493368f79921046f5b19e4adf0c5e1836b7d00347790";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/an/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/an/firefox-100.0b6.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "76035e42b93995e6cda0de737981760a0025013bc3330142b95ba7329d54153b";
+      sha256 = "9fc4a88d9216ba0b5979e939092314f135da9e33a3d8df7cadcf142f19b0b71f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ar/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/ar/firefox-100.0b6.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "31abbbdf4378559e6b612fd3b0167bbaad332edc47d6ff67e8d9aa7e01130808";
+      sha256 = "23f33752d3df64ee98cdbdc569b8cb4cea2dbbae71810a3a14a82a6361f97b9e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ast/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/ast/firefox-100.0b6.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "1c4a2c370c3f566823c722082a3a9f149050cb7a891f3a1f21b7ca8ec899ca92";
+      sha256 = "a5d357ed9b58fe0a2b7c95e24cb18659c7aee29cb1cda0071b7afdee9c3ac9eb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/az/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/az/firefox-100.0b6.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "b1d0effa84614c985001705630da49b70f09e91be3715795fc18d926303b6b95";
+      sha256 = "1191a7c0a3222d55a605bbb5f25d064414d08b9bfb6dc6ad74dd1de357177701";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/be/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/be/firefox-100.0b6.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "d0ace001eff838f8dcb80090a193307e143a5c1f3b1dac143ded5af3fecbdfda";
+      sha256 = "69445ca3cf31d63162ddd0aab1538655a08e325aad57a3d343ac310193a942a3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/bg/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/bg/firefox-100.0b6.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "784d6029972a843829783581796263899371c777cf669f0e4f6978f35a8d6199";
+      sha256 = "f2ff0a6bf22b9ed16b0656d4e0848c509cee2de9a638d556500909e1352ae5b3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/bn/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/bn/firefox-100.0b6.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "7cdc3a6f35c2a56b87a58eaf3112148c51b2d2d0fe5d9afc5deccfb2d2269b2e";
+      sha256 = "1fbfdb8d6f22567eb1112c63ab6192cb439b9d2cd5e57c10401c76f9f9cd215b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/br/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/br/firefox-100.0b6.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "abbe12c9d887ea98d85479105bf2640bdbe3d295def41b626d3d8feef3627b36";
+      sha256 = "e05895d70c72aadcb77dc6d84a6a054a8410b29e05d5da6eeac0fdee1b66b130";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/bs/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/bs/firefox-100.0b6.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "fc1076c2eda5623869a3af5c850fb51cf8611501f51984c85f690b4c545cc93b";
+      sha256 = "ba125689cbd845e9bf8df940bbfd0796326939ba9b45d4bc0c0a8ddf64dd6f61";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ca-valencia/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/ca-valencia/firefox-100.0b6.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "d328055c61c96c92dd05989c23a3f8f49b36cb755f72118c21331f986ba3b44d";
+      sha256 = "37a5ba26d10cbc2aa8222a2f19133a12710adeb389234ff53a91b43ddd5e901a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ca/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/ca/firefox-100.0b6.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "6a020e56c5f4136deff38f07d94b516971af1a31a804384a50396dbf6241877e";
+      sha256 = "5f11f3a11b93f06235981200b690cb9aaf95ed8d459ea8e1d6ac7c6a73d9d9e4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/cak/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/cak/firefox-100.0b6.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "c6298bdeba82a637bb3903aaf73b9de9f0a3ce4ec22637b1ee1340273b7e36af";
+      sha256 = "1d4a103b8c2c601b908a635d2b5edaec068c1a2e644e1924022a94e57e1b2f6a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/cs/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/cs/firefox-100.0b6.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "1facd79fe087052af58205d2a0a9acce68a1d9bc58d1a3bd3e49b740f6e51647";
+      sha256 = "358b2c3c3c5a9945b35f1c71eadaf7d5305d214ecfe37fda811fd37d326dfd35";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/cy/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/cy/firefox-100.0b6.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "e7305badc55114c4a39edc317202338b3e61feba9844fc2cd8edc1518486736a";
+      sha256 = "bcbab842e30d22f7d646d2494451e0e676c40c16c1e3532b4c6cd6eb501fb7c2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/da/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/da/firefox-100.0b6.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "6b1d2403e1e74c97c763476a128c56079d546967c87f1b225ac790d9acb6940d";
+      sha256 = "3b462ea57616171ebe43e218d7fbcc8c45d508fa2b91490d5b107842bf936d25";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/de/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/de/firefox-100.0b6.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "c8d01b9a1bbcdeb1fa0fa63ff553209d095280ebad4eb03efa47e029505b8204";
+      sha256 = "067a586989c84a280366c6021daf270652d443465b63d03e0fb9ff02eeb3f3ee";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/dsb/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/dsb/firefox-100.0b6.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "bea09c23f3099c85e415bb05916ab9e3374f78e897e2b8549fb9f67895b7c052";
+      sha256 = "42621cd070dc172b08bdce256c91d6faeede97b116b353f1edf2354c0e37ec3a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/el/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/el/firefox-100.0b6.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "bd740ab9aaad78e4b16e42d610ea1b914db95e2f8396f0e9c4803e38c9810f20";
+      sha256 = "f079ccc06590277ccf09d4e34b73d3b363d79651d6e2a07d7e127a42ab552bac";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/en-CA/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/en-CA/firefox-100.0b6.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "acf5c9da684d5f7bb5b25e5fbd62d5dfafb1a5f33bd6c7baa385a37967e516a1";
+      sha256 = "e3f239da659c77662a10ba061f806d615f9a57fe89d1207ac04cacc603a9a587";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/en-GB/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/en-GB/firefox-100.0b6.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "76cfab3fb29274bcec47ce72e88f783668653d3f8ea4ad00637bdd7ad5d32364";
+      sha256 = "e41640386bbceef99290458576da3272ea400e78641cbae73ece0e07045396ab";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/en-US/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/en-US/firefox-100.0b6.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "798f68125a37ac1e60d72dff3a773cd167075a58d523d7d9659cd5fb511e2dcb";
+      sha256 = "7f5888e7c0480f4f1626943f1878945166179ab94d995e23d0b8f5eb9d83ab4e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/eo/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/eo/firefox-100.0b6.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "0b65dc59679b42a298484d3901f3f47d6073f08e260a792a6e80d9c5a0e6ad0b";
+      sha256 = "6c07749b176c7c533a824357da81a42ef10fc78f09b58e7a090d3e36fd77a6d5";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/es-AR/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/es-AR/firefox-100.0b6.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "3a894741998ee1a2adb6def1c8d548b2c5fcab8fbea655a013dbeef9a29ab228";
+      sha256 = "2d23cfea40e6948fd330b2e72f40edab597e5261fb9abcbd539d0b9f513fd946";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/es-CL/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/es-CL/firefox-100.0b6.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "1964534e196d426a9d6dbe664dc16790f010214cfba85e98f5df728e110e0a74";
+      sha256 = "eef75de09e6fa7d21ca4aa799ea4b279dcdeefa79d9b4ef7f3b5266c90c2a8ff";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/es-ES/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/es-ES/firefox-100.0b6.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "32b21ccb56fbe2e46aba0e21c417e2a7d3404a0a3487186c75d042fd84c5033a";
+      sha256 = "31d985ab2af1ba15fc6b41580fed4a06fa33fb8cf3dfcf96b1a5ea4e361058f5";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/es-MX/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/es-MX/firefox-100.0b6.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "d70ff15a4cced1028433e603151af021be98d1026322203f0412605685611e5d";
+      sha256 = "1fdc9e77eadf9abb55224bf0db1e555eb99f4a7c525f6021fe226ea7de9db026";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/et/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/et/firefox-100.0b6.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "df844133edc74d396a2fe66b0a71efda2c4797ca7110a12c4c7e620cbacbfe8d";
+      sha256 = "2df8328fcf9f10b84b2110f31ec32a5dce7054845c37f7e30b023daee4701322";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/eu/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/eu/firefox-100.0b6.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "1ca8ba1a7ba29a0c21d7bdf5cbb046fa0e145a9bdad5debd93d121b512a060a4";
+      sha256 = "30037fbdb33703b894bb0e33b192d23aa1b67ab9b944b1381d27f95e0c44bdf9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/fa/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/fa/firefox-100.0b6.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "a4c223f683bf75c96650d939c56aa17bfeca975ba8863e44dd5ce0449b436b3e";
+      sha256 = "37af6700e54f98541fe1f703c13ccad70a72bb7e28200762bf636bd3494b443d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ff/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/ff/firefox-100.0b6.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "6b165789213fc3f9c3f46457a04974e3c718b2c0aebd44c57c7bf8f41c73687b";
+      sha256 = "3612950e42cf9532bb5be99f9f73e2f6b480c58570b1092f8eb337aba1257234";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/fi/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/fi/firefox-100.0b6.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "eea67a8d94f324a9ab74caae5a7755f9505781ff690760a06a62ad034ba76bd5";
+      sha256 = "a8a2bace3af643c6b82bdfb043f90d4cd6ec10abfed6ada230786ef7eaaf9ee4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/fr/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/fr/firefox-100.0b6.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "d4cc1a70f8d020870ccac0b023574b9c0f39fd44bbbcfd8a35f6c688183f2a9a";
+      sha256 = "296f91da1aec6481bdfecf311db4560268082d6f75f0354c6b09ab64494c211c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/fy-NL/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/fy-NL/firefox-100.0b6.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "df49ee1a9db407819fcc7baa9c6bc9c6fc9ab2c2b57b08d85c9478f1b0aaf6c0";
+      sha256 = "3bdd5b38483c8a8fdab13767ad8f38d60e9c12359740d8017ec8a7a83338e99d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ga-IE/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/ga-IE/firefox-100.0b6.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "e7e846a95ba695a8a3edf233ad31117f4d35d4942784c5f6c5a1ebed7f2f8e4a";
+      sha256 = "5f734b553ce52eaa91bc3ee1ac2afea09aefb35e886ba68d56cf3b1e55dfbebc";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/gd/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/gd/firefox-100.0b6.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "48ef5fa12ec7415ad23a5a40f2f882147e03ecc074b33b173f413e53cc0cdde6";
+      sha256 = "c2b3ef9590646143e48ffebc75d7f9c4a688ae0d3c3a648683a5f7a02aaee74c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/gl/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/gl/firefox-100.0b6.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "b44500b87f3b2219ba10e06bd937ba06784fc00085be12a16f69fe26f7733317";
+      sha256 = "513ca5b29b690986d0aef335cb98406d599a18ee44ed2b8fdf7687ff3dc87ba2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/gn/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/gn/firefox-100.0b6.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "0e521a61d44d1058ceb566ae58272e41f0aab7f2267555781bb3235ff5e3a59c";
+      sha256 = "4a5974953f144ffff20a946073aa8891225d80e3dcc405d0230bc601973e8634";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/gu-IN/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/gu-IN/firefox-100.0b6.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "2179c82d7763294f5adedb8c905ed5e009a4d3d176fae58c7503404015214c51";
+      sha256 = "a2e780ccad66a9a741551b5f7425be3e91f5a225a50e39ebf5770808fac484d7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/he/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/he/firefox-100.0b6.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "69383070d17f2ae68363e8a29efc53e2748b8f784137c854162ec0132295a9e1";
+      sha256 = "093fef7512fc82efe8aaef9108bf84ab7a9730e2fa94b8092206c0804068bcd5";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/hi-IN/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/hi-IN/firefox-100.0b6.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "71e57a59cfc523d5c1c73c9b5547b3247170865a95022e5bd3098967c3e6002c";
+      sha256 = "1b6955622ff8fda11d439dcb4f425a3d84c16c49ee30b1e6eb246555fa07bd09";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/hr/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/hr/firefox-100.0b6.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "9ea82b192336e83c7ac450dc7068f2730c031f43633a87b7fa554651cf64a912";
+      sha256 = "571c7bc2b25002094425eaa8878aaa4b339027a5932d5a073b23fa7d3cf9c945";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/hsb/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/hsb/firefox-100.0b6.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "e3814f823f3bde2812751e9dd6a2b51a8861952eb04cb845d543a9252501dbba";
+      sha256 = "7443ddc6143f466712de34ebffb4d41633aec8c0d7b253c3008f68b600a59b3c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/hu/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/hu/firefox-100.0b6.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "e647f86de2e7687e23320aa0f36d96743f5da2cf43b2d83444a41506d13face9";
+      sha256 = "7413002d74a0c2a0dbc19f783e84fb79a71c73fb28034ad4894a7d64d1745b03";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/hy-AM/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/hy-AM/firefox-100.0b6.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "21cc172fad6136a17df0a6ae4c6e90ec72a02db744cfcb5252cedcf48223e543";
+      sha256 = "a8169b877a7f2e85bbf363c5f0b6a05b28f2aa948689535b2b608cdb8d4c5af5";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ia/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/ia/firefox-100.0b6.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "5f0c85a36ec40ef57cfa2bbbc1a4663ce10c8659e0d6ecad67ea993186c9cbb6";
+      sha256 = "54245a95072f8b98a6d556ccb79547d56291b9f915f7e5723f49ff97a1bc1098";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/id/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/id/firefox-100.0b6.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "e6671d2ac6b63ea4f2a84d1d0e89038ef1030d85e84d6b47c5b878ddc8d96b60";
+      sha256 = "43fb95f81026dfae3b889d085b2584cbee7f6b1bec6edd0378d3965b056f8c8b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/is/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/is/firefox-100.0b6.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "5bcafb210fa3aa06d56f17972d94c17faaaa2937948890b993bbc6c9bfbeecad";
+      sha256 = "79e94ad99e19f325915231ce35fa741ed617c5595d5a2d1233ff0b2f2cf20733";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/it/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/it/firefox-100.0b6.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "3c14104a82a312324c1d42644eca6f80b7375f946a42edcb0a23f8a824bd0eb7";
+      sha256 = "0f2147837a3b3d90cddd387125a8579cc576e1613a520fab8265de36ba1039c2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ja/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/ja/firefox-100.0b6.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "00713bc8710add3312294aa755c881701ebbb2d00e1f5f242ca12d102ab6f19b";
+      sha256 = "b755262db8331612cc447c6c5c944374338cd7d52fad732803c1b2d3b8744921";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ka/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/ka/firefox-100.0b6.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "ba6985797ef85bdccb1f81053456baddbe2cfd9e1097e42b20617270f681c1ad";
+      sha256 = "3dffe30c39f3fee7ef4fdd0f02e619a79f1d67eb3b49efdf35838090e0c03bd9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/kab/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/kab/firefox-100.0b6.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "8be17598d305e257005ba0f9ef2f7053ee7e79bf3c1b4caade77c8e5a7e8a57c";
+      sha256 = "c675eaf355c484362f3b9586a30eac9362452f548d90fa8f70ede88f33f7b30f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/kk/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/kk/firefox-100.0b6.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "7e142151f26355256d2923b183fa1d225e3ed26026cbedf9abcebef301dc1045";
+      sha256 = "cefa5aed2f200c3ebb263695c4192fd16b73861edb20085e956332f9f9c009ab";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/km/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/km/firefox-100.0b6.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "0df166d5a55e52ad60f8873afff5c1c43816ef99b56e1d817b4d4c29f173def5";
+      sha256 = "02f6a77a412311af0ea581fafa12826bec93c333c14ff6d1f9da0dd783c8aa0d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/kn/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/kn/firefox-100.0b6.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "193c7b709c03212ba91ea99da00c6b1c53edebbc9390d7321bd9815e5ced8233";
+      sha256 = "e6dedf44d9a0f1a8d379b8f07add326581b06223b335935f81f7c9a442bac2b0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ko/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/ko/firefox-100.0b6.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "d265a984bcc6a381f715eff5e2501acde0c8793b111e15877f7d4e9086ddcf10";
+      sha256 = "022550ce534cdf4ba489bbcd553052c535fb0ee908155b728718619f33f95630";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/lij/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/lij/firefox-100.0b6.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "4a8327447982439a2f9e5ecff39b77ddd2bfdcb081d9b6f89848f2c93db3b3ca";
+      sha256 = "f2e075a6ef35fd8c802cd929f9c81043d9221f947269ca13be695b58edd603b8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/lt/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/lt/firefox-100.0b6.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "cb2a9545762247192f909c1600097b1198fbddfed1c383adf5dfa9666ddc0e80";
+      sha256 = "4ac54a885a81db97df5940cac5429c59442de591fba560c9608cc0f9ba1df74d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/lv/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/lv/firefox-100.0b6.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "6ed249ade30c7d2d5ff290c4b65d3eaf3df4e49e112412cb3153da15bcf23fcd";
+      sha256 = "413dee96d7535b5a276a34871db10b37ae9b6ed233df8a81db0d9080b1cc2ae9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/mk/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/mk/firefox-100.0b6.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "56af16c66d20eaae2d6b487c3bec4f438d21effd3e3b1582579bb9c1836956d0";
+      sha256 = "9fa2653fb6cbd77e874b1306c9c070097c4728deec0972edf9b7b03aa79a2b9d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/mr/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/mr/firefox-100.0b6.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "fa6f5e496fdac7eda06220a423683f608d6c49b0e3caada52b9fd903b5ebcbe9";
+      sha256 = "e26dc9319727f9f7c0fb98efae44d89228499b52edda8f02328586bfae4c79a5";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ms/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/ms/firefox-100.0b6.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "0820d7fcdeb7226d067f920e7cb8a0bb3bfd98ea931d468ae58ed54e074dd1f7";
+      sha256 = "0001655c4a42a6c113f428315200b5cd1eee08cc417fd82464db87c322f5e949";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/my/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/my/firefox-100.0b6.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "20ab8faa3a4aa4b4f94f6c057d4fc9602201a55482d492bc6dd7acc5173364a7";
+      sha256 = "78fcac093123a0b4b6ebffb1e9f10ee5906d526b96d5be1b249a1e60acc4fcb9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/nb-NO/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/nb-NO/firefox-100.0b6.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "77bf24610d6ad64859c83125909b70b3dd768e90e563971461f2c18fa2cd7693";
+      sha256 = "6c218dc369434feb3ff30840cd940c19e10d3e900325246445fdb7113c22c284";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ne-NP/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/ne-NP/firefox-100.0b6.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "fe5477509d83a14875e0409f99e2336abba237da75d1e56d753e27b7d1016c9c";
+      sha256 = "9a1a9a2380ebc3da9035066bb212b14b1b8bb6fb80feb6ed220cad1a3969ca6b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/nl/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/nl/firefox-100.0b6.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "3b67159e8d34c836d5367a2e17b54bd2aa274e1f602ae42649afc2ba2fa1429f";
+      sha256 = "6ff75975cb1ba028e78aad213837b17fe0b06e5f522996b3b9cd450beab24b51";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/nn-NO/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/nn-NO/firefox-100.0b6.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "4faf2904a8b9a0c315c222d7e810d2fb3e24947dda1e006ddd1f727d2f9f967a";
+      sha256 = "911e765ba62cfc8d69d7e4d68f1a5d44a1b311400731a3593e98ad72516c47dd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/oc/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/oc/firefox-100.0b6.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "1dfa10fd1d9f958d487023144b7fad8ca8d1e528954f11e28509b7e22e48a341";
+      sha256 = "23341acf2319454172a718a0123fa15bc9367028984449c7a2cdb50644a618b7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/pa-IN/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/pa-IN/firefox-100.0b6.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "e6e4cc03a47ab8ff0546457b2ee0b55b8702463ed5666c15c0d2d98716fa84d2";
+      sha256 = "bae2060e37bd636ffdab3d3f84b73078c4dc78d7ec7eb7bb9504be4dbc3398bb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/pl/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/pl/firefox-100.0b6.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "525023c756ff0a0eae303c02ef9b7155fdad5f0f41bc4e539be5ca21d1af0ceb";
+      sha256 = "cc397c80e75d00507fa6e170ec43df337450796c829e44d518523b871e33f585";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/pt-BR/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/pt-BR/firefox-100.0b6.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "1a8070c38035f97ed771b02e59b3c2b0ef0073560c8ba285be9779fd4e99b61f";
+      sha256 = "2bcb44821f106ad7478fe7b61c7952c20be135a2efe1185d91123930729f78a4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/pt-PT/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/pt-PT/firefox-100.0b6.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "ea356edfa8b398ea16719993cf05e65b5c63b4d2c4e589a9a26814ae275e4be2";
+      sha256 = "7f4c5713972e5bca35b891bd850fd90fcf60d254ebc15435e5b814a212428b44";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/rm/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/rm/firefox-100.0b6.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "f07ca7d4233860a6271eaa972358bd05b834c7f56c4b64d45eb9af72bcf2dd9f";
+      sha256 = "67316b932226848b73a95687e6d218983d8056a966771c3bf16344f158578a53";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ro/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/ro/firefox-100.0b6.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "fccb8f523251dba30a73f6ec9259113142514b6d4657f63b88f5b9d9e8a01923";
+      sha256 = "7e61a6ce962f1ae0a74ff7a29b6edd7106fe95e4c2df399c22a17f1cf4d0dde9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ru/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/ru/firefox-100.0b6.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "d87928af8f4a0b28abdcd0386755a3f4f70d7e17e455fe5913b1e177c3edff2c";
+      sha256 = "bcad404db75ebac101f503fb793572ac010219f41c6716d33cec0552821bb281";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/sco/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/sco/firefox-100.0b6.tar.bz2";
       locale = "sco";
       arch = "linux-x86_64";
-      sha256 = "de3bda2032217c56213f64b31332e8e6ea9598c7f31f3dce1a7b136c40c3153d";
+      sha256 = "4b01c6ae78219c122ae455627b24594966be61d335dcca8e8547784e8050051f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/si/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/si/firefox-100.0b6.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "22dbdccec8073bd1d83cc236fc563aa97a3607a92e9b3908d4c8c0307dca8b08";
+      sha256 = "5aed65aa84e19c8a270cbf6ad3284c23c83dbff841b4639a15af6cdd9148560f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/sk/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/sk/firefox-100.0b6.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "d5f73c93ef57cd600a2c4269a99a498896b580ec99b549db8b0ee1537a644bb1";
+      sha256 = "a06083cf85f88232898d99dd0174e7999c3e65bc8f893c144775722975410235";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/sl/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/sl/firefox-100.0b6.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "12459b203b0de94241b243b07b9f54e7ae612f7887581c5cd3ac7ca2a08a54d9";
+      sha256 = "fce1013364e0f49f9cf56b4d50be3f17ec92d4dfe77a0ba6672404abbfd954e6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/son/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/son/firefox-100.0b6.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "2d44c84feaa5c5e3595055289f84f320b447664d01c653b0a3b50f1da24b1a78";
+      sha256 = "be37a85ae43d646b5b0249303c65d6f0e3c7e15b65986da7e221119d3b8537aa";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/sq/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/sq/firefox-100.0b6.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "fa3f9724380818a71d895252631b354ffb692f35679eb9b8ffa5b2beede8ab61";
+      sha256 = "dbbcd4da798dca36965a408f74deef86001cdefdbeedd93d3d5c8c34cfd5e4e6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/sr/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/sr/firefox-100.0b6.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "c2e5ad218b8cbadfda7c455266e018a6eaf9b450a905e8a73b01d02b7efed608";
+      sha256 = "cb8a4d3af1f8e5af4c6121afaab85eb51239d0a98e9caae0e87df435d9d746ad";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/sv-SE/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/sv-SE/firefox-100.0b6.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "12060ac843f03a7544db8631c7f53bcd0cc6fb15d62cd997b02a83f0560722aa";
+      sha256 = "941b3175289f26cc8102c5c436a477cb04af6a35e15861d2473d55b3dc36a04b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/szl/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/szl/firefox-100.0b6.tar.bz2";
       locale = "szl";
       arch = "linux-x86_64";
-      sha256 = "71ace92d020f3fbd1d5e223dfaa01e3a53ac625ba5ecf074153aad8ccb640ede";
+      sha256 = "48fb048a32877082ff1511484cc1eb7847198da4af366c136bcc260879e30970";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ta/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/ta/firefox-100.0b6.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "6ace267aab85845babad8b11b68e154e1128b920ed16b8b8d011d53f6dced16c";
+      sha256 = "16ad13edf164a8867a56dcd59e4bb8c09d2cb3cabbab8c2d7e0a4ed0c02db587";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/te/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/te/firefox-100.0b6.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "e381faff48999b63b4981695e7c80bb946b44503ab5275344f12b7005ed49ef3";
+      sha256 = "9c4e9fb72917b2e7b6abec7872366d687874af3c4e0d2acd862363120e3ceae0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/th/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/th/firefox-100.0b6.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "6c2ddea1c0ccf0521b9b647827569b78ac2143163895e67476051f8496011b66";
+      sha256 = "2a14cee27f951ec1e9e6e342cafee68a18513ed1b4d210e0490862296b12f0a9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/tl/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/tl/firefox-100.0b6.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "9d949c9c61922756d0f2dbcff76906191d438d161c74fbe7d702c7372c11b5d0";
+      sha256 = "dd1bf5dbb47615dc2f3a473ab541686fe53cd7d3ac3e5bedab37ce436db5fe07";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/tr/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/tr/firefox-100.0b6.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "88763e4847b865603a7d953d54b86e6a053d2476209b4046bcb09149275690f8";
+      sha256 = "eb9b3f14fa9c2c57784f1e37e198b9eb4bdb8cd3f11ebb52b2a51ba47cc10ccf";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/trs/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/trs/firefox-100.0b6.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "b6e7aa724a06f85e4eaae7e1c55e3ed1ec9a6b5664150745a257bd3f63310d53";
+      sha256 = "d39ad94019221ecb2cc895ca16d71f4d461a52eef741b5728447ab054ffe12aa";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/uk/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/uk/firefox-100.0b6.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "69b200c0c4c92430f188ea12bf5e60aae18203a76e61cc163738d46c3627b137";
+      sha256 = "9fbc6fa34062cb64fc6c5eb09df6e3736865e09124efd465c6b30c1bc8329494";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ur/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/ur/firefox-100.0b6.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "330bb00cc0c0882a1e8aa06fdf7d283eaeef04500a9bfccef50f7b2ab8becf81";
+      sha256 = "ca1ed7e7746e5a2085328158185715b7b850e8129adf77b1d6f4e90580563563";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/uz/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/uz/firefox-100.0b6.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "a9b7087c1deec3aedcc2c279b135b113e79739a28e31ba6cd090541505e5d9e5";
+      sha256 = "ad05af6f178de687697e7f98b18a64c2cbcc1bad2b167d5bb35e13ac57d03880";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/vi/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/vi/firefox-100.0b6.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "76b034ed53b8c99cf7909a6a5651627fcd9cdebd7f8ccdbd3d2286cb19dc7eaa";
+      sha256 = "22b133203f3bb3c901c225e1275215c0c7e3ab5714e640d218532a9db8c636eb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/xh/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/xh/firefox-100.0b6.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "a1c9ec73200bea835c46879d8196b380a3157c98404e6a009fbdb24b1662ddde";
+      sha256 = "570c959de8351eb8ffaae05292be916bd94f34f51a1ffcc84e3176b7f23d230b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/zh-CN/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/zh-CN/firefox-100.0b6.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "74fd44c26c503014d0fc3a32dbb726feefd572ce52697879a392996243b5811d";
+      sha256 = "f0e4fa1b580f778be335285b1154abdfde0b95c6d2c67f7547ab07bcc7fd5172";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/zh-TW/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-x86_64/zh-TW/firefox-100.0b6.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "a9d86ddb8f5388370a28ac643e3d21a411625b7098aca9c399551f8e2c125da9";
+      sha256 = "cd49d2954a7014a926cc012c1e439926af1f58c5e11234e2f9d2489c417388f7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ach/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/ach/firefox-100.0b6.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "67b0501117e5d93046031860df5dc6eef3fc3126f0b10240cc13b83f6f1cfdb9";
+      sha256 = "a3b67450658e8c34ce17f5f3b63afc4116cccdd2d786c72958afdb468c0c7eab";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/af/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/af/firefox-100.0b6.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "43b9b1107fb13b97f6b955b3abaa4f1d590bbb1747859e54bb306c9578fbdfe6";
+      sha256 = "c7a9ca1c35ed17fe138df0608d02b345c6e358612a03f3408bd46a792f3bed2b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/an/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/an/firefox-100.0b6.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "da752ce8f7a9a0769c93f6f1817649354f892c440cdd48f0dd75739baedcff40";
+      sha256 = "242731960f5b500d25f9b328731437a4229aa4d668fc849d2111506dc4741b97";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ar/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/ar/firefox-100.0b6.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "e67fc64daef74e78eee12a1e5d4c1ef5a89a8278d19187d9e0c67ac5ea350623";
+      sha256 = "4adf2045f911f74323a9e65b4fd2cf249a5369ad5143daa36eb0b1999b5adacc";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ast/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/ast/firefox-100.0b6.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "115cb0605bfb7629b854d242634cd2797b5072f735c840a6611325faf7bc3f77";
+      sha256 = "d0827bf52bf91304a0a17c9f5edbc6081be1f1d9eaeba6dc24b63e8b251dbe11";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/az/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/az/firefox-100.0b6.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "c839a19dc4f5d938fe7a5426a8abd7b228c89a262201c019b4b53953211aea78";
+      sha256 = "41de2d574563135721d0a975d8d90f4eccac60f3be51d4cca5e957473793629d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/be/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/be/firefox-100.0b6.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "94c8e688578059f8c4f7fd2a65a8fd77280b4047e845efd6ea66e34f5320d119";
+      sha256 = "736900d6a404a97e13cfeeef68681ec7980266ba983f62c0779fd6a8b502e22b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/bg/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/bg/firefox-100.0b6.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "9f7acb26e7cd9193e9e435da3e2f4e9d9ee82195cc18e8de8295cba2446da1f0";
+      sha256 = "77351b45bc0bd3749c54ea1efb1ebb2ba1ced97f9885906a9b86523e85eb011d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/bn/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/bn/firefox-100.0b6.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "93f31b395a9a42386b0de322db1f675810a3db106a0e8c583f18ad4dd0c56488";
+      sha256 = "5d9b274d20b5137e531660f92a7ac3b481abd756870af815159ac30e7df47e8d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/br/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/br/firefox-100.0b6.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "a04a2b2f2b70f33bfe288d9907291aa61f2daa64d0d6802c784d7b4f44b38326";
+      sha256 = "22239f50b370747d3029e7f4ab8ac47de15cd5aa8b6d421193299fed9f9b556e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/bs/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/bs/firefox-100.0b6.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "154456c3aeefe93d6891306fe295342aa02c294bf64693fe93943ae836fc796d";
+      sha256 = "5e2d51cf768f00ab8a30f8d54e2bb88eed75baf20c381e87b7186f5927447137";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ca-valencia/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/ca-valencia/firefox-100.0b6.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "c00ab86f77e5113f85feb8eb14b74c2c144e9c7e08c4442b06b749ffccde2cf1";
+      sha256 = "cdbee7378c4584d51a7142c695401ebe21a05c87961171fae2fc71e76485e92e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ca/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/ca/firefox-100.0b6.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "07de1d9c72f9d5487b9ff57ec609a2b6ce37a8b09fc81200a6cc6610a7e66b9f";
+      sha256 = "1f8f6e0a3917828f7e30deff842c6d5f0c5a2389c87969783d46950c6b072722";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/cak/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/cak/firefox-100.0b6.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "ee05ba6ce42f873ab79032553302caae28069d84c5105192623f1261d2d3d609";
+      sha256 = "42996e08427b937cb2e2aa4d7ea569b729c9002d293be5288e02ab1588e3cbfc";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/cs/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/cs/firefox-100.0b6.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "9b2af581c1c70b72cbf82cf656f94e65058063f0fd6807d99760dfe9b68af808";
+      sha256 = "692d99947185928b46142ae910c76d4c1ee2328aa2e67212919aef39741d67db";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/cy/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/cy/firefox-100.0b6.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "f638faf94045b5e739736926e4b3e173f8830542287d46aed70337d9ac3a4495";
+      sha256 = "b2f7ee9c016bc107e63dee850688b048c43f5d1caca1aa81d22cde4ffbe6c964";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/da/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/da/firefox-100.0b6.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "3dad188b310fef15b704ca788b320d502a0a6ee59538296176fb17d2b440163a";
+      sha256 = "095ae3d0657a68903c4d60a21240b9c3fc399284063e5c366ccedcf58361c80b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/de/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/de/firefox-100.0b6.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "1bdb5b60bdf16126de86ba1413eb5ac4184f727b3e57a36d424dfe39647f53be";
+      sha256 = "359364e7ee5ed03556c7b7390cdb4b1e91e027598a74231cfc20fd5d5c601b1d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/dsb/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/dsb/firefox-100.0b6.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "b306d40607d73314c0e3e87bb1bce65369846be3e370943088a8e7e9731098fc";
+      sha256 = "24f7caf5bbc8edefa104c6b4a646a1afa254da9bb8a1965193b7e4a97ef848ae";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/el/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/el/firefox-100.0b6.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "45202f79f9cbf2a44bfefa9ce50bd0a6b88485207105db4df1f26f547c1f556b";
+      sha256 = "97bfe8f01d8f6024b85a6f25ee084642dc2e2c50dc189d1b6bccfa7835120bad";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/en-CA/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/en-CA/firefox-100.0b6.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "78020bb6fa9395fc4e2cf40645e127d0f6d6dfca4044e5c00f63a90e24824add";
+      sha256 = "fa534341dcfeeb5778d19d5c38fdd8a56e92e756212d256c2fd40c499435e6cc";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/en-GB/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/en-GB/firefox-100.0b6.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "647947c0b765d1142947d3cb35ceb308946090e928ecbd4cf8c3eba4b57afa47";
+      sha256 = "a38f383c06a2cce4ddc49fd304b1b5742dcbc2cdd189dd5b6e91b1494231504a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/en-US/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/en-US/firefox-100.0b6.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "4249f742c2918d66af2e7defe1c6b34870f258fe047ae7b38f91b0394b453cbe";
+      sha256 = "c5ad47cc4f5829eb3d01c7031833e3f8aa24d07947415947d5e86e492be37c20";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/eo/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/eo/firefox-100.0b6.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "1726df9605c7deafd6963c18c4b8dbd4bbbed86814fa9932367fd04f6ef609fc";
+      sha256 = "d96ddc5a07581ac62078cac8d702425d6764cbffd93ea1a35ddcbfa5258e01ca";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/es-AR/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/es-AR/firefox-100.0b6.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "c3820a35047f21efc721889fa0003d8e74e13858aad4d3aea038c01b5cd6c657";
+      sha256 = "e5c069a162cd02c3449b6b6c800c491f80270cbd9e29bb418351b40ca318d08e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/es-CL/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/es-CL/firefox-100.0b6.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "b1f5bf697007d8b6ac9f1fa057f292bcfb860d71229a7d0ad6d611ab02991211";
+      sha256 = "e45ea8d1bfc96f500e1061eed4694f2c7c81fb5b5ea76411cb7bdf7df8e74b1b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/es-ES/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/es-ES/firefox-100.0b6.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "de33571140d165d0422b2e4543893bab6435b6626333a05bfef39682ef759db0";
+      sha256 = "a86e913fce09abd34f69f72f338e5d276360b39584266fcb160aa4cb5ef15e10";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/es-MX/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/es-MX/firefox-100.0b6.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "f681be5b92c8959e0e8c90cf4c7f6cd9197e11be1828797e853310a49dc76698";
+      sha256 = "d39ac7c519aa5ab3c2b02da50f882480d657672573ac13b76ffa1620a7c31dea";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/et/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/et/firefox-100.0b6.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "476a0ccde58372bffea3ebfb0d88795b31db2ec622f9c1b99df51287aa8ba69b";
+      sha256 = "2d83aecece8c35f11bd3190da1d91100779c4516292fb683792c09a9df63297b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/eu/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/eu/firefox-100.0b6.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "d465a6a4a01853724894fd81e31b63b80e830cee268298d6e037e6877ae77661";
+      sha256 = "acb38b6a8d2111511d31cb967da094d68eb4bc5e1fb4af613392cdb931a81b69";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/fa/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/fa/firefox-100.0b6.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "cf8ac9c8d667ccb0066db1d20a9f43af807e40d1746931e001ec900b34fbbc02";
+      sha256 = "4c509afe344db0cf9eff8f3bafabdc80b25f78537dfcc931d05a326d97b3793b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ff/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/ff/firefox-100.0b6.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "86dcb3f9e1d899973eaccd3caf401471b36ff70f4a4693fa9f857083e8641a2e";
+      sha256 = "23c02e6d2f18351c72917c02f6795b1183482e35c6fa5990ecab8e724959c4ce";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/fi/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/fi/firefox-100.0b6.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "ca0b830aa6ec724aa31f957e7c84156726c26fa0a74ace80ecdea899a8091f82";
+      sha256 = "30f696e3e0b419017fed38ab434a99ffb303eaa4d9d96bd2525ad84cebb20d51";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/fr/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/fr/firefox-100.0b6.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "e94a7a54ba806e2b4baa0159d2f8cb96e79abc9c01e2526821cac8253c6ad495";
+      sha256 = "40d631f78caf08e8a04a4dc1286cd749d66130a9b3f887f8a74d1f15ed7247a3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/fy-NL/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/fy-NL/firefox-100.0b6.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "cae5c9c607c0dc99e4645f756befce2c9c4ae83b7edc39cf12af81781b33a7b9";
+      sha256 = "62563d3d7c5755f1163d956f1bf82cb81c48b5349db293e66185c95b8e65caa6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ga-IE/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/ga-IE/firefox-100.0b6.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "b9b1cb2a48cd17179d5e3a8a3fca9ac25c3367ff6281f632d826cd6a9bb4a633";
+      sha256 = "72914c49d6b5384987942a6c8127891c7eaa088d08bf9192ce448b11342f512e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/gd/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/gd/firefox-100.0b6.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "b5454de81ba2fee053e98dcb37d3703b5385a51561e45fa32f6872494cfc047b";
+      sha256 = "1a127b1a4a8407476f1ed73ebd982fc5d0262e2fc413748b4228d9bc9d28a59e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/gl/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/gl/firefox-100.0b6.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "be3b3decd8e75740a317f105bfa2e4c919ad7f31e391845fb60b299fae7bea7c";
+      sha256 = "1a84a2d00d065f69492a73e6917e07de8824b185139e3acb75b0f0dd5f82d604";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/gn/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/gn/firefox-100.0b6.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "394562b739f81ec43a954f7393c5177f87d3d5b36d404d97e2e483f3000bb615";
+      sha256 = "6ddf864b2b2258d0ced011ac2d0ed13455e99d3c093642a477f95ca13a3349cc";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/gu-IN/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/gu-IN/firefox-100.0b6.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "d2e36f37146b48cbc710af7663ad8b4f7770dbb5f6a557e3f54d637e7061ad90";
+      sha256 = "86688035900e5bf2dabfb7e8c7320dc4ccf33b46d8c9e963216a750ba2e2b300";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/he/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/he/firefox-100.0b6.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "17bbbd7768ff852dc1f27b224b77dfdaaebabaf531028c71a371bf302a9dd92d";
+      sha256 = "d35c7ac5d61d9253ab69da2a77bbaef7037e7cfa2339d4730201fe41776adc90";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/hi-IN/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/hi-IN/firefox-100.0b6.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "2f431a3e50ac0b74a2bda65652a5aa45c0e1b44ef0837645ec49e30c6d0d7fbc";
+      sha256 = "48872f0b68ccf4df855e58a4520f5f8347b05de318a0991d83088521b4d178e6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/hr/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/hr/firefox-100.0b6.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "e57e5fe2cb59c25002e9c06cd3298d9cb75c4437ddc9556590d6c56a1eac57bb";
+      sha256 = "9c1c1303aadb4071a82b558fd470c96671872cd480e444686ec74f41afd46e2f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/hsb/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/hsb/firefox-100.0b6.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "7c1eefa455afacf5b3b1ee1d04b6e793e2db210912dae58910093c70a21a73f5";
+      sha256 = "828330501590e2ad3021397cb7b37a86c015b93536e4e2383fc5c5a1e8d6a6f1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/hu/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/hu/firefox-100.0b6.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "d2b02034ce6686e0743af6444acc2a23ed657124bd7bb6ddfaf6d24cf11730b6";
+      sha256 = "592c69c6377657bccbf2b81ae54bc8f37fa6d081dc36d0465c20eaf6d673f32f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/hy-AM/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/hy-AM/firefox-100.0b6.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "75589d2abd9488269693c0a0440d6359bafb354b1b5ee91b90306871903eda0b";
+      sha256 = "a95989dbd6b7b499840f5cc65a765129ca23392455afd21c0ff865112900b5b6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ia/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/ia/firefox-100.0b6.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "b26efd6320a41a558383e22db49cbcdd930161fb48ad0032d24e44b57b01f0c6";
+      sha256 = "a9b225d969b0d8c621a2b545cbb42ce7188d78c09c248422d6379d83934201b6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/id/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/id/firefox-100.0b6.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "d50fff8b0ff7ae5546ad3f25e485ef51280bd022708e3d0aae97d99f79788f0a";
+      sha256 = "304f4d04d3e73a477598a034d3fd016948c5e1662bc236d640219b4b96159690";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/is/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/is/firefox-100.0b6.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "4cf7fbadac8084b8e134f6110ee07076ddd93cf00a10b6ef3d6276df9080bdc1";
+      sha256 = "3cd144b87e3ef57703ce60c57a09ea8c6ab910408a7c891f9b9b653dca51c55c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/it/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/it/firefox-100.0b6.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "6fabf495a730600869f6d1e2d9382120361f5061e3a893321f68a6378f7eeddc";
+      sha256 = "b024d3b0fe4ac5691c6cf1e0c18ce2bff91083746bb988799f2eb3ab74e22e80";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ja/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/ja/firefox-100.0b6.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "95a537b3306ae1f6bfe9c4076042d6c29c6478c0f32e5aa4a01e800c1d2a75a5";
+      sha256 = "fe3d9b0c7d0e8f47e9f1bc12429200aeb951b303946365bb32f51c9d807259cf";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ka/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/ka/firefox-100.0b6.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "e73b2b555f7318650ca1ea20f9d8c1fbc933d230eba3eaeb5e5a47dac24797b1";
+      sha256 = "2e4d0f5f2eab6787db359c47a48b35a202b713de0807299a41a751b527a9ccf3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/kab/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/kab/firefox-100.0b6.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "cd55879a883ac4e4efef972d6200284d6839dc786e7dad4c3a81fd88b89b18ab";
+      sha256 = "49166beef9b6952940d1ce420afd77777fbe84143b65693f9b75db6768b88e01";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/kk/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/kk/firefox-100.0b6.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "cf2dd9ae9cd6347eaf976cdcf4a6cce81abb741b0cc273063cbe1274d271e05b";
+      sha256 = "24aec891a8189714c9299c695346a3d0a4ea52621f08b890d5db63ba36bc627d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/km/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/km/firefox-100.0b6.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "f0f3982e7d838841a01b24c330ed3e74416073c40470293447551aacb5411506";
+      sha256 = "90f5b7811a2f0bdfefd14261d1e0e7fe85466dc96c666316134c97095606c6ce";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/kn/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/kn/firefox-100.0b6.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "3e2953e55e3bc7fa76ff77aac08f79b20bbf2be52683c08b3d54a323a1754ed7";
+      sha256 = "e423d1231edbef812e8cbd50f53dba4b48dc9083cbd5d91825392229015c38c8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ko/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/ko/firefox-100.0b6.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "5c5bec8a40dbea26674eb2d4b7160c1c2f3ef37f68d67c24a7ca6a2cf77eac85";
+      sha256 = "cadd481242635d64b224e080adc1bdcfff9f7ced4715b0ea9655ab333ac7d039";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/lij/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/lij/firefox-100.0b6.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "7cc492c5eff065cc3cbceb292d18d833e9f2bf76ace0d5ca960256290f049f94";
+      sha256 = "4798691d44767027a39c1124053b2351523e615a06b32bd2bf4f9da7b858159a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/lt/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/lt/firefox-100.0b6.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "b4b56e01e65ffe4f7232daf661df178d4af1d813e1c8122c4ba56aada0b2ef52";
+      sha256 = "ac49b6d34eb8caac4a6900246adb3562eb2228a50fcdc543f79903ea267b339e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/lv/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/lv/firefox-100.0b6.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "b13ac2b90f13813b8252c5eb817d0f55f770a58e05f8a98b1a08fdf59fc9191a";
+      sha256 = "4f6e6a26a2b8a23855dbdeabd2363ee0155914542e4c48c655d6b52da6289b34";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/mk/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/mk/firefox-100.0b6.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "6b1d2598350feb901e86f332598688853b607c7c14c13ac228610d16e89eeda3";
+      sha256 = "522590d926022cbe833ce0050e5d23db47bab2c8de1e1e0ae3e96941b53dfb6c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/mr/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/mr/firefox-100.0b6.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "9a6a47fc20500b4421b12381374f0a8ecfa9a0929a54a6f6dba73e1c2e5a6c81";
+      sha256 = "4df57dacc8b71070aa077281beffc04bfc632666b2b26caedc1fda4e484e59d9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ms/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/ms/firefox-100.0b6.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "e79c4f88952ec9061b4d90f8ca5970be8b5c19cbc1df8d9970b9b23c801103a1";
+      sha256 = "005506663901ad539817197972864f67812a9f5e3f1055e7418ab4bb052ecdad";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/my/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/my/firefox-100.0b6.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "f8ce25b87b639843fa6fab4651326719f229f91a4d6b3a6ef17d0e9f4035b1f3";
+      sha256 = "aeb8445d5425640ceb8d2b823a7dd3e79fbd355f07420d015af4559d2bf2cebe";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/nb-NO/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/nb-NO/firefox-100.0b6.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "03f5550bf0c0f33c3cf252cbad1650204e008d852e6db46a6f7fb6f6b5ac10ed";
+      sha256 = "d41588beac0fc9a3eeab9f2843b8aef53e61a7c15dcdc34eb89e73838d9dab24";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ne-NP/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/ne-NP/firefox-100.0b6.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "5d94d2dbdbdadf6abb7250772e6e046b9ce03cbf5e4c920ef7e8b5cae69359b7";
+      sha256 = "c3c981a5a701118e70b6b03338451d7d50325234be03838e403e57b822b6fb61";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/nl/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/nl/firefox-100.0b6.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "3045ce321c102e2c114a48a46526572a2c52d228b44ab35d8241d92bd65dd9fa";
+      sha256 = "ee902a63548299b6ceb9cfa263991233c32b0bf8534dc5256ce84714eab01f12";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/nn-NO/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/nn-NO/firefox-100.0b6.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "a16aa9b6de0ac4213492ca117eb47fbd4994824c0f080001baa9136231fb69cf";
+      sha256 = "e3fcf444660a2e8b3abe10d9d3a512985e9791fb7916ffafac564d9849816241";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/oc/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/oc/firefox-100.0b6.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "70bf39cd4c3fc4ef772dd71d97f71fdc92324ce2caf9d359cc1d3f3d1557c3a5";
+      sha256 = "0b80101b082209ead23287d0d7efa136eea099b9895b9a4a8906abafb8a7dbcd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/pa-IN/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/pa-IN/firefox-100.0b6.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "951263906c05aa6f60a65d77e917a95ce10e8ae31f156acac7f47ab4ec36deab";
+      sha256 = "14f8fe19c6cea1d38eba2f4aff8a8787875632e7ef867b44a48bcda59ad0c32f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/pl/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/pl/firefox-100.0b6.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "476ca14396dd7ee636ed1e74a20d9d0ff3b0c452e5b5f61eae6f0594ba060f3e";
+      sha256 = "796b575f4ada12cd1aa0fdeae8b5c198eb2e6a327bd0cede066b1beff4961d96";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/pt-BR/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/pt-BR/firefox-100.0b6.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "33ea09c993bddcc36621ae633713e758ac33349847604995e05fce0d26be398f";
+      sha256 = "a1a83e3e317bc7465922b40327031fd48610627c0e1554569710a7b40fedd98c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/pt-PT/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/pt-PT/firefox-100.0b6.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "fd4b924d8afa163ec40a2f5ca6ae0b89e1a22a8be8b8fbf9f43012159d0b7172";
+      sha256 = "0ff375602235a96b6197366ae22f4c05cbb3c9068d48cdb08a035e3af084d3f3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/rm/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/rm/firefox-100.0b6.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "97ce5f4af9e8ed2af039255e284ce1b55b6a3ac0eacf4c40be82b635b1df0f2b";
+      sha256 = "5599c540c50162d1a79ea16196bb15fda9fed825508b60b4961d91255709593d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ro/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/ro/firefox-100.0b6.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "a959d39333b98c5a479e6975dfa82a4c2b3efe5d69d2d99fddc8d2aabdbe95ce";
+      sha256 = "771be3da68642a15baa1e054bf23e9df272d0b0ab46f1e42c6fdf35e85035b9f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ru/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/ru/firefox-100.0b6.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "e4f65bbf839054b7009e01461cf4a0b943e1373df054e9b40797b5d233654aac";
+      sha256 = "bcca4b9aace48ed4da4c881ed47b0bbc3d20fddd07273ecf1c84758633f350b4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/sco/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/sco/firefox-100.0b6.tar.bz2";
       locale = "sco";
       arch = "linux-i686";
-      sha256 = "fac16861dbc011655c3b36b31d5e0816a09e1f88e34032d247d09f691c097ddd";
+      sha256 = "1ca439331c6437dee10d1f2cd72907499894bd98af036dbedc964248217ff510";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/si/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/si/firefox-100.0b6.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "93423cb2cccf166f374fb4b8779f337fa1cfdff67f0f2c463a398a35ecd251bf";
+      sha256 = "b643cfd20a0bc56b1989dc1c4dc96535d6585a53bb5d13c85ca53bb1027e1732";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/sk/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/sk/firefox-100.0b6.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "e63c2240f7b791b01c94084dbb28d74ddd6528a7bd1e62bb74ee9271d0fd81f6";
+      sha256 = "5aa1dc132c3d2a42b6086cf824c8b6ae7a30d8b55341a05acfc3eaaa8dd4cad0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/sl/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/sl/firefox-100.0b6.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "87064873e57431bb9cfd3e231df07753c8f644e218ea0318b3731baa05b16c1e";
+      sha256 = "92b2a15a04c4cee559e0a6565509a546ac7a2c4e3fadbba0c6197356e99f71f9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/son/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/son/firefox-100.0b6.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "6ecdf2061f0787fc9adcd27465211446df45751d103e279aa50f278361061728";
+      sha256 = "8a25e8af341178bbbcc0731788b1116ab64fbb55480836b94ad6e7830b6b5f16";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/sq/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/sq/firefox-100.0b6.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "47783d01b35119b158c746c5ccede7e4832d15317958030306035d1b448b77dc";
+      sha256 = "66b7ea3b488b980c425576fdad6009d2c246bdb4686b24b519604a54dba6f756";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/sr/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/sr/firefox-100.0b6.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "4aa1908894de6eb3640b497361d5245ed3379d29ffe6e10401540cc1c10cb965";
+      sha256 = "1aecc3a24dab4a843a967b8c023bbe01488dc113e451cfd7d39e7c2caac1c153";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/sv-SE/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/sv-SE/firefox-100.0b6.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "2334fb5859711a4471f06a9eb81907d0b41ba52a8fce05b7cec320a0d31a4167";
+      sha256 = "d5189ed627ac49286cec9733c8658c271ee99930f2d07754993e776a58eacfa0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/szl/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/szl/firefox-100.0b6.tar.bz2";
       locale = "szl";
       arch = "linux-i686";
-      sha256 = "39ad1c9f4da42278f2a1b3c125aa7e2a8005376a6f458a03851d42f85d116dee";
+      sha256 = "45c48d7381499d5aeca0fe340ecc8af33016821fa8f081f6c52c878a9af3640f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ta/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/ta/firefox-100.0b6.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "24055aedcf23fcde0dc519bc2124a8d42c82ddd74dda46b694a20d25ff76d2ce";
+      sha256 = "1a8a9fe5eb0e9e8d213d667cc1aa478f9f381d5a444f8d2be518fb04926e4f64";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/te/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/te/firefox-100.0b6.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "18a90860a6428ab31229c975927b264d75b2e2f186f83ef270262f7598053d48";
+      sha256 = "1f3aa559af38662aea444f52974c2843ffede5505e71e83d73e331d2c4b92275";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/th/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/th/firefox-100.0b6.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "b965a21a0585cc07714c39ba33afc5ce757294d595c7617ba5b330a0d1d8cf0b";
+      sha256 = "05bbf88a5b9e914d86244555d06d560b328e8e873e380e67d40edb6d3971d383";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/tl/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/tl/firefox-100.0b6.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "cd1fb6553daf6b123e6545cf0553038b2f16c12ae4a21425e253c68124a8ce42";
+      sha256 = "8cd7f71325ce2a54403032bc80fe366acfd7a8ce3e3871ae1a8f4e0b5315ddf9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/tr/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/tr/firefox-100.0b6.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "2a2c6abfa119022520e8a3ab4c430c282a7a3f7d5e72d2a67d070a64398b2bb9";
+      sha256 = "41275c3dcfc9624390a2d3ce9d0aa0e746c4e3122f433924227299d46ff8ab42";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/trs/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/trs/firefox-100.0b6.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "aae079859fcf211c1e465a00a6a07514397a9f715bc02d704daf062e3d75220a";
+      sha256 = "c04aafe011c8626d749990e0ba293a22c8a623c6eab9bc4bff2782708832a648";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/uk/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/uk/firefox-100.0b6.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "04ebb332d79d0a9aef5d2e93b2aa8dae0ded8d4e4c639d192ac969e8033ffa24";
+      sha256 = "965f445606d8c81d1745a7028ffd15af7cb9bf2473bfba5e673e3621afeaa6e2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ur/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/ur/firefox-100.0b6.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "8a8d6d6503657665882ccea44a56b324253adc8d98eba20696ecfd096311821f";
+      sha256 = "8955e64902aca993d110401fe36b56c84b53a414b2da569525653ee28801d9ca";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/uz/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/uz/firefox-100.0b6.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "e2990d6a4c3bfb5547bdac49a2499c7dd958d0b8e665b636e0ffd6e9aebaab58";
+      sha256 = "e05ef7856c3c4777da187ed7212ebab01900881702d1fa8e221a86c57c6ef4f9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/vi/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/vi/firefox-100.0b6.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "b7c2a4d8c1c400f44fcad7e91572134328097d183c76b8e22d5eaa0a4959d35f";
+      sha256 = "baca088760ee065eb8ad86d93c6b0325d23f88d18359693ba9c2a3971e9e5061";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/xh/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/xh/firefox-100.0b6.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "e3dc9942f397812564b5d7728bb4857f0c217183300ac0ab28590921f56bda34";
+      sha256 = "c679216fca120982454a15087890fda40d21bb269a940d96dbe37428672db65f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/zh-CN/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/zh-CN/firefox-100.0b6.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "11ff62d8f465b9ce17591177f1fc98d6dcbbd819332f65bcffd685d43b5aa285";
+      sha256 = "ba77a6dc02a406174a79a99b510c2cf7f8be6f877acc57822ee174cc5a99931d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/zh-TW/firefox-99.0b6.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/100.0b6/linux-i686/zh-TW/firefox-100.0b6.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "406200aceeae06ce5ae2d736d8ff42713e2275b5f369682cd49946326c5cf21d";
+      sha256 = "108fbd9c48b974cfd533c514d8459990b5d278ac5381ba5cfb8fad8d885dcfac";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index 080fec91c1ca9..4a561e9126ccb 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,985 +1,985 @@
 {
-  version = "98.0.2";
+  version = "99.0.1";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ach/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/ach/firefox-99.0.1.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "e40a11afbb7a464eb7817457cf360ec2b4e0d77b8d5db5d7856c5b79cdb1425e";
+      sha256 = "e2054f03b413f783f287c14fb670ee97415e89181e2ca1f9bbe05a18fb529330";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/af/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/af/firefox-99.0.1.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "8d0570e82ec73708933cbe2cacd53d89503cdc7d1e97cc57edaa066960340a1c";
+      sha256 = "102c4460ae7a8242c770bda09baee07004f84d95a885c621fbe23f2fdb585398";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/an/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/an/firefox-99.0.1.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "04403b0d68911dde99880c76d1e87f1315d1c463a63711e37e0f40abbfd9c2eb";
+      sha256 = "0f8aeacc3a7abbb5f571aff8a6580c9779336bccb0d30005b46d336447123b10";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ar/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/ar/firefox-99.0.1.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "57ab64dfa19fead2a828333456921465cd77e37a36d2030f81b7c022062fe215";
+      sha256 = "720c5d872243631ddf67102e6a54504912b33f6e21c666d84e73a399f10a2559";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ast/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/ast/firefox-99.0.1.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "3dfb8f3c288e6c910d929da7c0228c52c490e33a1fbc99ce90c231e81cd9896d";
+      sha256 = "194345cdce1e9c6462a80423d1b97be4c757dc69b1f5a0055ac14e2624d1d145";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/az/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/az/firefox-99.0.1.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "b5fc1a8d7decd2372026f9e4d4d8bb4d5fd839b165168f01e08a9641c0d7f92e";
+      sha256 = "9936c9d172ddd291d34679c33f28d7ec425e4835abdfb25dd0252e50ab5eca09";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/be/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/be/firefox-99.0.1.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "8b1fffc493c20318533879ecf9a006d0215d7c6f2323134fadecdfea68aaaa6f";
+      sha256 = "420f519aa954b708da735605e32acf9f11bfa2195e7a9bd2ebd954a58df2db10";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/bg/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/bg/firefox-99.0.1.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "852016bb71423b058a195d1b8631331a6da144a20c0d74b641d6189c93730ad5";
+      sha256 = "2a7cbc2903894934024fb8ea2212e7f23a47c7db707e4c88a33656366b810dfc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/bn/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/bn/firefox-99.0.1.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "748e7303d01ca41fed55dc31d0bb57458c69180499bb5915ca4c835f7fdb56c4";
+      sha256 = "46984d43f628ecdc1674d41f45c57177dfe24eb6dec0e5ae5e6a8efec7157791";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/br/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/br/firefox-99.0.1.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "efc2e20d5201621c76411ffc3c7df227c9462bb6994f7ad19d735c986c362aa1";
+      sha256 = "1427aaca5903a1ecb3e17aa7e3351334b1a2183a1180c9a4942535b50f64c0db";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/bs/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/bs/firefox-99.0.1.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "adb507af1a64e2c72193942b2c3a839576ca7d493541bdfed06b0f838f3bef43";
+      sha256 = "8377ad8c27236c5336e370acf70e901f4dbb53dd25142a74dc61f98fd2beab91";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ca-valencia/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/ca-valencia/firefox-99.0.1.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "1cb7d989fcb1ca726d022a2e20523427d9aa0718d2129cea5102971624edff61";
+      sha256 = "78f8dd650fb9398b1cb999db887bb5764f4b015539c3aac0eee2fdd05477bf3e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ca/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/ca/firefox-99.0.1.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "0d746e8c8ca233d4f4161134f920a44e1a3593a2277101e20184087f76a443b5";
+      sha256 = "18b0acda5e75ec1412273a016d2cc36f6c65b68ebae5251ef13289cf73ef00d6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/cak/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/cak/firefox-99.0.1.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "fac629e27bb9e60fef81fa58268f9367a95af59b299a628ffe692731fd5ae4c8";
+      sha256 = "505c3f2c8f39aeea7ca4f8285d59fcef995e5c6c64d318d7b143e7060982d7a7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/cs/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/cs/firefox-99.0.1.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "7f6f30ea9afac44b1d1fde8abe2701f8f83b3014aa1c98fba1e2c4ae6c841140";
+      sha256 = "d33f7f5adf068743a523f54fb2dec1edf7302993ef3684dd86cbab25b96c3247";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/cy/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/cy/firefox-99.0.1.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "63c2b0bf442365c7db1cf96f192db016c4ddd4233a32190d657779a254871a2f";
+      sha256 = "8a0d5e3a4ad8650d4e8e77e92c24b27da1d5c0b44878e97462ec94597020e548";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/da/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/da/firefox-99.0.1.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "f7d18039814a6310ce4a4e37d10d131639868a6f5ae85c4718ca1f9ceb90ae13";
+      sha256 = "c9c8355c3cab4e189a4ba322f4a7e2a189617786e912930f0c17b217ff89c1c6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/de/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/de/firefox-99.0.1.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "736f10e89507455708e40c9cdbd093fb1cb802ada7dd5d3e0d612cb0e11db096";
+      sha256 = "83468180a67fae5a5df8810e3b7bfdc6b01faaf60dd18a0914715ac89531c7a4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/dsb/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/dsb/firefox-99.0.1.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "50ca85b163011ebdda69be8772a76ff4a912653a03d527784b18bbffd7c63a16";
+      sha256 = "feeda2e3f021d459c98371e244d29b9e6e6fdaa6250a8a6700b34a981f3dcf13";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/el/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/el/firefox-99.0.1.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "4b3a28670c6a7577f65dba7f857e8c68009a8d1e80089707d8d830e02a5f7fa3";
+      sha256 = "4fc65f4b6d84a01c79165ee9e058c980659089e86da72b016cfc5efbe973e592";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/en-CA/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/en-CA/firefox-99.0.1.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "f3a7c9de172b6ec0673d2600537ab9265cf3cde3e2fa614424e9f4c08986eb7c";
+      sha256 = "10e324101932b7290814ea2ab747657363023a88857ca90e25d54f89115ffbcf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/en-GB/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/en-GB/firefox-99.0.1.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "49f044b0b5f841d5e42b9c6275dc7c78e2b2f903aa28f0d6a02a25a41d781d23";
+      sha256 = "83ba931e4f6afd0d0c32b3bf0db55a7ff0fdfda080e906bb3ada5b4e61a4c3f1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/en-US/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/en-US/firefox-99.0.1.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "07c5f3dad0850a92d5c609278fb1fe682b2562fa55e6733c09a6b4da7373bfcc";
+      sha256 = "7bc57f06fc9c52e16815f1a4208c33bc5819423c68da441d001f7c2200591bcd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/eo/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/eo/firefox-99.0.1.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "98626ef3b514d1ddf0d9d530ef7b3ac8bb504717eb633f036fe9cb9437d8ea56";
+      sha256 = "3fc945331b62f9998d2adb6a99d3390528975c97b6776f97a4c461eb124da462";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/es-AR/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/es-AR/firefox-99.0.1.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "86a57a29b086fbc1d59731f94b792d1116a358e4735d9a8d08c022a2d5c7d0d6";
+      sha256 = "908723c7445b92b4c4e26fc999562681e4bf3ffffee0ea1db6362aed0f615c0e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/es-CL/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/es-CL/firefox-99.0.1.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "834bbbe0388631cae1e87e464c0b4e0151c37341828d71dd99fccc2d56c179c2";
+      sha256 = "77363cfa3c2ce655a9f6203c495f8f54700b44e0b66d021050cea59e2b0e0a3e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/es-ES/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/es-ES/firefox-99.0.1.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "590efa38b4a374ccac89128a0e84de77492f1a8702e70b3b13d9a456575963f6";
+      sha256 = "ee59faf4bd7472a14fd8e420aa7f408abccd72f31d162da0c5f9b530593722f2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/es-MX/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/es-MX/firefox-99.0.1.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "f64ac621daa5f891541d836727d91cb56d5eb8db6093aa7f83af19adfc49ffc9";
+      sha256 = "732b1edb21462281e029de794ccdb3c20ceea0c6d5c0f1c885ef76ad57df7abf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/et/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/et/firefox-99.0.1.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "08374c6ae7b8eff3b6ce748c87f18136c86f73abf6238383ba3c4b1555f8a003";
+      sha256 = "b816c47c20a674256dc176a15dbeec830b47f8c3eecde31c615f003260e69668";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/eu/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/eu/firefox-99.0.1.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "3ce288c26201feca071bfd56f66fca69da7a68b3a468405ff6a665cb666cd799";
+      sha256 = "4f54fa8f7718bc55b733c6986c8ffa17517afac92383dae03fb972beed876665";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/fa/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/fa/firefox-99.0.1.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "3bfac0751b251dbd3ddb253973bb1ad7afe58f7cb824bef59d4f6c7dc5acec78";
+      sha256 = "ee716492cc2cc0a11c98ea8e8bd7d142ec21c006e2f12a96707d9dad82bf92b5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ff/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/ff/firefox-99.0.1.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "2b962a0442a12c7f2dd7d2c716fbac0ad9435debf06d1c1e9f95fcb62fb90d50";
+      sha256 = "36d1c4b3966a807c6bc90c4f6fecbef327442398a463167535dae318f286d222";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/fi/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/fi/firefox-99.0.1.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "705b21bdfa9826563042d0014a9225870c87b3351b9920cca35e203d1375f9b6";
+      sha256 = "9855e6d25d34d6df614ef2b48b4b1e60d527fe00c0da132a0609ac6262354623";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/fr/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/fr/firefox-99.0.1.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "e1d9cbb1c529508bb8262b0498506c30c7932b17a7d86d9b5877f44877cea60e";
+      sha256 = "b999d3ed98eb594335e810a4a81de86e7e3466a2c32cc6bef0bc260ae883a6d4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/fy-NL/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/fy-NL/firefox-99.0.1.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "c1b40fb366281b9df839083af4aaaaa7a264e1ce380f9ffe46a2fe181bddd3f7";
+      sha256 = "be9fce28930fb80a94cc5c6343b34ff6b05538a08cee657d995d647f3d9dec7d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ga-IE/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/ga-IE/firefox-99.0.1.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "466ff81e255bed9c03669c974581ee2cfc796e77456dea25af75adb501855c54";
+      sha256 = "92bbd149f59a6c2594d6fe1e2ba8e545bd7f9040ae35ec924414c59d06d0f4c7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/gd/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/gd/firefox-99.0.1.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "0e1de18ab0b75b43ee8caff97c2963b7047f1000fa8dfdcc4e3fe87f29794c17";
+      sha256 = "bb2cd80e2d1c9b08363a0025b428473334596f3e34ff321e3d6c69f723fb18f0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/gl/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/gl/firefox-99.0.1.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "56f259c9f2f13d3f366e921aae1fbd069f00d59131cd3a3b31cb0f3e16f2ad74";
+      sha256 = "f74e552aea8622136679cfb162b2c192ccefa91705e8352830efdec3cae9a0b1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/gn/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/gn/firefox-99.0.1.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "b532c79002184bb13a3f197b5c0faf4a24e0b71f737de31c242f9fd286f05aa9";
+      sha256 = "261cb7858277e012b8d67f890312b3fa333522542a6a7c71019f06e1340e0349";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/gu-IN/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/gu-IN/firefox-99.0.1.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "12ec5c968d852a7a72221373813fca48a4e524e552d22aca50ae99111a7128fa";
+      sha256 = "7a3421aa896d08984f9d2cb38fea3e4bf93d9d0dbcb74bdf06dccb3f5039db44";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/he/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/he/firefox-99.0.1.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "3c1c1222a4ffcac6679849c94da395440d417284a922cae16b5edd1cf4ba678d";
+      sha256 = "f734cef92e78b3713e179959c6af917a64c4b16d00d834c776652337d42bc65e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/hi-IN/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/hi-IN/firefox-99.0.1.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "6ae96b87b251917d2c11684ae58ac3df54496cf047b115145a5f85cfb1575b9a";
+      sha256 = "e0694ff508e38ae758a96ef5023e7d7d39cabc2b7bbb56cff2854b51009a0732";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/hr/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/hr/firefox-99.0.1.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "4a77fb11f0d27a4abfc1426136d93404baaa730ffea2a31fe337f11ad92bcc8a";
+      sha256 = "438665aa04f02cb9275c8b76ee5c0ff6d7814fc0c1439f50f714613fb902b9c6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/hsb/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/hsb/firefox-99.0.1.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "725e2f719720c84ba06a28c5f025a16a951642c1102f7fe5faa41baede1b6a5d";
+      sha256 = "1b17d24231fd22db70f6f7bcfe793d31390a441355275771749352221320d4cd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/hu/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/hu/firefox-99.0.1.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "4a128951a5466189b703fbf3055a9e65af64f08a7fcd979448611b91a63bb456";
+      sha256 = "d2be4860a0019e9385f48b989300ad42ced0ab2c3873e8074a6863f3afc4719a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/hy-AM/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/hy-AM/firefox-99.0.1.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "70e44a8105ef260b3e10271f1a9c36a5149a485130d5a1219397aff93500639a";
+      sha256 = "b9decd8f427362e1070c17242a906d170122c2bcc17641a2132d87ab24e52467";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ia/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/ia/firefox-99.0.1.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "a121636fb2513557f8e7e0a1b30e3d855202db14f997437cc5a6d7863214d385";
+      sha256 = "97a9ec4317bc432ed6c79f796fd0547fab0a156d9c9c959235f6b941ad4fb6fe";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/id/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/id/firefox-99.0.1.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "eccb423ef76aab7725cd21efda222ed63c030d494c294998f4e9837ecccbbf06";
+      sha256 = "621add55642a28cf95ff1f0acde8881862c1d4487500e5cc0705bf3ba0055c56";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/is/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/is/firefox-99.0.1.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "86aac8ae944846967e472d6fd893c40ac988c25a2c2ee9af40485e216bb67b2d";
+      sha256 = "9293bce28c6252e9ee561f41e54b39e6a66d916e18e34965d1fec77a2d8088de";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/it/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/it/firefox-99.0.1.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "f0ccf0977b3f3e05ed0d07980eca2179a808e0f62930690fb33f17b68c3bdca7";
+      sha256 = "aeeface0275cdb426fe851d91bd49014aa8aadc7becf18f4763b44f0526260a4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ja/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/ja/firefox-99.0.1.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "217159ae769b050bf9ff1b04ed80ad85a384625e2ccbf0d9f98c0786dc2e6c5a";
+      sha256 = "dc51a842e0a8aaeea874fc73e99de5978615c250afc17309e7edaf80802acb56";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ka/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/ka/firefox-99.0.1.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "c4aa9e994cad797afc081d2031296cac780e76966a7f231e6a0e3187d9e8aef2";
+      sha256 = "85562b0af98292e923c39de4b0c15d2ea0e95cd8fcb7d86c4d941eabdf9a1827";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/kab/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/kab/firefox-99.0.1.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "cc8333cb75f48ea82b752023162a270f18e33cbec610571624a38919737b00c7";
+      sha256 = "c06e7fd59bcb82a989c90a2095c467eccdd1a98b4e704348befc89061ad9a6da";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/kk/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/kk/firefox-99.0.1.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "3482645b2581284503f72569caedc750706c439346917c07673ed0a27b0bbf36";
+      sha256 = "d041abeb5f207a234fde69fd265ec98b5bc94a29ba5d231334d74caccd7c1d16";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/km/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/km/firefox-99.0.1.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "b70fcfa2b4b4bed16d4fe8af2d57d8b7a4af346f321ece425895c10f7ac058d1";
+      sha256 = "b02b241b7ca07732c26aad728d1d15b637d4bb032673d92b0ff1a65fefca0d80";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/kn/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/kn/firefox-99.0.1.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "63550bf8572312f3c69c90f65de89423fc0ac926736723be3034d5d441ceb1e4";
+      sha256 = "0ad5133784a27dec78031db198ee762e4ee0d0514d03dc175130a64eab93d302";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ko/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/ko/firefox-99.0.1.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "de17cda5324ca6d179b9d576b62cde0ed21718b72896b161631513b654540cf0";
+      sha256 = "01adfa538c52df224c6b982cb96ed50a3f19b8e0608d323003f2264e6d1c18c1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/lij/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/lij/firefox-99.0.1.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "67cafe6a9f0c01aadb1fb55afe273fb58e4baeb38be2b472ed90a83c72b07ed6";
+      sha256 = "1cd93f13d9cc732f7b580c611f31ce8a71ba20436bc7acc996fa1d22c4c8b954";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/lt/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/lt/firefox-99.0.1.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "135773dc11e691c20f20b0a1d37e2b25d92062c573846127c113896708e649d8";
+      sha256 = "fd92972d632c5c3d1822feaf2372bd6a06ea957b0c8a5663b0eda787da53e4c4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/lv/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/lv/firefox-99.0.1.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "44bfaf12e5d34e1b8e281d00c7d9a26c2d0aa0a8ffbd74df9a5026e15ac12b66";
+      sha256 = "cfb5112aca7d7e7af298a0c035ca2d549c849d9ef1536bcc958726df81f64665";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/mk/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/mk/firefox-99.0.1.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "94d7db6bc2ba9de25207a058d29d8abc57e967dfaf59c3388438953098da9580";
+      sha256 = "bd1c8a1175326fce66cd32ebf394585fe09c5a65cf72e0e0598e572583e46515";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/mr/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/mr/firefox-99.0.1.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "e2ef6708ed116e40d3cc776c483d3cd42c91988673b91d2d29f4da8ea996f1c0";
+      sha256 = "9912aff12281b1ec3b4605ae72fba291f24e193ff976658e638fdb35a9d40cd0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ms/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/ms/firefox-99.0.1.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "e376a479d170ff881d6de21f9c03ffc7a4968fccde7347e9fa261de7bb11e427";
+      sha256 = "4f155ab0ce5420d272a86eb8b52cb816b90aabf34900bc5ba56d869e44408733";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/my/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/my/firefox-99.0.1.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "a1143bce18aaadd340b69403f064574664f202765ee5a8553ac6d3372ab33134";
+      sha256 = "5b01096123e71ff94e6a44ba44edaf9453d2770f8918019e349f20f55f4fbe04";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/nb-NO/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/nb-NO/firefox-99.0.1.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "eebdd022202cb7140db46995a3925c990e614233f3e15b850e5176b1f2c07907";
+      sha256 = "2d4b0706d46e92438a3ec1067515ca4eaa37aa168f6c633339a7c78c1e447f62";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ne-NP/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/ne-NP/firefox-99.0.1.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "084a278fe0b67a51126518d9aa62cae7cf78d96e3f6cf5b191f136a5c20acf84";
+      sha256 = "3f6e8d2b081bd23bc0a6425b0f956fbb8431c301b01563d43d1ec976ec5daa32";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/nl/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/nl/firefox-99.0.1.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "fdae25ccd979bdb5b4bb23f4e9e82e432df98059d82732ee187f37c8cb3547d4";
+      sha256 = "00d8fb594fd4ced7ab5c7fe3de74bc193630547b5a537f0025a1ac11ec2adc53";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/nn-NO/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/nn-NO/firefox-99.0.1.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "7ec4c099c7a282a5b38df9a124ea6f2ee3a1704746aa308431aa8c356a57bec5";
+      sha256 = "de3b36fabf65ff0d6f8f24c2dd0490214f08fe4216645c7af0a0f271f443aec5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/oc/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/oc/firefox-99.0.1.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "7f6d8ed3a7511d6af408c47c626a3e141425925df364f26a622a088491d7fe5d";
+      sha256 = "df7391bdfbf21175f3e935dbdb6985b0fbd3550824d4203c93b91d52ef0841e8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/pa-IN/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/pa-IN/firefox-99.0.1.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "9fa3699918286b6f9f8829beac8cd45e59f35f389a09e0cbb34dc393885ec8f6";
+      sha256 = "653b0bb83de0787c37985968822c1637e4707a9dd96a521450048e25d220f1fd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/pl/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/pl/firefox-99.0.1.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "e2ebf0346fb5b626a048a720782e325eefd04f1fe62de5c57826ebdd3ab1bec5";
+      sha256 = "31e861138205a8d69503550dff92e3a530b5d4212bd2f1f905298cceb53dbf40";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/pt-BR/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/pt-BR/firefox-99.0.1.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "dc79e634319ffc7221245e2a081cf6bfc15ddcd4bd8bf110d5dc15732aaab33f";
+      sha256 = "20e992c16e7dc1d0c2e641a7ecac46e29fb00bcbe1ddca3a34cfe7a9344eadd1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/pt-PT/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/pt-PT/firefox-99.0.1.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "f94ba01eca76939d1ecbfccfd9647c96244effb080df98b4e04d3edfd80ffa48";
+      sha256 = "5be572a2928648ba36d1e775c79967ac17810f341dc84a2c69e8d7bad07e3a21";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/rm/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/rm/firefox-99.0.1.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "6b27aee9330a94e659da34f17213522687859263ed8500daf1d62fc496cff033";
+      sha256 = "47d11d7f4ba7fa8753845f3ab2cb4c36c2a20fa31cd9dd561d7032f3c28a9b22";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ro/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/ro/firefox-99.0.1.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "b6029f72497173e8aef444cb42437d6035354fe4a2bfe6359c50eefa4d6e1850";
+      sha256 = "c533fb1f8f845970e647a2d612c6ca23962d476b51696d12dde01e143ec50857";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ru/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/ru/firefox-99.0.1.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "73cbafa190a5083cfeba8ad0971d28eaaa228b9a9345ddc72d4f5d6490ebbad1";
+      sha256 = "571b016d12ec198148d52fa3e8ed25781cde49f3aaf8187ba881764b52d1c3f9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/sco/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/sco/firefox-99.0.1.tar.bz2";
       locale = "sco";
       arch = "linux-x86_64";
-      sha256 = "dd2d86ddcd270d2bb58c7152d15072341460a09b2da1639a76ac70afc9a714e6";
+      sha256 = "b30a42bd17bd2ee8843d791a00ac29f3ac91aa3d4de7b70ae603fe6365fc7906";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/si/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/si/firefox-99.0.1.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "0cf0281b2d082b3861947e5002f843df050586e96027ec30acba2913ce588daf";
+      sha256 = "509f987eac7b593cf24f6446ac7b78b2dc8e43dbf8b29dd82d0a107a596207f0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/sk/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/sk/firefox-99.0.1.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "8853372fdbe0834f6322e2e1c03d909b2c21f60496d7e679266dfc35e5835191";
+      sha256 = "4f44c500b355c5100dc476a807e8b212962e12c45b058b14cc0b5f84abac81b5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/sl/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/sl/firefox-99.0.1.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "ce97423a4ad380fb019b3e4c8d57a44bb15ca0b0afc7778a10fd23cb9382c143";
+      sha256 = "6ecd0f30d8ecf6e6b63512f59363c7a4a17389f468a21ac1119a98b467ecee39";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/son/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/son/firefox-99.0.1.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "468b642210c8c52ef5a8b91ddf81b9ff9c25768d7b0481f361e7c95861dfa5d0";
+      sha256 = "ddefd1ef806f3b39a51cd52d33a286f0145fc106c479e3f14a45a9e63c8ee374";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/sq/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/sq/firefox-99.0.1.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "8a079436e4be7ceb82b56f02d50054066906b2f819b787ba964d20c64ba731d1";
+      sha256 = "b69459ef0165648ba0b13b6d4ff6b27e80ad81181bf65b415e87574b21a2a021";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/sr/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/sr/firefox-99.0.1.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "e9f0f1a8d6bf3bcb6df32a27560e952e3373d712cee08fb97e1c41b76052d370";
+      sha256 = "8d53bd7943aa99bbea08be26cd4e5465b3889c8ee0dfb718c82f1ab65ce9e2fe";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/sv-SE/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/sv-SE/firefox-99.0.1.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "eb4b4092f1f667661afbce19e0d3ef75301976689f1ea2ee11104d11fea2ddd0";
+      sha256 = "d70d78df84a39f921253c613518e0737439d1e516248b64c8b79fe29eadf4520";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/szl/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/szl/firefox-99.0.1.tar.bz2";
       locale = "szl";
       arch = "linux-x86_64";
-      sha256 = "29c9fcd787fafc93480fabb59573dd500d557847079f032a6f3ca6e9c4422c80";
+      sha256 = "c02e86f128049d894f1d2144bc1baa3ceac4b58745c19428f2de5def7dc8ca36";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ta/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/ta/firefox-99.0.1.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "f07b8a79048b55d6fd8f7d19858ea2f1b5f53bde782c65ea7fb3f34d9cd5ac40";
+      sha256 = "18754112a15bd8d25ebc8ee456e43fd7bc97b5af014a8bb6ebc481e0fc18559d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/te/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/te/firefox-99.0.1.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "14882f8a3c425dd512c37f80fd45bdf9d34c4d7163454e1533c6306713935d36";
+      sha256 = "afeb892e3656d2d3c802d548bc78bada5a9a2d4f7300d5dccbb4af0b96902371";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/th/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/th/firefox-99.0.1.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "c91bb2249cd2b22ae86b1b51fe6c34062a4da7772eab97b1e39915a2c2782488";
+      sha256 = "049baf07a0db7abecdc3477c9965119c4acb0da26a9e8a4201fc2311ae3bc966";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/tl/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/tl/firefox-99.0.1.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "1c6fe06f19821a7a77a26bedf38ed3fea20561df0589c672027b2108e080e6b3";
+      sha256 = "9898714292846b9ec1bd277c279d6bc3a33186ad02e1c09a995c766044d168a2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/tr/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/tr/firefox-99.0.1.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "c06881993063dcdf6fbfebe139f9fdafe2ca37667375683ae85497603517b5a0";
+      sha256 = "378a940ecc44d0016f5e1764f667abd60fa2241ac11477811eda477621085475";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/trs/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/trs/firefox-99.0.1.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "fcfd9120933339006f1868b27e0fff1d60f562a3d11e826bbf9996f69d4256ae";
+      sha256 = "c338b68e0fb85bde3949abe2bb739e127453acd692e0460ffe1914ea4a5cf150";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/uk/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/uk/firefox-99.0.1.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "01cabeeb98988d4478d381b34e7c0e6cde887d2ea83feeb349763ee454760924";
+      sha256 = "2602c70ef4e449e15f95e661e916a4f5b978158f8e2e998f552ef79c4462d319";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ur/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/ur/firefox-99.0.1.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "db7de84fed953da53998ae6ff2456a02de833de22d13d1aa7e16f53d3bcb7fb1";
+      sha256 = "bc195325efa7668db62c3307d488b721843c620d804e75754d540789b0545950";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/uz/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/uz/firefox-99.0.1.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "9fe0fc4851f005160de9562123e48c19216cb013dcdd2b8bd2b745d7838062ea";
+      sha256 = "14cff13fe9ba0bc91629b95cc3f2f6df5164b538be5e285acd54cb8d6656e109";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/vi/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/vi/firefox-99.0.1.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "e335f20bd5a63c2fa17ce15fdebe0c5af5c6787d37bd49ad2da156b450383ae3";
+      sha256 = "5852f4eee3136058d7228c5eccc173153706d72b90c61ca632623d926aa84d7b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/xh/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/xh/firefox-99.0.1.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "9cd953e87b70c979a8c03fde8c989f626a23f62a7d59be8796a09c8a8950127f";
+      sha256 = "ca10968059585ceb6bdc0902f94bb69798c9b0666e2dec1cbcf42e5979be97c3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/zh-CN/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/zh-CN/firefox-99.0.1.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "2c7d059be4474164fddd349fc3f18d1f380af5f9ba82f8e01b04e2f18bcd09e8";
+      sha256 = "f9d5c1a1aef830b4276e0af88c783b419674219d599c52c414bc8da3eb99fd4f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/zh-TW/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-x86_64/zh-TW/firefox-99.0.1.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "37b5a0275b137b0ef578591ccf5a54518bdbb449915f4ad50c276952a0bcccd8";
+      sha256 = "6857ee348392d9cedc4f2bbe1c355bcbdaa1a886d4babc65ccfb2c95421219c5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ach/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/ach/firefox-99.0.1.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "b3b734eb8d62112f7983e86dbd49d2d3be3ed6d2f80fd2d7bc189f12e03ab0b6";
+      sha256 = "9b8a8950e770bf53cb85b0fb79f63d6aaed9a09df86421ef2ee30dab3b250ede";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/af/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/af/firefox-99.0.1.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "fcf6a355f70392606ec2ed5853b1d14e8d5923fd92c10774c776c43e6c8a6cdb";
+      sha256 = "fd464ccc673892932cf98fc4696146034928078de14f8c5df68a9103c20076df";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/an/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/an/firefox-99.0.1.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "388532ad380bf43c287ca3e7e29a3a6f97fbbc0e02c2ae5207ac07587c3faa2d";
+      sha256 = "76837e6555079a23fc33e83bbf9e507d4eb6e896501d43ae78cf5b8536e88a62";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ar/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/ar/firefox-99.0.1.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "178a38e6bec65a59679944fdd6882774d23bb15e62f2e697cf369742bc4c8196";
+      sha256 = "8346570bb699370f34d19ee93a705c9f81b57164ca14f7758c339be0837e9319";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ast/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/ast/firefox-99.0.1.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "5fa0aea769c7f7fba13168fb404f03b2cb8f6df5ab733054118df67015ab665f";
+      sha256 = "f14088ae65cda0b3ae518cc517d6d786fa4c7a471510ddf4d45f6c268761d324";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/az/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/az/firefox-99.0.1.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "62816d95c32f04090a5e23bc38ebc774355ac77dfdd1a41a2d6e10ce983c53ac";
+      sha256 = "e15d3764842a0febc41882c9f82e607b0b4dd875d765ab4079880b1cf8d0f327";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/be/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/be/firefox-99.0.1.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "918447a5f57647ed5d846a0a0bbbcbaa55559722de7b8dca2ed2e744eb14ce36";
+      sha256 = "e7336bcf602bb95697eb5c134da3ef96cdb9229233a4f135e44d7439fbc3d972";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/bg/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/bg/firefox-99.0.1.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "74851892da2c6c0a9a75d822aeef2c0a275fb5bbc32b88abb28e67f9310bb2ba";
+      sha256 = "a5c9d5cb091f4a643293879f7f0f0e2afa4a2e53efe08a97eca1fc8f5c77cb41";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/bn/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/bn/firefox-99.0.1.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "2a6f53aa3fec578a76368120bca30240bb631db9767159aedb3b5480c1ab661a";
+      sha256 = "2edcbeebb3a7afdb1322c55ad1ac1a8cd4f2dae7e45a009d113cfee4d159ef2e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/br/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/br/firefox-99.0.1.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "5d1d9478f459bcc3e6b148ff42d6f9f589b8fb395672e3b8ce8f333832b523dd";
+      sha256 = "dc78c6a0a71856b42c6654b3f3d2f93bd30808878a90c49dfecf2b724f42532c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/bs/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/bs/firefox-99.0.1.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "ed99ea471d6e30c0304bbb27bbdf88b479fee4df7f8cbba481d03de13954131a";
+      sha256 = "f9ba0d138252aff3abbd8f8447680b59f24f1a9b7a40d6ec753fccb74344a853";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ca-valencia/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/ca-valencia/firefox-99.0.1.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "5dd1447b3fea23f08551b2ab5a80581c3e0e09f5602709cbdce751d491faa60a";
+      sha256 = "68a8522e03191f286514b648d1cc7d6c9b7d1683638bb7a88d2ba33c3c8031c1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ca/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/ca/firefox-99.0.1.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "21f6c622de4016a8e372ae7d249a07800b4393ba02ab59994356869a01cef571";
+      sha256 = "71b29981fe6da252296c9669e3b05bcfa8914282b982455f6c21e1e47fc6c452";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/cak/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/cak/firefox-99.0.1.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "e9895877763157132e390f31c859b561c7d62adb011e209ab9cc0092ecfccb1a";
+      sha256 = "0964328bc005e028371852ecfeefed0b1bb4334840dd9e343ed15b3e0add3cfa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/cs/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/cs/firefox-99.0.1.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "13c94b8b12fcbee4d41c6f7289f0cf2f199ef3d750628cc0ea11a60534ab6954";
+      sha256 = "b72dbc0d7bc48884fb55d1e419680d753175e2d2d7fc91b362337e5963c59339";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/cy/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/cy/firefox-99.0.1.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "c21d9e83d14ac46effb9e12a5210d7b56e3d765eef877f8ac4ed5104582d2631";
+      sha256 = "553ba01218ca17602bf67fc4cd7940d6259fd1cedf1d70665d06053b7336311f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/da/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/da/firefox-99.0.1.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "74a4a14ae8d8f64c56ce4409851f3e8e51bac61e2223c022f40d56d341fdcc65";
+      sha256 = "41c01f3979fdec4823e18031497fcccba3380393a3b5e142ab8b1e59e247c87a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/de/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/de/firefox-99.0.1.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "d3449eec8075f3b6d07b2e6d7adecbec60a7e29b12c2016f642a90c5555971ed";
+      sha256 = "7d88786442c856c8502019d494d8c3b5bd09ad9aa0ce1e5a45216594ac915b5b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/dsb/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/dsb/firefox-99.0.1.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "0dfac7916796d4ec7943963e28d7ca65f78661b6f22c226afb2dd00db47917e0";
+      sha256 = "4b94ebf19d6fdd64e7fd1181bb47f1b89d68f04a5e9b3c29a3cd8e43c36ac898";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/el/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/el/firefox-99.0.1.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "c2769489e0947a7eeb0cb1f9d99d51317fd037e2a7bb06134403df1d4560a767";
+      sha256 = "12f61d5b97c906a9532028b14c7d86ef8ee04398460ecdb08496922f4c6abe34";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/en-CA/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/en-CA/firefox-99.0.1.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "87bb7162b58f7632ddf733fbdd4f195d75a9a6d467355c2625344171c72f4e9f";
+      sha256 = "b5804a8edc39eca3b04ec76fd87f5fc228a3df02b47094ca1a9d2020de0c1c29";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/en-GB/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/en-GB/firefox-99.0.1.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "89bbf10bb75effa9e8064b6c42d0a4d7fd21ac2cd6e4ed3625d92c6b55ba1ee6";
+      sha256 = "211b7adde34ffc0ef075cc4d34fb5bbc50d00543920747db7e434268c0948e74";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/en-US/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/en-US/firefox-99.0.1.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "888db6752eb5703af5fe5ab4b1575f2a35dbd204614552fbe3a276042a3509d5";
+      sha256 = "da446e05101a645ebc51cb9fb60bb33e68b8570448072c56baea4561b638338a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/eo/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/eo/firefox-99.0.1.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "a2004dc59269fb2b37e568767593bcc0a7862a109df18f548eb1a0b829cf4293";
+      sha256 = "e217817389a32bfd05272210b7bef6c80547c58e51d7df69b26e2931b2e89ec9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/es-AR/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/es-AR/firefox-99.0.1.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "9e2c0f6cb231c469660cc7fe63489e69a2616553d17c52f5e7a2a86a171bc6e9";
+      sha256 = "5f5c35e50809f33b769344c986fe468a404dad2b5c0a933f5dccf9481bad32c3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/es-CL/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/es-CL/firefox-99.0.1.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "dfe6f1229a6f80b6fab3a22fc8a8a6ecf3137b31805339a489ec53e5af63f040";
+      sha256 = "12434003ff87d5269cbe751adc53ce5396f98f36c8df7ab5535236cf778deb26";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/es-ES/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/es-ES/firefox-99.0.1.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "01020488ee2ad2e2357bbaf83857a2ad0820fb9f97302d1447cf4148b22d2bd4";
+      sha256 = "eef66f4f53ef38baf4b664b0428528117e376fbc57a743cade265adebe451d62";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/es-MX/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/es-MX/firefox-99.0.1.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "3c7bacc6f703cdff7adb9097bfc39f52a67aa6a9814d7a8f451d4ef50c591714";
+      sha256 = "e56dfa4f160d60b70d905c4acde1b78d4598dadaa63a0833f638cdadcc850e35";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/et/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/et/firefox-99.0.1.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "f2bc8e4200c89cf74ae6c984543e97b2523782dae70ecf6135f47943a01f1d83";
+      sha256 = "ab7b3244b55e3d663a89e46f7cf1ee211ab643c6f92112cf921b05343ded25e7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/eu/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/eu/firefox-99.0.1.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "62bf0d826adb66d755f38bf25199eaf3850c37bfddca627b597802a20f8d3367";
+      sha256 = "b626fa244d85a9c266e2c11f311133e6704adfcfcaa0ebd00a7dbf487e0d7a8b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/fa/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/fa/firefox-99.0.1.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "9d4dfff33db462c71eb12067f56f2e20b0a557f9cbf1234b617e1c2ab5832ea8";
+      sha256 = "743f58643846d3a769da6ba2fec2ba50f7c00a7f4a4447b684ef08f64d8be16d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ff/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/ff/firefox-99.0.1.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "5b3a271207003e25776a55b7ee6adba2f83e844d4b0a738209d21be7db82ac33";
+      sha256 = "3cd80abe0d157427d17cc502cdfb67fb4f48f237de97c7ba9e9d4af5f8ee1fc7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/fi/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/fi/firefox-99.0.1.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "50a9408303ac8fc7c22da96f993b0b251407261d35598b4fe06f1c545788ef0b";
+      sha256 = "d7ddda88e29c89e34c56e7467aabd3262430267fda1814933b2b03e1201b549d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/fr/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/fr/firefox-99.0.1.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "65db55f518be2abd8da5b52654bdf0efecd94b21ab843b76a6ad9e9ccb516a55";
+      sha256 = "b442b7cd5b1dafe98fb04ef68ef3d21fdb6a6beeacda3537c0fb2ff26a5d0a67";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/fy-NL/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/fy-NL/firefox-99.0.1.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "b3da8b5a077e4955bf2c662840005adaba2dd77af4724e965403da3139b5fb3f";
+      sha256 = "fbbe401d602c88cec32ea608eab714ebfa873ccf70d07102bfd3b8c59bcc39e4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ga-IE/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/ga-IE/firefox-99.0.1.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "f4812b90fa0a0391d2a372e7bf45a3393d59714209046618e7b1ed72f1889e2f";
+      sha256 = "fe6c9544bf67a30bd8266fafa92c56e1825c0e155d6e30225b5587719a683fe1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/gd/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/gd/firefox-99.0.1.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "769c42c86d5b3866f9ad38bc833f5f1f1b01c7f5ed6898eba064ce6f31c9f550";
+      sha256 = "d62bad0b209df9b74173e894af3a5e6c48b8d9321a2bbc3ef05e40f24db972e2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/gl/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/gl/firefox-99.0.1.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "b75ed9efccd63053589a3f60fbabb6ce5fc1c027a1a00789ff23b6971b0ebad5";
+      sha256 = "caa93a08ac9fe456f6f1480b514492ba884814dada450845a86cfb486463ef90";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/gn/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/gn/firefox-99.0.1.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "bf60ba48f5d5a18ef9aeaf631d564412788ca102990b69b176ac66c1b8e3535c";
+      sha256 = "eb44f048ae40e1c5693bcb31f7c2b50644b55c7f7229fb087b3757ad7c232fc3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/gu-IN/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/gu-IN/firefox-99.0.1.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "19f568337cfba71d7e1626099b1c6cee4d69a0332065779e5375da648d70a3f4";
+      sha256 = "5a536e35bb8734541b9a8266def5418c8b4eae66a60323c40dca7e0bc11e2ecd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/he/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/he/firefox-99.0.1.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "7d6a55d76f74d85e2f9da77ee071df31aed1c37f9fb139e448624a105b6ef19d";
+      sha256 = "b045e3b0a9789804775fdb9f28cf7c8a1293b12adb06f105afc4001648f22dd9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/hi-IN/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/hi-IN/firefox-99.0.1.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "12451d7cc49ca2629ffedeebd1d77f8ac96d5839ed165ea91f55a249427ebf09";
+      sha256 = "955ba8c9936da6b12f1422b0de5a696a849a72a352b994d62818477b07af5890";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/hr/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/hr/firefox-99.0.1.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "b2197d6d51847848cd849fef446e8b84725fc2b9539824e65719c4fd1d7f29ba";
+      sha256 = "bbbc1d1bd23b49197861fe389d2ab92580def84ce97f1643e50f4cd8de748e8c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/hsb/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/hsb/firefox-99.0.1.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "5000e21630440a446416de3cc38bcfc7c22bb8bc8d1a1a027c14b9548acff74a";
+      sha256 = "23afed3429959fee426a2e5fc08cb0cba058e2544b5f8c742fbcbdd51ac31afe";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/hu/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/hu/firefox-99.0.1.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "dee75736596f5f0dc1d6952327274d07f927ff42e7c9a0ed8c8ba8dc78a6b3f9";
+      sha256 = "2a42af969db30183a5fc547f4cdc75db99a8405550a2791de4303e5604a24133";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/hy-AM/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/hy-AM/firefox-99.0.1.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "4b7dcb46864b058bdbeb35404de32c88e2822dd0315f105e95f61be857288282";
+      sha256 = "79d134d0c95fb3be213ded965d02ec898891efe2c07dd82046e02adeb24641e4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ia/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/ia/firefox-99.0.1.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "e89e07b1d71e1b2ccfd4d412dabea164bae8448f57a5f99a07ab04f9dcaa0bab";
+      sha256 = "3e9f078057e53822a59509f1658f64b8d5563ffc69528193aa1473668e390f62";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/id/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/id/firefox-99.0.1.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "398ee6ed278cec1ceb489dd06d8f4c2671309a3e0d61f3202fd5280a5b596ca7";
+      sha256 = "5133875012d3165d3941740b80addfa3adcd0eec015dc21a6b1261b4d48b824c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/is/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/is/firefox-99.0.1.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "a3531b8f68ee22452390ff8e1c70d7f6b842e10ab60ca6666f79fd958284d099";
+      sha256 = "d59c86f8c71468cbbb7d8d4641e8baa8672fae0ee38a232782a63f29d1ad4d10";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/it/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/it/firefox-99.0.1.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "fe8fd2e7b0e87cb3b12ab6d8d973c422ef763d9d3a78620fe5a9f374455ccecc";
+      sha256 = "d583c577d73623e06aec514635c4191a9dbfc14a8cfd88880bc50abb0f5ae308";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ja/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/ja/firefox-99.0.1.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "5d52ec4afd7de44806b804b5de6e597228d7061c10b0cc8d6fabeca505a0b207";
+      sha256 = "31fd6b653338050651b8432a84278ae26bccdd7cdf0d4c2674a6208f5a3ad9a0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ka/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/ka/firefox-99.0.1.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "902abc9df459c6dd2168050764cb2301ffee566f4deb11b2ef7c694cf429cc58";
+      sha256 = "09e6a905151bcf7d373c6b9ec3bb00043361a4e06e08752834d581f6f211a595";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/kab/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/kab/firefox-99.0.1.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "aa96307da2c832df7ea7ea418d3dae6dd9f2aed56432a8ed6e43fabe71aa9828";
+      sha256 = "117bd25831806d7d8774907a49288ea91c8160add23d0decce9d1dd95bd3c918";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/kk/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/kk/firefox-99.0.1.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "addb689db7bb19f28db963ca61dd0ece3813f5ca21f3437c1320c3f972e19029";
+      sha256 = "6511f3a53cea4f210b52d37e7298427382c7a5738e1a055b38a4d41b6eb9fe3d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/km/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/km/firefox-99.0.1.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "7a982cdb847d162c6cedf724adebfab904cfacdbe3d4e48ee9af3e644e74cc14";
+      sha256 = "af231614cea8b247215d79c101bd59a135ff86965b6aaab2226016215164d240";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/kn/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/kn/firefox-99.0.1.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "d2cb6eb8c004d9c0e0929d8047d93902a2235b5068b86672c693edef1a2b8911";
+      sha256 = "abe0ba12cad7eb53f8592476efe3fbd93a1cf3d1108828db7eb3d9d6d3b639a5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ko/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/ko/firefox-99.0.1.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "63770f2a873b520e5b1c1bece82ea4a987a2ae6535f9c4047e99b68f62c91748";
+      sha256 = "6415de365af3c132afacaf114a804446d4df566693254e6659551d95016ed830";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/lij/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/lij/firefox-99.0.1.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "ff130a01dc266b5b49f39f9c4355a6576211c0008cd5008290266daff222e18d";
+      sha256 = "d882562d34ea5e49cd035cda2aa2489bc75db90b1e777be1a74dedc394d02e8f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/lt/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/lt/firefox-99.0.1.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "04105e0614b660d0e156b0aa2307af9d0d11236119b6667718d7f0f1f13ae505";
+      sha256 = "59add081878210ffbb9445dacf12f999ea6995fddec1444fb11b9c93c615abb5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/lv/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/lv/firefox-99.0.1.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "50dd34d558800dafc84d714f5cf08a26eb4970c3aa6b8850430aa156d8869549";
+      sha256 = "d11227308bb407aedc6d2559256d92fe931e5ea34498b511f5e23b8091e91766";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/mk/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/mk/firefox-99.0.1.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "8ca0b1cc9ff39757f2cc513d61a77d1d95a607862ea654d6743bf4a8f7bde99c";
+      sha256 = "34e1a97d0944d241d12b8a5d2f64ff34f7bc7a3c43b23ac05d13d794bf36e960";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/mr/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/mr/firefox-99.0.1.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "b24884486692dfcad578026498a3654d34ae78cd39e977b3708053bd7754d37b";
+      sha256 = "98746bc7f75898bbd5ca5c38b47f311d09d43a2264da85b0303ea4bd01d7a0fb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ms/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/ms/firefox-99.0.1.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "c43f2f10d928a3cf875e81afb54c09c1ef49ff8457069c054df2f62e0a43979f";
+      sha256 = "48a1a0892ad1ef2ab03e3e66f05401c1d6e231801d5f03ac63a7984225624818";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/my/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/my/firefox-99.0.1.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "296d3860c2224deaa43184fa85dfce21eb9fc9b11d080d7f71cc189c4a790ed3";
+      sha256 = "745a7e7c73d3161aff4bcaba915ed9939970d8e4478cbaebbb32f47380f1c029";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/nb-NO/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/nb-NO/firefox-99.0.1.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "b0ce5e0157ff9f64434b38cf9338960870bbf6bdb4b75494b82c8ba871868ff3";
+      sha256 = "c67804a726c68c534fc763893f0e7cc94ab55b9fd4844113ffffb467cefb63ed";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ne-NP/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/ne-NP/firefox-99.0.1.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "58b7a719e7fb10bf7bfbe23f4ffcf002434652f792a3a1ffbadb13a5e06a04ba";
+      sha256 = "69073cf042a8e78184f7f01db3ca88bd3b3d59960a3e51124cb9908150452115";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/nl/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/nl/firefox-99.0.1.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "2951dae0cbb3bec0e47ae44b70e6796ace16c8fbac18d7d04da84a51ded6a650";
+      sha256 = "24d30ce7f9cc2ad445c9aca32616a2efb9a3d392e62f855bbf5709d8160823bd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/nn-NO/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/nn-NO/firefox-99.0.1.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "6f44201f301931e3b51144d57a79c484b776c37cb29dda93b57795c0a756c62f";
+      sha256 = "d3a5034cb8ce135ec245c2ef94e799a31744a8592e6c5ba3935b19a77c087d53";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/oc/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/oc/firefox-99.0.1.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "899a48b47dd642a64de0ac9226b4655e74bba9f0f6d1eccebc1c1875e1d3ea12";
+      sha256 = "dbe0dfd961a543017ca8dcca6fae7168ca4d85a637f4d2dae7b02b6ea671b28f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/pa-IN/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/pa-IN/firefox-99.0.1.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "392b6e6cb3ca1ef3e17f73ca327bf7fd49d453ee0216f922dfc3bfc7b2ce18da";
+      sha256 = "1bcfb488ec1f3934415ee4af684e7dd40966265be65f43488d3d670d14790124";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/pl/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/pl/firefox-99.0.1.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "f4f6124c3520c58ee00b7f4f00a39a904657b21072fe3d822a17b072c8e69473";
+      sha256 = "484a8ee788ab6edce6b66f31c94f7fd0e671269ae470569129662ed4b7e9294b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/pt-BR/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/pt-BR/firefox-99.0.1.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "b19e3aee72fb779ab139535295d3279cd06c125349fb5ee71c12737ab2aff733";
+      sha256 = "d764f17b9eb2c8ac61c92490a20bcb4dd83810635b89a6405c4a0389ab15104f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/pt-PT/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/pt-PT/firefox-99.0.1.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "0924bc137f6eaaf6686249f59540eadfd9b09aa843a071bd7db5d62f742258af";
+      sha256 = "1a9b64665abf305dd38c6441e22448fa0cd5d142a69de96220b2f8683230a341";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/rm/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/rm/firefox-99.0.1.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "ea9b082ba495a19162c0945b865eae6f66c689962807873bf27ad59a3e83c85e";
+      sha256 = "8870c35cf68d654db389cea3df9951660d371c53804cb2d9fb5d8006155cb82c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ro/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/ro/firefox-99.0.1.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "3bbd902b4ace383d914f51553bce3de83c2ca4f6366e3f2dc42268795c7bf72b";
+      sha256 = "cb72b5316bc807095a64d8767822732ad18a2cec28c7a23bd603dcafbfd08f1a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ru/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/ru/firefox-99.0.1.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "84296b00a3646cf8d0e7ba3ec6cbc90592b8fe8b2dcc36b8c904d1e15c264575";
+      sha256 = "a5456041bc8cfc22d3f7a96a610c6d37b77bcba32b630fdab7fdb2753e46b40c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/sco/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/sco/firefox-99.0.1.tar.bz2";
       locale = "sco";
       arch = "linux-i686";
-      sha256 = "8f966e6fa33e9e0242dd422818c9c46c5ffe37ebeb34e01a7eb57258e0aea481";
+      sha256 = "539014a44ac79130666c6c4f5205ababf3bbb17d357632a0ba584a73c63bda93";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/si/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/si/firefox-99.0.1.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "3ce96976ec5e920b20fdb1ff7fa8d20db2a67c0797ac4307f7e387db91306719";
+      sha256 = "5f231e14acf1c896fdb9778d7821dfda13a756d4f861e74076b8fb02848dd08d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/sk/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/sk/firefox-99.0.1.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "1a4d37ac6777185230343dceb4902b55e0adad62d144347d09f031228583370c";
+      sha256 = "17c32fb881566fa09759d1374e957023c5fc6123b24791d4e8c94d4c2e971405";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/sl/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/sl/firefox-99.0.1.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "e1875f0077c3c03f34d7fa33e807d0297f831d451a045cd55accc493c3dce366";
+      sha256 = "d6121d2dcf47504111e924150cdf8360b039a5d7c4cef2a42b80ddb876a47127";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/son/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/son/firefox-99.0.1.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "1d13d9d3f9d8cfc03e5e45cd1c62a08b24437ed9feeb27ce42b07a75f0aefc04";
+      sha256 = "e83f6e4da3820c91cdb3125d49a71e4417cb37c0e7598fcf1bf138f21d94f485";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/sq/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/sq/firefox-99.0.1.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "e2ae3fa32c56258069cdb95231a5d3b44218d32f0b10afc4174ac204bda7acf5";
+      sha256 = "dcf6ed239eb78e370db2a60b9fc0eed96f71e741be66f9ac2a537357648304b2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/sr/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/sr/firefox-99.0.1.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "96a5178bdbca9f6d1434610aa0d35c32b6eb542d6d3e760ce778a8e4181515f7";
+      sha256 = "d724ad02d8153aa15bfeba33e476bbbc937c5a5210a3747a5ba253ab3605b725";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/sv-SE/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/sv-SE/firefox-99.0.1.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "fabe9274a8ac78ba84a394a7a5e7cfa22c41e3b58c8e6b94496fda6490bad644";
+      sha256 = "6c6ce7c4a7bf73b3cc26af264e4d6dfabcf75d88226903ffb11142657cfbf94e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/szl/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/szl/firefox-99.0.1.tar.bz2";
       locale = "szl";
       arch = "linux-i686";
-      sha256 = "d77505b5fe04946002e5d1a28081c7e2933ce910a8d67f4e5ed31508808cfd41";
+      sha256 = "d9996d12531225e5d181a2304326ca8de19cd6c0f02efedc890f90e4d5d1b72e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ta/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/ta/firefox-99.0.1.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "a34e5b28526f9861bdc7af910e0a3418404f4316ad5792607493a698f480c9a1";
+      sha256 = "d4b3776a8728da72a233db501eed0014cb60e87dd0c3b76cb4e5fd834dc323da";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/te/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/te/firefox-99.0.1.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "c3b8653af6ed8f4cf7e9f3e5a4a0c622a163f7c45dd0d1ddcb3936e1504ea1af";
+      sha256 = "8246cfb157b68d09a7e57f910ae33d522495120112a6debc3cfeb60a3e238d92";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/th/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/th/firefox-99.0.1.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "a6456037b76bf2adaa6a6d68f8b20f293f8a4fdbbc3e533c8a6a22aedcc3bf4d";
+      sha256 = "80c37b977ae6eaf6da2647800584a6ff9c430d6fd368ad89713a1ed7166cb197";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/tl/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/tl/firefox-99.0.1.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "51ff115845f3d70a9fb08f08fcd3c1f86a41b3570f81f460c24a5a87605a779d";
+      sha256 = "f7757f0e751989854f240bf5eb13b8c660a587bdb7f44616ee8e7a41bb71b2d3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/tr/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/tr/firefox-99.0.1.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "3ccb5735a16622dafe6ae465ba167ea164843c85df436e7cd20cf6e7a4fbb610";
+      sha256 = "533a04e78947202d86dbd79b170495e9027c81bd2db8be3d5f281d665e3505d6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/trs/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/trs/firefox-99.0.1.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "7d1a71033460524506082087ce1b3ddc424207ea3ade6e0bbdbb00310e74cfea";
+      sha256 = "eda683d0df13db0de392bd136ed86c3abbaf41a0617d559ee1d308e28f519487";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/uk/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/uk/firefox-99.0.1.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "6db06ed2f126c5307ef6380dff4dae14cc39ca58d23b827835d3e702acf33c72";
+      sha256 = "4c1cce01a785b8fa7c31fd5394337231db614cd96dacfa7963bb612996fc287c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ur/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/ur/firefox-99.0.1.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "d00bcd6b3c70919999e748046b3291279d313f850c3daedae37259b695cb351d";
+      sha256 = "628baa7d2e0f200ba2b623aada71bd0e69856b903a92d98c46f0552df8acca4c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/uz/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/uz/firefox-99.0.1.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "1d77240a5f6d7542a7035fd32fd73e07bee1e1e880800cabd01e357a3da30907";
+      sha256 = "626cc29fd753802c3a57d2521553d5957f985b925561eee6c2046464ded084f4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/vi/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/vi/firefox-99.0.1.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "9469a1c6613ea83a8e367c0e25e188ea9b9fddcc1497725a3ebb008fb5d5d73e";
+      sha256 = "963ea1b4758b64b67fe05a25d6775a1f8601a438d639bdda0d3ed740fe9ad8a5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/xh/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/xh/firefox-99.0.1.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "af3144bfcb52df706182fa04badf39be51e5774335af21d8ec38dcbebe3bdf13";
+      sha256 = "030f5a08c37ecaae8ef9c59f58e007b3c3484b9eabba33dbae91d89710390d85";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/zh-CN/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/zh-CN/firefox-99.0.1.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "fe6fc7bda0e52d64abcef8cbfc5e8576c64067b8746605e80790bde6dcd9b03d";
+      sha256 = "097b3e3912b1b024d7cb615ed400ea244af47ef90cdb0c89d7223915a040108d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/zh-TW/firefox-98.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0.1/linux-i686/zh-TW/firefox-99.0.1.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "18da6dcf61bba9a22b5487f695793d65b952cfc7065ff334b0faf8e7ec82d90f";
+      sha256 = "ca10fd6cafa25cdbd12b4e087d80a8212c947099a848b0b9f754ec6dbe8c6be9";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix
index a1e836151350c..e43251be80cc5 100644
--- a/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/pkgs/applications/networking/browsers/firefox/common.nix
@@ -61,7 +61,8 @@
 , libwebp
 , nasm
 , nspr
-, nss
+, nss_esr
+, nss_latest
 , pango
 , xorg
 , zip
@@ -356,7 +357,6 @@ buildStdenv.mkDerivation ({
     libwebp
     nasm
     nspr
-    nss
     pango
     perl
     xorg.libX11
@@ -373,6 +373,7 @@ buildStdenv.mkDerivation ({
     zip
     zlib
   ]
+  ++ [ (if (lib.versionAtLeast version "92") then nss_latest else nss_esr) ]
   ++ lib.optional  alsaSupport alsa-lib
   ++ lib.optional  pulseaudioSupport libpulseaudio # only headers are needed
   ++ lib.optional  gssSupport libkrb5
diff --git a/pkgs/applications/networking/browsers/firefox/librewolf/src.json b/pkgs/applications/networking/browsers/firefox/librewolf/src.json
index f24353089488a..9b770c743d2a6 100644
--- a/pkgs/applications/networking/browsers/firefox/librewolf/src.json
+++ b/pkgs/applications/networking/browsers/firefox/librewolf/src.json
@@ -1,11 +1,11 @@
 {
-  "packageVersion": "98.0.2-1",
+  "packageVersion": "99.0.1-3",
   "source": {
-    "rev": "98.0.2-1",
-    "sha256": "033l6mjmhfhf7b8p652s7ziw8zz725082hhzzvr3ahi498wshkx6"
+    "rev": "99.0.1-3",
+    "sha256": "0ag4n86hvyp6kx3hp60yn7q45rgjbx7054frj6226ni2ribjx4ln"
   },
   "firefox": {
-    "version": "98.0.2",
-    "sha512": "b567b53fcdc08491063d535545f558ea56ec5be02ca540661de116986245b79f509e0103cea5661faf9f4b3d30b67758ebdb4b30401e260ee27cbb300203f36e"
+    "version": "99.0.1",
+    "sha512": "0006b773ef1057a6e0b959d4f39849ad4a79272b38d565da98062b9aaf0effd2b729349c1f9fa10fccf7d2462d2c536b02c167ae6ad4556d6e519c6d22c25a7f"
   }
 }
diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix
index 94aa4d74feb6d..d52ec29abcf89 100644
--- a/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -7,10 +7,10 @@ in
 rec {
   firefox = common rec {
     pname = "firefox";
-    version = "98.0.2";
+    version = "99.0.1";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
-      sha512 = "b567b53fcdc08491063d535545f558ea56ec5be02ca540661de116986245b79f509e0103cea5661faf9f4b3d30b67758ebdb4b30401e260ee27cbb300203f36e";
+      sha512 = "0006b773ef1057a6e0b959d4f39849ad4a79272b38d565da98062b9aaf0effd2b729349c1f9fa10fccf7d2462d2c536b02c167ae6ad4556d6e519c6d22c25a7f";
     };
 
     meta = {
@@ -32,10 +32,10 @@ rec {
 
   firefox-esr-91 = common rec {
     pname = "firefox-esr";
-    version = "91.7.1esr";
+    version = "91.8.0esr";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
-      sha512 = "c56aa38e9d706ff1f1838d2639dac82109dcffb54a7ea17326ae306604d78967ac32da13676756999bc1aa0bf50dc4e7072936ceb16e2e834bea48382ae4b48c";
+      sha512 = "edea2c7d4d3d0322091b20b623019ef041090d9f89f33c8e3140f66a54624261f278257393db70d2038154de8ee02da0bee6ecf85c281f3558338da71fc173c3";
     };
 
     meta = {
diff --git a/pkgs/applications/networking/browsers/lagrange/default.nix b/pkgs/applications/networking/browsers/lagrange/default.nix
index 00d0bc8f6fd5d..681de76dda3b0 100644
--- a/pkgs/applications/networking/browsers/lagrange/default.nix
+++ b/pkgs/applications/networking/browsers/lagrange/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lagrange";
-  version = "1.11.1";
+  version = "1.12.2";
 
   src = fetchFromGitHub {
     owner = "skyjake";
     repo = "lagrange";
     rev = "v${version}";
-    sha256 = "sha256-RrdD+G8DKOBm0TpmRQg1uMGNFAlAADFeK3h6oyo5RZ4=";
+    sha256 = "sha256-AVitXfHIJmCBBkhg+DLkHeCSoyH6YMaTMaa4REDXEFg=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/networking/browsers/links2/default.nix b/pkgs/applications/networking/browsers/links2/default.nix
index 3a5b31e98e995..02b3f88d1e14e 100644
--- a/pkgs/applications/networking/browsers/links2/default.nix
+++ b/pkgs/applications/networking/browsers/links2/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
     homepage = "http://links.twibright.com/";
     description = "A small browser with some graphics support";
     maintainers = with maintainers; [ raskin ];
+    mainProgram = "links";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
   };
diff --git a/pkgs/applications/networking/browsers/palemoon/default.nix b/pkgs/applications/networking/browsers/palemoon/default.nix
index cce3f39d3c31f..eacc66271d5a8 100644
--- a/pkgs/applications/networking/browsers/palemoon/default.nix
+++ b/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -31,7 +31,7 @@
 , zip
 , zlib
 , withGTK3 ? true, gtk3, gtk2
-, testVersion
+, testers
 , palemoon
 }:
 
@@ -46,12 +46,12 @@ assert with lib.strings; (
 
 stdenv.mkDerivation rec {
   pname = "palemoon";
-  version = "29.4.5.1";
+  version = "29.4.6";
 
   src = fetchzip {
     name = "${pname}-${version}";
     url = "http://archive.palemoon.org/source/${pname}-${version}.source.tar.xz";
-    sha256 = "sha256-IC7E88dECAz2diVLEEdjMltpNMBhPTlPvbz05BniBMI=";
+    sha256 = "sha256-6bI3AnIhp0x3BCgTvmbOXDBGrJXg3cN+AmwI8XCKD8g=";
   };
 
   nativeBuildInputs = [
@@ -211,7 +211,7 @@ stdenv.mkDerivation rec {
       )"
       update-source-version ${pname} "$version"
     '';
-    tests.version = testVersion {
+    tests.version = testers.testVersion {
       package = palemoon;
     };
   };
diff --git a/pkgs/applications/networking/browsers/qtchan/default.nix b/pkgs/applications/networking/browsers/qtchan/default.nix
index 9786fad2fdc65..8ad81139fbe91 100644
--- a/pkgs/applications/networking/browsers/qtchan/default.nix
+++ b/pkgs/applications/networking/browsers/qtchan/default.nix
@@ -24,7 +24,7 @@ mkDerivation rec {
     description = "4chan browser in qt5";
     homepage    = "https://github.com/siavash119/qtchan";
     license     = licenses.mit;
-    maintainers = with maintainers; [ chiiruno ];
+    maintainers = with maintainers; [ Madouura ];
     platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/applications/networking/browsers/qutebrowser/default.nix b/pkgs/applications/networking/browsers/qutebrowser/default.nix
index 6d919ce520f57..ecce98c9b46af 100644
--- a/pkgs/applications/networking/browsers/qutebrowser/default.nix
+++ b/pkgs/applications/networking/browsers/qutebrowser/default.nix
@@ -1,10 +1,12 @@
 { stdenv, lib, fetchurl, fetchzip, python3
 , mkDerivationWith, wrapQtAppsHook, wrapGAppsHook, qtbase, qtwebengine, glib-networking
-, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2, pipewire_0_2
+, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2
 , libxslt, gst_all_1 ? null
 , withPdfReader      ? true
 , withMediaPlayback  ? true
 , backend            ? "webengine"
+, pipewireSupport    ? stdenv.isLinux
+, pipewire_0_2
 }:
 
 assert withMediaPlayback -> gst_all_1 != null;
@@ -77,7 +79,7 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
   postPatch = ''
     substituteInPlace qutebrowser/misc/quitter.py --subst-var-by qutebrowser "$out/bin/qutebrowser"
 
-    sed -i "s,/usr/share/,$out/share/,g" qutebrowser/utils/standarddir.py
+    sed -i "s,/usr,$out,g" qutebrowser/utils/standarddir.py
   '' + lib.optionalString withPdfReader ''
     sed -i "s,/usr/share/pdf.js,${pdfjs},g" qutebrowser/browser/pdfjs.py
   '';
@@ -121,7 +123,7 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
       "''${qtWrapperArgs[@]}"
       --add-flags '--backend ${backend}'
       --set QUTE_QTWEBENGINE_VERSION_OVERRIDE "${lib.getVersion qtwebengine}"
-      ${lib.optionalString (!stdenv.isDarwin && backend == "webengine") ''--prefix LD_LIBRARY_PATH : ${libPath}''}
+      ${lib.optionalString (pipewireSupport && backend == "webengine") ''--prefix LD_LIBRARY_PATH : ${libPath}''}
     )
   '';
 
diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index 28e11814029cf..12ff0aa75ec44 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -87,7 +87,7 @@ let
   fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
 
   # Upstream source
-  version = "11.0.9";
+  version = "11.0.10";
 
   lang = "en-US";
 
@@ -98,7 +98,7 @@ let
         "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
         "https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
       ];
-      sha256 = "0cl01bx64d6bmajknj7085nzc6841adkp65fz531r3y6nnpwr9ds";
+      sha256 = "1j39v01bb97hkhkfvz7xyfmv6y0sjjcymvn3sa9ahz2av1xlrplp";
     };
 
     i686-linux = fetchurl {
@@ -107,7 +107,7 @@ let
         "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
         "https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
       ];
-      sha256 = "0j6alhm1pqp7fb6nk55vzvr1qjz6gyd3vn6v2dkkvj9mgm57x1j5";
+      sha256 = "0vh913z828ncb8pwz461xx61ylxqp44rf9iah7n6lzda7hcw79r3";
     };
   };
 in
diff --git a/pkgs/applications/networking/browsers/vieb/default.nix b/pkgs/applications/networking/browsers/vieb/default.nix
index 7cbf4cad975ef..40ae8502c762d 100644
--- a/pkgs/applications/networking/browsers/vieb/default.nix
+++ b/pkgs/applications/networking/browsers/vieb/default.nix
@@ -2,13 +2,13 @@
 
 mkYarnPackage rec {
   pname = "vieb";
-  version = "7.1.2";
+  version = "7.2.0";
 
   src = fetchFromGitHub {
     owner = "Jelmerro";
     repo = pname;
     rev = version;
-    sha256 = "sha256-4LGg3w/rleTyHJd4867dog+/fIXhtKbYgF1bYKwoh/I=";
+    sha256 = "sha256-4iokmUzs72aVHb95D98ZITRygn4gGAc/K+M5uMnF2NM=";
   };
 
   packageJSON = ./package.json;
diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix
index 30d719593e83c..87be80bda8ce5 100644
--- a/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -20,11 +20,11 @@ let
   vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
 in stdenv.mkDerivation rec {
   pname = "vivaldi";
-  version = "5.1.2567.73-1";
+  version = "5.2.2623.39-1";
 
   src = fetchurl {
     url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
-    sha256 = "04jzhipn4ip7x3zdwmfnp6w0qc2y1qdfy5w3qyy0r114jz9s9i7g";
+    sha256 = "1dd44b109gdbjqcbf5rhvgyiqb6qi8vpimsh5fb359dmnqfan1hk";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix b/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
index 461fd0050cf1a..c550c8cea25a6 100644
--- a/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "chromium-codecs-ffmpeg-extra";
-  version = "97.0.4692.71";
+  version = "101.0.4951.15";
 
   src = fetchurl {
-    url = "https://launchpadlibrarian.net/579085093/${pname}_${version}-0ubuntu0.18.04.1_amd64.deb";
-    sha256 = "sha256-YUv1D8U776NJBRPvYJigG7gyH9zd19FbnjAvIEhfYpA=";
+    url = "https://launchpadlibrarian.net/594594495/${pname}_${version}-0ubuntu0.18.04.1_amd64.deb";
+    sha256 = "sha256-aelr/jODmgyVunSFFn6W+QHEmSWJeWzU4SaS5rjHli4=";
   };
 
   buildInputs = [ dpkg ];
diff --git a/pkgs/applications/networking/browsers/vivaldi/widevine.nix b/pkgs/applications/networking/browsers/vivaldi/widevine.nix
index 71a5a67331ed6..23205aa6846ef 100644
--- a/pkgs/applications/networking/browsers/vivaldi/widevine.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/widevine.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "widevine";
-  version = "4.10.2391.0";
+  version = "4.10.2449.0";
 
   src = fetchurl {
     url = "https://dl.google.com/widevine-cdm/${version}-linux-x64.zip";
-    sha256 = "sha256-7gH808C67m/s09e4rQUQHb/t+iGVdzW+YzrB1ZxGIdo=";
+    sha256 = "sha256-XZuXK3NCfqbaQ1tuMOXj/U4yJC18futqo1WjuMqMrRA=";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/applications/networking/c14/default.nix b/pkgs/applications/networking/c14/default.nix
deleted file mode 100644
index 3a9192164adf5..0000000000000
--- a/pkgs/applications/networking/c14/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-
-buildGoPackage rec {
-  pname = "c14-cli";
-  version = "0.3";
-
-  goPackagePath = "github.com/online-net/c14-cli";
-
-  src = fetchFromGitHub {
-    owner = "online-net";
-    repo = "c14-cli";
-    rev = version;
-    sha256 = "0b1piviy6vvdbak8y8bc24rk3c1fi67vv3352pmnzvrhsar2r5yf";
-  };
-
-  meta = with lib; {
-    description = "C14 is designed for data archiving & long-term backups";
-    homepage = "https://www.online.net/en/storage/c14-cold-storage";
-    license = licenses.mit;
-    maintainers = with maintainers; [ apeyroux ];
-  };
-}
diff --git a/pkgs/applications/networking/cloudflared/default.nix b/pkgs/applications/networking/cloudflared/default.nix
index e5a3fc2060e9d..566178d8305e1 100644
--- a/pkgs/applications/networking/cloudflared/default.nix
+++ b/pkgs/applications/networking/cloudflared/default.nix
@@ -1,27 +1,38 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, stdenv }:
 
 buildGoModule rec {
   pname = "cloudflared";
-  version = "2022.3.4";
+  version = "2022.4.1";
 
   src = fetchFromGitHub {
     owner  = "cloudflare";
     repo   = "cloudflared";
     rev    = version;
-    hash   = "sha256-W3XA3AOzuyHlFCps2ne4Fh2X+E48inJT4QrDJLOeD5M=";
+    hash   = "sha256-dgvXbWtLP6sXBlqcx/xpw9LIbcE4VlYZQO5rrS34+9I=";
   };
 
   vendorSha256 = null;
 
-  doCheck = false;
-
   ldflags = [ "-X main.Version=${version}" ];
 
+  preCheck = ''
+    # Workaround for: sshgen_test.go:74: mkdir /homeless-shelter/.cloudflared: no such file or directory
+    export HOME="$(mktemp -d)";
+
+    # Workaround for: protocol_test.go:11:
+    #   lookup protocol-v2.argotunnel.com on [::1]:53: read udp [::1]:51876->[::1]:53: read: connection refused
+
+    substituteInPlace "edgediscovery/protocol_test.go" \
+      --replace "TestProtocolPercentage" "SkipProtocolPercentage"
+  '';
+
+  doCheck = !stdenv.isDarwin;
+
   meta = with lib; {
     description = "CloudFlare Tunnel daemon (and DNS-over-HTTPS client)";
     homepage    = "https://www.cloudflare.com/products/tunnel";
     license     = licenses.asl20;
     platforms   = platforms.unix;
-    maintainers = with maintainers; [ bbigras enorris thoughtpolice ];
+    maintainers = with maintainers; [ bbigras enorris thoughtpolice techknowlogick ];
   };
 }
diff --git a/pkgs/applications/networking/cluster/argo/default.nix b/pkgs/applications/networking/cluster/argo/default.nix
index de1310f55d740..1881009f3e2c5 100644
--- a/pkgs/applications/networking/cluster/argo/default.nix
+++ b/pkgs/applications/networking/cluster/argo/default.nix
@@ -19,16 +19,16 @@ let
 in
 buildGoModule rec {
   pname = "argo";
-  version = "3.3.1";
+  version = "3.3.2";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo";
     rev = "v${version}";
-    sha256 = "sha256-IcKueb/bxPNwJ9bZWwmz4ywCtZGk0PSuH3KYDMp6Qd4=";
+    sha256 = "sha256-tl1UpoXBuIyJyMLHeIhQ6EHG1XqAGE6Tw5jU6rW+DXc=";
   };
 
-  vendorSha256 = "sha256-YeSeaYOkNRjQgxsK9G7iPbVpfrPs4HRRFwfoUDxoCm0=";
+  vendorSha256 = "sha256-cq452XEGMVbLvfJ/UiVyOvnUSJr196owB3SyBYnAmZ0=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/argocd-autopilot/default.nix b/pkgs/applications/networking/cluster/argocd-autopilot/default.nix
index 674db790f2237..c56f937223c97 100644
--- a/pkgs/applications/networking/cluster/argocd-autopilot/default.nix
+++ b/pkgs/applications/networking/cluster/argocd-autopilot/default.nix
@@ -2,17 +2,16 @@
 
 buildGoModule rec {
   pname = "argocd-autopilot";
-  version = "0.3.0";
-  commit = "c8d17bef976649e4dc2428c14c39e30a0f846552";
+  version = "0.3.5";
 
   src = fetchFromGitHub {
     owner = "argoproj-labs";
     repo = "argocd-autopilot";
     rev = "v${version}";
-    sha256 = "sha256-tggE1T+oD/dJS9tD9xOExjhy+T1GDd0vwTerD3P2KvA=";
+    sha256 = "sha256-YqnmtDVtprQQFbL++X9rUJFGj+fMD+fvDRWsQ+uOxxo=";
   };
 
-  vendorSha256 = "sha256-v8UMSObE6w+ULzueEK0UFeebLqoamy/788SQLBmJZ8U=";
+  vendorSha256 = "sha256-r8RTwMzFS/BkxW08+wfAovuFLpIOReDsuHi/Hx9cVPc=";
 
   proxyVendor = true;
 
@@ -24,7 +23,7 @@ buildGoModule rec {
       "-X ${package_url}.binaryName=${pname}"
       "-X ${package_url}.version=${src.rev}"
       "-X ${package_url}.buildDate=unknown"
-      "-X ${package_url}.gitCommit=${commit}"
+      "-X ${package_url}.gitCommit=${src.rev}"
       "-X ${package_url}.installationManifestURL=github.com/argoproj-labs/argocd-autopilot/manifests/base?ref=${src.rev}"
       "-X ${package_url}.installationManifestsNamespacedURL=github.com/argoproj-labs/argocd-autopilot/manifests/insecure?ref=${src.rev}"
     ];
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index 211c2ce211eb5..9ce9286e610c8 100644
--- a/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/pkgs/applications/networking/cluster/argocd/default.nix
@@ -2,20 +2,16 @@
 
 buildGoModule rec {
   pname = "argocd";
-  version = "2.3.2";
-  tag = "v${version}";
-  # Update commit to match the tag above
-  # TODO make updadeScript
-  commit = "ecc2af9dcaa12975e654cde8cbbeaffbb315f75c";
+  version = "2.3.3";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
-    rev = tag;
-    sha256 = "sha256-n+C4l4U3cDU+fgCnGWOYLdyjknw7n/xPEtC1i8AaU4o=";
+    rev = "v${version}";
+    sha256 = "sha256-ChgWqhkzVKhbyEA+g2flWK/WMxur7UHWXJUcLzp9RTE=";
   };
 
-  vendorSha256 = "sha256-Km+1o6yuuxJs+DNTQ/XVTUFurD5gM5ohwDc7MwJuu5s=";
+  vendorSha256 = "sha256-XrIIMnn65Y10KnVTsmw6vLE53Zra1lWNFgklmaj3gF8=";
 
   # Set target as ./cmd per release-cli
   # https://github.com/argoproj/argo-cd/blob/master/Makefile#L222
@@ -27,8 +23,8 @@ buildGoModule rec {
       "-s" "-w"
       "-X ${package_url}.version=${version}"
       "-X ${package_url}.buildDate=unknown"
-      "-X ${package_url}.gitCommit=${commit}"
-      "-X ${package_url}.gitTag=${tag}"
+      "-X ${package_url}.gitCommit=${src.rev}"
+      "-X ${package_url}.gitTag=${src.rev}"
       "-X ${package_url}.gitTreeState=clean"
     ];
 
@@ -43,7 +39,7 @@ buildGoModule rec {
 
   doInstallCheck = true;
   installCheckPhase = ''
-    $out/bin/argocd version --client | grep ${tag} > /dev/null
+    $out/bin/argocd version --client | grep ${src.rev} > /dev/null
   '';
 
   postInstall = ''
diff --git a/pkgs/applications/networking/cluster/arkade/default.nix b/pkgs/applications/networking/cluster/arkade/default.nix
index 297e12a80a208..47a5e8d22facc 100644
--- a/pkgs/applications/networking/cluster/arkade/default.nix
+++ b/pkgs/applications/networking/cluster/arkade/default.nix
@@ -6,18 +6,18 @@
 
 buildGoModule rec {
   pname = "arkade";
-  version = "0.8.18";
+  version = "0.8.23";
 
   src = fetchFromGitHub {
     owner = "alexellis";
     repo = "arkade";
     rev = version;
-    sha256 = "sha256-VQI2eAxOkOkwYkTM/UyyK6lnXFoLFHWE/ekm5qLN9OE=";
+    sha256 = "sha256-y3NsYPGVlWA/N2AYw3EQKUwLeGYwRI29tC9iTPeyU3Q=";
   };
 
   CGO_ENABLED = 0;
 
-  vendorSha256 = "sha256-An52QMjHaHRIicxCBpjgi+S2QeKXhB9rndjV+FIkS3c=";
+  vendorSha256 = "sha256-E+fjDW7UIAYDiDI8Eb8atAtccEIRcV5hqYdSxRYM9fc=";
 
   # Exclude pkg/get: tests downloading of binaries which fail when sandbox=true
   subPackages = [
diff --git a/pkgs/applications/networking/cluster/atlantis/default.nix b/pkgs/applications/networking/cluster/atlantis/default.nix
index dcb6b823667ee..55807caa5afb1 100644
--- a/pkgs/applications/networking/cluster/atlantis/default.nix
+++ b/pkgs/applications/networking/cluster/atlantis/default.nix
@@ -2,21 +2,24 @@
 
 buildGoModule rec {
   pname = "atlantis";
-  version = "0.16.1";
+  version = "0.19.2";
 
   src = fetchFromGitHub {
     owner = "runatlantis";
     repo = "atlantis";
     rev = "v${version}";
-    sha256 = "sha256-D549pInoK8ispgcn8LYdix19Hp7wO6w2/d2Y1L/9Px8=";
+    sha256 = "sha256-cd2dhrqJl/VRhOYB1g9OpOnPV92EQm8f3rRGZGVN+IY=";
   };
 
-  vendorSha256 = null;
-
-  doCheck = false;
+  vendorSha256 = "sha256-ux+Hw/TjeiY9VYhIQxaltZGk5CkxAab8R7kAsTaMUGc=";
 
   subPackages = [ "." ];
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/atlantis version | grep ${version} > /dev/null
+  '';
+
   meta = with lib; {
     homepage = "https://github.com/runatlantis/atlantis";
     description = "Terraform Pull Request Automation";
diff --git a/pkgs/applications/networking/cluster/cilium/default.nix b/pkgs/applications/networking/cluster/cilium/default.nix
index cf1ada47189f2..bde7a21b33ef1 100644
--- a/pkgs/applications/networking/cluster/cilium/default.nix
+++ b/pkgs/applications/networking/cluster/cilium/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cilium-cli";
-  version = "0.10.4";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
     owner = "cilium";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-1/WXpXZ6f4p4IZ/yropCjH3hHt+t5HGw0aq0HFk04mo=";
+    sha256 = "sha256-8twqA8aUuk5+LzjxMRbRA3m6qiEbk60A0q3nw9uzCvU=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix b/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
index 4667b130e8db5..ec9f45a83886e 100644
--- a/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
+++ b/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
@@ -39,6 +39,7 @@ buildGoModule rec {
     description = "The official command line client for Cloud Foundry";
     homepage = "https://github.com/cloudfoundry/cli";
     maintainers = with maintainers; [ ris ];
+    mainProgram = "cf";
     license = licenses.asl20;
   };
 }
diff --git a/pkgs/applications/networking/cluster/cmctl/default.nix b/pkgs/applications/networking/cluster/cmctl/default.nix
index df34db0e14766..86c7eddd7ab02 100644
--- a/pkgs/applications/networking/cluster/cmctl/default.nix
+++ b/pkgs/applications/networking/cluster/cmctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "cmctl";
-  version = "1.7.2";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "cert-manager";
     repo = "cert-manager";
     rev = "v${version}";
-    sha256 = "sha256-Hx6MG5GCZyOX0tfpg1bfUT0BOI3p7Mws1VCz2PuUuw8=";
+    sha256 = "sha256-h7GyzjVrfyMHY7yuNmmsym6KGKCQr5R71gjPBTUeMCg=";
   };
 
-  vendorSha256 = "sha256-4zhdpedOmLl/i1G0QCto4ACxguWRZLzOm5HfMBMtvPY=";
+  vendorSha256 = "sha256-UYw9WdQ6VwzuuiOsa1yovkLZG7NmLYSW51p8UhmQMeI=";
 
   subPackages = [ "cmd/ctl" ];
 
diff --git a/pkgs/applications/networking/cluster/driftctl/default.nix b/pkgs/applications/networking/cluster/driftctl/default.nix
index fc8d8da18af83..4b5f60b973b49 100644
--- a/pkgs/applications/networking/cluster/driftctl/default.nix
+++ b/pkgs/applications/networking/cluster/driftctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "driftctl";
-  version = "0.26.0";
+  version = "0.28.1";
 
   src = fetchFromGitHub {
     owner = "snyk";
     repo = "driftctl";
     rev = "v${version}";
-    sha256 = "sha256-cwI27hAfnSKT7P2rfM86tRtSKRR9bruRV9w440uGLIU=";
+    sha256 = "sha256-v6NtnCwIAqzlbtvwmWr39wauPxT0I/m5HOykQfmAexQ=";
   };
 
-  vendorSha256 = "sha256-I0OCRhUvuaF4k5qqPaV6R24mrd9AG5GgQCCF6yodK0E=";
+  vendorSha256 = "sha256-2mAPOUAv0ORRCMxesmcwZZh9SCa12k94y/iiN/rzUbs=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/fluxcd/default.nix b/pkgs/applications/networking/cluster/fluxcd/default.nix
index 0e9630a23d538..586272b184611 100644
--- a/pkgs/applications/networking/cluster/fluxcd/default.nix
+++ b/pkgs/applications/networking/cluster/fluxcd/default.nix
@@ -1,9 +1,9 @@
 { lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }:
 
 let
-  version = "0.28.5";
-  sha256 = "11k8sb8pjhrg8ar256rfdw736cg32m6n8xcfhyqc3r4pkj3ksli8";
-  manifestsSha256 = "1gjya8xcmx065ywx7bc2xdsp3qj2y47b7l1dlr4y0hzp19pclmcw";
+  version = "0.29.3";
+  sha256 = "02qdczd8x6dl6gsyjyrmga9i67shm54xixckxvva1lhl33zz5wwm";
+  manifestsSha256 = "0ar73dwz5j19qwcp85cd87gx0kwm7ys4xcyk91gj88s5i3djd9sl";
 
   manifests = fetchzip {
     url =
@@ -23,7 +23,7 @@ in buildGoModule rec {
     inherit sha256;
   };
 
-  vendorSha256 = "sha256-kxI2sOaY66XLIRMT1l3VLQh1XR4nvvsYvsdZbVLxbHM=";
+  vendorSha256 = "sha256-VWTtHquq/8/nKBGLuIdg2xkpGz1ofhPlQf3NTaQaHBI=";
 
   postUnpack = ''
     cp -r ${manifests} source/cmd/flux/manifests
diff --git a/pkgs/applications/networking/cluster/hadoop/default.nix b/pkgs/applications/networking/cluster/hadoop/default.nix
index adb46540cba7d..202b9fd5e68d6 100644
--- a/pkgs/applications/networking/cluster/hadoop/default.nix
+++ b/pkgs/applications/networking/cluster/hadoop/default.nix
@@ -17,6 +17,8 @@
 , openssl
 , glibc
 , nixosTests
+, sparkSupport ? true
+, spark
 }:
 
 with lib;
@@ -52,6 +54,9 @@ let
             --prefix PATH : "${makeBinPath [ bash coreutils which]}"\
             --prefix JAVA_LIBRARY_PATH : "${makeLibraryPath buildInputs}"
         done
+      '' + optionalString sparkSupport ''
+        # Add the spark shuffle service jar to YARN
+        cp ${spark.src}/yarn/spark-${spark.version}-yarn-shuffle.jar $out/lib/${untarDir}/share/hadoop/yarn/
       '' + libPatches;
 
       passthru = { inherit tests; };
diff --git a/pkgs/applications/networking/cluster/helm-docs/default.nix b/pkgs/applications/networking/cluster/helm-docs/default.nix
index f7c05843bcfc3..1d3c9f43e906b 100644
--- a/pkgs/applications/networking/cluster/helm-docs/default.nix
+++ b/pkgs/applications/networking/cluster/helm-docs/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "helm-docs";
-  version = "1.7.0";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = "norwoodj";
     repo = "helm-docs";
     rev = "v${version}";
-    sha256 = "sha256-TXwEVyRYRiVqCDL7IR+DIu1iKqaq81W5xkvz+laxVek=";
+    sha256 = "sha256-OpS/CYBb2Ll6ktvEhqkw/bWMSrFa4duidK3Glu8EnPw=";
   };
 
-  vendorSha256 = "sha256-XTV0gyUWe6G5gxucsXOaDOUQoKMCfhrWzlKwUOaA6y4=";
+  vendorSha256 = "sha256-FpmeOQ8nV+sEVu2+nY9o9aFbCpwSShQUFOmyzwEQ9Pw=";
 
   subPackages = [ "cmd/helm-docs" ];
   ldflags = [
diff --git a/pkgs/applications/networking/cluster/helm/default.nix b/pkgs/applications/networking/cluster/helm/default.nix
index 408f1bd3ed8a6..b6f9028d52abd 100644
--- a/pkgs/applications/networking/cluster/helm/default.nix
+++ b/pkgs/applications/networking/cluster/helm/default.nix
@@ -1,19 +1,17 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+{ lib, stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
-  pname = "helm";
-  version = "3.8.1";
-  gitCommit = "5cb9af4b1b271d11d7a97a71df3ac337dd94ad37";
+  pname = "kubernetes-helm";
+  version = "3.8.2";
+  gitCommit = "6e3701edea09e5d55a8ca2aae03a68917630e91b";
 
   src = fetchFromGitHub {
     owner = "helm";
     repo = "helm";
     rev = "v${version}";
-    sha256 = "sha256-AjNrn46l9gVC7MtGF59QWv+l6qYn+jzopsZtM/2faXY=";
+    sha256 = "sha256-lFAzp7ZxyMZAEO1cNFkEPLgTLEGa6azv36xiTIz4FZY=";
   };
-  vendorSha256 = "sha256-ffbp7J8XDxo/s79pjoiDVbft0pr/lJpuJuKiMpQwkT0=";
-
-  doCheck = false;
+  vendorSha256 = "sha256-FLEydmR+UEZ80VYLxBU1ZdwpdLgTjUpqiMItnt9UuLY=";
 
   subPackages = [ "cmd/helm" ];
   ldflags = [
@@ -23,6 +21,19 @@ buildGoModule rec {
     "-X helm.sh/helm/v3/internal/version.gitCommit=${gitCommit}"
   ];
 
+  preCheck = ''
+    # skipping version tests because they require dot git directory
+    substituteInPlace cmd/helm/version_test.go \
+      --replace "TestVersion" "SkipVersion"
+  '' + lib.optionalString stdenv.isLinux ''
+    # skipping plugin tests on linux
+    substituteInPlace cmd/helm/plugin_test.go \
+      --replace "TestPluginDynamicCompletion" "SkipPluginDynamicCompletion" \
+      --replace "TestLoadPlugins" "SkipLoadPlugins"
+    substituteInPlace cmd/helm/helm_test.go \
+      --replace "TestPluginExitCode" "SkipPluginExitCode"
+  '';
+
   nativeBuildInputs = [ installShellFiles ];
   postInstall = ''
     $out/bin/helm completion bash > helm.bash
@@ -33,7 +44,8 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/kubernetes/helm";
     description = "A package manager for kubernetes";
+    mainProgram = "helm";
     license = licenses.asl20;
-    maintainers = with maintainers; [ rlupton20 edude03 saschagrunert Frostman Chili-Man ];
+    maintainers = with maintainers; [ rlupton20 edude03 saschagrunert Frostman Chili-Man techknowlogick ];
   };
 }
diff --git a/pkgs/applications/networking/cluster/helmfile/default.nix b/pkgs/applications/networking/cluster/helmfile/default.nix
index da3b85d899334..14cb38d60ce2c 100644
--- a/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "helmfile";
-  version = "0.143.5";
+  version = "0.144.0";
 
   src = fetchFromGitHub {
     owner = "roboll";
     repo = "helmfile";
     rev = "v${version}";
-    sha256 = "sha256-48DbN3O5HVlNpHct6uKw9CjeaDlAZqY+/Tqd4a9mmUw=";
+    sha256 = "sha256-mfRPrgnOXqfmbpvaIxJNkgkdTEJKcFycrgFmQ7YDvTU=";
   };
 
   vendorSha256 = "sha256-ddf3m0DGsjubzp/aERvhfJ51UKKSNMC1Xu7ybyif8HA=";
diff --git a/pkgs/applications/networking/cluster/istioctl/default.nix b/pkgs/applications/networking/cluster/istioctl/default.nix
index da633af2b8f7f..6c88926ca2429 100644
--- a/pkgs/applications/networking/cluster/istioctl/default.nix
+++ b/pkgs/applications/networking/cluster/istioctl/default.nix
@@ -12,8 +12,6 @@ buildGoModule rec {
   };
   vendorSha256 = "sha256-AOcWkcw+2DcgBxvxRO/sdb339a7hmI7Oy5I4kW4oE+k=";
 
-  doCheck = false;
-
   nativeBuildInputs = [ installShellFiles ];
 
   # Bundle release metadata
@@ -39,7 +37,7 @@ buildGoModule rec {
     description = "Istio configuration command line utility for service operators to debug and diagnose their Istio mesh";
     homepage = "https://istio.io/latest/docs/reference/commands/istioctl";
     license = licenses.asl20;
-    maintainers = with maintainers; [ veehaitch ];
+    maintainers = with maintainers; [ superherointj bryanasdev000 veehaitch ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/networking/cluster/k3s/default.nix b/pkgs/applications/networking/cluster/k3s/default.nix
index fa355b65131a8..aeca62764f0d7 100644
--- a/pkgs/applications/networking/cluster/k3s/default.nix
+++ b/pkgs/applications/networking/cluster/k3s/default.nix
@@ -46,12 +46,12 @@ with lib;
 # Those pieces of software we entirely ignore upstream's handling of, and just
 # make sure they're in the path if desired.
 let
-  k3sVersion = "1.23.4+k3s1";     # k3s git tag
-  k3sCommit = "43b1cb48200d8f6af85c16ed944d68fcc96b6506"; # k3s git commit at the above version
-  k3sRepoSha256 = "1sn7rd5hqfqvwj036blk0skmq6r8igbmiqk1dnpaqnkkddpzdgmc";
-  k3sVendorSha256 = "sha256-1/kQvNqFUWwch1JH+twWzBdjNYseoZyVObB1+s9WPM4=";
+  k3sVersion = "1.23.5+k3s1";     # k3s git tag
+  k3sCommit = "313aaca547f030752788dce696fdf8c9568bc035"; # k3s git commit at the above version
+  k3sRepoSha256 = "0vk72609cyyh64irp14jp2zspnxw34jm710cbwgklx0ch6kiz88d";
+  k3sVendorSha256 = "sha256-d7kQsJi/eQbaTUDglp3gFpc5Im6CyD9coKeM3kMrbjI=";
 
-  k3sServerVendorSha256 = "sha256-2KIFff43jfqWdxX61aWofrjmc5mMkr5aEJRFdGpLyU8=";
+  k3sServerVendorSha256 = "sha256-E3USXNuXY0lzZH+t3O7BOQ8rKNNQ6avOMItgOEi1cEg=";
 
   # taken from ./manifests/traefik.yaml, extracted from '.spec.chart' https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/download#L9
   # The 'patch' and 'minor' versions are currently hardcoded as single digits only, so ignore the trailing two digits. Weird, I know.
@@ -68,8 +68,8 @@ let
 
   # taken from go.mod, the 'github.com/containerd/containerd' line
   # run `grep github.com/containerd/containerd go.mod | head -n1 | awk '{print $4}'`
-  containerdVersion = "1.5.9-k3s1";
-  containerdSha256 = "09wfy20z3c9fnla353pibpsb10xzl0f4xwp8qdjh3fwa1q2626gg";
+  containerdVersion = "1.5.10-k3s1";
+  containerdSha256 = "1ff2sfaqpjimq7w0lprci6ibyi6v65ap6b9sr6b0j12gqr2sqwa5";
 
   # run `grep github.com/kubernetes-sigs/cri-tools go.mod | head -n1 | awk '{print $4}'` in the k3s repo at the tag
   criCtlVersion = "1.22.0-k3s1";
@@ -228,9 +228,24 @@ buildGoModule rec {
 
   patches = [
     ./patches/0001-scrips-download-strip-downloading-just-package-CRD.patch
-    ./patches/0002-Don-t-build-a-static-binary-in-package-cli.patch
   ];
 
+  postPatch = ''
+    # Nix prefers dynamically linked binaries over static binary.
+
+    substituteInPlace scripts/package-cli \
+      --replace '"$LDFLAGS $STATIC" -o' \
+                '"$LDFLAGS" -o' \
+      --replace "STATIC=\"-extldflags \'-static\'\"" \
+                ""
+
+    # Upstream codegen fails with trimpath set. Removes "trimpath" for 'go generate':
+
+    substituteInPlace scripts/package-cli \
+      --replace '"''${GO}" generate' \
+                'GOFLAGS="" "''${GO}" generate'
+  '';
+
   # Important utilities used by the kubelet, see
   # https://github.com/kubernetes/kubernetes/issues/26093#issuecomment-237202494
   # Note the list in that issue is stale and some aren't relevant for k3s.
diff --git a/pkgs/applications/networking/cluster/k3s/patches/0002-Don-t-build-a-static-binary-in-package-cli.patch b/pkgs/applications/networking/cluster/k3s/patches/0002-Don-t-build-a-static-binary-in-package-cli.patch
deleted file mode 100644
index 886b6ec7409be..0000000000000
--- a/pkgs/applications/networking/cluster/k3s/patches/0002-Don-t-build-a-static-binary-in-package-cli.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 49c000c7c5dd7a502a2be4c638d2c32b65673c00 Mon Sep 17 00:00:00 2001
-From: Euan Kemp <euank@euank.com>
-Date: Sun, 6 Feb 2022 23:13:00 -0800
-Subject: [PATCH] Don't build a static binary in package-cli
-
-since nixpkgs prefers dynamically linked binaries.
-
-Also remove "trimpath" for the 'go generate' step because the codegen
-they use doesn't work with trimpath set.
----
- scripts/package-cli | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/scripts/package-cli b/scripts/package-cli
-index 28927327b7..95dbb469f1 100755
---- a/scripts/package-cli
-+++ b/scripts/package-cli
-@@ -48,14 +48,13 @@ fi
- 
- CMD_NAME=dist/artifacts/k3s${BIN_SUFFIX}
- 
--"${GO}" generate
-+GOFLAGS="" "${GO}" generate
- LDFLAGS="
-     -X github.com/rancher/k3s/pkg/version.Version=$VERSION
-     -X github.com/rancher/k3s/pkg/version.GitCommit=${COMMIT:0:8}
-     -w -s
- "
--STATIC="-extldflags '-static'"
--CGO_ENABLED=0 "${GO}" build -ldflags "$LDFLAGS $STATIC" -o ${CMD_NAME} ./cmd/k3s/main.go
-+CGO_ENABLED=0 "${GO}" build -ldflags "$LDFLAGS" -o ${CMD_NAME} ./cmd/k3s/main.go
- 
- stat ${CMD_NAME}
- 
--- 
-2.34.1
-
diff --git a/pkgs/applications/networking/cluster/kompose/default.nix b/pkgs/applications/networking/cluster/kompose/default.nix
index c01e1c8c00417..517ab55d9d2d9 100644
--- a/pkgs/applications/networking/cluster/kompose/default.nix
+++ b/pkgs/applications/networking/cluster/kompose/default.nix
@@ -1,19 +1,24 @@
-{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles, testVersion, kompose }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "kompose";
-  version = "1.21.0";
-
-  goPackagePath = "github.com/kubernetes/kompose";
+  version = "1.26.1";
 
   src = fetchFromGitHub {
-    rev = "v${version}";
     owner = "kubernetes";
     repo = "kompose";
-    sha256 = "15a1alf6ywwfc4z5kdcnv64fp3cfy3qrcw62ny6xyn1kh1w24vkh";
+    rev = "v${version}";
+    sha256 = "sha256-NfzqGG5ZwPpmjhvcvXN1AA+kfZG/oujbAEtXkm1mzeU=";
   };
 
+  vendorSha256 = "sha256-OR5U2PnebO0a+lwU09Dveh0Yxk91cmSRorTxQIO5lHc=";
+
   nativeBuildInputs = [ installShellFiles ];
+
+  ldflags = [ "-s" "-w" ];
+
+  checkFlags = [ "-short" ];
+
   postInstall = ''
     for shell in bash zsh; do
       $out/bin/kompose completion $shell > kompose.$shell
@@ -21,6 +26,11 @@ buildGoPackage rec {
     done
   '';
 
+  passthru.tests.version = testVersion {
+    package = kompose;
+    command = "kompose version";
+  };
+
   meta = with lib; {
     description = "A tool to help users who are familiar with docker-compose move to Kubernetes";
     homepage = "https://kompose.io";
diff --git a/pkgs/applications/networking/cluster/kops/default.nix b/pkgs/applications/networking/cluster/kops/default.nix
index da8e14d1f3074..69eafdddf93f9 100644
--- a/pkgs/applications/networking/cluster/kops/default.nix
+++ b/pkgs/applications/networking/cluster/kops/default.nix
@@ -65,8 +65,8 @@ rec {
   };
 
   kops_1_23 = mkKops rec {
-    version = "1.23.0";
-    sha256 = "sha256-tiVNUaW0an6C8M9bxEX5pvB/W5IjZ/S24RdPikzm3bc=";
+    version = "1.23.1";
+    sha256 = "sha256-SiseHs5cMj8DR1f6z9PTbtF/h3Bn9riiLWW5KMYwVUg=";
     rev = "v${version}";
   };
 }
diff --git a/pkgs/applications/networking/cluster/krane/Gemfile.lock b/pkgs/applications/networking/cluster/krane/Gemfile.lock
index 1c1b8dc7b7157..ba7e5bb0a633f 100644
--- a/pkgs/applications/networking/cluster/krane/Gemfile.lock
+++ b/pkgs/applications/networking/cluster/krane/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (7.0.1)
+    activesupport (7.0.2.3)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -9,11 +9,11 @@ GEM
     addressable (2.8.0)
       public_suffix (>= 2.0.2, < 5.0)
     colorize (0.8.1)
-    concurrent-ruby (1.1.9)
+    concurrent-ruby (1.1.10)
     domain_name (0.5.20190701)
       unf (>= 0.0.5, < 1.0.0)
     ejson (1.3.1)
-    faraday (1.9.3)
+    faraday (1.10.0)
       faraday-em_http (~> 1.0)
       faraday-em_synchrony (~> 1.0)
       faraday-excon (~> 1.1)
@@ -58,12 +58,12 @@ GEM
     http-form_data (2.3.0)
     http-parser (1.2.3)
       ffi-compiler (>= 1.0, < 2.0)
-    i18n (1.8.11)
+    i18n (1.10.0)
       concurrent-ruby (~> 1.0)
-    jsonpath (1.1.0)
+    jsonpath (1.1.1)
       multi_json
     jwt (2.3.0)
-    krane (2.4.0)
+    krane (2.4.6)
       activesupport (>= 5.0)
       colorize (~> 0.8)
       concurrent-ruby (~> 1.1)
@@ -74,7 +74,7 @@ GEM
       oj (~> 3.0)
       statsd-instrument (>= 2.8, < 4)
       thor (>= 1.0, < 2.0)
-    kubeclient (4.9.2)
+    kubeclient (4.9.3)
       http (>= 3.0, < 5.0)
       jsonpath (~> 1.0)
       recursive-open-struct (~> 1.1, >= 1.1.1)
@@ -89,7 +89,7 @@ GEM
     netrc (0.11.0)
     oj (3.13.11)
     os (1.1.4)
-    public_suffix (4.0.6)
+    public_suffix (4.0.7)
     rake (13.0.6)
     recursive-open-struct (1.1.3)
     rest-client (2.1.0)
@@ -98,9 +98,9 @@ GEM
       mime-types (>= 1.16, < 4.0)
       netrc (~> 0.8)
     ruby2_keywords (0.0.5)
-    signet (0.16.0)
+    signet (0.16.1)
       addressable (~> 2.8)
-      faraday (>= 0.17.3, < 2.0)
+      faraday (>= 0.17.5, < 3.0)
       jwt (>= 1.5, < 3.0)
       multi_json (~> 1.10)
     statsd-instrument (3.1.2)
@@ -109,7 +109,7 @@ GEM
       concurrent-ruby (~> 1.0)
     unf (0.1.4)
       unf_ext
-    unf_ext (0.0.8)
+    unf_ext (0.0.8.1)
 
 PLATFORMS
   ruby
@@ -118,4 +118,4 @@ DEPENDENCIES
   krane
 
 BUNDLED WITH
-   2.2.24
+   2.3.9
diff --git a/pkgs/applications/networking/cluster/krane/gemset.nix b/pkgs/applications/networking/cluster/krane/gemset.nix
index e14b6902fe26e..058910072a783 100644
--- a/pkgs/applications/networking/cluster/krane/gemset.nix
+++ b/pkgs/applications/networking/cluster/krane/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02lys9pnb99hsczs551iqzjn008i8k7c728xxba7acfi9rdw9pa6";
+      sha256 = "1jpydd414j0fig3r0f6ci67mchclg6cq2qgqbq9zplrbg40pzfi8";
       type = "gem";
     };
-    version = "7.0.1";
+    version = "7.0.2.3";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -36,10 +36,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nwad3211p7yv9sda31jmbyw6sdafzmdi2i2niaz6f0wk5nq9h0f";
+      sha256 = "0s4fpn3mqiizpmpy2a24k4v365pv75y50292r8ajrv4i1p5b2k14";
       type = "gem";
     };
-    version = "1.1.9";
+    version = "1.1.10";
   };
   domain_name = {
     dependencies = ["unf"];
@@ -68,10 +68,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y32gj994ll3zlcqjmwp78r7s03iiwayij6fz2pjpkfywgvp71s6";
+      sha256 = "00palwawk897p5gypw5wjrh93d4p0xz2yl9w93yicb4kq7amh8d4";
       type = "gem";
     };
-    version = "1.9.3";
+    version = "1.10.0";
   };
   faraday-em_http = {
     groups = ["default"];
@@ -265,10 +265,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vdd1kii40qhbr9n8qx71k2gskq6rkl8ygy8hw5hfj8bb5a364xf";
+      sha256 = "0b2qyvnk4yynlg17ymkq4g5xgr275637fhl1mjh0valw3cb1fhhg";
       type = "gem";
     };
-    version = "1.8.11";
+    version = "1.10.0";
   };
   jsonpath = {
     dependencies = ["multi_json"];
@@ -276,10 +276,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12hjsr0plnx6v0bh1rhhimfi7z3rqm19xb47ybdkc1h9yhynnmdq";
+      sha256 = "0slr38w21gwizkq4nk6c7l7lcqc2c733zfn5fq1pmbwy5bwiggad";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.1.1";
   };
   jwt = {
     groups = ["default"];
@@ -297,10 +297,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xnf0cw5i1i8l5nm1c9z02h184ad6hvy7fydr4bdzckjkyinamv9";
+      sha256 = "16rf7qzwshlbhrc9fdgq44fcf2qbgjwik1kwkv1gncy12lvwfdmz";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.4.6";
   };
   kubeclient = {
     dependencies = ["http" "jsonpath" "recursive-open-struct" "rest-client"];
@@ -308,10 +308,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kld1w4706dfd6jx3snsi4h2pvqfazz1fni5al2ln60s3b8sybq4";
+      sha256 = "0ih04d0vgj91rl66iaqh8jmpskwz3g6mgajid0wlzi5skxqqxlym";
       type = "gem";
     };
-    version = "4.9.2";
+    version = "4.9.3";
   };
   memoist = {
     groups = ["default"];
@@ -409,10 +409,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+      sha256 = "1f3knlwfwm05sfbaihrxm4g772b79032q14c16q4b38z8bi63qcb";
       type = "gem";
     };
-    version = "4.0.6";
+    version = "4.0.7";
   };
   rake = {
     groups = ["default"];
@@ -461,10 +461,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cgmadrpgkpcklvvm2cga9mnrfqwqlydwpask1wx617h5ha6954k";
+      sha256 = "1jwyggz80xb3yi2hycmmw214c4072g8i56y0b0gsmpkiyk5d0vh1";
       type = "gem";
     };
-    version = "0.16.0";
+    version = "0.16.1";
   };
   statsd-instrument = {
     groups = ["default"];
@@ -513,9 +513,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jmbimpnpjdzz8hlrppgl9spm99qh3qzbx0b81k3gkgwba8nk3yd";
+      sha256 = "0bf120xbq23zjyf8zi8h1576d71g58srr8rndig0whn10w72vrxz";
       type = "gem";
     };
-    version = "0.0.8";
+    version = "0.0.8.1";
   };
 }
diff --git a/pkgs/applications/networking/cluster/kube3d/default.nix b/pkgs/applications/networking/cluster/kube3d/default.nix
index 0da63fae4215c..21469e57a7507 100644
--- a/pkgs/applications/networking/cluster/kube3d/default.nix
+++ b/pkgs/applications/networking/cluster/kube3d/default.nix
@@ -15,7 +15,7 @@ buildGoModule rec {
 
   nativeBuildInputs = [ installShellFiles ];
 
-  excludedPackages = "\\(tools\\|docgen\\)";
+  excludedPackages = [ "tools" "docgen" ];
 
   ldflags =
     let t = "github.com/rancher/k3d/v5/version"; in
@@ -50,6 +50,7 @@ buildGoModule rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ kuznero jlesquembre ngerstle jk ricochet ];
+    mainProgram = "k3d";
     platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/applications/networking/cluster/kubeless/default.nix b/pkgs/applications/networking/cluster/kubeless/default.nix
deleted file mode 100644
index 537fb611783ea..0000000000000
--- a/pkgs/applications/networking/cluster/kubeless/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }:
-
-buildGoPackage rec {
-  pname = "kubeless";
-  version = "1.0.7";
-
-  src = fetchFromGitHub {
-    owner = "kubeless";
-    repo = "kubeless";
-    rev = "v${version}";
-    sha256 = "0x2hydywnnlh6arzz71p7gg9yzq5z2y2lppn1jszvkbgh11kkqfr";
-  };
-
-  goPackagePath = "github.com/kubeless/kubeless";
-
-  nativeBuildInputs = [ installShellFiles ];
-
-  subPackages = [ "cmd/kubeless" ];
-
-  ldflags = [
-    "-s" "-w" "-X github.com/kubeless/kubeless/pkg/version.Version=${version}"
-  ];
-
-  postInstall = ''
-    for shell in bash; do
-      $out/bin/kubeless completion $shell > kubeless.$shell
-      installShellCompletion kubeless.$shell
-    done
-  '';
-
-  meta = with lib; {
-    homepage = "https://kubeless.io";
-    description = "The Kubernetes Native Serverless Framework";
-    license = licenses.asl20;
-    maintainers = with maintainers; [];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/applications/networking/cluster/kubernetes/kubectl.nix b/pkgs/applications/networking/cluster/kubernetes/kubectl.nix
index b1c15458543d3..ae8db695b9fe0 100644
--- a/pkgs/applications/networking/cluster/kubernetes/kubectl.nix
+++ b/pkgs/applications/networking/cluster/kubernetes/kubectl.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
     installShellCompletion --cmd kubectl \
       --bash <($out/bin/kubectl completion bash) \
+      --fish <($out/bin/kubectl completion fish) \
       --zsh <($out/bin/kubectl completion zsh)
     runHook postInstall
   '';
diff --git a/pkgs/applications/networking/cluster/kubeseal/default.nix b/pkgs/applications/networking/cluster/kubeseal/default.nix
index b42a98405d2d1..72218fa2209b7 100644
--- a/pkgs/applications/networking/cluster/kubeseal/default.nix
+++ b/pkgs/applications/networking/cluster/kubeseal/default.nix
@@ -13,8 +13,6 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
-  doCheck = false;
-
   subPackages = [ "cmd/kubeseal" ];
 
   ldflags = [ "-s" "-w" "-X main.VERSION=${version}" ];
diff --git a/pkgs/applications/networking/cluster/kuttl/default.nix b/pkgs/applications/networking/cluster/kuttl/default.nix
index 64f13ad6b60f9..13a16c6c50c2f 100644
--- a/pkgs/applications/networking/cluster/kuttl/default.nix
+++ b/pkgs/applications/networking/cluster/kuttl/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     homepage = "https://github.com/kudobuilder/kuttl";
     license = licenses.asl20;
     maintainers = with maintainers; [ diegolelis ];
+    mainProgram = "kubectl-kuttl";
   };
 }
diff --git a/pkgs/applications/networking/cluster/nomad/1.1.nix b/pkgs/applications/networking/cluster/nomad/1.1.nix
index 750e49fc1e186..bbc1dc9949bba 100644
--- a/pkgs/applications/networking/cluster/nomad/1.1.nix
+++ b/pkgs/applications/networking/cluster/nomad/1.1.nix
@@ -6,7 +6,7 @@
 
 callPackage ./generic.nix {
   inherit buildGoModule nvidia_x11 nvidiaGpuSupport;
-  version = "1.1.8";
-  sha256 = "05k1r157h3jaqzzsrkgc96zcny3mi8dvixc2v1w0lwcxixqk0y2l";
-  vendorSha256 = "03hjin9nybf7fpbj5r82qh19qh3cc8m0b236mk0ajhsyjqrk8pir";
+  version = "1.1.12";
+  sha256 = "19y52sn4qz0vx9s188nf7rkr7y2cbq6h33l98sr4w85kmainn86s";
+  vendorSha256 = "0p582y2q6zpyn7vmv1p8p8r2gbh786pqc6lpipgr7rpxbnxf5v4b";
 }
diff --git a/pkgs/applications/networking/cluster/ocm/default.nix b/pkgs/applications/networking/cluster/ocm/default.nix
index 1bacd8510dc40..73a5d964f34bb 100644
--- a/pkgs/applications/networking/cluster/ocm/default.nix
+++ b/pkgs/applications/networking/cluster/ocm/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub, testVersion, ocm }:
+{ lib, buildGoModule, fetchFromGitHub, testers, ocm }:
 
 buildGoModule rec {
   pname = "ocm";
@@ -18,7 +18,7 @@ buildGoModule rec {
     ln -s $GOPATH/bin/ocm ocm
   '';
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = ocm;
     command = "ocm version";
   };
diff --git a/pkgs/applications/networking/cluster/odo/default.nix b/pkgs/applications/networking/cluster/odo/default.nix
index be85981f7bf4a..fb1888d62358f 100644
--- a/pkgs/applications/networking/cluster/odo/default.nix
+++ b/pkgs/applications/networking/cluster/odo/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub, testVersion, odo }:
+{ lib, buildGoModule, fetchFromGitHub, testers, odo }:
 
 buildGoModule rec {
   pname = "odo";
@@ -22,7 +22,7 @@ buildGoModule rec {
     cp -a odo $out/bin
   '';
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = odo;
     command = "odo version";
     version = "v${version}";
diff --git a/pkgs/applications/networking/cluster/openshift/default.nix b/pkgs/applications/networking/cluster/openshift/default.nix
index aade6c549f31c..bab73c41f5f59 100644
--- a/pkgs/applications/networking/cluster/openshift/default.nix
+++ b/pkgs/applications/networking/cluster/openshift/default.nix
@@ -4,7 +4,7 @@
 , libkrb5
 , git
 , installShellFiles
-, testVersion
+, testers
 , openshift
 }:
 
@@ -52,7 +52,7 @@ buildGoModule rec {
     installShellCompletion --zsh contrib/completions/zsh/*
   '';
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = openshift;
     command = "oc version";
     version = "v${version}";
diff --git a/pkgs/applications/networking/cluster/pachyderm/default.nix b/pkgs/applications/networking/cluster/pachyderm/default.nix
index 65a4a19384305..570481f49b27e 100644
--- a/pkgs/applications/networking/cluster/pachyderm/default.nix
+++ b/pkgs/applications/networking/cluster/pachyderm/default.nix
@@ -20,5 +20,6 @@ buildGoPackage rec {
     homepage = "https://github.com/pachyderm/pachyderm";
     license = licenses.asl20;
     maintainers = with maintainers; [offline];
+    mainProgram = "pachctl";
   };
 }
diff --git a/pkgs/applications/networking/cluster/pgo-client/default.nix b/pkgs/applications/networking/cluster/pgo-client/default.nix
index 33dbb47d11c2d..fc7110a89ae81 100644
--- a/pkgs/applications/networking/cluster/pgo-client/default.nix
+++ b/pkgs/applications/networking/cluster/pgo-client/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     changelog = "https://github.com/CrunchyData/postgres-operator/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = [ maintainers.bryanasdev000 ];
+    mainProgram = "pgo";
   };
 }
diff --git a/pkgs/applications/networking/cluster/popeye/default.nix b/pkgs/applications/networking/cluster/popeye/default.nix
index 25fa2c4adc551..08e55ec6693fd 100644
--- a/pkgs/applications/networking/cluster/popeye/default.nix
+++ b/pkgs/applications/networking/cluster/popeye/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "popeye";
-  version = "0.9.8";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "derailed";
     repo = "popeye";
-    sha256 = "sha256-uGy2BbZS4SGT0w9ICYPUIfFawSvIVMsEezPfPAPQU/Q=";
+    sha256 = "sha256-iCsEYbEENDOg69wdWu9QQ8tTGxvaY2i/Hboc6XSYyEM=";
   };
 
   ldflags = [
@@ -17,7 +17,7 @@ buildGoModule rec {
     "-X github.com/derailed/popeye/cmd.commit=${version}"
   ];
 
-  vendorSha256 = "sha256-vUUDLMicop5QzZmAHi5qrc0hx8oV2xWNFHvCWioLhl8=";
+  vendorSha256 = "sha256-aLTzhBMwQHa6twzBC3FyMsZa1vQsBDdg4MpzJWZz3n4=";
 
   doCheck = true;
 
diff --git a/pkgs/applications/networking/cluster/sonobuoy/default.nix b/pkgs/applications/networking/cluster/sonobuoy/default.nix
index f08f403de2824..4b935027d2e28 100644
--- a/pkgs/applications/networking/cluster/sonobuoy/default.nix
+++ b/pkgs/applications/networking/cluster/sonobuoy/default.nix
@@ -1,11 +1,11 @@
 { lib, buildGoModule, fetchFromGitHub }:
 
 # SHA of ${version} for the tool's help output. Unfortunately this is needed in build flags.
-let rev = "1005bee8fff1b8daa30ddbcca717d03384630a71";
+let rev = "51c79060fc1433233eb43842de564f0f2e47be86";
 in
 buildGoModule rec {
   pname = "sonobuoy";
-  version = "0.56.3"; # Do not forget to update `rev` above
+  version = "0.56.4"; # Do not forget to update `rev` above
 
   ldflags =
     let t = "github.com/vmware-tanzu/sonobuoy";
@@ -20,10 +20,10 @@ buildGoModule rec {
     owner = "vmware-tanzu";
     repo = "sonobuoy";
     rev = "v${version}";
-    sha256 = "sha256-7yN3/bGjcntzMQRbB//fmqvD7me/xKLytfF+mQ1fcfc=";
+    sha256 = "sha256-6kHqfWDrZL3J5SrZ3JK50Z2Sw8mwM0zrfaKWo22g27A=";
   };
 
-  vendorSha256 = "sha256-qKXm39CwrTcXENIMh2BBS3MUlhJvmTTA3UzZNpF0PCc=";
+  vendorSha256 = "sha256-8n4a1PLUYDU46lVegQoOCmmRSR1XfnjgEGZ+R5f36Ic=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/cluster/spark/default.nix b/pkgs/applications/networking/cluster/spark/default.nix
index 057be75aeb343..a3ca42dff3424 100644
--- a/pkgs/applications/networking/cluster/spark/default.nix
+++ b/pkgs/applications/networking/cluster/spark/default.nix
@@ -6,6 +6,7 @@
 , python3Packages
 , extraPythonPackages ? [ ]
 , coreutils
+, hadoopSupport ? true
 , hadoop
 , RSupport ? true
 , R
@@ -17,12 +18,13 @@ let
   spark = { pname, version, sha256, extraMeta ? {} }:
     stdenv.mkDerivation rec {
       inherit pname version;
+      jdk = if hadoopSupport then hadoop.jdk else jdk8;
       src = fetchzip {
         url = "mirror://apache/spark/${pname}-${version}/${pname}-${version}-bin-without-hadoop.tgz";
         sha256 = sha256;
       };
       nativeBuildInputs = [ makeWrapper ];
-      buildInputs = [ jdk8 python3Packages.python ]
+      buildInputs = [ jdk python3Packages.python ]
         ++ extraPythonPackages
         ++ optional RSupport R;
 
@@ -34,9 +36,11 @@ let
         cp $out/lib/${untarDir}/conf/log4j.properties{.template,}
 
         cat > $out/lib/${untarDir}/conf/spark-env.sh <<- EOF
-        export JAVA_HOME="${jdk8}"
+        export JAVA_HOME="${jdk}"
         export SPARK_HOME="$out/lib/${untarDir}"
+      '' + optionalString hadoopSupport ''
         export SPARK_DIST_CLASSPATH=$(${hadoop}/bin/hadoop classpath)
+      '' + ''
         export PYSPARK_PYTHON="${python3Packages.python}/bin/${python3Packages.python.executable}"
         export PYTHONPATH="\$PYTHONPATH:$PYTHONPATH"
         ${optionalString RSupport ''
diff --git a/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix b/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
index f7401d36b0ea6..2caa0dc228081 100644
--- a/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
+++ b/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
@@ -17,7 +17,12 @@ stdenv.mkDerivation rec {
 
   src = fetchurl source;
 
-  nativeBuildInputs = [ autoPatchelfHook ] ++ (if stdenv.isDarwin then [ unzip ] else [ dpkg ]);
+  nativeBuildInputs = lib.optionals stdenv.isLinux [
+    autoPatchelfHook
+    dpkg
+  ] ++ lib.optionals stdenv.isDarwin [
+    unzip
+  ];
 
   unpackPhase = if stdenv.isDarwin then "unzip $src" else "dpkg-deb -x $src .";
 
diff --git a/pkgs/applications/networking/cluster/starboard/default.nix b/pkgs/applications/networking/cluster/starboard/default.nix
index 30ca2ee1cdee5..9dc32d67dff62 100644
--- a/pkgs/applications/networking/cluster/starboard/default.nix
+++ b/pkgs/applications/networking/cluster/starboard/default.nix
@@ -2,36 +2,42 @@
 
 buildGoModule rec {
   pname = "starboard";
-  version = "0.14.1";
+  version = "0.15.4";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-sB7C0IKadgpQ2h6HuH4D6ku/GXnFfFS+fGCW/RBSc10=";
+    sha256 = "sha256-GhcHvKqYktBAPB443ZjJ3LYRJZorO7IH1OEnEQKUO0g=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
     postFetch = ''
       cd "$out"
-      commit="$(git rev-parse HEAD)"
-      source_date_epoch=$(git log --date=format:'%Y-%m-%dT%H:%M:%SZ' -1 --pretty=%ad)
-      substituteInPlace "$out/cmd/starboard/main.go" \
-        --replace 'commit  = "none"' "commit  = \"$commit\"" \
-        --replace 'date    = "unknown"' "date    = \"$source_date_epoch\""
+      git rev-parse HEAD > $out/COMMIT
+      # 0000-00-00T00:00:00Z
+      date -u -d "@$(git log -1 --pretty=%ct)" "+%Y-%m-%dT%H:%M:%SZ" > $out/SOURCE_DATE_EPOCH
       find "$out" -name .git -print0 | xargs -0 rm -rf
     '';
   };
-  vendorSha256 = "sha256-R7tF724y5WNIByE+9nRoNSZDZzfLtPfK/9tSBkARaN0=";
+  vendorSha256 = "sha256-ozbejIFR0mDgCgca+2yaPRiMMHLOEsC9u+kQUe69spc=";
 
   nativeBuildInputs = [ installShellFiles ];
 
   subPackages = [ "cmd/starboard" ];
 
   ldflags = [
-    "-s" "-w" "-X main.version=v${version}"
+    "-s"
+    "-w"
+    "-X main.version=v${version}"
   ];
 
+  # ldflags based on metadata from git and source
+  preBuild = ''
+    ldflags+=" -X main.gitCommit=$(cat COMMIT)"
+    ldflags+=" -X main.buildDate=$(cat SOURCE_DATE_EPOCH)"
+  '';
+
   preCheck = ''
     # Remove test that requires networking
     rm pkg/plugin/aqua/client/client_integration_test.go
diff --git a/pkgs/applications/networking/cluster/talosctl/default.nix b/pkgs/applications/networking/cluster/talosctl/default.nix
index 374d9c972c7c3..704d5a85682c4 100644
--- a/pkgs/applications/networking/cluster/talosctl/default.nix
+++ b/pkgs/applications/networking/cluster/talosctl/default.nix
@@ -1,11 +1,11 @@
 { lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 let
   # look for GO_LDFLAGS getting set in the Makefile
-  version = "0.14.3";
-  sha256 = "sha256-toEbWUZxnJkUe9jkZRdJrcPXu+CIh62fUKyX38OkXxU=";
-  vendorSha256 = "sha256-Pj1918TIOGfhkRiFEKkURL4xMFgWroiNsNU6yWzT8yk=";
-  pkgsVersion = "v0.9.0-6-gbfcc795";
-  extrasVersion = "v0.7.0-2-gb4c9d21";
+  version = "1.0.3";
+  sha256 = "sha256-unGr+T2uYg7/4pAXf8vp9Hpi6IrCsLCqGbyBC7QXGX8=";
+  vendorSha256 = "sha256-9NYr5Ok9oQ1ajYFiTeU9ztmX/55UROBjNawLGjm4HYU=";
+  pkgsVersion = "v1.0.0-8-g76f8c5b";
+  extrasVersion = "v1.0.0-2-gc5d3ab0";
 in
 buildGoModule rec {
   pname = "talosctl";
@@ -13,7 +13,7 @@ buildGoModule rec {
   # nixpkgs-update: no auto update
 
   src = fetchFromGitHub {
-    owner = "talos-systems";
+    owner = "siderolabs";
     repo = "talos";
     rev = "v${version}";
     inherit sha256;
@@ -26,14 +26,16 @@ buildGoModule rec {
       mgmtHelpersPkg = "github.com/talos-systems/talos/cmd/talosctl/pkg/mgmt/helpers"; #MGMT_HELPERS_PKG
     in
     [
-      "-X ${versionPkg}.Name=Talos"
+      "-X ${versionPkg}.Name=Client"
       "-X ${versionPkg}.SHA=${src.rev}" # should be the hash, but as we build from tags, this needs to do
       "-X ${versionPkg}.Tag=${src.rev}"
       "-X ${versionPkg}.PkgsVersion=${pkgsVersion}" # PKGS
       "-X ${versionPkg}.ExtrasVersion=${extrasVersion}" # EXTRAS
-      "-X ${imagesPkgs}.Username=talos-systems" # USERNAME
+      "-X ${imagesPkgs}.Username=siderolabs" # USERNAME
       "-X ${imagesPkgs}.Registry=ghcr.io" # REGISTRY
       "-X ${mgmtHelpersPkg}.ArtifactsPath=_out" # ARTIFACTS
+      "-s"
+      "-w"
     ];
 
   subPackages = [ "cmd/talosctl" ];
@@ -51,7 +53,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A CLI for out-of-band management of Kubernetes nodes created by Talos";
-    homepage = "https://github.com/talos-systems/talos";
+    homepage = "https://www.talos.dev/";
     license = licenses.mpl20;
     maintainers = with maintainers; [ flokli ];
   };
diff --git a/pkgs/applications/networking/cluster/tanka/default.nix b/pkgs/applications/networking/cluster/tanka/default.nix
index 0d21e440031da..0c9776f9f7920 100644
--- a/pkgs/applications/networking/cluster/tanka/default.nix
+++ b/pkgs/applications/networking/cluster/tanka/default.nix
@@ -31,6 +31,7 @@ buildGoModule rec {
     homepage = "https://tanka.dev";
     license = licenses.asl20;
     maintainers = with maintainers; [ mikefaille ];
+    mainProgram = "tk";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/networking/cluster/tektoncd-cli/default.nix b/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
index bdd538ef804d3..bf5dc60d88b5e 100644
--- a/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
+++ b/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
 
   # third_party/VENDOR-LICENSE breaks build/check as go files are still included
   # docs is a tool for generating docs
-  excludedPackages = "\\(third_party\\|cmd/docs\\)";
+  excludedPackages = [ "third_party" "cmd/docs" ];
 
   preCheck = ''
     # some tests try to write to the home dir
@@ -61,5 +61,6 @@ buildGoModule rec {
     '';
     license = licenses.asl20;
     maintainers = with maintainers; [ jk mstrangfeld vdemeester ];
+    mainProgram = "tkn";
   };
 }
diff --git a/pkgs/applications/networking/cluster/terraform-providers/default.nix b/pkgs/applications/networking/cluster/terraform-providers/default.nix
index 0bdb6289a6116..0be97ceb9b14f 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/default.nix
@@ -32,6 +32,7 @@ let
         CGO_ENABLED = 0;
         ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.commit=${rev}" ];
         src = fetchFromGitHub {
+          name = "source-${rev}";
           inherit owner repo rev sha256;
         };
 
@@ -104,5 +105,8 @@ let
       ultradns = archived "2022/01";
       vthunder = throw "provider was renamed to thunder on 2022/01";
     };
+
+  # excluding aliases, used by terraform-full
+  actualProviders = automated-providers // special-providers;
 in
-automated-providers // special-providers // removed-providers // { inherit mkProvider; }
+actualProviders // removed-providers // { inherit actualProviders mkProvider; }
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json
index 6f32892d4dafd..0f1f3a73bc1df 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -21,29 +21,29 @@
     "owner": "aiven",
     "provider-source-address": "registry.terraform.io/aiven/aiven",
     "repo": "terraform-provider-aiven",
-    "rev": "v2.7.0",
-    "sha256": "12n97z3r5bz7hwgcz193x90n7ibk4fdph7pqxwwinrvlc6zb7hz6",
-    "vendorSha256": "12lj7p74mhiy30fhc12ihbf827axlbxhbfzr10iwwhb0nydsfiyl",
-    "version": "2.7.0"
+    "rev": "v2.7.2",
+    "sha256": "sha256-1Y3m431KlWU+0cgZsU644WEO1i/9Gp1HomXvuCesVNU=",
+    "vendorSha256": "sha256-nBVLgOrtINrDziQLdqo5rFWfeY/cOdBW/XVDjtNaNhE=",
+    "version": "2.7.2"
   },
   "akamai": {
     "owner": "akamai",
     "provider-source-address": "registry.terraform.io/akamai/akamai",
     "repo": "terraform-provider-akamai",
-    "rev": "v1.11.0",
-    "sha256": "1ccliv8p36rh7f7zacjsa2x846d36nygbgs0vyjb0bpf5pl7grgd",
-    "vendorSha256": "19n841mby0l7ipjmmqsl5vnfmsj6y8fci1vzi8z6dqy3xcjlhwgb",
-    "version": "1.11.0"
+    "rev": "v1.12.1",
+    "sha256": "sha256-UQD1RiXIRcP0CvVO8Tx/qkBhRD3LFj/KI3WP/yKeBek=",
+    "vendorSha256": "sha256-GZFLnKHk6YaMwFGgy79ric388EMIH6NUVw4JVLNxWZY=",
+    "version": "1.12.1"
   },
   "alicloud": {
     "deleteVendor": true,
     "owner": "aliyun",
     "provider-source-address": "registry.terraform.io/aliyun/alicloud",
     "repo": "terraform-provider-alicloud",
-    "rev": "v1.162.0",
-    "sha256": "sha256-xqZv15Tst+7o9HhNu6/bW+a4z7FTkra+MfS8jKrfeNs=",
-    "vendorSha256": "sha256-RbOf/S0rkbhW0s+/YOqu+BQuE0V4aS2x36Xf+hgBkqY=",
-    "version": "1.162.0"
+    "rev": "v1.165.0",
+    "sha256": "sha256-Mq0Ob6U2v3onn5wIvAzXhbSBzjUCP4kF6irbwREdGFI=",
+    "vendorSha256": "sha256-xxq+VOG6FkX1perAcXOiFtL/bjsHl9IWIJb5dfaIkpY=",
+    "version": "1.165.0"
   },
   "ansible": {
     "owner": "nbering",
@@ -76,10 +76,10 @@
     "owner": "vmware",
     "provider-source-address": "registry.terraform.io/vmware/avi",
     "repo": "terraform-provider-avi",
-    "rev": "v21.1.3",
-    "sha256": "160l9864p73283hc27qaabd3lrh7lm8fyh6k9xlal5isfd9vrm5p",
-    "vendorSha256": "1hw1xp20nhs4p1q9l887m82456fg5977pm66165gdkczwrq2zr6v",
-    "version": "21.1.3"
+    "rev": "v21.1.4",
+    "sha256": "sha256-6H56TRA3I0CQ9/d8JdP5JNL0u3lpS8YhCvdSM5bxYp8=",
+    "vendorSha256": "sha256-b0MwGmgugZdmVk7ZVBSCivDQ4n+tLABymH/igo/S1Wc=",
+    "version": "21.1.4"
   },
   "aviatrix": {
     "owner": "AviatrixSystems",
@@ -94,28 +94,28 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/aws",
     "repo": "terraform-provider-aws",
-    "rev": "v4.8.0",
-    "sha256": "sha256-Ere41qols4lNnoAIZGWQmituukLnPNbv5d8C/e3rQgI=",
-    "vendorSha256": "sha256-ZXH9YlSii2z1s6Y/TfZVBje0/xQ2DXw3ZpgcBPeQZ2I=",
-    "version": "4.8.0"
+    "rev": "v4.11.0",
+    "sha256": "sha256-d7edKXwjktpHGMxL/sAowOjiGdsAk9cdGVMgj0uIVIg=",
+    "vendorSha256": "sha256-xQ9EbzwLfRZuBzytJ4SpoEIYJ9DuN+eWPy7RRg4jPkU=",
+    "version": "4.11.0"
   },
   "azuread": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/azuread",
     "repo": "terraform-provider-azuread",
-    "rev": "v2.19.1",
-    "sha256": "sha256-n5jDlcy5rwCcrqoL3ut+HThDLQ8hPj2mZ15d7hhALFw=",
+    "rev": "v2.21.0",
+    "sha256": "sha256-H2G9n9pvDF1VKXC773ubRFzGYZJeAj+t/V89omxmcps=",
     "vendorSha256": null,
-    "version": "2.19.1"
+    "version": "2.21.0"
   },
   "azurerm": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/azurerm",
     "repo": "terraform-provider-azurerm",
-    "rev": "v3.0.2",
-    "sha256": "sha256-T24bfys9OxBnGN4YtJEsJmSUK26a5hMnbgZUANcpg3k=",
+    "rev": "v3.3.0",
+    "sha256": "sha256-ZkyuZ2q9V2CKuXGUcDI5X3O21y8xtZiYGPnl5mIjuZc=",
     "vendorSha256": null,
-    "version": "3.0.2"
+    "version": "3.3.0"
   },
   "azurestack": {
     "owner": "hashicorp",
@@ -139,19 +139,19 @@
     "owner": "F5Networks",
     "provider-source-address": "registry.terraform.io/F5Networks/bigip",
     "repo": "terraform-provider-bigip",
-    "rev": "v1.13.0",
-    "sha256": "0l1fgbzv3zjsgmnkg96ac299plx9zi4j54cjxrl27csvf87wi4lv",
+    "rev": "v1.13.1",
+    "sha256": "sha256-nNcOHTFJrvvjKAZUsb1IVTp71/Xk5OuSzihPyi08anw=",
     "vendorSha256": null,
-    "version": "1.13.0"
+    "version": "1.13.1"
   },
   "bitbucket": {
     "owner": "DrFaust92",
     "provider-source-address": "registry.terraform.io/DrFaust92/bitbucket",
     "repo": "terraform-provider-bitbucket",
-    "rev": "v2.13.1",
-    "sha256": "sha256-P/6scAuRMRrACHmEdWjn+W37ptVmVgtj+iTXQDrG+WM=",
-    "vendorSha256": "sha256-o1CZ4VuGCPALqSIz8KSm1zCwd3r9bR13CRvP7XpVBAM=",
-    "version": "2.13.1"
+    "rev": "v2.15.0",
+    "sha256": "sha256-m9LNW73CZHfOHX7qIn5Xm5JbMoV6ADGpxL9HNn8E+kA=",
+    "vendorSha256": "sha256-L8QYz1xgw8ZQjrU33uP18XxNUjImPYATZ02h46G4aXs=",
+    "version": "2.15.0"
   },
   "brightbox": {
     "owner": "brightbox",
@@ -162,6 +162,15 @@
     "vendorSha256": "03761vl8xcirmas38q8xivx2r312c07fmg1y80lklmswbd8d0f71",
     "version": "2.2.0"
   },
+  "buildkite": {
+    "owner": "buildkite",
+    "provider-source-address": "registry.terraform.io/buildkite/buildkite",
+    "repo": "terraform-provider-buildkite",
+    "rev": "v0.8.0",
+    "sha256": "1v4kzsvzkzf0bb6vpyjh0n2kbcfrqa193idvm4jgbcrdb0y3xzn5",
+    "vendorSha256": "12kqjpyy80pfrasicmdi1f43mr846rad3c6xaa4dvzn7hq640q5j",
+    "version": "0.8.0"
+  },
   "checkly": {
     "owner": "checkly",
     "provider-source-address": "registry.terraform.io/checkly/checkly",
@@ -194,10 +203,10 @@
     "owner": "cloudflare",
     "provider-source-address": "registry.terraform.io/cloudflare/cloudflare",
     "repo": "terraform-provider-cloudflare",
-    "rev": "v3.11.0",
-    "sha256": "sha256-z7IjLXO/AHWENKYaCospJDcOwOubNcRHKDQzmRkhimw=",
-    "vendorSha256": "sha256-Lx/faIdx4k399sm9p8BVqpiKZtNjZoThBhWWWgEuPyg=",
-    "version": "3.11.0"
+    "rev": "v3.13.0",
+    "sha256": "sha256-ZG8F6cbJOmQdtudkVUGjKsq2Hs4uYlb/pxrF6Fkk4w0=",
+    "vendorSha256": "sha256-4usFr3aseHGGUa/bseSRAjE1NTZxh8UXPd66HG3hwOM=",
+    "version": "3.13.0"
   },
   "cloudfoundry": {
     "owner": "cloudfoundry-community",
@@ -227,22 +236,23 @@
     "version": "3.2.0"
   },
   "constellix": {
+    "deleteVendor": true,
     "owner": "Constellix",
     "provider-source-address": "registry.terraform.io/Constellix/constellix",
     "repo": "terraform-provider-constellix",
-    "rev": "v0.4.3",
-    "sha256": "sha256-U5jQVa4dJTqH06psx/vNLSlL8muV15SgkyoM820PwjI=",
-    "vendorSha256": null,
-    "version": "0.4.3"
+    "rev": "v0.4.5",
+    "sha256": "sha256-ecwXWYrs7XJM1web+kia2ccpvTjxAVFPzav6lLal4e4=",
+    "vendorSha256": "sha256-UJHDX/vx3n/RTuQ50Y6TAhpEEFk9yBoaz8yK02E8Fhw=",
+    "version": "0.4.5"
   },
   "consul": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/consul",
     "repo": "terraform-provider-consul",
-    "rev": "v2.15.0",
-    "sha256": "sha256-6NQL1ZlHZsxfoRV0zMOXApuCR+nj8CPWjpxj7BAJivY=",
+    "rev": "v2.15.1",
+    "sha256": "sha256-QX0f9yM408HfdGNIpmkAKFUz0RfH90V4WBt1Hnwzoy8=",
     "vendorSha256": null,
-    "version": "2.15.0"
+    "version": "2.15.1"
   },
   "ct": {
     "owner": "poseidon",
@@ -257,10 +267,10 @@
     "owner": "DataDog",
     "provider-source-address": "registry.terraform.io/DataDog/datadog",
     "repo": "terraform-provider-datadog",
-    "rev": "v3.10.0",
-    "sha256": "sha256-M9Pbvcg6HJY4S7Syu3XFsyjsCfeZxS17Ke2FpN+2HV4=",
-    "vendorSha256": "sha256-IJ8K2pRfvajdPkM3EjJe1B9PstJozETMert+O6Xpa88=",
-    "version": "3.10.0"
+    "rev": "v3.11.0",
+    "sha256": "sha256-9ugNj/D6VPaERckV0cCPlBjNtzS9tLJj+rc/8MhxCVU=",
+    "vendorSha256": "sha256-XxOOOljx+p4onI6SF8UY+gy7x7G2pduEqODT1UX4zfg=",
+    "version": "3.11.0"
   },
   "dhall": {
     "owner": "awakesecurity",
@@ -302,10 +312,10 @@
     "owner": "dnsimple",
     "provider-source-address": "registry.terraform.io/dnsimple/dnsimple",
     "repo": "terraform-provider-dnsimple",
-    "rev": "v0.11.1",
-    "sha256": "0jzw1kjykbka59kx30xm3qicjb6fdmm5l4f2dr8g7nxdaqnxri0s",
-    "vendorSha256": "06wggchs5khzyg6fd9s0qj76awnw28s7l278awanqimqgqajijkj",
-    "version": "0.11.1"
+    "rev": "v0.11.3",
+    "sha256": "sha256-fUs54xIecPgeQucuQmlpF2iHGonx4OsqFbhkMnO7d0c=",
+    "vendorSha256": "sha256-csooFX64RmwVV+gIejQS3HJljsRAp+bM8x/OoiF7jxs=",
+    "version": "0.11.3"
   },
   "docker": {
     "owner": "kreuzwerker",
@@ -320,10 +330,10 @@
     "owner": "dome9",
     "provider-source-address": "registry.terraform.io/dome9/dome9",
     "repo": "terraform-provider-dome9",
-    "rev": "v1.24.5",
-    "sha256": "0a4q5lf11xxfc9ndicdmjir77rdsiq5a8fwb6065879qaamvaxqi",
+    "rev": "v1.25.2",
+    "sha256": "sha256-6AtJEeAoOfqGwLC687aMTBg4yRXIDYqDbkXyXuiV8aQ=",
     "vendorSha256": null,
-    "version": "1.24.5"
+    "version": "1.25.2"
   },
   "elasticsearch": {
     "owner": "phillbaker",
@@ -338,10 +348,10 @@
     "owner": "exoscale",
     "provider-source-address": "registry.terraform.io/exoscale/exoscale",
     "repo": "terraform-provider-exoscale",
-    "rev": "v0.34.0",
-    "sha256": "sha256-GDN3cN+zNiTxJlKeQr4PGOFybIrVLL31VBMRhZ9PDQ4=",
+    "rev": "v0.35.0",
+    "sha256": "sha256-iIClnbCldGnihpML9xF0kyR4viXZzAsTF8MFT53wg+A=",
     "vendorSha256": null,
-    "version": "0.34.0"
+    "version": "0.35.0"
   },
   "external": {
     "owner": "hashicorp",
@@ -383,10 +393,10 @@
     "owner": "go-gandi",
     "provider-source-address": "registry.terraform.io/go-gandi/gandi",
     "repo": "terraform-provider-gandi",
-    "rev": "v2.0.0",
-    "sha256": "0xvdnjadcddrrfhhp198mraf2bm01xfy7gapjay441dbzffynw1m",
-    "vendorSha256": "1yccjnz6xw3b51xqmiaw78m87y2xmlp9z5z3gx5dbzz0lkj1k523",
-    "version": "2.0.0"
+    "rev": "v2.0.1",
+    "sha256": "sha256-lcJoDBVoNvNbB5V1rSk09d7pnfVN+FHROtyZCNmZfBk=",
+    "vendorSha256": "sha256-sloRWqk8j8UWM7gVFaiJ3SmBgnWN/BbFfATQWzpXI7k=",
+    "version": "2.0.1"
   },
   "github": {
     "owner": "integrations",
@@ -411,20 +421,20 @@
     "provider-source-address": "registry.terraform.io/hashicorp/google",
     "proxyVendor": true,
     "repo": "terraform-provider-google",
-    "rev": "v4.15.0",
-    "sha256": "sha256-BHtbBfCihy1zh/A9JB03CDh5KpzMWeR/mbuRErJkVUE=",
-    "vendorSha256": "sha256-7xTABs0O2eBBwjP1JNaFhsodl/ItPC+iv7NnwwlACvU=",
-    "version": "4.15.0"
+    "rev": "v4.18.0",
+    "sha256": "sha256-/s0O2ZBNPfBNffZp9sdG2omfXKDgwLaX4cJZs553WLU=",
+    "vendorSha256": "sha256-l2OviwplP/Sg2ShaEA88pMwVTkREnLkFAzterjr2kvU=",
+    "version": "4.18.0"
   },
   "google-beta": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/google-beta",
     "proxyVendor": true,
     "repo": "terraform-provider-google-beta",
-    "rev": "v4.15.0",
-    "sha256": "sha256-FTT6PS0OS4HPfkM2u4PZwOA/v5VzDwHLdO2s+qgRkW8=",
-    "vendorSha256": "sha256-7xTABs0O2eBBwjP1JNaFhsodl/ItPC+iv7NnwwlACvU=",
-    "version": "4.15.0"
+    "rev": "v4.18.0",
+    "sha256": "sha256-mVuo+dFDNcmWIh9WJNkkpowF7lI3mQy8scgij6jM9Zw=",
+    "vendorSha256": "sha256-l2OviwplP/Sg2ShaEA88pMwVTkREnLkFAzterjr2kvU=",
+    "version": "4.18.0"
   },
   "grafana": {
     "owner": "grafana",
@@ -439,10 +449,10 @@
     "owner": "gridscale",
     "provider-source-address": "registry.terraform.io/gridscale/gridscale",
     "repo": "terraform-provider-gridscale",
-    "rev": "v1.14.2",
-    "sha256": "sha256-gGwwyp3NgdcoE6YIBewiiajPoZpJbQ80/Zr2pIw8imE=",
+    "rev": "v1.14.3",
+    "sha256": "sha256-OGVIZ6q8qq4XkkWxjX5BQCJE9qubJ5Xnt2DrD23JGB8=",
     "vendorSha256": null,
-    "version": "1.14.2"
+    "version": "1.14.3"
   },
   "hcloud": {
     "owner": "hetznercloud",
@@ -457,10 +467,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/helm",
     "repo": "terraform-provider-helm",
-    "rev": "v2.5.0",
-    "sha256": "sha256-stJO23B/DNOvAU71S/N3iML1PVQrpmbhoh7e31MI+BY=",
+    "rev": "v2.5.1",
+    "sha256": "sha256-PX8mls0m/7B5WULEDVHutzvjAr0a54vg734mBbRQZNA=",
     "vendorSha256": null,
-    "version": "2.5.0"
+    "version": "2.5.1"
   },
   "heroku": {
     "owner": "heroku",
@@ -471,6 +481,15 @@
     "vendorSha256": "sha256-HrsjhaMlzs+uel5tBlxJD69Kkjl+4qVisWWREANBx40=",
     "version": "5.0.2"
   },
+  "htpasswd": {
+    "owner": "loafoe",
+    "provider-source-address": "registry.terraform.io/loafoe/htpasswd",
+    "repo": "terraform-provider-htpasswd",
+    "rev": "v1.0.1",
+    "sha256": "sha256-RUkPIsKVMooGy2hYsNFkctMFdJ8MEbtbMB9Qak6HJgQ=",
+    "vendorSha256": "sha256-4P3IX7KGDqcWVYRiD6tXoEjF/phI89rz5QdR09xtnAo=",
+    "version": "1.0.1"
+  },
   "http": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/http",
@@ -484,10 +503,10 @@
     "owner": "huaweicloud",
     "provider-source-address": "registry.terraform.io/huaweicloud/huaweicloud",
     "repo": "terraform-provider-huaweicloud",
-    "rev": "v1.35.0",
-    "sha256": "sha256-OQGrxnXeYSGLnfD8NuWncag1sSGlSZCipe0CykzzupU=",
+    "rev": "v1.35.2",
+    "sha256": "sha256-D1ZaYz+leYU2UNq9c589KVISSNdcjFnDO4JccSVRPYw=",
     "vendorSha256": null,
-    "version": "1.35.0"
+    "version": "1.35.2"
   },
   "huaweicloudstack": {
     "owner": "huaweicloud",
@@ -511,10 +530,10 @@
     "owner": "IBM-Cloud",
     "provider-source-address": "registry.terraform.io/IBM-Cloud/ibm",
     "repo": "terraform-provider-ibm",
-    "rev": "v1.40.0",
-    "sha256": "sha256-msBfnPkClyOvqXcKHIpCxT1YDRHY7p491zl8Uvl8qOQ=",
-    "vendorSha256": "sha256-YgRgm5S7cXHO9yqUUuVVkFRQL+pf0RMPJI9oUaWob2I=",
-    "version": "1.40.0"
+    "rev": "v1.41.0-beta0",
+    "sha256": "sha256-0SANOw6mSXnH/bLRZRjG2R9aPTsp8jZvqYNNtNsiYPw=",
+    "vendorSha256": "sha256-8s32A0qgODZZy3rSrHnnBkQyKLBj0fcCBJ9ja9gXc5Q=",
+    "version": "1.41.0-beta0"
   },
   "icinga2": {
     "owner": "Icinga",
@@ -583,19 +602,19 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/kubernetes",
     "repo": "terraform-provider-kubernetes",
-    "rev": "v2.9.0",
-    "sha256": "sha256-w16pm2+8M59grW5HUBBtkKaCnvf5p4GQMEHtQa4DLXs=",
+    "rev": "v2.10.0",
+    "sha256": "sha256-pA0yI59iRBmiT3rdvoP4vkSz/+bH29O4eLGPCBjfiZU=",
     "vendorSha256": null,
-    "version": "2.9.0"
+    "version": "2.10.0"
   },
   "launchdarkly": {
     "owner": "launchdarkly",
     "provider-source-address": "registry.terraform.io/launchdarkly/launchdarkly",
     "repo": "terraform-provider-launchdarkly",
-    "rev": "v2.5.0",
-    "sha256": "1083w217y8l6clj3q31f1lanzngfinw682kdqpm0xfssqas7qzx6",
-    "vendorSha256": "13vcxvw56bn7mdz917lvdryd2d7mcvi83ykbzjfbpxr4lzrrm9qw",
-    "version": "2.5.0"
+    "rev": "v2.6.1",
+    "sha256": "sha256-pdANr7W4d6+8WdAxcqSTpyEIshd6FVYy0+25wfDt4d8=",
+    "vendorSha256": "sha256-HKea86ck97uc/Gv6geJm9TTRfG6bnpB+q8cuU/jubI8=",
+    "version": "2.6.1"
   },
   "libvirt": {
     "owner": "dmacvicar",
@@ -634,13 +653,12 @@
     "version": "2.2.2"
   },
   "logicmonitor": {
-    "deleteVendor": true,
     "owner": "logicmonitor",
     "provider-source-address": "registry.terraform.io/logicmonitor/logicmonitor",
     "repo": "terraform-provider-logicmonitor",
     "rev": "v2.0.0",
     "sha256": "sha256-wamP36zV5HZ1qQlNZWIZyAYx/jOiRO1ODQpcd10Sl4w=",
-    "vendorSha256": "sha256-ccLI662Z+B+xvyuQ5aRHUViREtcdccjOMM5EIJiEaU0=",
+    "vendorSha256": null,
     "version": "2.0.0"
   },
   "lxd": {
@@ -656,10 +674,10 @@
     "owner": "wgebis",
     "provider-source-address": "registry.terraform.io/wgebis/mailgun",
     "repo": "terraform-provider-mailgun",
-    "rev": "v0.7.1",
-    "sha256": "0sw4a5ch8izy9lw9qmbj6s5vxz7gxcarga1s1h3vlng9y1dpvp2r",
-    "vendorSha256": "1qwd3jwdh5pzq9sdb62lpkbspfn54jii725p2jgvzg93xarv4n58",
-    "version": "0.7.1"
+    "rev": "v0.7.2",
+    "sha256": "sha256-Yi258SIFSdD+JSi5oX74bhBFYYGYQfSAyYD07eO8MmM=",
+    "vendorSha256": "sha256-g1PEjNV/RE2q7olGQsdM6AbXcXP2UROHC/SwEMPDk8c=",
+    "version": "0.7.2"
   },
   "matchbox": {
     "owner": "poseidon",
@@ -674,10 +692,10 @@
     "owner": "equinix",
     "provider-source-address": "registry.terraform.io/equinix/metal",
     "repo": "terraform-provider-metal",
-    "rev": "v3.3.0-alpha.2",
-    "sha256": "sha256-RUD4BJy0/s23+OWlQfFEh59BEhhtobW7zDOOcosC0l4=",
+    "rev": "v3.3.0-alpha.3",
+    "sha256": "sha256-wuZp0Be8a84y7JqpCGnBDPXgNG8JJcNWsIICP3ZjSVk=",
     "vendorSha256": "sha256-Ln9EyycPduVuj+JefH9f+Q5KlNGvbcwcEDgaqH2M0So=",
-    "version": "3.3.0-alpha.2"
+    "version": "3.3.0-alpha.3"
   },
   "minio": {
     "owner": "aminueza",
@@ -692,10 +710,10 @@
     "owner": "mongodb",
     "provider-source-address": "registry.terraform.io/mongodb/mongodbatlas",
     "repo": "terraform-provider-mongodbatlas",
-    "rev": "v1.3.0",
-    "sha256": "0lrzbljd8iklyrmplc64lq4v8y7z5fw7l41y27nsfjl4rm0xz5bn",
-    "vendorSha256": "0kkkrdbapyvfzmnbh5kmhlcz5l8g8gf0mfwbya66iy1bb6f6w4mz",
-    "version": "1.3.0"
+    "rev": "v1.3.1",
+    "sha256": "sha256-X2Utt+MUboLc0/nAXB78ko3w2ieTIQaVsDK6MhbUKSQ=",
+    "vendorSha256": "sha256-yZ/TgAVlBxHhrrZU6SH1KXNoZj8oWRqx3BjVHkTtI+Q=",
+    "version": "1.3.1"
   },
   "namecheap": {
     "owner": "namecheap",
@@ -728,10 +746,10 @@
     "owner": "newrelic",
     "provider-source-address": "registry.terraform.io/newrelic/newrelic",
     "repo": "terraform-provider-newrelic",
-    "rev": "v2.41.2",
-    "sha256": "sha256-LCA1K4md1wRRkB7oerUn1MM0TRLcqQBoVpvoxCMGSs8=",
-    "vendorSha256": "sha256-G/GWIE+XeLiHW0xxyjbIpncAnpBmC/+iZnI8MFmi80k=",
-    "version": "2.41.2"
+    "rev": "v2.43.3",
+    "sha256": "sha256-RSE0JHhIKR0Xst2iol3L02OZnEHwkVoaN32Yu2YZy7s=",
+    "vendorSha256": "sha256-4C8OWJSaUp4W8ScERveGYJ0m8avl6HHeTtGleJa5mdk=",
+    "version": "2.43.3"
   },
   "nomad": {
     "owner": "hashicorp",
@@ -746,19 +764,19 @@
     "owner": "ns1-terraform",
     "provider-source-address": "registry.terraform.io/ns1-terraform/ns1",
     "repo": "terraform-provider-ns1",
-    "rev": "v1.12.5",
-    "sha256": "0g69jr96ns2h578cmh5zz27m5dkgygrfr6shvx79wal26fpr8413",
-    "vendorSha256": "0s70626ng7pvqxnx0a4rp22b8spy45y011bvvm77fndm8fc1w9zn",
-    "version": "1.12.5"
+    "rev": "v1.12.6",
+    "sha256": "sha256-nP951YipGzsweJvV2PE0UlWGP+cAM6s18F5MCcxTxeo=",
+    "vendorSha256": "sha256-MaJHCxvD9BM5G8wJbSo06+TIPvJTlXzQ+l9Kdbg0QQw=",
+    "version": "1.12.6"
   },
   "nsxt": {
     "owner": "vmware",
     "provider-source-address": "registry.terraform.io/vmware/nsxt",
     "repo": "terraform-provider-nsxt",
-    "rev": "v3.2.5",
-    "sha256": "0j5kspfmqxdnvk3sfb476rckkn9fdgpw5haf495901a114wynr2l",
+    "rev": "v3.2.6",
+    "sha256": "sha256-1uQMjzqMJ1NQVVCXy5aHrrZ4vDK5s1JqUnLyYf1qLVw=",
     "vendorSha256": null,
-    "version": "3.2.5"
+    "version": "3.2.6"
   },
   "null": {
     "owner": "hashicorp",
@@ -774,28 +792,28 @@
     "owner": "nutanix",
     "provider-source-address": "registry.terraform.io/nutanix/nutanix",
     "repo": "terraform-provider-nutanix",
-    "rev": "v1.5.0-beta",
-    "sha256": "sha256-Luu0myRCzlVpKouFnE7MXESzkxCXxNe2ZfxFUCpGpiU=",
+    "rev": "v1.5.0-beta.2",
+    "sha256": "sha256-eC42HXh8Tk3TXWtdeVbv4UGMss3lh4vYyGPypB353X0=",
     "vendorSha256": "sha256-LRIfxQGwG988HE5fftGl6JmBG7tTknvmgpm4Fu1NbWI=",
-    "version": "1.5.0-beta"
+    "version": "1.5.0-beta.2"
   },
   "oci": {
     "owner": "oracle",
     "provider-source-address": "registry.terraform.io/oracle/oci",
     "repo": "terraform-provider-oci",
-    "rev": "v4.69.0",
-    "sha256": "sha256-VwL+i4HtvAJi3R57cjUrg+7rx1LxEUAMwkorCvJ9DcU=",
+    "rev": "v4.72.0",
+    "sha256": "sha256-ztlMhwcRraPdR95iZGiEKJAKe7PZeE4ABLBNVo2maUQ=",
     "vendorSha256": null,
-    "version": "4.69.0"
+    "version": "4.72.0"
   },
   "okta": {
     "owner": "okta",
     "provider-source-address": "registry.terraform.io/okta/okta",
     "repo": "terraform-provider-okta",
-    "rev": "v3.22.1",
-    "sha256": "sha256-G1KJJSxJmzFlIUWOs+7htcgp61oWCu+ryCKaIHzxhzw=",
-    "vendorSha256": "sha256-n7ih8QtapA+xno1twlM2b2XGEesdJdJIPD+QWpmJDVA=",
-    "version": "3.22.1"
+    "rev": "v3.24.0",
+    "sha256": "sha256-nP42jYvdXmW4gz1fRcEm3Cmv7RXlpk6l2qL5dImIvAw=",
+    "vendorSha256": "sha256-S4HVfl/PbgpgWFedkWM+EGyYAL5P0cdkLMYL+y+aX8w=",
+    "version": "3.24.0"
   },
   "oktaasa": {
     "owner": "oktadeveloper",
@@ -816,13 +834,12 @@
     "version": "1.4.1"
   },
   "opennebula": {
-    "deleteVendor": true,
     "owner": "OpenNebula",
     "provider-source-address": "registry.terraform.io/OpenNebula/opennebula",
     "repo": "terraform-provider-opennebula",
     "rev": "v0.4.3",
     "sha256": "sha256-mnRRMubaz5hin4kG5NK+GMtTPcsIJu6GS8PKDitNszg=",
-    "vendorSha256": "sha256-JTQJH0f8m6yBL8+jk6q02WPuvyre3mHql9Zy9OJW32M=",
+    "vendorSha256": null,
     "version": "0.4.3"
   },
   "openstack": {
@@ -838,10 +855,10 @@
     "owner": "opentelekomcloud",
     "provider-source-address": "registry.terraform.io/opentelekomcloud/opentelekomcloud",
     "repo": "terraform-provider-opentelekomcloud",
-    "rev": "v1.28.2",
-    "sha256": "sha256-qp5H37Zf9oPYA2vvWKuEpfUeHIfK1NYE9Uk7dcX9izA=",
-    "vendorSha256": "sha256-FMcPG7EJvU6XNKd2+8+xmjqSI0Ec9Xx/6gZvK9zJ3wg=",
-    "version": "1.28.2"
+    "rev": "v1.29.2-alpha.1",
+    "sha256": "sha256-OAbsX7GMGeDvc22xj4V/Jfap2ROg7ECTFf+FJTm0aDM=",
+    "vendorSha256": "sha256-kSZvxbovF2/oCqFY/0zpGmAhLFuCw6nWG3B4ppyxzLY=",
+    "version": "1.29.2-alpha.1"
   },
   "opsgenie": {
     "owner": "opsgenie",
@@ -865,19 +882,19 @@
     "owner": "ovh",
     "provider-source-address": "registry.terraform.io/ovh/ovh",
     "repo": "terraform-provider-ovh",
-    "rev": "v0.16.0",
-    "sha256": "0vvxcm4ff6zw5ngwq9cia2ifjg8a2adyf66dyc2d8lavvfld22v9",
+    "rev": "v0.17.1",
+    "sha256": "sha256-bAwOxRexJuSw3Ntb8zXeTFPp23hCkCEI+zF4Q2SP3lA=",
     "vendorSha256": null,
-    "version": "0.16.0"
+    "version": "0.17.1"
   },
   "pagerduty": {
     "owner": "PagerDuty",
     "provider-source-address": "registry.terraform.io/PagerDuty/pagerduty",
     "repo": "terraform-provider-pagerduty",
-    "rev": "v2.4.0",
-    "sha256": "sha256-pWfpist6nG6lQ1ep+Aje6LQgN/1ab5FtSoJKkoLDxAs=",
+    "rev": "v2.4.1",
+    "sha256": "sha256-2Ot6TxWN+t33EfT5wmkkPjj9DUrPum9whl5wimgjAp0=",
     "vendorSha256": null,
-    "version": "2.4.0"
+    "version": "2.4.1"
   },
   "panos": {
     "owner": "PaloAltoNetworks",
@@ -910,10 +927,10 @@
     "owner": "pan-net",
     "provider-source-address": "registry.terraform.io/pan-net/powerdns",
     "repo": "terraform-provider-powerdns",
-    "rev": "v1.4.1",
-    "sha256": "1v1qs042jpin5454yqbdfp2xsgf68cgwlsqfah5hqy1qnq5zbl3z",
+    "rev": "v1.5.0",
+    "sha256": "sha256-NtJs2oNJbjUYNFsbrfo2RYhqOlKA15GJt9gi1HuTIw0=",
     "vendorSha256": null,
-    "version": "1.4.1"
+    "version": "1.5.0"
   },
   "rabbitmq": {
     "owner": "cyrilgdn",
@@ -937,10 +954,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/random",
     "repo": "terraform-provider-random",
-    "rev": "v3.1.2",
-    "sha256": "sha256-Yk1CPR9gN70E+Qpc20vBQG2MY/RCO5cvaNtD8N++d5A=",
-    "vendorSha256": "sha256-/IjOv7/kQlGuV9+9Vhc7zUrr6hbcoxZyKi+q52YA/kk=",
-    "version": "3.1.2"
+    "rev": "v3.1.3",
+    "sha256": "sha256-q4j3DXbLiVeSyWGywwLiJspmE08ip3zL8vabfVDWnUo=",
+    "vendorSha256": "sha256-sg89QS0ncCrBGoLvsWFlyCYwNZHNG6iadNJIHWRmhXE=",
+    "version": "3.1.3"
   },
   "rundeck": {
     "owner": "rundeck",
@@ -955,10 +972,10 @@
     "owner": "scaleway",
     "provider-source-address": "registry.terraform.io/scaleway/scaleway",
     "repo": "terraform-provider-scaleway",
-    "rev": "v2.2.1-rc.1",
-    "sha256": "0f4sizgcy3000k67nb3axa8xhpczvzdla3bnpda27jdrx22ckyz8",
-    "vendorSha256": "11g5v5kvs4qxdg34ai7fpinwbshrjwi9hxzav2vpnzhy8lfqpkzb",
-    "version": "2.2.1-rc.1"
+    "rev": "v2.2.1-rc.3",
+    "sha256": "sha256-XprfY4Zy3PIrIJA2F1tnwafg4wYuzrm9nwVZULdX1D0=",
+    "vendorSha256": "sha256-H5KAo2rpgFGYmOgGOx9Z5LuApmftuYA6PfYCjnr7zC0=",
+    "version": "2.2.1-rc.3"
   },
   "secret": {
     "owner": "numtide",
@@ -973,10 +990,10 @@
     "owner": "selectel",
     "provider-source-address": "registry.terraform.io/selectel/selectel",
     "repo": "terraform-provider-selectel",
-    "rev": "v3.8.0",
-    "sha256": "0qc08v217cv2i43cxcx854rvhihrlhlakfark37vcdrh9z6swf1n",
-    "vendorSha256": "1mjp5yqwl1nya82yf5v6l3sq7iv0m94xy5w7y5avn8h40dl1wfnf",
-    "version": "3.8.0"
+    "rev": "v3.8.1",
+    "sha256": "sha256-542fWLMJ9nO3Pu/QpUFZtu2eQoQOaAjaaK3aqtyoJPQ=",
+    "vendorSha256": "sha256-kmsO9jFoR/93PkOeIo0pkS/OjE+m3QbIspobAv/9+KI=",
+    "version": "3.8.1"
   },
   "sentry": {
     "owner": "jianyuan",
@@ -1000,10 +1017,10 @@
     "owner": "splunk-terraform",
     "provider-source-address": "registry.terraform.io/splunk-terraform/signalfx",
     "repo": "terraform-provider-signalfx",
-    "rev": "v6.11.0",
-    "sha256": "sha256-ezd4TzckY5yx/UjwGxH36VX+owI8fBUmxtQFztOsFvs=",
-    "vendorSha256": "sha256-PVbqS37MBkIrr8CO6LxB0NjWWiTI5NFDipX6GvokrnY=",
-    "version": "6.11.0"
+    "rev": "v6.12.1",
+    "sha256": "sha256-JmkuYv3vDCSUuD69+dw8fG4EvuDMhfImlfmZslp8AfQ=",
+    "vendorSha256": "sha256-hI0yz796+xxAFQg+O/2g5ueNx/wrx/40DlQyxtx11aQ=",
+    "version": "6.12.1"
   },
   "skytap": {
     "owner": "skytap",
@@ -1018,10 +1035,10 @@
     "owner": "chanzuckerberg",
     "provider-source-address": "registry.terraform.io/chanzuckerberg/snowflake",
     "repo": "terraform-provider-snowflake",
-    "rev": "v0.29.0",
-    "sha256": "sha256-CdJHknGzEKfbxzrtqmevKwiYTs1UoRFRj6/ShQ9mdIc=",
-    "vendorSha256": "sha256-G/UIKuKtolLY7RIQF06wzn/ZYTMihEmJZ1DqVcHFGdg=",
-    "version": "0.29.0"
+    "rev": "v0.32.0",
+    "sha256": "sha256-Y4apbAQ4Up1VoQxB9w/4EYwhFX9sqYNLLBVxyOqmffE=",
+    "vendorSha256": "sha256-l++IzY3/W4qsdFJY7ik0xF6tZWluLb4EcW5KQtBVY5s=",
+    "version": "0.32.0"
   },
   "sops": {
     "owner": "carlpett",
@@ -1036,10 +1053,10 @@
     "owner": "spotinst",
     "provider-source-address": "registry.terraform.io/spotinst/spotinst",
     "repo": "terraform-provider-spotinst",
-    "rev": "v1.70.0",
-    "sha256": "sha256-jtoFXfHCnmGW2QVssngNtRLT6BfHaaNmNl4v2UIsmrI=",
-    "vendorSha256": "sha256-yfWdyEf6ypF0QCdh9zspCaFyPJpt4DgYR1LBPTztOUw=",
-    "version": "1.70.0"
+    "rev": "v1.73.1",
+    "sha256": "sha256-tA80gL0IJVO0g+sXdXLYgW1a0hLP0rnQCUtLAS9Y614=",
+    "vendorSha256": "sha256-25h8VMeXKWth06+5ZBibDWvjWyJmKM64k0zhkUsIYeM=",
+    "version": "1.73.1"
   },
   "stackpath": {
     "owner": "stackpath",
@@ -1054,10 +1071,10 @@
     "owner": "StatusCakeDev",
     "provider-source-address": "registry.terraform.io/StatusCakeDev/statuscake",
     "repo": "terraform-provider-statuscake",
-    "rev": "v2.0.1-pre",
-    "sha256": "sha256-/SWmGy6kMAt4TAswlpmfs4rVAa/DZBFoE1Yv+EcWfGo=",
-    "vendorSha256": "sha256-sFKhbOsE2eQ4Qxfbtab19nZRIKhJXNdsg274tWRjoVg=",
-    "version": "2.0.1-pre"
+    "rev": "v2.0.2-pre",
+    "sha256": "sha256-a8F6jDSYDal6U0Uu/iXprUb2lrwwUMOOkIZDftIiaLI=",
+    "vendorSha256": "sha256-E6DvzloOaamSX3jLKUQQmIccGiI6sFo4oNwU86td05E=",
+    "version": "2.0.2-pre"
   },
   "sumologic": {
     "owner": "SumoLogic",
@@ -1081,19 +1098,19 @@
     "owner": "tencentcloudstack",
     "provider-source-address": "registry.terraform.io/tencentcloudstack/tencentcloud",
     "repo": "terraform-provider-tencentcloud",
-    "rev": "v1.66.3",
-    "sha256": "sha256-LwIL+GjyEyuTCKiKLrOKrH5S1s9L56PUaHu6ypSSnRQ=",
+    "rev": "v1.71.0",
+    "sha256": "sha256-syj6fOBmErKsPQXYQ0U9bFC3butI06FJVLkD6RvWbFE=",
     "vendorSha256": null,
-    "version": "1.66.3"
+    "version": "1.71.0"
   },
   "tfe": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/tfe",
     "repo": "terraform-provider-tfe",
-    "rev": "v0.30.2",
-    "sha256": "sha256-qJGHOZdnigflapWHhmvALNMzqDxJ4RSAgGFzm+3z7GA=",
+    "rev": "v0.31.0",
+    "sha256": "sha256-BvA+1oCh8xB0XcXMGOmAEdi/lEwGdRed5vDEDVBUMhE=",
     "vendorSha256": "sha256-7TFfIk+aPbl3CLuNdeJg1O2n3WlCuG5tsayCtbo77I0=",
-    "version": "0.30.2"
+    "version": "0.31.0"
   },
   "thunder": {
     "owner": "a10networks",
@@ -1117,10 +1134,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/tls",
     "repo": "terraform-provider-tls",
-    "rev": "v3.1.0",
-    "sha256": "0g2bgvw02ydwgb6blica5a139crnyp4hdhzxf433n3fflwyvl6r1",
-    "vendorSha256": null,
-    "version": "3.1.0"
+    "rev": "v3.3.0",
+    "sha256": "sha256-7A9AXZxTIltZdXXIpMpQGYKwgSdU6kRRNuvVaNtMFGw=",
+    "vendorSha256": "sha256-bj2KpPFFnev5DAND9/HyUC4kOORAvnnpSihUECcHB/8=",
+    "version": "3.3.0"
   },
   "triton": {
     "deleteVendor": true,
@@ -1154,37 +1171,37 @@
     "owner": "cloudposse",
     "provider-source-address": "registry.terraform.io/cloudposse/utils",
     "repo": "terraform-provider-utils",
-    "rev": "0.17.17",
-    "sha256": "sha256-QJtdCEw8bnVku4fqAX5MBU9tkPv5jwjra9lGPfUPGQw=",
-    "vendorSha256": "sha256-5EelFIfHVLRiRJig6EeJG6KGJuQ05LX3M5CNxUxQAas=",
-    "version": "0.17.17"
+    "rev": "0.17.23",
+    "sha256": "sha256-/m2K91I1BtzfKTO6sbYL6r0N6GGtd4Ux+GSL0Ut4GUg=",
+    "vendorSha256": "sha256-Rmv3B8Sczvohlfwu248a1pi1VmFGNCB77/IFTBKKeiM=",
+    "version": "0.17.23"
   },
   "vault": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/vault",
     "repo": "terraform-provider-vault",
-    "rev": "v3.4.1",
-    "sha256": "sha256-xG16n25upU9giQ76FEx6as2GvyhAk6kZixmJCJFti2s=",
-    "vendorSha256": "sha256-JiNYM8P6ExGVVOVBYA2WJSZOpZ0PAyoncENqYRXPo7c=",
-    "version": "3.4.1"
+    "rev": "v3.5.0",
+    "sha256": "sha256-Ap96unJFTJ8HKcIs3LYSHfTXszh1gAcZSTEWpS2W2AQ=",
+    "vendorSha256": "sha256-UvczG/31YPIxPBZhwoBC3QS+QA8PRtRqgA/0W8tcXD0=",
+    "version": "3.5.0"
   },
   "vcd": {
     "owner": "vmware",
     "provider-source-address": "registry.terraform.io/vmware/vcd",
     "repo": "terraform-provider-vcd",
-    "rev": "v3.5.1",
-    "sha256": "1fwkbsgnxn0jl84nji57grasdsbw0ydd7vzcllpv7r1z3jpa545q",
-    "vendorSha256": "0bzp6807l4hspk1c1pmgnzk0axk0nir3v0lqmw9xvkij4c5rnz9s",
-    "version": "3.5.1"
+    "rev": "v3.6.0",
+    "sha256": "sha256-vtqlT3cfrEsbTmsKY6SVYUgyo+zIiX0cK080H03C1d0=",
+    "vendorSha256": "sha256-g5qcT4xaXQMih4WN3ysk+xGwd3ux8XjMceXgmw8gYB0=",
+    "version": "3.6.0"
   },
   "venafi": {
     "owner": "Venafi",
     "provider-source-address": "registry.terraform.io/Venafi/venafi",
     "repo": "terraform-provider-venafi",
-    "rev": "v0.15.3",
-    "sha256": "sha256-qucPKnzUNYnnEe0rJoe3RhzBYIJJJroz3qTo8VlQBAE=",
-    "vendorSha256": "sha256-lj8cuv9jR+3P7OiO/eW8poHcX+LsQo+kOyspiqdMXRY=",
-    "version": "0.15.3"
+    "rev": "v0.15.5",
+    "sha256": "sha256-aNh9P7QqhmdywP47mddcGSDRxkwkrus14tku/xrQcz8=",
+    "vendorSha256": "sha256-SKdSjBXLX344zt0GeGBLNp8cFw+PO9ObT9jC+dHp/h8=",
+    "version": "0.15.5"
   },
   "vercel": {
     "owner": "ondrejsika",
@@ -1244,9 +1261,9 @@
     "owner": "yandex-cloud",
     "provider-source-address": "registry.terraform.io/yandex-cloud/yandex",
     "repo": "terraform-provider-yandex",
-    "rev": "v0.73.0",
-    "sha256": "sha256-nhmy/DlO8JCjPRnm/o9R/+qq8k5kjEuNgYrGAdZWnVI=",
-    "vendorSha256": "sha256-GyLvc6mDA6F2xkT0bP3zjTWFmrOWodLCB4apYsBE95Q=",
-    "version": "0.73.0"
+    "rev": "v0.74.0",
+    "sha256": "sha256-TeApvGYWBlCzxE7/t6cbb47L1oGUfx2B/cEW8UQieoU=",
+    "vendorSha256": "sha256-n1qcrvBKftKYm7nlTCeAOU/Q40xMpVlyKUKxR7wgPu4=",
+    "version": "0.74.0"
   }
 }
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index 897acd76237a1..73f618cb0294f 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -66,6 +66,7 @@ let
           timstott
           zimbatm
           zowoq
+          techknowlogick
         ];
       };
     } // attrs');
@@ -84,7 +85,7 @@ let
           passthru = {
             withPlugins = newplugins:
               withPlugins (x: newplugins x ++ actualPlugins);
-            full = withPlugins (p: lib.filter lib.isDerivation (lib.attrValues p));
+            full = withPlugins (p: lib.filter lib.isDerivation (lib.attrValues p.actualProviders));
 
             # Expose wrappers around the override* functions of the terraform
             # derivation.
@@ -191,9 +192,9 @@ rec {
   };
 
   terraform_1 = mkTerraform {
-    version = "1.1.7";
-    sha256 = "sha256-E8qY17MSdA7fQW4wGSDiPzbndBP5SZwelAJAWzka/io=";
-    vendorSha256 = "sha256-lyy/hcr00ix6qZoxzSfCbXvDC8dRB2ZjrONywpqbVZ8=";
+    version = "1.1.9";
+    sha256 = "sha256-6dyP3Y5cK+/qLoC2QPZW3QNgqOeVXegC06Pa7pSv1iE=";
+    vendorSha256 = "sha256-YI/KeoOIxgCAS3Q6SXaW8my0PyFD+pyksshQEAknsz4=";
     patches = [ ./provider-path-0_15.patch ];
     passthru = { inherit plugins; };
   };
diff --git a/pkgs/applications/networking/cluster/waypoint/default.nix b/pkgs/applications/networking/cluster/waypoint/default.nix
index 1287171917251..df0ae08eede4f 100644
--- a/pkgs/applications/networking/cluster/waypoint/default.nix
+++ b/pkgs/applications/networking/cluster/waypoint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "waypoint";
-  version = "0.7.2";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ek3WOL1sNPAIkZN/cWDSmlNtN41VL3SKb7Qb4kew8vo=";
+    sha256 = "sha256-NRR/N61QdBF4jaioF7+X3xOdvaJ8COEzXL4hVHYSqW4=";
   };
 
-  vendorSha256 = "sha256-a0O36zyQQSVrGXWpTdCkAAwNAXU23pcFJBB+o2KYnWw=";
+  vendorSha256 = "sha256-57/MzO5TulGKMkGdQRoFNKIKF7upJiPazF0+Ovt/LG8=";
 
   nativeBuildInputs = [ go-bindata installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/werf/default.nix b/pkgs/applications/networking/cluster/werf/default.nix
index 9a9f454ac0039..6ff362bb0e086 100644
--- a/pkgs/applications/networking/cluster/werf/default.nix
+++ b/pkgs/applications/networking/cluster/werf/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , buildGoModule
 , fetchFromGitHub
+, installShellFiles
 , pkg-config
 , gpgme
 , glibc
@@ -11,18 +12,18 @@
 
 buildGoModule rec {
   pname = "werf";
-  version = "1.2.78";
+  version = "1.2.91";
 
   src = fetchFromGitHub {
     owner = "werf";
     repo = "werf";
     rev = "v${version}";
-    sha256 = "sha256-ehrzb7WvkYL8oj2RSzKc1KDagV0zg6vMzgpT2sPyhcI=";
+    sha256 = "sha256-ZafIG4D5TvAbXbo07gFajt8orTsju1GfF9a1OR0t1Oo=";
   };
-  vendorSha256 = "sha256-w8ZeAQbZIVOBoRa9fJhXgTeYRCYpkh/U4pwb5u6A9mQ=";
+  vendorSha256 = "sha256-U4eVQR/ExAENOg2XEYM+mFXANk+basdMLEcqSHuTsh4=";
   proxyVendor = true;
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ installShellFiles pkg-config ];
   buildInputs = [ gpgme ]
     ++ lib.optionals stdenv.isLinux [ glibc.static lvm2 btrfs-progs ];
 
@@ -44,6 +45,12 @@ buildGoModule rec {
 
   subPackages = [ "cmd/werf" ];
 
+  postInstall = ''
+    installShellCompletion --cmd werf \
+      --bash <($out/bin/werf completion --shell=bash) \
+      --zsh <($out/bin/werf completion --shell=zsh)
+  '';
+
   meta = with lib; {
     homepage = "https://github.com/werf/werf";
     description = "GitOps delivery tool";
diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix
index ad18f4e1e611d..8421a077d0058 100644
--- a/pkgs/applications/networking/flexget/default.nix
+++ b/pkgs/applications/networking/flexget/default.nix
@@ -21,7 +21,7 @@ python3Packages.buildPythonApplication rec {
     ln -sf requirements.in requirements.txt
 
     # remove dependency constraints
-    sed 's/[>=]=.*//' -i requirements.txt
+    sed 's/[~<>=].*//' -i requirements.txt
 
     # "zxcvbn-python" was renamed to "zxcvbn", and we don't have the former in
     # nixpkgs. See: https://github.com/NixOS/nixpkgs/issues/62110
@@ -35,6 +35,8 @@ python3Packages.buildPythonApplication rec {
     # See https://github.com/Flexget/Flexget/blob/master/requirements.in
     APScheduler
     beautifulsoup4
+    click
+    colorama
     feedparser
     guessit
     html5lib
@@ -62,6 +64,7 @@ python3Packages.buildPythonApplication rec {
     flask-restx
     flask
     pyparsing
+    werkzeug
     zxcvbn
 
     # Plugins requirements
diff --git a/pkgs/applications/networking/gns3/default.nix b/pkgs/applications/networking/gns3/default.nix
index 5bb125c10077e..7f6ff3be034f9 100644
--- a/pkgs/applications/networking/gns3/default.nix
+++ b/pkgs/applications/networking/gns3/default.nix
@@ -1,7 +1,9 @@
-{ callPackage, libsForQt5 }:
+{ callPackage
+, libsForQt5
+}:
 
 let
-  stableVersion = "2.2.29";
+  stableVersion = "2.2.31";
   previewVersion = stableVersion;
   addVersion = args:
     let version = if args.stable then stableVersion else previewVersion;
@@ -18,16 +20,13 @@ let
         });
       };
     commonOverrides = [
-      (mkOverride "psutil" "5.8.0"
-        "sha256-DJzLmat2Al8vC77PNB1GVunBNR24zIoDzNYuMYq0tcY=")
-      (mkOverride "jsonschema" "3.2.0"
-        "0ykr61yiiizgvm3bzipa3l73rvj49wmrybbfwhvpgk3pscl5pa68")
+      (mkOverride "jsonschema" "3.2.0" "0ykr61yiiizgvm3bzipa3l73rvj49wmrybbfwhvpgk3pscl5pa68")
     ];
   };
   mkGui = args: libsForQt5.callPackage (import ./gui.nix (addVersion args // extraArgs)) { };
   mkServer = args: callPackage (import ./server.nix (addVersion args // extraArgs)) { };
-  guiSrcHash = "04yqh0kq5pkmadcxf090ilh9sqqxajcg65nf7ai1iikxi3x7z3r8";
-  serverSrcHash = "0p6q421rldmyqi0padssgrssf4d9mb5ifiqjm5y8vfhwfl5a2cqk";
+  guiSrcHash = "sha256-o9j/avuapiUKIDO6aO/uWFF/5gu+xdfhL7ZSDSaQ858=";
+  serverSrcHash = "sha256-8r8nWNqbHUDtJ6x+/SxHxaw1isSuWF/5as3YXLB6LFw=";
 in {
   guiStable = mkGui {
     stable = true;
diff --git a/pkgs/applications/networking/gns3/gui.nix b/pkgs/applications/networking/gns3/gui.nix
index 95ec995cbfd56..8d1ab4e590c56 100644
--- a/pkgs/applications/networking/gns3/gui.nix
+++ b/pkgs/applications/networking/gns3/gui.nix
@@ -1,6 +1,16 @@
-{ stable, branch, version, sha256Hash, mkOverride, commonOverrides }:
+{ stable
+, branch
+, version
+, sha256Hash
+, mkOverride
+, commonOverrides
+}:
 
-{ lib, python3, fetchFromGitHub, wrapQtAppsHook }:
+{ lib
+, python3
+, fetchFromGitHub
+, wrapQtAppsHook
+}:
 
 let
   defaultOverrides = commonOverrides ++ [
@@ -34,21 +44,33 @@ in python.pkgs.buildPythonPackage rec {
     sha256 = sha256Hash;
   };
 
-  nativeBuildInputs = [ wrapQtAppsHook ];
+  nativeBuildInputs = [
+    wrapQtAppsHook
+  ];
+
   propagatedBuildInputs = with python.pkgs; [
-    sentry-sdk psutil jsonschema # tox for check
-    # Runtime dependencies
-    sip_4 (pyqt5.override { withWebSockets = true; }) distro setuptools
+    distro
+    jsonschema
+    psutil
+    sentry-sdk
+    setuptools
+    sip_4 (pyqt5.override { withWebSockets = true; })
   ];
 
   doCheck = false; # Failing
+
   dontWrapQtApps = true;
+
   postFixup = ''
       wrapQtApp "$out/bin/gns3"
   '';
+
   postPatch = ''
     substituteInPlace requirements.txt \
-      --replace "sentry-sdk==1.3.1" "sentry-sdk>=1.3.1" \
+      --replace "sentry-sdk==" "sentry-sdk>=" \
+      --replace "psutil==" "psutil>=" \
+      --replace "distro==" "distro>=" \
+      --replace "setuptools==" "setuptools>="
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/gns3/server.nix b/pkgs/applications/networking/gns3/server.nix
index 818c01a89ab4c..50a2453b04084 100644
--- a/pkgs/applications/networking/gns3/server.nix
+++ b/pkgs/applications/networking/gns3/server.nix
@@ -1,23 +1,20 @@
-{ stable, branch, version, sha256Hash, mkOverride, commonOverrides }:
+{ stable
+, branch
+, version
+, sha256Hash
+, mkOverride
+, commonOverrides
+}:
 
-{ lib, python3, fetchFromGitHub, packageOverrides ? self: super: {}
- }:
+{ lib
+, python3
+, fetchFromGitHub
+, packageOverrides ? self: super: {}
+}:
 
 let
   defaultOverrides = commonOverrides ++ [
     (self: super: {
-      aiofiles = super.aiofiles.overridePythonAttrs (oldAttrs: rec {
-        pname = "aiofiles";
-        version = "0.7.0";
-        src = fetchFromGitHub {
-          owner = "Tinche";
-          repo = pname;
-          rev = "v${version}";
-          sha256 = "sha256-njQ7eRYJO+dUrwO5pZwKHXn9nVSGYcEhwhs3x5BMc28=";
-        };
-        doCheck = false;
-      });
-
       jsonschema = super.jsonschema.overridePythonAttrs (oldAttrs: rec {
         version = "3.2.0";
 
@@ -51,16 +48,33 @@ in python.pkgs.buildPythonApplication {
 
   postPatch = ''
     substituteInPlace requirements.txt \
-      --replace "aiohttp==3.7.4" "aiohttp>=3.7.4" \
-      --replace "Jinja2==3.0.1" "Jinja2>=3.0.1" \
-      --replace "sentry-sdk==1.3.1" "sentry-sdk>=1.3.1" \
-      --replace "async-timeout==3.0.1" "async-timeout>=3.0.1" \
+      --replace "aiohttp==" "aiohttp>=" \
+      --replace "aiofiles==" "aiofiles>=" \
+      --replace "Jinja2==" "Jinja2>=" \
+      --replace "sentry-sdk==" "sentry-sdk>=" \
+      --replace "async-timeout==" "async-timeout>=" \
+      --replace "psutil==" "psutil>=" \
+      --replace "distro==" "distro>=" \
+      --replace "py-cpuinfo==" "py-cpuinfo>=" \
+      --replace "setuptools==" "setuptools>="
   '';
 
   propagatedBuildInputs = with python.pkgs; [
-    aiohttp-cors yarl aiohttp multidict setuptools
-    jinja2 psutil zipstream sentry-sdk jsonschema distro async_generator aiofiles
-    prompt-toolkit py-cpuinfo
+    aiofiles
+    aiohttp
+    aiohttp-cors
+    async_generator
+    distro
+    jinja2
+    jsonschema
+    multidict
+    prompt-toolkit
+    psutil
+    py-cpuinfo
+    sentry-sdk
+    setuptools
+    yarl
+    zipstream
   ];
 
   # Requires network access
diff --git a/pkgs/applications/networking/ids/zeek/default.nix b/pkgs/applications/networking/ids/zeek/default.nix
index e91b517e81584..adbda434b422d 100644
--- a/pkgs/applications/networking/ids/zeek/default.nix
+++ b/pkgs/applications/networking/ids/zeek/default.nix
@@ -21,11 +21,11 @@
 
 stdenv.mkDerivation rec {
   pname = "zeek";
-  version = "4.2.0";
+  version = "4.2.1";
 
   src = fetchurl {
     url = "https://download.zeek.org/zeek-${version}.tar.gz";
-    sha256 = "sha256-jZoCjKn+x61KnkinY+KWBSOEz0AupM03FXe/8YPCdFE=";
+    sha256 = "sha256-axNImzBJTHxd2kU/xQmB5ZQ9ZxW2ybW3qFq7gLvm0RY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/alfaview/default.nix b/pkgs/applications/networking/instant-messengers/alfaview/default.nix
index ebed984c4d538..eae63701d4d98 100644
--- a/pkgs/applications/networking/instant-messengers/alfaview/default.nix
+++ b/pkgs/applications/networking/instant-messengers/alfaview/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "alfaview";
-  version = "8.40.0";
+  version = "8.42.0";
 
   src = fetchurl {
     url = "https://production-alfaview-assets.alfaview.com/stable/linux/${pname}_${version}.deb";
-    sha256 = "sha256-meiIDIG7OXxF2aclHA/8FN8aSz5KWJliDbm2p/flD4k=";
+    sha256 = "sha256-O440sk6OJUsO+5TuzLxkUELnCfxKd5byoxSD+Rs4h1c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/bluejeans/default.nix b/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
index ad57e2c6623b2..c902a7e67c57e 100644
--- a/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
@@ -44,11 +44,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "bluejeans";
-  version = "2.26.0.136";
+  version = "2.27.0.130";
 
   src = fetchurl {
     url = "https://swdl.bluejeans.com/desktop-app/linux/${getFirst 3 version}/BlueJeans_${version}.rpm";
-    sha256 = "sha256-9QiE7CjCepDXQCzduqGzNUGqUgYS+PWBS71ouzHa83o=";
+    sha256 = "sha256-J0BGL03k1NAJLLEUOfvKjZEsBlupeHJR2Bp3c0ANBwg=";
   };
 
   nativeBuildInputs = [ rpmextract makeWrapper ];
diff --git a/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-appimage.nix b/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-appimage.nix
new file mode 100644
index 0000000000000..aa0a8f7bfc467
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-appimage.nix
@@ -0,0 +1,50 @@
+{ lib
+, fetchurl
+, appimageTools
+, gtk3
+, gsettings-desktop-schemas
+, xorg
+, pname
+, version
+, sha256
+, metaCommon ? { }
+}:
+
+let
+  name = "${pname}-${version}";
+  src = fetchurl {
+    url = "https://github.com/sindresorhus/caprine/releases/download/v${version}/Caprine-${version}.AppImage";
+    name = "Caprine-${version}.AppImage";
+    inherit sha256;
+  };
+  extracted = appimageTools.extractType2 { inherit name src; };
+in
+(appimageTools.wrapType2 {
+  inherit name src;
+
+  profile = ''
+    export LC_ALL=C.UTF-8
+    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+  '';
+
+  extraPkgs = pkgs: appimageTools.defaultFhsEnvArgs.multiPkgs pkgs;
+
+  extraInstallCommands = ''
+    mv $out/bin/{${name},caprine}
+
+    mkdir -p $out/share
+    "${xorg.lndir}/bin/lndir" -silent "${extracted}/usr/share" "$out/share"
+    ln -s ${extracted}/caprine.png $out/share/icons/caprine.png
+    mkdir $out/share/applications
+    cp ${extracted}/caprine.desktop $out/share/applications/
+    substituteInPlace $out/share/applications/caprine.desktop \
+        --replace AppRun caprine
+  '';
+
+  meta = metaCommon // {
+    platforms = [ "x86_64-linux" ];
+    mainProgram = "caprine";
+  };
+}) // {
+  inherit pname version;
+}
diff --git a/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-dmg.nix b/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-dmg.nix
new file mode 100644
index 0000000000000..3dc457c48826e
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-dmg.nix
@@ -0,0 +1,35 @@
+{ stdenvNoCC
+, lib
+, fetchurl
+, undmg
+, pname
+, version
+, sha256
+, metaCommon ? { }
+}:
+
+stdenvNoCC.mkDerivation {
+  inherit pname version;
+
+  src = fetchurl {
+    url = "https://github.com/sindresorhus/caprine/releases/download/v${version}/Caprine-${version}.dmg";
+    name = "Caprine-${version}.dmg";
+    inherit sha256;
+  };
+
+  sourceRoot = "Caprine.app";
+
+  nativeBuildInputs = [ undmg ];
+
+  installPhase = ''
+    mkdir -p "$out/Applications/Caprine.app"
+    cp -R . "$out/Applications/Caprine.app"
+    mkdir "$out/bin"
+    ln -s "$out/Applications/Caprine.app/Contents/MacOS/Caprine" "$out/bin/caprine"
+  '';
+
+  meta = metaCommon // {
+    platforms = with lib.platforms; darwin;
+    mainProgram = "caprine";
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/caprine-bin/default.nix b/pkgs/applications/networking/instant-messengers/caprine-bin/default.nix
new file mode 100644
index 0000000000000..4be9e03931b26
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/caprine-bin/default.nix
@@ -0,0 +1,25 @@
+{ lib, callPackage, stdenvNoCC }:
+let
+  pname = "caprine";
+  version = "2.55.2";
+  metaCommon = with lib; {
+    description = "An elegant Facebook Messenger desktop app";
+    homepage = "https://sindresorhus.com/caprine";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ShamrockLee ];
+  };
+  x86_64-appimage = callPackage ./build-from-appimage.nix {
+    inherit pname version metaCommon;
+    sha256 = "J7eHVXjWSIcTpLMM8FlGKZzVh6XgpQ0d82kxfMbPyZ4=";
+  };
+  x86_64-dmg = callPackage ./build-from-dmg.nix {
+    inherit pname version metaCommon;
+    sha256 = "du/9N1BFq1s7spPiEDgDbjjcnkA0x1ExhAEpQvmO3aA=";
+  };
+in
+(if stdenvNoCC.isDarwin then x86_64-dmg else x86_64-appimage).overrideAttrs (oldAttrs: {
+  passthru = (oldAttrs.passthru or { }) // { inherit x86_64-appimage x86_64-dmg; };
+  meta = oldAttrs.meta // {
+    platforms = x86_64-appimage.meta.platforms ++ x86_64-dmg.meta.platforms;
+  };
+})
diff --git a/pkgs/applications/networking/instant-messengers/chatty/default.nix b/pkgs/applications/networking/instant-messengers/chatty/default.nix
index 34b525a98a61d..586d49cf96f04 100644
--- a/pkgs/applications/networking/instant-messengers/chatty/default.nix
+++ b/pkgs/applications/networking/instant-messengers/chatty/default.nix
@@ -29,7 +29,7 @@
 
 stdenv.mkDerivation rec {
   pname = "chatty";
-  version = "0.6.1";
+  version = "0.6.3";
 
   src = fetchFromGitLab {
     domain = "source.puri.sm";
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     repo = "chatty";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-AufxwuOibTx5OvLBVbJqay/mYLmcDpE2BgwVv6Y5IlY=";
+    hash = "sha256-BILi3+i7SCiK7dVbckv3cNMNyEwgKMf0ct0z/J1xysI=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix b/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
index f80d8cab8b117..266f3958adfd8 100644
--- a/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
@@ -1,6 +1,6 @@
 { lib
 , copyDesktopItems
-, electron_14
+, electron_16
 , esbuild
 , fetchFromGitHub
 , fetchpatch
@@ -33,9 +33,9 @@ let
     };
   });
   electronExec = if stdenv.isDarwin then
-    "${electron_14}/Applications/Electron.app/Contents/MacOS/Electron"
+    "${electron_16}/Applications/Electron.app/Contents/MacOS/Electron"
   else
-    "${electron_14}/bin/electron";
+    "${electron_16}/bin/electron";
   esbuild' = esbuild.overrideAttrs (old: rec {
     version = "0.12.29";
     src = fetchFromGitHub {
@@ -47,13 +47,13 @@ let
   });
 in nodejs-14_x.pkgs.deltachat-desktop.override rec {
   pname = "deltachat-desktop";
-  version = "1.28.0";
+  version = "1.28.2";
 
   src = fetchFromGitHub {
     owner = "deltachat";
     repo = "deltachat-desktop";
     rev = "v${version}";
-    hash = "sha256-Ur0UxaKEWp+y7lGz2Khsg4npOf+gjCiOoijkSbnp0hg=";
+    hash = "sha256-jhtriDnt8Yl8eCmUTEyoPjccZV8RNAchMykkkiRpF60=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json b/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
index ca584702765a3..4455868fe0b03 100644
--- a/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
+++ b/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
@@ -1,6 +1,6 @@
 {
   "name": "deltachat-desktop",
-  "version": "1.28.0",
+  "version": "1.28.2",
   "dependencies": {
     "@blueprintjs/core": "^3.22.3",
     "@deltachat/message_parser_wasm": "^0.3.0",
@@ -51,7 +51,7 @@
     "@types/react-window": "^1.8.4",
     "@types/react-window-infinite-loader": "^1.0.4",
     "@types/url-parse": "^1.4.3",
-    "electron": "^14.2.6",
+    "electron": "^14.2.9",
     "esbuild": "^0.12.29",
     "glob-watcher": "^5.0.5",
     "sass": "^1.26.5",
diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix
index d3416ef588014..287c23401e064 100644
--- a/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -4,7 +4,7 @@ let
   versions = if stdenv.isLinux then {
     stable = "0.0.17";
     ptb = "0.0.29";
-    canary = "0.0.134";
+    canary = "0.0.135";
   } else {
     stable = "0.0.264";
     ptb = "0.0.59";
@@ -31,7 +31,7 @@ let
       canary = fetchurl {
         url =
           "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
-        sha256 = "sha256-HyJa6lGcKMPKWffO/pnNcn8fDTJj6O4J8Y5RA23a1kM=";
+        sha256 = "sha256-dmG+3BWS1BMHHQAv4fsXuObVeAJBeD+TqnyQz69AMac=";
       };
     };
     x86_64-darwin = {
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
index 46ee444c37839..960336d50a53b 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
@@ -2,7 +2,7 @@
   "name": "element-desktop",
   "productName": "Element",
   "main": "lib/electron-main.js",
-  "version": "1.10.8",
+  "version": "1.10.10",
   "description": "A feature-rich client for Matrix.org",
   "author": "Element",
   "repository": {
diff --git a/pkgs/applications/networking/instant-messengers/element/pin.json b/pkgs/applications/networking/instant-messengers/element/pin.json
index d487e9ae31602..1b42ed12f341c 100644
--- a/pkgs/applications/networking/instant-messengers/element/pin.json
+++ b/pkgs/applications/networking/instant-messengers/element/pin.json
@@ -1,6 +1,6 @@
 {
-  "version": "1.10.8",
-  "desktopSrcHash": "S9MQIn773BzCH4dsTkD1DpIThDzoIGr4Heaie2Qs0jY=",
-  "desktopYarnHash": "1imx43qbpj08l6d0fji31kcxqshcpr0ch8dzfbbgxyjvblq2p8ln",
-  "webHash": "02i6l3armzr19kki3hgshhzkdpb3001nilh4h10hr3xw5z711ppr"
+  "version": "1.10.10",
+  "desktopSrcHash": "Atgcu+K28pScYokS/lTu+/mMeEC+1yTcn3Akq+KZJNY=",
+  "desktopYarnHash": "0jm0i1yyfkg1ll11pb3qif1vdxx6rp0yl9kd8jg9nhsg2jzw66pr",
+  "webHash": "1xp0rhw3k2znwvqqikhd771l2n6xyx8npcz87m9d4cisl82lpnr0"
 }
diff --git a/pkgs/applications/networking/instant-messengers/ferdi/default.nix b/pkgs/applications/networking/instant-messengers/ferdi/default.nix
index 6e0e39043ee05..90ab331426a09 100644
--- a/pkgs/applications/networking/instant-messengers/ferdi/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ferdi/default.nix
@@ -19,7 +19,7 @@ mkFranzDerivation' rec {
   name = "Ferdi";
   version = "5.8.1";
   src = fetchurl {
-    url = "https://github.com/getferdi/ferdi/releases/download/v${version}/ferdi_${version}_amd64.deb";
+    url = "https://master.dl.sourceforge.net/project/ferdi.mirror/v${version}/ferdi_${version}_amd64.deb";
     sha256 = "sha256-Bl7bM5iDQlfPSZxksqlg7GbuwWlm53QkOf/TQEg3/n0=";
   };
   extraBuildInputs = [ xorg.libxshmfence ];
diff --git a/pkgs/applications/networking/instant-messengers/franz/default.nix b/pkgs/applications/networking/instant-messengers/franz/default.nix
index 9f772bf3f6d7b..b3d9194c6fe4b 100644
--- a/pkgs/applications/networking/instant-messengers/franz/default.nix
+++ b/pkgs/applications/networking/instant-messengers/franz/default.nix
@@ -3,10 +3,10 @@
 mkFranzDerivation rec {
   pname = "franz";
   name = "Franz";
-  version = "5.6.1";
+  version = "5.9.2";
   src = fetchurl {
     url = "https://github.com/meetfranz/franz/releases/download/v${version}/franz_${version}_amd64.deb";
-    sha256 = "1gn0n1hr6z2gsdnpxysyq6sm8y7cjr9jafhsam8ffw0bq74kph7p";
+    sha256 = "sha256-W/60g5CbSUZcNASjdbiS7DNv9375GiesEG60QLLAh1g=";
   };
   meta = with lib; {
     description = "A free messaging app that combines chat & messaging services into one application";
diff --git a/pkgs/applications/networking/instant-messengers/gajim/default.nix b/pkgs/applications/networking/instant-messengers/gajim/default.nix
index 3c56d84db4b50..118a35381a66d 100644
--- a/pkgs/applications/networking/instant-messengers/gajim/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gajim/default.nix
@@ -63,7 +63,7 @@ python3.pkgs.buildPythonApplication rec {
   '';
 
   propagatedBuildInputs = with python3.pkgs; [
-    nbxmpp pygobject3 dbus-python pillow css-parser precis-i18n keyring setuptools
+    nbxmpp pygobject3 dbus-python pillow css-parser precis-i18n keyring setuptools packaging
   ] ++ lib.optionals enableE2E [ pycrypto python-gnupg ]
     ++ lib.optional enableRST docutils
     ++ lib.optionals enableOmemoPluginDependencies [ python-axolotl qrcode ]
diff --git a/pkgs/applications/networking/instant-messengers/gotktrix/default.nix b/pkgs/applications/networking/instant-messengers/gotktrix/default.nix
index f44c05da5c018..9cab98156c81c 100644
--- a/pkgs/applications/networking/instant-messengers/gotktrix/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gotktrix/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "gotktrix";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "diamondburned";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-K+q0sykdOMnAWypOXnwTU5oTokpYw61CTsAW1gIvGSQ=";
+    sha256 = "sha256-/UDXqN7FnFvbiXp3pID1WbNfCuKDsMrFQvL1101xxOo=";
   };
 
-  vendorSha256 = "sha256-Br9KgUoN01yoGujgbj5UEoB57K87oEH/o40rrRtIZVY=";
+  vendorSha256 = "sha256-xA2DW4v6aT4fEW2WSa96oRr5Yrb2HoR054V1+BiWSvk=";
 
   buildInputs = [
     gtk4
diff --git a/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix b/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
index 2395a196f6056..7dce1fd069d1d 100644
--- a/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
@@ -46,7 +46,8 @@ stdenv.mkDerivation rec {
   postFixup = ''
     makeWrapper ${electron}/bin/electron $out/bin/${pname} \
       --add-flags $out/share/${pname}/resources/app.asar \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc xorg.libXtst pipewire ]}"
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc xorg.libXtst pipewire ]}" \
+      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}"
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/instant-messengers/kaidan/default.nix b/pkgs/applications/networking/instant-messengers/kaidan/default.nix
index fc14f77198b5c..c296118eff9e2 100644
--- a/pkgs/applications/networking/instant-messengers/kaidan/default.nix
+++ b/pkgs/applications/networking/instant-messengers/kaidan/default.nix
@@ -12,6 +12,7 @@
 , knotifications
 , zxing-cpp
 , qxmpp
+, sonnet
 , gst_all_1
 }:
 
@@ -38,6 +39,7 @@ mkDerivation rec {
     knotifications
     zxing-cpp
     qxmpp
+    sonnet
     gstreamer
     gst-plugins-bad
     gst-plugins-base
diff --git a/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix b/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
index 5fe90d50a31a8..baa4613b1731d 100644
--- a/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
@@ -14,13 +14,13 @@
 
 mkDerivation rec {
   pname = "kdeltachat";
-  version = "unstable-2022-01-02";
+  version = "unstable-2022-03-20";
 
   src = fetchFromSourcehut {
     owner = "~link2xt";
     repo = "kdeltachat";
-    rev = "ec545c8208c870c44312558f91c79e6ffce4444e";
-    hash = "sha256-s/dJ2ahdUK7ODKsna+tl81e+VQLkCAELb/iEXf9WlIM=";
+    rev = "8cce6d20b49e917929521a13caed30e81037c868";
+    hash = "sha256-1L45KodOmvy6pBbBzJwGWMAY7y3+lfxjeXtsH1SdipU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/pond/default.nix b/pkgs/applications/networking/instant-messengers/pond/default.nix
index c7b5d56dbba34..568a2a5bd51b1 100644
--- a/pkgs/applications/networking/instant-messengers/pond/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pond/default.nix
@@ -24,7 +24,7 @@ buildGoPackage rec {
     ++ lib.optional stdenv.hostPlatform.isx86_64 dclxvi
     ++ lib.optionals gui [ wrapGAppsHook ];
   tags = lib.optionals (!gui) [ "nogui" ];
-  excludedPackages = "\\(appengine\\|bn256cgo\\)";
+  excludedPackages = [ "appengine" "bn256cgo" ];
   postPatch = lib.optionalString stdenv.hostPlatform.isx86_64 ''
     grep -r 'bn256' | awk -F: '{print $1}' | xargs sed -i \
       -e "s,golang.org/x/crypto/bn256,github.com/agl/pond/bn256cgo,g" \
diff --git a/pkgs/applications/networking/instant-messengers/ripcord/default.nix b/pkgs/applications/networking/instant-messengers/ripcord/default.nix
index 76f93d9d2173a..7379d769288bd 100644
--- a/pkgs/applications/networking/instant-messengers/ripcord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ripcord/default.nix
@@ -48,7 +48,7 @@ mkDerivation rec {
     install -Dm755 ${src}/Ripcord $out/Ripcord
     patchelf --replace-needed libsodium.so.18 libsodium.so $out/Ripcord
     makeQtWrapper $out/Ripcord $out/bin/ripcord \
-      --run "cd $out" \
+      --chdir "$out" \
       --set FONTCONFIG_FILE "${fontsConf}" \
       --prefix LD_LIBRARY_PATH ":" "${xorg.libXcursor}/lib" \
       --prefix QT_XKB_CONFIG_ROOT ":" "${xorg.xkeyboardconfig}/share/X11/xkb" \
diff --git a/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix b/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix
index 4518627fe2b89..0c11beb9ebc25 100644
--- a/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix
+++ b/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix
@@ -7,12 +7,12 @@
 }:
 
 let
-  version = "1.7.9";
+  version = "1.8.4";
   pname = "session-desktop-appimage";
 
   src = fetchurl {
     url = "https://github.com/oxen-io/session-desktop/releases/download/v${version}/session-desktop-linux-x86_64-${version}.AppImage";
-    sha256 = "ca7754e59146633b71e66b02a90cff87e4f2574e57ff831ca4a5f983b7e2fbef";
+    sha256 = "Az9NEsqU4ZcmuSno38zflT4M4lI6/4ShEh3FVTcyRJg=";
   };
   appimage = appimageTools.wrapType2 {
     inherit version pname src;
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index e3fa08e3df3a7..c96fb1b58a969 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -24,7 +24,7 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "signal-desktop";
-  version = "5.36.0"; # Please backport all updates to the stable channel.
+  version = "5.39.0"; # Please backport all updates to the stable channel.
   # All releases have a limited lifetime and "expire" 90 days after the release.
   # When releases "expire" the application becomes unusable until an update is
   # applied. The expiration date for the current release can be extracted with:
@@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-    sha256 = "sha256-x1PUEDq/0B1T14mBs2FuKtcGpJHWOIvHAs8hptpzhZk=";
+    sha256 = "sha256-Dy5orMKZvvnHZu/2U5YIJdDR4eDM3SBjXVGHuBv0kgc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix b/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
index f03a91faa23f9..445078070220e 100644
--- a/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "signalbackup-tools";
-  version = "20220316";
+  version = "20220411";
 
   src = fetchFromGitHub {
     owner = "bepaald";
     repo = pname;
     rev = version;
-    sha256 = "sha256-c9eqY3KBzCrNOLNf1DGpARmxGzwga3+tBg3e7Yr+Rb8=";
+    sha256 = "sha256-ia+8RZ1wQTyUCs+6o9AMCH4Kh2neHjPWbXWjLkDb6/w=";
   };
 
   # Remove when Apple SDK is >= 10.13
diff --git a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
index b23f4f107aed4..024ac9a143182 100644
--- a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
+++ b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
@@ -7,7 +7,7 @@ let
 
   # Please keep the version x.y.0.z and do not update to x.y.76.z because the
   # source of the latter disappears much faster.
-  version = "8.81.0.268";
+  version = "8.82.0.403";
 
   rpath = lib.makeLibraryPath [
     alsa-lib
@@ -68,7 +68,7 @@ let
           "https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
           "https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
         ];
-        sha256 = "sha256-MqXLK+AdYkQVTeTjul9Dru78597FuThRUVq7/y9FYUU=";
+        sha256 = "sha256-45aHb6BI0kUnJOlRsglyGdZ6+8sLmHZK3FN8nYpuHXM=";
       }
     else
       throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
diff --git a/pkgs/applications/networking/instant-messengers/slack/default.nix b/pkgs/applications/networking/instant-messengers/slack/default.nix
index 5eb7518ea378c..f4574e02a49dc 100644
--- a/pkgs/applications/networking/instant-messengers/slack/default.nix
+++ b/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -44,14 +44,14 @@ let
 
   pname = "slack";
 
-  x86_64-darwin-version = "4.23.0";
-  x86_64-darwin-sha256 = "0l4zfyys0yf95dn0sldyjkhzp7bpn84z9q9li1lvv5jj55f0g9jd";
+  x86_64-darwin-version = "4.25.0";
+  x86_64-darwin-sha256 = "1ffg003ic0jhkis9ai2873axwzqj9yvjab8212zwhvr3a23zzr5c";
 
-  x86_64-linux-version = "4.23.0";
-  x86_64-linux-sha256 = "1wsrxacnj9f3cb6as7ncbdvi02jqcbyc7ijsavps5bls9phkp0is";
+  x86_64-linux-version = "4.25.1";
+  x86_64-linux-sha256 = "sha256-ndDVipgcLELRZ2siIAurq7umL62+g3yRL0U311DC8Ik=";
 
-  aarch64-darwin-version = "4.23.0";
-  aarch64-darwin-sha256 = "053psiqysyi7l8pviq0vwvk2azlxcpdrwfa0b99f1h6lbfcf48f3";
+  aarch64-darwin-version = "4.25.0";
+  aarch64-darwin-sha256 = "0s4c66bzi42y2r1c94r4ds5fyzzgvzkvrria0z45ysa47lnldp0f";
 
   version = {
     x86_64-darwin = x86_64-darwin-version;
@@ -81,7 +81,7 @@ let
     description = "Desktop client for Slack";
     homepage = "https://slack.com";
     license = licenses.unfree;
-    maintainers = with maintainers; [ mmahut ];
+    maintainers = with maintainers; [ mmahut maxeaubrey ];
     platforms = [ "x86_64-darwin" "x86_64-linux" "aarch64-darwin" ];
   };
 
diff --git a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
index ce5dc0e266e63..d7dbff715bacd 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
@@ -7,7 +7,6 @@
 , ninja
 , clang
 , python3
-, wrapGAppsHook
 , wrapQtAppsHook
 , removeReferencesTo
 , extra-cmake-modules
@@ -27,7 +26,6 @@
 , tl-expected
 , hunspell
 , glibmm
-, webkitgtk
 , jemalloc
 , rnnoise
 , abseil-cpp
@@ -65,7 +63,6 @@
 , IOSurface
 , Metal
 , MetalKit
-, withWebKit ? false
 }:
 
 with lib;
@@ -101,6 +98,7 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
+    ./kf594.patch
     ./shortcuts-binary-path.patch
     # let it build with nixpkgs 10.12 sdk
     ./kotato-10.12-sdk.patch
@@ -113,9 +111,6 @@ stdenv.mkDerivation rec {
       --replace '"libasound.so.2"' '"${alsa-lib}/lib/libasound.so.2"'
     substituteInPlace Telegram/ThirdParty/libtgvoip/os/linux/AudioPulse.cpp \
       --replace '"libpulse.so.0"' '"${libpulseaudio}/lib/libpulse.so.0"'
-  '' + optionalString (stdenv.isLinux && withWebKit) ''
-    substituteInPlace Telegram/lib_webview/webview/platform/linux/webview_linux_webkit_gtk.cpp \
-      --replace '"libwebkit2gtk-4.0.so.37"' '"${webkitgtk}/lib/libwebkit2gtk-4.0.so.37"'
   '' + optionalString stdenv.isDarwin ''
     substituteInPlace Telegram/CMakeLists.txt \
       --replace 'COMMAND iconutil' 'COMMAND png2icns' \
@@ -124,10 +119,6 @@ stdenv.mkDerivation rec {
       --replace "\''${appicon_path}" "\''${appicon_path}/icon_16x16.png \''${appicon_path}/icon_32x32.png \''${appicon_path}/icon_128x128.png \''${appicon_path}/icon_256x256.png \''${appicon_path}/icon_512x512.png"
   '';
 
-  # We want to run wrapProgram manually (with additional parameters)
-  dontWrapGApps = stdenv.isLinux;
-  dontWrapQtApps = stdenv.isLinux && withWebKit;
-
   nativeBuildInputs = [
     pkg-config
     cmake
@@ -139,8 +130,6 @@ stdenv.mkDerivation rec {
     # to build bundled libdispatch
     clang
     extra-cmake-modules
-  ] ++ optionals (stdenv.isLinux && withWebKit) [
-    wrapGAppsHook
   ];
 
   buildInputs = [
@@ -166,8 +155,6 @@ stdenv.mkDerivation rec {
     glibmm
     jemalloc
     wayland
-  ] ++ optionals (stdenv.isLinux && withWebKit) [
-    webkitgtk
   ] ++ optionals stdenv.isDarwin [
     Cocoa
     CoreFoundation
@@ -225,13 +212,6 @@ stdenv.mkDerivation rec {
     remove-references-to -t ${tg_owt.dev} $out/bin/$binName
   '';
 
-  postFixup = optionalString (stdenv.isLinux && withWebKit) ''
-    # We also use gappsWrapperArgs from wrapGAppsHook.
-    wrapProgram $out/bin/kotatogram-desktop \
-      "''${gappsWrapperArgs[@]}" \
-      "''${qtWrapperArgs[@]}"
-  '';
-
   passthru = {
     inherit tg_owt;
   };
diff --git a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kf594.patch b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kf594.patch
new file mode 100644
index 0000000000000..0fa2d8bc8f6ee
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kf594.patch
@@ -0,0 +1,57 @@
+diff --git a/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp b/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp
+index 7641579aa..3c195e397 100644
+--- a/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp
++++ b/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp
+@@ -9,10 +9,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
+ 
+ #include "base/platform/base_platform_info.h"
+ 
+-#include <connection_thread.h>
+-#include <registry.h>
+-#include <surface.h>
+-#include <plasmashell.h>
++#include <KWayland/Client/connection_thread.h>
++#include <KWayland/Client/registry.h>
++#include <KWayland/Client/surface.h>
++#include <KWayland/Client/plasmashell.h>
+ 
+ using namespace KWayland::Client;
+ 
+Submodule Telegram/lib_base contains modified content
+diff --git a/Telegram/lib_base/base/platform/linux/base_linux_wayland_integration.cpp b/Telegram/lib_base/base/platform/linux/base_linux_wayland_integration.cpp
+index 32f0de6..30a087f 100644
+--- a/Telegram/lib_base/base/platform/linux/base_linux_wayland_integration.cpp
++++ b/Telegram/lib_base/base/platform/linux/base_linux_wayland_integration.cpp
+@@ -13,11 +13,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
+ #include <QtCore/QPointer>
+ #include <QtGui/QWindow>
+ 
+-#include <connection_thread.h>
+-#include <registry.h>
+-#include <surface.h>
+-#include <xdgforeign.h>
+-#include <idleinhibit.h>
++#include <KWayland/Client/connection_thread.h>
++#include <KWayland/Client/registry.h>
++#include <KWayland/Client/surface.h>
++#include <KWayland/Client/xdgforeign.h>
++#include <KWayland/Client/idleinhibit.h>
+ 
+ using namespace KWayland::Client;
+ 
+Submodule Telegram/lib_ui contains modified content
+diff --git a/Telegram/lib_ui/ui/platform/linux/ui_linux_wayland_integration.cpp b/Telegram/lib_ui/ui/platform/linux/ui_linux_wayland_integration.cpp
+index 01f1e80..163cb6a 100644
+--- a/Telegram/lib_ui/ui/platform/linux/ui_linux_wayland_integration.cpp
++++ b/Telegram/lib_ui/ui/platform/linux/ui_linux_wayland_integration.cpp
+@@ -24,8 +24,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
+ #include <private/qwaylandwindow_p.h>
+ #include <private/qwaylandshellsurface_p.h>
+ 
+-#include <connection_thread.h>
+-#include <registry.h>
++#include <KWayland/Client/connection_thread.h>
++#include <KWayland/Client/registry.h>
+ 
+ Q_DECLARE_METATYPE(QMargins);
+ 
diff --git a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kotato-10.12-sdk.patch b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kotato-10.12-sdk.patch
index d603c967cfde2..8c80cafc6dad5 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kotato-10.12-sdk.patch
+++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kotato-10.12-sdk.patch
@@ -1,8 +1,8 @@
 diff --git a/Telegram/SourceFiles/platform/mac/file_bookmark_mac.mm b/Telegram/SourceFiles/platform/mac/file_bookmark_mac.mm
-index 337055443..09604b117 100644
+index 9e9a1744b..ae55f873f 100644
 --- a/Telegram/SourceFiles/platform/mac/file_bookmark_mac.mm
 +++ b/Telegram/SourceFiles/platform/mac/file_bookmark_mac.mm
-@@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
+@@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
  
  #include <Cocoa/Cocoa.h>
  #include <CoreFoundation/CFURL.h>
@@ -11,10 +11,10 @@ index 337055443..09604b117 100644
  namespace Platform {
  namespace {
 diff --git a/Telegram/SourceFiles/platform/mac/specific_mac.mm b/Telegram/SourceFiles/platform/mac/specific_mac.mm
-index 3b4395ae3..7f8ee401f 100644
+index 1d68457bb..ac8c4e0ab 100644
 --- a/Telegram/SourceFiles/platform/mac/specific_mac.mm
 +++ b/Telegram/SourceFiles/platform/mac/specific_mac.mm
-@@ -119,6 +119,7 @@ PermissionStatus GetPermissionStatus(PermissionType type) {
+@@ -118,6 +118,7 @@ PermissionStatus GetPermissionStatus(PermissionType type) {
  	switch (type) {
  	case PermissionType::Microphone:
  	case PermissionType::Camera:
@@ -22,7 +22,7 @@ index 3b4395ae3..7f8ee401f 100644
  		const auto nativeType = (type == PermissionType::Microphone)
  			? AVMediaTypeAudio
  			: AVMediaTypeVideo;
-@@ -133,6 +134,7 @@ PermissionStatus GetPermissionStatus(PermissionType type) {
+@@ -132,6 +133,7 @@ PermissionStatus GetPermissionStatus(PermissionType type) {
  					return PermissionStatus::Denied;
  			}
  		}
@@ -30,7 +30,7 @@ index 3b4395ae3..7f8ee401f 100644
  		break;
  	}
  	return PermissionStatus::Granted;
-@@ -142,6 +144,7 @@ void RequestPermission(PermissionType type, Fn<void(PermissionStatus)> resultCal
+@@ -141,6 +143,7 @@ void RequestPermission(PermissionType type, Fn<void(PermissionStatus)> resultCal
  	switch (type) {
  	case PermissionType::Microphone:
  	case PermissionType::Camera:
@@ -38,7 +38,7 @@ index 3b4395ae3..7f8ee401f 100644
  		const auto nativeType = (type == PermissionType::Microphone)
  			? AVMediaTypeAudio
  			: AVMediaTypeVideo;
-@@ -152,6 +155,7 @@ void RequestPermission(PermissionType type, Fn<void(PermissionStatus)> resultCal
+@@ -151,6 +154,7 @@ void RequestPermission(PermissionType type, Fn<void(PermissionStatus)> resultCal
  				});
  			}];
  		}
@@ -217,7 +217,7 @@ index 464f87c9c..9a008c75e 100644
  	controller:(not_null<Window::Controller*>)controller
 Submodule Telegram/ThirdParty/tgcalls contains modified content
 diff --git a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoDecoderFactory.mm b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoDecoderFactory.mm
-index 8a4417b..2d9794e 100644
+index b280c1b..a1ed0d2 100644
 --- a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoDecoderFactory.mm
 +++ b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoDecoderFactory.mm
 @@ -71,7 +71,7 @@
@@ -239,10 +239,10 @@ index 8a4417b..2d9794e 100644
      if ([info.name isEqualToString:kRTCVideoCodecH265Name]) {
        return [[TGRTCVideoDecoderH265 alloc] init];
 diff --git a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoEncoderFactory.mm b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoEncoderFactory.mm
-index 2901417..ac9ec2a 100644
+index 9960607..f3659b3 100644
 --- a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoEncoderFactory.mm
 +++ b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoEncoderFactory.mm
-@@ -76,7 +76,7 @@
+@@ -89,7 +89,7 @@
        [result addObject:h265Info];
      }
    }
@@ -251,7 +251,7 @@ index 2901417..ac9ec2a 100644
    if (@available(macOS 10.13, *)) {
      if ([[AVAssetExportSession allExportPresets] containsObject:AVAssetExportPresetHEVCHighestQuality]) {
        [result addObject:h265Info];
-@@ -112,7 +112,7 @@
+@@ -129,7 +129,7 @@
        return [[TGRTCVideoEncoderH265 alloc] initWithCodecInfo:info];
      }
    }
@@ -261,7 +261,7 @@ index 2901417..ac9ec2a 100644
      if ([info.name isEqualToString:kRTCVideoCodecH265Name]) {
        return [[TGRTCVideoEncoderH265 alloc] initWithCodecInfo:info];
 diff --git a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoCameraCapturerMac.mm b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoCameraCapturerMac.mm
-index de92427..9a5b20d 100644
+index bf99063..b717645 100644
 --- a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoCameraCapturerMac.mm
 +++ b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoCameraCapturerMac.mm
 @@ -507,8 +507,7 @@ static tgcalls::DarwinVideoTrackSource *getObjCVideoSource(const rtc::scoped_ref
@@ -274,11 +274,20 @@ index de92427..9a5b20d 100644
    RTCLogError(@"Dropped sample buffer. Reason: %@", droppedReason);
  }
  
+@@ -682,7 +681,7 @@ static tgcalls::DarwinVideoTrackSource *getObjCVideoSource(const rtc::scoped_ref
+             int closest = -1;
+             CMTime result;
+             for (int i = 0; i < format.videoSupportedFrameRateRanges.count; i++) {
+-                const auto rateRange = format.videoSupportedFrameRateRanges[i];
++                const AVFrameRateRange *rateRange = format.videoSupportedFrameRateRanges[i];
+                 int gap = abs(rateRange.minFrameRate - target);
+                 if (gap <= closest || closest == -1) {
+                     closest = gap;
 diff --git a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoMetalViewMac.mm b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoMetalViewMac.mm
-index bcabcf7..de7b6c7 100644
+index 4ef8630..3fc753c 100644
 --- a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoMetalViewMac.mm
 +++ b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoMetalViewMac.mm
-@@ -245,9 +245,11 @@ private:
+@@ -243,9 +243,11 @@ private:
      layer.framebufferOnly = true;
      layer.opaque = false;
  //    layer.cornerRadius = 4;
@@ -290,7 +299,7 @@ index bcabcf7..de7b6c7 100644
  //    layer.presentsWithTransaction = YES;
      layer.backgroundColor = [NSColor clearColor].CGColor;
      layer.contentsGravity = kCAGravityResizeAspectFill;
-@@ -334,9 +336,7 @@ private:
+@@ -332,9 +334,7 @@ private:
  - (RTCVideoRotation)rtcFrameRotation {
      if (_rotationOverride) {
          RTCVideoRotation rotation;
@@ -323,10 +332,10 @@ index 5491702..32befc6 100644
  }
  
 diff --git a/Telegram/lib_base/base/platform/mac/base_info_mac.mm b/Telegram/lib_base/base/platform/mac/base_info_mac.mm
-index 29e368f..ea1f65f 100644
+index f1f259a..6629eb6 100644
 --- a/Telegram/lib_base/base/platform/mac/base_info_mac.mm
 +++ b/Telegram/lib_base/base/platform/mac/base_info_mac.mm
-@@ -203,16 +203,20 @@ void Finish() {
+@@ -226,16 +226,20 @@ void Finish() {
  }
  
  void OpenInputMonitoringPrivacySettings() {
@@ -348,10 +357,10 @@ index 29e368f..ea1f65f 100644
  }
  
 diff --git a/Telegram/lib_base/base/platform/mac/base_system_media_controls_mac.mm b/Telegram/lib_base/base/platform/mac/base_system_media_controls_mac.mm
-index c86ac77..b081162 100644
+index 6102705..8981239 100644
 --- a/Telegram/lib_base/base/platform/mac/base_system_media_controls_mac.mm
 +++ b/Telegram/lib_base/base/platform/mac/base_system_media_controls_mac.mm
-@@ -271,6 +271,7 @@ void SystemMediaControls::setThumbnail(const QImage &thumbnail) {
+@@ -277,6 +277,7 @@ void SystemMediaControls::setThumbnail(const QImage &thumbnail) {
  	if (thumbnail.isNull()) {
  		return;
  	}
@@ -359,7 +368,7 @@ index c86ac77..b081162 100644
  	if (@available(macOS 10.13.2, *)) {
  		const auto copy = thumbnail;
  		[_private->info
-@@ -284,6 +285,7 @@ void SystemMediaControls::setThumbnail(const QImage &thumbnail) {
+@@ -290,6 +291,7 @@ void SystemMediaControls::setThumbnail(const QImage &thumbnail) {
  			forKey:MPMediaItemPropertyArtwork];
  		updateDisplay();
  	}
@@ -367,7 +376,7 @@ index c86ac77..b081162 100644
  }
  
  void SystemMediaControls::setDuration(int duration) {
-@@ -302,10 +304,12 @@ void SystemMediaControls::setVolume(float64 volume) {
+@@ -308,10 +310,12 @@ void SystemMediaControls::setVolume(float64 volume) {
  }
  
  void SystemMediaControls::clearThumbnail() {
@@ -380,7 +389,7 @@ index c86ac77..b081162 100644
  }
  
  void SystemMediaControls::clearMetadata() {
-@@ -367,9 +371,11 @@ bool SystemMediaControls::volumeSupported() const {
+@@ -373,9 +377,11 @@ bool SystemMediaControls::volumeSupported() const {
  }
  
  bool SystemMediaControls::Supported() {
diff --git a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt-10.12-sdk.patch b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt-10.12-sdk.patch
index a9adf5737a55c..af1d47a3b44e6 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt-10.12-sdk.patch
+++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt-10.12-sdk.patch
@@ -1,3 +1,16 @@
+diff --git a/src/rtc_base/async_resolver.cc b/src/rtc_base/async_resolver.cc
+index ad1598f2..fe9c3832 100644
+--- a/src/rtc_base/async_resolver.cc
++++ b/src/rtc_base/async_resolver.cc
+@@ -57,7 +57,7 @@ void GlobalGcdRunTask(void* context) {
+ 
+ // Post a task into the system-defined global concurrent queue.
+ void PostTaskToGlobalQueue(std::unique_ptr<webrtc::QueuedTask> task) {
+-  dispatch_queue_global_t global_queue =
++  dispatch_queue_t global_queue =
+       dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
+   webrtc::QueuedTask* context = task.release();
+   dispatch_async_f(global_queue, context, &GlobalGcdRunTask);
 diff --git a/src/rtc_base/system/gcd_helpers.m b/src/rtc_base/system/gcd_helpers.m
 index fd9a361f..3a63be6d 100644
 --- a/src/rtc_base/system/gcd_helpers.m
@@ -13,10 +26,10 @@ index fd9a361f..3a63be6d 100644
    dispatch_set_target_queue(queue, target);
    return queue;
 diff --git a/src/sdk/objc/components/video_codec/nalu_rewriter.cc b/src/sdk/objc/components/video_codec/nalu_rewriter.cc
-index 61c1e7d6..b19f3f91 100644
+index 1121c921..f21926b0 100644
 --- a/src/sdk/objc/components/video_codec/nalu_rewriter.cc
 +++ b/src/sdk/objc/components/video_codec/nalu_rewriter.cc
-@@ -245,10 +245,7 @@ bool H265CMSampleBufferToAnnexBBuffer(
+@@ -242,10 +242,7 @@ bool H265CMSampleBufferToAnnexBBuffer(
    int nalu_header_size = 0;
    size_t param_set_count = 0;
    OSStatus status = noErr;
@@ -28,7 +41,7 @@ index 61c1e7d6..b19f3f91 100644
      RTC_LOG(LS_ERROR) << "Not supported.";
      return false;
    }
-@@ -271,10 +268,7 @@ bool H265CMSampleBufferToAnnexBBuffer(
+@@ -268,10 +265,7 @@ bool H265CMSampleBufferToAnnexBBuffer(
      size_t param_set_size = 0;
      const uint8_t* param_set = nullptr;
      for (size_t i = 0; i < param_set_count; ++i) {
@@ -40,7 +53,7 @@ index 61c1e7d6..b19f3f91 100644
          RTC_LOG(LS_ERROR) << "Not supported.";
          return false;
        }
-@@ -514,11 +508,7 @@ CMVideoFormatDescriptionRef CreateH265VideoFormatDescription(
+@@ -501,11 +495,7 @@ CMVideoFormatDescriptionRef CreateH265VideoFormatDescription(
    // Parse the SPS and PPS into a CMVideoFormatDescription.
    CMVideoFormatDescriptionRef description = nullptr;
    OSStatus status = noErr;
diff --git a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix
index fe62270b8e809..9146da94530c7 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix
@@ -25,8 +25,8 @@
 , abseil-cpp
 , pipewire
 , mesa
-, libglvnd
-, libepoxy
+, libdrm
+, libGL
 , Cocoa
 , AppKit
 , IOKit
@@ -46,13 +46,13 @@
 
 stdenv.mkDerivation {
   pname = "tg_owt";
-  version = "unstable-2022-02-26";
+  version = "unstable-2022-04-13";
 
   src = fetchFromGitHub {
     owner = "desktop-app";
     repo = "tg_owt";
-    rev = "a264028ec71d9096e0aa629113c49c25db89d260";
-    sha256 = "sha256-JR+M+4w0QsQLfIunZ/7W+5Knn+gX+RR3DBrpOz7q44I=";
+    rev = "63a934db1ed212ebf8aaaa20f0010dd7b0d7b396";
+    sha256 = "sha256-WddSsQ9KW1zYyYckzdUOvfFZArYAbyvXmABQNMtK6cM=";
     fetchSubmodules = true;
   };
 
@@ -61,6 +61,14 @@ stdenv.mkDerivation {
     ./tg_owt-10.12-sdk.patch
   ];
 
+  postPatch = lib.optionalString stdenv.isLinux ''
+    substituteInPlace src/modules/desktop_capture/linux/egl_dmabuf.cc \
+      --replace '"libEGL.so.1"' '"${libGL}/lib/libEGL.so.1"' \
+      --replace '"libGL.so.1"' '"${libGL}/lib/libGL.so.1"' \
+      --replace '"libgbm.so.1"' '"${mesa}/lib/libgbm.so.1"' \
+      --replace '"libdrm.so.2"' '"${libdrm}/lib/libdrm.so.2"'
+  '';
+
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [ pkg-config cmake ninja yasm ];
@@ -87,8 +95,8 @@ stdenv.mkDerivation {
     glib
     pipewire
     mesa
-    libepoxy
-    libglvnd
+    libdrm
+    libGL
   ] ++ lib.optionals stdenv.isDarwin [
     Cocoa
     AppKit
diff --git a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix
new file mode 100644
index 0000000000000..435268cdf6230
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix
@@ -0,0 +1,23 @@
+{ stdenv, lib, kotatogram-desktop, glib-networking, webkitgtk, makeWrapper }:
+
+with lib;
+
+stdenv.mkDerivation {
+  pname = "${kotatogram-desktop.pname}-with-webkit";
+  version = kotatogram-desktop.version;
+  nativeBuildInputs = [ makeWrapper ];
+  dontUnpack = true;
+  installPhase = ''
+    mkdir -p $out
+    cp -r ${kotatogram-desktop}/share $out
+  '';
+  postFixup = ''
+    mkdir -p $out/bin
+    makeWrapper ${kotatogram-desktop}/bin/kotatogram-desktop $out/bin/kotatogram-desktop \
+      --prefix GIO_EXTRA_MODULES : ${glib-networking}/lib/gio/modules \
+      --prefix LD_LIBRARY_PATH : ${makeLibraryPath [ webkitgtk ]}
+  '';
+  meta = kotatogram-desktop.meta // {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index c23e416d2c627..b5b30b0834868 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -82,6 +82,14 @@ env.mkDerivation rec {
     sha256 = "0zcjm08nfdlxrsv0fi6dqg3lk52bcvsxnsf6jm5fv6gf5v9ia3hq";
   };
 
+  patches = [
+    # fix build with KWayland 5.94+
+    # cf. https://invent.kde.org/frameworks/kwayland/-/commit/de442e4a94e249a29cf2e005db8e0a5e4a6a13ed
+    # upstream bug: https://github.com/telegramdesktop/tdesktop/issues/24375
+    # FIXME remove when no longer necessary
+    ./kf594.diff
+  ];
+
   postPatch = ''
     substituteInPlace Telegram/CMakeLists.txt \
       --replace '"''${TDESKTOP_LAUNCHER_BASENAME}.appdata.xml"' '"''${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml"'
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/kf594.diff b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/kf594.diff
new file mode 100644
index 0000000000000..0fa2d8bc8f6ee
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/kf594.diff
@@ -0,0 +1,57 @@
+diff --git a/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp b/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp
+index 7641579aa..3c195e397 100644
+--- a/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp
++++ b/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp
+@@ -9,10 +9,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
+ 
+ #include "base/platform/base_platform_info.h"
+ 
+-#include <connection_thread.h>
+-#include <registry.h>
+-#include <surface.h>
+-#include <plasmashell.h>
++#include <KWayland/Client/connection_thread.h>
++#include <KWayland/Client/registry.h>
++#include <KWayland/Client/surface.h>
++#include <KWayland/Client/plasmashell.h>
+ 
+ using namespace KWayland::Client;
+ 
+Submodule Telegram/lib_base contains modified content
+diff --git a/Telegram/lib_base/base/platform/linux/base_linux_wayland_integration.cpp b/Telegram/lib_base/base/platform/linux/base_linux_wayland_integration.cpp
+index 32f0de6..30a087f 100644
+--- a/Telegram/lib_base/base/platform/linux/base_linux_wayland_integration.cpp
++++ b/Telegram/lib_base/base/platform/linux/base_linux_wayland_integration.cpp
+@@ -13,11 +13,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
+ #include <QtCore/QPointer>
+ #include <QtGui/QWindow>
+ 
+-#include <connection_thread.h>
+-#include <registry.h>
+-#include <surface.h>
+-#include <xdgforeign.h>
+-#include <idleinhibit.h>
++#include <KWayland/Client/connection_thread.h>
++#include <KWayland/Client/registry.h>
++#include <KWayland/Client/surface.h>
++#include <KWayland/Client/xdgforeign.h>
++#include <KWayland/Client/idleinhibit.h>
+ 
+ using namespace KWayland::Client;
+ 
+Submodule Telegram/lib_ui contains modified content
+diff --git a/Telegram/lib_ui/ui/platform/linux/ui_linux_wayland_integration.cpp b/Telegram/lib_ui/ui/platform/linux/ui_linux_wayland_integration.cpp
+index 01f1e80..163cb6a 100644
+--- a/Telegram/lib_ui/ui/platform/linux/ui_linux_wayland_integration.cpp
++++ b/Telegram/lib_ui/ui/platform/linux/ui_linux_wayland_integration.cpp
+@@ -24,8 +24,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
+ #include <private/qwaylandwindow_p.h>
+ #include <private/qwaylandshellsurface_p.h>
+ 
+-#include <connection_thread.h>
+-#include <registry.h>
++#include <KWayland/Client/connection_thread.h>
++#include <KWayland/Client/registry.h>
+ 
+ Q_DECLARE_METATYPE(QMargins);
+ 
diff --git a/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix b/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
index 30bfde7a96f1c..0951f1d3d8e7d 100644
--- a/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "threema-desktop";
-  version = "1.0.3";
+  version = "1.2.0";
 
   src = fetchurl {
     # As Threema only offers a Latest Release url, the plan is to upload each
     # new release url to web.archive.org until their Github releases page gets populated.
-    url = "https://web.archive.org/web/20211027194646/https://releases.threema.ch/web-electron/v1/release/Threema-Latest.deb";
-    sha256 = "sha256-qiFv52nnyfHxCWTePmyxW/MgzFy3EUxmW6n+UIkw7tk=";
+    url = "https://web.archive.org/web/20220408213031if_/https://releases.threema.ch/web-electron/v1/release/Threema-Latest.deb";
+    sha256 = "7c8e1e76ad82a0cf776eb8b0a683a41a00dc8752bb79a24b0ae9d795fdedcde6";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/torchat/default.nix b/pkgs/applications/networking/instant-messengers/torchat/default.nix
index 3278d68cd0b53..224a70ce9f723 100644
--- a/pkgs/applications/networking/instant-messengers/torchat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/torchat/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     cp -rf * $out/lib/torchat
     makeWrapper ${python2}/bin/python $out/bin/torchat \
         --set PYTHONPATH $out/lib/torchat:$program_PYTHONPATH \
-        --run "cd $out/lib/torchat" \
+        --chdir "$out/lib/torchat" \
         --add-flags "-O $out/lib/torchat/torchat.py"
   '';
 
diff --git a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
index 974d9a6a05df8..4d7a2218e7dfa 100644
--- a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
@@ -11,6 +11,7 @@
 , cpio
 , xar
 , libdbusmenu
+, libxshmfence
 }:
 
 let
@@ -22,13 +23,13 @@ let
   pname = "wire-desktop";
 
   version = {
-    x86_64-darwin = "3.26.4145";
-    x86_64-linux = "3.26.2941";
+    x86_64-darwin = "3.27.4357";
+    x86_64-linux = "3.27.2944";
   }.${system} or throwSystem;
 
   sha256 = {
-    x86_64-darwin = "1ck74a9z2mrwmljrqm347bqhjiaf1v0bf1jfnp58cqngh5ygqnf2";
-    x86_64-linux = "01gy84gr0gw5ap7hpy72azaf6hlzac7vxkn5cgad5sfbyzxgjgc9";
+    x86_64-darwin = "0xihg9fzsbwib2fmb1yqx9015i9q4k0ph8lna4mzgicmrjkw54g8";
+    x86_64-linux = "1wqnrmp8q84izvqv25fgks5pv6la3vahm5dsn7bc6zxqb0xz2xvy";
   }.${system} or throwSystem;
 
   meta = with lib; {
@@ -90,7 +91,7 @@ let
       wrapGAppsHook
     ];
 
-    buildInputs = atomEnv.packages;
+    buildInputs = [ libxshmfence ] ++ atomEnv.packages;
 
     unpackPhase = ''
       runHook preUnpack
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index 528d5ef1689b7..58b8cc056c1c6 100644
--- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -143,7 +143,7 @@ stdenv.mkDerivation rec {
     # Clear Qt paths to prevent tripping over "foreign" Qt resources.
     # Clear Qt screen scaling settings to prevent over-scaling.
     makeWrapper $out/opt/zoom/ZoomLauncher $out/bin/zoom \
-      --run "cd $out/opt/zoom" \
+      --chdir "$out/opt/zoom" \
       --unset QML2_IMPORT_PATH \
       --unset QT_PLUGIN_PATH \
       --unset QT_SCREEN_SCALE_FACTORS \
diff --git a/pkgs/applications/networking/instant-messengers/zulip/default.nix b/pkgs/applications/networking/instant-messengers/zulip/default.nix
index 3c43715dd9812..c2bff0b6b266a 100644
--- a/pkgs/applications/networking/instant-messengers/zulip/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zulip/default.nix
@@ -5,12 +5,12 @@
 
 let
   pname = "zulip";
-  version = "5.9.0";
+  version = "5.9.2";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage";
-    hash = "sha256-qiGkZuGJsKuquMuAcO+9wbU4KW++uyOb4TKb9lCgZmI=";
+    hash = "sha256-PJ7/KOtfjH1RHMzAKSr9Y/82Z0vL2wBy3GgI/0JrlpM=";
     name="${pname}-${version}.AppImage";
   };
 
diff --git a/pkgs/applications/networking/ipfs/default.nix b/pkgs/applications/networking/ipfs/default.nix
index 04854840112f4..e501137fa8383 100644
--- a/pkgs/applications/networking/ipfs/default.nix
+++ b/pkgs/applications/networking/ipfs/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "ipfs";
-  version = "0.12.1"; # When updating, also check if the repo version changed and adjust repoVersion below
+  version = "0.12.2"; # When updating, also check if the repo version changed and adjust repoVersion below
   rev = "v${version}";
 
   repoVersion = "12"; # Also update ipfs-migrator when changing the repo version
@@ -10,7 +10,7 @@ buildGoModule rec {
   # go-ipfs makes changes to it's source tarball that don't match the git source.
   src = fetchurl {
     url = "https://github.com/ipfs/go-ipfs/releases/download/${rev}/go-ipfs-source.tar.gz";
-    sha256 = "sha256-fUExCvE6x5VFBl66y52DGvr8ZNSXZ6MYpVQP/D7X328=";
+    sha256 = "sha256-66NNLMSfeBHQh/QlnETB/ssra9CKbD+jtaJuX+14x00=";
   };
 
   # tarball contains multiple files/directories
diff --git a/pkgs/applications/networking/mailreaders/aerc/default.nix b/pkgs/applications/networking/mailreaders/aerc/default.nix
index 172cea3d061d8..5d00242452b80 100644
--- a/pkgs/applications/networking/mailreaders/aerc/default.nix
+++ b/pkgs/applications/networking/mailreaders/aerc/default.nix
@@ -1,21 +1,27 @@
-{ lib, buildGoModule, fetchFromSourcehut
-, ncurses, notmuch, scdoc
-, python3, w3m, dante
+{ lib
+, buildGoModule
+, fetchFromSourcehut
+, ncurses
+, notmuch
+, scdoc
+, python3
+, w3m
+, dante
 }:
 
 buildGoModule rec {
   pname = "aerc";
-  version = "0.7.1";
+  version = "0.9.0";
 
   src = fetchFromSourcehut {
     owner = "~rjarry";
     repo = pname;
     rev = version;
-    sha256 = "sha256-wiylBBqnivDnMUyCg3Zateu4jcjicTfrQFALT8dg5No=";
+    sha256 = "sha256-D4cZVNh3YFaVRHGFn5Nt6kMSRCShj0w5n7pTxgYik2s=";
   };
 
   proxyVendor = true;
-  vendorSha256 = "sha256-hpGd78PWk3tIwB+TPmPy0gKkU8+t5NTm9RzPuLae+Fk=";
+  vendorSha256 = "sha256-fGQ15i3mWNmmfypRt5A7SAVYSEg9m4so4FYlUY+7mW8=";
 
   doCheck = false;
 
@@ -28,22 +34,25 @@ buildGoModule rec {
     ./runtime-sharedir.patch
   ];
 
+  postPatch = ''
+    substituteAllInPlace config/aerc.conf
+    substituteAllInPlace config/config.go
+    substituteAllInPlace doc/aerc-config.5.scd
+  '';
+
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
   pythonPath = [
     python3.pkgs.colorama
   ];
 
   buildInputs = [ python3 notmuch ];
 
-  buildPhase = "
-    runHook preBuild
-    # we use make instead of go build
-    runHook postBuild
-  ";
-
   installPhase = ''
     runHook preInstall
-    make PREFIX=$out GOFLAGS="$GOFLAGS -tags=notmuch" install
-    wrapPythonProgramsIn $out/share/aerc/filters "$out $pythonPath"
+
+    make $makeFlags GOFLAGS="$GOFLAGS -tags=notmuch" install
+
     runHook postInstall
   '';
 
diff --git a/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch b/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch
index e08161e61eb68..d5e40edeb6617 100644
--- a/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch
+++ b/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch
@@ -1,60 +1,90 @@
-From c715a96c693baa0e6c8ab3c96b6c10e0a40bf7af Mon Sep 17 00:00:00 2001
-From: Tadeo Kondrak <me@tadeo.ca>
-Date: Thu, 21 Jan 2021 10:40:49 +0100
-Subject: [PATCH] Fix aerc breaking every time the package is rebuilt.
-
-On NixOS, the SHAREDIR changes on every rebuild to the package, but aerc
-fills it in as part of the default config and then installs that config
-to the users home folder. Fix this by not substituting @SHAREDIR@ in the
-default config until runtime.
----
- Makefile         |  2 +-
- config/config.go | 13 +++++++++++++
- 2 files changed, 14 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 77f5e61..98cbc11 100644
---- a/Makefile
-+++ b/Makefile
-@@ -23,7 +23,7 @@ aerc: $(GOSRC)
- 		-o $@
-
- aerc.conf: config/aerc.conf.in
--	sed -e 's:@SHAREDIR@:$(SHAREDIR):g' > $@ < config/aerc.conf.in
-+	cat config/aerc.conf.in > $@
-
- debug: $(GOSRC)
- 	GOFLAGS="-tags=notmuch" \
+diff --git a/config/aerc.conf b/config/aerc.conf
+index fbbf587..ede1a03 100644
+--- a/config/aerc.conf
++++ b/config/aerc.conf
+@@ -107,8 +107,7 @@ next-message-on-delete=true
+ #
+ #   ${XDG_CONFIG_HOME:-~/.config}/aerc/stylesets
+ #   ${XDG_DATA_HOME:-~/.local/share}/aerc/stylesets
+-#   /usr/local/share/aerc/stylesets
+-#   /usr/share/aerc/stylesets
++#   @out@/share/aerc/stylesets
+ #
+ # default: ""
+ stylesets-dirs=
+@@ -254,8 +253,7 @@ new-email=
+ #
+ #   ${XDG_CONFIG_HOME:-~/.config}/aerc/templates
+ #   ${XDG_DATA_HOME:-~/.local/share}/aerc/templates
+-#   /usr/local/share/aerc/templates
+-#   /usr/share/aerc/templates
++#   @out@/share/aerc/templates
+ #
+ # default: ""
+ template-dirs=
 diff --git a/config/config.go b/config/config.go
-index 87d183a..cb6611a 100644
+index 2120310..92b7655 100644
 --- a/config/config.go
 +++ b/config/config.go
-@@ -470,6 +470,16 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) {
- 			return nil, err
- 		}
+@@ -331,8 +331,8 @@ func buildDefaultDirs() []string {
  	}
-+	if sec, err := file.GetSection("templates"); err == nil {
-+		if key, err := sec.GetKey("template-dirs"); err == nil {
-+			sec.NewKey("template-dirs", strings.ReplaceAll(key.String(), "@SHAREDIR@", sharedir))
-+		}
-+	}
-+	if sec, err := file.GetSection("ui"); err == nil {
-+		if key, err := sec.GetKey("stylesets-dirs"); err == nil {
-+			sec.NewKey("stylesets-dirs", strings.ReplaceAll(key.String(), "@SHAREDIR@", sharedir))
-+		}
-+	}
- 	file.NameMapper = mapName
- 	config := &AercConfig{
- 		Bindings: BindingConfig{
-@@ -547,6 +557,9 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) {
- 		return nil, err
- 	}
-
-+	for i, filter := range config.Filters {
-+		config.Filters[i].Command = strings.ReplaceAll(filter.Command, "@SHAREDIR@", sharedir)
-+	}
- 	if ui, err := file.GetSection("general"); err == nil {
- 		if err := ui.MapTo(&config.General); err != nil {
- 			return nil, err
---
-2.30.0
+ 
+ 	// Add fixed fallback locations
+-	defaultDirs = append(defaultDirs, "/usr/local/share/aerc")
+-	defaultDirs = append(defaultDirs, "/usr/share/aerc")
++	defaultDirs = append(defaultDirs, "@out@/local/share/aerc")
++	defaultDirs = append(defaultDirs, "@out@/share/aerc")
+ 
+ 	return defaultDirs
+ }
+diff --git a/doc/aerc-config.5.scd b/doc/aerc-config.5.scd
+index 885c4f8..77a853e 100644
+--- a/doc/aerc-config.5.scd
++++ b/doc/aerc-config.5.scd
+@@ -12,7 +12,7 @@ account credentials. We look for these files in your XDG config home plus
+ "aerc", which defaults to ~/.config/aerc.
+ 
+ Examples of these config files are typically included with your installation of
+-aerc and are usually installed in /usr/share/aerc.
++aerc and are usually installed in @out@/share/aerc.
+ 
+ Each file uses the _ini_ format, and consists of sections with keys and values.
+ A line beginning with # is considered a comment and ignored, as are empty lines.
+@@ -221,8 +221,7 @@ These options are configured in the *[ui]* section of aerc.conf.
+ 	```
+ 	${XDG_CONFIG_HOME:-~/.config}/aerc/stylesets
+ 	${XDG_DATA_HOME:-~/.local/share}/aerc/stylesets
+-	/usr/local/share/aerc/stylesets
+-	/usr/share/aerc/stylesets
++	@out@/share/aerc/stylesets
+ 	```
+ 
+ 	Default: ""
+@@ -381,7 +380,7 @@ against (non-case-sensitive) and a comma, e.g. subject,text will match a
+ subject which contains "text". Use header,~regex to match against a regex.
+ 
+ aerc ships with some default filters installed in the share directory (usually
+-_/usr/share/aerc/filters_). Note that these may have additional dependencies
++_@out@/share/aerc/filters_). Note that these may have additional dependencies
+ that aerc does not have alone.
+ 
+ ## TRIGGERS
+@@ -407,7 +406,7 @@ and forward commands can be called with the -T flag with the name of the
+ template name.
+ 
+ aerc ships with some default templates installed in the share directory (usually
+-_/usr/share/aerc/templates_).
++_@out@/share/aerc/templates_).
+ 
+ These options are configured in the *[templates]* section of aerc.conf.
+ 
+@@ -419,8 +418,7 @@ These options are configured in the *[templates]* section of aerc.conf.
+ 	```
+ 	${XDG_CONFIG_HOME:-~/.config}/aerc/templates
+ 	${XDG_DATA_HOME:-~/.local/share}/aerc/templates
+-	/usr/local/share/aerc/templates
+-	/usr/share/aerc/templates
++	@out@/share/aerc/templates
+ 	```
+ 
+ 	Default: ""
diff --git a/pkgs/applications/networking/mailreaders/claws-mail/default.nix b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
index af1099cbcf3e3..93160a6e7b5e1 100644
--- a/pkgs/applications/networking/mailreaders/claws-mail/default.nix
+++ b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
@@ -33,6 +33,7 @@
 , enablePluginDillo ? true
 , enablePluginFancy ? true, libsoup, webkitgtk
 , enablePluginFetchInfo ? true
+, enablePluginKeywordWarner ? true
 , enablePluginLibravatar ? enablePluginRavatar
 , enablePluginLitehtmlViewer ? true, gumbo
 , enablePluginMailmbox ? true
@@ -70,6 +71,7 @@ let
     { flags = [ "enchant" ]; enabled = enableEnchant; deps = [ enchant ]; }
     { flags = [ "fancy-plugin" ]; enabled = enablePluginFancy; deps = [ libsoup webkitgtk ]; }
     { flags = [ "fetchinfo-plugin" ]; enabled = enablePluginFetchInfo; }
+    { flags = [ "keyword_warner-plugin" ]; enabled = enablePluginKeywordWarner; }
     { flags = [ "gnutls" ]; enabled = enableGnuTLS; deps = [ gnutls ]; }
     { flags = [ "ldap" ]; enabled = enableLdap; deps = [ openldap ]; }
     { flags = [ "libetpan" ]; enabled = enableLibetpan; deps = [ libetpan ]; }
diff --git a/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix b/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
index 2fae122fc1b6c..1581790c3d4c3 100644
--- a/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
+++ b/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
@@ -46,11 +46,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution";
-  version = "3.44.0";
+  version = "3.44.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "3yHT31Ik36hC6ikO/82QKv1LFBhgik37aQejt9TZlPk=";
+    sha256 = "dEx+CK0R4bYQPO60u/2Jo7Yo4SbOOGe7AI80F8wEnqk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/mailreaders/mailspring/default.nix b/pkgs/applications/networking/mailreaders/mailspring/default.nix
index d30282f44c7f4..b522b51906397 100644
--- a/pkgs/applications/networking/mailreaders/mailspring/default.nix
+++ b/pkgs/applications/networking/mailreaders/mailspring/default.nix
@@ -95,6 +95,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ toschmidt doronbehar ];
     homepage = "https://getmailspring.com";
     downloadPage = "https://github.com/Foundry376/Mailspring";
-    platforms = platforms.x86_64;
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index 9904e2db362d9..c22c7b2c17e01 100644
--- a/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -27,11 +27,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "mutt";
-  version = "2.2.2";
+  version = "2.2.3";
 
   src = fetchurl {
     url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
-    sha256 = "1k0ghbpc4gn3sydbw10xv9djin9grk1pkxdwynrw0iknyc68gphh";
+    sha256 = "12cds5qm0x51wj1bz1a2f4q4qwbyfssq9pnisxz48ks5mg6xv2lp";
   };
 
   patches = optional smimeSupport (fetchpatch {
diff --git a/pkgs/applications/networking/mailreaders/neomutt/default.nix b/pkgs/applications/networking/mailreaders/neomutt/default.nix
index 6d5ab96b4edc8..43cd7183c5110 100644
--- a/pkgs/applications/networking/mailreaders/neomutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/neomutt/default.nix
@@ -1,18 +1,17 @@
 { lib, stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which
 , ncurses, perl , cyrus_sasl, gss, gpgme, libkrb5, libidn, libxml2, notmuch, openssl
 , lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, w3m, mailcap, sqlite, zlib
-, fetchpatch
 }:
 
 stdenv.mkDerivation rec {
-  version = "20211029";
+  version = "20220415";
   pname = "neomutt";
 
   src = fetchFromGitHub {
     owner  = "neomutt";
     repo   = "neomutt";
     rev    = version;
-    sha256 = "sha256-haPDZorAfKuIEMiBCXJRMALAYnurQyjmCSOnj9IsoKk=";
+    sha256 = "sha256-iVKDgVN7YFPEMP+OISS7jRG9Whs2QG60yH1r2kw3MUQ=";
   };
 
   buildInputs = [
@@ -25,15 +24,6 @@ stdenv.mkDerivation rec {
     docbook_xsl docbook_xml_dtd_42 gettext libxml2 libxslt.bin makeWrapper tcl which zlib w3m
   ];
 
-  patches = [
-    # Remove on next update, see
-    # https://github.com/NixOS/nixpkgs/pull/143641#issuecomment-954991746 for context.
-    (fetchpatch {
-      url = "https://github.com/neomutt/neomutt/commit/4242a31313e0b600693215c01047bbda8a6dd25a.patch";
-      sha256 = "sha256-fcuNeBkPjqln5QA9VFcfXCQD/VrUoSEMSxQ//Xj+yxY=";
-    })
-  ];
-
   enableParallelBuilding = true;
 
   postPatch = ''
diff --git a/pkgs/applications/networking/mailreaders/notmuch/default.nix b/pkgs/applications/networking/mailreaders/notmuch/default.nix
index e89216802e50f..18e09326f35f2 100644
--- a/pkgs/applications/networking/mailreaders/notmuch/default.nix
+++ b/pkgs/applications/networking/mailreaders/notmuch/default.nix
@@ -6,7 +6,7 @@
 , pythonPackages
 , emacs
 , ruby
-, testVersion
+, testers
 , which, dtach, openssl, bash, gdb, man
 , withEmacs ? true
 , withRuby ? true
@@ -102,7 +102,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     pythonSourceRoot = "notmuch-${version}/bindings/python";
-    tests.version = testVersion { package = notmuch; };
+    tests.version = testers.testVersion { package = notmuch; };
     inherit version;
   };
 
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
index 98792527faf1c..e4e5332e07f33 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -38,7 +38,7 @@
 , adwaita-icon-theme
 , libGLU, libGL
 , nspr
-, nss
+, nss_latest
 , pango
 , pipewire
 , pciutils
@@ -132,7 +132,7 @@ stdenv.mkDerivation {
       libnotify
       libGLU libGL
       nspr
-      nss
+      nss_latest
       pango
       pipewire
       pciutils
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
index 492abf1f37c49..7fc6492af7f3f 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
@@ -1,655 +1,655 @@
 {
-  version = "91.7.0";
+  version = "91.8.0";
   sources = [
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/af/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/af/thunderbird-91.8.0.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "bcc9a123b3de4d442836820d3eff52a37ff513b063850493e58c2132ad0ec029";
+      sha256 = "9f6fe7d931b4f9ec06e6d22e69ad6e638a82fcd709cfaabd52ed6283a75a8d31";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/ar/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/ar/thunderbird-91.8.0.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "4800a0be829e654d6917271b4944a5be3a8688e75eed58a4a5bae3643d2bce4b";
+      sha256 = "f8523e3b9b4229a7f977c25ba08dad4edad0fd56c90c8c8bb473db2a1e00265d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/ast/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/ast/thunderbird-91.8.0.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "779bf2732f89a82f36449d75d14ec4f8cbceb79c7f2d590f0407f4261fd9a5f9";
+      sha256 = "3a95ba998b4f863fe39fb3e3dfecb827108b92c317ed5594e4a409ccecc8b303";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/be/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/be/thunderbird-91.8.0.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "e1f033cf11d1d18828771ca81e90e6851a1b96971f0d3d81665ca6aebb6c737c";
+      sha256 = "fd41c8189eb64d70038b0a3551b46386c3d6e4afc1474bc7e50d0b88208a5547";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/bg/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/bg/thunderbird-91.8.0.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "293917397d1d52415bab86a1d27e9442b5bafb989e65cb3cbee0ba601970bc2d";
+      sha256 = "c7957994f4e3bb70b4f118ff6b939f52f46bc0d471a6098e18abbe23dbb58675";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/br/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/br/thunderbird-91.8.0.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "317883e2764505713e4507fffeaf1528f685fc774b99dc5b802164cdd1473292";
+      sha256 = "6987eb50cb3460d42794f9192c57262479ed7082662395893bb3a5b9e094c0f3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/ca/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/ca/thunderbird-91.8.0.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "cdfcbddc1697b46a85b67382d7b4a9d64d1ffc31d5faeb8e0edd21f4868a6008";
+      sha256 = "b09400e218281f8b09d688f5dbab2c732761da8e47141726941dcaedc3780097";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/cak/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/cak/thunderbird-91.8.0.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "8c1d1dff29b7631d5aad6384d02269b5c058bd1c37d85de0c92fd74e2a08e37c";
+      sha256 = "02efc2043ddc4485a239b19d5b3593bb68f5780ccd11f6d4eb968594192a1bf5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/cs/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/cs/thunderbird-91.8.0.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "3d1818c6d067552a7f7c62fc9dfae7370c309c9604f20ba1f1f4723020f04c7f";
+      sha256 = "13af2518a999650cebff031813b812141b014b3fcd9a7bd3953b64229e870dac";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/cy/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/cy/thunderbird-91.8.0.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "d339d87800e4060120468314544b34b4dfc355a5369363d6df826a6f10682afc";
+      sha256 = "ec9def864905036110381f901de0d9c7609116cd1d9bee9414627a133d5fb19e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/da/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/da/thunderbird-91.8.0.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "e00bb159fa9d113272866986eb8f9c3e6c3f29748cc7240cc736c00ed3eb1927";
+      sha256 = "d6cc0667d1be9fc73491bc57a0b44715433eae3743ea8aba59229e19fd24a642";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/de/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/de/thunderbird-91.8.0.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "af8365195927f75f6aac52fd91904193172f5e3b7bc09a7e52a94840ede1a6aa";
+      sha256 = "112bf23c33cacbf54319ac4534cff5be85d49704e69498f039cc45fd3abd0c8b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/dsb/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/dsb/thunderbird-91.8.0.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "96bdb60659052126bca84a64a1f2fdd26654875d74feacd4b9d50cf66b90c3d9";
+      sha256 = "7e190cf921b1b76cb3702e3ce534e1575b7dcc63ccc94d3d8bf384bd42000a60";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/el/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/el/thunderbird-91.8.0.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "af0101f1d999947cb02b3cf7c92eadab0f360b64f64788a3ea2ecbb6e8628c9d";
+      sha256 = "74917356bab02953ba56acf5736b3d2c9a1847f49fb4a75a273655e7678b80f0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/en-CA/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/en-CA/thunderbird-91.8.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "3537bfe2ffe474e587df4549a243ace7fb02236e8a424fac9c9e23ea74978969";
+      sha256 = "813d6df5de5768a3c82d3fc042907fd16f1f18695c5c294bb345cc593b71dfd7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/en-GB/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/en-GB/thunderbird-91.8.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "ff0daecd9a50d9bb060750d822bd0da409ac838f9280faf71ed6f146f1bd928d";
+      sha256 = "0cbefc0c52f32b7654d045cc85c5ae882ca83b6ca138b3f6b82e194b53b0940f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/en-US/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/en-US/thunderbird-91.8.0.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "f4da2a0627b042e61b8f25eb57396ab71d862c728abd9cc82e9eb102b27d26f5";
+      sha256 = "d57fd4df24d4acb36ddcca83062114d16a8fa4e9255606e5f2ffcd4ac9b5ea5d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/es-AR/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/es-AR/thunderbird-91.8.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "a052ed75f7b3aaa2fea27b7eaa658a0d75e03c5d8e51214e9207e79c8c656489";
+      sha256 = "ffc858a7474ea2b6c95a6bacf2f0a9257c95f9ae67ea3d04bbb2f5499a58d618";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/es-ES/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/es-ES/thunderbird-91.8.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "312b2eb38ec895a77a10cbd41cf861f03520d9ce7ff6cc0b2fd9e282c1a85743";
+      sha256 = "d3d77d80550c1ea96dff1f7fe59d12cd2bcf8b6d4f8db558c1c80d42e3767871";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/et/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/et/thunderbird-91.8.0.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "257137eab9877c8c6663cfa9200707f5ff5ff30076c72952f43db9eeb3fc334b";
+      sha256 = "03b95415f92d446bf24e392a14ddb3f1256158f711e65156745270fe61d2c565";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/eu/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/eu/thunderbird-91.8.0.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "69e426d23b3d29aa625d3fcc18080befe5ea717279a4d17a798c987819ce9f0d";
+      sha256 = "272f5e568abe042c6ce3d9ea53693bd1f2a18cc4ddcb0729fd2825a62ceb89af";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/fi/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/fi/thunderbird-91.8.0.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "2acb1d75cf32c65ca281ee353a79973bda5b96cfb1b8c6d55f91f5051ad9b720";
+      sha256 = "7171f34f07c49206eecfb1c3cf4d122b8fa9f24e68dd4075dd5c7313ba140fd4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/fr/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/fr/thunderbird-91.8.0.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "979a4ab6ae26ed9fe2320bc0baf828588ee96899d9aa04781aa5e3f7e1e4e35a";
+      sha256 = "45004e1b26c234969a805fe13a56ce3ed53e30d400965f61a6e95b4be79fd811";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/fy-NL/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/fy-NL/thunderbird-91.8.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "2cad6ddf73676bedc04d18afec2fce7f8085fe10400b514d5091113dbd1ccd39";
+      sha256 = "bdd6a130ae5a1c12a49a2d2b84410b445e7d8b62bd3aa1eb64cf66fbb7436047";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/ga-IE/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/ga-IE/thunderbird-91.8.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "6a8b5f6f413bf2d9122b90865131f1b2e3d1f528a2c0c54b0c3118b16948ef6f";
+      sha256 = "c03c8f98c0850402d909d1d802bc6fe189d145ed45bc576a821536a79e492bd7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/gd/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/gd/thunderbird-91.8.0.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "e739fdbcd525b1ec9a6415a1fc2b4f982895bc07e503324f8ee7cb9c44e30bf1";
+      sha256 = "b55a5edafa3ca381544c1e2d2ecf23a1557cdd9b10f937cc6f45c7a40e0a0831";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/gl/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/gl/thunderbird-91.8.0.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "b8b87d0c8d200264e7aab95fc2f1a59b3ffd1b0a6143409cb947df6acce2711b";
+      sha256 = "89f1cafa62a8334ea2250c6c8b9c07716fc99745aeafa6a689760c8eb288ad5a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/he/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/he/thunderbird-91.8.0.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "3d8048e55eb538414b436387419d0ed2b4589a6846d55c49665af2741082bd03";
+      sha256 = "82f9405f187471371a137838a8d39d289f2160ca3ffde007fbc5f643c11c0a0a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/hr/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/hr/thunderbird-91.8.0.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "e3eb72e83138d593046db8c72a09538b3b83abdef9b1534b9cf757751f172f78";
+      sha256 = "4920edd369b2317976d98707e4f59febe0b252a85666ddfe29e7f7043c502509";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/hsb/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/hsb/thunderbird-91.8.0.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "e110bd72de8a035ba2de4f849b09e60d11db161b09dda2bd4ba01ee7e42c0075";
+      sha256 = "88a84bf4f2a599527da8dc082bfc8e7d2e94fec446057bde2296c52cd1d25e76";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/hu/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/hu/thunderbird-91.8.0.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "2fc4d4e970257aff81352132dd73fc365cc7df822b70aef9716082cb455bbc6b";
+      sha256 = "a996700c6846850579b599cf31f837320859861f4b459554cabe35fe75f07059";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/hy-AM/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/hy-AM/thunderbird-91.8.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "ff5d16b7712f6975e68305f4d50e3c97846238021a4ffeb87526a5db0eb76db3";
+      sha256 = "05d31752442946111c5b35873bf2b2c4a87e3739bac6a4704d94c54f199a3c6c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/id/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/id/thunderbird-91.8.0.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "5063b921fbe8ea8273441868f1cda6e0e32a8fe00b2b866dd4f91c9f12f15011";
+      sha256 = "c8df7bf840268f4493403e849757eb6cfcd0cf59137bae948252eb9e9ace96ac";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/is/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/is/thunderbird-91.8.0.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "55d42de9dea45c13ad4288144b544d61b789d94d85976525b18c6dd32a75d210";
+      sha256 = "697487eba3eaf49d2613d877a2d58a1e357ad2f772ae2de031695902ad4514ad";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/it/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/it/thunderbird-91.8.0.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "7a6774106b689e6f829f8f74b03d23a85d79b9f8304d9a60d3fd172188e1bc26";
+      sha256 = "0749d5dcd105b82aea94bc704e10812bfd3fa375a776f7a95b94bb4886e543ce";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/ja/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/ja/thunderbird-91.8.0.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "b557c29aa992758dd4f92d3dab71cdac764b82b66359b75f2695de4fa052f918";
+      sha256 = "ac6aa38f830a8f3eea7d0c7d0c9695ce1351e84a19a831e3d87d212369353ef7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/ka/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/ka/thunderbird-91.8.0.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "681430faee4d1e6512ca4a68142b6c3314f26e2944c7de04016404c60bae735e";
+      sha256 = "b051d95f3b69a7c2d8de178e517abd37afec4502de1a580788f150c77c0187dc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/kab/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/kab/thunderbird-91.8.0.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "5b45b128a48395300ed63e033ea09562b368276c7e6a9ea7801db74b8db13e97";
+      sha256 = "2e635bdf5de067b57ba639be3465fcff3bbe00119d0c3f031d6471aab7a9b9f8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/kk/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/kk/thunderbird-91.8.0.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "a44dfb8259cd9e8c694e8c842cf5b691f2bfe5d9c5176dcc65bcfa9a316e78d5";
+      sha256 = "369cc371e500bc6ce224f9563c6bd586fb4748181372754c4b2c58e81d9f19c6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/ko/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/ko/thunderbird-91.8.0.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "e04ab8d19264afe6207875ea08b878993041ca84b613c4184d608a4f8bbedcba";
+      sha256 = "6b4270b67c7e2e47201cb37c7bc9b22599cc65ea3efc87e35b0fddedc0af8170";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/lt/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/lt/thunderbird-91.8.0.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "4cc3797ed91e6edfe994821bca011f20a64a7d1f6bc13634c1a31c877b161b2c";
+      sha256 = "a140ae146bb64c704130e6e84a63ccf7ccac77433a95964b0b5d1c2a52485e7c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/lv/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/lv/thunderbird-91.8.0.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "011867f9ee77187f02b6ce0040ab9c2d4babd6d2bbbb4c174094cc5f35eca65d";
+      sha256 = "5f88b779588a36ff7eac1c652400ebdaad501b00c83101e6614f1689bb0aebfa";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/ms/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/ms/thunderbird-91.8.0.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "8f9bd1f1d5052a8259f1096b38fef693f5a74e81b8a2bb69477fc1cfa7461796";
+      sha256 = "48632dc4e44bae95dc2c435f334c4d65a7058b0f5cdaf492ba4b7788d2c5df9d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/nb-NO/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/nb-NO/thunderbird-91.8.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "7bc57e4bc1373b5b484eb98f9775b85bbe9c6564e246af157b51314f74a20c67";
+      sha256 = "c065ca752ff112aeafb51684b2f8877af8a61a52a6e1a70b884967c78fb30880";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/nl/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/nl/thunderbird-91.8.0.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "bff24b619fa4282cc6341828528798d0d256213b43f1bcb4b36070e370bd2ba6";
+      sha256 = "44c9ea3d19b1f4b9151b49e3b8221eec179558bfe398076f5fc5b41266f8194f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/nn-NO/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/nn-NO/thunderbird-91.8.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "4286c9c093aacb233874bb1439e8b7880d7f3e81dc1bdeb24dd0096075d34b7d";
+      sha256 = "6347f87681652379ccda8564dbd2572bab1fa04b0c487ff43e3f51f3719ac7d5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/pa-IN/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/pa-IN/thunderbird-91.8.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "6ae5d50b4296201996b6ddf9ab2614534ec5fa3ed903c8e9d36c3254af820862";
+      sha256 = "6db940a4482f404fa89abc36a2e9737c835fa51d7c98503055fb98484f7586c0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/pl/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/pl/thunderbird-91.8.0.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "ac2fb293885f0a37d0ec6903cb72ca0d2126e18540a8e542ebf89e15748ed9e7";
+      sha256 = "dffeffd240e5ba3f1e3de024ffe7a51ebc72eb3035bb994d02bffd106203dc2b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/pt-BR/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/pt-BR/thunderbird-91.8.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "7d31e4ea4f14cf1b3c2c2c7dc9af2d0c2e97d397a6748cb53f8fc0ded21c3d5b";
+      sha256 = "5a05e3d9174bd26f3c9f62f82dc50e0e40965771d861bbb662bfc4cdf29ef83e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/pt-PT/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/pt-PT/thunderbird-91.8.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "7eedd322ea310df8b308a075c995cb530892be67348b66bac82096cc3d7da035";
+      sha256 = "dfe5055edaea41dba221a2b39d2fef7493a508d12e9cb39e29201a20f95afdbd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/rm/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/rm/thunderbird-91.8.0.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "606b4d58bc6afd7fe67be985d3eac5ad2c734c0037bd5e6380e9b0993579d762";
+      sha256 = "17a587c8b3eb1b548089b70bff06f379fd1d6aaa234a024b2b1c17a1f2a6f60d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/ro/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/ro/thunderbird-91.8.0.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "a189258f7986e540edec1c0cb35f84f58924a079cce2da2332ad80a323c63241";
+      sha256 = "cc43a35c544bc15fb86a12538d70d20b5b22f5666b5467b7f8e87b31a12c5abe";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/ru/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/ru/thunderbird-91.8.0.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "2677c5d98c13ad6cdf3698b644b38ea9c94e94e46eec9ef307036d5bd3d32c9d";
+      sha256 = "82b05f1e853fdcb4cbce513dc87f9fe2784bc4bc5836274be15b1cff831a5dfc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/sk/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/sk/thunderbird-91.8.0.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "f3d630189c20ff6d4246f4f67173f60ff89bc4643267e6fd27cc37a25437b6d6";
+      sha256 = "31ca758cacb9f5ffbdb901f4a2b59b2b63a2b4f0f0b63a35ec45c1d1b642654e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/sl/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/sl/thunderbird-91.8.0.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "d2020220b3c54b9bbc114ff367c10818541bd070f5e0e0d4c56fdbb027bd8d85";
+      sha256 = "8ce25c995945f164756d3b6727c5c2d49397520a0fdc1ec5b448bd04664f1314";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/sq/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/sq/thunderbird-91.8.0.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "91cc13d2a69372b619273feeabb961ae4e27dda6973b64cbb316db7207760c27";
+      sha256 = "db65e73da83a12d1e10713b0ace13250c127e798e91e81893ccb8f38bc635186";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/sr/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/sr/thunderbird-91.8.0.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "7b4c459eb200c9d407acfbcc451290a5f43c6b9f0aa4dac6d4536c267b6afadf";
+      sha256 = "0cf912a9d51cb3ffb6cf7aa3eeaa61a54c253a617abce216c37770dcf5c36344";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/sv-SE/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/sv-SE/thunderbird-91.8.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "be920ab8279dfe412f5e12082a7709d0e24ea7869f5a86d36e65962430a5798e";
+      sha256 = "86578eaf49e4ea08c0ce7573ff13c8f0c5e2a3e0d03028c04b37042ed0739b1a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/th/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/th/thunderbird-91.8.0.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "2a6d558efee3c0d02e4695b77b1f9dbaacf673f499a4ef28e3763358bb61346f";
+      sha256 = "44e9e7ea1807e41e51d531b6a5badd5ea660f19b52943ab012a1868c907d7a0b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/tr/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/tr/thunderbird-91.8.0.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "0cb0bb5991481cdb80d729f1c59276f4e1e12fac48b820fe5e352d63a44ff8ea";
+      sha256 = "d95e9d475c73d31d90d1a1b4056501850386d0b727d4941a6927b92a7e1c1d6f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/uk/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/uk/thunderbird-91.8.0.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "056a958ad687e5b3a0c707379d15ba2b23e17a5c11f113edebcecaf5ab229ada";
+      sha256 = "a563e3da2a8f3f58b085ed06fb4a81ec0e7c36b2cbb777aa584857ee23793dcb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/uz/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/uz/thunderbird-91.8.0.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "31bf50803722d1b8017861da34237c41d725649a5884b33a15a3bc35738adb94";
+      sha256 = "0005df2daa394d44ab2a413fc0f58b23569bfe30dc9a0d0789f86c2072158937";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/vi/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/vi/thunderbird-91.8.0.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "55b5d7c9c3ce8b02d58cb371b58afeff39f08e8b45b1d8875aaa267273ff65b0";
+      sha256 = "7d987211388a37975dc93cb38a72e8e7e9a5a7535af5efecf5293ca5b1da6718";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/zh-CN/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/zh-CN/thunderbird-91.8.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "39983db7492adfd30f7c281f7de16f5538e65dfffd86579cc6abd91936c420b7";
+      sha256 = "c043d0e5e1804090ab8cc8c740b2458c825def839c128391c0d6e71b36af4894";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/zh-TW/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-x86_64/zh-TW/thunderbird-91.8.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "0b0dbff293c33ed286904f798153c64e8ee631430e9293bc384ca1f1368c44f8";
+      sha256 = "3870ceaa2ea5c049877452a6b0c76dd7de9b85985b358076c0fc1c476d04a10c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/af/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/af/thunderbird-91.8.0.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "dd662bf17307215d0ffab8ea10852bf1a742b5dc0564b07b1f3583239169fccb";
+      sha256 = "f004dc6825310f3f7554682816b0848e4461ca86d8d31b1f5f0287064be5af48";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/ar/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/ar/thunderbird-91.8.0.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "b3ea9d805c423c3ae2b7bdf74bcc3bc3cda88467c28c3eb02c5cf9f42bcee801";
+      sha256 = "be9fae6a15d1e3d7b4da462eaaa2cfa0317162c2ecfdbff8704d2f0239278380";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/ast/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/ast/thunderbird-91.8.0.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "5853f37ec0ac021ace8ee23b2255bc680c2ac5a8c81a4023a98235d3fa2b53d4";
+      sha256 = "5f92a809cf6d6a2df8477f54d1cf7a3ef65e27426fe184178bcc8c691a08487a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/be/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/be/thunderbird-91.8.0.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "ef0149c8c758a487cfd748f0a0cd114ee01d3fe63605952e3f5cb02c0fe2e351";
+      sha256 = "c87c60eee9c7cb082e7a06e608835d1e29154a06a77b688c564fceab1546eaa5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/bg/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/bg/thunderbird-91.8.0.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "9ce3b7ee2fae34af3e272d1a0a24a086901e032e589169005a4b75ca1dff6051";
+      sha256 = "f07c5dab6db9aec61478942a0b7add0fea0fb078c9be150efad19e606fcf7ebc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/br/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/br/thunderbird-91.8.0.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "6bb10ee9209b264889fd5338be11a6ed0295c4480eae1b0ca35ca8cd5e173066";
+      sha256 = "d1b5d7c7de3ecb1b0b58989a25bbac3768b105730c6ddb87d1d3072001efa313";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/ca/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/ca/thunderbird-91.8.0.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "8b2cbcce416213c2628656722f2d6f4a8de47b8f601e6da665c99ba2710e3ae5";
+      sha256 = "1e8e7f215c8a80504eaafcf3e867c6f8090953f685fc2bc7606f77efd11bd612";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/cak/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/cak/thunderbird-91.8.0.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "140658bf9d5d0e7d8cdf7a6ecd987fd9d18a789d92a7ccc9fe64200fa531c0b6";
+      sha256 = "43a0355b20dbc71adc4a6c35bba3e91d717ba08547c767303828f931b7cd26e6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/cs/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/cs/thunderbird-91.8.0.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "5c4dffc7b3f672edbaf6906e487fc6636ab25fcc8dc9e3697b2b8d2a90ba24da";
+      sha256 = "987a95eadb174ac453cc619b97ab4b5dbdc474de821f16a2e9f4906483792656";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/cy/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/cy/thunderbird-91.8.0.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "b248ee575f00f1b4de3ac4be15886f270366b1073ad6dd84f4807ecc7fbd9a9f";
+      sha256 = "1ee7b2902fa1fe373dd2ae2529af1c2f87f442c91618f2a470052641a6e963a2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/da/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/da/thunderbird-91.8.0.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "e2c03805474f8c39467217cd26a08133fd3cba61de35d4a2515b1d535bea6d0b";
+      sha256 = "09e15245d38b7d2963f1558c42ed13452737679459b9f78769dc0726cb8e42c8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/de/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/de/thunderbird-91.8.0.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "5de15b1da2b90eac08889791178a2d8b304b97bb4377c2478a0142ad0dc166f0";
+      sha256 = "1fcdd9e52197d1925a42fe193980bd1415d6c280afc8e0148f7ea3903fb79a7e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/dsb/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/dsb/thunderbird-91.8.0.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "20c2c5e9a57440eb046b35ce7f549d846e17afd26cf4883d7ee9de2223bce0d2";
+      sha256 = "362cef9146611f09d969893c4b4c7a8ba7b3d46a1b49183cba0eb8d7d46d2db9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/el/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/el/thunderbird-91.8.0.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "3c5c3462455517f391ef0aa194a39522397d971e8d5ab2113a47cde1bea3b7b6";
+      sha256 = "7360fcb00c20b8dfdb2434d2347e8bffadcadc7fd50773dd96bc9173b3e800a7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/en-CA/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/en-CA/thunderbird-91.8.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "adee07c4cc48bcd3595d32c881bedabf3410df9c3517c3f8f6feeb237552451d";
+      sha256 = "86025c58c29acf2cc98ba6be305629605a3ad10304c87d6f4d55cb9948ddbb46";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/en-GB/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/en-GB/thunderbird-91.8.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "b9eaf0f03ac73e961a160017bfc3f4537592d6d6d63239c3a8249fdb08a5f232";
+      sha256 = "2535a948b23327f66c186387a50eeec44ab3eb42859be5ce9beeb660a47e1b1e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/en-US/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/en-US/thunderbird-91.8.0.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "50783e08cf7bcb904bcca66270b55570a961390d078dae9998fcf8e527f92d3f";
+      sha256 = "889e6f3f8d0b5b372b08ea3b85b9cc890ad62ef60d9bd41b3e4e9387e1361e7b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/es-AR/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/es-AR/thunderbird-91.8.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "e43babb45d6bffed8e2f27b7a21c211306322cec480b928124118b6bf999b6f9";
+      sha256 = "f99012407c06c6b913207ac706fd542da011045b5503ff3290590332da09a7a1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/es-ES/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/es-ES/thunderbird-91.8.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "eead62cde35d787634bb1b6e6e8a96458f05e68d0bb9cd66c3926350d890c5a2";
+      sha256 = "ef8d7946c1c4475dcbe4144012630119e64bdcb3b809b4a00cebaa5d8effb5fb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/et/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/et/thunderbird-91.8.0.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "c3b4d1ebdc325e6ecd6f35012634ea5f4ffd620de7c30589a8999b128b986d59";
+      sha256 = "5e2cefaaa8d44e3a90e7b31ac29ff62f9f3b50dff5b29ca1703bbe907a770d61";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/eu/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/eu/thunderbird-91.8.0.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "b23c783109a22c71bd5b337e2633bf2d17f8ee7b580faa43164b2ce7d70d5c45";
+      sha256 = "7c89425da0c4c46e9291b7f039d7b42aae9442538b3afff0477b490f158ee473";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/fi/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/fi/thunderbird-91.8.0.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "a34afada49c57d6816cfc472681b100366df881fdd343495b959df44dcc8bf5b";
+      sha256 = "a861e4b0763b98c8d6361c2f36cee43cd12c6e7b9fcfa49010da9f861121fbbe";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/fr/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/fr/thunderbird-91.8.0.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "85c5472de95eb357bba1eb697b17b309ec586717ef09a735cc94b3d7ee069ce3";
+      sha256 = "0aab665a007cf87767f78a42c0ac3a767776895e9c0990a475545157878cbd87";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/fy-NL/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/fy-NL/thunderbird-91.8.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "e654bd29cd2a4a99a09d0d7feca2af89cd308d8d9fca6ad1069e5b026e04cee2";
+      sha256 = "1ed753c85bf519406001833b3ca3848262c6208eaec1899167704624a5b52701";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/ga-IE/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/ga-IE/thunderbird-91.8.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "ae2e865abb044bb61f51f46636f84054f87ef0e2d46b0c4d85d990bcb05d45da";
+      sha256 = "e2b75f8d236dd3a217c21461e2c0ae501fb23f0cabcc11a501aae8f0ca28175b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/gd/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/gd/thunderbird-91.8.0.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "54b117bb7ba110de0c3fb5e9c4d2743d54a49b941c273ed7f8c11dae30c1517e";
+      sha256 = "6517d28e08abe6ae9cffb2e0d6cfe7407b137c7e4a2bd1fffd1f2d74592db168";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/gl/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/gl/thunderbird-91.8.0.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "bcec6b86c99fd463cbb16974e43fb232bc93e5ff2b1b08b18332000b274eaa67";
+      sha256 = "4bc16ea1a9939f1c0b363a34b580a4bf6601f646fdcd9c6d686fb07b1db4951b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/he/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/he/thunderbird-91.8.0.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "9ab72a7b9a87a75b113421ceef891b3e546a056e48c039f7af20e85a1b17b598";
+      sha256 = "1b60dde842257b9d9526618f5f7a13cacf6d9a8d7f9320073e9ca95a80633a32";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/hr/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/hr/thunderbird-91.8.0.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "b8ec76e30180214f2c4d2743686e8de374207fbad8677d5801eb941174217834";
+      sha256 = "a11ba48e82c8a78f21c0d38f947ea699f926842c5b8665d5e6b132754d063bbc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/hsb/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/hsb/thunderbird-91.8.0.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "5d35c9c51d1d94c55cf72901866ce0896770d8939fbbefe234f312f1b18c6b17";
+      sha256 = "dfdd15a264d58454a721d7036db0659af9c920b71f1835a488338acab1540056";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/hu/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/hu/thunderbird-91.8.0.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "dc34328fd070973dd230158679bc34ba79075eaf8c62b4c3d67fc9daa8fd04a2";
+      sha256 = "126d2155fc30f15b6efa061d340d91926e0f72ff133411dad9fdfefaffa25210";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/hy-AM/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/hy-AM/thunderbird-91.8.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "6e94dca126ef9f60dc8f6086b4396548fbf3db4cd85feba332ee9cdc5c5546e1";
+      sha256 = "cc4d0984fe5caa81cf463a166a08af8d35bd7d68bef8a0b40b2edab4ffab3eb3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/id/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/id/thunderbird-91.8.0.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "7ef09c4636f141fc19ca67e0787d1a04d4b6856d6bfc57732f1eacc31fe6b437";
+      sha256 = "4dc4f402a2c3fb1d9f0f3fc10f937274f87bbb99f7442fbb782e6c91b6bef1a5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/is/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/is/thunderbird-91.8.0.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "8644c28c791152e6de4bf932417328afbcb3ff1832e85ded577d88a045071ceb";
+      sha256 = "9a52dec2873649da8e11105456e8d6cbb631b754f9988404c0985f03d10001d2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/it/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/it/thunderbird-91.8.0.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "a17c80fdb39ff828ab0b7d8fb2274a2f9c1dafb4d8657c510e894697f72e6941";
+      sha256 = "7764c87c166229b9b25410cbd816a49afcbf6ab37dae5ee071fc2940a068fc3d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/ja/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/ja/thunderbird-91.8.0.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "50f48c0bb455132ee1a8e7f2a98a7e01688c0517c134dbf706538432615f44ec";
+      sha256 = "9e858818a36ede51a15e2cf9e3b2b2d30dd83b6fe2cd5f66188776e3351e12f5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/ka/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/ka/thunderbird-91.8.0.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "16b4cdc1dda75f62f664f5d0780e4dd9e65c91414fa3c6e546ed9ae39a5f251b";
+      sha256 = "2e46a4036b32b90224e555691441c6a59e8e07fc6f0d6cae3aa591af3a2b04c2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/kab/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/kab/thunderbird-91.8.0.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "ef2db45999395216684c0cdee16fbaa9ad8a665088d529bcb80df72d442b433b";
+      sha256 = "0ae98410d16a73a4c42149b7b5c6325a58dacdd02ac8df0f263c51b8aad26e57";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/kk/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/kk/thunderbird-91.8.0.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "fb1e05654c70c6b4361892799bf5e2b2035183407db9cae5307b4191548c3bd9";
+      sha256 = "b74a98dda02f144ecc4a1fb76f014689d3c5a0d95805ca2adaccc7739f397296";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/ko/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/ko/thunderbird-91.8.0.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "ca29bff1b2276510bba6bdaf280ea8a198fc36c77b325e60a4c1f5207a16a7e2";
+      sha256 = "074f6f4ac2ebd983490f6cc42a4ac8603da13f056145aa5dc577b2fe3fa4a4da";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/lt/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/lt/thunderbird-91.8.0.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "7551bc85a46fa13c4fd7d72b31d34bda108bf5c7831825b7906c153542918f86";
+      sha256 = "afb32ea82d83808ab40f33db0fa95462479bae8f237defa0c702a3d95fcc91d5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/lv/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/lv/thunderbird-91.8.0.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "a6fd175e80f8f14431500cd272f7a277ab7b210b6d81c4b80c333e34e13260f7";
+      sha256 = "91661ab053978137acb9bb6e820dfba0ee5007bc12b440504efaa6aa6c62f444";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/ms/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/ms/thunderbird-91.8.0.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "5fcb5b9a0a04957192a40fda0b097a1f781a98d9b18e6165810bbfad96cf188a";
+      sha256 = "ba06582eb17d830d0805040810098db7fef4a001f8b5f8228491c0449ccb29f5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/nb-NO/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/nb-NO/thunderbird-91.8.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "50d5e767ea3c826d3c924d5a50bce2db2eff9b5ada8c2fd10b4bd8c85061e9da";
+      sha256 = "c2463574caf1bbf6dee227ec57fae53178a713dcfd05e866b6458d9dc0f8febd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/nl/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/nl/thunderbird-91.8.0.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "c44d23adedd33715a38aa6a704de273de1034dbf0964698224463a2eb3a22fde";
+      sha256 = "2e84666be34fb7883a4ded36ab0a71ba987c554abb08c959330689ef15d3ac04";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/nn-NO/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/nn-NO/thunderbird-91.8.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "c2081d7dc420cf97cbfc38901af9e3654bdd00610ad27cfc0a006afb7de003c5";
+      sha256 = "2e08edd2b0d198b1d6614af26fa86c3c6b646f6b53324aa6d7cda4629ab2dbf3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/pa-IN/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/pa-IN/thunderbird-91.8.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "426e6b686e8cfa660dadda666b7bfdc0a70ccb5db4134e4960cf7c408e88c9e4";
+      sha256 = "9b5562cfa1a3c36b8f4f8a703ed232e5045812346cbb604f310b8c1861a99213";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/pl/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/pl/thunderbird-91.8.0.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "c667bddefd1b82dd4945ca3a4a392f60b27ab7ab56e1b9fece0cac0dc4eb4971";
+      sha256 = "5ce1e65dc07f4f1d720abd18e31252aa74bdbb22f29305dfd23825fc9aec9062";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/pt-BR/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/pt-BR/thunderbird-91.8.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "ea24bf62001fa225ed08a05a34f8e5b0579de6c6b79fa08bd28760f41607ffd2";
+      sha256 = "440af4305a7a2d8382e6d791b1cde11673b4a0b35973126b6f5b44f7ab236e84";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/pt-PT/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/pt-PT/thunderbird-91.8.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "8676b8fcd019099ede4973fa1e949e63ea06bd5dc599cc6dcc836dc49fdf4470";
+      sha256 = "47f456163ee3036b9a20542b3a5fb0e6997fa9c3ea431c38964c887669191c42";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/rm/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/rm/thunderbird-91.8.0.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "4aa9681f172a62d5be35c5c4e3ba500253541ef4f8e38eaf37fcb41dac7989c2";
+      sha256 = "7c26dd177759f7c40a3106b9189cf245ef43be2e732d187ed1cdce44ba533073";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/ro/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/ro/thunderbird-91.8.0.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "12c57824de26d6bfde6e9de1c3d5b5b1481213ce939fc4860c2fc86aaf8d64a1";
+      sha256 = "0297de849e5f1a5400023b40682980ec886fbe54087f8db6b3a316d5cdb2d5d7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/ru/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/ru/thunderbird-91.8.0.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "3afa7da7eacf0a3479b92a72c3d1f503d62961a9683c9cf5a538da90e5a3bae8";
+      sha256 = "c766d619d8bacc87fd729d3aa6b3a16741070a91181416243b389d5b25dd4829";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/sk/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/sk/thunderbird-91.8.0.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "1f5b0a28de82f795eb54daf44b8b807fdd30a7bff9dc5d1565adb001d38bd354";
+      sha256 = "9ba8276dab20f0e7c9820f2aae046ab4bbfd8a032b07282f1fd09bab167793da";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/sl/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/sl/thunderbird-91.8.0.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "340026146fd09e3ed7a49a7123898b3d005a147d4988bc2df2c86b173fa088fb";
+      sha256 = "a15a3cf75610b0acb93fe067a9fc4f2c7298bfa7654175275a96c0ee8e7fdd89";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/sq/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/sq/thunderbird-91.8.0.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "64a9d0d4652d2d709aed3aa1e2a09bcf17ce936c0c4c950a27f8784e0a89d995";
+      sha256 = "f1578326fdca0beeb09ed4bbe80178a5878a1bcac2f480a7e4155ee882f29197";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/sr/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/sr/thunderbird-91.8.0.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "eb59bc42ef366a5ecf98f20f53113e69cc2f6591008bcccf592bc76dab636945";
+      sha256 = "8fcd6be0a44a115630544bd5fb652a4dd3c4659a8233ab5aaeea7326c89d2c90";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/sv-SE/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/sv-SE/thunderbird-91.8.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "0f833b8b7a83b06b2f3cab5bffe94bfe28cbfc043543f73102f6789fdce95e61";
+      sha256 = "f4dac959ee9f29349228f055ae7409cadf2be0de9461bcaac940da4ea9f33c6c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/th/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/th/thunderbird-91.8.0.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "149d88dbb883e9eb04584d080d5e746a0165fa9cecc100e1af875414bd2c1154";
+      sha256 = "a3306d06a99bd4ae38b3289e9feaef2cb3e21fb46936ca1e369a21d114d033ec";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/tr/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/tr/thunderbird-91.8.0.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "7b92aa7c7ace49f7e7d0489b5c69a2c1282fc267b3650aec765e194413b6e9e4";
+      sha256 = "03cda6244d38a28e3420028288e3768fa668fb5358d047c6ea463a644e655c53";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/uk/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/uk/thunderbird-91.8.0.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "217e921fb8d0fb6773ec7b4dabcb9a29293b15d2024353a4b542c8660f93e924";
+      sha256 = "29800c3dd81f9851c19ef5c54c6a7bc18fbda218ef76cf5edd22a142b2d2d791";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/uz/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/uz/thunderbird-91.8.0.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "9428919a2d99f2ae953e50d148ab27200a3d9d8d02e5a8f5615a804468867922";
+      sha256 = "bb6020331a871f28003df188628cbc157409f3b97160efd02b71127faeff67d9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/vi/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/vi/thunderbird-91.8.0.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "2ee2b69190e6a5640b378d8a4b1dbe78aff7cae1db131aa162e23ee6626ee215";
+      sha256 = "8bc4c487dcda84a4a103ef287388c418b95c4ed78c80e2e5936fb654a6df3c43";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/zh-CN/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/zh-CN/thunderbird-91.8.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "e0537b6f509428a3721bac1ab4ff4567568d9854ece675a68a7bc2c058176e7f";
+      sha256 = "a41ca9b5e47f7628721ebb397f04e5cab625c5eb297b793a08f8103d9578c45f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/zh-TW/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.8.0/linux-i686/zh-TW/thunderbird-91.8.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "ec7aec372154e7e7281fd1b2d84068140c50577d8e1f3ad30006092fefc61766";
+      sha256 = "22489a052fc34ab1d364ee305c26b6d495b6ef4381e038427869a85d78ffe274";
     }
     ];
 }
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
index e2d4a76df7d0b..91db452356f2c 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
@@ -10,12 +10,12 @@ in
 rec {
   thunderbird = (common rec {
     pname = "thunderbird";
-    version = "91.7.0";
+    version = "91.8.0";
     application = "comm/mail";
     binaryName = pname;
     src = fetchurl {
       url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
-      sha512 = "2afaee16f155edcb0bdb46ebe282a733cf041ec6f562aebd06f8b675e46917f6f500fcc532fc54d74f3f4b0b489a88934a2c6c304f849873de4bc2690b9056a0";
+      sha512 = "147c7ad68b0a32cc0fd4405935836af1fa77bbce6a1e367b51ef9871e7fc2a8fe908a1d200be34326f4f339d272e62f619b75680201fe82d301ddd02e23824d5";
     };
     extraPatches = [
       # The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.
diff --git a/pkgs/applications/networking/n8n/node-packages.nix b/pkgs/applications/networking/n8n/node-packages.nix
index ab66b28fe17ac..5aaa2f10fc3f0 100644
--- a/pkgs/applications/networking/n8n/node-packages.nix
+++ b/pkgs/applications/networking/n8n/node-packages.nix
@@ -112,13 +112,13 @@ let
         sha512 = "ank38FdCLfJ+EoeMzCz3hkYJuZAd63ARvDKkxZYRDb+beBYf+/+gx8jNTqkq/hfyUl4dJQ/a7tECU0Y0F98CHg==";
       };
     };
-    "@babel/runtime-7.17.8" = {
+    "@babel/runtime-7.17.9" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.17.8";
+      version = "7.17.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz";
-        sha512 = "dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz";
+        sha512 = "lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==";
       };
     };
     "@colors/colors-1.5.0" = {
@@ -148,6 +148,24 @@ let
         sha512 = "3b94XDdRLqL7OlE7OjWg/4pgG825Juw8PLVEDm6h5pio0gMU89ICxfatGxHsBxMGfqad+wnvdmUweZWlELDFpQ==";
       };
     };
+    "@fortawesome/fontawesome-common-types-6.1.1" = {
+      name = "_at_fortawesome_slash_fontawesome-common-types";
+      packageName = "@fortawesome/fontawesome-common-types";
+      version = "6.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.1.1.tgz";
+        sha512 = "wVn5WJPirFTnzN6tR95abCx+ocH+3IFLXAgyavnf9hUmN0CfWoDjPT/BAWsUVwSlYYVBeCLJxaqi7ZGe4uSjBA==";
+      };
+    };
+    "@fortawesome/free-regular-svg-icons-6.1.1" = {
+      name = "_at_fortawesome_slash_free-regular-svg-icons";
+      packageName = "@fortawesome/free-regular-svg-icons";
+      version = "6.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.1.1.tgz";
+        sha512 = "xXiW7hcpgwmWtndKPOzG+43fPH7ZjxOaoeyooptSztGmJxCAflHZxXNK0GcT0uEsR4jTGQAfGklDZE5NHoBhKg==";
+      };
+    };
     "@icetee/ftp-0.3.15" = {
       name = "_at_icetee_slash_ftp";
       packageName = "@icetee/ftp";
@@ -184,6 +202,15 @@ let
         sha512 = "GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==";
       };
     };
+    "@mapbox/node-pre-gyp-1.0.9" = {
+      name = "_at_mapbox_slash_node-pre-gyp";
+      packageName = "@mapbox/node-pre-gyp";
+      version = "1.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz";
+        sha512 = "aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==";
+      };
+    };
     "@nodelib/fs.scandir-2.1.5" = {
       name = "_at_nodelib_slash_fs.scandir";
       packageName = "@nodelib/fs.scandir";
@@ -328,6 +355,15 @@ let
         sha512 = "/5O7Fq6Vnv8L6ucmPjaWbVG1XkP4FO+w5glqfkIsq3Xw4oyNAdJddbnYodNDAfjVUvo/rrSCTom4kAND7T1o5Q==";
       };
     };
+    "@techteamer/ocsp-1.0.0" = {
+      name = "_at_techteamer_slash_ocsp";
+      packageName = "@techteamer/ocsp";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@techteamer/ocsp/-/ocsp-1.0.0.tgz";
+        sha512 = "lNAOoFHaZN+4huo30ukeqVrUmfC+avoEBYQ11QAnAw1PFhnI5oBCg8O/TNiCoEWix7gNGBIEjrQwtPREqKMPog==";
+      };
+    };
     "@tokenizer/token-0.1.1" = {
       name = "_at_tokenizer_slash_token";
       packageName = "@tokenizer/token";
@@ -445,13 +481,13 @@ let
         sha512 = "zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==";
       };
     };
-    "@types/lodash-4.14.180" = {
+    "@types/lodash-4.14.182" = {
       name = "_at_types_slash_lodash";
       packageName = "@types/lodash";
-      version = "4.14.180";
+      version = "4.14.182";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.180.tgz";
-        sha512 = "XOKXa1KIxtNXgASAnwj7cnttJxS4fksBRywK/9LzRV5YxrF80BXZIGeQSuoESQ/VkUj30Ae0+YcuHc15wJCB2g==";
+        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz";
+        sha512 = "/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==";
       };
     };
     "@types/lossless-json-1.0.1" = {
@@ -472,22 +508,22 @@ let
         sha512 = "YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==";
       };
     };
-    "@types/node-12.20.47" = {
+    "@types/node-12.20.49" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "12.20.47";
+      version = "12.20.49";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-12.20.47.tgz";
-        sha512 = "BzcaRsnFuznzOItW1WpQrDHM7plAa7GIDMZ6b5pnMbkqEtM/6WCOhvZar39oeMQP79gwvFUWjjptE7/KGcNqFg==";
+        url = "https://registry.npmjs.org/@types/node/-/node-12.20.49.tgz";
+        sha512 = "5e6QNb9bkeh4Hni4ktLqUZuUqnGTX/kou2aZkXyxtuYaHXgBm+In1SHR9V+7kDzWzjB08KC2uqt2doDi7cuAAA==";
       };
     };
-    "@types/node-17.0.23" = {
+    "@types/node-17.0.26" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "17.0.23";
+      version = "17.0.26";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz";
-        sha512 = "UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==";
+        url = "https://registry.npmjs.org/@types/node/-/node-17.0.26.tgz";
+        sha512 = "z/FG/6DUO7pnze3AE3TBGIjGGKkvCcGcWINe1C7cADY8hKLJPDYpzsNE37uExQ4md5RFtTCvg+M8Mu1Enyeg2A==";
       };
     };
     "@types/node-fetch-2.6.1" = {
@@ -553,13 +589,13 @@ let
         sha512 = "nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==";
       };
     };
-    "@types/snowflake-sdk-1.6.2" = {
+    "@types/snowflake-sdk-1.6.3" = {
       name = "_at_types_slash_snowflake-sdk";
       packageName = "@types/snowflake-sdk";
-      version = "1.6.2";
+      version = "1.6.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/snowflake-sdk/-/snowflake-sdk-1.6.2.tgz";
-        sha512 = "68albQhKcrtz6G7IhXab8JE/96EN5COPo63+xUxvjwbYXe1BD8WTLVIXIxLdvC5oLmrK8Tf5W0mz+swaH/AfBQ==";
+        url = "https://registry.npmjs.org/@types/snowflake-sdk/-/snowflake-sdk-1.6.3.tgz";
+        sha512 = "YGlCPN88p6WYQCjBDIXwe2aWPkWNzKPW5/XJOGGnaXIacqULfKO6puq2a4OU02WCzfWr+XvOEj1MKWnxBhm+jw==";
       };
     };
     "@types/tough-cookie-2.3.8" = {
@@ -661,13 +697,13 @@ let
         sha1 = "6a3e6bf0a63900ba15652808cb15c6813d1a5f25";
       };
     };
-    "adler-32-1.3.0" = {
+    "adler-32-1.3.1" = {
       name = "adler-32";
       packageName = "adler-32";
-      version = "1.3.0";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/adler-32/-/adler-32-1.3.0.tgz";
-        sha512 = "f5nltvjl+PRUh6YNfUstRaXwJxtfnKEWhAWWlmKvh+Y3J2+98a0KKVYDEhz6NdKGqswLhjNGznxfSsZGOvOd9g==";
+        url = "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz";
+        sha512 = "ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==";
       };
     };
     "agent-base-6.0.2" = {
@@ -769,22 +805,22 @@ let
         sha512 = "qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==";
       };
     };
-    "aproba-1.2.0" = {
+    "aproba-2.0.0" = {
       name = "aproba";
       packageName = "aproba";
-      version = "1.2.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz";
-        sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==";
+        url = "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz";
+        sha512 = "lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==";
       };
     };
-    "are-we-there-yet-1.1.7" = {
+    "are-we-there-yet-2.0.0" = {
       name = "are-we-there-yet";
       packageName = "are-we-there-yet";
-      version = "1.1.7";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz";
-        sha512 = "nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==";
+        url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz";
+        sha512 = "Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==";
       };
     };
     "argparse-1.0.10" = {
@@ -841,15 +877,6 @@ let
         sha512 = "ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==";
       };
     };
-    "asn1.js-4.10.1" = {
-      name = "asn1.js";
-      packageName = "asn1.js";
-      version = "4.10.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz";
-        sha512 = "p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==";
-      };
-    };
     "asn1.js-5.4.1" = {
       name = "asn1.js";
       packageName = "asn1.js";
@@ -859,15 +886,6 @@ let
         sha512 = "+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==";
       };
     };
-    "asn1.js-rfc2560-4.0.6" = {
-      name = "asn1.js-rfc2560";
-      packageName = "asn1.js-rfc2560";
-      version = "4.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/asn1.js-rfc2560/-/asn1.js-rfc2560-4.0.6.tgz";
-        sha512 = "ysf48ni+f/efNPilq4+ApbifUPcSW/xbDeQAh055I+grr2gXgNRQqHew7kkO70WSMQ2tEOURVwsK+dJqUNjIIg==";
-      };
-    };
     "asn1.js-rfc2560-5.0.1" = {
       name = "asn1.js-rfc2560";
       packageName = "asn1.js-rfc2560";
@@ -877,15 +895,6 @@ let
         sha512 = "1PrVg6kuBziDN3PGFmRk3QrjpKvP9h/Hv5yMrFZvC1kpzP6dQRzf5BpKstANqHBkaOUmTpakJWhicTATOA/SbA==";
       };
     };
-    "asn1.js-rfc5280-2.0.1" = {
-      name = "asn1.js-rfc5280";
-      packageName = "asn1.js-rfc5280";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/asn1.js-rfc5280/-/asn1.js-rfc5280-2.0.1.tgz";
-        sha512 = "1e2ypnvTbYD/GdxWK77tdLBahvo1fZUHlQJqAVUuZWdYj0rdjGcf2CWYUtbsyRYpYUMwMWLZFUtLxog8ZXTrcg==";
-      };
-    };
     "asn1.js-rfc5280-3.0.0" = {
       name = "asn1.js-rfc5280";
       packageName = "asn1.js-rfc5280";
@@ -913,22 +922,13 @@ let
         sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
       };
     };
-    "async-1.5.2" = {
+    "async-2.6.4" = {
       name = "async";
       packageName = "async";
-      version = "1.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-1.5.2.tgz";
-        sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a";
-      };
-    };
-    "async-2.6.3" = {
-      name = "async";
-      packageName = "async";
-      version = "2.6.3";
+      version = "2.6.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-2.6.3.tgz";
-        sha512 = "zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==";
+        url = "https://registry.npmjs.org/async/-/async-2.6.4.tgz";
+        sha512 = "mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==";
       };
     };
     "async-3.2.3" = {
@@ -958,22 +958,22 @@ let
         sha512 = "h7diyELoq692AA4oqO50ULoYKIomUdzuQ+NW+eFPwIX0xzVbXEu9cIcgzZ3TYNVbpkGtcNKh51aRfAQNef7HVA==";
       };
     };
-    "avsc-5.7.3" = {
+    "avsc-5.7.4" = {
       name = "avsc";
       packageName = "avsc";
-      version = "5.7.3";
+      version = "5.7.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/avsc/-/avsc-5.7.3.tgz";
-        sha512 = "uUbetCWczQHbsKyX1C99XpQHBM8SWfovvaZhPIj23/1uV7SQf0WeRZbiLpw0JZm+LHTChfNgrLfDJOVoU2kU+A==";
+        url = "https://registry.npmjs.org/avsc/-/avsc-5.7.4.tgz";
+        sha512 = "z4oo33lmnvvNRqfUe3YjDGGpqu/L2+wXBIhMtwq6oqZ+exOUAkQYM6zd2VWKF7AIlajOF8ZZuPFfryTG9iLC/w==";
       };
     };
-    "aws-sdk-2.1101.0" = {
+    "aws-sdk-2.1120.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.1101.0";
+      version = "2.1120.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1101.0.tgz";
-        sha512 = "7lyVb7GXGl8yyu954Qxf6vU6MrcgFlmKyTLBVXJyo3Phn1OB+qOExA55WtSC6gQiQ7e5TeWOn1RUHLg30ywTBA==";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1120.0.tgz";
+        sha512 = "3cKXUFxC3CDBbJ/JlXEKmJZKFZhqGii7idGaLxvV5/OzqEDUstYkHGX3TCJdQRHrRwpFvRVOekXSwLxBltqXuQ==";
       };
     };
     "aws-sign2-0.7.0" = {
@@ -1174,6 +1174,15 @@ let
         sha512 = "SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==";
       };
     };
+    "body-parser-1.20.0" = {
+      name = "body-parser";
+      packageName = "body-parser";
+      version = "1.20.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz";
+        sha512 = "DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==";
+      };
+    };
     "body-parser-xml-2.0.3" = {
       name = "body-parser-xml";
       packageName = "body-parser-xml";
@@ -1372,13 +1381,13 @@ let
         sha1 = "1b681c21ff84033c826543090689420d187151dc";
       };
     };
-    "cfb-1.2.1" = {
+    "cfb-1.2.2" = {
       name = "cfb";
       packageName = "cfb";
-      version = "1.2.1";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cfb/-/cfb-1.2.1.tgz";
-        sha512 = "wT2ScPAFGSVy7CY+aauMezZBnNrfnaLSrxHUHdea+Td/86vrk6ZquggV+ssBR88zNs0OnBkL2+lf9q0K+zVGzQ==";
+        url = "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz";
+        sha512 = "KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==";
       };
     };
     "chalk-1.1.3" = {
@@ -1435,13 +1444,13 @@ let
         sha512 = "hjx1XE1M/D5pAtMgvWwE21QClmAEeGHOIDfycgmndisdNgI6PE1cGRQkMGBcsbUbmEQyWu5PJLUcAOjtQS8DWw==";
       };
     };
-    "cheerio-select-1.5.0" = {
+    "cheerio-select-1.6.0" = {
       name = "cheerio-select";
       packageName = "cheerio-select";
-      version = "1.5.0";
+      version = "1.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.5.0.tgz";
-        sha512 = "qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg==";
+        url = "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz";
+        sha512 = "eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==";
       };
     };
     "chokidar-3.5.2" = {
@@ -1453,13 +1462,13 @@ let
         sha512 = "ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==";
       };
     };
-    "chownr-1.1.4" = {
+    "chownr-2.0.0" = {
       name = "chownr";
       packageName = "chownr";
-      version = "1.1.4";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz";
-        sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==";
+        url = "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz";
+        sha512 = "bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==";
       };
     };
     "clamp-1.0.1" = {
@@ -1552,15 +1561,6 @@ let
         sha512 = "2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==";
       };
     };
-    "code-point-at-1.1.0" = {
-      name = "code-point-at";
-      packageName = "code-point-at";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz";
-        sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
-      };
-    };
     "codepage-1.15.0" = {
       name = "codepage";
       packageName = "codepage";
@@ -1615,13 +1615,22 @@ let
         sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
       };
     };
-    "color-string-1.9.0" = {
+    "color-string-1.9.1" = {
       name = "color-string";
       packageName = "color-string";
-      version = "1.9.0";
+      version = "1.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz";
-        sha512 = "9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==";
+        url = "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz";
+        sha512 = "shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==";
+      };
+    };
+    "color-support-1.1.3" = {
+      name = "color-support";
+      packageName = "color-support";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz";
+        sha512 = "qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==";
       };
     };
     "colornames-1.1.1" = {
@@ -1669,6 +1678,15 @@ let
         sha512 = "P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==";
       };
     };
+    "commander-9.2.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "9.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz";
+        sha512 = "e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==";
+      };
+    };
     "commist-1.1.0" = {
       name = "commist";
       packageName = "commist";
@@ -1813,13 +1831,13 @@ let
         sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
       };
     };
-    "core-js-3.21.1" = {
+    "core-js-3.22.2" = {
       name = "core-js";
       packageName = "core-js";
-      version = "3.21.1";
+      version = "3.22.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz";
-        sha512 = "FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==";
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.22.2.tgz";
+        sha512 = "Z5I2vzDnEIqO2YhELVMFcL1An2CIsFe9Q7byZhs8c/QxummxZlAHw33TUHbIte987LkisOgL0LwQ1P9D6VISnA==";
       };
     };
     "core-util-is-1.0.2" = {
@@ -1831,13 +1849,13 @@ let
         sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
       };
     };
-    "crc-32-1.2.1" = {
+    "crc-32-1.2.2" = {
       name = "crc-32";
       packageName = "crc-32";
-      version = "1.2.1";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/crc-32/-/crc-32-1.2.1.tgz";
-        sha512 = "Dn/xm/1vFFgs3nfrpEVScHoIslO9NZRITWGz/1E/St6u4xw99vfZzVkW0OSnzx2h9egej9xwMCEut6sqwokM/w==";
+        url = "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz";
+        sha512 = "ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==";
       };
     };
     "cron-1.7.2" = {
@@ -1894,22 +1912,22 @@ let
         sha512 = "uTqEnCvWRk042asU6JtapDTcJeeailFy4ydOQS28bj1hcLnYRiqi8SsD2jS412AY1I/4qdOwWZun774iqywf9w==";
       };
     };
-    "css-select-4.2.1" = {
+    "css-select-4.3.0" = {
       name = "css-select";
       packageName = "css-select";
-      version = "4.2.1";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz";
-        sha512 = "/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==";
+        url = "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz";
+        sha512 = "wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==";
       };
     };
-    "css-what-5.1.0" = {
+    "css-what-6.1.0" = {
       name = "css-what";
       packageName = "css-what";
-      version = "5.1.0";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz";
-        sha512 = "arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==";
+        url = "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz";
+        sha512 = "HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==";
       };
     };
     "cssfilter-0.0.10" = {
@@ -1984,15 +2002,6 @@ let
         sha1 = "aa24ffb9ac3df9a2351837cfb2d279360cd78492";
       };
     };
-    "deep-extend-0.6.0" = {
-      name = "deep-extend";
-      packageName = "deep-extend";
-      version = "0.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz";
-        sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==";
-      };
-    };
     "deepmerge-4.2.2" = {
       name = "deepmerge";
       packageName = "deepmerge";
@@ -2002,13 +2011,13 @@ let
         sha512 = "FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==";
       };
     };
-    "define-properties-1.1.3" = {
+    "define-properties-1.1.4" = {
       name = "define-properties";
       packageName = "define-properties";
-      version = "1.1.3";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz";
-        sha512 = "3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==";
+        url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz";
+        sha512 = "uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==";
       };
     };
     "delayed-stream-1.0.0" = {
@@ -2074,13 +2083,22 @@ let
         sha1 = "978857442c44749e4206613e37946205826abd80";
       };
     };
-    "detect-libc-1.0.3" = {
+    "destroy-1.2.0" = {
+      name = "destroy";
+      packageName = "destroy";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz";
+        sha512 = "2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==";
+      };
+    };
+    "detect-libc-2.0.1" = {
       name = "detect-libc";
       packageName = "detect-libc";
-      version = "1.0.3";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz";
-        sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
+        url = "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz";
+        sha512 = "463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==";
       };
     };
     "diagnostics-1.1.1" = {
@@ -2119,22 +2137,22 @@ let
         sha1 = "e38331f0844bba49b9a9cb71c771585aab1bc65a";
       };
     };
-    "dom-serializer-1.3.2" = {
+    "dom-serializer-1.4.1" = {
       name = "dom-serializer";
       packageName = "dom-serializer";
-      version = "1.3.2";
+      version = "1.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz";
-        sha512 = "5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==";
+        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz";
+        sha512 = "VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==";
       };
     };
-    "domelementtype-2.2.0" = {
+    "domelementtype-2.3.0" = {
       name = "domelementtype";
       packageName = "domelementtype";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz";
-        sha512 = "DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==";
+        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz";
+        sha512 = "OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==";
       };
     };
     "domhandler-4.3.1" = {
@@ -2299,13 +2317,13 @@ let
         sha512 = "2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==";
       };
     };
-    "es-abstract-1.19.1" = {
+    "es-abstract-1.19.5" = {
       name = "es-abstract";
       packageName = "es-abstract";
-      version = "1.19.1";
+      version = "1.19.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz";
-        sha512 = "2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==";
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz";
+        sha512 = "Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==";
       };
     };
     "es-to-primitive-1.2.1" = {
@@ -2515,13 +2533,13 @@ let
         sha512 = "YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==";
       };
     };
-    "fecha-4.2.1" = {
+    "fecha-4.2.3" = {
       name = "fecha";
       packageName = "fecha";
-      version = "4.2.1";
+      version = "4.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz";
-        sha512 = "MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==";
+        url = "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz";
+        sha512 = "OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==";
       };
     };
     "fflate-0.7.3" = {
@@ -2704,13 +2722,13 @@ let
         sha512 = "yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==";
       };
     };
-    "fs-minipass-1.2.7" = {
+    "fs-minipass-2.1.0" = {
       name = "fs-minipass";
       packageName = "fs-minipass";
-      version = "1.2.7";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz";
-        sha512 = "GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==";
+        url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz";
+        sha512 = "V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==";
       };
     };
     "fs.realpath-1.0.0" = {
@@ -2731,13 +2749,13 @@ let
         sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
       };
     };
-    "gauge-2.7.4" = {
+    "gauge-3.0.2" = {
       name = "gauge";
       packageName = "gauge";
-      version = "2.7.4";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz";
-        sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
+        url = "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz";
+        sha512 = "+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==";
       };
     };
     "generate-function-2.3.1" = {
@@ -2884,13 +2902,13 @@ let
         sha512 = "UWXQ7BpSCW8erDespU2I4cri22xsKgwOCyhsJal0OJhi2tFpwJpsYNJt4vCiFPL1p2HzCGiS713LKpNR25n9Kg==";
       };
     };
-    "graceful-fs-4.2.9" = {
+    "graceful-fs-4.2.10" = {
       name = "graceful-fs";
       packageName = "graceful-fs";
-      version = "4.2.9";
+      version = "4.2.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz";
-        sha512 = "NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==";
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz";
+        sha512 = "9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==";
       };
     };
     "handlebars-4.7.7" = {
@@ -2938,13 +2956,13 @@ let
         sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
       };
     };
-    "has-bigints-1.0.1" = {
+    "has-bigints-1.0.2" = {
       name = "has-bigints";
       packageName = "has-bigints";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz";
-        sha512 = "LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==";
+        url = "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz";
+        sha512 = "tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==";
       };
     };
     "has-flag-4.0.0" = {
@@ -2956,6 +2974,15 @@ let
         sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
       };
     };
+    "has-property-descriptors-1.0.0" = {
+      name = "has-property-descriptors";
+      packageName = "has-property-descriptors";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz";
+        sha512 = "62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==";
+      };
+    };
     "has-symbols-1.0.3" = {
       name = "has-symbols";
       packageName = "has-symbols";
@@ -3064,6 +3091,15 @@ let
         sha512 = "Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==";
       };
     };
+    "http-errors-2.0.0" = {
+      name = "http-errors";
+      packageName = "http-errors";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz";
+        sha512 = "FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==";
+      };
+    };
     "http-proxy-agent-4.0.1" = {
       name = "http-proxy-agent";
       packageName = "http-proxy-agent";
@@ -3082,22 +3118,13 @@ let
         sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
       };
     };
-    "http-signature-1.3.6" = {
-      name = "http-signature";
-      packageName = "http-signature";
-      version = "1.3.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz";
-        sha512 = "3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==";
-      };
-    };
-    "https-proxy-agent-5.0.0" = {
+    "https-proxy-agent-5.0.1" = {
       name = "https-proxy-agent";
       packageName = "https-proxy-agent";
-      version = "5.0.0";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz";
-        sha512 = "EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==";
+        url = "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz";
+        sha512 = "dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==";
       };
     };
     "iconv-lite-0.4.24" = {
@@ -3172,15 +3199,6 @@ let
         sha512 = "CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==";
       };
     };
-    "ignore-walk-3.0.4" = {
-      name = "ignore-walk";
-      packageName = "ignore-walk";
-      version = "3.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz";
-        sha512 = "PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==";
-      };
-    };
     "imap-0.8.19" = {
       name = "imap";
       packageName = "imap";
@@ -3226,15 +3244,6 @@ let
         sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
       };
     };
-    "ini-1.3.8" = {
-      name = "ini";
-      packageName = "ini";
-      version = "1.3.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz";
-        sha512 = "JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==";
-      };
-    };
     "inquirer-7.3.3" = {
       name = "inquirer";
       packageName = "inquirer";
@@ -3370,15 +3379,6 @@ let
         sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
       };
     };
-    "is-fullwidth-code-point-1.0.0" = {
-      name = "is-fullwidth-code-point";
-      packageName = "is-fullwidth-code-point";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
-        sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
-      };
-    };
     "is-fullwidth-code-point-3.0.0" = {
       name = "is-fullwidth-code-point";
       packageName = "is-fullwidth-code-point";
@@ -3442,13 +3442,13 @@ let
         sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
       };
     };
-    "is-number-object-1.0.6" = {
+    "is-number-object-1.0.7" = {
       name = "is-number-object";
       packageName = "is-number-object";
-      version = "1.0.6";
+      version = "1.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz";
-        sha512 = "bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==";
+        url = "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz";
+        sha512 = "k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==";
       };
     };
     "is-promise-1.0.1" = {
@@ -3496,13 +3496,13 @@ let
         sha512 = "XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==";
       };
     };
-    "is-shared-array-buffer-1.0.1" = {
+    "is-shared-array-buffer-1.0.2" = {
       name = "is-shared-array-buffer";
       packageName = "is-shared-array-buffer";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz";
-        sha512 = "IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==";
+        url = "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz";
+        sha512 = "sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==";
       };
     };
     "is-stream-2.0.1" = {
@@ -3595,13 +3595,13 @@ let
         sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
       };
     };
-    "isbot-3.4.5" = {
+    "isbot-3.4.6" = {
       name = "isbot";
       packageName = "isbot";
-      version = "3.4.5";
+      version = "3.4.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/isbot/-/isbot-3.4.5.tgz";
-        sha512 = "+KD6q1BBtw0iK9aGBGSfxJ31/ZgizKRjhm8ebgJUBMx0aeeQuIJ1I72beCoIrltIZGrSm4vmrxRxrG5n1aUTtw==";
+        url = "https://registry.npmjs.org/isbot/-/isbot-3.4.6.tgz";
+        sha512 = "EEi3SVCPB4WHtMBaAYzYLgCP7yG9qixseYCf3IG0Yc+howLia+XFPLTT1437rzeViLeDInKOXOdFhs9Fa/xgWQ==";
       };
     };
     "isexe-2.0.0" = {
@@ -3748,15 +3748,6 @@ let
         sha512 = "P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==";
       };
     };
-    "jsprim-2.0.2" = {
-      name = "jsprim";
-      packageName = "jsprim";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz";
-        sha512 = "gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==";
-      };
-    };
     "jwa-1.4.1" = {
       name = "jwa";
       packageName = "jwa";
@@ -3838,13 +3829,13 @@ let
         sha512 = "2Bm96d5ktnE217Ib1FldvUaPAaOst6GtZrsxJCwnJgi9lnsoAKIHyU0sae8rNx6DNYbjdqqh8lv5/b9poD8qOg==";
       };
     };
-    "libphonenumber-js-1.9.50" = {
+    "libphonenumber-js-1.9.52" = {
       name = "libphonenumber-js";
       packageName = "libphonenumber-js";
-      version = "1.9.50";
+      version = "1.9.52";
       src = fetchurl {
-        url = "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.50.tgz";
-        sha512 = "cCzQPChw2XbordcO2LKiw5Htx5leHVfFk/EXkxNHqJfFo7Fndcb1kF5wPJpc316vCJhhikedYnVysMh3Sc7Ocw==";
+        url = "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.52.tgz";
+        sha512 = "8k83chc+zMj+J/RkaBxi0PpSTAdzHmpqzCMqquSJVRfbZFr8DCp6vPC7ms2PIPGxeqajZLI6CBLW5nLCJCJrYg==";
       };
     };
     "libqp-1.1.0" = {
@@ -4135,13 +4126,13 @@ let
         sha512 = "IXAq50s4qwrOBrXJklY+KhgZF+5y98PDaNo0gi/v2KQBFLyWr+JyFvijZXkGKjQj/h9c0OwoE+JZbwUXce76hQ==";
       };
     };
-    "luxon-2.3.1" = {
+    "luxon-2.3.2" = {
       name = "luxon";
       packageName = "luxon";
-      version = "2.3.1";
+      version = "2.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/luxon/-/luxon-2.3.1.tgz";
-        sha512 = "I8vnjOmhXsMSlNMZlMkSOvgrxKJl0uOsEzdGgGNZuZPaS9KlefpE9KV95QFftlJSC+1UyCC9/I69R02cz/zcCA==";
+        url = "https://registry.npmjs.org/luxon/-/luxon-2.3.2.tgz";
+        sha512 = "MlAQQVMFhGk4WUA6gpfsy0QycnKP0+NlCBJRVRNPxxSIbjrCbQ65nrpJD3FVyJNZLuJ0uoqL57ye6BmDYgHaSw==";
       };
     };
     "mailparser-3.4.0" = {
@@ -4333,31 +4324,22 @@ let
         sha512 = "Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==";
       };
     };
-    "minipass-2.9.0" = {
+    "minipass-3.1.6" = {
       name = "minipass";
       packageName = "minipass";
-      version = "2.9.0";
+      version = "3.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz";
-        sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==";
+        url = "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz";
+        sha512 = "rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==";
       };
     };
-    "minizlib-1.3.3" = {
+    "minizlib-2.1.2" = {
       name = "minizlib";
       packageName = "minizlib";
-      version = "1.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz";
-        sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==";
-      };
-    };
-    "mkdirp-0.5.6" = {
-      name = "mkdirp";
-      packageName = "mkdirp";
-      version = "0.5.6";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz";
-        sha512 = "FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==";
+        url = "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz";
+        sha512 = "bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==";
       };
     };
     "mkdirp-1.0.4" = {
@@ -4378,13 +4360,13 @@ let
         sha512 = "lLzfLHcyc10MKQnNUCv7dMcoY/2Qxd6wJfbqCcVk3LDb8An4hF6ohk5AztrvgKhJCqj36uyzi/p5se+tvyD+Wg==";
       };
     };
-    "moment-2.29.1" = {
+    "moment-2.29.3" = {
       name = "moment";
       packageName = "moment";
-      version = "2.29.1";
+      version = "2.29.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz";
-        sha512 = "kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==";
+        url = "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz";
+        sha512 = "c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==";
       };
     };
     "moment-timezone-0.5.34" = {
@@ -4504,49 +4486,49 @@ let
         sha512 = "z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==";
       };
     };
-    "n8n-core-0.111.0" = {
+    "n8n-core-0.115.0" = {
       name = "n8n-core";
       packageName = "n8n-core";
-      version = "0.111.0";
+      version = "0.115.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-core/-/n8n-core-0.111.0.tgz";
-        sha512 = "fZLLJ60yIuuX+geKGQrO6jk+kxn1UaCJMoWEi2FVE+InTmi+/r51Bv6LGoapoW0Oz+Em+CDq0wE7Yzg3xNx7fw==";
+        url = "https://registry.npmjs.org/n8n-core/-/n8n-core-0.115.0.tgz";
+        sha512 = "VXmnbbAQKk9Nbw4g4kSpJ5bxKOydVsMnz6wU2Q4tmRd1ajp+jyjHLUWyJIoVMDWm6nLEC6GORh+Zsap7Jf2xjw==";
       };
     };
-    "n8n-design-system-0.16.0" = {
+    "n8n-design-system-0.18.0" = {
       name = "n8n-design-system";
       packageName = "n8n-design-system";
-      version = "0.16.0";
+      version = "0.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-design-system/-/n8n-design-system-0.16.0.tgz";
-        sha512 = "X7Qa+DoXRyJL4gqh7x59udnPIBYAUgDvhchL33dpI/Rgq9gaFajT9eAuOFQnXKMUaL0FZ5hu3rRGcAmwwEA/bA==";
+        url = "https://registry.npmjs.org/n8n-design-system/-/n8n-design-system-0.18.0.tgz";
+        sha512 = "TurjQwQC+TRHwoEtsFBqBVg9VRSDPBg6ghmz4rm2U6X61yqg960dLQlAIl5d+oas2jezAnhHIxL47wl+9M8V/A==";
       };
     };
-    "n8n-editor-ui-0.137.0" = {
+    "n8n-editor-ui-0.141.0" = {
       name = "n8n-editor-ui";
       packageName = "n8n-editor-ui";
-      version = "0.137.0";
+      version = "0.141.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-editor-ui/-/n8n-editor-ui-0.137.0.tgz";
-        sha512 = "/wYAIh/3RtVaFxY+vtVEACfo6xsVOi3cEPWd+GSFCK/AMxXs517CNGbwNz54geqaGNUH+rhhUz87C0pG+TgiUg==";
+        url = "https://registry.npmjs.org/n8n-editor-ui/-/n8n-editor-ui-0.141.0.tgz";
+        sha512 = "CH1Jd9vyf+DsBukIgV9dICxGzyI1cbeHvv7XTv8qUVfMdNrsPan/OTAmyuoFl+aSuI0H8NedJTpzMytoLghvjw==";
       };
     };
-    "n8n-nodes-base-0.168.0" = {
+    "n8n-nodes-base-0.172.0" = {
       name = "n8n-nodes-base";
       packageName = "n8n-nodes-base";
-      version = "0.168.0";
+      version = "0.172.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-nodes-base/-/n8n-nodes-base-0.168.0.tgz";
-        sha512 = "TyIL5Gwn+qvfi+1nNkQTPfrJYMqjx2P2OCiDWAMfzahauJyJpfJMYpIEKF3UxoKXCfWpBYPmHVoov6GadEOR1w==";
+        url = "https://registry.npmjs.org/n8n-nodes-base/-/n8n-nodes-base-0.172.0.tgz";
+        sha512 = "/Wm9E4nxftG5bTU7AMdXrYiCRq/S/rqiZO7Cn34Nvp/fyT5MndU5C6socz0Bz/ScDrRCAmsEF5I+G1+zQwuQUA==";
       };
     };
-    "n8n-workflow-0.93.0" = {
+    "n8n-workflow-0.97.0" = {
       name = "n8n-workflow";
       packageName = "n8n-workflow";
-      version = "0.93.0";
+      version = "0.97.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-workflow/-/n8n-workflow-0.93.0.tgz";
-        sha512 = "IqZrnTKdIZD7aeL9/FiwoI7w1WBgeBmqZVXRF+OGtIHooK/lDkHpy17hoXXqAyeATiVf2licgl8F/zMvSsnuJA==";
+        url = "https://registry.npmjs.org/n8n-workflow/-/n8n-workflow-0.97.0.tgz";
+        sha512 = "RZlUhe8rW7r5prjn/WmdE1yZfZsDrpjjT0Bk22ItmKA+BeRW1k+VonWHBZEAsg6scui0web/MfXfXdRsRDnLdQ==";
       };
     };
     "named-placeholders-1.1.2" = {
@@ -4567,13 +4549,13 @@ let
         sha512 = "wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==";
       };
     };
-    "nanoid-3.3.1" = {
+    "nanoid-3.3.3" = {
       name = "nanoid";
       packageName = "nanoid";
-      version = "3.3.1";
+      version = "3.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz";
-        sha512 = "n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==";
+        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz";
+        sha512 = "p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==";
       };
     };
     "native-duplexpair-1.0.0" = {
@@ -4594,15 +4576,6 @@ let
         sha512 = "+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==";
       };
     };
-    "needle-2.9.1" = {
-      name = "needle";
-      packageName = "needle";
-      version = "2.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz";
-        sha512 = "6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==";
-      };
-    };
     "negotiator-0.6.3" = {
       name = "negotiator";
       packageName = "negotiator";
@@ -4630,13 +4603,13 @@ let
         sha512 = "fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==";
       };
     };
-    "node-addon-api-3.2.1" = {
+    "node-addon-api-4.3.0" = {
       name = "node-addon-api";
       packageName = "node-addon-api";
-      version = "3.2.1";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz";
-        sha512 = "mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==";
+        url = "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz";
+        sha512 = "73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==";
       };
     };
     "node-ensure-0.0.0" = {
@@ -4657,13 +4630,22 @@ let
         sha512 = "ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==";
       };
     };
-    "node-pre-gyp-0.11.0" = {
-      name = "node-pre-gyp";
-      packageName = "node-pre-gyp";
-      version = "0.11.0";
+    "node-html-markdown-1.2.0" = {
+      name = "node-html-markdown";
+      packageName = "node-html-markdown";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-html-markdown/-/node-html-markdown-1.2.0.tgz";
+        sha512 = "mGA53bSqo7j62PjmMuFPdO0efNT9pqiGYhQTNVCWkY7PdduRIECJF7n7NOrr5cb+d/js1GdYRLpoTYDwawRk6A==";
+      };
+    };
+    "node-html-parser-5.3.3" = {
+      name = "node-html-parser";
+      packageName = "node-html-parser";
+      version = "5.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz";
-        sha512 = "TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==";
+        url = "https://registry.npmjs.org/node-html-parser/-/node-html-parser-5.3.3.tgz";
+        sha512 = "ncg1033CaX9UexbyA7e1N0aAoAYRDiV8jkTvzEnfd1GDvzFdrsXLzR4p4ik8mwLgnaKP/jyUFWDy9q3jvRT2Jw==";
       };
     };
     "node-ssh-12.0.4" = {
@@ -4702,13 +4684,13 @@ let
         sha512 = "KUdDsspqx89sD4UUyUKzdlUOper3hRkDVkrKh/89G+d9WKsU5ox51NWS4tB1XR5dPUdR4SP0E3molyEfOvSa3g==";
       };
     };
-    "nopt-4.0.3" = {
+    "nopt-5.0.0" = {
       name = "nopt";
       packageName = "nopt";
-      version = "4.0.3";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz";
-        sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==";
+        url = "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz";
+        sha512 = "Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==";
       };
     };
     "normalize-path-2.1.1" = {
@@ -4729,40 +4711,13 @@ let
         sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
       };
     };
-    "npm-bundled-1.1.2" = {
-      name = "npm-bundled";
-      packageName = "npm-bundled";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz";
-        sha512 = "x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==";
-      };
-    };
-    "npm-normalize-package-bin-1.0.1" = {
-      name = "npm-normalize-package-bin";
-      packageName = "npm-normalize-package-bin";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz";
-        sha512 = "EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==";
-      };
-    };
-    "npm-packlist-1.4.8" = {
-      name = "npm-packlist";
-      packageName = "npm-packlist";
-      version = "1.4.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz";
-        sha512 = "5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==";
-      };
-    };
-    "npmlog-4.1.2" = {
+    "npmlog-5.0.1" = {
       name = "npmlog";
       packageName = "npmlog";
-      version = "4.1.2";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz";
-        sha512 = "2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==";
+        url = "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz";
+        sha512 = "AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==";
       };
     };
     "nth-check-2.0.1" = {
@@ -4774,15 +4729,6 @@ let
         sha512 = "it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==";
       };
     };
-    "number-is-nan-1.0.1" = {
-      name = "number-is-nan";
-      packageName = "number-is-nan";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz";
-        sha1 = "097b602b53422a522c1afb8790318336941a011d";
-      };
-    };
     "oauth-1.0a-2.2.6" = {
       name = "oauth-1.0a";
       packageName = "oauth-1.0a";
@@ -4846,15 +4792,6 @@ let
         sha512 = "VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==";
       };
     };
-    "ocsp-1.2.0" = {
-      name = "ocsp";
-      packageName = "ocsp";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ocsp/-/ocsp-1.2.0.tgz";
-        sha1 = "469a1776b457dee67eb0201408c1946bac4076cc";
-      };
-    };
     "on-finished-2.3.0" = {
       name = "on-finished";
       packageName = "on-finished";
@@ -4864,6 +4801,15 @@ let
         sha1 = "20f1336481b083cd75337992a16971aa2d906947";
       };
     };
+    "on-finished-2.4.1" = {
+      name = "on-finished";
+      packageName = "on-finished";
+      version = "2.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz";
+        sha512 = "oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==";
+      };
+    };
     "on-headers-1.0.2" = {
       name = "on-headers";
       packageName = "on-headers";
@@ -4945,15 +4891,6 @@ let
         sha512 = "hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==";
       };
     };
-    "os-homedir-1.0.2" = {
-      name = "os-homedir";
-      packageName = "os-homedir";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz";
-        sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
-      };
-    };
     "os-tmpdir-1.0.2" = {
       name = "os-tmpdir";
       packageName = "os-tmpdir";
@@ -4963,15 +4900,6 @@ let
         sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
       };
     };
-    "osenv-0.1.5" = {
-      name = "osenv";
-      packageName = "osenv";
-      version = "0.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz";
-        sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
-      };
-    };
     "p-cancelable-2.1.1" = {
       name = "p-cancelable";
       packageName = "p-cancelable";
@@ -5431,24 +5359,6 @@ let
         sha512 = "zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==";
       };
     };
-    "printj-1.2.3" = {
-      name = "printj";
-      packageName = "printj";
-      version = "1.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/printj/-/printj-1.2.3.tgz";
-        sha512 = "sanczS6xOJOg7IKDvi4sGOUOe7c1tsEzjwlLFH/zgwx/uyImVM9/rgBkc8AfiQa/Vg54nRd8mkm9yI7WV/O+WA==";
-      };
-    };
-    "printj-1.3.1" = {
-      name = "printj";
-      packageName = "printj";
-      version = "1.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/printj/-/printj-1.3.1.tgz";
-        sha512 = "GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg==";
-      };
-    };
     "process-0.11.10" = {
       name = "process";
       packageName = "process";
@@ -5737,13 +5647,13 @@ let
         sha512 = "UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==";
       };
     };
-    "rc-1.2.8" = {
-      name = "rc";
-      packageName = "rc";
-      version = "1.2.8";
+    "raw-body-2.5.1" = {
+      name = "raw-body";
+      packageName = "raw-body";
+      version = "2.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz";
-        sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==";
+        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz";
+        sha512 = "qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==";
       };
     };
     "readable-stream-1.1.14" = {
@@ -5980,15 +5890,6 @@ let
         sha512 = "PEl62U2EhxCO5wMUZ2/bCBcXAVKN9AdMSNQOrp3+R5b77TEaOSiy16MQ0sIOmzj/iqsgIAgPs1mt3FYfu1vIXA==";
       };
     };
-    "rimraf-2.7.1" = {
-      name = "rimraf";
-      packageName = "rimraf";
-      version = "2.7.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz";
-        sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==";
-      };
-    };
     "rimraf-3.0.2" = {
       name = "rimraf";
       packageName = "rimraf";
@@ -6160,13 +6061,13 @@ let
         sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==";
       };
     };
-    "semver-7.3.5" = {
+    "semver-7.3.7" = {
       name = "semver";
       packageName = "semver";
-      version = "7.3.5";
+      version = "7.3.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz";
-        sha512 = "PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==";
+        url = "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz";
+        sha512 = "QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==";
       };
     };
     "send-0.17.2" = {
@@ -6268,6 +6169,15 @@ let
         sha1 = "68fd025eb0490b4f567a027f0bf22480b5f84133";
       };
     };
+    "showdown-2.1.0" = {
+      name = "showdown";
+      packageName = "showdown";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/showdown/-/showdown-2.1.0.tgz";
+        sha512 = "/6NVYu4U819R2pUIk79n67SYgJHWCce0a5xTP979WbNp0FL9MN1I1QK662IDU1b6JzKTvmhgI7T7JYIxBi3kMQ==";
+      };
+    };
     "side-channel-1.0.4" = {
       name = "side-channel";
       packageName = "side-channel";
@@ -6286,13 +6196,13 @@ let
         sha512 = "wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==";
       };
     };
-    "simple-git-2.48.0" = {
+    "simple-git-3.7.1" = {
       name = "simple-git";
       packageName = "simple-git";
-      version = "2.48.0";
+      version = "3.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/simple-git/-/simple-git-2.48.0.tgz";
-        sha512 = "z4qtrRuaAFJS4PUd0g+xy7aN4y+RvEt/QTJpR184lhJguBA1S/LsVlvE/CM95RsYMOFJG3NGGDjqFCzKU19S/A==";
+        url = "https://registry.npmjs.org/simple-git/-/simple-git-3.7.1.tgz";
+        sha512 = "+Osjtsumbtew2y9to0pOYjNzSIr4NkKGBg7Po5SUtjQhaJf2QBmiTX/9E9cv9rmc7oUiSGFIB9e7ys5ibnT9+A==";
       };
     };
     "simple-lru-cache-0.0.2" = {
@@ -6331,13 +6241,13 @@ let
         sha512 = "LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==";
       };
     };
-    "snowflake-sdk-1.6.8" = {
+    "snowflake-sdk-1.6.9" = {
       name = "snowflake-sdk";
       packageName = "snowflake-sdk";
-      version = "1.6.8";
+      version = "1.6.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snowflake-sdk/-/snowflake-sdk-1.6.8.tgz";
-        sha512 = "ZmzeR2W4mQVri546mUxUW+jBxTn0JRKm06EtndO7MUFLcS8YChf60tXTa+s7A0hO8FxQkSQAFonCmtz4nzPoSA==";
+        url = "https://registry.npmjs.org/snowflake-sdk/-/snowflake-sdk-1.6.9.tgz";
+        sha512 = "Rt16zh5t++mZH+CXUBq3sYUUaEQnEMKT86mFtzfgIUk8MnZFJ4qBOwdheSWYU7OI9QnLqLmy8nZN40o9CFgm5A==";
       };
     };
     "source-map-0.6.1" = {
@@ -6394,13 +6304,13 @@ let
         sha512 = "VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==";
       };
     };
-    "sqlite3-5.0.2" = {
+    "sqlite3-5.0.5" = {
       name = "sqlite3";
       packageName = "sqlite3";
-      version = "5.0.2";
+      version = "5.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.2.tgz";
-        sha512 = "1SdTNo+BVU211Xj1csWa8lV6KM0CtucDwRyA0VHl91wEH1Mgh7RxUpI4rVvG7OhHrzCSGaVyW5g8vKvlrk9DJA==";
+        url = "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.5.tgz";
+        sha512 = "ZZFOMW31IOMbUeSiL23TuWSjNyS7Z83EDJ80HJxCe78OZ+5BJT6IhAwAUnQgPsUl5z+Er0DGx7VjuTP7PKPNcg==";
       };
     };
     "sqlstring-2.3.3" = {
@@ -6430,13 +6340,13 @@ let
         sha512 = "+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==";
       };
     };
-    "ssh2-1.8.0" = {
+    "ssh2-1.9.0" = {
       name = "ssh2";
       packageName = "ssh2";
-      version = "1.8.0";
+      version = "1.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssh2/-/ssh2-1.8.0.tgz";
-        sha512 = "NVIRkIwJvWl+mcRozp+EBzHMVCcbDKBea64ToPdZEk43yAVGwmfqYZRPFRnnvGjsKC34wYCmiupTcKgCVNVNNg==";
+        url = "https://registry.npmjs.org/ssh2/-/ssh2-1.9.0.tgz";
+        sha512 = "rhhIZT0eMPvCBSOG8CpqZZ7gre2vgXaIqmb3Jb83t88rjsxIsFzDanqBJM9Ns8BmP1835A5IbQ199io4EUZwOA==";
       };
     };
     "ssh2-sftp-client-7.2.3" = {
@@ -6484,6 +6394,15 @@ let
         sha1 = "161c7dac177659fd9811f43771fa99381478628c";
       };
     };
+    "statuses-2.0.1" = {
+      name = "statuses";
+      packageName = "statuses";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz";
+        sha512 = "RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==";
+      };
+    };
     "stealthy-require-1.1.1" = {
       name = "stealthy-require";
       packageName = "stealthy-require";
@@ -6511,15 +6430,6 @@ let
         sha512 = "/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==";
       };
     };
-    "string-width-1.0.2" = {
-      name = "string-width";
-      packageName = "string-width";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz";
-        sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
-      };
-    };
     "string-width-4.2.3" = {
       name = "string-width";
       packageName = "string-width";
@@ -6592,15 +6502,6 @@ let
         sha512 = "Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==";
       };
     };
-    "strip-json-comments-2.0.1" = {
-      name = "strip-json-comments";
-      packageName = "strip-json-comments";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
-        sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
-      };
-    };
     "strtok3-6.3.0" = {
       name = "strtok3";
       packageName = "strtok3";
@@ -6628,13 +6529,13 @@ let
         sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
       };
     };
-    "tar-4.4.19" = {
+    "tar-6.1.11" = {
       name = "tar";
       packageName = "tar";
-      version = "4.4.19";
+      version = "6.1.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz";
-        sha512 = "a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==";
+        url = "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz";
+        sha512 = "an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==";
       };
     };
     "tarn-1.1.5" = {
@@ -6898,13 +6799,13 @@ let
         sha512 = "Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==";
       };
     };
-    "tslib-2.3.1" = {
+    "tslib-2.4.0" = {
       name = "tslib";
       packageName = "tslib";
-      version = "2.3.1";
+      version = "2.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz";
-        sha512 = "77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==";
+        url = "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz";
+        sha512 = "d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==";
       };
     };
     "tsscmp-1.0.6" = {
@@ -7006,13 +6907,13 @@ let
         sha512 = "KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==";
       };
     };
-    "unbox-primitive-1.0.1" = {
+    "unbox-primitive-1.0.2" = {
       name = "unbox-primitive";
       packageName = "unbox-primitive";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz";
-        sha512 = "tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==";
+        url = "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz";
+        sha512 = "61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==";
       };
     };
     "unc-path-regex-0.1.2" = {
@@ -7024,13 +6925,13 @@ let
         sha1 = "e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa";
       };
     };
-    "underscore-1.13.2" = {
+    "underscore-1.13.3" = {
       name = "underscore";
       packageName = "underscore";
-      version = "1.13.2";
+      version = "1.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz";
-        sha512 = "ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==";
+        url = "https://registry.npmjs.org/underscore/-/underscore-1.13.3.tgz";
+        sha512 = "QvjkYpiD+dJJraRA8+dGAU4i7aBbb2s0S3jA45TFOvg2VgqvdCDd/3N6CqA8gluk1W91GLoXg5enMUx560QzuA==";
       };
     };
     "unique-stream-2.3.1" = {
@@ -7258,13 +7159,13 @@ let
         sha512 = "KEW0gkeNOLJjtXN4jqJhTazez5jtrwimHkE5Few/VxblH4F9EcvJiEsahrV5kg5uKd5U8du4ORKS6QjGE0piYA==";
       };
     };
-    "vue-i18n-8.27.0" = {
+    "vue-i18n-8.27.1" = {
       name = "vue-i18n";
       packageName = "vue-i18n";
-      version = "8.27.0";
+      version = "8.27.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.27.0.tgz";
-        sha512 = "SX35iJHL5PJ4Gfh0Mo/q0shyHiI2V6Zkh51c+k8E9O1RKv5BQyYrCxRzpvPrsIOJEnLaeiovet3dsUB0e/kDzw==";
+        url = "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.27.1.tgz";
+        sha512 = "lWrGm4F25qReJ7XxSnFVb2h3PfW54ldnM4C+YLBGGJ75+Myt/kj4hHSTKqsyDLamvNYpvINMicSOdW+7yuqgIQ==";
       };
     };
     "vue2-boring-avatars-0.3.4" = {
@@ -7330,13 +7231,13 @@ let
         sha512 = "NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==";
       };
     };
-    "winston-3.6.0" = {
+    "winston-3.7.2" = {
       name = "winston";
       packageName = "winston";
-      version = "3.6.0";
+      version = "3.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/winston/-/winston-3.6.0.tgz";
-        sha512 = "9j8T75p+bcN6D00sF/zjFVmPp+t8KMPB1MzbbzYjeN9VWxdsYnTB40TkbNUEXAmILEfChMvAMgidlX64OG3p6w==";
+        url = "https://registry.npmjs.org/winston/-/winston-3.7.2.tgz";
+        sha512 = "QziIqtojHBoyzUOdQvQiar1DH0Xp9nF1A1y7NVy2DGEsz82SBDtOalS0ulTRGVT14xPX3WRWkCsdcJKqNflKng==";
       };
     };
     "winston-transport-4.5.0" = {
@@ -7510,15 +7411,6 @@ let
         sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
       };
     };
-    "yallist-3.1.1" = {
-      name = "yallist";
-      packageName = "yallist";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz";
-        sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==";
-      };
-    };
     "yallist-4.0.0" = {
       name = "yallist";
       packageName = "yallist";
@@ -7579,47 +7471,47 @@ in
   n8n = nodeEnv.buildNodePackage {
     name = "n8n";
     packageName = "n8n";
-    version = "0.170.0";
+    version = "0.174.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/n8n/-/n8n-0.170.0.tgz";
-      sha512 = "aY4A9+P7K6iinxFyDZl9Jdin283csAbiMStjfxLX5IfO75/aNbjXhSmpjclV9PCUuuTonvoMiVMTvpbCaeImqg==";
+      url = "https://registry.npmjs.org/n8n/-/n8n-0.174.0.tgz";
+      sha512 = "6opUG0aQ1JSQqKRgUbK0hLnH7XIs0FjH8NoLvBA51tntxMQ6ZnK2Nck1GH/6VVKqI6a+/udmSRFvd7Ohpwqzqw==";
     };
     dependencies = [
       (sources."@azure/abort-controller-1.0.5" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."@azure/core-asynciterator-polyfill-1.0.2"
       (sources."@azure/core-auth-1.3.2" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       (sources."@azure/core-http-2.2.4" // {
         dependencies = [
           sources."tough-cookie-4.0.0"
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       (sources."@azure/core-lro-2.2.4" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       (sources."@azure/core-paging-1.2.1" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       (sources."@azure/core-tracing-1.0.0-preview.13" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       (sources."@azure/logger-1.0.3" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."@azure/ms-rest-azure-env-2.0.0"
@@ -7631,10 +7523,10 @@ in
       sources."@azure/ms-rest-nodeauth-3.1.1"
       (sources."@azure/storage-blob-12.9.0" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
-      sources."@babel/runtime-7.17.8"
+      sources."@babel/runtime-7.17.9"
       sources."@colors/colors-1.5.0"
       (sources."@dabh/diagnostics-2.0.3" // {
         dependencies = [
@@ -7643,17 +7535,20 @@ in
         ];
       })
       sources."@fontsource/open-sans-4.5.8"
+      sources."@fortawesome/fontawesome-common-types-6.1.1"
+      sources."@fortawesome/free-regular-svg-icons-6.1.1"
       sources."@icetee/ftp-0.3.15"
       sources."@kafkajs/confluent-schema-registry-1.0.6"
       sources."@kwsites/file-exists-1.1.1"
       sources."@kwsites/promise-deferred-1.1.1"
+      sources."@mapbox/node-pre-gyp-1.0.9"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
       sources."@oclif/command-1.8.16"
       (sources."@oclif/config-1.18.3" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       (sources."@oclif/errors-1.3.5" // {
@@ -7664,13 +7559,13 @@ in
       (sources."@oclif/help-1.0.1" // {
         dependencies = [
           sources."@oclif/config-1.18.2"
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."@oclif/linewrap-1.0.0"
       (sources."@oclif/parser-3.8.7" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."@opentelemetry/api-1.1.0"
@@ -7679,6 +7574,11 @@ in
       sources."@selderee/plugin-htmlparser2-0.6.0"
       sources."@servie/events-1.0.0"
       sources."@sqltools/formatter-1.2.2"
+      (sources."@techteamer/ocsp-1.0.0" // {
+        dependencies = [
+          sources."async-3.2.3"
+        ];
+      })
       sources."@tokenizer/token-0.3.0"
       sources."@tootallnate/once-1.1.2"
       sources."@types/bluebird-3.5.36"
@@ -7691,10 +7591,10 @@ in
       sources."@types/ftp-0.3.33"
       sources."@types/json-diff-0.5.2"
       sources."@types/jsonwebtoken-8.5.8"
-      sources."@types/lodash-4.14.180"
+      sources."@types/lodash-4.14.182"
       sources."@types/lossless-json-1.0.1"
       sources."@types/mime-1.3.2"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.26"
       (sources."@types/node-fetch-2.6.1" // {
         dependencies = [
           sources."form-data-3.0.1"
@@ -7706,7 +7606,7 @@ in
       sources."@types/range-parser-1.2.4"
       sources."@types/readable-stream-2.3.13"
       sources."@types/serve-static-1.13.10"
-      sources."@types/snowflake-sdk-1.6.2"
+      sources."@types/snowflake-sdk-1.6.3"
       sources."@types/tough-cookie-2.3.8"
       sources."@types/tunnel-0.0.3"
       sources."@xmldom/xmldom-0.7.5"
@@ -7731,13 +7631,11 @@ in
       sources."any-promise-1.3.0"
       sources."anymatch-3.1.2"
       sources."app-root-path-3.0.0"
-      sources."aproba-1.2.0"
-      (sources."are-we-there-yet-1.1.7" // {
+      sources."aproba-2.0.0"
+      (sources."are-we-there-yet-2.0.0" // {
         dependencies = [
-          sources."isarray-1.0.0"
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
+          sources."readable-stream-3.6.0"
+          sources."string_decoder-1.3.0"
         ];
       })
       (sources."argparse-1.0.10" // {
@@ -7755,15 +7653,15 @@ in
       sources."asn1.js-rfc5280-3.0.0"
       sources."assert-options-0.7.0"
       sources."assert-plus-1.0.0"
-      sources."async-2.6.3"
+      sources."async-2.6.4"
       sources."asynckit-0.4.0"
       (sources."auto-changelog-1.16.4" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."avsc-5.7.3"
-      (sources."aws-sdk-2.1101.0" // {
+      sources."avsc-5.7.4"
+      (sources."aws-sdk-2.1120.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."events-1.1.1"
@@ -7817,7 +7715,7 @@ in
       })
       sources."bluebird-3.7.2"
       sources."bn.js-4.12.0"
-      (sources."body-parser-1.19.2" // {
+      (sources."body-parser-1.20.0" // {
         dependencies = [
           sources."debug-2.6.9"
           sources."ms-2.0.0"
@@ -7842,37 +7740,32 @@ in
       sources."callsites-3.1.0"
       (sources."camel-case-4.1.2" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       (sources."capital-case-1.0.4" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."caseless-0.12.0"
-      (sources."cfb-1.2.1" // {
+      (sources."cfb-1.2.2" // {
         dependencies = [
-          (sources."adler-32-1.3.0" // {
-            dependencies = [
-              sources."printj-1.2.3"
-            ];
-          })
-          sources."printj-1.3.1"
+          sources."adler-32-1.3.1"
         ];
       })
       sources."chalk-4.1.2"
       (sources."change-case-4.1.2" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."chardet-0.7.0"
       sources."charenc-0.0.2"
       sources."cheerio-1.0.0-rc.6"
-      sources."cheerio-select-1.5.0"
+      sources."cheerio-select-1.6.0"
       sources."chokidar-3.5.2"
-      sources."chownr-1.1.4"
+      sources."chownr-2.0.0"
       sources."clamp-1.0.1"
       sources."class-validator-0.13.2"
       sources."clean-stack-3.0.1"
@@ -7892,7 +7785,6 @@ in
         ];
       })
       sources."cluster-key-slot-1.1.0"
-      sources."code-point-at-1.1.0"
       sources."codepage-1.15.0"
       (sources."color-3.2.1" // {
         dependencies = [
@@ -7902,7 +7794,8 @@ in
       })
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."color-string-1.9.0"
+      sources."color-string-1.9.1"
+      sources."color-support-1.1.3"
       sources."colornames-1.1.1"
       sources."colorspace-1.1.4"
       sources."combined-stream-1.0.8"
@@ -7929,7 +7822,7 @@ in
       sources."console-control-strings-1.1.0"
       (sources."constant-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."content-disposition-0.5.4"
@@ -7938,13 +7831,9 @@ in
       sources."cookie-0.4.1"
       sources."cookie-parser-1.4.6"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.21.1"
+      sources."core-js-3.22.2"
       sources."core-util-is-1.0.2"
-      (sources."crc-32-1.2.1" // {
-        dependencies = [
-          sources."printj-1.3.1"
-        ];
-      })
+      sources."crc-32-1.2.2"
       sources."cron-1.7.2"
       sources."cron-parser-2.18.0"
       (sources."cross-spawn-4.0.2" // {
@@ -7956,33 +7845,32 @@ in
       sources."crypt-0.0.2"
       sources."crypto-js-4.1.1"
       sources."csrf-3.1.0"
-      sources."css-select-4.2.1"
-      sources."css-what-5.1.0"
+      sources."css-select-4.3.0"
+      sources."css-what-6.1.0"
       sources."cssfilter-0.0.10"
       sources."dashdash-1.14.1"
       sources."date-utils-1.2.21"
       sources."debug-4.3.4"
       sources."debuglog-1.0.1"
-      sources."deep-extend-0.6.0"
       sources."deepmerge-4.2.2"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
       sources."denque-1.5.1"
-      sources."depd-1.1.2"
-      sources."destroy-1.0.4"
-      sources."detect-libc-1.0.3"
+      sources."depd-2.0.0"
+      sources."destroy-1.2.0"
+      sources."detect-libc-2.0.1"
       sources."diagnostics-1.1.1"
       sources."difflib-0.2.4"
       sources."dir-glob-3.0.1"
       sources."discontinuous-range-1.0.0"
-      sources."dom-serializer-1.3.2"
-      sources."domelementtype-2.2.0"
+      sources."dom-serializer-1.4.1"
+      sources."domelementtype-2.3.0"
       sources."domhandler-4.3.1"
       sources."domutils-2.8.0"
       (sources."dot-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."dotenv-8.6.0"
@@ -8006,7 +7894,7 @@ in
       sources."entities-2.2.0"
       sources."env-variable-0.0.6"
       sources."err-code-2.0.3"
-      sources."es-abstract-1.19.1"
+      sources."es-abstract-1.19.5"
       sources."es-to-primitive-1.2.1"
       sources."es5-ext-0.8.2"
       sources."escalade-3.1.1"
@@ -8022,9 +7910,16 @@ in
       sources."expand-tilde-2.0.2"
       (sources."express-4.17.3" // {
         dependencies = [
+          sources."body-parser-1.19.2"
           sources."cookie-0.4.2"
           sources."debug-2.6.9"
+          sources."depd-1.1.2"
+          sources."http-errors-1.8.1"
           sources."ms-2.0.0"
+          sources."on-finished-2.3.0"
+          sources."qs-6.9.7"
+          sources."raw-body-2.4.3"
+          sources."statuses-1.5.0"
         ];
       })
       sources."extend-3.0.2"
@@ -8034,7 +7929,7 @@ in
       sources."fast-glob-3.2.11"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fastq-1.13.0"
-      sources."fecha-4.2.1"
+      sources."fecha-4.2.3"
       sources."fflate-0.7.3"
       sources."figlet-1.5.2"
       (sources."figures-3.2.0" // {
@@ -8048,6 +7943,8 @@ in
         dependencies = [
           sources."debug-2.6.9"
           sources."ms-2.0.0"
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
         ];
       })
       sources."flatted-3.2.5"
@@ -8061,17 +7958,10 @@ in
       sources."frac-1.1.2"
       sources."fresh-0.5.2"
       sources."fs-extra-8.1.0"
-      sources."fs-minipass-1.2.7"
+      sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
-      (sources."gauge-2.7.4" // {
-        dependencies = [
-          sources."ansi-regex-2.1.1"
-          sources."is-fullwidth-code-point-1.0.0"
-          sources."string-width-1.0.2"
-          sources."strip-ansi-3.0.1"
-        ];
-      })
+      sources."gauge-3.0.2"
       sources."generate-function-2.3.1"
       sources."generic-pool-3.8.2"
       sources."get-caller-file-2.0.5"
@@ -8099,7 +7989,7 @@ in
         ];
       })
       sources."google-timezones-json-1.0.2"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."handlebars-4.7.7"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
@@ -8109,15 +7999,16 @@ in
           sources."ansi-regex-2.1.1"
         ];
       })
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
       sources."has-flag-4.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."has-unicode-2.0.1"
       sources."he-1.2.0"
       (sources."header-case-2.0.4" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."heap-0.2.7"
@@ -8126,21 +8017,19 @@ in
       sources."homedir-polyfill-1.0.3"
       sources."html-to-text-8.0.0"
       sources."htmlparser2-6.1.0"
-      sources."http-errors-1.8.1"
+      sources."http-errors-2.0.0"
       sources."http-proxy-agent-4.0.1"
       sources."http-signature-1.2.0"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."iconv-lite-0.4.24"
       sources."ics-2.35.0"
       sources."ieee754-1.2.1"
       sources."ignore-5.2.0"
-      sources."ignore-walk-3.0.4"
       sources."imap-0.8.19"
       sources."imap-simple-4.3.0"
       sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.8"
       sources."inquirer-7.3.3"
       sources."internal-slot-1.0.3"
       sources."ioredis-4.28.5"
@@ -8162,13 +8051,13 @@ in
       sources."is-negated-glob-1.0.0"
       sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-promise-1.0.1"
       sources."is-property-1.0.2"
       sources."is-regex-1.1.4"
       sources."is-relative-1.0.0"
       sources."is-retry-allowed-2.2.0"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-stream-2.0.1"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
@@ -8178,7 +8067,7 @@ in
       sources."is-windows-1.0.2"
       sources."is-wsl-2.2.0"
       sources."isarray-0.0.1"
-      sources."isbot-3.4.5"
+      sources."isbot-3.4.6"
       sources."isexe-2.0.0"
       sources."iso-639-1-2.1.13"
       sources."isstream-0.1.2"
@@ -8211,7 +8100,7 @@ in
           sources."iconv-lite-0.6.2"
         ];
       })
-      sources."libphonenumber-js-1.9.50"
+      sources."libphonenumber-js-1.9.52"
       sources."libqp-1.1.0"
       sources."limiter-1.1.5"
       sources."linkify-it-3.0.3"
@@ -8245,7 +8134,7 @@ in
       sources."lossless-json-1.0.5"
       (sources."lower-case-2.0.2" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."lru-cache-6.0.0"
@@ -8255,7 +8144,7 @@ in
           sources."yallist-2.1.2"
         ];
       })
-      sources."luxon-2.3.1"
+      sources."luxon-2.3.2"
       (sources."mailparser-3.4.0" // {
         dependencies = [
           sources."iconv-lite-0.6.3"
@@ -8286,12 +8175,8 @@ in
       sources."minimalistic-assert-1.0.1"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
-      (sources."minipass-2.9.0" // {
-        dependencies = [
-          sources."yallist-3.1.1"
-        ];
-      })
-      sources."minizlib-1.3.3"
+      sources."minipass-3.1.6"
+      sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
       (sources."mock-require-3.0.3" // {
         dependencies = [
@@ -8299,7 +8184,7 @@ in
           sources."normalize-path-2.1.1"
         ];
       })
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."moment-timezone-0.5.34"
       sources."monaco-editor-0.29.1"
       sources."mongodb-3.7.3"
@@ -8327,19 +8212,15 @@ in
         ];
       })
       sources."mz-2.7.0"
-      (sources."n8n-core-0.111.0" // {
-        dependencies = [
-          sources."qs-6.10.3"
-        ];
-      })
-      sources."n8n-design-system-0.16.0"
-      sources."n8n-editor-ui-0.137.0"
-      (sources."n8n-nodes-base-0.168.0" // {
+      sources."n8n-core-0.115.0"
+      sources."n8n-design-system-0.18.0"
+      sources."n8n-editor-ui-0.141.0"
+      (sources."n8n-nodes-base-0.172.0" // {
         dependencies = [
           sources."iconv-lite-0.6.3"
         ];
       })
-      sources."n8n-workflow-0.93.0"
+      sources."n8n-workflow-0.97.0"
       (sources."named-placeholders-1.1.2" // {
         dependencies = [
           sources."lru-cache-4.1.5"
@@ -8347,46 +8228,32 @@ in
         ];
       })
       sources."nanoclone-0.2.1"
-      sources."nanoid-3.3.1"
+      sources."nanoid-3.3.3"
       sources."native-duplexpair-1.0.0"
       (sources."nearley-2.20.1" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
       })
-      (sources."needle-2.9.1" // {
-        dependencies = [
-          sources."debug-3.2.7"
-        ];
-      })
       sources."negotiator-0.6.3"
       sources."neo-async-2.6.2"
       (sources."no-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
-      sources."node-addon-api-3.2.1"
+      sources."node-addon-api-4.3.0"
       sources."node-ensure-0.0.0"
       sources."node-fetch-2.6.7"
-      (sources."node-pre-gyp-0.11.0" // {
-        dependencies = [
-          sources."mkdirp-0.5.6"
-          sources."rimraf-2.7.1"
-          sources."semver-5.7.1"
-        ];
-      })
+      sources."node-html-markdown-1.2.0"
+      sources."node-html-parser-5.3.3"
       sources."node-ssh-12.0.4"
       sources."nodeify-1.0.1"
       sources."nodemailer-6.7.3"
-      sources."nopt-4.0.3"
+      sources."nopt-5.0.0"
       sources."normalize-path-3.0.0"
-      sources."npm-bundled-1.1.2"
-      sources."npm-normalize-package-bin-1.0.1"
-      sources."npm-packlist-1.4.8"
-      sources."npmlog-4.1.2"
+      sources."npmlog-5.0.1"
       sources."nth-check-2.0.1"
-      sources."number-is-nan-1.0.1"
       sources."oauth-1.0a-2.2.6"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
@@ -8394,15 +8261,7 @@ in
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."object.getownpropertydescriptors-2.1.3"
-      (sources."ocsp-1.2.0" // {
-        dependencies = [
-          sources."asn1.js-4.10.1"
-          sources."asn1.js-rfc2560-4.0.6"
-          sources."asn1.js-rfc5280-2.0.1"
-          sources."async-1.5.2"
-        ];
-      })
-      sources."on-finished-2.3.0"
+      sources."on-finished-2.4.1"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       sources."one-time-1.0.0"
@@ -8419,9 +8278,7 @@ in
         ];
       })
       sources."original-1.0.2"
-      sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
-      sources."osenv-0.1.5"
       sources."p-cancelable-2.1.1"
       sources."p-finally-1.0.0"
       sources."p-map-2.1.0"
@@ -8429,7 +8286,7 @@ in
       sources."packet-reader-1.0.0"
       (sources."param-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."parent-require-1.0.0"
@@ -8441,7 +8298,7 @@ in
       sources."parseurl-1.3.3"
       (sources."pascal-case-3.1.2" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."passport-0.5.2"
@@ -8450,7 +8307,7 @@ in
       sources."passport-strategy-1.0.0"
       (sources."path-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."path-dirname-1.0.2"
@@ -8520,7 +8377,7 @@ in
       })
       sources."punycode-2.1.1"
       sources."python-struct-1.1.3"
-      sources."qs-6.9.7"
+      sources."qs-6.10.3"
       sources."querystring-0.2.0"
       sources."querystringify-2.2.0"
       sources."queue-microtask-1.2.3"
@@ -8530,8 +8387,7 @@ in
       sources."random-bytes-1.0.0"
       sources."randombytes-2.1.0"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.3"
-      sources."rc-1.2.8"
+      sources."raw-body-2.5.1"
       sources."readable-stream-1.1.14"
       sources."readable-web-to-node-stream-2.0.0"
       sources."readdirp-3.6.0"
@@ -8585,7 +8441,7 @@ in
       sources."sb-promise-queue-2.1.0"
       sources."sb-scandir-3.1.0"
       sources."selderee-0.6.0"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       (sources."send-0.17.2" // {
         dependencies = [
           (sources."debug-2.6.9" // {
@@ -8593,12 +8449,17 @@ in
               sources."ms-2.0.0"
             ];
           })
+          sources."depd-1.1.2"
+          sources."destroy-1.0.4"
+          sources."http-errors-1.8.1"
           sources."ms-2.1.3"
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
         ];
       })
       (sources."sentence-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."seq-queue-0.0.5"
@@ -8610,22 +8471,25 @@ in
       sources."setprototypeof-1.2.0"
       sources."sha.js-2.4.11"
       sources."shell-escape-0.2.0"
+      (sources."showdown-2.1.0" // {
+        dependencies = [
+          sources."commander-9.2.0"
+        ];
+      })
       sources."side-channel-1.0.4"
       sources."signal-exit-3.0.7"
-      sources."simple-git-2.48.0"
+      sources."simple-git-3.7.1"
       sources."simple-lru-cache-0.0.2"
       sources."simple-swizzle-0.2.2"
       sources."slash-3.0.0"
       (sources."snake-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
-      (sources."snowflake-sdk-1.6.8" // {
+      (sources."snowflake-sdk-1.6.9" // {
         dependencies = [
           sources."debug-3.2.7"
-          sources."http-signature-1.3.6"
-          sources."jsprim-2.0.2"
           sources."tmp-0.2.1"
           sources."uuid-3.4.0"
         ];
@@ -8639,16 +8503,16 @@ in
         ];
       })
       sources."sprintf-js-1.1.2"
-      sources."sqlite3-5.0.2"
+      sources."sqlite3-5.0.5"
       sources."sqlstring-2.3.3"
       sources."sse-channel-3.1.1"
       sources."ssf-0.11.2"
-      sources."ssh2-1.8.0"
+      sources."ssh2-1.9.0"
       sources."ssh2-sftp-client-7.2.3"
       sources."sshpk-1.17.0"
       sources."stack-trace-0.0.10"
       sources."standard-as-callback-2.1.0"
-      sources."statuses-1.5.0"
+      sources."statuses-2.0.1"
       sources."stealthy-require-1.1.1"
       sources."stream-shift-1.0.1"
       sources."string-similarity-4.0.4"
@@ -8657,22 +8521,15 @@ in
       sources."string.prototype.trimstart-1.0.4"
       sources."string_decoder-0.10.31"
       sources."strip-ansi-6.0.1"
-      sources."strip-json-comments-2.0.1"
       sources."strtok3-6.3.0"
       sources."supports-color-7.2.0"
-      (sources."tar-4.4.19" // {
-        dependencies = [
-          sources."mkdirp-0.5.6"
-          sources."yallist-3.1.1"
-        ];
-      })
+      sources."tar-6.1.11"
       sources."tarn-1.1.5"
       sources."tdigest-0.1.1"
       (sources."tedious-6.7.1" // {
         dependencies = [
-          sources."@types/node-12.20.47"
+          sources."@types/node-12.20.49"
           sources."bl-3.0.1"
-          sources."depd-2.0.0"
           sources."iconv-lite-0.5.2"
           sources."readable-stream-3.6.0"
           sources."string_decoder-1.3.0"
@@ -8731,20 +8588,20 @@ in
       })
       sources."uc.micro-1.0.6"
       sources."uid-safe-2.1.5"
-      sources."unbox-primitive-1.0.1"
+      sources."unbox-primitive-1.0.2"
       sources."unc-path-regex-0.1.2"
-      sources."underscore-1.13.2"
+      sources."underscore-1.13.3"
       sources."unique-stream-2.3.1"
       sources."universalify-0.1.2"
       sources."unpipe-1.0.0"
       (sources."upper-case-2.0.2" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       (sources."upper-case-first-2.0.2" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."uri-js-4.4.1"
@@ -8773,7 +8630,7 @@ in
       sources."vue-2.6.14"
       sources."vue-color-2.8.1"
       sources."vue-fragment-1.5.2"
-      sources."vue-i18n-8.27.0"
+      sources."vue-i18n-8.27.1"
       sources."vue2-boring-avatars-0.3.4"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
@@ -8781,7 +8638,7 @@ in
       sources."which-boxed-primitive-1.0.2"
       sources."wide-align-1.1.5"
       sources."widest-line-3.1.0"
-      (sources."winston-3.6.0" // {
+      (sources."winston-3.7.2" // {
         dependencies = [
           sources."async-3.2.3"
           sources."readable-stream-3.6.0"
diff --git a/pkgs/applications/networking/nextcloud-client/default.nix b/pkgs/applications/networking/nextcloud-client/default.nix
index deac64c903e1a..3afdbec0ac549 100644
--- a/pkgs/applications/networking/nextcloud-client/default.nix
+++ b/pkgs/applications/networking/nextcloud-client/default.nix
@@ -2,7 +2,9 @@
 , mkDerivation
 , fetchFromGitHub
 , cmake
+, extra-cmake-modules
 , inotify-tools
+, installShellFiles
 , libcloudproviders
 , libsecret
 , openssl
@@ -15,6 +17,8 @@
 , qtwebsockets
 , qtquickcontrols2
 , qtgraphicaleffects
+, plasma5Packages
+, sphinx
 , sqlite
 , inkscape
 , xdg-utils
@@ -24,6 +28,8 @@ mkDerivation rec {
   pname = "nextcloud-client";
   version = "3.4.4";
 
+  outputs = [ "out" "dev" ];
+
   src = fetchFromGitHub {
     owner = "nextcloud";
     repo = "desktop";
@@ -37,10 +43,19 @@ mkDerivation rec {
     ./0001-When-creating-the-autostart-entry-do-not-use-an-abso.patch
   ];
 
+  postPatch = ''
+    for file in src/libsync/vfs/*/CMakeLists.txt; do
+      substituteInPlace $file \
+        --replace "PLUGINDIR" "KDE_INSTALL_PLUGINDIR"
+    done
+  '';
+
   nativeBuildInputs = [
     pkg-config
     cmake
+    extra-cmake-modules
     inkscape
+    sphinx
   ];
 
   buildInputs = [
@@ -49,6 +64,7 @@ mkDerivation rec {
     libsecret
     openssl
     pcre
+    plasma5Packages.kio
     qtbase
     qtkeychain
     qttools
@@ -71,6 +87,10 @@ mkDerivation rec {
     "-DNO_SHIBBOLETH=1" # allows to compile without qtwebkit
   ];
 
+  postBuild = ''
+    make doc-man
+  '';
+
   meta = with lib; {
     description = "Nextcloud themed desktop client";
     homepage = "https://nextcloud.com";
diff --git a/pkgs/applications/networking/nextdns/default.nix b/pkgs/applications/networking/nextdns/default.nix
index c06291c719e8e..d3d6d5aa8069e 100644
--- a/pkgs/applications/networking/nextdns/default.nix
+++ b/pkgs/applications/networking/nextdns/default.nix
@@ -2,18 +2,16 @@
 
 buildGoModule rec {
   pname = "nextdns";
-  version = "1.37.10";
+  version = "1.37.11";
 
   src = fetchFromGitHub {
     owner = "nextdns";
     repo = "nextdns";
     rev = "v${version}";
-    sha256 = "sha256-iwxgDBIuTClikvXF+3mCjFKKV0upN+K+aL85ewYkMXo=";
+    sha256 = "sha256-BOmu4OjDq1IwsPjbqzV2OtvKpaYFqP/XdYL2Ug28TbU=";
   };
 
-  vendorSha256 = "sha256-6hWD05lXteqL7egj9tiRVHlevKM33i+a+zBUZs7PF7I=";
-
-  doCheck = false;
+  vendorSha256 = "sha256-M2PlvUsEG3Um+NqbpHdtu9g+Gj6jSXZ9YZ7t1MwjjdI=";
 
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
diff --git a/pkgs/applications/networking/owncloud-client/default.nix b/pkgs/applications/networking/owncloud-client/default.nix
index 006310e912b2f..992058bdb3052 100644
--- a/pkgs/applications/networking/owncloud-client/default.nix
+++ b/pkgs/applications/networking/owncloud-client/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "owncloud-client";
-  version = "2.10.0.6519";
+  version = "2.10.1.7187";
 
   src = fetchurl {
     url = "https://download.owncloud.com/desktop/ownCloud/stable/${version}/source/ownCloud-${version}.tar.xz";
-    sha256 = "sha256-HDH8s/VPeOAbkyrfE7hbhePhtWcx1IUdlhDCnodomh8=";
+    sha256 = "sha256-SNabKv5z7viDI3XDQ2mWjEgFKAGSR5K9sI3Tu5eZbwU=";
   };
 
   nativeBuildInputs = [ pkg-config cmake extra-cmake-modules ];
diff --git a/pkgs/tools/networking/p2p/jesec-rtorrent/rtorrent.nix b/pkgs/applications/networking/p2p/jesec-rtorrent/default.nix
index 7fe444228d374..a760a0f96c35c 100644
--- a/pkgs/tools/networking/p2p/jesec-rtorrent/rtorrent.nix
+++ b/pkgs/applications/networking/p2p/jesec-rtorrent/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jesec-rtorrent";
-  version = "0.9.8-r15";
+  version = "0.9.8-r16";
 
   src = fetchFromGitHub {
     owner = "jesec";
     repo = "rtorrent";
     rev = "v${version}";
-    hash = "sha256-yYOw8wsiQd478JijLgPtEWsw2/ewd46re+t9D705rmk=";
+    hash = "sha256-i7c1jSawHshj1kaXl8tdpelIKU24okeg9K5/+ht6t2k=";
   };
 
   nativeBuildInputs = [
@@ -39,8 +39,8 @@ stdenv.mkDerivation rec {
   ++ lib.optional (!jsonRpcSupport) "-DUSE_JSONRPC=NO"
   ++ lib.optional (!xmlRpcSupport) "-DUSE_XMLRPC=NO";
 
-
   doCheck = true;
+
   checkInputs = [
     gtest
   ];
diff --git a/pkgs/tools/networking/p2p/jesec-rtorrent/libtorrent.nix b/pkgs/applications/networking/p2p/jesec-rtorrent/libtorrent.nix
index d46e4a159399a..ac7e15b6a2e5b 100644
--- a/pkgs/tools/networking/p2p/jesec-rtorrent/libtorrent.nix
+++ b/pkgs/applications/networking/p2p/jesec-rtorrent/libtorrent.nix
@@ -9,27 +9,31 @@
 
 stdenv.mkDerivation rec {
   pname = "jesec-libtorrent";
-  version = "0.13.8-r3";
+  version = "0.13.8-r4";
 
   src = fetchFromGitHub {
     owner = "jesec";
     repo = "libtorrent";
     rev = "v${version}";
-    hash = "sha256-S3DOKzXkvU+ZJxfrxwLXCVBnepzmiZ+3iiQqz084BEk=";
+    hash = "sha256-jC/hgGSi2qy+ToZgdxl1PhASLYbUL0O8trX0th2v5H0=";
   };
 
   nativeBuildInputs = [
     cmake
   ];
+
   buildInputs = [
     openssl
     zlib
   ];
 
-  doCheck = true;
+  # Disabled because a test is flaky; see https://github.com/jesec/libtorrent/issues/4.
+  # doCheck = true;
+
   preCheck = ''
     export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD
   '';
+
   checkInputs = [
     gtest
   ];
diff --git a/pkgs/tools/networking/p2p/rakshasa-rtorrent/rtorrent.nix b/pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix
index f166f6d0e29f2..f166f6d0e29f2 100644
--- a/pkgs/tools/networking/p2p/rakshasa-rtorrent/rtorrent.nix
+++ b/pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix
diff --git a/pkgs/tools/networking/p2p/rakshasa-rtorrent/libtorrent.nix b/pkgs/applications/networking/p2p/rakshasa-rtorrent/libtorrent.nix
index fff4cbb36cf62..fff4cbb36cf62 100644
--- a/pkgs/tools/networking/p2p/rakshasa-rtorrent/libtorrent.nix
+++ b/pkgs/applications/networking/p2p/rakshasa-rtorrent/libtorrent.nix
diff --git a/pkgs/applications/networking/p2p/tribler/default.nix b/pkgs/applications/networking/p2p/tribler/default.nix
index d1df2fea444c0..e74db03b5332c 100644
--- a/pkgs/applications/networking/p2p/tribler/default.nix
+++ b/pkgs/applications/networking/p2p/tribler/default.nix
@@ -74,10 +74,10 @@ stdenv.mkDerivation rec {
     makeWrapper ${python3.pkgs.python}/bin/python $out/bin/tribler \
         --set QT_QPA_PLATFORM_PLUGIN_PATH ${qt5.qtbase.bin}/lib/qt-*/plugins/platforms \
         --set QT_PLUGIN_PATH "${qt5.qtsvg.bin}/${qt5.qtbase.qtPluginPrefix}" \
-        --set _TRIBLERPATH $out/src \
+        --set _TRIBLERPATH "$out/src" \
         --set PYTHONPATH $out/src/tribler-core:$out/src/tribler-common:$out/src/tribler-gui:$program_PYTHONPATH \
         --set NO_AT_BRIDGE 1 \
-        --run 'cd $_TRIBLERPATH' \
+        --chdir "$out/src" \
         --add-flags "-O $out/src/run_tribler.py"
 
     mkdir -p $out/share/applications $out/share/icons
diff --git a/pkgs/applications/networking/ping/default.nix b/pkgs/applications/networking/ping/default.nix
deleted file mode 100644
index 6074b1a51ccb7..0000000000000
--- a/pkgs/applications/networking/ping/default.nix
+++ /dev/null
@@ -1,76 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, nix-update-script
-, meson
-, ninja
-, vala
-, pkg-config
-, pantheon
-, python3
-, glib
-, gtk3
-, gtksourceview
-, json-glib
-, libsoup
-, libgee
-, wrapGAppsHook
-}:
-
-stdenv.mkDerivation rec {
-  pname = "ping";
-  version = "0.6.0";
-
-  src = fetchFromGitHub {
-    owner = "jeremyvaartjes";
-    repo = "ping";
-    rev = version;
-    sha256 = "1h9cdy2jxa2ffykjg89j21hazls32z9yyv3g0x07x3vizzl5xcij";
-  };
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    vala
-    pkg-config
-    python3
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    glib
-    gtk3
-    gtksourceview
-    json-glib
-    libgee
-    libsoup
-    pantheon.granite
-  ];
-
-  postPatch = ''
-    chmod +x meson/post_install.py
-    patchShebangs meson/post_install.py
-  '';
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = pname;
-    };
-  };
-
-  meta = with lib; {
-    description = "A helpful tool that lets you debug what part of your API is causing you issues";
-    homepage = "https://github.com/jeremyvaartjes/ping";
-    maintainers = with maintainers; [ xiorcale ] ++ teams.pantheon.members;
-    platforms = platforms.linux;
-    license = licenses.gpl3;
-    mainProgram = "com.github.jeremyvaartjes.ping";
-    # Does not build with vala 0.48 or later
-    # ../src/Application.vala:696.46-696.57: error: Assignment: Cannot convert from
-    # `GLib.HashTable<weak string,weak string>' to `GLib.HashTable<string,string>?'
-    #                     HashTable<string,string> tempDataList = Soup.Form.decode(testObjs[id].data);
-    #                                              ^^^^^^^^^^^^
-    # Upstream has no activity since 28 Dec 2020
-    broken = true;
-  };
-}
diff --git a/pkgs/applications/networking/pjsip/default.nix b/pkgs/applications/networking/pjsip/default.nix
index 8b0fad83b9600..6406337541f85 100644
--- a/pkgs/applications/networking/pjsip/default.nix
+++ b/pkgs/applications/networking/pjsip/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, openssl, libsamplerate, alsa-lib, AppKit }:
+{ lib, stdenv, fetchFromGitHub, openssl, libsamplerate, alsa-lib, AppKit, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "pjsip";
@@ -13,6 +13,11 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./fix-aarch64.patch
+    (fetchpatch {
+      name = "CVE-2022-24764.patch";
+      url = "https://github.com/pjsip/pjproject/commit/560a1346f87aabe126509bb24930106dea292b00.patch";
+      sha256 = "1fy78v3clm0gby7qcq3ny6f7d7f4qnn01lkqq67bf2s85k2phisg";
+    })
   ];
 
   buildInputs = [ openssl libsamplerate ]
@@ -38,6 +43,7 @@ stdenv.mkDerivation rec {
     homepage = "https://pjsip.org/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ olynch ];
+    mainProgram = "pjsua";
     platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/applications/networking/protonvpn-gui/default.nix b/pkgs/applications/networking/protonvpn-gui/default.nix
index ecfde0a39c200..032d9e3d5b83c 100644
--- a/pkgs/applications/networking/protonvpn-gui/default.nix
+++ b/pkgs/applications/networking/protonvpn-gui/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonApplication rec {
   pname = "protonvpn-gui";
-  version = "1.7.0";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "ProtonVPN";
     repo = "linux-app";
-    rev = version;
-    sha256 = "sha256-uzooFQBq2mhqTBr/cgea5cVQ889P70sgSk2vjXBQEfw=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-Od12qHiyXHu2JnjYV7amZz5xxL+eiWUVbcG5Tbcrr28=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/remote/freerdp/default.nix b/pkgs/applications/networking/remote/freerdp/default.nix
index 852fcf68987eb..99a81fd1a809e 100644
--- a/pkgs/applications/networking/remote/freerdp/default.nix
+++ b/pkgs/applications/networking/remote/freerdp/default.nix
@@ -52,13 +52,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "freerdp";
-  version = "2.6.1";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "FreeRDP";
     repo = "FreeRDP";
     rev = version;
-    sha256 = "sha256-+yKdB/glNf74drv9EvBwVMWrqr5ADBkSJVVDH+UKb2U=";
+    sha256 = "sha256-XBYRhbwknVa8eXxk31b7n9gMWBcTjCecDN+j2FGcpw0=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/remote/rustdesk/default.nix b/pkgs/applications/networking/remote/rustdesk/default.nix
index 677629dbcfbaa..2850995bd13cb 100644
--- a/pkgs/applications/networking/remote/rustdesk/default.nix
+++ b/pkgs/applications/networking/remote/rustdesk/default.nix
@@ -86,7 +86,7 @@ rustPlatform.buildRustPackage rec {
     ln -s ${libsciter}/lib/libsciter-gtk.so $out/lib/rustdesk
 
     makeWrapper $out/lib/rustdesk/rustdesk $out/bin/rustdesk \
-      --run "cd $out/share"
+      --chdir "$out/share"
 
     cp -a $src/src/ui $out/share/src
 
diff --git a/pkgs/applications/networking/remote/vmware-horizon-client/default.nix b/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
index f114f8a3091b5..f3461a4265861 100644
--- a/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
+++ b/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
@@ -9,7 +9,7 @@
 , configText ? ""
 }:
 let
-  version = "2111";
+  version = "2203";
 
   sysArch =
     if stdenv.hostPlatform.system == "x86_64-linux" then "x64"
@@ -33,8 +33,8 @@ let
     name = "vmwareHorizonClientFiles";
     inherit version;
     src = fetchurl {
-      url = "https://download3.vmware.com/software/view/viewclients/CART22FH2/VMware-Horizon-Client-Linux-2111-8.4.0-18957622.tar.gz";
-      sha256 = "2f79d2d8d34e6f85a5d21a3350618c4763d60455e7d68647ea40715eaff486f7";
+      url = "https://download3.vmware.com/software/CART23FQ1_LIN_2203_TARBALL/VMware-Horizon-Client-Linux-2203-8.5.0-19586897.tar.gz";
+      sha256 = "27429dddaeedfa8b701d7aa7868f60ad58efa42687d7f27e84375fda9f5cd137";
     };
     nativeBuildInputs = [ makeWrapper ];
     installPhase = ''
diff --git a/pkgs/applications/networking/resilio-sync/default.nix b/pkgs/applications/networking/resilio-sync/default.nix
index fdd4ebdbd92f5..bbce0e1d350e3 100644
--- a/pkgs/applications/networking/resilio-sync/default.nix
+++ b/pkgs/applications/networking/resilio-sync/default.nix
@@ -1,25 +1,25 @@
 { lib, stdenv, fetchurl, ... }:
 
-let
-  arch = {
-    x86_64-linux = "x64";
-    i686-linux = "i386";
-    aarch64-linux = "arm64";
-  }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
-  libPath = lib.makeLibraryPath [ stdenv.cc.libc ];
-
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "resilio-sync";
-  version = "2.7.2";
+  version = "2.7.3";
 
-  src = fetchurl {
-    url = "https://download-cdn.resilio.com/${version}/linux-${arch}/resilio-sync_${arch}.tar.gz";
-    sha256 = {
-      x86_64-linux = "0gar5lzv1v4yqmypwqsjnfb64vffzn8mw9vnjr733fgf1pmr57hf";
-      i686-linux   = "1bws7r86h1vysjkhyvp2zk8yvxazmlczvhjlcayldskwq48iyv6w";
-      aarch64-linux = "0j8wk5cf8bcaaqxi8gnqf1mpv8nyfjyr4ibls7jnn2biqq767af2";
-    }.${stdenv.hostPlatform.system};
-  };
+  src = {
+    x86_64-linux = fetchurl {
+      url = "https://download-cdn.resilio.com/${version}/linux-x64/resilio-sync_x64.tar.gz";
+      sha256 = "sha256-DYQs9KofHkvtlsRQHRLwQHoHwSZkr40Ih0RVAw2xv3M=";
+    };
+
+    i686-linux = fetchurl {
+      url = "https://download-cdn.resilio.com/${version}/linux-i386/resilio-sync_i386.tar.gz";
+      sha256 = "sha256-PFKVBs0KthG4tuvooHkAciPhNQP0K8oi2LyoRUs5V7I=";
+    };
+
+    aarch64-linux = fetchurl {
+      url = "https://download-cdn.resilio.com/${version}/linux-arm64/resilio-sync_arm64.tar.gz";
+      sha256 = "sha256-o2DlYOBTkFhQMEDJySlVSNlVqLNbBzacyv2oTwxrXto=";
+    };
+  }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
   dontStrip = true; # Don't strip, otherwise patching the rpaths breaks
   sourceRoot = ".";
@@ -28,7 +28,7 @@ in stdenv.mkDerivation rec {
     install -D rslsync "$out/bin/rslsync"
     patchelf \
       --interpreter "$(< $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath ${libPath} "$out/bin/rslsync"
+      --set-rpath ${lib.makeLibraryPath [ stdenv.cc.libc ]} "$out/bin/rslsync"
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/seahub/default.nix b/pkgs/applications/networking/seahub/default.nix
index 8c26b72908368..1338f3e56f8ef 100644
--- a/pkgs/applications/networking/seahub/default.nix
+++ b/pkgs/applications/networking/seahub/default.nix
@@ -1,4 +1,8 @@
-{ lib, fetchFromGitHub, python3, makeWrapper }:
+{ lib
+, fetchFromGitHub
+, python3
+, makeWrapper
+}:
 let
   # Seahub 8.x.x does not support django-webpack-loader >=1.x.x
   python = python3.override {
@@ -25,9 +29,12 @@ python.pkgs.buildPythonApplication rec {
   };
 
   dontBuild = true;
+
   doCheck = false; # disabled because it requires a ccnet environment
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [
+    makeWrapper
+  ];
 
   propagatedBuildInputs = with python.pkgs; [
     django
@@ -44,7 +51,7 @@ python.pkgs.buildPythonApplication rec {
     djangorestframework
     openpyxl
     requests
-    requests_oauthlib
+    requests-oauthlib
     pyjwt
     pycryptodome
     qrcode
@@ -65,10 +72,10 @@ python.pkgs.buildPythonApplication rec {
   };
 
   meta = with lib; {
-    homepage = "https://github.com/haiwen/seahub";
     description = "The web end of seafile server";
+    homepage = "https://github.com/haiwen/seahub";
     license = licenses.asl20;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ greizgh schmittlauch ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/seaweedfs/default.nix b/pkgs/applications/networking/seaweedfs/default.nix
index 4b6ae464e7d93..bd6df5ef6bee6 100644
--- a/pkgs/applications/networking/seaweedfs/default.nix
+++ b/pkgs/applications/networking/seaweedfs/default.nix
@@ -1,32 +1,33 @@
 { lib
 , fetchFromGitHub
 , buildGoModule
-, testVersion
+, testers
 , seaweedfs
 }:
 
 buildGoModule rec {
   pname = "seaweedfs";
-  version = "2.90";
+  version = "2.91";
 
   src = fetchFromGitHub {
     owner = "chrislusf";
     repo = "seaweedfs";
     rev = version;
-    sha256 = "sha256-PZe/yUJGcj3/nIYaf7eAbiJIA2YASJ8nlMLIWWKJrbo=";
+    sha256 = "sha256-lpr+Z4INDUrMUArR9yU/US/d7rhQ3AcTS3bh/suOe4M=";
   };
 
-  vendorSha256 = "sha256-E6bMpWzXb5dMPXkrVSJJWXJYvkmI3cNRseMgrQNpCl4=";
+  vendorSha256 = "sha256-T8JUc8UqdgBADWfQL1oY0lrwOOKTmbBiI7rtNiDvlGo=";
 
   subPackages = [ "weed" ];
 
   passthru.tests.version =
-    testVersion { package = seaweedfs; command = "weed version"; };
+    testers.testVersion { package = seaweedfs; command = "weed version"; };
 
   meta = with lib; {
     description = "Simple and highly scalable distributed file system";
     homepage = "https://github.com/chrislusf/seaweedfs";
     maintainers = with maintainers; [ cmacrae raboof ];
+    mainProgram = "weed";
     license = licenses.asl20;
   };
 }
diff --git a/pkgs/applications/networking/shellhub-agent/default.nix b/pkgs/applications/networking/shellhub-agent/default.nix
index d698601cb190e..7384f7c350a5a 100644
--- a/pkgs/applications/networking/shellhub-agent/default.nix
+++ b/pkgs/applications/networking/shellhub-agent/default.nix
@@ -8,18 +8,18 @@
 
 buildGoModule rec {
   pname = "shellhub-agent";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "shellhub-io";
     repo = "shellhub";
     rev = "v${version}";
-    sha256 = "A1634b3uxlILMpx/9jpCIApqAqofvD4ZPasVKL29Gtc=";
+    sha256 = "E1TX3GBVKn0tXloNhyiXOtDwSlO7mwXJ6zaOSHKZEFc=";
   };
 
   modRoot = "./agent";
 
-  vendorSha256 = "sha256-LxJtLQr8djoRGznT5hL2agTgtZY6pFS8Zo0BwHDmugc=";
+  vendorSha256 = "sha256-sPb49tRUHhwow7+IKiN33sgWYAa3lTpOD1vh8e5Wy68=";
 
   ldflags = [ "-s" "-w" "-X main.AgentVersion=v${version}" ];
 
diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix
index 931606f324898..0947686144e54 100644
--- a/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchurl, pkg-config, pcre, perl, flex, bison, gettext, libpcap, libnl, c-ares
+{ lib, stdenv, buildPackages, fetchurl, pkg-config, pcre, perl, flex, bison, gettext, libpcap, libnl, c-ares
 , gnutls, libgcrypt, libgpg-error, geoip, openssl, lua5, python3, libcap, glib
-, libssh, nghttp2, zlib, cmake, makeWrapper
+, libssh, nghttp2, zlib, cmake, makeWrapper, wrapGAppsHook
 , withQt ? true, qt5 ? null
 , ApplicationServices, SystemConfiguration, gmp
 , asciidoctor
@@ -29,21 +29,30 @@ in stdenv.mkDerivation {
     "-DENABLE_APPLICATION_BUNDLE=${if withQt && stdenv.isDarwin then "ON" else "OFF"}"
     # Fix `extcap` and `plugins` paths. See https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=16444
     "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DLEMON_C_COMPILER=cc"
+  ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+    "-DHAVE_C99_VSNPRINTF_EXITCODE=0"
+    "-DHAVE_C99_VSNPRINTF_EXITCODE__TRYRUN_OUTPUT="
   ];
 
   # Avoid referencing -dev paths because of debug assertions.
   NIX_CFLAGS_COMPILE = [ "-DQT_NO_DEBUG" ];
 
-  nativeBuildInputs = [ asciidoctor bison cmake flex makeWrapper pkg-config ] ++ optional withQt qt5.wrapQtAppsHook;
+  nativeBuildInputs = [ asciidoctor bison cmake flex makeWrapper pkg-config python3 perl ]
+    ++ optionals withQt [ qt5.wrapQtAppsHook wrapGAppsHook ];
+
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
 
   buildInputs = [
-    gettext pcre perl libpcap lua5 libssh nghttp2 openssl libgcrypt
-    libgpg-error gnutls geoip c-ares python3 glib zlib
+    gettext pcre libpcap lua5 libssh nghttp2 openssl libgcrypt
+    libgpg-error gnutls geoip c-ares glib zlib
   ] ++ optionals withQt  (with qt5; [ qtbase qtmultimedia qtsvg qttools ])
     ++ optionals stdenv.isLinux  [ libcap libnl ]
     ++ optionals stdenv.isDarwin [ SystemConfiguration ApplicationServices gmp ]
     ++ optionals (withQt && stdenv.isDarwin) (with qt5; [ qtmacextras ]);
 
+  strictDeps = true;
+
   patches = [ ./wireshark-lookup-dumpcap-in-path.patch ];
 
   postPatch = ''
@@ -85,6 +94,12 @@ in stdenv.mkDerivation {
 
   dontFixCmake = true;
 
+  # Prevent double-wrapping, inject wrapper args manually instead.
+  dontWrapGApps = true;
+  preFixup = ''
+    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
   shellHook = ''
     # to be able to run the resulting binary
     export WIRESHARK_RUN_FROM_BUILD_DIRECTORY=1
diff --git a/pkgs/applications/networking/soju/default.nix b/pkgs/applications/networking/soju/default.nix
index f5ffc03dc0f2e..dc20578cf021e 100644
--- a/pkgs/applications/networking/soju/default.nix
+++ b/pkgs/applications/networking/soju/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "soju";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromSourcehut {
     owner = "~emersion";
     repo = "soju";
     rev = "v${version}";
-    sha256 = "sha256-j7LwWBBJvNUeg0+P632HaGliVtrrCD0VNxkynaZzidQ=";
+    sha256 = "sha256-4ixPEnSa1m52Hu1dzxMG8c0bkqGN04vRlIzvdZ/ES4A=";
   };
 
-  vendorSha256 = "sha256-fDfH2pQ5MtZDjiGx26vS5dBzxejVXPfflLX8N8VcJTA=";
+  vendorSha256 = "sha256-UVFi/QK2zwzhBkPXEJLYc5WSu3OOvWTVVGkMhrrufyc=";
 
   subPackages = [
     "cmd/soju"
diff --git a/pkgs/applications/networking/syncplay/default.nix b/pkgs/applications/networking/syncplay/default.nix
index b3c40b0f2fcd1..4927bc51b232c 100644
--- a/pkgs/applications/networking/syncplay/default.nix
+++ b/pkgs/applications/networking/syncplay/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildPythonApplication, pyside2, shiboken2, twisted, certifi, qt5 }:
+{ lib, fetchFromGitHub, buildPythonApplication, pyside2, twisted, certifi, qt5, enableGUI ? true }:
 
 buildPythonApplication rec {
   pname = "syncplay";
@@ -13,12 +13,14 @@ buildPythonApplication rec {
     sha256 = "0qm3qn4a1nahhs7q81liz514n9blsi107g9s9xfw2i8pzi7v9v0v";
   };
 
-  propagatedBuildInputs = [ pyside2 shiboken2 twisted certifi ] ++ twisted.extras.tls;
-  nativeBuildInputs = [ qt5.wrapQtAppsHook ];
+  propagatedBuildInputs = [ twisted certifi ]
+    ++ twisted.extras.tls
+    ++ lib.optional enableGUI pyside2;
+  nativeBuildInputs = lib.optionals enableGUI [ qt5.wrapQtAppsHook ];
 
   makeFlags = [ "DESTDIR=" "PREFIX=$(out)" ];
 
-  postFixup = ''
+  postFixup = lib.optionalString enableGUI ''
     wrapQtApp $out/bin/syncplay
   '';
 
diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix
index 31d0ce461d09b..e4088c3c460e8 100644
--- a/pkgs/applications/networking/syncthing/default.nix
+++ b/pkgs/applications/networking/syncthing/default.nix
@@ -4,16 +4,16 @@ let
   common = { stname, target, postInstall ? "" }:
     buildGoModule rec {
       pname = stname;
-      version = "1.19.1";
+      version = "1.19.2";
 
       src = fetchFromGitHub {
         owner  = "syncthing";
         repo   = "syncthing";
         rev    = "v${version}";
-        sha256 = "sha256-/CRDdKUeLQ/jSLrd44Tjbb0lfgFFnJkpmFEYZJFQHY8=";
+        sha256 = "sha256-Zday5lBsRCl00vnnXNKu6VMlq8zmwgI0I+73Pir7ss4=";
       };
 
-      vendorSha256 = "sha256-GBDGckGewo5Yp8zwAKwwXkSP5lx0fQR4AHQFkzO7Q0Q=";
+      vendorSha256 = "sha256-2yK0eE34cA7U1nDWRp/JigFpeveipmCuL4jP+94T3Sg=";
 
       doCheck = false;
 
diff --git a/pkgs/applications/networking/synology-drive-client/default.nix b/pkgs/applications/networking/synology-drive-client/default.nix
index 459e38970ddd0..3184c192b127f 100644
--- a/pkgs/applications/networking/synology-drive-client/default.nix
+++ b/pkgs/applications/networking/synology-drive-client/default.nix
@@ -1,9 +1,9 @@
 { stdenv, lib, qt5, fetchurl, autoPatchelfHook, dpkg, glibc, cpio, xar, undmg, gtk3, pango }:
 let
   pname = "synology-drive-client";
-  buildNumber = "12682";
-  version = "3.0.2";
   baseUrl = "https://global.download.synology.com/download/Utility/SynologyDriveClient";
+  buildNumber = "12920";
+  version = "3.1.0";
   meta = with lib; {
     description = "Desktop application to synchronize files and folders between the computer and the Synology Drive server.";
     homepage = "https://www.synology.com/en-global/dsm/feature/drive";
@@ -17,7 +17,7 @@ let
 
     src = fetchurl {
       url = "${baseUrl}/${version}-${buildNumber}/Ubuntu/Installer/x86_64/synology-drive-client-${buildNumber}.x86_64.deb";
-      sha256 = "19fd2r39lb7bb6vkxfxyq0gp3l7pk5wy9fl0r7qwhym2jpi8yv6l";
+      sha256 = "sha256-UAO/LwqPchIMhjdQP4METjVorMJsbvIDRkp4JxtZgOs=";
     };
 
     nativeBuildInputs = [ autoPatchelfHook dpkg ];
@@ -47,7 +47,7 @@ let
 
     src = fetchurl {
       url = "${baseUrl}/${version}-${buildNumber}/Mac/Installer/synology-drive-client-${buildNumber}.dmg";
-      sha256 = "1mlv8gxzivgxm59mw1pd63yq9d7as79ihm7166qyy0h0b0m04q2m";
+      sha256 = "15wici8ycil1mfh5cf89rfan4kb93wfkdsd4kmpvzjj4bnddwlxa";
     };
 
     nativeBuildInputs = [ cpio xar undmg ];
diff --git a/pkgs/applications/networking/tetrd/default.nix b/pkgs/applications/networking/tetrd/default.nix
index 94e7950ecdbba..937992a63d718 100644
--- a/pkgs/applications/networking/tetrd/default.nix
+++ b/pkgs/applications/networking/tetrd/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
     description = "Share your internet connection from your device to your PC and vice versa through a USB cable";
     homepage = "https://tetrd.app";
     license = licenses.unfree;
-    platforms = platforms.all;
+    platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ Madouura ];
   };
 }
diff --git a/pkgs/applications/office/banking/default.nix b/pkgs/applications/office/banking/default.nix
index 8f2636395292a..c46fba171495a 100644
--- a/pkgs/applications/office/banking/default.nix
+++ b/pkgs/applications/office/banking/default.nix
@@ -5,27 +5,26 @@
 , appstream-glib
 , desktop-file-utils
 , glib
-, gtk3
 , libxml2
 , meson
 , ninja
 , pkg-config
 , wrapGAppsHook
 , gobject-introspection
-, libhandy
+, libadwaita
 , librsvg
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "banking";
-  version = "0.3.0";
+  version = "0.4.0";
   format = "other";
 
   src = fetchFromGitLab {
     owner = "tabos";
     repo = "banking";
     rev = version;
-    sha256 = "1w5x9iczw5hb9bfdm1df37n8xhdrida1yfrd82k9l8hb1k4q3h9d";
+    sha256 = "sha256-VGNCSirQslRfLIFeo375BNlHujoNXm+s55Ty+hB+ZRI=";
   };
 
   patches = [
@@ -35,17 +34,21 @@ python3.pkgs.buildPythonApplication rec {
       url = "https://gitlab.com/tabos/banking/-/commit/c3cc9afc380fe666ae6e331aa8a97659c60397a4.patch";
       sha256 = "r9n9l47XU4Tg4U5sfiFdGkbG8QB7O4ol9CB1ya06yOc=";
     })
+    # fix build with libadwaita 1.0.0
+    (fetchpatch {
+      url = "https://gitlab.com/tabos/banking/-/commit/27ac4a89ba6047005d43de71a469ef30d1fda8b5.patch";
+      hash = "sha256-dpDjdYf3gDsyFMTfGes+x27yUxKEnKjLulJxX2encG0=";
+    })
   ];
 
   postPatch = ''
-    patchShebangs meson_post_install.py
+    patchShebangs meson_post_conf.py meson_post_install.py
   '';
 
   nativeBuildInputs = [
     appstream-glib # for appstream-util
     desktop-file-utils # for desktop-file-validate
     glib # for glib-compile-resources
-    gtk3 # for gtk-update-icon-cache
     libxml2 # for xmllint
     meson
     ninja
@@ -55,8 +58,7 @@ python3.pkgs.buildPythonApplication rec {
 
   buildInputs = [
     gobject-introspection
-    gtk3
-    libhandy
+    libadwaita
     librsvg
   ];
 
diff --git a/pkgs/applications/office/buho/default.nix b/pkgs/applications/office/buho/default.nix
new file mode 100644
index 0000000000000..997b1c9d502d5
--- /dev/null
+++ b/pkgs/applications/office/buho/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, mkDerivation
+, fetchFromGitLab
+, cmake
+, extra-cmake-modules
+, applet-window-buttons
+, karchive
+, kcoreaddons
+, ki18n
+, kio
+, kirigami2
+, mauikit
+, mauikit-filebrowsing
+, mauikit-accounts
+, mauikit-texteditor
+, qtmultimedia
+, qtquickcontrols2
+}:
+
+mkDerivation rec {
+  pname = "buho";
+  version = "2.1.1";
+
+  src = fetchFromGitLab {
+    domain = "invent.kde.org";
+    owner = "maui";
+    repo = "buho";
+    rev = "v${version}";
+    sha256 = "sha256-rHjjvjRY2WsyZfj3fzp46copZ1g2ae6PVv9lBNZDzcI=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  buildInputs = [
+    applet-window-buttons
+    karchive
+    kcoreaddons
+    ki18n
+    kio
+    kirigami2
+    mauikit
+    mauikit-filebrowsing
+    mauikit-accounts
+    mauikit-texteditor
+    qtmultimedia
+    qtquickcontrols2
+  ];
+
+  meta = with lib; {
+    description = "Task and Note Keeper";
+    homepage = "https://invent.kde.org/maui/buho";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ onny ];
+  };
+}
diff --git a/pkgs/applications/office/fava/default.nix b/pkgs/applications/office/fava/default.nix
index 92f48eb91b82c..5833e5e4adf3b 100644
--- a/pkgs/applications/office/fava/default.nix
+++ b/pkgs/applications/office/fava/default.nix
@@ -1,14 +1,26 @@
-{ lib, python3 }:
+{ lib, python3, fetchpatch }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "fava";
-  version = "1.19";
+  version = "1.21";
+  format = "pyproject";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "def7c0210bf0ce8dfffdb46ce21b3efcf71eba5a4e903565258419e4c53c2d43";
+    sha256 = "sha256-0aFCKEjmXn6yddgNMi9t4rzqHcN7VBLoz3LEg9apmNY=";
   };
 
+  patches = [
+    (fetchpatch {
+      # Update werkzeug compatibility
+      url = "https://github.com/beancount/fava/commit/5a99417a42e1d739b1e57fae2d01ff1d146dcbc2.patch";
+      hash = "sha256-Y6IcxZAcFJEYgT8/xBIABdkP+pUdQX1EgSS5uNdSJUE=";
+      excludes = [
+        ".pre-commit-config.yaml"
+      ];
+    })
+  ];
+
   nativeBuildInputs = with python3.pkgs; [ setuptools-scm ];
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/applications/office/foliate/default.nix b/pkgs/applications/office/foliate/default.nix
index 7eff0ac909766..a2d0d73f79034 100644
--- a/pkgs/applications/office/foliate/default.nix
+++ b/pkgs/applications/office/foliate/default.nix
@@ -20,7 +20,6 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    echo "fixing wrapper"
     sed -i "1 a imports.package._findEffectiveEntryPointName = () => 'com.github.johnfactotum.Foliate';" $out/bin/.com.github.johnfactotum.Foliate-wrapped
     ln -s $out/bin/com.github.johnfactotum.Foliate $out/bin/foliate
   '';
diff --git a/pkgs/applications/office/gnumeric/default.nix b/pkgs/applications/office/gnumeric/default.nix
index 13b0c84cfaa59..c9b4ef1391265 100644
--- a/pkgs/applications/office/gnumeric/default.nix
+++ b/pkgs/applications/office/gnumeric/default.nix
@@ -7,11 +7,11 @@ let
   inherit (python3Packages) python pygobject3;
 in stdenv.mkDerivation rec {
   pname = "gnumeric";
-  version = "1.12.51";
+  version = "1.12.52";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "oA5sbk7N2tq9mwrhgBPXsFk3/cuPmq1ac7lZI8eusd0=";
+    sha256 = "c89zBJoiodgoUGJ1ssk3jsN8X/N7aLsfL0lPDWQAgjs=";
   };
 
   configureFlags = [ "--disable-component" ];
@@ -38,6 +38,7 @@ in stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     homepage = "http://projects.gnome.org/gnumeric/";
     platforms = platforms.unix;
+    broken = with stdenv; isDarwin && isAarch64;
     maintainers = [ maintainers.vcunat ];
   };
 }
diff --git a/pkgs/applications/office/jameica/default.nix b/pkgs/applications/office/jameica/default.nix
index d5c4dcb65011c..6e7f0f3d517bd 100644
--- a/pkgs/applications/office/jameica/default.nix
+++ b/pkgs/applications/office/jameica/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
         lib.optionalString stdenv.isDarwin ''-Xdock:name="Jameica" -XstartOnFirstThread''
       } de.willuhn.jameica.Main" \
       --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath buildInputs} \
-      --run "cd $out/share/java/"
+      --chdir "$out/share/java/"
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/office/khronos/default.nix b/pkgs/applications/office/khronos/default.nix
index 668b36324f62f..55c672a1dc0d6 100644
--- a/pkgs/applications/office/khronos/default.nix
+++ b/pkgs/applications/office/khronos/default.nix
@@ -7,7 +7,6 @@
 , vala
 , pkg-config
 , desktop-file-utils
-, python3
 , glib
 , gtk4
 , json-glib
@@ -18,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "khronos";
-  version = "3.6.6";
+  version = "3.7.0";
 
   src = fetchFromGitHub {
     owner = "lainsce";
     repo = pname;
     rev = version;
-    sha256 = "sha256-EFoW/2IZuCo6sg7q87XRrJJ7dmYtVZr2bJQUEiiMiVI=";
+    sha256 = "sha256-k3U8ICnwMbR6vN+gELWytI2Etri5lvbE6AX6lUpr7dQ=";
   };
 
   nativeBuildInputs = [
@@ -33,7 +32,6 @@ stdenv.mkDerivation rec {
     ninja
     vala
     pkg-config
-    python3
     wrapGAppsHook4
   ];
 
@@ -45,11 +43,6 @@ stdenv.mkDerivation rec {
     libgee
   ];
 
-  postPatch = ''
-    chmod +x build-aux/post_install.py
-    patchShebangs build-aux/post_install.py
-  '';
-
   passthru = {
     updateScript = nix-update-script {
       attrPath = pname;
diff --git a/pkgs/applications/office/ledger/default.nix b/pkgs/applications/office/ledger/default.nix
index 5478382cbd83d..0ea9b908ada63 100644
--- a/pkgs/applications/office/ledger/default.nix
+++ b/pkgs/applications/office/ledger/default.nix
@@ -16,8 +16,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     (boost.override { enablePython = usePython; python = python3; })
-    gmp mpfr libedit python3 gnused
-  ];
+    gmp mpfr libedit gnused
+  ] ++ lib.optional usePython python3;
 
   nativeBuildInputs = [ cmake texinfo ];
 
diff --git a/pkgs/applications/office/morgen/default.nix b/pkgs/applications/office/morgen/default.nix
index a9fce9ff8edb0..e3390e54ee397 100644
--- a/pkgs/applications/office/morgen/default.nix
+++ b/pkgs/applications/office/morgen/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "morgen";
-  version = "2.5.0";
+  version = "2.5.2";
 
   src = fetchurl {
     url = "https://download.todesktop.com/210203cqcj00tw1/morgen-${version}.deb";
-    sha256 = "sha256-6hBhfJ18ROCfmqoxrJZ5TiYCFb1xZKsJeobXFy5yfQM=";
+    sha256 = "sha256-KU58UjhFDEJGzHEGVbrii8a9cZwr7ulkQgK1Fea9smk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/paperless-ng/default.nix b/pkgs/applications/office/paperless-ngx/default.nix
index ab140f90ceda9..ec83da852aba4 100644
--- a/pkgs/applications/office/paperless-ng/default.nix
+++ b/pkgs/applications/office/paperless-ngx/default.nix
@@ -18,16 +18,6 @@ let
   py = python3.override {
     packageOverrides = self: super: {
       django = super.django_3;
-      # Avoid warning in django-q versions > 1.3.4
-      # https://github.com/jonaswinkler/paperless-ng/issues/857
-      # https://github.com/Koed00/django-q/issues/526
-      django-q = super.django-q.overridePythonAttrs (oldAttrs: rec {
-        version = "1.3.4";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "Uj1U3PG2YVLBtlj5FPAO07UYo0MqnezUiYc4yo274Q8=";
-        };
-      });
 
       # Incompatible with aioredis 2
       aioredis = super.aioredis.overridePythonAttrs (oldAttrs: rec {
@@ -43,30 +33,16 @@ let
   path = lib.makeBinPath [ ghostscript imagemagick jbig2enc optipng pngquant qpdf tesseract4 unpaper ];
 in
 py.pkgs.pythonPackages.buildPythonApplication rec {
-  pname = "paperless-ng";
-  version = "1.5.0";
+  pname = "paperless-ngx";
+  version = "1.6.0";
 
   src = fetchurl {
-    url = "https://github.com/jonaswinkler/paperless-ng/releases/download/ng-${version}/${pname}-${version}.tar.xz";
-    sha256 = "oVSq0AWksuWC81MF5xiZ6ZbdKKtqqphmL+xIzJLaDMw=";
+    url = "https://github.com/paperless-ngx/paperless-ngx/releases/download/ngx-${version}/${pname}-${version}.tar.xz";
+    sha256 = "07mrxbwahkm00n9nvssd6d13p80w333g84cd38bzp0l34nzim5zl";
   };
 
-  patches = [
-    # Fix the `slow_write_pdf` test:
-    # https://github.com/NixOS/nixpkgs/issues/136626
-    (fetchpatch {
-      url = "https://github.com/paperless-ngx/paperless-ngx/commit/4fbabe43ea12811864e9676b04d82a82b38e799d.patch";
-      sha256 = "sha256-8ULep5aeW3wJAQGy2OEAjFYybELNq1DzCC1uBrZx36I=";
-    })
-  ];
-
   format = "other";
 
-  # Make bind address configurable
-  postPatch = ''
-    substituteInPlace gunicorn.conf.py --replace "bind = '0.0.0.0:8000'" ""
-  '';
-
   propagatedBuildInputs = with py.pkgs.pythonPackages; [
     aioredis
     arrow
@@ -161,11 +137,17 @@ py.pkgs.pythonPackages.buildPythonApplication rec {
     zope_interface
   ];
 
+  # Compile manually because `pythonRecompileBytecodeHook` only works for
+  # files in `python.sitePackages`
+  postBuild = ''
+    ${py.interpreter} -OO -m compileall src
+  '';
+
   installPhase = ''
     mkdir -p $out/lib
-    cp -r . $out/lib/paperless-ng
-    chmod +x $out/lib/paperless-ng/src/manage.py
-    makeWrapper $out/lib/paperless-ng/src/manage.py $out/bin/paperless-ng \
+    cp -r . $out/lib/paperless-ngx
+    chmod +x $out/lib/paperless-ngx/src/manage.py
+    makeWrapper $out/lib/paperless-ngx/src/manage.py $out/bin/paperless-ngx \
       --prefix PYTHONPATH : "$PYTHONPATH" \
       --prefix PATH : "${path}"
   '';
@@ -200,13 +182,13 @@ py.pkgs.pythonPackages.buildPythonApplication rec {
     pythonPath = python3.pkgs.makePythonPath propagatedBuildInputs;
     inherit path;
 
-    tests = { inherit (nixosTests) paperless-ng; };
+    tests = { inherit (nixosTests) paperless; };
   };
 
   meta = with lib; {
     description = "A supercharged version of paperless: scan, index, and archive all of your physical documents";
-    homepage = "https://paperless-ng.readthedocs.io/en/latest/";
+    homepage = "https://paperless-ngx.readthedocs.io/en/latest/";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ earvstedt Flakebi ];
+    maintainers = with maintainers; [ lukegb ];
   };
 }
diff --git a/pkgs/applications/office/paperwork/paperwork-gtk.nix b/pkgs/applications/office/paperwork/paperwork-gtk.nix
index f80f40929a19a..81fc8c075f1c9 100644
--- a/pkgs/applications/office/paperwork/paperwork-gtk.nix
+++ b/pkgs/applications/office/paperwork/paperwork-gtk.nix
@@ -138,7 +138,7 @@ python3Packages.buildPythonApplication rec {
   passthru.updateScript = writeScript "update.sh" ''
     #!/usr/bin/env nix-shell
     #!nix-shell -i bash -p curl common-updater-scripts
-    version=$(list-git-tags https://gitlab.gnome.org/World/OpenPaperwork/paperwork.git | sed 's/^v//' | sort -V | tail -n1)
+    version=$(list-git-tags | sed 's/^v//' | sort -V | tail -n1)
     update-source-version paperwork "$version" --file=pkgs/applications/office/paperwork/src.nix
     docs_version="$(curl https://gitlab.gnome.org/World/OpenPaperwork/paperwork/-/raw/$version/paperwork-gtk/src/paperwork_gtk/model/help/screenshot.sh | grep TEST_DOCS_TAG= | cut -d'"' -f2)"
     update-source-version paperwork.sample_docs "$docs_version" --file=pkgs/applications/office/paperwork/src.nix --version-key=rev
diff --git a/pkgs/applications/office/portfolio/default.nix b/pkgs/applications/office/portfolio/default.nix
index ecabdb85a93c8..5e1545109409a 100644
--- a/pkgs/applications/office/portfolio/default.nix
+++ b/pkgs/applications/office/portfolio/default.nix
@@ -25,11 +25,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "PortfolioPerformance";
-  version = "0.56.5";
+  version = "0.57.1";
 
   src = fetchurl {
     url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
-    sha256 = "sha256-g/MjOrivqbZ93iSs5mLQT36gn72KCJEOgEssBZER+TA=";
+    sha256 = "sha256-uEEFkHyApf+TObcu+Yo5vBOs2Erq0IXGhbjzlEe8NmI=";
   };
 
   nativeBuildInputs = [
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
     description = "A simple tool to calculate the overall performance of an investment portfolio";
     homepage = "https://www.portfolio-performance.info/";
     license = licenses.epl10;
-    maintainers = with maintainers; [ elohmeier oyren ];
+    maintainers = with maintainers; [ elohmeier oyren shawn8901 ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/office/qownnotes/default.nix b/pkgs/applications/office/qownnotes/default.nix
index b40085e852932..8617d62335602 100644
--- a/pkgs/applications/office/qownnotes/default.nix
+++ b/pkgs/applications/office/qownnotes/default.nix
@@ -5,13 +5,13 @@
 
 mkDerivation rec {
   pname = "qownnotes";
-  version = "22.3.4";
+  version = "22.4.1";
 
   src = fetchurl {
     url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
     # Fetch the checksum of current version with curl:
     # curl https://download.tuxfamily.org/qownnotes/src/qownnotes-<version>.tar.xz.sha256
-    sha256 = "bec1ee9735821a7c4556c00790e3acfef06f21490ec8b7d99d9e002c9c0a1207";
+    sha256 = "b9ce77ecd5bb48bd6534068b0582dfaa3b828f800b19ddec80387a84e00766da";
   };
 
   nativeBuildInputs = [ qmake qttools ];
diff --git a/pkgs/applications/office/trilium/default.nix b/pkgs/applications/office/trilium/default.nix
index c73c0b87c0c15..7190fe90040d2 100644
--- a/pkgs/applications/office/trilium/default.nix
+++ b/pkgs/applications/office/trilium/default.nix
@@ -19,16 +19,16 @@ let
     maintainers = with maintainers; [ fliegendewurst ];
   };
 
-  version = "0.50.2";
+  version = "0.50.3";
 
   desktopSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
-    sha256 = "0fljza5afpjxgrzgskjhs7w86aa51d88xzv2h43666638j3c5mvk";
+    sha256 = "sha256-0N2+NcdZGxaj4LcG5edyd3ry+0dSQSfUQRqZEYFfWqQ=";
   };
 
   serverSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
-    sha256 = "0jqpi1gc48jxvc68yzx80jp553haihybj3g3c5ymvqmgivwn7n4c";
+    sha256 = "sha256-za32yRhusReoGIRdbfx30CPH63BVXz2Z7jkhxtb7XSo=";
   };
 
 in {
diff --git a/pkgs/applications/office/vnote/default.nix b/pkgs/applications/office/vnote/default.nix
index f548cf01fcd50..53fd1f07b6e65 100644
--- a/pkgs/applications/office/vnote/default.nix
+++ b/pkgs/applications/office/vnote/default.nix
@@ -8,14 +8,14 @@
 
 mkDerivation rec {
   pname = "vnote";
-  version = "3.12.888";
+  version = "3.13.0";
 
   src = fetchFromGitHub {
     owner = "vnotex";
     repo = pname;
     fetchSubmodules = true;
     rev = "v${version}";
-    sha256 = "sha256-l9oFixyEM0aAfvrC5rrQMzv7n8rUHECRzhuIQJ/szjc=";
+    sha256 = "sha256-osJvoi7oyZupJ/bnqpm0TdZ5cMYEeOw9DHOIAzONKLg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/radio/cubicsdr/default.nix b/pkgs/applications/radio/cubicsdr/default.nix
index 7e346bcbf8484..23b64e124c553 100644
--- a/pkgs/applications/radio/cubicsdr/default.nix
+++ b/pkgs/applications/radio/cubicsdr/default.nix
@@ -1,34 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, fftw, hamlib, libpulseaudio, libGL, libX11, liquid-dsp,
+{ lib, stdenv, fetchFromGitHub, cmake, fftw, hamlib, libpulseaudio, libGL, libX11, liquid-dsp,
   pkg-config, soapysdr-with-plugins, wxGTK31-gtk3, enableDigitalLab ? false }:
 
 stdenv.mkDerivation rec {
   pname = "cubicsdr";
-  version = "0.2.5";
+  version = "0.2.7";
 
   src = fetchFromGitHub {
     owner = "cjcliffe";
     repo = "CubicSDR";
     rev = version;
-    sha256 = "1ihbn18bzdcdvwpa4hnb55ns38bj4b8xy53hkmra809f9qpbcjhn";
+    sha256 = "0cyv1vk97x4i3h3hhh7dx8mv6d1ad0fypdbx5fl26bz661sr8j2n";
   };
 
-  # Allow cubicsdr 0.2.5 to build with wxGTK 3.1.3
-  # these come from cubicsdr's master branch, subsequent releases may include them
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/cjcliffe/CubicSDR/commit/65a160fa356ce9665dfe05c6bfc6754535e16743.patch";
-      sha256 = "0vbr5x9fnm09bws5crqcm6kkhr1bg5r0bc1pxnwwjyc6jpvqi6ad";
-    })
-    (fetchpatch {
-      url = "https://github.com/cjcliffe/CubicSDR/commit/f449a65457e35bf8260d0b16b8a47b6bc0ea2c7e.patch";
-      sha256 = "1zjvjmhm8ybi6i9pq7by3fj3mvx37dy7gj4gk23d79yrnl9mk25p";
-    })
-    (fetchpatch {
-      url = "https://github.com/cjcliffe/CubicSDR/commit/0540d08c2dea79b668b32b1a6d58f235d65ce9d2.patch";
-      sha256 = "07l7b82f779sbcj0jza0mg463ac1153bs9hn6ai388j7dm3lvasn";
-    })
-  ];
-
   nativeBuildInputs = [ cmake pkg-config ];
 
   buildInputs = [ fftw hamlib libpulseaudio libGL libX11 liquid-dsp soapysdr-with-plugins wxGTK31-gtk3 ];
@@ -44,4 +27,3 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
   };
 }
-
diff --git a/pkgs/applications/radio/flex-ncat/default.nix b/pkgs/applications/radio/flex-ncat/default.nix
index dee9f29da73f5..95c61dabf78ca 100644
--- a/pkgs/applications/radio/flex-ncat/default.nix
+++ b/pkgs/applications/radio/flex-ncat/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     description = "FlexRadio remote control (CAT) via hamlib/rigctl protocol";
     license = licenses.mit;
     maintainers = with maintainers; [ mvs ];
+    mainProgram = "nCAT";
   };
 }
diff --git a/pkgs/applications/radio/flrig/default.nix b/pkgs/applications/radio/flrig/default.nix
index c927d77bef44b..43f223980178d 100644
--- a/pkgs/applications/radio/flrig/default.nix
+++ b/pkgs/applications/radio/flrig/default.nix
@@ -3,21 +3,23 @@
 , fetchurl
 , fltk13
 , libjpeg
+, eudev
 , pkg-config
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.3.54";
+  version = "1.4.5";
   pname = "flrig";
 
   src = fetchurl {
     url = "mirror://sourceforge/fldigi/${pname}-${version}.tar.gz";
-    sha256 = "sha256-zw0xi4AVnm8Vi/oWkh13C9BjabOKUtZaVmLN++zKGug=";
+    sha256 = "sha256-Zj/LkP1nSm1zLKLxuGfaKuVuP8jaVlvK/TzX504VKHk=";
   };
 
   buildInputs = [
     fltk13
     libjpeg
+    eudev
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/radio/gnss-sdr/default.nix b/pkgs/applications/radio/gnss-sdr/default.nix
index 383c5710808f5..f6e834d53fb3e 100644
--- a/pkgs/applications/radio/gnss-sdr/default.nix
+++ b/pkgs/applications/radio/gnss-sdr/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 , armadillo
 , cmake
 , gmp
@@ -34,6 +35,11 @@ gnuradio.pkgs.mkDerivation rec {
     # cpu_features which is bundled in the source. NOTE: Perhaps this patch
     # should be sent upstream.
     ./fix_libcpu_features_install_path.patch
+    # Fixes a compilation issue, should be removed on next release.
+    (fetchpatch {
+      url = "https://github.com/gnss-sdr/gnss-sdr/commit/8a42967c854e575f2dd9ee7ca81a2522eebb864b.patch";
+      sha256 = "sha256-W8BwC08QVtW0LUj5Q+j28aYG+713s+vQIzsWyrNUs1Q=";
+    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/radio/gnuradio/3.9.nix b/pkgs/applications/radio/gnuradio/3.9.nix
index 638064bbd0729..989722fdc3ecd 100644
--- a/pkgs/applications/radio/gnuradio/3.9.nix
+++ b/pkgs/applications/radio/gnuradio/3.9.nix
@@ -46,13 +46,13 @@
 , pname ? "gnuradio"
 , versionAttr ? {
   major = "3.9";
-  minor = "5";
+  minor = "6";
   patch = "0";
 }
 }:
 
 let
-  sourceSha256 = "sha256-TWCXLoS+ImKNd2zkxMks4FXsQMvGKgcW5/MW8S1Y1TY=";
+  sourceSha256 = "sha256-0JODgv9MNOkHDQYTVCZMzjr/G542+NvGP9wlH9iwLeg=";
   featuresInfo = {
     # Needed always
     basic = {
@@ -134,6 +134,12 @@ let
       ];
       cmakeEnableFlag = "GRC";
     };
+    jsonyaml_blocks = {
+      pythonRuntime = [
+        python.pkgs.jsonschema
+      ];
+      cmakeEnableFlag = "JSONYAML_BLOCKS";
+    };
     gr-blocks = {
       cmakeEnableFlag = "GR_BLOCKS";
     };
diff --git a/pkgs/applications/radio/gnuradio/default.nix b/pkgs/applications/radio/gnuradio/default.nix
index eef1960ae1f48..14a4763259fa9 100644
--- a/pkgs/applications/radio/gnuradio/default.nix
+++ b/pkgs/applications/radio/gnuradio/default.nix
@@ -48,13 +48,13 @@
 , pname ? "gnuradio"
 , versionAttr ? {
   major = "3.10";
-  minor = "1";
-  patch = "1";
+  minor = "2";
+  patch = "0";
 }
 }:
 
 let
-  sourceSha256 = "sha256-vsAK+GQzcpA9Vsa6q4RFEzVpbF7/+yZkMsemKn6VhIg=";
+  sourceSha256 = "sha256-WcfmW39wHhFdpbdBSjOfuDkxL8/fuMjjJoLUyCUud/o=";
   featuresInfo = {
     # Needed always
     basic = {
@@ -136,6 +136,12 @@ let
       ];
       cmakeEnableFlag = "GRC";
     };
+    jsonyaml_blocks = {
+      pythonRuntime = [
+        python.pkgs.jsonschema
+      ];
+      cmakeEnableFlag = "JSONYAML_BLOCKS";
+    };
     gr-blocks = {
       cmakeEnableFlag = "GR_BLOCKS";
     };
@@ -221,6 +227,7 @@ let
         setuptools
         click
         click-plugins
+        pygccxml
       ];
       cmakeEnableFlag = "GR_MODTOOL";
     };
diff --git a/pkgs/applications/radio/gqrx/default.nix b/pkgs/applications/radio/gqrx/default.nix
index 28be25920a459..d138dd350c04c 100644
--- a/pkgs/applications/radio/gqrx/default.nix
+++ b/pkgs/applications/radio/gqrx/default.nix
@@ -23,13 +23,13 @@ assert !(pulseaudioSupport && portaudioSupport);
 
 gnuradio3_8Minimal.pkgs.mkDerivation rec {
   pname = "gqrx";
-  version = "2.15.8";
+  version = "2.15.9";
 
   src = fetchFromGitHub {
     owner = "gqrx-sdr";
     repo = "gqrx";
     rev = "v${version}";
-    sha256 = "sha256-RxwkiJdPHWyhU3azSpWV2M0tG5GInQBpc/ls16V1B94=";
+    sha256 = "sha256-KQBtYVEfOXpzfxNMgTu6Hup7XpjubrpvZazcFlml4Kg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/radio/rtl-ais/default.nix b/pkgs/applications/radio/rtl-ais/default.nix
index 243d3126b5f4b..c244868f65d89 100644
--- a/pkgs/applications/radio/rtl-ais/default.nix
+++ b/pkgs/applications/radio/rtl-ais/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation {
     homepage = "https://github.com/dgiardini/rtl-ais";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ mgdm ];
+    mainProgram = "rtl_ais";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/radio/splat/default.nix b/pkgs/applications/radio/splat/default.nix
new file mode 100644
index 0000000000000..2e929ff04ef2a
--- /dev/null
+++ b/pkgs/applications/radio/splat/default.nix
@@ -0,0 +1,55 @@
+{ lib, stdenv, fetchurl, groff, ncurses, bzip2, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "splat";
+  version = "1.4.2";
+
+  src = fetchurl {
+    url = "https://www.qsl.net/kd2bd/${pname}-${version}.tar.bz2";
+    hash = "sha256-ObCzFOLpJ73wDR7aS5hl79EouoUDBfmHrsBJxP1Yopw=";
+  };
+
+  nativeBuildInputs =
+    # configure script needs `clear`
+    [ groff ncurses ];
+
+  buildInputs = [ bzip2 zlib ];
+
+  postPatch = "patchShebangs build utils/build";
+
+  configurePhase =
+    # configure for maximum resolution
+    ''
+      runHook preConfigure
+      cat > std-params.h << EOF
+      #define HD_MODE 1
+      #define MAXPAGES 64
+      EOF
+      runHook postConfigure
+    '';
+
+  buildPhase = ''
+    runHook preBuild
+    ./build all
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -Dt $out/bin splat
+    find utils -type f -executable -exec install -Dt $out/bin {} \;
+    install -Dt $out/share/man/man1 docs/english/man/*.1
+    install -Dt $out/share/man/es/man1 docs/spanish/man/*.1
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description =
+      "SPLAT! is an RF Signal Propagation, Loss, And Terrain analysis tool for the electromagnetic spectrum between 20 MHz and 20 GHz";
+    license = licenses.gpl2Only;
+    homepage = "https://www.qsl.net/kd2bd/splat.html";
+    maintainers = with maintainers; [ ehmry ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/applications/science/astronomy/astrolabe-generator/default.nix b/pkgs/applications/science/astronomy/astrolabe-generator/default.nix
index 3802f2bada86d..3364cbf6f0c21 100644
--- a/pkgs/applications/science/astronomy/astrolabe-generator/default.nix
+++ b/pkgs/applications/science/astronomy/astrolabe-generator/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
     description = "A Java-based tool for generating EPS files for constructing astrolabes and related tools";
     license = licenses.gpl3;
     maintainers = [ ];
+    mainProgram = "AstrolabeGenerator";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/science/astronomy/stellarium/default.nix b/pkgs/applications/science/astronomy/stellarium/default.nix
index 7b5f28fbd8484..df73df2ec284a 100644
--- a/pkgs/applications/science/astronomy/stellarium/default.nix
+++ b/pkgs/applications/science/astronomy/stellarium/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "stellarium";
-  version = "0.22.0";
+  version = "0.22.1";
 
   src = fetchFromGitHub {
     owner = "Stellarium";
     repo = "stellarium";
     rev = "v${version}";
-    sha256 = "sha256-scG/SS9emEmrZunv6n3Vzcchoh0Cf9rDOkuxAMnxNk4=";
+    sha256 = "sha256-zDYZBV/76BDWWfiug0fFvMe3pdE4xfKgSmVJJd3Qu9Y=";
   };
 
   nativeBuildInputs = [ cmake perl wrapQtAppsHook ];
diff --git a/pkgs/applications/science/biology/bayescan/default.nix b/pkgs/applications/science/biology/bayescan/default.nix
index 043ee3ca52de0..656e59a55ba53 100644
--- a/pkgs/applications/science/biology/bayescan/default.nix
+++ b/pkgs/applications/science/biology/bayescan/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
     homepage = "http://cmpg.unibe.ch/software/BayeScan";
     license = licenses.gpl3;
     maintainers = [ maintainers.bzizou ];
+    mainProgram = "bayescan_${version}";
     platforms = lib.platforms.all;
   };
 }
diff --git a/pkgs/applications/science/biology/clustal-omega/default.nix b/pkgs/applications/science/biology/clustal-omega/default.nix
index 6377e1fce855d..6a39a889f55fb 100644
--- a/pkgs/applications/science/biology/clustal-omega/default.nix
+++ b/pkgs/applications/science/biology/clustal-omega/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.clustal.org/omega/";
     license = licenses.gpl2;
     maintainers = [ maintainers.bzizou ];
+    mainProgram = "clustalo";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/science/biology/cmtk/default.nix b/pkgs/applications/science/biology/cmtk/default.nix
index b6286d11c8cbd..36db47ad168a7 100644
--- a/pkgs/applications/science/biology/cmtk/default.nix
+++ b/pkgs/applications/science/biology/cmtk/default.nix
@@ -12,7 +12,10 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=c++11-narrowing";
+  NIX_CFLAGS_COMPILE = [
+    "-std=c++11"
+    (lib.optional stdenv.cc.isClang "-Wno-error=c++11-narrowing")
+  ];
 
   meta = with lib; {
     description = "Computational Morphometry Toolkit ";
diff --git a/pkgs/applications/science/biology/dcm2niix/default.nix b/pkgs/applications/science/biology/dcm2niix/default.nix
index 36dddad5db5ac..90eef027a8425 100644
--- a/pkgs/applications/science/biology/dcm2niix/default.nix
+++ b/pkgs/applications/science/biology/dcm2niix/default.nix
@@ -1,10 +1,26 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
+, substituteAll
 , cmake
+, openjpeg
 , libyamlcpp
-, git
+, batchVersion ? false
+, withJpegLs ? true
+, withOpenJpeg ? true
+, withCloudflareZlib ? true
 }:
 
+let
+  cloudflareZlib = fetchFromGitHub {
+    owner = "ningfei";
+    repo = "zlib";
+    # HEAD revision of the gcc.amd64 branch on 2022-04-14. Reminder to update
+    # whenever bumping package version.
+    rev = "fda61188d1d4dcd21545c34c2a2f5cc9b0f5db4b";
+    sha256 = "sha256-qySFwY0VI2BQLO2XoCZeYshXEDnHh6SmJ3MvcBUROWU=";
+  };
+in
 stdenv.mkDerivation rec {
   version = "1.0.20211006";
   pname = "dcm2niix";
@@ -16,18 +32,37 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-fQAVOzynMdSLDfhcYWcaXkFW/mnv4zySGLVJNE7ql/c=";
   };
 
-  nativeBuildInputs = [ cmake git ];
-  buildInputs = [ libyamlcpp ];
+  patches = lib.optionals withCloudflareZlib [
+    (substituteAll {
+      src = ./dont-fetch-external-libs.patch;
+      inherit cloudflareZlib;
+    })
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = lib.optionals batchVersion [ libyamlcpp ]
+    ++ lib.optionals withOpenJpeg [ openjpeg openjpeg.dev ];
+
+  cmakeFlags = lib.optionals batchVersion [
+    "-DBATCH_VERSION=ON"
+    "-DYAML-CPP_DIR=${libyamlcpp}/lib/cmake/yaml-cpp"
+  ] ++ lib.optionals withJpegLs [
+    "-DUSE_JPEGLS=ON"
+  ] ++ lib.optionals withOpenJpeg [
+    "-DUSE_OPENJPEG=ON"
+    "-DOpenJPEG_DIR=${openjpeg}/lib/${openjpeg.pname}-${lib.versions.majorMinor openjpeg.version}"
+  ] ++ lib.optionals withCloudflareZlib [
+    "-DZLIB_IMPLEMENTATION=Cloudflare"
+  ];
 
   meta = with lib; {
     description = "DICOM to NIfTI converter";
     longDescription = ''
-      dcm2niix is a designed to convert neuroimaging data from the
-      DICOM format to the NIfTI format.
+      dcm2niix is designed to convert neuroimaging data from the DICOM format to the NIfTI format.
     '';
     homepage = "https://www.nitrc.org/projects/dcm2nii";
     license = licenses.bsd3;
-    maintainers = [ maintainers.ashgillman ];
+    maintainers = with maintainers; [ ashgillman rbreslow ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/science/biology/dcm2niix/dont-fetch-external-libs.patch b/pkgs/applications/science/biology/dcm2niix/dont-fetch-external-libs.patch
new file mode 100644
index 0000000000000..493f0fb11f461
--- /dev/null
+++ b/pkgs/applications/science/biology/dcm2niix/dont-fetch-external-libs.patch
@@ -0,0 +1,36 @@
+diff --git a/SuperBuild/External-CLOUDFLARE-ZLIB.cmake b/SuperBuild/External-CLOUDFLARE-ZLIB.cmake
+index 9f064eb..fe74df5 100644
+--- a/SuperBuild/External-CLOUDFLARE-ZLIB.cmake
++++ b/SuperBuild/External-CLOUDFLARE-ZLIB.cmake
+@@ -1,8 +1,5 @@
+-set(CLOUDFLARE_BRANCH gcc.amd64) # Cloudflare zlib branch
+-
+ ExternalProject_Add(zlib
+-    GIT_REPOSITORY "${git_protocol}://github.com/ningfei/zlib.git"
+-    GIT_TAG "${CLOUDFLARE_BRANCH}"
++    URL file://@cloudflareZlib@
+     SOURCE_DIR cloudflare-zlib
+     BINARY_DIR cloudflare-zlib-build
+     CMAKE_ARGS
+diff --git a/SuperBuild/SuperBuild.cmake b/SuperBuild/SuperBuild.cmake
+index 2a0a956..81354a7 100644
+--- a/SuperBuild/SuperBuild.cmake
++++ b/SuperBuild/SuperBuild.cmake
+@@ -1,17 +1,3 @@
+-# Check if git exists
+-find_package(Git)
+-if(NOT GIT_FOUND)
+-    message(FATAL_ERROR "Cannot find Git. Git is required for Superbuild")
+-endif()
+-
+-# Use git protocol or not
+-option(USE_GIT_PROTOCOL "If behind a firewall turn this off to use http instead." ON)
+-if(USE_GIT_PROTOCOL)
+-    set(git_protocol "git")
+-else()
+-    set(git_protocol "https")
+-endif()
+-
+ # Basic CMake build settings
+ if(NOT CMAKE_BUILD_TYPE)
+     set(CMAKE_BUILD_TYPE "Release" CACHE STRING
diff --git a/pkgs/applications/science/biology/eggnog-mapper/default.nix b/pkgs/applications/science/biology/eggnog-mapper/default.nix
index b42fed8da2819..44caca2fa2c8a 100644
--- a/pkgs/applications/science/biology/eggnog-mapper/default.nix
+++ b/pkgs/applications/science/biology/eggnog-mapper/default.nix
@@ -1,29 +1,43 @@
-{ lib, fetchFromGitHub, fetchpatch, makeWrapper, python27Packages, wget, diamond, hmmer }:
+{ lib
+, autoPatchelfHook
+, fetchFromGitHub
+, python3Packages
+, wget
+, zlib
+}:
 
-python27Packages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "eggnog-mapper";
-  version = "1.0.3";
+  version = "2.1.7";
 
   src = fetchFromGitHub {
     owner = "eggnogdb";
-    repo = "eggnog-mapper";
+    repo = pname;
     rev = version;
-    sha256 = "1aaaflppy84bhkh2hb5gnzm4xgrz0rz0cgfpadr9w8cva8p0sqdv";
+    hash = "sha256-auVD/r8m3TAB1KYMQ7Sae23eDg6LRx/daae0505cjwU=";
   };
 
-  patches = (fetchpatch {
-    url = "https://github.com/eggnogdb/eggnog-mapper/commit/6972f601ade85b65090efca747d2302acb58507f.patch";
-    sha256 = "0abnmn0bh11jihf5d3cggiild1ykawzv5f5fhb4cyyi8fvy4hcxf";
-  });
+  postPatch = ''
+    # Not a great solution...
+    substituteInPlace setup.cfg \
+      --replace "==" ">="
+  '';
 
-  nativeBuildInputs = [ makeWrapper ];
-  propagatedBuildInputs = [ python27Packages.biopython wget diamond hmmer ];
+  nativeBuildInputs = [
+    autoPatchelfHook
+  ];
 
-  # make emapper find diamond & hmmer
-  makeWrapperArgs = [
-    ''--prefix PATH ':' "${diamond}/bin"''
-    ''--prefix PATH ':' "${hmmer}/bin"''
-    ];
+  buildInputs = [
+    zlib
+  ];
+
+  propagatedBuildInputs = [
+    wget
+  ] ++ (with python3Packages; [
+    biopython
+    psutil
+    XlsxWriter
+  ]);
 
   # Tests rely on some of the databases being available, which is not bundled
   # with this package as (1) in total, they represent >100GB of data, and (2)
diff --git a/pkgs/applications/science/biology/picard-tools/default.nix b/pkgs/applications/science/biology/picard-tools/default.nix
index 526a5b3ed33b8..ace2eea89305b 100644
--- a/pkgs/applications/science/biology/picard-tools/default.nix
+++ b/pkgs/applications/science/biology/picard-tools/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     homepage = "https://broadinstitute.github.io/picard/";
     maintainers = with maintainers; [ jbedo ];
+    mainProgram = "picard";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/science/chemistry/jmol/default.nix b/pkgs/applications/science/chemistry/jmol/default.nix
index a747b96dd1809..fe3e05b65627e 100644
--- a/pkgs/applications/science/chemistry/jmol/default.nix
+++ b/pkgs/applications/science/chemistry/jmol/default.nix
@@ -25,14 +25,14 @@ let
   };
 in
 stdenv.mkDerivation rec {
-  version = "14.32.39";
+  version = "14.32.45";
   pname = "jmol";
 
   src = let
     baseVersion = "${lib.versions.major version}.${lib.versions.minor version}";
   in fetchurl {
     url = "mirror://sourceforge/jmol/Jmol/Version%20${baseVersion}/Jmol%20${version}/Jmol-${version}-binary.tar.gz";
-    sha256 = "sha256-ekwipWWGsXYECJBOmw0+uIWHDpdF8T8jZUo6LeqD6Io=";
+    sha256 = "sha256-9bcOwORHLZfn95RFur4JdP3Djpq8K8utnWIsniqKAI4=";
   };
 
   patchPhase = ''
diff --git a/pkgs/applications/science/electronics/verilator/default.nix b/pkgs/applications/science/electronics/verilator/default.nix
index 5ee89dfa8c439..13876430822a5 100644
--- a/pkgs/applications/science/electronics/verilator/default.nix
+++ b/pkgs/applications/science/electronics/verilator/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "verilator";
-  version = "4.218";
+  version = "4.220";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-FukC60z7Y3bb3I/dgzqCh6kFP6DDBOGi0M8IIZ50P3g=";
+    sha256 = "sha256-Y0j6j8kPCONlegFoWl46LXtfoiLhzMsHCVv+kLe7UyE=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/science/engineering/brmodelo/default.nix b/pkgs/applications/science/engineering/brmodelo/default.nix
new file mode 100644
index 0000000000000..c0573ae131d3c
--- /dev/null
+++ b/pkgs/applications/science/engineering/brmodelo/default.nix
@@ -0,0 +1,109 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, openjdk8
+, ant
+, makeWrapper
+, makeDesktopItem
+, copyDesktopItems
+}:
+
+stdenv.mkDerivation rec {
+  pname = "brmodelo";
+  version = "3.31";
+
+  src = fetchFromGitHub {
+    owner = "chcandido";
+    repo = pname;
+    rev = version;
+    sha256 = "09qrhqhv264x8phnf3pnb0cwq75l7xdsj9xkwlvhry81nxz0d5v0";
+  };
+
+  nativeBuildInputs = [ ant makeWrapper copyDesktopItems ];
+
+  buildInputs = [ openjdk8 ];
+
+  patches = [
+    # Fixes for building with Ant.
+    # https://github.com/chcandido/brModelo/pull/22
+    (fetchpatch {
+      name = "fix-self-closing-element-not-allowed.patch";
+      url = "https://github.com/yuuyins/brModelo/commit/0d712b74fd5d29d67be07480ed196da28a77893b.patch";
+      sha256 = "sha256-yy03arE6xetotzyvpToi9o9crg3KnMRn1J70jDUvSXE=";
+    })
+    (fetchpatch {
+      name = "fix-tag-closing.patch";
+      url = "https://github.com/yuuyins/brModelo/commit/e8530ff75f024cf6effe0408ed69985405e9709c.patch";
+      sha256 = "sha256-MNuh/ORbaAkB5qDSlA/nPrXN+tqzz4oOglVyEtSangI=";
+    })
+    (fetchpatch {
+      name = "fix-bad-use-greater-than.patch";
+      url = "https://github.com/yuuyins/brModelo/commit/498a6ef8129daff5a472b318f93c8f7f2897fc7f.patch";
+      sha256 = "sha256-MmAwYUmx38DGRsiSxCWCObtpqxk0ykUQiDSC76bCpFc=";
+    })
+    (fetchpatch {
+      name = "fix-param-errors.patch";
+      url = "https://github.com/yuuyins/brModelo/commit/8a508aaba0bcffe13a3f95cff495230beea36bc4.patch";
+      sha256 = "sha256-qME9gZChSMzu1vs9HaosD+snb+jlOrQLY97meNoA8oU=";
+    })
+
+    # Add SVG icons.
+    # https://github.com/chcandido/brModelo/pull/23
+    (fetchpatch {
+      name = "add-brmodelo-logo-icons-svg.patch";
+      url = "https://github.com/yuuyins/brModelo/commit/f260b82b664fad3325bbf3ebd7a15488d496946b.patch";
+      sha256 = "sha256-UhgcWxsHkNFS1GgaRnmlZohjDR8JwHof2cIb3SBetYs=";
+    })
+  ];
+
+  buildPhase = ''
+    ant
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "brmodelo";
+      desktopName = "brModelo";
+      genericName = "Entity-relationship diagramming tool";
+      exec = "brmodelo";
+      icon = "brmodelo";
+      comment = meta.description;
+      categories = [ "Development" "Education" "Database" "2DGraphics" "ComputerScience" "DataVisualization" "Engineering" "Java" ];
+    })
+  ];
+
+  installPhase = ''
+    install -d $out/bin $out/share/doc/${pname} $out/share/java
+
+    cp -rv ./dist/javadoc $out/share/doc/${pname}/
+
+    install -Dm755 ./dist/brModelo.jar -t $out/share/java/
+    # NOTE: The standard Java GUI toolkit has a
+    # hard-coded list of "non-reparenting" window managers,
+    # which cause issues while running brModelo
+    # in WMs that are not in that list (e.g. XMonad).
+    # Solution/Workaround: set the environment variable
+    # _JAVA_AWT_WM_NONREPARENTING=1.
+    makeWrapper ${openjdk8}/bin/java $out/bin/brmodelo \
+       --prefix _JAVA_AWT_WM_NONREPARENTING : 1 \
+       --prefix _JAVA_OPTIONS : "-Dawt.useSystemAAFontSettings=on" \
+       --add-flags "-jar $out/share/java/brModelo.jar"
+
+    runHook postInstall
+  '';
+
+  postInstall = ''
+    for size in 16 24 32 48 64 128 256; do
+      install -Dm644 ./src/imagens/icone_"$size"x"$size".svg \
+        $out/share/icons/hicolor/"$size"x"$size"/apps/brmodelo.svg
+    done
+  '';
+
+  meta = with lib; {
+    description = "Entity-relationship diagram tool for making conceptual and logical database models";
+    homepage = "https://github.com/chcandido/brModelo";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ yuu ];
+  };
+}
diff --git a/pkgs/applications/science/logic/abc/default.nix b/pkgs/applications/science/logic/abc/default.nix
index 60454ca9ce994..20c33f0fbae55 100644
--- a/pkgs/applications/science/logic/abc/default.nix
+++ b/pkgs/applications/science/logic/abc/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname   = "abc-verifier";
-  version = "2022.03.04";
+  version = "2022.03.22";
 
   src = fetchFromGitHub {
     owner = "yosyshq";
     repo  = "abc";
-    rev   = "d7ecb23eeee9c9b4924182ce570c2e33eb18abff";
-    hash  = "sha256-aufWRTggJNOaUFsjh5+HFDqEur+nuM0hZSsTfGptbks=";
+    rev   = "00b674d5b3ccefc7f2abcbf5b650fc14298ac549";
+    hash  = "sha256-jQgHptARRuhlF+8R92so8PyBTI5t/q/rSGO5yce5WSs=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix
index a9fb21681586b..c078287b85ee3 100644
--- a/pkgs/applications/science/logic/coq/default.nix
+++ b/pkgs/applications/science/logic/coq/default.nix
@@ -56,8 +56,8 @@ let
     args.version;
   version = fetched.version;
   coq-version = args.coq-version or (if version != "dev" then versions.majorMinor version else "dev");
-  versionAtLeast = v: (coq-version == "dev") || (lib.versionAtLeast coq-version v);
-  ideFlags = optionalString (buildIde && !versionAtLeast "8.10")
+  coqAtLeast = v: coq-version == "dev" || versionAtLeast coq-version v;
+  ideFlags = optionalString (buildIde && !coqAtLeast "8.10")
     "-lablgtkdir ${ocamlPackages.lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt";
   csdpPatch = if csdp != null then ''
     substituteInPlace plugins/micromega/sos.ml --replace "; csdp" "; ${csdp}/bin/csdp"
@@ -71,11 +71,11 @@ let
       { case = range "8.5" "8.6";   out = ocamlPackages_4_05; }
     ] ocamlPackages_4_12;
   ocamlNativeBuildInputs = [ ocamlPackages.ocaml ocamlPackages.findlib ]
-    ++ optional (versionAtLeast "8.14") ocamlPackages.dune_2;
+    ++ optional (coqAtLeast "8.14") ocamlPackages.dune_2;
   ocamlBuildInputs = []
-    ++ optional (!versionAtLeast "8.10") ocamlPackages.camlp5
-    ++ optional (!versionAtLeast "8.13") ocamlPackages.num
-    ++ optional (versionAtLeast "8.13") ocamlPackages.zarith;
+    ++ optional (!coqAtLeast "8.10") ocamlPackages.camlp5
+    ++ optional (!coqAtLeast "8.13") ocamlPackages.num
+    ++ optional (coqAtLeast "8.13") ocamlPackages.zarith;
 self = stdenv.mkDerivation {
   pname = "coq";
   inherit (fetched) version src;
@@ -134,11 +134,11 @@ self = stdenv.mkDerivation {
   nativeBuildInputs = [ pkg-config ]
     ++ ocamlNativeBuildInputs
     ++ optional buildIde copyDesktopItems
-    ++ optional (buildIde && versionAtLeast "8.10") wrapGAppsHook
-    ++ optional (!versionAtLeast "8.6") gnumake42;
+    ++ optional (buildIde && coqAtLeast "8.10") wrapGAppsHook
+    ++ optional (!coqAtLeast "8.6") gnumake42;
   buildInputs = [ ncurses ] ++ ocamlBuildInputs
     ++ optionals buildIde
-      (if versionAtLeast "8.10"
+      (if coqAtLeast "8.10"
        then [ ocamlPackages.lablgtk3-sourceview3 glib gnome.adwaita-icon-theme ]
        else [ ocamlPackages.lablgtk ])
   ;
@@ -147,7 +147,7 @@ self = stdenv.mkDerivation {
     UNAME=$(type -tp uname)
     RM=$(type -tp rm)
     substituteInPlace tools/beautify-archive --replace "/bin/rm" "$RM"
-    ${if !versionAtLeast "8.7" then "substituteInPlace configure.ml --replace \"md5 -q\" \"md5sum\"" else ""}
+    ${if !coqAtLeast "8.7" then "substituteInPlace configure.ml --replace \"md5 -q\" \"md5sum\"" else ""}
     ${csdpPatch}
   '';
 
@@ -161,7 +161,7 @@ self = stdenv.mkDerivation {
     addEnvHooks "$targetOffset" addCoqPath
   '';
 
-  preConfigure = if versionAtLeast "8.10" then ''
+  preConfigure = if coqAtLeast "8.10" then ''
     patchShebangs dev/tools/
   '' else ''
     configureFlagsArray=(
@@ -171,7 +171,7 @@ self = stdenv.mkDerivation {
 
   prefixKey = "-prefix ";
 
-  buildFlags = [ "revision" "coq" ] ++ optional buildIde "coqide" ++ optional (!versionAtLeast "8.14") "bin/votour";
+  buildFlags = [ "revision" "coq" ] ++ optional buildIde "coqide" ++ optional (!coqAtLeast "8.14") "bin/votour";
   enableParallelBuilding = true;
 
   createFindlibDestdir = true;
@@ -185,10 +185,10 @@ self = stdenv.mkDerivation {
     categories = [ "Development" "Science" "Math" "IDE" "GTK" ];
   });
 
-  postInstall = let suffix = if versionAtLeast "8.14" then "-core" else ""; in ''
+  postInstall = let suffix = if coqAtLeast "8.14" then "-core" else ""; in ''
     cp bin/votour $out/bin/
     ln -s $out/lib/coq${suffix} $OCAMLFIND_DESTDIR/coq${suffix}
-  '' + optionalString (versionAtLeast "8.14") ''
+  '' + optionalString (coqAtLeast "8.14") ''
     ln -s $out/lib/coqide-server $OCAMLFIND_DESTDIR/coqide-server
   '' + optionalString buildIde ''
     mkdir -p "$out/share/pixmaps"
diff --git a/pkgs/applications/science/logic/cvc5/default.nix b/pkgs/applications/science/logic/cvc5/default.nix
new file mode 100644
index 0000000000000..c1bf56b45d5b3
--- /dev/null
+++ b/pkgs/applications/science/logic/cvc5/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, cadical, symfpu, gmp, git, python3, gtest, libantlr3c, antlr3_4, boost, jdk }:
+
+stdenv.mkDerivation rec {
+  pname = "cvc5";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner  = "cvc5";
+    repo   = "cvc5";
+    rev    = "cvc5-${version}";
+    sha256 = "03sxqwmlajffmv7lncqs1bx8gyihkpnikk87q9wjrd4776n13ign";
+  };
+
+  nativeBuildInputs = [ pkg-config cmake ];
+  buildInputs = [ cadical.dev symfpu gmp git python3 python3.pkgs.toml gtest libantlr3c antlr3_4 boost jdk ];
+
+  preConfigure = ''
+    patchShebangs ./src/
+  '';
+
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=Production"
+    "-DBUILD_SHARED_LIBS=1"
+    "-DANTLR3_JAR=${antlr3_4}/lib/antlr/antlr-3.4-complete.jar"
+  ];
+
+  meta = with lib; {
+    description = "A high-performance theorem prover and SMT solver";
+    homepage    = "https://cvc5.github.io";
+    license     = licenses.gpl3Only;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ shadaj ];
+  };
+}
diff --git a/pkgs/applications/science/logic/elan/default.nix b/pkgs/applications/science/logic/elan/default.nix
index 89331f53686a4..1c16de8ad9513 100644
--- a/pkgs/applications/science/logic/elan/default.nix
+++ b/pkgs/applications/science/logic/elan/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "elan";
-  version = "1.3.1";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "leanprover";
     repo = "elan";
     rev = "v${version}";
-    sha256 = "sha256-QNVzpnT77+9PXhq4Yz0q3o+GiQTVy7dOrg2yBTscoek=";
+    sha256 = "sha256-jHECNSXSATLuNHNSVwi7mBTI8l6+cLPDISc5T/4yHDg=";
   };
 
-  cargoSha256 = "sha256-G70QopoMqFrkOnuui3+3cEHYvmnf0meX1Ecv4q8FCpM=";
+  cargoSha256 = "sha256-/XwlTmUboDbB6RTanhKyO6o2GBUhxpH/NQjeNsKpse0=";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
 
diff --git a/pkgs/applications/science/logic/fast-downward/default.nix b/pkgs/applications/science/logic/fast-downward/default.nix
index ece9367e30bdf..1fe770a599d0f 100644
--- a/pkgs/applications/science/logic/fast-downward/default.nix
+++ b/pkgs/applications/science/logic/fast-downward/default.nix
@@ -1,20 +1,27 @@
-{ stdenv, lib, fetchhg, cmake, which, python3, osi, cplex }:
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, python3
+, osi
+, cplex
+}:
 
-stdenv.mkDerivation {
-  version = "19.12";
+stdenv.mkDerivation rec {
   pname = "fast-downward";
+  version = "21.12.0";
 
-  src = fetchhg {
-    url = "http://hg.fast-downward.org/";
-    rev = "41688a4f16b3";
-    sha256 = "08m4k1mkx4sz7c2ab7xh7ip6b67zxv7kl68xrvwa83xw1yigqkna";
+  src = fetchFromGitHub {
+    owner = "aibasel";
+    repo = "downward";
+    rev = "release-${version}";
+    sha256 = "sha256-qc+SaUpIYm7bnOZlHH2mdvUaMBB+VRyOCQM/BOoOaPE=";
   };
 
-  nativeBuildInputs = [ cmake which ];
-  buildInputs = [ python3 python3.pkgs.wrapPython osi ];
+  nativeBuildInputs = [ cmake python3.pkgs.wrapPython ];
+  buildInputs = [ python3 osi ];
 
-  cmakeFlags =
-    lib.optional osi.withCplex [ "-DDOWNWARD_CPLEX_ROOT=${cplex}/cplex" ];
+  cmakeFlags = lib.optional osi.withCplex [ "-DDOWNWARD_CPLEX_ROOT=${cplex}/cplex" ];
 
   configurePhase = ''
     python build.py release
@@ -54,7 +61,7 @@ stdenv.mkDerivation {
     description = "A domain-independent planning system";
     homepage = "https://www.fast-downward.org/";
     license = licenses.gpl3Plus;
-    platforms = with platforms; (linux ++ darwin);
+    platforms = platforms.unix;
     maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/pkgs/applications/science/logic/isabelle/default.nix b/pkgs/applications/science/logic/isabelle/default.nix
index 6696527cece2c..9e5d40be2c6d5 100644
--- a/pkgs/applications/science/logic/isabelle/default.nix
+++ b/pkgs/applications/science/logic/isabelle/default.nix
@@ -1,7 +1,33 @@
-{ lib, stdenv, fetchurl, coreutils, nettools, java, scala, polyml, z3, veriT, vampire, eprover-ho, naproche, rlwrap, perl, makeDesktopItem, isabelle-components, isabelle, symlinkJoin }:
+{ lib, stdenv, fetchurl, coreutils, nettools, java, scala, polyml, z3, veriT, vampire, eprover-ho, naproche, rlwrap, perl, makeDesktopItem, isabelle-components, isabelle, symlinkJoin, fetchhg }:
 # nettools needed for hostname
 
-stdenv.mkDerivation rec {
+let
+  sha1 = stdenv.mkDerivation {
+    pname = "isabelle-sha1";
+    version = "2021-1";
+
+    src = fetchhg {
+      url = "https://isabelle.sketis.net/repos/sha1";
+      rev = "e0239faa6f42";
+      sha256 = "sha256-4sxHzU/ixMAkSo67FiE6/ZqWJq9Nb9OMNhMoXH2bEy4=";
+    };
+
+    buildPhase = (if stdenv.isDarwin then ''
+      LDFLAGS="-dynamic -undefined dynamic_lookup -lSystem"
+    '' else ''
+      LDFLAGS="-fPIC -shared"
+    '') + ''
+      CFLAGS="-fPIC -I."
+      $CC $CFLAGS -c sha1.c -o sha1.o
+      $LD $LDFLAGS sha1.o -o libsha1.so
+    '';
+
+    installPhase = ''
+      mkdir -p $out/lib
+      cp libsha1.so $out/lib/
+    '';
+  };
+in stdenv.mkDerivation rec {
   pname = "isabelle";
   version = "2021-1";
 
@@ -82,6 +108,9 @@ stdenv.mkDerivation rec {
       --replace 'cmd.add("/usr/bin/env");' "" \
       --replace 'cmd.add("bash");' "cmd.add(\"$SHELL\");"
 
+    substituteInPlace src/Pure/General/sha1.ML \
+      --replace '"$ML_HOME/" ^ (if ML_System.platform_is_windows then "sha1.dll" else "libsha1.so")' '"${sha1}/lib/libsha1.so"'
+
     rm -r heaps
   '' + (if ! stdenv.isLinux then "" else ''
     arch=${if stdenv.hostPlatform.system == "x86_64-linux" then "x86_64-linux" else "x86-linux"}
diff --git a/pkgs/applications/science/logic/key/default.nix b/pkgs/applications/science/logic/key/default.nix
index 85a7ecb08c396..aee1a9c63f8fe 100644
--- a/pkgs/applications/science/logic/key/default.nix
+++ b/pkgs/applications/science/logic/key/default.nix
@@ -7,7 +7,7 @@
 , makeWrapper
 , makeDesktopItem
 , copyDesktopItems
-, testVersion
+, testers
 , key
 }:
 
@@ -98,7 +98,7 @@ in stdenv.mkDerivation rec {
   '';
 
   passthru.tests.version =
-    testVersion {
+    testers.testVersion {
       package = key;
       command = "KeY --help";
     };
@@ -118,4 +118,3 @@ in stdenv.mkDerivation rec {
     platforms = platforms.all;
   };
 }
-
diff --git a/pkgs/applications/science/logic/naproche/default.nix b/pkgs/applications/science/logic/naproche/default.nix
index 5e286a9b57e32..047ed73262eee 100644
--- a/pkgs/applications/science/logic/naproche/default.nix
+++ b/pkgs/applications/science/logic/naproche/default.nix
@@ -2,13 +2,13 @@
 
 with haskellPackages; mkDerivation {
   pname = "Naproche-SAD";
-  version = "0.1.0.0";
+  version = "2022-04-19";
 
   src = fetchFromGitHub {
     owner = "naproche";
     repo = "naproche";
-    rev = "d39cea85ace04d5b3775fde9972a33886799bfe6";
-    sha256 = "1zqrldmxkzbyg9bssrbwb00zic29904igcipaz1m9al0456yjnkf";
+    rev = "2514c04e715395b7a839e11b63046eafb9c6a1da";
+    sha256 = "1bdgyk4fk65xi7n778rbgddpg4zhggj8wjslxbizrzi81my9a3vm";
   };
 
   isExecutable = true;
diff --git a/pkgs/applications/science/logic/potassco/clingcon.nix b/pkgs/applications/science/logic/potassco/clingcon.nix
index 1614adf45537e..d7ec2e72433e3 100644
--- a/pkgs/applications/science/logic/potassco/clingcon.nix
+++ b/pkgs/applications/science/logic/potassco/clingcon.nix
@@ -2,6 +2,7 @@
 , fetchFromGitHub
 , cmake
 , clingo
+, catch2
 }:
 
 stdenv.mkDerivation rec {
@@ -15,6 +16,10 @@ stdenv.mkDerivation rec {
     sha256 = "1g2xkz9nsgqnrw3fdf5jchl16f0skj5mm32va61scc2yrchll166";
    };
 
+  postPatch = ''
+    cp ${catch2}/include/catch2/catch.hpp libclingcon/tests/catch.hpp
+  '';
+
   nativeBuildInputs = [ cmake clingo ];
 
   cmakeFlags = [
diff --git a/pkgs/applications/science/logic/symbiyosys/default.nix b/pkgs/applications/science/logic/symbiyosys/default.nix
index b9bf480f7e6da..ffc61ed1d03bb 100644
--- a/pkgs/applications/science/logic/symbiyosys/default.nix
+++ b/pkgs/applications/science/logic/symbiyosys/default.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation {
     homepage    = "https://symbiyosys.readthedocs.io/";
     license     = lib.licenses.isc;
     maintainers = with lib.maintainers; [ thoughtpolice emily ];
+    mainProgram = "sby";
     platforms   = lib.platforms.all;
   };
 }
diff --git a/pkgs/applications/science/logic/symfpu/default.nix b/pkgs/applications/science/logic/symfpu/default.nix
new file mode 100644
index 0000000000000..af61b7c617c78
--- /dev/null
+++ b/pkgs/applications/science/logic/symfpu/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "symfpu";
+  version = "unstable-2019-05-17";
+
+  src = fetchFromGitHub {
+    owner  = "martin-cs";
+    repo   = "symfpu";
+    rev    = "8fbe139bf0071cbe0758d2f6690a546c69ff0053";
+    sha256 = "1jf5lkn67q136ppfacw3lsry369v7mdr1rhidzjpbz18jfy9zl9q";
+  };
+
+  installPhase = ''
+    mkdir -p $out/symfpu
+    cp -r * $out/symfpu/
+  '';
+
+  meta = with lib; {
+    description = "A (concrete or symbolic) implementation of IEEE-754 / SMT-LIB floating-point";
+    homepage    = "https://github.com/martin-cs/symfpu";
+    license     = licenses.gpl3Only;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ shadaj ];
+  };
+}
diff --git a/pkgs/applications/science/logic/tlaplus/toolbox.nix b/pkgs/applications/science/logic/tlaplus/toolbox.nix
index 7b1ee4384c9e8..e13fd578927d1 100644
--- a/pkgs/applications/science/logic/tlaplus/toolbox.nix
+++ b/pkgs/applications/science/logic/tlaplus/toolbox.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
       "$(find "$out/toolbox" -name jspawnhelper)"
 
     makeWrapper $out/toolbox/toolbox $out/bin/tla-toolbox \
-      --run "set -x; cd $out/toolbox" \
+      --chdir "$out/toolbox" \
       --add-flags "-data ~/.tla-toolbox" \
       --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk3 libXtst glib zlib ]}"  \
       "''${gappsWrapperArgs[@]}"
diff --git a/pkgs/applications/science/logic/z3/default.nix b/pkgs/applications/science/logic/z3/default.nix
index a820539eb9a31..985df6a8f5f04 100644
--- a/pkgs/applications/science/logic/z3/default.nix
+++ b/pkgs/applications/science/logic/z3/default.nix
@@ -18,78 +18,78 @@ assert ocamlBindings -> ocaml != null && findlib != null && zarith != null;
 
 with lib;
 
-stdenv.mkDerivation rec {
-  pname = "z3";
-  version = "4.8.14";
+let common = { version, sha256, patches ? [ ] }:
+  stdenv.mkDerivation rec {
+    pname = "z3";
+    inherit version sha256 patches;
+    src = fetchFromGitHub {
+      owner = "Z3Prover";
+      repo = pname;
+      rev = "z3-${version}";
+      sha256 = sha256;
+    };
 
-  src = fetchFromGitHub {
-    owner = "Z3Prover";
-    repo = pname;
-    rev = "z3-${version}";
-    sha256 = "jPSTVSndp/T7n+VxZ/g9Rjco00Up+9xeDIVkeLl1MTw=";
-  };
-
-  nativeBuildInputs = optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
-  buildInputs = [ python ]
-    ++ optional javaBindings jdk
-    ++ optionals ocamlBindings [ ocaml findlib zarith ]
-  ;
-  propagatedBuildInputs = [ python.pkgs.setuptools ];
-  enableParallelBuilding = true;
-
-  postPatch = optionalString ocamlBindings ''
-    export OCAMLFIND_DESTDIR=$ocaml/lib/ocaml/${ocaml.version}/site-lib
-    mkdir -p $OCAMLFIND_DESTDIR/stublibs
-  '';
-
-  configurePhase = concatStringsSep " "
-    (
-      [ "${python.interpreter} scripts/mk_make.py --prefix=$out" ]
-        ++ optional javaBindings "--java"
-        ++ optional ocamlBindings "--ml"
-        ++ optional pythonBindings "--python --pypkgdir=$out/${python.sitePackages}"
-    ) + "\n" + "cd build";
-
-  postInstall = ''
-    mkdir -p $dev $lib
-    mv $out/lib $lib/lib
-    mv $out/include $dev/include
-  '' + optionalString pythonBindings ''
-    mkdir -p $python/lib
-    mv $lib/lib/python* $python/lib/
-    ln -sf $lib/lib/libz3${stdenv.hostPlatform.extensions.sharedLibrary} $python/${python.sitePackages}/z3/lib/libz3${stdenv.hostPlatform.extensions.sharedLibrary}
-  '' + optionalString javaBindings ''
-    mkdir -p $java/share/java
-    mv com.microsoft.z3.jar $java/share/java
-    moveToOutput "lib/libz3java.${stdenv.hostPlatform.extensions.sharedLibrary}" "$java"
-  '';
+    nativeBuildInputs = optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
+    buildInputs = [ python ]
+      ++ optional javaBindings jdk
+      ++ optionals ocamlBindings [ ocaml findlib zarith ]
+    ;
+    propagatedBuildInputs = [ python.pkgs.setuptools ];
+    enableParallelBuilding = true;
 
-  outputs = [ "out" "lib" "dev" "python" ]
-    ++ optional javaBindings "java"
-    ++ optional ocamlBindings "ocaml";
+    postPatch = optionalString ocamlBindings ''
+      export OCAMLFIND_DESTDIR=$ocaml/lib/ocaml/${ocaml.version}/site-lib
+      mkdir -p $OCAMLFIND_DESTDIR/stublibs
+    '';
 
-   passthru = {
-    updateScript = writeScript "update-z3" ''
-      #!/usr/bin/env nix-shell
-      #!nix-shell -i bash -p common-updater-scripts curl jq
+    configurePhase = concatStringsSep " "
+      (
+        [ "${python.interpreter} scripts/mk_make.py --prefix=$out" ]
+          ++ optional javaBindings "--java"
+          ++ optional ocamlBindings "--ml"
+          ++ optional pythonBindings "--python --pypkgdir=$out/${python.sitePackages}"
+      ) + "\n" + "cd build";
 
-      set -eu -o pipefail
+    doCheck = true;
+    checkPhase = ''
+      make test
+      ./test-z3 -a
+    '';
 
-      # Expect tags in format
-      #    [{name: "Nightly", ..., {name: "z3-vv.vv.vv", ...].
-      # Below we extract frst "z3-vv.vv" and drop "z3-" prefix.
-      newVersion="$(curl -s https://api.github.com/repos/Z3Prover/z3/releases |
-          jq 'first(.[].name|select(startswith("z3-"))|ltrimstr("z3-"))' --raw-output
-      )"
-      update-source-version ${pname} "$newVersion"
+    postInstall = ''
+      mkdir -p $dev $lib
+      mv $out/lib $lib/lib
+      mv $out/include $dev/include
+    '' + optionalString pythonBindings ''
+      mkdir -p $python/lib
+      mv $lib/lib/python* $python/lib/
+      ln -sf $lib/lib/libz3${stdenv.hostPlatform.extensions.sharedLibrary} $python/${python.sitePackages}/z3/lib/libz3${stdenv.hostPlatform.extensions.sharedLibrary}
+    '' + optionalString javaBindings ''
+      mkdir -p $java/share/java
+      mv com.microsoft.z3.jar $java/share/java
+      moveToOutput "lib/libz3java.${stdenv.hostPlatform.extensions.sharedLibrary}" "$java"
     '';
-   };
 
-  meta = with lib; {
-    description = "A high-performance theorem prover and SMT solver";
-    homepage = "https://github.com/Z3Prover/z3";
-    license = licenses.mit;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ thoughtpolice ttuegel ];
+    outputs = [ "out" "lib" "dev" "python" ]
+      ++ optional javaBindings "java"
+      ++ optional ocamlBindings "ocaml";
+
+    meta = with lib; {
+      description = "A high-performance theorem prover and SMT solver";
+      homepage = "https://github.com/Z3Prover/z3";
+      license = licenses.mit;
+      platforms = platforms.unix;
+      maintainers = with maintainers; [ thoughtpolice ttuegel ];
+    };
+  };
+in
+{
+  z3_4_8 = common {
+    version = "4.8.15";
+    sha256 = "0xkwqz0y5d1lfb6kfqy8wn8n2dqalzf4c8ghmjsajc1bpdl70yc5";
+  };
+  z3_4_7 = common {
+    version = "4.7.1";
+    sha256 = "1s850r6qifwl83zzgvrb5l0jigvmymzpv18ph71hg2bcpk7kjw3d";
   };
 }
diff --git a/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix b/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
index dbb187dc35eeb..0df8a0525be51 100644
--- a/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
+++ b/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
@@ -50,5 +50,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/finalfusion/finalfusion-utils/";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
+    mainProgram = "finalfusion";
   };
 }
diff --git a/pkgs/applications/science/math/caffe/default.nix b/pkgs/applications/science/math/caffe/default.nix
index 74b89ed98c550..d6c95633dd520 100644
--- a/pkgs/applications/science/math/caffe/default.nix
+++ b/pkgs/applications/science/math/caffe/default.nix
@@ -13,13 +13,17 @@
 , Accelerate, CoreGraphics, CoreVideo
 , lmdbSupport ? true, lmdb
 , leveldbSupport ? true, leveldb, snappy
-, cudaSupport ? config.cudaSupport or false, cudatoolkit
-, cudnnSupport ? cudaSupport, cudnn ? null
-, ncclSupport ? false, nccl ? null
+, cudaSupport ? config.cudaSupport or false, cudaPackages ? {}
+, cudnnSupport ? cudaSupport
+, ncclSupport ? false
 , pythonSupport ? false, python ? null, numpy ? null
 , substituteAll
 }:
 
+let
+  inherit (cudaPackages) cudatoolkit cudnn nccl;
+in
+
 assert leveldbSupport -> (leveldb != null && snappy != null);
 assert cudnnSupport -> cudaSupport;
 assert ncclSupport -> cudaSupport;
@@ -138,6 +142,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "http://caffe.berkeleyvision.org/";
     maintainers = with maintainers; [ ];
+    broken = pythonSupport && (python.isPy310);
     license = licenses.bsd2;
     platforms = platforms.linux ++ platforms.darwin;
   };
diff --git a/pkgs/applications/science/math/calc/default.nix b/pkgs/applications/science/math/calc/default.nix
index f9931c7d4c96b..41adb1cfbe6cb 100644
--- a/pkgs/applications/science/math/calc/default.nix
+++ b/pkgs/applications/science/math/calc/default.nix
@@ -3,14 +3,14 @@
 
 stdenv.mkDerivation rec {
   pname = "calc";
-  version = "2.14.0.14";
+  version = "2.14.1.0";
 
   src = fetchurl {
     urls = [
       "https://github.com/lcn2/calc/releases/download/${version}/${pname}-${version}.tar.bz2"
       "http://www.isthe.com/chongo/src/calc/${pname}-${version}.tar.bz2"
     ];
-    sha256 = "sha256-93J4NaED2XEsVxlY6STpwlS9FI8I60NIAZvDT45xxV0=";
+    sha256 = "sha256-C1YWZS4x7htUWF3MhRLQIYChL4rdwJxASdPQjttUr0A=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/science/math/calculix/calculix.patch b/pkgs/applications/science/math/calculix/calculix.patch
index 2334d54711e5a..36048546948c5 100644
--- a/pkgs/applications/science/math/calculix/calculix.patch
+++ b/pkgs/applications/science/math/calculix/calculix.patch
@@ -1,7 +1,8 @@
-diff -Naur a/ccx_2.17/src/Makefile b/ccx_2.17/src/Makefile
---- a/ccx_2.17/src/Makefile	2020-07-23 21:41:38.507761972 +0200
-+++ b/ccx_2.17/src/Makefile	2020-08-22 16:53:50.004938281 +0200
-@@ -18,15 +18,10 @@
+diff --git a/ccx_2.19/src/Makefile b/ccx_2.19/src/Makefile
+index c503513..8a69a0c 100755
+--- a/ccx_2.19/src/Makefile
++++ b/ccx_2.19/src/Makefile
+@@ -18,15 +18,10 @@ OCCXF = $(SCCXF:.f=.o)
  OCCXC = $(SCCXC:.c=.o)
  OCCXMAIN = $(SCCXMAIN:.c=.o)
  
@@ -13,10 +14,10 @@ diff -Naur a/ccx_2.17/src/Makefile b/ccx_2.17/src/Makefile
 -	../../../ARPACK/libarpack_INTEL.a \
 -       -lpthread -lm -lc
 -
--ccx_2.17: $(OCCXMAIN) ccx_2.17.a  $(LIBS)
--	./date.pl; $(CC) $(CFLAGS) -c ccx_2.17.c; $(FC)  -Wall -O2 -o $@ $(OCCXMAIN) ccx_2.17.a $(LIBS)
-+ccx_2.17: $(OCCXMAIN) ccx_2.17.a
-+	$(CC) $(CFLAGS) -c ccx_2.17.c; $(FC)  -Wall -O2 -o $@ $(OCCXMAIN) ccx_2.17.a $(LIBS)
+-ccx_2.19: $(OCCXMAIN) ccx_2.19.a  $(LIBS)
+-	./date.pl; $(CC) $(CFLAGS) -c ccx_2.19.c; $(FC)  -Wall -O2 -o $@ $(OCCXMAIN) ccx_2.19.a $(LIBS) -fopenmp
++ccx_2.19: $(OCCXMAIN) ccx_2.19.a
++	$(CC) $(CFLAGS) -c ccx_2.19.c; $(FC)  -Wall -O2 -o $@ $(OCCXMAIN) ccx_2.19.a $(LIBS) -fopenmp
  
- ccx_2.17.a: $(OCCXF) $(OCCXC)
+ ccx_2.19.a: $(OCCXF) $(OCCXC)
  	ar vr $@ $?
diff --git a/pkgs/applications/science/math/calculix/default.nix b/pkgs/applications/science/math/calculix/default.nix
index e9766b32c2a48..df943277a627e 100644
--- a/pkgs/applications/science/math/calculix/default.nix
+++ b/pkgs/applications/science/math/calculix/default.nix
@@ -2,18 +2,21 @@
 
 stdenv.mkDerivation rec {
   pname = "calculix";
-  version = "2.17";
+  version = "2.19";
 
   src = fetchurl {
     url = "http://www.dhondt.de/ccx_${version}.src.tar.bz2";
-    sha256 = "0l3fizxfdj2mpdp62wnk9v47q2yc3cy39fpsm629z7bjmba8lw6a";
+    sha256 = "01vdy9sns58hkm39z6d0r5y7gzqf5z493d18jin9krqib1l6jnn7";
   };
 
   nativeBuildInputs = [ gfortran ];
 
   buildInputs = [ arpack spooles blas lapack ];
 
-  NIX_CFLAGS_COMPILE = "-I${spooles}/include/spooles";
+  NIX_CFLAGS_COMPILE = [
+    "-I${spooles}/include/spooles"
+    "-std=legacy"
+  ];
 
   patches = [
     ./calculix.patch
diff --git a/pkgs/applications/science/math/cntk/default.nix b/pkgs/applications/science/math/cntk/default.nix
index eb14982575a27..d39c04e8feecb 100644
--- a/pkgs/applications/science/math/cntk/default.nix
+++ b/pkgs/applications/science/math/cntk/default.nix
@@ -2,10 +2,14 @@
 , fetchpatch
 , openblas, blas, lapack, opencv3, libzip, boost, protobuf, mpi
 , onebitSGDSupport ? false
-, cudaSupport ? false, addOpenGLRunpath, cudatoolkit, nvidia_x11
-, cudnnSupport ? cudaSupport, cudnn
+, cudaSupport ? false, cudaPackages ? {}, addOpenGLRunpath, cudatoolkit, nvidia_x11
+, cudnnSupport ? cudaSupport
 }:
 
+let
+  inherit (cudaPackages) cudatoolkit cudnn;
+in
+
 assert cudnnSupport -> cudaSupport;
 assert blas.implementation == "openblas" && lapack.implementation == "openblas";
 
diff --git a/pkgs/applications/science/math/giac/default.nix b/pkgs/applications/science/math/giac/default.nix
index 4700402ff21e2..d684865432d5c 100644
--- a/pkgs/applications/science/math/giac/default.nix
+++ b/pkgs/applications/science/math/giac/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchurl, fetchpatch, texlive, bison, flex, lapack, blas
-, gmp, mpfr, pari, ntl, gsl, mpfi, ecm, glpk, nauty
-, readline, gettext, libpng, libao, gfortran, perl
+, autoreconfHook, gmp, mpfr, pari, ntl, gsl, mpfi, ecm, glpk, nauty
+, buildPackages, readline, gettext, libpng, libao, gfortran, perl
 , enableGUI ? false, libGL, libGLU, xorg, fltk
 , enableMicroPy ? false, python3
 }:
@@ -9,11 +9,11 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
   pname = "giac${lib.optionalString enableGUI "-with-xcas"}";
-  version = "1.6.0-47"; # TODO try to remove preCheck phase on upgrade
+  version = "1.9.0-5"; # TODO try to remove preCheck phase on upgrade
 
   src = fetchurl {
     url = "https://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source/giac_${version}.tar.gz";
-    sha256 = "sha256-c5A9/I6L/o3Y3dxEPoTKpw/fJqYMr6euLldaQ1HWT5c=";
+    sha256 = "sha256-EP8wRi8QZPrr1lfKN6da87s1FCy8AuDYbzcvsJCWyLE=";
   };
 
   patches = [
@@ -32,18 +32,21 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  # 1.9.0-5's tarball contains a binary (src/mkjs) which is executed
+  # at build time. we will delete and rebuild it.
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+
   postPatch = ''
     for i in doc/*/Makefile* micropython*/xcas/Makefile*; do
       substituteInPlace "$i" --replace "/bin/cp" "cp";
     done;
-  '' +
-  # workaround for 1.6.0-47, should not be necessary in future versions
-  lib.optionalString (!enableMicroPy) ''
-    sed -i -e 's/micropython-[0-9.]* //' Makefile*
+    rm src/mkjs
+    substituteInPlace src/Makefile.am --replace "g++ mkjs.cc" \
+      "${buildPackages.stdenv.cc.targetPrefix}c++ mkjs.cc"
   '';
 
   nativeBuildInputs = [
-    texlive.combined.scheme-small bison flex
+    autoreconfHook texlive.combined.scheme-small bison flex
   ];
 
   # perl is only needed for patchShebangs fixup.
@@ -58,13 +61,6 @@ stdenv.mkDerivation rec {
     libGL libGLU fltk xorg.libX11
   ] ++ lib.optional enableMicroPy python3;
 
-  /* fixes:
-  configure:16211: checking for main in -lntl
-  configure:16230: g++ -o conftest -g -O2   conftest.cpp -lntl  -llapack -lblas -lgfortran -ldl -lpng16 -lm -lmpfi -lmpfr -lgmp  >&5
-  /nix/store/y9c1v4x7y39j2rfbg17agjwqdzxpsn18-ntl-11.3.2/lib/libntl.so: undefined reference to `pthread_key_create'
-  */
-  NIX_CFLAGS_LINK="-lpthread";
-
   # xcas Phys and Turtle menus are broken with split outputs
   # and interactive use is likely to need docs
   outputs = [ "out" ] ++ lib.optional (!enableGUI) "doc";
diff --git a/pkgs/applications/science/math/mxnet/default.nix b/pkgs/applications/science/math/mxnet/default.nix
index c9ffb8ed5cb3a..8353226cefed8 100644
--- a/pkgs/applications/science/math/mxnet/default.nix
+++ b/pkgs/applications/science/math/mxnet/default.nix
@@ -1,9 +1,14 @@
 { config, stdenv, lib, fetchurl, fetchpatch, bash, cmake
 , opencv3, gtest, blas, gomp, llvmPackages, perl
-, cudaSupport ? config.cudaSupport or false, cudatoolkit, nvidia_x11
-, cudnnSupport ? cudaSupport, cudnn
+, cudaSupport ? config.cudaSupport or false, cudaPackages ? {}, nvidia_x11
+, cudnnSupport ? cudaSupport
+, cudaCapabilities ? [ "3.7" "5.0" "6.0" "7.0" "7.5" "8.0" "8.6" ]
 }:
 
+let
+  inherit (cudaPackages) cudatoolkit cudnn;
+in
+
 assert cudnnSupport -> cudaSupport;
 
 stdenv.mkDerivation rec {
@@ -44,6 +49,7 @@ stdenv.mkDerivation rec {
       "-DUSE_OLDCMAKECUDA=ON"  # see https://github.com/apache/incubator-mxnet/issues/10743
       "-DCUDA_ARCH_NAME=All"
       "-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/cc"
+      "-DMXNET_CUDA_ARCH=${lib.concatStringsSep ";" cudaCapabilities}"
     ] else [ "-DUSE_CUDA=OFF" ])
     ++ lib.optional (!cudnnSupport) "-DUSE_CUDNN=OFF";
 
@@ -60,6 +66,12 @@ stdenv.mkDerivation rec {
     rm "$out"/lib/*.a
   '';
 
+  # used to mark cudaSupport in python310Packages.mxnet as broken;
+  # other attributes exposed for consistency
+  passthru = {
+    inherit cudaSupport cudnnSupport cudatoolkit cudnn;
+  };
+
   meta = with lib; {
     description = "Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler";
     homepage = "https://mxnet.incubator.apache.org/";
diff --git a/pkgs/applications/science/math/qalculate-gtk/default.nix b/pkgs/applications/science/math/qalculate-gtk/default.nix
index 4f68eb6ae78d4..9571588040b33 100644
--- a/pkgs/applications/science/math/qalculate-gtk/default.nix
+++ b/pkgs/applications/science/math/qalculate-gtk/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qalculate-gtk";
-  version = "4.1.0";
+  version = "4.1.1";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "qalculate-gtk";
     rev = "v${version}";
-    sha256 = "sha256-EOiExp8JBc3SybSiBVbuRxBqTujzLjysWM0v94goups=";
+    sha256 = "sha256-itYNKcdWYMoqlvZ7CYJ6WMv7rS/y1SVdt3O7ahkjPOk=";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/applications/science/math/sage/patches/docutils-0.18.1-deprecation.patch b/pkgs/applications/science/math/sage/patches/docutils-0.18.1-deprecation.patch
new file mode 100644
index 0000000000000..94e0488e21e77
--- /dev/null
+++ b/pkgs/applications/science/math/sage/patches/docutils-0.18.1-deprecation.patch
@@ -0,0 +1,13 @@
+diff --git a/src/sage/misc/sagedoc.py b/src/sage/misc/sagedoc.py
+index 4c56aea078..e51a77ae8a 100644
+--- a/src/sage/misc/sagedoc.py
++++ b/src/sage/misc/sagedoc.py
+@@ -1402,6 +1402,8 @@ class _sage_doc:
+             sage: identity_matrix.__doc__ in browse_sage_doc(identity_matrix, 'rst')
+             True
+             sage: browse_sage_doc(identity_matrix, 'html', False)             # optional - sphinx
++            ...
++            FutureWarning: The configuration setting "embed_images" will be removed in Docutils 1.2. Use "image_loading: link".
+             '...div...File:...Type:...Definition:...identity_matrix...'
+ 
+         In the 'text' version, double colons have been replaced with
diff --git a/pkgs/applications/science/math/sage/sage-env.nix b/pkgs/applications/science/math/sage/sage-env.nix
index e680c0c3b22d3..cdff1e8477abd 100644
--- a/pkgs/applications/science/math/sage/sage-env.nix
+++ b/pkgs/applications/science/math/sage/sage-env.nix
@@ -151,6 +151,7 @@ writeTextFile rec {
 
     # needed for cython
     export CC='${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc'
+    export CXX='${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++'
     # cython needs to find these libraries, otherwise will fail with `ld: cannot find -lflint` or similar
     export LDFLAGS='${
       lib.concatStringsSep " " (map (pkg: "-L${pkg}/lib") [
@@ -178,6 +179,7 @@ writeTextFile rec {
         mpfr.dev
       ])
     }'
+    export CXXFLAGS=$CFLAGS
 
     export SAGE_LIB='${sagelib}/${python3.sitePackages}'
 
diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix
index 22e3a288b7d78..b230b0d42a03a 100644
--- a/pkgs/applications/science/math/sage/sage-src.nix
+++ b/pkgs/applications/science/math/sage/sage-src.nix
@@ -13,9 +13,14 @@ let
   # Fetch a diff between `base` and `rev` on sage's git server.
   # Used to fetch trac tickets by setting the `base` to the last release and the
   # `rev` to the last commit of the ticket.
-  fetchSageDiff = { base, name, rev, sha256, squashed ? false, ...}@args: (
+  #
+  # We don't use sage's own build system (which builds all its
+  # dependencies), so we exclude changes to "build/" from patches by
+  # default to avoid conflicts.
+  fetchSageDiff = { base, name, rev, sha256, squashed ? false, excludes ? [ "build/*" ]
+                  , ...}@args: (
     fetchpatch ({
-      inherit name sha256;
+      inherit name sha256 excludes;
 
       # There are three places to get changes from:
       #
@@ -49,11 +54,7 @@ let
                "https://github.com/sagemath/sagetrac-mirror/compare/${base}...${rev}.diff"
              ]
              else [ "https://git.sagemath.org/sage.git/patch?id2=${base}&id=${rev}" ];
-
-      # We don't care about sage's own build system (which builds all its dependencies).
-      # Exclude build system changes to avoid conflicts.
-      excludes = [ "build/*" ];
-    } // builtins.removeAttrs args [ "rev" "base" "sha256" "squashed" ])
+    } // builtins.removeAttrs args [ "rev" "base" "sha256" "squashed" "excludes" ])
   );
 in
 stdenv.mkDerivation rec {
@@ -121,10 +122,10 @@ stdenv.mkDerivation rec {
 
     # https://trac.sagemath.org/ticket/33170
     (fetchSageDiff {
-      base = "9.5.rc1";
-      name = "ipython-8-update.patch";
-      rev = "a90a314616d86d6be9c0d5233f0d36c4bfe06231";
-      sha256 = "sha256-pXdtokTo84xNCnV+HyAKEzG562z8FjzJ7hczOja0dRw=";
+      base = "9.6.beta5";
+      name = "ipython-8.1-update.patch";
+      rev = "4d2b53f1541375861310af3a7f7109c1c2ed475d";
+      sha256 = "sha256-ELda/VBzsQH7NdFas69fQ35QPUoJCeLx/gxT1j7qGR8=";
     })
 
     # https://trac.sagemath.org/ticket/32968
@@ -156,6 +157,45 @@ stdenv.mkDerivation rec {
 
     # adapted from https://trac.sagemath.org/ticket/23712#comment:22
     ./patches/tachyon-renamed-focallength.patch
+
+    # https://trac.sagemath.org/ticket/33336
+    (fetchSageDiff {
+      base = "9.6.beta2";
+      name = "scipy-1.8-update.patch";
+      rev = "9c8235e44ffb509efa8a3ca6cdb55154e2b5066d";
+      sha256 = "sha256-bfc4ljNOxVnhlmxIuNbjbKl4vJXYq2tlF3Z8bbC8PWw=";
+    })
+
+    # https://trac.sagemath.org/ticket/33495
+    (fetchSageDiff {
+      base = "9.6.beta5";
+      name = "networkx-2.7-update.patch";
+      rev = "8452003846a7303100847d8d0ed642fc642c11d6";
+      sha256 = "sha256-A/XMouPlc2sjFp30L+56fBGJXydS2EtzfPOV98FCDqI=";
+    })
+
+    # https://trac.sagemath.org/ticket/33226
+    (fetchSageDiff {
+      base = "9.6.beta0";
+      name = "giac-1.7.0-45-update.patch";
+      rev = "33ea2adf01e9e2ce9f1e33779f0b1ac0d9d1989c";
+      sha256 = "sha256-DOyxahf3+IaYdkgmAReNDCorRzMgO8+yiVrJ5TW1km0=";
+    })
+
+    # https://trac.sagemath.org/ticket/33398
+    (fetchSageDiff {
+      base = "9.6.beta4";
+      name = "sympy-1.10-update.patch";
+      rev = "6b7c3a28656180e42163dc10f7b4a571b93e5f27";
+      sha256 = "sha256-fnUyM2yjHkCykKRfzQQ4glcUYmCS/fYzDzmCf0nuebk=";
+      # The patch contains a whitespace change to a file that didn't exist in Sage 9.5.
+      excludes = [ "build/*" "src/sage/manifolds/vector_bundle_fiber_element.py" ];
+    })
+
+    # docutils 0.18.1 now triggers Sphinx warnings. tolerate them for
+    # now, because patching Sphinx is not feasible.
+    # https://github.com/sphinx-doc/sphinx/issues/9777#issuecomment-1104481271
+    ./patches/docutils-0.18.1-deprecation.patch
   ];
 
   patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
diff --git a/pkgs/applications/science/math/sage/sagelib.nix b/pkgs/applications/science/math/sage/sagelib.nix
index 8d685c8da60f9..92eae35688f71 100644
--- a/pkgs/applications/science/math/sage/sagelib.nix
+++ b/pkgs/applications/science/math/sage/sagelib.nix
@@ -181,11 +181,16 @@ buildPythonPackage rec {
     # some files, like Pipfile, pyproject.toml, requirements.txt and setup.cfg
     # are generated by the bootstrap script using m4. these can fetch data from
     # build/pkgs, either directly or via sage-get-system-packages.
-    sed -i 's/==2.1.0rc1/>=2.1.1/' ../gmpy2/install-requires.txt
-    sed -i 's/, <3.4//' ../rpy2/install-requires.txt
-    sed -i 's/, <4.3//' ../sphinx/install-requires.txt
     sed -i '/sage_conf/d' src/setup.cfg.m4
     sed -i '/sage_conf/d' src/requirements.txt.m4
+
+    # version lower bounds are useful, but upper bounds are a hassle because
+    # Sage tests already catch any relevant API breakage.
+    # according to the discussion at https://trac.sagemath.org/ticket/33520,
+    # upper bounds will be less noisy starting from Sage 9.6.
+    sed -i 's/==2.1.0rc1/>=2.1.1/' ../gmpy2/install-requires.txt
+    sed -i 's/, <[^, ]*//' ../*/install-requires.txt
+
     for infile in src/*.m4; do
         if [ -f "$infile" ]; then
             outfile="src/$(basename $infile .m4)"
diff --git a/pkgs/applications/science/math/wolfram-engine/default.nix b/pkgs/applications/science/math/wolfram-engine/default.nix
new file mode 100644
index 0000000000000..df9e2f88dfca5
--- /dev/null
+++ b/pkgs/applications/science/math/wolfram-engine/default.nix
@@ -0,0 +1,143 @@
+{ lib
+, stdenv
+, autoPatchelfHook
+, requireFile
+, callPackage
+, makeWrapper
+, alsa-lib
+, dbus
+, fontconfig
+, freetype
+, gcc
+, glib
+, installShellFiles
+, libssh2
+, ncurses
+, opencv4
+, openssl
+, unixODBC
+, xkeyboard_config
+, xorg
+, zlib
+, libxml2
+, libuuid
+, lang ? "en"
+, libGL
+, libGLU
+}:
+
+let
+  l10n = import ./l10ns.nix {
+    lib = lib;
+    inherit requireFile lang;
+  };
+  dirName = "WolframEngine";
+in
+stdenv.mkDerivation rec {
+  inherit (l10n) version name src;
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    installShellFiles
+    makeWrapper
+  ];
+
+  buildInputs = [
+    alsa-lib
+    dbus
+    fontconfig
+    freetype
+    gcc.cc
+    gcc.libc
+    glib
+    libssh2
+    ncurses
+    opencv4
+    openssl
+    stdenv.cc.cc.lib
+    unixODBC
+    xkeyboard_config
+    libxml2
+    libuuid
+    zlib
+    libGL
+    libGLU
+  ] ++ (with xorg; [
+    libX11
+    libXext
+    libXtst
+    libXi
+    libXmu
+    libXrender
+    libxcb
+    libXcursor
+    libXfixes
+    libXrandr
+    libICE
+    libSM
+  ]);
+
+  # some bundled libs are found through LD_LIBRARY_PATH
+  autoPatchelfIgnoreMissingDeps = true;
+
+  ldpath = lib.makeLibraryPath buildInputs
+    + lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux")
+      (":" + lib.makeSearchPathOutput "lib" "lib64" buildInputs);
+
+  unpackPhase = ''
+    # find offset from file
+    offset=$(${stdenv.shell} -c "$(grep -axm1 -e 'offset=.*' $src); echo \$offset" $src)
+    dd if="$src" ibs=$offset skip=1 | tar -xf -
+    cd Unix
+  '';
+
+  installPhase = ''
+    cd Installer
+    sed -i -e 's/^PATH=/# PATH=/' -e 's/=`id -[ug]`/=0/' MathInstaller
+
+    # Installer wants to write default config in HOME
+    export HOME=$(mktemp -d)
+
+    # Fix the installation script
+    patchShebangs MathInstaller
+    substituteInPlace MathInstaller \
+      --replace "`hostname`" "" \
+      --replace "chgrp" "# chgrp" \
+      --replace "chown" ": # chown"
+
+    # Install the desktop items
+    export XDG_DATA_HOME="$out/share"
+
+    ./MathInstaller -auto -createdir=y -execdir=$out/bin -targetdir=$out/libexec/${dirName} -silent
+
+    # Fix library paths
+    cd $out/libexec/${dirName}/Executables
+    for path in MathKernel WolframKernel math mcc wolfram; do
+      makeWrapper $out/libexec/${dirName}/Executables/$path $out/bin/$path --set LD_LIBRARY_PATH "${zlib}/lib:${stdenv.cc.cc.lib}/lib:${libssh2}/lib:\''${LD_LIBRARY_PATH}"
+    done
+
+    # ... and xkeyboard config path for Qt
+    for path in WolframPlayer wolframplayer; do
+      makeWrapper $out/libexec/${dirName}/Executables/$path $out/bin/$path \
+        --set LD_LIBRARY_PATH "${zlib}/lib:${stdenv.cc.cc.lib}/lib:${libssh2}/lib:\''${LD_LIBRARY_PATH}" \
+        --set QT_XKB_CONFIG_ROOT "${xkeyboard_config}/share/X11/xkb"
+    done
+
+    # Install man pages
+    installManPage $out/libexec/${dirName}/SystemFiles/SystemDocumentation/Unix/*
+  '';
+
+  # This is primarily an IO bound build; there's little benefit to building remotely.
+  preferLocalBuild = true;
+
+  # Stripping causes the program to core dump.
+  dontStrip = true;
+
+  meta = with lib; {
+    description = "Wolfram Engine computational software system";
+    homepage = "https://www.wolfram.com/engine/";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ fbeffa ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/science/math/wolfram-engine/l10ns.nix b/pkgs/applications/science/math/wolfram-engine/l10ns.nix
new file mode 100644
index 0000000000000..9bee8052c6e36
--- /dev/null
+++ b/pkgs/applications/science/math/wolfram-engine/l10ns.nix
@@ -0,0 +1,51 @@
+{ lib
+, requireFile
+, lang
+, majorVersion ? null
+}:
+
+let allVersions = with lib; flip map
+  # N.B. Versions in this list should be ordered from newest to oldest.
+  [
+    {
+      version = "13.0.1";
+      lang = "en";
+      language = "English";
+      sha256 = "1rrxi7d51m02407k719fq829jzanh550wr810i22n3irhk8axqga";
+      installer = "WolframEngine_13.0.1_LINUX.sh";
+    }
+    {
+      version = "13.0.0";
+      lang = "en";
+      language = "English";
+      sha256 = "10cpwllz9plxz22iqdh6xgkxqphl9s9nq8ax16pafjll6j9kqy1q";
+      installer = "WolframEngine_13.0.0_LINUX.sh";
+    }
+  ]
+  ({ version, lang, language, sha256, installer }: {
+    inherit version lang;
+    name = "wolfram-engine-${version}" + optionalString (lang != "en") "-${lang}";
+    src = requireFile {
+      name = installer;
+      message = ''
+        This nix expression requires that ${installer} is
+        already part of the store. Download the file from
+        https://www.wolfram.com/engine/ and add it to the nix store
+        with nix-store --add-fixed sha256 <FILE>.
+      '';
+      inherit sha256;
+    };
+  });
+minVersion =
+  with lib;
+  if majorVersion == null
+  then elemAt (builtins.splitVersion (elemAt allVersions 0).version) 0
+  else majorVersion;
+maxVersion = toString (1 + builtins.fromJSON minVersion);
+in
+with lib;
+findFirst (l: (l.lang == lang
+               && l.version >= minVersion
+               && l.version < maxVersion))
+          (throw "Version ${minVersion} in language ${lang} not supported")
+          allVersions
diff --git a/pkgs/applications/science/math/wolfram-engine/notebook.nix b/pkgs/applications/science/math/wolfram-engine/notebook.nix
new file mode 100644
index 0000000000000..85570eeca7fbc
--- /dev/null
+++ b/pkgs/applications/science/math/wolfram-engine/notebook.nix
@@ -0,0 +1,9 @@
+{ lib, stdenv, writeScriptBin, jupyter, wolfram-for-jupyter-kernel }:
+
+let
+  wolfram-jupyter = jupyter.override { definitions = { wolfram = wolfram-for-jupyter-kernel.definition; }; };
+in
+  writeScriptBin "wolfram-notebook" ''
+    #! ${stdenv.shell}
+    ${wolfram-jupyter}/bin/jupyter-notebook
+  ''
diff --git a/pkgs/applications/science/math/wxmaxima/default.nix b/pkgs/applications/science/math/wxmaxima/default.nix
index 76d2c782b4d4a..f14fb489a9964 100644
--- a/pkgs/applications/science/math/wxmaxima/default.nix
+++ b/pkgs/applications/science/math/wxmaxima/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wxmaxima";
-  version = "21.11.0";
+  version = "22.03.0";
 
   src = fetchFromGitHub {
     owner = "wxMaxima-developers";
     repo = "wxmaxima";
     rev = "Version-${version}";
-    sha256 = "sha256-LwuqldMGsmFR8xrNg5vsrogmdi5ysqEQGWITM460IZk=";
+    sha256 = "sha256-ynLx1HPfDjLbyFziWFbjpCeUBaA3hAFRFm5/1GeFKRE=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/science/medicine/xmedcon/default.nix b/pkgs/applications/science/medicine/xmedcon/default.nix
index bee2be729d1ed..2050517894b97 100644
--- a/pkgs/applications/science/medicine/xmedcon/default.nix
+++ b/pkgs/applications/science/medicine/xmedcon/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xmedcon";
-  version = "0.21.2";
+  version = "0.22.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "0svff8rc3j2p47snaq1hx9mv4ydmxawpb0hf3d165g1ccjwvmm6m";
+    sha256 = "sha256-Ui7XoLSzTMPIFW/3nARCmvlGF+1l7pmcnKsnvn3NFJE=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/science/misc/bada-bib/default.nix b/pkgs/applications/science/misc/bada-bib/default.nix
index 6dfc6f7ea55ac..8f840b2998db2 100644
--- a/pkgs/applications/science/misc/bada-bib/default.nix
+++ b/pkgs/applications/science/misc/bada-bib/default.nix
@@ -17,15 +17,15 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "bada-bib";
-  version = "0.6.1";
+  version = "0.6.2";
   format = "other";
   strictDeps = false; # https://github.com/NixOS/nixpkgs/issues/56943
 
   src = fetchFromGitHub {
     owner = "RogerCrocker";
     repo = "BadaBib";
-    rev = "v${version}";
-    sha256 = "sha256-fuGGKBScdo9rI3tLSBWIcWEME8nSuct0IUyfmI7PzCc=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-3dXtBwqEqiXLjntmqLYeuwLv0RDb774+yOXc7vdf8+Y=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/science/misc/cwltool/default.nix b/pkgs/applications/science/misc/cwltool/default.nix
index b3647e0f1b60b..6a1bdc3de1607 100644
--- a/pkgs/applications/science/misc/cwltool/default.nix
+++ b/pkgs/applications/science/misc/cwltool/default.nix
@@ -7,14 +7,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "cwltool";
-  version = "3.1.20220221074232";
+  version = "3.1.20220224085855";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "common-workflow-language";
     repo = pname;
     rev = version;
-    sha256 = "sha256-hUdwtqYHcfyJ68LzwwCXAxr7YIkJm64brb+kA/WJqU8=";
+    sha256 = "sha256-7+1xOV5Lodqtku0wX1urAEHsCcYKM3Vcd5RDg4DdVow=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/science/misc/fityk/default.nix b/pkgs/applications/science/misc/fityk/default.nix
index a3d6e1564666e..6bc65e644b214 100644
--- a/pkgs/applications/science/misc/fityk/default.nix
+++ b/pkgs/applications/science/misc/fityk/default.nix
@@ -16,6 +16,10 @@ stdenv.mkDerivation rec {
   buildInputs = [ wxGTK30 boost lua zlib bzip2 xylib readline
     gnuplot swig3 ];
 
+  NIX_CFLAGS_COMPILE = [
+    "-std=c++11"
+  ];
+
   meta = {
     description = "Curve fitting and peak fitting software";
     license = lib.licenses.gpl2;
diff --git a/pkgs/applications/science/misc/netlogo/default.nix b/pkgs/applications/science/misc/netlogo/default.nix
index ed92dfb90dabc..d32f4312047a3 100644
--- a/pkgs/applications/science/misc/netlogo/default.nix
+++ b/pkgs/applications/science/misc/netlogo/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
 
     # launcher with `cd` is required b/c otherwise the model library isn't usable
     makeWrapper "${jre}/bin/java" "$out/bin/netlogo" \
-      --run "cd $out/share/netlogo/app" \
+      --chdir "$out/share/netlogo/app" \
       --add-flags "-jar netlogo-${version}.jar"
 
     cp $src1 $out/share/icons/hicolor/256x256/apps/netlogo.png
diff --git a/pkgs/applications/science/misc/root/5.nix b/pkgs/applications/science/misc/root/5.nix
index de85043f127e0..40a5412e7af77 100644
--- a/pkgs/applications/science/misc/root/5.nix
+++ b/pkgs/applications/science/misc/root/5.nix
@@ -85,6 +85,11 @@ stdenv.mkDerivation rec {
 
     patchShebangs build/unix/
     ln -s ${lib.getDev stdenv.cc.libc}/include/AvailabilityMacros.h cint/cint/include/
+
+    # __malloc_hook is deprecated
+    substituteInPlace misc/memstat/src/TMemStatHook.cxx \
+      --replace "defined(R__GNU) && (defined(R__LINUX) || defined(__APPLE__))" \
+                "defined(R__GNU) && (defined(__APPLE__))"
   ''
   # Fix CINTSYSDIR for "build" version of rootcint
   # This is probably a bug that breaks out-of-source builds
diff --git a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
index 69810f95b8465..b3a3eb2bd2a8e 100644
--- a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
+++ b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
@@ -19,11 +19,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "gromacs";
-  version = "2022";
+  version = "2022.1";
 
   src = fetchurl {
     url = "ftp://ftp.gromacs.org/pub/gromacs/gromacs-${version}.tar.gz";
-    sha256 = "0s1bv8nvmdpiyk2yhcmzq8q936hm5jgnqb393101drh2dih0vmps";
+    sha256 = "sha256-hd2rUZfXlSSnAsSVnCxDvodeD8Rx3zo1Ikk53OhRJFA=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/science/physics/xfitter/default.nix b/pkgs/applications/science/physics/xfitter/default.nix
index 51d6c9d68fe4b..2be6153878893 100644
--- a/pkgs/applications/science/physics/xfitter/default.nix
+++ b/pkgs/applications/science/physics/xfitter/default.nix
@@ -1,53 +1,57 @@
-{ lib, stdenv, fetchurl, apfel, apfelgrid, applgrid, blas, gfortran, lhapdf, lapack, libyaml, lynx
-, mela, root5, qcdnum, which, libtirpc
+{ lib
+, stdenv
+, fetchurl
+, apfel
+, apfelgrid
+, applgrid
+, blas
+, ceres-solver
+, cmake
+, gfortran
+, gsl
+, lapack
+, lhapdf
+, libtirpc
+, libyaml
+, libyamlcpp
+, pkg-config
+, qcdnum
+, root
+, zlib
 , memorymappingHook, memstreamHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "xfitter";
-  version = "2.0.1";
+  version = "2.2.0";
 
   src = fetchurl {
     name = "${pname}-${version}.tgz";
     url = "https://www.xfitter.org/xFitter/xFitter/DownloadPage?action=AttachFile&do=get&target=${pname}-${version}.tgz";
-    sha256 = "0kmgc67nw5flp92yw5x6l2vsnhwsfi5z2a20404anisdgdjs8zc6";
+    sha256 = "sha256-ZHIQ5hOY+k0/wmpE0o4Po+RZ4MkVMk+bK1Rc6eqwwH0=";
   };
 
-  patches = [
-    ./undefined_behavior.patch
-  ];
+  preConfigure = ''
+    substituteInPlace CMakeLists.txt \
+      --replace "-fallow-argument-mismatch" ""
+  '';
 
-  preConfigure =
-  # Fix F77LD to workaround for a following build error:
-  #
-  #   gfortran: error: unrecognized command line option '-stdlib=libc++'
-  #
-    lib.optionalString stdenv.isDarwin ''
-      substituteInPlace src/Makefile.in \
-        --replace "F77LD = \$(F77)" "F77LD = \$(CXXLD)" \
-    '';
-
-  configureFlags = [
-    "--enable-apfel"
-    "--enable-apfelgrid"
-    "--enable-applgrid"
-    "--enable-mela"
-    "--enable-lhapdf"
-  ];
-
-  nativeBuildInputs = [ gfortran which ];
+  nativeBuildInputs = [ cmake gfortran pkg-config ];
   buildInputs =
-    [ apfel apfelgrid applgrid blas lhapdf libyaml lapack mela root5 qcdnum ]
+    [ apfel blas ceres-solver lhapdf lapack libyaml root qcdnum gsl libyamlcpp zlib ]
+    ++ lib.optionals ("5" == lib.versions.major root.version) [ apfelgrid applgrid ]
     ++ lib.optionals (stdenv.system == "x86_64-darwin") [ memorymappingHook memstreamHook ]
     ++ lib.optional (stdenv.hostPlatform.libc == "glibc") libtirpc
     ;
-  propagatedBuildInputs = [ lynx ];
-
-  enableParallelBuilding = true;
 
   NIX_CFLAGS_COMPILE = lib.optional (stdenv.hostPlatform.libc == "glibc") "-I${libtirpc.dev}/include/tirpc";
   NIX_LDFLAGS = lib.optional (stdenv.hostPlatform.libc == "glibc") "-ltirpc";
 
+  # workaround wrong library IDs
+  postInstall = lib.optionalString stdenv.isDarwin ''
+    ln -sv "$out/lib/xfitter/"* "$out/lib/"
+  '';
+
   meta = with lib; {
     description = "The xFitter project is an open source QCD fit framework ready to extract PDFs and assess the impact of new data";
     license     = licenses.gpl3;
diff --git a/pkgs/applications/science/physics/xfitter/undefined_behavior.patch b/pkgs/applications/science/physics/xfitter/undefined_behavior.patch
deleted file mode 100644
index 53278527a807a..0000000000000
--- a/pkgs/applications/science/physics/xfitter/undefined_behavior.patch
+++ /dev/null
@@ -1,454 +0,0 @@
-diff --git a/DY/src/finterface.cc b/DY/src/finterface.cc
---- a/DY/src/finterface.cc
-+++ b/DY/src/finterface.cc
-@@ -14,17 +14,17 @@
- using namespace std;
- 
- extern "C" {
--  int dy_create_calc_(const int *ds_id, const int *chg_prod, 
-+  void dy_create_calc_(const int *ds_id, const int *chg_prod, 
-       const double *beam_en, const char *boz,
-       const double *ranges, const char *var_name, 
-       const int *n_bins, const double *bin_edges);
- 
--  int dy_do_calc_();
-+  void dy_do_calc_();
- 
--  int dy_get_res_(const int *ds_id, double *calc_res);
-+  void dy_get_res_(const int *ds_id, double *calc_res);
- 
--  int dy_release_();
--  int dy_set_ewpars_();
-+  void dy_release_();
-+  void dy_set_ewpars_();
- }
- 
- typedef map <int, DYcalc* > DCmap;
-@@ -34,7 +34,7 @@ vector<BinMatrix*> gBinMatrices;
- 
- // initializes Drell-Yan LO calculations with info on
- // beam, process, kinematic cuts, and bins.
--int dy_create_calc_(const int *ds_id, const int *chg_prod, 
-+void dy_create_calc_(const int *ds_id, const int *chg_prod, 
-     const double *beam_en, const char *boz,
-     const double *ranges, const char *var_name, 
-     const int *n_bins, const double *bin_edges)
-@@ -99,13 +99,11 @@ int dy_create_calc_(const int *ds_id, const int *chg_prod,
-   // create calculator and put to map
-   DYcalc * dc = new DYcalc(bm, pc, int_steps);
-   gCalcs.insert( pair<int,DYcalc*>( *ds_id,dc ) );
--
--  return 1;
- }
- 
- 
- // calculate Drell-Yan LO cross sections for all data sets
--int dy_do_calc_()
-+void dy_do_calc_()
- {
-   // evolve convolutions
-   vector<PDFconv*>::iterator ipc = gPDFconvs.begin();
-@@ -118,28 +116,24 @@ int dy_do_calc_()
-     if ( true != idc->second->Integrate() ) {
-       cout << "Something is wrong with DY integration for " 
-            << idc->first << " data set." << endl;
--      return 0;
-+      return;
-     }
-   }
--
--  return 1;
- }
- 
- 
- // return DY calculations for data set ds_name
--int dy_get_res_(const int *ds_id, double *calc_res)
-+void dy_get_res_(const int *ds_id, double *calc_res)
- {
-   DYcalc * dc = gCalcs.find(*ds_id)->second;
-   dc->getCalcRes(calc_res);
--
--  return 1;
- }
- 
--int dy_set_ewpars_(){
-+void dy_set_ewpars_(){
-   PhysPar::setPhysPar();
- }
- 
--int dy_release_()
-+void dy_release_()
- {
-   vector<PDFconv*>::iterator ipc = gPDFconvs.begin();
-   for (; ipc!=gPDFconvs.end(); ipc++){
-@@ -155,6 +149,4 @@ int dy_release_()
-   for (; idc != gCalcs.end() ; idc++){
-     delete (idc->second);
-   }
--
--  return 1;
- }
-diff --git a/DiffDIS/include/DataTable.h b/DiffDIS/include/DataTable.h
---- a/DiffDIS/include/DataTable.h
-+++ b/DiffDIS/include/DataTable.h
-@@ -307,6 +307,7 @@ class DataTable_t {
-       for(ic=0; ic < GetNcols(); ic++) {
-         for(ir=0; ir < npt; ir++) Data[ic][ir] = A.Data[ic][ir];
-       }
-+      return *this;
-     }
-     
-     //@}
-diff --git a/FastNLO/src/FastNLOInterface.cc b/FastNLO/src/FastNLOInterface.cc
---- a/FastNLO/src/FastNLOInterface.cc
-+++ b/FastNLO/src/FastNLOInterface.cc
-@@ -39,14 +39,14 @@ void gauleg(double x1,double x2,double *x,double *w, int n);
- 
- 
- extern "C" {
--  int fastnloinit_(const char *s, const int *idataset, const char *thfile, int *I_FIT_ORDER, bool *PublicationUnits , double* murdef, double* murscale, double *mufdef, double* mufscale);
--  int fastnlocalc_(const int *idataset, double *xsec);
--  int fastnlocalctop_(const int *idataset, double *xsec, double *thbin, double *tot, int *Npt);
--  int fastnlopointskip_(const int *idataset, int *point, int *npoints);
--  int hf_errlog_(const int* ID, const char* TEXT, long length);
--  int hf_stop_();
-+  void fastnloinit_(const char *s, const int *idataset, const char *thfile, int *I_FIT_ORDER, bool *PublicationUnits , double* murdef, double* murscale, double *mufdef, double* mufscale);
-+  void fastnlocalc_(const int *idataset, double *xsec);
-+  void fastnlocalctop_(const int *idataset, double *xsec, double *thbin, double *tot, int *Npt);
-+  void fastnlopointskip_(const int *idataset, int *point, int *npoints);
-+  void hf_errlog_(const int* ID, const char* TEXT, long length);
-+  void hf_stop_();
-   double interp_(double *A, double *xx1, double *x, int *NGrid1, double *res);
--  int setfastnlotoppar_(const int *idataset);
-+  void setfastnlotoppar_(const int *idataset);
- }
- 
- 
-@@ -58,7 +58,7 @@ map<int, FastNLOxFitter*> gFastNLO_array;
- map<int, BoolArray*>     gUsedPoints_array;
- int CreateUsedPointsArray(int idataset, int npoints);
- 
--int fastnloinit_(const char *s, const int *idataset, const char *thfile, int *I_FIT_ORDER, bool *PublicationUnits , double* murdef, double* murscale, double *mufdef, double* mufscale) {
-+void fastnloinit_(const char *s, const int *idataset, const char *thfile, int *I_FIT_ORDER, bool *PublicationUnits , double* murdef, double* murscale, double *mufdef, double* mufscale) {
- 
-   
-    map<int, FastNLOxFitter*>::const_iterator FastNLOIterator = gFastNLO_array.find(*idataset);
-@@ -67,7 +67,7 @@ int fastnloinit_(const char *s, const int *idataset, const char *thfile, int *I_
-      const char* text = "I: Double initialization of the same fastnlo data set!";
-      hf_errlog_(&id, text, (long)strlen(text));
-      //hf_stop_();
--     return 1;
-+     return;
-    }
-    
-    FastNLOxFitter* fnloreader = new FastNLOxFitter( thfile );  
-@@ -112,10 +112,9 @@ int fastnloinit_(const char *s, const int *idataset, const char *thfile, int *I_
-    }
-    
-    gFastNLO_array.insert(pair<int, FastNLOxFitter*>(*idataset, fnloreader) );
--   return 0;
- }
- 
--int setfastnlotoppar_(const int *idataset) {
-+void setfastnlotoppar_(const int *idataset) {
-    //!< Dedicated settings for difftop
-    map<int, FastNLOxFitter*>::const_iterator FastNLOIterator = gFastNLO_array.find(*idataset);
-    map<int, BoolArray*>::const_iterator UsedPointsIterator = gUsedPoints_array.find(*idataset);
-@@ -130,11 +129,9 @@ int setfastnlotoppar_(const int *idataset) {
-    fnloreader->SetExternalFuncForMuF( &Function_Mu );
-    fnloreader->SetExternalFuncForMuR( &Function_Mu);
-    //fnloreader->SetScaleFactorsMuRMuF(1.0,1.0); //Be reminded that muR and muF scales are hard coded (that's not true!)
--
--   return 0;
- }
- 
--int fastnlocalc_(const int *idataset, double *xsec) {
-+void fastnlocalc_(const int *idataset, double *xsec) {
-   
-    map<int, FastNLOxFitter*>::const_iterator FastNLOIterator = gFastNLO_array.find(*idataset);
-    map<int, BoolArray*>::const_iterator UsedPointsIterator = gUsedPoints_array.find(*idataset);
-@@ -176,13 +173,10 @@ int fastnlocalc_(const int *idataset, double *xsec) {
-        outputidx++;
-      }
-    }
-- 
--
--   return 0;
- }
- 
- //MK14 New function for Difftop calculation: it is called in trunk/src/difftop_fastnlo.f
--int fastnlocalctop_(const int *idataset, double *xsec, double *thbin, double *tot, int *Npt){
-+void fastnlocalctop_(const int *idataset, double *xsec, double *thbin, double *tot, int *Npt){
-   
-    map<int, FastNLOxFitter*>::const_iterator FastNLOIterator = gFastNLO_array.find(*idataset);
-    map<int, BoolArray*>::const_iterator UsedPointsIterator = gUsedPoints_array.find(*idataset);
-@@ -262,10 +256,6 @@ int fastnlocalctop_(const int *idataset, double *xsec, double *thbin, double *to
-      Total += interpC(xsec,xg[k],thbin,Nthpoints)*wg[k];
- 
-    *tot = Total;
--
--
--
--   return 0;
- }
- 
- 
-@@ -277,7 +267,7 @@ int fastnlocalctop_(const int *idataset, double *xsec, double *thbin, double *to
- 
- 
- 
--int fastnlopointskip_(const int *idataset, int *point, int *npoints) {
-+void fastnlopointskip_(const int *idataset, int *point, int *npoints) {
-   map<int, BoolArray*>::const_iterator UsedPointsIterator = gUsedPoints_array.find(*idataset);
-   if(UsedPointsIterator == gUsedPoints_array.end( )) 
-     CreateUsedPointsArray(*idataset, *npoints);
-@@ -292,8 +282,6 @@ int fastnlopointskip_(const int *idataset, int *point, int *npoints) {
-   
-   BoolArray*     usedpoints = UsedPointsIterator->second;
-   usedpoints->at(*point-1) = false;
--
--  return 0;
- }
- 
- int CreateUsedPointsArray(int idataset, int npoints) {
-diff --git a/Hathor/src/HathorInterface.cc b/Hathor/src/HathorInterface.cc
---- a/Hathor/src/HathorInterface.cc
-+++ b/Hathor/src/HathorInterface.cc
-@@ -6,9 +6,9 @@
- #include "../interface/xFitterPdf.h"
- 
- extern "C" {
--  int hathorinit_(const int* idataset, const double& sqrtS, const bool& ppbar, const double& mt,
-+  void hathorinit_(const int* idataset, const double& sqrtS, const bool& ppbar, const double& mt,
- 		  const unsigned int& pertubOrder, const unsigned int& precisionLevel);
--  int hathorcalc_(const int *idataset, double *xsec);
-+  void hathorcalc_(const int *idataset, double *xsec);
- }
- 
- extern "C" {
-@@ -19,7 +19,7 @@ extern "C" {
- }
- 
- extern "C" {
--  int hf_errlog_(const int* ID, const char* TEXT, long length);
-+  void hf_errlog_(const int* ID, const char* TEXT, long length);
- }
- 
- // FIXME: delete pointers at the end! (in some hathordestroy_ or so)
-@@ -28,7 +28,7 @@ xFitterPdf* pdf;
- int* rndStore;
- double mtop;
- 
--int hathorinit_(const int* idataset, const double& sqrtS, const bool& ppbar, const double& mt,
-+void hathorinit_(const int* idataset, const double& sqrtS, const bool& ppbar, const double& mt,
- 		const unsigned int& pertubOrder, const unsigned int& precisionLevel) {
- 
-   if(hathor_array.size()==0) {
-@@ -69,7 +69,7 @@ int hathorinit_(const int* idataset, const double& sqrtS, const bool& ppbar, con
-   return 0;
- }
- 
--int hathorcalc_(const int *idataset, double *xsec) {
-+void hathorcalc_(const int *idataset, double *xsec) {
-   rlxd_reset(rndStore);
- 
-   std::map<int, Hathor*>::const_iterator hathorIter = hathor_array.find(*idataset);
-diff --git a/src/TheorEval.cc b/src/TheorEval.cc
---- a/src/TheorEval.cc
-+++ b/src/TheorEval.cc
-@@ -62,6 +62,7 @@ TheorEval::initTheory()
-   list<tToken> sl;
-   this->assignTokens(sl);
-   this->convertToRPN(sl);
-+  return 0;
- }
- 
- int 
-@@ -167,6 +168,7 @@ TheorEval::assignTokens(list<tToken> &sl)
-       sl.push_back(t);
-     }
-   }
-+  return 0;
- }
- 
- int
-@@ -217,6 +219,7 @@ TheorEval::convertToRPN(list<tToken> &sl)
-   cout << endl;
-   */
-   
-+  return 0;
- }
- 
- int
-@@ -236,6 +239,7 @@ TheorEval::initTerm(int iterm, valarray<double> *val)
-     hf_errlog_(id, text, textlen);
-     return -1;
-   }
-+  return 0;
- }
- 
- int
-@@ -348,6 +352,7 @@ TheorEval::initGridTerm(int iterm, valarray<double> *val)
- 
-   // associate grid and valarray pointers in token
-   _mapGridToken[g] = val;
-+  return 0;
- }
- 
- int
-@@ -430,6 +435,7 @@ TheorEval::initKfTerm(int iterm, valarray<double> *val)
- 
-   // write k-factor array to the token valarray
-   *val = valarray<double>(vkf.data(), vkf.size());
-+  return 0;
- }  
- 
- int
-@@ -465,6 +471,7 @@ TheorEval::setCKM(const vector<double> &v_ckm)
-    int textlen = strlen(text);
-    hf_errlog_(id, text, textlen);
- #endif
-+   return 0;
- }
- 
- int
-@@ -531,6 +538,7 @@ TheorEval::Evaluate(valarray<double> &vte )
-       }
-     //vte /= _units;
-   }
-+  return 0;
- }
- 
- int
-@@ -555,6 +563,7 @@ TheorEval::getGridValues()
-     
-     
-   }
-+  return 0;
- }
- 
- int
-diff --git a/src/ftheor_eval.cc b/src/ftheor_eval.cc
---- a/src/ftheor_eval.cc
-+++ b/src/ftheor_eval.cc
-@@ -19,15 +19,15 @@
- using namespace std;
- 
- extern "C" {
--  int set_theor_eval_(int *dsId);//, int *nTerms, char **TermName, char **TermType, 
-+  void set_theor_eval_(int *dsId);//, int *nTerms, char **TermName, char **TermType, 
- //    char **TermSource, char *TermExpr);
--  int set_theor_bins_(int *dsId, int *nBinDimension, int *nPoints, int *binFlags, 
-+  void set_theor_bins_(int *dsId, int *nBinDimension, int *nPoints, int *binFlags, 
-     double *allBins);
- //  int set_theor_units_(int *dsId, double *units);
--  int init_theor_eval_(int *dsId);
--  int update_theor_ckm_();
--  int get_theor_eval_(int *dsId, int* np, int* idx);
--  int close_theor_eval_();
-+  void init_theor_eval_(int *dsId);
-+  void update_theor_ckm_();
-+  void get_theor_eval_(int *dsId, int* np, int* idx);
-+  void close_theor_eval_();
- }
- 
- /// global dataset to theory evaluation pointer map
-@@ -59,7 +59,7 @@ extern struct ord_scales {
-  dataset ID.
-  write details on argumets
-  */
--int set_theor_eval_(int *dsId)//, int *nTerms, char **TermName, char **TermType, 
-+void set_theor_eval_(int *dsId)//, int *nTerms, char **TermName, char **TermType, 
- //  char **TermSource, char *TermExpr)
- {
-   // convert fortran strings to c++
-@@ -90,15 +90,13 @@ int set_theor_eval_(int *dsId)//, int *nTerms, char **TermName, char **TermType,
-     << " already exists." << endl;
-     exit(1); // make proper exit later
-   }
--
--  return 1;
- }
- 
- /*!
-  Sets datasets bins in theory evaluations.
-  write details on argumets
-  */
--int set_theor_bins_(int *dsId, int *nBinDimension, int *nPoints, int *binFlags, 
-+void set_theor_bins_(int *dsId, int *nBinDimension, int *nPoints, int *binFlags, 
-   double *allBins)
- {
-   tTEmap::iterator it = gTEmap.find(*dsId);
-@@ -110,7 +108,6 @@ int set_theor_bins_(int *dsId, int *nBinDimension, int *nPoints, int *binFlags,
-   
-   TheorEval *te = gTEmap.at(*dsId);
-   te->setBins(*nBinDimension, *nPoints, binFlags, allBins);
--  return 1;
- }
- 
- /*
-@@ -132,7 +129,7 @@ int set_theor_units_(int *dsId, double *units)
- /*!
-  Initializes theory for requested dataset.
-  */
--int init_theor_eval_(int *dsId)
-+void init_theor_eval_(int *dsId)
- {
-   tTEmap::iterator it = gTEmap.find(*dsId);
-   if (it == gTEmap.end() ) { 
-@@ -148,7 +145,7 @@ int init_theor_eval_(int *dsId)
- /*!
-  Updates the CKM matrix to all the initialized appl grids
-  */
--int update_theor_ckm_()
-+void update_theor_ckm_()
- {
-   double a_ckm[] = { ckm_matrix_.Vud, ckm_matrix_.Vus, ckm_matrix_.Vub,
-                                   ckm_matrix_.Vcd, ckm_matrix_.Vcs, ckm_matrix_.Vcb,
-@@ -164,7 +161,7 @@ int update_theor_ckm_()
- /*!
-  Evaluates theory for requested dataset and writes it to the global THEO array.
-  */
--int get_theor_eval_(int *dsId, int *np, int*idx)
-+void get_theor_eval_(int *dsId, int *np, int*idx)
- {
- 
-   tTEmap::iterator it = gTEmap.find(*dsId);
-@@ -194,11 +191,11 @@ int get_theor_eval_(int *dsId, int *np, int*idx)
-   // write the predictions to THEO array
-   if( ip != *np ){
-     cout << "ERROR in get_theor_eval_: number of points mismatch" << endl;
--    return -1;
-+    return;
-   }
- }
- 
--int close_theor_eval_()
-+void close_theor_eval_()
- {
-   tTEmap::iterator it = gTEmap.begin();
-   for (; it!= gTEmap.end(); it++){
-diff --git a/src/lhapdf6_output.c b/src/lhapdf6_output.c
---- a/src/lhapdf6_output.c
-+++ b/src/lhapdf6_output.c
-@@ -64,7 +64,7 @@ extern double bvalij_(int *,int *,int *,int *,int *);
- extern double bvalxq_(int *,int *,double *,double *,int *);

- extern double hf_get_alphas_(double *);

- extern int getord_(int *);

--extern int grpars_(int *, double *, double *, int *, double *, double *, int *);

-+extern void grpars_(int *, double *, double *, int *, double *, double *, int *);

- extern int getcbt_(int *, double *, double *, double *);

- extern void getpdfunctype_heraf_(int *mc, int *asymh, int *symh, char *name, size_t size);

- extern void hf_errlog_(int *, char *, size_t);

-diff --git a/tools/draw/include/FileOpener.h b/tools/draw/include/FileOpener.h
---- a/tools/draw/include/FileOpener.h
-+++ b/tools/draw/include/FileOpener.h
-@@ -61,7 +61,7 @@ class InFileOpener_t {
-   string GetPath() const {return ind < 0 ? "" : Flist[ind];}
-   
-   // ==================================
--  int Add(const string& fname) {
-+  void Add(const string& fname) {
-     Flist.push_back(fname);
-   }
- 
diff --git a/pkgs/applications/science/programming/jflap/default.nix b/pkgs/applications/science/programming/jflap/default.nix
new file mode 100644
index 0000000000000..9a7922ba1205c
--- /dev/null
+++ b/pkgs/applications/science/programming/jflap/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchurl, jre, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "jflap";
+  version = "7.1";
+
+  src = fetchurl {
+    url = "https://www.jflap.org/jflaptmp/july27-18/JFLAP7.1.jar";
+    sha256 = "oiwJXdxWsYFj6Ovu7xZbOgTLVw8160a5YQUWbgbJlAY=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  dontUnpack = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/java
+    cp -s $src $out/share/java/jflap.jar
+    makeWrapper ${jre}/bin/java $out/bin/jflap --add-flags "-jar $out/share/java/jflap.jar"
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "GUI tool for experimenting with formal languages topics";
+    homepage = "https://www.jflap.org/";
+    license = licenses.unfree;
+    maintainers = [ maintainers.grnnja ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/science/robotics/mavproxy/default.nix b/pkgs/applications/science/robotics/mavproxy/default.nix
index c1e5b128fc71f..802fe1f946efe 100644
--- a/pkgs/applications/science/robotics/mavproxy/default.nix
+++ b/pkgs/applications/science/robotics/mavproxy/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonApplication rec {
   pname = "MAVProxy";
-  version = "1.8.46";
+  version = "1.8.48";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c740c11551af4bcb1378772bde77ca6c846c6fd261b79d932c0ecbb164afe3bd";
+    sha256 = "sha256-BigJdAz52D8hg2bQs7tngFqnITut/wENGZ0+gLlAeoY=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/science/robotics/sumorobot-manager/default.nix b/pkgs/applications/science/robotics/sumorobot-manager/default.nix
index c0f619b9592ce..343f9fad105b0 100644
--- a/pkgs/applications/science/robotics/sumorobot-manager/default.nix
+++ b/pkgs/applications/science/robotics/sumorobot-manager/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     mkdir $out/bin
     dos2unix $out/opt/sumorobot-manager/main.py
     makeQtWrapper $out/opt/sumorobot-manager/main.py $out/bin/sumorobot-manager \
-      --run "cd $out/opt/sumorobot-manager"
+      --chdir "$out/opt/sumorobot-manager"
   '';
 
   preFixup = ''
diff --git a/pkgs/applications/terminal-emulators/hyper/default.nix b/pkgs/applications/terminal-emulators/hyper/default.nix
index 485c1dead14c6..2266e884454b2 100644
--- a/pkgs/applications/terminal-emulators/hyper/default.nix
+++ b/pkgs/applications/terminal-emulators/hyper/default.nix
@@ -15,11 +15,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "hyper";
-  version = "3.2.0";
+  version = "3.2.1";
 
   src = fetchurl {
     url = "https://github.com/vercel/hyper/releases/download/v${version}/hyper_${version}_amd64.deb";
-    sha256 = "1ryw3315x0lb60j8nzz78h7zd36r2l1j39hnlfav0p7nq8dhqbpm";
+    sha256 = "sha256-nwaJ+lnuHv+Qb/QkKF/9jG8cvq1Z+urz8CPwxSsMmuA=";
   };
 
   nativeBuildInputs = [ dpkg ];
diff --git a/pkgs/applications/terminal-emulators/syncterm/default.nix b/pkgs/applications/terminal-emulators/syncterm/default.nix
index d1f0ab5e8cf1a..d56db734a8855 100644
--- a/pkgs/applications/terminal-emulators/syncterm/default.nix
+++ b/pkgs/applications/terminal-emulators/syncterm/default.nix
@@ -34,6 +34,8 @@ stdenv.mkDerivation rec {
     homepage = "https://syncterm.bbsdev.net/";
     description = "BBS terminal emulator";
     maintainers = with maintainers; [ embr ];
+    platforms = platforms.unix;
     license = licenses.gpl2Plus;
+    broken = stdenv.isDarwin; # error: unsupported option '-fsanitize=safe-stack' for target 'x86_64-apple-darwin'
   };
 }
diff --git a/pkgs/applications/terminal-emulators/wezterm/default.nix b/pkgs/applications/terminal-emulators/wezterm/default.nix
index 6d1276035c13e..c51aee5268656 100644
--- a/pkgs/applications/terminal-emulators/wezterm/default.nix
+++ b/pkgs/applications/terminal-emulators/wezterm/default.nix
@@ -27,7 +27,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wezterm";
-  version = "20220319-142410-0fcdea07";
+  version = "20220408-101518-b908e2dd";
 
   outputs = [ "out" "terminfo" ];
 
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
     repo = pname;
     rev = version;
     fetchSubmodules = true;
-    sha256 = "sha256-KmIlfzSbVY003WesodN5srJ7qEQaU93izmrZW1MobCo=";
+    sha256 = "sha256-kuuoD+hqgj7QXFRIxa112oc4idtcK0ptFACDpI0bzGY=";
   };
 
   postPatch = ''
@@ -46,7 +46,7 @@ rustPlatform.buildRustPackage rec {
     rm -r wezterm-ssh/tests
   '';
 
-  cargoSha256 = "sha256-+Iu6/pd14O1QIsLkHe7fTP30XyI+8J0GiRY8cnRPS5I=";
+  cargoSha256 = "sha256-iIb2zLUZpn23ooEiOP+yQMYUUmvef/KqvjzgLOFmjs0=";
 
   nativeBuildInputs = [
     pkg-config
@@ -100,7 +100,10 @@ rustPlatform.buildRustPackage rec {
     ln -s $out/bin/{wezterm,wezterm-mux-server,wezterm-gui,strip-ansi-escapes} "$OUT_APP"
   '';
 
-  passthru.tests.test = nixosTests.terminal-emulators.wezterm;
+  passthru.tests = {
+    all-terminfo = nixosTests.allTerminfo;
+    test = nixosTests.terminal-emulators.wezterm;
+  };
 
   meta = with lib; {
     description = "A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust";
diff --git a/pkgs/applications/version-management/commit-formatter/default.nix b/pkgs/applications/version-management/commit-formatter/default.nix
index eb475dca78a00..03eead59a6ba3 100644
--- a/pkgs/applications/version-management/commit-formatter/default.nix
+++ b/pkgs/applications/version-management/commit-formatter/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Eliot00/commit-formatter";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ elliot ];
+    mainProgram = "git-cf";
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix b/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix
index 7de53c7c541f1..ca47942a3f9a9 100644
--- a/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl3;
     maintainers = [ maintainers.changlinli ];
+    mainProgram = "bfg";
     platforms = platforms.unix;
     downloadPage = "https://mvnrepository.com/artifact/com.madgag/bfg/${version}";
   };
diff --git a/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix b/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix
index 695250a5cc476..ecbe064826c5f 100644
--- a/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix
@@ -16,6 +16,7 @@ bundlerEnv rec {
     homepage    = "https://bitbucket.org/atlassian/bitbucket-server-cli";
     license     = licenses.mit;
     maintainers = with maintainers; [ jgertm nicknovitski ];
+    mainProgram = "stash";
     platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/gh/default.nix b/pkgs/applications/version-management/git-and-tools/gh/default.nix
index 3a66a4d8af7db..7e9b6e006509a 100644
--- a/pkgs/applications/version-management/git-and-tools/gh/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gh/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "2.7.0";
+  version = "2.8.0";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-edlGJD+80k1ySpyNcKc5c2O0MX+S4fQgH5mwHQUxXM8=";
+    sha256 = "sha256-oPLnc3Fv8oGbfQMujcVIwKJrQ3vCV9yIB4rUtjeVOV0=";
   };
 
   vendorSha256 = "sha256-YLkNua0Pz0gVIYnWOzOlV5RuLBaoZ4l7l1Pf4QIfUVQ=";
diff --git a/pkgs/applications/version-management/git-and-tools/ghorg/default.nix b/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
index 543e3a7501a72..f991bccf0e288 100644
--- a/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ghorg";
-  version = "1.7.11";
+  version = "1.7.13";
 
   src = fetchFromGitHub {
     owner = "gabrie30";
     repo = "ghorg";
     rev = "v${version}";
-    sha256 = "sha256-/JecaTRmqTB1I0tqBRidlqWOvNE6U5zep5/lFi8VTCc=";
+    sha256 = "sha256-EQCu+2qMKu+e6G5iXAQn5cz0MZqHrF2wnKNO8Fkpp/Y=";
   };
 
   doCheck = false;
diff --git a/pkgs/applications/version-management/git-and-tools/git-annex-utils/default.nix b/pkgs/applications/version-management/git-and-tools/git-annex-utils/default.nix
index 0ba747d72350c..07af33951dfb4 100644
--- a/pkgs/applications/version-management/git-and-tools/git-annex-utils/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-annex-utils/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
     homepage = "http://git-annex.mysteryvortex.com/git-annex-utils.html";
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ woffs ];
+    mainProgram = "gadu";
     platforms = lib.platforms.all;
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix b/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix
index 19f794e6c916f..13ba738c46fb6 100644
--- a/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix
@@ -15,16 +15,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "git-branchless";
-  version = "0.3.10";
+  version = "0.3.12";
 
   src = fetchFromGitHub {
     owner = "arxanas";
     repo = "git-branchless";
     rev = "v${version}";
-    sha256 = "sha256-TLqAU1/olSS59Zeb+2m9Jq19EYTO1TnbKPYciHPKO2A=";
+    sha256 = "sha256-1bUHltONLfJumkxPnzGJFMMyS02LVqjpDL+KgiewyoQ=";
   };
 
-  cargoSha256 = "sha256-sA4KWGW4bxGUkotTWHUcRqcoaUJsSUCTK8hUkKiRcnY=";
+  cargoSha256 = "sha256-3+ULHqtKAhf4AdoLPK/3IqnfOcskoh6ctlQnY1oTHJ8=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix b/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix
index f0184c6637771..1cf29fbd6c2d9 100644
--- a/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix
@@ -1,23 +1,32 @@
-{ fetchFromGitHub, git, gnupg, makeWrapper, openssl, lib, stdenv
-, libxslt, docbook_xsl
+{ fetchFromGitHub
+, git
+, gnupg
+, makeWrapper
+, openssl
+, lib
+, stdenv
+, libxslt
+, docbook_xsl
 }:
 
 stdenv.mkDerivation rec {
   pname = "git-crypt";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "AGWA";
     repo = pname;
     rev = version;
-    sha256 = "13m9y0m6gc3mlw3pqv9x4i0him2ycbysizigdvdanhh514kga602";
+    sha256 = "sha256-GcGCX6hoKL+sNLAeGEzZpaM+cdFjcNlwYExfOFEPi0I=";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [ libxslt makeWrapper ];
 
   buildInputs = [ openssl ];
 
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace commands.cpp \
       --replace '(escape_shell_arg(our_exe_path()))' '= "git-crypt"'
   '';
@@ -29,7 +38,8 @@ stdenv.mkDerivation rec {
   ];
 
   postFixup = ''
-    wrapProgram $out/bin/git-crypt --prefix PATH : $out/bin:${git}/bin:${gnupg}/bin
+    wrapProgram $out/bin/git-crypt \
+      --suffix PATH : ${lib.makeBinPath [ git gnupg ]}
   '';
 
   meta = with lib; {
@@ -48,7 +58,7 @@ stdenv.mkDerivation rec {
     '';
     downloadPage = "https://github.com/AGWA/git-crypt/releases";
     license = licenses.gpl3;
-    maintainers = [ maintainers.dochang ];
+    maintainers = with maintainers; [ dochang SuperSandro2000 ];
     platforms = platforms.unix;
   };
 
diff --git a/pkgs/applications/version-management/git-and-tools/git-extras/default.nix b/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
index 2037122bf277a..f0932fde2d5e2 100644
--- a/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "git-extras";
-  version = "6.3.0";
+  version = "6.4.0";
 
   src = fetchFromGitHub {
     owner = "tj";
     repo = "git-extras";
     rev = version;
-    sha256 = "sha256-mmvDsK+SgBXQSKNKuPt+K4sgtdrtqPx9Df2E3kKLdJM=";
+    sha256 = "sha256-Cn7IXMzgg0QIsNIHz+X14Gkmop0UbsSBlGlGkmg71ek=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix b/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix
index 91f6f2039838e..2f999ec3d87f2 100644
--- a/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix
@@ -39,5 +39,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/MitMaro/git-interactive-rebase-tool/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ masaeedu SuperSandro2000 zowoq ];
+    mainProgram = "interactive-rebase-tool";
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
index 829ebedc1e8e0..6b6da70bb942d 100644
--- a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
@@ -4,19 +4,19 @@
 , installShellFiles
 , git
 , nix-update-script
-, testVersion
+, testers
 , git-machete
 }:
 
 buildPythonApplication rec {
   pname = "git-machete";
-  version = "3.7.2";
+  version = "3.9.0";
 
   src = fetchFromGitHub {
     owner = "virtuslab";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-7WaLUCJr29i7JW5YAJG1AuYnSLKRMpAEnCY2i4Zle+c=";
+    sha256 = "sha256-AuF4KUayMRQ2TsvjzpMHpppM+0e6igs7MrAXzGP9yp0=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index 13da857b790ed..262cd332c66a5 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -4,20 +4,21 @@
 , openssh, pcre2, bash
 , asciidoc, texinfo, xmlto, docbook2x, docbook_xsl, docbook_xml_dtd_45
 , libxslt, tcl, tk, makeWrapper, libiconv
-, svnSupport, subversionClient, perlLibs, smtpPerlLibs
+, svnSupport ? false, subversionClient, perlLibs, smtpPerlLibs
 , perlSupport ? stdenv.buildPlatform == stdenv.hostPlatform
 , nlsSupport ? true
 , osxkeychainSupport ? stdenv.isDarwin
-, guiSupport
+, guiSupport ? false
 , withManual ? true
 , pythonSupport ? true
 , withpcre2 ? true
-, sendEmailSupport
+, sendEmailSupport ? false
 , darwin
 , nixosTests
 , withLibsecret ? false
 , pkg-config, glib, libsecret
 , gzip # needed at runtime by gitweb.cgi
+, withSsh ? false
 }:
 
 assert osxkeychainSupport -> stdenv.isDarwin;
@@ -25,49 +26,50 @@ assert sendEmailSupport -> perlSupport;
 assert svnSupport -> perlSupport;
 
 let
-  version = "2.35.1";
+  version = "2.35.3";
   svn = subversionClient.override { perlBindings = perlSupport; };
-
   gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
 in
 
 stdenv.mkDerivation {
-  pname = "git";
+  pname = "git"
+    + lib.optionalString svnSupport "-with-svn"
+    + lib.optionalString (!svnSupport && !guiSupport && !sendEmailSupport && !withManual && !pythonSupport && !withpcre2) "-minimal";
   inherit version;
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
-    sha256 = "100h37cpw49pmlpf6lcpm1xi578gllf6y9in60h5mxj3cj754s6p";
+    sha256 = "sha256-FenbT5vy7Z//MMtioAxcfAkBAV9asEjNtOiwTd7gD6I=";
   };
 
   outputs = [ "out" ] ++ lib.optional withManual "doc";
+  separateDebugInfo = true;
 
   hardeningDisable = [ "format" ];
 
   enableParallelBuilding = true;
 
-  ## Patch
-
   patches = [
     ./docbook2texi.patch
     ./git-sh-i18n.patch
-    ./ssh-path.patch
     ./git-send-email-honor-PATH.patch
     ./installCheck-path.patch
+  ] ++ lib.optionals withSsh [
+    ./ssh-path.patch
   ];
 
   postPatch = ''
-    for x in connect.c git-gui/lib/remote_add.tcl ; do
-      substituteInPlace "$x" \
-        --subst-var-by ssh "${openssh}/bin/ssh"
-    done
-
     # Fix references to gettext introduced by ./git-sh-i18n.patch
     substituteInPlace git-sh-i18n.sh \
         --subst-var-by gettext ${gettext}
 
     # ensure we are using the correct shell when executing the test scripts
     patchShebangs t/*.sh
+  '' + lib.optionalString withSsh ''
+    for x in connect.c git-gui/lib/remote_add.tcl ; do
+      substituteInPlace "$x" \
+        --subst-var-by ssh "${openssh}/bin/ssh"
+    done
   '';
 
   nativeBuildInputs = [ gettext perlPackages.perl makeWrapper ]
@@ -166,8 +168,13 @@ stdenv.mkDerivation {
       cp -a contrib $out/share/git/
       mkdir -p $out/share/bash-completion/completions
       ln -s $out/share/git/contrib/completion/git-completion.bash $out/share/bash-completion/completions/git
-      mkdir -p $out/share/bash-completion/completions
       ln -s $out/share/git/contrib/completion/git-prompt.sh $out/share/bash-completion/completions/
+      # only readme, developed in another repo
+      rm -r contrib/hooks/multimail
+      mkdir -p $out/share/git-core/contrib
+      cp -a contrib/hooks/ $out/share/git-core/contrib/
+      substituteInPlace $out/share/git-core/contrib/hooks/pre-auto-gc-battery \
+        --replace ' grep' ' ${gnugrep}/bin/grep' \
 
       # grep is a runtime dependency, need to patch so that it's found
       substituteInPlace $out/libexec/git-core/git-sh-setup \
diff --git a/pkgs/applications/version-management/git-and-tools/glab/default.nix b/pkgs/applications/version-management/git-and-tools/glab/default.nix
index 69e9508676318..70d82410997ce 100644
--- a/pkgs/applications/version-management/git-and-tools/glab/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/glab/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles, stdenv }:
 
 buildGoModule rec {
   pname = "glab";
@@ -24,6 +24,15 @@ buildGoModule rec {
 
   subPackages = [ "cmd/glab" ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
+    installShellCompletion --cmd glab \
+      --bash <($out/bin/glab completion -s bash) \
+      --fish <($out/bin/glab completion -s fish) \
+      --zsh <($out/bin/glab completion -s zsh)
+  '';
+
   meta = with lib; {
     description = "An open-source GitLab command line tool";
     license = licenses.mit;
diff --git a/pkgs/applications/version-management/git-and-tools/hut/default.nix b/pkgs/applications/version-management/git-and-tools/hut/default.nix
index ad0c02aa2e0d6..49e5fa675a948 100644
--- a/pkgs/applications/version-management/git-and-tools/hut/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/hut/default.nix
@@ -2,21 +2,20 @@
 , buildGoModule
 , fetchFromSourcehut
 , scdoc
-, unstableGitUpdater
 }:
 
-buildGoModule {
+buildGoModule rec {
   pname = "hut";
-  version = "unstable-2022-03-02";
+  version = "0.1.0";
 
   src = fetchFromSourcehut {
     owner = "~emersion";
     repo = "hut";
-    rev = "55ad2fbd9ceeeb9e7dc203c15476fa785f1209e0";
-    sha256 = "sha256-j2IVwCm7iq3JKccPL8noRBhqw+V+4qfcpAwV65xhZk0=";
+    rev = "v${version}";
+    sha256 = "sha256-2YUrDPulpLQQGw31nEasHoQ/AppECg7acwwqu6JDT5U=";
   };
 
-  vendorSha256 = "sha256-zdQvk0M1a+Y90pnhqIpKxLJnlVJqMoSycewTep2Oux4=";
+  vendorSha256 = "sha256-EmokL3JlyM6C5/NOarCAJuqNsDO2tgHwqQdv0rAk+Xk=";
 
   nativeBuildInputs = [
     scdoc
@@ -32,8 +31,6 @@ buildGoModule {
     make $makeFlags install
   '';
 
-  passthru.updateScript = unstableGitUpdater { };
-
   meta = with lib; {
     homepage = "https://sr.ht/~emersion/hut/";
     description = "A CLI tool for Sourcehut / sr.ht";
diff --git a/pkgs/applications/version-management/git-and-tools/scmpuff/default.nix b/pkgs/applications/version-management/git-and-tools/scmpuff/default.nix
index 1e65834f51938..65ca1b476d4d6 100644
--- a/pkgs/applications/version-management/git-and-tools/scmpuff/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/scmpuff/default.nix
@@ -1,17 +1,23 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, testers, scmpuff }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "scmpuff";
-  version = "0.3.0";
-  goPackagePath = "github.com/mroth/scmpuff";
-
-  goDeps = ./deps.nix;
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "mroth";
     repo = pname;
-    rev = "56dc2041f2c45ab15d41e63058c1c44fff905e81";
-    sha256 = "0zrzzcs0i13pfwcqh8qb0sji54vh37rdr7qasg57y56cqpx16vl3";
+    rev = "v${version}";
+    sha256 = "sha256-+L0W+M8sZdUSCWj9Ftft1gkRRfWMHdxon2xNnotx8Xs=";
+  };
+
+  vendorSha256 = "sha256-7WHVSEz3y1nxWfbxkzkfHhINLC8+snmWknHyUUpNy7c=";
+
+  ldflags = [ "-s" "-w" "-X main.VERSION=${version}" ];
+
+  passthru.tests.version = testers.testVersion {
+    package = scmpuff;
+    command = "scmpuff version";
   };
 
   meta = with lib; {
@@ -19,6 +25,5 @@ buildGoPackage rec {
     homepage = "https://github.com/mroth/scmpuff";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
-    platforms = concatLists (with platforms; [ linux darwin windows ]);
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/scmpuff/deps.nix b/pkgs/applications/version-management/git-and-tools/scmpuff/deps.nix
deleted file mode 100644
index da9052f9bb7ba..0000000000000
--- a/pkgs/applications/version-management/git-and-tools/scmpuff/deps.nix
+++ /dev/null
@@ -1,273 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "github.com/BurntSushi/toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/toml";
-      rev = "v0.3.1";
-      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
-    };
-  }
-  {
-    goPackagePath = "github.com/armon/consul-api";
-    fetch = {
-      type = "git";
-      url = "https://github.com/armon/consul-api";
-      rev = "eb2c6b5be1b6";
-      sha256 = "1j6fdr1sg36qy4n4xjl7brq739fpm5npq98cmvklzjc9qrx98nk9";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/etcd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/etcd";
-      rev = "v3.3.10";
-      sha256 = "1x2ii1hj8jraba8rbxz6dmc03y3sjxdnzipdvg6fywnlq1f3l3wl";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/go-etcd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/go-etcd";
-      rev = "v2.0.0";
-      sha256 = "1xb34hzaa1lkbq5vkzy9vcz6gqwj7hp6cdbvyack2bf28dwn33jj";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/go-semver";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/go-semver";
-      rev = "v0.2.0";
-      sha256 = "1gghi5bnqj50hfxhqc1cxmynqmh2yk9ii7ab9gsm75y5cp94ymk0";
-    };
-  }
-  {
-    goPackagePath = "github.com/cpuguy83/go-md2man";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cpuguy83/go-md2man";
-      rev = "v1.0.10";
-      sha256 = "1bqkf2bvy1dns9zd24k81mh2p1zxsx2nhq5cj8dz2vgkv1xkh60i";
-    };
-  }
-  {
-    goPackagePath = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev = "v1.1.1";
-      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
-    };
-  }
-  {
-    goPackagePath = "github.com/fsnotify/fsnotify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/hcl";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/hcl";
-      rev = "v1.0.0";
-      sha256 = "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66";
-    };
-  }
-  {
-    goPackagePath = "github.com/inconshreveable/mousetrap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/inconshreveable/mousetrap";
-      rev = "v1.0.0";
-      sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
-    };
-  }
-  {
-    goPackagePath = "github.com/magiconair/properties";
-    fetch = {
-      type = "git";
-      url = "https://github.com/magiconair/properties";
-      rev = "v1.8.0";
-      sha256 = "1a10362wv8a8qwb818wygn2z48lgzch940hvpv81hv8gc747ajxn";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/go-homedir";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/go-homedir";
-      rev = "v1.1.0";
-      sha256 = "0ydzkipf28hwj2bfxqmwlww47khyk6d152xax4bnyh60f4lq3nx1";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/mapstructure";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/mapstructure";
-      rev = "v1.1.2";
-      sha256 = "03bpv28jz9zhn4947saqwi328ydj7f6g6pf1m2d4m5zdh5jlfkrr";
-    };
-  }
-  {
-    goPackagePath = "github.com/pelletier/go-toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pelletier/go-toml";
-      rev = "v1.2.0";
-      sha256 = "1fjzpcjng60mc3a4b2ql5a00d5gah84wj740dabv9kq67mpg8fxy";
-    };
-  }
-  {
-    goPackagePath = "github.com/pmezard/go-difflib";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pmezard/go-difflib";
-      rev = "v1.0.0";
-      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
-    };
-  }
-  {
-    goPackagePath = "github.com/russross/blackfriday";
-    fetch = {
-      type = "git";
-      url = "https://github.com/russross/blackfriday";
-      rev = "v1.5.2";
-      sha256 = "0jzbfzcywqcrnym4gxlz6nphmm1grg6wsl4f0r9x384rn83wkj7c";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/afero";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/afero";
-      rev = "v1.1.2";
-      sha256 = "0miv4faf5ihjfifb1zv6aia6f6ik7h1s4954kcb8n6ixzhx9ck6k";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/cast";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cast";
-      rev = "v1.3.0";
-      sha256 = "0xq1ffqj8y8h7dcnm0m9lfrh0ga7pssnn2c1dnr09chqbpn4bdc5";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/cobra";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cobra";
-      rev = "v0.0.4";
-      sha256 = "1k7dq78fjz94lzifsprkmiv93swwzwcbg1vd64v20wvnga8v254b";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/jwalterweatherman";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/jwalterweatherman";
-      rev = "v1.0.0";
-      sha256 = "093fmmvavv84pv4q84hav7ph3fmrq87bvspjj899q0qsx37yvdr8";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/pflag";
-      rev = "v1.0.3";
-      sha256 = "1cj3cjm7d3zk0mf1xdybh0jywkbbw7a6yr3y22x9sis31scprswd";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/viper";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/viper";
-      rev = "v1.3.2";
-      sha256 = "1829hvf805kda65l59r17wvid7y0vr390s23zfhf4w7vdb4wp3zh";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev = "v1.2.2";
-      sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs";
-    };
-  }
-  {
-    goPackagePath = "github.com/ugorji/go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ugorji/go";
-      rev = "d75b2dcb6bc8";
-      sha256 = "0di1k35gpq9bp958ywranpbskx2vdwlb38s22vl9rybm3wa5g3ps";
-    };
-  }
-  {
-    goPackagePath = "github.com/xordataexchange/crypt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/xordataexchange/crypt";
-      rev = "b2862e3d0a77";
-      sha256 = "04q3856anpzl4gdfgmg7pbp9cx231nkz3ymq2xp27rnmmwhfxr8y";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "505ab145d0a9";
-      sha256 = "1vbsvcvmjz6c00p5vf8ls533p52fx2y3gy6v4k5qrdlzl4wf0i5s";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "a5c9d58dba9a";
-      sha256 = "02qv5i7yps35p7fa81345qz7k8i73gkigj69anwmpw9rhpmzayf9";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "v0.3.0";
-      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "20d25e280405";
-      sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.2";
-      sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
-    };
-  }
-]
diff --git a/pkgs/applications/version-management/git-lfs/default.nix b/pkgs/applications/version-management/git-lfs/default.nix
index 9f0126d9ac4c8..8871ac2306efd 100644
--- a/pkgs/applications/version-management/git-lfs/default.nix
+++ b/pkgs/applications/version-management/git-lfs/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "git-lfs";
-  version = "3.1.2";
+  version = "3.1.4";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "git-lfs";
     repo = "git-lfs";
-    sha256 = "sha256-IEo8poEYPjAbBGk+SQdJqyhwgMYjNLdibI+AktVIg1g=";
+    sha256 = "sha256-dGqb7gw7l2SPGwhHIFbEq6XqMB9QRw3+3Pfbk2S4kW4=";
   };
 
   goPackagePath = "github.com/git-lfs/git-lfs";
diff --git a/pkgs/applications/version-management/git-repo/default.nix b/pkgs/applications/version-management/git-repo/default.nix
index 7fe27da6080ad..58b3fb1d20f1a 100644
--- a/pkgs/applications/version-management/git-repo/default.nix
+++ b/pkgs/applications/version-management/git-repo/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "git-repo";
-  version = "2.22";
+  version = "2.24";
 
   src = fetchFromGitHub {
     owner = "android";
     repo = "tools_repo";
     rev = "v${version}";
-    sha256 = "sha256-oVwvoZdjD6V3CHECZOYBSYVtCX1XwW5fynyCn7Oj+Bc=";
+    sha256 = "sha256-p5zAehhqOUlKay3/Oy8hbBo5nQRIyE7o4bnaX/TabYc=";
   };
 
   # Fix 'NameError: name 'ssl' is not defined'
diff --git a/pkgs/applications/version-management/git-review/default.nix b/pkgs/applications/version-management/git-review/default.nix
index 98c9c5312e610..1eaedf218cda4 100644
--- a/pkgs/applications/version-management/git-review/default.nix
+++ b/pkgs/applications/version-management/git-review/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonApplication rec {
   pname = "git-review";
-  version = "2.2.0";
+  version = "2.3.1";
 
   # Manually set version because prb wants to get it from the git
   # upstream repository (and we are installing from tarball instead)
@@ -20,7 +20,7 @@ buildPythonApplication rec {
     owner = "opendev";
     repo = pname;
     rev = version;
-    sha256 = "sha256-2+X5fPxB2FIp1fwqEUc+W0gH2NjhF/V+La+maE+XEpo=";
+    sha256 = "sha256-C8M4b/paHJB9geizc1eIhXsTuLeeS4dDisCfCQF1RuU=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/applications/version-management/git-sizer/default.nix b/pkgs/applications/version-management/git-sizer/default.nix
index 049a2aa2c1d0b..ed7239b80cb33 100644
--- a/pkgs/applications/version-management/git-sizer/default.nix
+++ b/pkgs/applications/version-management/git-sizer/default.nix
@@ -1,20 +1,29 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, testers, git-sizer }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "git-sizer";
-  version = "1.3.0";
-
-  goPackagePath = "github.com/github/git-sizer";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "github";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0kmyvai5xfalm56ywa6mhdvvjnacdzwcyz28bw0pz9a4gyf1mgvh";
+    sha256 = "sha256-On7QBTzKfnuuzwMQ8m1odxGqfIKL+EDg5V05Kxuhmqw=";
+  };
+
+  vendorSha256 = "sha256-oRlsD99XiI/0ZWibjyRcycmGab+vMbXrV5hIdIyUDYg=";
+
+  ldflags = [ "-s" "-w" "-X main.BuildVersion=${version}" ];
+
+  doCheck = false;
+
+  passthru.tests.vesion = testers.testVersion {
+    package = git-sizer;
   };
 
   meta = with lib; {
     description = "Compute various size metrics for a Git repository";
+    homepage = "https://github.com/github/git-sizer";
     license = licenses.mit;
     maintainers = with maintainers; [ matthewbauer ];
   };
diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/applications/version-management/gitea/default.nix
index 840937c190f00..57147e360a214 100644
--- a/pkgs/applications/version-management/gitea/default.nix
+++ b/pkgs/applications/version-management/gitea/default.nix
@@ -16,12 +16,12 @@ with lib;
 
 buildGoPackage rec {
   pname = "gitea";
-  version = "1.16.5";
+  version = "1.16.6";
 
   # not fetching directly from the git repo, because that lacks several vendor files for the web UI
   src = fetchurl {
     url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
-    sha256 = "sha256-2aqy6DV8oaIur/syg1bk41Wo+FGk3m+05+tUyoDwGHs=";
+    sha256 = "sha256-LlAnTTFuqbMa7QPf51D6+RalWuYqTKlSlxGXyt4h0aE=";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/version-management/github-desktop/default.nix b/pkgs/applications/version-management/github-desktop/default.nix
index 83991407fd419..6017d105fed71 100644
--- a/pkgs/applications/version-management/github-desktop/default.nix
+++ b/pkgs/applications/version-management/github-desktop/default.nix
@@ -19,11 +19,11 @@
 
 stdenv.mkDerivation rec {
   pname = "github-desktop";
-  version = "2.9.9";
+  version = "2.9.12";
 
   src = fetchurl {
     url = "https://github.com/shiftkey/desktop/releases/download/release-${version}-linux1/GitHubDesktop-linux-${version}-linux1.deb";
-    sha256 = "sha256-LMKOxQR3Bgw00LnKqAe2hq+eASgwC7y0cxNSSt/sjWA=";
+    sha256 = "sha256-tr1u6q7sHI1Otor53d1F7J0f9eV9tKtLZx8+40I16y8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index 52ad060c990d2..8d89420607a3f 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -11,24 +11,24 @@ with lib;
 let
   curlWithGnuTls = curl.override { gnutlsSupport = true; opensslSupport = false; };
   pname = "gitkraken";
-  version = "8.3.3";
+  version = "8.4.0";
 
   throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
 
   srcs = {
     x86_64-linux = fetchzip {
       url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
-      sha256 = "185msrpa33w40prc88n5m0g12wh8r6szj56iikk4ps6kwr6wamy7";
+      sha256 = "sha256-yVQILgEn67iiUUQqpQqt++cZMN5u9FT0MbNf7pFES9Y=";
     };
 
     x86_64-darwin = fetchzip {
       url = "https://release.axocdn.com/darwin/GitKraken-v${version}.zip";
-      sha256 = "0iam5ni8imajxhcv12zib6m475i6czllmqy512r1wmzw9zbilf43";
+      sha256 = "sha256-cTHMl5peXj52Fy2XBfKaUKLuZnPCC4XdReOiB0fbCNk=";
     };
 
     aarch64-darwin = fetchzip {
       url = "https://release.axocdn.com/darwin-arm64/GitKraken-v${version}.zip";
-      sha256 = "12af421r4d8s4l5j54xyd3x8pa72nbilass95v0y3b0wgsi35g0z";
+      sha256 = "sha256-M3Y5qP0nozk5iTnEGK2+ds8/Vb/l0nhIo4LSrCWLDu8=";
     };
   };
 
diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json
index dbae269aab8c5..2bdf0260f1e83 100644
--- a/pkgs/applications/version-management/gitlab/data.json
+++ b/pkgs/applications/version-management/gitlab/data.json
@@ -1,14 +1,14 @@
 {
-  "version": "14.9.2",
-  "repo_hash": "sha256-+tZN6isOb7LtUVwGshx9TP+P42sftJmQGVk1L9UJqcY=",
+  "version": "14.9.3",
+  "repo_hash": "04a5z9dr8qs1vrgrdlw5sx5wjwjgqzgj7rqxy4lswycxglc8i1ad",
   "yarn_hash": "1mya6y0cb9x8491gpf7f1i7qi2rb0l7d9g5yzj44vvy3mb4rcqaj",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v14.9.2-ee",
+  "rev": "v14.9.3-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "14.9.2",
+    "GITALY_SERVER_VERSION": "14.9.3",
     "GITLAB_PAGES_VERSION": "1.56.1",
     "GITLAB_SHELL_VERSION": "13.24.0",
-    "GITLAB_WORKHORSE_VERSION": "14.9.2"
+    "GITLAB_WORKHORSE_VERSION": "14.9.3"
   }
 }
diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix
index cd76768aee495..408a5df856483 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -11,7 +11,7 @@ let
     gemdir = ./.;
   };
 
-  version = "14.9.2";
+  version = "14.9.3";
   gitaly_package = "gitlab.com/gitlab-org/gitaly/v${lib.versions.major version}";
 in
 
@@ -23,7 +23,7 @@ buildGoModule {
     owner = "gitlab-org";
     repo = "gitaly";
     rev = "v${version}";
-    sha256 = "sha256-eEo+WZ2N/5bLfvwJCNf9qt+h/V5dIVqCjVJeomzw/Ps=";
+    sha256 = "sha256-D4Dgw2vqX5464ciYvTqagQG/uXt0Wm15ztdwbyJp1HM=";
   };
 
   vendorSha256 = "sha256-kEjgWA/Task23PScPYrqdDu3vdVR/FJl7OilUug/Bds=";
diff --git a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
index 9fcecc53a0709..22b982f5d7153 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
@@ -5,7 +5,7 @@ in
 buildGoModule rec {
   pname = "gitlab-workhorse";
 
-  version = "14.9.2";
+  version = "14.9.3";
 
   src = fetchFromGitLab {
     owner = data.owner;
diff --git a/pkgs/applications/version-management/gitoxide/default.nix b/pkgs/applications/version-management/gitoxide/default.nix
index 570a4c06abf9a..5b1bdeb22b45c 100644
--- a/pkgs/applications/version-management/gitoxide/default.nix
+++ b/pkgs/applications/version-management/gitoxide/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gitoxide";
-  version = "0.10.0";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "Byron";
     repo = "gitoxide";
     rev = "v${version}";
-    sha256 = "sha256-c29gmmkIOyS+HNq2kv53yq+sdEDmQbSmcvVGcd55/hk=";
+    sha256 = "sha256-hDNlnNGm9of6Yu9WRVTRH5g4fAXlUxAexdufbZ0vMOo=";
   };
 
-  cargoSha256 = "sha256-oc7XpiOZj4bfqdwrEHj/CzNtWzYWFkgMJOySJNgxAGQ=";
+  cargoSha256 = "sha256-026DFEWu7PTvhJZP7YW3KOBOkzFRoxrc+THilit87jU=";
 
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = if stdenv.isDarwin
diff --git a/pkgs/applications/version-management/jujutsu/default.nix b/pkgs/applications/version-management/jujutsu/default.nix
index fbf800363ab0e..c99bb409c3e90 100644
--- a/pkgs/applications/version-management/jujutsu/default.nix
+++ b/pkgs/applications/version-management/jujutsu/default.nix
@@ -9,7 +9,7 @@
 , Security
 , SystemConfiguration
 , libiconv
-, testVersion
+, testers
 , jujutsu
 }:
 
@@ -44,7 +44,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   passthru.tests = {
-    version = testVersion {
+    version = testers.testVersion {
       package = jujutsu;
       command = "jj --version";
     };
@@ -56,5 +56,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/martinvonz/jj/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ _0x4A6F ];
+    mainProgram = "jj";
   };
 }
diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix
index 9dc3e0329e3c0..4898729159907 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -21,18 +21,13 @@ let
 
   self = python3Packages.buildPythonApplication rec {
     pname = "mercurial${lib.optionalString fullBuild "-full"}";
-    version = "6.1";
+    version = "6.1.1";
 
     src = fetchurl {
       url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
-      sha256 = "sha256-hvmGReRWWpJWmR3N4it3uOfSLKb7tgwfTNvYRpo4zB8=";
+      sha256 = "sha256-V7ikYdDOE9muOBfYqL35Ay407fqsPbzLO2a4NdzpM4g=";
     };
 
-    patches = [
-      # Fix the type of libc buffer for aarch64-linux
-      ./fix-rhg-type-aarch64.patch
-    ];
-
     format = "other";
 
     passthru = { inherit python; }; # pass it so that the same version can be used in hg2git
@@ -40,7 +35,7 @@ let
     cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
       inherit src;
       name = "mercurial-${version}";
-      sha256 = "sha256-+Y91gEC8vmyutNpVFAAL4MSg4KnpFbhH12CIuMRx0Mc=";
+      sha256 = "sha256-HYH7+OD11kdZdxFrx1KVle1NesS3fAgwVXJpAeiXDTo=";
       sourceRoot = "mercurial-${version}/rust";
     } else null;
     cargoRoot = if rustSupport then "rust" else null;
diff --git a/pkgs/applications/version-management/mercurial/fix-rhg-type-aarch64.patch b/pkgs/applications/version-management/mercurial/fix-rhg-type-aarch64.patch
deleted file mode 100644
index 84417b497c0aa..0000000000000
--- a/pkgs/applications/version-management/mercurial/fix-rhg-type-aarch64.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/rust/hg-core/src/lock.rs b/rust/hg-core/src/lock.rs
---- a/rust/hg-core/src/lock.rs
-+++ b/rust/hg-core/src/lock.rs
-@@ -145,7 +145,7 @@ lazy_static::lazy_static! {
- 
-         /// Same as https://github.com/python/cpython/blob/v3.10.0/Modules/socketmodule.c#L5414
-         const BUFFER_SIZE: usize = 1024;
--        let mut buffer = [0_i8; BUFFER_SIZE];
-+        let mut buffer = [0 as libc::c_char; BUFFER_SIZE];
-         let hostname_bytes = unsafe {
-             let result = libc::gethostname(buffer.as_mut_ptr(), BUFFER_SIZE);
-             if result != 0 {
diff --git a/pkgs/applications/version-management/monotone/default.nix b/pkgs/applications/version-management/monotone/default.nix
index 6ea66b296d747..34c3e611d4059 100644
--- a/pkgs/applications/version-management/monotone/default.nix
+++ b/pkgs/applications/version-management/monotone/default.nix
@@ -39,6 +39,8 @@ stdenv.mkDerivation rec {
     sed -e 's@/usr/bin/less@${less}/bin/less@' -i src/unix/terminal.cc
   '';
 
+  CXXFLAGS=" --std=c++11 ";
+
   nativeBuildInputs = [ pkg-config autoreconfHook texinfo ];
   buildInputs = [ boost zlib botan2 libidn lua pcre sqlite expect
     openssl gmp bzip2 perl ];
diff --git a/pkgs/applications/version-management/p4/default.nix b/pkgs/applications/version-management/p4/default.nix
index 4d3e471cca249..7091f0fbc6f9c 100644
--- a/pkgs/applications/version-management/p4/default.nix
+++ b/pkgs/applications/version-management/p4/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   src = fetchurl {
     # actually  https://cdist2.perforce.com/perforce/r21.2/bin.linux26x86_64/helix-core-server.tgz but upstream deletes releases
     url = "https://web.archive.org/web/20211118024943/https://cdist2.perforce.com/perforce/r21.2/bin.linux26x86_64/helix-core-server.tgz";
-    sha256 = "sha256-cmIMVek4lwVYJQbW8ziABftPZ0iIoAoSpR7cKuN4I7M=";
+    sha256 = "sha256-SrfI2ZD7KDyttCd8+fo8g4UZKljYYO/SbzqrS9tAcC8=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/applications/version-management/pijul/default.nix b/pkgs/applications/version-management/pijul/default.nix
index 858f15a50bbe3..f4fa942a48430 100644
--- a/pkgs/applications/version-management/pijul/default.nix
+++ b/pkgs/applications/version-management/pijul/default.nix
@@ -13,14 +13,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pijul";
-  version = "1.0.0-beta";
+  version = "1.0.0-beta.1";
 
   src = fetchCrate {
     inherit version pname;
-    sha256 = "sha256-s7fHg6Le4y0yAyxOQf6iUUHA4dYsamlTUb0KISOHI7Q=";
+    sha256 = "sha256-XdbZFWtHKXjcGV1vYn7MYdevW+Vc/IKON1DOU49Kzlo=";
   };
 
-  cargoSha256 = "sha256-09PWy1yfr1FY2AsKaoZZswi4P5JdNcumIOmTm+M21UE=";
+  cargoSha256 = "sha256-9kPeJ0tOhA4oqFOdwGDkXMnNViklMlNO7VbbWXYrk3I=";
 
   doCheck = false;
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/version-management/rcs/default.nix b/pkgs/applications/version-management/rcs/default.nix
index d46a67a8601e0..5f2f9aab2b3c3 100644
--- a/pkgs/applications/version-management/rcs/default.nix
+++ b/pkgs/applications/version-management/rcs/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, buildPackages, diffutils, ed, lzip }:
+{ lib, stdenv, fetchurl, buildPackages, diffutils, ed, lzip }:
 
 stdenv.mkDerivation rec {
   pname = "rcs";
diff --git a/pkgs/applications/version-management/redmine/default.nix b/pkgs/applications/version-management/redmine/default.nix
index 39e46d90b88da..e3fba172a5f11 100644
--- a/pkgs/applications/version-management/redmine/default.nix
+++ b/pkgs/applications/version-management/redmine/default.nix
@@ -47,7 +47,7 @@ in
     meta = with lib; {
       homepage = "https://www.redmine.org/";
       platforms = platforms.linux;
-      maintainers = [ maintainers.aanderse ];
+      maintainers = with maintainers; [ aanderse felixsinger ];
       license = licenses.gpl2;
     };
   }
diff --git a/pkgs/applications/version-management/subversion/default.nix b/pkgs/applications/version-management/subversion/default.nix
index 4789d654ae681..2960560b51530 100644
--- a/pkgs/applications/version-management/subversion/default.nix
+++ b/pkgs/applications/version-management/subversion/default.nix
@@ -22,10 +22,10 @@ let
 
   common = { version, sha256, extraPatches ? [ ] }: stdenv.mkDerivation (rec {
     inherit version;
-    pname = "subversion";
+    pname = "subversion${lib.optionalString (!bdbSupport && perlBindings && pythonBindings) "-client"}";
 
     src = fetchurl {
-      url = "mirror://apache/subversion/${pname}-${version}.tar.bz2";
+      url = "mirror://apache/subversion/subversion-${version}.tar.bz2";
       inherit sha256;
     };
 
@@ -120,12 +120,12 @@ let
 
 in {
   subversion_1_10 = common {
-    version = "1.10.7";
-    sha256 = "1nhrd8z6c94sc0ryrzpyd98qdn5a5g3x0xv1kdb9da4drrk8y2ww";
+    version = "1.10.8";
+    sha256 = "sha256-CnO6MSe1ov/7j+4rcCmE8qgI3nEKjbKLfdQBDYvlDlo=";
   };
 
   subversion = common {
-    version = "1.14.1";
-    sha256 = "1ag1hvcm9q92kgalzbbgcsq9clxnzmbj9nciz9lmabjx4lyajp9c";
+    version = "1.14.2";
+    sha256 = "sha256-yRMOjQt1copm8OcDj8dwUuZxgw14W1YWqtU7SBDTzCg=";
   };
 }
diff --git a/pkgs/applications/version-management/yadm/default.nix b/pkgs/applications/version-management/yadm/default.nix
index ffd5fdaab7c0c..c48962841fd8b 100644
--- a/pkgs/applications/version-management/yadm/default.nix
+++ b/pkgs/applications/version-management/yadm/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, resholvePackage
+, resholve
 , fetchFromGitHub
 , git
 , bash
@@ -27,7 +27,7 @@ to support their use in yadm.
 , yadm
 }:
 
-resholvePackage rec {
+resholve.mkDerivation rec {
   pname = "yadm";
   version = "3.1.1";
 
diff --git a/pkgs/applications/video/ani-cli/default.nix b/pkgs/applications/video/ani-cli/default.nix
index 6883587b4b810..720df51a34ef5 100644
--- a/pkgs/applications/video/ani-cli/default.nix
+++ b/pkgs/applications/video/ani-cli/default.nix
@@ -12,13 +12,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "ani-cli";
-  version = "1.9";
+  version = "2.1";
 
   src = fetchFromGitHub {
     owner = "pystardust";
     repo = "ani-cli";
     rev = "v${version}";
-    sha256 = "sha256-oYiq3Mnuhba5NELJXqVN3gY/d0RfQIqW13YtdcmYKK4=";
+    sha256 = "sha256-A1c7YdBh2VOhw/xTvhNV50j9n+SELyRTHI5w+AeiWDs=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/video/celluloid/default.nix b/pkgs/applications/video/celluloid/default.nix
index 291b4b9ebfc64..98495ca5affb7 100644
--- a/pkgs/applications/video/celluloid/default.nix
+++ b/pkgs/applications/video/celluloid/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "celluloid";
-  version = "0.22";
+  version = "0.23";
 
   src = fetchFromGitHub {
     owner = "celluloid-player";
     repo = "celluloid";
     rev = "v${version}";
-    hash = "sha256-QGN8YLtyb9YVNDK2ZDQwHJVg6UTIQssfNK9lQqxMNKQ=";
+    hash = "sha256-YKDud/UJJx9ko5k+Oux8mUUme0MXaRMngESE14Hhxv8=";
   };
 
   nativeBuildInputs = [
@@ -46,8 +46,6 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     patchShebangs meson-post-install.py src/generate-authors.py
-    # Remove this for next release
-    substituteInPlace meson-post-install.py --replace "gtk-update-icon-cache" "gtk4-update-icon-cache"
   '';
 
   doCheck = true;
diff --git a/pkgs/applications/video/epgstation/default.nix b/pkgs/applications/video/epgstation/default.nix
index 77510ae153deb..b89193617274f 100644
--- a/pkgs/applications/video/epgstation/default.nix
+++ b/pkgs/applications/video/epgstation/default.nix
@@ -1,8 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, common-updater-scripts
-, genericUpdater
+, gitUpdater
 , writers
 , makeWrapper
 , bash
@@ -115,7 +114,7 @@ let
       ln -sfT /var/lib/epgstation/thumbnail thumbnail
 
       makeWrapper ${nodejs}/bin/npm $out/bin/epgstation \
-       --run "cd $out/lib/node_modules/epgstation" \
+       --chdir "$out/lib/node_modules/epgstation" \
        --prefix PATH : ${lib.makeBinPath runtimeDeps} \
        --set APP_ROOT_PATH "$out/lib/node_modules/epgstation"
 
@@ -130,8 +129,7 @@ let
       inherit
         pname
         version
-        common-updater-scripts
-        genericUpdater
+        gitUpdater
         writers
         jq
         yq;
diff --git a/pkgs/applications/video/epgstation/update.nix b/pkgs/applications/video/epgstation/update.nix
index 5eb23be6c52b6..387fbe0db62d2 100644
--- a/pkgs/applications/video/epgstation/update.nix
+++ b/pkgs/applications/video/epgstation/update.nix
@@ -2,19 +2,17 @@
 , version
 , homepage
 , lib
-, common-updater-scripts
-, genericUpdater
+, gitUpdater
 , writers
 , jq
 , yq
 }:
 
 let
-  updater = genericUpdater {
+  updater = gitUpdater {
     inherit pname version;
     attrPath = lib.toLower pname;
     rev-prefix = "v";
-    versionLister = "${common-updater-scripts}/bin/list-git-tags --url=${homepage}";
   };
   updateScript = builtins.elemAt updater 0;
   updateArgs = map (lib.escapeShellArg) (builtins.tail updater);
diff --git a/pkgs/applications/video/f1viewer/default.nix b/pkgs/applications/video/f1viewer/default.nix
index c241dd8a7458f..2620142fb11e9 100644
--- a/pkgs/applications/video/f1viewer/default.nix
+++ b/pkgs/applications/video/f1viewer/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "f1viewer";
-  version = "2.6.2";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "SoMuchForSubtlety";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Z6rnkHypk7r9NnYwqZpWQOuGPbWn/EppS+46PQHIdDM=";
+    sha256 = "sha256-jXC2dENXuqicNQqTHyZKsjibDvjta/npQmf3+uivjX0=";
   };
 
   vendorSha256 = "sha256-UNeH3zxgssXxFpJws6nAL8EgXt0DRyAQfmlJWz/qyDg=";
diff --git a/pkgs/applications/video/ffmpeg-normalize/default.nix b/pkgs/applications/video/ffmpeg-normalize/default.nix
index a2f802c6e87bb..9331471c747e6 100644
--- a/pkgs/applications/video/ffmpeg-normalize/default.nix
+++ b/pkgs/applications/video/ffmpeg-normalize/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonApplication rec {
   pname = "ffmpeg-normalize";
-  version = "1.22.8";
+  version = "1.22.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-vxiq6q8fPh8ZLKnxYdIN591UQW73FWsoke1PvKTkko8=";
+    sha256 = "sha256-RBrCIDinPXbXKqrrhqVf3rV4rfi+2PttIaYxUKOk7hs=";
   };
 
   propagatedBuildInputs = [ ffmpeg ffmpeg-progress-yield ];
diff --git a/pkgs/applications/video/handbrake/default.nix b/pkgs/applications/video/handbrake/default.nix
index 841604399ed36..3c73e7f59944b 100644
--- a/pkgs/applications/video/handbrake/default.nix
+++ b/pkgs/applications/video/handbrake/default.nix
@@ -11,7 +11,7 @@
 , lib
 , fetchFromGitHub
   # For tests
-, testVersion
+, testers
 , runCommand
 , fetchurl
   # Main build tools
@@ -230,7 +230,7 @@ let self = stdenv.mkDerivation rec {
         HandBrakeCLI -i ${testMkv} -o test.mkv -e x264 -q 20 -B 160
         test -e test.mkv
       '';
-    version = testVersion { package = self; command = "HandBrakeCLI --version"; };
+    version = testers.testVersion { package = self; command = "HandBrakeCLI --version"; };
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/video/hdhomerun-config-gui/default.nix b/pkgs/applications/video/hdhomerun-config-gui/default.nix
index 62726dff41123..32f4267d9fcc1 100644
--- a/pkgs/applications/video/hdhomerun-config-gui/default.nix
+++ b/pkgs/applications/video/hdhomerun-config-gui/default.nix
@@ -16,7 +16,9 @@ stdenv.mkDerivation rec {
   makeFlags = [ "SUBDIRS=src" ];
 
   installPhase = ''
-    install -vDm 755 src/hdhomerun_config_gui $out/usr/bin/hdhomerun_config_gui
+    runHook preInstall
+    install -vDm 755 src/hdhomerun_config_gui $out/bin/hdhomerun_config_gui
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/video/kodi/add-KODI_WEBSERVER_EXTRA_WHITELIST.patch b/pkgs/applications/video/kodi/add-KODI_WEBSERVER_EXTRA_WHITELIST.patch
new file mode 100644
index 0000000000000..ae221eff60450
--- /dev/null
+++ b/pkgs/applications/video/kodi/add-KODI_WEBSERVER_EXTRA_WHITELIST.patch
@@ -0,0 +1,88 @@
+From 620c3eb38f0dbea6e877e37e97508513e87a0732 Mon Sep 17 00:00:00 2001
+From: Jeremy Fleischman <jeremyfleischman@gmail.com>
+Date: Sun, 27 Mar 2022 00:44:52 -0700
+Subject: [PATCH] Add new KODI_WEBSERVER_EXTRA_WHITELIST cmake var to allow
+ access to more directories
+
+(This is a backport of
+https://github.com/xbmc/xbmc/commit/a6dedce7ba1f03bdd83b019941d1e369a06f7888
+to Kodi 19.4 Matrix)
+
+This is useful for NixOS, which often ends up creating a `KODI_HOME`
+with symlinks to other files (including the chorus2 interface). Kodi's
+webserver cautiously refuses to follow these symlinks, and you end up
+getting 404s rather than the web page.
+
+See https://forum.kodi.tv/showthread.php?tid=366338&pid=3079493 for a
+discussion of this on the Kodi forum.
+---
+ CMakeLists.txt           | 1 +
+ xbmc/CompileInfo.cpp.in  | 5 +++++
+ xbmc/CompileInfo.h       | 1 +
+ xbmc/utils/FileUtils.cpp | 6 +++++-
+ 4 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2d5369798df23..d5ef6d9390ef0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -243,6 +243,7 @@ add_custom_command(OUTPUT ${CORE_BUILD_DIR}/xbmc/CompileInfo.cpp
+                                             -DAPP_BUILD_DATE=${APP_BUILD_DATE}
+                                             -DAPP_SHARED_LIBRARY_SUFFIX="${APP_SHARED_LIBRARY_SUFFIX}"
+                                             -Dprefix=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}
++                                            -DKODI_WEBSERVER_EXTRA_WHITELIST="${KODI_WEBSERVER_EXTRA_WHITELIST}"
+                                             -P ${CMAKE_SOURCE_DIR}/cmake/scripts/common/GenerateVersionedFiles.cmake
+                    DEPENDS ${CMAKE_SOURCE_DIR}/version.txt
+                            export-files
+diff --git a/xbmc/CompileInfo.cpp.in b/xbmc/CompileInfo.cpp.in
+index f81fe77902236..4f19203a89cde 100644
+--- a/xbmc/CompileInfo.cpp.in
++++ b/xbmc/CompileInfo.cpp.in
+@@ -105,3 +105,8 @@ std::vector<std::string> CCompileInfo::GetAvailableWindowSystems()
+ {
+   return StringUtils::Split("@CORE_PLATFORM_NAME_LC@", ' ');
+ }
++
++const std::vector<std::string> CCompileInfo::GetWebserverExtraWhitelist()
++{
++  return StringUtils::Split("@KODI_WEBSERVER_EXTRA_WHITELIST@", ',');
++}
+diff --git a/xbmc/CompileInfo.h b/xbmc/CompileInfo.h
+index 553a0194ee77f..e2521324e6576 100644
+--- a/xbmc/CompileInfo.h
++++ b/xbmc/CompileInfo.h
+@@ -32,4 +32,5 @@ class CCompileInfo
+   static const char* GetVersionCode();
+   static std::vector<std::string> GetAvailableWindowSystems();
+   static std::vector<ADDON::RepoInfo> LoadOfficialRepoInfos();
++  static const std::vector<std::string> GetWebserverExtraWhitelist();
+ };
+diff --git a/xbmc/utils/FileUtils.cpp b/xbmc/utils/FileUtils.cpp
+index e51f3d631c256..fc717c9608098 100644
+--- a/xbmc/utils/FileUtils.cpp
++++ b/xbmc/utils/FileUtils.cpp
+@@ -6,6 +6,7 @@
+  *  See LICENSES/README.md for more information.
+  */
+ 
++#include "CompileInfo.h"
+ #include "FileUtils.h"
+ #include "ServiceBroker.h"
+ #include "guilib/GUIKeyboardFactory.h"
+@@ -261,12 +262,15 @@ bool CFileUtils::CheckFileAccessAllowed(const std::string &filePath)
+     "/.ssh/",
+   };
+   // ALLOW kodi paths
+-  const std::vector<std::string> whitelist = {
++  std::vector<std::string> whitelist = {
+     CSpecialProtocol::TranslatePath("special://home"),
+     CSpecialProtocol::TranslatePath("special://xbmc"),
+     CSpecialProtocol::TranslatePath("special://musicartistsinfo")
+   };
+ 
++  auto kodiExtraWhitelist = CCompileInfo::GetWebserverExtraWhitelist();
++  whitelist.insert(whitelist.end(), kodiExtraWhitelist.begin(), kodiExtraWhitelist.end());
++
+   // image urls come in the form of image://... sometimes with a / appended at the end
+   // and can be embedded in a music or video file image://music@...
+   // strip this off to get the real file path
diff --git a/pkgs/applications/video/kodi/unwrapped.nix b/pkgs/applications/video/kodi/unwrapped.nix
index 18319468eae90..47f3e0a9d996b 100644
--- a/pkgs/applications/video/kodi/unwrapped.nix
+++ b/pkgs/applications/video/kodi/unwrapped.nix
@@ -107,6 +107,15 @@ in stdenv.mkDerivation {
 
     src = kodi_src;
 
+    # This is a backport of
+    # https://github.com/xbmc/xbmc/commit/a6dedce7ba1f03bdd83b019941d1e369a06f7888
+    # to Kodi 19.4 Matrix.
+    # This can be removed once a new release of Kodi comes out and we upgrade
+    # to it.
+    patches = [
+      ./add-KODI_WEBSERVER_EXTRA_WHITELIST.patch
+    ];
+
     buildInputs = [
       gnutls libidn libtasn1 nasm p11-kit
       libxml2 python3Packages.python
@@ -185,6 +194,12 @@ in stdenv.mkDerivation {
       "-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig"
       "-DFLATBUFFERS_FLATC_EXECUTABLE=${buildPackages.flatbuffers}/bin/flatc"
       "-DPYTHON_EXECUTABLE=${buildPackages.python3Packages.python}/bin/python"
+      # When wrapped KODI_HOME will likely contain symlinks to static assets
+      # that Kodi's built in webserver will cautiously refuse to serve up
+      # (because their realpaths are outside of KODI_HOME and the other
+      # whitelisted directories). This adds the entire nix store to the Kodi
+      # webserver whitelist to avoid this problem.
+      "-DKODI_WEBSERVER_EXTRA_WHITELIST=${builtins.storeDir}"
     ] ++ lib.optional waylandSupport [
       "-DWAYLANDPP_SCANNER=${buildPackages.waylandpp}/bin/wayland-scanner++"
     ];
diff --git a/pkgs/applications/video/kodi/wrapper.nix b/pkgs/applications/video/kodi/wrapper.nix
index 2380d0023d576..52b7679a325ea 100644
--- a/pkgs/applications/video/kodi/wrapper.nix
+++ b/pkgs/applications/video/kodi/wrapper.nix
@@ -35,11 +35,5 @@ buildEnv {
           (lib.concatMap
             (plugin: plugin.extraRuntimeDependencies or []) addons)}"
     done
-
-    # makeWrapper just created webinterface.default as a symlink. However,
-    # kodi's webserver carefully refuses to follow symlinks, so we need to copy
-    # these assets instead.
-    rm $out/share/kodi/addons/webinterface.default
-    cp -r ${kodi}/share/kodi/addons/webinterface.default/ $out/share/kodi/addons/webinterface.default
   '';
 }
diff --git a/pkgs/applications/video/mirakurun/default.nix b/pkgs/applications/video/mirakurun/default.nix
index 3987e12528444..d0d52ade25ad9 100644
--- a/pkgs/applications/video/mirakurun/default.nix
+++ b/pkgs/applications/video/mirakurun/default.nix
@@ -6,9 +6,8 @@
 { lib
 , stdenvNoCC
 , bash
-, common-updater-scripts
 , fetchFromGitHub
-, genericUpdater
+, gitUpdater
 , jq
 , makeWrapper
 , mkYarnPackage
@@ -61,7 +60,7 @@ stdenvNoCC.mkDerivation rec {
       mkdir -p $out/bin
 
       makeWrapper ${mirakurun}/bin/mirakurun-epgdump $out/bin/mirakurun-epgdump \
-        --run "cd ${mirakurun}/libexec/mirakurun/node_modules/mirakurun" \
+        --chdir "${mirakurun}/libexec/mirakurun/node_modules/mirakurun" \
         --prefix PATH : ${lib.makeBinPath runtimeDeps}
 
       # XXX: The original mirakurun command uses PM2 to manage the Mirakurun
@@ -70,7 +69,7 @@ stdenvNoCC.mkDerivation rec {
       # unique to PM2 is currently being used.
       makeWrapper ${yarn}/bin/yarn $out/bin/mirakurun-start \
         --add-flags "start" \
-        --run "cd ${mirakurun}/libexec/mirakurun/node_modules/mirakurun" \
+        --chdir "${mirakurun}/libexec/mirakurun/node_modules/mirakurun" \
         --prefix PATH : ${lib.makeBinPath runtimeDeps}
     '';
 
@@ -80,8 +79,7 @@ stdenvNoCC.mkDerivation rec {
     inherit
       pname
       version
-      common-updater-scripts
-      genericUpdater
+      gitUpdater
       writers
       jq
       yarn
diff --git a/pkgs/applications/video/mirakurun/update.nix b/pkgs/applications/video/mirakurun/update.nix
index 18a4d0ab25629..6fd13f81b87ad 100644
--- a/pkgs/applications/video/mirakurun/update.nix
+++ b/pkgs/applications/video/mirakurun/update.nix
@@ -2,8 +2,7 @@
 , version
 , homepage
 , lib
-, common-updater-scripts
-, genericUpdater
+, gitUpdater
 , writers
 , jq
 , yarn
@@ -11,15 +10,12 @@
 }:
 
 let
-  updater = genericUpdater {
+  updater = gitUpdater {
     inherit pname version;
     attrPath = lib.toLower pname;
 
     # exclude prerelease versions
-    versionLister = writers.writeBash "list-mirakurun-versions" ''
-      ${common-updater-scripts}/bin/list-git-tags --url=${homepage} \
-        | grep '^[0-9]\+\.[0-9]\+\.[0-9]\+$'
-    '';
+    ignoredVersions = "-";
   };
   updateScript = builtins.elemAt updater 0;
   updateArgs = map (lib.escapeShellArg) (builtins.tail updater);
diff --git a/pkgs/applications/video/mpv/scripts/autocrop.nix b/pkgs/applications/video/mpv/scripts/autocrop.nix
new file mode 100644
index 0000000000000..645a4dd16899f
--- /dev/null
+++ b/pkgs/applications/video/mpv/scripts/autocrop.nix
@@ -0,0 +1,19 @@
+{ stdenvNoCC, mpv-unwrapped, lib }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "mpv-autocrop";
+  version = mpv-unwrapped.version;
+  src = "${mpv-unwrapped.src.outPath}/TOOLS/lua/autocrop.lua";
+  dontBuild = true;
+  dontUnpack = true;
+  installPhase = ''
+    install -Dm644 ${src} $out/share/mpv/scripts/autocrop.lua
+  '';
+  passthru.scriptName = "autocrop.lua";
+
+  meta = {
+    description = "This script uses the lavfi cropdetect filter to automatically insert a crop filter with appropriate parameters for the currently playing video.";
+    homepage = "https://github.com/mpv-player/mpv/blob/master/TOOLS/lua/autocrop.lua";
+    license = lib.licenses.gpl2Plus;
+  };
+}
diff --git a/pkgs/applications/video/mpv/scripts/autodeint.nix b/pkgs/applications/video/mpv/scripts/autodeint.nix
new file mode 100644
index 0000000000000..b5369b748faf6
--- /dev/null
+++ b/pkgs/applications/video/mpv/scripts/autodeint.nix
@@ -0,0 +1,19 @@
+{ stdenvNoCC, mpv-unwrapped, lib }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "mpv-autodeint";
+  version = mpv-unwrapped.version;
+  src = "${mpv-unwrapped.src.outPath}/TOOLS/lua/autodeint.lua";
+  dontBuild = true;
+  dontUnpack = true;
+  installPhase = ''
+    install -Dm644 ${src} $out/share/mpv/scripts/autodeint.lua
+  '';
+  passthru.scriptName = "autodeint.lua";
+
+  meta = {
+    description = "This script uses the lavfi idet filter to automatically insert the appropriate deinterlacing filter based on a short section of the currently playing video.";
+    homepage = "https://github.com/mpv-player/mpv/blob/master/TOOLS/lua/autodeint.lua";
+    license = lib.licenses.gpl2Plus;
+  };
+}
diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix
index 22c206dfe0378..83514923331ab 100644
--- a/pkgs/applications/video/obs-studio/default.nix
+++ b/pkgs/applications/video/obs-studio/default.nix
@@ -46,13 +46,13 @@ let
 in
 mkDerivation rec {
   pname = "obs-studio";
-  version = "27.2.1";
+  version = "27.2.4";
 
   src = fetchFromGitHub {
     owner = "obsproject";
     repo = "obs-studio";
     rev = version;
-    sha256 = "sha256-RHPzSw7wjnAHk90N7g53LyIH3ozO/hyZV5hVZpZe+Ow=";
+    sha256 = "sha256-OiSejQovSmhItrnrQlcVp9PCDRgAhuxTinSpXbH8bo0=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/video/obs-studio/plugins/default.nix b/pkgs/applications/video/obs-studio/plugins/default.nix
index 95b41c1c86f13..844d4a50b8526 100644
--- a/pkgs/applications/video/obs-studio/plugins/default.nix
+++ b/pkgs/applications/video/obs-studio/plugins/default.nix
@@ -9,4 +9,5 @@
   wlrobs = callPackage ./wlrobs.nix {};
   looking-glass-obs = callPackage ./looking-glass-obs.nix {};
   obs-nvfbc = callPackage ./obs-nvfbc.nix {};
+  obs-vkcapture = callPackage ./obs-vkcapture.nix {};
 }
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-vkcapture.nix b/pkgs/applications/video/obs-studio/plugins/obs-vkcapture.nix
new file mode 100644
index 0000000000000..bd74feb3bcc9f
--- /dev/null
+++ b/pkgs/applications/video/obs-studio/plugins/obs-vkcapture.nix
@@ -0,0 +1,35 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, ninja
+, wayland
+, obs-studio
+, libX11
+, vulkan-headers
+, vulkan-loader
+, libGL
+}:
+
+stdenv.mkDerivation rec {
+  pname = "obs-vkcapture";
+  version = "1.1.3";
+
+  src = fetchFromGitHub {
+    owner = "nowrep";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-iIV9ke2yPEt2Lf4bwiEHFip4tLhMS4raWGyCWpao74w=";
+  };
+
+  nativeBuildInputs = [ cmake ninja ];
+  buildInputs = [ libGL libX11 obs-studio vulkan-headers vulkan-loader wayland ];
+
+  meta = with lib; {
+    description = "OBS Linux Vulkan/OpenGL game capture";
+    homepage = "https://github.com/nowrep/obs-vkcapture";
+    maintainers = with maintainers; [ atila ];
+    license = licenses.gpl2Only;
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/pkgs/applications/video/pitivi/default.nix b/pkgs/applications/video/pitivi/default.nix
index 7ae463b987300..1b97fa9b7c665 100644
--- a/pkgs/applications/video/pitivi/default.nix
+++ b/pkgs/applications/video/pitivi/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchurl
+, fetchpatch
 , pkg-config
 , gettext
 , itstool
@@ -36,6 +37,13 @@ python3Packages.buildPythonApplication rec {
     # and saves them to the generated binary. This would make the build-time
     # dependencies part of the closure so we remove it.
     ./prevent-closure-contamination.patch
+
+    # Fix build with meson 0.61
+    # https://gitlab.gnome.org/GNOME/pitivi/-/merge_requests/414
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/pitivi/-/commit/ddf2369d1fc6fddd63f676cc905a8b8e96291a4c.patch";
+      sha256 = "MC4naGnqhrYlFBFHZaSzbOzrqaNK5/Xv5jBmCu0fLQE=";
+    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/video/quvi/library.nix b/pkgs/applications/video/quvi/library.nix
index 071e67a172116..548b3d7f9724d 100644
--- a/pkgs/applications/video/quvi/library.nix
+++ b/pkgs/applications/video/quvi/library.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.lgpl21Plus;
     platforms = lib.platforms.linux;
     maintainers = [ ];
+    broken = true; # missing glibc-2.34 support, no upstream activity
   };
 }
diff --git a/pkgs/applications/video/quvi/scripts.nix b/pkgs/applications/video/quvi/scripts.nix
index 676d073900c52..a31ef6e72ae6a 100644
--- a/pkgs/applications/video/quvi/scripts.nix
+++ b/pkgs/applications/video/quvi/scripts.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.lgpl21Plus;
     platforms = lib.platforms.linux;
     maintainers = [ ];
+    broken = true; # missing glibc-2.34 support, no upstream activity
   };
 }
diff --git a/pkgs/applications/video/quvi/tool.nix b/pkgs/applications/video/quvi/tool.nix
index 87c8066a976c5..ad6233cbd0012 100644
--- a/pkgs/applications/video/quvi/tool.nix
+++ b/pkgs/applications/video/quvi/tool.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.lgpl21Plus;
     platforms = lib.platforms.linux;
     maintainers = [ ];
+    broken = true; # missing glibc-2.34 support, no upstream activity
   };
 }
diff --git a/pkgs/applications/video/webcamoid/default.nix b/pkgs/applications/video/webcamoid/default.nix
index 63f1e885af309..b9c21b7ad7d17 100644
--- a/pkgs/applications/video/webcamoid/default.nix
+++ b/pkgs/applications/video/webcamoid/default.nix
@@ -1,13 +1,13 @@
-{ lib, fetchFromGitHub, pkg-config, libxcb, mkDerivation, qmake
+{ lib, fetchFromGitHub, pkg-config, libxcb, mkDerivation, cmake
 , qtbase, qtdeclarative, qtquickcontrols, qtquickcontrols2
 , ffmpeg-full, gst_all_1, libpulseaudio, alsa-lib, jack2
 , v4l-utils }:
 mkDerivation rec {
   pname = "webcamoid";
-  version = "8.8.0";
+  version = "9.0.0";
 
   src = fetchFromGitHub {
-    sha256 = "0a8M9GQ6Ea9jBCyfbORVyB6HC/O6jdcIZruQZj9Aai4=";
+    sha256 = "sha256-NV1BmG+fgy+ZcvHl+05VX5J1BAz8PxKiZ3z9BxjhMU0=";
     rev = version;
     repo = "webcamoid";
     owner = "webcamoid";
@@ -22,12 +22,7 @@ mkDerivation rec {
     v4l-utils
   ];
 
-  nativeBuildInputs = [ pkg-config qmake ];
-
-  qmakeFlags = [
-    "Webcamoid.pro"
-    "INSTALLQMLDIR=${placeholder "out"}/lib/qt/qml"
-  ];
+  nativeBuildInputs = [ pkg-config cmake ];
 
   meta = with lib; {
     description = "Webcam Capture Software";
diff --git a/pkgs/applications/video/webtorrent_desktop/default.nix b/pkgs/applications/video/webtorrent_desktop/default.nix
index b4f8af61fca5e..8f1353fa83e48 100644
--- a/pkgs/applications/video/webtorrent_desktop/default.nix
+++ b/pkgs/applications/video/webtorrent_desktop/default.nix
@@ -1,95 +1,76 @@
+## FIXME: see ../../../servers/code-server/ for a proper yarn packaging
+##  - export ELECTRON_SKIP_BINARY_DOWNLOAD=1
+##  - jq "del(.scripts.preinstall)" node_modules/shellcheck/package.json | sponge node_modules/shellcheck/package.json
 {
-  alsa-lib, atk, cairo, cups, dbus, dpkg, expat, fetchurl, fetchzip, fontconfig, freetype,
-  gdk-pixbuf, glib, gtk3, libX11, libXScrnSaver, libXcomposite, libXcursor,
-  libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst,
-  libxcb, nspr, nss, lib, stdenv, udev, libuuid, pango, at-spi2-atk, at-spi2-core
+  lib, stdenv, buildFHSUserEnvBubblewrap, runCommand, writeScript, fetchurl, fetchzip
 }:
+let
+  pname = "webtorrent-desktop";
+  version = "0.21.0";
+in
+runCommand "${pname}-${version}" rec {
+  inherit (stdenv) shell;
+  inherit pname version;
+  src =
+    if stdenv.hostPlatform.system == "x86_64-linux" then
+      fetchzip {
+        url = "https://github.com/webtorrent/webtorrent-desktop/releases/download/v${version}/WebTorrent-v${version}-linux.zip";
+        sha256 = "13gd8isq2l10kibsc1bsc15dbgpnwa7nw4cwcamycgx6pfz9a852";
+      }
+    else
+      throw "Webtorrent is not currently supported on ${stdenv.hostPlatform.system}";
 
-  let
-    rpath = lib.makeLibraryPath ([
-    alsa-lib
-    atk
-    at-spi2-core
-    at-spi2-atk
-    cairo
-    cups
-    dbus
-    expat
-    fontconfig
-    freetype
-    gdk-pixbuf
-    glib
-    gtk3
-    pango
-    libuuid
-    libX11
-    libXScrnSaver
-    libXcomposite
-    libXcursor
-    libXdamage
-    libXext
-    libXfixes
-    libXi
-    libXrandr
-    libXrender
-    libXtst
-    libxcb
-    nspr
-    nss
-    stdenv.cc.cc
-    udev
-    ]);
-  in stdenv.mkDerivation rec {
-    pname = "webtorrent-desktop";
-    version = "0.21.0";
+  fhs = buildFHSUserEnvBubblewrap rec {
+    name = "fhsEnterWebTorrent";
+    runScript = "${src}/WebTorrent";
+    ## use the trampoline, if you need to shell into the fhsenv
+    # runScript = writeScript "trampoline" ''
+    #   #!/bin/sh
+    #   exec "$@"
+    # '';
+    targetPkgs = pkgs: with pkgs; with xorg; [
+      alsa-lib atk at-spi2-core at-spi2-atk cairo cups dbus expat
+      fontconfig freetype gdk-pixbuf glib gtk3 pango libuuid libX11
+      libXScrnSaver libXcomposite libXcursor libXdamage libXext
+      libXfixes libXi libXrandr libXrender libXtst libxcb nspr nss
+      stdenv.cc.cc udev
+    ];
+    # extraBwrapArgs = [
+    #   "--ro-bind /run/user/$(id -u)/pulse /run/user/$(id -u)/pulse"
+    # ];
+  };
 
-    src =
-      if stdenv.hostPlatform.system == "x86_64-linux" then
-        fetchzip {
-          url = "https://github.com/webtorrent/webtorrent-desktop/releases/download/v${version}/WebTorrent-v${version}-linux.zip";
-          sha256 = "13gd8isq2l10kibsc1bsc15dbgpnwa7nw4cwcamycgx6pfz9a852";
-        }
-        else
-          throw "Webtorrent is not currently supported on ${stdenv.hostPlatform.system}";
-    desktopFile = fetchurl {
-      url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/applications/webtorrent-desktop.desktop";
-      sha256 = "1v16dqbxqds3cqg3xkzxsa5fyd8ssddvjhy9g3i3lz90n47916ca";
-    };
-    icon256File = fetchurl {
-      url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/icons/hicolor/256x256/apps/webtorrent-desktop.png";
-      sha256 = "1dapxvvp7cx52zhyaby4bxm4rll9xc7x3wk8k0il4g3mc7zzn3yk";
-    };
-    icon48File = fetchurl {
-      url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/icons/hicolor/48x48/apps/webtorrent-desktop.png";
-      sha256 = "00y96w9shbbrdbf6xcjlahqd08154kkrxmqraik7qshiwcqpw7p4";
-    };
-    nativeBuildInputs = [ dpkg ];
-    installPhase = ''
-      mkdir -p $out/share/{applications,icons/hicolor/{48x48,256x256}/apps}
-      cp -R . $out/libexec
+  desktopFile = fetchurl {
+    url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/applications/webtorrent-desktop.desktop";
+    sha256 = "1v16dqbxqds3cqg3xkzxsa5fyd8ssddvjhy9g3i3lz90n47916ca";
+  };
+  icon256File = fetchurl {
+    url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/icons/hicolor/256x256/apps/webtorrent-desktop.png";
+    sha256 = "1dapxvvp7cx52zhyaby4bxm4rll9xc7x3wk8k0il4g3mc7zzn3yk";
+  };
+  icon48File = fetchurl {
+    url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/icons/hicolor/48x48/apps/webtorrent-desktop.png";
+    sha256 = "00y96w9shbbrdbf6xcjlahqd08154kkrxmqraik7qshiwcqpw7p4";
+  };
 
-      # Patch WebTorrent
-      patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-               --set-rpath ${rpath}:$out/libexec $out/libexec/WebTorrent
+  meta = with lib; {
+    description = "Streaming torrent app for Mac, Windows, and Linux";
+    homepage = "https://webtorrent.io/desktop";
+    license = licenses.mit;
+    maintainers = [ maintainers.flokli maintainers.bendlas ];
+    platforms = [
+      "x86_64-linux"
+    ];
+  };
 
-      # Symlink to bin
-      mkdir -p $out/bin
-      ln -s $out/libexec/WebTorrent $out/bin/WebTorrent
+} ''
+  mkdir -p $out/{bin,share/{applications,icons/hicolor/{48x48,256x256}/apps}}
 
-      cp $icon48File $out/share/icons/hicolor/48x48/apps/webtorrent-desktop.png
-      cp $icon256File $out/share/icons/hicolor/256x256/apps/webtorrent-desktop.png
-      ## Fix the desktop link
-      substitute $desktopFile $out/share/applications/webtorrent-desktop.desktop \
-        --replace /opt/webtorrent-desktop $out/libexec
-    '';
+  cp $fhs/bin/fhsEnterWebTorrent $out/bin/WebTorrent
 
-    meta = with lib; {
-      description = "Streaming torrent app for Mac, Windows, and Linux";
-      homepage = "https://webtorrent.io/desktop";
-      license = licenses.mit;
-      maintainers = [ maintainers.flokli ];
-      platforms = [
-        "x86_64-linux"
-      ];
-    };
-  }
+  cp $icon48File $out/share/icons/hicolor/48x48/apps/webtorrent-desktop.png
+  cp $icon256File $out/share/icons/hicolor/256x256/apps/webtorrent-desktop.png
+  ## Fix the desktop link
+  substitute $desktopFile $out/share/applications/webtorrent-desktop.desktop \
+    --replace /opt/webtorrent-desktop $out/libexec
+''
diff --git a/pkgs/applications/virtualization/cloud-hypervisor/default.nix b/pkgs/applications/virtualization/cloud-hypervisor/default.nix
index b381d3ccca179..9e6de7890a48d 100644
--- a/pkgs/applications/virtualization/cloud-hypervisor/default.nix
+++ b/pkgs/applications/virtualization/cloud-hypervisor/default.nix
@@ -2,19 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cloud-hypervisor";
-  version = "22.1";
+  version = "23.0";
 
   src = fetchFromGitHub {
     owner = "cloud-hypervisor";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-KWCGcGB4HCpV7uSM4otQhSGEzQ+1jQip2fiAysNN54k=";
+    sha256 = "0gq23zhpl1rw8i3yv0f058lycsr078yfy8vkb5w382pifgrww1zh";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ] ++ lib.optional stdenv.isAarch64 dtc;
 
-  cargoSha256 = "sha256-R70H1R9jFnQyOLI4UNuRzpOAAnGSBGpiHFKbxP2472o=";
+  cargoSha256 = "0r3r6r5scbw23ipz24glcyvaxx9sffy8kp27fpqvwdha915c1zkp";
 
   OPENSSL_NO_VENDOR = true;
 
diff --git a/pkgs/applications/virtualization/crosvm/Cargo.lock b/pkgs/applications/virtualization/crosvm/Cargo.lock
index 3746d87cf0af1..7016457499fcf 100644
--- a/pkgs/applications/virtualization/crosvm/Cargo.lock
+++ b/pkgs/applications/virtualization/crosvm/Cargo.lock
@@ -106,9 +106,9 @@ checksum = "30696a84d817107fc028e049980e09d5e140e8da8f1caeb17e8e950658a3cea9"
 
 [[package]]
 name = "async-trait"
-version = "0.1.52"
+version = "0.1.53"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "061a7acccaa286c011ddc30970520b98fa40e00c9d644633fb26b5fc63a265e3"
+checksum = "ed6aa3524a2dfcf9fe180c51eae2b58738348d819517ceadf95789c51fff7600"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -142,6 +142,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
+name = "balloon_control"
+version = "0.1.0"
+dependencies = [
+ "serde",
+]
+
+[[package]]
 name = "base"
 version = "0.1.0"
 dependencies = [
@@ -360,6 +367,7 @@ dependencies = [
  "argh",
  "async-task",
  "audio_streams",
+ "balloon_control",
  "base",
  "bit_field",
  "cros_async",
@@ -578,9 +586,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.5"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77"
+checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad"
 dependencies = [
  "cfg-if 1.0.0",
  "libc",
@@ -726,9 +734,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.120"
+version = "0.2.121"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad5c14e80759d0939d013e6ca49930e59fc53dd8e5009132f76240c179380c09"
+checksum = "efaa7b300f3b5fe8eb6bf21ce3895e1751d9665086af2d64b42f19701015ff4f"
 
 [[package]]
 name = "libcras"
@@ -763,9 +771,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.14"
+version = "0.4.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
+checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8"
 dependencies = [
  "cfg-if 1.0.0",
 ]
@@ -854,9 +862,9 @@ dependencies = [
 
 [[package]]
 name = "paste"
-version = "1.0.6"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0744126afe1a6dd7f394cb50a716dbe086cb06e255e53d8d0185d82828358fb5"
+checksum = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc"
 
 [[package]]
 name = "pin-project-lite"
@@ -872,9 +880,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "pkg-config"
-version = "0.3.24"
+version = "0.3.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe"
+checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
 
 [[package]]
 name = "poll_token_derive"
@@ -964,9 +972,9 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.15"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145"
+checksum = "632d02bff7f874a36f33ea8bb416cd484b90cc66c1194b1a1110d067a7013f58"
 dependencies = [
  "proc-macro2",
 ]
@@ -1088,9 +1096,9 @@ dependencies = [
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.11"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c"
+checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42"
 dependencies = [
  "bitflags",
 ]
@@ -1209,9 +1217,9 @@ dependencies = [
 
 [[package]]
 name = "slab"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5"
+checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32"
 
 [[package]]
 name = "smallvec"
@@ -1221,9 +1229,9 @@ checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83"
 
 [[package]]
 name = "syn"
-version = "1.0.88"
+version = "1.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebd69e719f31e88618baa1eaa6ee2de5c9a1c004f1e9ecdb58e8352a13f20a01"
+checksum = "704df27628939572cd88d33f171cd6f896f4eaca85252c6e0a72d8d8287ee86f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1376,6 +1384,7 @@ dependencies = [
 name = "vm_control"
 version = "0.1.0"
 dependencies = [
+ "balloon_control",
  "base",
  "data_model",
  "gdbstub_arch",
@@ -1426,9 +1435,9 @@ checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
 
 [[package]]
 name = "which"
-version = "4.2.4"
+version = "4.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a5a7e487e921cf220206864a94a89b6c6905bfc19f1057fa26a4cb360e5c1d2"
+checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae"
 dependencies = [
  "either",
  "lazy_static",
diff --git a/pkgs/applications/virtualization/crosvm/generate-cargo.sh b/pkgs/applications/virtualization/crosvm/generate-cargo.sh
new file mode 100644
index 0000000000000..216cafe367ca1
--- /dev/null
+++ b/pkgs/applications/virtualization/crosvm/generate-cargo.sh
@@ -0,0 +1,7 @@
+dir="$(mktemp -d)" &&
+    cd "$dir" &&
+    unpackPhase &&
+    cd "${sourceRoot:-}" &&
+    cargo generate-lockfile &&
+    mv Cargo.lock "$1"
+rm -rf "$dir"
diff --git a/pkgs/applications/virtualization/crosvm/update.py b/pkgs/applications/virtualization/crosvm/update.py
index 6e36e524b78d1..f9fc90c6b349b 100755
--- a/pkgs/applications/virtualization/crosvm/update.py
+++ b/pkgs/applications/virtualization/crosvm/update.py
@@ -5,9 +5,10 @@
 import base64
 import json
 import re
+import shlex
 import subprocess
 from codecs import iterdecode
-from os.path import dirname, splitext
+from os.path import abspath, dirname, splitext
 from lxml import etree
 from lxml.etree import HTMLParser
 from urllib.request import urlopen
@@ -78,7 +79,14 @@ argv = ['nix-instantiate', '--eval', '--json', '-A', 'crosvm.meta.position']
 position = json.loads(subprocess.check_output(argv).decode('utf-8'))
 filename = re.match(r'[^:]*', position)[0]
 
-# Finally, write the output.
+# Write the output.
 with open(dirname(filename) + '/upstream-info.json', 'w') as out:
     json.dump(data, out, indent=2)
     out.write('\n')
+
+# Generate a Cargo.lock
+run = ['.',
+       dirname(abspath(__file__)) + '/generate-cargo.sh',
+       dirname(filename) + '/Cargo.lock']
+expr = '(import ./. {}).crosvm.overrideAttrs (_: { dontCargoSetupPostUnpack = true; })'
+subprocess.run(['nix-shell', '-E', expr, '--run', shlex.join(run)])
diff --git a/pkgs/applications/virtualization/crosvm/upstream-info.json b/pkgs/applications/virtualization/crosvm/upstream-info.json
index 437e8f4186994..c994ff1a5fda2 100644
--- a/pkgs/applications/virtualization/crosvm/upstream-info.json
+++ b/pkgs/applications/virtualization/crosvm/upstream-info.json
@@ -1,11 +1,11 @@
 {
-  "version": "99.14468.0.0-rc1",
+  "version": "100.14526.0.0-rc1",
   "src": {
     "url": "https://chromium.googlesource.com/chromiumos/platform/crosvm",
-    "rev": "410ea3a1980bfe96968a7dfb7a7d203d43b186b2",
-    "date": "2022-01-11T00:01:17-08:00",
-    "path": "/nix/store/y2rpzh1any8c4nwnwkvir7241kbcj8fn-crosvm-410ea3a",
-    "sha256": "1bgwndh2f60ka1f8c8yqnqqkra510ai9miyfvvm0b3dnsdpy77kd",
+    "rev": "bdf5e4d4379030cfa2d0510328b8acce73162217",
+    "date": "2022-02-14T19:13:41+00:00",
+    "path": "/nix/store/xw31chiwnpzgcp07nf448g2npcwiwkkm-crosvm-bdf5e4d",
+    "sha256": "0mrnjyyqmz24z1yvdq2mysmhmz0577k8kf9y4v51g7860crqp9ji",
     "fetchLFS": false,
     "fetchSubmodules": true,
     "deepClone": false,
diff --git a/pkgs/applications/virtualization/docker-slim/default.nix b/pkgs/applications/virtualization/docker-slim/default.nix
index a7261dac6d1f8..dbf4bb734d84e 100644
--- a/pkgs/applications/virtualization/docker-slim/default.nix
+++ b/pkgs/applications/virtualization/docker-slim/default.nix
@@ -6,7 +6,7 @@
 
 buildGoPackage rec {
   pname = "docker-slim";
-  version = "1.37.5";
+  version = "1.37.6";
 
   goPackagePath = "github.com/docker-slim/docker-slim";
 
@@ -14,7 +14,7 @@ buildGoPackage rec {
     owner = "docker-slim";
     repo = "docker-slim";
     rev = version;
-    sha256 = "sha256-MBs0ybBXsanNFt6R7+ZYvtCh7iHE3FtWXE9uy9tbrE4=";
+    sha256 = "sha256-Jzi6JC6DRklZhNqmFx6eHx6qR8/fb/JuSpgwtPThcc4=";
   };
 
   subPackages = [ "cmd/docker-slim" "cmd/docker-slim-sensor" ];
diff --git a/pkgs/applications/virtualization/docker/buildx.nix b/pkgs/applications/virtualization/docker/buildx.nix
index 9b440963f4ae6..e98eb404b9c7a 100644
--- a/pkgs/applications/virtualization/docker/buildx.nix
+++ b/pkgs/applications/virtualization/docker/buildx.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "docker-buildx";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "docker";
     repo = "buildx";
     rev = "v${version}";
-    sha256 = "sha256-NJNFjzbiBcmXcBF1k0qybv5LnkaQ+1ehSfF18CC85JY=";
+    sha256 = "sha256-AGRdmYKd76k5tmBTTqsSHj3yOU8QSd11G5ito0O/dWY=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/virtualization/docker/compose.nix b/pkgs/applications/virtualization/docker/compose.nix
index 16c25aea9ae48..fc264cdc59083 100644
--- a/pkgs/applications/virtualization/docker/compose.nix
+++ b/pkgs/applications/virtualization/docker/compose.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "docker-compose";
-  version = "2.4.0";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "docker";
     repo = "compose";
     rev = "v${version}";
-    sha256 = "sha256-dHq1t1ebPSAS5H14Kd03xCiHV9UhAH0dIxikQK0rHQk=";
+    sha256 = "sha256-6yc+7Fc22b8xN8thRrxxpjdEz19aBYCWxgkh/nra784=";
   };
 
   vendorSha256 = "sha256-N+paN3zEXzzUFb2JPVIDZYZ0h0iu7naiw4pSVnGsuKQ=";
diff --git a/pkgs/applications/virtualization/ecs-agent/default.nix b/pkgs/applications/virtualization/ecs-agent/default.nix
index 390f3049c0266..1890f29c52a06 100644
--- a/pkgs/applications/virtualization/ecs-agent/default.nix
+++ b/pkgs/applications/virtualization/ecs-agent/default.nix
@@ -20,6 +20,7 @@ buildGoPackage rec {
     license     = licenses.asl20;
     platforms   = platforms.unix;
     maintainers = with maintainers; [ copumpkin ];
+    mainProgram = "agent";
   };
 }
 
diff --git a/pkgs/applications/virtualization/firectl/default.nix b/pkgs/applications/virtualization/firectl/default.nix
index ac531b36dd21a..458e2ffc7e5ee 100644
--- a/pkgs/applications/virtualization/firectl/default.nix
+++ b/pkgs/applications/virtualization/firectl/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "firectl";
-  version = "0.1.0";
-
-  patches = [ ./gomod.patch ];
+  # The latest upstream 0.1.0 is incompatible with firecracker
+  # v0.1.0. See issue: https://github.com/firecracker-microvm/firectl/issues/82
+  version = "unstable-2022-03-01";
 
   src = fetchFromGitHub {
     owner = "firecracker-microvm";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "1ni3yx4rjhrkqk2038c6hkb2jwsdj2llx233wd5wgpvb6c57652p";
+    rev = "9f1b639a446e8d75f31787a00b9f273c1e68f12c";
+    sha256 = "TjzzHY9VYPpWoPt6nHYUerKX94O03sm524wGM9lGzno=";
   };
 
-  vendorSha256 = "1xbpck1gvzl75xgrajf5yzl199l4f2f6j3mac5586i7b00b9jxqj";
+  vendorSha256 = "3SVEvvGNx6ienyJZg0EOofHNHCPSpJUGXwHxokdRG1c=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/virtualization/firectl/gomod.patch b/pkgs/applications/virtualization/firectl/gomod.patch
deleted file mode 100644
index 96c65e7282211..0000000000000
--- a/pkgs/applications/virtualization/firectl/gomod.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/go.mod b/go.mod
-index 1044001..7bafeda 100644
---- a/go.mod
-+++ b/go.mod
-@@ -1,7 +1,10 @@
- module github.com/firecracker-microvm/firectl
- 
-+go 1.14
-+
- require (
- 	github.com/firecracker-microvm/firecracker-go-sdk v0.15.1
-+	github.com/go-openapi/strfmt v0.17.1
- 	github.com/jessevdk/go-flags v1.4.0
- 	github.com/pkg/errors v0.8.0
- 	github.com/sirupsen/logrus v1.1.1
diff --git a/pkgs/applications/virtualization/imgcrypt/default.nix b/pkgs/applications/virtualization/imgcrypt/default.nix
index ce12fb8f387b2..df9e3e73114ab 100644
--- a/pkgs/applications/virtualization/imgcrypt/default.nix
+++ b/pkgs/applications/virtualization/imgcrypt/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "imgcrypt";
-  version = "1.1.1";
+  version = "1.1.4";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "177fs3p2xzwjsffcxqqllx6wi6ghfyqbvfgn95v3q7a2993yqk4k";
+    sha256 = "sha256-a5IQahhonaXA74gY+zR6BbV9MdyEu70j0E6YlNmN3DA=";
   };
 
   ldflags = [
diff --git a/pkgs/applications/virtualization/kvmtool/default.nix b/pkgs/applications/virtualization/kvmtool/default.nix
new file mode 100644
index 0000000000000..a99a9f64d8616
--- /dev/null
+++ b/pkgs/applications/virtualization/kvmtool/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchgit, lib }:
+
+stdenv.mkDerivation {
+  pname = "kvmtool";
+  version = "unstable-2022-04-04";
+
+  src = fetchgit {
+    url = "https://git.kernel.org/pub/scm/linux/kernel/git/will/kvmtool.git";
+    rev = "5657dd3e48b41bc6db38fa657994bc0e030fd31f";
+    sha256 = "1y1j44lk9957f2dmyrscbxl4zncp4ibvvcdj6bwylb8jsvmd5fs2";
+  };
+
+  enableParallelBuilding = true;
+  makeFlags = [ "prefix=${placeholder "out"}" ];
+
+  meta = with lib; {
+    description = "A lightweight tool for hosting KVM guests";
+    homepage = "https://git.kernel.org/pub/scm/linux/kernel/git/will/kvmtool.git/tree/README";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ astro ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/virtualization/podman-tui/default.nix b/pkgs/applications/virtualization/podman-tui/default.nix
index 17272acd86ebb..6feeb17256a91 100644
--- a/pkgs/applications/virtualization/podman-tui/default.nix
+++ b/pkgs/applications/virtualization/podman-tui/default.nix
@@ -6,7 +6,7 @@
 , gpgme
 , libassuan
 , lvm2
-, testVersion
+, testers
 , podman-tui
 }:
 buildGoModule rec {
@@ -33,7 +33,7 @@ buildGoModule rec {
 
   ldflags = [ "-s" "-w" ];
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = podman-tui;
     command = "podman-tui version";
     version = "v${version}";
diff --git a/pkgs/applications/virtualization/qemu/allow-virtfs-on-darwin.patch b/pkgs/applications/virtualization/qemu/allow-virtfs-on-darwin.patch
deleted file mode 100644
index a498d309c233e..0000000000000
--- a/pkgs/applications/virtualization/qemu/allow-virtfs-on-darwin.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 4ca09b7cd1d42eb6b1587fed74cd4d684e31bfbe Mon Sep 17 00:00:00 2001
-From: Keno Fischer <keno@juliacomputing.com>
-Date: Sun, 27 Feb 2022 17:35:22 -0500
-Subject: [PATCH] 9p: darwin: meson: Allow VirtFS on Darwin
-
-To allow VirtFS on darwin, we need to check that pthread_fchdir_np is
-available, which has only been available since macOS 10.12.
-
-Additionally, virtfs_proxy_helper is disabled on Darwin. This patch
-series does not currently provide an implementation of the proxy-helper,
-but this functionality could be implemented later on.
-
-Signed-off-by: Keno Fischer <keno@juliacomputing.com>
-[Michael Roitzsch: - Rebase for NixOS]
-Signed-off-by: Michael Roitzsch <reactorcontrol@icloud.com>
-[Will Cohen: - Rebase to master]
-Signed-off-by: Will Cohen <wwcohen@gmail.com>
-Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
-[Will Cohen: - Add check for pthread_fchdir_np to virtfs
-             - Add comments to patch commit
-             - Note that virtfs_proxy_helper does not work
-               on macOS
-             - Fully adjust meson virtfs error note to specify
-               macOS
-             - Rebase to master]
-Signed-off-by: Will Cohen <wwcohen@gmail.com>
-Message-Id: <20220227223522.91937-12-wwcohen@gmail.com>
-Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
-Acked-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
----
- fsdev/meson.build |  1 +
- meson.build       | 17 +++++++++++------
- 2 files changed, 12 insertions(+), 6 deletions(-)
-
-diff --git a/fsdev/meson.build b/fsdev/meson.build
-index adf57cc43e..b632b66348 100644
---- a/fsdev/meson.build
-+++ b/fsdev/meson.build
-@@ -7,6 +7,7 @@ fsdev_ss.add(when: ['CONFIG_FSDEV_9P'], if_true: files(
-   'qemu-fsdev.c',
- ), if_false: files('qemu-fsdev-dummy.c'))
- softmmu_ss.add_all(when: 'CONFIG_LINUX', if_true: fsdev_ss)
-+softmmu_ss.add_all(when: 'CONFIG_DARWIN', if_true: fsdev_ss)
- 
- if have_virtfs_proxy_helper
-   executable('virtfs-proxy-helper',
-diff --git a/meson.build b/meson.build
-index 2265fa409a..6d73c02903 100644
---- a/meson.build
-+++ b/meson.build
-@@ -1383,12 +1383,17 @@ endif
- have_host_block_device = (targetos != 'darwin' or
-     cc.has_header('IOKit/storage/IOMedia.h'))
- 
--have_virtfs = (targetos == 'linux' and
--    have_system and
--    libattr.found() and
--    libcap_ng.found())
--
--have_virtfs_proxy_helper = have_virtfs and have_tools
-+have_virtfs = get_option('virtfs') \
-+    .require(targetos == 'linux' or targetos == 'darwin',
-+             error_message: 'virtio-9p (virtfs) requires Linux or macOS') \
-+    .require(targetos == 'linux' or cc.has_function('pthread_fchdir_np'),
-+             error_message: 'virtio-9p (virtfs) on macOS requires the presence of pthread_fchdir_np') \
-+    .require(targetos == 'darwin' or (libattr.found() and libcap_ng.found()),
-+             error_message: 'virtio-9p (virtfs) on Linux requires libcap-ng-devel and libattr-devel') \
-+    .disable_auto_if(not have_tools and not have_system) \
-+    .allowed()
-+
-+have_virtfs_proxy_helper = targetos != 'darwin' and have_virtfs and have_tools
- 
- if get_option('virtfs').enabled()
-   if not have_virtfs
--- 
-2.35.1
-
diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix
index 954fd3f051a97..ac661ea330c1b 100644
--- a/pkgs/applications/virtualization/qemu/default.nix
+++ b/pkgs/applications/virtualization/qemu/default.nix
@@ -4,6 +4,7 @@
 , makeWrapper, runtimeShell, removeReferencesTo
 , attr, libcap, libcap_ng, socat
 , CoreServices, Cocoa, Hypervisor, rez, setfile
+, guestAgentSupport ? with stdenv.hostPlatform; isLinux || isSunOS || isWindows
 , numaSupport ? stdenv.isLinux && !stdenv.isAarch32, numactl
 , seccompSupport ? stdenv.isLinux, libseccomp
 , alsaSupport ? lib.hasSuffix "linux" stdenv.hostPlatform.system && !nixosTestRunner
@@ -40,11 +41,11 @@ stdenv.mkDerivation rec {
     + lib.optionalString xenSupport "-xen"
     + lib.optionalString hostCpuOnly "-host-cpu-only"
     + lib.optionalString nixosTestRunner "-for-vm-tests";
-  version = "6.2.0";
+  version = "7.0.0";
 
   src = fetchurl {
     url= "https://download.qemu.org/qemu-${version}.tar.xz";
-    sha256 = "0iavlsy9hin8k38230j8lfmyipx3965zljls1dp34mmc8n75vqb8";
+    sha256 = "sha256-9rN1x5UfcoQCeYsLqrsthkeMpT1Eztvvq74cRr9G+Dk=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
@@ -82,80 +83,26 @@ stdenv.mkDerivation rec {
 
   dontUseMesonConfigure = true; # meson's configurePhase isn't compatible with qemu build
 
-  outputs = [ "out" "ga" ];
+  outputs = [ "out" ] ++ lib.optional guestAgentSupport "ga";
   # On aarch64-linux we would shoot over the Hydra's 2G output limit.
   separateDebugInfo = !(stdenv.isAarch64 && stdenv.isLinux);
 
   patches = [
     ./fix-qemu-ga.patch
-    # MTP Devices were broken in QEMU 6.1.0, this patch fixes that.
-     (fetchpatch {
-       url = "https://gitlab.com/qemu-project/qemu/-/commit/9d30c78c7d3b994825cbe63fa277279ae3ef4248.patch";
-       sha256 = "sha256-AChB9HMEShrM+2UW2aOT9+MqlAm568sG3HxHK3nDC/M=";
-     })
-    # Cocoa clipboard support only works on macOS 10.14+
-    (fetchpatch {
-      url = "https://gitlab.com/qemu-project/qemu/-/commit/7e3e20d89129614f4a7b2451fe321cc6ccca3b76.diff";
-      sha256 = "09xz06g57wxbacic617pq9c0qb7nly42gif0raplldn5lw964xl2";
-      revert = true;
-    })
-    # 9p-darwin for 7.0 backported to 6.2.0
-    #
-    # Can generally be removed when updating derivation to 7.0. Nine of the
-    # patches can be drawn directly from QEMU upstream, but the second commit
-    # and the eleventh commit had to be modified when rebasing back to 6.2.0.
-    (fetchpatch {
-      url = "https://gitlab.com/qemu-project/qemu/-/commit/e0bd743bb2dd4985791d4de880446bdbb4e04fed.patch";
-      sha256 = "sha256-c6QYL3zig47fJwm6rqkqGp3E1PakVTaihvXDRebbBlQ=";
-    })
-    ./rename-9p-util.patch
-    (fetchpatch {
-      url = "https://gitlab.com/qemu-project/qemu/-/commit/f41db099c71151291c269bf48ad006de9cbd9ca6.patch";
-      sha256 = "sha256-70/rrhZw+02JJbJ3CoW8B1GbdM4Lwb2WkUdwstYAoIQ=";
-    })
-    (fetchpatch {
-      url = "https://gitlab.com/qemu-project/qemu/-/commit/6b3b279bd670c6a2fa23c9049820c814f0e2c846.patch";
-      sha256 = "sha256-7WqklSvLirEuxTXTIMQDQhWpXnwMseJ1RumT+faq/Y8=";
-    })
-    (fetchpatch {
-      url = "https://gitlab.com/qemu-project/qemu/-/commit/67a71e3b71a2834d028031a92e76eb9444e423c6.patch";
-      sha256 = "sha256-COFm/SwfJSoSl9YDpL6ceAE8CcE4mGhsGxw1HMuL++o=";
-    })
-    (fetchpatch {
-      url = "https://gitlab.com/qemu-project/qemu/-/commit/38d7fd68b0c8775b5253ab84367419621aa032e6.patch";
-      sha256 = "sha256-iwGIzq9FWW6zpbDg/IKrp5OZpK9cgQqTRWWq8WBIHRQ=";
-    })
-    (fetchpatch {
-      url = "https://gitlab.com/qemu-project/qemu/-/commit/57b3910bc3513ab515296692daafd1c546f3c115.patch";
-      sha256 = "sha256-ybl9+umZAcQKHYL7NkGJQC0W7bccTagA9KQiFaR2LYA=";
-    })
-    (fetchpatch {
-      url = "https://gitlab.com/qemu-project/qemu/-/commit/b5989326f558faedd2511f29459112cced2ca8f5.patch";
-      sha256 = "sha256-s+O9eCgj2Ev+INjL9LY9MJBdISIdZLslI3lue2DICGM=";
-    })
-    (fetchpatch {
-      url = "https://gitlab.com/qemu-project/qemu/-/commit/029ed1bd9defa33a80bb40cdcd003699299af8db.patch";
-      sha256 = "sha256-mGqcRWcEibDJdhTRrN7ZWrMuCfUWW8vWiFj7sb2/RYo=";
-    })
-    (fetchpatch {
-      url = "https://gitlab.com/qemu-project/qemu/-/commit/d3671fd972cd185a6923433aa4802f54d8b62112.patch";
-      sha256 = "sha256-GUh5o7mbFTm/dm6CqcGdoMlC+YrV8RlcEwu/mxrfTzo=";
-    })
-    # The next two commits are to make Linux v5.17 work on aarch64-darwin. These are included in QEMU v7.
-    (fetchpatch {
-      url = "https://gitlab.com/qemu-project/qemu/-/commit/ad99f64f1cfff7c5e7af0e697523d9b7e45423b6.patch";
-      sha256 = "sha256-e6WtfQIPEiXhWucd5ab7UIoccbWEAv3bwksn4hR85CY=";
-    })
-    (fetchpatch {
-      url = "https://gitlab.com/qemu-project/qemu/-/commit/7f6c295cdfeaa229c360cac9a36e4e595aa902ae.patch";
-      sha256 = "sha256-mORtgfU1CYQFKO5UrXgM9cJyZxeF2bz8iAoq0UlFQeY=";
-    })
-    ./allow-virtfs-on-darwin.patch
+
     # QEMU upstream does not demand compatibility to pre-10.13, so 9p-darwin
     # support on nix requires utimensat fallback. The patch adding this fallback
     # set was removed during the process of upstreaming this functionality, and
     # will still be needed in nix until the macOS SDK reaches 10.13+.
     ./provide-fallback-for-utimensat.patch
+    # Cocoa clipboard support only works on macOS 10.14+
+    ./revert-ui-cocoa-add-clipboard-support.patch
+    # Standard about panel requires AppKit and macOS 10.13+
+    (fetchpatch {
+      url = "https://gitlab.com/qemu-project/qemu/-/commit/99eb313ddbbcf73c1adcdadceba1423b691c6d05.diff";
+      sha256 = "sha256-gTRf9XENAfbFB3asYCXnw4OV4Af6VE1W56K2xpYDhgM=";
+      revert = true;
+    })
   ]
     ++ lib.optional nixosTestRunner ./force-uid0-on-9p.patch;
 
@@ -194,7 +141,6 @@ stdenv.mkDerivation rec {
     "--disable-strip" # We'll strip ourselves after separating debug info.
     "--enable-docs"
     "--enable-tools"
-    "--enable-guest-agent"
     "--localstatedir=/var"
     "--sysconfdir=/etc"
     # Always use our Meson, not the bundled version, which doesn't
@@ -202,6 +148,7 @@ stdenv.mkDerivation rec {
     "--meson=meson"
     "--cross-prefix=${stdenv.cc.targetPrefix}"
     "--cpu=${stdenv.hostPlatform.uname.processor}"
+    (lib.enableFeature guestAgentSupport "guest-agent")
   ] ++ lib.optional numaSupport "--enable-numa"
     ++ lib.optional seccompSupport "--enable-seccomp"
     ++ lib.optional smartcardSupport "--enable-smartcard"
@@ -233,10 +180,11 @@ stdenv.mkDerivation rec {
   postFixup = ''
     # the .desktop is both invalid and pointless
     rm -f $out/share/applications/qemu.desktop
-
-    # copy qemu-ga (guest agent) to separate output
+  '' + lib.optionalString guestAgentSupport ''
+    # move qemu-ga (guest agent) to separate output
     mkdir -p $ga/bin
-    cp $out/bin/qemu-ga $ga/bin/
+    mv $out/bin/qemu-ga $ga/bin/
+    ln -s $ga/bin/qemu-ga $out/bin
     remove-references-to -t $out $ga/bin/qemu-ga
   '' + lib.optionalString gtkSupport ''
     # wrap GTK Binaries
diff --git a/pkgs/applications/virtualization/qemu/provide-fallback-for-utimensat.patch b/pkgs/applications/virtualization/qemu/provide-fallback-for-utimensat.patch
index dbc4e2b9af512..98cc09d720032 100644
--- a/pkgs/applications/virtualization/qemu/provide-fallback-for-utimensat.patch
+++ b/pkgs/applications/virtualization/qemu/provide-fallback-for-utimensat.patch
@@ -1,4 +1,4 @@
-From 70328c307001f4bb75d30d93c5bba3c3cd790c88 Mon Sep 17 00:00:00 2001
+From 747a741772cde6bb340eb8bdb493390280de8d16 Mon Sep 17 00:00:00 2001
 From: Keno Fischer <keno@juliacomputing.com>
 Date: Sat, 16 Jun 2018 20:56:54 -0400
 Subject: [PATCH] 9p: darwin: Provide fallback impl for utimensat
@@ -160,7 +160,7 @@ index db451b0784..320697f347 100644
 +    return utimensat(dirfd, filename, times, AT_SYMLINK_NOFOLLOW);
 +}
 diff --git a/hw/9pfs/9p-util.h b/hw/9pfs/9p-util.h
-index 1f74d37558..a4b002d1b5 100644
+index 97e681e167..fd50d6243a 100644
 --- a/hw/9pfs/9p-util.h
 +++ b/hw/9pfs/9p-util.h
 @@ -36,6 +36,12 @@ static inline int qemu_lsetxattr(const char *path, const char *name,
@@ -176,14 +176,14 @@ index 1f74d37558..a4b002d1b5 100644
  static inline void close_preserve_errno(int fd)
  {
      int serrno = errno;
-@@ -96,6 +102,8 @@ ssize_t flistxattrat_nofollow(int dirfd, const char *filename,
+@@ -98,6 +104,8 @@ ssize_t flistxattrat_nofollow(int dirfd, const char *filename,
                                char *list, size_t size);
  ssize_t fremovexattrat_nofollow(int dirfd, const char *filename,
                                  const char *name);
 +int utimensat_nofollow(int dirfd, const char *filename,
 +                       const struct timespec times[2]);
  
- /**
+ /*
   * Darwin has d_seekoff, which appears to function similarly to d_off.
 -- 
 2.35.1
diff --git a/pkgs/applications/virtualization/qemu/rename-9p-util.patch b/pkgs/applications/virtualization/qemu/rename-9p-util.patch
deleted file mode 100644
index fe3e2d7b4b8f1..0000000000000
--- a/pkgs/applications/virtualization/qemu/rename-9p-util.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 011b121d7f84c8974f03a81582cf1107249245bb Mon Sep 17 00:00:00 2001
-From: Keno Fischer <keno@juliacomputing.com>
-Date: Sun, 27 Feb 2022 17:35:13 -0500
-Subject: [PATCH] 9p: Rename 9p-util -> 9p-util-linux
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The current file only has the Linux versions of these functions.
-Rename the file accordingly and update the Makefile to only build
-it on Linux. A Darwin version of these will follow later in the
-series.
-
-Signed-off-by: Keno Fischer <keno@juliacomputing.com>
-[Michael Roitzsch: - Rebase for NixOS]
-Signed-off-by: Michael Roitzsch <reactorcontrol@icloud.com>
-Signed-off-by: Will Cohen <wwcohen@gmail.com>
-Reviewed-by: Greg Kurz <groug@kaod.org>
-Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
-Message-Id: <20220227223522.91937-3-wwcohen@gmail.com>
-Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
----
- hw/9pfs/{9p-util.c => 9p-util-linux.c} | 0
- hw/9pfs/meson.build                    | 2 +-
- 2 files changed, 1 insertion(+), 1 deletion(-)
- rename hw/9pfs/{9p-util.c => 9p-util-linux.c} (100%)
-
-diff --git a/hw/9pfs/9p-util.c b/hw/9pfs/9p-util-linux.c
-similarity index 100%
-rename from hw/9pfs/9p-util.c
-rename to hw/9pfs/9p-util-linux.c
-diff --git a/hw/9pfs/meson.build b/hw/9pfs/meson.build
-index 99be5d9119..1b28e70040 100644
---- a/hw/9pfs/meson.build
-+++ b/hw/9pfs/meson.build
-@@ -4,7 +4,6 @@ fs_ss.add(files(
-   '9p-posix-acl.c',
-   '9p-proxy.c',
-   '9p-synth.c',
--  '9p-util.c',
-   '9p-xattr-user.c',
-   '9p-xattr.c',
-   '9p.c',
-@@ -14,6 +13,7 @@ fs_ss.add(files(
-   'coth.c',
-   'coxattr.c',
- ))
-+fs_ss.add(when: 'CONFIG_LINUX', if_true: files('9p-util-linux.c'))
- fs_ss.add(when: 'CONFIG_XEN', if_true: files('xen-9p-backend.c'))
- softmmu_ss.add_all(when: 'CONFIG_FSDEV_9P', if_true: fs_ss)
- 
--- 
-2.35.1
-
diff --git a/pkgs/applications/virtualization/qemu/revert-ui-cocoa-add-clipboard-support.patch b/pkgs/applications/virtualization/qemu/revert-ui-cocoa-add-clipboard-support.patch
new file mode 100644
index 0000000000000..775066f6fdded
--- /dev/null
+++ b/pkgs/applications/virtualization/qemu/revert-ui-cocoa-add-clipboard-support.patch
@@ -0,0 +1,208 @@
+From 19b0952b36b6b5c4bd2665cc0bd4e55a85f81b55 Mon Sep 17 00:00:00 2001
+From: Will Cohen <willcohen@users.noreply.github.com>
+Date: Tue, 29 Mar 2022 14:00:56 -0400
+Subject: [PATCH] Revert "ui/cocoa: Add clipboard support"
+
+This reverts commit 7e3e20d89129614f4a7b2451fe321cc6ccca3b76.
+---
+ include/ui/clipboard.h |   2 +-
+ ui/clipboard.c         |   2 +-
+ ui/cocoa.m             | 121 -----------------------------------------
+ 3 files changed, 2 insertions(+), 123 deletions(-)
+
+diff --git a/include/ui/clipboard.h b/include/ui/clipboard.h
+index ce76aa451f..c4e1dc4ff4 100644
+--- a/include/ui/clipboard.h
++++ b/include/ui/clipboard.h
+@@ -269,7 +269,7 @@ void qemu_clipboard_set_data(QemuClipboardPeer *peer,
+                              QemuClipboardInfo *info,
+                              QemuClipboardType type,
+                              uint32_t size,
+-                             const void *data,
++                             void *data,
+                              bool update);
+ 
+ G_DEFINE_AUTOPTR_CLEANUP_FUNC(QemuClipboardInfo, qemu_clipboard_info_unref)
+diff --git a/ui/clipboard.c b/ui/clipboard.c
+index 9079ef829b..6b9ed59e1b 100644
+--- a/ui/clipboard.c
++++ b/ui/clipboard.c
+@@ -140,7 +140,7 @@ void qemu_clipboard_set_data(QemuClipboardPeer *peer,
+                              QemuClipboardInfo *info,
+                              QemuClipboardType type,
+                              uint32_t size,
+-                             const void *data,
++                             void *data,
+                              bool update)
+ {
+     if (!info ||
+diff --git a/ui/cocoa.m b/ui/cocoa.m
+index c4e5468f9e..cd3bdf0cec 100644
+--- a/ui/cocoa.m
++++ b/ui/cocoa.m
+@@ -28,7 +28,6 @@
+ #include <crt_externs.h>
+ 
+ #include "qemu-common.h"
+-#include "ui/clipboard.h"
+ #include "ui/console.h"
+ #include "ui/input.h"
+ #include "ui/kbd-state.h"
+@@ -107,10 +106,6 @@ static void cocoa_switch(DisplayChangeListener *dcl,
+ static QemuSemaphore app_started_sem;
+ static bool allow_events;
+ 
+-static NSInteger cbchangecount = -1;
+-static QemuClipboardInfo *cbinfo;
+-static QemuEvent cbevent;
+-
+ // Utility functions to run specified code block with iothread lock held
+ typedef void (^CodeBlock)(void);
+ typedef bool (^BoolCodeBlock)(void);
+@@ -1805,105 +1800,6 @@ static void addRemovableDevicesMenuItems(void)
+     qapi_free_BlockInfoList(pointerToFree);
+ }
+ 
+-@interface QemuCocoaPasteboardTypeOwner : NSObject<NSPasteboardTypeOwner>
+-@end
+-
+-@implementation QemuCocoaPasteboardTypeOwner
+-
+-- (void)pasteboard:(NSPasteboard *)sender provideDataForType:(NSPasteboardType)type
+-{
+-    if (type != NSPasteboardTypeString) {
+-        return;
+-    }
+-
+-    with_iothread_lock(^{
+-        QemuClipboardInfo *info = qemu_clipboard_info_ref(cbinfo);
+-        qemu_event_reset(&cbevent);
+-        qemu_clipboard_request(info, QEMU_CLIPBOARD_TYPE_TEXT);
+-
+-        while (info == cbinfo &&
+-               info->types[QEMU_CLIPBOARD_TYPE_TEXT].available &&
+-               info->types[QEMU_CLIPBOARD_TYPE_TEXT].data == NULL) {
+-            qemu_mutex_unlock_iothread();
+-            qemu_event_wait(&cbevent);
+-            qemu_mutex_lock_iothread();
+-        }
+-
+-        if (info == cbinfo) {
+-            NSData *data = [[NSData alloc] initWithBytes:info->types[QEMU_CLIPBOARD_TYPE_TEXT].data
+-                                           length:info->types[QEMU_CLIPBOARD_TYPE_TEXT].size];
+-            [sender setData:data forType:NSPasteboardTypeString];
+-            [data release];
+-        }
+-
+-        qemu_clipboard_info_unref(info);
+-    });
+-}
+-
+-@end
+-
+-static QemuCocoaPasteboardTypeOwner *cbowner;
+-
+-static void cocoa_clipboard_notify(Notifier *notifier, void *data);
+-static void cocoa_clipboard_request(QemuClipboardInfo *info,
+-                                    QemuClipboardType type);
+-
+-static QemuClipboardPeer cbpeer = {
+-    .name = "cocoa",
+-    .notifier = { .notify = cocoa_clipboard_notify },
+-    .request = cocoa_clipboard_request
+-};
+-
+-static void cocoa_clipboard_update_info(QemuClipboardInfo *info)
+-{
+-    if (info->owner == &cbpeer || info->selection != QEMU_CLIPBOARD_SELECTION_CLIPBOARD) {
+-        return;
+-    }
+-
+-    if (info != cbinfo) {
+-        NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
+-        qemu_clipboard_info_unref(cbinfo);
+-        cbinfo = qemu_clipboard_info_ref(info);
+-        cbchangecount = [[NSPasteboard generalPasteboard] declareTypes:@[NSPasteboardTypeString] owner:cbowner];
+-        [pool release];
+-    }
+-
+-    qemu_event_set(&cbevent);
+-}
+-
+-static void cocoa_clipboard_notify(Notifier *notifier, void *data)
+-{
+-    QemuClipboardNotify *notify = data;
+-
+-    switch (notify->type) {
+-    case QEMU_CLIPBOARD_UPDATE_INFO:
+-        cocoa_clipboard_update_info(notify->info);
+-        return;
+-    case QEMU_CLIPBOARD_RESET_SERIAL:
+-        /* ignore */
+-        return;
+-    }
+-}
+-
+-static void cocoa_clipboard_request(QemuClipboardInfo *info,
+-                                    QemuClipboardType type)
+-{
+-    NSData *text;
+-
+-    switch (type) {
+-    case QEMU_CLIPBOARD_TYPE_TEXT:
+-        text = [[NSPasteboard generalPasteboard] dataForType:NSPasteboardTypeString];
+-        if (text) {
+-            qemu_clipboard_set_data(&cbpeer, info, type,
+-                                    [text length], [text bytes], true);
+-            [text release];
+-        }
+-        break;
+-    default:
+-        break;
+-    }
+-}
+-
+ /*
+  * The startup process for the OSX/Cocoa UI is complicated, because
+  * OSX insists that the UI runs on the initial main thread, and so we
+@@ -1938,7 +1834,6 @@ static void cocoa_clipboard_request(QemuClipboardInfo *info,
+     COCOA_DEBUG("Second thread: calling qemu_main()\n");
+     status = qemu_main(gArgc, gArgv, *_NSGetEnviron());
+     COCOA_DEBUG("Second thread: qemu_main() returned, exiting\n");
+-    [cbowner release];
+     exit(status);
+ }
+ 
+@@ -2054,18 +1949,6 @@ static void cocoa_refresh(DisplayChangeListener *dcl)
+             [cocoaView setAbsoluteEnabled:YES];
+         });
+     }
+-
+-    if (cbchangecount != [[NSPasteboard generalPasteboard] changeCount]) {
+-        qemu_clipboard_info_unref(cbinfo);
+-        cbinfo = qemu_clipboard_info_new(&cbpeer, QEMU_CLIPBOARD_SELECTION_CLIPBOARD);
+-        if ([[NSPasteboard generalPasteboard] availableTypeFromArray:@[NSPasteboardTypeString]]) {
+-            cbinfo->types[QEMU_CLIPBOARD_TYPE_TEXT].available = true;
+-        }
+-        qemu_clipboard_update(cbinfo);
+-        cbchangecount = [[NSPasteboard generalPasteboard] changeCount];
+-        qemu_event_set(&cbevent);
+-    }
+-
+     [pool release];
+ }
+ 
+@@ -2105,10 +1988,6 @@ static void cocoa_display_init(DisplayState *ds, DisplayOptions *opts)
+ 
+     // register vga output callbacks
+     register_displaychangelistener(&dcl);
+-
+-    qemu_event_init(&cbevent, false);
+-    cbowner = [[QemuCocoaPasteboardTypeOwner alloc] init];
+-    qemu_clipboard_peer_register(&cbpeer);
+ }
+ 
+ static QemuDisplay qemu_display_cocoa = {
+-- 
+2.35.1
+
diff --git a/pkgs/applications/virtualization/virt-manager/default.nix b/pkgs/applications/virtualization/virt-manager/default.nix
index aa225c1d17308..99299ce31f9f5 100644
--- a/pkgs/applications/virtualization/virt-manager/default.nix
+++ b/pkgs/applications/virtualization/virt-manager/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub, python3, intltool, file, wrapGAppsHook, gtk-vnc
 , vte, avahi, dconf, gobject-introspection, libvirt-glib, system-libvirt
 , gsettings-desktop-schemas, libosinfo, gnome, gtksourceview4, docutils, cpio
-, e2fsprogs, findutils, gzip, cdrtools, xorriso
+, e2fsprogs, findutils, gzip, cdrtools, xorriso, fetchpatch
 , spiceSupport ? true, spice-gtk ? null
 }:
 
@@ -35,11 +35,21 @@ python3.pkgs.buildPythonApplication rec {
     pygobject3 ipaddress libvirt libxml2 requests cdrtools
   ];
 
-  patchPhase = ''
+  prePatch = ''
     sed -i 's|/usr/share/libvirt/cpu_map.xml|${system-libvirt}/share/libvirt/cpu_map.xml|g' virtinst/capabilities.py
     sed -i "/'install_egg_info'/d" setup.py
   '';
 
+   patches = [
+     # due to a recent change in setuptools-61, "packages=[]" needs to be included
+     # this patch can hopefully be removed, once virt-manager has an upstream version bump
+    (fetchpatch {
+      name = "fix-for-setuptools-61.patch";
+      url = "https://github.com/virt-manager/virt-manager/commit/46dc0616308a73d1ce3ccc6d716cf8bbcaac6474.patch";
+      sha256 = "sha256-/RZG+7Pmd7rmxMZf8Fvg09dUggs2MqXZahfRQ5cLcuM=";
+    })
+  ];
+
   postConfigure = ''
     ${python3.interpreter} setup.py configure --prefix=$out
   '';
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index 865dcad157bd9..fc37456919d08 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -5,13 +5,9 @@ let
   version = virtualbox.version;
   xserverVListFunc = builtins.elemAt (lib.splitVersion xorg.xorgserver.version);
 
-  # Forced to 1.18 in <nixpkgs/nixos/modules/services/x11/xserver.nix>
-  # as it even fails to build otherwise.  Still, override this even here,
-  # in case someone does just a standalone build
-  # (not via videoDrivers = ["vboxvideo"]).
-  # It's likely to work again in some future update.
-  xserverABI = let abi = xserverVListFunc 0 + xserverVListFunc 1;
-    in if abi == "119" || abi == "120" then "118" else abi;
+  # Forced to 1.18; vboxvideo doesn't seem to provide any newer ABI,
+  # and nixpkgs doesn't support older ABIs anymore.
+  xserverABI = "118";
 
   # Specifies how to patch binaries to make sure that libraries loaded using
   # dlopen are found. We grep binaries for specific library names and patch
diff --git a/pkgs/applications/virtualization/x11docker/default.nix b/pkgs/applications/virtualization/x11docker/default.nix
index bad1e98296c25..621514ad4c82f 100644
--- a/pkgs/applications/virtualization/x11docker/default.nix
+++ b/pkgs/applications/virtualization/x11docker/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchFromGitHub, makeWrapper, nx-libs, xorg, getopt, gnugrep, gawk, ps, mount, iproute2 }:
 stdenv.mkDerivation rec {
   pname = "x11docker";
-  version = "7.1.3";
+  version = "7.1.4";
   src = fetchFromGitHub {
     owner = "mviereck";
     repo = "x11docker";
     rev = "v${version}";
-    sha256 = "sha256-eSarw5RG2ckup9pNlZtAyZAN8IPZy94RRfej9ppiLfo=";
+    sha256 = "sha256-geYn1ir8h1EAUpTWsTS7giQt5eQwIBFeemS+a940ORg=";
   };
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/applications/window-managers/afterstep/default.nix b/pkgs/applications/window-managers/afterstep/default.nix
index a26f824cd1831..4bc757f27212f 100644
--- a/pkgs/applications/window-managers/afterstep/default.nix
+++ b/pkgs/applications/window-managers/afterstep/default.nix
@@ -45,7 +45,19 @@ stdenv.mkDerivation rec {
 
   # A strange type of bug: dbus is not immediately found by pkg-config
   preConfigure = ''
-     export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config dbus-1 --cflags)"
+    # binutils 2.37 fix
+    # https://github.com/afterstep/afterstep/issues/2
+    fixupList=(
+      "autoconf/Makefile.defines.in"
+      "libAfterImage/aftershow/Makefile.in"
+      "libAfterImage/apps/Makefile.in"
+      "libAfterBase/Makefile.in"
+      "libAfterImage/Makefile.in"
+    )
+    for toFix in "''${fixupList[@]}"; do
+      substituteInPlace "$toFix" --replace "clq" "cq"
+    done
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config dbus-1 --cflags)"
   '';
 
   # Parallel build fails due to missing dependencies between private libaries:
diff --git a/pkgs/applications/window-managers/berry/default.nix b/pkgs/applications/window-managers/berry/default.nix
index f6ba52013f6f5..5c2c7dcb5ce45 100644
--- a/pkgs/applications/window-managers/berry/default.nix
+++ b/pkgs/applications/window-managers/berry/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "berry";
-  version = "0.1.10";
+  version = "0.1.11";
 
   src = fetchFromGitHub {
     owner = "JLErvin";
     repo = pname;
     rev = version;
-    hash = "sha256-6asph0QXzhmHuYcfrLcQ8RTP4QzX8m6AcCp5ImA++9M=";
+    hash = "sha256-cs1NVwaANMIteCQuGqPcEWuUbfJulhjmfWnlU8Eb2OM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/window-managers/herbstluftwm/default.nix b/pkgs/applications/window-managers/herbstluftwm/default.nix
index 2ed6bc303668e..e999a458d13a0 100644
--- a/pkgs/applications/window-managers/herbstluftwm/default.nix
+++ b/pkgs/applications/window-managers/herbstluftwm/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchurl, cmake, pkg-config, python3, libX11, libXext, libXinerama, libXrandr, libXft, libXrender, freetype, asciidoc
+{ lib, stdenv, fetchurl, cmake, pkg-config, python3, libX11, libXext, libXinerama, libXrandr, libXft, libXrender, libXdmcp, libXfixes, freetype, asciidoc
 , xdotool, xorgserver, xsetroot, xterm, runtimeShell
 , nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "herbstluftwm";
-  version = "0.9.3";
+  version = "0.9.4";
 
   src = fetchurl {
     url = "https://herbstluftwm.org/tarballs/herbstluftwm-${version}.tar.gz";
-    sha256 = "01f1bv9axjhw1l2gwhdwahljssj0h8q7a1bqwbpnwvln0ayv39qb";
+    sha256 = "1k03rdr6irsgnjl4w0vac0kk9nsz46qhy74iflmaycxgfv8fxy7f";
   };
 
   outputs = [
@@ -37,6 +37,8 @@ stdenv.mkDerivation rec {
     libXrandr
     libXft
     libXrender
+    libXdmcp
+    libXfixes
     freetype
   ];
 
@@ -75,7 +77,10 @@ stdenv.mkDerivation rec {
 
   pytestFlagsArray = [ "../tests" ];
   disabledTests = [
-    "test_title_different_letters_are_drawn"
+    "test_title_different_letters_are_drawn" # font problems
+    "test_completable_commands" # font problems
+    "test_autostart" # $PATH problems
+    "test_wmexec_to_other" # timeouts in sandbox
   ];
 
   passthru = {
diff --git a/pkgs/applications/window-managers/i3/status-rust.nix b/pkgs/applications/window-managers/i3/status-rust.nix
index ed518d8eb2e89..c3d8d96bba4e1 100644
--- a/pkgs/applications/window-managers/i3/status-rust.nix
+++ b/pkgs/applications/window-managers/i3/status-rust.nix
@@ -15,16 +15,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "i3status-rust";
-  version = "0.21.8";
+  version = "0.21.10";
 
   src = fetchFromGitHub {
     owner = "greshake";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-l0XfitQSmSkivEg8+XcA/+bWdy/wzIpii/Npc4p8kUw=";
+    sha256 = "sha256-HtPgl52ysE/CVX706YeKBFc6CgGpHzvHwZoS+DzHADY=";
   };
 
-  cargoSha256 = "sha256-2rJ9ZZHK1acJu6r6EjuoolLJZMdBsbKgN1DNvGM7deA=";
+  cargoSha256 = "sha256-ini0AIYwvTskNFMSC+Gy23ohL75PTET95e1mjpjCsWE=";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
 
diff --git a/pkgs/applications/window-managers/phosh/default.nix b/pkgs/applications/window-managers/phosh/default.nix
index 77a65eef66715..6a37809bb5f55 100644
--- a/pkgs/applications/window-managers/phosh/default.nix
+++ b/pkgs/applications/window-managers/phosh/default.nix
@@ -31,7 +31,7 @@
 
 stdenv.mkDerivation rec {
   pname = "phosh";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
     repo = pname;
     rev = "v${version}";
     fetchSubmodules = true; # including gvc and libcall-ui which are designated as subprojects
-    sha256 = "sha256-nxQYVWUXT1fNgOTRB3iWCLWYI/STk8vtguTbPPNTHdg=";
+    sha256 = "sha256-o/0NJZo1EPpXguN/tkUc+/9XaVTQWaLGe+2pU0B91Cg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/window-managers/sway/idle.nix b/pkgs/applications/window-managers/sway/idle.nix
index 0928fbcfb4ef6..da23386d41ce8 100644
--- a/pkgs/applications/window-managers/sway/idle.nix
+++ b/pkgs/applications/window-managers/sway/idle.nix
@@ -21,6 +21,8 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [ "-Dman-pages=enabled" "-Dlogind=${if systemdSupport then "enabled" else "disabled"}" ];
 
+  postPatch = "substituteInPlace main.c --replace '%lu' '%zu'";
+
   meta = with lib; {
     description = "Idle management daemon for Wayland";
     longDescription = ''
diff --git a/pkgs/applications/window-managers/sway/lock-effects.nix b/pkgs/applications/window-managers/sway/lock-effects.nix
index 25714f1f8a94d..9e919d3f88e15 100644
--- a/pkgs/applications/window-managers/sway/lock-effects.nix
+++ b/pkgs/applications/window-managers/sway/lock-effects.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , meson
 , ninja
 , pkg-config
@@ -24,6 +25,13 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-71IX0fC4xCPP6pK63KtvDMb3KoP1rw/Iz3S7BgiLSpg=";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/mortie/swaylock-effects/commit/dfff235b09b475e79d75a040a0307a359974d360.patch";
+      sha256 = "t8Xz2wRSBlwGtkpWZyIGWX7V/y0P1r/50P8MfauMh4c=";
+    })
+  ];
+
   postPatch = ''
     sed -iE "s/version: '1\.3',/version: '${version}',/" meson.build
   '';
diff --git a/pkgs/applications/window-managers/wmii-hg/default.nix b/pkgs/applications/window-managers/wmii-hg/default.nix
deleted file mode 100644
index 6759e15ee8337..0000000000000
--- a/pkgs/applications/window-managers/wmii-hg/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ lib, stdenv, fetchurl, unzip, pkg-config, libixp_hg, txt2tags, dash, python2, which
-, libX11 , libXrender, libXext, libXinerama, libXrandr, libXft }:
-
-stdenv.mkDerivation rec {
-  rev = "2823";
-  version = "hg-2012-12-09";
-  pname = "wmii";
-
-  src = fetchurl {
-    url = "https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/wmii/source-archive.zip";
-    sha256 = "1wmkq14zvmfrmydl8752xz852cy7agrx3qp4fy2cc5asb2r9abaz";
-  };
-
-  # for dlopen-ing
-  patchPhase = ''
-    substituteInPlace lib/libstuff/x11/xft.c --replace "libXft.so" "$(pkg-config --variable=libdir xft)/libXft.so.2"
-    substituteInPlace cmd/wmii.sh.sh --replace "\$(which which)" "${which}/bin/which"
-  '';
-
-  configurePhase = ''
-    for file in $(grep -lr '#!.*sh'); do
-      sed -i 's|#!.*sh|#!${dash}/bin/dash|' $file
-    done
-
-    cat <<EOF >> config.mk
-    PREFIX = $out
-    LIBIXP = ${libixp_hg}/lib/libixp.a
-    BINSH = ${dash}/bin/dash
-    EOF
-  '';
-
-  nativeBuildInputs = [ pkg-config unzip ];
-  buildInputs = [ libixp_hg txt2tags dash python2 which
-                  libX11 libXrender libXext libXinerama libXrandr libXft ];
-
-  # For some reason including mercurial in buildInputs did not help
-  makeFlags = [ "WMII_HGVERSION=hg${rev}" ];
-
-  meta = {
-    homepage = "https://suckless.org/"; # https://wmii.suckless.org/ does not exist anymore
-    description = "A small window manager controlled by a 9P filesystem";
-    maintainers = with lib.maintainers; [ kovirobi ];
-    license = lib.licenses.mit;
-    platforms = with lib.platforms; linux;
-  };
-}
diff --git a/pkgs/applications/window-managers/wmii/default.nix b/pkgs/applications/window-managers/wmii/default.nix
new file mode 100644
index 0000000000000..11f669da37a6f
--- /dev/null
+++ b/pkgs/applications/window-managers/wmii/default.nix
@@ -0,0 +1,72 @@
+{ lib, stdenv
+, fetchFromGitHub
+, dash
+, libX11
+, libXext
+, libXft
+, libXinerama
+, libXrandr
+, libXrender
+, libixp
+, pkg-config
+, txt2tags
+, unzip
+, which
+}:
+
+stdenv.mkDerivation rec {
+  pname = "wmii";
+  version = "unstable-2022-04-04";
+
+  src = fetchFromGitHub {
+    owner = "0intro";
+    repo = "wmii";
+    rev = "ff120c7fee6e1b3a30a4a800074394327fb1da9d";
+    hash = "sha256-KEmWnobpT/5TdgT2HGPCpG1duz9Q6Z6PFSEBs2Ce+7g=";
+  };
+
+  # for dlopen-ing
+  postPatch = ''
+    substituteInPlace lib/libstuff/x11/xft.c --replace "libXft.so" "$(pkg-config --variable=libdir xft)/libXft.so.2"
+    substituteInPlace cmd/wmii.sh.sh --replace "\$(which which)" "${which}/bin/which"
+  '';
+
+  postConfigure = ''
+    for file in $(grep -lr '#!.*sh'); do
+      sed -i 's|#!.*sh|#!${dash}/bin/dash|' $file
+    done
+
+    cat <<EOF >> config.mk
+    PREFIX = $out
+    LIBIXP = ${libixp}/lib/libixp.a
+    BINSH = ${dash}/bin/dash
+    EOF
+  '';
+
+  # Remove optional python2 functionality
+  postInstall = ''
+    rm -rf $out/lib/python* $out/etc/wmii-hg/python
+  '';
+
+  nativeBuildInputs = [ pkg-config unzip ];
+  buildInputs = [
+    dash
+    libX11
+    libXext
+    libXft
+    libXinerama
+    libXrandr
+    libXrender
+    libixp
+    txt2tags
+    which
+  ];
+
+  meta = {
+    homepage = "https://github.com/0intro/wmii";
+    description = "A small, scriptable window manager, with a 9P filesystem interface and an acme-like layout";
+    maintainers = with lib.maintainers; [ kovirobi ];
+    license = lib.licenses.mit;
+    platforms = with lib.platforms; linux;
+  };
+}
diff --git a/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix b/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix
index a36008d752bd9..945b9287ed00a 100644
--- a/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix
+++ b/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix
@@ -178,7 +178,7 @@ let
         chmod -R 755 share
         cp -rLTf ${staticUsrProfileTarget}/share share
       else
-        cp -rLf ${staticUsrProfileTarget}/share share
+        cp -rsHf ${staticUsrProfileTarget}/share share
       fi
     fi
     for i in bin sbin include; do
diff --git a/pkgs/build-support/build-graalvm-native-image/default.nix b/pkgs/build-support/build-graalvm-native-image/default.nix
index d34f562bc5372..760896706ac28 100644
--- a/pkgs/build-support/build-graalvm-native-image/default.nix
+++ b/pkgs/build-support/build-graalvm-native-image/default.nix
@@ -55,5 +55,7 @@ stdenv.mkDerivation (args // {
     platforms = graalvmDrv.meta.platforms;
     # default to executable name
     mainProgram = executable;
+    # need to have native-image-installable-svm available
+    broken = !(builtins.elem "native-image-installable-svm" graalvmDrv.products);
   } // meta;
 })
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index 96ea363c811e0..5a4e30ede8a3e 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -16,8 +16,8 @@
 , makeWrapper
 , moreutils
 , nix
+, nixosTests
 , pigz
-, pkgs
 , rsync
 , runCommand
 , runtimeShell
@@ -26,6 +26,7 @@
 , storeDir ? builtins.storeDir
 , substituteAll
 , symlinkJoin
+, tarsum
 , util-linux
 , vmTools
 , writeReferencesToFile
@@ -81,6 +82,15 @@ rec {
     inherit buildImage buildLayeredImage fakeNss pullImage shadowSetup buildImageWithNixDb;
   };
 
+  tests = {
+    inherit (nixosTests)
+      docker-tools
+      docker-tools-overlay
+      # requires remote builder
+      # docker-tools-cross
+      ;
+  };
+
   pullImage =
     let
       fixName = name: builtins.replaceStrings [ "/" ":" ] [ "-" "-" ] name;
@@ -113,7 +123,7 @@ rec {
         outputHashAlgo = "sha256";
         outputHash = sha256;
 
-        nativeBuildInputs = lib.singleton skopeo;
+        nativeBuildInputs = [ skopeo ];
         SSL_CERT_FILE = "${cacert.out}/etc/ssl/certs/ca-bundle.crt";
 
         sourceURL = "docker://${imageName}@${imageDigest}";
@@ -132,7 +142,7 @@ rec {
 
   # We need to sum layer.tar, not a directory, hence tarsum instead of nix-hash.
   # And we cannot untar it, because then we cannot preserve permissions etc.
-  tarsum = pkgs.tarsum;
+  inherit tarsum; # pkgs.dockerTools.tarsum
 
   # buildEnv creates symlinks to dirs, which is hard to edit inside the overlay VM
   mergeDrvs =
@@ -754,7 +764,7 @@ rec {
   # "#!/usr/bin/env executable" shebang.
   usrBinEnv = runCommand "usr-bin-env" { } ''
     mkdir -p $out/usr/bin
-    ln -s ${pkgs.coreutils}/bin/env $out/usr/bin
+    ln -s ${coreutils}/bin/env $out/usr/bin
   '';
 
   # This provides /bin/sh, pointing to bashInteractive.
diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix
index 941ee048666d0..169edb171db41 100644
--- a/pkgs/build-support/docker/examples.nix
+++ b/pkgs/build-support/docker/examples.nix
@@ -486,7 +486,7 @@ rec {
   cross = let
     # Cross compile for x86_64 if on aarch64
     crossPkgs =
-      if pkgs.system == "aarch64-linux" then pkgsCross.gnu64
+      if pkgs.stdenv.hostPlatform.system == "aarch64-linux" then pkgsCross.gnu64
       else pkgsCross.aarch64-multiplatform;
   in crossPkgs.dockerTools.buildImage {
     name = "hello-cross";
diff --git a/pkgs/build-support/emacs/wrapper.nix b/pkgs/build-support/emacs/wrapper.nix
index 2aa61d6d2f62f..d61f6967c4b81 100644
--- a/pkgs/build-support/emacs/wrapper.nix
+++ b/pkgs/build-support/emacs/wrapper.nix
@@ -135,10 +135,16 @@ runCommand
           ''}
         }
 
+        siteAutoloads="$out/share/emacs/site-lisp/nix-generated-autoload.el"
+        touch $siteAutoloads
+
         # Iterate over the array of inputs (avoiding nix's own interpolation)
         for pkg in "''${requires[@]}"; do
           linkEmacsPackage $pkg
+          find $pkg -name "*-autoloads.el" \
+              -exec echo \(load \"{}\" \'noerror \'nomessage\) \; >> $siteAutoloads
         done
+        echo "(provide 'nix-generated-autoload)" >> $siteAutoloads
 
         siteStart="$out/share/emacs/site-lisp/site-start.el"
         siteStartByteCompiled="$siteStart"c
@@ -174,12 +180,12 @@ runCommand
           > "$subdirs"
 
         # Byte-compiling improves start-up time only slightly, but costs nothing.
-        $emacs/bin/emacs --batch -f batch-byte-compile "$siteStart" "$subdirs"
+        $emacs/bin/emacs --batch -f batch-byte-compile "$siteStart" "$subdirs" "$siteAutoloads"
 
         ${optionalString nativeComp ''
           $emacs/bin/emacs --batch \
             --eval "(add-to-list 'native-comp-eln-load-path \"$out/share/emacs/native-lisp/\")" \
-            -f batch-native-compile "$siteStart" "$subdirs"
+            -f batch-native-compile "$siteStart" "$subdirs" "$siteAutoloads"
         ''}
       '';
 
@@ -191,12 +197,18 @@ runCommand
     # Wrap emacs and friends so they find our site-start.el before the original.
     for prog in $emacs/bin/*; do # */
       local progname=$(basename "$prog")
+      local autoloadExpression=""
       rm -f "$out/bin/$progname"
+      if [[ $progname == emacs ]]; then
+        # progs other than "emacs" do not understand the `-l` switches
+        autoloadExpression="-l cl-loaddefs -l nix-generated-autoload"
+      fi
 
       substitute ${./wrapper.sh} $out/bin/$progname \
         --subst-var-by bash ${emacs.stdenv.shell} \
         --subst-var-by wrapperSiteLisp "$deps/share/emacs/site-lisp" \
         --subst-var-by wrapperSiteLispNative "$deps/share/emacs/native-lisp:" \
+        --subst-var autoloadExpression \
         --subst-var prog
       chmod +x $out/bin/$progname
     done
@@ -215,6 +227,8 @@ runCommand
       substitute ${./wrapper.sh} $out/Applications/Emacs.app/Contents/MacOS/Emacs \
         --subst-var-by bash ${emacs.stdenv.shell} \
         --subst-var-by wrapperSiteLisp "$deps/share/emacs/site-lisp" \
+        --subst-var-by wrapperSiteLispNative "$deps/share/emacs/native-lisp:" \
+        --subst-var-by autoloadExpression "-l cl-loaddefs -l nix-generated-autoload" \
         --subst-var-by prog "$emacs/Applications/Emacs.app/Contents/MacOS/Emacs"
       chmod +x $out/Applications/Emacs.app/Contents/MacOS/Emacs
     fi
diff --git a/pkgs/build-support/emacs/wrapper.sh b/pkgs/build-support/emacs/wrapper.sh
index e8eecb8c86966..16da2a9f64954 100644
--- a/pkgs/build-support/emacs/wrapper.sh
+++ b/pkgs/build-support/emacs/wrapper.sh
@@ -44,4 +44,4 @@ export emacsWithPackages_siteLisp=@wrapperSiteLisp@
 export EMACSNATIVELOADPATH="${newNativeLoadPath[*]}"
 export emacsWithPackages_siteLispNative=@wrapperSiteLispNative@
 
-exec @prog@ "$@"
+exec @prog@ @autoloadExpression@ "$@"
diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix
index 1b59668ce4bc7..b0cc42f071450 100644
--- a/pkgs/build-support/fetchgit/default.nix
+++ b/pkgs/build-support/fetchgit/default.nix
@@ -27,6 +27,7 @@ in
 , # Impure env vars (https://nixos.org/nix/manual/#sec-advanced-attributes)
   # needed for netrcPhase
   netrcImpureEnvVars ? []
+, meta ? {}
 }:
 
 /* NOTE:
@@ -90,5 +91,5 @@ stdenvNoCC.mkDerivation {
     "GIT_PROXY_COMMAND" "NIX_GIT_SSL_CAINFO" "SOCKS_SERVER"
   ];
 
-  inherit preferLocalBuild;
+  inherit preferLocalBuild meta;
 }
diff --git a/pkgs/build-support/fetchurl/default.nix b/pkgs/build-support/fetchurl/default.nix
index dcab471fc8396..32cc416cc891a 100644
--- a/pkgs/build-support/fetchurl/default.nix
+++ b/pkgs/build-support/fetchurl/default.nix
@@ -160,5 +160,5 @@ stdenvNoCC.mkDerivation {
   '';
 
   inherit meta;
-  inherit passthru;
+  passthru = { inherit url; } // passthru;
 }
diff --git a/pkgs/build-support/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix
index 954c88d1bafa2..2c6ba2b02448d 100644
--- a/pkgs/build-support/fetchurl/mirrors.nix
+++ b/pkgs/build-support/fetchurl/mirrors.nix
@@ -18,6 +18,7 @@
 
   # Apache
   apache = [
+    "https://dlcdn.apache.org/"
     "https://www-eu.apache.org/dist/"
     "https://ftp.wayne.edu/apache/"
     "https://www.apache.org/dist/"
diff --git a/pkgs/build-support/kernel/make-initrd-ng.nix b/pkgs/build-support/kernel/make-initrd-ng.nix
index 9fd202c44847a..1890bbcd173a3 100644
--- a/pkgs/build-support/kernel/make-initrd-ng.nix
+++ b/pkgs/build-support/kernel/make-initrd-ng.nix
@@ -66,14 +66,28 @@ in
     compressorArgs = _compressorArgsReal;
   };
 
+  inherit extension makeUInitrd uInitrdArch prepend;
+  ${if makeUInitrd then "uInitrdCompression" else null} = uInitrdCompression;
+
   passAsFile = ["contents"];
   contents = lib.concatMapStringsSep "\n" ({ object, symlink, ... }: "${object}\n${if symlink == null then "" else symlink}") contents + "\n";
 
-  nativeBuildInputs = [makeInitrdNGTool patchelf glibc cpio];
+  nativeBuildInputs = [makeInitrdNGTool patchelf glibc cpio] ++ lib.optional makeUInitrd ubootTools;
 } ''
   mkdir ./root
   make-initrd-ng "$contentsPath" ./root
   mkdir "$out"
   (cd root && find * .[^.*] -exec touch -h -d '@1' '{}' +)
+  for PREP in $prepend; do
+    cat $PREP >> $out/initrd
+  done
   (cd root && find * .[^.*] -print0 | sort -z | cpio -o -H newc -R +0:+0 --reproducible --null | eval -- $compress >> "$out/initrd")
+
+  if [ -n "$makeUInitrd" ]; then
+      mkimage -A "$uInitrdArch" -O linux -T ramdisk -C "$uInitrdCompression" -d "$out/initrd" $out/initrd.img
+      # Compatibility symlink
+      ln -sf "initrd.img" "$out/initrd"
+  else
+      ln -s "initrd" "$out/initrd$extension"
+  fi
 ''
diff --git a/pkgs/build-support/kernel/make-initrd.nix b/pkgs/build-support/kernel/make-initrd.nix
index 23ce992f0d557..9c27a142f4b65 100644
--- a/pkgs/build-support/kernel/make-initrd.nix
+++ b/pkgs/build-support/kernel/make-initrd.nix
@@ -18,7 +18,7 @@ let
   # compression type and filename extension.
   compressorName = fullCommand: builtins.elemAt (builtins.match "([^ ]*/)?([^ ]+).*" fullCommand) 1;
 in
-{ stdenvNoCC, perl, cpio, ubootTools, lib, pkgsBuildHost
+{ stdenvNoCC, perl, libarchive, ubootTools, lib, pkgsBuildHost
 # Name of the derivation (not of the resulting file!)
 , name ? "initrd"
 
@@ -82,7 +82,7 @@ in stdenvNoCC.mkDerivation rec {
 
   builder = ./make-initrd.sh;
 
-  nativeBuildInputs = [ perl cpio ]
+  nativeBuildInputs = [ perl libarchive ]
     ++ lib.optional makeUInitrd ubootTools;
 
   compress = "${_compressorExecutable} ${lib.escapeShellArgs _compressorArgsReal}";
diff --git a/pkgs/build-support/kernel/make-initrd.sh b/pkgs/build-support/kernel/make-initrd.sh
index 0a87d643546a5..8f64114d54c3f 100644
--- a/pkgs/build-support/kernel/make-initrd.sh
+++ b/pkgs/build-support/kernel/make-initrd.sh
@@ -40,7 +40,7 @@ for PREP in $prepend; do
   cat $PREP >> $out/initrd
 done
 (cd root && find * .[^.*] -exec touch -h -d '@1' '{}' +)
-(cd root && find * .[^.*] -print0 | sort -z | cpio -o -H newc -R +0:+0 --reproducible --null | eval -- $compress >> "$out/initrd")
+(cd root && find * .[^.*] -print0 | sort -z | bsdtar --uid 0 --gid 0 -cnf - -T - | bsdtar --null -cf - --format=newc @- | eval -- $compress >> "$out/initrd")
 
 if [ -n "$makeUInitrd" ]; then
     mkimage -A "$uInitrdArch" -O linux -T ramdisk -C "$uInitrdCompression" -d "$out/initrd" $out/initrd.img
diff --git a/pkgs/build-support/make-darwin-bundle/default.nix b/pkgs/build-support/make-darwin-bundle/default.nix
index b8f58882fff32..52dd54b0b2c4d 100644
--- a/pkgs/build-support/make-darwin-bundle/default.nix
+++ b/pkgs/build-support/make-darwin-bundle/default.nix
@@ -12,14 +12,14 @@
 
 writeShellScript "make-darwin-bundle-${name}" (''
   function makeDarwinBundlePhase() {
-    mkdir -p "$out/Applications/${name}.app/Contents/MacOS"
-    mkdir -p "$out/Applications/${name}.app/Contents/Resources"
+    mkdir -p "''${!outputBin}/Applications/${name}.app/Contents/MacOS"
+    mkdir -p "''${!outputBin}/Applications/${name}.app/Contents/Resources"
 
     if [ -n "${icon}" ]; then
-      ln -s "${icon}" "$out/Applications/${name}.app/Contents/Resources"
+      ln -s "${icon}" "''${!outputBin}/Applications/${name}.app/Contents/Resources"
     fi
 
-    ${writeDarwinBundle}/bin/write-darwin-bundle "$out" "${name}" "${exec}"
+    ${writeDarwinBundle}/bin/write-darwin-bundle "''${!outputBin}" "${name}" "${exec}"
   }
 
   preDistPhases+=" makeDarwinBundlePhase"
diff --git a/pkgs/build-support/make-desktopitem/default.nix b/pkgs/build-support/make-desktopitem/default.nix
index d831fe24d33b2..e09fd0e20f226 100644
--- a/pkgs/build-support/make-desktopitem/default.nix
+++ b/pkgs/build-support/make-desktopitem/default.nix
@@ -34,11 +34,6 @@
 , extraConfig ? {} # Additional values to be added literally to the final item, e.g. vendor extensions
 }:
 let
-  # FIXME: workaround until https://github.com/NixOS/nixpkgs/pull/162246 lands
-  cleanName = if lib.hasInfix " " name
-                then throw "makeDesktopItem: name must not contain spaces!"
-                else name;
-
   # There are multiple places in the FDO spec that make "boolean" values actually tristate,
   # e.g. StartupNotify, where "unset" is literally defined as "do something reasonable".
   # So, handle null values separately.
@@ -116,8 +111,8 @@ let
   content = [ mainSectionRendered ] ++ actionsRendered;
 in
 writeTextFile {
-  name = "${cleanName}.desktop";
-  destination = "/share/applications/${cleanName}.desktop";
+  name = "${name}.desktop";
+  destination = "/share/applications/${name}.desktop";
   text = builtins.concatStringsSep "\n" content;
-  checkPhase = "${buildPackages.desktop-file-utils}/bin/desktop-file-validate $target";
+  checkPhase = ''${buildPackages.desktop-file-utils}/bin/desktop-file-validate "$target"'';
 }
diff --git a/pkgs/build-support/ocaml/dune.nix b/pkgs/build-support/ocaml/dune.nix
index f82bac7d199db..2ded76d3cd4ac 100644
--- a/pkgs/build-support/ocaml/dune.nix
+++ b/pkgs/build-support/ocaml/dune.nix
@@ -7,8 +7,8 @@ let Dune =
   { "1" = dune_1; "2" = dune_2; "3" = dune_3; }."${dune-version}"
 ; in
 
-if (args ? minimumOCamlVersion && ! lib.versionAtLeast ocaml.version args.minimumOCamlVersion) ||
-   (args ? minimalOCamlVersion && ! lib.versionAtLeast ocaml.version args.minimalOCamlVersion)
+if (args ? minimumOCamlVersion && lib.versionOlder ocaml.version args.minimumOCamlVersion) ||
+   (args ? minimalOCamlVersion && lib.versionOlder ocaml.version args.minimalOCamlVersion)
 then throw "${pname}-${version} is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/build-support/ocaml/oasis.nix b/pkgs/build-support/ocaml/oasis.nix
index 8f81344daf093..91daad59050d4 100644
--- a/pkgs/build-support/ocaml/oasis.nix
+++ b/pkgs/build-support/ocaml/oasis.nix
@@ -8,7 +8,7 @@
 }@args:
 
 if args ? minimumOCamlVersion &&
-   ! lib.versionAtLeast ocaml.version args.minimumOCamlVersion
+   lib.versionOlder ocaml.version args.minimumOCamlVersion
 then throw "${pname}-${version} is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/build-support/rust/build-rust-crate/default.nix b/pkgs/build-support/rust/build-rust-crate/default.nix
index afb938e511828..20b93b1921f84 100644
--- a/pkgs/build-support/rust/build-rust-crate/default.nix
+++ b/pkgs/build-support/rust/build-rust-crate/default.nix
@@ -277,9 +277,14 @@ crate_: lib.makeOverridable
 
       # Create a list of features that are enabled by the crate itself and
       # through the features argument of buildRustCrate. Exclude features
-      # with a forward slash, since they are passed through to dependencies.
+      # with a forward slash, since they are passed through to dependencies,
+      # and dep: features, since they're internal-only and do nothing except
+      # enable optional dependencies.
       crateFeatures = lib.optionals (crate ? features)
-        (builtins.filter (f: !lib.hasInfix "/" f) (crate.features ++ features));
+        (builtins.filter
+          (f: !(lib.hasInfix "/" f || lib.hasPrefix "dep:" f))
+          (crate.features ++ features)
+        );
 
       libName = if crate ? libName then crate.libName else crate.crateName;
       libPath = if crate ? libPath then crate.libPath else "";
diff --git a/pkgs/build-support/setup-hooks/auto-patchelf.py b/pkgs/build-support/setup-hooks/auto-patchelf.py
index 26fd623e3da08..861d772698d04 100644
--- a/pkgs/build-support/setup-hooks/auto-patchelf.py
+++ b/pkgs/build-support/setup-hooks/auto-patchelf.py
@@ -1,23 +1,21 @@
 #!/usr/bin/env python3
 
-from collections import defaultdict
-from contextlib import contextmanager
-from dataclasses import dataclass
-from elftools.common.exceptions import ELFError # type: ignore
-from elftools.elf.dynamic import DynamicSection # type: ignore
-from elftools.elf.elffile import ELFFile # type: ignore
-from elftools.elf.enums import ENUM_E_TYPE, ENUM_EI_OSABI # type: ignore
-from itertools import chain
-from pathlib import Path, PurePath
-
-from typing import Tuple, Optional, Iterator, List, DefaultDict, Set
-
 import argparse
 import os
 import pprint
 import subprocess
 import sys
+from collections import defaultdict
+from contextlib import contextmanager
+from dataclasses import dataclass
+from itertools import chain
+from pathlib import Path, PurePath
+from typing import DefaultDict, Iterator, List, Optional, Set, Tuple
 
+from elftools.common.exceptions import ELFError  # type: ignore
+from elftools.elf.dynamic import DynamicSection  # type: ignore
+from elftools.elf.elffile import ELFFile  # type: ignore
+from elftools.elf.enums import ENUM_E_TYPE, ENUM_EI_OSABI  # type: ignore
 
 
 @contextmanager
@@ -246,7 +244,7 @@ def auto_patchelf(
         lib_dirs: List[Path],
         runtime_deps: List[Path],
         recursive: bool =True,
-        ignore_missing: bool =False) -> None:
+        ignore_missing: List[str] = []) -> None:
 
     if not paths_to_patch:
         sys.exit("No paths to patch, stopping.")
@@ -264,12 +262,19 @@ def auto_patchelf(
     missing = [dep for dep in dependencies if not dep.found]
 
     # Print a summary of the missing dependencies at the end
+    print(f"auto-patchelf: {len(missing)} dependencies could not be satisfied")
+    failure = False
     for dep in missing:
-        print(f"auto-patchelf could not satisfy dependency {dep.name} wanted by {dep.file}")
+        if dep.name.name in ignore_missing or "*" in ignore_missing:
+            print(f"warn: auto-patchelf ignoring missing {dep.name} wanted by {dep.file}")
+        else:
+            print(f"error: auto-patchelf could not satisfy dependency {dep.name} wanted by {dep.file}")
+            failure = True
 
-    if missing and not ignore_missing:
+    if failure:
         sys.exit('auto-patchelf failed to find all the required dependencies.\n'
-                 'Add the missing dependencies to --libs or use --ignore-missing.')
+                 'Add the missing dependencies to --libs or use '
+                 '`--ignore-missing="foo.so.1 bar.so etc.so"`.')
 
 
 def main() -> None:
@@ -280,7 +285,8 @@ def main() -> None:
                     'libraries in the provided paths.')
     parser.add_argument(
         "--ignore-missing",
-        action="store_true",
+        nargs="*",
+        type=str,
         help="Do not fail when some dependencies are not found.")
     parser.add_argument(
         "--no-recurse",
diff --git a/pkgs/build-support/setup-hooks/auto-patchelf.sh b/pkgs/build-support/setup-hooks/auto-patchelf.sh
index 9822674196ae0..b56f9ce2dbf4c 100644
--- a/pkgs/build-support/setup-hooks/auto-patchelf.sh
+++ b/pkgs/build-support/setup-hooks/auto-patchelf.sh
@@ -53,10 +53,18 @@ autoPatchelf() {
         esac
     done
 
+    local ignoreMissingDepsArray=($autoPatchelfIgnoreMissingDeps)
+    if [ "$autoPatchelfIgnoreMissingDeps" == "1" ]; then
+        echo "autoPatchelf: WARNING: setting 'autoPatchelfIgnoreMissingDeps" \
+             "= true;' is deprecated and will be removed in a future release." \
+             "Use 'autoPatchelfIgnoreMissingDeps = [ \"*\" ];' instead." >&2
+        ignoreMissingDepsArray=( "*" )
+    fi
+
     local runtimeDependenciesArray=($runtimeDependencies)
     @pythonInterpreter@ @autoPatchelfScript@                            \
         ${norecurse:+--no-recurse}                                      \
-        ${autoPatchelfIgnoreMissingDeps:+--ignore-missing}              \
+        --ignore-missing "${ignoreMissingDepsArray[@]}"                 \
         --paths "$@"                                                    \
         --libs "${autoPatchelfLibs[@]}"                                 \
                "${extraAutoPatchelfLibs[@]}"                            \
diff --git a/pkgs/build-support/setup-hooks/copy-desktop-items.sh b/pkgs/build-support/setup-hooks/copy-desktop-items.sh
index b5c5ed81eb970..313ebc9803445 100644
--- a/pkgs/build-support/setup-hooks/copy-desktop-items.sh
+++ b/pkgs/build-support/setup-hooks/copy-desktop-items.sh
@@ -28,14 +28,15 @@ copyDesktopItems() {
         return
     fi
 
+    applications="${!outputBin}/share/applications"
     for desktopItem in $desktopItems; do
         if [[ -f "$desktopItem" ]]; then
-            echo "Copying '$desktopItem' into '$out/share/applications'"
-            install -D -m 444 -t "$out"/share/applications "$desktopItem"
+            echo "Copying '$desktopItem' into '${applications}'"
+            install -D -m 444 -t "${applications}" "$desktopItem"
         else
             for f in "$desktopItem"/share/applications/*.desktop; do
-                echo "Copying '$f' into '$out/share/applications'"
-                install -D -m 444 -t "$out"/share/applications "$f"
+                echo "Copying '$f' into '${applications}'"
+                install -D -m 444 -t "${applications}" "$f"
             done
         fi
     done
diff --git a/pkgs/build-support/setup-hooks/desktop-to-darwin-bundle.sh b/pkgs/build-support/setup-hooks/desktop-to-darwin-bundle.sh
index d54af90b68888..74c8f6d0b3334 100644
--- a/pkgs/build-support/setup-hooks/desktop-to-darwin-bundle.sh
+++ b/pkgs/build-support/setup-hooks/desktop-to-darwin-bundle.sh
@@ -163,7 +163,7 @@ convertIconTheme() {
     }
 
     iconsdir=$(getIcons "$sharePath" "apps/${iconName}" "$theme")
-    if [[ -n "$(ls -1 "$iconsdir/"*)" ]]; then
+    if [[ -n "$(ls -A1 "$iconsdir")" ]]; then
         icnsutil compose --toc "$out/${iconName}.icns" "$iconsdir/"*
     else
         echo "Warning: no icons were found. Creating an empty icon for ${iconName}.icns."
@@ -171,21 +171,41 @@ convertIconTheme() {
     fi
 }
 
+processExecFieldCodes() {
+  local -r file=$1
+  local -r execRaw=$(getDesktopParam "${file}" "Exec")
+  local -r execNoK="${execRaw/\%k/${file}}"
+  local -r execNoKC="${execNoK/\%c/$(getDesktopParam "${file}" "Name")}"
+  local -r icon=$(getDesktopParam "${file}" "Icon")
+  local -r execNoKCI="${execNoKC/\%i/${icon:+--icon }${icon}}"
+  local -r execNoKCIfu="${execNoKCI/\%[fu]/\$1}"
+  local -r exec="${execNoKCIfu/\%[FU]/\$@}"
+  if [[ "$exec" != "$execRaw" ]]; then
+    echo 1>&2 "desktopToDarwinBundle: Application bundles do not understand desktop entry field codes. Changed '$execRaw' to '$exec'."
+  fi
+  echo "$exec"
+}
+
 # For a given .desktop file, generate a darwin '.app' bundle for it.
 convertDesktopFile() {
     local -r file=$1
     local -r sharePath=$(dirname "$(dirname "$file")")
     local -r name=$(getDesktopParam "${file}" "^Name")
-    local -r exec=$(getDesktopParam "${file}" "Exec")
+    local -r macOSExec=$(getDesktopParam "${file}" "X-macOS-Exec")
+    if [[ "$macOSExec" ]]; then
+      local -r exec="$macOSExec"
+    else
+      local -r exec=$(processExecFieldCodes "${file}")
+    fi
     local -r iconName=$(getDesktopParam "${file}" "^Icon")
     local -r squircle=$(getDesktopParam "${file}" "X-macOS-SquircleIcon")
 
-    mkdir -p "$out/Applications/${name}.app/Contents/MacOS"
-    mkdir -p "$out/Applications/${name}.app/Contents/Resources"
+    mkdir -p "${!outputBin}/Applications/${name}.app/Contents/MacOS"
+    mkdir -p "${!outputBin}/Applications/${name}.app/Contents/Resources"
 
-    convertIconTheme "$out/Applications/${name}.app/Contents/Resources" "$sharePath" "$iconName"
+    convertIconTheme "${!outputBin}/Applications/${name}.app/Contents/Resources" "$sharePath" "$iconName"
 
-    write-darwin-bundle "$out" "$name" "$exec" "$iconName" "$squircle"
+    write-darwin-bundle "${!outputBin}" "$name" "$exec" "$iconName" "$squircle"
 }
 
 convertDesktopFiles() {
diff --git a/pkgs/build-support/setup-hooks/make-wrapper.sh b/pkgs/build-support/setup-hooks/make-wrapper.sh
index fa60658328941..7d598956168c9 100644
--- a/pkgs/build-support/setup-hooks/make-wrapper.sh
+++ b/pkgs/build-support/setup-hooks/make-wrapper.sh
@@ -18,6 +18,7 @@ assertExecutable() {
 # --set-default VAR VAL : like --set, but only adds VAR if not already set in
 #                         the environment
 # --unset       VAR     : remove VAR from the environment
+# --chdir       DIR     : change working directory (use instead of --run "cd DIR")
 # --run         COMMAND : run command before the executable
 # --add-flags   FLAGS   : add FLAGS to invocation of executable
 
@@ -126,6 +127,10 @@ makeWrapper() {
             varName="${params[$((n + 1))]}"
             n=$((n + 1))
             echo "unset $varName" >> "$wrapper"
+        elif [[ "$p" == "--chdir" ]]; then
+            dir="${params[$((n + 1))]}"
+            n=$((n + 1))
+            echo "cd ${dir@Q}" >> "$wrapper"
         elif [[ "$p" == "--run" ]]; then
             command="${params[$((n + 1))]}"
             n=$((n + 1))
diff --git a/pkgs/build-support/setup-hooks/postgresql-test-hook/default.nix b/pkgs/build-support/setup-hooks/postgresql-test-hook/default.nix
new file mode 100644
index 0000000000000..d0031c93c10cb
--- /dev/null
+++ b/pkgs/build-support/setup-hooks/postgresql-test-hook/default.nix
@@ -0,0 +1,9 @@
+{ callPackage, makeSetupHook }:
+
+(makeSetupHook {
+  name = "postgresql-test-hook";
+} ./postgresql-test-hook.sh).overrideAttrs (o: {
+  passthru.tests = {
+    simple = callPackage ./test.nix { };
+  };
+})
diff --git a/pkgs/build-support/setup-hooks/postgresql-test-hook/postgresql-test-hook.sh b/pkgs/build-support/setup-hooks/postgresql-test-hook/postgresql-test-hook.sh
new file mode 100644
index 0000000000000..041a3f5653325
--- /dev/null
+++ b/pkgs/build-support/setup-hooks/postgresql-test-hook/postgresql-test-hook.sh
@@ -0,0 +1,79 @@
+preCheckHooks+=('postgresqlStart')
+postCheckHooks+=('postgresqlStop')
+
+
+postgresqlStart() {
+
+  # Add default environment variable values
+  #
+  # Client variables:
+  #  - https://www.postgresql.org/docs/current/libpq-envars.html
+  #
+  # Server variables:
+  #  - only PGDATA: https://www.postgresql.org/docs/current/creating-cluster.html
+
+  if [[ "${PGDATA:-}" == "" ]]; then
+    PGDATA="$NIX_BUILD_TOP/postgresql"
+  fi
+  export PGDATA
+
+  if [[ "${PGHOST:-}" == "" ]]; then
+    mkdir -p "$NIX_BUILD_TOP/run/postgresql"
+    PGHOST="$NIX_BUILD_TOP/run/postgresql"
+  fi
+  export PGHOST
+
+  if [[ "${PGUSER:-}" == "" ]]; then
+    PGUSER="test_user"
+  fi
+  export PGUSER
+
+  if [[ "${PGDATABASE:-}" == "" ]]; then
+    PGDATABASE="test_db"
+  fi
+  export PGDATABASE
+
+  if [[ "${postgresqlTestUserOptions:-}" == "" ]]; then
+    postgresqlTestUserOptions="LOGIN"
+  fi
+
+  if [[ "${postgresqlTestSetupSQL:-}" == "" ]]; then
+    postgresqlTestSetupSQL="$(cat <<EOF
+      CREATE ROLE "$PGUSER" $postgresqlTestUserOptions;
+      CREATE DATABASE "$PGDATABASE" OWNER '$PGUSER';
+EOF
+    )"
+  fi
+
+  if [[ "${postgresqlTestSetupCommands:-}" == "" ]]; then
+    postgresqlTestSetupCommands='echo "$postgresqlTestSetupSQL" | PGUSER=postgres psql postgres'
+  fi
+
+  if ! type initdb >/dev/null; then
+    echo >&2 'initdb not found. Did you add postgresql to the checkInputs?'
+    false
+  fi
+  header 'initializing postgresql'
+  initdb -U postgres
+
+  # Move the socket
+  echo "unix_socket_directories = '$NIX_BUILD_TOP/run/postgresql'" >>"$PGDATA/postgresql.conf"
+
+  # TCP ports can be a problem in some sandboxes,
+  # so we disable tcp listening by default
+  if ! [[ "${postgresqlEnableTCP:-}" = 1 ]]; then
+    echo "listen_addresses = ''" >>"$PGDATA/postgresql.conf"
+  fi
+
+  header 'starting postgresql'
+  eval "${postgresqlStartCommands:-pg_ctl start}"
+
+  header 'setting up postgresql'
+  eval "$postgresqlTestSetupCommands"
+
+}
+
+postgresqlStop() {
+  header 'stopping postgresql'
+  pg_ctl stop
+}
diff --git a/pkgs/build-support/setup-hooks/postgresql-test-hook/test.nix b/pkgs/build-support/setup-hooks/postgresql-test-hook/test.nix
new file mode 100644
index 0000000000000..6d8ad6c8c7e33
--- /dev/null
+++ b/pkgs/build-support/setup-hooks/postgresql-test-hook/test.nix
@@ -0,0 +1,27 @@
+{ postgresql, postgresqlTestHook, stdenv }:
+
+stdenv.mkDerivation {
+  name = "postgresql-test-hook-test";
+  buildInputs = [ postgresqlTestHook ];
+  checkInputs = [ postgresql ];
+  dontUnpack = true;
+  doCheck = true;
+  passAsFile = ["sql"];
+  sql = ''
+    CREATE TABLE hello (
+      message text
+    );
+    INSERT INTO hello VALUES ('it '||'worked');
+    SELECT * FROM hello;
+  '';
+  checkPhase = ''
+    runHook preCheck
+    psql <$sqlPath | grep 'it worked'
+    TEST_RAN=1
+    runHook postCheck
+  '';
+  installPhase = ''
+    [[ $TEST_RAN == 1 ]]
+    touch $out
+  '';
+}
diff --git a/pkgs/build-support/setup-hooks/wrap-gapps-hook/wrap-gapps-hook.sh b/pkgs/build-support/setup-hooks/wrap-gapps-hook/wrap-gapps-hook.sh
index 1a46e075dbe76..0acf4a8e6f8d4 100644
--- a/pkgs/build-support/setup-hooks/wrap-gapps-hook/wrap-gapps-hook.sh
+++ b/pkgs/build-support/setup-hooks/wrap-gapps-hook/wrap-gapps-hook.sh
@@ -14,10 +14,6 @@ gappsWrapperArgsHook() {
         gappsWrapperArgs+=(--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE")
     fi
 
-    if [ -n "$XDG_ICON_DIRS" ]; then
-        gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS")
-    fi
-
     if [ -n "$GSETTINGS_SCHEMAS_PATH" ]; then
         gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH")
     fi
diff --git a/pkgs/build-support/testers/default.nix b/pkgs/build-support/testers/default.nix
new file mode 100644
index 0000000000000..8b79843b8332f
--- /dev/null
+++ b/pkgs/build-support/testers/default.nix
@@ -0,0 +1,18 @@
+{ pkgs, lib, callPackage, runCommand }:
+# Documentation is in doc/builders/testers.chapter.md
+{
+  testEqualDerivation = callPackage ./test-equal-derivation.nix { };
+
+  testVersion =
+    { package,
+      command ? "${package.meta.mainProgram or package.pname or package.name} --version",
+      version ? package.version,
+    }: runCommand "${package.name}-test-version" { nativeBuildInputs = [ package ]; meta.timeout = 60; } ''
+      if output=$(${command} 2>&1); then
+        grep -Fw "${version}" - <<< "$output"
+        touch $out
+      else
+        echo "$output" >&2 && exit 1
+      fi
+    '';
+}
diff --git a/pkgs/build-support/test-equal-derivation.nix b/pkgs/build-support/testers/test-equal-derivation.nix
index 5d2185ce16525..610d5f5855760 100644
--- a/pkgs/build-support/test-equal-derivation.nix
+++ b/pkgs/build-support/testers/test-equal-derivation.nix
@@ -1,29 +1,12 @@
 { lib, runCommand, emptyFile, nix-diff }:
 
-/*
-  Checks that two packages produce the exact same build instructions.
-
-  This can be used to make sure that a certain difference of configuration,
-  such as the presence of an overlay does not cause a cache miss.
-
-  When the derivations are equal, the return value is an empty file.
-  Otherwise, the build log explains the difference via `nix-diff`.
-
-  Example:
-
-      testEqualDerivation
-        "The hello package must stay the same when enabling checks."
-        hello
-        (hello.overrideAttrs(o: { doCheck = true; }))
-
-*/
 assertion: a: b:
 let
   drvA = builtins.unsafeDiscardOutputDependency a.drvPath or (throw "testEqualDerivation second argument must be a package");
   drvB = builtins.unsafeDiscardOutputDependency b.drvPath or (throw "testEqualDerivation third argument must be a package");
   name =
     if a?name
-    then lib.strings.sanitizeDerivationName "testEqualDerivation-${a.name}"
+    then "testEqualDerivation-${a.name}"
     else "testEqualDerivation";
 in
 if drvA == drvB then
diff --git a/pkgs/build-support/trivial-builders.nix b/pkgs/build-support/trivial-builders.nix
index 68f0f1bc4ddcb..bd14971fe78b4 100644
--- a/pkgs/build-support/trivial-builders.nix
+++ b/pkgs/build-support/trivial-builders.nix
@@ -70,8 +70,7 @@ rec {
     # name of the resulting derivation
     }: buildCommand:
     stdenv.mkDerivation ({
-      name = lib.strings.sanitizeDerivationName name;
-      inherit buildCommand;
+      inherit buildCommand name;
       passAsFile = [ "buildCommand" ]
         ++ (derivationArgs.passAsFile or []);
     }
@@ -121,7 +120,7 @@ rec {
         allowSubstitutes = false;
       }
       ''
-        target=$out${destination}
+        target=$out${lib.escapeShellArg destination}
         mkdir -p "$(dirname "$target")"
 
         if [ -e "$textPath" ]; then
@@ -516,15 +515,19 @@ rec {
    * # setup hook that depends on the hello package and runs ./myscript.sh
    * myhellohook = makeSetupHook { deps = [ hello ]; } ./myscript.sh;
    *
-   * # wrotes a setup hook where @bash@ myscript.sh is substituted for the
+   * # writes a Linux-exclusive setup hook where @bash@ myscript.sh is substituted for the
    * # bash interpreter.
    * myhellohookSub = makeSetupHook {
    *                 deps = [ hello ];
    *                 substitutions = { bash = "${pkgs.bash}/bin/bash"; };
+   *                 meta.platforms = lib.platforms.linux;
    *               } ./myscript.sh;
    */
-  makeSetupHook = { name ? "hook", deps ? [], substitutions ? {} }: script:
-    runCommand name substitutions
+  makeSetupHook = { name ? "hook", deps ? [], substitutions ? {}, meta ? {} }: script:
+    runCommand name
+      (substitutions // {
+        inherit meta;
+      })
       (''
         mkdir -p $out/nix-support
         cp ${script} $out/nix-support/setup-hook
@@ -781,37 +784,4 @@ rec {
     outputHash = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5";
     preferLocalBuild = true;
   } "mkdir $out";
-
-  /* Checks the command output contains the specified version
-   *
-   * Although simplistic, this test assures that the main program
-   * can run. While there's no substitute for a real test case,
-   * it does catch dynamic linking errors and such. It also provides
-   * some protection against accidentally building the wrong version,
-   * for example when using an 'old' hash in a fixed-output derivation.
-   *
-   * Examples:
-   *
-   * passthru.tests.version = testVersion { package = hello; };
-   *
-   * passthru.tests.version = testVersion {
-   *   package = seaweedfs;
-   *   command = "weed version";
-   * };
-   *
-   * passthru.tests.version = testVersion {
-   *   package = key;
-   *   command = "KeY --help";
-   *   # Wrong '2.5' version in the code. Drop on next version.
-   *   version = "2.5";
-   * };
-   */
-  testVersion =
-    { package,
-      command ? "${package.meta.mainProgram or package.pname or package.name} --version",
-      version ? package.version,
-    }: runCommand "${package.name}-test-version" { nativeBuildInputs = [ package ]; meta.timeout = 60; } ''
-      ${command} |& grep -Fw ${version}
-      touch $out
-    '';
 }
diff --git a/pkgs/build-support/trivial-builders/test/write-text-file.nix b/pkgs/build-support/trivial-builders/test/write-text-file.nix
new file mode 100644
index 0000000000000..ac83a75fca4ab
--- /dev/null
+++ b/pkgs/build-support/trivial-builders/test/write-text-file.nix
@@ -0,0 +1,34 @@
+{ writeTextFile }:
+let
+  veryWeirdName = ''here's a name with some "bad" characters, like spaces and quotes'';
+in writeTextFile {
+  name = "weird-names";
+  destination = "/etc/${veryWeirdName}";
+  text = ''passed!'';
+  checkPhase = ''
+    # intentionally hardcode everything here, to make sure
+    # Nix does not mess with file paths
+
+    name="here's a name with some \"bad\" characters, like spaces and quotes"
+    fullPath="$out/etc/$name"
+
+    if [ -f "$fullPath" ]; then
+      echo "[PASS] File exists!"
+    else
+      echo "[FAIL] File was not created at expected path!"
+      exit 1
+    fi
+
+    content=$(<"$fullPath")
+    expected="passed!"
+
+    if [ "$content" = "$expected" ]; then
+      echo "[PASS] Contents match!"
+    else
+      echo "[FAIL] File contents don't match!"
+      echo "       Expected: $expected"
+      echo "       Got:      $content"
+      exit 2
+    fi
+  '';
+}
diff --git a/pkgs/common-updater/git-updater.nix b/pkgs/common-updater/git-updater.nix
index 304bad9af60ca..b68f4a29011d6 100644
--- a/pkgs/common-updater/git-updater.nix
+++ b/pkgs/common-updater/git-updater.nix
@@ -1,4 +1,5 @@
-{ genericUpdater
+{ lib
+, genericUpdater
 , common-updater-scripts
 }:
 
@@ -9,9 +10,12 @@
 , rev-prefix ? ""
 , odd-unstable ? false
 , patchlevel-unstable ? false
+# an explicit url is needed when src.meta.homepage or src.url don't
+# point to a git repo (eg. when using fetchurl, fetchzip, ...)
+, url ? null
 }:
 
 genericUpdater {
   inherit pname version attrPath ignoredVersions rev-prefix odd-unstable patchlevel-unstable;
-  versionLister = "${common-updater-scripts}/bin/list-git-tags";
+  versionLister = "${common-updater-scripts}/bin/list-git-tags ${lib.optionalString (url != null) "--url=${url}"}";
 }
diff --git a/pkgs/common-updater/scripts/list-git-tags b/pkgs/common-updater/scripts/list-git-tags
index 176e647eb2eaa..86b4949f055d0 100755
--- a/pkgs/common-updater/scripts/list-git-tags
+++ b/pkgs/common-updater/scripts/list-git-tags
@@ -31,7 +31,7 @@ done
 # By default we set url to src.url or src.meta.homepage
 if [[ -z "$url" ]]; then
     url="$(nix-instantiate $systemArg --eval -E \
-               "with import ./. {}; $UPDATE_NIX_ATTR_PATH.src.url or $UPDATE_NIX_ATTR_PATH.src.meta.homepage" \
+               "with import ./. {}; $UPDATE_NIX_ATTR_PATH.src.meta.homepage or $UPDATE_NIX_ATTR_PATH.src.url" \
         | tr -d '"')"
 fi
 
diff --git a/pkgs/data/documentation/scheme-manpages/default.nix b/pkgs/data/documentation/scheme-manpages/default.nix
index 900f28edc8d22..aaa7007d02624 100644
--- a/pkgs/data/documentation/scheme-manpages/default.nix
+++ b/pkgs/data/documentation/scheme-manpages/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "scheme-manpages-unstable";
-  version = "2021-03-11";
+  version = "2022-04-21";
 
   src = fetchFromGitHub {
     owner = "schemedoc";
     repo = "manpages";
-    rev = "d0163a4e29d29b2f0beb762be4095775134f5ef9";
-    sha256 = "0a8f7rq458c7985chwn1qb9yxcwyr0hl39r9vlvm5j687hy3igs2";
+    rev = "e3faaa1b80b3493ee644958a105f84f2995a0436";
+    sha256 = "sha256-28e6tFRTqX/PWMhdoUZ4nQU1e/JL2uR+NjVXGBwogMM=";
   };
 
   dontBuild = true;
diff --git a/pkgs/data/fonts/comic-mono/comic-mono-weight.conf b/pkgs/data/fonts/comic-mono/comic-mono-weight.conf
new file mode 100644
index 0000000000000..97cfa3d83fdfa
--- /dev/null
+++ b/pkgs/data/fonts/comic-mono/comic-mono-weight.conf
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
+<fontconfig>
+    <!-- Fix missing/incorrect font weight data in Comic Mono. -->
+
+    <match target="scan">
+        <test name="fullname">
+            <string>Comic Mono</string>
+        </test>
+        <edit name="weight">
+            <const>book</const>
+        </edit>
+    </match>
+</fontconfig>
diff --git a/pkgs/data/fonts/comic-mono/default.nix b/pkgs/data/fonts/comic-mono/default.nix
new file mode 100644
index 0000000000000..0c915f21c132e
--- /dev/null
+++ b/pkgs/data/fonts/comic-mono/default.nix
@@ -0,0 +1,35 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "2020-12-28";
+in fetchFromGitHub {
+  name = "comic-mono-font-${version}";
+
+  owner = "dtinth";
+  repo = "comic-mono-font";
+  rev = "9a96d04cdd2919964169192e7d9de5012ef66de4";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    tar -z -f $downloadedFile --wildcards -x \*.ttf --one-top-level=$out/share/fonts
+
+    mkdir -p $out/etc/fonts/conf.d
+    ln -s ${./comic-mono-weight.conf} $out/etc/fonts/conf.d/30-comic-mono.conf
+  '';
+
+  hash = "sha256-poMU+WfDZcsyWyFiiXKJ284X22CJlxQIzcJtApnIdAY=";
+
+  meta = with lib; {
+    description = "A legible monospace font that looks like Comic Sans";
+    longDescription = ''
+      A legible monospace font... the very typeface you’ve been trained to
+      recognize since childhood. This font is a fork of Shannon Miwa’s Comic
+      Shanns (version 1).
+    '';
+    homepage = "https://dtinth.github.io/comic-mono-font/";
+
+    license = licenses.mit;
+    maintainers = with maintainers; [ an-empty-string totoroot ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/data/fonts/iosevka/bin.nix b/pkgs/data/fonts/iosevka/bin.nix
index 3ebaf49abebc2..0d8f0a2eb6e7c 100644
--- a/pkgs/data/fonts/iosevka/bin.nix
+++ b/pkgs/data/fonts/iosevka/bin.nix
@@ -30,7 +30,8 @@ in stdenv.mkDerivation rec {
     unzip -d $out/share/fonts/truetype $src
   '';
 
-  meta = iosevka.meta // {
+  meta = {
+    inherit (iosevka.meta) homepage downloadPage description license platforms;
     maintainers = with lib.maintainers; [
       cstrahan
     ];
diff --git a/pkgs/data/fonts/kacst/default.nix b/pkgs/data/fonts/kacst/default.nix
new file mode 100644
index 0000000000000..38f85d2ad0fc3
--- /dev/null
+++ b/pkgs/data/fonts/kacst/default.nix
@@ -0,0 +1,22 @@
+{ fetchzip, lib }:
+
+let
+  version = "2.01";
+in
+fetchzip {
+  name = "kacst-${version}";
+  url = "mirror://debian/pool/main/f/fonts-kacst/fonts-kacst_${version}+mry.orig.tar.bz2";
+  sha256 = "sha256-pIO58CXfmKYRKYJ1oI+tjTwlKBRnkZ/CpIM2Xa0CDA4=";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    tar xjf $downloadedFile --strip-components=1 -C $out/share/fonts
+  '';
+
+  meta = with lib; {
+    description = "KACST Latin-Arabic TrueType fonts";
+    license = licenses.gpl2Only;
+    maintainers = with lib.maintainers; [ serge ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/data/fonts/material-design-icons/default.nix b/pkgs/data/fonts/material-design-icons/default.nix
index 1bf5c6aa4820c..80c887f58913b 100644
--- a/pkgs/data/fonts/material-design-icons/default.nix
+++ b/pkgs/data/fonts/material-design-icons/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub }:
 
 let
-  version = "5.3.45";
+  version = "6.6.96";
 in fetchFromGitHub {
   name = "material-design-icons-${version}";
   owner  = "Templarian";
@@ -16,7 +16,7 @@ in fetchFromGitHub {
     cp fonts/*.woff $out/share/fonts/woff/
     cp fonts/*.woff2 $out/share/fonts/woff2/
   '';
-  sha256 = "1nwha6dbj97ybiwlf69la57l3ibmwgnzs0nr104bfqnqxjs471sx";
+  sha256 = "sha256-rfDb9meTF0Y0kiCQd11SgnntQnw34Ti/IXn35xaPO1M=";
 
   meta = with lib; {
     description = "4600+ Material Design Icons from the Community";
@@ -26,10 +26,7 @@ in fetchFromGitHub {
       color and size they need for any project.
     '';
     homepage = "https://materialdesignicons.com";
-    license = with licenses; [
-      asl20  # for icons from: https://github.com/google/material-design-icons
-      ofl
-    ];
+    license = licenses.asl20;
     platforms = platforms.all;
     maintainers = with maintainers; [ vlaci ];
   };
diff --git a/pkgs/data/fonts/sarasa-gothic/default.nix b/pkgs/data/fonts/sarasa-gothic/default.nix
index 57c356136748d..c9bc0aa7922ba 100644
--- a/pkgs/data/fonts/sarasa-gothic/default.nix
+++ b/pkgs/data/fonts/sarasa-gothic/default.nix
@@ -1,14 +1,14 @@
 { lib, fetchurl, libarchive }:
 
 let
-  version = "0.36.1";
+  version = "0.36.2";
 in fetchurl {
   name = "sarasa-gothic-${version}";
 
   # Use the 'ttc' files here for a smaller closure size.
   # (Using 'ttf' files gives a closure size about 15x larger, as of November 2021.)
   url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${version}/sarasa-gothic-ttc-${version}.7z";
-  sha256 = "sha256-w8PVDvbnHFZF7/X4EzO0IJsEKMC7c+GPng1sn8Q8G14=";
+  sha256 = "sha256-hUQi8mbtQC+peslaz+AVINjELVXseuVi44qbDBtJ+fc=";
 
   recursiveHash = true;
   downloadToTemp = true;
diff --git a/pkgs/data/fonts/sudo/default.nix b/pkgs/data/fonts/sudo/default.nix
index b78880824c745..e1b43e39c6059 100644
--- a/pkgs/data/fonts/sudo/default.nix
+++ b/pkgs/data/fonts/sudo/default.nix
@@ -1,11 +1,11 @@
 { lib, fetchzip }:
 
 let
-  version = "0.63.1";
+  version = "0.64";
 in fetchzip {
   name = "sudo-font-${version}";
   url = "https://github.com/jenskutilek/sudo-font/releases/download/v${version}/sudo.zip";
-  sha256 = "sha256-z/1Y2eJMrQ+43UIt4HWcLwjYs+hfCY/g4iRxJ+yBAqw=";
+  sha256 = "sha256-ewLTeIVY76eq5mHTnjIsJ5Q2CMuBqXJzxvjZTONPsr8=";
 
   postFetch = ''
     mkdir -p $out/share/fonts/
diff --git a/pkgs/data/fonts/times-newer-roman/default.nix b/pkgs/data/fonts/times-newer-roman/default.nix
index 6122883c61560..4bfe358d13ed5 100644
--- a/pkgs/data/fonts/times-newer-roman/default.nix
+++ b/pkgs/data/fonts/times-newer-roman/default.nix
@@ -19,7 +19,7 @@ fetchzip {
     description = "A font that looks just like Times New Roman, except each character is 5-10% wider";
     homepage = "https://timesnewerroman.com/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ samuelgrf ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/data/fonts/unifont/default.nix b/pkgs/data/fonts/unifont/default.nix
index 6de709344b123..808d96ce446d2 100644
--- a/pkgs/data/fonts/unifont/default.nix
+++ b/pkgs/data/fonts/unifont/default.nix
@@ -4,18 +4,16 @@
 
 stdenv.mkDerivation rec {
   pname = "unifont";
-  version = "14.0.02";
+  version = "14.0.03";
 
   ttf = fetchurl {
-    # Unfortunately the 14.0.02 TTF file is not available on the GNU mirror.
-    # Restore this for next version: "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.ttf";
-    url = "https://unifoundry.com/pub/unifont/${pname}-${version}/font-builds/${pname}-${version}.ttf";
-    sha256 = "1c8rdk3xg6j8lrzxddd73jppfgpk253jdkch63rr7n2d7ljp9gc3";
+    url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.ttf";
+    sha256 = "1qyc7nqyhjnarwgpkah52qv7hr0yfzak7084ilrj7z0nii4f5y57";
   };
 
   pcf = fetchurl {
     url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.pcf.gz";
-    sha256 = "0hcl1zihm91xwvh5ds01sybgs0j8zsrrhn4wlz5j6ji99rh797jr";
+    sha256 = "1sgvxpr4ydjnbk70j0lpgxz5x851lmrmxjb5x8lsz0i2hm32jdbc";
   };
 
   nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];
diff --git a/pkgs/data/fonts/unifont_upper/default.nix b/pkgs/data/fonts/unifont_upper/default.nix
index 92e274fe8ff70..84a1742b8439f 100644
--- a/pkgs/data/fonts/unifont_upper/default.nix
+++ b/pkgs/data/fonts/unifont_upper/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "14.0.02";
+  version = "14.0.03";
 in fetchzip rec {
   name = "unifont_upper-${version}";
 
@@ -9,7 +9,7 @@ in fetchzip rec {
 
   postFetch = "install -Dm644 $downloadedFile $out/share/fonts/truetype/unifont_upper.ttf";
 
-  sha256 = "0p1c2kkg20jqddy828yj6sxfwgv8k5gxwmg0cybalrjb0s09kcs8";
+  sha256 = "1lwx7syb9ij4dlqiiybp6xgvar2sszxphvaqh64vivzj9gp0g0ai";
 
   meta = with lib; {
     description = "Unicode font for glyphs above the Unicode Basic Multilingual Plane";
diff --git a/pkgs/data/icons/elementary-xfce-icon-theme/default.nix b/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
index 384086204c1b6..f43206db5f371 100644
--- a/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
+++ b/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-xfce-icon-theme";
-  version = "0.15.2";
+  version = "0.16";
 
   src = fetchFromGitHub {
     owner = "shimmerproject";
     repo = "elementary-xfce";
     rev = "v${version}";
-    sha256 = "sha256-E8f6UU/4Y9Nfk7LjDcdyV+TdeVj/zl3oFCyEu3Gz27w=";
+    sha256 = "sha256-p6HQhYf+rw3obrc6e5lYqC02i4dK+5eXGwnTJj0+D+k=";
   };
 
   nativeBuildInputs = [
@@ -42,6 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     # darwin cannot deal with file names differing only in case
     platforms = platforms.linux;
-    maintainers = with maintainers; [ davidak ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/data/icons/hicolor-icon-theme/default.nix b/pkgs/data/icons/hicolor-icon-theme/default.nix
index 3a8839844f118..4a58b8fb89ad7 100644
--- a/pkgs/data/icons/hicolor-icon-theme/default.nix
+++ b/pkgs/data/icons/hicolor-icon-theme/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "hicolor-icon-theme-0.17";
+  pname = "hicolor-icon-theme";
+  version = "0.17";
 
   src = fetchurl {
-    url = "https://icon-theme.freedesktop.org/releases/${name}.tar.xz";
+    url = "https://icon-theme.freedesktop.org/releases/hicolor-icon-theme-${version}.tar.xz";
     sha256 = "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i";
   };
 
diff --git a/pkgs/data/misc/cacert/default.nix b/pkgs/data/misc/cacert/default.nix
index 4d79521c255c2..ecd8a1c3dfd39 100644
--- a/pkgs/data/misc/cacert/default.nix
+++ b/pkgs/data/misc/cacert/default.nix
@@ -20,7 +20,7 @@ let
   blocklist = writeText "cacert-blocklist.txt" (lib.concatStringsSep "\n" blacklist);
   extraCertificatesBundle = writeText "cacert-extra-certificates-bundle.crt" (lib.concatStringsSep "\n\n" extraCertificateStrings);
 
-  srcVersion = "3.74";
+  srcVersion = "3.77";
   version = if nssOverride != null then nssOverride.version else srcVersion;
   meta = with lib; {
     homepage = "https://curl.haxx.se/docs/caextract.html";
@@ -35,7 +35,7 @@ let
 
     src = if nssOverride != null then nssOverride.src else fetchurl {
       url = "mirror://mozilla/security/nss/releases/NSS_${lib.replaceStrings ["."] ["_"] version}_RTM/src/nss-${version}.tar.gz";
-      sha256 = "0mnhdkm4galhpvfz4rv0918jwmjlwkvcvb1f5va8f3zlz48qi4l8";
+      sha256 = "1pfy33b51914sivqyaxdwfd930hzb77gm07z4f57hnyk5xddypl2";
     };
 
     dontBuild = true;
diff --git a/pkgs/data/misc/cacert/update.sh b/pkgs/data/misc/cacert/update.sh
index 72d581b9650fa..9ad5ede0f7efe 100755
--- a/pkgs/data/misc/cacert/update.sh
+++ b/pkgs/data/misc/cacert/update.sh
@@ -13,14 +13,11 @@
 # As of this writing there are a few magnitudes more packages depending on
 # cacert than on nss.
 #
-# If the current nixpkgs revision contains the attribute `nss_latest` that will
-# be used instead of `nss`. This is done to help the stable branch maintenance
-# where (usually) after branch-off during the first Firefox upgrade that
-# requries a new NSS version that attribute is introduced.
-# By having this change in the unstable branch we can safely carry it from
-# release to release without requiring more backport churn on those doing the
-# stable maintenance.
-
+# We use `nss_latest` instead of `nss_esr`, because that is the newer version
+# and we want up-to-date certificates.
+# `nss_esr` is used for the ecosystem at large through the `nss` attribute,
+# because it is updated less frequently and maintained for longer, whereas `nss_latest`
+# is used for software that actually needs a new nss, e.g. Firefox.
 
 set -ex
 
@@ -28,7 +25,7 @@ BASEDIR="$(dirname "$0")/../../../.."
 
 
 CURRENT_PATH=$(nix-build --no-out-link -A cacert.out)
-PATCHED_PATH=$(nix-build --no-out-link -E "with import $BASEDIR {}; let nss_pkg = pkgs.nss_latest or pkgs.nss; in (cacert.override { nssOverride = nss_pkg; }).out")
+PATCHED_PATH=$(nix-build --no-out-link -E "with import $BASEDIR {}; (cacert.override { nssOverride = nss_latest; }).out")
 
 # Check the hash of the etc subfolder
 # We can't check the entire output as that contains the nix-support folder
@@ -37,6 +34,6 @@ CURRENT_HASH=$(nix-hash "$CURRENT_PATH/etc")
 PATCHED_HASH=$(nix-hash "$PATCHED_PATH/etc")
 
 if [[ "$CURRENT_HASH" !=  "$PATCHED_HASH" ]]; then
-    NSS_VERSION=$(nix-instantiate --json --eval -E "with import $BASEDIR {}; nss.version" | jq -r .)
+    NSS_VERSION=$(nix-instantiate --json --eval -E "with import $BASEDIR {}; nss_latest.version" | jq -r .)
     update-source-version --version-key=srcVersion cacert.src "$NSS_VERSION"
 fi
diff --git a/pkgs/data/misc/cldr-emoji-annotation/default.nix b/pkgs/data/misc/cldr-emoji-annotation/default.nix
deleted file mode 100644
index e51f5639cbc64..0000000000000
--- a/pkgs/data/misc/cldr-emoji-annotation/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, stdenv
-, fetchFromGitHub
-, autoreconfHook
-}:
-
-stdenv.mkDerivation rec {
-  pname = "cldr-emoji-annotation";
-  version = "37.0_13.0_0_2";
-
-  src = fetchFromGitHub {
-    owner = "fujiwarat";
-    repo = "cldr-emoji-annotation";
-    rev = version;
-    sha256 = "0la3h6l58j9jfjvzwz65x56ijx7sppirwpqbqc06if4c2g0kzswj";
-  };
-
-  nativeBuildInputs = [
-    autoreconfHook
-  ];
-
-  meta = with lib; {
-    description = "Emoji annotation files in CLDR";
-    homepage = "https://www.unicode.org/";
-    license = licenses.unicode-dfs-2016;
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/data/misc/dns-root-data/default.nix b/pkgs/data/misc/dns-root-data/default.nix
index aad1fe61c4bf1..e09ff07a9e847 100644
--- a/pkgs/data/misc/dns-root-data/default.nix
+++ b/pkgs/data/misc/dns-root-data/default.nix
@@ -19,7 +19,8 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "dns-root-data-2019-01-11";
+  pname = "dns-root-data";
+  version = "2019-01-11";
 
   buildCommand = ''
     mkdir $out
diff --git a/pkgs/data/misc/freepats/default.nix b/pkgs/data/misc/freepats/default.nix
index 4fe6a5c20fdef..bb8dae0cf6a5b 100644
--- a/pkgs/data/misc/freepats/default.nix
+++ b/pkgs/data/misc/freepats/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "freepats-20060219";
+  pname = "freepats";
+  version = "20060219";
 
   src = fetchurl {
-    url = "https://freepats.zenvoid.org/${name}.tar.bz2";
+    url = "https://freepats.zenvoid.org/freepats-${version}.tar.bz2";
     sha256 = "12iw36rd94zirll96cd5k0va7p5hxmf2shvjlhzihcmjaw8flq82";
   };
 
diff --git a/pkgs/data/misc/hackage/default.nix b/pkgs/data/misc/hackage/default.nix
index e559281303d78..2e8c660d94727 100644
--- a/pkgs/data/misc/hackage/default.nix
+++ b/pkgs/data/misc/hackage/default.nix
@@ -1,10 +1,11 @@
 # Hackage database snapshot, used by maintainers/scripts/regenerate-hackage-packages.sh
 # and callHackage
-{ fetchurl }:
+{ lib, fetchurl }:
 let
   pin = builtins.fromJSON (builtins.readFile ./pin.json);
 in
 fetchurl {
   inherit (pin) url sha256;
+  name = "all-cabal-hashes-${lib.substring 0 7 pin.commit}.tar.gz";
   passthru.updateScript = ../../../../maintainers/scripts/haskell/update-hackage.sh;
 }
diff --git a/pkgs/data/misc/hackage/pin.json b/pkgs/data/misc/hackage/pin.json
index d6138cf231767..13efe11b33db5 100644
--- a/pkgs/data/misc/hackage/pin.json
+++ b/pkgs/data/misc/hackage/pin.json
@@ -1,6 +1,6 @@
 {
-  "commit": "a02557e981025a281de13f66204c2cd2e788732f",
-  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/a02557e981025a281de13f66204c2cd2e788732f.tar.gz",
-  "sha256": "0c6jg9s4p65ynkkk0z6p9q4whz5hs1vmbq8zsn7pavxkzwa8ych1",
-  "msg": "Update from Hackage at 2022-03-30T19:23:57Z"
+  "commit": "e5167f06cba67fa268ebafb97f5ccbffe412cd2a",
+  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/e5167f06cba67fa268ebafb97f5ccbffe412cd2a.tar.gz",
+  "sha256": "1ihkrjk7a24wbzjz4wlx3mdh88bbq4665l1ld7gxs5jaimcmhn5j",
+  "msg": "Update from Hackage at 2022-04-09T11:23:17Z"
 }
diff --git a/pkgs/data/misc/iana-etc/default.nix b/pkgs/data/misc/iana-etc/default.nix
index 5e7e70a1b05d5..cab93d737c348 100644
--- a/pkgs/data/misc/iana-etc/default.nix
+++ b/pkgs/data/misc/iana-etc/default.nix
@@ -1,9 +1,8 @@
 { lib, fetchzip, stdenvNoCC, writeText }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "iana-etc";
   version = "20211124";
-in stdenvNoCC.mkDerivation {
-  name = "iana-etc-${version}";
   src = fetchzip {
     url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz";
     sha256 = "sha256-4mM/ZeGd91e1AklGHFK5UB4llg9IgCo9DKcM0iXcBls=";
diff --git a/pkgs/data/misc/nixos-artwork/wallpapers.nix b/pkgs/data/misc/nixos-artwork/wallpapers.nix
index f8d22637cf3da..4d5f30e94b915 100644
--- a/pkgs/data/misc/nixos-artwork/wallpapers.nix
+++ b/pkgs/data/misc/nixos-artwork/wallpapers.nix
@@ -14,6 +14,22 @@ let
         mkdir -p $out/share/backgrounds/nixos
         ln -s $src $out/share/backgrounds/nixos/${src.name}
 
+        mkdir -p $out/share/gnome-background-properties/
+        cat <<EOF > $out/share/gnome-background-properties/${name}.xml
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">
+<wallpapers>
+  <wallpaper deleted="false">
+    <name>${name}</name>
+    <filename>${src}</filename>
+    <options>zoom</options>
+    <shade_type>solid</shade_type>
+    <pcolor>#ffffff</pcolor>
+    <scolor>#000000</scolor>
+  </wallpaper>
+</wallpapers>
+EOF
+
         # TODO: is this path still needed?
         mkdir -p $out/share/artwork/gnome
         ln -s $src $out/share/artwork/gnome/${src.name}
diff --git a/pkgs/data/misc/shared-mime-info/default.nix b/pkgs/data/misc/shared-mime-info/default.nix
index 2feb5e2f5a471..a2d2849bac1e5 100644
--- a/pkgs/data/misc/shared-mime-info/default.nix
+++ b/pkgs/data/misc/shared-mime-info/default.nix
@@ -51,5 +51,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = teams.freedesktop.members ++ [ maintainers.mimame ];
+    mainProgram = "update-mime-database";
   };
 }
diff --git a/pkgs/data/misc/tzdata/default.nix b/pkgs/data/misc/tzdata/default.nix
index 78c93b05033ef..b149f448da72e 100644
--- a/pkgs/data/misc/tzdata/default.nix
+++ b/pkgs/data/misc/tzdata/default.nix
@@ -2,16 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "tzdata";
-  version = "2021e";
+  version = "2022a";
 
   srcs =
     [ (fetchurl {
         url = "https://data.iana.org/time-zones/releases/tzdata${version}.tar.gz";
-        sha256 = "1cdjdcxl0s9xf0dg1z64kh7llm80byxqlzrkkjzcdlyh6yvl5v07";
+        sha256 = "0r0nhwpk9nyxj5kkvjy58nr5d85568m04dcb69c4y3zmykczyzzg";
       })
       (fetchurl {
         url = "https://data.iana.org/time-zones/releases/tzcode${version}.tar.gz";
-        sha256 = "0x8pcfmjvxk29yfh8bklchv2f0vpl4yih0gc4wyx292l78wncijq";
+        sha256 = "1iysv8fdkm79k8wh8jizmjmq075q4qjhk090vxjy57my6dz5wmzq";
       })
     ];
 
diff --git a/pkgs/data/misc/wireless-regdb/default.nix b/pkgs/data/misc/wireless-regdb/default.nix
index 2a729c7aa2fc1..9479f5bdce5e2 100644
--- a/pkgs/data/misc/wireless-regdb/default.nix
+++ b/pkgs/data/misc/wireless-regdb/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wireless-regdb";
-  version = "2021.08.28";
+  version = "2022.02.18";
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/network/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-z/NwxBDR5tMWrgp/qKxieP3x78pdPWZKynz9Kq+lREY=";
+    sha256 = "sha256-iCjCWk7iUCAEQAT1c3S7nerIUoCfrXD409AXcL+ayX8=";
   };
 
   dontBuild = true;
diff --git a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/default.nix b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/default.nix
index 1c6e57b3e7a73..6be2e89dcd2ef 100644
--- a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/default.nix
+++ b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/default.nix
@@ -1,10 +1,11 @@
 {lib, stdenv, fetchurl}:
 
-stdenv.mkDerivation {
-  name = "docbook-xml-ebnf-1.2b1";
+stdenv.mkDerivation rec {
+  pname = "docbook-xml-ebnf";
+  version = "1.2b1";
 
   dtd = fetchurl {
-    url = "http://www.docbook.org/xml/ebnf/1.2b1/dbebnf.dtd";
+    url = "https://docbook.org/xml/ebnf/${version}/dbebnf.dtd";
     sha256 = "0min5dsc53my13b94g2yd65q1nkjcf4x1dak00bsc4ckf86mrx95";
   };
   catalog = ./docbook-ebnf.cat;
diff --git a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix
index 8a10defa0fb53..c367e2a1d0cdf 100644
--- a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix
+++ b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix
@@ -1,27 +1,22 @@
 {lib, stdenv, fetchurl, unzip, findXMLCatalogs}:
 
 let
-
   # Urgh, DocBook 4.1.2 doesn't come with an XML catalog.  Use the one
   # from 4.2.
   docbook42catalog = fetchurl {
-    url = "http://www.docbook.org/xml/4.2/catalog.xml";
+    url = "https://docbook.org/xml/4.2/catalog.xml";
     sha256 = "18lhp6q2l0753s855r638shkbdwq9blm6akdjsc9nrik24k38j17";
   };
-
 in
 
 import ./generic.nix {
   inherit lib stdenv unzip findXMLCatalogs;
-  name = "docbook-xml-4.1.2";
+  version = "4.1.2";
   src = fetchurl {
-    url = "http://www.docbook.org/xml/4.1.2/docbkx412.zip";
+    url = "https://docbook.org/xml/4.1.2/docbkx412.zip";
     sha256 = "0wkp5rvnqj0ghxia0558mnn4c7s3n501j99q2isp3sp0ci069w1h";
   };
   postInstall = "
     sed 's|V4.2|V4.1.2|g' < ${docbook42catalog} > catalog.xml
   ";
-  meta = {
-    branch = "4.1.2";
-  };
 }
diff --git a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix
index 9a9abc0588bd9..8f778ea7505d9 100644
--- a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix
+++ b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix
@@ -2,12 +2,9 @@
 
 import ./generic.nix {
   inherit lib stdenv unzip findXMLCatalogs;
-  name = "docbook-xml-4.2";
+  version = "4.2";
   src = fetchurl {
-    url = "http://www.docbook.org/xml/4.2/docbook-xml-4.2.zip";
+    url = "https://docbook.org/xml/4.2/docbook-xml-4.2.zip";
     sha256 = "acc4601e4f97a196076b7e64b368d9248b07c7abf26b34a02cca40eeebe60fa2";
   };
-  meta = {
-    branch = "4.2";
-  };
 }
diff --git a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix
index 4d821ce2ffb85..a58370ec4ac66 100644
--- a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix
+++ b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix
@@ -2,12 +2,9 @@
 
 import ./generic.nix {
   inherit lib stdenv unzip findXMLCatalogs;
-  name = "docbook-xml-4.3";
+  version = "4.3";
   src = fetchurl {
-    url = "http://www.docbook.org/xml/4.3/docbook-xml-4.3.zip";
+    url = "https://docbook.org/xml/4.3/docbook-xml-4.3.zip";
     sha256 = "0r1l2if1z4wm2v664sqdizm4gak6db1kx9y50jq89m3gxaa8l1i3";
   };
-  meta = {
-    branch = "4.3";
-  };
 }
diff --git a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.4.nix b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.4.nix
index ca847d3e436ea..3b46fe81bd7a8 100644
--- a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.4.nix
+++ b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.4.nix
@@ -2,12 +2,9 @@
 
 import ./generic.nix {
   inherit lib stdenv unzip findXMLCatalogs;
-  name = "docbook-xml-4.4";
+  version = "4.4";
   src = fetchurl {
-    url = "http://www.docbook.org/xml/4.4/docbook-xml-4.4.zip";
+    url = "https://docbook.org/xml/4.4/docbook-xml-4.4.zip";
     sha256 = "141h4zsyc71sfi2zzd89v4bb4qqq9ca1ri9ix2als9f4i3mmkw82";
   };
-  meta = {
-    branch = "4.4";
-  };
 }
diff --git a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix
index 7be810fe30712..c4ab1f6f3a9bd 100644
--- a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix
+++ b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix
@@ -2,12 +2,9 @@
 
 import ./generic.nix {
   inherit lib stdenv unzip findXMLCatalogs;
-  name = "docbook-xml-4.5";
+  version = "4.5";
   src = fetchurl {
-    url = "http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip";
+    url = "https://docbook.org/xml/4.5/docbook-xml-4.5.zip";
     sha256 = "1d671lcjckjri28xfbf6dq7y3xnkppa910w1jin8rjc35dx06kjf";
   };
-  meta = {
-    branch = "4.5";
-  };
 }
diff --git a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/generic.nix b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/generic.nix
index 3d6edd300ec35..7a635f612af8f 100644
--- a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/generic.nix
+++ b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/generic.nix
@@ -1,9 +1,10 @@
-{ lib, stdenv, unzip, src, name, postInstall ? "true", meta ? {}, findXMLCatalogs }:
+{ lib, stdenv, unzip, src, version, postInstall ? "true", findXMLCatalogs }:
 
 stdenv.mkDerivation {
-  inherit src name postInstall;
+  inherit version src postInstall;
+  pname = "docbook-xml";
 
-  nativeBuildInputs = [unzip];
+  nativeBuildInputs = [ unzip ];
   propagatedNativeBuildInputs = [ findXMLCatalogs ];
 
   unpackPhase = ''
@@ -17,7 +18,8 @@ stdenv.mkDerivation {
     runHook postInstall
   '';
 
-  meta = meta // {
+  meta = {
+    branch = version;
     platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix b/pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix
index c698098e6c127..f05788076a69d 100644
--- a/pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix
+++ b/pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, libxml2 }:
 
 stdenv.mkDerivation {
-  name = "xhtml1-20020801";
+  pname = "xhtml1";
+  version = "unstable-2002-08-01";
 
   src = fetchurl {
-    url = "http://www.w3.org/TR/xhtml1/xhtml1.tgz";
+    url = "https://www.w3.org/TR/xhtml1/xhtml1.tgz";
     sha256 = "0rr0d89i0z75qvjbm8il93bippx09hbmjwy0y2sj44n9np69x3hl";
   };
 
diff --git a/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix b/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix
index 735dfdb4f81b3..2f9d22e57d89e 100644
--- a/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix
+++ b/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, substituteAll, fetchurl, fetchpatch, findXMLCatalogs, writeScriptBin, ruby, bash }:
+{ lib, stdenv, substituteAll, fetchurl, fetchpatch, findXMLCatalogs, writeScriptBin, ruby, bash, withManOptDedupPatch ? false }:
 
 let
 
@@ -36,6 +36,10 @@ let
           src = ./catalog-legacy-uris.patch;
           inherit legacySuffix suffix version;
         })
+      ] ++ lib.optionals withManOptDedupPatch [
+        # Fixes https://github.com/NixOS/nixpkgs/issues/166304
+        # https://github.com/docbook/xslt10-stylesheets/pull/241
+        ./fix-man-options-duplication.patch
       ];
 
       propagatedBuildInputs = [ findXMLCatalogs ];
diff --git a/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/fix-man-options-duplication.patch b/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/fix-man-options-duplication.patch
new file mode 100644
index 0000000000000..304d9781e6aab
--- /dev/null
+++ b/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/fix-man-options-duplication.patch
@@ -0,0 +1,11 @@
+--- a/manpages/lists.xsl
++++ b/manpages/lists.xsl
+@@ -110,7 +110,7 @@
+   <xsl:text>.RE&#10;</xsl:text>
+ </xsl:template>
+ 
+-<xsl:template match="d:varlistentry/d:term"/>
++<xsl:template match="d:varlistentry/d:term" priority="1"/>
+ <xsl:template match="d:glossentry/d:glossterm"/>
+ 
+ <xsl:template match="d:variablelist[ancestor::d:listitem or ancestor::d:step or ancestor::d:glossdef]|
diff --git a/pkgs/data/themes/arc/default.nix b/pkgs/data/themes/arc/default.nix
index 11e76c202764c..ef05338cf5aef 100644
--- a/pkgs/data/themes/arc/default.nix
+++ b/pkgs/data/themes/arc/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "arc-theme";
-  version = "20220223";
+  version = "20220405";
 
   src = fetchFromGitHub {
     owner = "jnsh";
     repo = pname;
     rev = version;
-    sha256 = "sha256-qsZdXDNxT1/gIlkUsC1cfVrULApC+dHreBXXjVTJQiA=";
+    sha256 = "sha256-CBj/SpBWH5xdNCQSJquqIntcmfARI7Cud76Tp8txXL4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/themes/flat-remix-gnome/default.nix b/pkgs/data/themes/flat-remix-gnome/default.nix
index c5647094d8ffd..178a761d957c5 100644
--- a/pkgs/data/themes/flat-remix-gnome/default.nix
+++ b/pkgs/data/themes/flat-remix-gnome/default.nix
@@ -7,25 +7,25 @@
 let
   # make install will use dconf to find desktop background file uri.
   # consider adding an args to allow specify pictures manually.
-  # https://github.com/daniruiz/flat-remix-gnome/blob/20211223/Makefile#L38
+  # https://github.com/daniruiz/flat-remix-gnome/blob/20220407/Makefile#L38
   fake-dconf = writeScriptBin "dconf" "echo -n";
 in
 stdenv.mkDerivation rec {
   pname = "flat-remix-gnome";
-  version = "20211223";
+  version = "20220407";
 
   src = fetchFromGitHub {
     owner = "daniruiz";
     repo = pname;
     rev = version;
-    hash = "sha256-hAehJNDr8r0Jhhz0h7ygXI08ouNiWDT16SPm49i90lM=";
+    hash = "sha256-Q54uF49NbvupN6LH80bgRtvyW7Cqm9vqsWXDkQrF4HQ=";
   };
 
   nativeBuildInputs = [ glib fake-dconf ];
   makeFlags = [ "PREFIX=$(out)" ];
   preInstall = ''
     # make install will back up this file, it will fail if the file doesn't exist.
-    # https://github.com/daniruiz/flat-remix-gnome/blob/20211223/Makefile#L56
+    # https://github.com/daniruiz/flat-remix-gnome/blob/20220407/Makefile#L56
     mkdir -p $out/share/gnome-shell/
     touch $out/share/gnome-shell/gnome-shell-theme.gresource
   '';
diff --git a/pkgs/data/themes/flat-remix-gtk/default.nix b/pkgs/data/themes/flat-remix-gtk/default.nix
index ec76d48457c56..177e606a0e6bd 100644
--- a/pkgs/data/themes/flat-remix-gtk/default.nix
+++ b/pkgs/data/themes/flat-remix-gtk/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flat-remix-gtk";
-  version = "20220321";
+  version = "20220330";
 
   src = fetchFromGitHub {
     owner = "daniruiz";
     repo = pname;
     rev = version;
-    sha256 = "sha256-QFG/jh3tPO0eflyDQaC1PJL/SavYD/W6rYp26Rxe/2E=";
+    sha256 = "sha256-TRBjttAYpx3M/Qza6N9dJy50vQtUOJGmdLNdobnAt2Y=";
   };
 
   dontBuild = true;
diff --git a/pkgs/data/themes/gnome-breeze/default.nix b/pkgs/data/themes/gnome-breeze/default.nix
deleted file mode 100644
index 38733590a34e7..0000000000000
--- a/pkgs/data/themes/gnome-breeze/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, stdenv, fetchFromGitHub }:
-
-stdenv.mkDerivation {
-  pname = "gnome-breeze";
-  version = "unstable-2016-05-26";
-
-  src = fetchFromGitHub {
-    owner = "dirruk1";
-    repo = "gnome-breeze";
-    rev = "49a5cd67a270e13a4c04a4b904f126ef728e9221";
-    sha256 = "sha256-lQYVOhFBDOYT+glUHleuymGTfHEE5bIyqUFnS/EDc0I=";
-  };
-
-  installPhase = ''
-    mkdir -p $out/share/themes
-    cp -r Breeze* $out/share/themes
-  '';
-
-  preferLocalBuild = true;
-
-  meta = with lib; {
-    description = "A GTK theme built to match KDE's breeze theme";
-    homepage = "https://github.com/dirruk1/gnome-breeze";
-    license = licenses.lgpl2;
-    maintainers = with maintainers; [ bennofs ];
-    platforms = platforms.all;
-    hydraPlatforms = [];
-  };
-}
diff --git a/pkgs/data/themes/yaru/default.nix b/pkgs/data/themes/yaru/default.nix
index a27370b963683..18c471e4f96b1 100644
--- a/pkgs/data/themes/yaru/default.nix
+++ b/pkgs/data/themes/yaru/default.nix
@@ -16,21 +16,18 @@
 
 stdenv.mkDerivation rec {
   pname = "yaru";
-  version = "22.04.3.1";
+  version = "22.04.4";
 
   src = fetchFromGitHub {
     owner = "ubuntu";
     repo = "yaru";
     rev = version;
-    sha256 = "sha256-nNI6Nm3ZpIJRTbIbe/P9cKofcthb6qWKjn81/ZpPo2g=";
+    sha256 = "sha256-EnlzjJDbiMIImn0XmiurK++JnD/kBqv4Mw6B/ps8d4Y=";
   };
 
   nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
-
   buildInputs = [ gtk3 gnome.gnome-themes-extra ];
-
   propagatedBuildInputs = [ humanity-icon-theme hicolor-icon-theme ];
-
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
   dontDropIconThemeCache = true;
diff --git a/pkgs/desktops/cdesktopenv/default.nix b/pkgs/desktops/cdesktopenv/default.nix
index 77650e71ebe9b..b506ed3663b91 100644
--- a/pkgs/desktops/cdesktopenv/default.nix
+++ b/pkgs/desktops/cdesktopenv/default.nix
@@ -56,6 +56,19 @@ in stdenv.mkDerivation rec {
     "LOCALE_ARCHIVE=${glibcLocales}/lib/locale/locale-archive"
   ];
 
+  preConfigure = ''
+    # binutils 2.37 fix
+    fixupList=(
+      "config/cf/Imake.tmpl"
+      "config/util/crayar.sh"
+      "config/util/crayar.sh"
+      "programs/dtwm/Makefile.tmpl"
+    )
+    for toFix in "''${fixupList[@]}"; do
+      substituteInPlace "$toFix" --replace "clq" "cq"
+    done
+  '';
+
   preBuild = ''
     while IFS= read -r -d ''$'\0' i; do
       substituteInPlace "$i" --replace /usr/dt $out/opt/dt
diff --git a/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix b/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix
index 1e7d726d557c6..0c636ffa54177 100644
--- a/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix
+++ b/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix
@@ -5,11 +5,11 @@ with lib;
 let
   inherit (python2.pkgs) python pygobject2 pygtk dbus-python;
 in stdenv.mkDerivation rec {
-  version = "2.28";
-  name = "gnome-python-${version}.1";
+  pname = "gnome-python";
+  version = "2.28.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-python/${version}/${name}.tar.bz2";
+    url = "mirror://gnome/sources/gnome-python/${lib.versions.majorMinor version}/gnome-python-${version}.tar.bz2";
     sha256 = "759ce9344cbf89cf7f8449d945822a0c9f317a494f56787782a901e4119b96d8";
   };
 
@@ -20,7 +20,7 @@ in stdenv.mkDerivation rec {
   # gnome-python expects that .pth file is already installed by PyGTK in the
   # same directory. This is not the case for Nix.
   postInstall = ''
-    echo "gtk-2.0" > $out/${python2.sitePackages}/${name}.pth
+    echo "gtk-2.0" > $out/${python2.sitePackages}/gnome-python-${version}.pth
   '';
 
   meta = with lib; {
diff --git a/pkgs/desktops/gnome-2/desktop/scrollkeeper/default.nix b/pkgs/desktops/gnome-2/desktop/scrollkeeper/default.nix
index 258789140c8d5..521800b4aa07d 100644
--- a/pkgs/desktops/gnome-2/desktop/scrollkeeper/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/scrollkeeper/default.nix
@@ -1,9 +1,11 @@
-{stdenv, fetchurl, pkg-config, perlPackages, libxml2, libxslt, docbook_xml_dtd_42, automake, gettext}:
+{ lib, stdenv, fetchurl, pkg-config, perlPackages, libxml2, libxslt, docbook_xml_dtd_42, automake, gettext }:
+
+stdenv.mkDerivation rec {
+  pname = "scrollkeeper";
+  version = "0.3.14";
 
-stdenv.mkDerivation {
-  name = "scrollkeeper-0.3.14";
   src = fetchurl {
-    url = "mirror://gnome/sources/scrollkeeper/0.3/scrollkeeper-0.3.14.tar.bz2";
+    url = "mirror://gnome/sources/scrollkeeper/${lib.versions.majorMinor version}/scrollkeeper-${version}.tar.bz2";
     sha256 = "08n1xgj1f53zahwm0wpn3jid3rfbhi3iwby0ilaaldnid5qriqgc";
   };
 
diff --git a/pkgs/desktops/gnome-2/platform/ORBit2/default.nix b/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
index bf5ae4ebbb1a5..a45095ba49780 100644
--- a/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
+++ b/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, pkg-config, glib, libIDL, libintl }:
 
 stdenv.mkDerivation rec {
-  name = "ORBit2-${minVer}.19";
-  minVer = "2.14";
+  pname = "ORBit2";
+  version = "2.14.19";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/ORBit2/${minVer}/${name}.tar.bz2";
+    url = "mirror://gnome/sources/ORBit2/${lib.versions.majorMinor version}/ORBit2-${version}.tar.bz2";
     sha256 = "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam";
   };
 
diff --git a/pkgs/desktops/gnome-2/platform/gnome-common/default.nix b/pkgs/desktops/gnome-2/platform/gnome-common/default.nix
index 54a2bd526a945..eba913c80c2d9 100644
--- a/pkgs/desktops/gnome-2/platform/gnome-common/default.nix
+++ b/pkgs/desktops/gnome-2/platform/gnome-common/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, which }:
+{ lib, stdenv, fetchurl, which }:
 
 stdenv.mkDerivation rec {
-  name = "gnome-common-${minVer}.0";
-  minVer = "2.34";
+  pname = "gnome-common";
+  version = "2.34.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-common/${minVer}/${name}.tar.bz2";
+    url = "mirror://gnome/sources/gnome-common/${lib.versions.majorMinor version}/gnome-common-${version}.tar.bz2";
     sha256 = "1pz13mpp09q5s3bikm8ml92s1g0scihsm4iipqv1ql3mp6d4z73s";
   };
 
diff --git a/pkgs/desktops/gnome-2/platform/gnome-mime-data/default.nix b/pkgs/desktops/gnome-2/platform/gnome-mime-data/default.nix
index d5af0e362b435..1604dbe0cf08f 100644
--- a/pkgs/desktops/gnome-2/platform/gnome-mime-data/default.nix
+++ b/pkgs/desktops/gnome-2/platform/gnome-mime-data/default.nix
@@ -1,9 +1,10 @@
-{stdenv, fetchurl, intltool}:
+{ lib, stdenv, fetchurl, intltool }:
 
-stdenv.mkDerivation {
-  name = "gnome-mime-data-2.18.0";
+stdenv.mkDerivation rec {
+  pname = "gnome-mime-data";
+  version = "2.18.0";
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-mime-data/2.18/gnome-mime-data-2.18.0.tar.bz2";
+    url = "mirror://gnome/sources/gnome-mime-data/${lib.versions.majorMinor version}/gnome-mime-data-${version}.tar.bz2";
     sha256 = "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p";
   };
   nativeBuildInputs = [ intltool ];
diff --git a/pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix b/pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix
index 4196cf21c2742..4c9f28230c31e 100644
--- a/pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix
+++ b/pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, fetchpatch, pkg-config, libxml2, bzip2, openssl, dbus-glib
+{ lib, stdenv, fetchurl, fetchpatch, pkg-config, libxml2, bzip2, openssl, dbus-glib
 , glib, gamin, cdparanoia, intltool, GConf, gnome_mime_data, avahi, acl }:
 
 stdenv.mkDerivation rec {
-  name = "gnome-vfs-${minVer}.4";
-  minVer = "2.24";
+  pname = "gnome-vfs";
+  version = "2.24.4";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-vfs/${minVer}/${name}.tar.bz2";
+    url = "mirror://gnome/sources/gnome-vfs/${lib.versions.majorMinor version}/gnome-vfs-${version}.tar.bz2";
     sha256 = "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2";
   };
 
diff --git a/pkgs/desktops/gnome-2/platform/gtkhtml/default.nix b/pkgs/desktops/gnome-2/platform/gtkhtml/default.nix
index ec87bafc99808..4f4e0503f819b 100644
--- a/pkgs/desktops/gnome-2/platform/gtkhtml/default.nix
+++ b/pkgs/desktops/gnome-2/platform/gtkhtml/default.nix
@@ -1,11 +1,12 @@
-{ stdenv, fetchurl, pkg-config, gtk2, intltool,
+{ lib, stdenv, fetchurl, pkg-config, gtk2, intltool,
 GConf, enchant, isocodes, gnome-icon-theme }:
 
 stdenv.mkDerivation rec {
-  name = "gtkhtml-3.32.2";
+  pname = "gtkhtml";
+  version = "3.32.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gtkhtml/3.32/${name}.tar.bz2";
+    url = "mirror://gnome/sources/gtkhtml/${lib.versions.majorMinor version}/gtkhtml-${version}.tar.bz2";
     sha256 = "17z3jwvpn8waz7bhwrk7a6vs9pad6sqmlxxcqwvxxq89ywy0ail7";
   };
 
diff --git a/pkgs/desktops/gnome-2/platform/libIDL/default.nix b/pkgs/desktops/gnome-2/platform/libIDL/default.nix
index 4e9376d5c8242..61b21ba88c015 100644
--- a/pkgs/desktops/gnome-2/platform/libIDL/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libIDL/default.nix
@@ -1,11 +1,11 @@
-{stdenv, fetchurl, flex, bison, pkg-config, glib, gettext}:
+{ lib, stdenv, fetchurl, flex, bison, pkg-config, glib, gettext }:
 
 stdenv.mkDerivation rec {
-  name = "libIDL-${minVer}.14";
-  minVer = "0.8";
+  pname = "libIDL";
+  version = "0.8.14";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libIDL/${minVer}/${name}.tar.bz2";
+    url = "mirror://gnome/sources/libIDL/${lib.versions.majorMinor version}/libIDL-${version}.tar.bz2";
     sha256 = "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5";
   };
 
diff --git a/pkgs/desktops/gnome-2/platform/libart_lgpl/default.nix b/pkgs/desktops/gnome-2/platform/libart_lgpl/default.nix
index 7b1ccb97dc4b0..80ea3d02d939c 100644
--- a/pkgs/desktops/gnome-2/platform/libart_lgpl/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libart_lgpl/default.nix
@@ -1,9 +1,10 @@
-{stdenv, fetchurl}:
+{ lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "libart_lgpl-2.3.21";
+  pname = "libart_lgpl";
+  version = "2.3.21";
   src = fetchurl {
-    url = "mirror://gnome/sources/libart_lgpl/2.3/${name}.tar.bz2";
+    url = "mirror://gnome/sources/libart_lgpl/${lib.versions.majorMinor version}/libart_lgpl-${version}.tar.bz2";
     sha256 = "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx";
   };
 }
diff --git a/pkgs/desktops/gnome-2/platform/libbonobo/default.nix b/pkgs/desktops/gnome-2/platform/libbonobo/default.nix
index 8d991d743bec9..e928052a47642 100644
--- a/pkgs/desktops/gnome-2/platform/libbonobo/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libbonobo/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, flex, bison, pkg-config, glib, libxml2, popt
+{ lib, stdenv, fetchurl, flex, bison, pkg-config, glib, libxml2, popt
 , intltool, ORBit2, procps }:
 
 stdenv.mkDerivation rec {
-  name = "libbonobo-${minVer}.1";
-  minVer = "2.32";
+  pname = "libbonobo";
+  version = "2.32.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libbonobo/${minVer}/${name}.tar.bz2";
+    url = "mirror://gnome/sources/libbonobo/${lib.versions.majorMinor version}/libbonobo-${version}.tar.bz2";
     sha256 = "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i";
   };
 
diff --git a/pkgs/desktops/gnome-2/platform/libbonoboui/default.nix b/pkgs/desktops/gnome-2/platform/libbonoboui/default.nix
index 4f9176acf103e..36ab293f5f12e 100644
--- a/pkgs/desktops/gnome-2/platform/libbonoboui/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libbonoboui/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, bison, pkg-config, popt, libxml2, gtk2, libtool
+{ lib, stdenv, fetchurl, bison, pkg-config, popt, libxml2, gtk2, libtool
 , intltool, libbonobo, GConf, libgnomecanvas, libgnome, libglade }:
 
 stdenv.mkDerivation rec {
-  name = "libbonoboui-${minVer}.5";
-  minVer = "2.24";
+  pname = "libbonoboui";
+  version = "2.24.5";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libbonoboui/${minVer}/${name}.tar.bz2";
+    url = "mirror://gnome/sources/libbonoboui/${lib.versions.majorMinor version}/libbonoboui-${version}.tar.bz2";
     sha256 = "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs";
   };
 
diff --git a/pkgs/desktops/gnome-2/platform/libglade/default.nix b/pkgs/desktops/gnome-2/platform/libglade/default.nix
index 3eb7b533f09e3..3ed162cd8d5ee 100644
--- a/pkgs/desktops/gnome-2/platform/libglade/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libglade/default.nix
@@ -2,11 +2,12 @@
 
 assert withLibgladeConvert -> python2 != null;
 
-stdenv.mkDerivation {
-  name = "libglade-2.6.4";
+stdenv.mkDerivation rec {
+  pname = "libglade";
+  version = "2.6.4";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libglade/2.6/libglade-2.6.4.tar.bz2";
+    url = "mirror://gnome/sources/libglade/${lib.versions.majorMinor version}/libglade-${version}.tar.bz2";
     sha256 = "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4";
   };
 
diff --git a/pkgs/desktops/gnome-2/platform/libgnome/default.nix b/pkgs/desktops/gnome-2/platform/libgnome/default.nix
index ee477cb63c1b6..2c70338a9005a 100644
--- a/pkgs/desktops/gnome-2/platform/libgnome/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnome/default.nix
@@ -1,13 +1,13 @@
-{ stdenv, fetchurl, pkg-config, glib, popt, zlib, libcanberra-gtk2
+{ lib, stdenv, fetchurl, pkg-config, glib, popt, zlib, libcanberra-gtk2
 , intltool, libbonobo, GConf, gnome_vfs, libtool, libogg
 }:
 
 stdenv.mkDerivation rec {
-  name = "libgnome-${minVer}.1";
-  minVer = "2.32";
+  pname = "libgnome";
+  version = "2.32.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libgnome/${minVer}/${name}.tar.bz2";
+    url = "mirror://gnome/sources/libgnome/${lib.versions.majorMinor version}/libgnome-${version}.tar.bz2";
     sha256 = "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj";
   };
 
diff --git a/pkgs/desktops/gnome-2/platform/libgnomecanvas/default.nix b/pkgs/desktops/gnome-2/platform/libgnomecanvas/default.nix
index eb40c5ec0b5b4..b856442290a4a 100644
--- a/pkgs/desktops/gnome-2/platform/libgnomecanvas/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnomecanvas/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, pkg-config, gtk2, intltool, libart_lgpl, libglade }:
+{ lib, stdenv, fetchurl, pkg-config, gtk2, intltool, libart_lgpl, libglade }:
 
 stdenv.mkDerivation rec {
-  name = "libgnomecanvas-${minVer}.3";
-  minVer = "2.30";
+  pname = "libgnomecanvas";
+  version = "2.30.3";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libgnomecanvas/${minVer}/${name}.tar.bz2";
+    url = "mirror://gnome/sources/libgnomecanvas/${lib.versions.majorMinor version}/libgnomecanvas-${version}.tar.bz2";
     sha256 = "0h6xvswbqspdifnyh5pm2pqq55yp3kn6yrswq7ay9z49hkh7i6w5";
   };
 
diff --git a/pkgs/desktops/gnome-2/platform/libgnomecanvasmm/default.nix b/pkgs/desktops/gnome-2/platform/libgnomecanvasmm/default.nix
index 2811a138cb631..9cc2d169b7c39 100644
--- a/pkgs/desktops/gnome-2/platform/libgnomecanvasmm/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnomecanvasmm/default.nix
@@ -1,10 +1,11 @@
-{ stdenv, fetchurl, pkg-config, libgnomecanvas, gtkmm2 }:
+{ lib, stdenv, fetchurl, pkg-config, libgnomecanvas, gtkmm2 }:
 
-stdenv.mkDerivation {
-  name = "libgnomecanvasmm-2.26.0";
+stdenv.mkDerivation rec {
+  pname = "libgnomecanvasmm";
+  version = "2.26.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libgnomecanvasmm/2.26/libgnomecanvasmm-2.26.0.tar.bz2";
+    url = "mirror://gnome/sources/libgnomecanvasmm/${lib.versions.majorMinor version}/libgnomecanvasmm-${version}.tar.bz2";
     sha256 = "996577f97f459a574919e15ba7fee6af8cda38a87a98289e9a4f54752d83e918";
   };
 
diff --git a/pkgs/desktops/gnome-2/platform/libgnomecups/default.nix b/pkgs/desktops/gnome-2/platform/libgnomecups/default.nix
index 7e33ee91285f0..42de8c2471a3b 100644
--- a/pkgs/desktops/gnome-2/platform/libgnomecups/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnomecups/default.nix
@@ -1,10 +1,11 @@
-{ stdenv, fetchurl, pkg-config, gtk2, gettext, libxml2, intltool, libart_lgpl }:
+{ lib, stdenv, fetchurl, pkg-config, gtk2, gettext, libxml2, intltool, libart_lgpl }:
 
 stdenv.mkDerivation rec {
-  name = "libgnomecups-0.2.3";
+  pname = "libgnomecups";
+  version = "0.2.3";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libgnomecups/0.2/${name}.tar.bz2";
+    url = "mirror://gnome/sources/libgnomecups/${lib.versions.majorMinor version}/libgnomecups-${version}.tar.bz2";
     sha256 = "0a8xdaxzz2wc0n1fjcav65093gixzyac3948l8cxx1mk884yhc71";
   };
 
diff --git a/pkgs/desktops/gnome-2/platform/libgnomeprint/default.nix b/pkgs/desktops/gnome-2/platform/libgnomeprint/default.nix
index b67be2b7f5b20..bb2e435f422d0 100644
--- a/pkgs/desktops/gnome-2/platform/libgnomeprint/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnomeprint/default.nix
@@ -2,10 +2,11 @@
 , libgnomecups, bison, flex }:
 
 stdenv.mkDerivation rec {
-  name = "libgnomeprint-2.18.8";
+  pname = "libgnomeprint";
+  version = "2.18.8";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libgnomeprint/2.18/${name}.tar.bz2";
+    url = "mirror://gnome/sources/libgnomeprint/${lib.versions.majorMinor version}/libgnomeprint-${version}.tar.bz2";
     sha256 = "1034ec8651051f84d2424e7a1da61c530422cc20ce5b2d9e107e1e46778d9691";
   };
 
diff --git a/pkgs/desktops/gnome-2/platform/libgnomeprintui/default.nix b/pkgs/desktops/gnome-2/platform/libgnomeprintui/default.nix
index 80d2c2050afea..a95ee70bca107 100644
--- a/pkgs/desktops/gnome-2/platform/libgnomeprintui/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnomeprintui/default.nix
@@ -1,10 +1,11 @@
-{stdenv, fetchurl, pkg-config, gtk2, gettext, intltool, libgnomecanvas, libgnomeprint, gnome-icon-theme}:
+{ lib, stdenv, fetchurl, pkg-config, gtk2, gettext, intltool, libgnomecanvas, libgnomeprint, gnome-icon-theme }:
 
-stdenv.mkDerivation {
-  name = "libgnomeprintui-2.18.6";
+stdenv.mkDerivation rec {
+  pname = "libgnomeprintui";
+  version = "2.18.6";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libgnomeprintui/2.18/libgnomeprintui-2.18.6.tar.bz2";
+    url = "mirror://gnome/sources/libgnomeprintui/${lib.versions.majorMinor version}/libgnomeprintui-${version}.tar.bz2";
     sha256 = "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm";
   };
 
diff --git a/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix b/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
index 0fa3847d9bdab..0a84e0ea3ec58 100644
--- a/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
@@ -1,13 +1,13 @@
-{ stdenv, fetchurl, fetchpatch, pkg-config, libxml2, xorg, glib, pango
+{ lib, stdenv, fetchurl, fetchpatch, pkg-config, libxml2, xorg, glib, pango
 , intltool, libgnome, libgnomecanvas, libbonoboui, GConf, libtool
 , gnome_vfs, libgnome-keyring, libglade }:
 
 stdenv.mkDerivation rec {
-  name = "libgnomeui-${minVer}.5";
-  minVer = "2.24";
+  pname = "libgnomeui";
+  version = "2.24.5";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libgnomeui/${minVer}/${name}.tar.bz2";
+    url = "mirror://gnome/sources/libgnomeui/${lib.versions.majorMinor version}/libgnomeui-${version}.tar.bz2";
     sha256 = "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf";
   };
 
diff --git a/pkgs/desktops/gnome-2/platform/libgtkhtml/default.nix b/pkgs/desktops/gnome-2/platform/libgtkhtml/default.nix
index e7cf117ecdbcc..9c7189c117ac8 100644
--- a/pkgs/desktops/gnome-2/platform/libgtkhtml/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgtkhtml/default.nix
@@ -1,10 +1,11 @@
-{stdenv, fetchurl, pkg-config, gtk2, gettext, libxml2 }:
+{ lib, stdenv, fetchurl, pkg-config, gtk2, gettext, libxml2 }:
 
-stdenv.mkDerivation {
-  name = "libgtkhtml-2.11.1";
+stdenv.mkDerivation rec {
+  pname = "libgtkhtml";
+  version = "2.11.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libgtkhtml/2.11/libgtkhtml-2.11.1.tar.bz2";
+    url = "mirror://gnome/sources/libgtkhtml/${lib.versions.majorMinor version}/libgtkhtml-${version}.tar.bz2";
     sha256 = "0msajafd42545dxzyr5zqka990cjrxw2yz09ajv4zs8m1w6pm9rw";
   };
 
diff --git a/pkgs/desktops/gnome/apps/gedit/default.nix b/pkgs/desktops/gnome/apps/gedit/default.nix
index b8783e4db4624..3269739df9af8 100644
--- a/pkgs/desktops/gnome/apps/gedit/default.nix
+++ b/pkgs/desktops/gnome/apps/gedit/default.nix
@@ -5,6 +5,7 @@
 , python3
 , pkg-config
 , gtk3
+, gtk-mac-integration
 , glib
 , adwaita-icon-theme
 , libpeas
@@ -24,11 +25,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gedit";
-  version = "41.0";
+  version = "42.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gedit/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "epsYsViAjRiSmJFl83BsTxooKXkHmrdFinnTwkrU3rU=";
+    sha256 = "qHmR9Clh609qvNuqu3hHYMI66u765jY9PiGmHpxFhDc=";
   };
 
   patches = [
@@ -59,6 +60,8 @@ stdenv.mkDerivation rec {
     gtksourceview4
     libpeas
     libsoup
+  ] ++ lib.optionals stdenv.isDarwin [
+    gtk-mac-integration
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome/apps/ghex/default.nix b/pkgs/desktops/gnome/apps/ghex/default.nix
index 1ec3c9dfdf27f..3cbc2b2cfddfc 100644
--- a/pkgs/desktops/gnome/apps/ghex/default.nix
+++ b/pkgs/desktops/gnome/apps/ghex/default.nix
@@ -1,12 +1,10 @@
 { stdenv
 , lib
 , fetchurl
-, fetchpatch
 , pkg-config
 , gi-docgen
 , meson
 , ninja
-, python3
 , gnome
 , desktop-file-utils
 , appstream-glib
@@ -17,34 +15,20 @@
 , glib
 , atk
 , gobject-introspection
-, wrapGAppsHook
+, wrapGAppsHook4
 }:
 
 stdenv.mkDerivation rec {
   pname = "ghex";
-  version = "4.beta.1";
+  version = "42.1";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/ghex/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sBS/9cY++uHLGCbLeex8ZW697JJn3dK+HaM6tHBdwJ4=";
+    url = "mirror://gnome/sources/ghex/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "8QMj08MvvRqDFU+/0qJ+yj7pDZwbJSNfGxX+3l+xE6M=";
   };
 
-  patches = [
-    # Fix build with -Werror=format-security
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/ghex/-/commit/3d35359f3a12b6abb4a3d8a12a0f39b7221be408.patch";
-      sha256 = "4z9nUd+/eBOUGwl3MErse+FKLzGqtWKwkIzej57CnYk=";
-    })
-    # Build devhelp index.
-    # https://gitlab.gnome.org/GNOME/ghex/-/merge_requests/25
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/ghex/-/commit/b26a7b1135ea2fe956a9bc0669b3b6ed818716c3.patch";
-      sha256 = "nYjjxds9GNWkW/RhXEe5zJzPF4TnLMsCELEqYR4dXTk=";
-    })
-  ];
-
   nativeBuildInputs = [
     desktop-file-utils
     gettext
@@ -53,9 +37,8 @@ stdenv.mkDerivation rec {
     ninja
     pkg-config
     gi-docgen
-    python3
     gobject-introspection
-    wrapGAppsHook
+    wrapGAppsHook4
   ];
 
   buildInputs = [
@@ -71,13 +54,11 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [
     "-Dgtk_doc=true"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # mremap does not exist on darwin
+    "-Dmmap-buffer-backend=false"
   ];
 
-  postPatch = ''
-    chmod +x meson_post_install.py
-    patchShebangs meson_post_install.py
-  '';
-
   postFixup = ''
     # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
     moveToOutput "share/doc" "$devdoc"
diff --git a/pkgs/desktops/gnome/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
index 7853a80f073d2..e88a831821e09 100644
--- a/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
@@ -62,6 +62,13 @@ stdenv.mkDerivation rec {
     sha256 = "GuIS/4mZFVQuxTtU2VtozfJx2VjPUSzcP+3Hgixu4SM=";
   };
 
+  patches = [
+    # Fix path to libgovf-0.1.so (and libgtk-frdp-0.1.so when enabling rdp meson option)
+    # in the gir file. We patch gobject-introspection to hardcode absolute paths but
+    # our Meson patch will only pass the info when install_dir is absolute as well.
+    ./fix-gir-lib-path.patch
+  ];
+
   doCheck = true;
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/apps/gnome-boxes/fix-gir-lib-path.patch b/pkgs/desktops/gnome/apps/gnome-boxes/fix-gir-lib-path.patch
new file mode 100644
index 0000000000000..6b0ba4732997e
--- /dev/null
+++ b/pkgs/desktops/gnome/apps/gnome-boxes/fix-gir-lib-path.patch
@@ -0,0 +1,22 @@
+--- a/subprojects/libovf-glib/govf/meson.build
++++ b/subprojects/libovf-glib/govf/meson.build
+@@ -39,7 +39,7 @@ govf_lib = shared_library('govf-' + api_version,
+   govf_sources,
+   dependencies: govf_deps,
+   install: true,
+-  install_dir: libdir
++  install_dir: get_option ('prefix') / libdir
+ )
+ 
+ govf_dep = declare_dependency(
+--- a/subprojects/gtk-frdp/src/meson.build
++++ b/subprojects/gtk-frdp/src/meson.build
+@@ -50,7 +50,7 @@ gtk_frdp_lib = shared_library('gtk-frdp-' + api_version,
+   gtk_frdp_sources,
+   dependencies: gtk_frdp_deps,
+   install: true,
+-  install_dir: libdir
++  install_dir: get_option ('prefix') / libdir
+ )
+ 
+ gtk_frdp_dep = declare_dependency(
diff --git a/pkgs/desktops/gnome/apps/gnome-connections/default.nix b/pkgs/desktops/gnome/apps/gnome-connections/default.nix
index b8517a833b004..165004860c422 100644
--- a/pkgs/desktops/gnome/apps/gnome-connections/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-connections/default.nix
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-connections";
-  version = "42.0";
+  version = "42.1.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-L3s5u0OPS2oM3Jn2JjGpXbI+W7JC7Gg5pMlQKchwJO0=";
+    hash = "sha256-2ObnJ0EJHYkt/IQoH2JVUdBWjNSC1I21ik7bivoTd7Y=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/apps/gnome-maps/default.nix b/pkgs/desktops/gnome/apps/gnome-maps/default.nix
index 0efb5faa3c713..a0d566c7ef9e4 100644
--- a/pkgs/desktops/gnome/apps/gnome-maps/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-maps/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchurl
-, fetchpatch
 , meson
 , ninja
 , gettext
@@ -31,22 +30,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-maps";
-  version = "42.0";
+  version = "42.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-BUSG03dAc3BqdqmBQXl40VG+O3Ik1yN3W74xbvoked8=";
+    sha256 = "sha256-CC+ElBAf080xvU8a6YgXEOMqUz+y3belcSJ5bJRm0q4=";
   };
 
-  patches = [
-    # Do not pin to GWeather 3.0, the used API did not change in 4.0.
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-maps/-/commit/759d3087b70341b2c5f1af575ce44338d926690e.patch";
-      sha256 = "Qp9Hta00TLf2lOb9+g9vnPoK17mP3eHpCG2i1ewaw+w=";
-      revert = true;
-    })
-  ];
-
   doCheck = true;
 
   nativeBuildInputs = [
@@ -66,7 +56,6 @@ stdenv.mkDerivation rec {
     geocode-glib
     gjs
     gnome-online-accounts
-    gnome.adwaita-icon-theme
     gobject-introspection
     gsettings-desktop-schemas
     gtk3
diff --git a/pkgs/desktops/gnome/apps/gnome-music/default.nix b/pkgs/desktops/gnome/apps/gnome-music/default.nix
index 4676710bfc616..8d5f5e5f28dda 100644
--- a/pkgs/desktops/gnome/apps/gnome-music/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-music/default.nix
@@ -8,7 +8,7 @@
 , libxml2
 , python3
 , libnotify
-, wrapGAppsHook
+, wrapGAppsHook4
 , libmediaart
 , gobject-introspection
 , gnome-online-accounts
@@ -30,13 +30,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gnome-music";
-  version = "42.0";
+  version = "42.1";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "nWgZj5hSveD4NFhLlqgSiX0xDLcXKLak8Ji8spsZxdA=";
+    sha256 = "x3R/pqhrVrGK1v+VD/kB5Z7n+sEcaLKmcnr4bq7tgnA=";
   };
 
   nativeBuildInputs = [
@@ -46,7 +46,7 @@ python3.pkgs.buildPythonApplication rec {
     itstool
     pkg-config
     libxml2
-    wrapGAppsHook
+    wrapGAppsHook4
     desktop-file-utils
     appstream-glib
     gobject-introspection
@@ -60,7 +60,6 @@ python3.pkgs.buildPythonApplication rec {
     gnome-online-accounts
     gobject-introspection
     gdk-pixbuf
-    gnome.adwaita-icon-theme
     python3
     grilo
     grilo-plugins
diff --git a/pkgs/desktops/gnome/apps/gnome-nettool/default.nix b/pkgs/desktops/gnome/apps/gnome-nettool/default.nix
index ca75b7aae07f4..b738aa87666f6 100644
--- a/pkgs/desktops/gnome/apps/gnome-nettool/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-nettool/default.nix
@@ -1,28 +1,78 @@
-{ lib, stdenv, fetchurl, pkg-config, gnome, gtk3, wrapGAppsHook
-, libgtop, intltool, itstool, libxml2, nmap, inetutils }:
+{ stdenv
+, lib
+, fetchurl
+, fetchpatch
+, desktop-file-utils
+, itstool
+, meson
+, ninja
+, pkg-config
+, python3
+, wrapGAppsHook
+, glib
+, gtk3
+, libgtop
+, dnsutils
+, iputils
+, nmap
+, inetutils
+, gnome
+}:
 
 stdenv.mkDerivation rec {
   pname = "gnome-nettool";
-  version = "3.8.1";
+  version = "42.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1c9cvzvyqgfwa5zzyvp7118pkclji62fkbb33g4y9sp5kw6m397h";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "pU8p7vIDiu5pVRyLGcpPdY5eueIJCkvGtWM9/wGIdR8=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  patches = [
+    # Fix build with meson 0.61
+    # https://gitlab.gnome.org/GNOME/gnome-nettool/-/merge_requests/3
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-nettool/-/commit/1124c3e1fdb8472d30b7636500229aa16cdc1244.patch";
+      sha256 = "fbpfL8Xb1GsadpQzAdmu8FSPs++bsGCVdcwnzQWttGY=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    desktop-file-utils
+    itstool
+    meson
+    ninja
+    pkg-config
+    python3
+    wrapGAppsHook
+  ];
+
   buildInputs = [
-    gtk3 wrapGAppsHook libgtop intltool itstool libxml2
-    gnome.adwaita-icon-theme
+    glib
+    gtk3
+    libgtop
   ];
 
-  propagatedUserEnvPkgs = [ nmap inetutils ];
+  postPatch = ''
+    chmod +x postinstall.py
+    patchShebangs postinstall.py
+  '';
+
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix PATH : "${lib.makeBinPath [
+        dnsutils # for dig
+        iputils # for ping
+        nmap # for nmap
+        inetutils # for ping6, traceroute, whois
+      ]}"
+    )
+  '';
 
   passthru = {
     updateScript = gnome.updateScript {
       packageName = pname;
       attrPath = "gnome.${pname}";
-      versionPolicy = "none";
     };
   };
 
@@ -30,7 +80,7 @@ stdenv.mkDerivation rec {
     homepage = "https://gitlab.gnome.org/GNOME/gnome-nettool";
     description = "A collection of networking tools";
     maintainers = teams.gnome.members;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix b/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
index ac065aaaec7e4..f14c57cde69c6 100644
--- a/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-text-editor";
-  version = "42.0";
+  version = "42.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-text-editor/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-DjIUDuHBNChWO81feE5h7iL/0a0n2MAig7Q1ioHfq1A=";
+    sha256 = "sha256-o8hQgDO/tjqLSKBirB5nssMzugFTh5s4xmGWihA60Vw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/eog/default.nix b/pkgs/desktops/gnome/core/eog/default.nix
index 08baf9022f71d..5a2c410c2c060 100644
--- a/pkgs/desktops/gnome/core/eog/default.nix
+++ b/pkgs/desktops/gnome/core/eog/default.nix
@@ -29,15 +29,22 @@
 
 stdenv.mkDerivation rec {
   pname = "eog";
-  version = "42.0";
+  version = "42.1";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-+zW/tRZ6QhIfWae5t6wNdbvQUXua/W2Rgx6E01c13fg=";
+    sha256 = "sha256-/LEtXbyFYY3xSzDmMB5eHO+Dgq4nItL1WmQ1Adx8n60=";
   };
 
+  patches = [
+    # Fix path to libeog.so in the gir file.
+    # We patch gobject-introspection to hardcode absolute paths but
+    # our Meson patch will only pass the info when install_dir is absolute as well.
+    ./fix-gir-lib-path.patch
+  ];
+
   nativeBuildInputs = [
     meson
     ninja
diff --git a/pkgs/desktops/gnome/core/eog/fix-gir-lib-path.patch b/pkgs/desktops/gnome/core/eog/fix-gir-lib-path.patch
new file mode 100644
index 0000000000000..eb087b58a3176
--- /dev/null
+++ b/pkgs/desktops/gnome/core/eog/fix-gir-lib-path.patch
@@ -0,0 +1,13 @@
+diff --git a/src/meson.build b/src/meson.build
+index cc9d3856..f909836d 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -165,7 +165,7 @@ libeog = shared_library(
+   link_args: ldflags,
+   link_depends: symbol_map,
+   install: true,
+-  install_dir: eog_pkglibdir,
++  install_dir: eog_prefix / eog_pkglibdir,
+ )
+ 
+ libeog_dep = declare_dependency(
diff --git a/pkgs/desktops/gnome/core/epiphany/default.nix b/pkgs/desktops/gnome/core/epiphany/default.nix
index 43b3eb2ee2fc3..2dcd037fa5003 100644
--- a/pkgs/desktops/gnome/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome/core/epiphany/default.nix
@@ -40,11 +40,11 @@
 
 stdenv.mkDerivation rec {
   pname = "epiphany";
-  version = "42.0";
+  version = "42.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "Pb+owA5Ft/ROGCTQHw/r6DcHtfuTMMJhFz9ot/A81eM=";
+    sha256 = "ksAs+IbRDSzP9d5ljhpCDqsx0gu1DnRtQw6VNbSFGS0=";
   };
 
   patches = lib.optionals withPantheon [
diff --git a/pkgs/desktops/gnome/core/evince/default.nix b/pkgs/desktops/gnome/core/evince/default.nix
index 18451ce239f7d..cda0abaf2f756 100644
--- a/pkgs/desktops/gnome/core/evince/default.nix
+++ b/pkgs/desktops/gnome/core/evince/default.nix
@@ -43,13 +43,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evince";
-  version = "42.1";
+  version = "42.2";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evince/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "skdnuz1RA7TjWw4VzwM9viSI+IcAzdiC0ipDre7C6Ao=";
+    sha256 = "/3+B8wjPjUlW7Zf7ckp+SUSMIUvuq5mIEu+e+7ON+K4=";
   };
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome/core/evolution-data-server/default.nix b/pkgs/desktops/gnome/core/evolution-data-server/default.nix
index e43fe60eb7e90..15d22674b3c98 100644
--- a/pkgs/desktops/gnome/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome/core/evolution-data-server/default.nix
@@ -45,13 +45,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution-data-server";
-  version = "3.44.0";
+  version = "3.44.1";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "DYiBtcUeG5F2GxlF2yZKRqq/VKc+6hyo9EiyB4FdWC4=";
+    sha256 = "bgWpAgSidvmdkyCX8QMswX3R2OJlx8VnJ8YyQP1MDM8=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix b/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
index 7f6724ce63ae4..07f6274e01c78 100644
--- a/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
@@ -36,11 +36,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-initial-setup";
-  version = "42.0.1";
+  version = "42.1.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "/PQ/L75NwEw6wq5QVjP+se8w2nDKleq8YeIAaxkuXlU=";
+    sha256 = "kRfuQpH2/oX95/Fh4FBEA8PPquX3GxjwHjAmUZY2UtI=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix b/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
index 61252d60814cd..3d2ad08fc6d9c 100644
--- a/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
@@ -28,11 +28,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-remote-desktop";
-  version = "42.0";
+  version = "42.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-s9wrt1x4Pe2quWqNu6wW3ZqhOebTooo9s+pAxgRluY8=";
+    hash = "sha256-ATHuOY32n2tOZ9YU1pElatZJgihCRXQU64iaI7/rmfo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/mutter/3.38/default.nix b/pkgs/desktops/gnome/core/mutter/3.38/default.nix
index 3c2d30b813ba0..799f80917268b 100644
--- a/pkgs/desktops/gnome/core/mutter/3.38/default.nix
+++ b/pkgs/desktops/gnome/core/mutter/3.38/default.nix
@@ -32,6 +32,7 @@
 , mesa
 , meson
 , gnome-settings-daemon
+, libxcvt
 , xorgserver
 , python3
 , wrapGAppsHook
@@ -99,7 +100,8 @@ let self = stdenv.mkDerivation rec {
     pkg-config
     python3
     wrapGAppsHook
-    xorgserver # for cvt command
+    libxcvt
+    xorgserver
   ];
 
   buildInputs = [
diff --git a/pkgs/desktops/gnome/core/mutter/default.nix b/pkgs/desktops/gnome/core/mutter/default.nix
index 9f3925d0ce50b..f92b162476ae4 100644
--- a/pkgs/desktops/gnome/core/mutter/default.nix
+++ b/pkgs/desktops/gnome/core/mutter/default.nix
@@ -33,6 +33,7 @@
 , mesa
 , meson
 , gnome-settings-daemon
+, libxcvt
 , xorgserver
 , python3
 , wrapGAppsHook
@@ -95,7 +96,8 @@ let self = stdenv.mkDerivation rec {
     pkg-config
     python3
     wrapGAppsHook
-    xorgserver # for cvt command
+    libxcvt
+    xorgserver
   ];
 
   buildInputs = [
diff --git a/pkgs/desktops/gnome/core/nautilus/default.nix b/pkgs/desktops/gnome/core/nautilus/default.nix
index b3665e46fa437..ccc19728b0b5e 100644
--- a/pkgs/desktops/gnome/core/nautilus/default.nix
+++ b/pkgs/desktops/gnome/core/nautilus/default.nix
@@ -34,13 +34,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nautilus";
-  version = "42.0";
+  version = "42.1.1";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "PJBPM7otKgeIkr7ir3FITNYIkjzXjsfooVF7whVRE9U=";
+    sha256 = "hRnUVl6EKqPTHQ/jmyHUisVO3A8GWP4djqLaTnBMG2Y=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/core/simple-scan/default.nix b/pkgs/desktops/gnome/core/simple-scan/default.nix
index dd96e254109dd..e656624c5c042 100644
--- a/pkgs/desktops/gnome/core/simple-scan/default.nix
+++ b/pkgs/desktops/gnome/core/simple-scan/default.nix
@@ -25,11 +25,11 @@
 
 stdenv.mkDerivation rec {
   pname = "simple-scan";
-  version = "42.0";
+  version = "42.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-rB+Fev0LyIl90gRQI618VxPlzu/KVrCzzF6aR5UylYY=";
+    sha256 = "sha256-hZvAYRwXabW9q6ljne7TWfUEdMLuz1i7v9fOIZEbIiY=";
   };
 
   nativeBuildInputs = [
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
     wrapGAppsHook
     libxml2
     gobject-introspection # For setup hook
+    vala
   ];
 
   buildInputs = [
@@ -49,14 +50,12 @@ stdenv.mkDerivation rec {
     gdk-pixbuf
     colord
     glib
-    gnome.adwaita-icon-theme
     gusb
     gtk3
     libhandy
     libwebp
     packagekit
     sane-backends
-    vala
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome/core/sushi/default.nix b/pkgs/desktops/gnome/core/sushi/default.nix
index 4c6f960d8c845..af6a81b34787b 100644
--- a/pkgs/desktops/gnome/core/sushi/default.nix
+++ b/pkgs/desktops/gnome/core/sushi/default.nix
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sushi";
-  version = "41.1";
+  version = "41.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/sushi/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "JifbYWLnV3hZDAfhZbLzbqJNEjGlE7FkAj/G3fx1xKM=";
+    sha256 = "tZ+0LJllxzYfdilt0qNARatlUGXqQUPeWsiyygyq6l4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/zenity/default.nix b/pkgs/desktops/gnome/core/zenity/default.nix
index ef8259e9e82ee..bca93ca7bc562 100644
--- a/pkgs/desktops/gnome/core/zenity/default.nix
+++ b/pkgs/desktops/gnome/core/zenity/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "zenity";
-  version = "3.41.0";
+  version = "3.42.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/zenity/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "GbZ2w1EOIrrfzDIEBi1DK6U3QC9eCuJhKMDZDJVAN+E=";
+    sha256 = "wkx/5rtDFjztit8jLVg7LgE9O6bCjetfz4B5hePete8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/default.nix b/pkgs/desktops/gnome/default.nix
index 1809604bec521..a0561ca00300b 100644
--- a/pkgs/desktops/gnome/default.nix
+++ b/pkgs/desktops/gnome/default.nix
@@ -3,21 +3,6 @@
 lib.makeScope pkgs.newScope (self: with self; {
   updateScript = callPackage ./update.nix { };
 
-  /* Remove packages of packagesToRemove from packages, based on their names
-
-     Type:
-       removePackagesByName :: [package] -> [package] -> [package]
-
-     Example:
-       removePackagesByName [ nautilus file-roller ] [ file-roller totem ]
-       => [ nautilus ]
-  */
-  removePackagesByName = packages: packagesToRemove:
-    let
-      namesToRemove = map lib.getName packagesToRemove;
-    in
-      lib.filter (x: !(builtins.elem (lib.getName x) namesToRemove)) packages;
-
   libsoup = pkgs.libsoup.override { gnomeSupport = true; };
   libchamplain = pkgs.libchamplain.override { libsoup = libsoup; };
 
diff --git a/pkgs/desktops/gnome/extensions/arcmenu/default.nix b/pkgs/desktops/gnome/extensions/arcmenu/default.nix
index 7bc997a4bf1ae..be47382867940 100644
--- a/pkgs/desktops/gnome/extensions/arcmenu/default.nix
+++ b/pkgs/desktops/gnome/extensions/arcmenu/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-arcmenu";
-  version = "24";
+  version = "30";
 
   src = fetchFromGitLab {
     owner = "arcmenu";
     repo = "ArcMenu";
     rev = "v${version}";
-    sha256 = "sha256-GbZt6JC+uAPkb4GU1Q7WRJ6Pf95Uh48cYwvoTgLimHs=";
+    sha256 = "sha256-BKV1x/MBqVeiqFzpXYt3y8zwK4f5rcGBwFZWqSSUarg=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/extensions/collisions.json b/pkgs/desktops/gnome/extensions/collisions.json
index b50455002421b..573d043e7f751 100644
--- a/pkgs/desktops/gnome/extensions/collisions.json
+++ b/pkgs/desktops/gnome/extensions/collisions.json
@@ -143,9 +143,21 @@
     ]
   },
   "42": {
+    "applications-menu": [
+      "apps-menu@gnome-shell-extensions.gcampax.github.com",
+      "Applications_Menu@rmy.pobox.com"
+    ],
     "workspace-indicator": [
       "workspace-indicator@gnome-shell-extensions.gcampax.github.com",
       "horizontal-workspace-indicator@tty2.io"
+    ],
+    "lock-keys": [
+      "lockkeys@vaina.lt",
+      "lockkeys@fawtytoo"
+    ],
+    "wireguard-indicator": [
+      "wireguard-indicator@gregos.me",
+      "wireguard-indicator@atareao.es"
     ]
   }
 }
diff --git a/pkgs/desktops/gnome/extensions/extensionRenames.nix b/pkgs/desktops/gnome/extensions/extensionRenames.nix
index d3637cade6b27..d509958712cba 100644
--- a/pkgs/desktops/gnome/extensions/extensionRenames.nix
+++ b/pkgs/desktops/gnome/extensions/extensionRenames.nix
@@ -6,6 +6,15 @@
 # - Make a separate section for each GNOME version. Collisions will come back eventually
 #   as the extensions are updated.
 {
+  "apps-menu@gnome-shell-extensions.gcampax.github.com" = "applications-menu";
+  "Applications_Menu@rmy.pobox.com" = "frippery-applications-menu";
+
+  "lockkeys@vaina.lt" = "lock-keys";
+  "lockkeys@fawtytoo" = "lock-keys-2";
+
+  "wireguard-indicator@gregos.me" = "wireguard-indicator-2";
+  "wireguard-indicator@atareao.es" = "wireguard-indicator";
+
   "workspace-indicator@gnome-shell-extensions.gcampax.github.com" = "workspace-indicator";
   "horizontal-workspace-indicator@tty2.io" = "workspace-indicator-2";
 
@@ -15,24 +24,15 @@
 
   # ####### GNOME 41 #######
 
-  "apps-menu@gnome-shell-extensions.gcampax.github.com" = "applications-menu";
-  "Applications_Menu@rmy.pobox.com" = "frippery-applications-menu";
-
   "floatingDock@sun.wxg@gmail.com" = "floating-dock-2";
   "floating-dock@nandoferreira_prof@hotmail.com" = "floating-dock";
 
-  "lockkeys@vaina.lt" = "lock-keys";
-  "lockkeys@fawtytoo" = "lock-keys-2";
-
   "unredirect@vaina.lt" = "disable-unredirect-fullscreen-windows";
   "unredirect@aunetx" = "disable-unredirect-fullscreen-windows-2";
 
   "fuzzy-clock@keepawayfromfire.co.uk" = "fuzzy-clock-2";
   "FuzzyClock@johngoetz" = "fuzzy-clock";
 
-  "wireguard-indicator@gregos.me" = "wireguard-indicator-2";
-  "wireguard-indicator@atareao.es" = "wireguard-indicator";
-
   # At the moment, ShutdownTimer@deminder is a fork of ShutdownTimer@neumann which adds new features
   # there seem to be upstream plans, so this should be checked periodically:
   # https://github.com/Deminder/ShutdownTimer https://github.com/neumann-d/ShutdownTimer/pull/46
diff --git a/pkgs/desktops/gnome/extensions/extensions.json b/pkgs/desktops/gnome/extensions/extensions.json
index 2f9a7b2a7a94b..5acddff292149 100644
--- a/pkgs/desktops/gnome/extensions/extensions.json
+++ b/pkgs/desktops/gnome/extensions/extensions.json
@@ -1,11 +1,11 @@
-[ {"uuid": "Move_Clock@rmy.pobox.com", "name": "Frippery Move Clock", "pname": "move-clock", "description": "Move clock to left of status menu button", "link": "https://extensions.gnome.org/extension/2/move-clock/", "shell_version_map": {"38": {"version": "22", "sha256": "085ardkmrxz6rzh48frpb5z8mjlilqk037gjr84dr39gj9dkb81z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCBvZiBzdGF0dXMgbWVudSBidXR0b24iLAogICJuYW1lIjogIkZyaXBwZXJ5IE1vdmUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiTW92ZV9DbG9ja0BybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "25", "sha256": "06bjswh450dwgns6kycgrzq3c4cf4ja57mraw8f7rlgzqrwlj3ci", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCBvZiBzdGF0dXMgbWVudSBidXR0b24iLAogICJuYW1lIjogIkZyaXBwZXJ5IE1vdmUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJNb3ZlX0Nsb2NrQHJteS5wb2JveC5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "41": {"version": "25", "sha256": "06bjswh450dwgns6kycgrzq3c4cf4ja57mraw8f7rlgzqrwlj3ci", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCBvZiBzdGF0dXMgbWVudSBidXR0b24iLAogICJuYW1lIjogIkZyaXBwZXJ5IE1vdmUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJNb3ZlX0Nsb2NrQHJteS5wb2JveC5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}}}
-, {"uuid": "Bottom_Panel@rmy.pobox.com", "name": "Frippery Bottom Panel", "pname": "bottom-panel", "description": "Add a bottom panel to the shell", "link": "https://extensions.gnome.org/extension/3/bottom-panel/", "shell_version_map": {"38": {"version": "49", "sha256": "09gsbnj564z8f7m593iv8j7s6f32230k0ikfsl1dlv1jsfpfn8zv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwOi8vZnJpcHBlcnkub3JnL2V4dGVuc2lvbnMiLAogICJ1dWlkIjogIkJvdHRvbV9QYW5lbEBybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDQ5Cn0="}, "40": {"version": "59", "sha256": "1zgkqs8r2pzpiq8vryf6jwlnm5p1h9lkdp8si0xmzvc7wrkjz959", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQm90dG9tX1BhbmVsQHJteS5wb2JveC5jb20iLAogICJ2ZXJzaW9uIjogNTkKfQ=="}, "41": {"version": "59", "sha256": "1zgkqs8r2pzpiq8vryf6jwlnm5p1h9lkdp8si0xmzvc7wrkjz959", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQm90dG9tX1BhbmVsQHJteS5wb2JveC5jb20iLAogICJ2ZXJzaW9uIjogNTkKfQ=="}}}
-, {"uuid": "Panel_Favorites@rmy.pobox.com", "name": "Frippery Panel Favorites", "pname": "panel-favorites", "description": "Add launchers for Favorites to the panel", "link": "https://extensions.gnome.org/extension/4/panel-favorites/", "shell_version_map": {"38": {"version": "39", "sha256": "0jqysp82rhckdlgn1jhf1n6sqqphv97m9dri5pjiqjggvm4ls80j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsYXVuY2hlcnMgZm9yIEZhdm9yaXRlcyB0byB0aGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJuYW1lIjogIkZyaXBwZXJ5IFBhbmVsIEZhdm9yaXRlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkucGFuZWwtZmF2b3JpdGVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJQYW5lbF9GYXZvcml0ZXNAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}, "40": {"version": "43", "sha256": "1nic3ds6y8gbrihfbqm9q62258rvrrv0prnkrbg5kx37bbnl2z5v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsYXVuY2hlcnMgZm9yIEZhdm9yaXRlcyB0byB0aGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJuYW1lIjogIkZyaXBwZXJ5IFBhbmVsIEZhdm9yaXRlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkucGFuZWwtZmF2b3JpdGVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZnJpcHBlcnkub3JnL2V4dGVuc2lvbnMiLAogICJ1dWlkIjogIlBhbmVsX0Zhdm9yaXRlc0BybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDQzCn0="}, "41": {"version": "43", "sha256": "1nic3ds6y8gbrihfbqm9q62258rvrrv0prnkrbg5kx37bbnl2z5v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsYXVuY2hlcnMgZm9yIEZhdm9yaXRlcyB0byB0aGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJuYW1lIjogIkZyaXBwZXJ5IFBhbmVsIEZhdm9yaXRlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkucGFuZWwtZmF2b3JpdGVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZnJpcHBlcnkub3JnL2V4dGVuc2lvbnMiLAogICJ1dWlkIjogIlBhbmVsX0Zhdm9yaXRlc0BybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDQzCn0="}}}
+[ {"uuid": "Move_Clock@rmy.pobox.com", "name": "Frippery Move Clock", "pname": "move-clock", "description": "Move clock to left of status menu button", "link": "https://extensions.gnome.org/extension/2/move-clock/", "shell_version_map": {"38": {"version": "22", "sha256": "085ardkmrxz6rzh48frpb5z8mjlilqk037gjr84dr39gj9dkb81z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCBvZiBzdGF0dXMgbWVudSBidXR0b24iLAogICJuYW1lIjogIkZyaXBwZXJ5IE1vdmUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiTW92ZV9DbG9ja0BybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "26", "sha256": "0jzqq46q0aykdgjah962azrw6m5h7b3lymdb2w2j0cm8rl9yglgv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCBvZiBzdGF0dXMgbWVudSBidXR0b24iLAogICJuYW1lIjogIkZyaXBwZXJ5IE1vdmUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiTW92ZV9DbG9ja0BybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "41": {"version": "26", "sha256": "0jzqq46q0aykdgjah962azrw6m5h7b3lymdb2w2j0cm8rl9yglgv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCBvZiBzdGF0dXMgbWVudSBidXR0b24iLAogICJuYW1lIjogIkZyaXBwZXJ5IE1vdmUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiTW92ZV9DbG9ja0BybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "42": {"version": "26", "sha256": "0jzqq46q0aykdgjah962azrw6m5h7b3lymdb2w2j0cm8rl9yglgv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCBvZiBzdGF0dXMgbWVudSBidXR0b24iLAogICJuYW1lIjogIkZyaXBwZXJ5IE1vdmUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiTW92ZV9DbG9ja0BybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}}}
+, {"uuid": "Bottom_Panel@rmy.pobox.com", "name": "Frippery Bottom Panel", "pname": "bottom-panel", "description": "Add a bottom panel to the shell", "link": "https://extensions.gnome.org/extension/3/bottom-panel/", "shell_version_map": {"38": {"version": "49", "sha256": "09gsbnj564z8f7m593iv8j7s6f32230k0ikfsl1dlv1jsfpfn8zv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwOi8vZnJpcHBlcnkub3JnL2V4dGVuc2lvbnMiLAogICJ1dWlkIjogIkJvdHRvbV9QYW5lbEBybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDQ5Cn0="}, "40": {"version": "59", "sha256": "1zgkqs8r2pzpiq8vryf6jwlnm5p1h9lkdp8si0xmzvc7wrkjz959", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQm90dG9tX1BhbmVsQHJteS5wb2JveC5jb20iLAogICJ2ZXJzaW9uIjogNTkKfQ=="}, "41": {"version": "59", "sha256": "1zgkqs8r2pzpiq8vryf6jwlnm5p1h9lkdp8si0xmzvc7wrkjz959", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQm90dG9tX1BhbmVsQHJteS5wb2JveC5jb20iLAogICJ2ZXJzaW9uIjogNTkKfQ=="}, "42": {"version": "60", "sha256": "13mbn63c64prm1amyvvq0p0iabqbax81i1wjb2knqiqy0lw8h523", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cDovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJCb3R0b21fUGFuZWxAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiA2MAp9"}}}
+, {"uuid": "Panel_Favorites@rmy.pobox.com", "name": "Frippery Panel Favorites", "pname": "panel-favorites", "description": "Add launchers for Favorites to the panel", "link": "https://extensions.gnome.org/extension/4/panel-favorites/", "shell_version_map": {"38": {"version": "39", "sha256": "0jqysp82rhckdlgn1jhf1n6sqqphv97m9dri5pjiqjggvm4ls80j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsYXVuY2hlcnMgZm9yIEZhdm9yaXRlcyB0byB0aGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJuYW1lIjogIkZyaXBwZXJ5IFBhbmVsIEZhdm9yaXRlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkucGFuZWwtZmF2b3JpdGVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJQYW5lbF9GYXZvcml0ZXNAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}, "40": {"version": "43", "sha256": "1nic3ds6y8gbrihfbqm9q62258rvrrv0prnkrbg5kx37bbnl2z5v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsYXVuY2hlcnMgZm9yIEZhdm9yaXRlcyB0byB0aGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJuYW1lIjogIkZyaXBwZXJ5IFBhbmVsIEZhdm9yaXRlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkucGFuZWwtZmF2b3JpdGVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZnJpcHBlcnkub3JnL2V4dGVuc2lvbnMiLAogICJ1dWlkIjogIlBhbmVsX0Zhdm9yaXRlc0BybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDQzCn0="}, "41": {"version": "43", "sha256": "1nic3ds6y8gbrihfbqm9q62258rvrrv0prnkrbg5kx37bbnl2z5v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsYXVuY2hlcnMgZm9yIEZhdm9yaXRlcyB0byB0aGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJuYW1lIjogIkZyaXBwZXJ5IFBhbmVsIEZhdm9yaXRlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkucGFuZWwtZmF2b3JpdGVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZnJpcHBlcnkub3JnL2V4dGVuc2lvbnMiLAogICJ1dWlkIjogIlBhbmVsX0Zhdm9yaXRlc0BybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDQzCn0="}, "42": {"version": "44", "sha256": "0r2srgkz2zjxr1z2n8xc8ypmzmqd6wwrfqkq3p01sdy01hvg5983", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsYXVuY2hlcnMgZm9yIEZhdm9yaXRlcyB0byB0aGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJuYW1lIjogIkZyaXBwZXJ5IFBhbmVsIEZhdm9yaXRlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkucGFuZWwtZmF2b3JpdGVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiUGFuZWxfRmF2b3JpdGVzQHJteS5wb2JveC5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}}}
 , {"uuid": "apps-menu@gnome-shell-extensions.gcampax.github.com", "name": "Applications Menu", "pname": "applications-menu", "description": "Add a category-based menu for applications.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/6/applications-menu/", "shell_version_map": {"38": {"version": "46", "sha256": "1l5fliypxq3s3b6crv7rc6nl741m7hw48dwl0g7vi3yxyw0vyc0x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJhcHBzLW1lbnVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDYKfQ=="}, "40": {"version": "48", "sha256": "0whi4ir3hvz6gby57331hv0a80ssz1b746pj79v43cm15djlsbhv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiYXBwcy1tZW51QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ4Cn0="}, "41": {"version": "50", "sha256": "1x71mysa80n5nlfk79xgcz6k40qmw02g78pqjsvdinxsqlxi9ak6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1hcHBzLW1lbnUiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwcy1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImFwcHMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MAp9"}, "42": {"version": "51", "sha256": "016ngp84g47p904kk9jzfn5mkpy774fj7h70v53dlqc9s7c58r6s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1hcHBzLW1lbnUiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwcy1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImFwcHMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MQp9"}}}
 , {"uuid": "drive-menu@gnome-shell-extensions.gcampax.github.com", "name": "Removable Drive Menu", "pname": "removable-drive-menu", "description": "A status menu for accessing and unmounting removable devices.", "link": "https://extensions.gnome.org/extension/7/removable-drive-menu/", "shell_version_map": {"38": {"version": "45", "sha256": "1f5a9md2gxbl65shbdm498y5dwhhqdpj96gvf2m81ad7gsgxzliv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIGFjY2Vzc2luZyBhbmQgdW5tb3VudGluZyByZW1vdmFibGUgZGV2aWNlcy4iLAogICJleHRlbnNpb24taWQiOiAiZHJpdmUtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlJlbW92YWJsZSBEcml2ZSBNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRyaXZlLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJkcml2ZS1tZW51QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}, "40": {"version": "47", "sha256": "0sa694y58jx4yhjb16i25d6h1z5d8vzamwpqlrfs35g0bq93ri5s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIGFjY2Vzc2luZyBhbmQgdW5tb3VudGluZyByZW1vdmFibGUgZGV2aWNlcy4iLAogICJleHRlbnNpb24taWQiOiAiZHJpdmUtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlJlbW92YWJsZSBEcml2ZSBNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRyaXZlLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiZHJpdmUtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"}, "41": {"version": "50", "sha256": "1gwi4xwwjps5mm412nck6nqbvcvll2n3h48wc74p9yi34fpr31dq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIGFjY2Vzc2luZyBhbmQgdW5tb3VudGluZyByZW1vdmFibGUgZGV2aWNlcy4iLAogICJleHRlbnNpb24taWQiOiAiZHJpdmUtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1kcml2ZS1tZW51IiwKICAibmFtZSI6ICJSZW1vdmFibGUgRHJpdmUgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kcml2ZS1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImRyaXZlLW1lbnVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTAKfQ=="}, "42": {"version": "51", "sha256": "1mjxrmlcrn1c9plcmvs4pgmm13jxc7c7v3s4d3xbl2bp096878dc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIGFjY2Vzc2luZyBhbmQgdW5tb3VudGluZyByZW1vdmFibGUgZGV2aWNlcy4iLAogICJleHRlbnNpb24taWQiOiAiZHJpdmUtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1kcml2ZS1tZW51IiwKICAibmFtZSI6ICJSZW1vdmFibGUgRHJpdmUgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kcml2ZS1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImRyaXZlLW1lbnVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTEKfQ=="}}}
 , {"uuid": "places-menu@gnome-shell-extensions.gcampax.github.com", "name": "Places Status Indicator", "pname": "places-status-indicator", "description": "Add a menu for quickly navigating places in the system.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/8/places-status-indicator/", "shell_version_map": {"38": {"version": "48", "sha256": "05m8nkg2km72iwnmadx6f4br8qnzqagp78mlhz8r2z6hp19nqsh5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIG1lbnUgZm9yIHF1aWNrbHkgbmF2aWdhdGluZyBwbGFjZXMgaW4gdGhlIHN5c3RlbS5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBsYWNlcy1tZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiUGxhY2VzIFN0YXR1cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGxhY2VzLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJwbGFjZXMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"}, "40": {"version": "51", "sha256": "159356lnwhxb2d52na679m0wdrsxw89x7m4zkq0kglf01cf8my65", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIG1lbnUgZm9yIHF1aWNrbHkgbmF2aWdhdGluZyBwbGFjZXMgaW4gdGhlIHN5c3RlbS5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBsYWNlcy1tZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiUGxhY2VzIFN0YXR1cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGxhY2VzLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAicGxhY2VzLW1lbnVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTEKfQ=="}, "41": {"version": "53", "sha256": "0ycb0lgxmal2knz06f8sz638pyq5a14qg5x2cxx76m6ypqwv75h0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIG1lbnUgZm9yIHF1aWNrbHkgbmF2aWdhdGluZyBwbGFjZXMgaW4gdGhlIHN5c3RlbS5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBsYWNlcy1tZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBsYWNlcy1tZW51IiwKICAibmFtZSI6ICJQbGFjZXMgU3RhdHVzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wbGFjZXMtbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJwbGFjZXMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Mwp9"}, "42": {"version": "54", "sha256": "1sfifdzglmn5x3qxs9k0dn4rwislsyzvp2w3dn47x26mvc90zb90", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIG1lbnUgZm9yIHF1aWNrbHkgbmF2aWdhdGluZyBwbGFjZXMgaW4gdGhlIHN5c3RlbS5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBsYWNlcy1tZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBsYWNlcy1tZW51IiwKICAibmFtZSI6ICJQbGFjZXMgU3RhdHVzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wbGFjZXMtbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJwbGFjZXMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1NAp9"}}}
 , {"uuid": "windowsNavigator@gnome-shell-extensions.gcampax.github.com", "name": "windowNavigator", "pname": "windownavigator", "description": "Allow keyboard selection of windows and workspaces in overlay mode. <Ctrl>number selects a workspace, and <Alt>number selects a window.", "link": "https://extensions.gnome.org/extension/10/windownavigator/", "shell_version_map": {"38": {"version": "49", "sha256": "1rzfnssk0iw1ysaya79ksghikkr1rpm41h2w39cz142fby6kip2d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGtleWJvYXJkIHNlbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCB3b3Jrc3BhY2VzIGluIG92ZXJsYXkgbW9kZS4gPEN0cmw+bnVtYmVyIHNlbGVjdHMgYSB3b3Jrc3BhY2UsIGFuZCA8QWx0Pm51bWJlciBzZWxlY3RzIGEgd2luZG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3dzTmF2aWdhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAid2luZG93TmF2aWdhdG9yIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInphc3BpcmVAcmFtYmxlci5ydSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53aW5kb3dzTmF2aWdhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93c05hdmlnYXRvckBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0OQp9"}, "40": {"version": "54", "sha256": "0y41w3lxbnhb709n7ynq21nhhc9p4j6fvyjzfw0aw8ysjc8f54iv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGtleWJvYXJkIHNlbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCB3b3Jrc3BhY2VzIGluIG92ZXJsYXkgbW9kZS4gPEN0cmw+bnVtYmVyIHNlbGVjdHMgYSB3b3Jrc3BhY2UsIGFuZCA8QWx0Pm51bWJlciBzZWxlY3RzIGEgd2luZG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3dzTmF2aWdhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAid2luZG93TmF2aWdhdG9yIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInphc3BpcmVAcmFtYmxlci5ydSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53aW5kb3dzTmF2aWdhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIndpbmRvd3NOYXZpZ2F0b3JAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTQKfQ=="}, "41": {"version": "56", "sha256": "0k404ig42y94j9ysfyvzk0ca5r7f70digwjyjf2cn3py72bs0slg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGtleWJvYXJkIHNlbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCB3b3Jrc3BhY2VzIGluIG92ZXJsYXkgbW9kZS4gPEN0cmw+bnVtYmVyIHNlbGVjdHMgYSB3b3Jrc3BhY2UsIGFuZCA8QWx0Pm51bWJlciBzZWxlY3RzIGEgd2luZG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3dzTmF2aWdhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpbmRvd3NOYXZpZ2F0b3IiLAogICJuYW1lIjogIndpbmRvd05hdmlnYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJ6YXNwaXJlQHJhbWJsZXIucnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93c05hdmlnYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ3aW5kb3dzTmF2aWdhdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU2Cn0="}, "42": {"version": "57", "sha256": "1w3rf6y7l2qgg4ya8cqlj8a6wf8l4yqfjlh17mpmi6gmfzsxplnf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGtleWJvYXJkIHNlbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCB3b3Jrc3BhY2VzIGluIG92ZXJsYXkgbW9kZS4gPEN0cmw+bnVtYmVyIHNlbGVjdHMgYSB3b3Jrc3BhY2UsIGFuZCA8QWx0Pm51bWJlciBzZWxlY3RzIGEgd2luZG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3dzTmF2aWdhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpbmRvd3NOYXZpZ2F0b3IiLAogICJuYW1lIjogIndpbmRvd05hdmlnYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJ6YXNwaXJlQHJhbWJsZXIucnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93c05hdmlnYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ3aW5kb3dzTmF2aWdhdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU3Cn0="}}}
-, {"uuid": "Applications_Menu@rmy.pobox.com", "name": "Frippery Applications Menu", "pname": "applications-menu", "description": "Replace Activities button with an Applications menu", "link": "https://extensions.gnome.org/extension/13/applications-menu/", "shell_version_map": {"38": {"version": "45", "sha256": "0kg9dq1ssa11xizb31kcq3p724qzm1cmf30wriqffj043n5nd125", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyBidXR0b24gd2l0aCBhbiBBcHBsaWNhdGlvbnMgbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImZyaXBwZXJ5LWFwcGxpY2F0aW9ucy1tZW51IiwKICAibmFtZSI6ICJGcmlwcGVyeSBBcHBsaWNhdGlvbnMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYXBwbGljYXRpb25zLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQXBwbGljYXRpb25zX01lbnVAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiA0NQp9"}, "40": {"version": "48", "sha256": "1dpgifdf5jk5mz67q8plxrd3952p0a3jzfg3yxxdhb00mdp26azr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyBidXR0b24gd2l0aCBhbiBBcHBsaWNhdGlvbnMgbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImZyaXBwZXJ5LWFwcGxpY2F0aW9ucy1tZW51IiwKICAibmFtZSI6ICJGcmlwcGVyeSBBcHBsaWNhdGlvbnMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYXBwbGljYXRpb25zLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJBcHBsaWNhdGlvbnNfTWVudUBybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDQ4Cn0="}, "41": {"version": "48", "sha256": "1dpgifdf5jk5mz67q8plxrd3952p0a3jzfg3yxxdhb00mdp26azr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyBidXR0b24gd2l0aCBhbiBBcHBsaWNhdGlvbnMgbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImZyaXBwZXJ5LWFwcGxpY2F0aW9ucy1tZW51IiwKICAibmFtZSI6ICJGcmlwcGVyeSBBcHBsaWNhdGlvbnMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYXBwbGljYXRpb25zLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJBcHBsaWNhdGlvbnNfTWVudUBybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDQ4Cn0="}}}
+, {"uuid": "Applications_Menu@rmy.pobox.com", "name": "Frippery Applications Menu", "pname": "applications-menu", "description": "Replace Activities button with an Applications menu", "link": "https://extensions.gnome.org/extension/13/applications-menu/", "shell_version_map": {"38": {"version": "45", "sha256": "0kg9dq1ssa11xizb31kcq3p724qzm1cmf30wriqffj043n5nd125", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyBidXR0b24gd2l0aCBhbiBBcHBsaWNhdGlvbnMgbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImZyaXBwZXJ5LWFwcGxpY2F0aW9ucy1tZW51IiwKICAibmFtZSI6ICJGcmlwcGVyeSBBcHBsaWNhdGlvbnMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYXBwbGljYXRpb25zLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQXBwbGljYXRpb25zX01lbnVAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiA0NQp9"}, "40": {"version": "49", "sha256": "0hh70p32imshy93vyghwwb9fsdxfs95vdmn2khi81jd01lzxrh44", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyBidXR0b24gd2l0aCBhbiBBcHBsaWNhdGlvbnMgbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImZyaXBwZXJ5LWFwcGxpY2F0aW9ucy1tZW51IiwKICAibmFtZSI6ICJGcmlwcGVyeSBBcHBsaWNhdGlvbnMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYXBwbGljYXRpb25zLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQXBwbGljYXRpb25zX01lbnVAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiA0OQp9"}, "41": {"version": "49", "sha256": "0hh70p32imshy93vyghwwb9fsdxfs95vdmn2khi81jd01lzxrh44", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyBidXR0b24gd2l0aCBhbiBBcHBsaWNhdGlvbnMgbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImZyaXBwZXJ5LWFwcGxpY2F0aW9ucy1tZW51IiwKICAibmFtZSI6ICJGcmlwcGVyeSBBcHBsaWNhdGlvbnMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYXBwbGljYXRpb25zLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQXBwbGljYXRpb25zX01lbnVAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiA0OQp9"}, "42": {"version": "49", "sha256": "0hh70p32imshy93vyghwwb9fsdxfs95vdmn2khi81jd01lzxrh44", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyBidXR0b24gd2l0aCBhbiBBcHBsaWNhdGlvbnMgbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImZyaXBwZXJ5LWFwcGxpY2F0aW9ucy1tZW51IiwKICAibmFtZSI6ICJGcmlwcGVyeSBBcHBsaWNhdGlvbnMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYXBwbGljYXRpb25zLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQXBwbGljYXRpb25zX01lbnVAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiA0OQp9"}}}
 , {"uuid": "auto-move-windows@gnome-shell-extensions.gcampax.github.com", "name": "Auto Move Windows", "pname": "auto-move-windows", "description": "Move applications to specific workspaces when they create windows.", "link": "https://extensions.gnome.org/extension/16/auto-move-windows/", "shell_version_map": {"38": {"version": "44", "sha256": "05lmpmyzaawxh3kn030a8sanq7p6g87zfh7nzxfvgi8nbpygd59q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYXBwbGljYXRpb25zIHRvIHNwZWNpZmljIHdvcmtzcGFjZXMgd2hlbiB0aGV5IGNyZWF0ZSB3aW5kb3dzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhdXRvLW1vdmUtd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkF1dG8gTW92ZSBXaW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhbGVzc2FuZHJvLmNyaXNtYW5pQGdtYWlsLmNvbSIsCiAgICAidGhvbWFzLmJvdWZmb25AZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvLW1vdmUtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImF1dG8tbW92ZS13aW5kb3dzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ0Cn0="}, "40": {"version": "46", "sha256": "1hr0z7r0mg1xg9b41d71lqbyra813yrl8i80kin0dmwrcx8xqs8m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYXBwbGljYXRpb25zIHRvIHNwZWNpZmljIHdvcmtzcGFjZXMgd2hlbiB0aGV5IGNyZWF0ZSB3aW5kb3dzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhdXRvLW1vdmUtd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkF1dG8gTW92ZSBXaW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhbGVzc2FuZHJvLmNyaXNtYW5pQGdtYWlsLmNvbSIsCiAgICAidGhvbWFzLmJvdWZmb25AZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvLW1vdmUtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJhdXRvLW1vdmUtd2luZG93c0Bnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Ngp9"}, "41": {"version": "48", "sha256": "1sbxdz0dly2y0zdy5cla3avsnazvw9w31244yjgq1a7zq3dyd2jw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYXBwbGljYXRpb25zIHRvIHNwZWNpZmljIHdvcmtzcGFjZXMgd2hlbiB0aGV5IGNyZWF0ZSB3aW5kb3dzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhdXRvLW1vdmUtd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1hdXRvLW1vdmUtd2luZG93cyIsCiAgIm5hbWUiOiAiQXV0byBNb3ZlIFdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImFsZXNzYW5kcm8uY3Jpc21hbmlAZ21haWwuY29tIiwKICAgICJ0aG9tYXMuYm91ZmZvbkBnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmF1dG8tbW92ZS13aW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImF1dG8tbW92ZS13aW5kb3dzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ4Cn0="}, "42": {"version": "49", "sha256": "031ppsjqv3y81wcjjsm14rqfh0l7vvaavy01hlqfyglpk8vlfvml", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYXBwbGljYXRpb25zIHRvIHNwZWNpZmljIHdvcmtzcGFjZXMgd2hlbiB0aGV5IGNyZWF0ZSB3aW5kb3dzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhdXRvLW1vdmUtd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1hdXRvLW1vdmUtd2luZG93cyIsCiAgIm5hbWUiOiAiQXV0byBNb3ZlIFdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImFsZXNzYW5kcm8uY3Jpc21hbmlAZ21haWwuY29tIiwKICAgICJ0aG9tYXMuYm91ZmZvbkBnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmF1dG8tbW92ZS13aW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImF1dG8tbW92ZS13aW5kb3dzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ5Cn0="}}}
 , {"uuid": "native-window-placement@gnome-shell-extensions.gcampax.github.com", "name": "Native Window Placement", "pname": "native-window-placement", "description": "Arrange windows in overview in a more compact way.", "link": "https://extensions.gnome.org/extension/18/native-window-placement/", "shell_version_map": {"38": {"version": "45", "sha256": "15vhdcfrfbsinp0m1jfygjl4djccafhvgwc1rsi321jvykqhajmm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTmF0aXZlIFdpbmRvdyBQbGFjZW1lbnQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndlcG1hc2NoZGFAZ214LmRlIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXRpdmUtd2luZG93LXBsYWNlbWVudCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}, "40": {"version": "47", "sha256": "1v424l1svrmw5yikxgbi1j14xx307dg9zy21f34rv2il8bf72vk4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTmF0aXZlIFdpbmRvdyBQbGFjZW1lbnQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndlcG1hc2NoZGFAZ214LmRlIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXRpdmUtd2luZG93LXBsYWNlbWVudCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJuYXRpdmUtd2luZG93LXBsYWNlbWVudEBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"}, "41": {"version": "49", "sha256": "12yr2pc1qra962lyadryw64naq6pd30haja38g0svcqj84smqb46", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAibmFtZSI6ICJOYXRpdmUgV2luZG93IFBsYWNlbWVudCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAid2VwbWFzY2hkYUBnbXguZGUiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ5Cn0="}, "42": {"version": "50", "sha256": "0zqqisd0k81i0ydrbr1qrw1gdfs0p5y75dbqcsixn0srf5995xvm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAibmFtZSI6ICJOYXRpdmUgV2luZG93IFBsYWNlbWVudCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAid2VwbWFzY2hkYUBnbXguZGUiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUwCn0="}}}
 , {"uuid": "user-theme@gnome-shell-extensions.gcampax.github.com", "name": "User Themes", "pname": "user-themes", "description": "Load shell themes from user directory.", "link": "https://extensions.gnome.org/extension/19/user-themes/", "shell_version_map": {"38": {"version": "42", "sha256": "0jykwcd8pmvr03dm2vala6nzzhi9i83c11svgx8wymfvxr5qrya8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJVc2VyIFRoZW1lcyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiam9obi5zdG93ZXJzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogInVzZXItdGhlbWVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDIKfQ=="}, "40": {"version": "46", "sha256": "07gbzvbnxah5bws5vc6sivw43j0rgm23n6vsp4a64z7s8s2ay7sm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJVc2VyIFRoZW1lcyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiam9obi5zdG93ZXJzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ2Cn0="}, "41": {"version": "48", "sha256": "0bbm4vbyrp9n3mmqwbhpb6f7dmlx23x1avnp8pilw4p1wr03p7h8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZSIsCiAgIm5hbWUiOiAiVXNlciBUaGVtZXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAidXNlci10aGVtZUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"}, "42": {"version": "49", "sha256": "0ykaw2602iixn87fc65h6vwxzlcjidpp9hpcsmf66r0f6xibgpah", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZSIsCiAgIm5hbWUiOiAiVXNlciBUaGVtZXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAidXNlci10aGVtZUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0OQp9"}}}
@@ -16,7 +16,7 @@
 , {"uuid": "permanent-notifications@bonzini.gnu.org", "name": "Permanent notifications", "pname": "permanent-notifications", "description": "Keep notifications on the message tray until clicked", "link": "https://extensions.gnome.org/extension/41/permanent-notifications/", "shell_version_map": {"40": {"version": "8", "sha256": "13s0h7b9216xi7p6lsnipsm0lrxzr2dc94nm87fn580m43gx24lk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgbm90aWZpY2F0aW9ucyBvbiB0aGUgbWVzc2FnZSB0cmF5IHVudGlsIGNsaWNrZWQiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlBlcm1hbmVudCBub3RpZmljYXRpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJib256aW5pQGdudS5vcmciCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuMi4xIiwKICAgICIzLjQiLAogICAgIjMuMy45MCIsCiAgICAiMy4zLjkxIiwKICAgICIzLjMuOTIiLAogICAgIjMuNiIsCiAgICAiMy40LjEiLAogICAgIjMuMy45MyIsCiAgICAiMy4zLjk0IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ib256aW5pL2dub21lLXNoZWxsLXBlcm1hbmVudC1ub3RpZmljYXRpb25zIiwKICAidXVpZCI6ICJwZXJtYW5lbnQtbm90aWZpY2F0aW9uc0Bib256aW5pLmdudS5vcmciLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "13s0h7b9216xi7p6lsnipsm0lrxzr2dc94nm87fn580m43gx24lk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgbm90aWZpY2F0aW9ucyBvbiB0aGUgbWVzc2FnZSB0cmF5IHVudGlsIGNsaWNrZWQiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlBlcm1hbmVudCBub3RpZmljYXRpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJib256aW5pQGdudS5vcmciCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuMi4xIiwKICAgICIzLjQiLAogICAgIjMuMy45MCIsCiAgICAiMy4zLjkxIiwKICAgICIzLjMuOTIiLAogICAgIjMuNiIsCiAgICAiMy40LjEiLAogICAgIjMuMy45MyIsCiAgICAiMy4zLjk0IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ib256aW5pL2dub21lLXNoZWxsLXBlcm1hbmVudC1ub3RpZmljYXRpb25zIiwKICAidXVpZCI6ICJwZXJtYW5lbnQtbm90aWZpY2F0aW9uc0Bib256aW5pLmdudS5vcmciLAogICJ2ZXJzaW9uIjogOAp9"}, "42": {"version": "8", "sha256": "13s0h7b9216xi7p6lsnipsm0lrxzr2dc94nm87fn580m43gx24lk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgbm90aWZpY2F0aW9ucyBvbiB0aGUgbWVzc2FnZSB0cmF5IHVudGlsIGNsaWNrZWQiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlBlcm1hbmVudCBub3RpZmljYXRpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJib256aW5pQGdudS5vcmciCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuMi4xIiwKICAgICIzLjQiLAogICAgIjMuMy45MCIsCiAgICAiMy4zLjkxIiwKICAgICIzLjMuOTIiLAogICAgIjMuNiIsCiAgICAiMy40LjEiLAogICAgIjMuMy45MyIsCiAgICAiMy4zLjk0IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ib256aW5pL2dub21lLXNoZWxsLXBlcm1hbmVudC1ub3RpZmljYXRpb25zIiwKICAidXVpZCI6ICJwZXJtYW5lbnQtbm90aWZpY2F0aW9uc0Bib256aW5pLmdudS5vcmciLAogICJ2ZXJzaW9uIjogOAp9"}}}
 , {"uuid": "gnome-shell-trash-extension", "name": "Trash", "pname": "trash", "description": "A Trash button for the GNOME shell panel", "link": "https://extensions.gnome.org/extension/48/trash/", "shell_version_map": {"38": {"version": "18", "sha256": "1cysvxrgi7lnig7d8blhqqbxz0phd4fvn7nww6zpihjnw32rvm4z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgVHJhc2ggYnV0dG9uIGZvciB0aGUgR05PTUUgc2hlbGwgcGFuZWwiLAogICJsb2NhbGVkaXIiOiAibG9jYWxlIiwKICAibmFtZSI6ICJUcmFzaCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiQXhlbCB2b24gQmVydG9sZGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9iZXJ0b2xkaWEvZ25vbWUtc2hlbGwtdHJhc2gtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC10cmFzaC1leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}}}
 , {"uuid": "RecentItems@bananenfisch.net", "name": "Recent Items", "pname": "recent-items", "description": "Adds an icon for recently used items at the top panel; clear list by click; left click: open file, right click: open containing folder; Settings for: number of items, number of items under \"more\" and blacklisting options are defined at the top of extension.js (see https://github.com/bananenfisch/RecentItems for more infos).", "link": "https://extensions.gnome.org/extension/72/recent-items/", "shell_version_map": {"40": {"version": "20", "sha256": "0ys8lanv0xxbwfmqkfvdqvhbnv4vfjpzvpqjj11c1lxbv4wp2mbj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHA6Ly93d3cuYmFuYW5lbmZpc2NoLm5ldC9nbm9tZSIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMAp9"}, "41": {"version": "20", "sha256": "0ys8lanv0xxbwfmqkfvdqvhbnv4vfjpzvpqjj11c1lxbv4wp2mbj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHA6Ly93d3cuYmFuYW5lbmZpc2NoLm5ldC9nbm9tZSIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMAp9"}}}
-, {"uuid": "lockscreen@sri.ramkrishna.me", "name": "Lock Screen", "pname": "lock-screen", "description": "Add lock icon to the panel and lock the screen instead of using ctrl-alt-l", "link": "https://extensions.gnome.org/extension/83/lock-screen/", "shell_version_map": {"40": {"version": "13", "sha256": "1zlc6m3mai884mkgyg4mwvb7dc3wwpgysbkpfqw35cxpxf7chfk2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsb2NrIGljb24gdG8gdGhlIHBhbmVsIGFuZCBsb2NrIHRoZSBzY3JlZW4gaW5zdGVhZCBvZiB1c2luZyBjdHJsLWFsdC1sIiwKICAibmFtZSI6ICJMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NyYW1rcmlzaG5hL2dub21lMy1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsb2Nrc2NyZWVuQHNyaS5yYW1rcmlzaG5hLm1lIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
+, {"uuid": "lockscreen@sri.ramkrishna.me", "name": "Lock Screen", "pname": "lock-screen", "description": "Add lock icon to the panel and lock the screen instead of using ctrl-alt-l", "link": "https://extensions.gnome.org/extension/83/lock-screen/", "shell_version_map": {"40": {"version": "14", "sha256": "1dh02rbq7pfvpjpgjq7rlx7lld2qhq602apn1g17hbxbcpdzz004", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsb2NrIGljb24gdG8gdGhlIHBhbmVsIGFuZCBsb2NrIHRoZSBzY3JlZW4gaW5zdGVhZCBvZiB1c2luZyBjdHJsLWFsdC1sIiwKICAibmFtZSI6ICJMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiNDAuMCIsCiAgICAiNDIuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NyYW1rcmlzaG5hL2dub21lMy1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsb2Nrc2NyZWVuQHNyaS5yYW1rcmlzaG5hLm1lIiwKICAidmVyc2lvbiI6IDE0Cn0="}, "42": {"version": "14", "sha256": "1dh02rbq7pfvpjpgjq7rlx7lld2qhq602apn1g17hbxbcpdzz004", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsb2NrIGljb24gdG8gdGhlIHBhbmVsIGFuZCBsb2NrIHRoZSBzY3JlZW4gaW5zdGVhZCBvZiB1c2luZyBjdHJsLWFsdC1sIiwKICAibmFtZSI6ICJMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiNDAuMCIsCiAgICAiNDIuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NyYW1rcmlzaG5hL2dub21lMy1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsb2Nrc2NyZWVuQHNyaS5yYW1rcmlzaG5hLm1lIiwKICAidmVyc2lvbiI6IDE0Cn0="}}}
 , {"uuid": "CoverflowAltTab@palatis.blogspot.com", "name": "Coverflow Alt-Tab", "pname": "coverflow-alt-tab", "description": "Replacement of Alt-Tab, iterates through windows in a cover-flow manner.", "link": "https://extensions.gnome.org/extension/97/coverflow-alt-tab/", "shell_version_map": {"38": {"version": "44", "sha256": "18qpriqi0h6la45bl584hglnni0ka2d5q4qv61wdcan28a7kywq4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNpbm5hbW9uLXZlcnNpb24iOiBbCiAgICAiMS4yIiwKICAgICIxLjQiLAogICAgIjEuNiIsCiAgICAiMS44IiwKICAgICIxLjkiLAogICAgIjIuMCIsCiAgICAiMi4xIiwKICAgICIyLjIiLAogICAgIjIuMyIsCiAgICAiMi40IiwKICAgICIyLjgiLAogICAgIjMuMCIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJSZXBsYWNlbWVudCBvZiBBbHQtVGFiLCBpdGVyYXRlcyB0aHJvdWdoIHdpbmRvd3MgaW4gYSBjb3Zlci1mbG93IG1hbm5lci4iLAogICJuYW1lIjogIkNvdmVyZmxvdyBBbHQtVGFiIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG1vNjAvQ292ZXJmbG93QWx0VGFiIiwKICAidXVpZCI6ICJDb3ZlcmZsb3dBbHRUYWJAcGFsYXRpcy5ibG9nc3BvdC5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}, "40": {"version": "49", "sha256": "0mmz5qrlx2gjfahpyy6c050wcif3pwwfff7i8wxf7xcmj21nqlwx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgIm5hbWUiOiAiQ292ZXJmbG93IEFsdC1UYWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RtbzYwL0NvdmVyZmxvd0FsdFRhYiIsCiAgInV1aWQiOiAiQ292ZXJmbG93QWx0VGFiQHBhbGF0aXMuYmxvZ3Nwb3QuY29tIiwKICAidmVyc2lvbiI6IDQ5Cn0="}, "41": {"version": "49", "sha256": "0mmz5qrlx2gjfahpyy6c050wcif3pwwfff7i8wxf7xcmj21nqlwx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgIm5hbWUiOiAiQ292ZXJmbG93IEFsdC1UYWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RtbzYwL0NvdmVyZmxvd0FsdFRhYiIsCiAgInV1aWQiOiAiQ292ZXJmbG93QWx0VGFiQHBhbGF0aXMuYmxvZ3Nwb3QuY29tIiwKICAidmVyc2lvbiI6IDQ5Cn0="}}}
 , {"uuid": "netspeed@hedayaty.gmail.com", "name": "NetSpeed", "pname": "netspeed", "description": "Displays Internet Speed", "link": "https://extensions.gnome.org/extension/104/netspeed/", "shell_version_map": {"40": {"version": "34", "sha256": "04137rwnnf2mbp228wl9qjcix6i7757cqsdamabdrjwclg147vql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIEludGVybmV0IFNwZWVkIiwKICAibmFtZSI6ICJOZXRTcGVlZCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJoZWRheWF0eUBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlZGF5YXR5L05ldFNwZWVkIiwKICAidXVpZCI6ICJuZXRzcGVlZEBoZWRheWF0eS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}, "41": {"version": "34", "sha256": "04137rwnnf2mbp228wl9qjcix6i7757cqsdamabdrjwclg147vql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIEludGVybmV0IFNwZWVkIiwKICAibmFtZSI6ICJOZXRTcGVlZCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJoZWRheWF0eUBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlZGF5YXR5L05ldFNwZWVkIiwKICAidXVpZCI6ICJuZXRzcGVlZEBoZWRheWF0eS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}}}
 , {"uuid": "favorites@cvine.org", "name": "Favorites Menu", "pname": "favorites-menu", "description": "Provide panel menu for favorites", "link": "https://extensions.gnome.org/extension/115/favorites-menu/", "shell_version_map": {"40": {"version": "15", "sha256": "02s0p33dcr6wrxivjd47rwb42whqc6qswr3qdvd7p6jym4zddbi2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgcGFuZWwgbWVudSBmb3IgZmF2b3JpdGVzIiwKICAibmFtZSI6ICJGYXZvcml0ZXMgTWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHA6Ly93d3cuY3ZpbmUucGx1cy5jb20vZmF2b3JpdGVzL2luZGV4Lmh0bWwiLAogICJ1dWlkIjogImZhdm9yaXRlc0BjdmluZS5vcmciLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "18", "sha256": "1ibamk57121qdd0g0mlbg569sk2qqpap1914vfg1ip3nh1n4fym5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgcGFuZWwgbWVudSBmb3IgZmF2b3JpdGVzIiwKICAibmFtZSI6ICJGYXZvcml0ZXMgTWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwOi8vd3d3LmN2aW5lLnBsdXMuY29tL2Zhdm9yaXRlcy9pbmRleC5odG1sIiwKICAidXVpZCI6ICJmYXZvcml0ZXNAY3ZpbmUub3JnIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "42": {"version": "18", "sha256": "1ibamk57121qdd0g0mlbg569sk2qqpap1914vfg1ip3nh1n4fym5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgcGFuZWwgbWVudSBmb3IgZmF2b3JpdGVzIiwKICAibmFtZSI6ICJGYXZvcml0ZXMgTWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwOi8vd3d3LmN2aW5lLnBsdXMuY29tL2Zhdm9yaXRlcy9pbmRleC5odG1sIiwKICAidXVpZCI6ICJmYXZvcml0ZXNAY3ZpbmUub3JnIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
@@ -34,11 +34,11 @@
 , {"uuid": "calc@danigm.wadobo.com", "name": "calc", "pname": "calc", "description": "Simple run dialog calculation", "link": "https://extensions.gnome.org/extension/388/calc/", "shell_version_map": {"40": {"version": "10", "sha256": "0zp9riszgiagai57mkl9pzj34fwg30l33ib611dddapvvj19y5cg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBydW4gZGlhbG9nIGNhbGN1bGF0aW9uIiwKICAibmFtZSI6ICJjYWxjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNhbGNAZGFuaWdtLndhZG9iby5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "41": {"version": "10", "sha256": "0zp9riszgiagai57mkl9pzj34fwg30l33ib611dddapvvj19y5cg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBydW4gZGlhbG9nIGNhbGN1bGF0aW9uIiwKICAibmFtZSI6ICJjYWxjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNhbGNAZGFuaWdtLndhZG9iby5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "42": {"version": "10", "sha256": "0zp9riszgiagai57mkl9pzj34fwg30l33ib611dddapvvj19y5cg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBydW4gZGlhbG9nIGNhbGN1bGF0aW9uIiwKICAibmFtZSI6ICJjYWxjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNhbGNAZGFuaWdtLndhZG9iby5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
 , {"uuid": "remmina-search-provider@alexmurray.github.com", "name": "Remmina Search Provider", "pname": "remmina-search-provider", "description": "Search for Remmina Remote Desktop Connections\n\nEasily search for and launch connections to remote machines by name and protocol.", "link": "https://extensions.gnome.org/extension/473/remmina-search-provider/", "shell_version_map": {"40": {"version": "13", "sha256": "04wxydmbx0nm5ss2i10y4alxsr6fkia2is85ln23k25bqn8b4csi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBmb3IgUmVtbWluYSBSZW1vdGUgRGVza3RvcCBDb25uZWN0aW9uc1xuXG5FYXNpbHkgc2VhcmNoIGZvciBhbmQgbGF1bmNoIGNvbm5lY3Rpb25zIHRvIHJlbW90ZSBtYWNoaW5lcyBieSBuYW1lIGFuZCBwcm90b2NvbC4iLAogICJuYW1lIjogIlJlbW1pbmEgU2VhcmNoIFByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjMyIiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxleG11cnJheS9yZW1taW5hLXNlYXJjaC1wcm92aWRlci8iLAogICJ1dWlkIjogInJlbW1pbmEtc2VhcmNoLXByb3ZpZGVyQGFsZXhtdXJyYXkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
 , {"uuid": "uptime-indicator@gniourfgniourf.gmail.com", "name": "Uptime Indicator", "pname": "uptime-indicator", "description": "Indicates uptime in status area. When clicked, a popup menu indicates the date when the system was started.", "link": "https://extensions.gnome.org/extension/508/uptime-indicator/", "shell_version_map": {"38": {"version": "18", "sha256": "1pzcbkc8a1f886wn7avpdw81vqch9zcyjr0pr961rfw3nykd073c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRlcyB1cHRpbWUgaW4gc3RhdHVzIGFyZWEuIFdoZW4gY2xpY2tlZCwgYSBwb3B1cCBtZW51IGluZGljYXRlcyB0aGUgZGF0ZSB3aGVuIHRoZSBzeXN0ZW0gd2FzIHN0YXJ0ZWQuIiwKICAibmFtZSI6ICJVcHRpbWUgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0duaW91cmYvVXB0aW1lLUluZGljYXRvciIsCiAgInV1aWQiOiAidXB0aW1lLWluZGljYXRvckBnbmlvdXJmZ25pb3VyZi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "40": {"version": "18", "sha256": "1pzcbkc8a1f886wn7avpdw81vqch9zcyjr0pr961rfw3nykd073c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRlcyB1cHRpbWUgaW4gc3RhdHVzIGFyZWEuIFdoZW4gY2xpY2tlZCwgYSBwb3B1cCBtZW51IGluZGljYXRlcyB0aGUgZGF0ZSB3aGVuIHRoZSBzeXN0ZW0gd2FzIHN0YXJ0ZWQuIiwKICAibmFtZSI6ICJVcHRpbWUgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0duaW91cmYvVXB0aW1lLUluZGljYXRvciIsCiAgInV1aWQiOiAidXB0aW1lLWluZGljYXRvckBnbmlvdXJmZ25pb3VyZi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}}}
-, {"uuid": "caffeine@patapon.info", "name": "Caffeine", "pname": "caffeine", "description": "Disable the screensaver and auto suspend", "link": "https://extensions.gnome.org/extension/517/caffeine/", "shell_version_map": {"38": {"version": "37", "sha256": "05g1910jcwkjl9gmvnk57ip20sbzy09mk4v6q2fm0pg8398v0vhf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW9ucGF0YXBvbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJ1dWlkIjogImNhZmZlaW5lQHBhdGFwb24uaW5mbyIsCiAgInZlcnNpb24iOiAzNwp9"}, "40": {"version": "40", "sha256": "1rza4ppzcimh6qmg14srawv16vas4lbcw4njxjigl29d9qf43sdr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lb25wYXRhcG9uL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jYWZmZWluZSIsCiAgInV1aWQiOiAiY2FmZmVpbmVAcGF0YXBvbi5pbmZvIiwKICAidmVyc2lvbiI6IDQwCn0="}, "41": {"version": "40", "sha256": "1rza4ppzcimh6qmg14srawv16vas4lbcw4njxjigl29d9qf43sdr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lb25wYXRhcG9uL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jYWZmZWluZSIsCiAgInV1aWQiOiAiY2FmZmVpbmVAcGF0YXBvbi5pbmZvIiwKICAidmVyc2lvbiI6IDQwCn0="}}}
+, {"uuid": "caffeine@patapon.info", "name": "Caffeine", "pname": "caffeine", "description": "Disable the screensaver and auto suspend", "link": "https://extensions.gnome.org/extension/517/caffeine/", "shell_version_map": {"38": {"version": "37", "sha256": "05g1910jcwkjl9gmvnk57ip20sbzy09mk4v6q2fm0pg8398v0vhf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW9ucGF0YXBvbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJ1dWlkIjogImNhZmZlaW5lQHBhdGFwb24uaW5mbyIsCiAgInZlcnNpb24iOiAzNwp9"}, "40": {"version": "41", "sha256": "0b3as6l7gd2k0swrgl0dah92l5gyia2slikllrakp2dfvpvxyd2g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW9ucGF0YXBvbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJ1dWlkIjogImNhZmZlaW5lQHBhdGFwb24uaW5mbyIsCiAgInZlcnNpb24iOiA0MQp9"}, "41": {"version": "41", "sha256": "0b3as6l7gd2k0swrgl0dah92l5gyia2slikllrakp2dfvpvxyd2g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW9ucGF0YXBvbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJ1dWlkIjogImNhZmZlaW5lQHBhdGFwb24uaW5mbyIsCiAgInZlcnNpb24iOiA0MQp9"}, "42": {"version": "41", "sha256": "0b3as6l7gd2k0swrgl0dah92l5gyia2slikllrakp2dfvpvxyd2g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW9ucGF0YXBvbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJ1dWlkIjogImNhZmZlaW5lQHBhdGFwb24uaW5mbyIsCiAgInZlcnNpb24iOiA0MQp9"}}}
 , {"uuid": "backslide@codeisland.org", "name": "BackSlide", "pname": "backslide", "description": "Automatic background-image (wallpaper) slideshow for Gnome Shell", "link": "https://extensions.gnome.org/extension/543/backslide/", "shell_version_map": {"38": {"version": "18", "sha256": "1vm4w61cksj9ya5z4xcy7h96bk0wwi5njp0lyhnqa8j2fgsq5iin", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9iaXRidWNrZXQub3JnL0x1a2FzS251dGgvYmFja3NsaWRlIiwKICAidXVpZCI6ICJiYWNrc2xpZGVAY29kZWlzbGFuZC5vcmciLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "40": {"version": "24", "sha256": "0an1w35sbv5w7826xa3k8nl8hc3krxkzc8nhvgcp48z75n2wdksl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2JpdGJ1Y2tldC5vcmcvTHVrYXNLbnV0aC9iYWNrc2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyNAp9"}, "41": {"version": "24", "sha256": "0an1w35sbv5w7826xa3k8nl8hc3krxkzc8nhvgcp48z75n2wdksl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2JpdGJ1Y2tldC5vcmcvTHVrYXNLbnV0aC9iYWNrc2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyNAp9"}}}
 , {"uuid": "historymanager-prefix-search@sustmidown.centrum.cz", "name": "HistoryManager Prefix Search", "pname": "historymanager-prefix-search", "description": "Use PageUp and PageDown to move in HistoryManager (eg. RunCommand, Looking Glass) according to prefix", "link": "https://extensions.gnome.org/extension/544/historymanager-prefix-search/", "shell_version_map": {"40": {"version": "14", "sha256": "1n6gac80xrk6lhlj29zb03h62ia0a66va0i9pmjgqbg3bs74yds0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW5Db21tYW5kLCBMb29raW5nIEdsYXNzKSBhY2NvcmRpbmcgdG8gcHJlZml4IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgIm5hbWUiOiAiSGlzdG9yeU1hbmFnZXIgUHJlZml4IFNlYXJjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5oaXN0b3J5bWFuYWdlci1wcmVmaXgtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy43LjMiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3VzdG1pL2dub21lLXNoZWxsLWV4dGVuc2lvbi1oaXN0b3J5bWFuYWdlci1wcmVmaXgtc2VhcmNoIiwKICAidXVpZCI6ICJoaXN0b3J5bWFuYWdlci1wcmVmaXgtc2VhcmNoQHN1c3RtaWRvd24uY2VudHJ1bS5jeiIsCiAgInZlcnNpb24iOiAxNAp9"}}}
 , {"uuid": "hidetopbar@mathieu.bidon.ca", "name": "Hide Top Bar", "pname": "hide-top-bar", "description": "Hides the top bar, except in overview. However, there is an option to show the panel whenever the mouse pointer approaches the edge of the screen. And if \"intellihide\" is enabled, the panel only hides when a window takes the space.\n\n- Press backspace to remove keyboard shortcut.\n- Log off and on again when there is an error after upgrading.", "link": "https://extensions.gnome.org/extension/545/hide-top-bar/", "shell_version_map": {"38": {"version": "107", "sha256": "0hcja35hvwlsgan7344j2bs8ky8p67icnqc0dpghb2aayn6wa103", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21sdXRmeS9oaWRldG9wYmFyIiwKICAidXVpZCI6ICJoaWRldG9wYmFyQG1hdGhpZXUuYmlkb24uY2EiLAogICJ2ZXJzaW9uIjogMTA3Cn0="}, "40": {"version": "107", "sha256": "0hcja35hvwlsgan7344j2bs8ky8p67icnqc0dpghb2aayn6wa103", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21sdXRmeS9oaWRldG9wYmFyIiwKICAidXVpZCI6ICJoaWRldG9wYmFyQG1hdGhpZXUuYmlkb24uY2EiLAogICJ2ZXJzaW9uIjogMTA3Cn0="}, "41": {"version": "107", "sha256": "0hcja35hvwlsgan7344j2bs8ky8p67icnqc0dpghb2aayn6wa103", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21sdXRmeS9oaWRldG9wYmFyIiwKICAidXVpZCI6ICJoaWRldG9wYmFyQG1hdGhpZXUuYmlkb24uY2EiLAogICJ2ZXJzaW9uIjogMTA3Cn0="}, "42": {"version": "107", "sha256": "0hcja35hvwlsgan7344j2bs8ky8p67icnqc0dpghb2aayn6wa103", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21sdXRmeS9oaWRldG9wYmFyIiwKICAidXVpZCI6ICJoaWRldG9wYmFyQG1hdGhpZXUuYmlkb24uY2EiLAogICJ2ZXJzaW9uIjogMTA3Cn0="}}}
-, {"uuid": "hdate@hatul.info", "name": "Gnome HDate", "pname": "gnome-hdate", "description": "Show Hebrew Date in the Panel.\nRequires libhdate-glib", "link": "https://extensions.gnome.org/extension/554/gnome-hdate/", "shell_version_map": {"40": {"version": "20", "sha256": "1aj5ry3g93wx1crn8rr2jm9vbz07kz0r7qc6sr2vj352bgjzrlbf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiIsCiAgIm5hbWUiOiAiR25vbWUgSERhdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1pYWQvZ25vbWUtaGRhdGUiLAogICJ1dWlkIjogImhkYXRlQGhhdHVsLmluZm8iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}, "41": {"version": "20", "sha256": "1aj5ry3g93wx1crn8rr2jm9vbz07kz0r7qc6sr2vj352bgjzrlbf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiIsCiAgIm5hbWUiOiAiR25vbWUgSERhdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1pYWQvZ25vbWUtaGRhdGUiLAogICJ1dWlkIjogImhkYXRlQGhhdHVsLmluZm8iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
+, {"uuid": "hdate@hatul.info", "name": "Gnome HDate", "pname": "gnome-hdate", "description": "Show Hebrew Date in the Panel.\nRequires libhdate-glib", "link": "https://extensions.gnome.org/extension/554/gnome-hdate/", "shell_version_map": {"40": {"version": "23", "sha256": "14n41x3808gp35wkd89cwprxgmh9w5sqfi5jx7i8rpa0cb1jzw34", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiIsCiAgIm5hbWUiOiAiR25vbWUgSERhdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtaWFkL2dub21lLWhkYXRlIiwKICAidXVpZCI6ICJoZGF0ZUBoYXR1bC5pbmZvIiwKICAidmVyc2lvbiI6IDIzCn0="}, "41": {"version": "23", "sha256": "14n41x3808gp35wkd89cwprxgmh9w5sqfi5jx7i8rpa0cb1jzw34", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiIsCiAgIm5hbWUiOiAiR25vbWUgSERhdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtaWFkL2dub21lLWhkYXRlIiwKICAidXVpZCI6ICJoZGF0ZUBoYXR1bC5pbmZvIiwKICAidmVyc2lvbiI6IDIzCn0="}, "42": {"version": "23", "sha256": "14n41x3808gp35wkd89cwprxgmh9w5sqfi5jx7i8rpa0cb1jzw34", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiIsCiAgIm5hbWUiOiAiR25vbWUgSERhdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtaWFkL2dub21lLWhkYXRlIiwKICAidXVpZCI6ICJoZGF0ZUBoYXR1bC5pbmZvIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
 , {"uuid": "todo.txt@bart.libert.gmail.com", "name": "Todo.txt", "pname": "todotxt", "description": "A Gnome shell interface for todo.txt. \n\nTodo.txt is a future-proof syntax for tasks (not made by me), for more info: http://todotxt.com/\n\nSome examples:\nTask: Basic task\n(A) Task: High priority task\nTask @project +context: Task is part of project and has a certain context\nx 2013-08-22 Task: Task was completed on the 22nd of August\n\nFor more info about the syntax: https://github.com/ginatrapani/todo.txt-cli/wiki/The-Todo.txt-Format\n\nQuick start:\nWhen you first enable the extension, chances are high you'll see a [X] in your top panel. If you click the [X], you will be able to choose between creating the necessary files automatically or selecting your own existing files to be used with the extension.\n\nPlease use the issue tracker on the homepage to report bugs and/or file feature requests, this makes tracking easier for me. Thanks!\n\nSee the included CHANGELOG.md for info about changes between different versions, or see it online: https://gitlab.com/bartl/todo-txt-gnome-shell-extension/raw/master/CHANGELOG.md", "link": "https://extensions.gnome.org/extension/570/todotxt/", "shell_version_map": {"38": {"version": "33", "sha256": "1spq0i8w9xw8zgq3niqzs2dslg01l0gsbcys26p8lpydz0dsy7xa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vYmFydGwvdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3Jhdy9tYXN0ZXIvQ0hBTkdFTE9HLm1kIiwKICAibmFtZSI6ICJUb2RvLnR4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2JhcnRsL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidG9kby50eHRAYmFydC5saWJlcnQuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMzCn0="}, "40": {"version": "35", "sha256": "18vc11nls6giskq94kw48kbcx399706rglaqsmla4yvix0jkd8lz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vYmFydGwvdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3Jhdy9tYXN0ZXIvQ0hBTkdFTE9HLm1kIiwKICAibmFtZSI6ICJUb2RvLnR4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9iYXJ0bC90b2RvLXR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZG8udHh0QGJhcnQubGliZXJ0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNQp9"}, "41": {"version": "37", "sha256": "0nixk7nwn987qrkmcbf5lkq2yj4ijq4hszmhz7fqrvvhlivp8xix", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vYmFydGwvdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3Jhdy9tYXN0ZXIvQ0hBTkdFTE9HLm1kIiwKICAibmFtZSI6ICJUb2RvLnR4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYmFydGwvdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0b2RvLnR4dEBiYXJ0LmxpYmVydC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="}, "42": {"version": "37", "sha256": "0nixk7nwn987qrkmcbf5lkq2yj4ijq4hszmhz7fqrvvhlivp8xix", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vYmFydGwvdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3Jhdy9tYXN0ZXIvQ0hBTkdFTE9HLm1kIiwKICAibmFtZSI6ICJUb2RvLnR4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYmFydGwvdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0b2RvLnR4dEBiYXJ0LmxpYmVydC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="}}}
 , {"uuid": "text_translator@awamper.gmail.com", "name": "Text Translator", "pname": "text-translator", "description": "** Needs the package translate-shell **\nTranslation of the text by different translators (currently Google.Translate, Yandex.Translate).\nShortcuts:\nSuper+T - open translator dialog.\nSuper+Shift+T - open translator dialog and translate text from clipboard.\nSuper+Alt+T - open translator dialog and translate from primary selection.\nCtrl+Enter+ - Translate text.\nCtrl+Shift+C - copy translated text to clipboard.\nCtrl+S - swap languages.\nCtrl+D - reset languages to default\nTab+ - toggle transliteration of result text.", "link": "https://extensions.gnome.org/extension/593/text-translator/", "shell_version_map": {"38": {"version": "36", "sha256": "1idzgg4vb791k5dryjvznr6mfwfx59vlgabw2n3spysbwvjv2a48", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIioqIE5lZWRzIHRoZSBwYWNrYWdlIHRyYW5zbGF0ZS1zaGVsbCAqKlxuVHJhbnNsYXRpb24gb2YgdGhlIHRleHQgYnkgZGlmZmVyZW50IHRyYW5zbGF0b3JzIChjdXJyZW50bHkgR29vZ2xlLlRyYW5zbGF0ZSwgWWFuZGV4LlRyYW5zbGF0ZSkuXG5TaG9ydGN1dHM6XG5TdXBlcitUIC0gb3BlbiB0cmFuc2xhdG9yIGRpYWxvZy5cblN1cGVyK1NoaWZ0K1QgLSBvcGVuIHRyYW5zbGF0b3IgZGlhbG9nIGFuZCB0cmFuc2xhdGUgdGV4dCBmcm9tIGNsaXBib2FyZC5cblN1cGVyK0FsdCtUIC0gb3BlbiB0cmFuc2xhdG9yIGRpYWxvZyBhbmQgdHJhbnNsYXRlIGZyb20gcHJpbWFyeSBzZWxlY3Rpb24uXG5DdHJsK0VudGVyKyAtIFRyYW5zbGF0ZSB0ZXh0LlxuQ3RybCtTaGlmdCtDIC0gY29weSB0cmFuc2xhdGVkIHRleHQgdG8gY2xpcGJvYXJkLlxuQ3RybCtTIC0gc3dhcCBsYW5ndWFnZXMuXG5DdHJsK0QgLSByZXNldCBsYW5ndWFnZXMgdG8gZGVmYXVsdFxuVGFiKyAtIHRvZ2dsZSB0cmFuc2xpdGVyYXRpb24gb2YgcmVzdWx0IHRleHQuIiwKICAibmFtZSI6ICJUZXh0IFRyYW5zbGF0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGV4dC10cmFuc2xhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3Vmb2UvdGV4dC10cmFuc2xhdG9yIiwKICAidXVpZCI6ICJ0ZXh0X3RyYW5zbGF0b3JAYXdhbXBlci5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzYKfQ=="}}}
 , {"uuid": "autohide-battery@sitnik.ru", "name": "Autohide Battery", "pname": "autohide-battery", "description": "Hide battery icon in top panel, if battery is fully charged and AC is connected", "link": "https://extensions.gnome.org/extension/595/autohide-battery/", "shell_version_map": {"40": {"version": "26", "sha256": "0y9gy7y2y43z3vhcbqrjlbzv4yph8y3h3l3hapawbdzdp4nm337z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhdXRvaGlkZS1iYXR0ZXJ5IiwKICAibmFtZSI6ICJBdXRvaGlkZSBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWkvYXV0b2hpZGUtYmF0dGVyeSIsCiAgInV1aWQiOiAiYXV0b2hpZGUtYmF0dGVyeUBzaXRuaWsucnUiLAogICJ2ZXJzaW9uIjogMjYKfQ=="}, "41": {"version": "26", "sha256": "0y9gy7y2y43z3vhcbqrjlbzv4yph8y3h3l3hapawbdzdp4nm337z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhdXRvaGlkZS1iYXR0ZXJ5IiwKICAibmFtZSI6ICJBdXRvaGlkZSBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWkvYXV0b2hpZGUtYmF0dGVyeSIsCiAgInV1aWQiOiAiYXV0b2hpZGUtYmF0dGVyeUBzaXRuaWsucnUiLAogICJ2ZXJzaW9uIjogMjYKfQ=="}, "42": {"version": "26", "sha256": "0y9gy7y2y43z3vhcbqrjlbzv4yph8y3h3l3hapawbdzdp4nm337z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhdXRvaGlkZS1iYXR0ZXJ5IiwKICAibmFtZSI6ICJBdXRvaGlkZSBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWkvYXV0b2hpZGUtYmF0dGVyeSIsCiAgInV1aWQiOiAiYXV0b2hpZGUtYmF0dGVyeUBzaXRuaWsucnUiLAogICJ2ZXJzaW9uIjogMjYKfQ=="}}}
@@ -49,19 +49,19 @@
 , {"uuid": "bitcoin-markets@ottoallmendinger.github.com", "name": "Bitcoin Markets", "pname": "bitcoin-markets", "description": "Display info on various crypto-currency exchanges.", "link": "https://extensions.gnome.org/extension/648/bitcoin-markets/", "shell_version_map": {"38": {"version": "57", "sha256": "1dbrkr49gi93nps610afvw2q68d1ialkhxsxd0waa8xgwjxwzyxd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjU3IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3R0b0FsbG1lbmRpbmdlci9nbm9tZS1zaGVsbC1iaXRjb2luLW1hcmtldHMvIiwKICAidXVpZCI6ICJiaXRjb2luLW1hcmtldHNAb3R0b2FsbG1lbmRpbmdlci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU3Cn0="}, "40": {"version": "65", "sha256": "10jg1ixk0zfb67licr807wf68bzsdiv9fb9j40xjg49li72c6hrf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjY1IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLWJpdGNvaW4tbWFya2V0cy8iLAogICJ1dWlkIjogImJpdGNvaW4tbWFya2V0c0BvdHRvYWxsbWVuZGluZ2VyLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjUKfQ=="}, "41": {"version": "65", "sha256": "10jg1ixk0zfb67licr807wf68bzsdiv9fb9j40xjg49li72c6hrf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjY1IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLWJpdGNvaW4tbWFya2V0cy8iLAogICJ1dWlkIjogImJpdGNvaW4tbWFya2V0c0BvdHRvYWxsbWVuZGluZ2VyLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjUKfQ=="}}}
 , {"uuid": "ShellTile@emasab.it", "name": "ShellTile", "pname": "shelltile", "description": "A tiling window extension for GNOME Shell. Just move a window to the edges of the screen to create a tiling, otherwise move a window over another one, holding down the Control key. Grouped windows minimize, resize, raise and change workspace together. Move or maximize a window to remove it from the group.", "link": "https://extensions.gnome.org/extension/657/shelltile/", "shell_version_map": {"38": {"version": "65", "sha256": "0kb7crng8lmkcjjxzd7ma2x0x43rg4j5ygvvpiq5z2j15rx8bcg4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgdGlsaW5nIHdpbmRvdyBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBKdXN0IG1vdmUgYSB3aW5kb3cgdG8gdGhlIGVkZ2VzIG9mIHRoZSBzY3JlZW4gdG8gY3JlYXRlIGEgdGlsaW5nLCBvdGhlcndpc2UgbW92ZSBhIHdpbmRvdyBvdmVyIGFub3RoZXIgb25lLCBob2xkaW5nIGRvd24gdGhlIENvbnRyb2wga2V5LiBHcm91cGVkIHdpbmRvd3MgbWluaW1pemUsIHJlc2l6ZSwgcmFpc2UgYW5kIGNoYW5nZSB3b3Jrc3BhY2UgdG9nZXRoZXIuIE1vdmUgb3IgbWF4aW1pemUgYSB3aW5kb3cgdG8gcmVtb3ZlIGl0IGZyb20gdGhlIGdyb3VwLiIsCiAgImdldHRleHQtZG9tYWluIjogInNoZWxsdGlsZSIsCiAgIm5hbWUiOiAiU2hlbGxUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNoZWxsdGlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy42IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbWFzYWIvc2hlbGx0aWxlIiwKICAidXVpZCI6ICJTaGVsbFRpbGVAZW1hc2FiLml0IiwKICAidmVyc2lvbiI6IDY1Cn0="}}}
 , {"uuid": "lunarcal@ailin.nemui", "name": "Lunar Calendar 农历", "pname": "lunar-calendar", "description": "Display Chinese Lunar Calendar in panel\n\n⚠⚠⚠ dependency: typelib-1_0-LunarDate-3_0 / gir1.2-lunar-date-2.0", "link": "https://extensions.gnome.org/extension/675/lunar-calendar/", "shell_version_map": {"38": {"version": "25", "sha256": "1pj439wdsqpxim6p4d0y09v40kdjga908hagxfyvq0fzjykc51rn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyLWRhdGUtMi4wIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibHVuYXJjYWxAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "40": {"version": "28", "sha256": "068y5dy81ykmxy3cxi45xq0a0jg061fp22x9zhd4965kmvzqiq4g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyLWRhdGUtMi4wIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibHVuYXJjYWxAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMjgKfQ=="}, "41": {"version": "28", "sha256": "068y5dy81ykmxy3cxi45xq0a0jg061fp22x9zhd4965kmvzqiq4g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyLWRhdGUtMi4wIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibHVuYXJjYWxAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMjgKfQ=="}, "42": {"version": "28", "sha256": "068y5dy81ykmxy3cxi45xq0a0jg061fp22x9zhd4965kmvzqiq4g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyLWRhdGUtMi4wIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibHVuYXJjYWxAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMjgKfQ=="}}}
-, {"uuid": "EasyScreenCast@iacopodeenosee.gmail.com", "name": "EasyScreenCast", "pname": "easyscreencast", "description": "This extension simplifies the use of the video recording function integrated in gnome shell, allows quickly to change the various settings of the desktop recording.\n\nSOURCE CODE -&gt;  https://github.com/EasyScreenCast/EasyScreenCast\n\nVIDEO -&gt;  https://youtu.be/81E9AruraKU\n\n**NOTICE**\nif an error occurs during the update is recommended to reload GNOME Shell (Alt + F2, 'r') and reload the extension's installation page.", "link": "https://extensions.gnome.org/extension/690/easyscreencast/", "shell_version_map": {"38": {"version": "41", "sha256": "04zs03xbidfkhr8l0pi4p7jmri9z7sg729739jmv17lvi3nb0k8l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNpbXBsaWZpZXMgdGhlIHVzZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZ1bmN0aW9uIGludGVncmF0ZWQgaW4gZ25vbWUgc2hlbGwsIGFsbG93cyBxdWlja2x5IHRvIGNoYW5nZSB0aGUgdmFyaW91cyBzZXR0aW5ncyBvZiB0aGUgZGVza3RvcCByZWNvcmRpbmcuXG5cblNPVVJDRSBDT0RFIC0mZ3Q7ICBodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3RcblxuVklERU8gLSZndDsgIGh0dHBzOi8veW91dHUuYmUvODFFOUFydXJhS1VcblxuKipOT1RJQ0UqKlxuaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgdXBkYXRlIGlzIHJlY29tbWVuZGVkIHRvIHJlbG9hZCBHTk9NRSBTaGVsbCAoQWx0ICsgRjIsICdyJykgYW5kIHJlbG9hZCB0aGUgZXh0ZW5zaW9uJ3MgaW5zdGFsbGF0aW9uIHBhZ2UuIiwKICAibmFtZSI6ICJFYXN5U2NyZWVuQ2FzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3QiLAogICJ1dWlkIjogIkVhc3lTY3JlZW5DYXN0QGlhY29wb2RlZW5vc2VlLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0MQp9"}, "40": {"version": "41", "sha256": "04zs03xbidfkhr8l0pi4p7jmri9z7sg729739jmv17lvi3nb0k8l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNpbXBsaWZpZXMgdGhlIHVzZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZ1bmN0aW9uIGludGVncmF0ZWQgaW4gZ25vbWUgc2hlbGwsIGFsbG93cyBxdWlja2x5IHRvIGNoYW5nZSB0aGUgdmFyaW91cyBzZXR0aW5ncyBvZiB0aGUgZGVza3RvcCByZWNvcmRpbmcuXG5cblNPVVJDRSBDT0RFIC0mZ3Q7ICBodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3RcblxuVklERU8gLSZndDsgIGh0dHBzOi8veW91dHUuYmUvODFFOUFydXJhS1VcblxuKipOT1RJQ0UqKlxuaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgdXBkYXRlIGlzIHJlY29tbWVuZGVkIHRvIHJlbG9hZCBHTk9NRSBTaGVsbCAoQWx0ICsgRjIsICdyJykgYW5kIHJlbG9hZCB0aGUgZXh0ZW5zaW9uJ3MgaW5zdGFsbGF0aW9uIHBhZ2UuIiwKICAibmFtZSI6ICJFYXN5U2NyZWVuQ2FzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3QiLAogICJ1dWlkIjogIkVhc3lTY3JlZW5DYXN0QGlhY29wb2RlZW5vc2VlLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0MQp9"}, "41": {"version": "41", "sha256": "04zs03xbidfkhr8l0pi4p7jmri9z7sg729739jmv17lvi3nb0k8l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNpbXBsaWZpZXMgdGhlIHVzZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZ1bmN0aW9uIGludGVncmF0ZWQgaW4gZ25vbWUgc2hlbGwsIGFsbG93cyBxdWlja2x5IHRvIGNoYW5nZSB0aGUgdmFyaW91cyBzZXR0aW5ncyBvZiB0aGUgZGVza3RvcCByZWNvcmRpbmcuXG5cblNPVVJDRSBDT0RFIC0mZ3Q7ICBodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3RcblxuVklERU8gLSZndDsgIGh0dHBzOi8veW91dHUuYmUvODFFOUFydXJhS1VcblxuKipOT1RJQ0UqKlxuaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgdXBkYXRlIGlzIHJlY29tbWVuZGVkIHRvIHJlbG9hZCBHTk9NRSBTaGVsbCAoQWx0ICsgRjIsICdyJykgYW5kIHJlbG9hZCB0aGUgZXh0ZW5zaW9uJ3MgaW5zdGFsbGF0aW9uIHBhZ2UuIiwKICAibmFtZSI6ICJFYXN5U2NyZWVuQ2FzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3QiLAogICJ1dWlkIjogIkVhc3lTY3JlZW5DYXN0QGlhY29wb2RlZW5vc2VlLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0MQp9"}}}
+, {"uuid": "EasyScreenCast@iacopodeenosee.gmail.com", "name": "EasyScreenCast", "pname": "easyscreencast", "description": "This extension simplifies the use of the video recording function integrated in gnome shell, allows quickly to change the various settings of the desktop recording.\n\nSOURCE CODE -&gt;  https://github.com/EasyScreenCast/EasyScreenCast\n\nVIDEO -&gt;  https://youtu.be/81E9AruraKU\n\n**NOTICE**\nif an error occurs during the update is recommended to reload GNOME Shell (Alt + F2, 'r') and reload the extension's installation page.", "link": "https://extensions.gnome.org/extension/690/easyscreencast/", "shell_version_map": {"38": {"version": "44", "sha256": "0ycmlv5j3r6y3kvb7nr4wbf3zk4307is9kdnd2xax522467fi2af", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNpbXBsaWZpZXMgdGhlIHVzZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZ1bmN0aW9uIGludGVncmF0ZWQgaW4gZ25vbWUgc2hlbGwsIGFsbG93cyBxdWlja2x5IHRvIGNoYW5nZSB0aGUgdmFyaW91cyBzZXR0aW5ncyBvZiB0aGUgZGVza3RvcCByZWNvcmRpbmcuXG5cblNPVVJDRSBDT0RFIC0mZ3Q7ICBodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3RcblxuVklERU8gLSZndDsgIGh0dHBzOi8veW91dHUuYmUvODFFOUFydXJhS1VcblxuKipOT1RJQ0UqKlxuaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgdXBkYXRlIGlzIHJlY29tbWVuZGVkIHRvIHJlbG9hZCBHTk9NRSBTaGVsbCAoQWx0ICsgRjIsICdyJykgYW5kIHJlbG9hZCB0aGUgZXh0ZW5zaW9uJ3MgaW5zdGFsbGF0aW9uIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiRWFzeVNjcmVlbkNhc3RAaWFjb3BvZGVlbm9zZWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJFYXN5U2NyZWVuQ2FzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5FYXN5U2NyZWVuQ2FzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Vhc3lTY3JlZW5DYXN0L0Vhc3lTY3JlZW5DYXN0IiwKICAidXVpZCI6ICJFYXN5U2NyZWVuQ2FzdEBpYWNvcG9kZWVub3NlZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}, "40": {"version": "44", "sha256": "0ycmlv5j3r6y3kvb7nr4wbf3zk4307is9kdnd2xax522467fi2af", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNpbXBsaWZpZXMgdGhlIHVzZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZ1bmN0aW9uIGludGVncmF0ZWQgaW4gZ25vbWUgc2hlbGwsIGFsbG93cyBxdWlja2x5IHRvIGNoYW5nZSB0aGUgdmFyaW91cyBzZXR0aW5ncyBvZiB0aGUgZGVza3RvcCByZWNvcmRpbmcuXG5cblNPVVJDRSBDT0RFIC0mZ3Q7ICBodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3RcblxuVklERU8gLSZndDsgIGh0dHBzOi8veW91dHUuYmUvODFFOUFydXJhS1VcblxuKipOT1RJQ0UqKlxuaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgdXBkYXRlIGlzIHJlY29tbWVuZGVkIHRvIHJlbG9hZCBHTk9NRSBTaGVsbCAoQWx0ICsgRjIsICdyJykgYW5kIHJlbG9hZCB0aGUgZXh0ZW5zaW9uJ3MgaW5zdGFsbGF0aW9uIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiRWFzeVNjcmVlbkNhc3RAaWFjb3BvZGVlbm9zZWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJFYXN5U2NyZWVuQ2FzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5FYXN5U2NyZWVuQ2FzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Vhc3lTY3JlZW5DYXN0L0Vhc3lTY3JlZW5DYXN0IiwKICAidXVpZCI6ICJFYXN5U2NyZWVuQ2FzdEBpYWNvcG9kZWVub3NlZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}, "41": {"version": "44", "sha256": "0ycmlv5j3r6y3kvb7nr4wbf3zk4307is9kdnd2xax522467fi2af", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNpbXBsaWZpZXMgdGhlIHVzZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZ1bmN0aW9uIGludGVncmF0ZWQgaW4gZ25vbWUgc2hlbGwsIGFsbG93cyBxdWlja2x5IHRvIGNoYW5nZSB0aGUgdmFyaW91cyBzZXR0aW5ncyBvZiB0aGUgZGVza3RvcCByZWNvcmRpbmcuXG5cblNPVVJDRSBDT0RFIC0mZ3Q7ICBodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3RcblxuVklERU8gLSZndDsgIGh0dHBzOi8veW91dHUuYmUvODFFOUFydXJhS1VcblxuKipOT1RJQ0UqKlxuaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgdXBkYXRlIGlzIHJlY29tbWVuZGVkIHRvIHJlbG9hZCBHTk9NRSBTaGVsbCAoQWx0ICsgRjIsICdyJykgYW5kIHJlbG9hZCB0aGUgZXh0ZW5zaW9uJ3MgaW5zdGFsbGF0aW9uIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiRWFzeVNjcmVlbkNhc3RAaWFjb3BvZGVlbm9zZWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJFYXN5U2NyZWVuQ2FzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5FYXN5U2NyZWVuQ2FzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Vhc3lTY3JlZW5DYXN0L0Vhc3lTY3JlZW5DYXN0IiwKICAidXVpZCI6ICJFYXN5U2NyZWVuQ2FzdEBpYWNvcG9kZWVub3NlZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}, "42": {"version": "44", "sha256": "0ycmlv5j3r6y3kvb7nr4wbf3zk4307is9kdnd2xax522467fi2af", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNpbXBsaWZpZXMgdGhlIHVzZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZ1bmN0aW9uIGludGVncmF0ZWQgaW4gZ25vbWUgc2hlbGwsIGFsbG93cyBxdWlja2x5IHRvIGNoYW5nZSB0aGUgdmFyaW91cyBzZXR0aW5ncyBvZiB0aGUgZGVza3RvcCByZWNvcmRpbmcuXG5cblNPVVJDRSBDT0RFIC0mZ3Q7ICBodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3RcblxuVklERU8gLSZndDsgIGh0dHBzOi8veW91dHUuYmUvODFFOUFydXJhS1VcblxuKipOT1RJQ0UqKlxuaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgdXBkYXRlIGlzIHJlY29tbWVuZGVkIHRvIHJlbG9hZCBHTk9NRSBTaGVsbCAoQWx0ICsgRjIsICdyJykgYW5kIHJlbG9hZCB0aGUgZXh0ZW5zaW9uJ3MgaW5zdGFsbGF0aW9uIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiRWFzeVNjcmVlbkNhc3RAaWFjb3BvZGVlbm9zZWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJFYXN5U2NyZWVuQ2FzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5FYXN5U2NyZWVuQ2FzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Vhc3lTY3JlZW5DYXN0L0Vhc3lTY3JlZW5DYXN0IiwKICAidXVpZCI6ICJFYXN5U2NyZWVuQ2FzdEBpYWNvcG9kZWVub3NlZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}}}
 , {"uuid": "scroll-workspaces@gfxmonk.net", "name": "Top Panel Workspace Scroll", "pname": "top-panel-workspace-scroll", "description": "Change workspaces by scrolling over the top panel", "link": "https://extensions.gnome.org/extension/701/top-panel-workspace-scroll/", "shell_version_map": {"40": {"version": "31", "sha256": "0zc37qnzmnc4l9j8q23bxl59xxwz31pk4wc3vamzwgz65ncjn469", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB3b3Jrc3BhY2VzIGJ5IHNjcm9sbGluZyBvdmVyIHRoZSB0b3AgcGFuZWwiLAogICJuYW1lIjogIlRvcCBQYW5lbCBXb3Jrc3BhY2UgU2Nyb2xsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJ0aW1AZ2Z4bW9uay5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5ldC5nZnhtb25rLnNjcm9sbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2Z4bW9uay9nbm9tZS1zaGVsbC1zY3JvbGwtd29ya3NwYWNlcyIsCiAgInV1aWQiOiAic2Nyb2xsLXdvcmtzcGFjZXNAZ2Z4bW9uay5uZXQiLAogICJ2ZXJzaW9uIjogMzEKfQ=="}, "41": {"version": "31", "sha256": "0zc37qnzmnc4l9j8q23bxl59xxwz31pk4wc3vamzwgz65ncjn469", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB3b3Jrc3BhY2VzIGJ5IHNjcm9sbGluZyBvdmVyIHRoZSB0b3AgcGFuZWwiLAogICJuYW1lIjogIlRvcCBQYW5lbCBXb3Jrc3BhY2UgU2Nyb2xsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJ0aW1AZ2Z4bW9uay5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5ldC5nZnhtb25rLnNjcm9sbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2Z4bW9uay9nbm9tZS1zaGVsbC1zY3JvbGwtd29ya3NwYWNlcyIsCiAgInV1aWQiOiAic2Nyb2xsLXdvcmtzcGFjZXNAZ2Z4bW9uay5uZXQiLAogICJ2ZXJzaW9uIjogMzEKfQ=="}, "42": {"version": "31", "sha256": "0zc37qnzmnc4l9j8q23bxl59xxwz31pk4wc3vamzwgz65ncjn469", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB3b3Jrc3BhY2VzIGJ5IHNjcm9sbGluZyBvdmVyIHRoZSB0b3AgcGFuZWwiLAogICJuYW1lIjogIlRvcCBQYW5lbCBXb3Jrc3BhY2UgU2Nyb2xsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJ0aW1AZ2Z4bW9uay5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5ldC5nZnhtb25rLnNjcm9sbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2Z4bW9uay9nbm9tZS1zaGVsbC1zY3JvbGwtd29ya3NwYWNlcyIsCiAgInV1aWQiOiAic2Nyb2xsLXdvcmtzcGFjZXNAZ2Z4bW9uay5uZXQiLAogICJ2ZXJzaW9uIjogMzEKfQ=="}}}
 , {"uuid": "all-windows@ezix.org", "name": "All Windows", "pname": "all-windows", "description": "List open windows of all workspaces", "link": "https://extensions.gnome.org/extension/704/all-windows/", "shell_version_map": {"40": {"version": "13", "sha256": "19cxrgxpim2dca6llbi8cr34hjx3pab2i4687803r96cp2hsg07l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3Qgb3BlbiB3aW5kb3dzIG9mIGFsbCB3b3Jrc3BhY2VzIiwKICAibmFtZSI6ICJBbGwgV2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHlvbmVsL2FsbC13aW5kb3dzIiwKICAidXVpZCI6ICJhbGwtd2luZG93c0Bleml4Lm9yZyIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "19cxrgxpim2dca6llbi8cr34hjx3pab2i4687803r96cp2hsg07l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3Qgb3BlbiB3aW5kb3dzIG9mIGFsbCB3b3Jrc3BhY2VzIiwKICAibmFtZSI6ICJBbGwgV2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHlvbmVsL2FsbC13aW5kb3dzIiwKICAidXVpZCI6ICJhbGwtd2luZG93c0Bleml4Lm9yZyIsCiAgInZlcnNpb24iOiAxMwp9"}}}
-, {"uuid": "panel-osd@berend.de.schouwer.gmail.com", "name": "Panel OSD", "pname": "panel-osd", "description": "Configuring where on the (main) screen notifications will appear, instead of just above the message tray", "link": "https://extensions.gnome.org/extension/708/panel-osd/", "shell_version_map": {"38": {"version": "39", "sha256": "109qlcckx5z8fwndpr86r2bfggyh4akmi6lqi0ki7gr9bfigdqnv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyaW5nIHdoZXJlIG9uIHRoZSAobWFpbikgc2NyZWVuIG5vdGlmaWNhdGlvbnMgd2lsbCBhcHBlYXIsIGluc3RlYWQgb2YganVzdCBhYm92ZSB0aGUgbWVzc2FnZSB0cmF5IiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJQYW5lbCBPU0QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qZW5zbG9keS9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGFuZWwtb3NkIiwKICAidXVpZCI6ICJwYW5lbC1vc2RAYmVyZW5kLmRlLnNjaG91d2VyLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}, "40": {"version": "40", "sha256": "0hskvmdnqjihixaxhb7a7apsx0203zmymm5j6ncb2al928p795yx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyaW5nIHdoZXJlIG9uIHRoZSAobWFpbikgc2NyZWVuIG5vdGlmaWNhdGlvbnMgd2lsbCBhcHBlYXIsIGluc3RlYWQgb2YganVzdCBhYm92ZSB0aGUgbWVzc2FnZSB0cmF5IiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJQYW5lbCBPU0QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vamVuc2xvZHkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBhbmVsLW9zZCIsCiAgInV1aWQiOiAicGFuZWwtb3NkQGJlcmVuZC5kZS5zY2hvdXdlci5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDAKfQ=="}}}
+, {"uuid": "panel-osd@berend.de.schouwer.gmail.com", "name": "Panel OSD", "pname": "panel-osd", "description": "I'm sorry to say, that I am not able to work on this project anymore.\nI simply don't have the power to do it any longer.\nIf anybody wants to take it over, feel free to fork it.\nBest wishes to all the users.\n\nJens\n\nConfiguring where on the (main) screen notifications will appear, instead of just above the message tray", "link": "https://extensions.gnome.org/extension/708/panel-osd/", "shell_version_map": {"38": {"version": "39", "sha256": "12mv6fcaanv6r3zrf7717jqzq5mndy25gqh6y7hqh9cmyssakis2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkknbSBzb3JyeSB0byBzYXksIHRoYXQgSSBhbSBub3QgYWJsZSB0byB3b3JrIG9uIHRoaXMgcHJvamVjdCBhbnltb3JlLlxuSSBzaW1wbHkgZG9uJ3QgaGF2ZSB0aGUgcG93ZXIgdG8gZG8gaXQgYW55IGxvbmdlci5cbklmIGFueWJvZHkgd2FudHMgdG8gdGFrZSBpdCBvdmVyLCBmZWVsIGZyZWUgdG8gZm9yayBpdC5cbkJlc3Qgd2lzaGVzIHRvIGFsbCB0aGUgdXNlcnMuXG5cbkplbnNcblxuQ29uZmlndXJpbmcgd2hlcmUgb24gdGhlIChtYWluKSBzY3JlZW4gbm90aWZpY2F0aW9ucyB3aWxsIGFwcGVhciwgaW5zdGVhZCBvZiBqdXN0IGFib3ZlIHRoZSBtZXNzYWdlIHRyYXkiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlBhbmVsIE9TRCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2plbnNsb2R5L2dub21lLXNoZWxsLWV4dGVuc2lvbi1wYW5lbC1vc2QiLAogICJ1dWlkIjogInBhbmVsLW9zZEBiZXJlbmQuZGUuc2Nob3V3ZXIuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM5Cn0="}, "40": {"version": "40", "sha256": "16bqq0w6xrzix74xwhj2pyj22scszvspc770w1pkdhmj54mypwks", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkknbSBzb3JyeSB0byBzYXksIHRoYXQgSSBhbSBub3QgYWJsZSB0byB3b3JrIG9uIHRoaXMgcHJvamVjdCBhbnltb3JlLlxuSSBzaW1wbHkgZG9uJ3QgaGF2ZSB0aGUgcG93ZXIgdG8gZG8gaXQgYW55IGxvbmdlci5cbklmIGFueWJvZHkgd2FudHMgdG8gdGFrZSBpdCBvdmVyLCBmZWVsIGZyZWUgdG8gZm9yayBpdC5cbkJlc3Qgd2lzaGVzIHRvIGFsbCB0aGUgdXNlcnMuXG5cbkplbnNcblxuQ29uZmlndXJpbmcgd2hlcmUgb24gdGhlIChtYWluKSBzY3JlZW4gbm90aWZpY2F0aW9ucyB3aWxsIGFwcGVhciwgaW5zdGVhZCBvZiBqdXN0IGFib3ZlIHRoZSBtZXNzYWdlIHRyYXkiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlBhbmVsIE9TRCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qZW5zbG9keS9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGFuZWwtb3NkIiwKICAidXVpZCI6ICJwYW5lbC1vc2RAYmVyZW5kLmRlLnNjaG91d2VyLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0MAp9"}}}
 , {"uuid": "pixel-saver@deadalnix.me", "name": "Pixel Saver", "pname": "pixel-saver", "description": "Pixel Saver is designed to save pixel by fusing activity bar and title bar in a natural way", "link": "https://extensions.gnome.org/extension/723/pixel-saver/", "shell_version_map": {"38": {"version": "26", "sha256": "1i284r5443cypw7jq31rrbc4f075piaq872331qnrrynv4s1k8cn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpeGVsIFNhdmVyIGlzIGRlc2lnbmVkIHRvIHNhdmUgcGl4ZWwgYnkgZnVzaW5nIGFjdGl2aXR5IGJhciBhbmQgdGl0bGUgYmFyIGluIGEgbmF0dXJhbCB3YXkiLAogICJuYW1lIjogIlBpeGVsIFNhdmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MC4yIiwKICAgICI0MC4zIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIiwKICAgICI0MS4xIiwKICAgICI0MS4yIiwKICAgICI0MS4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVhZGFsbml4L3BpeGVsLXNhdmVyIiwKICAidXVpZCI6ICJwaXhlbC1zYXZlckBkZWFkYWxuaXgubWUiLAogICJ2ZXJzaW9uIjogMjYKfQ=="}, "40": {"version": "26", "sha256": "1i284r5443cypw7jq31rrbc4f075piaq872331qnrrynv4s1k8cn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpeGVsIFNhdmVyIGlzIGRlc2lnbmVkIHRvIHNhdmUgcGl4ZWwgYnkgZnVzaW5nIGFjdGl2aXR5IGJhciBhbmQgdGl0bGUgYmFyIGluIGEgbmF0dXJhbCB3YXkiLAogICJuYW1lIjogIlBpeGVsIFNhdmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MC4yIiwKICAgICI0MC4zIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIiwKICAgICI0MS4xIiwKICAgICI0MS4yIiwKICAgICI0MS4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVhZGFsbml4L3BpeGVsLXNhdmVyIiwKICAidXVpZCI6ICJwaXhlbC1zYXZlckBkZWFkYWxuaXgubWUiLAogICJ2ZXJzaW9uIjogMjYKfQ=="}, "41": {"version": "26", "sha256": "1i284r5443cypw7jq31rrbc4f075piaq872331qnrrynv4s1k8cn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpeGVsIFNhdmVyIGlzIGRlc2lnbmVkIHRvIHNhdmUgcGl4ZWwgYnkgZnVzaW5nIGFjdGl2aXR5IGJhciBhbmQgdGl0bGUgYmFyIGluIGEgbmF0dXJhbCB3YXkiLAogICJuYW1lIjogIlBpeGVsIFNhdmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MC4yIiwKICAgICI0MC4zIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIiwKICAgICI0MS4xIiwKICAgICI0MS4yIiwKICAgICI0MS4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVhZGFsbml4L3BpeGVsLXNhdmVyIiwKICAidXVpZCI6ICJwaXhlbC1zYXZlckBkZWFkYWxuaXgubWUiLAogICJ2ZXJzaW9uIjogMjYKfQ=="}, "42": {"version": "26", "sha256": "1i284r5443cypw7jq31rrbc4f075piaq872331qnrrynv4s1k8cn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpeGVsIFNhdmVyIGlzIGRlc2lnbmVkIHRvIHNhdmUgcGl4ZWwgYnkgZnVzaW5nIGFjdGl2aXR5IGJhciBhbmQgdGl0bGUgYmFyIGluIGEgbmF0dXJhbCB3YXkiLAogICJuYW1lIjogIlBpeGVsIFNhdmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MC4yIiwKICAgICI0MC4zIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIiwKICAgICI0MS4xIiwKICAgICI0MS4yIiwKICAgICI0MS4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVhZGFsbml4L3BpeGVsLXNhdmVyIiwKICAidXVpZCI6ICJwaXhlbC1zYXZlckBkZWFkYWxuaXgubWUiLAogICJ2ZXJzaW9uIjogMjYKfQ=="}}}
 , {"uuid": "breakreminder@danielfalk22.gmail.com", "name": "Break Reminder", "pname": "break-reminder", "description": "Get a reminder to take a break", "link": "https://extensions.gnome.org/extension/734/break-reminder/", "shell_version_map": {"38": {"version": "6", "sha256": "0k21wj98ldx52m7s8sgndqziqnn7n0g2j45lsi31kfjydhyj3dmk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdldCBhIHJlbWluZGVyIHRvIHRha2UgYSBicmVhayIsCiAgIm5hbWUiOiAiQnJlYWsgUmVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZWxmYWxrL2dub21lM2JyZWFrcmVtaW5kZXIiLAogICJ1dWlkIjogImJyZWFrcmVtaW5kZXJAZGFuaWVsZmFsazIyLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"uuid": "Hide_Activities@shay.shayel.org", "name": "Hide Activities Button", "pname": "hide-activities-button", "description": "Hides the Activities button from the status bar (the hot corner and keyboard shortcut keeps working). To disable top left hot corner use 'No Topleft Hot Corner' extension — https://extensions.gnome.org/extension/118/no-topleft-hot-corner/ .", "link": "https://extensions.gnome.org/extension/744/hide-activities-button/", "shell_version_map": {"38": {"version": "13", "sha256": "0kr8ygb5wv2p2fzkd5gm7v9kcc54mdcrb4v1v3x1sniqgq69d856", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBmcm9tIHRoZSBzdGF0dXMgYmFyICh0aGUgaG90IGNvcm5lciBhbmQga2V5Ym9hcmQgc2hvcnRjdXQga2VlcHMgd29ya2luZykuIFRvIGRpc2FibGUgdG9wIGxlZnQgaG90IGNvcm5lciB1c2UgJ05vIFRvcGxlZnQgSG90IENvcm5lcicgZXh0ZW5zaW9uIFx1MjAxNCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTgvbm8tdG9wbGVmdC1ob3QtY29ybmVyLyAuIiwKICAibmFtZSI6ICJIaWRlIEFjdGl2aXRpZXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkhpZGVfQWN0aXZpdGllc0BzaGF5LnNoYXllbC5vcmciLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "40": {"version": "13", "sha256": "0kr8ygb5wv2p2fzkd5gm7v9kcc54mdcrb4v1v3x1sniqgq69d856", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBmcm9tIHRoZSBzdGF0dXMgYmFyICh0aGUgaG90IGNvcm5lciBhbmQga2V5Ym9hcmQgc2hvcnRjdXQga2VlcHMgd29ya2luZykuIFRvIGRpc2FibGUgdG9wIGxlZnQgaG90IGNvcm5lciB1c2UgJ05vIFRvcGxlZnQgSG90IENvcm5lcicgZXh0ZW5zaW9uIFx1MjAxNCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTgvbm8tdG9wbGVmdC1ob3QtY29ybmVyLyAuIiwKICAibmFtZSI6ICJIaWRlIEFjdGl2aXRpZXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkhpZGVfQWN0aXZpdGllc0BzaGF5LnNoYXllbC5vcmciLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "41": {"version": "13", "sha256": "0kr8ygb5wv2p2fzkd5gm7v9kcc54mdcrb4v1v3x1sniqgq69d856", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBmcm9tIHRoZSBzdGF0dXMgYmFyICh0aGUgaG90IGNvcm5lciBhbmQga2V5Ym9hcmQgc2hvcnRjdXQga2VlcHMgd29ya2luZykuIFRvIGRpc2FibGUgdG9wIGxlZnQgaG90IGNvcm5lciB1c2UgJ05vIFRvcGxlZnQgSG90IENvcm5lcicgZXh0ZW5zaW9uIFx1MjAxNCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTgvbm8tdG9wbGVmdC1ob3QtY29ybmVyLyAuIiwKICAibmFtZSI6ICJIaWRlIEFjdGl2aXRpZXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkhpZGVfQWN0aXZpdGllc0BzaGF5LnNoYXllbC5vcmciLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "42": {"version": "13", "sha256": "0kr8ygb5wv2p2fzkd5gm7v9kcc54mdcrb4v1v3x1sniqgq69d856", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBmcm9tIHRoZSBzdGF0dXMgYmFyICh0aGUgaG90IGNvcm5lciBhbmQga2V5Ym9hcmQgc2hvcnRjdXQga2VlcHMgd29ya2luZykuIFRvIGRpc2FibGUgdG9wIGxlZnQgaG90IGNvcm5lciB1c2UgJ05vIFRvcGxlZnQgSG90IENvcm5lcicgZXh0ZW5zaW9uIFx1MjAxNCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTgvbm8tdG9wbGVmdC1ob3QtY29ybmVyLyAuIiwKICAibmFtZSI6ICJIaWRlIEFjdGl2aXRpZXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkhpZGVfQWN0aXZpdGllc0BzaGF5LnNoYXllbC5vcmciLAogICJ2ZXJzaW9uIjogMTMKfQ=="}}}
-, {"uuid": "openweather-extension@jenslody.de", "name": "OpenWeather", "pname": "openweather", "description": "Weather extension to display weather information from https://openweathermap.org/ or https://darksky.net for almost all locations in the world.\nFor openweathermap.org, you can either use the extensions default-key or register at https://openweathermap.org/appid and set the appropriate switch in the preferences dialog to \"off\".\nFor Dark Sky you have to register at https://darksky.net/dev/register and get a personal API-key.\n\nSince version 29 this extensions uses coordinates to store the locations and makes the names editable to support multiple weather-providers!\nIf you update from versions prior to 29 to 29 or greater (with darksky.net - support) you have to recreate your locations.", "link": "https://extensions.gnome.org/extension/750/openweather/", "shell_version_map": {"38": {"version": "105", "sha256": "0xqz924fxy201b0d9l8xn4ykwbsvgazrbc85mbjcqk4laizyn82a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldlYXRoZXIgZXh0ZW5zaW9uIHRvIGRpc3BsYXkgd2VhdGhlciBpbmZvcm1hdGlvbiBmcm9tIGh0dHBzOi8vb3BlbndlYXRoZXJtYXAub3JnLyBvciBodHRwczovL2Rhcmtza3kubmV0IGZvciBhbG1vc3QgYWxsIGxvY2F0aW9ucyBpbiB0aGUgd29ybGQuXG5Gb3Igb3BlbndlYXRoZXJtYXAub3JnLCB5b3UgY2FuIGVpdGhlciB1c2UgdGhlIGV4dGVuc2lvbnMgZGVmYXVsdC1rZXkgb3IgcmVnaXN0ZXIgYXQgaHR0cHM6Ly9vcGVud2VhdGhlcm1hcC5vcmcvYXBwaWQgYW5kIHNldCB0aGUgYXBwcm9wcmlhdGUgc3dpdGNoIGluIHRoZSBwcmVmZXJlbmNlcyBkaWFsb2cgdG8gXCJvZmZcIi5cbkZvciBEYXJrIFNreSB5b3UgaGF2ZSB0byByZWdpc3RlciBhdCBodHRwczovL2Rhcmtza3kubmV0L2Rldi9yZWdpc3RlciBhbmQgZ2V0IGEgcGVyc29uYWwgQVBJLWtleS5cblxuU2luY2UgdmVyc2lvbiAyOSB0aGlzIGV4dGVuc2lvbnMgdXNlcyBjb29yZGluYXRlcyB0byBzdG9yZSB0aGUgbG9jYXRpb25zIGFuZCBtYWtlcyB0aGUgbmFtZXMgZWRpdGFibGUgdG8gc3VwcG9ydCBtdWx0aXBsZSB3ZWF0aGVyLXByb3ZpZGVycyFcbklmIHlvdSB1cGRhdGUgZnJvbSB2ZXJzaW9ucyBwcmlvciB0byAyOSB0byAyOSBvciBncmVhdGVyICh3aXRoIGRhcmtza3kubmV0IC0gc3VwcG9ydCkgeW91IGhhdmUgdG8gcmVjcmVhdGUgeW91ciBsb2NhdGlvbnMuIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJPcGVuV2VhdGhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2plbnNsb2R5L2dub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlciIsCiAgInV1aWQiOiAib3BlbndlYXRoZXItZXh0ZW5zaW9uQGplbnNsb2R5LmRlIiwKICAidmVyc2lvbiI6IDEwNQp9"}, "40": {"version": "106", "sha256": "0xs7xd7rfy6lb4izmgsn9lwijbm93l3cpm6avy5jh19jlpq18nkv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldlYXRoZXIgZXh0ZW5zaW9uIHRvIGRpc3BsYXkgd2VhdGhlciBpbmZvcm1hdGlvbiBmcm9tIGh0dHBzOi8vb3BlbndlYXRoZXJtYXAub3JnLyBvciBodHRwczovL2Rhcmtza3kubmV0IGZvciBhbG1vc3QgYWxsIGxvY2F0aW9ucyBpbiB0aGUgd29ybGQuXG5Gb3Igb3BlbndlYXRoZXJtYXAub3JnLCB5b3UgY2FuIGVpdGhlciB1c2UgdGhlIGV4dGVuc2lvbnMgZGVmYXVsdC1rZXkgb3IgcmVnaXN0ZXIgYXQgaHR0cHM6Ly9vcGVud2VhdGhlcm1hcC5vcmcvYXBwaWQgYW5kIHNldCB0aGUgYXBwcm9wcmlhdGUgc3dpdGNoIGluIHRoZSBwcmVmZXJlbmNlcyBkaWFsb2cgdG8gXCJvZmZcIi5cbkZvciBEYXJrIFNreSB5b3UgaGF2ZSB0byByZWdpc3RlciBhdCBodHRwczovL2Rhcmtza3kubmV0L2Rldi9yZWdpc3RlciBhbmQgZ2V0IGEgcGVyc29uYWwgQVBJLWtleS5cblxuU2luY2UgdmVyc2lvbiAyOSB0aGlzIGV4dGVuc2lvbnMgdXNlcyBjb29yZGluYXRlcyB0byBzdG9yZSB0aGUgbG9jYXRpb25zIGFuZCBtYWtlcyB0aGUgbmFtZXMgZWRpdGFibGUgdG8gc3VwcG9ydCBtdWx0aXBsZSB3ZWF0aGVyLXByb3ZpZGVycyFcbklmIHlvdSB1cGRhdGUgZnJvbSB2ZXJzaW9ucyBwcmlvciB0byAyOSB0byAyOSBvciBncmVhdGVyICh3aXRoIGRhcmtza3kubmV0IC0gc3VwcG9ydCkgeW91IGhhdmUgdG8gcmVjcmVhdGUgeW91ciBsb2NhdGlvbnMuIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJPcGVuV2VhdGhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qZW5zbG9keS9nbm9tZS1zaGVsbC1leHRlbnNpb24tb3BlbndlYXRoZXIiLAogICJ1dWlkIjogIm9wZW53ZWF0aGVyLWV4dGVuc2lvbkBqZW5zbG9keS5kZSIsCiAgInZlcnNpb24iOiAxMDYKfQ=="}}}
+, {"uuid": "openweather-extension@jenslody.de", "name": "OpenWeather", "pname": "openweather", "description": "I'm sorry to say, that I am not able to  work on this project anymore.\nI simply don't have the power to do it any longer.\nIf anybody wants to take it over, feel free to fork it.\nBest wishes to all the users.\n\nJens\n\nWeather extension to display weather information from https://openweathermap.org/ or https://darksky.net for almost all locations in the world.\nFor openweathermap.org, you can either use the extensions default-key or register at https://openweathermap.org/appid and set the appropriate switch in the preferences dialog to \"off\".\nFor Dark Sky you have to register at https://darksky.net/dev/register and get a personal API-key.\n\nSince version 29 this extensions uses coordinates to store the locations and makes the names editable to support multiple weather-providers!\nIf you update from versions prior to 29 to 29 or greater (with darksky.net - support) you have to recreate your locations.", "link": "https://extensions.gnome.org/extension/750/openweather/", "shell_version_map": {"38": {"version": "105", "sha256": "05zwhm3fjjbjas8diiza00vf8808qnbyhxbs1mfbxqv8wmsvwvw8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkknbSBzb3JyeSB0byBzYXksIHRoYXQgSSBhbSBub3QgYWJsZSB0byAgd29yayBvbiB0aGlzIHByb2plY3QgYW55bW9yZS5cbkkgc2ltcGx5IGRvbid0IGhhdmUgdGhlIHBvd2VyIHRvIGRvIGl0IGFueSBsb25nZXIuXG5JZiBhbnlib2R5IHdhbnRzIHRvIHRha2UgaXQgb3ZlciwgZmVlbCBmcmVlIHRvIGZvcmsgaXQuXG5CZXN0IHdpc2hlcyB0byBhbGwgdGhlIHVzZXJzLlxuXG5KZW5zXG5cbldlYXRoZXIgZXh0ZW5zaW9uIHRvIGRpc3BsYXkgd2VhdGhlciBpbmZvcm1hdGlvbiBmcm9tIGh0dHBzOi8vb3BlbndlYXRoZXJtYXAub3JnLyBvciBodHRwczovL2Rhcmtza3kubmV0IGZvciBhbG1vc3QgYWxsIGxvY2F0aW9ucyBpbiB0aGUgd29ybGQuXG5Gb3Igb3BlbndlYXRoZXJtYXAub3JnLCB5b3UgY2FuIGVpdGhlciB1c2UgdGhlIGV4dGVuc2lvbnMgZGVmYXVsdC1rZXkgb3IgcmVnaXN0ZXIgYXQgaHR0cHM6Ly9vcGVud2VhdGhlcm1hcC5vcmcvYXBwaWQgYW5kIHNldCB0aGUgYXBwcm9wcmlhdGUgc3dpdGNoIGluIHRoZSBwcmVmZXJlbmNlcyBkaWFsb2cgdG8gXCJvZmZcIi5cbkZvciBEYXJrIFNreSB5b3UgaGF2ZSB0byByZWdpc3RlciBhdCBodHRwczovL2Rhcmtza3kubmV0L2Rldi9yZWdpc3RlciBhbmQgZ2V0IGEgcGVyc29uYWwgQVBJLWtleS5cblxuU2luY2UgdmVyc2lvbiAyOSB0aGlzIGV4dGVuc2lvbnMgdXNlcyBjb29yZGluYXRlcyB0byBzdG9yZSB0aGUgbG9jYXRpb25zIGFuZCBtYWtlcyB0aGUgbmFtZXMgZWRpdGFibGUgdG8gc3VwcG9ydCBtdWx0aXBsZSB3ZWF0aGVyLXByb3ZpZGVycyFcbklmIHlvdSB1cGRhdGUgZnJvbSB2ZXJzaW9ucyBwcmlvciB0byAyOSB0byAyOSBvciBncmVhdGVyICh3aXRoIGRhcmtza3kubmV0IC0gc3VwcG9ydCkgeW91IGhhdmUgdG8gcmVjcmVhdGUgeW91ciBsb2NhdGlvbnMuIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJPcGVuV2VhdGhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2plbnNsb2R5L2dub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlciIsCiAgInV1aWQiOiAib3BlbndlYXRoZXItZXh0ZW5zaW9uQGplbnNsb2R5LmRlIiwKICAidmVyc2lvbiI6IDEwNQp9"}, "40": {"version": "106", "sha256": "14srszaxzr11fh9s545pdgwg5rqim5lyqvjdga5rvbmp53d71qmx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkknbSBzb3JyeSB0byBzYXksIHRoYXQgSSBhbSBub3QgYWJsZSB0byAgd29yayBvbiB0aGlzIHByb2plY3QgYW55bW9yZS5cbkkgc2ltcGx5IGRvbid0IGhhdmUgdGhlIHBvd2VyIHRvIGRvIGl0IGFueSBsb25nZXIuXG5JZiBhbnlib2R5IHdhbnRzIHRvIHRha2UgaXQgb3ZlciwgZmVlbCBmcmVlIHRvIGZvcmsgaXQuXG5CZXN0IHdpc2hlcyB0byBhbGwgdGhlIHVzZXJzLlxuXG5KZW5zXG5cbldlYXRoZXIgZXh0ZW5zaW9uIHRvIGRpc3BsYXkgd2VhdGhlciBpbmZvcm1hdGlvbiBmcm9tIGh0dHBzOi8vb3BlbndlYXRoZXJtYXAub3JnLyBvciBodHRwczovL2Rhcmtza3kubmV0IGZvciBhbG1vc3QgYWxsIGxvY2F0aW9ucyBpbiB0aGUgd29ybGQuXG5Gb3Igb3BlbndlYXRoZXJtYXAub3JnLCB5b3UgY2FuIGVpdGhlciB1c2UgdGhlIGV4dGVuc2lvbnMgZGVmYXVsdC1rZXkgb3IgcmVnaXN0ZXIgYXQgaHR0cHM6Ly9vcGVud2VhdGhlcm1hcC5vcmcvYXBwaWQgYW5kIHNldCB0aGUgYXBwcm9wcmlhdGUgc3dpdGNoIGluIHRoZSBwcmVmZXJlbmNlcyBkaWFsb2cgdG8gXCJvZmZcIi5cbkZvciBEYXJrIFNreSB5b3UgaGF2ZSB0byByZWdpc3RlciBhdCBodHRwczovL2Rhcmtza3kubmV0L2Rldi9yZWdpc3RlciBhbmQgZ2V0IGEgcGVyc29uYWwgQVBJLWtleS5cblxuU2luY2UgdmVyc2lvbiAyOSB0aGlzIGV4dGVuc2lvbnMgdXNlcyBjb29yZGluYXRlcyB0byBzdG9yZSB0aGUgbG9jYXRpb25zIGFuZCBtYWtlcyB0aGUgbmFtZXMgZWRpdGFibGUgdG8gc3VwcG9ydCBtdWx0aXBsZSB3ZWF0aGVyLXByb3ZpZGVycyFcbklmIHlvdSB1cGRhdGUgZnJvbSB2ZXJzaW9ucyBwcmlvciB0byAyOSB0byAyOSBvciBncmVhdGVyICh3aXRoIGRhcmtza3kubmV0IC0gc3VwcG9ydCkgeW91IGhhdmUgdG8gcmVjcmVhdGUgeW91ciBsb2NhdGlvbnMuIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJPcGVuV2VhdGhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qZW5zbG9keS9nbm9tZS1zaGVsbC1leHRlbnNpb24tb3BlbndlYXRoZXIiLAogICJ1dWlkIjogIm9wZW53ZWF0aGVyLWV4dGVuc2lvbkBqZW5zbG9keS5kZSIsCiAgInZlcnNpb24iOiAxMDYKfQ=="}}}
 , {"uuid": "audio-output-switcher@anduchs", "name": "Audio Output Switcher", "pname": "audio-output-switcher", "description": "Adds a switch for choosing audio output to the system menu.", "link": "https://extensions.gnome.org/extension/751/audio-output-switcher/", "shell_version_map": {"38": {"version": "19", "sha256": "02z1smlc0k308sr462l9pwf2gsldqdzjalbc364i4b7286qyakxc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIG91dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUuIiwKICAibmFtZSI6ICJBdWRpbyBPdXRwdXQgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9naXRodWIuY29tL2FkYXhpL2F1ZGlvLW91dHB1dC1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYXVkaW8tb3V0cHV0LXN3aXRjaGVyQGFuZHVjaHMiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "40": {"version": "19", "sha256": "02z1smlc0k308sr462l9pwf2gsldqdzjalbc364i4b7286qyakxc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIG91dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUuIiwKICAibmFtZSI6ICJBdWRpbyBPdXRwdXQgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9naXRodWIuY29tL2FkYXhpL2F1ZGlvLW91dHB1dC1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYXVkaW8tb3V0cHV0LXN3aXRjaGVyQGFuZHVjaHMiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "41": {"version": "19", "sha256": "02z1smlc0k308sr462l9pwf2gsldqdzjalbc364i4b7286qyakxc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIG91dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUuIiwKICAibmFtZSI6ICJBdWRpbyBPdXRwdXQgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9naXRodWIuY29tL2FkYXhpL2F1ZGlvLW91dHB1dC1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYXVkaW8tb3V0cHV0LXN3aXRjaGVyQGFuZHVjaHMiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "42": {"version": "19", "sha256": "02z1smlc0k308sr462l9pwf2gsldqdzjalbc364i4b7286qyakxc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIG91dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUuIiwKICAibmFtZSI6ICJBdWRpbyBPdXRwdXQgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9naXRodWIuY29tL2FkYXhpL2F1ZGlvLW91dHB1dC1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYXVkaW8tb3V0cHV0LXN3aXRjaGVyQGFuZHVjaHMiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
 , {"uuid": "hibernate-status@dromi", "name": "Hibernate Status Button", "pname": "hibernate-status-button", "description": "Adds a Hibernate button in Status menu. Using Alt modifier, you can also select Hybrid Sleep instead.", "link": "https://extensions.gnome.org/extension/755/hibernate-status-button/", "shell_version_map": {"38": {"version": "27", "sha256": "0yqzg2nz040vsv0ilwkjkza03qxns18gq4055gq0c3k051jy6d4v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBIaWJlcm5hdGUgYnV0dG9uIGluIFN0YXR1cyBtZW51LiBVc2luZyBBbHQgbW9kaWZpZXIsIHlvdSBjYW4gYWxzbyBzZWxlY3QgSHlicmlkIFNsZWVwIGluc3RlYWQuIiwKICAibmFtZSI6ICJIaWJlcm5hdGUgU3RhdHVzIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FyZWxhbmdlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1oaWJlcm5hdGUtc3RhdHVzIiwKICAidXVpZCI6ICJoaWJlcm5hdGUtc3RhdHVzQGRyb21pIiwKICAidmVyc2lvbiI6IDI3Cn0="}, "40": {"version": "32", "sha256": "1jx687q54n14vyn8mmlzq6yrhg5ksda3cph26wzzdhd7nz940rv7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBIaWJlcm5hdGUgYnV0dG9uIGluIFN0YXR1cyBtZW51LiBVc2luZyBBbHQgbW9kaWZpZXIsIHlvdSBjYW4gYWxzbyBzZWxlY3QgSHlicmlkIFNsZWVwIGluc3RlYWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlLXN0YXR1cy1idXR0b24iLAogICJuYW1lIjogIkhpYmVybmF0ZSBTdGF0dXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmVsYW5nZS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGliZXJuYXRlLXN0YXR1cyIsCiAgInV1aWQiOiAiaGliZXJuYXRlLXN0YXR1c0Bkcm9taSIsCiAgInZlcnNpb24iOiAzMgp9"}, "41": {"version": "32", "sha256": "1jx687q54n14vyn8mmlzq6yrhg5ksda3cph26wzzdhd7nz940rv7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBIaWJlcm5hdGUgYnV0dG9uIGluIFN0YXR1cyBtZW51LiBVc2luZyBBbHQgbW9kaWZpZXIsIHlvdSBjYW4gYWxzbyBzZWxlY3QgSHlicmlkIFNsZWVwIGluc3RlYWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlLXN0YXR1cy1idXR0b24iLAogICJuYW1lIjogIkhpYmVybmF0ZSBTdGF0dXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmVsYW5nZS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGliZXJuYXRlLXN0YXR1cyIsCiAgInV1aWQiOiAiaGliZXJuYXRlLXN0YXR1c0Bkcm9taSIsCiAgInZlcnNpb24iOiAzMgp9"}}}
 , {"uuid": "minimizeall@scharlessantos.org", "name": "Minimize All", "pname": "minimize-all", "description": "Minimize all windows in current workspace", "link": "https://extensions.gnome.org/extension/760/minimize-all/", "shell_version_map": {"38": {"version": "20", "sha256": "15v6h4wcznrylip57spjdkz0jk6y7hcp47607pj0yx5dmxjaws86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplIGFsbCB3aW5kb3dzIGluIGN1cnJlbnQgd29ya3NwYWNlIiwKICAibmFtZSI6ICJNaW5pbWl6ZSBBbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc2NoYXJsZXNzYW50b3MvbWluaW1pemVhbGwiLAogICJ1dWlkIjogIm1pbmltaXplYWxsQHNjaGFybGVzc2FudG9zLm9yZyIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "20", "sha256": "15v6h4wcznrylip57spjdkz0jk6y7hcp47607pj0yx5dmxjaws86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplIGFsbCB3aW5kb3dzIGluIGN1cnJlbnQgd29ya3NwYWNlIiwKICAibmFtZSI6ICJNaW5pbWl6ZSBBbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc2NoYXJsZXNzYW50b3MvbWluaW1pemVhbGwiLAogICJ1dWlkIjogIm1pbmltaXplYWxsQHNjaGFybGVzc2FudG9zLm9yZyIsCiAgInZlcnNpb24iOiAyMAp9"}}}
-, {"uuid": "fq@megh", "name": "Force Quit", "pname": "force-quit", "description": "Adds a force quit button.\nOn accidental click, right click or press [ESC] to undo.\nCustomize position by tweaking line 50 of extension.js\n\nUPDATE: No longer depends on xkill and should work on Wayland", "link": "https://extensions.gnome.org/extension/770/force-quit/", "shell_version_map": {"38": {"version": "18", "sha256": "07ygqdzgq8q8bmsrpy4wbwgm8n5syhk0gw2pzn62ismaxkr7fqi3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbi5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIG9yIHByZXNzIFtFU0NdIHRvIHVuZG8uXG5DdXN0b21pemUgcG9zaXRpb24gYnkgdHdlYWtpbmcgbGluZSA1MCBvZiBleHRlbnNpb24uanNcblxuVVBEQVRFOiBObyBsb25nZXIgZGVwZW5kcyBvbiB4a2lsbCBhbmQgc2hvdWxkIHdvcmsgb24gV2F5bGFuZCIsCiAgIm5hbWUiOiAiRm9yY2UgUXVpdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZWdocHJraC9mb3JjZS1xdWl0LyIsCiAgInV1aWQiOiAiZnFAbWVnaCIsCiAgInZlcnNpb24iOiAxOAp9"}, "40": {"version": "21", "sha256": "0gx6vxzg8kqlqa2z5i9dazwy2bd1yfbg8ms7g84ri9hn1064l8g2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbi5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIG9yIHByZXNzIFtFU0NdIHRvIHVuZG8uXG5DdXN0b21pemUgcG9zaXRpb24gYnkgdHdlYWtpbmcgbGluZSA1MCBvZiBleHRlbnNpb24uanNcblxuVVBEQVRFOiBObyBsb25nZXIgZGVwZW5kcyBvbiB4a2lsbCBhbmQgc2hvdWxkIHdvcmsgb24gV2F5bGFuZCIsCiAgIm5hbWUiOiAiRm9yY2UgUXVpdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVnaHBya2gvZm9yY2UtcXVpdC8iLAogICJ1dWlkIjogImZxQG1lZ2giLAogICJ2ZXJzaW9uIjogMjEKfQ=="}, "41": {"version": "21", "sha256": "0gx6vxzg8kqlqa2z5i9dazwy2bd1yfbg8ms7g84ri9hn1064l8g2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbi5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIG9yIHByZXNzIFtFU0NdIHRvIHVuZG8uXG5DdXN0b21pemUgcG9zaXRpb24gYnkgdHdlYWtpbmcgbGluZSA1MCBvZiBleHRlbnNpb24uanNcblxuVVBEQVRFOiBObyBsb25nZXIgZGVwZW5kcyBvbiB4a2lsbCBhbmQgc2hvdWxkIHdvcmsgb24gV2F5bGFuZCIsCiAgIm5hbWUiOiAiRm9yY2UgUXVpdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVnaHBya2gvZm9yY2UtcXVpdC8iLAogICJ1dWlkIjogImZxQG1lZ2giLAogICJ2ZXJzaW9uIjogMjEKfQ=="}}}
-, {"uuid": "ProxySwitcher@flannaghan.com", "name": "Proxy Switcher", "pname": "proxy-switcher", "description": "Switches between the system proxy settings profiles defined in Network Settings.", "link": "https://extensions.gnome.org/extension/771/proxy-switcher/", "shell_version_map": {"40": {"version": "15", "sha256": "1vyplw3yv9904sgcjcgc8lz4py3ra59k3afsf2vc35n6vba7k91n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yMS45MSIsCiAgICAiMy4yMi4yIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21mbGFubmFnaGFuL3Byb3h5LXN3aXRjaGVyIiwKICAidXVpZCI6ICJQcm94eVN3aXRjaGVyQGZsYW5uYWdoYW4uY29tIiwKICAidmVyc2lvbiI6IDE1Cn0="}, "41": {"version": "15", "sha256": "1vyplw3yv9904sgcjcgc8lz4py3ra59k3afsf2vc35n6vba7k91n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yMS45MSIsCiAgICAiMy4yMi4yIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21mbGFubmFnaGFuL3Byb3h5LXN3aXRjaGVyIiwKICAidXVpZCI6ICJQcm94eVN3aXRjaGVyQGZsYW5uYWdoYW4uY29tIiwKICAidmVyc2lvbiI6IDE1Cn0="}}}
+, {"uuid": "fq@megh", "name": "Force Quit", "pname": "force-quit", "description": "Adds a force quit button.\nOn accidental click, right click or press [ESC] to undo.\nCustomize position by tweaking line 50 of extension.js", "link": "https://extensions.gnome.org/extension/770/force-quit/", "shell_version_map": {"38": {"version": "18", "sha256": "0xanpg1j01c8sngadxqavbi28187gnpzg32fwwdd091b1ijd235w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbi5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIG9yIHByZXNzIFtFU0NdIHRvIHVuZG8uXG5DdXN0b21pemUgcG9zaXRpb24gYnkgdHdlYWtpbmcgbGluZSA1MCBvZiBleHRlbnNpb24uanMiLAogICJuYW1lIjogIkZvcmNlIFF1aXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVnaHBya2gvZm9yY2UtcXVpdC8iLAogICJ1dWlkIjogImZxQG1lZ2giLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "40": {"version": "22", "sha256": "150x1zl55msv98frbgb718g2dxjhi96cgivb7kfgm65aj9kkfbgp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbi5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIG9yIHByZXNzIFtFU0NdIHRvIHVuZG8uXG5DdXN0b21pemUgcG9zaXRpb24gYnkgdHdlYWtpbmcgbGluZSA1MCBvZiBleHRlbnNpb24uanMiLAogICJuYW1lIjogIkZvcmNlIFF1aXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZWdocHJraC9mb3JjZS1xdWl0LyIsCiAgInV1aWQiOiAiZnFAbWVnaCIsCiAgInZlcnNpb24iOiAyMgp9"}, "41": {"version": "22", "sha256": "150x1zl55msv98frbgb718g2dxjhi96cgivb7kfgm65aj9kkfbgp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbi5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIG9yIHByZXNzIFtFU0NdIHRvIHVuZG8uXG5DdXN0b21pemUgcG9zaXRpb24gYnkgdHdlYWtpbmcgbGluZSA1MCBvZiBleHRlbnNpb24uanMiLAogICJuYW1lIjogIkZvcmNlIFF1aXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZWdocHJraC9mb3JjZS1xdWl0LyIsCiAgInV1aWQiOiAiZnFAbWVnaCIsCiAgInZlcnNpb24iOiAyMgp9"}, "42": {"version": "22", "sha256": "150x1zl55msv98frbgb718g2dxjhi96cgivb7kfgm65aj9kkfbgp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbi5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIG9yIHByZXNzIFtFU0NdIHRvIHVuZG8uXG5DdXN0b21pemUgcG9zaXRpb24gYnkgdHdlYWtpbmcgbGluZSA1MCBvZiBleHRlbnNpb24uanMiLAogICJuYW1lIjogIkZvcmNlIFF1aXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZWdocHJraC9mb3JjZS1xdWl0LyIsCiAgInV1aWQiOiAiZnFAbWVnaCIsCiAgInZlcnNpb24iOiAyMgp9"}}}
+, {"uuid": "ProxySwitcher@flannaghan.com", "name": "Proxy Switcher", "pname": "proxy-switcher", "description": "Switches between the system proxy settings profiles defined in Network Settings.", "link": "https://extensions.gnome.org/extension/771/proxy-switcher/", "shell_version_map": {"38": {"version": "17", "sha256": "0ap55mxnhwzxzv95jfc4l3bz9v6z04yn53yf233vbjsdpx55vh38", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvbWZsYW5uYWdoYW4vcHJveHktc3dpdGNoZXIiLAogICJ1dWlkIjogIlByb3h5U3dpdGNoZXJAZmxhbm5hZ2hhbi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "40": {"version": "17", "sha256": "0ap55mxnhwzxzv95jfc4l3bz9v6z04yn53yf233vbjsdpx55vh38", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvbWZsYW5uYWdoYW4vcHJveHktc3dpdGNoZXIiLAogICJ1dWlkIjogIlByb3h5U3dpdGNoZXJAZmxhbm5hZ2hhbi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "41": {"version": "17", "sha256": "0ap55mxnhwzxzv95jfc4l3bz9v6z04yn53yf233vbjsdpx55vh38", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvbWZsYW5uYWdoYW4vcHJveHktc3dpdGNoZXIiLAogICJ1dWlkIjogIlByb3h5U3dpdGNoZXJAZmxhbm5hZ2hhbi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "42": {"version": "17", "sha256": "0ap55mxnhwzxzv95jfc4l3bz9v6z04yn53yf233vbjsdpx55vh38", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvbWZsYW5uYWdoYW4vcHJveHktc3dpdGNoZXIiLAogICJ1dWlkIjogIlByb3h5U3dpdGNoZXJAZmxhbm5hZ2hhbi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
 , {"uuid": "clipboard-indicator@tudmotu.com", "name": "Clipboard Indicator", "pname": "clipboard-indicator", "description": "Clipboard Manager extension for Gnome-Shell - Adds a clipboard indicator to the top panel, and caches clipboard history.", "link": "https://extensions.gnome.org/extension/779/clipboard-indicator/", "shell_version_map": {"38": {"version": "37", "sha256": "1nd6ydp5wmd56zf3vwrsi2wflrw15krdbvqv2fkmla8rndallp1i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LiIsCiAgIm5hbWUiOiAiQ2xpcGJvYXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1R1ZG1vdHUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsaXBib2FyZC1pbmRpY2F0b3IiLAogICJ1dWlkIjogImNsaXBib2FyZC1pbmRpY2F0b3JAdHVkbW90dS5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="}, "40": {"version": "39", "sha256": "19zwg7jnf24cgqv75hzcz2a5w750kfc6yi6pn2azzknmwnsz0i7c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LiIsCiAgIm5hbWUiOiAiQ2xpcGJvYXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVHVkbW90dS9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2xpcGJvYXJkLWluZGljYXRvciIsCiAgInV1aWQiOiAiY2xpcGJvYXJkLWluZGljYXRvckB0dWRtb3R1LmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}, "41": {"version": "39", "sha256": "19zwg7jnf24cgqv75hzcz2a5w750kfc6yi6pn2azzknmwnsz0i7c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LiIsCiAgIm5hbWUiOiAiQ2xpcGJvYXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVHVkbW90dS9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2xpcGJvYXJkLWluZGljYXRvciIsCiAgInV1aWQiOiAiY2xpcGJvYXJkLWluZGljYXRvckB0dWRtb3R1LmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}}}
 , {"uuid": "pidgin@muffinmad", "name": "Pidgin IM integration", "pname": "pidgin-im-integration", "description": "Integrate Pidgin IMs in the Gnome Shell message tray", "link": "https://extensions.gnome.org/extension/782/pidgin-im-integration/", "shell_version_map": {"40": {"version": "41", "sha256": "1g2iflmb8rjzfc82yv8wcii99df5aaqx5czqkhxpf9pfsrkknhs9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBQaWRnaW4gSU1zIGluIHRoZSBHbm9tZSBTaGVsbCBtZXNzYWdlIHRyYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tcGlkZ2luIiwKICAibmFtZSI6ICJQaWRnaW4gSU0gaW50ZWdyYXRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlkZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tdWZmaW5tYWQvcGlkZ2luLWltLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAicGlkZ2luQG11ZmZpbm1hZCIsCiAgInZlcnNpb24iOiA0MQp9"}, "41": {"version": "41", "sha256": "1g2iflmb8rjzfc82yv8wcii99df5aaqx5czqkhxpf9pfsrkknhs9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBQaWRnaW4gSU1zIGluIHRoZSBHbm9tZSBTaGVsbCBtZXNzYWdlIHRyYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tcGlkZ2luIiwKICAibmFtZSI6ICJQaWRnaW4gSU0gaW50ZWdyYXRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlkZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tdWZmaW5tYWQvcGlkZ2luLWltLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAicGlkZ2luQG11ZmZpbm1hZCIsCiAgInZlcnNpb24iOiA0MQp9"}}}
 , {"uuid": "ShutdownTimer@neumann", "name": "ShutdownTimer", "pname": "shutdowntimer", "description": "Shutdown/suspend the device after a specific time.\n\nMaximum timer value und default slider position can be modified in the settings.", "link": "https://extensions.gnome.org/extension/792/shutdowntimer/", "shell_version_map": {"38": {"version": "34", "sha256": "1glzjcdv90w5mx0xqj57i0s3qgazr5dcdcin1kwb5mqvc362dd68", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3N1c3BlbmQgdGhlIGRldmljZSBhZnRlciBhIHNwZWNpZmljIHRpbWUuXG5cbk1heGltdW0gdGltZXIgdmFsdWUgdW5kIGRlZmF1bHQgc2xpZGVyIHBvc2l0aW9uIGNhbiBiZSBtb2RpZmllZCBpbiB0aGUgc2V0dGluZ3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2h1dGRvd25UaW1lciIsCiAgIm5hbWUiOiAiU2h1dGRvd25UaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLW5ldW1hbm4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25ldW1hbm4tZC9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQG5ldW1hbm4iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}, "40": {"version": "34", "sha256": "1glzjcdv90w5mx0xqj57i0s3qgazr5dcdcin1kwb5mqvc362dd68", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3N1c3BlbmQgdGhlIGRldmljZSBhZnRlciBhIHNwZWNpZmljIHRpbWUuXG5cbk1heGltdW0gdGltZXIgdmFsdWUgdW5kIGRlZmF1bHQgc2xpZGVyIHBvc2l0aW9uIGNhbiBiZSBtb2RpZmllZCBpbiB0aGUgc2V0dGluZ3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2h1dGRvd25UaW1lciIsCiAgIm5hbWUiOiAiU2h1dGRvd25UaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLW5ldW1hbm4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25ldW1hbm4tZC9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQG5ldW1hbm4iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}, "41": {"version": "34", "sha256": "1glzjcdv90w5mx0xqj57i0s3qgazr5dcdcin1kwb5mqvc362dd68", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3N1c3BlbmQgdGhlIGRldmljZSBhZnRlciBhIHNwZWNpZmljIHRpbWUuXG5cbk1heGltdW0gdGltZXIgdmFsdWUgdW5kIGRlZmF1bHQgc2xpZGVyIHBvc2l0aW9uIGNhbiBiZSBtb2RpZmllZCBpbiB0aGUgc2V0dGluZ3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2h1dGRvd25UaW1lciIsCiAgIm5hbWUiOiAiU2h1dGRvd25UaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLW5ldW1hbm4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25ldW1hbm4tZC9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQG5ldW1hbm4iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}}}
@@ -71,8 +71,8 @@
 , {"uuid": "time_tracker_jsnjack@gmail.com", "name": "Time Tracker", "pname": "time-tracker", "description": "Helps track time", "link": "https://extensions.gnome.org/extension/823/time-tracker/", "shell_version_map": {"40": {"version": "23", "sha256": "1q1jh3s6k6pmjssjmhzajmcr1qxdz4854fyfja0vbwcvxd6a8ff2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhlbHBzIHRyYWNrIHRpbWUiLAogICJuYW1lIjogIlRpbWUgVHJhY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aW1lLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pzbmphY2svdGltZS10cmFja2VyLyIsCiAgInV1aWQiOiAidGltZV90cmFja2VyX2pzbmphY2tAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}, "41": {"version": "23", "sha256": "1q1jh3s6k6pmjssjmhzajmcr1qxdz4854fyfja0vbwcvxd6a8ff2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhlbHBzIHRyYWNrIHRpbWUiLAogICJuYW1lIjogIlRpbWUgVHJhY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aW1lLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pzbmphY2svdGltZS10cmFja2VyLyIsCiAgInV1aWQiOiAidGltZV90cmFja2VyX2pzbmphY2tAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
 , {"uuid": "pwcalc@thilomaurer.de", "name": "Password Calculator", "pname": "password-calculator", "description": "This extension calculates strong passwords for each alias from your single secret. No need to remember dozens of passwords any longer. No need for a password manager any longer. Full freedom in choosing aliases and secret, e.g. alias: \"username@google.com#2014\", secret: \"saFe⚿in漢字\". Recent aliases are kept in a easily accessible drop-down. You may choose between HMAC_SHA1 and SHA1. The formula is as simple as \"[secret][alias]\" → SHA1 → BASE64 ", "link": "https://extensions.gnome.org/extension/825/password-calculator/", "shell_version_map": {"40": {"version": "24", "sha256": "1kcapf1hm7zibjjpfq1qas76xvgvf77snyxm0wy8f35h8g42wc20", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNhbGN1bGF0ZXMgc3Ryb25nIHBhc3N3b3JkcyBmb3IgZWFjaCBhbGlhcyBmcm9tIHlvdXIgc2luZ2xlIHNlY3JldC4gTm8gbmVlZCB0byByZW1lbWJlciBkb3plbnMgb2YgcGFzc3dvcmRzIGFueSBsb25nZXIuIE5vIG5lZWQgZm9yIGEgcGFzc3dvcmQgbWFuYWdlciBhbnkgbG9uZ2VyLiBGdWxsIGZyZWVkb20gaW4gY2hvb3NpbmcgYWxpYXNlcyBhbmQgc2VjcmV0LCBlLmcuIGFsaWFzOiBcInVzZXJuYW1lQGdvb2dsZS5jb20jMjAxNFwiLCBzZWNyZXQ6IFwic2FGZVx1MjZiZmluXHU2ZjIyXHU1YjU3XCIuIFJlY2VudCBhbGlhc2VzIGFyZSBrZXB0IGluIGEgZWFzaWx5IGFjY2Vzc2libGUgZHJvcC1kb3duLiBZb3UgbWF5IGNob29zZSBiZXR3ZWVuIEhNQUNfU0hBMSBhbmQgU0hBMS4gVGhlIGZvcm11bGEgaXMgYXMgc2ltcGxlIGFzIFwiW3NlY3JldF1bYWxpYXNdXCIgXHUyMTkyIFNIQTEgXHUyMTkyIEJBU0U2NCAiLAogICJuYW1lIjogIlBhc3N3b3JkIENhbGN1bGF0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHdjYWxjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RoaWxvbWF1cmVyL3B3Y2FsYyIsCiAgInV1aWQiOiAicHdjYWxjQHRoaWxvbWF1cmVyLmRlIiwKICAidmVyc2lvbiI6IDI0Cn0="}}}
 , {"uuid": "SwitchFocusType@romano.rgtti.com", "name": "Switch Focus Type", "pname": "switch-focus-type", "description": "Toggle between focus-follow-mouse and click-to-focus mode", "link": "https://extensions.gnome.org/extension/827/switch-focus-type/", "shell_version_map": {"38": {"version": "7", "sha256": "0fza40yd5ba53725pm82w43r368zams0kci59cddsh2nf8iqkk2y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBiZXR3ZWVuIGZvY3VzLWZvbGxvdy1tb3VzZSBhbmQgY2xpY2stdG8tZm9jdXMgbW9kZSIsCiAgIm5hbWUiOiAiU3dpdGNoIEZvY3VzIFR5cGUiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIlJvbWFubyBHaWFubmV0dGkgPHJvbWFuby5naWFubmV0dGlAZ21haWwuY29tPiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm1hbm8vZ3NlLXN3aXRjaC1mb2N1cy1tb2RlIiwKICAidXVpZCI6ICJTd2l0Y2hGb2N1c1R5cGVAcm9tYW5vLnJndHRpLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "0fza40yd5ba53725pm82w43r368zams0kci59cddsh2nf8iqkk2y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBiZXR3ZWVuIGZvY3VzLWZvbGxvdy1tb3VzZSBhbmQgY2xpY2stdG8tZm9jdXMgbW9kZSIsCiAgIm5hbWUiOiAiU3dpdGNoIEZvY3VzIFR5cGUiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIlJvbWFubyBHaWFubmV0dGkgPHJvbWFuby5naWFubmV0dGlAZ21haWwuY29tPiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm1hbm8vZ3NlLXN3aXRjaC1mb2N1cy1tb2RlIiwKICAidXVpZCI6ICJTd2l0Y2hGb2N1c1R5cGVAcm9tYW5vLnJndHRpLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "0fza40yd5ba53725pm82w43r368zams0kci59cddsh2nf8iqkk2y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBiZXR3ZWVuIGZvY3VzLWZvbGxvdy1tb3VzZSBhbmQgY2xpY2stdG8tZm9jdXMgbW9kZSIsCiAgIm5hbWUiOiAiU3dpdGNoIEZvY3VzIFR5cGUiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIlJvbWFubyBHaWFubmV0dGkgPHJvbWFuby5naWFubmV0dGlAZ21haWwuY29tPiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm1hbm8vZ3NlLXN3aXRjaC1mb2N1cy1tb2RlIiwKICAidXVpZCI6ICJTd2l0Y2hGb2N1c1R5cGVAcm9tYW5vLnJndHRpLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
-, {"uuid": "radio@hslbck.gmail.com", "name": "Internet Radio", "pname": "internet-radio", "description": "Listen to an Internet Radio Stream", "link": "https://extensions.gnome.org/extension/836/internet-radio/", "shell_version_map": {"38": {"version": "14", "sha256": "013wbf3npz7f438i39cd41s6whs4lgaigv4i1zais994n9ybw5y9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBhbiBJbnRlcm5ldCBSYWRpbyBTdHJlYW0iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyYWRpb0Boc2xiY2suZ21haWwuY29tIiwKICAibmFtZSI6ICJJbnRlcm5ldCBSYWRpbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hzbGJjay9nbm9tZS1zaGVsbC1leHRlbnNpb24tcmFkaW8iLAogICJ1dWlkIjogInJhZGlvQGhzbGJjay5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "18", "sha256": "07kni0s4g97dawmla5m6yqfrmzgml4gbgjaa67brx1qgfaxamgfk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBhbiBJbnRlcm5ldCBSYWRpbyBTdHJlYW0iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyYWRpb0Boc2xiY2suZ21haWwuY29tIiwKICAibmFtZSI6ICJJbnRlcm5ldCBSYWRpbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaHNsYmNrL2dub21lLXNoZWxsLWV4dGVuc2lvbi1yYWRpbyIsCiAgInV1aWQiOiAicmFkaW9AaHNsYmNrLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxOAp9"}, "41": {"version": "18", "sha256": "07kni0s4g97dawmla5m6yqfrmzgml4gbgjaa67brx1qgfaxamgfk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBhbiBJbnRlcm5ldCBSYWRpbyBTdHJlYW0iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyYWRpb0Boc2xiY2suZ21haWwuY29tIiwKICAibmFtZSI6ICJJbnRlcm5ldCBSYWRpbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaHNsYmNrL2dub21lLXNoZWxsLWV4dGVuc2lvbi1yYWRpbyIsCiAgInV1aWQiOiAicmFkaW9AaHNsYmNrLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxOAp9"}}}
-, {"uuid": "freon@UshakovVasilii_Github.yahoo.com", "name": "Freon", "pname": "freon", "description": "Shows CPU temperature, disk temperature, video card temperature (NVIDIA/Catalyst/Bumblebee&NVIDIA), voltage and fan RPM (forked from xtranophilist/gnome-shell-extension-sensors)", "link": "https://extensions.gnome.org/extension/841/freon/", "shell_version_map": {"38": {"version": "43", "sha256": "06jj01flj6iyx93aqz8ipzijnrammp6xqpgqwxfh0pf2clr6nwrq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1VzaGFrb3ZWYXNpbGlpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mcmVvbiIsCiAgInV1aWQiOiAiZnJlb25AVXNoYWtvdlZhc2lsaWlfR2l0aHViLnlhaG9vLmNvbSIsCiAgInZlcnNpb24iOiA0Mwp9"}, "40": {"version": "45", "sha256": "129gpr57qj8c8180hzzszvkvylgg1i6ql4hwf45v49s3q17lrilh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVXNoYWtvdlZhc2lsaWkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZyZW9uIiwKICAidXVpZCI6ICJmcmVvbkBVc2hha292VmFzaWxpaV9HaXRodWIueWFob28uY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}, "41": {"version": "45", "sha256": "129gpr57qj8c8180hzzszvkvylgg1i6ql4hwf45v49s3q17lrilh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVXNoYWtvdlZhc2lsaWkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZyZW9uIiwKICAidXVpZCI6ICJmcmVvbkBVc2hha292VmFzaWxpaV9HaXRodWIueWFob28uY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}}}
+, {"uuid": "radio@hslbck.gmail.com", "name": "Internet Radio", "pname": "internet-radio", "description": "Listen to an Internet Radio Stream", "link": "https://extensions.gnome.org/extension/836/internet-radio/", "shell_version_map": {"38": {"version": "14", "sha256": "013wbf3npz7f438i39cd41s6whs4lgaigv4i1zais994n9ybw5y9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBhbiBJbnRlcm5ldCBSYWRpbyBTdHJlYW0iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyYWRpb0Boc2xiY2suZ21haWwuY29tIiwKICAibmFtZSI6ICJJbnRlcm5ldCBSYWRpbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hzbGJjay9nbm9tZS1zaGVsbC1leHRlbnNpb24tcmFkaW8iLAogICJ1dWlkIjogInJhZGlvQGhzbGJjay5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "19", "sha256": "046lh1yhaa2yp64n0ax1abzlw26avnr8z1yc3v6wral9xkz5c94h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBhbiBJbnRlcm5ldCBSYWRpbyBTdHJlYW0iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyYWRpb0Boc2xiY2suZ21haWwuY29tIiwKICAibmFtZSI6ICJJbnRlcm5ldCBSYWRpbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hzbGJjay9nbm9tZS1zaGVsbC1leHRlbnNpb24tcmFkaW8iLAogICJ1dWlkIjogInJhZGlvQGhzbGJjay5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "41": {"version": "19", "sha256": "046lh1yhaa2yp64n0ax1abzlw26avnr8z1yc3v6wral9xkz5c94h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBhbiBJbnRlcm5ldCBSYWRpbyBTdHJlYW0iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyYWRpb0Boc2xiY2suZ21haWwuY29tIiwKICAibmFtZSI6ICJJbnRlcm5ldCBSYWRpbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hzbGJjay9nbm9tZS1zaGVsbC1leHRlbnNpb24tcmFkaW8iLAogICJ1dWlkIjogInJhZGlvQGhzbGJjay5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "42": {"version": "19", "sha256": "046lh1yhaa2yp64n0ax1abzlw26avnr8z1yc3v6wral9xkz5c94h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBhbiBJbnRlcm5ldCBSYWRpbyBTdHJlYW0iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyYWRpb0Boc2xiY2suZ21haWwuY29tIiwKICAibmFtZSI6ICJJbnRlcm5ldCBSYWRpbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hzbGJjay9nbm9tZS1zaGVsbC1leHRlbnNpb24tcmFkaW8iLAogICJ1dWlkIjogInJhZGlvQGhzbGJjay5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
+, {"uuid": "freon@UshakovVasilii_Github.yahoo.com", "name": "Freon", "pname": "freon", "description": "Shows CPU temperature, disk temperature, video card temperature (NVIDIA/Catalyst/Bumblebee&NVIDIA), voltage and fan RPM (forked from xtranophilist/gnome-shell-extension-sensors)", "link": "https://extensions.gnome.org/extension/841/freon/", "shell_version_map": {"38": {"version": "43", "sha256": "06jj01flj6iyx93aqz8ipzijnrammp6xqpgqwxfh0pf2clr6nwrq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1VzaGFrb3ZWYXNpbGlpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mcmVvbiIsCiAgInV1aWQiOiAiZnJlb25AVXNoYWtvdlZhc2lsaWlfR2l0aHViLnlhaG9vLmNvbSIsCiAgInZlcnNpb24iOiA0Mwp9"}, "40": {"version": "48", "sha256": "1hndv511wj15mjhk6xkxy51c7v55wj4lxbxl9iz10j89g0gf8yfh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1VzaGFrb3ZWYXNpbGlpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mcmVvbiIsCiAgInV1aWQiOiAiZnJlb25AVXNoYWtvdlZhc2lsaWlfR2l0aHViLnlhaG9vLmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"}, "41": {"version": "48", "sha256": "1hndv511wj15mjhk6xkxy51c7v55wj4lxbxl9iz10j89g0gf8yfh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1VzaGFrb3ZWYXNpbGlpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mcmVvbiIsCiAgInV1aWQiOiAiZnJlb25AVXNoYWtvdlZhc2lsaWlfR2l0aHViLnlhaG9vLmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"}, "42": {"version": "48", "sha256": "1hndv511wj15mjhk6xkxy51c7v55wj4lxbxl9iz10j89g0gf8yfh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1VzaGFrb3ZWYXNpbGlpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mcmVvbiIsCiAgInV1aWQiOiAiZnJlb25AVXNoYWtvdlZhc2lsaWlfR2l0aHViLnlhaG9vLmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"}}}
 , {"uuid": "shell-volume-mixer@derhofbauer.at", "name": "Volume Mixer", "pname": "volume-mixer", "description": "Applet allowing separate configuration of PulseAudio mixers.\n\nShell Volume Mixer is an extension for GNOME Shell allowing separate configuration of PulseAudio devices and output switches. It features a profile switcher to quickly switch between pinned profiles and devices.\n\nMiddle mouse click on a slider mutes the selected stream.\n\nPlease file bugs and feature requests on the GitHub page.", "link": "https://extensions.gnome.org/extension/858/volume-mixer/", "shell_version_map": {"38": {"version": "39", "sha256": "1cnyapjvqri5k5m4nbcmbcx97b4akwv32h7ddav2ipahqh1lqqzj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxldCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gbWl4ZXJzLlxuXG5TaGVsbCBWb2x1bWUgTWl4ZXIgaXMgYW4gZXh0ZW5zaW9uIGZvciBHTk9NRSBTaGVsbCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gZGV2aWNlcyBhbmQgb3V0cHV0IHN3aXRjaGVzLiBJdCBmZWF0dXJlcyBhIHByb2ZpbGUgc3dpdGNoZXIgdG8gcXVpY2tseSBzd2l0Y2ggYmV0d2VlbiBwaW5uZWQgcHJvZmlsZXMgYW5kIGRldmljZXMuXG5cbk1pZGRsZSBtb3VzZSBjbGljayBvbiBhIHNsaWRlciBtdXRlcyB0aGUgc2VsZWN0ZWQgc3RyZWFtLlxuXG5QbGVhc2UgZmlsZSBidWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIG9uIHRoZSBHaXRIdWIgcGFnZS4iLAogICJuYW1lIjogIlZvbHVtZSBNaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsZWhvL2dub21lLXNoZWxsLXZvbHVtZS1taXhlciIsCiAgInV1aWQiOiAic2hlbGwtdm9sdW1lLW1peGVyQGRlcmhvZmJhdWVyLmF0IiwKICAidmVyc2lvbiI6IDM5Cn0="}, "40": {"version": "40", "sha256": "1s4jzq1iy006k3m0r28qiayb46135y71qqv583k1sn9sppda5b4d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxldCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gbWl4ZXJzLlxuXG5TaGVsbCBWb2x1bWUgTWl4ZXIgaXMgYW4gZXh0ZW5zaW9uIGZvciBHTk9NRSBTaGVsbCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gZGV2aWNlcyBhbmQgb3V0cHV0IHN3aXRjaGVzLiBJdCBmZWF0dXJlcyBhIHByb2ZpbGUgc3dpdGNoZXIgdG8gcXVpY2tseSBzd2l0Y2ggYmV0d2VlbiBwaW5uZWQgcHJvZmlsZXMgYW5kIGRldmljZXMuXG5cbk1pZGRsZSBtb3VzZSBjbGljayBvbiBhIHNsaWRlciBtdXRlcyB0aGUgc2VsZWN0ZWQgc3RyZWFtLlxuXG5QbGVhc2UgZmlsZSBidWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIG9uIHRoZSBHaXRIdWIgcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLXNoZWxsLXZvbHVtZS1taXhlciIsCiAgIm5hbWUiOiAiVm9sdW1lIE1peGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNoZWxsLXZvbHVtZS1taXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVoby9nbm9tZS1zaGVsbC12b2x1bWUtbWl4ZXIiLAogICJ1dWlkIjogInNoZWxsLXZvbHVtZS1taXhlckBkZXJob2ZiYXVlci5hdCIsCiAgInZlcnNpb24iOiA0MAp9"}, "41": {"version": "44", "sha256": "0pbw1w3y9clq1pmxkblsp85kw5h8znhjf223bplqhjb74g89v80z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxldCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gbWl4ZXJzLlxuXG5TaGVsbCBWb2x1bWUgTWl4ZXIgaXMgYW4gZXh0ZW5zaW9uIGZvciBHTk9NRSBTaGVsbCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gZGV2aWNlcyBhbmQgb3V0cHV0IHN3aXRjaGVzLiBJdCBmZWF0dXJlcyBhIHByb2ZpbGUgc3dpdGNoZXIgdG8gcXVpY2tseSBzd2l0Y2ggYmV0d2VlbiBwaW5uZWQgcHJvZmlsZXMgYW5kIGRldmljZXMuXG5cbk1pZGRsZSBtb3VzZSBjbGljayBvbiBhIHNsaWRlciBtdXRlcyB0aGUgc2VsZWN0ZWQgc3RyZWFtLlxuXG5QbGVhc2UgZmlsZSBidWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIG9uIHRoZSBHaXRIdWIgcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLXNoZWxsLXZvbHVtZS1taXhlciIsCiAgIm5hbWUiOiAiVm9sdW1lIE1peGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNoZWxsLXZvbHVtZS1taXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVoby9nbm9tZS1zaGVsbC12b2x1bWUtbWl4ZXIiLAogICJ1dWlkIjogInNoZWxsLXZvbHVtZS1taXhlckBkZXJob2ZiYXVlci5hdCIsCiAgInZlcnNpb24iOiA0NAp9"}}}
 , {"uuid": "FRC@jcdubacq.dubacq.fr", "name": "French Republican Calendar", "pname": "french-republican-calendar", "description": "Displays the French Republican Calendar in the top panel", "link": "https://extensions.gnome.org/extension/874/french-republican-calendar/", "shell_version_map": {"38": {"version": "11", "sha256": "13mypljavdmy6rj00cphnkjiimdxw1hzj7mhzlq8m99x5h8d9ahg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHRoZSBGcmVuY2ggUmVwdWJsaWNhbiBDYWxlbmRhciBpbiB0aGUgdG9wIHBhbmVsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiRlJDIiwKICAibmFtZSI6ICJGcmVuY2ggUmVwdWJsaWNhbiBDYWxlbmRhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJGUkNAamNkdWJhY3EuZHViYWNxLmZyIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "13mypljavdmy6rj00cphnkjiimdxw1hzj7mhzlq8m99x5h8d9ahg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHRoZSBGcmVuY2ggUmVwdWJsaWNhbiBDYWxlbmRhciBpbiB0aGUgdG9wIHBhbmVsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiRlJDIiwKICAibmFtZSI6ICJGcmVuY2ggUmVwdWJsaWNhbiBDYWxlbmRhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJGUkNAamNkdWJhY3EuZHViYWNxLmZyIiwKICAidmVyc2lvbiI6IDExCn0="}}}
 , {"uuid": "screenshot-window-sizer@gnome-shell-extensions.gcampax.github.com", "name": "Screenshot Window Sizer", "pname": "screenshot-window-sizer", "description": "Resize windows for GNOME Software screenshots", "link": "https://extensions.gnome.org/extension/881/screenshot-window-sizer/", "shell_version_map": {"38": {"version": "22", "sha256": "18b8f2agv397pdyaicx2qirqfnm0swbnspw43kb2hr0jn8lkzz1v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlNjcmVlbnNob3QgV2luZG93IFNpemVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Qtd2luZG93LXNpemVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "40": {"version": "25", "sha256": "0pdf76kf6z7m9wvqsy36v1r02zfk8pgkpf21im2cq9x4qwh9gkf2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlNjcmVlbnNob3QgV2luZG93IFNpemVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Qtd2luZG93LXNpemVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogInNjcmVlbnNob3Qtd2luZG93LXNpemVyQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI1Cn0="}, "41": {"version": "27", "sha256": "0hwnrmbn8aciwbdw9rffrjg5md93bkrvfp8a4gmzrp6v946fd05p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBXaW5kb3cgU2l6ZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdC13aW5kb3ctc2l6ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjcKfQ=="}, "42": {"version": "28", "sha256": "1b675z6jb1g5kq2qav7b6wajjw9z7zlkh5z0p99cmh7vhz60q3sy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBXaW5kb3cgU2l6ZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdC13aW5kb3ctc2l6ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjgKfQ=="}}}
@@ -81,7 +81,7 @@
 , {"uuid": "modern-calc@kaer", "name": "Modern Calc", "pname": "modern-calc", "description": "A full featured calculator for gnome-shell.", "link": "https://extensions.gnome.org/extension/900/modern-calc/", "shell_version_map": {"38": {"version": "11", "sha256": "0f0fmldcr8ywghp8w61wvi2qb29yc82xmgkqb7khj14zgv4l6apw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZnVsbCBmZWF0dXJlZCBjYWxjdWxhdG9yIGZvciBnbm9tZS1zaGVsbC4iLAogICJuYW1lIjogIk1vZGVybiBDYWxjIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkthZXIgKHRoZS50aGluLmtpbmcud2F5KzIwMTRAZ21haWwuY29tKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tb2Rlcm4tY2FsYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thZXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1vZGVybi1jYWxjIiwKICAidXVpZCI6ICJtb2Rlcm4tY2FsY0BrYWVyIiwKICAidmVyc2lvbiI6IDExCn0="}}}
 , {"uuid": "disconnect-wifi@kgshank.net", "name": "Disconnect Wifi", "pname": "disconnect-wifi", "description": "Adds a Disconnect option for Wifi in status menu, when a network is connected. Shows a Reconnect option, after network is disconnected.", "link": "https://extensions.gnome.org/extension/904/disconnect-wifi/", "shell_version_map": {"38": {"version": "30", "sha256": "1i7x0zxswdr9cyhf3y5frq4phg9pr7ygh5y1k5hnd85lhi855kaq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBEaXNjb25uZWN0IG9wdGlvbiBmb3IgV2lmaSBpbiBzdGF0dXMgbWVudSwgd2hlbiBhIG5ldHdvcmsgaXMgY29ubmVjdGVkLiBTaG93cyBhIFJlY29ubmVjdCBvcHRpb24sIGFmdGVyIG5ldHdvcmsgaXMgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiRGlzY29ubmVjdCBXaWZpIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkdvcEkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2tnc2hhbmsvZ3NlLWRpc2Nvbm5lY3Qtd2lmaSIsCiAgInV1aWQiOiAiZGlzY29ubmVjdC13aWZpQGtnc2hhbmsubmV0IiwKICAidmVyc2lvbiI6IDMwCn0="}, "40": {"version": "30", "sha256": "1i7x0zxswdr9cyhf3y5frq4phg9pr7ygh5y1k5hnd85lhi855kaq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBEaXNjb25uZWN0IG9wdGlvbiBmb3IgV2lmaSBpbiBzdGF0dXMgbWVudSwgd2hlbiBhIG5ldHdvcmsgaXMgY29ubmVjdGVkLiBTaG93cyBhIFJlY29ubmVjdCBvcHRpb24sIGFmdGVyIG5ldHdvcmsgaXMgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiRGlzY29ubmVjdCBXaWZpIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkdvcEkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2tnc2hhbmsvZ3NlLWRpc2Nvbm5lY3Qtd2lmaSIsCiAgInV1aWQiOiAiZGlzY29ubmVjdC13aWZpQGtnc2hhbmsubmV0IiwKICAidmVyc2lvbiI6IDMwCn0="}, "41": {"version": "30", "sha256": "1i7x0zxswdr9cyhf3y5frq4phg9pr7ygh5y1k5hnd85lhi855kaq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBEaXNjb25uZWN0IG9wdGlvbiBmb3IgV2lmaSBpbiBzdGF0dXMgbWVudSwgd2hlbiBhIG5ldHdvcmsgaXMgY29ubmVjdGVkLiBTaG93cyBhIFJlY29ubmVjdCBvcHRpb24sIGFmdGVyIG5ldHdvcmsgaXMgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiRGlzY29ubmVjdCBXaWZpIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkdvcEkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2tnc2hhbmsvZ3NlLWRpc2Nvbm5lY3Qtd2lmaSIsCiAgInV1aWQiOiAiZGlzY29ubmVjdC13aWZpQGtnc2hhbmsubmV0IiwKICAidmVyc2lvbiI6IDMwCn0="}}}
 , {"uuid": "refresh-wifi@kgshank.net", "name": "Refresh Wifi Connections", "pname": "refresh-wifi-connections", "description": "This extension adds a refresh button to the Wi-Fi connection selection dialog to manually request for a network scan.\n\nNOTE: In GNOME Shell 3.32 and above, the available network list is automatically updated every 15 seconds, so most people probably don't need this extension anymore.", "link": "https://extensions.gnome.org/extension/905/refresh-wifi-connections/", "shell_version_map": {"38": {"version": "15", "sha256": "1ck4agyvab61nb0sy1qcwpiyv4c3c1z0bmjrimmmfw6bmaw351dv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZHMgYSByZWZyZXNoIGJ1dHRvbiB0byB0aGUgV2ktRmkgY29ubmVjdGlvbiBzZWxlY3Rpb24gZGlhbG9nIHRvIG1hbnVhbGx5IHJlcXVlc3QgZm9yIGEgbmV0d29yayBzY2FuLlxuXG5OT1RFOiBJbiBHTk9NRSBTaGVsbCAzLjMyIGFuZCBhYm92ZSwgdGhlIGF2YWlsYWJsZSBuZXR3b3JrIGxpc3QgaXMgYXV0b21hdGljYWxseSB1cGRhdGVkIGV2ZXJ5IDE1IHNlY29uZHMsIHNvIG1vc3QgcGVvcGxlIHByb2JhYmx5IGRvbid0IG5lZWQgdGhpcyBleHRlbnNpb24gYW55bW9yZS4iLAogICJuYW1lIjogIlJlZnJlc2ggV2lmaSBDb25uZWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJHb3BJIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rZ3NoYW5rL2dzZS1yZWZyZXNoLXdpZmkiLAogICJ1dWlkIjogInJlZnJlc2gtd2lmaUBrZ3NoYW5rLm5ldCIsCiAgInZlcnNpb24iOiAxNQp9"}, "40": {"version": "15", "sha256": "1ck4agyvab61nb0sy1qcwpiyv4c3c1z0bmjrimmmfw6bmaw351dv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZHMgYSByZWZyZXNoIGJ1dHRvbiB0byB0aGUgV2ktRmkgY29ubmVjdGlvbiBzZWxlY3Rpb24gZGlhbG9nIHRvIG1hbnVhbGx5IHJlcXVlc3QgZm9yIGEgbmV0d29yayBzY2FuLlxuXG5OT1RFOiBJbiBHTk9NRSBTaGVsbCAzLjMyIGFuZCBhYm92ZSwgdGhlIGF2YWlsYWJsZSBuZXR3b3JrIGxpc3QgaXMgYXV0b21hdGljYWxseSB1cGRhdGVkIGV2ZXJ5IDE1IHNlY29uZHMsIHNvIG1vc3QgcGVvcGxlIHByb2JhYmx5IGRvbid0IG5lZWQgdGhpcyBleHRlbnNpb24gYW55bW9yZS4iLAogICJuYW1lIjogIlJlZnJlc2ggV2lmaSBDb25uZWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJHb3BJIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rZ3NoYW5rL2dzZS1yZWZyZXNoLXdpZmkiLAogICJ1dWlkIjogInJlZnJlc2gtd2lmaUBrZ3NoYW5rLm5ldCIsCiAgInZlcnNpb24iOiAxNQp9"}, "41": {"version": "15", "sha256": "1ck4agyvab61nb0sy1qcwpiyv4c3c1z0bmjrimmmfw6bmaw351dv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZHMgYSByZWZyZXNoIGJ1dHRvbiB0byB0aGUgV2ktRmkgY29ubmVjdGlvbiBzZWxlY3Rpb24gZGlhbG9nIHRvIG1hbnVhbGx5IHJlcXVlc3QgZm9yIGEgbmV0d29yayBzY2FuLlxuXG5OT1RFOiBJbiBHTk9NRSBTaGVsbCAzLjMyIGFuZCBhYm92ZSwgdGhlIGF2YWlsYWJsZSBuZXR3b3JrIGxpc3QgaXMgYXV0b21hdGljYWxseSB1cGRhdGVkIGV2ZXJ5IDE1IHNlY29uZHMsIHNvIG1vc3QgcGVvcGxlIHByb2JhYmx5IGRvbid0IG5lZWQgdGhpcyBleHRlbnNpb24gYW55bW9yZS4iLAogICJuYW1lIjogIlJlZnJlc2ggV2lmaSBDb25uZWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJHb3BJIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rZ3NoYW5rL2dzZS1yZWZyZXNoLXdpZmkiLAogICJ1dWlkIjogInJlZnJlc2gtd2lmaUBrZ3NoYW5rLm5ldCIsCiAgInZlcnNpb24iOiAxNQp9"}}}
-, {"uuid": "sound-output-device-chooser@kgshank.net", "name": "Sound Input & Output Device Chooser", "pname": "sound-output-device-chooser", "description": "Shows a list of sound output and input devices (similar to gnome sound settings) in the status menu below the volume slider. Various active ports like HDMI , Speakers etc. of the same device are also displayed for selection. V20+ needs python as dependency. If you want to continue with the old method without Python, use options to switch off New Port identification. But it works with only English", "link": "https://extensions.gnome.org/extension/906/sound-output-device-chooser/", "shell_version_map": {"38": {"version": "40", "sha256": "0yvx43jjdc3rn487fd39w3vszrzy5a70yan26cja0pwy52sv4vk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgbGlzdCBvZiBzb3VuZCBvdXRwdXQgYW5kIGlucHV0IGRldmljZXMgKHNpbWlsYXIgdG8gZ25vbWUgc291bmQgc2V0dGluZ3MpIGluIHRoZSBzdGF0dXMgbWVudSBiZWxvdyB0aGUgdm9sdW1lIHNsaWRlci4gVmFyaW91cyBhY3RpdmUgcG9ydHMgbGlrZSBIRE1JICwgU3BlYWtlcnMgZXRjLiBvZiB0aGUgc2FtZSBkZXZpY2UgYXJlIGFsc28gZGlzcGxheWVkIGZvciBzZWxlY3Rpb24uIFYyMCsgbmVlZHMgcHl0aG9uIGFzIGRlcGVuZGVuY3kuIElmIHlvdSB3YW50IHRvIGNvbnRpbnVlIHdpdGggdGhlIG9sZCBtZXRob2Qgd2l0aG91dCBQeXRob24sIHVzZSBvcHRpb25zIHRvIHN3aXRjaCBvZmYgTmV3IFBvcnQgaWRlbnRpZmljYXRpb24uIEJ1dCBpdCB3b3JrcyB3aXRoIG9ubHkgRW5nbGlzaCIsCiAgImdldHRleHQtZG9tYWluIjogInNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlciIsCiAgIm5hbWUiOiAiU291bmQgSW5wdXQgJiBPdXRwdXQgRGV2aWNlIENob29zZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiR29wSSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb3VuZC1vdXRwdXQtZGV2aWNlLWNob29zZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2tnc2hhbmsvZ3NlLXNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlciIsCiAgInV1aWQiOiAic291bmQtb3V0cHV0LWRldmljZS1jaG9vc2VyQGtnc2hhbmsubmV0IiwKICAidmVyc2lvbiI6IDQwCn0="}, "40": {"version": "40", "sha256": "0yvx43jjdc3rn487fd39w3vszrzy5a70yan26cja0pwy52sv4vk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgbGlzdCBvZiBzb3VuZCBvdXRwdXQgYW5kIGlucHV0IGRldmljZXMgKHNpbWlsYXIgdG8gZ25vbWUgc291bmQgc2V0dGluZ3MpIGluIHRoZSBzdGF0dXMgbWVudSBiZWxvdyB0aGUgdm9sdW1lIHNsaWRlci4gVmFyaW91cyBhY3RpdmUgcG9ydHMgbGlrZSBIRE1JICwgU3BlYWtlcnMgZXRjLiBvZiB0aGUgc2FtZSBkZXZpY2UgYXJlIGFsc28gZGlzcGxheWVkIGZvciBzZWxlY3Rpb24uIFYyMCsgbmVlZHMgcHl0aG9uIGFzIGRlcGVuZGVuY3kuIElmIHlvdSB3YW50IHRvIGNvbnRpbnVlIHdpdGggdGhlIG9sZCBtZXRob2Qgd2l0aG91dCBQeXRob24sIHVzZSBvcHRpb25zIHRvIHN3aXRjaCBvZmYgTmV3IFBvcnQgaWRlbnRpZmljYXRpb24uIEJ1dCBpdCB3b3JrcyB3aXRoIG9ubHkgRW5nbGlzaCIsCiAgImdldHRleHQtZG9tYWluIjogInNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlciIsCiAgIm5hbWUiOiAiU291bmQgSW5wdXQgJiBPdXRwdXQgRGV2aWNlIENob29zZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiR29wSSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb3VuZC1vdXRwdXQtZGV2aWNlLWNob29zZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2tnc2hhbmsvZ3NlLXNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlciIsCiAgInV1aWQiOiAic291bmQtb3V0cHV0LWRldmljZS1jaG9vc2VyQGtnc2hhbmsubmV0IiwKICAidmVyc2lvbiI6IDQwCn0="}, "41": {"version": "40", "sha256": "0yvx43jjdc3rn487fd39w3vszrzy5a70yan26cja0pwy52sv4vk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgbGlzdCBvZiBzb3VuZCBvdXRwdXQgYW5kIGlucHV0IGRldmljZXMgKHNpbWlsYXIgdG8gZ25vbWUgc291bmQgc2V0dGluZ3MpIGluIHRoZSBzdGF0dXMgbWVudSBiZWxvdyB0aGUgdm9sdW1lIHNsaWRlci4gVmFyaW91cyBhY3RpdmUgcG9ydHMgbGlrZSBIRE1JICwgU3BlYWtlcnMgZXRjLiBvZiB0aGUgc2FtZSBkZXZpY2UgYXJlIGFsc28gZGlzcGxheWVkIGZvciBzZWxlY3Rpb24uIFYyMCsgbmVlZHMgcHl0aG9uIGFzIGRlcGVuZGVuY3kuIElmIHlvdSB3YW50IHRvIGNvbnRpbnVlIHdpdGggdGhlIG9sZCBtZXRob2Qgd2l0aG91dCBQeXRob24sIHVzZSBvcHRpb25zIHRvIHN3aXRjaCBvZmYgTmV3IFBvcnQgaWRlbnRpZmljYXRpb24uIEJ1dCBpdCB3b3JrcyB3aXRoIG9ubHkgRW5nbGlzaCIsCiAgImdldHRleHQtZG9tYWluIjogInNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlciIsCiAgIm5hbWUiOiAiU291bmQgSW5wdXQgJiBPdXRwdXQgRGV2aWNlIENob29zZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiR29wSSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb3VuZC1vdXRwdXQtZGV2aWNlLWNob29zZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2tnc2hhbmsvZ3NlLXNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlciIsCiAgInV1aWQiOiAic291bmQtb3V0cHV0LWRldmljZS1jaG9vc2VyQGtnc2hhbmsubmV0IiwKICAidmVyc2lvbiI6IDQwCn0="}}}
+, {"uuid": "sound-output-device-chooser@kgshank.net", "name": "Sound Input & Output Device Chooser", "pname": "sound-output-device-chooser", "description": "Shows a list of sound output and input devices (similar to gnome sound settings) in the status menu below the volume slider. Various active ports like HDMI , Speakers etc. of the same device are also displayed for selection. V20+ needs python as dependency. If you want to continue with the old method without Python, use options to switch off New Port identification. But it works with only English", "link": "https://extensions.gnome.org/extension/906/sound-output-device-chooser/", "shell_version_map": {"38": {"version": "42", "sha256": "151arzkx68ccz3d8pwfs37zi66vip2hsh3d06zzqfjbh2f6zwp5r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgbGlzdCBvZiBzb3VuZCBvdXRwdXQgYW5kIGlucHV0IGRldmljZXMgKHNpbWlsYXIgdG8gZ25vbWUgc291bmQgc2V0dGluZ3MpIGluIHRoZSBzdGF0dXMgbWVudSBiZWxvdyB0aGUgdm9sdW1lIHNsaWRlci4gVmFyaW91cyBhY3RpdmUgcG9ydHMgbGlrZSBIRE1JICwgU3BlYWtlcnMgZXRjLiBvZiB0aGUgc2FtZSBkZXZpY2UgYXJlIGFsc28gZGlzcGxheWVkIGZvciBzZWxlY3Rpb24uIFYyMCsgbmVlZHMgcHl0aG9uIGFzIGRlcGVuZGVuY3kuIElmIHlvdSB3YW50IHRvIGNvbnRpbnVlIHdpdGggdGhlIG9sZCBtZXRob2Qgd2l0aG91dCBQeXRob24sIHVzZSBvcHRpb25zIHRvIHN3aXRjaCBvZmYgTmV3IFBvcnQgaWRlbnRpZmljYXRpb24uIEJ1dCBpdCB3b3JrcyB3aXRoIG9ubHkgRW5nbGlzaCIsCiAgImdldHRleHQtZG9tYWluIjogInNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlciIsCiAgIm5hbWUiOiAiU291bmQgSW5wdXQgJiBPdXRwdXQgRGV2aWNlIENob29zZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiR29wSSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb3VuZC1vdXRwdXQtZGV2aWNlLWNob29zZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rZ3NoYW5rL2dzZS1zb3VuZC1vdXRwdXQtZGV2aWNlLWNob29zZXIiLAogICJ1dWlkIjogInNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlckBrZ3NoYW5rLm5ldCIsCiAgInZlcnNpb24iOiA0Mgp9"}, "40": {"version": "42", "sha256": "151arzkx68ccz3d8pwfs37zi66vip2hsh3d06zzqfjbh2f6zwp5r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgbGlzdCBvZiBzb3VuZCBvdXRwdXQgYW5kIGlucHV0IGRldmljZXMgKHNpbWlsYXIgdG8gZ25vbWUgc291bmQgc2V0dGluZ3MpIGluIHRoZSBzdGF0dXMgbWVudSBiZWxvdyB0aGUgdm9sdW1lIHNsaWRlci4gVmFyaW91cyBhY3RpdmUgcG9ydHMgbGlrZSBIRE1JICwgU3BlYWtlcnMgZXRjLiBvZiB0aGUgc2FtZSBkZXZpY2UgYXJlIGFsc28gZGlzcGxheWVkIGZvciBzZWxlY3Rpb24uIFYyMCsgbmVlZHMgcHl0aG9uIGFzIGRlcGVuZGVuY3kuIElmIHlvdSB3YW50IHRvIGNvbnRpbnVlIHdpdGggdGhlIG9sZCBtZXRob2Qgd2l0aG91dCBQeXRob24sIHVzZSBvcHRpb25zIHRvIHN3aXRjaCBvZmYgTmV3IFBvcnQgaWRlbnRpZmljYXRpb24uIEJ1dCBpdCB3b3JrcyB3aXRoIG9ubHkgRW5nbGlzaCIsCiAgImdldHRleHQtZG9tYWluIjogInNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlciIsCiAgIm5hbWUiOiAiU291bmQgSW5wdXQgJiBPdXRwdXQgRGV2aWNlIENob29zZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiR29wSSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb3VuZC1vdXRwdXQtZGV2aWNlLWNob29zZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rZ3NoYW5rL2dzZS1zb3VuZC1vdXRwdXQtZGV2aWNlLWNob29zZXIiLAogICJ1dWlkIjogInNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlckBrZ3NoYW5rLm5ldCIsCiAgInZlcnNpb24iOiA0Mgp9"}, "41": {"version": "42", "sha256": "151arzkx68ccz3d8pwfs37zi66vip2hsh3d06zzqfjbh2f6zwp5r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgbGlzdCBvZiBzb3VuZCBvdXRwdXQgYW5kIGlucHV0IGRldmljZXMgKHNpbWlsYXIgdG8gZ25vbWUgc291bmQgc2V0dGluZ3MpIGluIHRoZSBzdGF0dXMgbWVudSBiZWxvdyB0aGUgdm9sdW1lIHNsaWRlci4gVmFyaW91cyBhY3RpdmUgcG9ydHMgbGlrZSBIRE1JICwgU3BlYWtlcnMgZXRjLiBvZiB0aGUgc2FtZSBkZXZpY2UgYXJlIGFsc28gZGlzcGxheWVkIGZvciBzZWxlY3Rpb24uIFYyMCsgbmVlZHMgcHl0aG9uIGFzIGRlcGVuZGVuY3kuIElmIHlvdSB3YW50IHRvIGNvbnRpbnVlIHdpdGggdGhlIG9sZCBtZXRob2Qgd2l0aG91dCBQeXRob24sIHVzZSBvcHRpb25zIHRvIHN3aXRjaCBvZmYgTmV3IFBvcnQgaWRlbnRpZmljYXRpb24uIEJ1dCBpdCB3b3JrcyB3aXRoIG9ubHkgRW5nbGlzaCIsCiAgImdldHRleHQtZG9tYWluIjogInNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlciIsCiAgIm5hbWUiOiAiU291bmQgSW5wdXQgJiBPdXRwdXQgRGV2aWNlIENob29zZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiR29wSSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb3VuZC1vdXRwdXQtZGV2aWNlLWNob29zZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rZ3NoYW5rL2dzZS1zb3VuZC1vdXRwdXQtZGV2aWNlLWNob29zZXIiLAogICJ1dWlkIjogInNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlckBrZ3NoYW5rLm5ldCIsCiAgInZlcnNpb24iOiA0Mgp9"}, "42": {"version": "42", "sha256": "151arzkx68ccz3d8pwfs37zi66vip2hsh3d06zzqfjbh2f6zwp5r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgbGlzdCBvZiBzb3VuZCBvdXRwdXQgYW5kIGlucHV0IGRldmljZXMgKHNpbWlsYXIgdG8gZ25vbWUgc291bmQgc2V0dGluZ3MpIGluIHRoZSBzdGF0dXMgbWVudSBiZWxvdyB0aGUgdm9sdW1lIHNsaWRlci4gVmFyaW91cyBhY3RpdmUgcG9ydHMgbGlrZSBIRE1JICwgU3BlYWtlcnMgZXRjLiBvZiB0aGUgc2FtZSBkZXZpY2UgYXJlIGFsc28gZGlzcGxheWVkIGZvciBzZWxlY3Rpb24uIFYyMCsgbmVlZHMgcHl0aG9uIGFzIGRlcGVuZGVuY3kuIElmIHlvdSB3YW50IHRvIGNvbnRpbnVlIHdpdGggdGhlIG9sZCBtZXRob2Qgd2l0aG91dCBQeXRob24sIHVzZSBvcHRpb25zIHRvIHN3aXRjaCBvZmYgTmV3IFBvcnQgaWRlbnRpZmljYXRpb24uIEJ1dCBpdCB3b3JrcyB3aXRoIG9ubHkgRW5nbGlzaCIsCiAgImdldHRleHQtZG9tYWluIjogInNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlciIsCiAgIm5hbWUiOiAiU291bmQgSW5wdXQgJiBPdXRwdXQgRGV2aWNlIENob29zZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiR29wSSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb3VuZC1vdXRwdXQtZGV2aWNlLWNob29zZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rZ3NoYW5rL2dzZS1zb3VuZC1vdXRwdXQtZGV2aWNlLWNob29zZXIiLAogICJ1dWlkIjogInNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlckBrZ3NoYW5rLm5ldCIsCiAgInZlcnNpb24iOiA0Mgp9"}}}
 , {"uuid": "multi-monitors-add-on@spin83", "name": "Multi Monitors Add-On", "pname": "multi-monitors-add-on", "description": "Add multiple monitors overview and panel for gnome-shell.", "link": "https://extensions.gnome.org/extension/921/multi-monitors-add-on/", "shell_version_map": {"38": {"version": "23", "sha256": "1snj6xhl7qf3lmjvrn7sbgkmb3rpq4b4q88yfdlx5vrzn6sw5bzq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBtdWx0aXBsZSBtb25pdG9ycyBvdmVydmlldyBhbmQgcGFuZWwgZm9yIGdub21lLXNoZWxsLiIsCiAgImdldHRleHQtZG9tYWluIjogIm11bHRpLW1vbml0b3JzLWFkZC1vbiIsCiAgIm5hbWUiOiAiTXVsdGkgTW9uaXRvcnMgQWRkLU9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bHRpLW1vbml0b3JzLWFkZC1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NwaW44My9tdWx0aS1tb25pdG9ycy1hZGQtb24uZ2l0IiwKICAidXVpZCI6ICJtdWx0aS1tb25pdG9ycy1hZGQtb25Ac3BpbjgzIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
 , {"uuid": "ping_indicator@trifonovkv.gmail.com", "name": "Ping Indicator", "pname": "ping-indicator", "description": "Display ping time", "link": "https://extensions.gnome.org/extension/923/ping-indicator/", "shell_version_map": {"38": {"version": "24", "sha256": "0arxcaxpybc1as2d9dqmmswjnjj7p11rvss4s84x6kz8i4xbhjy3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcGluZyB0aW1lIiwKICAibmFtZSI6ICJQaW5nIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHJpZm9ub3Zrdi9waW5nX2luZGljYXRvciIsCiAgInV1aWQiOiAicGluZ19pbmRpY2F0b3JAdHJpZm9ub3Zrdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjQKfQ=="}}}
 , {"uuid": "transcode-appsearch@k.kubusha@gmail.com", "name": "Transcode App Search", "pname": "transcodeappsearch", "description": "Searching apps both direct and transcoded name (English, Russian, Ukrainian langs)", "link": "https://extensions.gnome.org/extension/928/transcodeappsearch/", "shell_version_map": {"38": {"version": "9", "sha256": "0ia3f8pmnyzjvg7di0cgy7n6ppbpkma6y0xlwjb8hhp5wz3a11s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGluZyBhcHBzIGJvdGggZGlyZWN0IGFuZCB0cmFuc2NvZGVkIG5hbWUgKEVuZ2xpc2gsIFJ1c3NpYW4sIFVrcmFpbmlhbiBsYW5ncykiLAogICJuYW1lIjogIlRyYW5zY29kZSBBcHAgU2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdGF0eWFuL2dub21lLWV4dGVuc2lvbi10cmFuc2NvZGUtc2VhcmNoYXBwIiwKICAidXVpZCI6ICJ0cmFuc2NvZGUtYXBwc2VhcmNoQGsua3VidXNoYUBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}, "40": {"version": "9", "sha256": "0ia3f8pmnyzjvg7di0cgy7n6ppbpkma6y0xlwjb8hhp5wz3a11s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGluZyBhcHBzIGJvdGggZGlyZWN0IGFuZCB0cmFuc2NvZGVkIG5hbWUgKEVuZ2xpc2gsIFJ1c3NpYW4sIFVrcmFpbmlhbiBsYW5ncykiLAogICJuYW1lIjogIlRyYW5zY29kZSBBcHAgU2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdGF0eWFuL2dub21lLWV4dGVuc2lvbi10cmFuc2NvZGUtc2VhcmNoYXBwIiwKICAidXVpZCI6ICJ0cmFuc2NvZGUtYXBwc2VhcmNoQGsua3VidXNoYUBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "0ia3f8pmnyzjvg7di0cgy7n6ppbpkma6y0xlwjb8hhp5wz3a11s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGluZyBhcHBzIGJvdGggZGlyZWN0IGFuZCB0cmFuc2NvZGVkIG5hbWUgKEVuZ2xpc2gsIFJ1c3NpYW4sIFVrcmFpbmlhbiBsYW5ncykiLAogICJuYW1lIjogIlRyYW5zY29kZSBBcHAgU2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdGF0eWFuL2dub21lLWV4dGVuc2lvbi10cmFuc2NvZGUtc2VhcmNoYXBwIiwKICAidXVpZCI6ICJ0cmFuc2NvZGUtYXBwc2VhcmNoQGsua3VidXNoYUBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}}}
@@ -89,36 +89,36 @@
 , {"uuid": "workspace_scroll@squgeim.com.np", "name": "Workspace Scroll", "pname": "workspace-scroll", "description": "Just scroll anywhere in the top panel to change the workspace.", "link": "https://extensions.gnome.org/extension/943/workspace-scroll/", "shell_version_map": {"40": {"version": "6", "sha256": "0pglhzy81zh9wwcmh1ynygkghq64s948k9qaa9vr3k514bq8b8n0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkp1c3Qgc2Nyb2xsIGFueXdoZXJlIGluIHRoZSB0b3AgcGFuZWwgdG8gY2hhbmdlIHRoZSB3b3Jrc3BhY2UuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU2Nyb2xsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MC4yIiwKICAgICI0MC4zIiwKICAgICI0MS4wIiwKICAgICI0MC4xMCIsCiAgICAiNDAuNSIsCiAgICAiNDAuMTEiLAogICAgIjQwLjkiLAogICAgIjQwLjgiLAogICAgIjQwLjciLAogICAgIjQwLjYiLAogICAgIjQwLjQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcXVnZWltL1dvcmtzcGFjZS1TY3JvbGwiLAogICJ1dWlkIjogIndvcmtzcGFjZV9zY3JvbGxAc3F1Z2VpbS5jb20ubnAiLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "0pglhzy81zh9wwcmh1ynygkghq64s948k9qaa9vr3k514bq8b8n0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkp1c3Qgc2Nyb2xsIGFueXdoZXJlIGluIHRoZSB0b3AgcGFuZWwgdG8gY2hhbmdlIHRoZSB3b3Jrc3BhY2UuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU2Nyb2xsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MC4yIiwKICAgICI0MC4zIiwKICAgICI0MS4wIiwKICAgICI0MC4xMCIsCiAgICAiNDAuNSIsCiAgICAiNDAuMTEiLAogICAgIjQwLjkiLAogICAgIjQwLjgiLAogICAgIjQwLjciLAogICAgIjQwLjYiLAogICAgIjQwLjQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcXVnZWltL1dvcmtzcGFjZS1TY3JvbGwiLAogICJ1dWlkIjogIndvcmtzcGFjZV9zY3JvbGxAc3F1Z2VpbS5jb20ubnAiLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "cpupower@mko-sl.de", "name": "CPU Power Manager", "pname": "cpu-power-manager", "description": "Manage your CPU's frequency scaling driver", "link": "https://extensions.gnome.org/extension/945/cpu-power-manager/", "shell_version_map": {"38": {"version": "26", "sha256": "0w4py02s4xw3acl6iy7bamkbzd728ha908pjg5h9hjivqfbipd90", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB5b3VyIENQVSdzIGZyZXF1ZW5jeSBzY2FsaW5nIGRyaXZlciIsCiAgImxvY2FsZWRpciI6ICIvdXNyL2xvY2FsL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiQ1BVIFBvd2VyIE1hbmFnZXIiLAogICJzY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1cG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVpbnN0YXBlbC9jcHVwb3dlciIsCiAgInV1aWQiOiAiY3B1cG93ZXJAbWtvLXNsLmRlIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "40": {"version": "26", "sha256": "0w4py02s4xw3acl6iy7bamkbzd728ha908pjg5h9hjivqfbipd90", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB5b3VyIENQVSdzIGZyZXF1ZW5jeSBzY2FsaW5nIGRyaXZlciIsCiAgImxvY2FsZWRpciI6ICIvdXNyL2xvY2FsL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiQ1BVIFBvd2VyIE1hbmFnZXIiLAogICJzY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1cG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVpbnN0YXBlbC9jcHVwb3dlciIsCiAgInV1aWQiOiAiY3B1cG93ZXJAbWtvLXNsLmRlIiwKICAidmVyc2lvbiI6IDI2Cn0="}}}
 , {"uuid": "world_clock_lite@ailin.nemui", "name": "Panel World Clock (Lite)", "pname": "panel-world-clock-lite", "description": "A world clock for the panel\n\nInstall gnome-clocks to get started! (Flatpak or Snap versions NOT supported) \n\nGnome ≤3.14? https://extensions.gnome.org/extension/697/panel-world-clock/", "link": "https://extensions.gnome.org/extension/946/panel-world-clock-lite/", "shell_version_map": {"38": {"version": "11", "sha256": "0a6347p8s9iw1007yc7vlm3hy399prfvqm28ziy8wb8wmj5xd9rn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyB0byBnZXQgc3RhcnRlZCEgKEZsYXRwYWsgb3IgU25hcCB2ZXJzaW9ucyBOT1Qgc3VwcG9ydGVkKSBcblxuR25vbWUgXHUyMjY0My4xND8gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjk3L3BhbmVsLXdvcmxkLWNsb2NrLyIsCiAgIm5hbWUiOiAiUGFuZWwgV29ybGQgQ2xvY2sgKExpdGUpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmxkLWNsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIndvcmxkX2Nsb2NrX2xpdGVAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "40": {"version": "18", "sha256": "0a5afpg22rg066jcr5ggbbn950kj7r14d9qicq2ffz6dqi5ms64x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyB0byBnZXQgc3RhcnRlZCEgKEZsYXRwYWsgb3IgU25hcCB2ZXJzaW9ucyBOT1Qgc3VwcG9ydGVkKSBcblxuR25vbWUgXHUyMjY0My4xND8gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjk3L3BhbmVsLXdvcmxkLWNsb2NrLyIsCiAgIm5hbWUiOiAiUGFuZWwgV29ybGQgQ2xvY2sgKExpdGUpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmxkLWNsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIndvcmxkX2Nsb2NrX2xpdGVAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "41": {"version": "18", "sha256": "0a5afpg22rg066jcr5ggbbn950kj7r14d9qicq2ffz6dqi5ms64x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyB0byBnZXQgc3RhcnRlZCEgKEZsYXRwYWsgb3IgU25hcCB2ZXJzaW9ucyBOT1Qgc3VwcG9ydGVkKSBcblxuR25vbWUgXHUyMjY0My4xND8gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjk3L3BhbmVsLXdvcmxkLWNsb2NrLyIsCiAgIm5hbWUiOiAiUGFuZWwgV29ybGQgQ2xvY2sgKExpdGUpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmxkLWNsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIndvcmxkX2Nsb2NrX2xpdGVAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "42": {"version": "18", "sha256": "0a5afpg22rg066jcr5ggbbn950kj7r14d9qicq2ffz6dqi5ms64x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyB0byBnZXQgc3RhcnRlZCEgKEZsYXRwYWsgb3IgU25hcCB2ZXJzaW9ucyBOT1Qgc3VwcG9ydGVkKSBcblxuR25vbWUgXHUyMjY0My4xND8gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjk3L3BhbmVsLXdvcmxkLWNsb2NrLyIsCiAgIm5hbWUiOiAiUGFuZWwgV29ybGQgQ2xvY2sgKExpdGUpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmxkLWNsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIndvcmxkX2Nsb2NrX2xpdGVAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMTgKfQ=="}}}
-, {"uuid": "dim-on-battery@nailfarmer.nailfarmer.com", "name": "Dim On Battery Power", "pname": "dim-on-battery-power", "description": "Automatically dims the screen when the machine is running on battery power.", "link": "https://extensions.gnome.org/extension/947/dim-on-battery-power/", "shell_version_map": {"38": {"version": "26", "sha256": "0nh8z4by722b9f11lk8akgwz1d8dm1v4r4129lbbvfm2qgg2f1mi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL25haWxmYXJtZXIvZ25vbWUtc2hlbGwtZGltLW9uLWJhdHRlcnktZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJkaW0tb24tYmF0dGVyeUBuYWlsZmFybWVyLm5haWxmYXJtZXIuY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "40": {"version": "26", "sha256": "0nh8z4by722b9f11lk8akgwz1d8dm1v4r4129lbbvfm2qgg2f1mi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL25haWxmYXJtZXIvZ25vbWUtc2hlbGwtZGltLW9uLWJhdHRlcnktZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJkaW0tb24tYmF0dGVyeUBuYWlsZmFybWVyLm5haWxmYXJtZXIuY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "41": {"version": "26", "sha256": "0nh8z4by722b9f11lk8akgwz1d8dm1v4r4129lbbvfm2qgg2f1mi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL25haWxmYXJtZXIvZ25vbWUtc2hlbGwtZGltLW9uLWJhdHRlcnktZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJkaW0tb24tYmF0dGVyeUBuYWlsZmFybWVyLm5haWxmYXJtZXIuY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}}}
+, {"uuid": "dim-on-battery@nailfarmer.nailfarmer.com", "name": "Dim On Battery Power", "pname": "dim-on-battery-power", "description": "Automatically dims the screen when the machine is running on battery power.", "link": "https://extensions.gnome.org/extension/947/dim-on-battery-power/", "shell_version_map": {"38": {"version": "27", "sha256": "1lqfsm349bwhbidv5g9sagfncysng3qf0fypnf4sqp0gwaxx6yy4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9uYWlsZmFybWVyL2dub21lLXNoZWxsLWRpbS1vbi1iYXR0ZXJ5LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZGltLW9uLWJhdHRlcnlAbmFpbGZhcm1lci5uYWlsZmFybWVyLmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"}, "40": {"version": "27", "sha256": "1lqfsm349bwhbidv5g9sagfncysng3qf0fypnf4sqp0gwaxx6yy4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9uYWlsZmFybWVyL2dub21lLXNoZWxsLWRpbS1vbi1iYXR0ZXJ5LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZGltLW9uLWJhdHRlcnlAbmFpbGZhcm1lci5uYWlsZmFybWVyLmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"}, "41": {"version": "27", "sha256": "1lqfsm349bwhbidv5g9sagfncysng3qf0fypnf4sqp0gwaxx6yy4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9uYWlsZmFybWVyL2dub21lLXNoZWxsLWRpbS1vbi1iYXR0ZXJ5LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZGltLW9uLWJhdHRlcnlAbmFpbGZhcm1lci5uYWlsZmFybWVyLmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"}, "42": {"version": "27", "sha256": "1lqfsm349bwhbidv5g9sagfncysng3qf0fypnf4sqp0gwaxx6yy4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9uYWlsZmFybWVyL2dub21lLXNoZWxsLWRpbS1vbi1iYXR0ZXJ5LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZGltLW9uLWJhdHRlcnlAbmFpbGZhcm1lci5uYWlsZmFybWVyLmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"}}}
 , {"uuid": "bottompanel@tmoer93", "name": "BottomPanel", "pname": "bottompanel", "description": "Moves the GNOME panel to the bottom of the screen\n\nSource here: https://github.com/Thoma5/gnome-shell-extension-bottompanel", "link": "https://extensions.gnome.org/extension/949/bottompanel/", "shell_version_map": {"38": {"version": "11", "sha256": "0r4z1pww6w8q0f7gzsmc363hd2178r40ifsppyigj67mwwik3mkq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSBHTk9NRSBwYW5lbCB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW5cblxuU291cmNlIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9UaG9tYTUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWJvdHRvbXBhbmVsIiwKICAibmFtZSI6ICJCb3R0b21QYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJib3R0b21wYW5lbEB0bW9lcjkzIiwKICAidmVyc2lvbiI6IDExCn0="}}}
 , {"uuid": "dejadup-backup@fthx", "name": "Déjà Dup Backup Button", "pname": "deja-dup-backup-button", "description": "Button that directly starts Déjà Dup backup, following Déjà Dup backup settings.\n\n It simply runs 'deja-dup --backup' and shows Déjà Dup window during backup.", "link": "https://extensions.gnome.org/extension/955/deja-dup-backup-button/", "shell_version_map": {"38": {"version": "7", "sha256": "1d5xl18297zlw6g6jqwvwf32yiiqbz7jqyb4pz691d8ngqvvlwpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiB0aGF0IGRpcmVjdGx5IHN0YXJ0cyBEXHUwMGU5alx1MDBlMCBEdXAgYmFja3VwLCBmb2xsb3dpbmcgRFx1MDBlOWpcdTAwZTAgRHVwIGJhY2t1cCBzZXR0aW5ncy5cblxuIEl0IHNpbXBseSBydW5zICdkZWphLWR1cCAtLWJhY2t1cCcgYW5kIHNob3dzIERcdTAwZTlqXHUwMGUwIER1cCB3aW5kb3cgZHVyaW5nIGJhY2t1cC4iLAogICJuYW1lIjogIkRcdTAwZTlqXHUwMGUwIER1cCBCYWNrdXAgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvZGVqYWR1cC1iYWNrdXAiLAogICJ1dWlkIjogImRlamFkdXAtYmFja3VwQGZ0aHgiLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "1d5xl18297zlw6g6jqwvwf32yiiqbz7jqyb4pz691d8ngqvvlwpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiB0aGF0IGRpcmVjdGx5IHN0YXJ0cyBEXHUwMGU5alx1MDBlMCBEdXAgYmFja3VwLCBmb2xsb3dpbmcgRFx1MDBlOWpcdTAwZTAgRHVwIGJhY2t1cCBzZXR0aW5ncy5cblxuIEl0IHNpbXBseSBydW5zICdkZWphLWR1cCAtLWJhY2t1cCcgYW5kIHNob3dzIERcdTAwZTlqXHUwMGUwIER1cCB3aW5kb3cgZHVyaW5nIGJhY2t1cC4iLAogICJuYW1lIjogIkRcdTAwZTlqXHUwMGUwIER1cCBCYWNrdXAgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvZGVqYWR1cC1iYWNrdXAiLAogICJ1dWlkIjogImRlamFkdXAtYmFja3VwQGZ0aHgiLAogICJ2ZXJzaW9uIjogNwp9"}}}
 , {"uuid": "ISS_Above@mcepl.cepl.eu", "name": "ISS Above", "pname": "iss-above", "description": "Shows an icon when ISS is above you (+- 1000km)", "link": "https://extensions.gnome.org/extension/956/iss-above/", "shell_version_map": {"40": {"version": "4", "sha256": "00r5clklx8wbwdqyniz1lxf864jk71q7j36icq6jkp65v8av5cjn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGFuIGljb24gd2hlbiBJU1MgaXMgYWJvdmUgeW91ICgrLSAxMDAwa20pIiwKICAibmFtZSI6ICJJU1MgQWJvdmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbWNlcGwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLUlTU19BYm92ZS8iLAogICJ1dWlkIjogIklTU19BYm92ZUBtY2VwbC5jZXBsLmV1IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "switcher@landau.fi", "name": "Switcher", "pname": "switcher", "description": "Switch windows or launch applications quickly by typing\n\nUse the configured global hotkey (Super+w by default) to open a list of current windows. Type a part of the name or title of the application window you want to activate and hit enter or click on the item you wish to activate. You can use the arrow keys to navigate among the filtered selection and type several space separated search terms to filter further. If your search matches launchable apps, those are shown in the list too. Use Esc or click anywhere outside the switcher to cancel.\n\nYou can customize the look and feel and functionality in the preferences.", "link": "https://extensions.gnome.org/extension/973/switcher/", "shell_version_map": {"38": {"version": "32", "sha256": "188bfj4b0kslja757fc70xhjqj5blk2jcdjfd2pvm6g2cxslfjg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsbGFuZGF1L3N3aXRjaGVyIiwKICAidXVpZCI6ICJzd2l0Y2hlckBsYW5kYXUuZmkiLAogICJ2ZXJzaW9uIjogMzIKfQ=="}, "40": {"version": "33", "sha256": "1dk91bvmjqr4hrsldb6ikvrd6ihk5flbg8wfhfnmq4c18kynsv9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGxhbmRhdS9zd2l0Y2hlciIsCiAgInV1aWQiOiAic3dpdGNoZXJAbGFuZGF1LmZpIiwKICAidmVyc2lvbiI6IDMzCn0="}, "41": {"version": "34", "sha256": "1bgj8w7qlz4kv70k6rjmm5f5rygn2n5fp0rd29jj1wfm50hfvzg1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGxhbmRhdS9zd2l0Y2hlciIsCiAgInV1aWQiOiAic3dpdGNoZXJAbGFuZGF1LmZpIiwKICAidmVyc2lvbiI6IDM0Cn0="}, "42": {"version": "35", "sha256": "1v5rd89ahmw8sisxa3ymyg4njfzjxan9qn5l8kfcsrh8fq210ggq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGxhbmRhdS9zd2l0Y2hlciIsCiAgInV1aWQiOiAic3dpdGNoZXJAbGFuZGF1LmZpIiwKICAidmVyc2lvbiI6IDM1Cn0="}}}
 , {"uuid": "keyboard_modifiers_status@sneetsher", "name": "Keyboard Modifiers Status", "pname": "keyboard-modifiers-status", "description": "Shows keyboard modifiers status. It's useful when sticky keys are active.", "link": "https://extensions.gnome.org/extension/975/keyboard-modifiers-status/", "shell_version_map": {"38": {"version": "13", "sha256": "0wfwy67r53ilp96yig70nf75a4bxd7cmn8gbnqlpin8virv66kfh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDEzCn0="}, "40": {"version": "13", "sha256": "0wfwy67r53ilp96yig70nf75a4bxd7cmn8gbnqlpin8virv66kfh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDEzCn0="}, "41": {"version": "13", "sha256": "0wfwy67r53ilp96yig70nf75a4bxd7cmn8gbnqlpin8virv66kfh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
-, {"uuid": "harddiskled@bijidroid.gmail.com", "name": "Harddisk LED", "pname": "harddisk-led", "description": "Show harddisk activity (IO speed read/write and LED). Click to change modes", "link": "https://extensions.gnome.org/extension/988/harddisk-led/", "shell_version_map": {"38": {"version": "29", "sha256": "0yzvkbbkhzqlq6kdnfmfv9p7ypybmz6hyy6ksgya63ql084780j2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBtb2RlcyIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL2hhcmRkaXNrbGVkIiwKICAidXVpZCI6ICJoYXJkZGlza2xlZEBiaWppZHJvaWQuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI5Cn0="}, "40": {"version": "29", "sha256": "0yzvkbbkhzqlq6kdnfmfv9p7ypybmz6hyy6ksgya63ql084780j2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBtb2RlcyIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL2hhcmRkaXNrbGVkIiwKICAidXVpZCI6ICJoYXJkZGlza2xlZEBiaWppZHJvaWQuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI5Cn0="}, "41": {"version": "29", "sha256": "0yzvkbbkhzqlq6kdnfmfv9p7ypybmz6hyy6ksgya63ql084780j2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBtb2RlcyIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL2hhcmRkaXNrbGVkIiwKICAidXVpZCI6ICJoYXJkZGlza2xlZEBiaWppZHJvaWQuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI5Cn0="}, "42": {"version": "25", "sha256": "0gywazb991p8ngwhz9q4baifhhdi32ajxh82w9hr6y6437s8a1rs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBtb2RlcyIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIsCiAgICAiNDciLAogICAgIjQ4IiwKICAgICI0OSIsCiAgICAiNTAiLAogICAgIjUxIiwKICAgICI1MiIsCiAgICAiNTMiLAogICAgIjU0IiwKICAgICI1NSIsCiAgICAiNTYiLAogICAgIjU3IiwKICAgICI1OCIsCiAgICAiNTkiLAogICAgIjYwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9oYXJkZGlza2xlZCIsCiAgInV1aWQiOiAiaGFyZGRpc2tsZWRAYmlqaWRyb2lkLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}}}
+, {"uuid": "harddiskled@bijidroid.gmail.com", "name": "Harddisk LED", "pname": "harddisk-led", "description": "Show harddisk activity (IO speed read/write and LED). Click to change led size", "link": "https://extensions.gnome.org/extension/988/harddisk-led/", "shell_version_map": {"38": {"version": "30", "sha256": "064bma3maxx82f0mgnb7nfmmgjf2wk1z09kqrnlqlvlbqrigyanh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9oYXJkZGlza2xlZCIsCiAgInV1aWQiOiAiaGFyZGRpc2tsZWRAYmlqaWRyb2lkLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzMAp9"}, "40": {"version": "30", "sha256": "064bma3maxx82f0mgnb7nfmmgjf2wk1z09kqrnlqlvlbqrigyanh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9oYXJkZGlza2xlZCIsCiAgInV1aWQiOiAiaGFyZGRpc2tsZWRAYmlqaWRyb2lkLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzMAp9"}, "41": {"version": "30", "sha256": "064bma3maxx82f0mgnb7nfmmgjf2wk1z09kqrnlqlvlbqrigyanh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9oYXJkZGlza2xlZCIsCiAgInV1aWQiOiAiaGFyZGRpc2tsZWRAYmlqaWRyb2lkLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzMAp9"}, "42": {"version": "30", "sha256": "064bma3maxx82f0mgnb7nfmmgjf2wk1z09kqrnlqlvlbqrigyanh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9oYXJkZGlza2xlZCIsCiAgInV1aWQiOiAiaGFyZGRpc2tsZWRAYmlqaWRyb2lkLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzMAp9"}}}
 , {"uuid": "syncthingicon@jay.strict@posteo.de", "name": "Syncthing Icon", "pname": "syncthing-icon", "description": "Display Syncthing Icon in Top Bar", "link": "https://extensions.gnome.org/extension/989/syncthing-icon/", "shell_version_map": {"40": {"version": "33", "sha256": "0lg2k9p033w9dff5g16xai9rvjmw85qvhrx17dw8f228nfm93fik", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgU3luY3RoaW5nIEljb24gaW4gVG9wIEJhciIsCiAgIm5hbWUiOiAiU3luY3RoaW5nIEljb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3luY3RoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qYXlzdHJpY3Rvci9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nIiwKICAidXVpZCI6ICJzeW5jdGhpbmdpY29uQGpheS5zdHJpY3RAcG9zdGVvLmRlIiwKICAidmVyc2lvbiI6IDMzCn0="}, "41": {"version": "33", "sha256": "0lg2k9p033w9dff5g16xai9rvjmw85qvhrx17dw8f228nfm93fik", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgU3luY3RoaW5nIEljb24gaW4gVG9wIEJhciIsCiAgIm5hbWUiOiAiU3luY3RoaW5nIEljb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3luY3RoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qYXlzdHJpY3Rvci9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nIiwKICAidXVpZCI6ICJzeW5jdGhpbmdpY29uQGpheS5zdHJpY3RAcG9zdGVvLmRlIiwKICAidmVyc2lvbiI6IDMzCn0="}}}
 , {"uuid": "window-search-provider@quelltexter.org", "name": "Window Search Provider", "pname": "window-search-provider", "description": "Provide active windows as search results in overview", "link": "https://extensions.gnome.org/extension/1001/window-search-provider/", "shell_version_map": {"38": {"version": "2", "sha256": "030s38akm3fw7nq9v4wfgzhw716b51l2z3szns0gcwc0gx5zpfjv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgYWN0aXZlIHdpbmRvd3MgYXMgc2VhcmNoIHJlc3VsdHMgaW4gb3ZlcnZpZXciLAogICJuYW1lIjogIldpbmRvdyBTZWFyY2ggUHJvdmlkZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjMuNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rbG9yZW56L2dub21lLXNoZWxsLXdpbmRvdy1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogIndpbmRvdy1zZWFyY2gtcHJvdmlkZXJAcXVlbGx0ZXh0ZXIub3JnIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
-, {"uuid": "windowIsReady_Remover@nunofarruca@gmail.com", "name": "Window Is Ready - Notification Remover", "pname": "window-is-ready-notification-remover", "description": "Removes window is ready Notification", "link": "https://extensions.gnome.org/extension/1007/window-is-ready-notification-remover/", "shell_version_map": {"38": {"version": "13", "sha256": "1wxhdbvra0sc22wja9pcrsj5q4ny4iy4d7axlqh7yvm00zp72f3g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}, "40": {"version": "13", "sha256": "1wxhdbvra0sc22wja9pcrsj5q4ny4iy4d7axlqh7yvm00zp72f3g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "1wxhdbvra0sc22wja9pcrsj5q4ny4iy4d7axlqh7yvm00zp72f3g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
+, {"uuid": "windowIsReady_Remover@nunofarruca@gmail.com", "name": "Window Is Ready - Notification Remover", "pname": "window-is-ready-notification-remover", "description": "Removes window is ready Notification", "link": "https://extensions.gnome.org/extension/1007/window-is-ready-notification-remover/", "shell_version_map": {"38": {"version": "14", "sha256": "007dv1rqpmiiv9r4ic55wh69920yswldgk9xxikzwrzzxxzc0pvj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9udW5vZmFycnVjYS9XaW5kb3dJc1JlYWR5X1JlbW92ZXIiLAogICJ1dWlkIjogIndpbmRvd0lzUmVhZHlfUmVtb3ZlckBudW5vZmFycnVjYUBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "14", "sha256": "007dv1rqpmiiv9r4ic55wh69920yswldgk9xxikzwrzzxxzc0pvj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9udW5vZmFycnVjYS9XaW5kb3dJc1JlYWR5X1JlbW92ZXIiLAogICJ1dWlkIjogIndpbmRvd0lzUmVhZHlfUmVtb3ZlckBudW5vZmFycnVjYUBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "007dv1rqpmiiv9r4ic55wh69920yswldgk9xxikzwrzzxxzc0pvj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9udW5vZmFycnVjYS9XaW5kb3dJc1JlYWR5X1JlbW92ZXIiLAogICJ1dWlkIjogIndpbmRvd0lzUmVhZHlfUmVtb3ZlckBudW5vZmFycnVjYUBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "42": {"version": "14", "sha256": "007dv1rqpmiiv9r4ic55wh69920yswldgk9xxikzwrzzxxzc0pvj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9udW5vZmFycnVjYS9XaW5kb3dJc1JlYWR5X1JlbW92ZXIiLAogICJ1dWlkIjogIndpbmRvd0lzUmVhZHlfUmVtb3ZlckBudW5vZmFycnVjYUBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
 , {"uuid": "arch-update@RaphaelRochet", "name": "Arch Linux Updates Indicator", "pname": "archlinux-updates-indicator", "description": "Update indicator for Arch Linux and GNOME Shell.\n** Note : you now need to install the package pacman-contrib to use the checkupdates script. **\n  Can support AUR or other distros by changing command used to check for and apply updates.\n See README about Gnome42 Console", "link": "https://extensions.gnome.org/extension/1010/archlinux-updates-indicator/", "shell_version_map": {"38": {"version": "39", "sha256": "0cm66wacw6qpf0lpd38hnic1ydjg11za6pq1bprpm5r3sdl7bmhg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdC4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy5cbiBTZWUgUkVBRE1FIGFib3V0IEdub21lNDIgQ29uc29sZSIsCiAgIm5hbWUiOiAiQXJjaCBMaW51eCBVcGRhdGVzIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNi4xIiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmFwaGFlbFJvY2hldC9hcmNoLXVwZGF0ZSIsCiAgInV1aWQiOiAiYXJjaC11cGRhdGVAUmFwaGFlbFJvY2hldCIsCiAgInZlcnNpb24iOiAzOQp9"}, "40": {"version": "47", "sha256": "1c7fl0s2izqfw74fnnw44qrsd56l0vj51bd5lk9l3mfcxi6c2sk1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdC4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy5cbiBTZWUgUkVBRE1FIGFib3V0IEdub21lNDIgQ29uc29sZSIsCiAgIm5hbWUiOiAiQXJjaCBMaW51eCBVcGRhdGVzIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXJjaC11cGRhdGUiLAogICJ1dWlkIjogImFyY2gtdXBkYXRlQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogNDcKfQ=="}, "41": {"version": "47", "sha256": "1c7fl0s2izqfw74fnnw44qrsd56l0vj51bd5lk9l3mfcxi6c2sk1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdC4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy5cbiBTZWUgUkVBRE1FIGFib3V0IEdub21lNDIgQ29uc29sZSIsCiAgIm5hbWUiOiAiQXJjaCBMaW51eCBVcGRhdGVzIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXJjaC11cGRhdGUiLAogICJ1dWlkIjogImFyY2gtdXBkYXRlQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogNDcKfQ=="}, "42": {"version": "47", "sha256": "1c7fl0s2izqfw74fnnw44qrsd56l0vj51bd5lk9l3mfcxi6c2sk1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdC4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy5cbiBTZWUgUkVBRE1FIGFib3V0IEdub21lNDIgQ29uc29sZSIsCiAgIm5hbWUiOiAiQXJjaCBMaW51eCBVcGRhdGVzIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXJjaC11cGRhdGUiLAogICJ1dWlkIjogImFyY2gtdXBkYXRlQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogNDcKfQ=="}}}
 , {"uuid": "dynamic-panel-transparency@rockon999.github.io", "name": "Dynamic Panel Transparency", "pname": "dynamic-panel-transparency", "description": "Miss dynamic panel transparency in 3.32 and up? Try the original dynamic panel with much more customization! This extension will fade your top panel to nothingness when there are no maximized windows present! Never again will the panel be abruptly darkened.\n\nMay be incompatible with some extensions that make extensive changes to the panel.\n\nIf your theme isn't working correctly with this extension enable 'Remove Excessive Panel Styling' in the Background section of preferences. This particularly impacts the default *Ubuntu* theme!", "link": "https://extensions.gnome.org/extension/1011/dynamic-panel-transparency/", "shell_version_map": {"38": {"version": "34", "sha256": "10w5kvmspy4rp4jnwx0rj2crbdyi1lxv81vhi8zx490fhwgmlkvl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pc3MgZHluYW1pYyBwYW5lbCB0cmFuc3BhcmVuY3kgaW4gMy4zMiBhbmQgdXA/IFRyeSB0aGUgb3JpZ2luYWwgZHluYW1pYyBwYW5lbCB3aXRoIG11Y2ggbW9yZSBjdXN0b21pemF0aW9uISBUaGlzIGV4dGVuc2lvbiB3aWxsIGZhZGUgeW91ciB0b3AgcGFuZWwgdG8gbm90aGluZ25lc3Mgd2hlbiB0aGVyZSBhcmUgbm8gbWF4aW1pemVkIHdpbmRvd3MgcHJlc2VudCEgTmV2ZXIgYWdhaW4gd2lsbCB0aGUgcGFuZWwgYmUgYWJydXB0bHkgZGFya2VuZWQuXG5cbk1heSBiZSBpbmNvbXBhdGlibGUgd2l0aCBzb21lIGV4dGVuc2lvbnMgdGhhdCBtYWtlIGV4dGVuc2l2ZSBjaGFuZ2VzIHRvIHRoZSBwYW5lbC5cblxuSWYgeW91ciB0aGVtZSBpc24ndCB3b3JraW5nIGNvcnJlY3RseSB3aXRoIHRoaXMgZXh0ZW5zaW9uIGVuYWJsZSAnUmVtb3ZlIEV4Y2Vzc2l2ZSBQYW5lbCBTdHlsaW5nJyBpbiB0aGUgQmFja2dyb3VuZCBzZWN0aW9uIG9mIHByZWZlcmVuY2VzLiBUaGlzIHBhcnRpY3VsYXJseSBpbXBhY3RzIHRoZSBkZWZhdWx0ICpVYnVudHUqIHRoZW1lISIsCiAgImdldHRleHQtZG9tYWluIjogImR5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5IiwKICAibmFtZSI6ICJEeW5hbWljIFBhbmVsIFRyYW5zcGFyZW5jeSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5keW5hbWljLXBhbmVsLXRyYW5zcGFyZW5jeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V3bHNoL2R5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5LyIsCiAgInV1aWQiOiAiZHluYW1pYy1wYW5lbC10cmFuc3BhcmVuY3lAcm9ja29uOTk5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzNAp9"}, "40": {"version": "35", "sha256": "1znc564xd7n4k2klfc0kkip6hmadqdsa50p0sq0717h407m9p0vx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pc3MgZHluYW1pYyBwYW5lbCB0cmFuc3BhcmVuY3kgaW4gMy4zMiBhbmQgdXA/IFRyeSB0aGUgb3JpZ2luYWwgZHluYW1pYyBwYW5lbCB3aXRoIG11Y2ggbW9yZSBjdXN0b21pemF0aW9uISBUaGlzIGV4dGVuc2lvbiB3aWxsIGZhZGUgeW91ciB0b3AgcGFuZWwgdG8gbm90aGluZ25lc3Mgd2hlbiB0aGVyZSBhcmUgbm8gbWF4aW1pemVkIHdpbmRvd3MgcHJlc2VudCEgTmV2ZXIgYWdhaW4gd2lsbCB0aGUgcGFuZWwgYmUgYWJydXB0bHkgZGFya2VuZWQuXG5cbk1heSBiZSBpbmNvbXBhdGlibGUgd2l0aCBzb21lIGV4dGVuc2lvbnMgdGhhdCBtYWtlIGV4dGVuc2l2ZSBjaGFuZ2VzIHRvIHRoZSBwYW5lbC5cblxuSWYgeW91ciB0aGVtZSBpc24ndCB3b3JraW5nIGNvcnJlY3RseSB3aXRoIHRoaXMgZXh0ZW5zaW9uIGVuYWJsZSAnUmVtb3ZlIEV4Y2Vzc2l2ZSBQYW5lbCBTdHlsaW5nJyBpbiB0aGUgQmFja2dyb3VuZCBzZWN0aW9uIG9mIHByZWZlcmVuY2VzLiBUaGlzIHBhcnRpY3VsYXJseSBpbXBhY3RzIHRoZSBkZWZhdWx0ICpVYnVudHUqIHRoZW1lISIsCiAgImdldHRleHQtZG9tYWluIjogImR5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5IiwKICAibmFtZSI6ICJEeW5hbWljIFBhbmVsIFRyYW5zcGFyZW5jeSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5keW5hbWljLXBhbmVsLXRyYW5zcGFyZW5jeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ld2xzaC9keW5hbWljLXBhbmVsLXRyYW5zcGFyZW5jeS8iLAogICJ1dWlkIjogImR5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5QHJvY2tvbjk5OS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzUKfQ=="}}}
-, {"uuid": "icinga-checker@sosulski.net", "name": "Icinga checker", "pname": "icinga-checker", "description": "Icinga/Nagios checker", "link": "https://extensions.gnome.org/extension/1029/icinga-checker/", "shell_version_map": {"38": {"version": "12", "sha256": "194vk0i02zvsxaxw9iq63xjhdld729vrq8wwbl6i0p89xp1mcqcr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImljaW5nYS1jaGVja2VyQHNvc3Vsc2tpLm5ldCIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "12", "sha256": "194vk0i02zvsxaxw9iq63xjhdld729vrq8wwbl6i0p89xp1mcqcr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImljaW5nYS1jaGVja2VyQHNvc3Vsc2tpLm5ldCIsCiAgInZlcnNpb24iOiAxMgp9"}, "41": {"version": "12", "sha256": "194vk0i02zvsxaxw9iq63xjhdld729vrq8wwbl6i0p89xp1mcqcr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImljaW5nYS1jaGVja2VyQHNvc3Vsc2tpLm5ldCIsCiAgInZlcnNpb24iOiAxMgp9"}}}
+, {"uuid": "icinga-checker@sosulski.net", "name": "Icinga checker", "pname": "icinga-checker", "description": "Icinga/Nagios checker", "link": "https://extensions.gnome.org/extension/1029/icinga-checker/", "shell_version_map": {"38": {"version": "14", "sha256": "1avd9ggqa6zv5r61kj49cfal223iz68yijyzzr6p483031xxpc4r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJpY2luZ2EtY2hlY2tlckBzb3N1bHNraS5uZXQiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "14", "sha256": "1avd9ggqa6zv5r61kj49cfal223iz68yijyzzr6p483031xxpc4r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJpY2luZ2EtY2hlY2tlckBzb3N1bHNraS5uZXQiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "1avd9ggqa6zv5r61kj49cfal223iz68yijyzzr6p483031xxpc4r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJpY2luZ2EtY2hlY2tlckBzb3N1bHNraS5uZXQiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "42": {"version": "14", "sha256": "1avd9ggqa6zv5r61kj49cfal223iz68yijyzzr6p483031xxpc4r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJpY2luZ2EtY2hlY2tlckBzb3N1bHNraS5uZXQiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
 , {"uuid": "taskwhisperer-extension@infinicode.de", "name": "TaskWhisperer", "pname": "taskwhisperer", "description": "Taskwhisperer is a extension for TaskWarrior Application https://taskwarrior.org. It is to display upcoming tasks and task details as well as to create and modify them.\n", "link": "https://extensions.gnome.org/extension/1039/taskwhisperer/", "shell_version_map": {"38": {"version": "20", "sha256": "067z3j2px4rz5yspfjx2s6p5j4l1svxllclahnf3zmv1nlbhzq8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2t3aGlzcGVyZXIgaXMgYSBleHRlbnNpb24gZm9yIFRhc2tXYXJyaW9yIEFwcGxpY2F0aW9uIGh0dHBzOi8vdGFza3dhcnJpb3Iub3JnLiBJdCBpcyB0byBkaXNwbGF5IHVwY29taW5nIHRhc2tzIGFuZCB0YXNrIGRldGFpbHMgYXMgd2VsbCBhcyB0byBjcmVhdGUgYW5kIG1vZGlmeSB0aGVtLlxuIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJUYXNrV2hpc3BlcmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvdGFza3doaXNwZXJlciIsCiAgInV1aWQiOiAidGFza3doaXNwZXJlci1leHRlbnNpb25AaW5maW5pY29kZS5kZSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "20", "sha256": "067z3j2px4rz5yspfjx2s6p5j4l1svxllclahnf3zmv1nlbhzq8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2t3aGlzcGVyZXIgaXMgYSBleHRlbnNpb24gZm9yIFRhc2tXYXJyaW9yIEFwcGxpY2F0aW9uIGh0dHBzOi8vdGFza3dhcnJpb3Iub3JnLiBJdCBpcyB0byBkaXNwbGF5IHVwY29taW5nIHRhc2tzIGFuZCB0YXNrIGRldGFpbHMgYXMgd2VsbCBhcyB0byBjcmVhdGUgYW5kIG1vZGlmeSB0aGVtLlxuIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJUYXNrV2hpc3BlcmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvdGFza3doaXNwZXJlciIsCiAgInV1aWQiOiAidGFza3doaXNwZXJlci1leHRlbnNpb25AaW5maW5pY29kZS5kZSIsCiAgInZlcnNpb24iOiAyMAp9"}}}
-, {"uuid": "randomwallpaper@iflow.space", "name": "Random Wallpaper", "pname": "random-wallpaper", "description": "Fetches a random wallpaper from an online source and sets it as desktop background. \nThe desktop background can be updated periodically or manually.\n\nFeatures:\n* Many different online sources with (Unsplash, Wallhaven, Reddit, JSON API/File)\n* History of previous images\n* Set lock screen image\n* Automatic renewal (interval and on startup)", "link": "https://extensions.gnome.org/extension/1040/random-wallpaper/", "shell_version_map": {"38": {"version": "22", "sha256": "1rwd59pz0q2fnddnh5rz918k337801yk97gm4dn3yc7mjkn90wjc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoZXMgYSByYW5kb20gd2FsbHBhcGVyIGZyb20gYW4gb25saW5lIHNvdXJjZSBhbmQgc2V0cyBpdCBhcyBkZXNrdG9wIGJhY2tncm91bmQuIFxuVGhlIGRlc2t0b3AgYmFja2dyb3VuZCBjYW4gYmUgdXBkYXRlZCBwZXJpb2RpY2FsbHkgb3IgbWFudWFsbHkuXG5cbkZlYXR1cmVzOlxuKiBNYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIChVbnNwbGFzaCwgV2FsbGhhdmVuLCBSZWRkaXQsIEpTT04gQVBJL0ZpbGUpXG4qIEhpc3Rvcnkgb2YgcHJldmlvdXMgaW1hZ2VzXG4qIFNldCBsb2NrIHNjcmVlbiBpbWFnZVxuKiBBdXRvbWF0aWMgcmVuZXdhbCAoaW50ZXJ2YWwgYW5kIG9uIHN0YXJ0dXApIiwKICAibmFtZSI6ICJSYW5kb20gV2FsbHBhcGVyIiwKICAic2VtYW50aWMtdmVyc2lvbiI6ICIyLjQuNSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcGFjZS5pZmxvdy5yYW5kb213YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pZmwwdy9SYW5kb21XYWxscGFwZXJHbm9tZTMiLAogICJ1dWlkIjogInJhbmRvbXdhbGxwYXBlckBpZmxvdy5zcGFjZSIsCiAgInZlcnNpb24iOiAyMgp9"}, "40": {"version": "28", "sha256": "0x1fdrhzg8nmn3pmbrmc66jfwpflmwld6g7phpimmhgixh8rkg1y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoZXMgYSByYW5kb20gd2FsbHBhcGVyIGZyb20gYW4gb25saW5lIHNvdXJjZSBhbmQgc2V0cyBpdCBhcyBkZXNrdG9wIGJhY2tncm91bmQuIFxuVGhlIGRlc2t0b3AgYmFja2dyb3VuZCBjYW4gYmUgdXBkYXRlZCBwZXJpb2RpY2FsbHkgb3IgbWFudWFsbHkuXG5cbkZlYXR1cmVzOlxuKiBNYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIChVbnNwbGFzaCwgV2FsbGhhdmVuLCBSZWRkaXQsIEpTT04gQVBJL0ZpbGUpXG4qIEhpc3Rvcnkgb2YgcHJldmlvdXMgaW1hZ2VzXG4qIFNldCBsb2NrIHNjcmVlbiBpbWFnZVxuKiBBdXRvbWF0aWMgcmVuZXdhbCAoaW50ZXJ2YWwgYW5kIG9uIHN0YXJ0dXApIiwKICAibmFtZSI6ICJSYW5kb20gV2FsbHBhcGVyIiwKICAic2VtYW50aWMtdmVyc2lvbiI6ICIyLjcuMSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcGFjZS5pZmxvdy5yYW5kb213YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwLjAiLAogICAgIjQwLjEiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lmbDB3L1JhbmRvbVdhbGxwYXBlckdub21lMyIsCiAgInV1aWQiOiAicmFuZG9td2FsbHBhcGVyQGlmbG93LnNwYWNlIiwKICAidmVyc2lvbiI6IDI4Cn0="}, "41": {"version": "28", "sha256": "0x1fdrhzg8nmn3pmbrmc66jfwpflmwld6g7phpimmhgixh8rkg1y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoZXMgYSByYW5kb20gd2FsbHBhcGVyIGZyb20gYW4gb25saW5lIHNvdXJjZSBhbmQgc2V0cyBpdCBhcyBkZXNrdG9wIGJhY2tncm91bmQuIFxuVGhlIGRlc2t0b3AgYmFja2dyb3VuZCBjYW4gYmUgdXBkYXRlZCBwZXJpb2RpY2FsbHkgb3IgbWFudWFsbHkuXG5cbkZlYXR1cmVzOlxuKiBNYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIChVbnNwbGFzaCwgV2FsbGhhdmVuLCBSZWRkaXQsIEpTT04gQVBJL0ZpbGUpXG4qIEhpc3Rvcnkgb2YgcHJldmlvdXMgaW1hZ2VzXG4qIFNldCBsb2NrIHNjcmVlbiBpbWFnZVxuKiBBdXRvbWF0aWMgcmVuZXdhbCAoaW50ZXJ2YWwgYW5kIG9uIHN0YXJ0dXApIiwKICAibmFtZSI6ICJSYW5kb20gV2FsbHBhcGVyIiwKICAic2VtYW50aWMtdmVyc2lvbiI6ICIyLjcuMSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcGFjZS5pZmxvdy5yYW5kb213YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwLjAiLAogICAgIjQwLjEiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lmbDB3L1JhbmRvbVdhbGxwYXBlckdub21lMyIsCiAgInV1aWQiOiAicmFuZG9td2FsbHBhcGVyQGlmbG93LnNwYWNlIiwKICAidmVyc2lvbiI6IDI4Cn0="}}}
-, {"uuid": "gse-haguichi-indicator@ztefn.github.com", "name": "Haguichi Indicator", "pname": "haguichi-indicator", "description": "Lets you control Haguichi directly from the system status area in GNOME Shell.", "link": "https://extensions.gnome.org/extension/1045/haguichi-indicator/", "shell_version_map": {"38": {"version": "17", "sha256": "1g13w8gbryjgv59bzpl9kr4w8sjy1x7b4w0dw4bbk48rpyvzpb9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96dGVmbi9nc2UtaGFndWljaGktaW5kaWNhdG9yIiwKICAidXVpZCI6ICJnc2UtaGFndWljaGktaW5kaWNhdG9yQHp0ZWZuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "40": {"version": "17", "sha256": "1g13w8gbryjgv59bzpl9kr4w8sjy1x7b4w0dw4bbk48rpyvzpb9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96dGVmbi9nc2UtaGFndWljaGktaW5kaWNhdG9yIiwKICAidXVpZCI6ICJnc2UtaGFndWljaGktaW5kaWNhdG9yQHp0ZWZuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "41": {"version": "17", "sha256": "1g13w8gbryjgv59bzpl9kr4w8sjy1x7b4w0dw4bbk48rpyvzpb9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96dGVmbi9nc2UtaGFndWljaGktaW5kaWNhdG9yIiwKICAidXVpZCI6ICJnc2UtaGFndWljaGktaW5kaWNhdG9yQHp0ZWZuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
+, {"uuid": "randomwallpaper@iflow.space", "name": "Random Wallpaper", "pname": "random-wallpaper", "description": "Fetch a random wallpaper from an online source and set it as a desktop background. \nThe desktop background can be updated periodically or manually.\n\nFeatures:\nMany different online sources with filters:\n        - Unsplash (https://unsplash.com/)\n        - Wallhaven (https://wallhaven.cc/)\n        - Reddit (https://reddit.com)\n        - Basically any JSON API/File (see Examples on GitHub)\nHistory of previous images\nSet lock screen image\nAutomatic renewal (Auto-Fetching)", "link": "https://extensions.gnome.org/extension/1040/random-wallpaper/", "shell_version_map": {"38": {"version": "22", "sha256": "1mnc7k1816r0q8c95y36ryzl9cni6zms5xm587wmdmy4xi92i8ic", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNC41IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lmbDB3L1JhbmRvbVdhbGxwYXBlckdub21lMyIsCiAgInV1aWQiOiAicmFuZG9td2FsbHBhcGVyQGlmbG93LnNwYWNlIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "28", "sha256": "1j6hvpfqzf2js0hq23j1vyff3pfrwxxd8r2zxcsk2s7wk1vbqjg7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy4xIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMjgKfQ=="}, "41": {"version": "28", "sha256": "1j6hvpfqzf2js0hq23j1vyff3pfrwxxd8r2zxcsk2s7wk1vbqjg7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy4xIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMjgKfQ=="}}}
+, {"uuid": "gse-haguichi-indicator@ztefn.github.com", "name": "Haguichi Indicator", "pname": "haguichi-indicator", "description": "Lets you control Haguichi directly from the system status area in GNOME Shell.", "link": "https://extensions.gnome.org/extension/1045/haguichi-indicator/", "shell_version_map": {"38": {"version": "18", "sha256": "1vknvsrn92g0dq890pnrxsqq2kva5d6pzd7dx3q7ssgclqwfv81r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20venRlZm4vZ3NlLWhhZ3VpY2hpLWluZGljYXRvciIsCiAgInV1aWQiOiAiZ3NlLWhhZ3VpY2hpLWluZGljYXRvckB6dGVmbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "18", "sha256": "1vknvsrn92g0dq890pnrxsqq2kva5d6pzd7dx3q7ssgclqwfv81r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20venRlZm4vZ3NlLWhhZ3VpY2hpLWluZGljYXRvciIsCiAgInV1aWQiOiAiZ3NlLWhhZ3VpY2hpLWluZGljYXRvckB6dGVmbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "41": {"version": "18", "sha256": "1vknvsrn92g0dq890pnrxsqq2kva5d6pzd7dx3q7ssgclqwfv81r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20venRlZm4vZ3NlLWhhZ3VpY2hpLWluZGljYXRvciIsCiAgInV1aWQiOiAiZ3NlLWhhZ3VpY2hpLWluZGljYXRvckB6dGVmbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "42": {"version": "18", "sha256": "1vknvsrn92g0dq890pnrxsqq2kva5d6pzd7dx3q7ssgclqwfv81r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20venRlZm4vZ3NlLWhhZ3VpY2hpLWluZGljYXRvciIsCiAgInV1aWQiOiAiZ3NlLWhhZ3VpY2hpLWluZGljYXRvckB6dGVmbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
 , {"uuid": "timezone@jwendell", "name": "Timezone", "pname": "timezone", "description": "See people with their timezones from the Shell", "link": "https://extensions.gnome.org/extension/1060/timezone/", "shell_version_map": {"40": {"version": "18", "sha256": "1ksb8pm2y4lxjcwn2l0yj6piz5cqgmzx6k4rygx1mbh5y76mwdji", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlZSBwZW9wbGUgd2l0aCB0aGVpciB0aW1lem9uZXMgZnJvbSB0aGUgU2hlbGwiLAogICJuYW1lIjogIlRpbWV6b25lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRpbWV6b25lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2p3ZW5kZWxsL2dub21lLXNoZWxsLWV4dGVuc2lvbi10aW1lem9uZSIsCiAgInV1aWQiOiAidGltZXpvbmVAandlbmRlbGwiLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "41": {"version": "19", "sha256": "0mjqwf1i8arrvdhp8m17azh1xahrhxivncscb8shyq87817cfkp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlZSBwZW9wbGUgd2l0aCB0aGVpciB0aW1lem9uZXMgZnJvbSB0aGUgU2hlbGwiLAogICJuYW1lIjogIlRpbWV6b25lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRpbWV6b25lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2p3ZW5kZWxsL2dub21lLXNoZWxsLWV4dGVuc2lvbi10aW1lem9uZSIsCiAgInV1aWQiOiAidGltZXpvbmVAandlbmRlbGwiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
 , {"uuid": "On_Screen_Keyboard_Button@bradan.eu", "name": "On Screen Keyboard Button", "pname": "on-screen-keyboard-button", "description": "Shows or hides the OSK via top bar button. It works with X, not with wayland. Wayland has it's own technique: swipe the keyboard up from the bottom display edge.\n\nSource code: https://github.com/Bradan/Gnome-On-Screen-Keyboard-Button", "link": "https://extensions.gnome.org/extension/1061/on-screen-keyboard-button/", "shell_version_map": {"38": {"version": "5", "sha256": "0z3jcv5gzv1pwfla9ghp5kjljc5n80fcab0d2c2i2pw7y7kvpabr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG9yIGhpZGVzIHRoZSBPU0sgdmlhIHRvcCBiYXIgYnV0dG9uLiBJdCB3b3JrcyB3aXRoIFgsIG5vdCB3aXRoIHdheWxhbmQuIFdheWxhbmQgaGFzIGl0J3Mgb3duIHRlY2huaXF1ZTogc3dpcGUgdGhlIGtleWJvYXJkIHVwIGZyb20gdGhlIGJvdHRvbSBkaXNwbGF5IGVkZ2UuXG5cblNvdXJjZSBjb2RlOiBodHRwczovL2dpdGh1Yi5jb20vQnJhZGFuL0dub21lLU9uLVNjcmVlbi1LZXlib2FyZC1CdXR0b24iLAogICJuYW1lIjogIk9uIFNjcmVlbiBLZXlib2FyZCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjgiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiT25fU2NyZWVuX0tleWJvYXJkX0J1dHRvbkBicmFkYW4uZXUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
-, {"uuid": "System_Monitor@bghome.gmail.com", "name": "System Monitor", "pname": "system-monitor", "description": "Display resource usage.\n\nLinux distribution specific installation instructions can be found in the wiki at https://github.com/elvetemedve/gnome-shell-extension-system-monitor/wiki/Installation.\n\nPlease report bugs here: https://github.com/elvetemedve/gnome-shell-extension-system-monitor/issues", "link": "https://extensions.gnome.org/extension/1064/system-monitor/", "shell_version_map": {"38": {"version": "23", "sha256": "09waxjwbdndqin023ns8vmazzxqqijyj95dp4yyha924vmkmpplx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbHZldGVtZWR2ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogIlN5c3RlbV9Nb25pdG9yQGJnaG9tZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="}, "40": {"version": "23", "sha256": "09waxjwbdndqin023ns8vmazzxqqijyj95dp4yyha924vmkmpplx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbHZldGVtZWR2ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogIlN5c3RlbV9Nb25pdG9yQGJnaG9tZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="}, "41": {"version": "23", "sha256": "09waxjwbdndqin023ns8vmazzxqqijyj95dp4yyha924vmkmpplx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbHZldGVtZWR2ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogIlN5c3RlbV9Nb25pdG9yQGJnaG9tZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="}}}
-, {"uuid": "syncthing@gnome.2nv2u.com", "name": "Syncthing Indicator", "pname": "syncthing-indicator", "description": "Shell indicator for starting, monitoring and controlling the Syncthing daemon using SystemD", "link": "https://extensions.gnome.org/extension/1070/syncthing-indicator/", "shell_version_map": {"38": {"version": "25", "sha256": "14gq4b127yz7masllz4yxi0sk87cs34rhycn606a23bi24p213vl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8ybnYydS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nLWluZGljYXRvciIsCiAgInV1aWQiOiAic3luY3RoaW5nQGdub21lLjJudjJ1LmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}, "40": {"version": "25", "sha256": "14gq4b127yz7masllz4yxi0sk87cs34rhycn606a23bi24p213vl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8ybnYydS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nLWluZGljYXRvciIsCiAgInV1aWQiOiAic3luY3RoaW5nQGdub21lLjJudjJ1LmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}, "41": {"version": "25", "sha256": "14gq4b127yz7masllz4yxi0sk87cs34rhycn606a23bi24p213vl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8ybnYydS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nLWluZGljYXRvciIsCiAgInV1aWQiOiAic3luY3RoaW5nQGdub21lLjJudjJ1LmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}, "42": {"version": "25", "sha256": "14gq4b127yz7masllz4yxi0sk87cs34rhycn606a23bi24p213vl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8ybnYydS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nLWluZGljYXRvciIsCiAgInV1aWQiOiAic3luY3RoaW5nQGdub21lLjJudjJ1LmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}}}
-, {"uuid": "applications-overview-tooltip@RaphaelRochet", "name": "Applications Overview Tooltip", "pname": "applications-overview-tooltip", "description": "Shows a tooltip over applications icons on applications overview with application name and/or description.", "link": "https://extensions.gnome.org/extension/1071/applications-overview-tooltip/", "shell_version_map": {"38": {"version": "11", "sha256": "0alvg0l46hls3jz3a5ic21fgbjbg0kv0nn0pkknzsgjfw5mmwz69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYXBoYWVsUm9jaGV0L2FwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwIiwKICAidXVpZCI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcEBSYXBoYWVsUm9jaGV0IiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "14", "sha256": "1vv5hvmg987vp8rdyvfff089h99m8xqrhyfbrgbipgy7862yf6lq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJ1dWlkIjogImFwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "1vv5hvmg987vp8rdyvfff089h99m8xqrhyfbrgbipgy7862yf6lq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJ1dWlkIjogImFwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
+, {"uuid": "System_Monitor@bghome.gmail.com", "name": "System Monitor", "pname": "system-monitor", "description": "Display resource usage.\n\nLinux distribution specific installation instructions can be found in the wiki at https://github.com/elvetemedve/gnome-shell-extension-system-monitor/wiki/Installation.\n\nPlease report bugs here: https://github.com/elvetemedve/gnome-shell-extension-system-monitor/issues", "link": "https://extensions.gnome.org/extension/1064/system-monitor/", "shell_version_map": {"38": {"version": "24", "sha256": "0ng6wa41z816sv27k8zrhpk9b5zm9shdasgwij0isv2g91cv8kg3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yIiwKICAidXVpZCI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}, "40": {"version": "24", "sha256": "0ng6wa41z816sv27k8zrhpk9b5zm9shdasgwij0isv2g91cv8kg3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yIiwKICAidXVpZCI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}, "41": {"version": "24", "sha256": "0ng6wa41z816sv27k8zrhpk9b5zm9shdasgwij0isv2g91cv8kg3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yIiwKICAidXVpZCI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}, "42": {"version": "24", "sha256": "0ng6wa41z816sv27k8zrhpk9b5zm9shdasgwij0isv2g91cv8kg3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yIiwKICAidXVpZCI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}}}
+, {"uuid": "syncthing@gnome.2nv2u.com", "name": "Syncthing Indicator", "pname": "syncthing-indicator", "description": "Shell indicator for starting, monitoring and controlling the Syncthing daemon using SystemD", "link": "https://extensions.gnome.org/extension/1070/syncthing-indicator/", "shell_version_map": {"38": {"version": "27", "sha256": "08l9xsbndgi7v863x76q4br89gjysaxwx8rhfkcp2nwqw247wfa2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8ybnYydS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nLWluZGljYXRvciIsCiAgInV1aWQiOiAic3luY3RoaW5nQGdub21lLjJudjJ1LmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"}, "40": {"version": "27", "sha256": "08l9xsbndgi7v863x76q4br89gjysaxwx8rhfkcp2nwqw247wfa2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8ybnYydS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nLWluZGljYXRvciIsCiAgInV1aWQiOiAic3luY3RoaW5nQGdub21lLjJudjJ1LmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"}, "41": {"version": "27", "sha256": "08l9xsbndgi7v863x76q4br89gjysaxwx8rhfkcp2nwqw247wfa2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8ybnYydS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nLWluZGljYXRvciIsCiAgInV1aWQiOiAic3luY3RoaW5nQGdub21lLjJudjJ1LmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"}, "42": {"version": "27", "sha256": "08l9xsbndgi7v863x76q4br89gjysaxwx8rhfkcp2nwqw247wfa2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8ybnYydS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nLWluZGljYXRvciIsCiAgInV1aWQiOiAic3luY3RoaW5nQGdub21lLjJudjJ1LmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"}}}
+, {"uuid": "applications-overview-tooltip@RaphaelRochet", "name": "Applications Overview Tooltip", "pname": "applications-overview-tooltip", "description": "Shows a tooltip over applications icons on applications overview with application name and/or description.", "link": "https://extensions.gnome.org/extension/1071/applications-overview-tooltip/", "shell_version_map": {"38": {"version": "11", "sha256": "0alvg0l46hls3jz3a5ic21fgbjbg0kv0nn0pkknzsgjfw5mmwz69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYXBoYWVsUm9jaGV0L2FwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwIiwKICAidXVpZCI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcEBSYXBoYWVsUm9jaGV0IiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "15", "sha256": "1bz8f4n4s4ap736yik7v672c646v1rs493qgrld3fdg47rvksrv2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYXBoYWVsUm9jaGV0L2FwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwIiwKICAidXVpZCI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcEBSYXBoYWVsUm9jaGV0IiwKICAidmVyc2lvbiI6IDE1Cn0="}, "41": {"version": "15", "sha256": "1bz8f4n4s4ap736yik7v672c646v1rs493qgrld3fdg47rvksrv2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYXBoYWVsUm9jaGV0L2FwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwIiwKICAidXVpZCI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcEBSYXBoYWVsUm9jaGV0IiwKICAidmVyc2lvbiI6IDE1Cn0="}, "42": {"version": "15", "sha256": "1bz8f4n4s4ap736yik7v672c646v1rs493qgrld3fdg47rvksrv2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYXBoYWVsUm9jaGV0L2FwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwIiwKICAidXVpZCI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcEBSYXBoYWVsUm9jaGV0IiwKICAidmVyc2lvbiI6IDE1Cn0="}}}
 , {"uuid": "TwitchLive_Panel@extensions.maweki.de", "name": "TwitchLive Panel", "pname": "twitchlive-panel", "description": "A panel showing whether your favorite Twitch.tv streamers are streaming.\n\nCycles through the online streamers if multiples are configured. Click on the panel and then on streamer's name to launch the stream with a custom command (your browser or some other application).\n\nNeeds curl and mogrify to fully support streamer logos. For an extension version compatible with shell version 3.30 or earlier visit our github page.", "link": "https://extensions.gnome.org/extension/1078/twitchlive-panel/", "shell_version_map": {"40": {"version": "37", "sha256": "0g1s5f3si8hlgf3m033c1c9fxydhs3wcykf4rr1pkzd54q6a8vq9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4gRm9yIGFuIGV4dGVuc2lvbiB2ZXJzaW9uIGNvbXBhdGlibGUgd2l0aCBzaGVsbCB2ZXJzaW9uIDMuMzAgb3IgZWFybGllciB2aXNpdCBvdXIgZ2l0aHViIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHdpdGNobGl2ZSIsCiAgIm5hbWUiOiAiVHdpdGNoTGl2ZSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2l0Y2hsaXZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdla2kvdHdpdGNobGl2ZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlR3aXRjaExpdmVfUGFuZWxAZXh0ZW5zaW9ucy5tYXdla2kuZGUiLAogICJ2ZXJzaW9uIjogMzcKfQ=="}, "41": {"version": "37", "sha256": "0g1s5f3si8hlgf3m033c1c9fxydhs3wcykf4rr1pkzd54q6a8vq9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4gRm9yIGFuIGV4dGVuc2lvbiB2ZXJzaW9uIGNvbXBhdGlibGUgd2l0aCBzaGVsbCB2ZXJzaW9uIDMuMzAgb3IgZWFybGllciB2aXNpdCBvdXIgZ2l0aHViIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHdpdGNobGl2ZSIsCiAgIm5hbWUiOiAiVHdpdGNoTGl2ZSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2l0Y2hsaXZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdla2kvdHdpdGNobGl2ZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlR3aXRjaExpdmVfUGFuZWxAZXh0ZW5zaW9ucy5tYXdla2kuZGUiLAogICJ2ZXJzaW9uIjogMzcKfQ=="}}}
 , {"uuid": "cpufreq@konkor", "name": "cpufreq", "pname": "cpufreq", "description": "System Monitor and Power Manager.\n\nThis is a lightweight system monitor and power management tool. It needs root permission to able changing governors.\n\nFeatures:\n⚫ Compatible with many hardware architectures;\n⚫ CPU Frequency monitoring;\n⚫ CPU Governor management;\n⚫ CPU Frequency speed limits;\n⚫ CPU Boost supporting;\n⚫ CPU Core Power on/off;\n⚫ Saving/Restoring settings...\n\nFor more information and how-to see README.md", "link": "https://extensions.gnome.org/extension/1082/cpufreq/", "shell_version_map": {"38": {"version": "51", "sha256": "1i6lwb82j21qx38gxy1rdv2bgn2rh6qf9hswasbf26g9k3ay3w1n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBNb25pdG9yIGFuZCBQb3dlciBNYW5hZ2VyLlxuXG5UaGlzIGlzIGEgbGlnaHR3ZWlnaHQgc3lzdGVtIG1vbml0b3IgYW5kIHBvd2VyIG1hbmFnZW1lbnQgdG9vbC4gSXQgbmVlZHMgcm9vdCBwZXJtaXNzaW9uIHRvIGFibGUgY2hhbmdpbmcgZ292ZXJub3JzLlxuXG5GZWF0dXJlczpcblx1MjZhYiBDb21wYXRpYmxlIHdpdGggbWFueSBoYXJkd2FyZSBhcmNoaXRlY3R1cmVzO1xuXHUyNmFiIENQVSBGcmVxdWVuY3kgbW9uaXRvcmluZztcblx1MjZhYiBDUFUgR292ZXJub3IgbWFuYWdlbWVudDtcblx1MjZhYiBDUFUgRnJlcXVlbmN5IHNwZWVkIGxpbWl0cztcblx1MjZhYiBDUFUgQm9vc3Qgc3VwcG9ydGluZztcblx1MjZhYiBDUFUgQ29yZSBQb3dlciBvbi9vZmY7XG5cdTI2YWIgU2F2aW5nL1Jlc3RvcmluZyBzZXR0aW5ncy4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJuYW1lIjogImNwdWZyZXEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1ZnJlcSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29ua29yL2NwdWZyZXEiLAogICJ1dWlkIjogImNwdWZyZXFAa29ua29yIiwKICAidmVyc2lvbiI6IDUxCn0="}, "40": {"version": "51", "sha256": "1i6lwb82j21qx38gxy1rdv2bgn2rh6qf9hswasbf26g9k3ay3w1n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBNb25pdG9yIGFuZCBQb3dlciBNYW5hZ2VyLlxuXG5UaGlzIGlzIGEgbGlnaHR3ZWlnaHQgc3lzdGVtIG1vbml0b3IgYW5kIHBvd2VyIG1hbmFnZW1lbnQgdG9vbC4gSXQgbmVlZHMgcm9vdCBwZXJtaXNzaW9uIHRvIGFibGUgY2hhbmdpbmcgZ292ZXJub3JzLlxuXG5GZWF0dXJlczpcblx1MjZhYiBDb21wYXRpYmxlIHdpdGggbWFueSBoYXJkd2FyZSBhcmNoaXRlY3R1cmVzO1xuXHUyNmFiIENQVSBGcmVxdWVuY3kgbW9uaXRvcmluZztcblx1MjZhYiBDUFUgR292ZXJub3IgbWFuYWdlbWVudDtcblx1MjZhYiBDUFUgRnJlcXVlbmN5IHNwZWVkIGxpbWl0cztcblx1MjZhYiBDUFUgQm9vc3Qgc3VwcG9ydGluZztcblx1MjZhYiBDUFUgQ29yZSBQb3dlciBvbi9vZmY7XG5cdTI2YWIgU2F2aW5nL1Jlc3RvcmluZyBzZXR0aW5ncy4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJuYW1lIjogImNwdWZyZXEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1ZnJlcSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29ua29yL2NwdWZyZXEiLAogICJ1dWlkIjogImNwdWZyZXFAa29ua29yIiwKICAidmVyc2lvbiI6IDUxCn0="}, "41": {"version": "51", "sha256": "1i6lwb82j21qx38gxy1rdv2bgn2rh6qf9hswasbf26g9k3ay3w1n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBNb25pdG9yIGFuZCBQb3dlciBNYW5hZ2VyLlxuXG5UaGlzIGlzIGEgbGlnaHR3ZWlnaHQgc3lzdGVtIG1vbml0b3IgYW5kIHBvd2VyIG1hbmFnZW1lbnQgdG9vbC4gSXQgbmVlZHMgcm9vdCBwZXJtaXNzaW9uIHRvIGFibGUgY2hhbmdpbmcgZ292ZXJub3JzLlxuXG5GZWF0dXJlczpcblx1MjZhYiBDb21wYXRpYmxlIHdpdGggbWFueSBoYXJkd2FyZSBhcmNoaXRlY3R1cmVzO1xuXHUyNmFiIENQVSBGcmVxdWVuY3kgbW9uaXRvcmluZztcblx1MjZhYiBDUFUgR292ZXJub3IgbWFuYWdlbWVudDtcblx1MjZhYiBDUFUgRnJlcXVlbmN5IHNwZWVkIGxpbWl0cztcblx1MjZhYiBDUFUgQm9vc3Qgc3VwcG9ydGluZztcblx1MjZhYiBDUFUgQ29yZSBQb3dlciBvbi9vZmY7XG5cdTI2YWIgU2F2aW5nL1Jlc3RvcmluZyBzZXR0aW5ncy4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJuYW1lIjogImNwdWZyZXEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1ZnJlcSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29ua29yL2NwdWZyZXEiLAogICJ1dWlkIjogImNwdWZyZXFAa29ua29yIiwKICAidmVyc2lvbiI6IDUxCn0="}}}
-, {"uuid": "simplenetspeed@biji.extension", "name": "Simple net speed", "pname": "simple-net-speed", "description": "Simply showing network speed. Left click to change modes:\n\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up & down speed in bits per second\n4. Up & down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter)\n\nMiddle click to change font size", "link": "https://extensions.gnome.org/extension/1085/simple-net-speed/", "shell_version_map": {"38": {"version": "25", "sha256": "1lvz86mafjpsjwypy24py369wwf5pbrgqgx1yg9yiwxy9jzsqy9k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL3NpbXBsZW5ldHNwZWVkIiwKICAidXVpZCI6ICJzaW1wbGVuZXRzcGVlZEBiaWppLmV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiAyNQp9"}, "40": {"version": "25", "sha256": "1lvz86mafjpsjwypy24py369wwf5pbrgqgx1yg9yiwxy9jzsqy9k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL3NpbXBsZW5ldHNwZWVkIiwKICAidXVpZCI6ICJzaW1wbGVuZXRzcGVlZEBiaWppLmV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiAyNQp9"}, "41": {"version": "25", "sha256": "1lvz86mafjpsjwypy24py369wwf5pbrgqgx1yg9yiwxy9jzsqy9k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL3NpbXBsZW5ldHNwZWVkIiwKICAidXVpZCI6ICJzaW1wbGVuZXRzcGVlZEBiaWppLmV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiAyNQp9"}, "42": {"version": "21", "sha256": "1zi8lc57zih2b98837lsms0msl9xhnmzng0facq3wr53g9ick4df", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIsCiAgICAiNDciLAogICAgIjQ4IiwKICAgICI0OSIsCiAgICAiNTAiLAogICAgIjUxIiwKICAgICI1MiIsCiAgICAiNTMiLAogICAgIjU0IiwKICAgICI1NSIsCiAgICAiNTYiLAogICAgIjU3IiwKICAgICI1OCIsCiAgICAiNTkiLAogICAgIjYwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9zaW1wbGVuZXRzcGVlZCIsCiAgInV1aWQiOiAic2ltcGxlbmV0c3BlZWRAYmlqaS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMjEKfQ=="}}}
+, {"uuid": "simplenetspeed@biji.extension", "name": "Simple net speed", "pname": "simple-net-speed", "description": "Simply showing network speed. Left click to change modes:\n\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up & down speed in bits per second\n4. Up & down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter)\n\nMiddle click to change font size", "link": "https://extensions.gnome.org/extension/1085/simple-net-speed/", "shell_version_map": {"38": {"version": "28", "sha256": "16cilh0rki5pp4kwhd9y51c5602l4l953x4sl4h7sqdnpwxnzibs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9zaW1wbGVuZXRzcGVlZCIsCiAgInV1aWQiOiAic2ltcGxlbmV0c3BlZWRAYmlqaS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMjgKfQ=="}, "40": {"version": "28", "sha256": "16cilh0rki5pp4kwhd9y51c5602l4l953x4sl4h7sqdnpwxnzibs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9zaW1wbGVuZXRzcGVlZCIsCiAgInV1aWQiOiAic2ltcGxlbmV0c3BlZWRAYmlqaS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMjgKfQ=="}, "41": {"version": "28", "sha256": "16cilh0rki5pp4kwhd9y51c5602l4l953x4sl4h7sqdnpwxnzibs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9zaW1wbGVuZXRzcGVlZCIsCiAgInV1aWQiOiAic2ltcGxlbmV0c3BlZWRAYmlqaS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMjgKfQ=="}, "42": {"version": "28", "sha256": "16cilh0rki5pp4kwhd9y51c5602l4l953x4sl4h7sqdnpwxnzibs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9zaW1wbGVuZXRzcGVlZCIsCiAgInV1aWQiOiAic2ltcGxlbmV0c3BlZWRAYmlqaS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMjgKfQ=="}}}
 , {"uuid": "gnome-shell-go-to-last-workspace@github.com", "name": "Go To Last Workspace", "pname": "go-to-last-workspace", "description": "Quickly toggle between two workspaces with one key", "link": "https://extensions.gnome.org/extension/1089/go-to-last-workspace/", "shell_version_map": {"38": {"version": "7", "sha256": "19jyrfhniz65xfrwzpph4i33mwpbfshy5bc79vxd5fy4qa0p6scp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgdG9nZ2xlIGJldHdlZW4gdHdvIHdvcmtzcGFjZXMgd2l0aCBvbmUga2V5IiwKICAibmFtZSI6ICJHbyBUbyBMYXN0IFdvcmtzcGFjZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nby10by1sYXN0LXdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmphbi9nbm9tZS1zaGVsbC1nby10by1sYXN0LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiZ25vbWUtc2hlbGwtZ28tdG8tbGFzdC13b3Jrc3BhY2VAZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "19jyrfhniz65xfrwzpph4i33mwpbfshy5bc79vxd5fy4qa0p6scp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgdG9nZ2xlIGJldHdlZW4gdHdvIHdvcmtzcGFjZXMgd2l0aCBvbmUga2V5IiwKICAibmFtZSI6ICJHbyBUbyBMYXN0IFdvcmtzcGFjZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nby10by1sYXN0LXdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmphbi9nbm9tZS1zaGVsbC1nby10by1sYXN0LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiZ25vbWUtc2hlbGwtZ28tdG8tbGFzdC13b3Jrc3BhY2VAZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
 , {"uuid": "KeepAwake@jepfa.de", "name": "Keep awake!", "pname": "keep-awake", "description": "Keep your computer awake! Forbid your computer to activate sceensaver, turn off the screen or suspend when it is idle for a while. Click the indicator icon (in the taskbar) once to keep your computer awake for the session. Click again to enable persistance of this setting between restarts (indicated by a small lock icon on the indicator). Switch off by clicking again.", "link": "https://extensions.gnome.org/extension/1097/keep-awake/", "shell_version_map": {"38": {"version": "6", "sha256": "1lmwq4ng14jvpzd3fnwc8bilvyigya46d8il8m16g1596p3hikdk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgRm9yYmlkIHlvdXIgY29tcHV0ZXIgdG8gYWN0aXZhdGUgc2NlZW5zYXZlciwgdHVybiBvZmYgdGhlIHNjcmVlbiBvciBzdXNwZW5kIHdoZW4gaXQgaXMgaWRsZSBmb3IgYSB3aGlsZS4gQ2xpY2sgdGhlIGluZGljYXRvciBpY29uIChpbiB0aGUgdGFza2Jhcikgb25jZSB0byBrZWVwIHlvdXIgY29tcHV0ZXIgYXdha2UgZm9yIHRoZSBzZXNzaW9uLiBDbGljayBhZ2FpbiB0byBlbmFibGUgcGVyc2lzdGFuY2Ugb2YgdGhpcyBzZXR0aW5nIGJldHdlZW4gcmVzdGFydHMgKGluZGljYXRlZCBieSBhIHNtYWxsIGxvY2sgaWNvbiBvbiB0aGUgaW5kaWNhdG9yKS4gU3dpdGNoIG9mZiBieSBjbGlja2luZyBhZ2Fpbi4iLAogICJuYW1lIjogIktlZXAgYXdha2UhIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLktlZXBBd2FrZUBqZXBmYS5kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plbnNwZmFobC9LZWVwQXdha2UiLAogICJ1dWlkIjogIktlZXBBd2FrZUBqZXBmYS5kZSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"uuid": "todolist@tomMoral.org", "name": "Section Todo List", "pname": "section-todo-list", "description": "Manage todo list with an applet\n\n* Add and remove task on your list in different sections.\n* Click an item to rename it.\n* Access the extension using Hot-Key (default: Ctrl+Space)\n", "link": "https://extensions.gnome.org/extension/1104/section-todo-list/", "shell_version_map": {"38": {"version": "11", "sha256": "02b5gccsx6ifgv2jyrniwagdf09jg7lvwzwlgm11qbrv7w7bn0qp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB0b2RvIGxpc3Qgd2l0aCBhbiBhcHBsZXRcblxuKiBBZGQgYW5kIHJlbW92ZSB0YXNrIG9uIHlvdXIgbGlzdCBpbiBkaWZmZXJlbnQgc2VjdGlvbnMuXG4qIENsaWNrIGFuIGl0ZW0gdG8gcmVuYW1lIGl0LlxuKiBBY2Nlc3MgdGhlIGV4dGVuc2lvbiB1c2luZyBIb3QtS2V5IChkZWZhdWx0OiBDdHJsK1NwYWNlKVxuIiwKICAibmFtZSI6ICJTZWN0aW9uIFRvZG8gTGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21Nb3JhbC9Ub0RvTGlzdCIsCiAgInV1aWQiOiAidG9kb2xpc3RAdG9tTW9yYWwub3JnIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "02b5gccsx6ifgv2jyrniwagdf09jg7lvwzwlgm11qbrv7w7bn0qp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB0b2RvIGxpc3Qgd2l0aCBhbiBhcHBsZXRcblxuKiBBZGQgYW5kIHJlbW92ZSB0YXNrIG9uIHlvdXIgbGlzdCBpbiBkaWZmZXJlbnQgc2VjdGlvbnMuXG4qIENsaWNrIGFuIGl0ZW0gdG8gcmVuYW1lIGl0LlxuKiBBY2Nlc3MgdGhlIGV4dGVuc2lvbiB1c2luZyBIb3QtS2V5IChkZWZhdWx0OiBDdHJsK1NwYWNlKVxuIiwKICAibmFtZSI6ICJTZWN0aW9uIFRvZG8gTGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21Nb3JhbC9Ub0RvTGlzdCIsCiAgInV1aWQiOiAidG9kb2xpc3RAdG9tTW9yYWwub3JnIiwKICAidmVyc2lvbiI6IDExCn0="}}}
 , {"uuid": "add-username-toppanel@brendaw.com", "name": "Add Username to Top Panel", "pname": "add-username-to-top-panel", "description": "Simply add your username to topbar panel aggregate menu", "link": "https://extensions.gnome.org/extension/1108/add-username-to-top-panel/", "shell_version_map": {"38": {"version": "4", "sha256": "1b2p8924id4shzpvj58958r7j422ppkw7bsfmng9sq25k3w4xvb3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBhZGQgeW91ciB1c2VybmFtZSB0byB0b3BiYXIgcGFuZWwgYWdncmVnYXRlIG1lbnUiLAogICJuYW1lIjogIkFkZCBVc2VybmFtZSB0byBUb3AgUGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndpbGxpYW1icmVuZGF3QHByb3Rvbm1haWwuY29tIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4yMC40IiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9icmVuZGF3L2FkZC11c2VybmFtZS10b3BwYW5lbCIsCiAgInV1aWQiOiAiYWRkLXVzZXJuYW1lLXRvcHBhbmVsQGJyZW5kYXcuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "1b2p8924id4shzpvj58958r7j422ppkw7bsfmng9sq25k3w4xvb3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBhZGQgeW91ciB1c2VybmFtZSB0byB0b3BiYXIgcGFuZWwgYWdncmVnYXRlIG1lbnUiLAogICJuYW1lIjogIkFkZCBVc2VybmFtZSB0byBUb3AgUGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndpbGxpYW1icmVuZGF3QHByb3Rvbm1haWwuY29tIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4yMC40IiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9icmVuZGF3L2FkZC11c2VybmFtZS10b3BwYW5lbCIsCiAgInV1aWQiOiAiYWRkLXVzZXJuYW1lLXRvcHBhbmVsQGJyZW5kYXcuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1b2p8924id4shzpvj58958r7j422ppkw7bsfmng9sq25k3w4xvb3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBhZGQgeW91ciB1c2VybmFtZSB0byB0b3BiYXIgcGFuZWwgYWdncmVnYXRlIG1lbnUiLAogICJuYW1lIjogIkFkZCBVc2VybmFtZSB0byBUb3AgUGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndpbGxpYW1icmVuZGF3QHByb3Rvbm1haWwuY29tIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4yMC40IiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9icmVuZGF3L2FkZC11c2VybmFtZS10b3BwYW5lbCIsCiAgInV1aWQiOiAiYWRkLXVzZXJuYW1lLXRvcHBhbmVsQGJyZW5kYXcuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "Hide_Clock@grantmcwilliams.com", "name": "Hide Clock", "pname": "hide-clock", "description": "Hide title bar clock", "link": "https://extensions.gnome.org/extension/1110/hide-clock/", "shell_version_map": {"38": {"version": "4", "sha256": "0vxlc72gzin16xl5h6i0ixlmm6x9ahp3w3phyg0jk8b0q7qdflzq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGl0bGUgYmFyIGNsb2NrIiwKICAibmFtZSI6ICJIaWRlIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiSGlkZV9DbG9ja0BncmFudG1jd2lsbGlhbXMuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "0vxlc72gzin16xl5h6i0ixlmm6x9ahp3w3phyg0jk8b0q7qdflzq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGl0bGUgYmFyIGNsb2NrIiwKICAibmFtZSI6ICJIaWRlIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiSGlkZV9DbG9ja0BncmFudG1jd2lsbGlhbXMuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "0vxlc72gzin16xl5h6i0ixlmm6x9ahp3w3phyg0jk8b0q7qdflzq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGl0bGUgYmFyIGNsb2NrIiwKICAibmFtZSI6ICJIaWRlIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiSGlkZV9DbG9ja0BncmFudG1jd2lsbGlhbXMuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "gnome-shell-screenshot@ttll.de", "name": "Screenshot Tool", "pname": "screenshot-tool", "description": "Conveniently create, copy, store and upload screenshots. Please log out and log in again after updating.", "link": "https://extensions.gnome.org/extension/1112/screenshot-tool/", "shell_version_map": {"38": {"version": "56", "sha256": "1ga2ray64aq1d1vn0rsscfxjiidbiln3vx42rn9i4q2a59b00znq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMuIFBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4gYWZ0ZXIgdXBkYXRpbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtc2NyZWVuc2hvdCIsCiAgImdpdC12ZXJzaW9uIjogInY1NiIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBUb29sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLXNjcmVlbnNob3QvIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90QHR0bGwuZGUiLAogICJ2ZXJzaW9uIjogNTYKfQ=="}, "40": {"version": "66", "sha256": "1vy5649vznq9g2aarl61570f8fql1akv7pwwkzsa90z2f787b32k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMuIFBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4gYWZ0ZXIgdXBkYXRpbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtc2NyZWVuc2hvdCIsCiAgImdpdC12ZXJzaW9uIjogInY2NiIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBUb29sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL090dG9BbGxtZW5kaW5nZXIvZ25vbWUtc2hlbGwtc2NyZWVuc2hvdC8iLAogICJ1dWlkIjogImdub21lLXNoZWxsLXNjcmVlbnNob3RAdHRsbC5kZSIsCiAgInZlcnNpb24iOiA2Ngp9"}, "41": {"version": "66", "sha256": "1vy5649vznq9g2aarl61570f8fql1akv7pwwkzsa90z2f787b32k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMuIFBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4gYWZ0ZXIgdXBkYXRpbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtc2NyZWVuc2hvdCIsCiAgImdpdC12ZXJzaW9uIjogInY2NiIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBUb29sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL090dG9BbGxtZW5kaW5nZXIvZ25vbWUtc2hlbGwtc2NyZWVuc2hvdC8iLAogICJ1dWlkIjogImdub21lLXNoZWxsLXNjcmVlbnNob3RAdHRsbC5kZSIsCiAgInZlcnNpb24iOiA2Ngp9"}}}
+, {"uuid": "gnome-shell-screenshot@ttll.de", "name": "Screenshot Tool", "pname": "screenshot-tool", "description": "Conveniently create, copy, store and upload screenshots. Please log out and log in again after updating.", "link": "https://extensions.gnome.org/extension/1112/screenshot-tool/", "shell_version_map": {"38": {"version": "56", "sha256": "1ga2ray64aq1d1vn0rsscfxjiidbiln3vx42rn9i4q2a59b00znq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMuIFBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4gYWZ0ZXIgdXBkYXRpbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtc2NyZWVuc2hvdCIsCiAgImdpdC12ZXJzaW9uIjogInY1NiIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBUb29sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLXNjcmVlbnNob3QvIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90QHR0bGwuZGUiLAogICJ2ZXJzaW9uIjogNTYKfQ=="}, "40": {"version": "68", "sha256": "1py94s1v5vjnf8w7as7ypprbk2504a0kkh6p6ppm9glcr2vl8w2r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMuIFBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4gYWZ0ZXIgdXBkYXRpbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtc2NyZWVuc2hvdCIsCiAgImdpdC12ZXJzaW9uIjogInY2OCIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBUb29sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLXNjcmVlbnNob3QvIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90QHR0bGwuZGUiLAogICJ2ZXJzaW9uIjogNjgKfQ=="}, "41": {"version": "68", "sha256": "1py94s1v5vjnf8w7as7ypprbk2504a0kkh6p6ppm9glcr2vl8w2r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMuIFBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4gYWZ0ZXIgdXBkYXRpbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtc2NyZWVuc2hvdCIsCiAgImdpdC12ZXJzaW9uIjogInY2OCIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBUb29sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLXNjcmVlbnNob3QvIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90QHR0bGwuZGUiLAogICJ2ZXJzaW9uIjogNjgKfQ=="}, "42": {"version": "68", "sha256": "1py94s1v5vjnf8w7as7ypprbk2504a0kkh6p6ppm9glcr2vl8w2r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMuIFBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4gYWZ0ZXIgdXBkYXRpbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtc2NyZWVuc2hvdCIsCiAgImdpdC12ZXJzaW9uIjogInY2OCIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBUb29sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLXNjcmVlbnNob3QvIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90QHR0bGwuZGUiLAogICJ2ZXJzaW9uIjogNjgKfQ=="}}}
 , {"uuid": "nothing-to-say@extensions.gnome.wouter.bolsterl.ee", "name": "Nothing to say", "pname": "nothing-to-say", "description": "Unmute the microphone only when you have something to say.", "link": "https://extensions.gnome.org/extension/1113/nothing-to-say/", "shell_version_map": {"38": {"version": "8", "sha256": "12ngc4dv1ijbvihqn2rjn77bal0gdhdq4cxf1zv5lr2ckz0ishm4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubXV0ZSB0aGUgbWljcm9waG9uZSBvbmx5IHdoZW4geW91IGhhdmUgc29tZXRoaW5nIHRvIHNheS4iLAogICJuYW1lIjogIk5vdGhpbmcgdG8gc2F5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGhpbmctdG8tc2F5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2JvbHN0ZXIvbm90aGluZy10by1zYXkiLAogICJ1dWlkIjogIm5vdGhpbmctdG8tc2F5QGV4dGVuc2lvbnMuZ25vbWUud291dGVyLmJvbHN0ZXJsLmVlIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "15", "sha256": "0grrdxdyzl3fyr2hnl312pwfpqglyprzlvy14dyyh1hvlymi9ssd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubXV0ZSB0aGUgbWljcm9waG9uZSBvbmx5IHdoZW4geW91IGhhdmUgc29tZXRoaW5nIHRvIHNheS4iLAogICJuYW1lIjogIk5vdGhpbmcgdG8gc2F5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGhpbmctdG8tc2F5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICIzLjM2LjkiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93Ym9sc3Rlci9ub3RoaW5nLXRvLXNheSIsCiAgInV1aWQiOiAibm90aGluZy10by1zYXlAZXh0ZW5zaW9ucy5nbm9tZS53b3V0ZXIuYm9sc3RlcmwuZWUiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "15", "sha256": "0grrdxdyzl3fyr2hnl312pwfpqglyprzlvy14dyyh1hvlymi9ssd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubXV0ZSB0aGUgbWljcm9waG9uZSBvbmx5IHdoZW4geW91IGhhdmUgc29tZXRoaW5nIHRvIHNheS4iLAogICJuYW1lIjogIk5vdGhpbmcgdG8gc2F5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGhpbmctdG8tc2F5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICIzLjM2LjkiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93Ym9sc3Rlci9ub3RoaW5nLXRvLXNheSIsCiAgInV1aWQiOiAibm90aGluZy10by1zYXlAZXh0ZW5zaW9ucy5nbm9tZS53b3V0ZXIuYm9sc3RlcmwuZWUiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "42": {"version": "15", "sha256": "0grrdxdyzl3fyr2hnl312pwfpqglyprzlvy14dyyh1hvlymi9ssd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubXV0ZSB0aGUgbWljcm9waG9uZSBvbmx5IHdoZW4geW91IGhhdmUgc29tZXRoaW5nIHRvIHNheS4iLAogICJuYW1lIjogIk5vdGhpbmcgdG8gc2F5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGhpbmctdG8tc2F5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICIzLjM2LjkiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93Ym9sc3Rlci9ub3RoaW5nLXRvLXNheSIsCiAgInV1aWQiOiAibm90aGluZy10by1zYXlAZXh0ZW5zaW9ucy5nbm9tZS53b3V0ZXIuYm9sc3RlcmwuZWUiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
 , {"uuid": "workspace-switch-wraparound@theychx.org", "name": "Workspace Switch Wraparound", "pname": "workspace-switch-wraparound", "description": "When switching workspaces, going down from the bottom workspace switches to the top workspace. Likewise, up from the top workspace goes to the bottom workspace.", "link": "https://extensions.gnome.org/extension/1116/workspace-switch-wraparound/", "shell_version_map": {"38": {"version": "7", "sha256": "1zc92s0pffsd6mwsmpy8s8gici0q1wzd5s1vwjld4y1cy34kp2ad", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gc3dpdGNoaW5nIHdvcmtzcGFjZXMsIGdvaW5nIGRvd24gZnJvbSB0aGUgYm90dG9tIHdvcmtzcGFjZSBzd2l0Y2hlcyB0byB0aGUgdG9wIHdvcmtzcGFjZS4gTGlrZXdpc2UsIHVwIGZyb20gdGhlIHRvcCB3b3Jrc3BhY2UgZ29lcyB0byB0aGUgYm90dG9tIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBTd2l0Y2ggV3JhcGFyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aGV5Y2h4L1dvcmtzcGFjZVN3aXRjaGVyV3JhcEFyb3VuZCIsCiAgInV1aWQiOiAid29ya3NwYWNlLXN3aXRjaC13cmFwYXJvdW5kQHRoZXljaHgub3JnIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "1zc92s0pffsd6mwsmpy8s8gici0q1wzd5s1vwjld4y1cy34kp2ad", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gc3dpdGNoaW5nIHdvcmtzcGFjZXMsIGdvaW5nIGRvd24gZnJvbSB0aGUgYm90dG9tIHdvcmtzcGFjZSBzd2l0Y2hlcyB0byB0aGUgdG9wIHdvcmtzcGFjZS4gTGlrZXdpc2UsIHVwIGZyb20gdGhlIHRvcCB3b3Jrc3BhY2UgZ29lcyB0byB0aGUgYm90dG9tIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBTd2l0Y2ggV3JhcGFyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aGV5Y2h4L1dvcmtzcGFjZVN3aXRjaGVyV3JhcEFyb3VuZCIsCiAgInV1aWQiOiAid29ya3NwYWNlLXN3aXRjaC13cmFwYXJvdW5kQHRoZXljaHgub3JnIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
 , {"uuid": "ibus-font-setting@ibus.github.com", "name": "ibus font setting", "pname": "ibus-font-setting", "description": "use ibus font setting of ibus setup dialog to enhance the user experience", "link": "https://extensions.gnome.org/extension/1121/ibus-font-setting/", "shell_version_map": {"38": {"version": "9", "sha256": "163byvsc3dj2w9xq498py1xjziyi98icyki1cd6wv7vxaxfmk7y6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInVzZSBpYnVzIGZvbnQgc2V0dGluZyBvZiBpYnVzIHNldHVwIGRpYWxvZyB0byBlbmhhbmNlIHRoZSB1c2VyIGV4cGVyaWVuY2UiLAogICJuYW1lIjogImlidXMgZm9udCBzZXR0aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL3B3dS5mZWRvcmFwZW9wbGUub3JnL2lidXMvaWJ1cy1mb250LXNldHRpbmciLAogICJ1dWlkIjogImlidXMtZm9udC1zZXR0aW5nQGlidXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "11", "sha256": "0rgnv7bwqg30ly6zsmzs5sayi45k2ji5r87z4x32nni3wm7vhnhk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInVzZSBpYnVzIGZvbnQgc2V0dGluZyBvZiBpYnVzIHNldHVwIGRpYWxvZyB0byBlbmhhbmNlIHRoZSB1c2VyIGV4cGVyaWVuY2UiLAogICJuYW1lIjogImlidXMgZm9udCBzZXR0aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vcHd1LmZlZG9yYXBlb3BsZS5vcmcvaWJ1cy9pYnVzLWZvbnQtc2V0dGluZyIsCiAgInV1aWQiOiAiaWJ1cy1mb250LXNldHRpbmdAaWJ1cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}, "41": {"version": "11", "sha256": "0rgnv7bwqg30ly6zsmzs5sayi45k2ji5r87z4x32nni3wm7vhnhk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInVzZSBpYnVzIGZvbnQgc2V0dGluZyBvZiBpYnVzIHNldHVwIGRpYWxvZyB0byBlbmhhbmNlIHRoZSB1c2VyIGV4cGVyaWVuY2UiLAogICJuYW1lIjogImlidXMgZm9udCBzZXR0aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vcHd1LmZlZG9yYXBlb3BsZS5vcmcvaWJ1cy9pYnVzLWZvbnQtc2V0dGluZyIsCiAgInV1aWQiOiAiaWJ1cy1mb250LXNldHRpbmdAaWJ1cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}}}
@@ -128,15 +128,15 @@
 , {"uuid": "sensory-perception@HarlemSquirrel.github.io", "name": "Sensory Perception", "pname": "sensory-perception", "description": "Requires lm-sensors (or lm_sensors). Shows CPU temperature, disk temperature, video card temperature, voltage and fan RPM.", "link": "https://extensions.gnome.org/extension/1145/sensory-perception/", "shell_version_map": {"38": {"version": "13", "sha256": "16wc49khyk5arsis8kzpjgl6nl8gccc2y5sspq8rwnab22jnzwjh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcXVpcmVzIGxtLXNlbnNvcnMgKG9yIGxtX3NlbnNvcnMpLiBTaG93cyBDUFUgdGVtcGVyYXR1cmUsIGRpc2sgdGVtcGVyYXR1cmUsIHZpZGVvIGNhcmQgdGVtcGVyYXR1cmUsIHZvbHRhZ2UgYW5kIGZhbiBSUE0uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2Vuc29yeS1wZXJjZXB0aW9uIiwKICAibmFtZSI6ICJTZW5zb3J5IFBlcmNlcHRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2Vuc29yeS1wZXJjZXB0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSGFybGVtU3F1aXJyZWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNlbnNvcnktcGVyY2VwdGlvbiIsCiAgInV1aWQiOiAic2Vuc29yeS1wZXJjZXB0aW9uQEhhcmxlbVNxdWlycmVsLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMwp9"}, "40": {"version": "17", "sha256": "1565vy6wy0fjjbhxn90d8w4ifjb2adacijf71k18j7n390k00djw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcXVpcmVzIGxtLXNlbnNvcnMgKG9yIGxtX3NlbnNvcnMpLiBTaG93cyBDUFUgdGVtcGVyYXR1cmUsIGRpc2sgdGVtcGVyYXR1cmUsIHZpZGVvIGNhcmQgdGVtcGVyYXR1cmUsIHZvbHRhZ2UgYW5kIGZhbiBSUE0uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2Vuc29yeS1wZXJjZXB0aW9uIiwKICAibmFtZSI6ICJTZW5zb3J5IFBlcmNlcHRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2Vuc29yeS1wZXJjZXB0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9IYXJsZW1TcXVpcnJlbC9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2Vuc29yeS1wZXJjZXB0aW9uIiwKICAidXVpZCI6ICJzZW5zb3J5LXBlcmNlcHRpb25ASGFybGVtU3F1aXJyZWwuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE3Cn0="}, "41": {"version": "17", "sha256": "1565vy6wy0fjjbhxn90d8w4ifjb2adacijf71k18j7n390k00djw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcXVpcmVzIGxtLXNlbnNvcnMgKG9yIGxtX3NlbnNvcnMpLiBTaG93cyBDUFUgdGVtcGVyYXR1cmUsIGRpc2sgdGVtcGVyYXR1cmUsIHZpZGVvIGNhcmQgdGVtcGVyYXR1cmUsIHZvbHRhZ2UgYW5kIGZhbiBSUE0uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2Vuc29yeS1wZXJjZXB0aW9uIiwKICAibmFtZSI6ICJTZW5zb3J5IFBlcmNlcHRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2Vuc29yeS1wZXJjZXB0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9IYXJsZW1TcXVpcnJlbC9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2Vuc29yeS1wZXJjZXB0aW9uIiwKICAidXVpZCI6ICJzZW5zb3J5LXBlcmNlcHRpb25ASGFybGVtU3F1aXJyZWwuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE3Cn0="}}}
 , {"uuid": "activityAppLauncher@rastersoft.com", "name": "Activity App Launcher", "pname": "activity-app-launcher", "description": "Integrates a category-based application launcher in the activities window. IMPORTANT: it needs the 'gnome-menus' and 'libgnome-menu-3-dev'; they must be installed in the system before installing this extension.", "link": "https://extensions.gnome.org/extension/1149/activity-app-launcher/", "shell_version_map": {"38": {"version": "31", "sha256": "18jqnk4psdvdx1hydfss1870v0gnpxkmsm5yasnb0m5m484in0qv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcmFzdGVyc29mdC9hY3Rpdml0eUFwcExhdW5jaGVyIiwKICAidXVpZCI6ICJhY3Rpdml0eUFwcExhdW5jaGVyQHJhc3RlcnNvZnQuY29tIiwKICAidmVyc2lvbiI6IDMxCn0="}, "40": {"version": "34", "sha256": "0mjifm9dx3gwswdrjk1qr2kfan87dapkgn6adg2vw87dz0291q0k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcmFzdGVyc29mdC9hY3Rpdml0eUFwcExhdW5jaGVyIiwKICAidXVpZCI6ICJhY3Rpdml0eUFwcExhdW5jaGVyQHJhc3RlcnNvZnQuY29tIiwKICAidmVyc2lvbiI6IDM0Cn0="}, "41": {"version": "34", "sha256": "0mjifm9dx3gwswdrjk1qr2kfan87dapkgn6adg2vw87dz0291q0k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcmFzdGVyc29mdC9hY3Rpdml0eUFwcExhdW5jaGVyIiwKICAidXVpZCI6ICJhY3Rpdml0eUFwcExhdW5jaGVyQHJhc3RlcnNvZnQuY29tIiwKICAidmVyc2lvbiI6IDM0Cn0="}, "42": {"version": "34", "sha256": "0mjifm9dx3gwswdrjk1qr2kfan87dapkgn6adg2vw87dz0291q0k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcmFzdGVyc29mdC9hY3Rpdml0eUFwcExhdW5jaGVyIiwKICAidXVpZCI6ICJhY3Rpdml0eUFwcExhdW5jaGVyQHJhc3RlcnNvZnQuY29tIiwKICAidmVyc2lvbiI6IDM0Cn0="}}}
 , {"uuid": "shutdown-timer-gnome-shell-extension", "name": "ShutdownTimer", "pname": "shutdowntimer", "description": "Allows to shutdown, restart and suspend computer after selected amount of time or in selected time.", "link": "https://extensions.gnome.org/extension/1152/shutdowntimer/", "shell_version_map": {"40": {"version": "9", "sha256": "1y69lv3mq66xxfxabngnbb104d26i05cyhmx3dqf4kyf1kd6jqvx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBzaHV0ZG93biwgcmVzdGFydCBhbmQgc3VzcGVuZCBjb21wdXRlciBhZnRlciBzZWxlY3RlZCBhbW91bnQgb2YgdGltZSBvciBpbiBzZWxlY3RlZCB0aW1lLiIsCiAgImdldHRleHQtZG9tYWluIjogIkF1dG9tYXRpY1NodXRkb3duVGltZXIiLAogICJuYW1lIjogIlNodXRkb3duVGltZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXV0b21hdGljLXNodXRkb3duLXRpbWVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21rcmFqbmFrL3NodXRkb3duLXRpbWVyLWdub21lLXNoZWxsLWV4dGVuc2lvbi8iLAogICJ1dWlkIjogInNodXRkb3duLXRpbWVyLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiA5Cn0="}}}
-, {"uuid": "dash-to-panel@jderose9.github.com", "name": "Dash to Panel", "pname": "dash-to-panel", "description": "An icon taskbar for the Gnome Shell. This extension moves the dash into the gnome main panel so that the application launchers and system tray are combined into a single panel, similar to that found in KDE Plasma and Windows 7+. A separate dock is no longer needed for easy access to running and favorited applications.\n\nFor a more traditional experience, you may also want to use Tweak Tool to enable Windows > Titlebar Buttons > Minimize & Maximize.\n\nFor the best support, please report any issues on Github. Dash-to-panel is developed and maintained by @jderose9 and @charlesg99.", "link": "https://extensions.gnome.org/extension/1160/dash-to-panel/", "shell_version_map": {"38": {"version": "42", "sha256": "052adrf5dv1qfrpkp1wivp8a8vfi851japvx16gy779shfzq0n2a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyA+IFRpdGxlYmFyIEJ1dHRvbnMgPiBNaW5pbWl6ZSAmIE1heGltaXplLlxuXG5Gb3IgdGhlIGJlc3Qgc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIEdpdGh1Yi4gRGFzaC10by1wYW5lbCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgQGpkZXJvc2U5IGFuZCBAY2hhcmxlc2c5OS4iLAogICJleHRlbnNpb24taWQiOiAiZGFzaC10by1wYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImRhc2gtdG8tcGFuZWwiLAogICJuYW1lIjogIkRhc2ggdG8gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZGVyb3NlOS9kYXNoLXRvLXBhbmVsIiwKICAidXVpZCI6ICJkYXNoLXRvLXBhbmVsQGpkZXJvc2U5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDIKfQ=="}, "40": {"version": "44", "sha256": "0kjs01h1ncx9r56pfggw0psqpi1hm0p32bpq08inpzc2wr7ilyfs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyA+IFRpdGxlYmFyIEJ1dHRvbnMgPiBNaW5pbWl6ZSAmIE1heGltaXplLlxuXG5Gb3IgdGhlIGJlc3Qgc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIEdpdGh1Yi4gRGFzaC10by1wYW5lbCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgQGpkZXJvc2U5IGFuZCBAY2hhcmxlc2c5OS4iLAogICJleHRlbnNpb24taWQiOiAiZGFzaC10by1wYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImRhc2gtdG8tcGFuZWwiLAogICJuYW1lIjogIkRhc2ggdG8gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamRlcm9zZTkvZGFzaC10by1wYW5lbCIsCiAgInV1aWQiOiAiZGFzaC10by1wYW5lbEBqZGVyb3NlOS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ0Cn0="}, "41": {"version": "45", "sha256": "1md7006ba93p1d6br2bf7qwkf5kbmmwphws0gnmpz18if2q8xd2g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyA+IFRpdGxlYmFyIEJ1dHRvbnMgPiBNaW5pbWl6ZSAmIE1heGltaXplLlxuXG5Gb3IgdGhlIGJlc3Qgc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIEdpdGh1Yi4gRGFzaC10by1wYW5lbCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgQGpkZXJvc2U5IGFuZCBAY2hhcmxlc2c5OS4iLAogICJleHRlbnNpb24taWQiOiAiZGFzaC10by1wYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImRhc2gtdG8tcGFuZWwiLAogICJuYW1lIjogIkRhc2ggdG8gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamRlcm9zZTkvZGFzaC10by1wYW5lbCIsCiAgInV1aWQiOiAiZGFzaC10by1wYW5lbEBqZGVyb3NlOS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}}}
+, {"uuid": "dash-to-panel@jderose9.github.com", "name": "Dash to Panel", "pname": "dash-to-panel", "description": "An icon taskbar for the Gnome Shell. This extension moves the dash into the gnome main panel so that the application launchers and system tray are combined into a single panel, similar to that found in KDE Plasma and Windows 7+. A separate dock is no longer needed for easy access to running and favorited applications.\n\nFor a more traditional experience, you may also want to use Tweak Tool to enable Windows Titlebars -> Titlebar Buttons -> Minimize & Maximize.\n\nFor the best support, please report any issues on Github. Dash-to-panel is developed and maintained by @jderose9 and @charlesg99.", "link": "https://extensions.gnome.org/extension/1160/dash-to-panel/", "shell_version_map": {"38": {"version": "42", "sha256": "1g81l5cmip1p5xiz15dpa0dpzwl0r4allrw9jskd63krcs6psi9f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyBUaXRsZWJhcnMgLT4gVGl0bGViYXIgQnV0dG9ucyAtPiBNaW5pbWl6ZSAmIE1heGltaXplLlxuXG5Gb3IgdGhlIGJlc3Qgc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIEdpdGh1Yi4gRGFzaC10by1wYW5lbCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgQGpkZXJvc2U5IGFuZCBAY2hhcmxlc2c5OS4iLAogICJleHRlbnNpb24taWQiOiAiZGFzaC10by1wYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImRhc2gtdG8tcGFuZWwiLAogICJuYW1lIjogIkRhc2ggdG8gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob21lLXN3ZWV0LWdub21lL2Rhc2gtdG8tcGFuZWwiLAogICJ1dWlkIjogImRhc2gtdG8tcGFuZWxAamRlcm9zZTkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Mgp9"}, "40": {"version": "44", "sha256": "1a6agjpbpbl286m2ilb5ayd1m5dd52lwmqhryysqc6g2nrqy3x95", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyBUaXRsZWJhcnMgLT4gVGl0bGViYXIgQnV0dG9ucyAtPiBNaW5pbWl6ZSAmIE1heGltaXplLlxuXG5Gb3IgdGhlIGJlc3Qgc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIEdpdGh1Yi4gRGFzaC10by1wYW5lbCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgQGpkZXJvc2U5IGFuZCBAY2hhcmxlc2c5OS4iLAogICJleHRlbnNpb24taWQiOiAiZGFzaC10by1wYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImRhc2gtdG8tcGFuZWwiLAogICJuYW1lIjogIkRhc2ggdG8gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG9tZS1zd2VldC1nbm9tZS9kYXNoLXRvLXBhbmVsIiwKICAidXVpZCI6ICJkYXNoLXRvLXBhbmVsQGpkZXJvc2U5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}, "41": {"version": "46", "sha256": "1w9qvjcafqvxwwpj21xxx9biiig6jb5n85bcblmim0airf84vma2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyBUaXRsZWJhcnMgLT4gVGl0bGViYXIgQnV0dG9ucyAtPiBNaW5pbWl6ZSAmIE1heGltaXplLlxuXG5Gb3IgdGhlIGJlc3Qgc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIEdpdGh1Yi4gRGFzaC10by1wYW5lbCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgQGpkZXJvc2U5IGFuZCBAY2hhcmxlc2c5OS4iLAogICJleHRlbnNpb24taWQiOiAiZGFzaC10by1wYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImRhc2gtdG8tcGFuZWwiLAogICJuYW1lIjogIkRhc2ggdG8gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvbWUtc3dlZXQtZ25vbWUvZGFzaC10by1wYW5lbCIsCiAgInV1aWQiOiAiZGFzaC10by1wYW5lbEBqZGVyb3NlOS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ2Cn0="}, "42": {"version": "46", "sha256": "1w9qvjcafqvxwwpj21xxx9biiig6jb5n85bcblmim0airf84vma2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyBUaXRsZWJhcnMgLT4gVGl0bGViYXIgQnV0dG9ucyAtPiBNaW5pbWl6ZSAmIE1heGltaXplLlxuXG5Gb3IgdGhlIGJlc3Qgc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIEdpdGh1Yi4gRGFzaC10by1wYW5lbCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgQGpkZXJvc2U5IGFuZCBAY2hhcmxlc2c5OS4iLAogICJleHRlbnNpb24taWQiOiAiZGFzaC10by1wYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImRhc2gtdG8tcGFuZWwiLAogICJuYW1lIjogIkRhc2ggdG8gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvbWUtc3dlZXQtZ25vbWUvZGFzaC10by1wYW5lbCIsCiAgInV1aWQiOiAiZGFzaC10by1wYW5lbEBqZGVyb3NlOS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ2Cn0="}}}
 , {"uuid": "emoji-selector@maestroschan.fr", "name": "Emoji Selector", "pname": "emoji-selector", "description": "This extension provides a parametrable popup menu displaying most emojis, clicking on an emoji copies it to the clipboard. An appropriate font like 'Twitter Color Emoji' or 'JoyPixels Color' should be installed on your system for a better visual result.", "link": "https://extensions.gnome.org/extension/1162/emoji-selector/", "shell_version_map": {"38": {"version": "20", "sha256": "1i6py149m46xig5a0ry7y5v887nlzw644mw72gcr2hkfsn8b0gnd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHByb3ZpZGVzIGEgcGFyYW1ldHJhYmxlIHBvcHVwIG1lbnUgZGlzcGxheWluZyBtb3N0IGVtb2ppcywgY2xpY2tpbmcgb24gYW4gZW1vamkgY29waWVzIGl0IHRvIHRoZSBjbGlwYm9hcmQuIEFuIGFwcHJvcHJpYXRlIGZvbnQgbGlrZSAnVHdpdHRlciBDb2xvciBFbW9qaScgb3IgJ0pveVBpeGVscyBDb2xvcicgc2hvdWxkIGJlIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSBmb3IgYSBiZXR0ZXIgdmlzdWFsIHJlc3VsdC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlbW9qaS1zZWxlY3RvciIsCiAgIm5hbWUiOiAiRW1vamkgU2VsZWN0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZW1vamktc2VsZWN0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW9zY2hhbnovZW1vamktc2VsZWN0b3ItZm9yLWdub21lIiwKICAidXVpZCI6ICJlbW9qaS1zZWxlY3RvckBtYWVzdHJvc2NoYW4uZnIiLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
 , {"uuid": "gnome-kinit@bonzini.gnu.org", "name": "Kerberos login", "pname": "kerberos-login", "description": "Provide a system menu item to renew Kerberos tickets", "link": "https://extensions.gnome.org/extension/1165/kerberos-login/", "shell_version_map": {"40": {"version": "5", "sha256": "08rp128drriv5929lwwv9yy77yhn1arfc6snwsipibaby0c5jvsf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgYSBzeXN0ZW0gbWVudSBpdGVtIHRvIHJlbmV3IEtlcmJlcm9zIHRpY2tldHMiLAogICJuYW1lIjogIktlcmJlcm9zIGxvZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyLjIiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZ25vbWUta2luaXRAYm9uemluaS5nbnUub3JnIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "41": {"version": "5", "sha256": "08rp128drriv5929lwwv9yy77yhn1arfc6snwsipibaby0c5jvsf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgYSBzeXN0ZW0gbWVudSBpdGVtIHRvIHJlbmV3IEtlcmJlcm9zIHRpY2tldHMiLAogICJuYW1lIjogIktlcmJlcm9zIGxvZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyLjIiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZ25vbWUta2luaXRAYm9uemluaS5nbnUub3JnIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "42": {"version": "7", "sha256": "1rrp6iqm4j83qk9z470ipmw6wrw9akl5dp8gzplijaq5sw4kpvvv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgYSBzeXN0ZW0gbWVudSBpdGVtIHRvIHJlbmV3IEtlcmJlcm9zIHRpY2tldHMiLAogICJuYW1lIjogIktlcmJlcm9zIGxvZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnbm9tZS1raW5pdEBib256aW5pLmdudS5vcmciLAogICJ2ZXJzaW9uIjogNwp9"}}}
 , {"uuid": "calculator-button@amivaleo", "name": "Calculator Button", "pname": "calculator-button", "description": "A button to easily open gnome-calculator.\n Credits to extensions.gnome.org/extension/939/display-button/\n\nv10:\n1 - added support for gnome 3.38\n2 - added support for flatpak version of gnome-calculator", "link": "https://extensions.gnome.org/extension/1168/calculator-button/", "shell_version_map": {"38": {"version": "10", "sha256": "1c6b53im6xj4yaf4skvchvgipxfjs2yh3i5r75cw9avnw7imnwk6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYnV0dG9uIHRvIGVhc2lseSBvcGVuIGdub21lLWNhbGN1bGF0b3IuXG4gQ3JlZGl0cyB0byBleHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vOTM5L2Rpc3BsYXktYnV0dG9uL1xuXG52MTA6XG4xIC0gYWRkZWQgc3VwcG9ydCBmb3IgZ25vbWUgMy4zOFxuMiAtIGFkZGVkIHN1cHBvcnQgZm9yIGZsYXRwYWsgdmVyc2lvbiBvZiBnbm9tZS1jYWxjdWxhdG9yIiwKICAibmFtZSI6ICJDYWxjdWxhdG9yIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtaXZhbGVvL0NhbGN1bGF0b3ItQnV0dG9uIiwKICAidXVpZCI6ICJjYWxjdWxhdG9yLWJ1dHRvbkBhbWl2YWxlbyIsCiAgInZlcnNpb24iOiAxMAp9"}}}
 , {"uuid": "screenshotlocations.timur@linux.com", "name": "Screenshot Locations", "pname": "screenshot-locations", "description": "Change the default GNOME screenshot directory", "link": "https://extensions.gnome.org/extension/1179/screenshot-locations/", "shell_version_map": {"38": {"version": "7", "sha256": "0ymb4m8fgxgi964fdfdqwgjw95qbcm906zgqmyqxgd4ggip3mn47", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhdGEtZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Rsb2NhdGlvbnMuZGF0YS5ncmVzb3VyY2UiLAogICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2UgdGhlIGRlZmF1bHQgR05PTUUgc2NyZWVuc2hvdCBkaXJlY3RvcnkiLAogICJuYW1lIjogIlNjcmVlbnNob3QgTG9jYXRpb25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Rsb2NhdGlvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vY29kZWJlcmcub3JnL2tpeXVpL2dub21lLXNoZWxsLXNjcmVlbnNob3Rsb2NhdGlvbnMtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJzY3JlZW5zaG90bG9jYXRpb25zLnRpbXVyQGxpbnV4LmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "8", "sha256": "0cxsq1zzmgn6q32wbdfw9hai62li92dwvwnzq2pdbskp9qm6v7nd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgZGVmYXVsdCBHTk9NRSBzY3JlZW5zaG90IGRpcmVjdG9yeSIsCiAgImdldHRleHQtZG9tYWluIjogInNjcmVlbnNob3Rsb2NhdGlvbnMudGltdXJAbGludXguY29tIiwKICAibmFtZSI6ICJTY3JlZW5zaG90IExvY2F0aW9ucyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zY3JlZW5zaG90bG9jYXRpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9jb2RlYmVyZy5vcmcva2l5dWkvZ25vbWUtc2hlbGwtc2NyZWVuc2hvdGxvY2F0aW9ucy1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3Rsb2NhdGlvbnMudGltdXJAbGludXguY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "utcclock@injcristianrojas.github.com", "name": "UTCClock", "pname": "utcclock", "description": "UTC clock for the top bar", "link": "https://extensions.gnome.org/extension/1183/utcclock/", "shell_version_map": {"38": {"version": "24", "sha256": "0yjbpmrq8y52yn4q2yp6bgg4b6r60h9spccrc0d7jn6vi3a4ns4s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVUQyBjbG9jayBmb3IgdGhlIHRvcCBiYXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJVVENDbG9jayIsCiAgIm5hbWUiOiAiVVRDQ2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXRjY2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pbmpjcmlzdGlhbnJvamFzL1VUQ0Nsb2NrIiwKICAidXVpZCI6ICJ1dGNjbG9ja0BpbmpjcmlzdGlhbnJvamFzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjQKfQ=="}, "40": {"version": "29", "sha256": "0dchib117mr3w133wqp8ylcfxmr08brqjf3pf2706mdplwk61wci", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVUQyBjbG9jayBmb3IgdGhlIHRvcCBiYXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJVVENDbG9jayIsCiAgIm5hbWUiOiAiVVRDQ2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXRjY2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pbmpjcmlzdGlhbnJvamFzL1VUQ0Nsb2NrIiwKICAidXVpZCI6ICJ1dGNjbG9ja0BpbmpjcmlzdGlhbnJvamFzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjkKfQ=="}, "41": {"version": "29", "sha256": "0dchib117mr3w133wqp8ylcfxmr08brqjf3pf2706mdplwk61wci", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVUQyBjbG9jayBmb3IgdGhlIHRvcCBiYXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJVVENDbG9jayIsCiAgIm5hbWUiOiAiVVRDQ2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXRjY2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pbmpjcmlzdGlhbnJvamFzL1VUQ0Nsb2NrIiwKICAidXVpZCI6ICJ1dGNjbG9ja0BpbmpjcmlzdGlhbnJvamFzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjkKfQ=="}, "42": {"version": "29", "sha256": "0dchib117mr3w133wqp8ylcfxmr08brqjf3pf2706mdplwk61wci", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVUQyBjbG9jayBmb3IgdGhlIHRvcCBiYXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJVVENDbG9jayIsCiAgIm5hbWUiOiAiVVRDQ2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXRjY2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pbmpjcmlzdGlhbnJvamFzL1VUQ0Nsb2NrIiwKICAidXVpZCI6ICJ1dGNjbG9ja0BpbmpjcmlzdGlhbnJvamFzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjkKfQ=="}}}
-, {"uuid": "show-desktop-button@amivaleo", "name": "Show Desktop Button", "pname": "show-desktop-button", "description": "Minimize/unminimize all open windows with a single click.", "link": "https://extensions.gnome.org/extension/1194/show-desktop-button/", "shell_version_map": {"38": {"version": "17", "sha256": "15cym2gka8g10bvprnxf6s0jbwchscw81fh9pvjybqmb9kc8ivvw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1pdmFsZW8vU2hvdy1EZXNrdG9wLUJ1dHRvbiIsCiAgInV1aWQiOiAic2hvdy1kZXNrdG9wLWJ1dHRvbkBhbWl2YWxlbyIsCiAgInZlcnNpb24iOiAxNwp9"}, "40": {"version": "22", "sha256": "0qq16yhii9cbcp09cc1mw5a565nbw7bq5hb2jdgp9lnq2ym0c5rr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDIyCn0="}, "41": {"version": "22", "sha256": "0qq16yhii9cbcp09cc1mw5a565nbw7bq5hb2jdgp9lnq2ym0c5rr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDIyCn0="}}}
+, {"uuid": "show-desktop-button@amivaleo", "name": "Show Desktop Button", "pname": "show-desktop-button", "description": "Minimize/unminimize all open windows with a single click.", "link": "https://extensions.gnome.org/extension/1194/show-desktop-button/", "shell_version_map": {"38": {"version": "17", "sha256": "15cym2gka8g10bvprnxf6s0jbwchscw81fh9pvjybqmb9kc8ivvw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1pdmFsZW8vU2hvdy1EZXNrdG9wLUJ1dHRvbiIsCiAgInV1aWQiOiAic2hvdy1kZXNrdG9wLWJ1dHRvbkBhbWl2YWxlbyIsCiAgInZlcnNpb24iOiAxNwp9"}, "40": {"version": "24", "sha256": "0gk4mx2bpbndy9iwlni98r2c222p40fvf038bafw4pq77k4x9c3r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1pdmFsZW8vU2hvdy1EZXNrdG9wLUJ1dHRvbiIsCiAgInV1aWQiOiAic2hvdy1kZXNrdG9wLWJ1dHRvbkBhbWl2YWxlbyIsCiAgInZlcnNpb24iOiAyNAp9"}, "41": {"version": "24", "sha256": "0gk4mx2bpbndy9iwlni98r2c222p40fvf038bafw4pq77k4x9c3r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1pdmFsZW8vU2hvdy1EZXNrdG9wLUJ1dHRvbiIsCiAgInV1aWQiOiAic2hvdy1kZXNrdG9wLWJ1dHRvbkBhbWl2YWxlbyIsCiAgInZlcnNpb24iOiAyNAp9"}, "42": {"version": "24", "sha256": "0gk4mx2bpbndy9iwlni98r2c222p40fvf038bafw4pq77k4x9c3r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1pdmFsZW8vU2hvdy1EZXNrdG9wLUJ1dHRvbiIsCiAgInV1aWQiOiAic2hvdy1kZXNrdG9wLWJ1dHRvbkBhbWl2YWxlbyIsCiAgInZlcnNpb24iOiAyNAp9"}}}
 , {"uuid": "walkpaper@walkpaper.blinkbp.github.com", "name": "Walkpaper", "pname": "walkpaper", "description": "Set different wallpaper for each workspace by having the wallpaper switch on workspace change.", "link": "https://extensions.gnome.org/extension/1200/walkpaper/", "shell_version_map": {"40": {"version": "9", "sha256": "1ckrf3y20wp3dv4aig44rycj7kbrxj14gh3rzs17vcqma3aw76bq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBkaWZmZXJlbnQgd2FsbHBhcGVyIGZvciBlYWNoIHdvcmtzcGFjZSBieSBoYXZpbmcgdGhlIHdhbGxwYXBlciBzd2l0Y2ggb24gd29ya3NwYWNlIGNoYW5nZS4iLAogICJleHRlbnNpb24taWQiOiAid2Fsa3BhcGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZW5nbGlzaCIsCiAgIm5hbWUiOiAiV2Fsa3BhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndhbGtwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmxpbmtCUC93YWxrcGFwZXIiLAogICJ1dWlkIjogIndhbGtwYXBlckB3YWxrcGFwZXIuYmxpbmticC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "41": {"version": "9", "sha256": "1ckrf3y20wp3dv4aig44rycj7kbrxj14gh3rzs17vcqma3aw76bq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBkaWZmZXJlbnQgd2FsbHBhcGVyIGZvciBlYWNoIHdvcmtzcGFjZSBieSBoYXZpbmcgdGhlIHdhbGxwYXBlciBzd2l0Y2ggb24gd29ya3NwYWNlIGNoYW5nZS4iLAogICJleHRlbnNpb24taWQiOiAid2Fsa3BhcGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZW5nbGlzaCIsCiAgIm5hbWUiOiAiV2Fsa3BhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndhbGtwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmxpbmtCUC93YWxrcGFwZXIiLAogICJ1dWlkIjogIndhbGtwYXBlckB3YWxrcGFwZXIuYmxpbmticC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
-, {"uuid": "nasa_apod@elinvention.ovh", "name": "NASA APOD Wallpaper Changer", "pname": "nasa-apod", "description": "Change your wallpaper daily to the NASA's astronomy picture of the day", "link": "https://extensions.gnome.org/extension/1202/nasa-apod/", "shell_version_map": {"40": {"version": "31", "sha256": "1w3njadkxjnp6b2jsrfd46xla8hak0m2kipa9vii6wsy80czw59b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0VsaW52ZW50aW9uL2dub21lLXNoZWxsLWV4dGVuc2lvbi1uYXNhLWFwb2QiLAogICJ1dWlkIjogIm5hc2FfYXBvZEBlbGludmVudGlvbi5vdmgiLAogICJ2ZXJzaW9uIjogMzEKfQ=="}, "41": {"version": "31", "sha256": "1w3njadkxjnp6b2jsrfd46xla8hak0m2kipa9vii6wsy80czw59b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0VsaW52ZW50aW9uL2dub21lLXNoZWxsLWV4dGVuc2lvbi1uYXNhLWFwb2QiLAogICJ1dWlkIjogIm5hc2FfYXBvZEBlbGludmVudGlvbi5vdmgiLAogICJ2ZXJzaW9uIjogMzEKfQ=="}}}
+, {"uuid": "nasa_apod@elinvention.ovh", "name": "NASA APOD Wallpaper Changer", "pname": "nasa-apod", "description": "Change your wallpaper daily to the NASA's astronomy picture of the day", "link": "https://extensions.gnome.org/extension/1202/nasa-apod/", "shell_version_map": {"40": {"version": "32", "sha256": "0sc2jyzv5xzwyvmycy73fs2fqxhl8mxl1wqadjagapaw9g7mk7r5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9FbGludmVudGlvbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tbmFzYS1hcG9kIiwKICAidXVpZCI6ICJuYXNhX2Fwb2RAZWxpbnZlbnRpb24ub3ZoIiwKICAidmVyc2lvbiI6IDMyCn0="}, "41": {"version": "32", "sha256": "0sc2jyzv5xzwyvmycy73fs2fqxhl8mxl1wqadjagapaw9g7mk7r5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9FbGludmVudGlvbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tbmFzYS1hcG9kIiwKICAidXVpZCI6ICJuYXNhX2Fwb2RAZWxpbnZlbnRpb24ub3ZoIiwKICAidmVyc2lvbiI6IDMyCn0="}, "42": {"version": "32", "sha256": "0sc2jyzv5xzwyvmycy73fs2fqxhl8mxl1wqadjagapaw9g7mk7r5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9FbGludmVudGlvbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tbmFzYS1hcG9kIiwKICAidXVpZCI6ICJuYXNhX2Fwb2RAZWxpbnZlbnRpb24ub3ZoIiwKICAidmVyc2lvbiI6IDMyCn0="}}}
 , {"uuid": "SystemMenu@jonnius.github.com", "name": "System Menu", "pname": "system-menu", "description": "System menu with usefull shortcuts", "link": "https://extensions.gnome.org/extension/1204/system-menu/", "shell_version_map": {"38": {"version": "5", "sha256": "10zfr3fhqvq0fxqjzqmnxmhmdw5xcw9m5k3jm1apcjqnm38r896w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBtZW51IHdpdGggdXNlZnVsbCBzaG9ydGN1dHMiLAogICJuYW1lIjogIlN5c3RlbSBNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLlN5c3RlbU1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHA6Ly9naXRodWIuY29tL2pvbm5pdXMvZ25vbWUtc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogIlN5c3RlbU1lbnVAam9ubml1cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "undecorate@sun.wxg@gmail.com", "name": "Undecorate Window", "pname": "undecorate", "description": "Add undecorate item in window menu. Use ALT+Space to show window menu.", "link": "https://extensions.gnome.org/extension/1208/undecorate/", "shell_version_map": {"40": {"version": "6", "sha256": "1m9rjm8vc35aalyrnyzm1afcvv9lj2n3pffikhk9vb0isv0yj03r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB1bmRlY29yYXRlIGl0ZW0gaW4gd2luZG93IG1lbnUuIFVzZSBBTFQrU3BhY2UgdG8gc2hvdyB3aW5kb3cgbWVudS4iLAogICJuYW1lIjogIlVuZGVjb3JhdGUgV2luZG93IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJzdW4ud3hnQGdtYWlsLmNvbSIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVuZGVjb3JhdGUiLAogICJ1dWlkIjogInVuZGVjb3JhdGVAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "1m9rjm8vc35aalyrnyzm1afcvv9lj2n3pffikhk9vb0isv0yj03r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB1bmRlY29yYXRlIGl0ZW0gaW4gd2luZG93IG1lbnUuIFVzZSBBTFQrU3BhY2UgdG8gc2hvdyB3aW5kb3cgbWVudS4iLAogICJuYW1lIjogIlVuZGVjb3JhdGUgV2luZG93IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJzdW4ud3hnQGdtYWlsLmNvbSIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVuZGVjb3JhdGUiLAogICJ1dWlkIjogInVuZGVjb3JhdGVAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "42": {"version": "6", "sha256": "1m9rjm8vc35aalyrnyzm1afcvv9lj2n3pffikhk9vb0isv0yj03r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB1bmRlY29yYXRlIGl0ZW0gaW4gd2luZG93IG1lbnUuIFVzZSBBTFQrU3BhY2UgdG8gc2hvdyB3aW5kb3cgbWVudS4iLAogICJuYW1lIjogIlVuZGVjb3JhdGUgV2luZG93IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJzdW4ud3hnQGdtYWlsLmNvbSIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVuZGVjb3JhdGUiLAogICJ1dWlkIjogInVuZGVjb3JhdGVAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "rcd@criztovyl.space", "name": "Right Click Down", "pname": "right-click-down", "description": "Moves windows one workspace down by right-clicking them in the overview.", "link": "https://extensions.gnome.org/extension/1210/right-click-down/", "shell_version_map": {"38": {"version": "3", "sha256": "1vh9capapzbbwg2zlw9iphdk48q6fqk0qsmaylvsvw59xc7f9bia", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHdpbmRvd3Mgb25lIHdvcmtzcGFjZSBkb3duIGJ5IHJpZ2h0LWNsaWNraW5nIHRoZW0gaW4gdGhlIG92ZXJ2aWV3LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJyY2QiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbmlvbnMtcmlnaHQtY2xpY2stZG93biIsCiAgIm5hbWUiOiAiUmlnaHQgQ2xpY2sgRG93biIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yaWdodC1jbGljay1kb3duIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4LjAiLAogICAgIjMuMzguMSIsCiAgICAiMy4zOC4yIiwKICAgICI0MC5hbHBoYSIsCiAgICAiNDAuYWxwaGEiLAogICAgIjMuMzguMyIsCiAgICAiMy4zNy45MiIsCiAgICAiMy4zNy45MSIsCiAgICAiMy4zNy45MCIsCiAgICAiMy4zNy4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY3JpenRvdnlsL2dub21lLXJpZ2h0LWNsaWNrLWRvd24iLAogICJ1dWlkIjogInJjZEBjcml6dG92eWwuc3BhY2UiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "1vh9capapzbbwg2zlw9iphdk48q6fqk0qsmaylvsvw59xc7f9bia", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHdpbmRvd3Mgb25lIHdvcmtzcGFjZSBkb3duIGJ5IHJpZ2h0LWNsaWNraW5nIHRoZW0gaW4gdGhlIG92ZXJ2aWV3LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJyY2QiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbmlvbnMtcmlnaHQtY2xpY2stZG93biIsCiAgIm5hbWUiOiAiUmlnaHQgQ2xpY2sgRG93biIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yaWdodC1jbGljay1kb3duIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4LjAiLAogICAgIjMuMzguMSIsCiAgICAiMy4zOC4yIiwKICAgICI0MC5hbHBoYSIsCiAgICAiNDAuYWxwaGEiLAogICAgIjMuMzguMyIsCiAgICAiMy4zNy45MiIsCiAgICAiMy4zNy45MSIsCiAgICAiMy4zNy45MCIsCiAgICAiMy4zNy4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY3JpenRvdnlsL2dub21lLXJpZ2h0LWNsaWNrLWRvd24iLAogICJ1dWlkIjogInJjZEBjcml6dG92eWwuc3BhY2UiLAogICJ2ZXJzaW9uIjogMwp9"}}}
@@ -156,17 +156,17 @@
 , {"uuid": "night-light-slider.timur@linux.com", "name": "Night Light Slider", "pname": "night-light-slider", "description": "A GNOME extension to manage the built-in night light temperature", "link": "https://extensions.gnome.org/extension/1276/night-light-slider/", "shell_version_map": {"38": {"version": "19", "sha256": "01vp7p3qwr51n4xqar55ak61a84wypbrla6kkmw0wdb6a0d119mc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgZXh0ZW5zaW9uIHRvIG1hbmFnZSB0aGUgYnVpbHQtaW4gbmlnaHQgbGlnaHQgdGVtcGVyYXR1cmUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodC1saWdodC1zbGlkZXIudGltdXJAbGludXguY29tIiwKICAiZ3Jlc291cmNlLWRhdGEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmlnaHRsaWdodHNsaWRlci5kYXRhLmdyZXNvdXJjZSIsCiAgIm5hbWUiOiAiTmlnaHQgTGlnaHQgU2xpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5pZ2h0bGlnaHRzbGlkZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vY29kZWJlcmcub3JnL2tpeXVpL2dub21lLXNoZWxsLW5pZ2h0LWxpZ2h0LXNsaWRlci1leHRlbnNpb24iLAogICJ1dWlkIjogIm5pZ2h0LWxpZ2h0LXNsaWRlci50aW11ckBsaW51eC5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "40": {"version": "23", "sha256": "1yqawlnpv2hql90xgkz947930bb4xdk94mrnf5rib2qyp9a83111", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgZXh0ZW5zaW9uIHRvIG1hbmFnZSB0aGUgYnVpbHQtaW4gbmlnaHQgbGlnaHQgdGVtcGVyYXR1cmUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodC1saWdodC1zbGlkZXIudGltdXJAbGludXguY29tIiwKICAibmFtZSI6ICJOaWdodCBMaWdodCBTbGlkZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmlnaHRsaWdodHNsaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9jb2RlYmVyZy5vcmcva2l5dWkvZ25vbWUtc2hlbGwtbmlnaHQtbGlnaHQtc2xpZGVyLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibmlnaHQtbGlnaHQtc2xpZGVyLnRpbXVyQGxpbnV4LmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"}}}
 , {"uuid": "fuzzy-clock@keepawayfromfire.co.uk", "name": "Fuzzy Clock", "pname": "fuzzy-clock", "description": "Make the top bar clock fuzzy", "link": "https://extensions.gnome.org/extension/1281/fuzzy-clock/", "shell_version_map": {"38": {"version": "4", "sha256": "1dvpkwkzagw23fhvmz9ncjldmhlv4493gn08r6rqslp4hqlmwqfy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHRvcCBiYXIgY2xvY2sgZnV6enkiLAogICJuYW1lIjogIkZ1enp5IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2otTWFsb25lL0Z1enp5LUNsb2NrIiwKICAidXVpZCI6ICJmdXp6eS1jbG9ja0BrZWVwYXdheWZyb21maXJlLmNvLnVrIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "1dvpkwkzagw23fhvmz9ncjldmhlv4493gn08r6rqslp4hqlmwqfy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHRvcCBiYXIgY2xvY2sgZnV6enkiLAogICJuYW1lIjogIkZ1enp5IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2otTWFsb25lL0Z1enp5LUNsb2NrIiwKICAidXVpZCI6ICJmdXp6eS1jbG9ja0BrZWVwYXdheWZyb21maXJlLmNvLnVrIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1dvpkwkzagw23fhvmz9ncjldmhlv4493gn08r6rqslp4hqlmwqfy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHRvcCBiYXIgY2xvY2sgZnV6enkiLAogICJuYW1lIjogIkZ1enp5IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2otTWFsb25lL0Z1enp5LUNsb2NrIiwKICAidXVpZCI6ICJmdXp6eS1jbG9ja0BrZWVwYXdheWZyb21maXJlLmNvLnVrIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "ds4battery@slie.ru", "name": "Dual Shock 4 battery percentage", "pname": "dual-shock-4-battery-percentage", "description": "Show DS4/DS3 battery remaining power percentage at the top panel", "link": "https://extensions.gnome.org/extension/1283/dual-shock-4-battery-percentage/", "shell_version_map": {"38": {"version": "7", "sha256": "0yb1j3hlza96zbd82gjc7wyjqkj5vjzcaj8l5n8xhfrdi7icxf6j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgRFM0L0RTMyBiYXR0ZXJ5IHJlbWFpbmluZyBwb3dlciBwZXJjZW50YWdlIGF0IHRoZSB0b3AgcGFuZWwiLAogICJuYW1lIjogIkR1YWwgU2hvY2sgNCBiYXR0ZXJ5IHBlcmNlbnRhZ2UiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIm1lQHNsaWUucnUiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGhhbmtqdXJhL2RzNGJhdHRlcnkiLAogICJ1dWlkIjogImRzNGJhdHRlcnlAc2xpZS5ydSIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "0yb1j3hlza96zbd82gjc7wyjqkj5vjzcaj8l5n8xhfrdi7icxf6j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgRFM0L0RTMyBiYXR0ZXJ5IHJlbWFpbmluZyBwb3dlciBwZXJjZW50YWdlIGF0IHRoZSB0b3AgcGFuZWwiLAogICJuYW1lIjogIkR1YWwgU2hvY2sgNCBiYXR0ZXJ5IHBlcmNlbnRhZ2UiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIm1lQHNsaWUucnUiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGhhbmtqdXJhL2RzNGJhdHRlcnkiLAogICJ1dWlkIjogImRzNGJhdHRlcnlAc2xpZS5ydSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
-, {"uuid": "hotel-manager@hardpixel.eu", "name": "Hotel Manager", "pname": "hotel-manager", "description": "Hotel Manager allows to start and stop the Hotel daemon and your development servers via a menu in the status area.", "link": "https://extensions.gnome.org/extension/1285/hotel-manager/", "shell_version_map": {"38": {"version": "14", "sha256": "0ag9rbfcaw2naa1qg92dl0pclb0d3lx1bsra83cdcx6m853mff6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdGVsIE1hbmFnZXIgYWxsb3dzIHRvIHN0YXJ0IGFuZCBzdG9wIHRoZSBIb3RlbCBkYWVtb24gYW5kIHlvdXIgZGV2ZWxvcG1lbnQgc2VydmVycyB2aWEgYSBtZW51IGluIHRoZSBzdGF0dXMgYXJlYS4iLAogICJuYW1lIjogIkhvdGVsIE1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9ob3RlbC1tYW5hZ2VyIiwKICAidXVpZCI6ICJob3RlbC1tYW5hZ2VyQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiAxNAp9"}, "40": {"version": "14", "sha256": "0ag9rbfcaw2naa1qg92dl0pclb0d3lx1bsra83cdcx6m853mff6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdGVsIE1hbmFnZXIgYWxsb3dzIHRvIHN0YXJ0IGFuZCBzdG9wIHRoZSBIb3RlbCBkYWVtb24gYW5kIHlvdXIgZGV2ZWxvcG1lbnQgc2VydmVycyB2aWEgYSBtZW51IGluIHRoZSBzdGF0dXMgYXJlYS4iLAogICJuYW1lIjogIkhvdGVsIE1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9ob3RlbC1tYW5hZ2VyIiwKICAidXVpZCI6ICJob3RlbC1tYW5hZ2VyQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiAxNAp9"}, "41": {"version": "14", "sha256": "0ag9rbfcaw2naa1qg92dl0pclb0d3lx1bsra83cdcx6m853mff6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdGVsIE1hbmFnZXIgYWxsb3dzIHRvIHN0YXJ0IGFuZCBzdG9wIHRoZSBIb3RlbCBkYWVtb24gYW5kIHlvdXIgZGV2ZWxvcG1lbnQgc2VydmVycyB2aWEgYSBtZW51IGluIHRoZSBzdGF0dXMgYXJlYS4iLAogICJuYW1lIjogIkhvdGVsIE1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9ob3RlbC1tYW5hZ2VyIiwKICAidXVpZCI6ICJob3RlbC1tYW5hZ2VyQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiAxNAp9"}}}
-, {"uuid": "unite@hardpixel.eu", "name": "Unite", "pname": "unite", "description": "Unite is a GNOME Shell extension which makes a few layout tweaks to the top panel and removes window decorations to make it look like Ubuntu Unity Shell.\n\n- Adds window buttons to the top panel for maximized windows.\n- Shows current window title in the app menu for maximized windows.\n- Removes titlebars on maximized windows.\n- Hides window controls on maximized windows with headerbars.\n- Moves the date to the right, reduces panel spacing and removes dropdown arrows.\n- Moves legacy tray icons to the top panel.\n- Moves notifications to the right.\n- Hides activities button.\n- Adds desktop name to the top panel.\n\nThis extension depends on some Xorg utilities. To install them:\n- Debian/Ubuntu: apt install x11-utils\n- Fedora/RHEL: dnf install xprop\n- Fedora Silverblue: rpm-ostree install xprop\n- Arch: pacman -S xorg-xprop\n\n*Settings are provided to enable/disable or customize the available tweaks.\n* Since version 2 applications on wayland with client side decorations are supported using CSS.", "link": "https://extensions.gnome.org/extension/1287/unite/", "shell_version_map": {"38": {"version": "61", "sha256": "1852f9wmzpcpbgdpwx8p2f04i0jnpkzw18rh1cxsw407xskvs6gg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuaXRlIGlzIGEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIHdoaWNoIG1ha2VzIGEgZmV3IGxheW91dCB0d2Vha3MgdG8gdGhlIHRvcCBwYW5lbCBhbmQgcmVtb3ZlcyB3aW5kb3cgZGVjb3JhdGlvbnMgdG8gbWFrZSBpdCBsb29rIGxpa2UgVWJ1bnR1IFVuaXR5IFNoZWxsLlxuXG4tIEFkZHMgd2luZG93IGJ1dHRvbnMgdG8gdGhlIHRvcCBwYW5lbCBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFNob3dzIGN1cnJlbnQgd2luZG93IHRpdGxlIGluIHRoZSBhcHAgbWVudSBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFJlbW92ZXMgdGl0bGViYXJzIG9uIG1heGltaXplZCB3aW5kb3dzLlxuLSBIaWRlcyB3aW5kb3cgY29udHJvbHMgb24gbWF4aW1pemVkIHdpbmRvd3Mgd2l0aCBoZWFkZXJiYXJzLlxuLSBNb3ZlcyB0aGUgZGF0ZSB0byB0aGUgcmlnaHQsIHJlZHVjZXMgcGFuZWwgc3BhY2luZyBhbmQgcmVtb3ZlcyBkcm9wZG93biBhcnJvd3MuXG4tIE1vdmVzIGxlZ2FjeSB0cmF5IGljb25zIHRvIHRoZSB0b3AgcGFuZWwuXG4tIE1vdmVzIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHJpZ2h0LlxuLSBIaWRlcyBhY3Rpdml0aWVzIGJ1dHRvbi5cbi0gQWRkcyBkZXNrdG9wIG5hbWUgdG8gdGhlIHRvcCBwYW5lbC5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBzb21lIFhvcmcgdXRpbGl0aWVzLiBUbyBpbnN0YWxsIHRoZW06XG4tIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuLSBGZWRvcmEvUkhFTDogZG5mIGluc3RhbGwgeHByb3Bcbi0gRmVkb3JhIFNpbHZlcmJsdWU6IHJwbS1vc3RyZWUgaW5zdGFsbCB4cHJvcFxuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIG9yIGN1c3RvbWl6ZSB0aGUgYXZhaWxhYmxlIHR3ZWFrcy5cbiogU2luY2UgdmVyc2lvbiAyIGFwcGxpY2F0aW9ucyBvbiB3YXlsYW5kIHdpdGggY2xpZW50IHNpZGUgZGVjb3JhdGlvbnMgYXJlIHN1cHBvcnRlZCB1c2luZyBDU1MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidW5pdGUiLAogICJuYW1lIjogIlVuaXRlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVuaXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3VuaXRlLXNoZWxsIiwKICAidXVpZCI6ICJ1bml0ZUBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogNjEKfQ=="}, "40": {"version": "61", "sha256": "1852f9wmzpcpbgdpwx8p2f04i0jnpkzw18rh1cxsw407xskvs6gg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuaXRlIGlzIGEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIHdoaWNoIG1ha2VzIGEgZmV3IGxheW91dCB0d2Vha3MgdG8gdGhlIHRvcCBwYW5lbCBhbmQgcmVtb3ZlcyB3aW5kb3cgZGVjb3JhdGlvbnMgdG8gbWFrZSBpdCBsb29rIGxpa2UgVWJ1bnR1IFVuaXR5IFNoZWxsLlxuXG4tIEFkZHMgd2luZG93IGJ1dHRvbnMgdG8gdGhlIHRvcCBwYW5lbCBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFNob3dzIGN1cnJlbnQgd2luZG93IHRpdGxlIGluIHRoZSBhcHAgbWVudSBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFJlbW92ZXMgdGl0bGViYXJzIG9uIG1heGltaXplZCB3aW5kb3dzLlxuLSBIaWRlcyB3aW5kb3cgY29udHJvbHMgb24gbWF4aW1pemVkIHdpbmRvd3Mgd2l0aCBoZWFkZXJiYXJzLlxuLSBNb3ZlcyB0aGUgZGF0ZSB0byB0aGUgcmlnaHQsIHJlZHVjZXMgcGFuZWwgc3BhY2luZyBhbmQgcmVtb3ZlcyBkcm9wZG93biBhcnJvd3MuXG4tIE1vdmVzIGxlZ2FjeSB0cmF5IGljb25zIHRvIHRoZSB0b3AgcGFuZWwuXG4tIE1vdmVzIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHJpZ2h0LlxuLSBIaWRlcyBhY3Rpdml0aWVzIGJ1dHRvbi5cbi0gQWRkcyBkZXNrdG9wIG5hbWUgdG8gdGhlIHRvcCBwYW5lbC5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBzb21lIFhvcmcgdXRpbGl0aWVzLiBUbyBpbnN0YWxsIHRoZW06XG4tIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuLSBGZWRvcmEvUkhFTDogZG5mIGluc3RhbGwgeHByb3Bcbi0gRmVkb3JhIFNpbHZlcmJsdWU6IHJwbS1vc3RyZWUgaW5zdGFsbCB4cHJvcFxuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIG9yIGN1c3RvbWl6ZSB0aGUgYXZhaWxhYmxlIHR3ZWFrcy5cbiogU2luY2UgdmVyc2lvbiAyIGFwcGxpY2F0aW9ucyBvbiB3YXlsYW5kIHdpdGggY2xpZW50IHNpZGUgZGVjb3JhdGlvbnMgYXJlIHN1cHBvcnRlZCB1c2luZyBDU1MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidW5pdGUiLAogICJuYW1lIjogIlVuaXRlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVuaXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3VuaXRlLXNoZWxsIiwKICAidXVpZCI6ICJ1bml0ZUBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogNjEKfQ=="}, "41": {"version": "61", "sha256": "1852f9wmzpcpbgdpwx8p2f04i0jnpkzw18rh1cxsw407xskvs6gg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuaXRlIGlzIGEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIHdoaWNoIG1ha2VzIGEgZmV3IGxheW91dCB0d2Vha3MgdG8gdGhlIHRvcCBwYW5lbCBhbmQgcmVtb3ZlcyB3aW5kb3cgZGVjb3JhdGlvbnMgdG8gbWFrZSBpdCBsb29rIGxpa2UgVWJ1bnR1IFVuaXR5IFNoZWxsLlxuXG4tIEFkZHMgd2luZG93IGJ1dHRvbnMgdG8gdGhlIHRvcCBwYW5lbCBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFNob3dzIGN1cnJlbnQgd2luZG93IHRpdGxlIGluIHRoZSBhcHAgbWVudSBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFJlbW92ZXMgdGl0bGViYXJzIG9uIG1heGltaXplZCB3aW5kb3dzLlxuLSBIaWRlcyB3aW5kb3cgY29udHJvbHMgb24gbWF4aW1pemVkIHdpbmRvd3Mgd2l0aCBoZWFkZXJiYXJzLlxuLSBNb3ZlcyB0aGUgZGF0ZSB0byB0aGUgcmlnaHQsIHJlZHVjZXMgcGFuZWwgc3BhY2luZyBhbmQgcmVtb3ZlcyBkcm9wZG93biBhcnJvd3MuXG4tIE1vdmVzIGxlZ2FjeSB0cmF5IGljb25zIHRvIHRoZSB0b3AgcGFuZWwuXG4tIE1vdmVzIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHJpZ2h0LlxuLSBIaWRlcyBhY3Rpdml0aWVzIGJ1dHRvbi5cbi0gQWRkcyBkZXNrdG9wIG5hbWUgdG8gdGhlIHRvcCBwYW5lbC5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBzb21lIFhvcmcgdXRpbGl0aWVzLiBUbyBpbnN0YWxsIHRoZW06XG4tIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuLSBGZWRvcmEvUkhFTDogZG5mIGluc3RhbGwgeHByb3Bcbi0gRmVkb3JhIFNpbHZlcmJsdWU6IHJwbS1vc3RyZWUgaW5zdGFsbCB4cHJvcFxuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIG9yIGN1c3RvbWl6ZSB0aGUgYXZhaWxhYmxlIHR3ZWFrcy5cbiogU2luY2UgdmVyc2lvbiAyIGFwcGxpY2F0aW9ucyBvbiB3YXlsYW5kIHdpdGggY2xpZW50IHNpZGUgZGVjb3JhdGlvbnMgYXJlIHN1cHBvcnRlZCB1c2luZyBDU1MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidW5pdGUiLAogICJuYW1lIjogIlVuaXRlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVuaXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3VuaXRlLXNoZWxsIiwKICAidXVpZCI6ICJ1bml0ZUBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogNjEKfQ=="}, "42": {"version": "61", "sha256": "1852f9wmzpcpbgdpwx8p2f04i0jnpkzw18rh1cxsw407xskvs6gg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuaXRlIGlzIGEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIHdoaWNoIG1ha2VzIGEgZmV3IGxheW91dCB0d2Vha3MgdG8gdGhlIHRvcCBwYW5lbCBhbmQgcmVtb3ZlcyB3aW5kb3cgZGVjb3JhdGlvbnMgdG8gbWFrZSBpdCBsb29rIGxpa2UgVWJ1bnR1IFVuaXR5IFNoZWxsLlxuXG4tIEFkZHMgd2luZG93IGJ1dHRvbnMgdG8gdGhlIHRvcCBwYW5lbCBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFNob3dzIGN1cnJlbnQgd2luZG93IHRpdGxlIGluIHRoZSBhcHAgbWVudSBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFJlbW92ZXMgdGl0bGViYXJzIG9uIG1heGltaXplZCB3aW5kb3dzLlxuLSBIaWRlcyB3aW5kb3cgY29udHJvbHMgb24gbWF4aW1pemVkIHdpbmRvd3Mgd2l0aCBoZWFkZXJiYXJzLlxuLSBNb3ZlcyB0aGUgZGF0ZSB0byB0aGUgcmlnaHQsIHJlZHVjZXMgcGFuZWwgc3BhY2luZyBhbmQgcmVtb3ZlcyBkcm9wZG93biBhcnJvd3MuXG4tIE1vdmVzIGxlZ2FjeSB0cmF5IGljb25zIHRvIHRoZSB0b3AgcGFuZWwuXG4tIE1vdmVzIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHJpZ2h0LlxuLSBIaWRlcyBhY3Rpdml0aWVzIGJ1dHRvbi5cbi0gQWRkcyBkZXNrdG9wIG5hbWUgdG8gdGhlIHRvcCBwYW5lbC5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBzb21lIFhvcmcgdXRpbGl0aWVzLiBUbyBpbnN0YWxsIHRoZW06XG4tIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuLSBGZWRvcmEvUkhFTDogZG5mIGluc3RhbGwgeHByb3Bcbi0gRmVkb3JhIFNpbHZlcmJsdWU6IHJwbS1vc3RyZWUgaW5zdGFsbCB4cHJvcFxuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIG9yIGN1c3RvbWl6ZSB0aGUgYXZhaWxhYmxlIHR3ZWFrcy5cbiogU2luY2UgdmVyc2lvbiAyIGFwcGxpY2F0aW9ucyBvbiB3YXlsYW5kIHdpdGggY2xpZW50IHNpZGUgZGVjb3JhdGlvbnMgYXJlIHN1cHBvcnRlZCB1c2luZyBDU1MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidW5pdGUiLAogICJuYW1lIjogIlVuaXRlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVuaXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3VuaXRlLXNoZWxsIiwKICAidXVpZCI6ICJ1bml0ZUBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogNjEKfQ=="}}}
-, {"uuid": "GoogleEarthWallpaper@neffo.github.com", "name": "Google Earth Wallpaper", "pname": "google-earth-wallpaper", "description": "Lightweight GNOME shell extension to set your wallpaper to a random photo from the curated Google Earth collection (2604 photos).\n\n*Disclaimer*: this extension is unofficial and not affiliated with Google in any way. Images are protected by copyright and are licensed only for use as wallpapers.\n\nSee also my other extension, Bing Wallpaper Changer (https://github.com/neffo/bing-wallpaper-gnome-extension).\n\nFeatures:\n* Fetches a random Google Earth wallpaper and sets as both lock screen and desktop wallpaper\n* User selectable refresh intervals (default is once per day)\n* View location on Google Maps, Bing Maps, Gnome Maps, OpenStreetMaps\n*  German, Dutch, Chinese, Arabic and Italian translations\n\nPlease report any bugs or suggestions to extension GitHub page below.", "link": "https://extensions.gnome.org/extension/1295/google-earth-wallpaper/", "shell_version_map": {"38": {"version": "14", "sha256": "174qwphskn6g87ipdfbpl6dqsy05vmks8dbx1p7cnk13fz0ys5zb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gYSByYW5kb20gcGhvdG8gZnJvbSB0aGUgY3VyYXRlZCBHb29nbGUgRWFydGggY29sbGVjdGlvbiAoMjYwNCBwaG90b3MpLlxuXG4qRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggR29vZ2xlIGluIGFueSB3YXkuIEltYWdlcyBhcmUgcHJvdGVjdGVkIGJ5IGNvcHlyaWdodCBhbmQgYXJlIGxpY2Vuc2VkIG9ubHkgZm9yIHVzZSBhcyB3YWxscGFwZXJzLlxuXG5TZWUgYWxzbyBteSBvdGhlciBleHRlbnNpb24sIEJpbmcgV2FsbHBhcGVyIENoYW5nZXIgKGh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24pLlxuXG5GZWF0dXJlczpcbiogRmV0Y2hlcyBhIHJhbmRvbSBHb29nbGUgRWFydGggd2FsbHBhcGVyIGFuZCBzZXRzIGFzIGJvdGggbG9jayBzY3JlZW4gYW5kIGRlc2t0b3Agd2FsbHBhcGVyXG4qIFVzZXIgc2VsZWN0YWJsZSByZWZyZXNoIGludGVydmFscyAoZGVmYXVsdCBpcyBvbmNlIHBlciBkYXkpXG4qIFZpZXcgbG9jYXRpb24gb24gR29vZ2xlIE1hcHMsIEJpbmcgTWFwcywgR25vbWUgTWFwcywgT3BlblN0cmVldE1hcHNcbiogIEdlcm1hbiwgRHV0Y2gsIENoaW5lc2UsIEFyYWJpYyBhbmQgSXRhbGlhbiB0cmFuc2xhdGlvbnNcblxuUGxlYXNlIHJlcG9ydCBhbnkgYnVncyBvciBzdWdnZXN0aW9ucyB0byBleHRlbnNpb24gR2l0SHViIHBhZ2UgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiR29vZ2xlRWFydGhXYWxscGFwZXIiLAogICJuYW1lIjogIkdvb2dsZSBFYXJ0aCBXYWxscGFwZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29vZ2xlZWFydGh3YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9lYXJ0aC12aWV3LXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIkdvb2dsZUVhcnRoV2FsbHBhcGVyQG5lZmZvLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "14", "sha256": "174qwphskn6g87ipdfbpl6dqsy05vmks8dbx1p7cnk13fz0ys5zb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gYSByYW5kb20gcGhvdG8gZnJvbSB0aGUgY3VyYXRlZCBHb29nbGUgRWFydGggY29sbGVjdGlvbiAoMjYwNCBwaG90b3MpLlxuXG4qRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggR29vZ2xlIGluIGFueSB3YXkuIEltYWdlcyBhcmUgcHJvdGVjdGVkIGJ5IGNvcHlyaWdodCBhbmQgYXJlIGxpY2Vuc2VkIG9ubHkgZm9yIHVzZSBhcyB3YWxscGFwZXJzLlxuXG5TZWUgYWxzbyBteSBvdGhlciBleHRlbnNpb24sIEJpbmcgV2FsbHBhcGVyIENoYW5nZXIgKGh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24pLlxuXG5GZWF0dXJlczpcbiogRmV0Y2hlcyBhIHJhbmRvbSBHb29nbGUgRWFydGggd2FsbHBhcGVyIGFuZCBzZXRzIGFzIGJvdGggbG9jayBzY3JlZW4gYW5kIGRlc2t0b3Agd2FsbHBhcGVyXG4qIFVzZXIgc2VsZWN0YWJsZSByZWZyZXNoIGludGVydmFscyAoZGVmYXVsdCBpcyBvbmNlIHBlciBkYXkpXG4qIFZpZXcgbG9jYXRpb24gb24gR29vZ2xlIE1hcHMsIEJpbmcgTWFwcywgR25vbWUgTWFwcywgT3BlblN0cmVldE1hcHNcbiogIEdlcm1hbiwgRHV0Y2gsIENoaW5lc2UsIEFyYWJpYyBhbmQgSXRhbGlhbiB0cmFuc2xhdGlvbnNcblxuUGxlYXNlIHJlcG9ydCBhbnkgYnVncyBvciBzdWdnZXN0aW9ucyB0byBleHRlbnNpb24gR2l0SHViIHBhZ2UgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiR29vZ2xlRWFydGhXYWxscGFwZXIiLAogICJuYW1lIjogIkdvb2dsZSBFYXJ0aCBXYWxscGFwZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29vZ2xlZWFydGh3YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9lYXJ0aC12aWV3LXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIkdvb2dsZUVhcnRoV2FsbHBhcGVyQG5lZmZvLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "174qwphskn6g87ipdfbpl6dqsy05vmks8dbx1p7cnk13fz0ys5zb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gYSByYW5kb20gcGhvdG8gZnJvbSB0aGUgY3VyYXRlZCBHb29nbGUgRWFydGggY29sbGVjdGlvbiAoMjYwNCBwaG90b3MpLlxuXG4qRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggR29vZ2xlIGluIGFueSB3YXkuIEltYWdlcyBhcmUgcHJvdGVjdGVkIGJ5IGNvcHlyaWdodCBhbmQgYXJlIGxpY2Vuc2VkIG9ubHkgZm9yIHVzZSBhcyB3YWxscGFwZXJzLlxuXG5TZWUgYWxzbyBteSBvdGhlciBleHRlbnNpb24sIEJpbmcgV2FsbHBhcGVyIENoYW5nZXIgKGh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24pLlxuXG5GZWF0dXJlczpcbiogRmV0Y2hlcyBhIHJhbmRvbSBHb29nbGUgRWFydGggd2FsbHBhcGVyIGFuZCBzZXRzIGFzIGJvdGggbG9jayBzY3JlZW4gYW5kIGRlc2t0b3Agd2FsbHBhcGVyXG4qIFVzZXIgc2VsZWN0YWJsZSByZWZyZXNoIGludGVydmFscyAoZGVmYXVsdCBpcyBvbmNlIHBlciBkYXkpXG4qIFZpZXcgbG9jYXRpb24gb24gR29vZ2xlIE1hcHMsIEJpbmcgTWFwcywgR25vbWUgTWFwcywgT3BlblN0cmVldE1hcHNcbiogIEdlcm1hbiwgRHV0Y2gsIENoaW5lc2UsIEFyYWJpYyBhbmQgSXRhbGlhbiB0cmFuc2xhdGlvbnNcblxuUGxlYXNlIHJlcG9ydCBhbnkgYnVncyBvciBzdWdnZXN0aW9ucyB0byBleHRlbnNpb24gR2l0SHViIHBhZ2UgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiR29vZ2xlRWFydGhXYWxscGFwZXIiLAogICJuYW1lIjogIkdvb2dsZSBFYXJ0aCBXYWxscGFwZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29vZ2xlZWFydGh3YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9lYXJ0aC12aWV3LXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIkdvb2dsZUVhcnRoV2FsbHBhcGVyQG5lZmZvLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "42": {"version": "14", "sha256": "174qwphskn6g87ipdfbpl6dqsy05vmks8dbx1p7cnk13fz0ys5zb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gYSByYW5kb20gcGhvdG8gZnJvbSB0aGUgY3VyYXRlZCBHb29nbGUgRWFydGggY29sbGVjdGlvbiAoMjYwNCBwaG90b3MpLlxuXG4qRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggR29vZ2xlIGluIGFueSB3YXkuIEltYWdlcyBhcmUgcHJvdGVjdGVkIGJ5IGNvcHlyaWdodCBhbmQgYXJlIGxpY2Vuc2VkIG9ubHkgZm9yIHVzZSBhcyB3YWxscGFwZXJzLlxuXG5TZWUgYWxzbyBteSBvdGhlciBleHRlbnNpb24sIEJpbmcgV2FsbHBhcGVyIENoYW5nZXIgKGh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24pLlxuXG5GZWF0dXJlczpcbiogRmV0Y2hlcyBhIHJhbmRvbSBHb29nbGUgRWFydGggd2FsbHBhcGVyIGFuZCBzZXRzIGFzIGJvdGggbG9jayBzY3JlZW4gYW5kIGRlc2t0b3Agd2FsbHBhcGVyXG4qIFVzZXIgc2VsZWN0YWJsZSByZWZyZXNoIGludGVydmFscyAoZGVmYXVsdCBpcyBvbmNlIHBlciBkYXkpXG4qIFZpZXcgbG9jYXRpb24gb24gR29vZ2xlIE1hcHMsIEJpbmcgTWFwcywgR25vbWUgTWFwcywgT3BlblN0cmVldE1hcHNcbiogIEdlcm1hbiwgRHV0Y2gsIENoaW5lc2UsIEFyYWJpYyBhbmQgSXRhbGlhbiB0cmFuc2xhdGlvbnNcblxuUGxlYXNlIHJlcG9ydCBhbnkgYnVncyBvciBzdWdnZXN0aW9ucyB0byBleHRlbnNpb24gR2l0SHViIHBhZ2UgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiR29vZ2xlRWFydGhXYWxscGFwZXIiLAogICJuYW1lIjogIkdvb2dsZSBFYXJ0aCBXYWxscGFwZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29vZ2xlZWFydGh3YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9lYXJ0aC12aWV3LXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIkdvb2dsZUVhcnRoV2FsbHBhcGVyQG5lZmZvLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
+, {"uuid": "hotel-manager@hardpixel.eu", "name": "Hotel Manager", "pname": "hotel-manager", "description": "Hotel Manager allows to start and stop the Hotel daemon and your development servers via a menu in the status area.", "link": "https://extensions.gnome.org/extension/1285/hotel-manager/", "shell_version_map": {"38": {"version": "15", "sha256": "1sifyxpc9ldllkzfy109dpwpx1rgz23mvpkc0c2gjqw13pqswdsf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdGVsIE1hbmFnZXIgYWxsb3dzIHRvIHN0YXJ0IGFuZCBzdG9wIHRoZSBIb3RlbCBkYWVtb24gYW5kIHlvdXIgZGV2ZWxvcG1lbnQgc2VydmVycyB2aWEgYSBtZW51IGluIHRoZSBzdGF0dXMgYXJlYS4iLAogICJuYW1lIjogIkhvdGVsIE1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvaG90ZWwtbWFuYWdlciIsCiAgInV1aWQiOiAiaG90ZWwtbWFuYWdlckBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "15", "sha256": "1sifyxpc9ldllkzfy109dpwpx1rgz23mvpkc0c2gjqw13pqswdsf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdGVsIE1hbmFnZXIgYWxsb3dzIHRvIHN0YXJ0IGFuZCBzdG9wIHRoZSBIb3RlbCBkYWVtb24gYW5kIHlvdXIgZGV2ZWxvcG1lbnQgc2VydmVycyB2aWEgYSBtZW51IGluIHRoZSBzdGF0dXMgYXJlYS4iLAogICJuYW1lIjogIkhvdGVsIE1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvaG90ZWwtbWFuYWdlciIsCiAgInV1aWQiOiAiaG90ZWwtbWFuYWdlckBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "15", "sha256": "1sifyxpc9ldllkzfy109dpwpx1rgz23mvpkc0c2gjqw13pqswdsf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdGVsIE1hbmFnZXIgYWxsb3dzIHRvIHN0YXJ0IGFuZCBzdG9wIHRoZSBIb3RlbCBkYWVtb24gYW5kIHlvdXIgZGV2ZWxvcG1lbnQgc2VydmVycyB2aWEgYSBtZW51IGluIHRoZSBzdGF0dXMgYXJlYS4iLAogICJuYW1lIjogIkhvdGVsIE1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvaG90ZWwtbWFuYWdlciIsCiAgInV1aWQiOiAiaG90ZWwtbWFuYWdlckBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "42": {"version": "15", "sha256": "1sifyxpc9ldllkzfy109dpwpx1rgz23mvpkc0c2gjqw13pqswdsf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdGVsIE1hbmFnZXIgYWxsb3dzIHRvIHN0YXJ0IGFuZCBzdG9wIHRoZSBIb3RlbCBkYWVtb24gYW5kIHlvdXIgZGV2ZWxvcG1lbnQgc2VydmVycyB2aWEgYSBtZW51IGluIHRoZSBzdGF0dXMgYXJlYS4iLAogICJuYW1lIjogIkhvdGVsIE1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvaG90ZWwtbWFuYWdlciIsCiAgInV1aWQiOiAiaG90ZWwtbWFuYWdlckBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
+, {"uuid": "unite@hardpixel.eu", "name": "Unite", "pname": "unite", "description": "Unite is a GNOME Shell extension which makes a few layout tweaks to the top panel and removes window decorations to make it look like Ubuntu Unity Shell.\n\n- Adds window buttons to the top panel for maximized windows.\n- Shows current window title in the app menu for maximized windows.\n- Removes titlebars on maximized windows.\n- Hides window controls on maximized windows with headerbars.\n- Moves the date to the right, reduces panel spacing and removes dropdown arrows.\n- Moves legacy tray icons to the top panel.\n- Moves notifications to the right.\n- Hides activities button.\n- Adds desktop name to the top panel.\n\nThis extension depends on some Xorg utilities. To install them:\n- Debian/Ubuntu: apt install x11-utils\n- Fedora/RHEL: dnf install xprop\n- Fedora Silverblue: rpm-ostree install xprop\n- Arch: pacman -S xorg-xprop\n\n*Settings are provided to enable/disable or customize the available tweaks.\n* Since version 2 applications on wayland with client side decorations are supported using CSS.", "link": "https://extensions.gnome.org/extension/1287/unite/", "shell_version_map": {"38": {"version": "64", "sha256": "1cwy765h9g7zq7vkaha59i25117bq78ykg2ybz7fy6zkpflk7ila", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuaXRlIGlzIGEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIHdoaWNoIG1ha2VzIGEgZmV3IGxheW91dCB0d2Vha3MgdG8gdGhlIHRvcCBwYW5lbCBhbmQgcmVtb3ZlcyB3aW5kb3cgZGVjb3JhdGlvbnMgdG8gbWFrZSBpdCBsb29rIGxpa2UgVWJ1bnR1IFVuaXR5IFNoZWxsLlxuXG4tIEFkZHMgd2luZG93IGJ1dHRvbnMgdG8gdGhlIHRvcCBwYW5lbCBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFNob3dzIGN1cnJlbnQgd2luZG93IHRpdGxlIGluIHRoZSBhcHAgbWVudSBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFJlbW92ZXMgdGl0bGViYXJzIG9uIG1heGltaXplZCB3aW5kb3dzLlxuLSBIaWRlcyB3aW5kb3cgY29udHJvbHMgb24gbWF4aW1pemVkIHdpbmRvd3Mgd2l0aCBoZWFkZXJiYXJzLlxuLSBNb3ZlcyB0aGUgZGF0ZSB0byB0aGUgcmlnaHQsIHJlZHVjZXMgcGFuZWwgc3BhY2luZyBhbmQgcmVtb3ZlcyBkcm9wZG93biBhcnJvd3MuXG4tIE1vdmVzIGxlZ2FjeSB0cmF5IGljb25zIHRvIHRoZSB0b3AgcGFuZWwuXG4tIE1vdmVzIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHJpZ2h0LlxuLSBIaWRlcyBhY3Rpdml0aWVzIGJ1dHRvbi5cbi0gQWRkcyBkZXNrdG9wIG5hbWUgdG8gdGhlIHRvcCBwYW5lbC5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBzb21lIFhvcmcgdXRpbGl0aWVzLiBUbyBpbnN0YWxsIHRoZW06XG4tIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuLSBGZWRvcmEvUkhFTDogZG5mIGluc3RhbGwgeHByb3Bcbi0gRmVkb3JhIFNpbHZlcmJsdWU6IHJwbS1vc3RyZWUgaW5zdGFsbCB4cHJvcFxuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIG9yIGN1c3RvbWl6ZSB0aGUgYXZhaWxhYmxlIHR3ZWFrcy5cbiogU2luY2UgdmVyc2lvbiAyIGFwcGxpY2F0aW9ucyBvbiB3YXlsYW5kIHdpdGggY2xpZW50IHNpZGUgZGVjb3JhdGlvbnMgYXJlIHN1cHBvcnRlZCB1c2luZyBDU1MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidW5pdGUiLAogICJuYW1lIjogIlVuaXRlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVuaXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3VuaXRlLXNoZWxsIiwKICAidXVpZCI6ICJ1bml0ZUBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogNjQKfQ=="}, "40": {"version": "64", "sha256": "1cwy765h9g7zq7vkaha59i25117bq78ykg2ybz7fy6zkpflk7ila", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuaXRlIGlzIGEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIHdoaWNoIG1ha2VzIGEgZmV3IGxheW91dCB0d2Vha3MgdG8gdGhlIHRvcCBwYW5lbCBhbmQgcmVtb3ZlcyB3aW5kb3cgZGVjb3JhdGlvbnMgdG8gbWFrZSBpdCBsb29rIGxpa2UgVWJ1bnR1IFVuaXR5IFNoZWxsLlxuXG4tIEFkZHMgd2luZG93IGJ1dHRvbnMgdG8gdGhlIHRvcCBwYW5lbCBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFNob3dzIGN1cnJlbnQgd2luZG93IHRpdGxlIGluIHRoZSBhcHAgbWVudSBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFJlbW92ZXMgdGl0bGViYXJzIG9uIG1heGltaXplZCB3aW5kb3dzLlxuLSBIaWRlcyB3aW5kb3cgY29udHJvbHMgb24gbWF4aW1pemVkIHdpbmRvd3Mgd2l0aCBoZWFkZXJiYXJzLlxuLSBNb3ZlcyB0aGUgZGF0ZSB0byB0aGUgcmlnaHQsIHJlZHVjZXMgcGFuZWwgc3BhY2luZyBhbmQgcmVtb3ZlcyBkcm9wZG93biBhcnJvd3MuXG4tIE1vdmVzIGxlZ2FjeSB0cmF5IGljb25zIHRvIHRoZSB0b3AgcGFuZWwuXG4tIE1vdmVzIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHJpZ2h0LlxuLSBIaWRlcyBhY3Rpdml0aWVzIGJ1dHRvbi5cbi0gQWRkcyBkZXNrdG9wIG5hbWUgdG8gdGhlIHRvcCBwYW5lbC5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBzb21lIFhvcmcgdXRpbGl0aWVzLiBUbyBpbnN0YWxsIHRoZW06XG4tIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuLSBGZWRvcmEvUkhFTDogZG5mIGluc3RhbGwgeHByb3Bcbi0gRmVkb3JhIFNpbHZlcmJsdWU6IHJwbS1vc3RyZWUgaW5zdGFsbCB4cHJvcFxuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIG9yIGN1c3RvbWl6ZSB0aGUgYXZhaWxhYmxlIHR3ZWFrcy5cbiogU2luY2UgdmVyc2lvbiAyIGFwcGxpY2F0aW9ucyBvbiB3YXlsYW5kIHdpdGggY2xpZW50IHNpZGUgZGVjb3JhdGlvbnMgYXJlIHN1cHBvcnRlZCB1c2luZyBDU1MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidW5pdGUiLAogICJuYW1lIjogIlVuaXRlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVuaXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3VuaXRlLXNoZWxsIiwKICAidXVpZCI6ICJ1bml0ZUBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogNjQKfQ=="}, "41": {"version": "64", "sha256": "1cwy765h9g7zq7vkaha59i25117bq78ykg2ybz7fy6zkpflk7ila", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuaXRlIGlzIGEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIHdoaWNoIG1ha2VzIGEgZmV3IGxheW91dCB0d2Vha3MgdG8gdGhlIHRvcCBwYW5lbCBhbmQgcmVtb3ZlcyB3aW5kb3cgZGVjb3JhdGlvbnMgdG8gbWFrZSBpdCBsb29rIGxpa2UgVWJ1bnR1IFVuaXR5IFNoZWxsLlxuXG4tIEFkZHMgd2luZG93IGJ1dHRvbnMgdG8gdGhlIHRvcCBwYW5lbCBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFNob3dzIGN1cnJlbnQgd2luZG93IHRpdGxlIGluIHRoZSBhcHAgbWVudSBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFJlbW92ZXMgdGl0bGViYXJzIG9uIG1heGltaXplZCB3aW5kb3dzLlxuLSBIaWRlcyB3aW5kb3cgY29udHJvbHMgb24gbWF4aW1pemVkIHdpbmRvd3Mgd2l0aCBoZWFkZXJiYXJzLlxuLSBNb3ZlcyB0aGUgZGF0ZSB0byB0aGUgcmlnaHQsIHJlZHVjZXMgcGFuZWwgc3BhY2luZyBhbmQgcmVtb3ZlcyBkcm9wZG93biBhcnJvd3MuXG4tIE1vdmVzIGxlZ2FjeSB0cmF5IGljb25zIHRvIHRoZSB0b3AgcGFuZWwuXG4tIE1vdmVzIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHJpZ2h0LlxuLSBIaWRlcyBhY3Rpdml0aWVzIGJ1dHRvbi5cbi0gQWRkcyBkZXNrdG9wIG5hbWUgdG8gdGhlIHRvcCBwYW5lbC5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBzb21lIFhvcmcgdXRpbGl0aWVzLiBUbyBpbnN0YWxsIHRoZW06XG4tIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuLSBGZWRvcmEvUkhFTDogZG5mIGluc3RhbGwgeHByb3Bcbi0gRmVkb3JhIFNpbHZlcmJsdWU6IHJwbS1vc3RyZWUgaW5zdGFsbCB4cHJvcFxuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIG9yIGN1c3RvbWl6ZSB0aGUgYXZhaWxhYmxlIHR3ZWFrcy5cbiogU2luY2UgdmVyc2lvbiAyIGFwcGxpY2F0aW9ucyBvbiB3YXlsYW5kIHdpdGggY2xpZW50IHNpZGUgZGVjb3JhdGlvbnMgYXJlIHN1cHBvcnRlZCB1c2luZyBDU1MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidW5pdGUiLAogICJuYW1lIjogIlVuaXRlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVuaXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3VuaXRlLXNoZWxsIiwKICAidXVpZCI6ICJ1bml0ZUBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogNjQKfQ=="}, "42": {"version": "64", "sha256": "1cwy765h9g7zq7vkaha59i25117bq78ykg2ybz7fy6zkpflk7ila", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuaXRlIGlzIGEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIHdoaWNoIG1ha2VzIGEgZmV3IGxheW91dCB0d2Vha3MgdG8gdGhlIHRvcCBwYW5lbCBhbmQgcmVtb3ZlcyB3aW5kb3cgZGVjb3JhdGlvbnMgdG8gbWFrZSBpdCBsb29rIGxpa2UgVWJ1bnR1IFVuaXR5IFNoZWxsLlxuXG4tIEFkZHMgd2luZG93IGJ1dHRvbnMgdG8gdGhlIHRvcCBwYW5lbCBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFNob3dzIGN1cnJlbnQgd2luZG93IHRpdGxlIGluIHRoZSBhcHAgbWVudSBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFJlbW92ZXMgdGl0bGViYXJzIG9uIG1heGltaXplZCB3aW5kb3dzLlxuLSBIaWRlcyB3aW5kb3cgY29udHJvbHMgb24gbWF4aW1pemVkIHdpbmRvd3Mgd2l0aCBoZWFkZXJiYXJzLlxuLSBNb3ZlcyB0aGUgZGF0ZSB0byB0aGUgcmlnaHQsIHJlZHVjZXMgcGFuZWwgc3BhY2luZyBhbmQgcmVtb3ZlcyBkcm9wZG93biBhcnJvd3MuXG4tIE1vdmVzIGxlZ2FjeSB0cmF5IGljb25zIHRvIHRoZSB0b3AgcGFuZWwuXG4tIE1vdmVzIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHJpZ2h0LlxuLSBIaWRlcyBhY3Rpdml0aWVzIGJ1dHRvbi5cbi0gQWRkcyBkZXNrdG9wIG5hbWUgdG8gdGhlIHRvcCBwYW5lbC5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBzb21lIFhvcmcgdXRpbGl0aWVzLiBUbyBpbnN0YWxsIHRoZW06XG4tIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuLSBGZWRvcmEvUkhFTDogZG5mIGluc3RhbGwgeHByb3Bcbi0gRmVkb3JhIFNpbHZlcmJsdWU6IHJwbS1vc3RyZWUgaW5zdGFsbCB4cHJvcFxuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIG9yIGN1c3RvbWl6ZSB0aGUgYXZhaWxhYmxlIHR3ZWFrcy5cbiogU2luY2UgdmVyc2lvbiAyIGFwcGxpY2F0aW9ucyBvbiB3YXlsYW5kIHdpdGggY2xpZW50IHNpZGUgZGVjb3JhdGlvbnMgYXJlIHN1cHBvcnRlZCB1c2luZyBDU1MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidW5pdGUiLAogICJuYW1lIjogIlVuaXRlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVuaXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3VuaXRlLXNoZWxsIiwKICAidXVpZCI6ICJ1bml0ZUBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogNjQKfQ=="}}}
+, {"uuid": "GoogleEarthWallpaper@neffo.github.com", "name": "Google Earth Wallpaper", "pname": "google-earth-wallpaper", "description": "Lightweight GNOME shell extension to sets your wallpaper to a random photo from the curated Google Earth collection (2604 photos).\n\n*Disclaimer*: this extension is unofficial and not affiliated with Google in any way. Images are protected by copyright and are licensed only for use as wallpapers.\n\nSee also my other extension, Bing Wallpaper Changer (https://github.com/neffo/bing-wallpaper-gnome-extension).\n\nFeatures:\n* Fetches a random Google Earth wallpaper and sets as both lock screen and desktop wallpaper\n* User selectable refresh intervals (default is once per day)\n* View location on Google Maps, Bing Maps, Gnome Maps, OpenStreetMaps\n*  German, Dutch and Chinese translations\n\nPlease report any bugs or suggestions to extension GitHub page below.", "link": "https://extensions.gnome.org/extension/1295/google-earth-wallpaper/", "shell_version_map": {"38": {"version": "15", "sha256": "0r68krvgjgkf8fdllb2k02zdg0xd6iidmn5nnz8w2hzx1jdvsmf9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXRzIHlvdXIgd2FsbHBhcGVyIHRvIGEgcmFuZG9tIHBob3RvIGZyb20gdGhlIGN1cmF0ZWQgR29vZ2xlIEVhcnRoIGNvbGxlY3Rpb24gKDI2MDQgcGhvdG9zKS5cblxuKkRpc2NsYWltZXIqOiB0aGlzIGV4dGVuc2lvbiBpcyB1bm9mZmljaWFsIGFuZCBub3QgYWZmaWxpYXRlZCB3aXRoIEdvb2dsZSBpbiBhbnkgd2F5LiBJbWFnZXMgYXJlIHByb3RlY3RlZCBieSBjb3B5cmlnaHQgYW5kIGFyZSBsaWNlbnNlZCBvbmx5IGZvciB1c2UgYXMgd2FsbHBhcGVycy5cblxuU2VlIGFsc28gbXkgb3RoZXIgZXh0ZW5zaW9uLCBCaW5nIFdhbGxwYXBlciBDaGFuZ2VyIChodHRwczovL2dpdGh1Yi5jb20vbmVmZm8vYmluZy13YWxscGFwZXItZ25vbWUtZXh0ZW5zaW9uKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgYSByYW5kb20gR29vZ2xlIEVhcnRoIHdhbGxwYXBlciBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlclxuKiBVc2VyIHNlbGVjdGFibGUgcmVmcmVzaCBpbnRlcnZhbHMgKGRlZmF1bHQgaXMgb25jZSBwZXIgZGF5KVxuKiBWaWV3IGxvY2F0aW9uIG9uIEdvb2dsZSBNYXBzLCBCaW5nIE1hcHMsIEdub21lIE1hcHMsIE9wZW5TdHJlZXRNYXBzXG4qICBHZXJtYW4sIER1dGNoIGFuZCBDaGluZXNlIHRyYW5zbGF0aW9uc1xuXG5QbGVhc2UgcmVwb3J0IGFueSBidWdzIG9yIHN1Z2dlc3Rpb25zIHRvIGV4dGVuc2lvbiBHaXRIdWIgcGFnZSBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJHb29nbGVFYXJ0aFdhbGxwYXBlciIsCiAgIm5hbWUiOiAiR29vZ2xlIEVhcnRoIFdhbGxwYXBlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nb29nbGVlYXJ0aHdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25lZmZvL2VhcnRoLXZpZXctd2FsbHBhcGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiR29vZ2xlRWFydGhXYWxscGFwZXJAbmVmZm8uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}, "40": {"version": "15", "sha256": "0r68krvgjgkf8fdllb2k02zdg0xd6iidmn5nnz8w2hzx1jdvsmf9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXRzIHlvdXIgd2FsbHBhcGVyIHRvIGEgcmFuZG9tIHBob3RvIGZyb20gdGhlIGN1cmF0ZWQgR29vZ2xlIEVhcnRoIGNvbGxlY3Rpb24gKDI2MDQgcGhvdG9zKS5cblxuKkRpc2NsYWltZXIqOiB0aGlzIGV4dGVuc2lvbiBpcyB1bm9mZmljaWFsIGFuZCBub3QgYWZmaWxpYXRlZCB3aXRoIEdvb2dsZSBpbiBhbnkgd2F5LiBJbWFnZXMgYXJlIHByb3RlY3RlZCBieSBjb3B5cmlnaHQgYW5kIGFyZSBsaWNlbnNlZCBvbmx5IGZvciB1c2UgYXMgd2FsbHBhcGVycy5cblxuU2VlIGFsc28gbXkgb3RoZXIgZXh0ZW5zaW9uLCBCaW5nIFdhbGxwYXBlciBDaGFuZ2VyIChodHRwczovL2dpdGh1Yi5jb20vbmVmZm8vYmluZy13YWxscGFwZXItZ25vbWUtZXh0ZW5zaW9uKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgYSByYW5kb20gR29vZ2xlIEVhcnRoIHdhbGxwYXBlciBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlclxuKiBVc2VyIHNlbGVjdGFibGUgcmVmcmVzaCBpbnRlcnZhbHMgKGRlZmF1bHQgaXMgb25jZSBwZXIgZGF5KVxuKiBWaWV3IGxvY2F0aW9uIG9uIEdvb2dsZSBNYXBzLCBCaW5nIE1hcHMsIEdub21lIE1hcHMsIE9wZW5TdHJlZXRNYXBzXG4qICBHZXJtYW4sIER1dGNoIGFuZCBDaGluZXNlIHRyYW5zbGF0aW9uc1xuXG5QbGVhc2UgcmVwb3J0IGFueSBidWdzIG9yIHN1Z2dlc3Rpb25zIHRvIGV4dGVuc2lvbiBHaXRIdWIgcGFnZSBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJHb29nbGVFYXJ0aFdhbGxwYXBlciIsCiAgIm5hbWUiOiAiR29vZ2xlIEVhcnRoIFdhbGxwYXBlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nb29nbGVlYXJ0aHdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25lZmZvL2VhcnRoLXZpZXctd2FsbHBhcGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiR29vZ2xlRWFydGhXYWxscGFwZXJAbmVmZm8uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}, "41": {"version": "15", "sha256": "0r68krvgjgkf8fdllb2k02zdg0xd6iidmn5nnz8w2hzx1jdvsmf9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXRzIHlvdXIgd2FsbHBhcGVyIHRvIGEgcmFuZG9tIHBob3RvIGZyb20gdGhlIGN1cmF0ZWQgR29vZ2xlIEVhcnRoIGNvbGxlY3Rpb24gKDI2MDQgcGhvdG9zKS5cblxuKkRpc2NsYWltZXIqOiB0aGlzIGV4dGVuc2lvbiBpcyB1bm9mZmljaWFsIGFuZCBub3QgYWZmaWxpYXRlZCB3aXRoIEdvb2dsZSBpbiBhbnkgd2F5LiBJbWFnZXMgYXJlIHByb3RlY3RlZCBieSBjb3B5cmlnaHQgYW5kIGFyZSBsaWNlbnNlZCBvbmx5IGZvciB1c2UgYXMgd2FsbHBhcGVycy5cblxuU2VlIGFsc28gbXkgb3RoZXIgZXh0ZW5zaW9uLCBCaW5nIFdhbGxwYXBlciBDaGFuZ2VyIChodHRwczovL2dpdGh1Yi5jb20vbmVmZm8vYmluZy13YWxscGFwZXItZ25vbWUtZXh0ZW5zaW9uKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgYSByYW5kb20gR29vZ2xlIEVhcnRoIHdhbGxwYXBlciBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlclxuKiBVc2VyIHNlbGVjdGFibGUgcmVmcmVzaCBpbnRlcnZhbHMgKGRlZmF1bHQgaXMgb25jZSBwZXIgZGF5KVxuKiBWaWV3IGxvY2F0aW9uIG9uIEdvb2dsZSBNYXBzLCBCaW5nIE1hcHMsIEdub21lIE1hcHMsIE9wZW5TdHJlZXRNYXBzXG4qICBHZXJtYW4sIER1dGNoIGFuZCBDaGluZXNlIHRyYW5zbGF0aW9uc1xuXG5QbGVhc2UgcmVwb3J0IGFueSBidWdzIG9yIHN1Z2dlc3Rpb25zIHRvIGV4dGVuc2lvbiBHaXRIdWIgcGFnZSBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJHb29nbGVFYXJ0aFdhbGxwYXBlciIsCiAgIm5hbWUiOiAiR29vZ2xlIEVhcnRoIFdhbGxwYXBlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nb29nbGVlYXJ0aHdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25lZmZvL2VhcnRoLXZpZXctd2FsbHBhcGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiR29vZ2xlRWFydGhXYWxscGFwZXJAbmVmZm8uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}, "42": {"version": "15", "sha256": "0r68krvgjgkf8fdllb2k02zdg0xd6iidmn5nnz8w2hzx1jdvsmf9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXRzIHlvdXIgd2FsbHBhcGVyIHRvIGEgcmFuZG9tIHBob3RvIGZyb20gdGhlIGN1cmF0ZWQgR29vZ2xlIEVhcnRoIGNvbGxlY3Rpb24gKDI2MDQgcGhvdG9zKS5cblxuKkRpc2NsYWltZXIqOiB0aGlzIGV4dGVuc2lvbiBpcyB1bm9mZmljaWFsIGFuZCBub3QgYWZmaWxpYXRlZCB3aXRoIEdvb2dsZSBpbiBhbnkgd2F5LiBJbWFnZXMgYXJlIHByb3RlY3RlZCBieSBjb3B5cmlnaHQgYW5kIGFyZSBsaWNlbnNlZCBvbmx5IGZvciB1c2UgYXMgd2FsbHBhcGVycy5cblxuU2VlIGFsc28gbXkgb3RoZXIgZXh0ZW5zaW9uLCBCaW5nIFdhbGxwYXBlciBDaGFuZ2VyIChodHRwczovL2dpdGh1Yi5jb20vbmVmZm8vYmluZy13YWxscGFwZXItZ25vbWUtZXh0ZW5zaW9uKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgYSByYW5kb20gR29vZ2xlIEVhcnRoIHdhbGxwYXBlciBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlclxuKiBVc2VyIHNlbGVjdGFibGUgcmVmcmVzaCBpbnRlcnZhbHMgKGRlZmF1bHQgaXMgb25jZSBwZXIgZGF5KVxuKiBWaWV3IGxvY2F0aW9uIG9uIEdvb2dsZSBNYXBzLCBCaW5nIE1hcHMsIEdub21lIE1hcHMsIE9wZW5TdHJlZXRNYXBzXG4qICBHZXJtYW4sIER1dGNoIGFuZCBDaGluZXNlIHRyYW5zbGF0aW9uc1xuXG5QbGVhc2UgcmVwb3J0IGFueSBidWdzIG9yIHN1Z2dlc3Rpb25zIHRvIGV4dGVuc2lvbiBHaXRIdWIgcGFnZSBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJHb29nbGVFYXJ0aFdhbGxwYXBlciIsCiAgIm5hbWUiOiAiR29vZ2xlIEVhcnRoIFdhbGxwYXBlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nb29nbGVlYXJ0aHdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25lZmZvL2VhcnRoLXZpZXctd2FsbHBhcGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiR29vZ2xlRWFydGhXYWxscGFwZXJAbmVmZm8uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}}}
 , {"uuid": "gsconnect@andyholmes.github.io", "name": "GSConnect", "pname": "gsconnect", "description": "GSConnect is a complete implementation of KDE Connect especially for GNOME Shell with Nautilus, Chrome and Firefox integration. It does not rely on the KDE Connect desktop application and will not work with it installed.\n\nKDE Connect allows devices to securely share content like notifications or files and other features like SMS messaging and remote control. The KDE Connect team has applications for Linux, BSD, Android, Sailfish and Windows.\n\nPlease report issues on Github!", "link": "https://extensions.gnome.org/extension/1319/gsconnect/", "shell_version_map": {"38": {"version": "51", "sha256": "00mb2w724526gs0jskav00bc0y5dq1qybzczlahgc2znykqf1x8l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdTQ29ubmVjdCBpcyBhIGNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIEtERSBDb25uZWN0IGVzcGVjaWFsbHkgZm9yIEdOT01FIFNoZWxsIHdpdGggTmF1dGlsdXMsIENocm9tZSBhbmQgRmlyZWZveCBpbnRlZ3JhdGlvbi4gSXQgZG9lcyBub3QgcmVseSBvbiB0aGUgS0RFIENvbm5lY3QgZGVza3RvcCBhcHBsaWNhdGlvbiBhbmQgd2lsbCBub3Qgd29yayB3aXRoIGl0IGluc3RhbGxlZC5cblxuS0RFIENvbm5lY3QgYWxsb3dzIGRldmljZXMgdG8gc2VjdXJlbHkgc2hhcmUgY29udGVudCBsaWtlIG5vdGlmaWNhdGlvbnMgb3IgZmlsZXMgYW5kIG90aGVyIGZlYXR1cmVzIGxpa2UgU01TIG1lc3NhZ2luZyBhbmQgcmVtb3RlIGNvbnRyb2wuIFRoZSBLREUgQ29ubmVjdCB0ZWFtIGhhcyBhcHBsaWNhdGlvbnMgZm9yIExpbnV4LCBCU0QsIEFuZHJvaWQsIFNhaWxmaXNoIGFuZCBXaW5kb3dzLlxuXG5QbGVhc2UgcmVwb3J0IGlzc3VlcyBvbiBHaXRodWIhIiwKICAibmFtZSI6ICJHU0Nvbm5lY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HU0Nvbm5lY3QvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWdzY29ubmVjdC93aWtpIiwKICAidXVpZCI6ICJnc2Nvbm5lY3RAYW5keWhvbG1lcy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNTEKfQ=="}, "40": {"version": "47", "sha256": "0795yd6j8z2rgcv3fc8y2i4cnl4c8mni512jf776cfk745j5ck6p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdTQ29ubmVjdCBpcyBhIGNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIEtERSBDb25uZWN0IGVzcGVjaWFsbHkgZm9yIEdOT01FIFNoZWxsIHdpdGggTmF1dGlsdXMsIENocm9tZSBhbmQgRmlyZWZveCBpbnRlZ3JhdGlvbi4gSXQgZG9lcyBub3QgcmVseSBvbiB0aGUgS0RFIENvbm5lY3QgZGVza3RvcCBhcHBsaWNhdGlvbiBhbmQgd2lsbCBub3Qgd29yayB3aXRoIGl0IGluc3RhbGxlZC5cblxuS0RFIENvbm5lY3QgYWxsb3dzIGRldmljZXMgdG8gc2VjdXJlbHkgc2hhcmUgY29udGVudCBsaWtlIG5vdGlmaWNhdGlvbnMgb3IgZmlsZXMgYW5kIG90aGVyIGZlYXR1cmVzIGxpa2UgU01TIG1lc3NhZ2luZyBhbmQgcmVtb3RlIGNvbnRyb2wuIFRoZSBLREUgQ29ubmVjdCB0ZWFtIGhhcyBhcHBsaWNhdGlvbnMgZm9yIExpbnV4LCBCU0QsIEFuZHJvaWQsIFNhaWxmaXNoIGFuZCBXaW5kb3dzLlxuXG5QbGVhc2UgcmVwb3J0IGlzc3VlcyBvbiBHaXRodWIhIiwKICAibmFtZSI6ICJHU0Nvbm5lY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vR1NDb25uZWN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1nc2Nvbm5lY3Qvd2lraSIsCiAgInV1aWQiOiAiZ3Njb25uZWN0QGFuZHlob2xtZXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ3Cn0="}, "41": {"version": "49", "sha256": "15dh5qn9bmizgq9mcbk7nbja2arnc1bd9fvkkvhqm4kf4zlzf018", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdTQ29ubmVjdCBpcyBhIGNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIEtERSBDb25uZWN0IGVzcGVjaWFsbHkgZm9yIEdOT01FIFNoZWxsIHdpdGggTmF1dGlsdXMsIENocm9tZSBhbmQgRmlyZWZveCBpbnRlZ3JhdGlvbi4gSXQgZG9lcyBub3QgcmVseSBvbiB0aGUgS0RFIENvbm5lY3QgZGVza3RvcCBhcHBsaWNhdGlvbiBhbmQgd2lsbCBub3Qgd29yayB3aXRoIGl0IGluc3RhbGxlZC5cblxuS0RFIENvbm5lY3QgYWxsb3dzIGRldmljZXMgdG8gc2VjdXJlbHkgc2hhcmUgY29udGVudCBsaWtlIG5vdGlmaWNhdGlvbnMgb3IgZmlsZXMgYW5kIG90aGVyIGZlYXR1cmVzIGxpa2UgU01TIG1lc3NhZ2luZyBhbmQgcmVtb3RlIGNvbnRyb2wuIFRoZSBLREUgQ29ubmVjdCB0ZWFtIGhhcyBhcHBsaWNhdGlvbnMgZm9yIExpbnV4LCBCU0QsIEFuZHJvaWQsIFNhaWxmaXNoIGFuZCBXaW5kb3dzLlxuXG5QbGVhc2UgcmVwb3J0IGlzc3VlcyBvbiBHaXRodWIhIiwKICAibmFtZSI6ICJHU0Nvbm5lY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vR1NDb25uZWN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1nc2Nvbm5lY3Qvd2lraSIsCiAgInV1aWQiOiAiZ3Njb25uZWN0QGFuZHlob2xtZXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ5Cn0="}, "42": {"version": "50", "sha256": "1px9dm4zrn79zgvdc05mppi3jh09sjmkw07pbxrb8yhix3lhzal4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdTQ29ubmVjdCBpcyBhIGNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIEtERSBDb25uZWN0IGVzcGVjaWFsbHkgZm9yIEdOT01FIFNoZWxsIHdpdGggTmF1dGlsdXMsIENocm9tZSBhbmQgRmlyZWZveCBpbnRlZ3JhdGlvbi4gSXQgZG9lcyBub3QgcmVseSBvbiB0aGUgS0RFIENvbm5lY3QgZGVza3RvcCBhcHBsaWNhdGlvbiBhbmQgd2lsbCBub3Qgd29yayB3aXRoIGl0IGluc3RhbGxlZC5cblxuS0RFIENvbm5lY3QgYWxsb3dzIGRldmljZXMgdG8gc2VjdXJlbHkgc2hhcmUgY29udGVudCBsaWtlIG5vdGlmaWNhdGlvbnMgb3IgZmlsZXMgYW5kIG90aGVyIGZlYXR1cmVzIGxpa2UgU01TIG1lc3NhZ2luZyBhbmQgcmVtb3RlIGNvbnRyb2wuIFRoZSBLREUgQ29ubmVjdCB0ZWFtIGhhcyBhcHBsaWNhdGlvbnMgZm9yIExpbnV4LCBCU0QsIEFuZHJvaWQsIFNhaWxmaXNoIGFuZCBXaW5kb3dzLlxuXG5QbGVhc2UgcmVwb3J0IGlzc3VlcyBvbiBHaXRodWIhIiwKICAibmFtZSI6ICJHU0Nvbm5lY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vR1NDb25uZWN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1nc2Nvbm5lY3Qvd2lraSIsCiAgInV1aWQiOiAiZ3Njb25uZWN0QGFuZHlob2xtZXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUwCn0="}}}
 , {"uuid": "nvidiautil@ethanwharris", "name": "NVIDIA GPU Stats Tool", "pname": "nvidia-gpu-stats-tool", "description": "Shows NVIDIA GPU stats in the toolbar. Requires nvidia-settings or nvidia-smi. Includes Bumblebee support.", "link": "https://extensions.gnome.org/extension/1320/nvidia-gpu-stats-tool/", "shell_version_map": {"38": {"version": "8", "sha256": "12yi2kcq2rm1ddb8djjlffvk6dhpfd996wjhwdf4jch1r85r8a30", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXRoYW53aGFycmlzL2dub21lLW52aWRpYS1leHRlbnNpb24iLAogICJ1dWlkIjogIm52aWRpYXV0aWxAZXRoYW53aGFycmlzIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "pause-night-light@tijnschuurmans.nl", "name": "Pause Night Light", "pname": "pause-night-light", "description": "Disable Night Light for 10 seconds. This short interruption allows you to scan a colour code (e.g. Crontosign) from your screen.", "link": "https://extensions.gnome.org/extension/1327/pause-night-light/", "shell_version_map": {"40": {"version": "8", "sha256": "1j4yywvmwplbyjjwp79rxmfgsf7kv67v0d9rhbg6bnqw04bq91ki", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgTmlnaHQgTGlnaHQgZm9yIDEwIHNlY29uZHMuIFRoaXMgc2hvcnQgaW50ZXJydXB0aW9uIGFsbG93cyB5b3UgdG8gc2NhbiBhIGNvbG91ciBjb2RlIChlLmcuIENyb250b3NpZ24pIGZyb20geW91ciBzY3JlZW4uIiwKICAibmFtZSI6ICJQYXVzZSBOaWdodCBMaWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Rpam4vcGF1c2UtbmlnaHQtbGlnaHQiLAogICJ1dWlkIjogInBhdXNlLW5pZ2h0LWxpZ2h0QHRpam5zY2h1dXJtYW5zLm5sIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "disableworkspaceanim@owilliams.mixxx.org", "name": "Disable Workspace Switch Animation", "pname": "disable-workspace-switch-animation", "description": "Makes switching between workspaces instant without disabling other animations", "link": "https://extensions.gnome.org/extension/1328/disable-workspace-switch-animation/", "shell_version_map": {"38": {"version": "4", "sha256": "0yy5yddzaswfl5yv19layls3g2nwfj47x5zg131f43y7abgp7z4l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHN3aXRjaGluZyBiZXR3ZWVuIHdvcmtzcGFjZXMgaW5zdGFudCB3aXRob3V0IGRpc2FibGluZyBvdGhlciBhbmltYXRpb25zIiwKICAibmFtZSI6ICJEaXNhYmxlIFdvcmtzcGFjZSBTd2l0Y2ggQW5pbWF0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImRpc2FibGV3b3Jrc3BhY2VhbmltQG93aWxsaWFtcy5taXh4eC5vcmciLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "5", "sha256": "1w7gxcgz5729vwfw3ih2ha4y3r07cgqh1kykqfnrhraqrjd4zvfc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHN3aXRjaGluZyBiZXR3ZWVuIHdvcmtzcGFjZXMgaW5zdGFudCB3aXRob3V0IGRpc2FibGluZyBvdGhlciBhbmltYXRpb25zIiwKICAibmFtZSI6ICJEaXNhYmxlIFdvcmtzcGFjZSBTd2l0Y2ggQW5pbWF0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZGlzYWJsZXdvcmtzcGFjZWFuaW1Ab3dpbGxpYW1zLm1peHh4Lm9yZyIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "1w7gxcgz5729vwfw3ih2ha4y3r07cgqh1kykqfnrhraqrjd4zvfc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHN3aXRjaGluZyBiZXR3ZWVuIHdvcmtzcGFjZXMgaW5zdGFudCB3aXRob3V0IGRpc2FibGluZyBvdGhlciBhbmltYXRpb25zIiwKICAibmFtZSI6ICJEaXNhYmxlIFdvcmtzcGFjZSBTd2l0Y2ggQW5pbWF0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZGlzYWJsZXdvcmtzcGFjZWFuaW1Ab3dpbGxpYW1zLm1peHh4Lm9yZyIsCiAgInZlcnNpb24iOiA1Cn0="}}}
-, {"uuid": "app-switcher_current_workspace_first@fawtytoo", "name": "App-Switcher Current Workspace First", "pname": "app-switcher-current-workspace-first", "description": "App-Switcher modification that sorts applications by current workspace first. It separates apps into 2 separate icons if the app also has windows on other workspaces.\n\nNOTE: The App Switcher is invoked by a keyboard shortcut which you can set in Gnome Settings > Navigation > Switch applications", "link": "https://extensions.gnome.org/extension/1329/app-switcher-current-workspace-first/", "shell_version_map": {"38": {"version": "12", "sha256": "0d1kjgi3f08msm900kf27y5vv1z8mbiy5ansh23gi60bj8bnalij", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcC1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyBhcHBsaWNhdGlvbnMgYnkgY3VycmVudCB3b3Jrc3BhY2UgZmlyc3QuIEl0IHNlcGFyYXRlcyBhcHBzIGludG8gMiBzZXBhcmF0ZSBpY29ucyBpZiB0aGUgYXBwIGFsc28gaGFzIHdpbmRvd3Mgb24gb3RoZXIgd29ya3NwYWNlcy5cblxuTk9URTogVGhlIEFwcCBTd2l0Y2hlciBpcyBpbnZva2VkIGJ5IGEga2V5Ym9hcmQgc2hvcnRjdXQgd2hpY2ggeW91IGNhbiBzZXQgaW4gR25vbWUgU2V0dGluZ3MgPiBOYXZpZ2F0aW9uID4gU3dpdGNoIGFwcGxpY2F0aW9ucyIsCiAgIm5hbWUiOiAiQXBwLVN3aXRjaGVyIEN1cnJlbnQgV29ya3NwYWNlIEZpcnN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mYXd0eXRvby9BcHAtU3dpdGNoZXItQ3VycmVudC1Xb3Jrc3BhY2UtRmlyc3QiLAogICJ1dWlkIjogImFwcC1zd2l0Y2hlcl9jdXJyZW50X3dvcmtzcGFjZV9maXJzdEBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "12", "sha256": "0d1kjgi3f08msm900kf27y5vv1z8mbiy5ansh23gi60bj8bnalij", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcC1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyBhcHBsaWNhdGlvbnMgYnkgY3VycmVudCB3b3Jrc3BhY2UgZmlyc3QuIEl0IHNlcGFyYXRlcyBhcHBzIGludG8gMiBzZXBhcmF0ZSBpY29ucyBpZiB0aGUgYXBwIGFsc28gaGFzIHdpbmRvd3Mgb24gb3RoZXIgd29ya3NwYWNlcy5cblxuTk9URTogVGhlIEFwcCBTd2l0Y2hlciBpcyBpbnZva2VkIGJ5IGEga2V5Ym9hcmQgc2hvcnRjdXQgd2hpY2ggeW91IGNhbiBzZXQgaW4gR25vbWUgU2V0dGluZ3MgPiBOYXZpZ2F0aW9uID4gU3dpdGNoIGFwcGxpY2F0aW9ucyIsCiAgIm5hbWUiOiAiQXBwLVN3aXRjaGVyIEN1cnJlbnQgV29ya3NwYWNlIEZpcnN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mYXd0eXRvby9BcHAtU3dpdGNoZXItQ3VycmVudC1Xb3Jrc3BhY2UtRmlyc3QiLAogICJ1dWlkIjogImFwcC1zd2l0Y2hlcl9jdXJyZW50X3dvcmtzcGFjZV9maXJzdEBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxMgp9"}, "41": {"version": "12", "sha256": "0d1kjgi3f08msm900kf27y5vv1z8mbiy5ansh23gi60bj8bnalij", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcC1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyBhcHBsaWNhdGlvbnMgYnkgY3VycmVudCB3b3Jrc3BhY2UgZmlyc3QuIEl0IHNlcGFyYXRlcyBhcHBzIGludG8gMiBzZXBhcmF0ZSBpY29ucyBpZiB0aGUgYXBwIGFsc28gaGFzIHdpbmRvd3Mgb24gb3RoZXIgd29ya3NwYWNlcy5cblxuTk9URTogVGhlIEFwcCBTd2l0Y2hlciBpcyBpbnZva2VkIGJ5IGEga2V5Ym9hcmQgc2hvcnRjdXQgd2hpY2ggeW91IGNhbiBzZXQgaW4gR25vbWUgU2V0dGluZ3MgPiBOYXZpZ2F0aW9uID4gU3dpdGNoIGFwcGxpY2F0aW9ucyIsCiAgIm5hbWUiOiAiQXBwLVN3aXRjaGVyIEN1cnJlbnQgV29ya3NwYWNlIEZpcnN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mYXd0eXRvby9BcHAtU3dpdGNoZXItQ3VycmVudC1Xb3Jrc3BhY2UtRmlyc3QiLAogICJ1dWlkIjogImFwcC1zd2l0Y2hlcl9jdXJyZW50X3dvcmtzcGFjZV9maXJzdEBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxMgp9"}}}
-, {"uuid": "window-switcher_current_workspace_first@fawtytoo", "name": "Window-Switcher Current Workspace First", "pname": "window-switcher-current-workspace-first", "description": "Window-Switcher modification that sorts windows by current workspace first. The other windows are added according to their workspace.\n\nNOTE: The Window Switcher is invoked by a keyboard shortcut which you can set in Gnome Settings > Navigation > Switch windows", "link": "https://extensions.gnome.org/extension/1330/window-switcher-current-workspace-first/", "shell_version_map": {"38": {"version": "14", "sha256": "1rfdrcqxrp85cn65xnrg5ajcknhxsy2hpsygz0y15rld7hwqnsiy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpbmRvdy1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyB3aW5kb3dzIGJ5IGN1cnJlbnQgd29ya3NwYWNlIGZpcnN0LiBUaGUgb3RoZXIgd2luZG93cyBhcmUgYWRkZWQgYWNjb3JkaW5nIHRvIHRoZWlyIHdvcmtzcGFjZS5cblxuTk9URTogVGhlIFdpbmRvdyBTd2l0Y2hlciBpcyBpbnZva2VkIGJ5IGEga2V5Ym9hcmQgc2hvcnRjdXQgd2hpY2ggeW91IGNhbiBzZXQgaW4gR25vbWUgU2V0dGluZ3MgPiBOYXZpZ2F0aW9uID4gU3dpdGNoIHdpbmRvd3MiLAogICJuYW1lIjogIldpbmRvdy1Td2l0Y2hlciBDdXJyZW50IFdvcmtzcGFjZSBGaXJzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmF3dHl0b28vV2luZG93LVN3aXRjaGVyLUN1cnJlbnQtV29ya3NwYWNlLUZpcnN0IiwKICAidXVpZCI6ICJ3aW5kb3ctc3dpdGNoZXJfY3VycmVudF93b3Jrc3BhY2VfZmlyc3RAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "14", "sha256": "1rfdrcqxrp85cn65xnrg5ajcknhxsy2hpsygz0y15rld7hwqnsiy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpbmRvdy1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyB3aW5kb3dzIGJ5IGN1cnJlbnQgd29ya3NwYWNlIGZpcnN0LiBUaGUgb3RoZXIgd2luZG93cyBhcmUgYWRkZWQgYWNjb3JkaW5nIHRvIHRoZWlyIHdvcmtzcGFjZS5cblxuTk9URTogVGhlIFdpbmRvdyBTd2l0Y2hlciBpcyBpbnZva2VkIGJ5IGEga2V5Ym9hcmQgc2hvcnRjdXQgd2hpY2ggeW91IGNhbiBzZXQgaW4gR25vbWUgU2V0dGluZ3MgPiBOYXZpZ2F0aW9uID4gU3dpdGNoIHdpbmRvd3MiLAogICJuYW1lIjogIldpbmRvdy1Td2l0Y2hlciBDdXJyZW50IFdvcmtzcGFjZSBGaXJzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmF3dHl0b28vV2luZG93LVN3aXRjaGVyLUN1cnJlbnQtV29ya3NwYWNlLUZpcnN0IiwKICAidXVpZCI6ICJ3aW5kb3ctc3dpdGNoZXJfY3VycmVudF93b3Jrc3BhY2VfZmlyc3RAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "1rfdrcqxrp85cn65xnrg5ajcknhxsy2hpsygz0y15rld7hwqnsiy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpbmRvdy1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyB3aW5kb3dzIGJ5IGN1cnJlbnQgd29ya3NwYWNlIGZpcnN0LiBUaGUgb3RoZXIgd2luZG93cyBhcmUgYWRkZWQgYWNjb3JkaW5nIHRvIHRoZWlyIHdvcmtzcGFjZS5cblxuTk9URTogVGhlIFdpbmRvdyBTd2l0Y2hlciBpcyBpbnZva2VkIGJ5IGEga2V5Ym9hcmQgc2hvcnRjdXQgd2hpY2ggeW91IGNhbiBzZXQgaW4gR25vbWUgU2V0dGluZ3MgPiBOYXZpZ2F0aW9uID4gU3dpdGNoIHdpbmRvd3MiLAogICJuYW1lIjogIldpbmRvdy1Td2l0Y2hlciBDdXJyZW50IFdvcmtzcGFjZSBGaXJzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmF3dHl0b28vV2luZG93LVN3aXRjaGVyLUN1cnJlbnQtV29ya3NwYWNlLUZpcnN0IiwKICAidXVpZCI6ICJ3aW5kb3ctc3dpdGNoZXJfY3VycmVudF93b3Jrc3BhY2VfZmlyc3RAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
-, {"uuid": "run-or-raise@edvard.cz", "name": "Run or raise", "pname": "run-or-raise", "description": "Launch or focus the window or define custom shortcuts in a text file", "link": "https://extensions.gnome.org/extension/1336/run-or-raise/", "shell_version_map": {"38": {"version": "16", "sha256": "0v7w4i849s9iz61wrnbz19q96xdbx4642r2ga02mx0zpq96grjvs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxhdW5jaCBvciBmb2N1cyB0aGUgd2luZG93IG9yIGRlZmluZSBjdXN0b20gc2hvcnRjdXRzIGluIGEgdGV4dCBmaWxlIiwKICAiZGlzYWJsZS1leHRlbnNpb24tdmVyc2lvbi12YWxpZGF0aW9uIjogdHJ1ZSwKICAibmFtZSI6ICJSdW4gb3IgcmFpc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucnVuLW9yLXJhaXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjMyLjEiLAogICAgIjMuMzYiLAogICAgIjMuMzguMSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ1otTklDL3J1bi1vci1yYWlzZSIsCiAgInV1aWQiOiAicnVuLW9yLXJhaXNlQGVkdmFyZC5jeiIsCiAgInZlcnNpb24iOiAxNgp9"}, "40": {"version": "16", "sha256": "0v7w4i849s9iz61wrnbz19q96xdbx4642r2ga02mx0zpq96grjvs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxhdW5jaCBvciBmb2N1cyB0aGUgd2luZG93IG9yIGRlZmluZSBjdXN0b20gc2hvcnRjdXRzIGluIGEgdGV4dCBmaWxlIiwKICAiZGlzYWJsZS1leHRlbnNpb24tdmVyc2lvbi12YWxpZGF0aW9uIjogdHJ1ZSwKICAibmFtZSI6ICJSdW4gb3IgcmFpc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucnVuLW9yLXJhaXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjMyLjEiLAogICAgIjMuMzYiLAogICAgIjMuMzguMSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ1otTklDL3J1bi1vci1yYWlzZSIsCiAgInV1aWQiOiAicnVuLW9yLXJhaXNlQGVkdmFyZC5jeiIsCiAgInZlcnNpb24iOiAxNgp9"}, "41": {"version": "16", "sha256": "0v7w4i849s9iz61wrnbz19q96xdbx4642r2ga02mx0zpq96grjvs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxhdW5jaCBvciBmb2N1cyB0aGUgd2luZG93IG9yIGRlZmluZSBjdXN0b20gc2hvcnRjdXRzIGluIGEgdGV4dCBmaWxlIiwKICAiZGlzYWJsZS1leHRlbnNpb24tdmVyc2lvbi12YWxpZGF0aW9uIjogdHJ1ZSwKICAibmFtZSI6ICJSdW4gb3IgcmFpc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucnVuLW9yLXJhaXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjMyLjEiLAogICAgIjMuMzYiLAogICAgIjMuMzguMSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ1otTklDL3J1bi1vci1yYWlzZSIsCiAgInV1aWQiOiAicnVuLW9yLXJhaXNlQGVkdmFyZC5jeiIsCiAgInZlcnNpb24iOiAxNgp9"}}}
-, {"uuid": "show_applications_instead_of_overview@fawtytoo", "name": "Show Applications Instead Of Workspaces", "pname": "show-applications-instead-of-overview", "description": "The Overview will show Applications instead of Workspaces when invoked.", "link": "https://extensions.gnome.org/extension/1337/show-applications-instead-of-overview/", "shell_version_map": {"38": {"version": "7", "sha256": "1vx5hakip909pp4drh5rq3abcmhzal9g918dsh7gcgxsp2mdv08z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBPdmVydmlldyB3aWxsIHNob3cgQXBwbGljYXRpb25zIGluc3RlYWQgb2YgV29ya3NwYWNlcyB3aGVuIGludm9rZWQuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9ucyBJbnN0ZWFkIE9mIFdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJzaG93X2FwcGxpY2F0aW9uc19pbnN0ZWFkX29mX292ZXJ2aWV3QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "1vx5hakip909pp4drh5rq3abcmhzal9g918dsh7gcgxsp2mdv08z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBPdmVydmlldyB3aWxsIHNob3cgQXBwbGljYXRpb25zIGluc3RlYWQgb2YgV29ya3NwYWNlcyB3aGVuIGludm9rZWQuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9ucyBJbnN0ZWFkIE9mIFdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJzaG93X2FwcGxpY2F0aW9uc19pbnN0ZWFkX29mX292ZXJ2aWV3QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "41": {"version": "7", "sha256": "1vx5hakip909pp4drh5rq3abcmhzal9g918dsh7gcgxsp2mdv08z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBPdmVydmlldyB3aWxsIHNob3cgQXBwbGljYXRpb25zIGluc3RlYWQgb2YgV29ya3NwYWNlcyB3aGVuIGludm9rZWQuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9ucyBJbnN0ZWFkIE9mIFdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJzaG93X2FwcGxpY2F0aW9uc19pbnN0ZWFkX29mX292ZXJ2aWV3QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "app-switcher_current_workspace_first@fawtytoo", "name": "App-Switcher Current Workspace First", "pname": "app-switcher-current-workspace-first", "description": "App-Switcher modification that sorts applications by current workspace first. It separates apps into 2 separate icons if the app also has windows on other workspaces.\n\nNOTE: The App Switcher is invoked by a keyboard shortcut which you can set in Gnome Settings > Navigation > Switch applications", "link": "https://extensions.gnome.org/extension/1329/app-switcher-current-workspace-first/", "shell_version_map": {"38": {"version": "13", "sha256": "0wjjk3fr5j3hkr4zk6wxhhilpylcz6jb830halyddf6b52ssjhyh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcC1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyBhcHBsaWNhdGlvbnMgYnkgY3VycmVudCB3b3Jrc3BhY2UgZmlyc3QuIEl0IHNlcGFyYXRlcyBhcHBzIGludG8gMiBzZXBhcmF0ZSBpY29ucyBpZiB0aGUgYXBwIGFsc28gaGFzIHdpbmRvd3Mgb24gb3RoZXIgd29ya3NwYWNlcy5cblxuTk9URTogVGhlIEFwcCBTd2l0Y2hlciBpcyBpbnZva2VkIGJ5IGEga2V5Ym9hcmQgc2hvcnRjdXQgd2hpY2ggeW91IGNhbiBzZXQgaW4gR25vbWUgU2V0dGluZ3MgPiBOYXZpZ2F0aW9uID4gU3dpdGNoIGFwcGxpY2F0aW9ucyIsCiAgIm5hbWUiOiAiQXBwLVN3aXRjaGVyIEN1cnJlbnQgV29ya3NwYWNlIEZpcnN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmF3dHl0b28vQXBwLVN3aXRjaGVyLUN1cnJlbnQtV29ya3NwYWNlLUZpcnN0IiwKICAidXVpZCI6ICJhcHAtc3dpdGNoZXJfY3VycmVudF93b3Jrc3BhY2VfZmlyc3RAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "40": {"version": "13", "sha256": "0wjjk3fr5j3hkr4zk6wxhhilpylcz6jb830halyddf6b52ssjhyh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcC1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyBhcHBsaWNhdGlvbnMgYnkgY3VycmVudCB3b3Jrc3BhY2UgZmlyc3QuIEl0IHNlcGFyYXRlcyBhcHBzIGludG8gMiBzZXBhcmF0ZSBpY29ucyBpZiB0aGUgYXBwIGFsc28gaGFzIHdpbmRvd3Mgb24gb3RoZXIgd29ya3NwYWNlcy5cblxuTk9URTogVGhlIEFwcCBTd2l0Y2hlciBpcyBpbnZva2VkIGJ5IGEga2V5Ym9hcmQgc2hvcnRjdXQgd2hpY2ggeW91IGNhbiBzZXQgaW4gR25vbWUgU2V0dGluZ3MgPiBOYXZpZ2F0aW9uID4gU3dpdGNoIGFwcGxpY2F0aW9ucyIsCiAgIm5hbWUiOiAiQXBwLVN3aXRjaGVyIEN1cnJlbnQgV29ya3NwYWNlIEZpcnN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmF3dHl0b28vQXBwLVN3aXRjaGVyLUN1cnJlbnQtV29ya3NwYWNlLUZpcnN0IiwKICAidXVpZCI6ICJhcHAtc3dpdGNoZXJfY3VycmVudF93b3Jrc3BhY2VfZmlyc3RAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "41": {"version": "13", "sha256": "0wjjk3fr5j3hkr4zk6wxhhilpylcz6jb830halyddf6b52ssjhyh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcC1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyBhcHBsaWNhdGlvbnMgYnkgY3VycmVudCB3b3Jrc3BhY2UgZmlyc3QuIEl0IHNlcGFyYXRlcyBhcHBzIGludG8gMiBzZXBhcmF0ZSBpY29ucyBpZiB0aGUgYXBwIGFsc28gaGFzIHdpbmRvd3Mgb24gb3RoZXIgd29ya3NwYWNlcy5cblxuTk9URTogVGhlIEFwcCBTd2l0Y2hlciBpcyBpbnZva2VkIGJ5IGEga2V5Ym9hcmQgc2hvcnRjdXQgd2hpY2ggeW91IGNhbiBzZXQgaW4gR25vbWUgU2V0dGluZ3MgPiBOYXZpZ2F0aW9uID4gU3dpdGNoIGFwcGxpY2F0aW9ucyIsCiAgIm5hbWUiOiAiQXBwLVN3aXRjaGVyIEN1cnJlbnQgV29ya3NwYWNlIEZpcnN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmF3dHl0b28vQXBwLVN3aXRjaGVyLUN1cnJlbnQtV29ya3NwYWNlLUZpcnN0IiwKICAidXVpZCI6ICJhcHAtc3dpdGNoZXJfY3VycmVudF93b3Jrc3BhY2VfZmlyc3RAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "42": {"version": "13", "sha256": "0wjjk3fr5j3hkr4zk6wxhhilpylcz6jb830halyddf6b52ssjhyh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcC1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyBhcHBsaWNhdGlvbnMgYnkgY3VycmVudCB3b3Jrc3BhY2UgZmlyc3QuIEl0IHNlcGFyYXRlcyBhcHBzIGludG8gMiBzZXBhcmF0ZSBpY29ucyBpZiB0aGUgYXBwIGFsc28gaGFzIHdpbmRvd3Mgb24gb3RoZXIgd29ya3NwYWNlcy5cblxuTk9URTogVGhlIEFwcCBTd2l0Y2hlciBpcyBpbnZva2VkIGJ5IGEga2V5Ym9hcmQgc2hvcnRjdXQgd2hpY2ggeW91IGNhbiBzZXQgaW4gR25vbWUgU2V0dGluZ3MgPiBOYXZpZ2F0aW9uID4gU3dpdGNoIGFwcGxpY2F0aW9ucyIsCiAgIm5hbWUiOiAiQXBwLVN3aXRjaGVyIEN1cnJlbnQgV29ya3NwYWNlIEZpcnN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmF3dHl0b28vQXBwLVN3aXRjaGVyLUN1cnJlbnQtV29ya3NwYWNlLUZpcnN0IiwKICAidXVpZCI6ICJhcHAtc3dpdGNoZXJfY3VycmVudF93b3Jrc3BhY2VfZmlyc3RAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}}}
+, {"uuid": "window-switcher_current_workspace_first@fawtytoo", "name": "Window-Switcher Current Workspace First", "pname": "window-switcher-current-workspace-first", "description": "Window-Switcher modification that sorts windows by current workspace first. The other windows are added according to their workspace.\n\nNOTE: The Window Switcher is invoked by a keyboard shortcut which you can set in Gnome Settings > Navigation > Switch windows", "link": "https://extensions.gnome.org/extension/1330/window-switcher-current-workspace-first/", "shell_version_map": {"38": {"version": "15", "sha256": "1fblvd5g8bsn4qmbnl2dyinh8l1v0p6yrc64ii9z3njy7ja79d7p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpbmRvdy1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyB3aW5kb3dzIGJ5IGN1cnJlbnQgd29ya3NwYWNlIGZpcnN0LiBUaGUgb3RoZXIgd2luZG93cyBhcmUgYWRkZWQgYWNjb3JkaW5nIHRvIHRoZWlyIHdvcmtzcGFjZS5cblxuTk9URTogVGhlIFdpbmRvdyBTd2l0Y2hlciBpcyBpbnZva2VkIGJ5IGEga2V5Ym9hcmQgc2hvcnRjdXQgd2hpY2ggeW91IGNhbiBzZXQgaW4gR25vbWUgU2V0dGluZ3MgPiBOYXZpZ2F0aW9uID4gU3dpdGNoIHdpbmRvd3MiLAogICJuYW1lIjogIldpbmRvdy1Td2l0Y2hlciBDdXJyZW50IFdvcmtzcGFjZSBGaXJzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Zhd3R5dG9vL1dpbmRvdy1Td2l0Y2hlci1DdXJyZW50LVdvcmtzcGFjZS1GaXJzdCIsCiAgInV1aWQiOiAid2luZG93LXN3aXRjaGVyX2N1cnJlbnRfd29ya3NwYWNlX2ZpcnN0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDE1Cn0="}, "40": {"version": "15", "sha256": "1fblvd5g8bsn4qmbnl2dyinh8l1v0p6yrc64ii9z3njy7ja79d7p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpbmRvdy1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyB3aW5kb3dzIGJ5IGN1cnJlbnQgd29ya3NwYWNlIGZpcnN0LiBUaGUgb3RoZXIgd2luZG93cyBhcmUgYWRkZWQgYWNjb3JkaW5nIHRvIHRoZWlyIHdvcmtzcGFjZS5cblxuTk9URTogVGhlIFdpbmRvdyBTd2l0Y2hlciBpcyBpbnZva2VkIGJ5IGEga2V5Ym9hcmQgc2hvcnRjdXQgd2hpY2ggeW91IGNhbiBzZXQgaW4gR25vbWUgU2V0dGluZ3MgPiBOYXZpZ2F0aW9uID4gU3dpdGNoIHdpbmRvd3MiLAogICJuYW1lIjogIldpbmRvdy1Td2l0Y2hlciBDdXJyZW50IFdvcmtzcGFjZSBGaXJzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Zhd3R5dG9vL1dpbmRvdy1Td2l0Y2hlci1DdXJyZW50LVdvcmtzcGFjZS1GaXJzdCIsCiAgInV1aWQiOiAid2luZG93LXN3aXRjaGVyX2N1cnJlbnRfd29ya3NwYWNlX2ZpcnN0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDE1Cn0="}, "41": {"version": "15", "sha256": "1fblvd5g8bsn4qmbnl2dyinh8l1v0p6yrc64ii9z3njy7ja79d7p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpbmRvdy1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyB3aW5kb3dzIGJ5IGN1cnJlbnQgd29ya3NwYWNlIGZpcnN0LiBUaGUgb3RoZXIgd2luZG93cyBhcmUgYWRkZWQgYWNjb3JkaW5nIHRvIHRoZWlyIHdvcmtzcGFjZS5cblxuTk9URTogVGhlIFdpbmRvdyBTd2l0Y2hlciBpcyBpbnZva2VkIGJ5IGEga2V5Ym9hcmQgc2hvcnRjdXQgd2hpY2ggeW91IGNhbiBzZXQgaW4gR25vbWUgU2V0dGluZ3MgPiBOYXZpZ2F0aW9uID4gU3dpdGNoIHdpbmRvd3MiLAogICJuYW1lIjogIldpbmRvdy1Td2l0Y2hlciBDdXJyZW50IFdvcmtzcGFjZSBGaXJzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Zhd3R5dG9vL1dpbmRvdy1Td2l0Y2hlci1DdXJyZW50LVdvcmtzcGFjZS1GaXJzdCIsCiAgInV1aWQiOiAid2luZG93LXN3aXRjaGVyX2N1cnJlbnRfd29ya3NwYWNlX2ZpcnN0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDE1Cn0="}, "42": {"version": "15", "sha256": "1fblvd5g8bsn4qmbnl2dyinh8l1v0p6yrc64ii9z3njy7ja79d7p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpbmRvdy1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyB3aW5kb3dzIGJ5IGN1cnJlbnQgd29ya3NwYWNlIGZpcnN0LiBUaGUgb3RoZXIgd2luZG93cyBhcmUgYWRkZWQgYWNjb3JkaW5nIHRvIHRoZWlyIHdvcmtzcGFjZS5cblxuTk9URTogVGhlIFdpbmRvdyBTd2l0Y2hlciBpcyBpbnZva2VkIGJ5IGEga2V5Ym9hcmQgc2hvcnRjdXQgd2hpY2ggeW91IGNhbiBzZXQgaW4gR25vbWUgU2V0dGluZ3MgPiBOYXZpZ2F0aW9uID4gU3dpdGNoIHdpbmRvd3MiLAogICJuYW1lIjogIldpbmRvdy1Td2l0Y2hlciBDdXJyZW50IFdvcmtzcGFjZSBGaXJzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Zhd3R5dG9vL1dpbmRvdy1Td2l0Y2hlci1DdXJyZW50LVdvcmtzcGFjZS1GaXJzdCIsCiAgInV1aWQiOiAid2luZG93LXN3aXRjaGVyX2N1cnJlbnRfd29ya3NwYWNlX2ZpcnN0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDE1Cn0="}}}
+, {"uuid": "run-or-raise@edvard.cz", "name": "Run or raise", "pname": "run-or-raise", "description": "Launch or focus the window or define custom shortcuts in a text file", "link": "https://extensions.gnome.org/extension/1336/run-or-raise/", "shell_version_map": {"38": {"version": "17", "sha256": "0gy12njkdz697zc8mnwj453r6806rq11c300wv47xxaqd5mhiz9j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxhdW5jaCBvciBmb2N1cyB0aGUgd2luZG93IG9yIGRlZmluZSBjdXN0b20gc2hvcnRjdXRzIGluIGEgdGV4dCBmaWxlIiwKICAiZGlzYWJsZS1leHRlbnNpb24tdmVyc2lvbi12YWxpZGF0aW9uIjogdHJ1ZSwKICAibmFtZSI6ICJSdW4gb3IgcmFpc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucnVuLW9yLXJhaXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjMyLjEiLAogICAgIjMuMzYiLAogICAgIjMuMzguMSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NaLU5JQy9ydW4tb3ItcmFpc2UiLAogICJ1dWlkIjogInJ1bi1vci1yYWlzZUBlZHZhcmQuY3oiLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "40": {"version": "23", "sha256": "0krj6yj68mqdjxr6zrdr9s8xyqcyf2c82xcnnddb2w42rcmq7n75", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxhdW5jaCBvciBmb2N1cyB0aGUgd2luZG93IG9yIGRlZmluZSBjdXN0b20gc2hvcnRjdXRzIGluIGEgdGV4dCBmaWxlIiwKICAiZGlzYWJsZS1leHRlbnNpb24tdmVyc2lvbi12YWxpZGF0aW9uIjogdHJ1ZSwKICAibmFtZSI6ICJSdW4gb3IgcmFpc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucnVuLW9yLXJhaXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ1otTklDL3J1bi1vci1yYWlzZSIsCiAgInV1aWQiOiAicnVuLW9yLXJhaXNlQGVkdmFyZC5jeiIsCiAgInZlcnNpb24iOiAyMwp9"}, "41": {"version": "23", "sha256": "0krj6yj68mqdjxr6zrdr9s8xyqcyf2c82xcnnddb2w42rcmq7n75", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxhdW5jaCBvciBmb2N1cyB0aGUgd2luZG93IG9yIGRlZmluZSBjdXN0b20gc2hvcnRjdXRzIGluIGEgdGV4dCBmaWxlIiwKICAiZGlzYWJsZS1leHRlbnNpb24tdmVyc2lvbi12YWxpZGF0aW9uIjogdHJ1ZSwKICAibmFtZSI6ICJSdW4gb3IgcmFpc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucnVuLW9yLXJhaXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ1otTklDL3J1bi1vci1yYWlzZSIsCiAgInV1aWQiOiAicnVuLW9yLXJhaXNlQGVkdmFyZC5jeiIsCiAgInZlcnNpb24iOiAyMwp9"}, "42": {"version": "23", "sha256": "0krj6yj68mqdjxr6zrdr9s8xyqcyf2c82xcnnddb2w42rcmq7n75", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxhdW5jaCBvciBmb2N1cyB0aGUgd2luZG93IG9yIGRlZmluZSBjdXN0b20gc2hvcnRjdXRzIGluIGEgdGV4dCBmaWxlIiwKICAiZGlzYWJsZS1leHRlbnNpb24tdmVyc2lvbi12YWxpZGF0aW9uIjogdHJ1ZSwKICAibmFtZSI6ICJSdW4gb3IgcmFpc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucnVuLW9yLXJhaXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ1otTklDL3J1bi1vci1yYWlzZSIsCiAgInV1aWQiOiAicnVuLW9yLXJhaXNlQGVkdmFyZC5jeiIsCiAgInZlcnNpb24iOiAyMwp9"}}}
+, {"uuid": "show_applications_instead_of_overview@fawtytoo", "name": "Show Applications Instead Of Workspaces", "pname": "show-applications-instead-of-overview", "description": "The Overview will show Applications instead of Workspaces when invoked.", "link": "https://extensions.gnome.org/extension/1337/show-applications-instead-of-overview/", "shell_version_map": {"38": {"version": "8", "sha256": "0dj704fq6g8jfl13gkfljyq360s6in77vd61w8ds8azysarmaww3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBPdmVydmlldyB3aWxsIHNob3cgQXBwbGljYXRpb25zIGluc3RlYWQgb2YgV29ya3NwYWNlcyB3aGVuIGludm9rZWQuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9ucyBJbnN0ZWFkIE9mIFdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic2hvd19hcHBsaWNhdGlvbnNfaW5zdGVhZF9vZl9vdmVydmlld0BmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "0dj704fq6g8jfl13gkfljyq360s6in77vd61w8ds8azysarmaww3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBPdmVydmlldyB3aWxsIHNob3cgQXBwbGljYXRpb25zIGluc3RlYWQgb2YgV29ya3NwYWNlcyB3aGVuIGludm9rZWQuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9ucyBJbnN0ZWFkIE9mIFdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic2hvd19hcHBsaWNhdGlvbnNfaW5zdGVhZF9vZl9vdmVydmlld0BmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "0dj704fq6g8jfl13gkfljyq360s6in77vd61w8ds8azysarmaww3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBPdmVydmlldyB3aWxsIHNob3cgQXBwbGljYXRpb25zIGluc3RlYWQgb2YgV29ya3NwYWNlcyB3aGVuIGludm9rZWQuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9ucyBJbnN0ZWFkIE9mIFdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic2hvd19hcHBsaWNhdGlvbnNfaW5zdGVhZF9vZl9vdmVydmlld0BmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA4Cn0="}, "42": {"version": "8", "sha256": "0dj704fq6g8jfl13gkfljyq360s6in77vd61w8ds8azysarmaww3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBPdmVydmlldyB3aWxsIHNob3cgQXBwbGljYXRpb25zIGluc3RlYWQgb2YgV29ya3NwYWNlcyB3aGVuIGludm9rZWQuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9ucyBJbnN0ZWFkIE9mIFdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic2hvd19hcHBsaWNhdGlvbnNfaW5zdGVhZF9vZl9vdmVydmlld0BmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA4Cn0="}}}
 , {"uuid": "hplip-menu@grizzlysmit.smit.id.au", "name": "Alternate Menu for Hplip", "pname": "hplip-menu", "description": "control your hp printers by calling the device manager hp-toolbox, also some useful links\nMotivation: the hp-systray doesn't work reliably under gnome shell\nyou need to have installed hplip in order to use this\nChoice of using a printer icon or a hp_logo.png if it's installed in the same place as mine on Ubuntu\nyou could use symbolic links to fake the path.", "link": "https://extensions.gnome.org/extension/1339/hplip-menu/", "shell_version_map": {"38": {"version": "11", "sha256": "1754xb6mn0jbkizm79kyjwbhyf1yld0jw8blddia9fn4s223j2rs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLiIsCiAgIm5hbWUiOiAiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhwbGlwLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzguMSIsCiAgICAiMy4zOC4yIiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImhwbGlwLW1lbnVAZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInZlcnNpb24iOiAxMQp9"}, "40": {"version": "11", "sha256": "1754xb6mn0jbkizm79kyjwbhyf1yld0jw8blddia9fn4s223j2rs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLiIsCiAgIm5hbWUiOiAiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhwbGlwLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzguMSIsCiAgICAiMy4zOC4yIiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImhwbGlwLW1lbnVAZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInZlcnNpb24iOiAxMQp9"}}}
 , {"uuid": "notes@maestroschan.fr", "name": "Notes", "pname": "notes", "description": "Sticky notes for the GNOME Shell desktop.", "link": "https://extensions.gnome.org/extension/1357/notes/", "shell_version_map": {"38": {"version": "22", "sha256": "0svx60711cphswiigd1sswczk17cjxr7gr3davk4krkhya04llp1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0aWNreSBub3RlcyBmb3IgdGhlIEdOT01FIFNoZWxsIGRlc2t0b3AuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90ZXMtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJOb3RlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3Rlcy1leHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW9zY2hhbnovbm90ZXMtZXh0ZW5zaW9uLWdub21lIiwKICAidXVpZCI6ICJub3Rlc0BtYWVzdHJvc2NoYW4uZnIiLAogICJ2ZXJzaW9uIjogMjIKfQ=="}}}
 , {"uuid": "slinger@gfxmonk.net", "name": "slinger", "pname": "slinger", "description": "Sling windows around efficiently", "link": "https://extensions.gnome.org/extension/1372/slinger/", "shell_version_map": {"40": {"version": "7", "sha256": "1hpzcslqln0yz4kv216z8qqq9639sh1awp6q8c33d7jp11ydwhlj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaW5nIHdpbmRvd3MgYXJvdW5kIGVmZmljaWVudGx5IiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2xpbmdlciIsCiAgIm5hbWUiOiAic2xpbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aW1iZXJ0c29uL3NsaW5nZXIiLAogICJ1dWlkIjogInNsaW5nZXJAZ2Z4bW9uay5uZXQiLAogICJ2ZXJzaW9uIjogNwp9"}}}
@@ -177,15 +177,15 @@
 , {"uuid": "NotificationCounter@coolllsk", "name": "Notification Counter", "pname": "notification-counter", "description": "Shows number of notifications in queue.", "link": "https://extensions.gnome.org/extension/1386/notification-counter/", "shell_version_map": {"40": {"version": "4", "sha256": "0lld50jlnqgrm66030s6djy1gs5wd29l5l2is6mwqzxm8kypxpx7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG51bWJlciBvZiBub3RpZmljYXRpb25zIGluIHF1ZXVlLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIENvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmtyaXphbi9Ob3RpZmljYXRpb25Db3VudGVyIiwKICAidXVpZCI6ICJOb3RpZmljYXRpb25Db3VudGVyQGNvb2xsbHNrIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "you2ber@konkor", "name": "you2ber", "pname": "you2ber", "description": "Gnome Youtube Downloader\n\n Simple helper for youtube-dl project. It allows you to save locally desired media content without any browser extensions. Just copy URL address of a media content to the clipboard and select desired quality profile or custom format for the item in the extension menu to store it.\n * Required the installation of ffmpeg (youtube-dl dependency for media manipulation)\n\nFor more information and how-to see README.md", "link": "https://extensions.gnome.org/extension/1392/you2ber/", "shell_version_map": {"40": {"version": "10", "sha256": "0dx5x22imwagx2j07xnayvd7zgsk7cyby7gh4jl935ndxmdp05fc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFlvdXR1YmUgRG93bmxvYWRlclxuXG4gU2ltcGxlIGhlbHBlciBmb3IgeW91dHViZS1kbCBwcm9qZWN0LiBJdCBhbGxvd3MgeW91IHRvIHNhdmUgbG9jYWxseSBkZXNpcmVkIG1lZGlhIGNvbnRlbnQgd2l0aG91dCBhbnkgYnJvd3NlciBleHRlbnNpb25zLiBKdXN0IGNvcHkgVVJMIGFkZHJlc3Mgb2YgYSBtZWRpYSBjb250ZW50IHRvIHRoZSBjbGlwYm9hcmQgYW5kIHNlbGVjdCBkZXNpcmVkIHF1YWxpdHkgcHJvZmlsZSBvciBjdXN0b20gZm9ybWF0IGZvciB0aGUgaXRlbSBpbiB0aGUgZXh0ZW5zaW9uIG1lbnUgdG8gc3RvcmUgaXQuXG4gKiBSZXF1aXJlZCB0aGUgaW5zdGFsbGF0aW9uIG9mIGZmbXBlZyAoeW91dHViZS1kbCBkZXBlbmRlbmN5IGZvciBtZWRpYSBtYW5pcHVsYXRpb24pXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBob3ctdG8gc2VlIFJFQURNRS5tZCIsCiAgIm5hbWUiOiAieW91MmJlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcua29ua29yLnlvdTJiZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29ua29yL3lvdTJiZXIiLAogICJ1dWlkIjogInlvdTJiZXJAa29ua29yIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
 , {"uuid": "files-view@argonauta.framagit.org", "name": "Files View", "pname": "files-view", "description": "", "link": "https://extensions.gnome.org/extension/1395/files-view/", "shell_version_map": {"38": {"version": "11", "sha256": "0367kzrpzbx1b2l1m68n2pmazlsy4207a1anvyr2n1a4xpq3vwb0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiIsCiAgImdldHRleHQtZG9tYWluIjogImZpbGVzLXZpZXciLAogICJuYW1lIjogIkZpbGVzIFZpZXciLAogICJyZWNlbnRseS1vcGVuLXBlcnNpc3RlbnQtZmlsZW5hbWUiOiAicmVjZW50bHktb3Blbi1mb2xkZXJzLWZpbGVzLXZpZXctZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLmpzb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZmlsZXMtdmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJmaWxlcy12aWV3QGFyZ29uYXV0YS5mcmFtYWdpdC5vcmciLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
-, {"uuid": "bluetooth-quick-connect@bjarosze.gmail.com", "name": "Bluetooth Quick Connect", "pname": "bluetooth-quick-connect", "description": "Allow to connect to paired devices from gnome control panel.\n", "link": "https://extensions.gnome.org/extension/1401/bluetooth-quick-connect/", "shell_version_map": {"38": {"version": "16", "sha256": "1fkx12xx1m8pchyfvq0vmyd21m79s9s0jw4ackqg1nqcpwyqd1c3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBRdWljayBDb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmphcm9zemUvZ25vbWUtYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJ1dWlkIjogImJsdWV0b290aC1xdWljay1jb25uZWN0QGJqYXJvc3plLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}, "40": {"version": "26", "sha256": "1yg5prjxi4zg98bm0ni44qg037iybvpjr8jg4kr5l82vxxf6bvk1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBRdWljayBDb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iamFyb3N6ZS9nbm9tZS1ibHVldG9vdGgtcXVpY2stY29ubmVjdCIsCiAgInV1aWQiOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3RAYmphcm9zemUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "41": {"version": "26", "sha256": "1yg5prjxi4zg98bm0ni44qg037iybvpjr8jg4kr5l82vxxf6bvk1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBRdWljayBDb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iamFyb3N6ZS9nbm9tZS1ibHVldG9vdGgtcXVpY2stY29ubmVjdCIsCiAgInV1aWQiOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3RAYmphcm9zemUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}}}
+, {"uuid": "bluetooth-quick-connect@bjarosze.gmail.com", "name": "Bluetooth Quick Connect", "pname": "bluetooth-quick-connect", "description": "Allow to connect to paired devices from gnome control panel.\n", "link": "https://extensions.gnome.org/extension/1401/bluetooth-quick-connect/", "shell_version_map": {"38": {"version": "16", "sha256": "1fkx12xx1m8pchyfvq0vmyd21m79s9s0jw4ackqg1nqcpwyqd1c3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBRdWljayBDb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmphcm9zemUvZ25vbWUtYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJ1dWlkIjogImJsdWV0b290aC1xdWljay1jb25uZWN0QGJqYXJvc3plLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}, "40": {"version": "29", "sha256": "0nb8glzh9gn8i22rmnv74gxyky6pbj67h4dcql92saqj3wa4bkpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBRdWljayBDb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmphcm9zemUvZ25vbWUtYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJ1dWlkIjogImJsdWV0b290aC1xdWljay1jb25uZWN0QGJqYXJvc3plLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyOQp9"}, "41": {"version": "29", "sha256": "0nb8glzh9gn8i22rmnv74gxyky6pbj67h4dcql92saqj3wa4bkpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBRdWljayBDb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmphcm9zemUvZ25vbWUtYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJ1dWlkIjogImJsdWV0b290aC1xdWljay1jb25uZWN0QGJqYXJvc3plLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyOQp9"}, "42": {"version": "29", "sha256": "0nb8glzh9gn8i22rmnv74gxyky6pbj67h4dcql92saqj3wa4bkpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBRdWljayBDb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmphcm9zemUvZ25vbWUtYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJ1dWlkIjogImJsdWV0b290aC1xdWljay1jb25uZWN0QGJqYXJvc3plLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyOQp9"}}}
 , {"uuid": "syspeek-gs@gs.eros2.info", "name": "SysPeek-GS", "pname": "syspeek-gs", "description": "Minimalistic CPU load monitor widget inspired by SysPeek indicator", "link": "https://extensions.gnome.org/extension/1409/syspeek-gs/", "shell_version_map": {"38": {"version": "10", "sha256": "1hv65wfhd24i773pngr4s5if9n0ailb1lmn9dk01b93nhcxdbynf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltYWxpc3RpYyBDUFUgbG9hZCBtb25pdG9yIHdpZGdldCBpbnNwaXJlZCBieSBTeXNQZWVrIGluZGljYXRvciIsCiAgIm5hbWUiOiAiU3lzUGVlay1HUyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V1Z2VuZS1yb20vc3lzcGVlay1ncyIsCiAgInV1aWQiOiAic3lzcGVlay1nc0Bncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDEwCn0="}, "40": {"version": "10", "sha256": "1hv65wfhd24i773pngr4s5if9n0ailb1lmn9dk01b93nhcxdbynf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltYWxpc3RpYyBDUFUgbG9hZCBtb25pdG9yIHdpZGdldCBpbnNwaXJlZCBieSBTeXNQZWVrIGluZGljYXRvciIsCiAgIm5hbWUiOiAiU3lzUGVlay1HUyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V1Z2VuZS1yb20vc3lzcGVlay1ncyIsCiAgInV1aWQiOiAic3lzcGVlay1nc0Bncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDEwCn0="}, "41": {"version": "10", "sha256": "1hv65wfhd24i773pngr4s5if9n0ailb1lmn9dk01b93nhcxdbynf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltYWxpc3RpYyBDUFUgbG9hZCBtb25pdG9yIHdpZGdldCBpbnNwaXJlZCBieSBTeXNQZWVrIGluZGljYXRvciIsCiAgIm5hbWUiOiAiU3lzUGVlay1HUyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V1Z2VuZS1yb20vc3lzcGVlay1ncyIsCiAgInV1aWQiOiAic3lzcGVlay1nc0Bncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDEwCn0="}, "42": {"version": "10", "sha256": "1hv65wfhd24i773pngr4s5if9n0ailb1lmn9dk01b93nhcxdbynf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltYWxpc3RpYyBDUFUgbG9hZCBtb25pdG9yIHdpZGdldCBpbnNwaXJlZCBieSBTeXNQZWVrIGluZGljYXRvciIsCiAgIm5hbWUiOiAiU3lzUGVlay1HUyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V1Z2VuZS1yb20vc3lzcGVlay1ncyIsCiAgInV1aWQiOiAic3lzcGVlay1nc0Bncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
 , {"uuid": "discrete-brightness@gs.eros2.info", "name": "Discrete brightness", "pname": "discrete-brightness", "description": "Discrete brightness indicator change brightness in discrete steps, unlike default smooth brightness bar in Gnome Shell", "link": "https://extensions.gnome.org/extension/1410/discrete-brightness/", "shell_version_map": {"38": {"version": "7", "sha256": "0kn8c4zm9d7n56qg5wmj8q3cqqhrzd2h2jj6r7x718gyv84m14mv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2NyZXRlIGJyaWdodG5lc3MgaW5kaWNhdG9yIGNoYW5nZSBicmlnaHRuZXNzIGluIGRpc2NyZXRlIHN0ZXBzLCB1bmxpa2UgZGVmYXVsdCBzbW9vdGggYnJpZ2h0bmVzcyBiYXIgaW4gR25vbWUgU2hlbGwiLAogICJuYW1lIjogIkRpc2NyZXRlIGJyaWdodG5lc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldWdlbmUtcm9tL2Rpc2NyZXRlLWJyaWdodG5lc3MiLAogICJ1dWlkIjogImRpc2NyZXRlLWJyaWdodG5lc3NAZ3MuZXJvczIuaW5mbyIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "0kn8c4zm9d7n56qg5wmj8q3cqqhrzd2h2jj6r7x718gyv84m14mv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2NyZXRlIGJyaWdodG5lc3MgaW5kaWNhdG9yIGNoYW5nZSBicmlnaHRuZXNzIGluIGRpc2NyZXRlIHN0ZXBzLCB1bmxpa2UgZGVmYXVsdCBzbW9vdGggYnJpZ2h0bmVzcyBiYXIgaW4gR25vbWUgU2hlbGwiLAogICJuYW1lIjogIkRpc2NyZXRlIGJyaWdodG5lc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldWdlbmUtcm9tL2Rpc2NyZXRlLWJyaWdodG5lc3MiLAogICJ1dWlkIjogImRpc2NyZXRlLWJyaWdodG5lc3NAZ3MuZXJvczIuaW5mbyIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "0kn8c4zm9d7n56qg5wmj8q3cqqhrzd2h2jj6r7x718gyv84m14mv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2NyZXRlIGJyaWdodG5lc3MgaW5kaWNhdG9yIGNoYW5nZSBicmlnaHRuZXNzIGluIGRpc2NyZXRlIHN0ZXBzLCB1bmxpa2UgZGVmYXVsdCBzbW9vdGggYnJpZ2h0bmVzcyBiYXIgaW4gR25vbWUgU2hlbGwiLAogICJuYW1lIjogIkRpc2NyZXRlIGJyaWdodG5lc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldWdlbmUtcm9tL2Rpc2NyZXRlLWJyaWdodG5lc3MiLAogICJ1dWlkIjogImRpc2NyZXRlLWJyaWdodG5lc3NAZ3MuZXJvczIuaW5mbyIsCiAgInZlcnNpb24iOiA3Cn0="}, "42": {"version": "7", "sha256": "0kn8c4zm9d7n56qg5wmj8q3cqqhrzd2h2jj6r7x718gyv84m14mv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2NyZXRlIGJyaWdodG5lc3MgaW5kaWNhdG9yIGNoYW5nZSBicmlnaHRuZXNzIGluIGRpc2NyZXRlIHN0ZXBzLCB1bmxpa2UgZGVmYXVsdCBzbW9vdGggYnJpZ2h0bmVzcyBiYXIgaW4gR25vbWUgU2hlbGwiLAogICJuYW1lIjogIkRpc2NyZXRlIGJyaWdodG5lc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldWdlbmUtcm9tL2Rpc2NyZXRlLWJyaWdodG5lc3MiLAogICJ1dWlkIjogImRpc2NyZXRlLWJyaWdodG5lc3NAZ3MuZXJvczIuaW5mbyIsCiAgInZlcnNpb24iOiA3Cn0="}}}
-, {"uuid": "quake-mode@repsac-by.github.com", "name": "quake-mode", "pname": "quake-mode", "description": "Drop-down mode for any application", "link": "https://extensions.gnome.org/extension/1411/quake-mode/", "shell_version_map": {"38": {"version": "3", "sha256": "17498v2jw85fhrsldvgnj3x01h00wqarsp9zqp6ym4h7syzbjxrw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRyb3AtZG93biBtb2RlIGZvciBhbnkgYXBwbGljYXRpb24iLAogICJuYW1lIjogInF1YWtlLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yZXBzYWMtYnkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXF1YWtlLW1vZGUiLAogICJ1dWlkIjogInF1YWtlLW1vZGVAcmVwc2FjLWJ5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "5", "sha256": "07vhkpgck80facrds1zy6c6hk10fb06yhj1x5gay1vykv7msnqi7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRyb3AtZG93biBtb2RlIGZvciBhbnkgYXBwbGljYXRpb24iLAogICJuYW1lIjogInF1YWtlLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JlcHNhYy1ieS9nbm9tZS1zaGVsbC1leHRlbnNpb24tcXVha2UtbW9kZSIsCiAgInV1aWQiOiAicXVha2UtbW9kZUByZXBzYWMtYnkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "07vhkpgck80facrds1zy6c6hk10fb06yhj1x5gay1vykv7msnqi7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRyb3AtZG93biBtb2RlIGZvciBhbnkgYXBwbGljYXRpb24iLAogICJuYW1lIjogInF1YWtlLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JlcHNhYy1ieS9nbm9tZS1zaGVsbC1leHRlbnNpb24tcXVha2UtbW9kZSIsCiAgInV1aWQiOiAicXVha2UtbW9kZUByZXBzYWMtYnkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
+, {"uuid": "quake-mode@repsac-by.github.com", "name": "quake-mode", "pname": "quake-mode", "description": "Drop-down mode for any application", "link": "https://extensions.gnome.org/extension/1411/quake-mode/", "shell_version_map": {"38": {"version": "3", "sha256": "17498v2jw85fhrsldvgnj3x01h00wqarsp9zqp6ym4h7syzbjxrw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRyb3AtZG93biBtb2RlIGZvciBhbnkgYXBwbGljYXRpb24iLAogICJuYW1lIjogInF1YWtlLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yZXBzYWMtYnkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXF1YWtlLW1vZGUiLAogICJ1dWlkIjogInF1YWtlLW1vZGVAcmVwc2FjLWJ5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "6", "sha256": "1gfdlm7l7fj592pq1zwaxgkl5hhg4w37jh590qi24xgwa81c8hvd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRyb3AtZG93biBtb2RlIGZvciBhbnkgYXBwbGljYXRpb24iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJxdWFrZS1tb2RlQHJlcHNhYy1ieS5naXRodWIuY29tIiwKICAibmFtZSI6ICJxdWFrZS1tb2RlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIucmVwc2FjLWJ5LnF1YWtlLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yZXBzYWMtYnkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXF1YWtlLW1vZGUiLAogICJ1dWlkIjogInF1YWtlLW1vZGVAcmVwc2FjLWJ5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "1gfdlm7l7fj592pq1zwaxgkl5hhg4w37jh590qi24xgwa81c8hvd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRyb3AtZG93biBtb2RlIGZvciBhbnkgYXBwbGljYXRpb24iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJxdWFrZS1tb2RlQHJlcHNhYy1ieS5naXRodWIuY29tIiwKICAibmFtZSI6ICJxdWFrZS1tb2RlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIucmVwc2FjLWJ5LnF1YWtlLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yZXBzYWMtYnkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXF1YWtlLW1vZGUiLAogICJ1dWlkIjogInF1YWtlLW1vZGVAcmVwc2FjLWJ5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "42": {"version": "6", "sha256": "1gfdlm7l7fj592pq1zwaxgkl5hhg4w37jh590qi24xgwa81c8hvd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRyb3AtZG93biBtb2RlIGZvciBhbnkgYXBwbGljYXRpb24iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJxdWFrZS1tb2RlQHJlcHNhYy1ieS5naXRodWIuY29tIiwKICAibmFtZSI6ICJxdWFrZS1tb2RlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIucmVwc2FjLWJ5LnF1YWtlLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yZXBzYWMtYnkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXF1YWtlLW1vZGUiLAogICJ1dWlkIjogInF1YWtlLW1vZGVAcmVwc2FjLWJ5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "unblank@sun.wxg@gmail.com", "name": "Unblank lock screen", "pname": "unblank", "description": "Unblank lock screen.", "link": "https://extensions.gnome.org/extension/1414/unblank/", "shell_version_map": {"38": {"version": "20", "sha256": "0fb2vbjgl93a0maw9wxw1x47ndfg40gf087rmfk7lgxr8b6vp9si", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuYmxhbmsgbG9jayBzY3JlZW4uIiwKICAibmFtZSI6ICJVbmJsYW5rIGxvY2sgc2NyZWVuIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdW5ibGFuayIsCiAgInV1aWQiOiAidW5ibGFua0BzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "22", "sha256": "1kb7l1q7dvz5z5xrmhgm48jabblh81n8cm34ck711psy4rv1ljy2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuYmxhbmsgbG9jayBzY3JlZW4uIiwKICAibmFtZSI6ICJVbmJsYW5rIGxvY2sgc2NyZWVuIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVuYmxhbmsiLAogICJ1dWlkIjogInVuYmxhbmtAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "41": {"version": "27", "sha256": "10g526zajd9ispj0cgjqrvl7g6zlfpvfmadh1b86qarllaqs060m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuYmxhbmsgbG9jayBzY3JlZW4uIiwKICAibmFtZSI6ICJVbmJsYW5rIGxvY2sgc2NyZWVuIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3Vud3hnL2dub21lLXNoZWxsLWV4dGVuc2lvbi11bmJsYW5rIiwKICAidXVpZCI6ICJ1bmJsYW5rQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI3Cn0="}, "42": {"version": "27", "sha256": "10g526zajd9ispj0cgjqrvl7g6zlfpvfmadh1b86qarllaqs060m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuYmxhbmsgbG9jayBzY3JlZW4uIiwKICAibmFtZSI6ICJVbmJsYW5rIGxvY2sgc2NyZWVuIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3Vud3hnL2dub21lLXNoZWxsLWV4dGVuc2lvbi11bmJsYW5rIiwKICAidXVpZCI6ICJ1bmJsYW5rQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI3Cn0="}}}
 , {"uuid": "vbox-applet@gs.eros2.info", "name": "VirtualBox applet", "pname": "virtualbox-applet", "description": "Provide menu to run VirtualBox machines and switch between running VMs", "link": "https://extensions.gnome.org/extension/1415/virtualbox-applet/", "shell_version_map": {"38": {"version": "11", "sha256": "0sw84xiz1r2i0iza76ybywd9mcw0npgls08hzms4kl4fpbd1g3ym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgbWVudSB0byBydW4gVmlydHVhbEJveCBtYWNoaW5lcyBhbmQgc3dpdGNoIGJldHdlZW4gcnVubmluZyBWTXMiLAogICJuYW1lIjogIlZpcnR1YWxCb3ggYXBwbGV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZib3gtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXVnZW5lLXJvbS92Ym94LWFwcGxldCIsCiAgInV1aWQiOiAidmJveC1hcHBsZXRAZ3MuZXJvczIuaW5mbyIsCiAgInZlcnNpb24iOiAxMQp9"}, "40": {"version": "11", "sha256": "0sw84xiz1r2i0iza76ybywd9mcw0npgls08hzms4kl4fpbd1g3ym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgbWVudSB0byBydW4gVmlydHVhbEJveCBtYWNoaW5lcyBhbmQgc3dpdGNoIGJldHdlZW4gcnVubmluZyBWTXMiLAogICJuYW1lIjogIlZpcnR1YWxCb3ggYXBwbGV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZib3gtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXVnZW5lLXJvbS92Ym94LWFwcGxldCIsCiAgInV1aWQiOiAidmJveC1hcHBsZXRAZ3MuZXJvczIuaW5mbyIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "0sw84xiz1r2i0iza76ybywd9mcw0npgls08hzms4kl4fpbd1g3ym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgbWVudSB0byBydW4gVmlydHVhbEJveCBtYWNoaW5lcyBhbmQgc3dpdGNoIGJldHdlZW4gcnVubmluZyBWTXMiLAogICJuYW1lIjogIlZpcnR1YWxCb3ggYXBwbGV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZib3gtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXVnZW5lLXJvbS92Ym94LWFwcGxldCIsCiAgInV1aWQiOiAidmJveC1hcHBsZXRAZ3MuZXJvczIuaW5mbyIsCiAgInZlcnNpb24iOiAxMQp9"}, "42": {"version": "11", "sha256": "0sw84xiz1r2i0iza76ybywd9mcw0npgls08hzms4kl4fpbd1g3ym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgbWVudSB0byBydW4gVmlydHVhbEJveCBtYWNoaW5lcyBhbmQgc3dpdGNoIGJldHdlZW4gcnVubmluZyBWTXMiLAogICJuYW1lIjogIlZpcnR1YWxCb3ggYXBwbGV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZib3gtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXVnZW5lLXJvbS92Ym94LWFwcGxldCIsCiAgInV1aWQiOiAidmJveC1hcHBsZXRAZ3MuZXJvczIuaW5mbyIsCiAgInZlcnNpb24iOiAxMQp9"}}}
 , {"uuid": "stocks@infinicode.de", "name": "Stocks Extension", "pname": "stocks-extension", "description": "Stocks Extension brings stock quotes to your GNOME Shell Panel", "link": "https://extensions.gnome.org/extension/1422/stocks-extension/", "shell_version_map": {"38": {"version": "19", "sha256": "1414cksayqpv0w0q632yi33ifqlwyfggwf684aci6qj81fs644y2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0b2NrcyBFeHRlbnNpb24gYnJpbmdzIHN0b2NrIHF1b3RlcyB0byB5b3VyIEdOT01FIFNoZWxsIFBhbmVsIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJTdG9ja3MgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvc3RvY2tzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3RvY2tzQGluZmluaWNvZGUuZGUiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "40": {"version": "19", "sha256": "1414cksayqpv0w0q632yi33ifqlwyfggwf684aci6qj81fs644y2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0b2NrcyBFeHRlbnNpb24gYnJpbmdzIHN0b2NrIHF1b3RlcyB0byB5b3VyIEdOT01FIFNoZWxsIFBhbmVsIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJTdG9ja3MgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvc3RvY2tzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3RvY2tzQGluZmluaWNvZGUuZGUiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
 , {"uuid": "showtime@xenlism.github.io", "name": "Showtime  - Desktop Widget", "pname": "showtime", "description": "Date &amp;amp;amp;amp;amp;amp;amp; Clock Desktop Widget\n\nMove Widget by Press Super + Drag Widget\nhttps://github.com/xenlism/showtime", "link": "https://extensions.gnome.org/extension/1429/showtime/", "shell_version_map": {"38": {"version": "4", "sha256": "12k6spjhg2ykgh5x3mily0dps450pyj9vyv1bay5w919y9swplaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRhdGUgJmFtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDsgQ2xvY2sgRGVza3RvcCBXaWRnZXRcblxuTW92ZSBXaWRnZXQgYnkgUHJlc3MgU3VwZXIgKyBEcmFnIFdpZGdldFxuaHR0cHM6Ly9naXRodWIuY29tL3hlbmxpc20vc2hvd3RpbWUiLAogICJuYW1lIjogIlNob3d0aW1lICAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVubGlzbS9zaG93dGltZSIsCiAgInV1aWQiOiAic2hvd3RpbWVAeGVubGlzbS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "5", "sha256": "0p10as2k6lkh3vj5860hvmj98by18ih8r2k7y36iqrxqpl3s8fd4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRhdGUgJmFtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDsgQ2xvY2sgRGVza3RvcCBXaWRnZXRcblxuTW92ZSBXaWRnZXQgYnkgUHJlc3MgU3VwZXIgKyBEcmFnIFdpZGdldFxuaHR0cHM6Ly9naXRodWIuY29tL3hlbmxpc20vc2hvd3RpbWUiLAogICJuYW1lIjogIlNob3d0aW1lICAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hlbmxpc20vc2hvd3RpbWUiLAogICJ1dWlkIjogInNob3d0aW1lQHhlbmxpc20uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
-, {"uuid": "Current_screen_only_for_Alternate_Tab@bourcereau.fr", "name": "Current screen only on window switcher", "pname": "current-screen-only-for-alternate-tab", "description": "Limits the windows shown on the switcher to those of the current monitor", "link": "https://extensions.gnome.org/extension/1437/current-screen-only-for-alternate-tab/", "shell_version_map": {"40": {"version": "8", "sha256": "0x4idd6ba55qxsnx8fplgamdjj0f2hmv2sv2vbn3m3wavd4n0w27", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpbWl0cyB0aGUgd2luZG93cyBzaG93biBvbiB0aGUgc3dpdGNoZXIgdG8gdGhvc2Ugb2YgdGhlIGN1cnJlbnQgbW9uaXRvciIsCiAgIm5hbWUiOiAiQ3VycmVudCBzY3JlZW4gb25seSBvbiB3aW5kb3cgc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21tYWkvQ3VycmVudF9zY3JlZW5fb25seV9vbl93aW5kb3dfc3dpdGNoZXIiLAogICJ1dWlkIjogIkN1cnJlbnRfc2NyZWVuX29ubHlfZm9yX0FsdGVybmF0ZV9UYWJAYm91cmNlcmVhdS5mciIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "0x4idd6ba55qxsnx8fplgamdjj0f2hmv2sv2vbn3m3wavd4n0w27", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpbWl0cyB0aGUgd2luZG93cyBzaG93biBvbiB0aGUgc3dpdGNoZXIgdG8gdGhvc2Ugb2YgdGhlIGN1cnJlbnQgbW9uaXRvciIsCiAgIm5hbWUiOiAiQ3VycmVudCBzY3JlZW4gb25seSBvbiB3aW5kb3cgc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21tYWkvQ3VycmVudF9zY3JlZW5fb25seV9vbl93aW5kb3dfc3dpdGNoZXIiLAogICJ1dWlkIjogIkN1cnJlbnRfc2NyZWVuX29ubHlfZm9yX0FsdGVybmF0ZV9UYWJAYm91cmNlcmVhdS5mciIsCiAgInZlcnNpb24iOiA4Cn0="}}}
+, {"uuid": "Current_screen_only_for_Alternate_Tab@bourcereau.fr", "name": "Current screen only on window switcher", "pname": "current-screen-only-for-alternate-tab", "description": "Limits the windows shown on the switcher to those of the current monitor", "link": "https://extensions.gnome.org/extension/1437/current-screen-only-for-alternate-tab/", "shell_version_map": {"40": {"version": "9", "sha256": "1808015iaci5pknzdcgh0icakxd2wmina10winii7hf644gxjcdd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpbWl0cyB0aGUgd2luZG93cyBzaG93biBvbiB0aGUgc3dpdGNoZXIgdG8gdGhvc2Ugb2YgdGhlIGN1cnJlbnQgbW9uaXRvciIsCiAgIm5hbWUiOiAiQ3VycmVudCBzY3JlZW4gb25seSBvbiB3aW5kb3cgc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tbWFpL0N1cnJlbnRfc2NyZWVuX29ubHlfb25fd2luZG93X3N3aXRjaGVyIiwKICAidXVpZCI6ICJDdXJyZW50X3NjcmVlbl9vbmx5X2Zvcl9BbHRlcm5hdGVfVGFiQGJvdXJjZXJlYXUuZnIiLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "1808015iaci5pknzdcgh0icakxd2wmina10winii7hf644gxjcdd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpbWl0cyB0aGUgd2luZG93cyBzaG93biBvbiB0aGUgc3dpdGNoZXIgdG8gdGhvc2Ugb2YgdGhlIGN1cnJlbnQgbW9uaXRvciIsCiAgIm5hbWUiOiAiQ3VycmVudCBzY3JlZW4gb25seSBvbiB3aW5kb3cgc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tbWFpL0N1cnJlbnRfc2NyZWVuX29ubHlfb25fd2luZG93X3N3aXRjaGVyIiwKICAidXVpZCI6ICJDdXJyZW50X3NjcmVlbl9vbmx5X2Zvcl9BbHRlcm5hdGVfVGFiQGJvdXJjZXJlYXUuZnIiLAogICJ2ZXJzaW9uIjogOQp9"}, "42": {"version": "9", "sha256": "1808015iaci5pknzdcgh0icakxd2wmina10winii7hf644gxjcdd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpbWl0cyB0aGUgd2luZG93cyBzaG93biBvbiB0aGUgc3dpdGNoZXIgdG8gdGhvc2Ugb2YgdGhlIGN1cnJlbnQgbW9uaXRvciIsCiAgIm5hbWUiOiAiQ3VycmVudCBzY3JlZW4gb25seSBvbiB3aW5kb3cgc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tbWFpL0N1cnJlbnRfc2NyZWVuX29ubHlfb25fd2luZG93X3N3aXRjaGVyIiwKICAidXVpZCI6ICJDdXJyZW50X3NjcmVlbl9vbmx5X2Zvcl9BbHRlcm5hdGVfVGFiQGJvdXJjZXJlYXUuZnIiLAogICJ2ZXJzaW9uIjogOQp9"}}}
 , {"uuid": "kube_config@vvbogdanov87.gmail.com", "name": "Kube Config", "pname": "kube-config", "description": "Switches kube config context", "link": "https://extensions.gnome.org/extension/1442/kube-config/", "shell_version_map": {"40": {"version": "14", "sha256": "125gbiim4d3kpycjncvqmxqgz3i1c15kkyx2rmgkc2wpzx0gyc6i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92dmJvZ2Rhbm92ODcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWt1YmVjb25maWciLAogICJ1dWlkIjogImt1YmVfY29uZmlnQHZ2Ym9nZGFub3Y4Ny5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "125gbiim4d3kpycjncvqmxqgz3i1c15kkyx2rmgkc2wpzx0gyc6i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92dmJvZ2Rhbm92ODcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWt1YmVjb25maWciLAogICJ1dWlkIjogImt1YmVfY29uZmlnQHZ2Ym9nZGFub3Y4Ny5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
 , {"uuid": "transparent-window-moving@noobsai.github.com", "name": "Transparent Window Moving", "pname": "transparent-window-moving", "description": "Makes the window semi-transparent when moving or resizing", "link": "https://extensions.gnome.org/extension/1446/transparent-window-moving/", "shell_version_map": {"38": {"version": "6", "sha256": "0vllnrscjaqx77wb44803q6n3wk590dxacjfsw7ympbgqhikzc0p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSB3aW5kb3cgc2VtaS10cmFuc3BhcmVudCB3aGVuIG1vdmluZyBvciByZXNpemluZyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiVHJhbnNwYXJlbnQgV2luZG93IE1vdmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTm9vYnNhaS90cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nQG5vb2JzYWkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "10", "sha256": "1cygayp1kaykm7ldsdbn6qpxi80ddipvlhl6i89sca33yrwisz3n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSB3aW5kb3cgc2VtaS10cmFuc3BhcmVudCB3aGVuIG1vdmluZyBvciByZXNpemluZyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiVHJhbnNwYXJlbnQgV2luZG93IE1vdmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTm9vYnNhaS90cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nQG5vb2JzYWkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}, "41": {"version": "10", "sha256": "1cygayp1kaykm7ldsdbn6qpxi80ddipvlhl6i89sca33yrwisz3n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSB3aW5kb3cgc2VtaS10cmFuc3BhcmVudCB3aGVuIG1vdmluZyBvciByZXNpemluZyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiVHJhbnNwYXJlbnQgV2luZG93IE1vdmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTm9vYnNhaS90cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nQG5vb2JzYWkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}, "42": {"version": "10", "sha256": "1cygayp1kaykm7ldsdbn6qpxi80ddipvlhl6i89sca33yrwisz3n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSB3aW5kb3cgc2VtaS10cmFuc3BhcmVudCB3aGVuIG1vdmluZyBvciByZXNpemluZyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiVHJhbnNwYXJlbnQgV2luZG93IE1vdmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTm9vYnNhaS90cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nQG5vb2JzYWkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}}}
 , {"uuid": "transparent-window@pbxqdown.github.com", "name": "Transparent Window", "pname": "transparent-window", "description": "Change the opacity of windows by compiz-style shortcut Alt+scroll.\nYou can customize hotkey in Preference page if Alt key doesn't work.", "link": "https://extensions.gnome.org/extension/1454/transparent-window/", "shell_version_map": {"38": {"version": "7", "sha256": "09nhn8f7d8c1kp8hgw49y0d9165ckvgn6my339k0pzga02d277a6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgb3BhY2l0eSBvZiB3aW5kb3dzIGJ5IGNvbXBpei1zdHlsZSBzaG9ydGN1dCBBbHQrc2Nyb2xsLlxuWW91IGNhbiBjdXN0b21pemUgaG90a2V5IGluIFByZWZlcmVuY2UgcGFnZSBpZiBBbHQga2V5IGRvZXNuJ3Qgd29yay4iLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFdpbmRvdyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5UcmFuc3BhcmVudFdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4xIiwKICAgICIzLjM2LjEiLAogICAgIjMuMzguMSIsCiAgICAiMy4zOC40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGJ4cWRvd24vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXdpbmRvdyIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtd2luZG93QHBieHFkb3duLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}}}
@@ -194,12 +194,12 @@
 , {"uuid": "panel-date-format@keiii.github.com", "name": "Panel Date Format", "pname": "panel-date-format", "description": "Allows to customize the date format on the panel.", "link": "https://extensions.gnome.org/extension/1462/panel-date-format/", "shell_version_map": {"40": {"version": "7", "sha256": "0afqf8hkmg1fmnz0nn6jq6k7yl7vs69w0malqhf1bqfsn5w7ksdw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBjdXN0b21pemUgdGhlIGRhdGUgZm9ybWF0IG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIlBhbmVsIERhdGUgRm9ybWF0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhbmVsLWRhdGUtZm9ybWF0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vS0VJSUkvZ25vbWUtc2hlbGwtcGFuZWwtZGF0ZS1mb3JtYXQiLAogICJ1dWlkIjogInBhbmVsLWRhdGUtZm9ybWF0QGtlaWlpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}, "41": {"version": "7", "sha256": "0afqf8hkmg1fmnz0nn6jq6k7yl7vs69w0malqhf1bqfsn5w7ksdw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBjdXN0b21pemUgdGhlIGRhdGUgZm9ybWF0IG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIlBhbmVsIERhdGUgRm9ybWF0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhbmVsLWRhdGUtZm9ybWF0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vS0VJSUkvZ25vbWUtc2hlbGwtcGFuZWwtZGF0ZS1mb3JtYXQiLAogICJ1dWlkIjogInBhbmVsLWRhdGUtZm9ybWF0QGtlaWlpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}, "42": {"version": "7", "sha256": "0afqf8hkmg1fmnz0nn6jq6k7yl7vs69w0malqhf1bqfsn5w7ksdw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBjdXN0b21pemUgdGhlIGRhdGUgZm9ybWF0IG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIlBhbmVsIERhdGUgRm9ybWF0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhbmVsLWRhdGUtZm9ybWF0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vS0VJSUkvZ25vbWUtc2hlbGwtcGFuZWwtZGF0ZS1mb3JtYXQiLAogICJ1dWlkIjogInBhbmVsLWRhdGUtZm9ybWF0QGtlaWlpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}}}
 , {"uuid": "desktop-icons@csoriano", "name": "Desktop Icons", "pname": "desktop-icons", "description": "Add icons to the desktop", "link": "https://extensions.gnome.org/extension/1465/desktop-icons/", "shell_version_map": {"38": {"version": "19", "sha256": "01qdh1kigl3ck1mzgha1a9218lpam5b54ai72mpvr64gkaax2mcv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBpY29ucyB0byB0aGUgZGVza3RvcCIsCiAgIm5hbWUiOiAiRGVza3RvcCBJY29ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvV29ybGQvU2hlbGxFeHRlbnNpb25zL2Rlc2t0b3AtaWNvbnMiLAogICJ1dWlkIjogImRlc2t0b3AtaWNvbnNAY3Nvcmlhbm8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
 , {"uuid": "fullbattery@categulario.tk", "name": "Full Battery indicator", "pname": "full-battery-indicator", "description": "Notifies when battery is full", "link": "https://extensions.gnome.org/extension/1466/full-battery-indicator/", "shell_version_map": {"38": {"version": "4", "sha256": "167d84phf68fi5bg9fvm4l7l8jq7k86a80adm0l56ngqygxqsyy8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGlmaWVzIHdoZW4gYmF0dGVyeSBpcyBmdWxsIiwKICAibmFtZSI6ICJGdWxsIEJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjMyIiwKICAgICIzLjI4LjMiLAogICAgIjMuMzQuNCIsCiAgICAiMy4zNi4wIiwKICAgICIzLjM4IiwKICAgICI0MC4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2F0ZWd1bGFyaW8vZnVsbC1iYXR0ZXJ5LWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZnVsbGJhdHRlcnlAY2F0ZWd1bGFyaW8udGsiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "167d84phf68fi5bg9fvm4l7l8jq7k86a80adm0l56ngqygxqsyy8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGlmaWVzIHdoZW4gYmF0dGVyeSBpcyBmdWxsIiwKICAibmFtZSI6ICJGdWxsIEJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjMyIiwKICAgICIzLjI4LjMiLAogICAgIjMuMzQuNCIsCiAgICAiMy4zNi4wIiwKICAgICIzLjM4IiwKICAgICI0MC4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2F0ZWd1bGFyaW8vZnVsbC1iYXR0ZXJ5LWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZnVsbGJhdHRlcnlAY2F0ZWd1bGFyaW8udGsiLAogICJ2ZXJzaW9uIjogNAp9"}}}
-, {"uuid": "rdesktop-menu@bastien.git.geekwu.org", "name": "Rdesktop launcher", "pname": "rdesktop-launcher", "description": "Add a servers status menu for quickly running rdesktop", "link": "https://extensions.gnome.org/extension/1467/rdesktop-launcher/", "shell_version_map": {"38": {"version": "13", "sha256": "10mmyanmwhk3l5q0db1lrd5qwl1yj4i6n66syi3ii8dvlwx1xg55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHNlcnZlcnMgc3RhdHVzIG1lbnUgZm9yIHF1aWNrbHkgcnVubmluZyByZGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJyZGVza3RvcC1tZW51IiwKICAibmFtZSI6ICJSZGVza3RvcCBsYXVuY2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdC5nZWVrd3Uub3JnL2Jhc3RpZW4vcmRlc2t0b3AtbWVudSIsCiAgInV1aWQiOiAicmRlc2t0b3AtbWVudUBiYXN0aWVuLmdpdC5nZWVrd3Uub3JnIiwKICAidmVyc2lvbiI6IDEzCn0="}, "40": {"version": "13", "sha256": "10mmyanmwhk3l5q0db1lrd5qwl1yj4i6n66syi3ii8dvlwx1xg55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHNlcnZlcnMgc3RhdHVzIG1lbnUgZm9yIHF1aWNrbHkgcnVubmluZyByZGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJyZGVza3RvcC1tZW51IiwKICAibmFtZSI6ICJSZGVza3RvcCBsYXVuY2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdC5nZWVrd3Uub3JnL2Jhc3RpZW4vcmRlc2t0b3AtbWVudSIsCiAgInV1aWQiOiAicmRlc2t0b3AtbWVudUBiYXN0aWVuLmdpdC5nZWVrd3Uub3JnIiwKICAidmVyc2lvbiI6IDEzCn0="}, "41": {"version": "13", "sha256": "10mmyanmwhk3l5q0db1lrd5qwl1yj4i6n66syi3ii8dvlwx1xg55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHNlcnZlcnMgc3RhdHVzIG1lbnUgZm9yIHF1aWNrbHkgcnVubmluZyByZGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJyZGVza3RvcC1tZW51IiwKICAibmFtZSI6ICJSZGVza3RvcCBsYXVuY2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdC5nZWVrd3Uub3JnL2Jhc3RpZW4vcmRlc2t0b3AtbWVudSIsCiAgInV1aWQiOiAicmRlc2t0b3AtbWVudUBiYXN0aWVuLmdpdC5nZWVrd3Uub3JnIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
+, {"uuid": "rdesktop-menu@bastien.git.geekwu.org", "name": "Rdesktop launcher", "pname": "rdesktop-launcher", "description": "Add a servers status menu for quickly running rdesktop", "link": "https://extensions.gnome.org/extension/1467/rdesktop-launcher/", "shell_version_map": {"38": {"version": "15", "sha256": "1vhlx80jhghg38g13cn1i8410gi4nmhsqqhqklkfkz761rvg8fq7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHNlcnZlcnMgc3RhdHVzIG1lbnUgZm9yIHF1aWNrbHkgcnVubmluZyByZGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJyZGVza3RvcC1tZW51IiwKICAibmFtZSI6ICJSZGVza3RvcCBsYXVuY2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXQuZ2Vla3d1Lm9yZy9iYXN0aWVuL3JkZXNrdG9wLW1lbnUiLAogICJ1dWlkIjogInJkZXNrdG9wLW1lbnVAYmFzdGllbi5naXQuZ2Vla3d1Lm9yZyIsCiAgInZlcnNpb24iOiAxNQp9"}, "40": {"version": "15", "sha256": "1vhlx80jhghg38g13cn1i8410gi4nmhsqqhqklkfkz761rvg8fq7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHNlcnZlcnMgc3RhdHVzIG1lbnUgZm9yIHF1aWNrbHkgcnVubmluZyByZGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJyZGVza3RvcC1tZW51IiwKICAibmFtZSI6ICJSZGVza3RvcCBsYXVuY2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXQuZ2Vla3d1Lm9yZy9iYXN0aWVuL3JkZXNrdG9wLW1lbnUiLAogICJ1dWlkIjogInJkZXNrdG9wLW1lbnVAYmFzdGllbi5naXQuZ2Vla3d1Lm9yZyIsCiAgInZlcnNpb24iOiAxNQp9"}, "41": {"version": "15", "sha256": "1vhlx80jhghg38g13cn1i8410gi4nmhsqqhqklkfkz761rvg8fq7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHNlcnZlcnMgc3RhdHVzIG1lbnUgZm9yIHF1aWNrbHkgcnVubmluZyByZGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJyZGVza3RvcC1tZW51IiwKICAibmFtZSI6ICJSZGVza3RvcCBsYXVuY2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXQuZ2Vla3d1Lm9yZy9iYXN0aWVuL3JkZXNrdG9wLW1lbnUiLAogICJ1dWlkIjogInJkZXNrdG9wLW1lbnVAYmFzdGllbi5naXQuZ2Vla3d1Lm9yZyIsCiAgInZlcnNpb24iOiAxNQp9"}, "42": {"version": "15", "sha256": "1vhlx80jhghg38g13cn1i8410gi4nmhsqqhqklkfkz761rvg8fq7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHNlcnZlcnMgc3RhdHVzIG1lbnUgZm9yIHF1aWNrbHkgcnVubmluZyByZGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJyZGVza3RvcC1tZW51IiwKICAibmFtZSI6ICJSZGVza3RvcCBsYXVuY2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXQuZ2Vla3d1Lm9yZy9iYXN0aWVuL3JkZXNrdG9wLW1lbnUiLAogICJ1dWlkIjogInJkZXNrdG9wLW1lbnVAYmFzdGllbi5naXQuZ2Vla3d1Lm9yZyIsCiAgInZlcnNpb24iOiAxNQp9"}}}
 , {"uuid": "tint-all@amarovita.github.com", "name": "Tint All", "pname": "tint-all", "description": "Colorize the entire gnome workspace. Amber, green, cyan, sepia and grayscale - just keep clicking extension icon. Scroll over extension icon to change fx level.", "link": "https://extensions.gnome.org/extension/1471/tint-all/", "shell_version_map": {"38": {"version": "7", "sha256": "1lflpza6kbdh4ql338vidij9c2gh2r116gfgih7lk4inkj1hqmmz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbG9yaXplIHRoZSBlbnRpcmUgZ25vbWUgd29ya3NwYWNlLiBBbWJlciwgZ3JlZW4sIGN5YW4sIHNlcGlhIGFuZCBncmF5c2NhbGUgLSBqdXN0IGtlZXAgY2xpY2tpbmcgZXh0ZW5zaW9uIGljb24uIFNjcm9sbCBvdmVyIGV4dGVuc2lvbiBpY29uIHRvIGNoYW5nZSBmeCBsZXZlbC4iLAogICJuYW1lIjogIlRpbnQgQWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidGludC1hbGxAYW1hcm92aXRhLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "1lflpza6kbdh4ql338vidij9c2gh2r116gfgih7lk4inkj1hqmmz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbG9yaXplIHRoZSBlbnRpcmUgZ25vbWUgd29ya3NwYWNlLiBBbWJlciwgZ3JlZW4sIGN5YW4sIHNlcGlhIGFuZCBncmF5c2NhbGUgLSBqdXN0IGtlZXAgY2xpY2tpbmcgZXh0ZW5zaW9uIGljb24uIFNjcm9sbCBvdmVyIGV4dGVuc2lvbiBpY29uIHRvIGNoYW5nZSBmeCBsZXZlbC4iLAogICJuYW1lIjogIlRpbnQgQWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidGludC1hbGxAYW1hcm92aXRhLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}, "41": {"version": "7", "sha256": "1lflpza6kbdh4ql338vidij9c2gh2r116gfgih7lk4inkj1hqmmz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbG9yaXplIHRoZSBlbnRpcmUgZ25vbWUgd29ya3NwYWNlLiBBbWJlciwgZ3JlZW4sIGN5YW4sIHNlcGlhIGFuZCBncmF5c2NhbGUgLSBqdXN0IGtlZXAgY2xpY2tpbmcgZXh0ZW5zaW9uIGljb24uIFNjcm9sbCBvdmVyIGV4dGVuc2lvbiBpY29uIHRvIGNoYW5nZSBmeCBsZXZlbC4iLAogICJuYW1lIjogIlRpbnQgQWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidGludC1hbGxAYW1hcm92aXRhLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}}}
 , {"uuid": "batime@martin.zurowietz.de", "name": "Battery Time", "pname": "battery-time", "description": "Show the remaining time until fully charged/discharged instead of the battery charge in percent in the panel.", "link": "https://extensions.gnome.org/extension/1475/battery-time/", "shell_version_map": {"40": {"version": "10", "sha256": "0kfajnbkg7xgqsqhkxl111j21k3jr35yxbylip6iryyxjmsxx5bl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBpbnN0ZWFkIG9mIHRoZSBiYXR0ZXJ5IGNoYXJnZSBpbiBwZXJjZW50IGluIHRoZSBwYW5lbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYXRpbWUiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXRpbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL216dXIvZ25vbWUtc2hlbGwtYmF0aW1lIiwKICAidXVpZCI6ICJiYXRpbWVAbWFydGluLnp1cm93aWV0ei5kZSIsCiAgInZlcnNpb24iOiAxMAp9"}, "41": {"version": "10", "sha256": "0kfajnbkg7xgqsqhkxl111j21k3jr35yxbylip6iryyxjmsxx5bl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBpbnN0ZWFkIG9mIHRoZSBiYXR0ZXJ5IGNoYXJnZSBpbiBwZXJjZW50IGluIHRoZSBwYW5lbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYXRpbWUiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXRpbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL216dXIvZ25vbWUtc2hlbGwtYmF0aW1lIiwKICAidXVpZCI6ICJiYXRpbWVAbWFydGluLnp1cm93aWV0ei5kZSIsCiAgInZlcnNpb24iOiAxMAp9"}}}
-, {"uuid": "unlockDialogBackground@sun.wxg@gmail.com", "name": "Lock screen background", "pname": "unlock-dialog-background", "description": "Change lock screen background.\nIf you use Ubuntu, install package gir1.2-clutter-1.0 first.", "link": "https://extensions.gnome.org/extension/1476/unlock-dialog-background/", "shell_version_map": {"38": {"version": "18", "sha256": "1j9m4qkd0i6l4nxwpxjwvp3nh0zifpzvp0xwp4cqqlr2flb6lwps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBsb2NrIHNjcmVlbiBiYWNrZ3JvdW5kLlxuSWYgeW91IHVzZSBVYnVudHUsIGluc3RhbGwgcGFja2FnZSBnaXIxLjItY2x1dHRlci0xLjAgZmlyc3QuIiwKICAibmFtZSI6ICJMb2NrIHNjcmVlbiBiYWNrZ3JvdW5kIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiMy4zNi40IiwKICAgICIzLjM2LjUiLAogICAgIjMuMzYuNiIsCiAgICAiMy4zNi43IiwKICAgICIzLjM2LjgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVubG9ja0RpYWxvZ0JhY2tncm91bmQiLAogICJ1dWlkIjogInVubG9ja0RpYWxvZ0JhY2tncm91bmRAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "40": {"version": "20", "sha256": "1gin7mpafmx8h177alhhlrjqpq5354napc0jqaj4l4f7ynzn4843", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBsb2NrIHNjcmVlbiBiYWNrZ3JvdW5kLlxuSWYgeW91IHVzZSBVYnVudHUsIGluc3RhbGwgcGFja2FnZSBnaXIxLjItY2x1dHRlci0xLjAgZmlyc3QuIiwKICAibmFtZSI6ICJMb2NrIHNjcmVlbiBiYWNrZ3JvdW5kIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVubG9ja0RpYWxvZ0JhY2tncm91bmQiLAogICJ1dWlkIjogInVubG9ja0RpYWxvZ0JhY2tncm91bmRAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}, "41": {"version": "24", "sha256": "030anwvn1ddd6xznf0fbc60zdmqsrf56xws2nayk50mxa07qx6y3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBsb2NrIHNjcmVlbiBiYWNrZ3JvdW5kLlxuSWYgeW91IHVzZSBVYnVudHUsIGluc3RhbGwgcGFja2FnZSBnaXIxLjItY2x1dHRlci0xLjAgZmlyc3QuIiwKICAibmFtZSI6ICJMb2NrIHNjcmVlbiBiYWNrZ3JvdW5kIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3Vud3hnL2dub21lLXNoZWxsLWV4dGVuc2lvbi11bmxvY2tEaWFsb2dCYWNrZ3JvdW5kIiwKICAidXVpZCI6ICJ1bmxvY2tEaWFsb2dCYWNrZ3JvdW5kQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}, "42": {"version": "24", "sha256": "030anwvn1ddd6xznf0fbc60zdmqsrf56xws2nayk50mxa07qx6y3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBsb2NrIHNjcmVlbiBiYWNrZ3JvdW5kLlxuSWYgeW91IHVzZSBVYnVudHUsIGluc3RhbGwgcGFja2FnZSBnaXIxLjItY2x1dHRlci0xLjAgZmlyc3QuIiwKICAibmFtZSI6ICJMb2NrIHNjcmVlbiBiYWNrZ3JvdW5kIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3Vud3hnL2dub21lLXNoZWxsLWV4dGVuc2lvbi11bmxvY2tEaWFsb2dCYWNrZ3JvdW5kIiwKICAidXVpZCI6ICJ1bmxvY2tEaWFsb2dCYWNrZ3JvdW5kQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}}}
+, {"uuid": "unlockDialogBackground@sun.wxg@gmail.com", "name": "Lock screen background", "pname": "unlock-dialog-background", "description": "Change lock screen background.\nIf you use Ubuntu, install package gir1.2-clutter-1.0 first.", "link": "https://extensions.gnome.org/extension/1476/unlock-dialog-background/", "shell_version_map": {"38": {"version": "18", "sha256": "1j9m4qkd0i6l4nxwpxjwvp3nh0zifpzvp0xwp4cqqlr2flb6lwps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBsb2NrIHNjcmVlbiBiYWNrZ3JvdW5kLlxuSWYgeW91IHVzZSBVYnVudHUsIGluc3RhbGwgcGFja2FnZSBnaXIxLjItY2x1dHRlci0xLjAgZmlyc3QuIiwKICAibmFtZSI6ICJMb2NrIHNjcmVlbiBiYWNrZ3JvdW5kIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiMy4zNi40IiwKICAgICIzLjM2LjUiLAogICAgIjMuMzYuNiIsCiAgICAiMy4zNi43IiwKICAgICIzLjM2LjgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVubG9ja0RpYWxvZ0JhY2tncm91bmQiLAogICJ1dWlkIjogInVubG9ja0RpYWxvZ0JhY2tncm91bmRAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "40": {"version": "20", "sha256": "1gin7mpafmx8h177alhhlrjqpq5354napc0jqaj4l4f7ynzn4843", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBsb2NrIHNjcmVlbiBiYWNrZ3JvdW5kLlxuSWYgeW91IHVzZSBVYnVudHUsIGluc3RhbGwgcGFja2FnZSBnaXIxLjItY2x1dHRlci0xLjAgZmlyc3QuIiwKICAibmFtZSI6ICJMb2NrIHNjcmVlbiBiYWNrZ3JvdW5kIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVubG9ja0RpYWxvZ0JhY2tncm91bmQiLAogICJ1dWlkIjogInVubG9ja0RpYWxvZ0JhY2tncm91bmRAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}, "41": {"version": "23", "sha256": "0j4mhrdmkwwsf52lcqbl0ln7rl3s64nb24862gahs26y4kpbaiv3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBsb2NrIHNjcmVlbiBiYWNrZ3JvdW5kLlxuSWYgeW91IHVzZSBVYnVudHUsIGluc3RhbGwgcGFja2FnZSBnaXIxLjItY2x1dHRlci0xLjAgZmlyc3QuIiwKICAibmFtZSI6ICJMb2NrIHNjcmVlbiBiYWNrZ3JvdW5kIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVubG9ja0RpYWxvZ0JhY2tncm91bmQiLAogICJ1dWlkIjogInVubG9ja0RpYWxvZ0JhY2tncm91bmRAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="}, "42": {"version": "26", "sha256": "0ix4f8l6hdv7w75z6zjrklb75lkwii09vz20rckg429ga15yaqls", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBsb2NrIHNjcmVlbiBiYWNrZ3JvdW5kLlxuSWYgeW91IHVzZSBVYnVudHUsIGluc3RhbGwgcGFja2FnZSBnaXIxLjItY2x1dHRlci0xLjAgZmlyc3QuIiwKICAibmFtZSI6ICJMb2NrIHNjcmVlbiBiYWNrZ3JvdW5kIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVubG9ja0RpYWxvZ0JhY2tncm91bmQiLAogICJ1dWlkIjogInVubG9ja0RpYWxvZ0JhY2tncm91bmRAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjYKfQ=="}}}
 , {"uuid": "wsmatrix@martin.zurowietz.de", "name": "Workspace Matrix", "pname": "workspace-matrix", "description": "Arrange workspaces in a two dimensional grid with workspace thumbnails.", "link": "https://extensions.gnome.org/extension/1485/workspace-matrix/", "shell_version_map": {"38": {"version": "27", "sha256": "0b76x0li5a8x42l67ykbw34k4cfmbxqvz36zighhfw4qmxsc36cr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd29ya3NwYWNlcyBpbiBhIHR3byBkaW1lbnNpb25hbCBncmlkIHdpdGggd29ya3NwYWNlIHRodW1ibmFpbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid3NtYXRyaXgiLAogICJrZXliaW5kaW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgta2V5YmluZGluZ3MiLAogICJuYW1lIjogIldvcmtzcGFjZSBNYXRyaXgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tenVyL2dub21lLXNoZWxsLXdzbWF0cml4IiwKICAidXVpZCI6ICJ3c21hdHJpeEBtYXJ0aW4uenVyb3dpZXR6LmRlIiwKICAidmVyc2lvbiI6IDI3Cn0="}, "40": {"version": "33", "sha256": "1pfq2sgz3h97xyqnxjzzjij3abd6132xjibhl2y3423ylwqg5xf8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd29ya3NwYWNlcyBpbiBhIHR3byBkaW1lbnNpb25hbCBncmlkIHdpdGggd29ya3NwYWNlIHRodW1ibmFpbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid3NtYXRyaXgiLAogICJrZXliaW5kaW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgta2V5YmluZGluZ3MiLAogICJuYW1lIjogIldvcmtzcGFjZSBNYXRyaXgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL216dXIvZ25vbWUtc2hlbGwtd3NtYXRyaXgiLAogICJ1dWlkIjogIndzbWF0cml4QG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "41": {"version": "33", "sha256": "1pfq2sgz3h97xyqnxjzzjij3abd6132xjibhl2y3423ylwqg5xf8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd29ya3NwYWNlcyBpbiBhIHR3byBkaW1lbnNpb25hbCBncmlkIHdpdGggd29ya3NwYWNlIHRodW1ibmFpbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid3NtYXRyaXgiLAogICJrZXliaW5kaW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgta2V5YmluZGluZ3MiLAogICJuYW1lIjogIldvcmtzcGFjZSBNYXRyaXgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL216dXIvZ25vbWUtc2hlbGwtd3NtYXRyaXgiLAogICJ1dWlkIjogIndzbWF0cml4QG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMzMKfQ=="}}}
-, {"uuid": "extensions-sync@elhan.io", "name": "Extensions Sync", "pname": "extensions-sync", "description": "Sync all extensions and their configurations across all gnome instances", "link": "https://extensions.gnome.org/extension/1486/extensions-sync/", "shell_version_map": {"38": {"version": "12", "sha256": "0yb0brjnqvvlqpdyh841qwh3q2d02vi1an0s93gb2b6kagy1g7zd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmMgYWxsIGV4dGVuc2lvbnMgYW5kIHRoZWlyIGNvbmZpZ3VyYXRpb25zIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFuY2VzIiwKICAibmFtZSI6ICJFeHRlbnNpb25zIFN5bmMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9ucy1zeW5jIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb2FlL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtc3luYyIsCiAgInV1aWQiOiAiZXh0ZW5zaW9ucy1zeW5jQGVsaGFuLmlvIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "17", "sha256": "0ssnci70lrvn1f909ldwffm3ssrc45pscdi17ncj8fjjcb9wwf09", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmMgYWxsIGV4dGVuc2lvbnMgYW5kIHRoZWlyIGNvbmZpZ3VyYXRpb25zIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFuY2VzIiwKICAibmFtZSI6ICJFeHRlbnNpb25zIFN5bmMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9ucy1zeW5jIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb2FlL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtc3luYyIsCiAgInV1aWQiOiAiZXh0ZW5zaW9ucy1zeW5jQGVsaGFuLmlvIiwKICAidmVyc2lvbiI6IDE3Cn0="}, "41": {"version": "17", "sha256": "0ssnci70lrvn1f909ldwffm3ssrc45pscdi17ncj8fjjcb9wwf09", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmMgYWxsIGV4dGVuc2lvbnMgYW5kIHRoZWlyIGNvbmZpZ3VyYXRpb25zIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFuY2VzIiwKICAibmFtZSI6ICJFeHRlbnNpb25zIFN5bmMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9ucy1zeW5jIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb2FlL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtc3luYyIsCiAgInV1aWQiOiAiZXh0ZW5zaW9ucy1zeW5jQGVsaGFuLmlvIiwKICAidmVyc2lvbiI6IDE3Cn0="}, "42": {"version": "17", "sha256": "0ssnci70lrvn1f909ldwffm3ssrc45pscdi17ncj8fjjcb9wwf09", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmMgYWxsIGV4dGVuc2lvbnMgYW5kIHRoZWlyIGNvbmZpZ3VyYXRpb25zIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFuY2VzIiwKICAibmFtZSI6ICJFeHRlbnNpb25zIFN5bmMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9ucy1zeW5jIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb2FlL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtc3luYyIsCiAgInV1aWQiOiAiZXh0ZW5zaW9ucy1zeW5jQGVsaGFuLmlvIiwKICAidmVyc2lvbiI6IDE3Cn0="}}}
+, {"uuid": "extensions-sync@elhan.io", "name": "Extensions Sync", "pname": "extensions-sync", "description": "Syncs gnome shell keybindings, tweaks settings and extensions with their configuration across all gnome installations", "link": "https://extensions.gnome.org/extension/1486/extensions-sync/", "shell_version_map": {"38": {"version": "12", "sha256": "170hljy4ygb3fw429fkmfalwlyb6p0fb4p48yvn99wbbfqgz4jsb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmNzIGdub21lIHNoZWxsIGtleWJpbmRpbmdzLCB0d2Vha3Mgc2V0dGluZ3MgYW5kIGV4dGVuc2lvbnMgd2l0aCB0aGVpciBjb25maWd1cmF0aW9uIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFsbGF0aW9ucyIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9ucyBTeW5jIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmV4dGVuc2lvbnMtc3luYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29hZS9nbm9tZS1zaGVsbC1leHRlbnNpb25zLXN5bmMiLAogICJ1dWlkIjogImV4dGVuc2lvbnMtc3luY0BlbGhhbi5pbyIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "17", "sha256": "0dd9xhnkzd69crxv2lx5gghz3jjnjsl530ywwv4ks06n7ff218fn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmNzIGdub21lIHNoZWxsIGtleWJpbmRpbmdzLCB0d2Vha3Mgc2V0dGluZ3MgYW5kIGV4dGVuc2lvbnMgd2l0aCB0aGVpciBjb25maWd1cmF0aW9uIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFsbGF0aW9ucyIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9ucyBTeW5jIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmV4dGVuc2lvbnMtc3luYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29hZS9nbm9tZS1zaGVsbC1leHRlbnNpb25zLXN5bmMiLAogICJ1dWlkIjogImV4dGVuc2lvbnMtc3luY0BlbGhhbi5pbyIsCiAgInZlcnNpb24iOiAxNwp9"}, "41": {"version": "17", "sha256": "0dd9xhnkzd69crxv2lx5gghz3jjnjsl530ywwv4ks06n7ff218fn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmNzIGdub21lIHNoZWxsIGtleWJpbmRpbmdzLCB0d2Vha3Mgc2V0dGluZ3MgYW5kIGV4dGVuc2lvbnMgd2l0aCB0aGVpciBjb25maWd1cmF0aW9uIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFsbGF0aW9ucyIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9ucyBTeW5jIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmV4dGVuc2lvbnMtc3luYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29hZS9nbm9tZS1zaGVsbC1leHRlbnNpb25zLXN5bmMiLAogICJ1dWlkIjogImV4dGVuc2lvbnMtc3luY0BlbGhhbi5pbyIsCiAgInZlcnNpb24iOiAxNwp9"}, "42": {"version": "17", "sha256": "0dd9xhnkzd69crxv2lx5gghz3jjnjsl530ywwv4ks06n7ff218fn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmNzIGdub21lIHNoZWxsIGtleWJpbmRpbmdzLCB0d2Vha3Mgc2V0dGluZ3MgYW5kIGV4dGVuc2lvbnMgd2l0aCB0aGVpciBjb25maWd1cmF0aW9uIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFsbGF0aW9ucyIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9ucyBTeW5jIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmV4dGVuc2lvbnMtc3luYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29hZS9nbm9tZS1zaGVsbC1leHRlbnNpb25zLXN5bmMiLAogICJ1dWlkIjogImV4dGVuc2lvbnMtc3luY0BlbGhhbi5pbyIsCiAgInZlcnNpb24iOiAxNwp9"}}}
 , {"uuid": "containers@royg", "name": "Containers", "pname": "containers", "description": "Manage podman containers through a gnome-shell menu", "link": "https://extensions.gnome.org/extension/1500/containers/", "shell_version_map": {"40": {"version": "19", "sha256": "16z5978jwpf6cbasnfdi5w8s9dx929r8yh7a4dsrd5isnrnyi22x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmdvbGFuZ2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbnRhaW5lcnMiLAogICJ1dWlkIjogImNvbnRhaW5lcnNAcm95ZyIsCiAgInZlcnNpb24iOiAxOQp9"}, "41": {"version": "19", "sha256": "16z5978jwpf6cbasnfdi5w8s9dx929r8yh7a4dsrd5isnrnyi22x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmdvbGFuZ2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbnRhaW5lcnMiLAogICJ1dWlkIjogImNvbnRhaW5lcnNAcm95ZyIsCiAgInZlcnNpb24iOiAxOQp9"}}}
 , {"uuid": "fullscreenworkspace@satran.in", "name": "Fullscreen On New Workspace", "pname": "fullscreen-on-new-workspace", "description": "Move window to a new workspace when you maximize or make it fullscreen.", "link": "https://extensions.gnome.org/extension/1502/fullscreen-on-new-workspace/", "shell_version_map": {"38": {"version": "6", "sha256": "1lyfn0p9djdkmhaxj9f95jf6iknb688d81ls3ycf667i4jk5qnrq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgd2luZG93IHRvIGEgbmV3IHdvcmtzcGFjZSB3aGVuIHlvdSBtYXhpbWl6ZSBvciBtYWtlIGl0IGZ1bGxzY3JlZW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnVsbHNjcmVlbndvcmtzcGFjZSIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBPbiBOZXcgV29ya3NwYWNlIiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW53b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbiIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbndvcmtzcGFjZUBzYXRyYW4uaW4iLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "1lyfn0p9djdkmhaxj9f95jf6iknb688d81ls3ycf667i4jk5qnrq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgd2luZG93IHRvIGEgbmV3IHdvcmtzcGFjZSB3aGVuIHlvdSBtYXhpbWl6ZSBvciBtYWtlIGl0IGZ1bGxzY3JlZW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnVsbHNjcmVlbndvcmtzcGFjZSIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBPbiBOZXcgV29ya3NwYWNlIiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW53b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbiIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbndvcmtzcGFjZUBzYXRyYW4uaW4iLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "1lyfn0p9djdkmhaxj9f95jf6iknb688d81ls3ycf667i4jk5qnrq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgd2luZG93IHRvIGEgbmV3IHdvcmtzcGFjZSB3aGVuIHlvdSBtYXhpbWl6ZSBvciBtYWtlIGl0IGZ1bGxzY3JlZW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnVsbHNjcmVlbndvcmtzcGFjZSIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBPbiBOZXcgV29ya3NwYWNlIiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW53b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbiIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbndvcmtzcGFjZUBzYXRyYW4uaW4iLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "tray-icons@zhangkaizhao.com", "name": "Tray Icons", "pname": "tray-icons", "description": "Tray icons", "link": "https://extensions.gnome.org/extension/1503/tray-icons/", "shell_version_map": {"38": {"version": "6", "sha256": "0q5kk8yp7cg61d4hcimrxrghsq7v8qaxjbmzvkj5apbg4cmz3s7v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgaWNvbnMiLAogICJuYW1lIjogIlRyYXkgSWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5na2Fpemhhby9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJheS1pY29ucyIsCiAgInV1aWQiOiAidHJheS1pY29uc0B6aGFuZ2thaXpoYW8uY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0q5kk8yp7cg61d4hcimrxrghsq7v8qaxjbmzvkj5apbg4cmz3s7v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgaWNvbnMiLAogICJuYW1lIjogIlRyYXkgSWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5na2Fpemhhby9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJheS1pY29ucyIsCiAgInV1aWQiOiAidHJheS1pY29uc0B6aGFuZ2thaXpoYW8uY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
@@ -208,7 +208,7 @@
 , {"uuid": "Rounded_Corners@lennart-k", "name": "Rounded Corners", "pname": "rounded-corners", "description": "Creates rounded corners for every monitor", "link": "https://extensions.gnome.org/extension/1514/rounded-corners/", "shell_version_map": {"38": {"version": "4", "sha256": "0pvbnv97g2mjbklszxvp6df50iw9kyr1ssfza8ia9779x5zq9bk9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgcm91bmRlZCBjb3JuZXJzIGZvciBldmVyeSBtb25pdG9yIiwKICAibmFtZSI6ICJSb3VuZGVkIENvcm5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sZW5uYXJ0LWsvZ25vbWUtcm91bmRlZC1jb3JuZXJzIiwKICAidXVpZCI6ICJSb3VuZGVkX0Nvcm5lcnNAbGVubmFydC1rIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "7", "sha256": "11accb4w8cx3gfrrs2x15h53arjkpqk566cp24c3k32alvqx1jgs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgcm91bmRlZCBjb3JuZXJzIGZvciBldmVyeSBtb25pdG9yIiwKICAibmFtZSI6ICJSb3VuZGVkIENvcm5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xlbm5hcnQtay9nbm9tZS1yb3VuZGVkLWNvcm5lcnMiLAogICJ1dWlkIjogIlJvdW5kZWRfQ29ybmVyc0BsZW5uYXJ0LWsiLAogICJ2ZXJzaW9uIjogNwp9"}, "41": {"version": "7", "sha256": "11accb4w8cx3gfrrs2x15h53arjkpqk566cp24c3k32alvqx1jgs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgcm91bmRlZCBjb3JuZXJzIGZvciBldmVyeSBtb25pdG9yIiwKICAibmFtZSI6ICJSb3VuZGVkIENvcm5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xlbm5hcnQtay9nbm9tZS1yb3VuZGVkLWNvcm5lcnMiLAogICJ1dWlkIjogIlJvdW5kZWRfQ29ybmVyc0BsZW5uYXJ0LWsiLAogICJ2ZXJzaW9uIjogNwp9"}}}
 , {"uuid": "scrovol@andyholmes.github.io", "name": "Scrovol", "pname": "scrovol", "description": "Change the volume by scrolling anywhere on the System Tray.\n\nWith this extension, you can scroll over Night Light, WiFi, Volume, Battery or any other icon in the system status tray to change the volume, instead of just the Volume icon.", "link": "https://extensions.gnome.org/extension/1519/scrovol/", "shell_version_map": {"40": {"version": "4", "sha256": "1md52ygz481nvhq00bkq2ymby7f647cfvw4wx1wqkwp7b796d59c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgdm9sdW1lIGJ5IHNjcm9sbGluZyBhbnl3aGVyZSBvbiB0aGUgU3lzdGVtIFRyYXkuXG5cbldpdGggdGhpcyBleHRlbnNpb24sIHlvdSBjYW4gc2Nyb2xsIG92ZXIgTmlnaHQgTGlnaHQsIFdpRmksIFZvbHVtZSwgQmF0dGVyeSBvciBhbnkgb3RoZXIgaWNvbiBpbiB0aGUgc3lzdGVtIHN0YXR1cyB0cmF5IHRvIGNoYW5nZSB0aGUgdm9sdW1lLCBpbnN0ZWFkIG9mIGp1c3QgdGhlIFZvbHVtZSBpY29uLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3Jvdm9sIiwKICAibmFtZSI6ICJTY3Jvdm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW5keWhvbG1lcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2Nyb3ZvbC8iLAogICJ1dWlkIjogInNjcm92b2xAYW5keWhvbG1lcy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "notification-center@Selenium-H", "name": "Notification Center", "pname": "notification-centerselenium-h", "description": "Detach notification center to top panel and customizations.Please reset the extension after updating.\nThe Extension will stop when upgraded to an incompatible version.\nIn that case an Update tab is created to easily reset the extension.\nA Reset button is also always present in Preferences option in the Top Right Application menu of the extension preferences window.", "link": "https://extensions.gnome.org/extension/1526/notification-centerselenium-h/", "shell_version_map": {"38": {"version": "24", "sha256": "1449kl7fss2fyj1ks8ra3qy60jvn5fcl1iyv813s8vdkkp5dv8a2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiRGV0YWNoIG5vdGlmaWNhdGlvbiBjZW50ZXIgdG8gdG9wIHBhbmVsIGFuZCBjdXN0b21pemF0aW9ucy4iLAogICJkZXNjcmlwdGlvbiI6ICJEZXRhY2ggbm90aWZpY2F0aW9uIGNlbnRlciB0byB0b3AgcGFuZWwgYW5kIGN1c3RvbWl6YXRpb25zLlBsZWFzZSByZXNldCB0aGUgZXh0ZW5zaW9uIGFmdGVyIHVwZGF0aW5nLlxuVGhlIEV4dGVuc2lvbiB3aWxsIHN0b3Agd2hlbiB1cGdyYWRlZCB0byBhbiBpbmNvbXBhdGlibGUgdmVyc2lvbi5cbkluIHRoYXQgY2FzZSBhbiBVcGRhdGUgdGFiIGlzIGNyZWF0ZWQgdG8gZWFzaWx5IHJlc2V0IHRoZSBleHRlbnNpb24uXG5BIFJlc2V0IGJ1dHRvbiBpcyBhbHNvIGFsd2F5cyBwcmVzZW50IGluIFByZWZlcmVuY2VzIG9wdGlvbiBpbiB0aGUgVG9wIFJpZ2h0IEFwcGxpY2F0aW9uIG1lbnUgb2YgdGhlIGV4dGVuc2lvbiBwcmVmZXJlbmNlcyB3aW5kb3cuIiwKICAibmFtZSI6ICJOb3RpZmljYXRpb24gQ2VudGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGlmaWNhdGlvbi1jZW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInN0YXR1cyI6ICIiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtLUgvTm90aWZpY2F0aW9uLUNlbnRlciIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLWNlbnRlckBTZWxlbml1bS1IIiwKICAidmVyc2lvbiI6IDI0Cn0="}, "40": {"version": "24", "sha256": "1449kl7fss2fyj1ks8ra3qy60jvn5fcl1iyv813s8vdkkp5dv8a2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiRGV0YWNoIG5vdGlmaWNhdGlvbiBjZW50ZXIgdG8gdG9wIHBhbmVsIGFuZCBjdXN0b21pemF0aW9ucy4iLAogICJkZXNjcmlwdGlvbiI6ICJEZXRhY2ggbm90aWZpY2F0aW9uIGNlbnRlciB0byB0b3AgcGFuZWwgYW5kIGN1c3RvbWl6YXRpb25zLlBsZWFzZSByZXNldCB0aGUgZXh0ZW5zaW9uIGFmdGVyIHVwZGF0aW5nLlxuVGhlIEV4dGVuc2lvbiB3aWxsIHN0b3Agd2hlbiB1cGdyYWRlZCB0byBhbiBpbmNvbXBhdGlibGUgdmVyc2lvbi5cbkluIHRoYXQgY2FzZSBhbiBVcGRhdGUgdGFiIGlzIGNyZWF0ZWQgdG8gZWFzaWx5IHJlc2V0IHRoZSBleHRlbnNpb24uXG5BIFJlc2V0IGJ1dHRvbiBpcyBhbHNvIGFsd2F5cyBwcmVzZW50IGluIFByZWZlcmVuY2VzIG9wdGlvbiBpbiB0aGUgVG9wIFJpZ2h0IEFwcGxpY2F0aW9uIG1lbnUgb2YgdGhlIGV4dGVuc2lvbiBwcmVmZXJlbmNlcyB3aW5kb3cuIiwKICAibmFtZSI6ICJOb3RpZmljYXRpb24gQ2VudGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGlmaWNhdGlvbi1jZW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInN0YXR1cyI6ICIiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtLUgvTm90aWZpY2F0aW9uLUNlbnRlciIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLWNlbnRlckBTZWxlbml1bS1IIiwKICAidmVyc2lvbiI6IDI0Cn0="}}}
-, {"uuid": "lockkeys@fawtytoo", "name": "Lock Keys", "pname": "lock-keys", "description": "Numlock and Capslock status on the panel. Icons are auto hidden. Simplified with no menus, notifications or settings.\n\nWayland is only supported for Gnome Shell 3.38.", "link": "https://extensions.gnome.org/extension/1532/lock-keys/", "shell_version_map": {"38": {"version": "13", "sha256": "0a444cxwnbgp45w84lq4x3b81kx0vldiixsc2kh3mijqh3rca9vr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgYW5kIENhcHNsb2NrIHN0YXR1cyBvbiB0aGUgcGFuZWwuIEljb25zIGFyZSBhdXRvIGhpZGRlbi4gU2ltcGxpZmllZCB3aXRoIG5vIG1lbnVzLCBub3RpZmljYXRpb25zIG9yIHNldHRpbmdzLlxuXG5XYXlsYW5kIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBHbm9tZSBTaGVsbCAzLjM4LiIsCiAgIm5hbWUiOiAiTG9jayBLZXlzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJTdGV2ZSBDbGFyaywgS2F6aW1pZXJhcyBWYWluYSwgUGllcnJlIE9zc21hbiwgZXJndWlsbGUsIGpvbm5pdXMsIFBoaWxpcHAgV29sZmVyLCBNYXJpdXN6IExpc293c2tpLCBDcmlzdGlhbiBCZXJvaXphLCB3YXJtc3VuMDIyMCwgUmFzbXVzIEthaiwgUGFibG8gTWFydGluLUdvbWV6IEJvdXNrYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImxvY2trZXlzQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDEzCn0="}, "40": {"version": "13", "sha256": "0a444cxwnbgp45w84lq4x3b81kx0vldiixsc2kh3mijqh3rca9vr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgYW5kIENhcHNsb2NrIHN0YXR1cyBvbiB0aGUgcGFuZWwuIEljb25zIGFyZSBhdXRvIGhpZGRlbi4gU2ltcGxpZmllZCB3aXRoIG5vIG1lbnVzLCBub3RpZmljYXRpb25zIG9yIHNldHRpbmdzLlxuXG5XYXlsYW5kIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBHbm9tZSBTaGVsbCAzLjM4LiIsCiAgIm5hbWUiOiAiTG9jayBLZXlzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJTdGV2ZSBDbGFyaywgS2F6aW1pZXJhcyBWYWluYSwgUGllcnJlIE9zc21hbiwgZXJndWlsbGUsIGpvbm5pdXMsIFBoaWxpcHAgV29sZmVyLCBNYXJpdXN6IExpc293c2tpLCBDcmlzdGlhbiBCZXJvaXphLCB3YXJtc3VuMDIyMCwgUmFzbXVzIEthaiwgUGFibG8gTWFydGluLUdvbWV6IEJvdXNrYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImxvY2trZXlzQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDEzCn0="}, "41": {"version": "13", "sha256": "0a444cxwnbgp45w84lq4x3b81kx0vldiixsc2kh3mijqh3rca9vr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgYW5kIENhcHNsb2NrIHN0YXR1cyBvbiB0aGUgcGFuZWwuIEljb25zIGFyZSBhdXRvIGhpZGRlbi4gU2ltcGxpZmllZCB3aXRoIG5vIG1lbnVzLCBub3RpZmljYXRpb25zIG9yIHNldHRpbmdzLlxuXG5XYXlsYW5kIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBHbm9tZSBTaGVsbCAzLjM4LiIsCiAgIm5hbWUiOiAiTG9jayBLZXlzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJTdGV2ZSBDbGFyaywgS2F6aW1pZXJhcyBWYWluYSwgUGllcnJlIE9zc21hbiwgZXJndWlsbGUsIGpvbm5pdXMsIFBoaWxpcHAgV29sZmVyLCBNYXJpdXN6IExpc293c2tpLCBDcmlzdGlhbiBCZXJvaXphLCB3YXJtc3VuMDIyMCwgUmFzbXVzIEthaiwgUGFibG8gTWFydGluLUdvbWV6IEJvdXNrYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImxvY2trZXlzQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
+, {"uuid": "lockkeys@fawtytoo", "name": "Lock Keys", "pname": "lock-keys", "description": "Numlock and Capslock status on the panel. Icons are auto hidden. Simplified with no menus, notifications or settings.\n\nWayland is only supported for Gnome Shell 3.38.", "link": "https://extensions.gnome.org/extension/1532/lock-keys/", "shell_version_map": {"38": {"version": "14", "sha256": "15gp2ncmh7ad1pdr2wc8jilwcp47mgchi82ldk0zpfbkl2f8cpm0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgYW5kIENhcHNsb2NrIHN0YXR1cyBvbiB0aGUgcGFuZWwuIEljb25zIGFyZSBhdXRvIGhpZGRlbi4gU2ltcGxpZmllZCB3aXRoIG5vIG1lbnVzLCBub3RpZmljYXRpb25zIG9yIHNldHRpbmdzLlxuXG5XYXlsYW5kIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBHbm9tZSBTaGVsbCAzLjM4LiIsCiAgIm5hbWUiOiAiTG9jayBLZXlzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJTdGV2ZSBDbGFyaywgS2F6aW1pZXJhcyBWYWluYSwgUGllcnJlIE9zc21hbiwgZXJndWlsbGUsIGpvbm5pdXMsIFBoaWxpcHAgV29sZmVyLCBNYXJpdXN6IExpc293c2tpLCBDcmlzdGlhbiBCZXJvaXphLCB3YXJtc3VuMDIyMCwgUmFzbXVzIEthaiwgUGFibG8gTWFydGluLUdvbWV6IEJvdXNrYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJsb2Nra2V5c0BmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxNAp9"}, "40": {"version": "14", "sha256": "15gp2ncmh7ad1pdr2wc8jilwcp47mgchi82ldk0zpfbkl2f8cpm0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgYW5kIENhcHNsb2NrIHN0YXR1cyBvbiB0aGUgcGFuZWwuIEljb25zIGFyZSBhdXRvIGhpZGRlbi4gU2ltcGxpZmllZCB3aXRoIG5vIG1lbnVzLCBub3RpZmljYXRpb25zIG9yIHNldHRpbmdzLlxuXG5XYXlsYW5kIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBHbm9tZSBTaGVsbCAzLjM4LiIsCiAgIm5hbWUiOiAiTG9jayBLZXlzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJTdGV2ZSBDbGFyaywgS2F6aW1pZXJhcyBWYWluYSwgUGllcnJlIE9zc21hbiwgZXJndWlsbGUsIGpvbm5pdXMsIFBoaWxpcHAgV29sZmVyLCBNYXJpdXN6IExpc293c2tpLCBDcmlzdGlhbiBCZXJvaXphLCB3YXJtc3VuMDIyMCwgUmFzbXVzIEthaiwgUGFibG8gTWFydGluLUdvbWV6IEJvdXNrYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJsb2Nra2V5c0BmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxNAp9"}, "41": {"version": "14", "sha256": "15gp2ncmh7ad1pdr2wc8jilwcp47mgchi82ldk0zpfbkl2f8cpm0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgYW5kIENhcHNsb2NrIHN0YXR1cyBvbiB0aGUgcGFuZWwuIEljb25zIGFyZSBhdXRvIGhpZGRlbi4gU2ltcGxpZmllZCB3aXRoIG5vIG1lbnVzLCBub3RpZmljYXRpb25zIG9yIHNldHRpbmdzLlxuXG5XYXlsYW5kIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBHbm9tZSBTaGVsbCAzLjM4LiIsCiAgIm5hbWUiOiAiTG9jayBLZXlzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJTdGV2ZSBDbGFyaywgS2F6aW1pZXJhcyBWYWluYSwgUGllcnJlIE9zc21hbiwgZXJndWlsbGUsIGpvbm5pdXMsIFBoaWxpcHAgV29sZmVyLCBNYXJpdXN6IExpc293c2tpLCBDcmlzdGlhbiBCZXJvaXphLCB3YXJtc3VuMDIyMCwgUmFzbXVzIEthaiwgUGFibG8gTWFydGluLUdvbWV6IEJvdXNrYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJsb2Nra2V5c0BmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxNAp9"}, "42": {"version": "14", "sha256": "15gp2ncmh7ad1pdr2wc8jilwcp47mgchi82ldk0zpfbkl2f8cpm0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgYW5kIENhcHNsb2NrIHN0YXR1cyBvbiB0aGUgcGFuZWwuIEljb25zIGFyZSBhdXRvIGhpZGRlbi4gU2ltcGxpZmllZCB3aXRoIG5vIG1lbnVzLCBub3RpZmljYXRpb25zIG9yIHNldHRpbmdzLlxuXG5XYXlsYW5kIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBHbm9tZSBTaGVsbCAzLjM4LiIsCiAgIm5hbWUiOiAiTG9jayBLZXlzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJTdGV2ZSBDbGFyaywgS2F6aW1pZXJhcyBWYWluYSwgUGllcnJlIE9zc21hbiwgZXJndWlsbGUsIGpvbm5pdXMsIFBoaWxpcHAgV29sZmVyLCBNYXJpdXN6IExpc293c2tpLCBDcmlzdGlhbiBCZXJvaXphLCB3YXJtc3VuMDIyMCwgUmFzbXVzIEthaiwgUGFibG8gTWFydGluLUdvbWV6IEJvdXNrYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJsb2Nra2V5c0BmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxNAp9"}}}
 , {"uuid": "LetItSnow@mateusz.banaszek.op.pl", "name": "Let it snow", "pname": "let-it-snow", "description": "Bring winter to your desktop: unicode snowflakes falling on your screens.\n\nFeatures:\n- snow doesn't fall over currently active window\n- use slider to choose how much snow you want\n- works with multiple monitors\n\nInspired by gsnow (https://extensions.gnome.org/extension/1156/gsnow/).", "link": "https://extensions.gnome.org/extension/1547/let-it-snow/", "shell_version_map": {"38": {"version": "5", "sha256": "07znrbba154277lxx1bvidn4kz5bgkxpgy7rv3sm472qdbsljl35", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIHdpbnRlciB0byB5b3VyIGRlc2t0b3A6IHVuaWNvZGUgc25vd2ZsYWtlcyBmYWxsaW5nIG9uIHlvdXIgc2NyZWVucy5cblxuRmVhdHVyZXM6XG4tIHNub3cgZG9lc24ndCBmYWxsIG92ZXIgY3VycmVudGx5IGFjdGl2ZSB3aW5kb3dcbi0gdXNlIHNsaWRlciB0byBjaG9vc2UgaG93IG11Y2ggc25vdyB5b3Ugd2FudFxuLSB3b3JrcyB3aXRoIG11bHRpcGxlIG1vbml0b3JzXG5cbkluc3BpcmVkIGJ5IGdzbm93IChodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTU2L2dzbm93LykuIiwKICAibmFtZSI6ICJMZXQgaXQgc25vdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9iaXRidWNrZXQub3JnL21hdGJhbi9sZXQtaXQtc25vdyIsCiAgInV1aWQiOiAiTGV0SXRTbm93QG1hdGV1c3ouYmFuYXN6ZWsub3AucGwiLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "fullscreen-hot-corner@sorrow.about.alice.pm.me", "name": "Fullscreen Hot Corner", "pname": "fullscreen-hot-corner", "description": "Enables hot corner in fullscreen mode", "link": "https://extensions.gnome.org/extension/1562/fullscreen-hot-corner/", "shell_version_map": {"38": {"version": "6", "sha256": "1lcpw06aqja4q7qqfvds5nv2zvzrjh56lymj1al4kiql92gbwzp1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgaG90IGNvcm5lciBpbiBmdWxsc2NyZWVuIG1vZGUiLAogICJuYW1lIjogIkZ1bGxzY3JlZW4gSG90IENvcm5lciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NvYWwvZ25vbWUtc2hlbGwtZnVsbHNjcmVlbi1ob3QtY29ybmVyIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLWhvdC1jb3JuZXJAc29ycm93LmFib3V0LmFsaWNlLnBtLm1lIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "9", "sha256": "0zx11gpacjd259cxd80ggffixpyqprvzcx1971ysvm7jrayrm058", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgaG90IGNvcm5lciBpbiBmdWxsc2NyZWVuIG1vZGUiLAogICJuYW1lIjogIkZ1bGxzY3JlZW4gSG90IENvcm5lciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc29hbC9nbm9tZS1zaGVsbC1mdWxsc2NyZWVuLWhvdC1jb3JuZXIiLAogICJ1dWlkIjogImZ1bGxzY3JlZW4taG90LWNvcm5lckBzb3Jyb3cuYWJvdXQuYWxpY2UucG0ubWUiLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "0zx11gpacjd259cxd80ggffixpyqprvzcx1971ysvm7jrayrm058", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgaG90IGNvcm5lciBpbiBmdWxsc2NyZWVuIG1vZGUiLAogICJuYW1lIjogIkZ1bGxzY3JlZW4gSG90IENvcm5lciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc29hbC9nbm9tZS1zaGVsbC1mdWxsc2NyZWVuLWhvdC1jb3JuZXIiLAogICJ1dWlkIjogImZ1bGxzY3JlZW4taG90LWNvcm5lckBzb3Jyb3cuYWJvdXQuYWxpY2UucG0ubWUiLAogICJ2ZXJzaW9uIjogOQp9"}}}
 , {"uuid": "worksets@blipk.xyz", "name": "Customised Workspaces", "pname": "worksets", "description": "Customised Workspaces enables creating isolated and customised workspaces.\n\n* Customise the dash to be unique for each workspace, each with their own favourites\n* Only show running applications on the dash in their respective workspace\n* Choose a custom background image for each workspace\n* Minor UI tweaks to the overview workspaces\n* Save each customisation, set them to autoload on specific workspaces\n* Hide the extension once you've configured your preferences to enjoy seamlessly upgraded workspaces in gnome shell\n\nCompatible for use with any of these extensions to complete your workspace upgrade:\n\n* Dash to Panel - https://extensions.gnome.org/extension/1160/dash-to-panel/\n* Dash to Dock - https://extensions.gnome.org/extension/307/dash-to-dock/\n* Auto Move Windows - https://extensions.gnome.org/extension/16/auto-move-windows/\n* Vertical Overview - https://github.com/RensAlthuis/vertical-overview", "link": "https://extensions.gnome.org/extension/1583/worksets/", "shell_version_map": {"38": {"version": "30", "sha256": "0mjah9nx66caqmfbz8wrvg6iyhxp7jmbgwx1gnp8k2a2z536n1iw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIEN1c3RvbWlzZSB0aGUgZGFzaCB0byBiZSB1bmlxdWUgZm9yIGVhY2ggd29ya3NwYWNlLCBlYWNoIHdpdGggdGhlaXIgb3duIGZhdm91cml0ZXNcbiogT25seSBzaG93IHJ1bm5pbmcgYXBwbGljYXRpb25zIG9uIHRoZSBkYXNoIGluIHRoZWlyIHJlc3BlY3RpdmUgd29ya3NwYWNlXG4qIENob29zZSBhIGN1c3RvbSBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBNaW5vciBVSSB0d2Vha3MgdG8gdGhlIG92ZXJ2aWV3IHdvcmtzcGFjZXNcbiogU2F2ZSBlYWNoIGN1c3RvbWlzYXRpb24sIHNldCB0aGVtIHRvIGF1dG9sb2FkIG9uIHNwZWNpZmljIHdvcmtzcGFjZXNcbiogSGlkZSB0aGUgZXh0ZW5zaW9uIG9uY2UgeW91J3ZlIGNvbmZpZ3VyZWQgeW91ciBwcmVmZXJlbmNlcyB0byBlbmpveSBzZWFtbGVzc2x5IHVwZ3JhZGVkIHdvcmtzcGFjZXMgaW4gZ25vbWUgc2hlbGxcblxuQ29tcGF0aWJsZSBmb3IgdXNlIHdpdGggYW55IG9mIHRoZXNlIGV4dGVuc2lvbnMgdG8gY29tcGxldGUgeW91ciB3b3Jrc3BhY2UgdXBncmFkZTpcblxuKiBEYXNoIHRvIFBhbmVsIC0gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTE2MC9kYXNoLXRvLXBhbmVsL1xuKiBEYXNoIHRvIERvY2sgLSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zMDcvZGFzaC10by1kb2NrL1xuKiBBdXRvIE1vdmUgV2luZG93cyAtIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzE2L2F1dG8tbW92ZS13aW5kb3dzL1xuKiBWZXJ0aWNhbCBPdmVydmlldyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9SZW5zQWx0aHVpcy92ZXJ0aWNhbC1vdmVydmlldyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3b3Jrc2V0cyIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzZXRzIiwKICAibmFtZSI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiYWRtaW5Aa3Jvbm9zb3VsLnh5eiIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsaXBrL0N1c3RvbWlzZWQtV29ya3NwYWNlcyIsCiAgInV1aWQiOiAid29ya3NldHNAYmxpcGsueHl6IiwKICAidmVyc2lvbiI6IDMwCn0="}, "40": {"version": "43", "sha256": "0crrciyngn4jb005hb2dl9pmyd5j4n5spladk395czwi9h4df7l4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIEN1c3RvbWlzZSB0aGUgZGFzaCB0byBiZSB1bmlxdWUgZm9yIGVhY2ggd29ya3NwYWNlLCBlYWNoIHdpdGggdGhlaXIgb3duIGZhdm91cml0ZXNcbiogT25seSBzaG93IHJ1bm5pbmcgYXBwbGljYXRpb25zIG9uIHRoZSBkYXNoIGluIHRoZWlyIHJlc3BlY3RpdmUgd29ya3NwYWNlXG4qIENob29zZSBhIGN1c3RvbSBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBNaW5vciBVSSB0d2Vha3MgdG8gdGhlIG92ZXJ2aWV3IHdvcmtzcGFjZXNcbiogU2F2ZSBlYWNoIGN1c3RvbWlzYXRpb24sIHNldCB0aGVtIHRvIGF1dG9sb2FkIG9uIHNwZWNpZmljIHdvcmtzcGFjZXNcbiogSGlkZSB0aGUgZXh0ZW5zaW9uIG9uY2UgeW91J3ZlIGNvbmZpZ3VyZWQgeW91ciBwcmVmZXJlbmNlcyB0byBlbmpveSBzZWFtbGVzc2x5IHVwZ3JhZGVkIHdvcmtzcGFjZXMgaW4gZ25vbWUgc2hlbGxcblxuQ29tcGF0aWJsZSBmb3IgdXNlIHdpdGggYW55IG9mIHRoZXNlIGV4dGVuc2lvbnMgdG8gY29tcGxldGUgeW91ciB3b3Jrc3BhY2UgdXBncmFkZTpcblxuKiBEYXNoIHRvIFBhbmVsIC0gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTE2MC9kYXNoLXRvLXBhbmVsL1xuKiBEYXNoIHRvIERvY2sgLSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zMDcvZGFzaC10by1kb2NrL1xuKiBBdXRvIE1vdmUgV2luZG93cyAtIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzE2L2F1dG8tbW92ZS13aW5kb3dzL1xuKiBWZXJ0aWNhbCBPdmVydmlldyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9SZW5zQWx0aHVpcy92ZXJ0aWNhbC1vdmVydmlldyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3b3Jrc2V0cyIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzZXRzIiwKICAibmFtZSI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiYmxpcGsiLAogICJyZXNvdXJjZS1wYXRoIjogIi9vcmcva3Jvbm9zb3VsL3dvcmtzZXRzLyIsCiAgInNldHRpbmdzLXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3dvcmtzZXRzLyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc2V0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvQ3VzdG9taXNlZC1Xb3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ3b3Jrc2V0c0BibGlway54eXoiLAogICJ2ZXJzaW9uIjogNDMKfQ=="}, "41": {"version": "43", "sha256": "0crrciyngn4jb005hb2dl9pmyd5j4n5spladk395czwi9h4df7l4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIEN1c3RvbWlzZSB0aGUgZGFzaCB0byBiZSB1bmlxdWUgZm9yIGVhY2ggd29ya3NwYWNlLCBlYWNoIHdpdGggdGhlaXIgb3duIGZhdm91cml0ZXNcbiogT25seSBzaG93IHJ1bm5pbmcgYXBwbGljYXRpb25zIG9uIHRoZSBkYXNoIGluIHRoZWlyIHJlc3BlY3RpdmUgd29ya3NwYWNlXG4qIENob29zZSBhIGN1c3RvbSBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBNaW5vciBVSSB0d2Vha3MgdG8gdGhlIG92ZXJ2aWV3IHdvcmtzcGFjZXNcbiogU2F2ZSBlYWNoIGN1c3RvbWlzYXRpb24sIHNldCB0aGVtIHRvIGF1dG9sb2FkIG9uIHNwZWNpZmljIHdvcmtzcGFjZXNcbiogSGlkZSB0aGUgZXh0ZW5zaW9uIG9uY2UgeW91J3ZlIGNvbmZpZ3VyZWQgeW91ciBwcmVmZXJlbmNlcyB0byBlbmpveSBzZWFtbGVzc2x5IHVwZ3JhZGVkIHdvcmtzcGFjZXMgaW4gZ25vbWUgc2hlbGxcblxuQ29tcGF0aWJsZSBmb3IgdXNlIHdpdGggYW55IG9mIHRoZXNlIGV4dGVuc2lvbnMgdG8gY29tcGxldGUgeW91ciB3b3Jrc3BhY2UgdXBncmFkZTpcblxuKiBEYXNoIHRvIFBhbmVsIC0gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTE2MC9kYXNoLXRvLXBhbmVsL1xuKiBEYXNoIHRvIERvY2sgLSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zMDcvZGFzaC10by1kb2NrL1xuKiBBdXRvIE1vdmUgV2luZG93cyAtIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzE2L2F1dG8tbW92ZS13aW5kb3dzL1xuKiBWZXJ0aWNhbCBPdmVydmlldyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9SZW5zQWx0aHVpcy92ZXJ0aWNhbC1vdmVydmlldyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3b3Jrc2V0cyIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzZXRzIiwKICAibmFtZSI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiYmxpcGsiLAogICJyZXNvdXJjZS1wYXRoIjogIi9vcmcva3Jvbm9zb3VsL3dvcmtzZXRzLyIsCiAgInNldHRpbmdzLXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3dvcmtzZXRzLyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc2V0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvQ3VzdG9taXNlZC1Xb3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ3b3Jrc2V0c0BibGlway54eXoiLAogICJ2ZXJzaW9uIjogNDMKfQ=="}}}
@@ -219,12 +219,12 @@
 , {"uuid": "soft-brightness@fifi.org", "name": "Soft brightness", "pname": "soft-brightness", "description": "Add or override the brightness slider to change the brightness via an alpha layer (and optionally stop using or cooperate with the exising backlight, if present).\nEither internal, external or all monitors can be dimmed.\nSee the GitHub page for details.\n\nNote that this extension will keep running on the lock screen, as you'd also want the brightness setting to apply to the lock screen as well. Please report on GitHub if this gives you any trouble.", "link": "https://extensions.gnome.org/extension/1625/soft-brightness/", "shell_version_map": {"38": {"version": "29", "sha256": "1bkcjlax2s6ly68lpc53axxrmsicdkqg8kjr91n02nlqjdxsaz6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzb2Z0LWJyaWdodG5lc3MiLAogICJuYW1lIjogIlNvZnQgYnJpZ2h0bmVzcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzMuOTAiLAogICAgIjMuMzYiLAogICAgIjMuMzUuMSIsCiAgICAiMy4zNS45MiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvc29mdC1icmlnaHRuZXNzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3NAZmlmaS5vcmciLAogICJ2Y3NfcmV2aXNpb24iOiAidjI5LTAtZ2JiMTA1ZTQiLAogICJ2ZXJzaW9uIjogMjkKfQ=="}, "40": {"version": "29", "sha256": "1bkcjlax2s6ly68lpc53axxrmsicdkqg8kjr91n02nlqjdxsaz6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzb2Z0LWJyaWdodG5lc3MiLAogICJuYW1lIjogIlNvZnQgYnJpZ2h0bmVzcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzMuOTAiLAogICAgIjMuMzYiLAogICAgIjMuMzUuMSIsCiAgICAiMy4zNS45MiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvc29mdC1icmlnaHRuZXNzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3NAZmlmaS5vcmciLAogICJ2Y3NfcmV2aXNpb24iOiAidjI5LTAtZ2JiMTA1ZTQiLAogICJ2ZXJzaW9uIjogMjkKfQ=="}, "41": {"version": "29", "sha256": "1bkcjlax2s6ly68lpc53axxrmsicdkqg8kjr91n02nlqjdxsaz6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzb2Z0LWJyaWdodG5lc3MiLAogICJuYW1lIjogIlNvZnQgYnJpZ2h0bmVzcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzMuOTAiLAogICAgIjMuMzYiLAogICAgIjMuMzUuMSIsCiAgICAiMy4zNS45MiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvc29mdC1icmlnaHRuZXNzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3NAZmlmaS5vcmciLAogICJ2Y3NfcmV2aXNpb24iOiAidjI5LTAtZ2JiMTA1ZTQiLAogICJ2ZXJzaW9uIjogMjkKfQ=="}}}
 , {"uuid": "Resource_Monitor@Ory0n", "name": "Resource Monitor", "pname": "resource-monitor", "description": "Monitor the use of system resources like cpu, ram, disk, network and display them in gnome shell top bar.", "link": "https://extensions.gnome.org/extension/1634/resource-monitor/", "shell_version_map": {"38": {"version": "14", "sha256": "0mg6b54cinplc4i3kzn6p397a8flyivcyzg30pnfq7phhgpcnxwj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJHaXVzZXBwZSBTaWx2ZXN0cm8iLAogICJkZXNjcmlwdGlvbiI6ICJNb25pdG9yIHRoZSB1c2Ugb2Ygc3lzdGVtIHJlc291cmNlcyBsaWtlIGNwdSwgcmFtLCBkaXNrLCBuZXR3b3JrIGFuZCBkaXNwbGF5IHRoZW0gaW4gZ25vbWUgc2hlbGwgdG9wIGJhci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjb20tZ2l0aHViLU9yeTBuLVJlc291cmNlX01vbml0b3IiLAogICJuYW1lIjogIlJlc291cmNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5Pcnkwbi5SZXNvdXJjZV9Nb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMHJ5MG4vUmVzb3VyY2VfTW9uaXRvci8iLAogICJ1dWlkIjogIlJlc291cmNlX01vbml0b3JAT3J5MG4iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "16", "sha256": "0jpamw200p1q0g7h1llvaq3hrqijgzkp7apgyvbgw8mg529q3xyj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJHaXVzZXBwZSBTaWx2ZXN0cm8iLAogICJkZXNjcmlwdGlvbiI6ICJNb25pdG9yIHRoZSB1c2Ugb2Ygc3lzdGVtIHJlc291cmNlcyBsaWtlIGNwdSwgcmFtLCBkaXNrLCBuZXR3b3JrIGFuZCBkaXNwbGF5IHRoZW0gaW4gZ25vbWUgc2hlbGwgdG9wIGJhci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjb20tZ2l0aHViLU9yeTBuLVJlc291cmNlX01vbml0b3IiLAogICJuYW1lIjogIlJlc291cmNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5Pcnkwbi5SZXNvdXJjZV9Nb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8wcnkwbi9SZXNvdXJjZV9Nb25pdG9yLyIsCiAgInV1aWQiOiAiUmVzb3VyY2VfTW9uaXRvckBPcnkwbiIsCiAgInZlcnNpb24iOiAxNgp9"}, "41": {"version": "16", "sha256": "0jpamw200p1q0g7h1llvaq3hrqijgzkp7apgyvbgw8mg529q3xyj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJHaXVzZXBwZSBTaWx2ZXN0cm8iLAogICJkZXNjcmlwdGlvbiI6ICJNb25pdG9yIHRoZSB1c2Ugb2Ygc3lzdGVtIHJlc291cmNlcyBsaWtlIGNwdSwgcmFtLCBkaXNrLCBuZXR3b3JrIGFuZCBkaXNwbGF5IHRoZW0gaW4gZ25vbWUgc2hlbGwgdG9wIGJhci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjb20tZ2l0aHViLU9yeTBuLVJlc291cmNlX01vbml0b3IiLAogICJuYW1lIjogIlJlc291cmNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5Pcnkwbi5SZXNvdXJjZV9Nb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8wcnkwbi9SZXNvdXJjZV9Nb25pdG9yLyIsCiAgInV1aWQiOiAiUmVzb3VyY2VfTW9uaXRvckBPcnkwbiIsCiAgInZlcnNpb24iOiAxNgp9"}}}
 , {"uuid": "tweaks-system-menu@extensions.gnome-shell.fifi.org", "name": "Tweaks & Extensions in System Menu", "pname": "tweaks-in-system-menu", "description": "Put Gnome Tweaks and Extensions (on Shell 40 and later) in the System menu.", "link": "https://extensions.gnome.org/extension/1653/tweaks-in-system-menu/", "shell_version_map": {"38": {"version": "18", "sha256": "0wzpzn3pq05p9qqibb0436kckgh4y16xcm3wgr7xmxx68zpd87p4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBHbm9tZSBUd2Vha3MgYW5kIEV4dGVuc2lvbnMgKG9uIFNoZWxsIDQwIGFuZCBsYXRlcikgaW4gdGhlIFN5c3RlbSBtZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogInR3ZWFrcy1zeXN0ZW0tbWVudSIsCiAgIm5hbWUiOiAiVHdlYWtzICYgRXh0ZW5zaW9ucyBpbiBTeXN0ZW0gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzUuOTIiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi90d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogInR3ZWFrcy1zeXN0ZW0tbWVudUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxOC0wLWczMTE4ZmI4IiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "18", "sha256": "0wzpzn3pq05p9qqibb0436kckgh4y16xcm3wgr7xmxx68zpd87p4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBHbm9tZSBUd2Vha3MgYW5kIEV4dGVuc2lvbnMgKG9uIFNoZWxsIDQwIGFuZCBsYXRlcikgaW4gdGhlIFN5c3RlbSBtZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogInR3ZWFrcy1zeXN0ZW0tbWVudSIsCiAgIm5hbWUiOiAiVHdlYWtzICYgRXh0ZW5zaW9ucyBpbiBTeXN0ZW0gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzUuOTIiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi90d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogInR3ZWFrcy1zeXN0ZW0tbWVudUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxOC0wLWczMTE4ZmI4IiwKICAidmVyc2lvbiI6IDE4Cn0="}, "41": {"version": "18", "sha256": "0wzpzn3pq05p9qqibb0436kckgh4y16xcm3wgr7xmxx68zpd87p4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBHbm9tZSBUd2Vha3MgYW5kIEV4dGVuc2lvbnMgKG9uIFNoZWxsIDQwIGFuZCBsYXRlcikgaW4gdGhlIFN5c3RlbSBtZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogInR3ZWFrcy1zeXN0ZW0tbWVudSIsCiAgIm5hbWUiOiAiVHdlYWtzICYgRXh0ZW5zaW9ucyBpbiBTeXN0ZW0gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzUuOTIiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi90d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogInR3ZWFrcy1zeXN0ZW0tbWVudUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxOC0wLWczMTE4ZmI4IiwKICAidmVyc2lvbiI6IDE4Cn0="}, "42": {"version": "18", "sha256": "0wzpzn3pq05p9qqibb0436kckgh4y16xcm3wgr7xmxx68zpd87p4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBHbm9tZSBUd2Vha3MgYW5kIEV4dGVuc2lvbnMgKG9uIFNoZWxsIDQwIGFuZCBsYXRlcikgaW4gdGhlIFN5c3RlbSBtZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogInR3ZWFrcy1zeXN0ZW0tbWVudSIsCiAgIm5hbWUiOiAiVHdlYWtzICYgRXh0ZW5zaW9ucyBpbiBTeXN0ZW0gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzUuOTIiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi90d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogInR3ZWFrcy1zeXN0ZW0tbWVudUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxOC0wLWczMTE4ZmI4IiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
-, {"uuid": "topiconsfix@aleskva@devnullmail.com", "name": "TopIconsFix", "pname": "topiconsfix", "description": "Shows legacy tray icons on top – the fixed version of https://extensions.gnome.org/extension/495/topicons/", "link": "https://extensions.gnome.org/extension/1674/topiconsfix/", "shell_version_map": {"38": {"version": "12", "sha256": "1zxihxmbc2hx6f8whv8mqzbl55k3wdgw108q97kadf9v67gpcp0n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0b3BpY29uc2ZpeEBhbGVza3ZhQGRldm51bGxtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "12", "sha256": "1zxihxmbc2hx6f8whv8mqzbl55k3wdgw108q97kadf9v67gpcp0n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0b3BpY29uc2ZpeEBhbGVza3ZhQGRldm51bGxtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}, "41": {"version": "12", "sha256": "1zxihxmbc2hx6f8whv8mqzbl55k3wdgw108q97kadf9v67gpcp0n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0b3BpY29uc2ZpeEBhbGVza3ZhQGRldm51bGxtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}}}
+, {"uuid": "topiconsfix@aleskva@devnullmail.com", "name": "TopIconsFix", "pname": "topiconsfix", "description": "Shows legacy tray icons on top – the fixed version of https://extensions.gnome.org/extension/495/topicons/", "link": "https://extensions.gnome.org/extension/1674/topiconsfix/", "shell_version_map": {"38": {"version": "13", "sha256": "1q9zzjcy8pyifqm51p51wb290casl3464k1w1p5ijgwf492va6gf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidG9waWNvbnNmaXhAYWxlc2t2YUBkZXZudWxsbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "40": {"version": "13", "sha256": "1q9zzjcy8pyifqm51p51wb290casl3464k1w1p5ijgwf492va6gf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidG9waWNvbnNmaXhAYWxlc2t2YUBkZXZudWxsbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "41": {"version": "13", "sha256": "1q9zzjcy8pyifqm51p51wb290casl3464k1w1p5ijgwf492va6gf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidG9waWNvbnNmaXhAYWxlc2t2YUBkZXZudWxsbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "42": {"version": "13", "sha256": "1q9zzjcy8pyifqm51p51wb290casl3464k1w1p5ijgwf492va6gf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidG9waWNvbnNmaXhAYWxlc2t2YUBkZXZudWxsbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}}}
 , {"uuid": "animation-tweaks@Selenium-H", "name": "Animation Tweaks", "pname": "animation-tweaks", "description": "Add animations to different items and customize them.\n\nPlease reset the extension after updating.\nThe Extension will stop when upgraded to an incompatible version.\nIn that case an Update tab is created to easily reset the extension.\nA Reset menu entry is also always present in in the Top Right Application menu of the extension preferences window.\nA Default shortcut combination of Super Key + t is provided to disable the extension.\n\nSome effects might not work properly on wayland, for which an option to integrate with wayland is provided on Integrations tab.\nHowever, some animations might not work properly.\n\nTo manage effect Delay time enable Show delay time in preferences Window from Top Right Application menu -> Preferences\nand reopen preferences.", "link": "https://extensions.gnome.org/extension/1680/animation-tweaks/", "shell_version_map": {"38": {"version": "18", "sha256": "07niv7biy9yxmxdg498kqypyqva6y8slm3gmn70dpx9f9ng8ya55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQWRkIGFuaW1hdGlvbnMgdG8gZGlmZmVyZW50IGl0ZW1zIGFuZCBjdXN0b21pemUgdGhlbS4iLAogICJkZXNjcmlwdGlvbiI6ICJBZGQgYW5pbWF0aW9ucyB0byBkaWZmZXJlbnQgaXRlbXMgYW5kIGN1c3RvbWl6ZSB0aGVtLlxuXG5QbGVhc2UgcmVzZXQgdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGluZy5cblRoZSBFeHRlbnNpb24gd2lsbCBzdG9wIHdoZW4gdXBncmFkZWQgdG8gYW4gaW5jb21wYXRpYmxlIHZlcnNpb24uXG5JbiB0aGF0IGNhc2UgYW4gVXBkYXRlIHRhYiBpcyBjcmVhdGVkIHRvIGVhc2lseSByZXNldCB0aGUgZXh0ZW5zaW9uLlxuQSBSZXNldCBtZW51IGVudHJ5IGlzIGFsc28gYWx3YXlzIHByZXNlbnQgaW4gaW4gdGhlIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IG9mIHRoZSBleHRlbnNpb24gcHJlZmVyZW5jZXMgd2luZG93LlxuQSBEZWZhdWx0IHNob3J0Y3V0IGNvbWJpbmF0aW9uIG9mIFN1cGVyIEtleSArIHQgaXMgcHJvdmlkZWQgdG8gZGlzYWJsZSB0aGUgZXh0ZW5zaW9uLlxuXG5Tb21lIGVmZmVjdHMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkgb24gd2F5bGFuZCwgZm9yIHdoaWNoIGFuIG9wdGlvbiB0byBpbnRlZ3JhdGUgd2l0aCB3YXlsYW5kIGlzIHByb3ZpZGVkIG9uIEludGVncmF0aW9ucyB0YWIuXG5Ib3dldmVyLCBzb21lIGFuaW1hdGlvbnMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkuXG5cblRvIG1hbmFnZSBlZmZlY3QgRGVsYXkgdGltZSBlbmFibGUgU2hvdyBkZWxheSB0aW1lIGluIHByZWZlcmVuY2VzIFdpbmRvdyBmcm9tIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IC0+IFByZWZlcmVuY2VzXG5hbmQgcmVvcGVuIHByZWZlcmVuY2VzLiIsCiAgIm5hbWUiOiAiQW5pbWF0aW9uIFR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInN0YXR1cyI6ICIiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtLUgvQW5pbWF0aW9uLVR3ZWFrcyIsCiAgInV1aWQiOiAiYW5pbWF0aW9uLXR3ZWFrc0BTZWxlbml1bS1IIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "18", "sha256": "07niv7biy9yxmxdg498kqypyqva6y8slm3gmn70dpx9f9ng8ya55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQWRkIGFuaW1hdGlvbnMgdG8gZGlmZmVyZW50IGl0ZW1zIGFuZCBjdXN0b21pemUgdGhlbS4iLAogICJkZXNjcmlwdGlvbiI6ICJBZGQgYW5pbWF0aW9ucyB0byBkaWZmZXJlbnQgaXRlbXMgYW5kIGN1c3RvbWl6ZSB0aGVtLlxuXG5QbGVhc2UgcmVzZXQgdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGluZy5cblRoZSBFeHRlbnNpb24gd2lsbCBzdG9wIHdoZW4gdXBncmFkZWQgdG8gYW4gaW5jb21wYXRpYmxlIHZlcnNpb24uXG5JbiB0aGF0IGNhc2UgYW4gVXBkYXRlIHRhYiBpcyBjcmVhdGVkIHRvIGVhc2lseSByZXNldCB0aGUgZXh0ZW5zaW9uLlxuQSBSZXNldCBtZW51IGVudHJ5IGlzIGFsc28gYWx3YXlzIHByZXNlbnQgaW4gaW4gdGhlIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IG9mIHRoZSBleHRlbnNpb24gcHJlZmVyZW5jZXMgd2luZG93LlxuQSBEZWZhdWx0IHNob3J0Y3V0IGNvbWJpbmF0aW9uIG9mIFN1cGVyIEtleSArIHQgaXMgcHJvdmlkZWQgdG8gZGlzYWJsZSB0aGUgZXh0ZW5zaW9uLlxuXG5Tb21lIGVmZmVjdHMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkgb24gd2F5bGFuZCwgZm9yIHdoaWNoIGFuIG9wdGlvbiB0byBpbnRlZ3JhdGUgd2l0aCB3YXlsYW5kIGlzIHByb3ZpZGVkIG9uIEludGVncmF0aW9ucyB0YWIuXG5Ib3dldmVyLCBzb21lIGFuaW1hdGlvbnMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkuXG5cblRvIG1hbmFnZSBlZmZlY3QgRGVsYXkgdGltZSBlbmFibGUgU2hvdyBkZWxheSB0aW1lIGluIHByZWZlcmVuY2VzIFdpbmRvdyBmcm9tIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IC0+IFByZWZlcmVuY2VzXG5hbmQgcmVvcGVuIHByZWZlcmVuY2VzLiIsCiAgIm5hbWUiOiAiQW5pbWF0aW9uIFR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInN0YXR1cyI6ICIiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtLUgvQW5pbWF0aW9uLVR3ZWFrcyIsCiAgInV1aWQiOiAiYW5pbWF0aW9uLXR3ZWFrc0BTZWxlbml1bS1IIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "41": {"version": "18", "sha256": "07niv7biy9yxmxdg498kqypyqva6y8slm3gmn70dpx9f9ng8ya55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQWRkIGFuaW1hdGlvbnMgdG8gZGlmZmVyZW50IGl0ZW1zIGFuZCBjdXN0b21pemUgdGhlbS4iLAogICJkZXNjcmlwdGlvbiI6ICJBZGQgYW5pbWF0aW9ucyB0byBkaWZmZXJlbnQgaXRlbXMgYW5kIGN1c3RvbWl6ZSB0aGVtLlxuXG5QbGVhc2UgcmVzZXQgdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGluZy5cblRoZSBFeHRlbnNpb24gd2lsbCBzdG9wIHdoZW4gdXBncmFkZWQgdG8gYW4gaW5jb21wYXRpYmxlIHZlcnNpb24uXG5JbiB0aGF0IGNhc2UgYW4gVXBkYXRlIHRhYiBpcyBjcmVhdGVkIHRvIGVhc2lseSByZXNldCB0aGUgZXh0ZW5zaW9uLlxuQSBSZXNldCBtZW51IGVudHJ5IGlzIGFsc28gYWx3YXlzIHByZXNlbnQgaW4gaW4gdGhlIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IG9mIHRoZSBleHRlbnNpb24gcHJlZmVyZW5jZXMgd2luZG93LlxuQSBEZWZhdWx0IHNob3J0Y3V0IGNvbWJpbmF0aW9uIG9mIFN1cGVyIEtleSArIHQgaXMgcHJvdmlkZWQgdG8gZGlzYWJsZSB0aGUgZXh0ZW5zaW9uLlxuXG5Tb21lIGVmZmVjdHMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkgb24gd2F5bGFuZCwgZm9yIHdoaWNoIGFuIG9wdGlvbiB0byBpbnRlZ3JhdGUgd2l0aCB3YXlsYW5kIGlzIHByb3ZpZGVkIG9uIEludGVncmF0aW9ucyB0YWIuXG5Ib3dldmVyLCBzb21lIGFuaW1hdGlvbnMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkuXG5cblRvIG1hbmFnZSBlZmZlY3QgRGVsYXkgdGltZSBlbmFibGUgU2hvdyBkZWxheSB0aW1lIGluIHByZWZlcmVuY2VzIFdpbmRvdyBmcm9tIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IC0+IFByZWZlcmVuY2VzXG5hbmQgcmVvcGVuIHByZWZlcmVuY2VzLiIsCiAgIm5hbWUiOiAiQW5pbWF0aW9uIFR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInN0YXR1cyI6ICIiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtLUgvQW5pbWF0aW9uLVR3ZWFrcyIsCiAgInV1aWQiOiAiYW5pbWF0aW9uLXR3ZWFrc0BTZWxlbml1bS1IIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
 , {"uuid": "drawOnYourScreen@abakkk.framagit.org", "name": "Draw On You Screen", "pname": "draw-on-you-screen", "description": "", "link": "https://extensions.gnome.org/extension/1683/draw-on-you-screen/", "shell_version_map": {"38": {"version": "11", "sha256": "0kbgngcb2n234snnavbm8giwi6zhvr48bs0qy4f511d52l2wyawy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhdGEtZGlyIjogImRyYXdPbllvdXJTY3JlZW4iLAogICJkZXNjcmlwdGlvbiI6ICIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkcmF3LW9uLXlvdXItc2NyZWVuIiwKICAibmFtZSI6ICJEcmF3IE9uIFlvdSBTY3JlZW4iLAogICJwZXJzaXN0ZW50LWZpbGUtbmFtZSI6ICJwZXJzaXN0ZW50IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRyYXctb24teW91ci1zY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAic3ZnLWZpbGUtbmFtZSI6ICJEcmF3T25Zb3VyU2NyZWVuIiwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZHJhd09uWW91clNjcmVlbkBhYmFra2suZnJhbWFnaXQub3JnIiwKICAidmVyc2lvbiI6IDExCn0="}}}
 , {"uuid": "Always-Show-Titles-In-Overview@gmail.com", "name": "Always Show Titles In Overview", "pname": "always-show-titles-in-overview", "description": "Customize Gnome 3 overview.\n\n- Always show titles of all window thumbnails\n- Show/hide app icons\n- App icon position: Bottom, Center\n- Show/hide the app icon when a window is in fullscreen mode\n- Tweak the window thumbnail active size increment (from 5 to 60, the default is 15)\n- Show/hide the background\n- Hide/show icons for Video/TV players, like SMPlayer \n\n", "link": "https://extensions.gnome.org/extension/1689/always-show-titles-in-overview/", "shell_version_map": {"38": {"version": "10", "sha256": "1vnbj1li9ci5n25b49swxps9zqajgr10vfgv5lcn9f9brzm373fp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gU2hvdy9oaWRlIGFwcCBpY29uc1xuLSBBcHAgaWNvbiBwb3NpdGlvbjogQm90dG9tLCBDZW50ZXJcbi0gU2hvdy9oaWRlIHRoZSBhcHAgaWNvbiB3aGVuIGEgd2luZG93IGlzIGluIGZ1bGxzY3JlZW4gbW9kZVxuLSBUd2VhayB0aGUgd2luZG93IHRodW1ibmFpbCBhY3RpdmUgc2l6ZSBpbmNyZW1lbnQgKGZyb20gNSB0byA2MCwgdGhlIGRlZmF1bHQgaXMgMTUpXG4tIFNob3cvaGlkZSB0aGUgYmFja2dyb3VuZFxuLSBIaWRlL3Nob3cgaWNvbnMgZm9yIFZpZGVvL1RWIHBsYXllcnMsIGxpa2UgU01QbGF5ZXIgXG5cbiIsCiAgIm5hbWUiOiAiQWx3YXlzIFNob3cgVGl0bGVzIEluIE92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmxwc3VnZS9BbHdheXMtU2hvdy1UaXRsZXMtSW4tT3ZlcnZpZXciLAogICJ1dWlkIjogIkFsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlld0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "40": {"version": "19", "sha256": "01b9cqjwh0i5xf31ri28va4ax775lw5cymsd73ghlzp69p35yc4n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gU2hvdy9oaWRlIGFwcCBpY29uc1xuLSBBcHAgaWNvbiBwb3NpdGlvbjogQm90dG9tLCBDZW50ZXJcbi0gU2hvdy9oaWRlIHRoZSBhcHAgaWNvbiB3aGVuIGEgd2luZG93IGlzIGluIGZ1bGxzY3JlZW4gbW9kZVxuLSBUd2VhayB0aGUgd2luZG93IHRodW1ibmFpbCBhY3RpdmUgc2l6ZSBpbmNyZW1lbnQgKGZyb20gNSB0byA2MCwgdGhlIGRlZmF1bHQgaXMgMTUpXG4tIFNob3cvaGlkZSB0aGUgYmFja2dyb3VuZFxuLSBIaWRlL3Nob3cgaWNvbnMgZm9yIFZpZGVvL1RWIHBsYXllcnMsIGxpa2UgU01QbGF5ZXIgXG5cbiIsCiAgIm5hbWUiOiAiQWx3YXlzIFNob3cgVGl0bGVzIEluIE92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ubHBzdWdlL0Fsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlldyIsCiAgInV1aWQiOiAiQWx3YXlzLVNob3ctVGl0bGVzLUluLU92ZXJ2aWV3QGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxOQp9"}, "41": {"version": "19", "sha256": "01b9cqjwh0i5xf31ri28va4ax775lw5cymsd73ghlzp69p35yc4n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gU2hvdy9oaWRlIGFwcCBpY29uc1xuLSBBcHAgaWNvbiBwb3NpdGlvbjogQm90dG9tLCBDZW50ZXJcbi0gU2hvdy9oaWRlIHRoZSBhcHAgaWNvbiB3aGVuIGEgd2luZG93IGlzIGluIGZ1bGxzY3JlZW4gbW9kZVxuLSBUd2VhayB0aGUgd2luZG93IHRodW1ibmFpbCBhY3RpdmUgc2l6ZSBpbmNyZW1lbnQgKGZyb20gNSB0byA2MCwgdGhlIGRlZmF1bHQgaXMgMTUpXG4tIFNob3cvaGlkZSB0aGUgYmFja2dyb3VuZFxuLSBIaWRlL3Nob3cgaWNvbnMgZm9yIFZpZGVvL1RWIHBsYXllcnMsIGxpa2UgU01QbGF5ZXIgXG5cbiIsCiAgIm5hbWUiOiAiQWx3YXlzIFNob3cgVGl0bGVzIEluIE92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ubHBzdWdlL0Fsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlldyIsCiAgInV1aWQiOiAiQWx3YXlzLVNob3ctVGl0bGVzLUluLU92ZXJ2aWV3QGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxOQp9"}}}
-, {"uuid": "overview-navigation@nathanielsimard.github.com", "name": "Overview Navigation", "pname": "overview-navigation", "description": "This extension aims to make Gnome Shell easier to navigate using only the keyboard. It is inspired by the vim plugins of Firefox and Chrome.", "link": "https://extensions.gnome.org/extension/1702/overview-navigation/", "shell_version_map": {"38": {"version": "14", "sha256": "10i2j0klcyi22qakmw1f338ldc87w54a0jlg1bwq84ifflmnm8nq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFpbXMgdG8gbWFrZSBHbm9tZSBTaGVsbCBlYXNpZXIgdG8gbmF2aWdhdGUgdXNpbmcgb25seSB0aGUga2V5Ym9hcmQuIEl0IGlzIGluc3BpcmVkIGJ5IHRoZSB2aW0gcGx1Z2lucyBvZiBGaXJlZm94IGFuZCBDaHJvbWUuIiwKICAibmFtZSI6ICJPdmVydmlldyBOYXZpZ2F0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uYXRoYW5pZWxzaW1hcmQvb3ZlcnZpZXctbmF2aWdhdGlvbiIsCiAgInV1aWQiOiAib3ZlcnZpZXctbmF2aWdhdGlvbkBuYXRoYW5pZWxzaW1hcmQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}, "40": {"version": "15", "sha256": "03ah1cx6kjw7698b9wwhz7ag8pag15g8zkxzfrsrcmving9syynd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFpbXMgdG8gbWFrZSBHbm9tZSBTaGVsbCBlYXNpZXIgdG8gbmF2aWdhdGUgdXNpbmcgb25seSB0aGUga2V5Ym9hcmQuIEl0IGlzIGluc3BpcmVkIGJ5IHRoZSB2aW0gcGx1Z2lucyBvZiBGaXJlZm94IGFuZCBDaHJvbWUuIiwKICAibmFtZSI6ICJPdmVydmlldyBOYXZpZ2F0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmF0aGFuaWVsc2ltYXJkL292ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJ1dWlkIjogIm92ZXJ2aWV3LW5hdmlnYXRpb25AbmF0aGFuaWVsc2ltYXJkLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "16", "sha256": "1qdqbsrmxnvx01hlaq17nps124xah1rkqvr0rpxms7f3klkgkw0d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFpbXMgdG8gbWFrZSBHbm9tZSBTaGVsbCBlYXNpZXIgdG8gbmF2aWdhdGUgdXNpbmcgb25seSB0aGUga2V5Ym9hcmQuIEl0IGlzIGluc3BpcmVkIGJ5IHRoZSB2aW0gcGx1Z2lucyBvZiBGaXJlZm94IGFuZCBDaHJvbWUuIiwKICAibmFtZSI6ICJPdmVydmlldyBOYXZpZ2F0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmF0aGFuaWVsc2ltYXJkL292ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJ1dWlkIjogIm92ZXJ2aWV3LW5hdmlnYXRpb25AbmF0aGFuaWVsc2ltYXJkLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}}}
-, {"uuid": "transparent-top-bar@zhanghai.me", "name": "Transparent Top Bar", "pname": "transparent-top-bar", "description": "Bring back the transparent top bar when free-floating in GNOME Shell 3.32.\n\nThis basically comes from the feature implementation removed in GNOME Shell 3.32, and I modified the code a bit to make it an extension. Enjoy!", "link": "https://extensions.gnome.org/extension/1708/transparent-top-bar/", "shell_version_map": {"38": {"version": "9", "sha256": "0i34ns1rm2iis9mvbyjvckb0l1b0zzzczzan7591y8lqfjplsmzr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5naGFpL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC10b3AtYmFyIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC10b3AtYmFyQHpoYW5naGFpLm1lIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "13", "sha256": "1ppsii29lv4jaqdrjrav3j19ynv7kwl7mf7pn27lsgiga25n4wyh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhciIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtdG9wLWJhckB6aGFuZ2hhaS5tZSIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "1ppsii29lv4jaqdrjrav3j19ynv7kwl7mf7pn27lsgiga25n4wyh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhciIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtdG9wLWJhckB6aGFuZ2hhaS5tZSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
+, {"uuid": "overview-navigation@nathanielsimard.github.com", "name": "Overview Navigation", "pname": "overview-navigation", "description": "This extension aims to make Gnome Shell easier to navigate using only the keyboard. It is inspired by the vim plugins of Firefox and Chrome.", "link": "https://extensions.gnome.org/extension/1702/overview-navigation/", "shell_version_map": {"38": {"version": "14", "sha256": "10i2j0klcyi22qakmw1f338ldc87w54a0jlg1bwq84ifflmnm8nq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFpbXMgdG8gbWFrZSBHbm9tZSBTaGVsbCBlYXNpZXIgdG8gbmF2aWdhdGUgdXNpbmcgb25seSB0aGUga2V5Ym9hcmQuIEl0IGlzIGluc3BpcmVkIGJ5IHRoZSB2aW0gcGx1Z2lucyBvZiBGaXJlZm94IGFuZCBDaHJvbWUuIiwKICAibmFtZSI6ICJPdmVydmlldyBOYXZpZ2F0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uYXRoYW5pZWxzaW1hcmQvb3ZlcnZpZXctbmF2aWdhdGlvbiIsCiAgInV1aWQiOiAib3ZlcnZpZXctbmF2aWdhdGlvbkBuYXRoYW5pZWxzaW1hcmQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}, "40": {"version": "15", "sha256": "03ah1cx6kjw7698b9wwhz7ag8pag15g8zkxzfrsrcmving9syynd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFpbXMgdG8gbWFrZSBHbm9tZSBTaGVsbCBlYXNpZXIgdG8gbmF2aWdhdGUgdXNpbmcgb25seSB0aGUga2V5Ym9hcmQuIEl0IGlzIGluc3BpcmVkIGJ5IHRoZSB2aW0gcGx1Z2lucyBvZiBGaXJlZm94IGFuZCBDaHJvbWUuIiwKICAibmFtZSI6ICJPdmVydmlldyBOYXZpZ2F0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmF0aGFuaWVsc2ltYXJkL292ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJ1dWlkIjogIm92ZXJ2aWV3LW5hdmlnYXRpb25AbmF0aGFuaWVsc2ltYXJkLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "16", "sha256": "1qdqbsrmxnvx01hlaq17nps124xah1rkqvr0rpxms7f3klkgkw0d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFpbXMgdG8gbWFrZSBHbm9tZSBTaGVsbCBlYXNpZXIgdG8gbmF2aWdhdGUgdXNpbmcgb25seSB0aGUga2V5Ym9hcmQuIEl0IGlzIGluc3BpcmVkIGJ5IHRoZSB2aW0gcGx1Z2lucyBvZiBGaXJlZm94IGFuZCBDaHJvbWUuIiwKICAibmFtZSI6ICJPdmVydmlldyBOYXZpZ2F0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmF0aGFuaWVsc2ltYXJkL292ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJ1dWlkIjogIm92ZXJ2aWV3LW5hdmlnYXRpb25AbmF0aGFuaWVsc2ltYXJkLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "42": {"version": "17", "sha256": "0zhwl4j982jgyxcbdj50bdp98plfqs2hzgc8zl5rxv498662700w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFpbXMgdG8gbWFrZSBHbm9tZSBTaGVsbCBlYXNpZXIgdG8gbmF2aWdhdGUgdXNpbmcgb25seSB0aGUga2V5Ym9hcmQuIEl0IGlzIGluc3BpcmVkIGJ5IHRoZSB2aW0gcGx1Z2lucyBvZiBGaXJlZm94IGFuZCBDaHJvbWUuIiwKICAibmFtZSI6ICJPdmVydmlldyBOYXZpZ2F0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmF0aGFuaWVsc2ltYXJkL292ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJ1dWlkIjogIm92ZXJ2aWV3LW5hdmlnYXRpb25AbmF0aGFuaWVsc2ltYXJkLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
+, {"uuid": "transparent-top-bar@zhanghai.me", "name": "Transparent Top Bar", "pname": "transparent-top-bar", "description": "Bring back the transparent top bar when free-floating in GNOME Shell 3.32.\n\nThis basically comes from the feature implementation removed in GNOME Shell 3.32, and I modified the code a bit to make it an extension. Enjoy!", "link": "https://extensions.gnome.org/extension/1708/transparent-top-bar/", "shell_version_map": {"38": {"version": "9", "sha256": "0i34ns1rm2iis9mvbyjvckb0l1b0zzzczzan7591y8lqfjplsmzr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5naGFpL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC10b3AtYmFyIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC10b3AtYmFyQHpoYW5naGFpLm1lIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "14", "sha256": "0sdf46n4yxyknlwi6s87shsms6ggh8x54pplq6f5xwisw32zlrpi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemhhbmdoYWkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXRvcC1iYXIiLAogICJ1dWlkIjogInRyYW5zcGFyZW50LXRvcC1iYXJAemhhbmdoYWkubWUiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "0sdf46n4yxyknlwi6s87shsms6ggh8x54pplq6f5xwisw32zlrpi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemhhbmdoYWkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXRvcC1iYXIiLAogICJ1dWlkIjogInRyYW5zcGFyZW50LXRvcC1iYXJAemhhbmdoYWkubWUiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "42": {"version": "14", "sha256": "0sdf46n4yxyknlwi6s87shsms6ggh8x54pplq6f5xwisw32zlrpi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemhhbmdoYWkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXRvcC1iYXIiLAogICJ1dWlkIjogInRyYW5zcGFyZW50LXRvcC1iYXJAemhhbmdoYWkubWUiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
 , {"uuid": "ssh-search-provider@extensions.gnome-shell.fifi.org", "name": "SSH Search Provider Reborn", "pname": "ssh-search-provider-reborn", "description": "Provide SSH search results in overview.\n\nThis is a fork of the original \"SSH Search Provider\", updated to work with newer Gnome-Shells.", "link": "https://extensions.gnome.org/extension/1714/ssh-search-provider-reborn/", "shell_version_map": {"38": {"version": "11", "sha256": "1dyzkbzy2lg2h3ixz1i86hbrh69irw70whbrl8vw0m5yypfm15wm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgU1NIIHNlYXJjaCByZXN1bHRzIGluIG92ZXJ2aWV3LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgb3JpZ2luYWwgXCJTU0ggU2VhcmNoIFByb3ZpZGVyXCIsIHVwZGF0ZWQgdG8gd29yayB3aXRoIG5ld2VyIEdub21lLVNoZWxscy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAibmFtZSI6ICJTU0ggU2VhcmNoIFByb3ZpZGVyIFJlYm9ybiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvc3NoLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAic3NoLXNlYXJjaC1wcm92aWRlckBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxMS0wLWc2M2M0NjZjIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "1dyzkbzy2lg2h3ixz1i86hbrh69irw70whbrl8vw0m5yypfm15wm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgU1NIIHNlYXJjaCByZXN1bHRzIGluIG92ZXJ2aWV3LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgb3JpZ2luYWwgXCJTU0ggU2VhcmNoIFByb3ZpZGVyXCIsIHVwZGF0ZWQgdG8gd29yayB3aXRoIG5ld2VyIEdub21lLVNoZWxscy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAibmFtZSI6ICJTU0ggU2VhcmNoIFByb3ZpZGVyIFJlYm9ybiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvc3NoLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAic3NoLXNlYXJjaC1wcm92aWRlckBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxMS0wLWc2M2M0NjZjIiwKICAidmVyc2lvbiI6IDExCn0="}, "41": {"version": "11", "sha256": "1dyzkbzy2lg2h3ixz1i86hbrh69irw70whbrl8vw0m5yypfm15wm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgU1NIIHNlYXJjaCByZXN1bHRzIGluIG92ZXJ2aWV3LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgb3JpZ2luYWwgXCJTU0ggU2VhcmNoIFByb3ZpZGVyXCIsIHVwZGF0ZWQgdG8gd29yayB3aXRoIG5ld2VyIEdub21lLVNoZWxscy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAibmFtZSI6ICJTU0ggU2VhcmNoIFByb3ZpZGVyIFJlYm9ybiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvc3NoLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAic3NoLXNlYXJjaC1wcm92aWRlckBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxMS0wLWc2M2M0NjZjIiwKICAidmVyc2lvbiI6IDExCn0="}, "42": {"version": "11", "sha256": "1dyzkbzy2lg2h3ixz1i86hbrh69irw70whbrl8vw0m5yypfm15wm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgU1NIIHNlYXJjaCByZXN1bHRzIGluIG92ZXJ2aWV3LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgb3JpZ2luYWwgXCJTU0ggU2VhcmNoIFByb3ZpZGVyXCIsIHVwZGF0ZWQgdG8gd29yayB3aXRoIG5ld2VyIEdub21lLVNoZWxscy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAibmFtZSI6ICJTU0ggU2VhcmNoIFByb3ZpZGVyIFJlYm9ybiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvc3NoLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAic3NoLXNlYXJjaC1wcm92aWRlckBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxMS0wLWc2M2M0NjZjIiwKICAidmVyc2lvbiI6IDExCn0="}}}
 , {"uuid": "weeks-start-on-monday@extensions.gnome-shell.fifi.org", "name": "Weeks Start on Monday Again...", "pname": "weeks-start-on-monday-again", "description": "... or maybe not, and that's why the start day is configurable in the preferences.\n\nThis is an updated version of the \"Weeks Start on Monday\" extension for newer Gnome Shells.", "link": "https://extensions.gnome.org/extension/1720/weeks-start-on-monday-again/", "shell_version_map": {"38": {"version": "12", "sha256": "1xfl3kid3nymarf696271ixsdxd6vvhadrh5lmp46k11s0dds64m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIi4uLiBvciBtYXliZSBub3QsIGFuZCB0aGF0J3Mgd2h5IHRoZSBzdGFydCBkYXkgaXMgY29uZmlndXJhYmxlIGluIHRoZSBwcmVmZXJlbmNlcy5cblxuVGhpcyBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIFwiV2Vla3MgU3RhcnQgb24gTW9uZGF5XCIgZXh0ZW5zaW9uIGZvciBuZXdlciBHbm9tZSBTaGVsbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAibmFtZSI6ICJXZWVrcyBTdGFydCBvbiBNb25kYXkgQWdhaW4uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvd2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAidXVpZCI6ICJ3ZWVrcy1zdGFydC1vbi1tb25kYXlAZXh0ZW5zaW9ucy5nbm9tZS1zaGVsbC5maWZpLm9yZyIsCiAgInZjc19yZXZpc2lvbiI6ICJ2MTItMC1nOTI1NzQxZSIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "12", "sha256": "1xfl3kid3nymarf696271ixsdxd6vvhadrh5lmp46k11s0dds64m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIi4uLiBvciBtYXliZSBub3QsIGFuZCB0aGF0J3Mgd2h5IHRoZSBzdGFydCBkYXkgaXMgY29uZmlndXJhYmxlIGluIHRoZSBwcmVmZXJlbmNlcy5cblxuVGhpcyBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIFwiV2Vla3MgU3RhcnQgb24gTW9uZGF5XCIgZXh0ZW5zaW9uIGZvciBuZXdlciBHbm9tZSBTaGVsbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAibmFtZSI6ICJXZWVrcyBTdGFydCBvbiBNb25kYXkgQWdhaW4uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvd2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAidXVpZCI6ICJ3ZWVrcy1zdGFydC1vbi1tb25kYXlAZXh0ZW5zaW9ucy5nbm9tZS1zaGVsbC5maWZpLm9yZyIsCiAgInZjc19yZXZpc2lvbiI6ICJ2MTItMC1nOTI1NzQxZSIsCiAgInZlcnNpb24iOiAxMgp9"}, "41": {"version": "12", "sha256": "1xfl3kid3nymarf696271ixsdxd6vvhadrh5lmp46k11s0dds64m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIi4uLiBvciBtYXliZSBub3QsIGFuZCB0aGF0J3Mgd2h5IHRoZSBzdGFydCBkYXkgaXMgY29uZmlndXJhYmxlIGluIHRoZSBwcmVmZXJlbmNlcy5cblxuVGhpcyBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIFwiV2Vla3MgU3RhcnQgb24gTW9uZGF5XCIgZXh0ZW5zaW9uIGZvciBuZXdlciBHbm9tZSBTaGVsbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAibmFtZSI6ICJXZWVrcyBTdGFydCBvbiBNb25kYXkgQWdhaW4uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvd2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAidXVpZCI6ICJ3ZWVrcy1zdGFydC1vbi1tb25kYXlAZXh0ZW5zaW9ucy5nbm9tZS1zaGVsbC5maWZpLm9yZyIsCiAgInZjc19yZXZpc2lvbiI6ICJ2MTItMC1nOTI1NzQxZSIsCiAgInZlcnNpb24iOiAxMgp9"}, "42": {"version": "12", "sha256": "1xfl3kid3nymarf696271ixsdxd6vvhadrh5lmp46k11s0dds64m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIi4uLiBvciBtYXliZSBub3QsIGFuZCB0aGF0J3Mgd2h5IHRoZSBzdGFydCBkYXkgaXMgY29uZmlndXJhYmxlIGluIHRoZSBwcmVmZXJlbmNlcy5cblxuVGhpcyBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIFwiV2Vla3MgU3RhcnQgb24gTW9uZGF5XCIgZXh0ZW5zaW9uIGZvciBuZXdlciBHbm9tZSBTaGVsbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAibmFtZSI6ICJXZWVrcyBTdGFydCBvbiBNb25kYXkgQWdhaW4uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvd2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAidXVpZCI6ICJ3ZWVrcy1zdGFydC1vbi1tb25kYXlAZXh0ZW5zaW9ucy5nbm9tZS1zaGVsbC5maWZpLm9yZyIsCiAgInZjc19yZXZpc2lvbiI6ICJ2MTItMC1nOTI1NzQxZSIsCiAgInZlcnNpb24iOiAxMgp9"}}}
 , {"uuid": "wintile@nowsci.com", "name": "WinTile: Windows 10 window tiling for GNOME", "pname": "wintile-windows-10-window-tiling-for-gnome", "description": "[NOTE] When upgrading to V7, you may get an ERROR. Log out and back in and V7 will begin to work.\n\nWinTile is a hotkey driven window tiling system for GNOME that imitates the standard Win-Arrow keys of Windows 10, allowing you to maximize, maximize to sides, or 1/4 sized to corner across a single or multiple monitors using just Super+Arrow.\n\nAs of v3, WinTile also supports:\n- 2, 3, or 4 columns for standard or ultrawide monitors\n- Top/bottom half support\n- Mouse preview and snapping for placing windows\n- Toggling of 'maximize' mode, which adds/removes GNOME animations\n\nAs of v6, supports installs in GNOME 3.38+\n\nAs of v7, supports installs in GNOME 40+", "link": "https://extensions.gnome.org/extension/1723/wintile-windows-10-window-tiling-for-gnome/", "shell_version_map": {"38": {"version": "7", "sha256": "1nx0psgaj33ipfsnxinvz2vjmdhhvms0bqdflhmkbh1003m6103x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIltOT1RFXSBXaGVuIHVwZ3JhZGluZyB0byBWNywgeW91IG1heSBnZXQgYW4gRVJST1IuIExvZyBvdXQgYW5kIGJhY2sgaW4gYW5kIFY3IHdpbGwgYmVnaW4gdG8gd29yay5cblxuV2luVGlsZSBpcyBhIGhvdGtleSBkcml2ZW4gd2luZG93IHRpbGluZyBzeXN0ZW0gZm9yIEdOT01FIHRoYXQgaW1pdGF0ZXMgdGhlIHN0YW5kYXJkIFdpbi1BcnJvdyBrZXlzIG9mIFdpbmRvd3MgMTAsIGFsbG93aW5nIHlvdSB0byBtYXhpbWl6ZSwgbWF4aW1pemUgdG8gc2lkZXMsIG9yIDEvNCBzaXplZCB0byBjb3JuZXIgYWNyb3NzIGEgc2luZ2xlIG9yIG11bHRpcGxlIG1vbml0b3JzIHVzaW5nIGp1c3QgU3VwZXIrQXJyb3cuXG5cbkFzIG9mIHYzLCBXaW5UaWxlIGFsc28gc3VwcG9ydHM6XG4tIDIsIDMsIG9yIDQgY29sdW1ucyBmb3Igc3RhbmRhcmQgb3IgdWx0cmF3aWRlIG1vbml0b3JzXG4tIFRvcC9ib3R0b20gaGFsZiBzdXBwb3J0XG4tIE1vdXNlIHByZXZpZXcgYW5kIHNuYXBwaW5nIGZvciBwbGFjaW5nIHdpbmRvd3Ncbi0gVG9nZ2xpbmcgb2YgJ21heGltaXplJyBtb2RlLCB3aGljaCBhZGRzL3JlbW92ZXMgR05PTUUgYW5pbWF0aW9uc1xuXG5BcyBvZiB2Niwgc3VwcG9ydHMgaW5zdGFsbHMgaW4gR05PTUUgMy4zOCtcblxuQXMgb2YgdjcsIHN1cHBvcnRzIGluc3RhbGxzIGluIEdOT01FIDQwKyIsCiAgIm5hbWUiOiAiV2luVGlsZTogV2luZG93cyAxMCB3aW5kb3cgdGlsaW5nIGZvciBHTk9NRSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Ztc3RyYXQvd2ludGlsZSIsCiAgInV1aWQiOiAid2ludGlsZUBub3dzY2kuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "1nx0psgaj33ipfsnxinvz2vjmdhhvms0bqdflhmkbh1003m6103x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIltOT1RFXSBXaGVuIHVwZ3JhZGluZyB0byBWNywgeW91IG1heSBnZXQgYW4gRVJST1IuIExvZyBvdXQgYW5kIGJhY2sgaW4gYW5kIFY3IHdpbGwgYmVnaW4gdG8gd29yay5cblxuV2luVGlsZSBpcyBhIGhvdGtleSBkcml2ZW4gd2luZG93IHRpbGluZyBzeXN0ZW0gZm9yIEdOT01FIHRoYXQgaW1pdGF0ZXMgdGhlIHN0YW5kYXJkIFdpbi1BcnJvdyBrZXlzIG9mIFdpbmRvd3MgMTAsIGFsbG93aW5nIHlvdSB0byBtYXhpbWl6ZSwgbWF4aW1pemUgdG8gc2lkZXMsIG9yIDEvNCBzaXplZCB0byBjb3JuZXIgYWNyb3NzIGEgc2luZ2xlIG9yIG11bHRpcGxlIG1vbml0b3JzIHVzaW5nIGp1c3QgU3VwZXIrQXJyb3cuXG5cbkFzIG9mIHYzLCBXaW5UaWxlIGFsc28gc3VwcG9ydHM6XG4tIDIsIDMsIG9yIDQgY29sdW1ucyBmb3Igc3RhbmRhcmQgb3IgdWx0cmF3aWRlIG1vbml0b3JzXG4tIFRvcC9ib3R0b20gaGFsZiBzdXBwb3J0XG4tIE1vdXNlIHByZXZpZXcgYW5kIHNuYXBwaW5nIGZvciBwbGFjaW5nIHdpbmRvd3Ncbi0gVG9nZ2xpbmcgb2YgJ21heGltaXplJyBtb2RlLCB3aGljaCBhZGRzL3JlbW92ZXMgR05PTUUgYW5pbWF0aW9uc1xuXG5BcyBvZiB2Niwgc3VwcG9ydHMgaW5zdGFsbHMgaW4gR05PTUUgMy4zOCtcblxuQXMgb2YgdjcsIHN1cHBvcnRzIGluc3RhbGxzIGluIEdOT01FIDQwKyIsCiAgIm5hbWUiOiAiV2luVGlsZTogV2luZG93cyAxMCB3aW5kb3cgdGlsaW5nIGZvciBHTk9NRSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Ztc3RyYXQvd2ludGlsZSIsCiAgInV1aWQiOiAid2ludGlsZUBub3dzY2kuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
@@ -233,38 +233,38 @@
 , {"uuid": "quicklists@maestroschan.fr", "name": "Quicklists", "pname": "quicklists", "description": "Add dynamic quicklists to app icons, such as file manager bookmarks and recent files.", "link": "https://extensions.gnome.org/extension/1747/quicklists/", "shell_version_map": {"38": {"version": "7", "sha256": "1cck1k1kf116z85m5fby0hhaa7fplhryv0nv1pdc3h8200i39580", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBkeW5hbWljIHF1aWNrbGlzdHMgdG8gYXBwIGljb25zLCBzdWNoIGFzIGZpbGUgbWFuYWdlciBib29rbWFya3MgYW5kIHJlY2VudCBmaWxlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJxdWlja2xpc3RzIiwKICAibmFtZSI6ICJRdWlja2xpc3RzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnF1aWNrbGlzdHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW9zY2hhbnovcXVpY2tsaXN0cy1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInF1aWNrbGlzdHNAbWFlc3Ryb3NjaGFuLmZyIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
 , {"uuid": "lan-ip-address@mrhuber.com", "name": "LAN IP Address", "pname": "lan-ip-address", "description": "Show LAN IP address on GNOME panel. Do not show loopback addresses (127.0.0.0/8) or Docker networks.", "link": "https://extensions.gnome.org/extension/1762/lan-ip-address/", "shell_version_map": {"38": {"version": "8", "sha256": "0l81fiznq3q7q2m0ryjcmba9kzqhf0a7hq8j2sahr49acd6ih9wq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgTEFOIElQIGFkZHJlc3Mgb24gR05PTUUgcGFuZWwuIERvIG5vdCBzaG93IGxvb3BiYWNrIGFkZHJlc3NlcyAoMTI3LjAuMC4wLzgpIG9yIERvY2tlciBuZXR3b3Jrcy4iLAogICJuYW1lIjogIkxBTiBJUCBBZGRyZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3Nob2xpdGgvZ25vbWUtZXh0ZW5zaW9uLWxhbi1pcC1hZGRyZXNzIiwKICAidXVpZCI6ICJsYW4taXAtYWRkcmVzc0Btcmh1YmVyLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "0l81fiznq3q7q2m0ryjcmba9kzqhf0a7hq8j2sahr49acd6ih9wq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgTEFOIElQIGFkZHJlc3Mgb24gR05PTUUgcGFuZWwuIERvIG5vdCBzaG93IGxvb3BiYWNrIGFkZHJlc3NlcyAoMTI3LjAuMC4wLzgpIG9yIERvY2tlciBuZXR3b3Jrcy4iLAogICJuYW1lIjogIkxBTiBJUCBBZGRyZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3Nob2xpdGgvZ25vbWUtZXh0ZW5zaW9uLWxhbi1pcC1hZGRyZXNzIiwKICAidXVpZCI6ICJsYW4taXAtYWRkcmVzc0Btcmh1YmVyLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "0l81fiznq3q7q2m0ryjcmba9kzqhf0a7hq8j2sahr49acd6ih9wq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgTEFOIElQIGFkZHJlc3Mgb24gR05PTUUgcGFuZWwuIERvIG5vdCBzaG93IGxvb3BiYWNrIGFkZHJlc3NlcyAoMTI3LjAuMC4wLzgpIG9yIERvY2tlciBuZXR3b3Jrcy4iLAogICJuYW1lIjogIkxBTiBJUCBBZGRyZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3Nob2xpdGgvZ25vbWUtZXh0ZW5zaW9uLWxhbi1pcC1hZGRyZXNzIiwKICAidXVpZCI6ICJsYW4taXAtYWRkcmVzc0Btcmh1YmVyLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
 , {"uuid": "TransparentTopbar@enrico.sorio.net", "name": "Transparent Topbar", "pname": "transparent-topbar", "description": "Transparent Topbar with Multi monitors support", "link": "https://extensions.gnome.org/extension/1765/transparent-topbar/", "shell_version_map": {"38": {"version": "2", "sha256": "0rv7ddwrsmk7zrwyf2fkjhiv38pm4h0ijx1mppwji7vgvips0602", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IFRvcGJhciB3aXRoIE11bHRpIG1vbml0b3JzIHN1cHBvcnQiLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiVHJhbnNwYXJlbnRUb3BiYXJAZW5yaWNvLnNvcmlvLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "0rv7ddwrsmk7zrwyf2fkjhiv38pm4h0ijx1mppwji7vgvips0602", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IFRvcGJhciB3aXRoIE11bHRpIG1vbml0b3JzIHN1cHBvcnQiLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiVHJhbnNwYXJlbnRUb3BiYXJAZW5yaWNvLnNvcmlvLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}}}
-, {"uuid": "colortint@matt.serverus.co.uk", "name": "ColorTint", "pname": "colortint", "description": "Tint your desktop with a color of your choice to help with dyslexia, visual stress, scopic sensitivity, and related conditions.", "link": "https://extensions.gnome.org/extension/1789/colortint/", "shell_version_map": {"40": {"version": "7", "sha256": "1ggf4xlnyfxhl3fsl8ljdj0izipx2v8kxpnhhqz7w397a0r9q121", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbnQgeW91ciBkZXNrdG9wIHdpdGggYSBjb2xvciBvZiB5b3VyIGNob2ljZSB0byBoZWxwIHdpdGggZHlzbGV4aWEsIHZpc3VhbCBzdHJlc3MsIHNjb3BpYyBzZW5zaXRpdml0eSwgYW5kIHJlbGF0ZWQgY29uZGl0aW9ucy4iLAogICJuYW1lIjogIkNvbG9yVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYXR0QnlOYW1lL2NvbG9yLXRpbnQiLAogICJ1dWlkIjogImNvbG9ydGludEBtYXR0LnNlcnZlcnVzLmNvLnVrIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "colortint@matt.serverus.co.uk", "name": "ColorTint", "pname": "colortint", "description": "Tint your desktop with a color of your choice to help with dyslexia, scopic sensitivity, and related conditions.", "link": "https://extensions.gnome.org/extension/1789/colortint/", "shell_version_map": {"40": {"version": "11", "sha256": "0cidkbkw74gy1wdv7m0pr06nlzs3a343jjlagmq9j9i56fz28i1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbnQgeW91ciBkZXNrdG9wIHdpdGggYSBjb2xvciBvZiB5b3VyIGNob2ljZSB0byBoZWxwIHdpdGggZHlzbGV4aWEsIHNjb3BpYyBzZW5zaXRpdml0eSwgYW5kIHJlbGF0ZWQgY29uZGl0aW9ucy4iLAogICJuYW1lIjogIkNvbG9yVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01hdHRCeU5hbWUvY29sb3ItdGludCIsCiAgInV1aWQiOiAiY29sb3J0aW50QG1hdHQuc2VydmVydXMuY28udWsiLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "41": {"version": "11", "sha256": "0cidkbkw74gy1wdv7m0pr06nlzs3a343jjlagmq9j9i56fz28i1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbnQgeW91ciBkZXNrdG9wIHdpdGggYSBjb2xvciBvZiB5b3VyIGNob2ljZSB0byBoZWxwIHdpdGggZHlzbGV4aWEsIHNjb3BpYyBzZW5zaXRpdml0eSwgYW5kIHJlbGF0ZWQgY29uZGl0aW9ucy4iLAogICJuYW1lIjogIkNvbG9yVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01hdHRCeU5hbWUvY29sb3ItdGludCIsCiAgInV1aWQiOiAiY29sb3J0aW50QG1hdHQuc2VydmVydXMuY28udWsiLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "42": {"version": "11", "sha256": "0cidkbkw74gy1wdv7m0pr06nlzs3a343jjlagmq9j9i56fz28i1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbnQgeW91ciBkZXNrdG9wIHdpdGggYSBjb2xvciBvZiB5b3VyIGNob2ljZSB0byBoZWxwIHdpdGggZHlzbGV4aWEsIHNjb3BpYyBzZW5zaXRpdml0eSwgYW5kIHJlbGF0ZWQgY29uZGl0aW9ucy4iLAogICJuYW1lIjogIkNvbG9yVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01hdHRCeU5hbWUvY29sb3ItdGludCIsCiAgInV1aWQiOiAiY29sb3J0aW50QG1hdHQuc2VydmVydXMuY28udWsiLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
 , {"uuid": "sermon@rovellipaolo-gmail.com", "name": "SerMon: Service Monitor", "pname": "sermon", "description": "SerMon: an extension for monitoring and managing systemd services, cron jobs, docker and podman containers", "link": "https://extensions.gnome.org/extension/1804/sermon/", "shell_version_map": {"38": {"version": "16", "sha256": "1dgyphy5wka0b6jaqkdgb2kyy70f9ccgdmrcna9p04i2kcy4hm9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "40": {"version": "16", "sha256": "1dgyphy5wka0b6jaqkdgb2kyy70f9ccgdmrcna9p04i2kcy4hm9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "41": {"version": "16", "sha256": "1dgyphy5wka0b6jaqkdgb2kyy70f9ccgdmrcna9p04i2kcy4hm9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
 , {"uuid": "dict@sun.wxg@gmail.com", "name": "Screen word translate", "pname": "screen-word-translate", "description": "Translate word on the screen.\nDefault web address is translate.google.com, you can add the web address for your own language. Also you can contribute your web address to my github repo.\nUse hotkey Ctrl+Alt+j to toggle the function.\nUse hotkey Ctrl+Alt+o to show popup window", "link": "https://extensions.gnome.org/extension/1849/screen-word-translate/", "shell_version_map": {"38": {"version": "32", "sha256": "0wh9d0siggr49bfcx1308xx8rxc58nadnhp3mjj53i6fvja3cx62", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3b3JkIG9uIHRoZSBzY3JlZW4uXG5EZWZhdWx0IHdlYiBhZGRyZXNzIGlzIHRyYW5zbGF0ZS5nb29nbGUuY29tLCB5b3UgY2FuIGFkZCB0aGUgd2ViIGFkZHJlc3MgZm9yIHlvdXIgb3duIGxhbmd1YWdlLiBBbHNvIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIHdlYiBhZGRyZXNzIHRvIG15IGdpdGh1YiByZXBvLlxuVXNlIGhvdGtleSBDdHJsK0FsdCtqIHRvIHRvZ2dsZSB0aGUgZnVuY3Rpb24uXG5Vc2UgaG90a2V5IEN0cmwrQWx0K28gdG8gc2hvdyBwb3B1cCB3aW5kb3ciLAogICJuYW1lIjogIlNjcmVlbiB3b3JkIHRyYW5zbGF0ZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAic3VuLnd4Z0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpY3QiLAogICJ1dWlkIjogImRpY3RAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}, "40": {"version": "39", "sha256": "1dgnx3vpqgmpl9vr7bli7aifyr367jifbqyxjdb0ygqd7j4fav5f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3b3JkIG9uIHRoZSBzY3JlZW4uXG5EZWZhdWx0IHdlYiBhZGRyZXNzIGlzIHRyYW5zbGF0ZS5nb29nbGUuY29tLCB5b3UgY2FuIGFkZCB0aGUgd2ViIGFkZHJlc3MgZm9yIHlvdXIgb3duIGxhbmd1YWdlLiBBbHNvIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIHdlYiBhZGRyZXNzIHRvIG15IGdpdGh1YiByZXBvLlxuVXNlIGhvdGtleSBDdHJsK0FsdCtqIHRvIHRvZ2dsZSB0aGUgZnVuY3Rpb24uXG5Vc2UgaG90a2V5IEN0cmwrQWx0K28gdG8gc2hvdyBwb3B1cCB3aW5kb3ciLAogICJuYW1lIjogIlNjcmVlbiB3b3JkIHRyYW5zbGF0ZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAic3VuLnd4Z0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpY3QiLAogICJ1dWlkIjogImRpY3RAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzkKfQ=="}, "41": {"version": "39", "sha256": "1dgnx3vpqgmpl9vr7bli7aifyr367jifbqyxjdb0ygqd7j4fav5f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3b3JkIG9uIHRoZSBzY3JlZW4uXG5EZWZhdWx0IHdlYiBhZGRyZXNzIGlzIHRyYW5zbGF0ZS5nb29nbGUuY29tLCB5b3UgY2FuIGFkZCB0aGUgd2ViIGFkZHJlc3MgZm9yIHlvdXIgb3duIGxhbmd1YWdlLiBBbHNvIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIHdlYiBhZGRyZXNzIHRvIG15IGdpdGh1YiByZXBvLlxuVXNlIGhvdGtleSBDdHJsK0FsdCtqIHRvIHRvZ2dsZSB0aGUgZnVuY3Rpb24uXG5Vc2UgaG90a2V5IEN0cmwrQWx0K28gdG8gc2hvdyBwb3B1cCB3aW5kb3ciLAogICJuYW1lIjogIlNjcmVlbiB3b3JkIHRyYW5zbGF0ZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAic3VuLnd4Z0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpY3QiLAogICJ1dWlkIjogImRpY3RAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzkKfQ=="}, "42": {"version": "39", "sha256": "1dgnx3vpqgmpl9vr7bli7aifyr367jifbqyxjdb0ygqd7j4fav5f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3b3JkIG9uIHRoZSBzY3JlZW4uXG5EZWZhdWx0IHdlYiBhZGRyZXNzIGlzIHRyYW5zbGF0ZS5nb29nbGUuY29tLCB5b3UgY2FuIGFkZCB0aGUgd2ViIGFkZHJlc3MgZm9yIHlvdXIgb3duIGxhbmd1YWdlLiBBbHNvIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIHdlYiBhZGRyZXNzIHRvIG15IGdpdGh1YiByZXBvLlxuVXNlIGhvdGtleSBDdHJsK0FsdCtqIHRvIHRvZ2dsZSB0aGUgZnVuY3Rpb24uXG5Vc2UgaG90a2V5IEN0cmwrQWx0K28gdG8gc2hvdyBwb3B1cCB3aW5kb3ciLAogICJuYW1lIjogIlNjcmVlbiB3b3JkIHRyYW5zbGF0ZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAic3VuLnd4Z0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpY3QiLAogICJ1dWlkIjogImRpY3RAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzkKfQ=="}}}
 , {"uuid": "gamemode@christian.kellner.me", "name": "GameMode", "pname": "gamemode", "description": "Status indicator for GameMode", "link": "https://extensions.gnome.org/extension/1852/gamemode/", "shell_version_map": {"38": {"version": "6", "sha256": "05256a7rcw1db983w557cpl5vilkb0wg82xpja91j2lqnp7als5l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBpbmRpY2F0b3IgZm9yIEdhbWVNb2RlIiwKICAiZXh0ZW5zaW9uLWlkIjogImdhbWVtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ2FtZW1vZGUtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJHYW1lTW9kZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJja2VsbG5lckByZWRoYXQuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdhbWVtb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9naWNtby9nYW1lbW9kZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdhbWVtb2RlQGNocmlzdGlhbi5rZWxsbmVyLm1lIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "05256a7rcw1db983w557cpl5vilkb0wg82xpja91j2lqnp7als5l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBpbmRpY2F0b3IgZm9yIEdhbWVNb2RlIiwKICAiZXh0ZW5zaW9uLWlkIjogImdhbWVtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ2FtZW1vZGUtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJHYW1lTW9kZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJja2VsbG5lckByZWRoYXQuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdhbWVtb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9naWNtby9nYW1lbW9kZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdhbWVtb2RlQGNocmlzdGlhbi5rZWxsbmVyLm1lIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "05256a7rcw1db983w557cpl5vilkb0wg82xpja91j2lqnp7als5l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBpbmRpY2F0b3IgZm9yIEdhbWVNb2RlIiwKICAiZXh0ZW5zaW9uLWlkIjogImdhbWVtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ2FtZW1vZGUtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJHYW1lTW9kZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJja2VsbG5lckByZWRoYXQuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdhbWVtb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9naWNtby9nYW1lbW9kZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdhbWVtb2RlQGNocmlzdGlhbi5rZWxsbmVyLm1lIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
-, {"uuid": "unredirect@vaina.lt", "name": "Disable unredirect fullscreen windows", "pname": "disable-unredirect-fullscreen-windows", "description": "Disables unredirect fullscreen windows in gnome-shell", "link": "https://extensions.gnome.org/extension/1873/disable-unredirect-fullscreen-windows/", "shell_version_map": {"38": {"version": "4", "sha256": "114536ils1avmwzqxf41q78wg50ynpiyq9kiw7smbxnx6l4pds0q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIiwKICAibmFtZSI6ICJEaXNhYmxlIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJLYXppbWllcmFzIFZhaW5hIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuNCIsCiAgICAiMy42IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thenlzbWFzdGVyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAdmFpbmEubHQiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "114536ils1avmwzqxf41q78wg50ynpiyq9kiw7smbxnx6l4pds0q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIiwKICAibmFtZSI6ICJEaXNhYmxlIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJLYXppbWllcmFzIFZhaW5hIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuNCIsCiAgICAiMy42IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thenlzbWFzdGVyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAdmFpbmEubHQiLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "114536ils1avmwzqxf41q78wg50ynpiyq9kiw7smbxnx6l4pds0q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIiwKICAibmFtZSI6ICJEaXNhYmxlIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJLYXppbWllcmFzIFZhaW5hIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuNCIsCiAgICAiMy42IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thenlzbWFzdGVyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAdmFpbmEubHQiLAogICJ2ZXJzaW9uIjogNAp9"}}}
-, {"uuid": "krypto@sereneblue", "name": "krypto", "pname": "krypto", "description": "Cryptocurrency utility", "link": "https://extensions.gnome.org/extension/1913/krypto/", "shell_version_map": {"38": {"version": "5", "sha256": "0pmga4iqpm0i853lgqfhvnkxhji8m79pk9hgf24lvbpv8alkxzz3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlcmVuZWJsdWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtyeXB0byIsCiAgInV1aWQiOiAia3J5cHRvQHNlcmVuZWJsdWUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "17", "sha256": "0s6xv3ndjj2bhliyp9rxkxk3sqbbiff1x886ca03j5f8ywcg7x7i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlcmVuZWJsdWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtyeXB0byIsCiAgInV1aWQiOiAia3J5cHRvQHNlcmVuZWJsdWUiLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "41": {"version": "17", "sha256": "0s6xv3ndjj2bhliyp9rxkxk3sqbbiff1x886ca03j5f8ywcg7x7i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlcmVuZWJsdWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtyeXB0byIsCiAgInV1aWQiOiAia3J5cHRvQHNlcmVuZWJsdWUiLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "42": {"version": "17", "sha256": "0s6xv3ndjj2bhliyp9rxkxk3sqbbiff1x886ca03j5f8ywcg7x7i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlcmVuZWJsdWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtyeXB0byIsCiAgInV1aWQiOiAia3J5cHRvQHNlcmVuZWJsdWUiLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
+, {"uuid": "unredirect@vaina.lt", "name": "Disable unredirect fullscreen windows", "pname": "disable-unredirect-fullscreen-windows", "description": "Disables unredirect fullscreen windows in gnome-shell to workaround https://bugzilla.redhat.com/show_bug.cgi?id=767397 and https://bugzilla.gnome.org/show_bug.cgi?id=738719", "link": "https://extensions.gnome.org/extension/1873/disable-unredirect-fullscreen-windows/", "shell_version_map": {"38": {"version": "5", "sha256": "0nv3rj4v9ix1f84d55cki9l27fafxc84ijs6xk6dl47h2h5fjnnl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHdvcmthcm91bmQgaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD03NjczOTcgYW5kIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzg3MTkiLAogICJuYW1lIjogIkRpc2FibGUgdW5yZWRpcmVjdCBmdWxsc2NyZWVuIHdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkthemltaWVyYXMgVmFpbmEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4zMCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thenlzbWFzdGVyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAdmFpbmEubHQiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "0nv3rj4v9ix1f84d55cki9l27fafxc84ijs6xk6dl47h2h5fjnnl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHdvcmthcm91bmQgaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD03NjczOTcgYW5kIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzg3MTkiLAogICJuYW1lIjogIkRpc2FibGUgdW5yZWRpcmVjdCBmdWxsc2NyZWVuIHdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkthemltaWVyYXMgVmFpbmEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4zMCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thenlzbWFzdGVyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAdmFpbmEubHQiLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "0nv3rj4v9ix1f84d55cki9l27fafxc84ijs6xk6dl47h2h5fjnnl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHdvcmthcm91bmQgaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD03NjczOTcgYW5kIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzg3MTkiLAogICJuYW1lIjogIkRpc2FibGUgdW5yZWRpcmVjdCBmdWxsc2NyZWVuIHdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkthemltaWVyYXMgVmFpbmEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4zMCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thenlzbWFzdGVyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAdmFpbmEubHQiLAogICJ2ZXJzaW9uIjogNQp9"}, "42": {"version": "5", "sha256": "0nv3rj4v9ix1f84d55cki9l27fafxc84ijs6xk6dl47h2h5fjnnl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHdvcmthcm91bmQgaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD03NjczOTcgYW5kIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzg3MTkiLAogICJuYW1lIjogIkRpc2FibGUgdW5yZWRpcmVjdCBmdWxsc2NyZWVuIHdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkthemltaWVyYXMgVmFpbmEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4zMCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thenlzbWFzdGVyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAdmFpbmEubHQiLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "krypto@sereneblue", "name": "krypto", "pname": "krypto", "description": "Cryptocurrency utility", "link": "https://extensions.gnome.org/extension/1913/krypto/", "shell_version_map": {"38": {"version": "5", "sha256": "0pmga4iqpm0i853lgqfhvnkxhji8m79pk9hgf24lvbpv8alkxzz3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlcmVuZWJsdWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtyeXB0byIsCiAgInV1aWQiOiAia3J5cHRvQHNlcmVuZWJsdWUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "19", "sha256": "1ni75fbyxcha4ff7amd4gkc1fnvzylhammp60lnj0hmvab75r02v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlcmVuZWJsdWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtyeXB0byIsCiAgInV1aWQiOiAia3J5cHRvQHNlcmVuZWJsdWUiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "41": {"version": "19", "sha256": "1ni75fbyxcha4ff7amd4gkc1fnvzylhammp60lnj0hmvab75r02v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlcmVuZWJsdWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtyeXB0byIsCiAgInV1aWQiOiAia3J5cHRvQHNlcmVuZWJsdWUiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "42": {"version": "19", "sha256": "1ni75fbyxcha4ff7amd4gkc1fnvzylhammp60lnj0hmvab75r02v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlcmVuZWJsdWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtyeXB0byIsCiAgInV1aWQiOiAia3J5cHRvQHNlcmVuZWJsdWUiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
 , {"uuid": "cmus-status@yagreg7.gmail.com", "name": "cmus status", "pname": "cmus-status", "description": "Shows cmus status", "link": "https://extensions.gnome.org/extension/1934/cmus-status/", "shell_version_map": {"38": {"version": "8", "sha256": "1a6b10kirzbjlllcnffznjlljicah172kpvs0p8rmwhcpn88i8hx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGNtdXMgc3RhdHVzIiwKICAibmFtZSI6ICJjbXVzIHN0YXR1cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jbXVzLXN0YXR1cy5nc2NoZW1hLnhtbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0dyZWdUaGVNYWRNb25rL2dub21lLWNtdXMtc3RhdHVzIiwKICAidXVpZCI6ICJjbXVzLXN0YXR1c0B5YWdyZWc3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "10", "sha256": "0a1g8l2w46nky88db7vjpv3iz87jk967vfm3vnvi7rw9wqphkn9z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGNtdXMgc3RhdHVzIiwKICAibmFtZSI6ICJjbXVzIHN0YXR1cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jbXVzLXN0YXR1cy5nc2NoZW1hLnhtbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vR3JlZ1RoZU1hZE1vbmsvZ25vbWUtY211cy1zdGF0dXMiLAogICJ1dWlkIjogImNtdXMtc3RhdHVzQHlhZ3JlZzcuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "41": {"version": "10", "sha256": "0a1g8l2w46nky88db7vjpv3iz87jk967vfm3vnvi7rw9wqphkn9z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGNtdXMgc3RhdHVzIiwKICAibmFtZSI6ICJjbXVzIHN0YXR1cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jbXVzLXN0YXR1cy5nc2NoZW1hLnhtbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vR3JlZ1RoZU1hZE1vbmsvZ25vbWUtY211cy1zdGF0dXMiLAogICJ1dWlkIjogImNtdXMtc3RhdHVzQHlhZ3JlZzcuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
 , {"uuid": "no-title-bar@jonaspoehler.de", "name": "No Title Bar - Forked", "pname": "no-title-bar-forked", "description": "No Title Bar removes the title bar from non-GTK applications and moves the window title and buttons to the top panel.\n\nTitlebars are also hidden for Wayland-native clients that don't use CSD. Some of the options may be incompatible with this. For issues on Wayland please visit github!\n\nThis is a fork of https://extensions.gnome.org/extension/1267/no-title-bar/ with added compatibility for Gnome 3.32+.\n\nThis extension depends on some Xorg utilities. To install them:\n\n⚫ Debian/Ubuntu: apt install x11-utils\n⚫ Fedora/RHEL: dnf install xorg-x11-utils\n⚫ Arch: pacman -S xorg-xprop", "link": "https://extensions.gnome.org/extension/2015/no-title-bar-forked/", "shell_version_map": {"38": {"version": "5", "sha256": "0kch8yra13813gg3wa90lm57skqshmj3j1147lrqwhl9va9rk4q6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIFRpdGxlIEJhciByZW1vdmVzIHRoZSB0aXRsZSBiYXIgZnJvbSBub24tR1RLIGFwcGxpY2F0aW9ucyBhbmQgbW92ZXMgdGhlIHdpbmRvdyB0aXRsZSBhbmQgYnV0dG9ucyB0byB0aGUgdG9wIHBhbmVsLlxuXG5UaXRsZWJhcnMgYXJlIGFsc28gaGlkZGVuIGZvciBXYXlsYW5kLW5hdGl2ZSBjbGllbnRzIHRoYXQgZG9uJ3QgdXNlIENTRC4gU29tZSBvZiB0aGUgb3B0aW9ucyBtYXkgYmUgaW5jb21wYXRpYmxlIHdpdGggdGhpcy4gRm9yIGlzc3VlcyBvbiBXYXlsYW5kIHBsZWFzZSB2aXNpdCBnaXRodWIhXG5cblRoaXMgaXMgYSBmb3JrIG9mIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyNjcvbm8tdGl0bGUtYmFyLyB3aXRoIGFkZGVkIGNvbXBhdGliaWxpdHkgZm9yIEdub21lIDMuMzIrLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcblxuXHUyNmFiIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuXHUyNmFiIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuXHUyNmFiIEFyY2g6IHBhY21hbiAtUyB4b3JnLXhwcm9wIiwKICAibmFtZSI6ICJObyBUaXRsZSBCYXIgLSBGb3JrZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wb2VobGVyai9uby10aXRsZS1iYXIiLAogICJ1dWlkIjogIm5vLXRpdGxlLWJhckBqb25hc3BvZWhsZXIuZGUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "6", "sha256": "1plnj999qynsfvab6s01rfrdvw6m0s19b4zirhmlqrpax9vjl3zm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIFRpdGxlIEJhciByZW1vdmVzIHRoZSB0aXRsZSBiYXIgZnJvbSBub24tR1RLIGFwcGxpY2F0aW9ucyBhbmQgbW92ZXMgdGhlIHdpbmRvdyB0aXRsZSBhbmQgYnV0dG9ucyB0byB0aGUgdG9wIHBhbmVsLlxuXG5UaXRsZWJhcnMgYXJlIGFsc28gaGlkZGVuIGZvciBXYXlsYW5kLW5hdGl2ZSBjbGllbnRzIHRoYXQgZG9uJ3QgdXNlIENTRC4gU29tZSBvZiB0aGUgb3B0aW9ucyBtYXkgYmUgaW5jb21wYXRpYmxlIHdpdGggdGhpcy4gRm9yIGlzc3VlcyBvbiBXYXlsYW5kIHBsZWFzZSB2aXNpdCBnaXRodWIhXG5cblRoaXMgaXMgYSBmb3JrIG9mIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyNjcvbm8tdGl0bGUtYmFyLyB3aXRoIGFkZGVkIGNvbXBhdGliaWxpdHkgZm9yIEdub21lIDMuMzIrLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcblxuXHUyNmFiIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuXHUyNmFiIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuXHUyNmFiIEFyY2g6IHBhY21hbiAtUyB4b3JnLXhwcm9wIiwKICAibmFtZSI6ICJObyBUaXRsZSBCYXIgLSBGb3JrZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9laGxlcmovbm8tdGl0bGUtYmFyIiwKICAidXVpZCI6ICJuby10aXRsZS1iYXJAam9uYXNwb2VobGVyLmRlIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
-, {"uuid": "application_view_when_empty@fawtytoo", "name": "Show Application View When Workspace Empty", "pname": "show-application-view-when-workspace-empty", "description": "Shows the application view when the workspace is or becomes empty, such as switching to an empty workspace, when all windows on a workspace are closed, or after login. Starting applications or switching to a workspace with open windows will hide the application view if it's showing.\nFrom version 22, this extension waits for any window closing animation to complete (if enabled) before showing the application view.", "link": "https://extensions.gnome.org/extension/2036/show-application-view-when-workspace-empty/", "shell_version_map": {"38": {"version": "24", "sha256": "1g8c9pz8i35kap730ly0h3lzz2qrzc9057zw9mpcwqkqkp6v1aw4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBhcHBsaWNhdGlvbiB2aWV3IHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBvciBiZWNvbWVzIGVtcHR5LCBzdWNoIGFzIHN3aXRjaGluZyB0byBhbiBlbXB0eSB3b3Jrc3BhY2UsIHdoZW4gYWxsIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2UgYXJlIGNsb3NlZCwgb3IgYWZ0ZXIgbG9naW4uIFN0YXJ0aW5nIGFwcGxpY2F0aW9ucyBvciBzd2l0Y2hpbmcgdG8gYSB3b3Jrc3BhY2Ugd2l0aCBvcGVuIHdpbmRvd3Mgd2lsbCBoaWRlIHRoZSBhcHBsaWNhdGlvbiB2aWV3IGlmIGl0J3Mgc2hvd2luZy5cbkZyb20gdmVyc2lvbiAyMiwgdGhpcyBleHRlbnNpb24gd2FpdHMgZm9yIGFueSB3aW5kb3cgY2xvc2luZyBhbmltYXRpb24gdG8gY29tcGxldGUgKGlmIGVuYWJsZWQpIGJlZm9yZSBzaG93aW5nIHRoZSBhcHBsaWNhdGlvbiB2aWV3LiIsCiAgIm5hbWUiOiAiU2hvdyBBcHBsaWNhdGlvbiBWaWV3IFdoZW4gV29ya3NwYWNlIEVtcHR5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mYXd0eXRvby9TaG93LUFwcGxpY2F0aW9uLVZpZXctV2hlbi1Xb3Jrc3BhY2UtRW1wdHkiLAogICJ1dWlkIjogImFwcGxpY2F0aW9uX3ZpZXdfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAyNAp9"}, "40": {"version": "24", "sha256": "1g8c9pz8i35kap730ly0h3lzz2qrzc9057zw9mpcwqkqkp6v1aw4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBhcHBsaWNhdGlvbiB2aWV3IHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBvciBiZWNvbWVzIGVtcHR5LCBzdWNoIGFzIHN3aXRjaGluZyB0byBhbiBlbXB0eSB3b3Jrc3BhY2UsIHdoZW4gYWxsIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2UgYXJlIGNsb3NlZCwgb3IgYWZ0ZXIgbG9naW4uIFN0YXJ0aW5nIGFwcGxpY2F0aW9ucyBvciBzd2l0Y2hpbmcgdG8gYSB3b3Jrc3BhY2Ugd2l0aCBvcGVuIHdpbmRvd3Mgd2lsbCBoaWRlIHRoZSBhcHBsaWNhdGlvbiB2aWV3IGlmIGl0J3Mgc2hvd2luZy5cbkZyb20gdmVyc2lvbiAyMiwgdGhpcyBleHRlbnNpb24gd2FpdHMgZm9yIGFueSB3aW5kb3cgY2xvc2luZyBhbmltYXRpb24gdG8gY29tcGxldGUgKGlmIGVuYWJsZWQpIGJlZm9yZSBzaG93aW5nIHRoZSBhcHBsaWNhdGlvbiB2aWV3LiIsCiAgIm5hbWUiOiAiU2hvdyBBcHBsaWNhdGlvbiBWaWV3IFdoZW4gV29ya3NwYWNlIEVtcHR5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mYXd0eXRvby9TaG93LUFwcGxpY2F0aW9uLVZpZXctV2hlbi1Xb3Jrc3BhY2UtRW1wdHkiLAogICJ1dWlkIjogImFwcGxpY2F0aW9uX3ZpZXdfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAyNAp9"}, "41": {"version": "24", "sha256": "1g8c9pz8i35kap730ly0h3lzz2qrzc9057zw9mpcwqkqkp6v1aw4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBhcHBsaWNhdGlvbiB2aWV3IHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBvciBiZWNvbWVzIGVtcHR5LCBzdWNoIGFzIHN3aXRjaGluZyB0byBhbiBlbXB0eSB3b3Jrc3BhY2UsIHdoZW4gYWxsIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2UgYXJlIGNsb3NlZCwgb3IgYWZ0ZXIgbG9naW4uIFN0YXJ0aW5nIGFwcGxpY2F0aW9ucyBvciBzd2l0Y2hpbmcgdG8gYSB3b3Jrc3BhY2Ugd2l0aCBvcGVuIHdpbmRvd3Mgd2lsbCBoaWRlIHRoZSBhcHBsaWNhdGlvbiB2aWV3IGlmIGl0J3Mgc2hvd2luZy5cbkZyb20gdmVyc2lvbiAyMiwgdGhpcyBleHRlbnNpb24gd2FpdHMgZm9yIGFueSB3aW5kb3cgY2xvc2luZyBhbmltYXRpb24gdG8gY29tcGxldGUgKGlmIGVuYWJsZWQpIGJlZm9yZSBzaG93aW5nIHRoZSBhcHBsaWNhdGlvbiB2aWV3LiIsCiAgIm5hbWUiOiAiU2hvdyBBcHBsaWNhdGlvbiBWaWV3IFdoZW4gV29ya3NwYWNlIEVtcHR5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mYXd0eXRvby9TaG93LUFwcGxpY2F0aW9uLVZpZXctV2hlbi1Xb3Jrc3BhY2UtRW1wdHkiLAogICJ1dWlkIjogImFwcGxpY2F0aW9uX3ZpZXdfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAyNAp9"}}}
-, {"uuid": "activities_icon_menu@fawtytoo", "name": "Activities Icon Menu", "pname": "activities-menu-for-apps-and-windows", "description": "This extension turns the Activities button into a popup menu with icons for selecting either Applications or Workspaces in the Overview. Selecting the same view again will hide the overview.\n\nThis is particularly useful for tablet users that find the Activities button difficult to click on, whereas a menu can be more easily invoked.", "link": "https://extensions.gnome.org/extension/2048/activities-menu-for-apps-and-windows/", "shell_version_map": {"38": {"version": "10", "sha256": "1ggr5il7fvh07zabh3mk3rhy68daqpj2wzqh9qxh76ykcswzd8kd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHR1cm5zIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBpbnRvIGEgcG9wdXAgbWVudSB3aXRoIGljb25zIGZvciBzZWxlY3RpbmcgZWl0aGVyIEFwcGxpY2F0aW9ucyBvciBXb3Jrc3BhY2VzIGluIHRoZSBPdmVydmlldy4gU2VsZWN0aW5nIHRoZSBzYW1lIHZpZXcgYWdhaW4gd2lsbCBoaWRlIHRoZSBvdmVydmlldy5cblxuVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciB0YWJsZXQgdXNlcnMgdGhhdCBmaW5kIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBkaWZmaWN1bHQgdG8gY2xpY2sgb24sIHdoZXJlYXMgYSBtZW51IGNhbiBiZSBtb3JlIGVhc2lseSBpbnZva2VkLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29uIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJhY3Rpdml0aWVzX2ljb25fbWVudUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxMAp9"}, "40": {"version": "10", "sha256": "1ggr5il7fvh07zabh3mk3rhy68daqpj2wzqh9qxh76ykcswzd8kd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHR1cm5zIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBpbnRvIGEgcG9wdXAgbWVudSB3aXRoIGljb25zIGZvciBzZWxlY3RpbmcgZWl0aGVyIEFwcGxpY2F0aW9ucyBvciBXb3Jrc3BhY2VzIGluIHRoZSBPdmVydmlldy4gU2VsZWN0aW5nIHRoZSBzYW1lIHZpZXcgYWdhaW4gd2lsbCBoaWRlIHRoZSBvdmVydmlldy5cblxuVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciB0YWJsZXQgdXNlcnMgdGhhdCBmaW5kIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBkaWZmaWN1bHQgdG8gY2xpY2sgb24sIHdoZXJlYXMgYSBtZW51IGNhbiBiZSBtb3JlIGVhc2lseSBpbnZva2VkLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29uIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJhY3Rpdml0aWVzX2ljb25fbWVudUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxMAp9"}, "41": {"version": "10", "sha256": "1ggr5il7fvh07zabh3mk3rhy68daqpj2wzqh9qxh76ykcswzd8kd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHR1cm5zIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBpbnRvIGEgcG9wdXAgbWVudSB3aXRoIGljb25zIGZvciBzZWxlY3RpbmcgZWl0aGVyIEFwcGxpY2F0aW9ucyBvciBXb3Jrc3BhY2VzIGluIHRoZSBPdmVydmlldy4gU2VsZWN0aW5nIHRoZSBzYW1lIHZpZXcgYWdhaW4gd2lsbCBoaWRlIHRoZSBvdmVydmlldy5cblxuVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciB0YWJsZXQgdXNlcnMgdGhhdCBmaW5kIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBkaWZmaWN1bHQgdG8gY2xpY2sgb24sIHdoZXJlYXMgYSBtZW51IGNhbiBiZSBtb3JlIGVhc2lseSBpbnZva2VkLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29uIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJhY3Rpdml0aWVzX2ljb25fbWVudUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxMAp9"}}}
+, {"uuid": "application_view_when_empty@fawtytoo", "name": "Show Application View When Workspace Empty", "pname": "show-application-view-when-workspace-empty", "description": "Shows the application view when the workspace is or becomes empty, such as switching to an empty workspace, when all windows on a workspace are closed, or after login. Starting applications or switching to a workspace with open windows will hide the application view if it's showing.\nFrom version 22, this extension waits for any window closing animation to complete (if enabled) before showing the application view.", "link": "https://extensions.gnome.org/extension/2036/show-application-view-when-workspace-empty/", "shell_version_map": {"38": {"version": "25", "sha256": "1810bd4wqxblwc8y4gzwlc8ld4li2ggb6xpiqilag6aa8pz8y1yq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBhcHBsaWNhdGlvbiB2aWV3IHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBvciBiZWNvbWVzIGVtcHR5LCBzdWNoIGFzIHN3aXRjaGluZyB0byBhbiBlbXB0eSB3b3Jrc3BhY2UsIHdoZW4gYWxsIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2UgYXJlIGNsb3NlZCwgb3IgYWZ0ZXIgbG9naW4uIFN0YXJ0aW5nIGFwcGxpY2F0aW9ucyBvciBzd2l0Y2hpbmcgdG8gYSB3b3Jrc3BhY2Ugd2l0aCBvcGVuIHdpbmRvd3Mgd2lsbCBoaWRlIHRoZSBhcHBsaWNhdGlvbiB2aWV3IGlmIGl0J3Mgc2hvd2luZy5cbkZyb20gdmVyc2lvbiAyMiwgdGhpcyBleHRlbnNpb24gd2FpdHMgZm9yIGFueSB3aW5kb3cgY2xvc2luZyBhbmltYXRpb24gdG8gY29tcGxldGUgKGlmIGVuYWJsZWQpIGJlZm9yZSBzaG93aW5nIHRoZSBhcHBsaWNhdGlvbiB2aWV3LiIsCiAgIm5hbWUiOiAiU2hvdyBBcHBsaWNhdGlvbiBWaWV3IFdoZW4gV29ya3NwYWNlIEVtcHR5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmF3dHl0b28vU2hvdy1BcHBsaWNhdGlvbi1WaWV3LVdoZW4tV29ya3NwYWNlLUVtcHR5IiwKICAidXVpZCI6ICJhcHBsaWNhdGlvbl92aWV3X3doZW5fZW1wdHlAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "40": {"version": "25", "sha256": "1810bd4wqxblwc8y4gzwlc8ld4li2ggb6xpiqilag6aa8pz8y1yq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBhcHBsaWNhdGlvbiB2aWV3IHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBvciBiZWNvbWVzIGVtcHR5LCBzdWNoIGFzIHN3aXRjaGluZyB0byBhbiBlbXB0eSB3b3Jrc3BhY2UsIHdoZW4gYWxsIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2UgYXJlIGNsb3NlZCwgb3IgYWZ0ZXIgbG9naW4uIFN0YXJ0aW5nIGFwcGxpY2F0aW9ucyBvciBzd2l0Y2hpbmcgdG8gYSB3b3Jrc3BhY2Ugd2l0aCBvcGVuIHdpbmRvd3Mgd2lsbCBoaWRlIHRoZSBhcHBsaWNhdGlvbiB2aWV3IGlmIGl0J3Mgc2hvd2luZy5cbkZyb20gdmVyc2lvbiAyMiwgdGhpcyBleHRlbnNpb24gd2FpdHMgZm9yIGFueSB3aW5kb3cgY2xvc2luZyBhbmltYXRpb24gdG8gY29tcGxldGUgKGlmIGVuYWJsZWQpIGJlZm9yZSBzaG93aW5nIHRoZSBhcHBsaWNhdGlvbiB2aWV3LiIsCiAgIm5hbWUiOiAiU2hvdyBBcHBsaWNhdGlvbiBWaWV3IFdoZW4gV29ya3NwYWNlIEVtcHR5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmF3dHl0b28vU2hvdy1BcHBsaWNhdGlvbi1WaWV3LVdoZW4tV29ya3NwYWNlLUVtcHR5IiwKICAidXVpZCI6ICJhcHBsaWNhdGlvbl92aWV3X3doZW5fZW1wdHlAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "41": {"version": "25", "sha256": "1810bd4wqxblwc8y4gzwlc8ld4li2ggb6xpiqilag6aa8pz8y1yq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBhcHBsaWNhdGlvbiB2aWV3IHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBvciBiZWNvbWVzIGVtcHR5LCBzdWNoIGFzIHN3aXRjaGluZyB0byBhbiBlbXB0eSB3b3Jrc3BhY2UsIHdoZW4gYWxsIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2UgYXJlIGNsb3NlZCwgb3IgYWZ0ZXIgbG9naW4uIFN0YXJ0aW5nIGFwcGxpY2F0aW9ucyBvciBzd2l0Y2hpbmcgdG8gYSB3b3Jrc3BhY2Ugd2l0aCBvcGVuIHdpbmRvd3Mgd2lsbCBoaWRlIHRoZSBhcHBsaWNhdGlvbiB2aWV3IGlmIGl0J3Mgc2hvd2luZy5cbkZyb20gdmVyc2lvbiAyMiwgdGhpcyBleHRlbnNpb24gd2FpdHMgZm9yIGFueSB3aW5kb3cgY2xvc2luZyBhbmltYXRpb24gdG8gY29tcGxldGUgKGlmIGVuYWJsZWQpIGJlZm9yZSBzaG93aW5nIHRoZSBhcHBsaWNhdGlvbiB2aWV3LiIsCiAgIm5hbWUiOiAiU2hvdyBBcHBsaWNhdGlvbiBWaWV3IFdoZW4gV29ya3NwYWNlIEVtcHR5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmF3dHl0b28vU2hvdy1BcHBsaWNhdGlvbi1WaWV3LVdoZW4tV29ya3NwYWNlLUVtcHR5IiwKICAidXVpZCI6ICJhcHBsaWNhdGlvbl92aWV3X3doZW5fZW1wdHlAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "42": {"version": "25", "sha256": "1810bd4wqxblwc8y4gzwlc8ld4li2ggb6xpiqilag6aa8pz8y1yq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBhcHBsaWNhdGlvbiB2aWV3IHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBvciBiZWNvbWVzIGVtcHR5LCBzdWNoIGFzIHN3aXRjaGluZyB0byBhbiBlbXB0eSB3b3Jrc3BhY2UsIHdoZW4gYWxsIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2UgYXJlIGNsb3NlZCwgb3IgYWZ0ZXIgbG9naW4uIFN0YXJ0aW5nIGFwcGxpY2F0aW9ucyBvciBzd2l0Y2hpbmcgdG8gYSB3b3Jrc3BhY2Ugd2l0aCBvcGVuIHdpbmRvd3Mgd2lsbCBoaWRlIHRoZSBhcHBsaWNhdGlvbiB2aWV3IGlmIGl0J3Mgc2hvd2luZy5cbkZyb20gdmVyc2lvbiAyMiwgdGhpcyBleHRlbnNpb24gd2FpdHMgZm9yIGFueSB3aW5kb3cgY2xvc2luZyBhbmltYXRpb24gdG8gY29tcGxldGUgKGlmIGVuYWJsZWQpIGJlZm9yZSBzaG93aW5nIHRoZSBhcHBsaWNhdGlvbiB2aWV3LiIsCiAgIm5hbWUiOiAiU2hvdyBBcHBsaWNhdGlvbiBWaWV3IFdoZW4gV29ya3NwYWNlIEVtcHR5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmF3dHl0b28vU2hvdy1BcHBsaWNhdGlvbi1WaWV3LVdoZW4tV29ya3NwYWNlLUVtcHR5IiwKICAidXVpZCI6ICJhcHBsaWNhdGlvbl92aWV3X3doZW5fZW1wdHlAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}}}
+, {"uuid": "activities_icon_menu@fawtytoo", "name": "Activities Icon Menu", "pname": "activities-menu-for-apps-and-windows", "description": "This extension turns the Activities button into a popup menu with icons for selecting either Applications or Workspaces in the Overview. Selecting the same view again will hide the overview.\n\nThis is particularly useful for tablet users that find the Activities button difficult to click on, whereas a menu can be more easily invoked.", "link": "https://extensions.gnome.org/extension/2048/activities-menu-for-apps-and-windows/", "shell_version_map": {"38": {"version": "11", "sha256": "028nrx3hakj8mcr3n6nsnrzg2mfikn49m4j2pjyq67y7vikjr4af", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHR1cm5zIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBpbnRvIGEgcG9wdXAgbWVudSB3aXRoIGljb25zIGZvciBzZWxlY3RpbmcgZWl0aGVyIEFwcGxpY2F0aW9ucyBvciBXb3Jrc3BhY2VzIGluIHRoZSBPdmVydmlldy4gU2VsZWN0aW5nIHRoZSBzYW1lIHZpZXcgYWdhaW4gd2lsbCBoaWRlIHRoZSBvdmVydmlldy5cblxuVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciB0YWJsZXQgdXNlcnMgdGhhdCBmaW5kIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBkaWZmaWN1bHQgdG8gY2xpY2sgb24sIHdoZXJlYXMgYSBtZW51IGNhbiBiZSBtb3JlIGVhc2lseSBpbnZva2VkLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29uIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYWN0aXZpdGllc19pY29uX21lbnVAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "40": {"version": "11", "sha256": "028nrx3hakj8mcr3n6nsnrzg2mfikn49m4j2pjyq67y7vikjr4af", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHR1cm5zIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBpbnRvIGEgcG9wdXAgbWVudSB3aXRoIGljb25zIGZvciBzZWxlY3RpbmcgZWl0aGVyIEFwcGxpY2F0aW9ucyBvciBXb3Jrc3BhY2VzIGluIHRoZSBPdmVydmlldy4gU2VsZWN0aW5nIHRoZSBzYW1lIHZpZXcgYWdhaW4gd2lsbCBoaWRlIHRoZSBvdmVydmlldy5cblxuVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciB0YWJsZXQgdXNlcnMgdGhhdCBmaW5kIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBkaWZmaWN1bHQgdG8gY2xpY2sgb24sIHdoZXJlYXMgYSBtZW51IGNhbiBiZSBtb3JlIGVhc2lseSBpbnZva2VkLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29uIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYWN0aXZpdGllc19pY29uX21lbnVAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "41": {"version": "11", "sha256": "028nrx3hakj8mcr3n6nsnrzg2mfikn49m4j2pjyq67y7vikjr4af", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHR1cm5zIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBpbnRvIGEgcG9wdXAgbWVudSB3aXRoIGljb25zIGZvciBzZWxlY3RpbmcgZWl0aGVyIEFwcGxpY2F0aW9ucyBvciBXb3Jrc3BhY2VzIGluIHRoZSBPdmVydmlldy4gU2VsZWN0aW5nIHRoZSBzYW1lIHZpZXcgYWdhaW4gd2lsbCBoaWRlIHRoZSBvdmVydmlldy5cblxuVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciB0YWJsZXQgdXNlcnMgdGhhdCBmaW5kIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBkaWZmaWN1bHQgdG8gY2xpY2sgb24sIHdoZXJlYXMgYSBtZW51IGNhbiBiZSBtb3JlIGVhc2lseSBpbnZva2VkLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29uIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYWN0aXZpdGllc19pY29uX21lbnVAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "42": {"version": "11", "sha256": "028nrx3hakj8mcr3n6nsnrzg2mfikn49m4j2pjyq67y7vikjr4af", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHR1cm5zIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBpbnRvIGEgcG9wdXAgbWVudSB3aXRoIGljb25zIGZvciBzZWxlY3RpbmcgZWl0aGVyIEFwcGxpY2F0aW9ucyBvciBXb3Jrc3BhY2VzIGluIHRoZSBPdmVydmlldy4gU2VsZWN0aW5nIHRoZSBzYW1lIHZpZXcgYWdhaW4gd2lsbCBoaWRlIHRoZSBvdmVydmlldy5cblxuVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciB0YWJsZXQgdXNlcnMgdGhhdCBmaW5kIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBkaWZmaWN1bHQgdG8gY2xpY2sgb24sIHdoZXJlYXMgYSBtZW51IGNhbiBiZSBtb3JlIGVhc2lseSBpbnZva2VkLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29uIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYWN0aXZpdGllc19pY29uX21lbnVAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
 , {"uuid": "Gold_Price_Monitor@wotmshuaisi_github", "name": "Gold Price Monitor", "pname": "gold-price-monitor", "description": "simple gnome extension helps you tracking gold price in realtime", "link": "https://extensions.gnome.org/extension/2075/gold-price-monitor/", "shell_version_map": {"40": {"version": "22", "sha256": "04gqhg2am27iifzgfibcs28cqqq6lkb5lmmhzvba6pyqa9i175lr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhbmdlcm91cyI6IGZhbHNlLAogICJkZXNjcmlwdGlvbiI6ICJzaW1wbGUgZ25vbWUgZXh0ZW5zaW9uIGhlbHBzIHlvdSB0cmFja2luZyBnb2xkIHByaWNlIGluIHJlYWx0aW1lIiwKICAibmFtZSI6ICJHb2xkIFByaWNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29sZC1wcmljZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93b3Rtc2h1YWlzaS9nb2xkcHJpY2Vtb25pdG9yIiwKICAidXVpZCI6ICJHb2xkX1ByaWNlX01vbml0b3JAd290bXNodWFpc2lfZ2l0aHViIiwKICAidmVyc2lvbiI6IDIyCn0="}, "41": {"version": "22", "sha256": "04gqhg2am27iifzgfibcs28cqqq6lkb5lmmhzvba6pyqa9i175lr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhbmdlcm91cyI6IGZhbHNlLAogICJkZXNjcmlwdGlvbiI6ICJzaW1wbGUgZ25vbWUgZXh0ZW5zaW9uIGhlbHBzIHlvdSB0cmFja2luZyBnb2xkIHByaWNlIGluIHJlYWx0aW1lIiwKICAibmFtZSI6ICJHb2xkIFByaWNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29sZC1wcmljZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93b3Rtc2h1YWlzaS9nb2xkcHJpY2Vtb25pdG9yIiwKICAidXVpZCI6ICJHb2xkX1ByaWNlX01vbml0b3JAd290bXNodWFpc2lfZ2l0aHViIiwKICAidmVyc2lvbiI6IDIyCn0="}}}
-, {"uuid": "ding@rastersoft.com", "name": "Desktop Icons NG (DING)", "pname": "desktop-icons-ng-ding", "description": "Adds icons to the desktop. Fork of the original Desktop Icons extension, with several enhancements .", "link": "https://extensions.gnome.org/extension/2087/desktop-icons-ng-ding/", "shell_version_map": {"38": {"version": "43", "sha256": "1zbra3yhx8wqq5q971hh2zgpj9840j6nlbx1qhqvmmk6hyxafq40", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcmFzdGVyc29mdC9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJkaW5nQHJhc3RlcnNvZnQuY29tIiwKICAidmVyc2lvbiI6IDQzCn0="}, "40": {"version": "43", "sha256": "1zbra3yhx8wqq5q971hh2zgpj9840j6nlbx1qhqvmmk6hyxafq40", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcmFzdGVyc29mdC9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJkaW5nQHJhc3RlcnNvZnQuY29tIiwKICAidmVyc2lvbiI6IDQzCn0="}, "41": {"version": "43", "sha256": "1zbra3yhx8wqq5q971hh2zgpj9840j6nlbx1qhqvmmk6hyxafq40", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcmFzdGVyc29mdC9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJkaW5nQHJhc3RlcnNvZnQuY29tIiwKICAidmVyc2lvbiI6IDQzCn0="}, "42": {"version": "43", "sha256": "1zbra3yhx8wqq5q971hh2zgpj9840j6nlbx1qhqvmmk6hyxafq40", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcmFzdGVyc29mdC9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJkaW5nQHJhc3RlcnNvZnQuY29tIiwKICAidmVyc2lvbiI6IDQzCn0="}}}
+, {"uuid": "ding@rastersoft.com", "name": "Desktop Icons NG (DING)", "pname": "desktop-icons-ng-ding", "description": "Adds icons to the desktop. Fork of the original Desktop Icons extension, with several enhancements .", "link": "https://extensions.gnome.org/extension/2087/desktop-icons-ng-ding/", "shell_version_map": {"38": {"version": "44", "sha256": "0nr4xcyvl4133ms7ph96gxps1h5fkc1b5r2npafw5fqw4v3969ls", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcmFzdGVyc29mdC9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJkaW5nQHJhc3RlcnNvZnQuY29tIiwKICAidmVyc2lvbiI6IDQ0Cn0="}, "40": {"version": "44", "sha256": "0nr4xcyvl4133ms7ph96gxps1h5fkc1b5r2npafw5fqw4v3969ls", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcmFzdGVyc29mdC9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJkaW5nQHJhc3RlcnNvZnQuY29tIiwKICAidmVyc2lvbiI6IDQ0Cn0="}, "41": {"version": "44", "sha256": "0nr4xcyvl4133ms7ph96gxps1h5fkc1b5r2npafw5fqw4v3969ls", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcmFzdGVyc29mdC9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJkaW5nQHJhc3RlcnNvZnQuY29tIiwKICAidmVyc2lvbiI6IDQ0Cn0="}, "42": {"version": "44", "sha256": "0nr4xcyvl4133ms7ph96gxps1h5fkc1b5r2npafw5fqw4v3969ls", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcmFzdGVyc29mdC9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJkaW5nQHJhc3RlcnNvZnQuY29tIiwKICAidmVyc2lvbiI6IDQ0Cn0="}}}
 , {"uuid": "order-extensions@wa4557.github.com", "name": "Order Gnome Shell extensions", "pname": "order-gnome-shell-extensions", "description": "Fixes order of gnome-shell extensions", "link": "https://extensions.gnome.org/extension/2114/order-gnome-shell-extensions/", "shell_version_map": {"38": {"version": "6", "sha256": "0hcbjrhrg11f5p23bhss75nhc9sqlh6p1bmfq7p7m7d276ckdmkk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICIzLjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm9yZGVyLWV4dGVuc2lvbnNAd2E0NTU3LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "horizontal-workspaces@gnome-shell-extensions.gcampax.github.com", "name": "Horizontal workspaces", "pname": "horizontal-workspaces", "description": "Use a horizontal workspace layout", "link": "https://extensions.gnome.org/extension/2141/horizontal-workspaces/", "shell_version_map": {"38": {"version": "5", "sha256": "0kbqcrs96v72yk0rf8jghy1a31651fyvgpi97yp46n4wmvc41vk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBhIGhvcml6b250YWwgd29ya3NwYWNlIGxheW91dCIsCiAgImV4dGVuc2lvbi1pZCI6ICJob3Jpem9udGFsLXdvcmtzcGFjZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJIb3Jpem9udGFsIHdvcmtzcGFjZXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG9yaXpvbnRhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiaG9yaXpvbnRhbC13b3Jrc3BhY2VzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "threefingerwindowmove@do.sch.dev.gmail.com", "name": "Three Finger Window Move", "pname": "three-finger-window-move", "description": "Allows moving windows around with a three finger trackpad gesture (Wayland only)", "link": "https://extensions.gnome.org/extension/2164/three-finger-window-move/", "shell_version_map": {"38": {"version": "7", "sha256": "1m7vwr6s6w297b0x0bmnj8fs2hl73pbys6m93lnb9inh5pmgiv1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBtb3Zpbmcgd2luZG93cyBhcm91bmQgd2l0aCBhIHRocmVlIGZpbmdlciB0cmFja3BhZCBnZXN0dXJlIChXYXlsYW5kIG9ubHkpIiwKICAibmFtZSI6ICJUaHJlZSBGaW5nZXIgV2luZG93IE1vdmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kby1zY2gvZ25vbWUtc2hlbGwtdG91Y2hwYWQtd2luZG93LW1vdmUiLAogICJ1dWlkIjogInRocmVlZmluZ2Vyd2luZG93bW92ZUBkby5zY2guZGV2LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
 , {"uuid": "spotify-ad-block@danigm.net", "name": "Mute spotify ads", "pname": "mute-spotify-ads", "description": "Mute spotify ads", "link": "https://extensions.gnome.org/extension/2176/mute-spotify-ads/", "shell_version_map": {"38": {"version": "13", "sha256": "0js8rzksy464lrl8870fik2lv8in108n24dl3qq42fj0qhib0qmg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZ20vc3BvdGlmeS1hZC1ibG9ja2VyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFkLWJsb2NrQGRhbmlnbS5uZXQiLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "40": {"version": "13", "sha256": "0js8rzksy464lrl8870fik2lv8in108n24dl3qq42fj0qhib0qmg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZ20vc3BvdGlmeS1hZC1ibG9ja2VyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFkLWJsb2NrQGRhbmlnbS5uZXQiLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "41": {"version": "13", "sha256": "0js8rzksy464lrl8870fik2lv8in108n24dl3qq42fj0qhib0qmg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZ20vc3BvdGlmeS1hZC1ibG9ja2VyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFkLWJsb2NrQGRhbmlnbS5uZXQiLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "42": {"version": "13", "sha256": "0js8rzksy464lrl8870fik2lv8in108n24dl3qq42fj0qhib0qmg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZ20vc3BvdGlmeS1hZC1ibG9ja2VyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFkLWJsb2NrQGRhbmlnbS5uZXQiLAogICJ2ZXJzaW9uIjogMTMKfQ=="}}}
 , {"uuid": "noannoyance@daase.net", "name": "NoAnnoyance v2", "pname": "noannoyance", "description": "Another extension, that removes the 'Window is ready' notification and puts the window into focus. In contrast to all the other extensions, this uses ES6 syntax and is actively maintained.", "link": "https://extensions.gnome.org/extension/2182/noannoyance/", "shell_version_map": {"38": {"version": "12", "sha256": "1wr1wxmaxb569m3wsfdhs0jdpq1zqx3bkk6dgn9iswbbr060bnd0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Jqb2VybkRhYXNlL25vYW5ub3lhbmNlIiwKICAidXVpZCI6ICJub2Fubm95YW5jZUBkYWFzZS5uZXQiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "12", "sha256": "1wr1wxmaxb569m3wsfdhs0jdpq1zqx3bkk6dgn9iswbbr060bnd0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Jqb2VybkRhYXNlL25vYW5ub3lhbmNlIiwKICAidXVpZCI6ICJub2Fubm95YW5jZUBkYWFzZS5uZXQiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "41": {"version": "12", "sha256": "1wr1wxmaxb569m3wsfdhs0jdpq1zqx3bkk6dgn9iswbbr060bnd0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Jqb2VybkRhYXNlL25vYW5ub3lhbmNlIiwKICAidXVpZCI6ICJub2Fubm95YW5jZUBkYWFzZS5uZXQiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "42": {"version": "12", "sha256": "1wr1wxmaxb569m3wsfdhs0jdpq1zqx3bkk6dgn9iswbbr060bnd0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Jqb2VybkRhYXNlL25vYW5ub3lhbmNlIiwKICAidXVpZCI6ICJub2Fubm95YW5jZUBkYWFzZS5uZXQiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}}}
 , {"uuid": "vim-altTab@kokong.info", "name": "VIM Alt-Tab", "pname": "vim-alt-tab", "description": "Add the ability to switch between windows and applications using vim-like keypresses (h, j, k, l)", "link": "https://extensions.gnome.org/extension/2212/vim-alt-tab/", "shell_version_map": {"38": {"version": "5", "sha256": "0r69cnr4r1vwny8jxc6yymmmiyy5fac4634r8kr0k5b7j1y6f0cw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0aGUgYWJpbGl0eSB0byBzd2l0Y2ggYmV0d2VlbiB3aW5kb3dzIGFuZCBhcHBsaWNhdGlvbnMgdXNpbmcgdmltLWxpa2Uga2V5cHJlc3NlcyAoaCwgaiwgaywgbCkiLAogICJleHRlbnNpb24taWQiOiAidmltLWFsdHRhYiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlZJTSBBbHQtVGFiIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJqd0BiYXJnc3Rlbi5vcmciLAogICAgInRob21hcy5ib3VmZm9uQGdtYWlsLmNvbSIsCiAgICAia29rb0Brb2tvbmcuaW5mbyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudmltLWFsdHRhYiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29rby1uZy92aW0tYWx0VGFiIiwKICAidXVpZCI6ICJ2aW0tYWx0VGFiQGtva29uZy5pbmZvIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "0r69cnr4r1vwny8jxc6yymmmiyy5fac4634r8kr0k5b7j1y6f0cw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0aGUgYWJpbGl0eSB0byBzd2l0Y2ggYmV0d2VlbiB3aW5kb3dzIGFuZCBhcHBsaWNhdGlvbnMgdXNpbmcgdmltLWxpa2Uga2V5cHJlc3NlcyAoaCwgaiwgaywgbCkiLAogICJleHRlbnNpb24taWQiOiAidmltLWFsdHRhYiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlZJTSBBbHQtVGFiIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJqd0BiYXJnc3Rlbi5vcmciLAogICAgInRob21hcy5ib3VmZm9uQGdtYWlsLmNvbSIsCiAgICAia29rb0Brb2tvbmcuaW5mbyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudmltLWFsdHRhYiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29rby1uZy92aW0tYWx0VGFiIiwKICAidXVpZCI6ICJ2aW0tYWx0VGFiQGtva29uZy5pbmZvIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "41": {"version": "5", "sha256": "0r69cnr4r1vwny8jxc6yymmmiyy5fac4634r8kr0k5b7j1y6f0cw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0aGUgYWJpbGl0eSB0byBzd2l0Y2ggYmV0d2VlbiB3aW5kb3dzIGFuZCBhcHBsaWNhdGlvbnMgdXNpbmcgdmltLWxpa2Uga2V5cHJlc3NlcyAoaCwgaiwgaywgbCkiLAogICJleHRlbnNpb24taWQiOiAidmltLWFsdHRhYiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlZJTSBBbHQtVGFiIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJqd0BiYXJnc3Rlbi5vcmciLAogICAgInRob21hcy5ib3VmZm9uQGdtYWlsLmNvbSIsCiAgICAia29rb0Brb2tvbmcuaW5mbyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudmltLWFsdHRhYiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29rby1uZy92aW0tYWx0VGFiIiwKICAidXVpZCI6ICJ2aW0tYWx0VGFiQGtva29uZy5pbmZvIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
-, {"uuid": "easy_docker_containers@red.software.systems", "name": "Easy Docker Containers", "pname": "easy-docker-containers", "description": "A GNOME Shell extension (GNOME Panel applet) to be able to generally control your available Docker containers.", "link": "https://extensions.gnome.org/extension/2224/easy-docker-containers/", "shell_version_map": {"38": {"version": "13", "sha256": "1hq6ispaq7vyn8vigacbwv58hrishb1g09vhffwsldahx4iz4pnj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAxMwp9"}, "40": {"version": "13", "sha256": "1hq6ispaq7vyn8vigacbwv58hrishb1g09vhffwsldahx4iz4pnj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "1hq6ispaq7vyn8vigacbwv58hrishb1g09vhffwsldahx4iz4pnj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAxMwp9"}}}
-, {"uuid": "nightthemeswitcher@romainvigier.fr", "name": "Night Theme Switcher", "pname": "night-theme-switcher", "description": "Make your desktop easy on the eye, day and night.\n\nAutomatically toggle the color scheme between light and dark, switch backgrounds and run custom commands at sunset and sunrise.\n\nSupports Night Light, Location Services, manual schedule and on-demand switch modes.", "link": "https://extensions.gnome.org/extension/2236/night-theme-switcher/", "shell_version_map": {"38": {"version": "46", "sha256": "0x3mggffn6ydfkv09gwq62wgkm8zga214616jp60mpwp4ly0xphm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgdGhlIGNvbG9yIHNjaGVtZSBiZXR3ZWVuIGxpZ2h0IGFuZCBkYXJrLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vbmlnaHR0aGVtZXN3aXRjaGVyLnJvbWFpbnZpZ2llci5mciIsCiAgInV1aWQiOiAibmlnaHR0aGVtZXN3aXRjaGVyQHJvbWFpbnZpZ2llci5mciIsCiAgInZlcnNpb24iOiA0Ngp9"}, "40": {"version": "51", "sha256": "1pnljdl2syh0lv2ih2ps2im2pnyzkwsbzsvv3f8q7zf669jxca9g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgdGhlIGNvbG9yIHNjaGVtZSBiZXR3ZWVuIGxpZ2h0IGFuZCBkYXJrLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL25pZ2h0dGhlbWVzd2l0Y2hlci5yb21haW52aWdpZXIuZnIiLAogICJ1dWlkIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJ2ZXJzaW9uIjogNTEKfQ=="}, "41": {"version": "55", "sha256": "151lwn6qlh1b91f9c58s7xw5jd7ygvqpr68299qqgn7hvjg0qh6z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgdGhlIGNvbG9yIHNjaGVtZSBiZXR3ZWVuIGxpZ2h0IGFuZCBkYXJrLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL25pZ2h0dGhlbWVzd2l0Y2hlci5yb21haW52aWdpZXIuZnIiLAogICJ1dWlkIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJ2ZXJzaW9uIjogNTUKfQ=="}, "42": {"version": "60", "sha256": "1ichrz2458wvn7vjsz8sylnvinb3w2scrmb9rg32gg1lby7czvnz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgdGhlIGNvbG9yIHNjaGVtZSBiZXR3ZWVuIGxpZ2h0IGFuZCBkYXJrLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmlnaHR0aGVtZXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9uaWdodHRoZW1lc3dpdGNoZXIucm9tYWludmlnaWVyLmZyIiwKICAidXVpZCI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAidmVyc2lvbiI6IDYwCn0="}}}
+, {"uuid": "easy_docker_containers@red.software.systems", "name": "Easy Docker Containers", "pname": "easy-docker-containers", "description": "A GNOME Shell extension (GNOME Panel applet) to be able to generally control your available Docker containers.", "link": "https://extensions.gnome.org/extension/2224/easy-docker-containers/", "shell_version_map": {"38": {"version": "14", "sha256": "0k73mbcalr7m614yi4s1395881ci8sb40hfyvhz53cw3slx73b0s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmVkU29mdHdhcmVTeXN0ZW1zL2Vhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJ1dWlkIjogImVhc3lfZG9ja2VyX2NvbnRhaW5lcnNAcmVkLnNvZnR3YXJlLnN5c3RlbXMiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "14", "sha256": "0k73mbcalr7m614yi4s1395881ci8sb40hfyvhz53cw3slx73b0s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmVkU29mdHdhcmVTeXN0ZW1zL2Vhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJ1dWlkIjogImVhc3lfZG9ja2VyX2NvbnRhaW5lcnNAcmVkLnNvZnR3YXJlLnN5c3RlbXMiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "0k73mbcalr7m614yi4s1395881ci8sb40hfyvhz53cw3slx73b0s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmVkU29mdHdhcmVTeXN0ZW1zL2Vhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJ1dWlkIjogImVhc3lfZG9ja2VyX2NvbnRhaW5lcnNAcmVkLnNvZnR3YXJlLnN5c3RlbXMiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "42": {"version": "14", "sha256": "0k73mbcalr7m614yi4s1395881ci8sb40hfyvhz53cw3slx73b0s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmVkU29mdHdhcmVTeXN0ZW1zL2Vhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJ1dWlkIjogImVhc3lfZG9ja2VyX2NvbnRhaW5lcnNAcmVkLnNvZnR3YXJlLnN5c3RlbXMiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
+, {"uuid": "nightthemeswitcher@romainvigier.fr", "name": "Night Theme Switcher", "pname": "night-theme-switcher", "description": "Make your desktop easy on the eye, day and night.\n\nAutomatically toggle the color scheme between light and dark, switch backgrounds and run custom commands at sunset and sunrise.\n\nSupports Night Light, Location Services, manual schedule and on-demand switch modes.", "link": "https://extensions.gnome.org/extension/2236/night-theme-switcher/", "shell_version_map": {"38": {"version": "46", "sha256": "0x3mggffn6ydfkv09gwq62wgkm8zga214616jp60mpwp4ly0xphm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgdGhlIGNvbG9yIHNjaGVtZSBiZXR3ZWVuIGxpZ2h0IGFuZCBkYXJrLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vbmlnaHR0aGVtZXN3aXRjaGVyLnJvbWFpbnZpZ2llci5mciIsCiAgInV1aWQiOiAibmlnaHR0aGVtZXN3aXRjaGVyQHJvbWFpbnZpZ2llci5mciIsCiAgInZlcnNpb24iOiA0Ngp9"}, "40": {"version": "51", "sha256": "1pnljdl2syh0lv2ih2ps2im2pnyzkwsbzsvv3f8q7zf669jxca9g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgdGhlIGNvbG9yIHNjaGVtZSBiZXR3ZWVuIGxpZ2h0IGFuZCBkYXJrLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL25pZ2h0dGhlbWVzd2l0Y2hlci5yb21haW52aWdpZXIuZnIiLAogICJ1dWlkIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJ2ZXJzaW9uIjogNTEKfQ=="}, "41": {"version": "55", "sha256": "151lwn6qlh1b91f9c58s7xw5jd7ygvqpr68299qqgn7hvjg0qh6z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgdGhlIGNvbG9yIHNjaGVtZSBiZXR3ZWVuIGxpZ2h0IGFuZCBkYXJrLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL25pZ2h0dGhlbWVzd2l0Y2hlci5yb21haW52aWdpZXIuZnIiLAogICJ1dWlkIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJ2ZXJzaW9uIjogNTUKfQ=="}, "42": {"version": "63", "sha256": "0aaz6vl3839ixvhfvyj6srlrb044j4q16jxlgnkb8053b70fbyvg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgdGhlIGNvbG9yIHNjaGVtZSBiZXR3ZWVuIGxpZ2h0IGFuZCBkYXJrLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmlnaHR0aGVtZXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9uaWdodHRoZW1lc3dpdGNoZXIucm9tYWludmlnaWVyLmZyIiwKICAidXVpZCI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAidmVyc2lvbiI6IDYzCn0="}}}
 , {"uuid": "binaryclock@vancha.march", "name": "binaryclock", "pname": "binaryclock", "description": "adds a binary clock to the gnome bar", "link": "https://extensions.gnome.org/extension/2284/binaryclock/", "shell_version_map": {"38": {"version": "6", "sha256": "1bvzlqfhwlk1sh9q3538yipjwzgndd4wnn2l8wc3sshb93ggvpg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIGJhciIsCiAgIm5hbWUiOiAiYmluYXJ5Y2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zOCIsCiAgICAiMy4zNi43IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZhbmNoYS9nbm9tZVNoZWxsQmluYXJ5Q2xvY2svIiwKICAidXVpZCI6ICJiaW5hcnljbG9ja0B2YW5jaGEubWFyY2giLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "1bvzlqfhwlk1sh9q3538yipjwzgndd4wnn2l8wc3sshb93ggvpg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIGJhciIsCiAgIm5hbWUiOiAiYmluYXJ5Y2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zOCIsCiAgICAiMy4zNi43IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZhbmNoYS9nbm9tZVNoZWxsQmluYXJ5Q2xvY2svIiwKICAidXVpZCI6ICJiaW5hcnljbG9ja0B2YW5jaGEubWFyY2giLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "lgbutton@glerro.gnome.gitlab.io", "name": "Looking Glass Button", "pname": "looking-glass-button", "description": "Toggle the Looking Glass visibility by clicking on a panel icon.\n\nAnd from version 4 left clicking on the icon show a menu with new features like Restart Gnome Shell (not available on Wayland), Reload Theme, Open Extension Folder and Open Theme Folder (the last two require that xdg-open is installed).\n\nVersion 4 also drop the compatibility with Gnome Shell 3.30.", "link": "https://extensions.gnome.org/extension/2296/looking-glass-button/", "shell_version_map": {"38": {"version": "8", "sha256": "0rkk1mivq0drvpjbg89gi7plpaza71r08cyvkymygwwi2sfwpy9l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi5cblxuQW5kIGZyb20gdmVyc2lvbiA0IGxlZnQgY2xpY2tpbmcgb24gdGhlIGljb24gc2hvdyBhIG1lbnUgd2l0aCBuZXcgZmVhdHVyZXMgbGlrZSBSZXN0YXJ0IEdub21lIFNoZWxsIChub3QgYXZhaWxhYmxlIG9uIFdheWxhbmQpLCBSZWxvYWQgVGhlbWUsIE9wZW4gRXh0ZW5zaW9uIEZvbGRlciBhbmQgT3BlbiBUaGVtZSBGb2xkZXIgKHRoZSBsYXN0IHR3byByZXF1aXJlIHRoYXQgeGRnLW9wZW4gaXMgaW5zdGFsbGVkKS5cblxuVmVyc2lvbiA0IGFsc28gZHJvcCB0aGUgY29tcGF0aWJpbGl0eSB3aXRoIEdub21lIFNoZWxsIDMuMzAuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAibmFtZSI6ICJMb29raW5nIEdsYXNzIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24tbGdidXR0b24iLAogICJ1dWlkIjogImxnYnV0dG9uQGdsZXJyby5nbm9tZS5naXRsYWIuaW8iLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "0rkk1mivq0drvpjbg89gi7plpaza71r08cyvkymygwwi2sfwpy9l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi5cblxuQW5kIGZyb20gdmVyc2lvbiA0IGxlZnQgY2xpY2tpbmcgb24gdGhlIGljb24gc2hvdyBhIG1lbnUgd2l0aCBuZXcgZmVhdHVyZXMgbGlrZSBSZXN0YXJ0IEdub21lIFNoZWxsIChub3QgYXZhaWxhYmxlIG9uIFdheWxhbmQpLCBSZWxvYWQgVGhlbWUsIE9wZW4gRXh0ZW5zaW9uIEZvbGRlciBhbmQgT3BlbiBUaGVtZSBGb2xkZXIgKHRoZSBsYXN0IHR3byByZXF1aXJlIHRoYXQgeGRnLW9wZW4gaXMgaW5zdGFsbGVkKS5cblxuVmVyc2lvbiA0IGFsc28gZHJvcCB0aGUgY29tcGF0aWJpbGl0eSB3aXRoIEdub21lIFNoZWxsIDMuMzAuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAibmFtZSI6ICJMb29raW5nIEdsYXNzIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24tbGdidXR0b24iLAogICJ1dWlkIjogImxnYnV0dG9uQGdsZXJyby5nbm9tZS5naXRsYWIuaW8iLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "0rkk1mivq0drvpjbg89gi7plpaza71r08cyvkymygwwi2sfwpy9l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi5cblxuQW5kIGZyb20gdmVyc2lvbiA0IGxlZnQgY2xpY2tpbmcgb24gdGhlIGljb24gc2hvdyBhIG1lbnUgd2l0aCBuZXcgZmVhdHVyZXMgbGlrZSBSZXN0YXJ0IEdub21lIFNoZWxsIChub3QgYXZhaWxhYmxlIG9uIFdheWxhbmQpLCBSZWxvYWQgVGhlbWUsIE9wZW4gRXh0ZW5zaW9uIEZvbGRlciBhbmQgT3BlbiBUaGVtZSBGb2xkZXIgKHRoZSBsYXN0IHR3byByZXF1aXJlIHRoYXQgeGRnLW9wZW4gaXMgaW5zdGFsbGVkKS5cblxuVmVyc2lvbiA0IGFsc28gZHJvcCB0aGUgY29tcGF0aWJpbGl0eSB3aXRoIEdub21lIFNoZWxsIDMuMzAuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAibmFtZSI6ICJMb29raW5nIEdsYXNzIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24tbGdidXR0b24iLAogICJ1dWlkIjogImxnYnV0dG9uQGdsZXJyby5nbm9tZS5naXRsYWIuaW8iLAogICJ2ZXJzaW9uIjogOAp9"}, "42": {"version": "8", "sha256": "0rkk1mivq0drvpjbg89gi7plpaza71r08cyvkymygwwi2sfwpy9l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi5cblxuQW5kIGZyb20gdmVyc2lvbiA0IGxlZnQgY2xpY2tpbmcgb24gdGhlIGljb24gc2hvdyBhIG1lbnUgd2l0aCBuZXcgZmVhdHVyZXMgbGlrZSBSZXN0YXJ0IEdub21lIFNoZWxsIChub3QgYXZhaWxhYmxlIG9uIFdheWxhbmQpLCBSZWxvYWQgVGhlbWUsIE9wZW4gRXh0ZW5zaW9uIEZvbGRlciBhbmQgT3BlbiBUaGVtZSBGb2xkZXIgKHRoZSBsYXN0IHR3byByZXF1aXJlIHRoYXQgeGRnLW9wZW4gaXMgaW5zdGFsbGVkKS5cblxuVmVyc2lvbiA0IGFsc28gZHJvcCB0aGUgY29tcGF0aWJpbGl0eSB3aXRoIEdub21lIFNoZWxsIDMuMzAuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAibmFtZSI6ICJMb29raW5nIEdsYXNzIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24tbGdidXR0b24iLAogICJ1dWlkIjogImxnYnV0dG9uQGdsZXJyby5nbm9tZS5naXRsYWIuaW8iLAogICJ2ZXJzaW9uIjogOAp9"}}}
 , {"uuid": "tp_wattmeter@gistart", "name": "tp_wattmeter", "pname": "tp_wattmeter", "description": "Shows battery power consumption of ThinkPad laptops", "link": "https://extensions.gnome.org/extension/2308/tp_wattmeter/", "shell_version_map": {"40": {"version": "4", "sha256": "1v8rw7msfy2d8nwnppdpci62sl6iw8973z5gsl8024awl27ni38z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGJhdHRlcnkgcG93ZXIgY29uc3VtcHRpb24gb2YgVGhpbmtQYWQgbGFwdG9wcyIsCiAgIm5hbWUiOiAidHBfd2F0dG1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2LjAiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9naXN0YXJ0L3RwX3dhdHRtZXRlciIsCiAgInV1aWQiOiAidHBfd2F0dG1ldGVyQGdpc3RhcnQiLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "Denon_AVR_controler@sylter.fr", "name": "Denon AVR controler", "pname": "denon-avr-controler", "description": "Control a Denon audio video receiver through the network.\n- on/off switch\n- volume adjustment", "link": "https://extensions.gnome.org/extension/2371/denon-avr-controler/", "shell_version_map": {"38": {"version": "4", "sha256": "0c8ky3v70arnblix717jz9fsksr42673as9nmzfyh2p2h1zm03wq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgYSBEZW5vbiBhdWRpbyB2aWRlbyByZWNlaXZlciB0aHJvdWdoIHRoZSBuZXR3b3JrLlxuLSBvbi9vZmYgc3dpdGNoXG4tIHZvbHVtZSBhZGp1c3RtZW50IiwKICAibmFtZSI6ICJEZW5vbiBBVlIgY29udHJvbGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2ZyYW1hZ2l0Lm9yZy9zeWx0ZXIvZGVub24tYXZyLWNvbnRyb2xlciIsCiAgInV1aWQiOiAiRGVub25fQVZSX2NvbnRyb2xlckBzeWx0ZXIuZnIiLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "hide-universal-access@akiirui.github.io", "name": "Hide Universal Access", "pname": "hide-universal-access", "description": "Hide Universal Access icon from the status bar", "link": "https://extensions.gnome.org/extension/2398/hide-universal-access/", "shell_version_map": {"38": {"version": "11", "sha256": "1fxkn512cb24gv4gp5bih9mzjh5y4w7f5jml8hr5x6q1a42zakab", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyBpY29uIGZyb20gdGhlIHN0YXR1cyBiYXIiLAogICJuYW1lIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FraWlydWkvaGlkZS11bml2ZXJzYWwtYWNjZXNzIiwKICAidXVpZCI6ICJoaWRlLXVuaXZlcnNhbC1hY2Nlc3NAYWtpaXJ1aS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "40": {"version": "11", "sha256": "1fxkn512cb24gv4gp5bih9mzjh5y4w7f5jml8hr5x6q1a42zakab", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyBpY29uIGZyb20gdGhlIHN0YXR1cyBiYXIiLAogICJuYW1lIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FraWlydWkvaGlkZS11bml2ZXJzYWwtYWNjZXNzIiwKICAidXVpZCI6ICJoaWRlLXVuaXZlcnNhbC1hY2Nlc3NAYWtpaXJ1aS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "41": {"version": "11", "sha256": "1fxkn512cb24gv4gp5bih9mzjh5y4w7f5jml8hr5x6q1a42zakab", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyBpY29uIGZyb20gdGhlIHN0YXR1cyBiYXIiLAogICJuYW1lIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FraWlydWkvaGlkZS11bml2ZXJzYWwtYWNjZXNzIiwKICAidXVpZCI6ICJoaWRlLXVuaXZlcnNhbC1hY2Nlc3NAYWtpaXJ1aS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "42": {"version": "11", "sha256": "1fxkn512cb24gv4gp5bih9mzjh5y4w7f5jml8hr5x6q1a42zakab", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyBpY29uIGZyb20gdGhlIHN0YXR1cyBiYXIiLAogICJuYW1lIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FraWlydWkvaGlkZS11bml2ZXJzYWwtYWNjZXNzIiwKICAidXVpZCI6ICJoaWRlLXVuaXZlcnNhbC1hY2Nlc3NAYWtpaXJ1aS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
 , {"uuid": "roundrobintaborder@scottworley.com", "name": "Round Robin Tab Order", "pname": "round-robin-tab-order", "description": "Window switch order becomes round-robin instead of most-recently-used", "link": "https://extensions.gnome.org/extension/2446/round-robin-tab-order/", "shell_version_map": {"40": {"version": "3", "sha256": "0p2qfv6i43pi0hjsyz8xzxkxijr06b0d20q618y8gfj4ar82glv7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpbmRvdyBzd2l0Y2ggb3JkZXIgYmVjb21lcyByb3VuZC1yb2JpbiBpbnN0ZWFkIG9mIG1vc3QtcmVjZW50bHktdXNlZCIsCiAgIm5hbWUiOiAiUm91bmQgUm9iaW4gVGFiIE9yZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2NodWNrL3JvdW5kLXJvYmluLXRhYi1vcmRlciIsCiAgInV1aWQiOiAicm91bmRyb2JpbnRhYm9yZGVyQHNjb3R0d29ybGV5LmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
-, {"uuid": "bubblemail@razer.framagit.org", "name": "Bubblemail", "pname": "bubblemail", "description": "New and unread mail indicator (Local, Imap, Pop3, Gmail, Yahoo mail...)\nIndicator for new mails from local mail boxes (MBOX, MAILDIR), POP3 or IMAP server.\n\nBE AWARE THAT THIS EXTENSION REQUIRES BUBBLEMAIL SERVICE INSTALLATION\nCheck your distribution packaging system for availability. Besides, packages for distributions and source tarballs can be found here :\nhttp://bubblemail.free.fr\n\nBubblemail is a complete rewrite of the mailnag project, with a lot of new features including :\n* Gnome online accounts are automaticaly synced\n* Avatars provided by the server, with default colorized icons for senders without specific avatar\n* Reports for connexion errors.\n\n Please report any issue on the gitlab pages of the project :\nhttps://framagit.org/razer/bubblemail/issues\nhttps://framagit.org/razer/bubblemail-gnome-shell/issues", "link": "https://extensions.gnome.org/extension/2458/bubblemail/", "shell_version_map": {"38": {"version": "15", "sha256": "10s5fb17bhlxz88cdz62h8zanghpx1slpjh9h1n3ih29kxr0wjmh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgdW5yZWFkIG1haWwgaW5kaWNhdG9yIChMb2NhbCwgSW1hcCwgUG9wMywgR21haWwsIFlhaG9vIG1haWwuLi4pXG5JbmRpY2F0b3IgZm9yIG5ldyBtYWlscyBmcm9tIGxvY2FsIG1haWwgYm94ZXMgKE1CT1gsIE1BSUxESVIpLCBQT1AzIG9yIElNQVAgc2VydmVyLlxuXG5CRSBBV0FSRSBUSEFUIFRISVMgRVhURU5TSU9OIFJFUVVJUkVTIEJVQkJMRU1BSUwgU0VSVklDRSBJTlNUQUxMQVRJT05cbkNoZWNrIHlvdXIgZGlzdHJpYnV0aW9uIHBhY2thZ2luZyBzeXN0ZW0gZm9yIGF2YWlsYWJpbGl0eS4gQmVzaWRlcywgcGFja2FnZXMgZm9yIGRpc3RyaWJ1dGlvbnMgYW5kIHNvdXJjZSB0YXJiYWxscyBjYW4gYmUgZm91bmQgaGVyZSA6XG5odHRwOi8vYnViYmxlbWFpbC5mcmVlLmZyXG5cbkJ1YmJsZW1haWwgaXMgYSBjb21wbGV0ZSByZXdyaXRlIG9mIHRoZSBtYWlsbmFnIHByb2plY3QsIHdpdGggYSBsb3Qgb2YgbmV3IGZlYXR1cmVzIGluY2x1ZGluZyA6XG4qIEdub21lIG9ubGluZSBhY2NvdW50cyBhcmUgYXV0b21hdGljYWx5IHN5bmNlZFxuKiBBdmF0YXJzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIsIHdpdGggZGVmYXVsdCBjb2xvcml6ZWQgaWNvbnMgZm9yIHNlbmRlcnMgd2l0aG91dCBzcGVjaWZpYyBhdmF0YXJcbiogUmVwb3J0cyBmb3IgY29ubmV4aW9uIGVycm9ycy5cblxuIFBsZWFzZSByZXBvcnQgYW55IGlzc3VlIG9uIHRoZSBnaXRsYWIgcGFnZXMgb2YgdGhlIHByb2plY3QgOlxuaHR0cHM6Ly9mcmFtYWdpdC5vcmcvcmF6ZXIvYnViYmxlbWFpbC9pc3N1ZXNcbmh0dHBzOi8vZnJhbWFnaXQub3JnL3JhemVyL2J1YmJsZW1haWwtZ25vbWUtc2hlbGwvaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYnViYmxlbWFpbC1nbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiQnViYmxlbWFpbCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAicmF6ZXJyYXpAZnJlZS5mciIsCiAgICAienVsdTk5QGdteC5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJ1YmJsZW1haWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2J1YmJsZW1haWwuZnJlZS5mciIsCiAgInV1aWQiOiAiYnViYmxlbWFpbEByYXplci5mcmFtYWdpdC5vcmciLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "15", "sha256": "10s5fb17bhlxz88cdz62h8zanghpx1slpjh9h1n3ih29kxr0wjmh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgdW5yZWFkIG1haWwgaW5kaWNhdG9yIChMb2NhbCwgSW1hcCwgUG9wMywgR21haWwsIFlhaG9vIG1haWwuLi4pXG5JbmRpY2F0b3IgZm9yIG5ldyBtYWlscyBmcm9tIGxvY2FsIG1haWwgYm94ZXMgKE1CT1gsIE1BSUxESVIpLCBQT1AzIG9yIElNQVAgc2VydmVyLlxuXG5CRSBBV0FSRSBUSEFUIFRISVMgRVhURU5TSU9OIFJFUVVJUkVTIEJVQkJMRU1BSUwgU0VSVklDRSBJTlNUQUxMQVRJT05cbkNoZWNrIHlvdXIgZGlzdHJpYnV0aW9uIHBhY2thZ2luZyBzeXN0ZW0gZm9yIGF2YWlsYWJpbGl0eS4gQmVzaWRlcywgcGFja2FnZXMgZm9yIGRpc3RyaWJ1dGlvbnMgYW5kIHNvdXJjZSB0YXJiYWxscyBjYW4gYmUgZm91bmQgaGVyZSA6XG5odHRwOi8vYnViYmxlbWFpbC5mcmVlLmZyXG5cbkJ1YmJsZW1haWwgaXMgYSBjb21wbGV0ZSByZXdyaXRlIG9mIHRoZSBtYWlsbmFnIHByb2plY3QsIHdpdGggYSBsb3Qgb2YgbmV3IGZlYXR1cmVzIGluY2x1ZGluZyA6XG4qIEdub21lIG9ubGluZSBhY2NvdW50cyBhcmUgYXV0b21hdGljYWx5IHN5bmNlZFxuKiBBdmF0YXJzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIsIHdpdGggZGVmYXVsdCBjb2xvcml6ZWQgaWNvbnMgZm9yIHNlbmRlcnMgd2l0aG91dCBzcGVjaWZpYyBhdmF0YXJcbiogUmVwb3J0cyBmb3IgY29ubmV4aW9uIGVycm9ycy5cblxuIFBsZWFzZSByZXBvcnQgYW55IGlzc3VlIG9uIHRoZSBnaXRsYWIgcGFnZXMgb2YgdGhlIHByb2plY3QgOlxuaHR0cHM6Ly9mcmFtYWdpdC5vcmcvcmF6ZXIvYnViYmxlbWFpbC9pc3N1ZXNcbmh0dHBzOi8vZnJhbWFnaXQub3JnL3JhemVyL2J1YmJsZW1haWwtZ25vbWUtc2hlbGwvaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYnViYmxlbWFpbC1nbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiQnViYmxlbWFpbCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAicmF6ZXJyYXpAZnJlZS5mciIsCiAgICAienVsdTk5QGdteC5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJ1YmJsZW1haWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2J1YmJsZW1haWwuZnJlZS5mciIsCiAgInV1aWQiOiAiYnViYmxlbWFpbEByYXplci5mcmFtYWdpdC5vcmciLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "15", "sha256": "10s5fb17bhlxz88cdz62h8zanghpx1slpjh9h1n3ih29kxr0wjmh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgdW5yZWFkIG1haWwgaW5kaWNhdG9yIChMb2NhbCwgSW1hcCwgUG9wMywgR21haWwsIFlhaG9vIG1haWwuLi4pXG5JbmRpY2F0b3IgZm9yIG5ldyBtYWlscyBmcm9tIGxvY2FsIG1haWwgYm94ZXMgKE1CT1gsIE1BSUxESVIpLCBQT1AzIG9yIElNQVAgc2VydmVyLlxuXG5CRSBBV0FSRSBUSEFUIFRISVMgRVhURU5TSU9OIFJFUVVJUkVTIEJVQkJMRU1BSUwgU0VSVklDRSBJTlNUQUxMQVRJT05cbkNoZWNrIHlvdXIgZGlzdHJpYnV0aW9uIHBhY2thZ2luZyBzeXN0ZW0gZm9yIGF2YWlsYWJpbGl0eS4gQmVzaWRlcywgcGFja2FnZXMgZm9yIGRpc3RyaWJ1dGlvbnMgYW5kIHNvdXJjZSB0YXJiYWxscyBjYW4gYmUgZm91bmQgaGVyZSA6XG5odHRwOi8vYnViYmxlbWFpbC5mcmVlLmZyXG5cbkJ1YmJsZW1haWwgaXMgYSBjb21wbGV0ZSByZXdyaXRlIG9mIHRoZSBtYWlsbmFnIHByb2plY3QsIHdpdGggYSBsb3Qgb2YgbmV3IGZlYXR1cmVzIGluY2x1ZGluZyA6XG4qIEdub21lIG9ubGluZSBhY2NvdW50cyBhcmUgYXV0b21hdGljYWx5IHN5bmNlZFxuKiBBdmF0YXJzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIsIHdpdGggZGVmYXVsdCBjb2xvcml6ZWQgaWNvbnMgZm9yIHNlbmRlcnMgd2l0aG91dCBzcGVjaWZpYyBhdmF0YXJcbiogUmVwb3J0cyBmb3IgY29ubmV4aW9uIGVycm9ycy5cblxuIFBsZWFzZSByZXBvcnQgYW55IGlzc3VlIG9uIHRoZSBnaXRsYWIgcGFnZXMgb2YgdGhlIHByb2plY3QgOlxuaHR0cHM6Ly9mcmFtYWdpdC5vcmcvcmF6ZXIvYnViYmxlbWFpbC9pc3N1ZXNcbmh0dHBzOi8vZnJhbWFnaXQub3JnL3JhemVyL2J1YmJsZW1haWwtZ25vbWUtc2hlbGwvaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYnViYmxlbWFpbC1nbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiQnViYmxlbWFpbCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAicmF6ZXJyYXpAZnJlZS5mciIsCiAgICAienVsdTk5QGdteC5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJ1YmJsZW1haWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2J1YmJsZW1haWwuZnJlZS5mciIsCiAgInV1aWQiOiAiYnViYmxlbWFpbEByYXplci5mcmFtYWdpdC5vcmciLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
+, {"uuid": "bubblemail@razer.framagit.org", "name": "Bubblemail", "pname": "bubblemail", "description": "New and unread mail indicator (Local, Imap, Pop3, Gmail, Yahoo mail...)\nIndicator for new mails from local mail boxes (MBOX, MAILDIR), POP3 or IMAP server.\n\nBE AWARE THAT THIS EXTENSION REQUIRES BUBBLEMAIL SERVICE INSTALLATION\nCheck your distribution packaging system for availability. Besides, packages for distributions and source tarballs can be found here :\nhttp://bubblemail.free.fr\n\nBubblemail is a complete rewrite of the mailnag project, with a lot of new features including :\n* Gnome online accounts are automaticaly synced\n* Avatars provided by the server, with default colorized icons for senders without specific avatar\n* Reports for connexion errors.\n\n Please report any issue on the gitlab pages of the project :\nhttps://framagit.org/razer/bubblemail/issues\nhttps://framagit.org/razer/bubblemail-gnome-shell/issues", "link": "https://extensions.gnome.org/extension/2458/bubblemail/", "shell_version_map": {"38": {"version": "16", "sha256": "0s4280x43sn5pa7jc0g5qqcl1rm58a0sjxpmbmal6pkvjm3mpjdl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgdW5yZWFkIG1haWwgaW5kaWNhdG9yIChMb2NhbCwgSW1hcCwgUG9wMywgR21haWwsIFlhaG9vIG1haWwuLi4pXG5JbmRpY2F0b3IgZm9yIG5ldyBtYWlscyBmcm9tIGxvY2FsIG1haWwgYm94ZXMgKE1CT1gsIE1BSUxESVIpLCBQT1AzIG9yIElNQVAgc2VydmVyLlxuXG5CRSBBV0FSRSBUSEFUIFRISVMgRVhURU5TSU9OIFJFUVVJUkVTIEJVQkJMRU1BSUwgU0VSVklDRSBJTlNUQUxMQVRJT05cbkNoZWNrIHlvdXIgZGlzdHJpYnV0aW9uIHBhY2thZ2luZyBzeXN0ZW0gZm9yIGF2YWlsYWJpbGl0eS4gQmVzaWRlcywgcGFja2FnZXMgZm9yIGRpc3RyaWJ1dGlvbnMgYW5kIHNvdXJjZSB0YXJiYWxscyBjYW4gYmUgZm91bmQgaGVyZSA6XG5odHRwOi8vYnViYmxlbWFpbC5mcmVlLmZyXG5cbkJ1YmJsZW1haWwgaXMgYSBjb21wbGV0ZSByZXdyaXRlIG9mIHRoZSBtYWlsbmFnIHByb2plY3QsIHdpdGggYSBsb3Qgb2YgbmV3IGZlYXR1cmVzIGluY2x1ZGluZyA6XG4qIEdub21lIG9ubGluZSBhY2NvdW50cyBhcmUgYXV0b21hdGljYWx5IHN5bmNlZFxuKiBBdmF0YXJzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIsIHdpdGggZGVmYXVsdCBjb2xvcml6ZWQgaWNvbnMgZm9yIHNlbmRlcnMgd2l0aG91dCBzcGVjaWZpYyBhdmF0YXJcbiogUmVwb3J0cyBmb3IgY29ubmV4aW9uIGVycm9ycy5cblxuIFBsZWFzZSByZXBvcnQgYW55IGlzc3VlIG9uIHRoZSBnaXRsYWIgcGFnZXMgb2YgdGhlIHByb2plY3QgOlxuaHR0cHM6Ly9mcmFtYWdpdC5vcmcvcmF6ZXIvYnViYmxlbWFpbC9pc3N1ZXNcbmh0dHBzOi8vZnJhbWFnaXQub3JnL3JhemVyL2J1YmJsZW1haWwtZ25vbWUtc2hlbGwvaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYnViYmxlbWFpbC1nbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiQnViYmxlbWFpbCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAicmF6ZXJyYXpAZnJlZS5mciIsCiAgICAienVsdTk5QGdteC5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJ1YmJsZW1haWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9idWJibGVtYWlsLmZyZWUuZnIiLAogICJ1dWlkIjogImJ1YmJsZW1haWxAcmF6ZXIuZnJhbWFnaXQub3JnIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "40": {"version": "16", "sha256": "0s4280x43sn5pa7jc0g5qqcl1rm58a0sjxpmbmal6pkvjm3mpjdl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgdW5yZWFkIG1haWwgaW5kaWNhdG9yIChMb2NhbCwgSW1hcCwgUG9wMywgR21haWwsIFlhaG9vIG1haWwuLi4pXG5JbmRpY2F0b3IgZm9yIG5ldyBtYWlscyBmcm9tIGxvY2FsIG1haWwgYm94ZXMgKE1CT1gsIE1BSUxESVIpLCBQT1AzIG9yIElNQVAgc2VydmVyLlxuXG5CRSBBV0FSRSBUSEFUIFRISVMgRVhURU5TSU9OIFJFUVVJUkVTIEJVQkJMRU1BSUwgU0VSVklDRSBJTlNUQUxMQVRJT05cbkNoZWNrIHlvdXIgZGlzdHJpYnV0aW9uIHBhY2thZ2luZyBzeXN0ZW0gZm9yIGF2YWlsYWJpbGl0eS4gQmVzaWRlcywgcGFja2FnZXMgZm9yIGRpc3RyaWJ1dGlvbnMgYW5kIHNvdXJjZSB0YXJiYWxscyBjYW4gYmUgZm91bmQgaGVyZSA6XG5odHRwOi8vYnViYmxlbWFpbC5mcmVlLmZyXG5cbkJ1YmJsZW1haWwgaXMgYSBjb21wbGV0ZSByZXdyaXRlIG9mIHRoZSBtYWlsbmFnIHByb2plY3QsIHdpdGggYSBsb3Qgb2YgbmV3IGZlYXR1cmVzIGluY2x1ZGluZyA6XG4qIEdub21lIG9ubGluZSBhY2NvdW50cyBhcmUgYXV0b21hdGljYWx5IHN5bmNlZFxuKiBBdmF0YXJzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIsIHdpdGggZGVmYXVsdCBjb2xvcml6ZWQgaWNvbnMgZm9yIHNlbmRlcnMgd2l0aG91dCBzcGVjaWZpYyBhdmF0YXJcbiogUmVwb3J0cyBmb3IgY29ubmV4aW9uIGVycm9ycy5cblxuIFBsZWFzZSByZXBvcnQgYW55IGlzc3VlIG9uIHRoZSBnaXRsYWIgcGFnZXMgb2YgdGhlIHByb2plY3QgOlxuaHR0cHM6Ly9mcmFtYWdpdC5vcmcvcmF6ZXIvYnViYmxlbWFpbC9pc3N1ZXNcbmh0dHBzOi8vZnJhbWFnaXQub3JnL3JhemVyL2J1YmJsZW1haWwtZ25vbWUtc2hlbGwvaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYnViYmxlbWFpbC1nbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiQnViYmxlbWFpbCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAicmF6ZXJyYXpAZnJlZS5mciIsCiAgICAienVsdTk5QGdteC5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJ1YmJsZW1haWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9idWJibGVtYWlsLmZyZWUuZnIiLAogICJ1dWlkIjogImJ1YmJsZW1haWxAcmF6ZXIuZnJhbWFnaXQub3JnIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "41": {"version": "16", "sha256": "0s4280x43sn5pa7jc0g5qqcl1rm58a0sjxpmbmal6pkvjm3mpjdl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgdW5yZWFkIG1haWwgaW5kaWNhdG9yIChMb2NhbCwgSW1hcCwgUG9wMywgR21haWwsIFlhaG9vIG1haWwuLi4pXG5JbmRpY2F0b3IgZm9yIG5ldyBtYWlscyBmcm9tIGxvY2FsIG1haWwgYm94ZXMgKE1CT1gsIE1BSUxESVIpLCBQT1AzIG9yIElNQVAgc2VydmVyLlxuXG5CRSBBV0FSRSBUSEFUIFRISVMgRVhURU5TSU9OIFJFUVVJUkVTIEJVQkJMRU1BSUwgU0VSVklDRSBJTlNUQUxMQVRJT05cbkNoZWNrIHlvdXIgZGlzdHJpYnV0aW9uIHBhY2thZ2luZyBzeXN0ZW0gZm9yIGF2YWlsYWJpbGl0eS4gQmVzaWRlcywgcGFja2FnZXMgZm9yIGRpc3RyaWJ1dGlvbnMgYW5kIHNvdXJjZSB0YXJiYWxscyBjYW4gYmUgZm91bmQgaGVyZSA6XG5odHRwOi8vYnViYmxlbWFpbC5mcmVlLmZyXG5cbkJ1YmJsZW1haWwgaXMgYSBjb21wbGV0ZSByZXdyaXRlIG9mIHRoZSBtYWlsbmFnIHByb2plY3QsIHdpdGggYSBsb3Qgb2YgbmV3IGZlYXR1cmVzIGluY2x1ZGluZyA6XG4qIEdub21lIG9ubGluZSBhY2NvdW50cyBhcmUgYXV0b21hdGljYWx5IHN5bmNlZFxuKiBBdmF0YXJzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIsIHdpdGggZGVmYXVsdCBjb2xvcml6ZWQgaWNvbnMgZm9yIHNlbmRlcnMgd2l0aG91dCBzcGVjaWZpYyBhdmF0YXJcbiogUmVwb3J0cyBmb3IgY29ubmV4aW9uIGVycm9ycy5cblxuIFBsZWFzZSByZXBvcnQgYW55IGlzc3VlIG9uIHRoZSBnaXRsYWIgcGFnZXMgb2YgdGhlIHByb2plY3QgOlxuaHR0cHM6Ly9mcmFtYWdpdC5vcmcvcmF6ZXIvYnViYmxlbWFpbC9pc3N1ZXNcbmh0dHBzOi8vZnJhbWFnaXQub3JnL3JhemVyL2J1YmJsZW1haWwtZ25vbWUtc2hlbGwvaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYnViYmxlbWFpbC1nbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiQnViYmxlbWFpbCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAicmF6ZXJyYXpAZnJlZS5mciIsCiAgICAienVsdTk5QGdteC5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJ1YmJsZW1haWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9idWJibGVtYWlsLmZyZWUuZnIiLAogICJ1dWlkIjogImJ1YmJsZW1haWxAcmF6ZXIuZnJhbWFnaXQub3JnIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "42": {"version": "16", "sha256": "0s4280x43sn5pa7jc0g5qqcl1rm58a0sjxpmbmal6pkvjm3mpjdl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgdW5yZWFkIG1haWwgaW5kaWNhdG9yIChMb2NhbCwgSW1hcCwgUG9wMywgR21haWwsIFlhaG9vIG1haWwuLi4pXG5JbmRpY2F0b3IgZm9yIG5ldyBtYWlscyBmcm9tIGxvY2FsIG1haWwgYm94ZXMgKE1CT1gsIE1BSUxESVIpLCBQT1AzIG9yIElNQVAgc2VydmVyLlxuXG5CRSBBV0FSRSBUSEFUIFRISVMgRVhURU5TSU9OIFJFUVVJUkVTIEJVQkJMRU1BSUwgU0VSVklDRSBJTlNUQUxMQVRJT05cbkNoZWNrIHlvdXIgZGlzdHJpYnV0aW9uIHBhY2thZ2luZyBzeXN0ZW0gZm9yIGF2YWlsYWJpbGl0eS4gQmVzaWRlcywgcGFja2FnZXMgZm9yIGRpc3RyaWJ1dGlvbnMgYW5kIHNvdXJjZSB0YXJiYWxscyBjYW4gYmUgZm91bmQgaGVyZSA6XG5odHRwOi8vYnViYmxlbWFpbC5mcmVlLmZyXG5cbkJ1YmJsZW1haWwgaXMgYSBjb21wbGV0ZSByZXdyaXRlIG9mIHRoZSBtYWlsbmFnIHByb2plY3QsIHdpdGggYSBsb3Qgb2YgbmV3IGZlYXR1cmVzIGluY2x1ZGluZyA6XG4qIEdub21lIG9ubGluZSBhY2NvdW50cyBhcmUgYXV0b21hdGljYWx5IHN5bmNlZFxuKiBBdmF0YXJzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIsIHdpdGggZGVmYXVsdCBjb2xvcml6ZWQgaWNvbnMgZm9yIHNlbmRlcnMgd2l0aG91dCBzcGVjaWZpYyBhdmF0YXJcbiogUmVwb3J0cyBmb3IgY29ubmV4aW9uIGVycm9ycy5cblxuIFBsZWFzZSByZXBvcnQgYW55IGlzc3VlIG9uIHRoZSBnaXRsYWIgcGFnZXMgb2YgdGhlIHByb2plY3QgOlxuaHR0cHM6Ly9mcmFtYWdpdC5vcmcvcmF6ZXIvYnViYmxlbWFpbC9pc3N1ZXNcbmh0dHBzOi8vZnJhbWFnaXQub3JnL3JhemVyL2J1YmJsZW1haWwtZ25vbWUtc2hlbGwvaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYnViYmxlbWFpbC1nbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiQnViYmxlbWFpbCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAicmF6ZXJyYXpAZnJlZS5mciIsCiAgICAienVsdTk5QGdteC5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJ1YmJsZW1haWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9idWJibGVtYWlsLmZyZWUuZnIiLAogICJ1dWlkIjogImJ1YmJsZW1haWxAcmF6ZXIuZnJhbWFnaXQub3JnIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
 , {"uuid": "keypadTiling@abakkk.framagit.org", "name": "Keypad Tiling", "pname": "keypad-tiling", "description": "", "link": "https://extensions.gnome.org/extension/2473/keypad-tiling/", "shell_version_map": {"38": {"version": "4", "sha256": "1v0hxg96l482wngrszh0xabgj95q7rmyimd2rxnbkddd2gascnya", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiIsCiAgImdldHRleHQtZG9tYWluIjogImtleXBhZC10aWxpbmciLAogICJuYW1lIjogIktleXBhZCBUaWxpbmciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2V5cGFkLXRpbGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJrZXlwYWRUaWxpbmdAYWJha2trLmZyYW1hZ2l0Lm9yZyIsCiAgInZlcnNpb24iOiA0Cn0="}}}
 , {"uuid": "reminder_alarm_clock@trifonovkv.gmail.com", "name": "Reminder Alarm Clock", "pname": "reminder-alarm-clock", "description": "The reminder alarm clock will remind you of an important event at the appointed time.", "link": "https://extensions.gnome.org/extension/2482/reminder-alarm-clock/", "shell_version_map": {"38": {"version": "40", "sha256": "0yljdig44gly3fky4ls42shbpvf2387kgnn1dfla9zmxxzjdkryq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSByZW1pbmRlciBhbGFybSBjbG9jayB3aWxsIHJlbWluZCB5b3Ugb2YgYW4gaW1wb3J0YW50IGV2ZW50IGF0IHRoZSBhcHBvaW50ZWQgdGltZS4iLAogICJuYW1lIjogIlJlbWluZGVyIEFsYXJtIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4LjEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90cmlmb25vdmt2L1JlbWluZGVyQWxhcm1DbG9jayIsCiAgInV1aWQiOiAicmVtaW5kZXJfYWxhcm1fY2xvY2tAdHJpZm9ub3Zrdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDAKfQ=="}}}
 , {"uuid": "TaskBar@c0ldplasma", "name": "TaskBar 2020", "pname": "taskbar-updated", "description": "!!! Development stopped !!!!  Look at Dash to Panel as an alternative: https://extensions.gnome.org/extension/1160/dash-to-panel/\n\n----------------------------------------------------------------------\n\nTaskBar 2020 displays icons of running applications and favorites on the top panel or alternatively on a new bottom panel. Activate, minimize or close tasks with a simple click. \n\nTaskBar 2020 is a dock-like windows list on the top/bottom bar. \n\nFork of zpydr/gnome-shell-extension-taskbar to support newer versions of GNOME", "link": "https://extensions.gnome.org/extension/2506/taskbar-updated/", "shell_version_map": {"38": {"version": "5", "sha256": "09yn1p0vmq70ll7vi3jdjvj479cm38r4am0mw08nca8hl4zdiamj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiEhISBEZXZlbG9wbWVudCBzdG9wcGVkICEhISEgIExvb2sgYXQgRGFzaCB0byBQYW5lbCBhcyBhbiBhbHRlcm5hdGl2ZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTE2MC9kYXNoLXRvLXBhbmVsL1xuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblRhc2tCYXIgMjAyMCBkaXNwbGF5cyBpY29ucyBvZiBydW5uaW5nIGFwcGxpY2F0aW9ucyBhbmQgZmF2b3JpdGVzIG9uIHRoZSB0b3AgcGFuZWwgb3IgYWx0ZXJuYXRpdmVseSBvbiBhIG5ldyBib3R0b20gcGFuZWwuIEFjdGl2YXRlLCBtaW5pbWl6ZSBvciBjbG9zZSB0YXNrcyB3aXRoIGEgc2ltcGxlIGNsaWNrLiBcblxuVGFza0JhciAyMDIwIGlzIGEgZG9jay1saWtlIHdpbmRvd3MgbGlzdCBvbiB0aGUgdG9wL2JvdHRvbSBiYXIuIFxuXG5Gb3JrIG9mIHpweWRyL2dub21lLXNoZWxsLWV4dGVuc2lvbi10YXNrYmFyIHRvIHN1cHBvcnQgbmV3ZXIgdmVyc2lvbnMgb2YgR05PTUUiLAogICJuYW1lIjogIlRhc2tCYXIgMjAyMCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2MwbGRwbGFzbWEvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2tiYXIiLAogICJ1dWlkIjogIlRhc2tCYXJAYzBsZHBsYXNtYSIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "8", "sha256": "0a2fwmm1n5n2ifryb6yfzh4nj4h11qkphpxvp876fyll03y9p2m5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiEhISBEZXZlbG9wbWVudCBzdG9wcGVkICEhISEgIExvb2sgYXQgRGFzaCB0byBQYW5lbCBhcyBhbiBhbHRlcm5hdGl2ZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTE2MC9kYXNoLXRvLXBhbmVsL1xuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblRhc2tCYXIgMjAyMCBkaXNwbGF5cyBpY29ucyBvZiBydW5uaW5nIGFwcGxpY2F0aW9ucyBhbmQgZmF2b3JpdGVzIG9uIHRoZSB0b3AgcGFuZWwgb3IgYWx0ZXJuYXRpdmVseSBvbiBhIG5ldyBib3R0b20gcGFuZWwuIEFjdGl2YXRlLCBtaW5pbWl6ZSBvciBjbG9zZSB0YXNrcyB3aXRoIGEgc2ltcGxlIGNsaWNrLiBcblxuVGFza0JhciAyMDIwIGlzIGEgZG9jay1saWtlIHdpbmRvd3MgbGlzdCBvbiB0aGUgdG9wL2JvdHRvbSBiYXIuIFxuXG5Gb3JrIG9mIHpweWRyL2dub21lLXNoZWxsLWV4dGVuc2lvbi10YXNrYmFyIHRvIHN1cHBvcnQgbmV3ZXIgdmVyc2lvbnMgb2YgR05PTUUiLAogICJuYW1lIjogIlRhc2tCYXIgMjAyMCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jMGxkcGxhc21hL2dub21lLXNoZWxsLWV4dGVuc2lvbi10YXNrYmFyIiwKICAidXVpZCI6ICJUYXNrQmFyQGMwbGRwbGFzbWEiLAogICJ2ZXJzaW9uIjogOAp9"}}}
 , {"uuid": "kernel-indicator@elboulangero.gitlab.com", "name": "Kernel Indicator", "pname": "kernel-indicator", "description": "Display the kernel version in the top bar", "link": "https://extensions.gnome.org/extension/2512/kernel-indicator/", "shell_version_map": {"40": {"version": "4", "sha256": "0v3vxk9adzwk18vpvhpwxp7893wh7my8bh8j5vp4fdiq3l06v4sp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGtlcm5lbCB2ZXJzaW9uIGluIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJLZXJuZWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9lbGJvdWxhbmdlcm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtlcm5lbC1pbmRpY2F0b3IiLAogICJ1dWlkIjogImtlcm5lbC1pbmRpY2F0b3JAZWxib3VsYW5nZXJvLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "0v3vxk9adzwk18vpvhpwxp7893wh7my8bh8j5vp4fdiq3l06v4sp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGtlcm5lbCB2ZXJzaW9uIGluIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJLZXJuZWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9lbGJvdWxhbmdlcm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtlcm5lbC1pbmRpY2F0b3IiLAogICJ1dWlkIjogImtlcm5lbC1pbmRpY2F0b3JAZWxib3VsYW5nZXJvLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
-, {"uuid": "floatingDock@sun.wxg@gmail.com", "name": "Floating Dock", "pname": "floating-dock", "description": "Move dock anywhere on the desktop\n\nPress Ctrl+Alt+k to vi mode\nPress lowercase alphabet, open new window or active the window\nPress uppercase alphabet, force to open new window\n\nPoint on the main button, change workspace by mouse scroll\nRight click the main button, show some selections", "link": "https://extensions.gnome.org/extension/2542/floating-dock/", "shell_version_map": {"38": {"version": "12", "sha256": "1844hhr0z4wd0wvh29q0sxh6xmwq7chg3kr3sa3c46q8n97i78x2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZmxvYXRpbmdEb2NrIiwKICAidXVpZCI6ICJmbG9hdGluZ0RvY2tAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "21", "sha256": "0qj1vqd44clpr72j5lccvva48kzaz76zd48k6nxzvnkgh2n5dh29", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nRG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmdEb2NrQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}, "41": {"version": "23", "sha256": "0ag8pq9sgk885912mqiyhsacfmgkn9n4jvyp0rk4nw0fghd1mgd9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nRG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmdEb2NrQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}, "42": {"version": "24", "sha256": "01ksb1v6h1kn7d0vr4nrvjiwxarjjf1pywlp6711i1763q8zmn4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nRG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmdEb2NrQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}}}
+, {"uuid": "floatingDock@sun.wxg@gmail.com", "name": "Floating Dock", "pname": "floating-dock", "description": "Move dock anywhere on the desktop\n\nPress Ctrl+Alt+k to vi mode\nPress lowercase alphabet, open new window or active the window\nPress uppercase alphabet, force to open new window\n\nPoint on the main button, change workspace by mouse scroll\nRight click the main button, show some selections", "link": "https://extensions.gnome.org/extension/2542/floating-dock/", "shell_version_map": {"38": {"version": "12", "sha256": "1844hhr0z4wd0wvh29q0sxh6xmwq7chg3kr3sa3c46q8n97i78x2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZmxvYXRpbmdEb2NrIiwKICAidXVpZCI6ICJmbG9hdGluZ0RvY2tAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "21", "sha256": "0qj1vqd44clpr72j5lccvva48kzaz76zd48k6nxzvnkgh2n5dh29", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nRG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmdEb2NrQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}, "41": {"version": "23", "sha256": "0ag8pq9sgk885912mqiyhsacfmgkn9n4jvyp0rk4nw0fghd1mgd9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nRG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmdEb2NrQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}, "42": {"version": "28", "sha256": "1f12ar7l3rlycszjj4hwi07l00w6ldl3lzq3awpv0hy7k9w0zd9g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nRG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmdEb2NrQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI4Cn0="}}}
 , {"uuid": "maxi@darkretailer.github.com", "name": "Maxi", "pname": "maxi", "description": "Maximize your windows vertical and/or horizontal (based on https://github.com/aXe1/gnome-shell-extension-maximized-by-default)", "link": "https://extensions.gnome.org/extension/2554/maxi/", "shell_version_map": {"40": {"version": "5", "sha256": "121nd6ggr9id3yfsrkiza7rjq19638p156ym83i3j57ikz6r3ky5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1heGltaXplIHlvdXIgd2luZG93cyB2ZXJ0aWNhbCBhbmQvb3IgaG9yaXpvbnRhbCAoYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL2FYZTEvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1heGltaXplZC1ieS1kZWZhdWx0KSIsCiAgImV4dGVuc2lvbi1pZCI6ICJtYXhpIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWF4aSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhcmtyZXRhaWxlci9nbm9tZS1zaGVsbC1leHRlbnNpb25fbWF4aSIsCiAgInV1aWQiOiAibWF4aUBkYXJrcmV0YWlsZXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "gnordvpn-local@isopolito", "name": "gNordVPN-Local", "pname": "gnordvpn-local", "description": "A Gnome extension that shows the NordVPN status in the top bar and provides the ability to configure certain aspects of the connection.", "link": "https://extensions.gnome.org/extension/2569/gnordvpn-local/", "shell_version_map": {"38": {"version": "9", "sha256": "103ddz7n14n4ahks90w60sqgq8w07mpjqln5va7kxnjh3rdwlk3s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2hvd3MgdGhlIE5vcmRWUE4gc3RhdHVzIGluIHRoZSB0b3AgYmFyIGFuZCBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBjb25maWd1cmUgY2VydGFpbiBhc3BlY3RzIG9mIHRoZSBjb25uZWN0aW9uLiIsCiAgIm5hbWUiOiAiZ05vcmRWUE4tTG9jYWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICIzLjM4LjQiLAogICAgIjQwLjUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Jc29wb2xpdG8vZ05vcmRWUE4tTG9jYWwiLAogICJ1dWlkIjogImdub3JkdnBuLWxvY2FsQGlzb3BvbGl0byIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "9", "sha256": "103ddz7n14n4ahks90w60sqgq8w07mpjqln5va7kxnjh3rdwlk3s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2hvd3MgdGhlIE5vcmRWUE4gc3RhdHVzIGluIHRoZSB0b3AgYmFyIGFuZCBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBjb25maWd1cmUgY2VydGFpbiBhc3BlY3RzIG9mIHRoZSBjb25uZWN0aW9uLiIsCiAgIm5hbWUiOiAiZ05vcmRWUE4tTG9jYWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICIzLjM4LjQiLAogICAgIjQwLjUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Jc29wb2xpdG8vZ05vcmRWUE4tTG9jYWwiLAogICJ1dWlkIjogImdub3JkdnBuLWxvY2FsQGlzb3BvbGl0byIsCiAgInZlcnNpb24iOiA5Cn0="}}}
 , {"uuid": "fully-transparent-top-bar@aunetx", "name": "Smart transparent topbar", "pname": "fully-transparent-top-bar", "description": "Permits to change topbar's look and feel when free-floating.\n\nIf you have issues or recommandations, you can tell me on github so I can see them!", "link": "https://extensions.gnome.org/extension/2588/fully-transparent-top-bar/", "shell_version_map": {"38": {"version": "11", "sha256": "1mksqaxw7jzzdghzii1bhhkbsccxb23qa69f3x6hg32ig9qi762x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBlcm1pdHMgdG8gY2hhbmdlIHRvcGJhcidzIGxvb2sgYW5kIGZlZWwgd2hlbiBmcmVlLWZsb2F0aW5nLlxuXG5JZiB5b3UgaGF2ZSBpc3N1ZXMgb3IgcmVjb21tYW5kYXRpb25zLCB5b3UgY2FuIHRlbGwgbWUgb24gZ2l0aHViIHNvIEkgY2FuIHNlZSB0aGVtISIsCiAgIm5hbWUiOiAiU21hcnQgdHJhbnNwYXJlbnQgdG9wYmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC10b3AtYmFyIiwKICAidXVpZCI6ICJmdWxseS10cmFuc3BhcmVudC10b3AtYmFyQGF1bmV0eCIsCiAgInZlcnNpb24iOiAxMQp9"}}}
@@ -287,30 +287,30 @@
 , {"uuid": "brightnesspanelmenuindicator@do.sch.dev.gmail.com", "name": "Brightness Panel Menu Indicator", "pname": "brightness-panel-menu-indicator", "description": "If a backlight device is available, this extension shows a brightness indicator on panel menu, that allows changing brightness through scrolling on it. Useful, when using ddcci-driver-linux on a desktop PC without native keyboard buttons to change brightness.", "link": "https://extensions.gnome.org/extension/2808/brightness-panel-menu-indicator/", "shell_version_map": {"38": {"version": "4", "sha256": "14c6klkpi0y6lxi0vkpgq86kjwf2ckkjl80530sybqfbfvbcffvn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklmIGEgYmFja2xpZ2h0IGRldmljZSBpcyBhdmFpbGFibGUsIHRoaXMgZXh0ZW5zaW9uIHNob3dzIGEgYnJpZ2h0bmVzcyBpbmRpY2F0b3Igb24gcGFuZWwgbWVudSwgdGhhdCBhbGxvd3MgY2hhbmdpbmcgYnJpZ2h0bmVzcyB0aHJvdWdoIHNjcm9sbGluZyBvbiBpdC4gVXNlZnVsLCB3aGVuIHVzaW5nIGRkY2NpLWRyaXZlci1saW51eCBvbiBhIGRlc2t0b3AgUEMgd2l0aG91dCBuYXRpdmUga2V5Ym9hcmQgYnV0dG9ucyB0byBjaGFuZ2UgYnJpZ2h0bmVzcy4iLAogICJuYW1lIjogIkJyaWdodG5lc3MgUGFuZWwgTWVudSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RvLXNjaC9nbm9tZS1zaGVsbC1icmlnaHRuZXNzLXBhbmVsLW1lbnUtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJicmlnaHRuZXNzcGFuZWxtZW51aW5kaWNhdG9yQGRvLnNjaC5kZXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "14c6klkpi0y6lxi0vkpgq86kjwf2ckkjl80530sybqfbfvbcffvn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklmIGEgYmFja2xpZ2h0IGRldmljZSBpcyBhdmFpbGFibGUsIHRoaXMgZXh0ZW5zaW9uIHNob3dzIGEgYnJpZ2h0bmVzcyBpbmRpY2F0b3Igb24gcGFuZWwgbWVudSwgdGhhdCBhbGxvd3MgY2hhbmdpbmcgYnJpZ2h0bmVzcyB0aHJvdWdoIHNjcm9sbGluZyBvbiBpdC4gVXNlZnVsLCB3aGVuIHVzaW5nIGRkY2NpLWRyaXZlci1saW51eCBvbiBhIGRlc2t0b3AgUEMgd2l0aG91dCBuYXRpdmUga2V5Ym9hcmQgYnV0dG9ucyB0byBjaGFuZ2UgYnJpZ2h0bmVzcy4iLAogICJuYW1lIjogIkJyaWdodG5lc3MgUGFuZWwgTWVudSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RvLXNjaC9nbm9tZS1zaGVsbC1icmlnaHRuZXNzLXBhbmVsLW1lbnUtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJicmlnaHRuZXNzcGFuZWxtZW51aW5kaWNhdG9yQGRvLnNjaC5kZXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "14c6klkpi0y6lxi0vkpgq86kjwf2ckkjl80530sybqfbfvbcffvn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklmIGEgYmFja2xpZ2h0IGRldmljZSBpcyBhdmFpbGFibGUsIHRoaXMgZXh0ZW5zaW9uIHNob3dzIGEgYnJpZ2h0bmVzcyBpbmRpY2F0b3Igb24gcGFuZWwgbWVudSwgdGhhdCBhbGxvd3MgY2hhbmdpbmcgYnJpZ2h0bmVzcyB0aHJvdWdoIHNjcm9sbGluZyBvbiBpdC4gVXNlZnVsLCB3aGVuIHVzaW5nIGRkY2NpLWRyaXZlci1saW51eCBvbiBhIGRlc2t0b3AgUEMgd2l0aG91dCBuYXRpdmUga2V5Ym9hcmQgYnV0dG9ucyB0byBjaGFuZ2UgYnJpZ2h0bmVzcy4iLAogICJuYW1lIjogIkJyaWdodG5lc3MgUGFuZWwgTWVudSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RvLXNjaC9nbm9tZS1zaGVsbC1icmlnaHRuZXNzLXBhbmVsLW1lbnUtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJicmlnaHRuZXNzcGFuZWxtZW51aW5kaWNhdG9yQGRvLnNjaC5kZXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "crypto@alipirpiran.github", "name": "Crypto Price Tracker", "pname": "crypto-price-tracker", "description": "Simple extension to track price of Crypto Currencies\n\nadd coins by Binance symbols, for example: \"BTC/USDT\"\ncomplete list on binance: https://www.binance.com/indexSpa.html\n*\n** If it faced error after update:\n**Restart Gnome-shell. (ALT+F2, r, Enter)\n*", "link": "https://extensions.gnome.org/extension/2817/crypto-price-tracker/", "shell_version_map": {"40": {"version": "15", "sha256": "1smgc04n6vr92gr919w1b9zc2rj2rvvnc9j2hvlkzh0dvf8zxk16", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcblxuYWRkIGNvaW5zIGJ5IEJpbmFuY2Ugc3ltYm9scywgZm9yIGV4YW1wbGU6IFwiQlRDL1VTRFRcIlxuY29tcGxldGUgbGlzdCBvbiBiaW5hbmNlOiBodHRwczovL3d3dy5iaW5hbmNlLmNvbS9pbmRleFNwYS5odG1sXG4qXG4qKiBJZiBpdCBmYWNlZCBlcnJvciBhZnRlciB1cGRhdGU6XG4qKlJlc3RhcnQgR25vbWUtc2hlbGwuIChBTFQrRjIsIHIsIEVudGVyKVxuKiIsCiAgIm5hbWUiOiAiQ3J5cHRvIFByaWNlIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3J5cHRvLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaXBpcnBpcmFuL0NyeXB0by1QcmljZS1UcmFja2VyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiY3J5cHRvQGFsaXBpcnBpcmFuLmdpdGh1YiIsCiAgInZlcnNpb24iOiAxNQp9"}, "41": {"version": "15", "sha256": "1smgc04n6vr92gr919w1b9zc2rj2rvvnc9j2hvlkzh0dvf8zxk16", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcblxuYWRkIGNvaW5zIGJ5IEJpbmFuY2Ugc3ltYm9scywgZm9yIGV4YW1wbGU6IFwiQlRDL1VTRFRcIlxuY29tcGxldGUgbGlzdCBvbiBiaW5hbmNlOiBodHRwczovL3d3dy5iaW5hbmNlLmNvbS9pbmRleFNwYS5odG1sXG4qXG4qKiBJZiBpdCBmYWNlZCBlcnJvciBhZnRlciB1cGRhdGU6XG4qKlJlc3RhcnQgR25vbWUtc2hlbGwuIChBTFQrRjIsIHIsIEVudGVyKVxuKiIsCiAgIm5hbWUiOiAiQ3J5cHRvIFByaWNlIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3J5cHRvLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaXBpcnBpcmFuL0NyeXB0by1QcmljZS1UcmFja2VyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiY3J5cHRvQGFsaXBpcnBpcmFuLmdpdGh1YiIsCiAgInZlcnNpb24iOiAxNQp9"}}}
 , {"uuid": "ibus-tweaker@tuberry.github.com", "name": "IBus Tweaker", "pname": "ibus-tweaker", "description": "Tweaker of IBus for orientation, theme, font, input mode and clipboard history\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/2820/ibus-tweaker/", "shell_version_map": {"38": {"version": "28", "sha256": "1ahhcq8hpxkdvq1fp8gd8qp1cfsgqsm9swn4ph9kyrzr7j8jvc3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpYnVzLXR3ZWFrZXIiLAogICJuYW1lIjogIklCdXMgVHdlYWtlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pYnVzLXR3ZWFrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2lidXMtdHdlYWtlciIsCiAgInV1aWQiOiAiaWJ1cy10d2Vha2VyQHR1YmVycnkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyOAp9"}, "40": {"version": "34", "sha256": "0fs0hlxdnhssx9vcghbicg1fn3clws9q2f3nzdi4virpm8wksf3f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpYnVzLXR3ZWFrZXIiLAogICJuYW1lIjogIklCdXMgVHdlYWtlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pYnVzLXR3ZWFrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9pYnVzLXR3ZWFrZXIiLAogICJ1dWlkIjogImlidXMtdHdlYWtlckB0dWJlcnJ5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}, "41": {"version": "36", "sha256": "0f819v8n1rvvwrir7qf8fp0bvn5zk899lpc4dr8f9jk9g8w57q7d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24taWJ1cy10d2Vha2VyIiwKICAibmFtZSI6ICJJQnVzIFR3ZWFrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWJ1cy10d2Vha2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM2Cn0="}, "42": {"version": "38", "sha256": "0crdw1z2yan0mbc36v8vw0iinqbv4lyqzsvdyhz8zsi9q4asrlg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24taWJ1cy10d2Vha2VyIiwKICAibmFtZSI6ICJJQnVzIFR3ZWFrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWJ1cy10d2Vha2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM4Cn0="}}}
-, {"uuid": "generic-monitor@gnome-shell-extensions", "name": "Generic Monitor", "pname": "generic-monitor", "description": "Display text & icon on systray using DBUS", "link": "https://extensions.gnome.org/extension/2826/generic-monitor/", "shell_version_map": {"38": {"version": "9", "sha256": "1gryq7agphzkcfnf3q4x4azp1d0wa0pim8xasddmdgk922qfb41q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGV4dCAmIGljb24gb24gc3lzdHJheSB1c2luZyBEQlVTIiwKICAibmFtZSI6ICJHZW5lcmljIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2luZGVmZXJvLnNvdXRhZGUuZnIvcC9nZW5lcmljbW9uaXRvciIsCiAgInV1aWQiOiAiZ2VuZXJpYy1tb25pdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ2ZXJzaW9uIjogOQp9"}, "40": {"version": "9", "sha256": "1gryq7agphzkcfnf3q4x4azp1d0wa0pim8xasddmdgk922qfb41q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGV4dCAmIGljb24gb24gc3lzdHJheSB1c2luZyBEQlVTIiwKICAibmFtZSI6ICJHZW5lcmljIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2luZGVmZXJvLnNvdXRhZGUuZnIvcC9nZW5lcmljbW9uaXRvciIsCiAgInV1aWQiOiAiZ2VuZXJpYy1tb25pdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "1gryq7agphzkcfnf3q4x4azp1d0wa0pim8xasddmdgk922qfb41q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGV4dCAmIGljb24gb24gc3lzdHJheSB1c2luZyBEQlVTIiwKICAibmFtZSI6ICJHZW5lcmljIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2luZGVmZXJvLnNvdXRhZGUuZnIvcC9nZW5lcmljbW9uaXRvciIsCiAgInV1aWQiOiAiZ2VuZXJpYy1tb25pdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ2ZXJzaW9uIjogOQp9"}}}
+, {"uuid": "generic-monitor@gnome-shell-extensions", "name": "Generic Monitor", "pname": "generic-monitor", "description": "Display text & icon on systray using DBUS", "link": "https://extensions.gnome.org/extension/2826/generic-monitor/", "shell_version_map": {"38": {"version": "10", "sha256": "0kvniacvxv57f6jfcrlrd7ggwj4h0bfs60r59p150m6nldm9zf23", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGV4dCAmIGljb24gb24gc3lzdHJheSB1c2luZyBEQlVTIiwKICAibmFtZSI6ICJHZW5lcmljIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9pbmRlZmVyby5zb3V0YWRlLmZyL3AvZ2VuZXJpY21vbml0b3IiLAogICJ1dWlkIjogImdlbmVyaWMtbW9uaXRvckBnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidmVyc2lvbiI6IDEwCn0="}, "40": {"version": "10", "sha256": "0kvniacvxv57f6jfcrlrd7ggwj4h0bfs60r59p150m6nldm9zf23", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGV4dCAmIGljb24gb24gc3lzdHJheSB1c2luZyBEQlVTIiwKICAibmFtZSI6ICJHZW5lcmljIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9pbmRlZmVyby5zb3V0YWRlLmZyL3AvZ2VuZXJpY21vbml0b3IiLAogICJ1dWlkIjogImdlbmVyaWMtbW9uaXRvckBnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidmVyc2lvbiI6IDEwCn0="}, "41": {"version": "10", "sha256": "0kvniacvxv57f6jfcrlrd7ggwj4h0bfs60r59p150m6nldm9zf23", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGV4dCAmIGljb24gb24gc3lzdHJheSB1c2luZyBEQlVTIiwKICAibmFtZSI6ICJHZW5lcmljIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9pbmRlZmVyby5zb3V0YWRlLmZyL3AvZ2VuZXJpY21vbml0b3IiLAogICJ1dWlkIjogImdlbmVyaWMtbW9uaXRvckBnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidmVyc2lvbiI6IDEwCn0="}, "42": {"version": "10", "sha256": "0kvniacvxv57f6jfcrlrd7ggwj4h0bfs60r59p150m6nldm9zf23", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGV4dCAmIGljb24gb24gc3lzdHJheSB1c2luZyBEQlVTIiwKICAibmFtZSI6ICJHZW5lcmljIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9pbmRlZmVyby5zb3V0YWRlLmZyL3AvZ2VuZXJpY21vbml0b3IiLAogICJ1dWlkIjogImdlbmVyaWMtbW9uaXRvckBnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
 , {"uuid": "hide-keyboard-layout@sitnik.ru", "name": "Hide Keyboard Layout", "pname": "hide-keyboard-layout", "description": "Hide keyboard layout indicator in status bar", "link": "https://extensions.gnome.org/extension/2848/hide-keyboard-layout/", "shell_version_map": {"38": {"version": "4", "sha256": "01cb7rjbsvg1d0ns70mdfmbac1bad5rb96dkjnbv6p97351d92hj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUga2V5Ym9hcmQgbGF5b3V0IGluZGljYXRvciBpbiBzdGF0dXMgYmFyIiwKICAibmFtZSI6ICJIaWRlIEtleWJvYXJkIExheW91dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FpL2hpZGUta2V5Ym9hcmQtbGF5b3V0IiwKICAidXVpZCI6ICJoaWRlLWtleWJvYXJkLWxheW91dEBzaXRuaWsucnUiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "01cb7rjbsvg1d0ns70mdfmbac1bad5rb96dkjnbv6p97351d92hj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUga2V5Ym9hcmQgbGF5b3V0IGluZGljYXRvciBpbiBzdGF0dXMgYmFyIiwKICAibmFtZSI6ICJIaWRlIEtleWJvYXJkIExheW91dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FpL2hpZGUta2V5Ym9hcmQtbGF5b3V0IiwKICAidXVpZCI6ICJoaWRlLWtleWJvYXJkLWxheW91dEBzaXRuaWsucnUiLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "01cb7rjbsvg1d0ns70mdfmbac1bad5rb96dkjnbv6p97351d92hj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUga2V5Ym9hcmQgbGF5b3V0IGluZGljYXRvciBpbiBzdGF0dXMgYmFyIiwKICAibmFtZSI6ICJIaWRlIEtleWJvYXJkIExheW91dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FpL2hpZGUta2V5Ym9hcmQtbGF5b3V0IiwKICAidXVpZCI6ICJoaWRlLWtleWJvYXJkLWxheW91dEBzaXRuaWsucnUiLAogICJ2ZXJzaW9uIjogNAp9"}, "42": {"version": "4", "sha256": "01cb7rjbsvg1d0ns70mdfmbac1bad5rb96dkjnbv6p97351d92hj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUga2V5Ym9hcmQgbGF5b3V0IGluZGljYXRvciBpbiBzdGF0dXMgYmFyIiwKICAibmFtZSI6ICJIaWRlIEtleWJvYXJkIExheW91dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FpL2hpZGUta2V5Ym9hcmQtbGF5b3V0IiwKICAidXVpZCI6ICJoaWRlLWtleWJvYXJkLWxheW91dEBzaXRuaWsucnUiLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "poweroff-button-on-topbar@darknico.com", "name": "Poweroff Button on Topbar", "pname": "poweroff-button-on-topbar", "description": "Add poweroff button on topbar", "link": "https://extensions.gnome.org/extension/2851/poweroff-button-on-topbar/", "shell_version_map": {"38": {"version": "4", "sha256": "1x3d68pflicccxiqlwiflxrw5xnnw4096bdh7hypi40jdw3b5njz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBwb3dlcm9mZiBidXR0b24gb24gdG9wYmFyIiwKICAibmFtZSI6ICJQb3dlcm9mZiBCdXR0b24gb24gVG9wYmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RhcmtuaWNvL0dOT01FLVNoZWxsLUV4dGVuc2lvbnMiLAogICJ1dWlkIjogInBvd2Vyb2ZmLWJ1dHRvbi1vbi10b3BiYXJAZGFya25pY28uY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "1x3d68pflicccxiqlwiflxrw5xnnw4096bdh7hypi40jdw3b5njz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBwb3dlcm9mZiBidXR0b24gb24gdG9wYmFyIiwKICAibmFtZSI6ICJQb3dlcm9mZiBCdXR0b24gb24gVG9wYmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RhcmtuaWNvL0dOT01FLVNoZWxsLUV4dGVuc2lvbnMiLAogICJ1dWlkIjogInBvd2Vyb2ZmLWJ1dHRvbi1vbi10b3BiYXJAZGFya25pY28uY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "maximize-to-workspace@raonetwo.github.com", "name": "Maximize To Workspace With History", "pname": "maximize-to-workspace-with-history", "description": "Like MacOS, puts window in a new workspace when its maximized or full-screened and brings you back to original workspace when its unmaximized or unfull-screened or closed. \n\nRecommended to use with touchegg/fusuma/libinput multi finger swipe gestures.", "link": "https://extensions.gnome.org/extension/2857/maximize-to-workspace-with-history/", "shell_version_map": {"38": {"version": "21", "sha256": "1m1vhscnflmlhscinj4nipybhkps213sh2s9qpp4bxm9h9waihww", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpa2UgTWFjT1MsIHB1dHMgd2luZG93IGluIGEgbmV3IHdvcmtzcGFjZSB3aGVuIGl0cyBtYXhpbWl6ZWQgb3IgZnVsbC1zY3JlZW5lZCBhbmQgYnJpbmdzIHlvdSBiYWNrIHRvIG9yaWdpbmFsIHdvcmtzcGFjZSB3aGVuIGl0cyB1bm1heGltaXplZCBvciB1bmZ1bGwtc2NyZWVuZWQgb3IgY2xvc2VkLiBcblxuUmVjb21tZW5kZWQgdG8gdXNlIHdpdGggdG91Y2hlZ2cvZnVzdW1hL2xpYmlucHV0IG11bHRpIGZpbmdlciBzd2lwZSBnZXN0dXJlcy4iLAogICJuYW1lIjogIk1heGltaXplIFRvIFdvcmtzcGFjZSBXaXRoIEhpc3RvcnkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYW9uZXR3by9NYXhpbWl6ZVRvV29ya3NwYWNlIiwKICAidXVpZCI6ICJtYXhpbWl6ZS10by13b3Jrc3BhY2VAcmFvbmV0d28uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMQp9"}, "40": {"version": "21", "sha256": "1m1vhscnflmlhscinj4nipybhkps213sh2s9qpp4bxm9h9waihww", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpa2UgTWFjT1MsIHB1dHMgd2luZG93IGluIGEgbmV3IHdvcmtzcGFjZSB3aGVuIGl0cyBtYXhpbWl6ZWQgb3IgZnVsbC1zY3JlZW5lZCBhbmQgYnJpbmdzIHlvdSBiYWNrIHRvIG9yaWdpbmFsIHdvcmtzcGFjZSB3aGVuIGl0cyB1bm1heGltaXplZCBvciB1bmZ1bGwtc2NyZWVuZWQgb3IgY2xvc2VkLiBcblxuUmVjb21tZW5kZWQgdG8gdXNlIHdpdGggdG91Y2hlZ2cvZnVzdW1hL2xpYmlucHV0IG11bHRpIGZpbmdlciBzd2lwZSBnZXN0dXJlcy4iLAogICJuYW1lIjogIk1heGltaXplIFRvIFdvcmtzcGFjZSBXaXRoIEhpc3RvcnkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYW9uZXR3by9NYXhpbWl6ZVRvV29ya3NwYWNlIiwKICAidXVpZCI6ICJtYXhpbWl6ZS10by13b3Jrc3BhY2VAcmFvbmV0d28uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMQp9"}}}
-, {"uuid": "activities_icons@fawtytoo", "name": "Activities Icons", "pname": "activities-icons", "description": "The Activities button becomes 2 icons for selecting either Applications or Workspaces in the overview. Selecting the same view again will hide the overview.\nScrolling on the icons allows switching windows on a workspace or cycling through the Workspaces.", "link": "https://extensions.gnome.org/extension/2872/activities-icons/", "shell_version_map": {"38": {"version": "8", "sha256": "048ckyp65iv7hcb1qq4c1qfp9hwxh2fagn87hmzmvi5km14l0dba", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBiZWNvbWVzIDIgaWNvbnMgZm9yIHNlbGVjdGluZyBlaXRoZXIgQXBwbGljYXRpb25zIG9yIFdvcmtzcGFjZXMgaW4gdGhlIG92ZXJ2aWV3LiBTZWxlY3RpbmcgdGhlIHNhbWUgdmlldyBhZ2FpbiB3aWxsIGhpZGUgdGhlIG92ZXJ2aWV3LlxuU2Nyb2xsaW5nIG9uIHRoZSBpY29ucyBhbGxvd3Mgc3dpdGNoaW5nIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2Ugb3IgY3ljbGluZyB0aHJvdWdoIHRoZSBXb3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmF3dHl0b28vYWN0aXZpdGllcy1pY29ucyIsCiAgInV1aWQiOiAiYWN0aXZpdGllc19pY29uc0BmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "048ckyp65iv7hcb1qq4c1qfp9hwxh2fagn87hmzmvi5km14l0dba", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBiZWNvbWVzIDIgaWNvbnMgZm9yIHNlbGVjdGluZyBlaXRoZXIgQXBwbGljYXRpb25zIG9yIFdvcmtzcGFjZXMgaW4gdGhlIG92ZXJ2aWV3LiBTZWxlY3RpbmcgdGhlIHNhbWUgdmlldyBhZ2FpbiB3aWxsIGhpZGUgdGhlIG92ZXJ2aWV3LlxuU2Nyb2xsaW5nIG9uIHRoZSBpY29ucyBhbGxvd3Mgc3dpdGNoaW5nIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2Ugb3IgY3ljbGluZyB0aHJvdWdoIHRoZSBXb3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmF3dHl0b28vYWN0aXZpdGllcy1pY29ucyIsCiAgInV1aWQiOiAiYWN0aXZpdGllc19pY29uc0BmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "048ckyp65iv7hcb1qq4c1qfp9hwxh2fagn87hmzmvi5km14l0dba", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBiZWNvbWVzIDIgaWNvbnMgZm9yIHNlbGVjdGluZyBlaXRoZXIgQXBwbGljYXRpb25zIG9yIFdvcmtzcGFjZXMgaW4gdGhlIG92ZXJ2aWV3LiBTZWxlY3RpbmcgdGhlIHNhbWUgdmlldyBhZ2FpbiB3aWxsIGhpZGUgdGhlIG92ZXJ2aWV3LlxuU2Nyb2xsaW5nIG9uIHRoZSBpY29ucyBhbGxvd3Mgc3dpdGNoaW5nIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2Ugb3IgY3ljbGluZyB0aHJvdWdoIHRoZSBXb3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmF3dHl0b28vYWN0aXZpdGllcy1pY29ucyIsCiAgInV1aWQiOiAiYWN0aXZpdGllc19pY29uc0BmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA4Cn0="}}}
+, {"uuid": "activities_icons@fawtytoo", "name": "Activities Icons", "pname": "activities-icons", "description": "The Activities button becomes 2 icons for selecting either Applications or Workspaces in the overview. Selecting the same view again will hide the overview.\nScrolling on the icons allows switching windows on a workspace or cycling through the Workspaces.", "link": "https://extensions.gnome.org/extension/2872/activities-icons/", "shell_version_map": {"38": {"version": "9", "sha256": "08dkqp0vq21wr7qwhn59s1dydd0xac4yr2aqmxk0jpivysd26qr1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBiZWNvbWVzIDIgaWNvbnMgZm9yIHNlbGVjdGluZyBlaXRoZXIgQXBwbGljYXRpb25zIG9yIFdvcmtzcGFjZXMgaW4gdGhlIG92ZXJ2aWV3LiBTZWxlY3RpbmcgdGhlIHNhbWUgdmlldyBhZ2FpbiB3aWxsIGhpZGUgdGhlIG92ZXJ2aWV3LlxuU2Nyb2xsaW5nIG9uIHRoZSBpY29ucyBhbGxvd3Mgc3dpdGNoaW5nIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2Ugb3IgY3ljbGluZyB0aHJvdWdoIHRoZSBXb3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Zhd3R5dG9vL2FjdGl2aXRpZXMtaWNvbnMiLAogICJ1dWlkIjogImFjdGl2aXRpZXNfaWNvbnNAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogOQp9"}, "40": {"version": "9", "sha256": "08dkqp0vq21wr7qwhn59s1dydd0xac4yr2aqmxk0jpivysd26qr1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBiZWNvbWVzIDIgaWNvbnMgZm9yIHNlbGVjdGluZyBlaXRoZXIgQXBwbGljYXRpb25zIG9yIFdvcmtzcGFjZXMgaW4gdGhlIG92ZXJ2aWV3LiBTZWxlY3RpbmcgdGhlIHNhbWUgdmlldyBhZ2FpbiB3aWxsIGhpZGUgdGhlIG92ZXJ2aWV3LlxuU2Nyb2xsaW5nIG9uIHRoZSBpY29ucyBhbGxvd3Mgc3dpdGNoaW5nIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2Ugb3IgY3ljbGluZyB0aHJvdWdoIHRoZSBXb3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Zhd3R5dG9vL2FjdGl2aXRpZXMtaWNvbnMiLAogICJ1dWlkIjogImFjdGl2aXRpZXNfaWNvbnNAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "08dkqp0vq21wr7qwhn59s1dydd0xac4yr2aqmxk0jpivysd26qr1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBiZWNvbWVzIDIgaWNvbnMgZm9yIHNlbGVjdGluZyBlaXRoZXIgQXBwbGljYXRpb25zIG9yIFdvcmtzcGFjZXMgaW4gdGhlIG92ZXJ2aWV3LiBTZWxlY3RpbmcgdGhlIHNhbWUgdmlldyBhZ2FpbiB3aWxsIGhpZGUgdGhlIG92ZXJ2aWV3LlxuU2Nyb2xsaW5nIG9uIHRoZSBpY29ucyBhbGxvd3Mgc3dpdGNoaW5nIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2Ugb3IgY3ljbGluZyB0aHJvdWdoIHRoZSBXb3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Zhd3R5dG9vL2FjdGl2aXRpZXMtaWNvbnMiLAogICJ1dWlkIjogImFjdGl2aXRpZXNfaWNvbnNAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogOQp9"}, "42": {"version": "9", "sha256": "08dkqp0vq21wr7qwhn59s1dydd0xac4yr2aqmxk0jpivysd26qr1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBiZWNvbWVzIDIgaWNvbnMgZm9yIHNlbGVjdGluZyBlaXRoZXIgQXBwbGljYXRpb25zIG9yIFdvcmtzcGFjZXMgaW4gdGhlIG92ZXJ2aWV3LiBTZWxlY3RpbmcgdGhlIHNhbWUgdmlldyBhZ2FpbiB3aWxsIGhpZGUgdGhlIG92ZXJ2aWV3LlxuU2Nyb2xsaW5nIG9uIHRoZSBpY29ucyBhbGxvd3Mgc3dpdGNoaW5nIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2Ugb3IgY3ljbGluZyB0aHJvdWdoIHRoZSBXb3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Zhd3R5dG9vL2FjdGl2aXRpZXMtaWNvbnMiLAogICJ1dWlkIjogImFjdGl2aXRpZXNfaWNvbnNAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogOQp9"}}}
 , {"uuid": "transparent_panel@fawtytoo", "name": "Transparent Top Panel", "pname": "transparent-top-panel", "description": "Totally transparent top panel in the Overview.\nAlso adds drop shadows to text and icons for those using GS 3.38.", "link": "https://extensions.gnome.org/extension/2878/transparent-top-panel/", "shell_version_map": {"38": {"version": "10", "sha256": "01bb054zf774pzb35di5z6y0bxrhr1fykhfk6rzmkb8izbfqciql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvdGFsbHkgdHJhbnNwYXJlbnQgdG9wIHBhbmVsIGluIHRoZSBPdmVydmlldy5cbkFsc28gYWRkcyBkcm9wIHNoYWRvd3MgdG8gdGV4dCBhbmQgaWNvbnMgZm9yIHRob3NlIHVzaW5nIEdTIDMuMzguIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudF9wYW5lbEBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxMAp9"}, "40": {"version": "10", "sha256": "01bb054zf774pzb35di5z6y0bxrhr1fykhfk6rzmkb8izbfqciql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvdGFsbHkgdHJhbnNwYXJlbnQgdG9wIHBhbmVsIGluIHRoZSBPdmVydmlldy5cbkFsc28gYWRkcyBkcm9wIHNoYWRvd3MgdG8gdGV4dCBhbmQgaWNvbnMgZm9yIHRob3NlIHVzaW5nIEdTIDMuMzguIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudF9wYW5lbEBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxMAp9"}, "41": {"version": "10", "sha256": "01bb054zf774pzb35di5z6y0bxrhr1fykhfk6rzmkb8izbfqciql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvdGFsbHkgdHJhbnNwYXJlbnQgdG9wIHBhbmVsIGluIHRoZSBPdmVydmlldy5cbkFsc28gYWRkcyBkcm9wIHNoYWRvd3MgdG8gdGV4dCBhbmQgaWNvbnMgZm9yIHRob3NlIHVzaW5nIEdTIDMuMzguIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudF9wYW5lbEBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxMAp9"}}}
 , {"uuid": "overview_full_bright@fawtytoo", "name": "Overview Full Bright", "pname": "overview-full-bright", "description": "Shows the Overview in full brightness and without the vignette.\n\nNOTE: This will not be developed beyond GS 3.38.", "link": "https://extensions.gnome.org/extension/2884/overview-full-bright/", "shell_version_map": {"38": {"version": "4", "sha256": "1dm5h1kl40lsly9a80ch4mfi67ppwd7dgg4idx8vrcx5iksnzxil", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBPdmVydmlldyBpbiBmdWxsIGJyaWdodG5lc3MgYW5kIHdpdGhvdXQgdGhlIHZpZ25ldHRlLlxuXG5OT1RFOiBUaGlzIHdpbGwgbm90IGJlIGRldmVsb3BlZCBiZXlvbmQgR1MgMy4zOC4iLAogICJuYW1lIjogIk92ZXJ2aWV3IEZ1bGwgQnJpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm92ZXJ2aWV3X2Z1bGxfYnJpZ2h0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "trayIconsReloaded@selfmade.pl", "name": "Tray Icons: Reloaded", "pname": "tray-icons-reloaded", "description": "Tray Icons Reloaded is a GNOME Shell extension which bring back Tray Icons to top panel, with additional features.\n\n>>> Read compatibility note on GitHub there is also bug reporting <<<", "link": "https://extensions.gnome.org/extension/2890/tray-icons-reloaded/", "shell_version_map": {"38": {"version": "11", "sha256": "19icczlk4j8a1fdl19lqzinx9l82lwnvj5q8xaazvgm4yicxmh4b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYXlJY29uc1JlbG9hZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvVHJheS1JY29ucy1SZWxvYWRlZCIsCiAgInV1aWQiOiAidHJheUljb25zUmVsb2FkZWRAc2VsZm1hZGUucGwiLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "40": {"version": "16", "sha256": "0bwpxfc2wjvv254fnr05q3cvs1r0jw0fdj7n8b20vdwry48n30vb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAib3Blbi1ibGFja2xpc3QiOiBbCiAgICAiRWxlY3Ryb24iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYXlJY29uc1JlbG9hZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01hcnRpblBML1RyYXktSWNvbnMtUmVsb2FkZWQiLAogICJ1dWlkIjogInRyYXlJY29uc1JlbG9hZGVkQHNlbGZtYWRlLnBsIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "41": {"version": "22", "sha256": "116vy94imzaicqpmh13ynixqx7fgybpgzcnss6k8zwk3m0m13hqg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAib3Blbi1ibGFja2xpc3QiOiBbCiAgICAiRWxlY3Ryb24iLAogICAgIllhZCIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudHJheUljb25zUmVsb2FkZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvVHJheS1JY29ucy1SZWxvYWRlZCIsCiAgInV1aWQiOiAidHJheUljb25zUmVsb2FkZWRAc2VsZm1hZGUucGwiLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "42": {"version": "23", "sha256": "1q9qbvqzz8kjmakj6y1zx2xhlq63yp9vawcpxngi8m8q6vj7wmrb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAib3Blbi1ibGFja2xpc3QiOiBbCiAgICAiRWxlY3Ryb24iLAogICAgIllhZCIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudHJheUljb25zUmVsb2FkZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvVHJheS1JY29ucy1SZWxvYWRlZCIsCiAgInV1aWQiOiAidHJheUljb25zUmVsb2FkZWRAc2VsZm1hZGUucGwiLAogICJ2ZXJzaW9uIjogMjMKfQ=="}}}
 , {"uuid": "messagingmenu@lauinger-clan.de", "name": "Messaging Menu", "pname": "messaging-menu", "description": "A Messaging Menu for the Gnome Shell. All Email and Chat Applications in one Place.", "link": "https://extensions.gnome.org/extension/2896/messaging-menu/", "shell_version_map": {"38": {"version": "4", "sha256": "1xa0hyvs2aw1z7kg5gcsgh2pjn7b13zhps98j4xpwfiv6zm0sa73", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvbWVzc2FnaW5nbWVudSIsCiAgInV1aWQiOiAibWVzc2FnaW5nbWVudUBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "11", "sha256": "0jywlzqaw7ag4s9bwpg9g641h8j7psfj9csnhl5phrychky45xbh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVzc2FnaW5nbWVudSIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvbWVzc2FnaW5nbWVudSIsCiAgInV1aWQiOiAibWVzc2FnaW5nbWVudUBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDExCn0="}, "41": {"version": "11", "sha256": "0jywlzqaw7ag4s9bwpg9g641h8j7psfj9csnhl5phrychky45xbh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVzc2FnaW5nbWVudSIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvbWVzc2FnaW5nbWVudSIsCiAgInV1aWQiOiAibWVzc2FnaW5nbWVudUBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDExCn0="}, "42": {"version": "11", "sha256": "0jywlzqaw7ag4s9bwpg9g641h8j7psfj9csnhl5phrychky45xbh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVzc2FnaW5nbWVudSIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvbWVzc2FnaW5nbWVudSIsCiAgInV1aWQiOiAibWVzc2FnaW5nbWVudUBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDExCn0="}}}
-, {"uuid": "SettingsCenter@lauinger-clan.de", "name": "SettingsCenter", "pname": "settingscenter", "description": "Settings Center is a customizable drop-down menu for quickly launching frequently used apps in Gnome:Shell via the user/aggregate menu. Originally created by XES.\n\nv10: fix for older versions, i havent tested this on anything below 3.10, v9: minor cleanup, now has an icon for the main menu entry. \n\nSettings shortcuts : gnome-tweak-tool, dconf-editor, gconf-editor, gnome-session-properties, gnome-shell-extension-prefs, seahorse and nvidia-settings. You can add your own\n\nOriginal source : http://svn.xesnet.fr/gnomeextensions (3.8 replace Settings code credit IsacDaavid)\n\nCredit to @peaceseeker for updating this with a working repo, i do wish it could have been pushed to me but my blank repo was deleted as it was stale, i failed to push to git before going back to work around 1.5 years ago and i hadn't been active enough to notice anything other than emails(these things help people!)", "link": "https://extensions.gnome.org/extension/2899/settingscenter/", "shell_version_map": {"38": {"version": "2", "sha256": "150x8xp9xm28scw5lcmxq7xcfa17wbzy2y381xsv0mv0b03kvyqy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuNS40IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvWEVTLVNldHRpbmdzLUNlbnRlci1FeHRlbnNpb24iLAogICJ1dWlkIjogIlNldHRpbmdzQ2VudGVyQGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "9", "sha256": "1687rhzy0ckpfph1x7ga05wmg6515p5y5yd5sq585hc8y2bclp7m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9YRVMtU2V0dGluZ3MtQ2VudGVyLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2V0dGluZ3NDZW50ZXJAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiA5Cn0="}, "41": {"version": "9", "sha256": "1687rhzy0ckpfph1x7ga05wmg6515p5y5yd5sq585hc8y2bclp7m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9YRVMtU2V0dGluZ3MtQ2VudGVyLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2V0dGluZ3NDZW50ZXJAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiA5Cn0="}, "42": {"version": "9", "sha256": "1687rhzy0ckpfph1x7ga05wmg6515p5y5yd5sq585hc8y2bclp7m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9YRVMtU2V0dGluZ3MtQ2VudGVyLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2V0dGluZ3NDZW50ZXJAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiA5Cn0="}}}
+, {"uuid": "SettingsCenter@lauinger-clan.de", "name": "SettingsCenter", "pname": "settingscenter", "description": "Settings Center is a customizable drop-down menu for quickly launching frequently used apps in Gnome:Shell via the user/aggregate menu. Originally created by XES.\n\nv10: fix for older versions, i havent tested this on anything below 3.10, v9: minor cleanup, now has an icon for the main menu entry. \n\nSettings shortcuts : gnome-tweak-tool, dconf-editor, gconf-editor, gnome-session-properties, gnome-shell-extension-prefs, seahorse and nvidia-settings. You can add your own\n\nOriginal source : http://svn.xesnet.fr/gnomeextensions (3.8 replace Settings code credit IsacDaavid)\n\nCredit to @peaceseeker for updating this with a working repo, i do wish it could have been pushed to me but my blank repo was deleted as it was stale, i failed to push to git before going back to work around 1.5 years ago and i hadn't been active enough to notice anything other than emails(these things help people!)", "link": "https://extensions.gnome.org/extension/2899/settingscenter/", "shell_version_map": {"38": {"version": "2", "sha256": "150x8xp9xm28scw5lcmxq7xcfa17wbzy2y381xsv0mv0b03kvyqy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuNS40IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvWEVTLVNldHRpbmdzLUNlbnRlci1FeHRlbnNpb24iLAogICJ1dWlkIjogIlNldHRpbmdzQ2VudGVyQGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "11", "sha256": "0yfc6n7x5fdk8r5knf2q266m6xhrd86v2x4xs77n8niwgb89p26h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5TZXR0aW5nc0NlbnRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9YRVMtU2V0dGluZ3MtQ2VudGVyLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2V0dGluZ3NDZW50ZXJAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "0yfc6n7x5fdk8r5knf2q266m6xhrd86v2x4xs77n8niwgb89p26h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5TZXR0aW5nc0NlbnRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9YRVMtU2V0dGluZ3MtQ2VudGVyLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2V0dGluZ3NDZW50ZXJAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAxMQp9"}, "42": {"version": "11", "sha256": "0yfc6n7x5fdk8r5knf2q266m6xhrd86v2x4xs77n8niwgb89p26h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5TZXR0aW5nc0NlbnRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9YRVMtU2V0dGluZ3MtQ2VudGVyLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2V0dGluZ3NDZW50ZXJAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAxMQp9"}}}
 , {"uuid": "auto-mute-toggle@garotosopa.github.io", "name": "Auto-mute toggle", "pname": "auto-mute-toggle", "description": "Toggle whether to auto-mute speakers when headphones are plugged in.", "link": "https://extensions.gnome.org/extension/2905/auto-mute-toggle/", "shell_version_map": {"40": {"version": "6", "sha256": "1lyh51gvsh9ydip77vjj8rigjiah97lh8gp91jcpqblwx69fs3dk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB3aGV0aGVyIHRvIGF1dG8tbXV0ZSBzcGVha2VycyB3aGVuIGhlYWRwaG9uZXMgYXJlIHBsdWdnZWQgaW4uIiwKICAibmFtZSI6ICJBdXRvLW11dGUgdG9nZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dhcm90b3NvcGEvZ3NlLWF1dG8tbXV0ZS10b2dnbGUiLAogICJ1dWlkIjogImF1dG8tbXV0ZS10b2dnbGVAZ2Fyb3Rvc29wYS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "optimus-manager-indicator@andr3slelouch.github.com", "name": "Optimus Manager Indicator", "pname": "optimus-manager-indicator", "description": "Intel/Hybrid/NVIDIA GPU Switch Note: The GPU mode activated doesn't show up in the options, by example: When you turn on the PC you are gonna be in Intel mode so Intel option is not gonna be shown. Note: Optimus Manager Indicator is made(for the moment) for Arch based distributions with optimus-manager.", "link": "https://extensions.gnome.org/extension/2908/optimus-manager-indicator/", "shell_version_map": {"38": {"version": "5", "sha256": "1mqgnwfdbd2460ngkkq6wiswvb9bvwgm5n32j7jgvn1xhb3mqn58", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVsL0h5YnJpZC9OVklESUEgR1BVIFN3aXRjaCBOb3RlOiBUaGUgR1BVIG1vZGUgYWN0aXZhdGVkIGRvZXNuJ3Qgc2hvdyB1cCBpbiB0aGUgb3B0aW9ucywgYnkgZXhhbXBsZTogV2hlbiB5b3UgdHVybiBvbiB0aGUgUEMgeW91IGFyZSBnb25uYSBiZSBpbiBJbnRlbCBtb2RlIHNvIEludGVsIG9wdGlvbiBpcyBub3QgZ29ubmEgYmUgc2hvd24uIE5vdGU6IE9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IgaXMgbWFkZShmb3IgdGhlIG1vbWVudCkgZm9yIEFyY2ggYmFzZWQgZGlzdHJpYnV0aW9ucyB3aXRoIG9wdGltdXMtbWFuYWdlci4iLAogICJuYW1lIjogIk9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmRyM3NsZWxvdWNoL09wdGltdXMtTWFuYWdlci1JbmRpY2F0b3IiLAogICJ1dWlkIjogIm9wdGltdXMtbWFuYWdlci1pbmRpY2F0b3JAYW5kcjNzbGVsb3VjaC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "1mqgnwfdbd2460ngkkq6wiswvb9bvwgm5n32j7jgvn1xhb3mqn58", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVsL0h5YnJpZC9OVklESUEgR1BVIFN3aXRjaCBOb3RlOiBUaGUgR1BVIG1vZGUgYWN0aXZhdGVkIGRvZXNuJ3Qgc2hvdyB1cCBpbiB0aGUgb3B0aW9ucywgYnkgZXhhbXBsZTogV2hlbiB5b3UgdHVybiBvbiB0aGUgUEMgeW91IGFyZSBnb25uYSBiZSBpbiBJbnRlbCBtb2RlIHNvIEludGVsIG9wdGlvbiBpcyBub3QgZ29ubmEgYmUgc2hvd24uIE5vdGU6IE9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IgaXMgbWFkZShmb3IgdGhlIG1vbWVudCkgZm9yIEFyY2ggYmFzZWQgZGlzdHJpYnV0aW9ucyB3aXRoIG9wdGltdXMtbWFuYWdlci4iLAogICJuYW1lIjogIk9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmRyM3NsZWxvdWNoL09wdGltdXMtTWFuYWdlci1JbmRpY2F0b3IiLAogICJ1dWlkIjogIm9wdGltdXMtbWFuYWdlci1pbmRpY2F0b3JAYW5kcjNzbGVsb3VjaC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "BringOutSubmenuOfPowerOffLogoutButton@pratap.fastmail.fm", "name": "Bring Out Submenu Of Power Off/Logout Button", "pname": "bring-out-submenu-of-power-offlogout-button", "description": "Bring Out Submenu Of Power Off/Logout Button and Rearrange the Order of System Menu.", "link": "https://extensions.gnome.org/extension/2917/bring-out-submenu-of-power-offlogout-button/", "shell_version_map": {"38": {"version": "28", "sha256": "16iql7ca0l5r8wwkhhaq32j9jf2n2986whakf6ri3p1ha2jq438g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYnJuZ291dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9CcmluZy1PdXQtU3VibWVudS1vZi1Qb3dlci1PZmYtTG9nb3V0IiwKICAidXVpZCI6ICJCcmluZ091dFN1Ym1lbnVPZlBvd2VyT2ZmTG9nb3V0QnV0dG9uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAyOAp9"}, "40": {"version": "28", "sha256": "16iql7ca0l5r8wwkhhaq32j9jf2n2986whakf6ri3p1ha2jq438g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYnJuZ291dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9CcmluZy1PdXQtU3VibWVudS1vZi1Qb3dlci1PZmYtTG9nb3V0IiwKICAidXVpZCI6ICJCcmluZ091dFN1Ym1lbnVPZlBvd2VyT2ZmTG9nb3V0QnV0dG9uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAyOAp9"}, "41": {"version": "28", "sha256": "16iql7ca0l5r8wwkhhaq32j9jf2n2986whakf6ri3p1ha2jq438g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYnJuZ291dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9CcmluZy1PdXQtU3VibWVudS1vZi1Qb3dlci1PZmYtTG9nb3V0IiwKICAidXVpZCI6ICJCcmluZ091dFN1Ym1lbnVPZlBvd2VyT2ZmTG9nb3V0QnV0dG9uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAyOAp9"}, "42": {"version": "28", "sha256": "16iql7ca0l5r8wwkhhaq32j9jf2n2986whakf6ri3p1ha2jq438g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYnJuZ291dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9CcmluZy1PdXQtU3VibWVudS1vZi1Qb3dlci1PZmYtTG9nb3V0IiwKICAidXVpZCI6ICJCcmluZ091dFN1Ym1lbnVPZlBvd2VyT2ZmTG9nb3V0QnV0dG9uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAyOAp9"}}}
-, {"uuid": "batterytimepercentagecompact@sagrland.de", "name": "Battery Time (Percentage) Compact", "pname": "battery-time-percentage-compact", "description": "Show the remaining time until fully charged/discharged as well as percentage of battery charge in the panel.", "link": "https://extensions.gnome.org/extension/2929/battery-time-percentage-compact/", "shell_version_map": {"38": {"version": "6", "sha256": "0jlmzsmpa84pgqlbl0rq0yvy3dk24q6c6jf95hglhv52dadybiiv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2FHckxhbmQvZ25vbWUtc2hlbGwtYmF0dGVyeS10aW1lLXBlcmNlbnRhZ2UtY29tcGFjdCIsCiAgInV1aWQiOiAiYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdEBzYWdybGFuZC5kZSIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "6", "sha256": "0jlmzsmpa84pgqlbl0rq0yvy3dk24q6c6jf95hglhv52dadybiiv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2FHckxhbmQvZ25vbWUtc2hlbGwtYmF0dGVyeS10aW1lLXBlcmNlbnRhZ2UtY29tcGFjdCIsCiAgInV1aWQiOiAiYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdEBzYWdybGFuZC5kZSIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "0jlmzsmpa84pgqlbl0rq0yvy3dk24q6c6jf95hglhv52dadybiiv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2FHckxhbmQvZ25vbWUtc2hlbGwtYmF0dGVyeS10aW1lLXBlcmNlbnRhZ2UtY29tcGFjdCIsCiAgInV1aWQiOiAiYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdEBzYWdybGFuZC5kZSIsCiAgInZlcnNpb24iOiA2Cn0="}, "42": {"version": "6", "sha256": "0jlmzsmpa84pgqlbl0rq0yvy3dk24q6c6jf95hglhv52dadybiiv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2FHckxhbmQvZ25vbWUtc2hlbGwtYmF0dGVyeS10aW1lLXBlcmNlbnRhZ2UtY29tcGFjdCIsCiAgInV1aWQiOiAiYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdEBzYWdybGFuZC5kZSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
+, {"uuid": "batterytimepercentagecompact@sagrland.de", "name": "Battery Time (Percentage) Compact", "pname": "battery-time-percentage-compact", "description": "Show the remaining time until fully charged/discharged as well as percentage of battery charge in the panel.", "link": "https://extensions.gnome.org/extension/2929/battery-time-percentage-compact/", "shell_version_map": {"38": {"version": "8", "sha256": "143gj2xmi1hhma2fjggk6vaq3sx7p0glszayds1jbnz7003xc89q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2FHckxhbmQvZ25vbWUtc2hlbGwtYmF0dGVyeS10aW1lLXBlcmNlbnRhZ2UtY29tcGFjdCIsCiAgInV1aWQiOiAiYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdEBzYWdybGFuZC5kZSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "143gj2xmi1hhma2fjggk6vaq3sx7p0glszayds1jbnz7003xc89q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2FHckxhbmQvZ25vbWUtc2hlbGwtYmF0dGVyeS10aW1lLXBlcmNlbnRhZ2UtY29tcGFjdCIsCiAgInV1aWQiOiAiYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdEBzYWdybGFuZC5kZSIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "143gj2xmi1hhma2fjggk6vaq3sx7p0glszayds1jbnz7003xc89q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2FHckxhbmQvZ25vbWUtc2hlbGwtYmF0dGVyeS10aW1lLXBlcmNlbnRhZ2UtY29tcGFjdCIsCiAgInV1aWQiOiAiYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdEBzYWdybGFuZC5kZSIsCiAgInZlcnNpb24iOiA4Cn0="}, "42": {"version": "8", "sha256": "143gj2xmi1hhma2fjggk6vaq3sx7p0glszayds1jbnz7003xc89q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2FHckxhbmQvZ25vbWUtc2hlbGwtYmF0dGVyeS10aW1lLXBlcmNlbnRhZ2UtY29tcGFjdCIsCiAgInV1aWQiOiAiYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdEBzYWdybGFuZC5kZSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
 , {"uuid": "executor@raujonas.github.io", "name": "Executor", "pname": "executor", "description": "Execute multiple shell commands periodically with separate intervals and display the output in gnome top bar.", "link": "https://extensions.gnome.org/extension/2932/executor/", "shell_version_map": {"38": {"version": "18", "sha256": "0qrpjz455jx4kd82y9wkmdl6mj46kpknbs2bh4fjm5jlvrjb92ak", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYXVqb25hcy9leGVjdXRvciIsCiAgInV1aWQiOiAiZXhlY3V0b3JAcmF1am9uYXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "18", "sha256": "0qrpjz455jx4kd82y9wkmdl6mj46kpknbs2bh4fjm5jlvrjb92ak", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYXVqb25hcy9leGVjdXRvciIsCiAgInV1aWQiOiAiZXhlY3V0b3JAcmF1am9uYXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "41": {"version": "18", "sha256": "0qrpjz455jx4kd82y9wkmdl6mj46kpknbs2bh4fjm5jlvrjb92ak", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYXVqb25hcy9leGVjdXRvciIsCiAgInV1aWQiOiAiZXhlY3V0b3JAcmF1am9uYXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "42": {"version": "18", "sha256": "0qrpjz455jx4kd82y9wkmdl6mj46kpknbs2bh4fjm5jlvrjb92ak", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYXVqb25hcy9leGVjdXRvciIsCiAgInV1aWQiOiAiZXhlY3V0b3JAcmF1am9uYXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
 , {"uuid": "ControlBlurEffectOnLockScreen@pratap.fastmail.fm", "name": "Control Blur Effect On Lock Screen", "pname": "control-blur-effect-on-lock-screen", "description": "Control the Blur Effect On Lock Screen.", "link": "https://extensions.gnome.org/extension/2935/control-blur-effect-on-lock-screen/", "shell_version_map": {"38": {"version": "14", "sha256": "176qxx2zykzzjq2xf8sf1c83r1skaxa2mzmp51v8bq3vbbxp0wij", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9Db250cm9sX0JsdXJfRWZmZWN0X09uX0xvY2tfU2NyZWVuIiwKICAidXVpZCI6ICJDb250cm9sQmx1ckVmZmVjdE9uTG9ja1NjcmVlbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "18", "sha256": "0wxyfkd9nyrnxzlcp1sp0kb2q0zsjnhs5s0lgg85rnn72x8wnnbn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9Db250cm9sX0JsdXJfRWZmZWN0X09uX0xvY2tfU2NyZWVuIiwKICAidXVpZCI6ICJDb250cm9sQmx1ckVmZmVjdE9uTG9ja1NjcmVlbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "41": {"version": "18", "sha256": "0wxyfkd9nyrnxzlcp1sp0kb2q0zsjnhs5s0lgg85rnn72x8wnnbn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9Db250cm9sX0JsdXJfRWZmZWN0X09uX0xvY2tfU2NyZWVuIiwKICAidXVpZCI6ICJDb250cm9sQmx1ckVmZmVjdE9uTG9ja1NjcmVlbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "42": {"version": "18", "sha256": "0wxyfkd9nyrnxzlcp1sp0kb2q0zsjnhs5s0lgg85rnn72x8wnnbn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9Db250cm9sX0JsdXJfRWZmZWN0X09uX0xvY2tfU2NyZWVuIiwKICAidXVpZCI6ICJDb250cm9sQmx1ckVmZmVjdE9uTG9ja1NjcmVlbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}}}
 , {"uuid": "compiz-alike-windows-effect@hermes83.github.com", "name": "Compiz alike windows effect", "pname": "compiz-alike-windows-effect", "description": "Wobbly windows effect inspired by the Compiz ones\n\nNB\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)\n\n-----------------------------------\n ALTERNATIVE\n-----------------------------------\nalternative extension to obtain an effect more similar to the original:\nhttps://extensions.gnome.org/extension/3210/compiz-windows-effect/", "link": "https://extensions.gnome.org/extension/2950/compiz-alike-windows-effect/", "shell_version_map": {"38": {"version": "22", "sha256": "0zkc9lcirqg224m46jjz2vapfg4lg9x7s0h0kvv57rfmkhrxcgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "22", "sha256": "0zkc9lcirqg224m46jjz2vapfg4lg9x7s0h0kvv57rfmkhrxcgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}, "41": {"version": "22", "sha256": "0zkc9lcirqg224m46jjz2vapfg4lg9x7s0h0kvv57rfmkhrxcgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}}}
 , {"uuid": "light-dict@tuberry.github.io", "name": "Light Dict", "pname": "light-dict", "description": "Lightweight extension for on-the-fly manipulation to primary selections, especially optimized for Dictionary lookups.\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/2959/light-dict/", "shell_version_map": {"38": {"version": "47", "sha256": "1l36l9qmcz7c6i81w5fv083bg01qsgz681c2lan8f87hqdipl4r7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzLlxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsaWdodC1kaWN0IiwKICAibmFtZSI6ICJMaWdodCBEaWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxpZ2h0LWRpY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2xpZ2h0LWRpY3QiLAogICJ1dWlkIjogImxpZ2h0LWRpY3RAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNDcKfQ=="}, "40": {"version": "58", "sha256": "0x3rk3p2vlyd2n23jlmwqfc1akbbjfhyn9w1v44byw1nfc3b0n8z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzLlxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1OAp9"}, "41": {"version": "65", "sha256": "1hjaw62pxrpgismg6dhxqp04qhk1d4xkwlgzymmra7d428qjnxf2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzLlxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2NQp9"}, "42": {"version": "67", "sha256": "05nxmlsik60nmci7x1zvdfwjymab10ikb4pdgq4cmpim3mrpp3xn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzLlxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Nwp9"}}}
 , {"uuid": "InternetSpeedMeter@alshakib.dev", "name": "Internet Speed Meter", "pname": "internet-speed-meter", "description": "Simple and minimal internet speed meter extension for gnome shell", "link": "https://extensions.gnome.org/extension/2980/internet-speed-meter/", "shell_version_map": {"38": {"version": "10", "sha256": "0q6cdiswixzg0j5ndjmqcxv6jznzsgjh0zplgsnfw42n2mzvmw32", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIGdub21lIHNoZWxsIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsU2hha2liL0ludGVybmV0U3BlZWRNZXRlciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1ldGVyQGFsc2hha2liLmRldiIsCiAgInZlcnNpb24iOiAxMAp9"}, "40": {"version": "10", "sha256": "0q6cdiswixzg0j5ndjmqcxv6jznzsgjh0zplgsnfw42n2mzvmw32", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIGdub21lIHNoZWxsIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsU2hha2liL0ludGVybmV0U3BlZWRNZXRlciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1ldGVyQGFsc2hha2liLmRldiIsCiAgInZlcnNpb24iOiAxMAp9"}, "41": {"version": "10", "sha256": "0q6cdiswixzg0j5ndjmqcxv6jznzsgjh0zplgsnfw42n2mzvmw32", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIGdub21lIHNoZWxsIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsU2hha2liL0ludGVybmV0U3BlZWRNZXRlciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1ldGVyQGFsc2hha2liLmRldiIsCiAgInZlcnNpb24iOiAxMAp9"}, "42": {"version": "10", "sha256": "0q6cdiswixzg0j5ndjmqcxv6jznzsgjh0zplgsnfw42n2mzvmw32", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIGdub21lIHNoZWxsIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsU2hha2liL0ludGVybmV0U3BlZWRNZXRlciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1ldGVyQGFsc2hha2liLmRldiIsCiAgInZlcnNpb24iOiAxMAp9"}}}
-, {"uuid": "IP-Finder@linxgem33.com", "name": "IP Finder", "pname": "ip-finder", "description": "Displays useful information about your public IP Address\n\nIP Finder displays information about your public IP address, hostname, country, AS Block, as well as  a map tile of your Geolocation and country flag,  this extension is Also Useful for informational purposes to monitor VPN changes and public network IP Addresses.\n\n=====================\nIP Finder can monitor in real time\n=====================\n*Wireguard connections\n*OpenVPN connections\n*IPV4/6 connections\n*Proxy connections\n*VPN vendor applications\n*Manual static IP changes\n\n====================\nIP Finder has added security\n====================\nNewly developed revised code base using open technologies and using API's for Public IP and Map Tile image locations using GET requests over HTTPS for a added layer of encrypted  Security, Please see source code for more details.\n\n====================\nCompatible GNOME shell - 3.36 and newer.", "link": "https://extensions.gnome.org/extension/2983/ip-finder/", "shell_version_map": {"38": {"version": "7", "sha256": "0qnmmg8q6xdv0rg90rzimqzsnggnsq2x8nmz998x59q2ik67kqgq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBBZGRyZXNzXG5cbklQIEZpbmRlciBkaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBhZGRyZXNzLCBob3N0bmFtZSwgY291bnRyeSwgQVMgQmxvY2ssIGFzIHdlbGwgYXMgIGEgbWFwIHRpbGUgb2YgeW91ciBHZW9sb2NhdGlvbiBhbmQgY291bnRyeSBmbGFnLCAgdGhpcyBleHRlbnNpb24gaXMgQWxzbyBVc2VmdWwgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgdG8gbW9uaXRvciBWUE4gY2hhbmdlcyBhbmQgcHVibGljIG5ldHdvcmsgSVAgQWRkcmVzc2VzLlxuXG49PT09PT09PT09PT09PT09PT09PT1cbklQIEZpbmRlciBjYW4gbW9uaXRvciBpbiByZWFsIHRpbWVcbj09PT09PT09PT09PT09PT09PT09PVxuKldpcmVndWFyZCBjb25uZWN0aW9uc1xuKk9wZW5WUE4gY29ubmVjdGlvbnNcbipJUFY0LzYgY29ubmVjdGlvbnNcbipQcm94eSBjb25uZWN0aW9uc1xuKlZQTiB2ZW5kb3IgYXBwbGljYXRpb25zXG4qTWFudWFsIHN0YXRpYyBJUCBjaGFuZ2VzXG5cbj09PT09PT09PT09PT09PT09PT09XG5JUCBGaW5kZXIgaGFzIGFkZGVkIHNlY3VyaXR5XG49PT09PT09PT09PT09PT09PT09PVxuTmV3bHkgZGV2ZWxvcGVkIHJldmlzZWQgY29kZSBiYXNlIHVzaW5nIG9wZW4gdGVjaG5vbG9naWVzIGFuZCB1c2luZyBBUEkncyBmb3IgUHVibGljIElQIGFuZCBNYXAgVGlsZSBpbWFnZSBsb2NhdGlvbnMgdXNpbmcgR0VUIHJlcXVlc3RzIG92ZXIgSFRUUFMgZm9yIGEgYWRkZWQgbGF5ZXIgb2YgZW5jcnlwdGVkICBTZWN1cml0eSwgUGxlYXNlIHNlZSBzb3VyY2UgY29kZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG49PT09PT09PT09PT09PT09PT09PVxuQ29tcGF0aWJsZSBHTk9NRSBzaGVsbCAtIDMuMzYgYW5kIG5ld2VyLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJpcC1maW5kZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpcC1maW5kZXIiLAogICJuYW1lIjogIklQIEZpbmRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wdWJsaWMtaXAtYWRkcmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0xpbnhHZW0zMy9JUC1GaW5kZXIiLAogICJ1dWlkIjogIklQLUZpbmRlckBsaW54Z2VtMzMuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "9", "sha256": "1iglj9l7c69ics43r675w4azc7x680n21vfr6jkdha8j47a79sn3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBBZGRyZXNzXG5cbklQIEZpbmRlciBkaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBhZGRyZXNzLCBob3N0bmFtZSwgY291bnRyeSwgQVMgQmxvY2ssIGFzIHdlbGwgYXMgIGEgbWFwIHRpbGUgb2YgeW91ciBHZW9sb2NhdGlvbiBhbmQgY291bnRyeSBmbGFnLCAgdGhpcyBleHRlbnNpb24gaXMgQWxzbyBVc2VmdWwgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgdG8gbW9uaXRvciBWUE4gY2hhbmdlcyBhbmQgcHVibGljIG5ldHdvcmsgSVAgQWRkcmVzc2VzLlxuXG49PT09PT09PT09PT09PT09PT09PT1cbklQIEZpbmRlciBjYW4gbW9uaXRvciBpbiByZWFsIHRpbWVcbj09PT09PT09PT09PT09PT09PT09PVxuKldpcmVndWFyZCBjb25uZWN0aW9uc1xuKk9wZW5WUE4gY29ubmVjdGlvbnNcbipJUFY0LzYgY29ubmVjdGlvbnNcbipQcm94eSBjb25uZWN0aW9uc1xuKlZQTiB2ZW5kb3IgYXBwbGljYXRpb25zXG4qTWFudWFsIHN0YXRpYyBJUCBjaGFuZ2VzXG5cbj09PT09PT09PT09PT09PT09PT09XG5JUCBGaW5kZXIgaGFzIGFkZGVkIHNlY3VyaXR5XG49PT09PT09PT09PT09PT09PT09PVxuTmV3bHkgZGV2ZWxvcGVkIHJldmlzZWQgY29kZSBiYXNlIHVzaW5nIG9wZW4gdGVjaG5vbG9naWVzIGFuZCB1c2luZyBBUEkncyBmb3IgUHVibGljIElQIGFuZCBNYXAgVGlsZSBpbWFnZSBsb2NhdGlvbnMgdXNpbmcgR0VUIHJlcXVlc3RzIG92ZXIgSFRUUFMgZm9yIGEgYWRkZWQgbGF5ZXIgb2YgZW5jcnlwdGVkICBTZWN1cml0eSwgUGxlYXNlIHNlZSBzb3VyY2UgY29kZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG49PT09PT09PT09PT09PT09PT09PVxuQ29tcGF0aWJsZSBHTk9NRSBzaGVsbCAtIDMuMzYgYW5kIG5ld2VyLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJpcC1maW5kZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpcC1maW5kZXIiLAogICJuYW1lIjogIklQIEZpbmRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wdWJsaWMtaXAtYWRkcmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vTGlueEdlbTMzL0lQLUZpbmRlciIsCiAgInV1aWQiOiAiSVAtRmluZGVyQGxpbnhnZW0zMy5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "1iglj9l7c69ics43r675w4azc7x680n21vfr6jkdha8j47a79sn3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBBZGRyZXNzXG5cbklQIEZpbmRlciBkaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBhZGRyZXNzLCBob3N0bmFtZSwgY291bnRyeSwgQVMgQmxvY2ssIGFzIHdlbGwgYXMgIGEgbWFwIHRpbGUgb2YgeW91ciBHZW9sb2NhdGlvbiBhbmQgY291bnRyeSBmbGFnLCAgdGhpcyBleHRlbnNpb24gaXMgQWxzbyBVc2VmdWwgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgdG8gbW9uaXRvciBWUE4gY2hhbmdlcyBhbmQgcHVibGljIG5ldHdvcmsgSVAgQWRkcmVzc2VzLlxuXG49PT09PT09PT09PT09PT09PT09PT1cbklQIEZpbmRlciBjYW4gbW9uaXRvciBpbiByZWFsIHRpbWVcbj09PT09PT09PT09PT09PT09PT09PVxuKldpcmVndWFyZCBjb25uZWN0aW9uc1xuKk9wZW5WUE4gY29ubmVjdGlvbnNcbipJUFY0LzYgY29ubmVjdGlvbnNcbipQcm94eSBjb25uZWN0aW9uc1xuKlZQTiB2ZW5kb3IgYXBwbGljYXRpb25zXG4qTWFudWFsIHN0YXRpYyBJUCBjaGFuZ2VzXG5cbj09PT09PT09PT09PT09PT09PT09XG5JUCBGaW5kZXIgaGFzIGFkZGVkIHNlY3VyaXR5XG49PT09PT09PT09PT09PT09PT09PVxuTmV3bHkgZGV2ZWxvcGVkIHJldmlzZWQgY29kZSBiYXNlIHVzaW5nIG9wZW4gdGVjaG5vbG9naWVzIGFuZCB1c2luZyBBUEkncyBmb3IgUHVibGljIElQIGFuZCBNYXAgVGlsZSBpbWFnZSBsb2NhdGlvbnMgdXNpbmcgR0VUIHJlcXVlc3RzIG92ZXIgSFRUUFMgZm9yIGEgYWRkZWQgbGF5ZXIgb2YgZW5jcnlwdGVkICBTZWN1cml0eSwgUGxlYXNlIHNlZSBzb3VyY2UgY29kZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG49PT09PT09PT09PT09PT09PT09PVxuQ29tcGF0aWJsZSBHTk9NRSBzaGVsbCAtIDMuMzYgYW5kIG5ld2VyLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJpcC1maW5kZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpcC1maW5kZXIiLAogICJuYW1lIjogIklQIEZpbmRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wdWJsaWMtaXAtYWRkcmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vTGlueEdlbTMzL0lQLUZpbmRlciIsCiAgInV1aWQiOiAiSVAtRmluZGVyQGxpbnhnZW0zMy5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}}}
+, {"uuid": "IP-Finder@linxgem33.com", "name": "IP Finder", "pname": "ip-finder", "description": "Displays useful information about your public IP Address\n\nIP Finder displays information about your public IP address, hostname, country, AS Block, as well as  a map tile of your Geolocation and country flag,  this extension is Also Useful for informational purposes to monitor VPN changes and public network IP Addresses.\n\n=====================\nIP Finder can monitor in real time\n=====================\n*Wireguard connections\n*OpenVPN connections\n*IPV4/6 connections\n*Proxy connections\n*VPN vendor applications\n*Manual static IP changes\n\n====================\nIP Finder has added security\n====================\nNewly developed revised code base using open technologies and using API's for Public IP and Map Tile image locations using GET requests over HTTPS for a added layer of encrypted  Security, Please see source code for more details.\n\n====================\nCompatible GNOME shell - 3.36 and newer.", "link": "https://extensions.gnome.org/extension/2983/ip-finder/", "shell_version_map": {"38": {"version": "7", "sha256": "0qnmmg8q6xdv0rg90rzimqzsnggnsq2x8nmz998x59q2ik67kqgq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBBZGRyZXNzXG5cbklQIEZpbmRlciBkaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBhZGRyZXNzLCBob3N0bmFtZSwgY291bnRyeSwgQVMgQmxvY2ssIGFzIHdlbGwgYXMgIGEgbWFwIHRpbGUgb2YgeW91ciBHZW9sb2NhdGlvbiBhbmQgY291bnRyeSBmbGFnLCAgdGhpcyBleHRlbnNpb24gaXMgQWxzbyBVc2VmdWwgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgdG8gbW9uaXRvciBWUE4gY2hhbmdlcyBhbmQgcHVibGljIG5ldHdvcmsgSVAgQWRkcmVzc2VzLlxuXG49PT09PT09PT09PT09PT09PT09PT1cbklQIEZpbmRlciBjYW4gbW9uaXRvciBpbiByZWFsIHRpbWVcbj09PT09PT09PT09PT09PT09PT09PVxuKldpcmVndWFyZCBjb25uZWN0aW9uc1xuKk9wZW5WUE4gY29ubmVjdGlvbnNcbipJUFY0LzYgY29ubmVjdGlvbnNcbipQcm94eSBjb25uZWN0aW9uc1xuKlZQTiB2ZW5kb3IgYXBwbGljYXRpb25zXG4qTWFudWFsIHN0YXRpYyBJUCBjaGFuZ2VzXG5cbj09PT09PT09PT09PT09PT09PT09XG5JUCBGaW5kZXIgaGFzIGFkZGVkIHNlY3VyaXR5XG49PT09PT09PT09PT09PT09PT09PVxuTmV3bHkgZGV2ZWxvcGVkIHJldmlzZWQgY29kZSBiYXNlIHVzaW5nIG9wZW4gdGVjaG5vbG9naWVzIGFuZCB1c2luZyBBUEkncyBmb3IgUHVibGljIElQIGFuZCBNYXAgVGlsZSBpbWFnZSBsb2NhdGlvbnMgdXNpbmcgR0VUIHJlcXVlc3RzIG92ZXIgSFRUUFMgZm9yIGEgYWRkZWQgbGF5ZXIgb2YgZW5jcnlwdGVkICBTZWN1cml0eSwgUGxlYXNlIHNlZSBzb3VyY2UgY29kZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG49PT09PT09PT09PT09PT09PT09PVxuQ29tcGF0aWJsZSBHTk9NRSBzaGVsbCAtIDMuMzYgYW5kIG5ld2VyLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJpcC1maW5kZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpcC1maW5kZXIiLAogICJuYW1lIjogIklQIEZpbmRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wdWJsaWMtaXAtYWRkcmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0xpbnhHZW0zMy9JUC1GaW5kZXIiLAogICJ1dWlkIjogIklQLUZpbmRlckBsaW54Z2VtMzMuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "9", "sha256": "1iglj9l7c69ics43r675w4azc7x680n21vfr6jkdha8j47a79sn3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBBZGRyZXNzXG5cbklQIEZpbmRlciBkaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBhZGRyZXNzLCBob3N0bmFtZSwgY291bnRyeSwgQVMgQmxvY2ssIGFzIHdlbGwgYXMgIGEgbWFwIHRpbGUgb2YgeW91ciBHZW9sb2NhdGlvbiBhbmQgY291bnRyeSBmbGFnLCAgdGhpcyBleHRlbnNpb24gaXMgQWxzbyBVc2VmdWwgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgdG8gbW9uaXRvciBWUE4gY2hhbmdlcyBhbmQgcHVibGljIG5ldHdvcmsgSVAgQWRkcmVzc2VzLlxuXG49PT09PT09PT09PT09PT09PT09PT1cbklQIEZpbmRlciBjYW4gbW9uaXRvciBpbiByZWFsIHRpbWVcbj09PT09PT09PT09PT09PT09PT09PVxuKldpcmVndWFyZCBjb25uZWN0aW9uc1xuKk9wZW5WUE4gY29ubmVjdGlvbnNcbipJUFY0LzYgY29ubmVjdGlvbnNcbipQcm94eSBjb25uZWN0aW9uc1xuKlZQTiB2ZW5kb3IgYXBwbGljYXRpb25zXG4qTWFudWFsIHN0YXRpYyBJUCBjaGFuZ2VzXG5cbj09PT09PT09PT09PT09PT09PT09XG5JUCBGaW5kZXIgaGFzIGFkZGVkIHNlY3VyaXR5XG49PT09PT09PT09PT09PT09PT09PVxuTmV3bHkgZGV2ZWxvcGVkIHJldmlzZWQgY29kZSBiYXNlIHVzaW5nIG9wZW4gdGVjaG5vbG9naWVzIGFuZCB1c2luZyBBUEkncyBmb3IgUHVibGljIElQIGFuZCBNYXAgVGlsZSBpbWFnZSBsb2NhdGlvbnMgdXNpbmcgR0VUIHJlcXVlc3RzIG92ZXIgSFRUUFMgZm9yIGEgYWRkZWQgbGF5ZXIgb2YgZW5jcnlwdGVkICBTZWN1cml0eSwgUGxlYXNlIHNlZSBzb3VyY2UgY29kZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG49PT09PT09PT09PT09PT09PT09PVxuQ29tcGF0aWJsZSBHTk9NRSBzaGVsbCAtIDMuMzYgYW5kIG5ld2VyLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJpcC1maW5kZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpcC1maW5kZXIiLAogICJuYW1lIjogIklQIEZpbmRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wdWJsaWMtaXAtYWRkcmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vTGlueEdlbTMzL0lQLUZpbmRlciIsCiAgInV1aWQiOiAiSVAtRmluZGVyQGxpbnhnZW0zMy5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "1iglj9l7c69ics43r675w4azc7x680n21vfr6jkdha8j47a79sn3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBBZGRyZXNzXG5cbklQIEZpbmRlciBkaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBhZGRyZXNzLCBob3N0bmFtZSwgY291bnRyeSwgQVMgQmxvY2ssIGFzIHdlbGwgYXMgIGEgbWFwIHRpbGUgb2YgeW91ciBHZW9sb2NhdGlvbiBhbmQgY291bnRyeSBmbGFnLCAgdGhpcyBleHRlbnNpb24gaXMgQWxzbyBVc2VmdWwgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgdG8gbW9uaXRvciBWUE4gY2hhbmdlcyBhbmQgcHVibGljIG5ldHdvcmsgSVAgQWRkcmVzc2VzLlxuXG49PT09PT09PT09PT09PT09PT09PT1cbklQIEZpbmRlciBjYW4gbW9uaXRvciBpbiByZWFsIHRpbWVcbj09PT09PT09PT09PT09PT09PT09PVxuKldpcmVndWFyZCBjb25uZWN0aW9uc1xuKk9wZW5WUE4gY29ubmVjdGlvbnNcbipJUFY0LzYgY29ubmVjdGlvbnNcbipQcm94eSBjb25uZWN0aW9uc1xuKlZQTiB2ZW5kb3IgYXBwbGljYXRpb25zXG4qTWFudWFsIHN0YXRpYyBJUCBjaGFuZ2VzXG5cbj09PT09PT09PT09PT09PT09PT09XG5JUCBGaW5kZXIgaGFzIGFkZGVkIHNlY3VyaXR5XG49PT09PT09PT09PT09PT09PT09PVxuTmV3bHkgZGV2ZWxvcGVkIHJldmlzZWQgY29kZSBiYXNlIHVzaW5nIG9wZW4gdGVjaG5vbG9naWVzIGFuZCB1c2luZyBBUEkncyBmb3IgUHVibGljIElQIGFuZCBNYXAgVGlsZSBpbWFnZSBsb2NhdGlvbnMgdXNpbmcgR0VUIHJlcXVlc3RzIG92ZXIgSFRUUFMgZm9yIGEgYWRkZWQgbGF5ZXIgb2YgZW5jcnlwdGVkICBTZWN1cml0eSwgUGxlYXNlIHNlZSBzb3VyY2UgY29kZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG49PT09PT09PT09PT09PT09PT09PVxuQ29tcGF0aWJsZSBHTk9NRSBzaGVsbCAtIDMuMzYgYW5kIG5ld2VyLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJpcC1maW5kZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpcC1maW5kZXIiLAogICJuYW1lIjogIklQIEZpbmRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wdWJsaWMtaXAtYWRkcmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vTGlueEdlbTMzL0lQLUZpbmRlciIsCiAgInV1aWQiOiAiSVAtRmluZGVyQGxpbnhnZW0zMy5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}, "42": {"version": "10", "sha256": "10h8m6m38ykf0nlsnqjpyp2m409ravjpf1n9ylx79cpnwrl4a86y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBBZGRyZXNzXG5cbklQIEZpbmRlciBkaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBhZGRyZXNzLCBob3N0bmFtZSwgY291bnRyeSwgQVMgQmxvY2ssIGFzIHdlbGwgYXMgIGEgbWFwIHRpbGUgb2YgeW91ciBHZW9sb2NhdGlvbiBhbmQgY291bnRyeSBmbGFnLCAgdGhpcyBleHRlbnNpb24gaXMgQWxzbyBVc2VmdWwgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgdG8gbW9uaXRvciBWUE4gY2hhbmdlcyBhbmQgcHVibGljIG5ldHdvcmsgSVAgQWRkcmVzc2VzLlxuXG49PT09PT09PT09PT09PT09PT09PT1cbklQIEZpbmRlciBjYW4gbW9uaXRvciBpbiByZWFsIHRpbWVcbj09PT09PT09PT09PT09PT09PT09PVxuKldpcmVndWFyZCBjb25uZWN0aW9uc1xuKk9wZW5WUE4gY29ubmVjdGlvbnNcbipJUFY0LzYgY29ubmVjdGlvbnNcbipQcm94eSBjb25uZWN0aW9uc1xuKlZQTiB2ZW5kb3IgYXBwbGljYXRpb25zXG4qTWFudWFsIHN0YXRpYyBJUCBjaGFuZ2VzXG5cbj09PT09PT09PT09PT09PT09PT09XG5JUCBGaW5kZXIgaGFzIGFkZGVkIHNlY3VyaXR5XG49PT09PT09PT09PT09PT09PT09PVxuTmV3bHkgZGV2ZWxvcGVkIHJldmlzZWQgY29kZSBiYXNlIHVzaW5nIG9wZW4gdGVjaG5vbG9naWVzIGFuZCB1c2luZyBBUEkncyBmb3IgUHVibGljIElQIGFuZCBNYXAgVGlsZSBpbWFnZSBsb2NhdGlvbnMgdXNpbmcgR0VUIHJlcXVlc3RzIG92ZXIgSFRUUFMgZm9yIGEgYWRkZWQgbGF5ZXIgb2YgZW5jcnlwdGVkICBTZWN1cml0eSwgUGxlYXNlIHNlZSBzb3VyY2UgY29kZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG49PT09PT09PT09PT09PT09PT09PVxuQ29tcGF0aWJsZSBHTk9NRSBzaGVsbCAtIDMuMzYgYW5kIG5ld2VyLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJpcC1maW5kZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpcC1maW5kZXIiLAogICJuYW1lIjogIklQIEZpbmRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wdWJsaWMtaXAtYWRkcmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9MaW54R2VtMzMvSVAtRmluZGVyIiwKICAidXVpZCI6ICJJUC1GaW5kZXJAbGlueGdlbTMzLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}}}
 , {"uuid": "runcat@kolesnikov.se", "name": "RunCat", "pname": "runcat", "description": "The cat tells you the CPU usage by running speed", "link": "https://extensions.gnome.org/extension/2986/runcat/", "shell_version_map": {"38": {"version": "18", "sha256": "142qhz0ry330gcj9wg2hwa83d9xlsnrcajj0d9c4xaar9mhqc22d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBjYXQgdGVsbHMgeW91IHRoZSBDUFUgdXNhZ2UgYnkgcnVubmluZyBzcGVlZCIsCiAgIm5hbWUiOiAiUnVuQ2F0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2luMGVyci9nbm9tZS1ydW5jYXQiLAogICJ1dWlkIjogInJ1bmNhdEBrb2xlc25pa292LnNlIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "18", "sha256": "142qhz0ry330gcj9wg2hwa83d9xlsnrcajj0d9c4xaar9mhqc22d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBjYXQgdGVsbHMgeW91IHRoZSBDUFUgdXNhZ2UgYnkgcnVubmluZyBzcGVlZCIsCiAgIm5hbWUiOiAiUnVuQ2F0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2luMGVyci9nbm9tZS1ydW5jYXQiLAogICJ1dWlkIjogInJ1bmNhdEBrb2xlc25pa292LnNlIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "41": {"version": "18", "sha256": "142qhz0ry330gcj9wg2hwa83d9xlsnrcajj0d9c4xaar9mhqc22d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBjYXQgdGVsbHMgeW91IHRoZSBDUFUgdXNhZ2UgYnkgcnVubmluZyBzcGVlZCIsCiAgIm5hbWUiOiAiUnVuQ2F0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2luMGVyci9nbm9tZS1ydW5jYXQiLAogICJ1dWlkIjogInJ1bmNhdEBrb2xlc25pa292LnNlIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "42": {"version": "18", "sha256": "142qhz0ry330gcj9wg2hwa83d9xlsnrcajj0d9c4xaar9mhqc22d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBjYXQgdGVsbHMgeW91IHRoZSBDUFUgdXNhZ2UgYnkgcnVubmluZyBzcGVlZCIsCiAgIm5hbWUiOiAiUnVuQ2F0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2luMGVyci9nbm9tZS1ydW5jYXQiLAogICJ1dWlkIjogInJ1bmNhdEBrb2xlc25pa292LnNlIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
 , {"uuid": "bowser-gnome@kronosoul.xyz", "name": "Bowser Gnome Extension", "pname": "bowser-gnome-extension", "description": "Create rules to open specific websites in specific web browsers for links clicked in any application on your computer. (emails, chat etc)", "link": "https://extensions.gnome.org/extension/2989/bowser-gnome-extension/", "shell_version_map": {"38": {"version": "10", "sha256": "0y41xz4j24lc50ai8dcvl1l773ral59ixcpvkjq1l82x7baq60pk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwuQm93c2VyIiwKICAiZGVzY3JpcHRpb24iOiAiQ3JlYXRlIHJ1bGVzIHRvIG9wZW4gc3BlY2lmaWMgd2Vic2l0ZXMgaW4gc3BlY2lmaWMgd2ViIGJyb3dzZXJzIGZvciBsaW5rcyBjbGlja2VkIGluIGFueSBhcHBsaWNhdGlvbiBvbiB5b3VyIGNvbXB1dGVyLiAoZW1haWxzLCBjaGF0IGV0YykiLAogICJleHRlbnNpb24taWQiOiAiYm93c2VyLWdub21lIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYm93c2VyLWdub21lIiwKICAibmFtZSI6ICJCb3dzZXIgR25vbWUgRXh0ZW5zaW9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFkbWluQGtyb25vc291bC54eXoiLAogICJyZXNvdXJjZS1wYXRoIjogIi9vcmcva3Jvbm9zb3VsL0Jvd3Nlci8iLAogICJzZXR0aW5ncy1wYXRoIjogIi9vcmcvZ25vbWUvc2hlbGwvZXh0ZW5zaW9ucy9Cb3dzZXIvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJvd3NlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsaXBrL2Jvd3Nlci1nbm9tZSIsCiAgInV1aWQiOiAiYm93c2VyLWdub21lQGtyb25vc291bC54eXoiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
 , {"uuid": "ideapad@laurento.frittella", "name": "IdeaPad", "pname": "ideapad", "description": "Lenovo IdeaPad goodies for Gnome Shell\n\nAt the moment the extension only provides an easy and user-friendly way to toggle battery conservation mode available on Levono Ideapad laptops and visually get its current state.\n\nConfiguration needed! Please check the instruction on the homepage.", "link": "https://extensions.gnome.org/extension/2992/ideapad/", "shell_version_map": {"38": {"version": "11", "sha256": "0p0crv91n0lals20hkrvivj00yhsadkwy9s2bfdyzmk6slwa35rb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxlbm92byBJZGVhUGFkIGdvb2RpZXMgZm9yIEdub21lIFNoZWxsXG5cbkF0IHRoZSBtb21lbnQgdGhlIGV4dGVuc2lvbiBvbmx5IHByb3ZpZGVzIGFuIGVhc3kgYW5kIHVzZXItZnJpZW5kbHkgd2F5IHRvIHRvZ2dsZSBiYXR0ZXJ5IGNvbnNlcnZhdGlvbiBtb2RlIGF2YWlsYWJsZSBvbiBMZXZvbm8gSWRlYXBhZCBsYXB0b3BzIGFuZCB2aXN1YWxseSBnZXQgaXRzIGN1cnJlbnQgc3RhdGUuXG5cbkNvbmZpZ3VyYXRpb24gbmVlZGVkISBQbGVhc2UgY2hlY2sgdGhlIGluc3RydWN0aW9uIG9uIHRoZSBob21lcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpZGVhcGFkIiwKICAibmFtZSI6ICJJZGVhUGFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGF1cmVudG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWlkZWFwYWQiLAogICJ1dWlkIjogImlkZWFwYWRAbGF1cmVudG8uZnJpdHRlbGxhIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "0p0crv91n0lals20hkrvivj00yhsadkwy9s2bfdyzmk6slwa35rb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxlbm92byBJZGVhUGFkIGdvb2RpZXMgZm9yIEdub21lIFNoZWxsXG5cbkF0IHRoZSBtb21lbnQgdGhlIGV4dGVuc2lvbiBvbmx5IHByb3ZpZGVzIGFuIGVhc3kgYW5kIHVzZXItZnJpZW5kbHkgd2F5IHRvIHRvZ2dsZSBiYXR0ZXJ5IGNvbnNlcnZhdGlvbiBtb2RlIGF2YWlsYWJsZSBvbiBMZXZvbm8gSWRlYXBhZCBsYXB0b3BzIGFuZCB2aXN1YWxseSBnZXQgaXRzIGN1cnJlbnQgc3RhdGUuXG5cbkNvbmZpZ3VyYXRpb24gbmVlZGVkISBQbGVhc2UgY2hlY2sgdGhlIGluc3RydWN0aW9uIG9uIHRoZSBob21lcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpZGVhcGFkIiwKICAibmFtZSI6ICJJZGVhUGFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGF1cmVudG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWlkZWFwYWQiLAogICJ1dWlkIjogImlkZWFwYWRAbGF1cmVudG8uZnJpdHRlbGxhIiwKICAidmVyc2lvbiI6IDExCn0="}, "41": {"version": "11", "sha256": "0p0crv91n0lals20hkrvivj00yhsadkwy9s2bfdyzmk6slwa35rb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxlbm92byBJZGVhUGFkIGdvb2RpZXMgZm9yIEdub21lIFNoZWxsXG5cbkF0IHRoZSBtb21lbnQgdGhlIGV4dGVuc2lvbiBvbmx5IHByb3ZpZGVzIGFuIGVhc3kgYW5kIHVzZXItZnJpZW5kbHkgd2F5IHRvIHRvZ2dsZSBiYXR0ZXJ5IGNvbnNlcnZhdGlvbiBtb2RlIGF2YWlsYWJsZSBvbiBMZXZvbm8gSWRlYXBhZCBsYXB0b3BzIGFuZCB2aXN1YWxseSBnZXQgaXRzIGN1cnJlbnQgc3RhdGUuXG5cbkNvbmZpZ3VyYXRpb24gbmVlZGVkISBQbGVhc2UgY2hlY2sgdGhlIGluc3RydWN0aW9uIG9uIHRoZSBob21lcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpZGVhcGFkIiwKICAibmFtZSI6ICJJZGVhUGFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGF1cmVudG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWlkZWFwYWQiLAogICJ1dWlkIjogImlkZWFwYWRAbGF1cmVudG8uZnJpdHRlbGxhIiwKICAidmVyc2lvbiI6IDExCn0="}, "42": {"version": "11", "sha256": "0p0crv91n0lals20hkrvivj00yhsadkwy9s2bfdyzmk6slwa35rb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxlbm92byBJZGVhUGFkIGdvb2RpZXMgZm9yIEdub21lIFNoZWxsXG5cbkF0IHRoZSBtb21lbnQgdGhlIGV4dGVuc2lvbiBvbmx5IHByb3ZpZGVzIGFuIGVhc3kgYW5kIHVzZXItZnJpZW5kbHkgd2F5IHRvIHRvZ2dsZSBiYXR0ZXJ5IGNvbnNlcnZhdGlvbiBtb2RlIGF2YWlsYWJsZSBvbiBMZXZvbm8gSWRlYXBhZCBsYXB0b3BzIGFuZCB2aXN1YWxseSBnZXQgaXRzIGN1cnJlbnQgc3RhdGUuXG5cbkNvbmZpZ3VyYXRpb24gbmVlZGVkISBQbGVhc2UgY2hlY2sgdGhlIGluc3RydWN0aW9uIG9uIHRoZSBob21lcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpZGVhcGFkIiwKICAibmFtZSI6ICJJZGVhUGFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGF1cmVudG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWlkZWFwYWQiLAogICJ1dWlkIjogImlkZWFwYWRAbGF1cmVudG8uZnJpdHRlbGxhIiwKICAidmVyc2lvbiI6IDExCn0="}}}
-, {"uuid": "system-monitor-next@paradoxxx.zero.gmail.com", "name": "system-monitor-next", "pname": "system-monitor-next", "description": "Display system information in GNOME Shell status bar, such as memory, CPU, disk and battery usages, network rates…\n\nThis fork of paradoxxxzero/gnome-shell-system-monitor-applet is for packaging purposes only. This extension is built and updated continuously with the upstream master branch.\n\nThis is preferable for users on bleeding edge distributions that prefer not to wait for a stable release from the main repo. Of course, since we're releasing directly from master some instability is inevitable.\n\nIf you get an error after updating, try restarting Gnome Shell with Alt-F2 then 'r'.", "link": "https://extensions.gnome.org/extension/3010/system-monitor-next/", "shell_version_map": {"40": {"version": "39", "sha256": "1nbn2h4izwbbajpyx65n8rhvcpc56irdz6736pg2apzkmkvhqqj5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLlxuXG5UaGlzIGlzIHByZWZlcmFibGUgZm9yIHVzZXJzIG9uIGJsZWVkaW5nIGVkZ2UgZGlzdHJpYnV0aW9ucyB0aGF0IHByZWZlciBub3QgdG8gd2FpdCBmb3IgYSBzdGFibGUgcmVsZWFzZSBmcm9tIHRoZSBtYWluIHJlcG8uIE9mIGNvdXJzZSwgc2luY2Ugd2UncmUgcmVsZWFzaW5nIGRpcmVjdGx5IGZyb20gbWFzdGVyIHNvbWUgaW5zdGFiaWxpdHkgaXMgaW5ldml0YWJsZS5cblxuSWYgeW91IGdldCBhbiBlcnJvciBhZnRlciB1cGRhdGluZywgdHJ5IHJlc3RhcnRpbmcgR25vbWUgU2hlbGwgd2l0aCBBbHQtRjIgdGhlbiAncicuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic3lzdGVtLW1vbml0b3IiLAogICJuYW1lIjogInN5c3RlbS1tb25pdG9yLW5leHQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZ2FsZ3MvZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0IiwKICAidXVpZCI6ICJzeXN0ZW0tbW9uaXRvci1uZXh0QHBhcmFkb3h4eC56ZXJvLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}, "41": {"version": "39", "sha256": "1nbn2h4izwbbajpyx65n8rhvcpc56irdz6736pg2apzkmkvhqqj5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLlxuXG5UaGlzIGlzIHByZWZlcmFibGUgZm9yIHVzZXJzIG9uIGJsZWVkaW5nIGVkZ2UgZGlzdHJpYnV0aW9ucyB0aGF0IHByZWZlciBub3QgdG8gd2FpdCBmb3IgYSBzdGFibGUgcmVsZWFzZSBmcm9tIHRoZSBtYWluIHJlcG8uIE9mIGNvdXJzZSwgc2luY2Ugd2UncmUgcmVsZWFzaW5nIGRpcmVjdGx5IGZyb20gbWFzdGVyIHNvbWUgaW5zdGFiaWxpdHkgaXMgaW5ldml0YWJsZS5cblxuSWYgeW91IGdldCBhbiBlcnJvciBhZnRlciB1cGRhdGluZywgdHJ5IHJlc3RhcnRpbmcgR25vbWUgU2hlbGwgd2l0aCBBbHQtRjIgdGhlbiAncicuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic3lzdGVtLW1vbml0b3IiLAogICJuYW1lIjogInN5c3RlbS1tb25pdG9yLW5leHQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZ2FsZ3MvZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0IiwKICAidXVpZCI6ICJzeXN0ZW0tbW9uaXRvci1uZXh0QHBhcmFkb3h4eC56ZXJvLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}, "42": {"version": "39", "sha256": "1nbn2h4izwbbajpyx65n8rhvcpc56irdz6736pg2apzkmkvhqqj5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLlxuXG5UaGlzIGlzIHByZWZlcmFibGUgZm9yIHVzZXJzIG9uIGJsZWVkaW5nIGVkZ2UgZGlzdHJpYnV0aW9ucyB0aGF0IHByZWZlciBub3QgdG8gd2FpdCBmb3IgYSBzdGFibGUgcmVsZWFzZSBmcm9tIHRoZSBtYWluIHJlcG8uIE9mIGNvdXJzZSwgc2luY2Ugd2UncmUgcmVsZWFzaW5nIGRpcmVjdGx5IGZyb20gbWFzdGVyIHNvbWUgaW5zdGFiaWxpdHkgaXMgaW5ldml0YWJsZS5cblxuSWYgeW91IGdldCBhbiBlcnJvciBhZnRlciB1cGRhdGluZywgdHJ5IHJlc3RhcnRpbmcgR25vbWUgU2hlbGwgd2l0aCBBbHQtRjIgdGhlbiAncicuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic3lzdGVtLW1vbml0b3IiLAogICJuYW1lIjogInN5c3RlbS1tb25pdG9yLW5leHQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZ2FsZ3MvZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0IiwKICAidXVpZCI6ICJzeXN0ZW0tbW9uaXRvci1uZXh0QHBhcmFkb3h4eC56ZXJvLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}}}
+, {"uuid": "system-monitor-next@paradoxxx.zero.gmail.com", "name": "system-monitor-next", "pname": "system-monitor-next", "description": "Display system information in GNOME Shell status bar, such as memory, CPU, disk and battery usages, network rates…\n\nThis fork of paradoxxxzero/gnome-shell-system-monitor-applet is for packaging purposes only. This extension is built and updated continuously with the upstream master branch.\n\nThis is preferable for users on bleeding edge distributions that prefer not to wait for a stable release from the main repo. Of course, since we're releasing directly from master some instability is inevitable.\n\nIf you get an error after updating, try restarting Gnome Shell with Alt-F2 then 'r'.", "link": "https://extensions.gnome.org/extension/3010/system-monitor-next/", "shell_version_map": {"40": {"version": "41", "sha256": "1gpkkvmgqc5pxbg4ss71m227xvmsmk4syhjj800hmxkgx66kvs8w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLlxuXG5UaGlzIGlzIHByZWZlcmFibGUgZm9yIHVzZXJzIG9uIGJsZWVkaW5nIGVkZ2UgZGlzdHJpYnV0aW9ucyB0aGF0IHByZWZlciBub3QgdG8gd2FpdCBmb3IgYSBzdGFibGUgcmVsZWFzZSBmcm9tIHRoZSBtYWluIHJlcG8uIE9mIGNvdXJzZSwgc2luY2Ugd2UncmUgcmVsZWFzaW5nIGRpcmVjdGx5IGZyb20gbWFzdGVyIHNvbWUgaW5zdGFiaWxpdHkgaXMgaW5ldml0YWJsZS5cblxuSWYgeW91IGdldCBhbiBlcnJvciBhZnRlciB1cGRhdGluZywgdHJ5IHJlc3RhcnRpbmcgR25vbWUgU2hlbGwgd2l0aCBBbHQtRjIgdGhlbiAncicuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic3lzdGVtLW1vbml0b3IiLAogICJuYW1lIjogInN5c3RlbS1tb25pdG9yLW5leHQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZ2FsZ3MvZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0IiwKICAidXVpZCI6ICJzeXN0ZW0tbW9uaXRvci1uZXh0QHBhcmFkb3h4eC56ZXJvLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0MQp9"}, "41": {"version": "41", "sha256": "1gpkkvmgqc5pxbg4ss71m227xvmsmk4syhjj800hmxkgx66kvs8w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLlxuXG5UaGlzIGlzIHByZWZlcmFibGUgZm9yIHVzZXJzIG9uIGJsZWVkaW5nIGVkZ2UgZGlzdHJpYnV0aW9ucyB0aGF0IHByZWZlciBub3QgdG8gd2FpdCBmb3IgYSBzdGFibGUgcmVsZWFzZSBmcm9tIHRoZSBtYWluIHJlcG8uIE9mIGNvdXJzZSwgc2luY2Ugd2UncmUgcmVsZWFzaW5nIGRpcmVjdGx5IGZyb20gbWFzdGVyIHNvbWUgaW5zdGFiaWxpdHkgaXMgaW5ldml0YWJsZS5cblxuSWYgeW91IGdldCBhbiBlcnJvciBhZnRlciB1cGRhdGluZywgdHJ5IHJlc3RhcnRpbmcgR25vbWUgU2hlbGwgd2l0aCBBbHQtRjIgdGhlbiAncicuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic3lzdGVtLW1vbml0b3IiLAogICJuYW1lIjogInN5c3RlbS1tb25pdG9yLW5leHQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZ2FsZ3MvZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0IiwKICAidXVpZCI6ICJzeXN0ZW0tbW9uaXRvci1uZXh0QHBhcmFkb3h4eC56ZXJvLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0MQp9"}, "42": {"version": "41", "sha256": "1gpkkvmgqc5pxbg4ss71m227xvmsmk4syhjj800hmxkgx66kvs8w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLlxuXG5UaGlzIGlzIHByZWZlcmFibGUgZm9yIHVzZXJzIG9uIGJsZWVkaW5nIGVkZ2UgZGlzdHJpYnV0aW9ucyB0aGF0IHByZWZlciBub3QgdG8gd2FpdCBmb3IgYSBzdGFibGUgcmVsZWFzZSBmcm9tIHRoZSBtYWluIHJlcG8uIE9mIGNvdXJzZSwgc2luY2Ugd2UncmUgcmVsZWFzaW5nIGRpcmVjdGx5IGZyb20gbWFzdGVyIHNvbWUgaW5zdGFiaWxpdHkgaXMgaW5ldml0YWJsZS5cblxuSWYgeW91IGdldCBhbiBlcnJvciBhZnRlciB1cGRhdGluZywgdHJ5IHJlc3RhcnRpbmcgR25vbWUgU2hlbGwgd2l0aCBBbHQtRjIgdGhlbiAncicuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic3lzdGVtLW1vbml0b3IiLAogICJuYW1lIjogInN5c3RlbS1tb25pdG9yLW5leHQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZ2FsZ3MvZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0IiwKICAidXVpZCI6ICJzeXN0ZW0tbW9uaXRvci1uZXh0QHBhcmFkb3h4eC56ZXJvLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0MQp9"}}}
 , {"uuid": "user-theme-x@tuberry.github.io", "name": "User Themes X", "pname": "user-themes-x", "description": "Customizable user-theme with user stylesheet and dark theme auto-switch support\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3019/user-themes-x/", "shell_version_map": {"38": {"version": "21", "sha256": "08992jny17mbw3gvlfwzgis1ld3wfkkd5fwdyq2c4s6l412fr0mz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIHN1cHBvcnRcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUteCIsCiAgImdldHRleHQtZG9tYWluIjogInVzZXItdGhlbWUteCIsCiAgIm5hbWUiOiAiVXNlciBUaGVtZXMgWCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiam9obi5zdG93ZXJzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvdXNlci10aGVtZS14IiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lLXhAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMjEKfQ=="}, "40": {"version": "24", "sha256": "12scyi48nfbrl2bvhq4rwdcj7vyvpdc86sa8iw1fg3y0cw6vlvq6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIHN1cHBvcnRcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUteCIsCiAgImdldHRleHQtZG9tYWluIjogInVzZXItdGhlbWUteCIsCiAgIm5hbWUiOiAiVXNlciBUaGVtZXMgWCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiam9obi5zdG93ZXJzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L3VzZXItdGhlbWUteCIsCiAgInV1aWQiOiAidXNlci10aGVtZS14QHR1YmVycnkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDI0Cn0="}, "41": {"version": "25", "sha256": "101y4msarf1dglh0g4wybz4dx8zsz2yg8ny2q5rz3xy1cjj8ac5a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIHN1cHBvcnRcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUteCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi11c2VyLXRoZW1lLXgiLAogICJuYW1lIjogIlVzZXIgVGhlbWVzIFgiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS91c2VyLXRoZW1lLXgiLAogICJ1dWlkIjogInVzZXItdGhlbWUteEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyNQp9"}, "42": {"version": "28", "sha256": "0bszimlk03j49v9f8ab6kv3chg8p29zg6ms3l1nvicdifxyp534g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIHN1cHBvcnRcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUteCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi11c2VyLXRoZW1lLXgiLAogICJuYW1lIjogIlVzZXIgVGhlbWVzIFgiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS91c2VyLXRoZW1lLXgiLAogICJ1dWlkIjogInVzZXItdGhlbWUteEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyOAp9"}}}
 , {"uuid": "app_view_text@fawtytoo", "name": "Application View Text", "pname": "application-view-text", "description": "The text in the Application view can be hard to read on a light coloured background. This extension makes the text bolder with a drop shadow.\nAlso improves the visibility of the app running dot.", "link": "https://extensions.gnome.org/extension/3028/application-view-text/", "shell_version_map": {"38": {"version": "7", "sha256": "1dnf1rqg27y1c50sfmqcnswac93lkgml1hdaalq6lfzm8pbnpx0d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSB0ZXh0IGluIHRoZSBBcHBsaWNhdGlvbiB2aWV3IGNhbiBiZSBoYXJkIHRvIHJlYWQgb24gYSBsaWdodCBjb2xvdXJlZCBiYWNrZ3JvdW5kLiBUaGlzIGV4dGVuc2lvbiBtYWtlcyB0aGUgdGV4dCBib2xkZXIgd2l0aCBhIGRyb3Agc2hhZG93LlxuQWxzbyBpbXByb3ZlcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgYXBwIHJ1bm5pbmcgZG90LiIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb24gVmlldyBUZXh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYXBwX3ZpZXdfdGV4dEBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "1dnf1rqg27y1c50sfmqcnswac93lkgml1hdaalq6lfzm8pbnpx0d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSB0ZXh0IGluIHRoZSBBcHBsaWNhdGlvbiB2aWV3IGNhbiBiZSBoYXJkIHRvIHJlYWQgb24gYSBsaWdodCBjb2xvdXJlZCBiYWNrZ3JvdW5kLiBUaGlzIGV4dGVuc2lvbiBtYWtlcyB0aGUgdGV4dCBib2xkZXIgd2l0aCBhIGRyb3Agc2hhZG93LlxuQWxzbyBpbXByb3ZlcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgYXBwIHJ1bm5pbmcgZG90LiIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb24gVmlldyBUZXh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYXBwX3ZpZXdfdGV4dEBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "1dnf1rqg27y1c50sfmqcnswac93lkgml1hdaalq6lfzm8pbnpx0d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSB0ZXh0IGluIHRoZSBBcHBsaWNhdGlvbiB2aWV3IGNhbiBiZSBoYXJkIHRvIHJlYWQgb24gYSBsaWdodCBjb2xvdXJlZCBiYWNrZ3JvdW5kLiBUaGlzIGV4dGVuc2lvbiBtYWtlcyB0aGUgdGV4dCBib2xkZXIgd2l0aCBhIGRyb3Agc2hhZG93LlxuQWxzbyBpbXByb3ZlcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgYXBwIHJ1bm5pbmcgZG90LiIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb24gVmlldyBUZXh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYXBwX3ZpZXdfdGV4dEBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA3Cn0="}}}
 , {"uuid": "vpn-snx-indicator@als.kz", "name": "VPN and SNX Indicator", "pname": "vpn-and-snx-indicator", "description": "A status indicator for a VPN and SNX(Check Point) connection.", "link": "https://extensions.gnome.org/extension/3049/vpn-and-snx-indicator/", "shell_version_map": {"38": {"version": "8", "sha256": "1mns39frrabpfdvmc7jcqxrlxs1mnjimdwa69hv5lawf0r498h9g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIGluZGljYXRvciBmb3IgYSBWUE4gYW5kIFNOWChDaGVjayBQb2ludCkgY29ubmVjdGlvbi4iLAogICJuYW1lIjogIlZQTiBhbmQgU05YIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNi4wIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxleGV5bG92Y2hpa292L3Zwbi1pbmRpY2F0b3Itc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ2cG4tc254LWluZGljYXRvckBhbHMua3oiLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "1mns39frrabpfdvmc7jcqxrlxs1mnjimdwa69hv5lawf0r498h9g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIGluZGljYXRvciBmb3IgYSBWUE4gYW5kIFNOWChDaGVjayBQb2ludCkgY29ubmVjdGlvbi4iLAogICJuYW1lIjogIlZQTiBhbmQgU05YIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNi4wIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxleGV5bG92Y2hpa292L3Zwbi1pbmRpY2F0b3Itc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ2cG4tc254LWluZGljYXRvckBhbHMua3oiLAogICJ2ZXJzaW9uIjogOAp9"}}}
@@ -320,19 +320,19 @@
 , {"uuid": "MaximizeToEmptyWorkspace-extension@kaisersite.de", "name": "Maximize To Empty Workspace", "pname": "maximize-to-empty-workspace", "description": "New and maximized windows will be moved to empty workspaces.\nSupports multiple monitors.", "link": "https://extensions.gnome.org/extension/3100/maximize-to-empty-workspace/", "shell_version_map": {"38": {"version": "11", "sha256": "1cbbdgbgnara45152byr5yx52cbsfd48dpkick93ih2plk1gbm3l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYWlzZXJhY20vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1heGltaXplLXRvLWVtcHR5LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiTWF4aW1pemVUb0VtcHR5V29ya3NwYWNlLWV4dGVuc2lvbkBrYWlzZXJzaXRlLmRlIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "1cbbdgbgnara45152byr5yx52cbsfd48dpkick93ih2plk1gbm3l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYWlzZXJhY20vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1heGltaXplLXRvLWVtcHR5LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiTWF4aW1pemVUb0VtcHR5V29ya3NwYWNlLWV4dGVuc2lvbkBrYWlzZXJzaXRlLmRlIiwKICAidmVyc2lvbiI6IDExCn0="}, "41": {"version": "11", "sha256": "1cbbdgbgnara45152byr5yx52cbsfd48dpkick93ih2plk1gbm3l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYWlzZXJhY20vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1heGltaXplLXRvLWVtcHR5LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiTWF4aW1pemVUb0VtcHR5V29ya3NwYWNlLWV4dGVuc2lvbkBrYWlzZXJzaXRlLmRlIiwKICAidmVyc2lvbiI6IDExCn0="}, "42": {"version": "11", "sha256": "1cbbdgbgnara45152byr5yx52cbsfd48dpkick93ih2plk1gbm3l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYWlzZXJhY20vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1heGltaXplLXRvLWVtcHR5LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiTWF4aW1pemVUb0VtcHR5V29ya3NwYWNlLWV4dGVuc2lvbkBrYWlzZXJzaXRlLmRlIiwKICAidmVyc2lvbiI6IDExCn0="}}}
 , {"uuid": "eye-extended@als.kz", "name": "Eye and Mouse Extended", "pname": "eye-extended", "description": "Adds an eye to the indicator bar that follows your cursor \nYou can also display the mouse indicator, perhaps it will help you with the problem of displaying the mouse cursor in Skype", "link": "https://extensions.gnome.org/extension/3139/eye-extended/", "shell_version_map": {"38": {"version": "9", "sha256": "1y2bgk2kww0g3f1d93s1w15g5xihjbipq40wr08f41jr8l53v9ay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZSIsCiAgImdldHRleHQtZG9tYWluIjogIkV5ZUV4dGVuZGVkIiwKICAibmFtZSI6ICJFeWUgYW5kIE1vdXNlIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImt6LmFscy5leWUtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMCIsCiAgICAiMy4zOC4wIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4ZXlsb3ZjaGlrb3YvZXllLWV4dGVuZGVkLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZXllLWV4dGVuZGVkQGFscy5reiIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "9", "sha256": "1y2bgk2kww0g3f1d93s1w15g5xihjbipq40wr08f41jr8l53v9ay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZSIsCiAgImdldHRleHQtZG9tYWluIjogIkV5ZUV4dGVuZGVkIiwKICAibmFtZSI6ICJFeWUgYW5kIE1vdXNlIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImt6LmFscy5leWUtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMCIsCiAgICAiMy4zOC4wIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4ZXlsb3ZjaGlrb3YvZXllLWV4dGVuZGVkLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZXllLWV4dGVuZGVkQGFscy5reiIsCiAgInZlcnNpb24iOiA5Cn0="}, "41": {"version": "9", "sha256": "1y2bgk2kww0g3f1d93s1w15g5xihjbipq40wr08f41jr8l53v9ay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZSIsCiAgImdldHRleHQtZG9tYWluIjogIkV5ZUV4dGVuZGVkIiwKICAibmFtZSI6ICJFeWUgYW5kIE1vdXNlIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImt6LmFscy5leWUtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMCIsCiAgICAiMy4zOC4wIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4ZXlsb3ZjaGlrb3YvZXllLWV4dGVuZGVkLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZXllLWV4dGVuZGVkQGFscy5reiIsCiAgInZlcnNpb24iOiA5Cn0="}}}
 , {"uuid": "wireguard-indicator@gregos.me", "name": "Wireguard Indicator", "pname": "wireguard-indicator", "description": "Enable, disable, and view details of Wireguard.\nDeveloped by Gregos-Winus.", "link": "https://extensions.gnome.org/extension/3160/wireguard-indicator/", "shell_version_map": {"38": {"version": "4", "sha256": "1r12pw550v3h5f6zxl0psnsx031b5c7sj374f9h078lwqs85wb8w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSwgZGlzYWJsZSwgYW5kIHZpZXcgZGV0YWlscyBvZiBXaXJlZ3VhcmQuXG5EZXZlbG9wZWQgYnkgR3JlZ29zLVdpbnVzLiIsCiAgIm5hbWUiOiAiV2lyZWd1YXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGdyZWdvcy5tZSIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "1r12pw550v3h5f6zxl0psnsx031b5c7sj374f9h078lwqs85wb8w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSwgZGlzYWJsZSwgYW5kIHZpZXcgZGV0YWlscyBvZiBXaXJlZ3VhcmQuXG5EZXZlbG9wZWQgYnkgR3JlZ29zLVdpbnVzLiIsCiAgIm5hbWUiOiAiV2lyZWd1YXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGdyZWdvcy5tZSIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "1r12pw550v3h5f6zxl0psnsx031b5c7sj374f9h078lwqs85wb8w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSwgZGlzYWJsZSwgYW5kIHZpZXcgZGV0YWlscyBvZiBXaXJlZ3VhcmQuXG5EZXZlbG9wZWQgYnkgR3JlZ29zLVdpbnVzLiIsCiAgIm5hbWUiOiAiV2lyZWd1YXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGdyZWdvcy5tZSIsCiAgInZlcnNpb24iOiA0Cn0="}, "42": {"version": "4", "sha256": "1r12pw550v3h5f6zxl0psnsx031b5c7sj374f9h078lwqs85wb8w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSwgZGlzYWJsZSwgYW5kIHZpZXcgZGV0YWlscyBvZiBXaXJlZ3VhcmQuXG5EZXZlbG9wZWQgYnkgR3JlZ29zLVdpbnVzLiIsCiAgIm5hbWUiOiAiV2lyZWd1YXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGdyZWdvcy5tZSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
-, {"uuid": "blur-my-shell@aunetx", "name": "Blur my Shell", "pname": "blur-my-shell", "description": "Adds a blur look to different parts of the GNOME Shell, including the top panel, dash and overview.\n\nYou can support my work by sponsoring me on:\n- github: https://github.com/sponsors/aunetx\n- ko-fi: https://ko-fi.com/aunetx", "link": "https://extensions.gnome.org/extension/3193/blur-my-shell/", "shell_version_map": {"38": {"version": "22", "sha256": "03vvxjdk7dfzx1crr5axp9qf4gg9lsh043zddcir8sj64m3mkz2r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eCIsCiAgIm5hbWUiOiAiQmx1ciBteSBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "40": {"version": "28", "sha256": "1b1vz0ixns3ssbfkyijjvmdf29j1sqig58wdsmixfgsl48ql9d56", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eCIsCiAgIm5hbWUiOiAiQmx1ciBteSBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMjgKfQ=="}, "41": {"version": "28", "sha256": "1b1vz0ixns3ssbfkyijjvmdf29j1sqig58wdsmixfgsl48ql9d56", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eCIsCiAgIm5hbWUiOiAiQmx1ciBteSBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMjgKfQ=="}, "42": {"version": "28", "sha256": "1b1vz0ixns3ssbfkyijjvmdf29j1sqig58wdsmixfgsl48ql9d56", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eCIsCiAgIm5hbWUiOiAiQmx1ciBteSBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMjgKfQ=="}}}
-, {"uuid": "escape-overview@raelgc", "name": "ESCape Overview", "pname": "escape-overview", "description": "Close the Overview with a single ESC press when searchbox is empty.\n\nThe default gnome-shell behaviour is, during first ESC press, clean the searchbox, then second ESC press get back to Activities overview and then third ESC press will finally close the overview.", "link": "https://extensions.gnome.org/extension/3204/escape-overview/", "shell_version_map": {"38": {"version": "4", "sha256": "1yzba3d57s57wvviyr1gm1k5l15lnm7krhdcq6gv8gd5c80l3f02", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFlbGdjL2VzY2FwZS1vdmVydmlldyIsCiAgInV1aWQiOiAiZXNjYXBlLW92ZXJ2aWV3QHJhZWxnYyIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "1yzba3d57s57wvviyr1gm1k5l15lnm7krhdcq6gv8gd5c80l3f02", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFlbGdjL2VzY2FwZS1vdmVydmlldyIsCiAgInV1aWQiOiAiZXNjYXBlLW92ZXJ2aWV3QHJhZWxnYyIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "1yzba3d57s57wvviyr1gm1k5l15lnm7krhdcq6gv8gd5c80l3f02", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFlbGdjL2VzY2FwZS1vdmVydmlldyIsCiAgInV1aWQiOiAiZXNjYXBlLW92ZXJ2aWV3QHJhZWxnYyIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "blur-my-shell@aunetx", "name": "Blur my Shell", "pname": "blur-my-shell", "description": "Adds a blur look to different parts of the GNOME Shell, including the top panel, dash and overview.\n\nYou can support my work by sponsoring me on:\n- github: https://github.com/sponsors/aunetx\n- ko-fi: https://ko-fi.com/aunetx\n\nNote: if the extension shows an error after updating, please make sure to restart your session to see if it persists. This is due to a bug in gnome shell, which I can't fix by myself.", "link": "https://extensions.gnome.org/extension/3193/blur-my-shell/", "shell_version_map": {"38": {"version": "22", "sha256": "1ss5vhzjkp2bpllxpjlk1l2i8n7p4xjpzkn0q6jg3gd472kkanfx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hdW5ldHgvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWJsdXItbXktc2hlbGwiLAogICJ1dWlkIjogImJsdXItbXktc2hlbGxAYXVuZXR4IiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "29", "sha256": "09zflyqk5mlybc4avm812hqr32q0yzrkkw0qy5q4lbkdid7cpqpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMjkKfQ=="}, "41": {"version": "29", "sha256": "09zflyqk5mlybc4avm812hqr32q0yzrkkw0qy5q4lbkdid7cpqpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMjkKfQ=="}, "42": {"version": "32", "sha256": "1w97pa6w90xvrc5qs3xaj0mw8yydlxl1ri977wbh1pqzid1l0pk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIm1lQGF1bmV0eC5kZXYiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdXItbXktc2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1ibHVyLW15LXNoZWxsIiwKICAidXVpZCI6ICJibHVyLW15LXNoZWxsQGF1bmV0eCIsCiAgInZlcnNpb24iOiAzMgp9"}}}
+, {"uuid": "escape-overview@raelgc", "name": "ESCape Overview", "pname": "escape-overview", "description": "Close the Overview with a single ESC press when searchbox is empty.\n\nThe default gnome-shell behaviour is, during first ESC press, clean the searchbox, then second ESC press get back to Activities overview and then third ESC press will finally close the overview.", "link": "https://extensions.gnome.org/extension/3204/escape-overview/", "shell_version_map": {"38": {"version": "5", "sha256": "12jycfdlywlc2gf7hcpa1draqsy8jgb2dgr8sihh2f97b31dk1nh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhZWxnYy9lc2NhcGUtb3ZlcnZpZXciLAogICJ1dWlkIjogImVzY2FwZS1vdmVydmlld0ByYWVsZ2MiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "12jycfdlywlc2gf7hcpa1draqsy8jgb2dgr8sihh2f97b31dk1nh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhZWxnYy9lc2NhcGUtb3ZlcnZpZXciLAogICJ1dWlkIjogImVzY2FwZS1vdmVydmlld0ByYWVsZ2MiLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "12jycfdlywlc2gf7hcpa1draqsy8jgb2dgr8sihh2f97b31dk1nh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhZWxnYy9lc2NhcGUtb3ZlcnZpZXciLAogICJ1dWlkIjogImVzY2FwZS1vdmVydmlld0ByYWVsZ2MiLAogICJ2ZXJzaW9uIjogNQp9"}, "42": {"version": "5", "sha256": "12jycfdlywlc2gf7hcpa1draqsy8jgb2dgr8sihh2f97b31dk1nh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhZWxnYy9lc2NhcGUtb3ZlcnZpZXciLAogICJ1dWlkIjogImVzY2FwZS1vdmVydmlld0ByYWVsZ2MiLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "compiz-windows-effect@hermes83.github.com", "name": "Compiz windows effect", "pname": "compiz-windows-effect", "description": "Compiz wobbly windows effect thanks to libanimation engine.\n\nThe use of the \"js engine\" option NOT requires any external library, orherwise you need to install the LIBANIMATION library patched for Gnome Shell: \nhttps://github.com/hermes83/libanimation\n\nNB:\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)\n\n-----------------------------------\n  Video\n-----------------------------------\nhttps://youtu.be/G8bAVIB9A7A", "link": "https://extensions.gnome.org/extension/3210/compiz-windows-effect/", "shell_version_map": {"38": {"version": "12", "sha256": "10jdlgjbk2xa1qkk7hq4g17lbjdp5bk3pxwrf5irfdjix05l1zpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBpeiB3b2JibHkgd2luZG93cyBlZmZlY3QgdGhhbmtzIHRvIGxpYmFuaW1hdGlvbiBlbmdpbmUuXG5cblRoZSB1c2Ugb2YgdGhlIFwianMgZW5naW5lXCIgb3B0aW9uIE5PVCByZXF1aXJlcyBhbnkgZXh0ZXJuYWwgbGlicmFyeSwgb3JoZXJ3aXNlIHlvdSBuZWVkIHRvIGluc3RhbGwgdGhlIExJQkFOSU1BVElPTiBsaWJyYXJ5IHBhdGNoZWQgZm9yIEdub21lIFNoZWxsOiBcbmh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9saWJhbmltYXRpb25cblxuTkI6XG5JbiBjYXNlIG9mIHVwZGF0ZSBlcnJvciBwbGVhc2UgcmVzdGFydCBHbm9tZSBTaGVsbCAob24gWG9yZyBwcmVzcyBBTFQrRjIgdGhlbiB3cml0ZSByIGFuZCBwcmVzcyBlbnRlciwgb24gV2F5bGFuZCBlbmQgdGhlIHNlc3Npb24gYW5kIGxvZyBpbiBhZ2FpbilcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgVmlkZW9cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5odHRwczovL3lvdXR1LmJlL0c4YkFWSUI5QTdBIiwKICAibmFtZSI6ICJDb21waXogd2luZG93cyBlZmZlY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "12", "sha256": "10jdlgjbk2xa1qkk7hq4g17lbjdp5bk3pxwrf5irfdjix05l1zpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBpeiB3b2JibHkgd2luZG93cyBlZmZlY3QgdGhhbmtzIHRvIGxpYmFuaW1hdGlvbiBlbmdpbmUuXG5cblRoZSB1c2Ugb2YgdGhlIFwianMgZW5naW5lXCIgb3B0aW9uIE5PVCByZXF1aXJlcyBhbnkgZXh0ZXJuYWwgbGlicmFyeSwgb3JoZXJ3aXNlIHlvdSBuZWVkIHRvIGluc3RhbGwgdGhlIExJQkFOSU1BVElPTiBsaWJyYXJ5IHBhdGNoZWQgZm9yIEdub21lIFNoZWxsOiBcbmh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9saWJhbmltYXRpb25cblxuTkI6XG5JbiBjYXNlIG9mIHVwZGF0ZSBlcnJvciBwbGVhc2UgcmVzdGFydCBHbm9tZSBTaGVsbCAob24gWG9yZyBwcmVzcyBBTFQrRjIgdGhlbiB3cml0ZSByIGFuZCBwcmVzcyBlbnRlciwgb24gV2F5bGFuZCBlbmQgdGhlIHNlc3Npb24gYW5kIGxvZyBpbiBhZ2FpbilcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgVmlkZW9cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5odHRwczovL3lvdXR1LmJlL0c4YkFWSUI5QTdBIiwKICAibmFtZSI6ICJDb21waXogd2luZG93cyBlZmZlY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEyCn0="}, "41": {"version": "12", "sha256": "10jdlgjbk2xa1qkk7hq4g17lbjdp5bk3pxwrf5irfdjix05l1zpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBpeiB3b2JibHkgd2luZG93cyBlZmZlY3QgdGhhbmtzIHRvIGxpYmFuaW1hdGlvbiBlbmdpbmUuXG5cblRoZSB1c2Ugb2YgdGhlIFwianMgZW5naW5lXCIgb3B0aW9uIE5PVCByZXF1aXJlcyBhbnkgZXh0ZXJuYWwgbGlicmFyeSwgb3JoZXJ3aXNlIHlvdSBuZWVkIHRvIGluc3RhbGwgdGhlIExJQkFOSU1BVElPTiBsaWJyYXJ5IHBhdGNoZWQgZm9yIEdub21lIFNoZWxsOiBcbmh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9saWJhbmltYXRpb25cblxuTkI6XG5JbiBjYXNlIG9mIHVwZGF0ZSBlcnJvciBwbGVhc2UgcmVzdGFydCBHbm9tZSBTaGVsbCAob24gWG9yZyBwcmVzcyBBTFQrRjIgdGhlbiB3cml0ZSByIGFuZCBwcmVzcyBlbnRlciwgb24gV2F5bGFuZCBlbmQgdGhlIHNlc3Npb24gYW5kIGxvZyBpbiBhZ2FpbilcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgVmlkZW9cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5odHRwczovL3lvdXR1LmJlL0c4YkFWSUI5QTdBIiwKICAibmFtZSI6ICJDb21waXogd2luZG93cyBlZmZlY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEyCn0="}, "42": {"version": "12", "sha256": "10jdlgjbk2xa1qkk7hq4g17lbjdp5bk3pxwrf5irfdjix05l1zpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBpeiB3b2JibHkgd2luZG93cyBlZmZlY3QgdGhhbmtzIHRvIGxpYmFuaW1hdGlvbiBlbmdpbmUuXG5cblRoZSB1c2Ugb2YgdGhlIFwianMgZW5naW5lXCIgb3B0aW9uIE5PVCByZXF1aXJlcyBhbnkgZXh0ZXJuYWwgbGlicmFyeSwgb3JoZXJ3aXNlIHlvdSBuZWVkIHRvIGluc3RhbGwgdGhlIExJQkFOSU1BVElPTiBsaWJyYXJ5IHBhdGNoZWQgZm9yIEdub21lIFNoZWxsOiBcbmh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9saWJhbmltYXRpb25cblxuTkI6XG5JbiBjYXNlIG9mIHVwZGF0ZSBlcnJvciBwbGVhc2UgcmVzdGFydCBHbm9tZSBTaGVsbCAob24gWG9yZyBwcmVzcyBBTFQrRjIgdGhlbiB3cml0ZSByIGFuZCBwcmVzcyBlbnRlciwgb24gV2F5bGFuZCBlbmQgdGhlIHNlc3Npb24gYW5kIGxvZyBpbiBhZ2FpbilcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgVmlkZW9cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5odHRwczovL3lvdXR1LmJlL0c4YkFWSUI5QTdBIiwKICAibmFtZSI6ICJDb21waXogd2luZG93cyBlZmZlY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEyCn0="}}}
 , {"uuid": "EndSessionTimer@pratap.fastmail.fm", "name": "End Session Timer", "pname": "end-session-timer", "description": "Set End Session Timer between 5 to 60 Seconds", "link": "https://extensions.gnome.org/extension/3216/end-session-timer/", "shell_version_map": {"38": {"version": "7", "sha256": "0c3wfx1iksb67fq3hm8cprhwb2f6xykkr4fv4y4drf78f15sh5gm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBFbmQgU2Vzc2lvbiBUaW1lciBiZXR3ZWVuIDUgdG8gNjAgU2Vjb25kcyIsCiAgIm5hbWUiOiAiRW5kIFNlc3Npb24gVGltZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiRW5kU2Vzc2lvblRpbWVyQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "8", "sha256": "0mm9g2ldl2lw52plx3hpbaniqlci1c10q9blkbdpwcmyv53z1dq4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBFbmQgU2Vzc2lvbiBUaW1lciBiZXR3ZWVuIDUgdG8gNjAgU2Vjb25kcyIsCiAgIm5hbWUiOiAiRW5kIFNlc3Npb24gVGltZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkVuZFNlc3Npb25UaW1lckBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogOAp9"}}}
 , {"uuid": "block-caribou-36@lxylxy123456.ercli.dev", "name": "Block Caribou 36", "pname": "block-caribou-36", "description": "Blocks caribou (the on screen keyboard) from popping up when you use a touchscreen. Even if it's disabled in the accessibility services menu. Continuation of keringar's work. Tested on GNOME Shell version 3.36 - 41 on Fedora 32 - 35. For a higher version see https://github.com/lxylxy123456/cariboublocker#installing-on-high-gnome-shell-version .", "link": "https://extensions.gnome.org/extension/3222/block-caribou-36/", "shell_version_map": {"40": {"version": "4", "sha256": "1bnkwdsmsjr7x9cx31lfzs3dnfqzmdy8cq1zc26hgpvchd02ac60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsb2NrcyBjYXJpYm91ICh0aGUgb24gc2NyZWVuIGtleWJvYXJkKSBmcm9tIHBvcHBpbmcgdXAgd2hlbiB5b3UgdXNlIGEgdG91Y2hzY3JlZW4uIEV2ZW4gaWYgaXQncyBkaXNhYmxlZCBpbiB0aGUgYWNjZXNzaWJpbGl0eSBzZXJ2aWNlcyBtZW51LiBDb250aW51YXRpb24gb2Yga2VyaW5nYXIncyB3b3JrLiBUZXN0ZWQgb24gR05PTUUgU2hlbGwgdmVyc2lvbiAzLjM2IC0gNDEgb24gRmVkb3JhIDMyIC0gMzUuIEZvciBhIGhpZ2hlciB2ZXJzaW9uIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbHh5bHh5MTIzNDU2L2Nhcmlib3VibG9ja2VyI2luc3RhbGxpbmctb24taGlnaC1nbm9tZS1zaGVsbC12ZXJzaW9uIC4iLAogICJuYW1lIjogIkJsb2NrIENhcmlib3UgMzYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x4eWx4eTEyMzQ1Ni9jYXJpYm91YmxvY2tlciIsCiAgInV1aWQiOiAiYmxvY2stY2FyaWJvdS0zNkBseHlseHkxMjM0NTYuZXJjbGkuZGV2IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1bnkwdsmsjr7x9cx31lfzs3dnfqzmdy8cq1zc26hgpvchd02ac60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsb2NrcyBjYXJpYm91ICh0aGUgb24gc2NyZWVuIGtleWJvYXJkKSBmcm9tIHBvcHBpbmcgdXAgd2hlbiB5b3UgdXNlIGEgdG91Y2hzY3JlZW4uIEV2ZW4gaWYgaXQncyBkaXNhYmxlZCBpbiB0aGUgYWNjZXNzaWJpbGl0eSBzZXJ2aWNlcyBtZW51LiBDb250aW51YXRpb24gb2Yga2VyaW5nYXIncyB3b3JrLiBUZXN0ZWQgb24gR05PTUUgU2hlbGwgdmVyc2lvbiAzLjM2IC0gNDEgb24gRmVkb3JhIDMyIC0gMzUuIEZvciBhIGhpZ2hlciB2ZXJzaW9uIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbHh5bHh5MTIzNDU2L2Nhcmlib3VibG9ja2VyI2luc3RhbGxpbmctb24taGlnaC1nbm9tZS1zaGVsbC12ZXJzaW9uIC4iLAogICJuYW1lIjogIkJsb2NrIENhcmlib3UgMzYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x4eWx4eTEyMzQ1Ni9jYXJpYm91YmxvY2tlciIsCiAgInV1aWQiOiAiYmxvY2stY2FyaWJvdS0zNkBseHlseHkxMjM0NTYuZXJjbGkuZGV2IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "unmaximize_double_click@gonza.gmail.com", "name": "Unmaximize Double Click Panel", "pname": "unmaximize-double-click-panel", "description": "Unmaximize the current window on double click on the top panel. You can also maximize horizontally and vertically with middle and right click.", "link": "https://extensions.gnome.org/extension/3228/unmaximize-double-click-panel/", "shell_version_map": {"38": {"version": "5", "sha256": "1frrdzf5c5pn259ibz3fncgh8jgjjdkhy4ymb08h0klkfncgjgkh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubWF4aW1pemUgdGhlIGN1cnJlbnQgd2luZG93IG9uIGRvdWJsZSBjbGljayBvbiB0aGUgdG9wIHBhbmVsLiBZb3UgY2FuIGFsc28gbWF4aW1pemUgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGggbWlkZGxlIGFuZCByaWdodCBjbGljay4iLAogICJuYW1lIjogIlVubWF4aW1pemUgRG91YmxlIENsaWNrIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3VubWF4aW1pemUtZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ1bm1heGltaXplX2RvdWJsZV9jbGlja0Bnb256YS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "1frrdzf5c5pn259ibz3fncgh8jgjjdkhy4ymb08h0klkfncgjgkh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubWF4aW1pemUgdGhlIGN1cnJlbnQgd2luZG93IG9uIGRvdWJsZSBjbGljayBvbiB0aGUgdG9wIHBhbmVsLiBZb3UgY2FuIGFsc28gbWF4aW1pemUgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGggbWlkZGxlIGFuZCByaWdodCBjbGljay4iLAogICJuYW1lIjogIlVubWF4aW1pemUgRG91YmxlIENsaWNrIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3VubWF4aW1pemUtZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ1bm1heGltaXplX2RvdWJsZV9jbGlja0Bnb256YS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "1frrdzf5c5pn259ibz3fncgh8jgjjdkhy4ymb08h0klkfncgjgkh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubWF4aW1pemUgdGhlIGN1cnJlbnQgd2luZG93IG9uIGRvdWJsZSBjbGljayBvbiB0aGUgdG9wIHBhbmVsLiBZb3UgY2FuIGFsc28gbWF4aW1pemUgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGggbWlkZGxlIGFuZCByaWdodCBjbGljay4iLAogICJuYW1lIjogIlVubWF4aW1pemUgRG91YmxlIENsaWNrIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3VubWF4aW1pemUtZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ1bm1heGltaXplX2RvdWJsZV9jbGlja0Bnb256YS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "42": {"version": "5", "sha256": "1frrdzf5c5pn259ibz3fncgh8jgjjdkhy4ymb08h0klkfncgjgkh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubWF4aW1pemUgdGhlIGN1cnJlbnQgd2luZG93IG9uIGRvdWJsZSBjbGljayBvbiB0aGUgdG9wIHBhbmVsLiBZb3UgY2FuIGFsc28gbWF4aW1pemUgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGggbWlkZGxlIGFuZCByaWdodCBjbGljay4iLAogICJuYW1lIjogIlVubWF4aW1pemUgRG91YmxlIENsaWNrIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3VubWF4aW1pemUtZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ1bm1heGltaXplX2RvdWJsZV9jbGlja0Bnb256YS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "unmaximize_double_click@gonza.gmail.com", "name": "Unmaximize Double Click Panel", "pname": "unmaximize-double-click-panel", "description": "Unmaximize the current window on double click on the top panel. You can also maximize horizontally and vertically with middle and right click.", "link": "https://extensions.gnome.org/extension/3228/unmaximize-double-click-panel/", "shell_version_map": {"38": {"version": "6", "sha256": "0ay3cfysw23y5pdhm7mhjihcwwmpcj4d0rridsvfxxxnzrq1c9df", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubWF4aW1pemUgdGhlIGN1cnJlbnQgd2luZG93IG9uIGRvdWJsZSBjbGljayBvbiB0aGUgdG9wIHBhbmVsLiBZb3UgY2FuIGFsc28gbWF4aW1pemUgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGggbWlkZGxlIGFuZCByaWdodCBjbGljay4iLAogICJuYW1lIjogIlVubWF4aW1pemUgRG91YmxlIENsaWNrIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3VubWF4aW1pemUtZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ1bm1heGltaXplX2RvdWJsZV9jbGlja0Bnb256YS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "0ay3cfysw23y5pdhm7mhjihcwwmpcj4d0rridsvfxxxnzrq1c9df", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubWF4aW1pemUgdGhlIGN1cnJlbnQgd2luZG93IG9uIGRvdWJsZSBjbGljayBvbiB0aGUgdG9wIHBhbmVsLiBZb3UgY2FuIGFsc28gbWF4aW1pemUgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGggbWlkZGxlIGFuZCByaWdodCBjbGljay4iLAogICJuYW1lIjogIlVubWF4aW1pemUgRG91YmxlIENsaWNrIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3VubWF4aW1pemUtZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ1bm1heGltaXplX2RvdWJsZV9jbGlja0Bnb256YS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "0ay3cfysw23y5pdhm7mhjihcwwmpcj4d0rridsvfxxxnzrq1c9df", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubWF4aW1pemUgdGhlIGN1cnJlbnQgd2luZG93IG9uIGRvdWJsZSBjbGljayBvbiB0aGUgdG9wIHBhbmVsLiBZb3UgY2FuIGFsc28gbWF4aW1pemUgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGggbWlkZGxlIGFuZCByaWdodCBjbGljay4iLAogICJuYW1lIjogIlVubWF4aW1pemUgRG91YmxlIENsaWNrIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3VubWF4aW1pemUtZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ1bm1heGltaXplX2RvdWJsZV9jbGlja0Bnb256YS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "42": {"version": "6", "sha256": "0ay3cfysw23y5pdhm7mhjihcwwmpcj4d0rridsvfxxxnzrq1c9df", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubWF4aW1pemUgdGhlIGN1cnJlbnQgd2luZG93IG9uIGRvdWJsZSBjbGljayBvbiB0aGUgdG9wIHBhbmVsLiBZb3UgY2FuIGFsc28gbWF4aW1pemUgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGggbWlkZGxlIGFuZCByaWdodCBjbGljay4iLAogICJuYW1lIjogIlVubWF4aW1pemUgRG91YmxlIENsaWNrIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3VubWF4aW1pemUtZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ1bm1heGltaXplX2RvdWJsZV9jbGlja0Bnb256YS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "unity-like-appswitcher@gonza.com", "name": "Unity-like App Switcher", "pname": "unity-like-app-switcher", "description": "A bigger and more colourfull AppSwitcher", "link": "https://extensions.gnome.org/extension/3231/unity-like-app-switcher/", "shell_version_map": {"38": {"version": "13", "sha256": "1f0izmzksy1vf4kaa8gwzz3pkjxihg2mzswn8mw50cybq5p596gi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmlnZ2VyIGFuZCBtb3JlIGNvbG91cmZ1bGwgQXBwU3dpdGNoZXIiLAogICJuYW1lIjogIlVuaXR5LWxpa2UgQXBwIFN3aXRjaGVyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJnb256YSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0eS13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb256YWFyY3IvdW5pdHktbGlrZS1zd2l0Y2hlci1nbm9tZS1leHQiLAogICJ1dWlkIjogInVuaXR5LWxpa2UtYXBwc3dpdGNoZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}, "40": {"version": "13", "sha256": "1f0izmzksy1vf4kaa8gwzz3pkjxihg2mzswn8mw50cybq5p596gi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmlnZ2VyIGFuZCBtb3JlIGNvbG91cmZ1bGwgQXBwU3dpdGNoZXIiLAogICJuYW1lIjogIlVuaXR5LWxpa2UgQXBwIFN3aXRjaGVyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJnb256YSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0eS13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb256YWFyY3IvdW5pdHktbGlrZS1zd2l0Y2hlci1nbm9tZS1leHQiLAogICJ1dWlkIjogInVuaXR5LWxpa2UtYXBwc3dpdGNoZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}, "41": {"version": "13", "sha256": "1f0izmzksy1vf4kaa8gwzz3pkjxihg2mzswn8mw50cybq5p596gi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmlnZ2VyIGFuZCBtb3JlIGNvbG91cmZ1bGwgQXBwU3dpdGNoZXIiLAogICJuYW1lIjogIlVuaXR5LWxpa2UgQXBwIFN3aXRjaGVyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJnb256YSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0eS13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb256YWFyY3IvdW5pdHktbGlrZS1zd2l0Y2hlci1nbm9tZS1leHQiLAogICJ1dWlkIjogInVuaXR5LWxpa2UtYXBwc3dpdGNoZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}, "42": {"version": "13", "sha256": "1f0izmzksy1vf4kaa8gwzz3pkjxihg2mzswn8mw50cybq5p596gi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmlnZ2VyIGFuZCBtb3JlIGNvbG91cmZ1bGwgQXBwU3dpdGNoZXIiLAogICJuYW1lIjogIlVuaXR5LWxpa2UgQXBwIFN3aXRjaGVyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJnb256YSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0eS13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb256YWFyY3IvdW5pdHktbGlrZS1zd2l0Y2hlci1nbm9tZS1leHQiLAogICJ1dWlkIjogInVuaXR5LWxpa2UtYXBwc3dpdGNoZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
-, {"uuid": "add-to-desktop@tommimon.github.com", "name": "Add to Desktop", "pname": "add-to-desktop", "description": "An easy way to create desktop app shortcut in gnome", "link": "https://extensions.gnome.org/extension/3240/add-to-desktop/", "shell_version_map": {"38": {"version": "5", "sha256": "0kchr5daz3s4q18s6aphfyb50wglmlgmjnh3i9ka6d219r0srh64", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgIm5hbWUiOiAiQWRkIHRvIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmJldGEiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tbWltb24vYWRkLXRvLWRlc2t0b3AiLAogICJ1dWlkIjogImFkZC10by1kZXNrdG9wQHRvbW1pbW9uLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "0kchr5daz3s4q18s6aphfyb50wglmlgmjnh3i9ka6d219r0srh64", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgIm5hbWUiOiAiQWRkIHRvIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmJldGEiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tbWltb24vYWRkLXRvLWRlc2t0b3AiLAogICJ1dWlkIjogImFkZC10by1kZXNrdG9wQHRvbW1pbW9uLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "6", "sha256": "04vk49629c9fhvix04h8r3mbnqyncvyzdkbm7bh3wyjhghnczbps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgIm5hbWUiOiAiQWRkIHRvIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tbWltb24vYWRkLXRvLWRlc2t0b3AiLAogICJ1dWlkIjogImFkZC10by1kZXNrdG9wQHRvbW1pbW9uLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "add-to-desktop@tommimon.github.com", "name": "Add to Desktop", "pname": "add-to-desktop", "description": "An easy way to create desktop app shortcut in gnome", "link": "https://extensions.gnome.org/extension/3240/add-to-desktop/", "shell_version_map": {"38": {"version": "5", "sha256": "0kchr5daz3s4q18s6aphfyb50wglmlgmjnh3i9ka6d219r0srh64", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgIm5hbWUiOiAiQWRkIHRvIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmJldGEiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tbWltb24vYWRkLXRvLWRlc2t0b3AiLAogICJ1dWlkIjogImFkZC10by1kZXNrdG9wQHRvbW1pbW9uLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "0kchr5daz3s4q18s6aphfyb50wglmlgmjnh3i9ka6d219r0srh64", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgIm5hbWUiOiAiQWRkIHRvIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmJldGEiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tbWltb24vYWRkLXRvLWRlc2t0b3AiLAogICJ1dWlkIjogImFkZC10by1kZXNrdG9wQHRvbW1pbW9uLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "6", "sha256": "04vk49629c9fhvix04h8r3mbnqyncvyzdkbm7bh3wyjhghnczbps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgIm5hbWUiOiAiQWRkIHRvIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tbWltb24vYWRkLXRvLWRlc2t0b3AiLAogICJ1dWlkIjogImFkZC10by1kZXNrdG9wQHRvbW1pbW9uLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "42": {"version": "7", "sha256": "1ljj2d2fl6pa8dikvgqlc569x2nq2vlj4v7r18wf6jxsqlcpx36l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgIm5hbWUiOiAiQWRkIHRvIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tbWltb24vYWRkLXRvLWRlc2t0b3AiLAogICJ1dWlkIjogImFkZC10by1kZXNrdG9wQHRvbW1pbW9uLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}}}
 , {"uuid": "wifi-power-management-toggle@rthery", "name": "Wi-Fi Power Management Toggle", "pname": "wi-fi-power-management-toggle", "description": "Add a toggle to limit Wi-Fi power consumption (when supported by the card) in Gnome System Menu.", "link": "https://extensions.gnome.org/extension/3258/wi-fi-power-management-toggle/", "shell_version_map": {"38": {"version": "2", "sha256": "009r1pswkmisfw0zghk2cawx4qw6av5yldbnw7fcla13qpyj90zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBsaW1pdCBXaS1GaSBwb3dlciBjb25zdW1wdGlvbiAod2hlbiBzdXBwb3J0ZWQgYnkgdGhlIGNhcmQpIGluIEdub21lIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiV2ktRmkgUG93ZXIgTWFuYWdlbWVudCBUb2dnbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3J0aGVyeS9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaS1wb3dlci1tYW5hZ2VtZW50LXRvZ2dsZSIsCiAgInV1aWQiOiAid2lmaS1wb3dlci1tYW5hZ2VtZW50LXRvZ2dsZUBydGhlcnkiLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "2", "sha256": "009r1pswkmisfw0zghk2cawx4qw6av5yldbnw7fcla13qpyj90zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBsaW1pdCBXaS1GaSBwb3dlciBjb25zdW1wdGlvbiAod2hlbiBzdXBwb3J0ZWQgYnkgdGhlIGNhcmQpIGluIEdub21lIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiV2ktRmkgUG93ZXIgTWFuYWdlbWVudCBUb2dnbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3J0aGVyeS9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaS1wb3dlci1tYW5hZ2VtZW50LXRvZ2dsZSIsCiAgInV1aWQiOiAid2lmaS1wb3dlci1tYW5hZ2VtZW50LXRvZ2dsZUBydGhlcnkiLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "009r1pswkmisfw0zghk2cawx4qw6av5yldbnw7fcla13qpyj90zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBsaW1pdCBXaS1GaSBwb3dlciBjb25zdW1wdGlvbiAod2hlbiBzdXBwb3J0ZWQgYnkgdGhlIGNhcmQpIGluIEdub21lIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiV2ktRmkgUG93ZXIgTWFuYWdlbWVudCBUb2dnbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3J0aGVyeS9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaS1wb3dlci1tYW5hZ2VtZW50LXRvZ2dsZSIsCiAgInV1aWQiOiAid2lmaS1wb3dlci1tYW5hZ2VtZW50LXRvZ2dsZUBydGhlcnkiLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "touchpad_window_switcher@gonza.com", "name": "Touchpad Window Switcher", "pname": "tocuhpad-window-switcher", "description": "3 fingers window switcher. To make it work on Xorg check the service on github.\n\nUp - down: toggle between overview and show desktop (Needs Super+D shorcut to be set on Xorg. Set it with `gsettings set org.gnome.desktop.wm.keybindings show-desktop '<Super>d'`).\n\nYou can also change windows by going to the overview (up) and moving to the left and right, and choosing the window with down. The overview is modified so it’s shown in chronological order.\n", "link": "https://extensions.gnome.org/extension/3294/tocuhpad-window-switcher/", "shell_version_map": {"38": {"version": "8", "sha256": "1x016p30z0pci3qlhpmfqrsgy0vwcfxqladny66ppbb32qisbkac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIjMgZmluZ2VycyB3aW5kb3cgc3dpdGNoZXIuIFRvIG1ha2UgaXQgd29yayBvbiBYb3JnIGNoZWNrIHRoZSBzZXJ2aWNlIG9uIGdpdGh1Yi5cblxuVXAgLSBkb3duOiB0b2dnbGUgYmV0d2VlbiBvdmVydmlldyBhbmQgc2hvdyBkZXNrdG9wIChOZWVkcyBTdXBlcitEIHNob3JjdXQgdG8gYmUgc2V0IG9uIFhvcmcuIFNldCBpdCB3aXRoIGBnc2V0dGluZ3Mgc2V0IG9yZy5nbm9tZS5kZXNrdG9wLndtLmtleWJpbmRpbmdzIHNob3ctZGVza3RvcCAnPFN1cGVyPmQnYCkuXG5cbllvdSBjYW4gYWxzbyBjaGFuZ2Ugd2luZG93cyBieSBnb2luZyB0byB0aGUgb3ZlcnZpZXcgKHVwKSBhbmQgbW92aW5nIHRvIHRoZSBsZWZ0IGFuZCByaWdodCwgYW5kIGNob29zaW5nIHRoZSB3aW5kb3cgd2l0aCBkb3duLiBUaGUgb3ZlcnZpZXcgaXMgbW9kaWZpZWQgc28gaXRcdTIwMTlzIHNob3duIGluIGNocm9ub2xvZ2ljYWwgb3JkZXIuXG4iLAogICJuYW1lIjogIlRvdWNocGFkIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci90b3VjaHBhZC13aW5kb3ctc3dpdGNoZXItZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ0b3VjaHBhZF93aW5kb3dfc3dpdGNoZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "gnome-shell-duckduckgo-search-provider@keithcirkel.co.uk", "name": "DuckDuckGo Search Provider", "pname": "duckduckgo-search-provider", "description": "Add DuckDuckGo search suggestions to Gnome Shell Search", "link": "https://extensions.gnome.org/extension/3306/duckduckgo-search-provider/", "shell_version_map": {"38": {"version": "4", "sha256": "1ydbdm68i38fbaiscmnkz1ywak072ppz93fiqa37fwgr7hsamxg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "1ydbdm68i38fbaiscmnkz1ywak072ppz93fiqa37fwgr7hsamxg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "1ydbdm68i38fbaiscmnkz1ywak072ppz93fiqa37fwgr7hsamxg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiA0Cn0="}, "42": {"version": "4", "sha256": "1ydbdm68i38fbaiscmnkz1ywak072ppz93fiqa37fwgr7hsamxg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiA0Cn0="}}}
 , {"uuid": "translate-indicator@athenstaedt.net", "name": "Translate Indicator", "pname": "translate-indicator", "description": "Translate extension for Gnome-Shell - based on translate-shell, inspired by Tudmotu's clipboard-indicator and gufoe's text-translator", "link": "https://extensions.gnome.org/extension/3318/translate-indicator/", "shell_version_map": {"38": {"version": "3", "sha256": "04c3hjbcbn8y9d94swmc3qiv63sjynn71jnwp08sgqa79nrn4cyg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBleHRlbnNpb24gZm9yIEdub21lLVNoZWxsIC0gYmFzZWQgb24gdHJhbnNsYXRlLXNoZWxsLCBpbnNwaXJlZCBieSBUdWRtb3R1J3MgY2xpcGJvYXJkLWluZGljYXRvciBhbmQgZ3Vmb2UncyB0ZXh0LXRyYW5zbGF0b3IiLAogICJuYW1lIjogIlRyYW5zbGF0ZSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXZlbnV6L2dub21lLXRyYW5zbGF0ZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1pbmRpY2F0b3JAYXRoZW5zdGFlZHQubmV0IiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
-, {"uuid": "material-shell@papyelgringo", "name": "Material Shell", "pname": "material-shell", "description": "A modern desktop interface for Linux - packaged as an extension for GNOME Shell. Improve your user experience and get rid of the anarchy of traditional desktop workflows. Designed to simplify navigation and reduce the need to manipulate windows in order to improve productivity. It's meant to be 100% predictable and bring the benefits of tools coveted by professionals to everyone.", "link": "https://extensions.gnome.org/extension/3357/material-shell/", "shell_version_map": {"38": {"version": "12", "sha256": "1rjybqlgbjmflg21cm7js2gjzvdhw14lpzncpzwf18rh4mp2adnr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwuYmluZGluZ3MiLAogICJkZXNjcmlwdGlvbiI6ICJBIG1vZGVybiBkZXNrdG9wIGludGVyZmFjZSBmb3IgTGludXggLSBwYWNrYWdlZCBhcyBhbiBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBJbXByb3ZlIHlvdXIgdXNlciBleHBlcmllbmNlIGFuZCBnZXQgcmlkIG9mIHRoZSBhbmFyY2h5IG9mIHRyYWRpdGlvbmFsIGRlc2t0b3Agd29ya2Zsb3dzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBuYXZpZ2F0aW9uIGFuZCByZWR1Y2UgdGhlIG5lZWQgdG8gbWFuaXB1bGF0ZSB3aW5kb3dzIGluIG9yZGVyIHRvIGltcHJvdmUgcHJvZHVjdGl2aXR5LiBJdCdzIG1lYW50IHRvIGJlIDEwMCUgcHJlZGljdGFibGUgYW5kIGJyaW5nIHRoZSBiZW5lZml0cyBvZiB0b29scyBjb3ZldGVkIGJ5IHByb2Zlc3Npb25hbHMgdG8gZXZlcnlvbmUuIiwKICAibGF5b3V0cyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLmxheW91dHMiLAogICJuYW1lIjogIk1hdGVyaWFsIFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInRoZW1lIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwudGhlbWUiLAogICJ0d2Vha3MiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWF0ZXJpYWxzaGVsbC50d2Vha3MiLAogICJ1cmwiOiAiaHR0cHM6Ly9tYXRlcmlhbC1zaGVsbC5jb20iLAogICJ1dWlkIjogIm1hdGVyaWFsLXNoZWxsQHBhcHllbGdyaW5nbyIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "18", "sha256": "1qnldrad5kkm2km4qdkwagp8m2x30bq56jzaba01h6j7mgw90ai6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwuYmluZGluZ3MiLAogICJkZXNjcmlwdGlvbiI6ICJBIG1vZGVybiBkZXNrdG9wIGludGVyZmFjZSBmb3IgTGludXggLSBwYWNrYWdlZCBhcyBhbiBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBJbXByb3ZlIHlvdXIgdXNlciBleHBlcmllbmNlIGFuZCBnZXQgcmlkIG9mIHRoZSBhbmFyY2h5IG9mIHRyYWRpdGlvbmFsIGRlc2t0b3Agd29ya2Zsb3dzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBuYXZpZ2F0aW9uIGFuZCByZWR1Y2UgdGhlIG5lZWQgdG8gbWFuaXB1bGF0ZSB3aW5kb3dzIGluIG9yZGVyIHRvIGltcHJvdmUgcHJvZHVjdGl2aXR5LiBJdCdzIG1lYW50IHRvIGJlIDEwMCUgcHJlZGljdGFibGUgYW5kIGJyaW5nIHRoZSBiZW5lZml0cyBvZiB0b29scyBjb3ZldGVkIGJ5IHByb2Zlc3Npb25hbHMgdG8gZXZlcnlvbmUuIiwKICAibGF5b3V0cyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLmxheW91dHMiLAogICJuYW1lIjogIk1hdGVyaWFsIFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidGhlbWUiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWF0ZXJpYWxzaGVsbC50aGVtZSIsCiAgInR3ZWFrcyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLnR3ZWFrcyIsCiAgInVybCI6ICJodHRwczovL21hdGVyaWFsLXNoZWxsLmNvbSIsCiAgInV1aWQiOiAibWF0ZXJpYWwtc2hlbGxAcGFweWVsZ3JpbmdvIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "41": {"version": "18", "sha256": "1qnldrad5kkm2km4qdkwagp8m2x30bq56jzaba01h6j7mgw90ai6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwuYmluZGluZ3MiLAogICJkZXNjcmlwdGlvbiI6ICJBIG1vZGVybiBkZXNrdG9wIGludGVyZmFjZSBmb3IgTGludXggLSBwYWNrYWdlZCBhcyBhbiBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBJbXByb3ZlIHlvdXIgdXNlciBleHBlcmllbmNlIGFuZCBnZXQgcmlkIG9mIHRoZSBhbmFyY2h5IG9mIHRyYWRpdGlvbmFsIGRlc2t0b3Agd29ya2Zsb3dzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBuYXZpZ2F0aW9uIGFuZCByZWR1Y2UgdGhlIG5lZWQgdG8gbWFuaXB1bGF0ZSB3aW5kb3dzIGluIG9yZGVyIHRvIGltcHJvdmUgcHJvZHVjdGl2aXR5LiBJdCdzIG1lYW50IHRvIGJlIDEwMCUgcHJlZGljdGFibGUgYW5kIGJyaW5nIHRoZSBiZW5lZml0cyBvZiB0b29scyBjb3ZldGVkIGJ5IHByb2Zlc3Npb25hbHMgdG8gZXZlcnlvbmUuIiwKICAibGF5b3V0cyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLmxheW91dHMiLAogICJuYW1lIjogIk1hdGVyaWFsIFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidGhlbWUiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWF0ZXJpYWxzaGVsbC50aGVtZSIsCiAgInR3ZWFrcyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLnR3ZWFrcyIsCiAgInVybCI6ICJodHRwczovL21hdGVyaWFsLXNoZWxsLmNvbSIsCiAgInV1aWQiOiAibWF0ZXJpYWwtc2hlbGxAcGFweWVsZ3JpbmdvIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
+, {"uuid": "material-shell@papyelgringo", "name": "Material Shell", "pname": "material-shell", "description": "A modern desktop interface for Linux - packaged as an extension for GNOME Shell. Improve your user experience and get rid of the anarchy of traditional desktop workflows. Designed to simplify navigation and reduce the need to manipulate windows in order to improve productivity. It's meant to be 100% predictable and bring the benefits of tools coveted by professionals to everyone.", "link": "https://extensions.gnome.org/extension/3357/material-shell/", "shell_version_map": {"38": {"version": "12", "sha256": "1rjybqlgbjmflg21cm7js2gjzvdhw14lpzncpzwf18rh4mp2adnr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwuYmluZGluZ3MiLAogICJkZXNjcmlwdGlvbiI6ICJBIG1vZGVybiBkZXNrdG9wIGludGVyZmFjZSBmb3IgTGludXggLSBwYWNrYWdlZCBhcyBhbiBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBJbXByb3ZlIHlvdXIgdXNlciBleHBlcmllbmNlIGFuZCBnZXQgcmlkIG9mIHRoZSBhbmFyY2h5IG9mIHRyYWRpdGlvbmFsIGRlc2t0b3Agd29ya2Zsb3dzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBuYXZpZ2F0aW9uIGFuZCByZWR1Y2UgdGhlIG5lZWQgdG8gbWFuaXB1bGF0ZSB3aW5kb3dzIGluIG9yZGVyIHRvIGltcHJvdmUgcHJvZHVjdGl2aXR5LiBJdCdzIG1lYW50IHRvIGJlIDEwMCUgcHJlZGljdGFibGUgYW5kIGJyaW5nIHRoZSBiZW5lZml0cyBvZiB0b29scyBjb3ZldGVkIGJ5IHByb2Zlc3Npb25hbHMgdG8gZXZlcnlvbmUuIiwKICAibGF5b3V0cyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLmxheW91dHMiLAogICJuYW1lIjogIk1hdGVyaWFsIFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInRoZW1lIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwudGhlbWUiLAogICJ0d2Vha3MiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWF0ZXJpYWxzaGVsbC50d2Vha3MiLAogICJ1cmwiOiAiaHR0cHM6Ly9tYXRlcmlhbC1zaGVsbC5jb20iLAogICJ1dWlkIjogIm1hdGVyaWFsLXNoZWxsQHBhcHllbGdyaW5nbyIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "21", "sha256": "03xdlladyph3ash9dq3zwvhrs3r2khqc4c7ckrwnr2apz1339b6m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwuYmluZGluZ3MiLAogICJkZXNjcmlwdGlvbiI6ICJBIG1vZGVybiBkZXNrdG9wIGludGVyZmFjZSBmb3IgTGludXggLSBwYWNrYWdlZCBhcyBhbiBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBJbXByb3ZlIHlvdXIgdXNlciBleHBlcmllbmNlIGFuZCBnZXQgcmlkIG9mIHRoZSBhbmFyY2h5IG9mIHRyYWRpdGlvbmFsIGRlc2t0b3Agd29ya2Zsb3dzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBuYXZpZ2F0aW9uIGFuZCByZWR1Y2UgdGhlIG5lZWQgdG8gbWFuaXB1bGF0ZSB3aW5kb3dzIGluIG9yZGVyIHRvIGltcHJvdmUgcHJvZHVjdGl2aXR5LiBJdCdzIG1lYW50IHRvIGJlIDEwMCUgcHJlZGljdGFibGUgYW5kIGJyaW5nIHRoZSBiZW5lZml0cyBvZiB0b29scyBjb3ZldGVkIGJ5IHByb2Zlc3Npb25hbHMgdG8gZXZlcnlvbmUuIiwKICAibGF5b3V0cyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLmxheW91dHMiLAogICJuYW1lIjogIk1hdGVyaWFsIFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInRoZW1lIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwudGhlbWUiLAogICJ0d2Vha3MiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWF0ZXJpYWxzaGVsbC50d2Vha3MiLAogICJ1cmwiOiAiaHR0cHM6Ly9tYXRlcmlhbC1zaGVsbC5jb20iLAogICJ1dWlkIjogIm1hdGVyaWFsLXNoZWxsQHBhcHllbGdyaW5nbyIsCiAgInZlcnNpb24iOiAyMQp9"}, "41": {"version": "21", "sha256": "03xdlladyph3ash9dq3zwvhrs3r2khqc4c7ckrwnr2apz1339b6m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwuYmluZGluZ3MiLAogICJkZXNjcmlwdGlvbiI6ICJBIG1vZGVybiBkZXNrdG9wIGludGVyZmFjZSBmb3IgTGludXggLSBwYWNrYWdlZCBhcyBhbiBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBJbXByb3ZlIHlvdXIgdXNlciBleHBlcmllbmNlIGFuZCBnZXQgcmlkIG9mIHRoZSBhbmFyY2h5IG9mIHRyYWRpdGlvbmFsIGRlc2t0b3Agd29ya2Zsb3dzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBuYXZpZ2F0aW9uIGFuZCByZWR1Y2UgdGhlIG5lZWQgdG8gbWFuaXB1bGF0ZSB3aW5kb3dzIGluIG9yZGVyIHRvIGltcHJvdmUgcHJvZHVjdGl2aXR5LiBJdCdzIG1lYW50IHRvIGJlIDEwMCUgcHJlZGljdGFibGUgYW5kIGJyaW5nIHRoZSBiZW5lZml0cyBvZiB0b29scyBjb3ZldGVkIGJ5IHByb2Zlc3Npb25hbHMgdG8gZXZlcnlvbmUuIiwKICAibGF5b3V0cyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLmxheW91dHMiLAogICJuYW1lIjogIk1hdGVyaWFsIFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInRoZW1lIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwudGhlbWUiLAogICJ0d2Vha3MiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWF0ZXJpYWxzaGVsbC50d2Vha3MiLAogICJ1cmwiOiAiaHR0cHM6Ly9tYXRlcmlhbC1zaGVsbC5jb20iLAogICJ1dWlkIjogIm1hdGVyaWFsLXNoZWxsQHBhcHllbGdyaW5nbyIsCiAgInZlcnNpb24iOiAyMQp9"}, "42": {"version": "21", "sha256": "03xdlladyph3ash9dq3zwvhrs3r2khqc4c7ckrwnr2apz1339b6m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwuYmluZGluZ3MiLAogICJkZXNjcmlwdGlvbiI6ICJBIG1vZGVybiBkZXNrdG9wIGludGVyZmFjZSBmb3IgTGludXggLSBwYWNrYWdlZCBhcyBhbiBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBJbXByb3ZlIHlvdXIgdXNlciBleHBlcmllbmNlIGFuZCBnZXQgcmlkIG9mIHRoZSBhbmFyY2h5IG9mIHRyYWRpdGlvbmFsIGRlc2t0b3Agd29ya2Zsb3dzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBuYXZpZ2F0aW9uIGFuZCByZWR1Y2UgdGhlIG5lZWQgdG8gbWFuaXB1bGF0ZSB3aW5kb3dzIGluIG9yZGVyIHRvIGltcHJvdmUgcHJvZHVjdGl2aXR5LiBJdCdzIG1lYW50IHRvIGJlIDEwMCUgcHJlZGljdGFibGUgYW5kIGJyaW5nIHRoZSBiZW5lZml0cyBvZiB0b29scyBjb3ZldGVkIGJ5IHByb2Zlc3Npb25hbHMgdG8gZXZlcnlvbmUuIiwKICAibGF5b3V0cyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLmxheW91dHMiLAogICJuYW1lIjogIk1hdGVyaWFsIFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInRoZW1lIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwudGhlbWUiLAogICJ0d2Vha3MiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWF0ZXJpYWxzaGVsbC50d2Vha3MiLAogICJ1cmwiOiAiaHR0cHM6Ly9tYXRlcmlhbC1zaGVsbC5jb20iLAogICJ1dWlkIjogIm1hdGVyaWFsLXNoZWxsQHBhcHllbGdyaW5nbyIsCiAgInZlcnNpb24iOiAyMQp9"}}}
 , {"uuid": "proxyprofiles@massamany.github.com", "name": "Proxy Profiles", "pname": "proxy-profiles", "description": "Swich easily between several proxy profiles.", "link": "https://extensions.gnome.org/extension/3379/proxy-profiles/", "shell_version_map": {"38": {"version": "5", "sha256": "1b2mabrvpkadxc6v5fczamh2hqh7va2990k10awxy18c0vm3p5kw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aWNoIGVhc2lseSBiZXR3ZWVuIHNldmVyYWwgcHJveHkgcHJvZmlsZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJveHlwcm9maWxlcyIsCiAgIm5hbWUiOiAiUHJveHkgUHJvZmlsZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFzc2FtYW55L3Byb3h5cHJvZmlsZXMiLAogICJ1dWlkIjogInByb3h5cHJvZmlsZXNAbWFzc2FtYW55LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "1b2mabrvpkadxc6v5fczamh2hqh7va2990k10awxy18c0vm3p5kw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aWNoIGVhc2lseSBiZXR3ZWVuIHNldmVyYWwgcHJveHkgcHJvZmlsZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJveHlwcm9maWxlcyIsCiAgIm5hbWUiOiAiUHJveHkgUHJvZmlsZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFzc2FtYW55L3Byb3h5cHJvZmlsZXMiLAogICJ1dWlkIjogInByb3h5cHJvZmlsZXNAbWFzc2FtYW55LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "galaxy-buds-battery@pemmoura", "name": "Galaxy Buds Battery", "pname": "galaxy-buds-battery", "description": "Galaxy Buds battery indicator.", "link": "https://extensions.gnome.org/extension/3383/galaxy-buds-battery/", "shell_version_map": {"38": {"version": "6", "sha256": "1f25mc5idqaw3v9b2xffiij9y0pcrl8msz85p8cz2x5l2r3sc7wm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdhbGF4eSBCdWRzIGJhdHRlcnkgaW5kaWNhdG9yLiIsCiAgIm5hbWUiOiAiR2FsYXh5IEJ1ZHMgQmF0dGVyeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BlbW1vdXJhL2dhbGF4eWJ1ZHMtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnYWxheHktYnVkcy1iYXR0ZXJ5QHBlbW1vdXJhIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "color-picker@tuberry", "name": "Color Picker", "pname": "color-picker", "description": "Simple color picker for gnome shell\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3396/color-picker/", "shell_version_map": {"38": {"version": "20", "sha256": "1ss4r8dpa7smxbyz41rw3wl1gy20bvy89xdvwfz6zfhv3db5vl86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yLXBpY2tlciIsCiAgIm5hbWUiOiAiQ29sb3IgUGlja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yLXBpY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvY29sb3ItcGlja2VyIiwKICAidXVpZCI6ICJjb2xvci1waWNrZXJAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "25", "sha256": "0lx4bs7yfqkphb5cwmakl6xjf14q89m0yn70a882drakfhzgnagw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yLXBpY2tlciIsCiAgIm5hbWUiOiAiQ29sb3IgUGlja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yLXBpY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2NvbG9yLXBpY2tlciIsCiAgInV1aWQiOiAiY29sb3ItcGlja2VyQHR1YmVycnkiLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "41": {"version": "27", "sha256": "1scc0cgdzrg9rmpr090myrsxhfgp03aqld9jh4grqbfza6lrz4jd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDI3Cn0="}, "42": {"version": "29", "sha256": "1hkjym4nkx3d984bm2j7lppg9k837vbm50wb65z1rjnm872r4vk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDI5Cn0="}}}
@@ -340,7 +340,7 @@
 , {"uuid": "ascii_emoji_buckets@HarshKhandeparkar", "name": "ASCII Emoji Buckets", "pname": "ascii-emoji-buckets", "description": "Buckets of ASCII emojis for your messaging pleasure. A fork of Emoji Buckets.", "link": "https://extensions.gnome.org/extension/3408/ascii-emoji-buckets/", "shell_version_map": {"38": {"version": "9", "sha256": "1srqsjzcywywlhapaca41v4pc99w503m5532g6cc6qwz9f2r4w5h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1Y2tldHMgb2YgQVNDSUkgZW1vamlzIGZvciB5b3VyIG1lc3NhZ2luZyBwbGVhc3VyZS4gQSBmb3JrIG9mIEVtb2ppIEJ1Y2tldHMuIiwKICAibmFtZSI6ICJBU0NJSSBFbW9qaSBCdWNrZXRzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFzY2lpLWVtb2ppLWJ1Y2tldHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjMuMzguMSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0hhcnNoS2hhbmRlcGFya2FyL2dub21lLWFzY2lpLWVtb2ppLWJ1Y2tldHMiLAogICJ1dWlkIjogImFzY2lpX2Vtb2ppX2J1Y2tldHNASGFyc2hLaGFuZGVwYXJrYXIiLAogICJ2ZXJzaW9uIjogOQp9"}}}
 , {"uuid": "user-stylesheet@tomaszgasior.pl", "name": "User style sheet & font", "pname": "user-stylesheet-font", "description": "Load custom style sheet from ~/.config/gnome-shell/gnome-shell.css. Use GTK font family and font size from GNOME Tweaks in GNOME Shell.", "link": "https://extensions.gnome.org/extension/3414/user-stylesheet-font/", "shell_version_map": {"38": {"version": "4", "sha256": "1ibmhj1ixw063r7p8fwnanf4k21k8vxmll78ydqia5gdwkv79i8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgY3VzdG9tIHN0eWxlIHNoZWV0IGZyb20gfi8uY29uZmlnL2dub21lLXNoZWxsL2dub21lLXNoZWxsLmNzcy4gVXNlIEdUSyBmb250IGZhbWlseSBhbmQgZm9udCBzaXplIGZyb20gR05PTUUgVHdlYWtzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiVXNlciBzdHlsZSBzaGVldCAmIGZvbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1RvbWFzekdhc2lvci9nbm9tZS1zaGVsbC11c2VyLXN0eWxlc2hlZXQtYW5kLWZvbnQiLAogICJ1dWlkIjogInVzZXItc3R5bGVzaGVldEB0b21hc3pnYXNpb3IucGwiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "1ibmhj1ixw063r7p8fwnanf4k21k8vxmll78ydqia5gdwkv79i8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgY3VzdG9tIHN0eWxlIHNoZWV0IGZyb20gfi8uY29uZmlnL2dub21lLXNoZWxsL2dub21lLXNoZWxsLmNzcy4gVXNlIEdUSyBmb250IGZhbWlseSBhbmQgZm9udCBzaXplIGZyb20gR05PTUUgVHdlYWtzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiVXNlciBzdHlsZSBzaGVldCAmIGZvbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1RvbWFzekdhc2lvci9nbm9tZS1zaGVsbC11c2VyLXN0eWxlc2hlZXQtYW5kLWZvbnQiLAogICJ1dWlkIjogInVzZXItc3R5bGVzaGVldEB0b21hc3pnYXNpb3IucGwiLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "1ibmhj1ixw063r7p8fwnanf4k21k8vxmll78ydqia5gdwkv79i8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgY3VzdG9tIHN0eWxlIHNoZWV0IGZyb20gfi8uY29uZmlnL2dub21lLXNoZWxsL2dub21lLXNoZWxsLmNzcy4gVXNlIEdUSyBmb250IGZhbWlseSBhbmQgZm9udCBzaXplIGZyb20gR05PTUUgVHdlYWtzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiVXNlciBzdHlsZSBzaGVldCAmIGZvbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1RvbWFzekdhc2lvci9nbm9tZS1zaGVsbC11c2VyLXN0eWxlc2hlZXQtYW5kLWZvbnQiLAogICJ1dWlkIjogInVzZXItc3R5bGVzaGVldEB0b21hc3pnYXNpb3IucGwiLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "wg-indicator@dpf12110.gmail.com", "name": "WG Indicator", "pname": "wg-indicator", "description": "A status indicator for Wireguard connections.", "link": "https://extensions.gnome.org/extension/3418/wg-indicator/", "shell_version_map": {"40": {"version": "13", "sha256": "126n9gbvh1yshbvx74af01f7jyrjr4p0299x9ki171d1f40djrvs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIGluZGljYXRvciBmb3IgV2lyZWd1YXJkIGNvbm5lY3Rpb25zLiIsCiAgIm5hbWUiOiAiV0cgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyLjEiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N5bmMxMjExL3dnLWluZGljYXRvciIsCiAgInV1aWQiOiAid2ctaW5kaWNhdG9yQGRwZjEyMTEwLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "126n9gbvh1yshbvx74af01f7jyrjr4p0299x9ki171d1f40djrvs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIGluZGljYXRvciBmb3IgV2lyZWd1YXJkIGNvbm5lY3Rpb25zLiIsCiAgIm5hbWUiOiAiV0cgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyLjEiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N5bmMxMjExL3dnLWluZGljYXRvciIsCiAgInV1aWQiOiAid2ctaW5kaWNhdG9yQGRwZjEyMTEwLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
-, {"uuid": "flypie@schneegans.github.com", "name": "Fly-Pie", "pname": "fly-pie", "description": "A marking menu which can be used to launch applications, simulate hotkeys, open URLs and much more.", "link": "https://extensions.gnome.org/extension/3433/fly-pie/", "shell_version_map": {"38": {"version": "15", "sha256": "0qk7bxzwxpznjd0prrffisywikvcadgb7dc1kv52clzcm9r7yawc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0ZseS1QaWUiLAogICJ1dWlkIjogImZseXBpZUBzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "15", "sha256": "0qk7bxzwxpznjd0prrffisywikvcadgb7dc1kv52clzcm9r7yawc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0ZseS1QaWUiLAogICJ1dWlkIjogImZseXBpZUBzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "15", "sha256": "0qk7bxzwxpznjd0prrffisywikvcadgb7dc1kv52clzcm9r7yawc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0ZseS1QaWUiLAogICJ1dWlkIjogImZseXBpZUBzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "42": {"version": "15", "sha256": "0qk7bxzwxpznjd0prrffisywikvcadgb7dc1kv52clzcm9r7yawc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0ZseS1QaWUiLAogICJ1dWlkIjogImZseXBpZUBzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
+, {"uuid": "flypie@schneegans.github.com", "name": "Fly-Pie", "pname": "fly-pie", "description": "A marking menu which can be used to launch applications, simulate hotkeys, open URLs and much more.", "link": "https://extensions.gnome.org/extension/3433/fly-pie/", "shell_version_map": {"38": {"version": "16", "sha256": "0bawjcr5zcp7h96085mn5gf0nz5blvfb6j6rfykn3fasfdwc8qv2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0ZseS1QaWUiLAogICJ1dWlkIjogImZseXBpZUBzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "40": {"version": "16", "sha256": "0bawjcr5zcp7h96085mn5gf0nz5blvfb6j6rfykn3fasfdwc8qv2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0ZseS1QaWUiLAogICJ1dWlkIjogImZseXBpZUBzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "41": {"version": "16", "sha256": "0bawjcr5zcp7h96085mn5gf0nz5blvfb6j6rfykn3fasfdwc8qv2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0ZseS1QaWUiLAogICJ1dWlkIjogImZseXBpZUBzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "42": {"version": "16", "sha256": "0bawjcr5zcp7h96085mn5gf0nz5blvfb6j6rfykn3fasfdwc8qv2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0ZseS1QaWUiLAogICJ1dWlkIjogImZseXBpZUBzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}}}
 , {"uuid": "jiggle@jeffchannell.com", "name": "Jiggle", "pname": "jiggle", "description": "Jiggle is a Gnome Shell extension that highlights the cursor position when the mouse is moved rapidly.", "link": "https://extensions.gnome.org/extension/3438/jiggle/", "shell_version_map": {"38": {"version": "8", "sha256": "0f5zwvcqz648sn11nl49r0ki6zy5c2hp4imgba0dlc02fags7pxz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkppZ2dsZSBpcyBhIEdub21lIFNoZWxsIGV4dGVuc2lvbiB0aGF0IGhpZ2hsaWdodHMgdGhlIGN1cnNvciBwb3NpdGlvbiB3aGVuIHRoZSBtb3VzZSBpcyBtb3ZlZCByYXBpZGx5LiIsCiAgIm5hbWUiOiAiSmlnZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2LjMiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plZmZjaGFubmVsbC9qaWdnbGUiLAogICJ1dWlkIjogImppZ2dsZUBqZWZmY2hhbm5lbGwuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0f5zwvcqz648sn11nl49r0ki6zy5c2hp4imgba0dlc02fags7pxz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkppZ2dsZSBpcyBhIEdub21lIFNoZWxsIGV4dGVuc2lvbiB0aGF0IGhpZ2hsaWdodHMgdGhlIGN1cnNvciBwb3NpdGlvbiB3aGVuIHRoZSBtb3VzZSBpcyBtb3ZlZCByYXBpZGx5LiIsCiAgIm5hbWUiOiAiSmlnZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2LjMiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plZmZjaGFubmVsbC9qaWdnbGUiLAogICJ1dWlkIjogImppZ2dsZUBqZWZmY2hhbm5lbGwuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "showtime-horizontal@xenlism.github.io", "name": "Showtime Horizontal - Desktop Widget", "pname": "showtime-horizontal", "description": "Horizontal Style Date &amp; Clock Widget base on Budgie Desktop Widget", "link": "https://extensions.gnome.org/extension/3442/showtime-horizontal/", "shell_version_map": {"38": {"version": "5", "sha256": "1rdf1alxfyi29wnz2bzm20j9k5q8sn3a6d4si841cjbhmvqdcqhj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvcml6b250YWwgU3R5bGUgRGF0ZSAmYW1wOyBDbG9jayBXaWRnZXQgYmFzZSBvbiBCdWRnaWUgRGVza3RvcCBXaWRnZXQiLAogICJleHRlbnNpb24taWQiOiAic2hvd3RpbWUtaG9yaXpvbnRhbCIsCiAgIm5hbWUiOiAiU2hvd3RpbWUgSG9yaXpvbnRhbCAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lLWhvcml6b250YWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS94ZW5saXNtL3Nob3d0aW1lIiwKICAidXVpZCI6ICJzaG93dGltZS1ob3Jpem9udGFsQHhlbmxpc20uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "6", "sha256": "1zy7lkkmcjxkc30hys98s0xlmi93cyc6jz6qx7zfv1v7w03iw3ld", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvcml6b250YWwgU3R5bGUgRGF0ZSAmYW1wOyBDbG9jayBXaWRnZXQgYmFzZSBvbiBCdWRnaWUgRGVza3RvcCBXaWRnZXQiLAogICJleHRlbnNpb24taWQiOiAic2hvd3RpbWUtaG9yaXpvbnRhbCIsCiAgIm5hbWUiOiAiU2hvd3RpbWUgSG9yaXpvbnRhbCAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lLWhvcml6b250YWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVubGlzbS9zaG93dGltZSIsCiAgInV1aWQiOiAic2hvd3RpbWUtaG9yaXpvbnRhbEB4ZW5saXNtLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"uuid": "display-switcher@iyadk.com", "name": "Display Switcher 2", "pname": "display-switcher", "description": "This extension allows you to toggle between display modes quickly using Super + I.  You can switch between Extended, Primary, Clone, and Secondary Only modes quickly.  Selecting Extended mode multiple times will flip your secondary monitor's relative position to the primary (to the left or right of it).  This extension was originally developed by Lucas Diedrich - https://extensions.gnome.org/extension/1030/display-switcher/ and has been adapted to support Gnome Shell's v3.36.", "link": "https://extensions.gnome.org/extension/3459/display-switcher/", "shell_version_map": {"38": {"version": "2", "sha256": "13vb68xfmcx525yk2vgfny6xvi06nzv103an5zab90hvmj6ggzlj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyB5b3UgdG8gdG9nZ2xlIGJldHdlZW4gZGlzcGxheSBtb2RlcyBxdWlja2x5IHVzaW5nIFN1cGVyICsgSS4gIFlvdSBjYW4gc3dpdGNoIGJldHdlZW4gRXh0ZW5kZWQsIFByaW1hcnksIENsb25lLCBhbmQgU2Vjb25kYXJ5IE9ubHkgbW9kZXMgcXVpY2tseS4gIFNlbGVjdGluZyBFeHRlbmRlZCBtb2RlIG11bHRpcGxlIHRpbWVzIHdpbGwgZmxpcCB5b3VyIHNlY29uZGFyeSBtb25pdG9yJ3MgcmVsYXRpdmUgcG9zaXRpb24gdG8gdGhlIHByaW1hcnkgKHRvIHRoZSBsZWZ0IG9yIHJpZ2h0IG9mIGl0KS4gIFRoaXMgZXh0ZW5zaW9uIHdhcyBvcmlnaW5hbGx5IGRldmVsb3BlZCBieSBMdWNhcyBEaWVkcmljaCAtIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEwMzAvZGlzcGxheS1zd2l0Y2hlci8gYW5kIGhhcyBiZWVuIGFkYXB0ZWQgdG8gc3VwcG9ydCBHbm9tZSBTaGVsbCdzIHYzLjM2LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNwbGF5LXN3aXRjaGVyIiwKICAibmFtZSI6ICJEaXNwbGF5IFN3aXRjaGVyIDIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiTHVjYXMgRGllZHJpY2giLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGlzcGxheS1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2l5YWRrYW5kYWxhZnQvZ25vbWUtZGlzcGxheS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiZGlzcGxheS1zd2l0Y2hlckBpeWFkay5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
@@ -355,25 +355,25 @@
 , {"uuid": "gitlab-extension@infinicode.de", "name": "GitLab Extension", "pname": "gitlab-extension", "description": "GitLab extension utilizes the official GitLab API to provide a comfortable overview about your projects, commits & pipelines.\n", "link": "https://extensions.gnome.org/extension/3535/gitlab-extension/", "shell_version_map": {"38": {"version": "4", "sha256": "04hclkbj95alqv9lq5qa5dnf7wb8ssd08q0lzd9wxzw95hiqcvwd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdExhYiBleHRlbnNpb24gdXRpbGl6ZXMgdGhlIG9mZmljaWFsIEdpdExhYiBBUEkgdG8gcHJvdmlkZSBhIGNvbWZvcnRhYmxlIG92ZXJ2aWV3IGFib3V0IHlvdXIgcHJvamVjdHMsIGNvbW1pdHMgJiBwaXBlbGluZXMuXG4iLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIkdpdExhYiBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2luYXRpYy9naXRsYWItZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnaXRsYWItZXh0ZW5zaW9uQGluZmluaWNvZGUuZGUiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "04hclkbj95alqv9lq5qa5dnf7wb8ssd08q0lzd9wxzw95hiqcvwd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdExhYiBleHRlbnNpb24gdXRpbGl6ZXMgdGhlIG9mZmljaWFsIEdpdExhYiBBUEkgdG8gcHJvdmlkZSBhIGNvbWZvcnRhYmxlIG92ZXJ2aWV3IGFib3V0IHlvdXIgcHJvamVjdHMsIGNvbW1pdHMgJiBwaXBlbGluZXMuXG4iLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIkdpdExhYiBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2luYXRpYy9naXRsYWItZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnaXRsYWItZXh0ZW5zaW9uQGluZmluaWNvZGUuZGUiLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "downfall@torculus.github.com", "name": "DownFall", "pname": "downfall", "description": "Moves text of your choice across the screen. Can simulate leaves, snow, fireworks, ufos, and more!", "link": "https://extensions.gnome.org/extension/3539/downfall/", "shell_version_map": {"38": {"version": "19", "sha256": "0dmkjqmn2x7bg7fndq4fdvllhpzd3in39z2ykm1g6f0zyv4gq2i0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIiwKICAibmFtZSI6ICJEb3duRmFsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvcmN1bHVzL0Rvd25GYWxsIiwKICAidXVpZCI6ICJkb3duZmFsbEB0b3JjdWx1cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "40": {"version": "19", "sha256": "0dmkjqmn2x7bg7fndq4fdvllhpzd3in39z2ykm1g6f0zyv4gq2i0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIiwKICAibmFtZSI6ICJEb3duRmFsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvcmN1bHVzL0Rvd25GYWxsIiwKICAidXVpZCI6ICJkb3duZmFsbEB0b3JjdWx1cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "41": {"version": "19", "sha256": "0dmkjqmn2x7bg7fndq4fdvllhpzd3in39z2ykm1g6f0zyv4gq2i0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIiwKICAibmFtZSI6ICJEb3duRmFsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvcmN1bHVzL0Rvd25GYWxsIiwKICAidXVpZCI6ICJkb3duZmFsbEB0b3JjdWx1cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "42": {"version": "19", "sha256": "0dmkjqmn2x7bg7fndq4fdvllhpzd3in39z2ykm1g6f0zyv4gq2i0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIiwKICAibmFtZSI6ICJEb3duRmFsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvcmN1bHVzL0Rvd25GYWxsIiwKICAidXVpZCI6ICJkb3duZmFsbEB0b3JjdWx1cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}}}
 , {"uuid": "time-awareness@gnome-extensions.kapranoff.ru", "name": "Time Awareness", "pname": "time-awareness", "description": "Tracks the time you have been actively using your computer", "link": "https://extensions.gnome.org/extension/3556/time-awareness/", "shell_version_map": {"38": {"version": "7", "sha256": "0a9a7524ddwb2hxf3q5amgbd57fy17m994vj3gbkddk7mp8m06a7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYWNrcyB0aGUgdGltZSB5b3UgaGF2ZSBiZWVuIGFjdGl2ZWx5IHVzaW5nIHlvdXIgY29tcHV0ZXIiLAogICJuYW1lIjogIlRpbWUgQXdhcmVuZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL3NyLmh0L35rYXBwYS9nbm9tZS1zaGVsbC10aW1lLWF3YXJlbmVzcy8iLAogICJ1dWlkIjogInRpbWUtYXdhcmVuZXNzQGdub21lLWV4dGVuc2lvbnMua2FwcmFub2ZmLnJ1IiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "0a9a7524ddwb2hxf3q5amgbd57fy17m994vj3gbkddk7mp8m06a7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYWNrcyB0aGUgdGltZSB5b3UgaGF2ZSBiZWVuIGFjdGl2ZWx5IHVzaW5nIHlvdXIgY29tcHV0ZXIiLAogICJuYW1lIjogIlRpbWUgQXdhcmVuZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL3NyLmh0L35rYXBwYS9nbm9tZS1zaGVsbC10aW1lLWF3YXJlbmVzcy8iLAogICJ1dWlkIjogInRpbWUtYXdhcmVuZXNzQGdub21lLWV4dGVuc2lvbnMua2FwcmFub2ZmLnJ1IiwKICAidmVyc2lvbiI6IDcKfQ=="}, "41": {"version": "7", "sha256": "0a9a7524ddwb2hxf3q5amgbd57fy17m994vj3gbkddk7mp8m06a7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYWNrcyB0aGUgdGltZSB5b3UgaGF2ZSBiZWVuIGFjdGl2ZWx5IHVzaW5nIHlvdXIgY29tcHV0ZXIiLAogICJuYW1lIjogIlRpbWUgQXdhcmVuZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL3NyLmh0L35rYXBwYS9nbm9tZS1zaGVsbC10aW1lLWF3YXJlbmVzcy8iLAogICJ1dWlkIjogInRpbWUtYXdhcmVuZXNzQGdub21lLWV4dGVuc2lvbnMua2FwcmFub2ZmLnJ1IiwKICAidmVyc2lvbiI6IDcKfQ=="}, "42": {"version": "7", "sha256": "0a9a7524ddwb2hxf3q5amgbd57fy17m994vj3gbkddk7mp8m06a7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYWNrcyB0aGUgdGltZSB5b3UgaGF2ZSBiZWVuIGFjdGl2ZWx5IHVzaW5nIHlvdXIgY29tcHV0ZXIiLAogICJuYW1lIjogIlRpbWUgQXdhcmVuZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL3NyLmh0L35rYXBwYS9nbm9tZS1zaGVsbC10aW1lLWF3YXJlbmVzcy8iLAogICJ1dWlkIjogInRpbWUtYXdhcmVuZXNzQGdub21lLWV4dGVuc2lvbnMua2FwcmFub2ZmLnJ1IiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
-, {"uuid": "mullvadindicator@pobega.github.com", "name": "Mullvad Indicator", "pname": "mullvad-indicator", "description": "Mullvad connection status indicator", "link": "https://extensions.gnome.org/extension/3560/mullvad-indicator/", "shell_version_map": {"38": {"version": "4", "sha256": "05vcb7g51byvnk7bzajb1i7knj4zwjiksia97wabk41a2bagc4jc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUG9iZWdhL2dub21lLXNoZWxsLWV4dGVuc2lvbi1tdWxsdmFkLWluZGljYXRvciIsCiAgInV1aWQiOiAibXVsbHZhZGluZGljYXRvckBwb2JlZ2EuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "05vcb7g51byvnk7bzajb1i7knj4zwjiksia97wabk41a2bagc4jc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUG9iZWdhL2dub21lLXNoZWxsLWV4dGVuc2lvbi1tdWxsdmFkLWluZGljYXRvciIsCiAgInV1aWQiOiAibXVsbHZhZGluZGljYXRvckBwb2JlZ2EuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "05vcb7g51byvnk7bzajb1i7knj4zwjiksia97wabk41a2bagc4jc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUG9iZWdhL2dub21lLXNoZWxsLWV4dGVuc2lvbi1tdWxsdmFkLWluZGljYXRvciIsCiAgInV1aWQiOiAibXVsbHZhZGluZGljYXRvckBwb2JlZ2EuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
-, {"uuid": "task-widget@juozasmiskinis.gitlab.io", "name": "Task Widget", "pname": "task-widget", "description": "Display tasks next to the calendar widget.\n\nVisit our Wiki page for more information and troubleshooting.", "link": "https://extensions.gnome.org/extension/3569/task-widget/", "shell_version_map": {"38": {"version": "12", "sha256": "1s88rrrsiqz67fphjik1d4rlqd32shkwc13nn7ah3ga44wqlqmng", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJjb2ZmZWUiOiAiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uYnh3ZnBtIiwKICAiZGVwZW5kZW5jaWVzIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzL0luc3RhbGxhdGlvbiIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGFza3MgbmV4dCB0byB0aGUgY2FsZW5kYXIgd2lkZ2V0LlxuXG5WaXNpdCBvdXIgV2lraSBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuIiwKICAiZXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3Rhc2std2lkZ2V0IiwKICAiZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2std2lkZ2V0LmdyZXNvdXJjZSIsCiAgImxpYmVyYXBheSI6ICJodHRwczovL2xpYmVyYXBheS5jb20vam9hc2lzLyIsCiAgImxvY2FsZSI6ICJ1c2VyLXNwZWNpZmljIiwKICAibmFtZSI6ICJUYXNrIFdpZGdldCIsCiAgInBheXBhbCI6ICJodHRwczovL3BheXBhbC5tZS9qbWlza2luaXMiLAogICJzY2hlbWFzIjogInVzZXItc3BlY2lmaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0IiwKICAidXVpZCI6ICJ0YXNrLXdpZGdldEBqdW96YXNtaXNraW5pcy5naXRsYWIuaW8iLAogICJ2ZXJzaW9uIjogMTIsCiAgIndpa2kiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQvd2lraXMiCn0="}, "40": {"version": "12", "sha256": "1s88rrrsiqz67fphjik1d4rlqd32shkwc13nn7ah3ga44wqlqmng", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJjb2ZmZWUiOiAiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uYnh3ZnBtIiwKICAiZGVwZW5kZW5jaWVzIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzL0luc3RhbGxhdGlvbiIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGFza3MgbmV4dCB0byB0aGUgY2FsZW5kYXIgd2lkZ2V0LlxuXG5WaXNpdCBvdXIgV2lraSBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuIiwKICAiZXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3Rhc2std2lkZ2V0IiwKICAiZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2std2lkZ2V0LmdyZXNvdXJjZSIsCiAgImxpYmVyYXBheSI6ICJodHRwczovL2xpYmVyYXBheS5jb20vam9hc2lzLyIsCiAgImxvY2FsZSI6ICJ1c2VyLXNwZWNpZmljIiwKICAibmFtZSI6ICJUYXNrIFdpZGdldCIsCiAgInBheXBhbCI6ICJodHRwczovL3BheXBhbC5tZS9qbWlza2luaXMiLAogICJzY2hlbWFzIjogInVzZXItc3BlY2lmaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0IiwKICAidXVpZCI6ICJ0YXNrLXdpZGdldEBqdW96YXNtaXNraW5pcy5naXRsYWIuaW8iLAogICJ2ZXJzaW9uIjogMTIsCiAgIndpa2kiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQvd2lraXMiCn0="}, "41": {"version": "12", "sha256": "1s88rrrsiqz67fphjik1d4rlqd32shkwc13nn7ah3ga44wqlqmng", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJjb2ZmZWUiOiAiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uYnh3ZnBtIiwKICAiZGVwZW5kZW5jaWVzIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzL0luc3RhbGxhdGlvbiIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGFza3MgbmV4dCB0byB0aGUgY2FsZW5kYXIgd2lkZ2V0LlxuXG5WaXNpdCBvdXIgV2lraSBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuIiwKICAiZXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3Rhc2std2lkZ2V0IiwKICAiZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2std2lkZ2V0LmdyZXNvdXJjZSIsCiAgImxpYmVyYXBheSI6ICJodHRwczovL2xpYmVyYXBheS5jb20vam9hc2lzLyIsCiAgImxvY2FsZSI6ICJ1c2VyLXNwZWNpZmljIiwKICAibmFtZSI6ICJUYXNrIFdpZGdldCIsCiAgInBheXBhbCI6ICJodHRwczovL3BheXBhbC5tZS9qbWlza2luaXMiLAogICJzY2hlbWFzIjogInVzZXItc3BlY2lmaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0IiwKICAidXVpZCI6ICJ0YXNrLXdpZGdldEBqdW96YXNtaXNraW5pcy5naXRsYWIuaW8iLAogICJ2ZXJzaW9uIjogMTIsCiAgIndpa2kiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQvd2lraXMiCn0="}, "42": {"version": "12", "sha256": "1s88rrrsiqz67fphjik1d4rlqd32shkwc13nn7ah3ga44wqlqmng", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJjb2ZmZWUiOiAiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uYnh3ZnBtIiwKICAiZGVwZW5kZW5jaWVzIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzL0luc3RhbGxhdGlvbiIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGFza3MgbmV4dCB0byB0aGUgY2FsZW5kYXIgd2lkZ2V0LlxuXG5WaXNpdCBvdXIgV2lraSBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuIiwKICAiZXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3Rhc2std2lkZ2V0IiwKICAiZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2std2lkZ2V0LmdyZXNvdXJjZSIsCiAgImxpYmVyYXBheSI6ICJodHRwczovL2xpYmVyYXBheS5jb20vam9hc2lzLyIsCiAgImxvY2FsZSI6ICJ1c2VyLXNwZWNpZmljIiwKICAibmFtZSI6ICJUYXNrIFdpZGdldCIsCiAgInBheXBhbCI6ICJodHRwczovL3BheXBhbC5tZS9qbWlza2luaXMiLAogICJzY2hlbWFzIjogInVzZXItc3BlY2lmaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0IiwKICAidXVpZCI6ICJ0YXNrLXdpZGdldEBqdW96YXNtaXNraW5pcy5naXRsYWIuaW8iLAogICJ2ZXJzaW9uIjogMTIsCiAgIndpa2kiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQvd2lraXMiCn0="}}}
+, {"uuid": "mullvadindicator@pobega.github.com", "name": "Mullvad Indicator", "pname": "mullvad-indicator", "description": "Mullvad connection status indicator", "link": "https://extensions.gnome.org/extension/3560/mullvad-indicator/", "shell_version_map": {"38": {"version": "5", "sha256": "0xzb1bc8y0chkg6pkg2ax11g2xfrxqd9cjnmxhrahmabh30db451", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BvYmVnYS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVsbHZhZC1pbmRpY2F0b3IiLAogICJ1dWlkIjogIm11bGx2YWRpbmRpY2F0b3JAcG9iZWdhLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "0xzb1bc8y0chkg6pkg2ax11g2xfrxqd9cjnmxhrahmabh30db451", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BvYmVnYS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVsbHZhZC1pbmRpY2F0b3IiLAogICJ1dWlkIjogIm11bGx2YWRpbmRpY2F0b3JAcG9iZWdhLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "0xzb1bc8y0chkg6pkg2ax11g2xfrxqd9cjnmxhrahmabh30db451", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BvYmVnYS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVsbHZhZC1pbmRpY2F0b3IiLAogICJ1dWlkIjogIm11bGx2YWRpbmRpY2F0b3JAcG9iZWdhLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "42": {"version": "5", "sha256": "0xzb1bc8y0chkg6pkg2ax11g2xfrxqd9cjnmxhrahmabh30db451", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BvYmVnYS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVsbHZhZC1pbmRpY2F0b3IiLAogICJ1dWlkIjogIm11bGx2YWRpbmRpY2F0b3JAcG9iZWdhLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "task-widget@juozasmiskinis.gitlab.io", "name": "Task Widget", "pname": "task-widget", "description": "Display tasks next to the calendar widget.\n\nVisit our Wiki page for more information and troubleshooting.", "link": "https://extensions.gnome.org/extension/3569/task-widget/", "shell_version_map": {"38": {"version": "13", "sha256": "02v481prdpplc8gg0piaq5z51mc2s15czn641l59mhi8qsv19yi8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJjb2ZmZWUiOiAiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uYnh3ZnBtIiwKICAiZGVwZW5kZW5jaWVzIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzL0luc3RhbGxhdGlvbiIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGFza3MgbmV4dCB0byB0aGUgY2FsZW5kYXIgd2lkZ2V0LlxuXG5WaXNpdCBvdXIgV2lraSBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuIiwKICAiZXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3Rhc2std2lkZ2V0IiwKICAiZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2std2lkZ2V0LmdyZXNvdXJjZSIsCiAgImxpYmVyYXBheSI6ICJodHRwczovL2xpYmVyYXBheS5jb20vam9hc2lzLyIsCiAgImxvY2FsZSI6ICJ1c2VyLXNwZWNpZmljIiwKICAibmFtZSI6ICJUYXNrIFdpZGdldCIsCiAgInBheXBhbCI6ICJodHRwczovL3BheXBhbC5tZS9qbWlza2luaXMiLAogICJzY2hlbWFzIjogInVzZXItc3BlY2lmaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0IiwKICAidXVpZCI6ICJ0YXNrLXdpZGdldEBqdW96YXNtaXNraW5pcy5naXRsYWIuaW8iLAogICJ2ZXJzaW9uIjogMTMsCiAgIndpa2kiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQvd2lraXMiCn0="}, "40": {"version": "13", "sha256": "02v481prdpplc8gg0piaq5z51mc2s15czn641l59mhi8qsv19yi8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJjb2ZmZWUiOiAiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uYnh3ZnBtIiwKICAiZGVwZW5kZW5jaWVzIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzL0luc3RhbGxhdGlvbiIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGFza3MgbmV4dCB0byB0aGUgY2FsZW5kYXIgd2lkZ2V0LlxuXG5WaXNpdCBvdXIgV2lraSBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuIiwKICAiZXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3Rhc2std2lkZ2V0IiwKICAiZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2std2lkZ2V0LmdyZXNvdXJjZSIsCiAgImxpYmVyYXBheSI6ICJodHRwczovL2xpYmVyYXBheS5jb20vam9hc2lzLyIsCiAgImxvY2FsZSI6ICJ1c2VyLXNwZWNpZmljIiwKICAibmFtZSI6ICJUYXNrIFdpZGdldCIsCiAgInBheXBhbCI6ICJodHRwczovL3BheXBhbC5tZS9qbWlza2luaXMiLAogICJzY2hlbWFzIjogInVzZXItc3BlY2lmaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0IiwKICAidXVpZCI6ICJ0YXNrLXdpZGdldEBqdW96YXNtaXNraW5pcy5naXRsYWIuaW8iLAogICJ2ZXJzaW9uIjogMTMsCiAgIndpa2kiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQvd2lraXMiCn0="}, "41": {"version": "13", "sha256": "02v481prdpplc8gg0piaq5z51mc2s15czn641l59mhi8qsv19yi8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJjb2ZmZWUiOiAiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uYnh3ZnBtIiwKICAiZGVwZW5kZW5jaWVzIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzL0luc3RhbGxhdGlvbiIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGFza3MgbmV4dCB0byB0aGUgY2FsZW5kYXIgd2lkZ2V0LlxuXG5WaXNpdCBvdXIgV2lraSBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuIiwKICAiZXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3Rhc2std2lkZ2V0IiwKICAiZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2std2lkZ2V0LmdyZXNvdXJjZSIsCiAgImxpYmVyYXBheSI6ICJodHRwczovL2xpYmVyYXBheS5jb20vam9hc2lzLyIsCiAgImxvY2FsZSI6ICJ1c2VyLXNwZWNpZmljIiwKICAibmFtZSI6ICJUYXNrIFdpZGdldCIsCiAgInBheXBhbCI6ICJodHRwczovL3BheXBhbC5tZS9qbWlza2luaXMiLAogICJzY2hlbWFzIjogInVzZXItc3BlY2lmaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0IiwKICAidXVpZCI6ICJ0YXNrLXdpZGdldEBqdW96YXNtaXNraW5pcy5naXRsYWIuaW8iLAogICJ2ZXJzaW9uIjogMTMsCiAgIndpa2kiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQvd2lraXMiCn0="}, "42": {"version": "13", "sha256": "02v481prdpplc8gg0piaq5z51mc2s15czn641l59mhi8qsv19yi8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJjb2ZmZWUiOiAiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uYnh3ZnBtIiwKICAiZGVwZW5kZW5jaWVzIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzL0luc3RhbGxhdGlvbiIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGFza3MgbmV4dCB0byB0aGUgY2FsZW5kYXIgd2lkZ2V0LlxuXG5WaXNpdCBvdXIgV2lraSBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuIiwKICAiZXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3Rhc2std2lkZ2V0IiwKICAiZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2std2lkZ2V0LmdyZXNvdXJjZSIsCiAgImxpYmVyYXBheSI6ICJodHRwczovL2xpYmVyYXBheS5jb20vam9hc2lzLyIsCiAgImxvY2FsZSI6ICJ1c2VyLXNwZWNpZmljIiwKICAibmFtZSI6ICJUYXNrIFdpZGdldCIsCiAgInBheXBhbCI6ICJodHRwczovL3BheXBhbC5tZS9qbWlza2luaXMiLAogICJzY2hlbWFzIjogInVzZXItc3BlY2lmaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0IiwKICAidXVpZCI6ICJ0YXNrLXdpZGdldEBqdW96YXNtaXNraW5pcy5naXRsYWIuaW8iLAogICJ2ZXJzaW9uIjogMTMsCiAgIndpa2kiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQvd2lraXMiCn0="}}}
 , {"uuid": "air-quality@mcardillo55", "name": "Air Quality", "pname": "air-quality", "description": "View local air quality from PurpleAir in the top bar", "link": "https://extensions.gnome.org/extension/3574/air-quality/", "shell_version_map": {"40": {"version": "2", "sha256": "037hbbb6z3gj818hqxqq96yszd1hka57pn4gj9f5kps7ak5hca4l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbG9jYWwgYWlyIHF1YWxpdHkgZnJvbSBQdXJwbGVBaXIgaW4gdGhlIHRvcCBiYXIiLAogICJuYW1lIjogIkFpciBRdWFsaXR5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21jYXJkaWxsbzU1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1haXItcXVhbGl0eSIsCiAgInV1aWQiOiAiYWlyLXF1YWxpdHlAbWNhcmRpbGxvNTUiLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "oclock@ortega.tech", "name": "OClock", "pname": "oclock", "description": "Shows an analog clock on the panel", "link": "https://extensions.gnome.org/extension/3578/oclock/", "shell_version_map": {"40": {"version": "2", "sha256": "1pp155a51c1fsmlwfsr1hxsv79xra3sbqrda3fkvhrv4jif7n7s8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJKZXJlbWlhcyBPcnRlZ2EiLAogICJkZXNjcmlwdGlvbiI6ICJTaG93cyBhbiBhbmFsb2cgY2xvY2sgb24gdGhlIHBhbmVsIiwKICAibmFtZSI6ICJPQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly93d3cuZ2l0aHViLmNvbS9qZXJlLW9ydGVnYTI0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1vY2xvY2svIiwKICAidXVpZCI6ICJvY2xvY2tAb3J0ZWdhLnRlY2giLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "1pp155a51c1fsmlwfsr1hxsv79xra3sbqrda3fkvhrv4jif7n7s8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJKZXJlbWlhcyBPcnRlZ2EiLAogICJkZXNjcmlwdGlvbiI6ICJTaG93cyBhbiBhbmFsb2cgY2xvY2sgb24gdGhlIHBhbmVsIiwKICAibmFtZSI6ICJPQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly93d3cuZ2l0aHViLmNvbS9qZXJlLW9ydGVnYTI0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1vY2xvY2svIiwKICAidXVpZCI6ICJvY2xvY2tAb3J0ZWdhLnRlY2giLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "azan@hatem.masmoudi.org", "name": "Azan Islamic Prayer Times", "pname": "azan-islamic-prayer-times", "description": "Azan is an Islamic prayer times extension for Gnome Shell based on the extension by Fahrinh.\n\nFeatures\n- List compulsory prayer times\n Optionally display Imsak, Sunrise, Sunset and Midnight\n- Show remaining time for the upcoming prayer.\n- Show current date in Hijri calendar.\n- Display a notification when it's time for prayer.\n- Automatic Geoclue2 location detection\n- Show times in 24 hour and 12 hour formats\n- Hijri date adjusment\n- Moon status icon", "link": "https://extensions.gnome.org/extension/3602/azan-islamic-prayer-times/", "shell_version_map": {"38": {"version": "2", "sha256": "1z58m1w04mdddq9p3102jv852zks41f2l7xbx7j8jcljy4ahiqll", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF6YW4gaXMgYW4gSXNsYW1pYyBwcmF5ZXIgdGltZXMgZXh0ZW5zaW9uIGZvciBHbm9tZSBTaGVsbCBiYXNlZCBvbiB0aGUgZXh0ZW5zaW9uIGJ5IEZhaHJpbmguXG5cbkZlYXR1cmVzXG4tIExpc3QgY29tcHVsc29yeSBwcmF5ZXIgdGltZXNcbiBPcHRpb25hbGx5IGRpc3BsYXkgSW1zYWssIFN1bnJpc2UsIFN1bnNldCBhbmQgTWlkbmlnaHRcbi0gU2hvdyByZW1haW5pbmcgdGltZSBmb3IgdGhlIHVwY29taW5nIHByYXllci5cbi0gU2hvdyBjdXJyZW50IGRhdGUgaW4gSGlqcmkgY2FsZW5kYXIuXG4tIERpc3BsYXkgYSBub3RpZmljYXRpb24gd2hlbiBpdCdzIHRpbWUgZm9yIHByYXllci5cbi0gQXV0b21hdGljIEdlb2NsdWUyIGxvY2F0aW9uIGRldGVjdGlvblxuLSBTaG93IHRpbWVzIGluIDI0IGhvdXIgYW5kIDEyIGhvdXIgZm9ybWF0c1xuLSBIaWpyaSBkYXRlIGFkanVzbWVudFxuLSBNb29uIHN0YXR1cyBpY29uIiwKICAibmFtZSI6ICJBemFuIElzbGFtaWMgUHJheWVyIFRpbWVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmF6YW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMSIsCiAgICAiMy4zOC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vaG1hc21vdWRpL2F6YW4tZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhemFuQGhhdGVtLm1hc21vdWRpLm9yZyIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "blur-provider@corvettecole.github.com", "name": "blur-provider", "pname": "blur-provider", "description": "Provides an easy way for applications to request blur, and allows users to set blur on applications", "link": "https://extensions.gnome.org/extension/3607/blur-provider/", "shell_version_map": {"38": {"version": "2", "sha256": "1p0cyq1bfi18ysk1fvydjvk6qdl87qi9p3kpc165q5i0d4b41ffp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGVzIGFuIGVhc3kgd2F5IGZvciBhcHBsaWNhdGlvbnMgdG8gcmVxdWVzdCBibHVyLCBhbmQgYWxsb3dzIHVzZXJzIHRvIHNldCBibHVyIG9uIGFwcGxpY2F0aW9ucyIsCiAgImV4dGVuc2lvbi1pZCI6ICJibHVyLXByb3ZpZGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiYmx1ci1wcm92aWRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ibHVyLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29ydmV0dGVjb2xlL2JsdXItcHJvdmlkZXIiLAogICJ1dWlkIjogImJsdXItcHJvdmlkZXJAY29ydmV0dGVjb2xlLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
-, {"uuid": "wireguard-indicator@atareao.es", "name": "WireGuard Indicator", "pname": "wireguard-indicator", "description": "Manage WireGuard VPN from Desktop", "link": "https://extensions.gnome.org/extension/3612/wireguard-indicator/", "shell_version_map": {"40": {"version": "7", "sha256": "123fjffk8apdvb1r3g0bn6j3qm2714lwdv3nv7xz23a3l8x6sdcn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBXaXJlR3VhcmQgVlBOIGZyb20gRGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJpY29uIjogIndpcmVndWFyZC1pY29uIiwKICAibmFtZSI6ICJXaXJlR3VhcmQgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImVzLmF0YXJlYW8ud2lyZWd1YXJkLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXRhcmVhby93aXJlZ3VhcmQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJ2ZXJzaW9uIjogNwp9"}, "41": {"version": "7", "sha256": "123fjffk8apdvb1r3g0bn6j3qm2714lwdv3nv7xz23a3l8x6sdcn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBXaXJlR3VhcmQgVlBOIGZyb20gRGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJpY29uIjogIndpcmVndWFyZC1pY29uIiwKICAibmFtZSI6ICJXaXJlR3VhcmQgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImVzLmF0YXJlYW8ud2lyZWd1YXJkLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXRhcmVhby93aXJlZ3VhcmQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJ2ZXJzaW9uIjogNwp9"}}}
+, {"uuid": "wireguard-indicator@atareao.es", "name": "WireGuard Indicator", "pname": "wireguard-indicator", "description": "Manage WireGuard VPN from Desktop", "link": "https://extensions.gnome.org/extension/3612/wireguard-indicator/", "shell_version_map": {"40": {"version": "8", "sha256": "0fg5pmy4npdh84yjzbhi6q7zm2vha7n0pyg7fp2286bqs1yk9i05", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBXaXJlR3VhcmQgVlBOIGZyb20gRGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJpY29uIjogIndpcmVndWFyZC1pY29uIiwKICAibmFtZSI6ICJXaXJlR3VhcmQgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImVzLmF0YXJlYW8ud2lyZWd1YXJkLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F0YXJlYW8vd2lyZWd1YXJkLWluZGljYXRvciIsCiAgInV1aWQiOiAid2lyZWd1YXJkLWluZGljYXRvckBhdGFyZWFvLmVzIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "41": {"version": "8", "sha256": "0fg5pmy4npdh84yjzbhi6q7zm2vha7n0pyg7fp2286bqs1yk9i05", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBXaXJlR3VhcmQgVlBOIGZyb20gRGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJpY29uIjogIndpcmVndWFyZC1pY29uIiwKICAibmFtZSI6ICJXaXJlR3VhcmQgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImVzLmF0YXJlYW8ud2lyZWd1YXJkLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F0YXJlYW8vd2lyZWd1YXJkLWluZGljYXRvciIsCiAgInV1aWQiOiAid2lyZWd1YXJkLWluZGljYXRvckBhdGFyZWFvLmVzIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "42": {"version": "8", "sha256": "0fg5pmy4npdh84yjzbhi6q7zm2vha7n0pyg7fp2286bqs1yk9i05", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBXaXJlR3VhcmQgVlBOIGZyb20gRGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJpY29uIjogIndpcmVndWFyZC1pY29uIiwKICAibmFtZSI6ICJXaXJlR3VhcmQgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImVzLmF0YXJlYW8ud2lyZWd1YXJkLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F0YXJlYW8vd2lyZWd1YXJkLWluZGljYXRvciIsCiAgInV1aWQiOiAid2lyZWd1YXJkLWluZGljYXRvckBhdGFyZWFvLmVzIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "shamsi-calendar@gnome.scr.ir", "name": "Iranian Persian Calendar", "pname": "shamsi-calendar", "description": "تقویم هجری شمسی،قمری و میلادی در میز‌کار گنوم لینوکس\nقابلیت نمایش اوقات شرعی و پخش اذان\nدرج تعطیلی‌ها و مناسبت‌های رسمی تقویم\nزبان کاملاً فارسی\nتاریخ قمری هلالی ایران\nسازگار با اکثر نسخه‌های گنوم\nدر حال توسعه...\n\nShows Persian + Islamic + Gregorian date in the panel of gnome.\n\nIt shows:\n1- Persian calendar\n2- It can show, today is holiday or not!\n3- Show notification onDayChanged!\n4- Date converter between Persian, Gregorian and Lunar Hijri(Islamic)\n5- Show calendar Events.\n6- Show PrayTimes and play sound (Azan).\n\nPlease \"rate\" here and \"star\" project in GitHub.\nPlease open an issue in GitHub if you found something or have an idea!\nگزارش مشکلات:\nhttps://github.com/SCR-IR/gnome-shamsi-calendar/issues", "link": "https://extensions.gnome.org/extension/3618/shamsi-calendar/", "shell_version_map": {"38": {"version": "18", "sha256": "1bgrw9wn3ni49m54515gwpc6xpz2w4p1qa25sjlwb8521qwiqp03", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlx1MDYyYVx1MDY0Mlx1MDY0OFx1MDZjY1x1MDY0NSBcdTA2NDdcdTA2MmNcdTA2MzFcdTA2Y2MgXHUwNjM0XHUwNjQ1XHUwNjMzXHUwNmNjXHUwNjBjXHUwNjQyXHUwNjQ1XHUwNjMxXHUwNmNjIFx1MDY0OCBcdTA2NDVcdTA2Y2NcdTA2NDRcdTA2MjdcdTA2MmZcdTA2Y2MgXHUwNjJmXHUwNjMxIFx1MDY0NVx1MDZjY1x1MDYzMlx1MjAwY1x1MDZhOVx1MDYyN1x1MDYzMSBcdTA2YWZcdTA2NDZcdTA2NDhcdTA2NDUgXHUwNjQ0XHUwNmNjXHUwNjQ2XHUwNjQ4XHUwNmE5XHUwNjMzXG5cdTA2NDJcdTA2MjdcdTA2MjhcdTA2NDRcdTA2Y2NcdTA2MmEgXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNmNjXHUwNjM0IFx1MDYyN1x1MDY0OFx1MDY0Mlx1MDYyN1x1MDYyYSBcdTA2MzRcdTA2MzFcdTA2MzlcdTA2Y2MgXHUwNjQ4IFx1MDY3ZVx1MDYyZVx1MDYzNCBcdTA2MjdcdTA2MzBcdTA2MjdcdTA2NDZcblx1MDYyZlx1MDYzMVx1MDYyYyBcdTA2MmFcdTA2MzlcdTA2MzdcdTA2Y2NcdTA2NDRcdTA2Y2NcdTIwMGNcdTA2NDdcdTA2MjcgXHUwNjQ4IFx1MDY0NVx1MDY0Nlx1MDYyN1x1MDYzM1x1MDYyOFx1MDYyYVx1MjAwY1x1MDY0N1x1MDYyN1x1MDZjYyBcdTA2MzFcdTA2MzNcdTA2NDVcdTA2Y2MgXHUwNjJhXHUwNjQyXHUwNjQ4XHUwNmNjXHUwNjQ1XG5cdTA2MzJcdTA2MjhcdTA2MjdcdTA2NDYgXHUwNmE5XHUwNjI3XHUwNjQ1XHUwNjQ0XHUwNjI3XHUwNjRiIFx1MDY0MVx1MDYyN1x1MDYzMVx1MDYzM1x1MDZjY1xuXHUwNjJhXHUwNjI3XHUwNjMxXHUwNmNjXHUwNjJlIFx1MDY0Mlx1MDY0NVx1MDYzMVx1MDZjYyBcdTA2NDdcdTA2NDRcdTA2MjdcdTA2NDRcdTA2Y2MgXHUwNjI3XHUwNmNjXHUwNjMxXHUwNjI3XHUwNjQ2XG5cdTA2MzNcdTA2MjdcdTA2MzJcdTA2YWZcdTA2MjdcdTA2MzEgXHUwNjI4XHUwNjI3IFx1MDYyN1x1MDZhOVx1MDYyYlx1MDYzMSBcdTA2NDZcdTA2MzNcdTA2MmVcdTA2NDdcdTIwMGNcdTA2NDdcdTA2MjdcdTA2Y2MgXHUwNmFmXHUwNjQ2XHUwNjQ4XHUwNjQ1XG5cdTA2MmZcdTA2MzEgXHUwNjJkXHUwNjI3XHUwNjQ0IFx1MDYyYVx1MDY0OFx1MDYzM1x1MDYzOVx1MDY0Ny4uLlxuXG5TaG93cyBQZXJzaWFuICsgSXNsYW1pYyArIEdyZWdvcmlhbiBkYXRlIGluIHRoZSBwYW5lbCBvZiBnbm9tZS5cblxuSXQgc2hvd3M6XG4xLSBQZXJzaWFuIGNhbGVuZGFyXG4yLSBJdCBjYW4gc2hvdywgdG9kYXkgaXMgaG9saWRheSBvciBub3QhXG4zLSBTaG93IG5vdGlmaWNhdGlvbiBvbkRheUNoYW5nZWQhXG40LSBEYXRlIGNvbnZlcnRlciBiZXR3ZWVuIFBlcnNpYW4sIEdyZWdvcmlhbiBhbmQgTHVuYXIgSGlqcmkoSXNsYW1pYylcbjUtIFNob3cgY2FsZW5kYXIgRXZlbnRzLlxuNi0gU2hvdyBQcmF5VGltZXMgYW5kIHBsYXkgc291bmQgKEF6YW4pLlxuXG5QbGVhc2UgXCJyYXRlXCIgaGVyZSBhbmQgXCJzdGFyXCIgcHJvamVjdCBpbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhXG5cdTA2YWZcdTA2MzJcdTA2MjdcdTA2MzFcdTA2MzQgXHUwNjQ1XHUwNjM0XHUwNmE5XHUwNjQ0XHUwNjI3XHUwNjJhOlxuaHR0cHM6Ly9naXRodWIuY29tL1NDUi1JUi9nbm9tZS1zaGFtc2ktY2FsZW5kYXIvaXNzdWVzIiwKICAibmFtZSI6ICJJcmFuaWFuIFBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogImpkZi5zY3IuaXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zY3ItaXIvZ25vbWUtc2hhbXNpLWNhbGVuZGFyIiwKICAidXVpZCI6ICJzaGFtc2ktY2FsZW5kYXJAZ25vbWUuc2NyLmlyIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "18", "sha256": "1bgrw9wn3ni49m54515gwpc6xpz2w4p1qa25sjlwb8521qwiqp03", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlx1MDYyYVx1MDY0Mlx1MDY0OFx1MDZjY1x1MDY0NSBcdTA2NDdcdTA2MmNcdTA2MzFcdTA2Y2MgXHUwNjM0XHUwNjQ1XHUwNjMzXHUwNmNjXHUwNjBjXHUwNjQyXHUwNjQ1XHUwNjMxXHUwNmNjIFx1MDY0OCBcdTA2NDVcdTA2Y2NcdTA2NDRcdTA2MjdcdTA2MmZcdTA2Y2MgXHUwNjJmXHUwNjMxIFx1MDY0NVx1MDZjY1x1MDYzMlx1MjAwY1x1MDZhOVx1MDYyN1x1MDYzMSBcdTA2YWZcdTA2NDZcdTA2NDhcdTA2NDUgXHUwNjQ0XHUwNmNjXHUwNjQ2XHUwNjQ4XHUwNmE5XHUwNjMzXG5cdTA2NDJcdTA2MjdcdTA2MjhcdTA2NDRcdTA2Y2NcdTA2MmEgXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNmNjXHUwNjM0IFx1MDYyN1x1MDY0OFx1MDY0Mlx1MDYyN1x1MDYyYSBcdTA2MzRcdTA2MzFcdTA2MzlcdTA2Y2MgXHUwNjQ4IFx1MDY3ZVx1MDYyZVx1MDYzNCBcdTA2MjdcdTA2MzBcdTA2MjdcdTA2NDZcblx1MDYyZlx1MDYzMVx1MDYyYyBcdTA2MmFcdTA2MzlcdTA2MzdcdTA2Y2NcdTA2NDRcdTA2Y2NcdTIwMGNcdTA2NDdcdTA2MjcgXHUwNjQ4IFx1MDY0NVx1MDY0Nlx1MDYyN1x1MDYzM1x1MDYyOFx1MDYyYVx1MjAwY1x1MDY0N1x1MDYyN1x1MDZjYyBcdTA2MzFcdTA2MzNcdTA2NDVcdTA2Y2MgXHUwNjJhXHUwNjQyXHUwNjQ4XHUwNmNjXHUwNjQ1XG5cdTA2MzJcdTA2MjhcdTA2MjdcdTA2NDYgXHUwNmE5XHUwNjI3XHUwNjQ1XHUwNjQ0XHUwNjI3XHUwNjRiIFx1MDY0MVx1MDYyN1x1MDYzMVx1MDYzM1x1MDZjY1xuXHUwNjJhXHUwNjI3XHUwNjMxXHUwNmNjXHUwNjJlIFx1MDY0Mlx1MDY0NVx1MDYzMVx1MDZjYyBcdTA2NDdcdTA2NDRcdTA2MjdcdTA2NDRcdTA2Y2MgXHUwNjI3XHUwNmNjXHUwNjMxXHUwNjI3XHUwNjQ2XG5cdTA2MzNcdTA2MjdcdTA2MzJcdTA2YWZcdTA2MjdcdTA2MzEgXHUwNjI4XHUwNjI3IFx1MDYyN1x1MDZhOVx1MDYyYlx1MDYzMSBcdTA2NDZcdTA2MzNcdTA2MmVcdTA2NDdcdTIwMGNcdTA2NDdcdTA2MjdcdTA2Y2MgXHUwNmFmXHUwNjQ2XHUwNjQ4XHUwNjQ1XG5cdTA2MmZcdTA2MzEgXHUwNjJkXHUwNjI3XHUwNjQ0IFx1MDYyYVx1MDY0OFx1MDYzM1x1MDYzOVx1MDY0Ny4uLlxuXG5TaG93cyBQZXJzaWFuICsgSXNsYW1pYyArIEdyZWdvcmlhbiBkYXRlIGluIHRoZSBwYW5lbCBvZiBnbm9tZS5cblxuSXQgc2hvd3M6XG4xLSBQZXJzaWFuIGNhbGVuZGFyXG4yLSBJdCBjYW4gc2hvdywgdG9kYXkgaXMgaG9saWRheSBvciBub3QhXG4zLSBTaG93IG5vdGlmaWNhdGlvbiBvbkRheUNoYW5nZWQhXG40LSBEYXRlIGNvbnZlcnRlciBiZXR3ZWVuIFBlcnNpYW4sIEdyZWdvcmlhbiBhbmQgTHVuYXIgSGlqcmkoSXNsYW1pYylcbjUtIFNob3cgY2FsZW5kYXIgRXZlbnRzLlxuNi0gU2hvdyBQcmF5VGltZXMgYW5kIHBsYXkgc291bmQgKEF6YW4pLlxuXG5QbGVhc2UgXCJyYXRlXCIgaGVyZSBhbmQgXCJzdGFyXCIgcHJvamVjdCBpbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhXG5cdTA2YWZcdTA2MzJcdTA2MjdcdTA2MzFcdTA2MzQgXHUwNjQ1XHUwNjM0XHUwNmE5XHUwNjQ0XHUwNjI3XHUwNjJhOlxuaHR0cHM6Ly9naXRodWIuY29tL1NDUi1JUi9nbm9tZS1zaGFtc2ktY2FsZW5kYXIvaXNzdWVzIiwKICAibmFtZSI6ICJJcmFuaWFuIFBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogImpkZi5zY3IuaXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zY3ItaXIvZ25vbWUtc2hhbXNpLWNhbGVuZGFyIiwKICAidXVpZCI6ICJzaGFtc2ktY2FsZW5kYXJAZ25vbWUuc2NyLmlyIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "41": {"version": "18", "sha256": "1bgrw9wn3ni49m54515gwpc6xpz2w4p1qa25sjlwb8521qwiqp03", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlx1MDYyYVx1MDY0Mlx1MDY0OFx1MDZjY1x1MDY0NSBcdTA2NDdcdTA2MmNcdTA2MzFcdTA2Y2MgXHUwNjM0XHUwNjQ1XHUwNjMzXHUwNmNjXHUwNjBjXHUwNjQyXHUwNjQ1XHUwNjMxXHUwNmNjIFx1MDY0OCBcdTA2NDVcdTA2Y2NcdTA2NDRcdTA2MjdcdTA2MmZcdTA2Y2MgXHUwNjJmXHUwNjMxIFx1MDY0NVx1MDZjY1x1MDYzMlx1MjAwY1x1MDZhOVx1MDYyN1x1MDYzMSBcdTA2YWZcdTA2NDZcdTA2NDhcdTA2NDUgXHUwNjQ0XHUwNmNjXHUwNjQ2XHUwNjQ4XHUwNmE5XHUwNjMzXG5cdTA2NDJcdTA2MjdcdTA2MjhcdTA2NDRcdTA2Y2NcdTA2MmEgXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNmNjXHUwNjM0IFx1MDYyN1x1MDY0OFx1MDY0Mlx1MDYyN1x1MDYyYSBcdTA2MzRcdTA2MzFcdTA2MzlcdTA2Y2MgXHUwNjQ4IFx1MDY3ZVx1MDYyZVx1MDYzNCBcdTA2MjdcdTA2MzBcdTA2MjdcdTA2NDZcblx1MDYyZlx1MDYzMVx1MDYyYyBcdTA2MmFcdTA2MzlcdTA2MzdcdTA2Y2NcdTA2NDRcdTA2Y2NcdTIwMGNcdTA2NDdcdTA2MjcgXHUwNjQ4IFx1MDY0NVx1MDY0Nlx1MDYyN1x1MDYzM1x1MDYyOFx1MDYyYVx1MjAwY1x1MDY0N1x1MDYyN1x1MDZjYyBcdTA2MzFcdTA2MzNcdTA2NDVcdTA2Y2MgXHUwNjJhXHUwNjQyXHUwNjQ4XHUwNmNjXHUwNjQ1XG5cdTA2MzJcdTA2MjhcdTA2MjdcdTA2NDYgXHUwNmE5XHUwNjI3XHUwNjQ1XHUwNjQ0XHUwNjI3XHUwNjRiIFx1MDY0MVx1MDYyN1x1MDYzMVx1MDYzM1x1MDZjY1xuXHUwNjJhXHUwNjI3XHUwNjMxXHUwNmNjXHUwNjJlIFx1MDY0Mlx1MDY0NVx1MDYzMVx1MDZjYyBcdTA2NDdcdTA2NDRcdTA2MjdcdTA2NDRcdTA2Y2MgXHUwNjI3XHUwNmNjXHUwNjMxXHUwNjI3XHUwNjQ2XG5cdTA2MzNcdTA2MjdcdTA2MzJcdTA2YWZcdTA2MjdcdTA2MzEgXHUwNjI4XHUwNjI3IFx1MDYyN1x1MDZhOVx1MDYyYlx1MDYzMSBcdTA2NDZcdTA2MzNcdTA2MmVcdTA2NDdcdTIwMGNcdTA2NDdcdTA2MjdcdTA2Y2MgXHUwNmFmXHUwNjQ2XHUwNjQ4XHUwNjQ1XG5cdTA2MmZcdTA2MzEgXHUwNjJkXHUwNjI3XHUwNjQ0IFx1MDYyYVx1MDY0OFx1MDYzM1x1MDYzOVx1MDY0Ny4uLlxuXG5TaG93cyBQZXJzaWFuICsgSXNsYW1pYyArIEdyZWdvcmlhbiBkYXRlIGluIHRoZSBwYW5lbCBvZiBnbm9tZS5cblxuSXQgc2hvd3M6XG4xLSBQZXJzaWFuIGNhbGVuZGFyXG4yLSBJdCBjYW4gc2hvdywgdG9kYXkgaXMgaG9saWRheSBvciBub3QhXG4zLSBTaG93IG5vdGlmaWNhdGlvbiBvbkRheUNoYW5nZWQhXG40LSBEYXRlIGNvbnZlcnRlciBiZXR3ZWVuIFBlcnNpYW4sIEdyZWdvcmlhbiBhbmQgTHVuYXIgSGlqcmkoSXNsYW1pYylcbjUtIFNob3cgY2FsZW5kYXIgRXZlbnRzLlxuNi0gU2hvdyBQcmF5VGltZXMgYW5kIHBsYXkgc291bmQgKEF6YW4pLlxuXG5QbGVhc2UgXCJyYXRlXCIgaGVyZSBhbmQgXCJzdGFyXCIgcHJvamVjdCBpbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhXG5cdTA2YWZcdTA2MzJcdTA2MjdcdTA2MzFcdTA2MzQgXHUwNjQ1XHUwNjM0XHUwNmE5XHUwNjQ0XHUwNjI3XHUwNjJhOlxuaHR0cHM6Ly9naXRodWIuY29tL1NDUi1JUi9nbm9tZS1zaGFtc2ktY2FsZW5kYXIvaXNzdWVzIiwKICAibmFtZSI6ICJJcmFuaWFuIFBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogImpkZi5zY3IuaXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zY3ItaXIvZ25vbWUtc2hhbXNpLWNhbGVuZGFyIiwKICAidXVpZCI6ICJzaGFtc2ktY2FsZW5kYXJAZ25vbWUuc2NyLmlyIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "42": {"version": "18", "sha256": "1bgrw9wn3ni49m54515gwpc6xpz2w4p1qa25sjlwb8521qwiqp03", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlx1MDYyYVx1MDY0Mlx1MDY0OFx1MDZjY1x1MDY0NSBcdTA2NDdcdTA2MmNcdTA2MzFcdTA2Y2MgXHUwNjM0XHUwNjQ1XHUwNjMzXHUwNmNjXHUwNjBjXHUwNjQyXHUwNjQ1XHUwNjMxXHUwNmNjIFx1MDY0OCBcdTA2NDVcdTA2Y2NcdTA2NDRcdTA2MjdcdTA2MmZcdTA2Y2MgXHUwNjJmXHUwNjMxIFx1MDY0NVx1MDZjY1x1MDYzMlx1MjAwY1x1MDZhOVx1MDYyN1x1MDYzMSBcdTA2YWZcdTA2NDZcdTA2NDhcdTA2NDUgXHUwNjQ0XHUwNmNjXHUwNjQ2XHUwNjQ4XHUwNmE5XHUwNjMzXG5cdTA2NDJcdTA2MjdcdTA2MjhcdTA2NDRcdTA2Y2NcdTA2MmEgXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNmNjXHUwNjM0IFx1MDYyN1x1MDY0OFx1MDY0Mlx1MDYyN1x1MDYyYSBcdTA2MzRcdTA2MzFcdTA2MzlcdTA2Y2MgXHUwNjQ4IFx1MDY3ZVx1MDYyZVx1MDYzNCBcdTA2MjdcdTA2MzBcdTA2MjdcdTA2NDZcblx1MDYyZlx1MDYzMVx1MDYyYyBcdTA2MmFcdTA2MzlcdTA2MzdcdTA2Y2NcdTA2NDRcdTA2Y2NcdTIwMGNcdTA2NDdcdTA2MjcgXHUwNjQ4IFx1MDY0NVx1MDY0Nlx1MDYyN1x1MDYzM1x1MDYyOFx1MDYyYVx1MjAwY1x1MDY0N1x1MDYyN1x1MDZjYyBcdTA2MzFcdTA2MzNcdTA2NDVcdTA2Y2MgXHUwNjJhXHUwNjQyXHUwNjQ4XHUwNmNjXHUwNjQ1XG5cdTA2MzJcdTA2MjhcdTA2MjdcdTA2NDYgXHUwNmE5XHUwNjI3XHUwNjQ1XHUwNjQ0XHUwNjI3XHUwNjRiIFx1MDY0MVx1MDYyN1x1MDYzMVx1MDYzM1x1MDZjY1xuXHUwNjJhXHUwNjI3XHUwNjMxXHUwNmNjXHUwNjJlIFx1MDY0Mlx1MDY0NVx1MDYzMVx1MDZjYyBcdTA2NDdcdTA2NDRcdTA2MjdcdTA2NDRcdTA2Y2MgXHUwNjI3XHUwNmNjXHUwNjMxXHUwNjI3XHUwNjQ2XG5cdTA2MzNcdTA2MjdcdTA2MzJcdTA2YWZcdTA2MjdcdTA2MzEgXHUwNjI4XHUwNjI3IFx1MDYyN1x1MDZhOVx1MDYyYlx1MDYzMSBcdTA2NDZcdTA2MzNcdTA2MmVcdTA2NDdcdTIwMGNcdTA2NDdcdTA2MjdcdTA2Y2MgXHUwNmFmXHUwNjQ2XHUwNjQ4XHUwNjQ1XG5cdTA2MmZcdTA2MzEgXHUwNjJkXHUwNjI3XHUwNjQ0IFx1MDYyYVx1MDY0OFx1MDYzM1x1MDYzOVx1MDY0Ny4uLlxuXG5TaG93cyBQZXJzaWFuICsgSXNsYW1pYyArIEdyZWdvcmlhbiBkYXRlIGluIHRoZSBwYW5lbCBvZiBnbm9tZS5cblxuSXQgc2hvd3M6XG4xLSBQZXJzaWFuIGNhbGVuZGFyXG4yLSBJdCBjYW4gc2hvdywgdG9kYXkgaXMgaG9saWRheSBvciBub3QhXG4zLSBTaG93IG5vdGlmaWNhdGlvbiBvbkRheUNoYW5nZWQhXG40LSBEYXRlIGNvbnZlcnRlciBiZXR3ZWVuIFBlcnNpYW4sIEdyZWdvcmlhbiBhbmQgTHVuYXIgSGlqcmkoSXNsYW1pYylcbjUtIFNob3cgY2FsZW5kYXIgRXZlbnRzLlxuNi0gU2hvdyBQcmF5VGltZXMgYW5kIHBsYXkgc291bmQgKEF6YW4pLlxuXG5QbGVhc2UgXCJyYXRlXCIgaGVyZSBhbmQgXCJzdGFyXCIgcHJvamVjdCBpbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhXG5cdTA2YWZcdTA2MzJcdTA2MjdcdTA2MzFcdTA2MzQgXHUwNjQ1XHUwNjM0XHUwNmE5XHUwNjQ0XHUwNjI3XHUwNjJhOlxuaHR0cHM6Ly9naXRodWIuY29tL1NDUi1JUi9nbm9tZS1zaGFtc2ktY2FsZW5kYXIvaXNzdWVzIiwKICAibmFtZSI6ICJJcmFuaWFuIFBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogImpkZi5zY3IuaXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zY3ItaXIvZ25vbWUtc2hhbXNpLWNhbGVuZGFyIiwKICAidXVpZCI6ICJzaGFtc2ktY2FsZW5kYXJAZ25vbWUuc2NyLmlyIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
 , {"uuid": "tunnel-indicator@atareao.es", "name": "Tunnel Indicator", "pname": "tunnel-indicator", "description": "Manage SSH Tunnels from Desktop", "link": "https://extensions.gnome.org/extension/3622/tunnel-indicator/", "shell_version_map": {"40": {"version": "2", "sha256": "0ma4a711mgjxyhy4d21p2m7wvbnmmwlfdsf6xk9i36ranjcqs9as", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBTU0ggVHVubmVscyBmcm9tIERlc2t0b3AiLAogICJleHRlbnNpb24taWQiOiAidHVubmVsLWluZGljYXRvckBhdGFyZWFvLmVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHVubmVsLWluZGljYXRvckBhdGFyZWFvLmVzIiwKICAiaWNvbiI6ICJ0dW5uZWwtaWNvbiIsCiAgIm5hbWUiOiAiVHVubmVsIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJlcy5hdGFyZWFvLnR1bm5lbC1pbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXRhcmVhby90dW5uZWwtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJ0dW5uZWwtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJ2ZXJzaW9uIjogMgp9"}}}
-, {"uuid": "arcmenu@arcmenu.com", "name": "ArcMenu", "pname": "arcmenu", "description": "Application menu for GNOME Shell\n\nFeatures include: numerous menu layouts to choose from, built in GNOME search, quick access to system shortcuts, and much more!\n\nCommon solutions for ERROR message:\n - Restart your GNOME session after updating ArcMenu.\n - Install one of the following packages: 'gir1.2-gmenu-3.0' or 'gnome-menus'\n\nGeneral Help:\n - Visit https://gitlab.com/arcmenu/ArcMenu/-/wikis/home\n\nPlease report all bugs or issues at https://gitlab.com/arcmenu/ArcMenu", "link": "https://extensions.gnome.org/extension/3628/arcmenu/", "shell_version_map": {"38": {"version": "17", "sha256": "0wj76n6mi31bvzv0mf89fdba6crfwb4rd8sfjni8nxbxfm7ii6fr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIG1lbnUgZm9yIEdOT01FIFNoZWxsXG5cbkZlYXR1cmVzIGluY2x1ZGU6IG51bWVyb3VzIG1lbnUgbGF5b3V0cyB0byBjaG9vc2UgZnJvbSwgYnVpbHQgaW4gR05PTUUgc2VhcmNoLCBxdWljayBhY2Nlc3MgdG8gc3lzdGVtIHNob3J0Y3V0cywgYW5kIG11Y2ggbW9yZSFcblxuQ29tbW9uIHNvbHV0aW9ucyBmb3IgRVJST1IgbWVzc2FnZTpcbiAtIFJlc3RhcnQgeW91ciBHTk9NRSBzZXNzaW9uIGFmdGVyIHVwZGF0aW5nIEFyY01lbnUuXG4gLSBJbnN0YWxsIG9uZSBvZiB0aGUgZm9sbG93aW5nIHBhY2thZ2VzOiAnZ2lyMS4yLWdtZW51LTMuMCcgb3IgJ2dub21lLW1lbnVzJ1xuXG5HZW5lcmFsIEhlbHA6XG4gLSBWaXNpdCBodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51Ly0vd2lraXMvaG9tZVxuXG5QbGVhc2UgcmVwb3J0IGFsbCBidWdzIG9yIGlzc3VlcyBhdCBodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAiZXh0ZW5zaW9uLWlkIjogImFyY21lbnUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcmNtZW51IiwKICAibmFtZSI6ICJBcmNNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFyY21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUiLAogICJ1dWlkIjogImFyY21lbnVAYXJjbWVudS5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "40": {"version": "27", "sha256": "1dkxg21rynxfhwcif2jzs86p2vbk4y2r6ppw74brwz3zzvbzaxmx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIG1lbnUgZm9yIEdOT01FIFNoZWxsXG5cbkZlYXR1cmVzIGluY2x1ZGU6IG51bWVyb3VzIG1lbnUgbGF5b3V0cyB0byBjaG9vc2UgZnJvbSwgYnVpbHQgaW4gR05PTUUgc2VhcmNoLCBxdWljayBhY2Nlc3MgdG8gc3lzdGVtIHNob3J0Y3V0cywgYW5kIG11Y2ggbW9yZSFcblxuQ29tbW9uIHNvbHV0aW9ucyBmb3IgRVJST1IgbWVzc2FnZTpcbiAtIFJlc3RhcnQgeW91ciBHTk9NRSBzZXNzaW9uIGFmdGVyIHVwZGF0aW5nIEFyY01lbnUuXG4gLSBJbnN0YWxsIG9uZSBvZiB0aGUgZm9sbG93aW5nIHBhY2thZ2VzOiAnZ2lyMS4yLWdtZW51LTMuMCcgb3IgJ2dub21lLW1lbnVzJ1xuXG5HZW5lcmFsIEhlbHA6XG4gLSBWaXNpdCBodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51Ly0vd2lraXMvaG9tZVxuXG5QbGVhc2UgcmVwb3J0IGFsbCBidWdzIG9yIGlzc3VlcyBhdCBodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAiZXh0ZW5zaW9uLWlkIjogImFyY21lbnUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcmNtZW51IiwKICAibmFtZSI6ICJBcmNNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFyY21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgInV1aWQiOiAiYXJjbWVudUBhcmNtZW51LmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"}, "41": {"version": "27", "sha256": "1dkxg21rynxfhwcif2jzs86p2vbk4y2r6ppw74brwz3zzvbzaxmx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIG1lbnUgZm9yIEdOT01FIFNoZWxsXG5cbkZlYXR1cmVzIGluY2x1ZGU6IG51bWVyb3VzIG1lbnUgbGF5b3V0cyB0byBjaG9vc2UgZnJvbSwgYnVpbHQgaW4gR05PTUUgc2VhcmNoLCBxdWljayBhY2Nlc3MgdG8gc3lzdGVtIHNob3J0Y3V0cywgYW5kIG11Y2ggbW9yZSFcblxuQ29tbW9uIHNvbHV0aW9ucyBmb3IgRVJST1IgbWVzc2FnZTpcbiAtIFJlc3RhcnQgeW91ciBHTk9NRSBzZXNzaW9uIGFmdGVyIHVwZGF0aW5nIEFyY01lbnUuXG4gLSBJbnN0YWxsIG9uZSBvZiB0aGUgZm9sbG93aW5nIHBhY2thZ2VzOiAnZ2lyMS4yLWdtZW51LTMuMCcgb3IgJ2dub21lLW1lbnVzJ1xuXG5HZW5lcmFsIEhlbHA6XG4gLSBWaXNpdCBodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51Ly0vd2lraXMvaG9tZVxuXG5QbGVhc2UgcmVwb3J0IGFsbCBidWdzIG9yIGlzc3VlcyBhdCBodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAiZXh0ZW5zaW9uLWlkIjogImFyY21lbnUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcmNtZW51IiwKICAibmFtZSI6ICJBcmNNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFyY21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgInV1aWQiOiAiYXJjbWVudUBhcmNtZW51LmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"}, "42": {"version": "29", "sha256": "0vbdzm9s62fq03azjybj40gxdsqbc78mr8l3lh58q3czpqch0wkq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIG1lbnUgZm9yIEdOT01FIFNoZWxsXG5cbkZlYXR1cmVzIGluY2x1ZGU6IG51bWVyb3VzIG1lbnUgbGF5b3V0cyB0byBjaG9vc2UgZnJvbSwgYnVpbHQgaW4gR05PTUUgc2VhcmNoLCBxdWljayBhY2Nlc3MgdG8gc3lzdGVtIHNob3J0Y3V0cywgYW5kIG11Y2ggbW9yZSFcblxuQ29tbW9uIHNvbHV0aW9ucyBmb3IgRVJST1IgbWVzc2FnZTpcbiAtIFJlc3RhcnQgeW91ciBHTk9NRSBzZXNzaW9uIGFmdGVyIHVwZGF0aW5nIEFyY01lbnUuXG4gLSBJbnN0YWxsIG9uZSBvZiB0aGUgZm9sbG93aW5nIHBhY2thZ2VzOiAnZ2lyMS4yLWdtZW51LTMuMCcgb3IgJ2dub21lLW1lbnVzJ1xuXG5HZW5lcmFsIEhlbHA6XG4gLSBWaXNpdCBodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51Ly0vd2lraXMvaG9tZVxuXG5QbGVhc2UgcmVwb3J0IGFsbCBidWdzIG9yIGlzc3VlcyBhdCBodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAiZXh0ZW5zaW9uLWlkIjogImFyY21lbnUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcmNtZW51IiwKICAibmFtZSI6ICJBcmNNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFyY21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDI5Cn0="}}}
+, {"uuid": "arcmenu@arcmenu.com", "name": "ArcMenu", "pname": "arcmenu", "description": "Application menu for GNOME Shell\n\nFeatures include: various menu layouts, built in GNOME search, quick access to system shortcuts, and much more!\n\nCommon solutions for ERROR message:\n - Restart your GNOME session after updating ArcMenu.\n - Install one of the following packages: 'gir1.2-gmenu-3.0' or 'gnome-menus'\n\nGeneral Help:\n - Visit https://gitlab.com/arcmenu/ArcMenu/-/wikis/home", "link": "https://extensions.gnome.org/extension/3628/arcmenu/", "shell_version_map": {"38": {"version": "17", "sha256": "0hfrfwbala1iyw5sialwfshg0kp2lh9xwg8msk3f1fqa1q7qymjb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIG1lbnUgZm9yIEdOT01FIFNoZWxsXG5cbkZlYXR1cmVzIGluY2x1ZGU6IHZhcmlvdXMgbWVudSBsYXlvdXRzLCBidWlsdCBpbiBHTk9NRSBzZWFyY2gsIHF1aWNrIGFjY2VzcyB0byBzeXN0ZW0gc2hvcnRjdXRzLCBhbmQgbXVjaCBtb3JlIVxuXG5Db21tb24gc29sdXRpb25zIGZvciBFUlJPUiBtZXNzYWdlOlxuIC0gUmVzdGFydCB5b3VyIEdOT01FIHNlc3Npb24gYWZ0ZXIgdXBkYXRpbmcgQXJjTWVudS5cbiAtIEluc3RhbGwgb25lIG9mIHRoZSBmb2xsb3dpbmcgcGFja2FnZXM6ICdnaXIxLjItZ21lbnUtMy4wJyBvciAnZ25vbWUtbWVudXMnXG5cbkdlbmVyYWwgSGVscDpcbiAtIFZpc2l0IGh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUvLS93aWtpcy9ob21lIiwKICAiZXh0ZW5zaW9uLWlkIjogImFyY21lbnUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcmNtZW51IiwKICAibmFtZSI6ICJBcmNNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFyY21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUiLAogICJ1dWlkIjogImFyY21lbnVAYXJjbWVudS5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "40": {"version": "27", "sha256": "0ihy71gsa651gv8anvzhzsjcqbcpqk7zpw381jaz49bbz5lbs59f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIG1lbnUgZm9yIEdOT01FIFNoZWxsXG5cbkZlYXR1cmVzIGluY2x1ZGU6IHZhcmlvdXMgbWVudSBsYXlvdXRzLCBidWlsdCBpbiBHTk9NRSBzZWFyY2gsIHF1aWNrIGFjY2VzcyB0byBzeXN0ZW0gc2hvcnRjdXRzLCBhbmQgbXVjaCBtb3JlIVxuXG5Db21tb24gc29sdXRpb25zIGZvciBFUlJPUiBtZXNzYWdlOlxuIC0gUmVzdGFydCB5b3VyIEdOT01FIHNlc3Npb24gYWZ0ZXIgdXBkYXRpbmcgQXJjTWVudS5cbiAtIEluc3RhbGwgb25lIG9mIHRoZSBmb2xsb3dpbmcgcGFja2FnZXM6ICdnaXIxLjItZ21lbnUtMy4wJyBvciAnZ25vbWUtbWVudXMnXG5cbkdlbmVyYWwgSGVscDpcbiAtIFZpc2l0IGh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUvLS93aWtpcy9ob21lIiwKICAiZXh0ZW5zaW9uLWlkIjogImFyY21lbnUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcmNtZW51IiwKICAibmFtZSI6ICJBcmNNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFyY21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgInV1aWQiOiAiYXJjbWVudUBhcmNtZW51LmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"}, "41": {"version": "27", "sha256": "0ihy71gsa651gv8anvzhzsjcqbcpqk7zpw381jaz49bbz5lbs59f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIG1lbnUgZm9yIEdOT01FIFNoZWxsXG5cbkZlYXR1cmVzIGluY2x1ZGU6IHZhcmlvdXMgbWVudSBsYXlvdXRzLCBidWlsdCBpbiBHTk9NRSBzZWFyY2gsIHF1aWNrIGFjY2VzcyB0byBzeXN0ZW0gc2hvcnRjdXRzLCBhbmQgbXVjaCBtb3JlIVxuXG5Db21tb24gc29sdXRpb25zIGZvciBFUlJPUiBtZXNzYWdlOlxuIC0gUmVzdGFydCB5b3VyIEdOT01FIHNlc3Npb24gYWZ0ZXIgdXBkYXRpbmcgQXJjTWVudS5cbiAtIEluc3RhbGwgb25lIG9mIHRoZSBmb2xsb3dpbmcgcGFja2FnZXM6ICdnaXIxLjItZ21lbnUtMy4wJyBvciAnZ25vbWUtbWVudXMnXG5cbkdlbmVyYWwgSGVscDpcbiAtIFZpc2l0IGh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUvLS93aWtpcy9ob21lIiwKICAiZXh0ZW5zaW9uLWlkIjogImFyY21lbnUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcmNtZW51IiwKICAibmFtZSI6ICJBcmNNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFyY21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgInV1aWQiOiAiYXJjbWVudUBhcmNtZW51LmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"}, "42": {"version": "30", "sha256": "095rza1h8fdswv7ifppf7q9j61i17fp259xhf6mj7l08jx5hi2dm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIG1lbnUgZm9yIEdOT01FIFNoZWxsXG5cbkZlYXR1cmVzIGluY2x1ZGU6IHZhcmlvdXMgbWVudSBsYXlvdXRzLCBidWlsdCBpbiBHTk9NRSBzZWFyY2gsIHF1aWNrIGFjY2VzcyB0byBzeXN0ZW0gc2hvcnRjdXRzLCBhbmQgbXVjaCBtb3JlIVxuXG5Db21tb24gc29sdXRpb25zIGZvciBFUlJPUiBtZXNzYWdlOlxuIC0gUmVzdGFydCB5b3VyIEdOT01FIHNlc3Npb24gYWZ0ZXIgdXBkYXRpbmcgQXJjTWVudS5cbiAtIEluc3RhbGwgb25lIG9mIHRoZSBmb2xsb3dpbmcgcGFja2FnZXM6ICdnaXIxLjItZ21lbnUtMy4wJyBvciAnZ25vbWUtbWVudXMnXG5cbkdlbmVyYWwgSGVscDpcbiAtIFZpc2l0IGh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUvLS93aWtpcy9ob21lIiwKICAiZXh0ZW5zaW9uLWlkIjogImFyY21lbnUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcmNtZW51IiwKICAibmFtZSI6ICJBcmNNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFyY21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDMwCn0="}}}
 , {"uuid": "fixedimelist@alynx.one", "name": "Fixed IME List", "pname": "fixed-ime-list", "description": "Make the IME list in fixed sequence instead of MRU.", "link": "https://extensions.gnome.org/extension/3663/fixed-ime-list/", "shell_version_map": {"38": {"version": "6", "sha256": "0v99flnb23cjv32wr7r077q29jvgs7j5fjx6dc6qm2n04f1qiibz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIElNRSBsaXN0IGluIGZpeGVkIHNlcXVlbmNlIGluc3RlYWQgb2YgTVJVLiIsCiAgIm5hbWUiOiAiRml4ZWQgSU1FIExpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWx5bnhaaG91L2dub21lLXNoZWxsLWV4dGVuc2lvbi1maXhlZC1pbWUtbGlzdC8iLAogICJ1dWlkIjogImZpeGVkaW1lbGlzdEBhbHlueC5vbmUiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "0v99flnb23cjv32wr7r077q29jvgs7j5fjx6dc6qm2n04f1qiibz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIElNRSBsaXN0IGluIGZpeGVkIHNlcXVlbmNlIGluc3RlYWQgb2YgTVJVLiIsCiAgIm5hbWUiOiAiRml4ZWQgSU1FIExpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWx5bnhaaG91L2dub21lLXNoZWxsLWV4dGVuc2lvbi1maXhlZC1pbWUtbGlzdC8iLAogICJ1dWlkIjogImZpeGVkaW1lbGlzdEBhbHlueC5vbmUiLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "topindicatorapp@quiro9.com", "name": "Top Indicator App", "pname": "top-indicator-app", "description": "This extension is 'appindicators' from ubuntu, renamed 'top indicator app' under the terms of the GPL v2 +. it is the extension itself that Ubuntu offers as a native experience on your system, but so you can install it in other distros since the current one in gnome-extensions is empty.I will offer stable updates when possible.", "link": "https://extensions.gnome.org/extension/3681/top-indicator-app/", "shell_version_map": {"38": {"version": "2", "sha256": "12r4fxgsgd7jn001vlzqrsd86ci62zxk0b9p3bkdqh6g5hj3la35", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGlzICdhcHBpbmRpY2F0b3JzJyBmcm9tIHVidW50dSwgcmVuYW1lZCAndG9wIGluZGljYXRvciBhcHAnIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR1BMIHYyICsuIGl0IGlzIHRoZSBleHRlbnNpb24gaXRzZWxmIHRoYXQgVWJ1bnR1IG9mZmVycyBhcyBhIG5hdGl2ZSBleHBlcmllbmNlIG9uIHlvdXIgc3lzdGVtLCBidXQgc28geW91IGNhbiBpbnN0YWxsIGl0IGluIG90aGVyIGRpc3Ryb3Mgc2luY2UgdGhlIGN1cnJlbnQgb25lIGluIGdub21lLWV4dGVuc2lvbnMgaXMgZW1wdHkuSSB3aWxsIG9mZmVyIHN0YWJsZSB1cGRhdGVzIHdoZW4gcG9zc2libGUuIiwKICAibmFtZSI6ICJUb3AgSW5kaWNhdG9yIEFwcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3VidW50dS9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXBwaW5kaWNhdG9yIiwKICAidXVpZCI6ICJ0b3BpbmRpY2F0b3JhcHBAcXVpcm85LmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
-, {"uuid": "reorder-workspaces@jer.dev", "name": "Reorder Workspaces", "pname": "reorder-workspaces", "description": "Move workspaces up or down in the overview with Alt+Up/Alt+Down", "link": "https://extensions.gnome.org/extension/3685/reorder-workspaces/", "shell_version_map": {"38": {"version": "6", "sha256": "1f0hl2dzl75dwcv8jzx3rk1laqd9y9m32g219nvbhsmk8rjxfc31", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgd29ya3NwYWNlcyB1cCBvciBkb3duIGluIHRoZSBvdmVydmlldyB3aXRoIEFsdCtVcC9BbHQrRG93biIsCiAgIm5hbWUiOiAiUmVvcmRlciBXb3Jrc3BhY2VzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnJlb3JkZXItd29ya3NwYWNlcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plcmVtaWFobWVnZWwvZ25vbWUtcmVvcmRlci13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJyZW9yZGVyLXdvcmtzcGFjZXNAamVyLmRldiIsCiAgInZlcnNpb24iOiA2Cn0="}}}
-, {"uuid": "eos-hack@endlessos.org", "name": "Hack", "pname": "hack", "description": "Add the Flip to Hack experience to the desktop", "link": "https://extensions.gnome.org/extension/3690/hack/", "shell_version_map": {"38": {"version": "7", "sha256": "1dm9471qpyghzh0vvwdcliqrshv3844wizkgcv4fiwccr346i6ga", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0aGUgRmxpcCB0byBIYWNrIGV4cGVyaWVuY2UgdG8gdGhlIGRlc2t0b3AiLAogICJuYW1lIjogIkhhY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmVuZGxlc3Nvcy5oYWNrLWV4dGVuc2lvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VuZGxlc3NtL2Vvcy1oYWNrLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZW9zLWhhY2tAZW5kbGVzc29zLm9yZyIsCiAgInZlcnNpb24iOiA3Cn0="}}}
+, {"uuid": "reorder-workspaces@jer.dev", "name": "Reorder Workspaces", "pname": "reorder-workspaces", "description": "Move workspaces up or down in the overview with Alt+Up/Alt+Down", "link": "https://extensions.gnome.org/extension/3685/reorder-workspaces/", "shell_version_map": {"38": {"version": "9", "sha256": "0imddvqpahlqm67pzr2afws29ang8kqc3kab58qbg0qz3nds21zz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgd29ya3NwYWNlcyB1cCBvciBkb3duIGluIHRoZSBvdmVydmlldyB3aXRoIEFsdCtVcC9BbHQrRG93biIsCiAgIm5hbWUiOiAiUmVvcmRlciBXb3Jrc3BhY2VzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnJlb3JkZXItd29ya3NwYWNlcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZXJlbWlhaG1lZ2VsL2dub21lLXJlb3JkZXItd29ya3NwYWNlcyIsCiAgInV1aWQiOiAicmVvcmRlci13b3Jrc3BhY2VzQGplci5kZXYiLAogICJ2ZXJzaW9uIjogOQp9"}, "40": {"version": "9", "sha256": "0imddvqpahlqm67pzr2afws29ang8kqc3kab58qbg0qz3nds21zz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgd29ya3NwYWNlcyB1cCBvciBkb3duIGluIHRoZSBvdmVydmlldyB3aXRoIEFsdCtVcC9BbHQrRG93biIsCiAgIm5hbWUiOiAiUmVvcmRlciBXb3Jrc3BhY2VzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnJlb3JkZXItd29ya3NwYWNlcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZXJlbWlhaG1lZ2VsL2dub21lLXJlb3JkZXItd29ya3NwYWNlcyIsCiAgInV1aWQiOiAicmVvcmRlci13b3Jrc3BhY2VzQGplci5kZXYiLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "0imddvqpahlqm67pzr2afws29ang8kqc3kab58qbg0qz3nds21zz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgd29ya3NwYWNlcyB1cCBvciBkb3duIGluIHRoZSBvdmVydmlldyB3aXRoIEFsdCtVcC9BbHQrRG93biIsCiAgIm5hbWUiOiAiUmVvcmRlciBXb3Jrc3BhY2VzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnJlb3JkZXItd29ya3NwYWNlcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZXJlbWlhaG1lZ2VsL2dub21lLXJlb3JkZXItd29ya3NwYWNlcyIsCiAgInV1aWQiOiAicmVvcmRlci13b3Jrc3BhY2VzQGplci5kZXYiLAogICJ2ZXJzaW9uIjogOQp9"}, "42": {"version": "9", "sha256": "0imddvqpahlqm67pzr2afws29ang8kqc3kab58qbg0qz3nds21zz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgd29ya3NwYWNlcyB1cCBvciBkb3duIGluIHRoZSBvdmVydmlldyB3aXRoIEFsdCtVcC9BbHQrRG93biIsCiAgIm5hbWUiOiAiUmVvcmRlciBXb3Jrc3BhY2VzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnJlb3JkZXItd29ya3NwYWNlcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZXJlbWlhaG1lZ2VsL2dub21lLXJlb3JkZXItd29ya3NwYWNlcyIsCiAgInV1aWQiOiAicmVvcmRlci13b3Jrc3BhY2VzQGplci5kZXYiLAogICJ2ZXJzaW9uIjogOQp9"}}}
+, {"uuid": "eos-hack@endlessos.org", "name": "Hack", "pname": "hack", "description": "Add the Flip to Hack experience to the desktop", "link": "https://extensions.gnome.org/extension/3690/hack/", "shell_version_map": {"38": {"version": "11", "sha256": "1m45rylhv1lw7vh8zmpsfcs1fiv0ah770gk14x965mkalqgph2ha", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0aGUgRmxpcCB0byBIYWNrIGV4cGVyaWVuY2UgdG8gdGhlIGRlc2t0b3AiLAogICJuYW1lIjogIkhhY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmVuZGxlc3Nvcy5oYWNrLWV4dGVuc2lvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VuZGxlc3NtL2Vvcy1oYWNrLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZW9zLWhhY2tAZW5kbGVzc29zLm9yZyIsCiAgInZlcnNpb24iOiAxMQp9"}, "40": {"version": "9", "sha256": "1j0sizyv7j6fdkp9ich8pfa78igf5f4fj2l4p2ncjc3zbz06a32z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0aGUgRmxpcCB0byBIYWNrIGV4cGVyaWVuY2UgdG8gdGhlIGRlc2t0b3AiLAogICJuYW1lIjogIkhhY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmVuZGxlc3Nvcy5oYWNrLWV4dGVuc2lvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VuZGxlc3NtL2Vvcy1oYWNrLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZW9zLWhhY2tAZW5kbGVzc29zLm9yZyIsCiAgInZlcnNpb24iOiA5Cn0="}, "41": {"version": "9", "sha256": "1j0sizyv7j6fdkp9ich8pfa78igf5f4fj2l4p2ncjc3zbz06a32z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0aGUgRmxpcCB0byBIYWNrIGV4cGVyaWVuY2UgdG8gdGhlIGRlc2t0b3AiLAogICJuYW1lIjogIkhhY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmVuZGxlc3Nvcy5oYWNrLWV4dGVuc2lvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VuZGxlc3NtL2Vvcy1oYWNrLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZW9zLWhhY2tAZW5kbGVzc29zLm9yZyIsCiAgInZlcnNpb24iOiA5Cn0="}, "42": {"version": "9", "sha256": "1j0sizyv7j6fdkp9ich8pfa78igf5f4fj2l4p2ncjc3zbz06a32z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0aGUgRmxpcCB0byBIYWNrIGV4cGVyaWVuY2UgdG8gdGhlIGRlc2t0b3AiLAogICJuYW1lIjogIkhhY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmVuZGxlc3Nvcy5oYWNrLWV4dGVuc2lvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VuZGxlc3NtL2Vvcy1oYWNrLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZW9zLWhhY2tAZW5kbGVzc29zLm9yZyIsCiAgInZlcnNpb24iOiA5Cn0="}}}
 , {"uuid": "desktop-scroller@calango", "name": "Desktop Scroller (GNOME 3.38)", "pname": "desktop-scroller-gnome-338", "description": "Switch between desktops scrolling at the upper edge of the screen, including in overview. Change your delay between scroll events in extension.js. If you want to scroll on more lines from the top of the screen just remember that other extensions or indicators will not be able to catch their scroll events.", "link": "https://extensions.gnome.org/extension/3709/desktop-scroller-gnome-338/", "shell_version_map": {"38": {"version": "1", "sha256": "11g4w7bbzb8p9w78w83jpslgbs74rc26np0b1v35dg7nc7x33q4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCBiZXR3ZWVuIGRlc2t0b3BzIHNjcm9sbGluZyBhdCB0aGUgdXBwZXIgZWRnZSBvZiB0aGUgc2NyZWVuLCBpbmNsdWRpbmcgaW4gb3ZlcnZpZXcuIENoYW5nZSB5b3VyIGRlbGF5IGJldHdlZW4gc2Nyb2xsIGV2ZW50cyBpbiBleHRlbnNpb24uanMuIElmIHlvdSB3YW50IHRvIHNjcm9sbCBvbiBtb3JlIGxpbmVzIGZyb20gdGhlIHRvcCBvZiB0aGUgc2NyZWVuIGp1c3QgcmVtZW1iZXIgdGhhdCBvdGhlciBleHRlbnNpb25zIG9yIGluZGljYXRvcnMgd2lsbCBub3QgYmUgYWJsZSB0byBjYXRjaCB0aGVpciBzY3JvbGwgZXZlbnRzLiIsCiAgIm5hbWUiOiAiRGVza3RvcCBTY3JvbGxlciAoR05PTUUgMy4zOCkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzguMSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJkZXNrdG9wLXNjcm9sbGVyQGNhbGFuZ28iLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "appmenu-color-icon@yanbab.gitlab.com", "name": "Colored AppMenu Icon", "pname": "color-app-menu-icon", "description": "Replace the symbolic application menu icon with the colored one", "link": "https://extensions.gnome.org/extension/3712/color-app-menu-icon/", "shell_version_map": {"38": {"version": "1", "sha256": "17bsnqimkanf6c3d3qjvhggi5r3xjp6pha05fyh6b1ak9m9lvg53", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgdGhlIHN5bWJvbGljIGFwcGxpY2F0aW9uIG1lbnUgaWNvbiB3aXRoIHRoZSBjb2xvcmVkIG9uZSIsCiAgIm5hbWUiOiAiQ29sb3JlZCBBcHBNZW51IEljb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS95YW5iYWIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXJlZ3VsYXItYXBwbWVudS1pY29uIiwKICAidXVpZCI6ICJhcHBtZW51LWNvbG9yLWljb25AeWFuYmFiLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "snap-manager@fthx", "name": "Snap Manager", "pname": "snap-manager", "description": "Popup menu in the top bar to easily manage snap tasks (list, changes, refresh, remove, install...). Update notification at session start-up.\n\n All the results of actions are displayed in GNOME Terminal, so you can exactly know what you are doing and what is processing. Very light extension, no background process, no periodic background task. You can turn off refresh check and associated notifications (just a variable to toggle in <extension_folder>/extension.js). You can disable auto updates for a limited time (up to one month, renewable), consequently be notified of snap updates and manually install them. \n\n This is not an official Ubuntu/Canonical extension.", "link": "https://extensions.gnome.org/extension/3715/snap-manager/", "shell_version_map": {"38": {"version": "35", "sha256": "1dc34krz3f42afjwilkp4vrv5b1k3fgwzhmy7ry1vp0czgzhbxi1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBvcHVwIG1lbnUgaW4gdGhlIHRvcCBiYXIgdG8gZWFzaWx5IG1hbmFnZSBzbmFwIHRhc2tzIChsaXN0LCBjaGFuZ2VzLCByZWZyZXNoLCByZW1vdmUsIGluc3RhbGwuLi4pLiBVcGRhdGUgbm90aWZpY2F0aW9uIGF0IHNlc3Npb24gc3RhcnQtdXAuXG5cbiBBbGwgdGhlIHJlc3VsdHMgb2YgYWN0aW9ucyBhcmUgZGlzcGxheWVkIGluIEdOT01FIFRlcm1pbmFsLCBzbyB5b3UgY2FuIGV4YWN0bHkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgYW5kIHdoYXQgaXMgcHJvY2Vzc2luZy4gVmVyeSBsaWdodCBleHRlbnNpb24sIG5vIGJhY2tncm91bmQgcHJvY2Vzcywgbm8gcGVyaW9kaWMgYmFja2dyb3VuZCB0YXNrLiBZb3UgY2FuIHR1cm4gb2ZmIHJlZnJlc2ggY2hlY2sgYW5kIGFzc29jaWF0ZWQgbm90aWZpY2F0aW9ucyAoanVzdCBhIHZhcmlhYmxlIHRvIHRvZ2dsZSBpbiA8ZXh0ZW5zaW9uX2ZvbGRlcj4vZXh0ZW5zaW9uLmpzKS4gWW91IGNhbiBkaXNhYmxlIGF1dG8gdXBkYXRlcyBmb3IgYSBsaW1pdGVkIHRpbWUgKHVwIHRvIG9uZSBtb250aCwgcmVuZXdhYmxlKSwgY29uc2VxdWVudGx5IGJlIG5vdGlmaWVkIG9mIHNuYXAgdXBkYXRlcyBhbmQgbWFudWFsbHkgaW5zdGFsbCB0aGVtLiBcblxuIFRoaXMgaXMgbm90IGFuIG9mZmljaWFsIFVidW50dS9DYW5vbmljYWwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiU25hcCBNYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3NuYXAtbWFuYWdlciIsCiAgInV1aWQiOiAic25hcC1tYW5hZ2VyQGZ0aHgiLAogICJ2ZXJzaW9uIjogMzUKfQ=="}, "40": {"version": "35", "sha256": "1dc34krz3f42afjwilkp4vrv5b1k3fgwzhmy7ry1vp0czgzhbxi1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBvcHVwIG1lbnUgaW4gdGhlIHRvcCBiYXIgdG8gZWFzaWx5IG1hbmFnZSBzbmFwIHRhc2tzIChsaXN0LCBjaGFuZ2VzLCByZWZyZXNoLCByZW1vdmUsIGluc3RhbGwuLi4pLiBVcGRhdGUgbm90aWZpY2F0aW9uIGF0IHNlc3Npb24gc3RhcnQtdXAuXG5cbiBBbGwgdGhlIHJlc3VsdHMgb2YgYWN0aW9ucyBhcmUgZGlzcGxheWVkIGluIEdOT01FIFRlcm1pbmFsLCBzbyB5b3UgY2FuIGV4YWN0bHkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgYW5kIHdoYXQgaXMgcHJvY2Vzc2luZy4gVmVyeSBsaWdodCBleHRlbnNpb24sIG5vIGJhY2tncm91bmQgcHJvY2Vzcywgbm8gcGVyaW9kaWMgYmFja2dyb3VuZCB0YXNrLiBZb3UgY2FuIHR1cm4gb2ZmIHJlZnJlc2ggY2hlY2sgYW5kIGFzc29jaWF0ZWQgbm90aWZpY2F0aW9ucyAoanVzdCBhIHZhcmlhYmxlIHRvIHRvZ2dsZSBpbiA8ZXh0ZW5zaW9uX2ZvbGRlcj4vZXh0ZW5zaW9uLmpzKS4gWW91IGNhbiBkaXNhYmxlIGF1dG8gdXBkYXRlcyBmb3IgYSBsaW1pdGVkIHRpbWUgKHVwIHRvIG9uZSBtb250aCwgcmVuZXdhYmxlKSwgY29uc2VxdWVudGx5IGJlIG5vdGlmaWVkIG9mIHNuYXAgdXBkYXRlcyBhbmQgbWFudWFsbHkgaW5zdGFsbCB0aGVtLiBcblxuIFRoaXMgaXMgbm90IGFuIG9mZmljaWFsIFVidW50dS9DYW5vbmljYWwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiU25hcCBNYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3NuYXAtbWFuYWdlciIsCiAgInV1aWQiOiAic25hcC1tYW5hZ2VyQGZ0aHgiLAogICJ2ZXJzaW9uIjogMzUKfQ=="}, "41": {"version": "35", "sha256": "1dc34krz3f42afjwilkp4vrv5b1k3fgwzhmy7ry1vp0czgzhbxi1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBvcHVwIG1lbnUgaW4gdGhlIHRvcCBiYXIgdG8gZWFzaWx5IG1hbmFnZSBzbmFwIHRhc2tzIChsaXN0LCBjaGFuZ2VzLCByZWZyZXNoLCByZW1vdmUsIGluc3RhbGwuLi4pLiBVcGRhdGUgbm90aWZpY2F0aW9uIGF0IHNlc3Npb24gc3RhcnQtdXAuXG5cbiBBbGwgdGhlIHJlc3VsdHMgb2YgYWN0aW9ucyBhcmUgZGlzcGxheWVkIGluIEdOT01FIFRlcm1pbmFsLCBzbyB5b3UgY2FuIGV4YWN0bHkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgYW5kIHdoYXQgaXMgcHJvY2Vzc2luZy4gVmVyeSBsaWdodCBleHRlbnNpb24sIG5vIGJhY2tncm91bmQgcHJvY2Vzcywgbm8gcGVyaW9kaWMgYmFja2dyb3VuZCB0YXNrLiBZb3UgY2FuIHR1cm4gb2ZmIHJlZnJlc2ggY2hlY2sgYW5kIGFzc29jaWF0ZWQgbm90aWZpY2F0aW9ucyAoanVzdCBhIHZhcmlhYmxlIHRvIHRvZ2dsZSBpbiA8ZXh0ZW5zaW9uX2ZvbGRlcj4vZXh0ZW5zaW9uLmpzKS4gWW91IGNhbiBkaXNhYmxlIGF1dG8gdXBkYXRlcyBmb3IgYSBsaW1pdGVkIHRpbWUgKHVwIHRvIG9uZSBtb250aCwgcmVuZXdhYmxlKSwgY29uc2VxdWVudGx5IGJlIG5vdGlmaWVkIG9mIHNuYXAgdXBkYXRlcyBhbmQgbWFudWFsbHkgaW5zdGFsbCB0aGVtLiBcblxuIFRoaXMgaXMgbm90IGFuIG9mZmljaWFsIFVidW50dS9DYW5vbmljYWwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiU25hcCBNYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3NuYXAtbWFuYWdlciIsCiAgInV1aWQiOiAic25hcC1tYW5hZ2VyQGZ0aHgiLAogICJ2ZXJzaW9uIjogMzUKfQ=="}}}
 , {"uuid": "hide-dash-forked@farnasirim.com", "name": "Hide Dash Forked", "pname": "hide-dash-forked", "description": "Hide dash menu from gnome overview", "link": "https://extensions.gnome.org/extension/3718/hide-dash-forked/", "shell_version_map": {"38": {"version": "3", "sha256": "1j0ca2nwj8bhnn2vv3fgjhglg8af9iqa992i7d2mvxx4zisj8rdq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgZGFzaCBtZW51IGZyb20gZ25vbWUgb3ZlcnZpZXciLAogICJuYW1lIjogIkhpZGUgRGFzaCBGb3JrZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mYXJuYXNpcmltL2dub21lLXNoZWxsLWV4dGVuc2lvbi1oaWRlLWRhc2gtZm9ya2VkIiwKICAidXVpZCI6ICJoaWRlLWRhc2gtZm9ya2VkQGZhcm5hc2lyaW0uY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
-, {"uuid": "netspeedsimplified@prateekmedia.extension", "name": "Net speed Simplified", "pname": "net-speed-simplified", "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n☞ Add Use System Color Scheme option \n☞ Update Preferences logic \n☞ Filter more devices for net speed indicator \n\nFull CHANGELOG can be found on github releases page \n\nFeatures \n1. Clean UI \n2. Adjustable Refresh rate \n3. Preferences to manage extension \n4. Vertical Alignment Support \n5. Two Icon sets for Indicators \n\nFeature Highlights for Preferences \n1. Lock Mouse Actions option \n2. Advance Position options to pinpoint where to place the indicator on the Panel. \n3. Refresh time option by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n4. Show Upload First option to show upload speed first \n5. Color Customizations for speed indicators \n6. Hide when Disconnected option \n7. Use Shorten Units option \n8. Limit Unit option and more... \n\nModes \n- Total net speed in b/s, kb/s, ... \n- Total net speed in B/s, KB/s, ... \n- Up & down speed in b/s, kb/s, ... \n- Up & down speed in B/s, KB/s, ... \n- Total downloads in B, KB, ... (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click(in 1-4 modes): Toggle the visibility of total loaded. \n- Right click(in 5th mode): Reset total downloaded. \n- Right Click(Four consecutive times): Toggle through horizontal/vertical alignment. \n- Middle click: Cycle through the font sizes.", "link": "https://extensions.gnome.org/extension/3724/net-speed-simplified/", "shell_version_map": {"38": {"version": "33", "sha256": "146p9vbwdp1d9h36jsvi6gkyklig06ic6gswln5cn5rck3w6m7bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIFVzZSBTeXN0ZW0gQ29sb3IgU2NoZW1lIG9wdGlvbiBcblx1MjYxZSBVcGRhdGUgUHJlZmVyZW5jZXMgbG9naWMgXG5cdTI2MWUgRmlsdGVyIG1vcmUgZGV2aWNlcyBmb3IgbmV0IHNwZWVkIGluZGljYXRvciBcblxuRnVsbCBDSEFOR0VMT0cgY2FuIGJlIGZvdW5kIG9uIGdpdGh1YiByZWxlYXNlcyBwYWdlIFxuXG5GZWF0dXJlcyBcbjEuIENsZWFuIFVJIFxuMi4gQWRqdXN0YWJsZSBSZWZyZXNoIHJhdGUgXG4zLiBQcmVmZXJlbmNlcyB0byBtYW5hZ2UgZXh0ZW5zaW9uIFxuNC4gVmVydGljYWwgQWxpZ25tZW50IFN1cHBvcnQgXG41LiBUd28gSWNvbiBzZXRzIGZvciBJbmRpY2F0b3JzIFxuXG5GZWF0dXJlIEhpZ2hsaWdodHMgZm9yIFByZWZlcmVuY2VzIFxuMS4gTG9jayBNb3VzZSBBY3Rpb25zIG9wdGlvbiBcbjIuIEFkdmFuY2UgUG9zaXRpb24gb3B0aW9ucyB0byBwaW5wb2ludCB3aGVyZSB0byBwbGFjZSB0aGUgaW5kaWNhdG9yIG9uIHRoZSBQYW5lbC4gXG4zLiBSZWZyZXNoIHRpbWUgb3B0aW9uIGJ5IHdoaWNoIHlvdSBjYW4gY2hhbmdlIHJlZnJlc2ggcmF0ZSB2YWx1ZSBiZXR3ZWVuIDEuMCBzZWMgdG8gMTAuMCBzZWMuIFxuNC4gU2hvdyBVcGxvYWQgRmlyc3Qgb3B0aW9uIHRvIHNob3cgdXBsb2FkIHNwZWVkIGZpcnN0IFxuNS4gQ29sb3IgQ3VzdG9taXphdGlvbnMgZm9yIHNwZWVkIGluZGljYXRvcnMgXG42LiBIaWRlIHdoZW4gRGlzY29ubmVjdGVkIG9wdGlvbiBcbjcuIFVzZSBTaG9ydGVuIFVuaXRzIG9wdGlvbiBcbjguIExpbWl0IFVuaXQgb3B0aW9uIGFuZCBtb3JlLi4uIFxuXG5Nb2RlcyBcbi0gVG90YWwgbmV0IHNwZWVkIGluIGIvcywga2IvcywgLi4uIFxuLSBUb3RhbCBuZXQgc3BlZWQgaW4gQi9zLCBLQi9zLCAuLi4gXG4tIFVwICYgZG93biBzcGVlZCBpbiBiL3MsIGtiL3MsIC4uLiBcbi0gVXAgJiBkb3duIHNwZWVkIGluIEIvcywgS0IvcywgLi4uIFxuLSBUb3RhbCBkb3dubG9hZHMgaW4gQiwgS0IsIC4uLiAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcikgXG5cbk1vdXNlIEV2ZW50cyBcbi0gTGVmdCBjbGljayB0byBjaGFuZ2UgbW9kZXMgXG4tIFJpZ2h0IGNsaWNrKGluIDEtNCBtb2Rlcyk6IFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0b3RhbCBsb2FkZWQuIFxuLSBSaWdodCBjbGljayhpbiA1dGggbW9kZSk6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuIFxuLSBSaWdodCBDbGljayhGb3VyIGNvbnNlY3V0aXZlIHRpbWVzKTogVG9nZ2xlIHRocm91Z2ggaG9yaXpvbnRhbC92ZXJ0aWNhbCBhbGlnbm1lbnQuIFxuLSBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuIiwKICAibmFtZSI6ICJOZXQgc3BlZWQgU2ltcGxpZmllZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhdGVla21lZGlhL25ldHNwZWVkc2ltcGxpZmllZCIsCiAgInV1aWQiOiAibmV0c3BlZWRzaW1wbGlmaWVkQHByYXRlZWttZWRpYS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "40": {"version": "33", "sha256": "146p9vbwdp1d9h36jsvi6gkyklig06ic6gswln5cn5rck3w6m7bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIFVzZSBTeXN0ZW0gQ29sb3IgU2NoZW1lIG9wdGlvbiBcblx1MjYxZSBVcGRhdGUgUHJlZmVyZW5jZXMgbG9naWMgXG5cdTI2MWUgRmlsdGVyIG1vcmUgZGV2aWNlcyBmb3IgbmV0IHNwZWVkIGluZGljYXRvciBcblxuRnVsbCBDSEFOR0VMT0cgY2FuIGJlIGZvdW5kIG9uIGdpdGh1YiByZWxlYXNlcyBwYWdlIFxuXG5GZWF0dXJlcyBcbjEuIENsZWFuIFVJIFxuMi4gQWRqdXN0YWJsZSBSZWZyZXNoIHJhdGUgXG4zLiBQcmVmZXJlbmNlcyB0byBtYW5hZ2UgZXh0ZW5zaW9uIFxuNC4gVmVydGljYWwgQWxpZ25tZW50IFN1cHBvcnQgXG41LiBUd28gSWNvbiBzZXRzIGZvciBJbmRpY2F0b3JzIFxuXG5GZWF0dXJlIEhpZ2hsaWdodHMgZm9yIFByZWZlcmVuY2VzIFxuMS4gTG9jayBNb3VzZSBBY3Rpb25zIG9wdGlvbiBcbjIuIEFkdmFuY2UgUG9zaXRpb24gb3B0aW9ucyB0byBwaW5wb2ludCB3aGVyZSB0byBwbGFjZSB0aGUgaW5kaWNhdG9yIG9uIHRoZSBQYW5lbC4gXG4zLiBSZWZyZXNoIHRpbWUgb3B0aW9uIGJ5IHdoaWNoIHlvdSBjYW4gY2hhbmdlIHJlZnJlc2ggcmF0ZSB2YWx1ZSBiZXR3ZWVuIDEuMCBzZWMgdG8gMTAuMCBzZWMuIFxuNC4gU2hvdyBVcGxvYWQgRmlyc3Qgb3B0aW9uIHRvIHNob3cgdXBsb2FkIHNwZWVkIGZpcnN0IFxuNS4gQ29sb3IgQ3VzdG9taXphdGlvbnMgZm9yIHNwZWVkIGluZGljYXRvcnMgXG42LiBIaWRlIHdoZW4gRGlzY29ubmVjdGVkIG9wdGlvbiBcbjcuIFVzZSBTaG9ydGVuIFVuaXRzIG9wdGlvbiBcbjguIExpbWl0IFVuaXQgb3B0aW9uIGFuZCBtb3JlLi4uIFxuXG5Nb2RlcyBcbi0gVG90YWwgbmV0IHNwZWVkIGluIGIvcywga2IvcywgLi4uIFxuLSBUb3RhbCBuZXQgc3BlZWQgaW4gQi9zLCBLQi9zLCAuLi4gXG4tIFVwICYgZG93biBzcGVlZCBpbiBiL3MsIGtiL3MsIC4uLiBcbi0gVXAgJiBkb3duIHNwZWVkIGluIEIvcywgS0IvcywgLi4uIFxuLSBUb3RhbCBkb3dubG9hZHMgaW4gQiwgS0IsIC4uLiAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcikgXG5cbk1vdXNlIEV2ZW50cyBcbi0gTGVmdCBjbGljayB0byBjaGFuZ2UgbW9kZXMgXG4tIFJpZ2h0IGNsaWNrKGluIDEtNCBtb2Rlcyk6IFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0b3RhbCBsb2FkZWQuIFxuLSBSaWdodCBjbGljayhpbiA1dGggbW9kZSk6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuIFxuLSBSaWdodCBDbGljayhGb3VyIGNvbnNlY3V0aXZlIHRpbWVzKTogVG9nZ2xlIHRocm91Z2ggaG9yaXpvbnRhbC92ZXJ0aWNhbCBhbGlnbm1lbnQuIFxuLSBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuIiwKICAibmFtZSI6ICJOZXQgc3BlZWQgU2ltcGxpZmllZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhdGVla21lZGlhL25ldHNwZWVkc2ltcGxpZmllZCIsCiAgInV1aWQiOiAibmV0c3BlZWRzaW1wbGlmaWVkQHByYXRlZWttZWRpYS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "41": {"version": "33", "sha256": "146p9vbwdp1d9h36jsvi6gkyklig06ic6gswln5cn5rck3w6m7bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIFVzZSBTeXN0ZW0gQ29sb3IgU2NoZW1lIG9wdGlvbiBcblx1MjYxZSBVcGRhdGUgUHJlZmVyZW5jZXMgbG9naWMgXG5cdTI2MWUgRmlsdGVyIG1vcmUgZGV2aWNlcyBmb3IgbmV0IHNwZWVkIGluZGljYXRvciBcblxuRnVsbCBDSEFOR0VMT0cgY2FuIGJlIGZvdW5kIG9uIGdpdGh1YiByZWxlYXNlcyBwYWdlIFxuXG5GZWF0dXJlcyBcbjEuIENsZWFuIFVJIFxuMi4gQWRqdXN0YWJsZSBSZWZyZXNoIHJhdGUgXG4zLiBQcmVmZXJlbmNlcyB0byBtYW5hZ2UgZXh0ZW5zaW9uIFxuNC4gVmVydGljYWwgQWxpZ25tZW50IFN1cHBvcnQgXG41LiBUd28gSWNvbiBzZXRzIGZvciBJbmRpY2F0b3JzIFxuXG5GZWF0dXJlIEhpZ2hsaWdodHMgZm9yIFByZWZlcmVuY2VzIFxuMS4gTG9jayBNb3VzZSBBY3Rpb25zIG9wdGlvbiBcbjIuIEFkdmFuY2UgUG9zaXRpb24gb3B0aW9ucyB0byBwaW5wb2ludCB3aGVyZSB0byBwbGFjZSB0aGUgaW5kaWNhdG9yIG9uIHRoZSBQYW5lbC4gXG4zLiBSZWZyZXNoIHRpbWUgb3B0aW9uIGJ5IHdoaWNoIHlvdSBjYW4gY2hhbmdlIHJlZnJlc2ggcmF0ZSB2YWx1ZSBiZXR3ZWVuIDEuMCBzZWMgdG8gMTAuMCBzZWMuIFxuNC4gU2hvdyBVcGxvYWQgRmlyc3Qgb3B0aW9uIHRvIHNob3cgdXBsb2FkIHNwZWVkIGZpcnN0IFxuNS4gQ29sb3IgQ3VzdG9taXphdGlvbnMgZm9yIHNwZWVkIGluZGljYXRvcnMgXG42LiBIaWRlIHdoZW4gRGlzY29ubmVjdGVkIG9wdGlvbiBcbjcuIFVzZSBTaG9ydGVuIFVuaXRzIG9wdGlvbiBcbjguIExpbWl0IFVuaXQgb3B0aW9uIGFuZCBtb3JlLi4uIFxuXG5Nb2RlcyBcbi0gVG90YWwgbmV0IHNwZWVkIGluIGIvcywga2IvcywgLi4uIFxuLSBUb3RhbCBuZXQgc3BlZWQgaW4gQi9zLCBLQi9zLCAuLi4gXG4tIFVwICYgZG93biBzcGVlZCBpbiBiL3MsIGtiL3MsIC4uLiBcbi0gVXAgJiBkb3duIHNwZWVkIGluIEIvcywgS0IvcywgLi4uIFxuLSBUb3RhbCBkb3dubG9hZHMgaW4gQiwgS0IsIC4uLiAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcikgXG5cbk1vdXNlIEV2ZW50cyBcbi0gTGVmdCBjbGljayB0byBjaGFuZ2UgbW9kZXMgXG4tIFJpZ2h0IGNsaWNrKGluIDEtNCBtb2Rlcyk6IFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0b3RhbCBsb2FkZWQuIFxuLSBSaWdodCBjbGljayhpbiA1dGggbW9kZSk6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuIFxuLSBSaWdodCBDbGljayhGb3VyIGNvbnNlY3V0aXZlIHRpbWVzKTogVG9nZ2xlIHRocm91Z2ggaG9yaXpvbnRhbC92ZXJ0aWNhbCBhbGlnbm1lbnQuIFxuLSBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuIiwKICAibmFtZSI6ICJOZXQgc3BlZWQgU2ltcGxpZmllZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhdGVla21lZGlhL25ldHNwZWVkc2ltcGxpZmllZCIsCiAgInV1aWQiOiAibmV0c3BlZWRzaW1wbGlmaWVkQHByYXRlZWttZWRpYS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}}}
+, {"uuid": "netspeedsimplified@prateekmedia.extension", "name": "Net speed Simplified", "pname": "net-speed-simplified", "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n☞ Add Use System Color Scheme option \n☞ Update Preferences logic \n☞ Filter more devices for net speed indicator \n\nFull CHANGELOG can be found on github releases page \n\nFeatures \n1. Clean UI \n2. Adjustable Refresh rate \n3. Preferences to manage extension \n4. Vertical Alignment Support \n5. Two Icon sets for Indicators \n\nFeature Highlights for Preferences \n1. Lock Mouse Actions option \n2. Advance Position options to pinpoint where to place the indicator on the Panel. \n3. Refresh time option by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n4. Show Upload First option to show upload speed first \n5. Color Customizations for speed indicators \n6. Hide when Disconnected option \n7. Use Shorten Units option \n8. Limit Unit option and more... \n\nModes \n- Total net speed in b/s, kb/s, ... \n- Total net speed in B/s, KB/s, ... \n- Up & down speed in b/s, kb/s, ... \n- Up & down speed in B/s, KB/s, ... \n- Total downloads in B, KB, ... (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click(in 1-4 modes): Toggle the visibility of total loaded. \n- Right click(in 5th mode): Reset total downloaded. \n- Right Click(Four consecutive times): Toggle through horizontal/vertical alignment. \n- Middle click: Cycle through the font sizes.", "link": "https://extensions.gnome.org/extension/3724/net-speed-simplified/", "shell_version_map": {"38": {"version": "35", "sha256": "0nh00iach2mnrdij1ywp5l6vr064q9dfwwjv4g2n4mqiz9jxr1lv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIFVzZSBTeXN0ZW0gQ29sb3IgU2NoZW1lIG9wdGlvbiBcblx1MjYxZSBVcGRhdGUgUHJlZmVyZW5jZXMgbG9naWMgXG5cdTI2MWUgRmlsdGVyIG1vcmUgZGV2aWNlcyBmb3IgbmV0IHNwZWVkIGluZGljYXRvciBcblxuRnVsbCBDSEFOR0VMT0cgY2FuIGJlIGZvdW5kIG9uIGdpdGh1YiByZWxlYXNlcyBwYWdlIFxuXG5GZWF0dXJlcyBcbjEuIENsZWFuIFVJIFxuMi4gQWRqdXN0YWJsZSBSZWZyZXNoIHJhdGUgXG4zLiBQcmVmZXJlbmNlcyB0byBtYW5hZ2UgZXh0ZW5zaW9uIFxuNC4gVmVydGljYWwgQWxpZ25tZW50IFN1cHBvcnQgXG41LiBUd28gSWNvbiBzZXRzIGZvciBJbmRpY2F0b3JzIFxuXG5GZWF0dXJlIEhpZ2hsaWdodHMgZm9yIFByZWZlcmVuY2VzIFxuMS4gTG9jayBNb3VzZSBBY3Rpb25zIG9wdGlvbiBcbjIuIEFkdmFuY2UgUG9zaXRpb24gb3B0aW9ucyB0byBwaW5wb2ludCB3aGVyZSB0byBwbGFjZSB0aGUgaW5kaWNhdG9yIG9uIHRoZSBQYW5lbC4gXG4zLiBSZWZyZXNoIHRpbWUgb3B0aW9uIGJ5IHdoaWNoIHlvdSBjYW4gY2hhbmdlIHJlZnJlc2ggcmF0ZSB2YWx1ZSBiZXR3ZWVuIDEuMCBzZWMgdG8gMTAuMCBzZWMuIFxuNC4gU2hvdyBVcGxvYWQgRmlyc3Qgb3B0aW9uIHRvIHNob3cgdXBsb2FkIHNwZWVkIGZpcnN0IFxuNS4gQ29sb3IgQ3VzdG9taXphdGlvbnMgZm9yIHNwZWVkIGluZGljYXRvcnMgXG42LiBIaWRlIHdoZW4gRGlzY29ubmVjdGVkIG9wdGlvbiBcbjcuIFVzZSBTaG9ydGVuIFVuaXRzIG9wdGlvbiBcbjguIExpbWl0IFVuaXQgb3B0aW9uIGFuZCBtb3JlLi4uIFxuXG5Nb2RlcyBcbi0gVG90YWwgbmV0IHNwZWVkIGluIGIvcywga2IvcywgLi4uIFxuLSBUb3RhbCBuZXQgc3BlZWQgaW4gQi9zLCBLQi9zLCAuLi4gXG4tIFVwICYgZG93biBzcGVlZCBpbiBiL3MsIGtiL3MsIC4uLiBcbi0gVXAgJiBkb3duIHNwZWVkIGluIEIvcywgS0IvcywgLi4uIFxuLSBUb3RhbCBkb3dubG9hZHMgaW4gQiwgS0IsIC4uLiAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcikgXG5cbk1vdXNlIEV2ZW50cyBcbi0gTGVmdCBjbGljayB0byBjaGFuZ2UgbW9kZXMgXG4tIFJpZ2h0IGNsaWNrKGluIDEtNCBtb2Rlcyk6IFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0b3RhbCBsb2FkZWQuIFxuLSBSaWdodCBjbGljayhpbiA1dGggbW9kZSk6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuIFxuLSBSaWdodCBDbGljayhGb3VyIGNvbnNlY3V0aXZlIHRpbWVzKTogVG9nZ2xlIHRocm91Z2ggaG9yaXpvbnRhbC92ZXJ0aWNhbCBhbGlnbm1lbnQuIFxuLSBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuIiwKICAibmFtZSI6ICJOZXQgc3BlZWQgU2ltcGxpZmllZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ByYXRlZWttZWRpYS9uZXRzcGVlZHNpbXBsaWZpZWQiLAogICJ1dWlkIjogIm5ldHNwZWVkc2ltcGxpZmllZEBwcmF0ZWVrbWVkaWEuZXh0ZW5zaW9uIiwKICAidmVyc2lvbiI6IDM1Cn0="}, "40": {"version": "35", "sha256": "0nh00iach2mnrdij1ywp5l6vr064q9dfwwjv4g2n4mqiz9jxr1lv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIFVzZSBTeXN0ZW0gQ29sb3IgU2NoZW1lIG9wdGlvbiBcblx1MjYxZSBVcGRhdGUgUHJlZmVyZW5jZXMgbG9naWMgXG5cdTI2MWUgRmlsdGVyIG1vcmUgZGV2aWNlcyBmb3IgbmV0IHNwZWVkIGluZGljYXRvciBcblxuRnVsbCBDSEFOR0VMT0cgY2FuIGJlIGZvdW5kIG9uIGdpdGh1YiByZWxlYXNlcyBwYWdlIFxuXG5GZWF0dXJlcyBcbjEuIENsZWFuIFVJIFxuMi4gQWRqdXN0YWJsZSBSZWZyZXNoIHJhdGUgXG4zLiBQcmVmZXJlbmNlcyB0byBtYW5hZ2UgZXh0ZW5zaW9uIFxuNC4gVmVydGljYWwgQWxpZ25tZW50IFN1cHBvcnQgXG41LiBUd28gSWNvbiBzZXRzIGZvciBJbmRpY2F0b3JzIFxuXG5GZWF0dXJlIEhpZ2hsaWdodHMgZm9yIFByZWZlcmVuY2VzIFxuMS4gTG9jayBNb3VzZSBBY3Rpb25zIG9wdGlvbiBcbjIuIEFkdmFuY2UgUG9zaXRpb24gb3B0aW9ucyB0byBwaW5wb2ludCB3aGVyZSB0byBwbGFjZSB0aGUgaW5kaWNhdG9yIG9uIHRoZSBQYW5lbC4gXG4zLiBSZWZyZXNoIHRpbWUgb3B0aW9uIGJ5IHdoaWNoIHlvdSBjYW4gY2hhbmdlIHJlZnJlc2ggcmF0ZSB2YWx1ZSBiZXR3ZWVuIDEuMCBzZWMgdG8gMTAuMCBzZWMuIFxuNC4gU2hvdyBVcGxvYWQgRmlyc3Qgb3B0aW9uIHRvIHNob3cgdXBsb2FkIHNwZWVkIGZpcnN0IFxuNS4gQ29sb3IgQ3VzdG9taXphdGlvbnMgZm9yIHNwZWVkIGluZGljYXRvcnMgXG42LiBIaWRlIHdoZW4gRGlzY29ubmVjdGVkIG9wdGlvbiBcbjcuIFVzZSBTaG9ydGVuIFVuaXRzIG9wdGlvbiBcbjguIExpbWl0IFVuaXQgb3B0aW9uIGFuZCBtb3JlLi4uIFxuXG5Nb2RlcyBcbi0gVG90YWwgbmV0IHNwZWVkIGluIGIvcywga2IvcywgLi4uIFxuLSBUb3RhbCBuZXQgc3BlZWQgaW4gQi9zLCBLQi9zLCAuLi4gXG4tIFVwICYgZG93biBzcGVlZCBpbiBiL3MsIGtiL3MsIC4uLiBcbi0gVXAgJiBkb3duIHNwZWVkIGluIEIvcywgS0IvcywgLi4uIFxuLSBUb3RhbCBkb3dubG9hZHMgaW4gQiwgS0IsIC4uLiAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcikgXG5cbk1vdXNlIEV2ZW50cyBcbi0gTGVmdCBjbGljayB0byBjaGFuZ2UgbW9kZXMgXG4tIFJpZ2h0IGNsaWNrKGluIDEtNCBtb2Rlcyk6IFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0b3RhbCBsb2FkZWQuIFxuLSBSaWdodCBjbGljayhpbiA1dGggbW9kZSk6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuIFxuLSBSaWdodCBDbGljayhGb3VyIGNvbnNlY3V0aXZlIHRpbWVzKTogVG9nZ2xlIHRocm91Z2ggaG9yaXpvbnRhbC92ZXJ0aWNhbCBhbGlnbm1lbnQuIFxuLSBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuIiwKICAibmFtZSI6ICJOZXQgc3BlZWQgU2ltcGxpZmllZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ByYXRlZWttZWRpYS9uZXRzcGVlZHNpbXBsaWZpZWQiLAogICJ1dWlkIjogIm5ldHNwZWVkc2ltcGxpZmllZEBwcmF0ZWVrbWVkaWEuZXh0ZW5zaW9uIiwKICAidmVyc2lvbiI6IDM1Cn0="}, "41": {"version": "35", "sha256": "0nh00iach2mnrdij1ywp5l6vr064q9dfwwjv4g2n4mqiz9jxr1lv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIFVzZSBTeXN0ZW0gQ29sb3IgU2NoZW1lIG9wdGlvbiBcblx1MjYxZSBVcGRhdGUgUHJlZmVyZW5jZXMgbG9naWMgXG5cdTI2MWUgRmlsdGVyIG1vcmUgZGV2aWNlcyBmb3IgbmV0IHNwZWVkIGluZGljYXRvciBcblxuRnVsbCBDSEFOR0VMT0cgY2FuIGJlIGZvdW5kIG9uIGdpdGh1YiByZWxlYXNlcyBwYWdlIFxuXG5GZWF0dXJlcyBcbjEuIENsZWFuIFVJIFxuMi4gQWRqdXN0YWJsZSBSZWZyZXNoIHJhdGUgXG4zLiBQcmVmZXJlbmNlcyB0byBtYW5hZ2UgZXh0ZW5zaW9uIFxuNC4gVmVydGljYWwgQWxpZ25tZW50IFN1cHBvcnQgXG41LiBUd28gSWNvbiBzZXRzIGZvciBJbmRpY2F0b3JzIFxuXG5GZWF0dXJlIEhpZ2hsaWdodHMgZm9yIFByZWZlcmVuY2VzIFxuMS4gTG9jayBNb3VzZSBBY3Rpb25zIG9wdGlvbiBcbjIuIEFkdmFuY2UgUG9zaXRpb24gb3B0aW9ucyB0byBwaW5wb2ludCB3aGVyZSB0byBwbGFjZSB0aGUgaW5kaWNhdG9yIG9uIHRoZSBQYW5lbC4gXG4zLiBSZWZyZXNoIHRpbWUgb3B0aW9uIGJ5IHdoaWNoIHlvdSBjYW4gY2hhbmdlIHJlZnJlc2ggcmF0ZSB2YWx1ZSBiZXR3ZWVuIDEuMCBzZWMgdG8gMTAuMCBzZWMuIFxuNC4gU2hvdyBVcGxvYWQgRmlyc3Qgb3B0aW9uIHRvIHNob3cgdXBsb2FkIHNwZWVkIGZpcnN0IFxuNS4gQ29sb3IgQ3VzdG9taXphdGlvbnMgZm9yIHNwZWVkIGluZGljYXRvcnMgXG42LiBIaWRlIHdoZW4gRGlzY29ubmVjdGVkIG9wdGlvbiBcbjcuIFVzZSBTaG9ydGVuIFVuaXRzIG9wdGlvbiBcbjguIExpbWl0IFVuaXQgb3B0aW9uIGFuZCBtb3JlLi4uIFxuXG5Nb2RlcyBcbi0gVG90YWwgbmV0IHNwZWVkIGluIGIvcywga2IvcywgLi4uIFxuLSBUb3RhbCBuZXQgc3BlZWQgaW4gQi9zLCBLQi9zLCAuLi4gXG4tIFVwICYgZG93biBzcGVlZCBpbiBiL3MsIGtiL3MsIC4uLiBcbi0gVXAgJiBkb3duIHNwZWVkIGluIEIvcywgS0IvcywgLi4uIFxuLSBUb3RhbCBkb3dubG9hZHMgaW4gQiwgS0IsIC4uLiAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcikgXG5cbk1vdXNlIEV2ZW50cyBcbi0gTGVmdCBjbGljayB0byBjaGFuZ2UgbW9kZXMgXG4tIFJpZ2h0IGNsaWNrKGluIDEtNCBtb2Rlcyk6IFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0b3RhbCBsb2FkZWQuIFxuLSBSaWdodCBjbGljayhpbiA1dGggbW9kZSk6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuIFxuLSBSaWdodCBDbGljayhGb3VyIGNvbnNlY3V0aXZlIHRpbWVzKTogVG9nZ2xlIHRocm91Z2ggaG9yaXpvbnRhbC92ZXJ0aWNhbCBhbGlnbm1lbnQuIFxuLSBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuIiwKICAibmFtZSI6ICJOZXQgc3BlZWQgU2ltcGxpZmllZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ByYXRlZWttZWRpYS9uZXRzcGVlZHNpbXBsaWZpZWQiLAogICJ1dWlkIjogIm5ldHNwZWVkc2ltcGxpZmllZEBwcmF0ZWVrbWVkaWEuZXh0ZW5zaW9uIiwKICAidmVyc2lvbiI6IDM1Cn0="}, "42": {"version": "35", "sha256": "0nh00iach2mnrdij1ywp5l6vr064q9dfwwjv4g2n4mqiz9jxr1lv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIFVzZSBTeXN0ZW0gQ29sb3IgU2NoZW1lIG9wdGlvbiBcblx1MjYxZSBVcGRhdGUgUHJlZmVyZW5jZXMgbG9naWMgXG5cdTI2MWUgRmlsdGVyIG1vcmUgZGV2aWNlcyBmb3IgbmV0IHNwZWVkIGluZGljYXRvciBcblxuRnVsbCBDSEFOR0VMT0cgY2FuIGJlIGZvdW5kIG9uIGdpdGh1YiByZWxlYXNlcyBwYWdlIFxuXG5GZWF0dXJlcyBcbjEuIENsZWFuIFVJIFxuMi4gQWRqdXN0YWJsZSBSZWZyZXNoIHJhdGUgXG4zLiBQcmVmZXJlbmNlcyB0byBtYW5hZ2UgZXh0ZW5zaW9uIFxuNC4gVmVydGljYWwgQWxpZ25tZW50IFN1cHBvcnQgXG41LiBUd28gSWNvbiBzZXRzIGZvciBJbmRpY2F0b3JzIFxuXG5GZWF0dXJlIEhpZ2hsaWdodHMgZm9yIFByZWZlcmVuY2VzIFxuMS4gTG9jayBNb3VzZSBBY3Rpb25zIG9wdGlvbiBcbjIuIEFkdmFuY2UgUG9zaXRpb24gb3B0aW9ucyB0byBwaW5wb2ludCB3aGVyZSB0byBwbGFjZSB0aGUgaW5kaWNhdG9yIG9uIHRoZSBQYW5lbC4gXG4zLiBSZWZyZXNoIHRpbWUgb3B0aW9uIGJ5IHdoaWNoIHlvdSBjYW4gY2hhbmdlIHJlZnJlc2ggcmF0ZSB2YWx1ZSBiZXR3ZWVuIDEuMCBzZWMgdG8gMTAuMCBzZWMuIFxuNC4gU2hvdyBVcGxvYWQgRmlyc3Qgb3B0aW9uIHRvIHNob3cgdXBsb2FkIHNwZWVkIGZpcnN0IFxuNS4gQ29sb3IgQ3VzdG9taXphdGlvbnMgZm9yIHNwZWVkIGluZGljYXRvcnMgXG42LiBIaWRlIHdoZW4gRGlzY29ubmVjdGVkIG9wdGlvbiBcbjcuIFVzZSBTaG9ydGVuIFVuaXRzIG9wdGlvbiBcbjguIExpbWl0IFVuaXQgb3B0aW9uIGFuZCBtb3JlLi4uIFxuXG5Nb2RlcyBcbi0gVG90YWwgbmV0IHNwZWVkIGluIGIvcywga2IvcywgLi4uIFxuLSBUb3RhbCBuZXQgc3BlZWQgaW4gQi9zLCBLQi9zLCAuLi4gXG4tIFVwICYgZG93biBzcGVlZCBpbiBiL3MsIGtiL3MsIC4uLiBcbi0gVXAgJiBkb3duIHNwZWVkIGluIEIvcywgS0IvcywgLi4uIFxuLSBUb3RhbCBkb3dubG9hZHMgaW4gQiwgS0IsIC4uLiAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcikgXG5cbk1vdXNlIEV2ZW50cyBcbi0gTGVmdCBjbGljayB0byBjaGFuZ2UgbW9kZXMgXG4tIFJpZ2h0IGNsaWNrKGluIDEtNCBtb2Rlcyk6IFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0b3RhbCBsb2FkZWQuIFxuLSBSaWdodCBjbGljayhpbiA1dGggbW9kZSk6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuIFxuLSBSaWdodCBDbGljayhGb3VyIGNvbnNlY3V0aXZlIHRpbWVzKTogVG9nZ2xlIHRocm91Z2ggaG9yaXpvbnRhbC92ZXJ0aWNhbCBhbGlnbm1lbnQuIFxuLSBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuIiwKICAibmFtZSI6ICJOZXQgc3BlZWQgU2ltcGxpZmllZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ByYXRlZWttZWRpYS9uZXRzcGVlZHNpbXBsaWZpZWQiLAogICJ1dWlkIjogIm5ldHNwZWVkc2ltcGxpZmllZEBwcmF0ZWVrbWVkaWEuZXh0ZW5zaW9uIiwKICAidmVyc2lvbiI6IDM1Cn0="}}}
 , {"uuid": "cpupower-governors@icar.github.com", "name": "CPU Power Governor", "pname": "cpu-power-governor", "description": "Enables the ability to swap between kernel governors for the CPU useful for laptops.\n\nRequires: polkit, cpupower\nGithub: https://github.com/juxuanu/cpupower-governors", "link": "https://extensions.gnome.org/extension/3727/cpu-power-governor/", "shell_version_map": {"38": {"version": "2", "sha256": "1hb239w4cpz6yzs3pzd3hhrwswh6w5c5xw6dqn57m26cazh843qk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgdGhlIGFiaWxpdHkgdG8gc3dhcCBiZXR3ZWVuIGtlcm5lbCBnb3Zlcm5vcnMgZm9yIHRoZSBDUFUgdXNlZnVsIGZvciBsYXB0b3BzLlxuXG5SZXF1aXJlczogcG9sa2l0LCBjcHVwb3dlclxuR2l0aHViOiBodHRwczovL2dpdGh1Yi5jb20vanV4dWFudS9jcHVwb3dlci1nb3Zlcm5vcnMiLAogICJuYW1lIjogIkNQVSBQb3dlciBHb3Zlcm5vciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJjcHVwb3dlci1nb3Zlcm5vcnNAaWNhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "floating-dock@nandoferreira_prof@hotmail.com", "name": "Floating Dock", "pname": "floating-dock", "description": "A Custom Floating Dock fork, now you can change the margin and border radius of the dock.", "link": "https://extensions.gnome.org/extension/3730/floating-dock/", "shell_version_map": {"38": {"version": "1", "sha256": "0giksm5fvrj412v8xnf2hi4s0yi2mqd9prd84npv8jxkfv78y414", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgQ3VzdG9tIEZsb2F0aW5nIERvY2sgZm9yaywgbm93IHlvdSBjYW4gY2hhbmdlIHRoZSBtYXJnaW4gYW5kIGJvcmRlciByYWRpdXMgb2YgdGhlIGRvY2suIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmxvYXRpbmdkb2NrIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm5hbmRvZmVycmVpcmFfcHJvZkBob3RtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Zlci1tb3JlaXJhL2Zsb2F0aW5nLWRvY2siLAogICJ1dWlkIjogImZsb2F0aW5nLWRvY2tAbmFuZG9mZXJyZWlyYV9wcm9mQGhvdG1haWwuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "4", "sha256": "0ca22s5vbs6d32ppikmg0xcf5335qmighq6cpvly51q44hlqjamg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgQ3VzdG9tIEZsb2F0aW5nIERvY2sgZm9yaywgbm93IHlvdSBjYW4gY2hhbmdlIHRoZSBtYXJnaW4gYW5kIGJvcmRlciByYWRpdXMgb2YgdGhlIGRvY2suIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmxvYXRpbmdkb2NrIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Zlci1tb3JlaXJhL2Zsb2F0aW5nLWRvY2siLAogICJ1dWlkIjogImZsb2F0aW5nLWRvY2tAbmFuZG9mZXJyZWlyYV9wcm9mQGhvdG1haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "0ca22s5vbs6d32ppikmg0xcf5335qmighq6cpvly51q44hlqjamg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgQ3VzdG9tIEZsb2F0aW5nIERvY2sgZm9yaywgbm93IHlvdSBjYW4gY2hhbmdlIHRoZSBtYXJnaW4gYW5kIGJvcmRlciByYWRpdXMgb2YgdGhlIGRvY2suIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmxvYXRpbmdkb2NrIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Zlci1tb3JlaXJhL2Zsb2F0aW5nLWRvY2siLAogICJ1dWlkIjogImZsb2F0aW5nLWRvY2tAbmFuZG9mZXJyZWlyYV9wcm9mQGhvdG1haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "tiling-assistant@leleat-on-github", "name": "Tiling Assistant", "pname": "tiling-assistant", "description": "Expand GNOME's 2 column tiling and add a Windows-snap-assist-inspired popup...", "link": "https://extensions.gnome.org/extension/3733/tiling-assistant/", "shell_version_map": {"38": {"version": "23", "sha256": "1b9hpll26ggwhw4f52wgflzjfqksmyfy5wyg1rpz41lr1dmva8vk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cGFuZCBHTk9NRSdzIDIgY29sdW1uIHRpbGluZyBhbmQgYWRkIGEgV2luZG93cy1zbmFwLWFzc2lzdC1pbnNwaXJlZCBwb3B1cC4uLiIsCiAgIm5hbWUiOiAiVGlsaW5nIEFzc2lzdGFudCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L1RpbGluZy1Bc3Npc3RhbnQiLAogICJ1dWlkIjogInRpbGluZy1hc3Npc3RhbnRAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiAyMwp9"}, "40": {"version": "32", "sha256": "14kvgygfia1961i4v933bg7j2l4mzy7hv7f53sc5giwpmcsj3b5v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cGFuZCBHTk9NRSdzIDIgY29sdW1uIHRpbGluZyBhbmQgYWRkIGEgV2luZG93cy1zbmFwLWFzc2lzdC1pbnNwaXJlZCBwb3B1cC4uLiIsCiAgIm5hbWUiOiAiVGlsaW5nIEFzc2lzdGFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aWxpbmctYXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9MZWxlYXQvVGlsaW5nLUFzc2lzdGFudCIsCiAgInV1aWQiOiAidGlsaW5nLWFzc2lzdGFudEBsZWxlYXQtb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDMyCn0="}, "41": {"version": "32", "sha256": "14kvgygfia1961i4v933bg7j2l4mzy7hv7f53sc5giwpmcsj3b5v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cGFuZCBHTk9NRSdzIDIgY29sdW1uIHRpbGluZyBhbmQgYWRkIGEgV2luZG93cy1zbmFwLWFzc2lzdC1pbnNwaXJlZCBwb3B1cC4uLiIsCiAgIm5hbWUiOiAiVGlsaW5nIEFzc2lzdGFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aWxpbmctYXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9MZWxlYXQvVGlsaW5nLUFzc2lzdGFudCIsCiAgInV1aWQiOiAidGlsaW5nLWFzc2lzdGFudEBsZWxlYXQtb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDMyCn0="}}}
@@ -382,19 +382,19 @@
 , {"uuid": "compiz-alike-magic-lamp-effect@hermes83.github.com", "name": "Compiz alike magic lamp effect", "pname": "compiz-alike-magic-lamp-effect", "description": "Magic lamp effect inspired by the Compiz ones\n\nNB:\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)", "link": "https://extensions.gnome.org/extension/3740/compiz-alike-magic-lamp-effect/", "shell_version_map": {"38": {"version": "11", "sha256": "1ffki7rmdxrz3xr285jnlyxp1a4h6h4q17y4dj3c8p64hy145yyp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ2ljIGxhbXAgZWZmZWN0IGluc3BpcmVkIGJ5IHRoZSBDb21waXogb25lc1xuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKSIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIG1hZ2ljIGxhbXAgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGVybWVzODMvY29tcGl6LWFsaWtlLW1hZ2ljLWxhbXAtZWZmZWN0IiwKICAidXVpZCI6ICJjb21waXotYWxpa2UtbWFnaWMtbGFtcC1lZmZlY3RAaGVybWVzODMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"}, "40": {"version": "11", "sha256": "1ffki7rmdxrz3xr285jnlyxp1a4h6h4q17y4dj3c8p64hy145yyp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ2ljIGxhbXAgZWZmZWN0IGluc3BpcmVkIGJ5IHRoZSBDb21waXogb25lc1xuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKSIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIG1hZ2ljIGxhbXAgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGVybWVzODMvY29tcGl6LWFsaWtlLW1hZ2ljLWxhbXAtZWZmZWN0IiwKICAidXVpZCI6ICJjb21waXotYWxpa2UtbWFnaWMtbGFtcC1lZmZlY3RAaGVybWVzODMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "1ffki7rmdxrz3xr285jnlyxp1a4h6h4q17y4dj3c8p64hy145yyp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ2ljIGxhbXAgZWZmZWN0IGluc3BpcmVkIGJ5IHRoZSBDb21waXogb25lc1xuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKSIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIG1hZ2ljIGxhbXAgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGVybWVzODMvY29tcGl6LWFsaWtlLW1hZ2ljLWxhbXAtZWZmZWN0IiwKICAidXVpZCI6ICJjb21waXotYWxpa2UtbWFnaWMtbGFtcC1lZmZlY3RAaGVybWVzODMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"}, "42": {"version": "11", "sha256": "1ffki7rmdxrz3xr285jnlyxp1a4h6h4q17y4dj3c8p64hy145yyp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ2ljIGxhbXAgZWZmZWN0IGluc3BpcmVkIGJ5IHRoZSBDb21waXogb25lc1xuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKSIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIG1hZ2ljIGxhbXAgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGVybWVzODMvY29tcGl6LWFsaWtlLW1hZ2ljLWxhbXAtZWZmZWN0IiwKICAidXVpZCI6ICJjb21waXotYWxpa2UtbWFnaWMtbGFtcC1lZmZlY3RAaGVybWVzODMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"}}}
 , {"uuid": "latency-monitor@gitlab.labsatho.me", "name": "Latency Monitor", "pname": "latency-monitor", "description": "A simple extension for displaying latency information using pings in GNOME Shell.", "link": "https://extensions.gnome.org/extension/3746/latency-monitor/", "shell_version_map": {"38": {"version": "6", "sha256": "0k2y1qrq7irkn2c72pk4c5x4fwzaxkfp3jj7qvhzih6zmkifdzcd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGV4dGVuc2lvbiBmb3IgZGlzcGxheWluZyBsYXRlbmN5IGluZm9ybWF0aW9uIHVzaW5nIHBpbmdzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiTGF0ZW5jeSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxhdGVuY3ktbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3dhbGthZndhbGthL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sYXRlbmN5LW1vbml0b3IiLAogICJ1dWlkIjogImxhdGVuY3ktbW9uaXRvckBnaXRsYWIubGFic2F0aG8ubWUiLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "the-circles-widget@xenlism.github.io", "name": "The Circles - Desktop Widget", "pname": "the-circles-desktop-widget", "description": "Show System Infomations on Desktop as Circles Desktop Widget\n\nmore info \nhttps://www.linuxuprising.com/2020/11/display-clock-ram-and-cpu-usage-as.html", "link": "https://extensions.gnome.org/extension/3748/the-circles-desktop-widget/", "shell_version_map": {"38": {"version": "6", "sha256": "0kxync9gdjgcfq3vfhf5z0065n30jw5y5jl00hdgarsh4pkbji04", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgU3lzdGVtIEluZm9tYXRpb25zIG9uIERlc2t0b3AgYXMgQ2lyY2xlcyBEZXNrdG9wIFdpZGdldFxuXG5tb3JlIGluZm8gXG5odHRwczovL3d3dy5saW51eHVwcmlzaW5nLmNvbS8yMDIwLzExL2Rpc3BsYXktY2xvY2stcmFtLWFuZC1jcHUtdXNhZ2UtYXMuaHRtbCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0aGUtY2lyY2xlcy13aWRnZXQiLAogICJuYW1lIjogIlRoZSBDaXJjbGVzIC0gRGVza3RvcCBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGhlLWNpcmNsZXMtd2lkZ2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVubGlzbS9zaG93dGltZSIsCiAgInV1aWQiOiAidGhlLWNpcmNsZXMtd2lkZ2V0QHhlbmxpc20uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "12", "sha256": "0ngn00y97dqv667z47xahfv53dlb2asm0jbk9harlv4516jdrg0s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgU3lzdGVtIEluZm9tYXRpb25zIG9uIERlc2t0b3AgYXMgQ2lyY2xlcyBEZXNrdG9wIFdpZGdldFxuXG5tb3JlIGluZm8gXG5odHRwczovL3d3dy5saW51eHVwcmlzaW5nLmNvbS8yMDIwLzExL2Rpc3BsYXktY2xvY2stcmFtLWFuZC1jcHUtdXNhZ2UtYXMuaHRtbCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0aGUtY2lyY2xlcy13aWRnZXQiLAogICJuYW1lIjogIlRoZSBDaXJjbGVzIC0gRGVza3RvcCBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGhlLWNpcmNsZXMtd2lkZ2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hlbmxpc20vc2hvd3RpbWUiLAogICJ1dWlkIjogInRoZS1jaXJjbGVzLXdpZGdldEB4ZW5saXNtLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMgp9"}}}
-, {"uuid": "overview_cleaner@gonza.com", "name": "Cleaner Overview", "pname": "cleaner-overview", "description": "Makes all the windows in the overview the same height and orders them by last recent used.", "link": "https://extensions.gnome.org/extension/3759/cleaner-overview/", "shell_version_map": {"38": {"version": "3", "sha256": "16xljs0ym9cp7lxa36ls7p4z79s7h9q7azg32pvhflylx4bsyv2c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIGFsbCB0aGUgd2luZG93cyBpbiB0aGUgb3ZlcnZpZXcgdGhlIHNhbWUgaGVpZ2h0IGFuZCBvcmRlcnMgdGhlbSBieSBsYXN0IHJlY2VudCB1c2VkLiIsCiAgIm5hbWUiOiAiQ2xlYW5lciBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3RvdWNocGFkLXdpbmRvdy1zd2l0Y2hlci1nbm9tZS1leHQvYmxvYi9tYXN0ZXIvdG91Y2hwYWRfd2luZG93X3N3aXRjaGVyJTQwZ29uemEuY29tL292ZXJ2aWV3Q2xlYW5lci5qcyIsCiAgInV1aWQiOiAib3ZlcnZpZXdfY2xlYW5lckBnb256YS5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "16xljs0ym9cp7lxa36ls7p4z79s7h9q7azg32pvhflylx4bsyv2c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIGFsbCB0aGUgd2luZG93cyBpbiB0aGUgb3ZlcnZpZXcgdGhlIHNhbWUgaGVpZ2h0IGFuZCBvcmRlcnMgdGhlbSBieSBsYXN0IHJlY2VudCB1c2VkLiIsCiAgIm5hbWUiOiAiQ2xlYW5lciBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3RvdWNocGFkLXdpbmRvdy1zd2l0Y2hlci1nbm9tZS1leHQvYmxvYi9tYXN0ZXIvdG91Y2hwYWRfd2luZG93X3N3aXRjaGVyJTQwZ29uemEuY29tL292ZXJ2aWV3Q2xlYW5lci5qcyIsCiAgInV1aWQiOiAib3ZlcnZpZXdfY2xlYW5lckBnb256YS5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "16xljs0ym9cp7lxa36ls7p4z79s7h9q7azg32pvhflylx4bsyv2c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIGFsbCB0aGUgd2luZG93cyBpbiB0aGUgb3ZlcnZpZXcgdGhlIHNhbWUgaGVpZ2h0IGFuZCBvcmRlcnMgdGhlbSBieSBsYXN0IHJlY2VudCB1c2VkLiIsCiAgIm5hbWUiOiAiQ2xlYW5lciBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3RvdWNocGFkLXdpbmRvdy1zd2l0Y2hlci1nbm9tZS1leHQvYmxvYi9tYXN0ZXIvdG91Y2hwYWRfd2luZG93X3N3aXRjaGVyJTQwZ29uemEuY29tL292ZXJ2aWV3Q2xlYW5lci5qcyIsCiAgInV1aWQiOiAib3ZlcnZpZXdfY2xlYW5lckBnb256YS5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "overview_cleaner@gonza.com", "name": "Cleaner Overview", "pname": "cleaner-overview", "description": "Makes all the windows in the overview the same height and orders them by last recent used.", "link": "https://extensions.gnome.org/extension/3759/cleaner-overview/", "shell_version_map": {"38": {"version": "4", "sha256": "1fgv36inchycwgsykc2mqv1l6jbm4jq2rysd2paknbka14vqx37r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIGFsbCB0aGUgd2luZG93cyBpbiB0aGUgb3ZlcnZpZXcgdGhlIHNhbWUgaGVpZ2h0IGFuZCBvcmRlcnMgdGhlbSBieSBsYXN0IHJlY2VudCB1c2VkLiIsCiAgIm5hbWUiOiAiQ2xlYW5lciBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci90b3VjaHBhZC13aW5kb3ctc3dpdGNoZXItZ25vbWUtZXh0L2Jsb2IvbWFzdGVyL3RvdWNocGFkX3dpbmRvd19zd2l0Y2hlciU0MGdvbnphLmNvbS9vdmVydmlld0NsZWFuZXIuanMiLAogICJ1dWlkIjogIm92ZXJ2aWV3X2NsZWFuZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "1fgv36inchycwgsykc2mqv1l6jbm4jq2rysd2paknbka14vqx37r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIGFsbCB0aGUgd2luZG93cyBpbiB0aGUgb3ZlcnZpZXcgdGhlIHNhbWUgaGVpZ2h0IGFuZCBvcmRlcnMgdGhlbSBieSBsYXN0IHJlY2VudCB1c2VkLiIsCiAgIm5hbWUiOiAiQ2xlYW5lciBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci90b3VjaHBhZC13aW5kb3ctc3dpdGNoZXItZ25vbWUtZXh0L2Jsb2IvbWFzdGVyL3RvdWNocGFkX3dpbmRvd19zd2l0Y2hlciU0MGdvbnphLmNvbS9vdmVydmlld0NsZWFuZXIuanMiLAogICJ1dWlkIjogIm92ZXJ2aWV3X2NsZWFuZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1fgv36inchycwgsykc2mqv1l6jbm4jq2rysd2paknbka14vqx37r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIGFsbCB0aGUgd2luZG93cyBpbiB0aGUgb3ZlcnZpZXcgdGhlIHNhbWUgaGVpZ2h0IGFuZCBvcmRlcnMgdGhlbSBieSBsYXN0IHJlY2VudCB1c2VkLiIsCiAgIm5hbWUiOiAiQ2xlYW5lciBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci90b3VjaHBhZC13aW5kb3ctc3dpdGNoZXItZ25vbWUtZXh0L2Jsb2IvbWFzdGVyL3RvdWNocGFkX3dpbmRvd19zd2l0Y2hlciU0MGdvbnphLmNvbS9vdmVydmlld0NsZWFuZXIuanMiLAogICJ1dWlkIjogIm92ZXJ2aWV3X2NsZWFuZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "42": {"version": "4", "sha256": "1fgv36inchycwgsykc2mqv1l6jbm4jq2rysd2paknbka14vqx37r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIGFsbCB0aGUgd2luZG93cyBpbiB0aGUgb3ZlcnZpZXcgdGhlIHNhbWUgaGVpZ2h0IGFuZCBvcmRlcnMgdGhlbSBieSBsYXN0IHJlY2VudCB1c2VkLiIsCiAgIm5hbWUiOiAiQ2xlYW5lciBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci90b3VjaHBhZC13aW5kb3ctc3dpdGNoZXItZ25vbWUtZXh0L2Jsb2IvbWFzdGVyL3RvdWNocGFkX3dpbmRvd19zd2l0Y2hlciU0MGdvbnphLmNvbS9vdmVydmlld0NsZWFuZXIuanMiLAogICJ1dWlkIjogIm92ZXJ2aWV3X2NsZWFuZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "battery-status@atareao.es", "name": "Battery Status", "pname": "battery-status", "description": "Get information about your battery status", "link": "https://extensions.gnome.org/extension/3763/battery-status/", "shell_version_map": {"40": {"version": "5", "sha256": "0mg30q1cgzmf70ikbm623fflhz392xkan0d8cpslnmkgx0z6nczv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdldCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIGJhdHRlcnkgc3RhdHVzIiwKICAiZXh0ZW5zaW9uLWlkIjogImJhdHRlcnktc3RhdHVzQGF0YXJlYW8uZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYXR0ZXJ5LXN0YXR1c0BhdGFyZWFvLmVzIiwKICAiaWNvbiI6ICJiYXR0ZXJ5LXN0YXR1cy1pY29uIiwKICAibmFtZSI6ICJCYXR0ZXJ5IFN0YXR1cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJlcy5hdGFyZWFvLmJhdHRlcnktc3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F0YXJlYW8vYmF0dGVyeS1zdGF0dXMiLAogICJ1dWlkIjogImJhdHRlcnktc3RhdHVzQGF0YXJlYW8uZXMiLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "distinct@sireliah.com", "name": "Distinct Windows", "pname": "distinct-windows", "description": "Visually differentiate windows with colors and symbols", "link": "https://extensions.gnome.org/extension/3769/distinct-windows/", "shell_version_map": {"38": {"version": "4", "sha256": "1iqga92l9mk3ykf8bdy9igvqfx9k78jasdmqsrrz9zcz33d7k4h7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpc3VhbGx5IGRpZmZlcmVudGlhdGUgd2luZG93cyB3aXRoIGNvbG9ycyBhbmQgc3ltYm9scyIsCiAgIm5hbWUiOiAiRGlzdGluY3QgV2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NpcmVsaWFoL2Rpc3RpbmN0LXdpbmRvd3MiLAogICJ1dWlkIjogImRpc3RpbmN0QHNpcmVsaWFoLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
 , {"uuid": "miniCal2@breiq", "name": "Minimalist Calendar 2", "pname": "minimalist-calendar-2", "description": "Remove event list and clock/calendar app buttons from the calendar window.", "link": "https://extensions.gnome.org/extension/3775/minimalist-calendar-2/", "shell_version_map": {"38": {"version": "1", "sha256": "1nh10ik3zk3r4jr31mr8nw8nnamgj3mk1f3im06657wv18x9wvam", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIiwKICAibmFtZSI6ICJNaW5pbWFsaXN0IENhbGVuZGFyIDIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibWluaUNhbDJAYnJlaXEiLAogICJ2ZXJzaW9uIjogMQp9"}}}
-, {"uuid": "ddterm@amezin.github.com", "name": "ddterm", "pname": "ddterm", "description": "Another drop down terminal extension for GNOME Shell. With tabs. Works on Wayland natively", "link": "https://extensions.gnome.org/extension/3780/ddterm/", "shell_version_map": {"38": {"version": "28", "sha256": "1fn7rzqwqpcc46c1yz7swz7gg9x8x04wzqcc0xscgyqcfhg64p98", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyOAp9"}, "40": {"version": "28", "sha256": "1fn7rzqwqpcc46c1yz7swz7gg9x8x04wzqcc0xscgyqcfhg64p98", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyOAp9"}, "41": {"version": "28", "sha256": "1fn7rzqwqpcc46c1yz7swz7gg9x8x04wzqcc0xscgyqcfhg64p98", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyOAp9"}}}
+, {"uuid": "ddterm@amezin.github.com", "name": "ddterm", "pname": "ddterm", "description": "Another drop down terminal extension for GNOME Shell. With tabs. Works on Wayland natively", "link": "https://extensions.gnome.org/extension/3780/ddterm/", "shell_version_map": {"38": {"version": "29", "sha256": "072111hsp5qc1kjc3zp5j188padq1db9wwrpph0bdng9hz5cgdph", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtZXppbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGR0ZXJtIiwKICAidXVpZCI6ICJkZHRlcm1AYW1lemluLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjkKfQ=="}, "40": {"version": "29", "sha256": "072111hsp5qc1kjc3zp5j188padq1db9wwrpph0bdng9hz5cgdph", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtZXppbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGR0ZXJtIiwKICAidXVpZCI6ICJkZHRlcm1AYW1lemluLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjkKfQ=="}, "41": {"version": "29", "sha256": "072111hsp5qc1kjc3zp5j188padq1db9wwrpph0bdng9hz5cgdph", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtZXppbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGR0ZXJtIiwKICAidXVpZCI6ICJkZHRlcm1AYW1lemluLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjkKfQ=="}, "42": {"version": "29", "sha256": "072111hsp5qc1kjc3zp5j188padq1db9wwrpph0bdng9hz5cgdph", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtZXppbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGR0ZXJtIiwKICAidXVpZCI6ICJkZHRlcm1AYW1lemluLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjkKfQ=="}}}
 , {"uuid": "favorites-only-dash@nahuelwexd.github.io", "name": "Favorites-only Dash", "pname": "favorites-only-dash", "description": "Show only favorite apps on Dash", "link": "https://extensions.gnome.org/extension/3789/favorites-only-dash/", "shell_version_map": {"38": {"version": "1", "sha256": "110h019563j33gksaq5fs0z71sz1mslq1sbsmhk9mj3qggd9vs65", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgb25seSBmYXZvcml0ZSBhcHBzIG9uIERhc2giLAogICJuYW1lIjogIkZhdm9yaXRlcy1vbmx5IERhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZmF2b3JpdGVzLW9ubHktZGFzaEBuYWh1ZWx3ZXhkLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "notification-timeout@chlumskyvaclav.gmail.com", "name": "Notification Timeout", "pname": "notification-timeout", "description": "This extension allows configuring the same timeout for all notifications. It also allows ignoring the idle state.", "link": "https://extensions.gnome.org/extension/3795/notification-timeout/", "shell_version_map": {"38": {"version": "4", "sha256": "14hns3mw3rk6az31pck3rnsj74n98swaiv1ky57d0gs9409zha6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBjb25maWd1cmluZyB0aGUgc2FtZSB0aW1lb3V0IGZvciBhbGwgbm90aWZpY2F0aW9ucy4gSXQgYWxzbyBhbGxvd3MgaWdub3JpbmcgdGhlIGlkbGUgc3RhdGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBUaW1lb3V0IiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25vdGlmaWNhdGlvbi10aW1lb3V0IiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tdGltZW91dEBjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "14hns3mw3rk6az31pck3rnsj74n98swaiv1ky57d0gs9409zha6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBjb25maWd1cmluZyB0aGUgc2FtZSB0aW1lb3V0IGZvciBhbGwgbm90aWZpY2F0aW9ucy4gSXQgYWxzbyBhbGxvd3MgaWdub3JpbmcgdGhlIGlkbGUgc3RhdGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBUaW1lb3V0IiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25vdGlmaWNhdGlvbi10aW1lb3V0IiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tdGltZW91dEBjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "14hns3mw3rk6az31pck3rnsj74n98swaiv1ky57d0gs9409zha6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBjb25maWd1cmluZyB0aGUgc2FtZSB0aW1lb3V0IGZvciBhbGwgbm90aWZpY2F0aW9ucy4gSXQgYWxzbyBhbGxvd3MgaWdub3JpbmcgdGhlIGlkbGUgc3RhdGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBUaW1lb3V0IiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25vdGlmaWNhdGlvbi10aW1lb3V0IiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tdGltZW91dEBjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "podman-as-docker@alberto.yomerengues.xyz", "name": "Podman and Docker", "pname": "podman-as-docker", "description": "podman extension as docker\nIn order to get it work on podman, you just need to create an alias\nSimply put: alias docker=podman\nand install podman-docker", "link": "https://extensions.gnome.org/extension/3799/podman-as-docker/", "shell_version_map": {"38": {"version": "1", "sha256": "18bkd6z5hm6zidh7xv8v3jvj36lmxzx4dar7nwa7nq3p51km6crz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInBvZG1hbiBleHRlbnNpb24gYXMgZG9ja2VyXG5JbiBvcmRlciB0byBnZXQgaXQgd29yayBvbiBwb2RtYW4sIHlvdSBqdXN0IG5lZWQgdG8gY3JlYXRlIGFuIGFsaWFzXG5TaW1wbHkgcHV0OiBhbGlhcyBkb2NrZXI9cG9kbWFuXG5hbmQgaW5zdGFsbCBwb2RtYW4tZG9ja2VyIiwKICAibmFtZSI6ICJQb2RtYW4gYW5kIERvY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJwb2RtYW4tYXMtZG9ja2VyQGFsYmVydG8ueW9tZXJlbmd1ZXMueHl6IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
 , {"uuid": "wacom-indicator@fthx", "name": "Wacom Indicator", "pname": "wacom-indicator", "description": "Wacom tablet indicator in the top bar: connection state and power level.\n\n On click: open GNOME Settings Wacom section. On hover or every minute: update connection state and power level.\n\n Settings (in extension.js file headers): show/hide model label, refresh delay, update/do nothing on indicator hover, show/hide if disconnected.", "link": "https://extensions.gnome.org/extension/3809/wacom-indicator/", "shell_version_map": {"38": {"version": "7", "sha256": "1sda66n1s3d28jd98xcznw5ljv10iwndpcbq7bfm5hqzrk8zimid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhY29tIHRhYmxldCBpbmRpY2F0b3IgaW4gdGhlIHRvcCBiYXI6IGNvbm5lY3Rpb24gc3RhdGUgYW5kIHBvd2VyIGxldmVsLlxuXG4gT24gY2xpY2s6IG9wZW4gR05PTUUgU2V0dGluZ3MgV2Fjb20gc2VjdGlvbi4gT24gaG92ZXIgb3IgZXZlcnkgbWludXRlOiB1cGRhdGUgY29ubmVjdGlvbiBzdGF0ZSBhbmQgcG93ZXIgbGV2ZWwuXG5cbiBTZXR0aW5ncyAoaW4gZXh0ZW5zaW9uLmpzIGZpbGUgaGVhZGVycyk6IHNob3cvaGlkZSBtb2RlbCBsYWJlbCwgcmVmcmVzaCBkZWxheSwgdXBkYXRlL2RvIG5vdGhpbmcgb24gaW5kaWNhdG9yIGhvdmVyLCBzaG93L2hpZGUgaWYgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiV2Fjb20gSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvd2Fjb20taW5kaWNhdG9yIiwKICAidXVpZCI6ICJ3YWNvbS1pbmRpY2F0b3JAZnRoeCIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "1sda66n1s3d28jd98xcznw5ljv10iwndpcbq7bfm5hqzrk8zimid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhY29tIHRhYmxldCBpbmRpY2F0b3IgaW4gdGhlIHRvcCBiYXI6IGNvbm5lY3Rpb24gc3RhdGUgYW5kIHBvd2VyIGxldmVsLlxuXG4gT24gY2xpY2s6IG9wZW4gR05PTUUgU2V0dGluZ3MgV2Fjb20gc2VjdGlvbi4gT24gaG92ZXIgb3IgZXZlcnkgbWludXRlOiB1cGRhdGUgY29ubmVjdGlvbiBzdGF0ZSBhbmQgcG93ZXIgbGV2ZWwuXG5cbiBTZXR0aW5ncyAoaW4gZXh0ZW5zaW9uLmpzIGZpbGUgaGVhZGVycyk6IHNob3cvaGlkZSBtb2RlbCBsYWJlbCwgcmVmcmVzaCBkZWxheSwgdXBkYXRlL2RvIG5vdGhpbmcgb24gaW5kaWNhdG9yIGhvdmVyLCBzaG93L2hpZGUgaWYgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiV2Fjb20gSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvd2Fjb20taW5kaWNhdG9yIiwKICAidXVpZCI6ICJ3YWNvbS1pbmRpY2F0b3JAZnRoeCIsCiAgInZlcnNpb24iOiA3Cn0="}}}
 , {"uuid": "hibernate@dafne.rocks", "name": "System Action - Hibernate", "pname": "system-action-hibernate", "description": "A GNOME extension that adds the option to hibernate amongst other system actions", "link": "https://extensions.gnome.org/extension/3814/system-action-hibernate/", "shell_version_map": {"38": {"version": "8", "sha256": "1rriknzx54f4wlfjm6wrcy9s86vchi5n3p3qp8lx52dsv36a22an", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgZXh0ZW5zaW9uIHRoYXQgYWRkcyB0aGUgb3B0aW9uIHRvIGhpYmVybmF0ZSBhbW9uZ3N0IG90aGVyIHN5c3RlbSBhY3Rpb25zIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlQGRhZm5lLnJvY2tzIiwKICAibmFtZSI6ICJTeXN0ZW0gQWN0aW9uIC0gSGliZXJuYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2NvZGViZXJnLm9yZy9raXl1aS9nbm9tZS1zaGVsbC1oaWJlcm5hdGUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJoaWJlcm5hdGVAZGFmbmUucm9ja3MiLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "1rriknzx54f4wlfjm6wrcy9s86vchi5n3p3qp8lx52dsv36a22an", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgZXh0ZW5zaW9uIHRoYXQgYWRkcyB0aGUgb3B0aW9uIHRvIGhpYmVybmF0ZSBhbW9uZ3N0IG90aGVyIHN5c3RlbSBhY3Rpb25zIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlQGRhZm5lLnJvY2tzIiwKICAibmFtZSI6ICJTeXN0ZW0gQWN0aW9uIC0gSGliZXJuYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2NvZGViZXJnLm9yZy9raXl1aS9nbm9tZS1zaGVsbC1oaWJlcm5hdGUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJoaWJlcm5hdGVAZGFmbmUucm9ja3MiLAogICJ2ZXJzaW9uIjogOAp9"}}}
-, {"uuid": "click-to-close-overview@l3nn4rt.github.io", "name": "Click to close overview", "pname": "click-to-close-overview", "description": "Close the overview by clicking empty space.", "link": "https://extensions.gnome.org/extension/3826/click-to-close-overview/", "shell_version_map": {"38": {"version": "3", "sha256": "17xd3k1xpsn8ma6f11f4sr26y5xbcs3hiw7lv1qqrn80lyjj2vz1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBieSBjbGlja2luZyBlbXB0eSBzcGFjZS4iLAogICJuYW1lIjogIkNsaWNrIHRvIGNsb3NlIG92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbDNubjRydC9jbGljay10by1jbG9zZS1vdmVydmlldyIsCiAgInV1aWQiOiAiY2xpY2stdG8tY2xvc2Utb3ZlcnZpZXdAbDNubjRydC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "5", "sha256": "1h12bhqac4zyvsj6xbjr7hnyah3bnbbx0r8ihblkw5l7a67ix1ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBieSBjbGlja2luZyBlbXB0eSBzcGFjZS4iLAogICJuYW1lIjogIkNsaWNrIHRvIGNsb3NlIG92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sM25uNHJ0L2NsaWNrLXRvLWNsb3NlLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJjbGljay10by1jbG9zZS1vdmVydmlld0BsM25uNHJ0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "1h12bhqac4zyvsj6xbjr7hnyah3bnbbx0r8ihblkw5l7a67ix1ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBieSBjbGlja2luZyBlbXB0eSBzcGFjZS4iLAogICJuYW1lIjogIkNsaWNrIHRvIGNsb3NlIG92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sM25uNHJ0L2NsaWNrLXRvLWNsb3NlLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJjbGljay10by1jbG9zZS1vdmVydmlld0BsM25uNHJ0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="}}}
-, {"uuid": "just-perfection-desktop@just-perfection", "name": "Just Perfection", "pname": "just-perfection", "description": "Tweak Tool to Customize GNOME Shell, Change the Behavior and Disable UI Elements\n\n- Accessibility Menu Visibility\n- Activities Button Icon Visibility\n- Activities button Visibility\n- Always Show Workspace Switcher on Dynamic Workspaces (40, 41)\n- Animation Speed or Disable it\n- App Gesture (3.36, 3.38)\n- Applications Button Visibility\n- App Menu Icon Visibility\n- App Menu Visibility\n- Background Menu Visibility\n- Clock Menu Position\n- Clock Menu Visibility\n- Dash Icon Size\n- Dash Visibility\n- Disable Type to Search\n- Double Super Key to App Grid\n- GNOME Shell Theme Override\n- Hot Corner (3.36, 3.38, 40)\n- Keyboard Layout Visibility\n- Notification Banner Position\n- OSD Visibility\n- Panel Arrow Visibility(3.36, 3.38)\n- Panel Button Padding Size\n- Panel Height\n- Panel icon size \n- Panel Indicator Padding Size\n- Panel Notification icon Visibility\n- Panel Position\n- Panel Round Corner Size (3.36, 3.38, 40, 41)\n- Panel Visibility\n- Panel Visibility in Overview\n- Power Icon Visibility\n- Ripple Box\n- Search Visibility\n- Startup Status(40, 41)\n- System Menu (Aggregate Menu) Visibility\n- Weather Visibility\n- Window Demands Attention Focus\n- Window Picker Caption Visibility\n- Window Picker Close Button Visibility\n- Window Picker Icon(40, 41)\n- Workspace Background Corner Size in Overview(40, 41)\n- Workspace Popup Visibility\n- Workspaces in app grid Visibility (40, 41)\n- Workspace Switcher Size (40, 41)\n- Workspace Switcher Visibility\n- Workspace Wraparound\n- World Clock Visibility", "link": "https://extensions.gnome.org/extension/3843/just-perfection/", "shell_version_map": {"38": {"version": "19", "sha256": "03rw7lwzd481ynrgc3vhnhjnw7vyrjcfn80cy7af8dmvlqcx0299", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsLCBDaGFuZ2UgdGhlIEJlaGF2aW9yIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENsb2NrIE1lbnUgUG9zaXRpb25cbi0gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIERhc2ggSWNvbiBTaXplXG4tIERhc2ggVmlzaWJpbGl0eVxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIERvdWJsZSBTdXBlciBLZXkgdG8gQXBwIEdyaWRcbi0gR05PTUUgU2hlbGwgVGhlbWUgT3ZlcnJpZGVcbi0gSG90IENvcm5lciAoMy4zNiwgMy4zOCwgNDApXG4tIEtleWJvYXJkIExheW91dCBWaXNpYmlsaXR5XG4tIE5vdGlmaWNhdGlvbiBCYW5uZXIgUG9zaXRpb25cbi0gT1NEIFZpc2liaWxpdHlcbi0gUGFuZWwgQXJyb3cgVmlzaWJpbGl0eSgzLjM2LCAzLjM4KVxuLSBQYW5lbCBCdXR0b24gUGFkZGluZyBTaXplXG4tIFBhbmVsIEhlaWdodFxuLSBQYW5lbCBpY29uIHNpemUgXG4tIFBhbmVsIEluZGljYXRvciBQYWRkaW5nIFNpemVcbi0gUGFuZWwgTm90aWZpY2F0aW9uIGljb24gVmlzaWJpbGl0eVxuLSBQYW5lbCBQb3NpdGlvblxuLSBQYW5lbCBSb3VuZCBDb3JuZXIgU2l6ZSAoMy4zNiwgMy4zOCwgNDAsIDQxKVxuLSBQYW5lbCBWaXNpYmlsaXR5XG4tIFBhbmVsIFZpc2liaWxpdHkgaW4gT3ZlcnZpZXdcbi0gUG93ZXIgSWNvbiBWaXNpYmlsaXR5XG4tIFJpcHBsZSBCb3hcbi0gU2VhcmNoIFZpc2liaWxpdHlcbi0gU3RhcnR1cCBTdGF0dXMoNDAsIDQxKVxuLSBTeXN0ZW0gTWVudSAoQWdncmVnYXRlIE1lbnUpIFZpc2liaWxpdHlcbi0gV2VhdGhlciBWaXNpYmlsaXR5XG4tIFdpbmRvdyBEZW1hbmRzIEF0dGVudGlvbiBGb2N1c1xuLSBXaW5kb3cgUGlja2VyIENhcHRpb24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIENsb3NlIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIFdpbmRvdyBQaWNrZXIgSWNvbig0MCwgNDEpXG4tIFdvcmtzcGFjZSBCYWNrZ3JvdW5kIENvcm5lciBTaXplIGluIE92ZXJ2aWV3KDQwLCA0MSlcbi0gV29ya3NwYWNlIFBvcHVwIFZpc2liaWxpdHlcbi0gV29ya3NwYWNlcyBpbiBhcHAgZ3JpZCBWaXNpYmlsaXR5ICg0MCwgNDEpXG4tIFdvcmtzcGFjZSBTd2l0Y2hlciBTaXplICg0MCwgNDEpXG4tIFdvcmtzcGFjZSBTd2l0Y2hlciBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZSBXcmFwYXJvdW5kXG4tIFdvcmxkIENsb2NrIFZpc2liaWxpdHkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJqdXN0LXBlcmZlY3Rpb24iLAogICJuYW1lIjogIkp1c3QgUGVyZmVjdGlvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5qdXN0LXBlcmZlY3Rpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9qcmFobWF0emFkZWgvanVzdC1wZXJmZWN0aW9uIiwKICAidXVpZCI6ICJqdXN0LXBlcmZlY3Rpb24tZGVza3RvcEBqdXN0LXBlcmZlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "40": {"version": "19", "sha256": "03rw7lwzd481ynrgc3vhnhjnw7vyrjcfn80cy7af8dmvlqcx0299", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsLCBDaGFuZ2UgdGhlIEJlaGF2aW9yIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENsb2NrIE1lbnUgUG9zaXRpb25cbi0gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIERhc2ggSWNvbiBTaXplXG4tIERhc2ggVmlzaWJpbGl0eVxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIERvdWJsZSBTdXBlciBLZXkgdG8gQXBwIEdyaWRcbi0gR05PTUUgU2hlbGwgVGhlbWUgT3ZlcnJpZGVcbi0gSG90IENvcm5lciAoMy4zNiwgMy4zOCwgNDApXG4tIEtleWJvYXJkIExheW91dCBWaXNpYmlsaXR5XG4tIE5vdGlmaWNhdGlvbiBCYW5uZXIgUG9zaXRpb25cbi0gT1NEIFZpc2liaWxpdHlcbi0gUGFuZWwgQXJyb3cgVmlzaWJpbGl0eSgzLjM2LCAzLjM4KVxuLSBQYW5lbCBCdXR0b24gUGFkZGluZyBTaXplXG4tIFBhbmVsIEhlaWdodFxuLSBQYW5lbCBpY29uIHNpemUgXG4tIFBhbmVsIEluZGljYXRvciBQYWRkaW5nIFNpemVcbi0gUGFuZWwgTm90aWZpY2F0aW9uIGljb24gVmlzaWJpbGl0eVxuLSBQYW5lbCBQb3NpdGlvblxuLSBQYW5lbCBSb3VuZCBDb3JuZXIgU2l6ZSAoMy4zNiwgMy4zOCwgNDAsIDQxKVxuLSBQYW5lbCBWaXNpYmlsaXR5XG4tIFBhbmVsIFZpc2liaWxpdHkgaW4gT3ZlcnZpZXdcbi0gUG93ZXIgSWNvbiBWaXNpYmlsaXR5XG4tIFJpcHBsZSBCb3hcbi0gU2VhcmNoIFZpc2liaWxpdHlcbi0gU3RhcnR1cCBTdGF0dXMoNDAsIDQxKVxuLSBTeXN0ZW0gTWVudSAoQWdncmVnYXRlIE1lbnUpIFZpc2liaWxpdHlcbi0gV2VhdGhlciBWaXNpYmlsaXR5XG4tIFdpbmRvdyBEZW1hbmRzIEF0dGVudGlvbiBGb2N1c1xuLSBXaW5kb3cgUGlja2VyIENhcHRpb24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIENsb3NlIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIFdpbmRvdyBQaWNrZXIgSWNvbig0MCwgNDEpXG4tIFdvcmtzcGFjZSBCYWNrZ3JvdW5kIENvcm5lciBTaXplIGluIE92ZXJ2aWV3KDQwLCA0MSlcbi0gV29ya3NwYWNlIFBvcHVwIFZpc2liaWxpdHlcbi0gV29ya3NwYWNlcyBpbiBhcHAgZ3JpZCBWaXNpYmlsaXR5ICg0MCwgNDEpXG4tIFdvcmtzcGFjZSBTd2l0Y2hlciBTaXplICg0MCwgNDEpXG4tIFdvcmtzcGFjZSBTd2l0Y2hlciBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZSBXcmFwYXJvdW5kXG4tIFdvcmxkIENsb2NrIFZpc2liaWxpdHkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJqdXN0LXBlcmZlY3Rpb24iLAogICJuYW1lIjogIkp1c3QgUGVyZmVjdGlvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5qdXN0LXBlcmZlY3Rpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9qcmFobWF0emFkZWgvanVzdC1wZXJmZWN0aW9uIiwKICAidXVpZCI6ICJqdXN0LXBlcmZlY3Rpb24tZGVza3RvcEBqdXN0LXBlcmZlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "41": {"version": "19", "sha256": "03rw7lwzd481ynrgc3vhnhjnw7vyrjcfn80cy7af8dmvlqcx0299", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsLCBDaGFuZ2UgdGhlIEJlaGF2aW9yIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENsb2NrIE1lbnUgUG9zaXRpb25cbi0gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIERhc2ggSWNvbiBTaXplXG4tIERhc2ggVmlzaWJpbGl0eVxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIERvdWJsZSBTdXBlciBLZXkgdG8gQXBwIEdyaWRcbi0gR05PTUUgU2hlbGwgVGhlbWUgT3ZlcnJpZGVcbi0gSG90IENvcm5lciAoMy4zNiwgMy4zOCwgNDApXG4tIEtleWJvYXJkIExheW91dCBWaXNpYmlsaXR5XG4tIE5vdGlmaWNhdGlvbiBCYW5uZXIgUG9zaXRpb25cbi0gT1NEIFZpc2liaWxpdHlcbi0gUGFuZWwgQXJyb3cgVmlzaWJpbGl0eSgzLjM2LCAzLjM4KVxuLSBQYW5lbCBCdXR0b24gUGFkZGluZyBTaXplXG4tIFBhbmVsIEhlaWdodFxuLSBQYW5lbCBpY29uIHNpemUgXG4tIFBhbmVsIEluZGljYXRvciBQYWRkaW5nIFNpemVcbi0gUGFuZWwgTm90aWZpY2F0aW9uIGljb24gVmlzaWJpbGl0eVxuLSBQYW5lbCBQb3NpdGlvblxuLSBQYW5lbCBSb3VuZCBDb3JuZXIgU2l6ZSAoMy4zNiwgMy4zOCwgNDAsIDQxKVxuLSBQYW5lbCBWaXNpYmlsaXR5XG4tIFBhbmVsIFZpc2liaWxpdHkgaW4gT3ZlcnZpZXdcbi0gUG93ZXIgSWNvbiBWaXNpYmlsaXR5XG4tIFJpcHBsZSBCb3hcbi0gU2VhcmNoIFZpc2liaWxpdHlcbi0gU3RhcnR1cCBTdGF0dXMoNDAsIDQxKVxuLSBTeXN0ZW0gTWVudSAoQWdncmVnYXRlIE1lbnUpIFZpc2liaWxpdHlcbi0gV2VhdGhlciBWaXNpYmlsaXR5XG4tIFdpbmRvdyBEZW1hbmRzIEF0dGVudGlvbiBGb2N1c1xuLSBXaW5kb3cgUGlja2VyIENhcHRpb24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIENsb3NlIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIFdpbmRvdyBQaWNrZXIgSWNvbig0MCwgNDEpXG4tIFdvcmtzcGFjZSBCYWNrZ3JvdW5kIENvcm5lciBTaXplIGluIE92ZXJ2aWV3KDQwLCA0MSlcbi0gV29ya3NwYWNlIFBvcHVwIFZpc2liaWxpdHlcbi0gV29ya3NwYWNlcyBpbiBhcHAgZ3JpZCBWaXNpYmlsaXR5ICg0MCwgNDEpXG4tIFdvcmtzcGFjZSBTd2l0Y2hlciBTaXplICg0MCwgNDEpXG4tIFdvcmtzcGFjZSBTd2l0Y2hlciBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZSBXcmFwYXJvdW5kXG4tIFdvcmxkIENsb2NrIFZpc2liaWxpdHkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJqdXN0LXBlcmZlY3Rpb24iLAogICJuYW1lIjogIkp1c3QgUGVyZmVjdGlvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5qdXN0LXBlcmZlY3Rpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9qcmFobWF0emFkZWgvanVzdC1wZXJmZWN0aW9uIiwKICAidXVpZCI6ICJqdXN0LXBlcmZlY3Rpb24tZGVza3RvcEBqdXN0LXBlcmZlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "42": {"version": "19", "sha256": "03rw7lwzd481ynrgc3vhnhjnw7vyrjcfn80cy7af8dmvlqcx0299", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsLCBDaGFuZ2UgdGhlIEJlaGF2aW9yIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENsb2NrIE1lbnUgUG9zaXRpb25cbi0gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIERhc2ggSWNvbiBTaXplXG4tIERhc2ggVmlzaWJpbGl0eVxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIERvdWJsZSBTdXBlciBLZXkgdG8gQXBwIEdyaWRcbi0gR05PTUUgU2hlbGwgVGhlbWUgT3ZlcnJpZGVcbi0gSG90IENvcm5lciAoMy4zNiwgMy4zOCwgNDApXG4tIEtleWJvYXJkIExheW91dCBWaXNpYmlsaXR5XG4tIE5vdGlmaWNhdGlvbiBCYW5uZXIgUG9zaXRpb25cbi0gT1NEIFZpc2liaWxpdHlcbi0gUGFuZWwgQXJyb3cgVmlzaWJpbGl0eSgzLjM2LCAzLjM4KVxuLSBQYW5lbCBCdXR0b24gUGFkZGluZyBTaXplXG4tIFBhbmVsIEhlaWdodFxuLSBQYW5lbCBpY29uIHNpemUgXG4tIFBhbmVsIEluZGljYXRvciBQYWRkaW5nIFNpemVcbi0gUGFuZWwgTm90aWZpY2F0aW9uIGljb24gVmlzaWJpbGl0eVxuLSBQYW5lbCBQb3NpdGlvblxuLSBQYW5lbCBSb3VuZCBDb3JuZXIgU2l6ZSAoMy4zNiwgMy4zOCwgNDAsIDQxKVxuLSBQYW5lbCBWaXNpYmlsaXR5XG4tIFBhbmVsIFZpc2liaWxpdHkgaW4gT3ZlcnZpZXdcbi0gUG93ZXIgSWNvbiBWaXNpYmlsaXR5XG4tIFJpcHBsZSBCb3hcbi0gU2VhcmNoIFZpc2liaWxpdHlcbi0gU3RhcnR1cCBTdGF0dXMoNDAsIDQxKVxuLSBTeXN0ZW0gTWVudSAoQWdncmVnYXRlIE1lbnUpIFZpc2liaWxpdHlcbi0gV2VhdGhlciBWaXNpYmlsaXR5XG4tIFdpbmRvdyBEZW1hbmRzIEF0dGVudGlvbiBGb2N1c1xuLSBXaW5kb3cgUGlja2VyIENhcHRpb24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIENsb3NlIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIFdpbmRvdyBQaWNrZXIgSWNvbig0MCwgNDEpXG4tIFdvcmtzcGFjZSBCYWNrZ3JvdW5kIENvcm5lciBTaXplIGluIE92ZXJ2aWV3KDQwLCA0MSlcbi0gV29ya3NwYWNlIFBvcHVwIFZpc2liaWxpdHlcbi0gV29ya3NwYWNlcyBpbiBhcHAgZ3JpZCBWaXNpYmlsaXR5ICg0MCwgNDEpXG4tIFdvcmtzcGFjZSBTd2l0Y2hlciBTaXplICg0MCwgNDEpXG4tIFdvcmtzcGFjZSBTd2l0Y2hlciBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZSBXcmFwYXJvdW5kXG4tIFdvcmxkIENsb2NrIFZpc2liaWxpdHkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJqdXN0LXBlcmZlY3Rpb24iLAogICJuYW1lIjogIkp1c3QgUGVyZmVjdGlvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5qdXN0LXBlcmZlY3Rpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9qcmFobWF0emFkZWgvanVzdC1wZXJmZWN0aW9uIiwKICAidXVpZCI6ICJqdXN0LXBlcmZlY3Rpb24tZGVza3RvcEBqdXN0LXBlcmZlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
-, {"uuid": "workspaces-bar@fthx", "name": "Workspaces Bar", "pname": "workspaces-bar", "description": "Replace 'Activities' button by all current workspaces buttons. Switch workspace or toggle overview by clicking on these buttons.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.", "link": "https://extensions.gnome.org/extension/3851/workspaces-bar/", "shell_version_map": {"38": {"version": "12", "sha256": "1rskz8llic5g8cix4mb6iha9v789fg6yn2i25zj0ywb9qn063ld5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC93b3Jrc3BhY2VzLWJhciIsCiAgInV1aWQiOiAid29ya3NwYWNlcy1iYXJAZnRoeCIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "12", "sha256": "1rskz8llic5g8cix4mb6iha9v789fg6yn2i25zj0ywb9qn063ld5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC93b3Jrc3BhY2VzLWJhciIsCiAgInV1aWQiOiAid29ya3NwYWNlcy1iYXJAZnRoeCIsCiAgInZlcnNpb24iOiAxMgp9"}, "41": {"version": "12", "sha256": "1rskz8llic5g8cix4mb6iha9v789fg6yn2i25zj0ywb9qn063ld5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC93b3Jrc3BhY2VzLWJhciIsCiAgInV1aWQiOiAid29ya3NwYWNlcy1iYXJAZnRoeCIsCiAgInZlcnNpb24iOiAxMgp9"}}}
+, {"uuid": "click-to-close-overview@l3nn4rt.github.io", "name": "Click to close overview", "pname": "click-to-close-overview", "description": "Close the overview by clicking empty space.", "link": "https://extensions.gnome.org/extension/3826/click-to-close-overview/", "shell_version_map": {"38": {"version": "3", "sha256": "17xd3k1xpsn8ma6f11f4sr26y5xbcs3hiw7lv1qqrn80lyjj2vz1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBieSBjbGlja2luZyBlbXB0eSBzcGFjZS4iLAogICJuYW1lIjogIkNsaWNrIHRvIGNsb3NlIG92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbDNubjRydC9jbGljay10by1jbG9zZS1vdmVydmlldyIsCiAgInV1aWQiOiAiY2xpY2stdG8tY2xvc2Utb3ZlcnZpZXdAbDNubjRydC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "6", "sha256": "08m7d6shrghpqfbxikipxasxc4rxh1m030ljhjrirs856man6qxb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBieSBjbGlja2luZyBlbXB0eSBzcGFjZS4iLAogICJuYW1lIjogIkNsaWNrIHRvIGNsb3NlIG92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbDNubjRydC9jbGljay10by1jbG9zZS1vdmVydmlldyIsCiAgInV1aWQiOiAiY2xpY2stdG8tY2xvc2Utb3ZlcnZpZXdAbDNubjRydC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "08m7d6shrghpqfbxikipxasxc4rxh1m030ljhjrirs856man6qxb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBieSBjbGlja2luZyBlbXB0eSBzcGFjZS4iLAogICJuYW1lIjogIkNsaWNrIHRvIGNsb3NlIG92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbDNubjRydC9jbGljay10by1jbG9zZS1vdmVydmlldyIsCiAgInV1aWQiOiAiY2xpY2stdG8tY2xvc2Utb3ZlcnZpZXdAbDNubjRydC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNgp9"}, "42": {"version": "6", "sha256": "08m7d6shrghpqfbxikipxasxc4rxh1m030ljhjrirs856man6qxb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBieSBjbGlja2luZyBlbXB0eSBzcGFjZS4iLAogICJuYW1lIjogIkNsaWNrIHRvIGNsb3NlIG92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbDNubjRydC9jbGljay10by1jbG9zZS1vdmVydmlldyIsCiAgInV1aWQiOiAiY2xpY2stdG8tY2xvc2Utb3ZlcnZpZXdAbDNubjRydC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "just-perfection-desktop@just-perfection", "name": "Just Perfection", "pname": "just-perfection", "description": "Tweak Tool to Customize GNOME Shell, Change the Behavior and Disable UI Elements\n\n- Accessibility Menu Visibility\n- Activities Button Icon Visibility\n- Activities button Visibility\n- Always Show Workspace Switcher on Dynamic Workspaces (40, 41)\n- Animation Speed or Disable it\n- App Gesture (3.36, 3.38)\n- Applications Button Visibility\n- App Menu Icon Visibility\n- App Menu Visibility\n- Background Menu Visibility\n- Calendar Visibility\n- Clock Menu Position\n- Clock Menu Visibility\n- Dash Icon Size\n- Dash Visibility\n- Disable Type to Search\n- Double Super Key to App Grid\n- Events in Clock Menu Visibility\n- GNOME Shell Theme Override\n- Hot Corner (3.36, 3.38, 40)\n- Keyboard Layout Visibility\n- Notification Banner Position\n- OSD Visibility\n- Panel Arrow Visibility(3.36, 3.38)\n- Panel Button Padding Size\n- Panel Height\n- Panel icon size \n- Panel Indicator Padding Size\n- Panel Notification icon Visibility\n- Panel Position\n- Panel Round Corner Size (3.36, 3.38, 40, 41)\n- Panel Visibility\n- Panel Visibility in Overview\n- Power Icon Visibility\n- Ripple Box\n- Search Visibility\n- Startup Status(40, 41)\n- System Menu (Aggregate Menu) Visibility\n- Weather Visibility\n- Window Demands Attention Focus\n- Window Picker Caption Visibility\n- Window Picker Close Button Visibility\n- Window Picker Icon(40, 41)\n- Workspace Background Corner Size in Overview(40, 41)\n- Workspace Popup Visibility\n- Workspaces in app grid Visibility (40, 41)\n- Workspace Switcher Size (40, 41)\n- Workspace Switcher Visibility\n- Workspace Wraparound\n- World Clock Visibility", "link": "https://extensions.gnome.org/extension/3843/just-perfection/", "shell_version_map": {"38": {"version": "20", "sha256": "0wz7fw8mv9av1b7653gi2c0kvh9333sfl74g12b3vnxrlpbr210q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsLCBDaGFuZ2UgdGhlIEJlaGF2aW9yIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENhbGVuZGFyIFZpc2liaWxpdHlcbi0gQ2xvY2sgTWVudSBQb3NpdGlvblxuLSBDbG9jayBNZW51IFZpc2liaWxpdHlcbi0gRGFzaCBJY29uIFNpemVcbi0gRGFzaCBWaXNpYmlsaXR5XG4tIERpc2FibGUgVHlwZSB0byBTZWFyY2hcbi0gRG91YmxlIFN1cGVyIEtleSB0byBBcHAgR3JpZFxuLSBFdmVudHMgaW4gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIEdOT01FIFNoZWxsIFRoZW1lIE92ZXJyaWRlXG4tIEhvdCBDb3JuZXIgKDMuMzYsIDMuMzgsIDQwKVxuLSBLZXlib2FyZCBMYXlvdXQgVmlzaWJpbGl0eVxuLSBOb3RpZmljYXRpb24gQmFubmVyIFBvc2l0aW9uXG4tIE9TRCBWaXNpYmlsaXR5XG4tIFBhbmVsIEFycm93IFZpc2liaWxpdHkoMy4zNiwgMy4zOClcbi0gUGFuZWwgQnV0dG9uIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBIZWlnaHRcbi0gUGFuZWwgaWNvbiBzaXplIFxuLSBQYW5lbCBJbmRpY2F0b3IgUGFkZGluZyBTaXplXG4tIFBhbmVsIE5vdGlmaWNhdGlvbiBpY29uIFZpc2liaWxpdHlcbi0gUGFuZWwgUG9zaXRpb25cbi0gUGFuZWwgUm91bmQgQ29ybmVyIFNpemUgKDMuMzYsIDMuMzgsIDQwLCA0MSlcbi0gUGFuZWwgVmlzaWJpbGl0eVxuLSBQYW5lbCBWaXNpYmlsaXR5IGluIE92ZXJ2aWV3XG4tIFBvd2VyIEljb24gVmlzaWJpbGl0eVxuLSBSaXBwbGUgQm94XG4tIFNlYXJjaCBWaXNpYmlsaXR5XG4tIFN0YXJ0dXAgU3RhdHVzKDQwLCA0MSlcbi0gU3lzdGVtIE1lbnUgKEFnZ3JlZ2F0ZSBNZW51KSBWaXNpYmlsaXR5XG4tIFdlYXRoZXIgVmlzaWJpbGl0eVxuLSBXaW5kb3cgRGVtYW5kcyBBdHRlbnRpb24gRm9jdXNcbi0gV2luZG93IFBpY2tlciBDYXB0aW9uIFZpc2liaWxpdHlcbi0gV2luZG93IFBpY2tlciBDbG9zZSBCdXR0b24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIEljb24oNDAsIDQxKVxuLSBXb3Jrc3BhY2UgQmFja2dyb3VuZCBDb3JuZXIgU2l6ZSBpbiBPdmVydmlldyg0MCwgNDEpXG4tIFdvcmtzcGFjZSBQb3B1cCBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZXMgaW4gYXBwIGdyaWQgVmlzaWJpbGl0eSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgVmlzaWJpbGl0eVxuLSBXb3Jrc3BhY2UgV3JhcGFyb3VuZFxuLSBXb3JsZCBDbG9jayBWaXNpYmlsaXR5IiwKICAiZ2V0dGV4dC1kb21haW4iOiAianVzdC1wZXJmZWN0aW9uIiwKICAibmFtZSI6ICJKdXN0IFBlcmZlY3Rpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuanVzdC1wZXJmZWN0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvanJhaG1hdHphZGVoL2p1c3QtcGVyZmVjdGlvbiIsCiAgInV1aWQiOiAianVzdC1wZXJmZWN0aW9uLWRlc2t0b3BAanVzdC1wZXJmZWN0aW9uIiwKICAidmVyc2lvbiI6IDIwCn0="}, "40": {"version": "20", "sha256": "0wz7fw8mv9av1b7653gi2c0kvh9333sfl74g12b3vnxrlpbr210q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsLCBDaGFuZ2UgdGhlIEJlaGF2aW9yIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENhbGVuZGFyIFZpc2liaWxpdHlcbi0gQ2xvY2sgTWVudSBQb3NpdGlvblxuLSBDbG9jayBNZW51IFZpc2liaWxpdHlcbi0gRGFzaCBJY29uIFNpemVcbi0gRGFzaCBWaXNpYmlsaXR5XG4tIERpc2FibGUgVHlwZSB0byBTZWFyY2hcbi0gRG91YmxlIFN1cGVyIEtleSB0byBBcHAgR3JpZFxuLSBFdmVudHMgaW4gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIEdOT01FIFNoZWxsIFRoZW1lIE92ZXJyaWRlXG4tIEhvdCBDb3JuZXIgKDMuMzYsIDMuMzgsIDQwKVxuLSBLZXlib2FyZCBMYXlvdXQgVmlzaWJpbGl0eVxuLSBOb3RpZmljYXRpb24gQmFubmVyIFBvc2l0aW9uXG4tIE9TRCBWaXNpYmlsaXR5XG4tIFBhbmVsIEFycm93IFZpc2liaWxpdHkoMy4zNiwgMy4zOClcbi0gUGFuZWwgQnV0dG9uIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBIZWlnaHRcbi0gUGFuZWwgaWNvbiBzaXplIFxuLSBQYW5lbCBJbmRpY2F0b3IgUGFkZGluZyBTaXplXG4tIFBhbmVsIE5vdGlmaWNhdGlvbiBpY29uIFZpc2liaWxpdHlcbi0gUGFuZWwgUG9zaXRpb25cbi0gUGFuZWwgUm91bmQgQ29ybmVyIFNpemUgKDMuMzYsIDMuMzgsIDQwLCA0MSlcbi0gUGFuZWwgVmlzaWJpbGl0eVxuLSBQYW5lbCBWaXNpYmlsaXR5IGluIE92ZXJ2aWV3XG4tIFBvd2VyIEljb24gVmlzaWJpbGl0eVxuLSBSaXBwbGUgQm94XG4tIFNlYXJjaCBWaXNpYmlsaXR5XG4tIFN0YXJ0dXAgU3RhdHVzKDQwLCA0MSlcbi0gU3lzdGVtIE1lbnUgKEFnZ3JlZ2F0ZSBNZW51KSBWaXNpYmlsaXR5XG4tIFdlYXRoZXIgVmlzaWJpbGl0eVxuLSBXaW5kb3cgRGVtYW5kcyBBdHRlbnRpb24gRm9jdXNcbi0gV2luZG93IFBpY2tlciBDYXB0aW9uIFZpc2liaWxpdHlcbi0gV2luZG93IFBpY2tlciBDbG9zZSBCdXR0b24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIEljb24oNDAsIDQxKVxuLSBXb3Jrc3BhY2UgQmFja2dyb3VuZCBDb3JuZXIgU2l6ZSBpbiBPdmVydmlldyg0MCwgNDEpXG4tIFdvcmtzcGFjZSBQb3B1cCBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZXMgaW4gYXBwIGdyaWQgVmlzaWJpbGl0eSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgVmlzaWJpbGl0eVxuLSBXb3Jrc3BhY2UgV3JhcGFyb3VuZFxuLSBXb3JsZCBDbG9jayBWaXNpYmlsaXR5IiwKICAiZ2V0dGV4dC1kb21haW4iOiAianVzdC1wZXJmZWN0aW9uIiwKICAibmFtZSI6ICJKdXN0IFBlcmZlY3Rpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuanVzdC1wZXJmZWN0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvanJhaG1hdHphZGVoL2p1c3QtcGVyZmVjdGlvbiIsCiAgInV1aWQiOiAianVzdC1wZXJmZWN0aW9uLWRlc2t0b3BAanVzdC1wZXJmZWN0aW9uIiwKICAidmVyc2lvbiI6IDIwCn0="}, "41": {"version": "20", "sha256": "0wz7fw8mv9av1b7653gi2c0kvh9333sfl74g12b3vnxrlpbr210q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsLCBDaGFuZ2UgdGhlIEJlaGF2aW9yIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENhbGVuZGFyIFZpc2liaWxpdHlcbi0gQ2xvY2sgTWVudSBQb3NpdGlvblxuLSBDbG9jayBNZW51IFZpc2liaWxpdHlcbi0gRGFzaCBJY29uIFNpemVcbi0gRGFzaCBWaXNpYmlsaXR5XG4tIERpc2FibGUgVHlwZSB0byBTZWFyY2hcbi0gRG91YmxlIFN1cGVyIEtleSB0byBBcHAgR3JpZFxuLSBFdmVudHMgaW4gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIEdOT01FIFNoZWxsIFRoZW1lIE92ZXJyaWRlXG4tIEhvdCBDb3JuZXIgKDMuMzYsIDMuMzgsIDQwKVxuLSBLZXlib2FyZCBMYXlvdXQgVmlzaWJpbGl0eVxuLSBOb3RpZmljYXRpb24gQmFubmVyIFBvc2l0aW9uXG4tIE9TRCBWaXNpYmlsaXR5XG4tIFBhbmVsIEFycm93IFZpc2liaWxpdHkoMy4zNiwgMy4zOClcbi0gUGFuZWwgQnV0dG9uIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBIZWlnaHRcbi0gUGFuZWwgaWNvbiBzaXplIFxuLSBQYW5lbCBJbmRpY2F0b3IgUGFkZGluZyBTaXplXG4tIFBhbmVsIE5vdGlmaWNhdGlvbiBpY29uIFZpc2liaWxpdHlcbi0gUGFuZWwgUG9zaXRpb25cbi0gUGFuZWwgUm91bmQgQ29ybmVyIFNpemUgKDMuMzYsIDMuMzgsIDQwLCA0MSlcbi0gUGFuZWwgVmlzaWJpbGl0eVxuLSBQYW5lbCBWaXNpYmlsaXR5IGluIE92ZXJ2aWV3XG4tIFBvd2VyIEljb24gVmlzaWJpbGl0eVxuLSBSaXBwbGUgQm94XG4tIFNlYXJjaCBWaXNpYmlsaXR5XG4tIFN0YXJ0dXAgU3RhdHVzKDQwLCA0MSlcbi0gU3lzdGVtIE1lbnUgKEFnZ3JlZ2F0ZSBNZW51KSBWaXNpYmlsaXR5XG4tIFdlYXRoZXIgVmlzaWJpbGl0eVxuLSBXaW5kb3cgRGVtYW5kcyBBdHRlbnRpb24gRm9jdXNcbi0gV2luZG93IFBpY2tlciBDYXB0aW9uIFZpc2liaWxpdHlcbi0gV2luZG93IFBpY2tlciBDbG9zZSBCdXR0b24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIEljb24oNDAsIDQxKVxuLSBXb3Jrc3BhY2UgQmFja2dyb3VuZCBDb3JuZXIgU2l6ZSBpbiBPdmVydmlldyg0MCwgNDEpXG4tIFdvcmtzcGFjZSBQb3B1cCBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZXMgaW4gYXBwIGdyaWQgVmlzaWJpbGl0eSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgVmlzaWJpbGl0eVxuLSBXb3Jrc3BhY2UgV3JhcGFyb3VuZFxuLSBXb3JsZCBDbG9jayBWaXNpYmlsaXR5IiwKICAiZ2V0dGV4dC1kb21haW4iOiAianVzdC1wZXJmZWN0aW9uIiwKICAibmFtZSI6ICJKdXN0IFBlcmZlY3Rpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuanVzdC1wZXJmZWN0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvanJhaG1hdHphZGVoL2p1c3QtcGVyZmVjdGlvbiIsCiAgInV1aWQiOiAianVzdC1wZXJmZWN0aW9uLWRlc2t0b3BAanVzdC1wZXJmZWN0aW9uIiwKICAidmVyc2lvbiI6IDIwCn0="}, "42": {"version": "20", "sha256": "0wz7fw8mv9av1b7653gi2c0kvh9333sfl74g12b3vnxrlpbr210q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsLCBDaGFuZ2UgdGhlIEJlaGF2aW9yIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENhbGVuZGFyIFZpc2liaWxpdHlcbi0gQ2xvY2sgTWVudSBQb3NpdGlvblxuLSBDbG9jayBNZW51IFZpc2liaWxpdHlcbi0gRGFzaCBJY29uIFNpemVcbi0gRGFzaCBWaXNpYmlsaXR5XG4tIERpc2FibGUgVHlwZSB0byBTZWFyY2hcbi0gRG91YmxlIFN1cGVyIEtleSB0byBBcHAgR3JpZFxuLSBFdmVudHMgaW4gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIEdOT01FIFNoZWxsIFRoZW1lIE92ZXJyaWRlXG4tIEhvdCBDb3JuZXIgKDMuMzYsIDMuMzgsIDQwKVxuLSBLZXlib2FyZCBMYXlvdXQgVmlzaWJpbGl0eVxuLSBOb3RpZmljYXRpb24gQmFubmVyIFBvc2l0aW9uXG4tIE9TRCBWaXNpYmlsaXR5XG4tIFBhbmVsIEFycm93IFZpc2liaWxpdHkoMy4zNiwgMy4zOClcbi0gUGFuZWwgQnV0dG9uIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBIZWlnaHRcbi0gUGFuZWwgaWNvbiBzaXplIFxuLSBQYW5lbCBJbmRpY2F0b3IgUGFkZGluZyBTaXplXG4tIFBhbmVsIE5vdGlmaWNhdGlvbiBpY29uIFZpc2liaWxpdHlcbi0gUGFuZWwgUG9zaXRpb25cbi0gUGFuZWwgUm91bmQgQ29ybmVyIFNpemUgKDMuMzYsIDMuMzgsIDQwLCA0MSlcbi0gUGFuZWwgVmlzaWJpbGl0eVxuLSBQYW5lbCBWaXNpYmlsaXR5IGluIE92ZXJ2aWV3XG4tIFBvd2VyIEljb24gVmlzaWJpbGl0eVxuLSBSaXBwbGUgQm94XG4tIFNlYXJjaCBWaXNpYmlsaXR5XG4tIFN0YXJ0dXAgU3RhdHVzKDQwLCA0MSlcbi0gU3lzdGVtIE1lbnUgKEFnZ3JlZ2F0ZSBNZW51KSBWaXNpYmlsaXR5XG4tIFdlYXRoZXIgVmlzaWJpbGl0eVxuLSBXaW5kb3cgRGVtYW5kcyBBdHRlbnRpb24gRm9jdXNcbi0gV2luZG93IFBpY2tlciBDYXB0aW9uIFZpc2liaWxpdHlcbi0gV2luZG93IFBpY2tlciBDbG9zZSBCdXR0b24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIEljb24oNDAsIDQxKVxuLSBXb3Jrc3BhY2UgQmFja2dyb3VuZCBDb3JuZXIgU2l6ZSBpbiBPdmVydmlldyg0MCwgNDEpXG4tIFdvcmtzcGFjZSBQb3B1cCBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZXMgaW4gYXBwIGdyaWQgVmlzaWJpbGl0eSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgVmlzaWJpbGl0eVxuLSBXb3Jrc3BhY2UgV3JhcGFyb3VuZFxuLSBXb3JsZCBDbG9jayBWaXNpYmlsaXR5IiwKICAiZ2V0dGV4dC1kb21haW4iOiAianVzdC1wZXJmZWN0aW9uIiwKICAibmFtZSI6ICJKdXN0IFBlcmZlY3Rpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuanVzdC1wZXJmZWN0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvanJhaG1hdHphZGVoL2p1c3QtcGVyZmVjdGlvbiIsCiAgInV1aWQiOiAianVzdC1wZXJmZWN0aW9uLWRlc2t0b3BAanVzdC1wZXJmZWN0aW9uIiwKICAidmVyc2lvbiI6IDIwCn0="}}}
+, {"uuid": "workspaces-bar@fthx", "name": "Workspaces Bar", "pname": "workspaces-bar", "description": "Replace 'Activities' button by all current workspaces buttons. Switch workspace or toggle overview by clicking on these buttons.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.", "link": "https://extensions.gnome.org/extension/3851/workspaces-bar/", "shell_version_map": {"38": {"version": "13", "sha256": "1pmbdzm5ingnqx1i6hd7br14fcmyss6nyrclq74ld5zbpzgy6sih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvd29ya3NwYWNlcy1iYXIiLAogICJ1dWlkIjogIndvcmtzcGFjZXMtYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "40": {"version": "13", "sha256": "1pmbdzm5ingnqx1i6hd7br14fcmyss6nyrclq74ld5zbpzgy6sih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvd29ya3NwYWNlcy1iYXIiLAogICJ1dWlkIjogIndvcmtzcGFjZXMtYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "41": {"version": "13", "sha256": "1pmbdzm5ingnqx1i6hd7br14fcmyss6nyrclq74ld5zbpzgy6sih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvd29ya3NwYWNlcy1iYXIiLAogICJ1dWlkIjogIndvcmtzcGFjZXMtYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "42": {"version": "13", "sha256": "1pmbdzm5ingnqx1i6hd7br14fcmyss6nyrclq74ld5zbpzgy6sih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvd29ya3NwYWNlcy1iYXIiLAogICJ1dWlkIjogIndvcmtzcGFjZXMtYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogMTMKfQ=="}}}
 , {"uuid": "scanlines-effect@muratcileli.com", "name": "Scanlines Effect", "pname": "scanlines-effect", "description": "Retro monitor / CRT TV effect.", "link": "https://extensions.gnome.org/extension/3860/scanlines-effect/", "shell_version_map": {"38": {"version": "1", "sha256": "1xcsd700s9hkqmrqlv56ldiya2jk0d46j8k4a4i3m9c6k40c5z7v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJldHJvIG1vbml0b3IgLyBDUlQgVFYgZWZmZWN0LiIsCiAgIm5hbWUiOiAiU2NhbmxpbmVzIEVmZmVjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJjb20ubXVyYXRjaWxlbGkuc2NhbmxpbmVzLWVmZmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL211cmF0LWNpbGVsaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2NhbmxpbmVzLWVmZmVjdCIsCiAgInV1aWQiOiAic2NhbmxpbmVzLWVmZmVjdEBtdXJhdGNpbGVsaS5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "workspaces-thumbnails-applet@blogdron", "name": "Workspaces Thumbnails Applet", "pname": "workspaces-thumbnails-applet", "description": "Notice!\n\nThis is a fork of the extension https://extensions.gnome.org/extension/2557/workspaces-thumbnails/ It hasn't been updated in a long time, but it only needs a small fix to work. Until the author fixes the problem, I will keep this fork. Please, if you have the opportunity to contact the author of the original extension, let him fix the problem for himself.\n\n\nPut an indicator on the panel showing all the workspaces thumbnails, allowing to switch between them or moving windows to another workspace.\n\n This is a very tiny fork of the original (GNOME official extension) Workspace Indicator, allowing to use it like when the Horizontal Workspaces extension is activated. The vertical workspaces layout is not modified; the workspaces layout is horizontal only in the top panel and the workspaces switcher in the overview is still showed. Please note that any global bug should be reported against the Workspace Indicator extension. https://extensions.gnome.org/extension/21/workspace-indicator", "link": "https://extensions.gnome.org/extension/3872/workspaces-thumbnails-applet/", "shell_version_map": {"38": {"version": "1", "sha256": "02823b6rfnibb0mhnx848pdxc3birw2aqp8607wjf93mvy5388hm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGljZSFcblxuVGhpcyBpcyBhIGZvcmsgb2YgdGhlIGV4dGVuc2lvbiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8yNTU3L3dvcmtzcGFjZXMtdGh1bWJuYWlscy8gSXQgaGFzbid0IGJlZW4gdXBkYXRlZCBpbiBhIGxvbmcgdGltZSwgYnV0IGl0IG9ubHkgbmVlZHMgYSBzbWFsbCBmaXggdG8gd29yay4gVW50aWwgdGhlIGF1dGhvciBmaXhlcyB0aGUgcHJvYmxlbSwgSSB3aWxsIGtlZXAgdGhpcyBmb3JrLiBQbGVhc2UsIGlmIHlvdSBoYXZlIHRoZSBvcHBvcnR1bml0eSB0byBjb250YWN0IHRoZSBhdXRob3Igb2YgdGhlIG9yaWdpbmFsIGV4dGVuc2lvbiwgbGV0IGhpbSBmaXggdGhlIHByb2JsZW0gZm9yIGhpbXNlbGYuXG5cblxuUHV0IGFuIGluZGljYXRvciBvbiB0aGUgcGFuZWwgc2hvd2luZyBhbGwgdGhlIHdvcmtzcGFjZXMgdGh1bWJuYWlscywgYWxsb3dpbmcgdG8gc3dpdGNoIGJldHdlZW4gdGhlbSBvciBtb3Zpbmcgd2luZG93cyB0byBhbm90aGVyIHdvcmtzcGFjZS5cblxuIFRoaXMgaXMgYSB2ZXJ5IHRpbnkgZm9yayBvZiB0aGUgb3JpZ2luYWwgKEdOT01FIG9mZmljaWFsIGV4dGVuc2lvbikgV29ya3NwYWNlIEluZGljYXRvciwgYWxsb3dpbmcgdG8gdXNlIGl0IGxpa2Ugd2hlbiB0aGUgSG9yaXpvbnRhbCBXb3Jrc3BhY2VzIGV4dGVuc2lvbiBpcyBhY3RpdmF0ZWQuIFRoZSB2ZXJ0aWNhbCB3b3Jrc3BhY2VzIGxheW91dCBpcyBub3QgbW9kaWZpZWQ7IHRoZSB3b3Jrc3BhY2VzIGxheW91dCBpcyBob3Jpem9udGFsIG9ubHkgaW4gdGhlIHRvcCBwYW5lbCBhbmQgdGhlIHdvcmtzcGFjZXMgc3dpdGNoZXIgaW4gdGhlIG92ZXJ2aWV3IGlzIHN0aWxsIHNob3dlZC4gUGxlYXNlIG5vdGUgdGhhdCBhbnkgZ2xvYmFsIGJ1ZyBzaG91bGQgYmUgcmVwb3J0ZWQgYWdhaW5zdCB0aGUgV29ya3NwYWNlIEluZGljYXRvciBleHRlbnNpb24uIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzIxL3dvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJleHRlbnNpb24taWQiOiAid29ya3NwYWNlcy10aHVtYm5haWxzLWFwcGxldCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIldvcmtzcGFjZXMgVGh1bWJuYWlscyBBcHBsZXQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImZ0aHgiLAogICAgImJsb2dkcm9uIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIndvcmtzcGFjZXMtdGh1bWJuYWlscy1hcHBsZXRAYmxvZ2Ryb24iLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "simple-monitor@fcaballerop.github.io", "name": "Simple monitor", "pname": "simple-monitor", "description": "It cases stuttering in videos for some users, this extension is not being updated.\nA simple panel button that shows CPU and RAM memory usage. Clicking shows the top 10 processes using CPU and memory.", "link": "https://extensions.gnome.org/extension/3891/simple-monitor/", "shell_version_map": {"38": {"version": "5", "sha256": "1gff73ddb7yinxzdqq1cliqf1xlav16j31wlc7nsnl899zj0cd5j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0IGNhc2VzIHN0dXR0ZXJpbmcgaW4gdmlkZW9zIGZvciBzb21lIHVzZXJzLCB0aGlzIGV4dGVuc2lvbiBpcyBub3QgYmVpbmcgdXBkYXRlZC5cbkEgc2ltcGxlIHBhbmVsIGJ1dHRvbiB0aGF0IHNob3dzIENQVSBhbmQgUkFNIG1lbW9yeSB1c2FnZS4gQ2xpY2tpbmcgc2hvd3MgdGhlIHRvcCAxMCBwcm9jZXNzZXMgdXNpbmcgQ1BVIGFuZCBtZW1vcnkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZXhhbXBsZSIsCiAgIm5hbWUiOiAiU2ltcGxlIG1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc21vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic2ltcGxlLW1vbml0b3JAZmNhYmFsbGVyb3AuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
@@ -414,36 +414,36 @@
 , {"uuid": "toggle-alacritty@itstime.tech", "name": "Toggle Alacritty", "pname": "toggle-alacritty", "description": "Toggles Alacritty window via hotkey: Alt+z\n\nIf Alacritty is not launched, attempts to start it (/usr/bin/alacritty)\n\nWorks under both Wayland and X11\n\nTo change hotkey please follow instruction in the README.md:", "link": "https://extensions.gnome.org/extension/3942/toggle-alacritty/", "shell_version_map": {"38": {"version": "4", "sha256": "1kz5a8x9fpvilcd4p9pn6cmsj6gvq44cg85yhkgdi9x2qpd52fn1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDoiLAogICJuYW1lIjogIlRvZ2dsZSBBbGFjcml0dHkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudG9nZ2xlLWFsYWNyaXR0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXh4YXB5L2dub21lLWFsYWNyaXR0eS10b2dnbGUiLAogICJ1dWlkIjogInRvZ2dsZS1hbGFjcml0dHlAaXRzdGltZS50ZWNoIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "1kz5a8x9fpvilcd4p9pn6cmsj6gvq44cg85yhkgdi9x2qpd52fn1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDoiLAogICJuYW1lIjogIlRvZ2dsZSBBbGFjcml0dHkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudG9nZ2xlLWFsYWNyaXR0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXh4YXB5L2dub21lLWFsYWNyaXR0eS10b2dnbGUiLAogICJ1dWlkIjogInRvZ2dsZS1hbGFjcml0dHlAaXRzdGltZS50ZWNoIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1kz5a8x9fpvilcd4p9pn6cmsj6gvq44cg85yhkgdi9x2qpd52fn1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDoiLAogICJuYW1lIjogIlRvZ2dsZSBBbGFjcml0dHkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudG9nZ2xlLWFsYWNyaXR0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXh4YXB5L2dub21lLWFsYWNyaXR0eS10b2dnbGUiLAogICJ1dWlkIjogInRvZ2dsZS1hbGFjcml0dHlAaXRzdGltZS50ZWNoIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "hide-panel@fthx", "name": "Hide Panel", "pname": "hide-panel", "description": "Hide top panel except in overview. Switch button in panel.\n\nVery very light extension. There is a 1 pixel wide line at the top of the screen that allows to blindly use the panel menus. This is needed to keep the native hot corner active without having to recreate it.", "link": "https://extensions.gnome.org/extension/3948/hide-panel/", "shell_version_map": {"38": {"version": "8", "sha256": "0nrj0kxfdxx7nmw0zai070ca5lv5r43bpgm2binv31xjyh385849", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy4gU3dpdGNoIGJ1dHRvbiBpbiBwYW5lbC5cblxuVmVyeSB2ZXJ5IGxpZ2h0IGV4dGVuc2lvbi4gVGhlcmUgaXMgYSAxIHBpeGVsIHdpZGUgbGluZSBhdCB0aGUgdG9wIG9mIHRoZSBzY3JlZW4gdGhhdCBhbGxvd3MgdG8gYmxpbmRseSB1c2UgdGhlIHBhbmVsIG1lbnVzLiBUaGlzIGlzIG5lZWRlZCB0byBrZWVwIHRoZSBuYXRpdmUgaG90IGNvcm5lciBhY3RpdmUgd2l0aG91dCBoYXZpbmcgdG8gcmVjcmVhdGUgaXQuIiwKICAibmFtZSI6ICJIaWRlIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbCIsCiAgInV1aWQiOiAiaGlkZS1wYW5lbEBmdGh4IiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0nrj0kxfdxx7nmw0zai070ca5lv5r43bpgm2binv31xjyh385849", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy4gU3dpdGNoIGJ1dHRvbiBpbiBwYW5lbC5cblxuVmVyeSB2ZXJ5IGxpZ2h0IGV4dGVuc2lvbi4gVGhlcmUgaXMgYSAxIHBpeGVsIHdpZGUgbGluZSBhdCB0aGUgdG9wIG9mIHRoZSBzY3JlZW4gdGhhdCBhbGxvd3MgdG8gYmxpbmRseSB1c2UgdGhlIHBhbmVsIG1lbnVzLiBUaGlzIGlzIG5lZWRlZCB0byBrZWVwIHRoZSBuYXRpdmUgaG90IGNvcm5lciBhY3RpdmUgd2l0aG91dCBoYXZpbmcgdG8gcmVjcmVhdGUgaXQuIiwKICAibmFtZSI6ICJIaWRlIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbCIsCiAgInV1aWQiOiAiaGlkZS1wYW5lbEBmdGh4IiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "persistent-email-notifications@fthx", "name": "Persistent Email Notifications", "pname": "persistent-email-notifications", "description": "Never hide a new mail notification, except if you close it.\n\nVery very light extension. Email clients supported: Thunderbird, Evolution, Geary, Mailspring, TypeApp, BlueMail. Please ask for another email client if needed.", "link": "https://extensions.gnome.org/extension/3951/persistent-email-notifications/", "shell_version_map": {"38": {"version": "3", "sha256": "06m6fhs50vlrwkgdk6cvkcl5f155a1w8szs1g9pzryf8mmldgmdd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldmVyIGhpZGUgYSBuZXcgbWFpbCBub3RpZmljYXRpb24sIGV4Y2VwdCBpZiB5b3UgY2xvc2UgaXQuXG5cblZlcnkgdmVyeSBsaWdodCBleHRlbnNpb24uIEVtYWlsIGNsaWVudHMgc3VwcG9ydGVkOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZywgVHlwZUFwcCwgQmx1ZU1haWwuIFBsZWFzZSBhc2sgZm9yIGFub3RoZXIgZW1haWwgY2xpZW50IGlmIG5lZWRlZC4iLAogICJuYW1lIjogIlBlcnNpc3RlbnQgRW1haWwgTm90aWZpY2F0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3BlcnNpc3RlbnQtZW1haWwtbm90aWZpY2F0aW9ucyIsCiAgInV1aWQiOiAicGVyc2lzdGVudC1lbWFpbC1ub3RpZmljYXRpb25zQGZ0aHgiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "06m6fhs50vlrwkgdk6cvkcl5f155a1w8szs1g9pzryf8mmldgmdd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldmVyIGhpZGUgYSBuZXcgbWFpbCBub3RpZmljYXRpb24sIGV4Y2VwdCBpZiB5b3UgY2xvc2UgaXQuXG5cblZlcnkgdmVyeSBsaWdodCBleHRlbnNpb24uIEVtYWlsIGNsaWVudHMgc3VwcG9ydGVkOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZywgVHlwZUFwcCwgQmx1ZU1haWwuIFBsZWFzZSBhc2sgZm9yIGFub3RoZXIgZW1haWwgY2xpZW50IGlmIG5lZWRlZC4iLAogICJuYW1lIjogIlBlcnNpc3RlbnQgRW1haWwgTm90aWZpY2F0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3BlcnNpc3RlbnQtZW1haWwtbm90aWZpY2F0aW9ucyIsCiAgInV1aWQiOiAicGVyc2lzdGVudC1lbWFpbC1ub3RpZmljYXRpb25zQGZ0aHgiLAogICJ2ZXJzaW9uIjogMwp9"}}}
-, {"uuid": "horizontal-workspace-indicator@tty2.io", "name": "Workspace indicator", "pname": "workspace-indicator", "description": "Workspace indicator shows the amount of opened workspaces and highlights the current one using unicode characters.\n\nYou can use it as an indicator only but widget is clickable. Left button click: move to left, right click: move right.\n\nThere could be an error with the extension after update. The solution is to logout and login again.", "link": "https://extensions.gnome.org/extension/3952/workspace-indicator/", "shell_version_map": {"38": {"version": "9", "sha256": "17qfpkgah0npp07947ayg1zbc8fqy7ljabx717vfmhwddgmj1zb1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuXG5cblRoZXJlIGNvdWxkIGJlIGFuIGVycm9yIHdpdGggdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGUuIFRoZSBzb2x1dGlvbiBpcyB0byBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIGluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHR5Mi9ob3Jpem9udGFsLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImhvcml6b250YWwtd29ya3NwYWNlLWluZGljYXRvckB0dHkyLmlvIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "12", "sha256": "0f34z9cp8bl88hank3bk2a7byx3y8nwliw1nv0fr28kh13sldlw2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuXG5cblRoZXJlIGNvdWxkIGJlIGFuIGVycm9yIHdpdGggdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGUuIFRoZSBzb2x1dGlvbiBpcyB0byBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIGluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ob3Jpem9udGFsLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dHkyL2hvcml6b250YWwtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInV1aWQiOiAiaG9yaXpvbnRhbC13b3Jrc3BhY2UtaW5kaWNhdG9yQHR0eTIuaW8iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "41": {"version": "12", "sha256": "0f34z9cp8bl88hank3bk2a7byx3y8nwliw1nv0fr28kh13sldlw2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuXG5cblRoZXJlIGNvdWxkIGJlIGFuIGVycm9yIHdpdGggdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGUuIFRoZSBzb2x1dGlvbiBpcyB0byBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIGluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ob3Jpem9udGFsLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dHkyL2hvcml6b250YWwtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInV1aWQiOiAiaG9yaXpvbnRhbC13b3Jrc3BhY2UtaW5kaWNhdG9yQHR0eTIuaW8iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "42": {"version": "12", "sha256": "0f34z9cp8bl88hank3bk2a7byx3y8nwliw1nv0fr28kh13sldlw2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuXG5cblRoZXJlIGNvdWxkIGJlIGFuIGVycm9yIHdpdGggdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGUuIFRoZSBzb2x1dGlvbiBpcyB0byBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIGluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ob3Jpem9udGFsLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dHkyL2hvcml6b250YWwtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInV1aWQiOiAiaG9yaXpvbnRhbC13b3Jrc3BhY2UtaW5kaWNhdG9yQHR0eTIuaW8iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}}}
+, {"uuid": "horizontal-workspace-indicator@tty2.io", "name": "Workspace indicator", "pname": "workspace-indicator", "description": "Workspace indicator shows the amount of opened workspaces and highlights the current one using unicode characters.\n\nYou can use it as an indicator only but widget is clickable. Left button click: move to left, right click: move right.\n\nThere could be an error with the extension after update. The solution is to logout and login again.\n\nIf you have ideas for enhancement add an issue in github extension page. \nIf you want scroll to change workspace functionality, consider to use this extension https://extensions.gnome.org/extension/1616/panel-scroll/ . They work well together. There are no plans to add scroll functionality to workspace indicator directly.", "link": "https://extensions.gnome.org/extension/3952/workspace-indicator/", "shell_version_map": {"38": {"version": "9", "sha256": "00k4bhl2ln5x199m1b3c73hqv5ajf1nyjgjfc9xvia1ivpb45jj3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuXG5cblRoZXJlIGNvdWxkIGJlIGFuIGVycm9yIHdpdGggdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGUuIFRoZSBzb2x1dGlvbiBpcyB0byBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLlxuXG5JZiB5b3UgaGF2ZSBpZGVhcyBmb3IgZW5oYW5jZW1lbnQgYWRkIGFuIGlzc3VlIGluIGdpdGh1YiBleHRlbnNpb24gcGFnZS4gXG5JZiB5b3Ugd2FudCBzY3JvbGwgdG8gY2hhbmdlIHdvcmtzcGFjZSBmdW5jdGlvbmFsaXR5LCBjb25zaWRlciB0byB1c2UgdGhpcyBleHRlbnNpb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTYxNi9wYW5lbC1zY3JvbGwvIC4gVGhleSB3b3JrIHdlbGwgdG9nZXRoZXIuIFRoZXJlIGFyZSBubyBwbGFucyB0byBhZGQgc2Nyb2xsIGZ1bmN0aW9uYWxpdHkgdG8gd29ya3NwYWNlIGluZGljYXRvciBkaXJlY3RseS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBpbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R0eTIvaG9yaXpvbnRhbC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJob3Jpem9udGFsLXdvcmtzcGFjZS1pbmRpY2F0b3JAdHR5Mi5pbyIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "12", "sha256": "0ccbwbifgan8jazaw5nb8wmadi12q7gyfqhy6ssq37k71gwjh8pj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuXG5cblRoZXJlIGNvdWxkIGJlIGFuIGVycm9yIHdpdGggdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGUuIFRoZSBzb2x1dGlvbiBpcyB0byBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLlxuXG5JZiB5b3UgaGF2ZSBpZGVhcyBmb3IgZW5oYW5jZW1lbnQgYWRkIGFuIGlzc3VlIGluIGdpdGh1YiBleHRlbnNpb24gcGFnZS4gXG5JZiB5b3Ugd2FudCBzY3JvbGwgdG8gY2hhbmdlIHdvcmtzcGFjZSBmdW5jdGlvbmFsaXR5LCBjb25zaWRlciB0byB1c2UgdGhpcyBleHRlbnNpb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTYxNi9wYW5lbC1zY3JvbGwvIC4gVGhleSB3b3JrIHdlbGwgdG9nZXRoZXIuIFRoZXJlIGFyZSBubyBwbGFucyB0byBhZGQgc2Nyb2xsIGZ1bmN0aW9uYWxpdHkgdG8gd29ya3NwYWNlIGluZGljYXRvciBkaXJlY3RseS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBpbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG9yaXpvbnRhbC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHR5Mi9ob3Jpem9udGFsLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImhvcml6b250YWwtd29ya3NwYWNlLWluZGljYXRvckB0dHkyLmlvIiwKICAidmVyc2lvbiI6IDEyCn0="}, "41": {"version": "12", "sha256": "0ccbwbifgan8jazaw5nb8wmadi12q7gyfqhy6ssq37k71gwjh8pj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuXG5cblRoZXJlIGNvdWxkIGJlIGFuIGVycm9yIHdpdGggdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGUuIFRoZSBzb2x1dGlvbiBpcyB0byBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLlxuXG5JZiB5b3UgaGF2ZSBpZGVhcyBmb3IgZW5oYW5jZW1lbnQgYWRkIGFuIGlzc3VlIGluIGdpdGh1YiBleHRlbnNpb24gcGFnZS4gXG5JZiB5b3Ugd2FudCBzY3JvbGwgdG8gY2hhbmdlIHdvcmtzcGFjZSBmdW5jdGlvbmFsaXR5LCBjb25zaWRlciB0byB1c2UgdGhpcyBleHRlbnNpb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTYxNi9wYW5lbC1zY3JvbGwvIC4gVGhleSB3b3JrIHdlbGwgdG9nZXRoZXIuIFRoZXJlIGFyZSBubyBwbGFucyB0byBhZGQgc2Nyb2xsIGZ1bmN0aW9uYWxpdHkgdG8gd29ya3NwYWNlIGluZGljYXRvciBkaXJlY3RseS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBpbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG9yaXpvbnRhbC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHR5Mi9ob3Jpem9udGFsLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImhvcml6b250YWwtd29ya3NwYWNlLWluZGljYXRvckB0dHkyLmlvIiwKICAidmVyc2lvbiI6IDEyCn0="}, "42": {"version": "12", "sha256": "0ccbwbifgan8jazaw5nb8wmadi12q7gyfqhy6ssq37k71gwjh8pj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuXG5cblRoZXJlIGNvdWxkIGJlIGFuIGVycm9yIHdpdGggdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGUuIFRoZSBzb2x1dGlvbiBpcyB0byBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLlxuXG5JZiB5b3UgaGF2ZSBpZGVhcyBmb3IgZW5oYW5jZW1lbnQgYWRkIGFuIGlzc3VlIGluIGdpdGh1YiBleHRlbnNpb24gcGFnZS4gXG5JZiB5b3Ugd2FudCBzY3JvbGwgdG8gY2hhbmdlIHdvcmtzcGFjZSBmdW5jdGlvbmFsaXR5LCBjb25zaWRlciB0byB1c2UgdGhpcyBleHRlbnNpb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTYxNi9wYW5lbC1zY3JvbGwvIC4gVGhleSB3b3JrIHdlbGwgdG9nZXRoZXIuIFRoZXJlIGFyZSBubyBwbGFucyB0byBhZGQgc2Nyb2xsIGZ1bmN0aW9uYWxpdHkgdG8gd29ya3NwYWNlIGluZGljYXRvciBkaXJlY3RseS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBpbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG9yaXpvbnRhbC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHR5Mi9ob3Jpem9udGFsLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImhvcml6b250YWwtd29ya3NwYWNlLWluZGljYXRvckB0dHkyLmlvIiwKICAidmVyc2lvbiI6IDEyCn0="}}}
 , {"uuid": "kitchentimer@blackjackshellac.ca", "name": "Kitchen Timer", "pname": "kitchen-timer", "description": "General purpose timer extension for Gnome Shell\n\nPlease report issues on github\n\nIf updating the extension reports an ERROR, it should work after the next reboot or if you logout and login again.", "link": "https://extensions.gnome.org/extension/3955/kitchen-timer/", "shell_version_map": {"38": {"version": "28", "sha256": "0k1ahswl2ipjz1v1z1j96lndbk26rgfr2ra2g78lvzjiv6j42sdf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdlbmVyYWwgcHVycG9zZSB0aW1lciBleHRlbnNpb24gZm9yIEdub21lIFNoZWxsXG5cblBsZWFzZSByZXBvcnQgaXNzdWVzIG9uIGdpdGh1YlxuXG5JZiB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uIHJlcG9ydHMgYW4gRVJST1IsIGl0IHNob3VsZCB3b3JrIGFmdGVyIHRoZSBuZXh0IHJlYm9vdCBvciBpZiB5b3UgbG9nb3V0IGFuZCBsb2dpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJraXRjaGVuLXRpbWVyLWJsYWNramFja3NoZWxsYWMiLAogICJuYW1lIjogIktpdGNoZW4gVGltZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2l0Y2hlbi10aW1lci1ibGFja2phY2tzaGVsbGFjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsYWNramFja3NoZWxsYWMva2l0Y2hlblRpbWVyIiwKICAidXVpZCI6ICJraXRjaGVudGltZXJAYmxhY2tqYWNrc2hlbGxhYy5jYSIsCiAgInZlcnNpb24iOiAyOAp9"}, "40": {"version": "28", "sha256": "0k1ahswl2ipjz1v1z1j96lndbk26rgfr2ra2g78lvzjiv6j42sdf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdlbmVyYWwgcHVycG9zZSB0aW1lciBleHRlbnNpb24gZm9yIEdub21lIFNoZWxsXG5cblBsZWFzZSByZXBvcnQgaXNzdWVzIG9uIGdpdGh1YlxuXG5JZiB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uIHJlcG9ydHMgYW4gRVJST1IsIGl0IHNob3VsZCB3b3JrIGFmdGVyIHRoZSBuZXh0IHJlYm9vdCBvciBpZiB5b3UgbG9nb3V0IGFuZCBsb2dpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJraXRjaGVuLXRpbWVyLWJsYWNramFja3NoZWxsYWMiLAogICJuYW1lIjogIktpdGNoZW4gVGltZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2l0Y2hlbi10aW1lci1ibGFja2phY2tzaGVsbGFjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsYWNramFja3NoZWxsYWMva2l0Y2hlblRpbWVyIiwKICAidXVpZCI6ICJraXRjaGVudGltZXJAYmxhY2tqYWNrc2hlbGxhYy5jYSIsCiAgInZlcnNpb24iOiAyOAp9"}}}
-, {"uuid": "gnome-fuzzy-app-search@gnome-shell-extensions.Czarlie.gitlab.com", "name": "GNOME Fuzzy App Search", "pname": "gnome-fuzzy-app-search", "description": "Fuzzy application search results for Gnome Search", "link": "https://extensions.gnome.org/extension/3956/gnome-fuzzy-app-search/", "shell_version_map": {"38": {"version": "14", "sha256": "0pr35xdks90nsr6fplkccgr9hhxq1cmvi2cz35h9wd2gh0yd1v6p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9DemFybGllL2dub21lLWZ1enp5LWFwcC1zZWFyY2giLAogICJ1dWlkIjogImdub21lLWZ1enp5LWFwcC1zZWFyY2hAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5DemFybGllLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "14", "sha256": "0pr35xdks90nsr6fplkccgr9hhxq1cmvi2cz35h9wd2gh0yd1v6p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9DemFybGllL2dub21lLWZ1enp5LWFwcC1zZWFyY2giLAogICJ1dWlkIjogImdub21lLWZ1enp5LWFwcC1zZWFyY2hAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5DemFybGllLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "0pr35xdks90nsr6fplkccgr9hhxq1cmvi2cz35h9wd2gh0yd1v6p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9DemFybGllL2dub21lLWZ1enp5LWFwcC1zZWFyY2giLAogICJ1dWlkIjogImdub21lLWZ1enp5LWFwcC1zZWFyY2hAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5DemFybGllLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
+, {"uuid": "gnome-fuzzy-app-search@gnome-shell-extensions.Czarlie.gitlab.com", "name": "GNOME Fuzzy App Search", "pname": "gnome-fuzzy-app-search", "description": "Fuzzy application search results for Gnome Search", "link": "https://extensions.gnome.org/extension/3956/gnome-fuzzy-app-search/", "shell_version_map": {"38": {"version": "16", "sha256": "0yhc4rrxdqkd2in0vi3kxc7q3llbk88r47fqbvvlbcf8viv7blkq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vQ3phcmxpZS9nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAidXVpZCI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuQ3phcmxpZS5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "40": {"version": "16", "sha256": "0yhc4rrxdqkd2in0vi3kxc7q3llbk88r47fqbvvlbcf8viv7blkq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vQ3phcmxpZS9nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAidXVpZCI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuQ3phcmxpZS5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "41": {"version": "16", "sha256": "0yhc4rrxdqkd2in0vi3kxc7q3llbk88r47fqbvvlbcf8viv7blkq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vQ3phcmxpZS9nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAidXVpZCI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuQ3phcmxpZS5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "42": {"version": "16", "sha256": "0yhc4rrxdqkd2in0vi3kxc7q3llbk88r47fqbvvlbcf8viv7blkq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vQ3phcmxpZS9nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAidXVpZCI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuQ3phcmxpZS5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
 , {"uuid": "e-ink-mode@fujimo-t.github.io", "name": "E Ink Mode", "pname": "e-ink-mode", "description": "Make desktop suitable for E Ink monitors.\n\nUnmaintenanced.\nPlease migrate to theme:\nhttps://github.com/fujimo-t/gnome-shell-theme-e-ink\nSee below to detail:\nhttps://github.com/fujimo-t/gnome-shell-extension-e-ink-mode/issues/3#issuecomment-1019159171", "link": "https://extensions.gnome.org/extension/3957/e-ink-mode/", "shell_version_map": {"40": {"version": "3", "sha256": "0khqna60a0vblygriiky0jzg92ib8i44i6wkr8s3vxi0bcfa2zhm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgZGVza3RvcCBzdWl0YWJsZSBmb3IgRSBJbmsgbW9uaXRvcnMuXG5cblVubWFpbnRlbmFuY2VkLlxuUGxlYXNlIG1pZ3JhdGUgdG8gdGhlbWU6XG5odHRwczovL2dpdGh1Yi5jb20vZnVqaW1vLXQvZ25vbWUtc2hlbGwtdGhlbWUtZS1pbmtcblNlZSBiZWxvdyB0byBkZXRhaWw6XG5odHRwczovL2dpdGh1Yi5jb20vZnVqaW1vLXQvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWUtaW5rLW1vZGUvaXNzdWVzLzMjaXNzdWVjb21tZW50LTEwMTkxNTkxNzEiLAogICJuYW1lIjogIkUgSW5rIE1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnVqaW1vLXQvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWUtaW5rLW1vZGUiLAogICJ1dWlkIjogImUtaW5rLW1vZGVAZnVqaW1vLXQuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
 , {"uuid": "transparent-top-bar@ftpix.com", "name": "Transparent Top Bar (Adjustable transparency)", "pname": "transparent-top-bar-adjustable-transparency", "description": "Fork of: https://github.com/zhanghai/gnome-shell-extension-transparent-top-bar\n\nBring back the transparent top bar in GNOME Shell with adjustable transparency.\n\nDoes not work well with custom shell themes.", "link": "https://extensions.gnome.org/extension/3960/transparent-top-bar-adjustable-transparency/", "shell_version_map": {"38": {"version": "5", "sha256": "09mym8h6lpb53b18c72vzl2y7myl1xg1lyg9jryf3nijna9adnr9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSB0cmFuc3BhcmVudCB0b3AgYmFyIGluIEdOT01FIFNoZWxsIHdpdGggYWRqdXN0YWJsZSB0cmFuc3BhcmVuY3kuXG5cbkRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGN1c3RvbSBzaGVsbCB0aGVtZXMuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIChBZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGFtYXJpb3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXRvcC1iYXIiLAogICJ1dWlkIjogInRyYW5zcGFyZW50LXRvcC1iYXJAZnRwaXguY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "11", "sha256": "1illvhj3916g081cd42lx108fssg5m60w118ihj19qqkvpdq96gw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSB0cmFuc3BhcmVudCB0b3AgYmFyIGluIEdOT01FIFNoZWxsIHdpdGggYWRqdXN0YWJsZSB0cmFuc3BhcmVuY3kuXG5cbkRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGN1c3RvbSBzaGVsbCB0aGVtZXMuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIChBZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sYW1hcmlvcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhciIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtdG9wLWJhckBmdHBpeC5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "41": {"version": "11", "sha256": "1illvhj3916g081cd42lx108fssg5m60w118ihj19qqkvpdq96gw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSB0cmFuc3BhcmVudCB0b3AgYmFyIGluIEdOT01FIFNoZWxsIHdpdGggYWRqdXN0YWJsZSB0cmFuc3BhcmVuY3kuXG5cbkRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGN1c3RvbSBzaGVsbCB0aGVtZXMuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIChBZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sYW1hcmlvcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhciIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtdG9wLWJhckBmdHBpeC5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "42": {"version": "11", "sha256": "1illvhj3916g081cd42lx108fssg5m60w118ihj19qqkvpdq96gw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSB0cmFuc3BhcmVudCB0b3AgYmFyIGluIEdOT01FIFNoZWxsIHdpdGggYWRqdXN0YWJsZSB0cmFuc3BhcmVuY3kuXG5cbkRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGN1c3RvbSBzaGVsbCB0aGVtZXMuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIChBZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sYW1hcmlvcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhciIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtdG9wLWJhckBmdHBpeC5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
 , {"uuid": "improved-workspace-indicator@michaelaquilina.github.io", "name": "Improved Workspace Indicator", "pname": "improved-workspace-indicator", "description": "Slightly improved workspace indicator that shows both current and in use workspaces similar to i3/sway", "link": "https://extensions.gnome.org/extension/3968/improved-workspace-indicator/", "shell_version_map": {"38": {"version": "11", "sha256": "0nxigrl7pzjzkb7vi68agkmgda75m08j3vdjch3m5x3qs3rwbyj6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW1wcm92ZWQtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01pY2hhZWxBcXVpbGluYS9pbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJpbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yQG1pY2hhZWxhcXVpbGluYS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "40": {"version": "11", "sha256": "0nxigrl7pzjzkb7vi68agkmgda75m08j3vdjch3m5x3qs3rwbyj6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW1wcm92ZWQtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01pY2hhZWxBcXVpbGluYS9pbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJpbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yQG1pY2hhZWxhcXVpbGluYS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "41": {"version": "11", "sha256": "0nxigrl7pzjzkb7vi68agkmgda75m08j3vdjch3m5x3qs3rwbyj6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW1wcm92ZWQtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01pY2hhZWxBcXVpbGluYS9pbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJpbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yQG1pY2hhZWxhcXVpbGluYS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "42": {"version": "11", "sha256": "0nxigrl7pzjzkb7vi68agkmgda75m08j3vdjch3m5x3qs3rwbyj6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW1wcm92ZWQtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01pY2hhZWxBcXVpbGluYS9pbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJpbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yQG1pY2hhZWxhcXVpbGluYS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
 , {"uuid": "gnome4synology@psasse.gmx.de", "name": "Movie Search provider for Synology®", "pname": "gnome-movie-search-provider-for-synology", "description": "search provider for movie titles on Synology® NAS including offline search (yet to come)", "link": "https://extensions.gnome.org/extension/3969/gnome-movie-search-provider-for-synology/", "shell_version_map": {"40": {"version": "14", "sha256": "133jgh7s8mdc4dbcwr623yyrpfb8nv96iggsk2kb18lkw2rcf3xi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInNlYXJjaCBwcm92aWRlciBmb3IgbW92aWUgdGl0bGVzIG9uIFN5bm9sb2d5XHUwMGFlIE5BUyBpbmNsdWRpbmcgb2ZmbGluZSBzZWFyY2ggKHlldCB0byBjb21lKSIsCiAgIm5hbWUiOiAiTW92aWUgU2VhcmNoIHByb3ZpZGVyIGZvciBTeW5vbG9neVx1MDBhZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wc2Fzc2U3Mi9tb3ZpZXM0c3lub2xvZ3kiLAogICJ1dWlkIjogImdub21lNHN5bm9sb2d5QHBzYXNzZS5nbXguZGUiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
-, {"uuid": "guillotine@fopdoodle.net", "name": "Guillotine", "pname": "guillotine", "description": "Guillotine is a gnome extension designed for efficiently carrying out executions of commands from a customizable menu. Simply speaking: it is a highly customizable menu that enables you to launch commands and toggle services.", "link": "https://extensions.gnome.org/extension/3981/guillotine/", "shell_version_map": {"38": {"version": "3", "sha256": "0r171an47d1fdhzwiq7kg59hasibmcvvcsv9z9xd1kh5jahzmam5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkd1aWxsb3RpbmUgaXMgYSBnbm9tZSBleHRlbnNpb24gZGVzaWduZWQgZm9yIGVmZmljaWVudGx5IGNhcnJ5aW5nIG91dCBleGVjdXRpb25zIG9mIGNvbW1hbmRzIGZyb20gYSBjdXN0b21pemFibGUgbWVudS4gU2ltcGx5IHNwZWFraW5nOiBpdCBpcyBhIGhpZ2hseSBjdXN0b21pemFibGUgbWVudSB0aGF0IGVuYWJsZXMgeW91IHRvIGxhdW5jaCBjb21tYW5kcyBhbmQgdG9nZ2xlIHNlcnZpY2VzLiIsCiAgIm5hbWUiOiAiR3VpbGxvdGluZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndWlsbG90aW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZW50ZTc2L2d1aWxsb3RpbmUvIiwKICAidXVpZCI6ICJndWlsbG90aW5lQGZvcGRvb2RsZS5uZXQiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "13", "sha256": "15mva65wi2wjy3wb7l71v9qag3wrswifrh53kx6nf8dkqpqir03y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkd1aWxsb3RpbmUgaXMgYSBnbm9tZSBleHRlbnNpb24gZGVzaWduZWQgZm9yIGVmZmljaWVudGx5IGNhcnJ5aW5nIG91dCBleGVjdXRpb25zIG9mIGNvbW1hbmRzIGZyb20gYSBjdXN0b21pemFibGUgbWVudS4gU2ltcGx5IHNwZWFraW5nOiBpdCBpcyBhIGhpZ2hseSBjdXN0b21pemFibGUgbWVudSB0aGF0IGVuYWJsZXMgeW91IHRvIGxhdW5jaCBjb21tYW5kcyBhbmQgdG9nZ2xlIHNlcnZpY2VzLiIsCiAgIm5hbWUiOiAiR3VpbGxvdGluZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndWlsbG90aW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9lbnRlNzYvZ3VpbGxvdGluZS8iLAogICJ1dWlkIjogImd1aWxsb3RpbmVAZm9wZG9vZGxlLm5ldCIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "15mva65wi2wjy3wb7l71v9qag3wrswifrh53kx6nf8dkqpqir03y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkd1aWxsb3RpbmUgaXMgYSBnbm9tZSBleHRlbnNpb24gZGVzaWduZWQgZm9yIGVmZmljaWVudGx5IGNhcnJ5aW5nIG91dCBleGVjdXRpb25zIG9mIGNvbW1hbmRzIGZyb20gYSBjdXN0b21pemFibGUgbWVudS4gU2ltcGx5IHNwZWFraW5nOiBpdCBpcyBhIGhpZ2hseSBjdXN0b21pemFibGUgbWVudSB0aGF0IGVuYWJsZXMgeW91IHRvIGxhdW5jaCBjb21tYW5kcyBhbmQgdG9nZ2xlIHNlcnZpY2VzLiIsCiAgIm5hbWUiOiAiR3VpbGxvdGluZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndWlsbG90aW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9lbnRlNzYvZ3VpbGxvdGluZS8iLAogICJ1dWlkIjogImd1aWxsb3RpbmVAZm9wZG9vZGxlLm5ldCIsCiAgInZlcnNpb24iOiAxMwp9"}}}
+, {"uuid": "guillotine@fopdoodle.net", "name": "Guillotine", "pname": "guillotine", "description": "Guillotine is a gnome extension designed for efficiently carrying out executions of commands from a customizable menu. Simply speaking: it is a highly customizable menu that enables you to launch commands and toggle services.", "link": "https://extensions.gnome.org/extension/3981/guillotine/", "shell_version_map": {"38": {"version": "3", "sha256": "0r171an47d1fdhzwiq7kg59hasibmcvvcsv9z9xd1kh5jahzmam5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkd1aWxsb3RpbmUgaXMgYSBnbm9tZSBleHRlbnNpb24gZGVzaWduZWQgZm9yIGVmZmljaWVudGx5IGNhcnJ5aW5nIG91dCBleGVjdXRpb25zIG9mIGNvbW1hbmRzIGZyb20gYSBjdXN0b21pemFibGUgbWVudS4gU2ltcGx5IHNwZWFraW5nOiBpdCBpcyBhIGhpZ2hseSBjdXN0b21pemFibGUgbWVudSB0aGF0IGVuYWJsZXMgeW91IHRvIGxhdW5jaCBjb21tYW5kcyBhbmQgdG9nZ2xlIHNlcnZpY2VzLiIsCiAgIm5hbWUiOiAiR3VpbGxvdGluZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndWlsbG90aW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZW50ZTc2L2d1aWxsb3RpbmUvIiwKICAidXVpZCI6ICJndWlsbG90aW5lQGZvcGRvb2RsZS5uZXQiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "15", "sha256": "10i86kx5j5rd1hamj8b3kn6lhmv9zb9xid98f2l5l1sna74xh161", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkd1aWxsb3RpbmUgaXMgYSBnbm9tZSBleHRlbnNpb24gZGVzaWduZWQgZm9yIGVmZmljaWVudGx5IGNhcnJ5aW5nIG91dCBleGVjdXRpb25zIG9mIGNvbW1hbmRzIGZyb20gYSBjdXN0b21pemFibGUgbWVudS4gU2ltcGx5IHNwZWFraW5nOiBpdCBpcyBhIGhpZ2hseSBjdXN0b21pemFibGUgbWVudSB0aGF0IGVuYWJsZXMgeW91IHRvIGxhdW5jaCBjb21tYW5kcyBhbmQgdG9nZ2xlIHNlcnZpY2VzLiIsCiAgIm5hbWUiOiAiR3VpbGxvdGluZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndWlsbG90aW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZW50ZTc2L2d1aWxsb3RpbmUvIiwKICAidXVpZCI6ICJndWlsbG90aW5lQGZvcGRvb2RsZS5uZXQiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "15", "sha256": "10i86kx5j5rd1hamj8b3kn6lhmv9zb9xid98f2l5l1sna74xh161", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkd1aWxsb3RpbmUgaXMgYSBnbm9tZSBleHRlbnNpb24gZGVzaWduZWQgZm9yIGVmZmljaWVudGx5IGNhcnJ5aW5nIG91dCBleGVjdXRpb25zIG9mIGNvbW1hbmRzIGZyb20gYSBjdXN0b21pemFibGUgbWVudS4gU2ltcGx5IHNwZWFraW5nOiBpdCBpcyBhIGhpZ2hseSBjdXN0b21pemFibGUgbWVudSB0aGF0IGVuYWJsZXMgeW91IHRvIGxhdW5jaCBjb21tYW5kcyBhbmQgdG9nZ2xlIHNlcnZpY2VzLiIsCiAgIm5hbWUiOiAiR3VpbGxvdGluZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndWlsbG90aW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZW50ZTc2L2d1aWxsb3RpbmUvIiwKICAidXVpZCI6ICJndWlsbG90aW5lQGZvcGRvb2RsZS5uZXQiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "42": {"version": "15", "sha256": "10i86kx5j5rd1hamj8b3kn6lhmv9zb9xid98f2l5l1sna74xh161", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkd1aWxsb3RpbmUgaXMgYSBnbm9tZSBleHRlbnNpb24gZGVzaWduZWQgZm9yIGVmZmljaWVudGx5IGNhcnJ5aW5nIG91dCBleGVjdXRpb25zIG9mIGNvbW1hbmRzIGZyb20gYSBjdXN0b21pemFibGUgbWVudS4gU2ltcGx5IHNwZWFraW5nOiBpdCBpcyBhIGhpZ2hseSBjdXN0b21pemFibGUgbWVudSB0aGF0IGVuYWJsZXMgeW91IHRvIGxhdW5jaCBjb21tYW5kcyBhbmQgdG9nZ2xlIHNlcnZpY2VzLiIsCiAgIm5hbWUiOiAiR3VpbGxvdGluZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndWlsbG90aW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZW50ZTc2L2d1aWxsb3RpbmUvIiwKICAidXVpZCI6ICJndWlsbG90aW5lQGZvcGRvb2RsZS5uZXQiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
 , {"uuid": "shuzhi@tuberry", "name": "Shu Zhi", "pname": "shu-zhi", "description": "Wallpaper generation extension for GNOME Shell, inspired by Jizhi\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3985/shu-zhi/", "shell_version_map": {"38": {"version": "7", "sha256": "1yk39q1ydv7kmb8shi4cp7pf5zvpmj99gjl9svack4773dj9rrwi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogInNodXpoaSIsCiAgIm5hbWUiOiAiU2h1IFpoaSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV6aGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L3NodXpoaSIsCiAgInV1aWQiOiAic2h1emhpQHR1YmVycnkiLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "17", "sha256": "1n0ajmm6d7y6kify6k9g3j2kc3ass9s7zyif5jhr1djzsi6knpq0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxNwp9"}, "41": {"version": "19", "sha256": "1ib82yf7gh97hygbrxccpsh75jpg65rp834vygi25kyf0b8fykff", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxOQp9"}, "42": {"version": "21", "sha256": "1pbldn51jjfq45d3bl7nfciff1mn3krl7dhiwp9hqrp3hchlassd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMQp9"}}}
 , {"uuid": "zilence@apankowski.github.com", "name": "Zilence", "pname": "zilence", "description": "Turns off notifications while sharing screen during a Zoom call", "link": "https://extensions.gnome.org/extension/3988/zilence/", "shell_version_map": {"38": {"version": "2", "sha256": "0ffpwwhx4pn8dfpcbi6yvxvaybwfxklyw5ig9ns71ydckzvn1n9y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1pdCI6ICIyYzdiZjFhNDJlMTFkODM4YTU2NGE2NWQ4MzY5YTgwNjM3M2I2NjdiIiwKICAiZGVzY3JpcHRpb24iOiAiVHVybnMgb2ZmIG5vdGlmaWNhdGlvbnMgd2hpbGUgc2hhcmluZyBzY3JlZW4gZHVyaW5nIGEgWm9vbSBjYWxsIiwKICAibmFtZSI6ICJaaWxlbmNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXBhbmtvd3NraS96aWxlbmNlIiwKICAidXVpZCI6ICJ6aWxlbmNlQGFwYW5rb3dza2kuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
-, {"uuid": "bluetooth-battery@michalw.github.com", "name": "Bluetooth battery indicator", "pname": "bluetooth-battery", "description": "Bluetooth battery indicator", "link": "https://extensions.gnome.org/extension/3991/bluetooth-battery/", "shell_version_map": {"38": {"version": "25", "sha256": "1lyp1940rw5041168k3jqgdmb6w6mlnsr2vxgb01z1hxj99fjdks", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}, "40": {"version": "25", "sha256": "1lyp1940rw5041168k3jqgdmb6w6mlnsr2vxgb01z1hxj99fjdks", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}, "41": {"version": "25", "sha256": "1lyp1940rw5041168k3jqgdmb6w6mlnsr2vxgb01z1hxj99fjdks", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}}}
+, {"uuid": "bluetooth-battery@michalw.github.com", "name": "Bluetooth battery indicator", "pname": "bluetooth-battery", "description": "Bluetooth battery indicator", "link": "https://extensions.gnome.org/extension/3991/bluetooth-battery/", "shell_version_map": {"38": {"version": "26", "sha256": "07p56424nlhcs8rmbxyywc86jvhrr83hwzs1xq4jv338kiprp04j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNgp9"}, "40": {"version": "26", "sha256": "07p56424nlhcs8rmbxyywc86jvhrr83hwzs1xq4jv338kiprp04j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNgp9"}, "41": {"version": "26", "sha256": "07p56424nlhcs8rmbxyywc86jvhrr83hwzs1xq4jv338kiprp04j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNgp9"}}}
 , {"uuid": "gnome-extension-all-ip-addresses@havekes.eu", "name": "All IP Addresses", "pname": "all-ip-addresses", "description": "Show IP addresses for LAN, WAN IPv6 and VPN in the GNOME panel. Click on the address to cycle trough different interfaces.", "link": "https://extensions.gnome.org/extension/3994/all-ip-addresses/", "shell_version_map": {"38": {"version": "3", "sha256": "1s08inwbr9g50g275sxsjggqgwh59gz664ay944ngn755vnr9y1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSVAgYWRkcmVzc2VzIGZvciBMQU4sIFdBTiBJUHY2IGFuZCBWUE4gaW4gdGhlIEdOT01FIHBhbmVsLiBDbGljayBvbiB0aGUgYWRkcmVzcyB0byBjeWNsZSB0cm91Z2ggZGlmZmVyZW50IGludGVyZmFjZXMuIiwKICAibmFtZSI6ICJBbGwgSVAgQWRkcmVzc2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9waGF2ZWtlcy9nbm9tZS1leHRlbnNpb24tYWxsLWlwLWFkZHJlc3NlcyIsCiAgInV1aWQiOiAiZ25vbWUtZXh0ZW5zaW9uLWFsbC1pcC1hZGRyZXNzZXNAaGF2ZWtlcy5ldSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1s08inwbr9g50g275sxsjggqgwh59gz664ay944ngn755vnr9y1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSVAgYWRkcmVzc2VzIGZvciBMQU4sIFdBTiBJUHY2IGFuZCBWUE4gaW4gdGhlIEdOT01FIHBhbmVsLiBDbGljayBvbiB0aGUgYWRkcmVzcyB0byBjeWNsZSB0cm91Z2ggZGlmZmVyZW50IGludGVyZmFjZXMuIiwKICAibmFtZSI6ICJBbGwgSVAgQWRkcmVzc2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9waGF2ZWtlcy9nbm9tZS1leHRlbnNpb24tYWxsLWlwLWFkZHJlc3NlcyIsCiAgInV1aWQiOiAiZ25vbWUtZXh0ZW5zaW9uLWFsbC1pcC1hZGRyZXNzZXNAaGF2ZWtlcy5ldSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "1s08inwbr9g50g275sxsjggqgwh59gz664ay944ngn755vnr9y1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSVAgYWRkcmVzc2VzIGZvciBMQU4sIFdBTiBJUHY2IGFuZCBWUE4gaW4gdGhlIEdOT01FIHBhbmVsLiBDbGljayBvbiB0aGUgYWRkcmVzcyB0byBjeWNsZSB0cm91Z2ggZGlmZmVyZW50IGludGVyZmFjZXMuIiwKICAibmFtZSI6ICJBbGwgSVAgQWRkcmVzc2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9waGF2ZWtlcy9nbm9tZS1leHRlbnNpb24tYWxsLWlwLWFkZHJlc3NlcyIsCiAgInV1aWQiOiAiZ25vbWUtZXh0ZW5zaW9uLWFsbC1pcC1hZGRyZXNzZXNAaGF2ZWtlcy5ldSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "app-grid-tweaks@Selenium-H", "name": "App Grid Tweaks", "pname": "app-grid-tweaks", "description": "Customize the application grid view.\n\nSet the rows, columns and the app icon size for a particular configuration to work.\nIf the screen space is out numbered, reduce the icon size to fit all the rows and columns.\nOr reduce the number of rows and columns.\n\nPress the Refresh button on the left of header bar to apply changes", "link": "https://extensions.gnome.org/extension/3997/app-grid-tweaks/", "shell_version_map": {"38": {"version": "4", "sha256": "17hriwcwhkjp3n20q7bm7iylr8862ghvnagf2xk0ci2hxwwbyc92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXMiLAogICJuYW1lIjogIkFwcCBHcmlkIFR3ZWFrcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcHAtZ3JpZC10d2Vha3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "17hriwcwhkjp3n20q7bm7iylr8862ghvnagf2xk0ci2hxwwbyc92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXMiLAogICJuYW1lIjogIkFwcCBHcmlkIFR3ZWFrcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcHAtZ3JpZC10d2Vha3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "17hriwcwhkjp3n20q7bm7iylr8862ghvnagf2xk0ci2hxwwbyc92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXMiLAogICJuYW1lIjogIkFwcCBHcmlkIFR3ZWFrcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcHAtZ3JpZC10d2Vha3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "babar@fthx", "name": "BaBar Task Bar", "pname": "babar", "description": "Task bar. App grid, favorites, workspaces and tasks in panel. Light extension.\n\n Replace 'Activities' button by all current workspaces and apps buttons. Switch workspace/app or toggle overview by clicking on these buttons. Drag and drop favorite, task, dash item or app grid item to any workspace (you cannot reorder tasks inside a workspace). Persistent window preview with right-click (right-click again or click on preview to close it). You can move this preview anywhere. Change 'Places' label to an icon. Settings in preferences UI.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.\n\n Changelog: https://github.com/fthx/babar/issues/2", "link": "https://extensions.gnome.org/extension/4000/babar/", "shell_version_map": {"38": {"version": "58", "sha256": "0sgsz9skc0d3rx9lap6g8fnmb5ki4ylr8s5f8yk5wkpvzvh3gkgy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}, "40": {"version": "58", "sha256": "0sgsz9skc0d3rx9lap6g8fnmb5ki4ylr8s5f8yk5wkpvzvh3gkgy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}, "41": {"version": "58", "sha256": "0sgsz9skc0d3rx9lap6g8fnmb5ki4ylr8s5f8yk5wkpvzvh3gkgy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}, "42": {"version": "58", "sha256": "0sgsz9skc0d3rx9lap6g8fnmb5ki4ylr8s5f8yk5wkpvzvh3gkgy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}}}
-, {"uuid": "kitsch@fopdoodle.net", "name": "Kitsch", "pname": "kitsch", "description": "Kitsch is a collection of cheap, popular, and marketable improvements to Gnome. One could consider it applying a cosmetic surgery to Gnome.\n\nKitsch can easily be configured and offers the following features:\n- remove application menu from the top bar\n- remove the activity button from the top bar\n- periodically change the background picture\n\nThis extension does not come with any button on the panel. Visit the website for a documentation.", "link": "https://extensions.gnome.org/extension/4001/kitsch/", "shell_version_map": {"38": {"version": "2", "sha256": "16zwz0p4f8zizr14k4jmdixgnjd0a67d0i3w6clrqgfl49cpdcdv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktpdHNjaCBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlYXAsIHBvcHVsYXIsIGFuZCBtYXJrZXRhYmxlIGltcHJvdmVtZW50cyB0byBHbm9tZS4gT25lIGNvdWxkIGNvbnNpZGVyIGl0IGFwcGx5aW5nIGEgY29zbWV0aWMgc3VyZ2VyeSB0byBHbm9tZS5cblxuS2l0c2NoIGNhbiBlYXNpbHkgYmUgY29uZmlndXJlZCBhbmQgb2ZmZXJzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6XG4tIHJlbW92ZSBhcHBsaWNhdGlvbiBtZW51IGZyb20gdGhlIHRvcCBiYXJcbi0gcmVtb3ZlIHRoZSBhY3Rpdml0eSBidXR0b24gZnJvbSB0aGUgdG9wIGJhclxuLSBwZXJpb2RpY2FsbHkgY2hhbmdlIHRoZSBiYWNrZ3JvdW5kIHBpY3R1cmVcblxuVGhpcyBleHRlbnNpb24gZG9lcyBub3QgY29tZSB3aXRoIGFueSBidXR0b24gb24gdGhlIHBhbmVsLiBWaXNpdCB0aGUgd2Vic2l0ZSBmb3IgYSBkb2N1bWVudGF0aW9uLiIsCiAgIm5hbWUiOiAiS2l0c2NoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtpdHNjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VudGU3Ni9raXRzY2gvIiwKICAidXVpZCI6ICJraXRzY2hAZm9wZG9vZGxlLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "5", "sha256": "1bbbdhf73sv240bid4s604g6r8axd40ph2yyf23z5fpj3679g2xr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktpdHNjaCBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlYXAsIHBvcHVsYXIsIGFuZCBtYXJrZXRhYmxlIGltcHJvdmVtZW50cyB0byBHbm9tZS4gT25lIGNvdWxkIGNvbnNpZGVyIGl0IGFwcGx5aW5nIGEgY29zbWV0aWMgc3VyZ2VyeSB0byBHbm9tZS5cblxuS2l0c2NoIGNhbiBlYXNpbHkgYmUgY29uZmlndXJlZCBhbmQgb2ZmZXJzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6XG4tIHJlbW92ZSBhcHBsaWNhdGlvbiBtZW51IGZyb20gdGhlIHRvcCBiYXJcbi0gcmVtb3ZlIHRoZSBhY3Rpdml0eSBidXR0b24gZnJvbSB0aGUgdG9wIGJhclxuLSBwZXJpb2RpY2FsbHkgY2hhbmdlIHRoZSBiYWNrZ3JvdW5kIHBpY3R1cmVcblxuVGhpcyBleHRlbnNpb24gZG9lcyBub3QgY29tZSB3aXRoIGFueSBidXR0b24gb24gdGhlIHBhbmVsLiBWaXNpdCB0aGUgd2Vic2l0ZSBmb3IgYSBkb2N1bWVudGF0aW9uLiIsCiAgIm5hbWUiOiAiS2l0c2NoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtpdHNjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbnRlNzYva2l0c2NoLyIsCiAgInV1aWQiOiAia2l0c2NoQGZvcGRvb2RsZS5uZXQiLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "kitsch@fopdoodle.net", "name": "Kitsch", "pname": "kitsch", "description": "Kitsch is a collection of cheap, popular, and marketable improvements to Gnome. One could consider it applying a cosmetic surgery to Gnome.\n\nKitsch can easily be configured and offers the following features:\n- remove application menu from the top bar\n- remove the activity button from the top bar\n- periodically change the background picture\n\nThis extension does not come with any button on the panel. Visit the website for a documentation.", "link": "https://extensions.gnome.org/extension/4001/kitsch/", "shell_version_map": {"38": {"version": "2", "sha256": "16zwz0p4f8zizr14k4jmdixgnjd0a67d0i3w6clrqgfl49cpdcdv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktpdHNjaCBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlYXAsIHBvcHVsYXIsIGFuZCBtYXJrZXRhYmxlIGltcHJvdmVtZW50cyB0byBHbm9tZS4gT25lIGNvdWxkIGNvbnNpZGVyIGl0IGFwcGx5aW5nIGEgY29zbWV0aWMgc3VyZ2VyeSB0byBHbm9tZS5cblxuS2l0c2NoIGNhbiBlYXNpbHkgYmUgY29uZmlndXJlZCBhbmQgb2ZmZXJzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6XG4tIHJlbW92ZSBhcHBsaWNhdGlvbiBtZW51IGZyb20gdGhlIHRvcCBiYXJcbi0gcmVtb3ZlIHRoZSBhY3Rpdml0eSBidXR0b24gZnJvbSB0aGUgdG9wIGJhclxuLSBwZXJpb2RpY2FsbHkgY2hhbmdlIHRoZSBiYWNrZ3JvdW5kIHBpY3R1cmVcblxuVGhpcyBleHRlbnNpb24gZG9lcyBub3QgY29tZSB3aXRoIGFueSBidXR0b24gb24gdGhlIHBhbmVsLiBWaXNpdCB0aGUgd2Vic2l0ZSBmb3IgYSBkb2N1bWVudGF0aW9uLiIsCiAgIm5hbWUiOiAiS2l0c2NoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtpdHNjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VudGU3Ni9raXRzY2gvIiwKICAidXVpZCI6ICJraXRzY2hAZm9wZG9vZGxlLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "6", "sha256": "0qil706632ff90f2m9fc1a2zlrsiyjzx56b8xxxv7f0jdj08rp1n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktpdHNjaCBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlYXAsIHBvcHVsYXIsIGFuZCBtYXJrZXRhYmxlIGltcHJvdmVtZW50cyB0byBHbm9tZS4gT25lIGNvdWxkIGNvbnNpZGVyIGl0IGFwcGx5aW5nIGEgY29zbWV0aWMgc3VyZ2VyeSB0byBHbm9tZS5cblxuS2l0c2NoIGNhbiBlYXNpbHkgYmUgY29uZmlndXJlZCBhbmQgb2ZmZXJzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6XG4tIHJlbW92ZSBhcHBsaWNhdGlvbiBtZW51IGZyb20gdGhlIHRvcCBiYXJcbi0gcmVtb3ZlIHRoZSBhY3Rpdml0eSBidXR0b24gZnJvbSB0aGUgdG9wIGJhclxuLSBwZXJpb2RpY2FsbHkgY2hhbmdlIHRoZSBiYWNrZ3JvdW5kIHBpY3R1cmVcblxuVGhpcyBleHRlbnNpb24gZG9lcyBub3QgY29tZSB3aXRoIGFueSBidXR0b24gb24gdGhlIHBhbmVsLiBWaXNpdCB0aGUgd2Vic2l0ZSBmb3IgYSBkb2N1bWVudGF0aW9uLiIsCiAgIm5hbWUiOiAiS2l0c2NoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtpdHNjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VudGU3Ni9raXRzY2gvIiwKICAidXVpZCI6ICJraXRzY2hAZm9wZG9vZGxlLm5ldCIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "0qil706632ff90f2m9fc1a2zlrsiyjzx56b8xxxv7f0jdj08rp1n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktpdHNjaCBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlYXAsIHBvcHVsYXIsIGFuZCBtYXJrZXRhYmxlIGltcHJvdmVtZW50cyB0byBHbm9tZS4gT25lIGNvdWxkIGNvbnNpZGVyIGl0IGFwcGx5aW5nIGEgY29zbWV0aWMgc3VyZ2VyeSB0byBHbm9tZS5cblxuS2l0c2NoIGNhbiBlYXNpbHkgYmUgY29uZmlndXJlZCBhbmQgb2ZmZXJzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6XG4tIHJlbW92ZSBhcHBsaWNhdGlvbiBtZW51IGZyb20gdGhlIHRvcCBiYXJcbi0gcmVtb3ZlIHRoZSBhY3Rpdml0eSBidXR0b24gZnJvbSB0aGUgdG9wIGJhclxuLSBwZXJpb2RpY2FsbHkgY2hhbmdlIHRoZSBiYWNrZ3JvdW5kIHBpY3R1cmVcblxuVGhpcyBleHRlbnNpb24gZG9lcyBub3QgY29tZSB3aXRoIGFueSBidXR0b24gb24gdGhlIHBhbmVsLiBWaXNpdCB0aGUgd2Vic2l0ZSBmb3IgYSBkb2N1bWVudGF0aW9uLiIsCiAgIm5hbWUiOiAiS2l0c2NoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtpdHNjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VudGU3Ni9raXRzY2gvIiwKICAidXVpZCI6ICJraXRzY2hAZm9wZG9vZGxlLm5ldCIsCiAgInZlcnNpb24iOiA2Cn0="}, "42": {"version": "6", "sha256": "0qil706632ff90f2m9fc1a2zlrsiyjzx56b8xxxv7f0jdj08rp1n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktpdHNjaCBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlYXAsIHBvcHVsYXIsIGFuZCBtYXJrZXRhYmxlIGltcHJvdmVtZW50cyB0byBHbm9tZS4gT25lIGNvdWxkIGNvbnNpZGVyIGl0IGFwcGx5aW5nIGEgY29zbWV0aWMgc3VyZ2VyeSB0byBHbm9tZS5cblxuS2l0c2NoIGNhbiBlYXNpbHkgYmUgY29uZmlndXJlZCBhbmQgb2ZmZXJzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6XG4tIHJlbW92ZSBhcHBsaWNhdGlvbiBtZW51IGZyb20gdGhlIHRvcCBiYXJcbi0gcmVtb3ZlIHRoZSBhY3Rpdml0eSBidXR0b24gZnJvbSB0aGUgdG9wIGJhclxuLSBwZXJpb2RpY2FsbHkgY2hhbmdlIHRoZSBiYWNrZ3JvdW5kIHBpY3R1cmVcblxuVGhpcyBleHRlbnNpb24gZG9lcyBub3QgY29tZSB3aXRoIGFueSBidXR0b24gb24gdGhlIHBhbmVsLiBWaXNpdCB0aGUgd2Vic2l0ZSBmb3IgYSBkb2N1bWVudGF0aW9uLiIsCiAgIm5hbWUiOiAiS2l0c2NoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtpdHNjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VudGU3Ni9raXRzY2gvIiwKICAidXVpZCI6ICJraXRzY2hAZm9wZG9vZGxlLm5ldCIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"uuid": "gnome-visuals-top-bar@evendanan.net", "name": "Top Bar Visuals - transparent and blur", "pname": "top-bar-visuals-transparent-and-blur", "description": "Fork of: https://github.com/lamarios/gnome-shell-extension-transparent-top-bar\n\nBring back the adjustable transparency top bar (panel) in GNOME Shell and add blur while at it.\n\nDoes not work well with custom shell themes.", "link": "https://extensions.gnome.org/extension/4003/top-bar-visuals-transparent-and-blur/", "shell_version_map": {"38": {"version": "2", "sha256": "0h1qx7bh4gb3xkc8g8byynfa3imxkx332kh88pm4g9zaa20fxzwr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS9sYW1hcmlvcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSBhZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSB0b3AgYmFyIChwYW5lbCkgaW4gR05PTUUgU2hlbGwgYW5kIGFkZCBibHVyIHdoaWxlIGF0IGl0LlxuXG5Eb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBjdXN0b20gc2hlbGwgdGhlbWVzLiIsCiAgIm5hbWUiOiAiVG9wIEJhciBWaXN1YWxzIC0gdHJhbnNwYXJlbnQgYW5kIGJsdXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZW5ueS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhciIsCiAgInV1aWQiOiAiZ25vbWUtdmlzdWFscy10b3AtYmFyQGV2ZW5kYW5hbi5uZXQiLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "desktop-lyric@tuberry", "name": "Desktop Lyric", "pname": "desktop-lyric", "description": "Show the lyric of playing songs on the desktop\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/4006/desktop-lyric/", "shell_version_map": {"38": {"version": "3", "sha256": "1fxlszj21ppdl5k2x2samggxlnay5bqly604szv1sjsnfriqzz3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGVza3RvcC1seXJpYyIsCiAgIm5hbWUiOiAiRGVza3RvcCBMeXJpYyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kZXNrdG9wLWx5cmljIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9kZXNrdG9wLWx5cmljIiwKICAidXVpZCI6ICJkZXNrdG9wLWx5cmljQHR1YmVycnkiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "7", "sha256": "1dd8i7845fshc2d04fgzjr1chrnwsfr7qyjjki1svw36mx1qsjm2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGVza3RvcC1seXJpYyIsCiAgIm5hbWUiOiAiRGVza3RvcCBMeXJpYyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kZXNrdG9wLWx5cmljIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvZGVza3RvcC1seXJpYyIsCiAgInV1aWQiOiAiZGVza3RvcC1seXJpY0B0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDcKfQ=="}, "41": {"version": "12", "sha256": "056cdiw7rlqpxkmca3f1aic7wr9dppvhp1z7wfxl905xn21p9pqf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxMgp9"}, "42": {"version": "13", "sha256": "0j23i2gl956r2wffqky5vg6ca24gn3hkibhrhsvkqd87g90cjdq6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
 , {"uuid": "alttab-mod@leleat-on-github", "name": "AltTab Mod", "pname": "alttab-mod", "description": "Alt/Super+Tab can also be navigated with WASD and hjkl. Q just closes the selected item and only the first window will be raised on app activation. Optionally, only show windows from the current workspace or monitor and remove the slight popup delay.", "link": "https://extensions.gnome.org/extension/4007/alttab-mod/", "shell_version_map": {"38": {"version": "6", "sha256": "069086j1855s0zrawx49h40l3qmzbsjl0n58wr74lxfk1s6sirww", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsdC9TdXBlcitUYWIgY2FuIGFsc28gYmUgbmF2aWdhdGVkIHdpdGggV0FTRCBhbmQgaGprbC4gUSBqdXN0IGNsb3NlcyB0aGUgc2VsZWN0ZWQgaXRlbSBhbmQgb25seSB0aGUgZmlyc3Qgd2luZG93IHdpbGwgYmUgcmFpc2VkIG9uIGFwcCBhY3RpdmF0aW9uLiBPcHRpb25hbGx5LCBvbmx5IHNob3cgd2luZG93cyBmcm9tIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBvciBtb25pdG9yIGFuZCByZW1vdmUgdGhlIHNsaWdodCBwb3B1cCBkZWxheS4iLAogICJuYW1lIjogIkFsdFRhYiBNb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xlbGVhdC9BbHRUYWItTW9kIiwKICAidXVpZCI6ICJhbHR0YWItbW9kQGxlbGVhdC1vbi1naXRodWIiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "7", "sha256": "1qnbga30wvsj6xny7ajvy8y6c4vm3cpwz3zkm5njr2d0qg4svsq0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsdC9TdXBlcitUYWIgY2FuIGFsc28gYmUgbmF2aWdhdGVkIHdpdGggV0FTRCBhbmQgaGprbC4gUSBqdXN0IGNsb3NlcyB0aGUgc2VsZWN0ZWQgaXRlbSBhbmQgb25seSB0aGUgZmlyc3Qgd2luZG93IHdpbGwgYmUgcmFpc2VkIG9uIGFwcCBhY3RpdmF0aW9uLiBPcHRpb25hbGx5LCBvbmx5IHNob3cgd2luZG93cyBmcm9tIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBvciBtb25pdG9yIGFuZCByZW1vdmUgdGhlIHNsaWdodCBwb3B1cCBkZWxheS4iLAogICJuYW1lIjogIkFsdFRhYiBNb2QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx0VGFiLW1vZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L0FsdFRhYi1Nb2QiLAogICJ1dWlkIjogImFsdHRhYi1tb2RAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "1qnbga30wvsj6xny7ajvy8y6c4vm3cpwz3zkm5njr2d0qg4svsq0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsdC9TdXBlcitUYWIgY2FuIGFsc28gYmUgbmF2aWdhdGVkIHdpdGggV0FTRCBhbmQgaGprbC4gUSBqdXN0IGNsb3NlcyB0aGUgc2VsZWN0ZWQgaXRlbSBhbmQgb25seSB0aGUgZmlyc3Qgd2luZG93IHdpbGwgYmUgcmFpc2VkIG9uIGFwcCBhY3RpdmF0aW9uLiBPcHRpb25hbGx5LCBvbmx5IHNob3cgd2luZG93cyBmcm9tIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBvciBtb25pdG9yIGFuZCByZW1vdmUgdGhlIHNsaWdodCBwb3B1cCBkZWxheS4iLAogICJuYW1lIjogIkFsdFRhYiBNb2QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx0VGFiLW1vZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L0FsdFRhYi1Nb2QiLAogICJ1dWlkIjogImFsdHRhYi1tb2RAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA3Cn0="}}}
 , {"uuid": "personalize@Selenium-H", "name": "Personalize", "pname": "personalize", "description": "Personalize the looks of GNOME Desktop.\n\nSet the theme variant, window corner curvature and select accent color.\nThe Colors section contains colors generated from the selected accent color.\nThe color generation is not accurate. However, individual colors can be customised.\n\nNot all settings are applied automatically.\nPress Refresh button on the left of the headerbar to reload the extension \n\nCurrently, only Adwaita theme is supported. Also, Adwaita and Adwaita-dark gtk-2 themes\nmust be installed for the extension to work properly. Not all widgets are themed perfectly.", "link": "https://extensions.gnome.org/extension/4010/personalize/", "shell_version_map": {"38": {"version": "1", "sha256": "1rgh2zq7086ymf0222pbrx5n8q11v3f45095w4x3ikw7k12j9s0n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiUGVyc29uYWxpemUgR05PTUUgdGhlbWUgYW5kIGN1c3RvbWl6ZSB0aGVtLiIsCiAgImRlc2NyaXB0aW9uIjogIlBlcnNvbmFsaXplIHRoZSBsb29rcyBvZiBHTk9NRSBEZXNrdG9wLlxuXG5TZXQgdGhlIHRoZW1lIHZhcmlhbnQsIHdpbmRvdyBjb3JuZXIgY3VydmF0dXJlIGFuZCBzZWxlY3QgYWNjZW50IGNvbG9yLlxuVGhlIENvbG9ycyBzZWN0aW9uIGNvbnRhaW5zIGNvbG9ycyBnZW5lcmF0ZWQgZnJvbSB0aGUgc2VsZWN0ZWQgYWNjZW50IGNvbG9yLlxuVGhlIGNvbG9yIGdlbmVyYXRpb24gaXMgbm90IGFjY3VyYXRlLiBIb3dldmVyLCBpbmRpdmlkdWFsIGNvbG9ycyBjYW4gYmUgY3VzdG9taXNlZC5cblxuTm90IGFsbCBzZXR0aW5ncyBhcmUgYXBwbGllZCBhdXRvbWF0aWNhbGx5LlxuUHJlc3MgUmVmcmVzaCBidXR0b24gb24gdGhlIGxlZnQgb2YgdGhlIGhlYWRlcmJhciB0byByZWxvYWQgdGhlIGV4dGVuc2lvbiBcblxuQ3VycmVudGx5LCBvbmx5IEFkd2FpdGEgdGhlbWUgaXMgc3VwcG9ydGVkLiBBbHNvLCBBZHdhaXRhIGFuZCBBZHdhaXRhLWRhcmsgZ3RrLTIgdGhlbWVzXG5tdXN0IGJlIGluc3RhbGxlZCBmb3IgdGhlIGV4dGVuc2lvbiB0byB3b3JrIHByb3Blcmx5LiBOb3QgYWxsIHdpZGdldHMgYXJlIHRoZW1lZCBwZXJmZWN0bHkuIiwKICAibmFtZSI6ICJQZXJzb25hbGl6ZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wZXJzb25hbGl6ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJzdGF0dXMiOiAiICIsCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2VsZW5pdW0tSC9QZXJzb25hbGl6ZSIsCiAgInV1aWQiOiAicGVyc29uYWxpemVAU2VsZW5pdW0tSCIsCiAgInZlcnNpb24iOiAxCn0="}}}
-, {"uuid": "gnomebedtime@ionutbortis.gmail.com", "name": "Bedtime Mode", "pname": "gnome-bedtime", "description": "Hey Gnome, it's bedtime! Converts to grayscale the entire Gnome workspace by using a smooth transition. Best to use during evening/night.\n\nThis behaviour is similar to Android's bedtime mode which converts the phone screen to grayscale. It should somewhat make your device less appealing and limit the usage of it before bedtime. On my side, at least, it still requires a fair amount of self control in order to make that happen.\n\nThe extension has a nice Settings UI where you can customize it to your liking:\n- Set an automatic schedule for turning on/off the Bedtime Mode\n- Add an On Demand button to Top Bar or System Menu to manually toggle the mode\n- Control the On Demand button visibility, appearance and position in Top Bar\n- Choose another color preset and intensity, if you prefer a different color scheme\n- Change color intensity on the fly by scrolling over the On Demand button in Top Bar\n\nMulti language support is also available, please check the GitHub page if you want to help with the translations. So far, the extension is fully translated to Spanish, Dutch, German, Romanian and English.\n\nIf you want to use a keyboard shortcut in order to toggle the Bedtime Mode then you can use this command for the shortcut:\n\nbash -c 'schema_id=org.gnome.shell.extensions.bedtime-mode; schema_dir=~/.local/share/gnome-shell/extensions/gnomebedtime@ionutbortis.gmail.com/schemas/; if [[ $(gsettings --schemadir $schema_dir get $schema_id bedtime-mode-active) == \"true\" ]]; then turn_on=false; else turn_on=true; fi; gsettings --schemadir $schema_dir set $schema_id bedtime-mode-active $turn_on;'\n", "link": "https://extensions.gnome.org/extension/4012/gnome-bedtime/", "shell_version_map": {"38": {"version": "8", "sha256": "11ay06wgi8mq4n6il16rq06pmpy70apmjw0s521bw94vpvhw64kd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhleSBHbm9tZSwgaXQncyBiZWR0aW1lISBDb252ZXJ0cyB0byBncmF5c2NhbGUgdGhlIGVudGlyZSBHbm9tZSB3b3Jrc3BhY2UgYnkgdXNpbmcgYSBzbW9vdGggdHJhbnNpdGlvbi4gQmVzdCB0byB1c2UgZHVyaW5nIGV2ZW5pbmcvbmlnaHQuXG5cblRoaXMgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gQW5kcm9pZCdzIGJlZHRpbWUgbW9kZSB3aGljaCBjb252ZXJ0cyB0aGUgcGhvbmUgc2NyZWVuIHRvIGdyYXlzY2FsZS4gSXQgc2hvdWxkIHNvbWV3aGF0IG1ha2UgeW91ciBkZXZpY2UgbGVzcyBhcHBlYWxpbmcgYW5kIGxpbWl0IHRoZSB1c2FnZSBvZiBpdCBiZWZvcmUgYmVkdGltZS4gT24gbXkgc2lkZSwgYXQgbGVhc3QsIGl0IHN0aWxsIHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygc2VsZiBjb250cm9sIGluIG9yZGVyIHRvIG1ha2UgdGhhdCBoYXBwZW4uXG5cblRoZSBleHRlbnNpb24gaGFzIGEgbmljZSBTZXR0aW5ncyBVSSB3aGVyZSB5b3UgY2FuIGN1c3RvbWl6ZSBpdCB0byB5b3VyIGxpa2luZzpcbi0gU2V0IGFuIGF1dG9tYXRpYyBzY2hlZHVsZSBmb3IgdHVybmluZyBvbi9vZmYgdGhlIEJlZHRpbWUgTW9kZVxuLSBBZGQgYW4gT24gRGVtYW5kIGJ1dHRvbiB0byBUb3AgQmFyIG9yIFN5c3RlbSBNZW51IHRvIG1hbnVhbGx5IHRvZ2dsZSB0aGUgbW9kZVxuLSBDb250cm9sIHRoZSBPbiBEZW1hbmQgYnV0dG9uIHZpc2liaWxpdHksIGFwcGVhcmFuY2UgYW5kIHBvc2l0aW9uIGluIFRvcCBCYXJcbi0gQ2hvb3NlIGFub3RoZXIgY29sb3IgcHJlc2V0IGFuZCBpbnRlbnNpdHksIGlmIHlvdSBwcmVmZXIgYSBkaWZmZXJlbnQgY29sb3Igc2NoZW1lXG4tIENoYW5nZSBjb2xvciBpbnRlbnNpdHkgb24gdGhlIGZseSBieSBzY3JvbGxpbmcgb3ZlciB0aGUgT24gRGVtYW5kIGJ1dHRvbiBpbiBUb3AgQmFyXG5cbk11bHRpIGxhbmd1YWdlIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUsIHBsZWFzZSBjaGVjayB0aGUgR2l0SHViIHBhZ2UgaWYgeW91IHdhbnQgdG8gaGVscCB3aXRoIHRoZSB0cmFuc2xhdGlvbnMuIFNvIGZhciwgdGhlIGV4dGVuc2lvbiBpcyBmdWxseSB0cmFuc2xhdGVkIHRvIFNwYW5pc2gsIER1dGNoLCBHZXJtYW4sIFJvbWFuaWFuIGFuZCBFbmdsaXNoLlxuXG5JZiB5b3Ugd2FudCB0byB1c2UgYSBrZXlib2FyZCBzaG9ydGN1dCBpbiBvcmRlciB0byB0b2dnbGUgdGhlIEJlZHRpbWUgTW9kZSB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZCBmb3IgdGhlIHNob3J0Y3V0OlxuXG5iYXNoIC1jICdzY2hlbWFfaWQ9b3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlOyBzY2hlbWFfZGlyPX4vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbS9zY2hlbWFzLzsgaWYgW1sgJChnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgZ2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSkgPT0gXCJ0cnVlXCIgXV07IHRoZW4gdHVybl9vbj1mYWxzZTsgZWxzZSB0dXJuX29uPXRydWU7IGZpOyBnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgc2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSAkdHVybl9vbjsnXG4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiZWR0aW1lLW1vZGUiLAogICJuYW1lIjogIkJlZHRpbWUgTW9kZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iZWR0aW1lLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pb251dGJvcnRpcy9nbm9tZS1iZWR0aW1lLW1vZGUiLAogICJ1dWlkIjogImdub21lYmVkdGltZUBpb251dGJvcnRpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "11ay06wgi8mq4n6il16rq06pmpy70apmjw0s521bw94vpvhw64kd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhleSBHbm9tZSwgaXQncyBiZWR0aW1lISBDb252ZXJ0cyB0byBncmF5c2NhbGUgdGhlIGVudGlyZSBHbm9tZSB3b3Jrc3BhY2UgYnkgdXNpbmcgYSBzbW9vdGggdHJhbnNpdGlvbi4gQmVzdCB0byB1c2UgZHVyaW5nIGV2ZW5pbmcvbmlnaHQuXG5cblRoaXMgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gQW5kcm9pZCdzIGJlZHRpbWUgbW9kZSB3aGljaCBjb252ZXJ0cyB0aGUgcGhvbmUgc2NyZWVuIHRvIGdyYXlzY2FsZS4gSXQgc2hvdWxkIHNvbWV3aGF0IG1ha2UgeW91ciBkZXZpY2UgbGVzcyBhcHBlYWxpbmcgYW5kIGxpbWl0IHRoZSB1c2FnZSBvZiBpdCBiZWZvcmUgYmVkdGltZS4gT24gbXkgc2lkZSwgYXQgbGVhc3QsIGl0IHN0aWxsIHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygc2VsZiBjb250cm9sIGluIG9yZGVyIHRvIG1ha2UgdGhhdCBoYXBwZW4uXG5cblRoZSBleHRlbnNpb24gaGFzIGEgbmljZSBTZXR0aW5ncyBVSSB3aGVyZSB5b3UgY2FuIGN1c3RvbWl6ZSBpdCB0byB5b3VyIGxpa2luZzpcbi0gU2V0IGFuIGF1dG9tYXRpYyBzY2hlZHVsZSBmb3IgdHVybmluZyBvbi9vZmYgdGhlIEJlZHRpbWUgTW9kZVxuLSBBZGQgYW4gT24gRGVtYW5kIGJ1dHRvbiB0byBUb3AgQmFyIG9yIFN5c3RlbSBNZW51IHRvIG1hbnVhbGx5IHRvZ2dsZSB0aGUgbW9kZVxuLSBDb250cm9sIHRoZSBPbiBEZW1hbmQgYnV0dG9uIHZpc2liaWxpdHksIGFwcGVhcmFuY2UgYW5kIHBvc2l0aW9uIGluIFRvcCBCYXJcbi0gQ2hvb3NlIGFub3RoZXIgY29sb3IgcHJlc2V0IGFuZCBpbnRlbnNpdHksIGlmIHlvdSBwcmVmZXIgYSBkaWZmZXJlbnQgY29sb3Igc2NoZW1lXG4tIENoYW5nZSBjb2xvciBpbnRlbnNpdHkgb24gdGhlIGZseSBieSBzY3JvbGxpbmcgb3ZlciB0aGUgT24gRGVtYW5kIGJ1dHRvbiBpbiBUb3AgQmFyXG5cbk11bHRpIGxhbmd1YWdlIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUsIHBsZWFzZSBjaGVjayB0aGUgR2l0SHViIHBhZ2UgaWYgeW91IHdhbnQgdG8gaGVscCB3aXRoIHRoZSB0cmFuc2xhdGlvbnMuIFNvIGZhciwgdGhlIGV4dGVuc2lvbiBpcyBmdWxseSB0cmFuc2xhdGVkIHRvIFNwYW5pc2gsIER1dGNoLCBHZXJtYW4sIFJvbWFuaWFuIGFuZCBFbmdsaXNoLlxuXG5JZiB5b3Ugd2FudCB0byB1c2UgYSBrZXlib2FyZCBzaG9ydGN1dCBpbiBvcmRlciB0byB0b2dnbGUgdGhlIEJlZHRpbWUgTW9kZSB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZCBmb3IgdGhlIHNob3J0Y3V0OlxuXG5iYXNoIC1jICdzY2hlbWFfaWQ9b3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlOyBzY2hlbWFfZGlyPX4vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbS9zY2hlbWFzLzsgaWYgW1sgJChnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgZ2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSkgPT0gXCJ0cnVlXCIgXV07IHRoZW4gdHVybl9vbj1mYWxzZTsgZWxzZSB0dXJuX29uPXRydWU7IGZpOyBnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgc2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSAkdHVybl9vbjsnXG4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiZWR0aW1lLW1vZGUiLAogICJuYW1lIjogIkJlZHRpbWUgTW9kZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iZWR0aW1lLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pb251dGJvcnRpcy9nbm9tZS1iZWR0aW1lLW1vZGUiLAogICJ1dWlkIjogImdub21lYmVkdGltZUBpb251dGJvcnRpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "11ay06wgi8mq4n6il16rq06pmpy70apmjw0s521bw94vpvhw64kd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhleSBHbm9tZSwgaXQncyBiZWR0aW1lISBDb252ZXJ0cyB0byBncmF5c2NhbGUgdGhlIGVudGlyZSBHbm9tZSB3b3Jrc3BhY2UgYnkgdXNpbmcgYSBzbW9vdGggdHJhbnNpdGlvbi4gQmVzdCB0byB1c2UgZHVyaW5nIGV2ZW5pbmcvbmlnaHQuXG5cblRoaXMgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gQW5kcm9pZCdzIGJlZHRpbWUgbW9kZSB3aGljaCBjb252ZXJ0cyB0aGUgcGhvbmUgc2NyZWVuIHRvIGdyYXlzY2FsZS4gSXQgc2hvdWxkIHNvbWV3aGF0IG1ha2UgeW91ciBkZXZpY2UgbGVzcyBhcHBlYWxpbmcgYW5kIGxpbWl0IHRoZSB1c2FnZSBvZiBpdCBiZWZvcmUgYmVkdGltZS4gT24gbXkgc2lkZSwgYXQgbGVhc3QsIGl0IHN0aWxsIHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygc2VsZiBjb250cm9sIGluIG9yZGVyIHRvIG1ha2UgdGhhdCBoYXBwZW4uXG5cblRoZSBleHRlbnNpb24gaGFzIGEgbmljZSBTZXR0aW5ncyBVSSB3aGVyZSB5b3UgY2FuIGN1c3RvbWl6ZSBpdCB0byB5b3VyIGxpa2luZzpcbi0gU2V0IGFuIGF1dG9tYXRpYyBzY2hlZHVsZSBmb3IgdHVybmluZyBvbi9vZmYgdGhlIEJlZHRpbWUgTW9kZVxuLSBBZGQgYW4gT24gRGVtYW5kIGJ1dHRvbiB0byBUb3AgQmFyIG9yIFN5c3RlbSBNZW51IHRvIG1hbnVhbGx5IHRvZ2dsZSB0aGUgbW9kZVxuLSBDb250cm9sIHRoZSBPbiBEZW1hbmQgYnV0dG9uIHZpc2liaWxpdHksIGFwcGVhcmFuY2UgYW5kIHBvc2l0aW9uIGluIFRvcCBCYXJcbi0gQ2hvb3NlIGFub3RoZXIgY29sb3IgcHJlc2V0IGFuZCBpbnRlbnNpdHksIGlmIHlvdSBwcmVmZXIgYSBkaWZmZXJlbnQgY29sb3Igc2NoZW1lXG4tIENoYW5nZSBjb2xvciBpbnRlbnNpdHkgb24gdGhlIGZseSBieSBzY3JvbGxpbmcgb3ZlciB0aGUgT24gRGVtYW5kIGJ1dHRvbiBpbiBUb3AgQmFyXG5cbk11bHRpIGxhbmd1YWdlIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUsIHBsZWFzZSBjaGVjayB0aGUgR2l0SHViIHBhZ2UgaWYgeW91IHdhbnQgdG8gaGVscCB3aXRoIHRoZSB0cmFuc2xhdGlvbnMuIFNvIGZhciwgdGhlIGV4dGVuc2lvbiBpcyBmdWxseSB0cmFuc2xhdGVkIHRvIFNwYW5pc2gsIER1dGNoLCBHZXJtYW4sIFJvbWFuaWFuIGFuZCBFbmdsaXNoLlxuXG5JZiB5b3Ugd2FudCB0byB1c2UgYSBrZXlib2FyZCBzaG9ydGN1dCBpbiBvcmRlciB0byB0b2dnbGUgdGhlIEJlZHRpbWUgTW9kZSB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZCBmb3IgdGhlIHNob3J0Y3V0OlxuXG5iYXNoIC1jICdzY2hlbWFfaWQ9b3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlOyBzY2hlbWFfZGlyPX4vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbS9zY2hlbWFzLzsgaWYgW1sgJChnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgZ2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSkgPT0gXCJ0cnVlXCIgXV07IHRoZW4gdHVybl9vbj1mYWxzZTsgZWxzZSB0dXJuX29uPXRydWU7IGZpOyBnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgc2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSAkdHVybl9vbjsnXG4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiZWR0aW1lLW1vZGUiLAogICJuYW1lIjogIkJlZHRpbWUgTW9kZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iZWR0aW1lLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pb251dGJvcnRpcy9nbm9tZS1iZWR0aW1lLW1vZGUiLAogICJ1dWlkIjogImdub21lYmVkdGltZUBpb251dGJvcnRpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}, "42": {"version": "8", "sha256": "11ay06wgi8mq4n6il16rq06pmpy70apmjw0s521bw94vpvhw64kd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhleSBHbm9tZSwgaXQncyBiZWR0aW1lISBDb252ZXJ0cyB0byBncmF5c2NhbGUgdGhlIGVudGlyZSBHbm9tZSB3b3Jrc3BhY2UgYnkgdXNpbmcgYSBzbW9vdGggdHJhbnNpdGlvbi4gQmVzdCB0byB1c2UgZHVyaW5nIGV2ZW5pbmcvbmlnaHQuXG5cblRoaXMgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gQW5kcm9pZCdzIGJlZHRpbWUgbW9kZSB3aGljaCBjb252ZXJ0cyB0aGUgcGhvbmUgc2NyZWVuIHRvIGdyYXlzY2FsZS4gSXQgc2hvdWxkIHNvbWV3aGF0IG1ha2UgeW91ciBkZXZpY2UgbGVzcyBhcHBlYWxpbmcgYW5kIGxpbWl0IHRoZSB1c2FnZSBvZiBpdCBiZWZvcmUgYmVkdGltZS4gT24gbXkgc2lkZSwgYXQgbGVhc3QsIGl0IHN0aWxsIHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygc2VsZiBjb250cm9sIGluIG9yZGVyIHRvIG1ha2UgdGhhdCBoYXBwZW4uXG5cblRoZSBleHRlbnNpb24gaGFzIGEgbmljZSBTZXR0aW5ncyBVSSB3aGVyZSB5b3UgY2FuIGN1c3RvbWl6ZSBpdCB0byB5b3VyIGxpa2luZzpcbi0gU2V0IGFuIGF1dG9tYXRpYyBzY2hlZHVsZSBmb3IgdHVybmluZyBvbi9vZmYgdGhlIEJlZHRpbWUgTW9kZVxuLSBBZGQgYW4gT24gRGVtYW5kIGJ1dHRvbiB0byBUb3AgQmFyIG9yIFN5c3RlbSBNZW51IHRvIG1hbnVhbGx5IHRvZ2dsZSB0aGUgbW9kZVxuLSBDb250cm9sIHRoZSBPbiBEZW1hbmQgYnV0dG9uIHZpc2liaWxpdHksIGFwcGVhcmFuY2UgYW5kIHBvc2l0aW9uIGluIFRvcCBCYXJcbi0gQ2hvb3NlIGFub3RoZXIgY29sb3IgcHJlc2V0IGFuZCBpbnRlbnNpdHksIGlmIHlvdSBwcmVmZXIgYSBkaWZmZXJlbnQgY29sb3Igc2NoZW1lXG4tIENoYW5nZSBjb2xvciBpbnRlbnNpdHkgb24gdGhlIGZseSBieSBzY3JvbGxpbmcgb3ZlciB0aGUgT24gRGVtYW5kIGJ1dHRvbiBpbiBUb3AgQmFyXG5cbk11bHRpIGxhbmd1YWdlIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUsIHBsZWFzZSBjaGVjayB0aGUgR2l0SHViIHBhZ2UgaWYgeW91IHdhbnQgdG8gaGVscCB3aXRoIHRoZSB0cmFuc2xhdGlvbnMuIFNvIGZhciwgdGhlIGV4dGVuc2lvbiBpcyBmdWxseSB0cmFuc2xhdGVkIHRvIFNwYW5pc2gsIER1dGNoLCBHZXJtYW4sIFJvbWFuaWFuIGFuZCBFbmdsaXNoLlxuXG5JZiB5b3Ugd2FudCB0byB1c2UgYSBrZXlib2FyZCBzaG9ydGN1dCBpbiBvcmRlciB0byB0b2dnbGUgdGhlIEJlZHRpbWUgTW9kZSB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZCBmb3IgdGhlIHNob3J0Y3V0OlxuXG5iYXNoIC1jICdzY2hlbWFfaWQ9b3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlOyBzY2hlbWFfZGlyPX4vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbS9zY2hlbWFzLzsgaWYgW1sgJChnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgZ2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSkgPT0gXCJ0cnVlXCIgXV07IHRoZW4gdHVybl9vbj1mYWxzZTsgZWxzZSB0dXJuX29uPXRydWU7IGZpOyBnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgc2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSAkdHVybl9vbjsnXG4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiZWR0aW1lLW1vZGUiLAogICJuYW1lIjogIkJlZHRpbWUgTW9kZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iZWR0aW1lLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pb251dGJvcnRpcy9nbm9tZS1iZWR0aW1lLW1vZGUiLAogICJ1dWlkIjogImdub21lYmVkdGltZUBpb251dGJvcnRpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}}}
+, {"uuid": "gnomebedtime@ionutbortis.gmail.com", "name": "Bedtime Mode", "pname": "gnome-bedtime", "description": "Hey Gnome, it's bedtime! Converts to grayscale the entire Gnome workspace by using a smooth transition. Best to use during evening/night.\n\nThis behaviour is similar to Android's bedtime mode which converts the phone screen to grayscale. It should somewhat make your device less appealing and limit the usage of it before bedtime. On my side, at least, it still requires a fair amount of self control in order to make that happen.\n\nThe extension has a nice Settings UI where you can customize it to your liking:\n- Set an automatic schedule for turning on/off the Bedtime Mode\n- Add an On Demand button to Top Bar or System Menu to manually toggle the mode\n- Control the On Demand button visibility, appearance and position in Top Bar\n- Choose another color preset and intensity, if you prefer a different color scheme\n- Change color intensity on the fly by scrolling over the On Demand button in Top Bar\n\nMulti language support is also available, please check the GitHub page if you want to help with the translations. So far, the extension is fully translated to Spanish, Dutch, German, Romanian and English.\n\nIf you want to use a keyboard shortcut in order to toggle the Bedtime Mode then you can use this command for the shortcut:\n\nbash -c 'schema_id=org.gnome.shell.extensions.bedtime-mode; schema_dir=~/.local/share/gnome-shell/extensions/gnomebedtime@ionutbortis.gmail.com/schemas/; if [[ $(gsettings --schemadir $schema_dir get $schema_id bedtime-mode-active) == \"true\" ]]; then turn_on=false; else turn_on=true; fi; gsettings --schemadir $schema_dir set $schema_id bedtime-mode-active $turn_on;'\n", "link": "https://extensions.gnome.org/extension/4012/gnome-bedtime/", "shell_version_map": {"38": {"version": "10", "sha256": "0biakzi3szz2czl6mdhacysq4apz3pslxqi9hhp6lyp1hnch7jll", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhleSBHbm9tZSwgaXQncyBiZWR0aW1lISBDb252ZXJ0cyB0byBncmF5c2NhbGUgdGhlIGVudGlyZSBHbm9tZSB3b3Jrc3BhY2UgYnkgdXNpbmcgYSBzbW9vdGggdHJhbnNpdGlvbi4gQmVzdCB0byB1c2UgZHVyaW5nIGV2ZW5pbmcvbmlnaHQuXG5cblRoaXMgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gQW5kcm9pZCdzIGJlZHRpbWUgbW9kZSB3aGljaCBjb252ZXJ0cyB0aGUgcGhvbmUgc2NyZWVuIHRvIGdyYXlzY2FsZS4gSXQgc2hvdWxkIHNvbWV3aGF0IG1ha2UgeW91ciBkZXZpY2UgbGVzcyBhcHBlYWxpbmcgYW5kIGxpbWl0IHRoZSB1c2FnZSBvZiBpdCBiZWZvcmUgYmVkdGltZS4gT24gbXkgc2lkZSwgYXQgbGVhc3QsIGl0IHN0aWxsIHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygc2VsZiBjb250cm9sIGluIG9yZGVyIHRvIG1ha2UgdGhhdCBoYXBwZW4uXG5cblRoZSBleHRlbnNpb24gaGFzIGEgbmljZSBTZXR0aW5ncyBVSSB3aGVyZSB5b3UgY2FuIGN1c3RvbWl6ZSBpdCB0byB5b3VyIGxpa2luZzpcbi0gU2V0IGFuIGF1dG9tYXRpYyBzY2hlZHVsZSBmb3IgdHVybmluZyBvbi9vZmYgdGhlIEJlZHRpbWUgTW9kZVxuLSBBZGQgYW4gT24gRGVtYW5kIGJ1dHRvbiB0byBUb3AgQmFyIG9yIFN5c3RlbSBNZW51IHRvIG1hbnVhbGx5IHRvZ2dsZSB0aGUgbW9kZVxuLSBDb250cm9sIHRoZSBPbiBEZW1hbmQgYnV0dG9uIHZpc2liaWxpdHksIGFwcGVhcmFuY2UgYW5kIHBvc2l0aW9uIGluIFRvcCBCYXJcbi0gQ2hvb3NlIGFub3RoZXIgY29sb3IgcHJlc2V0IGFuZCBpbnRlbnNpdHksIGlmIHlvdSBwcmVmZXIgYSBkaWZmZXJlbnQgY29sb3Igc2NoZW1lXG4tIENoYW5nZSBjb2xvciBpbnRlbnNpdHkgb24gdGhlIGZseSBieSBzY3JvbGxpbmcgb3ZlciB0aGUgT24gRGVtYW5kIGJ1dHRvbiBpbiBUb3AgQmFyXG5cbk11bHRpIGxhbmd1YWdlIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUsIHBsZWFzZSBjaGVjayB0aGUgR2l0SHViIHBhZ2UgaWYgeW91IHdhbnQgdG8gaGVscCB3aXRoIHRoZSB0cmFuc2xhdGlvbnMuIFNvIGZhciwgdGhlIGV4dGVuc2lvbiBpcyBmdWxseSB0cmFuc2xhdGVkIHRvIFNwYW5pc2gsIER1dGNoLCBHZXJtYW4sIFJvbWFuaWFuIGFuZCBFbmdsaXNoLlxuXG5JZiB5b3Ugd2FudCB0byB1c2UgYSBrZXlib2FyZCBzaG9ydGN1dCBpbiBvcmRlciB0byB0b2dnbGUgdGhlIEJlZHRpbWUgTW9kZSB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZCBmb3IgdGhlIHNob3J0Y3V0OlxuXG5iYXNoIC1jICdzY2hlbWFfaWQ9b3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlOyBzY2hlbWFfZGlyPX4vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbS9zY2hlbWFzLzsgaWYgW1sgJChnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgZ2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSkgPT0gXCJ0cnVlXCIgXV07IHRoZW4gdHVybl9vbj1mYWxzZTsgZWxzZSB0dXJuX29uPXRydWU7IGZpOyBnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgc2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSAkdHVybl9vbjsnXG4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiZWR0aW1lLW1vZGUiLAogICJuYW1lIjogIkJlZHRpbWUgTW9kZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iZWR0aW1lLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pb251dGJvcnRpcy9nbm9tZS1iZWR0aW1lLW1vZGUiLAogICJ1dWlkIjogImdub21lYmVkdGltZUBpb251dGJvcnRpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "40": {"version": "10", "sha256": "0biakzi3szz2czl6mdhacysq4apz3pslxqi9hhp6lyp1hnch7jll", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhleSBHbm9tZSwgaXQncyBiZWR0aW1lISBDb252ZXJ0cyB0byBncmF5c2NhbGUgdGhlIGVudGlyZSBHbm9tZSB3b3Jrc3BhY2UgYnkgdXNpbmcgYSBzbW9vdGggdHJhbnNpdGlvbi4gQmVzdCB0byB1c2UgZHVyaW5nIGV2ZW5pbmcvbmlnaHQuXG5cblRoaXMgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gQW5kcm9pZCdzIGJlZHRpbWUgbW9kZSB3aGljaCBjb252ZXJ0cyB0aGUgcGhvbmUgc2NyZWVuIHRvIGdyYXlzY2FsZS4gSXQgc2hvdWxkIHNvbWV3aGF0IG1ha2UgeW91ciBkZXZpY2UgbGVzcyBhcHBlYWxpbmcgYW5kIGxpbWl0IHRoZSB1c2FnZSBvZiBpdCBiZWZvcmUgYmVkdGltZS4gT24gbXkgc2lkZSwgYXQgbGVhc3QsIGl0IHN0aWxsIHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygc2VsZiBjb250cm9sIGluIG9yZGVyIHRvIG1ha2UgdGhhdCBoYXBwZW4uXG5cblRoZSBleHRlbnNpb24gaGFzIGEgbmljZSBTZXR0aW5ncyBVSSB3aGVyZSB5b3UgY2FuIGN1c3RvbWl6ZSBpdCB0byB5b3VyIGxpa2luZzpcbi0gU2V0IGFuIGF1dG9tYXRpYyBzY2hlZHVsZSBmb3IgdHVybmluZyBvbi9vZmYgdGhlIEJlZHRpbWUgTW9kZVxuLSBBZGQgYW4gT24gRGVtYW5kIGJ1dHRvbiB0byBUb3AgQmFyIG9yIFN5c3RlbSBNZW51IHRvIG1hbnVhbGx5IHRvZ2dsZSB0aGUgbW9kZVxuLSBDb250cm9sIHRoZSBPbiBEZW1hbmQgYnV0dG9uIHZpc2liaWxpdHksIGFwcGVhcmFuY2UgYW5kIHBvc2l0aW9uIGluIFRvcCBCYXJcbi0gQ2hvb3NlIGFub3RoZXIgY29sb3IgcHJlc2V0IGFuZCBpbnRlbnNpdHksIGlmIHlvdSBwcmVmZXIgYSBkaWZmZXJlbnQgY29sb3Igc2NoZW1lXG4tIENoYW5nZSBjb2xvciBpbnRlbnNpdHkgb24gdGhlIGZseSBieSBzY3JvbGxpbmcgb3ZlciB0aGUgT24gRGVtYW5kIGJ1dHRvbiBpbiBUb3AgQmFyXG5cbk11bHRpIGxhbmd1YWdlIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUsIHBsZWFzZSBjaGVjayB0aGUgR2l0SHViIHBhZ2UgaWYgeW91IHdhbnQgdG8gaGVscCB3aXRoIHRoZSB0cmFuc2xhdGlvbnMuIFNvIGZhciwgdGhlIGV4dGVuc2lvbiBpcyBmdWxseSB0cmFuc2xhdGVkIHRvIFNwYW5pc2gsIER1dGNoLCBHZXJtYW4sIFJvbWFuaWFuIGFuZCBFbmdsaXNoLlxuXG5JZiB5b3Ugd2FudCB0byB1c2UgYSBrZXlib2FyZCBzaG9ydGN1dCBpbiBvcmRlciB0byB0b2dnbGUgdGhlIEJlZHRpbWUgTW9kZSB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZCBmb3IgdGhlIHNob3J0Y3V0OlxuXG5iYXNoIC1jICdzY2hlbWFfaWQ9b3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlOyBzY2hlbWFfZGlyPX4vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbS9zY2hlbWFzLzsgaWYgW1sgJChnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgZ2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSkgPT0gXCJ0cnVlXCIgXV07IHRoZW4gdHVybl9vbj1mYWxzZTsgZWxzZSB0dXJuX29uPXRydWU7IGZpOyBnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgc2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSAkdHVybl9vbjsnXG4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiZWR0aW1lLW1vZGUiLAogICJuYW1lIjogIkJlZHRpbWUgTW9kZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iZWR0aW1lLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pb251dGJvcnRpcy9nbm9tZS1iZWR0aW1lLW1vZGUiLAogICJ1dWlkIjogImdub21lYmVkdGltZUBpb251dGJvcnRpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "41": {"version": "10", "sha256": "0biakzi3szz2czl6mdhacysq4apz3pslxqi9hhp6lyp1hnch7jll", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhleSBHbm9tZSwgaXQncyBiZWR0aW1lISBDb252ZXJ0cyB0byBncmF5c2NhbGUgdGhlIGVudGlyZSBHbm9tZSB3b3Jrc3BhY2UgYnkgdXNpbmcgYSBzbW9vdGggdHJhbnNpdGlvbi4gQmVzdCB0byB1c2UgZHVyaW5nIGV2ZW5pbmcvbmlnaHQuXG5cblRoaXMgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gQW5kcm9pZCdzIGJlZHRpbWUgbW9kZSB3aGljaCBjb252ZXJ0cyB0aGUgcGhvbmUgc2NyZWVuIHRvIGdyYXlzY2FsZS4gSXQgc2hvdWxkIHNvbWV3aGF0IG1ha2UgeW91ciBkZXZpY2UgbGVzcyBhcHBlYWxpbmcgYW5kIGxpbWl0IHRoZSB1c2FnZSBvZiBpdCBiZWZvcmUgYmVkdGltZS4gT24gbXkgc2lkZSwgYXQgbGVhc3QsIGl0IHN0aWxsIHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygc2VsZiBjb250cm9sIGluIG9yZGVyIHRvIG1ha2UgdGhhdCBoYXBwZW4uXG5cblRoZSBleHRlbnNpb24gaGFzIGEgbmljZSBTZXR0aW5ncyBVSSB3aGVyZSB5b3UgY2FuIGN1c3RvbWl6ZSBpdCB0byB5b3VyIGxpa2luZzpcbi0gU2V0IGFuIGF1dG9tYXRpYyBzY2hlZHVsZSBmb3IgdHVybmluZyBvbi9vZmYgdGhlIEJlZHRpbWUgTW9kZVxuLSBBZGQgYW4gT24gRGVtYW5kIGJ1dHRvbiB0byBUb3AgQmFyIG9yIFN5c3RlbSBNZW51IHRvIG1hbnVhbGx5IHRvZ2dsZSB0aGUgbW9kZVxuLSBDb250cm9sIHRoZSBPbiBEZW1hbmQgYnV0dG9uIHZpc2liaWxpdHksIGFwcGVhcmFuY2UgYW5kIHBvc2l0aW9uIGluIFRvcCBCYXJcbi0gQ2hvb3NlIGFub3RoZXIgY29sb3IgcHJlc2V0IGFuZCBpbnRlbnNpdHksIGlmIHlvdSBwcmVmZXIgYSBkaWZmZXJlbnQgY29sb3Igc2NoZW1lXG4tIENoYW5nZSBjb2xvciBpbnRlbnNpdHkgb24gdGhlIGZseSBieSBzY3JvbGxpbmcgb3ZlciB0aGUgT24gRGVtYW5kIGJ1dHRvbiBpbiBUb3AgQmFyXG5cbk11bHRpIGxhbmd1YWdlIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUsIHBsZWFzZSBjaGVjayB0aGUgR2l0SHViIHBhZ2UgaWYgeW91IHdhbnQgdG8gaGVscCB3aXRoIHRoZSB0cmFuc2xhdGlvbnMuIFNvIGZhciwgdGhlIGV4dGVuc2lvbiBpcyBmdWxseSB0cmFuc2xhdGVkIHRvIFNwYW5pc2gsIER1dGNoLCBHZXJtYW4sIFJvbWFuaWFuIGFuZCBFbmdsaXNoLlxuXG5JZiB5b3Ugd2FudCB0byB1c2UgYSBrZXlib2FyZCBzaG9ydGN1dCBpbiBvcmRlciB0byB0b2dnbGUgdGhlIEJlZHRpbWUgTW9kZSB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZCBmb3IgdGhlIHNob3J0Y3V0OlxuXG5iYXNoIC1jICdzY2hlbWFfaWQ9b3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlOyBzY2hlbWFfZGlyPX4vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbS9zY2hlbWFzLzsgaWYgW1sgJChnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgZ2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSkgPT0gXCJ0cnVlXCIgXV07IHRoZW4gdHVybl9vbj1mYWxzZTsgZWxzZSB0dXJuX29uPXRydWU7IGZpOyBnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgc2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSAkdHVybl9vbjsnXG4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiZWR0aW1lLW1vZGUiLAogICJuYW1lIjogIkJlZHRpbWUgTW9kZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iZWR0aW1lLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pb251dGJvcnRpcy9nbm9tZS1iZWR0aW1lLW1vZGUiLAogICJ1dWlkIjogImdub21lYmVkdGltZUBpb251dGJvcnRpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "42": {"version": "10", "sha256": "0biakzi3szz2czl6mdhacysq4apz3pslxqi9hhp6lyp1hnch7jll", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhleSBHbm9tZSwgaXQncyBiZWR0aW1lISBDb252ZXJ0cyB0byBncmF5c2NhbGUgdGhlIGVudGlyZSBHbm9tZSB3b3Jrc3BhY2UgYnkgdXNpbmcgYSBzbW9vdGggdHJhbnNpdGlvbi4gQmVzdCB0byB1c2UgZHVyaW5nIGV2ZW5pbmcvbmlnaHQuXG5cblRoaXMgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gQW5kcm9pZCdzIGJlZHRpbWUgbW9kZSB3aGljaCBjb252ZXJ0cyB0aGUgcGhvbmUgc2NyZWVuIHRvIGdyYXlzY2FsZS4gSXQgc2hvdWxkIHNvbWV3aGF0IG1ha2UgeW91ciBkZXZpY2UgbGVzcyBhcHBlYWxpbmcgYW5kIGxpbWl0IHRoZSB1c2FnZSBvZiBpdCBiZWZvcmUgYmVkdGltZS4gT24gbXkgc2lkZSwgYXQgbGVhc3QsIGl0IHN0aWxsIHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygc2VsZiBjb250cm9sIGluIG9yZGVyIHRvIG1ha2UgdGhhdCBoYXBwZW4uXG5cblRoZSBleHRlbnNpb24gaGFzIGEgbmljZSBTZXR0aW5ncyBVSSB3aGVyZSB5b3UgY2FuIGN1c3RvbWl6ZSBpdCB0byB5b3VyIGxpa2luZzpcbi0gU2V0IGFuIGF1dG9tYXRpYyBzY2hlZHVsZSBmb3IgdHVybmluZyBvbi9vZmYgdGhlIEJlZHRpbWUgTW9kZVxuLSBBZGQgYW4gT24gRGVtYW5kIGJ1dHRvbiB0byBUb3AgQmFyIG9yIFN5c3RlbSBNZW51IHRvIG1hbnVhbGx5IHRvZ2dsZSB0aGUgbW9kZVxuLSBDb250cm9sIHRoZSBPbiBEZW1hbmQgYnV0dG9uIHZpc2liaWxpdHksIGFwcGVhcmFuY2UgYW5kIHBvc2l0aW9uIGluIFRvcCBCYXJcbi0gQ2hvb3NlIGFub3RoZXIgY29sb3IgcHJlc2V0IGFuZCBpbnRlbnNpdHksIGlmIHlvdSBwcmVmZXIgYSBkaWZmZXJlbnQgY29sb3Igc2NoZW1lXG4tIENoYW5nZSBjb2xvciBpbnRlbnNpdHkgb24gdGhlIGZseSBieSBzY3JvbGxpbmcgb3ZlciB0aGUgT24gRGVtYW5kIGJ1dHRvbiBpbiBUb3AgQmFyXG5cbk11bHRpIGxhbmd1YWdlIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUsIHBsZWFzZSBjaGVjayB0aGUgR2l0SHViIHBhZ2UgaWYgeW91IHdhbnQgdG8gaGVscCB3aXRoIHRoZSB0cmFuc2xhdGlvbnMuIFNvIGZhciwgdGhlIGV4dGVuc2lvbiBpcyBmdWxseSB0cmFuc2xhdGVkIHRvIFNwYW5pc2gsIER1dGNoLCBHZXJtYW4sIFJvbWFuaWFuIGFuZCBFbmdsaXNoLlxuXG5JZiB5b3Ugd2FudCB0byB1c2UgYSBrZXlib2FyZCBzaG9ydGN1dCBpbiBvcmRlciB0byB0b2dnbGUgdGhlIEJlZHRpbWUgTW9kZSB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZCBmb3IgdGhlIHNob3J0Y3V0OlxuXG5iYXNoIC1jICdzY2hlbWFfaWQ9b3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlOyBzY2hlbWFfZGlyPX4vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbS9zY2hlbWFzLzsgaWYgW1sgJChnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgZ2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSkgPT0gXCJ0cnVlXCIgXV07IHRoZW4gdHVybl9vbj1mYWxzZTsgZWxzZSB0dXJuX29uPXRydWU7IGZpOyBnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgc2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSAkdHVybl9vbjsnXG4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiZWR0aW1lLW1vZGUiLAogICJuYW1lIjogIkJlZHRpbWUgTW9kZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iZWR0aW1lLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pb251dGJvcnRpcy9nbm9tZS1iZWR0aW1lLW1vZGUiLAogICJ1dWlkIjogImdub21lYmVkdGltZUBpb251dGJvcnRpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
 , {"uuid": "spotify-controller@koolskateguy89", "name": "Spotify Controller", "pname": "spotify-controller", "description": "Control Spotify from the topbar!\n\nCredit to Marcus Heine (https://github.com/mheine) for most of the code in this extension.", "link": "https://extensions.gnome.org/extension/4013/spotify-controller/", "shell_version_map": {"38": {"version": "8", "sha256": "08wdv54rkp18b4b6152b55jqc9b0j37pr8rvh0ixl7wsdmkxga4r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgU3BvdGlmeSBmcm9tIHRoZSB0b3BiYXIhXG5cbkNyZWRpdCB0byBNYXJjdXMgSGVpbmUgKGh0dHBzOi8vZ2l0aHViLmNvbS9taGVpbmUpIGZvciBtb3N0IG9mIHRoZSBjb2RlIGluIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiU3BvdGlmeSBDb250cm9sbGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwb3RpZnktY29udHJvbGxlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rb29sc2thdGVndXk4OS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3BvdGlmeS1jb250cm9sbGVyIiwKICAidXVpZCI6ICJzcG90aWZ5LWNvbnRyb2xsZXJAa29vbHNrYXRlZ3V5ODkiLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "08wdv54rkp18b4b6152b55jqc9b0j37pr8rvh0ixl7wsdmkxga4r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgU3BvdGlmeSBmcm9tIHRoZSB0b3BiYXIhXG5cbkNyZWRpdCB0byBNYXJjdXMgSGVpbmUgKGh0dHBzOi8vZ2l0aHViLmNvbS9taGVpbmUpIGZvciBtb3N0IG9mIHRoZSBjb2RlIGluIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiU3BvdGlmeSBDb250cm9sbGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwb3RpZnktY29udHJvbGxlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rb29sc2thdGVndXk4OS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3BvdGlmeS1jb250cm9sbGVyIiwKICAidXVpZCI6ICJzcG90aWZ5LWNvbnRyb2xsZXJAa29vbHNrYXRlZ3V5ODkiLAogICJ2ZXJzaW9uIjogOAp9"}}}
 , {"uuid": "transparentwindows.mdirshad07", "name": "Transparent Window", "pname": "transparent-window", "description": "Change the opacity of windows by compiz-style shortcut Alt+scroll.\nYou can customize hotkey in Preference page if Alt key doesn't work.", "link": "https://extensions.gnome.org/extension/4016/transparent-window/", "shell_version_map": {"38": {"version": "2", "sha256": "12d8ad0s3b2cd8gczsa2l2x5wf3rag9xfr12ljw2jlrzf99vnr70", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgb3BhY2l0eSBvZiB3aW5kb3dzIGJ5IGNvbXBpei1zdHlsZSBzaG9ydGN1dCBBbHQrc2Nyb2xsLlxuWW91IGNhbiBjdXN0b21pemUgaG90a2V5IGluIFByZWZlcmVuY2UgcGFnZSBpZiBBbHQga2V5IGRvZXNuJ3Qgd29yay4iLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFdpbmRvdyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5UcmFuc3BhcmVudFdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4xIiwKICAgICIzLjM2LjEiLAogICAgIjMuMzguMSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BieHFkb3duL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC13aW5kb3ciLAogICJ1dWlkIjogInRyYW5zcGFyZW50d2luZG93cy5tZGlyc2hhZDA3IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "wandering-pixel@justinrdonnelly.github.com", "name": "Wandering Pixel", "pname": "wandering-pixel", "description": "Slide 1 pixel back and forth in the top bar as a workaround for various bugs in GNOME Shell and/or Mutter.", "link": "https://extensions.gnome.org/extension/4028/wandering-pixel/", "shell_version_map": {"38": {"version": "4", "sha256": "03hq51krmqm43vkrm3fpvy5da0y75wfpkjhfnch1cz5y3112d13q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWRlIDEgcGl4ZWwgYmFjayBhbmQgZm9ydGggaW4gdGhlIHRvcCBiYXIgYXMgYSB3b3JrYXJvdW5kIGZvciB2YXJpb3VzIGJ1Z3MgaW4gR05PTUUgU2hlbGwgYW5kL29yIE11dHRlci4iLAogICJuYW1lIjogIldhbmRlcmluZyBQaXhlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vanVzdGlucmRvbm5lbGx5L3dhbmRlcmluZy1waXhlbCIsCiAgInV1aWQiOiAid2FuZGVyaW5nLXBpeGVsQGp1c3RpbnJkb25uZWxseS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "03hq51krmqm43vkrm3fpvy5da0y75wfpkjhfnch1cz5y3112d13q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWRlIDEgcGl4ZWwgYmFjayBhbmQgZm9ydGggaW4gdGhlIHRvcCBiYXIgYXMgYSB3b3JrYXJvdW5kIGZvciB2YXJpb3VzIGJ1Z3MgaW4gR05PTUUgU2hlbGwgYW5kL29yIE11dHRlci4iLAogICJuYW1lIjogIldhbmRlcmluZyBQaXhlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vanVzdGlucmRvbm5lbGx5L3dhbmRlcmluZy1waXhlbCIsCiAgInV1aWQiOiAid2FuZGVyaW5nLXBpeGVsQGp1c3RpbnJkb25uZWxseS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "03hq51krmqm43vkrm3fpvy5da0y75wfpkjhfnch1cz5y3112d13q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWRlIDEgcGl4ZWwgYmFjayBhbmQgZm9ydGggaW4gdGhlIHRvcCBiYXIgYXMgYSB3b3JrYXJvdW5kIGZvciB2YXJpb3VzIGJ1Z3MgaW4gR05PTUUgU2hlbGwgYW5kL29yIE11dHRlci4iLAogICJuYW1lIjogIldhbmRlcmluZyBQaXhlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vanVzdGlucmRvbm5lbGx5L3dhbmRlcmluZy1waXhlbCIsCiAgInV1aWQiOiAid2FuZGVyaW5nLXBpeGVsQGp1c3RpbnJkb25uZWxseS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "screenshot-directory@fawtytoo", "name": "Screenshot Directory", "pname": "screenshot-directory", "description": "The default screenshot directory is ~/Pictures. This extension changes that to use whatever is set if you used the Gnome Screenshot app. This can be found in the dconf setting: /org/gnome/gnome-screenshot/last-save-directory. If that directory doesn't exist, the extension will use the Home directory instead.\n\nNote: If the dconf setting doesn't exist, you need to install the Gnome Screenshot app.\n\nThe idea was taken from the extension: Screenshot Locations.", "link": "https://extensions.gnome.org/extension/4031/screenshot-directory/", "shell_version_map": {"38": {"version": "7", "sha256": "0ll7s1ydlqiz8h8yawflxcd6drxjsxwbqansxnb4jwyd41mr9rxi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBkZWZhdWx0IHNjcmVlbnNob3QgZGlyZWN0b3J5IGlzIH4vUGljdHVyZXMuIFRoaXMgZXh0ZW5zaW9uIGNoYW5nZXMgdGhhdCB0byB1c2Ugd2hhdGV2ZXIgaXMgc2V0IGlmIHlvdSB1c2VkIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC4gVGhpcyBjYW4gYmUgZm91bmQgaW4gdGhlIGRjb25mIHNldHRpbmc6IC9vcmcvZ25vbWUvZ25vbWUtc2NyZWVuc2hvdC9sYXN0LXNhdmUtZGlyZWN0b3J5LiBJZiB0aGF0IGRpcmVjdG9yeSBkb2Vzbid0IGV4aXN0LCB0aGUgZXh0ZW5zaW9uIHdpbGwgdXNlIHRoZSBIb21lIGRpcmVjdG9yeSBpbnN0ZWFkLlxuXG5Ob3RlOiBJZiB0aGUgZGNvbmYgc2V0dGluZyBkb2Vzbid0IGV4aXN0LCB5b3UgbmVlZCB0byBpbnN0YWxsIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC5cblxuVGhlIGlkZWEgd2FzIHRha2VuIGZyb20gdGhlIGV4dGVuc2lvbjogU2NyZWVuc2hvdCBMb2NhdGlvbnMuIiwKICAibmFtZSI6ICJTY3JlZW5zaG90IERpcmVjdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInV1aWQiOiAic2NyZWVuc2hvdC1kaXJlY3RvcnlAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogNwp9Cg=="}, "40": {"version": "7", "sha256": "0ll7s1ydlqiz8h8yawflxcd6drxjsxwbqansxnb4jwyd41mr9rxi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBkZWZhdWx0IHNjcmVlbnNob3QgZGlyZWN0b3J5IGlzIH4vUGljdHVyZXMuIFRoaXMgZXh0ZW5zaW9uIGNoYW5nZXMgdGhhdCB0byB1c2Ugd2hhdGV2ZXIgaXMgc2V0IGlmIHlvdSB1c2VkIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC4gVGhpcyBjYW4gYmUgZm91bmQgaW4gdGhlIGRjb25mIHNldHRpbmc6IC9vcmcvZ25vbWUvZ25vbWUtc2NyZWVuc2hvdC9sYXN0LXNhdmUtZGlyZWN0b3J5LiBJZiB0aGF0IGRpcmVjdG9yeSBkb2Vzbid0IGV4aXN0LCB0aGUgZXh0ZW5zaW9uIHdpbGwgdXNlIHRoZSBIb21lIGRpcmVjdG9yeSBpbnN0ZWFkLlxuXG5Ob3RlOiBJZiB0aGUgZGNvbmYgc2V0dGluZyBkb2Vzbid0IGV4aXN0LCB5b3UgbmVlZCB0byBpbnN0YWxsIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC5cblxuVGhlIGlkZWEgd2FzIHRha2VuIGZyb20gdGhlIGV4dGVuc2lvbjogU2NyZWVuc2hvdCBMb2NhdGlvbnMuIiwKICAibmFtZSI6ICJTY3JlZW5zaG90IERpcmVjdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInV1aWQiOiAic2NyZWVuc2hvdC1kaXJlY3RvcnlAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogNwp9Cg=="}, "41": {"version": "7", "sha256": "0ll7s1ydlqiz8h8yawflxcd6drxjsxwbqansxnb4jwyd41mr9rxi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBkZWZhdWx0IHNjcmVlbnNob3QgZGlyZWN0b3J5IGlzIH4vUGljdHVyZXMuIFRoaXMgZXh0ZW5zaW9uIGNoYW5nZXMgdGhhdCB0byB1c2Ugd2hhdGV2ZXIgaXMgc2V0IGlmIHlvdSB1c2VkIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC4gVGhpcyBjYW4gYmUgZm91bmQgaW4gdGhlIGRjb25mIHNldHRpbmc6IC9vcmcvZ25vbWUvZ25vbWUtc2NyZWVuc2hvdC9sYXN0LXNhdmUtZGlyZWN0b3J5LiBJZiB0aGF0IGRpcmVjdG9yeSBkb2Vzbid0IGV4aXN0LCB0aGUgZXh0ZW5zaW9uIHdpbGwgdXNlIHRoZSBIb21lIGRpcmVjdG9yeSBpbnN0ZWFkLlxuXG5Ob3RlOiBJZiB0aGUgZGNvbmYgc2V0dGluZyBkb2Vzbid0IGV4aXN0LCB5b3UgbmVlZCB0byBpbnN0YWxsIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC5cblxuVGhlIGlkZWEgd2FzIHRha2VuIGZyb20gdGhlIGV4dGVuc2lvbjogU2NyZWVuc2hvdCBMb2NhdGlvbnMuIiwKICAibmFtZSI6ICJTY3JlZW5zaG90IERpcmVjdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInV1aWQiOiAic2NyZWVuc2hvdC1kaXJlY3RvcnlAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogNwp9Cg=="}}}
+, {"uuid": "screenshot-directory@fawtytoo", "name": "Screenshot Directory", "pname": "screenshot-directory", "description": "The default screenshot directory is ~/Pictures. This extension changes that to use whatever is set if you used the Gnome Screenshot app. This can be found in the dconf setting: /org/gnome/gnome-screenshot/last-save-directory. If that directory doesn't exist, the extension will use the Home directory instead.\n\nNote: If the dconf setting doesn't exist, you need to install the Gnome Screenshot app.\n\nThe idea was taken from the extension: Screenshot Locations.", "link": "https://extensions.gnome.org/extension/4031/screenshot-directory/", "shell_version_map": {"38": {"version": "8", "sha256": "1pmj9dx0103rk2zaia53q8rc461dj7ybfih9lnh8v1bcm2sjca3w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBkZWZhdWx0IHNjcmVlbnNob3QgZGlyZWN0b3J5IGlzIH4vUGljdHVyZXMuIFRoaXMgZXh0ZW5zaW9uIGNoYW5nZXMgdGhhdCB0byB1c2Ugd2hhdGV2ZXIgaXMgc2V0IGlmIHlvdSB1c2VkIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC4gVGhpcyBjYW4gYmUgZm91bmQgaW4gdGhlIGRjb25mIHNldHRpbmc6IC9vcmcvZ25vbWUvZ25vbWUtc2NyZWVuc2hvdC9sYXN0LXNhdmUtZGlyZWN0b3J5LiBJZiB0aGF0IGRpcmVjdG9yeSBkb2Vzbid0IGV4aXN0LCB0aGUgZXh0ZW5zaW9uIHdpbGwgdXNlIHRoZSBIb21lIGRpcmVjdG9yeSBpbnN0ZWFkLlxuXG5Ob3RlOiBJZiB0aGUgZGNvbmYgc2V0dGluZyBkb2Vzbid0IGV4aXN0LCB5b3UgbmVlZCB0byBpbnN0YWxsIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC5cblxuVGhlIGlkZWEgd2FzIHRha2VuIGZyb20gdGhlIGV4dGVuc2lvbjogU2NyZWVuc2hvdCBMb2NhdGlvbnMuIiwKICAibmFtZSI6ICJTY3JlZW5zaG90IERpcmVjdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJzY3JlZW5zaG90LWRpcmVjdG9yeUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "1pmj9dx0103rk2zaia53q8rc461dj7ybfih9lnh8v1bcm2sjca3w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBkZWZhdWx0IHNjcmVlbnNob3QgZGlyZWN0b3J5IGlzIH4vUGljdHVyZXMuIFRoaXMgZXh0ZW5zaW9uIGNoYW5nZXMgdGhhdCB0byB1c2Ugd2hhdGV2ZXIgaXMgc2V0IGlmIHlvdSB1c2VkIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC4gVGhpcyBjYW4gYmUgZm91bmQgaW4gdGhlIGRjb25mIHNldHRpbmc6IC9vcmcvZ25vbWUvZ25vbWUtc2NyZWVuc2hvdC9sYXN0LXNhdmUtZGlyZWN0b3J5LiBJZiB0aGF0IGRpcmVjdG9yeSBkb2Vzbid0IGV4aXN0LCB0aGUgZXh0ZW5zaW9uIHdpbGwgdXNlIHRoZSBIb21lIGRpcmVjdG9yeSBpbnN0ZWFkLlxuXG5Ob3RlOiBJZiB0aGUgZGNvbmYgc2V0dGluZyBkb2Vzbid0IGV4aXN0LCB5b3UgbmVlZCB0byBpbnN0YWxsIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC5cblxuVGhlIGlkZWEgd2FzIHRha2VuIGZyb20gdGhlIGV4dGVuc2lvbjogU2NyZWVuc2hvdCBMb2NhdGlvbnMuIiwKICAibmFtZSI6ICJTY3JlZW5zaG90IERpcmVjdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJzY3JlZW5zaG90LWRpcmVjdG9yeUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "1pmj9dx0103rk2zaia53q8rc461dj7ybfih9lnh8v1bcm2sjca3w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBkZWZhdWx0IHNjcmVlbnNob3QgZGlyZWN0b3J5IGlzIH4vUGljdHVyZXMuIFRoaXMgZXh0ZW5zaW9uIGNoYW5nZXMgdGhhdCB0byB1c2Ugd2hhdGV2ZXIgaXMgc2V0IGlmIHlvdSB1c2VkIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC4gVGhpcyBjYW4gYmUgZm91bmQgaW4gdGhlIGRjb25mIHNldHRpbmc6IC9vcmcvZ25vbWUvZ25vbWUtc2NyZWVuc2hvdC9sYXN0LXNhdmUtZGlyZWN0b3J5LiBJZiB0aGF0IGRpcmVjdG9yeSBkb2Vzbid0IGV4aXN0LCB0aGUgZXh0ZW5zaW9uIHdpbGwgdXNlIHRoZSBIb21lIGRpcmVjdG9yeSBpbnN0ZWFkLlxuXG5Ob3RlOiBJZiB0aGUgZGNvbmYgc2V0dGluZyBkb2Vzbid0IGV4aXN0LCB5b3UgbmVlZCB0byBpbnN0YWxsIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC5cblxuVGhlIGlkZWEgd2FzIHRha2VuIGZyb20gdGhlIGV4dGVuc2lvbjogU2NyZWVuc2hvdCBMb2NhdGlvbnMuIiwKICAibmFtZSI6ICJTY3JlZW5zaG90IERpcmVjdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJzY3JlZW5zaG90LWRpcmVjdG9yeUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA4Cn0="}, "42": {"version": "8", "sha256": "1pmj9dx0103rk2zaia53q8rc461dj7ybfih9lnh8v1bcm2sjca3w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBkZWZhdWx0IHNjcmVlbnNob3QgZGlyZWN0b3J5IGlzIH4vUGljdHVyZXMuIFRoaXMgZXh0ZW5zaW9uIGNoYW5nZXMgdGhhdCB0byB1c2Ugd2hhdGV2ZXIgaXMgc2V0IGlmIHlvdSB1c2VkIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC4gVGhpcyBjYW4gYmUgZm91bmQgaW4gdGhlIGRjb25mIHNldHRpbmc6IC9vcmcvZ25vbWUvZ25vbWUtc2NyZWVuc2hvdC9sYXN0LXNhdmUtZGlyZWN0b3J5LiBJZiB0aGF0IGRpcmVjdG9yeSBkb2Vzbid0IGV4aXN0LCB0aGUgZXh0ZW5zaW9uIHdpbGwgdXNlIHRoZSBIb21lIGRpcmVjdG9yeSBpbnN0ZWFkLlxuXG5Ob3RlOiBJZiB0aGUgZGNvbmYgc2V0dGluZyBkb2Vzbid0IGV4aXN0LCB5b3UgbmVlZCB0byBpbnN0YWxsIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC5cblxuVGhlIGlkZWEgd2FzIHRha2VuIGZyb20gdGhlIGV4dGVuc2lvbjogU2NyZWVuc2hvdCBMb2NhdGlvbnMuIiwKICAibmFtZSI6ICJTY3JlZW5zaG90IERpcmVjdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJzY3JlZW5zaG90LWRpcmVjdG9yeUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA4Cn0="}}}
 , {"uuid": "x11gestures@joseexposito.github.io", "name": "X11 Gestures", "pname": "x11-gestures", "description": "Enable GNOME Shell multi-touch gestures on X11.\nRequires Touchégg https://github.com/JoseExposito/touchegg#readme", "link": "https://extensions.gnome.org/extension/4033/x11-gestures/", "shell_version_map": {"38": {"version": "14", "sha256": "17jnh27fj32sbmxilbjzl6lra5rgmsbnk0s4s6f3d0ahrxmn6x1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXgxMWdlc3R1cmVzIiwKICAidXVpZCI6ICJ4MTFnZXN0dXJlc0Bqb3NlZXhwb3NpdG8uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE0Cn0="}, "40": {"version": "14", "sha256": "17jnh27fj32sbmxilbjzl6lra5rgmsbnk0s4s6f3d0ahrxmn6x1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXgxMWdlc3R1cmVzIiwKICAidXVpZCI6ICJ4MTFnZXN0dXJlc0Bqb3NlZXhwb3NpdG8uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE0Cn0="}, "41": {"version": "14", "sha256": "17jnh27fj32sbmxilbjzl6lra5rgmsbnk0s4s6f3d0ahrxmn6x1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXgxMWdlc3R1cmVzIiwKICAidXVpZCI6ICJ4MTFnZXN0dXJlc0Bqb3NlZXhwb3NpdG8uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE0Cn0="}, "42": {"version": "14", "sha256": "17jnh27fj32sbmxilbjzl6lra5rgmsbnk0s4s6f3d0ahrxmn6x1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXgxMWdlc3R1cmVzIiwKICAidXVpZCI6ICJ4MTFnZXN0dXJlc0Bqb3NlZXhwb3NpdG8uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE0Cn0="}}}
 , {"uuid": "get-out-of-the-way@michaelmob.com", "name": "Get Out Of The Way!", "pname": "get-out-of-the-way", "description": "Push 'Always-on-Top' windows out of the way of the focused window.", "link": "https://extensions.gnome.org/extension/4034/get-out-of-the-way/", "shell_version_map": {"38": {"version": "1", "sha256": "1jpjqi2l6wjn9zbgpck04gm9vbspi066chby1j6k9km6dwljfbk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1c2ggJ0Fsd2F5cy1vbi1Ub3AnIHdpbmRvd3Mgb3V0IG9mIHRoZSB3YXkgb2YgdGhlIGZvY3VzZWQgd2luZG93LiIsCiAgIm5hbWUiOiAiR2V0IE91dCBPZiBUaGUgV2F5ISIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnZXQtb3V0LW9mLXRoZS13YXlAbWljaGFlbG1vYi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "VPNStatus@jesusalc@intuivo.com", "name": "VPNStatus Indicator", "pname": "vpnstatus-indicator", "description": "displays the current state of VPNStatus VPN\n\nchecks, if /proc/net/route contains entries for device nmcli?, this is the VPNStatus network device.\n", "link": "https://extensions.gnome.org/extension/4039/vpnstatus-indicator/", "shell_version_map": {"38": {"version": "1", "sha256": "1y4ym6lpwfi03rc6186yjc7mns01q5nrwiqizghls7hiyfg3kqrn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImRpc3BsYXlzIHRoZSBjdXJyZW50IHN0YXRlIG9mIFZQTlN0YXR1cyBWUE5cblxuY2hlY2tzLCBpZiAvcHJvYy9uZXQvcm91dGUgY29udGFpbnMgZW50cmllcyBmb3IgZGV2aWNlIG5tY2xpPywgdGhpcyBpcyB0aGUgVlBOU3RhdHVzIG5ldHdvcmsgZGV2aWNlLlxuIiwKICAibmFtZSI6ICJWUE5TdGF0dXMgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIlZQTlN0YXR1c0BqZXN1c2FsY0BpbnR1aXZvLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "switchtwolayouts@qtmax.dev", "name": "Switch Two Layouts", "pname": "switch-two-layouts", "description": "This extension makes XKB shortcuts to switch keyboard layouts (such as Caps Lock, Ctrl+Shift, etc.) cycle between the two first layouts. The other ones still can be selected via the menu or using GNOME's shortcuts (Super+Space, Shift+Super+Space). It's useful when you have two primary layouts and more additional, which are used more rarely.", "link": "https://extensions.gnome.org/extension/4042/switch-two-layouts/", "shell_version_map": {"38": {"version": "3", "sha256": "0lzr3nx55842w7x60kx20fm8p07gz9gxh1lkqk9sic2784cbydsc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIG1ha2VzIFhLQiBzaG9ydGN1dHMgdG8gc3dpdGNoIGtleWJvYXJkIGxheW91dHMgKHN1Y2ggYXMgQ2FwcyBMb2NrLCBDdHJsK1NoaWZ0LCBldGMuKSBjeWNsZSBiZXR3ZWVuIHRoZSB0d28gZmlyc3QgbGF5b3V0cy4gVGhlIG90aGVyIG9uZXMgc3RpbGwgY2FuIGJlIHNlbGVjdGVkIHZpYSB0aGUgbWVudSBvciB1c2luZyBHTk9NRSdzIHNob3J0Y3V0cyAoU3VwZXIrU3BhY2UsIFNoaWZ0K1N1cGVyK1NwYWNlKS4gSXQncyB1c2VmdWwgd2hlbiB5b3UgaGF2ZSB0d28gcHJpbWFyeSBsYXlvdXRzIGFuZCBtb3JlIGFkZGl0aW9uYWwsIHdoaWNoIGFyZSB1c2VkIG1vcmUgcmFyZWx5LiIsCiAgIm5hbWUiOiAiU3dpdGNoIFR3byBMYXlvdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic3dpdGNodHdvbGF5b3V0c0BxdG1heC5kZXYiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "0lzr3nx55842w7x60kx20fm8p07gz9gxh1lkqk9sic2784cbydsc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIG1ha2VzIFhLQiBzaG9ydGN1dHMgdG8gc3dpdGNoIGtleWJvYXJkIGxheW91dHMgKHN1Y2ggYXMgQ2FwcyBMb2NrLCBDdHJsK1NoaWZ0LCBldGMuKSBjeWNsZSBiZXR3ZWVuIHRoZSB0d28gZmlyc3QgbGF5b3V0cy4gVGhlIG90aGVyIG9uZXMgc3RpbGwgY2FuIGJlIHNlbGVjdGVkIHZpYSB0aGUgbWVudSBvciB1c2luZyBHTk9NRSdzIHNob3J0Y3V0cyAoU3VwZXIrU3BhY2UsIFNoaWZ0K1N1cGVyK1NwYWNlKS4gSXQncyB1c2VmdWwgd2hlbiB5b3UgaGF2ZSB0d28gcHJpbWFyeSBsYXlvdXRzIGFuZCBtb3JlIGFkZGl0aW9uYWwsIHdoaWNoIGFyZSB1c2VkIG1vcmUgcmFyZWx5LiIsCiAgIm5hbWUiOiAiU3dpdGNoIFR3byBMYXlvdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic3dpdGNodHdvbGF5b3V0c0BxdG1heC5kZXYiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "0lzr3nx55842w7x60kx20fm8p07gz9gxh1lkqk9sic2784cbydsc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIG1ha2VzIFhLQiBzaG9ydGN1dHMgdG8gc3dpdGNoIGtleWJvYXJkIGxheW91dHMgKHN1Y2ggYXMgQ2FwcyBMb2NrLCBDdHJsK1NoaWZ0LCBldGMuKSBjeWNsZSBiZXR3ZWVuIHRoZSB0d28gZmlyc3QgbGF5b3V0cy4gVGhlIG90aGVyIG9uZXMgc3RpbGwgY2FuIGJlIHNlbGVjdGVkIHZpYSB0aGUgbWVudSBvciB1c2luZyBHTk9NRSdzIHNob3J0Y3V0cyAoU3VwZXIrU3BhY2UsIFNoaWZ0K1N1cGVyK1NwYWNlKS4gSXQncyB1c2VmdWwgd2hlbiB5b3UgaGF2ZSB0d28gcHJpbWFyeSBsYXlvdXRzIGFuZCBtb3JlIGFkZGl0aW9uYWwsIHdoaWNoIGFyZSB1c2VkIG1vcmUgcmFyZWx5LiIsCiAgIm5hbWUiOiAiU3dpdGNoIFR3byBMYXlvdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic3dpdGNodHdvbGF5b3V0c0BxdG1heC5kZXYiLAogICJ2ZXJzaW9uIjogMwp9"}}}
 , {"uuid": "notification-dismiss@kronosoul.xyz", "name": "Dismiss Notifications on Right Click", "pname": "dismiss-notifications-on-right-click", "description": "Simple extension that removes notification popups when they are right clicked.", "link": "https://extensions.gnome.org/extension/4048/dismiss-notifications-on-right-click/", "shell_version_map": {"38": {"version": "1", "sha256": "19pdz3lg1ybmgvpahfwzzhwk8fyhm1sr3wawddz5z66i22spcgjj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwubm90aWZpY2F0aW9uLWRpc21pc3MiLAogICJkZXNjcmlwdGlvbiI6ICJTaW1wbGUgZXh0ZW5zaW9uIHRoYXQgcmVtb3ZlcyBub3RpZmljYXRpb24gcG9wdXBzIHdoZW4gdGhleSBhcmUgcmlnaHQgY2xpY2tlZC4iLAogICJleHRlbnNpb24taWQiOiAiZ2R0b29scyIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzZXRzIiwKICAibmFtZSI6ICJEaXNtaXNzIE5vdGlmaWNhdGlvbnMgb24gUmlnaHQgQ2xpY2siLAogICJvcmlnaW5hbC1hdXRob3IiOiAiYWRtaW5Aa3Jvbm9zb3VsLnh5eiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4wIiwKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tZGlzbWlzc0Brcm9ub3NvdWwueHl6IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
-, {"uuid": "disable-gestures-2021@verycrazydog.gmail.com", "name": "Disable Gestures 2021", "pname": "disable-gestures-2021", "description": "Disable all GNOME built-in gestures. Useful for kiosks and touch screen apps.", "link": "https://extensions.gnome.org/extension/4049/disable-gestures-2021/", "shell_version_map": {"40": {"version": "2", "sha256": "006xbxws1cvflsis129hl9sca22nig5prwaxfysxi7m13786rp0h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgYWxsIEdOT01FIGJ1aWx0LWluIGdlc3R1cmVzLiBVc2VmdWwgZm9yIGtpb3NrcyBhbmQgdG91Y2ggc2NyZWVuIGFwcHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIEdlc3R1cmVzIDIwMjEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9WZXJ5Q3JhenlEb2cvZ25vbWUtZGlzYWJsZS1nZXN0dXJlcyIsCiAgInV1aWQiOiAiZGlzYWJsZS1nZXN0dXJlcy0yMDIxQHZlcnljcmF6eWRvZy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "disable-gestures-2021@verycrazydog.gmail.com", "name": "Disable Gestures 2021", "pname": "disable-gestures-2021", "description": "Disable all GNOME built-in gestures. Useful for kiosks and touch screen apps.", "link": "https://extensions.gnome.org/extension/4049/disable-gestures-2021/", "shell_version_map": {"40": {"version": "3", "sha256": "19k4vdh99x7m4h3rrnih6pikv5g8wzd41hlg695dg6pr5cnvr063", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgYWxsIEdOT01FIGJ1aWx0LWluIGdlc3R1cmVzLiBVc2VmdWwgZm9yIGtpb3NrcyBhbmQgdG91Y2ggc2NyZWVuIGFwcHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIEdlc3R1cmVzIDIwMjEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ZlcnlDcmF6eURvZy9nbm9tZS1kaXNhYmxlLWdlc3R1cmVzIiwKICAidXVpZCI6ICJkaXNhYmxlLWdlc3R1cmVzLTIwMjFAdmVyeWNyYXp5ZG9nLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "19k4vdh99x7m4h3rrnih6pikv5g8wzd41hlg695dg6pr5cnvr063", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgYWxsIEdOT01FIGJ1aWx0LWluIGdlc3R1cmVzLiBVc2VmdWwgZm9yIGtpb3NrcyBhbmQgdG91Y2ggc2NyZWVuIGFwcHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIEdlc3R1cmVzIDIwMjEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ZlcnlDcmF6eURvZy9nbm9tZS1kaXNhYmxlLWdlc3R1cmVzIiwKICAidXVpZCI6ICJkaXNhYmxlLWdlc3R1cmVzLTIwMjFAdmVyeWNyYXp5ZG9nLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "pi-hole@fnxweb.com", "name": "pi-hole", "pname": "pi-hole", "description": "Status and basic controls of local Pi-Hole", "link": "https://extensions.gnome.org/extension/4051/pi-hole/", "shell_version_map": {"38": {"version": "1", "sha256": "0m19lv8zfhh8vqn0ln4a8g4g4hw9p6h98gb656vb0hblp5gsycfm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBhbmQgYmFzaWMgY29udHJvbHMgb2YgbG9jYWwgUGktSG9sZSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1mbnh3ZWItcGktaG9sZSIsCiAgIm5hbWUiOiAicGktaG9sZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbnh3ZWItcGktaG9sZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZueHdlYi9nbm9tZS1zaGVsbC1waS1ob2xlIiwKICAidXVpZCI6ICJwaS1ob2xlQGZueHdlYi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "miniCal3@mtharpe", "name": "Minimalist Calendar 3", "pname": "minimalist-calendar-3", "description": "Remove event list and clock/calendar app buttons from the calendar window. This is just an updated version of v2 by breiq", "link": "https://extensions.gnome.org/extension/4052/minimalist-calendar-3/", "shell_version_map": {"38": {"version": "3", "sha256": "1vmqx1w9aymwb2a09b07fj18kxpki6blvzbvfamvk84b6x2qcxkn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXRoYXJwZS9nbm9tZS1taW5DYWwzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibWluaUNhbDNAbXRoYXJwZSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1vmqx1w9aymwb2a09b07fj18kxpki6blvzbvfamvk84b6x2qcxkn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXRoYXJwZS9nbm9tZS1taW5DYWwzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibWluaUNhbDNAbXRoYXJwZSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "1vmqx1w9aymwb2a09b07fj18kxpki6blvzbvfamvk84b6x2qcxkn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXRoYXJwZS9nbm9tZS1taW5DYWwzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibWluaUNhbDNAbXRoYXJwZSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "spotify-artwork-fixer@wjt.me.uk", "name": "Spotify Artwork Fixer", "pname": "spotify-artwork-fixer", "description": "Fix Spotify artwork missing in media notification", "link": "https://extensions.gnome.org/extension/4055/spotify-artwork-fixer/", "shell_version_map": {"38": {"version": "6", "sha256": "0jvvz9p576x95l6592icnswcbs2nhm0i01wpb8a45xy6iwb07nfn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBTcG90aWZ5IGFydHdvcmsgbWlzc2luZyBpbiBtZWRpYSBub3RpZmljYXRpb24iLAogICJuYW1lIjogIlNwb3RpZnkgQXJ0d29yayBGaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvZ25vbWUtc2hlbGwtc3BvdGlmeS1hcnR3b3JrLWZpeGVyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFydHdvcmstZml4ZXJAd2p0Lm1lLnVrIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0jvvz9p576x95l6592icnswcbs2nhm0i01wpb8a45xy6iwb07nfn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBTcG90aWZ5IGFydHdvcmsgbWlzc2luZyBpbiBtZWRpYSBub3RpZmljYXRpb24iLAogICJuYW1lIjogIlNwb3RpZnkgQXJ0d29yayBGaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvZ25vbWUtc2hlbGwtc3BvdGlmeS1hcnR3b3JrLWZpeGVyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFydHdvcmstZml4ZXJAd2p0Lm1lLnVrIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "0jvvz9p576x95l6592icnswcbs2nhm0i01wpb8a45xy6iwb07nfn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBTcG90aWZ5IGFydHdvcmsgbWlzc2luZyBpbiBtZWRpYSBub3RpZmljYXRpb24iLAogICJuYW1lIjogIlNwb3RpZnkgQXJ0d29yayBGaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvZ25vbWUtc2hlbGwtc3BvdGlmeS1hcnR3b3JrLWZpeGVyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFydHdvcmstZml4ZXJAd2p0Lm1lLnVrIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
@@ -451,16 +451,16 @@
 , {"uuid": "geary-tray-icon@taylantatli.github.com", "name": "Geary Tray Icon", "pname": "geary-tray-icon", "description": "Show a tray icon for Geary\n\nhttps://github.com/TaylanTatli/geary-tray-icon", "link": "https://extensions.gnome.org/extension/4073/geary-tray-icon/", "shell_version_map": {"38": {"version": "1", "sha256": "11kv47pz5p69j10r23zf8ls3fmanldx7diwsy34fhyxqfxjcd614", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSB0cmF5IGljb24gZm9yIEdlYXJ5XG5cbmh0dHBzOi8vZ2l0aHViLmNvbS9UYXlsYW5UYXRsaS9nZWFyeS10cmF5LWljb24iLAogICJuYW1lIjogIkdlYXJ5IFRyYXkgSWNvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnZWFyeS10cmF5LWljb25AdGF5bGFudGF0bGkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "shell-restarter@koolskateguy89.github.io", "name": "Shell Restarter", "pname": "shell-restarter", "description": "Tired of pressing Alt+F2+R?\nWell you can restart GNOME Shell with just the press of a button! (May or may not work on Wayland)", "link": "https://extensions.gnome.org/extension/4075/shell-restarter/", "shell_version_map": {"38": {"version": "5", "sha256": "19v3sxbsrk0cskq7cikwz6w95m8q2v56hyrkwj595c8m8i0x6i1g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpcmVkIG9mIHByZXNzaW5nIEFsdCtGMitSP1xuV2VsbCB5b3UgY2FuIHJlc3RhcnQgR05PTUUgU2hlbGwgd2l0aCBqdXN0IHRoZSBwcmVzcyBvZiBhIGJ1dHRvbiEgKE1heSBvciBtYXkgbm90IHdvcmsgb24gV2F5bGFuZCkiLAogICJuYW1lIjogIlNoZWxsIFJlc3RhcnRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaGVsbC1yZXN0YXJ0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29vbHNrYXRlZ3V5ODkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNoZWxsLXJlc3RhcnRlciIsCiAgInV1aWQiOiAic2hlbGwtcmVzdGFydGVyQGtvb2xza2F0ZWd1eTg5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "19v3sxbsrk0cskq7cikwz6w95m8q2v56hyrkwj595c8m8i0x6i1g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpcmVkIG9mIHByZXNzaW5nIEFsdCtGMitSP1xuV2VsbCB5b3UgY2FuIHJlc3RhcnQgR05PTUUgU2hlbGwgd2l0aCBqdXN0IHRoZSBwcmVzcyBvZiBhIGJ1dHRvbiEgKE1heSBvciBtYXkgbm90IHdvcmsgb24gV2F5bGFuZCkiLAogICJuYW1lIjogIlNoZWxsIFJlc3RhcnRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaGVsbC1yZXN0YXJ0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29vbHNrYXRlZ3V5ODkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNoZWxsLXJlc3RhcnRlciIsCiAgInV1aWQiOiAic2hlbGwtcmVzdGFydGVyQGtvb2xza2F0ZWd1eTg5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "iqair@wotmshuaisi_github", "name": "Iqair Gnome Extension", "pname": "iqair-gnome-extension", "description": "Gnome extension for tracking air quality in real-time. data provider: https://iqair.com/. to get an API token: https://www.iqair.com/us/dashboard/api", "link": "https://extensions.gnome.org/extension/4082/iqair-gnome-extension/", "shell_version_map": {"38": {"version": "6", "sha256": "150rn9gk6nzba30g38bjpgjyqr2a25cysg6fd6p1is92w8lknls4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93b3Rtc2h1YWlzaS9pcWFpckdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJpcWFpckB3b3Rtc2h1YWlzaV9naXRodWIiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "15", "sha256": "0ip2cp1p47wbzzzarmnjsjfcl27k5ijsyvcjw2sb018cvk2djljv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dvdG1zaHVhaXNpL2lxYWlyR25vbWVFeHRlbnNpb24iLAogICJ1dWlkIjogImlxYWlyQHdvdG1zaHVhaXNpX2dpdGh1YiIsCiAgInZlcnNpb24iOiAxNQp9"}, "41": {"version": "15", "sha256": "0ip2cp1p47wbzzzarmnjsjfcl27k5ijsyvcjw2sb018cvk2djljv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dvdG1zaHVhaXNpL2lxYWlyR25vbWVFeHRlbnNpb24iLAogICJ1dWlkIjogImlxYWlyQHdvdG1zaHVhaXNpX2dpdGh1YiIsCiAgInZlcnNpb24iOiAxNQp9"}}}
-, {"uuid": "bigSur-StatusArea@ordissimo.com", "name": "Big Sur Status Area", "pname": "big-sur-status-area", "description": "Move the Power/Network/Volume/User/Date/Notifications menus to the status area. It is a fork of :https://github.com/Fausto-Korpsvart/Big-Sur-StatusArea", "link": "https://extensions.gnome.org/extension/4085/big-sur-status-area/", "shell_version_map": {"38": {"version": "25", "sha256": "0dg2fg98l0wxr4hgaz2lwb30p93asbm5693svm8kq51v3g3wpdw0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PcmRpc3NpbW8vQmlnLVN1ci1TdGF0dXNBcmVhIiwKICAidXVpZCI6ICJiaWdTdXItU3RhdHVzQXJlYUBvcmRpc3NpbW8uY29tIiwKICAidmVyc2lvbiI6IDI1Cn0="}, "40": {"version": "39", "sha256": "1kv2b1550kd2dmbn05dyxmdi9ybdy8hxbivpx5pcghawslvrzfxk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL09yZGlzc2ltby9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJ1dWlkIjogImJpZ1N1ci1TdGF0dXNBcmVhQG9yZGlzc2ltby5jb20iLAogICJ2ZXJzaW9uIjogMzkKfQ=="}, "41": {"version": "39", "sha256": "1kv2b1550kd2dmbn05dyxmdi9ybdy8hxbivpx5pcghawslvrzfxk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL09yZGlzc2ltby9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJ1dWlkIjogImJpZ1N1ci1TdGF0dXNBcmVhQG9yZGlzc2ltby5jb20iLAogICJ2ZXJzaW9uIjogMzkKfQ=="}, "42": {"version": "40", "sha256": "0c3gv3drpjgh6q4x7zwy9kvfw2f2qjg7jf6zqyaisqvagkvji2sq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3JkaXNzaW1vL0JpZy1TdXItU3RhdHVzQXJlYSIsCiAgInV1aWQiOiAiYmlnU3VyLVN0YXR1c0FyZWFAb3JkaXNzaW1vLmNvbSIsCiAgInZlcnNpb24iOiA0MAp9"}}}
+, {"uuid": "bigSur-StatusArea@ordissimo.com", "name": "Big Sur Status Area", "pname": "big-sur-status-area", "description": "Move the Power/Network/Volume/User/Date/Notifications menus to the status area. It is a fork of :https://github.com/Fausto-Korpsvart/Big-Sur-StatusArea", "link": "https://extensions.gnome.org/extension/4085/big-sur-status-area/", "shell_version_map": {"38": {"version": "25", "sha256": "0dg2fg98l0wxr4hgaz2lwb30p93asbm5693svm8kq51v3g3wpdw0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PcmRpc3NpbW8vQmlnLVN1ci1TdGF0dXNBcmVhIiwKICAidXVpZCI6ICJiaWdTdXItU3RhdHVzQXJlYUBvcmRpc3NpbW8uY29tIiwKICAidmVyc2lvbiI6IDI1Cn0="}, "40": {"version": "44", "sha256": "0z8rpw3dfcfjxnk1p42vzpndb33yww6zmbrzc2dz2df5rfgp2lpv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL09yZGlzc2ltby9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJ1dWlkIjogImJpZ1N1ci1TdGF0dXNBcmVhQG9yZGlzc2ltby5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}, "41": {"version": "44", "sha256": "0z8rpw3dfcfjxnk1p42vzpndb33yww6zmbrzc2dz2df5rfgp2lpv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL09yZGlzc2ltby9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJ1dWlkIjogImJpZ1N1ci1TdGF0dXNBcmVhQG9yZGlzc2ltby5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}, "42": {"version": "45", "sha256": "0h1l7pc00x1blspf42rzzvrbvy8nw4cbnf4mk875pjpxmsfzzjnp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3JkaXNzaW1vL0JpZy1TdXItU3RhdHVzQXJlYSIsCiAgInV1aWQiOiAiYmlnU3VyLVN0YXR1c0FyZWFAb3JkaXNzaW1vLmNvbSIsCiAgInZlcnNpb24iOiA0NQp9"}}}
 , {"uuid": "disable-touch-osk@pardus.org.tr", "name": "disable-touch-osk", "pname": "disable-touch-osk", "description": "Disable on screen keyboard for touchscreens", "link": "https://extensions.gnome.org/extension/4087/disable-touch-osk/", "shell_version_map": {"38": {"version": "3", "sha256": "10ljbjbswzn9y30n2h39iiz673hhmazr2h14lhhws05m71xvbbfy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgb24gc2NyZWVuIGtleWJvYXJkIGZvciB0b3VjaHNjcmVlbnMiLAogICJuYW1lIjogImRpc2FibGUtdG91Y2gtb3NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL3d3dy5wYXJkdXMub3JnLnRyLyIsCiAgInV1aWQiOiAiZGlzYWJsZS10b3VjaC1vc2tAcGFyZHVzLm9yZy50ciIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "mprispanel@kennedn.msn.com", "name": "MPRIS Panel Player", "pname": "mpris-panel-player", "description": "Implements playback controls for MPRIS enabled players in panel.", "link": "https://extensions.gnome.org/extension/4088/mpris-panel-player/", "shell_version_map": {"40": {"version": "4", "sha256": "1kk8y8l1ybknja58xh1smavja97rkrp8l5xx7aqy7xn4fl1ghjis", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcGxlbWVudHMgcGxheWJhY2sgY29udHJvbHMgZm9yIE1QUklTIGVuYWJsZWQgcGxheWVycyBpbiBwYW5lbC4iLAogICJuYW1lIjogIk1QUklTIFBhbmVsIFBsYXllciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VubmVkbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXByaXNwYW5lbCIsCiAgInV1aWQiOiAibXByaXNwYW5lbEBrZW5uZWRuLm1zbi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "1kk8y8l1ybknja58xh1smavja97rkrp8l5xx7aqy7xn4fl1ghjis", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcGxlbWVudHMgcGxheWJhY2sgY29udHJvbHMgZm9yIE1QUklTIGVuYWJsZWQgcGxheWVycyBpbiBwYW5lbC4iLAogICJuYW1lIjogIk1QUklTIFBhbmVsIFBsYXllciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VubmVkbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXByaXNwYW5lbCIsCiAgInV1aWQiOiAibXByaXNwYW5lbEBrZW5uZWRuLm1zbi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "right_click_for_apps@briansayre", "name": "Right Click for Apps", "pname": "right-click-for-apps", "description": "Allows you to right-click the Activities button to reveal the application menu.", "link": "https://extensions.gnome.org/extension/4090/right-click-for-apps/", "shell_version_map": {"38": {"version": "1", "sha256": "1rzx8ksl48badrwyqxwbgvfgf48z642mdwl57aq280ng61nrndaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB5b3UgdG8gcmlnaHQtY2xpY2sgdGhlIEFjdGl2aXRpZXMgYnV0dG9uIHRvIHJldmVhbCB0aGUgYXBwbGljYXRpb24gbWVudS4iLAogICJuYW1lIjogIlJpZ2h0IENsaWNrIGZvciBBcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJpYW5zYXlyZS9SaWdodC1DbGljay1Gb3ItQXBwcyIsCiAgInV1aWQiOiAicmlnaHRfY2xpY2tfZm9yX2FwcHNAYnJpYW5zYXlyZSIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "devbar@ludvigbostrom", "name": "DevBar", "pname": "devbar", "description": "This extension helps you keep track of your development workflow.", "link": "https://extensions.gnome.org/extension/4091/devbar/", "shell_version_map": {"38": {"version": "8", "sha256": "1yj7qpadlcgq1p85rk76gdffyp9mm2h6a7p5c43xqjqnjdpf561f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHlvdSBrZWVwIHRyYWNrIG9mIHlvdXIgZGV2ZWxvcG1lbnQgd29ya2Zsb3cuIiwKICAibmFtZSI6ICJEZXZCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1ZHZpZ2Jvc3Ryb20vRGV2QmFyR25vbWUiLAogICJ1dWlkIjogImRldmJhckBsdWR2aWdib3N0cm9tIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "1yj7qpadlcgq1p85rk76gdffyp9mm2h6a7p5c43xqjqnjdpf561f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHlvdSBrZWVwIHRyYWNrIG9mIHlvdXIgZGV2ZWxvcG1lbnQgd29ya2Zsb3cuIiwKICAibmFtZSI6ICJEZXZCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1ZHZpZ2Jvc3Ryb20vRGV2QmFyR25vbWUiLAogICJ1dWlkIjogImRldmJhckBsdWR2aWdib3N0cm9tIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "41": {"version": "8", "sha256": "1yj7qpadlcgq1p85rk76gdffyp9mm2h6a7p5c43xqjqnjdpf561f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHlvdSBrZWVwIHRyYWNrIG9mIHlvdXIgZGV2ZWxvcG1lbnQgd29ya2Zsb3cuIiwKICAibmFtZSI6ICJEZXZCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1ZHZpZ2Jvc3Ryb20vRGV2QmFyR25vbWUiLAogICJ1dWlkIjogImRldmJhckBsdWR2aWdib3N0cm9tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "notifications_to_file@fawtytoo", "name": "Notifications To File", "pname": "notifications-to-file", "description": "Notifications are appended to a file in $HOME/.notifications/ with one file created per day.\nEntries show the following information:\nTimestamp\nWhether the banner was shown\nThe urgency\nThe title\nBanner text", "link": "https://extensions.gnome.org/extension/4093/notifications-to-file/", "shell_version_map": {"38": {"version": "3", "sha256": "09idm84il85jsciz1fsrj66jj59dyx8mkcms627smb77jz0928py", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGlmaWNhdGlvbnMgYXJlIGFwcGVuZGVkIHRvIGEgZmlsZSBpbiAkSE9NRS8ubm90aWZpY2F0aW9ucy8gd2l0aCBvbmUgZmlsZSBjcmVhdGVkIHBlciBkYXkuXG5FbnRyaWVzIHNob3cgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjpcblRpbWVzdGFtcFxuV2hldGhlciB0aGUgYmFubmVyIHdhcyBzaG93blxuVGhlIHVyZ2VuY3lcblRoZSB0aXRsZVxuQmFubmVyIHRleHQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbnMgVG8gRmlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbnNfdG9fZmlsZUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "09idm84il85jsciz1fsrj66jj59dyx8mkcms627smb77jz0928py", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGlmaWNhdGlvbnMgYXJlIGFwcGVuZGVkIHRvIGEgZmlsZSBpbiAkSE9NRS8ubm90aWZpY2F0aW9ucy8gd2l0aCBvbmUgZmlsZSBjcmVhdGVkIHBlciBkYXkuXG5FbnRyaWVzIHNob3cgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjpcblRpbWVzdGFtcFxuV2hldGhlciB0aGUgYmFubmVyIHdhcyBzaG93blxuVGhlIHVyZ2VuY3lcblRoZSB0aXRsZVxuQmFubmVyIHRleHQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbnMgVG8gRmlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbnNfdG9fZmlsZUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "09idm84il85jsciz1fsrj66jj59dyx8mkcms627smb77jz0928py", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGlmaWNhdGlvbnMgYXJlIGFwcGVuZGVkIHRvIGEgZmlsZSBpbiAkSE9NRS8ubm90aWZpY2F0aW9ucy8gd2l0aCBvbmUgZmlsZSBjcmVhdGVkIHBlciBkYXkuXG5FbnRyaWVzIHNob3cgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjpcblRpbWVzdGFtcFxuV2hldGhlciB0aGUgYmFubmVyIHdhcyBzaG93blxuVGhlIHVyZ2VuY3lcblRoZSB0aXRsZVxuQmFubmVyIHRleHQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbnMgVG8gRmlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbnNfdG9fZmlsZUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAzCn0="}}}
-, {"uuid": "change_desktop_background_when_empty@fawtytoo", "name": "Change Desktop Background When Workspace Empty", "pname": "change-desktop-background-when-workspace-empty", "description": "Changes the desktop background when the workspace is or becomes empty, such as switching to an empty workspace, when all windows on a workspace are closed, or after login.\nNo folder needs to be set explicitly, as it will use the folder that the current background is in.", "link": "https://extensions.gnome.org/extension/4096/change-desktop-background-when-workspace-empty/", "shell_version_map": {"38": {"version": "13", "sha256": "09ynllxj1r4s9dh782srigzpnjzda49wlr2lj71k2g2w807vdv60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIEJhY2tncm91bmQgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJjaGFuZ2VfZGVza3RvcF9iYWNrZ3JvdW5kX3doZW5fZW1wdHlAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "40": {"version": "13", "sha256": "09ynllxj1r4s9dh782srigzpnjzda49wlr2lj71k2g2w807vdv60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIEJhY2tncm91bmQgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJjaGFuZ2VfZGVza3RvcF9iYWNrZ3JvdW5kX3doZW5fZW1wdHlAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "41": {"version": "13", "sha256": "09ynllxj1r4s9dh782srigzpnjzda49wlr2lj71k2g2w807vdv60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIEJhY2tncm91bmQgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJjaGFuZ2VfZGVza3RvcF9iYWNrZ3JvdW5kX3doZW5fZW1wdHlAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}}}
-, {"uuid": "translate-clipboard@lsnow.github.io", "name": "Translate clipboard", "pname": "translate-clipboard", "description": "Translate clipboard text", "link": "https://extensions.gnome.org/extension/4097/translate-clipboard/", "shell_version_map": {"38": {"version": "1", "sha256": "071x3q6y7s8qx4i3lis79g5nc68ld8ln5q8qgc713nvjgfsg05hs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "15", "sha256": "0src5bifp77iiznszp9j0xygfarsm2qa0rwy4axvbag9bs3ym42v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MS4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "15", "sha256": "0src5bifp77iiznszp9j0xygfarsm2qa0rwy4axvbag9bs3ym42v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MS4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
+, {"uuid": "change_desktop_background_when_empty@fawtytoo", "name": "Change Desktop Background When Workspace Empty", "pname": "change-desktop-background-when-workspace-empty", "description": "Changes the desktop background when the workspace is or becomes empty, such as switching to an empty workspace, when all windows on a workspace are closed, or after login.\nNo folder needs to be set explicitly, as it will use the folder that the current background is in.", "link": "https://extensions.gnome.org/extension/4096/change-desktop-background-when-workspace-empty/", "shell_version_map": {"38": {"version": "14", "sha256": "1f01kppgipj2ga70cgzzgl7wjrngfrmia9xi1r5i5m76lybyb2ak", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIEJhY2tncm91bmQgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiY2hhbmdlX2Rlc2t0b3BfYmFja2dyb3VuZF93aGVuX2VtcHR5QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDE0Cn0="}, "40": {"version": "14", "sha256": "1f01kppgipj2ga70cgzzgl7wjrngfrmia9xi1r5i5m76lybyb2ak", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIEJhY2tncm91bmQgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiY2hhbmdlX2Rlc2t0b3BfYmFja2dyb3VuZF93aGVuX2VtcHR5QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDE0Cn0="}, "41": {"version": "14", "sha256": "1f01kppgipj2ga70cgzzgl7wjrngfrmia9xi1r5i5m76lybyb2ak", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIEJhY2tncm91bmQgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiY2hhbmdlX2Rlc2t0b3BfYmFja2dyb3VuZF93aGVuX2VtcHR5QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDE0Cn0="}, "42": {"version": "14", "sha256": "1f01kppgipj2ga70cgzzgl7wjrngfrmia9xi1r5i5m76lybyb2ak", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIEJhY2tncm91bmQgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiY2hhbmdlX2Rlc2t0b3BfYmFja2dyb3VuZF93aGVuX2VtcHR5QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDE0Cn0="}}}
+, {"uuid": "translate-clipboard@lsnow.github.io", "name": "Translate clipboard", "pname": "translate-clipboard", "description": "Translate clipboard text", "link": "https://extensions.gnome.org/extension/4097/translate-clipboard/", "shell_version_map": {"38": {"version": "1", "sha256": "071x3q6y7s8qx4i3lis79g5nc68ld8ln5q8qgc713nvjgfsg05hs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "16", "sha256": "11r7r4azaf94f453ima2sms0ycaygh0l3k30dm5zpbkdp4pbczbh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDEuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "41": {"version": "16", "sha256": "11r7r4azaf94f453ima2sms0ycaygh0l3k30dm5zpbkdp4pbczbh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDEuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "42": {"version": "16", "sha256": "11r7r4azaf94f453ima2sms0ycaygh0l3k30dm5zpbkdp4pbczbh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDEuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
 , {"uuid": "no-overview@fthx", "name": "No overview at start-up", "pname": "no-overview", "description": "No overview at start-up. For GNOME Shell 40+.", "link": "https://extensions.gnome.org/extension/4099/no-overview/", "shell_version_map": {"40": {"version": "11", "sha256": "15abz4w5n4md1b0f7c403hiyifslgw7dw2jlhzpn47r7k7giwpdk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIG92ZXJ2aWV3IGF0IHN0YXJ0LXVwLiBGb3IgR05PTUUgU2hlbGwgNDArLiIsCiAgIm5hbWUiOiAiTm8gb3ZlcnZpZXcgYXQgc3RhcnQtdXAiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImZ0aHgiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9uby1vdmVydmlldyIsCiAgInV1aWQiOiAibm8tb3ZlcnZpZXdAZnRoeCIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "15abz4w5n4md1b0f7c403hiyifslgw7dw2jlhzpn47r7k7giwpdk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIG92ZXJ2aWV3IGF0IHN0YXJ0LXVwLiBGb3IgR05PTUUgU2hlbGwgNDArLiIsCiAgIm5hbWUiOiAiTm8gb3ZlcnZpZXcgYXQgc3RhcnQtdXAiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImZ0aHgiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9uby1vdmVydmlldyIsCiAgInV1aWQiOiAibm8tb3ZlcnZpZXdAZnRoeCIsCiAgInZlcnNpb24iOiAxMQp9"}, "42": {"version": "11", "sha256": "15abz4w5n4md1b0f7c403hiyifslgw7dw2jlhzpn47r7k7giwpdk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIG92ZXJ2aWV3IGF0IHN0YXJ0LXVwLiBGb3IgR05PTUUgU2hlbGwgNDArLiIsCiAgIm5hbWUiOiAiTm8gb3ZlcnZpZXcgYXQgc3RhcnQtdXAiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImZ0aHgiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9uby1vdmVydmlldyIsCiAgInV1aWQiOiAibm8tb3ZlcnZpZXdAZnRoeCIsCiAgInZlcnNpb24iOiAxMQp9"}}}
-, {"uuid": "notification-position@drugo.dev", "name": "Notification Banner Position", "pname": "notification-banner-position", "description": "Changes position of the notification banner from the default to the right side of the screen.", "link": "https://extensions.gnome.org/extension/4105/notification-banner-position/", "shell_version_map": {"38": {"version": "5", "sha256": "0svmx8767hpbmmvm2m90ksqbxqij5f3k5bamz05p73czqk58dizy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJ1bm9kcnVnb3dpY2svbm90aWZpY2F0aW9uLXBvc2l0aW9uLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLXBvc2l0aW9uQGRydWdvLmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "0svmx8767hpbmmvm2m90ksqbxqij5f3k5bamz05p73czqk58dizy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJ1bm9kcnVnb3dpY2svbm90aWZpY2F0aW9uLXBvc2l0aW9uLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLXBvc2l0aW9uQGRydWdvLmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "0svmx8767hpbmmvm2m90ksqbxqij5f3k5bamz05p73czqk58dizy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJ1bm9kcnVnb3dpY2svbm90aWZpY2F0aW9uLXBvc2l0aW9uLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLXBvc2l0aW9uQGRydWdvLmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}}}
+, {"uuid": "notification-position@drugo.dev", "name": "Notification Banner Position", "pname": "notification-banner-position", "description": "Changes position of the notification banner from the default to the right side of the screen.", "link": "https://extensions.gnome.org/extension/4105/notification-banner-position/", "shell_version_map": {"38": {"version": "6", "sha256": "0fknms2di01y348zal27s109z6m12hw9pnra3i2ajkci7nq5x7vl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JydW5vZHJ1Z293aWNrL25vdGlmaWNhdGlvbi1wb3NpdGlvbi1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbi1wb3NpdGlvbkBkcnVnby5kZXYiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "0fknms2di01y348zal27s109z6m12hw9pnra3i2ajkci7nq5x7vl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JydW5vZHJ1Z293aWNrL25vdGlmaWNhdGlvbi1wb3NpdGlvbi1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbi1wb3NpdGlvbkBkcnVnby5kZXYiLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "0fknms2di01y348zal27s109z6m12hw9pnra3i2ajkci7nq5x7vl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JydW5vZHJ1Z293aWNrL25vdGlmaWNhdGlvbi1wb3NpdGlvbi1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbi1wb3NpdGlvbkBkcnVnby5kZXYiLAogICJ2ZXJzaW9uIjogNgp9"}, "42": {"version": "6", "sha256": "0fknms2di01y348zal27s109z6m12hw9pnra3i2ajkci7nq5x7vl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JydW5vZHJ1Z293aWNrL25vdGlmaWNhdGlvbi1wb3NpdGlvbi1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbi1wb3NpdGlvbkBkcnVnby5kZXYiLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "volume_scroller@trflynn89.pm.me", "name": "Volume Scroller", "pname": "volume-scroller", "description": "Scroll up or down in the Top Bar to adjust volume.", "link": "https://extensions.gnome.org/extension/4109/volume-scroller/", "shell_version_map": {"38": {"version": "5", "sha256": "035gkl1g3k3jqmksgmh2aip3v4k8kkbc6gdnndg6lnhz6czn9c12", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RyZmx5bm44OS9nbm9tZS1zaGVsbC12b2x1bWUtc2Nyb2xsZXIiLAogICJ1dWlkIjogInZvbHVtZV9zY3JvbGxlckB0cmZseW5uODkucG0ubWUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "035gkl1g3k3jqmksgmh2aip3v4k8kkbc6gdnndg6lnhz6czn9c12", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RyZmx5bm44OS9nbm9tZS1zaGVsbC12b2x1bWUtc2Nyb2xsZXIiLAogICJ1dWlkIjogInZvbHVtZV9zY3JvbGxlckB0cmZseW5uODkucG0ubWUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "Mock-Universal-Menu@zacharygough", "name": "Mock Universal Menu", "pname": "mock-universal-menu", "description": "Creates a Mock Apple Menu (THIS DOES NOTHING WHEN CLICKED)", "link": "https://extensions.gnome.org/extension/4111/mock-universal-menu/", "shell_version_map": {"40": {"version": "5", "sha256": "0irq4aamfdvnsjcb9cj4grp7z0s2rg5dv349v095ss7n7jxcmdx2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgYSBNb2NrIEFwcGxlIE1lbnUgKFRISVMgRE9FUyBOT1RISU5HIFdIRU4gQ0xJQ0tFRCkiLAogICJuYW1lIjogIk1vY2sgVW5pdmVyc2FsIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1phbnktWmFjaGFyeTEvTW9jay1Vbml2ZXJzYWwtTWVudSIsCiAgInV1aWQiOiAiTW9jay1Vbml2ZXJzYWwtTWVudUB6YWNoYXJ5Z291Z2giLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "0irq4aamfdvnsjcb9cj4grp7z0s2rg5dv349v095ss7n7jxcmdx2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgYSBNb2NrIEFwcGxlIE1lbnUgKFRISVMgRE9FUyBOT1RISU5HIFdIRU4gQ0xJQ0tFRCkiLAogICJuYW1lIjogIk1vY2sgVW5pdmVyc2FsIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1phbnktWmFjaGFyeTEvTW9jay1Vbml2ZXJzYWwtTWVudSIsCiAgInV1aWQiOiAiTW9jay1Vbml2ZXJzYWwtTWVudUB6YWNoYXJ5Z291Z2giLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "customize-ibus@hollowman.ml", "name": "Customize IBus", "pname": "customize-ibus", "description": "Full customization of appearance, behavior, system tray and input source indicator for IBus\n\nSupport Customization of:\n* Candidate Box Orientation\n* Candidate Box Animation\n* Right-click Candidate Box to Switch the Input Mode or Open the Tray Menu\n* Scroll on Candidate Box to Switch among Pages or Candidates\n* Fix Candidate Box to Not Follow the Caret and Set Fixed Position\n* Candidate Box Font\n* Input Mode Remember and Auto-switch by APP\n* Change Candidate Box Opacity\n* Fix IME List Order\n* Drag Candidate Box to Reposition\n* Show or Hide Candidate Box Page Buttons\n* System Tray Menus and Interaction Settings\n* * Show or Hide Tray Icon\n* * Directly Click Tray Icon to Switch Input Mode\n* * Add Additional Menu\n* Input Source Indicator Appearance and Interaction Settings\n* * Enable Indicator\n* * Only Indicate when Switching Input Mode\n* * Only Indicate when Using ASCII Input Mode\n* * Not Indicate when Using Single Mode IME\n* * Right-click Indicator to Hide\n* * Scroll on Indicator to Switch Input Mode\n* * Indicator Animation\n* * Customize Font\n* * Left-click Indicator to Drag to Move Indicator or Switch Input Mode\n* * Change Opacity\n* * Enable Indicator Show Delay and Configure Showing Timeout\n* * Enable Auto-hide Indicator and Configure Auto-hide Timeout\n* Theme (Stylesheet Provided or Extracted from GNOME Shell Themes, Refer to Help Instructions in Extension for More)\n* Candidate Box Background and its Displaying Style\n* Theme and Background Picture Follow GNOME Night Light Mode\n\nUser Guide: https://hollowmansblog.wordpress.com/2021/08/21/customize-ibus-user-guide/\n\n深度定制 IBus 的外观、行为、系统托盘以及输入指示\n\n支持自定义:\n* 候选框方向\n* 候选框动画\n* 右键单击候选框以切换输入源或打开任务栏菜单\n* 候选框上滚动以切换页面或候选词\n* 固定候选框使其不跟随光标以及设定固定位置\n* 候选框字体\n* 输入模式根据应用记忆并自动切换\n* 更改候选框透明度\n* 固定输入法列表顺序\n* 拖拽移动候选框\n* 显示或隐藏候选框调页按钮\n* 系统任务栏托盘显示和交互设置\n* * 显示或隐藏托盘图标\n* * 直接点击托盘图标切换输入源\n* * 添加额外菜单\n* 输入源指示器及其显示和交互设置\n* * 启用指示器\n* * 仅在切换输入法时指示\n* * 仅在英文输入时指示\n* * 使用单模式输入法时不指示\n* * 右击指示器来将其隐藏\n* * 指示器上滚动来切换输入源\n* * 指示器显示动画\n* * 自定义字体\n* * 左击指示器以拖拽移动或者切换输入源\n* * 更改透明度\n* * 启用延时显示以及配置显示时延\n* * 启用自动隐藏以及配置自动隐藏时延\n* 皮肤样式主题(提供的或者从GNOME Shell主题中提取的样式表,参见扩展的帮助部分来获取更多指导)\n* 候选框背景图片及其显示样式\n* 主题和背景图片跟随GNOME夜灯\n\n使用指南:https://blog.csdn.net/qq_18572023/article/details/116331601", "link": "https://extensions.gnome.org/extension/4112/customize-ibus/", "shell_version_map": {"38": {"version": "82", "sha256": "1rn0zskj5s7xp11p8sbgybghngqyf5chs469w51vn8n24k4bgdp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBOb3QgSW5kaWNhdGUgd2hlbiBVc2luZyBTaW5nbGUgTW9kZSBJTUVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgSW5kaWNhdG9yIFNob3cgRGVsYXkgYW5kIENvbmZpZ3VyZSBTaG93aW5nIFRpbWVvdXRcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRmN2ZcdTc1MjhcdTUzNTVcdTZhMjFcdTVmMGZcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTRlMGRcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTVlZjZcdTY1ZjZcdTY2M2VcdTc5M2FcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTY2M2VcdTc5M2FcdTY1ZjZcdTVlZjZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5Ab3BlbnN1c2Uub3JnIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29wZW5TVVNFL0N1c3RvbWl6ZS1JQnVzIiwKICAidXVpZCI6ICJjdXN0b21pemUtaWJ1c0Bob2xsb3dtYW4ubWwiLAogICJ2ZXJzaW9uIjogODIKfQ=="}, "40": {"version": "82", "sha256": "1rn0zskj5s7xp11p8sbgybghngqyf5chs469w51vn8n24k4bgdp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBOb3QgSW5kaWNhdGUgd2hlbiBVc2luZyBTaW5nbGUgTW9kZSBJTUVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgSW5kaWNhdG9yIFNob3cgRGVsYXkgYW5kIENvbmZpZ3VyZSBTaG93aW5nIFRpbWVvdXRcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRmN2ZcdTc1MjhcdTUzNTVcdTZhMjFcdTVmMGZcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTRlMGRcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTVlZjZcdTY1ZjZcdTY2M2VcdTc5M2FcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTY2M2VcdTc5M2FcdTY1ZjZcdTVlZjZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5Ab3BlbnN1c2Uub3JnIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29wZW5TVVNFL0N1c3RvbWl6ZS1JQnVzIiwKICAidXVpZCI6ICJjdXN0b21pemUtaWJ1c0Bob2xsb3dtYW4ubWwiLAogICJ2ZXJzaW9uIjogODIKfQ=="}, "41": {"version": "82", "sha256": "1rn0zskj5s7xp11p8sbgybghngqyf5chs469w51vn8n24k4bgdp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBOb3QgSW5kaWNhdGUgd2hlbiBVc2luZyBTaW5nbGUgTW9kZSBJTUVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgSW5kaWNhdG9yIFNob3cgRGVsYXkgYW5kIENvbmZpZ3VyZSBTaG93aW5nIFRpbWVvdXRcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRmN2ZcdTc1MjhcdTUzNTVcdTZhMjFcdTVmMGZcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTRlMGRcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTVlZjZcdTY1ZjZcdTY2M2VcdTc5M2FcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTY2M2VcdTc5M2FcdTY1ZjZcdTVlZjZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5Ab3BlbnN1c2Uub3JnIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29wZW5TVVNFL0N1c3RvbWl6ZS1JQnVzIiwKICAidXVpZCI6ICJjdXN0b21pemUtaWJ1c0Bob2xsb3dtYW4ubWwiLAogICJ2ZXJzaW9uIjogODIKfQ=="}, "42": {"version": "82", "sha256": "1rn0zskj5s7xp11p8sbgybghngqyf5chs469w51vn8n24k4bgdp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBOb3QgSW5kaWNhdGUgd2hlbiBVc2luZyBTaW5nbGUgTW9kZSBJTUVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgSW5kaWNhdG9yIFNob3cgRGVsYXkgYW5kIENvbmZpZ3VyZSBTaG93aW5nIFRpbWVvdXRcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRmN2ZcdTc1MjhcdTUzNTVcdTZhMjFcdTVmMGZcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTRlMGRcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTVlZjZcdTY1ZjZcdTY2M2VcdTc5M2FcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTY2M2VcdTc5M2FcdTY1ZjZcdTVlZjZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5Ab3BlbnN1c2Uub3JnIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29wZW5TVVNFL0N1c3RvbWl6ZS1JQnVzIiwKICAidXVpZCI6ICJjdXN0b21pemUtaWJ1c0Bob2xsb3dtYW4ubWwiLAogICJ2ZXJzaW9uIjogODIKfQ=="}}}
@@ -468,10 +468,10 @@
 , {"uuid": "remove-panel@sulincix", "name": "RemovePanel", "pname": "removepanel", "description": "remove top panel from gnome-shell", "link": "https://extensions.gnome.org/extension/4118/removepanel/", "shell_version_map": {"38": {"version": "5", "sha256": "022cznjpi2a3ld31cjk1942cyc4r6s6k58ik5qd49xh8wl8y2b3z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInJlbW92ZSB0b3AgcGFuZWwgZnJvbSBnbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiUmVtb3ZlUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJyZW1vdmUtcGFuZWxAc3VsaW5jaXgiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "022cznjpi2a3ld31cjk1942cyc4r6s6k58ik5qd49xh8wl8y2b3z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInJlbW92ZSB0b3AgcGFuZWwgZnJvbSBnbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiUmVtb3ZlUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJyZW1vdmUtcGFuZWxAc3VsaW5jaXgiLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "022cznjpi2a3ld31cjk1942cyc4r6s6k58ik5qd49xh8wl8y2b3z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInJlbW92ZSB0b3AgcGFuZWwgZnJvbSBnbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiUmVtb3ZlUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJyZW1vdmUtcGFuZWxAc3VsaW5jaXgiLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "bottom-triggers-activities@papjul", "name": "Bottom triggers Activities overview", "pname": "bottom-triggers-activities-overview", "description": "DEPRECATION NOTICE: No longer maintained. Please migrate to another extension such as Hot Edge https://extensions.gnome.org/extension/4222/hot-edge/\n\nAllows to toggle Activities overview when the mouse reaches the bottom edge of the screen.\nPLEASE report your bugs to the extension homepage link below. I cannot reply to you if you write a review here.\n\nThis is a fork of Dash to Dock focusing only on doing this, it adds support for Gnome Shell 40 and is mainly aimed at Gnome Shell 40 users to reduce mouse travel.\n\nI may backport fixes from upstream, but I don't intend to add any new feature and may not fix any bug if I'm not affected/cannot reproduce. However, I will accept pull requests that keep the extension in the KISS principle. It could be adding a prefs UI for toggle delay and edge(s) triggered, or supporting multiple monitors.\n\nYou can customize the following parameters from the constructor of extension.js:\n        this._position = St.Side.BOTTOM;\n        this._toggleDelay = 0.25;", "link": "https://extensions.gnome.org/extension/4120/bottom-triggers-activities-overview/", "shell_version_map": {"38": {"version": "2", "sha256": "1q1ahz612w2fzbvky8ydwns2kykbj2vqcr5ddyncg16lhrfzx9vq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRFUFJFQ0FUSU9OIE5PVElDRTogTm8gbG9uZ2VyIG1haW50YWluZWQuIFBsZWFzZSBtaWdyYXRlIHRvIGFub3RoZXIgZXh0ZW5zaW9uIHN1Y2ggYXMgSG90IEVkZ2UgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDIyMi9ob3QtZWRnZS9cblxuQWxsb3dzIHRvIHRvZ2dsZSBBY3Rpdml0aWVzIG92ZXJ2aWV3IHdoZW4gdGhlIG1vdXNlIHJlYWNoZXMgdGhlIGJvdHRvbSBlZGdlIG9mIHRoZSBzY3JlZW4uXG5QTEVBU0UgcmVwb3J0IHlvdXIgYnVncyB0byB0aGUgZXh0ZW5zaW9uIGhvbWVwYWdlIGxpbmsgYmVsb3cuIEkgY2Fubm90IHJlcGx5IHRvIHlvdSBpZiB5b3Ugd3JpdGUgYSByZXZpZXcgaGVyZS5cblxuVGhpcyBpcyBhIGZvcmsgb2YgRGFzaCB0byBEb2NrIGZvY3VzaW5nIG9ubHkgb24gZG9pbmcgdGhpcywgaXQgYWRkcyBzdXBwb3J0IGZvciBHbm9tZSBTaGVsbCA0MCBhbmQgaXMgbWFpbmx5IGFpbWVkIGF0IEdub21lIFNoZWxsIDQwIHVzZXJzIHRvIHJlZHVjZSBtb3VzZSB0cmF2ZWwuXG5cbkkgbWF5IGJhY2twb3J0IGZpeGVzIGZyb20gdXBzdHJlYW0sIGJ1dCBJIGRvbid0IGludGVuZCB0byBhZGQgYW55IG5ldyBmZWF0dXJlIGFuZCBtYXkgbm90IGZpeCBhbnkgYnVnIGlmIEknbSBub3QgYWZmZWN0ZWQvY2Fubm90IHJlcHJvZHVjZS4gSG93ZXZlciwgSSB3aWxsIGFjY2VwdCBwdWxsIHJlcXVlc3RzIHRoYXQga2VlcCB0aGUgZXh0ZW5zaW9uIGluIHRoZSBLSVNTIHByaW5jaXBsZS4gSXQgY291bGQgYmUgYWRkaW5nIGEgcHJlZnMgVUkgZm9yIHRvZ2dsZSBkZWxheSBhbmQgZWRnZShzKSB0cmlnZ2VyZWQsIG9yIHN1cHBvcnRpbmcgbXVsdGlwbGUgbW9uaXRvcnMuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyBmcm9tIHRoZSBjb25zdHJ1Y3RvciBvZiBleHRlbnNpb24uanM6XG4gICAgICAgIHRoaXMuX3Bvc2l0aW9uID0gU3QuU2lkZS5CT1RUT007XG4gICAgICAgIHRoaXMuX3RvZ2dsZURlbGF5ID0gMC4yNTsiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJib3R0b210cmlnZ2Vyc2FjdGl2aXRpZXMiLAogICJuYW1lIjogIkJvdHRvbSB0cmlnZ2VycyBBY3Rpdml0aWVzIG92ZXJ2aWV3IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhcGp1bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXBqdWwvYm90dG9tLXRyaWdnZXJzLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImJvdHRvbS10cmlnZ2Vycy1hY3Rpdml0aWVzQHBhcGp1bCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "1q1ahz612w2fzbvky8ydwns2kykbj2vqcr5ddyncg16lhrfzx9vq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRFUFJFQ0FUSU9OIE5PVElDRTogTm8gbG9uZ2VyIG1haW50YWluZWQuIFBsZWFzZSBtaWdyYXRlIHRvIGFub3RoZXIgZXh0ZW5zaW9uIHN1Y2ggYXMgSG90IEVkZ2UgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDIyMi9ob3QtZWRnZS9cblxuQWxsb3dzIHRvIHRvZ2dsZSBBY3Rpdml0aWVzIG92ZXJ2aWV3IHdoZW4gdGhlIG1vdXNlIHJlYWNoZXMgdGhlIGJvdHRvbSBlZGdlIG9mIHRoZSBzY3JlZW4uXG5QTEVBU0UgcmVwb3J0IHlvdXIgYnVncyB0byB0aGUgZXh0ZW5zaW9uIGhvbWVwYWdlIGxpbmsgYmVsb3cuIEkgY2Fubm90IHJlcGx5IHRvIHlvdSBpZiB5b3Ugd3JpdGUgYSByZXZpZXcgaGVyZS5cblxuVGhpcyBpcyBhIGZvcmsgb2YgRGFzaCB0byBEb2NrIGZvY3VzaW5nIG9ubHkgb24gZG9pbmcgdGhpcywgaXQgYWRkcyBzdXBwb3J0IGZvciBHbm9tZSBTaGVsbCA0MCBhbmQgaXMgbWFpbmx5IGFpbWVkIGF0IEdub21lIFNoZWxsIDQwIHVzZXJzIHRvIHJlZHVjZSBtb3VzZSB0cmF2ZWwuXG5cbkkgbWF5IGJhY2twb3J0IGZpeGVzIGZyb20gdXBzdHJlYW0sIGJ1dCBJIGRvbid0IGludGVuZCB0byBhZGQgYW55IG5ldyBmZWF0dXJlIGFuZCBtYXkgbm90IGZpeCBhbnkgYnVnIGlmIEknbSBub3QgYWZmZWN0ZWQvY2Fubm90IHJlcHJvZHVjZS4gSG93ZXZlciwgSSB3aWxsIGFjY2VwdCBwdWxsIHJlcXVlc3RzIHRoYXQga2VlcCB0aGUgZXh0ZW5zaW9uIGluIHRoZSBLSVNTIHByaW5jaXBsZS4gSXQgY291bGQgYmUgYWRkaW5nIGEgcHJlZnMgVUkgZm9yIHRvZ2dsZSBkZWxheSBhbmQgZWRnZShzKSB0cmlnZ2VyZWQsIG9yIHN1cHBvcnRpbmcgbXVsdGlwbGUgbW9uaXRvcnMuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyBmcm9tIHRoZSBjb25zdHJ1Y3RvciBvZiBleHRlbnNpb24uanM6XG4gICAgICAgIHRoaXMuX3Bvc2l0aW9uID0gU3QuU2lkZS5CT1RUT007XG4gICAgICAgIHRoaXMuX3RvZ2dsZURlbGF5ID0gMC4yNTsiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJib3R0b210cmlnZ2Vyc2FjdGl2aXRpZXMiLAogICJuYW1lIjogIkJvdHRvbSB0cmlnZ2VycyBBY3Rpdml0aWVzIG92ZXJ2aWV3IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhcGp1bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXBqdWwvYm90dG9tLXRyaWdnZXJzLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImJvdHRvbS10cmlnZ2Vycy1hY3Rpdml0aWVzQHBhcGp1bCIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "gnome-shell-Google-search-provider@MrNinso", "name": "Google Search Provider", "pname": "google-search-provider", "description": "Add Google search to Gnome Shell Search \n TODO: \n - Add google suggestions (For now using duckduckGo suggestions)", "link": "https://extensions.gnome.org/extension/4132/google-search-provider/", "shell_version_map": {"38": {"version": "6", "sha256": "1pk1a6k21a1yj78rkwkx0r91lyjybjvfncymhl1hbzzyq0fxqy82", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBHb29nbGUgc2VhcmNoIHRvIEdub21lIFNoZWxsIFNlYXJjaCBcbiBUT0RPOiBcbiAtIEFkZCBnb29nbGUgc3VnZ2VzdGlvbnMgKEZvciBub3cgdXNpbmcgZHVja2R1Y2tHbyBzdWdnZXN0aW9ucykiLAogICJuYW1lIjogIkdvb2dsZSBTZWFyY2ggUHJvdmlkZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29vZ2xlLXNlYXJjaC1wcm92aWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTXJOaW5zby9nbm9tZS1zaGVsbC1nb29nbGUtc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1Hb29nbGUtc2VhcmNoLXByb3ZpZGVyQE1yTmluc28iLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "1pk1a6k21a1yj78rkwkx0r91lyjybjvfncymhl1hbzzyq0fxqy82", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBHb29nbGUgc2VhcmNoIHRvIEdub21lIFNoZWxsIFNlYXJjaCBcbiBUT0RPOiBcbiAtIEFkZCBnb29nbGUgc3VnZ2VzdGlvbnMgKEZvciBub3cgdXNpbmcgZHVja2R1Y2tHbyBzdWdnZXN0aW9ucykiLAogICJuYW1lIjogIkdvb2dsZSBTZWFyY2ggUHJvdmlkZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29vZ2xlLXNlYXJjaC1wcm92aWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTXJOaW5zby9nbm9tZS1zaGVsbC1nb29nbGUtc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1Hb29nbGUtc2VhcmNoLXByb3ZpZGVyQE1yTmluc28iLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "1pk1a6k21a1yj78rkwkx0r91lyjybjvfncymhl1hbzzyq0fxqy82", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBHb29nbGUgc2VhcmNoIHRvIEdub21lIFNoZWxsIFNlYXJjaCBcbiBUT0RPOiBcbiAtIEFkZCBnb29nbGUgc3VnZ2VzdGlvbnMgKEZvciBub3cgdXNpbmcgZHVja2R1Y2tHbyBzdWdnZXN0aW9ucykiLAogICJuYW1lIjogIkdvb2dsZSBTZWFyY2ggUHJvdmlkZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29vZ2xlLXNlYXJjaC1wcm92aWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTXJOaW5zby9nbm9tZS1zaGVsbC1nb29nbGUtc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1Hb29nbGUtc2VhcmNoLXByb3ZpZGVyQE1yTmluc28iLAogICJ2ZXJzaW9uIjogNgp9"}}}
-, {"uuid": "disable-menu-switching@selfmade.pl", "name": "Disable Menu Switching", "pname": "disable-menu-switching", "description": "Disable changing menu on hover another panel button.", "link": "https://extensions.gnome.org/extension/4133/disable-menu-switching/", "shell_version_map": {"40": {"version": "3", "sha256": "12879vn6knafdcphg3wwbpbram5hrw79v68z9c9d5z4f9k781ksq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgY2hhbmdpbmcgbWVudSBvbiBob3ZlciBhbm90aGVyIHBhbmVsIGJ1dHRvbi4iLAogICJuYW1lIjogIkRpc2FibGUgTWVudSBTd2l0Y2hpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvRGlzYWJsZS1NZW51LVN3aXRjaGluZyIsCiAgInV1aWQiOiAiZGlzYWJsZS1tZW51LXN3aXRjaGluZ0BzZWxmbWFkZS5wbCIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "4", "sha256": "0fnzlmr12l8y689p6kclm3yd3b653jl9f1bhhy7652c1b4g515m0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgY2hhbmdpbmcgbWVudSBvbiBob3ZlciBhbm90aGVyIHBhbmVsIGJ1dHRvbi4iLAogICJuYW1lIjogIkRpc2FibGUgTWVudSBTd2l0Y2hpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvRGlzYWJsZS1NZW51LVN3aXRjaGluZyIsCiAgInV1aWQiOiAiZGlzYWJsZS1tZW51LXN3aXRjaGluZ0BzZWxmbWFkZS5wbCIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "disable-menu-switching@selfmade.pl", "name": "Disable Menu Switching", "pname": "disable-menu-switching", "description": "Disable changing menu on hover another panel button.", "link": "https://extensions.gnome.org/extension/4133/disable-menu-switching/", "shell_version_map": {"40": {"version": "3", "sha256": "12879vn6knafdcphg3wwbpbram5hrw79v68z9c9d5z4f9k781ksq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgY2hhbmdpbmcgbWVudSBvbiBob3ZlciBhbm90aGVyIHBhbmVsIGJ1dHRvbi4iLAogICJuYW1lIjogIkRpc2FibGUgTWVudSBTd2l0Y2hpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvRGlzYWJsZS1NZW51LVN3aXRjaGluZyIsCiAgInV1aWQiOiAiZGlzYWJsZS1tZW51LXN3aXRjaGluZ0BzZWxmbWFkZS5wbCIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "4", "sha256": "0fnzlmr12l8y689p6kclm3yd3b653jl9f1bhhy7652c1b4g515m0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgY2hhbmdpbmcgbWVudSBvbiBob3ZlciBhbm90aGVyIHBhbmVsIGJ1dHRvbi4iLAogICJuYW1lIjogIkRpc2FibGUgTWVudSBTd2l0Y2hpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvRGlzYWJsZS1NZW51LVN3aXRjaGluZyIsCiAgInV1aWQiOiAiZGlzYWJsZS1tZW51LXN3aXRjaGluZ0BzZWxmbWFkZS5wbCIsCiAgInZlcnNpb24iOiA0Cn0="}, "42": {"version": "5", "sha256": "03n6bkgz7ld1wm2kdjav6yy2apsdgn9pk4h242aq5sn4kyg9mydx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgY2hhbmdpbmcgbWVudSBvbiBob3ZlciBhbm90aGVyIHBhbmVsIGJ1dHRvbi4iLAogICJuYW1lIjogIkRpc2FibGUgTWVudSBTd2l0Y2hpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvRGlzYWJsZS1NZW51LVN3aXRjaGluZyIsCiAgInV1aWQiOiAiZGlzYWJsZS1tZW51LXN3aXRjaGluZ0BzZWxmbWFkZS5wbCIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "espresso@coadmunkee.github.com", "name": "Espresso", "pname": "espresso", "description": "Control when to disable the usual auto suspend and screensaver functionality and optionally Night Light as well. Options to show as an icon in the top panel, enable when a fullscreen app is running, restore state across reboots, provide notifications, enable when specific app are running, pause Night Light when Espresso is enabled or only when specific apps are running. Espresso also supports docking stations with options to enable when charging or when docked to external monitors.\n\nEspresso is a fork of the Caffeine extension.\n\nPlease leave feedback or report issues through the Extension Homepage", "link": "https://extensions.gnome.org/extension/4135/espresso/", "shell_version_map": {"40": {"version": "6", "sha256": "0crkisqgrqh7lgls9mh59hziajkzwn08mcpcifmd8gr95qvrdmgv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgd2hlbiB0byBkaXNhYmxlIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgYXMgd2VsbC4gT3B0aW9ucyB0byBzaG93IGFzIGFuIGljb24gaW4gdGhlIHRvcCBwYW5lbCwgZW5hYmxlIHdoZW4gYSBmdWxsc2NyZWVuIGFwcCBpcyBydW5uaW5nLCByZXN0b3JlIHN0YXRlIGFjcm9zcyByZWJvb3RzLCBwcm92aWRlIG5vdGlmaWNhdGlvbnMsIGVuYWJsZSB3aGVuIHNwZWNpZmljIGFwcCBhcmUgcnVubmluZywgcGF1c2UgTmlnaHQgTGlnaHQgd2hlbiBFc3ByZXNzbyBpcyBlbmFibGVkIG9yIG9ubHkgd2hlbiBzcGVjaWZpYyBhcHBzIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHN1cHBvcnRzIGRvY2tpbmcgc3RhdGlvbnMgd2l0aCBvcHRpb25zIHRvIGVuYWJsZSB3aGVuIGNoYXJnaW5nIG9yIHdoZW4gZG9ja2VkIHRvIGV4dGVybmFsIG1vbml0b3JzLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NvYWRtdW5rZWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAidXVpZCI6ICJlc3ByZXNzb0Bjb2FkbXVua2VlLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "0crkisqgrqh7lgls9mh59hziajkzwn08mcpcifmd8gr95qvrdmgv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgd2hlbiB0byBkaXNhYmxlIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgYXMgd2VsbC4gT3B0aW9ucyB0byBzaG93IGFzIGFuIGljb24gaW4gdGhlIHRvcCBwYW5lbCwgZW5hYmxlIHdoZW4gYSBmdWxsc2NyZWVuIGFwcCBpcyBydW5uaW5nLCByZXN0b3JlIHN0YXRlIGFjcm9zcyByZWJvb3RzLCBwcm92aWRlIG5vdGlmaWNhdGlvbnMsIGVuYWJsZSB3aGVuIHNwZWNpZmljIGFwcCBhcmUgcnVubmluZywgcGF1c2UgTmlnaHQgTGlnaHQgd2hlbiBFc3ByZXNzbyBpcyBlbmFibGVkIG9yIG9ubHkgd2hlbiBzcGVjaWZpYyBhcHBzIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHN1cHBvcnRzIGRvY2tpbmcgc3RhdGlvbnMgd2l0aCBvcHRpb25zIHRvIGVuYWJsZSB3aGVuIGNoYXJnaW5nIG9yIHdoZW4gZG9ja2VkIHRvIGV4dGVybmFsIG1vbml0b3JzLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NvYWRtdW5rZWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAidXVpZCI6ICJlc3ByZXNzb0Bjb2FkbXVua2VlLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "42": {"version": "6", "sha256": "0crkisqgrqh7lgls9mh59hziajkzwn08mcpcifmd8gr95qvrdmgv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgd2hlbiB0byBkaXNhYmxlIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgYXMgd2VsbC4gT3B0aW9ucyB0byBzaG93IGFzIGFuIGljb24gaW4gdGhlIHRvcCBwYW5lbCwgZW5hYmxlIHdoZW4gYSBmdWxsc2NyZWVuIGFwcCBpcyBydW5uaW5nLCByZXN0b3JlIHN0YXRlIGFjcm9zcyByZWJvb3RzLCBwcm92aWRlIG5vdGlmaWNhdGlvbnMsIGVuYWJsZSB3aGVuIHNwZWNpZmljIGFwcCBhcmUgcnVubmluZywgcGF1c2UgTmlnaHQgTGlnaHQgd2hlbiBFc3ByZXNzbyBpcyBlbmFibGVkIG9yIG9ubHkgd2hlbiBzcGVjaWZpYyBhcHBzIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHN1cHBvcnRzIGRvY2tpbmcgc3RhdGlvbnMgd2l0aCBvcHRpb25zIHRvIGVuYWJsZSB3aGVuIGNoYXJnaW5nIG9yIHdoZW4gZG9ja2VkIHRvIGV4dGVybmFsIG1vbml0b3JzLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NvYWRtdW5rZWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAidXVpZCI6ICJlc3ByZXNzb0Bjb2FkbXVua2VlLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "salat-dz@salat-dz.com", "name": "Salat Dz", "pname": "salat-dz", "description": "Show next salat using Salat Dz API", "link": "https://extensions.gnome.org/extension/4136/salat-dz/", "shell_version_map": {"38": {"version": "1", "sha256": "1kga5w2yp375h6lj3fmzr1agg43phyj5f45d7hjv04c405d32p8s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbmV4dCBzYWxhdCB1c2luZyBTYWxhdCBEeiBBUEkiLAogICJuYW1lIjogIlNhbGF0IER6IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL3NhbGF0LnB5dGhvbmFueXdoZXJlLmNvbSIsCiAgInV1aWQiOiAic2FsYXQtZHpAc2FsYXQtZHouY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
-, {"uuid": "user-at-host@cmm.github.com", "name": "Add user@host to top panel", "pname": "add-userhost-to-panel", "description": "Adds user@host to the top panel, on the left.\n\nNothing fancy, no support -- fork at will, the thing is very simple.", "link": "https://extensions.gnome.org/extension/4141/add-userhost-to-panel/", "shell_version_map": {"38": {"version": "6", "sha256": "0ypil2vcv0fx10gh8q3slvf2mbqf8y53mzrb2irxdbqjkn4mdnax", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIG9uIHRoZSBsZWZ0LlxuXG5Ob3RoaW5nIGZhbmN5LCBubyBzdXBwb3J0IC0tIGZvcmsgYXQgd2lsbCwgdGhlIHRoaW5nIGlzIHZlcnkgc2ltcGxlLiIsCiAgIm5hbWUiOiAiQWRkIHVzZXJAaG9zdCB0byB0b3AgcGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiZGFuZGFtYW45NiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY21tL2dub21lLXVzZXItYXQtaG9zdCIsCiAgInV1aWQiOiAidXNlci1hdC1ob3N0QGNtbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0ypil2vcv0fx10gh8q3slvf2mbqf8y53mzrb2irxdbqjkn4mdnax", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIG9uIHRoZSBsZWZ0LlxuXG5Ob3RoaW5nIGZhbmN5LCBubyBzdXBwb3J0IC0tIGZvcmsgYXQgd2lsbCwgdGhlIHRoaW5nIGlzIHZlcnkgc2ltcGxlLiIsCiAgIm5hbWUiOiAiQWRkIHVzZXJAaG9zdCB0byB0b3AgcGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiZGFuZGFtYW45NiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY21tL2dub21lLXVzZXItYXQtaG9zdCIsCiAgInV1aWQiOiAidXNlci1hdC1ob3N0QGNtbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "0ypil2vcv0fx10gh8q3slvf2mbqf8y53mzrb2irxdbqjkn4mdnax", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIG9uIHRoZSBsZWZ0LlxuXG5Ob3RoaW5nIGZhbmN5LCBubyBzdXBwb3J0IC0tIGZvcmsgYXQgd2lsbCwgdGhlIHRoaW5nIGlzIHZlcnkgc2ltcGxlLiIsCiAgIm5hbWUiOiAiQWRkIHVzZXJAaG9zdCB0byB0b3AgcGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiZGFuZGFtYW45NiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY21tL2dub21lLXVzZXItYXQtaG9zdCIsCiAgInV1aWQiOiAidXNlci1hdC1ob3N0QGNtbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
+, {"uuid": "user-at-host@cmm.github.com", "name": "Add user@host to top panel", "pname": "add-userhost-to-panel", "description": "Adds user@host to the top panel, on the left.\n\nNothing fancy, no support -- fork at will, the thing is very simple.", "link": "https://extensions.gnome.org/extension/4141/add-userhost-to-panel/", "shell_version_map": {"38": {"version": "7", "sha256": "1kpi9zp1lahaps44fy0xxjfjflxhaadczrfnbw0knmwjwby246f4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIG9uIHRoZSBsZWZ0LlxuXG5Ob3RoaW5nIGZhbmN5LCBubyBzdXBwb3J0IC0tIGZvcmsgYXQgd2lsbCwgdGhlIHRoaW5nIGlzIHZlcnkgc2ltcGxlLiIsCiAgIm5hbWUiOiAiQWRkIHVzZXJAaG9zdCB0byB0b3AgcGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiZGFuZGFtYW45NiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NtbS9nbm9tZS11c2VyLWF0LWhvc3QiLAogICJ1dWlkIjogInVzZXItYXQtaG9zdEBjbW0uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "1kpi9zp1lahaps44fy0xxjfjflxhaadczrfnbw0knmwjwby246f4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIG9uIHRoZSBsZWZ0LlxuXG5Ob3RoaW5nIGZhbmN5LCBubyBzdXBwb3J0IC0tIGZvcmsgYXQgd2lsbCwgdGhlIHRoaW5nIGlzIHZlcnkgc2ltcGxlLiIsCiAgIm5hbWUiOiAiQWRkIHVzZXJAaG9zdCB0byB0b3AgcGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiZGFuZGFtYW45NiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NtbS9nbm9tZS11c2VyLWF0LWhvc3QiLAogICJ1dWlkIjogInVzZXItYXQtaG9zdEBjbW0uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "1kpi9zp1lahaps44fy0xxjfjflxhaadczrfnbw0knmwjwby246f4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIG9uIHRoZSBsZWZ0LlxuXG5Ob3RoaW5nIGZhbmN5LCBubyBzdXBwb3J0IC0tIGZvcmsgYXQgd2lsbCwgdGhlIHRoaW5nIGlzIHZlcnkgc2ltcGxlLiIsCiAgIm5hbWUiOiAiQWRkIHVzZXJAaG9zdCB0byB0b3AgcGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiZGFuZGFtYW45NiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NtbS9nbm9tZS11c2VyLWF0LWhvc3QiLAogICJ1dWlkIjogInVzZXItYXQtaG9zdEBjbW0uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "42": {"version": "7", "sha256": "1kpi9zp1lahaps44fy0xxjfjflxhaadczrfnbw0knmwjwby246f4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIG9uIHRoZSBsZWZ0LlxuXG5Ob3RoaW5nIGZhbmN5LCBubyBzdXBwb3J0IC0tIGZvcmsgYXQgd2lsbCwgdGhlIHRoaW5nIGlzIHZlcnkgc2ltcGxlLiIsCiAgIm5hbWUiOiAiQWRkIHVzZXJAaG9zdCB0byB0b3AgcGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiZGFuZGFtYW45NiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NtbS9nbm9tZS11c2VyLWF0LWhvc3QiLAogICJ1dWlkIjogInVzZXItYXQtaG9zdEBjbW0uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
 , {"uuid": "vertical-overview@RensAlthuis.github.com", "name": "Vertical overview", "pname": "vertical-overview", "description": "Bringing back vertically stacked workspaces", "link": "https://extensions.gnome.org/extension/4144/vertical-overview/", "shell_version_map": {"40": {"version": "8", "sha256": "0h865ipn97k9yrj4r0qhfdj2vnwk92720ahim22sw86605ljc77z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5naW5nIGJhY2sgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMiLAogICJuYW1lIjogIlZlcnRpY2FsIG92ZXJ2aWV3IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInJlbnMuYWx0aHVpc0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC1vdmVydmlld0BSZW5zQWx0aHVpcy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "41": {"version": "8", "sha256": "0h865ipn97k9yrj4r0qhfdj2vnwk92720ahim22sw86605ljc77z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5naW5nIGJhY2sgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMiLAogICJuYW1lIjogIlZlcnRpY2FsIG92ZXJ2aWV3IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInJlbnMuYWx0aHVpc0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC1vdmVydmlld0BSZW5zQWx0aHVpcy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "workspace-isolated_app-switcher@lestibournes", "name": "Workspace-Isolated App-Switcher", "pname": "workspace-isolated-app-switcher", "description": "App-Switcher modification that shows only the apps that are running on the current workspace. Fork of App-Switcher Current Workspace First by fawtytoo.", "link": "https://extensions.gnome.org/extension/4145/workspace-isolated-app-switcher/", "shell_version_map": {"38": {"version": "1", "sha256": "0bcf8l1sb73f0ggvavkfjk10s67k7w4f3yr0s9inil6z8pbk7bsr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcC1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzaG93cyBvbmx5IHRoZSBhcHBzIHRoYXQgYXJlIHJ1bm5pbmcgb24gdGhlIGN1cnJlbnQgd29ya3NwYWNlLiBGb3JrIG9mIEFwcC1Td2l0Y2hlciBDdXJyZW50IFdvcmtzcGFjZSBGaXJzdCBieSBmYXd0eXRvby4iLAogICJuYW1lIjogIldvcmtzcGFjZS1Jc29sYXRlZCBBcHAtU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAid29ya3NwYWNlLWlzb2xhdGVkX2FwcC1zd2l0Y2hlckBsZXN0aWJvdXJuZXMiLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "kubectl@infinicode.de", "name": "Kubectl Extension", "pname": "kubectl-extension", "description": "Quick panel access to kubernetes resources utilizing kubectl CLI", "link": "https://extensions.gnome.org/extension/4147/kubectl-extension/", "shell_version_map": {"38": {"version": "4", "sha256": "1lcmkyns6s4nv9ag9h80vs4cxrjxw907b3bxzqvs7ig9s1h41rqm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIHBhbmVsIGFjY2VzcyB0byBrdWJlcm5ldGVzIHJlc291cmNlcyB1dGlsaXppbmcga3ViZWN0bCBDTEkiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIkt1YmVjdGwgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMva3ViZWN0bC1leHRlbnNpb24iLAogICJ1dWlkIjogImt1YmVjdGxAaW5maW5pY29kZS5kZSIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "1lcmkyns6s4nv9ag9h80vs4cxrjxw907b3bxzqvs7ig9s1h41rqm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIHBhbmVsIGFjY2VzcyB0byBrdWJlcm5ldGVzIHJlc291cmNlcyB1dGlsaXppbmcga3ViZWN0bCBDTEkiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIkt1YmVjdGwgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMva3ViZWN0bC1leHRlbnNpb24iLAogICJ1dWlkIjogImt1YmVjdGxAaW5maW5pY29kZS5kZSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
@@ -480,16 +480,16 @@
 , {"uuid": "monitor-window-switcher@thefungusrocket.com", "name": "Monitor window switcher", "pname": "monitor-window-switcher", "description": "Improves the window switcher on dual (or more) monitor setups", "link": "https://extensions.gnome.org/extension/4164/monitor-window-switcher/", "shell_version_map": {"38": {"version": "6", "sha256": "0pazjbi0aikpnvnfxyamqy70xi1xclydyxdkf908c6ybwnc5956z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZWR6ZXBwZWxpbi9tb25pdG9yLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAibW9uaXRvci13aW5kb3ctc3dpdGNoZXJAdGhlZnVuZ3Vzcm9ja2V0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "6", "sha256": "0pazjbi0aikpnvnfxyamqy70xi1xclydyxdkf908c6ybwnc5956z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZWR6ZXBwZWxpbi9tb25pdG9yLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAibW9uaXRvci13aW5kb3ctc3dpdGNoZXJAdGhlZnVuZ3Vzcm9ja2V0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "0pazjbi0aikpnvnfxyamqy70xi1xclydyxdkf908c6ybwnc5956z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZWR6ZXBwZWxpbi9tb25pdG9yLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAibW9uaXRvci13aW5kb3ctc3dpdGNoZXJAdGhlZnVuZ3Vzcm9ja2V0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"uuid": "custom-hot-corners-extended@G-dH.github.com", "name": "Custom Hot Corners - Extended", "pname": "custom-hot-corners-extended", "description": "Give a function to any corner or edge of your monitors and expand your keyboard capabilities.\nMouse pointer pressure, clicks and scrolls over the corners/edges or keyboard shortcuts can trigger any of dozens of built-in actions that helps you navigate and control your desktop environment or your own shell commands.\n\nThis extension is a big collection of actions that allows you navigate and control the Gnome Shell environment and windows and launch applications and scripts not only through the corners and edges of your monitors, but also using the custom keyboard shortcuts.\nSignificant part of available actions are visual adjustments (contrast, brightness, opacity) and color filters (red, green, desaturate, lightness and color inversions) , including correction filters for colorblind users and cb simulation filters for developers.\n\nRestart your Gnome Shell after each update of the extension to load new code, and reload this site to get rid of the error message, before you post a bug report.\nPlease report bugs/issues on GitHub linked below.\n\nkeywords: overview, app grid, command, brightness, contrast, transparent, opacity, color effect, invert lightness, color tint, color blind filter, simulation, desaturate, night lights, dark theme, volume, mute, magnifier, zoom, screen keyboard, reader, large text, force close, kill -9, show desktop, reorder workspace, window thumbnail / preview, looking glass, custom menu, window, workspace, switcher, hide panel", "link": "https://extensions.gnome.org/extension/4167/custom-hot-corners-extended/", "shell_version_map": {"38": {"version": "16", "sha256": "03hxg1lws0d9i8s1xn4m596afs9d9k75s4gfjr93rp8br7y1icfb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIGNvcm5lcnMvZWRnZXMgb3Iga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgb2YgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQgb3IgeW91ciBvd24gc2hlbGwgY29tbWFuZHMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGEgYmlnIGNvbGxlY3Rpb24gb2YgYWN0aW9ucyB0aGF0IGFsbG93cyB5b3UgbmF2aWdhdGUgYW5kIGNvbnRyb2wgdGhlIEdub21lIFNoZWxsIGVudmlyb25tZW50IGFuZCB3aW5kb3dzIGFuZCBsYXVuY2ggYXBwbGljYXRpb25zIGFuZCBzY3JpcHRzIG5vdCBvbmx5IHRocm91Z2ggdGhlIGNvcm5lcnMgYW5kIGVkZ2VzIG9mIHlvdXIgbW9uaXRvcnMsIGJ1dCBhbHNvIHVzaW5nIHRoZSBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzLlxuU2lnbmlmaWNhbnQgcGFydCBvZiBhdmFpbGFibGUgYWN0aW9ucyBhcmUgdmlzdWFsIGFkanVzdG1lbnRzIChjb250cmFzdCwgYnJpZ2h0bmVzcywgb3BhY2l0eSkgYW5kIGNvbG9yIGZpbHRlcnMgKHJlZCwgZ3JlZW4sIGRlc2F0dXJhdGUsIGxpZ2h0bmVzcyBhbmQgY29sb3IgaW52ZXJzaW9ucykgLCBpbmNsdWRpbmcgY29ycmVjdGlvbiBmaWx0ZXJzIGZvciBjb2xvcmJsaW5kIHVzZXJzIGFuZCBjYiBzaW11bGF0aW9uIGZpbHRlcnMgZm9yIGRldmVsb3BlcnMuXG5cblJlc3RhcnQgeW91ciBHbm9tZSBTaGVsbCBhZnRlciBlYWNoIHVwZGF0ZSBvZiB0aGUgZXh0ZW5zaW9uIHRvIGxvYWQgbmV3IGNvZGUsIGFuZCByZWxvYWQgdGhpcyBzaXRlIHRvIGdldCByaWQgb2YgdGhlIGVycm9yIG1lc3NhZ2UsIGJlZm9yZSB5b3UgcG9zdCBhIGJ1ZyByZXBvcnQuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MvaXNzdWVzIG9uIEdpdEh1YiBsaW5rZWQgYmVsb3cuXG5cbmtleXdvcmRzOiBvdmVydmlldywgYXBwIGdyaWQsIGNvbW1hbmQsIGJyaWdodG5lc3MsIGNvbnRyYXN0LCB0cmFuc3BhcmVudCwgb3BhY2l0eSwgY29sb3IgZWZmZWN0LCBpbnZlcnQgbGlnaHRuZXNzLCBjb2xvciB0aW50LCBjb2xvciBibGluZCBmaWx0ZXIsIHNpbXVsYXRpb24sIGRlc2F0dXJhdGUsIG5pZ2h0IGxpZ2h0cywgZGFyayB0aGVtZSwgdm9sdW1lLCBtdXRlLCBtYWduaWZpZXIsIHpvb20sIHNjcmVlbiBrZXlib2FyZCwgcmVhZGVyLCBsYXJnZSB0ZXh0LCBmb3JjZSBjbG9zZSwga2lsbCAtOSwgc2hvdyBkZXNrdG9wLCByZW9yZGVyIHdvcmtzcGFjZSwgd2luZG93IHRodW1ibmFpbCAvIHByZXZpZXcsIGxvb2tpbmcgZ2xhc3MsIGN1c3RvbSBtZW51LCB3aW5kb3csIHdvcmtzcGFjZSwgc3dpdGNoZXIsIGhpZGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJuYW1lIjogIkN1c3RvbSBIb3QgQ29ybmVycyAtIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmN1c3RvbS1ob3QtY29ybmVycy1leHRlbmRlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzL3RyZWUvZ2RoIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "40": {"version": "16", "sha256": "03hxg1lws0d9i8s1xn4m596afs9d9k75s4gfjr93rp8br7y1icfb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIGNvcm5lcnMvZWRnZXMgb3Iga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgb2YgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQgb3IgeW91ciBvd24gc2hlbGwgY29tbWFuZHMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGEgYmlnIGNvbGxlY3Rpb24gb2YgYWN0aW9ucyB0aGF0IGFsbG93cyB5b3UgbmF2aWdhdGUgYW5kIGNvbnRyb2wgdGhlIEdub21lIFNoZWxsIGVudmlyb25tZW50IGFuZCB3aW5kb3dzIGFuZCBsYXVuY2ggYXBwbGljYXRpb25zIGFuZCBzY3JpcHRzIG5vdCBvbmx5IHRocm91Z2ggdGhlIGNvcm5lcnMgYW5kIGVkZ2VzIG9mIHlvdXIgbW9uaXRvcnMsIGJ1dCBhbHNvIHVzaW5nIHRoZSBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzLlxuU2lnbmlmaWNhbnQgcGFydCBvZiBhdmFpbGFibGUgYWN0aW9ucyBhcmUgdmlzdWFsIGFkanVzdG1lbnRzIChjb250cmFzdCwgYnJpZ2h0bmVzcywgb3BhY2l0eSkgYW5kIGNvbG9yIGZpbHRlcnMgKHJlZCwgZ3JlZW4sIGRlc2F0dXJhdGUsIGxpZ2h0bmVzcyBhbmQgY29sb3IgaW52ZXJzaW9ucykgLCBpbmNsdWRpbmcgY29ycmVjdGlvbiBmaWx0ZXJzIGZvciBjb2xvcmJsaW5kIHVzZXJzIGFuZCBjYiBzaW11bGF0aW9uIGZpbHRlcnMgZm9yIGRldmVsb3BlcnMuXG5cblJlc3RhcnQgeW91ciBHbm9tZSBTaGVsbCBhZnRlciBlYWNoIHVwZGF0ZSBvZiB0aGUgZXh0ZW5zaW9uIHRvIGxvYWQgbmV3IGNvZGUsIGFuZCByZWxvYWQgdGhpcyBzaXRlIHRvIGdldCByaWQgb2YgdGhlIGVycm9yIG1lc3NhZ2UsIGJlZm9yZSB5b3UgcG9zdCBhIGJ1ZyByZXBvcnQuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MvaXNzdWVzIG9uIEdpdEh1YiBsaW5rZWQgYmVsb3cuXG5cbmtleXdvcmRzOiBvdmVydmlldywgYXBwIGdyaWQsIGNvbW1hbmQsIGJyaWdodG5lc3MsIGNvbnRyYXN0LCB0cmFuc3BhcmVudCwgb3BhY2l0eSwgY29sb3IgZWZmZWN0LCBpbnZlcnQgbGlnaHRuZXNzLCBjb2xvciB0aW50LCBjb2xvciBibGluZCBmaWx0ZXIsIHNpbXVsYXRpb24sIGRlc2F0dXJhdGUsIG5pZ2h0IGxpZ2h0cywgZGFyayB0aGVtZSwgdm9sdW1lLCBtdXRlLCBtYWduaWZpZXIsIHpvb20sIHNjcmVlbiBrZXlib2FyZCwgcmVhZGVyLCBsYXJnZSB0ZXh0LCBmb3JjZSBjbG9zZSwga2lsbCAtOSwgc2hvdyBkZXNrdG9wLCByZW9yZGVyIHdvcmtzcGFjZSwgd2luZG93IHRodW1ibmFpbCAvIHByZXZpZXcsIGxvb2tpbmcgZ2xhc3MsIGN1c3RvbSBtZW51LCB3aW5kb3csIHdvcmtzcGFjZSwgc3dpdGNoZXIsIGhpZGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJuYW1lIjogIkN1c3RvbSBIb3QgQ29ybmVycyAtIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmN1c3RvbS1ob3QtY29ybmVycy1leHRlbmRlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzL3RyZWUvZ2RoIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "41": {"version": "16", "sha256": "03hxg1lws0d9i8s1xn4m596afs9d9k75s4gfjr93rp8br7y1icfb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIGNvcm5lcnMvZWRnZXMgb3Iga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgb2YgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQgb3IgeW91ciBvd24gc2hlbGwgY29tbWFuZHMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGEgYmlnIGNvbGxlY3Rpb24gb2YgYWN0aW9ucyB0aGF0IGFsbG93cyB5b3UgbmF2aWdhdGUgYW5kIGNvbnRyb2wgdGhlIEdub21lIFNoZWxsIGVudmlyb25tZW50IGFuZCB3aW5kb3dzIGFuZCBsYXVuY2ggYXBwbGljYXRpb25zIGFuZCBzY3JpcHRzIG5vdCBvbmx5IHRocm91Z2ggdGhlIGNvcm5lcnMgYW5kIGVkZ2VzIG9mIHlvdXIgbW9uaXRvcnMsIGJ1dCBhbHNvIHVzaW5nIHRoZSBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzLlxuU2lnbmlmaWNhbnQgcGFydCBvZiBhdmFpbGFibGUgYWN0aW9ucyBhcmUgdmlzdWFsIGFkanVzdG1lbnRzIChjb250cmFzdCwgYnJpZ2h0bmVzcywgb3BhY2l0eSkgYW5kIGNvbG9yIGZpbHRlcnMgKHJlZCwgZ3JlZW4sIGRlc2F0dXJhdGUsIGxpZ2h0bmVzcyBhbmQgY29sb3IgaW52ZXJzaW9ucykgLCBpbmNsdWRpbmcgY29ycmVjdGlvbiBmaWx0ZXJzIGZvciBjb2xvcmJsaW5kIHVzZXJzIGFuZCBjYiBzaW11bGF0aW9uIGZpbHRlcnMgZm9yIGRldmVsb3BlcnMuXG5cblJlc3RhcnQgeW91ciBHbm9tZSBTaGVsbCBhZnRlciBlYWNoIHVwZGF0ZSBvZiB0aGUgZXh0ZW5zaW9uIHRvIGxvYWQgbmV3IGNvZGUsIGFuZCByZWxvYWQgdGhpcyBzaXRlIHRvIGdldCByaWQgb2YgdGhlIGVycm9yIG1lc3NhZ2UsIGJlZm9yZSB5b3UgcG9zdCBhIGJ1ZyByZXBvcnQuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MvaXNzdWVzIG9uIEdpdEh1YiBsaW5rZWQgYmVsb3cuXG5cbmtleXdvcmRzOiBvdmVydmlldywgYXBwIGdyaWQsIGNvbW1hbmQsIGJyaWdodG5lc3MsIGNvbnRyYXN0LCB0cmFuc3BhcmVudCwgb3BhY2l0eSwgY29sb3IgZWZmZWN0LCBpbnZlcnQgbGlnaHRuZXNzLCBjb2xvciB0aW50LCBjb2xvciBibGluZCBmaWx0ZXIsIHNpbXVsYXRpb24sIGRlc2F0dXJhdGUsIG5pZ2h0IGxpZ2h0cywgZGFyayB0aGVtZSwgdm9sdW1lLCBtdXRlLCBtYWduaWZpZXIsIHpvb20sIHNjcmVlbiBrZXlib2FyZCwgcmVhZGVyLCBsYXJnZSB0ZXh0LCBmb3JjZSBjbG9zZSwga2lsbCAtOSwgc2hvdyBkZXNrdG9wLCByZW9yZGVyIHdvcmtzcGFjZSwgd2luZG93IHRodW1ibmFpbCAvIHByZXZpZXcsIGxvb2tpbmcgZ2xhc3MsIGN1c3RvbSBtZW51LCB3aW5kb3csIHdvcmtzcGFjZSwgc3dpdGNoZXIsIGhpZGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJuYW1lIjogIkN1c3RvbSBIb3QgQ29ybmVycyAtIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmN1c3RvbS1ob3QtY29ybmVycy1leHRlbmRlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzL3RyZWUvZ2RoIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "42": {"version": "16", "sha256": "03hxg1lws0d9i8s1xn4m596afs9d9k75s4gfjr93rp8br7y1icfb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIGNvcm5lcnMvZWRnZXMgb3Iga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgb2YgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQgb3IgeW91ciBvd24gc2hlbGwgY29tbWFuZHMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGEgYmlnIGNvbGxlY3Rpb24gb2YgYWN0aW9ucyB0aGF0IGFsbG93cyB5b3UgbmF2aWdhdGUgYW5kIGNvbnRyb2wgdGhlIEdub21lIFNoZWxsIGVudmlyb25tZW50IGFuZCB3aW5kb3dzIGFuZCBsYXVuY2ggYXBwbGljYXRpb25zIGFuZCBzY3JpcHRzIG5vdCBvbmx5IHRocm91Z2ggdGhlIGNvcm5lcnMgYW5kIGVkZ2VzIG9mIHlvdXIgbW9uaXRvcnMsIGJ1dCBhbHNvIHVzaW5nIHRoZSBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzLlxuU2lnbmlmaWNhbnQgcGFydCBvZiBhdmFpbGFibGUgYWN0aW9ucyBhcmUgdmlzdWFsIGFkanVzdG1lbnRzIChjb250cmFzdCwgYnJpZ2h0bmVzcywgb3BhY2l0eSkgYW5kIGNvbG9yIGZpbHRlcnMgKHJlZCwgZ3JlZW4sIGRlc2F0dXJhdGUsIGxpZ2h0bmVzcyBhbmQgY29sb3IgaW52ZXJzaW9ucykgLCBpbmNsdWRpbmcgY29ycmVjdGlvbiBmaWx0ZXJzIGZvciBjb2xvcmJsaW5kIHVzZXJzIGFuZCBjYiBzaW11bGF0aW9uIGZpbHRlcnMgZm9yIGRldmVsb3BlcnMuXG5cblJlc3RhcnQgeW91ciBHbm9tZSBTaGVsbCBhZnRlciBlYWNoIHVwZGF0ZSBvZiB0aGUgZXh0ZW5zaW9uIHRvIGxvYWQgbmV3IGNvZGUsIGFuZCByZWxvYWQgdGhpcyBzaXRlIHRvIGdldCByaWQgb2YgdGhlIGVycm9yIG1lc3NhZ2UsIGJlZm9yZSB5b3UgcG9zdCBhIGJ1ZyByZXBvcnQuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MvaXNzdWVzIG9uIEdpdEh1YiBsaW5rZWQgYmVsb3cuXG5cbmtleXdvcmRzOiBvdmVydmlldywgYXBwIGdyaWQsIGNvbW1hbmQsIGJyaWdodG5lc3MsIGNvbnRyYXN0LCB0cmFuc3BhcmVudCwgb3BhY2l0eSwgY29sb3IgZWZmZWN0LCBpbnZlcnQgbGlnaHRuZXNzLCBjb2xvciB0aW50LCBjb2xvciBibGluZCBmaWx0ZXIsIHNpbXVsYXRpb24sIGRlc2F0dXJhdGUsIG5pZ2h0IGxpZ2h0cywgZGFyayB0aGVtZSwgdm9sdW1lLCBtdXRlLCBtYWduaWZpZXIsIHpvb20sIHNjcmVlbiBrZXlib2FyZCwgcmVhZGVyLCBsYXJnZSB0ZXh0LCBmb3JjZSBjbG9zZSwga2lsbCAtOSwgc2hvdyBkZXNrdG9wLCByZW9yZGVyIHdvcmtzcGFjZSwgd2luZG93IHRodW1ibmFpbCAvIHByZXZpZXcsIGxvb2tpbmcgZ2xhc3MsIGN1c3RvbSBtZW51LCB3aW5kb3csIHdvcmtzcGFjZSwgc3dpdGNoZXIsIGhpZGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJuYW1lIjogIkN1c3RvbSBIb3QgQ29ybmVycyAtIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmN1c3RvbS1ob3QtY29ybmVycy1leHRlbmRlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzL3RyZWUvZ2RoIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
 , {"uuid": "hass-gshell@geoph9-on-github", "name": "Home Assistant Extension", "pname": "home-assistant-extension", "description": "A simple gnome shell extension for Home Assistant. Check the README on github for additional help!\n\nMain points:\n- You need to provide the url of your hass, a long live access token obtained from your profile page (on your hass web instance) and the entity ids of the entities you want to have as togglable.\n- In order to add some local temperature/humidity sensor, you may also provide a temperature and/or a humidity entity id (which should match the corresponding ids of your hass instance).", "link": "https://extensions.gnome.org/extension/4170/home-assistant-extension/", "shell_version_map": {"38": {"version": "3", "sha256": "04p2hvxyyc1zv441sv0l1dcxbdvzqp46mii3zvw0nhq8jg5pz8rr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgSG9tZSBBc3Npc3RhbnQuIENoZWNrIHRoZSBSRUFETUUgb24gZ2l0aHViIGZvciBhZGRpdGlvbmFsIGhlbHAhXG5cbk1haW4gcG9pbnRzOlxuLSBZb3UgbmVlZCB0byBwcm92aWRlIHRoZSB1cmwgb2YgeW91ciBoYXNzLCBhIGxvbmcgbGl2ZSBhY2Nlc3MgdG9rZW4gb2J0YWluZWQgZnJvbSB5b3VyIHByb2ZpbGUgcGFnZSAob24geW91ciBoYXNzIHdlYiBpbnN0YW5jZSkgYW5kIHRoZSBlbnRpdHkgaWRzIG9mIHRoZSBlbnRpdGllcyB5b3Ugd2FudCB0byBoYXZlIGFzIHRvZ2dsYWJsZS5cbi0gSW4gb3JkZXIgdG8gYWRkIHNvbWUgbG9jYWwgdGVtcGVyYXR1cmUvaHVtaWRpdHkgc2Vuc29yLCB5b3UgbWF5IGFsc28gcHJvdmlkZSBhIHRlbXBlcmF0dXJlIGFuZC9vciBhIGh1bWlkaXR5IGVudGl0eSBpZCAod2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGlkcyBvZiB5b3VyIGhhc3MgaW5zdGFuY2UpLiIsCiAgIm5hbWUiOiAiSG9tZSBBc3Npc3RhbnQgRXh0ZW5zaW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhhc3MtZGF0YSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dlb3BoOS9oYXNzLWdzaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImhhc3MtZ3NoZWxsQGdlb3BoOS1vbi1naXRodWIiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "6", "sha256": "1wajx49ci9146wi10z2nvhgc1iw7mfqp8a8z5gr708f90vfy93lc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgSG9tZSBBc3Npc3RhbnQuIENoZWNrIHRoZSBSRUFETUUgb24gZ2l0aHViIGZvciBhZGRpdGlvbmFsIGhlbHAhXG5cbk1haW4gcG9pbnRzOlxuLSBZb3UgbmVlZCB0byBwcm92aWRlIHRoZSB1cmwgb2YgeW91ciBoYXNzLCBhIGxvbmcgbGl2ZSBhY2Nlc3MgdG9rZW4gb2J0YWluZWQgZnJvbSB5b3VyIHByb2ZpbGUgcGFnZSAob24geW91ciBoYXNzIHdlYiBpbnN0YW5jZSkgYW5kIHRoZSBlbnRpdHkgaWRzIG9mIHRoZSBlbnRpdGllcyB5b3Ugd2FudCB0byBoYXZlIGFzIHRvZ2dsYWJsZS5cbi0gSW4gb3JkZXIgdG8gYWRkIHNvbWUgbG9jYWwgdGVtcGVyYXR1cmUvaHVtaWRpdHkgc2Vuc29yLCB5b3UgbWF5IGFsc28gcHJvdmlkZSBhIHRlbXBlcmF0dXJlIGFuZC9vciBhIGh1bWlkaXR5IGVudGl0eSBpZCAod2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGlkcyBvZiB5b3VyIGhhc3MgaW5zdGFuY2UpLiIsCiAgIm5hbWUiOiAiSG9tZSBBc3Npc3RhbnQgRXh0ZW5zaW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhhc3MtZGF0YSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2VvcGg5L2hhc3MtZ3NoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiaGFzcy1nc2hlbGxAZ2VvcGg5LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "1wajx49ci9146wi10z2nvhgc1iw7mfqp8a8z5gr708f90vfy93lc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgSG9tZSBBc3Npc3RhbnQuIENoZWNrIHRoZSBSRUFETUUgb24gZ2l0aHViIGZvciBhZGRpdGlvbmFsIGhlbHAhXG5cbk1haW4gcG9pbnRzOlxuLSBZb3UgbmVlZCB0byBwcm92aWRlIHRoZSB1cmwgb2YgeW91ciBoYXNzLCBhIGxvbmcgbGl2ZSBhY2Nlc3MgdG9rZW4gb2J0YWluZWQgZnJvbSB5b3VyIHByb2ZpbGUgcGFnZSAob24geW91ciBoYXNzIHdlYiBpbnN0YW5jZSkgYW5kIHRoZSBlbnRpdHkgaWRzIG9mIHRoZSBlbnRpdGllcyB5b3Ugd2FudCB0byBoYXZlIGFzIHRvZ2dsYWJsZS5cbi0gSW4gb3JkZXIgdG8gYWRkIHNvbWUgbG9jYWwgdGVtcGVyYXR1cmUvaHVtaWRpdHkgc2Vuc29yLCB5b3UgbWF5IGFsc28gcHJvdmlkZSBhIHRlbXBlcmF0dXJlIGFuZC9vciBhIGh1bWlkaXR5IGVudGl0eSBpZCAod2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGlkcyBvZiB5b3VyIGhhc3MgaW5zdGFuY2UpLiIsCiAgIm5hbWUiOiAiSG9tZSBBc3Npc3RhbnQgRXh0ZW5zaW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhhc3MtZGF0YSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2VvcGg5L2hhc3MtZ3NoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiaGFzcy1nc2hlbGxAZ2VvcGg5LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA2Cn0="}}}
-, {"uuid": "clear-top-bar@superterran.net", "name": "Clear Top Bar", "pname": "clear-top-bar", "description": "Fully transparent topbar, pairs with the zhanghai transparent top bar extension to make bar opaque when window is maximized", "link": "https://extensions.gnome.org/extension/4173/clear-top-bar/", "shell_version_map": {"40": {"version": "5", "sha256": "12msvdg82rj34v338vsxqimy1p35isvl4db8k1sjq23ln1b6jak2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGx5IHRyYW5zcGFyZW50IHRvcGJhciwgcGFpcnMgd2l0aCB0aGUgemhhbmdoYWkgdHJhbnNwYXJlbnQgdG9wIGJhciBleHRlbnNpb24gdG8gbWFrZSBiYXIgb3BhcXVlIHdoZW4gd2luZG93IGlzIG1heGltaXplZCIsCiAgIm5hbWUiOiAiQ2xlYXIgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3VwZXJ0ZXJyYW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsZWFyLXRvcC1iYXIiLAogICJ1dWlkIjogImNsZWFyLXRvcC1iYXJAc3VwZXJ0ZXJyYW4ubmV0IiwKICAidmVyc2lvbiI6IDUKfQ=="}, "41": {"version": "5", "sha256": "12msvdg82rj34v338vsxqimy1p35isvl4db8k1sjq23ln1b6jak2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGx5IHRyYW5zcGFyZW50IHRvcGJhciwgcGFpcnMgd2l0aCB0aGUgemhhbmdoYWkgdHJhbnNwYXJlbnQgdG9wIGJhciBleHRlbnNpb24gdG8gbWFrZSBiYXIgb3BhcXVlIHdoZW4gd2luZG93IGlzIG1heGltaXplZCIsCiAgIm5hbWUiOiAiQ2xlYXIgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3VwZXJ0ZXJyYW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsZWFyLXRvcC1iYXIiLAogICJ1dWlkIjogImNsZWFyLXRvcC1iYXJAc3VwZXJ0ZXJyYW4ubmV0IiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
-, {"uuid": "systemd-manager@hardpixel.eu", "name": "Systemd Manager", "pname": "systemd-manager", "description": "Toggle systemd services on/off from a popup menu in the top gnome panel. Can be used to start services like apache2, mysql, postgres. It uses `pkexec' to run `sytemctl'. If you want to start services without entering a password you have to polkit policy file. An example policy file can be found in the github repository.", "link": "https://extensions.gnome.org/extension/4174/systemd-manager/", "shell_version_map": {"38": {"version": "5", "sha256": "1df0xz4m2ysqk3bk7kqjjh04qwsffwc04jgihmid4whd3n2kglk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBzeXN0ZW1kIHNlcnZpY2VzIG9uL29mZiBmcm9tIGEgcG9wdXAgbWVudSBpbiB0aGUgdG9wIGdub21lIHBhbmVsLiBDYW4gYmUgdXNlZCB0byBzdGFydCBzZXJ2aWNlcyBsaWtlIGFwYWNoZTIsIG15c3FsLCBwb3N0Z3Jlcy4gSXQgdXNlcyBgcGtleGVjJyB0byBydW4gYHN5dGVtY3RsJy4gSWYgeW91IHdhbnQgdG8gc3RhcnQgc2VydmljZXMgd2l0aG91dCBlbnRlcmluZyBhIHBhc3N3b3JkIHlvdSBoYXZlIHRvIHBvbGtpdCBwb2xpY3kgZmlsZS4gQW4gZXhhbXBsZSBwb2xpY3kgZmlsZSBjYW4gYmUgZm91bmQgaW4gdGhlIGdpdGh1YiByZXBvc2l0b3J5LiIsCiAgImdldHRleHQtZG9tYWluIjogInN5c3RlbWQtbWFuYWdlciIsCiAgIm5hbWUiOiAiU3lzdGVtZCBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbWQtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3N5c3RlbWQtbWFuYWdlciIsCiAgInV1aWQiOiAic3lzdGVtZC1tYW5hZ2VyQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "1df0xz4m2ysqk3bk7kqjjh04qwsffwc04jgihmid4whd3n2kglk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBzeXN0ZW1kIHNlcnZpY2VzIG9uL29mZiBmcm9tIGEgcG9wdXAgbWVudSBpbiB0aGUgdG9wIGdub21lIHBhbmVsLiBDYW4gYmUgdXNlZCB0byBzdGFydCBzZXJ2aWNlcyBsaWtlIGFwYWNoZTIsIG15c3FsLCBwb3N0Z3Jlcy4gSXQgdXNlcyBgcGtleGVjJyB0byBydW4gYHN5dGVtY3RsJy4gSWYgeW91IHdhbnQgdG8gc3RhcnQgc2VydmljZXMgd2l0aG91dCBlbnRlcmluZyBhIHBhc3N3b3JkIHlvdSBoYXZlIHRvIHBvbGtpdCBwb2xpY3kgZmlsZS4gQW4gZXhhbXBsZSBwb2xpY3kgZmlsZSBjYW4gYmUgZm91bmQgaW4gdGhlIGdpdGh1YiByZXBvc2l0b3J5LiIsCiAgImdldHRleHQtZG9tYWluIjogInN5c3RlbWQtbWFuYWdlciIsCiAgIm5hbWUiOiAiU3lzdGVtZCBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbWQtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3N5c3RlbWQtbWFuYWdlciIsCiAgInV1aWQiOiAic3lzdGVtZC1tYW5hZ2VyQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "1df0xz4m2ysqk3bk7kqjjh04qwsffwc04jgihmid4whd3n2kglk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBzeXN0ZW1kIHNlcnZpY2VzIG9uL29mZiBmcm9tIGEgcG9wdXAgbWVudSBpbiB0aGUgdG9wIGdub21lIHBhbmVsLiBDYW4gYmUgdXNlZCB0byBzdGFydCBzZXJ2aWNlcyBsaWtlIGFwYWNoZTIsIG15c3FsLCBwb3N0Z3Jlcy4gSXQgdXNlcyBgcGtleGVjJyB0byBydW4gYHN5dGVtY3RsJy4gSWYgeW91IHdhbnQgdG8gc3RhcnQgc2VydmljZXMgd2l0aG91dCBlbnRlcmluZyBhIHBhc3N3b3JkIHlvdSBoYXZlIHRvIHBvbGtpdCBwb2xpY3kgZmlsZS4gQW4gZXhhbXBsZSBwb2xpY3kgZmlsZSBjYW4gYmUgZm91bmQgaW4gdGhlIGdpdGh1YiByZXBvc2l0b3J5LiIsCiAgImdldHRleHQtZG9tYWluIjogInN5c3RlbWQtbWFuYWdlciIsCiAgIm5hbWUiOiAiU3lzdGVtZCBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbWQtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3N5c3RlbWQtbWFuYWdlciIsCiAgInV1aWQiOiAic3lzdGVtZC1tYW5hZ2VyQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
-, {"uuid": "auto-activities@acedron.github.io", "name": "Auto Activities", "pname": "auto-activities", "description": "Show activities overview when there are no windows, or hide it when there are new windows.", "link": "https://extensions.gnome.org/extension/4179/auto-activities/", "shell_version_map": {"40": {"version": "13", "sha256": "17w8rwn9y8li20gq3xnxialw17ay5mbpwz80hsrx3mprn1jlzgsg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYWN0aXZpdGllcyBvdmVydmlldyB3aGVuIHRoZXJlIGFyZSBubyB3aW5kb3dzLCBvciBoaWRlIGl0IHdoZW4gdGhlcmUgYXJlIG5ldyB3aW5kb3dzLiIsCiAgImdldHRleHQtZG9tYWluIjogImF1dG8tYWN0aXZpdGllcyIsCiAgIm5hbWUiOiAiQXV0byBBY3Rpdml0aWVzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFjZWRyb25zQHlhaG9vLmNvLmpwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hY2Vkcm9uL2F1dG8tYWN0aXZpdGllcyIsCiAgInV1aWQiOiAiYXV0by1hY3Rpdml0aWVzQGFjZWRyb24uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEzCn0="}, "41": {"version": "13", "sha256": "17w8rwn9y8li20gq3xnxialw17ay5mbpwz80hsrx3mprn1jlzgsg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYWN0aXZpdGllcyBvdmVydmlldyB3aGVuIHRoZXJlIGFyZSBubyB3aW5kb3dzLCBvciBoaWRlIGl0IHdoZW4gdGhlcmUgYXJlIG5ldyB3aW5kb3dzLiIsCiAgImdldHRleHQtZG9tYWluIjogImF1dG8tYWN0aXZpdGllcyIsCiAgIm5hbWUiOiAiQXV0byBBY3Rpdml0aWVzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFjZWRyb25zQHlhaG9vLmNvLmpwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hY2Vkcm9uL2F1dG8tYWN0aXZpdGllcyIsCiAgInV1aWQiOiAiYXV0by1hY3Rpdml0aWVzQGFjZWRyb24uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
+, {"uuid": "clear-top-bar@superterran.net", "name": "Clear Top Bar", "pname": "clear-top-bar", "description": "Fully transparent topbar, pairs with the zhanghai transparent top bar extension to make bar opaque when window is maximized", "link": "https://extensions.gnome.org/extension/4173/clear-top-bar/", "shell_version_map": {"40": {"version": "6", "sha256": "1xfq9i816p0djfidimgci5xk1mjfrka0xrvxrs44lsqq109xf8pc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGx5IHRyYW5zcGFyZW50IHRvcGJhciwgcGFpcnMgd2l0aCB0aGUgemhhbmdoYWkgdHJhbnNwYXJlbnQgdG9wIGJhciBleHRlbnNpb24gdG8gbWFrZSBiYXIgb3BhcXVlIHdoZW4gd2luZG93IGlzIG1heGltaXplZCIsCiAgIm5hbWUiOiAiQ2xlYXIgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1cGVydGVycmFuL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jbGVhci10b3AtYmFyIiwKICAidXVpZCI6ICJjbGVhci10b3AtYmFyQHN1cGVydGVycmFuLm5ldCIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "1xfq9i816p0djfidimgci5xk1mjfrka0xrvxrs44lsqq109xf8pc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGx5IHRyYW5zcGFyZW50IHRvcGJhciwgcGFpcnMgd2l0aCB0aGUgemhhbmdoYWkgdHJhbnNwYXJlbnQgdG9wIGJhciBleHRlbnNpb24gdG8gbWFrZSBiYXIgb3BhcXVlIHdoZW4gd2luZG93IGlzIG1heGltaXplZCIsCiAgIm5hbWUiOiAiQ2xlYXIgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1cGVydGVycmFuL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jbGVhci10b3AtYmFyIiwKICAidXVpZCI6ICJjbGVhci10b3AtYmFyQHN1cGVydGVycmFuLm5ldCIsCiAgInZlcnNpb24iOiA2Cn0="}, "42": {"version": "6", "sha256": "1xfq9i816p0djfidimgci5xk1mjfrka0xrvxrs44lsqq109xf8pc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGx5IHRyYW5zcGFyZW50IHRvcGJhciwgcGFpcnMgd2l0aCB0aGUgemhhbmdoYWkgdHJhbnNwYXJlbnQgdG9wIGJhciBleHRlbnNpb24gdG8gbWFrZSBiYXIgb3BhcXVlIHdoZW4gd2luZG93IGlzIG1heGltaXplZCIsCiAgIm5hbWUiOiAiQ2xlYXIgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1cGVydGVycmFuL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jbGVhci10b3AtYmFyIiwKICAidXVpZCI6ICJjbGVhci10b3AtYmFyQHN1cGVydGVycmFuLm5ldCIsCiAgInZlcnNpb24iOiA2Cn0="}}}
+, {"uuid": "systemd-manager@hardpixel.eu", "name": "Systemd Manager", "pname": "systemd-manager", "description": "Toggle systemd services on/off from a popup menu in the top gnome panel. Can be used to start services like apache2, mysql, postgres. It uses `pkexec' to run `sytemctl'. If you want to start services without entering a password you have to polkit policy file. An example policy file can be found in the github repository.", "link": "https://extensions.gnome.org/extension/4174/systemd-manager/", "shell_version_map": {"38": {"version": "7", "sha256": "11c26d8iwii76i0zwvrdsjypqrq1qi6xsjlx31128pnxsacbj4bs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBzeXN0ZW1kIHNlcnZpY2VzIG9uL29mZiBmcm9tIGEgcG9wdXAgbWVudSBpbiB0aGUgdG9wIGdub21lIHBhbmVsLiBDYW4gYmUgdXNlZCB0byBzdGFydCBzZXJ2aWNlcyBsaWtlIGFwYWNoZTIsIG15c3FsLCBwb3N0Z3Jlcy4gSXQgdXNlcyBgcGtleGVjJyB0byBydW4gYHN5dGVtY3RsJy4gSWYgeW91IHdhbnQgdG8gc3RhcnQgc2VydmljZXMgd2l0aG91dCBlbnRlcmluZyBhIHBhc3N3b3JkIHlvdSBoYXZlIHRvIHBvbGtpdCBwb2xpY3kgZmlsZS4gQW4gZXhhbXBsZSBwb2xpY3kgZmlsZSBjYW4gYmUgZm91bmQgaW4gdGhlIGdpdGh1YiByZXBvc2l0b3J5LiIsCiAgImdldHRleHQtZG9tYWluIjogInN5c3RlbWQtbWFuYWdlciIsCiAgIm5hbWUiOiAiU3lzdGVtZCBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbWQtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9zeXN0ZW1kLW1hbmFnZXIiLAogICJ1dWlkIjogInN5c3RlbWQtbWFuYWdlckBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "11c26d8iwii76i0zwvrdsjypqrq1qi6xsjlx31128pnxsacbj4bs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBzeXN0ZW1kIHNlcnZpY2VzIG9uL29mZiBmcm9tIGEgcG9wdXAgbWVudSBpbiB0aGUgdG9wIGdub21lIHBhbmVsLiBDYW4gYmUgdXNlZCB0byBzdGFydCBzZXJ2aWNlcyBsaWtlIGFwYWNoZTIsIG15c3FsLCBwb3N0Z3Jlcy4gSXQgdXNlcyBgcGtleGVjJyB0byBydW4gYHN5dGVtY3RsJy4gSWYgeW91IHdhbnQgdG8gc3RhcnQgc2VydmljZXMgd2l0aG91dCBlbnRlcmluZyBhIHBhc3N3b3JkIHlvdSBoYXZlIHRvIHBvbGtpdCBwb2xpY3kgZmlsZS4gQW4gZXhhbXBsZSBwb2xpY3kgZmlsZSBjYW4gYmUgZm91bmQgaW4gdGhlIGdpdGh1YiByZXBvc2l0b3J5LiIsCiAgImdldHRleHQtZG9tYWluIjogInN5c3RlbWQtbWFuYWdlciIsCiAgIm5hbWUiOiAiU3lzdGVtZCBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbWQtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9zeXN0ZW1kLW1hbmFnZXIiLAogICJ1dWlkIjogInN5c3RlbWQtbWFuYWdlckBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogNwp9"}, "41": {"version": "7", "sha256": "11c26d8iwii76i0zwvrdsjypqrq1qi6xsjlx31128pnxsacbj4bs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBzeXN0ZW1kIHNlcnZpY2VzIG9uL29mZiBmcm9tIGEgcG9wdXAgbWVudSBpbiB0aGUgdG9wIGdub21lIHBhbmVsLiBDYW4gYmUgdXNlZCB0byBzdGFydCBzZXJ2aWNlcyBsaWtlIGFwYWNoZTIsIG15c3FsLCBwb3N0Z3Jlcy4gSXQgdXNlcyBgcGtleGVjJyB0byBydW4gYHN5dGVtY3RsJy4gSWYgeW91IHdhbnQgdG8gc3RhcnQgc2VydmljZXMgd2l0aG91dCBlbnRlcmluZyBhIHBhc3N3b3JkIHlvdSBoYXZlIHRvIHBvbGtpdCBwb2xpY3kgZmlsZS4gQW4gZXhhbXBsZSBwb2xpY3kgZmlsZSBjYW4gYmUgZm91bmQgaW4gdGhlIGdpdGh1YiByZXBvc2l0b3J5LiIsCiAgImdldHRleHQtZG9tYWluIjogInN5c3RlbWQtbWFuYWdlciIsCiAgIm5hbWUiOiAiU3lzdGVtZCBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbWQtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9zeXN0ZW1kLW1hbmFnZXIiLAogICJ1dWlkIjogInN5c3RlbWQtbWFuYWdlckBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogNwp9"}, "42": {"version": "7", "sha256": "11c26d8iwii76i0zwvrdsjypqrq1qi6xsjlx31128pnxsacbj4bs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBzeXN0ZW1kIHNlcnZpY2VzIG9uL29mZiBmcm9tIGEgcG9wdXAgbWVudSBpbiB0aGUgdG9wIGdub21lIHBhbmVsLiBDYW4gYmUgdXNlZCB0byBzdGFydCBzZXJ2aWNlcyBsaWtlIGFwYWNoZTIsIG15c3FsLCBwb3N0Z3Jlcy4gSXQgdXNlcyBgcGtleGVjJyB0byBydW4gYHN5dGVtY3RsJy4gSWYgeW91IHdhbnQgdG8gc3RhcnQgc2VydmljZXMgd2l0aG91dCBlbnRlcmluZyBhIHBhc3N3b3JkIHlvdSBoYXZlIHRvIHBvbGtpdCBwb2xpY3kgZmlsZS4gQW4gZXhhbXBsZSBwb2xpY3kgZmlsZSBjYW4gYmUgZm91bmQgaW4gdGhlIGdpdGh1YiByZXBvc2l0b3J5LiIsCiAgImdldHRleHQtZG9tYWluIjogInN5c3RlbWQtbWFuYWdlciIsCiAgIm5hbWUiOiAiU3lzdGVtZCBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbWQtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9zeXN0ZW1kLW1hbmFnZXIiLAogICJ1dWlkIjogInN5c3RlbWQtbWFuYWdlckBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogNwp9"}}}
+, {"uuid": "auto-activities@acedron.github.io", "name": "Auto Activities", "pname": "auto-activities", "description": "Show activities overview when there are no windows, or hide it when there are new windows.", "link": "https://extensions.gnome.org/extension/4179/auto-activities/", "shell_version_map": {"40": {"version": "14", "sha256": "0sfxqafflmj62i6p1sjfqy8l86wg9c23kjn7nxfpgf9cbsbgdp7w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYWN0aXZpdGllcyBvdmVydmlldyB3aGVuIHRoZXJlIGFyZSBubyB3aW5kb3dzLCBvciBoaWRlIGl0IHdoZW4gdGhlcmUgYXJlIG5ldyB3aW5kb3dzLiIsCiAgImdldHRleHQtZG9tYWluIjogImF1dG8tYWN0aXZpdGllcyIsCiAgIm5hbWUiOiAiQXV0byBBY3Rpdml0aWVzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFjZWRyb25zQHlhaG9vLmNvLmpwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamFuLW5laWtvL2F1dG8tYWN0aXZpdGllcyIsCiAgInV1aWQiOiAiYXV0by1hY3Rpdml0aWVzQGFjZWRyb24uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE0Cn0="}, "41": {"version": "14", "sha256": "0sfxqafflmj62i6p1sjfqy8l86wg9c23kjn7nxfpgf9cbsbgdp7w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYWN0aXZpdGllcyBvdmVydmlldyB3aGVuIHRoZXJlIGFyZSBubyB3aW5kb3dzLCBvciBoaWRlIGl0IHdoZW4gdGhlcmUgYXJlIG5ldyB3aW5kb3dzLiIsCiAgImdldHRleHQtZG9tYWluIjogImF1dG8tYWN0aXZpdGllcyIsCiAgIm5hbWUiOiAiQXV0byBBY3Rpdml0aWVzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFjZWRyb25zQHlhaG9vLmNvLmpwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamFuLW5laWtvL2F1dG8tYWN0aXZpdGllcyIsCiAgInV1aWQiOiAiYXV0by1hY3Rpdml0aWVzQGFjZWRyb24uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE0Cn0="}, "42": {"version": "14", "sha256": "0sfxqafflmj62i6p1sjfqy8l86wg9c23kjn7nxfpgf9cbsbgdp7w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYWN0aXZpdGllcyBvdmVydmlldyB3aGVuIHRoZXJlIGFyZSBubyB3aW5kb3dzLCBvciBoaWRlIGl0IHdoZW4gdGhlcmUgYXJlIG5ldyB3aW5kb3dzLiIsCiAgImdldHRleHQtZG9tYWluIjogImF1dG8tYWN0aXZpdGllcyIsCiAgIm5hbWUiOiAiQXV0byBBY3Rpdml0aWVzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFjZWRyb25zQHlhaG9vLmNvLmpwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamFuLW5laWtvL2F1dG8tYWN0aXZpdGllcyIsCiAgInV1aWQiOiAiYXV0by1hY3Rpdml0aWVzQGFjZWRyb24uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE0Cn0="}}}
 , {"uuid": "clippie@blackjackshellac.ca", "name": "clippie [replaced by eclipse]", "pname": "clippie", "description": "clippie has been rereleased as 'eclipse'\n\nClipboard interface to gpaste-client output\n\nhttps://extensions.gnome.org/extension/4246/eclipse/\n\nClippie now uses dbus to communicate with the gpaste daemon\nAdded encryption of clipboard items with eclipse feature", "link": "https://extensions.gnome.org/extension/4182/clippie/", "shell_version_map": {"38": {"version": "6", "sha256": "05kd2pq605k21yq6wcaqcm2lrpnlc6mbiq1wxgmwdnpvi7ib2h8k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImNsaXBwaWUgaGFzIGJlZW4gcmVyZWxlYXNlZCBhcyAnZWNsaXBzZSdcblxuQ2xpcGJvYXJkIGludGVyZmFjZSB0byBncGFzdGUtY2xpZW50IG91dHB1dFxuXG5odHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi80MjQ2L2VjbGlwc2UvXG5cbkNsaXBwaWUgbm93IHVzZXMgZGJ1cyB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBncGFzdGUgZGFlbW9uXG5BZGRlZCBlbmNyeXB0aW9uIG9mIGNsaXBib2FyZCBpdGVtcyB3aXRoIGVjbGlwc2UgZmVhdHVyZSIsCiAgImdldHRleHQtZG9tYWluIjogImNsaXBwaWUtYmxhY2tqYWNrc2hlbGxhYyIsCiAgIm5hbWUiOiAiY2xpcHBpZSBbcmVwbGFjZWQgYnkgZWNsaXBzZV0iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY2xpcHBpZS1ibGFja2phY2tzaGVsbGFjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsYWNramFja3NoZWxsYWMvZWNsaXBzZSIsCiAgInV1aWQiOiAiY2xpcHBpZUBibGFja2phY2tzaGVsbGFjLmNhIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "05kd2pq605k21yq6wcaqcm2lrpnlc6mbiq1wxgmwdnpvi7ib2h8k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImNsaXBwaWUgaGFzIGJlZW4gcmVyZWxlYXNlZCBhcyAnZWNsaXBzZSdcblxuQ2xpcGJvYXJkIGludGVyZmFjZSB0byBncGFzdGUtY2xpZW50IG91dHB1dFxuXG5odHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi80MjQ2L2VjbGlwc2UvXG5cbkNsaXBwaWUgbm93IHVzZXMgZGJ1cyB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBncGFzdGUgZGFlbW9uXG5BZGRlZCBlbmNyeXB0aW9uIG9mIGNsaXBib2FyZCBpdGVtcyB3aXRoIGVjbGlwc2UgZmVhdHVyZSIsCiAgImdldHRleHQtZG9tYWluIjogImNsaXBwaWUtYmxhY2tqYWNrc2hlbGxhYyIsCiAgIm5hbWUiOiAiY2xpcHBpZSBbcmVwbGFjZWQgYnkgZWNsaXBzZV0iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY2xpcHBpZS1ibGFja2phY2tzaGVsbGFjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsYWNramFja3NoZWxsYWMvZWNsaXBzZSIsCiAgInV1aWQiOiAiY2xpcHBpZUBibGFja2phY2tzaGVsbGFjLmNhIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "screen-autorotate@kosmospredanie.yandex.ru", "name": "Screen Autorotate", "pname": "screen-autorotate", "description": "Enable screen rotation regardless of touch mode", "link": "https://extensions.gnome.org/extension/4191/screen-autorotate/", "shell_version_map": {"40": {"version": "3", "sha256": "1sfk9801zqg2cd7w5mkm5qr2zkjm5dbhvi3bcxkf9ikg2ilxcq9h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBzY3JlZW4gcm90YXRpb24gcmVnYXJkbGVzcyBvZiB0b3VjaCBtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNjcmVlbi1hdXRvcm90YXRlIiwKICAibmFtZSI6ICJTY3JlZW4gQXV0b3JvdGF0ZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zY3JlZW4tYXV0b3JvdGF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29zbW9zcHJlZGFuaWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNjcmVlbi1hdXRvcm90YXRlIiwKICAidXVpZCI6ICJzY3JlZW4tYXV0b3JvdGF0ZUBrb3Ntb3NwcmVkYW5pZS55YW5kZXgucnUiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "1sfk9801zqg2cd7w5mkm5qr2zkjm5dbhvi3bcxkf9ikg2ilxcq9h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBzY3JlZW4gcm90YXRpb24gcmVnYXJkbGVzcyBvZiB0b3VjaCBtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNjcmVlbi1hdXRvcm90YXRlIiwKICAibmFtZSI6ICJTY3JlZW4gQXV0b3JvdGF0ZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zY3JlZW4tYXV0b3JvdGF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29zbW9zcHJlZGFuaWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNjcmVlbi1hdXRvcm90YXRlIiwKICAidXVpZCI6ICJzY3JlZW4tYXV0b3JvdGF0ZUBrb3Ntb3NwcmVkYW5pZS55YW5kZXgucnUiLAogICJ2ZXJzaW9uIjogMwp9"}}}
 , {"uuid": "Low_Latency_Loopback@jacebennest87.gmail.com", "name": "Low Latency Loopback", "pname": "low-latency-loopback", "description": "Enables a low latency PulseAudio loopback device", "link": "https://extensions.gnome.org/extension/4194/low-latency-loopback/", "shell_version_map": {"38": {"version": "4", "sha256": "1683m3x0sm9v0aw6lfw5b6k8kqdzjdi7cjwqki2gh3wy3rrmmsyx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgYSBsb3cgbGF0ZW5jeSBQdWxzZUF1ZGlvIGxvb3BiYWNrIGRldmljZSIsCiAgIm5hbWUiOiAiTG93IExhdGVuY3kgTG9vcGJhY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3RoZWphY2VyODcvbG93LWxhdGVuY3ktbG9vcGJhY2siLAogICJ1dWlkIjogIkxvd19MYXRlbmN5X0xvb3BiYWNrQGphY2ViZW5uZXN0ODcuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "1683m3x0sm9v0aw6lfw5b6k8kqdzjdi7cjwqki2gh3wy3rrmmsyx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgYSBsb3cgbGF0ZW5jeSBQdWxzZUF1ZGlvIGxvb3BiYWNrIGRldmljZSIsCiAgIm5hbWUiOiAiTG93IExhdGVuY3kgTG9vcGJhY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3RoZWphY2VyODcvbG93LWxhdGVuY3ktbG9vcGJhY2siLAogICJ1dWlkIjogIkxvd19MYXRlbmN5X0xvb3BiYWNrQGphY2ViZW5uZXN0ODcuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1683m3x0sm9v0aw6lfw5b6k8kqdzjdi7cjwqki2gh3wy3rrmmsyx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgYSBsb3cgbGF0ZW5jeSBQdWxzZUF1ZGlvIGxvb3BiYWNrIGRldmljZSIsCiAgIm5hbWUiOiAiTG93IExhdGVuY3kgTG9vcGJhY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3RoZWphY2VyODcvbG93LWxhdGVuY3ktbG9vcGJhY2siLAogICJ1dWlkIjogIkxvd19MYXRlbmN5X0xvb3BiYWNrQGphY2ViZW5uZXN0ODcuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "dash-to-plank@hardpixel.eu", "name": "Dash to Plank", "pname": "dash-to-plank", "description": "GNOME Shell integration for Plank, the simplest dock on the planet. To use this extension, you must have Plank installed on your system.\n\nThis extension depends on Plank. To install it:\n- Debian/Ubuntu: apt install plank\n- Fedora/RHEL: dnf install plank\n- Arch: pacman -S plank\n\n** This extension does NOT WORK on WAYLAND.", "link": "https://extensions.gnome.org/extension/4198/dash-to-plank/", "shell_version_map": {"38": {"version": "12", "sha256": "14pjbqjgg9aksjgk6mm1hkxn08qpzxiimy5qsfcrkjp31qjldan3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGludGVncmF0aW9uIGZvciBQbGFuaywgdGhlIHNpbXBsZXN0IGRvY2sgb24gdGhlIHBsYW5ldC4gVG8gdXNlIHRoaXMgZXh0ZW5zaW9uLCB5b3UgbXVzdCBoYXZlIFBsYW5rIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBQbGFuay4gVG8gaW5zdGFsbCBpdDpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgcGxhbmtcbi0gRmVkb3JhL1JIRUw6IGRuZiBpbnN0YWxsIHBsYW5rXG4tIEFyY2g6IHBhY21hbiAtUyBwbGFua1xuXG4qKiBUaGlzIGV4dGVuc2lvbiBkb2VzIE5PVCBXT1JLIG9uIFdBWUxBTkQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaC10by1wbGFuayIsCiAgIm5hbWUiOiAiRGFzaCB0byBQbGFuayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoLXRvLXBsYW5rIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvZGFzaC10by1wbGFuayIsCiAgInV1aWQiOiAiZGFzaC10by1wbGFua0BoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "12", "sha256": "14pjbqjgg9aksjgk6mm1hkxn08qpzxiimy5qsfcrkjp31qjldan3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGludGVncmF0aW9uIGZvciBQbGFuaywgdGhlIHNpbXBsZXN0IGRvY2sgb24gdGhlIHBsYW5ldC4gVG8gdXNlIHRoaXMgZXh0ZW5zaW9uLCB5b3UgbXVzdCBoYXZlIFBsYW5rIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBQbGFuay4gVG8gaW5zdGFsbCBpdDpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgcGxhbmtcbi0gRmVkb3JhL1JIRUw6IGRuZiBpbnN0YWxsIHBsYW5rXG4tIEFyY2g6IHBhY21hbiAtUyBwbGFua1xuXG4qKiBUaGlzIGV4dGVuc2lvbiBkb2VzIE5PVCBXT1JLIG9uIFdBWUxBTkQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaC10by1wbGFuayIsCiAgIm5hbWUiOiAiRGFzaCB0byBQbGFuayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoLXRvLXBsYW5rIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvZGFzaC10by1wbGFuayIsCiAgInV1aWQiOiAiZGFzaC10by1wbGFua0BoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "41": {"version": "12", "sha256": "14pjbqjgg9aksjgk6mm1hkxn08qpzxiimy5qsfcrkjp31qjldan3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGludGVncmF0aW9uIGZvciBQbGFuaywgdGhlIHNpbXBsZXN0IGRvY2sgb24gdGhlIHBsYW5ldC4gVG8gdXNlIHRoaXMgZXh0ZW5zaW9uLCB5b3UgbXVzdCBoYXZlIFBsYW5rIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBQbGFuay4gVG8gaW5zdGFsbCBpdDpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgcGxhbmtcbi0gRmVkb3JhL1JIRUw6IGRuZiBpbnN0YWxsIHBsYW5rXG4tIEFyY2g6IHBhY21hbiAtUyBwbGFua1xuXG4qKiBUaGlzIGV4dGVuc2lvbiBkb2VzIE5PVCBXT1JLIG9uIFdBWUxBTkQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaC10by1wbGFuayIsCiAgIm5hbWUiOiAiRGFzaCB0byBQbGFuayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoLXRvLXBsYW5rIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvZGFzaC10by1wbGFuayIsCiAgInV1aWQiOiAiZGFzaC10by1wbGFua0BoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}}}
-, {"uuid": "rrc@ogarcia.me", "name": "Remove Rounded Corners", "pname": "remove-rounded-corners", "description": "Removes rounded corners from main panel or top bar", "link": "https://extensions.gnome.org/extension/4201/remove-rounded-corners/", "shell_version_map": {"40": {"version": "5", "sha256": "1rj9wxa0mazkr29ggwqx0r043cskpw7r4clgvpiw18psrn148c8f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgcm91bmRlZCBjb3JuZXJzIGZyb20gbWFpbiBwYW5lbCBvciB0b3AgYmFyIiwKICAibmFtZSI6ICJSZW1vdmUgUm91bmRlZCBDb3JuZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vZ2FyY2lhL3JlbW92ZS1yb3VuZGVkLWNvcm5lcnMiLAogICJ1dWlkIjogInJyY0BvZ2FyY2lhLm1lIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "41": {"version": "5", "sha256": "1rj9wxa0mazkr29ggwqx0r043cskpw7r4clgvpiw18psrn148c8f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgcm91bmRlZCBjb3JuZXJzIGZyb20gbWFpbiBwYW5lbCBvciB0b3AgYmFyIiwKICAibmFtZSI6ICJSZW1vdmUgUm91bmRlZCBDb3JuZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vZ2FyY2lhL3JlbW92ZS1yb3VuZGVkLWNvcm5lcnMiLAogICJ1dWlkIjogInJyY0BvZ2FyY2lhLm1lIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "dash-to-plank@hardpixel.eu", "name": "Dash to Plank", "pname": "dash-to-plank", "description": "GNOME Shell integration for Plank, the simplest dock on the planet. To use this extension, you must have Plank installed on your system.\n\nThis extension depends on Plank. To install it:\n- Debian/Ubuntu: apt install plank\n- Fedora/RHEL: dnf install plank\n- Arch: pacman -S plank\n\n** This extension does NOT WORK on WAYLAND.", "link": "https://extensions.gnome.org/extension/4198/dash-to-plank/", "shell_version_map": {"38": {"version": "13", "sha256": "0aws4qfafzh04zph6ws6gd6nid2bfwh32h4dfjzgmgrzfj4jypvq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGludGVncmF0aW9uIGZvciBQbGFuaywgdGhlIHNpbXBsZXN0IGRvY2sgb24gdGhlIHBsYW5ldC4gVG8gdXNlIHRoaXMgZXh0ZW5zaW9uLCB5b3UgbXVzdCBoYXZlIFBsYW5rIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBQbGFuay4gVG8gaW5zdGFsbCBpdDpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgcGxhbmtcbi0gRmVkb3JhL1JIRUw6IGRuZiBpbnN0YWxsIHBsYW5rXG4tIEFyY2g6IHBhY21hbiAtUyBwbGFua1xuXG4qKiBUaGlzIGV4dGVuc2lvbiBkb2VzIE5PVCBXT1JLIG9uIFdBWUxBTkQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaC10by1wbGFuayIsCiAgIm5hbWUiOiAiRGFzaCB0byBQbGFuayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoLXRvLXBsYW5rIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL2Rhc2gtdG8tcGxhbmsiLAogICJ1dWlkIjogImRhc2gtdG8tcGxhbmtAaGFyZHBpeGVsLmV1IiwKICAidmVyc2lvbiI6IDEzCn0="}, "40": {"version": "13", "sha256": "0aws4qfafzh04zph6ws6gd6nid2bfwh32h4dfjzgmgrzfj4jypvq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGludGVncmF0aW9uIGZvciBQbGFuaywgdGhlIHNpbXBsZXN0IGRvY2sgb24gdGhlIHBsYW5ldC4gVG8gdXNlIHRoaXMgZXh0ZW5zaW9uLCB5b3UgbXVzdCBoYXZlIFBsYW5rIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBQbGFuay4gVG8gaW5zdGFsbCBpdDpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgcGxhbmtcbi0gRmVkb3JhL1JIRUw6IGRuZiBpbnN0YWxsIHBsYW5rXG4tIEFyY2g6IHBhY21hbiAtUyBwbGFua1xuXG4qKiBUaGlzIGV4dGVuc2lvbiBkb2VzIE5PVCBXT1JLIG9uIFdBWUxBTkQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaC10by1wbGFuayIsCiAgIm5hbWUiOiAiRGFzaCB0byBQbGFuayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoLXRvLXBsYW5rIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL2Rhc2gtdG8tcGxhbmsiLAogICJ1dWlkIjogImRhc2gtdG8tcGxhbmtAaGFyZHBpeGVsLmV1IiwKICAidmVyc2lvbiI6IDEzCn0="}, "41": {"version": "13", "sha256": "0aws4qfafzh04zph6ws6gd6nid2bfwh32h4dfjzgmgrzfj4jypvq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGludGVncmF0aW9uIGZvciBQbGFuaywgdGhlIHNpbXBsZXN0IGRvY2sgb24gdGhlIHBsYW5ldC4gVG8gdXNlIHRoaXMgZXh0ZW5zaW9uLCB5b3UgbXVzdCBoYXZlIFBsYW5rIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBQbGFuay4gVG8gaW5zdGFsbCBpdDpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgcGxhbmtcbi0gRmVkb3JhL1JIRUw6IGRuZiBpbnN0YWxsIHBsYW5rXG4tIEFyY2g6IHBhY21hbiAtUyBwbGFua1xuXG4qKiBUaGlzIGV4dGVuc2lvbiBkb2VzIE5PVCBXT1JLIG9uIFdBWUxBTkQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaC10by1wbGFuayIsCiAgIm5hbWUiOiAiRGFzaCB0byBQbGFuayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoLXRvLXBsYW5rIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL2Rhc2gtdG8tcGxhbmsiLAogICJ1dWlkIjogImRhc2gtdG8tcGxhbmtAaGFyZHBpeGVsLmV1IiwKICAidmVyc2lvbiI6IDEzCn0="}, "42": {"version": "13", "sha256": "0aws4qfafzh04zph6ws6gd6nid2bfwh32h4dfjzgmgrzfj4jypvq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGludGVncmF0aW9uIGZvciBQbGFuaywgdGhlIHNpbXBsZXN0IGRvY2sgb24gdGhlIHBsYW5ldC4gVG8gdXNlIHRoaXMgZXh0ZW5zaW9uLCB5b3UgbXVzdCBoYXZlIFBsYW5rIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBQbGFuay4gVG8gaW5zdGFsbCBpdDpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgcGxhbmtcbi0gRmVkb3JhL1JIRUw6IGRuZiBpbnN0YWxsIHBsYW5rXG4tIEFyY2g6IHBhY21hbiAtUyBwbGFua1xuXG4qKiBUaGlzIGV4dGVuc2lvbiBkb2VzIE5PVCBXT1JLIG9uIFdBWUxBTkQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaC10by1wbGFuayIsCiAgIm5hbWUiOiAiRGFzaCB0byBQbGFuayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoLXRvLXBsYW5rIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL2Rhc2gtdG8tcGxhbmsiLAogICJ1dWlkIjogImRhc2gtdG8tcGxhbmtAaGFyZHBpeGVsLmV1IiwKICAidmVyc2lvbiI6IDEzCn0="}}}
+, {"uuid": "rrc@ogarcia.me", "name": "Remove Rounded Corners", "pname": "remove-rounded-corners", "description": "Removes rounded corners from main panel or top bar\n\nWARNING: From GNOME 42 onwards this extension is not needed since it no longer has rounded corners", "link": "https://extensions.gnome.org/extension/4201/remove-rounded-corners/", "shell_version_map": {"40": {"version": "5", "sha256": "1xi1al0kaqk381sf4p2q8lj0f7hbhirh523sy5h2510p4xwaybwi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgcm91bmRlZCBjb3JuZXJzIGZyb20gbWFpbiBwYW5lbCBvciB0b3AgYmFyXG5cbldBUk5JTkc6IEZyb20gR05PTUUgNDIgb253YXJkcyB0aGlzIGV4dGVuc2lvbiBpcyBub3QgbmVlZGVkIHNpbmNlIGl0IG5vIGxvbmdlciBoYXMgcm91bmRlZCBjb3JuZXJzIiwKICAibmFtZSI6ICJSZW1vdmUgUm91bmRlZCBDb3JuZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vZ2FyY2lhL3JlbW92ZS1yb3VuZGVkLWNvcm5lcnMiLAogICJ1dWlkIjogInJyY0BvZ2FyY2lhLm1lIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "41": {"version": "5", "sha256": "1xi1al0kaqk381sf4p2q8lj0f7hbhirh523sy5h2510p4xwaybwi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgcm91bmRlZCBjb3JuZXJzIGZyb20gbWFpbiBwYW5lbCBvciB0b3AgYmFyXG5cbldBUk5JTkc6IEZyb20gR05PTUUgNDIgb253YXJkcyB0aGlzIGV4dGVuc2lvbiBpcyBub3QgbmVlZGVkIHNpbmNlIGl0IG5vIGxvbmdlciBoYXMgcm91bmRlZCBjb3JuZXJzIiwKICAibmFtZSI6ICJSZW1vdmUgUm91bmRlZCBDb3JuZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vZ2FyY2lhL3JlbW92ZS1yb3VuZGVkLWNvcm5lcnMiLAogICJ1dWlkIjogInJyY0BvZ2FyY2lhLm1lIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "private-switcher@dziban.com", "name": "Private Switcher", "pname": "private-switcher", "description": "Simple extension that allows you do have independent app switcher (alt-tab) for each workspace.", "link": "https://extensions.gnome.org/extension/4204/private-switcher/", "shell_version_map": {"38": {"version": "1", "sha256": "1awjnic8zca2f6viah2l4ai0pyfdyisxna9ys1zzpya11rwj6jk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdGhhdCBhbGxvd3MgeW91IGRvIGhhdmUgaW5kZXBlbmRlbnQgYXBwIHN3aXRjaGVyIChhbHQtdGFiKSBmb3IgZWFjaCB3b3Jrc3BhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJpdmF0ZS1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiUHJpdmF0ZSBTd2l0Y2hlciIsCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wcml2YXRlLXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tIiwKICAidXVpZCI6ICJwcml2YXRlLXN3aXRjaGVyQGR6aWJhbi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}, "40": {"version": "1", "sha256": "1awjnic8zca2f6viah2l4ai0pyfdyisxna9ys1zzpya11rwj6jk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdGhhdCBhbGxvd3MgeW91IGRvIGhhdmUgaW5kZXBlbmRlbnQgYXBwIHN3aXRjaGVyIChhbHQtdGFiKSBmb3IgZWFjaCB3b3Jrc3BhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJpdmF0ZS1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiUHJpdmF0ZSBTd2l0Y2hlciIsCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wcml2YXRlLXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tIiwKICAidXVpZCI6ICJwcml2YXRlLXN3aXRjaGVyQGR6aWJhbi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
-, {"uuid": "colosseum@sereneblue", "name": "Colosseum", "pname": "colosseum", "description": "View live scores for your favorite sports teams.", "link": "https://extensions.gnome.org/extension/4207/colosseum/", "shell_version_map": {"40": {"version": "9", "sha256": "1lkccmr32l58pb7fb566jy3wg1v7hr2x0w6zdwv5ys8fxgrjaq6r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2VyZW5lYmx1ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tY29sb3NzZXVtIiwKICAidXVpZCI6ICJjb2xvc3NldW1Ac2VyZW5lYmx1ZSIsCiAgInZlcnNpb24iOiA5Cn0="}, "41": {"version": "9", "sha256": "1lkccmr32l58pb7fb566jy3wg1v7hr2x0w6zdwv5ys8fxgrjaq6r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2VyZW5lYmx1ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tY29sb3NzZXVtIiwKICAidXVpZCI6ICJjb2xvc3NldW1Ac2VyZW5lYmx1ZSIsCiAgInZlcnNpb24iOiA5Cn0="}, "42": {"version": "9", "sha256": "1lkccmr32l58pb7fb566jy3wg1v7hr2x0w6zdwv5ys8fxgrjaq6r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2VyZW5lYmx1ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tY29sb3NzZXVtIiwKICAidXVpZCI6ICJjb2xvc3NldW1Ac2VyZW5lYmx1ZSIsCiAgInZlcnNpb24iOiA5Cn0="}}}
+, {"uuid": "colosseum@sereneblue", "name": "Colosseum", "pname": "colosseum", "description": "View live scores for your favorite sports teams.", "link": "https://extensions.gnome.org/extension/4207/colosseum/", "shell_version_map": {"40": {"version": "10", "sha256": "0y8513qabs2gng13dj8lwiiwrwn56kqiq5nykbmlybfv0887p8x8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2VyZW5lYmx1ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tY29sb3NzZXVtIiwKICAidXVpZCI6ICJjb2xvc3NldW1Ac2VyZW5lYmx1ZSIsCiAgInZlcnNpb24iOiAxMAp9"}, "41": {"version": "10", "sha256": "0y8513qabs2gng13dj8lwiiwrwn56kqiq5nykbmlybfv0887p8x8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2VyZW5lYmx1ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tY29sb3NzZXVtIiwKICAidXVpZCI6ICJjb2xvc3NldW1Ac2VyZW5lYmx1ZSIsCiAgInZlcnNpb24iOiAxMAp9"}, "42": {"version": "10", "sha256": "0y8513qabs2gng13dj8lwiiwrwn56kqiq5nykbmlybfv0887p8x8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2VyZW5lYmx1ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tY29sb3NzZXVtIiwKICAidXVpZCI6ICJjb2xvc3NldW1Ac2VyZW5lYmx1ZSIsCiAgInZlcnNpb24iOiAxMAp9"}}}
 , {"uuid": "gnome-plat-workspace@stonegate.me", "name": "Gnome 40 Flat Workspace", "pname": "gnome-40-plat-workspace", "description": "Remove shadow for workspace background in gnome 40.\nSource code https://github.com/stonega/gnome-extension-flat-workspace", "link": "https://extensions.gnome.org/extension/4215/gnome-40-plat-workspace/", "shell_version_map": {"40": {"version": "3", "sha256": "0ly2dab9c0l7w1axnqs7xk2szd5jm2ifgniz2snw5mwkr5pw76nb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBzaGFkb3cgZm9yIHdvcmtzcGFjZSBiYWNrZ3JvdW5kIGluIGdub21lIDQwLlxuU291cmNlIGNvZGUgaHR0cHM6Ly9naXRodWIuY29tL3N0b25lZ2EvZ25vbWUtZXh0ZW5zaW9uLWZsYXQtd29ya3NwYWNlIiwKICAibmFtZSI6ICJHbm9tZSA0MCBGbGF0IFdvcmtzcGFjZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1wbGF0LXdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZ25vbWUtcGxhdC13b3Jrc3BhY2VAc3RvbmVnYXRlLm1lIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
 , {"uuid": "hotedge@jonathan.jdoda.ca", "name": "Hot Edge", "pname": "hot-edge", "description": "Add a hot edge that activates the overview to the bottom of the screen. This minimizes the pointer travel required to access the dash when using the new GNOME Shell 40 overview layout.\n\nNow with preference dialog!\n\nYou can find more documentation at https://github.com/jdoda/hotedge/blob/main/README.md and report issues at https://github.com/jdoda/hotedge/issues .", "link": "https://extensions.gnome.org/extension/4222/hot-edge/", "shell_version_map": {"40": {"version": "14", "sha256": "0b0l1qfjkql7xzp5qkqixmdr6rmfdz7i7y319qqwn31mwslrc1nl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGhvdCBlZGdlIHRoYXQgYWN0aXZhdGVzIHRoZSBvdmVydmlldyB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uIFRoaXMgbWluaW1pemVzIHRoZSBwb2ludGVyIHRyYXZlbCByZXF1aXJlZCB0byBhY2Nlc3MgdGhlIGRhc2ggd2hlbiB1c2luZyB0aGUgbmV3IEdOT01FIFNoZWxsIDQwIG92ZXJ2aWV3IGxheW91dC5cblxuTm93IHdpdGggcHJlZmVyZW5jZSBkaWFsb2chXG5cbllvdSBjYW4gZmluZCBtb3JlIGRvY3VtZW50YXRpb24gYXQgaHR0cHM6Ly9naXRodWIuY29tL2pkb2RhL2hvdGVkZ2UvYmxvYi9tYWluL1JFQURNRS5tZCBhbmQgcmVwb3J0IGlzc3VlcyBhdCBodHRwczovL2dpdGh1Yi5jb20vamRvZGEvaG90ZWRnZS9pc3N1ZXMgLiIsCiAgIm5hbWUiOiAiSG90IEVkZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZG9kYS9ob3RlZGdlIiwKICAidXVpZCI6ICJob3RlZGdlQGpvbmF0aGFuLmpkb2RhLmNhIiwKICAidmVyc2lvbiI6IDE0Cn0="}, "41": {"version": "14", "sha256": "0b0l1qfjkql7xzp5qkqixmdr6rmfdz7i7y319qqwn31mwslrc1nl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGhvdCBlZGdlIHRoYXQgYWN0aXZhdGVzIHRoZSBvdmVydmlldyB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uIFRoaXMgbWluaW1pemVzIHRoZSBwb2ludGVyIHRyYXZlbCByZXF1aXJlZCB0byBhY2Nlc3MgdGhlIGRhc2ggd2hlbiB1c2luZyB0aGUgbmV3IEdOT01FIFNoZWxsIDQwIG92ZXJ2aWV3IGxheW91dC5cblxuTm93IHdpdGggcHJlZmVyZW5jZSBkaWFsb2chXG5cbllvdSBjYW4gZmluZCBtb3JlIGRvY3VtZW50YXRpb24gYXQgaHR0cHM6Ly9naXRodWIuY29tL2pkb2RhL2hvdGVkZ2UvYmxvYi9tYWluL1JFQURNRS5tZCBhbmQgcmVwb3J0IGlzc3VlcyBhdCBodHRwczovL2dpdGh1Yi5jb20vamRvZGEvaG90ZWRnZS9pc3N1ZXMgLiIsCiAgIm5hbWUiOiAiSG90IEVkZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZG9kYS9ob3RlZGdlIiwKICAidXVpZCI6ICJob3RlZGdlQGpvbmF0aGFuLmpkb2RhLmNhIiwKICAidmVyc2lvbiI6IDE0Cn0="}, "42": {"version": "14", "sha256": "0b0l1qfjkql7xzp5qkqixmdr6rmfdz7i7y319qqwn31mwslrc1nl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGhvdCBlZGdlIHRoYXQgYWN0aXZhdGVzIHRoZSBvdmVydmlldyB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uIFRoaXMgbWluaW1pemVzIHRoZSBwb2ludGVyIHRyYXZlbCByZXF1aXJlZCB0byBhY2Nlc3MgdGhlIGRhc2ggd2hlbiB1c2luZyB0aGUgbmV3IEdOT01FIFNoZWxsIDQwIG92ZXJ2aWV3IGxheW91dC5cblxuTm93IHdpdGggcHJlZmVyZW5jZSBkaWFsb2chXG5cbllvdSBjYW4gZmluZCBtb3JlIGRvY3VtZW50YXRpb24gYXQgaHR0cHM6Ly9naXRodWIuY29tL2pkb2RhL2hvdGVkZ2UvYmxvYi9tYWluL1JFQURNRS5tZCBhbmQgcmVwb3J0IGlzc3VlcyBhdCBodHRwczovL2dpdGh1Yi5jb20vamRvZGEvaG90ZWRnZS9pc3N1ZXMgLiIsCiAgIm5hbWUiOiAiSG90IEVkZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZG9kYS9ob3RlZGdlIiwKICAidXVpZCI6ICJob3RlZGdlQGpvbmF0aGFuLmpkb2RhLmNhIiwKICAidmVyc2lvbiI6IDE0Cn0="}}}
 , {"uuid": "gnome-citeurl-search-provider@raindrum.github.io", "name": "Legal Citation Search", "pname": "gnome-citeurl-search-provider", "description": "This extension lets you look up U.S. state and federal laws and court cases by typing citations (like \"42 USC 1983\" or \"U.S. Constitution Art. I, Sec. 3\") into the search bar.\nBy default, the search supports the U.S. Code and federal constitution, as well as nearly all codified state laws and constitutions, among other sources of law. You can also add more types of citation by following the instructions on the GitHub page.", "link": "https://extensions.gnome.org/extension/4225/gnome-citeurl-search-provider/", "shell_version_map": {"38": {"version": "6", "sha256": "024d98642smciv5n2vc4l2f8rglfrv180paj1g2rrq9k4pvg6yym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IGxvb2sgdXAgVS5TLiBzdGF0ZSBhbmQgZmVkZXJhbCBsYXdzIGFuZCBjb3VydCBjYXNlcyBieSB0eXBpbmcgY2l0YXRpb25zIChsaWtlIFwiNDIgVVNDIDE5ODNcIiBvciBcIlUuUy4gQ29uc3RpdHV0aW9uIEFydC4gSSwgU2VjLiAzXCIpIGludG8gdGhlIHNlYXJjaCBiYXIuXG5CeSBkZWZhdWx0LCB0aGUgc2VhcmNoIHN1cHBvcnRzIHRoZSBVLlMuIENvZGUgYW5kIGZlZGVyYWwgY29uc3RpdHV0aW9uLCBhcyB3ZWxsIGFzIG5lYXJseSBhbGwgY29kaWZpZWQgc3RhdGUgbGF3cyBhbmQgY29uc3RpdHV0aW9ucywgYW1vbmcgb3RoZXIgc291cmNlcyBvZiBsYXcuIFlvdSBjYW4gYWxzbyBhZGQgbW9yZSB0eXBlcyBvZiBjaXRhdGlvbiBieSBmb2xsb3dpbmcgdGhlIGluc3RydWN0aW9ucyBvbiB0aGUgR2l0SHViIHBhZ2UuIiwKICAibmFtZSI6ICJMZWdhbCBDaXRhdGlvbiBTZWFyY2giLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY2l0ZXVybC1zZWFyY2gtcHJvdmlkZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFpbmRydW0vZ25vbWUtY2l0ZXVybC1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogImdub21lLWNpdGV1cmwtc2VhcmNoLXByb3ZpZGVyQHJhaW5kcnVtLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "6", "sha256": "024d98642smciv5n2vc4l2f8rglfrv180paj1g2rrq9k4pvg6yym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IGxvb2sgdXAgVS5TLiBzdGF0ZSBhbmQgZmVkZXJhbCBsYXdzIGFuZCBjb3VydCBjYXNlcyBieSB0eXBpbmcgY2l0YXRpb25zIChsaWtlIFwiNDIgVVNDIDE5ODNcIiBvciBcIlUuUy4gQ29uc3RpdHV0aW9uIEFydC4gSSwgU2VjLiAzXCIpIGludG8gdGhlIHNlYXJjaCBiYXIuXG5CeSBkZWZhdWx0LCB0aGUgc2VhcmNoIHN1cHBvcnRzIHRoZSBVLlMuIENvZGUgYW5kIGZlZGVyYWwgY29uc3RpdHV0aW9uLCBhcyB3ZWxsIGFzIG5lYXJseSBhbGwgY29kaWZpZWQgc3RhdGUgbGF3cyBhbmQgY29uc3RpdHV0aW9ucywgYW1vbmcgb3RoZXIgc291cmNlcyBvZiBsYXcuIFlvdSBjYW4gYWxzbyBhZGQgbW9yZSB0eXBlcyBvZiBjaXRhdGlvbiBieSBmb2xsb3dpbmcgdGhlIGluc3RydWN0aW9ucyBvbiB0aGUgR2l0SHViIHBhZ2UuIiwKICAibmFtZSI6ICJMZWdhbCBDaXRhdGlvbiBTZWFyY2giLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY2l0ZXVybC1zZWFyY2gtcHJvdmlkZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFpbmRydW0vZ25vbWUtY2l0ZXVybC1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogImdub21lLWNpdGV1cmwtc2VhcmNoLXByb3ZpZGVyQHJhaW5kcnVtLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Cn0="}}}
@@ -497,7 +497,7 @@
 , {"uuid": "better-osd@hllvc", "name": "Better OSD - Gnome 40", "pname": "better-osd-gnome-40", "description": "Customize your OSD popups. Move, resize, set delay and transparency!", "link": "https://extensions.gnome.org/extension/4231/better-osd-gnome-40/", "shell_version_map": {"40": {"version": "6", "sha256": "0945xh7a607x3f9796gi3l5zylqa8gj1pnw44hcaak5sc6zpahgv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIE9TRCBwb3B1cHMuIE1vdmUsIHJlc2l6ZSwgc2V0IGRlbGF5IGFuZCB0cmFuc3BhcmVuY3khIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmV0dGVyLW9zZCIsCiAgIm5hbWUiOiAiQmV0dGVyIE9TRCAtIEdub21lIDQwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQxLjEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9obGx2Yy9iZXR0ZXItb3NkIiwKICAidXVpZCI6ICJiZXR0ZXItb3NkQGhsbHZjIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "0945xh7a607x3f9796gi3l5zylqa8gj1pnw44hcaak5sc6zpahgv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIE9TRCBwb3B1cHMuIE1vdmUsIHJlc2l6ZSwgc2V0IGRlbGF5IGFuZCB0cmFuc3BhcmVuY3khIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmV0dGVyLW9zZCIsCiAgIm5hbWUiOiAiQmV0dGVyIE9TRCAtIEdub21lIDQwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQxLjEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9obGx2Yy9iZXR0ZXItb3NkIiwKICAidXVpZCI6ICJiZXR0ZXItb3NkQGhsbHZjIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "arbttstats@gervasioperez.ar", "name": "Arbtt stats", "pname": "arbtt-stats", "description": "Show simple arbtt stats on the panel\n*** This extension requires arbtt running and configured", "link": "https://extensions.gnome.org/extension/4234/arbtt-stats/", "shell_version_map": {"38": {"version": "9", "sha256": "0x3sxg8dv9gfq1f4m9bk4rb3395rdcf0srijxqphpwjmm0nsizql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc2ltcGxlIGFyYnR0IHN0YXRzIG9uIHRoZSBwYW5lbFxuKioqIFRoaXMgZXh0ZW5zaW9uIHJlcXVpcmVzIGFyYnR0IHJ1bm5pbmcgYW5kIGNvbmZpZ3VyZWQiLAogICJuYW1lIjogIkFyYnR0IHN0YXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NoZXJ3b29kaW5jL2FyYnR0LXN0YXRzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXJidHRzdGF0c0BnZXJ2YXNpb3BlcmV6LmFyIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "0x3sxg8dv9gfq1f4m9bk4rb3395rdcf0srijxqphpwjmm0nsizql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc2ltcGxlIGFyYnR0IHN0YXRzIG9uIHRoZSBwYW5lbFxuKioqIFRoaXMgZXh0ZW5zaW9uIHJlcXVpcmVzIGFyYnR0IHJ1bm5pbmcgYW5kIGNvbmZpZ3VyZWQiLAogICJuYW1lIjogIkFyYnR0IHN0YXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NoZXJ3b29kaW5jL2FyYnR0LXN0YXRzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXJidHRzdGF0c0BnZXJ2YXNpb3BlcmV6LmFyIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
 , {"uuid": "blur-me@nunchucks", "name": "Blur Me", "pname": "blur-me", "description": "Blur: Applications | Top Panel | Overview | Dash | More!\n\n\nCredit where it's due: Overview and dash blur are based on blur my shell", "link": "https://extensions.gnome.org/extension/4236/blur-me/", "shell_version_map": {"40": {"version": "13", "sha256": "0sdmp9q6g8xyaxvvmk47niad5csnlfpdnmx0lnlfm1dc6kchyaxa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdXI6IEFwcGxpY2F0aW9ucyB8IFRvcCBQYW5lbCB8IE92ZXJ2aWV3IHwgRGFzaCB8IE1vcmUhXG5cblxuQ3JlZGl0IHdoZXJlIGl0J3MgZHVlOiBPdmVydmlldyBhbmQgZGFzaCBibHVyIGFyZSBiYXNlZCBvbiBibHVyIG15IHNoZWxsIiwKICAibmFtZSI6ICJCbHVyIE1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4xIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ja2lzc2FuZS9ibHVyLW1lIiwKICAidXVpZCI6ICJibHVyLW1lQG51bmNodWNrcyIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "0sdmp9q6g8xyaxvvmk47niad5csnlfpdnmx0lnlfm1dc6kchyaxa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdXI6IEFwcGxpY2F0aW9ucyB8IFRvcCBQYW5lbCB8IE92ZXJ2aWV3IHwgRGFzaCB8IE1vcmUhXG5cblxuQ3JlZGl0IHdoZXJlIGl0J3MgZHVlOiBPdmVydmlldyBhbmQgZGFzaCBibHVyIGFyZSBiYXNlZCBvbiBibHVyIG15IHNoZWxsIiwKICAibmFtZSI6ICJCbHVyIE1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4xIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ja2lzc2FuZS9ibHVyLW1lIiwKICAidXVpZCI6ICJibHVyLW1lQG51bmNodWNrcyIsCiAgInZlcnNpb24iOiAxMwp9"}}}
-, {"uuid": "gestureImprovements@gestures", "name": "Gesture Improvements", "pname": "gesture-improvements", "description": "Improve touchpad gestures for Wayland/X11\n\nThis extension adds following features:\n\n• Switch windows from current workspace using 3-finger horizontal swipe\n• Cyclic gestures between Desktop/Overview/AppGrid using 4 vertical swipe\n• Switch app-pages using 3-finger swipe gesture on AppGrid\n• Unmaximize/maximize/fullscreen/half-tiling using 3-finger vertical & horizontal gesture\n• Optional minimize a window gesture\n• Override 3-finger gesture with 4-finger for switching workspace\n• Pinch to show desktop\n• Configure speed of gestures\n• Support for X11\n   \nOn X11, you need to install https://github.com/harshadgavali/gnome-x11-gesture-daemon\n\nReport any bugs/requests on GitHub (link directly below)\n", "link": "https://extensions.gnome.org/extension/4245/gesture-improvements/", "shell_version_map": {"40": {"version": "19", "sha256": "06s4igjx5r7k01yvylr0clg8j2m6sdywn00hr5xdp1a9v2r5v5ry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdG91Y2hwYWQgZ2VzdHVyZXMgZm9yIFdheWxhbmQvWDExXG5cblRoaXMgZXh0ZW5zaW9uIGFkZHMgZm9sbG93aW5nIGZlYXR1cmVzOlxuXG5cdTIwMjIgU3dpdGNoIHdpbmRvd3MgZnJvbSBjdXJyZW50IHdvcmtzcGFjZSB1c2luZyAzLWZpbmdlciBob3Jpem9udGFsIHN3aXBlXG5cdTIwMjIgQ3ljbGljIGdlc3R1cmVzIGJldHdlZW4gRGVza3RvcC9PdmVydmlldy9BcHBHcmlkIHVzaW5nIDQgdmVydGljYWwgc3dpcGVcblx1MjAyMiBTd2l0Y2ggYXBwLXBhZ2VzIHVzaW5nIDMtZmluZ2VyIHN3aXBlIGdlc3R1cmUgb24gQXBwR3JpZFxuXHUyMDIyIFVubWF4aW1pemUvbWF4aW1pemUvZnVsbHNjcmVlbi9oYWxmLXRpbGluZyB1c2luZyAzLWZpbmdlciB2ZXJ0aWNhbCAmIGhvcml6b250YWwgZ2VzdHVyZVxuXHUyMDIyIE9wdGlvbmFsIG1pbmltaXplIGEgd2luZG93IGdlc3R1cmVcblx1MjAyMiBPdmVycmlkZSAzLWZpbmdlciBnZXN0dXJlIHdpdGggNC1maW5nZXIgZm9yIHN3aXRjaGluZyB3b3Jrc3BhY2Vcblx1MjAyMiBQaW5jaCB0byBzaG93IGRlc2t0b3Bcblx1MjAyMiBDb25maWd1cmUgc3BlZWQgb2YgZ2VzdHVyZXNcblx1MjAyMiBTdXBwb3J0IGZvciBYMTFcbiAgIFxuT24gWDExLCB5b3UgbmVlZCB0byBpbnN0YWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLXgxMS1nZXN0dXJlLWRhZW1vblxuXG5SZXBvcnQgYW55IGJ1Z3MvcmVxdWVzdHMgb24gR2l0SHViIChsaW5rIGRpcmVjdGx5IGJlbG93KVxuIiwKICAibmFtZSI6ICJHZXN0dXJlIEltcHJvdmVtZW50cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nZXN0dXJlSW1wcm92ZW1lbnRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLWdlc3R1cmUtaW1wcm92ZW1lbnRzIiwKICAidXVpZCI6ICJnZXN0dXJlSW1wcm92ZW1lbnRzQGdlc3R1cmVzIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "41": {"version": "19", "sha256": "06s4igjx5r7k01yvylr0clg8j2m6sdywn00hr5xdp1a9v2r5v5ry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdG91Y2hwYWQgZ2VzdHVyZXMgZm9yIFdheWxhbmQvWDExXG5cblRoaXMgZXh0ZW5zaW9uIGFkZHMgZm9sbG93aW5nIGZlYXR1cmVzOlxuXG5cdTIwMjIgU3dpdGNoIHdpbmRvd3MgZnJvbSBjdXJyZW50IHdvcmtzcGFjZSB1c2luZyAzLWZpbmdlciBob3Jpem9udGFsIHN3aXBlXG5cdTIwMjIgQ3ljbGljIGdlc3R1cmVzIGJldHdlZW4gRGVza3RvcC9PdmVydmlldy9BcHBHcmlkIHVzaW5nIDQgdmVydGljYWwgc3dpcGVcblx1MjAyMiBTd2l0Y2ggYXBwLXBhZ2VzIHVzaW5nIDMtZmluZ2VyIHN3aXBlIGdlc3R1cmUgb24gQXBwR3JpZFxuXHUyMDIyIFVubWF4aW1pemUvbWF4aW1pemUvZnVsbHNjcmVlbi9oYWxmLXRpbGluZyB1c2luZyAzLWZpbmdlciB2ZXJ0aWNhbCAmIGhvcml6b250YWwgZ2VzdHVyZVxuXHUyMDIyIE9wdGlvbmFsIG1pbmltaXplIGEgd2luZG93IGdlc3R1cmVcblx1MjAyMiBPdmVycmlkZSAzLWZpbmdlciBnZXN0dXJlIHdpdGggNC1maW5nZXIgZm9yIHN3aXRjaGluZyB3b3Jrc3BhY2Vcblx1MjAyMiBQaW5jaCB0byBzaG93IGRlc2t0b3Bcblx1MjAyMiBDb25maWd1cmUgc3BlZWQgb2YgZ2VzdHVyZXNcblx1MjAyMiBTdXBwb3J0IGZvciBYMTFcbiAgIFxuT24gWDExLCB5b3UgbmVlZCB0byBpbnN0YWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLXgxMS1nZXN0dXJlLWRhZW1vblxuXG5SZXBvcnQgYW55IGJ1Z3MvcmVxdWVzdHMgb24gR2l0SHViIChsaW5rIGRpcmVjdGx5IGJlbG93KVxuIiwKICAibmFtZSI6ICJHZXN0dXJlIEltcHJvdmVtZW50cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nZXN0dXJlSW1wcm92ZW1lbnRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLWdlc3R1cmUtaW1wcm92ZW1lbnRzIiwKICAidXVpZCI6ICJnZXN0dXJlSW1wcm92ZW1lbnRzQGdlc3R1cmVzIiwKICAidmVyc2lvbiI6IDE5Cn0="}}}
+, {"uuid": "gestureImprovements@gestures", "name": "Gesture Improvements", "pname": "gesture-improvements", "description": "Improve touchpad gestures for Wayland/X11\n\nThis extension adds following features:\n\n• Switch windows from current workspace using 3-finger horizontal swipe\n• Cyclic gestures between Desktop/Overview/AppGrid using 4 vertical swipe\n• Switch app-pages using 3-finger swipe gesture on AppGrid\n• Unmaximize/maximize/fullscreen/half-tiling using 3-finger vertical & horizontal gesture\n• Optional minimize a window gesture\n• Override 3-finger gesture with 4-finger for switching workspace\n• Pinch to show desktop\n• Configure speed of gestures\n• Support for X11\n   \nOn X11, you need to install https://github.com/harshadgavali/gnome-x11-gesture-daemon\n\nReport any bugs/requests on GitHub (link directly below)\n", "link": "https://extensions.gnome.org/extension/4245/gesture-improvements/", "shell_version_map": {"40": {"version": "19", "sha256": "06s4igjx5r7k01yvylr0clg8j2m6sdywn00hr5xdp1a9v2r5v5ry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdG91Y2hwYWQgZ2VzdHVyZXMgZm9yIFdheWxhbmQvWDExXG5cblRoaXMgZXh0ZW5zaW9uIGFkZHMgZm9sbG93aW5nIGZlYXR1cmVzOlxuXG5cdTIwMjIgU3dpdGNoIHdpbmRvd3MgZnJvbSBjdXJyZW50IHdvcmtzcGFjZSB1c2luZyAzLWZpbmdlciBob3Jpem9udGFsIHN3aXBlXG5cdTIwMjIgQ3ljbGljIGdlc3R1cmVzIGJldHdlZW4gRGVza3RvcC9PdmVydmlldy9BcHBHcmlkIHVzaW5nIDQgdmVydGljYWwgc3dpcGVcblx1MjAyMiBTd2l0Y2ggYXBwLXBhZ2VzIHVzaW5nIDMtZmluZ2VyIHN3aXBlIGdlc3R1cmUgb24gQXBwR3JpZFxuXHUyMDIyIFVubWF4aW1pemUvbWF4aW1pemUvZnVsbHNjcmVlbi9oYWxmLXRpbGluZyB1c2luZyAzLWZpbmdlciB2ZXJ0aWNhbCAmIGhvcml6b250YWwgZ2VzdHVyZVxuXHUyMDIyIE9wdGlvbmFsIG1pbmltaXplIGEgd2luZG93IGdlc3R1cmVcblx1MjAyMiBPdmVycmlkZSAzLWZpbmdlciBnZXN0dXJlIHdpdGggNC1maW5nZXIgZm9yIHN3aXRjaGluZyB3b3Jrc3BhY2Vcblx1MjAyMiBQaW5jaCB0byBzaG93IGRlc2t0b3Bcblx1MjAyMiBDb25maWd1cmUgc3BlZWQgb2YgZ2VzdHVyZXNcblx1MjAyMiBTdXBwb3J0IGZvciBYMTFcbiAgIFxuT24gWDExLCB5b3UgbmVlZCB0byBpbnN0YWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLXgxMS1nZXN0dXJlLWRhZW1vblxuXG5SZXBvcnQgYW55IGJ1Z3MvcmVxdWVzdHMgb24gR2l0SHViIChsaW5rIGRpcmVjdGx5IGJlbG93KVxuIiwKICAibmFtZSI6ICJHZXN0dXJlIEltcHJvdmVtZW50cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nZXN0dXJlSW1wcm92ZW1lbnRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLWdlc3R1cmUtaW1wcm92ZW1lbnRzIiwKICAidXVpZCI6ICJnZXN0dXJlSW1wcm92ZW1lbnRzQGdlc3R1cmVzIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "41": {"version": "19", "sha256": "06s4igjx5r7k01yvylr0clg8j2m6sdywn00hr5xdp1a9v2r5v5ry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdG91Y2hwYWQgZ2VzdHVyZXMgZm9yIFdheWxhbmQvWDExXG5cblRoaXMgZXh0ZW5zaW9uIGFkZHMgZm9sbG93aW5nIGZlYXR1cmVzOlxuXG5cdTIwMjIgU3dpdGNoIHdpbmRvd3MgZnJvbSBjdXJyZW50IHdvcmtzcGFjZSB1c2luZyAzLWZpbmdlciBob3Jpem9udGFsIHN3aXBlXG5cdTIwMjIgQ3ljbGljIGdlc3R1cmVzIGJldHdlZW4gRGVza3RvcC9PdmVydmlldy9BcHBHcmlkIHVzaW5nIDQgdmVydGljYWwgc3dpcGVcblx1MjAyMiBTd2l0Y2ggYXBwLXBhZ2VzIHVzaW5nIDMtZmluZ2VyIHN3aXBlIGdlc3R1cmUgb24gQXBwR3JpZFxuXHUyMDIyIFVubWF4aW1pemUvbWF4aW1pemUvZnVsbHNjcmVlbi9oYWxmLXRpbGluZyB1c2luZyAzLWZpbmdlciB2ZXJ0aWNhbCAmIGhvcml6b250YWwgZ2VzdHVyZVxuXHUyMDIyIE9wdGlvbmFsIG1pbmltaXplIGEgd2luZG93IGdlc3R1cmVcblx1MjAyMiBPdmVycmlkZSAzLWZpbmdlciBnZXN0dXJlIHdpdGggNC1maW5nZXIgZm9yIHN3aXRjaGluZyB3b3Jrc3BhY2Vcblx1MjAyMiBQaW5jaCB0byBzaG93IGRlc2t0b3Bcblx1MjAyMiBDb25maWd1cmUgc3BlZWQgb2YgZ2VzdHVyZXNcblx1MjAyMiBTdXBwb3J0IGZvciBYMTFcbiAgIFxuT24gWDExLCB5b3UgbmVlZCB0byBpbnN0YWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLXgxMS1nZXN0dXJlLWRhZW1vblxuXG5SZXBvcnQgYW55IGJ1Z3MvcmVxdWVzdHMgb24gR2l0SHViIChsaW5rIGRpcmVjdGx5IGJlbG93KVxuIiwKICAibmFtZSI6ICJHZXN0dXJlIEltcHJvdmVtZW50cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nZXN0dXJlSW1wcm92ZW1lbnRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLWdlc3R1cmUtaW1wcm92ZW1lbnRzIiwKICAidXVpZCI6ICJnZXN0dXJlSW1wcm92ZW1lbnRzQGdlc3R1cmVzIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "42": {"version": "20", "sha256": "17zqr5867jcf6lmkbg5h77la39nbd2afqm3b99ahc15lc3d1qvw7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdG91Y2hwYWQgZ2VzdHVyZXMgZm9yIFdheWxhbmQvWDExXG5cblRoaXMgZXh0ZW5zaW9uIGFkZHMgZm9sbG93aW5nIGZlYXR1cmVzOlxuXG5cdTIwMjIgU3dpdGNoIHdpbmRvd3MgZnJvbSBjdXJyZW50IHdvcmtzcGFjZSB1c2luZyAzLWZpbmdlciBob3Jpem9udGFsIHN3aXBlXG5cdTIwMjIgQ3ljbGljIGdlc3R1cmVzIGJldHdlZW4gRGVza3RvcC9PdmVydmlldy9BcHBHcmlkIHVzaW5nIDQgdmVydGljYWwgc3dpcGVcblx1MjAyMiBTd2l0Y2ggYXBwLXBhZ2VzIHVzaW5nIDMtZmluZ2VyIHN3aXBlIGdlc3R1cmUgb24gQXBwR3JpZFxuXHUyMDIyIFVubWF4aW1pemUvbWF4aW1pemUvZnVsbHNjcmVlbi9oYWxmLXRpbGluZyB1c2luZyAzLWZpbmdlciB2ZXJ0aWNhbCAmIGhvcml6b250YWwgZ2VzdHVyZVxuXHUyMDIyIE9wdGlvbmFsIG1pbmltaXplIGEgd2luZG93IGdlc3R1cmVcblx1MjAyMiBPdmVycmlkZSAzLWZpbmdlciBnZXN0dXJlIHdpdGggNC1maW5nZXIgZm9yIHN3aXRjaGluZyB3b3Jrc3BhY2Vcblx1MjAyMiBQaW5jaCB0byBzaG93IGRlc2t0b3Bcblx1MjAyMiBDb25maWd1cmUgc3BlZWQgb2YgZ2VzdHVyZXNcblx1MjAyMiBTdXBwb3J0IGZvciBYMTFcbiAgIFxuT24gWDExLCB5b3UgbmVlZCB0byBpbnN0YWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLXgxMS1nZXN0dXJlLWRhZW1vblxuXG5SZXBvcnQgYW55IGJ1Z3MvcmVxdWVzdHMgb24gR2l0SHViIChsaW5rIGRpcmVjdGx5IGJlbG93KVxuIiwKICAibmFtZSI6ICJHZXN0dXJlIEltcHJvdmVtZW50cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nZXN0dXJlSW1wcm92ZW1lbnRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcnNoYWRnYXZhbGkvZ25vbWUtZ2VzdHVyZS1pbXByb3ZlbWVudHMiLAogICJ1dWlkIjogImdlc3R1cmVJbXByb3ZlbWVudHNAZ2VzdHVyZXMiLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
 , {"uuid": "eclipse@blackjackshellac.ca", "name": "eclipse", "pname": "eclipse", "description": "eclipse clipboard interface with item encryption\n\nAdded encryption of clipboard items. Encrypted items can be\nsaved to disk in a folder of your choice. These items are persisted\nbetween sessions using openssl to encrypt the content.\n\nEclipse uses dbus to communicate with the gpaste daemon.\n\nThe following utilities are required,\n\n# for example, on fedora (add gpaste-ui for gpaste settings gui)\n$ sudo dnf install gpaste openssl\n# ubuntu\n$ sudo apt install gpaste openssl\n\nNow works with Gpaste 1 and Gpaste 2 on GS 3.36, 3.38 and 40\n\nIf updating the extension reports an ERROR it should work after the next reboot or if you logout and login again. If you're not running on Wayland you should be able to just restart the shell (Alt+F2,r).\n\nPlease report issues on github.\n", "link": "https://extensions.gnome.org/extension/4246/eclipse/", "shell_version_map": {"38": {"version": "8", "sha256": "09j5f8p23m4v2bdad582497r194z05x4izc2wywp9nhv1nldcs3n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImVjbGlwc2UgY2xpcGJvYXJkIGludGVyZmFjZSB3aXRoIGl0ZW0gZW5jcnlwdGlvblxuXG5BZGRlZCBlbmNyeXB0aW9uIG9mIGNsaXBib2FyZCBpdGVtcy4gRW5jcnlwdGVkIGl0ZW1zIGNhbiBiZVxuc2F2ZWQgdG8gZGlzayBpbiBhIGZvbGRlciBvZiB5b3VyIGNob2ljZS4gVGhlc2UgaXRlbXMgYXJlIHBlcnNpc3RlZFxuYmV0d2VlbiBzZXNzaW9ucyB1c2luZyBvcGVuc3NsIHRvIGVuY3J5cHQgdGhlIGNvbnRlbnQuXG5cbkVjbGlwc2UgdXNlcyBkYnVzIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIGdwYXN0ZSBkYWVtb24uXG5cblRoZSBmb2xsb3dpbmcgdXRpbGl0aWVzIGFyZSByZXF1aXJlZCxcblxuIyBmb3IgZXhhbXBsZSwgb24gZmVkb3JhIChhZGQgZ3Bhc3RlLXVpIGZvciBncGFzdGUgc2V0dGluZ3MgZ3VpKVxuJCBzdWRvIGRuZiBpbnN0YWxsIGdwYXN0ZSBvcGVuc3NsXG4jIHVidW50dVxuJCBzdWRvIGFwdCBpbnN0YWxsIGdwYXN0ZSBvcGVuc3NsXG5cbk5vdyB3b3JrcyB3aXRoIEdwYXN0ZSAxIGFuZCBHcGFzdGUgMiBvbiBHUyAzLjM2LCAzLjM4IGFuZCA0MFxuXG5JZiB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uIHJlcG9ydHMgYW4gRVJST1IgaXQgc2hvdWxkIHdvcmsgYWZ0ZXIgdGhlIG5leHQgcmVib290IG9yIGlmIHlvdSBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLiBJZiB5b3UncmUgbm90IHJ1bm5pbmcgb24gV2F5bGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8ganVzdCByZXN0YXJ0IHRoZSBzaGVsbCAoQWx0K0YyLHIpLlxuXG5QbGVhc2UgcmVwb3J0IGlzc3VlcyBvbiBnaXRodWIuXG4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlY2xpcHNlLWJsYWNramFja3NoZWxsYWMiLAogICJuYW1lIjogImVjbGlwc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZWNsaXBzZS1ibGFja2phY2tzaGVsbGFjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsYWNramFja3NoZWxsYWMvZWNsaXBzZSIsCiAgInV1aWQiOiAiZWNsaXBzZUBibGFja2phY2tzaGVsbGFjLmNhIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "09j5f8p23m4v2bdad582497r194z05x4izc2wywp9nhv1nldcs3n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImVjbGlwc2UgY2xpcGJvYXJkIGludGVyZmFjZSB3aXRoIGl0ZW0gZW5jcnlwdGlvblxuXG5BZGRlZCBlbmNyeXB0aW9uIG9mIGNsaXBib2FyZCBpdGVtcy4gRW5jcnlwdGVkIGl0ZW1zIGNhbiBiZVxuc2F2ZWQgdG8gZGlzayBpbiBhIGZvbGRlciBvZiB5b3VyIGNob2ljZS4gVGhlc2UgaXRlbXMgYXJlIHBlcnNpc3RlZFxuYmV0d2VlbiBzZXNzaW9ucyB1c2luZyBvcGVuc3NsIHRvIGVuY3J5cHQgdGhlIGNvbnRlbnQuXG5cbkVjbGlwc2UgdXNlcyBkYnVzIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIGdwYXN0ZSBkYWVtb24uXG5cblRoZSBmb2xsb3dpbmcgdXRpbGl0aWVzIGFyZSByZXF1aXJlZCxcblxuIyBmb3IgZXhhbXBsZSwgb24gZmVkb3JhIChhZGQgZ3Bhc3RlLXVpIGZvciBncGFzdGUgc2V0dGluZ3MgZ3VpKVxuJCBzdWRvIGRuZiBpbnN0YWxsIGdwYXN0ZSBvcGVuc3NsXG4jIHVidW50dVxuJCBzdWRvIGFwdCBpbnN0YWxsIGdwYXN0ZSBvcGVuc3NsXG5cbk5vdyB3b3JrcyB3aXRoIEdwYXN0ZSAxIGFuZCBHcGFzdGUgMiBvbiBHUyAzLjM2LCAzLjM4IGFuZCA0MFxuXG5JZiB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uIHJlcG9ydHMgYW4gRVJST1IgaXQgc2hvdWxkIHdvcmsgYWZ0ZXIgdGhlIG5leHQgcmVib290IG9yIGlmIHlvdSBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLiBJZiB5b3UncmUgbm90IHJ1bm5pbmcgb24gV2F5bGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8ganVzdCByZXN0YXJ0IHRoZSBzaGVsbCAoQWx0K0YyLHIpLlxuXG5QbGVhc2UgcmVwb3J0IGlzc3VlcyBvbiBnaXRodWIuXG4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlY2xpcHNlLWJsYWNramFja3NoZWxsYWMiLAogICJuYW1lIjogImVjbGlwc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZWNsaXBzZS1ibGFja2phY2tzaGVsbGFjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsYWNramFja3NoZWxsYWMvZWNsaXBzZSIsCiAgInV1aWQiOiAiZWNsaXBzZUBibGFja2phY2tzaGVsbGFjLmNhIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "audio-switcher@albertomosconi", "name": "Audio Switcher 40", "pname": "audio-switcher-40", "description": "Adds a switch for choosing audio input/output to the system menu in GNOME 40. (Makes InputSlider always visible)", "link": "https://extensions.gnome.org/extension/4248/audio-switcher-40/", "shell_version_map": {"38": {"version": "4", "sha256": "0mvc4f6i7vsqijq8l4adcixdyycfxmd7kvw13d5h0vx4hg6vam1g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIGlucHV0L291dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUgaW4gR05PTUUgNDAuIChNYWtlcyBJbnB1dFNsaWRlciBhbHdheXMgdmlzaWJsZSkiLAogICJuYW1lIjogIkF1ZGlvIFN3aXRjaGVyIDQwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vYWxiZXJ0b21vc2NvbmkvYXVkaW8tc3dpdGNoZXIiLAogICJ1dWlkIjogImF1ZGlvLXN3aXRjaGVyQGFsYmVydG9tb3Njb25pIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "0mvc4f6i7vsqijq8l4adcixdyycfxmd7kvw13d5h0vx4hg6vam1g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIGlucHV0L291dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUgaW4gR05PTUUgNDAuIChNYWtlcyBJbnB1dFNsaWRlciBhbHdheXMgdmlzaWJsZSkiLAogICJuYW1lIjogIkF1ZGlvIFN3aXRjaGVyIDQwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vYWxiZXJ0b21vc2NvbmkvYXVkaW8tc3dpdGNoZXIiLAogICJ1dWlkIjogImF1ZGlvLXN3aXRjaGVyQGFsYmVydG9tb3Njb25pIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "shell-configurator@adeswanta", "name": "Shell Configurator", "pname": "shell-configurator", "description": "Configure and customize GNOME Shell with advanced settings.", "link": "https://extensions.gnome.org/extension/4254/shell-configurator/", "shell_version_map": {"38": {"version": "4", "sha256": "18dcbxizgj295v34m2dsz1dq9wxlk1s9cgqcgwd1k6r2v2f4p00z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyZSBhbmQgY3VzdG9taXplIEdOT01FIFNoZWxsIHdpdGggYWR2YW5jZWQgc2V0dGluZ3MuIiwKICAiaWQiOiAic2hlbGwtY29uZmlndXJhdG9yIiwKICAiaW5zdGFsbC10eXBlIjogIlVzZXIiLAogICJuYW1lIjogIlNoZWxsIENvbmZpZ3VyYXRvciIsCiAgInJlbGVhc2Utc3RhdGUiOiAicmVsZWFzZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYWRlc3dhbnRhVGVjaHMvc2hlbGwtY29uZmlndXJhdG9yIiwKICAidXVpZCI6ICJzaGVsbC1jb25maWd1cmF0b3JAYWRlc3dhbnRhIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "18dcbxizgj295v34m2dsz1dq9wxlk1s9cgqcgwd1k6r2v2f4p00z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyZSBhbmQgY3VzdG9taXplIEdOT01FIFNoZWxsIHdpdGggYWR2YW5jZWQgc2V0dGluZ3MuIiwKICAiaWQiOiAic2hlbGwtY29uZmlndXJhdG9yIiwKICAiaW5zdGFsbC10eXBlIjogIlVzZXIiLAogICJuYW1lIjogIlNoZWxsIENvbmZpZ3VyYXRvciIsCiAgInJlbGVhc2Utc3RhdGUiOiAicmVsZWFzZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYWRlc3dhbnRhVGVjaHMvc2hlbGwtY29uZmlndXJhdG9yIiwKICAidXVpZCI6ICJzaGVsbC1jb25maWd1cmF0b3JAYWRlc3dhbnRhIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
@@ -506,12 +506,12 @@
 , {"uuid": "rippleremove@slippinggitty", "name": "Ripple Remove", "pname": "ripple-remove", "description": "Removes the ripple effect from the Activities hot corner", "link": "https://extensions.gnome.org/extension/4264/ripple-remove/", "shell_version_map": {"40": {"version": "1", "sha256": "1dnk8nfnv5hp8c11fzhn5vscicij4lk9i1vz25fz6sjc3rn1a9pq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgdGhlIHJpcHBsZSBlZmZlY3QgZnJvbSB0aGUgQWN0aXZpdGllcyBob3QgY29ybmVyIiwKICAibmFtZSI6ICJSaXBwbGUgUmVtb3ZlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5zbGlwcGluZ2l0dHkucmlwcGxlcmVtb3ZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJyaXBwbGVyZW1vdmVAc2xpcHBpbmdnaXR0eSIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "quickmenu@slippinggitty", "name": "Quick Menu [DEAD]", "pname": "quick-menu", "description": "This is a fork of fedoramenu (which is a fork of Big Sur Menu by fausto) that scrubs references of Fedora by replacing the icon with the GNOME logo.\n\nQuick Menu is a panel applet similar to the Apple menu found on macOS.\n\nEDIT: This extension's purpose is dead. Check out Tofu Menu, which is fedoramenu, but with the ability to change the icon. https://extensions.gnome.org/extension/4272/tofu-menu/", "link": "https://extensions.gnome.org/extension/4266/quick-menu/", "shell_version_map": {"40": {"version": "1", "sha256": "1qla029n79366a7xvg2d9v0wa7272bqj40ggvbjrfsbd8x066aca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgYSBmb3JrIG9mIGZlZG9yYW1lbnUgKHdoaWNoIGlzIGEgZm9yayBvZiBCaWcgU3VyIE1lbnUgYnkgZmF1c3RvKSB0aGF0IHNjcnVicyByZWZlcmVuY2VzIG9mIEZlZG9yYSBieSByZXBsYWNpbmcgdGhlIGljb24gd2l0aCB0aGUgR05PTUUgbG9nby5cblxuUXVpY2sgTWVudSBpcyBhIHBhbmVsIGFwcGxldCBzaW1pbGFyIHRvIHRoZSBBcHBsZSBtZW51IGZvdW5kIG9uIG1hY09TLlxuXG5FRElUOiBUaGlzIGV4dGVuc2lvbidzIHB1cnBvc2UgaXMgZGVhZC4gQ2hlY2sgb3V0IFRvZnUgTWVudSwgd2hpY2ggaXMgZmVkb3JhbWVudSwgYnV0IHdpdGggdGhlIGFiaWxpdHkgdG8gY2hhbmdlIHRoZSBpY29uLiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi80MjcyL3RvZnUtbWVudS8iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJxdWljay1tZW51IiwKICAibmFtZSI6ICJRdWljayBNZW51IFtERUFEXSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuc2xpcHBpbmdpdHR5LnF1aWNrLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2xpcHBpbmdHaXR0eS9xdWlja21lbnUiLAogICJ1dWlkIjogInF1aWNrbWVudUBzbGlwcGluZ2dpdHR5IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
 , {"uuid": "show-desktop-applet@valent-in", "name": "Show Desktop Applet", "pname": "show-desktop-applet", "description": "Minimize/unminimize all open windows with a single click.\n\nForked from https://extensions.gnome.org/extension/1194/show-desktop-button/\n\nFeatures:\n- Windows-like behavior\n- Can be placed at the end of panel\n- Hotkey support (can be activated in settings)", "link": "https://extensions.gnome.org/extension/4267/show-desktop-applet/", "shell_version_map": {"38": {"version": "3", "sha256": "1cm3mfcijjgm9wy2m5hvc6q4ra4b4nqpwl8zhvpf2gxp7vrg4l2y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLlxuXG5Gb3JrZWQgZnJvbSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTk0L3Nob3ctZGVza3RvcC1idXR0b24vXG5cbkZlYXR1cmVzOlxuLSBXaW5kb3dzLWxpa2UgYmVoYXZpb3Jcbi0gQ2FuIGJlIHBsYWNlZCBhdCB0aGUgZW5kIG9mIHBhbmVsXG4tIEhvdGtleSBzdXBwb3J0IChjYW4gYmUgYWN0aXZhdGVkIGluIHNldHRpbmdzKSIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYXBwbGV0IiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWFwcGxldCIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEFwcGxldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9WYWxlbnQtaW4vU2hvdy1EZXNrdG9wLUFwcGxldCIsCiAgInV1aWQiOiAic2hvdy1kZXNrdG9wLWFwcGxldEB2YWxlbnQtaW4iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "1cm3mfcijjgm9wy2m5hvc6q4ra4b4nqpwl8zhvpf2gxp7vrg4l2y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLlxuXG5Gb3JrZWQgZnJvbSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTk0L3Nob3ctZGVza3RvcC1idXR0b24vXG5cbkZlYXR1cmVzOlxuLSBXaW5kb3dzLWxpa2UgYmVoYXZpb3Jcbi0gQ2FuIGJlIHBsYWNlZCBhdCB0aGUgZW5kIG9mIHBhbmVsXG4tIEhvdGtleSBzdXBwb3J0IChjYW4gYmUgYWN0aXZhdGVkIGluIHNldHRpbmdzKSIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYXBwbGV0IiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWFwcGxldCIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEFwcGxldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9WYWxlbnQtaW4vU2hvdy1EZXNrdG9wLUFwcGxldCIsCiAgInV1aWQiOiAic2hvdy1kZXNrdG9wLWFwcGxldEB2YWxlbnQtaW4iLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "1cm3mfcijjgm9wy2m5hvc6q4ra4b4nqpwl8zhvpf2gxp7vrg4l2y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLlxuXG5Gb3JrZWQgZnJvbSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTk0L3Nob3ctZGVza3RvcC1idXR0b24vXG5cbkZlYXR1cmVzOlxuLSBXaW5kb3dzLWxpa2UgYmVoYXZpb3Jcbi0gQ2FuIGJlIHBsYWNlZCBhdCB0aGUgZW5kIG9mIHBhbmVsXG4tIEhvdGtleSBzdXBwb3J0IChjYW4gYmUgYWN0aXZhdGVkIGluIHNldHRpbmdzKSIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYXBwbGV0IiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWFwcGxldCIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEFwcGxldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9WYWxlbnQtaW4vU2hvdy1EZXNrdG9wLUFwcGxldCIsCiAgInV1aWQiOiAic2hvdy1kZXNrdG9wLWFwcGxldEB2YWxlbnQtaW4iLAogICJ2ZXJzaW9uIjogMwp9"}}}
-, {"uuid": "AlphabeticalAppGrid@stuarthayhurst", "name": "Alphabetical App Grid", "pname": "alphabetical-app-grid", "description": "Restore the alphabetical ordering of the app grid", "link": "https://extensions.gnome.org/extension/4269/alphabetical-app-grid/", "shell_version_map": {"38": {"version": "20", "sha256": "1yb8v4qld98mnvx77m8xfm49jdnm636j5z7p0mkgjbg586f67dmi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvYWxwaGFiZXRpY2FsLWdyaWQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAidmVyc2lvbiI6IDIwCn0="}, "40": {"version": "20", "sha256": "1yb8v4qld98mnvx77m8xfm49jdnm636j5z7p0mkgjbg586f67dmi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvYWxwaGFiZXRpY2FsLWdyaWQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAidmVyc2lvbiI6IDIwCn0="}, "41": {"version": "20", "sha256": "1yb8v4qld98mnvx77m8xfm49jdnm636j5z7p0mkgjbg586f67dmi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvYWxwaGFiZXRpY2FsLWdyaWQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAidmVyc2lvbiI6IDIwCn0="}, "42": {"version": "20", "sha256": "1yb8v4qld98mnvx77m8xfm49jdnm636j5z7p0mkgjbg586f67dmi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvYWxwaGFiZXRpY2FsLWdyaWQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAidmVyc2lvbiI6IDIwCn0="}}}
+, {"uuid": "AlphabeticalAppGrid@stuarthayhurst", "name": "Alphabetical App Grid", "pname": "alphabetical-app-grid", "description": "Restore the alphabetical ordering of the app grid", "link": "https://extensions.gnome.org/extension/4269/alphabetical-app-grid/", "shell_version_map": {"38": {"version": "23", "sha256": "057w7k87q8av43blv66cbw71c7lld16f56nfazwka4l5dl4mpzc8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvYWxwaGFiZXRpY2FsLWdyaWQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAidmVyc2lvbiI6IDIzCn0="}, "40": {"version": "23", "sha256": "057w7k87q8av43blv66cbw71c7lld16f56nfazwka4l5dl4mpzc8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvYWxwaGFiZXRpY2FsLWdyaWQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAidmVyc2lvbiI6IDIzCn0="}, "41": {"version": "23", "sha256": "057w7k87q8av43blv66cbw71c7lld16f56nfazwka4l5dl4mpzc8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvYWxwaGFiZXRpY2FsLWdyaWQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAidmVyc2lvbiI6IDIzCn0="}, "42": {"version": "23", "sha256": "057w7k87q8av43blv66cbw71c7lld16f56nfazwka4l5dl4mpzc8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvYWxwaGFiZXRpY2FsLWdyaWQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAidmVyc2lvbiI6IDIzCn0="}}}
 , {"uuid": "tofumenu@tofu", "name": "Tofu Menu", "pname": "tofu-menu", "description": "Quick access menu for the GNOME panel with options that help ease the workflow for newcomers and power users alike.\n\nhttps://github.com/tofutech/tofumenu", "link": "https://extensions.gnome.org/extension/4272/tofu-menu/", "shell_version_map": {"40": {"version": "2", "sha256": "05ndbjvvz0v1y8iq6ngqylz4z1ld6q5ibhkr5dh24wqc4wiky30v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyBtZW51IGZvciB0aGUgR05PTUUgcGFuZWwgd2l0aCBvcHRpb25zIHRoYXQgaGVscCBlYXNlIHRoZSB3b3JrZmxvdyBmb3IgbmV3Y29tZXJzIGFuZCBwb3dlciB1c2VycyBhbGlrZS5cblxuaHR0cHM6Ly9naXRodWIuY29tL3RvZnV0ZWNoL3RvZnVtZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmVkb3JhLW1lbnUiLAogICJuYW1lIjogIlRvZnUgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcudG9mdS5mZWRvcmEtbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidG9mdW1lbnVAdG9mdSIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "cryptostash@filidorwiese.nl", "name": "CryptoStash", "pname": "cryptostash", "description": "Keep an eye on the real time value of your crypto coins collections.\n\nYou can create multiple \"stashes\" (portfolios) of coins and monitor the accumulated value in USD or EUR. Or if you prefer, you can simply track the current value of your favorite coin.", "link": "https://extensions.gnome.org/extension/4276/cryptostash/", "shell_version_map": {"38": {"version": "4", "sha256": "0n1452ky1dppcxazgqxv5jc91l4piwp64rmc9b41ak3792j1sgbw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvcl91cmwiOiAiaHR0cHM6Ly9maWxpZG9yd2llc2UubmwiLAogICJkZXNjcmlwdGlvbiI6ICJLZWVwIGFuIGV5ZSBvbiB0aGUgcmVhbCB0aW1lIHZhbHVlIG9mIHlvdXIgY3J5cHRvIGNvaW5zIGNvbGxlY3Rpb25zLlxuXG5Zb3UgY2FuIGNyZWF0ZSBtdWx0aXBsZSBcInN0YXNoZXNcIiAocG9ydGZvbGlvcykgb2YgY29pbnMgYW5kIG1vbml0b3IgdGhlIGFjY3VtdWxhdGVkIHZhbHVlIGluIFVTRCBvciBFVVIuIE9yIGlmIHlvdSBwcmVmZXIsIHlvdSBjYW4gc2ltcGx5IHRyYWNrIHRoZSBjdXJyZW50IHZhbHVlIG9mIHlvdXIgZmF2b3JpdGUgY29pbi4iLAogICJuYW1lIjogIkNyeXB0b1N0YXNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNyeXB0by1zdGFzaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ0YWciOiAxLjMsCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmlsaWRvcndpZXNlL2dub21lLXNoZWxsLWNyeXB0by1zdGFzaCIsCiAgInV1aWQiOiAiY3J5cHRvc3Rhc2hAZmlsaWRvcndpZXNlLm5sIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "xmlfix@pwall.github.com", "name": "XML-Fix", "pname": "xml-fix", "description": "Fixes the XML-Codes displaying instead of the characters on notifications.", "link": "https://extensions.gnome.org/extension/4279/xml-fix/", "shell_version_map": {"38": {"version": "2", "sha256": "1c9qa3ky873hkckylsbv0s7q9bmsnia7h8mlc36i7xz7h1ml6fpx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeGVzIHRoZSBYTUwtQ29kZXMgZGlzcGxheWluZyBpbnN0ZWFkIG9mIHRoZSBjaGFyYWN0ZXJzIG9uIG5vdGlmaWNhdGlvbnMuIiwKICAibmFtZSI6ICJYTUwtRml4IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFdhbGwyMjIyL1hNTEZpeCIsCiAgInV1aWQiOiAieG1sZml4QHB3YWxsLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "gnometoggle@foreverxml.github.io", "name": "Gnome Toggle", "pname": "gnome-toggle", "description": "Turn on your GNOME dark mode! (For up-to-date versions, download from GitHub.)", "link": "https://extensions.gnome.org/extension/4287/gnome-toggle/", "shell_version_map": {"38": {"version": "1", "sha256": "1a1qvrdq0xglr0lf4pglaxhn03k9qxhh77n4g0d51r419l4y6n2r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR1cm4gb24geW91ciBHTk9NRSBkYXJrIG1vZGUhIChGb3IgdXAtdG8tZGF0ZSB2ZXJzaW9ucywgZG93bmxvYWQgZnJvbSBHaXRIdWIuKSIsCiAgIm5hbWUiOiAiR25vbWUgVG9nZ2xlIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImZvcmV2ZXJ4bWxAdHV0YS5pbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mb3JldmVyeG1sL2dub21lLXRvZ2dsZSIsCiAgInV1aWQiOiAiZ25vbWV0b2dnbGVAZm9yZXZlcnhtbC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMQp9"}, "40": {"version": "1", "sha256": "1a1qvrdq0xglr0lf4pglaxhn03k9qxhh77n4g0d51r419l4y6n2r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR1cm4gb24geW91ciBHTk9NRSBkYXJrIG1vZGUhIChGb3IgdXAtdG8tZGF0ZSB2ZXJzaW9ucywgZG93bmxvYWQgZnJvbSBHaXRIdWIuKSIsCiAgIm5hbWUiOiAiR25vbWUgVG9nZ2xlIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImZvcmV2ZXJ4bWxAdHV0YS5pbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mb3JldmVyeG1sL2dub21lLXRvZ2dsZSIsCiAgInV1aWQiOiAiZ25vbWV0b2dnbGVAZm9yZXZlcnhtbC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMQp9"}}}
-, {"uuid": "instantworkspaceswitcher@amalantony.net", "name": "Disable Workspace Switch Animation for GNOME 40+", "pname": "disable-workspace-switch-animation-for-gnome-40", "description": "Disables the workspace switch animation while preserving all other animations - instantly switch between workspaces with keyboard shortcuts.", "link": "https://extensions.gnome.org/extension/4290/disable-workspace-switch-animation-for-gnome-40/", "shell_version_map": {"40": {"version": "3", "sha256": "13jbmsq3h5d5isp57pyrkds4dr6isvnsglg0ivhkjblnx0cqyk94", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHRoZSB3b3Jrc3BhY2Ugc3dpdGNoIGFuaW1hdGlvbiB3aGlsZSBwcmVzZXJ2aW5nIGFsbCBvdGhlciBhbmltYXRpb25zIC0gaW5zdGFudGx5IHN3aXRjaCBiZXR3ZWVuIHdvcmtzcGFjZXMgd2l0aCBrZXlib2FyZCBzaG9ydGN1dHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIFdvcmtzcGFjZSBTd2l0Y2ggQW5pbWF0aW9uIGZvciBHTk9NRSA0MCsiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtYWxhbnRvbnkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWluc3RhbnQtd29ya3NwYWNlLXN3aXRjaGVyIiwKICAidXVpZCI6ICJpbnN0YW50d29ya3NwYWNlc3dpdGNoZXJAYW1hbGFudG9ueS5uZXQiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "13jbmsq3h5d5isp57pyrkds4dr6isvnsglg0ivhkjblnx0cqyk94", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHRoZSB3b3Jrc3BhY2Ugc3dpdGNoIGFuaW1hdGlvbiB3aGlsZSBwcmVzZXJ2aW5nIGFsbCBvdGhlciBhbmltYXRpb25zIC0gaW5zdGFudGx5IHN3aXRjaCBiZXR3ZWVuIHdvcmtzcGFjZXMgd2l0aCBrZXlib2FyZCBzaG9ydGN1dHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIFdvcmtzcGFjZSBTd2l0Y2ggQW5pbWF0aW9uIGZvciBHTk9NRSA0MCsiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtYWxhbnRvbnkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWluc3RhbnQtd29ya3NwYWNlLXN3aXRjaGVyIiwKICAidXVpZCI6ICJpbnN0YW50d29ya3NwYWNlc3dpdGNoZXJAYW1hbGFudG9ueS5uZXQiLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "instantworkspaceswitcher@amalantony.net", "name": "Disable Workspace Switch Animation for GNOME 40+", "pname": "disable-workspace-switch-animation-for-gnome-40", "description": "Disables the workspace switch animation while preserving all other animations - instantly switch between workspaces with keyboard shortcuts.", "link": "https://extensions.gnome.org/extension/4290/disable-workspace-switch-animation-for-gnome-40/", "shell_version_map": {"40": {"version": "6", "sha256": "0kc09n6xna31nb3k5m4wvfm2x3qxs04dcjygss3b1d8x6wm15ha9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHRoZSB3b3Jrc3BhY2Ugc3dpdGNoIGFuaW1hdGlvbiB3aGlsZSBwcmVzZXJ2aW5nIGFsbCBvdGhlciBhbmltYXRpb25zIC0gaW5zdGFudGx5IHN3aXRjaCBiZXR3ZWVuIHdvcmtzcGFjZXMgd2l0aCBrZXlib2FyZCBzaG9ydGN1dHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIFdvcmtzcGFjZSBTd2l0Y2ggQW5pbWF0aW9uIGZvciBHTk9NRSA0MCsiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWFsYW50b255L2dub21lLXNoZWxsLWV4dGVuc2lvbi1pbnN0YW50LXdvcmtzcGFjZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiaW5zdGFudHdvcmtzcGFjZXN3aXRjaGVyQGFtYWxhbnRvbnkubmV0IiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "0kc09n6xna31nb3k5m4wvfm2x3qxs04dcjygss3b1d8x6wm15ha9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHRoZSB3b3Jrc3BhY2Ugc3dpdGNoIGFuaW1hdGlvbiB3aGlsZSBwcmVzZXJ2aW5nIGFsbCBvdGhlciBhbmltYXRpb25zIC0gaW5zdGFudGx5IHN3aXRjaCBiZXR3ZWVuIHdvcmtzcGFjZXMgd2l0aCBrZXlib2FyZCBzaG9ydGN1dHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIFdvcmtzcGFjZSBTd2l0Y2ggQW5pbWF0aW9uIGZvciBHTk9NRSA0MCsiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWFsYW50b255L2dub21lLXNoZWxsLWV4dGVuc2lvbi1pbnN0YW50LXdvcmtzcGFjZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiaW5zdGFudHdvcmtzcGFjZXN3aXRjaGVyQGFtYWxhbnRvbnkubmV0IiwKICAidmVyc2lvbiI6IDYKfQ=="}, "42": {"version": "6", "sha256": "0kc09n6xna31nb3k5m4wvfm2x3qxs04dcjygss3b1d8x6wm15ha9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHRoZSB3b3Jrc3BhY2Ugc3dpdGNoIGFuaW1hdGlvbiB3aGlsZSBwcmVzZXJ2aW5nIGFsbCBvdGhlciBhbmltYXRpb25zIC0gaW5zdGFudGx5IHN3aXRjaCBiZXR3ZWVuIHdvcmtzcGFjZXMgd2l0aCBrZXlib2FyZCBzaG9ydGN1dHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIFdvcmtzcGFjZSBTd2l0Y2ggQW5pbWF0aW9uIGZvciBHTk9NRSA0MCsiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWFsYW50b255L2dub21lLXNoZWxsLWV4dGVuc2lvbi1pbnN0YW50LXdvcmtzcGFjZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiaW5zdGFudHdvcmtzcGFjZXN3aXRjaGVyQGFtYWxhbnRvbnkubmV0IiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "top-panel-notification-icons@5th0.github.com", "name": "Top Panel Notification Icons", "pname": "top-panel-notification-icons", "description": "Display notification icons in the Top", "link": "https://extensions.gnome.org/extension/4293/top-panel-notification-icons/", "shell_version_map": {"38": {"version": "1", "sha256": "0s84r45nc1kyv6sc6a9jbxv981f1ih8g2nfdzrzd33n3032f30px", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgbm90aWZpY2F0aW9uIGljb25zIGluIHRoZSBUb3AiLAogICJuYW1lIjogIlRvcCBQYW5lbCBOb3RpZmljYXRpb24gSWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRvcC1wYW5lbC1ub3RpZmljYXRpb24taWNvbnNANXRoMC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "1", "sha256": "0s84r45nc1kyv6sc6a9jbxv981f1ih8g2nfdzrzd33n3032f30px", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgbm90aWZpY2F0aW9uIGljb25zIGluIHRoZSBUb3AiLAogICJuYW1lIjogIlRvcCBQYW5lbCBOb3RpZmljYXRpb24gSWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRvcC1wYW5lbC1ub3RpZmljYXRpb24taWNvbnNANXRoMC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
 , {"uuid": "custom-menu-panel@AndreaBenini", "name": "custom-menu-panel", "pname": "custom-menu-panel", "description": "Quick custom menu for launching your favorite applications", "link": "https://extensions.gnome.org/extension/4295/custom-menu-panel/", "shell_version_map": {"40": {"version": "2", "sha256": "12d8p8cmsq93pmyd6y07jx7r0ls4h7pfqlhp8bvmsw48gmiv5sq8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGN1c3RvbSBtZW51IGZvciBsYXVuY2hpbmcgeW91ciBmYXZvcml0ZSBhcHBsaWNhdGlvbnMiLAogICJuYW1lIjogImN1c3RvbS1tZW51LXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJjdXN0b20tbWVudS1wYW5lbEBBbmRyZWFCZW5pbmkiLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "clean-system-menu@astrapi.de", "name": "Clean System Menu", "pname": "clean-system-menu", "description": "Cleanup the System Menu from Power Options", "link": "https://extensions.gnome.org/extension/4298/clean-system-menu/", "shell_version_map": {"40": {"version": "4", "sha256": "1x3fvi8qbbbqa9nc5xqp7ql2djcrch2w5azw0xq1dampdgz1976q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsZWFudXAgdGhlIFN5c3RlbSBNZW51IGZyb20gUG93ZXIgT3B0aW9ucyIsCiAgIm5hbWUiOiAiQ2xlYW4gU3lzdGVtIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvYXN0cmFwaS9jbGVhbi1zeXN0ZW0tbWVudSIsCiAgInV1aWQiOiAiY2xlYW4tc3lzdGVtLW1lbnVAYXN0cmFwaS5kZSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
@@ -528,17 +528,17 @@
 , {"uuid": "ideapad-mode@annexhack.inceptive.ru", "name": "ideapad mode", "pname": "ideapad-mode", "description": "Chargning mode indicator for laptops. Allows to switch the charging mode from conservative or healthy to normal mode. Indicates also which mode you are using now. Works on Lenovo Slim 7.\n\nPlease Report Problems or issues on Gitlab at:\n\nhttps://gitlab.com/annexhack/conservation-mode-lenovo", "link": "https://extensions.gnome.org/extension/4331/ideapad-mode/", "shell_version_map": {"40": {"version": "4", "sha256": "13yrdgly54bbpx7f23h929mq86nyl716kpa426h4np08g8w4rzb1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYXJnbmluZyBtb2RlIGluZGljYXRvciBmb3IgbGFwdG9wcy4gQWxsb3dzIHRvIHN3aXRjaCB0aGUgY2hhcmdpbmcgbW9kZSBmcm9tIGNvbnNlcnZhdGl2ZSBvciBoZWFsdGh5IHRvIG5vcm1hbCBtb2RlLiBJbmRpY2F0ZXMgYWxzbyB3aGljaCBtb2RlIHlvdSBhcmUgdXNpbmcgbm93LiBXb3JrcyBvbiBMZW5vdm8gU2xpbSA3LlxuXG5QbGVhc2UgUmVwb3J0IFByb2JsZW1zIG9yIGlzc3VlcyBvbiBHaXRsYWIgYXQ6XG5cbmh0dHBzOi8vZ2l0bGFiLmNvbS9hbm5leGhhY2svY29uc2VydmF0aW9uLW1vZGUtbGVub3ZvIiwKICAibmFtZSI6ICJpZGVhcGFkIG1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9hbm5leGhhY2svY29uc2VydmF0aW9uLW1vZGUtbGVub3ZvIiwKICAidXVpZCI6ICJpZGVhcGFkLW1vZGVAYW5uZXhoYWNrLmluY2VwdGl2ZS5ydSIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "13yrdgly54bbpx7f23h929mq86nyl716kpa426h4np08g8w4rzb1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYXJnbmluZyBtb2RlIGluZGljYXRvciBmb3IgbGFwdG9wcy4gQWxsb3dzIHRvIHN3aXRjaCB0aGUgY2hhcmdpbmcgbW9kZSBmcm9tIGNvbnNlcnZhdGl2ZSBvciBoZWFsdGh5IHRvIG5vcm1hbCBtb2RlLiBJbmRpY2F0ZXMgYWxzbyB3aGljaCBtb2RlIHlvdSBhcmUgdXNpbmcgbm93LiBXb3JrcyBvbiBMZW5vdm8gU2xpbSA3LlxuXG5QbGVhc2UgUmVwb3J0IFByb2JsZW1zIG9yIGlzc3VlcyBvbiBHaXRsYWIgYXQ6XG5cbmh0dHBzOi8vZ2l0bGFiLmNvbS9hbm5leGhhY2svY29uc2VydmF0aW9uLW1vZGUtbGVub3ZvIiwKICAibmFtZSI6ICJpZGVhcGFkIG1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9hbm5leGhhY2svY29uc2VydmF0aW9uLW1vZGUtbGVub3ZvIiwKICAidXVpZCI6ICJpZGVhcGFkLW1vZGVAYW5uZXhoYWNrLmluY2VwdGl2ZS5ydSIsCiAgInZlcnNpb24iOiA0Cn0="}, "42": {"version": "4", "sha256": "13yrdgly54bbpx7f23h929mq86nyl716kpa426h4np08g8w4rzb1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYXJnbmluZyBtb2RlIGluZGljYXRvciBmb3IgbGFwdG9wcy4gQWxsb3dzIHRvIHN3aXRjaCB0aGUgY2hhcmdpbmcgbW9kZSBmcm9tIGNvbnNlcnZhdGl2ZSBvciBoZWFsdGh5IHRvIG5vcm1hbCBtb2RlLiBJbmRpY2F0ZXMgYWxzbyB3aGljaCBtb2RlIHlvdSBhcmUgdXNpbmcgbm93LiBXb3JrcyBvbiBMZW5vdm8gU2xpbSA3LlxuXG5QbGVhc2UgUmVwb3J0IFByb2JsZW1zIG9yIGlzc3VlcyBvbiBHaXRsYWIgYXQ6XG5cbmh0dHBzOi8vZ2l0bGFiLmNvbS9hbm5leGhhY2svY29uc2VydmF0aW9uLW1vZGUtbGVub3ZvIiwKICAibmFtZSI6ICJpZGVhcGFkIG1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9hbm5leGhhY2svY29uc2VydmF0aW9uLW1vZGUtbGVub3ZvIiwKICAidXVpZCI6ICJpZGVhcGFkLW1vZGVAYW5uZXhoYWNrLmluY2VwdGl2ZS5ydSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
 , {"uuid": "ubuntu-yaru-appearance@itzlightyhd", "name": "Ubuntu Appearance (GNOME 40)", "pname": "ubuntu-appearance-gnome-40", "description": "Adds a toggle between the default Ubuntu themes on GNOME 40. Forked from https://github.com/Muqtxdir/yaru-remix-theme-toggle.\n\nIt requires the `gnome-shell-extension-prefs` package installed on your Linux environment.", "link": "https://extensions.gnome.org/extension/4335/ubuntu-appearance-gnome-40/", "shell_version_map": {"40": {"version": "1", "sha256": "16068sihwydg99w82nw6qr3lrnq1vh8jl8fbr3q27i3zyds4xyja", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvcnMiOiBbCiAgICAiQXBleGllRGV2ZWxvcG1lbnQiLAogICAgIkl0ekxpZ2h0eUhEIgogIF0sCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSB0b2dnbGUgYmV0d2VlbiB0aGUgZGVmYXVsdCBVYnVudHUgdGhlbWVzIG9uIEdOT01FIDQwLiBGb3JrZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vTXVxdHhkaXIveWFydS1yZW1peC10aGVtZS10b2dnbGUuXG5cbkl0IHJlcXVpcmVzIHRoZSBgZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXByZWZzYCBwYWNrYWdlIGluc3RhbGxlZCBvbiB5b3VyIExpbnV4IGVudmlyb25tZW50LiIsCiAgIm5hbWUiOiAiVWJ1bnR1IEFwcGVhcmFuY2UgKEdOT01FIDQwKSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9BcGV4aWVEZXZlbG9wbWVudC91YnVudHUteWFydS1hcHBlYXJhbmNlIiwKICAidXVpZCI6ICJ1YnVudHUteWFydS1hcHBlYXJhbmNlQGl0emxpZ2h0eWhkIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
 , {"uuid": "desktopicons-neo@darkdemon", "name": "Desktop Icons: Neo", "pname": "desktop-icons-neo", "description": "This adds desktop icons to GNOME. A fork of Desktop Icons NG with a massive amount of customizations (like icon shapes and curved corners), features, bug fixes, and overall polish.", "link": "https://extensions.gnome.org/extension/4337/desktop-icons-neo/", "shell_version_map": {"38": {"version": "6", "sha256": "1ppbhr9qshc9wmk9y8y4nsi1rm65xy5q72v1sg1nq6sz3r45imml", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgYWRkcyBkZXNrdG9wIGljb25zIHRvIEdOT01FLiBBIGZvcmsgb2YgRGVza3RvcCBJY29ucyBORyB3aXRoIGEgbWFzc2l2ZSBhbW91bnQgb2YgY3VzdG9taXphdGlvbnMgKGxpa2UgaWNvbiBzaGFwZXMgYW5kIGN1cnZlZCBjb3JuZXJzKSwgZmVhdHVyZXMsIGJ1ZyBmaXhlcywgYW5kIG92ZXJhbGwgcG9saXNoLiIsCiAgIm5hbWUiOiAiRGVza3RvcCBJY29uczogTmVvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ERU0wTkFzc2lzc2FuNy9kZXNrdG9wLWljb25zLW5lbyIsCiAgInV1aWQiOiAiZGVza3RvcGljb25zLW5lb0BkYXJrZGVtb24iLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "1ppbhr9qshc9wmk9y8y4nsi1rm65xy5q72v1sg1nq6sz3r45imml", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgYWRkcyBkZXNrdG9wIGljb25zIHRvIEdOT01FLiBBIGZvcmsgb2YgRGVza3RvcCBJY29ucyBORyB3aXRoIGEgbWFzc2l2ZSBhbW91bnQgb2YgY3VzdG9taXphdGlvbnMgKGxpa2UgaWNvbiBzaGFwZXMgYW5kIGN1cnZlZCBjb3JuZXJzKSwgZmVhdHVyZXMsIGJ1ZyBmaXhlcywgYW5kIG92ZXJhbGwgcG9saXNoLiIsCiAgIm5hbWUiOiAiRGVza3RvcCBJY29uczogTmVvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ERU0wTkFzc2lzc2FuNy9kZXNrdG9wLWljb25zLW5lbyIsCiAgInV1aWQiOiAiZGVza3RvcGljb25zLW5lb0BkYXJrZGVtb24iLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "1ppbhr9qshc9wmk9y8y4nsi1rm65xy5q72v1sg1nq6sz3r45imml", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgYWRkcyBkZXNrdG9wIGljb25zIHRvIEdOT01FLiBBIGZvcmsgb2YgRGVza3RvcCBJY29ucyBORyB3aXRoIGEgbWFzc2l2ZSBhbW91bnQgb2YgY3VzdG9taXphdGlvbnMgKGxpa2UgaWNvbiBzaGFwZXMgYW5kIGN1cnZlZCBjb3JuZXJzKSwgZmVhdHVyZXMsIGJ1ZyBmaXhlcywgYW5kIG92ZXJhbGwgcG9saXNoLiIsCiAgIm5hbWUiOiAiRGVza3RvcCBJY29uczogTmVvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ERU0wTkFzc2lzc2FuNy9kZXNrdG9wLWljb25zLW5lbyIsCiAgInV1aWQiOiAiZGVza3RvcGljb25zLW5lb0BkYXJrZGVtb24iLAogICJ2ZXJzaW9uIjogNgp9"}}}
-, {"uuid": "allowlockedremotedesktop@kamens.us", "name": "Allow Locked Remote Desktop", "pname": "allow-locked-remote-desktop", "description": "Allow remote desktop connections when the screen is locked", "link": "https://extensions.gnome.org/extension/4338/allow-locked-remote-desktop/", "shell_version_map": {"38": {"version": "3", "sha256": "1q98dnw4gbn7ajbnkic5az55np95gn1pd3f7bigyl9nxc6wyimvi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHJlbW90ZSBkZXNrdG9wIGNvbm5lY3Rpb25zIHdoZW4gdGhlIHNjcmVlbiBpcyBsb2NrZWQiLAogICJuYW1lIjogIkFsbG93IExvY2tlZCBSZW1vdGUgRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFsbG93bG9ja2VkcmVtb3RlZGVza3RvcEBrYW1lbnMudXMiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "1q98dnw4gbn7ajbnkic5az55np95gn1pd3f7bigyl9nxc6wyimvi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHJlbW90ZSBkZXNrdG9wIGNvbm5lY3Rpb25zIHdoZW4gdGhlIHNjcmVlbiBpcyBsb2NrZWQiLAogICJuYW1lIjogIkFsbG93IExvY2tlZCBSZW1vdGUgRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFsbG93bG9ja2VkcmVtb3RlZGVza3RvcEBrYW1lbnMudXMiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "1q98dnw4gbn7ajbnkic5az55np95gn1pd3f7bigyl9nxc6wyimvi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHJlbW90ZSBkZXNrdG9wIGNvbm5lY3Rpb25zIHdoZW4gdGhlIHNjcmVlbiBpcyBsb2NrZWQiLAogICJuYW1lIjogIkFsbG93IExvY2tlZCBSZW1vdGUgRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFsbG93bG9ja2VkcmVtb3RlZGVza3RvcEBrYW1lbnMudXMiLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "allowlockedremotedesktop@kamens.us", "name": "Allow Locked Remote Desktop", "pname": "allow-locked-remote-desktop", "description": "Allow remote desktop connections when the screen is locked", "link": "https://extensions.gnome.org/extension/4338/allow-locked-remote-desktop/", "shell_version_map": {"38": {"version": "4", "sha256": "0z1kkvplvqywjpxw9cv2lv0bhl1m56fmq7d98gcv4iqh94s1p2zm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHJlbW90ZSBkZXNrdG9wIGNvbm5lY3Rpb25zIHdoZW4gdGhlIHNjcmVlbiBpcyBsb2NrZWQiLAogICJuYW1lIjogIkFsbG93IExvY2tlZCBSZW1vdGUgRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJhbGxvd2xvY2tlZHJlbW90ZWRlc2t0b3BAa2FtZW5zLnVzIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "0z1kkvplvqywjpxw9cv2lv0bhl1m56fmq7d98gcv4iqh94s1p2zm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHJlbW90ZSBkZXNrdG9wIGNvbm5lY3Rpb25zIHdoZW4gdGhlIHNjcmVlbiBpcyBsb2NrZWQiLAogICJuYW1lIjogIkFsbG93IExvY2tlZCBSZW1vdGUgRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJhbGxvd2xvY2tlZHJlbW90ZWRlc2t0b3BAa2FtZW5zLnVzIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "0z1kkvplvqywjpxw9cv2lv0bhl1m56fmq7d98gcv4iqh94s1p2zm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHJlbW90ZSBkZXNrdG9wIGNvbm5lY3Rpb25zIHdoZW4gdGhlIHNjcmVlbiBpcyBsb2NrZWQiLAogICJuYW1lIjogIkFsbG93IExvY2tlZCBSZW1vdGUgRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJhbGxvd2xvY2tlZHJlbW90ZWRlc2t0b3BAa2FtZW5zLnVzIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "42": {"version": "4", "sha256": "0z1kkvplvqywjpxw9cv2lv0bhl1m56fmq7d98gcv4iqh94s1p2zm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHJlbW90ZSBkZXNrdG9wIGNvbm5lY3Rpb25zIHdoZW4gdGhlIHNjcmVlbiBpcyBsb2NrZWQiLAogICJuYW1lIjogIkFsbG93IExvY2tlZCBSZW1vdGUgRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJhbGxvd2xvY2tlZHJlbW90ZWRlc2t0b3BAa2FtZW5zLnVzIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "mumble-ping@maweil.github.com", "name": "MumblePing", "pname": "mumbleping", "description": "Displays how many users are currently online on a mumble server", "link": "https://extensions.gnome.org/extension/4341/mumbleping/", "shell_version_map": {"38": {"version": "2", "sha256": "0xra5qr54w8f4wsrsc1id22vnd25vvcsj0q3mm3aq5h40px9dc4y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdlaWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bWJsZS1waW5nIiwKICAidXVpZCI6ICJtdW1ibGUtcGluZ0BtYXdlaWwuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "0xra5qr54w8f4wsrsc1id22vnd25vvcsj0q3mm3aq5h40px9dc4y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdlaWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bWJsZS1waW5nIiwKICAidXVpZCI6ICJtdW1ibGUtcGluZ0BtYXdlaWwuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "0xra5qr54w8f4wsrsc1id22vnd25vvcsj0q3mm3aq5h40px9dc4y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdlaWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bWJsZS1waW5nIiwKICAidXVpZCI6ICJtdW1ibGUtcGluZ0BtYXdlaWwuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "simply.workspaces@andyrichardson.dev", "name": "Simply Workspaces", "pname": "simply-workspaces", "description": "Workspace indication with an i3/polybar style.", "link": "https://extensions.gnome.org/extension/4343/simply-workspaces/", "shell_version_map": {"40": {"version": "5", "sha256": "1gkmzf93xnkv58g6vxzvnr8bsybqlwm5qjipvqx3iv3rhygk8i86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0aW9uIHdpdGggYW4gaTMvcG9seWJhciBzdHlsZS4iLAogICJuYW1lIjogIlNpbXBseSBXb3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FuZHlyaWNoYXJkc29uL3NpbXBseS13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJzaW1wbHkud29ya3NwYWNlc0BhbmR5cmljaGFyZHNvbi5kZXYiLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "nonblockingswitcher@scottworley.com", "name": "Non-Blocking Switcher", "pname": "non-blocking-switcher", "description": "Application switching oughtn't stop all other keyboard shortcuts", "link": "https://extensions.gnome.org/extension/4347/non-blocking-switcher/", "shell_version_map": {"40": {"version": "2", "sha256": "05a59fi1454kxh2q8p5qp3an7ss243v3d67jm37k6xggwd59v5fn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIHN3aXRjaGluZyBvdWdodG4ndCBzdG9wIGFsbCBvdGhlciBrZXlib2FyZCBzaG9ydGN1dHMiLAogICJuYW1lIjogIk5vbi1CbG9ja2luZyBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMiIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9jaHVjay9ub24tYmxvY2tpbmctc3dpdGNoZXIiLAogICJ1dWlkIjogIm5vbmJsb2NraW5nc3dpdGNoZXJAc2NvdHR3b3JsZXkuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "fluoroom-gnome-top-bar@fluoroom.github.com", "name": "fluoroom's Top Bar", "pname": "fluorooms-top-bar", "description": "Persistent top bar based on Gnome's default style, with some modifications.\n\nThis extension makes black background and screen corners persistent and makes buttons round, but it will respect your current theme's fonts, margins and icons.", "link": "https://extensions.gnome.org/extension/4350/fluorooms-top-bar/", "shell_version_map": {"40": {"version": "4", "sha256": "1gm6ijr66nrs4r7cp2ksdy4sppf3vrg88lvf1gs993q6r894li89", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBlcnNpc3RlbnQgdG9wIGJhciBiYXNlZCBvbiBHbm9tZSdzIGRlZmF1bHQgc3R5bGUsIHdpdGggc29tZSBtb2RpZmljYXRpb25zLlxuXG5UaGlzIGV4dGVuc2lvbiBtYWtlcyBibGFjayBiYWNrZ3JvdW5kIGFuZCBzY3JlZW4gY29ybmVycyBwZXJzaXN0ZW50IGFuZCBtYWtlcyBidXR0b25zIHJvdW5kLCBidXQgaXQgd2lsbCByZXNwZWN0IHlvdXIgY3VycmVudCB0aGVtZSdzIGZvbnRzLCBtYXJnaW5zIGFuZCBpY29ucy4iLAogICJuYW1lIjogImZsdW9yb29tJ3MgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mbHVvcm9vbS9mbHVvcm9vbS1nbm9tZS10b3AtYmFyIiwKICAidXVpZCI6ICJmbHVvcm9vbS1nbm9tZS10b3AtYmFyQGZsdW9yb29tLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "mbpbat@prithvivishak.gmail.com", "name": "MacBook Battery Percentage Corrector", "pname": "macbook-battery-percentage-corrector", "description": "Corrects only the battery percentage shown in the panel aggregate menu.\nDoes not mess with UPower or other subsystems. Special thanks to @andenlol.", "link": "https://extensions.gnome.org/extension/4353/macbook-battery-percentage-corrector/", "shell_version_map": {"38": {"version": "3", "sha256": "1vaklxwql5n92iq47bw5p37libhgf5dr5lf6frvvmzwxwk6pha5y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvcnJlY3RzIG9ubHkgdGhlIGJhdHRlcnkgcGVyY2VudGFnZSBzaG93biBpbiB0aGUgcGFuZWwgYWdncmVnYXRlIG1lbnUuXG5Eb2VzIG5vdCBtZXNzIHdpdGggVVBvd2VyIG9yIG90aGVyIHN1YnN5c3RlbXMuIFNwZWNpYWwgdGhhbmtzIHRvIEBhbmRlbmxvbC4iLAogICJuYW1lIjogIk1hY0Jvb2sgQmF0dGVyeSBQZXJjZW50YWdlIENvcnJlY3RvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2JpdGJ1Y2tldC5vcmcvcHZwdWJsaWMvbWJwYmF0L3NyYy9tYXN0ZXIvIiwKICAidXVpZCI6ICJtYnBiYXRAcHJpdGh2aXZpc2hhay5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "1vaklxwql5n92iq47bw5p37libhgf5dr5lf6frvvmzwxwk6pha5y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvcnJlY3RzIG9ubHkgdGhlIGJhdHRlcnkgcGVyY2VudGFnZSBzaG93biBpbiB0aGUgcGFuZWwgYWdncmVnYXRlIG1lbnUuXG5Eb2VzIG5vdCBtZXNzIHdpdGggVVBvd2VyIG9yIG90aGVyIHN1YnN5c3RlbXMuIFNwZWNpYWwgdGhhbmtzIHRvIEBhbmRlbmxvbC4iLAogICJuYW1lIjogIk1hY0Jvb2sgQmF0dGVyeSBQZXJjZW50YWdlIENvcnJlY3RvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2JpdGJ1Y2tldC5vcmcvcHZwdWJsaWMvbWJwYmF0L3NyYy9tYXN0ZXIvIiwKICAidXVpZCI6ICJtYnBiYXRAcHJpdGh2aXZpc2hhay5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "1vaklxwql5n92iq47bw5p37libhgf5dr5lf6frvvmzwxwk6pha5y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvcnJlY3RzIG9ubHkgdGhlIGJhdHRlcnkgcGVyY2VudGFnZSBzaG93biBpbiB0aGUgcGFuZWwgYWdncmVnYXRlIG1lbnUuXG5Eb2VzIG5vdCBtZXNzIHdpdGggVVBvd2VyIG9yIG90aGVyIHN1YnN5c3RlbXMuIFNwZWNpYWwgdGhhbmtzIHRvIEBhbmRlbmxvbC4iLAogICJuYW1lIjogIk1hY0Jvb2sgQmF0dGVyeSBQZXJjZW50YWdlIENvcnJlY3RvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2JpdGJ1Y2tldC5vcmcvcHZwdWJsaWMvbWJwYmF0L3NyYy9tYXN0ZXIvIiwKICAidXVpZCI6ICJtYnBiYXRAcHJpdGh2aXZpc2hhay5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
 , {"uuid": "top-bar-organizer@julian.gse.jsts.xyz", "name": "Top Bar Organizer", "pname": "top-bar-organizer", "description": "Organize the items of the top (menu)bar.\nThis extension required Gnome Shell version 40.\nOrganize the items by going into the extensions settings.\n\n!!! Please make sure you're fully on Gnome 40 / you're using a distribution, which is fully on Gnome 40, since otherwise this extension might not work correctly. This was the case for Manjaro Stable until recently and is probably the case for Ubuntu 21.04 right now. !!!", "link": "https://extensions.gnome.org/extension/4356/top-bar-organizer/", "shell_version_map": {"40": {"version": "3", "sha256": "121a8r063ifv4lv5s07pglxj4h90n3lp6f0jyw4lnbg38v0nqv28", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXplIHRoZSBpdGVtcyBvZiB0aGUgdG9wIChtZW51KWJhci5cblRoaXMgZXh0ZW5zaW9uIHJlcXVpcmVkIEdub21lIFNoZWxsIHZlcnNpb24gNDAuXG5Pcmdhbml6ZSB0aGUgaXRlbXMgYnkgZ29pbmcgaW50byB0aGUgZXh0ZW5zaW9ucyBzZXR0aW5ncy5cblxuISEhIFBsZWFzZSBtYWtlIHN1cmUgeW91J3JlIGZ1bGx5IG9uIEdub21lIDQwIC8geW91J3JlIHVzaW5nIGEgZGlzdHJpYnV0aW9uLCB3aGljaCBpcyBmdWxseSBvbiBHbm9tZSA0MCwgc2luY2Ugb3RoZXJ3aXNlIHRoaXMgZXh0ZW5zaW9uIG1pZ2h0IG5vdCB3b3JrIGNvcnJlY3RseS4gVGhpcyB3YXMgdGhlIGNhc2UgZm9yIE1hbmphcm8gU3RhYmxlIHVudGlsIHJlY2VudGx5IGFuZCBpcyBwcm9iYWJseSB0aGUgY2FzZSBmb3IgVWJ1bnR1IDIxLjA0IHJpZ2h0IG5vdy4gISEhIiwKICAibmFtZSI6ICJUb3AgQmFyIE9yZ2FuaXplciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50b3AtYmFyLW9yZ2FuaXplciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9qdWxpYW5zY2hhY2hlci90b3AtYmFyLW9yZ2FuaXplciIsCiAgInV1aWQiOiAidG9wLWJhci1vcmdhbml6ZXJAanVsaWFuLmdzZS5qc3RzLnh5eiIsCiAgInZlcnNpb24iOiAzCn0="}}}
-, {"uuid": "fullscreen-avoider@noobsai.github.com", "name": "Fullscreen Avoider", "pname": "fullscreen-avoider", "description": "Moves the top panel to the secondary monitor if the primary is in fullscreen", "link": "https://extensions.gnome.org/extension/4362/fullscreen-avoider/", "shell_version_map": {"38": {"version": "4", "sha256": "10vm28p2xpvwhzyjw1yfpgsbhahg1w673n73kq9ndx5vlnf9fji9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSB0b3AgcGFuZWwgdG8gdGhlIHNlY29uZGFyeSBtb25pdG9yIGlmIHRoZSBwcmltYXJ5IGlzIGluIGZ1bGxzY3JlZW4iLAogICJleHRlbnNpb24taWQiOiAiZnVsbHNjcmVlbi1hdm9pZGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBBdm9pZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW4tYXZvaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL05vb2JzYWkvZnVsbHNjcmVlbi1hdm9pZGVyIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLWF2b2lkZXJAbm9vYnNhaS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "6", "sha256": "04vlmrwlv58ps3v0flc2m8l18q52kz3yyk6yh9i543aiknprm40x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSB0b3AgcGFuZWwgdG8gdGhlIHNlY29uZGFyeSBtb25pdG9yIGlmIHRoZSBwcmltYXJ5IGlzIGluIGZ1bGxzY3JlZW4iLAogICJleHRlbnNpb24taWQiOiAiZnVsbHNjcmVlbi1hdm9pZGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBBdm9pZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW4tYXZvaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTm9vYnNhaS9mdWxsc2NyZWVuLWF2b2lkZXIiLAogICJ1dWlkIjogImZ1bGxzY3JlZW4tYXZvaWRlckBub29ic2FpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "04vlmrwlv58ps3v0flc2m8l18q52kz3yyk6yh9i543aiknprm40x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSB0b3AgcGFuZWwgdG8gdGhlIHNlY29uZGFyeSBtb25pdG9yIGlmIHRoZSBwcmltYXJ5IGlzIGluIGZ1bGxzY3JlZW4iLAogICJleHRlbnNpb24taWQiOiAiZnVsbHNjcmVlbi1hdm9pZGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBBdm9pZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW4tYXZvaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTm9vYnNhaS9mdWxsc2NyZWVuLWF2b2lkZXIiLAogICJ1dWlkIjogImZ1bGxzY3JlZW4tYXZvaWRlckBub29ic2FpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "fullscreen-avoider@noobsai.github.com", "name": "Fullscreen Avoider", "pname": "fullscreen-avoider", "description": "Moves the top panel to the secondary monitor if the primary is in fullscreen", "link": "https://extensions.gnome.org/extension/4362/fullscreen-avoider/", "shell_version_map": {"38": {"version": "4", "sha256": "10vm28p2xpvwhzyjw1yfpgsbhahg1w673n73kq9ndx5vlnf9fji9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSB0b3AgcGFuZWwgdG8gdGhlIHNlY29uZGFyeSBtb25pdG9yIGlmIHRoZSBwcmltYXJ5IGlzIGluIGZ1bGxzY3JlZW4iLAogICJleHRlbnNpb24taWQiOiAiZnVsbHNjcmVlbi1hdm9pZGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBBdm9pZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW4tYXZvaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL05vb2JzYWkvZnVsbHNjcmVlbi1hdm9pZGVyIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLWF2b2lkZXJAbm9vYnNhaS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "7", "sha256": "0q6q0k4pig8i5lmwwb7rznpk1b0sipq30zah7gqqbcj6b9v4zlyb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSB0b3AgcGFuZWwgdG8gdGhlIHNlY29uZGFyeSBtb25pdG9yIGlmIHRoZSBwcmltYXJ5IGlzIGluIGZ1bGxzY3JlZW4iLAogICJleHRlbnNpb24taWQiOiAiZnVsbHNjcmVlbi1hdm9pZGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBBdm9pZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW4tYXZvaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL05vb2JzYWkvZnVsbHNjcmVlbi1hdm9pZGVyIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLWF2b2lkZXJAbm9vYnNhaS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "41": {"version": "7", "sha256": "0q6q0k4pig8i5lmwwb7rznpk1b0sipq30zah7gqqbcj6b9v4zlyb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSB0b3AgcGFuZWwgdG8gdGhlIHNlY29uZGFyeSBtb25pdG9yIGlmIHRoZSBwcmltYXJ5IGlzIGluIGZ1bGxzY3JlZW4iLAogICJleHRlbnNpb24taWQiOiAiZnVsbHNjcmVlbi1hdm9pZGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBBdm9pZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW4tYXZvaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL05vb2JzYWkvZnVsbHNjcmVlbi1hdm9pZGVyIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLWF2b2lkZXJAbm9vYnNhaS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "42": {"version": "7", "sha256": "0q6q0k4pig8i5lmwwb7rznpk1b0sipq30zah7gqqbcj6b9v4zlyb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSB0b3AgcGFuZWwgdG8gdGhlIHNlY29uZGFyeSBtb25pdG9yIGlmIHRoZSBwcmltYXJ5IGlzIGluIGZ1bGxzY3JlZW4iLAogICJleHRlbnNpb24taWQiOiAiZnVsbHNjcmVlbi1hdm9pZGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBBdm9pZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW4tYXZvaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL05vb2JzYWkvZnVsbHNjcmVlbi1hdm9pZGVyIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLWF2b2lkZXJAbm9vYnNhaS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
 , {"uuid": "shell-isw@zamraky.cz", "name": "MSI Fan Control", "pname": "msi-fan-control", "description": "Use isw to change MSI laptop fan settings", "link": "https://extensions.gnome.org/extension/4363/msi-fan-control/", "shell_version_map": {"38": {"version": "1", "sha256": "0pl9dxwkw47r4c0f5sxjhh8bxl82r0sjlwsji7pwypkb6m0hh342", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBpc3cgdG8gY2hhbmdlIE1TSSBsYXB0b3AgZmFuIHNldHRpbmdzIiwKICAibmFtZSI6ICJNU0kgRmFuIENvbnRyb2wiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic2hlbGwtaXN3QHphbXJha3kuY3oiLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "vertical-window-list@student.gitlab.com", "name": "Vertical Window List", "pname": "vertical-window-list", "description": "Displays opened windows in vertical panel with productivity perks\n\n- left click to open favorites/activate window\n- right click to close\n- middle click to rename\n- drag-and-drop to re-arrange\n- Alt-Tab to cycle\n- adjust panel width, transparency and icon size in extension settings", "link": "https://extensions.gnome.org/extension/4369/vertical-window-list/", "shell_version_map": {"40": {"version": "7", "sha256": "1gakw5c0gjygj61h9lhd3s7vg14vry055qnxrrdvm6vaingkzqhr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIG9wZW5lZCB3aW5kb3dzIGluIHZlcnRpY2FsIHBhbmVsIHdpdGggcHJvZHVjdGl2aXR5IHBlcmtzXG5cbi0gbGVmdCBjbGljayB0byBvcGVuIGZhdm9yaXRlcy9hY3RpdmF0ZSB3aW5kb3dcbi0gcmlnaHQgY2xpY2sgdG8gY2xvc2Vcbi0gbWlkZGxlIGNsaWNrIHRvIHJlbmFtZVxuLSBkcmFnLWFuZC1kcm9wIHRvIHJlLWFycmFuZ2Vcbi0gQWx0LVRhYiB0byBjeWNsZVxuLSBhZGp1c3QgcGFuZWwgd2lkdGgsIHRyYW5zcGFyZW5jeSBhbmQgaWNvbiBzaXplIGluIGV4dGVuc2lvbiBzZXR0aW5ncyIsCiAgIm5hbWUiOiAiVmVydGljYWwgV2luZG93IExpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3N0dWRlbnQvdmVydGljYWwtd2luZG93LWxpc3QiLAogICJ1dWlkIjogInZlcnRpY2FsLXdpbmRvdy1saXN0QHN0dWRlbnQuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "1gakw5c0gjygj61h9lhd3s7vg14vry055qnxrrdvm6vaingkzqhr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIG9wZW5lZCB3aW5kb3dzIGluIHZlcnRpY2FsIHBhbmVsIHdpdGggcHJvZHVjdGl2aXR5IHBlcmtzXG5cbi0gbGVmdCBjbGljayB0byBvcGVuIGZhdm9yaXRlcy9hY3RpdmF0ZSB3aW5kb3dcbi0gcmlnaHQgY2xpY2sgdG8gY2xvc2Vcbi0gbWlkZGxlIGNsaWNrIHRvIHJlbmFtZVxuLSBkcmFnLWFuZC1kcm9wIHRvIHJlLWFycmFuZ2Vcbi0gQWx0LVRhYiB0byBjeWNsZVxuLSBhZGp1c3QgcGFuZWwgd2lkdGgsIHRyYW5zcGFyZW5jeSBhbmQgaWNvbiBzaXplIGluIGV4dGVuc2lvbiBzZXR0aW5ncyIsCiAgIm5hbWUiOiAiVmVydGljYWwgV2luZG93IExpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3N0dWRlbnQvdmVydGljYWwtd2luZG93LWxpc3QiLAogICJ1dWlkIjogInZlcnRpY2FsLXdpbmRvdy1saXN0QHN0dWRlbnQuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
-, {"uuid": "ShutdownTimer@deminder", "name": "Shutdown Timer", "pname": "shutdowntimer", "description": "Shutdown/reboot/suspend the device after a specific time or wake with a rtc alarm.\n\nThe screen-saver will not interrupt the timer. A privileged control script may be installed to control shutdown and rtcwake as user. Additionally, a check command may be configured before shutdown.", "link": "https://extensions.gnome.org/extension/4372/shutdowntimer/", "shell_version_map": {"38": {"version": "19", "sha256": "1jagvd6a4xw0vm18qi6czfglp16bywms1y55vii2dwvb1xlm4sjz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLWRlbWluZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "40": {"version": "19", "sha256": "1jagvd6a4xw0vm18qi6czfglp16bywms1y55vii2dwvb1xlm4sjz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLWRlbWluZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "41": {"version": "19", "sha256": "1jagvd6a4xw0vm18qi6czfglp16bywms1y55vii2dwvb1xlm4sjz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLWRlbWluZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "42": {"version": "22", "sha256": "0g9qb52i8bbi5sqadarmc8sfgicryjjw13ys8q6nlhvqb4albmqc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidXNlciIsCiAgICAidW5sb2NrLWRpYWxvZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1dGRvd250aW1lci1kZW1pbmRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDIyCn0="}}}
+, {"uuid": "ShutdownTimer@deminder", "name": "Shutdown Timer", "pname": "shutdowntimer", "description": "Shutdown/reboot/suspend the device after a specific time or wake with a rtc alarm.\n\nThe screen-saver will not interrupt the timer. A privileged control script may be installed to control shutdown and rtcwake as user. Additionally, a check command may be configured before shutdown.", "link": "https://extensions.gnome.org/extension/4372/shutdowntimer/", "shell_version_map": {"38": {"version": "19", "sha256": "1jagvd6a4xw0vm18qi6czfglp16bywms1y55vii2dwvb1xlm4sjz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLWRlbWluZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "40": {"version": "19", "sha256": "1jagvd6a4xw0vm18qi6czfglp16bywms1y55vii2dwvb1xlm4sjz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLWRlbWluZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "41": {"version": "19", "sha256": "1jagvd6a4xw0vm18qi6czfglp16bywms1y55vii2dwvb1xlm4sjz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLWRlbWluZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "42": {"version": "24", "sha256": "0id9vn7qhra166cc98bbqp6camnb71i3hdl8d1kzmr9km4w5q56k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidXNlciIsCiAgICAidW5sb2NrLWRpYWxvZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1dGRvd250aW1lci1kZW1pbmRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDI0Cn0="}}}
 , {"uuid": "docker_status2@gpouilloux", "name": "Docker Integration", "pname": "docker-integration", "description": "A status menu for managing docker containers.", "link": "https://extensions.gnome.org/extension/4374/docker-integration/", "shell_version_map": {"40": {"version": "1", "sha256": "1ia763h3wbc3d3p9ddb1b9rg5f486y5x3m2k4pblq9f9ca9cjrdy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIG1hbmFnaW5nIGRvY2tlciBjb250YWluZXJzLiIsCiAgIm5hbWUiOiAiRG9ja2VyIEludGVncmF0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3BvdWlsbG91eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJfc3RhdHVzMkBncG91aWxsb3V4IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
 , {"uuid": "bifocals@shiznatix", "name": "Bifocals", "pname": "bifocals", "description": "Gnome extension adding more window management keyboard shortcuts.\n\n* Left / right 'view split' anchoring cycles through 3 sizes: 1/3, 1/2, and 2/3 of the current screen width.\n*Adds 'mid screen' of centering the window with 3/4 screen height and width.", "link": "https://extensions.gnome.org/extension/4375/bifocals/", "shell_version_map": {"38": {"version": "1", "sha256": "02j0if3bwaws0svaz98054jznrx9pj8zkhy4avsnnhchv2dwmgdi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBhZGRpbmcgbW9yZSB3aW5kb3cgbWFuYWdlbWVudCBrZXlib2FyZCBzaG9ydGN1dHMuXG5cbiogTGVmdCAvIHJpZ2h0ICd2aWV3IHNwbGl0JyBhbmNob3JpbmcgY3ljbGVzIHRocm91Z2ggMyBzaXplczogMS8zLCAxLzIsIGFuZCAyLzMgb2YgdGhlIGN1cnJlbnQgc2NyZWVuIHdpZHRoLlxuKkFkZHMgJ21pZCBzY3JlZW4nIG9mIGNlbnRlcmluZyB0aGUgd2luZG93IHdpdGggMy80IHNjcmVlbiBoZWlnaHQgYW5kIHdpZHRoLiIsCiAgIm5hbWUiOiAiQmlmb2NhbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2hpem5hdGl4L2JpZm9jYWxzLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYmlmb2NhbHNAc2hpem5hdGl4IiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "1", "sha256": "02j0if3bwaws0svaz98054jznrx9pj8zkhy4avsnnhchv2dwmgdi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBhZGRpbmcgbW9yZSB3aW5kb3cgbWFuYWdlbWVudCBrZXlib2FyZCBzaG9ydGN1dHMuXG5cbiogTGVmdCAvIHJpZ2h0ICd2aWV3IHNwbGl0JyBhbmNob3JpbmcgY3ljbGVzIHRocm91Z2ggMyBzaXplczogMS8zLCAxLzIsIGFuZCAyLzMgb2YgdGhlIGN1cnJlbnQgc2NyZWVuIHdpZHRoLlxuKkFkZHMgJ21pZCBzY3JlZW4nIG9mIGNlbnRlcmluZyB0aGUgd2luZG93IHdpdGggMy80IHNjcmVlbiBoZWlnaHQgYW5kIHdpZHRoLiIsCiAgIm5hbWUiOiAiQmlmb2NhbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2hpem5hdGl4L2JpZm9jYWxzLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYmlmb2NhbHNAc2hpem5hdGl4IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
 , {"uuid": "kubectl-context@bernot.dev", "name": "kubectl context", "pname": "kubectl-context", "description": "Displays kubectl current-context", "link": "https://extensions.gnome.org/extension/4377/kubectl-context/", "shell_version_map": {"38": {"version": "1", "sha256": "1040dy3m5bpbqqgc60a3l5ia4g0cddfvd8iwiwxm4f7hbi9kksk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGt1YmVjdGwgY3VycmVudC1jb250ZXh0IiwKICAibmFtZSI6ICJrdWJlY3RsIGNvbnRleHQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iZXJub3QtZGV2L2t1YmVjdGwtY29udGV4dCIsCiAgInV1aWQiOiAia3ViZWN0bC1jb250ZXh0QGJlcm5vdC5kZXYiLAogICJ2ZXJzaW9uIjogMQp9"}}}
@@ -552,12 +552,12 @@
 , {"uuid": "replaceActivitiesText@pratap.fastmail.fm", "name": "Replace Activities Text", "pname": "replace-activities-text", "description": "A Simple Extension to Change 'Activities' Label with Logo and Text.\nYou can Keep Either\n1. Logo or\n2. Text or\n3. Both or\n4. None at all", "link": "https://extensions.gnome.org/extension/4405/replace-activities-text/", "shell_version_map": {"38": {"version": "8", "sha256": "04adx4043d3ni510h44pi3gr0k15a4n0zwr4k5fxisr4yjl1510w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9BY3Rpdml0aWVzVGV4dCIsCiAgInV1aWQiOiAicmVwbGFjZUFjdGl2aXRpZXNUZXh0QHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "11", "sha256": "0gvmi2np73rq7hvxvzyy4rzn4vsb3ylr67k6r48rmr0axg2nkicx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yZXBsYWNlQWN0aXZpdGllc1RleHQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvQWN0aXZpdGllc1RleHQiLAogICJ1dWlkIjogInJlcGxhY2VBY3Rpdml0aWVzVGV4dEBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "41": {"version": "11", "sha256": "0gvmi2np73rq7hvxvzyy4rzn4vsb3ylr67k6r48rmr0axg2nkicx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yZXBsYWNlQWN0aXZpdGllc1RleHQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvQWN0aXZpdGllc1RleHQiLAogICJ1dWlkIjogInJlcGxhY2VBY3Rpdml0aWVzVGV4dEBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "42": {"version": "11", "sha256": "0gvmi2np73rq7hvxvzyy4rzn4vsb3ylr67k6r48rmr0axg2nkicx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yZXBsYWNlQWN0aXZpdGllc1RleHQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvQWN0aXZpdGllc1RleHQiLAogICJ1dWlkIjogInJlcGxhY2VBY3Rpdml0aWVzVGV4dEBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
 , {"uuid": "appMenuIcon@pratap.fastmail.fm", "name": "Colored Application Menu Icon", "pname": "app-menu-icon-remove-symbolic", "description": "Remove Symbolic Icons and Saturation Effect for App Menu Icon", "link": "https://extensions.gnome.org/extension/4408/app-menu-icon-remove-symbolic/", "shell_version_map": {"38": {"version": "3", "sha256": "17rsdh004l1mb2k90w3qp72rcv20q0dr3pmi20whrb420yi5bq4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBTeW1ib2xpYyBJY29ucyBhbmQgU2F0dXJhdGlvbiBFZmZlY3QgZm9yIEFwcCBNZW51IEljb24iLAogICJuYW1lIjogIkNvbG9yZWQgQXBwbGljYXRpb24gTWVudSBJY29uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFwcE1lbnVJY29uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "17rsdh004l1mb2k90w3qp72rcv20q0dr3pmi20whrb420yi5bq4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBTeW1ib2xpYyBJY29ucyBhbmQgU2F0dXJhdGlvbiBFZmZlY3QgZm9yIEFwcCBNZW51IEljb24iLAogICJuYW1lIjogIkNvbG9yZWQgQXBwbGljYXRpb24gTWVudSBJY29uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFwcE1lbnVJY29uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "17rsdh004l1mb2k90w3qp72rcv20q0dr3pmi20whrb420yi5bq4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBTeW1ib2xpYyBJY29ucyBhbmQgU2F0dXJhdGlvbiBFZmZlY3QgZm9yIEFwcCBNZW51IEljb24iLAogICJuYW1lIjogIkNvbG9yZWQgQXBwbGljYXRpb24gTWVudSBJY29uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFwcE1lbnVJY29uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAzCn0="}, "42": {"version": "3", "sha256": "17rsdh004l1mb2k90w3qp72rcv20q0dr3pmi20whrb420yi5bq4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBTeW1ib2xpYyBJY29ucyBhbmQgU2F0dXJhdGlvbiBFZmZlY3QgZm9yIEFwcCBNZW51IEljb24iLAogICJuYW1lIjogIkNvbG9yZWQgQXBwbGljYXRpb24gTWVudSBJY29uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFwcE1lbnVJY29uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "gnome-trash@b00f.github.io", "name": "Gnome Trash", "pname": "gnome-trash", "description": "A gnome shell extension to manage your home trash. You can manage trash items from the panel and open or empty the trash.", "link": "https://extensions.gnome.org/extension/4410/gnome-trash/", "shell_version_map": {"38": {"version": "3", "sha256": "03pyala1i21izg5rl4qqh5bxk36fp8d52bs9ggrik2kav420xhhk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGhvbWUgdHJhc2guIFlvdSBjYW4gbWFuYWdlIHRyYXNoIGl0ZW1zIGZyb20gdGhlIHBhbmVsIGFuZCBvcGVuIG9yIGVtcHR5IHRoZSB0cmFzaC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS10cmFzaCIsCiAgIm5hbWUiOiAiR25vbWUgVHJhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iMDBmL2dub21lLXRyYXNoIiwKICAidXVpZCI6ICJnbm9tZS10cmFzaEBiMDBmLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "6", "sha256": "0hkpkpxd1xpg0rsvf007wzc6s6sx1gsycl6hg69fa5bqf451r0db", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGhvbWUgdHJhc2guIFlvdSBjYW4gbWFuYWdlIHRyYXNoIGl0ZW1zIGZyb20gdGhlIHBhbmVsIGFuZCBvcGVuIG9yIGVtcHR5IHRoZSB0cmFzaC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS10cmFzaCIsCiAgIm5hbWUiOiAiR25vbWUgVHJhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2IwMGYvZ25vbWUtdHJhc2giLAogICJ1dWlkIjogImdub21lLXRyYXNoQGIwMGYuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "0hkpkpxd1xpg0rsvf007wzc6s6sx1gsycl6hg69fa5bqf451r0db", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGhvbWUgdHJhc2guIFlvdSBjYW4gbWFuYWdlIHRyYXNoIGl0ZW1zIGZyb20gdGhlIHBhbmVsIGFuZCBvcGVuIG9yIGVtcHR5IHRoZSB0cmFzaC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS10cmFzaCIsCiAgIm5hbWUiOiAiR25vbWUgVHJhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2IwMGYvZ25vbWUtdHJhc2giLAogICJ1dWlkIjogImdub21lLXRyYXNoQGIwMGYuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
-, {"uuid": "advanced-alt-tab@G-dH.github.com", "name": "AATWS - Advanced Alt-Tab Window Switcher", "pname": "advanced-alttab-window-switcher", "description": "Highly customizable replacement for the Alt/Super+Tab window/app switchers that offers 'type to search' mode, various filtering and sorting options, workspace and monitor navigation, configurable hotkeys for navigation and window/app control and an app launcher.\nAATWS is compatible with Custom Hot Corners - Extended extension, allows to configure any mouse button and scroll wheel and can be used as a mouse controlled 'dock'.\n\nNote that GNOME has 3 built-in window switcher popups and this extension replaces all of them. The first one is grouping windows by applications and is used as default in vanilla GNOME distributions. The second one offers window list and the third one windows of the currently focused application. You can set keyboard shortcuts for all the switchers in the Gnome Settings.\n\nFollow the link below for more information and bug reports.\n\nKeywords: alttab, search, find, window search, popup delay, applications, apps, dock, monitor, thumbnail, preview, move windows, launch app, switch, VIM.", "link": "https://extensions.gnome.org/extension/4412/advanced-alttab-window-switcher/", "shell_version_map": {"38": {"version": "14", "sha256": "1fjjd61262m2550ji9a4kbd505b73wwrlds5n0shl8ijwgr6bwnq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImdldHRleHQtZG9tYWluIjogImFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAibmFtZSI6ICJBQVRXUyAtIEFkdmFuY2VkIEFsdC1UYWIgV2luZG93IFN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}, "40": {"version": "14", "sha256": "1fjjd61262m2550ji9a4kbd505b73wwrlds5n0shl8ijwgr6bwnq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImdldHRleHQtZG9tYWluIjogImFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAibmFtZSI6ICJBQVRXUyAtIEFkdmFuY2VkIEFsdC1UYWIgV2luZG93IFN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}, "41": {"version": "14", "sha256": "1fjjd61262m2550ji9a4kbd505b73wwrlds5n0shl8ijwgr6bwnq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImdldHRleHQtZG9tYWluIjogImFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAibmFtZSI6ICJBQVRXUyAtIEFkdmFuY2VkIEFsdC1UYWIgV2luZG93IFN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}, "42": {"version": "14", "sha256": "1fjjd61262m2550ji9a4kbd505b73wwrlds5n0shl8ijwgr6bwnq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImdldHRleHQtZG9tYWluIjogImFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAibmFtZSI6ICJBQVRXUyAtIEFkdmFuY2VkIEFsdC1UYWIgV2luZG93IFN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}}}
-, {"uuid": "improvedosk@nick-shmyrev.dev", "name": "Improved OSK", "pname": "improved-osk", "description": "Makes Gnome's onscreen keyboard more useable with e.g. more keys.\nThis extension is a fork of https://extensions.gnome.org/extension/3330/improved-onscreen-keyboard/ by SebastianLuebke.", "link": "https://extensions.gnome.org/extension/4413/improved-osk/", "shell_version_map": {"38": {"version": "7", "sha256": "06niqzicxp8i9ivznblf2qgwl924h77ld3cz8qgl4x8hl0bb6q0l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrLXNobXlyZXYvaW1wcm92ZWQtb3NrLWdub21lLWV4dCIsCiAgInV1aWQiOiAiaW1wcm92ZWRvc2tAbmljay1zaG15cmV2LmRldiIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "06niqzicxp8i9ivznblf2qgwl924h77ld3cz8qgl4x8hl0bb6q0l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrLXNobXlyZXYvaW1wcm92ZWQtb3NrLWdub21lLWV4dCIsCiAgInV1aWQiOiAiaW1wcm92ZWRvc2tAbmljay1zaG15cmV2LmRldiIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "06niqzicxp8i9ivznblf2qgwl924h77ld3cz8qgl4x8hl0bb6q0l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrLXNobXlyZXYvaW1wcm92ZWQtb3NrLWdub21lLWV4dCIsCiAgInV1aWQiOiAiaW1wcm92ZWRvc2tAbmljay1zaG15cmV2LmRldiIsCiAgInZlcnNpb24iOiA3Cn0="}}}
+, {"uuid": "advanced-alt-tab@G-dH.github.com", "name": "AATWS - Advanced Alt-Tab Window Switcher", "pname": "advanced-alttab-window-switcher", "description": "Highly customizable replacement for the Alt/Super+Tab window/app switchers that offers 'type to search' mode, various filtering and sorting options, workspace and monitor navigation, configurable hotkeys for navigation and window/app control and an app launcher.\nAATWS is compatible with Custom Hot Corners - Extended extension, allows to configure any mouse button and scroll wheel and can be used as a mouse controlled 'dock'.\n\nNote that GNOME has 3 built-in window switcher popups and this extension replaces all of them. The first one is grouping windows by applications and is used as default in vanilla GNOME distributions. The second one offers window list and the third one windows of the currently focused application. You can set keyboard shortcuts for all the switchers using the Gnome Settings app.\n\nFollow the link below for more information and bug reports.\n\nKeywords: alttab, search, find, window search, popup delay, applications, apps, dock, monitor, thumbnail, preview, move windows, launch app, switch, VIM.", "link": "https://extensions.gnome.org/extension/4412/advanced-alttab-window-switcher/", "shell_version_map": {"38": {"version": "14", "sha256": "1q725id5b2pxv0pjg3rg7z1n5yqspka9d5baf8cdh7wmqq5q28nn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyB1c2luZyB0aGUgR25vbWUgU2V0dGluZ3MgYXBwLlxuXG5Gb2xsb3cgdGhlIGxpbmsgYmVsb3cgZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGJ1ZyByZXBvcnRzLlxuXG5LZXl3b3JkczogYWx0dGFiLCBzZWFyY2gsIGZpbmQsIHdpbmRvdyBzZWFyY2gsIHBvcHVwIGRlbGF5LCBhcHBsaWNhdGlvbnMsIGFwcHMsIGRvY2ssIG1vbml0b3IsIHRodW1ibmFpbCwgcHJldmlldywgbW92ZSB3aW5kb3dzLCBsYXVuY2ggYXBwLCBzd2l0Y2gsIFZJTS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvYWR2YW5jZWQtYWx0dGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR2YW5jZWQtYWx0LXRhYkBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "14", "sha256": "1q725id5b2pxv0pjg3rg7z1n5yqspka9d5baf8cdh7wmqq5q28nn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyB1c2luZyB0aGUgR25vbWUgU2V0dGluZ3MgYXBwLlxuXG5Gb2xsb3cgdGhlIGxpbmsgYmVsb3cgZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGJ1ZyByZXBvcnRzLlxuXG5LZXl3b3JkczogYWx0dGFiLCBzZWFyY2gsIGZpbmQsIHdpbmRvdyBzZWFyY2gsIHBvcHVwIGRlbGF5LCBhcHBsaWNhdGlvbnMsIGFwcHMsIGRvY2ssIG1vbml0b3IsIHRodW1ibmFpbCwgcHJldmlldywgbW92ZSB3aW5kb3dzLCBsYXVuY2ggYXBwLCBzd2l0Y2gsIFZJTS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvYWR2YW5jZWQtYWx0dGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR2YW5jZWQtYWx0LXRhYkBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "1q725id5b2pxv0pjg3rg7z1n5yqspka9d5baf8cdh7wmqq5q28nn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyB1c2luZyB0aGUgR25vbWUgU2V0dGluZ3MgYXBwLlxuXG5Gb2xsb3cgdGhlIGxpbmsgYmVsb3cgZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGJ1ZyByZXBvcnRzLlxuXG5LZXl3b3JkczogYWx0dGFiLCBzZWFyY2gsIGZpbmQsIHdpbmRvdyBzZWFyY2gsIHBvcHVwIGRlbGF5LCBhcHBsaWNhdGlvbnMsIGFwcHMsIGRvY2ssIG1vbml0b3IsIHRodW1ibmFpbCwgcHJldmlldywgbW92ZSB3aW5kb3dzLCBsYXVuY2ggYXBwLCBzd2l0Y2gsIFZJTS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvYWR2YW5jZWQtYWx0dGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR2YW5jZWQtYWx0LXRhYkBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "42": {"version": "14", "sha256": "1q725id5b2pxv0pjg3rg7z1n5yqspka9d5baf8cdh7wmqq5q28nn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyB1c2luZyB0aGUgR25vbWUgU2V0dGluZ3MgYXBwLlxuXG5Gb2xsb3cgdGhlIGxpbmsgYmVsb3cgZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGJ1ZyByZXBvcnRzLlxuXG5LZXl3b3JkczogYWx0dGFiLCBzZWFyY2gsIGZpbmQsIHdpbmRvdyBzZWFyY2gsIHBvcHVwIGRlbGF5LCBhcHBsaWNhdGlvbnMsIGFwcHMsIGRvY2ssIG1vbml0b3IsIHRodW1ibmFpbCwgcHJldmlldywgbW92ZSB3aW5kb3dzLCBsYXVuY2ggYXBwLCBzd2l0Y2gsIFZJTS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvYWR2YW5jZWQtYWx0dGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR2YW5jZWQtYWx0LXRhYkBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
+, {"uuid": "improvedosk@nick-shmyrev.dev", "name": "Improved OSK", "pname": "improved-osk", "description": "Makes Gnome's onscreen keyboard more useable with e.g. more keys.\nThis extension is a fork of https://extensions.gnome.org/extension/3330/improved-onscreen-keyboard/ by SebastianLuebke.", "link": "https://extensions.gnome.org/extension/4413/improved-osk/", "shell_version_map": {"38": {"version": "8", "sha256": "01n9gllpxvscg56awq8pmyb538mki5zddqyz7cf2c4j2s8glmaz8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmljay1zaG15cmV2L2ltcHJvdmVkLW9zay1nbm9tZS1leHQiLAogICJ1dWlkIjogImltcHJvdmVkb3NrQG5pY2stc2hteXJldi5kZXYiLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "01n9gllpxvscg56awq8pmyb538mki5zddqyz7cf2c4j2s8glmaz8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmljay1zaG15cmV2L2ltcHJvdmVkLW9zay1nbm9tZS1leHQiLAogICJ1dWlkIjogImltcHJvdmVkb3NrQG5pY2stc2hteXJldi5kZXYiLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "01n9gllpxvscg56awq8pmyb538mki5zddqyz7cf2c4j2s8glmaz8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmljay1zaG15cmV2L2ltcHJvdmVkLW9zay1nbm9tZS1leHQiLAogICJ1dWlkIjogImltcHJvdmVkb3NrQG5pY2stc2hteXJldi5kZXYiLAogICJ2ZXJzaW9uIjogOAp9"}, "42": {"version": "8", "sha256": "01n9gllpxvscg56awq8pmyb538mki5zddqyz7cf2c4j2s8glmaz8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmljay1zaG15cmV2L2ltcHJvdmVkLW9zay1nbm9tZS1leHQiLAogICJ1dWlkIjogImltcHJvdmVkb3NrQG5pY2stc2hteXJldi5kZXYiLAogICJ2ZXJzaW9uIjogOAp9"}}}
 , {"uuid": "fedora-update@pepe386", "name": "Fedora Linux Updates Indicator", "pname": "fedora-linux-updates-indicator", "description": "Update indicator for Fedora Linux and GNOME Shell.", "link": "https://extensions.gnome.org/extension/4415/fedora-linux-updates-indicator/", "shell_version_map": {"40": {"version": "4", "sha256": "1pmh16ijc9p34qx7019z1imswnxzf9mbbbh7vg5i1acy2dgb3vfw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEZlZG9yYSBMaW51eCBhbmQgR05PTUUgU2hlbGwuIiwKICAibmFtZSI6ICJGZWRvcmEgTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BlcGUzODYvZmVkb3JhLXVwZGF0ZSIsCiAgInV1aWQiOiAiZmVkb3JhLXVwZGF0ZUBwZXBlMzg2IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1pmh16ijc9p34qx7019z1imswnxzf9mbbbh7vg5i1acy2dgb3vfw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEZlZG9yYSBMaW51eCBhbmQgR05PTUUgU2hlbGwuIiwKICAibmFtZSI6ICJGZWRvcmEgTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BlcGUzODYvZmVkb3JhLXVwZGF0ZSIsCiAgInV1aWQiOiAiZmVkb3JhLXVwZGF0ZUBwZXBlMzg2IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "readingstrip@lupantano.gihthub", "name": "Reading Strip", "pname": "reading-strip", "description": "It is a extension for Gnome-Shell with an equivalent function to a reading guide on the computer, that's really useful for people with dyslexia.", "link": "https://extensions.gnome.org/extension/4419/reading-strip/", "shell_version_map": {"40": {"version": "13", "sha256": "0i9sqjhn1im0b804jby2af8xs3xc0znwxwm21r6m2i4aykixk9ln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0IGlzIGEgZXh0ZW5zaW9uIGZvciBHbm9tZS1TaGVsbCB3aXRoIGFuIGVxdWl2YWxlbnQgZnVuY3Rpb24gdG8gYSByZWFkaW5nIGd1aWRlIG9uIHRoZSBjb21wdXRlciwgdGhhdCdzIHJlYWxseSB1c2VmdWwgZm9yIHBlb3BsZSB3aXRoIGR5c2xleGlhLiIsCiAgIm5hbWUiOiAiUmVhZGluZyBTdHJpcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yZWFkaW5nc3RyaXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1cGFudGFuby9yZWFkaW5nc3RyaXAiLAogICJ1dWlkIjogInJlYWRpbmdzdHJpcEBsdXBhbnRhbm8uZ2lodGh1YiIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "0i9sqjhn1im0b804jby2af8xs3xc0znwxwm21r6m2i4aykixk9ln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0IGlzIGEgZXh0ZW5zaW9uIGZvciBHbm9tZS1TaGVsbCB3aXRoIGFuIGVxdWl2YWxlbnQgZnVuY3Rpb24gdG8gYSByZWFkaW5nIGd1aWRlIG9uIHRoZSBjb21wdXRlciwgdGhhdCdzIHJlYWxseSB1c2VmdWwgZm9yIHBlb3BsZSB3aXRoIGR5c2xleGlhLiIsCiAgIm5hbWUiOiAiUmVhZGluZyBTdHJpcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yZWFkaW5nc3RyaXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1cGFudGFuby9yZWFkaW5nc3RyaXAiLAogICJ1dWlkIjogInJlYWRpbmdzdHJpcEBsdXBhbnRhbm8uZ2lodGh1YiIsCiAgInZlcnNpb24iOiAxMwp9"}}}
 , {"uuid": "gnome-clipboard@b00f.github.io", "name": "Gnome Clipboard", "pname": "gnome-clipboard", "description": "A gnome shell extension to manage your clipboard.", "link": "https://extensions.gnome.org/extension/4422/gnome-clipboard/", "shell_version_map": {"38": {"version": "8", "sha256": "1zgymry549c6pmj1c0f6gvpyyfj0z93fwbhhxa67fx3nf95gb3kv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGNsaXBib2FyZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1jbGlwYm9hcmQiLAogICJuYW1lIjogIkdub21lIENsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2IwMGYvZ25vbWUtY2xpcGJvYXJkIiwKICAidXVpZCI6ICJnbm9tZS1jbGlwYm9hcmRAYjAwZi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "10", "sha256": "193n38mi38pr07cch1ma5rpkdkk6jkf37m3yfrhmndcqb6brm6i0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGNsaXBib2FyZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1jbGlwYm9hcmQiLAogICJuYW1lIjogIkdub21lIENsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYjAwZi9nbm9tZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogImdub21lLWNsaXBib2FyZEBiMDBmLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"}, "41": {"version": "10", "sha256": "193n38mi38pr07cch1ma5rpkdkk6jkf37m3yfrhmndcqb6brm6i0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGNsaXBib2FyZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1jbGlwYm9hcmQiLAogICJuYW1lIjogIkdub21lIENsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYjAwZi9nbm9tZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogImdub21lLWNsaXBib2FyZEBiMDBmLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"}}}
-, {"uuid": "thanatophobia@yatx.one", "name": "Thanatophobia", "pname": "thanatophobia", "description": "Displays your age in real time. \r\n\r\nGreat source of motivation according to terror management theory!", "link": "https://extensions.gnome.org/extension/4425/thanatophobia/", "shell_version_map": {"40": {"version": "7", "sha256": "0r7j13mgr5fd0v3q1ncmwj7mb5wg8yrxxr0hda197728lmwq0i8x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHlvdXIgYWdlIGluIHJlYWwgdGltZS4gXHJcblxyXG5HcmVhdCBzb3VyY2Ugb2YgbW90aXZhdGlvbiBhY2NvcmRpbmcgdG8gdGVycm9yIG1hbmFnZW1lbnQgdGhlb3J5ISIsCiAgIm5hbWUiOiAiVGhhbmF0b3Bob2JpYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGlvbnN2ZXJyeWZ1bC90aGFuYXRvcGhvYmlhIiwKICAidXVpZCI6ICJ0aGFuYXRvcGhvYmlhQHlhdHgub25lIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "41": {"version": "7", "sha256": "0r7j13mgr5fd0v3q1ncmwj7mb5wg8yrxxr0hda197728lmwq0i8x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHlvdXIgYWdlIGluIHJlYWwgdGltZS4gXHJcblxyXG5HcmVhdCBzb3VyY2Ugb2YgbW90aXZhdGlvbiBhY2NvcmRpbmcgdG8gdGVycm9yIG1hbmFnZW1lbnQgdGhlb3J5ISIsCiAgIm5hbWUiOiAiVGhhbmF0b3Bob2JpYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGlvbnN2ZXJyeWZ1bC90aGFuYXRvcGhvYmlhIiwKICAidXVpZCI6ICJ0aGFuYXRvcGhvYmlhQHlhdHgub25lIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "thanatophobia@yatx.one", "name": "Thanatophobia", "pname": "thanatophobia", "description": "Displays your age in real time. \n\nGreat source of motivation according to terror management theory!", "link": "https://extensions.gnome.org/extension/4425/thanatophobia/", "shell_version_map": {"40": {"version": "8", "sha256": "1bak0ap7rf6101qhvlbjiw41dwqiz21yg3px9l2dqkf751jmq7gz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHlvdXIgYWdlIGluIHJlYWwgdGltZS4gXG5cbkdyZWF0IHNvdXJjZSBvZiBtb3RpdmF0aW9uIGFjY29yZGluZyB0byB0ZXJyb3IgbWFuYWdlbWVudCB0aGVvcnkhIiwKICAibmFtZSI6ICJUaGFuYXRvcGhvYmlhIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2V5b3RlZC90aGFuYXRvcGhvYmlhIiwKICAidXVpZCI6ICJ0aGFuYXRvcGhvYmlhQHlhdHgub25lIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "41": {"version": "8", "sha256": "1bak0ap7rf6101qhvlbjiw41dwqiz21yg3px9l2dqkf751jmq7gz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHlvdXIgYWdlIGluIHJlYWwgdGltZS4gXG5cbkdyZWF0IHNvdXJjZSBvZiBtb3RpdmF0aW9uIGFjY29yZGluZyB0byB0ZXJyb3IgbWFuYWdlbWVudCB0aGVvcnkhIiwKICAibmFtZSI6ICJUaGFuYXRvcGhvYmlhIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2V5b3RlZC90aGFuYXRvcGhvYmlhIiwKICAidXVpZCI6ICJ0aGFuYXRvcGhvYmlhQHlhdHgub25lIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "42": {"version": "8", "sha256": "1bak0ap7rf6101qhvlbjiw41dwqiz21yg3px9l2dqkf751jmq7gz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHlvdXIgYWdlIGluIHJlYWwgdGltZS4gXG5cbkdyZWF0IHNvdXJjZSBvZiBtb3RpdmF0aW9uIGFjY29yZGluZyB0byB0ZXJyb3IgbWFuYWdlbWVudCB0aGVvcnkhIiwKICAibmFtZSI6ICJUaGFuYXRvcGhvYmlhIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2V5b3RlZC90aGFuYXRvcGhvYmlhIiwKICAidXVpZCI6ICJ0aGFuYXRvcGhvYmlhQHlhdHgub25lIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "typewriter-kb@zzzheka97.gmail.com", "name": "Typewriter Keyboard", "pname": "typewriter-keyboard", "description": "Add a typewriter effect to your keyboard.\n \nThis extension is based on typewriter-kb application \n(https://github.com/ZhekehZ/linux-typewriter-kb), which \nis required to run the extension, but is not part of it.\n \n-------------------------------------------\nIcons made by Freepik from www.flaticon.com", "link": "https://extensions.gnome.org/extension/4427/typewriter-keyboard/", "shell_version_map": {"38": {"version": "2", "sha256": "1zmlmijkm6sgpp00qbrwnxmd4q5dfh07g9w9nynq3ciwxs9fjnai", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHR5cGV3cml0ZXIgZWZmZWN0IHRvIHlvdXIga2V5Ym9hcmQuXG4gXG5UaGlzIGV4dGVuc2lvbiBpcyBiYXNlZCBvbiB0eXBld3JpdGVyLWtiIGFwcGxpY2F0aW9uIFxuKGh0dHBzOi8vZ2l0aHViLmNvbS9aaGVrZWhaL2xpbnV4LXR5cGV3cml0ZXIta2IpLCB3aGljaCBcbmlzIHJlcXVpcmVkIHRvIHJ1biB0aGUgZXh0ZW5zaW9uLCBidXQgaXMgbm90IHBhcnQgb2YgaXQuXG4gXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5JY29ucyBtYWRlIGJ5IEZyZWVwaWsgZnJvbSB3d3cuZmxhdGljb24uY29tIiwKICAibmFtZSI6ICJUeXBld3JpdGVyIEtleWJvYXJkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInR5cGV3cml0ZXIta2JAenp6aGVrYTk3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "dark-side@kamil-galek.pl", "name": "Dark side of Gnome", "pname": "dark-side-of-gnome", "description": "Join the dark side with some of your apps. For now it won't work with every app.", "link": "https://extensions.gnome.org/extension/4430/dark-side-of-gnome/", "shell_version_map": {"40": {"version": "2", "sha256": "08kzwpn22qwgyrps4khwkarn4rakr1rn57wg94wpfgd9pfbgb7ri", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkpvaW4gdGhlIGRhcmsgc2lkZSB3aXRoIHNvbWUgb2YgeW91ciBhcHBzLiBGb3Igbm93IGl0IHdvbid0IHdvcmsgd2l0aCBldmVyeSBhcHAuIiwKICAibmFtZSI6ICJEYXJrIHNpZGUgb2YgR25vbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImRhcmstc2lkZUBrYW1pbC1nYWxlay5wbCIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "wizlight@iabhilashjoshi", "name": "Wiz Light", "pname": "wiz-light", "description": "Control Wiz Connected Lights Through Gnome Shell\n\nRequirements:\n        #Wiz enabled smart bulb\n        #python3  (To install  use command \"sudo apt install python3\")\n        #pywizlight (To install use command \"pip3 install pywizlight\")\n\nTo Use go to the location where extension is installed (usually stored in \"~/.local/share/gnome-shell/extensions\") and change IP address in extension.js file to your smart bulb's IP address and then extension should work.", "link": "https://extensions.gnome.org/extension/4436/wiz-light/", "shell_version_map": {"38": {"version": "4", "sha256": "0pby93ivqz2ymdskyjp6ajc2c588dbpq7vjj7b7d8mc03hvkap5z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgV2l6IENvbm5lY3RlZCBMaWdodHMgVGhyb3VnaCBHbm9tZSBTaGVsbFxuXG5SZXF1aXJlbWVudHM6XG4gICAgICAgICNXaXogZW5hYmxlZCBzbWFydCBidWxiXG4gICAgICAgICNweXRob24zICAoVG8gaW5zdGFsbCAgdXNlIGNvbW1hbmQgXCJzdWRvIGFwdCBpbnN0YWxsIHB5dGhvbjNcIilcbiAgICAgICAgI3B5d2l6bGlnaHQgKFRvIGluc3RhbGwgdXNlIGNvbW1hbmQgXCJwaXAzIGluc3RhbGwgcHl3aXpsaWdodFwiKVxuXG5UbyBVc2UgZ28gdG8gdGhlIGxvY2F0aW9uIHdoZXJlIGV4dGVuc2lvbiBpcyBpbnN0YWxsZWQgKHVzdWFsbHkgc3RvcmVkIGluIFwifi8ubG9jYWwvc2hhcmUvZ25vbWUtc2hlbGwvZXh0ZW5zaW9uc1wiKSBhbmQgY2hhbmdlIElQIGFkZHJlc3MgaW4gZXh0ZW5zaW9uLmpzIGZpbGUgdG8geW91ciBzbWFydCBidWxiJ3MgSVAgYWRkcmVzcyBhbmQgdGhlbiBleHRlbnNpb24gc2hvdWxkIHdvcmsuIiwKICAibmFtZSI6ICJXaXogTGlnaHQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbHBoYXNwZWFyL1dpei1MaWdodCIsCiAgInV1aWQiOiAid2l6bGlnaHRAaWFiaGlsYXNoam9zaGkiLAogICJ2ZXJzaW9uIjogNAp9"}}}
@@ -569,80 +569,80 @@
 , {"uuid": "expandable-notifications@kaan.g.inam.org", "name": "Expandable Notifications", "pname": "expandable-notifications", "description": "Makes the notifications in the notification list expandable. Using gsettings, you can choose between three modes: AUTO, ARROW and CRITICAL.\n\nAUTO will expand the notifications in the notification list automatically. \nARROW adds an arrow that lets you choose what to expand or unexpand. \nCRITICAL is similar to arrow, but expands notifications with the urgency critical automatically. \n\nFor more information and an example command to change the mode, I recommend to look at the repository.\"\n\nThe old repository has been deleted, however I reposted the extension on GitHub.", "link": "https://extensions.gnome.org/extension/4463/expandable-notifications/", "shell_version_map": {"40": {"version": "8", "sha256": "04i0hxsv41wfxg8z590mgn2klma47mgcz7qr52ca2llpd4dkrjj5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSBub3RpZmljYXRpb25zIGluIHRoZSBub3RpZmljYXRpb24gbGlzdCBleHBhbmRhYmxlLiBVc2luZyBnc2V0dGluZ3MsIHlvdSBjYW4gY2hvb3NlIGJldHdlZW4gdGhyZWUgbW9kZXM6IEFVVE8sIEFSUk9XIGFuZCBDUklUSUNBTC5cblxuQVVUTyB3aWxsIGV4cGFuZCB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgYXV0b21hdGljYWxseS4gXG5BUlJPVyBhZGRzIGFuIGFycm93IHRoYXQgbGV0cyB5b3UgY2hvb3NlIHdoYXQgdG8gZXhwYW5kIG9yIHVuZXhwYW5kLiBcbkNSSVRJQ0FMIGlzIHNpbWlsYXIgdG8gYXJyb3csIGJ1dCBleHBhbmRzIG5vdGlmaWNhdGlvbnMgd2l0aCB0aGUgdXJnZW5jeSBjcml0aWNhbCBhdXRvbWF0aWNhbGx5LiBcblxuRm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGFuIGV4YW1wbGUgY29tbWFuZCB0byBjaGFuZ2UgdGhlIG1vZGUsIEkgcmVjb21tZW5kIHRvIGxvb2sgYXQgdGhlIHJlcG9zaXRvcnkuXCJcblxuVGhlIG9sZCByZXBvc2l0b3J5IGhhcyBiZWVuIGRlbGV0ZWQsIGhvd2V2ZXIgSSByZXBvc3RlZCB0aGUgZXh0ZW5zaW9uIG9uIEdpdEh1Yi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJleHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMiLAogICJuYW1lIjogIkV4cGFuZGFibGUgTm90aWZpY2F0aW9ucyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thYW5naW5hbS9leHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMiLAogICJ1dWlkIjogImV4cGFuZGFibGUtbm90aWZpY2F0aW9uc0BrYWFuLmcuaW5hbS5vcmciLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "04i0hxsv41wfxg8z590mgn2klma47mgcz7qr52ca2llpd4dkrjj5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSBub3RpZmljYXRpb25zIGluIHRoZSBub3RpZmljYXRpb24gbGlzdCBleHBhbmRhYmxlLiBVc2luZyBnc2V0dGluZ3MsIHlvdSBjYW4gY2hvb3NlIGJldHdlZW4gdGhyZWUgbW9kZXM6IEFVVE8sIEFSUk9XIGFuZCBDUklUSUNBTC5cblxuQVVUTyB3aWxsIGV4cGFuZCB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgYXV0b21hdGljYWxseS4gXG5BUlJPVyBhZGRzIGFuIGFycm93IHRoYXQgbGV0cyB5b3UgY2hvb3NlIHdoYXQgdG8gZXhwYW5kIG9yIHVuZXhwYW5kLiBcbkNSSVRJQ0FMIGlzIHNpbWlsYXIgdG8gYXJyb3csIGJ1dCBleHBhbmRzIG5vdGlmaWNhdGlvbnMgd2l0aCB0aGUgdXJnZW5jeSBjcml0aWNhbCBhdXRvbWF0aWNhbGx5LiBcblxuRm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGFuIGV4YW1wbGUgY29tbWFuZCB0byBjaGFuZ2UgdGhlIG1vZGUsIEkgcmVjb21tZW5kIHRvIGxvb2sgYXQgdGhlIHJlcG9zaXRvcnkuXCJcblxuVGhlIG9sZCByZXBvc2l0b3J5IGhhcyBiZWVuIGRlbGV0ZWQsIGhvd2V2ZXIgSSByZXBvc3RlZCB0aGUgZXh0ZW5zaW9uIG9uIEdpdEh1Yi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJleHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMiLAogICJuYW1lIjogIkV4cGFuZGFibGUgTm90aWZpY2F0aW9ucyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thYW5naW5hbS9leHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMiLAogICJ1dWlkIjogImV4cGFuZGFibGUtbm90aWZpY2F0aW9uc0BrYWFuLmcuaW5hbS5vcmciLAogICJ2ZXJzaW9uIjogOAp9"}}}
 , {"uuid": "orange-share@Yannis4444.github.com", "name": "Orange Share", "pname": "orange-share", "description": "A small python server that accepts requests from an apple shortcut to allow sharing all sorts of media from iOS. It allows sending content right from the share sheet - similar to AirDrop between Apple Devices", "link": "https://extensions.gnome.org/extension/4469/orange-share/", "shell_version_map": {"40": {"version": "7", "sha256": "14xc3j2k6fjh0nif22j3q0xk52ba2qpj96rq80g6cv3cyy8ihi2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc21hbGwgcHl0aG9uIHNlcnZlciB0aGF0IGFjY2VwdHMgcmVxdWVzdHMgZnJvbSBhbiBhcHBsZSBzaG9ydGN1dCB0byBhbGxvdyBzaGFyaW5nIGFsbCBzb3J0cyBvZiBtZWRpYSBmcm9tIGlPUy4gSXQgYWxsb3dzIHNlbmRpbmcgY29udGVudCByaWdodCBmcm9tIHRoZSBzaGFyZSBzaGVldCAtIHNpbWlsYXIgdG8gQWlyRHJvcCBiZXR3ZWVuIEFwcGxlIERldmljZXMiLAogICJuYW1lIjogIk9yYW5nZSBTaGFyZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ZYW5uaXM0NDQ0L09yYW5nZS1TaGFyZS8iLAogICJ1dWlkIjogIm9yYW5nZS1zaGFyZUBZYW5uaXM0NDQ0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}}}
 , {"uuid": "mediacontrols@cliffniff.github.com", "name": "Media Controls", "pname": "media-controls", "description": "Show controls and information of the currently playing media in the panel.\n\n    - Highly customizable\n    - Support GNOME 3.36(beta) , 3.38, 40, 41\n    - Caches album art\n    - Control every element in the extension", "link": "https://extensions.gnome.org/extension/4470/media-controls/", "shell_version_map": {"38": {"version": "20", "sha256": "0cvn15w11vgjpgrwb7436gyy6v7zlbnfk8bd34wyijfd9ny7d0xj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50bHkgcGxheWluZyBtZWRpYSBpbiB0aGUgcGFuZWwuXG5cbiAgICAtIEhpZ2hseSBjdXN0b21pemFibGVcbiAgICAtIFN1cHBvcnQgR05PTUUgMy4zNihiZXRhKSAsIDMuMzgsIDQwLCA0MVxuICAgIC0gQ2FjaGVzIGFsYnVtIGFydFxuICAgIC0gQ29udHJvbCBldmVyeSBlbGVtZW50IGluIHRoZSBleHRlbnNpb24iLAogICJuYW1lIjogIk1lZGlhIENvbnRyb2xzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lZGlhY29udHJvbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NsaWZmbmlmZi9tZWRpYS1jb250cm9scyIsCiAgInV1aWQiOiAibWVkaWFjb250cm9sc0BjbGlmZm5pZmYuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "20", "sha256": "0cvn15w11vgjpgrwb7436gyy6v7zlbnfk8bd34wyijfd9ny7d0xj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50bHkgcGxheWluZyBtZWRpYSBpbiB0aGUgcGFuZWwuXG5cbiAgICAtIEhpZ2hseSBjdXN0b21pemFibGVcbiAgICAtIFN1cHBvcnQgR05PTUUgMy4zNihiZXRhKSAsIDMuMzgsIDQwLCA0MVxuICAgIC0gQ2FjaGVzIGFsYnVtIGFydFxuICAgIC0gQ29udHJvbCBldmVyeSBlbGVtZW50IGluIHRoZSBleHRlbnNpb24iLAogICJuYW1lIjogIk1lZGlhIENvbnRyb2xzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lZGlhY29udHJvbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NsaWZmbmlmZi9tZWRpYS1jb250cm9scyIsCiAgInV1aWQiOiAibWVkaWFjb250cm9sc0BjbGlmZm5pZmYuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}, "41": {"version": "20", "sha256": "0cvn15w11vgjpgrwb7436gyy6v7zlbnfk8bd34wyijfd9ny7d0xj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50bHkgcGxheWluZyBtZWRpYSBpbiB0aGUgcGFuZWwuXG5cbiAgICAtIEhpZ2hseSBjdXN0b21pemFibGVcbiAgICAtIFN1cHBvcnQgR05PTUUgMy4zNihiZXRhKSAsIDMuMzgsIDQwLCA0MVxuICAgIC0gQ2FjaGVzIGFsYnVtIGFydFxuICAgIC0gQ29udHJvbCBldmVyeSBlbGVtZW50IGluIHRoZSBleHRlbnNpb24iLAogICJuYW1lIjogIk1lZGlhIENvbnRyb2xzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lZGlhY29udHJvbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NsaWZmbmlmZi9tZWRpYS1jb250cm9scyIsCiAgInV1aWQiOiAibWVkaWFjb250cm9sc0BjbGlmZm5pZmYuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}}}
-, {"uuid": "sp-tray@sp-tray.esenliyim.github.com", "name": "spotify-tray", "pname": "spotify-tray", "description": "Adds a simple label to the panel that shows currently playing song or podcast on Spotify, nothing more", "link": "https://extensions.gnome.org/extension/4472/spotify-tray/", "shell_version_map": {"38": {"version": "11", "sha256": "0w3wvq4qaz9y34pmrs0c9vq9zg9jnqssl9is7lip9957xq3k0him", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzaW1wbGUgbGFiZWwgdG8gdGhlIHBhbmVsIHRoYXQgc2hvd3MgY3VycmVudGx5IHBsYXlpbmcgc29uZyBvciBwb2RjYXN0IG9uIFNwb3RpZnksIG5vdGhpbmcgbW9yZSIsCiAgIm5hbWUiOiAic3BvdGlmeS10cmF5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwLXRyYXkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VzZW5saXlpbS9zcC10cmF5IiwKICAidXVpZCI6ICJzcC10cmF5QHNwLXRyYXkuZXNlbmxpeWltLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "40": {"version": "11", "sha256": "0w3wvq4qaz9y34pmrs0c9vq9zg9jnqssl9is7lip9957xq3k0him", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzaW1wbGUgbGFiZWwgdG8gdGhlIHBhbmVsIHRoYXQgc2hvd3MgY3VycmVudGx5IHBsYXlpbmcgc29uZyBvciBwb2RjYXN0IG9uIFNwb3RpZnksIG5vdGhpbmcgbW9yZSIsCiAgIm5hbWUiOiAic3BvdGlmeS10cmF5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwLXRyYXkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VzZW5saXlpbS9zcC10cmF5IiwKICAidXVpZCI6ICJzcC10cmF5QHNwLXRyYXkuZXNlbmxpeWltLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "41": {"version": "11", "sha256": "0w3wvq4qaz9y34pmrs0c9vq9zg9jnqssl9is7lip9957xq3k0him", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzaW1wbGUgbGFiZWwgdG8gdGhlIHBhbmVsIHRoYXQgc2hvd3MgY3VycmVudGx5IHBsYXlpbmcgc29uZyBvciBwb2RjYXN0IG9uIFNwb3RpZnksIG5vdGhpbmcgbW9yZSIsCiAgIm5hbWUiOiAic3BvdGlmeS10cmF5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwLXRyYXkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VzZW5saXlpbS9zcC10cmF5IiwKICAidXVpZCI6ICJzcC10cmF5QHNwLXRyYXkuZXNlbmxpeWltLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
+, {"uuid": "sp-tray@sp-tray.esenliyim.github.com", "name": "spotify-tray", "pname": "spotify-tray", "description": "Adds a button to the panel that shows currently playing song on Spotify", "link": "https://extensions.gnome.org/extension/4472/spotify-tray/", "shell_version_map": {"38": {"version": "12", "sha256": "1z1f96x3snwibx088v1p8q5fch03gbp0sqy9izfabak4l07x2i9y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBidXR0b24gdG8gdGhlIHBhbmVsIHRoYXQgc2hvd3MgY3VycmVudGx5IHBsYXlpbmcgc29uZyBvbiBTcG90aWZ5IiwKICAibmFtZSI6ICJzcG90aWZ5LXRyYXkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3AtdHJheSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VzZW5saXlpbS9zcC10cmF5IiwKICAidXVpZCI6ICJzcC10cmF5QHNwLXRyYXkuZXNlbmxpeWltLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "12", "sha256": "1z1f96x3snwibx088v1p8q5fch03gbp0sqy9izfabak4l07x2i9y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBidXR0b24gdG8gdGhlIHBhbmVsIHRoYXQgc2hvd3MgY3VycmVudGx5IHBsYXlpbmcgc29uZyBvbiBTcG90aWZ5IiwKICAibmFtZSI6ICJzcG90aWZ5LXRyYXkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3AtdHJheSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VzZW5saXlpbS9zcC10cmF5IiwKICAidXVpZCI6ICJzcC10cmF5QHNwLXRyYXkuZXNlbmxpeWltLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "41": {"version": "12", "sha256": "1z1f96x3snwibx088v1p8q5fch03gbp0sqy9izfabak4l07x2i9y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBidXR0b24gdG8gdGhlIHBhbmVsIHRoYXQgc2hvd3MgY3VycmVudGx5IHBsYXlpbmcgc29uZyBvbiBTcG90aWZ5IiwKICAibmFtZSI6ICJzcG90aWZ5LXRyYXkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3AtdHJheSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VzZW5saXlpbS9zcC10cmF5IiwKICAidXVpZCI6ICJzcC10cmF5QHNwLXRyYXkuZXNlbmxpeWltLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "42": {"version": "12", "sha256": "1z1f96x3snwibx088v1p8q5fch03gbp0sqy9izfabak4l07x2i9y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBidXR0b24gdG8gdGhlIHBhbmVsIHRoYXQgc2hvd3MgY3VycmVudGx5IHBsYXlpbmcgc29uZyBvbiBTcG90aWZ5IiwKICAibmFtZSI6ICJzcG90aWZ5LXRyYXkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3AtdHJheSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VzZW5saXlpbS9zcC10cmF5IiwKICAidXVpZCI6ICJzcC10cmF5QHNwLXRyYXkuZXNlbmxpeWltLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}}}
 , {"uuid": "aws-default-profile-switcher@kevin-chappell.com", "name": "AWS Default Profile Switcher", "pname": "aws-default-profile-switcher", "description": "Gnome shell extension for quickly setting named profiles as the default", "link": "https://extensions.gnome.org/extension/4473/aws-default-profile-switcher/", "shell_version_map": {"38": {"version": "3", "sha256": "0mal1290kdvqv60m0ps42hnx801knh5vd4mlwg1z7ydj9sw31cfg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgcXVpY2tseSBzZXR0aW5nIG5hbWVkIHByb2ZpbGVzIGFzIHRoZSBkZWZhdWx0IiwKICAibmFtZSI6ICJBV1MgRGVmYXVsdCBQcm9maWxlIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2V2aW5jaGFwcGVsbC9hd3MtZGVmYXVsdC1wcm9maWxlLXN3aXRjaGVyIiwKICAidXVpZCI6ICJhd3MtZGVmYXVsdC1wcm9maWxlLXN3aXRjaGVyQGtldmluLWNoYXBwZWxsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "hide-panel-for-fullscreen-windows-only@github.freder", "name": "Hide panel (only when active window is fullscreen)", "pname": "hide-panel-only-when-active-window-is-fullscreen", "description": "hide top panel only when a fullscreen application has focus", "link": "https://extensions.gnome.org/extension/4475/hide-panel-only-when-active-window-is-fullscreen/", "shell_version_map": {"40": {"version": "2", "sha256": "1hd5agdjq73qiqip0m3grmlxk8klp26pd71cz555414mi3f9mww3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGUgdG9wIHBhbmVsIG9ubHkgd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaGFzIGZvY3VzIiwKICAibmFtZSI6ICJIaWRlIHBhbmVsIChvbmx5IHdoZW4gYWN0aXZlIHdpbmRvdyBpcyBmdWxsc2NyZWVuKSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mcmVkZXIvaGlkZS1wYW5lbC1mb3ItZnVsbHNjcmVlbi13aW5kb3dzLW9ubHkiLAogICJ1dWlkIjogImhpZGUtcGFuZWwtZm9yLWZ1bGxzY3JlZW4td2luZG93cy1vbmx5QGdpdGh1Yi5mcmVkZXIiLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "netspeed@alynx.one", "name": "Net Speed", "pname": "net-speed", "description": "Show current net speed on panel.", "link": "https://extensions.gnome.org/extension/4478/net-speed/", "shell_version_map": {"40": {"version": "2", "sha256": "0j48ai7nqkpr0ymypsicdp7nw59hx9rgya8qws58wx56q9bznl69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBuZXQgc3BlZWQgb24gcGFuZWwuIiwKICAibmFtZSI6ICJOZXQgU3BlZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm5ldHNwZWVkQGFseW54Lm9uZSIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "forge@jmmaranan.com", "name": "Forge", "pname": "forge", "description": "Tiling and window manager for GNOME\n\nMAJOR CHANGES\n\n - New Tabbed Tiling Implementation via St.Widget.\n - New style declarations will reset the custom stylesheets for users when updating. Old styles will be backed up as $HOME/.config/forge/stylesheet/forge/stylesheet.css.bak.\n\n Please report bugs/issues on https://github.com/jmmaranan/forge/issues", "link": "https://extensions.gnome.org/extension/4481/forge/", "shell_version_map": {"38": {"version": "38", "sha256": "0hniflq2x8b1cwh5imlwbbmb703jd46w8828xng6gbw966l093cf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cbk1BSk9SIENIQU5HRVNcblxuIC0gTmV3IFRhYmJlZCBUaWxpbmcgSW1wbGVtZW50YXRpb24gdmlhIFN0LldpZGdldC5cbiAtIE5ldyBzdHlsZSBkZWNsYXJhdGlvbnMgd2lsbCByZXNldCB0aGUgY3VzdG9tIHN0eWxlc2hlZXRzIGZvciB1c2VycyB3aGVuIHVwZGF0aW5nLiBPbGQgc3R5bGVzIHdpbGwgYmUgYmFja2VkIHVwIGFzICRIT01FLy5jb25maWcvZm9yZ2Uvc3R5bGVzaGVldC9mb3JnZS9zdHlsZXNoZWV0LmNzcy5iYWsuXG5cbiBQbGVhc2UgcmVwb3J0IGJ1Z3MvaXNzdWVzIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9qbW1hcmFuYW4vZm9yZ2UvaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZm9yZ2UiLAogICJuYW1lIjogIkZvcmdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZvcmdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam1tYXJhbmFuL2ZvcmdlIiwKICAidXVpZCI6ICJmb3JnZUBqbW1hcmFuYW4uY29tIiwKICAidmVyc2lvbiI6IDM4Cn0="}, "40": {"version": "44", "sha256": "138nmvjlpc2gszbnav5kp649mhhp7fhk9c4y9jqlsc7rzjcy7kzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cbk1BSk9SIENIQU5HRVNcblxuIC0gTmV3IFRhYmJlZCBUaWxpbmcgSW1wbGVtZW50YXRpb24gdmlhIFN0LldpZGdldC5cbiAtIE5ldyBzdHlsZSBkZWNsYXJhdGlvbnMgd2lsbCByZXNldCB0aGUgY3VzdG9tIHN0eWxlc2hlZXRzIGZvciB1c2VycyB3aGVuIHVwZGF0aW5nLiBPbGQgc3R5bGVzIHdpbGwgYmUgYmFja2VkIHVwIGFzICRIT01FLy5jb25maWcvZm9yZ2Uvc3R5bGVzaGVldC9mb3JnZS9zdHlsZXNoZWV0LmNzcy5iYWsuXG5cbiBQbGVhc2UgcmVwb3J0IGJ1Z3MvaXNzdWVzIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9qbW1hcmFuYW4vZm9yZ2UvaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZm9yZ2UiLAogICJuYW1lIjogIkZvcmdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZvcmdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qbW1hcmFuYW4vZm9yZ2UiLAogICJ1dWlkIjogImZvcmdlQGptbWFyYW5hbi5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}, "41": {"version": "44", "sha256": "138nmvjlpc2gszbnav5kp649mhhp7fhk9c4y9jqlsc7rzjcy7kzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cbk1BSk9SIENIQU5HRVNcblxuIC0gTmV3IFRhYmJlZCBUaWxpbmcgSW1wbGVtZW50YXRpb24gdmlhIFN0LldpZGdldC5cbiAtIE5ldyBzdHlsZSBkZWNsYXJhdGlvbnMgd2lsbCByZXNldCB0aGUgY3VzdG9tIHN0eWxlc2hlZXRzIGZvciB1c2VycyB3aGVuIHVwZGF0aW5nLiBPbGQgc3R5bGVzIHdpbGwgYmUgYmFja2VkIHVwIGFzICRIT01FLy5jb25maWcvZm9yZ2Uvc3R5bGVzaGVldC9mb3JnZS9zdHlsZXNoZWV0LmNzcy5iYWsuXG5cbiBQbGVhc2UgcmVwb3J0IGJ1Z3MvaXNzdWVzIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9qbW1hcmFuYW4vZm9yZ2UvaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZm9yZ2UiLAogICJuYW1lIjogIkZvcmdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZvcmdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qbW1hcmFuYW4vZm9yZ2UiLAogICJ1dWlkIjogImZvcmdlQGptbWFyYW5hbi5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}}}
 , {"uuid": "autonightlight@zefty.github.io", "name": "Auto Night Light", "pname": "auto-night-light", "description": "Automatically adjust night light", "link": "https://extensions.gnome.org/extension/4482/auto-night-light/", "shell_version_map": {"38": {"version": "7", "sha256": "0v76v4z82agn1ay8c0mb2jgnzjf1h9kcp13jhvypcigalfq9qp4n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgYWRqdXN0IG5pZ2h0IGxpZ2h0IiwKICAibmFtZSI6ICJBdXRvIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9aZWZ0eS9BdXRvTmlnaHRMaWdodCIsCiAgInV1aWQiOiAiYXV0b25pZ2h0bGlnaHRAemVmdHkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "0v76v4z82agn1ay8c0mb2jgnzjf1h9kcp13jhvypcigalfq9qp4n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgYWRqdXN0IG5pZ2h0IGxpZ2h0IiwKICAibmFtZSI6ICJBdXRvIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9aZWZ0eS9BdXRvTmlnaHRMaWdodCIsCiAgInV1aWQiOiAiYXV0b25pZ2h0bGlnaHRAemVmdHkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "41": {"version": "7", "sha256": "0v76v4z82agn1ay8c0mb2jgnzjf1h9kcp13jhvypcigalfq9qp4n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgYWRqdXN0IG5pZ2h0IGxpZ2h0IiwKICAibmFtZSI6ICJBdXRvIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9aZWZ0eS9BdXRvTmlnaHRMaWdodCIsCiAgInV1aWQiOiAiYXV0b25pZ2h0bGlnaHRAemVmdHkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
 , {"uuid": "favourites-in-appgrid@harshadgavali.gitlab.org", "name": "Favourites in AppGrid", "pname": "favourites-in-appgrid", "description": "Keep favourite applications in AppGrid", "link": "https://extensions.gnome.org/extension/4485/favourites-in-appgrid/", "shell_version_map": {"40": {"version": "2", "sha256": "0cbz05qmn0i7c3591c5h5znq4fp90xc9dz1jdaj213pybynqdphl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgZmF2b3VyaXRlIGFwcGxpY2F0aW9ucyBpbiBBcHBHcmlkIiwKICAibmFtZSI6ICJGYXZvdXJpdGVzIGluIEFwcEdyaWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9oYXJzaGFkZ2F2YWxpL2Zhdm91cml0ZXMtaW4tYXBwZ3JpZC8iLAogICJ1dWlkIjogImZhdm91cml0ZXMtaW4tYXBwZ3JpZEBoYXJzaGFkZ2F2YWxpLmdpdGxhYi5vcmciLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "0cbz05qmn0i7c3591c5h5znq4fp90xc9dz1jdaj213pybynqdphl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgZmF2b3VyaXRlIGFwcGxpY2F0aW9ucyBpbiBBcHBHcmlkIiwKICAibmFtZSI6ICJGYXZvdXJpdGVzIGluIEFwcEdyaWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9oYXJzaGFkZ2F2YWxpL2Zhdm91cml0ZXMtaW4tYXBwZ3JpZC8iLAogICJ1dWlkIjogImZhdm91cml0ZXMtaW4tYXBwZ3JpZEBoYXJzaGFkZ2F2YWxpLmdpdGxhYi5vcmciLAogICJ2ZXJzaW9uIjogMgp9"}, "42": {"version": "2", "sha256": "0cbz05qmn0i7c3591c5h5znq4fp90xc9dz1jdaj213pybynqdphl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgZmF2b3VyaXRlIGFwcGxpY2F0aW9ucyBpbiBBcHBHcmlkIiwKICAibmFtZSI6ICJGYXZvdXJpdGVzIGluIEFwcEdyaWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9oYXJzaGFkZ2F2YWxpL2Zhdm91cml0ZXMtaW4tYXBwZ3JpZC8iLAogICJ1dWlkIjogImZhdm91cml0ZXMtaW4tYXBwZ3JpZEBoYXJzaGFkZ2F2YWxpLmdpdGxhYi5vcmciLAogICJ2ZXJzaW9uIjogMgp9"}}}
-, {"uuid": "dark-variant@hardpixel.eu", "name": "Dark Variant", "pname": "dark-variant", "description": "Enable dark window decorations on applications. This extension is not compatible with applications that use Client Side Decorations (CSD).\n\nThis extension depends on some Xorg utilities. To install them:\n- Debian/Ubuntu: apt install x11-utils\n- Fedora/RHEL: dnf install xorg-x11-utils\n- Arch: pacman -S xorg-xprop\n\n*Settings are provided to enable/disable applications.", "link": "https://extensions.gnome.org/extension/4488/dark-variant/", "shell_version_map": {"40": {"version": "3", "sha256": "08ywrbcqzijfw9hxlxn56j0dbavq413sbf2qlf6xpc9mi825jhin", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBkYXJrIHdpbmRvdyBkZWNvcmF0aW9ucyBvbiBhcHBsaWNhdGlvbnMuIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggYXBwbGljYXRpb25zIHRoYXQgdXNlIENsaWVudCBTaWRlIERlY29yYXRpb25zIChDU0QpLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgeDExLXV0aWxzXG4tIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIGFwcGxpY2F0aW9ucy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkYXJrLXZhcmlhbnQiLAogICJuYW1lIjogIkRhcmsgVmFyaWFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXJrLXZhcmlhbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9kYXJrLXZhcmlhbnQiLAogICJ1dWlkIjogImRhcmstdmFyaWFudEBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "08ywrbcqzijfw9hxlxn56j0dbavq413sbf2qlf6xpc9mi825jhin", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBkYXJrIHdpbmRvdyBkZWNvcmF0aW9ucyBvbiBhcHBsaWNhdGlvbnMuIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggYXBwbGljYXRpb25zIHRoYXQgdXNlIENsaWVudCBTaWRlIERlY29yYXRpb25zIChDU0QpLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgeDExLXV0aWxzXG4tIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIGFwcGxpY2F0aW9ucy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkYXJrLXZhcmlhbnQiLAogICJuYW1lIjogIkRhcmsgVmFyaWFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXJrLXZhcmlhbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9kYXJrLXZhcmlhbnQiLAogICJ1dWlkIjogImRhcmstdmFyaWFudEBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "dark-variant@hardpixel.eu", "name": "Dark Variant", "pname": "dark-variant", "description": "Enable dark window decorations on applications. This extension is not compatible with applications that use Client Side Decorations (CSD).\n\nThis extension depends on some Xorg utilities. To install them:\n- Debian/Ubuntu: apt install x11-utils\n- Fedora/RHEL: dnf install xorg-x11-utils\n- Arch: pacman -S xorg-xprop\n\n*Settings are provided to enable/disable applications.", "link": "https://extensions.gnome.org/extension/4488/dark-variant/", "shell_version_map": {"40": {"version": "6", "sha256": "1j5pbkxqiqi6nnm1q0ygq9cw9qbrrpsykbrd9zami230wqz6adhy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBkYXJrIHdpbmRvdyBkZWNvcmF0aW9ucyBvbiBhcHBsaWNhdGlvbnMuIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggYXBwbGljYXRpb25zIHRoYXQgdXNlIENsaWVudCBTaWRlIERlY29yYXRpb25zIChDU0QpLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgeDExLXV0aWxzXG4tIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIGFwcGxpY2F0aW9ucy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkYXJrLXZhcmlhbnQiLAogICJuYW1lIjogIkRhcmsgVmFyaWFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXJrLXZhcmlhbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvZGFyay12YXJpYW50IiwKICAidXVpZCI6ICJkYXJrLXZhcmlhbnRAaGFyZHBpeGVsLmV1IiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "1j5pbkxqiqi6nnm1q0ygq9cw9qbrrpsykbrd9zami230wqz6adhy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBkYXJrIHdpbmRvdyBkZWNvcmF0aW9ucyBvbiBhcHBsaWNhdGlvbnMuIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggYXBwbGljYXRpb25zIHRoYXQgdXNlIENsaWVudCBTaWRlIERlY29yYXRpb25zIChDU0QpLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgeDExLXV0aWxzXG4tIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIGFwcGxpY2F0aW9ucy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkYXJrLXZhcmlhbnQiLAogICJuYW1lIjogIkRhcmsgVmFyaWFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXJrLXZhcmlhbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvZGFyay12YXJpYW50IiwKICAidXVpZCI6ICJkYXJrLXZhcmlhbnRAaGFyZHBpeGVsLmV1IiwKICAidmVyc2lvbiI6IDYKfQ=="}, "42": {"version": "7", "sha256": "1mjw1ifws6a8dw2aifxhnmljg9wqb1kxz21cr61qnrhxphxmgv1k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBkYXJrIHdpbmRvdyBkZWNvcmF0aW9ucyBvbiBhcHBsaWNhdGlvbnMuIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggYXBwbGljYXRpb25zIHRoYXQgdXNlIENsaWVudCBTaWRlIERlY29yYXRpb25zIChDU0QpLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgeDExLXV0aWxzXG4tIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIGFwcGxpY2F0aW9ucy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkYXJrLXZhcmlhbnQiLAogICJuYW1lIjogIkRhcmsgVmFyaWFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXJrLXZhcmlhbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL2RhcmstdmFyaWFudCIsCiAgInV1aWQiOiAiZGFyay12YXJpYW50QGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
 , {"uuid": "PrivacyMenu@stuarthayhurst", "name": "Privacy Settings Menu", "pname": "privacy-settings-menu", "description": "Add a privacy menu to the top bar for quick access to privacy settings", "link": "https://extensions.gnome.org/extension/4491/privacy-settings-menu/", "shell_version_map": {"38": {"version": "5", "sha256": "1x6rza2gv7qchkv75cpcy8jx7nl5f8dg5wrjvawvqv4h0kdlcgc9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHByaXZhY3kgbWVudSB0byB0aGUgdG9wIGJhciBmb3IgcXVpY2sgYWNjZXNzIHRvIHByaXZhY3kgc2V0dGluZ3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgIm5hbWUiOiAiUHJpdmFjeSBTZXR0aW5ncyBNZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvcHJpdmFjeS1tZW51LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiUHJpdmFjeU1lbnVAc3R1YXJ0aGF5aHVyc3QiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "1x6rza2gv7qchkv75cpcy8jx7nl5f8dg5wrjvawvqv4h0kdlcgc9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHByaXZhY3kgbWVudSB0byB0aGUgdG9wIGJhciBmb3IgcXVpY2sgYWNjZXNzIHRvIHByaXZhY3kgc2V0dGluZ3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgIm5hbWUiOiAiUHJpdmFjeSBTZXR0aW5ncyBNZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvcHJpdmFjeS1tZW51LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiUHJpdmFjeU1lbnVAc3R1YXJ0aGF5aHVyc3QiLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "1x6rza2gv7qchkv75cpcy8jx7nl5f8dg5wrjvawvqv4h0kdlcgc9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHByaXZhY3kgbWVudSB0byB0aGUgdG9wIGJhciBmb3IgcXVpY2sgYWNjZXNzIHRvIHByaXZhY3kgc2V0dGluZ3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgIm5hbWUiOiAiUHJpdmFjeSBTZXR0aW5ncyBNZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvcHJpdmFjeS1tZW51LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiUHJpdmFjeU1lbnVAc3R1YXJ0aGF5aHVyc3QiLAogICJ2ZXJzaW9uIjogNQp9"}, "42": {"version": "5", "sha256": "1x6rza2gv7qchkv75cpcy8jx7nl5f8dg5wrjvawvqv4h0kdlcgc9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHByaXZhY3kgbWVudSB0byB0aGUgdG9wIGJhciBmb3IgcXVpY2sgYWNjZXNzIHRvIHByaXZhY3kgc2V0dGluZ3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgIm5hbWUiOiAiUHJpdmFjeSBTZXR0aW5ncyBNZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvcHJpdmFjeS1tZW51LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiUHJpdmFjeU1lbnVAc3R1YXJ0aGF5aHVyc3QiLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "hide-panel-lite@fthx", "name": "Hide Panel Lite", "pname": "hide-panel-light-version-without-hot-corner", "description": "Hide top panel except in overview.\n\nFor those who don't need a hot corner (e.g. running GNOME 40+ with three fingers gestures). Very very light extension. No options, no bugs. ;-)", "link": "https://extensions.gnome.org/extension/4496/hide-panel-light-version-without-hot-corner/", "shell_version_map": {"38": {"version": "2", "sha256": "13kwd7sh0w34881wwaqvv0mchd7ym7av5s658jcrq2n8n2zma4xi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy5cblxuRm9yIHRob3NlIHdobyBkb24ndCBuZWVkIGEgaG90IGNvcm5lciAoZS5nLiBydW5uaW5nIEdOT01FIDQwKyB3aXRoIHRocmVlIGZpbmdlcnMgZ2VzdHVyZXMpLiBWZXJ5IHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBObyBvcHRpb25zLCBubyBidWdzLiA7LSkiLAogICJuYW1lIjogIkhpZGUgUGFuZWwgTGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbC1saXRlIiwKICAidXVpZCI6ICJoaWRlLXBhbmVsLWxpdGVAZnRoeCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "13kwd7sh0w34881wwaqvv0mchd7ym7av5s658jcrq2n8n2zma4xi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy5cblxuRm9yIHRob3NlIHdobyBkb24ndCBuZWVkIGEgaG90IGNvcm5lciAoZS5nLiBydW5uaW5nIEdOT01FIDQwKyB3aXRoIHRocmVlIGZpbmdlcnMgZ2VzdHVyZXMpLiBWZXJ5IHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBObyBvcHRpb25zLCBubyBidWdzLiA7LSkiLAogICJuYW1lIjogIkhpZGUgUGFuZWwgTGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbC1saXRlIiwKICAidXVpZCI6ICJoaWRlLXBhbmVsLWxpdGVAZnRoeCIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "13kwd7sh0w34881wwaqvv0mchd7ym7av5s658jcrq2n8n2zma4xi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy5cblxuRm9yIHRob3NlIHdobyBkb24ndCBuZWVkIGEgaG90IGNvcm5lciAoZS5nLiBydW5uaW5nIEdOT01FIDQwKyB3aXRoIHRocmVlIGZpbmdlcnMgZ2VzdHVyZXMpLiBWZXJ5IHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBObyBvcHRpb25zLCBubyBidWdzLiA7LSkiLAogICJuYW1lIjogIkhpZGUgUGFuZWwgTGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbC1saXRlIiwKICAidXVpZCI6ICJoaWRlLXBhbmVsLWxpdGVAZnRoeCIsCiAgInZlcnNpb24iOiAyCn0="}, "42": {"version": "2", "sha256": "13kwd7sh0w34881wwaqvv0mchd7ym7av5s658jcrq2n8n2zma4xi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy5cblxuRm9yIHRob3NlIHdobyBkb24ndCBuZWVkIGEgaG90IGNvcm5lciAoZS5nLiBydW5uaW5nIEdOT01FIDQwKyB3aXRoIHRocmVlIGZpbmdlcnMgZ2VzdHVyZXMpLiBWZXJ5IHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBObyBvcHRpb25zLCBubyBidWdzLiA7LSkiLAogICJuYW1lIjogIkhpZGUgUGFuZWwgTGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbC1saXRlIiwKICAidXVpZCI6ICJoaWRlLXBhbmVsLWxpdGVAZnRoeCIsCiAgInZlcnNpb24iOiAyCn0="}}}
-, {"uuid": "ssm-gnome@lgiki.net", "name": "Simple System Monitor", "pname": "simple-system-monitor", "description": "Show current CPU usage, memory usage and net speed on panel.\nFor best experience, please use monospaced font.\n\nThis is a fork of https://extensions.gnome.org/extension/4478/net-speed/.", "link": "https://extensions.gnome.org/extension/4506/simple-system-monitor/", "shell_version_map": {"38": {"version": "7", "sha256": "034ajnkdj3npjzlj3n8glxanjnhv12904sshkbjjrx6swmklcqs3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBDUFUgdXNhZ2UsIG1lbW9yeSB1c2FnZSBhbmQgbmV0IHNwZWVkIG9uIHBhbmVsLlxuRm9yIGJlc3QgZXhwZXJpZW5jZSwgcGxlYXNlIHVzZSBtb25vc3BhY2VkIGZvbnQuXG5cblRoaXMgaXMgYSBmb3JrIG9mIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzQ0NzgvbmV0LXNwZWVkLy4iLAogICJuYW1lIjogIlNpbXBsZSBTeXN0ZW0gTW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTEdpa2kvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNpbXBsZS1zeXN0ZW0tbW9uaXRvciIsCiAgInV1aWQiOiAic3NtLWdub21lQGxnaWtpLm5ldCIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "034ajnkdj3npjzlj3n8glxanjnhv12904sshkbjjrx6swmklcqs3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBDUFUgdXNhZ2UsIG1lbW9yeSB1c2FnZSBhbmQgbmV0IHNwZWVkIG9uIHBhbmVsLlxuRm9yIGJlc3QgZXhwZXJpZW5jZSwgcGxlYXNlIHVzZSBtb25vc3BhY2VkIGZvbnQuXG5cblRoaXMgaXMgYSBmb3JrIG9mIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzQ0NzgvbmV0LXNwZWVkLy4iLAogICJuYW1lIjogIlNpbXBsZSBTeXN0ZW0gTW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTEdpa2kvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNpbXBsZS1zeXN0ZW0tbW9uaXRvciIsCiAgInV1aWQiOiAic3NtLWdub21lQGxnaWtpLm5ldCIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "034ajnkdj3npjzlj3n8glxanjnhv12904sshkbjjrx6swmklcqs3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBDUFUgdXNhZ2UsIG1lbW9yeSB1c2FnZSBhbmQgbmV0IHNwZWVkIG9uIHBhbmVsLlxuRm9yIGJlc3QgZXhwZXJpZW5jZSwgcGxlYXNlIHVzZSBtb25vc3BhY2VkIGZvbnQuXG5cblRoaXMgaXMgYSBmb3JrIG9mIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzQ0NzgvbmV0LXNwZWVkLy4iLAogICJuYW1lIjogIlNpbXBsZSBTeXN0ZW0gTW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTEdpa2kvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNpbXBsZS1zeXN0ZW0tbW9uaXRvciIsCiAgInV1aWQiOiAic3NtLWdub21lQGxnaWtpLm5ldCIsCiAgInZlcnNpb24iOiA3Cn0="}}}
+, {"uuid": "ssm-gnome@lgiki.net", "name": "Simple System Monitor", "pname": "simple-system-monitor", "description": "Show current CPU usage, memory usage and net speed on panel.\nFor best experience, please use monospaced font.\n\nThis is a fork of https://extensions.gnome.org/extension/4478/net-speed/.", "link": "https://extensions.gnome.org/extension/4506/simple-system-monitor/", "shell_version_map": {"38": {"version": "8", "sha256": "1689c1mgkr9jqifka701k66138ckaw7mh1bcfha06rwzdqv0vxw3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBDUFUgdXNhZ2UsIG1lbW9yeSB1c2FnZSBhbmQgbmV0IHNwZWVkIG9uIHBhbmVsLlxuRm9yIGJlc3QgZXhwZXJpZW5jZSwgcGxlYXNlIHVzZSBtb25vc3BhY2VkIGZvbnQuXG5cblRoaXMgaXMgYSBmb3JrIG9mIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzQ0NzgvbmV0LXNwZWVkLy4iLAogICJuYW1lIjogIlNpbXBsZSBTeXN0ZW0gTW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xHaWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zaW1wbGUtc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogInNzbS1nbm9tZUBsZ2lraS5uZXQiLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "1689c1mgkr9jqifka701k66138ckaw7mh1bcfha06rwzdqv0vxw3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBDUFUgdXNhZ2UsIG1lbW9yeSB1c2FnZSBhbmQgbmV0IHNwZWVkIG9uIHBhbmVsLlxuRm9yIGJlc3QgZXhwZXJpZW5jZSwgcGxlYXNlIHVzZSBtb25vc3BhY2VkIGZvbnQuXG5cblRoaXMgaXMgYSBmb3JrIG9mIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzQ0NzgvbmV0LXNwZWVkLy4iLAogICJuYW1lIjogIlNpbXBsZSBTeXN0ZW0gTW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xHaWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zaW1wbGUtc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogInNzbS1nbm9tZUBsZ2lraS5uZXQiLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "1689c1mgkr9jqifka701k66138ckaw7mh1bcfha06rwzdqv0vxw3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBDUFUgdXNhZ2UsIG1lbW9yeSB1c2FnZSBhbmQgbmV0IHNwZWVkIG9uIHBhbmVsLlxuRm9yIGJlc3QgZXhwZXJpZW5jZSwgcGxlYXNlIHVzZSBtb25vc3BhY2VkIGZvbnQuXG5cblRoaXMgaXMgYSBmb3JrIG9mIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzQ0NzgvbmV0LXNwZWVkLy4iLAogICJuYW1lIjogIlNpbXBsZSBTeXN0ZW0gTW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xHaWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zaW1wbGUtc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogInNzbS1nbm9tZUBsZ2lraS5uZXQiLAogICJ2ZXJzaW9uIjogOAp9"}, "42": {"version": "8", "sha256": "1689c1mgkr9jqifka701k66138ckaw7mh1bcfha06rwzdqv0vxw3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBDUFUgdXNhZ2UsIG1lbW9yeSB1c2FnZSBhbmQgbmV0IHNwZWVkIG9uIHBhbmVsLlxuRm9yIGJlc3QgZXhwZXJpZW5jZSwgcGxlYXNlIHVzZSBtb25vc3BhY2VkIGZvbnQuXG5cblRoaXMgaXMgYSBmb3JrIG9mIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzQ0NzgvbmV0LXNwZWVkLy4iLAogICJuYW1lIjogIlNpbXBsZSBTeXN0ZW0gTW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xHaWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zaW1wbGUtc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogInNzbS1nbm9tZUBsZ2lraS5uZXQiLAogICJ2ZXJzaW9uIjogOAp9"}}}
 , {"uuid": "unredirect@aunetx", "name": "Disable unredirect fullscreen windows", "pname": "disable-unredirect-fullscreen-windows", "description": "Disables unredirect fullscreen windows in gnome-shell to prevent artifacts when in fullscreen.\n\nThis version makes sure the unredirect option is not re-enabled automatically by the shell.", "link": "https://extensions.gnome.org/extension/4509/disable-unredirect-fullscreen-windows/", "shell_version_map": {"40": {"version": "3", "sha256": "1mgvpzzfdzn5qsxwz5911a8qgq0r34az6xpmqr72ksx6yf13l85z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHByZXZlbnQgYXJ0aWZhY3RzIHdoZW4gaW4gZnVsbHNjcmVlbi5cblxuVGhpcyB2ZXJzaW9uIG1ha2VzIHN1cmUgdGhlIHVucmVkaXJlY3Qgb3B0aW9uIGlzIG5vdCByZS1lbmFibGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHNoZWxsLiIsCiAgIm5hbWUiOiAiRGlzYWJsZSB1bnJlZGlyZWN0IGZ1bGxzY3JlZW4gd2luZG93cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAYXVuZXR4IiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "3", "sha256": "1mgvpzzfdzn5qsxwz5911a8qgq0r34az6xpmqr72ksx6yf13l85z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHByZXZlbnQgYXJ0aWZhY3RzIHdoZW4gaW4gZnVsbHNjcmVlbi5cblxuVGhpcyB2ZXJzaW9uIG1ha2VzIHN1cmUgdGhlIHVucmVkaXJlY3Qgb3B0aW9uIGlzIG5vdCByZS1lbmFibGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHNoZWxsLiIsCiAgIm5hbWUiOiAiRGlzYWJsZSB1bnJlZGlyZWN0IGZ1bGxzY3JlZW4gd2luZG93cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAYXVuZXR4IiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
-, {"uuid": "nepali-date@biplab", "name": "Nepali Date", "pname": "nepali-calendar", "description": "Shows nepali date on the panel.", "link": "https://extensions.gnome.org/extension/4518/nepali-calendar/", "shell_version_map": {"40": {"version": "11", "sha256": "1g4zdhypy553wbdq0pnxva05ab6p3dv5dp4jcw8vrf8f0kblxxa5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "1g4zdhypy553wbdq0pnxva05ab6p3dv5dp4jcw8vrf8f0kblxxa5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxMQp9"}}}
+, {"uuid": "nepali-date@biplab", "name": "Nepali Date", "pname": "nepali-calendar", "description": "Shows nepali date on the panel.", "link": "https://extensions.gnome.org/extension/4518/nepali-calendar/", "shell_version_map": {"40": {"version": "15", "sha256": "118paqkwsy930bcxzx4sp3f4xg06rl9jwqbwchfq0i19qk8gw620", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxNQp9"}, "41": {"version": "15", "sha256": "118paqkwsy930bcxzx4sp3f4xg06rl9jwqbwchfq0i19qk8gw620", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxNQp9"}}}
 , {"uuid": "clock-left@mapuut", "name": "Clock Left", "pname": "clock-left", "description": "Move clock to left", "link": "https://extensions.gnome.org/extension/4526/clock-left/", "shell_version_map": {"38": {"version": "2", "sha256": "027wlahy8pwic90cyx677456miaj1kpmfw85r0y0iwr66i3k00qf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCIsCiAgIm5hbWUiOiAiQ2xvY2sgTGVmdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNsb2NrLWxlZnRAbWFwdXV0IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "027wlahy8pwic90cyx677456miaj1kpmfw85r0y0iwr66i3k00qf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCIsCiAgIm5hbWUiOiAiQ2xvY2sgTGVmdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNsb2NrLWxlZnRAbWFwdXV0IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "41": {"version": "2", "sha256": "027wlahy8pwic90cyx677456miaj1kpmfw85r0y0iwr66i3k00qf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCIsCiAgIm5hbWUiOiAiQ2xvY2sgTGVmdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNsb2NrLWxlZnRAbWFwdXV0IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
-, {"uuid": "cpudots@kdevmen.gmail.com", "name": "CPUdots", "pname": "cpudots", "description": "A basic cpu graph inspired from xfce4 cpu freq monitor plugin. it's incomplete right now... I'll update as soon as I get some time off my job.", "link": "https://extensions.gnome.org/extension/4530/cpudots/", "shell_version_map": {"40": {"version": "2", "sha256": "1zjix04gprs1v3hvj5mgcipff14wahq192kacbqjw04p0ia90974", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmFzaWMgY3B1IGdyYXBoIGluc3BpcmVkIGZyb20geGZjZTQgY3B1IGZyZXEgbW9uaXRvciBwbHVnaW4uIGl0J3MgaW5jb21wbGV0ZSByaWdodCBub3cuLi4gSSdsbCB1cGRhdGUgYXMgc29vbiBhcyBJIGdldCBzb21lIHRpbWUgb2ZmIG15IGpvYi4iLAogICJuYW1lIjogIkNQVWRvdHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5hbWV6aW4uZGR0ZXJtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiY3B1ZG90c0BrZGV2bWVuLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "1zjix04gprs1v3hvj5mgcipff14wahq192kacbqjw04p0ia90974", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmFzaWMgY3B1IGdyYXBoIGluc3BpcmVkIGZyb20geGZjZTQgY3B1IGZyZXEgbW9uaXRvciBwbHVnaW4uIGl0J3MgaW5jb21wbGV0ZSByaWdodCBub3cuLi4gSSdsbCB1cGRhdGUgYXMgc29vbiBhcyBJIGdldCBzb21lIHRpbWUgb2ZmIG15IGpvYi4iLAogICJuYW1lIjogIkNQVWRvdHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5hbWV6aW4uZGR0ZXJtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiY3B1ZG90c0BrZGV2bWVuLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "cpudots@kdevmen.gmail.com", "name": "CPUdots", "pname": "cpudots", "description": "A basic cpu graph inspired from xfce4 cpu freq monitor plugin. it's incomplete right now... I'll update as soon as I get some time off my job.", "link": "https://extensions.gnome.org/extension/4530/cpudots/", "shell_version_map": {"40": {"version": "5", "sha256": "0v7ps7d5kkh6rll85qbx6nijy59h82qv9dwca4k4f2x3b8z9gz0n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmFzaWMgY3B1IGdyYXBoIGluc3BpcmVkIGZyb20geGZjZTQgY3B1IGZyZXEgbW9uaXRvciBwbHVnaW4uIGl0J3MgaW5jb21wbGV0ZSByaWdodCBub3cuLi4gSSdsbCB1cGRhdGUgYXMgc29vbiBhcyBJIGdldCBzb21lIHRpbWUgb2ZmIG15IGpvYi4iLAogICJuYW1lIjogIkNQVWRvdHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5hbWV6aW4uZGR0ZXJtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNwdWRvdHNAa2Rldm1lbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "0v7ps7d5kkh6rll85qbx6nijy59h82qv9dwca4k4f2x3b8z9gz0n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmFzaWMgY3B1IGdyYXBoIGluc3BpcmVkIGZyb20geGZjZTQgY3B1IGZyZXEgbW9uaXRvciBwbHVnaW4uIGl0J3MgaW5jb21wbGV0ZSByaWdodCBub3cuLi4gSSdsbCB1cGRhdGUgYXMgc29vbiBhcyBJIGdldCBzb21lIHRpbWUgb2ZmIG15IGpvYi4iLAogICJuYW1lIjogIkNQVWRvdHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5hbWV6aW4uZGR0ZXJtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNwdWRvdHNAa2Rldm1lbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "42": {"version": "5", "sha256": "0v7ps7d5kkh6rll85qbx6nijy59h82qv9dwca4k4f2x3b8z9gz0n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmFzaWMgY3B1IGdyYXBoIGluc3BpcmVkIGZyb20geGZjZTQgY3B1IGZyZXEgbW9uaXRvciBwbHVnaW4uIGl0J3MgaW5jb21wbGV0ZSByaWdodCBub3cuLi4gSSdsbCB1cGRhdGUgYXMgc29vbiBhcyBJIGdldCBzb21lIHRpbWUgb2ZmIG15IGpvYi4iLAogICJuYW1lIjogIkNQVWRvdHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5hbWV6aW4uZGR0ZXJtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNwdWRvdHNAa2Rldm1lbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "taildropsendxuwuming2014@outlook.com", "name": "TailDrop Send", "pname": "taildrop-send", "description": "Send files via tailscale", "link": "https://extensions.gnome.org/extension/4533/taildrop-send/", "shell_version_map": {"40": {"version": "4", "sha256": "1w2nydglm2n0kyzwd4rh5q0x8h2d1ycy4ygxj00qfpxxnw477xda", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlbmQgZmlsZXMgdmlhIHRhaWxzY2FsZSIsCiAgImdldHRleHQtZG9tYWluIjogInRhaWxkcm9wLXNlbmQtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJUYWlsRHJvcCBTZW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhaWxkcm9wc2VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnIyMzMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhaWxkcm9wc2VuZCIsCiAgInV1aWQiOiAidGFpbGRyb3BzZW5keHV3dW1pbmcyMDE0QG91dGxvb2suY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1w2nydglm2n0kyzwd4rh5q0x8h2d1ycy4ygxj00qfpxxnw477xda", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlbmQgZmlsZXMgdmlhIHRhaWxzY2FsZSIsCiAgImdldHRleHQtZG9tYWluIjogInRhaWxkcm9wLXNlbmQtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJUYWlsRHJvcCBTZW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhaWxkcm9wc2VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnIyMzMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhaWxkcm9wc2VuZCIsCiAgInV1aWQiOiAidGFpbGRyb3BzZW5keHV3dW1pbmcyMDE0QG91dGxvb2suY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "toggle-mute-on-middle-click-updated@konradmb", "name": "Toggle Mute on Middle Click", "pname": "toggle-mute-on-middle-click", "description": "Toggle mute by middle-clicking the volume indicator. Updated for Gnome 40 from: https://extensions.gnome.org/extension/1473/toggle-mute-on-middle-click/", "link": "https://extensions.gnome.org/extension/4538/toggle-mute-on-middle-click/", "shell_version_map": {"40": {"version": "1", "sha256": "0ag52arddv2dypfr1bs28c6dnfq0lrccibbl6cdzjx4d26j4cv4z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBtdXRlIGJ5IG1pZGRsZS1jbGlja2luZyB0aGUgdm9sdW1lIGluZGljYXRvci4gVXBkYXRlZCBmb3IgR25vbWUgNDAgZnJvbTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTQ3My90b2dnbGUtbXV0ZS1vbi1taWRkbGUtY2xpY2svIiwKICAibmFtZSI6ICJUb2dnbGUgTXV0ZSBvbiBNaWRkbGUgQ2xpY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRvZ2dsZS1tdXRlLW9uLW1pZGRsZS1jbGljay11cGRhdGVkQGtvbnJhZG1iIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
 , {"uuid": "autohide-volume@unboiled.info", "name": "Autohide Volume", "pname": "autohide-volume", "description": "Autohide volume indicator when muted\n\nI'm not interested in the fact my output audio device is muted: this is how it's supposed to be. But if it's unmuted, then I want to see the icon.\n\nExcept when the mic is on, then I'm probably in a call, frantically figuring out what's wrong.", "link": "https://extensions.gnome.org/extension/4539/autohide-volume/", "shell_version_map": {"41": {"version": "2", "sha256": "1mxzrj5a9zdnkb2hvlmqnwnshnnyw43al59x466jp2pa7si6qy17", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZFxuXG5JJ20gbm90IGludGVyZXN0ZWQgaW4gdGhlIGZhY3QgbXkgb3V0cHV0IGF1ZGlvIGRldmljZSBpcyBtdXRlZDogdGhpcyBpcyBob3cgaXQncyBzdXBwb3NlZCB0byBiZS4gQnV0IGlmIGl0J3MgdW5tdXRlZCwgdGhlbiBJIHdhbnQgdG8gc2VlIHRoZSBpY29uLlxuXG5FeGNlcHQgd2hlbiB0aGUgbWljIGlzIG9uLCB0aGVuIEknbSBwcm9iYWJseSBpbiBhIGNhbGwsIGZyYW50aWNhbGx5IGZpZ3VyaW5nIG91dCB3aGF0J3Mgd3JvbmcuIiwKICAibmFtZSI6ICJBdXRvaGlkZSBWb2x1bWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vdDE4NDI1Ni9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXV0b2hpZGUtdm9sdW1lIiwKICAidXVpZCI6ICJhdXRvaGlkZS12b2x1bWVAdW5ib2lsZWQuaW5mbyIsCiAgInZlcnNpb24iOiAyCn0="}, "42": {"version": "2", "sha256": "1mxzrj5a9zdnkb2hvlmqnwnshnnyw43al59x466jp2pa7si6qy17", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZFxuXG5JJ20gbm90IGludGVyZXN0ZWQgaW4gdGhlIGZhY3QgbXkgb3V0cHV0IGF1ZGlvIGRldmljZSBpcyBtdXRlZDogdGhpcyBpcyBob3cgaXQncyBzdXBwb3NlZCB0byBiZS4gQnV0IGlmIGl0J3MgdW5tdXRlZCwgdGhlbiBJIHdhbnQgdG8gc2VlIHRoZSBpY29uLlxuXG5FeGNlcHQgd2hlbiB0aGUgbWljIGlzIG9uLCB0aGVuIEknbSBwcm9iYWJseSBpbiBhIGNhbGwsIGZyYW50aWNhbGx5IGZpZ3VyaW5nIG91dCB3aGF0J3Mgd3JvbmcuIiwKICAibmFtZSI6ICJBdXRvaGlkZSBWb2x1bWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vdDE4NDI1Ni9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXV0b2hpZGUtdm9sdW1lIiwKICAidXVpZCI6ICJhdXRvaGlkZS12b2x1bWVAdW5ib2lsZWQuaW5mbyIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "cloudflare@adam.gadmz", "name": "Cloudflare", "pname": "cloudflare", "description": "Warp Connect", "link": "https://extensions.gnome.org/extension/4542/cloudflare/", "shell_version_map": {"38": {"version": "7", "sha256": "0wizvqfcsyh43786zhci4j5b8z28y95cjajvqrb51x4r489l67lw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBZGFtIiwKICAiZGVzY3JpcHRpb24iOiAiV2FycCBDb25uZWN0IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsb3VkZmxhcmUiLAogICJuYW1lIjogIkNsb3VkZmxhcmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZHVvbmdnaWFraGFuaGIvQ2xvdWRmbGFyZV9HTk9NRV9FeHRlbnNpb24iLAogICJ1dWlkIjogImNsb3VkZmxhcmVAYWRhbS5nYWRteiIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "0wizvqfcsyh43786zhci4j5b8z28y95cjajvqrb51x4r489l67lw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBZGFtIiwKICAiZGVzY3JpcHRpb24iOiAiV2FycCBDb25uZWN0IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsb3VkZmxhcmUiLAogICJuYW1lIjogIkNsb3VkZmxhcmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZHVvbmdnaWFraGFuaGIvQ2xvdWRmbGFyZV9HTk9NRV9FeHRlbnNpb24iLAogICJ1dWlkIjogImNsb3VkZmxhcmVAYWRhbS5nYWRteiIsCiAgInZlcnNpb24iOiA3Cn0="}}}
 , {"uuid": "dell-command-configure-menu@vsimkus.github.io", "name": "Dell Command Configure menu", "pname": "dell-command-configure-menu", "description": "Adds submenu in gnome shell to access Dell Command Configure options.\n\nCurrently, only battery charge settings are implemented.\n\nThe Dell Command Configure tool must be installed separately from Dell https://www.dell.com/support/kbdoc/en-uk/000178000/dell-command-configure#Downloads.", "link": "https://extensions.gnome.org/extension/4545/dell-command-configure-menu/", "shell_version_map": {"38": {"version": "3", "sha256": "0mf9vibjzq1l9g6f3y7l7hx6dvqxbasdyhbrc8vfbczy9lar4v7h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgc3VibWVudSBpbiBnbm9tZSBzaGVsbCB0byBhY2Nlc3MgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBvcHRpb25zLlxuXG5DdXJyZW50bHksIG9ubHkgYmF0dGVyeSBjaGFyZ2Ugc2V0dGluZ3MgYXJlIGltcGxlbWVudGVkLlxuXG5UaGUgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSB0b29sIG11c3QgYmUgaW5zdGFsbGVkIHNlcGFyYXRlbHkgZnJvbSBEZWxsIGh0dHBzOi8vd3d3LmRlbGwuY29tL3N1cHBvcnQva2Jkb2MvZW4tdWsvMDAwMTc4MDAwL2RlbGwtY29tbWFuZC1jb25maWd1cmUjRG93bmxvYWRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlbGwtY29tbWFuZC1jb25maWd1cmUtbWVudSIsCiAgIm5hbWUiOiAiRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBtZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlbGxjb21tYW5kY29uZmlndXJlbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdnNpbWt1cy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVsbC1jb21tYW5kLWNvbmZpZ3VyZS1tZW51IiwKICAidXVpZCI6ICJkZWxsLWNvbW1hbmQtY29uZmlndXJlLW1lbnVAdnNpbWt1cy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "7", "sha256": "03n0xyadr41s4izrckljrw04nv23izshlga8h8as9kkxcpq6msc3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgc3VibWVudSBpbiBnbm9tZSBzaGVsbCB0byBhY2Nlc3MgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBvcHRpb25zLlxuXG5DdXJyZW50bHksIG9ubHkgYmF0dGVyeSBjaGFyZ2Ugc2V0dGluZ3MgYXJlIGltcGxlbWVudGVkLlxuXG5UaGUgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSB0b29sIG11c3QgYmUgaW5zdGFsbGVkIHNlcGFyYXRlbHkgZnJvbSBEZWxsIGh0dHBzOi8vd3d3LmRlbGwuY29tL3N1cHBvcnQva2Jkb2MvZW4tdWsvMDAwMTc4MDAwL2RlbGwtY29tbWFuZC1jb25maWd1cmUjRG93bmxvYWRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlbGwtY29tbWFuZC1jb25maWd1cmUtbWVudSIsCiAgIm5hbWUiOiAiRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBtZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlbGxjb21tYW5kY29uZmlndXJlbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdnNpbWt1cy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVsbC1jb21tYW5kLWNvbmZpZ3VyZS1tZW51IiwKICAidXVpZCI6ICJkZWxsLWNvbW1hbmQtY29uZmlndXJlLW1lbnVAdnNpbWt1cy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNwp9"}, "41": {"version": "7", "sha256": "03n0xyadr41s4izrckljrw04nv23izshlga8h8as9kkxcpq6msc3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgc3VibWVudSBpbiBnbm9tZSBzaGVsbCB0byBhY2Nlc3MgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBvcHRpb25zLlxuXG5DdXJyZW50bHksIG9ubHkgYmF0dGVyeSBjaGFyZ2Ugc2V0dGluZ3MgYXJlIGltcGxlbWVudGVkLlxuXG5UaGUgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSB0b29sIG11c3QgYmUgaW5zdGFsbGVkIHNlcGFyYXRlbHkgZnJvbSBEZWxsIGh0dHBzOi8vd3d3LmRlbGwuY29tL3N1cHBvcnQva2Jkb2MvZW4tdWsvMDAwMTc4MDAwL2RlbGwtY29tbWFuZC1jb25maWd1cmUjRG93bmxvYWRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlbGwtY29tbWFuZC1jb25maWd1cmUtbWVudSIsCiAgIm5hbWUiOiAiRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBtZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlbGxjb21tYW5kY29uZmlndXJlbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdnNpbWt1cy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVsbC1jb21tYW5kLWNvbmZpZ3VyZS1tZW51IiwKICAidXVpZCI6ICJkZWxsLWNvbW1hbmQtY29uZmlndXJlLW1lbnVAdnNpbWt1cy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNwp9"}}}
-, {"uuid": "tactile@lundal.io", "name": "Tactile", "pname": "tactile", "description": "Tile windows on a custom grid using your keyboard. Type Super-T to show the grid, then type two tiles (or the same tile twice) to move the active window.\n\nThe grid can be up to 4x3 (corresponding to one hand on the keyboard) and each row/column can be weighted to take up more or less space.", "link": "https://extensions.gnome.org/extension/4548/tactile/", "shell_version_map": {"38": {"version": "15", "sha256": "19v6fznxaih59z885isfdfgzlyb0fr2nk272f16fs1kxcw6xvkmz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9sdW5kYWwvdGFjdGlsZSIsCiAgInV1aWQiOiAidGFjdGlsZUBsdW5kYWwuaW8iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "15", "sha256": "19v6fznxaih59z885isfdfgzlyb0fr2nk272f16fs1kxcw6xvkmz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9sdW5kYWwvdGFjdGlsZSIsCiAgInV1aWQiOiAidGFjdGlsZUBsdW5kYWwuaW8iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "15", "sha256": "19v6fznxaih59z885isfdfgzlyb0fr2nk272f16fs1kxcw6xvkmz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9sdW5kYWwvdGFjdGlsZSIsCiAgInV1aWQiOiAidGFjdGlsZUBsdW5kYWwuaW8iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "42": {"version": "15", "sha256": "19v6fznxaih59z885isfdfgzlyb0fr2nk272f16fs1kxcw6xvkmz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9sdW5kYWwvdGFjdGlsZSIsCiAgInV1aWQiOiAidGFjdGlsZUBsdW5kYWwuaW8iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
+, {"uuid": "tactile@lundal.io", "name": "Tactile", "pname": "tactile", "description": "Tile windows on a custom grid using your keyboard. Type Super-T to show the grid, then type two tiles (or the same tile twice) to move the active window.\n\nThe grid can be up to 4x3 (corresponding to one hand on the keyboard) and each row/column can be weighted to take up more or less space.", "link": "https://extensions.gnome.org/extension/4548/tactile/", "shell_version_map": {"38": {"version": "17", "sha256": "1gq7jmnh5scd33yq9hq97scq8dfjxh4k5c2mwqlp9qrpp57qkivy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9sdW5kYWwvdGFjdGlsZSIsCiAgInV1aWQiOiAidGFjdGlsZUBsdW5kYWwuaW8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "40": {"version": "17", "sha256": "1gq7jmnh5scd33yq9hq97scq8dfjxh4k5c2mwqlp9qrpp57qkivy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9sdW5kYWwvdGFjdGlsZSIsCiAgInV1aWQiOiAidGFjdGlsZUBsdW5kYWwuaW8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "41": {"version": "17", "sha256": "1gq7jmnh5scd33yq9hq97scq8dfjxh4k5c2mwqlp9qrpp57qkivy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9sdW5kYWwvdGFjdGlsZSIsCiAgInV1aWQiOiAidGFjdGlsZUBsdW5kYWwuaW8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "42": {"version": "17", "sha256": "1gq7jmnh5scd33yq9hq97scq8dfjxh4k5c2mwqlp9qrpp57qkivy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9sdW5kYWwvdGFjdGlsZSIsCiAgInV1aWQiOiAidGFjdGlsZUBsdW5kYWwuaW8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
 , {"uuid": "killapp@adam.gadmz", "name": "Kill App", "pname": "kill-app", "description": "Force quit or kill application", "link": "https://extensions.gnome.org/extension/4551/kill-app/", "shell_version_map": {"38": {"version": "3", "sha256": "0gc6bk4piblqmm6qhb0jicdg571b23b0mns6mqhws4glznn4ckry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBZGFtIiwKICAiZGVzY3JpcHRpb24iOiAiRm9yY2UgcXVpdCBvciBraWxsIGFwcGxpY2F0aW9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtpbGxhcHAiLAogICJuYW1lIjogIktpbGwgQXBwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2R1b25nZ2lha2hhbmhiL0tpbGxhcHBfR05PTUVfRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJraWxsYXBwQGFkYW0uZ2FkbXoiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "0gc6bk4piblqmm6qhb0jicdg571b23b0mns6mqhws4glznn4ckry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBZGFtIiwKICAiZGVzY3JpcHRpb24iOiAiRm9yY2UgcXVpdCBvciBraWxsIGFwcGxpY2F0aW9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtpbGxhcHAiLAogICJuYW1lIjogIktpbGwgQXBwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2R1b25nZ2lha2hhbmhiL0tpbGxhcHBfR05PTUVfRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJraWxsYXBwQGFkYW0uZ2FkbXoiLAogICJ2ZXJzaW9uIjogMwp9"}}}
-, {"uuid": "hotkeys-popup@pimsnel.com", "name": "Hotkeys Popup", "pname": "hotkeys-popup", "description": "Pop-up cheatsheet with currently configured keyboard shortcuts.", "link": "https://extensions.gnome.org/extension/4553/hotkeys-popup/", "shell_version_map": {"40": {"version": "4", "sha256": "080ch8zg8y1ha9gq6hihjkqzymkwqarxsy3p8da8j6p6621w63y5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBvcC11cCBjaGVhdHNoZWV0IHdpdGggY3VycmVudGx5IGNvbmZpZ3VyZWQga2V5Ym9hcmQgc2hvcnRjdXRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImhvdGtleXMtcG9wdXAiLAogICJuYW1lIjogIkhvdGtleXMgUG9wdXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG90a2V5cy1wb3B1cCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlwbWlwL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtaG90a2V5cy1wb3B1cCIsCiAgInV1aWQiOiAiaG90a2V5cy1wb3B1cEBwaW1zbmVsLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "080ch8zg8y1ha9gq6hihjkqzymkwqarxsy3p8da8j6p6621w63y5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBvcC11cCBjaGVhdHNoZWV0IHdpdGggY3VycmVudGx5IGNvbmZpZ3VyZWQga2V5Ym9hcmQgc2hvcnRjdXRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImhvdGtleXMtcG9wdXAiLAogICJuYW1lIjogIkhvdGtleXMgUG9wdXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG90a2V5cy1wb3B1cCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlwbWlwL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtaG90a2V5cy1wb3B1cCIsCiAgInV1aWQiOiAiaG90a2V5cy1wb3B1cEBwaW1zbmVsLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "hotkeys-popup@pimsnel.com", "name": "Hotkeys Popup", "pname": "hotkeys-popup", "description": "Pop-up cheatsheet with currently configured keyboard shortcuts.", "link": "https://extensions.gnome.org/extension/4553/hotkeys-popup/", "shell_version_map": {"40": {"version": "5", "sha256": "1nygr81qcg62imd28cb360l1n49b2q64c3az9w6n46zx04bk1y0b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBvcC11cCBjaGVhdHNoZWV0IHdpdGggY3VycmVudGx5IGNvbmZpZ3VyZWQga2V5Ym9hcmQgc2hvcnRjdXRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImhvdGtleXMtcG9wdXAiLAogICJuYW1lIjogIkhvdGtleXMgUG9wdXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG90a2V5cy1wb3B1cCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL21pcG1pcC5naXRodWIuaW8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy1ob3RrZXlzLXBvcHVwLyIsCiAgInV1aWQiOiAiaG90a2V5cy1wb3B1cEBwaW1zbmVsLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "1nygr81qcg62imd28cb360l1n49b2q64c3az9w6n46zx04bk1y0b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBvcC11cCBjaGVhdHNoZWV0IHdpdGggY3VycmVudGx5IGNvbmZpZ3VyZWQga2V5Ym9hcmQgc2hvcnRjdXRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImhvdGtleXMtcG9wdXAiLAogICJuYW1lIjogIkhvdGtleXMgUG9wdXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG90a2V5cy1wb3B1cCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL21pcG1pcC5naXRodWIuaW8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy1ob3RrZXlzLXBvcHVwLyIsCiAgInV1aWQiOiAiaG90a2V5cy1wb3B1cEBwaW1zbmVsLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "inotch@alynx.one", "name": "iNotch", "pname": "inotch", "description": "Add a useless notch to your screen.", "link": "https://extensions.gnome.org/extension/4556/inotch/", "shell_version_map": {"40": {"version": "3", "sha256": "0x4zx4ph20maf5gw08j0j6v2whvviqs220vlr903nbcc5cxy7yil", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHVzZWxlc3Mgbm90Y2ggdG8geW91ciBzY3JlZW4uIiwKICAibmFtZSI6ICJpTm90Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FseW54WmhvdS9nbm9tZS1zaGVsbC1leHRlbnNpb24taW5vdGNoLyIsCiAgInV1aWQiOiAiaW5vdGNoQGFseW54Lm9uZSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "0x4zx4ph20maf5gw08j0j6v2whvviqs220vlr903nbcc5cxy7yil", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHVzZWxlc3Mgbm90Y2ggdG8geW91ciBzY3JlZW4uIiwKICAibmFtZSI6ICJpTm90Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FseW54WmhvdS9nbm9tZS1zaGVsbC1leHRlbnNpb24taW5vdGNoLyIsCiAgInV1aWQiOiAiaW5vdGNoQGFseW54Lm9uZSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "quick-lang-switch@ankostis.gmail.com", "name": "Quick Lang Switch", "pname": "quick-lang-switch", "description": "Quickly switch keyboard language layout without showing the switcher popup.\n\nThe language switcher popup by default takes ~0.7sec to appear, meaning that roughly 2-4 strokes are lost till the switch completes. This affects heavily users typing languages with non-latin based alphabets (e.g. Greek, Cyrilic, Arabic, Japanese), particularly when writting technical documents.\nThis extension reduces the switching time to 1/10th of a second (on a 2019 PC).", "link": "https://extensions.gnome.org/extension/4559/quick-lang-switch/", "shell_version_map": {"38": {"version": "4", "sha256": "111kpn5h913074icx2b915v2myz42j78y97y1j5003xzh5yhmzwi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc3dpdGNoIGtleWJvYXJkIGxhbmd1YWdlIGxheW91dCB3aXRob3V0IHNob3dpbmcgdGhlIHN3aXRjaGVyIHBvcHVwLlxuXG5UaGUgbGFuZ3VhZ2Ugc3dpdGNoZXIgcG9wdXAgYnkgZGVmYXVsdCB0YWtlcyB+MC43c2VjIHRvIGFwcGVhciwgbWVhbmluZyB0aGF0IHJvdWdobHkgMi00IHN0cm9rZXMgYXJlIGxvc3QgdGlsbCB0aGUgc3dpdGNoIGNvbXBsZXRlcy4gVGhpcyBhZmZlY3RzIGhlYXZpbHkgdXNlcnMgdHlwaW5nIGxhbmd1YWdlcyB3aXRoIG5vbi1sYXRpbiBiYXNlZCBhbHBoYWJldHMgKGUuZy4gR3JlZWssIEN5cmlsaWMsIEFyYWJpYywgSmFwYW5lc2UpLCBwYXJ0aWN1bGFybHkgd2hlbiB3cml0dGluZyB0ZWNobmljYWwgZG9jdW1lbnRzLlxuVGhpcyBleHRlbnNpb24gcmVkdWNlcyB0aGUgc3dpdGNoaW5nIHRpbWUgdG8gMS8xMHRoIG9mIGEgc2Vjb25kIChvbiBhIDIwMTkgUEMpLiIsCiAgIm5hbWUiOiAiUXVpY2sgTGFuZyBTd2l0Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Fua29zdGlzL2dub21lLXNoZWxsLXF1aWNrLWxhbmctc3dpdGNoIiwKICAidXVpZCI6ICJxdWljay1sYW5nLXN3aXRjaEBhbmtvc3Rpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "111kpn5h913074icx2b915v2myz42j78y97y1j5003xzh5yhmzwi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc3dpdGNoIGtleWJvYXJkIGxhbmd1YWdlIGxheW91dCB3aXRob3V0IHNob3dpbmcgdGhlIHN3aXRjaGVyIHBvcHVwLlxuXG5UaGUgbGFuZ3VhZ2Ugc3dpdGNoZXIgcG9wdXAgYnkgZGVmYXVsdCB0YWtlcyB+MC43c2VjIHRvIGFwcGVhciwgbWVhbmluZyB0aGF0IHJvdWdobHkgMi00IHN0cm9rZXMgYXJlIGxvc3QgdGlsbCB0aGUgc3dpdGNoIGNvbXBsZXRlcy4gVGhpcyBhZmZlY3RzIGhlYXZpbHkgdXNlcnMgdHlwaW5nIGxhbmd1YWdlcyB3aXRoIG5vbi1sYXRpbiBiYXNlZCBhbHBoYWJldHMgKGUuZy4gR3JlZWssIEN5cmlsaWMsIEFyYWJpYywgSmFwYW5lc2UpLCBwYXJ0aWN1bGFybHkgd2hlbiB3cml0dGluZyB0ZWNobmljYWwgZG9jdW1lbnRzLlxuVGhpcyBleHRlbnNpb24gcmVkdWNlcyB0aGUgc3dpdGNoaW5nIHRpbWUgdG8gMS8xMHRoIG9mIGEgc2Vjb25kIChvbiBhIDIwMTkgUEMpLiIsCiAgIm5hbWUiOiAiUXVpY2sgTGFuZyBTd2l0Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Fua29zdGlzL2dub21lLXNoZWxsLXF1aWNrLWxhbmctc3dpdGNoIiwKICAidXVpZCI6ICJxdWljay1sYW5nLXN3aXRjaEBhbmtvc3Rpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "111kpn5h913074icx2b915v2myz42j78y97y1j5003xzh5yhmzwi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc3dpdGNoIGtleWJvYXJkIGxhbmd1YWdlIGxheW91dCB3aXRob3V0IHNob3dpbmcgdGhlIHN3aXRjaGVyIHBvcHVwLlxuXG5UaGUgbGFuZ3VhZ2Ugc3dpdGNoZXIgcG9wdXAgYnkgZGVmYXVsdCB0YWtlcyB+MC43c2VjIHRvIGFwcGVhciwgbWVhbmluZyB0aGF0IHJvdWdobHkgMi00IHN0cm9rZXMgYXJlIGxvc3QgdGlsbCB0aGUgc3dpdGNoIGNvbXBsZXRlcy4gVGhpcyBhZmZlY3RzIGhlYXZpbHkgdXNlcnMgdHlwaW5nIGxhbmd1YWdlcyB3aXRoIG5vbi1sYXRpbiBiYXNlZCBhbHBoYWJldHMgKGUuZy4gR3JlZWssIEN5cmlsaWMsIEFyYWJpYywgSmFwYW5lc2UpLCBwYXJ0aWN1bGFybHkgd2hlbiB3cml0dGluZyB0ZWNobmljYWwgZG9jdW1lbnRzLlxuVGhpcyBleHRlbnNpb24gcmVkdWNlcyB0aGUgc3dpdGNoaW5nIHRpbWUgdG8gMS8xMHRoIG9mIGEgc2Vjb25kIChvbiBhIDIwMTkgUEMpLiIsCiAgIm5hbWUiOiAiUXVpY2sgTGFuZyBTd2l0Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Fua29zdGlzL2dub21lLXNoZWxsLXF1aWNrLWxhbmctc3dpdGNoIiwKICAidXVpZCI6ICJxdWljay1sYW5nLXN3aXRjaEBhbmtvc3Rpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "ssh-connect-menu@edavidf", "name": "SSH Connect Menu", "pname": "ssh-connect-menu", "description": "This extension puts an icon in the panel with a simple dropdown menu that launches items from your ~.ssh/config. \n\nThis is a fork of original by Josh Martens (https://extensions.gnome.org/extension/3237/ssh-quick-connect/) for Gnome 40 compatible changes that Josh made but did not upload here for quick/easy install/remove. Besides this description, uuid, name, and version number, no changes were made.", "link": "https://extensions.gnome.org/extension/4564/ssh-connect-menu/", "shell_version_map": {"40": {"version": "1", "sha256": "1s85qm4gzsywr5wagvkwag2344iandh57gc7cj00wlx34y642kpr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgd2l0aCBhIHNpbXBsZSBkcm9wZG93biBtZW51IHRoYXQgbGF1bmNoZXMgaXRlbXMgZnJvbSB5b3VyIH4uc3NoL2NvbmZpZy4gXG5cblRoaXMgaXMgYSBmb3JrIG9mIG9yaWdpbmFsIGJ5IEpvc2ggTWFydGVucyAoaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzIzNy9zc2gtcXVpY2stY29ubmVjdC8pIGZvciBHbm9tZSA0MCBjb21wYXRpYmxlIGNoYW5nZXMgdGhhdCBKb3NoIG1hZGUgYnV0IGRpZCBub3QgdXBsb2FkIGhlcmUgZm9yIHF1aWNrL2Vhc3kgaW5zdGFsbC9yZW1vdmUuIEJlc2lkZXMgdGhpcyBkZXNjcmlwdGlvbiwgdXVpZCwgbmFtZSwgYW5kIHZlcnNpb24gbnVtYmVyLCBubyBjaGFuZ2VzIHdlcmUgbWFkZS4iLAogICJuYW1lIjogIlNTSCBDb25uZWN0IE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL3d3dy5naXRodWIuY29tL0VEYXZpZEYvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNzaC1xdWljay1jb25uZWN0IiwKICAidXVpZCI6ICJzc2gtY29ubmVjdC1tZW51QGVkYXZpZGYiLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "pcalc@mgeck64.github.com", "name": "Panel Calculator", "pname": "panel-calculator", "description": "A text-based calculator that lives on the gnome panel, out of the way of your work.", "link": "https://extensions.gnome.org/extension/4567/panel-calculator/", "shell_version_map": {"38": {"version": "6", "sha256": "0rr98m2l20165mf8dcc2gwizqmksczkpbk8sqwhsppkvx6racz1m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgdGV4dC1iYXNlZCBjYWxjdWxhdG9yIHRoYXQgbGl2ZXMgb24gdGhlIGdub21lIHBhbmVsLCBvdXQgb2YgdGhlIHdheSBvZiB5b3VyIHdvcmsuIiwKICAibmFtZSI6ICJQYW5lbCBDYWxjdWxhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21nZWNrNjQvcGNhbGMtbWdlY2s2NC5naXRodWIuY29tIiwKICAidXVpZCI6ICJwY2FsY0BtZ2VjazY0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "0rr98m2l20165mf8dcc2gwizqmksczkpbk8sqwhsppkvx6racz1m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgdGV4dC1iYXNlZCBjYWxjdWxhdG9yIHRoYXQgbGl2ZXMgb24gdGhlIGdub21lIHBhbmVsLCBvdXQgb2YgdGhlIHdheSBvZiB5b3VyIHdvcmsuIiwKICAibmFtZSI6ICJQYW5lbCBDYWxjdWxhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21nZWNrNjQvcGNhbGMtbWdlY2s2NC5naXRodWIuY29tIiwKICAidXVpZCI6ICJwY2FsY0BtZ2VjazY0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "zfs-status-monitor@chris.hubick.com", "name": "ZFS Status Monitor", "pname": "zfs-status-monitor", "description": "Display status of ZFS filesystem pools currently present on the system, updating every 60 seconds.", "link": "https://extensions.gnome.org/extension/4568/zfs-status-monitor/", "shell_version_map": {"40": {"version": "1", "sha256": "07g6b3y2dpvb41qd0j5rkakxpvyfgwnwcqzfr00h6zfvrx32nnp0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3RhdHVzIG9mIFpGUyBmaWxlc3lzdGVtIHBvb2xzIGN1cnJlbnRseSBwcmVzZW50IG9uIHRoZSBzeXN0ZW0sIHVwZGF0aW5nIGV2ZXJ5IDYwIHNlY29uZHMuIiwKICAibmFtZSI6ICJaRlMgU3RhdHVzIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2h1Ymljay9nbm9tZS1zaGVsbC1leHRlbnNpb24temZzLXN0YXR1cy1tb25pdG9yIiwKICAidXVpZCI6ICJ6ZnMtc3RhdHVzLW1vbml0b3JAY2hyaXMuaHViaWNrLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "07g6b3y2dpvb41qd0j5rkakxpvyfgwnwcqzfr00h6zfvrx32nnp0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3RhdHVzIG9mIFpGUyBmaWxlc3lzdGVtIHBvb2xzIGN1cnJlbnRseSBwcmVzZW50IG9uIHRoZSBzeXN0ZW0sIHVwZGF0aW5nIGV2ZXJ5IDYwIHNlY29uZHMuIiwKICAibmFtZSI6ICJaRlMgU3RhdHVzIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2h1Ymljay9nbm9tZS1zaGVsbC1leHRlbnNpb24temZzLXN0YXR1cy1tb25pdG9yIiwKICAidXVpZCI6ICJ6ZnMtc3RhdHVzLW1vbml0b3JAY2hyaXMuaHViaWNrLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
-, {"uuid": "dollar@dotpyc.com", "name": "Dollar", "pname": "dollar", "description": "Cotações do (USD Dólar Americano) convertido para (BRL Real Brasileiro).\n\nAs atualizações são recebidas a cada 30 segundos e utiliza como base informações disponiblizadas pela API AwesomeAPI, que pode ser consultada diretamente acessando o endereço eletronico https://docs.awesomeapi.com.br.", "link": "https://extensions.gnome.org/extension/4573/dollar/", "shell_version_map": {"38": {"version": "2", "sha256": "0100dspvm8ryqday9dqm76ykc9n9sikv3098yn6a92kpz9kgxacm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyAoVVNEIERcdTAwZjNsYXIgQW1lcmljYW5vKSBjb252ZXJ0aWRvIHBhcmEgKEJSTCBSZWFsIEJyYXNpbGVpcm8pLlxuXG5BcyBhdHVhbGl6YVx1MDBlN1x1MDBmNWVzIHNcdTAwZTNvIHJlY2ViaWRhcyBhIGNhZGEgMzAgc2VndW5kb3MgZSB1dGlsaXphIGNvbW8gYmFzZSBpbmZvcm1hXHUwMGU3XHUwMGY1ZXMgZGlzcG9uaWJsaXphZGFzIHBlbGEgQVBJIEF3ZXNvbWVBUEksIHF1ZSBwb2RlIHNlciBjb25zdWx0YWRhIGRpcmV0YW1lbnRlIGFjZXNzYW5kbyBvIGVuZGVyZVx1MDBlN28gZWxldHJvbmljbyBodHRwczovL2RvY3MuYXdlc29tZWFwaS5jb20uYnIuIiwKICAibmFtZSI6ICJEb2xsYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hhZWxkZW1hdHRvcy9kb2xsYXItZG90cHljLmNvbSIsCiAgInV1aWQiOiAiZG9sbGFyQGRvdHB5Yy5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "2", "sha256": "0100dspvm8ryqday9dqm76ykc9n9sikv3098yn6a92kpz9kgxacm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyAoVVNEIERcdTAwZjNsYXIgQW1lcmljYW5vKSBjb252ZXJ0aWRvIHBhcmEgKEJSTCBSZWFsIEJyYXNpbGVpcm8pLlxuXG5BcyBhdHVhbGl6YVx1MDBlN1x1MDBmNWVzIHNcdTAwZTNvIHJlY2ViaWRhcyBhIGNhZGEgMzAgc2VndW5kb3MgZSB1dGlsaXphIGNvbW8gYmFzZSBpbmZvcm1hXHUwMGU3XHUwMGY1ZXMgZGlzcG9uaWJsaXphZGFzIHBlbGEgQVBJIEF3ZXNvbWVBUEksIHF1ZSBwb2RlIHNlciBjb25zdWx0YWRhIGRpcmV0YW1lbnRlIGFjZXNzYW5kbyBvIGVuZGVyZVx1MDBlN28gZWxldHJvbmljbyBodHRwczovL2RvY3MuYXdlc29tZWFwaS5jb20uYnIuIiwKICAibmFtZSI6ICJEb2xsYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hhZWxkZW1hdHRvcy9kb2xsYXItZG90cHljLmNvbSIsCiAgInV1aWQiOiAiZG9sbGFyQGRvdHB5Yy5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "0100dspvm8ryqday9dqm76ykc9n9sikv3098yn6a92kpz9kgxacm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyAoVVNEIERcdTAwZjNsYXIgQW1lcmljYW5vKSBjb252ZXJ0aWRvIHBhcmEgKEJSTCBSZWFsIEJyYXNpbGVpcm8pLlxuXG5BcyBhdHVhbGl6YVx1MDBlN1x1MDBmNWVzIHNcdTAwZTNvIHJlY2ViaWRhcyBhIGNhZGEgMzAgc2VndW5kb3MgZSB1dGlsaXphIGNvbW8gYmFzZSBpbmZvcm1hXHUwMGU3XHUwMGY1ZXMgZGlzcG9uaWJsaXphZGFzIHBlbGEgQVBJIEF3ZXNvbWVBUEksIHF1ZSBwb2RlIHNlciBjb25zdWx0YWRhIGRpcmV0YW1lbnRlIGFjZXNzYW5kbyBvIGVuZGVyZVx1MDBlN28gZWxldHJvbmljbyBodHRwczovL2RvY3MuYXdlc29tZWFwaS5jb20uYnIuIiwKICAibmFtZSI6ICJEb2xsYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hhZWxkZW1hdHRvcy9kb2xsYXItZG90cHljLmNvbSIsCiAgInV1aWQiOiAiZG9sbGFyQGRvdHB5Yy5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "dollar@dotpyc.com", "name": "Dollar", "pname": "dollar", "description": "Cotações do dólar USD para o real BRL em tempo real.", "link": "https://extensions.gnome.org/extension/4573/dollar/", "shell_version_map": {"38": {"version": "4", "sha256": "0g2zy1yk5cgfb02mlgznhl2kpy0k6aipjyh8gps4lmc92wihml53", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyBkXHUwMGYzbGFyIFVTRCBwYXJhIG8gcmVhbCBCUkwgZW0gdGVtcG8gcmVhbC4iLAogICJuYW1lIjogIkRvbGxhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MS40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWljaGFlbGRlbWF0dG9zL2RvbGxhci1kb3RweWMuY29tIiwKICAidXVpZCI6ICJkb2xsYXJAZG90cHljLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "0g2zy1yk5cgfb02mlgznhl2kpy0k6aipjyh8gps4lmc92wihml53", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyBkXHUwMGYzbGFyIFVTRCBwYXJhIG8gcmVhbCBCUkwgZW0gdGVtcG8gcmVhbC4iLAogICJuYW1lIjogIkRvbGxhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MS40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWljaGFlbGRlbWF0dG9zL2RvbGxhci1kb3RweWMuY29tIiwKICAidXVpZCI6ICJkb2xsYXJAZG90cHljLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "0g2zy1yk5cgfb02mlgznhl2kpy0k6aipjyh8gps4lmc92wihml53", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyBkXHUwMGYzbGFyIFVTRCBwYXJhIG8gcmVhbCBCUkwgZW0gdGVtcG8gcmVhbC4iLAogICJuYW1lIjogIkRvbGxhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MS40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWljaGFlbGRlbWF0dG9zL2RvbGxhci1kb3RweWMuY29tIiwKICAidXVpZCI6ICJkb2xsYXJAZG90cHljLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
 , {"uuid": "activate_gnome@isjerryxiao", "name": "Activate GNOME", "pname": "activate_gnome", "description": "Shows Activate GNOME watermark on your screen.", "link": "https://extensions.gnome.org/extension/4574/activate_gnome/", "shell_version_map": {"40": {"version": "6", "sha256": "0dhb8fhzs9gb1blvgswdxvnzf9ac6ix0zdmhkw87cswsj0dgqj0d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEFjdGl2YXRlIEdOT01FIHdhdGVybWFyayBvbiB5b3VyIHNjcmVlbi4iLAogICJuYW1lIjogIkFjdGl2YXRlIEdOT01FIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFjdGl2YXRlX2dub21lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaXNqZXJyeXhpYW8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFjdGl2YXRlLWdub21lIiwKICAidXVpZCI6ICJhY3RpdmF0ZV9nbm9tZUBpc2plcnJ5eGlhbyIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "0dhb8fhzs9gb1blvgswdxvnzf9ac6ix0zdmhkw87cswsj0dgqj0d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEFjdGl2YXRlIEdOT01FIHdhdGVybWFyayBvbiB5b3VyIHNjcmVlbi4iLAogICJuYW1lIjogIkFjdGl2YXRlIEdOT01FIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFjdGl2YXRlX2dub21lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaXNqZXJyeXhpYW8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFjdGl2YXRlLWdub21lIiwKICAidXVpZCI6ICJhY3RpdmF0ZV9nbm9tZUBpc2plcnJ5eGlhbyIsCiAgInZlcnNpb24iOiA2Cn0="}, "42": {"version": "6", "sha256": "0dhb8fhzs9gb1blvgswdxvnzf9ac6ix0zdmhkw87cswsj0dgqj0d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEFjdGl2YXRlIEdOT01FIHdhdGVybWFyayBvbiB5b3VyIHNjcmVlbi4iLAogICJuYW1lIjogIkFjdGl2YXRlIEdOT01FIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFjdGl2YXRlX2dub21lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaXNqZXJyeXhpYW8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFjdGl2YXRlLWdub21lIiwKICAidXVpZCI6ICJhY3RpdmF0ZV9nbm9tZUBpc2plcnJ5eGlhbyIsCiAgInZlcnNpb24iOiA2Cn0="}}}
-, {"uuid": "huawei-wmi@apps.sdore.me", "name": "Huawei WMI controls", "pname": "huawei-wmi-controls", "description": "Control various Huawei and Honor laptops WMI functions, such as battery protection, Fn-lock, power unlock and keyboard backlight.\n\nSee repository for requirements:", "link": "https://extensions.gnome.org/extension/4580/huawei-wmi-controls/", "shell_version_map": {"40": {"version": "4", "sha256": "1dpkgs0zifbq09pmsqirr1ndh2yd8x8z4gzzjpv0mazvxpqlzdm2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgYW5kIEhvbm9yIGxhcHRvcHMgV01JIGZ1bmN0aW9ucywgc3VjaCBhcyBiYXR0ZXJ5IHByb3RlY3Rpb24sIEZuLWxvY2ssIHBvd2VyIHVubG9jayBhbmQga2V5Ym9hcmQgYmFja2xpZ2h0LlxuXG5TZWUgcmVwb3NpdG9yeSBmb3IgcmVxdWlyZW1lbnRzOiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2FwcHMuc2RvcmUubWUvZ25vbWUtZXh0ZW5zaW9uLWh1YXdlaS13bWkiLAogICJ1dWlkIjogImh1YXdlaS13bWlAYXBwcy5zZG9yZS5tZSIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "1dpkgs0zifbq09pmsqirr1ndh2yd8x8z4gzzjpv0mazvxpqlzdm2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgYW5kIEhvbm9yIGxhcHRvcHMgV01JIGZ1bmN0aW9ucywgc3VjaCBhcyBiYXR0ZXJ5IHByb3RlY3Rpb24sIEZuLWxvY2ssIHBvd2VyIHVubG9jayBhbmQga2V5Ym9hcmQgYmFja2xpZ2h0LlxuXG5TZWUgcmVwb3NpdG9yeSBmb3IgcmVxdWlyZW1lbnRzOiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2FwcHMuc2RvcmUubWUvZ25vbWUtZXh0ZW5zaW9uLWh1YXdlaS13bWkiLAogICJ1dWlkIjogImh1YXdlaS13bWlAYXBwcy5zZG9yZS5tZSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "huawei-wmi@apps.sdore.me", "name": "Huawei WMI controls", "pname": "huawei-wmi-controls", "description": "Control various Huawei and Honor laptops WMI functions, such as battery protection, Fn-lock, power unlock and keyboard backlight.", "link": "https://extensions.gnome.org/extension/4580/huawei-wmi-controls/", "shell_version_map": {"40": {"version": "5", "sha256": "1c19l31bp6viwbc9brp19jnyhqzrjk1jfjfp6b6qbjgbyd1fwa5x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgYW5kIEhvbm9yIGxhcHRvcHMgV01JIGZ1bmN0aW9ucywgc3VjaCBhcyBiYXR0ZXJ5IHByb3RlY3Rpb24sIEZuLWxvY2ssIHBvd2VyIHVubG9jayBhbmQga2V5Ym9hcmQgYmFja2xpZ2h0LiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9hcHBzLnNkb3JlLm1lL2dub21lLWV4dGVuc2lvbi1odWF3ZWktd21pIiwKICAidXVpZCI6ICJodWF3ZWktd21pQGFwcHMuc2RvcmUubWUiLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "1c19l31bp6viwbc9brp19jnyhqzrjk1jfjfp6b6qbjgbyd1fwa5x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgYW5kIEhvbm9yIGxhcHRvcHMgV01JIGZ1bmN0aW9ucywgc3VjaCBhcyBiYXR0ZXJ5IHByb3RlY3Rpb24sIEZuLWxvY2ssIHBvd2VyIHVubG9jayBhbmQga2V5Ym9hcmQgYmFja2xpZ2h0LiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9hcHBzLnNkb3JlLm1lL2dub21lLWV4dGVuc2lvbi1odWF3ZWktd21pIiwKICAidXVpZCI6ICJodWF3ZWktd21pQGFwcHMuc2RvcmUubWUiLAogICJ2ZXJzaW9uIjogNQp9"}, "42": {"version": "5", "sha256": "1c19l31bp6viwbc9brp19jnyhqzrjk1jfjfp6b6qbjgbyd1fwa5x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgYW5kIEhvbm9yIGxhcHRvcHMgV01JIGZ1bmN0aW9ucywgc3VjaCBhcyBiYXR0ZXJ5IHByb3RlY3Rpb24sIEZuLWxvY2ssIHBvd2VyIHVubG9jayBhbmQga2V5Ym9hcmQgYmFja2xpZ2h0LiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9hcHBzLnNkb3JlLm1lL2dub21lLWV4dGVuc2lvbi1odWF3ZWktd21pIiwKICAidXVpZCI6ICJodWF3ZWktd21pQGFwcHMuc2RvcmUubWUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "username-hotname@it-und-entwicklung-fg.de", "name": "Username and Hostname to panel", "pname": "username-and-hostname-to-panel", "description": "Adds your avatar icon, user displayname und username to the menu panel. Also it adds the hostname to the left of the panel.", "link": "https://extensions.gnome.org/extension/4583/username-and-hostname-to-panel/", "shell_version_map": {"38": {"version": "4", "sha256": "0v98gymiw2pdczvndrvj3lsyhwi8ps0jldry1ykm9aghb05s13gx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgeW91ciBhdmF0YXIgaWNvbiwgdXNlciBkaXNwbGF5bmFtZSB1bmQgdXNlcm5hbWUgdG8gdGhlIG1lbnUgcGFuZWwuIEFsc28gaXQgYWRkcyB0aGUgaG9zdG5hbWUgdG8gdGhlIGxlZnQgb2YgdGhlIHBhbmVsLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ1c2VybmFtZS1ob3RuYW1lIiwKICAibmFtZSI6ICJVc2VybmFtZSBhbmQgSG9zdG5hbWUgdG8gcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2l0LWVudHdpY2tsdW5nLWZnL1VzZXJuYW1lLWFuZC1Ib3N0bmFtZSIsCiAgInV1aWQiOiAidXNlcm5hbWUtaG90bmFtZUBpdC11bmQtZW50d2lja2x1bmctZmcuZGUiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "0v98gymiw2pdczvndrvj3lsyhwi8ps0jldry1ykm9aghb05s13gx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgeW91ciBhdmF0YXIgaWNvbiwgdXNlciBkaXNwbGF5bmFtZSB1bmQgdXNlcm5hbWUgdG8gdGhlIG1lbnUgcGFuZWwuIEFsc28gaXQgYWRkcyB0aGUgaG9zdG5hbWUgdG8gdGhlIGxlZnQgb2YgdGhlIHBhbmVsLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ1c2VybmFtZS1ob3RuYW1lIiwKICAibmFtZSI6ICJVc2VybmFtZSBhbmQgSG9zdG5hbWUgdG8gcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2l0LWVudHdpY2tsdW5nLWZnL1VzZXJuYW1lLWFuZC1Ib3N0bmFtZSIsCiAgInV1aWQiOiAidXNlcm5hbWUtaG90bmFtZUBpdC11bmQtZW50d2lja2x1bmctZmcuZGUiLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "0v98gymiw2pdczvndrvj3lsyhwi8ps0jldry1ykm9aghb05s13gx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgeW91ciBhdmF0YXIgaWNvbiwgdXNlciBkaXNwbGF5bmFtZSB1bmQgdXNlcm5hbWUgdG8gdGhlIG1lbnUgcGFuZWwuIEFsc28gaXQgYWRkcyB0aGUgaG9zdG5hbWUgdG8gdGhlIGxlZnQgb2YgdGhlIHBhbmVsLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ1c2VybmFtZS1ob3RuYW1lIiwKICAibmFtZSI6ICJVc2VybmFtZSBhbmQgSG9zdG5hbWUgdG8gcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2l0LWVudHdpY2tsdW5nLWZnL1VzZXJuYW1lLWFuZC1Ib3N0bmFtZSIsCiAgInV1aWQiOiAidXNlcm5hbWUtaG90bmFtZUBpdC11bmQtZW50d2lja2x1bmctZmcuZGUiLAogICJ2ZXJzaW9uIjogNAp9"}}}
-, {"uuid": "InternetSpeedMonitor@Rishu", "name": "Internet Speed Monitor", "pname": "internet-speed-monitor", "description": "Extension to Monitor Internet Speed and Daily Data Usage minimally.\n\nNew update for shell version 3.34+ : Added option to choose what to display in settings menu", "link": "https://extensions.gnome.org/extension/4585/internet-speed-monitor/", "shell_version_map": {"38": {"version": "5", "sha256": "0v4za9lcc7p861vyrnwwza1sizgzj2nv3yz1aixlsbq22d7zf0ac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cblxuTmV3IHVwZGF0ZSBmb3Igc2hlbGwgdmVyc2lvbiAzLjM0KyA6IEFkZGVkIG9wdGlvbiB0byBjaG9vc2Ugd2hhdCB0byBkaXNwbGF5IGluIHNldHRpbmdzIG1lbnUiLAogICJuYW1lIjogIkludGVybmV0IFNwZWVkIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Jpc2h1aW5maW5pdHkvSW50ZXJuZXRTcGVlZE1vbml0b3IiLAogICJ1dWlkIjogIkludGVybmV0U3BlZWRNb25pdG9yQFJpc2h1IiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "0v4za9lcc7p861vyrnwwza1sizgzj2nv3yz1aixlsbq22d7zf0ac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cblxuTmV3IHVwZGF0ZSBmb3Igc2hlbGwgdmVyc2lvbiAzLjM0KyA6IEFkZGVkIG9wdGlvbiB0byBjaG9vc2Ugd2hhdCB0byBkaXNwbGF5IGluIHNldHRpbmdzIG1lbnUiLAogICJuYW1lIjogIkludGVybmV0IFNwZWVkIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Jpc2h1aW5maW5pdHkvSW50ZXJuZXRTcGVlZE1vbml0b3IiLAogICJ1dWlkIjogIkludGVybmV0U3BlZWRNb25pdG9yQFJpc2h1IiwKICAidmVyc2lvbiI6IDUKfQ=="}, "41": {"version": "5", "sha256": "0v4za9lcc7p861vyrnwwza1sizgzj2nv3yz1aixlsbq22d7zf0ac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cblxuTmV3IHVwZGF0ZSBmb3Igc2hlbGwgdmVyc2lvbiAzLjM0KyA6IEFkZGVkIG9wdGlvbiB0byBjaG9vc2Ugd2hhdCB0byBkaXNwbGF5IGluIHNldHRpbmdzIG1lbnUiLAogICJuYW1lIjogIkludGVybmV0IFNwZWVkIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Jpc2h1aW5maW5pdHkvSW50ZXJuZXRTcGVlZE1vbml0b3IiLAogICJ1dWlkIjogIkludGVybmV0U3BlZWRNb25pdG9yQFJpc2h1IiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "InternetSpeedMonitor@Rishu", "name": "Internet Speed Monitor", "pname": "internet-speed-monitor", "description": "Extension to Monitor Internet Speed and Daily Data Usage minimally.\n It is a fork of InternetSpeedMeter", "link": "https://extensions.gnome.org/extension/4585/internet-speed-monitor/", "shell_version_map": {"38": {"version": "6", "sha256": "1addh1pdb49zijqsjv10xrqs7rp6k8x26h91vkry6pvzdc9arqln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cbiBJdCBpcyBhIGZvcmsgb2YgSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9JbnRlcm5ldFNwZWVkTW9uaXRvciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1vbml0b3JAUmlzaHUiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "1addh1pdb49zijqsjv10xrqs7rp6k8x26h91vkry6pvzdc9arqln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cbiBJdCBpcyBhIGZvcmsgb2YgSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9JbnRlcm5ldFNwZWVkTW9uaXRvciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1vbml0b3JAUmlzaHUiLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "1addh1pdb49zijqsjv10xrqs7rp6k8x26h91vkry6pvzdc9arqln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cbiBJdCBpcyBhIGZvcmsgb2YgSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9JbnRlcm5ldFNwZWVkTW9uaXRvciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1vbml0b3JAUmlzaHUiLAogICJ2ZXJzaW9uIjogNgp9"}, "42": {"version": "6", "sha256": "1addh1pdb49zijqsjv10xrqs7rp6k8x26h91vkry6pvzdc9arqln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cbiBJdCBpcyBhIGZvcmsgb2YgSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9JbnRlcm5ldFNwZWVkTW9uaXRvciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1vbml0b3JAUmlzaHUiLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "simulate-switching-workspaces-on-active-monitor@micheledaros.com", "name": "Switch workspaces on active monitor", "pname": "switch-workspaces-on-active-monitor", "description": "Simulates switching the workspace on the active monitor only. Ctrl+Alt+q switches to the previous workspace, Ctrl+Alt+a switches to the next", "link": "https://extensions.gnome.org/extension/4586/switch-workspaces-on-active-monitor/", "shell_version_map": {"38": {"version": "8", "sha256": "1yakh03r6qz08994bigzr9m5qqgm9ab2c02s1rab5rwym0a4d0vq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXVsYXRlcyBzd2l0Y2hpbmcgdGhlIHdvcmtzcGFjZSBvbiB0aGUgYWN0aXZlIG1vbml0b3Igb25seS4gQ3RybCtBbHQrcSBzd2l0Y2hlcyB0byB0aGUgcHJldmlvdXMgd29ya3NwYWNlLCBDdHJsK0FsdCthIHN3aXRjaGVzIHRvIHRoZSBuZXh0IiwKICAibmFtZSI6ICJTd2l0Y2ggd29ya3NwYWNlcyBvbiBhY3RpdmUgbW9uaXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiZGFyb3NtaWNAZ21haWwuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWljaGVsZWRhcm9zL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zaW11bGF0ZS1zd2l0Y2hpbmctd29ya3NwYWNlcy1vbi1hY3RpdmUtbW9uaXRvciIsCiAgInV1aWQiOiAic2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3JAbWljaGVsZWRhcm9zLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "1yakh03r6qz08994bigzr9m5qqgm9ab2c02s1rab5rwym0a4d0vq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXVsYXRlcyBzd2l0Y2hpbmcgdGhlIHdvcmtzcGFjZSBvbiB0aGUgYWN0aXZlIG1vbml0b3Igb25seS4gQ3RybCtBbHQrcSBzd2l0Y2hlcyB0byB0aGUgcHJldmlvdXMgd29ya3NwYWNlLCBDdHJsK0FsdCthIHN3aXRjaGVzIHRvIHRoZSBuZXh0IiwKICAibmFtZSI6ICJTd2l0Y2ggd29ya3NwYWNlcyBvbiBhY3RpdmUgbW9uaXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiZGFyb3NtaWNAZ21haWwuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWljaGVsZWRhcm9zL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zaW11bGF0ZS1zd2l0Y2hpbmctd29ya3NwYWNlcy1vbi1hY3RpdmUtbW9uaXRvciIsCiAgInV1aWQiOiAic2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3JAbWljaGVsZWRhcm9zLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "1yakh03r6qz08994bigzr9m5qqgm9ab2c02s1rab5rwym0a4d0vq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXVsYXRlcyBzd2l0Y2hpbmcgdGhlIHdvcmtzcGFjZSBvbiB0aGUgYWN0aXZlIG1vbml0b3Igb25seS4gQ3RybCtBbHQrcSBzd2l0Y2hlcyB0byB0aGUgcHJldmlvdXMgd29ya3NwYWNlLCBDdHJsK0FsdCthIHN3aXRjaGVzIHRvIHRoZSBuZXh0IiwKICAibmFtZSI6ICJTd2l0Y2ggd29ya3NwYWNlcyBvbiBhY3RpdmUgbW9uaXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiZGFyb3NtaWNAZ21haWwuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWljaGVsZWRhcm9zL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zaW11bGF0ZS1zd2l0Y2hpbmctd29ya3NwYWNlcy1vbi1hY3RpdmUtbW9uaXRvciIsCiAgInV1aWQiOiAic2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3JAbWljaGVsZWRhcm9zLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "42": {"version": "8", "sha256": "1yakh03r6qz08994bigzr9m5qqgm9ab2c02s1rab5rwym0a4d0vq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXVsYXRlcyBzd2l0Y2hpbmcgdGhlIHdvcmtzcGFjZSBvbiB0aGUgYWN0aXZlIG1vbml0b3Igb25seS4gQ3RybCtBbHQrcSBzd2l0Y2hlcyB0byB0aGUgcHJldmlvdXMgd29ya3NwYWNlLCBDdHJsK0FsdCthIHN3aXRjaGVzIHRvIHRoZSBuZXh0IiwKICAibmFtZSI6ICJTd2l0Y2ggd29ya3NwYWNlcyBvbiBhY3RpdmUgbW9uaXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiZGFyb3NtaWNAZ21haWwuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWljaGVsZWRhcm9zL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zaW11bGF0ZS1zd2l0Y2hpbmctd29ya3NwYWNlcy1vbi1hY3RpdmUtbW9uaXRvciIsCiAgInV1aWQiOiAic2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3JAbWljaGVsZWRhcm9zLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
 , {"uuid": "newworkspaceshortcut@barnix.io", "name": "New Workspace Shortcut", "pname": "new-workspace-shortcut", "description": "This extension will enable the following:\n\nMove-window-to-new-workspace Shortcut:\nUse a shortcut to move the in-focus window to a new workspace on the right of your current workspace: Super + Alt + Shift + n\nOr to the left / backward: Super + Alt + Shift + b\n\nNew-empty-workspace Shortcut:\nUse a shortcut to create an empty workspace on the right: Super + Alt + n\nOr to the left / backward: Super + Alt + b\n\nReorder-workspace Shortcut:\nUse a shortcut to move an entire workspace left or right of the current workspace: Ctl + Super + Left or Ctl + Super + Right\nBy default, this shorcut with automatically trigger the Overview to provide a limited form of visual feedback. However, this preference can be changed via the extension's Settings panel.\n\nThese shortcuts are created to work logically with the vanilla gnome shortcuts including change-workspace (Super + ALT + Left/Right) and move-window-to-next-workspace (Shift + Super + ALT + Left/Right).", "link": "https://extensions.gnome.org/extension/4597/new-workspace-shortcut/", "shell_version_map": {"41": {"version": "5", "sha256": "0anj72nb9wf80xyhymzr0v97v6hkpi95nmpmpajg5a3w05dz8y7n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHdpbGwgZW5hYmxlIHRoZSBmb2xsb3dpbmc6XG5cbk1vdmUtd2luZG93LXRvLW5ldy13b3Jrc3BhY2UgU2hvcnRjdXQ6XG5Vc2UgYSBzaG9ydGN1dCB0byBtb3ZlIHRoZSBpbi1mb2N1cyB3aW5kb3cgdG8gYSBuZXcgd29ya3NwYWNlIG9uIHRoZSByaWdodCBvZiB5b3VyIGN1cnJlbnQgd29ya3NwYWNlOiBTdXBlciArIEFsdCArIFNoaWZ0ICsgblxuT3IgdG8gdGhlIGxlZnQgLyBiYWNrd2FyZDogU3VwZXIgKyBBbHQgKyBTaGlmdCArIGJcblxuTmV3LWVtcHR5LXdvcmtzcGFjZSBTaG9ydGN1dDpcblVzZSBhIHNob3J0Y3V0IHRvIGNyZWF0ZSBhbiBlbXB0eSB3b3Jrc3BhY2Ugb24gdGhlIHJpZ2h0OiBTdXBlciArIEFsdCArIG5cbk9yIHRvIHRoZSBsZWZ0IC8gYmFja3dhcmQ6IFN1cGVyICsgQWx0ICsgYlxuXG5SZW9yZGVyLXdvcmtzcGFjZSBTaG9ydGN1dDpcblVzZSBhIHNob3J0Y3V0IHRvIG1vdmUgYW4gZW50aXJlIHdvcmtzcGFjZSBsZWZ0IG9yIHJpZ2h0IG9mIHRoZSBjdXJyZW50IHdvcmtzcGFjZTogQ3RsICsgU3VwZXIgKyBMZWZ0IG9yIEN0bCArIFN1cGVyICsgUmlnaHRcbkJ5IGRlZmF1bHQsIHRoaXMgc2hvcmN1dCB3aXRoIGF1dG9tYXRpY2FsbHkgdHJpZ2dlciB0aGUgT3ZlcnZpZXcgdG8gcHJvdmlkZSBhIGxpbWl0ZWQgZm9ybSBvZiB2aXN1YWwgZmVlZGJhY2suIEhvd2V2ZXIsIHRoaXMgcHJlZmVyZW5jZSBjYW4gYmUgY2hhbmdlZCB2aWEgdGhlIGV4dGVuc2lvbidzIFNldHRpbmdzIHBhbmVsLlxuXG5UaGVzZSBzaG9ydGN1dHMgYXJlIGNyZWF0ZWQgdG8gd29yayBsb2dpY2FsbHkgd2l0aCB0aGUgdmFuaWxsYSBnbm9tZSBzaG9ydGN1dHMgaW5jbHVkaW5nIGNoYW5nZS13b3Jrc3BhY2UgKFN1cGVyICsgQUxUICsgTGVmdC9SaWdodCkgYW5kIG1vdmUtd2luZG93LXRvLW5leHQtd29ya3NwYWNlIChTaGlmdCArIFN1cGVyICsgQUxUICsgTGVmdC9SaWdodCkuIiwKICAibmFtZSI6ICJOZXcgV29ya3NwYWNlIFNob3J0Y3V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5ld3dvcmtzcGFjZXNob3J0Y3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Jhcm5zY290dC9uZXd3b3Jrc3BhY2VzaG9ydGN1dC1iYXJuaXguaW8iLAogICJ1dWlkIjogIm5ld3dvcmtzcGFjZXNob3J0Y3V0QGJhcm5peC5pbyIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "p.stonham@switcheroo.org", "name": "Switcheroo", "pname": "switcheroo", "description": "Switch to the first window with the title x\n\nA very small extension to allow you to switch windows via gdbus. This is particularly useful if you are using wayland as utilities such as wmctrl won't work.\n\nSince Gnome 41 removed org.gnome.Shell.Eval for security reasons, if you ever used a command such as:\n\ngdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval\"var mw = global.get_window_actors().map(w=&gt;w.meta_window).find(mw=&gt;mw.get_title().includes('Firefox'));mw &amp;&amp; mw.activate(0)\"\n\nthis can now be replaced with:\n\ngdbus call --session --dest org.gnome.Shell --object-path /org/switcheroo/Switcheroo --method org.switcheroo.Switcheroo.Set Firefox\n\nThis can then be assigned to a shortcut key in Gnome settings or called programmatically.", "link": "https://extensions.gnome.org/extension/4600/switcheroo/", "shell_version_map": {"41": {"version": "3", "sha256": "0pfjhx8pm26zpizazd2pbpfqsr8vwc6znrm1cbf4ydcyvfxsnwwh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB0byB0aGUgZmlyc3Qgd2luZG93IHdpdGggdGhlIHRpdGxlIHhcblxuQSB2ZXJ5IHNtYWxsIGV4dGVuc2lvbiB0byBhbGxvdyB5b3UgdG8gc3dpdGNoIHdpbmRvd3MgdmlhIGdkYnVzLiBUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgaWYgeW91IGFyZSB1c2luZyB3YXlsYW5kIGFzIHV0aWxpdGllcyBzdWNoIGFzIHdtY3RybCB3b24ndCB3b3JrLlxuXG5TaW5jZSBHbm9tZSA0MSByZW1vdmVkIG9yZy5nbm9tZS5TaGVsbC5FdmFsIGZvciBzZWN1cml0eSByZWFzb25zLCBpZiB5b3UgZXZlciB1c2VkIGEgY29tbWFuZCBzdWNoIGFzOlxuXG5nZGJ1cyBjYWxsIC0tc2Vzc2lvbiAtLWRlc3Qgb3JnLmdub21lLlNoZWxsIC0tb2JqZWN0LXBhdGggL29yZy9nbm9tZS9TaGVsbCAtLW1ldGhvZCBvcmcuZ25vbWUuU2hlbGwuRXZhbFwidmFyIG13ID0gZ2xvYmFsLmdldF93aW5kb3dfYWN0b3JzKCkubWFwKHc9Jmd0O3cubWV0YV93aW5kb3cpLmZpbmQobXc9Jmd0O213LmdldF90aXRsZSgpLmluY2x1ZGVzKCdGaXJlZm94JykpO213ICZhbXA7JmFtcDsgbXcuYWN0aXZhdGUoMClcIlxuXG50aGlzIGNhbiBub3cgYmUgcmVwbGFjZWQgd2l0aDpcblxuZ2RidXMgY2FsbCAtLXNlc3Npb24gLS1kZXN0IG9yZy5nbm9tZS5TaGVsbCAtLW9iamVjdC1wYXRoIC9vcmcvc3dpdGNoZXJvby9Td2l0Y2hlcm9vIC0tbWV0aG9kIG9yZy5zd2l0Y2hlcm9vLlN3aXRjaGVyb28uU2V0IEZpcmVmb3hcblxuVGhpcyBjYW4gdGhlbiBiZSBhc3NpZ25lZCB0byBhIHNob3J0Y3V0IGtleSBpbiBHbm9tZSBzZXR0aW5ncyBvciBjYWxsZWQgcHJvZ3JhbW1hdGljYWxseS4iLAogICJuYW1lIjogIlN3aXRjaGVyb28iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInAuc3RvbmhhbUBzd2l0Y2hlcm9vLm9yZyIsCiAgInZlcnNpb24iOiAzCn0="}}}
-, {"uuid": "sane-airplane-mode@kippi", "name": "Sane Airplane Mode", "pname": "sane-airplane-mode", "description": "Make airplane mode sane again! This extension gives you better control over the airplane mode. \nHint: With this extension you can also turn off the annoying \"Bluetooth gets turned on when I disable airplane mode\" behaviour.", "link": "https://extensions.gnome.org/extension/4604/sane-airplane-mode/", "shell_version_map": {"40": {"version": "7", "sha256": "0y79lqhc4ps7nhzpm0jwcpmy8y5pq4fz06jdxsiplfp6x95kkbny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgYWlycGxhbmUgbW9kZSBzYW5lIGFnYWluISBUaGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGUgYWlycGxhbmUgbW9kZS4gXG5IaW50OiBXaXRoIHRoaXMgZXh0ZW5zaW9uIHlvdSBjYW4gYWxzbyB0dXJuIG9mZiB0aGUgYW5ub3lpbmcgXCJCbHVldG9vdGggZ2V0cyB0dXJuZWQgb24gd2hlbiBJIGRpc2FibGUgYWlycGxhbmUgbW9kZVwiIGJlaGF2aW91ci4iLAogICJuYW1lIjogIlNhbmUgQWlycGxhbmUgTW9kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veEtpcHBpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zYW5lLWFpcnBsYW5lLW1vZGUiLAogICJ1dWlkIjogInNhbmUtYWlycGxhbmUtbW9kZUBraXBwaSIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "0y79lqhc4ps7nhzpm0jwcpmy8y5pq4fz06jdxsiplfp6x95kkbny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgYWlycGxhbmUgbW9kZSBzYW5lIGFnYWluISBUaGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGUgYWlycGxhbmUgbW9kZS4gXG5IaW50OiBXaXRoIHRoaXMgZXh0ZW5zaW9uIHlvdSBjYW4gYWxzbyB0dXJuIG9mZiB0aGUgYW5ub3lpbmcgXCJCbHVldG9vdGggZ2V0cyB0dXJuZWQgb24gd2hlbiBJIGRpc2FibGUgYWlycGxhbmUgbW9kZVwiIGJlaGF2aW91ci4iLAogICJuYW1lIjogIlNhbmUgQWlycGxhbmUgTW9kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veEtpcHBpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zYW5lLWFpcnBsYW5lLW1vZGUiLAogICJ1dWlkIjogInNhbmUtYWlycGxhbmUtbW9kZUBraXBwaSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
-, {"uuid": "undecorate@tabdeveloper.com", "name": "Undecorate Window (Fork)", "pname": "undecorate-window-for-wayland", "description": "Adds undecorate option to window menu to toggle window decoration.", "link": "https://extensions.gnome.org/extension/4606/undecorate-window-for-wayland/", "shell_version_map": {"40": {"version": "1", "sha256": "0l7knd7xam0fh9c30wbrzm0yzwnjin97r1rjdpcw9vvh80yh3hsv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdW5kZWNvcmF0ZSBvcHRpb24gdG8gd2luZG93IG1lbnUgdG8gdG9nZ2xlIHdpbmRvdyBkZWNvcmF0aW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi11bmRlY29yYXRlIiwKICAibmFtZSI6ICJVbmRlY29yYXRlIFdpbmRvdyAoRm9yaykiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInN1bi53eGdAZ21haWwuY29tIiwKICAgICJ0aW1AdGFiZGV2ZWxvcGVyLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudW5kZWNvcmF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGJyYW55ZW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVuZGVjb3JhdGUiLAogICJ1dWlkIjogInVuZGVjb3JhdGVAdGFiZGV2ZWxvcGVyLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "0l7knd7xam0fh9c30wbrzm0yzwnjin97r1rjdpcw9vvh80yh3hsv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdW5kZWNvcmF0ZSBvcHRpb24gdG8gd2luZG93IG1lbnUgdG8gdG9nZ2xlIHdpbmRvdyBkZWNvcmF0aW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi11bmRlY29yYXRlIiwKICAibmFtZSI6ICJVbmRlY29yYXRlIFdpbmRvdyAoRm9yaykiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInN1bi53eGdAZ21haWwuY29tIiwKICAgICJ0aW1AdGFiZGV2ZWxvcGVyLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudW5kZWNvcmF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGJyYW55ZW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVuZGVjb3JhdGUiLAogICJ1dWlkIjogInVuZGVjb3JhdGVAdGFiZGV2ZWxvcGVyLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "sane-airplane-mode@kippi", "name": "Sane Airplane Mode", "pname": "sane-airplane-mode", "description": "Make airplane mode sane again! This extension gives you better control over the airplane mode. \nHint: With this extension you can also turn off the annoying \"Bluetooth gets turned on when I disable airplane mode\" behaviour.", "link": "https://extensions.gnome.org/extension/4604/sane-airplane-mode/", "shell_version_map": {"40": {"version": "8", "sha256": "02g8mvw503yayabsw3a9fjl23awf8b3bcm1sn4ckb9cdrfirqvlm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgYWlycGxhbmUgbW9kZSBzYW5lIGFnYWluISBUaGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGUgYWlycGxhbmUgbW9kZS4gXG5IaW50OiBXaXRoIHRoaXMgZXh0ZW5zaW9uIHlvdSBjYW4gYWxzbyB0dXJuIG9mZiB0aGUgYW5ub3lpbmcgXCJCbHVldG9vdGggZ2V0cyB0dXJuZWQgb24gd2hlbiBJIGRpc2FibGUgYWlycGxhbmUgbW9kZVwiIGJlaGF2aW91ci4iLAogICJuYW1lIjogIlNhbmUgQWlycGxhbmUgTW9kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hLaXBwaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2FuZS1haXJwbGFuZS1tb2RlIiwKICAidXVpZCI6ICJzYW5lLWFpcnBsYW5lLW1vZGVAa2lwcGkiLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "02g8mvw503yayabsw3a9fjl23awf8b3bcm1sn4ckb9cdrfirqvlm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgYWlycGxhbmUgbW9kZSBzYW5lIGFnYWluISBUaGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGUgYWlycGxhbmUgbW9kZS4gXG5IaW50OiBXaXRoIHRoaXMgZXh0ZW5zaW9uIHlvdSBjYW4gYWxzbyB0dXJuIG9mZiB0aGUgYW5ub3lpbmcgXCJCbHVldG9vdGggZ2V0cyB0dXJuZWQgb24gd2hlbiBJIGRpc2FibGUgYWlycGxhbmUgbW9kZVwiIGJlaGF2aW91ci4iLAogICJuYW1lIjogIlNhbmUgQWlycGxhbmUgTW9kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hLaXBwaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2FuZS1haXJwbGFuZS1tb2RlIiwKICAidXVpZCI6ICJzYW5lLWFpcnBsYW5lLW1vZGVAa2lwcGkiLAogICJ2ZXJzaW9uIjogOAp9"}, "42": {"version": "8", "sha256": "02g8mvw503yayabsw3a9fjl23awf8b3bcm1sn4ckb9cdrfirqvlm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgYWlycGxhbmUgbW9kZSBzYW5lIGFnYWluISBUaGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGUgYWlycGxhbmUgbW9kZS4gXG5IaW50OiBXaXRoIHRoaXMgZXh0ZW5zaW9uIHlvdSBjYW4gYWxzbyB0dXJuIG9mZiB0aGUgYW5ub3lpbmcgXCJCbHVldG9vdGggZ2V0cyB0dXJuZWQgb24gd2hlbiBJIGRpc2FibGUgYWlycGxhbmUgbW9kZVwiIGJlaGF2aW91ci4iLAogICJuYW1lIjogIlNhbmUgQWlycGxhbmUgTW9kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hLaXBwaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2FuZS1haXJwbGFuZS1tb2RlIiwKICAidXVpZCI6ICJzYW5lLWFpcnBsYW5lLW1vZGVAa2lwcGkiLAogICJ2ZXJzaW9uIjogOAp9"}}}
+, {"uuid": "undecorate@tabdeveloper.com", "name": "Undecorate Window for Wayland", "pname": "undecorate-window-for-wayland", "description": "Adds undecorate option to window menu to toggle window decoration.", "link": "https://extensions.gnome.org/extension/4606/undecorate-window-for-wayland/", "shell_version_map": {"40": {"version": "3", "sha256": "1ikbxwqdc204w6vjn1slbrmqvxmkcbyzgqg35jacv8r1z66n6nwj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdW5kZWNvcmF0ZSBvcHRpb24gdG8gd2luZG93IG1lbnUgdG8gdG9nZ2xlIHdpbmRvdyBkZWNvcmF0aW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi11bmRlY29yYXRlIiwKICAibmFtZSI6ICJVbmRlY29yYXRlIFdpbmRvdyBmb3IgV2F5bGFuZCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAic3VuLnd4Z0BnbWFpbC5jb20iLAogICAgInRpbUB0YWJkZXZlbG9wZXIuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bmRlY29yYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGJyYW55ZW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVuZGVjb3JhdGUiLAogICJ1dWlkIjogInVuZGVjb3JhdGVAdGFiZGV2ZWxvcGVyLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "1ikbxwqdc204w6vjn1slbrmqvxmkcbyzgqg35jacv8r1z66n6nwj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdW5kZWNvcmF0ZSBvcHRpb24gdG8gd2luZG93IG1lbnUgdG8gdG9nZ2xlIHdpbmRvdyBkZWNvcmF0aW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi11bmRlY29yYXRlIiwKICAibmFtZSI6ICJVbmRlY29yYXRlIFdpbmRvdyBmb3IgV2F5bGFuZCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAic3VuLnd4Z0BnbWFpbC5jb20iLAogICAgInRpbUB0YWJkZXZlbG9wZXIuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bmRlY29yYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGJyYW55ZW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVuZGVjb3JhdGUiLAogICJ1dWlkIjogInVuZGVjb3JhdGVAdGFiZGV2ZWxvcGVyLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "42": {"version": "3", "sha256": "1ikbxwqdc204w6vjn1slbrmqvxmkcbyzgqg35jacv8r1z66n6nwj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdW5kZWNvcmF0ZSBvcHRpb24gdG8gd2luZG93IG1lbnUgdG8gdG9nZ2xlIHdpbmRvdyBkZWNvcmF0aW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi11bmRlY29yYXRlIiwKICAibmFtZSI6ICJVbmRlY29yYXRlIFdpbmRvdyBmb3IgV2F5bGFuZCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAic3VuLnd4Z0BnbWFpbC5jb20iLAogICAgInRpbUB0YWJkZXZlbG9wZXIuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bmRlY29yYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGJyYW55ZW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVuZGVjb3JhdGUiLAogICJ1dWlkIjogInVuZGVjb3JhdGVAdGFiZGV2ZWxvcGVyLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "zenbook-duo@laurinneff.ch", "name": "Asus ZenBook Duo Integration", "pname": "asus-zenbook-duo-integration", "description": "Integrate the features of the Asus ZenBook Duo into GNOME", "link": "https://extensions.gnome.org/extension/4607/asus-zenbook-duo-integration/", "shell_version_map": {"40": {"version": "4", "sha256": "1kskb1iiz2v82yb07n9nh32hyamdqnwv0qbicvk481l22hgsx91b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSB0aGUgZmVhdHVyZXMgb2YgdGhlIEFzdXMgWmVuQm9vayBEdW8gaW50byBHTk9NRSIsCiAgIm5hbWUiOiAiQXN1cyBaZW5Cb29rIER1byBJbnRlZ3JhdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGF1cmlubmVmZi9nbm9tZS1zaGVsbC1leHRlbnNpb24temVuYm9vay1kdW8iLAogICJ1dWlkIjogInplbmJvb2stZHVvQGxhdXJpbm5lZmYuY2giLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "1kskb1iiz2v82yb07n9nh32hyamdqnwv0qbicvk481l22hgsx91b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSB0aGUgZmVhdHVyZXMgb2YgdGhlIEFzdXMgWmVuQm9vayBEdW8gaW50byBHTk9NRSIsCiAgIm5hbWUiOiAiQXN1cyBaZW5Cb29rIER1byBJbnRlZ3JhdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGF1cmlubmVmZi9nbm9tZS1zaGVsbC1leHRlbnNpb24temVuYm9vay1kdW8iLAogICJ1dWlkIjogInplbmJvb2stZHVvQGxhdXJpbm5lZmYuY2giLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "batterythreshold@francku.gitlab.com", "name": "Battery threshold", "pname": "battery-threshold", "description": "A simple extension for gnome-shell that let easily set a threshold to limit battery charge level.\n\nThis extension uses \"pkexec\" since sudo permissions are needed to change the threshold level.\n\nTested on Fedora Silverblue 35 (gnome-shell 3.41) on an Asus Vivobook.\n\nGithub page: https://github.com/francku/gnome-shell-extension-battery-threshold", "link": "https://extensions.gnome.org/extension/4612/battery-threshold/", "shell_version_map": {"41": {"version": "1", "sha256": "1dfnql5fmxxvaksl2c6v7sjq0339d2y5p8lznfdp2gb038l8bxjl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGV4dGVuc2lvbiBmb3IgZ25vbWUtc2hlbGwgdGhhdCBsZXQgZWFzaWx5IHNldCBhIHRocmVzaG9sZCB0byBsaW1pdCBiYXR0ZXJ5IGNoYXJnZSBsZXZlbC5cblxuVGhpcyBleHRlbnNpb24gdXNlcyBcInBrZXhlY1wiIHNpbmNlIHN1ZG8gcGVybWlzc2lvbnMgYXJlIG5lZWRlZCB0byBjaGFuZ2UgdGhlIHRocmVzaG9sZCBsZXZlbC5cblxuVGVzdGVkIG9uIEZlZG9yYSBTaWx2ZXJibHVlIDM1IChnbm9tZS1zaGVsbCAzLjQxKSBvbiBhbiBBc3VzIFZpdm9ib29rLlxuXG5HaXRodWIgcGFnZTogaHR0cHM6Ly9naXRodWIuY29tL2ZyYW5ja3UvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWJhdHRlcnktdGhyZXNob2xkIiwKICAibmFtZSI6ICJCYXR0ZXJ5IHRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYmF0dGVyeXRocmVzaG9sZEBmcmFuY2t1LmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
-, {"uuid": "one-third-window@chmouel.com", "name": "Center or rotate windows by one third of the screen", "pname": "one-third-window", "description": "Center or rotate  the current window by one third of the screen.\n\nPosition and resize your windows in three with key shortcuts, center it to one third of the screen or rotate it around.", "link": "https://extensions.gnome.org/extension/4615/one-third-window/", "shell_version_map": {"38": {"version": "3", "sha256": "07wgkcars3f9ngi435684fp1832zhnda8jljcqlknaxxnigsdd2n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNlbnRlciBvciByb3RhdGUgIHRoZSBjdXJyZW50IHdpbmRvdyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbi5cblxuUG9zaXRpb24gYW5kIHJlc2l6ZSB5b3VyIHdpbmRvd3MgaW4gdGhyZWUgd2l0aCBrZXkgc2hvcnRjdXRzLCBjZW50ZXIgaXQgdG8gb25lIHRoaXJkIG9mIHRoZSBzY3JlZW4gb3Igcm90YXRlIGl0IGFyb3VuZC4iLAogICJuYW1lIjogIkNlbnRlciBvciByb3RhdGUgd2luZG93cyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vbmV0aGlyZHdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2htb3VlbC9vbmUtdGhpcmQtd2luZG93LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAib25lLXRoaXJkLXdpbmRvd0BjaG1vdWVsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "07wgkcars3f9ngi435684fp1832zhnda8jljcqlknaxxnigsdd2n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNlbnRlciBvciByb3RhdGUgIHRoZSBjdXJyZW50IHdpbmRvdyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbi5cblxuUG9zaXRpb24gYW5kIHJlc2l6ZSB5b3VyIHdpbmRvd3MgaW4gdGhyZWUgd2l0aCBrZXkgc2hvcnRjdXRzLCBjZW50ZXIgaXQgdG8gb25lIHRoaXJkIG9mIHRoZSBzY3JlZW4gb3Igcm90YXRlIGl0IGFyb3VuZC4iLAogICJuYW1lIjogIkNlbnRlciBvciByb3RhdGUgd2luZG93cyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vbmV0aGlyZHdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2htb3VlbC9vbmUtdGhpcmQtd2luZG93LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAib25lLXRoaXJkLXdpbmRvd0BjaG1vdWVsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "07wgkcars3f9ngi435684fp1832zhnda8jljcqlknaxxnigsdd2n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNlbnRlciBvciByb3RhdGUgIHRoZSBjdXJyZW50IHdpbmRvdyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbi5cblxuUG9zaXRpb24gYW5kIHJlc2l6ZSB5b3VyIHdpbmRvd3MgaW4gdGhyZWUgd2l0aCBrZXkgc2hvcnRjdXRzLCBjZW50ZXIgaXQgdG8gb25lIHRoaXJkIG9mIHRoZSBzY3JlZW4gb3Igcm90YXRlIGl0IGFyb3VuZC4iLAogICJuYW1lIjogIkNlbnRlciBvciByb3RhdGUgd2luZG93cyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vbmV0aGlyZHdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2htb3VlbC9vbmUtdGhpcmQtd2luZG93LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAib25lLXRoaXJkLXdpbmRvd0BjaG1vdWVsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "one-third-window@chmouel.com", "name": "One third window", "pname": "one-third-window", "description": "Center or Cycle the current window by one third of the screen via a keyboard shortcut.", "link": "https://extensions.gnome.org/extension/4615/one-third-window/", "shell_version_map": {"38": {"version": "7", "sha256": "0fisinjf8x31zb71qfs8hqyyls37425456yy0p9mmapzs562pj5w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNlbnRlciBvciBDeWNsZSB0aGUgY3VycmVudCB3aW5kb3cgYnkgb25lIHRoaXJkIG9mIHRoZSBzY3JlZW4gdmlhIGEga2V5Ym9hcmQgc2hvcnRjdXQuIiwKICAibmFtZSI6ICJPbmUgdGhpcmQgd2luZG93IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9uZXRoaXJkd2luZG93IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2htb3VlbC9vbmUtdGhpcmQtd2luZG93LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAib25lLXRoaXJkLXdpbmRvd0BjaG1vdWVsLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "0fisinjf8x31zb71qfs8hqyyls37425456yy0p9mmapzs562pj5w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNlbnRlciBvciBDeWNsZSB0aGUgY3VycmVudCB3aW5kb3cgYnkgb25lIHRoaXJkIG9mIHRoZSBzY3JlZW4gdmlhIGEga2V5Ym9hcmQgc2hvcnRjdXQuIiwKICAibmFtZSI6ICJPbmUgdGhpcmQgd2luZG93IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9uZXRoaXJkd2luZG93IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2htb3VlbC9vbmUtdGhpcmQtd2luZG93LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAib25lLXRoaXJkLXdpbmRvd0BjaG1vdWVsLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "0fisinjf8x31zb71qfs8hqyyls37425456yy0p9mmapzs562pj5w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNlbnRlciBvciBDeWNsZSB0aGUgY3VycmVudCB3aW5kb3cgYnkgb25lIHRoaXJkIG9mIHRoZSBzY3JlZW4gdmlhIGEga2V5Ym9hcmQgc2hvcnRjdXQuIiwKICAibmFtZSI6ICJPbmUgdGhpcmQgd2luZG93IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9uZXRoaXJkd2luZG93IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2htb3VlbC9vbmUtdGhpcmQtd2luZG93LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAib25lLXRoaXJkLXdpbmRvd0BjaG1vdWVsLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "42": {"version": "7", "sha256": "0fisinjf8x31zb71qfs8hqyyls37425456yy0p9mmapzs562pj5w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNlbnRlciBvciBDeWNsZSB0aGUgY3VycmVudCB3aW5kb3cgYnkgb25lIHRoaXJkIG9mIHRoZSBzY3JlZW4gdmlhIGEga2V5Ym9hcmQgc2hvcnRjdXQuIiwKICAibmFtZSI6ICJPbmUgdGhpcmQgd2luZG93IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9uZXRoaXJkd2luZG93IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2htb3VlbC9vbmUtdGhpcmQtd2luZG93LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAib25lLXRoaXJkLXdpbmRvd0BjaG1vdWVsLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
 , {"uuid": "hideTopBarWindow@kinzoku.one", "name": "Hide Top Bar Window", "pname": "hide-top-bar-window", "description": "Hides the selected window entry in the top bar.", "link": "https://extensions.gnome.org/extension/4621/hide-top-bar-window/", "shell_version_map": {"41": {"version": "1", "sha256": "0r7f8qb23ilz42pbbcd4rh22nnczqa9bags6msri1hl68lbv1qwj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBzZWxlY3RlZCB3aW5kb3cgZW50cnkgaW4gdGhlIHRvcCBiYXIuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIgV2luZG93IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDEuMSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9raW56b2t1Lm9uZSIsCiAgInV1aWQiOiAiaGlkZVRvcEJhcldpbmRvd0BraW56b2t1Lm9uZSIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "alphatint@saifulbkhan.github.com", "name": "AlphaTint", "pname": "alphatint", "description": "Artificially reduce brightness of your displays (including external monitors).\n\nIt is a fork of ColorTint modified to reduce brightness without an alpha channel.", "link": "https://extensions.gnome.org/extension/4624/alphatint/", "shell_version_map": {"40": {"version": "4", "sha256": "0yzip19k148y7yjkgxirhmi5sqj8brgnxij310ka5sl3big95rqb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFydGlmaWNpYWxseSByZWR1Y2UgYnJpZ2h0bmVzcyBvZiB5b3VyIGRpc3BsYXlzIChpbmNsdWRpbmcgZXh0ZXJuYWwgbW9uaXRvcnMpLlxuXG5JdCBpcyBhIGZvcmsgb2YgQ29sb3JUaW50IG1vZGlmaWVkIHRvIHJlZHVjZSBicmlnaHRuZXNzIHdpdGhvdXQgYW4gYWxwaGEgY2hhbm5lbC4iLAogICJuYW1lIjogIkFscGhhVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2FpZnVsYmtoYW4vYWxwaGEtdGludCIsCiAgInV1aWQiOiAiYWxwaGF0aW50QHNhaWZ1bGJraGFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "0yzip19k148y7yjkgxirhmi5sqj8brgnxij310ka5sl3big95rqb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFydGlmaWNpYWxseSByZWR1Y2UgYnJpZ2h0bmVzcyBvZiB5b3VyIGRpc3BsYXlzIChpbmNsdWRpbmcgZXh0ZXJuYWwgbW9uaXRvcnMpLlxuXG5JdCBpcyBhIGZvcmsgb2YgQ29sb3JUaW50IG1vZGlmaWVkIHRvIHJlZHVjZSBicmlnaHRuZXNzIHdpdGhvdXQgYW4gYWxwaGEgY2hhbm5lbC4iLAogICJuYW1lIjogIkFscGhhVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2FpZnVsYmtoYW4vYWxwaGEtdGludCIsCiAgInV1aWQiOiAiYWxwaGF0aW50QHNhaWZ1bGJraGFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
-, {"uuid": "focus-changer@heartmire", "name": "Focus changer", "pname": "focus-changer", "description": "Change focus between windows in all directions.\n\nThe extension will first try to find a suitable window within the same monitor. If there is none, it will try to find one on the next monitor in that direction (in a multi-monitor setup).\n\nDefault shortcuts (can be changed in preferences):\n<Super>+h = Focus left\n<Super>+j = Focus down\n<Super>+k = Focus up\n<Super>+l = Focus right", "link": "https://extensions.gnome.org/extension/4627/focus-changer/", "shell_version_map": {"38": {"version": "9", "sha256": "0ngn0bw0f2fpp0vv4hq7gb0vx2xq2gk3nkkb6p393i9qbr42l3y1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcnRpbmhqYXJ0bXlyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mb2N1cy1jaGFuZ2VyIiwKICAidXVpZCI6ICJmb2N1cy1jaGFuZ2VyQGhlYXJ0bWlyZSIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "8", "sha256": "0lcws0mgf72pl8q9q4finfkkzxic22f6gfljfkv5yghl8v1ksv06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFydGluaGphcnRteXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZvY3VzLWNoYW5nZXIiLAogICJ1dWlkIjogImZvY3VzLWNoYW5nZXJAaGVhcnRtaXJlIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "41": {"version": "8", "sha256": "0lcws0mgf72pl8q9q4finfkkzxic22f6gfljfkv5yghl8v1ksv06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFydGluaGphcnRteXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZvY3VzLWNoYW5nZXIiLAogICJ1dWlkIjogImZvY3VzLWNoYW5nZXJAaGVhcnRtaXJlIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"uuid": "focus-changer@heartmire", "name": "Focus changer", "pname": "focus-changer", "description": "Change focus between windows in all directions.\n\nThe extension will first try to find a suitable window within the same monitor. If there is none, it will try to find one on the next monitor in that direction (in a multi-monitor setup).\n\nDefault shortcuts (can be changed in preferences):\n<Super>+h = Focus left\n<Super>+j = Focus down\n<Super>+k = Focus up\n<Super>+l = Focus right", "link": "https://extensions.gnome.org/extension/4627/focus-changer/", "shell_version_map": {"38": {"version": "9", "sha256": "0ngn0bw0f2fpp0vv4hq7gb0vx2xq2gk3nkkb6p393i9qbr42l3y1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcnRpbmhqYXJ0bXlyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mb2N1cy1jaGFuZ2VyIiwKICAidXVpZCI6ICJmb2N1cy1jaGFuZ2VyQGhlYXJ0bWlyZSIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "11", "sha256": "1d9j2acgm5qf5vr3pid2yk52h45yy4bnqx9pw7nk65hmxyswca3y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcnRpbmhqYXJ0bXlyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mb2N1cy1jaGFuZ2VyIiwKICAidXVpZCI6ICJmb2N1cy1jaGFuZ2VyQGhlYXJ0bWlyZSIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "1d9j2acgm5qf5vr3pid2yk52h45yy4bnqx9pw7nk65hmxyswca3y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcnRpbmhqYXJ0bXlyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mb2N1cy1jaGFuZ2VyIiwKICAidXVpZCI6ICJmb2N1cy1jaGFuZ2VyQGhlYXJ0bWlyZSIsCiAgInZlcnNpb24iOiAxMQp9"}, "42": {"version": "11", "sha256": "1d9j2acgm5qf5vr3pid2yk52h45yy4bnqx9pw7nk65hmxyswca3y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcnRpbmhqYXJ0bXlyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mb2N1cy1jaGFuZ2VyIiwKICAidXVpZCI6ICJmb2N1cy1jaGFuZ2VyQGhlYXJ0bWlyZSIsCiAgInZlcnNpb24iOiAxMQp9"}}}
 , {"uuid": "no-titlebar-when-maximized@alec.ninja", "name": "No Titlebar When Maximized", "pname": "no-titlebar-when-maximized", "description": "Hides the classic title bar of maximized X.Org windows", "link": "https://extensions.gnome.org/extension/4630/no-titlebar-when-maximized/", "shell_version_map": {"41": {"version": "4", "sha256": "08vdlmv471b7v0c3h0p2yky7rmrrjrazn3in7qqmfvlp28j3hasl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBjbGFzc2ljIHRpdGxlIGJhciBvZiBtYXhpbWl6ZWQgWC5Pcmcgd2luZG93cyIsCiAgIm5hbWUiOiAiTm8gVGl0bGViYXIgV2hlbiBNYXhpbWl6ZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxlY2RvdG5pbmphL25vLXRpdGxlYmFyLXdoZW4tbWF4aW1pemVkIiwKICAidXVpZCI6ICJuby10aXRsZWJhci13aGVuLW1heGltaXplZEBhbGVjLm5pbmphIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "cryptowatch@d0x2f.github.com", "name": "CryptoWatch", "pname": "cryptowatch", "description": "Display live crypto portfolio balances.", "link": "https://extensions.gnome.org/extension/4633/cryptowatch/", "shell_version_map": {"40": {"version": "7", "sha256": "0wrvkj0ls103wzxbx8xsl79srmg5rfy046nr1nkrf83h06dn65pv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgbGl2ZSBjcnlwdG8gcG9ydGZvbGlvIGJhbGFuY2VzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJjcnlwdG93YXRjaCIsCiAgImdldHRleHQtZG9tYWluIjogImNyeXB0b3dhdGNoIiwKICAibmFtZSI6ICJDcnlwdG9XYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jcnlwdG93YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZDB4MmYvQ3J5cHRvV2F0Y2giLAogICJ1dWlkIjogImNyeXB0b3dhdGNoQGQweDJmLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}, "41": {"version": "7", "sha256": "0wrvkj0ls103wzxbx8xsl79srmg5rfy046nr1nkrf83h06dn65pv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgbGl2ZSBjcnlwdG8gcG9ydGZvbGlvIGJhbGFuY2VzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJjcnlwdG93YXRjaCIsCiAgImdldHRleHQtZG9tYWluIjogImNyeXB0b3dhdGNoIiwKICAibmFtZSI6ICJDcnlwdG9XYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jcnlwdG93YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZDB4MmYvQ3J5cHRvV2F0Y2giLAogICJ1dWlkIjogImNyeXB0b3dhdGNoQGQweDJmLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}}}
+, {"uuid": "cryptowatch@d0x2f.github.com", "name": "CryptoWatch", "pname": "cryptowatch", "description": "Display live crypto portfolio balances.", "link": "https://extensions.gnome.org/extension/4633/cryptowatch/", "shell_version_map": {"40": {"version": "8", "sha256": "1bknqhdr1vjw2v68nmpbvff2k93yd58wa5r17gm6zg6ir9q43crw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgbGl2ZSBjcnlwdG8gcG9ydGZvbGlvIGJhbGFuY2VzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJjcnlwdG93YXRjaCIsCiAgImdldHRleHQtZG9tYWluIjogImNyeXB0b3dhdGNoIiwKICAibmFtZSI6ICJDcnlwdG9XYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jcnlwdG93YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2QweDJmL0NyeXB0b1dhdGNoIiwKICAidXVpZCI6ICJjcnlwdG93YXRjaEBkMHgyZi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "41": {"version": "8", "sha256": "1bknqhdr1vjw2v68nmpbvff2k93yd58wa5r17gm6zg6ir9q43crw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgbGl2ZSBjcnlwdG8gcG9ydGZvbGlvIGJhbGFuY2VzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJjcnlwdG93YXRjaCIsCiAgImdldHRleHQtZG9tYWluIjogImNyeXB0b3dhdGNoIiwKICAibmFtZSI6ICJDcnlwdG9XYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jcnlwdG93YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2QweDJmL0NyeXB0b1dhdGNoIiwKICAidXVpZCI6ICJjcnlwdG93YXRjaEBkMHgyZi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "42": {"version": "8", "sha256": "1bknqhdr1vjw2v68nmpbvff2k93yd58wa5r17gm6zg6ir9q43crw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgbGl2ZSBjcnlwdG8gcG9ydGZvbGlvIGJhbGFuY2VzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJjcnlwdG93YXRjaCIsCiAgImdldHRleHQtZG9tYWluIjogImNyeXB0b3dhdGNoIiwKICAibmFtZSI6ICJDcnlwdG9XYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jcnlwdG93YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2QweDJmL0NyeXB0b1dhdGNoIiwKICAidXVpZCI6ICJjcnlwdG93YXRjaEBkMHgyZi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "mousefollowsfocus@matthes.biz", "name": "Mouse Follows Focus", "pname": "mouse-follows-focus", "description": "Are you a power-user?\nDo you like using Super+1,2,3 to access your favorite apps?\nAre you annoyed that you have to manually move your mouse between screens because it can't keep up with your keyboard shortcuts?\nThen this extension is for you!\n\nThis simple GNOME shell extension does the opposite of the 'focus follows mouse' setting. It makes the mouse follow your keyboard focus. Whenever you focus a window, if the cursor isn't already in it, it will jump to the windows center, making it easy to interact with it.", "link": "https://extensions.gnome.org/extension/4642/mouse-follows-focus/", "shell_version_map": {"41": {"version": "4", "sha256": "1zsy76sab87s74p30sxdp1cki1w956gm0sw27anpx1z6yih50rdv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFyZSB5b3UgYSBwb3dlci11c2VyP1xuRG8geW91IGxpa2UgdXNpbmcgU3VwZXIrMSwyLDMgdG8gYWNjZXNzIHlvdXIgZmF2b3JpdGUgYXBwcz9cbkFyZSB5b3UgYW5ub3llZCB0aGF0IHlvdSBoYXZlIHRvIG1hbnVhbGx5IG1vdmUgeW91ciBtb3VzZSBiZXR3ZWVuIHNjcmVlbnMgYmVjYXVzZSBpdCBjYW4ndCBrZWVwIHVwIHdpdGggeW91ciBrZXlib2FyZCBzaG9ydGN1dHM/XG5UaGVuIHRoaXMgZXh0ZW5zaW9uIGlzIGZvciB5b3UhXG5cblRoaXMgc2ltcGxlIEdOT01FIHNoZWxsIGV4dGVuc2lvbiBkb2VzIHRoZSBvcHBvc2l0ZSBvZiB0aGUgJ2ZvY3VzIGZvbGxvd3MgbW91c2UnIHNldHRpbmcuIEl0IG1ha2VzIHRoZSBtb3VzZSBmb2xsb3cgeW91ciBrZXlib2FyZCBmb2N1cy4gV2hlbmV2ZXIgeW91IGZvY3VzIGEgd2luZG93LCBpZiB0aGUgY3Vyc29yIGlzbid0IGFscmVhZHkgaW4gaXQsIGl0IHdpbGwganVtcCB0byB0aGUgd2luZG93cyBjZW50ZXIsIG1ha2luZyBpdCBlYXN5IHRvIGludGVyYWN0IHdpdGggaXQuIiwKICAibmFtZSI6ICJNb3VzZSBGb2xsb3dzIEZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xlb25NYXR0aGVzL21vdXNlZm9sbG93c2ZvY3VzIiwKICAidXVpZCI6ICJtb3VzZWZvbGxvd3Nmb2N1c0BtYXR0aGVzLmJpeiIsCiAgInZlcnNpb24iOiA0Cn0="}}}
 , {"uuid": "gnome-extension-pass-search-provider.lavrov.github.com", "name": "Pass Search Provider", "pname": "pass-search-provider", "description": "Shows matching pass entries in gnome search", "link": "https://extensions.gnome.org/extension/4645/pass-search-provider/", "shell_version_map": {"40": {"version": "6", "sha256": "06msk4zds1q6jjdw6g7akbsiyfz0avwvydpykcylhhc9ribzsncn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG1hdGNoaW5nIHBhc3MgZW50cmllcyBpbiBnbm9tZSBzZWFyY2giLAogICJuYW1lIjogIlBhc3MgU2VhcmNoIFByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xhdnJvdi9nbm9tZS1leHRlbnNpb24tcGFzcy1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogImdub21lLWV4dGVuc2lvbi1wYXNzLXNlYXJjaC1wcm92aWRlci5sYXZyb3YuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"uuid": "desktop-cube@schneegans.github.com", "name": "Desktop Cube", "pname": "desktop-cube", "description": "Indulge in nostalgia with useless 3D effects.", "link": "https://extensions.gnome.org/extension/4648/desktop-cube/", "shell_version_map": {"40": {"version": "9", "sha256": "0ijp96f1xyr7md04v5ls9pn7i7i0pibvrn60fsm71jl0f8i9v6i7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRGVza3RvcC1DdWJlIiwKICAidXVpZCI6ICJkZXNrdG9wLWN1YmVAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "41": {"version": "9", "sha256": "0ijp96f1xyr7md04v5ls9pn7i7i0pibvrn60fsm71jl0f8i9v6i7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRGVza3RvcC1DdWJlIiwKICAidXVpZCI6ICJkZXNrdG9wLWN1YmVAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "42": {"version": "9", "sha256": "0ijp96f1xyr7md04v5ls9pn7i7i0pibvrn60fsm71jl0f8i9v6i7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRGVza3RvcC1DdWJlIiwKICAidXVpZCI6ICJkZXNrdG9wLWN1YmVAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
-, {"uuid": "notification-banner-reloaded@marcinjakubowski.github.com", "name": "Notification Banner Reloaded", "pname": "notification-banner-reloaded", "description": "Configure notification banner position and animation to your liking", "link": "https://extensions.gnome.org/extension/4651/notification-banner-reloaded/", "shell_version_map": {"40": {"version": "3", "sha256": "0bpk2s1q6r7bzq8cxyga7dy90liwhmlpga74l9zigr2m9p8kp97p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyZSBub3RpZmljYXRpb24gYmFubmVyIHBvc2l0aW9uIGFuZCBhbmltYXRpb24gdG8geW91ciBsaWtpbmciLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBCYW5uZXIgUmVsb2FkZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90aWZpY2F0aW9uLWJhbm5lci1yZWxvYWRlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFyY2luamFrdWJvd3NraS9ub3RpZmljYXRpb24tcG9zaXRpb24tcmVsb2FkZWQiLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbi1iYW5uZXItcmVsb2FkZWRAbWFyY2luamFrdWJvd3NraS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "3", "sha256": "0bpk2s1q6r7bzq8cxyga7dy90liwhmlpga74l9zigr2m9p8kp97p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyZSBub3RpZmljYXRpb24gYmFubmVyIHBvc2l0aW9uIGFuZCBhbmltYXRpb24gdG8geW91ciBsaWtpbmciLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBCYW5uZXIgUmVsb2FkZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90aWZpY2F0aW9uLWJhbm5lci1yZWxvYWRlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFyY2luamFrdWJvd3NraS9ub3RpZmljYXRpb24tcG9zaXRpb24tcmVsb2FkZWQiLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbi1iYW5uZXItcmVsb2FkZWRAbWFyY2luamFrdWJvd3NraS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "notification-banner-reloaded@marcinjakubowski.github.com", "name": "Notification Banner Reloaded", "pname": "notification-banner-reloaded", "description": "Configure notification banner position and animation to your liking", "link": "https://extensions.gnome.org/extension/4651/notification-banner-reloaded/", "shell_version_map": {"40": {"version": "4", "sha256": "092b997khrxlndq4p905wx4ajm00gx94xf7dr6995383hmlh7zpf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyZSBub3RpZmljYXRpb24gYmFubmVyIHBvc2l0aW9uIGFuZCBhbmltYXRpb24gdG8geW91ciBsaWtpbmciLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBCYW5uZXIgUmVsb2FkZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90aWZpY2F0aW9uLWJhbm5lci1yZWxvYWRlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmpha3Vib3dza2kvbm90aWZpY2F0aW9uLXBvc2l0aW9uLXJlbG9hZGVkIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tYmFubmVyLXJlbG9hZGVkQG1hcmNpbmpha3Vib3dza2kuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "092b997khrxlndq4p905wx4ajm00gx94xf7dr6995383hmlh7zpf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyZSBub3RpZmljYXRpb24gYmFubmVyIHBvc2l0aW9uIGFuZCBhbmltYXRpb24gdG8geW91ciBsaWtpbmciLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBCYW5uZXIgUmVsb2FkZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90aWZpY2F0aW9uLWJhbm5lci1yZWxvYWRlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmpha3Vib3dza2kvbm90aWZpY2F0aW9uLXBvc2l0aW9uLXJlbG9hZGVkIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tYmFubmVyLXJlbG9hZGVkQG1hcmNpbmpha3Vib3dza2kuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "42": {"version": "4", "sha256": "092b997khrxlndq4p905wx4ajm00gx94xf7dr6995383hmlh7zpf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyZSBub3RpZmljYXRpb24gYmFubmVyIHBvc2l0aW9uIGFuZCBhbmltYXRpb24gdG8geW91ciBsaWtpbmciLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBCYW5uZXIgUmVsb2FkZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90aWZpY2F0aW9uLWJhbm5lci1yZWxvYWRlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmpha3Vib3dza2kvbm90aWZpY2F0aW9uLXBvc2l0aW9uLXJlbG9hZGVkIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tYmFubmVyLXJlbG9hZGVkQG1hcmNpbmpha3Vib3dza2kuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
 , {"uuid": "gnome-extension-brightness@bruno.englert.gitlab.com", "name": "Adjust Display Brightness", "pname": "adjust-display-brightness", "description": "Simple GNOME extension to control displays' brightness via DDC. It requires ddcutil to be installed, I2C permissions for non-root users configured.", "link": "https://extensions.gnome.org/extension/4652/adjust-display-brightness/", "shell_version_map": {"40": {"version": "20", "sha256": "0ldlghrlvlifqpnjpysacahfm4v504k7vhzrvay6w36w8v0yadav", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBleHRlbnNpb24gdG8gY29udHJvbCBkaXNwbGF5cycgYnJpZ2h0bmVzcyB2aWEgRERDLiBJdCByZXF1aXJlcyBkZGN1dGlsIHRvIGJlIGluc3RhbGxlZCwgSTJDIHBlcm1pc3Npb25zIGZvciBub24tcm9vdCB1c2VycyBjb25maWd1cmVkLiIsCiAgIm5hbWUiOiAiQWRqdXN0IERpc3BsYXkgQnJpZ2h0bmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYnJ1bm8uZW5nbGVydC9nbm9tZS1leHRlbnNpb24tYnJpZ2h0bmVzcyIsCiAgInV1aWQiOiAiZ25vbWUtZXh0ZW5zaW9uLWJyaWdodG5lc3NAYnJ1bm8uZW5nbGVydC5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDIwCn0="}, "41": {"version": "20", "sha256": "0ldlghrlvlifqpnjpysacahfm4v504k7vhzrvay6w36w8v0yadav", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBleHRlbnNpb24gdG8gY29udHJvbCBkaXNwbGF5cycgYnJpZ2h0bmVzcyB2aWEgRERDLiBJdCByZXF1aXJlcyBkZGN1dGlsIHRvIGJlIGluc3RhbGxlZCwgSTJDIHBlcm1pc3Npb25zIGZvciBub24tcm9vdCB1c2VycyBjb25maWd1cmVkLiIsCiAgIm5hbWUiOiAiQWRqdXN0IERpc3BsYXkgQnJpZ2h0bmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYnJ1bm8uZW5nbGVydC9nbm9tZS1leHRlbnNpb24tYnJpZ2h0bmVzcyIsCiAgInV1aWQiOiAiZ25vbWUtZXh0ZW5zaW9uLWJyaWdodG5lc3NAYnJ1bm8uZW5nbGVydC5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDIwCn0="}}}
-, {"uuid": "date-menu-formatter@marcinjakubowski.github.com", "name": "Date Menu Formatter", "pname": "date-menu-formatter", "description": "Allows customization of the date display in the panel.\n\nMight be especially useful if you're using a horizontal panel which does not at all work well with the default date display.\n\nCHANGELOG\nVersion 5: added support for multiple Dash To Panel panels\nVersion 6: fixed issues on earlier Gnome Shell versions", "link": "https://extensions.gnome.org/extension/4655/date-menu-formatter/", "shell_version_map": {"40": {"version": "6", "sha256": "0w2qy8hr569hq66dnpq5ajii66wrmpdxhr7ws0kj992f0nlrs78i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBjdXN0b21pemF0aW9uIG9mIHRoZSBkYXRlIGRpc3BsYXkgaW4gdGhlIHBhbmVsLlxuXG5NaWdodCBiZSBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB5b3UncmUgdXNpbmcgYSBob3Jpem9udGFsIHBhbmVsIHdoaWNoIGRvZXMgbm90IGF0IGFsbCB3b3JrIHdlbGwgd2l0aCB0aGUgZGVmYXVsdCBkYXRlIGRpc3BsYXkuXG5cbkNIQU5HRUxPR1xuVmVyc2lvbiA1OiBhZGRlZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBEYXNoIFRvIFBhbmVsIHBhbmVsc1xuVmVyc2lvbiA2OiBmaXhlZCBpc3N1ZXMgb24gZWFybGllciBHbm9tZSBTaGVsbCB2ZXJzaW9ucyIsCiAgIm5hbWUiOiAiRGF0ZSBNZW51IEZvcm1hdHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXRlLW1lbnUtZm9ybWF0dGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZGF0ZS1tZW51LWZvcm1hdHRlckBtYXJjaW5qYWt1Ym93c2tpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "0w2qy8hr569hq66dnpq5ajii66wrmpdxhr7ws0kj992f0nlrs78i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBjdXN0b21pemF0aW9uIG9mIHRoZSBkYXRlIGRpc3BsYXkgaW4gdGhlIHBhbmVsLlxuXG5NaWdodCBiZSBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB5b3UncmUgdXNpbmcgYSBob3Jpem9udGFsIHBhbmVsIHdoaWNoIGRvZXMgbm90IGF0IGFsbCB3b3JrIHdlbGwgd2l0aCB0aGUgZGVmYXVsdCBkYXRlIGRpc3BsYXkuXG5cbkNIQU5HRUxPR1xuVmVyc2lvbiA1OiBhZGRlZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBEYXNoIFRvIFBhbmVsIHBhbmVsc1xuVmVyc2lvbiA2OiBmaXhlZCBpc3N1ZXMgb24gZWFybGllciBHbm9tZSBTaGVsbCB2ZXJzaW9ucyIsCiAgIm5hbWUiOiAiRGF0ZSBNZW51IEZvcm1hdHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXRlLW1lbnUtZm9ybWF0dGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZGF0ZS1tZW51LWZvcm1hdHRlckBtYXJjaW5qYWt1Ym93c2tpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "date-menu-formatter@marcinjakubowski.github.com", "name": "Date Menu Formatter", "pname": "date-menu-formatter", "description": "Allows customization of the date display in the panel.\n\nMight be especially useful if you're using a horizontal panel which does not at all work well with the default date display.\n\nCHANGELOG\nVersion 5: added support for multiple Dash To Panel panels\nVersion 6: fixed issues on earlier Gnome Shell versions", "link": "https://extensions.gnome.org/extension/4655/date-menu-formatter/", "shell_version_map": {"40": {"version": "7", "sha256": "0l6fx4dfqr1pkpg7ckiynicwjzjrdn31mcbksk1a199scivkhilk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBjdXN0b21pemF0aW9uIG9mIHRoZSBkYXRlIGRpc3BsYXkgaW4gdGhlIHBhbmVsLlxuXG5NaWdodCBiZSBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB5b3UncmUgdXNpbmcgYSBob3Jpem9udGFsIHBhbmVsIHdoaWNoIGRvZXMgbm90IGF0IGFsbCB3b3JrIHdlbGwgd2l0aCB0aGUgZGVmYXVsdCBkYXRlIGRpc3BsYXkuXG5cbkNIQU5HRUxPR1xuVmVyc2lvbiA1OiBhZGRlZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBEYXNoIFRvIFBhbmVsIHBhbmVsc1xuVmVyc2lvbiA2OiBmaXhlZCBpc3N1ZXMgb24gZWFybGllciBHbm9tZSBTaGVsbCB2ZXJzaW9ucyIsCiAgIm5hbWUiOiAiRGF0ZSBNZW51IEZvcm1hdHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXRlLW1lbnUtZm9ybWF0dGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImRhdGUtbWVudS1mb3JtYXR0ZXJAbWFyY2luamFrdWJvd3NraS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "41": {"version": "7", "sha256": "0l6fx4dfqr1pkpg7ckiynicwjzjrdn31mcbksk1a199scivkhilk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBjdXN0b21pemF0aW9uIG9mIHRoZSBkYXRlIGRpc3BsYXkgaW4gdGhlIHBhbmVsLlxuXG5NaWdodCBiZSBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB5b3UncmUgdXNpbmcgYSBob3Jpem9udGFsIHBhbmVsIHdoaWNoIGRvZXMgbm90IGF0IGFsbCB3b3JrIHdlbGwgd2l0aCB0aGUgZGVmYXVsdCBkYXRlIGRpc3BsYXkuXG5cbkNIQU5HRUxPR1xuVmVyc2lvbiA1OiBhZGRlZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBEYXNoIFRvIFBhbmVsIHBhbmVsc1xuVmVyc2lvbiA2OiBmaXhlZCBpc3N1ZXMgb24gZWFybGllciBHbm9tZSBTaGVsbCB2ZXJzaW9ucyIsCiAgIm5hbWUiOiAiRGF0ZSBNZW51IEZvcm1hdHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXRlLW1lbnUtZm9ybWF0dGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImRhdGUtbWVudS1mb3JtYXR0ZXJAbWFyY2luamFrdWJvd3NraS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "42": {"version": "7", "sha256": "0l6fx4dfqr1pkpg7ckiynicwjzjrdn31mcbksk1a199scivkhilk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBjdXN0b21pemF0aW9uIG9mIHRoZSBkYXRlIGRpc3BsYXkgaW4gdGhlIHBhbmVsLlxuXG5NaWdodCBiZSBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB5b3UncmUgdXNpbmcgYSBob3Jpem9udGFsIHBhbmVsIHdoaWNoIGRvZXMgbm90IGF0IGFsbCB3b3JrIHdlbGwgd2l0aCB0aGUgZGVmYXVsdCBkYXRlIGRpc3BsYXkuXG5cbkNIQU5HRUxPR1xuVmVyc2lvbiA1OiBhZGRlZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBEYXNoIFRvIFBhbmVsIHBhbmVsc1xuVmVyc2lvbiA2OiBmaXhlZCBpc3N1ZXMgb24gZWFybGllciBHbm9tZSBTaGVsbCB2ZXJzaW9ucyIsCiAgIm5hbWUiOiAiRGF0ZSBNZW51IEZvcm1hdHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXRlLW1lbnUtZm9ybWF0dGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImRhdGUtbWVudS1mb3JtYXR0ZXJAbWFyY2luamFrdWJvd3NraS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
 , {"uuid": "surf@diegonz.github.io", "name": "Surf", "pname": "surf", "description": "Visit URL or perform a web search with the terms provided directly from GNOME Shell", "link": "https://extensions.gnome.org/extension/4661/surf/", "shell_version_map": {"38": {"version": "2", "sha256": "04rs32jzy89vr2fyw44vmjx47l2kkdhqklqms9fqckf8ii3l4h56", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpc2l0IFVSTCBvciBwZXJmb3JtIGEgd2ViIHNlYXJjaCB3aXRoIHRoZSB0ZXJtcyBwcm92aWRlZCBkaXJlY3RseSBmcm9tIEdOT01FIFNoZWxsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN1cmYiLAogICJuYW1lIjogIlN1cmYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3VyZiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGllZ29uei9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3VyZiIsCiAgInV1aWQiOiAic3VyZkBkaWVnb256LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "04rs32jzy89vr2fyw44vmjx47l2kkdhqklqms9fqckf8ii3l4h56", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpc2l0IFVSTCBvciBwZXJmb3JtIGEgd2ViIHNlYXJjaCB3aXRoIHRoZSB0ZXJtcyBwcm92aWRlZCBkaXJlY3RseSBmcm9tIEdOT01FIFNoZWxsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN1cmYiLAogICJuYW1lIjogIlN1cmYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3VyZiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGllZ29uei9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3VyZiIsCiAgInV1aWQiOiAic3VyZkBkaWVnb256LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "04rs32jzy89vr2fyw44vmjx47l2kkdhqklqms9fqckf8ii3l4h56", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpc2l0IFVSTCBvciBwZXJmb3JtIGEgd2ViIHNlYXJjaCB3aXRoIHRoZSB0ZXJtcyBwcm92aWRlZCBkaXJlY3RseSBmcm9tIEdOT01FIFNoZWxsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN1cmYiLAogICJuYW1lIjogIlN1cmYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3VyZiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGllZ29uei9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3VyZiIsCiAgInV1aWQiOiAic3VyZkBkaWVnb256LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "CustomizeClockOnLockScreen@pratap.fastmail.fm", "name": "Customize Clock on Lock Screen", "pname": "customize-clock-on-lock-screen", "description": "Customize Clock on Lock Screen.", "link": "https://extensions.gnome.org/extension/4663/customize-clock-on-lock-screen/", "shell_version_map": {"41": {"version": "2", "sha256": "1rw16avp8svfhkis6ifljkwffy67f22zpql31nmhgsdsm4bsp3pw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBDbG9jayBvbiBMb2NrIFNjcmVlbi4iLAogICJuYW1lIjogIkN1c3RvbWl6ZSBDbG9jayBvbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvY3VzdG9taXplLWNsb2NrLW9uLWxvY2stc2NyZWVuIiwKICAidXVpZCI6ICJDdXN0b21pemVDbG9ja09uTG9ja1NjcmVlbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "LeftClock@adityashrivastava.tk", "name": "Left Clock", "pname": "left-clock", "description": "Replaces the activity button with clock and moves it to left side of top bar.", "link": "https://extensions.gnome.org/extension/4667/left-clock/", "shell_version_map": {"40": {"version": "4", "sha256": "0lsihlkx9is0cisx7wsz9jy5h91gqhcpqqpq3lpl3msvn90dlmj9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSBhY3Rpdml0eSBidXR0b24gd2l0aCBjbG9jayBhbmQgbW92ZXMgaXQgdG8gbGVmdCBzaWRlIG9mIHRvcCBiYXIuIiwKICAibmFtZSI6ICJMZWZ0IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiTGVmdENsb2NrQGFkaXR5YXNocml2YXN0YXZhLnRrIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "0lsihlkx9is0cisx7wsz9jy5h91gqhcpqqpq3lpl3msvn90dlmj9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSBhY3Rpdml0eSBidXR0b24gd2l0aCBjbG9jayBhbmQgbW92ZXMgaXQgdG8gbGVmdCBzaWRlIG9mIHRvcCBiYXIuIiwKICAibmFtZSI6ICJMZWZ0IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiTGVmdENsb2NrQGFkaXR5YXNocml2YXN0YXZhLnRrIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "keyboard-backlight-menu@ophir.dev", "name": "Keyboard Backlight Slider", "pname": "keyboard-backlight-slider", "description": "Allow setting the keyboard backlight brightness with a slider in the main menu", "link": "https://extensions.gnome.org/extension/4669/keyboard-backlight-slider/", "shell_version_map": {"40": {"version": "4", "sha256": "1afrdqjb5xvg57m5y7h33drs8yzwrblyddxypyrmc4xam37nq3lb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHNldHRpbmcgdGhlIGtleWJvYXJkIGJhY2tsaWdodCBicmlnaHRuZXNzIHdpdGggYSBzbGlkZXIgaW4gdGhlIG1haW4gbWVudSIsCiAgIm5hbWUiOiAiS2V5Ym9hcmQgQmFja2xpZ2h0IFNsaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbG92YXNvYS9nbm9tZS1rZXlib2FyZC1iYWNrbGlnaHQtbWVudSIsCiAgInV1aWQiOiAia2V5Ym9hcmQtYmFja2xpZ2h0LW1lbnVAb3BoaXIuZGV2IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1afrdqjb5xvg57m5y7h33drs8yzwrblyddxypyrmc4xam37nq3lb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHNldHRpbmcgdGhlIGtleWJvYXJkIGJhY2tsaWdodCBicmlnaHRuZXNzIHdpdGggYSBzbGlkZXIgaW4gdGhlIG1haW4gbWVudSIsCiAgIm5hbWUiOiAiS2V5Ym9hcmQgQmFja2xpZ2h0IFNsaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbG92YXNvYS9nbm9tZS1rZXlib2FyZC1iYWNrbGlnaHQtbWVudSIsCiAgInV1aWQiOiAia2V5Ym9hcmQtYmFja2xpZ2h0LW1lbnVAb3BoaXIuZGV2IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "cloudflare-warp-gnome@harshan01", "name": "Cloudflare 1.1.1.1 WARP Switcher", "pname": "cloudflare-1111-warp-switcher", "description": "Unofficial Cloudflare 1.1.1.1 WARP Switcher extension for GNOME shell", "link": "https://extensions.gnome.org/extension/4670/cloudflare-1111-warp-switcher/", "shell_version_map": {"38": {"version": "2", "sha256": "0r4m8ga3l31gbi3pxvpnc4w98ik4ixn609hj1nqj3c95f3ld97z3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgQ2xvdWRmbGFyZSAxLjEuMS4xIFdBUlAgU3dpdGNoZXIgZXh0ZW5zaW9uIGZvciBHTk9NRSBzaGVsbCIsCiAgIm5hbWUiOiAiQ2xvdWRmbGFyZSAxLjEuMS4xIFdBUlAgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSGFyc2hhbjAxL0Nsb3VkZmxhcmUtV0FSUC1HTk9NRS1Td2l0Y2hlciIsCiAgInV1aWQiOiAiY2xvdWRmbGFyZS13YXJwLWdub21lQGhhcnNoYW4wMSIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "0r4m8ga3l31gbi3pxvpnc4w98ik4ixn609hj1nqj3c95f3ld97z3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgQ2xvdWRmbGFyZSAxLjEuMS4xIFdBUlAgU3dpdGNoZXIgZXh0ZW5zaW9uIGZvciBHTk9NRSBzaGVsbCIsCiAgIm5hbWUiOiAiQ2xvdWRmbGFyZSAxLjEuMS4xIFdBUlAgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSGFyc2hhbjAxL0Nsb3VkZmxhcmUtV0FSUC1HTk9NRS1Td2l0Y2hlciIsCiAgInV1aWQiOiAiY2xvdWRmbGFyZS13YXJwLWdub21lQGhhcnNoYW4wMSIsCiAgInZlcnNpb24iOiAyCn0="}}}
-, {"uuid": "alt-tab-move-mouse@buzztaiki.github.com", "name": "Alt-Tab Move Mouse", "pname": "alt-tab-move-mouse", "description": "Move mouse pointer onto active window after Alt-Tab. This extension is workaround of some sloppy focus problems", "link": "https://extensions.gnome.org/extension/4673/alt-tab-move-mouse/", "shell_version_map": {"40": {"version": "1", "sha256": "0dl2v61v2iqnf1qk7dsi60bm68kk4kc16jbrk9knw4ys8n35bxy3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgbW91c2UgcG9pbnRlciBvbnRvIGFjdGl2ZSB3aW5kb3cgYWZ0ZXIgQWx0LVRhYi4gVGhpcyBleHRlbnNpb24gaXMgd29ya2Fyb3VuZCBvZiBzb21lIHNsb3BweSBmb2N1cyBwcm9ibGVtcyIsCiAgIm5hbWUiOiAiQWx0LVRhYiBNb3ZlIE1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9idXp6dGFpa2kvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFsdC10YWItbW92ZS1tb3VzZSIsCiAgInV1aWQiOiAiYWx0LXRhYi1tb3ZlLW1vdXNlQGJ1enp0YWlraS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "41": {"version": "1", "sha256": "0dl2v61v2iqnf1qk7dsi60bm68kk4kc16jbrk9knw4ys8n35bxy3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgbW91c2UgcG9pbnRlciBvbnRvIGFjdGl2ZSB3aW5kb3cgYWZ0ZXIgQWx0LVRhYi4gVGhpcyBleHRlbnNpb24gaXMgd29ya2Fyb3VuZCBvZiBzb21lIHNsb3BweSBmb2N1cyBwcm9ibGVtcyIsCiAgIm5hbWUiOiAiQWx0LVRhYiBNb3ZlIE1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9idXp6dGFpa2kvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFsdC10YWItbW92ZS1tb3VzZSIsCiAgInV1aWQiOiAiYWx0LXRhYi1tb3ZlLW1vdXNlQGJ1enp0YWlraS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "cloudflare-warp-gnome@harshan01", "name": "Cloudflare 1.1.1.1 WARP Switcher", "pname": "cloudflare-1111-warp-switcher", "description": "Unofficial Cloudflare 1.1.1.1 WARP Switcher extension for GNOME shell", "link": "https://extensions.gnome.org/extension/4670/cloudflare-1111-warp-switcher/", "shell_version_map": {"38": {"version": "3", "sha256": "03i5v3g6drhsxs915q4940xnsv4nzpa887lj04gji32dcgb10vr3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgQ2xvdWRmbGFyZSAxLjEuMS4xIFdBUlAgU3dpdGNoZXIgZXh0ZW5zaW9uIGZvciBHTk9NRSBzaGVsbCIsCiAgIm5hbWUiOiAiQ2xvdWRmbGFyZSAxLjEuMS4xIFdBUlAgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9IYXJzaGFuMDEvQ2xvdWRmbGFyZS1XQVJQLUdOT01FLVN3aXRjaGVyIiwKICAidXVpZCI6ICJjbG91ZGZsYXJlLXdhcnAtZ25vbWVAaGFyc2hhbjAxIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "3", "sha256": "03i5v3g6drhsxs915q4940xnsv4nzpa887lj04gji32dcgb10vr3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgQ2xvdWRmbGFyZSAxLjEuMS4xIFdBUlAgU3dpdGNoZXIgZXh0ZW5zaW9uIGZvciBHTk9NRSBzaGVsbCIsCiAgIm5hbWUiOiAiQ2xvdWRmbGFyZSAxLjEuMS4xIFdBUlAgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9IYXJzaGFuMDEvQ2xvdWRmbGFyZS1XQVJQLUdOT01FLVN3aXRjaGVyIiwKICAidXVpZCI6ICJjbG91ZGZsYXJlLXdhcnAtZ25vbWVAaGFyc2hhbjAxIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "3", "sha256": "03i5v3g6drhsxs915q4940xnsv4nzpa887lj04gji32dcgb10vr3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgQ2xvdWRmbGFyZSAxLjEuMS4xIFdBUlAgU3dpdGNoZXIgZXh0ZW5zaW9uIGZvciBHTk9NRSBzaGVsbCIsCiAgIm5hbWUiOiAiQ2xvdWRmbGFyZSAxLjEuMS4xIFdBUlAgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9IYXJzaGFuMDEvQ2xvdWRmbGFyZS1XQVJQLUdOT01FLVN3aXRjaGVyIiwKICAidXVpZCI6ICJjbG91ZGZsYXJlLXdhcnAtZ25vbWVAaGFyc2hhbjAxIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "42": {"version": "3", "sha256": "03i5v3g6drhsxs915q4940xnsv4nzpa887lj04gji32dcgb10vr3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgQ2xvdWRmbGFyZSAxLjEuMS4xIFdBUlAgU3dpdGNoZXIgZXh0ZW5zaW9uIGZvciBHTk9NRSBzaGVsbCIsCiAgIm5hbWUiOiAiQ2xvdWRmbGFyZSAxLjEuMS4xIFdBUlAgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9IYXJzaGFuMDEvQ2xvdWRmbGFyZS1XQVJQLUdOT01FLVN3aXRjaGVyIiwKICAidXVpZCI6ICJjbG91ZGZsYXJlLXdhcnAtZ25vbWVAaGFyc2hhbjAxIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "alt-tab-move-mouse@buzztaiki.github.com", "name": "Alt-Tab Move Mouse", "pname": "alt-tab-move-mouse", "description": "Move mouse pointer onto active window after Alt-Tab. This extension is workaround of some sloppy focus problems", "link": "https://extensions.gnome.org/extension/4673/alt-tab-move-mouse/", "shell_version_map": {"40": {"version": "2", "sha256": "0ncpa84dh632wix9cdfiaykzz3d2k3kz1wsbh7y5kwmsib2rjp1y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgbW91c2UgcG9pbnRlciBvbnRvIGFjdGl2ZSB3aW5kb3cgYWZ0ZXIgQWx0LVRhYi4gVGhpcyBleHRlbnNpb24gaXMgd29ya2Fyb3VuZCBvZiBzb21lIHNsb3BweSBmb2N1cyBwcm9ibGVtcyIsCiAgIm5hbWUiOiAiQWx0LVRhYiBNb3ZlIE1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnV6enRhaWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1hbHQtdGFiLW1vdmUtbW91c2UiLAogICJ1dWlkIjogImFsdC10YWItbW92ZS1tb3VzZUBidXp6dGFpa2kuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "0ncpa84dh632wix9cdfiaykzz3d2k3kz1wsbh7y5kwmsib2rjp1y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgbW91c2UgcG9pbnRlciBvbnRvIGFjdGl2ZSB3aW5kb3cgYWZ0ZXIgQWx0LVRhYi4gVGhpcyBleHRlbnNpb24gaXMgd29ya2Fyb3VuZCBvZiBzb21lIHNsb3BweSBmb2N1cyBwcm9ibGVtcyIsCiAgIm5hbWUiOiAiQWx0LVRhYiBNb3ZlIE1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnV6enRhaWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1hbHQtdGFiLW1vdmUtbW91c2UiLAogICJ1dWlkIjogImFsdC10YWItbW92ZS1tb3VzZUBidXp6dGFpa2kuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "42": {"version": "2", "sha256": "0ncpa84dh632wix9cdfiaykzz3d2k3kz1wsbh7y5kwmsib2rjp1y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgbW91c2UgcG9pbnRlciBvbnRvIGFjdGl2ZSB3aW5kb3cgYWZ0ZXIgQWx0LVRhYi4gVGhpcyBleHRlbnNpb24gaXMgd29ya2Fyb3VuZCBvZiBzb21lIHNsb3BweSBmb2N1cyBwcm9ibGVtcyIsCiAgIm5hbWUiOiAiQWx0LVRhYiBNb3ZlIE1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnV6enRhaWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1hbHQtdGFiLW1vdmUtbW91c2UiLAogICJ1dWlkIjogImFsdC10YWItbW92ZS1tb3VzZUBidXp6dGFpa2kuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "Server@sven.kramer", "name": "Server", "pname": "server", "description": "A simple Indicator that shows my home-server status (online / offline) on the main panel. Furthermore a wake on lan can be triggered. For WOL functionality, its necessary that you have 'wakeonlan' installed. This extension is only tested with Gnome 40+. Didnt test it yet with older versions.", "link": "https://extensions.gnome.org/extension/4676/server/", "shell_version_map": {"38": {"version": "3", "sha256": "1dcy5kw5797wjjdg85hc16vh82c3xjs2xdn3m573rqs3fjayy507", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIEluZGljYXRvciB0aGF0IHNob3dzIG15IGhvbWUtc2VydmVyIHN0YXR1cyAob25saW5lIC8gb2ZmbGluZSkgb24gdGhlIG1haW4gcGFuZWwuIEZ1cnRoZXJtb3JlIGEgd2FrZSBvbiBsYW4gY2FuIGJlIHRyaWdnZXJlZC4gRm9yIFdPTCBmdW5jdGlvbmFsaXR5LCBpdHMgbmVjZXNzYXJ5IHRoYXQgeW91IGhhdmUgJ3dha2VvbmxhbicgaW5zdGFsbGVkLiBUaGlzIGV4dGVuc2lvbiBpcyBvbmx5IHRlc3RlZCB3aXRoIEdub21lIDQwKy4gRGlkbnQgdGVzdCBpdCB5ZXQgd2l0aCBvbGRlciB2ZXJzaW9ucy4iLAogICJuYW1lIjogIlNlcnZlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5TZXJ2ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJTZXJ2ZXJAc3Zlbi5rcmFtZXIiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "1dcy5kw5797wjjdg85hc16vh82c3xjs2xdn3m573rqs3fjayy507", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIEluZGljYXRvciB0aGF0IHNob3dzIG15IGhvbWUtc2VydmVyIHN0YXR1cyAob25saW5lIC8gb2ZmbGluZSkgb24gdGhlIG1haW4gcGFuZWwuIEZ1cnRoZXJtb3JlIGEgd2FrZSBvbiBsYW4gY2FuIGJlIHRyaWdnZXJlZC4gRm9yIFdPTCBmdW5jdGlvbmFsaXR5LCBpdHMgbmVjZXNzYXJ5IHRoYXQgeW91IGhhdmUgJ3dha2VvbmxhbicgaW5zdGFsbGVkLiBUaGlzIGV4dGVuc2lvbiBpcyBvbmx5IHRlc3RlZCB3aXRoIEdub21lIDQwKy4gRGlkbnQgdGVzdCBpdCB5ZXQgd2l0aCBvbGRlciB2ZXJzaW9ucy4iLAogICJuYW1lIjogIlNlcnZlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5TZXJ2ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJTZXJ2ZXJAc3Zlbi5rcmFtZXIiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "1dcy5kw5797wjjdg85hc16vh82c3xjs2xdn3m573rqs3fjayy507", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIEluZGljYXRvciB0aGF0IHNob3dzIG15IGhvbWUtc2VydmVyIHN0YXR1cyAob25saW5lIC8gb2ZmbGluZSkgb24gdGhlIG1haW4gcGFuZWwuIEZ1cnRoZXJtb3JlIGEgd2FrZSBvbiBsYW4gY2FuIGJlIHRyaWdnZXJlZC4gRm9yIFdPTCBmdW5jdGlvbmFsaXR5LCBpdHMgbmVjZXNzYXJ5IHRoYXQgeW91IGhhdmUgJ3dha2VvbmxhbicgaW5zdGFsbGVkLiBUaGlzIGV4dGVuc2lvbiBpcyBvbmx5IHRlc3RlZCB3aXRoIEdub21lIDQwKy4gRGlkbnQgdGVzdCBpdCB5ZXQgd2l0aCBvbGRlciB2ZXJzaW9ucy4iLAogICJuYW1lIjogIlNlcnZlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5TZXJ2ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJTZXJ2ZXJAc3Zlbi5rcmFtZXIiLAogICJ2ZXJzaW9uIjogMwp9"}}}
-, {"uuid": "burn-my-windows@schneegans.github.com", "name": "Burn My Windows", "pname": "burn-my-windows", "description": "Disintegrate your windows with style.", "link": "https://extensions.gnome.org/extension/4679/burn-my-windows/", "shell_version_map": {"38": {"version": "13", "sha256": "1lnkijdm250lbijh5z55b43hx6ih57x198rchw5jpph4z186km8c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0J1cm4tTXktV2luZG93cyIsCiAgInV1aWQiOiAiYnVybi1teS13aW5kb3dzQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}, "40": {"version": "13", "sha256": "1lnkijdm250lbijh5z55b43hx6ih57x198rchw5jpph4z186km8c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0J1cm4tTXktV2luZG93cyIsCiAgInV1aWQiOiAiYnVybi1teS13aW5kb3dzQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "1lnkijdm250lbijh5z55b43hx6ih57x198rchw5jpph4z186km8c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0J1cm4tTXktV2luZG93cyIsCiAgInV1aWQiOiAiYnVybi1teS13aW5kb3dzQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}, "42": {"version": "13", "sha256": "1lnkijdm250lbijh5z55b43hx6ih57x198rchw5jpph4z186km8c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0J1cm4tTXktV2luZG93cyIsCiAgInV1aWQiOiAiYnVybi1teS13aW5kb3dzQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
+, {"uuid": "burn-my-windows@schneegans.github.com", "name": "Burn My Windows", "pname": "burn-my-windows", "description": "Disintegrate your windows with style.", "link": "https://extensions.gnome.org/extension/4679/burn-my-windows/", "shell_version_map": {"38": {"version": "15", "sha256": "0qxd12aic50s19v73fgvnqhmhwm7j5spg6iw23a57q9afcm28flx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0J1cm4tTXktV2luZG93cyIsCiAgInV1aWQiOiAiYnVybi1teS13aW5kb3dzQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}, "40": {"version": "15", "sha256": "0qxd12aic50s19v73fgvnqhmhwm7j5spg6iw23a57q9afcm28flx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0J1cm4tTXktV2luZG93cyIsCiAgInV1aWQiOiAiYnVybi1teS13aW5kb3dzQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}, "41": {"version": "15", "sha256": "0qxd12aic50s19v73fgvnqhmhwm7j5spg6iw23a57q9afcm28flx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0J1cm4tTXktV2luZG93cyIsCiAgInV1aWQiOiAiYnVybi1teS13aW5kb3dzQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}, "42": {"version": "15", "sha256": "0qxd12aic50s19v73fgvnqhmhwm7j5spg6iw23a57q9afcm28flx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0J1cm4tTXktV2luZG93cyIsCiAgInV1aWQiOiAiYnVybi1teS13aW5kb3dzQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}}}
 , {"uuid": "babar-lite@fthx", "name": "BaBar Lite", "pname": "babar-task-bar-lite-for-gnome-40", "description": "Task bar. App grid, favorites, workspaces and tasks in panel. Light extension.\n\n Replace 'Activities' button by all current workspaces and apps buttons. Switch workspace/app or toggle overview by clicking on these buttons. Drag and drop favorite, task, dash item or app grid item to any workspace (you cannot reorder tasks inside a workspace). Change 'Places' label to an icon. No settings, use BaBar classic for that.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.", "link": "https://extensions.gnome.org/extension/4681/babar-task-bar-lite-for-gnome-40/", "shell_version_map": {"40": {"version": "2", "sha256": "01m48bwpn1as90ahpnl9ari3s2bj8423032nw12ac45wwcnb9yvj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gTm8gc2V0dGluZ3MsIHVzZSBCYUJhciBjbGFzc2ljIGZvciB0aGF0LlxuXG4gWW91IGNhbiB1c2UgbmFtZXMgZm9yIHdvcmtzcGFjZXM6IHRoZXJlIGFyZSB0d28gd2F5cyBmb3IgdGhhdC4gMSkgRWRpdCB0aGUgc3RyaW5nIGFycmF5ICdvcmcuZ25vbWUuZGVza3RvcC53bS5wcmVmZXJlbmNlcy53b3Jrc3BhY2UtbmFtZXMnIGdzZXR0aW5ncyBrZXkgKHRocm91Z2ggZGNvbmYgZWRpdG9yLCBlLmcuKS4gMikgVXNlIG9mZmljaWFsIEdOT01FIGV4dGVuc2lvbiBXb3Jrc3BhY2VzIEluZGljYXRvcidzIHNldHRpbmdzLiBZb3UgZG9uJ3QgaGF2ZSB0byB3cml0ZSBhIGxvbmcgZW5vdWdoIGxpc3Q6IG51bWJlcnMgYXJlIGRpc3BsYXllZCBpZiBubyB3b3Jrc3BhY2UgbmFtZSBpcyBkZWZpbmVkLiIsCiAgIm5hbWUiOiAiQmFCYXIgTGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXItbGl0ZSIsCiAgInV1aWQiOiAiYmFiYXItbGl0ZUBmdGh4IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "41": {"version": "2", "sha256": "01m48bwpn1as90ahpnl9ari3s2bj8423032nw12ac45wwcnb9yvj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gTm8gc2V0dGluZ3MsIHVzZSBCYUJhciBjbGFzc2ljIGZvciB0aGF0LlxuXG4gWW91IGNhbiB1c2UgbmFtZXMgZm9yIHdvcmtzcGFjZXM6IHRoZXJlIGFyZSB0d28gd2F5cyBmb3IgdGhhdC4gMSkgRWRpdCB0aGUgc3RyaW5nIGFycmF5ICdvcmcuZ25vbWUuZGVza3RvcC53bS5wcmVmZXJlbmNlcy53b3Jrc3BhY2UtbmFtZXMnIGdzZXR0aW5ncyBrZXkgKHRocm91Z2ggZGNvbmYgZWRpdG9yLCBlLmcuKS4gMikgVXNlIG9mZmljaWFsIEdOT01FIGV4dGVuc2lvbiBXb3Jrc3BhY2VzIEluZGljYXRvcidzIHNldHRpbmdzLiBZb3UgZG9uJ3QgaGF2ZSB0byB3cml0ZSBhIGxvbmcgZW5vdWdoIGxpc3Q6IG51bWJlcnMgYXJlIGRpc3BsYXllZCBpZiBubyB3b3Jrc3BhY2UgbmFtZSBpcyBkZWZpbmVkLiIsCiAgIm5hbWUiOiAiQmFCYXIgTGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXItbGl0ZSIsCiAgInV1aWQiOiAiYmFiYXItbGl0ZUBmdGh4IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "42": {"version": "2", "sha256": "01m48bwpn1as90ahpnl9ari3s2bj8423032nw12ac45wwcnb9yvj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gTm8gc2V0dGluZ3MsIHVzZSBCYUJhciBjbGFzc2ljIGZvciB0aGF0LlxuXG4gWW91IGNhbiB1c2UgbmFtZXMgZm9yIHdvcmtzcGFjZXM6IHRoZXJlIGFyZSB0d28gd2F5cyBmb3IgdGhhdC4gMSkgRWRpdCB0aGUgc3RyaW5nIGFycmF5ICdvcmcuZ25vbWUuZGVza3RvcC53bS5wcmVmZXJlbmNlcy53b3Jrc3BhY2UtbmFtZXMnIGdzZXR0aW5ncyBrZXkgKHRocm91Z2ggZGNvbmYgZWRpdG9yLCBlLmcuKS4gMikgVXNlIG9mZmljaWFsIEdOT01FIGV4dGVuc2lvbiBXb3Jrc3BhY2VzIEluZGljYXRvcidzIHNldHRpbmdzLiBZb3UgZG9uJ3QgaGF2ZSB0byB3cml0ZSBhIGxvbmcgZW5vdWdoIGxpc3Q6IG51bWJlcnMgYXJlIGRpc3BsYXllZCBpZiBubyB3b3Jrc3BhY2UgbmFtZSBpcyBkZWZpbmVkLiIsCiAgIm5hbWUiOiAiQmFCYXIgTGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXItbGl0ZSIsCiAgInV1aWQiOiAiYmFiYXItbGl0ZUBmdGh4IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
-, {"uuid": "useless-gaps@pimsnel.com", "name": "Useless Gaps", "pname": "useless-gaps", "description": "For aesthetic purposes adds useless gaps around tiled and maximized windows", "link": "https://extensions.gnome.org/extension/4684/useless-gaps/", "shell_version_map": {"38": {"version": "5", "sha256": "1nd5xxwvf2wxm863029xwij99v6zdpbw86465i5kdrxrgwsgcn9q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvciBhZXN0aGV0aWMgcHVycG9zZXMgYWRkcyB1c2VsZXNzIGdhcHMgYXJvdW5kIHRpbGVkIGFuZCBtYXhpbWl6ZWQgd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogInVzZWxlc3MtZ2FwcyIsCiAgIm5hbWUiOiAiVXNlbGVzcyBHYXBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZWxlc3MtZ2FwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlwbWlwL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtdXNlbGVzcy1nYXBzIiwKICAidXVpZCI6ICJ1c2VsZXNzLWdhcHNAcGltc25lbC5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "1nd5xxwvf2wxm863029xwij99v6zdpbw86465i5kdrxrgwsgcn9q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvciBhZXN0aGV0aWMgcHVycG9zZXMgYWRkcyB1c2VsZXNzIGdhcHMgYXJvdW5kIHRpbGVkIGFuZCBtYXhpbWl6ZWQgd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogInVzZWxlc3MtZ2FwcyIsCiAgIm5hbWUiOiAiVXNlbGVzcyBHYXBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZWxlc3MtZ2FwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlwbWlwL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtdXNlbGVzcy1nYXBzIiwKICAidXVpZCI6ICJ1c2VsZXNzLWdhcHNAcGltc25lbC5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "1nd5xxwvf2wxm863029xwij99v6zdpbw86465i5kdrxrgwsgcn9q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvciBhZXN0aGV0aWMgcHVycG9zZXMgYWRkcyB1c2VsZXNzIGdhcHMgYXJvdW5kIHRpbGVkIGFuZCBtYXhpbWl6ZWQgd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogInVzZWxlc3MtZ2FwcyIsCiAgIm5hbWUiOiAiVXNlbGVzcyBHYXBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZWxlc3MtZ2FwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlwbWlwL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtdXNlbGVzcy1nYXBzIiwKICAidXVpZCI6ICJ1c2VsZXNzLWdhcHNAcGltc25lbC5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "useless-gaps@pimsnel.com", "name": "Useless Gaps", "pname": "useless-gaps", "description": "For aesthetic purposes adds useless gaps around tiled and maximized windows", "link": "https://extensions.gnome.org/extension/4684/useless-gaps/", "shell_version_map": {"38": {"version": "7", "sha256": "0vx69wqmhzl0kllnq8p4jbpb37zm7g3ychgxyfib17w4zppm91id", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvciBhZXN0aGV0aWMgcHVycG9zZXMgYWRkcyB1c2VsZXNzIGdhcHMgYXJvdW5kIHRpbGVkIGFuZCBtYXhpbWl6ZWQgd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogInVzZWxlc3MtZ2FwcyIsCiAgIm5hbWUiOiAiVXNlbGVzcyBHYXBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZWxlc3MtZ2FwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pcG1pcC9nbm9tZS1zaGVsbC1leHRlbnNpb25zLXVzZWxlc3MtZ2FwcyIsCiAgInV1aWQiOiAidXNlbGVzcy1nYXBzQHBpbXNuZWwuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "0vx69wqmhzl0kllnq8p4jbpb37zm7g3ychgxyfib17w4zppm91id", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvciBhZXN0aGV0aWMgcHVycG9zZXMgYWRkcyB1c2VsZXNzIGdhcHMgYXJvdW5kIHRpbGVkIGFuZCBtYXhpbWl6ZWQgd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogInVzZWxlc3MtZ2FwcyIsCiAgIm5hbWUiOiAiVXNlbGVzcyBHYXBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZWxlc3MtZ2FwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pcG1pcC9nbm9tZS1zaGVsbC1leHRlbnNpb25zLXVzZWxlc3MtZ2FwcyIsCiAgInV1aWQiOiAidXNlbGVzcy1nYXBzQHBpbXNuZWwuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "41": {"version": "7", "sha256": "0vx69wqmhzl0kllnq8p4jbpb37zm7g3ychgxyfib17w4zppm91id", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvciBhZXN0aGV0aWMgcHVycG9zZXMgYWRkcyB1c2VsZXNzIGdhcHMgYXJvdW5kIHRpbGVkIGFuZCBtYXhpbWl6ZWQgd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogInVzZWxlc3MtZ2FwcyIsCiAgIm5hbWUiOiAiVXNlbGVzcyBHYXBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZWxlc3MtZ2FwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pcG1pcC9nbm9tZS1zaGVsbC1leHRlbnNpb25zLXVzZWxlc3MtZ2FwcyIsCiAgInV1aWQiOiAidXNlbGVzcy1nYXBzQHBpbXNuZWwuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "42": {"version": "7", "sha256": "0vx69wqmhzl0kllnq8p4jbpb37zm7g3ychgxyfib17w4zppm91id", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvciBhZXN0aGV0aWMgcHVycG9zZXMgYWRkcyB1c2VsZXNzIGdhcHMgYXJvdW5kIHRpbGVkIGFuZCBtYXhpbWl6ZWQgd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogInVzZWxlc3MtZ2FwcyIsCiAgIm5hbWUiOiAiVXNlbGVzcyBHYXBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZWxlc3MtZ2FwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pcG1pcC9nbm9tZS1zaGVsbC1leHRlbnNpb25zLXVzZWxlc3MtZ2FwcyIsCiAgInV1aWQiOiAidXNlbGVzcy1nYXBzQHBpbXNuZWwuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
 , {"uuid": "serverstatus@footeware.ca", "name": "Server Status Indicator", "pname": "server-status-indicator", "description": "Indicator displaying status of entered web server urls, green for up, red for down.", "link": "https://extensions.gnome.org/extension/4687/server-status-indicator/", "shell_version_map": {"40": {"version": "8", "sha256": "1mm2b6fwx58yvcq8fkxrkcb5bcm4ak8al5jw0939mwr8fjhgd13s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRvciBkaXNwbGF5aW5nIHN0YXR1cyBvZiBlbnRlcmVkIHdlYiBzZXJ2ZXIgdXJscywgZ3JlZW4gZm9yIHVwLCByZWQgZm9yIGRvd24uIiwKICAibmFtZSI6ICJTZXJ2ZXIgU3RhdHVzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zZXJ2ZXJzdGF0dXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NyYWlnRm9vdGUvY2EuZm9vdGV3YXJlLmdub21lc2hlbGwuc2VydmVyc3RhdHVzLmdpdCIsCiAgInV1aWQiOiAic2VydmVyc3RhdHVzQGZvb3Rld2FyZS5jYSIsCiAgInZlcnNpb24iOiA4Cn0="}, "42": {"version": "8", "sha256": "1mm2b6fwx58yvcq8fkxrkcb5bcm4ak8al5jw0939mwr8fjhgd13s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRvciBkaXNwbGF5aW5nIHN0YXR1cyBvZiBlbnRlcmVkIHdlYiBzZXJ2ZXIgdXJscywgZ3JlZW4gZm9yIHVwLCByZWQgZm9yIGRvd24uIiwKICAibmFtZSI6ICJTZXJ2ZXIgU3RhdHVzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zZXJ2ZXJzdGF0dXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NyYWlnRm9vdGUvY2EuZm9vdGV3YXJlLmdub21lc2hlbGwuc2VydmVyc3RhdHVzLmdpdCIsCiAgInV1aWQiOiAic2VydmVyc3RhdHVzQGZvb3Rld2FyZS5jYSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
 , {"uuid": "focus-follows-workspace@christopher.luebbemeier.gmail.com", "name": "Focus Follows Workspace", "pname": "focus-follows-workspace", "description": "Focus the primary monitor after switching workspaces via keyboard.\n\nThis extension is meant to be used with a multi-monitor setup with the setting \"Workspaces on primary display only\". It enables quick switching to an application on a given workspace via keyboard by preventing the focus from being restored to a window on a secondary monitor.", "link": "https://extensions.gnome.org/extension/4688/focus-follows-workspace/", "shell_version_map": {"41": {"version": "1", "sha256": "1xllg9wp7phrqa9897m9al740k60v01zird49vwwm24wzpmyby9k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvY3VzIHRoZSBwcmltYXJ5IG1vbml0b3IgYWZ0ZXIgc3dpdGNoaW5nIHdvcmtzcGFjZXMgdmlhIGtleWJvYXJkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBtZWFudCB0byBiZSB1c2VkIHdpdGggYSBtdWx0aS1tb25pdG9yIHNldHVwIHdpdGggdGhlIHNldHRpbmcgXCJXb3Jrc3BhY2VzIG9uIHByaW1hcnkgZGlzcGxheSBvbmx5XCIuIEl0IGVuYWJsZXMgcXVpY2sgc3dpdGNoaW5nIHRvIGFuIGFwcGxpY2F0aW9uIG9uIGEgZ2l2ZW4gd29ya3NwYWNlIHZpYSBrZXlib2FyZCBieSBwcmV2ZW50aW5nIHRoZSBmb2N1cyBmcm9tIGJlaW5nIHJlc3RvcmVkIHRvIGEgd2luZG93IG9uIGEgc2Vjb25kYXJ5IG1vbml0b3IuIiwKICAibmFtZSI6ICJGb2N1cyBGb2xsb3dzIFdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RvcGhlci1sL2ZvY3VzLWZvbGxvd3Mtd29ya3NwYWNlIiwKICAidXVpZCI6ICJmb2N1cy1mb2xsb3dzLXdvcmtzcGFjZUBjaHJpc3RvcGhlci5sdWViYmVtZWllci5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
-, {"uuid": "pip-on-top@rafostar.github.com", "name": "PiP on top", "pname": "pip-on-top", "description": "Makes \"Picture-in-Picture\" windows stay on top (even on Wayland session). Compatible with Firefox and Clapper media player.", "link": "https://extensions.gnome.org/extension/4691/pip-on-top/", "shell_version_map": {"38": {"version": "1", "sha256": "0gizz4r89pbmhw4ijv2qqlhdxnzlz0bnx659pmizgvmh966za3k2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhZm9zdGFyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1waXAtb24tdG9wIiwKICAidXVpZCI6ICJwaXAtb24tdG9wQHJhZm9zdGFyLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}, "40": {"version": "1", "sha256": "0gizz4r89pbmhw4ijv2qqlhdxnzlz0bnx659pmizgvmh966za3k2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhZm9zdGFyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1waXAtb24tdG9wIiwKICAidXVpZCI6ICJwaXAtb24tdG9wQHJhZm9zdGFyLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}, "41": {"version": "1", "sha256": "0gizz4r89pbmhw4ijv2qqlhdxnzlz0bnx659pmizgvmh966za3k2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhZm9zdGFyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1waXAtb24tdG9wIiwKICAidXVpZCI6ICJwaXAtb24tdG9wQHJhZm9zdGFyLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "pip-on-top@rafostar.github.com", "name": "PiP on top", "pname": "pip-on-top", "description": "Makes \"Picture-in-Picture\" windows stay on top (even on Wayland session). Compatible with Firefox and Clapper media player.", "link": "https://extensions.gnome.org/extension/4691/pip-on-top/", "shell_version_map": {"38": {"version": "2", "sha256": "1920nd7dr2159606mlv3c4fkambw1yx0a65rr961qx3w6jwd1pym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "1920nd7dr2159606mlv3c4fkambw1yx0a65rr961qx3w6jwd1pym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "41": {"version": "2", "sha256": "1920nd7dr2159606mlv3c4fkambw1yx0a65rr961qx3w6jwd1pym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "42": {"version": "2", "sha256": "1920nd7dr2159606mlv3c4fkambw1yx0a65rr961qx3w6jwd1pym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "roundedSystemMenuButtons@pratap.fastmail.fm", "name": "Rounded System Menu Buttons", "pname": "rounded-system-menu-buttons", "description": "Rounded System Menu Buttons", "link": "https://extensions.gnome.org/extension/4693/rounded-system-menu-buttons/", "shell_version_map": {"38": {"version": "17", "sha256": "1cwjyw4sc4i4vdm458qdnjzvmiqyz9vscicwarsd9cvik57p44f5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJvdW5kZWQgU3lzdGVtIE1lbnUgQnV0dG9ucyIsCiAgIm5hbWUiOiAiUm91bmRlZCBTeXN0ZW0gTWVudSBCdXR0b25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnJvdW5kLXN5c3RlbS1tZW51LWJ1dHRvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9yb3VuZGVkLXN5c3RlbS1tZW51LWJ1dHRvbnMiLAogICJ1dWlkIjogInJvdW5kZWRTeXN0ZW1NZW51QnV0dG9uc0BwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "40": {"version": "19", "sha256": "0rji6f2nfzanl5wp2b0hyphpbb7ymwgx913wy3ms0z2wqjgsld3a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJvdW5kZWQgU3lzdGVtIE1lbnUgQnV0dG9ucyIsCiAgIm5hbWUiOiAiUm91bmRlZCBTeXN0ZW0gTWVudSBCdXR0b25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnJvdW5kLXN5c3RlbS1tZW51LWJ1dHRvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvcm91bmRlZC1zeXN0ZW0tbWVudS1idXR0b25zIiwKICAidXVpZCI6ICJyb3VuZGVkU3lzdGVtTWVudUJ1dHRvbnNAcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "41": {"version": "19", "sha256": "0rji6f2nfzanl5wp2b0hyphpbb7ymwgx913wy3ms0z2wqjgsld3a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJvdW5kZWQgU3lzdGVtIE1lbnUgQnV0dG9ucyIsCiAgIm5hbWUiOiAiUm91bmRlZCBTeXN0ZW0gTWVudSBCdXR0b25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnJvdW5kLXN5c3RlbS1tZW51LWJ1dHRvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvcm91bmRlZC1zeXN0ZW0tbWVudS1idXR0b25zIiwKICAidXVpZCI6ICJyb3VuZGVkU3lzdGVtTWVudUJ1dHRvbnNAcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "42": {"version": "19", "sha256": "0rji6f2nfzanl5wp2b0hyphpbb7ymwgx913wy3ms0z2wqjgsld3a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJvdW5kZWQgU3lzdGVtIE1lbnUgQnV0dG9ucyIsCiAgIm5hbWUiOiAiUm91bmRlZCBTeXN0ZW0gTWVudSBCdXR0b25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnJvdW5kLXN5c3RlbS1tZW51LWJ1dHRvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvcm91bmRlZC1zeXN0ZW0tbWVudS1idXR0b25zIiwKICAidXVpZCI6ICJyb3VuZGVkU3lzdGVtTWVudUJ1dHRvbnNAcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDE5Cn0="}}}
-, {"uuid": "static-background@denizaksimsek.com", "name": "Static background in overview", "pname": "static-background-in-overview", "description": "The background, always clearly visible.", "link": "https://extensions.gnome.org/extension/4696/static-background-in-overview/", "shell_version_map": {"40": {"version": "2", "sha256": "1wr4xp0jj74fjp4yjizyvy1qvmbaclk59cjjhwigxh3glkgdy8ph", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBiYWNrZ3JvdW5kLCBhbHdheXMgY2xlYXJseSB2aXNpYmxlLiIsCiAgIm5hbWUiOiAiU3RhdGljIGJhY2tncm91bmQgaW4gb3ZlcnZpZXciLAogICJvcmlnaW5hbC1hdXRob3IiOiAicmVucy5hbHRodWlzQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZHo0ay9nbm9tZS1zdGF0aWMtYmFja2dyb3VuZCIsCiAgInV1aWQiOiAic3RhdGljLWJhY2tncm91bmRAZGVuaXpha3NpbXNlay5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "1wr4xp0jj74fjp4yjizyvy1qvmbaclk59cjjhwigxh3glkgdy8ph", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBiYWNrZ3JvdW5kLCBhbHdheXMgY2xlYXJseSB2aXNpYmxlLiIsCiAgIm5hbWUiOiAiU3RhdGljIGJhY2tncm91bmQgaW4gb3ZlcnZpZXciLAogICJvcmlnaW5hbC1hdXRob3IiOiAicmVucy5hbHRodWlzQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZHo0ay9nbm9tZS1zdGF0aWMtYmFja2dyb3VuZCIsCiAgInV1aWQiOiAic3RhdGljLWJhY2tncm91bmRAZGVuaXpha3NpbXNlay5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "static-background@denizaksimsek.com", "name": "Static background in overview", "pname": "static-background-in-overview", "description": "The background, always clearly visible.", "link": "https://extensions.gnome.org/extension/4696/static-background-in-overview/", "shell_version_map": {"40": {"version": "3", "sha256": "06ndnyv988v6m2rns8rf56axygh2hj00l5103fqkrgq122cvxw02", "metadata": "ewogICAgIm5hbWUiIDogIlN0YXRpYyBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGJhY2tncm91bmQsIGFsd2F5cyBjbGVhcmx5IHZpc2libGUuIiwKICAgICJvcmlnaW5hbC1hdXRob3IiOiAicmVucy5hbHRodWlzQGdtYWlsLmNvbSIsCiAgICAic2hlbGwtdmVyc2lvbiIgOiBbCiAgICAgICAgIjQwIiwKICAgICAgICAiNDEiLAogICAgICAgICI0MiIKICAgIF0sCiAgICAidXJsIiA6ICJodHRwczovL2dpdGh1Yi5jb20vZHo0ay9nbm9tZS1zdGF0aWMtYmFja2dyb3VuZCIsCiAgICAidXVpZCIgOiAic3RhdGljLWJhY2tncm91bmRAZGVuaXpha3NpbXNlay5jb20iLAogICAgInZlcnNpb24iIDogMwp9Cg=="}, "41": {"version": "3", "sha256": "06ndnyv988v6m2rns8rf56axygh2hj00l5103fqkrgq122cvxw02", "metadata": "ewogICAgIm5hbWUiIDogIlN0YXRpYyBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGJhY2tncm91bmQsIGFsd2F5cyBjbGVhcmx5IHZpc2libGUuIiwKICAgICJvcmlnaW5hbC1hdXRob3IiOiAicmVucy5hbHRodWlzQGdtYWlsLmNvbSIsCiAgICAic2hlbGwtdmVyc2lvbiIgOiBbCiAgICAgICAgIjQwIiwKICAgICAgICAiNDEiLAogICAgICAgICI0MiIKICAgIF0sCiAgICAidXJsIiA6ICJodHRwczovL2dpdGh1Yi5jb20vZHo0ay9nbm9tZS1zdGF0aWMtYmFja2dyb3VuZCIsCiAgICAidXVpZCIgOiAic3RhdGljLWJhY2tncm91bmRAZGVuaXpha3NpbXNlay5jb20iLAogICAgInZlcnNpb24iIDogMwp9Cg=="}, "42": {"version": "3", "sha256": "06ndnyv988v6m2rns8rf56axygh2hj00l5103fqkrgq122cvxw02", "metadata": "ewogICAgIm5hbWUiIDogIlN0YXRpYyBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGJhY2tncm91bmQsIGFsd2F5cyBjbGVhcmx5IHZpc2libGUuIiwKICAgICJvcmlnaW5hbC1hdXRob3IiOiAicmVucy5hbHRodWlzQGdtYWlsLmNvbSIsCiAgICAic2hlbGwtdmVyc2lvbiIgOiBbCiAgICAgICAgIjQwIiwKICAgICAgICAiNDEiLAogICAgICAgICI0MiIKICAgIF0sCiAgICAidXJsIiA6ICJodHRwczovL2dpdGh1Yi5jb20vZHo0ay9nbm9tZS1zdGF0aWMtYmFja2dyb3VuZCIsCiAgICAidXVpZCIgOiAic3RhdGljLWJhY2tncm91bmRAZGVuaXpha3NpbXNlay5jb20iLAogICAgInZlcnNpb24iIDogMwp9Cg=="}}}
 , {"uuid": "highlight-focus@pimsnel.com", "name": "Highlight Focus", "pname": "highlight-focus", "description": "Highlights the focussed window with a temporary border", "link": "https://extensions.gnome.org/extension/4699/highlight-focus/", "shell_version_map": {"38": {"version": "2", "sha256": "1mdmwhlrdpfw3zw66575kd8xc0isgw0gnx3qq3f5d70c8wk7ijhx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hsaWdodHMgdGhlIGZvY3Vzc2VkIHdpbmRvdyB3aXRoIGEgdGVtcG9yYXJ5IGJvcmRlciIsCiAgIm5hbWUiOiAiSGlnaGxpZ2h0IEZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taXBtaXAvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy1oaWdobGlnaHQtZm9jdXMiLAogICJ1dWlkIjogImhpZ2hsaWdodC1mb2N1c0BwaW1zbmVsLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "1mdmwhlrdpfw3zw66575kd8xc0isgw0gnx3qq3f5d70c8wk7ijhx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hsaWdodHMgdGhlIGZvY3Vzc2VkIHdpbmRvdyB3aXRoIGEgdGVtcG9yYXJ5IGJvcmRlciIsCiAgIm5hbWUiOiAiSGlnaGxpZ2h0IEZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taXBtaXAvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy1oaWdobGlnaHQtZm9jdXMiLAogICJ1dWlkIjogImhpZ2hsaWdodC1mb2N1c0BwaW1zbmVsLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "1mdmwhlrdpfw3zw66575kd8xc0isgw0gnx3qq3f5d70c8wk7ijhx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hsaWdodHMgdGhlIGZvY3Vzc2VkIHdpbmRvdyB3aXRoIGEgdGVtcG9yYXJ5IGJvcmRlciIsCiAgIm5hbWUiOiAiSGlnaGxpZ2h0IEZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taXBtaXAvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy1oaWdobGlnaHQtZm9jdXMiLAogICJ1dWlkIjogImhpZ2hsaWdodC1mb2N1c0BwaW1zbmVsLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "awesome-tiles@velitasali.com", "name": "Awesome Tiles", "pname": "awesome-tiles", "description": "Tile windows using keyboard shortcuts.", "link": "https://extensions.gnome.org/extension/4702/awesome-tiles/", "shell_version_map": {"40": {"version": "4", "sha256": "18im4m362yp5cv03j1acb4nqs496dz2nxxiy7zirf4qzd98hsh29", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyB1c2luZyBrZXlib2FyZCBzaG9ydGN1dHMuIiwKICAibmFtZSI6ICJBd2Vzb21lIFRpbGVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmF3ZXNvbWUtdGlsZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92ZWxpdGFzYWxpL2dub21lLWF3ZXNvbWUtdGlsZXMtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhd2Vzb21lLXRpbGVzQHZlbGl0YXNhbGkuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "18im4m362yp5cv03j1acb4nqs496dz2nxxiy7zirf4qzd98hsh29", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyB1c2luZyBrZXlib2FyZCBzaG9ydGN1dHMuIiwKICAibmFtZSI6ICJBd2Vzb21lIFRpbGVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmF3ZXNvbWUtdGlsZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92ZWxpdGFzYWxpL2dub21lLWF3ZXNvbWUtdGlsZXMtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhd2Vzb21lLXRpbGVzQHZlbGl0YXNhbGkuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "42": {"version": "4", "sha256": "18im4m362yp5cv03j1acb4nqs496dz2nxxiy7zirf4qzd98hsh29", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyB1c2luZyBrZXlib2FyZCBzaG9ydGN1dHMuIiwKICAibmFtZSI6ICJBd2Vzb21lIFRpbGVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmF3ZXNvbWUtdGlsZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92ZWxpdGFzYWxpL2dub21lLWF3ZXNvbWUtdGlsZXMtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhd2Vzb21lLXRpbGVzQHZlbGl0YXNhbGkuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "dock-from-dash@fthx", "name": "Dock from Dash", "pname": "dock-from-dash", "description": "Dock for GNOME Shell 40+. Does use native GNOME Shell Dash. Very light extension.\n\n Hover the bottom of your screen and GNOME Shell dash will appear without overview and will hide when you leave the dash. Native GNOME Shell click behavior is modified: minimize if one window is open, overview if many windows are open. Scroll on the dock to change workspace.\n\n There are some variables you can easily set in extension.js code (opacity, timeouts...). There will be no preferences UI.\n\n Please report bugs through GitHub.", "link": "https://extensions.gnome.org/extension/4703/dock-from-dash/", "shell_version_map": {"40": {"version": "33", "sha256": "01zdmwlakfqnxj0dsa8nja883dbb7656mcfp28iivg1mnj97rwfb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRvY2sgZm9yIEdOT01FIFNoZWxsIDQwKy4gRG9lcyB1c2UgbmF0aXZlIEdOT01FIFNoZWxsIERhc2guIFZlcnkgbGlnaHQgZXh0ZW5zaW9uLlxuXG4gSG92ZXIgdGhlIGJvdHRvbSBvZiB5b3VyIHNjcmVlbiBhbmQgR05PTUUgU2hlbGwgZGFzaCB3aWxsIGFwcGVhciB3aXRob3V0IG92ZXJ2aWV3IGFuZCB3aWxsIGhpZGUgd2hlbiB5b3UgbGVhdmUgdGhlIGRhc2guIE5hdGl2ZSBHTk9NRSBTaGVsbCBjbGljayBiZWhhdmlvciBpcyBtb2RpZmllZDogbWluaW1pemUgaWYgb25lIHdpbmRvdyBpcyBvcGVuLCBvdmVydmlldyBpZiBtYW55IHdpbmRvd3MgYXJlIG9wZW4uIFNjcm9sbCBvbiB0aGUgZG9jayB0byBjaGFuZ2Ugd29ya3NwYWNlLlxuXG4gVGhlcmUgYXJlIHNvbWUgdmFyaWFibGVzIHlvdSBjYW4gZWFzaWx5IHNldCBpbiBleHRlbnNpb24uanMgY29kZSAob3BhY2l0eSwgdGltZW91dHMuLi4pLiBUaGVyZSB3aWxsIGJlIG5vIHByZWZlcmVuY2VzIFVJLlxuXG4gUGxlYXNlIHJlcG9ydCBidWdzIHRocm91Z2ggR2l0SHViLiIsCiAgIm5hbWUiOiAiRG9jayBmcm9tIERhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2RvY2stZnJvbS1kYXNoIiwKICAidXVpZCI6ICJkb2NrLWZyb20tZGFzaEBmdGh4IiwKICAidmVyc2lvbiI6IDMzCn0="}, "41": {"version": "33", "sha256": "01zdmwlakfqnxj0dsa8nja883dbb7656mcfp28iivg1mnj97rwfb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRvY2sgZm9yIEdOT01FIFNoZWxsIDQwKy4gRG9lcyB1c2UgbmF0aXZlIEdOT01FIFNoZWxsIERhc2guIFZlcnkgbGlnaHQgZXh0ZW5zaW9uLlxuXG4gSG92ZXIgdGhlIGJvdHRvbSBvZiB5b3VyIHNjcmVlbiBhbmQgR05PTUUgU2hlbGwgZGFzaCB3aWxsIGFwcGVhciB3aXRob3V0IG92ZXJ2aWV3IGFuZCB3aWxsIGhpZGUgd2hlbiB5b3UgbGVhdmUgdGhlIGRhc2guIE5hdGl2ZSBHTk9NRSBTaGVsbCBjbGljayBiZWhhdmlvciBpcyBtb2RpZmllZDogbWluaW1pemUgaWYgb25lIHdpbmRvdyBpcyBvcGVuLCBvdmVydmlldyBpZiBtYW55IHdpbmRvd3MgYXJlIG9wZW4uIFNjcm9sbCBvbiB0aGUgZG9jayB0byBjaGFuZ2Ugd29ya3NwYWNlLlxuXG4gVGhlcmUgYXJlIHNvbWUgdmFyaWFibGVzIHlvdSBjYW4gZWFzaWx5IHNldCBpbiBleHRlbnNpb24uanMgY29kZSAob3BhY2l0eSwgdGltZW91dHMuLi4pLiBUaGVyZSB3aWxsIGJlIG5vIHByZWZlcmVuY2VzIFVJLlxuXG4gUGxlYXNlIHJlcG9ydCBidWdzIHRocm91Z2ggR2l0SHViLiIsCiAgIm5hbWUiOiAiRG9jayBmcm9tIERhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2RvY2stZnJvbS1kYXNoIiwKICAidXVpZCI6ICJkb2NrLWZyb20tZGFzaEBmdGh4IiwKICAidmVyc2lvbiI6IDMzCn0="}, "42": {"version": "33", "sha256": "01zdmwlakfqnxj0dsa8nja883dbb7656mcfp28iivg1mnj97rwfb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRvY2sgZm9yIEdOT01FIFNoZWxsIDQwKy4gRG9lcyB1c2UgbmF0aXZlIEdOT01FIFNoZWxsIERhc2guIFZlcnkgbGlnaHQgZXh0ZW5zaW9uLlxuXG4gSG92ZXIgdGhlIGJvdHRvbSBvZiB5b3VyIHNjcmVlbiBhbmQgR05PTUUgU2hlbGwgZGFzaCB3aWxsIGFwcGVhciB3aXRob3V0IG92ZXJ2aWV3IGFuZCB3aWxsIGhpZGUgd2hlbiB5b3UgbGVhdmUgdGhlIGRhc2guIE5hdGl2ZSBHTk9NRSBTaGVsbCBjbGljayBiZWhhdmlvciBpcyBtb2RpZmllZDogbWluaW1pemUgaWYgb25lIHdpbmRvdyBpcyBvcGVuLCBvdmVydmlldyBpZiBtYW55IHdpbmRvd3MgYXJlIG9wZW4uIFNjcm9sbCBvbiB0aGUgZG9jayB0byBjaGFuZ2Ugd29ya3NwYWNlLlxuXG4gVGhlcmUgYXJlIHNvbWUgdmFyaWFibGVzIHlvdSBjYW4gZWFzaWx5IHNldCBpbiBleHRlbnNpb24uanMgY29kZSAob3BhY2l0eSwgdGltZW91dHMuLi4pLiBUaGVyZSB3aWxsIGJlIG5vIHByZWZlcmVuY2VzIFVJLlxuXG4gUGxlYXNlIHJlcG9ydCBidWdzIHRocm91Z2ggR2l0SHViLiIsCiAgIm5hbWUiOiAiRG9jayBmcm9tIERhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2RvY2stZnJvbS1kYXNoIiwKICAidXVpZCI6ICJkb2NrLWZyb20tZGFzaEBmdGh4IiwKICAidmVyc2lvbiI6IDMzCn0="}}}
-, {"uuid": "another-window-session-manager@gmail.com", "name": "Another Window Session Manager", "pname": "another-window-session-manager", "description": "Close and save open windows. And restore the saved windows. Most importantly, it supports both X11 and Wayland!\n\nFeatures:\n- Close open windows\n- Save open windows\n- Restore saved open windows\n- Restore window state, including Always on Top, Always on Visible Workspace and maximization\n- Restore window workspace, size and position\n- Move windows to their own workspace according to a saved session\n- Support multi-monitor\n- Trash saved session\n- Search saved session by the session name fuzzily", "link": "https://extensions.gnome.org/extension/4709/another-window-session-manager/", "shell_version_map": {"40": {"version": "11", "sha256": "0d1d0178nvcxvsay1wqm5wclfhs7a2g500xmh3khmvc981pg83j4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIGFuZCBzYXZlIG9wZW4gd2luZG93cy4gQW5kIHJlc3RvcmUgdGhlIHNhdmVkIHdpbmRvd3MuIE1vc3QgaW1wb3J0YW50bHksIGl0IHN1cHBvcnRzIGJvdGggWDExIGFuZCBXYXlsYW5kIVxuXG5GZWF0dXJlczpcbi0gQ2xvc2Ugb3BlbiB3aW5kb3dzXG4tIFNhdmUgb3BlbiB3aW5kb3dzXG4tIFJlc3RvcmUgc2F2ZWQgb3BlbiB3aW5kb3dzXG4tIFJlc3RvcmUgd2luZG93IHN0YXRlLCBpbmNsdWRpbmcgQWx3YXlzIG9uIFRvcCwgQWx3YXlzIG9uIFZpc2libGUgV29ya3NwYWNlIGFuZCBtYXhpbWl6YXRpb25cbi0gUmVzdG9yZSB3aW5kb3cgd29ya3NwYWNlLCBzaXplIGFuZCBwb3NpdGlvblxuLSBNb3ZlIHdpbmRvd3MgdG8gdGhlaXIgb3duIHdvcmtzcGFjZSBhY2NvcmRpbmcgdG8gYSBzYXZlZCBzZXNzaW9uXG4tIFN1cHBvcnQgbXVsdGktbW9uaXRvclxuLSBUcmFzaCBzYXZlZCBzZXNzaW9uXG4tIFNlYXJjaCBzYXZlZCBzZXNzaW9uIGJ5IHRoZSBzZXNzaW9uIG5hbWUgZnV6emlseSIsCiAgIm5hbWUiOiAiQW5vdGhlciBXaW5kb3cgU2Vzc2lvbiBNYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ubHBzdWdlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1hbm90aGVyLXdpbmRvdy1zZXNzaW9uLW1hbmFnZXIiLAogICJ1dWlkIjogImFub3RoZXItd2luZG93LXNlc3Npb24tbWFuYWdlckBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "41": {"version": "11", "sha256": "0d1d0178nvcxvsay1wqm5wclfhs7a2g500xmh3khmvc981pg83j4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIGFuZCBzYXZlIG9wZW4gd2luZG93cy4gQW5kIHJlc3RvcmUgdGhlIHNhdmVkIHdpbmRvd3MuIE1vc3QgaW1wb3J0YW50bHksIGl0IHN1cHBvcnRzIGJvdGggWDExIGFuZCBXYXlsYW5kIVxuXG5GZWF0dXJlczpcbi0gQ2xvc2Ugb3BlbiB3aW5kb3dzXG4tIFNhdmUgb3BlbiB3aW5kb3dzXG4tIFJlc3RvcmUgc2F2ZWQgb3BlbiB3aW5kb3dzXG4tIFJlc3RvcmUgd2luZG93IHN0YXRlLCBpbmNsdWRpbmcgQWx3YXlzIG9uIFRvcCwgQWx3YXlzIG9uIFZpc2libGUgV29ya3NwYWNlIGFuZCBtYXhpbWl6YXRpb25cbi0gUmVzdG9yZSB3aW5kb3cgd29ya3NwYWNlLCBzaXplIGFuZCBwb3NpdGlvblxuLSBNb3ZlIHdpbmRvd3MgdG8gdGhlaXIgb3duIHdvcmtzcGFjZSBhY2NvcmRpbmcgdG8gYSBzYXZlZCBzZXNzaW9uXG4tIFN1cHBvcnQgbXVsdGktbW9uaXRvclxuLSBUcmFzaCBzYXZlZCBzZXNzaW9uXG4tIFNlYXJjaCBzYXZlZCBzZXNzaW9uIGJ5IHRoZSBzZXNzaW9uIG5hbWUgZnV6emlseSIsCiAgIm5hbWUiOiAiQW5vdGhlciBXaW5kb3cgU2Vzc2lvbiBNYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ubHBzdWdlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1hbm90aGVyLXdpbmRvdy1zZXNzaW9uLW1hbmFnZXIiLAogICJ1dWlkIjogImFub3RoZXItd2luZG93LXNlc3Npb24tbWFuYWdlckBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
-, {"uuid": "prevent-double-empty-window@silliewous.nl", "name": "Prevent double empty window", "pname": "prevent-double-empty-window", "description": "Set MIN_NUMBER_WORKSPACES to 1 so there is only one empty workspace when there are no windows open.\n\nhttps://gitlab.com/g3786/prevent-double-empty-window", "link": "https://extensions.gnome.org/extension/4711/prevent-double-empty-window/", "shell_version_map": {"40": {"version": "1", "sha256": "18f1pflvv4sw1r182rrjz2jdy1ym1ipm5lid2sm518h8c3iiabb2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBNSU5fTlVNQkVSX1dPUktTUEFDRVMgdG8gMSBzbyB0aGVyZSBpcyBvbmx5IG9uZSBlbXB0eSB3b3Jrc3BhY2Ugd2hlbiB0aGVyZSBhcmUgbm8gd2luZG93cyBvcGVuLlxuXG5odHRwczovL2dpdGxhYi5jb20vZzM3ODYvcHJldmVudC1kb3VibGUtZW1wdHktd2luZG93IiwKICAibmFtZSI6ICJQcmV2ZW50IGRvdWJsZSBlbXB0eSB3aW5kb3ciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInByZXZlbnQtZG91YmxlLWVtcHR5LXdpbmRvd0BzaWxsaWV3b3VzLm5sIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "dock-from-dash@fthx", "name": "Dock from Dash", "pname": "dock-from-dash", "description": "Dock for GNOME Shell 40+. Does use native GNOME Shell Dash. Very light extension.\n\n Hover the bottom of your screen and GNOME Shell dash will appear without overview and will hide when you leave the dash. Native GNOME Shell click behavior is modified: minimize if one window is open, overview if many windows are open. Scroll on the dock to change workspace. Some preferences in UI (thanks @rastersoft).\n\n I'm not notified of messages here, please report bugs only through GitHub.", "link": "https://extensions.gnome.org/extension/4703/dock-from-dash/", "shell_version_map": {"40": {"version": "56", "sha256": "0gy9f13ijacm8kk06r0zxf375fjfndgd56d69j5ry56ib8cn23fy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRvY2sgZm9yIEdOT01FIFNoZWxsIDQwKy4gRG9lcyB1c2UgbmF0aXZlIEdOT01FIFNoZWxsIERhc2guIFZlcnkgbGlnaHQgZXh0ZW5zaW9uLlxuXG4gSG92ZXIgdGhlIGJvdHRvbSBvZiB5b3VyIHNjcmVlbiBhbmQgR05PTUUgU2hlbGwgZGFzaCB3aWxsIGFwcGVhciB3aXRob3V0IG92ZXJ2aWV3IGFuZCB3aWxsIGhpZGUgd2hlbiB5b3UgbGVhdmUgdGhlIGRhc2guIE5hdGl2ZSBHTk9NRSBTaGVsbCBjbGljayBiZWhhdmlvciBpcyBtb2RpZmllZDogbWluaW1pemUgaWYgb25lIHdpbmRvdyBpcyBvcGVuLCBvdmVydmlldyBpZiBtYW55IHdpbmRvd3MgYXJlIG9wZW4uIFNjcm9sbCBvbiB0aGUgZG9jayB0byBjaGFuZ2Ugd29ya3NwYWNlLiBTb21lIHByZWZlcmVuY2VzIGluIFVJICh0aGFua3MgQHJhc3RlcnNvZnQpLlxuXG4gSSdtIG5vdCBub3RpZmllZCBvZiBtZXNzYWdlcyBoZXJlLCBwbGVhc2UgcmVwb3J0IGJ1Z3Mgb25seSB0aHJvdWdoIEdpdEh1Yi4iLAogICJuYW1lIjogIkRvY2sgZnJvbSBEYXNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9kb2NrLWZyb20tZGFzaCIsCiAgInV1aWQiOiAiZG9jay1mcm9tLWRhc2hAZnRoeCIsCiAgInZlcnNpb24iOiA1Ngp9"}, "41": {"version": "56", "sha256": "0gy9f13ijacm8kk06r0zxf375fjfndgd56d69j5ry56ib8cn23fy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRvY2sgZm9yIEdOT01FIFNoZWxsIDQwKy4gRG9lcyB1c2UgbmF0aXZlIEdOT01FIFNoZWxsIERhc2guIFZlcnkgbGlnaHQgZXh0ZW5zaW9uLlxuXG4gSG92ZXIgdGhlIGJvdHRvbSBvZiB5b3VyIHNjcmVlbiBhbmQgR05PTUUgU2hlbGwgZGFzaCB3aWxsIGFwcGVhciB3aXRob3V0IG92ZXJ2aWV3IGFuZCB3aWxsIGhpZGUgd2hlbiB5b3UgbGVhdmUgdGhlIGRhc2guIE5hdGl2ZSBHTk9NRSBTaGVsbCBjbGljayBiZWhhdmlvciBpcyBtb2RpZmllZDogbWluaW1pemUgaWYgb25lIHdpbmRvdyBpcyBvcGVuLCBvdmVydmlldyBpZiBtYW55IHdpbmRvd3MgYXJlIG9wZW4uIFNjcm9sbCBvbiB0aGUgZG9jayB0byBjaGFuZ2Ugd29ya3NwYWNlLiBTb21lIHByZWZlcmVuY2VzIGluIFVJICh0aGFua3MgQHJhc3RlcnNvZnQpLlxuXG4gSSdtIG5vdCBub3RpZmllZCBvZiBtZXNzYWdlcyBoZXJlLCBwbGVhc2UgcmVwb3J0IGJ1Z3Mgb25seSB0aHJvdWdoIEdpdEh1Yi4iLAogICJuYW1lIjogIkRvY2sgZnJvbSBEYXNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9kb2NrLWZyb20tZGFzaCIsCiAgInV1aWQiOiAiZG9jay1mcm9tLWRhc2hAZnRoeCIsCiAgInZlcnNpb24iOiA1Ngp9"}, "42": {"version": "56", "sha256": "0gy9f13ijacm8kk06r0zxf375fjfndgd56d69j5ry56ib8cn23fy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRvY2sgZm9yIEdOT01FIFNoZWxsIDQwKy4gRG9lcyB1c2UgbmF0aXZlIEdOT01FIFNoZWxsIERhc2guIFZlcnkgbGlnaHQgZXh0ZW5zaW9uLlxuXG4gSG92ZXIgdGhlIGJvdHRvbSBvZiB5b3VyIHNjcmVlbiBhbmQgR05PTUUgU2hlbGwgZGFzaCB3aWxsIGFwcGVhciB3aXRob3V0IG92ZXJ2aWV3IGFuZCB3aWxsIGhpZGUgd2hlbiB5b3UgbGVhdmUgdGhlIGRhc2guIE5hdGl2ZSBHTk9NRSBTaGVsbCBjbGljayBiZWhhdmlvciBpcyBtb2RpZmllZDogbWluaW1pemUgaWYgb25lIHdpbmRvdyBpcyBvcGVuLCBvdmVydmlldyBpZiBtYW55IHdpbmRvd3MgYXJlIG9wZW4uIFNjcm9sbCBvbiB0aGUgZG9jayB0byBjaGFuZ2Ugd29ya3NwYWNlLiBTb21lIHByZWZlcmVuY2VzIGluIFVJICh0aGFua3MgQHJhc3RlcnNvZnQpLlxuXG4gSSdtIG5vdCBub3RpZmllZCBvZiBtZXNzYWdlcyBoZXJlLCBwbGVhc2UgcmVwb3J0IGJ1Z3Mgb25seSB0aHJvdWdoIEdpdEh1Yi4iLAogICJuYW1lIjogIkRvY2sgZnJvbSBEYXNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9kb2NrLWZyb20tZGFzaCIsCiAgInV1aWQiOiAiZG9jay1mcm9tLWRhc2hAZnRoeCIsCiAgInZlcnNpb24iOiA1Ngp9"}}}
+, {"uuid": "another-window-session-manager@gmail.com", "name": "Another Window Session Manager", "pname": "another-window-session-manager", "description": "Close and save open windows. And restore them manually or at startup. Most importantly, it supports both X11 and Wayland!\n\nMain features:\n- Close open windows\n- Save open windows\n- Restore session(s)\n- Restore a session at startup. Please note that this feature is disabled by default. See https://github.com/nlpsuge/gnome-shell-extension-another-window-session-manager#how-to-restore-a-session-at-startup to learn how to enable and use it.\n- Restore window state, including Always on Top,  Always on Visible Workspace and maximization\n- Restore window workspace, size and position\n- Move windows to their own workspace according to a saved session\n- Support multi-monitor\n- Trash saved session\n- Search saved session by the session name fuzzily", "link": "https://extensions.gnome.org/extension/4709/another-window-session-manager/", "shell_version_map": {"40": {"version": "15", "sha256": "0y30zd0zghpvf8kihja564938l5hwkfy5b70c7288q6jp4ng8adj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIGFuZCBzYXZlIG9wZW4gd2luZG93cy4gQW5kIHJlc3RvcmUgdGhlbSBtYW51YWxseSBvciBhdCBzdGFydHVwLiBNb3N0IGltcG9ydGFudGx5LCBpdCBzdXBwb3J0cyBib3RoIFgxMSBhbmQgV2F5bGFuZCFcblxuTWFpbiBmZWF0dXJlczpcbi0gQ2xvc2Ugb3BlbiB3aW5kb3dzXG4tIFNhdmUgb3BlbiB3aW5kb3dzXG4tIFJlc3RvcmUgc2Vzc2lvbihzKVxuLSBSZXN0b3JlIGEgc2Vzc2lvbiBhdCBzdGFydHVwLiBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgZmVhdHVyZSBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL25scHN1Z2UvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFub3RoZXItd2luZG93LXNlc3Npb24tbWFuYWdlciNob3ctdG8tcmVzdG9yZS1hLXNlc3Npb24tYXQtc3RhcnR1cCB0byBsZWFybiBob3cgdG8gZW5hYmxlIGFuZCB1c2UgaXQuXG4tIFJlc3RvcmUgd2luZG93IHN0YXRlLCBpbmNsdWRpbmcgQWx3YXlzIG9uIFRvcCwgIEFsd2F5cyBvbiBWaXNpYmxlIFdvcmtzcGFjZSBhbmQgbWF4aW1pemF0aW9uXG4tIFJlc3RvcmUgd2luZG93IHdvcmtzcGFjZSwgc2l6ZSBhbmQgcG9zaXRpb25cbi0gTW92ZSB3aW5kb3dzIHRvIHRoZWlyIG93biB3b3Jrc3BhY2UgYWNjb3JkaW5nIHRvIGEgc2F2ZWQgc2Vzc2lvblxuLSBTdXBwb3J0IG11bHRpLW1vbml0b3Jcbi0gVHJhc2ggc2F2ZWQgc2Vzc2lvblxuLSBTZWFyY2ggc2F2ZWQgc2Vzc2lvbiBieSB0aGUgc2Vzc2lvbiBuYW1lIGZ1enppbHkiLAogICJuYW1lIjogIkFub3RoZXIgV2luZG93IFNlc3Npb24gTWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25scHN1Z2UvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFub3RoZXItd2luZG93LXNlc3Npb24tbWFuYWdlciIsCiAgInV1aWQiOiAiYW5vdGhlci13aW5kb3ctc2Vzc2lvbi1tYW5hZ2VyQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}, "41": {"version": "15", "sha256": "0y30zd0zghpvf8kihja564938l5hwkfy5b70c7288q6jp4ng8adj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIGFuZCBzYXZlIG9wZW4gd2luZG93cy4gQW5kIHJlc3RvcmUgdGhlbSBtYW51YWxseSBvciBhdCBzdGFydHVwLiBNb3N0IGltcG9ydGFudGx5LCBpdCBzdXBwb3J0cyBib3RoIFgxMSBhbmQgV2F5bGFuZCFcblxuTWFpbiBmZWF0dXJlczpcbi0gQ2xvc2Ugb3BlbiB3aW5kb3dzXG4tIFNhdmUgb3BlbiB3aW5kb3dzXG4tIFJlc3RvcmUgc2Vzc2lvbihzKVxuLSBSZXN0b3JlIGEgc2Vzc2lvbiBhdCBzdGFydHVwLiBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgZmVhdHVyZSBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL25scHN1Z2UvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFub3RoZXItd2luZG93LXNlc3Npb24tbWFuYWdlciNob3ctdG8tcmVzdG9yZS1hLXNlc3Npb24tYXQtc3RhcnR1cCB0byBsZWFybiBob3cgdG8gZW5hYmxlIGFuZCB1c2UgaXQuXG4tIFJlc3RvcmUgd2luZG93IHN0YXRlLCBpbmNsdWRpbmcgQWx3YXlzIG9uIFRvcCwgIEFsd2F5cyBvbiBWaXNpYmxlIFdvcmtzcGFjZSBhbmQgbWF4aW1pemF0aW9uXG4tIFJlc3RvcmUgd2luZG93IHdvcmtzcGFjZSwgc2l6ZSBhbmQgcG9zaXRpb25cbi0gTW92ZSB3aW5kb3dzIHRvIHRoZWlyIG93biB3b3Jrc3BhY2UgYWNjb3JkaW5nIHRvIGEgc2F2ZWQgc2Vzc2lvblxuLSBTdXBwb3J0IG11bHRpLW1vbml0b3Jcbi0gVHJhc2ggc2F2ZWQgc2Vzc2lvblxuLSBTZWFyY2ggc2F2ZWQgc2Vzc2lvbiBieSB0aGUgc2Vzc2lvbiBuYW1lIGZ1enppbHkiLAogICJuYW1lIjogIkFub3RoZXIgV2luZG93IFNlc3Npb24gTWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25scHN1Z2UvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFub3RoZXItd2luZG93LXNlc3Npb24tbWFuYWdlciIsCiAgInV1aWQiOiAiYW5vdGhlci13aW5kb3ctc2Vzc2lvbi1tYW5hZ2VyQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}, "42": {"version": "15", "sha256": "0y30zd0zghpvf8kihja564938l5hwkfy5b70c7288q6jp4ng8adj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIGFuZCBzYXZlIG9wZW4gd2luZG93cy4gQW5kIHJlc3RvcmUgdGhlbSBtYW51YWxseSBvciBhdCBzdGFydHVwLiBNb3N0IGltcG9ydGFudGx5LCBpdCBzdXBwb3J0cyBib3RoIFgxMSBhbmQgV2F5bGFuZCFcblxuTWFpbiBmZWF0dXJlczpcbi0gQ2xvc2Ugb3BlbiB3aW5kb3dzXG4tIFNhdmUgb3BlbiB3aW5kb3dzXG4tIFJlc3RvcmUgc2Vzc2lvbihzKVxuLSBSZXN0b3JlIGEgc2Vzc2lvbiBhdCBzdGFydHVwLiBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgZmVhdHVyZSBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL25scHN1Z2UvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFub3RoZXItd2luZG93LXNlc3Npb24tbWFuYWdlciNob3ctdG8tcmVzdG9yZS1hLXNlc3Npb24tYXQtc3RhcnR1cCB0byBsZWFybiBob3cgdG8gZW5hYmxlIGFuZCB1c2UgaXQuXG4tIFJlc3RvcmUgd2luZG93IHN0YXRlLCBpbmNsdWRpbmcgQWx3YXlzIG9uIFRvcCwgIEFsd2F5cyBvbiBWaXNpYmxlIFdvcmtzcGFjZSBhbmQgbWF4aW1pemF0aW9uXG4tIFJlc3RvcmUgd2luZG93IHdvcmtzcGFjZSwgc2l6ZSBhbmQgcG9zaXRpb25cbi0gTW92ZSB3aW5kb3dzIHRvIHRoZWlyIG93biB3b3Jrc3BhY2UgYWNjb3JkaW5nIHRvIGEgc2F2ZWQgc2Vzc2lvblxuLSBTdXBwb3J0IG11bHRpLW1vbml0b3Jcbi0gVHJhc2ggc2F2ZWQgc2Vzc2lvblxuLSBTZWFyY2ggc2F2ZWQgc2Vzc2lvbiBieSB0aGUgc2Vzc2lvbiBuYW1lIGZ1enppbHkiLAogICJuYW1lIjogIkFub3RoZXIgV2luZG93IFNlc3Npb24gTWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25scHN1Z2UvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFub3RoZXItd2luZG93LXNlc3Npb24tbWFuYWdlciIsCiAgInV1aWQiOiAiYW5vdGhlci13aW5kb3ctc2Vzc2lvbi1tYW5hZ2VyQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}}}
+, {"uuid": "prevent-double-empty-window@silliewous.nl", "name": "Prevent double empty window", "pname": "prevent-double-empty-window", "description": "Set MIN_NUMBER_WORKSPACES to 1 so there is only one empty workspace when there are no windows open.\n\nhttps://gitlab.com/g3786/prevent-double-empty-window", "link": "https://extensions.gnome.org/extension/4711/prevent-double-empty-window/", "shell_version_map": {"40": {"version": "2", "sha256": "1xsnrdzqckr5l6lp8biz2zamkmsagdi43nhhlf15wbk7919xnrbi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBNSU5fTlVNQkVSX1dPUktTUEFDRVMgdG8gMSBzbyB0aGVyZSBpcyBvbmx5IG9uZSBlbXB0eSB3b3Jrc3BhY2Ugd2hlbiB0aGVyZSBhcmUgbm8gd2luZG93cyBvcGVuLlxuXG5odHRwczovL2dpdGxhYi5jb20vZzM3ODYvcHJldmVudC1kb3VibGUtZW1wdHktd2luZG93IiwKICAibmFtZSI6ICJQcmV2ZW50IGRvdWJsZSBlbXB0eSB3aW5kb3ciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAicHJldmVudC1kb3VibGUtZW1wdHktd2luZG93QHNpbGxpZXdvdXMubmwiLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "1xsnrdzqckr5l6lp8biz2zamkmsagdi43nhhlf15wbk7919xnrbi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBNSU5fTlVNQkVSX1dPUktTUEFDRVMgdG8gMSBzbyB0aGVyZSBpcyBvbmx5IG9uZSBlbXB0eSB3b3Jrc3BhY2Ugd2hlbiB0aGVyZSBhcmUgbm8gd2luZG93cyBvcGVuLlxuXG5odHRwczovL2dpdGxhYi5jb20vZzM3ODYvcHJldmVudC1kb3VibGUtZW1wdHktd2luZG93IiwKICAibmFtZSI6ICJQcmV2ZW50IGRvdWJsZSBlbXB0eSB3aW5kb3ciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAicHJldmVudC1kb3VibGUtZW1wdHktd2luZG93QHNpbGxpZXdvdXMubmwiLAogICJ2ZXJzaW9uIjogMgp9"}, "42": {"version": "2", "sha256": "1xsnrdzqckr5l6lp8biz2zamkmsagdi43nhhlf15wbk7919xnrbi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBNSU5fTlVNQkVSX1dPUktTUEFDRVMgdG8gMSBzbyB0aGVyZSBpcyBvbmx5IG9uZSBlbXB0eSB3b3Jrc3BhY2Ugd2hlbiB0aGVyZSBhcmUgbm8gd2luZG93cyBvcGVuLlxuXG5odHRwczovL2dpdGxhYi5jb20vZzM3ODYvcHJldmVudC1kb3VibGUtZW1wdHktd2luZG93IiwKICAibmFtZSI6ICJQcmV2ZW50IGRvdWJsZSBlbXB0eSB3aW5kb3ciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAicHJldmVudC1kb3VibGUtZW1wdHktd2luZG93QHNpbGxpZXdvdXMubmwiLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "display-ddc-brightness-volume@sagrland.de", "name": "Display DDC Brightness Volume", "pname": "display-ddc-brightness-volume", "description": "Simple GNOME extension to control displays' brightness and audio volume via DDC. It requires ddcutil to be installed, i2c permissions for non-root users configured.", "link": "https://extensions.gnome.org/extension/4712/display-ddc-brightness-volume/", "shell_version_map": {"40": {"version": "4", "sha256": "1p0pj5sbjz4bffdhplvpq34fl053cjiddagsffk21jxwl1wmrgsk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBleHRlbnNpb24gdG8gY29udHJvbCBkaXNwbGF5cycgYnJpZ2h0bmVzcyBhbmQgYXVkaW8gdm9sdW1lIHZpYSBEREMuIEl0IHJlcXVpcmVzIGRkY3V0aWwgdG8gYmUgaW5zdGFsbGVkLCBpMmMgcGVybWlzc2lvbnMgZm9yIG5vbi1yb290IHVzZXJzIGNvbmZpZ3VyZWQuIiwKICAibmFtZSI6ICJEaXNwbGF5IEREQyBCcmlnaHRuZXNzIFZvbHVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NhR3JMYW5kL2dub21lLXNoZWxsLWRpc3BsYXktZGRjLWJyaWdodG5lc3Mtdm9sdW1lLyIsCiAgInV1aWQiOiAiZGlzcGxheS1kZGMtYnJpZ2h0bmVzcy12b2x1bWVAc2FncmxhbmQuZGUiLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "1p0pj5sbjz4bffdhplvpq34fl053cjiddagsffk21jxwl1wmrgsk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBleHRlbnNpb24gdG8gY29udHJvbCBkaXNwbGF5cycgYnJpZ2h0bmVzcyBhbmQgYXVkaW8gdm9sdW1lIHZpYSBEREMuIEl0IHJlcXVpcmVzIGRkY3V0aWwgdG8gYmUgaW5zdGFsbGVkLCBpMmMgcGVybWlzc2lvbnMgZm9yIG5vbi1yb290IHVzZXJzIGNvbmZpZ3VyZWQuIiwKICAibmFtZSI6ICJEaXNwbGF5IEREQyBCcmlnaHRuZXNzIFZvbHVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NhR3JMYW5kL2dub21lLXNoZWxsLWRpc3BsYXktZGRjLWJyaWdodG5lc3Mtdm9sdW1lLyIsCiAgInV1aWQiOiAiZGlzcGxheS1kZGMtYnJpZ2h0bmVzcy12b2x1bWVAc2FncmxhbmQuZGUiLAogICJ2ZXJzaW9uIjogNAp9"}, "42": {"version": "4", "sha256": "1p0pj5sbjz4bffdhplvpq34fl053cjiddagsffk21jxwl1wmrgsk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBleHRlbnNpb24gdG8gY29udHJvbCBkaXNwbGF5cycgYnJpZ2h0bmVzcyBhbmQgYXVkaW8gdm9sdW1lIHZpYSBEREMuIEl0IHJlcXVpcmVzIGRkY3V0aWwgdG8gYmUgaW5zdGFsbGVkLCBpMmMgcGVybWlzc2lvbnMgZm9yIG5vbi1yb290IHVzZXJzIGNvbmZpZ3VyZWQuIiwKICAibmFtZSI6ICJEaXNwbGF5IEREQyBCcmlnaHRuZXNzIFZvbHVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NhR3JMYW5kL2dub21lLXNoZWxsLWRpc3BsYXktZGRjLWJyaWdodG5lc3Mtdm9sdW1lLyIsCiAgInV1aWQiOiAiZGlzcGxheS1kZGMtYnJpZ2h0bmVzcy12b2x1bWVAc2FncmxhbmQuZGUiLAogICJ2ZXJzaW9uIjogNAp9"}}}
-, {"uuid": "disable_hover@fawtytoo", "name": "Disable Hover On App & Window Switcher Popups", "pname": "disable-hover-on-app-window-switcher-popups", "description": "Prevents the mouse cursor interfering with either the App Switcher or the Window Switcher popups. For those users that like to use the keyboard only with these switchers.\nNote: It doesn't prevent mouse clicks.\n\nThese are the switcher popups that are invoked from keyboard shortcuts, e.g. Alt+Tab or Super+Tab.", "link": "https://extensions.gnome.org/extension/4714/disable-hover-on-app-window-switcher-popups/", "shell_version_map": {"38": {"version": "1", "sha256": "1h3ja9wjj5lxb2qb1p95si9q3hz2j5rj193jg1dxgjkgjkiprpjk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByZXZlbnRzIHRoZSBtb3VzZSBjdXJzb3IgaW50ZXJmZXJpbmcgd2l0aCBlaXRoZXIgdGhlIEFwcCBTd2l0Y2hlciBvciB0aGUgV2luZG93IFN3aXRjaGVyIHBvcHVwcy4gRm9yIHRob3NlIHVzZXJzIHRoYXQgbGlrZSB0byB1c2UgdGhlIGtleWJvYXJkIG9ubHkgd2l0aCB0aGVzZSBzd2l0Y2hlcnMuXG5Ob3RlOiBJdCBkb2Vzbid0IHByZXZlbnQgbW91c2UgY2xpY2tzLlxuXG5UaGVzZSBhcmUgdGhlIHN3aXRjaGVyIHBvcHVwcyB0aGF0IGFyZSBpbnZva2VkIGZyb20ga2V5Ym9hcmQgc2hvcnRjdXRzLCBlLmcuIEFsdCtUYWIgb3IgU3VwZXIrVGFiLiIsCiAgIm5hbWUiOiAiRGlzYWJsZSBIb3ZlciBPbiBBcHAgJiBXaW5kb3cgU3dpdGNoZXIgUG9wdXBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZGlzYWJsZV9ob3ZlckBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxCn0="}, "40": {"version": "1", "sha256": "1h3ja9wjj5lxb2qb1p95si9q3hz2j5rj193jg1dxgjkgjkiprpjk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByZXZlbnRzIHRoZSBtb3VzZSBjdXJzb3IgaW50ZXJmZXJpbmcgd2l0aCBlaXRoZXIgdGhlIEFwcCBTd2l0Y2hlciBvciB0aGUgV2luZG93IFN3aXRjaGVyIHBvcHVwcy4gRm9yIHRob3NlIHVzZXJzIHRoYXQgbGlrZSB0byB1c2UgdGhlIGtleWJvYXJkIG9ubHkgd2l0aCB0aGVzZSBzd2l0Y2hlcnMuXG5Ob3RlOiBJdCBkb2Vzbid0IHByZXZlbnQgbW91c2UgY2xpY2tzLlxuXG5UaGVzZSBhcmUgdGhlIHN3aXRjaGVyIHBvcHVwcyB0aGF0IGFyZSBpbnZva2VkIGZyb20ga2V5Ym9hcmQgc2hvcnRjdXRzLCBlLmcuIEFsdCtUYWIgb3IgU3VwZXIrVGFiLiIsCiAgIm5hbWUiOiAiRGlzYWJsZSBIb3ZlciBPbiBBcHAgJiBXaW5kb3cgU3dpdGNoZXIgUG9wdXBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZGlzYWJsZV9ob3ZlckBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "1h3ja9wjj5lxb2qb1p95si9q3hz2j5rj193jg1dxgjkgjkiprpjk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByZXZlbnRzIHRoZSBtb3VzZSBjdXJzb3IgaW50ZXJmZXJpbmcgd2l0aCBlaXRoZXIgdGhlIEFwcCBTd2l0Y2hlciBvciB0aGUgV2luZG93IFN3aXRjaGVyIHBvcHVwcy4gRm9yIHRob3NlIHVzZXJzIHRoYXQgbGlrZSB0byB1c2UgdGhlIGtleWJvYXJkIG9ubHkgd2l0aCB0aGVzZSBzd2l0Y2hlcnMuXG5Ob3RlOiBJdCBkb2Vzbid0IHByZXZlbnQgbW91c2UgY2xpY2tzLlxuXG5UaGVzZSBhcmUgdGhlIHN3aXRjaGVyIHBvcHVwcyB0aGF0IGFyZSBpbnZva2VkIGZyb20ga2V5Ym9hcmQgc2hvcnRjdXRzLCBlLmcuIEFsdCtUYWIgb3IgU3VwZXIrVGFiLiIsCiAgIm5hbWUiOiAiRGlzYWJsZSBIb3ZlciBPbiBBcHAgJiBXaW5kb3cgU3dpdGNoZXIgUG9wdXBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZGlzYWJsZV9ob3ZlckBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "disable_hover@fawtytoo", "name": "Disable Hover On App & Window Switcher Popups", "pname": "disable-hover-on-app-window-switcher-popups", "description": "Prevents the mouse cursor interfering with either the App Switcher or the Window Switcher popups.\nNote: It doesn't prevent mouse clicks.\n\nThese are the switcher popups that are invoked from keyboard shortcuts, e.g. Alt+Tab or Super+Tab.", "link": "https://extensions.gnome.org/extension/4714/disable-hover-on-app-window-switcher-popups/", "shell_version_map": {"38": {"version": "2", "sha256": "1nd538h9g8l18v0vw29ishilxpj0a7p6np281blqxwssix2dqn5c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByZXZlbnRzIHRoZSBtb3VzZSBjdXJzb3IgaW50ZXJmZXJpbmcgd2l0aCBlaXRoZXIgdGhlIEFwcCBTd2l0Y2hlciBvciB0aGUgV2luZG93IFN3aXRjaGVyIHBvcHVwcy5cbk5vdGU6IEl0IGRvZXNuJ3QgcHJldmVudCBtb3VzZSBjbGlja3MuXG5cblRoZXNlIGFyZSB0aGUgc3dpdGNoZXIgcG9wdXBzIHRoYXQgYXJlIGludm9rZWQgZnJvbSBrZXlib2FyZCBzaG9ydGN1dHMsIGUuZy4gQWx0K1RhYiBvciBTdXBlcitUYWIuIiwKICAibmFtZSI6ICJEaXNhYmxlIEhvdmVyIE9uIEFwcCAmIFdpbmRvdyBTd2l0Y2hlciBQb3B1cHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZGlzYWJsZV9ob3ZlckBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "1nd538h9g8l18v0vw29ishilxpj0a7p6np281blqxwssix2dqn5c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByZXZlbnRzIHRoZSBtb3VzZSBjdXJzb3IgaW50ZXJmZXJpbmcgd2l0aCBlaXRoZXIgdGhlIEFwcCBTd2l0Y2hlciBvciB0aGUgV2luZG93IFN3aXRjaGVyIHBvcHVwcy5cbk5vdGU6IEl0IGRvZXNuJ3QgcHJldmVudCBtb3VzZSBjbGlja3MuXG5cblRoZXNlIGFyZSB0aGUgc3dpdGNoZXIgcG9wdXBzIHRoYXQgYXJlIGludm9rZWQgZnJvbSBrZXlib2FyZCBzaG9ydGN1dHMsIGUuZy4gQWx0K1RhYiBvciBTdXBlcitUYWIuIiwKICAibmFtZSI6ICJEaXNhYmxlIEhvdmVyIE9uIEFwcCAmIFdpbmRvdyBTd2l0Y2hlciBQb3B1cHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZGlzYWJsZV9ob3ZlckBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "1nd538h9g8l18v0vw29ishilxpj0a7p6np281blqxwssix2dqn5c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByZXZlbnRzIHRoZSBtb3VzZSBjdXJzb3IgaW50ZXJmZXJpbmcgd2l0aCBlaXRoZXIgdGhlIEFwcCBTd2l0Y2hlciBvciB0aGUgV2luZG93IFN3aXRjaGVyIHBvcHVwcy5cbk5vdGU6IEl0IGRvZXNuJ3QgcHJldmVudCBtb3VzZSBjbGlja3MuXG5cblRoZXNlIGFyZSB0aGUgc3dpdGNoZXIgcG9wdXBzIHRoYXQgYXJlIGludm9rZWQgZnJvbSBrZXlib2FyZCBzaG9ydGN1dHMsIGUuZy4gQWx0K1RhYiBvciBTdXBlcitUYWIuIiwKICAibmFtZSI6ICJEaXNhYmxlIEhvdmVyIE9uIEFwcCAmIFdpbmRvdyBTd2l0Y2hlciBQb3B1cHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZGlzYWJsZV9ob3ZlckBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAyCn0="}, "42": {"version": "2", "sha256": "1nd538h9g8l18v0vw29ishilxpj0a7p6np281blqxwssix2dqn5c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByZXZlbnRzIHRoZSBtb3VzZSBjdXJzb3IgaW50ZXJmZXJpbmcgd2l0aCBlaXRoZXIgdGhlIEFwcCBTd2l0Y2hlciBvciB0aGUgV2luZG93IFN3aXRjaGVyIHBvcHVwcy5cbk5vdGU6IEl0IGRvZXNuJ3QgcHJldmVudCBtb3VzZSBjbGlja3MuXG5cblRoZXNlIGFyZSB0aGUgc3dpdGNoZXIgcG9wdXBzIHRoYXQgYXJlIGludm9rZWQgZnJvbSBrZXlib2FyZCBzaG9ydGN1dHMsIGUuZy4gQWx0K1RhYiBvciBTdXBlcitUYWIuIiwKICAibmFtZSI6ICJEaXNhYmxlIEhvdmVyIE9uIEFwcCAmIFdpbmRvdyBTd2l0Y2hlciBQb3B1cHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZGlzYWJsZV9ob3ZlckBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "countdown-timer@eexpss.gmail.com", "name": "Countdown & Timer", "pname": "countdown-timer", "description": "Countdown in minutes, or enter text containing HH:MM format to set the Timer.", "link": "https://extensions.gnome.org/extension/4720/countdown-timer/", "shell_version_map": {"40": {"version": "9", "sha256": "08va385j93b9d1n8w7b3sia656abl4x25ka1kff4kzg0rd0b74c8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdW50ZG93biBpbiBtaW51dGVzLCBvciBlbnRlciB0ZXh0IGNvbnRhaW5pbmcgSEg6TU0gZm9ybWF0IHRvIHNldCB0aGUgVGltZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY291bnRkb3duLXRpbWVyIiwKICAibmFtZSI6ICJDb3VudGRvd24gJiBUaW1lciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dub21lLXNoZWxsLWNvdW50ZG93bi10aW1lci8iLAogICJ1dWlkIjogImNvdW50ZG93bi10aW1lckBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "41": {"version": "9", "sha256": "08va385j93b9d1n8w7b3sia656abl4x25ka1kff4kzg0rd0b74c8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdW50ZG93biBpbiBtaW51dGVzLCBvciBlbnRlciB0ZXh0IGNvbnRhaW5pbmcgSEg6TU0gZm9ybWF0IHRvIHNldCB0aGUgVGltZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY291bnRkb3duLXRpbWVyIiwKICAibmFtZSI6ICJDb3VudGRvd24gJiBUaW1lciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dub21lLXNoZWxsLWNvdW50ZG93bi10aW1lci8iLAogICJ1dWlkIjogImNvdW50ZG93bi10aW1lckBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "42": {"version": "9", "sha256": "08va385j93b9d1n8w7b3sia656abl4x25ka1kff4kzg0rd0b74c8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdW50ZG93biBpbiBtaW51dGVzLCBvciBlbnRlciB0ZXh0IGNvbnRhaW5pbmcgSEg6TU0gZm9ybWF0IHRvIHNldCB0aGUgVGltZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY291bnRkb3duLXRpbWVyIiwKICAibmFtZSI6ICJDb3VudGRvd24gJiBUaW1lciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dub21lLXNoZWxsLWNvdW50ZG93bi10aW1lci8iLAogICJ1dWlkIjogImNvdW50ZG93bi10aW1lckBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
 , {"uuid": "workspace-dry-names@benmoussatmouad.github.io", "name": "Worksapce Dry Names", "pname": "worksapce-dry-names", "description": "Workspace dry-names is a simple gnome extension that enables tags for desktop workspaces. It shows text labels on the left side of the main panel with randomly generated cities names (or an other category of names). Names can also be modified.\n\nhttps://github.com/benmoussatMouad/gnome-workspace-dry-names.git", "link": "https://extensions.gnome.org/extension/4721/worksapce-dry-names/", "shell_version_map": {"38": {"version": "1", "sha256": "0ljprv3ar01p1y24p6j7hc8g7afca7ir0b2zyapjpzndz7mv1zcl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBkcnktbmFtZXMgaXMgYSBzaW1wbGUgZ25vbWUgZXh0ZW5zaW9uIHRoYXQgZW5hYmxlcyB0YWdzIGZvciBkZXNrdG9wIHdvcmtzcGFjZXMuIEl0IHNob3dzIHRleHQgbGFiZWxzIG9uIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIG1haW4gcGFuZWwgd2l0aCByYW5kb21seSBnZW5lcmF0ZWQgY2l0aWVzIG5hbWVzIChvciBhbiBvdGhlciBjYXRlZ29yeSBvZiBuYW1lcykuIE5hbWVzIGNhbiBhbHNvIGJlIG1vZGlmaWVkLlxuXG5odHRwczovL2dpdGh1Yi5jb20vYmVubW91c3NhdE1vdWFkL2dub21lLXdvcmtzcGFjZS1kcnktbmFtZXMuZ2l0IiwKICAibmFtZSI6ICJXb3Jrc2FwY2UgRHJ5IE5hbWVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzcGFjZS1kcnktbmFtZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2UtZHJ5LW5hbWVzQGJlbm1vdXNzYXRtb3VhZC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMQp9"}, "40": {"version": "1", "sha256": "0ljprv3ar01p1y24p6j7hc8g7afca7ir0b2zyapjpzndz7mv1zcl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBkcnktbmFtZXMgaXMgYSBzaW1wbGUgZ25vbWUgZXh0ZW5zaW9uIHRoYXQgZW5hYmxlcyB0YWdzIGZvciBkZXNrdG9wIHdvcmtzcGFjZXMuIEl0IHNob3dzIHRleHQgbGFiZWxzIG9uIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIG1haW4gcGFuZWwgd2l0aCByYW5kb21seSBnZW5lcmF0ZWQgY2l0aWVzIG5hbWVzIChvciBhbiBvdGhlciBjYXRlZ29yeSBvZiBuYW1lcykuIE5hbWVzIGNhbiBhbHNvIGJlIG1vZGlmaWVkLlxuXG5odHRwczovL2dpdGh1Yi5jb20vYmVubW91c3NhdE1vdWFkL2dub21lLXdvcmtzcGFjZS1kcnktbmFtZXMuZ2l0IiwKICAibmFtZSI6ICJXb3Jrc2FwY2UgRHJ5IE5hbWVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzcGFjZS1kcnktbmFtZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2UtZHJ5LW5hbWVzQGJlbm1vdXNzYXRtb3VhZC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMQp9"}, "41": {"version": "1", "sha256": "0ljprv3ar01p1y24p6j7hc8g7afca7ir0b2zyapjpzndz7mv1zcl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBkcnktbmFtZXMgaXMgYSBzaW1wbGUgZ25vbWUgZXh0ZW5zaW9uIHRoYXQgZW5hYmxlcyB0YWdzIGZvciBkZXNrdG9wIHdvcmtzcGFjZXMuIEl0IHNob3dzIHRleHQgbGFiZWxzIG9uIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIG1haW4gcGFuZWwgd2l0aCByYW5kb21seSBnZW5lcmF0ZWQgY2l0aWVzIG5hbWVzIChvciBhbiBvdGhlciBjYXRlZ29yeSBvZiBuYW1lcykuIE5hbWVzIGNhbiBhbHNvIGJlIG1vZGlmaWVkLlxuXG5odHRwczovL2dpdGh1Yi5jb20vYmVubW91c3NhdE1vdWFkL2dub21lLXdvcmtzcGFjZS1kcnktbmFtZXMuZ2l0IiwKICAibmFtZSI6ICJXb3Jrc2FwY2UgRHJ5IE5hbWVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzcGFjZS1kcnktbmFtZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2UtZHJ5LW5hbWVzQGJlbm1vdXNzYXRtb3VhZC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "window-calls@domandoman.xyz", "name": "Window Calls", "pname": "window-calls", "description": "Add new dbus call for windows to get windows list and some of theirs properties", "link": "https://extensions.gnome.org/extension/4724/window-calls/", "shell_version_map": {"41": {"version": "2", "sha256": "02z265maw4a0rkw5y4an2j7spjqif44nxf47q5qr6cwnvmfpw6ci", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBuZXcgZGJ1cyBjYWxsIGZvciB3aW5kb3dzIHRvIGdldCB3aW5kb3dzIGxpc3QgYW5kIHNvbWUgb2YgdGhlaXJzIHByb3BlcnRpZXMiLAogICJuYW1lIjogIldpbmRvdyBDYWxscyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pY2t5aWNreS93aW5kb3ctY2FsbHMiLAogICJ1dWlkIjogIndpbmRvdy1jYWxsc0Bkb21hbmRvbWFuLnh5eiIsCiAgInZlcnNpb24iOiAyCn0="}}}
@@ -650,49 +650,49 @@
 , {"uuid": "browser-tabs@com.github.harshadgavali", "name": "Browser tabs", "pname": "browser-tabs", "description": "Search provider for browser tabs\n\nSee following github link for installing browser extension and host app for searches to appear!", "link": "https://extensions.gnome.org/extension/4733/browser-tabs/", "shell_version_map": {"40": {"version": "4", "sha256": "1ag30ai0frxbw3s67ir1i5jdxpzx52b9rp47sqpnjcqw46xc97b6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBwcm92aWRlciBmb3IgYnJvd3NlciB0YWJzXG5cblNlZSBmb2xsb3dpbmcgZ2l0aHViIGxpbmsgZm9yIGluc3RhbGxpbmcgYnJvd3NlciBleHRlbnNpb24gYW5kIGhvc3QgYXBwIGZvciBzZWFyY2hlcyB0byBhcHBlYXIhIiwKICAibmFtZSI6ICJCcm93c2VyIHRhYnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL3NlYXJjaHByb3ZpZGVyLWZvci1icm93c2VyLXRhYnMuZ2l0LyIsCiAgInV1aWQiOiAiYnJvd3Nlci10YWJzQGNvbS5naXRodWIuaGFyc2hhZGdhdmFsaSIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "1ag30ai0frxbw3s67ir1i5jdxpzx52b9rp47sqpnjcqw46xc97b6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBwcm92aWRlciBmb3IgYnJvd3NlciB0YWJzXG5cblNlZSBmb2xsb3dpbmcgZ2l0aHViIGxpbmsgZm9yIGluc3RhbGxpbmcgYnJvd3NlciBleHRlbnNpb24gYW5kIGhvc3QgYXBwIGZvciBzZWFyY2hlcyB0byBhcHBlYXIhIiwKICAibmFtZSI6ICJCcm93c2VyIHRhYnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL3NlYXJjaHByb3ZpZGVyLWZvci1icm93c2VyLXRhYnMuZ2l0LyIsCiAgInV1aWQiOiAiYnJvd3Nlci10YWJzQGNvbS5naXRodWIuaGFyc2hhZGdhdmFsaSIsCiAgInZlcnNpb24iOiA0Cn0="}, "42": {"version": "4", "sha256": "1ag30ai0frxbw3s67ir1i5jdxpzx52b9rp47sqpnjcqw46xc97b6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBwcm92aWRlciBmb3IgYnJvd3NlciB0YWJzXG5cblNlZSBmb2xsb3dpbmcgZ2l0aHViIGxpbmsgZm9yIGluc3RhbGxpbmcgYnJvd3NlciBleHRlbnNpb24gYW5kIGhvc3QgYXBwIGZvciBzZWFyY2hlcyB0byBhcHBlYXIhIiwKICAibmFtZSI6ICJCcm93c2VyIHRhYnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL3NlYXJjaHByb3ZpZGVyLWZvci1icm93c2VyLXRhYnMuZ2l0LyIsCiAgInV1aWQiOiAiYnJvd3Nlci10YWJzQGNvbS5naXRodWIuaGFyc2hhZGdhdmFsaSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
 , {"uuid": "smart-auto-move@khimaros.com", "name": "Smart Auto Move", "pname": "smart-auto-move", "description": "Smart Auto Move learns the size and position of your application windows and restores them to the correct place on subsequent launches. Supports Wayland.\n\nNOTE: Optimized for use with static workspaces. For more control, can be set to default IGNORE and then selectively RESTORE only desired apps.", "link": "https://extensions.gnome.org/extension/4736/smart-auto-move/", "shell_version_map": {"41": {"version": "15", "sha256": "1i5czxzkhd3h19q4din4psj6swl8s7fjlb93blz0zvj6y6mx948g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNtYXJ0IEF1dG8gTW92ZSBsZWFybnMgdGhlIHNpemUgYW5kIHBvc2l0aW9uIG9mIHlvdXIgYXBwbGljYXRpb24gd2luZG93cyBhbmQgcmVzdG9yZXMgdGhlbSB0byB0aGUgY29ycmVjdCBwbGFjZSBvbiBzdWJzZXF1ZW50IGxhdW5jaGVzLiBTdXBwb3J0cyBXYXlsYW5kLlxuXG5OT1RFOiBPcHRpbWl6ZWQgZm9yIHVzZSB3aXRoIHN0YXRpYyB3b3Jrc3BhY2VzLiBGb3IgbW9yZSBjb250cm9sLCBjYW4gYmUgc2V0IHRvIGRlZmF1bHQgSUdOT1JFIGFuZCB0aGVuIHNlbGVjdGl2ZWx5IFJFU1RPUkUgb25seSBkZXNpcmVkIGFwcHMuIiwKICAibmFtZSI6ICJTbWFydCBBdXRvIE1vdmUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAia2hpbWFyb3MiLAogICJzZXR0aW5ncy1wYXRoIjogIi9vcmcvZ25vbWUvc2hlbGwvZXh0ZW5zaW9ucy9zbWFydC1hdXRvLW1vdmUvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNtYXJ0LWF1dG8tbW92ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9raGltYXJvcy9zbWFydC1hdXRvLW1vdmUiLAogICJ1dWlkIjogInNtYXJ0LWF1dG8tbW92ZUBraGltYXJvcy5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
 , {"uuid": "hplip-menu2@grizzlysmit.smit.id.au", "name": "Alternate Menu for Hplip2", "pname": "alternate-menu-for-hplip2", "description": "control your hp printers by calling the device manager hp-toolbox, also some useful links\nMotivation: the hp-systray doesn't work reliably under gnome shell\nyou need to have installed hplip in order to use this\nChoice of using a printer icon or a hp_logo.png if it's installed in the same place as mine on Ubuntu\nyou could use symbolic links to fake the path.\nThis is a replacement for the old \"Alternate Menu for Hplip\" which doesn't work under the new Gome-Shell I have cleaned it up a bit and it has a few new menu's but it is still basically the same thing.\n Added even more menus all most all system settings ones.\n\nNote: the menu will be too big if your resolution is way too low like 800x600 I have no soln for this just now.", "link": "https://extensions.gnome.org/extension/4739/alternate-menu-for-hplip2/", "shell_version_map": {"40": {"version": "4", "sha256": "1l1b0ybii5ilvk1x4jdr70wbvl3k4jw53yxapmkj2naskq1gasb3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy4iLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ncml6emx5c21pdC9ocGxpcC1tZW51Mi1ncml6emx5c21pdC5zbWl0LmlkLmF1IiwKICAidXVpZCI6ICJocGxpcC1tZW51MkBncml6emx5c21pdC5zbWl0LmlkLmF1IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1l1b0ybii5ilvk1x4jdr70wbvl3k4jw53yxapmkj2naskq1gasb3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy4iLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ncml6emx5c21pdC9ocGxpcC1tZW51Mi1ncml6emx5c21pdC5zbWl0LmlkLmF1IiwKICAidXVpZCI6ICJocGxpcC1tZW51MkBncml6emx5c21pdC5zbWl0LmlkLmF1IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "42": {"version": "4", "sha256": "1l1b0ybii5ilvk1x4jdr70wbvl3k4jw53yxapmkj2naskq1gasb3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy4iLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ncml6emx5c21pdC9ocGxpcC1tZW51Mi1ncml6emx5c21pdC5zbWl0LmlkLmF1IiwKICAidXVpZCI6ICJocGxpcC1tZW51MkBncml6emx5c21pdC5zbWl0LmlkLmF1IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "dash-from-panel@fthx", "name": "Dash from Panel", "pname": "dash-from-panel", "description": "Top dock for GNOME 40+. Hover top panel and GNOME Shell dash appears without overview.\n\n Does use native GNOME Shell Dash. Very light extension.\n\n Please report bugs through GitHub.", "link": "https://extensions.gnome.org/extension/4741/dash-from-panel/", "shell_version_map": {"40": {"version": "1", "sha256": "1ba7pk05f3s4z32pargrfcsg7b84jx8g0avl71q6xzj1syinlsb1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBkb2NrIGZvciBHTk9NRSA0MCsuIEhvdmVyIHRvcCBwYW5lbCBhbmQgR05PTUUgU2hlbGwgZGFzaCBhcHBlYXJzIHdpdGhvdXQgb3ZlcnZpZXcuXG5cbiBEb2VzIHVzZSBuYXRpdmUgR05PTUUgU2hlbGwgRGFzaC4gVmVyeSBsaWdodCBleHRlbnNpb24uXG5cbiBQbGVhc2UgcmVwb3J0IGJ1Z3MgdGhyb3VnaCBHaXRIdWIuIiwKICAibmFtZSI6ICJEYXNoIGZyb20gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2Rhc2gtZnJvbS1wYW5lbCIsCiAgInV1aWQiOiAiZGFzaC1mcm9tLXBhbmVsQGZ0aHgiLAogICJ2ZXJzaW9uIjogMQp9"}, "41": {"version": "1", "sha256": "1ba7pk05f3s4z32pargrfcsg7b84jx8g0avl71q6xzj1syinlsb1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBkb2NrIGZvciBHTk9NRSA0MCsuIEhvdmVyIHRvcCBwYW5lbCBhbmQgR05PTUUgU2hlbGwgZGFzaCBhcHBlYXJzIHdpdGhvdXQgb3ZlcnZpZXcuXG5cbiBEb2VzIHVzZSBuYXRpdmUgR05PTUUgU2hlbGwgRGFzaC4gVmVyeSBsaWdodCBleHRlbnNpb24uXG5cbiBQbGVhc2UgcmVwb3J0IGJ1Z3MgdGhyb3VnaCBHaXRIdWIuIiwKICAibmFtZSI6ICJEYXNoIGZyb20gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2Rhc2gtZnJvbS1wYW5lbCIsCiAgInV1aWQiOiAiZGFzaC1mcm9tLXBhbmVsQGZ0aHgiLAogICJ2ZXJzaW9uIjogMQp9"}, "42": {"version": "1", "sha256": "1ba7pk05f3s4z32pargrfcsg7b84jx8g0avl71q6xzj1syinlsb1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBkb2NrIGZvciBHTk9NRSA0MCsuIEhvdmVyIHRvcCBwYW5lbCBhbmQgR05PTUUgU2hlbGwgZGFzaCBhcHBlYXJzIHdpdGhvdXQgb3ZlcnZpZXcuXG5cbiBEb2VzIHVzZSBuYXRpdmUgR05PTUUgU2hlbGwgRGFzaC4gVmVyeSBsaWdodCBleHRlbnNpb24uXG5cbiBQbGVhc2UgcmVwb3J0IGJ1Z3MgdGhyb3VnaCBHaXRIdWIuIiwKICAibmFtZSI6ICJEYXNoIGZyb20gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2Rhc2gtZnJvbS1wYW5lbCIsCiAgInV1aWQiOiAiZGFzaC1mcm9tLXBhbmVsQGZ0aHgiLAogICJ2ZXJzaW9uIjogMQp9"}}}
-, {"uuid": "clip-translator@eexpss.gmail.com", "name": "Clip Translator", "pname": "clip-translator", "description": "* Translate from Clipboard content", "link": "https://extensions.gnome.org/extension/4744/clip-translator/", "shell_version_map": {"40": {"version": "13", "sha256": "08jfqm96vz8xf52z60d5dhpgb1s9lc6fx8ii1gjwfmzq14k8ycha", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogVHJhbnNsYXRlIGZyb20gQ2xpcGJvYXJkIGNvbnRlbnQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjbGlwLXRyYW5zbGF0b3IiLAogICJuYW1lIjogIkNsaXAgVHJhbnNsYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dub21lLXNoZWxsLWNsaXAtdHJhbnNsYXRvciIsCiAgInV1aWQiOiAiY2xpcC10cmFuc2xhdG9yQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "41": {"version": "13", "sha256": "08jfqm96vz8xf52z60d5dhpgb1s9lc6fx8ii1gjwfmzq14k8ycha", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogVHJhbnNsYXRlIGZyb20gQ2xpcGJvYXJkIGNvbnRlbnQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjbGlwLXRyYW5zbGF0b3IiLAogICJuYW1lIjogIkNsaXAgVHJhbnNsYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dub21lLXNoZWxsLWNsaXAtdHJhbnNsYXRvciIsCiAgInV1aWQiOiAiY2xpcC10cmFuc2xhdG9yQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "42": {"version": "13", "sha256": "08jfqm96vz8xf52z60d5dhpgb1s9lc6fx8ii1gjwfmzq14k8ycha", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogVHJhbnNsYXRlIGZyb20gQ2xpcGJvYXJkIGNvbnRlbnQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjbGlwLXRyYW5zbGF0b3IiLAogICJuYW1lIjogIkNsaXAgVHJhbnNsYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dub21lLXNoZWxsLWNsaXAtdHJhbnNsYXRvciIsCiAgInV1aWQiOiAiY2xpcC10cmFuc2xhdG9yQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}}}
+, {"uuid": "dash-from-panel@fthx", "name": "Dash from Panel", "pname": "dash-from-panel", "description": "Top dock for GNOME 40+. Hover top panel and GNOME Shell dash appears without overview.\n\n Scroll on dock or panel changes workspace. Preferences UI.\n\n Does use native GNOME Shell Dash. Very light extension.\n\n Please report bugs through GitHub.", "link": "https://extensions.gnome.org/extension/4741/dash-from-panel/", "shell_version_map": {"40": {"version": "3", "sha256": "10lcxqkg9i7gjvgdb01b6fahj5yr7c614yj4jcz9ywi5v571b1hw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBkb2NrIGZvciBHTk9NRSA0MCsuIEhvdmVyIHRvcCBwYW5lbCBhbmQgR05PTUUgU2hlbGwgZGFzaCBhcHBlYXJzIHdpdGhvdXQgb3ZlcnZpZXcuXG5cbiBTY3JvbGwgb24gZG9jayBvciBwYW5lbCBjaGFuZ2VzIHdvcmtzcGFjZS4gUHJlZmVyZW5jZXMgVUkuXG5cbiBEb2VzIHVzZSBuYXRpdmUgR05PTUUgU2hlbGwgRGFzaC4gVmVyeSBsaWdodCBleHRlbnNpb24uXG5cbiBQbGVhc2UgcmVwb3J0IGJ1Z3MgdGhyb3VnaCBHaXRIdWIuIiwKICAibmFtZSI6ICJEYXNoIGZyb20gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2Rhc2gtZnJvbS1wYW5lbCIsCiAgInV1aWQiOiAiZGFzaC1mcm9tLXBhbmVsQGZ0aHgiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "10lcxqkg9i7gjvgdb01b6fahj5yr7c614yj4jcz9ywi5v571b1hw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBkb2NrIGZvciBHTk9NRSA0MCsuIEhvdmVyIHRvcCBwYW5lbCBhbmQgR05PTUUgU2hlbGwgZGFzaCBhcHBlYXJzIHdpdGhvdXQgb3ZlcnZpZXcuXG5cbiBTY3JvbGwgb24gZG9jayBvciBwYW5lbCBjaGFuZ2VzIHdvcmtzcGFjZS4gUHJlZmVyZW5jZXMgVUkuXG5cbiBEb2VzIHVzZSBuYXRpdmUgR05PTUUgU2hlbGwgRGFzaC4gVmVyeSBsaWdodCBleHRlbnNpb24uXG5cbiBQbGVhc2UgcmVwb3J0IGJ1Z3MgdGhyb3VnaCBHaXRIdWIuIiwKICAibmFtZSI6ICJEYXNoIGZyb20gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2Rhc2gtZnJvbS1wYW5lbCIsCiAgInV1aWQiOiAiZGFzaC1mcm9tLXBhbmVsQGZ0aHgiLAogICJ2ZXJzaW9uIjogMwp9"}, "42": {"version": "3", "sha256": "10lcxqkg9i7gjvgdb01b6fahj5yr7c614yj4jcz9ywi5v571b1hw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBkb2NrIGZvciBHTk9NRSA0MCsuIEhvdmVyIHRvcCBwYW5lbCBhbmQgR05PTUUgU2hlbGwgZGFzaCBhcHBlYXJzIHdpdGhvdXQgb3ZlcnZpZXcuXG5cbiBTY3JvbGwgb24gZG9jayBvciBwYW5lbCBjaGFuZ2VzIHdvcmtzcGFjZS4gUHJlZmVyZW5jZXMgVUkuXG5cbiBEb2VzIHVzZSBuYXRpdmUgR05PTUUgU2hlbGwgRGFzaC4gVmVyeSBsaWdodCBleHRlbnNpb24uXG5cbiBQbGVhc2UgcmVwb3J0IGJ1Z3MgdGhyb3VnaCBHaXRIdWIuIiwKICAibmFtZSI6ICJEYXNoIGZyb20gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2Rhc2gtZnJvbS1wYW5lbCIsCiAgInV1aWQiOiAiZGFzaC1mcm9tLXBhbmVsQGZ0aHgiLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "clip-translator@eexpss.gmail.com", "name": "Clip Translator", "pname": "clip-translator", "description": "* Translate from Clipboard content", "link": "https://extensions.gnome.org/extension/4744/clip-translator/", "shell_version_map": {"40": {"version": "13", "sha256": "0i5gcmxxl8p0zfh6jbdrhb6s4dw7wrfl74h0z527zwfzb454yj20", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogVHJhbnNsYXRlIGZyb20gQ2xpcGJvYXJkIGNvbnRlbnQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjbGlwLXRyYW5zbGF0b3IiLAogICJuYW1lIjogIkNsaXAgVHJhbnNsYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dzLWNsaXAtdHJhbnNsYXRvciIsCiAgInV1aWQiOiAiY2xpcC10cmFuc2xhdG9yQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "41": {"version": "13", "sha256": "0i5gcmxxl8p0zfh6jbdrhb6s4dw7wrfl74h0z527zwfzb454yj20", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogVHJhbnNsYXRlIGZyb20gQ2xpcGJvYXJkIGNvbnRlbnQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjbGlwLXRyYW5zbGF0b3IiLAogICJuYW1lIjogIkNsaXAgVHJhbnNsYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dzLWNsaXAtdHJhbnNsYXRvciIsCiAgInV1aWQiOiAiY2xpcC10cmFuc2xhdG9yQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "42": {"version": "13", "sha256": "0i5gcmxxl8p0zfh6jbdrhb6s4dw7wrfl74h0z527zwfzb454yj20", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogVHJhbnNsYXRlIGZyb20gQ2xpcGJvYXJkIGNvbnRlbnQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjbGlwLXRyYW5zbGF0b3IiLAogICJuYW1lIjogIkNsaXAgVHJhbnNsYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dzLWNsaXAtdHJhbnNsYXRvciIsCiAgInV1aWQiOiAiY2xpcC10cmFuc2xhdG9yQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}}}
 , {"uuid": "hidedate@hidedate.com", "name": "Hide Date", "pname": "hide-date", "description": "hides date and clocks", "link": "https://extensions.gnome.org/extension/4747/hide-date/", "shell_version_map": {"38": {"version": "3", "sha256": "1k0dbq26lnc2dj6w0jmjv2xyih405k02w9c7m220nspbwhspzpw6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIGRhdGUgYW5kIGNsb2NrcyIsCiAgIm5hbWUiOiAiSGlkZSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9idXNyYWNhZ2xpeWFuL0dub21lLUV4dGVuc2lvbi1FeGFtcGxlcy90cmVlL21haW4vaGlkZWRhdGUlNDBoaWRlZGF0ZS5jb20iLAogICJ1dWlkIjogImhpZGVkYXRlQGhpZGVkYXRlLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1k0dbq26lnc2dj6w0jmjv2xyih405k02w9c7m220nspbwhspzpw6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIGRhdGUgYW5kIGNsb2NrcyIsCiAgIm5hbWUiOiAiSGlkZSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9idXNyYWNhZ2xpeWFuL0dub21lLUV4dGVuc2lvbi1FeGFtcGxlcy90cmVlL21haW4vaGlkZWRhdGUlNDBoaWRlZGF0ZS5jb20iLAogICJ1dWlkIjogImhpZGVkYXRlQGhpZGVkYXRlLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "1k0dbq26lnc2dj6w0jmjv2xyih405k02w9c7m220nspbwhspzpw6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIGRhdGUgYW5kIGNsb2NrcyIsCiAgIm5hbWUiOiAiSGlkZSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9idXNyYWNhZ2xpeWFuL0dub21lLUV4dGVuc2lvbi1FeGFtcGxlcy90cmVlL21haW4vaGlkZWRhdGUlNDBoaWRlZGF0ZS5jb20iLAogICJ1dWlkIjogImhpZGVkYXRlQGhpZGVkYXRlLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "toggleimwheel@mijorus.it", "name": "Toggle imwheel", "pname": "toggle-imwheel", "description": "This simple extension wants to mitigate the lack of a dedicated mouse wheel control on most of the modern linux distributions. Many are using imwheel as a temporary fix; however, if you are using laptop, you might want to have two different settings for the touchpad and the mouse. \n This extension will add an icon in the top bar which lets you toggle imwheel between two custom settings.\n\n\nhttps://github.com/mijorus/toggle-imwheel", "link": "https://extensions.gnome.org/extension/4748/toggle-imwheel/", "shell_version_map": {"40": {"version": "2", "sha256": "1fjqap51g7gy3jra7r1qq4j61iifx13l5lj8sw2csbvzliacsr62", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgc2ltcGxlIGV4dGVuc2lvbiB3YW50cyB0byBtaXRpZ2F0ZSB0aGUgbGFjayBvZiBhIGRlZGljYXRlZCBtb3VzZSB3aGVlbCBjb250cm9sIG9uIG1vc3Qgb2YgdGhlIG1vZGVybiBsaW51eCBkaXN0cmlidXRpb25zLiBNYW55IGFyZSB1c2luZyBpbXdoZWVsIGFzIGEgdGVtcG9yYXJ5IGZpeDsgaG93ZXZlciwgaWYgeW91IGFyZSB1c2luZyBsYXB0b3AsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgdHdvIGRpZmZlcmVudCBzZXR0aW5ncyBmb3IgdGhlIHRvdWNocGFkIGFuZCB0aGUgbW91c2UuIFxuIFRoaXMgZXh0ZW5zaW9uIHdpbGwgYWRkIGFuIGljb24gaW4gdGhlIHRvcCBiYXIgd2hpY2ggbGV0cyB5b3UgdG9nZ2xlIGltd2hlZWwgYmV0d2VlbiB0d28gY3VzdG9tIHNldHRpbmdzLlxuXG5cbmh0dHBzOi8vZ2l0aHViLmNvbS9taWpvcnVzL3RvZ2dsZS1pbXdoZWVsIiwKICAibmFtZSI6ICJUb2dnbGUgaW13aGVlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidG9nZ2xlaW13aGVlbEBtaWpvcnVzLml0IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "yakuake-extension@kde.org", "name": "Yakuake", "pname": "yakuake", "description": "A Gnome shell extension to use Yakuake on Gnome. Adds a global shortcut to show/hide yakuake and makes the console appear focussed.", "link": "https://extensions.gnome.org/extension/4757/yakuake/", "shell_version_map": {"40": {"version": "4", "sha256": "0rdrcbsscchvi8i9f6c9sjgnn4546i33l0q135jvav7c1a6bb9mq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIHVzZSBZYWt1YWtlIG9uIEdub21lLiBBZGRzIGEgZ2xvYmFsIHNob3J0Y3V0IHRvIHNob3cvaGlkZSB5YWt1YWtlIGFuZCBtYWtlcyB0aGUgY29uc29sZSBhcHBlYXIgZm9jdXNzZWQuIiwKICAibmFtZSI6ICJZYWt1YWtlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGJlcnR2YWthL3lha3Vha2UtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ5YWt1YWtlLWV4dGVuc2lvbkBrZGUub3JnIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "0rdrcbsscchvi8i9f6c9sjgnn4546i33l0q135jvav7c1a6bb9mq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIHVzZSBZYWt1YWtlIG9uIEdub21lLiBBZGRzIGEgZ2xvYmFsIHNob3J0Y3V0IHRvIHNob3cvaGlkZSB5YWt1YWtlIGFuZCBtYWtlcyB0aGUgY29uc29sZSBhcHBlYXIgZm9jdXNzZWQuIiwKICAibmFtZSI6ICJZYWt1YWtlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGJlcnR2YWthL3lha3Vha2UtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ5YWt1YWtlLWV4dGVuc2lvbkBrZGUub3JnIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "dnf-shotcuts@rx1310", "name": "Shortcuts for DNF", "pname": "shortcuts-for-dnf", "description": "A small extension that adds buttons to the panel to check for DNF updates through the terminal without entering commands.", "link": "https://extensions.gnome.org/extension/4758/shortcuts-for-dnf/", "shell_version_map": {"38": {"version": "4", "sha256": "0hknf92ijxg6xcadk7sac3qvlc8lpyf80013vkmzai7bbbbcypsm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc21hbGwgZXh0ZW5zaW9uIHRoYXQgYWRkcyBidXR0b25zIHRvIHRoZSBwYW5lbCB0byBjaGVjayBmb3IgRE5GIHVwZGF0ZXMgdGhyb3VnaCB0aGUgdGVybWluYWwgd2l0aG91dCBlbnRlcmluZyBjb21tYW5kcy4iLAogICJuYW1lIjogIlNob3J0Y3V0cyBmb3IgRE5GIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcngxMzEwL2dub21lLWV4dGVuc2lvbl9hcHR1cGRhdGUiLAogICJ1dWlkIjogImRuZi1zaG90Y3V0c0ByeDEzMTAiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "0hknf92ijxg6xcadk7sac3qvlc8lpyf80013vkmzai7bbbbcypsm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc21hbGwgZXh0ZW5zaW9uIHRoYXQgYWRkcyBidXR0b25zIHRvIHRoZSBwYW5lbCB0byBjaGVjayBmb3IgRE5GIHVwZGF0ZXMgdGhyb3VnaCB0aGUgdGVybWluYWwgd2l0aG91dCBlbnRlcmluZyBjb21tYW5kcy4iLAogICJuYW1lIjogIlNob3J0Y3V0cyBmb3IgRE5GIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcngxMzEwL2dub21lLWV4dGVuc2lvbl9hcHR1cGRhdGUiLAogICJ1dWlkIjogImRuZi1zaG90Y3V0c0ByeDEzMTAiLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "0hknf92ijxg6xcadk7sac3qvlc8lpyf80013vkmzai7bbbbcypsm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc21hbGwgZXh0ZW5zaW9uIHRoYXQgYWRkcyBidXR0b25zIHRvIHRoZSBwYW5lbCB0byBjaGVjayBmb3IgRE5GIHVwZGF0ZXMgdGhyb3VnaCB0aGUgdGVybWluYWwgd2l0aG91dCBlbnRlcmluZyBjb21tYW5kcy4iLAogICJuYW1lIjogIlNob3J0Y3V0cyBmb3IgRE5GIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcngxMzEwL2dub21lLWV4dGVuc2lvbl9hcHR1cGRhdGUiLAogICJ1dWlkIjogImRuZi1zaG90Y3V0c0ByeDEzMTAiLAogICJ2ZXJzaW9uIjogNAp9"}, "42": {"version": "4", "sha256": "0hknf92ijxg6xcadk7sac3qvlc8lpyf80013vkmzai7bbbbcypsm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc21hbGwgZXh0ZW5zaW9uIHRoYXQgYWRkcyBidXR0b25zIHRvIHRoZSBwYW5lbCB0byBjaGVjayBmb3IgRE5GIHVwZGF0ZXMgdGhyb3VnaCB0aGUgdGVybWluYWwgd2l0aG91dCBlbnRlcmluZyBjb21tYW5kcy4iLAogICJuYW1lIjogIlNob3J0Y3V0cyBmb3IgRE5GIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcngxMzEwL2dub21lLWV4dGVuc2lvbl9hcHR1cGRhdGUiLAogICJ1dWlkIjogImRuZi1zaG90Y3V0c0ByeDEzMTAiLAogICJ2ZXJzaW9uIjogNAp9"}}}
-, {"uuid": "speedbackground@luke.vader", "name": "Speed background", "pname": "speed-background", "description": "Increase how often Gnome will check the background.", "link": "https://extensions.gnome.org/extension/4761/speed-background/", "shell_version_map": {"41": {"version": "4", "sha256": "1dkmnkrag8fgyfdda4f9bpvsrkvx8h8xfb6wm83dyra1z8jq82fs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluY3JlYXNlIGhvdyBvZnRlbiBHbm9tZSB3aWxsIGNoZWNrIHRoZSBiYWNrZ3JvdW5kLiIsCiAgIm5hbWUiOiAiU3BlZWQgYmFja2dyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9MdWtlVmFkZXItSVYvZ25vbWUtc3BlZWQtYmFja2dyb3VuZC1leHRlbnNpb24vIiwKICAidXVpZCI6ICJzcGVlZGJhY2tncm91bmRAbHVrZS52YWRlciIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "speedbackground@luke.vader", "name": "Speed background", "pname": "speed-background", "description": "Increase how often Gnome will check the background.", "link": "https://extensions.gnome.org/extension/4761/speed-background/", "shell_version_map": {"40": {"version": "6", "sha256": "1dwq6v0w15ycrfmma67csjha8axdc11y0dj05fpp2y4b4sgahy53", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluY3JlYXNlIGhvdyBvZnRlbiBHbm9tZSB3aWxsIGNoZWNrIHRoZSBiYWNrZ3JvdW5kLiIsCiAgIm5hbWUiOiAiU3BlZWQgYmFja2dyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0x1a2VWYWRlci1JVi9nbm9tZS1zcGVlZC1iYWNrZ3JvdW5kLWV4dGVuc2lvbi8iLAogICJ1dWlkIjogInNwZWVkYmFja2dyb3VuZEBsdWtlLnZhZGVyIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "1dwq6v0w15ycrfmma67csjha8axdc11y0dj05fpp2y4b4sgahy53", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluY3JlYXNlIGhvdyBvZnRlbiBHbm9tZSB3aWxsIGNoZWNrIHRoZSBiYWNrZ3JvdW5kLiIsCiAgIm5hbWUiOiAiU3BlZWQgYmFja2dyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0x1a2VWYWRlci1JVi9nbm9tZS1zcGVlZC1iYWNrZ3JvdW5kLWV4dGVuc2lvbi8iLAogICJ1dWlkIjogInNwZWVkYmFja2dyb3VuZEBsdWtlLnZhZGVyIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "42": {"version": "6", "sha256": "1dwq6v0w15ycrfmma67csjha8axdc11y0dj05fpp2y4b4sgahy53", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluY3JlYXNlIGhvdyBvZnRlbiBHbm9tZSB3aWxsIGNoZWNrIHRoZSBiYWNrZ3JvdW5kLiIsCiAgIm5hbWUiOiAiU3BlZWQgYmFja2dyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0x1a2VWYWRlci1JVi9nbm9tZS1zcGVlZC1iYWNrZ3JvdW5kLWV4dGVuc2lvbi8iLAogICJ1dWlkIjogInNwZWVkYmFja2dyb3VuZEBsdWtlLnZhZGVyIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "bottom-panel@sulincix", "name": "Bottom Panel", "pname": "bottompanel", "description": "move top panel to bottom", "link": "https://extensions.gnome.org/extension/4764/bottompanel/", "shell_version_map": {"38": {"version": "2", "sha256": "0xfmhgd9pgbwjwclf5v9gbhr5mhkh5yl5cxb5wbj9gi20ppl8366", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIm1vdmUgdG9wIHBhbmVsIHRvIGJvdHRvbSIsCiAgIm5hbWUiOiAiQm90dG9tIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYm90dG9tLXBhbmVsQHN1bGluY2l4IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "0xfmhgd9pgbwjwclf5v9gbhr5mhkh5yl5cxb5wbj9gi20ppl8366", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIm1vdmUgdG9wIHBhbmVsIHRvIGJvdHRvbSIsCiAgIm5hbWUiOiAiQm90dG9tIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYm90dG9tLXBhbmVsQHN1bGluY2l4IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "41": {"version": "2", "sha256": "0xfmhgd9pgbwjwclf5v9gbhr5mhkh5yl5cxb5wbj9gi20ppl8366", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIm1vdmUgdG9wIHBhbmVsIHRvIGJvdHRvbSIsCiAgIm5hbWUiOiAiQm90dG9tIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYm90dG9tLXBhbmVsQHN1bGluY2l4IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
-, {"uuid": "FuzzyClock@johngoetz", "name": "Fuzzy Clock", "pname": "fuzzy-clock", "description": "A human-readable (english) clock for the gnome-shell panel", "link": "https://extensions.gnome.org/extension/4771/fuzzy-clock/", "shell_version_map": {"40": {"version": "2", "sha256": "18y8r6f0czadrpamrribqq6rvwa57hpdpffpy864vqp7kq6i6s0l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgaHVtYW4tcmVhZGFibGUgKGVuZ2xpc2gpIGNsb2NrIGZvciB0aGUgZ25vbWUtc2hlbGwgcGFuZWwiLAogICJuYW1lIjogIkZ1enp5IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qb2huZ29ldHovRnV6enlDbG9jayIsCiAgInV1aWQiOiAiRnV6enlDbG9ja0Bqb2huZ29ldHoiLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "18y8r6f0czadrpamrribqq6rvwa57hpdpffpy864vqp7kq6i6s0l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgaHVtYW4tcmVhZGFibGUgKGVuZ2xpc2gpIGNsb2NrIGZvciB0aGUgZ25vbWUtc2hlbGwgcGFuZWwiLAogICJuYW1lIjogIkZ1enp5IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qb2huZ29ldHovRnV6enlDbG9jayIsCiAgInV1aWQiOiAiRnV6enlDbG9ja0Bqb2huZ29ldHoiLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "FuzzyClock@johngoetz", "name": "Fuzzy Clock", "pname": "fuzzy-clock", "description": "A human-readable clock for the gnome-shell panel", "link": "https://extensions.gnome.org/extension/4771/fuzzy-clock/", "shell_version_map": {"40": {"version": "3", "sha256": "0g1lqs3xk6i119wxvcl95z8fqz9jlzbxq1bc5l6bqa44h1m20pmn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgaHVtYW4tcmVhZGFibGUgY2xvY2sgZm9yIHRoZSBnbm9tZS1zaGVsbCBwYW5lbCIsCiAgIm5hbWUiOiAiRnV6enkgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qb2huZ29ldHovRnV6enlDbG9jayIsCiAgInV1aWQiOiAiRnV6enlDbG9ja0Bqb2huZ29ldHoiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "0g1lqs3xk6i119wxvcl95z8fqz9jlzbxq1bc5l6bqa44h1m20pmn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgaHVtYW4tcmVhZGFibGUgY2xvY2sgZm9yIHRoZSBnbm9tZS1zaGVsbCBwYW5lbCIsCiAgIm5hbWUiOiAiRnV6enkgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qb2huZ29ldHovRnV6enlDbG9jayIsCiAgInV1aWQiOiAiRnV6enlDbG9ja0Bqb2huZ29ldHoiLAogICJ2ZXJzaW9uIjogMwp9"}, "42": {"version": "3", "sha256": "0g1lqs3xk6i119wxvcl95z8fqz9jlzbxq1bc5l6bqa44h1m20pmn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgaHVtYW4tcmVhZGFibGUgY2xvY2sgZm9yIHRoZSBnbm9tZS1zaGVsbCBwYW5lbCIsCiAgIm5hbWUiOiAiRnV6enkgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qb2huZ29ldHovRnV6enlDbG9jayIsCiAgInV1aWQiOiAiRnV6enlDbG9ja0Bqb2huZ29ldHoiLAogICJ2ZXJzaW9uIjogMwp9"}}}
 , {"uuid": "clip-note@eexpss.gmail.com", "name": "Clip Note", "pname": "clip-note", "description": "Save clip contents to multiple notes with separate tags. Notes locate at ~/.local/share/clip-note/. Dots in filename means splited tags.", "link": "https://extensions.gnome.org/extension/4774/clip-note/", "shell_version_map": {"40": {"version": "11", "sha256": "0bfpxlvyibcpd7vi1a65r5awggmh8i9yc705mfb6vpm92ry7iny3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNhdmUgY2xpcCBjb250ZW50cyB0byBtdWx0aXBsZSBub3RlcyB3aXRoIHNlcGFyYXRlIHRhZ3MuIE5vdGVzIGxvY2F0ZSBhdCB+Ly5sb2NhbC9zaGFyZS9jbGlwLW5vdGUvLiBEb3RzIGluIGZpbGVuYW1lIG1lYW5zIHNwbGl0ZWQgdGFncy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjbGlwLW5vdGUiLAogICJuYW1lIjogIkNsaXAgTm90ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dub21lLXNoZWxsLWNsaXAtbm90ZSIsCiAgInV1aWQiOiAiY2xpcC1ub3RlQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "41": {"version": "11", "sha256": "0bfpxlvyibcpd7vi1a65r5awggmh8i9yc705mfb6vpm92ry7iny3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNhdmUgY2xpcCBjb250ZW50cyB0byBtdWx0aXBsZSBub3RlcyB3aXRoIHNlcGFyYXRlIHRhZ3MuIE5vdGVzIGxvY2F0ZSBhdCB+Ly5sb2NhbC9zaGFyZS9jbGlwLW5vdGUvLiBEb3RzIGluIGZpbGVuYW1lIG1lYW5zIHNwbGl0ZWQgdGFncy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjbGlwLW5vdGUiLAogICJuYW1lIjogIkNsaXAgTm90ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dub21lLXNoZWxsLWNsaXAtbm90ZSIsCiAgInV1aWQiOiAiY2xpcC1ub3RlQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "42": {"version": "11", "sha256": "0bfpxlvyibcpd7vi1a65r5awggmh8i9yc705mfb6vpm92ry7iny3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNhdmUgY2xpcCBjb250ZW50cyB0byBtdWx0aXBsZSBub3RlcyB3aXRoIHNlcGFyYXRlIHRhZ3MuIE5vdGVzIGxvY2F0ZSBhdCB+Ly5sb2NhbC9zaGFyZS9jbGlwLW5vdGUvLiBEb3RzIGluIGZpbGVuYW1lIG1lYW5zIHNwbGl0ZWQgdGFncy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjbGlwLW5vdGUiLAogICJuYW1lIjogIkNsaXAgTm90ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dub21lLXNoZWxsLWNsaXAtbm90ZSIsCiAgInV1aWQiOiAiY2xpcC1ub3RlQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
 , {"uuid": "ssh-tray@mario.cardia.com.br", "name": "SSH Tray", "pname": "ssh-tray", "description": "Simple SSH extension to allow you to connect to your hosts at ~/.ssh/config and ~/ssh/know_hosts file from Gnome top bar.", "link": "https://extensions.gnome.org/extension/4779/ssh-tray/", "shell_version_map": {"41": {"version": "1", "sha256": "1c7ndcv3bnsc95sijdkq39fshybpaq9fqdk3gvwm1lx40r1ibgih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBTU0ggZXh0ZW5zaW9uIHRvIGFsbG93IHlvdSB0byBjb25uZWN0IHRvIHlvdXIgaG9zdHMgYXQgfi8uc3NoL2NvbmZpZyBhbmQgfi9zc2gva25vd19ob3N0cyBmaWxlIGZyb20gR25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIlNTSCBUcmF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJzc2gtdHJheUBtYXJpby5jYXJkaWEuY29tLmJyIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
-, {"uuid": "glasa@lyrahgames.github.io", "name": "Glasa", "pname": "glasa", "description": "This extension puts an icon in the panel consisting of two comic-like eyes following the cursor.", "link": "https://extensions.gnome.org/extension/4780/glasa/", "shell_version_map": {"38": {"version": "2", "sha256": "0j45y91xal9vpk5iznkxydhq4dw55hvwqyfhvq48i5zlzxfirrvn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgY29uc2lzdGluZyBvZiB0d28gY29taWMtbGlrZSBleWVzIGZvbGxvd2luZyB0aGUgY3Vyc29yLiIsCiAgIm5hbWUiOiAiR2xhc2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x5cmFoZ2FtZXMvZ25vbWUtZXh0ZW5zaW9uLWdsYXNhIiwKICAidXVpZCI6ICJnbGFzYUBseXJhaGdhbWVzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "7", "sha256": "1nkv8bjsjdp4scklmpn7f74fhnyqd65dvhlplzn54qad74afdjdj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgY29uc2lzdGluZyBvZiB0d28gY29taWMtbGlrZSBleWVzIGZvbGxvd2luZyB0aGUgY3Vyc29yLiIsCiAgIm5hbWUiOiAiR2xhc2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x5cmFoZ2FtZXMvZ25vbWUtZXh0ZW5zaW9uLWdsYXNhIiwKICAidXVpZCI6ICJnbGFzYUBseXJhaGdhbWVzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "1nkv8bjsjdp4scklmpn7f74fhnyqd65dvhlplzn54qad74afdjdj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgY29uc2lzdGluZyBvZiB0d28gY29taWMtbGlrZSBleWVzIGZvbGxvd2luZyB0aGUgY3Vyc29yLiIsCiAgIm5hbWUiOiAiR2xhc2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x5cmFoZ2FtZXMvZ25vbWUtZXh0ZW5zaW9uLWdsYXNhIiwKICAidXVpZCI6ICJnbGFzYUBseXJhaGdhbWVzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="}}}
-, {"uuid": "avatar@pawel.swiszcz.com", "name": "Avatar", "pname": "avatar", "description": "Adds an avatar to the panel. Controllability: shades, buttons (turn notifications on/off, sleep, off), visibility of username and hostname", "link": "https://extensions.gnome.org/extension/4782/avatar/", "shell_version_map": {"41": {"version": "10", "sha256": "08s1c8d2b1jn8bxnlb9g97wfz8h9770ch8my3pr1n2xglnpiw3l8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gYXZhdGFyIHRvIHRoZSBwYW5lbC4gQ29udHJvbGxhYmlsaXR5OiBzaGFkZXMsIGJ1dHRvbnMgKHR1cm4gbm90aWZpY2F0aW9ucyBvbi9vZmYsIHNsZWVwLCBvZmYpLCB2aXNpYmlsaXR5IG9mIHVzZXJuYW1lIGFuZCBob3N0bmFtZSIsCiAgIm5hbWUiOiAiQXZhdGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXdlbHN3aXN6Y3ovQXZhdGFyLUdub21lLVNoZWxsLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXZhdGFyQHBhd2VsLnN3aXN6Y3ouY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "42": {"version": "10", "sha256": "08s1c8d2b1jn8bxnlb9g97wfz8h9770ch8my3pr1n2xglnpiw3l8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gYXZhdGFyIHRvIHRoZSBwYW5lbC4gQ29udHJvbGxhYmlsaXR5OiBzaGFkZXMsIGJ1dHRvbnMgKHR1cm4gbm90aWZpY2F0aW9ucyBvbi9vZmYsIHNsZWVwLCBvZmYpLCB2aXNpYmlsaXR5IG9mIHVzZXJuYW1lIGFuZCBob3N0bmFtZSIsCiAgIm5hbWUiOiAiQXZhdGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXdlbHN3aXN6Y3ovQXZhdGFyLUdub21lLVNoZWxsLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXZhdGFyQHBhd2VsLnN3aXN6Y3ouY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
+, {"uuid": "glasa@lyrahgames.github.io", "name": "Glasa", "pname": "glasa", "description": "This extension puts an icon in the panel consisting of two comic-like eyes following the cursor.", "link": "https://extensions.gnome.org/extension/4780/glasa/", "shell_version_map": {"38": {"version": "2", "sha256": "0j45y91xal9vpk5iznkxydhq4dw55hvwqyfhvq48i5zlzxfirrvn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgY29uc2lzdGluZyBvZiB0d28gY29taWMtbGlrZSBleWVzIGZvbGxvd2luZyB0aGUgY3Vyc29yLiIsCiAgIm5hbWUiOiAiR2xhc2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x5cmFoZ2FtZXMvZ25vbWUtZXh0ZW5zaW9uLWdsYXNhIiwKICAidXVpZCI6ICJnbGFzYUBseXJhaGdhbWVzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "7", "sha256": "1nkv8bjsjdp4scklmpn7f74fhnyqd65dvhlplzn54qad74afdjdj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgY29uc2lzdGluZyBvZiB0d28gY29taWMtbGlrZSBleWVzIGZvbGxvd2luZyB0aGUgY3Vyc29yLiIsCiAgIm5hbWUiOiAiR2xhc2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x5cmFoZ2FtZXMvZ25vbWUtZXh0ZW5zaW9uLWdsYXNhIiwKICAidXVpZCI6ICJnbGFzYUBseXJhaGdhbWVzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "1nkv8bjsjdp4scklmpn7f74fhnyqd65dvhlplzn54qad74afdjdj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgY29uc2lzdGluZyBvZiB0d28gY29taWMtbGlrZSBleWVzIGZvbGxvd2luZyB0aGUgY3Vyc29yLiIsCiAgIm5hbWUiOiAiR2xhc2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x5cmFoZ2FtZXMvZ25vbWUtZXh0ZW5zaW9uLWdsYXNhIiwKICAidXVpZCI6ICJnbGFzYUBseXJhaGdhbWVzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="}, "42": {"version": "8", "sha256": "0g82ks2kcn7a9jc31yj8lqyblbhxqph9h5kh1n8srqgz03lzx8pv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgY29uc2lzdGluZyBvZiB0d28gY29taWMtbGlrZSBleWVzIGZvbGxvd2luZyB0aGUgY3Vyc29yLiIsCiAgIm5hbWUiOiAiR2xhc2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHlyYWhnYW1lcy9nbm9tZS1leHRlbnNpb24tZ2xhc2EiLAogICJ1dWlkIjogImdsYXNhQGx5cmFoZ2FtZXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"uuid": "avatar@pawel.swiszcz.com", "name": "Avatar", "pname": "avatar", "description": "The Avatar Extension can add into the panel: \n * Avatar (horizontal/vertical, shades, visibility of username and hostname) \n * Primary buttons \n * MPRIS \n * Top image (can be Your own image from system) ", "link": "https://extensions.gnome.org/extension/4782/avatar/", "shell_version_map": {"41": {"version": "14", "sha256": "0d09fwy2jrzl94xy9k08q85pm6jqgnv6lf52a15n4bfcawsrhxxg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBdmF0YXIgRXh0ZW5zaW9uIGNhbiBhZGQgaW50byB0aGUgcGFuZWw6IFxuICogQXZhdGFyIChob3Jpem9udGFsL3ZlcnRpY2FsLCBzaGFkZXMsIHZpc2liaWxpdHkgb2YgdXNlcm5hbWUgYW5kIGhvc3RuYW1lKSBcbiAqIFByaW1hcnkgYnV0dG9ucyBcbiAqIE1QUklTIFxuICogVG9wIGltYWdlIChjYW4gYmUgWW91ciBvd24gaW1hZ2UgZnJvbSBzeXN0ZW0pICIsCiAgIm5hbWUiOiAiQXZhdGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXdlbHN3aXN6Y3ovQXZhdGFyLUdub21lLVNoZWxsLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXZhdGFyQHBhd2VsLnN3aXN6Y3ouY29tIiwKICAidmVyc2lvbiI6IDE0Cn0="}, "42": {"version": "14", "sha256": "0d09fwy2jrzl94xy9k08q85pm6jqgnv6lf52a15n4bfcawsrhxxg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBdmF0YXIgRXh0ZW5zaW9uIGNhbiBhZGQgaW50byB0aGUgcGFuZWw6IFxuICogQXZhdGFyIChob3Jpem9udGFsL3ZlcnRpY2FsLCBzaGFkZXMsIHZpc2liaWxpdHkgb2YgdXNlcm5hbWUgYW5kIGhvc3RuYW1lKSBcbiAqIFByaW1hcnkgYnV0dG9ucyBcbiAqIE1QUklTIFxuICogVG9wIGltYWdlIChjYW4gYmUgWW91ciBvd24gaW1hZ2UgZnJvbSBzeXN0ZW0pICIsCiAgIm5hbWUiOiAiQXZhdGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXdlbHN3aXN6Y3ovQXZhdGFyLUdub21lLVNoZWxsLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXZhdGFyQHBhd2VsLnN3aXN6Y3ouY29tIiwKICAidmVyc2lvbiI6IDE0Cn0="}}}
 , {"uuid": "default-workspace@mateusrodcosta.com", "name": "Default Workspace", "pname": "default-workspace", "description": "Switches to the specified workspace on login.\nUseful for fixed number of workspace setups where the first workspace isn't the main one.", "link": "https://extensions.gnome.org/extension/4783/default-workspace/", "shell_version_map": {"40": {"version": "2", "sha256": "05s1bzh917vv3j7xfx2gljwfzxkb9lsvp8zgcgch75hfvywvpgb9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIHRvIHRoZSBzcGVjaWZpZWQgd29ya3NwYWNlIG9uIGxvZ2luLlxuVXNlZnVsIGZvciBmaXhlZCBudW1iZXIgb2Ygd29ya3NwYWNlIHNldHVwcyB3aGVyZSB0aGUgZmlyc3Qgd29ya3NwYWNlIGlzbid0IHRoZSBtYWluIG9uZS4iLAogICJuYW1lIjogIkRlZmF1bHQgV29ya3NwYWNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYXRldXNSb2RDb3N0YS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVmYXVsdC13b3Jrc3BhY2UiLAogICJ1dWlkIjogImRlZmF1bHQtd29ya3NwYWNlQG1hdGV1c3JvZGNvc3RhLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "05s1bzh917vv3j7xfx2gljwfzxkb9lsvp8zgcgch75hfvywvpgb9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIHRvIHRoZSBzcGVjaWZpZWQgd29ya3NwYWNlIG9uIGxvZ2luLlxuVXNlZnVsIGZvciBmaXhlZCBudW1iZXIgb2Ygd29ya3NwYWNlIHNldHVwcyB3aGVyZSB0aGUgZmlyc3Qgd29ya3NwYWNlIGlzbid0IHRoZSBtYWluIG9uZS4iLAogICJuYW1lIjogIkRlZmF1bHQgV29ya3NwYWNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYXRldXNSb2RDb3N0YS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVmYXVsdC13b3Jrc3BhY2UiLAogICJ1dWlkIjogImRlZmF1bHQtd29ya3NwYWNlQG1hdGV1c3JvZGNvc3RhLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
-, {"uuid": "alt-mouse@eexpss.gmail.com", "name": "Alt Mouse", "pname": "alt-mouse", "description": "* Alt + Mouse control window, Detailed instructions are on the home page and an alt-mouse-diagram.png in extension directory. Disable desktop BackgroundMenu, Disable Panel dragMode, Add a gap at right screen edge. Add Top-Left and Top-Right corner as hot coner.", "link": "https://extensions.gnome.org/extension/4786/alt-mouse/", "shell_version_map": {"40": {"version": "11", "sha256": "0wj2gx5jcpdrsm3kb1i4025f7nzy3p1pwag5rgw01pb2r41dhz6g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQWx0ICsgTW91c2UgY29udHJvbCB3aW5kb3csIERldGFpbGVkIGluc3RydWN0aW9ucyBhcmUgb24gdGhlIGhvbWUgcGFnZSBhbmQgYW4gYWx0LW1vdXNlLWRpYWdyYW0ucG5nIGluIGV4dGVuc2lvbiBkaXJlY3RvcnkuIERpc2FibGUgZGVza3RvcCBCYWNrZ3JvdW5kTWVudSwgRGlzYWJsZSBQYW5lbCBkcmFnTW9kZSwgQWRkIGEgZ2FwIGF0IHJpZ2h0IHNjcmVlbiBlZGdlLiBBZGQgVG9wLUxlZnQgYW5kIFRvcC1SaWdodCBjb3JuZXIgYXMgaG90IGNvbmVyLiIsCiAgIm5hbWUiOiAiQWx0IE1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ25vbWUtc2hlbGwtYWx0LW1vdXNlIiwKICAidXVpZCI6ICJhbHQtbW91c2VAZWV4cHNzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "0wj2gx5jcpdrsm3kb1i4025f7nzy3p1pwag5rgw01pb2r41dhz6g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQWx0ICsgTW91c2UgY29udHJvbCB3aW5kb3csIERldGFpbGVkIGluc3RydWN0aW9ucyBhcmUgb24gdGhlIGhvbWUgcGFnZSBhbmQgYW4gYWx0LW1vdXNlLWRpYWdyYW0ucG5nIGluIGV4dGVuc2lvbiBkaXJlY3RvcnkuIERpc2FibGUgZGVza3RvcCBCYWNrZ3JvdW5kTWVudSwgRGlzYWJsZSBQYW5lbCBkcmFnTW9kZSwgQWRkIGEgZ2FwIGF0IHJpZ2h0IHNjcmVlbiBlZGdlLiBBZGQgVG9wLUxlZnQgYW5kIFRvcC1SaWdodCBjb3JuZXIgYXMgaG90IGNvbmVyLiIsCiAgIm5hbWUiOiAiQWx0IE1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ25vbWUtc2hlbGwtYWx0LW1vdXNlIiwKICAidXVpZCI6ICJhbHQtbW91c2VAZWV4cHNzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"}, "42": {"version": "11", "sha256": "0wj2gx5jcpdrsm3kb1i4025f7nzy3p1pwag5rgw01pb2r41dhz6g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQWx0ICsgTW91c2UgY29udHJvbCB3aW5kb3csIERldGFpbGVkIGluc3RydWN0aW9ucyBhcmUgb24gdGhlIGhvbWUgcGFnZSBhbmQgYW4gYWx0LW1vdXNlLWRpYWdyYW0ucG5nIGluIGV4dGVuc2lvbiBkaXJlY3RvcnkuIERpc2FibGUgZGVza3RvcCBCYWNrZ3JvdW5kTWVudSwgRGlzYWJsZSBQYW5lbCBkcmFnTW9kZSwgQWRkIGEgZ2FwIGF0IHJpZ2h0IHNjcmVlbiBlZGdlLiBBZGQgVG9wLUxlZnQgYW5kIFRvcC1SaWdodCBjb3JuZXIgYXMgaG90IGNvbmVyLiIsCiAgIm5hbWUiOiAiQWx0IE1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ25vbWUtc2hlbGwtYWx0LW1vdXNlIiwKICAidXVpZCI6ICJhbHQtbW91c2VAZWV4cHNzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"}}}
-, {"uuid": "workspace-switcher-manager@G-dH.github.com", "name": "Workspace Switcher Manager", "pname": "workspace-switcher-manager", "description": "Make the workspace switcher popup useful! Customize your workspace switcher behavior and the content, dimensions, position, orientation and colors of its popup indicator.\n\n- all GNOME workspace related options in one place\n- adds ws switcher Wraparoud and Ignore Last (empty) Workspace options\n- allows to disable or customize switcher popup\n- allows adding content to the workspace switcher popup - Workspace Name, Current Application Name, Workspace Index\n- ws switcher popup appearance customization includes position on screen, timings, size, colors , orientation", "link": "https://extensions.gnome.org/extension/4788/workspace-switcher-manager/", "shell_version_map": {"38": {"version": "3", "sha256": "0s40f8k2a2qdh0l3wd8ksma58q8bp94dnzb63r8ixs467nvrgxig", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgaW4gb25lIHBsYWNlXG4tIGFkZHMgd3Mgc3dpdGNoZXIgV3JhcGFyb3VkIGFuZCBJZ25vcmUgTGFzdCAoZW1wdHkpIFdvcmtzcGFjZSBvcHRpb25zXG4tIGFsbG93cyB0byBkaXNhYmxlIG9yIGN1c3RvbWl6ZSBzd2l0Y2hlciBwb3B1cFxuLSBhbGxvd3MgYWRkaW5nIGNvbnRlbnQgdG8gdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCAtIFdvcmtzcGFjZSBOYW1lLCBDdXJyZW50IEFwcGxpY2F0aW9uIE5hbWUsIFdvcmtzcGFjZSBJbmRleFxuLSB3cyBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvd29ya3NwYWNlLXN3aXRjaGVyLW1hbmFnZXIiLAogICJ1dWlkIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "0s40f8k2a2qdh0l3wd8ksma58q8bp94dnzb63r8ixs467nvrgxig", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgaW4gb25lIHBsYWNlXG4tIGFkZHMgd3Mgc3dpdGNoZXIgV3JhcGFyb3VkIGFuZCBJZ25vcmUgTGFzdCAoZW1wdHkpIFdvcmtzcGFjZSBvcHRpb25zXG4tIGFsbG93cyB0byBkaXNhYmxlIG9yIGN1c3RvbWl6ZSBzd2l0Y2hlciBwb3B1cFxuLSBhbGxvd3MgYWRkaW5nIGNvbnRlbnQgdG8gdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCAtIFdvcmtzcGFjZSBOYW1lLCBDdXJyZW50IEFwcGxpY2F0aW9uIE5hbWUsIFdvcmtzcGFjZSBJbmRleFxuLSB3cyBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvd29ya3NwYWNlLXN3aXRjaGVyLW1hbmFnZXIiLAogICJ1dWlkIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "0s40f8k2a2qdh0l3wd8ksma58q8bp94dnzb63r8ixs467nvrgxig", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgaW4gb25lIHBsYWNlXG4tIGFkZHMgd3Mgc3dpdGNoZXIgV3JhcGFyb3VkIGFuZCBJZ25vcmUgTGFzdCAoZW1wdHkpIFdvcmtzcGFjZSBvcHRpb25zXG4tIGFsbG93cyB0byBkaXNhYmxlIG9yIGN1c3RvbWl6ZSBzd2l0Y2hlciBwb3B1cFxuLSBhbGxvd3MgYWRkaW5nIGNvbnRlbnQgdG8gdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCAtIFdvcmtzcGFjZSBOYW1lLCBDdXJyZW50IEFwcGxpY2F0aW9uIE5hbWUsIFdvcmtzcGFjZSBJbmRleFxuLSB3cyBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvd29ya3NwYWNlLXN3aXRjaGVyLW1hbmFnZXIiLAogICJ1dWlkIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "42": {"version": "3", "sha256": "0s40f8k2a2qdh0l3wd8ksma58q8bp94dnzb63r8ixs467nvrgxig", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgaW4gb25lIHBsYWNlXG4tIGFkZHMgd3Mgc3dpdGNoZXIgV3JhcGFyb3VkIGFuZCBJZ25vcmUgTGFzdCAoZW1wdHkpIFdvcmtzcGFjZSBvcHRpb25zXG4tIGFsbG93cyB0byBkaXNhYmxlIG9yIGN1c3RvbWl6ZSBzd2l0Y2hlciBwb3B1cFxuLSBhbGxvd3MgYWRkaW5nIGNvbnRlbnQgdG8gdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCAtIFdvcmtzcGFjZSBOYW1lLCBDdXJyZW50IEFwcGxpY2F0aW9uIE5hbWUsIFdvcmtzcGFjZSBJbmRleFxuLSB3cyBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvd29ya3NwYWNlLXN3aXRjaGVyLW1hbmFnZXIiLAogICJ1dWlkIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "alt-mouse@eexpss.gmail.com", "name": "Alt Mouse", "pname": "alt-mouse", "description": "* Alt + Mouse control window\nDetailed instructions are on the home page and in config interface. \nDisable desktop BackgroundMenu, Disable Panel dragMode. \nAdd a gap at right screen edge. \nAdd Top-Left and Top-Right corner as hot coner.", "link": "https://extensions.gnome.org/extension/4786/alt-mouse/", "shell_version_map": {"40": {"version": "12", "sha256": "1kcsbvvm6wigw0h2d23rx4vsqdawa7m5gfynjdc9xzxn3q8sxx0b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQWx0ICsgTW91c2UgY29udHJvbCB3aW5kb3dcbkRldGFpbGVkIGluc3RydWN0aW9ucyBhcmUgb24gdGhlIGhvbWUgcGFnZSBhbmQgaW4gY29uZmlnIGludGVyZmFjZS4gXG5EaXNhYmxlIGRlc2t0b3AgQmFja2dyb3VuZE1lbnUsIERpc2FibGUgUGFuZWwgZHJhZ01vZGUuIFxuQWRkIGEgZ2FwIGF0IHJpZ2h0IHNjcmVlbiBlZGdlLiBcbkFkZCBUb3AtTGVmdCBhbmQgVG9wLVJpZ2h0IGNvcm5lciBhcyBob3QgY29uZXIuIiwKICAibmFtZSI6ICJBbHQgTW91c2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lZXhwcmVzcy9ncy1hbHQtbW91c2UiLAogICJ1dWlkIjogImFsdC1tb3VzZUBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDEyCn0="}, "41": {"version": "12", "sha256": "1kcsbvvm6wigw0h2d23rx4vsqdawa7m5gfynjdc9xzxn3q8sxx0b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQWx0ICsgTW91c2UgY29udHJvbCB3aW5kb3dcbkRldGFpbGVkIGluc3RydWN0aW9ucyBhcmUgb24gdGhlIGhvbWUgcGFnZSBhbmQgaW4gY29uZmlnIGludGVyZmFjZS4gXG5EaXNhYmxlIGRlc2t0b3AgQmFja2dyb3VuZE1lbnUsIERpc2FibGUgUGFuZWwgZHJhZ01vZGUuIFxuQWRkIGEgZ2FwIGF0IHJpZ2h0IHNjcmVlbiBlZGdlLiBcbkFkZCBUb3AtTGVmdCBhbmQgVG9wLVJpZ2h0IGNvcm5lciBhcyBob3QgY29uZXIuIiwKICAibmFtZSI6ICJBbHQgTW91c2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lZXhwcmVzcy9ncy1hbHQtbW91c2UiLAogICJ1dWlkIjogImFsdC1tb3VzZUBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDEyCn0="}, "42": {"version": "24", "sha256": "1j20kzq4va9s0jpvcm2y91wjk0c772mx4xk1rmr49hy1rb2crdpc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQWx0ICsgTW91c2UgY29udHJvbCB3aW5kb3dcbkRldGFpbGVkIGluc3RydWN0aW9ucyBhcmUgb24gdGhlIGhvbWUgcGFnZSBhbmQgaW4gY29uZmlnIGludGVyZmFjZS4gXG5EaXNhYmxlIGRlc2t0b3AgQmFja2dyb3VuZE1lbnUsIERpc2FibGUgUGFuZWwgZHJhZ01vZGUuIFxuQWRkIGEgZ2FwIGF0IHJpZ2h0IHNjcmVlbiBlZGdlLiBcbkFkZCBUb3AtTGVmdCBhbmQgVG9wLVJpZ2h0IGNvcm5lciBhcyBob3QgY29uZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWx0LW1vdXNlIiwKICAibmFtZSI6ICJBbHQgTW91c2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx0LW1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dzLWFsdC1tb3VzZSIsCiAgInV1aWQiOiAiYWx0LW1vdXNlQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjQKfQ=="}}}
+, {"uuid": "workspace-switcher-manager@G-dH.github.com", "name": "Workspace Switcher Manager", "pname": "workspace-switcher-manager", "description": "Make the workspace switcher popup useful! Customize your workspace switcher behavior and the content, dimensions, position, orientation and colors of its OSD popup.\n\n- all GNOME workspace related options in one place\n- adds ws switcher Wraparoud and Ignore Last (empty) Workspace options\n- allows to disable or customize switcher popup\n- allows adding content to the workspace switcher popup - Workspace Name, Current Application Name, Workspace Index\n- ws switcher popup appearance customization includes position on screen, timings, size, colors , orientation", "link": "https://extensions.gnome.org/extension/4788/workspace-switcher-manager/", "shell_version_map": {"38": {"version": "3", "sha256": "195syngd2lj2pfhj1mmmi0b4x7rl6dzizsc9pxln8v5qyayj1rdh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBPU0QgcG9wdXAuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgaW4gb25lIHBsYWNlXG4tIGFkZHMgd3Mgc3dpdGNoZXIgV3JhcGFyb3VkIGFuZCBJZ25vcmUgTGFzdCAoZW1wdHkpIFdvcmtzcGFjZSBvcHRpb25zXG4tIGFsbG93cyB0byBkaXNhYmxlIG9yIGN1c3RvbWl6ZSBzd2l0Y2hlciBwb3B1cFxuLSBhbGxvd3MgYWRkaW5nIGNvbnRlbnQgdG8gdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCAtIFdvcmtzcGFjZSBOYW1lLCBDdXJyZW50IEFwcGxpY2F0aW9uIE5hbWUsIFdvcmtzcGFjZSBJbmRleFxuLSB3cyBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvd29ya3NwYWNlLXN3aXRjaGVyLW1hbmFnZXIiLAogICJ1dWlkIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "195syngd2lj2pfhj1mmmi0b4x7rl6dzizsc9pxln8v5qyayj1rdh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBPU0QgcG9wdXAuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgaW4gb25lIHBsYWNlXG4tIGFkZHMgd3Mgc3dpdGNoZXIgV3JhcGFyb3VkIGFuZCBJZ25vcmUgTGFzdCAoZW1wdHkpIFdvcmtzcGFjZSBvcHRpb25zXG4tIGFsbG93cyB0byBkaXNhYmxlIG9yIGN1c3RvbWl6ZSBzd2l0Y2hlciBwb3B1cFxuLSBhbGxvd3MgYWRkaW5nIGNvbnRlbnQgdG8gdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCAtIFdvcmtzcGFjZSBOYW1lLCBDdXJyZW50IEFwcGxpY2F0aW9uIE5hbWUsIFdvcmtzcGFjZSBJbmRleFxuLSB3cyBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvd29ya3NwYWNlLXN3aXRjaGVyLW1hbmFnZXIiLAogICJ1dWlkIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "195syngd2lj2pfhj1mmmi0b4x7rl6dzizsc9pxln8v5qyayj1rdh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBPU0QgcG9wdXAuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgaW4gb25lIHBsYWNlXG4tIGFkZHMgd3Mgc3dpdGNoZXIgV3JhcGFyb3VkIGFuZCBJZ25vcmUgTGFzdCAoZW1wdHkpIFdvcmtzcGFjZSBvcHRpb25zXG4tIGFsbG93cyB0byBkaXNhYmxlIG9yIGN1c3RvbWl6ZSBzd2l0Y2hlciBwb3B1cFxuLSBhbGxvd3MgYWRkaW5nIGNvbnRlbnQgdG8gdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCAtIFdvcmtzcGFjZSBOYW1lLCBDdXJyZW50IEFwcGxpY2F0aW9uIE5hbWUsIFdvcmtzcGFjZSBJbmRleFxuLSB3cyBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvd29ya3NwYWNlLXN3aXRjaGVyLW1hbmFnZXIiLAogICJ1dWlkIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "42": {"version": "3", "sha256": "195syngd2lj2pfhj1mmmi0b4x7rl6dzizsc9pxln8v5qyayj1rdh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBPU0QgcG9wdXAuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgaW4gb25lIHBsYWNlXG4tIGFkZHMgd3Mgc3dpdGNoZXIgV3JhcGFyb3VkIGFuZCBJZ25vcmUgTGFzdCAoZW1wdHkpIFdvcmtzcGFjZSBvcHRpb25zXG4tIGFsbG93cyB0byBkaXNhYmxlIG9yIGN1c3RvbWl6ZSBzd2l0Y2hlciBwb3B1cFxuLSBhbGxvd3MgYWRkaW5nIGNvbnRlbnQgdG8gdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCAtIFdvcmtzcGFjZSBOYW1lLCBDdXJyZW50IEFwcGxpY2F0aW9uIE5hbWUsIFdvcmtzcGFjZSBJbmRleFxuLSB3cyBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvd29ya3NwYWNlLXN3aXRjaGVyLW1hbmFnZXIiLAogICJ1dWlkIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "compare@eexpss.gmail.com", "name": "Compare or Open", "pname": "compare-filedir-from-clip", "description": "Copy/Select two Dirs/Files from anywhere such as `nautilus` or `gnome-terminal`, and then compare them (use `meld`) or open with Ctrl-O or open with context-menu.", "link": "https://extensions.gnome.org/extension/4789/compare-filedir-from-clip/", "shell_version_map": {"40": {"version": "15", "sha256": "0is8y6cs3qfaljlmyfhjpp71fbd98bizldf0rhrblm91mjfhqi3a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvcHkvU2VsZWN0IHR3byBEaXJzL0ZpbGVzIGZyb20gYW55d2hlcmUgc3VjaCBhcyBgbmF1dGlsdXNgIG9yIGBnbm9tZS10ZXJtaW5hbGAsIGFuZCB0aGVuIGNvbXBhcmUgdGhlbSAodXNlIGBtZWxkYCkgb3Igb3BlbiB3aXRoIEN0cmwtTyBvciBvcGVuIHdpdGggY29udGV4dC1tZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbXBhcmUiLAogICJuYW1lIjogIkNvbXBhcmUgb3IgT3BlbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb21wYXJlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ25vbWUtc2hlbGwtY29tcGFyZSIsCiAgInV1aWQiOiAiY29tcGFyZUBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE1Cn0="}, "41": {"version": "15", "sha256": "0is8y6cs3qfaljlmyfhjpp71fbd98bizldf0rhrblm91mjfhqi3a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvcHkvU2VsZWN0IHR3byBEaXJzL0ZpbGVzIGZyb20gYW55d2hlcmUgc3VjaCBhcyBgbmF1dGlsdXNgIG9yIGBnbm9tZS10ZXJtaW5hbGAsIGFuZCB0aGVuIGNvbXBhcmUgdGhlbSAodXNlIGBtZWxkYCkgb3Igb3BlbiB3aXRoIEN0cmwtTyBvciBvcGVuIHdpdGggY29udGV4dC1tZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbXBhcmUiLAogICJuYW1lIjogIkNvbXBhcmUgb3IgT3BlbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb21wYXJlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ25vbWUtc2hlbGwtY29tcGFyZSIsCiAgInV1aWQiOiAiY29tcGFyZUBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE1Cn0="}, "42": {"version": "15", "sha256": "0is8y6cs3qfaljlmyfhjpp71fbd98bizldf0rhrblm91mjfhqi3a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvcHkvU2VsZWN0IHR3byBEaXJzL0ZpbGVzIGZyb20gYW55d2hlcmUgc3VjaCBhcyBgbmF1dGlsdXNgIG9yIGBnbm9tZS10ZXJtaW5hbGAsIGFuZCB0aGVuIGNvbXBhcmUgdGhlbSAodXNlIGBtZWxkYCkgb3Igb3BlbiB3aXRoIEN0cmwtTyBvciBvcGVuIHdpdGggY29udGV4dC1tZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbXBhcmUiLAogICJuYW1lIjogIkNvbXBhcmUgb3IgT3BlbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb21wYXJlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ25vbWUtc2hlbGwtY29tcGFyZSIsCiAgInV1aWQiOiAiY29tcGFyZUBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE1Cn0="}}}
 , {"uuid": "freq-boost-switch@metal03326", "name": "Frequency Boost Switch", "pname": "frequency-boost-switch", "description": "Add a toggle to enable/disable CPU frequency boost in Gnome Power Profiles menu.\n\nMain features:\n\n- Toggle Frequency Boost from the same place you set power profile\n- Toggle Frequency Boost regardless of the set power profile\n- Lightweight (no service is installed) 1 3\n- Option to set on boot (Persist) 2 3\n- Translation (currently only English and Bulgarian)\n\n1 Asks for permission every time user flips the switch\n2 Will prompt user for permission 5s after login, if boost needs to be changed\n3 Permission prompt can be removed by adding Polkit rules. Check extension preferences.\n\nRequirements:\n\n- GNOME >= 41 (power profiles menu doesn't exist before that)\n- power-profiles-daemon (power profiles menu doesn't show if not installed and enabled)\n- pkexec (needed to ask the user for permissions)\n\nAll tests are done on Fedora.\n\nIf you have any issues, please first check FAQ (https://gitlab.com/metal03326/gnome-frequency-boost-switch#faq) and if that doesn't help, open an issue (https://gitlab.com/metal03326/gnome-frequency-boost-switch/-/issues)", "link": "https://extensions.gnome.org/extension/4792/frequency-boost-switch/", "shell_version_map": {"41": {"version": "3", "sha256": "0cw3npc3ypp0cpzy0k2iim748dc7d4abkfmkd9cs6h27g9wgmfk6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBlbmFibGUvZGlzYWJsZSBDUFUgZnJlcXVlbmN5IGJvb3N0IGluIEdub21lIFBvd2VyIFByb2ZpbGVzIG1lbnUuXG5cbk1haW4gZmVhdHVyZXM6XG5cbi0gVG9nZ2xlIEZyZXF1ZW5jeSBCb29zdCBmcm9tIHRoZSBzYW1lIHBsYWNlIHlvdSBzZXQgcG93ZXIgcHJvZmlsZVxuLSBUb2dnbGUgRnJlcXVlbmN5IEJvb3N0IHJlZ2FyZGxlc3Mgb2YgdGhlIHNldCBwb3dlciBwcm9maWxlXG4tIExpZ2h0d2VpZ2h0IChubyBzZXJ2aWNlIGlzIGluc3RhbGxlZCkgMSAzXG4tIE9wdGlvbiB0byBzZXQgb24gYm9vdCAoUGVyc2lzdCkgMiAzXG4tIFRyYW5zbGF0aW9uIChjdXJyZW50bHkgb25seSBFbmdsaXNoIGFuZCBCdWxnYXJpYW4pXG5cbjEgQXNrcyBmb3IgcGVybWlzc2lvbiBldmVyeSB0aW1lIHVzZXIgZmxpcHMgdGhlIHN3aXRjaFxuMiBXaWxsIHByb21wdCB1c2VyIGZvciBwZXJtaXNzaW9uIDVzIGFmdGVyIGxvZ2luLCBpZiBib29zdCBuZWVkcyB0byBiZSBjaGFuZ2VkXG4zIFBlcm1pc3Npb24gcHJvbXB0IGNhbiBiZSByZW1vdmVkIGJ5IGFkZGluZyBQb2xraXQgcnVsZXMuIENoZWNrIGV4dGVuc2lvbiBwcmVmZXJlbmNlcy5cblxuUmVxdWlyZW1lbnRzOlxuXG4tIEdOT01FID49IDQxIChwb3dlciBwcm9maWxlcyBtZW51IGRvZXNuJ3QgZXhpc3QgYmVmb3JlIHRoYXQpXG4tIHBvd2VyLXByb2ZpbGVzLWRhZW1vbiAocG93ZXIgcHJvZmlsZXMgbWVudSBkb2Vzbid0IHNob3cgaWYgbm90IGluc3RhbGxlZCBhbmQgZW5hYmxlZClcbi0gcGtleGVjIChuZWVkZWQgdG8gYXNrIHRoZSB1c2VyIGZvciBwZXJtaXNzaW9ucylcblxuQWxsIHRlc3RzIGFyZSBkb25lIG9uIEZlZG9yYS5cblxuSWYgeW91IGhhdmUgYW55IGlzc3VlcywgcGxlYXNlIGZpcnN0IGNoZWNrIEZBUSAoaHR0cHM6Ly9naXRsYWIuY29tL21ldGFsMDMzMjYvZ25vbWUtZnJlcXVlbmN5LWJvb3N0LXN3aXRjaCNmYXEpIGFuZCBpZiB0aGF0IGRvZXNuJ3QgaGVscCwgb3BlbiBhbiBpc3N1ZSAoaHR0cHM6Ly9naXRsYWIuY29tL21ldGFsMDMzMjYvZ25vbWUtZnJlcXVlbmN5LWJvb3N0LXN3aXRjaC8tL2lzc3VlcykiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmVxLWJvb3N0LXN3aXRjaEBtZXRhbDAzMzI2IiwKICAibmFtZSI6ICJGcmVxdWVuY3kgQm9vc3QgU3dpdGNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZyZXEtYm9vc3Qtc3dpdGNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL21ldGFsMDMzMjYvZ25vbWUtZnJlcXVlbmN5LWJvb3N0LXN3aXRjaCIsCiAgInV1aWQiOiAiZnJlcS1ib29zdC1zd2l0Y2hAbWV0YWwwMzMyNiIsCiAgInZlcnNpb24iOiAzCn0="}}}
-, {"uuid": "pop-launcher-super-key@ManeLippert", "name": "Pop Launcher Super-Key", "pname": "pop-launcher-super-key", "description": "Fork of Pop COSMIC: Binds Pop Launcher on Super-Key when Pop COSMIC Extension is disabled", "link": "https://extensions.gnome.org/extension/4797/pop-launcher-super-key/", "shell_version_map": {"38": {"version": "3", "sha256": "04bln8wkn0s6di03qqxa7bzclb2p8w5ic4mbmh31ar041plzj778", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2YgUG9wIENPU01JQzogQmluZHMgUG9wIExhdW5jaGVyIG9uIFN1cGVyLUtleSB3aGVuIFBvcCBDT1NNSUMgRXh0ZW5zaW9uIGlzIGRpc2FibGVkIiwKICAibmFtZSI6ICJQb3AgTGF1bmNoZXIgU3VwZXItS2V5IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJTeXN0ZW03NiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wb3AtbGF1bmNoZXItc3VwZXIta2V5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYW5lTGlwcGVydC9wb3AtbGF1bmNoZXItc3VwZXIta2V5IiwKICAidXVpZCI6ICJwb3AtbGF1bmNoZXItc3VwZXIta2V5QE1hbmVMaXBwZXJ0IiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "3", "sha256": "04bln8wkn0s6di03qqxa7bzclb2p8w5ic4mbmh31ar041plzj778", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2YgUG9wIENPU01JQzogQmluZHMgUG9wIExhdW5jaGVyIG9uIFN1cGVyLUtleSB3aGVuIFBvcCBDT1NNSUMgRXh0ZW5zaW9uIGlzIGRpc2FibGVkIiwKICAibmFtZSI6ICJQb3AgTGF1bmNoZXIgU3VwZXItS2V5IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJTeXN0ZW03NiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wb3AtbGF1bmNoZXItc3VwZXIta2V5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYW5lTGlwcGVydC9wb3AtbGF1bmNoZXItc3VwZXIta2V5IiwKICAidXVpZCI6ICJwb3AtbGF1bmNoZXItc3VwZXIta2V5QE1hbmVMaXBwZXJ0IiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "3", "sha256": "04bln8wkn0s6di03qqxa7bzclb2p8w5ic4mbmh31ar041plzj778", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2YgUG9wIENPU01JQzogQmluZHMgUG9wIExhdW5jaGVyIG9uIFN1cGVyLUtleSB3aGVuIFBvcCBDT1NNSUMgRXh0ZW5zaW9uIGlzIGRpc2FibGVkIiwKICAibmFtZSI6ICJQb3AgTGF1bmNoZXIgU3VwZXItS2V5IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJTeXN0ZW03NiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wb3AtbGF1bmNoZXItc3VwZXIta2V5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYW5lTGlwcGVydC9wb3AtbGF1bmNoZXItc3VwZXIta2V5IiwKICAidXVpZCI6ICJwb3AtbGF1bmNoZXItc3VwZXIta2V5QE1hbmVMaXBwZXJ0IiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "pop-launcher-super-key@ManeLippert", "name": "Pop Launcher Super-Key", "pname": "pop-launcher-super-key", "description": "Fork of Pop COSMIC: Binds Pop Launcher on Super-Key when Pop COSMIC Extension is disabled", "link": "https://extensions.gnome.org/extension/4797/pop-launcher-super-key/", "shell_version_map": {"38": {"version": "4", "sha256": "004h856a0mb8d4s6pqjbk6k855pnpig555f00wazgivgscv7x2r3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2YgUG9wIENPU01JQzogQmluZHMgUG9wIExhdW5jaGVyIG9uIFN1cGVyLUtleSB3aGVuIFBvcCBDT1NNSUMgRXh0ZW5zaW9uIGlzIGRpc2FibGVkIiwKICAibmFtZSI6ICJQb3AgTGF1bmNoZXIgU3VwZXItS2V5IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJTeXN0ZW03NiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wb3AtbGF1bmNoZXItc3VwZXIta2V5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFuZUxpcHBlcnQvcG9wLWxhdW5jaGVyLXN1cGVyLWtleSIsCiAgInV1aWQiOiAicG9wLWxhdW5jaGVyLXN1cGVyLWtleUBNYW5lTGlwcGVydCIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "004h856a0mb8d4s6pqjbk6k855pnpig555f00wazgivgscv7x2r3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2YgUG9wIENPU01JQzogQmluZHMgUG9wIExhdW5jaGVyIG9uIFN1cGVyLUtleSB3aGVuIFBvcCBDT1NNSUMgRXh0ZW5zaW9uIGlzIGRpc2FibGVkIiwKICAibmFtZSI6ICJQb3AgTGF1bmNoZXIgU3VwZXItS2V5IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJTeXN0ZW03NiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wb3AtbGF1bmNoZXItc3VwZXIta2V5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFuZUxpcHBlcnQvcG9wLWxhdW5jaGVyLXN1cGVyLWtleSIsCiAgInV1aWQiOiAicG9wLWxhdW5jaGVyLXN1cGVyLWtleUBNYW5lTGlwcGVydCIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "004h856a0mb8d4s6pqjbk6k855pnpig555f00wazgivgscv7x2r3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2YgUG9wIENPU01JQzogQmluZHMgUG9wIExhdW5jaGVyIG9uIFN1cGVyLUtleSB3aGVuIFBvcCBDT1NNSUMgRXh0ZW5zaW9uIGlzIGRpc2FibGVkIiwKICAibmFtZSI6ICJQb3AgTGF1bmNoZXIgU3VwZXItS2V5IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJTeXN0ZW03NiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wb3AtbGF1bmNoZXItc3VwZXIta2V5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFuZUxpcHBlcnQvcG9wLWxhdW5jaGVyLXN1cGVyLWtleSIsCiAgInV1aWQiOiAicG9wLWxhdW5jaGVyLXN1cGVyLWtleUBNYW5lTGlwcGVydCIsCiAgInZlcnNpb24iOiA0Cn0="}, "42": {"version": "4", "sha256": "004h856a0mb8d4s6pqjbk6k855pnpig555f00wazgivgscv7x2r3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2YgUG9wIENPU01JQzogQmluZHMgUG9wIExhdW5jaGVyIG9uIFN1cGVyLUtleSB3aGVuIFBvcCBDT1NNSUMgRXh0ZW5zaW9uIGlzIGRpc2FibGVkIiwKICAibmFtZSI6ICJQb3AgTGF1bmNoZXIgU3VwZXItS2V5IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJTeXN0ZW03NiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wb3AtbGF1bmNoZXItc3VwZXIta2V5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFuZUxpcHBlcnQvcG9wLWxhdW5jaGVyLXN1cGVyLWtleSIsCiAgInV1aWQiOiAicG9wLWxhdW5jaGVyLXN1cGVyLWtleUBNYW5lTGlwcGVydCIsCiAgInZlcnNpb24iOiA0Cn0="}}}
 , {"uuid": "thinkpad-battery-threshold@marcosdalvarez.org", "name": "Thinkpad Battery Threshold", "pname": "thinkpad-battery-threshold", "description": "Enable/Disable battery threshold on Lenovo Thinkpad laptops.\n\nIf you mainly use the system with the AC power adapter connected and only use the battery sporadically, you can increase battery life by setting the maximum charge value to less than 100%. This is useful because batteries that are used sporadically have a longer lifespan when kept at less than full charge.", "link": "https://extensions.gnome.org/extension/4798/thinkpad-battery-threshold/", "shell_version_map": {"41": {"version": "9", "sha256": "1x43rzbrini944ccfm7kfbly5gkpfg7z084vc60b5628m1kwcygq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbWFyY29zZGFsdmFyZXovdGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZEBtYXJjb3NkYWx2YXJlei5vcmciLAogICJ2ZXJzaW9uIjogOQp9"}, "42": {"version": "9", "sha256": "1x43rzbrini944ccfm7kfbly5gkpfg7z084vc60b5628m1kwcygq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbWFyY29zZGFsdmFyZXovdGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZEBtYXJjb3NkYWx2YXJlei5vcmciLAogICJ2ZXJzaW9uIjogOQp9"}}}
 , {"uuid": "lock-screen-message@advendradeswanta.gitlab.com", "name": "Lock Screen Message", "pname": "lock-screen-message", "description": "Simple extension that let's you add your message to the lock screen (unlockDialog)", "link": "https://extensions.gnome.org/extension/4801/lock-screen-message/", "shell_version_map": {"40": {"version": "2", "sha256": "12q3z5wdbbg9sa570ig5sw6qk70ykhy5zsx7ygvi2zgla52v0hq9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdGhhdCBsZXQncyB5b3UgYWRkIHlvdXIgbWVzc2FnZSB0byB0aGUgbG9jayBzY3JlZW4gKHVubG9ja0RpYWxvZykiLAogICJuYW1lIjogIkxvY2sgU2NyZWVuIE1lc3NhZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9jay1zY3JlZW4tbWVzc2FnZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vQWR2ZW5kcmFEZXN3YW50YS9sb2NrLXNjcmVlbi1tZXNzYWdlIiwKICAidXVpZCI6ICJsb2NrLXNjcmVlbi1tZXNzYWdlQGFkdmVuZHJhZGVzd2FudGEuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "12q3z5wdbbg9sa570ig5sw6qk70ykhy5zsx7ygvi2zgla52v0hq9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdGhhdCBsZXQncyB5b3UgYWRkIHlvdXIgbWVzc2FnZSB0byB0aGUgbG9jayBzY3JlZW4gKHVubG9ja0RpYWxvZykiLAogICJuYW1lIjogIkxvY2sgU2NyZWVuIE1lc3NhZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9jay1zY3JlZW4tbWVzc2FnZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vQWR2ZW5kcmFEZXN3YW50YS9sb2NrLXNjcmVlbi1tZXNzYWdlIiwKICAidXVpZCI6ICJsb2NrLXNjcmVlbi1tZXNzYWdlQGFkdmVuZHJhZGVzd2FudGEuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "panel-corners@aunetx", "name": "Panel corners", "pname": "panel-corners", "description": "A GNOME shell extension to keep the old topbar corners, which were removed for GNOME 42. It also allows you to customize the rounded corners, even if you use GNOME 40 or 41.\n\nIt is widely based on already existing gnome-shell code, and on a merge request by Alexander Mikhaylenko: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1328", "link": "https://extensions.gnome.org/extension/4805/panel-corners/", "shell_version_map": {"40": {"version": "3", "sha256": "0piacfxwa5ca5cnvrz0s8pqykfixynmvvdmh1rznfsh407v1kw1v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgc2hlbGwgZXh0ZW5zaW9uIHRvIGtlZXAgdGhlIG9sZCB0b3BiYXIgY29ybmVycywgd2hpY2ggd2VyZSByZW1vdmVkIGZvciBHTk9NRSA0Mi4gSXQgYWxzbyBhbGxvd3MgeW91IHRvIGN1c3RvbWl6ZSB0aGUgcm91bmRlZCBjb3JuZXJzLCBldmVuIGlmIHlvdSB1c2UgR05PTUUgNDAgb3IgNDEuXG5cbkl0IGlzIHdpZGVseSBiYXNlZCBvbiBhbHJlYWR5IGV4aXN0aW5nIGdub21lLXNoZWxsIGNvZGUsIGFuZCBvbiBhIG1lcmdlIHJlcXVlc3QgYnkgQWxleGFuZGVyIE1pa2hheWxlbmtvOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwvLS9tZXJnZV9yZXF1ZXN0cy8xMzI4IiwKICAibmFtZSI6ICJQYW5lbCBjb3JuZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhbmVsLWNvcm5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hdW5ldHgvcGFuZWwtY29ybmVycyIsCiAgInV1aWQiOiAicGFuZWwtY29ybmVyc0BhdW5ldHgiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "0piacfxwa5ca5cnvrz0s8pqykfixynmvvdmh1rznfsh407v1kw1v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgc2hlbGwgZXh0ZW5zaW9uIHRvIGtlZXAgdGhlIG9sZCB0b3BiYXIgY29ybmVycywgd2hpY2ggd2VyZSByZW1vdmVkIGZvciBHTk9NRSA0Mi4gSXQgYWxzbyBhbGxvd3MgeW91IHRvIGN1c3RvbWl6ZSB0aGUgcm91bmRlZCBjb3JuZXJzLCBldmVuIGlmIHlvdSB1c2UgR05PTUUgNDAgb3IgNDEuXG5cbkl0IGlzIHdpZGVseSBiYXNlZCBvbiBhbHJlYWR5IGV4aXN0aW5nIGdub21lLXNoZWxsIGNvZGUsIGFuZCBvbiBhIG1lcmdlIHJlcXVlc3QgYnkgQWxleGFuZGVyIE1pa2hheWxlbmtvOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwvLS9tZXJnZV9yZXF1ZXN0cy8xMzI4IiwKICAibmFtZSI6ICJQYW5lbCBjb3JuZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhbmVsLWNvcm5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hdW5ldHgvcGFuZWwtY29ybmVycyIsCiAgInV1aWQiOiAicGFuZWwtY29ybmVyc0BhdW5ldHgiLAogICJ2ZXJzaW9uIjogMwp9"}, "42": {"version": "4", "sha256": "13mc18sds1z0ij1x8plx5d4b4mk4zkwx3hngh3z2ib7db8la7wdw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgc2hlbGwgZXh0ZW5zaW9uIHRvIGtlZXAgdGhlIG9sZCB0b3BiYXIgY29ybmVycywgd2hpY2ggd2VyZSByZW1vdmVkIGZvciBHTk9NRSA0Mi4gSXQgYWxzbyBhbGxvd3MgeW91IHRvIGN1c3RvbWl6ZSB0aGUgcm91bmRlZCBjb3JuZXJzLCBldmVuIGlmIHlvdSB1c2UgR05PTUUgNDAgb3IgNDEuXG5cbkl0IGlzIHdpZGVseSBiYXNlZCBvbiBhbHJlYWR5IGV4aXN0aW5nIGdub21lLXNoZWxsIGNvZGUsIGFuZCBvbiBhIG1lcmdlIHJlcXVlc3QgYnkgQWxleGFuZGVyIE1pa2hheWxlbmtvOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwvLS9tZXJnZV9yZXF1ZXN0cy8xMzI4IiwKICAibmFtZSI6ICJQYW5lbCBjb3JuZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhbmVsLWNvcm5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L3BhbmVsLWNvcm5lcnMiLAogICJ1dWlkIjogInBhbmVsLWNvcm5lcnNAYXVuZXR4IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "WhatWatch@Zappo-II.github.io", "name": "What Watch", "pname": "what-watch", "description": "Shows a customizeable analog desktop clock.\nPlease visit the GitHub repository for documentation and to report any issues.", "link": "https://extensions.gnome.org/extension/4806/what-watch/", "shell_version_map": {"38": {"version": "4", "sha256": "1cd9cci0nhpif104x7lc3i5xiqlsnlr0xg764gj0p3hrn0bf9icj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgY3VzdG9taXplYWJsZSBhbmFsb2cgZGVza3RvcCBjbG9jay5cblBsZWFzZSB2aXNpdCB0aGUgR2l0SHViIHJlcG9zaXRvcnkgZm9yIGRvY3VtZW50YXRpb24gYW5kIHRvIHJlcG9ydCBhbnkgaXNzdWVzLiIsCiAgIm5hbWUiOiAiV2hhdCBXYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy56YXBwb2lpLndoYXR3YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWmFwcG8tSUkvV2hhdFdhdGNoIiwKICAidXVpZCI6ICJXaGF0V2F0Y2hAWmFwcG8tSUkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "1cd9cci0nhpif104x7lc3i5xiqlsnlr0xg764gj0p3hrn0bf9icj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgY3VzdG9taXplYWJsZSBhbmFsb2cgZGVza3RvcCBjbG9jay5cblBsZWFzZSB2aXNpdCB0aGUgR2l0SHViIHJlcG9zaXRvcnkgZm9yIGRvY3VtZW50YXRpb24gYW5kIHRvIHJlcG9ydCBhbnkgaXNzdWVzLiIsCiAgIm5hbWUiOiAiV2hhdCBXYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy56YXBwb2lpLndoYXR3YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWmFwcG8tSUkvV2hhdFdhdGNoIiwKICAidXVpZCI6ICJXaGF0V2F0Y2hAWmFwcG8tSUkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1cd9cci0nhpif104x7lc3i5xiqlsnlr0xg764gj0p3hrn0bf9icj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgY3VzdG9taXplYWJsZSBhbmFsb2cgZGVza3RvcCBjbG9jay5cblBsZWFzZSB2aXNpdCB0aGUgR2l0SHViIHJlcG9zaXRvcnkgZm9yIGRvY3VtZW50YXRpb24gYW5kIHRvIHJlcG9ydCBhbnkgaXNzdWVzLiIsCiAgIm5hbWUiOiAiV2hhdCBXYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy56YXBwb2lpLndoYXR3YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWmFwcG8tSUkvV2hhdFdhdGNoIiwKICAidXVpZCI6ICJXaGF0V2F0Y2hAWmFwcG8tSUkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "cairo@eexpss.gmail.com", "name": "Cairo Clock", "pname": "cairo-clock", "description": "Cairo Clock. \n Click the clock face to set the alarm, click the center circle to enable the alarm.\n Alt + click on main icon, background of icon become green, this enable Popup per hour function. \n Ctrl + click on main icon, can test the alarm effect.\n In case of alarm, the clock will swing dynamically.", "link": "https://extensions.gnome.org/extension/4809/cairo-clock/", "shell_version_map": {"40": {"version": "16", "sha256": "0m0b30frbs4667vavr6y5sy7zfg5fsa38qa2140ij8wqcznz9m7b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNhaXJvIENsb2NrLiBcbiBDbGljayB0aGUgY2xvY2sgZmFjZSB0byBzZXQgdGhlIGFsYXJtLCBjbGljayB0aGUgY2VudGVyIGNpcmNsZSB0byBlbmFibGUgdGhlIGFsYXJtLlxuIEFsdCArIGNsaWNrIG9uIG1haW4gaWNvbiwgYmFja2dyb3VuZCBvZiBpY29uIGJlY29tZSBncmVlbiwgdGhpcyBlbmFibGUgUG9wdXAgcGVyIGhvdXIgZnVuY3Rpb24uIFxuIEN0cmwgKyBjbGljayBvbiBtYWluIGljb24sIGNhbiB0ZXN0IHRoZSBhbGFybSBlZmZlY3QuXG4gSW4gY2FzZSBvZiBhbGFybSwgdGhlIGNsb2NrIHdpbGwgc3dpbmcgZHluYW1pY2FsbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY2Fpcm8tY2xvY2siLAogICJuYW1lIjogIkNhaXJvIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ25vbWUtc2hlbGwtY2Fpcm8iLAogICJ1dWlkIjogImNhaXJvQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "41": {"version": "16", "sha256": "0m0b30frbs4667vavr6y5sy7zfg5fsa38qa2140ij8wqcznz9m7b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNhaXJvIENsb2NrLiBcbiBDbGljayB0aGUgY2xvY2sgZmFjZSB0byBzZXQgdGhlIGFsYXJtLCBjbGljayB0aGUgY2VudGVyIGNpcmNsZSB0byBlbmFibGUgdGhlIGFsYXJtLlxuIEFsdCArIGNsaWNrIG9uIG1haW4gaWNvbiwgYmFja2dyb3VuZCBvZiBpY29uIGJlY29tZSBncmVlbiwgdGhpcyBlbmFibGUgUG9wdXAgcGVyIGhvdXIgZnVuY3Rpb24uIFxuIEN0cmwgKyBjbGljayBvbiBtYWluIGljb24sIGNhbiB0ZXN0IHRoZSBhbGFybSBlZmZlY3QuXG4gSW4gY2FzZSBvZiBhbGFybSwgdGhlIGNsb2NrIHdpbGwgc3dpbmcgZHluYW1pY2FsbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY2Fpcm8tY2xvY2siLAogICJuYW1lIjogIkNhaXJvIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ25vbWUtc2hlbGwtY2Fpcm8iLAogICJ1dWlkIjogImNhaXJvQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "42": {"version": "16", "sha256": "0m0b30frbs4667vavr6y5sy7zfg5fsa38qa2140ij8wqcznz9m7b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNhaXJvIENsb2NrLiBcbiBDbGljayB0aGUgY2xvY2sgZmFjZSB0byBzZXQgdGhlIGFsYXJtLCBjbGljayB0aGUgY2VudGVyIGNpcmNsZSB0byBlbmFibGUgdGhlIGFsYXJtLlxuIEFsdCArIGNsaWNrIG9uIG1haW4gaWNvbiwgYmFja2dyb3VuZCBvZiBpY29uIGJlY29tZSBncmVlbiwgdGhpcyBlbmFibGUgUG9wdXAgcGVyIGhvdXIgZnVuY3Rpb24uIFxuIEN0cmwgKyBjbGljayBvbiBtYWluIGljb24sIGNhbiB0ZXN0IHRoZSBhbGFybSBlZmZlY3QuXG4gSW4gY2FzZSBvZiBhbGFybSwgdGhlIGNsb2NrIHdpbGwgc3dpbmcgZHluYW1pY2FsbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY2Fpcm8tY2xvY2siLAogICJuYW1lIjogIkNhaXJvIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ25vbWUtc2hlbGwtY2Fpcm8iLAogICJ1dWlkIjogImNhaXJvQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}}}
-, {"uuid": "WallpaperSwitcher@Rishu", "name": "Wallpaper Switcher", "pname": "wallpaper-switcher", "description": "Takes in the path of the folder containing wallpapers. Changes the wallpaper after given time interval. Option to switch them randomly or sequentially.", "link": "https://extensions.gnome.org/extension/4812/wallpaper-switcher/", "shell_version_map": {"38": {"version": "2", "sha256": "12biy68q57ayqxqbr8x0m4nnibrn94kb6y2rk7ly38y0qy31096a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2VzIGluIHRoZSBwYXRoIG9mIHRoZSBmb2xkZXIgY29udGFpbmluZyB3YWxscGFwZXJzLiBDaGFuZ2VzIHRoZSB3YWxscGFwZXIgYWZ0ZXIgZ2l2ZW4gdGltZSBpbnRlcnZhbC4gT3B0aW9uIHRvIHN3aXRjaCB0aGVtIHJhbmRvbWx5IG9yIHNlcXVlbnRpYWxseS4iLAogICJuYW1lIjogIldhbGxwYXBlciBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9XYWxscGFwZXJTd2l0Y2hlciIsCiAgInV1aWQiOiAiV2FsbHBhcGVyU3dpdGNoZXJAUmlzaHUiLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "2", "sha256": "12biy68q57ayqxqbr8x0m4nnibrn94kb6y2rk7ly38y0qy31096a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2VzIGluIHRoZSBwYXRoIG9mIHRoZSBmb2xkZXIgY29udGFpbmluZyB3YWxscGFwZXJzLiBDaGFuZ2VzIHRoZSB3YWxscGFwZXIgYWZ0ZXIgZ2l2ZW4gdGltZSBpbnRlcnZhbC4gT3B0aW9uIHRvIHN3aXRjaCB0aGVtIHJhbmRvbWx5IG9yIHNlcXVlbnRpYWxseS4iLAogICJuYW1lIjogIldhbGxwYXBlciBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9XYWxscGFwZXJTd2l0Y2hlciIsCiAgInV1aWQiOiAiV2FsbHBhcGVyU3dpdGNoZXJAUmlzaHUiLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "12biy68q57ayqxqbr8x0m4nnibrn94kb6y2rk7ly38y0qy31096a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2VzIGluIHRoZSBwYXRoIG9mIHRoZSBmb2xkZXIgY29udGFpbmluZyB3YWxscGFwZXJzLiBDaGFuZ2VzIHRoZSB3YWxscGFwZXIgYWZ0ZXIgZ2l2ZW4gdGltZSBpbnRlcnZhbC4gT3B0aW9uIHRvIHN3aXRjaCB0aGVtIHJhbmRvbWx5IG9yIHNlcXVlbnRpYWxseS4iLAogICJuYW1lIjogIldhbGxwYXBlciBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9XYWxscGFwZXJTd2l0Y2hlciIsCiAgInV1aWQiOiAiV2FsbHBhcGVyU3dpdGNoZXJAUmlzaHUiLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "WallpaperSwitcher@Rishu", "name": "Wallpaper Switcher", "pname": "wallpaper-switcher", "description": "Extension to automatically Change wallpaper after a given interval", "link": "https://extensions.gnome.org/extension/4812/wallpaper-switcher/", "shell_version_map": {"38": {"version": "3", "sha256": "0a1zkl3dfdbql6d1n7f2l2xi77p8f6vq1f96gyny17vxpjbhghbv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBhdXRvbWF0aWNhbGx5IENoYW5nZSB3YWxscGFwZXIgYWZ0ZXIgYSBnaXZlbiBpbnRlcnZhbCIsCiAgIm5hbWUiOiAiV2FsbHBhcGVyIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9XYWxscGFwZXJTd2l0Y2hlciIsCiAgInV1aWQiOiAiV2FsbHBhcGVyU3dpdGNoZXJAUmlzaHUiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "0a1zkl3dfdbql6d1n7f2l2xi77p8f6vq1f96gyny17vxpjbhghbv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBhdXRvbWF0aWNhbGx5IENoYW5nZSB3YWxscGFwZXIgYWZ0ZXIgYSBnaXZlbiBpbnRlcnZhbCIsCiAgIm5hbWUiOiAiV2FsbHBhcGVyIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9XYWxscGFwZXJTd2l0Y2hlciIsCiAgInV1aWQiOiAiV2FsbHBhcGVyU3dpdGNoZXJAUmlzaHUiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "0a1zkl3dfdbql6d1n7f2l2xi77p8f6vq1f96gyny17vxpjbhghbv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBhdXRvbWF0aWNhbGx5IENoYW5nZSB3YWxscGFwZXIgYWZ0ZXIgYSBnaXZlbiBpbnRlcnZhbCIsCiAgIm5hbWUiOiAiV2FsbHBhcGVyIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9XYWxscGFwZXJTd2l0Y2hlciIsCiAgInV1aWQiOiAiV2FsbHBhcGVyU3dpdGNoZXJAUmlzaHUiLAogICJ2ZXJzaW9uIjogMwp9"}, "42": {"version": "3", "sha256": "0a1zkl3dfdbql6d1n7f2l2xi77p8f6vq1f96gyny17vxpjbhghbv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBhdXRvbWF0aWNhbGx5IENoYW5nZSB3YWxscGFwZXIgYWZ0ZXIgYSBnaXZlbiBpbnRlcnZhbCIsCiAgIm5hbWUiOiAiV2FsbHBhcGVyIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9XYWxscGFwZXJTd2l0Y2hlciIsCiAgInV1aWQiOiAiV2FsbHBhcGVyU3dpdGNoZXJAUmlzaHUiLAogICJ2ZXJzaW9uIjogMwp9"}}}
 , {"uuid": "areustatus@carissimi.eu", "name": "AREU Status", "pname": "areu-status", "description": "Displays the number of ambulances that are in a mission in Lombardy, Italy", "link": "https://extensions.gnome.org/extension/4814/areu-status/", "shell_version_map": {"38": {"version": "2", "sha256": "1jycm5xgzp1ph4h9j9m5ki0rn5wabh6gwblc1bc3fn6bx1zplymy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHRoZSBudW1iZXIgb2YgYW1idWxhbmNlcyB0aGF0IGFyZSBpbiBhIG1pc3Npb24gaW4gTG9tYmFyZHksIEl0YWx5IiwKICAibmFtZSI6ICJBUkVVIFN0YXR1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vci1jYXJpc3NpbWkvYXJldS1zdGF0dXMtZ25vbWUiLAogICJ1dWlkIjogImFyZXVzdGF0dXNAY2FyaXNzaW1pLmV1IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "1jycm5xgzp1ph4h9j9m5ki0rn5wabh6gwblc1bc3fn6bx1zplymy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHRoZSBudW1iZXIgb2YgYW1idWxhbmNlcyB0aGF0IGFyZSBpbiBhIG1pc3Npb24gaW4gTG9tYmFyZHksIEl0YWx5IiwKICAibmFtZSI6ICJBUkVVIFN0YXR1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vci1jYXJpc3NpbWkvYXJldS1zdGF0dXMtZ25vbWUiLAogICJ1dWlkIjogImFyZXVzdGF0dXNAY2FyaXNzaW1pLmV1IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "41": {"version": "2", "sha256": "1jycm5xgzp1ph4h9j9m5ki0rn5wabh6gwblc1bc3fn6bx1zplymy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHRoZSBudW1iZXIgb2YgYW1idWxhbmNlcyB0aGF0IGFyZSBpbiBhIG1pc3Npb24gaW4gTG9tYmFyZHksIEl0YWx5IiwKICAibmFtZSI6ICJBUkVVIFN0YXR1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vci1jYXJpc3NpbWkvYXJldS1zdGF0dXMtZ25vbWUiLAogICJ1dWlkIjogImFyZXVzdGF0dXNAY2FyaXNzaW1pLmV1IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "colorful-battery-indicator@aneruam", "name": "Colorful Battery Indicator", "pname": "colorful-battery-indicator", "description": "Make the color of the battery indicator change with the level of battery charge.", "link": "https://extensions.gnome.org/extension/4817/colorful-battery-indicator/", "shell_version_map": {"38": {"version": "4", "sha256": "0ypm2scrfffk6pl9plk7h8p7bnw0n29a1xyf9r4xdgb32j2fvs3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIGNvbG9yIG9mIHRoZSBiYXR0ZXJ5IGluZGljYXRvciBjaGFuZ2Ugd2l0aCB0aGUgbGV2ZWwgb2YgYmF0dGVyeSBjaGFyZ2UuIiwKICAibmFtZSI6ICJDb2xvcmZ1bCBCYXR0ZXJ5IEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmVydWEvZ25vbWUtY29sb3JmdWwtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImNvbG9yZnVsLWJhdHRlcnktaW5kaWNhdG9yQGFuZXJ1YW0iLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "0ypm2scrfffk6pl9plk7h8p7bnw0n29a1xyf9r4xdgb32j2fvs3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIGNvbG9yIG9mIHRoZSBiYXR0ZXJ5IGluZGljYXRvciBjaGFuZ2Ugd2l0aCB0aGUgbGV2ZWwgb2YgYmF0dGVyeSBjaGFyZ2UuIiwKICAibmFtZSI6ICJDb2xvcmZ1bCBCYXR0ZXJ5IEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmVydWEvZ25vbWUtY29sb3JmdWwtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImNvbG9yZnVsLWJhdHRlcnktaW5kaWNhdG9yQGFuZXJ1YW0iLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "inactivity@fedeantuna.github.io", "name": "Inactivity", "pname": "inactivity", "description": "Hide Activities Button on the top panel.", "link": "https://extensions.gnome.org/extension/4818/inactivity/", "shell_version_map": {"41": {"version": "1", "sha256": "1qc16xhgp2wachcxw9ivf8r4nai2k0xj9vph8k0zvc0shwkpjzag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgQWN0aXZpdGllcyBCdXR0b24gb24gdGhlIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIkluYWN0aXZpdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmVkZWFudHVuYS9pbmFjdGl2aXR5IiwKICAidXVpZCI6ICJpbmFjdGl2aXR5QGZlZGVhbnR1bmEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
-, {"uuid": "m3u8-play@eexpss.gmail.com", "name": "M3U8 Play", "pname": "m3u8-play", "description": "* M3U8 Play. Search and select to play (use `ffplay/ffmpeg`). `m3u8` files need put into `~/.local/share/m3u8-play/`", "link": "https://extensions.gnome.org/extension/4824/m3u8-play/", "shell_version_map": {"40": {"version": "7", "sha256": "0vqnmpcd6aqqq5g206288ziqzbdv6vcbg61ki6lvgg6j0in5bc83", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogTTNVOCBQbGF5LiBTZWFyY2ggYW5kIHNlbGVjdCB0byBwbGF5ICh1c2UgYGZmcGxheS9mZm1wZWdgKS4gYG0zdThgIGZpbGVzIG5lZWQgcHV0IGludG8gYH4vLmxvY2FsL3NoYXJlL20zdTgtcGxheS9gIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibTN1OC1wbGF5IiwKICAibmFtZSI6ICJNM1U4IFBsYXkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lZXhwcmVzcy9nbm9tZS1zaGVsbC1tM3U4LXBsYXkvIiwKICAidXVpZCI6ICJtM3U4LXBsYXlAZWV4cHNzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "0vqnmpcd6aqqq5g206288ziqzbdv6vcbg61ki6lvgg6j0in5bc83", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogTTNVOCBQbGF5LiBTZWFyY2ggYW5kIHNlbGVjdCB0byBwbGF5ICh1c2UgYGZmcGxheS9mZm1wZWdgKS4gYG0zdThgIGZpbGVzIG5lZWQgcHV0IGludG8gYH4vLmxvY2FsL3NoYXJlL20zdTgtcGxheS9gIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibTN1OC1wbGF5IiwKICAibmFtZSI6ICJNM1U4IFBsYXkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lZXhwcmVzcy9nbm9tZS1zaGVsbC1tM3U4LXBsYXkvIiwKICAidXVpZCI6ICJtM3U4LXBsYXlAZWV4cHNzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "42": {"version": "7", "sha256": "0vqnmpcd6aqqq5g206288ziqzbdv6vcbg61ki6lvgg6j0in5bc83", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogTTNVOCBQbGF5LiBTZWFyY2ggYW5kIHNlbGVjdCB0byBwbGF5ICh1c2UgYGZmcGxheS9mZm1wZWdgKS4gYG0zdThgIGZpbGVzIG5lZWQgcHV0IGludG8gYH4vLmxvY2FsL3NoYXJlL20zdTgtcGxheS9gIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibTN1OC1wbGF5IiwKICAibmFtZSI6ICJNM1U4IFBsYXkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lZXhwcmVzcy9nbm9tZS1zaGVsbC1tM3U4LXBsYXkvIiwKICAidXVpZCI6ICJtM3U4LXBsYXlAZWV4cHNzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
+, {"uuid": "m3u8-play@eexpss.gmail.com", "name": "M3U8 Play", "pname": "m3u8-play", "description": "* M3U8 Play. Search and select to play (use `ffplay/ffmpeg`). `m3u8` files need put into `~/.local/share/m3u8-play/`", "link": "https://extensions.gnome.org/extension/4824/m3u8-play/", "shell_version_map": {"40": {"version": "7", "sha256": "0bjxq76s6p6g5gdyxlflsdkccnyaca8cicm9w7i56n7i1db6r2bn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogTTNVOCBQbGF5LiBTZWFyY2ggYW5kIHNlbGVjdCB0byBwbGF5ICh1c2UgYGZmcGxheS9mZm1wZWdgKS4gYG0zdThgIGZpbGVzIG5lZWQgcHV0IGludG8gYH4vLmxvY2FsL3NoYXJlL20zdTgtcGxheS9gIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibTN1OC1wbGF5IiwKICAibmFtZSI6ICJNM1U4IFBsYXkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lZXhwcmVzcy9ncy1tM3U4LXBsYXkvIiwKICAidXVpZCI6ICJtM3U4LXBsYXlAZWV4cHNzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "0bjxq76s6p6g5gdyxlflsdkccnyaca8cicm9w7i56n7i1db6r2bn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogTTNVOCBQbGF5LiBTZWFyY2ggYW5kIHNlbGVjdCB0byBwbGF5ICh1c2UgYGZmcGxheS9mZm1wZWdgKS4gYG0zdThgIGZpbGVzIG5lZWQgcHV0IGludG8gYH4vLmxvY2FsL3NoYXJlL20zdTgtcGxheS9gIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibTN1OC1wbGF5IiwKICAibmFtZSI6ICJNM1U4IFBsYXkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lZXhwcmVzcy9ncy1tM3U4LXBsYXkvIiwKICAidXVpZCI6ICJtM3U4LXBsYXlAZWV4cHNzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "42": {"version": "7", "sha256": "0bjxq76s6p6g5gdyxlflsdkccnyaca8cicm9w7i56n7i1db6r2bn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogTTNVOCBQbGF5LiBTZWFyY2ggYW5kIHNlbGVjdCB0byBwbGF5ICh1c2UgYGZmcGxheS9mZm1wZWdgKS4gYG0zdThgIGZpbGVzIG5lZWQgcHV0IGludG8gYH4vLmxvY2FsL3NoYXJlL20zdTgtcGxheS9gIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibTN1OC1wbGF5IiwKICAibmFtZSI6ICJNM1U4IFBsYXkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lZXhwcmVzcy9ncy1tM3U4LXBsYXkvIiwKICAidXVpZCI6ICJtM3U4LXBsYXlAZWV4cHNzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
 , {"uuid": "gnome-edge-gap@necropolina", "name": "Edge Gap", "pname": "edge-gap", "description": "add configurable-width gaps around the edge of your screen", "link": "https://extensions.gnome.org/extension/4827/edge-gap/", "shell_version_map": {"40": {"version": "3", "sha256": "12shbvqdj6834lvw23s9z4f3ayhvma363yvzga0m85x0fzs6bna5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImFkZCBjb25maWd1cmFibGUtd2lkdGggZ2FwcyBhcm91bmQgdGhlIGVkZ2Ugb2YgeW91ciBzY3JlZW4iLAogICJuYW1lIjogIkVkZ2UgR2FwIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lLWVkZ2UtZ2FwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmVjcm9wb2xpbmEvZ25vbWUtZWRnZS1nYXAiLAogICJ1dWlkIjogImdub21lLWVkZ2UtZ2FwQG5lY3JvcG9saW5hIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "3", "sha256": "12shbvqdj6834lvw23s9z4f3ayhvma363yvzga0m85x0fzs6bna5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImFkZCBjb25maWd1cmFibGUtd2lkdGggZ2FwcyBhcm91bmQgdGhlIGVkZ2Ugb2YgeW91ciBzY3JlZW4iLAogICJuYW1lIjogIkVkZ2UgR2FwIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lLWVkZ2UtZ2FwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmVjcm9wb2xpbmEvZ25vbWUtZWRnZS1nYXAiLAogICJ1dWlkIjogImdub21lLWVkZ2UtZ2FwQG5lY3JvcG9saW5hIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "42": {"version": "3", "sha256": "12shbvqdj6834lvw23s9z4f3ayhvma363yvzga0m85x0fzs6bna5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImFkZCBjb25maWd1cmFibGUtd2lkdGggZ2FwcyBhcm91bmQgdGhlIGVkZ2Ugb2YgeW91ciBzY3JlZW4iLAogICJuYW1lIjogIkVkZ2UgR2FwIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lLWVkZ2UtZ2FwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmVjcm9wb2xpbmEvZ25vbWUtZWRnZS1nYXAiLAogICJ1dWlkIjogImdub21lLWVkZ2UtZ2FwQG5lY3JvcG9saW5hIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
 , {"uuid": "overview-keyboard-navigation@G-dH.github.com", "name": "Overview Keyboard Navigation Fix", "pname": "overview-keyboard-navigation-fix", "description": "Fix for GNOME Shell 40 and 41 that initiates keyboard navigation in the Activities overview and App Grid by pressing Tab or Arrow keys. It also changes Esc key behavior in the App Grid view - Esc closes the Overview instead of activating Windows Overview.", "link": "https://extensions.gnome.org/extension/4830/overview-keyboard-navigation-fix/", "shell_version_map": {"40": {"version": "2", "sha256": "12l9j8rcs61j1l375nm7dxbhhs3qw4y5i0hsdxcpq9jn7880y4f3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBmb3IgR05PTUUgU2hlbGwgNDAgYW5kIDQxIHRoYXQgaW5pdGlhdGVzIGtleWJvYXJkIG5hdmlnYXRpb24gaW4gdGhlIEFjdGl2aXRpZXMgb3ZlcnZpZXcgYW5kIEFwcCBHcmlkIGJ5IHByZXNzaW5nIFRhYiBvciBBcnJvdyBrZXlzLiBJdCBhbHNvIGNoYW5nZXMgRXNjIGtleSBiZWhhdmlvciBpbiB0aGUgQXBwIEdyaWQgdmlldyAtIEVzYyBjbG9zZXMgdGhlIE92ZXJ2aWV3IGluc3RlYWQgb2YgYWN0aXZhdGluZyBXaW5kb3dzIE92ZXJ2aWV3LiIsCiAgImdldHRleHQtZG9tYWluIjogIm92ZXJ2aWV3LWtleWJvYXJkLW5hdmlnYXRpb24tZml4IiwKICAibmFtZSI6ICJPdmVydmlldyBLZXlib2FyZCBOYXZpZ2F0aW9uIEZpeCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW92ZXJ2aWV3LWtleWJvYXJkLW5hdmlnYXRpb24iLAogICJ1dWlkIjogIm92ZXJ2aWV3LWtleWJvYXJkLW5hdmlnYXRpb25ARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "41": {"version": "2", "sha256": "12l9j8rcs61j1l375nm7dxbhhs3qw4y5i0hsdxcpq9jn7880y4f3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBmb3IgR05PTUUgU2hlbGwgNDAgYW5kIDQxIHRoYXQgaW5pdGlhdGVzIGtleWJvYXJkIG5hdmlnYXRpb24gaW4gdGhlIEFjdGl2aXRpZXMgb3ZlcnZpZXcgYW5kIEFwcCBHcmlkIGJ5IHByZXNzaW5nIFRhYiBvciBBcnJvdyBrZXlzLiBJdCBhbHNvIGNoYW5nZXMgRXNjIGtleSBiZWhhdmlvciBpbiB0aGUgQXBwIEdyaWQgdmlldyAtIEVzYyBjbG9zZXMgdGhlIE92ZXJ2aWV3IGluc3RlYWQgb2YgYWN0aXZhdGluZyBXaW5kb3dzIE92ZXJ2aWV3LiIsCiAgImdldHRleHQtZG9tYWluIjogIm92ZXJ2aWV3LWtleWJvYXJkLW5hdmlnYXRpb24tZml4IiwKICAibmFtZSI6ICJPdmVydmlldyBLZXlib2FyZCBOYXZpZ2F0aW9uIEZpeCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW92ZXJ2aWV3LWtleWJvYXJkLW5hdmlnYXRpb24iLAogICJ1dWlkIjogIm92ZXJ2aWV3LWtleWJvYXJkLW5hdmlnYXRpb25ARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "42": {"version": "2", "sha256": "12l9j8rcs61j1l375nm7dxbhhs3qw4y5i0hsdxcpq9jn7880y4f3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBmb3IgR05PTUUgU2hlbGwgNDAgYW5kIDQxIHRoYXQgaW5pdGlhdGVzIGtleWJvYXJkIG5hdmlnYXRpb24gaW4gdGhlIEFjdGl2aXRpZXMgb3ZlcnZpZXcgYW5kIEFwcCBHcmlkIGJ5IHByZXNzaW5nIFRhYiBvciBBcnJvdyBrZXlzLiBJdCBhbHNvIGNoYW5nZXMgRXNjIGtleSBiZWhhdmlvciBpbiB0aGUgQXBwIEdyaWQgdmlldyAtIEVzYyBjbG9zZXMgdGhlIE92ZXJ2aWV3IGluc3RlYWQgb2YgYWN0aXZhdGluZyBXaW5kb3dzIE92ZXJ2aWV3LiIsCiAgImdldHRleHQtZG9tYWluIjogIm92ZXJ2aWV3LWtleWJvYXJkLW5hdmlnYXRpb24tZml4IiwKICAibmFtZSI6ICJPdmVydmlldyBLZXlib2FyZCBOYXZpZ2F0aW9uIEZpeCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW92ZXJ2aWV3LWtleWJvYXJkLW5hdmlnYXRpb24iLAogICJ1dWlkIjogIm92ZXJ2aWV3LWtleWJvYXJkLW5hdmlnYXRpb25ARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "all-windows-srwp@jkavery.github.io", "name": "All Windows + Save/Restore Window Positions", "pname": "all-windows-saverestore-window-positions", "description": "List open windows of all workspaces, plus Save/Restore window positions (run automatically on Suspend/Resume, a workaround for Ubuntu bug #1778983).", "link": "https://extensions.gnome.org/extension/4833/all-windows-saverestore-window-positions/", "shell_version_map": {"40": {"version": "1", "sha256": "1ppgrvmf7lxzqig02p80bh3laxx8bhq6harza82qm8djj62g6kkk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3Qgb3BlbiB3aW5kb3dzIG9mIGFsbCB3b3Jrc3BhY2VzLCBwbHVzIFNhdmUvUmVzdG9yZSB3aW5kb3cgcG9zaXRpb25zIChydW4gYXV0b21hdGljYWxseSBvbiBTdXNwZW5kL1Jlc3VtZSwgYSB3b3JrYXJvdW5kIGZvciBVYnVudHUgYnVnICMxNzc4OTgzKS4iLAogICJuYW1lIjogIkFsbCBXaW5kb3dzICsgU2F2ZS9SZXN0b3JlIFdpbmRvdyBQb3NpdGlvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamthdmVyeS9hbGwtd2luZG93cyIsCiAgInV1aWQiOiAiYWxsLXdpbmRvd3Mtc3J3cEBqa2F2ZXJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxCn0="}}}
-, {"uuid": "clipboard-history@alexsaveau.dev", "name": "Clipboard History", "pname": "clipboard-history", "description": "Gnome Clipboard History is a Gnome extension that saves items you've copied into an easily accessible, searchable history panel.", "link": "https://extensions.gnome.org/extension/4839/clipboard-history/", "shell_version_map": {"40": {"version": "11", "sha256": "19i9q4v5qdqhvz7xx648iqv3kawdq1mabc0v4w4fl1bjwnmzjza5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAibmFtZSI6ICJDbGlwYm9hcmQgSGlzdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NVUEVSQ0lMRVgvZ25vbWUtY2xpcGJvYXJkLWhpc3RvcnkiLAogICJ1dWlkIjogImNsaXBib2FyZC1oaXN0b3J5QGFsZXhzYXZlYXUuZGV2IiwKICAidmVyc2lvbiI6IDExCn0="}, "41": {"version": "11", "sha256": "19i9q4v5qdqhvz7xx648iqv3kawdq1mabc0v4w4fl1bjwnmzjza5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAibmFtZSI6ICJDbGlwYm9hcmQgSGlzdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NVUEVSQ0lMRVgvZ25vbWUtY2xpcGJvYXJkLWhpc3RvcnkiLAogICJ1dWlkIjogImNsaXBib2FyZC1oaXN0b3J5QGFsZXhzYXZlYXUuZGV2IiwKICAidmVyc2lvbiI6IDExCn0="}, "42": {"version": "11", "sha256": "19i9q4v5qdqhvz7xx648iqv3kawdq1mabc0v4w4fl1bjwnmzjza5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAibmFtZSI6ICJDbGlwYm9hcmQgSGlzdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NVUEVSQ0lMRVgvZ25vbWUtY2xpcGJvYXJkLWhpc3RvcnkiLAogICJ1dWlkIjogImNsaXBib2FyZC1oaXN0b3J5QGFsZXhzYXZlYXUuZGV2IiwKICAidmVyc2lvbiI6IDExCn0="}}}
+, {"uuid": "clipboard-history@alexsaveau.dev", "name": "Clipboard History", "pname": "clipboard-history", "description": "Gnome Clipboard History is a Gnome extension that saves items you've copied into an easily accessible, searchable history panel.", "link": "https://extensions.gnome.org/extension/4839/clipboard-history/", "shell_version_map": {"40": {"version": "15", "sha256": "0y7gnpcjq871h1zadvd7j729qi2gii1k73l35m3rafnz8ns5vh5g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAibmFtZSI6ICJDbGlwYm9hcmQgSGlzdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NVUEVSQ0lMRVgvZ25vbWUtY2xpcGJvYXJkLWhpc3RvcnkiLAogICJ1dWlkIjogImNsaXBib2FyZC1oaXN0b3J5QGFsZXhzYXZlYXUuZGV2IiwKICAidmVyc2lvbiI6IDE1Cn0="}, "41": {"version": "15", "sha256": "0y7gnpcjq871h1zadvd7j729qi2gii1k73l35m3rafnz8ns5vh5g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAibmFtZSI6ICJDbGlwYm9hcmQgSGlzdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NVUEVSQ0lMRVgvZ25vbWUtY2xpcGJvYXJkLWhpc3RvcnkiLAogICJ1dWlkIjogImNsaXBib2FyZC1oaXN0b3J5QGFsZXhzYXZlYXUuZGV2IiwKICAidmVyc2lvbiI6IDE1Cn0="}, "42": {"version": "15", "sha256": "0y7gnpcjq871h1zadvd7j729qi2gii1k73l35m3rafnz8ns5vh5g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAibmFtZSI6ICJDbGlwYm9hcmQgSGlzdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NVUEVSQ0lMRVgvZ25vbWUtY2xpcGJvYXJkLWhpc3RvcnkiLAogICJ1dWlkIjogImNsaXBib2FyZC1oaXN0b3J5QGFsZXhzYXZlYXUuZGV2IiwKICAidmVyc2lvbiI6IDE1Cn0="}}}
 , {"uuid": "strongdm@andybrown668.github.com", "name": "StrongDM", "pname": "strongdm", "description": "Access StrongDM resources", "link": "https://extensions.gnome.org/extension/4841/strongdm/", "shell_version_map": {"40": {"version": "1", "sha256": "0bk75y3i8f82bmv20vnhar37yni6ydlcdixc89npc9iiyj1a5mwg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyBTdHJvbmdETSByZXNvdXJjZXMiLAogICJuYW1lIjogIlN0cm9uZ0RNIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FuZHlicm93bjY2OC9zdHJvbmdkbS1nbm9tZS1zaGVsbC1leHRlbnNpb24uZ2l0IiwKICAidXVpZCI6ICJzdHJvbmdkbUBhbmR5YnJvd242NjguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "pop-theme-switcher@dimitris47", "name": "Pop Theme Switcher", "pname": "pop-theme-switcher", "description": "Switch between Pop dark and light themes. It is a fork of adwaita-theme-switcher (https://github.com/fthx/adwaita-theme-switcher).", "link": "https://extensions.gnome.org/extension/4844/pop-theme-switcher/", "shell_version_map": {"38": {"version": "2", "sha256": "0z28xmqdbhvx6cvs4r2rrlyg3r22y5rldlm7dir5hjwyad1qwar2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCBiZXR3ZWVuIFBvcCBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIEl0IGlzIGEgZm9yayBvZiBhZHdhaXRhLXRoZW1lLXN3aXRjaGVyIChodHRwczovL2dpdGh1Yi5jb20vZnRoeC9hZHdhaXRhLXRoZW1lLXN3aXRjaGVyKS4iLAogICJuYW1lIjogIlBvcCBUaGVtZSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGltaXRyaXM0Ny9wb3AtdGhlbWUtc3dpdGNoZXIiLAogICJ1dWlkIjogInBvcC10aGVtZS1zd2l0Y2hlckBkaW1pdHJpczQ3IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "0z28xmqdbhvx6cvs4r2rrlyg3r22y5rldlm7dir5hjwyad1qwar2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCBiZXR3ZWVuIFBvcCBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIEl0IGlzIGEgZm9yayBvZiBhZHdhaXRhLXRoZW1lLXN3aXRjaGVyIChodHRwczovL2dpdGh1Yi5jb20vZnRoeC9hZHdhaXRhLXRoZW1lLXN3aXRjaGVyKS4iLAogICJuYW1lIjogIlBvcCBUaGVtZSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGltaXRyaXM0Ny9wb3AtdGhlbWUtc3dpdGNoZXIiLAogICJ1dWlkIjogInBvcC10aGVtZS1zd2l0Y2hlckBkaW1pdHJpczQ3IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "41": {"version": "2", "sha256": "0z28xmqdbhvx6cvs4r2rrlyg3r22y5rldlm7dir5hjwyad1qwar2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCBiZXR3ZWVuIFBvcCBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIEl0IGlzIGEgZm9yayBvZiBhZHdhaXRhLXRoZW1lLXN3aXRjaGVyIChodHRwczovL2dpdGh1Yi5jb20vZnRoeC9hZHdhaXRhLXRoZW1lLXN3aXRjaGVyKS4iLAogICJuYW1lIjogIlBvcCBUaGVtZSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGltaXRyaXM0Ny9wb3AtdGhlbWUtc3dpdGNoZXIiLAogICJ1dWlkIjogInBvcC10aGVtZS1zd2l0Y2hlckBkaW1pdHJpczQ3IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "dash-to-dock-toggle@kavoyaa.github.com", "name": "Dash to Dock Toggle", "pname": "dash-to-dock-toggle", "description": "Adds a button to top panel to switch Dash to Dock mode between \"always visible\" and \"autohide\".\n\n(Works only with the Dash-to-Dock extension)", "link": "https://extensions.gnome.org/extension/4845/dash-to-dock-toggle/", "shell_version_map": {"40": {"version": "2", "sha256": "0fy9wv78qhipsy5rqdbygi74ycgryvqm98svmpbzhbgg3rb8mdxs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBidXR0b24gdG8gdG9wIHBhbmVsIHRvIHN3aXRjaCBEYXNoIHRvIERvY2sgbW9kZSBiZXR3ZWVuIFwiYWx3YXlzIHZpc2libGVcIiBhbmQgXCJhdXRvaGlkZVwiLlxuXG4oV29ya3Mgb25seSB3aXRoIHRoZSBEYXNoLXRvLURvY2sgZXh0ZW5zaW9uKSIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIFRvZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrLXRvZ2dsZUBrYXZveWFhLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
-, {"uuid": "open@eexpss.gmail.com", "name": "Open Anywhere", "pname": "open-anywhere", "description": "* Copy / Select a full path file / directory name, or incomplete path, or pure file name. Open a context menu to let you choose how to open it, or press Ctrl-Shift-O directlly.", "link": "https://extensions.gnome.org/extension/4848/open-anywhere/", "shell_version_map": {"40": {"version": "4", "sha256": "1bgja2rrggli16k991m88hbr54rj570ryp3if8kqcs75hn2cgf0b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQ29weSAvIFNlbGVjdCBhIGZ1bGwgcGF0aCBmaWxlIC8gZGlyZWN0b3J5IG5hbWUsIG9yIGluY29tcGxldGUgcGF0aCwgb3IgcHVyZSBmaWxlIG5hbWUuIE9wZW4gYSBjb250ZXh0IG1lbnUgdG8gbGV0IHlvdSBjaG9vc2UgaG93IHRvIG9wZW4gaXQsIG9yIHByZXNzIEN0cmwtU2hpZnQtTyBkaXJlY3RsbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAib3BlbiIsCiAgIm5hbWUiOiAiT3BlbiBBbnl3aGVyZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcGVuIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ25vbWUtc2hlbGwtb3BlbiIsCiAgInV1aWQiOiAib3BlbkBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1bgja2rrggli16k991m88hbr54rj570ryp3if8kqcs75hn2cgf0b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQ29weSAvIFNlbGVjdCBhIGZ1bGwgcGF0aCBmaWxlIC8gZGlyZWN0b3J5IG5hbWUsIG9yIGluY29tcGxldGUgcGF0aCwgb3IgcHVyZSBmaWxlIG5hbWUuIE9wZW4gYSBjb250ZXh0IG1lbnUgdG8gbGV0IHlvdSBjaG9vc2UgaG93IHRvIG9wZW4gaXQsIG9yIHByZXNzIEN0cmwtU2hpZnQtTyBkaXJlY3RsbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAib3BlbiIsCiAgIm5hbWUiOiAiT3BlbiBBbnl3aGVyZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcGVuIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ25vbWUtc2hlbGwtb3BlbiIsCiAgInV1aWQiOiAib3BlbkBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "42": {"version": "4", "sha256": "1bgja2rrggli16k991m88hbr54rj570ryp3if8kqcs75hn2cgf0b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQ29weSAvIFNlbGVjdCBhIGZ1bGwgcGF0aCBmaWxlIC8gZGlyZWN0b3J5IG5hbWUsIG9yIGluY29tcGxldGUgcGF0aCwgb3IgcHVyZSBmaWxlIG5hbWUuIE9wZW4gYSBjb250ZXh0IG1lbnUgdG8gbGV0IHlvdSBjaG9vc2UgaG93IHRvIG9wZW4gaXQsIG9yIHByZXNzIEN0cmwtU2hpZnQtTyBkaXJlY3RsbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAib3BlbiIsCiAgIm5hbWUiOiAiT3BlbiBBbnl3aGVyZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcGVuIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ25vbWUtc2hlbGwtb3BlbiIsCiAgInV1aWQiOiAib3BlbkBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "open@eexpss.gmail.com", "name": "Open Anywhere", "pname": "open-anywhere", "description": "* Copy / Select a full path file / directory name, or incomplete path, or pure file name. Open a context menu to let you choose how to open it, or press Ctrl-Shift-O directlly.", "link": "https://extensions.gnome.org/extension/4848/open-anywhere/", "shell_version_map": {"40": {"version": "4", "sha256": "00lcrb7ijn587wq6sxm1x3mlgr02s691l1r7cgl6vmn1i6rsf5rm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQ29weSAvIFNlbGVjdCBhIGZ1bGwgcGF0aCBmaWxlIC8gZGlyZWN0b3J5IG5hbWUsIG9yIGluY29tcGxldGUgcGF0aCwgb3IgcHVyZSBmaWxlIG5hbWUuIE9wZW4gYSBjb250ZXh0IG1lbnUgdG8gbGV0IHlvdSBjaG9vc2UgaG93IHRvIG9wZW4gaXQsIG9yIHByZXNzIEN0cmwtU2hpZnQtTyBkaXJlY3RsbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAib3BlbiIsCiAgIm5hbWUiOiAiT3BlbiBBbnl3aGVyZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcGVuIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3Mtb3BlbiIsCiAgInV1aWQiOiAib3BlbkBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "00lcrb7ijn587wq6sxm1x3mlgr02s691l1r7cgl6vmn1i6rsf5rm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQ29weSAvIFNlbGVjdCBhIGZ1bGwgcGF0aCBmaWxlIC8gZGlyZWN0b3J5IG5hbWUsIG9yIGluY29tcGxldGUgcGF0aCwgb3IgcHVyZSBmaWxlIG5hbWUuIE9wZW4gYSBjb250ZXh0IG1lbnUgdG8gbGV0IHlvdSBjaG9vc2UgaG93IHRvIG9wZW4gaXQsIG9yIHByZXNzIEN0cmwtU2hpZnQtTyBkaXJlY3RsbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAib3BlbiIsCiAgIm5hbWUiOiAiT3BlbiBBbnl3aGVyZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcGVuIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3Mtb3BlbiIsCiAgInV1aWQiOiAib3BlbkBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "42": {"version": "4", "sha256": "00lcrb7ijn587wq6sxm1x3mlgr02s691l1r7cgl6vmn1i6rsf5rm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQ29weSAvIFNlbGVjdCBhIGZ1bGwgcGF0aCBmaWxlIC8gZGlyZWN0b3J5IG5hbWUsIG9yIGluY29tcGxldGUgcGF0aCwgb3IgcHVyZSBmaWxlIG5hbWUuIE9wZW4gYSBjb250ZXh0IG1lbnUgdG8gbGV0IHlvdSBjaG9vc2UgaG93IHRvIG9wZW4gaXQsIG9yIHByZXNzIEN0cmwtU2hpZnQtTyBkaXJlY3RsbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAib3BlbiIsCiAgIm5hbWUiOiAiT3BlbiBBbnl3aGVyZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcGVuIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3Mtb3BlbiIsCiAgInV1aWQiOiAib3BlbkBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "command-menu@arunk140.com", "name": "Command Menu", "pname": "command-menu", "description": "A GNOME Shell Extension to manage shortcuts in Top Bar (Inspired by Shuttle and SSHMenu). Edit the .commands.json file to add your own shortcuts.\n\nSample Config in the README - https://github.com/arunk140/gnome-command-menu/blob/main/README.md", "link": "https://extensions.gnome.org/extension/4850/command-menu/", "shell_version_map": {"40": {"version": "3", "sha256": "0sf063fkwfjnp56406hirsiadmpv79za162k80n82pl6r837qw1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgRXh0ZW5zaW9uIHRvIG1hbmFnZSBzaG9ydGN1dHMgaW4gVG9wIEJhciAoSW5zcGlyZWQgYnkgU2h1dHRsZSBhbmQgU1NITWVudSkuIEVkaXQgdGhlIC5jb21tYW5kcy5qc29uIGZpbGUgdG8gYWRkIHlvdXIgb3duIHNob3J0Y3V0cy5cblxuU2FtcGxlIENvbmZpZyBpbiB0aGUgUkVBRE1FIC0gaHR0cHM6Ly9naXRodWIuY29tL2FydW5rMTQwL2dub21lLWNvbW1hbmQtbWVudS9ibG9iL21haW4vUkVBRE1FLm1kIiwKICAibmFtZSI6ICJDb21tYW5kIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FydW5rMTQwL2dub21lLWNvbW1hbmQtbWVudSIsCiAgInV1aWQiOiAiY29tbWFuZC1tZW51QGFydW5rMTQwLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "0sf063fkwfjnp56406hirsiadmpv79za162k80n82pl6r837qw1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgRXh0ZW5zaW9uIHRvIG1hbmFnZSBzaG9ydGN1dHMgaW4gVG9wIEJhciAoSW5zcGlyZWQgYnkgU2h1dHRsZSBhbmQgU1NITWVudSkuIEVkaXQgdGhlIC5jb21tYW5kcy5qc29uIGZpbGUgdG8gYWRkIHlvdXIgb3duIHNob3J0Y3V0cy5cblxuU2FtcGxlIENvbmZpZyBpbiB0aGUgUkVBRE1FIC0gaHR0cHM6Ly9naXRodWIuY29tL2FydW5rMTQwL2dub21lLWNvbW1hbmQtbWVudS9ibG9iL21haW4vUkVBRE1FLm1kIiwKICAibmFtZSI6ICJDb21tYW5kIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FydW5rMTQwL2dub21lLWNvbW1hbmQtbWVudSIsCiAgInV1aWQiOiAiY29tbWFuZC1tZW51QGFydW5rMTQwLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "s76-scheduler@mattjakeman.com", "name": "System76 Scheduler", "pname": "system76-scheduler", "description": "Integrates with System76 Scheduler to prioritise foreground processes.\nNote: system76-scheduler must be installed separately!\nThis extension is not affiliated with nor supported by System76.", "link": "https://extensions.gnome.org/extension/4854/system76-scheduler/", "shell_version_map": {"40": {"version": "2", "sha256": "0sa3skad3vxbiqq9cy74r6s2nfadxjnjwyl9hnp4p9qwnr5qiwhq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgd2l0aCBTeXN0ZW03NiBTY2hlZHVsZXIgdG8gcHJpb3JpdGlzZSBmb3JlZ3JvdW5kIHByb2Nlc3Nlcy5cbk5vdGU6IHN5c3RlbTc2LXNjaGVkdWxlciBtdXN0IGJlIGluc3RhbGxlZCBzZXBhcmF0ZWx5IVxuVGhpcyBleHRlbnNpb24gaXMgbm90IGFmZmlsaWF0ZWQgd2l0aCBub3Igc3VwcG9ydGVkIGJ5IFN5c3RlbTc2LiIsCiAgIm5hbWUiOiAiU3lzdGVtNzYgU2NoZWR1bGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWpha2VtYW4vczc2LXNjaGVkdWxlci1wbHVnaW4vIiwKICAidXVpZCI6ICJzNzYtc2NoZWR1bGVyQG1hdHRqYWtlbWFuLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "0sa3skad3vxbiqq9cy74r6s2nfadxjnjwyl9hnp4p9qwnr5qiwhq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgd2l0aCBTeXN0ZW03NiBTY2hlZHVsZXIgdG8gcHJpb3JpdGlzZSBmb3JlZ3JvdW5kIHByb2Nlc3Nlcy5cbk5vdGU6IHN5c3RlbTc2LXNjaGVkdWxlciBtdXN0IGJlIGluc3RhbGxlZCBzZXBhcmF0ZWx5IVxuVGhpcyBleHRlbnNpb24gaXMgbm90IGFmZmlsaWF0ZWQgd2l0aCBub3Igc3VwcG9ydGVkIGJ5IFN5c3RlbTc2LiIsCiAgIm5hbWUiOiAiU3lzdGVtNzYgU2NoZWR1bGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWpha2VtYW4vczc2LXNjaGVkdWxlci1wbHVnaW4vIiwKICAidXVpZCI6ICJzNzYtc2NoZWR1bGVyQG1hdHRqYWtlbWFuLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "42": {"version": "2", "sha256": "0sa3skad3vxbiqq9cy74r6s2nfadxjnjwyl9hnp4p9qwnr5qiwhq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgd2l0aCBTeXN0ZW03NiBTY2hlZHVsZXIgdG8gcHJpb3JpdGlzZSBmb3JlZ3JvdW5kIHByb2Nlc3Nlcy5cbk5vdGU6IHN5c3RlbTc2LXNjaGVkdWxlciBtdXN0IGJlIGluc3RhbGxlZCBzZXBhcmF0ZWx5IVxuVGhpcyBleHRlbnNpb24gaXMgbm90IGFmZmlsaWF0ZWQgd2l0aCBub3Igc3VwcG9ydGVkIGJ5IFN5c3RlbTc2LiIsCiAgIm5hbWUiOiAiU3lzdGVtNzYgU2NoZWR1bGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWpha2VtYW4vczc2LXNjaGVkdWxlci1wbHVnaW4vIiwKICAidXVpZCI6ICJzNzYtc2NoZWR1bGVyQG1hdHRqYWtlbWFuLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "quarterwindows@troyready.com", "name": "Quarter Windows", "pname": "quarter-windows", "description": "Add additional window management shortcuts.\n\nSee extension homepage for list of shortcuts and commands to customize them.", "link": "https://extensions.gnome.org/extension/4857/quarter-windows/", "shell_version_map": {"41": {"version": "2", "sha256": "00yiqgswcl3psijxi46sb8bxqfxb1a9i93frb90a5292a0x7lmzi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cy5cblxuU2VlIGV4dGVuc2lvbiBob21lcGFnZSBmb3IgbGlzdCBvZiBzaG9ydGN1dHMgYW5kIGNvbW1hbmRzIHRvIGN1c3RvbWl6ZSB0aGVtLiIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
-, {"uuid": "batt_consumption_wattmetter@wennaspeedy", "name": "Battery Consumption Watt Meter", "pname": "bat_consumption_wattmeter", "description": "Shows actual charging/discharging consumption (+/-) in Watt next to battery percentage level.\nEnable percentage label when disabled.\nSync reload set to 4 seconds.\nNo consumption info when battery is full.", "link": "https://extensions.gnome.org/extension/4862/bat_consumption_wattmeter/", "shell_version_map": {"40": {"version": "5", "sha256": "10gdmcnqhy430x0n08ancw0z1mjb9fr6cg083zc7ypalbf4rfam8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGFjdHVhbCBjaGFyZ2luZy9kaXNjaGFyZ2luZyBjb25zdW1wdGlvbiAoKy8tKSBpbiBXYXR0IG5leHQgdG8gYmF0dGVyeSBwZXJjZW50YWdlIGxldmVsLlxuRW5hYmxlIHBlcmNlbnRhZ2UgbGFiZWwgd2hlbiBkaXNhYmxlZC5cblN5bmMgcmVsb2FkIHNldCB0byA0IHNlY29uZHMuXG5ObyBjb25zdW1wdGlvbiBpbmZvIHdoZW4gYmF0dGVyeSBpcyBmdWxsLiIsCiAgIm5hbWUiOiAiQmF0dGVyeSBDb25zdW1wdGlvbiBXYXR0IE1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZW5uYXNwZWVkeS9iYXR0X2NvbnN1bXB0aW9uX3dhdHRtZXR0ZXIiLAogICJ1dWlkIjogImJhdHRfY29uc3VtcHRpb25fd2F0dG1ldHRlckB3ZW5uYXNwZWVkeSIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "10gdmcnqhy430x0n08ancw0z1mjb9fr6cg083zc7ypalbf4rfam8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGFjdHVhbCBjaGFyZ2luZy9kaXNjaGFyZ2luZyBjb25zdW1wdGlvbiAoKy8tKSBpbiBXYXR0IG5leHQgdG8gYmF0dGVyeSBwZXJjZW50YWdlIGxldmVsLlxuRW5hYmxlIHBlcmNlbnRhZ2UgbGFiZWwgd2hlbiBkaXNhYmxlZC5cblN5bmMgcmVsb2FkIHNldCB0byA0IHNlY29uZHMuXG5ObyBjb25zdW1wdGlvbiBpbmZvIHdoZW4gYmF0dGVyeSBpcyBmdWxsLiIsCiAgIm5hbWUiOiAiQmF0dGVyeSBDb25zdW1wdGlvbiBXYXR0IE1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZW5uYXNwZWVkeS9iYXR0X2NvbnN1bXB0aW9uX3dhdHRtZXR0ZXIiLAogICJ1dWlkIjogImJhdHRfY29uc3VtcHRpb25fd2F0dG1ldHRlckB3ZW5uYXNwZWVkeSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
+, {"uuid": "batt_consumption_wattmetter@wennaspeedy", "name": "Battery Consumption Watt Meter", "pname": "bat_consumption_wattmeter", "description": "Shows actual charging/discharging consumption (+/-) in Watt next to battery percentage level.\nEnable percentage label when disabled.\nDefault sync reload set to 4 seconds.\nNo consumption info when battery is full.\nSettings: interval, percentage label (also when full), battery selection", "link": "https://extensions.gnome.org/extension/4862/bat_consumption_wattmeter/", "shell_version_map": {"40": {"version": "10", "sha256": "12w9xy5yd8qlqagmzaky4s1c4i6m4pmndncz3lz7299yy913wn6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGFjdHVhbCBjaGFyZ2luZy9kaXNjaGFyZ2luZyBjb25zdW1wdGlvbiAoKy8tKSBpbiBXYXR0IG5leHQgdG8gYmF0dGVyeSBwZXJjZW50YWdlIGxldmVsLlxuRW5hYmxlIHBlcmNlbnRhZ2UgbGFiZWwgd2hlbiBkaXNhYmxlZC5cbkRlZmF1bHQgc3luYyByZWxvYWQgc2V0IHRvIDQgc2Vjb25kcy5cbk5vIGNvbnN1bXB0aW9uIGluZm8gd2hlbiBiYXR0ZXJ5IGlzIGZ1bGwuXG5TZXR0aW5nczogaW50ZXJ2YWwsIHBlcmNlbnRhZ2UgbGFiZWwgKGFsc28gd2hlbiBmdWxsKSwgYmF0dGVyeSBzZWxlY3Rpb24iLAogICJuYW1lIjogIkJhdHRlcnkgQ29uc3VtcHRpb24gV2F0dCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbm5hc3BlZWR5L2JhdHRfY29uc3VtcHRpb25fd2F0dG1ldHRlciIsCiAgInV1aWQiOiAiYmF0dF9jb25zdW1wdGlvbl93YXR0bWV0dGVyQHdlbm5hc3BlZWR5IiwKICAidmVyc2lvbiI6IDEwCn0="}, "41": {"version": "10", "sha256": "12w9xy5yd8qlqagmzaky4s1c4i6m4pmndncz3lz7299yy913wn6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGFjdHVhbCBjaGFyZ2luZy9kaXNjaGFyZ2luZyBjb25zdW1wdGlvbiAoKy8tKSBpbiBXYXR0IG5leHQgdG8gYmF0dGVyeSBwZXJjZW50YWdlIGxldmVsLlxuRW5hYmxlIHBlcmNlbnRhZ2UgbGFiZWwgd2hlbiBkaXNhYmxlZC5cbkRlZmF1bHQgc3luYyByZWxvYWQgc2V0IHRvIDQgc2Vjb25kcy5cbk5vIGNvbnN1bXB0aW9uIGluZm8gd2hlbiBiYXR0ZXJ5IGlzIGZ1bGwuXG5TZXR0aW5nczogaW50ZXJ2YWwsIHBlcmNlbnRhZ2UgbGFiZWwgKGFsc28gd2hlbiBmdWxsKSwgYmF0dGVyeSBzZWxlY3Rpb24iLAogICJuYW1lIjogIkJhdHRlcnkgQ29uc3VtcHRpb24gV2F0dCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbm5hc3BlZWR5L2JhdHRfY29uc3VtcHRpb25fd2F0dG1ldHRlciIsCiAgInV1aWQiOiAiYmF0dF9jb25zdW1wdGlvbl93YXR0bWV0dGVyQHdlbm5hc3BlZWR5IiwKICAidmVyc2lvbiI6IDEwCn0="}, "42": {"version": "10", "sha256": "12w9xy5yd8qlqagmzaky4s1c4i6m4pmndncz3lz7299yy913wn6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGFjdHVhbCBjaGFyZ2luZy9kaXNjaGFyZ2luZyBjb25zdW1wdGlvbiAoKy8tKSBpbiBXYXR0IG5leHQgdG8gYmF0dGVyeSBwZXJjZW50YWdlIGxldmVsLlxuRW5hYmxlIHBlcmNlbnRhZ2UgbGFiZWwgd2hlbiBkaXNhYmxlZC5cbkRlZmF1bHQgc3luYyByZWxvYWQgc2V0IHRvIDQgc2Vjb25kcy5cbk5vIGNvbnN1bXB0aW9uIGluZm8gd2hlbiBiYXR0ZXJ5IGlzIGZ1bGwuXG5TZXR0aW5nczogaW50ZXJ2YWwsIHBlcmNlbnRhZ2UgbGFiZWwgKGFsc28gd2hlbiBmdWxsKSwgYmF0dGVyeSBzZWxlY3Rpb24iLAogICJuYW1lIjogIkJhdHRlcnkgQ29uc3VtcHRpb24gV2F0dCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbm5hc3BlZWR5L2JhdHRfY29uc3VtcHRpb25fd2F0dG1ldHRlciIsCiAgInV1aWQiOiAiYmF0dF9jb25zdW1wdGlvbl93YXR0bWV0dGVyQHdlbm5hc3BlZWR5IiwKICAidmVyc2lvbiI6IDEwCn0="}}}
 , {"uuid": "tl@l.pnx.me", "name": "tl Integration", "pname": "pnx-time-logger", "description": "Integration for github.com/larowlan/tl", "link": "https://extensions.gnome.org/extension/4866/pnx-time-logger/", "shell_version_map": {"41": {"version": "1", "sha256": "06bf9hl0xdxmpyhh0qk2zbfhx8m2gw1fwfym9rv1znh1m9ymjr8h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0aW9uIGZvciBnaXRodWIuY29tL2xhcm93bGFuL3RsIiwKICAibmFtZSI6ICJ0bCBJbnRlZ3JhdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidGxAbC5wbngubWUiLAogICJ2ZXJzaW9uIjogMQp9"}}}
-, {"uuid": "dollar-pkr@shoaibzs.github.com", "name": "Dollar-PKR", "pname": "dollar-pkr", "description": "(USD US Dollar) converted to (PKR Pakistan Rs). Updates are received every 30 seconds and are based on information provided by AwesomeAPI API, which can be consulted directly by accessing the address https://docs.awesomeapi.com.br. (based on michael.mattos's Dollar https://extensions.gnome.org/extension/4573/dollar/)", "link": "https://extensions.gnome.org/extension/4869/dollar-pkr/", "shell_version_map": {"38": {"version": "2", "sha256": "09cb6f7v3j3zfanzblj9x4wj6bpnca3v9yjfh3kjz5zl3lxy8gqs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIihVU0QgVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gKFBLUiBQYWtpc3RhbiBScykuIFVwZGF0ZXMgYXJlIHJlY2VpdmVkIGV2ZXJ5IDMwIHNlY29uZHMgYW5kIGFyZSBiYXNlZCBvbiBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSBBd2Vzb21lQVBJIEFQSSwgd2hpY2ggY2FuIGJlIGNvbnN1bHRlZCBkaXJlY3RseSBieSBhY2Nlc3NpbmcgdGhlIGFkZHJlc3MgaHR0cHM6Ly9kb2NzLmF3ZXNvbWVhcGkuY29tLmJyLiAoYmFzZWQgb24gbWljaGFlbC5tYXR0b3MncyBEb2xsYXIgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDU3My9kb2xsYXIvKSIsCiAgIm5hbWUiOiAiRG9sbGFyLVBLUiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2hvYWlienMvZG9sbGFyLXBrciIsCiAgInV1aWQiOiAiZG9sbGFyLXBrckBzaG9haWJ6cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "09cb6f7v3j3zfanzblj9x4wj6bpnca3v9yjfh3kjz5zl3lxy8gqs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIihVU0QgVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gKFBLUiBQYWtpc3RhbiBScykuIFVwZGF0ZXMgYXJlIHJlY2VpdmVkIGV2ZXJ5IDMwIHNlY29uZHMgYW5kIGFyZSBiYXNlZCBvbiBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSBBd2Vzb21lQVBJIEFQSSwgd2hpY2ggY2FuIGJlIGNvbnN1bHRlZCBkaXJlY3RseSBieSBhY2Nlc3NpbmcgdGhlIGFkZHJlc3MgaHR0cHM6Ly9kb2NzLmF3ZXNvbWVhcGkuY29tLmJyLiAoYmFzZWQgb24gbWljaGFlbC5tYXR0b3MncyBEb2xsYXIgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDU3My9kb2xsYXIvKSIsCiAgIm5hbWUiOiAiRG9sbGFyLVBLUiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2hvYWlienMvZG9sbGFyLXBrciIsCiAgInV1aWQiOiAiZG9sbGFyLXBrckBzaG9haWJ6cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "41": {"version": "2", "sha256": "09cb6f7v3j3zfanzblj9x4wj6bpnca3v9yjfh3kjz5zl3lxy8gqs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIihVU0QgVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gKFBLUiBQYWtpc3RhbiBScykuIFVwZGF0ZXMgYXJlIHJlY2VpdmVkIGV2ZXJ5IDMwIHNlY29uZHMgYW5kIGFyZSBiYXNlZCBvbiBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSBBd2Vzb21lQVBJIEFQSSwgd2hpY2ggY2FuIGJlIGNvbnN1bHRlZCBkaXJlY3RseSBieSBhY2Nlc3NpbmcgdGhlIGFkZHJlc3MgaHR0cHM6Ly9kb2NzLmF3ZXNvbWVhcGkuY29tLmJyLiAoYmFzZWQgb24gbWljaGFlbC5tYXR0b3MncyBEb2xsYXIgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDU3My9kb2xsYXIvKSIsCiAgIm5hbWUiOiAiRG9sbGFyLVBLUiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2hvYWlienMvZG9sbGFyLXBrciIsCiAgInV1aWQiOiAiZG9sbGFyLXBrckBzaG9haWJ6cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "dollar-pkr@shoaibzs.github.com", "name": "Dollar-PKR", "pname": "dollar-pkr", "description": "(USD US Dollar) converted to (PKR Pakistan Rs). Updates are received every 30 seconds and are based on information provided by AwesomeAPI API, which can be consulted directly by accessing the address https://docs.awesomeapi.com.br. (based on michael.mattos's Dollar https://extensions.gnome.org/extension/4573/dollar/)", "link": "https://extensions.gnome.org/extension/4869/dollar-pkr/", "shell_version_map": {"38": {"version": "3", "sha256": "0bqyn71jha8f7505fw0pb221qcmys9y83byppd3b4f3y08pijrw7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIihVU0QgVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gKFBLUiBQYWtpc3RhbiBScykuIFVwZGF0ZXMgYXJlIHJlY2VpdmVkIGV2ZXJ5IDMwIHNlY29uZHMgYW5kIGFyZSBiYXNlZCBvbiBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSBBd2Vzb21lQVBJIEFQSSwgd2hpY2ggY2FuIGJlIGNvbnN1bHRlZCBkaXJlY3RseSBieSBhY2Nlc3NpbmcgdGhlIGFkZHJlc3MgaHR0cHM6Ly9kb2NzLmF3ZXNvbWVhcGkuY29tLmJyLiAoYmFzZWQgb24gbWljaGFlbC5tYXR0b3MncyBEb2xsYXIgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDU3My9kb2xsYXIvKSIsCiAgIm5hbWUiOiAiRG9sbGFyLVBLUiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDEuMSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Nob2FpYnpzL2RvbGxhci1wa3IiLAogICJ1dWlkIjogImRvbGxhci1wa3JAc2hvYWlienMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "0bqyn71jha8f7505fw0pb221qcmys9y83byppd3b4f3y08pijrw7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIihVU0QgVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gKFBLUiBQYWtpc3RhbiBScykuIFVwZGF0ZXMgYXJlIHJlY2VpdmVkIGV2ZXJ5IDMwIHNlY29uZHMgYW5kIGFyZSBiYXNlZCBvbiBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSBBd2Vzb21lQVBJIEFQSSwgd2hpY2ggY2FuIGJlIGNvbnN1bHRlZCBkaXJlY3RseSBieSBhY2Nlc3NpbmcgdGhlIGFkZHJlc3MgaHR0cHM6Ly9kb2NzLmF3ZXNvbWVhcGkuY29tLmJyLiAoYmFzZWQgb24gbWljaGFlbC5tYXR0b3MncyBEb2xsYXIgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDU3My9kb2xsYXIvKSIsCiAgIm5hbWUiOiAiRG9sbGFyLVBLUiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDEuMSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Nob2FpYnpzL2RvbGxhci1wa3IiLAogICJ1dWlkIjogImRvbGxhci1wa3JAc2hvYWlienMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "0bqyn71jha8f7505fw0pb221qcmys9y83byppd3b4f3y08pijrw7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIihVU0QgVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gKFBLUiBQYWtpc3RhbiBScykuIFVwZGF0ZXMgYXJlIHJlY2VpdmVkIGV2ZXJ5IDMwIHNlY29uZHMgYW5kIGFyZSBiYXNlZCBvbiBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSBBd2Vzb21lQVBJIEFQSSwgd2hpY2ggY2FuIGJlIGNvbnN1bHRlZCBkaXJlY3RseSBieSBhY2Nlc3NpbmcgdGhlIGFkZHJlc3MgaHR0cHM6Ly9kb2NzLmF3ZXNvbWVhcGkuY29tLmJyLiAoYmFzZWQgb24gbWljaGFlbC5tYXR0b3MncyBEb2xsYXIgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDU3My9kb2xsYXIvKSIsCiAgIm5hbWUiOiAiRG9sbGFyLVBLUiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDEuMSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Nob2FpYnpzL2RvbGxhci1wa3IiLAogICJ1dWlkIjogImRvbGxhci1wa3JAc2hvYWlienMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "42": {"version": "3", "sha256": "0bqyn71jha8f7505fw0pb221qcmys9y83byppd3b4f3y08pijrw7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIihVU0QgVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gKFBLUiBQYWtpc3RhbiBScykuIFVwZGF0ZXMgYXJlIHJlY2VpdmVkIGV2ZXJ5IDMwIHNlY29uZHMgYW5kIGFyZSBiYXNlZCBvbiBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSBBd2Vzb21lQVBJIEFQSSwgd2hpY2ggY2FuIGJlIGNvbnN1bHRlZCBkaXJlY3RseSBieSBhY2Nlc3NpbmcgdGhlIGFkZHJlc3MgaHR0cHM6Ly9kb2NzLmF3ZXNvbWVhcGkuY29tLmJyLiAoYmFzZWQgb24gbWljaGFlbC5tYXR0b3MncyBEb2xsYXIgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDU3My9kb2xsYXIvKSIsCiAgIm5hbWUiOiAiRG9sbGFyLVBLUiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDEuMSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Nob2FpYnpzL2RvbGxhci1wa3IiLAogICJ1dWlkIjogImRvbGxhci1wa3JAc2hvYWlienMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "dozenalclock@mble.dk", "name": "Dozenal Clock", "pname": "dozenal-clock", "description": "Converts the clock to a dozenal one", "link": "https://extensions.gnome.org/extension/4877/dozenal-clock/", "shell_version_map": {"38": {"version": "3", "sha256": "1p7bsv89k3pz16kcjldmdnsilwc3jx1v419nvn5vj7n2xg4zvk0j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlcnRzIHRoZSBjbG9jayB0byBhIGRvemVuYWwgb25lIiwKICAibmFtZSI6ICJEb3plbmFsIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4LjEiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL21ibGVkL2RvemVuYWwtY2xvY2stZ25vbWUiLAogICJ1dWlkIjogImRvemVuYWxjbG9ja0BtYmxlLmRrIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "3", "sha256": "1p7bsv89k3pz16kcjldmdnsilwc3jx1v419nvn5vj7n2xg4zvk0j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlcnRzIHRoZSBjbG9jayB0byBhIGRvemVuYWwgb25lIiwKICAibmFtZSI6ICJEb3plbmFsIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4LjEiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL21ibGVkL2RvemVuYWwtY2xvY2stZ25vbWUiLAogICJ1dWlkIjogImRvemVuYWxjbG9ja0BtYmxlLmRrIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "3", "sha256": "1p7bsv89k3pz16kcjldmdnsilwc3jx1v419nvn5vj7n2xg4zvk0j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlcnRzIHRoZSBjbG9jayB0byBhIGRvemVuYWwgb25lIiwKICAibmFtZSI6ICJEb3plbmFsIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4LjEiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL21ibGVkL2RvemVuYWwtY2xvY2stZ25vbWUiLAogICJ1dWlkIjogImRvemVuYWxjbG9ja0BtYmxlLmRrIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
 , {"uuid": "wattmeter-forked@clementherve.fr", "name": "wattmeter-forked", "pname": "wattmeter-forked", "description": "A fork of the Wattmeter extension by blackBriar, compatible with gnome 40. Original version: https://extensions.gnome.org/extension/1867/wattmeter/", "link": "https://extensions.gnome.org/extension/4886/wattmeter-forked/", "shell_version_map": {"40": {"version": "3", "sha256": "0hg6faz9j1vvxx8dyjhwx8nc2c0zbwxi9gdg2nhx839kyl3bk9kn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZm9yayBvZiB0aGUgV2F0dG1ldGVyIGV4dGVuc2lvbiBieSBibGFja0JyaWFyLCBjb21wYXRpYmxlIHdpdGggZ25vbWUgNDAuIE9yaWdpbmFsIHZlcnNpb246IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzE4Njcvd2F0dG1ldGVyLyIsCiAgIm5hbWUiOiAid2F0dG1ldGVyLWZvcmtlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jbGVtZW50aGVydmUvd2F0dG1ldGVyLWZvcmtlZCIsCiAgInV1aWQiOiAid2F0dG1ldGVyLWZvcmtlZEBjbGVtZW50aGVydmUuZnIiLAogICJ2ZXJzaW9uIjogMwp9"}}}
 , {"uuid": "Hitokoto@teaper.dev", "name": "Hitokoto", "pname": "hitokoto", "description": "一言短句", "link": "https://extensions.gnome.org/extension/4887/hitokoto/", "shell_version_map": {"41": {"version": "1", "sha256": "1dmsrgxnajwifc5wlrqhcddyf10a5m94wycnx5411j538607v83k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlx1NGUwMFx1OGEwMFx1NzdlZFx1NTNlNSIsCiAgIm5hbWUiOiAiSGl0b2tvdG8iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxLjEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90ZWFwZXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWhpdG9rb3RvIiwKICAidXVpZCI6ICJIaXRva290b0B0ZWFwZXIuZGV2IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
@@ -700,18 +700,30 @@
 , {"uuid": "move-panel@lzbz.gitlab.com", "name": "Move Panel", "pname": "move-panel", "description": "Moves panel to secondary monitor on startup, without changing the primary display. Only works on Wayland.", "link": "https://extensions.gnome.org/extension/4890/move-panel/", "shell_version_map": {"41": {"version": "2", "sha256": "1rr585an3ryfyyfcvkj8g2d76vqk6kr1qr8yzbm7z0aava16syzb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHBhbmVsIHRvIHNlY29uZGFyeSBtb25pdG9yIG9uIHN0YXJ0dXAsIHdpdGhvdXQgY2hhbmdpbmcgdGhlIHByaW1hcnkgZGlzcGxheS4gT25seSB3b3JrcyBvbiBXYXlsYW5kLiIsCiAgIm5hbWUiOiAiTW92ZSBQYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9semJ6L21vdmUtcGFuZWwiLAogICJ1dWlkIjogIm1vdmUtcGFuZWxAbHpiei5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "usable-overview@mechtifs", "name": "Usable Overview", "pname": "usable-overview", "description": "Right clicking when activating the top-left hot corner brings up the application grid. It makes way more sense than moving your cursor all  the way down the screen then click that stinky icon.", "link": "https://extensions.gnome.org/extension/4895/usable-overview/", "shell_version_map": {"40": {"version": "1", "sha256": "0pkjsgw8f5m2a9wzph5fim6g4ky842qi5ncfxi5nbcdm7y6gj74f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJpZ2h0IGNsaWNraW5nIHdoZW4gYWN0aXZhdGluZyB0aGUgdG9wLWxlZnQgaG90IGNvcm5lciBicmluZ3MgdXAgdGhlIGFwcGxpY2F0aW9uIGdyaWQuIEl0IG1ha2VzIHdheSBtb3JlIHNlbnNlIHRoYW4gbW92aW5nIHlvdXIgY3Vyc29yIGFsbCAgdGhlIHdheSBkb3duIHRoZSBzY3JlZW4gdGhlbiBjbGljayB0aGF0IHN0aW5reSBpY29uLiIsCiAgIm5hbWUiOiAiVXNhYmxlIE92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVjaHRpZnMvdXNhYmxlLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJ1c2FibGUtb3ZlcnZpZXdAbWVjaHRpZnMiLAogICJ2ZXJzaW9uIjogMQp9"}, "41": {"version": "1", "sha256": "0pkjsgw8f5m2a9wzph5fim6g4ky842qi5ncfxi5nbcdm7y6gj74f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJpZ2h0IGNsaWNraW5nIHdoZW4gYWN0aXZhdGluZyB0aGUgdG9wLWxlZnQgaG90IGNvcm5lciBicmluZ3MgdXAgdGhlIGFwcGxpY2F0aW9uIGdyaWQuIEl0IG1ha2VzIHdheSBtb3JlIHNlbnNlIHRoYW4gbW92aW5nIHlvdXIgY3Vyc29yIGFsbCAgdGhlIHdheSBkb3duIHRoZSBzY3JlZW4gdGhlbiBjbGljayB0aGF0IHN0aW5reSBpY29uLiIsCiAgIm5hbWUiOiAiVXNhYmxlIE92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVjaHRpZnMvdXNhYmxlLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJ1c2FibGUtb3ZlcnZpZXdAbWVjaHRpZnMiLAogICJ2ZXJzaW9uIjogMQp9"}, "42": {"version": "1", "sha256": "0pkjsgw8f5m2a9wzph5fim6g4ky842qi5ncfxi5nbcdm7y6gj74f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJpZ2h0IGNsaWNraW5nIHdoZW4gYWN0aXZhdGluZyB0aGUgdG9wLWxlZnQgaG90IGNvcm5lciBicmluZ3MgdXAgdGhlIGFwcGxpY2F0aW9uIGdyaWQuIEl0IG1ha2VzIHdheSBtb3JlIHNlbnNlIHRoYW4gbW92aW5nIHlvdXIgY3Vyc29yIGFsbCAgdGhlIHdheSBkb3duIHRoZSBzY3JlZW4gdGhlbiBjbGljayB0aGF0IHN0aW5reSBpY29uLiIsCiAgIm5hbWUiOiAiVXNhYmxlIE92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVjaHRpZnMvdXNhYmxlLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJ1c2FibGUtb3ZlcnZpZXdAbWVjaHRpZnMiLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "overview-clicking@mechtifs", "name": "Overview Clicking", "pname": "overview-clicking", "description": "Close the overview or show up application grid by left/right clicking empty space. Forked from click-to-close-overview@l3nn4rt.github.io.", "link": "https://extensions.gnome.org/extension/4898/overview-clicking/", "shell_version_map": {"40": {"version": "1", "sha256": "10f08rn9m66ynrs5jsgxg4qzrimcjdslgs36s8fgcblr5r31kw8i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBvciBzaG93IHVwIGFwcGxpY2F0aW9uIGdyaWQgYnkgbGVmdC9yaWdodCBjbGlja2luZyBlbXB0eSBzcGFjZS4gRm9ya2VkIGZyb20gY2xpY2stdG8tY2xvc2Utb3ZlcnZpZXdAbDNubjRydC5naXRodWIuaW8uIiwKICAibmFtZSI6ICJPdmVydmlldyBDbGlja2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21lY2h0aWZzL292ZXJ2aWV3LWNsaWNraW5nIiwKICAidXVpZCI6ICJvdmVydmlldy1jbGlja2luZ0BtZWNodGlmcyIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "10f08rn9m66ynrs5jsgxg4qzrimcjdslgs36s8fgcblr5r31kw8i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBvciBzaG93IHVwIGFwcGxpY2F0aW9uIGdyaWQgYnkgbGVmdC9yaWdodCBjbGlja2luZyBlbXB0eSBzcGFjZS4gRm9ya2VkIGZyb20gY2xpY2stdG8tY2xvc2Utb3ZlcnZpZXdAbDNubjRydC5naXRodWIuaW8uIiwKICAibmFtZSI6ICJPdmVydmlldyBDbGlja2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21lY2h0aWZzL292ZXJ2aWV3LWNsaWNraW5nIiwKICAidXVpZCI6ICJvdmVydmlldy1jbGlja2luZ0BtZWNodGlmcyIsCiAgInZlcnNpb24iOiAxCn0="}, "42": {"version": "1", "sha256": "10f08rn9m66ynrs5jsgxg4qzrimcjdslgs36s8fgcblr5r31kw8i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBvciBzaG93IHVwIGFwcGxpY2F0aW9uIGdyaWQgYnkgbGVmdC9yaWdodCBjbGlja2luZyBlbXB0eSBzcGFjZS4gRm9ya2VkIGZyb20gY2xpY2stdG8tY2xvc2Utb3ZlcnZpZXdAbDNubjRydC5naXRodWIuaW8uIiwKICAibmFtZSI6ICJPdmVydmlldyBDbGlja2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21lY2h0aWZzL292ZXJ2aWV3LWNsaWNraW5nIiwKICAidXVpZCI6ICJvdmVydmlldy1jbGlja2luZ0BtZWNodGlmcyIsCiAgInZlcnNpb24iOiAxCn0="}}}
-, {"uuid": "speed@eexpss.gmail.com", "name": "Screen Net Speed", "pname": "screen-net-speed", "description": "* Animation net speed show on the screen. You can click it to have fun and pass the time. Can be turned on / off at any time.\nScroll Mouse on panel icon, can change the shape.", "link": "https://extensions.gnome.org/extension/4901/screen-net-speed/", "shell_version_map": {"40": {"version": "4", "sha256": "0j9y839da3ln1bd0xvh1zmqvrccyff9h5g34g5ngb5i3188ayyrf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQW5pbWF0aW9uIG5ldCBzcGVlZCBzaG93IG9uIHRoZSBzY3JlZW4uIFlvdSBjYW4gY2xpY2sgaXQgdG8gaGF2ZSBmdW4gYW5kIHBhc3MgdGhlIHRpbWUuIENhbiBiZSB0dXJuZWQgb24gLyBvZmYgYXQgYW55IHRpbWUuXG5TY3JvbGwgTW91c2Ugb24gcGFuZWwgaWNvbiwgY2FuIGNoYW5nZSB0aGUgc2hhcGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2NyZWVuLW5ldC1zcGVlZCIsCiAgIm5hbWUiOiAiU2NyZWVuIE5ldCBTcGVlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJzcGVlZEBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "0j9y839da3ln1bd0xvh1zmqvrccyff9h5g34g5ngb5i3188ayyrf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQW5pbWF0aW9uIG5ldCBzcGVlZCBzaG93IG9uIHRoZSBzY3JlZW4uIFlvdSBjYW4gY2xpY2sgaXQgdG8gaGF2ZSBmdW4gYW5kIHBhc3MgdGhlIHRpbWUuIENhbiBiZSB0dXJuZWQgb24gLyBvZmYgYXQgYW55IHRpbWUuXG5TY3JvbGwgTW91c2Ugb24gcGFuZWwgaWNvbiwgY2FuIGNoYW5nZSB0aGUgc2hhcGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2NyZWVuLW5ldC1zcGVlZCIsCiAgIm5hbWUiOiAiU2NyZWVuIE5ldCBTcGVlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJzcGVlZEBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "42": {"version": "4", "sha256": "0j9y839da3ln1bd0xvh1zmqvrccyff9h5g34g5ngb5i3188ayyrf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQW5pbWF0aW9uIG5ldCBzcGVlZCBzaG93IG9uIHRoZSBzY3JlZW4uIFlvdSBjYW4gY2xpY2sgaXQgdG8gaGF2ZSBmdW4gYW5kIHBhc3MgdGhlIHRpbWUuIENhbiBiZSB0dXJuZWQgb24gLyBvZmYgYXQgYW55IHRpbWUuXG5TY3JvbGwgTW91c2Ugb24gcGFuZWwgaWNvbiwgY2FuIGNoYW5nZSB0aGUgc2hhcGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2NyZWVuLW5ldC1zcGVlZCIsCiAgIm5hbWUiOiAiU2NyZWVuIE5ldCBTcGVlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJzcGVlZEBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "speed@eexpss.gmail.com", "name": "Screen Net Speed", "pname": "screen-net-speed", "description": "* Animation net speed show on the screen. You can click it to have fun and pass the time. Can be turned on / off at any time.\nScroll Mouse on panel icon, can change the shape.", "link": "https://extensions.gnome.org/extension/4901/screen-net-speed/", "shell_version_map": {"40": {"version": "5", "sha256": "12qqaadj1wxpwysxndvjsvqr9fk9hk4wkma5gqxhv7rjdq1c4jw2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQW5pbWF0aW9uIG5ldCBzcGVlZCBzaG93IG9uIHRoZSBzY3JlZW4uIFlvdSBjYW4gY2xpY2sgaXQgdG8gaGF2ZSBmdW4gYW5kIHBhc3MgdGhlIHRpbWUuIENhbiBiZSB0dXJuZWQgb24gLyBvZmYgYXQgYW55IHRpbWUuXG5TY3JvbGwgTW91c2Ugb24gcGFuZWwgaWNvbiwgY2FuIGNoYW5nZSB0aGUgc2hhcGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2NyZWVuLW5ldC1zcGVlZCIsCiAgIm5hbWUiOiAiU2NyZWVuIE5ldCBTcGVlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dzLXNwZWVkIiwKICAidXVpZCI6ICJzcGVlZEBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "41": {"version": "5", "sha256": "12qqaadj1wxpwysxndvjsvqr9fk9hk4wkma5gqxhv7rjdq1c4jw2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQW5pbWF0aW9uIG5ldCBzcGVlZCBzaG93IG9uIHRoZSBzY3JlZW4uIFlvdSBjYW4gY2xpY2sgaXQgdG8gaGF2ZSBmdW4gYW5kIHBhc3MgdGhlIHRpbWUuIENhbiBiZSB0dXJuZWQgb24gLyBvZmYgYXQgYW55IHRpbWUuXG5TY3JvbGwgTW91c2Ugb24gcGFuZWwgaWNvbiwgY2FuIGNoYW5nZSB0aGUgc2hhcGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2NyZWVuLW5ldC1zcGVlZCIsCiAgIm5hbWUiOiAiU2NyZWVuIE5ldCBTcGVlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dzLXNwZWVkIiwKICAidXVpZCI6ICJzcGVlZEBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "42": {"version": "5", "sha256": "12qqaadj1wxpwysxndvjsvqr9fk9hk4wkma5gqxhv7rjdq1c4jw2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQW5pbWF0aW9uIG5ldCBzcGVlZCBzaG93IG9uIHRoZSBzY3JlZW4uIFlvdSBjYW4gY2xpY2sgaXQgdG8gaGF2ZSBmdW4gYW5kIHBhc3MgdGhlIHRpbWUuIENhbiBiZSB0dXJuZWQgb24gLyBvZmYgYXQgYW55IHRpbWUuXG5TY3JvbGwgTW91c2Ugb24gcGFuZWwgaWNvbiwgY2FuIGNoYW5nZSB0aGUgc2hhcGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2NyZWVuLW5ldC1zcGVlZCIsCiAgIm5hbWUiOiAiU2NyZWVuIE5ldCBTcGVlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dzLXNwZWVkIiwKICAidXVpZCI6ICJzcGVlZEBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "addshutbutton@jerom@olika.ovh", "name": "Add Shutdown Button", "pname": "add-shutdown-button", "description": "Add a button power off", "link": "https://extensions.gnome.org/extension/4905/add-shutdown-button/", "shell_version_map": {"40": {"version": "2", "sha256": "1yq7cakknjq7inzg1bq6z4isivj25vkml89vmv4913fparvsx7n2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJ1dHRvbiBwb3dlciBvZmYiLAogICJuYW1lIjogIkFkZCBTaHV0ZG93biBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFkZHNodXRidXR0b25AamVyb21Ab2xpa2Eub3ZoIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
-, {"uuid": "eepresetselector@ulville.github.io", "name": "EasyEffects Preset Selector", "pname": "easyeffects-preset-selector", "description": "Quickly show and load EasyEffects Presets", "link": "https://extensions.gnome.org/extension/4907/easyeffects-preset-selector/", "shell_version_map": {"38": {"version": "3", "sha256": "09fa3hv3jjcl1c200kw4qg9m0rkwf6pf516rmhypzz8xw8ylcsl7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc2hvdyBhbmQgbG9hZCBFYXN5RWZmZWN0cyBQcmVzZXRzIiwKICAibmFtZSI6ICJFYXN5RWZmZWN0cyBQcmVzZXQgU2VsZWN0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3VsdmlsbGUvZWVwcmVzZXRzZWxlY3RvciIsCiAgInV1aWQiOiAiZWVwcmVzZXRzZWxlY3RvckB1bHZpbGxlLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "09fa3hv3jjcl1c200kw4qg9m0rkwf6pf516rmhypzz8xw8ylcsl7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc2hvdyBhbmQgbG9hZCBFYXN5RWZmZWN0cyBQcmVzZXRzIiwKICAibmFtZSI6ICJFYXN5RWZmZWN0cyBQcmVzZXQgU2VsZWN0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3VsdmlsbGUvZWVwcmVzZXRzZWxlY3RvciIsCiAgInV1aWQiOiAiZWVwcmVzZXRzZWxlY3RvckB1bHZpbGxlLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "09fa3hv3jjcl1c200kw4qg9m0rkwf6pf516rmhypzz8xw8ylcsl7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc2hvdyBhbmQgbG9hZCBFYXN5RWZmZWN0cyBQcmVzZXRzIiwKICAibmFtZSI6ICJFYXN5RWZmZWN0cyBQcmVzZXQgU2VsZWN0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3VsdmlsbGUvZWVwcmVzZXRzZWxlY3RvciIsCiAgInV1aWQiOiAiZWVwcmVzZXRzZWxlY3RvckB1bHZpbGxlLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}}}
-, {"uuid": "gnomehub@gnome-hub.github.io", "name": "gnomehub", "pname": "gnomehub", "description": "An all in one extension which catagorizes notifications and displays system information", "link": "https://extensions.gnome.org/extension/4913/gnomehub/", "shell_version_map": {"38": {"version": "4", "sha256": "14i6q9alag5dblp6iy3d6ip5ynnm1lzl108km336gz22mh3bfany", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGFsbCBpbiBvbmUgZXh0ZW5zaW9uIHdoaWNoIGNhdGFnb3JpemVzIG5vdGlmaWNhdGlvbnMgYW5kIGRpc3BsYXlzIHN5c3RlbSBpbmZvcm1hdGlvbiIsCiAgIm5hbWUiOiAiZ25vbWVodWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dub21lLWh1Yi5naXRodWIuaW8vIiwKICAidXVpZCI6ICJnbm9tZWh1YkBnbm9tZS1odWIuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "14i6q9alag5dblp6iy3d6ip5ynnm1lzl108km336gz22mh3bfany", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGFsbCBpbiBvbmUgZXh0ZW5zaW9uIHdoaWNoIGNhdGFnb3JpemVzIG5vdGlmaWNhdGlvbnMgYW5kIGRpc3BsYXlzIHN5c3RlbSBpbmZvcm1hdGlvbiIsCiAgIm5hbWUiOiAiZ25vbWVodWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dub21lLWh1Yi5naXRodWIuaW8vIiwKICAidXVpZCI6ICJnbm9tZWh1YkBnbm9tZS1odWIuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "volume_scroller@noskoski", "name": "Volume Scroller", "pname": "volume-scroller", "description": "Scroll up or down in the Top Bar to adjust volume.", "link": "https://extensions.gnome.org/extension/4916/volume-scroller/", "shell_version_map": {"38": {"version": "1", "sha256": "1v6h7mjsflysczrbqfkycfiswmpvn8wyz96farpj9z19cdy379q2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ub3Nrb3NraS9nbm9tZS1zaGVsbC12b2x1bWUtc2Nyb2xsZXIiLAogICJ1dWlkIjogInZvbHVtZV9zY3JvbGxlckBub3Nrb3NraSIsCiAgInZlcnNpb24iOiAxCn0="}, "40": {"version": "1", "sha256": "1v6h7mjsflysczrbqfkycfiswmpvn8wyz96farpj9z19cdy379q2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ub3Nrb3NraS9nbm9tZS1zaGVsbC12b2x1bWUtc2Nyb2xsZXIiLAogICJ1dWlkIjogInZvbHVtZV9zY3JvbGxlckBub3Nrb3NraSIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "1v6h7mjsflysczrbqfkycfiswmpvn8wyz96farpj9z19cdy379q2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ub3Nrb3NraS9nbm9tZS1zaGVsbC12b2x1bWUtc2Nyb2xsZXIiLAogICJ1dWlkIjogInZvbHVtZV9zY3JvbGxlckBub3Nrb3NraSIsCiAgInZlcnNpb24iOiAxCn0="}}}
-, {"uuid": "weather@eexpss.gmail.com", "name": "Weather", "pname": "weather", "description": "Animation Weather. \nMouse 1: show weather\nMouse 2: refresh weather\nMouse 3: dismiss\nScrollUp: increase day\nScrollDown: decrease day", "link": "https://extensions.gnome.org/extension/4919/weather/", "shell_version_map": {"40": {"version": "3", "sha256": "1smhsdq7xg0vx0nrcw3rmr74nypn1wjlw2aynbd59hbck1np8h31", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuaW1hdGlvbiBXZWF0aGVyLiBcbk1vdXNlIDE6IHNob3cgd2VhdGhlclxuTW91c2UgMjogcmVmcmVzaCB3ZWF0aGVyXG5Nb3VzZSAzOiBkaXNtaXNzXG5TY3JvbGxVcDogaW5jcmVhc2UgZGF5XG5TY3JvbGxEb3duOiBkZWNyZWFzZSBkYXkiLAogICJuYW1lIjogIldlYXRoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lZXhwcmVzcy9nbm9tZS1zaGVsbC13ZWF0aGVyIiwKICAidXVpZCI6ICJ3ZWF0aGVyQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "1smhsdq7xg0vx0nrcw3rmr74nypn1wjlw2aynbd59hbck1np8h31", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuaW1hdGlvbiBXZWF0aGVyLiBcbk1vdXNlIDE6IHNob3cgd2VhdGhlclxuTW91c2UgMjogcmVmcmVzaCB3ZWF0aGVyXG5Nb3VzZSAzOiBkaXNtaXNzXG5TY3JvbGxVcDogaW5jcmVhc2UgZGF5XG5TY3JvbGxEb3duOiBkZWNyZWFzZSBkYXkiLAogICJuYW1lIjogIldlYXRoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lZXhwcmVzcy9nbm9tZS1zaGVsbC13ZWF0aGVyIiwKICAidXVpZCI6ICJ3ZWF0aGVyQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "42": {"version": "6", "sha256": "1skxb5sgzp78h1wwwva3089mblih6ip7npxx2ss83cgfgg9wlc0b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuaW1hdGlvbiBXZWF0aGVyLiBcbk1vdXNlIDE6IHNob3cgd2VhdGhlclxuTW91c2UgMjogcmVmcmVzaCB3ZWF0aGVyXG5Nb3VzZSAzOiBkaXNtaXNzXG5TY3JvbGxVcDogaW5jcmVhc2UgZGF5XG5TY3JvbGxEb3duOiBkZWNyZWFzZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3ZWF0aGVyIiwKICAibmFtZSI6ICJXZWF0aGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndlYXRoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ25vbWUtc2hlbGwtd2VhdGhlciIsCiAgInV1aWQiOiAid2VhdGhlckBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
-, {"uuid": "whiteborder@aaronbpaden.gmail.com", "name": "White Border Overlay", "pname": "white-border-overlay", "description": "Draw a white border around the desktop to enable (hopefully) universal application support for the Sinden Lightgun.", "link": "https://extensions.gnome.org/extension/4922/white-border-overlay/", "shell_version_map": {"38": {"version": "2", "sha256": "1iplpk1hjhhjncgnzdc3jzsfp6c1344523ga439lfzxvd7yk9r7h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRyYXcgYSB3aGl0ZSBib3JkZXIgYXJvdW5kIHRoZSBkZXNrdG9wIHRvIGVuYWJsZSAoaG9wZWZ1bGx5KSB1bml2ZXJzYWwgYXBwbGljYXRpb24gc3VwcG9ydCBmb3IgdGhlIFNpbmRlbiBMaWdodGd1bi4iLAogICJuYW1lIjogIldoaXRlIEJvcmRlciBPdmVybGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9BYXJvbkJQYWRlbi93aGl0ZWJvcmRlci1hYXJvbmJwYWRlbi5nbWFpbC5jb20iLAogICJ1dWlkIjogIndoaXRlYm9yZGVyQGFhcm9uYnBhZGVuLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "1iplpk1hjhhjncgnzdc3jzsfp6c1344523ga439lfzxvd7yk9r7h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRyYXcgYSB3aGl0ZSBib3JkZXIgYXJvdW5kIHRoZSBkZXNrdG9wIHRvIGVuYWJsZSAoaG9wZWZ1bGx5KSB1bml2ZXJzYWwgYXBwbGljYXRpb24gc3VwcG9ydCBmb3IgdGhlIFNpbmRlbiBMaWdodGd1bi4iLAogICJuYW1lIjogIldoaXRlIEJvcmRlciBPdmVybGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9BYXJvbkJQYWRlbi93aGl0ZWJvcmRlci1hYXJvbmJwYWRlbi5nbWFpbC5jb20iLAogICJ1dWlkIjogIndoaXRlYm9yZGVyQGFhcm9uYnBhZGVuLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "1iplpk1hjhhjncgnzdc3jzsfp6c1344523ga439lfzxvd7yk9r7h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRyYXcgYSB3aGl0ZSBib3JkZXIgYXJvdW5kIHRoZSBkZXNrdG9wIHRvIGVuYWJsZSAoaG9wZWZ1bGx5KSB1bml2ZXJzYWwgYXBwbGljYXRpb24gc3VwcG9ydCBmb3IgdGhlIFNpbmRlbiBMaWdodGd1bi4iLAogICJuYW1lIjogIldoaXRlIEJvcmRlciBPdmVybGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9BYXJvbkJQYWRlbi93aGl0ZWJvcmRlci1hYXJvbmJwYWRlbi5nbWFpbC5jb20iLAogICJ1dWlkIjogIndoaXRlYm9yZGVyQGFhcm9uYnBhZGVuLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
-, {"uuid": "git@eexpss.gmail.com", "name": "Git Monitor", "pname": "git", "description": "## monitor git directory for changes.\n### Panel Icon\n- Mouse 2, force refresh (re-read config file, check git dirs, refresh menu).\n- Mouse 3, open configfile. config file is `~/.config/git-monitor.json`.\n### Menu Item\n- Directory: Mouse 1 opened in the Files(Nautilus), Mouse 3 open in the gnome-terminal.\n- Files: opened with `git difftool`, eg `meld`.", "link": "https://extensions.gnome.org/extension/4925/git/", "shell_version_map": {"40": {"version": "5", "sha256": "14h1inkdaac4qdglw1sh3hqigrggzvrg17jsh5b9jfs8mg6rm0b1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiMjIG1vbml0b3IgZ2l0IGRpcmVjdG9yeSBmb3IgY2hhbmdlcy5cbiMjIyBQYW5lbCBJY29uXG4tIE1vdXNlIDIsIGZvcmNlIHJlZnJlc2ggKHJlLXJlYWQgY29uZmlnIGZpbGUsIGNoZWNrIGdpdCBkaXJzLCByZWZyZXNoIG1lbnUpLlxuLSBNb3VzZSAzLCBvcGVuIGNvbmZpZ2ZpbGUuIGNvbmZpZyBmaWxlIGlzIGB+Ly5jb25maWcvZ2l0LW1vbml0b3IuanNvbmAuXG4jIyMgTWVudSBJdGVtXG4tIERpcmVjdG9yeTogTW91c2UgMSBvcGVuZWQgaW4gdGhlIEZpbGVzKE5hdXRpbHVzKSwgTW91c2UgMyBvcGVuIGluIHRoZSBnbm9tZS10ZXJtaW5hbC5cbi0gRmlsZXM6IG9wZW5lZCB3aXRoIGBnaXQgZGlmZnRvb2xgLCBlZyBgbWVsZGAuIiwKICAibmFtZSI6ICJHaXQgTW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnaXRAZWV4cHNzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "14h1inkdaac4qdglw1sh3hqigrggzvrg17jsh5b9jfs8mg6rm0b1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiMjIG1vbml0b3IgZ2l0IGRpcmVjdG9yeSBmb3IgY2hhbmdlcy5cbiMjIyBQYW5lbCBJY29uXG4tIE1vdXNlIDIsIGZvcmNlIHJlZnJlc2ggKHJlLXJlYWQgY29uZmlnIGZpbGUsIGNoZWNrIGdpdCBkaXJzLCByZWZyZXNoIG1lbnUpLlxuLSBNb3VzZSAzLCBvcGVuIGNvbmZpZ2ZpbGUuIGNvbmZpZyBmaWxlIGlzIGB+Ly5jb25maWcvZ2l0LW1vbml0b3IuanNvbmAuXG4jIyMgTWVudSBJdGVtXG4tIERpcmVjdG9yeTogTW91c2UgMSBvcGVuZWQgaW4gdGhlIEZpbGVzKE5hdXRpbHVzKSwgTW91c2UgMyBvcGVuIGluIHRoZSBnbm9tZS10ZXJtaW5hbC5cbi0gRmlsZXM6IG9wZW5lZCB3aXRoIGBnaXQgZGlmZnRvb2xgLCBlZyBgbWVsZGAuIiwKICAibmFtZSI6ICJHaXQgTW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnaXRAZWV4cHNzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}, "42": {"version": "5", "sha256": "14h1inkdaac4qdglw1sh3hqigrggzvrg17jsh5b9jfs8mg6rm0b1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiMjIG1vbml0b3IgZ2l0IGRpcmVjdG9yeSBmb3IgY2hhbmdlcy5cbiMjIyBQYW5lbCBJY29uXG4tIE1vdXNlIDIsIGZvcmNlIHJlZnJlc2ggKHJlLXJlYWQgY29uZmlnIGZpbGUsIGNoZWNrIGdpdCBkaXJzLCByZWZyZXNoIG1lbnUpLlxuLSBNb3VzZSAzLCBvcGVuIGNvbmZpZ2ZpbGUuIGNvbmZpZyBmaWxlIGlzIGB+Ly5jb25maWcvZ2l0LW1vbml0b3IuanNvbmAuXG4jIyMgTWVudSBJdGVtXG4tIERpcmVjdG9yeTogTW91c2UgMSBvcGVuZWQgaW4gdGhlIEZpbGVzKE5hdXRpbHVzKSwgTW91c2UgMyBvcGVuIGluIHRoZSBnbm9tZS10ZXJtaW5hbC5cbi0gRmlsZXM6IG9wZW5lZCB3aXRoIGBnaXQgZGlmZnRvb2xgLCBlZyBgbWVsZGAuIiwKICAibmFtZSI6ICJHaXQgTW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnaXRAZWV4cHNzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
+, {"uuid": "eepresetselector@ulville.github.io", "name": "EasyEffects Preset Selector", "pname": "easyeffects-preset-selector", "description": "Quickly show and load EasyEffects Presets", "link": "https://extensions.gnome.org/extension/4907/easyeffects-preset-selector/", "shell_version_map": {"38": {"version": "5", "sha256": "0p80w0zwwp5d8bgfffszdfa1mklj5w8d7p8wckcvwgc8gbq7i2ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc2hvdyBhbmQgbG9hZCBFYXN5RWZmZWN0cyBQcmVzZXRzIiwKICAibmFtZSI6ICJFYXN5RWZmZWN0cyBQcmVzZXQgU2VsZWN0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91bHZpbGxlL2VlcHJlc2V0c2VsZWN0b3IiLAogICJ1dWlkIjogImVlcHJlc2V0c2VsZWN0b3JAdWx2aWxsZS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "0p80w0zwwp5d8bgfffszdfa1mklj5w8d7p8wckcvwgc8gbq7i2ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc2hvdyBhbmQgbG9hZCBFYXN5RWZmZWN0cyBQcmVzZXRzIiwKICAibmFtZSI6ICJFYXN5RWZmZWN0cyBQcmVzZXQgU2VsZWN0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91bHZpbGxlL2VlcHJlc2V0c2VsZWN0b3IiLAogICJ1dWlkIjogImVlcHJlc2V0c2VsZWN0b3JAdWx2aWxsZS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "0p80w0zwwp5d8bgfffszdfa1mklj5w8d7p8wckcvwgc8gbq7i2ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc2hvdyBhbmQgbG9hZCBFYXN5RWZmZWN0cyBQcmVzZXRzIiwKICAibmFtZSI6ICJFYXN5RWZmZWN0cyBQcmVzZXQgU2VsZWN0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91bHZpbGxlL2VlcHJlc2V0c2VsZWN0b3IiLAogICJ1dWlkIjogImVlcHJlc2V0c2VsZWN0b3JAdWx2aWxsZS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}, "42": {"version": "5", "sha256": "0p80w0zwwp5d8bgfffszdfa1mklj5w8d7p8wckcvwgc8gbq7i2ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc2hvdyBhbmQgbG9hZCBFYXN5RWZmZWN0cyBQcmVzZXRzIiwKICAibmFtZSI6ICJFYXN5RWZmZWN0cyBQcmVzZXQgU2VsZWN0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91bHZpbGxlL2VlcHJlc2V0c2VsZWN0b3IiLAogICJ1dWlkIjogImVlcHJlc2V0c2VsZWN0b3JAdWx2aWxsZS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "gnomehub@gnome-hub.github.io", "name": "gnomehub", "pname": "gnomehub", "description": "An all in one extension which catagorizes notifications and displays system information", "link": "https://extensions.gnome.org/extension/4913/gnomehub/", "shell_version_map": {"38": {"version": "5", "sha256": "0kygq6c5ifmdv55j849n1yxc9mww27ih68fxvcywk28swkykgw2n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGFsbCBpbiBvbmUgZXh0ZW5zaW9uIHdoaWNoIGNhdGFnb3JpemVzIG5vdGlmaWNhdGlvbnMgYW5kIGRpc3BsYXlzIHN5c3RlbSBpbmZvcm1hdGlvbiIsCiAgIm5hbWUiOiAiZ25vbWVodWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dub21lLWh1Yi5naXRodWIuaW8vIiwKICAidXVpZCI6ICJnbm9tZWh1YkBnbm9tZS1odWIuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "0kygq6c5ifmdv55j849n1yxc9mww27ih68fxvcywk28swkykgw2n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGFsbCBpbiBvbmUgZXh0ZW5zaW9uIHdoaWNoIGNhdGFnb3JpemVzIG5vdGlmaWNhdGlvbnMgYW5kIGRpc3BsYXlzIHN5c3RlbSBpbmZvcm1hdGlvbiIsCiAgIm5hbWUiOiAiZ25vbWVodWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dub21lLWh1Yi5naXRodWIuaW8vIiwKICAidXVpZCI6ICJnbm9tZWh1YkBnbm9tZS1odWIuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "volume_scroller@noskoski", "name": "Volume Scroller", "pname": "volume-scroller", "description": "Scroll up or down in the Top Bar to adjust volume.", "link": "https://extensions.gnome.org/extension/4916/volume-scroller/", "shell_version_map": {"38": {"version": "2", "sha256": "0524g5yc4k0sgdy1v6dah5y3nrf95zdl94nmqp5x77nwmdxvdpqm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbm9za29za2kvZ25vbWUtc2hlbGwtdm9sdW1lLXNjcm9sbGVyIiwKICAidXVpZCI6ICJ2b2x1bWVfc2Nyb2xsZXJAbm9za29za2kiLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "2", "sha256": "0524g5yc4k0sgdy1v6dah5y3nrf95zdl94nmqp5x77nwmdxvdpqm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbm9za29za2kvZ25vbWUtc2hlbGwtdm9sdW1lLXNjcm9sbGVyIiwKICAidXVpZCI6ICJ2b2x1bWVfc2Nyb2xsZXJAbm9za29za2kiLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "0524g5yc4k0sgdy1v6dah5y3nrf95zdl94nmqp5x77nwmdxvdpqm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbm9za29za2kvZ25vbWUtc2hlbGwtdm9sdW1lLXNjcm9sbGVyIiwKICAidXVpZCI6ICJ2b2x1bWVfc2Nyb2xsZXJAbm9za29za2kiLAogICJ2ZXJzaW9uIjogMgp9"}, "42": {"version": "2", "sha256": "0524g5yc4k0sgdy1v6dah5y3nrf95zdl94nmqp5x77nwmdxvdpqm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbm9za29za2kvZ25vbWUtc2hlbGwtdm9sdW1lLXNjcm9sbGVyIiwKICAidXVpZCI6ICJ2b2x1bWVfc2Nyb2xsZXJAbm9za29za2kiLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "weather@eexpss.gmail.com", "name": "Weather", "pname": "weather", "description": "Animation Weather. \nMouse 1: show weather\nMouse 2: refresh weather\nMouse 3: dismiss\nScrollUp: increase day\nScrollDown: decrease day", "link": "https://extensions.gnome.org/extension/4919/weather/", "shell_version_map": {"40": {"version": "3", "sha256": "0a9sgmpmj0xr9b2bqp0q11n4zzs47vfnbk24428b3g024cfhya75", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuaW1hdGlvbiBXZWF0aGVyLiBcbk1vdXNlIDE6IHNob3cgd2VhdGhlclxuTW91c2UgMjogcmVmcmVzaCB3ZWF0aGVyXG5Nb3VzZSAzOiBkaXNtaXNzXG5TY3JvbGxVcDogaW5jcmVhc2UgZGF5XG5TY3JvbGxEb3duOiBkZWNyZWFzZSBkYXkiLAogICJuYW1lIjogIldlYXRoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lZXhwcmVzcy9ncy13ZWF0aGVyIiwKICAidXVpZCI6ICJ3ZWF0aGVyQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "0a9sgmpmj0xr9b2bqp0q11n4zzs47vfnbk24428b3g024cfhya75", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuaW1hdGlvbiBXZWF0aGVyLiBcbk1vdXNlIDE6IHNob3cgd2VhdGhlclxuTW91c2UgMjogcmVmcmVzaCB3ZWF0aGVyXG5Nb3VzZSAzOiBkaXNtaXNzXG5TY3JvbGxVcDogaW5jcmVhc2UgZGF5XG5TY3JvbGxEb3duOiBkZWNyZWFzZSBkYXkiLAogICJuYW1lIjogIldlYXRoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lZXhwcmVzcy9ncy13ZWF0aGVyIiwKICAidXVpZCI6ICJ3ZWF0aGVyQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "42": {"version": "8", "sha256": "128jbdkiaqajaii5byrhya7cly4gbfnlk9bpw1y5r3v5qpip4l14", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuaW1hdGlvbiBXZWF0aGVyLiBcbk1vdXNlIDE6IHNob3cgd2VhdGhlclxuTW91c2UgMjogcmVmcmVzaCB3ZWF0aGVyXG5Nb3VzZSAzOiBkaXNtaXNzXG5TY3JvbGxVcDogaW5jcmVhc2UgZGF5XG5TY3JvbGxEb3duOiBkZWNyZWFzZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3ZWF0aGVyIiwKICAibmFtZSI6ICJXZWF0aGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndlYXRoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3Mtd2VhdGhlciIsCiAgInV1aWQiOiAid2VhdGhlckBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"uuid": "whiteborder@aaronbpaden.gmail.com", "name": "White Border Overlay", "pname": "white-border-overlay", "description": "Draw a white border around the desktop to enable (hopefully) universal application support for the Sinden Lightgun.", "link": "https://extensions.gnome.org/extension/4922/white-border-overlay/", "shell_version_map": {"38": {"version": "3", "sha256": "0wb4s9h3abygrdj2ynv16wc2fk0k7h9d1q97vd2kzxb20rhb87i5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRyYXcgYSB3aGl0ZSBib3JkZXIgYXJvdW5kIHRoZSBkZXNrdG9wIHRvIGVuYWJsZSAoaG9wZWZ1bGx5KSB1bml2ZXJzYWwgYXBwbGljYXRpb24gc3VwcG9ydCBmb3IgdGhlIFNpbmRlbiBMaWdodGd1bi4iLAogICJuYW1lIjogIldoaXRlIEJvcmRlciBPdmVybGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWFyb25CUGFkZW4vd2hpdGVib3JkZXItYWFyb25icGFkZW4uZ21haWwuY29tIiwKICAidXVpZCI6ICJ3aGl0ZWJvcmRlckBhYXJvbmJwYWRlbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "0wb4s9h3abygrdj2ynv16wc2fk0k7h9d1q97vd2kzxb20rhb87i5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRyYXcgYSB3aGl0ZSBib3JkZXIgYXJvdW5kIHRoZSBkZXNrdG9wIHRvIGVuYWJsZSAoaG9wZWZ1bGx5KSB1bml2ZXJzYWwgYXBwbGljYXRpb24gc3VwcG9ydCBmb3IgdGhlIFNpbmRlbiBMaWdodGd1bi4iLAogICJuYW1lIjogIldoaXRlIEJvcmRlciBPdmVybGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWFyb25CUGFkZW4vd2hpdGVib3JkZXItYWFyb25icGFkZW4uZ21haWwuY29tIiwKICAidXVpZCI6ICJ3aGl0ZWJvcmRlckBhYXJvbmJwYWRlbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "0wb4s9h3abygrdj2ynv16wc2fk0k7h9d1q97vd2kzxb20rhb87i5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRyYXcgYSB3aGl0ZSBib3JkZXIgYXJvdW5kIHRoZSBkZXNrdG9wIHRvIGVuYWJsZSAoaG9wZWZ1bGx5KSB1bml2ZXJzYWwgYXBwbGljYXRpb24gc3VwcG9ydCBmb3IgdGhlIFNpbmRlbiBMaWdodGd1bi4iLAogICJuYW1lIjogIldoaXRlIEJvcmRlciBPdmVybGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWFyb25CUGFkZW4vd2hpdGVib3JkZXItYWFyb25icGFkZW4uZ21haWwuY29tIiwKICAidXVpZCI6ICJ3aGl0ZWJvcmRlckBhYXJvbmJwYWRlbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "42": {"version": "3", "sha256": "0wb4s9h3abygrdj2ynv16wc2fk0k7h9d1q97vd2kzxb20rhb87i5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRyYXcgYSB3aGl0ZSBib3JkZXIgYXJvdW5kIHRoZSBkZXNrdG9wIHRvIGVuYWJsZSAoaG9wZWZ1bGx5KSB1bml2ZXJzYWwgYXBwbGljYXRpb24gc3VwcG9ydCBmb3IgdGhlIFNpbmRlbiBMaWdodGd1bi4iLAogICJuYW1lIjogIldoaXRlIEJvcmRlciBPdmVybGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWFyb25CUGFkZW4vd2hpdGVib3JkZXItYWFyb25icGFkZW4uZ21haWwuY29tIiwKICAidXVpZCI6ICJ3aGl0ZWJvcmRlckBhYXJvbmJwYWRlbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "git@eexpss.gmail.com", "name": "Git Monitor", "pname": "git", "description": "## monitor git directory for changes.\n> Working with a lot of git directories, I always forgot commit.\n### Panel Icon\n- Mouse 2, force refresh (re-read config file, check git dirs, refresh menu).\n- Mouse 3, open configfile. config file is `~/.config/git-monitor.json`.\n### Menu Item\n- Directory: Mouse 1 opened in the Files(Nautilus), Mouse 3 open in the gnome-terminal.\n- Files: Mouse 1, opened with `git difftool`, eg `meld`. Mouse 3, open file.", "link": "https://extensions.gnome.org/extension/4925/git/", "shell_version_map": {"40": {"version": "6", "sha256": "1ad7cavpbzkxqpk667gvqm74sls13ypyfsd7hps35bhjy00q2h6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiMjIG1vbml0b3IgZ2l0IGRpcmVjdG9yeSBmb3IgY2hhbmdlcy5cbj4gV29ya2luZyB3aXRoIGEgbG90IG9mIGdpdCBkaXJlY3RvcmllcywgSSBhbHdheXMgZm9yZ290IGNvbW1pdC5cbiMjIyBQYW5lbCBJY29uXG4tIE1vdXNlIDIsIGZvcmNlIHJlZnJlc2ggKHJlLXJlYWQgY29uZmlnIGZpbGUsIGNoZWNrIGdpdCBkaXJzLCByZWZyZXNoIG1lbnUpLlxuLSBNb3VzZSAzLCBvcGVuIGNvbmZpZ2ZpbGUuIGNvbmZpZyBmaWxlIGlzIGB+Ly5jb25maWcvZ2l0LW1vbml0b3IuanNvbmAuXG4jIyMgTWVudSBJdGVtXG4tIERpcmVjdG9yeTogTW91c2UgMSBvcGVuZWQgaW4gdGhlIEZpbGVzKE5hdXRpbHVzKSwgTW91c2UgMyBvcGVuIGluIHRoZSBnbm9tZS10ZXJtaW5hbC5cbi0gRmlsZXM6IE1vdXNlIDEsIG9wZW5lZCB3aXRoIGBnaXQgZGlmZnRvb2xgLCBlZyBgbWVsZGAuIE1vdXNlIDMsIG9wZW4gZmlsZS4iLAogICJuYW1lIjogIkdpdCBNb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3MtZ2l0IiwKICAidXVpZCI6ICJnaXRAZWV4cHNzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "1ad7cavpbzkxqpk667gvqm74sls13ypyfsd7hps35bhjy00q2h6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiMjIG1vbml0b3IgZ2l0IGRpcmVjdG9yeSBmb3IgY2hhbmdlcy5cbj4gV29ya2luZyB3aXRoIGEgbG90IG9mIGdpdCBkaXJlY3RvcmllcywgSSBhbHdheXMgZm9yZ290IGNvbW1pdC5cbiMjIyBQYW5lbCBJY29uXG4tIE1vdXNlIDIsIGZvcmNlIHJlZnJlc2ggKHJlLXJlYWQgY29uZmlnIGZpbGUsIGNoZWNrIGdpdCBkaXJzLCByZWZyZXNoIG1lbnUpLlxuLSBNb3VzZSAzLCBvcGVuIGNvbmZpZ2ZpbGUuIGNvbmZpZyBmaWxlIGlzIGB+Ly5jb25maWcvZ2l0LW1vbml0b3IuanNvbmAuXG4jIyMgTWVudSBJdGVtXG4tIERpcmVjdG9yeTogTW91c2UgMSBvcGVuZWQgaW4gdGhlIEZpbGVzKE5hdXRpbHVzKSwgTW91c2UgMyBvcGVuIGluIHRoZSBnbm9tZS10ZXJtaW5hbC5cbi0gRmlsZXM6IE1vdXNlIDEsIG9wZW5lZCB3aXRoIGBnaXQgZGlmZnRvb2xgLCBlZyBgbWVsZGAuIE1vdXNlIDMsIG9wZW4gZmlsZS4iLAogICJuYW1lIjogIkdpdCBNb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3MtZ2l0IiwKICAidXVpZCI6ICJnaXRAZWV4cHNzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "42": {"version": "6", "sha256": "1ad7cavpbzkxqpk667gvqm74sls13ypyfsd7hps35bhjy00q2h6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiMjIG1vbml0b3IgZ2l0IGRpcmVjdG9yeSBmb3IgY2hhbmdlcy5cbj4gV29ya2luZyB3aXRoIGEgbG90IG9mIGdpdCBkaXJlY3RvcmllcywgSSBhbHdheXMgZm9yZ290IGNvbW1pdC5cbiMjIyBQYW5lbCBJY29uXG4tIE1vdXNlIDIsIGZvcmNlIHJlZnJlc2ggKHJlLXJlYWQgY29uZmlnIGZpbGUsIGNoZWNrIGdpdCBkaXJzLCByZWZyZXNoIG1lbnUpLlxuLSBNb3VzZSAzLCBvcGVuIGNvbmZpZ2ZpbGUuIGNvbmZpZyBmaWxlIGlzIGB+Ly5jb25maWcvZ2l0LW1vbml0b3IuanNvbmAuXG4jIyMgTWVudSBJdGVtXG4tIERpcmVjdG9yeTogTW91c2UgMSBvcGVuZWQgaW4gdGhlIEZpbGVzKE5hdXRpbHVzKSwgTW91c2UgMyBvcGVuIGluIHRoZSBnbm9tZS10ZXJtaW5hbC5cbi0gRmlsZXM6IE1vdXNlIDEsIG9wZW5lZCB3aXRoIGBnaXQgZGlmZnRvb2xgLCBlZyBgbWVsZGAuIE1vdXNlIDMsIG9wZW4gZmlsZS4iLAogICJuYW1lIjogIkdpdCBNb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3MtZ2l0IiwKICAidXVpZCI6ICJnaXRAZWV4cHNzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"uuid": "mprisLabel@moon-0xff.github.com", "name": "Mpris Label", "pname": "mpris-label", "description": "Displays a label in the top bar with metadata from an mpris compatible source. Works with Spotify, VLC, Rhythmbox, Firefox, Chromium based browsers and (probably) any mpris compatible player.", "link": "https://extensions.gnome.org/extension/4928/mpris-label/", "shell_version_map": {"38": {"version": "1", "sha256": "1nrnb41gzbw691r3c5malpsfzfhgq551gg3c3pff3f9wcrc5bc3c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGEgbGFiZWwgaW4gdGhlIHRvcCBiYXIgd2l0aCBtZXRhZGF0YSBmcm9tIGFuIG1wcmlzIGNvbXBhdGlibGUgc291cmNlLiBXb3JrcyB3aXRoIFNwb3RpZnksIFZMQywgUmh5dGhtYm94LCBGaXJlZm94LCBDaHJvbWl1bSBiYXNlZCBicm93c2VycyBhbmQgKHByb2JhYmx5KSBhbnkgbXByaXMgY29tcGF0aWJsZSBwbGF5ZXIuIiwKICAibmFtZSI6ICJNcHJpcyBMYWJlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTW9vbi0weGZmL2dub21lLW1wcmlzLWxhYmVsIiwKICAidXVpZCI6ICJtcHJpc0xhYmVsQG1vb24tMHhmZi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "1", "sha256": "1nrnb41gzbw691r3c5malpsfzfhgq551gg3c3pff3f9wcrc5bc3c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGEgbGFiZWwgaW4gdGhlIHRvcCBiYXIgd2l0aCBtZXRhZGF0YSBmcm9tIGFuIG1wcmlzIGNvbXBhdGlibGUgc291cmNlLiBXb3JrcyB3aXRoIFNwb3RpZnksIFZMQywgUmh5dGhtYm94LCBGaXJlZm94LCBDaHJvbWl1bSBiYXNlZCBicm93c2VycyBhbmQgKHByb2JhYmx5KSBhbnkgbXByaXMgY29tcGF0aWJsZSBwbGF5ZXIuIiwKICAibmFtZSI6ICJNcHJpcyBMYWJlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTW9vbi0weGZmL2dub21lLW1wcmlzLWxhYmVsIiwKICAidXVpZCI6ICJtcHJpc0xhYmVsQG1vb24tMHhmZi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "41": {"version": "1", "sha256": "1nrnb41gzbw691r3c5malpsfzfhgq551gg3c3pff3f9wcrc5bc3c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGEgbGFiZWwgaW4gdGhlIHRvcCBiYXIgd2l0aCBtZXRhZGF0YSBmcm9tIGFuIG1wcmlzIGNvbXBhdGlibGUgc291cmNlLiBXb3JrcyB3aXRoIFNwb3RpZnksIFZMQywgUmh5dGhtYm94LCBGaXJlZm94LCBDaHJvbWl1bSBiYXNlZCBicm93c2VycyBhbmQgKHByb2JhYmx5KSBhbnkgbXByaXMgY29tcGF0aWJsZSBwbGF5ZXIuIiwKICAibmFtZSI6ICJNcHJpcyBMYWJlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTW9vbi0weGZmL2dub21lLW1wcmlzLWxhYmVsIiwKICAidXVpZCI6ICJtcHJpc0xhYmVsQG1vb24tMHhmZi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
 , {"uuid": "captivate@rensoliemans.nl", "name": "Captivate", "pname": "captivate", "description": "Activate your CapsLock button.\nUsing gnome-tweaks, remap your CapsLock to a Menu key, and then this extension works perfectly. Alternatively, choose a different key in the extension settings.", "link": "https://extensions.gnome.org/extension/4932/captivate/", "shell_version_map": {"40": {"version": "5", "sha256": "0c1506lfm7iv59ha1gyc20v49xl3ivjn3qy9cxkdb68j37q50240", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFjdGl2YXRlIHlvdXIgQ2Fwc0xvY2sgYnV0dG9uLlxuVXNpbmcgZ25vbWUtdHdlYWtzLCByZW1hcCB5b3VyIENhcHNMb2NrIHRvIGEgTWVudSBrZXksIGFuZCB0aGVuIHRoaXMgZXh0ZW5zaW9uIHdvcmtzIHBlcmZlY3RseS4gQWx0ZXJuYXRpdmVseSwgY2hvb3NlIGEgZGlmZmVyZW50IGtleSBpbiB0aGUgZXh0ZW5zaW9uIHNldHRpbmdzLiIsCiAgIm5hbWUiOiAiQ2FwdGl2YXRlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhcHRpdmF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcmVuc29saWVtYW5zL2NhcHRpdmF0ZSIsCiAgInV1aWQiOiAiY2FwdGl2YXRlQHJlbnNvbGllbWFucy5ubCIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "0c1506lfm7iv59ha1gyc20v49xl3ivjn3qy9cxkdb68j37q50240", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFjdGl2YXRlIHlvdXIgQ2Fwc0xvY2sgYnV0dG9uLlxuVXNpbmcgZ25vbWUtdHdlYWtzLCByZW1hcCB5b3VyIENhcHNMb2NrIHRvIGEgTWVudSBrZXksIGFuZCB0aGVuIHRoaXMgZXh0ZW5zaW9uIHdvcmtzIHBlcmZlY3RseS4gQWx0ZXJuYXRpdmVseSwgY2hvb3NlIGEgZGlmZmVyZW50IGtleSBpbiB0aGUgZXh0ZW5zaW9uIHNldHRpbmdzLiIsCiAgIm5hbWUiOiAiQ2FwdGl2YXRlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhcHRpdmF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcmVuc29saWVtYW5zL2NhcHRpdmF0ZSIsCiAgInV1aWQiOiAiY2FwdGl2YXRlQHJlbnNvbGllbWFucy5ubCIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "goto-previous-workspaces@zubarev.net", "name": "Switch workspaces to previous", "pname": "switch-workspaces-to-previous", "description": "move to previous workspace", "link": "https://extensions.gnome.org/extension/4935/switch-workspaces-to-previous/", "shell_version_map": {"38": {"version": "1", "sha256": "0f2ri8w9zh49z81ya12rrfclmljhgv05yl30s0jbgafi9im396cv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIm1vdmUgdG8gcHJldmlvdXMgd29ya3NwYWNlIiwKICAibmFtZSI6ICJTd2l0Y2ggd29ya3NwYWNlcyB0byBwcmV2aW91cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiYW5kcmV5QHp1YmFyZXYubmV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdvdG8tcHJldmlvdXMtd29ya3NwYWNlcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F6eW9za29sL2dub21lLXNoZWxsLWV4dGVuc2lvbi1nb3RvLXByZXZpb3VzLXdvcmtzcGFjZXMiLAogICJ1dWlkIjogImdvdG8tcHJldmlvdXMtd29ya3NwYWNlc0B6dWJhcmV2Lm5ldCIsCiAgInZlcnNpb24iOiAxCn0="}, "40": {"version": "1", "sha256": "0f2ri8w9zh49z81ya12rrfclmljhgv05yl30s0jbgafi9im396cv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIm1vdmUgdG8gcHJldmlvdXMgd29ya3NwYWNlIiwKICAibmFtZSI6ICJTd2l0Y2ggd29ya3NwYWNlcyB0byBwcmV2aW91cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiYW5kcmV5QHp1YmFyZXYubmV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdvdG8tcHJldmlvdXMtd29ya3NwYWNlcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F6eW9za29sL2dub21lLXNoZWxsLWV4dGVuc2lvbi1nb3RvLXByZXZpb3VzLXdvcmtzcGFjZXMiLAogICJ1dWlkIjogImdvdG8tcHJldmlvdXMtd29ya3NwYWNlc0B6dWJhcmV2Lm5ldCIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "0f2ri8w9zh49z81ya12rrfclmljhgv05yl30s0jbgafi9im396cv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIm1vdmUgdG8gcHJldmlvdXMgd29ya3NwYWNlIiwKICAibmFtZSI6ICJTd2l0Y2ggd29ya3NwYWNlcyB0byBwcmV2aW91cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiYW5kcmV5QHp1YmFyZXYubmV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdvdG8tcHJldmlvdXMtd29ya3NwYWNlcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F6eW9za29sL2dub21lLXNoZWxsLWV4dGVuc2lvbi1nb3RvLXByZXZpb3VzLXdvcmtzcGFjZXMiLAogICJ1dWlkIjogImdvdG8tcHJldmlvdXMtd29ya3NwYWNlc0B6dWJhcmV2Lm5ldCIsCiAgInZlcnNpb24iOiAxCn0="}, "42": {"version": "1", "sha256": "0f2ri8w9zh49z81ya12rrfclmljhgv05yl30s0jbgafi9im396cv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIm1vdmUgdG8gcHJldmlvdXMgd29ya3NwYWNlIiwKICAibmFtZSI6ICJTd2l0Y2ggd29ya3NwYWNlcyB0byBwcmV2aW91cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiYW5kcmV5QHp1YmFyZXYubmV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdvdG8tcHJldmlvdXMtd29ya3NwYWNlcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F6eW9za29sL2dub21lLXNoZWxsLWV4dGVuc2lvbi1nb3RvLXByZXZpb3VzLXdvcmtzcGFjZXMiLAogICJ1dWlkIjogImdvdG8tcHJldmlvdXMtd29ya3NwYWNlc0B6dWJhcmV2Lm5ldCIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "draw-on-your-screen2@zhrexl.github.com", "name": "Draw On Your Screen 2", "pname": "draw-on-you-screen-2", "description": "Start drawing with Super+Alt+D and save your beautiful work by taking a screenshot", "link": "https://extensions.gnome.org/extension/4937/draw-on-you-screen-2/", "shell_version_map": {"40": {"version": "1", "sha256": "0ggqr3hn3cm4cd28qmwhz85fpc9lqxq9n4bc1mmyzb5b8y62smmg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhdGEtZGlyIjogImRyYXctb24teW91ci1zY3JlZW4iLAogICJkZXNjcmlwdGlvbiI6ICJTdGFydCBkcmF3aW5nIHdpdGggU3VwZXIrQWx0K0QgYW5kIHNhdmUgeW91ciBiZWF1dGlmdWwgd29yayBieSB0YWtpbmcgYSBzY3JlZW5zaG90IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZHJhdy1vbi15b3VyLXNjcmVlbiIsCiAgIm5hbWUiOiAiRHJhdyBPbiBZb3VyIFNjcmVlbiAyIiwKICAicGVyc2lzdGVudC1maWxlLW5hbWUiOiAicGVyc2lzdGVudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kcmF3LW9uLXlvdXItc2NyZWVuIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAic3ZnLWZpbGUtbmFtZSI6ICJEcmF3T25Zb3VyU2NyZWVuIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96aHJleGwvRHJhd09uWW91clNjcmVlbjIiLAogICJ1dWlkIjogImRyYXctb24teW91ci1zY3JlZW4yQHpocmV4bC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "41": {"version": "1", "sha256": "0ggqr3hn3cm4cd28qmwhz85fpc9lqxq9n4bc1mmyzb5b8y62smmg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhdGEtZGlyIjogImRyYXctb24teW91ci1zY3JlZW4iLAogICJkZXNjcmlwdGlvbiI6ICJTdGFydCBkcmF3aW5nIHdpdGggU3VwZXIrQWx0K0QgYW5kIHNhdmUgeW91ciBiZWF1dGlmdWwgd29yayBieSB0YWtpbmcgYSBzY3JlZW5zaG90IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZHJhdy1vbi15b3VyLXNjcmVlbiIsCiAgIm5hbWUiOiAiRHJhdyBPbiBZb3VyIFNjcmVlbiAyIiwKICAicGVyc2lzdGVudC1maWxlLW5hbWUiOiAicGVyc2lzdGVudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kcmF3LW9uLXlvdXItc2NyZWVuIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAic3ZnLWZpbGUtbmFtZSI6ICJEcmF3T25Zb3VyU2NyZWVuIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96aHJleGwvRHJhd09uWW91clNjcmVlbjIiLAogICJ1dWlkIjogImRyYXctb24teW91ci1zY3JlZW4yQHpocmV4bC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
-, {"uuid": "aztaskbar@aztaskbar.gitlab.com", "name": "App Icons Taskbar", "pname": "app-icons-taskbar", "description": "A simple app icon taskbar. Add running apps and favorites to the main panel.", "link": "https://extensions.gnome.org/extension/4944/app-icons-taskbar/", "shell_version_map": {"42": {"version": "1", "sha256": "09cxikjpbygd09qm9zig2sw2k3ry9k5p7621hi1rn60n32axs7c2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIEFkZCBydW5uaW5nIGFwcHMgYW5kIGZhdm9yaXRlcyB0byB0aGUgbWFpbiBwYW5lbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhenRhc2tiYXIiLAogICJuYW1lIjogIkFwcCBJY29ucyBUYXNrYmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmF6dGFza2JhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9BbmRyZXdaYWVjaC9henRhc2tiYXIiLAogICJ1dWlkIjogImF6dGFza2JhckBhenRhc2tiYXIuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
-, {"uuid": "netSpeedMonitor@nidyran.github.io", "name": "net speed monitor", "pname": "net-speed-monitor", "description": "This extension helps tracking and monitoring network speed.\nThere are five modes: \n1 - download speed only.\n2 - upload speed only.\n3 - download speed and upload speed together.\n4 - download speed and upload speed summed.\n5 - total data usage\nTo switch between modes, use left mouse click.\nTo switch between available sources, use right mouse click.\nThe first source with usage higher than zero will be picked by default.\nThe source code is available in the link below, update requests are welcome.", "link": "https://extensions.gnome.org/extension/4947/net-speed-monitor/", "shell_version_map": {"38": {"version": "1", "sha256": "01y2mychc3mcs1p65ylanbcmdad59zbr6vclrm88wza69wfv4kbd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBtYWlubHkgYnVpbHQgdG8gdHJhY2sgbmV0d29yayBzcGVlZC4iLAogICJuYW1lIjogIm5ldCBzcGVlZCBtb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWR5cmFuL25ldFNwZWVkTW9uaXRvci8iLAogICJ1dWlkIjogIm5ldFNwZWVkTW9uaXRvckBuaWR5cmFuLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxCn0="}, "40": {"version": "1", "sha256": "01y2mychc3mcs1p65ylanbcmdad59zbr6vclrm88wza69wfv4kbd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBtYWlubHkgYnVpbHQgdG8gdHJhY2sgbmV0d29yayBzcGVlZC4iLAogICJuYW1lIjogIm5ldCBzcGVlZCBtb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWR5cmFuL25ldFNwZWVkTW9uaXRvci8iLAogICJ1dWlkIjogIm5ldFNwZWVkTW9uaXRvckBuaWR5cmFuLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "01y2mychc3mcs1p65ylanbcmdad59zbr6vclrm88wza69wfv4kbd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBtYWlubHkgYnVpbHQgdG8gdHJhY2sgbmV0d29yayBzcGVlZC4iLAogICJuYW1lIjogIm5ldCBzcGVlZCBtb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWR5cmFuL25ldFNwZWVkTW9uaXRvci8iLAogICJ1dWlkIjogIm5ldFNwZWVkTW9uaXRvckBuaWR5cmFuLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "aztaskbar@aztaskbar.gitlab.com", "name": "App Icons Taskbar", "pname": "app-icons-taskbar", "description": "A simple app icon taskbar. Show running apps and favorites on the main panel.", "link": "https://extensions.gnome.org/extension/4944/app-icons-taskbar/", "shell_version_map": {"41": {"version": "7", "sha256": "1slix3771pmzdbhwsacssvbplfgsg7sq1in4xrja3wfz5ffikdb7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6dGFza2JhciIsCiAgInV1aWQiOiAiYXp0YXNrYmFyQGF6dGFza2Jhci5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "42": {"version": "7", "sha256": "1slix3771pmzdbhwsacssvbplfgsg7sq1in4xrja3wfz5ffikdb7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6dGFza2JhciIsCiAgInV1aWQiOiAiYXp0YXNrYmFyQGF6dGFza2Jhci5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "netSpeedMonitor@nidyran.github.io", "name": "net speed monitor", "pname": "net-speed-monitor", "description": "This extension helps tracking and monitoring network speed. \nThere are five modes: \n1 - download speed only. \n2 - upload speed only. \n3 - download speed and upload speed together. \n4 - download speed and upload speed summed. \n5 - total data usage \nTo switch between modes, use left mouse click. \nTo switch between available sources, use right mouse click. \nTo change refresh time 200 - 1000 use middle mouse click. \nThe first source with usage higher than zero will be picked by default. \nThe extension will pick the first source by default, and if no traffic is established it will switch to the next one and so on\nThe source code is available in the link below, update requests are welcome.", "link": "https://extensions.gnome.org/extension/4947/net-speed-monitor/", "shell_version_map": {"38": {"version": "5", "sha256": "1zvp8zx82kqbf9ck55csgcysld3z1gr3cigkl5y73s5rvqj3ks5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHRyYWNraW5nIGFuZCBtb25pdG9yaW5nIG5ldHdvcmsgc3BlZWQuIFxuVGhlcmUgYXJlIGZpdmUgbW9kZXM6IFxuMSAtIGRvd25sb2FkIHNwZWVkIG9ubHkuIFxuMiAtIHVwbG9hZCBzcGVlZCBvbmx5LiBcbjMgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHRvZ2V0aGVyLiBcbjQgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHN1bW1lZC4gXG41IC0gdG90YWwgZGF0YSB1c2FnZSBcblRvIHN3aXRjaCBiZXR3ZWVuIG1vZGVzLCB1c2UgbGVmdCBtb3VzZSBjbGljay4gXG5UbyBzd2l0Y2ggYmV0d2VlbiBhdmFpbGFibGUgc291cmNlcywgdXNlIHJpZ2h0IG1vdXNlIGNsaWNrLiBcblRvIGNoYW5nZSByZWZyZXNoIHRpbWUgMjAwIC0gMTAwMCB1c2UgbWlkZGxlIG1vdXNlIGNsaWNrLiBcblRoZSBmaXJzdCBzb3VyY2Ugd2l0aCB1c2FnZSBoaWdoZXIgdGhhbiB6ZXJvIHdpbGwgYmUgcGlja2VkIGJ5IGRlZmF1bHQuIFxuVGhlIGV4dGVuc2lvbiB3aWxsIHBpY2sgdGhlIGZpcnN0IHNvdXJjZSBieSBkZWZhdWx0LCBhbmQgaWYgbm8gdHJhZmZpYyBpcyBlc3RhYmxpc2hlZCBpdCB3aWxsIHN3aXRjaCB0byB0aGUgbmV4dCBvbmUgYW5kIHNvIG9uXG5UaGUgc291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rIGJlbG93LCB1cGRhdGUgcmVxdWVzdHMgYXJlIHdlbGNvbWUuIiwKICAibmFtZSI6ICJuZXQgc3BlZWQgbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmlkeXJhbi9uZXRTcGVlZE1vbml0b3IvIiwKICAidXVpZCI6ICJuZXRTcGVlZE1vbml0b3JAbmlkeXJhbi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "1zvp8zx82kqbf9ck55csgcysld3z1gr3cigkl5y73s5rvqj3ks5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHRyYWNraW5nIGFuZCBtb25pdG9yaW5nIG5ldHdvcmsgc3BlZWQuIFxuVGhlcmUgYXJlIGZpdmUgbW9kZXM6IFxuMSAtIGRvd25sb2FkIHNwZWVkIG9ubHkuIFxuMiAtIHVwbG9hZCBzcGVlZCBvbmx5LiBcbjMgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHRvZ2V0aGVyLiBcbjQgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHN1bW1lZC4gXG41IC0gdG90YWwgZGF0YSB1c2FnZSBcblRvIHN3aXRjaCBiZXR3ZWVuIG1vZGVzLCB1c2UgbGVmdCBtb3VzZSBjbGljay4gXG5UbyBzd2l0Y2ggYmV0d2VlbiBhdmFpbGFibGUgc291cmNlcywgdXNlIHJpZ2h0IG1vdXNlIGNsaWNrLiBcblRvIGNoYW5nZSByZWZyZXNoIHRpbWUgMjAwIC0gMTAwMCB1c2UgbWlkZGxlIG1vdXNlIGNsaWNrLiBcblRoZSBmaXJzdCBzb3VyY2Ugd2l0aCB1c2FnZSBoaWdoZXIgdGhhbiB6ZXJvIHdpbGwgYmUgcGlja2VkIGJ5IGRlZmF1bHQuIFxuVGhlIGV4dGVuc2lvbiB3aWxsIHBpY2sgdGhlIGZpcnN0IHNvdXJjZSBieSBkZWZhdWx0LCBhbmQgaWYgbm8gdHJhZmZpYyBpcyBlc3RhYmxpc2hlZCBpdCB3aWxsIHN3aXRjaCB0byB0aGUgbmV4dCBvbmUgYW5kIHNvIG9uXG5UaGUgc291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rIGJlbG93LCB1cGRhdGUgcmVxdWVzdHMgYXJlIHdlbGNvbWUuIiwKICAibmFtZSI6ICJuZXQgc3BlZWQgbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmlkeXJhbi9uZXRTcGVlZE1vbml0b3IvIiwKICAidXVpZCI6ICJuZXRTcGVlZE1vbml0b3JAbmlkeXJhbi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "1zvp8zx82kqbf9ck55csgcysld3z1gr3cigkl5y73s5rvqj3ks5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHRyYWNraW5nIGFuZCBtb25pdG9yaW5nIG5ldHdvcmsgc3BlZWQuIFxuVGhlcmUgYXJlIGZpdmUgbW9kZXM6IFxuMSAtIGRvd25sb2FkIHNwZWVkIG9ubHkuIFxuMiAtIHVwbG9hZCBzcGVlZCBvbmx5LiBcbjMgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHRvZ2V0aGVyLiBcbjQgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHN1bW1lZC4gXG41IC0gdG90YWwgZGF0YSB1c2FnZSBcblRvIHN3aXRjaCBiZXR3ZWVuIG1vZGVzLCB1c2UgbGVmdCBtb3VzZSBjbGljay4gXG5UbyBzd2l0Y2ggYmV0d2VlbiBhdmFpbGFibGUgc291cmNlcywgdXNlIHJpZ2h0IG1vdXNlIGNsaWNrLiBcblRvIGNoYW5nZSByZWZyZXNoIHRpbWUgMjAwIC0gMTAwMCB1c2UgbWlkZGxlIG1vdXNlIGNsaWNrLiBcblRoZSBmaXJzdCBzb3VyY2Ugd2l0aCB1c2FnZSBoaWdoZXIgdGhhbiB6ZXJvIHdpbGwgYmUgcGlja2VkIGJ5IGRlZmF1bHQuIFxuVGhlIGV4dGVuc2lvbiB3aWxsIHBpY2sgdGhlIGZpcnN0IHNvdXJjZSBieSBkZWZhdWx0LCBhbmQgaWYgbm8gdHJhZmZpYyBpcyBlc3RhYmxpc2hlZCBpdCB3aWxsIHN3aXRjaCB0byB0aGUgbmV4dCBvbmUgYW5kIHNvIG9uXG5UaGUgc291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rIGJlbG93LCB1cGRhdGUgcmVxdWVzdHMgYXJlIHdlbGNvbWUuIiwKICAibmFtZSI6ICJuZXQgc3BlZWQgbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmlkeXJhbi9uZXRTcGVlZE1vbml0b3IvIiwKICAidXVpZCI6ICJuZXRTcGVlZE1vbml0b3JAbmlkeXJhbi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "gradienttopbar@pshow.org", "name": "Gradient Top Bar for Gnome 40+", "pname": "gradient-top-bar", "description": "Makes GNOME's topbar's background gradient. This extension is based on https://extensions.gnome.org/extension/1264/gradient-top-bar/", "link": "https://extensions.gnome.org/extension/4955/gradient-top-bar/", "shell_version_map": {"38": {"version": "2", "sha256": "0fljxnp8a6gxw13iaj5p5gh6zd2xy0hk4xc3ia3zl0vgs5jfhbby", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gVGhpcyBleHRlbnNpb24gaXMgYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTI2NC9ncmFkaWVudC10b3AtYmFyLyIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciBmb3IgR25vbWUgNDArIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGV0YXItdi9ncmFkaWVudHRvcGJhciIsCiAgInV1aWQiOiAiZ3JhZGllbnR0b3BiYXJAcHNob3cub3JnIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "0fljxnp8a6gxw13iaj5p5gh6zd2xy0hk4xc3ia3zl0vgs5jfhbby", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gVGhpcyBleHRlbnNpb24gaXMgYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTI2NC9ncmFkaWVudC10b3AtYmFyLyIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciBmb3IgR25vbWUgNDArIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGV0YXItdi9ncmFkaWVudHRvcGJhciIsCiAgInV1aWQiOiAiZ3JhZGllbnR0b3BiYXJAcHNob3cub3JnIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "41": {"version": "2", "sha256": "0fljxnp8a6gxw13iaj5p5gh6zd2xy0hk4xc3ia3zl0vgs5jfhbby", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gVGhpcyBleHRlbnNpb24gaXMgYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTI2NC9ncmFkaWVudC10b3AtYmFyLyIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciBmb3IgR25vbWUgNDArIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGV0YXItdi9ncmFkaWVudHRvcGJhciIsCiAgInV1aWQiOiAiZ3JhZGllbnR0b3BiYXJAcHNob3cub3JnIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "42": {"version": "2", "sha256": "0fljxnp8a6gxw13iaj5p5gh6zd2xy0hk4xc3ia3zl0vgs5jfhbby", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gVGhpcyBleHRlbnNpb24gaXMgYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTI2NC9ncmFkaWVudC10b3AtYmFyLyIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciBmb3IgR25vbWUgNDArIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGV0YXItdi9ncmFkaWVudHRvcGJhciIsCiAgInV1aWQiOiAiZ3JhZGllbnR0b3BiYXJAcHNob3cub3JnIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "clipman@popov895.ukr.net", "name": "Clipman", "pname": "clipman", "description": "Simple clipboard manager.", "link": "https://extensions.gnome.org/extension/4958/clipman/", "shell_version_map": {"40": {"version": "9", "sha256": "1cn6qww5zaf0h8m5gxb2cg8ir3drjj4ag7al7zrsw2qb68lqg1jq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjbGlwYm9hcmQgbWFuYWdlci4iLAogICJuYW1lIjogIkNsaXBtYW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wb3Bvdjg5NS9DbGlwbWFuIiwKICAidXVpZCI6ICJjbGlwbWFuQHBvcG92ODk1LnVrci5uZXQiLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "1cn6qww5zaf0h8m5gxb2cg8ir3drjj4ag7al7zrsw2qb68lqg1jq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjbGlwYm9hcmQgbWFuYWdlci4iLAogICJuYW1lIjogIkNsaXBtYW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wb3Bvdjg5NS9DbGlwbWFuIiwKICAidXVpZCI6ICJjbGlwbWFuQHBvcG92ODk1LnVrci5uZXQiLAogICJ2ZXJzaW9uIjogOQp9"}, "42": {"version": "9", "sha256": "1cn6qww5zaf0h8m5gxb2cg8ir3drjj4ag7al7zrsw2qb68lqg1jq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjbGlwYm9hcmQgbWFuYWdlci4iLAogICJuYW1lIjogIkNsaXBtYW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wb3Bvdjg5NS9DbGlwbWFuIiwKICAidXVpZCI6ICJjbGlwbWFuQHBvcG92ODk1LnVrci5uZXQiLAogICJ2ZXJzaW9uIjogOQp9"}}}
+, {"uuid": "note@eexpss.gmail.com", "name": "note", "pname": "note", "description": "Add selected text to Note.\n- Notes automatic recognition and sort as 'Directory' 'Command' 'Clipboard'.\n- 'Directory': Mouse 1/2/3 act as 'Open in Files/Open in termianl/Paste dir'. It can be used as a temporary bookmark. And any click will change the working diretory in real time.\n- 'Command': Mouse 1/3 as 'Excute command in Terminal/Paste cmd'.\n- 'Clipboard': Mouse act as 'Paste to Clipboard(PRIMARY)'.\n- Terminal support kgx(new gnome-console) and gnome-terminal.", "link": "https://extensions.gnome.org/extension/4962/note/", "shell_version_map": {"42": {"version": "5", "sha256": "0jkywz3ygclrl4h5i7a29q9k0cncr5knd57pxhr8rfsr7lh0854q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBzZWxlY3RlZCB0ZXh0IHRvIE5vdGUuXG4tIE5vdGVzIGF1dG9tYXRpYyByZWNvZ25pdGlvbiBhbmQgc29ydCBhcyAnRGlyZWN0b3J5JyAnQ29tbWFuZCcgJ0NsaXBib2FyZCcuXG4tICdEaXJlY3RvcnknOiBNb3VzZSAxLzIvMyBhY3QgYXMgJ09wZW4gaW4gRmlsZXMvT3BlbiBpbiB0ZXJtaWFubC9QYXN0ZSBkaXInLiBJdCBjYW4gYmUgdXNlZCBhcyBhIHRlbXBvcmFyeSBib29rbWFyay4gQW5kIGFueSBjbGljayB3aWxsIGNoYW5nZSB0aGUgd29ya2luZyBkaXJldG9yeSBpbiByZWFsIHRpbWUuXG4tICdDb21tYW5kJzogTW91c2UgMS8zIGFzICdFeGN1dGUgY29tbWFuZCBpbiBUZXJtaW5hbC9QYXN0ZSBjbWQnLlxuLSAnQ2xpcGJvYXJkJzogTW91c2UgYWN0IGFzICdQYXN0ZSB0byBDbGlwYm9hcmQoUFJJTUFSWSknLlxuLSBUZXJtaW5hbCBzdXBwb3J0IGtneChuZXcgZ25vbWUtY29uc29sZSkgYW5kIGdub21lLXRlcm1pbmFsLiIsCiAgImdldHRleHQtZG9tYWluIjogIm5vdGUiLAogICJuYW1lIjogIm5vdGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lZXhwcmVzcy9ncy1ub3RlIiwKICAidXVpZCI6ICJub3RlQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "ddnet-friends-panel@hus3h", "name": "DDNet Friends Panel", "pname": "ddnet-friends-panel", "description": "Automatically check for online DDNet friends and join them from your top bar.\n\nThis extension will check for online DDNet friends every 1 minute and show their count in your top bar. You can click the indicator to expand the panel and see more details like what map each friend is playing, you can click on a friend list item to launch the game and connect to the server they are in.\n\nMore details: https://github.com/hus3h/gnome-shell-extension-ddnet-friends-panel", "link": "https://extensions.gnome.org/extension/4965/ddnet-friends-panel/", "shell_version_map": {"40": {"version": "1", "sha256": "1v0axd614hrrrzqps6nkg9daki8fcykfd20w201gxvdnmrvfspkc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgY2hlY2sgZm9yIG9ubGluZSBERE5ldCBmcmllbmRzIGFuZCBqb2luIHRoZW0gZnJvbSB5b3VyIHRvcCBiYXIuXG5cblRoaXMgZXh0ZW5zaW9uIHdpbGwgY2hlY2sgZm9yIG9ubGluZSBERE5ldCBmcmllbmRzIGV2ZXJ5IDEgbWludXRlIGFuZCBzaG93IHRoZWlyIGNvdW50IGluIHlvdXIgdG9wIGJhci4gWW91IGNhbiBjbGljayB0aGUgaW5kaWNhdG9yIHRvIGV4cGFuZCB0aGUgcGFuZWwgYW5kIHNlZSBtb3JlIGRldGFpbHMgbGlrZSB3aGF0IG1hcCBlYWNoIGZyaWVuZCBpcyBwbGF5aW5nLCB5b3UgY2FuIGNsaWNrIG9uIGEgZnJpZW5kIGxpc3QgaXRlbSB0byBsYXVuY2ggdGhlIGdhbWUgYW5kIGNvbm5lY3QgdG8gdGhlIHNlcnZlciB0aGV5IGFyZSBpbi5cblxuTW9yZSBkZXRhaWxzOiBodHRwczovL2dpdGh1Yi5jb20vaHVzM2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRkbmV0LWZyaWVuZHMtcGFuZWwiLAogICJuYW1lIjogIkRETmV0IEZyaWVuZHMgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2h1czNoL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZG5ldC1mcmllbmRzLXBhbmVsIiwKICAidXVpZCI6ICJkZG5ldC1mcmllbmRzLXBhbmVsQGh1czNoIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "41": {"version": "1", "sha256": "1v0axd614hrrrzqps6nkg9daki8fcykfd20w201gxvdnmrvfspkc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgY2hlY2sgZm9yIG9ubGluZSBERE5ldCBmcmllbmRzIGFuZCBqb2luIHRoZW0gZnJvbSB5b3VyIHRvcCBiYXIuXG5cblRoaXMgZXh0ZW5zaW9uIHdpbGwgY2hlY2sgZm9yIG9ubGluZSBERE5ldCBmcmllbmRzIGV2ZXJ5IDEgbWludXRlIGFuZCBzaG93IHRoZWlyIGNvdW50IGluIHlvdXIgdG9wIGJhci4gWW91IGNhbiBjbGljayB0aGUgaW5kaWNhdG9yIHRvIGV4cGFuZCB0aGUgcGFuZWwgYW5kIHNlZSBtb3JlIGRldGFpbHMgbGlrZSB3aGF0IG1hcCBlYWNoIGZyaWVuZCBpcyBwbGF5aW5nLCB5b3UgY2FuIGNsaWNrIG9uIGEgZnJpZW5kIGxpc3QgaXRlbSB0byBsYXVuY2ggdGhlIGdhbWUgYW5kIGNvbm5lY3QgdG8gdGhlIHNlcnZlciB0aGV5IGFyZSBpbi5cblxuTW9yZSBkZXRhaWxzOiBodHRwczovL2dpdGh1Yi5jb20vaHVzM2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRkbmV0LWZyaWVuZHMtcGFuZWwiLAogICJuYW1lIjogIkRETmV0IEZyaWVuZHMgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2h1czNoL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZG5ldC1mcmllbmRzLXBhbmVsIiwKICAidXVpZCI6ICJkZG5ldC1mcmllbmRzLXBhbmVsQGh1czNoIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "theme-switcher@fthx", "name": "Light/Dark Theme Switcher", "pname": "lightdark-theme-switcher", "description": "Button in panel: switch between global dark and light themes. For GNOME Shell 42+.", "link": "https://extensions.gnome.org/extension/4968/lightdark-theme-switcher/", "shell_version_map": {"42": {"version": "3", "sha256": "1jg157z5rib8inhmmcka962bnzk4kc21azrh89q93f9v26k1y9jj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiBpbiBwYW5lbDogc3dpdGNoIGJldHdlZW4gZ2xvYmFsIGRhcmsgYW5kIGxpZ2h0IHRoZW1lcy4gRm9yIEdOT01FIFNoZWxsIDQyKy4iLAogICJuYW1lIjogIkxpZ2h0L0RhcmsgVGhlbWUgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC90aGVtZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAidGhlbWUtc3dpdGNoZXJAZnRoeCIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "window-calls-extended@hseliger.eu", "name": "Window Calls Extended", "pname": "window-calls-extended", "description": "Add new dbus call for windows to get windows list and some of theirs properties, plus details on window under focus.", "link": "https://extensions.gnome.org/extension/4974/window-calls-extended/", "shell_version_map": {"41": {"version": "1", "sha256": "0ah8f8v3597jiwgfniy46jqlhir3xhzhxpcmzg0c1nsx63dqcxkr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBuZXcgZGJ1cyBjYWxsIGZvciB3aW5kb3dzIHRvIGdldCB3aW5kb3dzIGxpc3QgYW5kIHNvbWUgb2YgdGhlaXJzIHByb3BlcnRpZXMsIHBsdXMgZGV0YWlscyBvbiB3aW5kb3cgdW5kZXIgZm9jdXMuIiwKICAibmFtZSI6ICJXaW5kb3cgQ2FsbHMgRXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaHNlbGlnZXIvd2luZG93LWNhbGxzLWV4dGVuZGVkIiwKICAidXVpZCI6ICJ3aW5kb3ctY2FsbHMtZXh0ZW5kZWRAaHNlbGlnZXIuZXUiLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "Sur_Clock@medaip90.com", "name": "Sur Clock", "pname": "sur-clock", "description": "Move the clock to the left or the right of the system indicators like in MacOs.", "link": "https://extensions.gnome.org/extension/4977/sur-clock/", "shell_version_map": {"40": {"version": "2", "sha256": "01689ldy0ghjj75i5pncb4nhl8w4yzwj0pb8y5q8wkiirv7h0cxy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIGNsb2NrIHRvIHRoZSBsZWZ0IG9yIHRoZSByaWdodCBvZiB0aGUgc3lzdGVtIGluZGljYXRvcnMgbGlrZSBpbiBNYWNPcy4iLAogICJuYW1lIjogIlN1ciBDbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01lZGFpUDkwL2dub21lLXN1ci1jbG9jayIsCiAgInV1aWQiOiAiU3VyX0Nsb2NrQG1lZGFpcDkwLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "01689ldy0ghjj75i5pncb4nhl8w4yzwj0pb8y5q8wkiirv7h0cxy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIGNsb2NrIHRvIHRoZSBsZWZ0IG9yIHRoZSByaWdodCBvZiB0aGUgc3lzdGVtIGluZGljYXRvcnMgbGlrZSBpbiBNYWNPcy4iLAogICJuYW1lIjogIlN1ciBDbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01lZGFpUDkwL2dub21lLXN1ci1jbG9jayIsCiAgInV1aWQiOiAiU3VyX0Nsb2NrQG1lZGFpcDkwLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "42": {"version": "2", "sha256": "01689ldy0ghjj75i5pncb4nhl8w4yzwj0pb8y5q8wkiirv7h0cxy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIGNsb2NrIHRvIHRoZSBsZWZ0IG9yIHRoZSByaWdodCBvZiB0aGUgc3lzdGVtIGluZGljYXRvcnMgbGlrZSBpbiBNYWNPcy4iLAogICJuYW1lIjogIlN1ciBDbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01lZGFpUDkwL2dub21lLXN1ci1jbG9jayIsCiAgInV1aWQiOiAiU3VyX0Nsb2NrQG1lZGFpcDkwLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "disable-workspace-switcher@jbradaric.me", "name": "Disable Workspace Switcher", "pname": "disable-workspace-switcher", "description": "Disable the workspace switcher popup.", "link": "https://extensions.gnome.org/extension/4980/disable-workspace-switcher/", "shell_version_map": {"42": {"version": "1", "sha256": "0wpkcaqnlwg5065ygmmqiai9vqwwwl3kd22zhg2s6kcxz3b42is6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cC4iLAogICJuYW1lIjogIkRpc2FibGUgV29ya3NwYWNlIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2picmFkYXJpYy9kaXNhYmxlLXdvcmtzcGFjZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiZGlzYWJsZS13b3Jrc3BhY2Utc3dpdGNoZXJAamJyYWRhcmljLm1lIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "nextcloud-folder@cosinus.org", "name": "Nextcloud Folder", "pname": "nextcloud-folder", "description": "Simple extension to open nextcloud folder", "link": "https://extensions.gnome.org/extension/4983/nextcloud-folder/", "shell_version_map": {"42": {"version": "3", "sha256": "1r6r2243n0ssy2qkm7vw5vn8mmklmka0giwwsnrdsz2dqrhqb6bs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gb3BlbiBuZXh0Y2xvdWQgZm9sZGVyIiwKICAibmFtZSI6ICJOZXh0Y2xvdWQgRm9sZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5leHRjbG91ZC1mb2xkZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxlc2NkYi9uZXh0Y2xvdWQtZm9sZGVyIiwKICAidXVpZCI6ICJuZXh0Y2xvdWQtZm9sZGVyQGNvc2ludXMub3JnIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "php-laravel-valet@rahulhaque", "name": "PHP Laravel Valet", "pname": "php-laravel-valet", "description": "A PHP Laravel Valet status indicator and manager.", "link": "https://extensions.gnome.org/extension/4985/php-laravel-valet/", "shell_version_map": {"40": {"version": "3", "sha256": "0dkil646p1gzdi49gfdcmqkkgax8s0h3za9mr53dvk9cl1hlx091", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUEhQIExhcmF2ZWwgVmFsZXQgc3RhdHVzIGluZGljYXRvciBhbmQgbWFuYWdlci4iLAogICJuYW1lIjogIlBIUCBMYXJhdmVsIFZhbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFodWxoYXF1ZS9waHAtbGFyYXZlbC12YWxldC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInBocC1sYXJhdmVsLXZhbGV0QHJhaHVsaGFxdWUiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "0dkil646p1gzdi49gfdcmqkkgax8s0h3za9mr53dvk9cl1hlx091", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUEhQIExhcmF2ZWwgVmFsZXQgc3RhdHVzIGluZGljYXRvciBhbmQgbWFuYWdlci4iLAogICJuYW1lIjogIlBIUCBMYXJhdmVsIFZhbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFodWxoYXF1ZS9waHAtbGFyYXZlbC12YWxldC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInBocC1sYXJhdmVsLXZhbGV0QHJhaHVsaGFxdWUiLAogICJ2ZXJzaW9uIjogMwp9"}, "42": {"version": "3", "sha256": "0dkil646p1gzdi49gfdcmqkkgax8s0h3za9mr53dvk9cl1hlx091", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUEhQIExhcmF2ZWwgVmFsZXQgc3RhdHVzIGluZGljYXRvciBhbmQgbWFuYWdlci4iLAogICJuYW1lIjogIlBIUCBMYXJhdmVsIFZhbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFodWxoYXF1ZS9waHAtbGFyYXZlbC12YWxldC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInBocC1sYXJhdmVsLXZhbGV0QHJhaHVsaGFxdWUiLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "Home-Server@sven.kramer", "name": "Home-Server", "pname": "home-server", "description": "A simple Indicator that shows my home-server status (online / offline) on the main panel. Furthermore a wake on lan can be triggered. For WOL functionality, its necessary that you have 'wakeonlan' installed.", "link": "https://extensions.gnome.org/extension/4989/home-server/", "shell_version_map": {"38": {"version": "1", "sha256": "05cwv23w1438pg38ixhrvm360g3s11vrl8wqk84ai2xgydy94z2f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIEluZGljYXRvciB0aGF0IHNob3dzIG15IGhvbWUtc2VydmVyIHN0YXR1cyAob25saW5lIC8gb2ZmbGluZSkgb24gdGhlIG1haW4gcGFuZWwuIEZ1cnRoZXJtb3JlIGEgd2FrZSBvbiBsYW4gY2FuIGJlIHRyaWdnZXJlZC4gRm9yIFdPTCBmdW5jdGlvbmFsaXR5LCBpdHMgbmVjZXNzYXJ5IHRoYXQgeW91IGhhdmUgJ3dha2VvbmxhbicgaW5zdGFsbGVkLiIsCiAgIm1pbm9yIjogMSwKICAibmFtZSI6ICJIb21lLVNlcnZlciIsCiAgInJldmlzaW9uIjogMSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhvbWUtU2VydmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL3d3dy5zdmVuLWtyYW1lci5ldS9saW51eC9nbm9tZS1zaGVsbC1leHRlbnNpb24vaG9tZS1zZXJ2ZXIvIiwKICAidXVpZCI6ICJIb21lLVNlcnZlckBzdmVuLmtyYW1lciIsCiAgInZlcnNpb24iOiAxCn0="}, "40": {"version": "1", "sha256": "05cwv23w1438pg38ixhrvm360g3s11vrl8wqk84ai2xgydy94z2f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIEluZGljYXRvciB0aGF0IHNob3dzIG15IGhvbWUtc2VydmVyIHN0YXR1cyAob25saW5lIC8gb2ZmbGluZSkgb24gdGhlIG1haW4gcGFuZWwuIEZ1cnRoZXJtb3JlIGEgd2FrZSBvbiBsYW4gY2FuIGJlIHRyaWdnZXJlZC4gRm9yIFdPTCBmdW5jdGlvbmFsaXR5LCBpdHMgbmVjZXNzYXJ5IHRoYXQgeW91IGhhdmUgJ3dha2VvbmxhbicgaW5zdGFsbGVkLiIsCiAgIm1pbm9yIjogMSwKICAibmFtZSI6ICJIb21lLVNlcnZlciIsCiAgInJldmlzaW9uIjogMSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhvbWUtU2VydmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL3d3dy5zdmVuLWtyYW1lci5ldS9saW51eC9nbm9tZS1zaGVsbC1leHRlbnNpb24vaG9tZS1zZXJ2ZXIvIiwKICAidXVpZCI6ICJIb21lLVNlcnZlckBzdmVuLmtyYW1lciIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "05cwv23w1438pg38ixhrvm360g3s11vrl8wqk84ai2xgydy94z2f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIEluZGljYXRvciB0aGF0IHNob3dzIG15IGhvbWUtc2VydmVyIHN0YXR1cyAob25saW5lIC8gb2ZmbGluZSkgb24gdGhlIG1haW4gcGFuZWwuIEZ1cnRoZXJtb3JlIGEgd2FrZSBvbiBsYW4gY2FuIGJlIHRyaWdnZXJlZC4gRm9yIFdPTCBmdW5jdGlvbmFsaXR5LCBpdHMgbmVjZXNzYXJ5IHRoYXQgeW91IGhhdmUgJ3dha2VvbmxhbicgaW5zdGFsbGVkLiIsCiAgIm1pbm9yIjogMSwKICAibmFtZSI6ICJIb21lLVNlcnZlciIsCiAgInJldmlzaW9uIjogMSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhvbWUtU2VydmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL3d3dy5zdmVuLWtyYW1lci5ldS9saW51eC9nbm9tZS1zaGVsbC1leHRlbnNpb24vaG9tZS1zZXJ2ZXIvIiwKICAidXVpZCI6ICJIb21lLVNlcnZlckBzdmVuLmtyYW1lciIsCiAgInZlcnNpb24iOiAxCn0="}, "42": {"version": "1", "sha256": "05cwv23w1438pg38ixhrvm360g3s11vrl8wqk84ai2xgydy94z2f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIEluZGljYXRvciB0aGF0IHNob3dzIG15IGhvbWUtc2VydmVyIHN0YXR1cyAob25saW5lIC8gb2ZmbGluZSkgb24gdGhlIG1haW4gcGFuZWwuIEZ1cnRoZXJtb3JlIGEgd2FrZSBvbiBsYW4gY2FuIGJlIHRyaWdnZXJlZC4gRm9yIFdPTCBmdW5jdGlvbmFsaXR5LCBpdHMgbmVjZXNzYXJ5IHRoYXQgeW91IGhhdmUgJ3dha2VvbmxhbicgaW5zdGFsbGVkLiIsCiAgIm1pbm9yIjogMSwKICAibmFtZSI6ICJIb21lLVNlcnZlciIsCiAgInJldmlzaW9uIjogMSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhvbWUtU2VydmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL3d3dy5zdmVuLWtyYW1lci5ldS9saW51eC9nbm9tZS1zaGVsbC1leHRlbnNpb24vaG9tZS1zZXJ2ZXIvIiwKICAidXVpZCI6ICJIb21lLVNlcnZlckBzdmVuLmtyYW1lciIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "animate@eexpss.gmail.com", "name": "animate", "pname": "animate", "description": "animate, useless cartoon man run thr the screen.", "link": "https://extensions.gnome.org/extension/4995/animate/", "shell_version_map": {"42": {"version": "2", "sha256": "1r7i10br5sl7cx9jjq31gld35x9m20aaabnnfgv7i6ng1p91nn79", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImFuaW1hdGUsIHVzZWxlc3MgY2FydG9vbiBtYW4gcnVuIHRociB0aGUgc2NyZWVuLiIsCiAgImdldHRleHQtZG9tYWluIjogImFuaW1hdGUiLAogICJuYW1lIjogImFuaW1hdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFuaW1hdGVAZWV4cHNzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
 ]
diff --git a/pkgs/desktops/gnome/extensions/impatience/default.nix b/pkgs/desktops/gnome/extensions/impatience/default.nix
index 867534ba61d04..559b5edf0a3f1 100644
--- a/pkgs/desktops/gnome/extensions/impatience/default.nix
+++ b/pkgs/desktops/gnome/extensions/impatience/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-impatience";
-  version = "unstable-2019-09-23";
+  version = "unstable-2022-03-26";
 
   src = fetchFromGitHub {
     owner = "timbertson";
     repo = "gnome-shell-impatience";
-    rev = "43e4e0a1e0eeb334a2da5224ce3ab4fdddf4f1b2";
-    sha256 = "0kvdhlz41fjyqdgcfw6mrr9nali6wg2qwji3dvykzfi0aypljzpx";
+    rev = "cf7c0bb8776af9a16e4ae114df0cc65869fb669d";
+    sha256 = "sha256-z/pZxSEFELtg7kueS2i6gN1+VbN0m4mxc34pOCMak5g=";
   };
 
   buildInputs = [
diff --git a/pkgs/desktops/gnome/extensions/manuallyPackaged.nix b/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
index 6e2f1f6f26203..f5087ca3a69af 100644
--- a/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
+++ b/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
@@ -9,7 +9,6 @@
   "gsconnect@andyholmes.github.io" = callPackage ./gsconnect { };
   "icon-hider@kalnitsky.org" = callPackage ./icon-hider { };
   "impatience@gfxmonk.net" = callPackage ./impatience { };
-  "nightthemeswitcher@romainvigier.fr" = callPackage ./night-theme-switcher { };
   "no-title-bar@jonaspoehler.de" = callPackage ./no-title-bar { };
   "paperwm@hedning:matrix.org" = callPackage ./paperwm { };
   "pidgin@muffinmad" = callPackage ./pidgin-im-integration { };
diff --git a/pkgs/desktops/gnome/extensions/night-theme-switcher/default.nix b/pkgs/desktops/gnome/extensions/night-theme-switcher/default.nix
deleted file mode 100644
index 8332d0afa4aca..0000000000000
--- a/pkgs/desktops/gnome/extensions/night-theme-switcher/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib, stdenv, fetchFromGitLab, glib, gnome, unzip }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-shell-extension-night-theme-switcher";
-  version = "53";
-
-  src = fetchFromGitLab {
-    owner = "rmnvgr";
-    repo = "nightthemeswitcher-gnome-shell-extension";
-    rev = version;
-    sha256 = "0dgnh1aj0y89jzfkpj8zs4gdbmyc1v8lbki2q30gld17ljv4l6lh";
-  };
-
-  nativeBuildInputs = [ unzip ];
-  buildInputs = [ glib gnome.gnome-shell ];
-
-  passthru = {
-    extensionUuid = "nightthemeswitcher@romainvigier.fr";
-    extensionPortalSlug = "night-theme-switcher";
-  };
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/gnome-shell/extensions/
-    unzip "build/nightthemeswitcher@romainvigier.fr.shell-extension.zip" -d "$out/share/gnome-shell/extensions/nightthemeswitcher@romainvigier.fr"
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    description = "Automatically change the GTK theme to dark variant when Night Light activates";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ jonafato ];
-    homepage = "https://gitlab.com/rmnvgr/nightthemeswitcher-gnome-shell-extension/";
-  };
-}
diff --git a/pkgs/desktops/gnome/extensions/system-monitor/default.nix b/pkgs/desktops/gnome/extensions/system-monitor/default.nix
index d770acfec16f9..216a1d4c77de4 100644
--- a/pkgs/desktops/gnome/extensions/system-monitor/default.nix
+++ b/pkgs/desktops/gnome/extensions/system-monitor/default.nix
@@ -1,20 +1,19 @@
-{ lib, stdenv, substituteAll, fetchFromGitHub, fetchpatch, glib, glib-networking, libgtop, gnome }:
+{ lib, stdenv, substituteAll, fetchFromGitHub, glib, glib-networking, libgtop, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-system-monitor";
-  version = "unstable-2021-09-07";
+  version = "unstable-2022-02-04";
 
   src = fetchFromGitHub {
     owner = "paradoxxxzero";
     repo = "gnome-shell-system-monitor-applet";
-    rev = "133f9f32bca5d159515d709bbdee81bf497ebdc5";
-    sha256 = "1vz1s1x22xmmzaayrzv5jyzlmxslhfaybbnv959szvfp4mdrhch9";
+    rev = "2c6eb0a447bfc9f1a07c61956c92a55c874baf16";
+    hash = "sha256-JuRRlvqlqneqUdgezKGl2yg7wFYGCCo51q9CBwrxTBY=";
   };
 
-  buildInputs = [
+  nativeBuildInputs = [
     glib
-    glib-networking
-    libgtop
+    gnome.gnome-shell
   ];
 
   patches = [
@@ -24,25 +23,13 @@ stdenv.mkDerivation rec {
       gtop_path = "${libgtop}/lib/girepository-1.0";
       glib_net_path = "${glib-networking}/lib/girepository-1.0";
     })
-    # Support GNOME 41
-    (fetchpatch {
-      url = "https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet/pull/718/commits/f4ebc29afa707326b977230329e634db169f55b1.patch";
-      sha256 = "0ndnla41mvrww6ldf9d55ar1ibyj8ak5pp1dkjg75jii9slgzjqb";
-    })
   ];
 
-  buildPhase = ''
-    runHook preBuild
-    glib-compile-schemas --targetdir="system-monitor@paradoxxx.zero.gmail.com/schemas" "system-monitor@paradoxxx.zero.gmail.com/schemas"
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/gnome-shell/extensions
-    cp -r "system-monitor@paradoxxx.zero.gmail.com" $out/share/gnome-shell/extensions
-    runHook postInstall
-  '';
+  makeFlags = [
+    "VERSION=${version}"
+    "INSTALLBASE=$(out)/share/gnome-shell/extensions"
+    "SUDO="
+  ];
 
   passthru = {
     extensionUuid = "system-monitor@paradoxxx.zero.gmail.com";
diff --git a/pkgs/desktops/gnome/extensions/update-extensions.py b/pkgs/desktops/gnome/extensions/update-extensions.py
index d1fdfc1f1a534..a2f42be06258f 100755
--- a/pkgs/desktops/gnome/extensions/update-extensions.py
+++ b/pkgs/desktops/gnome/extensions/update-extensions.py
@@ -1,16 +1,15 @@
 #!/usr/bin/env nix-shell
 #!nix-shell -I nixpkgs=../../../.. -i python3 -p python3
 
+import base64
 import json
-import urllib.request
-import urllib.error
-from typing import List, Dict, Optional, Any, Tuple
 import logging
-from operator import itemgetter
 import subprocess
-import zipfile
-import io
-import base64
+import urllib.error
+import urllib.request
+from operator import itemgetter
+from pathlib import Path
+from typing import List, Dict, Optional, Any, Tuple
 
 # We don't want all those deprecated legacy extensions
 # Group extensions by GNOME "major" version for compatibility reasons
@@ -21,14 +20,12 @@ supported_versions = {
     "42": "42",
 }
 
-
-# Some type alias to increase readility of complex compound types
+# Some type alias to increase readability of complex compound types
 PackageName = str
 ShellVersion = str
 Uuid = str
 ExtensionVersion = int
 
-
 # Keep track of all names that have been used till now to detect collisions.
 # This works because we deterministically process all extensions in historical order
 # The outer dict level is the shell version, as we are tracking duplicates only per same Shell version.
@@ -37,6 +34,8 @@ package_name_registry: Dict[ShellVersion, Dict[PackageName, List[Uuid]]] = {}
 for shell_version in supported_versions.keys():
     package_name_registry[shell_version] = {}
 
+updater_dir_path = Path(__file__).resolve().parent
+
 
 def fetch_extension_data(uuid: str, version: str) -> Tuple[str, str]:
     """
@@ -48,28 +47,32 @@ def fetch_extension_data(uuid: str, version: str) -> Tuple[str, str]:
     uuid = uuid.replace("@", "")
     url: str = f"https://extensions.gnome.org/extension-data/{uuid}.v{version}.shell-extension.zip"
 
-    # Yes, we download that file three times:
+    # TODO remove when Vitals@CoreCoding.com version != 53, this extension has a missing manifest.json
+    if url == 'https://extensions.gnome.org/extension-data/VitalsCoreCoding.com.v53.shell-extension.zip':
+        url = 'https://extensions.gnome.org/extension-data/VitalsCoreCoding.com.v53.shell-extension_v1BI2FB.zip'
 
-    # The first time is for the maintainter, so they may have a personal backup to fix potential issues
-    # subprocess.run(
-    #     ["wget", url], capture_output=True, text=True
-    # )
+    # Download extension and add the zip content to nix-store
+    process = subprocess.run(
+        ["nix-prefetch-url", "--unpack", "--print-path", url], capture_output=True, text=True
+    )
 
-    # The second time, we extract the metadata.json because we need it too
-    with urllib.request.urlopen(url) as response:
-        data = zipfile.ZipFile(io.BytesIO(response.read()), 'r')
-        metadata = base64.b64encode(data.read('metadata.json')).decode()
+    lines = process.stdout.splitlines()
 
-    # The third time is to get the file into the store and to get its hash
-    hash = subprocess.run(
-        ["nix-prefetch-url", "--unpack", url], capture_output=True, text=True
-    ).stdout.strip()
+    # Get hash from first line of nix-prefetch-url output
+    hash = lines[0].strip()
+
+    # Get path from second line of nix-prefetch-url output
+    path = Path(lines[1].strip())
+
+    # Get metadata.json content from nix-store
+    with open(path / "metadata.json", "r") as out:
+        metadata = base64.b64encode(out.read().encode("ascii")).decode()
 
     return hash, metadata
 
 
 def generate_extension_versions(
-    extension_version_map: Dict[ShellVersion, ExtensionVersion], uuid: str
+        extension_version_map: Dict[ShellVersion, ExtensionVersion], uuid: str
 ) -> Dict[ShellVersion, Dict[str, str]]:
     """
     Takes in a mapping from shell versions to extension versions and transforms it the way we need it:
@@ -77,7 +80,9 @@ def generate_extension_versions(
     - Filter out versions that only support old GNOME versions
     - Download the extension and hash it
     """
-    extension_versions: Dict[ShellVersion, Dict[str, str]] = {}
+
+    # Determine extension version per shell version
+    extension_versions: Dict[ShellVersion, ExtensionVersion] = {}
     for shell_version, version_prefix in supported_versions.items():
         # Newest compatible extension version
         extension_version: Optional[int] = max(
@@ -91,19 +96,32 @@ def generate_extension_versions(
         # Extension is not compatible with this GNOME version
         if not extension_version:
             continue
+
+        extension_versions[shell_version] = extension_version
+
+    # Download information once for all extension versions chosen above
+    extension_info_cache: Dict[ExtensionVersion, Tuple[str, str]] = {}
+    for extension_version in sorted(set(extension_versions.values())):
         logging.debug(
-            f"[{shell_version}] Downloading '{uuid}' v{extension_version}"
+            f"[{uuid}] Downloading v{extension_version}"
         )
-        sha256, metadata = fetch_extension_data(uuid, str(extension_version))
-        extension_versions[shell_version] = {
+        extension_info_cache[extension_version] = \
+            fetch_extension_data(uuid, str(extension_version))
+
+    # Fill map
+    extension_versions_full: Dict[ShellVersion, Dict[str, str]] = {}
+    for shell_version, extension_version in extension_versions.items():
+        sha256, metadata = extension_info_cache[extension_version]
+
+        extension_versions_full[shell_version] = {
             "version": str(extension_version),
             "sha256": sha256,
             # The downloads are impure, their metadata.json may change at any time.
-            # Thus, be back it up / pin it to remain deterministic
+            # Thus, we back it up / pin it to remain deterministic
             # Upstream issue: https://gitlab.gnome.org/Infrastructure/extensions-web/-/issues/137
             "metadata": metadata,
         }
-    return extension_versions
+    return extension_versions_full
 
 
 def pname_from_url(url: str) -> Tuple[str, str]:
@@ -112,7 +130,7 @@ def pname_from_url(url: str) -> Tuple[str, str]:
     """
 
     url = url.split("/")  # type: ignore
-    return (url[3], url[2])
+    return url[3], url[2]
 
 
 def process_extension(extension: Dict[str, Any]) -> Optional[Dict[str, Any]]:
@@ -136,7 +154,7 @@ def process_extension(extension: Dict[str, Any]) -> Optional[Dict[str, Any]]:
                    Don't make any assumptions on it, and treat it like an opaque string!
             "link" follows the following schema: "/extension/$number/$string/"
                    The number is monotonically increasing and unique to every extension.
-                   The string is usually derived from the extensions's name (but shortened, kebab-cased and URL friendly).
+                   The string is usually derived from the extension name (but shortened, kebab-cased and URL friendly).
                    It may diverge from the actual name.
             The keys of "shell_version_map" are GNOME Shell version numbers.
 
@@ -181,7 +199,7 @@ def process_extension(extension: Dict[str, Any]) -> Optional[Dict[str, Any]]:
 
     for shell_version in shell_version_map.keys():
         if pname in package_name_registry[shell_version]:
-            logging.warning(f"Package name '{pname}' is colliding.")
+            logging.warning(f"Package name '{pname}' for GNOME '{shell_version}' is colliding.")
             package_name_registry[shell_version][pname].append(uuid)
         else:
             package_name_registry[shell_version][pname] = [uuid]
@@ -210,16 +228,16 @@ def scrape_extensions_index() -> List[Dict[str, Any]]:
         logging.info("Scraping page " + str(page))
         try:
             with urllib.request.urlopen(
-                f"https://extensions.gnome.org/extension-query/?n_per_page=25&page={page}"
+                    f"https://extensions.gnome.org/extension-query/?n_per_page=25&page={page}"
             ) as response:
                 data = json.loads(response.read().decode())["extensions"]
-                responseLength = len(data)
+                response_length = len(data)
 
                 for extension in data:
                     extensions.append(extension)
 
                 # If our page isn't "full", it must have been the last one
-                if responseLength < 25:
+                if response_length < 25:
                     logging.debug(
                         f"\tThis page only has {responseLength} entries, so it must be the last one."
                     )
@@ -250,11 +268,7 @@ if __name__ == "__main__":
             processed_extensions.append(processed_extension)
             logging.debug(f"Processed {num + 1} / {len(raw_extensions)}")
 
-    logging.info(
-        f"Done. Writing results to extensions.json ({len(processed_extensions)} extensions in total)"
-    )
-
-    with open("extensions.json", "w") as out:
+    with open(updater_dir_path / "extensions.json", "w") as out:
         # Manually pretty-print the outer level, but then do one compact line per extension
         # This allows for the diffs to be manageable (one line of change per extension) despite their quantity
         for index, extension in enumerate(processed_extensions):
@@ -266,14 +280,15 @@ if __name__ == "__main__":
             out.write("\n")
         out.write("]\n")
 
-    with open("extensions.json", "r") as out:
+    logging.info(
+        f"Done. Writing results to extensions.json ({len(processed_extensions)} extensions in total)"
+    )
+
+    with open(updater_dir_path / "extensions.json", "r") as out:
         # Check that the generated file actually is valid JSON, just to be sure
         json.load(out)
 
-    logging.info(
-        "Done. Writing name collisions to collisions.json (please check manually)"
-    )
-    with open("collisions.json", "w") as out:
+    with open(updater_dir_path / "collisions.json", "w") as out:
         # Filter out those that are not duplicates
         package_name_registry_filtered: Dict[ShellVersion, Dict[PackageName, List[Uuid]]] = {
             # The outer level keys are shell versions
@@ -284,3 +299,7 @@ if __name__ == "__main__":
         }
         json.dump(package_name_registry_filtered, out, indent=2, ensure_ascii=False)
         out.write("\n")
+
+    logging.info(
+        "Done. Writing name collisions to collisions.json (please check manually)"
+    )
diff --git a/pkgs/desktops/gnome/games/hitori/default.nix b/pkgs/desktops/gnome/games/hitori/default.nix
index bb210c2fffb15..c17ca56044e4d 100644
--- a/pkgs/desktops/gnome/games/hitori/default.nix
+++ b/pkgs/desktops/gnome/games/hitori/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchurl
-, fetchpatch
 , meson
 , ninja
 , pkg-config
@@ -15,27 +14,17 @@
 , gettext
 , itstool
 , desktop-file-utils
-, adwaita-icon-theme
 }:
 
 stdenv.mkDerivation rec {
   pname = "hitori";
-  version = "3.38.3";
+  version = "3.38.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/hitori/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "99cQPLBjP7ATcwExqYw646IWK5+5SZ/H8ZUS1YG/ZWk=";
+    sha256 = "iZPMkfuSN4jjieA+wqp4dtFcErrZIEz2Wy/6DtOSL30=";
   };
 
-  patches = [
-    # Fix build with meson 0.61
-    # data/meson.build:3:0: ERROR: Function does not take positional arguments.
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/hitori/-/commit/d25728e122f1d7b985029a5ba96810c3e57c27f7.patch";
-      sha256 = "LwBpFFr+vLacLTpto7PwvO1p2lku6epyEv9YZvUvW+g=";
-    })
-  ];
-
   nativeBuildInputs = [
     meson
     ninja
@@ -52,7 +41,6 @@ stdenv.mkDerivation rec {
     glib
     gtk3
     cairo
-    adwaita-icon-theme
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome/games/swell-foop/default.nix b/pkgs/desktops/gnome/games/swell-foop/default.nix
index b36f273f6d2f2..61d3e2c0bb675 100644
--- a/pkgs/desktops/gnome/games/swell-foop/default.nix
+++ b/pkgs/desktops/gnome/games/swell-foop/default.nix
@@ -21,11 +21,11 @@
 
 stdenv.mkDerivation rec {
   pname = "swell-foop";
-  version = "41.0.1";
+  version = "41.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "YEL/MTxsh9VkgnxwNpazsgkTbD/Dn+Jkpu+k4wWTg9g=";
+    sha256 = "JD96VeXnU6UQhu7CVoMg12ktWxWmanI6tZFwXg2O9t0=";
   };
 
   nativeBuildInputs = [
@@ -45,7 +45,6 @@ stdenv.mkDerivation rec {
     glib
     gtk3
     libgnome-games-support
-    gnome.adwaita-icon-theme
     clutter
     clutter-gtk
   ];
@@ -66,7 +65,7 @@ stdenv.mkDerivation rec {
     homepage = "https://wiki.gnome.org/Apps/Swell%20Foop";
     description = "Puzzle game, previously known as Same GNOME";
     maintainers = teams.gnome.members;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/desktops/gnome/games/tali/default.nix b/pkgs/desktops/gnome/games/tali/default.nix
index c12853e5daee5..40107fe4a269a 100644
--- a/pkgs/desktops/gnome/games/tali/default.nix
+++ b/pkgs/desktops/gnome/games/tali/default.nix
@@ -20,11 +20,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tali";
-  version = "40.6";
+  version = "40.7";
 
   src = fetchurl {
     url = "mirror://gnome/sources/tali/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "g/ugR+3s0ZbTBxmnDi9NCYa7Jswr1flVoKkgDqY/BhI=";
+    sha256 = "cXqJfV0H4X4K89ZpI/USNhPEEPZSOdqX0JKeScf7C2c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/caja-extensions/default.nix b/pkgs/desktops/mate/caja-extensions/default.nix
index 4cec397748923..25563c5d5a881 100644
--- a/pkgs/desktops/mate/caja-extensions/default.nix
+++ b/pkgs/desktops/mate/caja-extensions/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, gupnp, mate, imagemagick, wrapGAppsHook, mateUpdateScript }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, gupnp, mate, imagemagick, wrapGAppsHook, mateUpdateScript
+, glib, substituteAll }:
 
 stdenv.mkDerivation rec {
   pname = "caja-extensions";
@@ -23,7 +24,22 @@ stdenv.mkDerivation rec {
     imagemagick
   ];
 
+  patches = [
+    (substituteAll {
+      src = ./hardcode-gsettings.patch;
+      CAJA_GSETTINGS_PATH = glib.getSchemaPath mate.caja;
+      TERM_GSETTINGS_PATH = glib.getSchemaPath mate.mate-terminal;
+    })
+  ];
+
   postPatch = ''
+    substituteInPlace open-terminal/caja-open-terminal.c --subst-var-by \
+      GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"}
+    substituteInPlace sendto/caja-sendto-command.c --subst-var-by \
+      GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"}
+    substituteInPlace wallpaper/caja-wallpaper-extension.c --subst-var-by \
+      GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"}
+
     for f in image-converter/caja-image-{resizer,rotator}.c; do
       substituteInPlace $f --replace "/usr/bin/convert" "${imagemagick}/bin/convert"
     done
diff --git a/pkgs/desktops/mate/caja-extensions/hardcode-gsettings.patch b/pkgs/desktops/mate/caja-extensions/hardcode-gsettings.patch
new file mode 100644
index 0000000000000..d4cf5a44d1f44
--- /dev/null
+++ b/pkgs/desktops/mate/caja-extensions/hardcode-gsettings.patch
@@ -0,0 +1,169 @@
+diff --git a/open-terminal/caja-open-terminal.c b/open-terminal/caja-open-terminal.c
+index e14a9bf..691afab 100644
+--- a/open-terminal/caja-open-terminal.c
++++ b/open-terminal/caja-open-terminal.c
+@@ -135,8 +135,18 @@ desktop_opens_home_dir (void)
+ {
+ 	gboolean result;
+ 	GSettings* settings;
+-
+-	settings = g_settings_new (COT_SCHEMA);
++    GSettingsSchemaSource* schema_source;
++    GSettingsSchema* schema;
++
++    schema_source = g_settings_schema_source_new_from_directory("@GSETTINGS_PATH@",
++                                                                g_settings_schema_source_get_default(),
++                                                                TRUE, NULL);
++    schema = g_settings_schema_source_lookup(schema_source,
++                                             COT_SCHEMA,
++                                             FALSE);
++    settings = g_settings_new_full(schema, NULL, NULL);
++    g_settings_schema_source_unref(schema_source);
++    g_settings_schema_unref(schema);
+ 	result = g_settings_get_boolean (settings, COT_DESKTOP_KEY);
+ 	g_object_unref (settings);
+ 	return result;
+@@ -147,8 +157,18 @@ set_desktop_opens_home_dir (gboolean val)
+ {
+ 	gboolean result;
+ 	GSettings* settings;
+-
+-	settings = g_settings_new (COT_SCHEMA);
++    GSettingsSchemaSource* schema_source;
++    GSettingsSchema* schema;
++
++    schema_source = g_settings_schema_source_new_from_directory("@GSETTINGS_PATH@",
++                                                                g_settings_schema_source_get_default(),
++                                                                TRUE, NULL);
++    schema = g_settings_schema_source_lookup(schema_source,
++                                             COT_SCHEMA,
++                                             FALSE);
++    settings = g_settings_new_full(schema, NULL, NULL);
++    g_settings_schema_source_unref(schema_source);
++    g_settings_schema_unref(schema);
+ 	result = g_settings_set_boolean (settings, COT_DESKTOP_KEY, val);
+ 	g_object_unref (settings);
+ 	return result;
+@@ -159,8 +179,18 @@ desktop_is_home_dir (void)
+ {
+ 	gboolean result;
+ 	GSettings* settings;
+-
+-	settings = g_settings_new (CAJA_SCHEMA);
++    GSettingsSchemaSource* schema_source;
++    GSettingsSchema* schema;
++
++    schema_source = g_settings_schema_source_new_from_directory("@CAJA_GSETTINGS_PATH@",
++                                                                g_settings_schema_source_get_default(),
++                                                                TRUE, NULL);
++    schema = g_settings_schema_source_lookup(schema_source,
++                                             CAJA_SCHEMA,
++                                             FALSE);
++    settings = g_settings_new_full(schema, NULL, NULL);
++    g_settings_schema_source_unref(schema_source);
++    g_settings_schema_unref(schema);
+ 	result = g_settings_get_boolean (settings, CAJA_DESKTOP_KEY);
+ 	g_object_unref (settings);
+ 	return result;
+@@ -171,8 +201,18 @@ default_terminal_application (void)
+ {
+ 	gchar *result;
+ 	GSettings* settings;
+-
+-	settings = g_settings_new (TERM_SCHEMA);
++    GSettingsSchemaSource* schema_source;
++    GSettingsSchema* schema;
++
++    schema_source = g_settings_schema_source_new_from_directory("@TERM_GSETTINGS_PATH@",
++                                                                g_settings_schema_source_get_default(),
++                                                                TRUE, NULL);
++    schema = g_settings_schema_source_lookup(schema_source,
++                                             TERM_SCHEMA,
++                                             FALSE);
++    settings = g_settings_new_full(schema, NULL, NULL);
++    g_settings_schema_source_unref(schema_source);
++    g_settings_schema_unref(schema);
+ 	result = g_settings_get_string (settings, TERM_EXEC_KEY);
+ 	g_object_unref (settings);
+ 
+@@ -189,8 +229,18 @@ set_default_terminal_application (const gchar* exec)
+ {
+ 	gboolean result;
+ 	GSettings* settings;
+-
+-	settings = g_settings_new (TERM_SCHEMA);
++    GSettingsSchemaSource* schema_source;
++    GSettingsSchema* schema;
++
++    schema_source = g_settings_schema_source_new_from_directory("@TERM_GSETTINGS_PATH@",
++                                                                g_settings_schema_source_get_default(),
++                                                                TRUE, NULL);
++    schema = g_settings_schema_source_lookup(schema_source,
++                                             TERM_SCHEMA,
++                                             FALSE);
++    settings = g_settings_new_full(schema, NULL, NULL);
++    g_settings_schema_source_unref(schema_source);
++    g_settings_schema_unref(schema);
+ 	result = g_settings_set_string (settings, TERM_EXEC_KEY, exec);
+ 	g_object_unref (settings);
+ 	return result;
+diff --git a/sendto/caja-sendto-command.c b/sendto/caja-sendto-command.c
+index 8181db6..579dc81 100644
+--- a/sendto/caja-sendto-command.c
++++ b/sendto/caja-sendto-command.c
+@@ -801,6 +801,8 @@ caja_sendto_init (void)
+ int main (int argc, char **argv)
+ {
+ 	GOptionContext *context;
++    GSettingsSchemaSource* schema_source;
++    GSettingsSchema* schema;
+ 	GError *error = NULL;
+ 
+ #ifdef ENABLE_NLS
+@@ -818,7 +820,15 @@ int main (int argc, char **argv)
+ 		return 1;
+ 	}
+ 
+-	settings = g_settings_new ("org.mate.Caja.Sendto");
++    schema_source = g_settings_schema_source_new_from_directory("@GSETTINGS_PATH@",
++                                                                g_settings_schema_source_get_default(),
++                                                                TRUE, NULL);
++    schema = g_settings_schema_source_lookup(schema_source,
++                                             "org.mate.Caja.Sendto",
++                                             FALSE);
++    settings = g_settings_new_full(schema, NULL, NULL);
++    g_settings_schema_source_unref(schema_source);
++    g_settings_schema_unref(schema);
+ 	caja_sendto_init ();
+ 	if (caja_sendto_plugin_init () == FALSE) {
+ 		GtkWidget *error_dialog;
+diff --git a/wallpaper/caja-wallpaper-extension.c b/wallpaper/caja-wallpaper-extension.c
+index 3119e9f..4f80c88 100644
+--- a/wallpaper/caja-wallpaper-extension.c
++++ b/wallpaper/caja-wallpaper-extension.c
+@@ -47,6 +47,8 @@ set_wallpaper_callback (CajaMenuItem *item,
+ {
+     GList *files;
+     GSettings *settings;
++    GSettingsSchemaSource* schema_source;
++    GSettingsSchema* schema;
+     CajaFileInfo *file;
+     gchar *uri;
+     gchar *filename;
+@@ -57,7 +59,15 @@ set_wallpaper_callback (CajaMenuItem *item,
+     uri = caja_file_info_get_uri (file);
+     filename = g_filename_from_uri(uri, NULL, NULL);
+ 
+-    settings = g_settings_new (WP_SCHEMA);
++    schema_source = g_settings_schema_source_new_from_directory("@GSETTINGS_PATH@",
++                                                                g_settings_schema_source_get_default(),
++                                                                TRUE, NULL);
++    schema = g_settings_schema_source_lookup(schema_source,
++                                             WP_SCHEMA,
++                                             FALSE);
++    settings = g_settings_new_full(schema, NULL, NULL);
++    g_settings_schema_source_unref(schema_source);
++    g_settings_schema_unref(schema);
+ 
+     g_settings_set_string (settings, WP_FILE_KEY, filename);
+ 
diff --git a/pkgs/desktops/mate/default.nix b/pkgs/desktops/mate/default.nix
index 2c5b45a653e54..b9ce82e345bf5 100644
--- a/pkgs/desktops/mate/default.nix
+++ b/pkgs/desktops/mate/default.nix
@@ -42,6 +42,7 @@ let
     mate-sensors-applet = callPackage ./mate-sensors-applet { };
     mate-session-manager = callPackage ./mate-session-manager { };
     mate-settings-daemon = callPackage ./mate-settings-daemon { };
+    mate-settings-daemon-wrapped = callPackage ./mate-settings-daemon/wrapped.nix { };
     mate-screensaver = callPackage ./mate-screensaver { };
     mate-system-monitor = callPackage ./mate-system-monitor { };
     mate-terminal = callPackage ./mate-terminal { };
@@ -70,6 +71,7 @@ let
       mate-polkit
       mate-session-manager
       mate-settings-daemon
+      mate-settings-daemon-wrapped
       mate-themes
     ];
 
diff --git a/pkgs/desktops/mate/mate-control-center/default.nix b/pkgs/desktops/mate/mate-control-center/default.nix
index e95f3696e2882..58828aa52b9d4 100644
--- a/pkgs/desktops/mate/mate-control-center/default.nix
+++ b/pkgs/desktops/mate/mate-control-center/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, gettext, itstool, libxml2, dbus-glib
-, libxklavier, libcanberra-gtk3, librsvg, libappindicator-gtk3
+, libxklavier, libcanberra-gtk3, librsvg, libappindicator-gtk3, glib
 , desktop-file-utils, dconf, gtk3, polkit, mate, hicolor-icon-theme, wrapGAppsHook
 , mateUpdateScript
 }:
@@ -45,6 +45,8 @@ stdenv.mkDerivation rec {
     gappsWrapperArgs+=(
       # WM keyboard shortcuts
       --prefix XDG_DATA_DIRS : "${mate.marco}/share"
+      # Desktop font, works only when passed after gtk3 schemas in the wrapper for some reason
+      --prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath mate.caja}"
     )
   '';
 
diff --git a/pkgs/desktops/mate/mate-panel/default.nix b/pkgs/desktops/mate/mate-panel/default.nix
index 3a2f57a86270c..77569e116642c 100644
--- a/pkgs/desktops/mate/mate-panel/default.nix
+++ b/pkgs/desktops/mate/mate-panel/default.nix
@@ -37,6 +37,13 @@ stdenv.mkDerivation rec {
     "INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0"
   ];
 
+  preFixup = ''
+    gappsWrapperArgs+=(
+      # Workspace switcher settings, works only when passed after gtk3 schemas in the wrapper for some reason
+      --prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath mate.marco}"
+    )
+  '';
+
   enableParallelBuilding = true;
 
   passthru.updateScript = mateUpdateScript { inherit pname version; };
diff --git a/pkgs/desktops/mate/mate-settings-daemon/wrapped.nix b/pkgs/desktops/mate/mate-settings-daemon/wrapped.nix
new file mode 100644
index 0000000000000..8fe7a4cf2b288
--- /dev/null
+++ b/pkgs/desktops/mate/mate-settings-daemon/wrapped.nix
@@ -0,0 +1,22 @@
+{ stdenv, mate, glib, wrapGAppsHook }:
+
+stdenv.mkDerivation {
+  pname = "${mate.mate-settings-daemon.pname}-wrapped";
+  version = mate.mate-settings-daemon.version;
+  nativeBuildInputs = [ wrapGAppsHook ];
+  buildInputs = [ glib mate.mate-control-center ];
+  dontWrapGApps = true;
+  dontUnpack = true;
+  installPhase = ''
+    mkdir -p $out/etc/xdg/autostart
+    cp ${mate.mate-settings-daemon}/etc/xdg/autostart/mate-settings-daemon.desktop $out/etc/xdg/autostart
+  '';
+  postFixup = ''
+    mkdir -p $out/libexec
+    makeWrapper ${mate.mate-settings-daemon}/libexec/mate-settings-daemon $out/libexec/mate-settings-daemon \
+      "''${gappsWrapperArgs[@]}"
+    substituteInPlace $out/etc/xdg/autostart/mate-settings-daemon.desktop \
+      --replace "${mate.mate-settings-daemon}/libexec/mate-settings-daemon" "$out/libexec/mate-settings-daemon"
+  '';
+  meta = mate.mate-settings-daemon.meta // { priority = -10; };
+}
diff --git a/pkgs/desktops/pantheon/apps/elementary-code/default.nix b/pkgs/desktops/pantheon/apps/elementary-code/default.nix
index f1cd335459e70..25acfc28062b4 100644
--- a/pkgs/desktops/pantheon/apps/elementary-code/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-code/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , nix-update-script
 , appstream
 , desktop-file-utils
@@ -28,24 +27,15 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-code";
-  version = "6.1.0";
+  version = "6.2.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "code";
     rev = version;
-    sha256 = "sha256-AXmMcPj2hf33G5v3TUg+eZwaKOdVlRvoVXglMJFHRjw=";
+    sha256 = "sha256-QhJNRhYgGbPMd7B1X3kG+pnC/lGUoF7gc7O1PdG49LI=";
   };
 
-  patches = [
-    # Fix build with meson 0.61
-    # https://github.com/elementary/code/pull/1165
-    (fetchpatch {
-      url = "https://github.com/elementary/code/commit/a2607cce3a6b1bb62d02456456d3cbc3c6530bb0.patch";
-      sha256 = "sha256-VKR83IOUYsQhBRlU9JUTlMJtXWv/AyG4wDsjMU2vmU8=";
-    })
-  ];
-
   nativeBuildInputs = [
     appstream
     desktop-file-utils
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
index 82eece370dd8e..977d1a0b9fcc6 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-about";
-  version = "6.0.1";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0c075ac7iqz4hqbp2ph0cwyhiq0jn6c1g1jjfhygjbssv3vvd268";
+    sha256 = "sha256-/8K3xSbzlagOT0zHdXNwEERJP88C+H2I6qJHXwdlTS4=";
   };
 
   patches = [
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
index 1118d52fb43c1..18ccac20bb53d 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
@@ -23,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-keyboard";
-  version = "2.6.0";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Bl0T+8upTdBnLs03UIimcAg0LO40KwuMZRNSM+y/3Hc=";
+    sha256 = "sha256-ge87rctbd7iR9x9Xq4sMIC09DiPHbpbWBgMZUuJNWbw=";
   };
 
   patches = [
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
index 46703b349e674..70ab050c7ec17 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-onlineaccounts";
-  version = "6.3.0";
+  version = "6.4.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-aRh2zbKqcGOH4Qw5gdJw07hod8a/QGWUcJo/2R9erQs=";
+    sha256 = "sha256-Fppl/IvdlW8lZ6YKEHaHNticv3FFFKEKTPPVnz4u9b4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
index 8a23f09838eb6..ed258623ab241 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-sound";
-  version = "2.3.0";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-yHuboDpIcioZPNgpmnrM6J2eUCJpoNDdvgu27YuN65I=";
+    sha256 = "sha256-hyBmo9P68XSXRUuLw+baEAetba2QdqOwUti64geH6xc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/desktop/gala/default.nix b/pkgs/desktops/pantheon/desktop/gala/default.nix
index 75447adf4a264..0cab4d2e08f5f 100644
--- a/pkgs/desktops/pantheon/desktop/gala/default.nix
+++ b/pkgs/desktops/pantheon/desktop/gala/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , nix-update-script
 , pkg-config
 , meson
@@ -26,29 +25,19 @@
 
 stdenv.mkDerivation rec {
   pname = "gala";
-  version = "6.3.0";
+  version = "6.3.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-f/WDm9/+lXgplg9tGpct4f+1cOhKgdypwiDRBhewRGw=";
+    sha256 = "sha256-7RZt6gA3wyp1cxIWBYFK+fYFSZDbjHcwYa2snOmDw1Y=";
   };
 
   patches = [
+    # We look for plugins in `/run/current-system/sw/lib/` because
+    # there are multiple plugin providers (e.g. gala and wingpanel).
     ./plugins-dir.patch
-    # Session crashes when switching windows with Alt+Tab
-    # https://github.com/elementary/gala/issues/1312
-    (fetchpatch {
-      url = "https://github.com/elementary/gala/commit/cc83db8fe398feae9f3e4caa8352b65f0c8c96d4.patch";
-      sha256 = "sha256-CPO3EHIzqHAV6ZLHngivCdsD8je8CK/NHznfxSEkhzc=";
-    })
-    # WindowSwitcher: Clear indicator background
-    # https://github.com/elementary/gala/pull/1318
-    (fetchpatch {
-      url = "https://github.com/elementary/gala/commit/cce53acffecba795b6cc48916d4621a47996d2c9.patch";
-      sha256 = "sha256-5aTZE6poo4sQMTLfk9Nhw4G4BW8i9dvpWktizRIS58Q=";
-    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/services/elementary-notifications/default.nix b/pkgs/desktops/pantheon/services/elementary-notifications/default.nix
index 5a78bb9c8a2b5..4cea8b0894d2d 100644
--- a/pkgs/desktops/pantheon/services/elementary-notifications/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-notifications/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-notifications";
-  version = "6.0.0";
+  version = "6.0.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "notifications";
     rev = version;
-    sha256 = "0jfppafbc8jwhhnillylicz4zfds789d8b31ifsx0qijlxa7kji9";
+    sha256 = "sha256-AEcZVQPAQLa202/Yvq0GihY8BfMEH46iXeQ5u3QvuXg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix b/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix
index cfa58c0078ea4..bf46029356ea1 100644
--- a/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix
+++ b/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix
@@ -12,13 +12,13 @@
 
 mkDerivation rec {
   pname = "bismuth";
-  version = "3.0.0";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "Bismuth-Forge";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-6kSqZtJijQBqvYcyAoSRLl/RxgUubst2SJw/adiBIj4=";
+    sha256 = "sha256-SGeqTmU603gKlzCUJ6AMaG7++9JvMw5EpSATwJEqNq8=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/dynamic-workspaces.nix b/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/dynamic-workspaces.nix
index cea788f264036..043f52c37efcf 100644
--- a/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/dynamic-workspaces.nix
+++ b/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/dynamic-workspaces.nix
@@ -32,7 +32,7 @@ mkDerivation rec {
   meta = with lib; {
     description = "KWin script that automatically adds/removes virtual desktops";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ samuelgrf ];
+    maintainers = with maintainers; [ ];
     inherit (src.meta) homepage;
     inherit (kwindowsystem.meta) platforms;
   };
diff --git a/pkgs/desktops/xfce/applications/mousepad/default.nix b/pkgs/desktops/xfce/applications/mousepad/default.nix
index 2b794aa4b8ab1..1da88a0104f82 100644
--- a/pkgs/desktops/xfce/applications/mousepad/default.nix
+++ b/pkgs/desktops/xfce/applications/mousepad/default.nix
@@ -3,10 +3,10 @@
 mkXfceDerivation {
   category = "apps";
   pname = "mousepad";
-  version = "0.5.8";
+  version = "0.5.9";
   odd-unstable = false;
 
-  sha256 = "sha256-Q5coRO2Swo0LpB+pzi+fxrwNyhcDbQXLuQtepPlCyxY=";
+  sha256 = "sha256-xuSv2H1+/NNUAm+D8f+f5fPVR97iJ5vIDzPa3S0HLM0=";
 
   nativeBuildInputs = [ gobject-introspection ];
 
diff --git a/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix b/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
index 65611f73a1d23..c83dd372e4ab0 100644
--- a/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
@@ -3,9 +3,9 @@
 mkXfceDerivation {
   category = "apps";
   pname = "xfce4-terminal";
-  version = "0.8.10";
+  version = "1.0.1";
 
-  sha256 = "sha256-FINoED7C2PXeDJf9sKD7bk+b5FGZMMqXFe3i2zLDqGw=";
+  sha256 = "sha256-+tuJGA/g0ddDop5mTbRZGVGUKKZ87fmdVMOaaBhMpFQ=";
 
   nativeBuildInputs = [ libxslt docbook_xml_dtd_45 docbook_xsl ];
 
diff --git a/pkgs/desktops/xfce/core/thunar/default.nix b/pkgs/desktops/xfce/core/thunar/default.nix
index 3319141a8be93..dd8e8f9809480 100644
--- a/pkgs/desktops/xfce/core/thunar/default.nix
+++ b/pkgs/desktops/xfce/core/thunar/default.nix
@@ -21,9 +21,9 @@
 let unwrapped = mkXfceDerivation {
   category = "xfce";
   pname = "thunar";
-  version = "4.16.10";
+  version = "4.16.11";
 
-  sha256 = "sha256-BeEy8+zEsJ5fJAbvP37tfekqF5LTHil0RDcE5RY0f64=";
+  sha256 = "sha256-xan0HuHYLVArx3dGzzxsCjQ8eWsXNk0LtZGAejA2iGI=";
 
   nativeBuildInputs = [
     docbook_xsl
diff --git a/pkgs/desktops/xfce/core/xfce4-panel/default.nix b/pkgs/desktops/xfce/core/xfce4-panel/default.nix
index 4fa26b3da024a..5ac7fa9e79b9f 100644
--- a/pkgs/desktops/xfce/core/xfce4-panel/default.nix
+++ b/pkgs/desktops/xfce/core/xfce4-panel/default.nix
@@ -17,9 +17,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfce4-panel";
-  version = "4.16.3";
+  version = "4.16.4";
 
-  sha256 = "sha256-PdE64WKdluKfof/l1wTPi7JdpJMYWIvi0yIdpyntsCA=";
+  sha256 = "sha256-DlGcec5oUPDMzVztADw9fROmBIIO7isZ8gZEMGeDVcA=";
 
   nativeBuildInputs = [
     gobject-introspection
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin/default.nix
index 08434ad25227f..e4a252c7ed069 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin/default.nix
@@ -15,11 +15,11 @@ let
   category = "panel-plugins";
 in stdenv.mkDerivation rec {
   pname  = "xfce4-eyes-plugin";
-  version = "4.5.1";
+  version = "4.6.0";
 
   src = fetchurl {
     url = "mirror://xfce/src/${category}/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-TbeAF45Sk5HVPaGA5JOGkE5ppaM7O9UYWDXQp+b/WsU=";
+    sha256 = "sha256-rQ/wXYi6OTt8iSL4Iz7dM/wKTosAC2HeH486EMWuUyQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/beam-modules/elvis-erlang/default.nix b/pkgs/development/beam-modules/elvis-erlang/default.nix
index 810486e2bc459..7b1454554196b 100644
--- a/pkgs/development/beam-modules/elvis-erlang/default.nix
+++ b/pkgs/development/beam-modules/elvis-erlang/default.nix
@@ -24,7 +24,7 @@ in rebar3Relx rec {
 
     set -euo pipefail
 
-    latest=$(list-git-tags --url=https://github.com/${owner}/${repo}.git | sort -V | tail -1)
+    latest=$(list-git-tags | sort -V | tail -1)
     if [ "$latest" != "${version}" ]; then
       nixpkgs="$(git rev-parse --show-toplevel)"
       nix_path="$nixpkgs/pkgs/development/beam-modules/elvis-erlang"
@@ -42,5 +42,6 @@ in rebar3Relx rec {
     platforms = platforms.unix;
     license = licenses.asl20;
     maintainers = with lib.maintainers; [ dlesl ];
+    mainProgram = "elvis";
   };
 }
diff --git a/pkgs/development/beam-modules/erlang-ls/default.nix b/pkgs/development/beam-modules/erlang-ls/default.nix
index be9c647437ecb..813ddebef43dc 100644
--- a/pkgs/development/beam-modules/erlang-ls/default.nix
+++ b/pkgs/development/beam-modules/erlang-ls/default.nix
@@ -1,7 +1,7 @@
 { fetchFromGitHub, fetchgit, fetchHex, rebar3Relx, buildRebar3, rebar3-proper
 , stdenv, writeScript, lib }:
 let
-  version = "0.23.1";
+  version = "0.24.0";
   owner = "erlang-ls";
   repo = "erlang_ls";
   deps = import ./rebar-deps.nix {
@@ -19,7 +19,7 @@ rebar3Relx {
   inherit version;
   src = fetchFromGitHub {
     inherit owner repo;
-    sha256 = "sha256-N0jkdzwNi9dx0dmN4qL+mb8S60OII4C/MnR/y8G3GUY=";
+    sha256 = "sha256-fKe6vsY40lexnkUP4PEsc53WFaUAw5LGLEC/zJauogg=";
     rev = version;
   };
   releaseType = "escript";
@@ -51,7 +51,7 @@ rebar3Relx {
     #! nix-shell -i bash -p common-updater-scripts coreutils git gnused gnutar gzip "rebar3WithPlugins { globalPlugins = [ beamPackages.rebar3-nix ]; }"
 
     set -ox errexit
-    latest=$(list-git-tags --url=https://github.com/${owner}/${repo}.git | sed -n '/[\d\.]\+/p' | sort -V | tail -1)
+    latest=$(list-git-tags | sed -n '/[\d\.]\+/p' | sort -V | tail -1)
     if [[ "$latest" != "${version}" ]]; then
       nixpkgs="$(git rev-parse --show-toplevel)"
       nix_path="$nixpkgs/pkgs/development/beam-modules/erlang-ls"
diff --git a/pkgs/development/compilers/adoptopenjdk-bin/generate-sources.py b/pkgs/development/compilers/adoptopenjdk-bin/generate-sources.py
index d90953c71d9ca..967612619a73e 100755
--- a/pkgs/development/compilers/adoptopenjdk-bin/generate-sources.py
+++ b/pkgs/development/compilers/adoptopenjdk-bin/generate-sources.py
@@ -15,6 +15,7 @@ arch_to_nixos = {
     "x64": ("x86_64",),
     "aarch64": ("aarch64",),
     "arm": ("armv6l", "armv7l"),
+    "ppc64le": ("powerpc64le",),
 }
 
 def get_sha256(url):
diff --git a/pkgs/development/compilers/adoptopenjdk-bin/jdk-darwin-base.nix b/pkgs/development/compilers/adoptopenjdk-bin/jdk-darwin-base.nix
index ef3e4b7219e44..68d33b657c687 100644
--- a/pkgs/development/compilers/adoptopenjdk-bin/jdk-darwin-base.nix
+++ b/pkgs/development/compilers/adoptopenjdk-bin/jdk-darwin-base.nix
@@ -10,9 +10,10 @@ assert (stdenv.isDarwin && stdenv.isx86_64);
 
 let cpuName = stdenv.hostPlatform.parsed.cpu.name;
     result = stdenv.mkDerivation {
-  name = if sourcePerArch.packageType == "jdk"
-    then "adoptopenjdk-${sourcePerArch.vmType}-bin-${sourcePerArch.${cpuName}.version}"
-    else "adoptopenjdk-${sourcePerArch.packageType}-${sourcePerArch.vmType}-bin-${sourcePerArch.${cpuName}.version}";
+  pname = if sourcePerArch.packageType == "jdk"
+    then "adoptopenjdk-${sourcePerArch.vmType}-bin"
+    else "adoptopenjdk-${sourcePerArch.packageType}-${sourcePerArch.vmType}-bin";
+  version = sourcePerArch.${cpuName}.version or (throw "unsupported CPU ${cpuName}");
 
   src = fetchurl {
     inherit (sourcePerArch.${cpuName}) url sha256;
diff --git a/pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix b/pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix
index 39685131edd37..6fc96b4d1825e 100644
--- a/pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix
+++ b/pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix
@@ -33,9 +33,9 @@ let
 in
 
 let result = stdenv.mkDerivation rec {
-  name = if sourcePerArch.packageType == "jdk"
-    then "adoptopenjdk-${sourcePerArch.vmType}-bin-${version}"
-    else "adoptopenjdk-${sourcePerArch.packageType}-${sourcePerArch.vmType}-bin-${version}";
+  pname = if sourcePerArch.packageType == "jdk"
+    then "adoptopenjdk-${sourcePerArch.vmType}-bin"
+    else "adoptopenjdk-${sourcePerArch.packageType}-${sourcePerArch.vmType}-bin";
 
   version = sourcePerArch.${cpuName}.version or (throw "unsupported CPU ${cpuName}");
 
diff --git a/pkgs/development/compilers/adoptopenjdk-bin/sources.json b/pkgs/development/compilers/adoptopenjdk-bin/sources.json
index b4a8ff4892e2a..80b3d1709cdec 100644
--- a/pkgs/development/compilers/adoptopenjdk-bin/sources.json
+++ b/pkgs/development/compilers/adoptopenjdk-bin/sources.json
@@ -4,30 +4,36 @@
       "jdk": {
         "hotspot": {
           "aarch64": {
-            "build": "9",
-            "sha256": "4966b0df9406b7041e14316e04c9579806832fafa02c5d3bd1842163b7f2353a",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.11%2B9/OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.11_9.tar.gz",
-            "version": "11.0.11"
+            "build": "101",
+            "sha256": "79572f5172c6a040591d34632f98a20ed148702bbce2f57649e8ac01c0d2e3db",
+            "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.14.1%2B1/OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.14.1_1.tar.gz",
+            "version": "11.0.14"
           },
           "armv6l": {
-            "build": "9",
-            "sha256": "2d7aba0b9ea287145ad437d4b3035fc84f7508e78c6fec99be4ff59fe1b6fc0d",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.11%2B9/OpenJDK11U-jdk_arm_linux_hotspot_11.0.11_9.tar.gz",
-            "version": "11.0.11"
+            "build": "101",
+            "sha256": "f4d53a1753cdde830d7872c6a1279df441f3f9aeb5d5037a568b3a392ebce9c2",
+            "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.14.1%2B1/OpenJDK11U-jdk_arm_linux_hotspot_11.0.14.1_1.tar.gz",
+            "version": "11.0.14"
           },
           "armv7l": {
-            "build": "9",
-            "sha256": "2d7aba0b9ea287145ad437d4b3035fc84f7508e78c6fec99be4ff59fe1b6fc0d",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.11%2B9/OpenJDK11U-jdk_arm_linux_hotspot_11.0.11_9.tar.gz",
-            "version": "11.0.11"
+            "build": "101",
+            "sha256": "f4d53a1753cdde830d7872c6a1279df441f3f9aeb5d5037a568b3a392ebce9c2",
+            "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.14.1%2B1/OpenJDK11U-jdk_arm_linux_hotspot_11.0.14.1_1.tar.gz",
+            "version": "11.0.14"
           },
           "packageType": "jdk",
+          "powerpc64le": {
+            "build": "101",
+            "sha256": "9750e11721282a9afd18a07743f19c699b2b71ce20d02f3f0a906088b9ae6d9a",
+            "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.14.1%2B1/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.14.1_1.tar.gz",
+            "version": "11.0.14"
+          },
           "vmType": "hotspot",
           "x86_64": {
-            "build": "9",
-            "sha256": "e99b98f851541202ab64401594901e583b764e368814320eba442095251e78cb",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.11%2B9/OpenJDK11U-jdk_x64_linux_hotspot_11.0.11_9.tar.gz",
-            "version": "11.0.11"
+            "build": "101",
+            "sha256": "43fb84f8063ad9bf6b6d694a67b8f64c8827552b920ec5ce794dfe5602edffe7",
+            "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.14.1%2B1/OpenJDK11U-jdk_x64_linux_hotspot_11.0.14.1_1.tar.gz",
+            "version": "11.0.14"
           }
         },
         "openj9": {
@@ -38,6 +44,12 @@
             "version": "11.0.11-ea"
           },
           "packageType": "jdk",
+          "powerpc64le": {
+            "build": "9",
+            "sha256": "691f2b252b5be5e36079177d56ff7b516e3058277f0ba852a16a9a0cd9668224",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.11%2B9_openj9-0.26.0/OpenJDK11U-jdk_ppc64le_linux_openj9_11.0.11_9_openj9-0.26.0.tar.gz",
+            "version": "11.0.11"
+          },
           "vmType": "openj9",
           "x86_64": {
             "build": "9",
@@ -50,30 +62,36 @@
       "jre": {
         "hotspot": {
           "aarch64": {
-            "build": "9",
-            "sha256": "fde6b29df23b6e7ed6e16a237a0f44273fb9e267fdfbd0b3de5add98e55649f6",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.11%2B9/OpenJDK11U-jre_aarch64_linux_hotspot_11.0.11_9.tar.gz",
-            "version": "11.0.11"
+            "build": "101",
+            "sha256": "6426ce7dfdacaa798ec7779e0bec30ec8510df491fb2c965e8e6bf2f88af27e9",
+            "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.14.1%2B1/OpenJDK11U-jre_aarch64_linux_hotspot_11.0.14.1_1.tar.gz",
+            "version": "11.0.14"
           },
           "armv6l": {
-            "build": "9",
-            "sha256": "ad02656f800fd64c2b090b23ad24a099d9cd1054948ecb0e9851bc39c51c8be8",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.11%2B9/OpenJDK11U-jre_arm_linux_hotspot_11.0.11_9.tar.gz",
-            "version": "11.0.11"
+            "build": "101",
+            "sha256": "964a5d3c1f63209e5ad908a302220b3ba2e81a6574b7b7a5020f736e1496835f",
+            "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.14.1%2B1/OpenJDK11U-jre_arm_linux_hotspot_11.0.14.1_1.tar.gz",
+            "version": "11.0.14"
           },
           "armv7l": {
-            "build": "9",
-            "sha256": "ad02656f800fd64c2b090b23ad24a099d9cd1054948ecb0e9851bc39c51c8be8",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.11%2B9/OpenJDK11U-jre_arm_linux_hotspot_11.0.11_9.tar.gz",
-            "version": "11.0.11"
+            "build": "101",
+            "sha256": "964a5d3c1f63209e5ad908a302220b3ba2e81a6574b7b7a5020f736e1496835f",
+            "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.14.1%2B1/OpenJDK11U-jre_arm_linux_hotspot_11.0.14.1_1.tar.gz",
+            "version": "11.0.14"
           },
           "packageType": "jre",
+          "powerpc64le": {
+            "build": "101",
+            "sha256": "8c9efc13680f43b742a54ecb3be614efd62749d401e780143fef3ac5403a6284",
+            "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.14.1%2B1/OpenJDK11U-jre_ppc64le_linux_hotspot_11.0.14.1_1.tar.gz",
+            "version": "11.0.14"
+          },
           "vmType": "hotspot",
           "x86_64": {
-            "build": "9",
-            "sha256": "144f2c6bcf64faa32016f2474b6c01031be75d25325e9c3097aed6589bc5d548",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.11%2B9/OpenJDK11U-jre_x64_linux_hotspot_11.0.11_9.tar.gz",
-            "version": "11.0.11"
+            "build": "101",
+            "sha256": "b5a6960bc6bb0b1a967e307f908ea9b06ad7adbbd9df0b8954ab51374faa8a98",
+            "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.14.1%2B1/OpenJDK11U-jre_x64_linux_hotspot_11.0.14.1_1.tar.gz",
+            "version": "11.0.14"
           }
         },
         "openj9": {
@@ -84,6 +102,12 @@
             "version": "11.0.11-ea"
           },
           "packageType": "jre",
+          "powerpc64le": {
+            "build": "9",
+            "sha256": "f11ae15da7f2809caeeca70a7cf3b9e7f943848869f498f1b73efc10ef7170f0",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.11%2B9_openj9-0.26.0/OpenJDK11U-jre_ppc64le_linux_openj9_11.0.11_9_openj9-0.26.0.tar.gz",
+            "version": "11.0.11"
+          },
           "vmType": "openj9",
           "x86_64": {
             "build": "9",
@@ -100,10 +124,10 @@
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "9",
-            "sha256": "d851a220e77473a4b483d8bd6b6570e04fd83fdd48d6584b58b041f5997186c2",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.11%2B9/OpenJDK11U-jdk_x64_mac_hotspot_11.0.11_9.tar.gz",
-            "version": "11.0.11"
+            "build": "101",
+            "sha256": "8c69808f5d9d209b195575e979de0e43cdf5d0f1acec1853a569601fe2c1f743",
+            "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.14.1%2B1/OpenJDK11U-jdk_x64_mac_hotspot_11.0.14.1_1.tar.gz",
+            "version": "11.0.14"
           }
         },
         "openj9": {
@@ -122,10 +146,10 @@
           "packageType": "jre",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "9",
-            "sha256": "ccb38c0b73bd0ba7006d00234a51eee9504ec8108c835e1f1763191806374707",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.11%2B9/OpenJDK11U-jre_x64_mac_hotspot_11.0.11_9.tar.gz",
-            "version": "11.0.11"
+            "build": "101",
+            "sha256": "1b2f792ad05af9dba876db962c189527e645b48f50ceb842b4e39169de553303",
+            "url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.14.1%2B1/OpenJDK11U-jre_x64_mac_hotspot_11.0.14.1_1.tar.gz",
+            "version": "11.0.14"
           }
         },
         "openj9": {
@@ -164,6 +188,12 @@
             "version": "13.0.2"
           },
           "packageType": "jdk",
+          "powerpc64le": {
+            "build": "8.1",
+            "sha256": "fb3362e34aac091a4682394d20dcdc3daea51995d369d62c28424573e0fc04aa",
+            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_ppc64le_linux_hotspot_13.0.2_8.tar.gz",
+            "version": "13.0.2"
+          },
           "vmType": "hotspot",
           "x86_64": {
             "build": "8.1",
@@ -174,6 +204,12 @@
         },
         "openj9": {
           "packageType": "jdk",
+          "powerpc64le": {
+            "build": "8.1",
+            "sha256": "f71513e525172dfef695b7c27b25e151f232e05b2281648c2b794650c4970832",
+            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jdk_ppc64le_linux_openj9_13.0.2_8_openj9-0.18.0.tar.gz",
+            "version": "13.0.2"
+          },
           "vmType": "openj9",
           "x86_64": {
             "build": "8.1",
@@ -192,6 +228,12 @@
             "version": "13.0.2"
           },
           "packageType": "jre",
+          "powerpc64le": {
+            "build": "8.1",
+            "sha256": "43d6fb71bdf7b6ad9295087c46dfc9b00bf26db1b5cdcff0c418cbe43b49904a",
+            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jre_ppc64le_linux_hotspot_13.0.2_8.tar.gz",
+            "version": "13.0.2"
+          },
           "vmType": "hotspot",
           "x86_64": {
             "build": "8.1",
@@ -202,6 +244,12 @@
         },
         "openj9": {
           "packageType": "jre",
+          "powerpc64le": {
+            "build": "8.1",
+            "sha256": "7bf8dc4c3b95e87b154f7bc2f9388a6539413fe76d49b362bba878217ccb7ed7",
+            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jre_ppc64le_linux_openj9_13.0.2_8_openj9-0.18.0.tar.gz",
+            "version": "13.0.2"
+          },
           "vmType": "openj9",
           "x86_64": {
             "build": "8.1",
@@ -282,6 +330,12 @@
             "version": "14.0.2"
           },
           "packageType": "jdk",
+          "powerpc64le": {
+            "build": "12",
+            "sha256": "465a3b8e931896b8d95e452d479615c4bf543535c05b6ea246323ae114e67d7d",
+            "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_ppc64le_linux_hotspot_14.0.2_12.tar.gz",
+            "version": "14.0.2"
+          },
           "vmType": "hotspot",
           "x86_64": {
             "build": "12",
@@ -292,6 +346,12 @@
         },
         "openj9": {
           "packageType": "jdk",
+          "powerpc64le": {
+            "build": "12",
+            "sha256": "177fd161ae14df92203d70cd618559daf889ec0c172d6ee615859352f68a2371",
+            "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12_openj9-0.21.0/OpenJDK14U-jdk_ppc64le_linux_openj9_14.0.2_12_openj9-0.21.0.tar.gz",
+            "version": "14.0.2"
+          },
           "vmType": "openj9",
           "x86_64": {
             "build": "12",
@@ -322,6 +382,12 @@
             "version": "14.0.2"
           },
           "packageType": "jre",
+          "powerpc64le": {
+            "build": "12",
+            "sha256": "0f96998be562cfbe8a4114581349dbd2609d0a23091e538fe142dcd9c83e70cf",
+            "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jre_ppc64le_linux_hotspot_14.0.2_12.tar.gz",
+            "version": "14.0.2"
+          },
           "vmType": "hotspot",
           "x86_64": {
             "build": "12",
@@ -332,6 +398,12 @@
         },
         "openj9": {
           "packageType": "jre",
+          "powerpc64le": {
+            "build": "12",
+            "sha256": "ad7a55a3669878c0c7d7c66faafe7c626d4341374719b6fdd81d2986c6e80945",
+            "url": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12_openj9-0.21.0/OpenJDK14U-jre_ppc64le_linux_openj9_14.0.2_12_openj9-0.21.0.tar.gz",
+            "version": "14.0.2"
+          },
           "vmType": "openj9",
           "x86_64": {
             "build": "12",
@@ -412,6 +484,12 @@
             "version": "15.0.2"
           },
           "packageType": "jdk",
+          "powerpc64le": {
+            "build": "7",
+            "sha256": "486f2aad94c5580c0b27c9007beebadfccd4677c0bd9565a77ca5c34af5319f9",
+            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_ppc64le_linux_hotspot_15.0.2_7.tar.gz",
+            "version": "15.0.2"
+          },
           "vmType": "hotspot",
           "x86_64": {
             "build": "7",
@@ -428,6 +506,12 @@
             "version": "15.0.2-ea"
           },
           "packageType": "jdk",
+          "powerpc64le": {
+            "build": "7",
+            "sha256": "5b2158268de0be247801b7823ee3e7f739254d77718a1879848627181feee2f4",
+            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7_openj9-0.24.0/OpenJDK15U-jdk_ppc64le_linux_openj9_15.0.2_7_openj9-0.24.0.tar.gz",
+            "version": "15.0.2"
+          },
           "vmType": "openj9",
           "x86_64": {
             "build": "7",
@@ -458,6 +542,12 @@
             "version": "15.0.2"
           },
           "packageType": "jre",
+          "powerpc64le": {
+            "build": "7",
+            "sha256": "dc2480948ac3e6b192fb77c9d37227510f44482e52a330002d6e7497a62a7d67",
+            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jre_ppc64le_linux_hotspot_15.0.2_7.tar.gz",
+            "version": "15.0.2"
+          },
           "vmType": "hotspot",
           "x86_64": {
             "build": "7",
@@ -474,6 +564,12 @@
             "version": "15.0.2-ea"
           },
           "packageType": "jre",
+          "powerpc64le": {
+            "build": "7",
+            "sha256": "79f657141f1cd0e4a70d041b9215b8b00140d479ce73ed71bc4f3dd015157958",
+            "url": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7_openj9-0.24.0/OpenJDK15U-jre_ppc64le_linux_openj9_15.0.2_7_openj9-0.24.0.tar.gz",
+            "version": "15.0.2"
+          },
           "vmType": "openj9",
           "x86_64": {
             "build": "7",
@@ -536,30 +632,36 @@
       "jdk": {
         "hotspot": {
           "aarch64": {
-            "build": "9",
-            "sha256": "3447ec27a6dbd4f3a6180a0d4371bb09aa428c16eea9983e515a7400cc9f5c85",
-            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9/OpenJDK16U-jdk_aarch64_linux_hotspot_16.0.1_9.tar.gz",
-            "version": "16.0.1"
+            "build": "7",
+            "sha256": "cb77d9d126f97898dfdc8b5fb694d1e0e5d93d13a0a6cb2aeda76f8635384340",
+            "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_aarch64_linux_hotspot_16.0.2_7.tar.gz",
+            "version": "16.0.2"
           },
           "armv6l": {
-            "build": "9",
-            "sha256": "20fc395d8ea2659e6407cd4ec233dc4399f61b7610f3a16495deb23c1e3b81df",
-            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9/OpenJDK16U-jdk_arm_linux_hotspot_16.0.1_9.tar.gz",
-            "version": "16.0.1"
+            "build": "7",
+            "sha256": "7721ef81416af8122a28448f3d661eb4bda40a9f78d400e4ecc55b58e627a00c",
+            "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_arm_linux_hotspot_16.0.2_7.tar.gz",
+            "version": "16.0.2"
           },
           "armv7l": {
-            "build": "9",
-            "sha256": "20fc395d8ea2659e6407cd4ec233dc4399f61b7610f3a16495deb23c1e3b81df",
-            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9/OpenJDK16U-jdk_arm_linux_hotspot_16.0.1_9.tar.gz",
-            "version": "16.0.1"
+            "build": "7",
+            "sha256": "7721ef81416af8122a28448f3d661eb4bda40a9f78d400e4ecc55b58e627a00c",
+            "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_arm_linux_hotspot_16.0.2_7.tar.gz",
+            "version": "16.0.2"
           },
           "packageType": "jdk",
+          "powerpc64le": {
+            "build": "7",
+            "sha256": "36ebe6c72f2fc19b8b17371f731390e15fa3aab08c28b55b9a8b71d0a578adc9",
+            "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_ppc64le_linux_hotspot_16.0.2_7.tar.gz",
+            "version": "16.0.2"
+          },
           "vmType": "hotspot",
           "x86_64": {
-            "build": "9",
-            "sha256": "7fdda042207efcedd30cd76d6295ed56b9c2e248cb3682c50898a560d4aa1c6f",
-            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9/OpenJDK16U-jdk_x64_linux_hotspot_16.0.1_9.tar.gz",
-            "version": "16.0.1"
+            "build": "7",
+            "sha256": "323d6d7474a359a28eff7ddd0df8e65bd61554a8ed12ef42fd9365349e573c2c",
+            "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz",
+            "version": "16.0.2"
           }
         },
         "openj9": {
@@ -570,6 +672,12 @@
             "version": "16.0.1-ea"
           },
           "packageType": "jdk",
+          "powerpc64le": {
+            "build": "9",
+            "sha256": "9200acc9ddb6b0d4facf3ea44b17d3a10035316a379b4b148382b25cacf2bb83",
+            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9_openj9-0.26.0/OpenJDK16U-jdk_ppc64le_linux_openj9_16.0.1_9_openj9-0.26.0.tar.gz",
+            "version": "16.0.1"
+          },
           "vmType": "openj9",
           "x86_64": {
             "build": "9",
@@ -600,6 +708,12 @@
             "version": "16.0.1"
           },
           "packageType": "jre",
+          "powerpc64le": {
+            "build": "9",
+            "sha256": "495805e2e9bcabeac0d8271623b6c92604440608286f4ce411ea48f582854930",
+            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9/OpenJDK16U-jre_ppc64le_linux_hotspot_16.0.1_9.tar.gz",
+            "version": "16.0.1"
+          },
           "vmType": "hotspot",
           "x86_64": {
             "build": "9",
@@ -616,6 +730,12 @@
             "version": "16.0.1-ea"
           },
           "packageType": "jre",
+          "powerpc64le": {
+            "build": "9",
+            "sha256": "f9734c100f0e85ac63b9f9327b77135221a905e1d743cd9cd4edc0ea0e0fe8d9",
+            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9_openj9-0.26.0/OpenJDK16U-jre_ppc64le_linux_openj9_16.0.1_9_openj9-0.26.0.tar.gz",
+            "version": "16.0.1"
+          },
           "vmType": "openj9",
           "x86_64": {
             "build": "9",
@@ -632,10 +752,10 @@
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "9",
-            "sha256": "3be78eb2b0bf0a6edef2a8f543958d6e249a70c71e4d7347f9edb831135a16b8",
-            "url": "https://github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16.0.1%2B9/OpenJDK16U-jdk_x64_mac_hotspot_16.0.1_9.tar.gz",
-            "version": "16.0.1"
+            "build": "7",
+            "sha256": "27975d9e695cfbb93861540926f9f7bcac973a254ceecbee549706a99cbbdf95",
+            "url": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_x64_mac_hotspot_16.0.2_7.tar.gz",
+            "version": "16.0.2"
           }
         },
         "openj9": {
@@ -678,30 +798,36 @@
       "jdk": {
         "hotspot": {
           "aarch64": {
-            "build": "10",
-            "sha256": "a29edaf66221f7a51353d3f28e1ecf4221268848260417bc562d797e514082a8",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10/OpenJDK8U-jdk_aarch64_linux_hotspot_8u292b10.tar.gz",
-            "version": "8.0.292"
+            "build": "6",
+            "sha256": "42ed3ff5a859f9015a1362fb7e650026b913d688eab471714f795651120be173",
+            "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u322-b06/OpenJDK8U-jdk_aarch64_linux_hotspot_8u322b06.tar.gz",
+            "version": "8.0.322"
           },
           "armv6l": {
-            "build": "10",
-            "sha256": "0de107b7df38314c1daab78571383b8b39fdc506790aaef5d870b3e70048881b",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10/OpenJDK8U-jdk_arm_linux_hotspot_8u292b10.tar.gz",
-            "version": "8.0.292"
+            "build": "6",
+            "sha256": "0666c466b8aefcc66ab25aea9c0605f5c6eda3b174b1b817a4e4e74da0de0365",
+            "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u322-b06/OpenJDK8U-jdk_arm_linux_hotspot_8u322b06.tar.gz",
+            "version": "8.0.322"
           },
           "armv7l": {
-            "build": "10",
-            "sha256": "0de107b7df38314c1daab78571383b8b39fdc506790aaef5d870b3e70048881b",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10/OpenJDK8U-jdk_arm_linux_hotspot_8u292b10.tar.gz",
-            "version": "8.0.292"
+            "build": "6",
+            "sha256": "0666c466b8aefcc66ab25aea9c0605f5c6eda3b174b1b817a4e4e74da0de0365",
+            "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u322-b06/OpenJDK8U-jdk_arm_linux_hotspot_8u322b06.tar.gz",
+            "version": "8.0.322"
           },
           "packageType": "jdk",
+          "powerpc64le": {
+            "build": "6",
+            "sha256": "c7cc9c5b237e9e1f1e3296593aba427375823592e4604fadf89a8c234c2574e1",
+            "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u322-b06/OpenJDK8U-jdk_ppc64le_linux_hotspot_8u322b06.tar.gz",
+            "version": "8.0.322"
+          },
           "vmType": "hotspot",
           "x86_64": {
-            "build": "10",
-            "sha256": "0949505fcf42a1765558048451bb2a22e84b3635b1a31dd6191780eeccaa4ada",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10/OpenJDK8U-jdk_x64_linux_hotspot_8u292b10.tar.gz",
-            "version": "8.0.292"
+            "build": "6",
+            "sha256": "3d62362a78c9412766471b05253507a4cfc212daea5cdf122860173ce902400e",
+            "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u322-b06/OpenJDK8U-jdk_x64_linux_hotspot_8u322b06.tar.gz",
+            "version": "8.0.322"
           }
         },
         "openj9": {
@@ -712,6 +838,12 @@
             "version": "8.0.292-ea"
           },
           "packageType": "jdk",
+          "powerpc64le": {
+            "build": "10",
+            "sha256": "bc88be757a884b90a2bb91365b7e922c0e7d0fea991cd69d1f74c59b2257a4b5",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10_openj9-0.26.0/OpenJDK8U-jdk_ppc64le_linux_openj9_8u292b10_openj9-0.26.0.tar.gz",
+            "version": "8.0.292"
+          },
           "vmType": "openj9",
           "x86_64": {
             "build": "10",
@@ -724,30 +856,36 @@
       "jre": {
         "hotspot": {
           "aarch64": {
-            "build": "10",
-            "sha256": "b062ec775e6c2961532d9afeae4027fe3ac2cf4344cbc912a401be5bfb6ca221",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10/OpenJDK8U-jre_aarch64_linux_hotspot_8u292b10.tar.gz",
-            "version": "8.0.292"
+            "build": "6",
+            "sha256": "22496d5e677aaccc5a85e90584d0a012c51a08898f0e09e259eabe67ed81da2b",
+            "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u322-b06/OpenJDK8U-jre_aarch64_linux_hotspot_8u322b06.tar.gz",
+            "version": "8.0.322"
           },
           "armv6l": {
-            "build": "10",
-            "sha256": "7f7707a7a3998737d2221080ea65d50ea96f5dde5226961ebcebd3ec99a82a32",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10/OpenJDK8U-jre_arm_linux_hotspot_8u292b10.tar.gz",
-            "version": "8.0.292"
+            "build": "6",
+            "sha256": "48181f17b85a13c0e2f260c8f4b39483e61664cf07ea00e6210a666fb5210492",
+            "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u322-b06/OpenJDK8U-jre_arm_linux_hotspot_8u322b06.tar.gz",
+            "version": "8.0.322"
           },
           "armv7l": {
-            "build": "10",
-            "sha256": "7f7707a7a3998737d2221080ea65d50ea96f5dde5226961ebcebd3ec99a82a32",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10/OpenJDK8U-jre_arm_linux_hotspot_8u292b10.tar.gz",
-            "version": "8.0.292"
+            "build": "6",
+            "sha256": "48181f17b85a13c0e2f260c8f4b39483e61664cf07ea00e6210a666fb5210492",
+            "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u322-b06/OpenJDK8U-jre_arm_linux_hotspot_8u322b06.tar.gz",
+            "version": "8.0.322"
           },
           "packageType": "jre",
+          "powerpc64le": {
+            "build": "6",
+            "sha256": "f15b536a97c27d114c0b59c86de07ca80a271d3979ed0aa056318ea329e31e5d",
+            "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u322-b06/OpenJDK8U-jre_ppc64le_linux_hotspot_8u322b06.tar.gz",
+            "version": "8.0.322"
+          },
           "vmType": "hotspot",
           "x86_64": {
-            "build": "10",
-            "sha256": "cad66f48f90167ed19030c71f8f0580702c43cce5ce5a0d76833f7a5ae7c402a",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10/OpenJDK8U-jre_x64_linux_hotspot_8u292b10.tar.gz",
-            "version": "8.0.292"
+            "build": "6",
+            "sha256": "9c4607cee01919a21c57a36e8c009a7aca7aefd63010c64d7a3023fe8590ebe1",
+            "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u322-b06/OpenJDK8U-jre_x64_linux_hotspot_8u322b06.tar.gz",
+            "version": "8.0.322"
           }
         },
         "openj9": {
@@ -758,6 +896,12 @@
             "version": "8.0.292-ea"
           },
           "packageType": "jre",
+          "powerpc64le": {
+            "build": "10",
+            "sha256": "b75216f7905cff08432a9200a78a2694a4074279f79d859d27f82a998ca1b1e9",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10_openj9-0.26.0/OpenJDK8U-jre_ppc64le_linux_openj9_8u292b10_openj9-0.26.0.tar.gz",
+            "version": "8.0.292"
+          },
           "vmType": "openj9",
           "x86_64": {
             "build": "10",
@@ -774,10 +918,10 @@
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "10",
-            "sha256": "5646fbe9e4138c902c910bb7014d41463976598097ad03919e4848634c7e8007",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10/OpenJDK8U-jdk_x64_mac_hotspot_8u292b10.tar.gz",
-            "version": "8.0.292"
+            "build": "6",
+            "sha256": "96a3124bf0f5ca777954239893cc89ea34c4bc9a9b7c1559aa2c69baa0ee84e3",
+            "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u322-b06/OpenJDK8U-jdk_x64_mac_hotspot_8u322b06.tar.gz",
+            "version": "8.0.322"
           }
         },
         "openj9": {
@@ -796,10 +940,10 @@
           "packageType": "jre",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "10",
-            "sha256": "bfe1cecf686b4d129594916b0f10d98b71c8d2caec1b96bbbee7f40aa053f1c8",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10/OpenJDK8U-jre_x64_mac_hotspot_8u292b10.tar.gz",
-            "version": "8.0.292"
+            "build": "6",
+            "sha256": "42d4ada88e39b0f222ffdcf3c833f442af22852687992997eca82c573e65b86f",
+            "url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u322-b06/OpenJDK8U-jre_x64_mac_hotspot_8u322b06.tar.gz",
+            "version": "8.0.322"
           }
         },
         "openj9": {
diff --git a/pkgs/development/compilers/alan/2.nix b/pkgs/development/compilers/alan/2.nix
new file mode 100644
index 0000000000000..e24cc35a9d74e
--- /dev/null
+++ b/pkgs/development/compilers/alan/2.nix
@@ -0,0 +1,31 @@
+{ stdenv, lib, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "alan2";
+  version = "2.8.7";
+
+  src = fetchFromGitHub {
+    owner = "alan-if";
+    repo = "alan";
+    rev = "71f23ec79f7f5d66aa5ae9fd3f9b8dae41a89f15";
+    sha256 = "066jknqz1v6sismvfxjfffl35h14v8qwgcq99ibhp08dy2fwraln";
+  };
+
+  makefile = "Makefile.unix";
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/alan2
+    cp compiler/alan $out/bin/alan2
+    cp interpreter/arun $out/bin/arun2
+    cp alan.readme ChangeLog $out/share/alan2
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.alanif.se/";
+    description = "The Alan interactive fiction language (legacy version)";
+    license = licenses.artistic2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ neilmayhew ];
+  };
+}
diff --git a/pkgs/development/compilers/alan/default.nix b/pkgs/development/compilers/alan/default.nix
new file mode 100644
index 0000000000000..61f7b1c0f7b81
--- /dev/null
+++ b/pkgs/development/compilers/alan/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, lib, fetchFromGitHub
+, cgreen, openjdk, pkg-config, which
+}:
+
+stdenv.mkDerivation rec {
+  pname = "alan";
+  version = "3.0beta8";
+
+  src = fetchFromGitHub {
+    owner = "alan-if";
+    repo = "alan";
+    rev = "v${version}";
+    sha256 = "0zfg1frmb4yl39hk8h733bmlwk4rkikzfhvv7j34cxpdpsp7spzl";
+  };
+
+  postPatch = ''
+    patchShebangs --build bin
+    # The Makefiles have complex CFLAGS that don't allow separate control of optimization
+    sed -i 's/-O0/-O2/g' compiler/Makefile.common
+    sed -i 's/-Og/-O2/g' interpreter/Makefile.common
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/alan/examples
+    # Build the release tarball
+    make package
+    # The release tarball isn't split up into subdirectories
+    tar -xf alan*.tgz --strip-components=1 -C $out/share/alan
+    mv $out/share/alan/*.alan $out/share/alan/examples
+    chmod a-x $out/share/alan/examples/*.alan
+    mv $out/share/alan/{alan,arun} $out/bin
+    # a2a3 isn't included in the release tarball
+    cp bin/a2a3 $out/bin
+  '';
+
+  nativeBuildInputs = [
+    cgreen
+    openjdk pkg-config which
+  ];
+
+  meta = with lib; {
+    homepage = "https://www.alanif.se/";
+    description = "The Alan interactive fiction language";
+    license = licenses.artistic2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ neilmayhew ];
+  };
+}
diff --git a/pkgs/development/compilers/algol68g/default.nix b/pkgs/development/compilers/algol68g/default.nix
index 88210ca5b72eb..6bbd51717a59a 100644
--- a/pkgs/development/compilers/algol68g/default.nix
+++ b/pkgs/development/compilers/algol68g/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ AndersonTorres ];
+    mainProgram = "a68g";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/compilers/bluespec/default.nix b/pkgs/development/compilers/bluespec/default.nix
index d89ed3e0d49ff..ae28923871c00 100644
--- a/pkgs/development/compilers/bluespec/default.nix
+++ b/pkgs/development/compilers/bluespec/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchurl
 , autoconf
 , automake
 , fontconfig
@@ -18,20 +19,27 @@
 , gmp-static
 , verilog
 , asciidoctor
-, tex }:
+, tex
+, which
+}:
 
 let
   ghcWithPackages = ghc.withPackages (g: (with g; [ old-time regex-compat syb split ]));
 
 in stdenv.mkDerivation rec {
   pname = "bluespec";
-  version = "2021.07";
+  version = "2022.01";
 
   src = fetchFromGitHub {
     owner = "B-Lang-org";
     repo = "bsc";
     rev = version;
-    sha256 = "0gw8wyp65lpkyfhv3laazz9qypdl8qkp1j7cqp0gv11592a9p5qw";
+    sha256 = "sha256-ivTua3MLa8akma3MGkhsqwSdwswYX916kywKdlj7TqY=";
+  };
+
+  yices-src = fetchurl {
+    url = "https://github.com/B-Lang-org/bsc/releases/download/${version}/yices-src-for-bsc-${version}.tar.gz";
+    sha256 = "sha256-ey5yIIVFZyG4EnYGqbIJqmxK1rZ70FWM0Jz+2hIoGXE=";
   };
 
   enableParallelBuilding = true;
@@ -43,8 +51,7 @@ in stdenv.mkDerivation rec {
 
   postUnpack = ''
     mkdir -p $sourceRoot/src/vendor/yices/v2.6/yices2
-    # XXX: only works because yices.src isn't a tarball.
-    cp -av ${yices.src}/* $sourceRoot/src/vendor/yices/v2.6/yices2
+    tar -C $sourceRoot/src/vendor/yices/v2.6/yices2 -xf ${yices-src}
     chmod -R +rwX $sourceRoot/src/vendor/yices/v2.6/yices2
   '';
 
@@ -68,6 +75,7 @@ in stdenv.mkDerivation rec {
     libX11 # tcltk
     tcl
     tk
+    which
     xorg.libXft
     zlib
   ];
diff --git a/pkgs/development/compilers/chicken/5/chicken.nix b/pkgs/development/compilers/chicken/5/chicken.nix
index 7793dd4e17dfc..32d8435e378da 100644
--- a/pkgs/development/compilers/chicken/5/chicken.nix
+++ b/pkgs/development/compilers/chicken/5/chicken.nix
@@ -45,12 +45,17 @@ stdenv.mkDerivation rec {
     done
   '';
 
-  doCheck = true;
+  doCheck = !stdenv.isDarwin;
   postCheck = ''
     ./csi -R chicken.pathname -R chicken.platform \
        -p "(assert (equal? \"${toString binaryVersion}\" (pathname-file (car (repository-path)))))"
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/chicken -version
+  '';
+
   meta = {
     homepage = "https://call-cc.org/";
     license = lib.licenses.bsd3;
diff --git a/pkgs/development/compilers/chicken/5/eggs.nix b/pkgs/development/compilers/chicken/5/eggs.nix
index 1c1377350d214..c74afe1873710 100644
--- a/pkgs/development/compilers/chicken/5/eggs.nix
+++ b/pkgs/development/compilers/chicken/5/eggs.nix
@@ -1,4 +1,4 @@
-{ pkgs }:
+{ pkgs, stdenv }:
 rec {
   inherit (pkgs) eggDerivation fetchegg;
 
@@ -32,6 +32,22 @@ rec {
     ];
   };
 
+  r7rs = eggDerivation {
+    name = "r7rs-1.0.5";
+
+    src = fetchegg {
+      name = "r7rs";
+      version = "1.0.5";
+      sha256 = "0zyi1z4m1995hm2wfc5wpi8jjgxcwk03qknq5v2ygff3akxazsf6";
+    };
+
+    buildInputs = [
+      matchable
+      srfi-1
+      srfi-13
+    ];
+  };
+
   srfi-1 = eggDerivation {
     name = "srfi-1-0.5.1";
 
@@ -47,12 +63,12 @@ rec {
   };
 
   srfi-13 = eggDerivation {
-    name = "srfi-13-0.3";
+    name = "srfi-13-0.3.1";
 
     src = fetchegg {
       name = "srfi-13";
-      version = "0.3";
-      sha256 = "0yaw9i6zhpxl1794pirh168clprjgmsb0xlr96drirjzsslgm3zp";
+      version = "0.3.1";
+      sha256 = "12ryxs3w3las0wjdh0yp52g1xmyq1fb48xi3i26l5a9sfx7gbilp";
     };
 
     buildInputs = [
@@ -74,6 +90,36 @@ rec {
     ];
   };
 
+  srfi-145 = eggDerivation {
+    name = "srfi-145-0.1";
+
+    src = fetchegg {
+      name = "srfi-145";
+      version = "0.1";
+      sha256 = "1r4278xhpmm8gww64j6akpyv3qjnn14b6nsisyb9qm7yx3pkpim9";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  srfi-189 = eggDerivation {
+    name = "srfi-189-0.1";
+
+    src = fetchegg {
+      name = "srfi-189";
+      version = "0.1";
+      sha256 = "1nmrywpi9adi5mm1vcbxxsgw0j3v6m7s4j1mii7icj83xn81cgvx";
+    };
+
+    buildInputs = [
+      r7rs
+      srfi-1
+      srfi-145
+    ];
+  };
+
   srfi-37 = eggDerivation {
     name = "srfi-37-1.4";
 
diff --git a/pkgs/development/compilers/chicken/5/eggs.scm b/pkgs/development/compilers/chicken/5/eggs.scm
index b743d6e3229d2..499109470849c 100644
--- a/pkgs/development/compilers/chicken/5/eggs.scm
+++ b/pkgs/development/compilers/chicken/5/eggs.scm
@@ -1,3 +1,6 @@
 ;; Eggs used by egg2nix
 args
 matchable
+
+;; other eggs to include in nixpkgs
+srfi-189
diff --git a/pkgs/development/compilers/coreclr/default.nix b/pkgs/development/compilers/coreclr/default.nix
deleted file mode 100644
index f38a38059624b..0000000000000
--- a/pkgs/development/compilers/coreclr/default.nix
+++ /dev/null
@@ -1,100 +0,0 @@
-{ config, lib, stdenv
-, fetchFromGitHub
-, fetchpatch
-, which
-, cmake
-, llvmPackages
-, libunwind
-, gettext
-, openssl
-, python2
-, icu
-, lttng-ust
-, liburcu
-, libuuid
-, libkrb5
-, debug ? config.coreclr.debug or false
-}:
-
-stdenv.mkDerivation rec {
-  pname = "coreclr";
-  version = "2.0.7";
-
-  src = fetchFromGitHub {
-    owner  = "dotnet";
-    repo   = "coreclr";
-    rev    = "v${version}";
-    sha256 = "0pzkrfgqywhpijbx7j1v4lxa6270h6whymb64jdkp7yj56ipqh2n";
-  };
-
-  patches = [
-    (fetchpatch {
-      # glibc 2.26
-      url = "https://github.com/dotnet/coreclr/commit/a8f83b615708c529b112898e7d2fbc3f618b26ee.patch";
-      sha256 = "047ph5gip4z2h7liwdxsmpnlaq0sd3hliaw4nyqjp647m80g3ffq";
-    })
-    (fetchpatch {
-      # clang 5
-      url = "https://github.com/dotnet/coreclr/commit/9b22e1a767dee38f351001c5601f56d78766a43e.patch";
-      sha256 = "1w1lxw5ryvhq8m5m0kv880c4bh6y9xdgypkr76sqbh3v568yghzg";
-    })
-  ];
-
-  nativeBuildInputs = [
-    which
-    cmake
-    llvmPackages.clang
-  ];
-
-  buildInputs = [
-    llvmPackages.llvm
-    llvmPackages.lldb
-    libunwind
-    gettext
-    openssl
-    python2
-    icu
-    lttng-ust
-    liburcu
-    libuuid
-    libkrb5
-  ];
-
-  configurePhase = ''
-    # override to avoid cmake running
-    patchShebangs .
-  '';
-
-  BuildArch = if stdenv.is64bit then "x64" else "x86";
-  BuildType = if debug then "Debug" else "Release";
-
-  hardeningDisable = [
-    "strictoverflow"
-    "format"
-  ];
-
-  buildPhase = ''
-    runHook preBuild
-    # disable -Werror which can potentially breaks with every compiler upgrade
-    ./build.sh $BuildArch $BuildType cmakeargs "-DCLR_CMAKE_WARNINGS_ARE_ERRORS=OFF"
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/dotnet $out/bin
-    cp -r bin/Product/Linux.$BuildArch.$BuildType/* $out/share/dotnet
-    for cmd in coreconsole corerun createdump crossgen ilasm ildasm mcs superpmi; do
-      ln -s $out/share/dotnet/$cmd $out/bin/$cmd
-    done
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/dotnet/core/";
-    description = ".NET is a general purpose development platform";
-    platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ kuznero ];
-    license = licenses.mit;
-  };
-}
diff --git a/pkgs/development/compilers/crystal/build-package.nix b/pkgs/development/compilers/crystal/build-package.nix
index 1bdc8989cf1d8..ce8f0c32537ba 100644
--- a/pkgs/development/compilers/crystal/build-package.nix
+++ b/pkgs/development/compilers/crystal/build-package.nix
@@ -6,6 +6,7 @@
 , pkg-config
 , which
 , linkFarm
+, fetchgit
 , fetchFromGitHub
 , installShellFiles
 , removeReferencesTo
@@ -39,7 +40,10 @@ let
   crystalLib = linkFarm "crystal-lib" (lib.mapAttrsToList
     (name: value: {
       inherit name;
-      path = fetchFromGitHub value;
+      path =
+        if (builtins.hasAttr "url" value)
+        then fetchgit value
+        else fetchFromGitHub value;
     })
     (import shardsFile));
 
diff --git a/pkgs/development/compilers/crystal/default.nix b/pkgs/development/compilers/crystal/default.nix
index 280e0fdd23077..f682ecfb06c42 100644
--- a/pkgs/development/compilers/crystal/default.nix
+++ b/pkgs/development/compilers/crystal/default.nix
@@ -216,7 +216,7 @@ let
         description = "A compiled language with Ruby like syntax and type inference";
         homepage = "https://crystal-lang.org/";
         license = licenses.asl20;
-        maintainers = with maintainers; [ david50407 fabianhjr manveru peterhoeg ];
+        maintainers = with maintainers; [ david50407 manveru peterhoeg ];
         platforms = let archNames = builtins.attrNames archs; in
           if (lib.versionOlder version "1.2.0") then remove "aarch64-darwin" archNames else archNames;
         broken = lib.versionOlder version "0.36.1" && stdenv.isDarwin;
diff --git a/pkgs/development/compilers/cudatoolkit/auto-add-opengl-runpath-hook.sh b/pkgs/development/compilers/cudatoolkit/auto-add-opengl-runpath-hook.sh
new file mode 100644
index 0000000000000..0b0da336514a1
--- /dev/null
+++ b/pkgs/development/compilers/cudatoolkit/auto-add-opengl-runpath-hook.sh
@@ -0,0 +1,14 @@
+# Run autoOpenGLRunpath on all files
+echo "Sourcing auto-add-opengl-runpath-hook"
+
+autoAddOpenGLRunpathPhase  () {
+    # TODO: support multiple outputs
+    for file in $(find ${out,lib,bin} -type f); do
+        addOpenGLRunpath $file
+    done
+}
+
+if [ -z "${dontUseAutoAddOpenGLRunpath-}" ]; then
+    echo "Using autoAddOpenGLRunpathPhase"
+    postFixupHooks+=(autoAddOpenGLRunpathPhase)
+fi
diff --git a/pkgs/development/compilers/cudatoolkit/common.nix b/pkgs/development/compilers/cudatoolkit/common.nix
index 46832e1cc2dea..6375c513f411a 100644
--- a/pkgs/development/compilers/cudatoolkit/common.nix
+++ b/pkgs/development/compilers/cudatoolkit/common.nix
@@ -254,6 +254,7 @@ stdenv.mkDerivation rec {
   '';
   passthru = {
     cc = gcc;
+    majorMinorVersion = lib.versions.majorMinor version;
     majorVersion = lib.versions.majorMinor version;
   };
 
diff --git a/pkgs/development/compilers/cudatoolkit/default.nix b/pkgs/development/compilers/cudatoolkit/default.nix
deleted file mode 100644
index 4fa99f80c8e36..0000000000000
--- a/pkgs/development/compilers/cudatoolkit/default.nix
+++ /dev/null
@@ -1,94 +0,0 @@
-{ callPackage
-, fetchurl
-, gcc7
-, gcc9
-, gcc10
-, lib
-}:
-
-let
-  common = callPackage ./common.nix;
-in
-rec {
-  cudatoolkit_10_0 = common {
-    version = "10.0.130";
-    url = "https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_410.48_linux";
-    sha256 = "16p3bv1lwmyqpxil8r951h385sy9asc578afrc7lssa68c71ydcj";
-
-    gcc = gcc7;
-  };
-
-  cudatoolkit_10_1 = common {
-    version = "10.1.243";
-    url = "https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run";
-    sha256 = "0caxhlv2bdq863dfp6wj7nad66ml81vasq2ayf11psvq2b12vhp7";
-
-    gcc = gcc7;
-  };
-
-  cudatoolkit_10_2 = common {
-    version = "10.2.89";
-    url = "http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run";
-    sha256 = "04fasl9sjkb1jvchvqgaqxprnprcz7a8r52249zp2ijarzyhf3an";
-
-    gcc = gcc7;
-  };
-
-  cudatoolkit_10 = cudatoolkit_10_2;
-
-  cudatoolkit_11_0 = common {
-    version = "11.0.3";
-    url = "https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux.run";
-    sha256 = "1h4c69nfrgm09jzv8xjnjcvpq8n4gnlii17v3wzqry5d13jc8ydh";
-
-    gcc = gcc9;
-  };
-
-  cudatoolkit_11_1 = common {
-    version = "11.1.1";
-    url = "https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux.run";
-    sha256 = "13yxv2fgvdnqqbwh1zb80x4xhyfkbajfkwyfpdg9493010kngbiy";
-    gcc = gcc9;
-  };
-
-  cudatoolkit_11_2 = common {
-    version = "11.2.1";
-    url = "https://developer.download.nvidia.com/compute/cuda/11.2.1/local_installers/cuda_11.2.1_460.32.03_linux.run";
-    sha256 = "sha256-HamMuJfMX1inRFpKZspPaSaGdwbLOvWKZpzc2Nw9F8g=";
-    gcc = gcc9;
-  };
-
-  cudatoolkit_11_3 = common {
-    version = "11.3.1";
-    url = "https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux.run";
-    sha256 = "0d19pwcqin76scbw1s5kgj8n0z1p4v1hyfldqmamilyfxycfm4xd";
-    gcc = gcc9;
-  };
-
-  cudatoolkit_11_4 = common {
-    version = "11.4.2";
-    url = "https://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/cuda_11.4.2_470.57.02_linux.run";
-    sha256 = "sha256-u9h8oOkT+DdFSnljZ0c1E83e9VUILk2G7Zo4ZZzIHwo=";
-    gcc = gcc10; # can bump to 11 along with stdenv.cc
-  };
-
-  cudatoolkit_11_5 = common {
-    version = "11.5.0";
-    url = "https://developer.download.nvidia.com/compute/cuda/11.5.0/local_installers/cuda_11.5.0_495.29.05_linux.run";
-    sha256 = "sha256-rgoWk9lJfPPYHmlIlD43lGNpANtxyY1Y7v2sr38aHkw=";
-    gcc = gcc10; # can bump to 11 along with stdenv.cc
-  };
-
-  cudatoolkit_11_6 = common {
-    version = "11.6.1";
-    url = "https://developer.download.nvidia.com/compute/cuda/11.6.1/local_installers/cuda_11.6.1_510.47.03_linux.run";
-    sha256 = "sha256-qyGa/OALdCABEyaYZvv/derQN7z8I1UagzjCaEyYTX4=";
-    gcc = gcc10; # can bump to 11 along with stdenv.cc
-  };
-
-  # Make sure to only ever update this to a version that is compatible with the
-  # latest cudnn, nccl, cutensor, etc! It sometimes happens that CUDA versions
-  # are released prior to compatibility with the rest of the ecosystem. And
-  # don't forget to request a review from @NixOS/cuda-maintainers!
-  cudatoolkit_11 = cudatoolkit_11_5;
-}
diff --git a/pkgs/development/compilers/cudatoolkit/extension.nix b/pkgs/development/compilers/cudatoolkit/extension.nix
new file mode 100644
index 0000000000000..862c83167992b
--- /dev/null
+++ b/pkgs/development/compilers/cudatoolkit/extension.nix
@@ -0,0 +1,15 @@
+final: prev: let
+  ### Cuda Toolkit
+
+  # Function to build the class cudatoolkit package
+  buildCudaToolkitPackage = final.callPackage ./common.nix;
+
+  # Version info for the classic cudatoolkit packages that contain everything that is in redist.
+  cudatoolkitVersions = final.lib.importTOML ./versions.toml;
+
+  ### Add classic cudatoolkit package
+  cudatoolkit = buildCudaToolkitPackage ((attrs: attrs // { gcc = prev.pkgs.${attrs.gcc}; }) cudatoolkitVersions.${final.cudaVersion});
+
+in {
+  inherit cudatoolkit;
+}
diff --git a/pkgs/development/compilers/cudatoolkit/redist/build-cuda-redist-package.nix b/pkgs/development/compilers/cudatoolkit/redist/build-cuda-redist-package.nix
new file mode 100644
index 0000000000000..9bbd7ea1da119
--- /dev/null
+++ b/pkgs/development/compilers/cudatoolkit/redist/build-cuda-redist-package.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenv
+, fetchurl
+, autoPatchelfHook
+, autoAddOpenGLRunpathHook
+}:
+
+pname:
+attrs:
+
+let
+  arch = "linux-x86_64";
+in stdenv.mkDerivation {
+  inherit pname;
+  inherit (attrs) version;
+
+  src = assert (lib.hasAttr arch attrs); fetchurl {
+    url = "https://developer.download.nvidia.com/compute/cuda/redist/${attrs.${arch}.relative_path}";
+    inherit (attrs.${arch}) sha256;
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    # This hook will make sure libcuda can be found
+    # in typically /lib/opengl-driver by adding that
+    # directory to the rpath of all ELF binaries.
+    # Check e.g. with `patchelf --print-rpath path/to/my/binary
+    autoAddOpenGLRunpathHook
+  ];
+
+  buildInputs = [
+    stdenv.cc.cc.lib
+  ];
+
+  dontBuild = true;
+
+  # TODO: choose whether to install static/dynamic libs
+  installPhase = ''
+    runHook preInstall
+    rm LICENSE
+    mkdir -p $out
+    mv * $out
+    runHook postInstall
+  '';
+
+  meta = {
+    description = attrs.name;
+    license = lib.licenses.unfree;
+    platforms = lib.optionals (lib.hasAttr arch attrs) [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/compilers/cudatoolkit/redist/extension.nix b/pkgs/development/compilers/cudatoolkit/redist/extension.nix
new file mode 100644
index 0000000000000..65057b90a03c0
--- /dev/null
+++ b/pkgs/development/compilers/cudatoolkit/redist/extension.nix
@@ -0,0 +1,32 @@
+final: prev: let
+
+  inherit (final) callPackage;
+  inherit (prev) cudaVersion lib pkgs;
+
+  ### Cuda Toolkit Redist
+
+  # Manifest files for redist cudatoolkit. These can be found at
+  # https://developer.download.nvidia.com/compute/cuda/redist/
+  cudaToolkitRedistManifests = {
+    "11.4" = ./manifests/redistrib_11.4.4.json;
+    "11.5" = ./manifests/redistrib_11.5.2.json;
+    "11.6" = ./manifests/redistrib_11.6.2.json;
+  };
+
+  # Function to build a single cudatoolkit redist package
+  buildCudaToolkitRedistPackage = callPackage ./build-cuda-redist-package.nix { };
+
+  # Function that builds all cudatoolkit redist packages given a cuda version and manifest file
+  buildCudaToolkitRedistPackages = { version, manifest }: let
+    attrs = lib.filterAttrs (key: value: key != "release_date") (lib.importJSON manifest);
+  in lib.mapAttrs buildCudaToolkitRedistPackage attrs;
+
+  redistExists = cudaToolkitRedistManifests ? "${cudaVersion}";
+
+  # All cudatoolkit redist packages for the current cuda version
+  cudaToolkitRedistPackages = if
+    lib.hasAttr cudaVersion cudaToolkitRedistManifests
+  then buildCudaToolkitRedistPackages { version = cudaVersion; manifest = cudaToolkitRedistManifests.${cudaVersion}; }
+  else {};
+
+in cudaToolkitRedistPackages
diff --git a/pkgs/development/compilers/cudatoolkit/redist/manifests/redistrib_11.4.4.json b/pkgs/development/compilers/cudatoolkit/redist/manifests/redistrib_11.4.4.json
new file mode 100644
index 0000000000000..374079b2bcb37
--- /dev/null
+++ b/pkgs/development/compilers/cudatoolkit/redist/manifests/redistrib_11.4.4.json
@@ -0,0 +1,862 @@
+{
+    "release_date": "2022-02-01",
+    "cuda_cccl": {
+        "name": "CXX Core Compute Libraries",
+        "license": "CUDA Toolkit",
+        "version": "11.4.122",
+        "linux-x86_64": {
+            "relative_path": "cuda_cccl/linux-x86_64/cuda_cccl-linux-x86_64-11.4.122-archive.tar.xz",
+            "sha256": "150b163bde4975154d6238ae1272c74df81b303dccca1f7637bd91027b65afc5",
+            "md5": "e0e41040716a4d6113410d7cb25c7906",
+            "size": "951832"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_cccl/linux-ppc64le/cuda_cccl-linux-ppc64le-11.4.122-archive.tar.xz",
+            "sha256": "0d1d729ac3f52bdd04f197a6cef295b3463c4975d70dbd97f4e1b08a4857f488",
+            "md5": "f615eccb3b8d694f4c7aa864c93959d7",
+            "size": "951780"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_cccl/linux-sbsa/cuda_cccl-linux-sbsa-11.4.122-archive.tar.xz",
+            "sha256": "98f495b99c68fae54fe728e72aa3b8e2e5b1d77c9fd4946370cec3b063a7fcf3",
+            "md5": "28692dd487b5936dbfac70ac56b65561",
+            "size": "951340"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_cccl/windows-x86_64/cuda_cccl-windows-x86_64-11.4.122-archive.zip",
+            "sha256": "d721c4bcc5bf8054eb944b7c3203ce5f593523f798559f3f4c1effdd8ed36f48",
+            "md5": "fa6bbf1291ebdd8f63f4f5176be4ae9c",
+            "size": "2422426"
+        }
+    },
+    "cuda_cudart": {
+        "name": "CUDA Runtime (cudart)",
+        "license": "CUDA Toolkit",
+        "version": "11.4.148",
+        "linux-x86_64": {
+            "relative_path": "cuda_cudart/linux-x86_64/cuda_cudart-linux-x86_64-11.4.148-archive.tar.xz",
+            "sha256": "36bd6f1ea8711f69405ebd0b26d1f791a6ef6eb01cc3f01ba4231eb8ec09c208",
+            "md5": "b98036aa5e633eb19b7ef2e32e8811a7",
+            "size": "828732"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_cudart/linux-ppc64le/cuda_cudart-linux-ppc64le-11.4.148-archive.tar.xz",
+            "sha256": "fb70c6477dce2cfc3ee13d361b76453ad92671be36f98fab50e2510f657eb00e",
+            "md5": "594855b91ad5e9aa674d3a93d741431e",
+            "size": "777952"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_cudart/linux-sbsa/cuda_cudart-linux-sbsa-11.4.148-archive.tar.xz",
+            "sha256": "d013448f76c22614e458de94b5289807d2d0934b3a5deb073b621401a222c16f",
+            "md5": "2bcac7ef368ebeb804e33c4c7920ff78",
+            "size": "783344"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_cudart/windows-x86_64/cuda_cudart-windows-x86_64-11.4.148-archive.zip",
+            "sha256": "e889e38929a95845409ed7dcdb0e6189343af5d17442a3b8c9f2ba297f0d262e",
+            "md5": "c2fcccb16eec0cf4ed5807fcba2bd745",
+            "size": "2898471"
+        }
+    },
+    "cuda_cuobjdump": {
+        "name": "cuobjdump",
+        "license": "CUDA Toolkit",
+        "version": "11.4.120",
+        "linux-x86_64": {
+            "relative_path": "cuda_cuobjdump/linux-x86_64/cuda_cuobjdump-linux-x86_64-11.4.120-archive.tar.xz",
+            "sha256": "dd9d51ca6d1772545ba77640f74bd1162ea4ffe223e17c8faa6e0a11ec9b5e2a",
+            "md5": "0a28c3ee87dbe294afc73b90ff0c8101",
+            "size": "110008"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_cuobjdump/linux-ppc64le/cuda_cuobjdump-linux-ppc64le-11.4.120-archive.tar.xz",
+            "sha256": "3f5013ecd3ad3ef1f90f981189826ae9e5aadb7549a99e834c0f6d77c897a7ff",
+            "md5": "56cabd1ef862f62c10a6fc9e47186797",
+            "size": "115060"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_cuobjdump/linux-sbsa/cuda_cuobjdump-linux-sbsa-11.4.120-archive.tar.xz",
+            "sha256": "7f5c5e38780d9d44084f05ae091be1ad8672f370a6da17cc3f0a9a55e998163a",
+            "md5": "5df0f75608960c20f5c2b3b11cb9a2d3",
+            "size": "99752"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_cuobjdump/windows-x86_64/cuda_cuobjdump-windows-x86_64-11.4.120-archive.zip",
+            "sha256": "e371440535fae634c625a5dd02d18cd4accd11b9166703f9d5a95f7b721f09b0",
+            "md5": "2d8a519c9ebe674a624b3b4cbfe91be3",
+            "size": "2535529"
+        }
+    },
+    "cuda_cupti": {
+        "name": "CUPTI",
+        "license": "CUDA Toolkit",
+        "version": "11.4.120",
+        "linux-x86_64": {
+            "relative_path": "cuda_cupti/linux-x86_64/cuda_cupti-linux-x86_64-11.4.120-archive.tar.xz",
+            "sha256": "e589bd0955dc59cf7871dad3446e583316623dd899b67c34b808fbe14cde0209",
+            "md5": "e80232b5629d4c26376411f28ec41b05",
+            "size": "15499004"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_cupti/linux-ppc64le/cuda_cupti-linux-ppc64le-11.4.120-archive.tar.xz",
+            "sha256": "24687d171f15101109dc428bd2236889bda617377b2a29bdfc0173095bcf28a8",
+            "md5": "8a0aef6d201a0bb79af677d3aba9c790",
+            "size": "8092764"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_cupti/linux-sbsa/cuda_cupti-linux-sbsa-11.4.120-archive.tar.xz",
+            "sha256": "d66367c166d27ddd6d7ed07f7a492dfed77b6eae505a7037a29537ce3e15eeb3",
+            "md5": "81b11a7aac656df569ba5ab909d114c7",
+            "size": "7301688"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_cupti/windows-x86_64/cuda_cupti-windows-x86_64-11.4.120-archive.zip",
+            "sha256": "74545a99d9a35c53790003006b29b9af5ca52b48f8703fdbc003665b42f5ec39",
+            "md5": "745b2b131e2f421e65c7792547792b12",
+            "size": "10080557"
+        }
+    },
+    "cuda_cuxxfilt": {
+        "name": "CUDA cuxxfilt (demangler)",
+        "license": "CUDA Toolkit",
+        "version": "11.4.120",
+        "linux-x86_64": {
+            "relative_path": "cuda_cuxxfilt/linux-x86_64/cuda_cuxxfilt-linux-x86_64-11.4.120-archive.tar.xz",
+            "sha256": "8dc88e398f976d20540e7c7b4f004f158b12cd9edf59a9ab988abbacc3e1452c",
+            "md5": "2bc240881b64f762b053a6284a2f3c04",
+            "size": "176072"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_cuxxfilt/linux-ppc64le/cuda_cuxxfilt-linux-ppc64le-11.4.120-archive.tar.xz",
+            "sha256": "943e23feafe86b9b83441a51ada152b110031f7891dfa531d2ef85657360f70e",
+            "md5": "eed7b9a4008d6d18a2cc3d1630169fb9",
+            "size": "172424"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_cuxxfilt/linux-sbsa/cuda_cuxxfilt-linux-sbsa-11.4.120-archive.tar.xz",
+            "sha256": "50808b530cab8d37bfb73683c36afb9da843c6ca18d0394c1ce636ab4594ec9e",
+            "md5": "f5f79636b09d840234f7b54a10e6245a",
+            "size": "162820"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_cuxxfilt/windows-x86_64/cuda_cuxxfilt-windows-x86_64-11.4.120-archive.zip",
+            "sha256": "471a6106789596ac7f5de8bc9326b4a0193ecc35f7e5831fb32827a8cecaa2d0",
+            "md5": "76ff5d04e065ab466b607d16019f01bd",
+            "size": "166494"
+        }
+    },
+    "cuda_demo_suite": {
+        "name": "CUDA Demo Suite",
+        "license": "CUDA Toolkit",
+        "version": "11.4.100",
+        "linux-x86_64": {
+            "relative_path": "cuda_demo_suite/linux-x86_64/cuda_demo_suite-linux-x86_64-11.4.100-archive.tar.xz",
+            "sha256": "8cd9ffeb7742f4714166731ce8cbf74e2d2c8171d6b7091e0041816d47a7fd0c",
+            "md5": "9327079f165128a1b6346c32b61088e3",
+            "size": "3965292"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_demo_suite/windows-x86_64/cuda_demo_suite-windows-x86_64-11.4.100-archive.zip",
+            "sha256": "0ac19c9efa634042e1d38d97b75a656d9c0038219bdc5098a28d388ca7c427f2",
+            "md5": "8b97b7acba08bbbbbf122f2e0d81bc21",
+            "size": "5014818"
+        }
+    },
+    "cuda_documentation": {
+        "name": "CUDA Documentation",
+        "license": "CUDA Toolkit",
+        "version": "11.4.126",
+        "linux-x86_64": {
+            "relative_path": "cuda_documentation/linux-x86_64/cuda_documentation-linux-x86_64-11.4.126-archive.tar.xz",
+            "sha256": "2db25b21a6687803d146d34df0005f7d784ebd9303fbbd48d21f4508aedeb3fd",
+            "md5": "107cb0150f83da7ebec6e118e4522498",
+            "size": "61960"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_documentation/linux-ppc64le/cuda_documentation-linux-ppc64le-11.4.126-archive.tar.xz",
+            "sha256": "85719df5828ef91205353dab12085707e0f29c188aea41afe91b36f86ec9b338",
+            "md5": "afb21df7f560fa012593ff31021490a7",
+            "size": "61912"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_documentation/linux-sbsa/cuda_documentation-linux-sbsa-11.4.126-archive.tar.xz",
+            "sha256": "94c9bc3ab45b1e951570d4312fbb3627ac8cedb88d1da4a57fbfd1677a03f2c8",
+            "md5": "d05e8ec60b4aa7e494a960a32d18c7fa",
+            "size": "61944"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_documentation/windows-x86_64/cuda_documentation-windows-x86_64-11.4.126-archive.zip",
+            "sha256": "a02dc2be494f4429ee5d183c218d5b27744f3daf0d29b50516dd501491a42f5a",
+            "md5": "4e14de4b3f89d9ef951e8ea35ff810fe",
+            "size": "99427"
+        }
+    },
+    "cuda_gdb": {
+        "name": "CUDA GDB",
+        "license": "CUDA Toolkit",
+        "version": "11.4.120",
+        "linux-x86_64": {
+            "relative_path": "cuda_gdb/linux-x86_64/cuda_gdb-linux-x86_64-11.4.120-archive.tar.xz",
+            "sha256": "ce9748c224b2163dba84cc9e0ebbd7ea29217eb4674bd9e7892290c7eaae372b",
+            "md5": "e0de9ddbf59cfa699f4a1eb16961463e",
+            "size": "64086980"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_gdb/linux-ppc64le/cuda_gdb-linux-ppc64le-11.4.120-archive.tar.xz",
+            "sha256": "5084eee5c04c6a823e6e0f8c30eb2587b5ab31a949d21818ce769cd22191896e",
+            "md5": "562494875b8b8ccc345b146f3894288b",
+            "size": "63994280"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_gdb/linux-sbsa/cuda_gdb-linux-sbsa-11.4.120-archive.tar.xz",
+            "sha256": "c9f18f6f7262b39df76830798aa4dda5fbf455b95bd4af2eb5ae25ce77e3848c",
+            "md5": "cbf494bf0bc03c39106825333ff777b0",
+            "size": "63856896"
+        }
+    },
+    "cuda_memcheck": {
+        "name": "CUDA Memcheck",
+        "license": "CUDA Toolkit",
+        "version": "11.4.120",
+        "linux-x86_64": {
+            "relative_path": "cuda_memcheck/linux-x86_64/cuda_memcheck-linux-x86_64-11.4.120-archive.tar.xz",
+            "sha256": "6e1d64a2b31fec96a5eeb1d6ea914cfe83c671c3de4f987b6b5cda65d6e3b9e7",
+            "md5": "5b70e9b1eb50d0fff5b5d56ae76b358d",
+            "size": "139580"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_memcheck/linux-ppc64le/cuda_memcheck-linux-ppc64le-11.4.120-archive.tar.xz",
+            "sha256": "3a4d4c876bbb032c1e611b22a79e2cdce44cc6691ed519a63886a06094385ab4",
+            "md5": "97aa39e782ac0d935fa25dbad41274bd",
+            "size": "148128"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_memcheck/windows-x86_64/cuda_memcheck-windows-x86_64-11.4.120-archive.zip",
+            "sha256": "d3357d2a41143f8007c17af45b7e5733e0ec4c0c1185322739232c7603221b88",
+            "md5": "82ad9ae4d123a3666177f326b88fbacb",
+            "size": "181182"
+        }
+    },
+    "cuda_nsight": {
+        "name": "Nsight Eclipse Edition Plugin",
+        "license": "CUDA Toolkit",
+        "version": "11.4.120",
+        "linux-x86_64": {
+            "relative_path": "cuda_nsight/linux-x86_64/cuda_nsight-linux-x86_64-11.4.120-archive.tar.xz",
+            "sha256": "b2b54743ad4f8bbd812548a26be40f561f6fda0f0ab01df4e630ef30af7bfd7a",
+            "md5": "5981def738578dfe6f6166abe943f178",
+            "size": "118598236"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nsight/linux-ppc64le/cuda_nsight-linux-ppc64le-11.4.120-archive.tar.xz",
+            "sha256": "c8cfb7300dba923acfdd5e7b2d32f7a576b7d6d954fc71a3896aba0226b00f81",
+            "md5": "8b78eed909b09f80d91548f28a622b43",
+            "size": "118598240"
+        }
+    },
+    "cuda_nvcc": {
+        "name": "CUDA NVCC",
+        "license": "CUDA Toolkit",
+        "version": "11.4.152",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvcc/linux-x86_64/cuda_nvcc-linux-x86_64-11.4.152-archive.tar.xz",
+            "sha256": "7250fc83b54f9089e67f3b506648fd8e70a9107baed968cb5de169c05831d5e5",
+            "md5": "fae82c384d46626a2f2e69fd98f0034d",
+            "size": "35931152"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvcc/linux-ppc64le/cuda_nvcc-linux-ppc64le-11.4.152-archive.tar.xz",
+            "sha256": "a53c8d2e4454be0e899986a1585f8b1eddf874aac165716d6f98989e53f971d3",
+            "md5": "1b74e7951c76119a03b805bde8d42fc9",
+            "size": "33718168"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvcc/linux-sbsa/cuda_nvcc-linux-sbsa-11.4.152-archive.tar.xz",
+            "sha256": "c0743a099bfb8c840a20317559668777e9a8ac9664dc121bcd22d76cee08416d",
+            "md5": "8982bd399b169d45717763cae36f4bc3",
+            "size": "31676392"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvcc/windows-x86_64/cuda_nvcc-windows-x86_64-11.4.152-archive.zip",
+            "sha256": "460c9e54bd0b99f4f63243eeb6b2090d17193361575b189c050faa10d465d4a9",
+            "md5": "c9cae278599871aea78aa4584c24bbb1",
+            "size": "45724284"
+        }
+    },
+    "cuda_nvdisasm": {
+        "name": "CUDA nvdisasm",
+        "license": "CUDA Toolkit",
+        "version": "11.4.152",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvdisasm/linux-x86_64/cuda_nvdisasm-linux-x86_64-11.4.152-archive.tar.xz",
+            "sha256": "6ab9bd7c31a54529762fddc9ebfc4d331a912bf97b47318b0b75bfbd3b8a5551",
+            "md5": "e4d610b84f47026baa4c0603b007a778",
+            "size": "32847928"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvdisasm/linux-ppc64le/cuda_nvdisasm-linux-ppc64le-11.4.152-archive.tar.xz",
+            "sha256": "6cd970a59ba219c5da1ce39dbf08d7ba491ea17849adfed4ad83cc8409624348",
+            "md5": "a0870567d10771c7b3319880743e5a21",
+            "size": "32770452"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvdisasm/linux-sbsa/cuda_nvdisasm-linux-sbsa-11.4.152-archive.tar.xz",
+            "sha256": "68743913c877014b4f9a6d7267cc117d443c9990ea583ea837a1c51df1676d7d",
+            "md5": "204674baa498d7ebef702b73733b001f",
+            "size": "32729816"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvdisasm/windows-x86_64/cuda_nvdisasm-windows-x86_64-11.4.152-archive.zip",
+            "sha256": "9fa3a5a1248ad1247ee78a3d9627f1b2d7173cbde5bdb1635a853624f3f8137e",
+            "md5": "68ac6d501a93683e6faaab5ec4e59e4c",
+            "size": "33052575"
+        }
+    },
+    "cuda_nvml_dev": {
+        "name": "CUDA NVML Headers",
+        "license": "CUDA Toolkit",
+        "version": "11.4.120",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvml_dev/linux-x86_64/cuda_nvml_dev-linux-x86_64-11.4.120-archive.tar.xz",
+            "sha256": "f722199f9cc101c97c6fc809745076645064d36558a5aab56bba5529716e0fe9",
+            "md5": "1262ec1a15eeb4f2c7158192f580804f",
+            "size": "71964"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvml_dev/linux-ppc64le/cuda_nvml_dev-linux-ppc64le-11.4.120-archive.tar.xz",
+            "sha256": "08a763906637778d1c85455bdad4f2c0cb15d4cb0ae1c088dc474cb7ff78af81",
+            "md5": "bae7ce5fda7a60e4f05219d8a0b8944c",
+            "size": "71564"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvml_dev/linux-sbsa/cuda_nvml_dev-linux-sbsa-11.4.120-archive.tar.xz",
+            "sha256": "61c93230ea9fd9ae657c57954294380b5e8ee1688778f519ce5d43b728a04b9d",
+            "md5": "91ba0d30c5ef440a1ffe115e5f5b6fb7",
+            "size": "72120"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvml_dev/windows-x86_64/cuda_nvml_dev-windows-x86_64-11.4.120-archive.zip",
+            "sha256": "d97d1266345bcaf4212132bbc19270ee9c10bae37b29647ff5f40620f83fa3ce",
+            "md5": "928f18b29e00a1a342119dddc1e0a0da",
+            "size": "100022"
+        }
+    },
+    "cuda_nvprof": {
+        "name": "CUDA nvprof",
+        "license": "CUDA Toolkit",
+        "version": "11.4.120",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvprof/linux-x86_64/cuda_nvprof-linux-x86_64-11.4.120-archive.tar.xz",
+            "sha256": "bcf705c8f25f3423014b4182741e91676c4858b1b055a314911e24787a2d3129",
+            "md5": "cc266f0a2c9e05ac34105fc084b54b9e",
+            "size": "1938384"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvprof/linux-ppc64le/cuda_nvprof-linux-ppc64le-11.4.120-archive.tar.xz",
+            "sha256": "398dd3c6f04b712f7ed0e70ee3d56ee04e0b9fa249cc0a655b9263a24dca7d8c",
+            "md5": "e1e6ef34ffefaf4e9bc5d34f34777427",
+            "size": "1594396"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvprof/linux-sbsa/cuda_nvprof-linux-sbsa-11.4.120-archive.tar.xz",
+            "sha256": "e87eceb2da015262ca57f7200c8ca96251dd11161afcdeea9a080fce06e90730",
+            "md5": "95260289dd9f07abd0013b0b82c2aa79",
+            "size": "16124"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvprof/windows-x86_64/cuda_nvprof-windows-x86_64-11.4.120-archive.zip",
+            "sha256": "826b85be249e8a518f58b3fdaf36f52871e96e6fe0e86f7fc6facbc619405e81",
+            "md5": "a25a3b9d2710e7e9f09492492fe09777",
+            "size": "1610917"
+        }
+    },
+    "cuda_nvprune": {
+        "name": "CUDA nvprune",
+        "license": "CUDA Toolkit",
+        "version": "11.4.120",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvprune/linux-x86_64/cuda_nvprune-linux-x86_64-11.4.120-archive.tar.xz",
+            "sha256": "3e0ae31117c82f5e0220662a9ee1df15d2aa79bf6a53bc627ee5898a3e9719ef",
+            "md5": "8b64523c53e6587c17c6c621ddf8a632",
+            "size": "52772"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvprune/linux-ppc64le/cuda_nvprune-linux-ppc64le-11.4.120-archive.tar.xz",
+            "sha256": "a8f62ffd30747f5481c6abb11a924dd68b8da9b4a72a0821a411d545fd79ebbf",
+            "md5": "eb0ba8fd0b6f8daeb6cc8d50f7344fff",
+            "size": "54280"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvprune/linux-sbsa/cuda_nvprune-linux-sbsa-11.4.120-archive.tar.xz",
+            "sha256": "da4078a81d0af984bd42f23c584091968454a0e925c64289f2e5922e02c76131",
+            "md5": "89c50bee0950223a4dc194726ed908fc",
+            "size": "46000"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvprune/windows-x86_64/cuda_nvprune-windows-x86_64-11.4.120-archive.zip",
+            "sha256": "ec5e1975147a83da707a1803c1e9af93b02ff8af246d23b733bd5a1662c708a9",
+            "md5": "8c22f5bb3b3bdbb0421b07b988e5ce3e",
+            "size": "143427"
+        }
+    },
+    "cuda_nvrtc": {
+        "name": "CUDA NVRTC",
+        "license": "CUDA Toolkit",
+        "version": "11.4.152",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvrtc/linux-x86_64/cuda_nvrtc-linux-x86_64-11.4.152-archive.tar.xz",
+            "sha256": "5b7e491b583d1914c591447b9cf1b4c02dc33b222874eb89eee4ea8f87929396",
+            "md5": "60aa9f569c86f41519a5d0a222f09109",
+            "size": "14691116"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvrtc/linux-ppc64le/cuda_nvrtc-linux-ppc64le-11.4.152-archive.tar.xz",
+            "sha256": "917d9e0f050bd140e279b6e063af3ab92e443572e6baf840e2c1ed6cb5b8e765",
+            "md5": "84ceac397b7172f94485065e42da41fd",
+            "size": "13608340"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvrtc/linux-sbsa/cuda_nvrtc-linux-sbsa-11.4.152-archive.tar.xz",
+            "sha256": "d82eb049e72545239c6d64e6bf5afd06b89df06f338165fc5a68a2bf3143472e",
+            "md5": "01b483fcf81c794266dce6d2b8b39a17",
+            "size": "13550244"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvrtc/windows-x86_64/cuda_nvrtc-windows-x86_64-11.4.152-archive.zip",
+            "sha256": "48e3def76ff1842d00051fd035e6487be711ac4019e9dc43f5db3f9e14363f91",
+            "md5": "4fa6b0fb01c359360ab9352dacace716",
+            "size": "16299675"
+        }
+    },
+    "cuda_nvtx": {
+        "name": "CUDA NVTX",
+        "license": "CUDA Toolkit",
+        "version": "11.4.120",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvtx/linux-x86_64/cuda_nvtx-linux-x86_64-11.4.120-archive.tar.xz",
+            "sha256": "e50bd973d6b33f3b9a405a96ad04f62482e94bbbadfdc971ea1bb5d723c98c52",
+            "md5": "e62f8df47a1d8c47568c948b8d4789f8",
+            "size": "48148"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvtx/linux-ppc64le/cuda_nvtx-linux-ppc64le-11.4.120-archive.tar.xz",
+            "sha256": "fb89733ad6d46522a7e944c42df4127a6f87c38f0c4caa6b069669ef65a1c562",
+            "md5": "ff407300bcb5f8acac30fbda02fe7da3",
+            "size": "48152"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvtx/linux-sbsa/cuda_nvtx-linux-sbsa-11.4.120-archive.tar.xz",
+            "sha256": "95677940f19a12b82037958415efecc18c511c6480800c4df6d82bd5c3ba28b0",
+            "md5": "1d0f72f8a04df9ad7face3af3169c44d",
+            "size": "48676"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvtx/windows-x86_64/cuda_nvtx-windows-x86_64-11.4.120-archive.zip",
+            "sha256": "13bacfd087cc1d11759705bc9a04647201f5f1c49103ba2ac233981c305143ec",
+            "md5": "26de9a2dcb6ba9a920fd58cbf9dd19f2",
+            "size": "65720"
+        }
+    },
+    "cuda_nvvp": {
+        "name": "CUDA NVVP",
+        "license": "CUDA Toolkit",
+        "version": "11.4.193",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvvp/linux-x86_64/cuda_nvvp-linux-x86_64-11.4.193-archive.tar.xz",
+            "sha256": "4c7dd6fe52fd90aabfb9c4afa7a65302546ac8212e62c1d9e1d370ec9756d7e5",
+            "md5": "8d321f064b8c1bf4a9641694fae7c2bc",
+            "size": "112249072"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvvp/linux-ppc64le/cuda_nvvp-linux-ppc64le-11.4.193-archive.tar.xz",
+            "sha256": "4952683d2b158a2c507b3c1f968ad5fdb6d3421429832cb300c02733f775986e",
+            "md5": "fa0e0023ff79698989070754e2f6ab7d",
+            "size": "111627960"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvvp/windows-x86_64/cuda_nvvp-windows-x86_64-11.4.193-archive.zip",
+            "sha256": "0659bebb271a566e1a5e75659043632398d42b37413df879293da4c077472720",
+            "md5": "c5b3cdcedec6655ca69bf7083e9150f1",
+            "size": "120334859"
+        }
+    },
+    "cuda_sanitizer_api": {
+        "name": "CUDA Compute Sanitizer API",
+        "license": "CUDA Toolkit",
+        "version": "11.4.120",
+        "linux-x86_64": {
+            "relative_path": "cuda_sanitizer_api/linux-x86_64/cuda_sanitizer_api-linux-x86_64-11.4.120-archive.tar.xz",
+            "sha256": "75044d837ef848460037fc16abe4f2f265791c3888c6d1f7e63366a466b2aee7",
+            "md5": "aa46c3b0ed1d16a75b489c75f067772e",
+            "size": "7092964"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_sanitizer_api/linux-ppc64le/cuda_sanitizer_api-linux-ppc64le-11.4.120-archive.tar.xz",
+            "sha256": "825d5f72fbcc4ed04bce016009fbe5881fb138b14d55df7190121fb34b7d2845",
+            "md5": "0557a1dd8c0b9e8a854ed09357053143",
+            "size": "5831356"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_sanitizer_api/linux-sbsa/cuda_sanitizer_api-linux-sbsa-11.4.120-archive.tar.xz",
+            "sha256": "a241a68429a1c33fdd0ba335d81c246079086552c56abb08033dd3dc85c576ad",
+            "md5": "3a8de05d46d603136ac33ac6511dd454",
+            "size": "5648592"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_sanitizer_api/windows-x86_64/cuda_sanitizer_api-windows-x86_64-11.4.120-archive.zip",
+            "sha256": "9fdb78035542c4eb9a8e881b8ced959eabfa04894ce2b847d54741120b5f1aaa",
+            "md5": "ccd5b8f2656334b040a513c418408091",
+            "size": "12062745"
+        }
+    },
+    "fabricmanager": {
+        "name": "NVIDIA Fabric Manager",
+        "license": "NVIDIA Driver",
+        "version": "470.82.01",
+        "linux-x86_64": {
+            "relative_path": "fabricmanager/linux-x86_64/fabricmanager-linux-x86_64-470.82.01-archive.tar.xz",
+            "sha256": "b039435622c14b2b1071aaabc0b63b04f21ec17564c1629a89e7cd25da8673fc",
+            "md5": "4d3782e2354cfe0d70c84e79aaf5e5a2",
+            "size": "1199624"
+        }
+    },
+    "libcublas": {
+        "name": "CUDA cuBLAS",
+        "license": "CUDA Toolkit",
+        "version": "11.6.5.2",
+        "linux-x86_64": {
+            "relative_path": "libcublas/linux-x86_64/libcublas-linux-x86_64-11.6.5.2-archive.tar.xz",
+            "sha256": "751c585c062f6e1dfcb1bca5898de48d4a247edad478de37eda0c7c62038379a",
+            "md5": "9d36ade70e3d9c0059441fc59018d42e",
+            "size": "397289908"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libcublas/linux-ppc64le/libcublas-linux-ppc64le-11.6.5.2-archive.tar.xz",
+            "sha256": "0bbb8a8db38a3a0b97bfc879046dc42dca3defb0f82b1424e23c49bdcc6f26d0",
+            "md5": "9135c14acbcecd545578cc08642c6e53",
+            "size": "396612488"
+        },
+        "linux-sbsa": {
+            "relative_path": "libcublas/linux-sbsa/libcublas-linux-sbsa-11.6.5.2-archive.tar.xz",
+            "sha256": "7325d4fe77567ee69799902eae7479b8d6518c7722882d683a41b1ebdd8f676d",
+            "md5": "75989e41f24bff9fbff1aaef7231b1aa",
+            "size": "396559712"
+        },
+        "windows-x86_64": {
+            "relative_path": "libcublas/windows-x86_64/libcublas-windows-x86_64-11.6.5.2-archive.zip",
+            "sha256": "7ebcfcd9cc327a020f156d9a9f7607ea6a563038834991324230102915bef47c",
+            "md5": "1d69e9103b52557b6cb49cfdc5ae5709",
+            "size": "290453672"
+        }
+    },
+    "libcufft": {
+        "name": "CUDA cuFFT",
+        "license": "CUDA Toolkit",
+        "version": "10.5.2.100",
+        "linux-x86_64": {
+            "relative_path": "libcufft/linux-x86_64/libcufft-linux-x86_64-10.5.2.100-archive.tar.xz",
+            "sha256": "0e3ec55be39db99c8769a3f297d190b93c8281afb5b3bc2ca1966ae94d42255f",
+            "md5": "08023fd6700cb0f324421af5cdc4e1df",
+            "size": "215214100"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libcufft/linux-ppc64le/libcufft-linux-ppc64le-10.5.2.100-archive.tar.xz",
+            "sha256": "b73d5a8a5a3a9497189b340001a0547d60b6971e42d60aa6d8ca0ae3ec1b0818",
+            "md5": "712c0cfb1c74439bb581d36fc9c1bb24",
+            "size": "214860644"
+        },
+        "linux-sbsa": {
+            "relative_path": "libcufft/linux-sbsa/libcufft-linux-sbsa-10.5.2.100-archive.tar.xz",
+            "sha256": "49b7d658dc84fd6669a27907d403b4c93d82f9cc10670e9c990eed29ae6e5ee8",
+            "md5": "c652700572c72b422727fb3a9db5dfa2",
+            "size": "214998656"
+        },
+        "windows-x86_64": {
+            "relative_path": "libcufft/windows-x86_64/libcufft-windows-x86_64-10.5.2.100-archive.zip",
+            "sha256": "eaf957a481d0c361724cf796b6bc105e36f9a3d17b7525107a78ff15ea3ddc6c",
+            "md5": "37d169ea81f44c4caca0bb1dcc527549",
+            "size": "287129611"
+        }
+    },
+    "libcufile": {
+        "name": "CUDA cuFile",
+        "license": "CUDA Toolkit",
+        "version": "1.0.2.10",
+        "linux-x86_64": {
+            "relative_path": "libcufile/linux-x86_64/libcufile-linux-x86_64-1.0.2.10-archive.tar.xz",
+            "sha256": "6f9d83ff112d81dbf36317c5140e063d4750debbebc17ffeab3ad934dbc845f1",
+            "md5": "41929b0ff024c53033a705f29bc7e573",
+            "size": "45641384"
+        }
+    },
+    "libcurand": {
+        "name": "CUDA cuRAND",
+        "license": "CUDA Toolkit",
+        "version": "10.2.5.120",
+        "linux-x86_64": {
+            "relative_path": "libcurand/linux-x86_64/libcurand-linux-x86_64-10.2.5.120-archive.tar.xz",
+            "sha256": "0f741c8c74bc19ea03a3a19a6d858d364d86d806fa5941763cafb181d4f9b2f0",
+            "md5": "5a87e0cef68405a1e4777b76d0db7fed",
+            "size": "79315612"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libcurand/linux-ppc64le/libcurand-linux-ppc64le-10.2.5.120-archive.tar.xz",
+            "sha256": "14589b5f7d7e4e283552a82ea9f7ffc6504e95c10dc33a5834a2aa75bcccb208",
+            "md5": "012f3f367e15dd623de41dfa9cd5c695",
+            "size": "79373580"
+        },
+        "linux-sbsa": {
+            "relative_path": "libcurand/linux-sbsa/libcurand-linux-sbsa-10.2.5.120-archive.tar.xz",
+            "sha256": "834b508e8979c3f4751a0ddbc62e9c8bc113844e4f82326e73cc42da4adabad9",
+            "md5": "c76e1c5544208c0372848965b0aec0a1",
+            "size": "79304900"
+        },
+        "windows-x86_64": {
+            "relative_path": "libcurand/windows-x86_64/libcurand-windows-x86_64-10.2.5.120-archive.zip",
+            "sha256": "35108db3e9afaac017e1d3460313632850e3627520cf2213b987fa3d4cf6a8ce",
+            "md5": "dff8fe892d9551a11d366f57a3f32ad5",
+            "size": "53518206"
+        }
+    },
+    "libcusolver": {
+        "name": "CUDA cuSOLVER",
+        "license": "CUDA Toolkit",
+        "version": "11.2.0.120",
+        "linux-x86_64": {
+            "relative_path": "libcusolver/linux-x86_64/libcusolver-linux-x86_64-11.2.0.120-archive.tar.xz",
+            "sha256": "5bae164a8a6969a374f6abe33cc71462e714538c2a818228cf401d0fa6c3c1b7",
+            "md5": "198eb0679c8e81b9cb82107370bf1ee6",
+            "size": "113793268"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libcusolver/linux-ppc64le/libcusolver-linux-ppc64le-11.2.0.120-archive.tar.xz",
+            "sha256": "0e2671cbe1cdb8cf4eb11698131c4ef4ce9ae58623595e623bbb3a492d7abe99",
+            "md5": "9a10d6dddcd66a095d1f5dc47f7c4924",
+            "size": "113397472"
+        },
+        "linux-sbsa": {
+            "relative_path": "libcusolver/linux-sbsa/libcusolver-linux-sbsa-11.2.0.120-archive.tar.xz",
+            "sha256": "a53d4d80240702a8216903798ced8449f690379b785cc5fee21aeff5e0241dc4",
+            "md5": "07d5e61eac9f304ff2eec374f7674711",
+            "size": "112947208"
+        },
+        "windows-x86_64": {
+            "relative_path": "libcusolver/windows-x86_64/libcusolver-windows-x86_64-11.2.0.120-archive.zip",
+            "sha256": "72e456cc8d7e79f514eae95ac9a4acb269e66344d67c5913370a3f0367a1f862",
+            "md5": "c8097d4d1473b354b6570d9d9f788991",
+            "size": "175875554"
+        }
+    },
+    "libcusparse": {
+        "name": "CUDA cuSPARSE",
+        "license": "CUDA Toolkit",
+        "version": "11.6.0.120",
+        "linux-x86_64": {
+            "relative_path": "libcusparse/linux-x86_64/libcusparse-linux-x86_64-11.6.0.120-archive.tar.xz",
+            "sha256": "00bef20a412c9b099e7e48477804ed4c2bda8581b101d19c50559efff79bf269",
+            "md5": "0aaa13f7c89ce128a2321ad4ed0fc45f",
+            "size": "205850728"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libcusparse/linux-ppc64le/libcusparse-linux-ppc64le-11.6.0.120-archive.tar.xz",
+            "sha256": "79721331edb5e17028273cf2280b2e3aedd11c4c8145c2fbd16afeb8c37f74b9",
+            "md5": "12525f41737ba7066427a946f546b73b",
+            "size": "205966724"
+        },
+        "linux-sbsa": {
+            "relative_path": "libcusparse/linux-sbsa/libcusparse-linux-sbsa-11.6.0.120-archive.tar.xz",
+            "sha256": "93f7fbb8191e4af59aac32adb8ac06d6501bf90ca97e3e01f400314bc320c852",
+            "md5": "37aa8d11916834daf765f385417a1d23",
+            "size": "205713852"
+        },
+        "windows-x86_64": {
+            "relative_path": "libcusparse/windows-x86_64/libcusparse-windows-x86_64-11.6.0.120-archive.zip",
+            "sha256": "bd995a141da804fa0d2c3bce1c6d575e862877e1356041dae326825e5194c176",
+            "md5": "63fa77c71d4c5f93e5f97dd03bbb31bb",
+            "size": "165699705"
+        }
+    },
+    "libnpp": {
+        "name": "CUDA NPP",
+        "license": "CUDA Toolkit",
+        "version": "11.4.0.110",
+        "linux-x86_64": {
+            "relative_path": "libnpp/linux-x86_64/libnpp-linux-x86_64-11.4.0.110-archive.tar.xz",
+            "sha256": "2e65c5b8d8aabf5521faf8daab170ddef27d795f61ded58343a9070dffd2ebff",
+            "md5": "c8cce28919ab1b87952f657883ad2019",
+            "size": "149105144"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libnpp/linux-ppc64le/libnpp-linux-ppc64le-11.4.0.110-archive.tar.xz",
+            "sha256": "7cb571fb26fa5ae3c85489a45eb088ade9f6bf01105d651d7eaee9857085b368",
+            "md5": "794acd28cb9f8a741557bd3c2b6168fd",
+            "size": "149486332"
+        },
+        "linux-sbsa": {
+            "relative_path": "libnpp/linux-sbsa/libnpp-linux-sbsa-11.4.0.110-archive.tar.xz",
+            "sha256": "c722734c0b36702a549a3796e76461376ae471d7af7729c1d59565cb08c95ed5",
+            "md5": "f97cc0df88a8000340d397f902d7d0a4",
+            "size": "148458280"
+        },
+        "windows-x86_64": {
+            "relative_path": "libnpp/windows-x86_64/libnpp-windows-x86_64-11.4.0.110-archive.zip",
+            "sha256": "6e1a90494f93db97687b8f2b216da0ab3ca4677640c856a35e7d3b12c46c4223",
+            "md5": "57f29f491747786ef1392435502da28d",
+            "size": "111941586"
+        }
+    },
+    "libnvjpeg": {
+        "name": "CUDA nvJPEG",
+        "license": "CUDA Toolkit",
+        "version": "11.5.2.120",
+        "linux-x86_64": {
+            "relative_path": "libnvjpeg/linux-x86_64/libnvjpeg-linux-x86_64-11.5.2.120-archive.tar.xz",
+            "sha256": "b664c4cec5bf0518c83c5568fb9bc36d202dff67fce4ee12657043f45b431347",
+            "md5": "3f8670cb77f6d11219e485aa28ff3b34",
+            "size": "1906200"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libnvjpeg/linux-ppc64le/libnvjpeg-linux-ppc64le-11.5.2.120-archive.tar.xz",
+            "sha256": "c0e5fe1dc9c45e71fde99071deac6a48a94515b79e59cb0fab4412060b6bac95",
+            "md5": "8cce374dc46360952ef14e19902d240e",
+            "size": "1925636"
+        },
+        "linux-sbsa": {
+            "relative_path": "libnvjpeg/linux-sbsa/libnvjpeg-linux-sbsa-11.5.2.120-archive.tar.xz",
+            "sha256": "0e7f4360e75a6f880b2accbfd7dd0cc91e850014ee42ff1c5fcd5060fb14beec",
+            "md5": "1c8275903175d8f63dfef2b50c752bb4",
+            "size": "1764008"
+        },
+        "windows-x86_64": {
+            "relative_path": "libnvjpeg/windows-x86_64/libnvjpeg-windows-x86_64-11.5.2.120-archive.zip",
+            "sha256": "45d894a95aa26e125f5d002d138c6d9a2f2568edf809fea86d7782657bdec5fc",
+            "md5": "ad0b579ee7817a42c813f5424c53019e",
+            "size": "1951350"
+        }
+    },
+    "nsight_compute": {
+        "name": "Nsight Compute",
+        "license": "NVIDIA SLA",
+        "version": "2021.2.2.1",
+        "linux-x86_64": {
+            "relative_path": "nsight_compute/linux-x86_64/nsight_compute-linux-x86_64-2021.2.2.1-archive.tar.xz",
+            "sha256": "9baed2f77b341f6953a7de1f93c0a939c9a08884edbe0b30b0887e9d81960b39",
+            "md5": "c3d6baccc29b24dc0f48a45454f61dad",
+            "size": "284793108"
+        },
+        "linux-ppc64le": {
+            "relative_path": "nsight_compute/linux-ppc64le/nsight_compute-linux-ppc64le-2021.2.2.1-archive.tar.xz",
+            "sha256": "07980f3c1bcf1256bdcc86a8cd61fda1214af39f1a2b27d7e249a0f97c9f68c7",
+            "md5": "f1ae025d30e3b6602ee922db46b2cea6",
+            "size": "57790468"
+        },
+        "linux-sbsa": {
+            "relative_path": "nsight_compute/linux-sbsa/nsight_compute-linux-sbsa-2021.2.2.1-archive.tar.xz",
+            "sha256": "21458456d17779c8c686055cd202414bdeb2445daae480311c428fe69e1649fe",
+            "md5": "6a3229e361f0d4dd1b6cd47a26a692cc",
+            "size": "56717204"
+        },
+        "windows-x86_64": {
+            "relative_path": "nsight_compute/windows-x86_64/nsight_compute-windows-x86_64-2021.2.2.1-archive.zip",
+            "sha256": "dcc1f9b2cbdcfebcfcacd1acf522145e3335349139da6994d2b6e7610a43eecf",
+            "md5": "21e5ef7a02a83748aed68fdf4765ff7a",
+            "size": "253104502"
+        }
+    },
+    "nsight_nvtx": {
+        "name": "Nsight NVTX",
+        "license": "CUDA Toolkit",
+        "version": "1.21018621",
+        "windows-x86_64": {
+            "relative_path": "nsight_nvtx/windows-x86_64/nsight_nvtx-windows-x86_64-1.21018621-archive.zip",
+            "sha256": "d99b015bfb1308206f9d7c16ea401bf426fed3a5a99953b855fe4e68be5ed2d1",
+            "md5": "34ee04d45cfca1c4e3cbfba0ec8f6f80",
+            "size": "315692"
+        }
+    },
+    "nsight_systems": {
+        "name": "Nsight Systems",
+        "license": "NVIDIA SLA",
+        "version": "2021.3.2.4",
+        "linux-x86_64": {
+            "relative_path": "nsight_systems/linux-x86_64/nsight_systems-linux-x86_64-2021.3.2.4-archive.tar.xz",
+            "sha256": "317dcd4a3d78c7d916924f6433cb93415f19e16e4688413e4692180e37f7f87a",
+            "md5": "572fb66e9bd39406222eae7f3389794a",
+            "size": "174858452"
+        },
+        "linux-ppc64le": {
+            "relative_path": "nsight_systems/linux-ppc64le/nsight_systems-linux-ppc64le-2021.3.2.4-archive.tar.xz",
+            "sha256": "45c874f923af9fc6247058ce3324322593a7367edc4b105280d017970d5def69",
+            "md5": "4bacedaccacc5bb9cffe6b13f2502586",
+            "size": "21385068"
+        },
+        "linux-sbsa": {
+            "relative_path": "nsight_systems/linux-sbsa/nsight_systems-linux-sbsa-2021.3.2.4-archive.tar.xz",
+            "sha256": "76ce8ed29e4f8d8d472f702b9e14543f4c4e7b8f27a90079d8c3e6580db6cb16",
+            "md5": "f2b7b464fab05c73872b1ccfc8f433ea",
+            "size": "33097032"
+        },
+        "windows-x86_64": {
+            "relative_path": "nsight_systems/windows-x86_64/nsight_systems-windows-x86_64-2021.3.2.4-archive.zip",
+            "sha256": "1002ea5ef56ae5f458101af04252190e8873f950389f6c8f78cd475bd71b6efe",
+            "md5": "8e9e44e9e3ec526f1378d1e0d0423bff",
+            "size": "226086324"
+        }
+    },
+    "nsight_vse": {
+        "name": "Nsight Visual Studio Edition (VSE)",
+        "license": "NVIDIA SLA",
+        "version": "2021.2.1.21205",
+        "windows-x86_64": {
+            "relative_path": "nsight_vse/windows-x86_64/nsight_vse-windows-x86_64-2021.2.1.21205-archive.zip",
+            "sha256": "116fb34fc90cd13cf17649931be0af756930da98bbd5339b44b6cbd2d1e42453",
+            "md5": "1ff5d4397b22ed55be7c7d2a5a594a2a",
+            "size": "284584707"
+        }
+    },
+    "nvidia_driver": {
+        "name": "NVIDIA Linux Driver",
+        "license": "NVIDIA Driver",
+        "version": "470.82.01",
+        "linux-x86_64": {
+            "relative_path": "nvidia_driver/linux-x86_64/nvidia_driver-linux-x86_64-470.82.01-archive.tar.xz",
+            "sha256": "aa8edae8b40ee2c6808fd59220e81f46f2ccf8bd1ec184eb8dc83ddabba139db",
+            "md5": "9fd218a52ee6620319a4c77176dd7145",
+            "size": "269972368"
+        },
+        "linux-ppc64le": {
+            "relative_path": "nvidia_driver/linux-ppc64le/nvidia_driver-linux-ppc64le-470.82.01-archive.tar.xz",
+            "sha256": "eb521f9d849d05500f793915f0f455fe95ed0f515078081ea9e7903a0ca08957",
+            "md5": "c56d1492bcb7d65222f9dca907bf0c14",
+            "size": "67098452"
+        },
+        "linux-sbsa": {
+            "relative_path": "nvidia_driver/linux-sbsa/nvidia_driver-linux-sbsa-470.82.01-archive.tar.xz",
+            "sha256": "4d8fa4bef4037b249f4da083796a213d3e6701e683784e75122b326ab7130625",
+            "md5": "2e3059458ca28211195801da983e424c",
+            "size": "183043372"
+        }
+    },
+    "nvidia_fs": {
+        "name": "NVIDIA filesystem",
+        "license": "CUDA Toolkit",
+        "version": "2.7.53",
+        "linux-x86_64": {
+            "relative_path": "nvidia_fs/linux-x86_64/nvidia_fs-linux-x86_64-2.7.53-archive.tar.xz",
+            "sha256": "9fa17e62079fc1fadd1046b8a99dad39d1813cbc70c08bad8f30dc7946ba6894",
+            "md5": "4b4cc07a2aaf8562b1f658522613600a",
+            "size": "67712"
+        }
+    },
+    "visual_studio_integration": {
+        "name": "CUDA Visual Studio Integration",
+        "license": "CUDA Toolkit",
+        "version": "11.4.120",
+        "windows-x86_64": {
+            "relative_path": "visual_studio_integration/windows-x86_64/visual_studio_integration-windows-x86_64-11.4.120-archive.zip",
+            "sha256": "a97171f455c7c3e938958ee02deddf264c63dd9f10197d07954917c04b444ff2",
+            "md5": "8f19de4992331ac5a877b3d3ccff25da",
+            "size": "387698"
+        }
+    }
+}
diff --git a/pkgs/development/compilers/cudatoolkit/redist/manifests/redistrib_11.5.2.json b/pkgs/development/compilers/cudatoolkit/redist/manifests/redistrib_11.5.2.json
new file mode 100644
index 0000000000000..94335065c8a77
--- /dev/null
+++ b/pkgs/development/compilers/cudatoolkit/redist/manifests/redistrib_11.5.2.json
@@ -0,0 +1,873 @@
+{
+    "release_date": "2022-02-02",
+    "cuda_cccl": {
+        "name": "CXX Core Compute Libraries",
+        "license": "CUDA Toolkit",
+        "version": "11.5.62",
+        "linux-x86_64": {
+            "relative_path": "cuda_cccl/linux-x86_64/cuda_cccl-linux-x86_64-11.5.62-archive.tar.xz",
+            "sha256": "bbe633d6603d5a96a214dcb9f3f6f6fd2fa04d62e53694af97ae0c7afe0121b0",
+            "md5": "e5deef4f6cb71f14aac5be5d5745dafe",
+            "size": "960968"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_cccl/linux-ppc64le/cuda_cccl-linux-ppc64le-11.5.62-archive.tar.xz",
+            "sha256": "f5301a213878c7afbc67da03b09b27e1cb92178483042538f1585df09407214a",
+            "md5": "9c3200a20b10bebcdde87367128d36d9",
+            "size": "960940"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_cccl/linux-sbsa/cuda_cccl-linux-sbsa-11.5.62-archive.tar.xz",
+            "sha256": "a4faf04025bdaf5b7871ad43f50cbe2ca10baf8665b17b78d32c50aa8ba7ae8b",
+            "md5": "229a13fbe8426da383addf9ee9168984",
+            "size": "960660"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_cccl/windows-x86_64/cuda_cccl-windows-x86_64-11.5.62-archive.zip",
+            "sha256": "2a44c359d523317d1c93ba6568ace3c088c83026e2e40d34a97fccd876466b4b",
+            "md5": "93604e9c00b8fbc31827c7a82c0894c2",
+            "size": "2459582"
+        }
+    },
+    "cuda_cudart": {
+        "name": "CUDA Runtime (cudart)",
+        "license": "CUDA Toolkit",
+        "version": "11.5.117",
+        "linux-x86_64": {
+            "relative_path": "cuda_cudart/linux-x86_64/cuda_cudart-linux-x86_64-11.5.117-archive.tar.xz",
+            "sha256": "c01bfcfca22063c99fd50122d39383433f4f789e021c7785cd555f59c2632a2c",
+            "md5": "7549121367907b56af18e5806e8244bc",
+            "size": "836276"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_cudart/linux-ppc64le/cuda_cudart-linux-ppc64le-11.5.117-archive.tar.xz",
+            "sha256": "8f412376f4951df52380d87bb6c22704cb930ac6cef0fe92f2f31604ef744ce7",
+            "md5": "dab60517ad1e6018c009305025158860",
+            "size": "782660"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_cudart/linux-sbsa/cuda_cudart-linux-sbsa-11.5.117-archive.tar.xz",
+            "sha256": "550f8dfdce3fb6ca723d716abff81e1fd55132a130d284ae2050a0f09f40c93f",
+            "md5": "c1c0c65dce9da1105d812d0b08d99108",
+            "size": "783804"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_cudart/windows-x86_64/cuda_cudart-windows-x86_64-11.5.117-archive.zip",
+            "sha256": "02cd427306ada807c9a8a1f16dd34ddeb58f35c7932bcbe13e1ee2afa882332c",
+            "md5": "b8c4d1288f5918d67777192abd627238",
+            "size": "2915733"
+        }
+    },
+    "cuda_cuobjdump": {
+        "name": "cuobjdump",
+        "license": "CUDA Toolkit",
+        "version": "11.5.119",
+        "linux-x86_64": {
+            "relative_path": "cuda_cuobjdump/linux-x86_64/cuda_cuobjdump-linux-x86_64-11.5.119-archive.tar.xz",
+            "sha256": "798fa7124d56661d7a211900266f658d4303931936157e863c82cf31aeb27b09",
+            "md5": "1d965f0f33b751d050ac8238a7a350a3",
+            "size": "112864"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_cuobjdump/linux-ppc64le/cuda_cuobjdump-linux-ppc64le-11.5.119-archive.tar.xz",
+            "sha256": "04845b4feb728840823b17aadc2fb579bd8be4e04f1cfe25bb78e8724794cdfa",
+            "md5": "391d5e1b42899f34125793096f01bdbb",
+            "size": "117636"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_cuobjdump/linux-sbsa/cuda_cuobjdump-linux-sbsa-11.5.119-archive.tar.xz",
+            "sha256": "1ae185d861f7075046e53e8ec69d4b650eef1bc09fdb0c89adf69e48f9b13d57",
+            "md5": "19359104b424b6033b77c6b2984fc06f",
+            "size": "101836"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_cuobjdump/windows-x86_64/cuda_cuobjdump-windows-x86_64-11.5.119-archive.zip",
+            "sha256": "2b059697dcc5b3df8ca527612893905cfb91f52fef4988388458060d038d86a9",
+            "md5": "8f8ac819425d7e92a4bcb2e940eaeaad",
+            "size": "2538559"
+        }
+    },
+    "cuda_cupti": {
+        "name": "CUPTI",
+        "license": "CUDA Toolkit",
+        "version": "11.5.114",
+        "linux-x86_64": {
+            "relative_path": "cuda_cupti/linux-x86_64/cuda_cupti-linux-x86_64-11.5.114-archive.tar.xz",
+            "sha256": "1ab09d29571a80f5c26187e78419b424a041ade7c9c108523aad26d6711eb222",
+            "md5": "1adc2bcb044a372317103ad44e60f73b",
+            "size": "15910648"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_cupti/linux-ppc64le/cuda_cupti-linux-ppc64le-11.5.114-archive.tar.xz",
+            "sha256": "5739768e55551b131fd2bd0ef41806f70400e767cb520c511f11ea33ac940eb6",
+            "md5": "320d9f4904723fb3ea3d95c7ea736998",
+            "size": "8454516"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_cupti/linux-sbsa/cuda_cupti-linux-sbsa-11.5.114-archive.tar.xz",
+            "sha256": "05926807291609f643d4b92706a9ab627f4dd32e4f0c5779b58ba5c737453c43",
+            "md5": "6cd4c658b0e30704bb3f21cb861c16ab",
+            "size": "7827648"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_cupti/windows-x86_64/cuda_cupti-windows-x86_64-11.5.114-archive.zip",
+            "sha256": "56948dab7b3d39bc9d8231a277a051e57f95efe73f9f6bfeb9f66df2be3d2208",
+            "md5": "fcb8bbf96ad9258fc0771dd59ddbab25",
+            "size": "11262366"
+        }
+    },
+    "cuda_cuxxfilt": {
+        "name": "CUDA cuxxfilt (demangler)",
+        "license": "CUDA Toolkit",
+        "version": "11.5.119",
+        "linux-x86_64": {
+            "relative_path": "cuda_cuxxfilt/linux-x86_64/cuda_cuxxfilt-linux-x86_64-11.5.119-archive.tar.xz",
+            "sha256": "46e3adabbf6a3e7920f054b0e16b8555606798453d5abb004cc4f82df20cf093",
+            "md5": "dc9e194c4c82ea3f3e2b5ac96b26355f",
+            "size": "185608"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_cuxxfilt/linux-ppc64le/cuda_cuxxfilt-linux-ppc64le-11.5.119-archive.tar.xz",
+            "sha256": "f7e3345c3545f72c3ef0020403463a72a21444b2e11f3d5a5e1c1a65e10c6f5b",
+            "md5": "7316d577039df32a4bc556b5c7f13140",
+            "size": "182008"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_cuxxfilt/linux-sbsa/cuda_cuxxfilt-linux-sbsa-11.5.119-archive.tar.xz",
+            "sha256": "7ef895dd76f2222d19344cadf32c84f8963c11a7773ceb73c7d9be4eb286576a",
+            "md5": "85bd622ebac9a567f88302f53f893391",
+            "size": "172336"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_cuxxfilt/windows-x86_64/cuda_cuxxfilt-windows-x86_64-11.5.119-archive.zip",
+            "sha256": "7820a76ffced4194ff09a910c70cfd5ab917e67be3a0371da4e25ed000346595",
+            "md5": "dbf1c3108e731c13466180709335e702",
+            "size": "168667"
+        }
+    },
+    "cuda_demo_suite": {
+        "name": "CUDA Demo Suite",
+        "license": "CUDA Toolkit",
+        "version": "11.5.50",
+        "linux-x86_64": {
+            "relative_path": "cuda_demo_suite/linux-x86_64/cuda_demo_suite-linux-x86_64-11.5.50-archive.tar.xz",
+            "sha256": "0dc6fd4d8ab3a0a5ff1d5cbd9a5a6a970f2d01097c31903afcf733d36b67f884",
+            "md5": "da6c44696dada9f1adeb3234cfcdd9f1",
+            "size": "3976764"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_demo_suite/windows-x86_64/cuda_demo_suite-windows-x86_64-11.5.50-archive.zip",
+            "sha256": "c81ecafd4e0c6ec137f582720f94e8ac2295e673063755c551c6866e2c3ba190",
+            "md5": "39f63b4b72ba724454f679af3e351735",
+            "size": "5015382"
+        }
+    },
+    "cuda_documentation": {
+        "name": "CUDA Documentation",
+        "license": "CUDA Toolkit",
+        "version": "11.5.114",
+        "linux-x86_64": {
+            "relative_path": "cuda_documentation/linux-x86_64/cuda_documentation-linux-x86_64-11.5.114-archive.tar.xz",
+            "sha256": "338466042a594f37996d7f50543096f0e1dc644f43319ff886e2496c339f4346",
+            "md5": "c54ab14d9bdc53b03eb927cf50b1ae6e",
+            "size": "62456"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_documentation/linux-ppc64le/cuda_documentation-linux-ppc64le-11.5.114-archive.tar.xz",
+            "sha256": "69478f98bf8467843d5b6c3ae8163e082e89b9a6eb8061c900e1bbe76d570a03",
+            "md5": "3c93062774f05facc809047af4721017",
+            "size": "62516"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_documentation/linux-sbsa/cuda_documentation-linux-sbsa-11.5.114-archive.tar.xz",
+            "sha256": "ff6f44549650db44b0a6726b0ce1bc9b325d629190c6b17d35a2b99d36434678",
+            "md5": "54afce3c11863b2e515719325a3a05f4",
+            "size": "62452"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_documentation/windows-x86_64/cuda_documentation-windows-x86_64-11.5.114-archive.zip",
+            "sha256": "ec7ff829ce1717a88c54dbb15739e46f5d876e9ef32cc911fc66e2b78f3b286e",
+            "md5": "d84ba6f46eda183231a01523eb8a0593",
+            "size": "100197"
+        }
+    },
+    "cuda_gdb": {
+        "name": "CUDA GDB",
+        "license": "CUDA Toolkit",
+        "version": "11.5.114",
+        "linux-x86_64": {
+            "relative_path": "cuda_gdb/linux-x86_64/cuda_gdb-linux-x86_64-11.5.114-archive.tar.xz",
+            "sha256": "a590393cdbfb6620053075d9eebb18abcaedfd8ccdec2e4c8f4631080e7eaa31",
+            "md5": "3e9ecd9834eb282d6ea55cf61765c01a",
+            "size": "64086136"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_gdb/linux-ppc64le/cuda_gdb-linux-ppc64le-11.5.114-archive.tar.xz",
+            "sha256": "564c2ff35bf3f76c60f57c9669d4a1b8312f6fedb0fa08c16178634a451fef72",
+            "md5": "779ce7f3fd7b623c8cd12f822848c273",
+            "size": "63889192"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_gdb/linux-sbsa/cuda_gdb-linux-sbsa-11.5.114-archive.tar.xz",
+            "sha256": "482d8ad678e00a562b087a0e6d988ca92a83a3aefccf8a9166390956739637a6",
+            "md5": "bdc885a67bd000b44ea0f2ee46ab74f0",
+            "size": "63816804"
+        }
+    },
+    "cuda_memcheck": {
+        "name": "CUDA Memcheck",
+        "license": "CUDA Toolkit",
+        "version": "11.5.114",
+        "linux-x86_64": {
+            "relative_path": "cuda_memcheck/linux-x86_64/cuda_memcheck-linux-x86_64-11.5.114-archive.tar.xz",
+            "sha256": "d13f915017ce2e4b6ed58b112fb831e07a638fa26cb73cd5501e330321048975",
+            "md5": "584bcd833078f505b6f4c96b32cb8f45",
+            "size": "139756"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_memcheck/linux-ppc64le/cuda_memcheck-linux-ppc64le-11.5.114-archive.tar.xz",
+            "sha256": "43baae7eb977d265bd4763c10e5b5d2594a70dacabc00904468aa84c2ce13b82",
+            "md5": "02a82840a71a889bcbdf655d41704b20",
+            "size": "148096"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_memcheck/windows-x86_64/cuda_memcheck-windows-x86_64-11.5.114-archive.zip",
+            "sha256": "79193c8cf3a2d63cb182aea57aa54e705f49cc606cf13213439709b317fd9051",
+            "md5": "06d2c5975482a2d266c40baae8e94448",
+            "size": "172699"
+        }
+    },
+    "cuda_nsight": {
+        "name": "Nsight Eclipse Edition Plugin",
+        "license": "CUDA Toolkit",
+        "version": "11.5.114",
+        "linux-x86_64": {
+            "relative_path": "cuda_nsight/linux-x86_64/cuda_nsight-linux-x86_64-11.5.114-archive.tar.xz",
+            "sha256": "a4a512d806cce1ce73c87c0b996eddbfebc735d6b749915c870907f347de1840",
+            "md5": "70bcbc9042f7757b34c1e7dbff56c719",
+            "size": "118606516"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nsight/linux-ppc64le/cuda_nsight-linux-ppc64le-11.5.114-archive.tar.xz",
+            "sha256": "1ad8e934acd5563ce23f40359f3515fa1344ed6cfa6e8ea37e7c9ed51c52ddcf",
+            "md5": "e58439f4b05a43a1e29cbe971228e1f8",
+            "size": "118606504"
+        }
+    },
+    "cuda_nvcc": {
+        "name": "CUDA NVCC",
+        "license": "CUDA Toolkit",
+        "version": "11.5.119",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvcc/linux-x86_64/cuda_nvcc-linux-x86_64-11.5.119-archive.tar.xz",
+            "sha256": "4072592764717f5c3ac53b95f0bb5f2bf427294b94aa9abda125e51b4fca9e0a",
+            "md5": "272cd495f19864fab9e0b8c6a4d70a4d",
+            "size": "36316988"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvcc/linux-ppc64le/cuda_nvcc-linux-ppc64le-11.5.119-archive.tar.xz",
+            "sha256": "1dd811c9e8e6bb219a7e0ef63514665f8d7e6253ad93474b5b3594fce85cb191",
+            "md5": "af5523c22de1667aece90f23dbe9a51a",
+            "size": "34137608"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvcc/linux-sbsa/cuda_nvcc-linux-sbsa-11.5.119-archive.tar.xz",
+            "sha256": "21e9d7941a62806331e94eff3ba22b4bcace3f8227e133580f0367343eb3f3a4",
+            "md5": "a7c7797e5d7a586d7e74cc3e70bda731",
+            "size": "31876488"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvcc/windows-x86_64/cuda_nvcc-windows-x86_64-11.5.119-archive.zip",
+            "sha256": "477ca5d096c2e5a87480cae24951b54e641030cfc3c75ce869e0656e4fcb2142",
+            "md5": "657fb06f0e06a16ee936aa22e7a3dd27",
+            "size": "46379856"
+        }
+    },
+    "cuda_nvdisasm": {
+        "name": "CUDA nvdisasm",
+        "license": "CUDA Toolkit",
+        "version": "11.5.119",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvdisasm/linux-x86_64/cuda_nvdisasm-linux-x86_64-11.5.119-archive.tar.xz",
+            "sha256": "7b5055db4fbc270a49d69dae6320331d16b3d50f828a9b155e7bf2abe138f273",
+            "md5": "0405b49d574e4fd5783a1bfba9228966",
+            "size": "32786096"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvdisasm/linux-ppc64le/cuda_nvdisasm-linux-ppc64le-11.5.119-archive.tar.xz",
+            "sha256": "10e7d0794c8efd42fd345355e9ae8680b767b1b8d004c9e9baf2b4ad9b993b59",
+            "md5": "11af2b0e169436278538d063370fc04f",
+            "size": "32776804"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvdisasm/linux-sbsa/cuda_nvdisasm-linux-sbsa-11.5.119-archive.tar.xz",
+            "sha256": "698ccf414b9a7d823dc8d9818df72cac0a10d618ab143b221bbf321ada96ef08",
+            "md5": "345f1c616a294ec7c70b1f881542a894",
+            "size": "32729044"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvdisasm/windows-x86_64/cuda_nvdisasm-windows-x86_64-11.5.119-archive.zip",
+            "sha256": "f8dee0ae12696a02a01e95083e1fde8222018f641f7ebf712985fc6c1716f217",
+            "md5": "f375afe649b16160af3ace6237d241cc",
+            "size": "32996636"
+        }
+    },
+    "cuda_nvml_dev": {
+        "name": "CUDA NVML Headers",
+        "license": "CUDA Toolkit",
+        "version": "11.5.50",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvml_dev/linux-x86_64/cuda_nvml_dev-linux-x86_64-11.5.50-archive.tar.xz",
+            "sha256": "e7a03b5c0324ccb5040cd494d2e3f1fba508cc437d666f112a6702d75bd80891",
+            "md5": "53f9279a45cb1bb6c1993e7245a38a74",
+            "size": "72176"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvml_dev/linux-ppc64le/cuda_nvml_dev-linux-ppc64le-11.5.50-archive.tar.xz",
+            "sha256": "753ac81cde5a58b7bd4b59d56ab5e0ba973f96d6ffe95c447eb47f170d0c74be",
+            "md5": "f08c23cf9598624799c19e628c6d91f8",
+            "size": "71972"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvml_dev/linux-sbsa/cuda_nvml_dev-linux-sbsa-11.5.50-archive.tar.xz",
+            "sha256": "d3f913393ec4a1648fc5230c766606e1c8a7ca31f7595fd149f5cbeea63bd01a",
+            "md5": "090c36b75393eef09d3b527521fa3791",
+            "size": "72472"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvml_dev/windows-x86_64/cuda_nvml_dev-windows-x86_64-11.5.50-archive.zip",
+            "sha256": "ccd320d7b4aa8c7006085e003b9763a20a37e101e59dde8bcaf13f1e3b5ec04c",
+            "md5": "b36dc6c87730612d3c538aacb10e89a8",
+            "size": "100572"
+        }
+    },
+    "cuda_nvprof": {
+        "name": "CUDA nvprof",
+        "license": "CUDA Toolkit",
+        "version": "11.5.114",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvprof/linux-x86_64/cuda_nvprof-linux-x86_64-11.5.114-archive.tar.xz",
+            "sha256": "611984e6ce96f216da0d5e3f72584b8e89512a712baf8faa5cc95f14be44ce51",
+            "md5": "3146cddf336fc73e4348018058c57c70",
+            "size": "1940688"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvprof/linux-ppc64le/cuda_nvprof-linux-ppc64le-11.5.114-archive.tar.xz",
+            "sha256": "24c238e26fe49489d3aee0429e629eadc24122a93e5935758c97dab91f2a59b3",
+            "md5": "685eed537cd8f9271d30a1d6a64d2643",
+            "size": "1597248"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvprof/linux-sbsa/cuda_nvprof-linux-sbsa-11.5.114-archive.tar.xz",
+            "sha256": "b1c7b2498665c70e7d675170f1309f19ec86a55d284fcac6c7e2337c07a565af",
+            "md5": "e26370530b986512b219f99fe707c57f",
+            "size": "16196"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvprof/windows-x86_64/cuda_nvprof-windows-x86_64-11.5.114-archive.zip",
+            "sha256": "6274433235b2b61aac7333b9a7472893c6b7ca53e34a9a96ca197e46e925d394",
+            "md5": "5d47af0e512563b484d3270a9225fad0",
+            "size": "1599403"
+        }
+    },
+    "cuda_nvprune": {
+        "name": "CUDA nvprune",
+        "license": "CUDA Toolkit",
+        "version": "11.5.119",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvprune/linux-x86_64/cuda_nvprune-linux-x86_64-11.5.119-archive.tar.xz",
+            "sha256": "f66c2632dbbdc6153aed2ae8bbf3291de258f7be5fd53350d469cf6f894aaa5c",
+            "md5": "737a4e6b4ba979934f22cd9ff932f47d",
+            "size": "55228"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvprune/linux-ppc64le/cuda_nvprune-linux-ppc64le-11.5.119-archive.tar.xz",
+            "sha256": "209ddd276e857cb41e162f3748778dceb224bbab445469480f6578d1b8a199ad",
+            "md5": "47f52a330781b2c5e6094ed309043faf",
+            "size": "55760"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvprune/linux-sbsa/cuda_nvprune-linux-sbsa-11.5.119-archive.tar.xz",
+            "sha256": "57429ab14f4a99fcc2f7160a9d93f39358a4cf0f8e0d0996973883b1f5c1d520",
+            "md5": "8b3d84b2e114e53b00e6fc6dd514750d",
+            "size": "47580"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvprune/windows-x86_64/cuda_nvprune-windows-x86_64-11.5.119-archive.zip",
+            "sha256": "89a883eee3d6931e9b071c19a9ef07368429b8008fcb0f392229baa3d21b6cc2",
+            "md5": "3e23701483da9ac6910a52dbcdb48ff0",
+            "size": "144817"
+        }
+    },
+    "cuda_nvrtc": {
+        "name": "CUDA NVRTC",
+        "license": "CUDA Toolkit",
+        "version": "11.5.119",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvrtc/linux-x86_64/cuda_nvrtc-linux-x86_64-11.5.119-archive.tar.xz",
+            "sha256": "78aa426f8d1bd6a309582268045e92d798dea84ab17b0e41bbf81ed4c6c51c37",
+            "md5": "a14c3f9a30ca27f0a975b6995b440927",
+            "size": "27772396"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvrtc/linux-ppc64le/cuda_nvrtc-linux-ppc64le-11.5.119-archive.tar.xz",
+            "sha256": "bd10849b493902487660d3216a9b1de2c687d0d013085a7194925ff0a8d0461a",
+            "md5": "b3e11ca277f1c92e8adf8056ee759fc2",
+            "size": "25932956"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvrtc/linux-sbsa/cuda_nvrtc-linux-sbsa-11.5.119-archive.tar.xz",
+            "sha256": "c924444459eca0ee5f5748cc80628c0e8759d6cf70c55b5ce2e1b4b37a46d3cd",
+            "md5": "31900a4918e162377e634dbc9d01ccba",
+            "size": "25787560"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvrtc/windows-x86_64/cuda_nvrtc-windows-x86_64-11.5.119-archive.zip",
+            "sha256": "e6c7312b4b8f678828dca2b2e29bd8a1afee83709885bffe0115743219e092ae",
+            "md5": "39a1fb1c6514e7a13d8822fef1fb6e95",
+            "size": "92408767"
+        }
+    },
+    "cuda_nvtx": {
+        "name": "CUDA NVTX",
+        "license": "CUDA Toolkit",
+        "version": "11.5.114",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvtx/linux-x86_64/cuda_nvtx-linux-x86_64-11.5.114-archive.tar.xz",
+            "sha256": "201b000020db8e296f526dbc1bedf6f0d2eb901e6add9d95a8badfaf8708bc7c",
+            "md5": "fa5a8ec26505381bff0d513c3219b4b6",
+            "size": "48196"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvtx/linux-ppc64le/cuda_nvtx-linux-ppc64le-11.5.114-archive.tar.xz",
+            "sha256": "b188a8b413c2f8502c4ac6bd22a8c4d60279f704682a0582e71cb045817c08bc",
+            "md5": "f51ac28484f7001ee7c10f37d5e98e38",
+            "size": "48180"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvtx/linux-sbsa/cuda_nvtx-linux-sbsa-11.5.114-archive.tar.xz",
+            "sha256": "9caf957366bc723e53de7189112bd04d99300932061a2c3590e26215d0a39a04",
+            "md5": "36e5d0c4a142260d1c5364733ce296cd",
+            "size": "48740"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvtx/windows-x86_64/cuda_nvtx-windows-x86_64-11.5.114-archive.zip",
+            "sha256": "4d60f65ef83bcf36d549095350097c4198f78a968452b1fff0f1dabbe96a633b",
+            "md5": "da8c51d38126ec2541c0f87dfd40aefe",
+            "size": "65783"
+        }
+    },
+    "cuda_nvvp": {
+        "name": "CUDA NVVP",
+        "license": "CUDA Toolkit",
+        "version": "11.5.126",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvvp/linux-x86_64/cuda_nvvp-linux-x86_64-11.5.126-archive.tar.xz",
+            "sha256": "453884ffe6732c0e1d19a17944dbdbb948a24ed2980acc67620bc0c160c4e023",
+            "md5": "9d89a2f1c793736e329a8b0b5176616a",
+            "size": "117592064"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvvp/linux-ppc64le/cuda_nvvp-linux-ppc64le-11.5.126-archive.tar.xz",
+            "sha256": "ebb5b6849b4c014b9eeebcaf0f8e333ee8ab4a65cac8ed401a6a31604d7435d6",
+            "md5": "6d621d6e56884143ac48910950dbc5f5",
+            "size": "116958804"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvvp/windows-x86_64/cuda_nvvp-windows-x86_64-11.5.126-archive.zip",
+            "sha256": "3e88475b6ce923c736e49f659717ee0cbb0551c5e30f9cb8256ebf740d02f457",
+            "md5": "4f8b8c7a3cafbdac8dfe3f9507c92d10",
+            "size": "120342187"
+        }
+    },
+    "cuda_sanitizer_api": {
+        "name": "CUDA Compute Sanitizer API",
+        "license": "CUDA Toolkit",
+        "version": "11.5.114",
+        "linux-x86_64": {
+            "relative_path": "cuda_sanitizer_api/linux-x86_64/cuda_sanitizer_api-linux-x86_64-11.5.114-archive.tar.xz",
+            "sha256": "35d13fdeae94b2294c4d83661a663b5bae98e3f9b4aae00be101140a32409047",
+            "md5": "52719791f4361ee001bd6327d79dcb2b",
+            "size": "6818460"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_sanitizer_api/linux-ppc64le/cuda_sanitizer_api-linux-ppc64le-11.5.114-archive.tar.xz",
+            "sha256": "b5353633dcc09e6360e9da14636774eee8cd9db90dd3ca93b77b1a95b104740c",
+            "md5": "3f79dbebc1b88b552da041ccb7921ac3",
+            "size": "7324744"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_sanitizer_api/linux-sbsa/cuda_sanitizer_api-linux-sbsa-11.5.114-archive.tar.xz",
+            "sha256": "3ce2d4421f9d8547bedb25c0ae8054ab0bb755384a33eea79dd036a8d4658a7f",
+            "md5": "7585db5187b4fcbb713ff89eaf877389",
+            "size": "5391196"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_sanitizer_api/windows-x86_64/cuda_sanitizer_api-windows-x86_64-11.5.114-archive.zip",
+            "sha256": "b216d0292002b4cc673a374f06576bc062e6566062a32edcdca60716e98f6587",
+            "md5": "eccae888d8ee4264f8b5517f9af7fbc3",
+            "size": "12199859"
+        }
+    },
+    "fabricmanager": {
+        "name": "NVIDIA Fabric Manager",
+        "license": "NVIDIA Driver",
+        "version": "495.29.05",
+        "linux-x86_64": {
+            "relative_path": "fabricmanager/linux-x86_64/fabricmanager-linux-x86_64-495.29.05-archive.tar.xz",
+            "sha256": "36966ebf7951dbd77fefb95b326b9084948ac8d03fbb6e8997e90c0fe8f74c9d",
+            "md5": "4c4f119d897a77448f989534aa453a79",
+            "size": "1521552"
+        }
+    },
+    "libcublas": {
+        "name": "CUDA cuBLAS",
+        "license": "CUDA Toolkit",
+        "version": "11.7.4.6",
+        "linux-x86_64": {
+            "relative_path": "libcublas/linux-x86_64/libcublas-linux-x86_64-11.7.4.6-archive.tar.xz",
+            "sha256": "1ba27f135e2f920bb47e22c05e4ef2e0a75e21d9306f5062e44c3d705150a3a9",
+            "md5": "878826ff2c817a35a335f5e6ff4c5153",
+            "size": "427700280"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libcublas/linux-ppc64le/libcublas-linux-ppc64le-11.7.4.6-archive.tar.xz",
+            "sha256": "061cdbeb437510437b4dfcd053834932e60943be996aea0187f6ba36b7cf614f",
+            "md5": "fb760e547e07904d0e52578b01326219",
+            "size": "427200296"
+        },
+        "linux-sbsa": {
+            "relative_path": "libcublas/linux-sbsa/libcublas-linux-sbsa-11.7.4.6-archive.tar.xz",
+            "sha256": "38d7045310487b6f3dad4c6f8c5f6420b4dcf9dbf0171f3ef5f48f3e2f0024f9",
+            "md5": "0c5411a296b474cd02a57de4b8cf4d0d",
+            "size": "427180072"
+        },
+        "windows-x86_64": {
+            "relative_path": "libcublas/windows-x86_64/libcublas-windows-x86_64-11.7.4.6-archive.zip",
+            "sha256": "a5b2c090e7b3da7b9823aa71ecf76a07344846daf8d26b13a06dba2d8a572c79",
+            "md5": "071e96d21a31393cfef5dd263d2eb90b",
+            "size": "317995451"
+        }
+    },
+    "libcufft": {
+        "name": "CUDA cuFFT",
+        "license": "CUDA Toolkit",
+        "version": "10.6.0.107",
+        "linux-x86_64": {
+            "relative_path": "libcufft/linux-x86_64/libcufft-linux-x86_64-10.6.0.107-archive.tar.xz",
+            "sha256": "e2e51dc75c9c5b4476624bf683d50afbcc611f88361392625f017bd3efc545b9",
+            "md5": "abcd6e63926592b1d8de9a90e9953b44",
+            "size": "213873928"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libcufft/linux-ppc64le/libcufft-linux-ppc64le-10.6.0.107-archive.tar.xz",
+            "sha256": "5e0e004e33a148bf543fd69df8ad7fcd14ae72c60676679908a6cf164a065651",
+            "md5": "34042143bf1179bde112cee7237d149a",
+            "size": "214892660"
+        },
+        "linux-sbsa": {
+            "relative_path": "libcufft/linux-sbsa/libcufft-linux-sbsa-10.6.0.107-archive.tar.xz",
+            "sha256": "e5ea473699697bcfd2a0ab7b807dbc5dd713bfe40221f7356097fb6e2577d73a",
+            "md5": "e800a93f81fdb7e95d31a14b7a215138",
+            "size": "213119620"
+        },
+        "windows-x86_64": {
+            "relative_path": "libcufft/windows-x86_64/libcufft-windows-x86_64-10.6.0.107-archive.zip",
+            "sha256": "f6b846a79772640585cbfc35746ededa1210e1ba7005e075d678a4d84ffd93ec",
+            "md5": "7ec0315c986911ad1ea1cfd1705bc57a",
+            "size": "287130074"
+        }
+    },
+    "libcufile": {
+        "name": "CUDA cuFile",
+        "license": "CUDA Toolkit",
+        "version": "1.1.1.25",
+        "linux-x86_64": {
+            "relative_path": "libcufile/linux-x86_64/libcufile-linux-x86_64-1.1.1.25-archive.tar.xz",
+            "sha256": "b4f4321f4fd249a2f4d68b3cf396a9e5891e33d73a297e21eea0ed9417340808",
+            "md5": "dae59d20c2f51dc90fb18d017a17664e",
+            "size": "45837600"
+        }
+    },
+    "libcurand": {
+        "name": "CUDA cuRAND",
+        "license": "CUDA Toolkit",
+        "version": "10.2.7.107",
+        "linux-x86_64": {
+            "relative_path": "libcurand/linux-x86_64/libcurand-linux-x86_64-10.2.7.107-archive.tar.xz",
+            "sha256": "9dd3bfa212a4c8e58a6869c4992e710409d34c46d5a683cf99670d5ef5b1f8de",
+            "md5": "58f7993190fce602ea7e68aab7912774",
+            "size": "82066560"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libcurand/linux-ppc64le/libcurand-linux-ppc64le-10.2.7.107-archive.tar.xz",
+            "sha256": "67d0759b1252d9df7953932ed58d01c05a4861121c19bafbb544b585113552ab",
+            "md5": "368e13f6b9eb6e72fbc852d6dcfc4b6f",
+            "size": "82116948"
+        },
+        "linux-sbsa": {
+            "relative_path": "libcurand/linux-sbsa/libcurand-linux-sbsa-10.2.7.107-archive.tar.xz",
+            "sha256": "e8f2cc5e786812cf70bd7bd37a9c78e3341e602c402177d44e7bf07fe7e85142",
+            "md5": "97065efb1e5fb99589540a45711eb2f3",
+            "size": "82051480"
+        },
+        "windows-x86_64": {
+            "relative_path": "libcurand/windows-x86_64/libcurand-windows-x86_64-10.2.7.107-archive.zip",
+            "sha256": "fa74020026d1cf81b0a3004c823ae40a4f0a02df34041438b992e6058ff97cd2",
+            "md5": "df2a95194669cc02d987ee6527c5c6e3",
+            "size": "53627481"
+        }
+    },
+    "libcusolver": {
+        "name": "CUDA cuSOLVER",
+        "license": "CUDA Toolkit",
+        "version": "11.3.2.107",
+        "linux-x86_64": {
+            "relative_path": "libcusolver/linux-x86_64/libcusolver-linux-x86_64-11.3.2.107-archive.tar.xz",
+            "sha256": "4c9e3fec211fa6cc6dd14a7d09237c56f43789e498817cd0839b0e6ef9c498fa",
+            "md5": "19b927da5bb8c6fc28b2667e57eda7eb",
+            "size": "69221812"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libcusolver/linux-ppc64le/libcusolver-linux-ppc64le-11.3.2.107-archive.tar.xz",
+            "sha256": "1f216cdda56463d333ffe4d52cf18283b3a8d917737698f5c8ed5851120f119a",
+            "md5": "6b3ac8f0889f968c34e6fe903340ff5c",
+            "size": "69348116"
+        },
+        "linux-sbsa": {
+            "relative_path": "libcusolver/linux-sbsa/libcusolver-linux-sbsa-11.3.2.107-archive.tar.xz",
+            "sha256": "6feba029d8838d17345c38d77b6cd0e7853934106edcc5d5f6ec57646b499d28",
+            "md5": "55492c175f1a152df54365544e2b582d",
+            "size": "68661512"
+        },
+        "windows-x86_64": {
+            "relative_path": "libcusolver/windows-x86_64/libcusolver-windows-x86_64-11.3.2.107-archive.zip",
+            "sha256": "325684ebefb24f7a47c5868a87f8dc38c88812c12f113bd57029b3a715c95405",
+            "md5": "8936a0967f4178e7170f9e55fa4e6cd3",
+            "size": "98405802"
+        }
+    },
+    "libcusparse": {
+        "name": "CUDA cuSPARSE",
+        "license": "CUDA Toolkit",
+        "version": "11.7.0.107",
+        "linux-x86_64": {
+            "relative_path": "libcusparse/linux-x86_64/libcusparse-linux-x86_64-11.7.0.107-archive.tar.xz",
+            "sha256": "9e768d6278df1b2323e2708bbf53af0bdb2955c0c4688eb69d5e418aea3a9b41",
+            "md5": "c7653a07b2388d887c4e6b3ac1afafb4",
+            "size": "181259248"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libcusparse/linux-ppc64le/libcusparse-linux-ppc64le-11.7.0.107-archive.tar.xz",
+            "sha256": "f01d662635d7b2001ace6122058159c9583c61db3fc5849a8ae025b9963657ec",
+            "md5": "91b9e100ce9bae17ea08d97152184e44",
+            "size": "181408304"
+        },
+        "linux-sbsa": {
+            "relative_path": "libcusparse/linux-sbsa/libcusparse-linux-sbsa-11.7.0.107-archive.tar.xz",
+            "sha256": "88de7ce848b929439ba1fa1baf487ec56fedc39f8042a862c2f5522fbc1e82a2",
+            "md5": "aec6e62aeff853dff5a150e2d0ca8aa1",
+            "size": "181074920"
+        },
+        "windows-x86_64": {
+            "relative_path": "libcusparse/windows-x86_64/libcusparse-windows-x86_64-11.7.0.107-archive.zip",
+            "sha256": "365a0316da888e0b8cc17b3e958b24b9faefa35e6b5fded7d9083483c1f0c097",
+            "md5": "3c870ec7f8fc23130c66f989afd16a8e",
+            "size": "149810382"
+        }
+    },
+    "libnpp": {
+        "name": "CUDA NPP",
+        "license": "CUDA Toolkit",
+        "version": "11.5.1.107",
+        "linux-x86_64": {
+            "relative_path": "libnpp/linux-x86_64/libnpp-linux-x86_64-11.5.1.107-archive.tar.xz",
+            "sha256": "5c6bcb73d6e2426e7369e5157387e02f70db3e94b2351c447ce559cba57e36f4",
+            "md5": "762faaa53a62272ba508188779fc43f6",
+            "size": "156693812"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libnpp/linux-ppc64le/libnpp-linux-ppc64le-11.5.1.107-archive.tar.xz",
+            "sha256": "cf2cbc740d9c111d9d266737f62ba4b44cfc84590fe1f9f4bf848b0908296971",
+            "md5": "e284bab2afa99d9654c1b97ae407434f",
+            "size": "156937760"
+        },
+        "linux-sbsa": {
+            "relative_path": "libnpp/linux-sbsa/libnpp-linux-sbsa-11.5.1.107-archive.tar.xz",
+            "sha256": "cd86f76d41010e7fd37804ba102ec6896de4e51a2724cf44b9e7b22c1aa86429",
+            "md5": "037ada0cfe8cb4885ceb07eb3423f789",
+            "size": "156056260"
+        },
+        "windows-x86_64": {
+            "relative_path": "libnpp/windows-x86_64/libnpp-windows-x86_64-11.5.1.107-archive.zip",
+            "sha256": "3ef847675b5cecdd70ede5216b91530bff152478441dc4b1e0d73bfcdb586a06",
+            "md5": "d04eed9ff4432bc48f0afae802841793",
+            "size": "121933476"
+        }
+    },
+    "libnvidia_nscq": {
+        "name": "NVIDIA NSCQ API",
+        "license": "NVIDIA Driver",
+        "version": "495.29.05",
+        "linux-x86_64": {
+            "relative_path": "libnvidia_nscq/linux-x86_64/libnvidia_nscq-linux-x86_64-495.29.05-archive.tar.xz",
+            "sha256": "19e036898474c89697c4adf4958daa241c07b6d9c9f6623190dd7a3b667a4c6b",
+            "md5": "733c3a1ef5c33e4b4ccfaad11b514a98",
+            "size": "316860"
+        }
+    },
+    "libnvjpeg": {
+        "name": "CUDA nvJPEG",
+        "license": "CUDA Toolkit",
+        "version": "11.5.4.107",
+        "linux-x86_64": {
+            "relative_path": "libnvjpeg/linux-x86_64/libnvjpeg-linux-x86_64-11.5.4.107-archive.tar.xz",
+            "sha256": "3943941f449e8a9aea465e26a25f3d0315e45a57c5ab993f1d15dac7453dcffc",
+            "md5": "6459aa39efda628e4de36caafc938158",
+            "size": "1902936"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libnvjpeg/linux-ppc64le/libnvjpeg-linux-ppc64le-11.5.4.107-archive.tar.xz",
+            "sha256": "760295c056951752ba7f4a5a56f4e5afe1538eafbc8ea01c21abe9b8bbd3f09e",
+            "md5": "ee70cf1d8888bd696b34eb9981c865af",
+            "size": "1924452"
+        },
+        "linux-sbsa": {
+            "relative_path": "libnvjpeg/linux-sbsa/libnvjpeg-linux-sbsa-11.5.4.107-archive.tar.xz",
+            "sha256": "4dbc3c0da37ce108faadcaebbe72335984a60ed055b29fa56edfd89aad9d89cc",
+            "md5": "54f25526b1d95a5e2a02ddc33eaf1ada",
+            "size": "1735520"
+        },
+        "windows-x86_64": {
+            "relative_path": "libnvjpeg/windows-x86_64/libnvjpeg-windows-x86_64-11.5.4.107-archive.zip",
+            "sha256": "50bb7bdd84a8ec74d4b2e2a133d8dd0474aa4224c3e7643ed75a7864cf705df6",
+            "md5": "ef86aa6770eba3dc31a33698b600507b",
+            "size": "1941889"
+        }
+    },
+    "nsight_compute": {
+        "name": "Nsight Compute",
+        "license": "NVIDIA SLA",
+        "version": "2021.3.1.4",
+        "linux-x86_64": {
+            "relative_path": "nsight_compute/linux-x86_64/nsight_compute-linux-x86_64-2021.3.1.4-archive.tar.xz",
+            "sha256": "75cd4ca50472c8e4d6729e2f319a2e2f225c21450e868169608eaf1651de7cfd",
+            "md5": "d4de103a4cce16501323ab22da3a5d3f",
+            "size": "409065700"
+        },
+        "linux-ppc64le": {
+            "relative_path": "nsight_compute/linux-ppc64le/nsight_compute-linux-ppc64le-2021.3.1.4-archive.tar.xz",
+            "sha256": "326be8ea63091f14e7de7cf11d5c8e465200770518dccafc45ade7583e42e049",
+            "md5": "0a34928121b5518075a3a50919f94999",
+            "size": "123353872"
+        },
+        "linux-sbsa": {
+            "relative_path": "nsight_compute/linux-sbsa/nsight_compute-linux-sbsa-2021.3.1.4-archive.tar.xz",
+            "sha256": "f846e7f443df58dd03ad7da27483dc159715bdf1e260200499bc1ba4f9e2ab17",
+            "md5": "6a22972b8771101d334cdd0f65785727",
+            "size": "120013812"
+        },
+        "windows-x86_64": {
+            "relative_path": "nsight_compute/windows-x86_64/nsight_compute-windows-x86_64-2021.3.1.4-archive.zip",
+            "sha256": "6bb1bb69aa8976e8d60a23e25784967628a19622b779b4c5f44a1a5b10b6b312",
+            "md5": "b3f1e03bf4b2b054287ae3ac9b693052",
+            "size": "347770366"
+        }
+    },
+    "nsight_nvtx": {
+        "name": "Nsight NVTX",
+        "license": "CUDA Toolkit",
+        "version": "1.21018621",
+        "windows-x86_64": {
+            "relative_path": "nsight_nvtx/windows-x86_64/nsight_nvtx-windows-x86_64-1.21018621-archive.zip",
+            "sha256": "d99b015bfb1308206f9d7c16ea401bf426fed3a5a99953b855fe4e68be5ed2d1",
+            "md5": "34ee04d45cfca1c4e3cbfba0ec8f6f80",
+            "size": "315692"
+        }
+    },
+    "nsight_systems": {
+        "name": "Nsight Systems",
+        "license": "NVIDIA SLA",
+        "version": "2021.3.3.2",
+        "linux-x86_64": {
+            "relative_path": "nsight_systems/linux-x86_64/nsight_systems-linux-x86_64-2021.3.3.2-archive.tar.xz",
+            "sha256": "89833f6e45c16c46612ec8ef2b7eab4a949ed86f0a75ebd673548d2ec15bf5bb",
+            "md5": "4e42508a7365bffca7c574afc1095fb2",
+            "size": "177789420"
+        },
+        "linux-ppc64le": {
+            "relative_path": "nsight_systems/linux-ppc64le/nsight_systems-linux-ppc64le-2021.3.3.2-archive.tar.xz",
+            "sha256": "39e59ff32decff6032df0d735dfe6004e5d543d52d212cd2743e5941900c1a52",
+            "md5": "56f46452fef6ddceb91121c6a3da78af",
+            "size": "22565096"
+        },
+        "linux-sbsa": {
+            "relative_path": "nsight_systems/linux-sbsa/nsight_systems-linux-sbsa-2021.3.3.2-archive.tar.xz",
+            "sha256": "292bf43aac5c870be38c28aa536c01b6692ede682b9790622fc7a8862b143b0d",
+            "md5": "33aead87216f96a372db125f67e6f675",
+            "size": "34536232"
+        },
+        "windows-x86_64": {
+            "relative_path": "nsight_systems/windows-x86_64/nsight_systems-windows-x86_64-2021.3.3.2-archive.zip",
+            "sha256": "c9c67a83bbfc0bbdcd30391cf3fa285f813f3b8d6dc088c4225a5ca7ccac38a2",
+            "md5": "ab69a73835e658ac2871160daa01fa50",
+            "size": "229359100"
+        }
+    },
+    "nsight_vse": {
+        "name": "Nsight Visual Studio Edition (VSE)",
+        "license": "NVIDIA SLA",
+        "version": "2021.3.1.21308",
+        "windows-x86_64": {
+            "relative_path": "nsight_vse/windows-x86_64/nsight_vse-windows-x86_64-2021.3.1.21308-archive.zip",
+            "sha256": "ba659a0071bac9a2218c3b5f504c8fbe961f828df27361ed897c0dd41b53f71a",
+            "md5": "720962c80b8aa09fb496014eb7f25e41",
+            "size": "284695569"
+        }
+    },
+    "nvidia_driver": {
+        "name": "NVIDIA Linux Driver",
+        "license": "NVIDIA Driver",
+        "version": "495.29.05",
+        "linux-x86_64": {
+            "relative_path": "nvidia_driver/linux-x86_64/nvidia_driver-linux-x86_64-495.29.05-archive.tar.xz",
+            "sha256": "6a0675a60fde511573362490c290ca71b2bf111dd85c9ca16a7ed9786c15961f",
+            "md5": "04805f93ad0db2b845584c65aea21f3c",
+            "size": "280281252"
+        },
+        "linux-ppc64le": {
+            "relative_path": "nvidia_driver/linux-ppc64le/nvidia_driver-linux-ppc64le-495.29.05-archive.tar.xz",
+            "sha256": "70c99be31356f0620971f335cfc9886fe3d6097182c5b823c85ec15758e08933",
+            "md5": "9ed9d400e2ef25b321a4709052b436e4",
+            "size": "69613620"
+        },
+        "linux-sbsa": {
+            "relative_path": "nvidia_driver/linux-sbsa/nvidia_driver-linux-sbsa-495.29.05-archive.tar.xz",
+            "sha256": "625c72d1d1e14d97c90b3fb8c6d5f7ac3d1649caa10cef1aa13239163672046e",
+            "md5": "dbc65a82959790a387b1f343481101b4",
+            "size": "210257752"
+        }
+    },
+    "nvidia_fs": {
+        "name": "NVIDIA filesystem",
+        "license": "CUDA Toolkit",
+        "version": "2.9.5",
+        "linux-x86_64": {
+            "relative_path": "nvidia_fs/linux-x86_64/nvidia_fs-linux-x86_64-2.9.5-archive.tar.xz",
+            "sha256": "fd31bcf21b2244f217f9ffaa64cda9c066ed06d68b30925d520f2096a0400b2c",
+            "md5": "8d66bf76c611305a54e03a0a75ecdcda",
+            "size": "68004"
+        }
+    },
+    "visual_studio_integration": {
+        "name": "CUDA Visual Studio Integration",
+        "license": "CUDA Toolkit",
+        "version": "11.5.114",
+        "windows-x86_64": {
+            "relative_path": "visual_studio_integration/windows-x86_64/visual_studio_integration-windows-x86_64-11.5.114-archive.zip",
+            "sha256": "fecbef30b4af477da75087f5bdd70dfc6ae4d821ac2bda3f0a50c058fe71813b",
+            "md5": "15a9e0f0ec782b7ba70b564e27e8c264",
+            "size": "387859"
+        }
+    }
+}
diff --git a/pkgs/development/compilers/cudatoolkit/redist/manifests/redistrib_11.6.2.json b/pkgs/development/compilers/cudatoolkit/redist/manifests/redistrib_11.6.2.json
new file mode 100644
index 0000000000000..3de6bb9f6efbe
--- /dev/null
+++ b/pkgs/development/compilers/cudatoolkit/redist/manifests/redistrib_11.6.2.json
@@ -0,0 +1,873 @@
+{
+    "release_date": "2022-03-24",
+    "cuda_cccl": {
+        "name": "CXX Core Compute Libraries",
+        "license": "CUDA Toolkit",
+        "version": "11.6.55",
+        "linux-x86_64": {
+            "relative_path": "cuda_cccl/linux-x86_64/cuda_cccl-linux-x86_64-11.6.55-archive.tar.xz",
+            "sha256": "14aee04c86a47321b9fee1c86c9a640be7729ed8063663ed0c7dafdd77fb18f5",
+            "md5": "e90bbf846f635ea84290fb518e62e838",
+            "size": "1002296"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_cccl/linux-ppc64le/cuda_cccl-linux-ppc64le-11.6.55-archive.tar.xz",
+            "sha256": "cdaa96fc3afe7c552ce31d5b2328072edfbce6c85018455c9e90a572187e84eb",
+            "md5": "c2178d1d3557c0801c654ff8a9cd2261",
+            "size": "1002552"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_cccl/linux-sbsa/cuda_cccl-linux-sbsa-11.6.55-archive.tar.xz",
+            "sha256": "6de184be2cee64b278befc0839d0b08104f19f6d15358e3bd8a92cefca552e20",
+            "md5": "78244bc649923a7bdf13ae43391d57a3",
+            "size": "1001980"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_cccl/windows-x86_64/cuda_cccl-windows-x86_64-11.6.55-archive.zip",
+            "sha256": "badc95a0e47e9c2866ebf970dae757c827b91c27820fc75dc28a459c0014bb2f",
+            "md5": "b3a7384be4e8096125956cbb2d5b8406",
+            "size": "2559109"
+        }
+    },
+    "cuda_cudart": {
+        "name": "CUDA Runtime (cudart)",
+        "license": "CUDA Toolkit",
+        "version": "11.6.55",
+        "linux-x86_64": {
+            "relative_path": "cuda_cudart/linux-x86_64/cuda_cudart-linux-x86_64-11.6.55-archive.tar.xz",
+            "sha256": "734a77b3a26a9d08489d43afb74bad230c7c4a0ed2d17a6317a47cf363dca521",
+            "md5": "7bfd91b0267ce3cebf56bdba03bd99a9",
+            "size": "841896"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_cudart/linux-ppc64le/cuda_cudart-linux-ppc64le-11.6.55-archive.tar.xz",
+            "sha256": "96b9b708bd9f636fe60ae811a09a6bbb0d66c72045eb82dff7f4bbf7b6714110",
+            "md5": "67b819cb88f54a3133bc44f35b94e5b8",
+            "size": "786292"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_cudart/linux-sbsa/cuda_cudart-linux-sbsa-11.6.55-archive.tar.xz",
+            "sha256": "ae0ba7295280c4b2f2a217bc79cc604a3beb20484011dd2db604507f31fde0a7",
+            "md5": "3db43585c175429e7670592684500df3",
+            "size": "785420"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_cudart/windows-x86_64/cuda_cudart-windows-x86_64-11.6.55-archive.zip",
+            "sha256": "d73be9aa0d66b282e94c75032763249a753efb9d63de891ae9a1c4a62ed1aca1",
+            "md5": "35057ff81c5ff246c2198c18476c36ea",
+            "size": "2938345"
+        }
+    },
+    "cuda_cuobjdump": {
+        "name": "cuobjdump",
+        "license": "CUDA Toolkit",
+        "version": "11.6.124",
+        "linux-x86_64": {
+            "relative_path": "cuda_cuobjdump/linux-x86_64/cuda_cuobjdump-linux-x86_64-11.6.124-archive.tar.xz",
+            "sha256": "625c7ce21089a52ae6b0a9a6b7d112b98f219cdcf451b94e6f7e523c437d5db1",
+            "md5": "973f41a831d158256b19b6768e4d0331",
+            "size": "112708"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_cuobjdump/linux-ppc64le/cuda_cuobjdump-linux-ppc64le-11.6.124-archive.tar.xz",
+            "sha256": "36c51224b98b7d040f41240cb12f6b43f61f334de3d6cc26d8ca3f35b50df68e",
+            "md5": "5f773be10cc49868534eccaf9bb98f86",
+            "size": "117668"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_cuobjdump/linux-sbsa/cuda_cuobjdump-linux-sbsa-11.6.124-archive.tar.xz",
+            "sha256": "1ea90073f8769a8e5a16b4b18245c77fd217ff8d5d484f33475bebda046e5ff5",
+            "md5": "548c27670912ae14840d897ffb8b2ecb",
+            "size": "101720"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_cuobjdump/windows-x86_64/cuda_cuobjdump-windows-x86_64-11.6.124-archive.zip",
+            "sha256": "609599e7fc20e20cf53e2cf4f2618e467cb1bc00dcb9d09520cd2251bd3056a7",
+            "md5": "5def9ac8588bcb15eeed361f2bdd78db",
+            "size": "2539928"
+        }
+    },
+    "cuda_cupti": {
+        "name": "CUPTI",
+        "license": "CUDA Toolkit",
+        "version": "11.6.124",
+        "linux-x86_64": {
+            "relative_path": "cuda_cupti/linux-x86_64/cuda_cupti-linux-x86_64-11.6.124-archive.tar.xz",
+            "sha256": "e56a68900e08dc1165cc8efabba1073087ebd5d8742cd16ef463cb3638b5d1a8",
+            "md5": "1c7d94a562519c1b92b8640606fc1ca4",
+            "size": "16027484"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_cupti/linux-ppc64le/cuda_cupti-linux-ppc64le-11.6.124-archive.tar.xz",
+            "sha256": "aac47225b052fd5c316816400a0e4470a8257e3894526e85c1155c81088314e5",
+            "md5": "cc15ff34145b7ad8d7b0a7fd9ef0ae28",
+            "size": "8532396"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_cupti/linux-sbsa/cuda_cupti-linux-sbsa-11.6.124-archive.tar.xz",
+            "sha256": "8e45eac6e94938de807c44d2f846a0e8996a065b0817c2119948193fec279ca6",
+            "md5": "fc9530922d0adafcea054efcdaf7579e",
+            "size": "8370644"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_cupti/windows-x86_64/cuda_cupti-windows-x86_64-11.6.124-archive.zip",
+            "sha256": "ff7d4d4d7a83b2fe1bb3b964a44fdc29261470b239fc9c113e91e6b1bf1e9707",
+            "md5": "ac8391077028cc3eb3775d3eb4099865",
+            "size": "11384612"
+        }
+    },
+    "cuda_cuxxfilt": {
+        "name": "CUDA cuxxfilt (demangler)",
+        "license": "CUDA Toolkit",
+        "version": "11.6.124",
+        "linux-x86_64": {
+            "relative_path": "cuda_cuxxfilt/linux-x86_64/cuda_cuxxfilt-linux-x86_64-11.6.124-archive.tar.xz",
+            "sha256": "3233b1dc13802701821a2cdebdcee5908ae03c63f457b8574ae1798c75245375",
+            "md5": "cbef12e45924009f5a6160fcc438fe42",
+            "size": "185732"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_cuxxfilt/linux-ppc64le/cuda_cuxxfilt-linux-ppc64le-11.6.124-archive.tar.xz",
+            "sha256": "1f9d5f7093b6738452bc8311ce6fb13b9a59ede1c6f5476166237a3338002cc4",
+            "md5": "4dddd337619ee17921f1562a7d98b7d1",
+            "size": "182032"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_cuxxfilt/linux-sbsa/cuda_cuxxfilt-linux-sbsa-11.6.124-archive.tar.xz",
+            "sha256": "89aea00186991c56d4acc6e9ced0f3e8d9eeca991c8fc1fbc6db1ffc8be17f36",
+            "md5": "7f9874d247e48d29778e2750be23b1f1",
+            "size": "172524"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_cuxxfilt/windows-x86_64/cuda_cuxxfilt-windows-x86_64-11.6.124-archive.zip",
+            "sha256": "b1e3ce998310240e60355e75aa3ad6b166fda5cae2c9e59573691f3f6b125ed8",
+            "md5": "2941018da652cbdb255c644532d00e50",
+            "size": "168845"
+        }
+    },
+    "cuda_demo_suite": {
+        "name": "CUDA Demo Suite",
+        "license": "CUDA Toolkit",
+        "version": "11.6.55",
+        "linux-x86_64": {
+            "relative_path": "cuda_demo_suite/linux-x86_64/cuda_demo_suite-linux-x86_64-11.6.55-archive.tar.xz",
+            "sha256": "82da6b7346257c94bf5ad25c93d5bf54eaf97a224b212bd166179a2e3d93f8a1",
+            "md5": "8330c6571b66865c587755e6c922c213",
+            "size": "3996208"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_demo_suite/windows-x86_64/cuda_demo_suite-windows-x86_64-11.6.55-archive.zip",
+            "sha256": "0c4c3be4f185fb9ddf2bb3f012ad506e7a23e39634f685ffe59fac01435b4eef",
+            "md5": "0e536ea97e3e685e9a73170ca1e693f1",
+            "size": "5021636"
+        }
+    },
+    "cuda_documentation": {
+        "name": "CUDA Documentation",
+        "license": "CUDA Toolkit",
+        "version": "11.6.124",
+        "linux-x86_64": {
+            "relative_path": "cuda_documentation/linux-x86_64/cuda_documentation-linux-x86_64-11.6.124-archive.tar.xz",
+            "sha256": "75a2082caebc02b82ac899c354abd810f2bcd012476ace25fbe56ad78c5bd566",
+            "md5": "a7eade47d3e3821d7b1a67c9afc1f490",
+            "size": "66348"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_documentation/linux-ppc64le/cuda_documentation-linux-ppc64le-11.6.124-archive.tar.xz",
+            "sha256": "a51b38d9925ec6564b26b922f3ef15b3781b9017c056beaa589d9e15384e9994",
+            "md5": "4d906f72e586f8ca216118730e9880be",
+            "size": "66572"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_documentation/linux-sbsa/cuda_documentation-linux-sbsa-11.6.124-archive.tar.xz",
+            "sha256": "78f6d84ea1cba3547c3f094873062d18d30a1a45cf0af8d89b3dd4c4b03f111e",
+            "md5": "0af218b799f48e8469fad088cd2c9017",
+            "size": "66404"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_documentation/windows-x86_64/cuda_documentation-windows-x86_64-11.6.124-archive.zip",
+            "sha256": "a4e0d6fc04ead69db208912487303a996dea1f37eeb7b3caff664dca10cf42a8",
+            "md5": "f055cb3244441fb9785cb38354d22af8",
+            "size": "104626"
+        }
+    },
+    "cuda_gdb": {
+        "name": "CUDA GDB",
+        "license": "CUDA Toolkit",
+        "version": "11.6.124",
+        "linux-x86_64": {
+            "relative_path": "cuda_gdb/linux-x86_64/cuda_gdb-linux-x86_64-11.6.124-archive.tar.xz",
+            "sha256": "95dd2cbf756a2fd3bcb8c9aa71b6ba4ee385430749b9c626849f7cc4ec6e8f29",
+            "md5": "ba6a284942d5c1d977fc08eb28bff3f9",
+            "size": "64257284"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_gdb/linux-ppc64le/cuda_gdb-linux-ppc64le-11.6.124-archive.tar.xz",
+            "sha256": "4aaf9142728e8908db14b23af9e8bcdd77825a80e628ca8be9e0392c997ecf0a",
+            "md5": "30c6bac5a3c72d7f503c7cd98d644b3b",
+            "size": "64138892"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_gdb/linux-sbsa/cuda_gdb-linux-sbsa-11.6.124-archive.tar.xz",
+            "sha256": "5206bb2a6eb4978ddc7732689d3b94e6b1dd2d655ed6d95a514dd67404d727a4",
+            "md5": "647cc2598ee0a2d42993b31318c5fc25",
+            "size": "64040212"
+        }
+    },
+    "cuda_memcheck": {
+        "name": "CUDA Memcheck",
+        "license": "CUDA Toolkit",
+        "version": "11.6.124",
+        "linux-x86_64": {
+            "relative_path": "cuda_memcheck/linux-x86_64/cuda_memcheck-linux-x86_64-11.6.124-archive.tar.xz",
+            "sha256": "5f0983c0945315d4a7beea92793aae4ffac72832870857345e9645edddc2f35b",
+            "md5": "8db021e48b154f9194f280728b41512e",
+            "size": "139868"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_memcheck/linux-ppc64le/cuda_memcheck-linux-ppc64le-11.6.124-archive.tar.xz",
+            "sha256": "67cb7a5ef1b411864f0af3fc429e74570f8920c3883ee80e1b1989746ffa11cc",
+            "md5": "af50c409bb97fc1b724b1129bd823fda",
+            "size": "147996"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_memcheck/windows-x86_64/cuda_memcheck-windows-x86_64-11.6.124-archive.zip",
+            "sha256": "58844652c2ddfe700348b08ef04c8385d8bbf36b89a421ecdcc774667ad04a0d",
+            "md5": "dcc37dfd92fe296f1563e6b519872725",
+            "size": "172867"
+        }
+    },
+    "cuda_nsight": {
+        "name": "Nsight Eclipse Edition Plugin",
+        "license": "CUDA Toolkit",
+        "version": "11.6.124",
+        "linux-x86_64": {
+            "relative_path": "cuda_nsight/linux-x86_64/cuda_nsight-linux-x86_64-11.6.124-archive.tar.xz",
+            "sha256": "771511b1fedd8b0d684b1fa6c6ff8feacaa0e38010a3f0fba4a02087e0756cbf",
+            "md5": "51dd87c3625354ef7c7f73689d06c5d4",
+            "size": "118602976"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nsight/linux-ppc64le/cuda_nsight-linux-ppc64le-11.6.124-archive.tar.xz",
+            "sha256": "07b28f88581db1ea1769a89d5fa23af298a385ff4feb14f8dbe801d9cb05a098",
+            "md5": "418edda7b00500c49cf0731f5ae75c2b",
+            "size": "118602980"
+        }
+    },
+    "cuda_nvcc": {
+        "name": "CUDA NVCC",
+        "license": "CUDA Toolkit",
+        "version": "11.6.124",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvcc/linux-x86_64/cuda_nvcc-linux-x86_64-11.6.124-archive.tar.xz",
+            "sha256": "8c81199c5a096869a10c284197cefc1a958df8bf482322a0a48dff9cc82291b8",
+            "md5": "c05aebe81d33e6850bceee7a36f8f2a5",
+            "size": "36764236"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvcc/linux-ppc64le/cuda_nvcc-linux-ppc64le-11.6.124-archive.tar.xz",
+            "sha256": "d63f1cf84896e16e0a90c97bab56f77a88449233025299ee96a7997b9522fb0f",
+            "md5": "2dfc257209fcb7773b8f0664abf3d0af",
+            "size": "34593028"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvcc/linux-sbsa/cuda_nvcc-linux-sbsa-11.6.124-archive.tar.xz",
+            "sha256": "cdca0d230967ccf227063841ae984704a1812663bd0074e400eee57ba47d99a9",
+            "md5": "24cd10d3274df8ca62297a097b9edf92",
+            "size": "32366400"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvcc/windows-x86_64/cuda_nvcc-windows-x86_64-11.6.124-archive.zip",
+            "sha256": "ab39ba1495ebe474fb74cea2b520bc4a3c80e6953ebf774c6cd4058c50be94e1",
+            "md5": "5f85971067866e0c8c8af33fb2e4c432",
+            "size": "46956615"
+        }
+    },
+    "cuda_nvdisasm": {
+        "name": "CUDA nvdisasm",
+        "license": "CUDA Toolkit",
+        "version": "11.6.124",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvdisasm/linux-x86_64/cuda_nvdisasm-linux-x86_64-11.6.124-archive.tar.xz",
+            "sha256": "1645505394a9d186741c7c2e07dea05fc1852bfa6a0663fdc53176ffaedff548",
+            "md5": "55d1a19ce1ad9de70ea6e620fff8c3d2",
+            "size": "32786504"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvdisasm/linux-ppc64le/cuda_nvdisasm-linux-ppc64le-11.6.124-archive.tar.xz",
+            "sha256": "972744cd85dcb48fb0d313c7deabee246702e7d35443f96503a56ddee1904d00",
+            "md5": "9690d65addaa1a6c43800570e15d9645",
+            "size": "32788856"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvdisasm/linux-sbsa/cuda_nvdisasm-linux-sbsa-11.6.124-archive.tar.xz",
+            "sha256": "d4e5e3eef98659f3d1464576d3ec715469918def222cf7f84851ba06716fa8dd",
+            "md5": "b5430097ec81b02d7e5c1e6eabd3c801",
+            "size": "32715804"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvdisasm/windows-x86_64/cuda_nvdisasm-windows-x86_64-11.6.124-archive.zip",
+            "sha256": "e318fc6ae9b33e6cc657c655a0c1eff5f56828abbea208728619c9bdfc59eb7d",
+            "md5": "ca2d64b77bcbf3c6aa9fa53b552ca63b",
+            "size": "32999132"
+        }
+    },
+    "cuda_nvml_dev": {
+        "name": "CUDA NVML Headers",
+        "license": "CUDA Toolkit",
+        "version": "11.6.55",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvml_dev/linux-x86_64/cuda_nvml_dev-linux-x86_64-11.6.55-archive.tar.xz",
+            "sha256": "12cbd1279ffe240396cba3c7d8e27fe9b4ee0e0db81850b29462544d83ca23c0",
+            "md5": "e91c008f71ee4eda2dc32c9a51e6b479",
+            "size": "74380"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvml_dev/linux-ppc64le/cuda_nvml_dev-linux-ppc64le-11.6.55-archive.tar.xz",
+            "sha256": "6134b127d84ec38c3d496d34214500e22bc455dd13677a957d6d1e2787a27950",
+            "md5": "56adc2658a5d9e7ac72be9769b0b4d96",
+            "size": "73936"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvml_dev/linux-sbsa/cuda_nvml_dev-linux-sbsa-11.6.55-archive.tar.xz",
+            "sha256": "72dbcd80bb8acf675c924fbafa9462122743e37aa51a147f3e07cf0d34044292",
+            "md5": "491a21dab70c5d4b3dc8145df7737b1b",
+            "size": "74440"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvml_dev/windows-x86_64/cuda_nvml_dev-windows-x86_64-11.6.55-archive.zip",
+            "sha256": "35dbf8f8f2974973a52b3363fa3936ce952ce94dc2aabca9aaf1f79039a633b9",
+            "md5": "4dec589b69ec53618f86d35418b0edb5",
+            "size": "103281"
+        }
+    },
+    "cuda_nvprof": {
+        "name": "CUDA nvprof",
+        "license": "CUDA Toolkit",
+        "version": "11.6.124",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvprof/linux-x86_64/cuda_nvprof-linux-x86_64-11.6.124-archive.tar.xz",
+            "sha256": "2c05600562bcbe4841cd0d86fdbf2fecba36c54ad393979cb22653dd45487a9b",
+            "md5": "e22c5dd6199769553ef43ce71e4dae0d",
+            "size": "1943508"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvprof/linux-ppc64le/cuda_nvprof-linux-ppc64le-11.6.124-archive.tar.xz",
+            "sha256": "39d891bc85c431551d039a23d249f0c87b723a0d0683a5bf689f2fa4b3cdffd8",
+            "md5": "faf88332bafdfece1c5e63001271dc9e",
+            "size": "1598652"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvprof/linux-sbsa/cuda_nvprof-linux-sbsa-11.6.124-archive.tar.xz",
+            "sha256": "3e3275bd148fa1c3a73ef468c2a1e633fe736cb1b1c834a2693a177be9e3cbc9",
+            "md5": "abd2a3edafc9e1a069844559ca0b6352",
+            "size": "16148"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvprof/windows-x86_64/cuda_nvprof-windows-x86_64-11.6.124-archive.zip",
+            "sha256": "4c965334058241f8d3cff2d1d8f37d8745796c0913e8fc440673dcc55c630808",
+            "md5": "85f85e5eb14b46756f67413e45237a8c",
+            "size": "1603422"
+        }
+    },
+    "cuda_nvprune": {
+        "name": "CUDA nvprune",
+        "license": "CUDA Toolkit",
+        "version": "11.6.124",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvprune/linux-x86_64/cuda_nvprune-linux-x86_64-11.6.124-archive.tar.xz",
+            "sha256": "0b1f79447efedef09c54d517eff994995b36d486f642379fd278ddbb4d29f5ea",
+            "md5": "644603927c6d326fb5fd4e6e3e23aa67",
+            "size": "55168"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvprune/linux-ppc64le/cuda_nvprune-linux-ppc64le-11.6.124-archive.tar.xz",
+            "sha256": "5c6bd788e9575fc09f9e687b15123ad4bdde25008425c7f0108e319a952f5273",
+            "md5": "065bc537a28f5b8ccf546af677391e7a",
+            "size": "55876"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvprune/linux-sbsa/cuda_nvprune-linux-sbsa-11.6.124-archive.tar.xz",
+            "sha256": "6b9c0df46418b682497feeac9cf56edfc5679e06d60a94158732aac125aa560d",
+            "md5": "e547bc9e771de95ccac8f5945a7c6ed9",
+            "size": "47532"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvprune/windows-x86_64/cuda_nvprune-windows-x86_64-11.6.124-archive.zip",
+            "sha256": "991f7574ef06eef1f63e94af188d48e360b7ffcebe6fe5b9e088d91b6579009e",
+            "md5": "cb3517ad769c0b0935a76fac1a976f91",
+            "size": "144822"
+        }
+    },
+    "cuda_nvrtc": {
+        "name": "CUDA NVRTC",
+        "license": "CUDA Toolkit",
+        "version": "11.6.124",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvrtc/linux-x86_64/cuda_nvrtc-linux-x86_64-11.6.124-archive.tar.xz",
+            "sha256": "9086e9f0ac56337d8e80d3cd1d78f79633f8725cdd0bb5a9864311a2ba95c1e0",
+            "md5": "01bf28fce5c9140190d9750e1585e7a8",
+            "size": "27889392"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvrtc/linux-ppc64le/cuda_nvrtc-linux-ppc64le-11.6.124-archive.tar.xz",
+            "sha256": "68b89b68b820c87e32c830b95c7496f814854d213997701f6c0abe78827aa184",
+            "md5": "ab3a2658922c08ed944889f61d634224",
+            "size": "26054036"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvrtc/linux-sbsa/cuda_nvrtc-linux-sbsa-11.6.124-archive.tar.xz",
+            "sha256": "140d6587924f95fa6a9fbd7ad9a2d57b276ae71f1738b2b6bebfd0a8317b7e6d",
+            "md5": "b29a768f5bcbf995e8ee1e8bc6c6fd34",
+            "size": "25908284"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvrtc/windows-x86_64/cuda_nvrtc-windows-x86_64-11.6.124-archive.zip",
+            "sha256": "ea5d8de24af80840bcf7d8f91ab1385366ca736485c52910fe269f845711b28f",
+            "md5": "dc650c5a417e7532633408809c10900a",
+            "size": "92877744"
+        }
+    },
+    "cuda_nvtx": {
+        "name": "CUDA NVTX",
+        "license": "CUDA Toolkit",
+        "version": "11.6.124",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvtx/linux-x86_64/cuda_nvtx-linux-x86_64-11.6.124-archive.tar.xz",
+            "sha256": "02a4fe16e715f6f9d3d6e25a5504c8a2cccab52da40ebbcf21919f002a0ac951",
+            "md5": "f9b29c3d4034abb5316220674ad3796c",
+            "size": "48124"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvtx/linux-ppc64le/cuda_nvtx-linux-ppc64le-11.6.124-archive.tar.xz",
+            "sha256": "fc65a9caca20c892b4bd4f2b6e635e501582fe10474cb3d2ba6f7ed50b2860c1",
+            "md5": "52a5a1846fc0c83072712e969329af75",
+            "size": "48140"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_nvtx/linux-sbsa/cuda_nvtx-linux-sbsa-11.6.124-archive.tar.xz",
+            "sha256": "f0e7d4f1824ff125b23cb48d37d76034c9daff787cef08316188219269df8220",
+            "md5": "a67329ea6a2171272a9d1bd36933977f",
+            "size": "48708"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvtx/windows-x86_64/cuda_nvtx-windows-x86_64-11.6.124-archive.zip",
+            "sha256": "9e82e18c38ed82aa5beb8aedf4a04770b59ad73113ac9e4e5c4e1e68dc999dad",
+            "md5": "853296d1ab5efa56a0290c1fc18ff82f",
+            "size": "65732"
+        }
+    },
+    "cuda_nvvp": {
+        "name": "CUDA NVVP",
+        "license": "CUDA Toolkit",
+        "version": "11.6.124",
+        "linux-x86_64": {
+            "relative_path": "cuda_nvvp/linux-x86_64/cuda_nvvp-linux-x86_64-11.6.124-archive.tar.xz",
+            "sha256": "bc7ec46b93ce7f8c2399a4d8840e7ed7961a784ef462eaa94c66d81e9725286b",
+            "md5": "892580326407fc2b16abaa72d05f27e9",
+            "size": "114308284"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_nvvp/linux-ppc64le/cuda_nvvp-linux-ppc64le-11.6.124-archive.tar.xz",
+            "sha256": "672e016a3127ec28d4ddf063bd91baab482c34dd073d839e45fc3c50c1466705",
+            "md5": "c6eb99303f62d4c3c6d240b8f00f2f0f",
+            "size": "113832776"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_nvvp/windows-x86_64/cuda_nvvp-windows-x86_64-11.6.124-archive.zip",
+            "sha256": "374c183ddd5a127a0973fbf2e3dd0cb89d9968ca77bfeab8a3f44529fdc326a4",
+            "md5": "9f00a05cd166bd92a0ae5cc051540e55",
+            "size": "120342885"
+        }
+    },
+    "cuda_sanitizer_api": {
+        "name": "CUDA Compute Sanitizer API",
+        "license": "CUDA Toolkit",
+        "version": "11.6.124",
+        "linux-x86_64": {
+            "relative_path": "cuda_sanitizer_api/linux-x86_64/cuda_sanitizer_api-linux-x86_64-11.6.124-archive.tar.xz",
+            "sha256": "a6d81ec79be73fe23c7cd16054e9f0494e82dd14ee77ef07c4819af6248c5bfa",
+            "md5": "31816ee26b4fdd9c0c4f8e85cf723868",
+            "size": "7988992"
+        },
+        "linux-ppc64le": {
+            "relative_path": "cuda_sanitizer_api/linux-ppc64le/cuda_sanitizer_api-linux-ppc64le-11.6.124-archive.tar.xz",
+            "sha256": "3c39b6e7a23c19f91f5d25a2a2d752a15407eddc460c1c56a8e7ae7f8864ec4f",
+            "md5": "266196017ee59c3058c6c0ffc035ebe0",
+            "size": "7404564"
+        },
+        "linux-sbsa": {
+            "relative_path": "cuda_sanitizer_api/linux-sbsa/cuda_sanitizer_api-linux-sbsa-11.6.124-archive.tar.xz",
+            "sha256": "d7c55c5a600782d3aa10b5a3a898445a57997394ea626e2e4789f7923a927334",
+            "md5": "4f3a68e4fa789ba3dcbb7e12bd77abf7",
+            "size": "6123224"
+        },
+        "windows-x86_64": {
+            "relative_path": "cuda_sanitizer_api/windows-x86_64/cuda_sanitizer_api-windows-x86_64-11.6.124-archive.zip",
+            "sha256": "24d24151b77b1051be2035176475f33d2b260c8a20a3fe1af99ca312490721a8",
+            "md5": "dc713ceb5f52e2936df2146693e2bdde",
+            "size": "13126684"
+        }
+    },
+    "fabricmanager": {
+        "name": "NVIDIA Fabric Manager",
+        "license": "NVIDIA Driver",
+        "version": "510.47.03",
+        "linux-x86_64": {
+            "relative_path": "fabricmanager/linux-x86_64/fabricmanager-linux-x86_64-510.47.03-archive.tar.xz",
+            "sha256": "d5c7204160f7b2c688932f90648995bd3bf3a821d99161cefb7e7a9539e22a6f",
+            "md5": "43dc2904ab88fba0739c8265466f0972",
+            "size": "1528776"
+        }
+    },
+    "libcublas": {
+        "name": "CUDA cuBLAS",
+        "license": "CUDA Toolkit",
+        "version": "11.9.2.110",
+        "linux-x86_64": {
+            "relative_path": "libcublas/linux-x86_64/libcublas-linux-x86_64-11.9.2.110-archive.tar.xz",
+            "sha256": "ea2395ea76a811498863774491721d5c4b491fd1498221ef7cb1ae514e6518cb",
+            "md5": "e46be77087fc85134fb7c85a158f6964",
+            "size": "434133064"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libcublas/linux-ppc64le/libcublas-linux-ppc64le-11.9.2.110-archive.tar.xz",
+            "sha256": "81c729d78ef775958a0aadf2a02ee7f56d826e9b4130d564b9ea92aed6f2998d",
+            "md5": "658162cbc2982de03d0703400ee8a2b8",
+            "size": "434108428"
+        },
+        "linux-sbsa": {
+            "relative_path": "libcublas/linux-sbsa/libcublas-linux-sbsa-11.9.2.110-archive.tar.xz",
+            "sha256": "8201009b6df0924d599731bcf309190b8e8e3c1eebff0226f12107ca3f5f86dd",
+            "md5": "56278d0d28664be11c1e53074cf13432",
+            "size": "434332668"
+        },
+        "windows-x86_64": {
+            "relative_path": "libcublas/windows-x86_64/libcublas-windows-x86_64-11.9.2.110-archive.zip",
+            "sha256": "13f5119c43128ccda66ab092bad4435313cf06cb892247e38cb2ec1d8bc96c90",
+            "md5": "52b685ec11fd3384e49e84243627a0aa",
+            "size": "324277131"
+        }
+    },
+    "libcufft": {
+        "name": "CUDA cuFFT",
+        "license": "CUDA Toolkit",
+        "version": "10.7.2.124",
+        "linux-x86_64": {
+            "relative_path": "libcufft/linux-x86_64/libcufft-linux-x86_64-10.7.2.124-archive.tar.xz",
+            "sha256": "95397578c2d18d5df17dafa42cf34d47821953c6d5c9bdba45c7b673ba07276a",
+            "md5": "e4b681b1a42bfbbfae92995a244d0f23",
+            "size": "214961728"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libcufft/linux-ppc64le/libcufft-linux-ppc64le-10.7.2.124-archive.tar.xz",
+            "sha256": "db425ae3fccbb68a28f0f461a6a022856081d16d06da3a99e903975a89a5d4b1",
+            "md5": "e0ffc2b9175cefb33b3df4fc6623d882",
+            "size": "214897136"
+        },
+        "linux-sbsa": {
+            "relative_path": "libcufft/linux-sbsa/libcufft-linux-sbsa-10.7.2.124-archive.tar.xz",
+            "sha256": "b132fc468d46a90baac45f8f0484675cc4552120d5912c9c7612d7346c7db9bf",
+            "md5": "639a4f80a557168fc7ae222fec491e50",
+            "size": "214000212"
+        },
+        "windows-x86_64": {
+            "relative_path": "libcufft/windows-x86_64/libcufft-windows-x86_64-10.7.2.124-archive.zip",
+            "sha256": "d7a613f9bb647695947cdd0514abed09fb82c0934461cedab629f6471f4adaf7",
+            "md5": "83aeb1b3eaa9246b2f06f37d94e9f07f",
+            "size": "287132168"
+        }
+    },
+    "libcufile": {
+        "name": "CUDA cuFile",
+        "license": "CUDA Toolkit",
+        "version": "1.2.1.4",
+        "linux-x86_64": {
+            "relative_path": "libcufile/linux-x86_64/libcufile-linux-x86_64-1.2.1.4-archive.tar.xz",
+            "sha256": "ebc164ebffee7dbe87ae8cc3e37fcf6499750aa9f7003ea0cc4f3bc7c7f3a56d",
+            "md5": "ae8cd1900e9947cdb8acdd9726befe29",
+            "size": "46744444"
+        }
+    },
+    "libcurand": {
+        "name": "CUDA cuRAND",
+        "license": "CUDA Toolkit",
+        "version": "10.2.9.124",
+        "linux-x86_64": {
+            "relative_path": "libcurand/linux-x86_64/libcurand-linux-x86_64-10.2.9.124-archive.tar.xz",
+            "sha256": "87b1d70ec749db31cabb79ae5034b05883666e1848aa3feca643ea4a68dea47e",
+            "md5": "e7657f67965d162b519c2471ca0f7c08",
+            "size": "82095344"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libcurand/linux-ppc64le/libcurand-linux-ppc64le-10.2.9.124-archive.tar.xz",
+            "sha256": "162a42c9e98fd3809541a04dc67933b43f2a85d8d9a749ca247d2be049b7c4d8",
+            "md5": "ba67c380f521a245192fb589cc208edd",
+            "size": "82140836"
+        },
+        "linux-sbsa": {
+            "relative_path": "libcurand/linux-sbsa/libcurand-linux-sbsa-10.2.9.124-archive.tar.xz",
+            "sha256": "c084db363510f6a2f628401494372edc1a841b0fabf95d80e86b852b27a299f5",
+            "md5": "5021f94b32de1099a52bbfd02d08be17",
+            "size": "82081332"
+        },
+        "windows-x86_64": {
+            "relative_path": "libcurand/windows-x86_64/libcurand-windows-x86_64-10.2.9.124-archive.zip",
+            "sha256": "6bbb3c33f76813a96b1cec51d723d0d53704f3b7fedaf6c29f4c84f1bcb73a4e",
+            "md5": "4914ba32fc23a9076f51f8755909c258",
+            "size": "53645700"
+        }
+    },
+    "libcusolver": {
+        "name": "CUDA cuSOLVER",
+        "license": "CUDA Toolkit",
+        "version": "11.3.4.124",
+        "linux-x86_64": {
+            "relative_path": "libcusolver/linux-x86_64/libcusolver-linux-x86_64-11.3.4.124-archive.tar.xz",
+            "sha256": "adbd0af1f84aea29859c217e028c1a74a5b3a90acce7d679790efd73aff28462",
+            "md5": "1f7211cc6ae6e8afd1387469a5e9a9a9",
+            "size": "77918104"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libcusolver/linux-ppc64le/libcusolver-linux-ppc64le-11.3.4.124-archive.tar.xz",
+            "sha256": "6b9ab64258e970f6966c133dab767db03dac038cf047641fb677ce9334e53262",
+            "md5": "f8b2f8280e8863de318212199fe72494",
+            "size": "78066772"
+        },
+        "linux-sbsa": {
+            "relative_path": "libcusolver/linux-sbsa/libcusolver-linux-sbsa-11.3.4.124-archive.tar.xz",
+            "sha256": "bb0dcef4d8c4e076a724d1a0a7258bffb6e9a9c49357716ed70466b3403eb4e3",
+            "md5": "8fced4d6324195575d28464026d26125",
+            "size": "77371768"
+        },
+        "windows-x86_64": {
+            "relative_path": "libcusolver/windows-x86_64/libcusolver-windows-x86_64-11.3.4.124-archive.zip",
+            "sha256": "80d602eef188a19779b0beabb6f3fd9f8eb52ce8c8c61d31a792351d85053996",
+            "md5": "123c3e9a0e0933e4c414a28fd382ea7d",
+            "size": "110462365"
+        }
+    },
+    "libcusparse": {
+        "name": "CUDA cuSPARSE",
+        "license": "CUDA Toolkit",
+        "version": "11.7.2.124",
+        "linux-x86_64": {
+            "relative_path": "libcusparse/linux-x86_64/libcusparse-linux-x86_64-11.7.2.124-archive.tar.xz",
+            "sha256": "744affcbe5ecc8ca9438f20cf93e43a1648d682f6badfa4494f76ae26a350edc",
+            "md5": "b663b089be7b8dba687da98ed9fcf1dd",
+            "size": "218747728"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libcusparse/linux-ppc64le/libcusparse-linux-ppc64le-11.7.2.124-archive.tar.xz",
+            "sha256": "97a3abd633cb0c7ce941fdb4f98e82ddd064605c2a864ad4c35eabcca1bfe7c4",
+            "md5": "6468ea649e2cd9be3541abc0b5a9d7a9",
+            "size": "218901148"
+        },
+        "linux-sbsa": {
+            "relative_path": "libcusparse/linux-sbsa/libcusparse-linux-sbsa-11.7.2.124-archive.tar.xz",
+            "sha256": "4962d79be52338c911fb5612bb2f7562aa41bda0ec474fc096524bf9dd762922",
+            "md5": "1c49c2c1b950b4c874f4254490da1b82",
+            "size": "218441052"
+        },
+        "windows-x86_64": {
+            "relative_path": "libcusparse/windows-x86_64/libcusparse-windows-x86_64-11.7.2.124-archive.zip",
+            "sha256": "4c33673bb1de12005b26fbf5139b6b9e25fbf4490839205036e060af27c1f789",
+            "md5": "f32317cca576ab805ec381be38ef225c",
+            "size": "180394097"
+        }
+    },
+    "libnpp": {
+        "name": "CUDA NPP",
+        "license": "CUDA Toolkit",
+        "version": "11.6.3.124",
+        "linux-x86_64": {
+            "relative_path": "libnpp/linux-x86_64/libnpp-linux-x86_64-11.6.3.124-archive.tar.xz",
+            "sha256": "be4afe097cc38eea91ef02aea233db9fa3ba7a31bc115fc287e10812441ee5c2",
+            "md5": "8300ad8d28a906c386f5338187aee660",
+            "size": "165187052"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libnpp/linux-ppc64le/libnpp-linux-ppc64le-11.6.3.124-archive.tar.xz",
+            "sha256": "b55dc9d7e32319a007374cbb191dba1bce1973857a0ae0cc684a4c87e39ac23a",
+            "md5": "86e2f863047db392473fb438a9112206",
+            "size": "165756596"
+        },
+        "linux-sbsa": {
+            "relative_path": "libnpp/linux-sbsa/libnpp-linux-sbsa-11.6.3.124-archive.tar.xz",
+            "sha256": "dd3fbe515b0bca6393de5829fb675f8fae9bfa23f0cd5e94a87643088935aa32",
+            "md5": "e62dd0d88f234764c097f8a112f61d35",
+            "size": "164248860"
+        },
+        "windows-x86_64": {
+            "relative_path": "libnpp/windows-x86_64/libnpp-windows-x86_64-11.6.3.124-archive.zip",
+            "sha256": "647e78458636d462698fbdbd26c99d4956c917a25a7fd6d2e516a7035a52c857",
+            "md5": "bf43f99df8934740762e5dd6e1419198",
+            "size": "125797073"
+        }
+    },
+    "libnvidia_nscq": {
+        "name": "NVIDIA NSCQ API",
+        "license": "NVIDIA Driver",
+        "version": "510.47.03",
+        "linux-x86_64": {
+            "relative_path": "libnvidia_nscq/linux-x86_64/libnvidia_nscq-linux-x86_64-510.47.03-archive.tar.xz",
+            "sha256": "187b07fc6dae26f43bd23276acaf8177f15b32831cde4d21df6abfd6915d30c4",
+            "md5": "d13ca7a0403dd22e9441434b617a2d5f",
+            "size": "316976"
+        }
+    },
+    "libnvjpeg": {
+        "name": "CUDA nvJPEG",
+        "license": "CUDA Toolkit",
+        "version": "11.6.2.124",
+        "linux-x86_64": {
+            "relative_path": "libnvjpeg/linux-x86_64/libnvjpeg-linux-x86_64-11.6.2.124-archive.tar.xz",
+            "sha256": "ed9f4be96412134195aecbe15b281f3ac8e9b954e0fc62df9279169cf0e0f50b",
+            "md5": "dffc64101ced535bf63604421c4afaa8",
+            "size": "2045660"
+        },
+        "linux-ppc64le": {
+            "relative_path": "libnvjpeg/linux-ppc64le/libnvjpeg-linux-ppc64le-11.6.2.124-archive.tar.xz",
+            "sha256": "377f5acfc5c25a983b0c3043b6fb9da7077d4d571481b62b091e162d8d8fe3c5",
+            "md5": "04f6a60f6c53ce31671e2eeda8f0638e",
+            "size": "2077792"
+        },
+        "linux-sbsa": {
+            "relative_path": "libnvjpeg/linux-sbsa/libnvjpeg-linux-sbsa-11.6.2.124-archive.tar.xz",
+            "sha256": "badbe50dab52403cd152c907c9be7271a25c7e0b2bf7377a1cee13bd63f6c008",
+            "md5": "7c7fa8c7ca5d129b2f7d775cb4ac96a1",
+            "size": "1864404"
+        },
+        "windows-x86_64": {
+            "relative_path": "libnvjpeg/windows-x86_64/libnvjpeg-windows-x86_64-11.6.2.124-archive.zip",
+            "sha256": "9a04433b80bb5374c0dcf21e1988a66d6d61009dd431668e5ef412baf1167796",
+            "md5": "99d01192cc9c040b7d2a54ae2b7ea2a3",
+            "size": "2050577"
+        }
+    },
+    "nsight_compute": {
+        "name": "Nsight Compute",
+        "license": "NVIDIA SLA",
+        "version": "2022.1.1.2",
+        "linux-x86_64": {
+            "relative_path": "nsight_compute/linux-x86_64/nsight_compute-linux-x86_64-2022.1.1.2-archive.tar.xz",
+            "sha256": "ce3248dc64ec05ad1eb174c7114dda02e3023a4ee9adfe457b662289e3134140",
+            "md5": "c1d851ebf7528107555861b4fbc83948",
+            "size": "410930844"
+        },
+        "linux-ppc64le": {
+            "relative_path": "nsight_compute/linux-ppc64le/nsight_compute-linux-ppc64le-2022.1.1.2-archive.tar.xz",
+            "sha256": "84c9fdad8865c2c3f505ee781f95b546a8ce5ef712cb43fc856c0c62be9bab24",
+            "md5": "4e0660c401e2861bd3a5fa81a44c6fbf",
+            "size": "123752204"
+        },
+        "linux-sbsa": {
+            "relative_path": "nsight_compute/linux-sbsa/nsight_compute-linux-sbsa-2022.1.1.2-archive.tar.xz",
+            "sha256": "5016436938039b284d422a27a954e7483cc15a5d33c512525c2ded860c062747",
+            "md5": "241420674893c0dd375847ece4fa4abc",
+            "size": "121981328"
+        },
+        "windows-x86_64": {
+            "relative_path": "nsight_compute/windows-x86_64/nsight_compute-windows-x86_64-2022.1.1.2-archive.zip",
+            "sha256": "4f709728da79048cc50c6079a5f5dd3b7e35c363163484e7f89f8a2595b8d633",
+            "md5": "27cdc4affc4d3227905901ae5895e0b4",
+            "size": "348353793"
+        }
+    },
+    "nsight_nvtx": {
+        "name": "Nsight NVTX",
+        "license": "CUDA Toolkit",
+        "version": "1.21018621",
+        "windows-x86_64": {
+            "relative_path": "nsight_nvtx/windows-x86_64/nsight_nvtx-windows-x86_64-1.21018621-archive.zip",
+            "sha256": "d99b015bfb1308206f9d7c16ea401bf426fed3a5a99953b855fe4e68be5ed2d1",
+            "md5": "34ee04d45cfca1c4e3cbfba0ec8f6f80",
+            "size": "315692"
+        }
+    },
+    "nsight_systems": {
+        "name": "Nsight Systems",
+        "license": "NVIDIA SLA",
+        "version": "2021.5.2.53",
+        "linux-x86_64": {
+            "relative_path": "nsight_systems/linux-x86_64/nsight_systems-linux-x86_64-2021.5.2.53-archive.tar.xz",
+            "sha256": "27b8c6a171efc5b815035f7e9c9229bdc2c239c1da1956df687f80f78c03c70c",
+            "md5": "20dcf79c9b387fcc66956182d56fa7ef",
+            "size": "161956304"
+        },
+        "linux-ppc64le": {
+            "relative_path": "nsight_systems/linux-ppc64le/nsight_systems-linux-ppc64le-2021.5.2.53-archive.tar.xz",
+            "sha256": "7c76f0b6e35add162be0a55cb8b673960e2d6e9907875379fd70345c6fbb05d4",
+            "md5": "5bc90d4adc83492fc65191c9a1e33d41",
+            "size": "47184992"
+        },
+        "linux-sbsa": {
+            "relative_path": "nsight_systems/linux-sbsa/nsight_systems-linux-sbsa-2021.5.2.53-archive.tar.xz",
+            "sha256": "22bd8ec797d2734b701e5bf62ec095d82687a3eb5daf01a7657cd1aab896fc6d",
+            "md5": "1a4e2b8212f8cef37d16c23c9440f680",
+            "size": "47348636"
+        },
+        "windows-x86_64": {
+            "relative_path": "nsight_systems/windows-x86_64/nsight_systems-windows-x86_64-2021.5.2.53-archive.zip",
+            "sha256": "6cd2caa431d703f1c54eb65cba2508c150ae115c0b20a58f6c96839bcbc23406",
+            "md5": "07582800aee2a476463f866aa25f8a0a",
+            "size": "304567470"
+        }
+    },
+    "nsight_vse": {
+        "name": "Nsight Visual Studio Edition (VSE)",
+        "license": "NVIDIA SLA",
+        "version": "2022.1.1.22006",
+        "windows-x86_64": {
+            "relative_path": "nsight_vse/windows-x86_64/nsight_vse-windows-x86_64-2022.1.1.22006-archive.zip",
+            "sha256": "92c0a591401e085a2ade6688866fa93fb1562d98e4d8321a252b1143e364192a",
+            "md5": "67304f264ab92d5ac6706fb0bf3f6eac",
+            "size": "455973381"
+        }
+    },
+    "nvidia_driver": {
+        "name": "NVIDIA Linux Driver",
+        "license": "NVIDIA Driver",
+        "version": "510.47.03",
+        "linux-x86_64": {
+            "relative_path": "nvidia_driver/linux-x86_64/nvidia_driver-linux-x86_64-510.47.03-archive.tar.xz",
+            "sha256": "668a653cb4e9b89279a31c2fac23306c80b8f2b4b27b4e066cfe322d9347e1b7",
+            "md5": "b9a80476a86e6186645c37b7a9a7791a",
+            "size": "327247384"
+        },
+        "linux-ppc64le": {
+            "relative_path": "nvidia_driver/linux-ppc64le/nvidia_driver-linux-ppc64le-510.47.03-archive.tar.xz",
+            "sha256": "28c278660d10ba63420990e164aafd866a9907a66323db9570ad1a9ada37ae0f",
+            "md5": "0a3f82d50ea4ac361eb2def1d763947f",
+            "size": "73666716"
+        },
+        "linux-sbsa": {
+            "relative_path": "nvidia_driver/linux-sbsa/nvidia_driver-linux-sbsa-510.47.03-archive.tar.xz",
+            "sha256": "1f2e0b90621f67477d5bfcd8ff28b01eca9cdb79a2ba911b07671953e44618ad",
+            "md5": "d555c62d414121623b4906ecb3de06e8",
+            "size": "211721052"
+        }
+    },
+    "nvidia_fs": {
+        "name": "NVIDIA filesystem",
+        "license": "CUDA Toolkit",
+        "version": "2.11.0",
+        "linux-x86_64": {
+            "relative_path": "nvidia_fs/linux-x86_64/nvidia_fs-linux-x86_64-2.11.0-archive.tar.xz",
+            "sha256": "ea260e5e8c9df3d4f1448684350a0fa7931dd45918329bda96378b173ea63b24",
+            "md5": "676b88c768132bd4775c91291af90b55",
+            "size": "69588"
+        }
+    },
+    "visual_studio_integration": {
+        "name": "CUDA Visual Studio Integration",
+        "license": "CUDA Toolkit",
+        "version": "11.6.124",
+        "windows-x86_64": {
+            "relative_path": "visual_studio_integration/windows-x86_64/visual_studio_integration-windows-x86_64-11.6.124-archive.zip",
+            "sha256": "0a8e288bb604dc2af766f65042aeb4675a7b15629e71c7c3341d0fd8aab2de91",
+            "md5": "248f627cccca3ee81c561aaea5193271",
+            "size": "517139"
+        }
+    }
+}
diff --git a/pkgs/development/compilers/cudatoolkit/redist/overrides.nix b/pkgs/development/compilers/cudatoolkit/redist/overrides.nix
new file mode 100644
index 0000000000000..588f2f2a0867d
--- /dev/null
+++ b/pkgs/development/compilers/cudatoolkit/redist/overrides.nix
@@ -0,0 +1,72 @@
+final: prev: let
+  inherit (prev) lib pkgs;
+in (lib.filterAttrs (attr: _: (prev ? "${attr}")) {
+  ### Overrides to fix the components of cudatoolkit-redist
+
+  # Attributes that don't exist in the previous set are removed.
+  # That means only overrides can go here, and not new expressions!
+
+  libcufile = prev.libcufile.overrideAttrs (oldAttrs: {
+    buildInputs = oldAttrs.buildInputs ++ [
+      prev.libcublas
+      pkgs.numactl
+      pkgs.rdma-core
+    ];
+    # libcuda needs to be resolved during runtime
+    autoPatchelfIgnoreMissingDeps = true;
+  });
+
+  libcusolver = final.addBuildInputs prev.libcusolver [
+    prev.libcublas
+  ];
+
+  cuda_nvprof = prev.cuda_nvprof.overrideAttrs (oldAttrs: {
+    nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ pkgs.addOpenGLRunpath ];
+    buildInputs = oldAttrs.buildInputs ++ [ prev.cuda_cupti ];
+    # libcuda needs to be resolved during runtime
+    autoPatchelfIgnoreMissingDeps = true;
+  });
+
+  cuda_demo_suite = final.addBuildInputs prev.cuda_demo_suite [
+    pkgs.freeglut
+    pkgs.libGLU
+    pkgs.libglvnd
+    pkgs.mesa
+    prev.libcufft
+    prev.libcurand
+  ];
+
+  nsight_compute = prev.nsight_compute.overrideAttrs (oldAttrs: {
+    nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ pkgs.qt5.wrapQtAppsHook ];
+    buildInputs = oldAttrs.buildInputs ++ [ pkgs.libsForQt5.qt5.qtwebview ];
+  });
+
+  nsight_systems = prev.nsight_systems.overrideAttrs (oldAttrs: {
+    nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [
+      pkgs.addOpenGLRunpath
+      pkgs.qt5.wrapQtAppsHook
+    ];
+    buildInputs = oldAttrs.buildInputs ++ [
+      pkgs.alsa-lib
+      pkgs.e2fsprogs
+      pkgs.nss
+      pkgs.numactl
+      pkgs.pulseaudio
+      pkgs.wayland
+      pkgs.xorg.libXcursor
+      pkgs.xorg.libXdamage
+      pkgs.xorg.libXrandr
+      pkgs.xorg.libXtst
+    ];
+    # libcuda needs to be resolved during runtime
+    autoPatchelfIgnoreMissingDeps = true;
+  });
+
+  nvidia_driver = prev.nvidia_driver.overrideAttrs (oldAttrs: {
+    # libcuda needs to be resolved during runtime
+    autoPatchelfIgnoreMissingDeps = true;
+    # No need to support this package as we have drivers already
+    # in linuxPackages.
+    meta.broken = true;
+  });
+})
diff --git a/pkgs/development/compilers/cudatoolkit/versions.toml b/pkgs/development/compilers/cudatoolkit/versions.toml
new file mode 100644
index 0000000000000..46173cca12cde
--- /dev/null
+++ b/pkgs/development/compilers/cudatoolkit/versions.toml
@@ -0,0 +1,61 @@
+["10.0"]
+version = "10.0.130"
+url = "https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_410.48_linux"
+sha256 = "16p3bv1lwmyqpxil8r951h385sy9asc578afrc7lssa68c71ydcj"
+gcc = "gcc7"
+
+["10.1"]
+version = "10.1.243"
+url = "https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run"
+sha256 = "0caxhlv2bdq863dfp6wj7nad66ml81vasq2ayf11psvq2b12vhp7"
+gcc = "gcc7"
+
+["10.2"]
+version = "10.2.89"
+url = "http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run"
+sha256 = "04fasl9sjkb1jvchvqgaqxprnprcz7a8r52249zp2ijarzyhf3an"
+gcc = "gcc7"
+
+["11.0"]
+version = "11.0.3"
+url = "https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux.run"
+sha256 = "1h4c69nfrgm09jzv8xjnjcvpq8n4gnlii17v3wzqry5d13jc8ydh"
+gcc = "gcc9"
+
+["11.1"]
+version = "11.1.1"
+url = "https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux.run"
+sha256 = "13yxv2fgvdnqqbwh1zb80x4xhyfkbajfkwyfpdg9493010kngbiy"
+gcc = "gcc9"
+
+["11.2"]
+version = "11.2.1"
+url = "https://developer.download.nvidia.com/compute/cuda/11.2.1/local_installers/cuda_11.2.1_460.32.03_linux.run"
+sha256 = "sha256-HamMuJfMX1inRFpKZspPaSaGdwbLOvWKZpzc2Nw9F8g="
+gcc = "gcc9"
+
+["11.3"]
+version = "11.3.1"
+url = "https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux.run"
+sha256 = "0d19pwcqin76scbw1s5kgj8n0z1p4v1hyfldqmamilyfxycfm4xd"
+gcc = "gcc9"
+
+["11.4"]
+version = "11.4.2"
+url = "https://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/cuda_11.4.2_470.57.02_linux.run"
+sha256 = "sha256-u9h8oOkT+DdFSnljZ0c1E83e9VUILk2G7Zo4ZZzIHwo="
+gcc = "gcc10"
+
+["11.5"]
+version = "11.5.0"
+url = "https://developer.download.nvidia.com/compute/cuda/11.5.0/local_installers/cuda_11.5.0_495.29.05_linux.run"
+sha256 = "sha256-rgoWk9lJfPPYHmlIlD43lGNpANtxyY1Y7v2sr38aHkw="
+# cuda 11.5 has problems with glibc 2.4 -> keeping gcc10
+# cf. https://forums.developer.nvidia.com/t/cuda-11-5-samples-throw-multiple-error-attribute-malloc-does-not-take-arguments/192750/15
+gcc = "gcc10"
+
+["11.6"]
+version = "11.6.1"
+url = "https://developer.download.nvidia.com/compute/cuda/11.6.1/local_installers/cuda_11.6.1_510.47.03_linux.run"
+sha256 = "sha256-qyGa/OALdCABEyaYZvv/derQN7z8I1UagzjCaEyYTX4="
+gcc = "gcc11"
diff --git a/pkgs/development/compilers/dmd/binary.nix b/pkgs/development/compilers/dmd/binary.nix
index f47e447334b41..fdea39db94be1 100644
--- a/pkgs/development/compilers/dmd/binary.nix
+++ b/pkgs/development/compilers/dmd/binary.nix
@@ -18,8 +18,9 @@ in stdenv.mkDerivation {
   dontConfigure = true;
   dontBuild = true;
 
-  nativeBuildInputs = [ autoPatchelfHook ]
-    ++ lib.optional hostPlatform.isDarwin fixDarwinDylibNames;
+  nativeBuildInputs = lib.optionals hostPlatform.isLinux [
+    autoPatchelfHook
+  ] ++ lib.optional hostPlatform.isDarwin fixDarwinDylibNames;
   propagatedBuildInputs = [ curl tzdata ] ++ lib.optional hostPlatform.isLinux glibc;
 
   installPhase = ''
diff --git a/pkgs/development/compilers/dotnet/default.nix b/pkgs/development/compilers/dotnet/default.nix
index 6ae8240c7f035..87256e95b02ab 100644
--- a/pkgs/development/compilers/dotnet/default.nix
+++ b/pkgs/development/compilers/dotnet/default.nix
@@ -132,67 +132,67 @@ rec {
 
   # v6.0 (lts)
   aspnetcore_6_0 = buildAspNetCore {
-    version = "6.0.3";
+    version = "6.0.4";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/3af854b6-80fb-425a-972f-c7f0d693bf1b/cd458a4feae5a98646ee12a14ab34151/aspnetcore-runtime-6.0.3-linux-x64.tar.gz";
-        sha512  = "9ea54220468d922ef2c40433c4b8c70df6c60d8ea63a3ac1ff5e5ce712606ae5cfe1e57d321b87eff1b5dc34d7823a4b4b964180587383f22d9a0ff5bb3a8c88";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/de3f6658-5d5b-4986-aeb1-7efdf5818437/7df572051df15117a0f52be1b79e1823/aspnetcore-runtime-6.0.4-linux-x64.tar.gz";
+        sha512  = "eaff93db0a4cc0adc2fc54de5e9a6e4b0844398451c06bcf6b2867471b8ed4fd0528ad04fe7150aa5ed306d5e08a5e4219c6029b96da03ad2d1c58e7a0ddacaf";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/1e7933b2-1202-4aeb-bb70-a6f9cecac61a/b12b5666b3d4cf508f8575581abd4033/aspnetcore-runtime-6.0.3-linux-arm64.tar.gz";
-        sha512  = "745586b64d3e01f856c366821f6fb8ca97c55b2a90ba36d528fdf99c98938574805153e7d4fff0560afe8382bea14b35ddeba391a2dc2328285f02e125c9b702";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/ba1662bf-50e6-451a-957f-0d55bc6e5713/921fe0e68428ac47c098e97418d3126a/aspnetcore-runtime-6.0.4-linux-arm64.tar.gz";
+        sha512  = "18ffa72b38dcd01bbfd9f656996e994dbcdb7b6b196771fc498bbaea774ad844f7fd5418487d0a5a7f83a76b3683f8913e22275bc25d66ee0c0d84ea4e279971";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/2cfe2a02-dd59-4cb7-9788-76c620eaa0ff/dfd0d449289a042be9bc62e4466bf350/aspnetcore-runtime-6.0.3-osx-x64.tar.gz";
-        sha512  = "bda83cf36fc9aa62ff3e16a26b5f8f37efa3221ab826467fe26f3072517a428c64e44bc52f8a90f5c77bc60eeeddb8c3d59d2a509999edce3b51b835dd7edf83";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/b39aa0b4-27e2-4fce-bf36-fb6d46f89e5e/6b8ca3b4c7026db460df1d49f5366f1b/aspnetcore-runtime-6.0.4-osx-x64.tar.gz";
+        sha512  = "33b1b24496296242dd78714564e52e6be575f46d681a5093a0aca842aff5e29778cbf31259f11ce395fc9a2368fa6bfde2e12a074ccf310f9b661c0bdaf39d2d";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/d7cf4456-d9ba-4a31-98e9-4681e1b0d8b8/b9c4cfded00e9940756e62c4486f64c6/aspnetcore-runtime-6.0.3-osx-arm64.tar.gz";
-        sha512  = "03d1d4e8a8370856120e045ed4a83b3383d00fb56b5fdaf7db0de8bab5e3de60d03c02deaed6f72bde0d6b0e12511fe1202c4e2c25fdeeb489ad61a5902d71d3";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/d7b60e75-6901-4f68-8943-ce32cadeaf29/f14e40b3e9a69cbd79d47375b16a76e7/aspnetcore-runtime-6.0.4-osx-arm64.tar.gz";
+        sha512  = "9ff8ecc60f70d8cfa53396761610282358aa7bcbd3f013aedc639be7b8f502a8cb121777c7e8a0a7d64d74b99211751ea8a8c1819861b72ad11d80590ba9ed2b";
       };
     };
   };
 
   runtime_6_0 = buildNetRuntime {
-    version = "6.0.3";
+    version = "6.0.4";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/4e766615-57e6-4b1d-a574-25eeb7a71107/9f95f74c33711e085302ffd644ef86ee/dotnet-runtime-6.0.3-linux-x64.tar.gz";
-        sha512  = "083d9e6e72f0d8f175b341f5229277374e630c5358cfd3602fe611aeef59abec715edbe18d62135a5d13a650e99ef49f19b17e8c81663d0b5bee757519bec894";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/5b08d331-15ac-4a53-82a5-522fa45b1b99/65ae300dd160ae0b88b91dd78834ce3e/dotnet-runtime-6.0.4-linux-x64.tar.gz";
+        sha512  = "001487bfb337d0f737c4e3dedc4bc41b3185922c07c07e8f1d47e4578914fdeeed7421d7af2c4bb5e17ebddd05fde4cb9aea1e8145018dcffeaca70c1fa49bbb";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/89b5d16e-cb5e-4e6c-90f6-7332e93d20ae/7a0146aa4fc59154a3256c5196a622c7/dotnet-runtime-6.0.3-linux-arm64.tar.gz";
-        sha512  = "f0f9fb191054dea2e4151a86c3de1a11ce574cc843cde429850db0996c7df403dfa348a277f1af96f13fec718ae77f3be75379ed3829b027e561564ff22c7258";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/3641affa-8bb0-486f-93d9-68adff4f4af7/1e3df9fb86cba7299b9e575233975734/dotnet-runtime-6.0.4-linux-arm64.tar.gz";
+        sha512  = "acbb50f2a1cde2bb8f59ec2059cd90f669748ce0da519ddbb831d8f279c4b896cc7a8f4275fb2c4726c5caf3d6430ee6d9823baa6f65238c7017ecbc2b8a6444";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/1f354e35-ff3f-4de7-b6be-f5001b7c3976/b7c8814ab28a6f00f063440e63903105/dotnet-runtime-6.0.3-osx-x64.tar.gz";
-        sha512  = "98c457cbc0ac8f5f0acd7807bb45726b78e87d4f554fd30123cc8d9568b5341cc5bba16c8e4c85537ec4798d7e4d7f2f11701d2045b124f1b36bca75d80458e8";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/c0bc0428-852d-4884-b536-3d0969a400ba/fe0a9a221c3e665e88b7020633f2cf8e/dotnet-runtime-6.0.4-osx-x64.tar.gz";
+        sha512  = "7a798ce54880533151cc9290129e1a6224e81e657026e5be580ee24742d54e8e8e5f8f3bdee2cb94d5129082e3a2ffd1460f490abb848aaf3558e584e2e2df43";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/03047609-269e-4ca6-bf2e-406c496b27e3/3b19ad4d3fbc5d9a92f436db13e9e3d1/dotnet-runtime-6.0.3-osx-arm64.tar.gz";
-        sha512  = "1debd4acab3c6408c849323e6dfba28a626850c40f93a0debe46c54f0c0b39526f4118d5b2bcf0307efeba0bc2656a92187a685400095ae078227698a0aabfb3";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/dd2f6b72-bf47-4ae5-8a3d-4d394569cc34/87d408439ac5feffe2abf622dbfa5084/dotnet-runtime-6.0.4-osx-arm64.tar.gz";
+        sha512  = "3070af5d9dc44820dc93ca89489f1dfa8024958f64a9d62fafddb49fa16325f0845cc53027703495dc524515e613f3e7701ef148da06653070cb2e3928fb0aca";
       };
     };
   };
 
   sdk_6_0 = buildNetSdk {
-    version = "6.0.201";
+    version = "6.0.202";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/c505a449-9ecf-4352-8629-56216f521616/bd6807340faae05b61de340c8bf161e8/dotnet-sdk-6.0.201-linux-x64.tar.gz";
-        sha512  = "a4d96b6ca2abb7d71cc2c64282f9bd07cedc52c03d8d6668346ae0cd33a9a670d7185ab0037c8f0ecd6c212141038ed9ea9b19a188d1df2aae10b2683ce818ce";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/9d8c7137-2091-4fc6-a419-60ba59c8b9de/db0c5cda94f31d2260d369123de32d59/dotnet-sdk-6.0.202-linux-x64.tar.gz";
+        sha512  = "81e9c368d445d9e92e3af471d52dc2aa05e3ecb75ce95c13a2ed1d117852dae43d23d913bbe92eab730aef7f38a14488a1ac65c3b79444026a629647322c5798";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/33c6e1e3-e81f-44e8-9de8-91934fba3c94/9105f95a9e37cda6bd0c33651be2b90a/dotnet-sdk-6.0.201-linux-arm64.tar.gz";
-        sha512  = "2ea443c27ab7ca9d566e4df0e842063642394fd22fe2a8620371171c8207ae6a4a72c8c54fc6af5b6b053be25cf9c09a74504f08b963e5bd84544619aed9afc2";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/952f5525-7227-496f-85e5-09cadfb44629/eefd0f6eb8f809bfaf4f0661809ed826/dotnet-sdk-6.0.202-linux-arm64.tar.gz";
+        sha512  = "2d0021bb4cd221ffba6888dbd6300e459f45f4f9d3cf7323f3b97ee0f093ef678f5a36d1c982296f4e15bbcbd7275ced72c3e9b2fc754039ba663d0612ffd866";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/cecaa095-3254-4987-b105-6bb9b594a89c/df29881aea827565a96d5e47dc337749/dotnet-sdk-6.0.201-osx-x64.tar.gz";
-        sha512  = "1df27ca5a1db1a8712acd95083aa00ec7b266618770e164d6460d0cf781b3643a7365ef35232140c83b588f7aa4e2d7e5f5b6d627f1851b2d0ec197172f9fb4d";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/1a014dee-ff5f-48e3-a817-82b9bd536b56/fed3a710f5e0add13844a6ce400775a1/dotnet-sdk-6.0.202-osx-x64.tar.gz";
+        sha512  = "ff7df20ce9054ed50d521eba88e063422efa4d48cb3117cf733cc6ecea24012c2ac34f6df10d88f64fe7a952bb96455a3c2eb877f1d50c0b7bcaedf11f98ce82";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/628be5e6-7fc7-42b6-99c9-ea46fbcc3d14/d94bb4198af2d5013c75b1c70751ec8f/dotnet-sdk-6.0.201-osx-arm64.tar.gz";
-        sha512  = "0796a81339788fbc160885548983889dcffd26a5c0ac935b497b290ae99920386f3929cebfbef9bb22f644a207ba329cf8b90ffe7bbb49d1d99d0d8a05ce50c9";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/032fc69b-f437-4d17-9e6c-c204ce18a0b0/76386390762a9ba205666a6e45a2ac47/dotnet-sdk-6.0.202-osx-arm64.tar.gz";
+        sha512  = "8bf9ff3f89ac0f2d04b09d3f5df72efeac8007b9e33980c9c80eb735d050275a5594b11d902d0304ac9967111971bcd690be3adf34d4acbef6d247e8f2071f60";
       };
     };
   };
diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix
index 1edf6e5ce7f18..be194039e9285 100644
--- a/pkgs/development/compilers/elm/default.nix
+++ b/pkgs/development/compilers/elm/default.nix
@@ -80,11 +80,23 @@ let
       # We need attoparsec < 0.14 to build elm for now
       attoparsec = self.attoparsec_0_13_2_5;
 
+      # aeson 2.0.3.0 does not build with attoparsec_0_13_2_5
+      aeson = self.aeson_1_5_6_0;
+
       # Needed for elm-format
       indents = self.callPackage ./packages/indents.nix {};
       bimap = self.callPackage ./packages/bimap.nix {};
       avh4-lib = doJailbreak (self.callPackage ./packages/avh4-lib.nix {});
       elm-format-lib = doJailbreak (self.callPackage ./packages/elm-format-lib.nix {});
+      # We need tasty-hspec < 1.1.7 and hspec-golden < 0.2 to build elm-format-lib
+      tasty-hspec = self.tasty-hspec_1_1_6;
+      hspec-golden = self.hspec-golden_0_1_0_3;
+
+      # We need hspec hspec_core, hspec_discover < 2.8 for tasty-hspec == 1.1.6
+      hspec = self.hspec_2_7_10;
+      hspec-core = self.hspec-core_2_7_10;
+      hspec-discover = self.hspec-discover_2_7_10;
+
       elm-format-test-lib = self.callPackage ./packages/elm-format-test-lib.nix {};
       elm-format-markdown = self.callPackage ./packages/elm-format-markdown.nix {};
     };
diff --git a/pkgs/development/compilers/fennel/default.nix b/pkgs/development/compilers/fennel/default.nix
index ec6b3d619e1c7..e449b4ef098ea 100644
--- a/pkgs/development/compilers/fennel/default.nix
+++ b/pkgs/development/compilers/fennel/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fennel";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromSourcehut {
     owner = "~technomancy";
     repo = pname;
     rev = version;
-    sha256 = "sha256-HhxFTWC1gBY76pQzhn6EdgYHpYQr9zkUox0r4YC7mTQ=";
+    sha256 = "sha256-3Pfl/KNwuGCkZjG/FlF6K2IQHwJQbWsCBmJpLizr1ng=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/development/compilers/gcc/10/default.nix b/pkgs/development/compilers/gcc/10/default.nix
index a26aaf771af38..88d4831812fdf 100644
--- a/pkgs/development/compilers/gcc/10/default.nix
+++ b/pkgs/development/compilers/gcc/10/default.nix
@@ -8,12 +8,7 @@
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
-, # N.B. the defult is intentionally not from an `isStatic`. See
-  # https://gcc.gnu.org/install/configure.html - this is about target
-  # platform libraries not host platform ones unlike normal. But since
-  # we can't rebuild those without also rebuilding the compiler itself,
-  # we opt to always build everything unlike our usual policy.
-  enableShared ? true
+, enableShared ? !stdenv.targetPlatform.isStatic
 , enableLTO ? !stdenv.hostPlatform.isStatic
 , texinfo ? null
 , perl ? null # optional, for texi2pod (then pod2man)
@@ -61,8 +56,8 @@ let majorVersion = "10";
 
     inherit (stdenv) buildPlatform hostPlatform targetPlatform;
 
-    patches =
-         optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
+    patches = [ ./gcc10-asan-glibc-2.34.patch ]
+      ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
       ++ optional noSysDirs ../no-sys-dirs.patch
       ++ optional (noSysDirs && hostPlatform.isRiscV) ../no-sys-dirs-riscv.patch
       /* ++ optional (hostPlatform != buildPlatform) (fetchpatch { # XXX: Refine when this should be applied
@@ -76,7 +71,12 @@ let majorVersion = "10";
       # Obtain latest patch with ../update-mcfgthread-patches.sh
       ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch
 
-      ++ [ ../libsanitizer-no-cyclades.patch ];
+      ++ [ ../libsanitizer-no-cyclades.patch ]
+
+      ++ optional (buildPlatform.system == "aarch64-darwin" && targetPlatform != buildPlatform) (fetchpatch {
+        url = "https://raw.githubusercontent.com/richard-vd/musl-cross-make/5e9e87f06fc3220e102c29d3413fbbffa456fcd6/patches/gcc-${version}/0008-darwin-aarch64-self-host-driver.patch";
+        sha256 = "sha256-XtykrPd5h/tsnjY1wGjzSOJ+AyyNLsfnjuOZ5Ryq9vA=";
+      });
 
     /* Cross-gcc settings (build == host != target) */
     crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
@@ -266,7 +266,7 @@ stdenv.mkDerivation ({
   };
 
   enableParallelBuilding = true;
-  inherit enableMultilib;
+  inherit enableMultilib enableShared;
 
   inherit (stdenv) is64bit;
 
@@ -288,6 +288,7 @@ stdenv.mkDerivation ({
     maintainers = lib.teams.gcc.members;
 
     platforms = lib.platforms.unix;
+    badPlatforms = [ "aarch64-darwin" ];
   };
 }
 
diff --git a/pkgs/development/compilers/gcc/10/gcc10-asan-glibc-2.34.patch b/pkgs/development/compilers/gcc/10/gcc10-asan-glibc-2.34.patch
new file mode 100644
index 0000000000000..d6d4f41ffdf87
--- /dev/null
+++ b/pkgs/development/compilers/gcc/10/gcc10-asan-glibc-2.34.patch
@@ -0,0 +1,70 @@
+From 950bac27d63c1c2ac3a6ed867692d6a13f21feb3 Mon Sep 17 00:00:00 2001
+From: Jakub Jelinek <jakub@redhat.com>
+Date: Sat, 17 Apr 2021 11:27:14 +0200
+Subject: [PATCH] sanitizer: Fix asan against glibc 2.34 [PR100114]
+
+As mentioned in the PR, SIGSTKSZ is no longer a compile time constant in
+glibc 2.34 and later, so
+static const uptr kAltStackSize = SIGSTKSZ * 4;
+needs dynamic initialization, but is used by a function called indirectly
+from .preinit_array and therefore before the variable is constructed.
+This results in using 0 size instead and all asan instrumented programs
+die with:
+==91==ERROR: AddressSanitizer failed to allocate 0x0 (0) bytes of SetAlternateSignalStack (error code: 22)
+
+Here is a cherry-pick from upstream to fix this.
+
+2021-04-17  Jakub Jelinek  <jakub@redhat.com>
+
+	PR sanitizer/100114
+	* sanitizer_common/sanitizer_posix_libcdep.cpp: Cherry-pick
+	llvm-project revisions 82150606fb11d28813ae6da1101f5bda638165fe
+	and b93629dd335ffee2fc4b9b619bf86c3f9e6b0023.
+
+(cherry picked from commit d9f462fb372fb02da032cefd6b091d7582c425ae)
+---
+ .../sanitizer_common/sanitizer_posix_libcdep.cpp    | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
+index 304b3a01a08..ac88fbe074e 100644
+--- a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
++++ b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
+@@ -169,7 +169,11 @@ bool SupportsColoredOutput(fd_t fd) {
+ 
+ #if !SANITIZER_GO
+ // TODO(glider): different tools may require different altstack size.
+-static const uptr kAltStackSize = SIGSTKSZ * 4;  // SIGSTKSZ is not enough.
++static uptr GetAltStackSize() {
++  // SIGSTKSZ is not enough.
++  static const uptr kAltStackSize = SIGSTKSZ * 4;
++  return kAltStackSize;
++}
+ 
+ void SetAlternateSignalStack() {
+   stack_t altstack, oldstack;
+@@ -180,10 +184,9 @@ void SetAlternateSignalStack() {
+   // TODO(glider): the mapped stack should have the MAP_STACK flag in the
+   // future. It is not required by man 2 sigaltstack now (they're using
+   // malloc()).
+-  void* base = MmapOrDie(kAltStackSize, __func__);
+-  altstack.ss_sp = (char*) base;
++  altstack.ss_size = GetAltStackSize();
++  altstack.ss_sp = (char *)MmapOrDie(altstack.ss_size, __func__);
+   altstack.ss_flags = 0;
+-  altstack.ss_size = kAltStackSize;
+   CHECK_EQ(0, sigaltstack(&altstack, nullptr));
+ }
+ 
+@@ -191,7 +194,7 @@ void UnsetAlternateSignalStack() {
+   stack_t altstack, oldstack;
+   altstack.ss_sp = nullptr;
+   altstack.ss_flags = SS_DISABLE;
+-  altstack.ss_size = kAltStackSize;  // Some sane value required on Darwin.
++  altstack.ss_size = GetAltStackSize();  // Some sane value required on Darwin.
+   CHECK_EQ(0, sigaltstack(&altstack, &oldstack));
+   UnmapOrDie(oldstack.ss_sp, oldstack.ss_size);
+ }
+-- 
+2.27.0
+
diff --git a/pkgs/development/compilers/gcc/11/default.nix b/pkgs/development/compilers/gcc/11/default.nix
index b78ca339fb853..79e682e88c4eb 100644
--- a/pkgs/development/compilers/gcc/11/default.nix
+++ b/pkgs/development/compilers/gcc/11/default.nix
@@ -8,12 +8,7 @@
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
-, # N.B. the defult is intentionally not from an `isStatic`. See
-  # https://gcc.gnu.org/install/configure.html - this is about target
-  # platform libraries not host platform ones unlike normal. But since
-  # we can't rebuild those without also rebuilding the compiler itself,
-  # we opt to always build everything unlike our usual policy.
-  enableShared ? true
+, enableShared ? !stdenv.targetPlatform.isStatic
 , enableLTO ? !stdenv.hostPlatform.isStatic
 , texinfo ? null
 , perl ? null # optional, for texi2pod (then pod2man)
@@ -269,7 +264,7 @@ stdenv.mkDerivation ({
   };
 
   enableParallelBuilding = true;
-  inherit enableMultilib;
+  inherit enableShared enableMultilib;
 
   inherit (stdenv) is64bit;
 
diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix
index bc7868cc46060..8cd0d3c9ce80f 100644
--- a/pkgs/development/compilers/gcc/4.8/default.nix
+++ b/pkgs/development/compilers/gcc/4.8/default.nix
@@ -8,12 +8,7 @@
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
-, # N.B. the defult is intentionally not from an `isStatic`. See
-  # https://gcc.gnu.org/install/configure.html - this is about target
-  # platform libraries not host platform ones unlike normal. But since
-  # we can't rebuild those without also rebuilding the compiler itself,
-  # we opt to always build everything unlike our usual policy.
-  enableShared ? true
+, enableShared ? !stdenv.targetPlatform.isStatic
 , enableLTO ? !stdenv.hostPlatform.isStatic
 , texinfo ? null
 , perl ? null # optional, for texi2pod (then pod2man); required for Java
@@ -295,7 +290,7 @@ stdenv.mkDerivation ({
   };
 
   enableParallelBuilding = true;
-  inherit enableMultilib;
+  inherit enableShared enableMultilib;
 
   inherit (stdenv) is64bit;
 
@@ -317,7 +312,7 @@ stdenv.mkDerivation ({
     maintainers = with lib.maintainers; [ veprbl ];
 
     platforms = lib.platforms.unix;
-    badPlatforms = [ "x86_64-darwin" ];
+    badPlatforms = lib.platforms.darwin;
   };
 }
 
diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix
index bb1a3dd7d6364..b3d0f8d5d502e 100644
--- a/pkgs/development/compilers/gcc/4.9/default.nix
+++ b/pkgs/development/compilers/gcc/4.9/default.nix
@@ -8,12 +8,7 @@
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
-, # N.B. the defult is intentionally not from an `isStatic`. See
-  # https://gcc.gnu.org/install/configure.html - this is about target
-  # platform libraries not host platform ones unlike normal. But since
-  # we can't rebuild those without also rebuilding the compiler itself,
-  # we opt to always build everything unlike our usual policy.
-  enableShared ? true
+, enableShared ? !stdenv.targetPlatform.isStatic
 , enableLTO ? !stdenv.hostPlatform.isStatic
 , texinfo ? null
 , perl ? null # optional, for texi2pod (then pod2man); required for Java
@@ -311,7 +306,7 @@ stdenv.mkDerivation ({
   };
 
   enableParallelBuilding = true;
-  inherit enableMultilib;
+  inherit enableShared enableMultilib;
 
   inherit (stdenv) is64bit;
 
@@ -333,7 +328,7 @@ stdenv.mkDerivation ({
     maintainers = with lib.maintainers; [ veprbl ];
 
     platforms = lib.platforms.unix;
-    badPlatforms = [ "x86_64-darwin" ];
+    badPlatforms = lib.platforms.darwin;
   };
 }
 
diff --git a/pkgs/development/compilers/gcc/6/default.nix b/pkgs/development/compilers/gcc/6/default.nix
index 7548ec56c7599..62b46df1ab00b 100644
--- a/pkgs/development/compilers/gcc/6/default.nix
+++ b/pkgs/development/compilers/gcc/6/default.nix
@@ -9,12 +9,7 @@
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
-, # N.B. the defult is intentionally not from an `isStatic`. See
-  # https://gcc.gnu.org/install/configure.html - this is about target
-  # platform libraries not host platform ones unlike normal. But since
-  # we can't rebuild those without also rebuilding the compiler itself,
-  # we opt to always build everything unlike our usual policy.
-  enableShared ? true
+, enableShared ? !stdenv.targetPlatform.isStatic
 , enableLTO ? !stdenv.hostPlatform.isStatic
 , texinfo ? null
 , flex
@@ -79,6 +74,7 @@ let majorVersion = "6";
     ] ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
       ++ optional noSysDirs ../no-sys-dirs.patch
       ++ optional langAda ../gnat-cflags.patch
+      ++ optional langAda ./gnat-glibc234.patch
       ++ optional langFortran ../gfortran-driving.patch
       ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch
 
@@ -325,7 +321,7 @@ stdenv.mkDerivation ({
   };
 
   enableParallelBuilding = true;
-  inherit enableMultilib;
+  inherit enableShared enableMultilib;
 
   inherit (stdenv) is64bit;
 
@@ -345,6 +341,7 @@ stdenv.mkDerivation ({
     '';
 
     platforms = lib.platforms.unix;
+    badPlatforms = [ "aarch64-darwin" ];
   };
 }
 
diff --git a/pkgs/development/compilers/gcc/6/gnat-glibc234.patch b/pkgs/development/compilers/gcc/6/gnat-glibc234.patch
new file mode 100644
index 0000000000000..2d29cd7fa77f5
--- /dev/null
+++ b/pkgs/development/compilers/gcc/6/gnat-glibc234.patch
@@ -0,0 +1,30 @@
+Fix build with glibc 2.34.  Adapted from:
+https://github.com/gcc-mirror/gcc/commit/331763de7d4850702a0f67298f36017c73cdb103
+--- a/gcc/ada/init.c
++++ b/gcc/ada/init.c
+@@ -579,12 +579,8 @@
+ 
+ #ifndef __ia64__
+ #define HAVE_GNAT_ALTERNATE_STACK 1
+-/* This must be in keeping with System.OS_Interface.Alternate_Stack_Size.
+-   It must be larger than MINSIGSTKSZ and hopefully near 2 * SIGSTKSZ.  */
+-# if 16 * 1024 < MINSIGSTKSZ
+-#  error "__gnat_alternate_stack too small"
+-# endif
+-char __gnat_alternate_stack[16 * 1024];
++/* This must be in keeping with System.OS_Interface.Alternate_Stack_Size.  */
++char __gnat_alternate_stack[32 * 1024];
+ #endif
+ 
+ #ifdef __XENO__
+--- a/gcc/ada/s-osinte-linux.ads
++++ b/gcc/ada/s-osinte-linux.ads
+@@ -328,7 +328,7 @@
+       oss : access stack_t) return int;
+    pragma Import (C, sigaltstack, "sigaltstack");
+ 
+-   Alternate_Stack_Size : constant := 16 * 1024;
++   Alternate_Stack_Size : constant := 32 * 1024;
+    --  This must be in keeping with init.c:__gnat_alternate_stack
+ 
+    Alternate_Stack : aliased char_array (1 .. Alternate_Stack_Size);
diff --git a/pkgs/development/compilers/gcc/7/default.nix b/pkgs/development/compilers/gcc/7/default.nix
index dfac97104eb6a..1abf14c8a8c7a 100644
--- a/pkgs/development/compilers/gcc/7/default.nix
+++ b/pkgs/development/compilers/gcc/7/default.nix
@@ -7,12 +7,7 @@
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
-, # N.B. the defult is intentionally not from an `isStatic`. See
-  # https://gcc.gnu.org/install/configure.html - this is about target
-  # platform libraries not host platform ones unlike normal. But since
-  # we can't rebuild those without also rebuilding the compiler itself,
-  # we opt to always build everything unlike our usual policy.
-  enableShared ? true
+, enableShared ? !stdenv.targetPlatform.isStatic
 , enableLTO ? !stdenv.hostPlatform.isStatic
 , texinfo ? null
 , perl ? null # optional, for texi2pod (then pod2man)
@@ -63,6 +58,9 @@ let majorVersion = "7";
         ./riscv-pthread-reentrant.patch
         # https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00297.html
         ./riscv-no-relax.patch
+        # Fix for asan w/glibc-2.34. Although there's no upstream backport to v7,
+        # the patch from gcc 8 seems to work perfectly fine.
+        ./gcc8-asan-glibc-2.34.patch
 
         ./0001-Fix-build-for-glibc-2.31.patch
       ]
@@ -277,7 +275,7 @@ stdenv.mkDerivation ({
   };
 
   enableParallelBuilding = true;
-  inherit enableMultilib;
+  inherit enableShared enableMultilib;
 
   inherit (stdenv) is64bit;
 
@@ -299,6 +297,7 @@ stdenv.mkDerivation ({
     maintainers = lib.teams.gcc.members;
 
     platforms = lib.platforms.unix;
+    badPlatforms = [ "aarch64-darwin" ];
   };
 }
 
diff --git a/pkgs/development/compilers/gcc/7/gcc8-asan-glibc-2.34.patch b/pkgs/development/compilers/gcc/7/gcc8-asan-glibc-2.34.patch
new file mode 100644
index 0000000000000..5645b97c1d898
--- /dev/null
+++ b/pkgs/development/compilers/gcc/7/gcc8-asan-glibc-2.34.patch
@@ -0,0 +1,70 @@
+From ef195a39d0d3b929cc676302d074b42c25460601 Mon Sep 17 00:00:00 2001
+From: Jakub Jelinek <jakub@redhat.com>
+Date: Sat, 17 Apr 2021 11:27:14 +0200
+Subject: [PATCH] sanitizer: Fix asan against glibc 2.34 [PR100114]
+
+As mentioned in the PR, SIGSTKSZ is no longer a compile time constant in
+glibc 2.34 and later, so
+static const uptr kAltStackSize = SIGSTKSZ * 4;
+needs dynamic initialization, but is used by a function called indirectly
+from .preinit_array and therefore before the variable is constructed.
+This results in using 0 size instead and all asan instrumented programs
+die with:
+==91==ERROR: AddressSanitizer failed to allocate 0x0 (0) bytes of SetAlternateSignalStack (error code: 22)
+
+Here is a cherry-pick from upstream to fix this.
+
+2021-04-17  Jakub Jelinek  <jakub@redhat.com>
+
+	PR sanitizer/100114
+	* sanitizer_common/sanitizer_posix_libcdep.cc: Cherry-pick
+	llvm-project revisions 82150606fb11d28813ae6da1101f5bda638165fe
+	and b93629dd335ffee2fc4b9b619bf86c3f9e6b0023.
+
+(cherry picked from commit 950bac27d63c1c2ac3a6ed867692d6a13f21feb3)
+---
+ .../sanitizer_common/sanitizer_posix_libcdep.cc     | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc
+index 1a37118c299..066079b3954 100644
+--- a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc
++++ b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc
+@@ -159,7 +159,11 @@ bool SupportsColoredOutput(fd_t fd) {
+ 
+ #if !SANITIZER_GO
+ // TODO(glider): different tools may require different altstack size.
+-static const uptr kAltStackSize = SIGSTKSZ * 4;  // SIGSTKSZ is not enough.
++static uptr GetAltStackSize() {
++  // SIGSTKSZ is not enough.
++  static const uptr kAltStackSize = SIGSTKSZ * 4;
++  return kAltStackSize;
++}
+ 
+ void SetAlternateSignalStack() {
+   stack_t altstack, oldstack;
+@@ -170,10 +174,9 @@ void SetAlternateSignalStack() {
+   // TODO(glider): the mapped stack should have the MAP_STACK flag in the
+   // future. It is not required by man 2 sigaltstack now (they're using
+   // malloc()).
+-  void* base = MmapOrDie(kAltStackSize, __func__);
+-  altstack.ss_sp = (char*) base;
++  altstack.ss_size = GetAltStackSize();
++  altstack.ss_sp = (char *)MmapOrDie(altstack.ss_size, __func__);
+   altstack.ss_flags = 0;
+-  altstack.ss_size = kAltStackSize;
+   CHECK_EQ(0, sigaltstack(&altstack, nullptr));
+ }
+ 
+@@ -181,7 +184,7 @@ void UnsetAlternateSignalStack() {
+   stack_t altstack, oldstack;
+   altstack.ss_sp = nullptr;
+   altstack.ss_flags = SS_DISABLE;
+-  altstack.ss_size = kAltStackSize;  // Some sane value required on Darwin.
++  altstack.ss_size = GetAltStackSize();  // Some sane value required on Darwin.
+   CHECK_EQ(0, sigaltstack(&altstack, &oldstack));
+   UnmapOrDie(oldstack.ss_sp, oldstack.ss_size);
+ }
+-- 
+2.27.0
+
diff --git a/pkgs/development/compilers/gcc/8/default.nix b/pkgs/development/compilers/gcc/8/default.nix
index 609dfa722a65d..2dd265b648ce0 100644
--- a/pkgs/development/compilers/gcc/8/default.nix
+++ b/pkgs/development/compilers/gcc/8/default.nix
@@ -7,12 +7,7 @@
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
-, # N.B. the defult is intentionally not from an `isStatic`. See
-  # https://gcc.gnu.org/install/configure.html - this is about target
-  # platform libraries not host platform ones unlike normal. But since
-  # we can't rebuild those without also rebuilding the compiler itself,
-  # we opt to always build everything unlike our usual policy.
-  enableShared ? true
+, enableShared ? !stdenv.targetPlatform.isStatic
 , enableLTO ? !stdenv.hostPlatform.isStatic
 , texinfo ? null
 , perl ? null # optional, for texi2pod (then pod2man)
@@ -259,7 +254,7 @@ stdenv.mkDerivation ({
   };
 
   enableParallelBuilding = true;
-  inherit enableMultilib;
+  inherit enableShared enableMultilib;
 
   inherit (stdenv) is64bit;
 
@@ -281,6 +276,7 @@ stdenv.mkDerivation ({
     maintainers = lib.teams.gcc.members;
 
     platforms = lib.platforms.unix;
+    badPlatforms = [ "aarch64-darwin" ];
   };
 }
 
diff --git a/pkgs/development/compilers/gcc/9/default.nix b/pkgs/development/compilers/gcc/9/default.nix
index ea4296826661b..2ecfa1bb1cf08 100644
--- a/pkgs/development/compilers/gcc/9/default.nix
+++ b/pkgs/development/compilers/gcc/9/default.nix
@@ -9,12 +9,7 @@
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
-, # N.B. the defult is intentionally not from an `isStatic`. See
-  # https://gcc.gnu.org/install/configure.html - this is about target
-  # platform libraries not host platform ones unlike normal. But since
-  # we can't rebuild those without also rebuilding the compiler itself,
-  # we opt to always build everything unlike our usual policy.
-  enableShared ? true
+, enableShared ? !stdenv.targetPlatform.isStatic
 , enableLTO ? !stdenv.hostPlatform.isStatic
 , texinfo ? null
 , perl ? null # optional, for texi2pod (then pod2man)
@@ -78,7 +73,7 @@ let majorVersion = "9";
       # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96796
       #
       # This patch can most likely be removed by a post 9.3.0-release.
-      [ ./avoid-cycling-subreg-reloads.patch ]
+      [ ./avoid-cycling-subreg-reloads.patch ./gcc9-asan-glibc-2.34.patch ]
       ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
       ++ optional targetPlatform.isNetBSD ../libstdc++-netbsd-ctypes.patch
       ++ optional noSysDirs ../no-sys-dirs.patch
@@ -88,6 +83,11 @@ let majorVersion = "9";
         sha256 = ""; # TODO: uncomment and check hash when available.
       }) */
       ++ optional langAda ../gnat-cflags.patch
+      ++ optional langAda (fetchpatch {
+        name = "gnat-glibc-234.diff";
+        url = "https://github.com/gcc-mirror/gcc/commit/331763de7d4850702a0f67298f36017c73cdb103.diff";
+        sha256 = "eS4B7vJasnv2N+5v5yB8/iDpKPX8CJDAy2xabWWj+aU=";
+      })
       ++ optional langD ../libphobos.patch
       ++ optional langFortran ../gfortran-driving.patch
       ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
@@ -285,7 +285,7 @@ stdenv.mkDerivation ({
   };
 
   enableParallelBuilding = true;
-  inherit enableMultilib;
+  inherit enableShared enableMultilib;
 
   inherit (stdenv) is64bit;
 
@@ -307,6 +307,7 @@ stdenv.mkDerivation ({
     maintainers = lib.teams.gcc.members;
 
     platforms = lib.platforms.unix;
+    badPlatforms = [ "aarch64-darwin" ];
   };
 }
 
diff --git a/pkgs/development/compilers/gcc/9/gcc9-asan-glibc-2.34.patch b/pkgs/development/compilers/gcc/9/gcc9-asan-glibc-2.34.patch
new file mode 100644
index 0000000000000..1aea1f9b18a14
--- /dev/null
+++ b/pkgs/development/compilers/gcc/9/gcc9-asan-glibc-2.34.patch
@@ -0,0 +1,70 @@
+From 3d0135bf3be416bbe2531dc763d19b749eb2b856 Mon Sep 17 00:00:00 2001
+From: Jakub Jelinek <jakub@redhat.com>
+Date: Sat, 17 Apr 2021 11:27:14 +0200
+Subject: [PATCH] sanitizer: Fix asan against glibc 2.34 [PR100114]
+
+As mentioned in the PR, SIGSTKSZ is no longer a compile time constant in
+glibc 2.34 and later, so
+static const uptr kAltStackSize = SIGSTKSZ * 4;
+needs dynamic initialization, but is used by a function called indirectly
+from .preinit_array and therefore before the variable is constructed.
+This results in using 0 size instead and all asan instrumented programs
+die with:
+==91==ERROR: AddressSanitizer failed to allocate 0x0 (0) bytes of SetAlternateSignalStack (error code: 22)
+
+Here is a cherry-pick from upstream to fix this.
+
+2021-04-17  Jakub Jelinek  <jakub@redhat.com>
+
+	PR sanitizer/100114
+	* sanitizer_common/sanitizer_posix_libcdep.cc: Cherry-pick
+	llvm-project revisions 82150606fb11d28813ae6da1101f5bda638165fe
+	and b93629dd335ffee2fc4b9b619bf86c3f9e6b0023.
+
+(cherry picked from commit 950bac27d63c1c2ac3a6ed867692d6a13f21feb3)
+---
+ .../sanitizer_common/sanitizer_posix_libcdep.cc     | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc
+index d2fd76a6d36..1917e29ced2 100644
+--- a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc
++++ b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc
+@@ -169,7 +169,11 @@ bool SupportsColoredOutput(fd_t fd) {
+ 
+ #if !SANITIZER_GO
+ // TODO(glider): different tools may require different altstack size.
+-static const uptr kAltStackSize = SIGSTKSZ * 4;  // SIGSTKSZ is not enough.
++static uptr GetAltStackSize() {
++  // SIGSTKSZ is not enough.
++  static const uptr kAltStackSize = SIGSTKSZ * 4;
++  return kAltStackSize;
++}
+ 
+ void SetAlternateSignalStack() {
+   stack_t altstack, oldstack;
+@@ -180,10 +184,9 @@ void SetAlternateSignalStack() {
+   // TODO(glider): the mapped stack should have the MAP_STACK flag in the
+   // future. It is not required by man 2 sigaltstack now (they're using
+   // malloc()).
+-  void* base = MmapOrDie(kAltStackSize, __func__);
+-  altstack.ss_sp = (char*) base;
++  altstack.ss_size = GetAltStackSize();
++  altstack.ss_sp = (char *)MmapOrDie(altstack.ss_size, __func__);
+   altstack.ss_flags = 0;
+-  altstack.ss_size = kAltStackSize;
+   CHECK_EQ(0, sigaltstack(&altstack, nullptr));
+ }
+ 
+@@ -191,7 +194,7 @@ void UnsetAlternateSignalStack() {
+   stack_t altstack, oldstack;
+   altstack.ss_sp = nullptr;
+   altstack.ss_flags = SS_DISABLE;
+-  altstack.ss_size = kAltStackSize;  // Some sane value required on Darwin.
++  altstack.ss_size = GetAltStackSize();  // Some sane value required on Darwin.
+   CHECK_EQ(0, sigaltstack(&altstack, &oldstack));
+   UnmapOrDie(oldstack.ss_sp, oldstack.ss_size);
+ }
+-- 
+2.27.0
+
diff --git a/pkgs/development/compilers/gcc/builder.sh b/pkgs/development/compilers/gcc/builder.sh
index e6d41d7b29ab7..9d0514f175901 100644
--- a/pkgs/development/compilers/gcc/builder.sh
+++ b/pkgs/development/compilers/gcc/builder.sh
@@ -222,6 +222,10 @@ postInstall() {
     moveToOutput "${targetConfig+$targetConfig/}lib/lib*.dll.a" "${!outputLib}"
     moveToOutput "share/gcc-*/python" "${!outputLib}"
 
+    if [ -z "$enableShared" ]; then
+        moveToOutput "${targetConfig+$targetConfig/}lib/lib*.a" "${!outputLib}"
+    fi
+
     for i in "${!outputLib}/${targetConfig}"/lib/*.{la,py}; do
         substituteInPlace "$i" --replace "$out" "${!outputLib}"
     done
diff --git a/pkgs/development/compilers/ghc/8.10.7-binary.nix b/pkgs/development/compilers/ghc/8.10.7-binary.nix
index 7b10f60affda1..bf3ace0240c5d 100644
--- a/pkgs/development/compilers/ghc/8.10.7-binary.nix
+++ b/pkgs/development/compilers/ghc/8.10.7-binary.nix
@@ -418,7 +418,6 @@ stdenv.mkDerivation rec {
     # long as the evaluator runs on a platform that supports
     # `pkgsMusl`.
     platforms = builtins.attrNames ghcBinDists.${distSetName};
-    hydraPlatforms = builtins.filter (p: minimal || p != "aarch64-linux") platforms;
     maintainers = with lib.maintainers; [
       prusnak
       domenkozar
diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix
index fd14501097c29..cdf4faf3ffc7c 100644
--- a/pkgs/development/compilers/ghc/8.10.7.nix
+++ b/pkgs/development/compilers/ghc/8.10.7.nix
@@ -212,7 +212,7 @@ stdenv.mkDerivation (rec {
       url = "https://gitlab.haskell.org/ghc/ghc/-/commit/97d0b0a367e4c6a52a17c3299439ac7de129da24.patch";
       sha256 = "0r4zjj0bv1x1m2dgxp3adsf2xkr94fjnyj1igsivd9ilbs5ja0b5";
     })
-  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+  ] ++ lib.optionals (stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64) [
 
     # Prevent the paths module from emitting symbols that we don't use
     # when building with separate outputs.
diff --git a/pkgs/development/compilers/ghc/9.0.2.nix b/pkgs/development/compilers/ghc/9.0.2.nix
index 04e29ed668616..a4cefe7294d89 100644
--- a/pkgs/development/compilers/ghc/9.0.2.nix
+++ b/pkgs/development/compilers/ghc/9.0.2.nix
@@ -5,6 +5,7 @@
 , autoconf, automake, coreutils, fetchurl, perl, python3, m4, sphinx, xattr
 , autoSignDarwinBinariesHook
 , bash
+, fetchpatch
 
 , libiconv ? null, ncurses
 , glibcLocales ? null
@@ -182,6 +183,26 @@ stdenv.mkDerivation (rec {
 
   outputs = [ "out" "doc" ];
 
+  patches = [
+    # Add flag that fixes C++ exception handling; opt-in. Merged in 9.4 and 9.2.2.
+    # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/7423
+    (fetchpatch {
+      name = "ghc-9.0.2-fcompact-unwind.patch";
+      # Note that the test suite is not packaged.
+      url = "https://gitlab.haskell.org/ghc/ghc/-/commit/c6132c782d974a7701e7f6447bdcd2bf6db4299a.patch?merge_request_iid=7423";
+      sha256 = "sha256-b4feGZIaKDj/UKjWTNY6/jH4s2iate0wAgMxG3rAbZI=";
+    })
+  ] ++ lib.optionals (stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64) [
+
+    # Prevent the paths module from emitting symbols that we don't use
+    # when building with separate outputs.
+    #
+    # These cause problems as they're not eliminated by GHC's dead code
+    # elimination on aarch64-darwin. (see
+    # https://github.com/NixOS/nixpkgs/issues/140774 for details).
+    ./cabal-paths.patch
+  ];
+
   postPatch = "patchShebangs .";
 
   # GHC needs the locale configured during the Haddock phase.
diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix
index 07ea6bda24582..a2afb7400c202 100644
--- a/pkgs/development/compilers/ghc/head.nix
+++ b/pkgs/development/compilers/ghc/head.nix
@@ -42,7 +42,7 @@
   # platform). Static libs are always built.
   enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
 
-, version ? "9.3.20211111"
+, version ? "9.3.20220406"
 , # What flavour to build. An empty string indicates no
   # specific flavour and falls back to ghc default values.
   ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
@@ -186,8 +186,8 @@ stdenv.mkDerivation (rec {
 
   src = fetchgit {
     url = "https://gitlab.haskell.org/ghc/ghc.git/";
-    rev = "cc635da167fdec2dead0603b0026cb841f0aa645";
-    sha256 = "1lj76l546zriwkcn2r7i5a4j35bx9fh5iggwfz2xvhh8aq8j2i46";
+    rev = "c44432db254d2fc960d7864e080cb50e65dfa7c6";
+    sha256 = "0xagijcfcw3a19s6dmh6z7085lvkrakys3lcby4ncq1v0syh507h";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/compilers/ghcjs/8.10/common-overrides.nix b/pkgs/development/compilers/ghcjs/8.10/common-overrides.nix
index a83795635b906..e1671d01ffe7a 100644
--- a/pkgs/development/compilers/ghcjs/8.10/common-overrides.nix
+++ b/pkgs/development/compilers/ghcjs/8.10/common-overrides.nix
@@ -1,8 +1,37 @@
-{ haskellLib }:
+{ haskellLib, fetchpatch, buildPackages }:
 
-let inherit (haskellLib) addBuildTools appendConfigureFlag dontHaddock doJailbreak;
+let inherit (haskellLib) addBuildTools appendConfigureFlag dontHaddock doJailbreak markUnbroken overrideCabal;
 in self: super: {
-  ghcjs = doJailbreak (super.ghcjs.overrideScope (self: super: {
+  ghcjs = overrideCabal (drv: {
+    # Jailbreak and patch can be dropped after https://github.com/ghcjs/ghcjs/pull/833
+    jailbreak = true;
+    patches = drv.patches or [] ++ [
+      (fetchpatch {
+        name = "ghcjs-aeson-2.0.patch";
+        url = "https://github.com/ghcjs/ghcjs/commit/9ef1f92d740e8503d15d91699f57db147f0474cc.patch";
+        sha256 = "0cgxcy6b5870bv4kj54n3bzcqinh4gl4w4r78dg43h2mblhkzbnj";
+      })
+    ];
+  }) (super.ghcjs.overrideScope (self: super: {
     optparse-applicative = self.optparse-applicative_0_15_1_0;
+    webdriver = overrideCabal (drv: {
+      patches = drv.patches or [] ++ [
+        # Patch for aeson 2.0 which adds a lower bound on it, so we don't apply it globally
+        # Pending https://github.com/kallisti-dev/hs-webdriver/pull/183
+        (fetchpatch {
+          name = "webdriver-aeson-2.0.patch";
+          url = "https://github.com/georgefst/hs-webdriver/commit/90ded63218da17fc0bd9f9b208b0b3f60b135757.patch";
+          sha256 = "1xvkk51r2v020xlmci5n1fd1na8raa332lrj7r9f0ijsyfvnqlv0";
+          excludes = [ "webdriver.cabal" ];
+        })
+      ];
+      # Fix line endings so patch applies
+      prePatch = drv.prePatch or "" + ''
+        find . -name '*.hs' | xargs "${buildPackages.dos2unix}/bin/dos2unix"
+      '';
+
+      jailbreak = true;
+      broken = false;
+    }) super.webdriver;
   }));
 }
diff --git a/pkgs/development/compilers/ghcjs/8.10/default.nix b/pkgs/development/compilers/ghcjs/8.10/default.nix
index 2fbf7ded9c401..78d757efee3c6 100644
--- a/pkgs/development/compilers/ghcjs/8.10/default.nix
+++ b/pkgs/development/compilers/ghcjs/8.10/default.nix
@@ -2,6 +2,7 @@
 , pkgsHostHost
 , callPackage
 , fetchgit
+, fetchpatch
 , ghcjsSrcJson ? null
 , ghcjsSrc ? fetchgit (lib.importJSON ghcjsSrcJson)
 , bootPkgs
@@ -36,7 +37,7 @@ let
       })
 
       (callPackage ./common-overrides.nix {
-        inherit haskellLib;
+        inherit haskellLib fetchpatch buildPackages;
       })
       ghcjsDepOverrides
     ]);
diff --git a/pkgs/development/compilers/go-jsonnet/default.nix b/pkgs/development/compilers/go-jsonnet/default.nix
index 25bedd397b2fe..3c4d90ccb054c 100644
--- a/pkgs/development/compilers/go-jsonnet/default.nix
+++ b/pkgs/development/compilers/go-jsonnet/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub, testVersion }:
+{ lib, buildGoModule, fetchFromGitHub, testers }:
 
 let self = buildGoModule rec {
   pname = "go-jsonnet";
@@ -17,7 +17,7 @@ let self = buildGoModule rec {
 
   subPackages = [ "cmd/jsonnet*" ];
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = self;
     version = "v${version}";
   };
diff --git a/pkgs/development/compilers/go/1.16.nix b/pkgs/development/compilers/go/1.16.nix
index add1e70bbe3dc..ffda9f498351f 100644
--- a/pkgs/development/compilers/go/1.16.nix
+++ b/pkgs/development/compilers/go/1.16.nix
@@ -7,7 +7,6 @@
 , perl
 , which
 , pkg-config
-, patch
 , procps
 , pcre
 , cacert
@@ -63,7 +62,7 @@ stdenv.mkDerivation rec {
   };
 
   # perl is used for testing go vet
-  nativeBuildInputs = [ perl which pkg-config patch procps ];
+  nativeBuildInputs = [ perl which pkg-config procps ];
   buildInputs = [ cacert pcre ]
     ++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ]
     ++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
diff --git a/pkgs/development/compilers/go/1.17.nix b/pkgs/development/compilers/go/1.17.nix
index 69537dc899e82..d9180e9001de7 100644
--- a/pkgs/development/compilers/go/1.17.nix
+++ b/pkgs/development/compilers/go/1.17.nix
@@ -7,7 +7,6 @@
 , perl
 , which
 , pkg-config
-, patch
 , procps
 , pcre
 , cacert
@@ -55,15 +54,15 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.17.7";
+  version = "1.17.9";
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "sha256-wQjNM7c7GRGgK2l3Qd896kPgGlxOCOQJ6LOg43RdK00=";
+    sha256 = "sha256-djrUuvuAqSBEWMX6K45zJ/qXGu5FQlLA42LBEjYVaBM=";
   };
 
   # perl is used for testing go vet
-  nativeBuildInputs = [ perl which pkg-config patch procps ];
+  nativeBuildInputs = [ perl which pkg-config procps ];
   buildInputs = [ cacert pcre ]
     ++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ]
     ++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
diff --git a/pkgs/development/compilers/go/1.18.nix b/pkgs/development/compilers/go/1.18.nix
index a4cb013d94f24..5693fa7455122 100644
--- a/pkgs/development/compilers/go/1.18.nix
+++ b/pkgs/development/compilers/go/1.18.nix
@@ -7,7 +7,6 @@
 , perl
 , which
 , pkg-config
-, patch
 , procps
 , pcre
 , cacert
@@ -55,15 +54,15 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.18";
+  version = "1.18.1";
 
   src = fetchurl {
     url = "https://go.dev/dl/go${version}.src.tar.gz";
-    sha256 = "sha256-OPQj20zINIg/K1I0QoL6ejn7uTZQ3GKhH98L5kCb2tY=";
+    sha256 = "sha256-79Q+DxQC4IO3OgPURLe2V2u0xTmsRiCLY6kWtprKQIg=";
   };
 
   # perl is used for testing go vet
-  nativeBuildInputs = [ perl which pkg-config patch procps ];
+  nativeBuildInputs = [ perl which pkg-config procps ];
   buildInputs = [ cacert pcre ]
     ++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ]
     ++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
diff --git a/pkgs/development/compilers/go/2-dev.nix b/pkgs/development/compilers/go/2-dev.nix
deleted file mode 100644
index c70133c98b351..0000000000000
--- a/pkgs/development/compilers/go/2-dev.nix
+++ /dev/null
@@ -1,276 +0,0 @@
-{ lib
-, stdenv
-, fetchgit
-, tzdata
-, iana-etc
-, runCommand
-, perl
-, which
-, pkg-config
-, patch
-, procps
-, pcre
-, cacert
-, Security
-, Foundation
-, mailcap
-, runtimeShell
-, buildPackages
-, pkgsBuildTarget
-, callPackage
-}:
-
-let
-  go_bootstrap = buildPackages.callPackage ./bootstrap.nix { };
-
-  goBootstrap = runCommand "go-bootstrap" { } ''
-    mkdir $out
-    cp -rf ${go_bootstrap}/* $out/
-    chmod -R u+w $out
-    find $out -name "*.c" -delete
-    cp -rf $out/bin/* $out/share/go/bin/
-  '';
-
-  goarch = platform: {
-    "i686" = "386";
-    "x86_64" = "amd64";
-    "aarch64" = "arm64";
-    "arm" = "arm";
-    "armv5tel" = "arm";
-    "armv6l" = "arm";
-    "armv7l" = "arm";
-    "powerpc64le" = "ppc64le";
-  }.${platform.parsed.cpu.name} or (throw "Unsupported system");
-
-  # We need a target compiler which is still runnable at build time,
-  # to handle the cross-building case where build != host == target
-  targetCC = pkgsBuildTarget.targetPackages.stdenv.cc;
-in
-
-stdenv.mkDerivation rec {
-  pname = "go2-unstable";
-  version = "2021-04-13";
-
-  src = fetchgit {
-    url = "https://go.googlesource.com/go";
-    rev = "9cd52cf2a93a958e8e001aea36886e7846c91f2f";
-    sha256 = "sha256:0hybm93y4i4j7bs86y7h73nc1wqnspkq75if7n1032zf9bs8sm96";
-  };
-
-  # perl is used for testing go vet
-  nativeBuildInputs = [ perl which pkg-config patch procps ];
-  buildInputs = [ cacert pcre ]
-    ++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ]
-    ++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
-
-  depsTargetTargetPropagated = lib.optionals stdenv.isDarwin [ Security Foundation ];
-
-  hardeningDisable = [ "all" ];
-
-  prePatch = ''
-    echo '${version}' > VERSION
-    patchShebangs ./ # replace /bin/bash
-
-    # This source produces shell script at run time,
-    # and thus it is not corrected by patchShebangs.
-    substituteInPlace misc/cgo/testcarchive/carchive_test.go \
-      --replace '#!/usr/bin/env bash' '#!${runtimeShell}'
-
-    # Patch the mimetype database location which is missing on NixOS.
-    # but also allow static binaries built with NixOS to run outside nix
-    sed -i 's,\"/etc/mime.types,"${mailcap}/etc/mime.types\"\,\n\t&,' src/mime/type_unix.go
-
-    # Disabling the 'os/http/net' tests (they want files not available in
-    # chroot builds)
-    rm src/net/{listen,parse}_test.go
-    rm src/syscall/exec_linux_test.go
-
-    # !!! substituteInPlace does not seems to be effective.
-    # The os test wants to read files in an existing path. Just don't let it be /usr/bin.
-    sed -i 's,/usr/bin,'"`pwd`", src/os/os_test.go
-    sed -i 's,/bin/pwd,'"`type -P pwd`", src/os/os_test.go
-    # Fails on aarch64
-    sed -i '/TestFallocate/aif true \{ return\; \}' src/cmd/link/internal/ld/fallocate_test.go
-    # Skip this test since ssl patches mess it up.
-    sed -i '/TestLoadSystemCertsLoadColonSeparatedDirs/aif true \{ return\; \}' src/crypto/x509/root_unix_test.go
-    # Disable another PIE test which breaks.
-    sed -i '/TestTrivialPIE/aif true \{ return\; \}' misc/cgo/testshared/shared_test.go
-    # Disable the BuildModePie test
-    sed -i '/TestBuildmodePIE/aif true \{ return\; \}' src/cmd/go/go_test.go
-    # Disable the unix socket test
-    sed -i '/TestShutdownUnix/aif true \{ return\; \}' src/net/net_test.go
-    # Disable the hostname test
-    sed -i '/TestHostname/aif true \{ return\; \}' src/os/os_test.go
-    # ParseInLocation fails the test
-    sed -i '/TestParseInSydney/aif true \{ return\; \}' src/time/format_test.go
-    # Remove the api check as it never worked
-    sed -i '/src\/cmd\/api\/run.go/ireturn nil' src/cmd/dist/test.go
-    # Remove the coverage test as we have removed this utility
-    sed -i '/TestCoverageWithCgo/aif true \{ return\; \}' src/cmd/go/go_test.go
-    # Remove the timezone naming test
-    sed -i '/TestLoadFixed/aif true \{ return\; \}' src/time/time_test.go
-    # Remove disable setgid test
-    sed -i '/TestRespectSetgidDir/aif true \{ return\; \}' src/cmd/go/internal/work/build_test.go
-    # Remove cert tests that conflict with NixOS's cert resolution
-    sed -i '/TestEnvVars/aif true \{ return\; \}' src/crypto/x509/root_unix_test.go
-    # TestWritevError hangs sometimes
-    sed -i '/TestWritevError/aif true \{ return\; \}' src/net/writev_test.go
-    # TestVariousDeadlines fails sometimes
-    sed -i '/TestVariousDeadlines/aif true \{ return\; \}' src/net/timeout_test.go
-
-    sed -i 's,/etc/protocols,${iana-etc}/etc/protocols,' src/net/lookup_unix.go
-    sed -i 's,/etc/services,${iana-etc}/etc/services,' src/net/port_unix.go
-
-    # Disable cgo lookup tests not works, they depend on resolver
-    rm src/net/cgo_unix_test.go
-
-  '' + lib.optionalString stdenv.isLinux ''
-    # prepend the nix path to the zoneinfo files but also leave the original value for static binaries
-    # that run outside a nix server
-    sed -i 's,\"/usr/share/zoneinfo/,"${tzdata}/share/zoneinfo/\"\,\n\t&,' src/time/zoneinfo_unix.go
-
-  '' + lib.optionalString stdenv.isAarch32 ''
-    echo '#!${runtimeShell}' > misc/cgo/testplugin/test.bash
-  '' + lib.optionalString stdenv.isDarwin ''
-    substituteInPlace src/race.bash --replace \
-      "sysctl machdep.cpu.extfeatures | grep -qv EM64T" true
-    sed -i 's,strings.Contains(.*sysctl.*,true {,' src/cmd/dist/util.go
-    sed -i 's,"/etc","'"$TMPDIR"'",' src/os/os_test.go
-    sed -i 's,/_go_os_test,'"$TMPDIR"'/_go_os_test,' src/os/path_test.go
-
-    sed -i '/TestChdirAndGetwd/aif true \{ return\; \}' src/os/os_test.go
-    sed -i '/TestCredentialNoSetGroups/aif true \{ return\; \}' src/os/exec/exec_posix_test.go
-    sed -i '/TestRead0/aif true \{ return\; \}' src/os/os_test.go
-    sed -i '/TestSystemRoots/aif true \{ return\; \}' src/crypto/x509/root_darwin_test.go
-
-    sed -i '/TestGoInstallRebuildsStalePackagesInOtherGOPATH/aif true \{ return\; \}' src/cmd/go/go_test.go
-    sed -i '/TestBuildDashIInstallsDependencies/aif true \{ return\; \}' src/cmd/go/go_test.go
-
-    sed -i '/TestDisasmExtld/aif true \{ return\; \}' src/cmd/objdump/objdump_test.go
-
-    sed -i 's/unrecognized/unknown/' src/cmd/link/internal/ld/lib.go
-
-    # TestCurrent fails because Current is not implemented on Darwin
-    sed -i 's/TestCurrent/testCurrent/g' src/os/user/user_test.go
-    sed -i 's/TestLookup/testLookup/g' src/os/user/user_test.go
-
-    touch $TMPDIR/group $TMPDIR/hosts $TMPDIR/passwd
-  '';
-
-  patches = [
-    ./remove-tools-1.11.patch
-    ./ssl-cert-file-2-dev.patch
-    ./remove-test-pie-1.15.patch
-    ./creds-test.patch
-    ./go-1.9-skip-flaky-19608.patch
-    ./go-1.9-skip-flaky-20072.patch
-    ./skip-external-network-tests-1.16.patch
-    ./skip-nohup-tests.patch
-    ./skip-cgo-tests-1.15.patch
-  ] ++ [
-    # breaks under load: https://github.com/golang/go/issues/25628
-    (if stdenv.isAarch32
-    then ./skip-test-extra-files-on-aarch32-1.14.patch
-    else ./skip-test-extra-files-on-386-1.14.patch)
-  ];
-
-  postPatch = ''
-    find . -name '*.orig' -exec rm {} ';'
-  '';
-
-  GOOS = stdenv.targetPlatform.parsed.kernel.name;
-  GOARCH = goarch stdenv.targetPlatform;
-  # GOHOSTOS/GOHOSTARCH must match the building system, not the host system.
-  # Go will nevertheless build a for host system that we will copy over in
-  # the install phase.
-  GOHOSTOS = stdenv.buildPlatform.parsed.kernel.name;
-  GOHOSTARCH = goarch stdenv.buildPlatform;
-
-  # {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those
-  # to be different from CC/CXX
-  CC_FOR_TARGET =
-    if (stdenv.buildPlatform != stdenv.targetPlatform) then
-      "${targetCC}/bin/${targetCC.targetPrefix}cc"
-    else
-      null;
-  CXX_FOR_TARGET =
-    if (stdenv.buildPlatform != stdenv.targetPlatform) then
-      "${targetCC}/bin/${targetCC.targetPrefix}c++"
-    else
-      null;
-
-  GOARM = toString (lib.intersectLists [ (stdenv.hostPlatform.parsed.cpu.version or "") ] [ "5" "6" "7" ]);
-  GO386 = "softfloat"; # from Arch: don't assume sse2 on i686
-  CGO_ENABLED = 1;
-  # Hopefully avoids test timeouts on Hydra
-  GO_TEST_TIMEOUT_SCALE = 3;
-
-  # Indicate that we are running on build infrastructure
-  # Some tests assume things like home directories and users exists
-  GO_BUILDER_NAME = "nix";
-
-  GOROOT_BOOTSTRAP = "${goBootstrap}/share/go";
-
-  postConfigure = ''
-    export GOCACHE=$TMPDIR/go-cache
-    # this is compiled into the binary
-    export GOROOT_FINAL=$out/share/go
-
-    export PATH=$(pwd)/bin:$PATH
-
-    ${lib.optionalString (stdenv.buildPlatform != stdenv.targetPlatform) ''
-    # Independent from host/target, CC should produce code for the building system.
-    # We only set it when cross-compiling.
-    export CC=${buildPackages.stdenv.cc}/bin/cc
-    ''}
-    ulimit -a
-  '';
-
-  postBuild = ''
-    (cd src && ./make.bash)
-  '';
-
-  doCheck = stdenv.hostPlatform == stdenv.targetPlatform && !stdenv.isDarwin;
-
-  checkPhase = ''
-    runHook preCheck
-    (cd src && HOME=$TMPDIR GOCACHE=$TMPDIR/go-cache ./run.bash --no-rebuild)
-    runHook postCheck
-  '';
-
-  preInstall = ''
-    rm -r pkg/obj
-    # Contains the wrong perl shebang when cross compiling,
-    # since it is not used for anything we can deleted as well.
-    rm src/regexp/syntax/make_perl_groups.pl
-  '' + (if (stdenv.buildPlatform != stdenv.hostPlatform) then ''
-    mv bin/*_*/* bin
-    rmdir bin/*_*
-    ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
-      rm -rf pkg/${GOHOSTOS}_${GOHOSTARCH} pkg/tool/${GOHOSTOS}_${GOHOSTARCH}
-    ''}
-  '' else if (stdenv.hostPlatform != stdenv.targetPlatform) then ''
-    rm -rf bin/*_*
-    ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
-      rm -rf pkg/${GOOS}_${GOARCH} pkg/tool/${GOOS}_${GOARCH}
-    ''}
-  '' else "");
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $GOROOT_FINAL
-    cp -a bin pkg src lib misc api doc $GOROOT_FINAL
-    ln -s $GOROOT_FINAL/bin $out/bin
-    runHook postInstall
-  '';
-
-  disallowedReferences = [ goBootstrap ];
-
-  meta = with lib; {
-    homepage = "https://go.dev/";
-    description = "The Go Programming language";
-    license = licenses.bsd3;
-    maintainers = teams.golang.members ++ [ maintainers._3noch ];
-    platforms = platforms.linux ++ platforms.darwin;
-  };
-}
diff --git a/pkgs/development/compilers/go/ssl-cert-file-2-dev.patch b/pkgs/development/compilers/go/ssl-cert-file-2-dev.patch
deleted file mode 100644
index a5be2685998e6..0000000000000
--- a/pkgs/development/compilers/go/ssl-cert-file-2-dev.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff --git a/src/crypto/x509/root_darwin.go b/src/crypto/x509/root_darwin.go
-index 05593bb105..a6a11eeec1 100644
---- a/src/crypto/x509/root_darwin.go
-+++ b/src/crypto/x509/root_darwin.go
-@@ -11,6 +11,7 @@ import (
- 	"bytes"
- 	macOS "crypto/x509/internal/macos"
- 	"fmt"
-+	"io/ioutil"
- 	"os"
- 	"strings"
- )
-@@ -22,6 +23,14 @@ func (c *Certificate) systemVerify(opts *VerifyOptions) (chains [][]*Certificate
- }
- 
- func loadSystemRoots() (*CertPool, error) {
-+	if file := os.Getenv("NIX_SSL_CERT_FILE"); file != "" {
-+		data, err := ioutil.ReadFile(file)
-+		if err == nil {
-+			roots := NewCertPool()
-+			roots.AppendCertsFromPEM(data)
-+			return roots, nil
-+		}
-+	}
- 	var trustedRoots []*Certificate
- 	untrustedRoots := make(map[string]bool)
- 
-diff --git a/src/crypto/x509/root_unix.go b/src/crypto/x509/root_unix.go
-index dede825edd..ffb3caf4a4 100644
---- a/src/crypto/x509/root_unix.go
-+++ b/src/crypto/x509/root_unix.go
-@@ -9,6 +9,7 @@ package x509
- 
- import (
- 	"io/fs"
-+	"io/ioutil"
- 	"os"
- 	"path/filepath"
- 	"strings"
-@@ -32,6 +33,13 @@ func (c *Certificate) systemVerify(opts *VerifyOptions) (chains [][]*Certificate
- 
- func loadSystemRoots() (*CertPool, error) {
- 	roots := NewCertPool()
-+	if file := os.Getenv("NIX_SSL_CERT_FILE"); file != "" {
-+		data, err := ioutil.ReadFile(file)
-+		if err == nil {
-+			roots.AppendCertsFromPEM(data)
-+			return roots, nil
-+		}
-+	}
- 
- 	files := certFiles
- 	if f := os.Getenv(certFileEnv); f != "" {
-
diff --git a/pkgs/development/compilers/graalvm/community-edition/default.nix b/pkgs/development/compilers/graalvm/community-edition/default.nix
index 6f42bfcc4539a..167aaa95c5ffd 100644
--- a/pkgs/development/compilers/graalvm/community-edition/default.nix
+++ b/pkgs/development/compilers/graalvm/community-edition/default.nix
@@ -15,14 +15,12 @@ let
   */
   graalvm11-ce-release-version = "22.0.0.2";
   graalvm17-ce-release-version = "22.0.0.2";
-  graalvm11-ce-dev-version = "22.2.0-dev-20220401_1942";
-  graalvm17-ce-dev-version = "22.2.0-dev-20220401_1942";
+  graalvm11-ce-dev-version = "22.2.0-dev-20220415_1945";
+  graalvm17-ce-dev-version = "22.2.0-dev-20220415_1945";
 
-  commonProducts = [
+  products = [
     "graalvm-ce"
     "native-image-installable-svm"
-    "ruby-installable-svm"
-    "wasm-installable-svm"
   ];
 
 in
@@ -32,57 +30,48 @@ in
   graalvm11-ce = mkGraal rec {
     config = {
       x86_64-darwin = {
+        inherit products;
         arch = "darwin-amd64";
-        products = commonProducts ++ [ "python-installable-svm" ];
       };
       x86_64-linux = {
+        inherit products;
         arch = "linux-amd64";
-        products = commonProducts ++ [ "python-installable-svm" ];
       };
       aarch64-darwin = {
+        inherit products;
         arch = "darwin-aarch64";
-        products = [
-          "graalvm-ce"
-          "native-image-installable-svm"
-        ];
         version = graalvm11-ce-dev-version;
       };
       aarch64-linux = {
+        inherit products;
         arch = "linux-aarch64";
-        products = commonProducts;
       };
     };
     defaultVersion = graalvm11-ce-release-version;
     javaVersion = "11";
-    platforms = builtins.attrNames config;
   };
 
-  # TODO: fix aarch64-linux, failing during Native Image compilation
-  # "Caused by: java.io.IOException: Cannot run program
-  # "/nix/store/1q1mif7h3lgxdaxg6j39hli5azikrfla-gcc-wrapper-9.3.0/bin/gcc" (in
-  # directory"/tmp/SVM-4194439592488143713"): error=0, Failed to exec spawn
-  # helper: pid: 19865, exit value: 1"
   graalvm17-ce = mkGraal rec {
     config = {
       x86_64-darwin = {
+        inherit products;
         arch = "darwin-amd64";
-        products = commonProducts ++ [ "python-installable-svm" ];
       };
       x86_64-linux = {
+        inherit products;
         arch = "linux-amd64";
-        products = commonProducts ++ [ "python-installable-svm" ];
       };
       aarch64-darwin = {
+        inherit products;
         arch = "darwin-aarch64";
-        products = [
-          "graalvm-ce"
-          "native-image-installable-svm"
-        ];
         version = graalvm17-ce-dev-version;
       };
+      aarch64-linux = {
+        inherit products;
+        arch = "linux-aarch64";
+      };
     };
     defaultVersion = graalvm17-ce-release-version;
     javaVersion = "17";
-    platforms = builtins.attrNames config;
   };
 }
diff --git a/pkgs/development/compilers/graalvm/community-edition/graalvm11-ce-sources.json b/pkgs/development/compilers/graalvm/community-edition/graalvm11-ce-sources.json
index 070c783d03367..732cefbdf7387 100644
--- a/pkgs/development/compilers/graalvm/community-edition/graalvm11-ce-sources.json
+++ b/pkgs/development/compilers/graalvm/community-edition/graalvm11-ce-sources.json
@@ -1,12 +1,12 @@
 {
   "darwin-aarch64": {
-    "graalvm-ce|java11|22.2.0-dev-20220401_1942": {
-      "sha256": "c83dee740ae148486598759e44a717b09d8124e4ea50f9da1e7d49d016572b89",
-      "url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/22.2.0-dev-20220401_1942/graalvm-ce-java11-darwin-aarch64-dev.tar.gz"
+    "graalvm-ce|java11|22.2.0-dev-20220415_1945": {
+      "sha256": "ab81b00177124d746a3871b6e48ce7611e93dd3b4f6dee45d77300ef214fbab8",
+      "url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/22.2.0-dev-20220415_1945/graalvm-ce-java11-darwin-aarch64-dev.tar.gz"
     },
-    "native-image-installable-svm|java11|22.2.0-dev-20220401_1942": {
-      "sha256": "661311ae26bfd6c46360b9e65aabe9361dc5cd05878a404343adf16925ae78fa",
-      "url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/22.2.0-dev-20220401_1942/native-image-installable-svm-java11-darwin-aarch64-dev.jar"
+    "native-image-installable-svm|java11|22.2.0-dev-20220415_1945": {
+      "sha256": "9d3753736fe71f55f3fb3bcbdf43271dd96dda0c4b731d11f3f890d5bddf3bbb",
+      "url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/22.2.0-dev-20220415_1945/native-image-installable-svm-java11-darwin-aarch64-dev.jar"
     }
   },
   "darwin-amd64": {
@@ -17,18 +17,6 @@
     "native-image-installable-svm|java11|22.0.0.2": {
       "sha256": "03c27de6cce61ee8073e89252212457f3fbac2c0bc9bfa4acbff12176476c176",
       "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/native-image-installable-svm-java11-darwin-amd64-22.0.0.2.jar"
-    },
-    "python-installable-svm|java11|22.0.0.2": {
-      "sha256": "67ee2f1cc10b0189e359344c31b22f423e636ff4ec2dd7d9437c3eb0ef54e601",
-      "url": "https://github.com/graalvm/graalpython/releases/download/vm-22.0.0.2/python-installable-svm-java11-darwin-amd64-22.0.0.2.jar"
-    },
-    "ruby-installable-svm|java11|22.0.0.2": {
-      "sha256": "a25c0099a21ca1ca9904dd3acdeef509f67a13b96c6135b6de199e9805330df9",
-      "url": "https://github.com/oracle/truffleruby/releases/download/vm-22.0.0.2/ruby-installable-svm-java11-darwin-amd64-22.0.0.2.jar"
-    },
-    "wasm-installable-svm|java11|22.0.0.2": {
-      "sha256": "d74c210a8a87b8eb0c4d18a65fde6f2c03ebc94d9bf7ed87bbb9cacc460006d7",
-      "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/wasm-installable-svm-java11-darwin-amd64-22.0.0.2.jar"
     }
   },
   "linux-aarch64": {
@@ -39,14 +27,6 @@
     "native-image-installable-svm|java11|22.0.0.2": {
       "sha256": "51d41e890a5aabf8e7b9d4f4e0f88206ee70a261f7dbb0315d51770ab8f3009e",
       "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/native-image-installable-svm-java11-linux-aarch64-22.0.0.2.jar"
-    },
-    "ruby-installable-svm|java11|22.0.0.2": {
-      "sha256": "e0fb582a9c6b4167e7dc267c58ca1968bd1c471b3bc5c56061b436f175486d80",
-      "url": "https://github.com/oracle/truffleruby/releases/download/vm-22.0.0.2/ruby-installable-svm-java11-linux-aarch64-22.0.0.2.jar"
-    },
-    "wasm-installable-svm|java11|22.0.0.2": {
-      "sha256": "a48470ae391c75cb2805b7fe27cde2c925c0466fdbc0623dfbb67c54f19dbf8c",
-      "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/wasm-installable-svm-java11-linux-aarch64-22.0.0.2.jar"
     }
   },
   "linux-amd64": {
@@ -57,18 +37,6 @@
     "native-image-installable-svm|java11|22.0.0.2": {
       "sha256": "8504a3441f5b28b8fd625f676674a9216f082ae63a4e30d43930c80f9672e71d",
       "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/native-image-installable-svm-java11-linux-amd64-22.0.0.2.jar"
-    },
-    "python-installable-svm|java11|22.0.0.2": {
-      "sha256": "2f01d1bbc2ed2c507952d8ceaab1cb2176fc67e2d8c4b3bf5864e8d930c60c55",
-      "url": "https://github.com/graalvm/graalpython/releases/download/vm-22.0.0.2/python-installable-svm-java11-linux-amd64-22.0.0.2.jar"
-    },
-    "ruby-installable-svm|java11|22.0.0.2": {
-      "sha256": "e90f7ebc13b6c1f8e3f98881bb4fe2336870744174b2b6d41dc672d15f0b9a40",
-      "url": "https://github.com/oracle/truffleruby/releases/download/vm-22.0.0.2/ruby-installable-svm-java11-linux-amd64-22.0.0.2.jar"
-    },
-    "wasm-installable-svm|java11|22.0.0.2": {
-      "sha256": "c0fdfc40374b70f6f1597dd21660535c813dc5c3948c8a6ea9559a20f4d3fb5e",
-      "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/wasm-installable-svm-java11-linux-amd64-22.0.0.2.jar"
     }
   }
 }
diff --git a/pkgs/development/compilers/graalvm/community-edition/graalvm17-ce-sources.json b/pkgs/development/compilers/graalvm/community-edition/graalvm17-ce-sources.json
index 65e28b8b11cc3..57fdd4c28846c 100644
--- a/pkgs/development/compilers/graalvm/community-edition/graalvm17-ce-sources.json
+++ b/pkgs/development/compilers/graalvm/community-edition/graalvm17-ce-sources.json
@@ -1,12 +1,12 @@
 {
   "darwin-aarch64": {
-    "graalvm-ce|java17|22.2.0-dev-20220401_1942": {
-      "sha256": "f0409c59adbce62da7be46ab7d0e01abe5c080ef97d0b555e6c773f94dbfdecf",
-      "url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/22.2.0-dev-20220401_1942/graalvm-ce-java17-darwin-aarch64-dev.tar.gz"
+    "graalvm-ce|java17|22.2.0-dev-20220415_1945": {
+      "sha256": "1dbb0e0b9c85391ea6f1a0bd95ae252a396152d83e3a0e79cffd988144259e68",
+      "url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/22.2.0-dev-20220415_1945/graalvm-ce-java17-darwin-aarch64-dev.tar.gz"
     },
-    "native-image-installable-svm|java17|22.2.0-dev-20220401_1942": {
-      "sha256": "3770dc4810d7ebae8f9ca2212e91112629096a964d3caea1667b0aaf5f70c1e0",
-      "url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/22.2.0-dev-20220401_1942/native-image-installable-svm-java17-darwin-aarch64-dev.jar"
+    "native-image-installable-svm|java17|22.2.0-dev-20220415_1945": {
+      "sha256": "029499c011ceb1a4560957db651805325a201488b5f0b7467f007c7385d004e2",
+      "url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/22.2.0-dev-20220415_1945/native-image-installable-svm-java17-darwin-aarch64-dev.jar"
     }
   },
   "darwin-amd64": {
@@ -17,18 +17,16 @@
     "native-image-installable-svm|java17|22.0.0.2": {
       "sha256": "007fa742cd139d447f83d776b6d78e717c9df11d56a61061a5937547c20028b7",
       "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/native-image-installable-svm-java17-darwin-amd64-22.0.0.2.jar"
+    }
+  },
+  "linux-aarch64": {
+    "graalvm-ce|java17|22.0.0.2": {
+      "sha256": "c7d78387d2a144944f26773697c1b61d3478a081a1c5e7fc20f47f1f5f3c82c7",
+      "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/graalvm-ce-java17-linux-aarch64-22.0.0.2.tar.gz"
     },
-    "python-installable-svm|java17|22.0.0.2": {
-      "sha256": "af887b0304d5ec98fab1be2cd1fca2aa3b10e84e823142a7f274560b1e0ea7c1",
-      "url": "https://github.com/graalvm/graalpython/releases/download/vm-22.0.0.2/python-installable-svm-java17-darwin-amd64-22.0.0.2.jar"
-    },
-    "ruby-installable-svm|java17|22.0.0.2": {
-      "sha256": "fc5eb6f833136ae3fda61f46fe0af66a8454ca2f803ca35eaff7336521cb468d",
-      "url": "https://github.com/oracle/truffleruby/releases/download/vm-22.0.0.2/ruby-installable-svm-java17-darwin-amd64-22.0.0.2.jar"
-    },
-    "wasm-installable-svm|java17|22.0.0.2": {
-      "sha256": "b76e6d872ce07ca9facd5b997dbb6e557ba72aa369ddd5f1664431bd11b98796",
-      "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/wasm-installable-svm-java17-darwin-amd64-22.0.0.2.jar"
+    "native-image-installable-svm|java17|22.0.0.2": {
+      "sha256": "798947d0a93988929d2b8e3555f7c65225e789124cd99fbc0c3aae5f350175db",
+      "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/native-image-installable-svm-java17-linux-aarch64-22.0.0.2.jar"
     }
   },
   "linux-amd64": {
@@ -39,18 +37,6 @@
     "native-image-installable-svm|java17|22.0.0.2": {
       "sha256": "8c25f650d58c2649c97061cb806dfaec9e685d5d2b80afc7cf72fe61d6891831",
       "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/native-image-installable-svm-java17-linux-amd64-22.0.0.2.jar"
-    },
-    "python-installable-svm|java17|22.0.0.2": {
-      "sha256": "b3b78a15bd29b4eaaf0f2607e21181ca2a5b41b38ba43a3ff2656c2f6effda8a",
-      "url": "https://github.com/graalvm/graalpython/releases/download/vm-22.0.0.2/python-installable-svm-java17-linux-amd64-22.0.0.2.jar"
-    },
-    "ruby-installable-svm|java17|22.0.0.2": {
-      "sha256": "d86c9ad50cbed980fa69d69b2eccd47d31880d8c55553483f59ce9eda15628bd",
-      "url": "https://github.com/oracle/truffleruby/releases/download/vm-22.0.0.2/ruby-installable-svm-java17-linux-amd64-22.0.0.2.jar"
-    },
-    "wasm-installable-svm|java17|22.0.0.2": {
-      "sha256": "7f7e51e4a24384b3dd960c12ab9b05b1fea58a0457d6b80e3797228fab93c0bd",
-      "url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/wasm-installable-svm-java17-linux-amd64-22.0.0.2.jar"
     }
   }
 }
diff --git a/pkgs/development/compilers/graalvm/community-edition/mkGraal.nix b/pkgs/development/compilers/graalvm/community-edition/mkGraal.nix
index 5b20890ced1b7..02fd986731b1b 100644
--- a/pkgs/development/compilers/graalvm/community-edition/mkGraal.nix
+++ b/pkgs/development/compilers/graalvm/community-edition/mkGraal.nix
@@ -1,7 +1,36 @@
-{ javaVersion
+{
+  # An attrset describing each platform configuration. All values are extract
+  # from the GraalVM releases available on
+  # https://github.com/graalvm/graalvm-ce-builds/releases
+  # Example:
+  # config = {
+  #   x86_64-linux = {
+  #     # List of products that will be included in the GraalVM derivation
+  #     # See `with{NativeImage,Ruby,Python,WASM,*}Svm` variables for the
+  #     # available values
+  #     products = [ "graalvm-ce" "native-image-installable-svm" ];
+  #     # GraalVM arch, not to be confused with the nix platform
+  #     arch = "linux-amd64";
+  #     # GraalVM version
+  #     version = "22.0.0.2";
+  #   };
+  # }
+  config
+  # GraalVM version that will be used unless overriden by `config.<platform>.version`
 , defaultVersion
-, platforms
-, config
+  # Java version used by GraalVM
+, javaVersion
+  # Platforms were GraalVM will be allowed to build (i.e. `meta.platforms`)
+, platforms ? builtins.attrNames config
+  # If set to true, update script will (re-)generate the sources file even if
+  # there are no updates available
+, forceUpdate ? false
+  # Path for the sources file that will be used
+  # See `update.nix` file for a description on how this file works
+, sourcesPath ? ./. + "/graalvm${javaVersion}-ce-sources.json"
+  # Use musl instead of glibc to allow true static builds in GraalVM's
+  # Native Image (i.e.: `--static --libc=musl`). This will cause glibc static
+  # builds to fail, so it should be used with care
 , useMusl ? false
 }:
 
@@ -32,10 +61,11 @@
 , gtkSupport ? stdenv.isLinux
 , cairo
 , glib
+  # updateScript deps
+, gnused
 , gtk3
-, writeShellScript
 , jq
-, gnused
+, writeShellScript
 }:
 
 assert useMusl -> stdenv.isLinux;
@@ -44,8 +74,7 @@ let
   platform = config.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   version = platform.version or defaultVersion;
   name = "graalvm${javaVersion}-ce";
-  sourcesFilename = "${name}-sources.json";
-  sources = builtins.fromJSON (builtins.readFile (./. + "/${sourcesFilename}"));
+  sources = builtins.fromJSON (builtins.readFile sourcesPath);
 
   runtimeLibraryPath = lib.makeLibraryPath
     ([ cups ] ++ lib.optionals gtkSupport [ cairo glib gtk3 ]);
@@ -56,9 +85,14 @@ let
   ] ++ lib.optionals useMusl [
     (lib.getDev musl)
     # GraalVM 21.3.0+ expects musl-gcc as <system>-musl-gcc
-    (writeShellScriptBin "${stdenv.system}-musl-gcc" ''${lib.getDev musl}/bin/musl-gcc "$@"'')
+    (writeShellScriptBin "${stdenv.hostPlatform.system}-musl-gcc" ''${lib.getDev musl}/bin/musl-gcc "$@"'')
   ]);
 
+  withNativeImageSvm = builtins.elem "native-image-installable-svm" platform.products;
+  withRubySvm = builtins.elem "ruby-installable-svm" platform.products;
+  withPythonSvm = builtins.elem "python-installable-svm" platform.products;
+  withWasmSvm = builtins.elem "wasm-installable-svm" platform.products;
+
   graalvmXXX-ce = stdenv.mkDerivation rec {
     inherit version;
     pname = name;
@@ -69,7 +103,6 @@ let
       alsa-lib # libasound.so wanted by lib/libjsound.so
       fontconfig
       freetype
-      openssl # libssl.so wanted by languages/ruby/lib/mri/openssl.so
       stdenv.cc.cc.lib # libstdc++.so.6
       xorg.libX11
       xorg.libXext
@@ -77,6 +110,8 @@ let
       xorg.libXrender
       xorg.libXtst
       zlib
+    ] ++ lib.optionals withRubySvm [
+      openssl # libssl.so wanted by languages/ruby/lib/mri/openssl.so
     ];
 
     nativeBuildInputs = [ unzip perl makeWrapper ]
@@ -135,7 +170,7 @@ let
 
     installPhase = ''
       # ensure that $lib/lib exists to avoid breaking builds
-      mkdir -p $lib/lib
+      mkdir -p "$lib/lib"
       # jni.h expects jni_md.h to be in the header search path.
       ln -s $out/include/linux/*_md.h $out/include/
 
@@ -146,25 +181,25 @@ let
         if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
       EOF
       ${
-      lib.optionalString (stdenv.isLinux) ''
-        # provide libraries needed for static compilation
-        ${
-          if useMusl then
-            "for f in ${musl.stdenv.cc.cc}/lib/* ${musl}/lib/* ${zlib.static}/lib/*; do"
-          else
-            "for f in ${glibc}/lib/* ${glibc.static}/lib/* ${zlib.static}/lib/*; do"
-        }
-          ln -s $f $out/lib/svm/clibraries/${platform.arch}/$(basename $f)
-        done
-
-        # add those libraries to $lib output too, so we can use them with
-        # `native-image -H:CLibraryPath=''${lib.getLib graalvmXX-ce}/lib ...` and reduce
-        # closure size by not depending on GraalVM $out (that is much bigger)
-        mkdir -p $lib/lib
-        for f in ${glibc}/lib/*; do
-          ln -s $f $lib/lib/$(basename $f)
-        done
-      ''
+        lib.optionalString (stdenv.isLinux) ''
+          # provide libraries needed for static compilation
+          ${
+            if useMusl then
+              ''for f in "${musl.stdenv.cc.cc}/lib/"* "${musl}/lib/"* "${zlib.static}/lib/"*; do''
+            else
+              ''for f in "${glibc}/lib/"* "${glibc.static}/lib/"* "${zlib.static}/lib/"*; do''
+          }
+            ln -s "$f" "$out/lib/svm/clibraries/${platform.arch}/$(basename $f)"
+          done
+
+          # add those libraries to $lib output too, so we can use them with
+          # `native-image -H:CLibraryPath=''${lib.getLib graalvmXX-ce}/lib ...` and reduce
+          # closure size by not depending on GraalVM $out (that is much bigger)
+          # we always use glibc here, since musl is only supported for static compilation
+          for f in "${glibc}/lib/"*; do
+            ln -s "$f" "$lib/lib/$(basename $f)"
+          done
+        ''
       }
     '';
 
@@ -172,29 +207,27 @@ let
 
     # Workaround for libssl.so.10 wanted by TruffleRuby
     # Resulting TruffleRuby cannot use `openssl` library.
-    autoPatchelfIgnoreMissingDeps = stdenv.isDarwin;
+    autoPatchelfIgnoreMissingDeps = withRubySvm && stdenv.isDarwin;
 
     preFixup = lib.optionalString (stdenv.isLinux) ''
-      # We cannot use -exec since wrapProgram is a function but not a
-      # command.
-      #
-      # jspawnhelper is executed from JVM, so it doesn't need to wrap it,
-      # and it breaks building OpenJDK (#114495).
-      for bin in $( find "$out" -executable -type f -not -path '*/languages/ruby/lib/gems/*' -not -name jspawnhelper ); do
-        if patchelf --print-interpreter "$bin" &> /dev/null || head -n 1 "$bin" | grep '^#!' -q; then
-          wrapProgram "$bin" \
-            --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}" \
-            --prefix PATH : "${runtimeDependencies}"
-        fi
+      # Find all executables in any directory that contains '/bin/'
+      for bin in $(find "$out" -executable -type f -wholename '*/bin/*'); do
+        wrapProgram "$bin" \
+          --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}" \
+          --prefix PATH : "${runtimeDependencies}"
       done
 
       find "$out" -name libfontmanager.so -exec \
         patchelf --add-needed libfontconfig.so {} \;
 
-      # Workaround for libssl.so.10/libcrypto.so.10 wanted by TruffleRuby
-      patchelf $out/languages/ruby/lib/mri/openssl.so \
-        --replace-needed libssl.so.10 libssl.so \
-        --replace-needed libcrypto.so.10 libcrypto.so
+      ${
+        lib.optionalString withRubySvm ''
+          # Workaround for libssl.so.10/libcrypto.so.10 wanted by TruffleRuby
+          patchelf $out/languages/ruby/lib/mri/openssl.so \
+            --replace-needed libssl.so.10 libssl.so \
+            --replace-needed libcrypto.so.10 libcrypto.so
+        ''
+      }
     '';
 
     # $out/bin/native-image needs zlib to build native executables.
@@ -222,7 +255,7 @@ let
       $out/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler HelloWorld | fgrep 'Hello World'
 
       ${# --static flag doesn't work for darwin
-        lib.optionalString (stdenv.isLinux && !useMusl) ''
+        lib.optionalString (withNativeImageSvm && stdenv.isLinux && !useMusl) ''
           echo "Ahead-Of-Time compilation"
           $out/bin/native-image -H:-CheckToolchain -H:+ReportExceptionStackTraces --no-server HelloWorld
           ./helloworld | fgrep 'Hello World'
@@ -234,58 +267,48 @@ let
       }
 
       ${# --static flag doesn't work for darwin
-        lib.optionalString (stdenv.isLinux && useMusl) ''
+        lib.optionalString (withNativeImageSvm && stdenv.isLinux && useMusl) ''
           echo "Ahead-Of-Time compilation with --static and --libc=musl"
           $out/bin/native-image --no-server --libc=musl --static HelloWorld
           ./helloworld | fgrep 'Hello World'
         ''
       }
 
-      ${# TODO: Doesn't work on MacOS, we have this error:
-        # "Launching JShell execution engine threw: Operation not permitted (Bind failed)"
-        lib.optionalString (stdenv.isLinux) ''
+      ${
+        lib.optionalString withWasmSvm ''
           echo "Testing Jshell"
           echo '1 + 1' | $out/bin/jshell
         ''
       }
 
       ${
-        lib.optionalString (builtins.any (a: a == "python-installable-svm") platform.products) ''
+        lib.optionalString withPythonSvm ''
           echo "Testing GraalPython"
           $out/bin/graalpython -c 'print(1 + 1)'
           echo '1 + 1' | $out/bin/graalpython
         ''
       }
 
-      echo "Testing TruffleRuby"
       ${
-        lib.optionalString (builtins.any (a: a == "ruby-installable-svm") platform.products) ''
-      # Hide warnings about wrong locale
-      export LANG=C
-      export LC_ALL=C
-      $out/bin/ruby -e 'puts(1 + 1)'
-      ''
-      }
-      ${# FIXME: irb is broken in all platforms
-        # TODO: `irb` on MacOS gives an error saying "Could not find OpenSSL
-        # headers, install via Homebrew or MacPorts or set OPENSSL_PREFIX", even
-        # though `openssl` is in `propagatedBuildInputs`. For more details see:
-        # https://github.com/NixOS/nixpkgs/pull/105815
-        # TODO: "truffleruby: an internal exception escaped out of the interpreter"
-        # error on linux-aarch64
-        # TODO: "core/kernel.rb:234:in `gem_original_require':
-        # /nix/store/wlc5xalzj2ip1l83siqw8ac5fjd52ngm-graalvm11-ce/languages/llvm/native/lib:
-        # cannot read file data: Is a directory (RuntimeError)" error on linux-amd64
-        lib.optionalString false ''
+        lib.optionalString withRubySvm ''
+          echo "Testing TruffleRuby"
+          # Hide warnings about wrong locale
+          export LANG=C
+          export LC_ALL=C
+          $out/bin/ruby -e 'puts(1 + 1)'
+        ''
+        # FIXME: irb is broken in all platforms
+        + lib.optionalString false ''
           echo '1 + 1' | $out/bin/irb
         ''
       }
     '';
 
     passthru = {
+      inherit (platform) products;
       home = graalvmXXX-ce;
       updateScript = import ./update.nix {
-        inherit lib writeShellScript jq sourcesFilename name config gnused defaultVersion;
+        inherit config defaultVersion forceUpdate gnused jq lib name sourcesPath writeShellScript;
         graalVersion = version;
         javaVersion = "java${javaVersion}";
       };
diff --git a/pkgs/development/compilers/graalvm/community-edition/update.nix b/pkgs/development/compilers/graalvm/community-edition/update.nix
index 191f3cb45a154..77f9d0e095baf 100644
--- a/pkgs/development/compilers/graalvm/community-edition/update.nix
+++ b/pkgs/development/compilers/graalvm/community-edition/update.nix
@@ -1,13 +1,14 @@
-{ javaVersion
-, graalVersion
+{ config
 , defaultVersion
-, config
-, sourcesFilename
-, name
+, forceUpdate
+, gnused
+, graalVersion
+, javaVersion
+, jq
 , lib
+, name
+, sourcesPath
 , writeShellScript
-, jq
-, gnused
 }:
 
 /*
@@ -184,7 +185,7 @@ let
 
   newVersion = getLatestVersion graalVersion;
   sourcesJson = genSources javaVersion defaultVersion config;
-  sourcesJsonPath = lib.strings.escapeShellArg ./. + "/${sourcesFilename}";
+  sourcesJsonPath = lib.strings.escapeShellArg sourcesPath;
 
   # versionKeyInDefaultNix String -> String
   versionKeyInDefaultNix = graalVersion:
@@ -199,7 +200,7 @@ let
   */
   updateScriptText = newVersion: currentVersion:
 
-    if isNew newVersion currentVersion
+    if (forceUpdate || (isNew newVersion currentVersion))
     then
       let
         versionKey = versionKeyInDefaultNix currentVersion;
diff --git a/pkgs/development/compilers/graalvm/enterprise-edition.nix b/pkgs/development/compilers/graalvm/enterprise-edition.nix
deleted file mode 100644
index f3ca8a4f5bbbf..0000000000000
--- a/pkgs/development/compilers/graalvm/enterprise-edition.nix
+++ /dev/null
@@ -1,183 +0,0 @@
-{ lib, stdenv, requireFile, perl, unzip, glibc, zlib, bzip2, gdk-pixbuf, xorg, glib, fontconfig, freetype, cairo, pango, gtk3, gtk2, ffmpeg, libGL, atk, alsa-lib, setJavaClassPath }:
-
-let
-  common = javaVersion:
-    let
-      graalvmXXX-ee = stdenv.mkDerivation rec {
-        pname = "graalvm${javaVersion}-ee";
-        version = "20.2.1";
-        srcs = [
-          (requireFile {
-             name   = "graalvm-ee-java${javaVersion}-linux-amd64-${version}.tar.gz";
-             sha256 = {  "8" = "e0bb182146283a43824dd2c2ceeb89b6ff7a93f9a85da889f8663ce1c2bd3002";
-                        "11" = "e5d92d361e7859fe5f88c92d7bb466e285e07f1e4e2d9944948f85fa0e3aee2b";
-                      }.${javaVersion};
-             url    = "https://www.oracle.com/technetwork/graalvm/downloads/index.html";
-          })
-          (requireFile {
-             name   = "native-image-installable-svm-svmee-java${javaVersion}-linux-amd64-${version}.jar";
-             sha256 = {  "8" = "37ac6a62f68adad513057a60513ba75749adf98cc73999b3918afe159900428d";
-                        "11" = "f62df715ad529f8b84854644ac99e0a9a349232c7f03985d20a2a8be20edaa44";
-                      }.${javaVersion};
-             url    = "https://www.oracle.com/technetwork/graalvm/downloads/index.html";
-          })
-          (requireFile {
-             name   = "llvm-toolchain-installable-java${javaVersion}-linux-amd64-${version}.jar";
-             sha256 = {  "8" = "da98a8c17b0c724b41d1596b57e282a1ecfcbf9140404dfb04b0d4d9fb159d8a";
-                        "11" = "fc442c396e92f59d034a69175104cb3565c3d128426bd939cc94c6ceccbb720f";
-                      }.${javaVersion};
-             url    = "https://www.oracle.com/technetwork/graalvm/downloads/index.html";
-          })
-          (requireFile {
-             name   = "ruby-installable-svm-svmee-java${javaVersion}-linux-amd64-${version}.jar";
-             sha256 = {  "8" = "44f6887249f2eb54cba98dd4d9de019da5463d92982e03bf655fffe4bb520daf";
-                        "11" = "941f3752ccb097958f49250586f04c305092ded3ea4c1b7d9a0f7632e47fa335";
-                      }.${javaVersion};
-             url    = "https://www.oracle.com/technetwork/graalvm/downloads/index.html";
-          })
-          (requireFile {
-             name   = "python-installable-svm-svmee-java${javaVersion}-linux-amd64-${version}.jar";
-             sha256 = {  "8" = "5c3993c701bd09c6064dcf4a6d9c7489620d0654b03c74682398c788c0211c09";
-                        "11" = "de3ebf35ce47dc399d7976cbd09fde0e85f2c10f85bc3fe8f32bb9e2b500ab70";
-                      }.${javaVersion};
-             url    = "https://www.oracle.com/technetwork/graalvm/downloads/index.html";
-          })
-          (requireFile {
-             name   = "wasm-installable-svm-svmee-java${javaVersion}-linux-amd64-${version}.jar";
-             sha256 = {  "8" = "c0a334b271fd32c098bb3c42eada7eafb9f536becaa756097eebe4682915b067";
-                        "11" = "9e801071992a0ff976bc40b640a8b9368fd8ea890ba986543658fcbaa3a7fd68";
-                      }.${javaVersion};
-             url    = "https://www.oracle.com/technetwork/graalvm/downloads/index.html";
-          })
-        ];
-        nativeBuildInputs = [ unzip perl ];
-        unpackPhase = ''
-          unpack_jar() {
-            jar=$1
-            unzip -o $jar -d $out
-            perl -ne 'use File::Path qw(make_path);
-                      use File::Basename qw(dirname);
-                      if (/^(.+) = (.+)$/) {
-                        make_path dirname("$ENV{out}/$1");
-                        system "ln -s $2 $ENV{out}/$1";
-                      }' $out/META-INF/symlinks
-            perl -ne 'if (/^(.+) = ([r-])([w-])([x-])([r-])([w-])([x-])([r-])([w-])([x-])$/) {
-                        my $mode = ($2 eq 'r' ? 0400 : 0) + ($3 eq 'w' ? 0200 : 0) + ($4  eq 'x' ? 0100 : 0) +
-                                   ($5 eq 'r' ? 0040 : 0) + ($6 eq 'w' ? 0020 : 0) + ($7  eq 'x' ? 0010 : 0) +
-                                   ($8 eq 'r' ? 0004 : 0) + ($9 eq 'w' ? 0002 : 0) + ($10 eq 'x' ? 0001 : 0);
-                        chmod $mode, "$ENV{out}/$1";
-                      }' $out/META-INF/permissions
-            rm -rf $out/META-INF
-          }
-
-          mkdir -p $out
-          arr=($srcs)
-          tar xf ''${arr[0]} -C $out --strip-components=1
-          unpack_jar ''${arr[1]}
-          unpack_jar ''${arr[2]}
-          unpack_jar ''${arr[3]}
-          unpack_jar ''${arr[4]}
-          unpack_jar ''${arr[5]}
-        '';
-
-        installPhase = {
-          "8" = ''
-            # BUG workaround http://mail.openjdk.java.net/pipermail/graal-dev/2017-December/005141.html
-            substituteInPlace $out/jre/lib/security/java.security \
-              --replace file:/dev/random    file:/dev/./urandom \
-              --replace NativePRNGBlocking  SHA1PRNG
-
-            # provide libraries needed for static compilation
-            for f in ${glibc}/lib/* ${glibc.static}/lib/* ${zlib.static}/lib/*; do
-              ln -s $f $out/jre/lib/svm/clibraries/linux-amd64/$(basename $f)
-            done
-
-            # allow using external truffle-api.jar and languages not included in the distrubution
-            rm $out/jre/lib/jvmci/parentClassLoader.classpath
-          '';
-          "11" = ''
-            # BUG workaround http://mail.openjdk.java.net/pipermail/graal-dev/2017-December/005141.html
-            substituteInPlace $out/conf/security/java.security \
-              --replace file:/dev/random    file:/dev/./urandom \
-              --replace NativePRNGBlocking  SHA1PRNG
-
-            # provide libraries needed for static compilation
-            for f in ${glibc}/lib/* ${glibc.static}/lib/* ${zlib.static}/lib/*; do
-              ln -s $f $out/lib/svm/clibraries/linux-amd64/$(basename $f)
-            done
-           '';
-        }.${javaVersion};
-
-        dontStrip = true;
-
-        # copy-paste openjdk's preFixup
-        preFixup = ''
-          # Set JAVA_HOME automatically.
-          mkdir -p $out/nix-support
-          cat <<EOF > $out/nix-support/setup-hook
-            if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
-          EOF
-        '';
-
-        postFixup = ''
-          rpath="${ {  "8" = "$out/jre/lib/amd64/jli:$out/jre/lib/amd64/server:$out/jre/lib/amd64";
-                      "11" = "$out/lib/jli:$out/lib/server:$out/lib";
-                    }.${javaVersion}
-                 }:${
-            lib.strings.makeLibraryPath [ glibc xorg.libXxf86vm xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXrender
-                                                 glib zlib bzip2 alsa-lib fontconfig freetype pango gtk3 gtk2 cairo gdk-pixbuf atk ffmpeg libGL ]}"
-
-          for f in $(find $out -type f -perm -0100); do
-            patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$f" || true
-            patchelf --set-rpath   "$rpath"                                    "$f" || true
-          done
-
-          for f in $(find $out -type f -perm -0100); do
-            if ldd "$f" | fgrep 'not found'; then echo "in file $f"; fi
-          done
-        '';
-
-        propagatedBuildInputs = [ setJavaClassPath zlib ]; # $out/bin/native-image needs zlib to build native executables
-
-        doInstallCheck = true;
-        installCheckPhase = ''
-          echo ${lib.escapeShellArg ''
-                   public class HelloWorld {
-                     public static void main(String[] args) {
-                       System.out.println("Hello World");
-                     }
-                   }
-                 ''} > HelloWorld.java
-          $out/bin/javac HelloWorld.java
-
-          # run on JVM with Graal Compiler
-          $out/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler HelloWorld
-          $out/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler HelloWorld | fgrep 'Hello World'
-
-          # Ahead-Of-Time compilation
-          $out/bin/native-image --no-server HelloWorld
-          ./helloworld
-          ./helloworld | fgrep 'Hello World'
-
-          # Ahead-Of-Time compilation with --static
-          $out/bin/native-image --no-server --static HelloWorld
-          ./helloworld
-          ./helloworld | fgrep 'Hello World'
-        '';
-
-        passthru.home = graalvmXXX-ee;
-
-        meta = with lib; {
-          homepage = "https://www.graalvm.org/";
-          description = "High-Performance Polyglot VM";
-          license = licenses.unfree;
-          maintainers = with maintainers; [ volth hlolli ];
-          platforms = [ "x86_64-linux" ];
-        };
-      };
-    in
-      graalvmXXX-ee;
-in {
-  graalvm8-ee  = common  "8";
-  graalvm11-ee = common "11";
-}
diff --git a/pkgs/development/compilers/inklecate/default.nix b/pkgs/development/compilers/inklecate/default.nix
index 32b91f5ddfecc..ecf5ed50ab3b5 100644
--- a/pkgs/development/compilers/inklecate/default.nix
+++ b/pkgs/development/compilers/inklecate/default.nix
@@ -17,7 +17,7 @@ buildDotnetModule rec {
     sha256 = "00lagmwsbxap5mgnw4gndpavmv3xsgincdaq1zvw7fkc3vn3pxqc";
   };
 
-  nativeBuildInputs = [ autoPatchelfHook ];
+  nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ];
   buildInputs = [ stdenv.cc.cc.lib ];
 
   projectFile = "inklecate/inklecate.csproj";
diff --git a/pkgs/development/compilers/inklecate/deps-darwin.nix b/pkgs/development/compilers/inklecate/deps-darwin.nix
index bd7e4399c95c1..d9c53d5e91e1d 100644
--- a/pkgs/development/compilers/inklecate/deps-darwin.nix
+++ b/pkgs/development/compilers/inklecate/deps-darwin.nix
@@ -1,6 +1,6 @@
 { fetchNuGet }: [
   (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "3.1.10"; sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "3.1.23"; sha256 = "0r2jd4ys31sgp2zcf8lzkji1xkyaxzgrkrh5rkk7p3r8b5f7fkcv"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "3.1.24"; sha256 = "0a4ra58nhh8q8r9lmzihjabx3dwyzh0wpdjlz4qxvjjbr6cqnhy9"; })
   (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "3.1.0"; sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
diff --git a/pkgs/development/compilers/inklecate/deps-linux.nix b/pkgs/development/compilers/inklecate/deps-linux.nix
index 1d5345147ed6d..c5b800a22fe73 100644
--- a/pkgs/development/compilers/inklecate/deps-linux.nix
+++ b/pkgs/development/compilers/inklecate/deps-linux.nix
@@ -1,6 +1,6 @@
 { fetchNuGet }: [
   (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "3.1.10"; sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "3.1.23"; sha256 = "09cy79swsmrfczv92wmxrwin7djpdl22yzhriac7r1xcg2sc36yk"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "3.1.24"; sha256 = "16wn8f3aswbbp1ivh0rdmhq99924ba8jmgaw964h23ncy6xyh2ip"; })
   (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "3.1.0"; sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
diff --git a/pkgs/development/compilers/julia/1.6-bin.nix b/pkgs/development/compilers/julia/1.6-bin.nix
index ece5a2a247164..acdd8a034e7bc 100644
--- a/pkgs/development/compilers/julia/1.6-bin.nix
+++ b/pkgs/development/compilers/julia/1.6-bin.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "julia-bin";
-  version = "1.6.5";
+  version = "1.6.6";
 
   src = {
     x86_64-linux = fetchurl {
       url = "https://julialang-s3.julialang.org/bin/linux/x64/${lib.versions.majorMinor version}/julia-${version}-linux-x86_64.tar.gz";
-      sha256 = "0b4fmcfd5q5wzvasmsfqq838rivpxn274n5y2kza4m3jakp27zmq";
+      sha256 = "0ia9a4h7w0n5rg57fkl1kzcyj500ymfwq3qsd2r7l82288dgfpy2";
     };
   }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
diff --git a/pkgs/development/compilers/kotlin/default.nix b/pkgs/development/compilers/kotlin/default.nix
index 82d7fe3237b2a..5f493394f04e7 100644
--- a/pkgs/development/compilers/kotlin/default.nix
+++ b/pkgs/development/compilers/kotlin/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kotlin";
-  version = "1.6.10";
+  version = "1.6.21";
 
   src = fetchurl {
     url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip";
-    sha256 = "sha256-QyJnmW0Na0sXyo3g+HjkTUoJm36fFYepjtxNJ+dsIVo=";
+    hash = "sha256-YyFm/tifP0MEgvWqB/LiC5I7cu9ojI9affOqFQLG2Lo=";
   };
 
   propagatedBuildInputs = [ jre ] ;
diff --git a/pkgs/development/compilers/kotlin/native.nix b/pkgs/development/compilers/kotlin/native.nix
index 514293e57459a..4438a78608a66 100644
--- a/pkgs/development/compilers/kotlin/native.nix
+++ b/pkgs/development/compilers/kotlin/native.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "kotlin-native";
-  version = "1.6.10";
+  version = "1.6.21";
 
   src = let
     getArch = {
@@ -20,9 +20,9 @@ stdenv.mkDerivation rec {
       "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-native-${arch}-${version}.tar.gz";
 
     getHash = arch: {
-      "macos-aarch64" = "sha256-W+9F1YZ5ATa6KaALYQEXW4xr4UxfquuC72xoB2987iM=";
-      "macos-x86_64" = "sha256-pceORt+YJZiP67nbnUB6ny1ic/r0aTrdA2hsQi5Otp8=";
-      "linux-x86_64" = "sha256-tcZffJPcR6PYJ22wIh5BHn/yjG3Jb+MG5COLbAQ2/Ww=";
+      "macos-aarch64" = "sha256-kkJvlDtK0Y+zeht+9fLX2HL2fyKOIyo0qYkJk+35tMU=";
+      "macos-x86_64" = "sha256-znTMO8h0pC6bkSUVYmxWPe4HVQPQw/VcJM11ckmG8CA=";
+      "linux-x86_64" = "sha256-r1H2riRLsZl5+65tw6/cp7rkJWjWoz8PozHt1mWmEfo=";
     }.${arch};
   in
     fetchurl {
diff --git a/pkgs/development/compilers/ldc/binary.nix b/pkgs/development/compilers/ldc/binary.nix
index 05928d396c861..dd4d51c81e3ab 100644
--- a/pkgs/development/compilers/ldc/binary.nix
+++ b/pkgs/development/compilers/ldc/binary.nix
@@ -18,8 +18,9 @@ in stdenv.mkDerivation {
   dontConfigure = true;
   dontBuild = true;
 
-  nativeBuildInputs = [ autoPatchelfHook ]
-    ++ lib.optional hostPlatform.isDarwin fixDarwinDylibNames;
+  nativeBuildInputs = lib.optionals hostPlatform.isLinux [
+    autoPatchelfHook
+  ] ++ lib.optional hostPlatform.isDarwin fixDarwinDylibNames;
 
   buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ libxml2 stdenv.cc.cc ];
 
diff --git a/pkgs/development/compilers/llvm/10/llvm/default.nix b/pkgs/development/compilers/llvm/10/llvm/default.nix
index bb1b90b36a922..128ac5709356d 100644
--- a/pkgs/development/compilers/llvm/10/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/10/llvm/default.nix
@@ -244,6 +244,12 @@ in stdenv.mkDerivation (rec {
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
   ''
+  + optionalString enableSharedLibraries ''
+    mkdir -p $dev/lib
+    mv $lib/lib/*.a $dev/lib
+    sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
+      "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
+  ''
   + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
     cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
   '';
diff --git a/pkgs/development/compilers/llvm/11/llvm/default.nix b/pkgs/development/compilers/llvm/11/llvm/default.nix
index e8cfd23faa7e8..955f9dbec7e8a 100644
--- a/pkgs/development/compilers/llvm/11/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/11/llvm/default.nix
@@ -255,6 +255,12 @@ in stdenv.mkDerivation (rec {
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
   ''
+  + optionalString enableSharedLibraries ''
+    mkdir -p $dev/lib
+    mv $lib/lib/*.a $dev/lib
+    sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
+      "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
+  ''
   + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
     cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
   '';
diff --git a/pkgs/development/compilers/llvm/12/llvm/default.nix b/pkgs/development/compilers/llvm/12/llvm/default.nix
index 2c035ee67a9e2..8acd4d2c1fda8 100644
--- a/pkgs/development/compilers/llvm/12/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/12/llvm/default.nix
@@ -242,6 +242,12 @@ in stdenv.mkDerivation (rec {
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
   ''
+  + optionalString enableSharedLibraries ''
+    mkdir -p $dev/lib
+    mv $lib/lib/*.a $dev/lib
+    sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
+      "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
+  ''
   + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
     cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
   '';
diff --git a/pkgs/development/compilers/llvm/13/llvm/default.nix b/pkgs/development/compilers/llvm/13/llvm/default.nix
index abfb2b36d18f8..b760d75cf4ed7 100644
--- a/pkgs/development/compilers/llvm/13/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/13/llvm/default.nix
@@ -205,6 +205,12 @@ in stdenv.mkDerivation (rec {
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
   ''
+  + optionalString enableSharedLibraries ''
+    mkdir -p $dev/lib
+    mv $lib/lib/*.a $dev/lib
+    sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
+      "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
+  ''
   + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
     cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
   '';
diff --git a/pkgs/development/compilers/llvm/14/clang/default.nix b/pkgs/development/compilers/llvm/14/clang/default.nix
index 9544494b356e5..5ff02d68de426 100644
--- a/pkgs/development/compilers/llvm/14/clang/default.nix
+++ b/pkgs/development/compilers/llvm/14/clang/default.nix
@@ -15,6 +15,7 @@ let
       mkdir -p "$out"
       cp -r ${monorepoSrc}/cmake "$out"
       cp -r ${monorepoSrc}/${pname} "$out"
+      cp -r ${monorepoSrc}/clang-tools-extra "$out"
     '';
 
     sourceRoot = "${src.name}/${pname}";
diff --git a/pkgs/development/compilers/llvm/14/default.nix b/pkgs/development/compilers/llvm/14/default.nix
index 93cacafdc5556..4e5e85684a2aa 100644
--- a/pkgs/development/compilers/llvm/14/default.nix
+++ b/pkgs/development/compilers/llvm/14/default.nix
@@ -18,7 +18,7 @@
 }:
 
 let
-  release_version = "14.0.0";
+  release_version = "14.0.1";
   candidate = ""; # empty or "rcN"
   dash-candidate = lib.optionalString (candidate != "") "-${candidate}";
   rev = ""; # When using a Git commit
@@ -30,7 +30,7 @@ let
     owner = "llvm";
     repo = "llvm-project";
     rev = if rev != "" then rev else "llvmorg-${version}";
-    sha256 = "1ixqzjzq4ad3mv1w44gwcg1shy34c2b3i9ja71vx1wa7l2ms2376";
+    sha256 = "14wgrjwj02ivlwb1zgidacspkkcfpsqjmgd7r838qmwpk56yxl9f";
   };
 
   llvm_meta = {
diff --git a/pkgs/development/compilers/llvm/14/llvm/default.nix b/pkgs/development/compilers/llvm/14/llvm/default.nix
index 05aac728b4521..ea1473378311e 100644
--- a/pkgs/development/compilers/llvm/14/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/14/llvm/default.nix
@@ -200,6 +200,12 @@ in stdenv.mkDerivation (rec {
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
   ''
+  + optionalString enableSharedLibraries ''
+    mkdir -p $dev/lib
+    mv $lib/lib/*.a $dev/lib
+    sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
+      "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
+  ''
   + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
     cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
   '';
diff --git a/pkgs/development/compilers/llvm/5/llvm/default.nix b/pkgs/development/compilers/llvm/5/llvm/default.nix
index cf668cd566a65..253aaade6939e 100644
--- a/pkgs/development/compilers/llvm/5/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/5/llvm/default.nix
@@ -222,6 +222,12 @@ stdenv.mkDerivation (rec {
       ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${v}.dylib
     '') versionSuffixes}
   ''
+  + optionalString enableSharedLibraries ''
+    mkdir -p $dev/lib
+    mv $lib/lib/*.a $dev/lib
+    sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
+      "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
+  ''
   + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
     cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
   '';
diff --git a/pkgs/development/compilers/llvm/6/llvm/default.nix b/pkgs/development/compilers/llvm/6/llvm/default.nix
index 61f9234274d35..622b90e58e874 100644
--- a/pkgs/development/compilers/llvm/6/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/6/llvm/default.nix
@@ -215,6 +215,12 @@ stdenv.mkDerivation (rec {
       ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${v}.dylib
     '') versionSuffixes}
   ''
+  + optionalString enableSharedLibraries ''
+    mkdir -p $dev/lib
+    mv $lib/lib/*.a $dev/lib
+    sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
+      "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
+  ''
   + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
     cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
   '';
diff --git a/pkgs/development/compilers/llvm/7/llvm/default.nix b/pkgs/development/compilers/llvm/7/llvm/default.nix
index b324e1a0e4d61..01784baca8ce6 100644
--- a/pkgs/development/compilers/llvm/7/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/7/llvm/default.nix
@@ -234,6 +234,12 @@ in stdenv.mkDerivation (rec {
       ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${v}.dylib
     '') versionSuffixes}
   ''
+  + optionalString enableSharedLibraries ''
+    mkdir -p $dev/lib
+    mv $lib/lib/*.a $dev/lib
+    sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
+      "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
+  ''
   + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
     cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
   '';
diff --git a/pkgs/development/compilers/llvm/8/llvm/default.nix b/pkgs/development/compilers/llvm/8/llvm/default.nix
index efd1707eb3378..01a052d4042fc 100644
--- a/pkgs/development/compilers/llvm/8/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/8/llvm/default.nix
@@ -226,6 +226,12 @@ in stdenv.mkDerivation (rec {
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
   ''
+  + optionalString enableSharedLibraries ''
+    mkdir -p $dev/lib
+    mv $lib/lib/*.a $dev/lib
+    sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
+      "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
+  ''
   + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
     cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
   '';
diff --git a/pkgs/development/compilers/llvm/9/llvm/default.nix b/pkgs/development/compilers/llvm/9/llvm/default.nix
index 1dd1455ed6d69..b197e9ab8ba18 100644
--- a/pkgs/development/compilers/llvm/9/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/9/llvm/default.nix
@@ -241,6 +241,12 @@ in stdenv.mkDerivation (rec {
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
   ''
+  + optionalString enableSharedLibraries ''
+    mkdir -p $dev/lib
+    mv $lib/lib/*.a $dev/lib
+    sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
+      "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
+  ''
   + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
     cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
   '';
diff --git a/pkgs/development/compilers/llvm/git/llvm/default.nix b/pkgs/development/compilers/llvm/git/llvm/default.nix
index d2059cc66ba23..02ec0f3ab119a 100644
--- a/pkgs/development/compilers/llvm/git/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/git/llvm/default.nix
@@ -200,6 +200,12 @@ in stdenv.mkDerivation (rec {
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
   ''
+  + optionalString enableSharedLibraries ''
+    mkdir -p $dev/lib
+    mv $lib/lib/*.a $dev/lib
+    sed -i -E "s|$lib/lib/(.*)\.a|$dev/lib/\1\.a|" \
+      "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake"
+  ''
   + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
     cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
   '';
diff --git a/pkgs/development/compilers/llvm/multi.nix b/pkgs/development/compilers/llvm/multi.nix
index 60db622a73ab5..ecea5d440378e 100644
--- a/pkgs/development/compilers/llvm/multi.nix
+++ b/pkgs/development/compilers/llvm/multi.nix
@@ -19,9 +19,9 @@ let
       lib = gcc_multi_sysroot;
     };
   } ''
-    mkdir -p $out/lib/gcc
+    mkdir -p $out/lib{,64}/gcc
 
-    ln -s ${combine gcc64}/lib/gcc/* $out/lib/gcc/
+    ln -s ${combine gcc64}/lib/gcc/* $out/lib64/gcc/
     ln -s ${combine gcc32}/lib/gcc/* $out/lib/gcc/
     # XXX: This shouldn't be needed, clang just doesn't look for "i686-unknown"
     ln -s $out/lib/gcc/i686-unknown-linux-gnu $out/lib/gcc/i686-pc-linux-gnu
diff --git a/pkgs/development/compilers/mruby/default.nix b/pkgs/development/compilers/mruby/default.nix
index 4d046cd7f84f7..6651df5a2f06e 100644
--- a/pkgs/development/compilers/mruby/default.nix
+++ b/pkgs/development/compilers/mruby/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, ruby, bison, rake, fetchFromGitHub }:
+{ lib, stdenv, ruby, bison, rake, fetchFromGitHub, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "mruby";
@@ -11,6 +11,14 @@ stdenv.mkDerivation rec {
     sha256  = "sha256-C3K7ZooaOMa+V2HjxwiKxrrMb7ffl4QAgPsftRtb60c=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "CVE-2022-1212.patch";
+      url = "https://github.com/mruby/mruby/commit/3cf291f72224715942beaf8553e42ba8891ab3c6.patch";
+      sha256  = "1bl8wm6v7v18zgxqvm4kbn8g97a75phzrdah279xqw1qvplbd2w7";
+    })
+  ];
+
   nativeBuildInputs = [ ruby bison rake ];
 
   # Necessary so it uses `gcc` instead of `ld` for linking.
diff --git a/pkgs/development/compilers/mrustc/default.nix b/pkgs/development/compilers/mrustc/default.nix
index 4c813d88b7657..2172c61099f22 100644
--- a/pkgs/development/compilers/mrustc/default.nix
+++ b/pkgs/development/compilers/mrustc/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
     sed -i 's/\$(shell git show --pretty=%H -s)/${rev}/' Makefile
     sed -i 's/\$(shell git symbolic-ref -q --short HEAD || git describe --tags --exact-match)/${tag}/' Makefile
     sed -i 's/\$(shell git diff-index --quiet HEAD; echo $$?)/0/' Makefile
+    sed '1i#include <limits>' -i src/trans/codegen_c.cpp
   '';
 
   strictDeps = true;
diff --git a/pkgs/development/compilers/muon/default.nix b/pkgs/development/compilers/muonlang/default.nix
index aef02bca970de..aef02bca970de 100644
--- a/pkgs/development/compilers/muon/default.nix
+++ b/pkgs/development/compilers/muonlang/default.nix
diff --git a/pkgs/development/compilers/ocaml/4.00.1.nix b/pkgs/development/compilers/ocaml/4.00.1.nix
index 93e08740ddd82..abc5ff14bf298 100644
--- a/pkgs/development/compilers/ocaml/4.00.1.nix
+++ b/pkgs/development/compilers/ocaml/4.00.1.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, ncurses, xlibsWrapper }:
+{ lib, stdenv, fetchurl, fetchpatch, ncurses, xlibsWrapper }:
 
 let
    useX11 = !stdenv.isAarch32 && !stdenv.isMips;
@@ -15,6 +15,12 @@ stdenv.mkDerivation rec {
     sha256 = "33c3f4acff51685f5bfd7c260f066645e767d4e865877bf1613c176a77799951";
   };
 
+  # Compatibility with Glibc 2.34
+  patches = [ (fetchpatch {
+    url = "https://github.com/ocaml/ocaml/commit/60b0cdaf2519d881947af4175ac4c6ff68901be3.patch";
+    sha256 = "sha256:07g9q9sjk4xsbqix7jxggfp36v15pmqw4bms80g5car0hfbszirn";
+  })];
+
   prefixKey = "-prefix ";
   configureFlags = [ "-no-tk" ] ++ optionals useX11 [ "-x11lib" xlibsWrapper ];
   buildFlags = [ "world" ] ++ optionals useNativeCompilers [ "bootstrap" "world.opt" ];
diff --git a/pkgs/development/compilers/ocaml/4.01.0.nix b/pkgs/development/compilers/ocaml/4.01.0.nix
index 6362f360f7dab..c19f03c5d1645 100644
--- a/pkgs/development/compilers/ocaml/4.01.0.nix
+++ b/pkgs/development/compilers/ocaml/4.01.0.nix
@@ -2,6 +2,12 @@ import ./generic.nix {
   major_version = "4";
   minor_version = "01";
   patch_version = "0";
-  patches = [ ./fix-clang-build-on-osx.diff ];
+  patches = [
+    ./fix-clang-build-on-osx.diff
+
+    # Compatibility with Glibc 2.34
+    { url = "https://github.com/ocaml/ocaml/commit/d111407bf4ff71171598d30825c8e59ed5f75fd6.patch";
+      sha256 = "sha256:08mpy7lsiwv8m5qrqc4xzyiv2hri5713gz2qs1nfz02hz1bd79mc"; }
+  ];
   sha256 = "03d7ida94s1gpr3gadf4jyhmh5rrszd5s4m4z59daaib25rvfyv7";
 }
diff --git a/pkgs/development/compilers/ocaml/4.02.nix b/pkgs/development/compilers/ocaml/4.02.nix
index 4773f9f74a5a1..9610b78257602 100644
--- a/pkgs/development/compilers/ocaml/4.02.nix
+++ b/pkgs/development/compilers/ocaml/4.02.nix
@@ -2,6 +2,12 @@ import ./generic.nix {
   major_version = "4";
   minor_version = "02";
   patch_version = "3";
-  patches = [ ./ocamlbuild.patch ];
+  patches = [
+    ./ocamlbuild.patch
+
+    # Compatibility with Glibc 2.34
+    { url = "https://github.com/ocaml/ocaml/commit/9de2b77472aee18a94b41cff70caee27fb901225.patch";
+      sha256 = "sha256:12sw512kpwk0xf2g6j0h5vqgd8xcmgrvgyilx6fxbd6bnfv1yib9"; }
+  ];
   sha256 = "1qwwvy8nzd87hk8rd9sm667nppakiapnx4ypdwcrlnav2dz6kil3";
 }
diff --git a/pkgs/development/compilers/ocaml/4.03.nix b/pkgs/development/compilers/ocaml/4.03.nix
index 0bbe823304199..9f6c24014ea18 100644
--- a/pkgs/development/compilers/ocaml/4.03.nix
+++ b/pkgs/development/compilers/ocaml/4.03.nix
@@ -3,4 +3,10 @@ import ./generic.nix {
   minor_version = "03";
   patch_version = "0";
   sha256 = "09p3iwwi55r6rbrpyp8f0wmkb0ppcgw67yxw6yfky60524wayp39";
+
+  patches = [
+    # Compatibility with Glibc 2.34
+    { url = "https://github.com/ocaml/ocaml/commit/a8b2cc3b40f5269ce8525164ec2a63b35722b22b.patch";
+      sha256 = "sha256:1rrknmrk86xrj2k3hznnjk1gwnliyqh125zabg1hvy6dlvml9b0x"; }
+  ];
 }
diff --git a/pkgs/development/compilers/ocaml/4.04.nix b/pkgs/development/compilers/ocaml/4.04.nix
index 4f49bcf807285..7fa1367a51255 100644
--- a/pkgs/development/compilers/ocaml/4.04.nix
+++ b/pkgs/development/compilers/ocaml/4.04.nix
@@ -6,4 +6,10 @@ import ./generic.nix {
 
   # If the executable is stipped it does not work
   dontStrip = true;
+
+  patches = [
+    # Compatibility with Glibc 2.34
+    { url = "https://github.com/ocaml/ocaml/commit/6bcff7e6ce1a43e088469278eb3a9341e6a2ca5b.patch";
+      sha256 = "sha256:1hd45f7mwwrrym2y4dbcwklpv0g94avbz7qrn81l7w8mrrj3bngi"; }
+  ];
 }
diff --git a/pkgs/development/compilers/ocaml/4.05.nix b/pkgs/development/compilers/ocaml/4.05.nix
index a63b06a9f6288..60cd6c359993c 100644
--- a/pkgs/development/compilers/ocaml/4.05.nix
+++ b/pkgs/development/compilers/ocaml/4.05.nix
@@ -6,4 +6,10 @@ import ./generic.nix {
 
   # If the executable is stipped it does not work
   dontStrip = true;
+
+  patches = [
+    # Compatibility with Glibc 2.34
+    { url = "https://github.com/ocaml/ocaml/commit/50c2d1275e537906ea144bd557fde31e0bf16e5f.patch";
+      sha256 = "sha256:0ck9b2dpgg5k2p9ndbgniql24h35pn1bbpxjvk69j715lswzy4mh"; }
+  ];
 }
diff --git a/pkgs/development/compilers/ocaml/4.06.nix b/pkgs/development/compilers/ocaml/4.06.nix
index b54b8a6288fea..0f5e0a2d70be2 100644
--- a/pkgs/development/compilers/ocaml/4.06.nix
+++ b/pkgs/development/compilers/ocaml/4.06.nix
@@ -6,4 +6,10 @@ import ./generic.nix {
 
   # If the executable is stipped it does not work
   dontStrip = true;
+
+  patches = [
+    # Compatibility with Glibc 2.34
+    { url = "https://github.com/ocaml/ocaml/commit/137a4ad167f25fe1bee792977ed89f30d19bcd74.patch";
+      sha256 = "sha256:0izsf6rm3677vbbx0snkmn9pkfcsayrdwz3ipiml5wjiaysnchjz"; }
+  ];
 }
diff --git a/pkgs/development/compilers/ocaml/4.07.nix b/pkgs/development/compilers/ocaml/4.07.nix
index c1952f30ba688..8292213bf46d6 100644
--- a/pkgs/development/compilers/ocaml/4.07.nix
+++ b/pkgs/development/compilers/ocaml/4.07.nix
@@ -6,4 +6,10 @@ import ./generic.nix {
 
   # If the executable is stripped it does not work
   dontStrip = true;
+
+  patches = [
+    # Compatibility with Glibc 2.34
+    { url = "https://github.com/ocaml/ocaml/commit/00b8c4d503732343d5d01761ad09650fe50ff3a0.patch";
+      sha256 = "sha256:02cfya5ff5szx0fsl5x8ax76jyrla9zmf3qxavf3adhwq5ssrfcv"; }
+  ];
 }
diff --git a/pkgs/development/compilers/ocaml/4.08.nix b/pkgs/development/compilers/ocaml/4.08.nix
index 11c22e636ef10..3c4cf0a712553 100644
--- a/pkgs/development/compilers/ocaml/4.08.nix
+++ b/pkgs/development/compilers/ocaml/4.08.nix
@@ -9,4 +9,10 @@ import ./generic.nix {
 
   # Breaks build with Clang
   hardeningDisable = [ "strictoverflow" ];
+
+  patches = [
+    # Compatibility with Glibc 2.34
+    { url = "https://github.com/ocaml/ocaml/commit/17df117b4939486d3285031900587afce5262c8c.patch";
+      sha256 = "sha256:1b3jc6sj2k23yvfwrv6nc1f4x2n2biqbhbbp74aqb6iyqyjsq35n"; }
+  ];
 }
diff --git a/pkgs/development/compilers/ocaml/4.09.nix b/pkgs/development/compilers/ocaml/4.09.nix
index a093a24464195..c5f649c15d6bb 100644
--- a/pkgs/development/compilers/ocaml/4.09.nix
+++ b/pkgs/development/compilers/ocaml/4.09.nix
@@ -6,4 +6,10 @@ import ./generic.nix {
 
   # Breaks build with Clang
   hardeningDisable = [ "strictoverflow" ];
+
+  patches = [
+    # Compatibility with Glibc 2.34
+    { url = "https://github.com/ocaml/ocaml/commit/8eed2e441222588dc385a98ae8bd6f5820eb0223.patch";
+      sha256 = "sha256:1b3jc6sj2k23yvfwrv6nc1f4x2n2biqbhbbp74aqb6iyqyjsq35n"; }
+  ];
 }
diff --git a/pkgs/development/compilers/ocaml/4.10.nix b/pkgs/development/compilers/ocaml/4.10.nix
index 78051040b5718..48d01a5a8c8d2 100644
--- a/pkgs/development/compilers/ocaml/4.10.nix
+++ b/pkgs/development/compilers/ocaml/4.10.nix
@@ -3,4 +3,7 @@ import ./generic.nix {
   minor_version = "10";
   patch_version = "2";
   sha256 = "sha256-locUYQeCgtXbAiB32JveJchfteN2YStE+MN9ToTwAOM=";
+  patches = [
+    ./glibc-2.34-for-ocaml-4.10-and-11.patch
+  ];
 }
diff --git a/pkgs/development/compilers/ocaml/4.11.nix b/pkgs/development/compilers/ocaml/4.11.nix
index 3e5aefc11f1ce..6a2e4f61f80e2 100644
--- a/pkgs/development/compilers/ocaml/4.11.nix
+++ b/pkgs/development/compilers/ocaml/4.11.nix
@@ -3,4 +3,7 @@ import ./generic.nix {
   minor_version = "11";
   patch_version = "2";
   sha256 = "1m3wrgkkv3f77wvcymjm0i2srxzmx62y6jln3i0a2px07ng08l9z";
+  patches = [
+    ./glibc-2.34-for-ocaml-4.10-and-11.patch
+  ];
 }
diff --git a/pkgs/development/compilers/ocaml/4.12.nix b/pkgs/development/compilers/ocaml/4.12.nix
index 4be2bcf5f9d03..2066d0d5ad314 100644
--- a/pkgs/development/compilers/ocaml/4.12.nix
+++ b/pkgs/development/compilers/ocaml/4.12.nix
@@ -3,4 +3,9 @@ import ./generic.nix {
   minor_version = "12";
   patch_version = "1";
   sha256 = "1jbjjnmqq6ymsy81x188i256bz4z5jrz1pws8g1qf59c32ganjkf";
+  patches = [
+    { url = "https://src.fedoraproject.org/rpms/ocaml/raw/129153b85109944bf0b2922949f77ef8f32b39a1/f/0004-Dynamically-allocate-the-alternate-signal-stack-1026.patch";
+      sha256 = "sha256-FdQ1HkMKHU9QvgLPUBvMdPiEa7w7IL3+1F3SLv63Gog=";
+    }
+  ];
 }
diff --git a/pkgs/development/compilers/ocaml/Makefile.nixpkgs b/pkgs/development/compilers/ocaml/Makefile.nixpkgs
new file mode 100644
index 0000000000000..2d6457852fc9a
--- /dev/null
+++ b/pkgs/development/compilers/ocaml/Makefile.nixpkgs
@@ -0,0 +1,16 @@
+# ocaml build system does not allow for parallel building of some
+# top-level targets like 'world', 'bootstrap', 'world.opt' as
+# then spawn '$(MAKE) all' subprocesses that conflict among each
+# other. But we would still like to run each target in parallel
+# individually. This file defines such entry points.
+
+# Re-export all existing phases to make 'make install' work as is.
+include Makefile
+
+nixpkgs_world:
+	$(MAKE) world
+
+nixpkgs_world_bootstrap_world_opt:
+	$(MAKE) world
+	$(MAKE) bootstrap
+	$(MAKE) world.opt
diff --git a/pkgs/development/compilers/ocaml/generic.nix b/pkgs/development/compilers/ocaml/generic.nix
index ec52e56c1faa2..2c6045c13a627 100644
--- a/pkgs/development/compilers/ocaml/generic.nix
+++ b/pkgs/development/compilers/ocaml/generic.nix
@@ -1,4 +1,4 @@
-{ minor_version, major_version, patch_version
+{ minor_version, major_version, patch_version, patches ? []
 , ...}@args:
 let
   versionNoPatch = "${toString major_version}.${toString minor_version}";
@@ -6,8 +6,8 @@ let
   safeX11 = stdenv: !(stdenv.isAarch32 || stdenv.isMips || stdenv.hostPlatform.isStatic);
 in
 
-{ lib, stdenv, fetchurl, ncurses, buildEnv, libunwind
-, libX11, xorgproto, useX11 ? safeX11 stdenv && !lib.versionAtLeast version "4.09"
+{ lib, stdenv, fetchurl, ncurses, buildEnv, libunwind, fetchpatch
+, libX11, xorgproto, useX11 ? safeX11 stdenv && lib.versionOlder version "4.09"
 , aflSupport ? false
 , flambdaSupport ? false
 , spaceTimeSupport ? false
@@ -28,21 +28,22 @@ in
 let
    useNativeCompilers = !stdenv.isMips;
    inherit (lib) optional optionals optionalString;
-   name = "ocaml${optionalString aflSupport "+afl"}${optionalString spaceTimeSupport "+spacetime"}${optionalString flambdaSupport "+flambda"}-${version}";
+   pname = "ocaml${optionalString aflSupport "+afl"}${optionalString spaceTimeSupport "+spacetime"}${optionalString flambdaSupport "+flambda"}";
 in
 
 let
   x11env = buildEnv { name = "x11env"; paths = [libX11 xorgproto]; };
   x11lib = x11env + "/lib";
   x11inc = x11env + "/include";
+
+  fetchpatch' = x: if builtins.isAttrs x then fetchpatch x else x;
 in
 
 stdenv.mkDerivation (args // {
 
-  inherit name;
-  inherit version;
+  inherit pname version src;
 
-  inherit src;
+  patches = map fetchpatch' patches;
 
   strictDeps = true;
 
@@ -74,15 +75,26 @@ stdenv.mkDerivation (args // {
   hardeningDisable = lib.optional (lib.versionAtLeast version "4.09" && stdenv.hostPlatform.isMusl) "pie"
     ++ lib.optionals (args ? hardeningDisable) args.hardeningDisable;
 
-  buildFlags = [ "world" ] ++ optionals useNativeCompilers [ "bootstrap" "world.opt" ];
-  buildInputs = optional (!lib.versionAtLeast version "4.07") ncurses
+  # Older versions have some race:
+  #  cp: cannot stat 'boot/ocamlrun': No such file or directory
+  #  make[2]: *** [Makefile:199: backup] Error 1
+  enableParallelBuilding = lib.versionAtLeast version "4.08";
+
+  # Workaround lack of parallelism support among top-level targets:
+  # we place nixpkgs-specific targets to a separate file and set
+  # sequential order among them as a single rule.
+  makefile = ./Makefile.nixpkgs;
+  buildFlags = if useNativeCompilers
+    then ["nixpkgs_world_bootstrap_world_opt"]
+    else ["nixpkgs_world"];
+  buildInputs = optional (lib.versionOlder version "4.07") ncurses
     ++ optionals useX11 [ libX11 xorgproto ];
   propagatedBuildInputs = optional spaceTimeSupport libunwind;
   installTargets = [ "install" ] ++ optional useNativeCompilers "installopt";
-  preConfigure = optionalString (!lib.versionAtLeast version "4.04") ''
+  preConfigure = optionalString (lib.versionOlder version "4.04") ''
     CAT=$(type -tp cat)
     sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang
-  '' + optionalString (stdenv.isDarwin && !lib.versionAtLeast version "4.13") ''
+  '' + optionalString (stdenv.isDarwin && lib.versionOlder version "4.13") ''
     # Do what upstream does by default now: https://github.com/ocaml/ocaml/pull/10176
     # This is required for aarch64-darwin, everything else works as is.
     AS="${stdenv.cc}/bin/cc -c" ASPP="${stdenv.cc}/bin/cc -c"
@@ -125,7 +137,7 @@ stdenv.mkDerivation (args // {
     '';
 
     platforms = with platforms; linux ++ darwin;
-    broken = stdenv.isAarch64 && !lib.versionAtLeast version "4.06";
+    broken = stdenv.isAarch64 && lib.versionOlder version "4.06";
   };
 
 })
diff --git a/pkgs/development/compilers/ocaml/glibc-2.34-for-ocaml-4.10-and-11.patch b/pkgs/development/compilers/ocaml/glibc-2.34-for-ocaml-4.10-and-11.patch
new file mode 100644
index 0000000000000..4ff9e6fddba57
--- /dev/null
+++ b/pkgs/development/compilers/ocaml/glibc-2.34-for-ocaml-4.10-and-11.patch
@@ -0,0 +1,37 @@
+From dfb5e954a04f59b0456cc4c0ddf3acaf22e0ff07 Mon Sep 17 00:00:00 2001
+From: Richard W.M. Jones <rjones@redhat.com>
+Date: Feb 28 2021 20:45:47 +0000
+Subject: Workaround for glibc non-constant SIGSTKSZ
+
+
+https://github.com/ocaml/ocaml/issues/10250
+
+Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
+
+---
+
+diff --git a/runtime/signals_nat.c b/runtime/signals_nat.c
+index 8b64ab4..7f0a975 100644
+--- a/runtime/signals_nat.c
++++ b/runtime/signals_nat.c
+@@ -181,7 +181,19 @@ DECLARE_SIGNAL_HANDLER(trap_handler)
+ #error "CONTEXT_SP is required if HAS_STACK_OVERFLOW_DETECTION is defined"
+ #endif
+ 
++#ifndef __GLIBC__
+ static char sig_alt_stack[SIGSTKSZ];
++#else
++/* glibc 2.34 has non-constant SIGSTKSZ */
++static char *sig_alt_stack;
++
++static void allocate_sig_alt_stack(void) __attribute__((constructor));
++static void
++allocate_sig_alt_stack(void)
++{
++  sig_alt_stack = malloc(SIGSTKSZ);
++}
++#endif
+ 
+ /* Code compiled with ocamlopt never accesses more than
+    EXTRA_STACK bytes below the stack pointer. */
+
diff --git a/pkgs/development/compilers/open-watcom/v2.nix b/pkgs/development/compilers/open-watcom/v2.nix
index dc2af6e7835de..ae28e424e5e84 100644
--- a/pkgs/development/compilers/open-watcom/v2.nix
+++ b/pkgs/development/compilers/open-watcom/v2.nix
@@ -12,14 +12,14 @@
 
 stdenv.mkDerivation rec {
   pname = "open-watcom-v2";
-  version = "unstable-2022-03-14";
+  version = "unstable-2022-04-23";
   name = "${pname}-unwrapped-${version}";
 
   src = fetchFromGitHub {
     owner = "open-watcom";
     repo = "open-watcom-v2";
-    rev = "22627ccc1bd3de70aff9ac056e0dc9ecf7f7b6ec";
-    sha256 = "khy/fhmQjTGKfx6iOUBt+ySwpEx0df/7meyNvBnJAPY=";
+    rev = "3351d37f44eef84fcd428b8b5537cb29a7db22a8";
+    sha256 = "mSF9xFKJ5AQ+Ds84qMD8xJJ7B9AMujgksxMNzSDzLA4=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/compilers/openjdk/11.nix b/pkgs/development/compilers/openjdk/11.nix
index 6f4b78286d63a..8c45bece9adc1 100644
--- a/pkgs/development/compilers/openjdk/11.nix
+++ b/pkgs/development/compilers/openjdk/11.nix
@@ -40,6 +40,7 @@ let
       ./currency-date-range-jdk10.patch
       ./increase-javadoc-heap.patch
       ./fix-library-path-jdk11.patch
+      ./fix-glibc-2.34.patch
     ] ++ lib.optionals (!headless && enableGnome2) [
       ./swing-use-gtk-jdk10.patch
     ];
diff --git a/pkgs/development/compilers/openjdk/16.nix b/pkgs/development/compilers/openjdk/16.nix
index e6fd12a632b38..0a4a8e1de4131 100644
--- a/pkgs/development/compilers/openjdk/16.nix
+++ b/pkgs/development/compilers/openjdk/16.nix
@@ -48,6 +48,7 @@ let
         url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch";
         sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r";
       })
+      ./fix-glibc-2.34.patch
     ] ++ lib.optionals (!headless && enableGnome2) [
       ./swing-use-gtk-jdk13.patch
     ];
diff --git a/pkgs/development/compilers/openjdk/8.nix b/pkgs/development/compilers/openjdk/8.nix
index dae405ff3b2f4..c232b1f01f16d 100644
--- a/pkgs/development/compilers/openjdk/8.nix
+++ b/pkgs/development/compilers/openjdk/8.nix
@@ -17,7 +17,8 @@ let
     i686-linux = "i386";
     x86_64-linux = "amd64";
     aarch64-linux = "aarch64";
-  }.${stdenv.system} or (throw "Unsupported platform");
+    powerpc64le-linux = "ppc64le";
+  }.${stdenv.system} or (throw "Unsupported platform ${stdenv.system}");
 
   update = "322";
   build = "ga";
diff --git a/pkgs/development/compilers/openjdk/darwin/8.nix b/pkgs/development/compilers/openjdk/darwin/8.nix
index 009802b29234e..aeb60d8bc4607 100644
--- a/pkgs/development/compilers/openjdk/darwin/8.nix
+++ b/pkgs/development/compilers/openjdk/darwin/8.nix
@@ -79,6 +79,12 @@ let
       EOF
     '';
 
+    # fixupPhase is moving the man to share/man which breaks it because it's a
+    # relative symlink.
+    postFixup = ''
+      ln -nsf ../zulu-${lib.versions.major version}.jdk/Contents/Home/man $out/share/man
+    '';
+
     passthru = {
       jre = jdk;
       home = jdk;
diff --git a/pkgs/development/compilers/openjdk/fix-glibc-2.34.patch b/pkgs/development/compilers/openjdk/fix-glibc-2.34.patch
new file mode 100644
index 0000000000000..7bf8b2b167447
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/fix-glibc-2.34.patch
@@ -0,0 +1,24 @@
+Taken from https://build.opensuse.org/package/view_file/Java:Factory/java-15-openjdk/openjdk-glibc234.patch
+
+--- openjdk/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c	2021-04-09 11:36:58.000000000 +0200
++++ openjdk/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c	2021-08-26 15:42:52.326232581 +0200
+@@ -67,8 +67,17 @@
+   longjmp(context, 1);
+ }
+ 
++static char* altstack = NULL;
++
+ void set_signal_handler() {
+-  static char altstack[SIGSTKSZ];
++  if (altstack == NULL) {
++    // Dynamically allocated in case SIGSTKSZ is not constant
++    altstack = malloc(SIGSTKSZ);
++    if (altstack == NULL) {
++      fprintf(stderr, "Test ERROR. Unable to malloc altstack space\n");
++      exit(7);
++    }
++  }
+ 
+   stack_t ss = {
+     .ss_size = SIGSTKSZ,
+
diff --git a/pkgs/development/compilers/polyml/5.6.nix b/pkgs/development/compilers/polyml/5.6.nix
index 7858e3f6dc119..4354ce7e2d671 100644
--- a/pkgs/development/compilers/polyml/5.6.nix
+++ b/pkgs/development/compilers/polyml/5.6.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, autoreconfHook}:
+{lib, stdenv, fetchurl, autoreconfHook, fetchpatch }:
 
 let
   version = "5.6";
@@ -12,6 +12,14 @@ stdenv.mkDerivation {
     substituteInPlace configure.ac --replace stdc++ c++
   '';
 
+  patches = [
+    # glibc 2.34 compat
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/polyml/raw/4d8868ca5a1ce3268f212599a321f8011c950496/f/polyml-pthread-stack-min.patch";
+      sha256 = "1h5ihg2sxld9ymrl3f2mpnbn2242ka1fsa0h4gl9h90kndvg6kby";
+    })
+  ];
+
   buildInputs = lib.optional stdenv.isDarwin autoreconfHook;
 
   src = fetchurl {
diff --git a/pkgs/development/compilers/polyml/5.7.nix b/pkgs/development/compilers/polyml/5.7.nix
index 5ac6990383cce..efd3d1bfd40aa 100644
--- a/pkgs/development/compilers/polyml/5.7.nix
+++ b/pkgs/development/compilers/polyml/5.7.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, gmp, libffi }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, gmp, libffi, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "polyml";
@@ -8,7 +8,15 @@ stdenv.mkDerivation rec {
     substituteInPlace configure.ac --replace stdc++ c++
   '';
 
-  patches = [ ./5.7-new-libffi-FFI_SYSV.patch ];
+  patches = [
+    ./5.7-new-libffi-FFI_SYSV.patch
+
+    # glibc 2.34 compat
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/polyml/raw/4d8868ca5a1ce3268f212599a321f8011c950496/f/polyml-pthread-stack-min.patch";
+      sha256 = "1h5ihg2sxld9ymrl3f2mpnbn2242ka1fsa0h4gl9h90kndvg6kby";
+    })
+  ];
 
   buildInputs = [ libffi gmp ];
 
diff --git a/pkgs/development/compilers/polyml/default.nix b/pkgs/development/compilers/polyml/default.nix
index 8a283bb6cf998..2f22f8cd616b3 100644
--- a/pkgs/development/compilers/polyml/default.nix
+++ b/pkgs/development/compilers/polyml/default.nix
@@ -1,4 +1,10 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, gmp, libffi }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, gmp
+, libffi
+}:
 
 stdenv.mkDerivation rec {
   pname = "polyml";
diff --git a/pkgs/development/compilers/ponyc/default.nix b/pkgs/development/compilers/ponyc/default.nix
index d0479cb595bb0..c7ce1bbe43647 100644
--- a/pkgs/development/compilers/ponyc/default.nix
+++ b/pkgs/development/compilers/ponyc/default.nix
@@ -3,22 +3,13 @@
 
 stdenv.mkDerivation (rec {
   pname = "ponyc";
-  version = "0.44.0";
+  version = "0.49.0";
 
   src = fetchFromGitHub {
     owner = "ponylang";
     repo = pname;
     rev = version;
-    sha256 = "0bzdkrrh6lvfqc61kdxvgz573dj32wwzhzwil53jvynhfcwp38ld";
-
-# Due to a bug in LLVM 9.x, ponyc has to include its own vendored patched
-# LLVM.  (The submodule is a specific tag in the LLVM source tree).
-#
-# The pony developers are currently working to get off 9.x as quickly
-# as possible so hopefully in a few revisions this package build will
-# become a lot simpler.
-#
-# https://reviews.llvm.org/rG9f4f237e29e7150dfcf04ae78fa287d2dc8d48e2
+    sha256 = "sha256-WS3/POC+2vdx6bA8314sjkdWCIWGu9lJG4kbKMWfnX8=";
 
     fetchSubmodules = true;
   };
diff --git a/pkgs/development/compilers/ponyc/disable-tests.patch b/pkgs/development/compilers/ponyc/disable-tests.patch
index f8c996137af94..b3d83483a5f8e 100644
--- a/pkgs/development/compilers/ponyc/disable-tests.patch
+++ b/pkgs/development/compilers/ponyc/disable-tests.patch
@@ -1,14 +1,16 @@
 diff --git a/packages/net/_test.pony b/packages/net/_test.pony
-index baf29e7..b63f368 100644
+index 9044dfb1..f0ea10f7 100644
 --- a/packages/net/_test.pony
 +++ b/packages/net/_test.pony
-@@ -5,9 +5,6 @@ actor Main is TestList
-   new make() => None
+@@ -26,11 +26,6 @@ actor \nodoc\ Main is TestList
+       test(_TestTCPThrottle)
+     end
  
-   fun tag tests(test: PonyTest) =>
+-    // Tests below exclude osx and are listed alphabetically
 -    ifdef not osx then
 -      test(_TestBroadcast)
 -    end
-     test(_TestTCPWritev)
-     test(_TestTCPExpect)
-     test(_TestTCPMute)
+-
+ class \nodoc\ _TestPing is UDPNotify
+   let _h: TestHelper
+   let _ip: NetAddress
diff --git a/pkgs/development/compilers/ponyc/make-safe-for-sandbox.patch b/pkgs/development/compilers/ponyc/make-safe-for-sandbox.patch
index 796bbf81f4d4d..1c6c404762ff3 100644
--- a/pkgs/development/compilers/ponyc/make-safe-for-sandbox.patch
+++ b/pkgs/development/compilers/ponyc/make-safe-for-sandbox.patch
@@ -1,28 +1,33 @@
---- a/lib/CMakeLists.txt.orig	2021-10-01 13:04:00.867762912 -0400
-+++ a/lib/CMakeLists.txt	2021-10-01 13:06:21.220023453 -0400
-@@ -15,12 +15,12 @@
+diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
+index dab2aaef..26b587b1 100644
+--- a/lib/CMakeLists.txt
++++ b/lib/CMakeLists.txt
+@@ -36,7 +36,7 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
  endif()
  
  ExternalProject_Add(gbenchmark
 -    URL ${PONYC_GBENCHMARK_URL}
 +    SOURCE_DIR gbenchmark-prefix/src/benchmark
-     CMAKE_ARGS -DCMAKE_BUILD_TYPE=${PONYC_LIBS_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DBENCHMARK_ENABLE_GTEST_TESTS=OFF -DCMAKE_CXX_FLAGS=-fpic --no-warn-unused-cli
+     CMAKE_ARGS -DCMAKE_BUILD_TYPE=${PONYC_LIBS_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DBENCHMARK_ENABLE_GTEST_TESTS=OFF -DCMAKE_CXX_FLAGS=${PONY_PIC_FLAG} --no-warn-unused-cli
  )
  
+@@ -46,7 +46,7 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
+ endif()
+ 
  ExternalProject_Add(googletest
--    URL https://github.com/google/googletest/archive/release-1.10.0.tar.gz
+-    URL ${PONYC_GOOGLETEST_URL}
 +    URL @googletest@
-     CMAKE_ARGS -DCMAKE_BUILD_TYPE=${PONYC_LIBS_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_CXX_FLAGS=-fpic -Dgtest_force_shared_crt=ON --no-warn-unused-cli
+     CMAKE_ARGS -DCMAKE_BUILD_TYPE=${PONYC_LIBS_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_CXX_FLAGS=${PONY_PIC_FLAG} -Dgtest_force_shared_crt=ON --no-warn-unused-cli
  )
  
-@@ -33,82 +33,6 @@
+@@ -59,82 +59,6 @@ install(TARGETS blake2
      COMPONENT library
  )
  
 -find_package(Git)
 -
--set(LLVM_DESIRED_HASH "fed41342a82f5a3a9201819a82bf7a48313e296b")
--set(PATCHES_DESIRED_HASH "3a655193262fd9b2e87340e096efcbd96726a07fe6dd42a263f3a4fc2dc0192e")
+-set(LLVM_DESIRED_HASH "75e33f71c2dae584b13a7d1186ae0a038ba98838")
+-set(PATCHES_DESIRED_HASH "a16f299fbfced16a2bbc628746db341f2a5af9ae8cc9c9ef4b1e9ca26de3c292")
 -
 -if(GIT_FOUND)
 -    if(EXISTS "${PROJECT_SOURCE_DIR}/../.git")
@@ -57,7 +62,7 @@
 -
 -    # check to see if the patch hashes match
 -    message("Checking patches ${PONY_LLVM_PATCHES}")
--    set(PATCHES_ACTUAL_HASH "")
+-    set(PATCHES_ACTUAL_HASH "needed_if_no_patches")
 -    foreach (PATCH ${PONY_LLVM_PATCHES})
 -        file(STRINGS ${PATCH} patch_file NEWLINE_CONSUME)
 -        string(REPLACE "\n" " " patch_file ${patch_file})
@@ -69,8 +74,8 @@
 -    string(SHA256 PATCHES_ACTUAL_HASH ${PATCHES_ACTUAL_HASH})
 -    # message("Desired hash ${PATCHES_DESIRED_HASH}")
 -    # message("Actual hash  ${PATCHES_ACTUAL_HASH}")
--    if(NOT PATCHES_ACTUAL_HASH EQUAL "${PATCHES_DESIRED_HASH}")
--        message(FATAL_ERROR "Patch hash actual ${PATCHES_ACTUAL_HASH} does not match desired ${PATCHES_DESIRED_HASH}")
+-    if(NOT PATCHES_ACTUAL_HASH MATCHES "${PATCHES_DESIRED_HASH}")
+-        message(FATAL_ERROR "Patch hash actual '${PATCHES_ACTUAL_HASH}' does not match desired '${PATCHES_DESIRED_HASH}'")
 -    endif()
 -
 -    foreach (PATCH ${PONY_LLVM_PATCHES})
diff --git a/pkgs/development/compilers/ponyc/pony-corral.nix b/pkgs/development/compilers/ponyc/pony-corral.nix
index 1c8b00c13cfc9..c0ff37e7bd5e3 100644
--- a/pkgs/development/compilers/ponyc/pony-corral.nix
+++ b/pkgs/development/compilers/ponyc/pony-corral.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation ( rec {
   pname = "corral";
-  version = "0.5.4";
+  version = "0.5.7";
 
   src = fetchFromGitHub {
     owner = "ponylang";
     repo = pname;
     rev = version;
-    sha256 = "1chw56khx5akjxkq0vwrw9ryjpyc3fzdmksh496llc513l01hpkl";
+    sha256 = "sha256-OLA09C/6s2PyzreBvqFfzsoRDXiRMbdf3Jgnmawr7k4=";
   };
 
   buildInputs = [ ponyc ];
diff --git a/pkgs/development/compilers/qbe/default.nix b/pkgs/development/compilers/qbe/default.nix
index 80182fc9de651..2615a94066854 100644
--- a/pkgs/development/compilers/qbe/default.nix
+++ b/pkgs/development/compilers/qbe/default.nix
@@ -6,12 +6,12 @@
 
 stdenv.mkDerivation rec {
   pname = "qbe";
-  version = "unstable-2022-03-17";
+  version = "unstable-2022-04-11";
 
   src = fetchgit {
     url = "git://c9x.me/qbe.git";
-    rev = "c6b41eb8c8cece8266b2173a83216e1ce77eb2be";
-    sha256 = "sha256-vpNZNED+C9VMzWyyyntQuBgTvbpZpJ/EwOztdOEP7vI=";
+    rev = "2caa26e388b1c904d2f12fb09f84df7e761d8331";
+    sha256 = "sha256-TNKHKX/PbrNIQJ+Q50KemfcigEBKe7gmJzTjB6ofYL8=";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/development/compilers/rust/1_58.nix b/pkgs/development/compilers/rust/1_58.nix
deleted file mode 100644
index c854bfdd37a4d..0000000000000
--- a/pkgs/development/compilers/rust/1_58.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-# New rust versions should first go to staging.
-# Things to check after updating:
-# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin:
-#    i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github
-#    This testing can be also done by other volunteers as part of the pull
-#    request review, in case platforms cannot be covered.
-# 2. The LLVM version used for building should match with rust upstream.
-#    Check the version number in the src/llvm-project git submodule in:
-#    https://github.com/rust-lang/rust/blob/<version-tag>/.gitmodules
-# 3. Firefox and Thunderbird should still build on x86_64-linux.
-
-{ stdenv, lib
-, buildPackages
-, newScope, callPackage
-, CoreFoundation, Security, SystemConfiguration
-, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost
-, makeRustPlatform
-, llvmPackages_11
-, llvmPackages_13, llvm_13
-} @ args:
-
-import ./default.nix {
-  rustcVersion = "1.58.1";
-  rustcSha256 = "1iq7kj16qfpkx8gvw50d8rf7glbm6s0pj2y1qkrz7mi56vfsyfd8";
-
-  llvmSharedForBuild = pkgsBuildBuild.llvmPackages_13.libllvm.override { enableSharedLibraries = true; };
-  llvmSharedForHost = pkgsBuildHost.llvmPackages_13.libllvm.override { enableSharedLibraries = true; };
-  llvmSharedForTarget = pkgsBuildTarget.llvmPackages_13.libllvm.override { enableSharedLibraries = true; };
-
-  llvmBootstrapForDarwin = llvmPackages_11;
-
-  # For use at runtime
-  llvmShared = llvm_13.override { enableSharedLibraries = true; };
-
-  # Expose llvmPackages used for rustc from rustc via passthru for LTO in Firefox
-  llvmPackagesForBuild = pkgsBuildBuild.llvmPackages_13;
-
-  # Note: the version MUST be one version prior to the version we're
-  # building
-  bootstrapVersion = "1.57.0";
-
-  # fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
-  bootstrapHashes = {
-    i686-unknown-linux-gnu = "7e4ac8ca2874897099a3ceb89039ceee170f474a98ee247589fd6bca8dda7cfa";
-    x86_64-unknown-linux-gnu = "ea0253784b2e5c22659ff148d492a68d2e11da734491714ebc61cc93896efcda";
-    x86_64-unknown-linux-musl = "56876ebca0e46236208c8bd3c3425dba553abe49639e1040ee8b95bc66a45d33";
-    arm-unknown-linux-gnueabihf = "b4448f7a96da4feee99a2c4b16b5738b99ab7e86e22d284ea6f7dca5921bca9b";
-    armv7-unknown-linux-gnueabihf = "577682b1405e8901f971839407daaad06d8ae68ad370305b75d569ba293c4fb4";
-    aarch64-unknown-linux-gnu = "d66847f7cf7b548ecb328c400ac4f691ee2aea6ff5cd9286ad8733239569556c";
-    aarch64-unknown-linux-musl = "91c8e5171e5715261f7f635142a10a9415a4e5ba55374daf76f0b713c8b08132";
-    x86_64-apple-darwin = "15ceffc4743434c19d08f73fb4edd6642b7fd8162ed7101d3e6ca2c691fcb699";
-    aarch64-apple-darwin = "7511075e28b715e2d9c7ee74221779f8444681a4bb60ac3a0270a5fdf08bdd5a";
-    powerpc64le-unknown-linux-gnu = "3ddc1abed6b7535c4150bf54291901fa856806c948bc21b711e24a3c8d810be7";
-    riscv64gc-unknown-linux-gnu = "f809df1c6ac0adc9bd37eb871dfb0d9809f3ed7f61ba611f9305e9eb8f8c9226";
-  };
-
-  selectRustPackage = pkgs: pkgs.rust_1_58;
-
-  rustcPatches = [
-  ];
-}
-
-(builtins.removeAttrs args [ "fetchpatch" "pkgsBuildHost" "llvmPackages_11" "llvmPackages_13" "llvm_13"])
diff --git a/pkgs/development/compilers/rust/1_60.nix b/pkgs/development/compilers/rust/1_60.nix
new file mode 100644
index 0000000000000..0153b5d23a904
--- /dev/null
+++ b/pkgs/development/compilers/rust/1_60.nix
@@ -0,0 +1,64 @@
+# New rust versions should first go to staging.
+# Things to check after updating:
+# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin:
+#    i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github
+#    This testing can be also done by other volunteers as part of the pull
+#    request review, in case platforms cannot be covered.
+# 2. The LLVM version used for building should match with rust upstream.
+#    Check the version number in the src/llvm-project git submodule in:
+#    https://github.com/rust-lang/rust/blob/<version-tag>/.gitmodules
+# 3. Firefox and Thunderbird should still build on x86_64-linux.
+
+{ stdenv, lib
+, buildPackages
+, newScope, callPackage
+, CoreFoundation, Security, SystemConfiguration
+, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost
+, makeRustPlatform
+, llvmPackages_11
+, llvmPackages_14, llvm_14
+} @ args:
+
+import ./default.nix {
+  rustcVersion = "1.60.0";
+  rustcSha256 = "1drqr0a26x1rb2w3kj0i6abhgbs3jx5qqkrcwbwdlx7n3inq5ji0";
+
+  llvmSharedForBuild = pkgsBuildBuild.llvmPackages_14.libllvm.override { enableSharedLibraries = true; };
+  llvmSharedForHost = pkgsBuildHost.llvmPackages_14.libllvm.override { enableSharedLibraries = true; };
+  llvmSharedForTarget = pkgsBuildTarget.llvmPackages_14.libllvm.override { enableSharedLibraries = true; };
+
+  llvmBootstrapForDarwin = llvmPackages_11;
+
+  # For use at runtime
+  llvmShared = llvm_14.override { enableSharedLibraries = true; };
+
+  # Expose llvmPackages used for rustc from rustc via passthru for LTO in Firefox
+  llvmPackagesForBuild = pkgsBuildBuild.llvmPackages_14;
+
+  # Note: the version MUST be one version prior to the version we're
+  # building
+  bootstrapVersion = "1.59.0";
+
+  # fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
+  bootstrapHashes = {
+    i686-unknown-linux-gnu = "f57ebfafed1e857b2b1dc1a22cf1133766f68a0759dc2f717dec54a8d4385dec";
+    x86_64-unknown-linux-gnu = "0c1c2da3fa26372e5178123aa5bb0fdcd4933fbad9bfb268ffbd71807182ecae";
+    x86_64-unknown-linux-musl = "c0ae76fa4bb0f1c85b86b9f7637db0fddf5084ce4c8f86c4d4acc3c41813201f";
+    arm-unknown-linux-gnueabihf = "f934ddd8533d5df922e3397a5d30404930c5992c6c91c72d3e1475e2978e8793";
+    armv7-unknown-linux-gnueabihf = "acb0f793c517de927b17e1c85135f6d58ae7430a8bd094a92009bcf0d4bbb8eb";
+    aarch64-unknown-linux-gnu = "ab5da30a3de5433e26cbc74c56b9d97b569769fc2e456fc54378adc8baaee4f0";
+    aarch64-unknown-linux-musl = "a3f8afdf23c98e6d25bf3b4bfcf5e9a4712f4c425f3754500931232d946204a9";
+    x86_64-apple-darwin = "d82204f536af0c7bfd2ea2213dc46b99911860cfc5517f7321244412ae96f159";
+    aarch64-apple-darwin = "5449ae915982967bae97746ce8bea30844f9ab40b4ee4da392b9997e0e7b2926";
+    powerpc64le-unknown-linux-gnu = "6892a706ea8118344a4f4624b57a99460a784b5b30cccd9df430c33008d341f3";
+    riscv64gc-unknown-linux-gnu = "e0cb22c2383d73b3928c17a630ae8d37f6787ddcea7871c9b3e21fd4560226b2";
+    mips64el-unknown-linux-gnuabi64 = "2e2c404741b1dd02b5d73361f187568a91a8531997ade41bd855eca3972e2a5b";
+  };
+
+  selectRustPackage = pkgs: pkgs.rust_1_60;
+
+  rustcPatches = [
+  ];
+}
+
+(builtins.removeAttrs args [ "fetchpatch" "pkgsBuildHost" "llvmPackages_11" "llvmPackages_14" "llvm_14"])
diff --git a/pkgs/development/compilers/rust/binary.nix b/pkgs/development/compilers/rust/binary.nix
index ce4250f675e9a..1145f4da8f663 100644
--- a/pkgs/development/compilers/rust/binary.nix
+++ b/pkgs/development/compilers/rust/binary.nix
@@ -19,7 +19,7 @@ in
 
 rec {
   rustc = stdenv.mkDerivation {
-    name = "rustc-${versionType}-${version}";
+    pname = "rustc-${versionType}";
 
     inherit version;
     inherit src;
@@ -71,7 +71,7 @@ rec {
   };
 
   cargo = stdenv.mkDerivation {
-    name = "cargo-${versionType}-${version}";
+    pname = "cargo-${versionType}";
 
     inherit version;
     inherit src;
diff --git a/pkgs/development/compilers/rust/cargo.nix b/pkgs/development/compilers/rust/cargo.nix
index ee909e973a353..b50f36f0d9b64 100644
--- a/pkgs/development/compilers/rust/cargo.nix
+++ b/pkgs/development/compilers/rust/cargo.nix
@@ -5,7 +5,7 @@
 }:
 
 rustPlatform.buildRustPackage {
-  name = "cargo-${rustc.version}";
+  pname = "cargo";
   inherit (rustc) version src;
 
   # the rust source tarball already has all the dependencies vendored, no need to fetch them again
diff --git a/pkgs/development/compilers/rust/rustfmt.nix b/pkgs/development/compilers/rust/rustfmt.nix
index b3191c242feab..2c2a144609315 100644
--- a/pkgs/development/compilers/rust/rustfmt.nix
+++ b/pkgs/development/compilers/rust/rustfmt.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv, rustPlatform, Security }:
+{ lib, stdenv, rustPlatform, Security, asNightly ? false }:
 
 rustPlatform.buildRustPackage rec {
-  pname = "rustfmt";
+  pname = "rustfmt" + lib.optionalString asNightly "-nightly";
   inherit (rustPlatform.rust.rustc) version src;
 
   # the rust source tarball already has all the dependencies vendored, no need to fetch them again
@@ -18,8 +18,8 @@ rustPlatform.buildRustPackage rec {
 
   # As of rustc 1.45.0, these env vars are required to build rustfmt (due to
   # https://github.com/rust-lang/rust/pull/72001)
-  CFG_RELEASE = "${rustPlatform.rust.rustc.version}-nightly";
-  CFG_RELEASE_CHANNEL = "nightly";
+  CFG_RELEASE = rustPlatform.rust.rustc.version;
+  CFG_RELEASE_CHANNEL = if asNightly then "nightly" else "stable";
 
   meta = with lib; {
     description = "A tool for formatting Rust code according to style guidelines";
diff --git a/pkgs/development/compilers/scryer-prolog/cargo.patch b/pkgs/development/compilers/scryer-prolog/cargo.patch
index e704798c3acfd..ccce7ba357d7a 100644
--- a/pkgs/development/compilers/scryer-prolog/cargo.patch
+++ b/pkgs/development/compilers/scryer-prolog/cargo.patch
@@ -1,101 +1,44 @@
 diff --git a/Cargo.lock b/Cargo.lock
-index ef25833..d9de212 100644
+index 4d699f11..1eb894fc 100644
 --- a/Cargo.lock
 +++ b/Cargo.lock
-@@ -41,9 +41,9 @@ checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
- 
- [[package]]
- name = "az"
--version = "0.3.1"
-+version = "1.0.0"
+@@ -875,15 +875,6 @@ version = "0.1.4"
  source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "41a6b78289a33e09b00818ca8c90ab17c5dabb6e74f4b29a6de679c0e0886ade"
-+checksum = "e9bcd47d94aa4eb8c076b50fc61a75020789394ffb9bd74a180b3379130f6569"
- 
- [[package]]
- name = "base64"
-@@ -384,9 +384,9 @@ dependencies = [
- 
- [[package]]
- name = "gmp-mpfr-sys"
--version = "1.2.2"
-+version = "1.4.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "63d7f805cf9df081683d463f62864bda8b8e3ce7162a8e11cd0c49f27b8ce89b"
-+checksum = "ad4e8e85ec9fb902b4564deeb17b1a263d3ba1334bef56154418aa045b159508"
- dependencies = [
-  "libc",
-  "winapi 0.3.8",
-@@ -485,9 +487,9 @@ dependencies = [
- 
- [[package]]
- name = "lexical-core"
--version = "0.4.6"
-+version = "0.4.8"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "2304bccb228c4b020f3a4835d247df0a02a7c4686098d4167762cfbbe4c5cb14"
-+checksum = "34449d00c5d4066537f4dc72320b18e3aa421e8e92669250eecd664c618fefce"
- dependencies = [
-  "arrayvec 0.4.12",
-  "cfg-if",
-@@ -766,15 +766,6 @@ version = "0.1.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
+ checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
  
 -[[package]]
 -name = "openssl-src"
--version = "111.9.0+1.1.1g"
+-version = "300.0.2+3.0.0"
 -source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "a2dbe10ddd1eb335aba3780eb2eaa13e1b7b441d2562fd962398740927f39ec4"
+-checksum = "14a760a11390b1a5daf72074d4f6ff1a6e772534ae191f999f57e9ee8146d1fb"
 -dependencies = [
 - "cc",
 -]
 -
  [[package]]
  name = "openssl-sys"
- version = "0.9.58"
-@@ -784,7 +775,6 @@ dependencies = [
-  "autocfg 1.0.0",
+ version = "0.9.70"
+@@ -893,7 +884,6 @@ dependencies = [
+  "autocfg 1.0.1",
   "cc",
   "libc",
 - "openssl-src",
   "pkg-config",
   "vcpkg",
  ]
-@@ -1159,9 +1149,9 @@ dependencies = [
- 
- [[package]]
- name = "rug"
--version = "1.8.0"
-+version = "1.11.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "72315b6d9cb7d886fb99724330c47ceb29e923df657c31da3849fe88c0ded710"
-+checksum = "e538d00da450a8e48aac7e6322e67b2dc86ec71a1feeac0e3954c4f07f01bc45"
- dependencies = [
-  "az",
-  "gmp-mpfr-sys",
-@@ -1232,7 +1222,7 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
- 
- [[package]]
- name = "scryer-prolog"
--version = "0.8.126"
-+version = "0.8.127"
- dependencies = [
-  "base64 0.12.3",
-  "blake2",
-@@ -1243,6 +1233,7 @@ dependencies = [
+@@ -1432,6 +1422,7 @@ dependencies = [
   "divrem",
-  "downcast",
+  "fxhash",
   "git-version",
 + "gmp-mpfr-sys",
   "hostname",
   "indexmap",
-  "lazy_static",
+  "instructions-template",
 diff --git a/Cargo.toml b/Cargo.toml
-index c359e1b..75c4325 100644
+index 8e81a947..d21a8d49 100644
 --- a/Cargo.toml
 +++ b/Cargo.toml
-@@ -41,10 +41,14 @@ ring = "0.16.13"
+@@ -55,7 +55,7 @@ ring = "0.16.13"
  ripemd160 = "0.8.0"
  sha3 = "0.8.2"
  blake2 = "0.8.1"
@@ -104,10 +47,20 @@ index c359e1b..75c4325 100644
  native-tls = "0.2.4"
  chrono = "0.4.11"
  select = "0.4.3"
- roxmltree = "0.11.0"
- base64 = "0.12.3"
- sodiumoxide = "0.2.6"
-+
+@@ -66,10 +66,14 @@ sodiumoxide = "0.2.6"
+ static_assertions = "1.1.0"
+ slice-deque = "0.3.0"
+ 
 +[dependencies.gmp-mpfr-sys]
 +version = "1.4"
 +features = ["use-system-libs"]
++
+ [dev-dependencies]
+ assert_cmd = "1.0.3"
+ predicates-core = "1.0.2"
+ serial_test = "0.5.1"
+ 
+ [profile.release]
+-debug = true
+\ No newline at end of file
++debug = true
diff --git a/pkgs/development/compilers/scryer-prolog/default.nix b/pkgs/development/compilers/scryer-prolog/default.nix
index 7c9afefe10df8..9010cdef1dd7f 100644
--- a/pkgs/development/compilers/scryer-prolog/default.nix
+++ b/pkgs/development/compilers/scryer-prolog/default.nix
@@ -1,6 +1,8 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 , rustPlatform
+, rustfmt
 , gmp
 , libmpc
 , mpfr
@@ -10,21 +12,32 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "scryer-prolog";
-  version = "0.8.127";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "mthom";
     repo = "scryer-prolog";
     rev = "v${version}";
-    sha256 = "0307yclslkdx6f0h0101a3da47rhz6qizf4i8q8rjh4id8wpdsn8";
+    sha256 = "3NHpEg6QaUaqbBCq8uM5hFcqS24q4XrOnKjMmn8Z1Dg=";
   };
 
-  # Use system openssl, gmp, mpc and mpfr.
-  cargoPatches = [ ./cargo.patch ];
+  cargoPatches = [
+    # Use system openssl, gmp, mpc and mpfr.
+    ./cargo.patch
 
-  cargoSha256 = "1vf7pfhvpk7ikzibdccw7xgbywv5n4vvshjwsdsf94bhl2knrlg3";
+    ./fix-tests.patch
 
-  nativeBuildInputs = [ pkg-config ];
+    # Avoid testing failing with "couldn't save history"
+    (fetchpatch {
+      name = "fix-tests-1";
+      url = "https://patch-diff.githubusercontent.com/raw/mthom/scryer-prolog/pull/1342.patch";
+      sha256 = "2N0AOkFuf+H/aUn2QTXgmqjmvShTxHxB6kNuNdNoVRI=";
+    })
+  ];
+
+  cargoSha256 = "nqAHVXAmTW9mdE2L2yhpOTz16JbYgQUmCgiFq9pBzUU=";
+
+  nativeBuildInputs = [ pkg-config rustfmt];
   buildInputs = [ openssl gmp libmpc mpfr ];
 
   meta = with lib; {
diff --git a/pkgs/development/compilers/scryer-prolog/fix-tests.patch b/pkgs/development/compilers/scryer-prolog/fix-tests.patch
new file mode 100644
index 0000000000000..53ececfdc7943
--- /dev/null
+++ b/pkgs/development/compilers/scryer-prolog/fix-tests.patch
@@ -0,0 +1,29 @@
+diff --git a/tests/scryer/src_tests.rs b/tests/scryer/src_tests.rs
+index b0b9efb5..8fddd842 100644
+--- a/tests/scryer/src_tests.rs
++++ b/tests/scryer/src_tests.rs
+@@ -46,24 +46,6 @@ fn rules() {
+     load_module_test("src/tests/rules.pl", "");
+ }
+ 
+-#[serial]
+-#[test]
+-fn setup_call_cleanup_load() {
+-    load_module_test(
+-        "src/tests/setup_call_cleanup.pl",
+-        "1+21+31+2>_17737+_177381+_158071+2>41+2>_177381+2>31+2>31+2>4ba"
+-    );
+-}
+-
+-#[test]
+-fn setup_call_cleanup_process() {
+-    run_top_level_test_with_args(
+-        &["src/tests/setup_call_cleanup.pl", "-f", "-g", "halt"],
+-        "",
+-        "1+21+31+2>_19590+_195911+_176601+2>41+2>_195911+2>31+2>31+2>4ba"
+-    );
+-}
+-
+ #[serial]
+ #[test]
+ fn clpz_load() {
diff --git a/pkgs/development/compilers/tinygo/default.nix b/pkgs/development/compilers/tinygo/default.nix
index 218b207f24355..935260dbcab9e 100644
--- a/pkgs/development/compilers/tinygo/default.nix
+++ b/pkgs/development/compilers/tinygo/default.nix
@@ -59,6 +59,6 @@ buildGoModule rec {
     homepage = "https://tinygo.org/";
     description = "Go compiler for small places";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ chiiruno ];
+    maintainers = with maintainers; [ Madouura ];
   };
 }
diff --git a/pkgs/development/compilers/uasm/default.nix b/pkgs/development/compilers/uasm/default.nix
index f440208e947b3..2c8d6eb21aebc 100644
--- a/pkgs/development/compilers/uasm/default.nix
+++ b/pkgs/development/compilers/uasm/default.nix
@@ -1,35 +1,42 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, testers
+, uasm
+}:
 
 stdenv.mkDerivation rec {
   pname = "uasm";
-  version = "2.53";
+  version = "2.55";
 
   src = fetchFromGitHub {
     owner = "Terraspace";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-Aohwrcb/KTKUFFpfmqVDPNjJh1dMYSNnBJ2eFaP20pM=";
+    # Specifying only the tag results in the following error during download:
+    # the given path has multiple possibilities: #<Git::Ref:0x00007f618689c378>, #<Git::Ref:0x00007f618689c1e8>
+    # Probably because upstream has both a tag and a branch with the same name
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-CIbHPKJa60SyJeFgF1Tux7RfJZBChhUVXR7HGa+gCtQ=";
   };
 
-  # https://github.com/Terraspace/UASM/pull/154
-  patches = [
-    # fix `invalid operands to binary - (have 'char *' and 'uint_8 *' {aka 'unsigned char *'})`
+  patches = lib.optionals stdenv.isDarwin [
     (fetchpatch {
-      name = "fix_pointers_compare.patch";
-      url = "https://github.com/clouds56/UASM/commit/9cd3a400990e230571e06d4c758bd3bd35f90ab6.patch";
-      sha256 = "sha256-8mY36dn+g2QNJ1JbWt/y4p0Ha9RSABnOE3vlWANuhsA=";
-    })
-    # fix `dbgcv.c:*:*: fatal error: direct.h: No such file or directory`
-    (fetchpatch {
-      name = "fix_build_dbgcv_c_on_unix.patch";
-      url = "https://github.com/clouds56/UASM/commit/806d54cf778246c96dcbe61a4649bf0aebcb0eba.patch";
-      sha256 = "sha256-uc1LaizdYEh1Ry55Cq+6wrCa1OeBPFo74H5iBpmteAE=";
+      name = "fix-v2_55-compilation-on-macos.patch";
+      url = "https://github.com/Terraspace/UASM/commit/b50c430cc3083c7f32e288a9f64fe1cafb03091d.patch";
+      sha256 = "sha256-FGFB282LSEKtGD1cIRH+Qi5bye5Gx4xb0Ty4J03xjCU";
     })
   ];
 
   enableParallelBuilding = true;
 
-  makefile = "gccLinux64.mak";
+  makefile =
+    if stdenv.isDarwin then
+      "ClangOSX64.mak"
+    else
+      "gccLinux64.mak";
+
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   installPhase = ''
     runHook preInstall
@@ -40,10 +47,16 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
+  passthru.tests.version = testers.testVersion {
+    package = uasm;
+    command = "uasm -h";
+    version = "v${version}";
+  };
+
   meta = with lib; {
     homepage = "http://www.terraspace.co.uk/uasm.html";
     description = "A free MASM-compatible assembler based on JWasm";
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.unix;
     maintainers = with maintainers; [ thiagokokada ];
     license = licenses.watcom;
   };
diff --git a/pkgs/development/compilers/vlang/default.nix b/pkgs/development/compilers/vlang/default.nix
index 1786c54ac7ef8..0c24e67123c62 100644
--- a/pkgs/development/compilers/vlang/default.nix
+++ b/pkgs/development/compilers/vlang/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     homepage = "https://vlang.io/";
     description = "Simple, fast, safe, compiled language for developing maintainable software";
     license = licenses.mit;
-    maintainers = with maintainers; [ chiiruno ];
+    maintainers = with maintainers; [ Madouura ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/compilers/yosys/default.nix b/pkgs/development/compilers/yosys/default.nix
index ecdebdda849a8..a48d5319b5ce3 100644
--- a/pkgs/development/compilers/yosys/default.nix
+++ b/pkgs/development/compilers/yosys/default.nix
@@ -72,13 +72,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname   = "yosys";
-  version = "0.15";
+  version = "0.16";
 
   src = fetchFromGitHub {
     owner = "YosysHQ";
     repo  = "yosys";
     rev   = "${pname}-${version}";
-    hash  = "sha256-1NCcsq0otVKTTSSmnX2kCvvngF1yzqYWlRVzu+XY65w=";
+    hash  = "sha256-X1yygoat6ezJt9jLO+W528ryf381nKGDQ3cfrG1ZbIk=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/compilers/zulu/8.nix b/pkgs/development/compilers/zulu/8.nix
index 48573c6724159..00f18f1238fe7 100644
--- a/pkgs/development/compilers/zulu/8.nix
+++ b/pkgs/development/compilers/zulu/8.nix
@@ -61,18 +61,22 @@ in stdenv.mkDerivation {
   ];
 
   nativeBuildInputs = [
-    autoPatchelfHook makeWrapper
+    makeWrapper
+  ] ++ lib.optionals stdenv.isLinux [
+    autoPatchelfHook
   ] ++ lib.optionals stdenv.isDarwin [
     unzip
   ];
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out
     cp -r ./* "$out/"
-
+  '' + lib.optionalString stdenv.isLinux ''
     # jni.h expects jni_md.h to be in the header search path.
     ln -s $out/include/linux/*_md.h $out/include/
-
+  '' + ''
     mkdir -p $out/nix-support
     printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
 
@@ -87,6 +91,8 @@ in stdenv.mkDerivation {
         wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}"
       fi
     done
+  '' + ''
+    runHook postInstall
   '';
 
   preFixup = ''
diff --git a/pkgs/development/compilers/zulu/default.nix b/pkgs/development/compilers/zulu/default.nix
index 662d997d88288..1b961c3f9e406 100644
--- a/pkgs/development/compilers/zulu/default.nix
+++ b/pkgs/development/compilers/zulu/default.nix
@@ -63,12 +63,16 @@ in stdenv.mkDerivation {
   ];
 
   nativeBuildInputs = [
-    autoPatchelfHook makeWrapper
+    makeWrapper
+  ] ++ lib.optionals stdenv.isLinux [
+    autoPatchelfHook
   ] ++ lib.optionals stdenv.isDarwin [
     unzip
   ];
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out
     cp -r ./* "$out/"
   '' + lib.optionalString stdenv.isLinux ''
@@ -90,6 +94,8 @@ in stdenv.mkDerivation {
     for bin in $( find "$out" -executable -type f -not -name jspawnhelper ); do
       wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}"
     done
+  '' + ''
+    runHook postInstall
   '';
 
   preFixup = ''
diff --git a/pkgs/development/coq-modules/CoLoR/default.nix b/pkgs/development/coq-modules/CoLoR/default.nix
index 24a7f125599dc..9270609c6b2fa 100644
--- a/pkgs/development/coq-modules/CoLoR/default.nix
+++ b/pkgs/development/coq-modules/CoLoR/default.nix
@@ -5,12 +5,13 @@ with lib; mkCoqDerivation {
   owner = "fblanqui";
   inherit version;
   defaultVersion = with versions; switch coq.coq-version [
-    {case = range "8.12" "8.13"; out = "1.8.1"; }
+    {case = range "8.12" "8.15"; out = "1.8.2"; }
     {case = range "8.10" "8.11"; out = "1.7.0"; }
     {case = range "8.8"  "8.9";  out = "1.6.0"; }
     {case = range "8.6"  "8.7";  out = "1.4.0"; }
   ] null;
 
+  release."1.8.2".sha256 = "sha256:1gvx5cxm582793vxzrvsmhxif7px18h9xsb2jljy2gkphdmsnpqj";
   release."1.8.1".sha256 = "0knhca9fffmyldn4q16h9265i7ih0h4jhcarq4rkn0wnn7x8w8yw";
   release."1.7.0".rev    = "08b5481ed6ea1a5d2c4c068b62156f5be6d82b40";
   release."1.7.0".sha256 = "1w7fmcpf0691gcwq00lm788k4ijlwz3667zj40j5jjc8j8hj7cq3";
diff --git a/pkgs/development/coq-modules/Verdi/default.nix b/pkgs/development/coq-modules/Verdi/default.nix
index 2701cf6f04c43..4d76331fb99a1 100644
--- a/pkgs/development/coq-modules/Verdi/default.nix
+++ b/pkgs/development/coq-modules/Verdi/default.nix
@@ -6,10 +6,13 @@ with lib; mkCoqDerivation {
   owner = "uwplse";
   inherit version;
   defaultVersion = with versions; switch coq.coq-version [
+    { case = range "8.7" "8.15"; out = "20211026"; }
     { case = range "8.7" "8.14"; out = "20210524"; }
     { case = range "8.7" "8.13"; out = "20200131"; }
     { case = "8.6"; out = "20181102"; }
   ] null;
+  release."20211026".rev    = "064cc4fb2347453bf695776ed820ffb5fbc1d804";
+  release."20211026".sha256 = "sha256:13xrcyzay5sjszf5lg4s44wl9nrcz22n6gi4h95pkpj0ni5clinx";
   release."20210524".rev    = "54597d8ac7ab7dd4dae683f651237644bf77701e";
   release."20210524".sha256 = "sha256:05wb0km2jkhvi8807glxk9fi1kll4lwisiyzkxhqvymz4x6v8xqv";
   release."20200131".rev    = "fdb4ede19d2150c254f0ebcfbed4fb9547a734b0";
diff --git a/pkgs/development/coq-modules/gappalib/default.nix b/pkgs/development/coq-modules/gappalib/default.nix
index 02905dcffed5a..23cbd46743b19 100644
--- a/pkgs/development/coq-modules/gappalib/default.nix
+++ b/pkgs/development/coq-modules/gappalib/default.nix
@@ -6,7 +6,8 @@ with lib; mkCoqDerivation {
   owner = "gappa";
   domain = "gitlab.inria.fr";
   inherit version;
-  defaultVersion = if versions.range "8.8" "8.14" coq.coq-version then "1.5.0" else null;
+  defaultVersion = if versions.range "8.8" "8.15" coq.coq-version then "1.5.1" else null;
+  release."1.5.1".sha256 = "1806bq1z6q5rq2ma7d5kfbqfyfr755hjg0dq7b2llry8fx9cxjsg";
   release."1.5.0".sha256 = "1i1c0gakffxqqqqw064cbvc243yl325hxd50jmczr6mk18igk41n";
   release."1.4.5".sha256 = "081hib1d9wfm29kis390qsqch8v6fs3q71g2rgbbzx5y5cf48n9k";
   release."1.4.4".sha256 = "114q2hgw64j6kqa9mg3qcp1nlf0ia46z2xadq81fnkxqm856ml7l";
diff --git a/pkgs/development/coq-modules/mathcomp-word/default.nix b/pkgs/development/coq-modules/mathcomp-word/default.nix
index 9c74edd54712c..463c5e5f5e9dc 100644
--- a/pkgs/development/coq-modules/mathcomp-word/default.nix
+++ b/pkgs/development/coq-modules/mathcomp-word/default.nix
@@ -10,11 +10,12 @@ mkCoqDerivation {
 
   releaseRev = v: "v${v}";
 
+  release."1.1".sha256 = "sha256:0jb28vgkr4xpg9d6k85rq7abpx5ch612iw9ps5w8q80q1jpjlc4z";
   release."1.0".sha256 = "sha256:0703m97rnivcbc7vvbd9rl2dxs6l8n52cbykynw61c6w9rhxspcg";
 
   inherit version;
   defaultVersion = with versions; switch [ coq.version mathcomp.version ] [
-    { cases = [ (range "8.12" "8.14") (isGe "1.12") ]; out = "1.0"; }
+    { cases = [ (range "8.12" "8.15") (isGe "1.12") ]; out = "1.1"; }
   ] null;
 
   propagatedBuildInputs = [ mathcomp.algebra mathcomp.ssreflect mathcomp.fingroup ];
diff --git a/pkgs/development/coq-modules/smtcoq/default.nix b/pkgs/development/coq-modules/smtcoq/default.nix
new file mode 100644
index 0000000000000..416b8d1bb58c2
--- /dev/null
+++ b/pkgs/development/coq-modules/smtcoq/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, mkCoqDerivation, coq, trakt, cvc4, veriT, version ? null }:
+with lib;
+
+mkCoqDerivation {
+  pname = "smtcoq";
+  owner = "smtcoq";
+
+  release."itp22".rev    = "1d60d37558d85a4bfd794220ec48849982bdc979";
+  release."itp22".sha256 = "sha256-CdPfgDfeJy8Q6ZlQeVCSR/x8ZlJ2kSEF6F5UnAespnQ=";
+
+  inherit version;
+  defaultVersion = with versions; switch [ coq.version mathcomp.version ] [
+    { cases = [ (isGe "8.13") ]; out = "itp22"; }
+  ] null;
+
+  propagatedBuildInputs = [ trakt cvc4 ] ++ lib.optionals (!stdenv.isDarwin) [ veriT ];
+  extraNativeBuildInputs = with coq.ocamlPackages; [ ocaml ocamlbuild ];
+  extraBuildInputs = with coq.ocamlPackages; [ findlib num zarith ];
+
+  meta = {
+    description = "Communication between Coq and SAT/SMT solvers ";
+    maintainers = with maintainers; [ siraben ];
+    license = licenses.cecill-b;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/coq-modules/trakt/default.nix b/pkgs/development/coq-modules/trakt/default.nix
new file mode 100644
index 0000000000000..671fc40136950
--- /dev/null
+++ b/pkgs/development/coq-modules/trakt/default.nix
@@ -0,0 +1,24 @@
+{ lib, mkCoqDerivation, coq, coq-elpi, version ? null }:
+with lib;
+
+mkCoqDerivation {
+  pname = "trakt";
+  owner = "ecranceMERCE";
+
+  release."1.0".rev    = "d1c9daba8fe0584b526047862dd27ddf836dbbf2";
+  release."1.0".sha256 = "sha256-Qhw5fWFYxUFO2kIWWz/og+4fuy9aYG27szfNk3IglhY=";
+
+  inherit version;
+  defaultVersion = with versions; switch [ coq.version ] [
+    { cases = [ (isGe "8.13") ]; out = "1.0"; }
+  ] null;
+
+  propagatedBuildInputs = [ coq-elpi ];
+
+  meta = {
+    description = "A generic goal preprocessing tool for proof automation tactics in Coq";
+    maintainers = with maintainers; [ siraben ];
+    license = licenses.cecill-b;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/embedded/openocd/default.nix b/pkgs/development/embedded/openocd/default.nix
index c2f7d231b1a5f..6b4fa92389460 100644
--- a/pkgs/development/embedded/openocd/default.nix
+++ b/pkgs/development/embedded/openocd/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , lib
+, fetchpatch
 , fetchurl
 , pkg-config
 , hidapi
@@ -21,6 +22,15 @@ stdenv.mkDerivation rec {
   buildInputs = [ hidapi libftdi1 libusb1 ]
     ++ lib.optional stdenv.isLinux libgpiod;
 
+  patches = [
+    # Patch is upstream, so can be removed when OpenOCD 0.12.0 or later is released.
+    (fetchpatch
+      {
+        url = "https://github.com/openocd-org/openocd/commit/cff0e417da58adef1ceef9a63a99412c2cc87ff3.patch";
+        sha256 = "Xxzf5miWy4S34sbQq8VQdAbY/oqGyhL/AJxiEPRuj3Q=";
+      })
+  ];
+
   configureFlags = [
     "--enable-jtag_vpi"
     "--enable-usb_blaster_libftdi"
diff --git a/pkgs/development/embedded/platformio/core.nix b/pkgs/development/embedded/platformio/core.nix
index f19458fa84fbc..c40f2f45f3128 100644
--- a/pkgs/development/embedded/platformio/core.nix
+++ b/pkgs/development/embedded/platformio/core.nix
@@ -153,7 +153,8 @@ with python.pkgs; buildPythonApplication rec {
       --subst-var-by SPDX_LICENSE_LIST_DATA '${spdx-license-list-data.json}'
 
     substituteInPlace setup.py \
-      --replace "zeroconf==0.37.*" "zeroconf"
+      --replace "wsproto==1.0.*" "wsproto" \
+      --replace "zeroconf==0.38.*" "zeroconf"
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/embedded/stm32/stm32flash/default.nix b/pkgs/development/embedded/stm32/stm32flash/default.nix
index 52b3011549937..d6e8d45989607 100644
--- a/pkgs/development/embedded/stm32/stm32flash/default.nix
+++ b/pkgs/development/embedded/stm32/stm32flash/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "stm32flash";
-  version = "0.6";
+  version = "0.7";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-7ptA1NPlzSi5k+CK4qLDxVm2vqhzDNfh1Acn3tsd2gk=";
+    sha256 = "sha256-xMnNi+x52mOxEdFXE+9cws2UfeykEdNdbjBl4ifcQUo=";
   };
 
   buildFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
diff --git a/pkgs/development/go-modules/generic/default.nix b/pkgs/development/go-modules/generic/default.nix
index 76d0dc961c5a4..502a981596e7a 100644
--- a/pkgs/development/go-modules/generic/default.nix
+++ b/pkgs/development/go-modules/generic/default.nix
@@ -153,13 +153,13 @@ let
 
       export GOCACHE=$TMPDIR/go-cache
       export GOPATH="$TMPDIR/go"
+      export GOPROXY=off
       export GOSUMDB=off
       cd "$modRoot"
-    '' + lib.optionalString (go-modules != "") ''
+    '' + lib.optionalString (vendorSha256 != null) ''
       ${if proxyVendor then ''
         export GOPROXY=file://${go-modules}
       '' else ''
-        export GOPROXY=off
         rm -rf vendor
         cp -r --reflink=auto ${go-modules} vendor
       ''}
@@ -171,13 +171,20 @@ let
     buildPhase = args.buildPhase or ''
       runHook preBuild
 
+      exclude='\(/_\|examples\|Godeps\|testdata'
+      if [[ -n "$excludedPackages" ]]; then
+        IFS=' ' read -r -a excludedArr <<<$excludedPackages
+        printf -v excludedAlternates '%s\\|' "''${excludedArr[@]}"
+        excludedAlternates=''${excludedAlternates%\\|} # drop final \| added by printf
+        exclude+='\|'"$excludedAlternates"
+      fi
+      exclude+='\)'
+
       buildGoDir() {
         local d; local cmd;
         cmd="$1"
         d="$2"
         . $TMPDIR/buildFlagsArray
-        echo "$d" | grep -q "\(/_\|examples\|Godeps\|testdata\)" && return 0
-        [ -n "$excludedPackages" ] && echo "$d" | grep -q "$excludedPackages" && return 0
         local OUT
         if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" ''${tags:+-tags=${lib.concatStringsSep "," tags}} ''${ldflags:+-ldflags="$ldflags"} -v -p $NIX_BUILD_CORES $d 2>&1)"; then
           if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then
@@ -197,7 +204,7 @@ let
         if [ -n "$subPackages" ]; then
           echo "$subPackages" | sed "s,\(^\| \),\1./,g"
         else
-          find . -type f -name \*$type.go -exec dirname {} \; | grep -v "/vendor/" | sort --unique
+          find . -type f -name \*$type.go -exec dirname {} \; | grep -v "/vendor/" | sort --unique | grep -v "$exclude"
         fi
       }
 
diff --git a/pkgs/development/go-packages/generic/default.nix b/pkgs/development/go-packages/generic/default.nix
index 7c4d173b937b3..0559f7f07a7c1 100644
--- a/pkgs/development/go-packages/generic/default.nix
+++ b/pkgs/development/go-packages/generic/default.nix
@@ -150,13 +150,20 @@ let
 
       runHook renameImports
 
+      exclude='\(/_\|examples\|Godeps\|testdata'
+      if [[ -n "$excludedPackages" ]]; then
+        IFS=' ' read -r -a excludedArr <<<$excludedPackages
+        printf -v excludedAlternates '%s\\|' "''${excludedArr[@]}"
+        excludedAlternates=''${excludedAlternates%\\|} # drop final \| added by printf
+        exclude+='\|'"$excludedAlternates"
+      fi
+      exclude+='\)'
+
       buildGoDir() {
         local d; local cmd;
         cmd="$1"
         d="$2"
         . $TMPDIR/buildFlagsArray
-        echo "$d" | grep -q "\(/_\|examples\|Godeps\)" && return 0
-        [ -n "$excludedPackages" ] && echo "$d" | grep -q "$excludedPackages" && return 0
         local OUT
         if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" ''${tags:+-tags=${lib.concatStringsSep "," tags}} ''${ldflags:+-ldflags="$ldflags"} -v -p $NIX_BUILD_CORES $d 2>&1)"; then
           if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then
@@ -177,7 +184,7 @@ let
           echo "$subPackages" | sed "s,\(^\| \),\1$goPackagePath/,g"
         else
           pushd "$NIX_BUILD_TOP/go/src" >/dev/null
-          find "$goPackagePath" -type f -name \*$type.go -exec dirname {} \; | grep -v "/vendor/" | sort | uniq
+          find "$goPackagePath" -type f -name \*$type.go -exec dirname {} \; | grep -v "/vendor/" | sort | uniq | grep -v "$exclude"
           popd >/dev/null
         fi
       }
@@ -195,6 +202,7 @@ let
           export NIX_BUILD_CORES=1
       fi
       for pkg in $(getGoDirs ""); do
+        echo "Building subPackage $pkg"
         buildGoDir install "$pkg"
       done
     '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
diff --git a/pkgs/development/haskell-modules/HACKING.md b/pkgs/development/haskell-modules/HACKING.md
index 51b0abb155243..8dc5c434672df 100644
--- a/pkgs/development/haskell-modules/HACKING.md
+++ b/pkgs/development/haskell-modules/HACKING.md
@@ -345,7 +345,7 @@ Here are some additional tips that didn't fit in above.
         [release-haskell.nix](../../top-level/release-haskell.nix).
 
     1.  Update the
-        [Nextcloud Calendar](https://cloud.maralorn.de/apps/calendar/p/Mw5WLnzsP7fC4Zky)
+        [Nextcloud Calendar](https://cloud.maralorn.de/apps/calendar/p/H6migHmKX7xHoTFa)
         and work the new member into the `haskell-updates` rotation.
 
     1.  Optionally, have the new member add themselves to the Haskell
diff --git a/pkgs/development/haskell-modules/configuration-arm.nix b/pkgs/development/haskell-modules/configuration-arm.nix
index 2ea0f56634b8a..f3b65167ea66c 100644
--- a/pkgs/development/haskell-modules/configuration-arm.nix
+++ b/pkgs/development/haskell-modules/configuration-arm.nix
@@ -62,7 +62,6 @@ self: super: {
   headroom = dontCheck super.headroom;
   hgeometry = dontCheck super.hgeometry;
   hhp = dontCheck super.hhp;
-  hint = dontCheck super.hint;
   hls-splice-plugin = dontCheck super.hls-splice-plugin;
   hsakamai = dontCheck super.hsakamai;
   hsemail-ns = dontCheck super.hsemail-ns;
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 0302ca2e54cec..5f02160c64e4f 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -252,7 +252,7 @@ self: super: {
   binary-protocol = dontCheck super.binary-protocol;    # http://hydra.cryp.to/build/499749/log/raw
   binary-search = dontCheck super.binary-search;
   bits = dontCheck super.bits;                          # http://hydra.cryp.to/build/500239/log/raw
-  bloodhound = dontCheck super.bloodhound;
+  bloodhound = dontCheck super.bloodhound;              # https://github.com/plow-technologies/quickcheck-arbitrary-template/issues/10
   buildwrapper = dontCheck super.buildwrapper;
   burst-detection = dontCheck super.burst-detection;    # http://hydra.cryp.to/build/496948/log/raw
   cabal-meta = dontCheck super.cabal-meta;              # http://hydra.cryp.to/build/497892/log/raw
@@ -619,7 +619,7 @@ self: super: {
     doCheck = false;            # https://github.com/kazu-yamamoto/ghc-mod/issues/335
     executableToolDepends = drv.executableToolDepends or [] ++ [pkgs.buildPackages.emacs];
     postInstall = ''
-      local lispdir=( "$data/share/${self.ghc.name}/*/${drv.pname}-${drv.version}/elisp" )
+      local lispdir=( "$data/share/${self.ghc.targetPrefix}${self.ghc.haskellCompilerName}/*/${drv.pname}-${drv.version}/elisp" )
       make -C $lispdir
       mkdir -p $data/share/emacs/site-lisp
       ln -s "$lispdir/"*.el{,c} $data/share/emacs/site-lisp/
@@ -654,7 +654,7 @@ self: super: {
     # cannot easily byte-compile these files, unfortunately, because they
     # depend on a new version of haskell-mode that we don't have yet.
     postInstall = ''
-      local lispdir=( "$data/share/${self.ghc.name}/"*"/${drv.pname}-"*"/elisp" )
+      local lispdir=( "$data/share/${self.ghc.targetPrefix}${self.ghc.haskellCompilerName}/"*"/${drv.pname}-"*"/elisp" )
       mkdir -p $data/share/emacs
       ln -s $lispdir $data/share/emacs/site-lisp
     '';
@@ -665,7 +665,7 @@ self: super: {
     # We cannot easily byte-compile these files, unfortunately, because they
     # depend on a new version of haskell-mode that we don't have yet.
     postInstall = ''
-      local lispdir=( "$data/share/${self.ghc.name}/"*"/${drv.pname}-"*"/elisp" )
+      local lispdir=( "$data/share/${self.ghc.targetPrefix}${self.ghc.haskellCompilerName}/"*"/${drv.pname}-"*"/elisp" )
       mkdir -p $data/share/emacs
       ln -s $lispdir $data/share/emacs/site-lisp
     '';
@@ -1045,12 +1045,6 @@ self: super: {
   # Generate shell completion.
   cabal2nix = generateOptparseApplicativeCompletion "cabal2nix" super.cabal2nix;
 
-  # 2022-03-20: niv is unmaintained we pin stuff to keep it running
-  niv = generateOptparseApplicativeCompletion "niv" (super.niv.overrideScope (self: super: {
-   optparse-applicative = self.optparse-applicative_0_15_1_0;
-   aeson = self.aeson_1_5_6_0;
-  }));
-
   ormolu = generateOptparseApplicativeCompletion "ormolu" super.ormolu;
 
   stack =
@@ -1196,8 +1190,29 @@ self: super: {
   # Fix build with attr-2.4.48 (see #53716)
   xattr = appendPatch ./patches/xattr-fix-build.patch super.xattr;
 
-  # Some tests depend on a postgresql instance
-  esqueleto = dontCheck super.esqueleto;
+  esqueleto =
+    overrideCabal
+      (drv: {
+        postPatch = drv.postPatch or "" + ''
+          # patch out TCP usage: https://nixos.org/manual/nixpkgs/stable/#sec-postgresqlTestHook-tcp
+          sed -i test/PostgreSQL/Test.hs \
+            -e s^host=localhost^^
+        '';
+        # Match the test suite defaults (or hardcoded values?)
+        preCheck = drv.preCheck or "" + ''
+          PGUSER=esqutest
+          PGDATABASE=esqutest
+        '';
+        testFlags = drv.testFlags or [] ++ [
+          # We don't have a MySQL test hook yet
+          "--skip=/Esqueleto/MySQL"
+        ];
+        testToolDepends = drv.testToolDepends or [] ++ [
+          pkgs.postgresql
+          pkgs.postgresqlTestHook
+        ];
+      })
+      super.esqueleto;
 
   # Requires API keys to run tests
   algolia = dontCheck super.algolia;
@@ -1316,7 +1331,25 @@ self: super: {
 
   # Test suite requires database
   persistent-mysql = dontCheck super.persistent-mysql;
-  persistent-postgresql = dontCheck super.persistent-postgresql;
+  persistent-postgresql =
+    overrideCabal
+      (drv: {
+        postPatch = drv.postPath or "" + ''
+          # patch out TCP usage: https://nixos.org/manual/nixpkgs/stable/#sec-postgresqlTestHook-tcp
+          # NOTE: upstream host variable takes only two values...
+          sed -i test/PgInit.hs \
+            -e s^'host=" <> host <> "'^^
+        '';
+        preCheck = drv.preCheck or "" + ''
+          PGDATABASE=test
+          PGUSER=test
+        '';
+        testToolDepends = drv.testToolDepends or [] ++ [
+          pkgs.postgresql
+          pkgs.postgresqlTestHook
+        ];
+      })
+      super.persistent-postgresql;
 
   # Fix EdisonAPI and EdisonCore for GHC 8.8:
   # https://github.com/robdockins/edison/pull/16
@@ -1484,35 +1517,53 @@ self: super: {
 
   # hasura packages need some extra care
   graphql-engine = overrideCabal (drv: {
-    patches = [ ./patches/graphql-engine-mapkeys.patch ];
+    patches = [
+      # Compat with unordered-containers >= 0.2.15.0
+      (fetchpatch {
+        name = "hasura-graphql-engine-updated-deps.patch";
+        url = "https://github.com/hasura/graphql-engine/commit/d50aae87a58794bc1fc66c7a60acb0c34b5e70c7.patch";
+        stripLen = 1;
+        excludes = [ "cabal.project.freeze" ];
+        sha256 = "0lb5l9vfynr85i9xs53w4mpgczp04ncxz7846n3y91ri34fa87v3";
+      })
+      # Compat with hashable >= 1.3.4.0
+      (fetchpatch {
+        name = "hasura-graphql-engine-hashable-1.3.4.0.patch";
+        url = "https://github.com/hasura/graphql-engine/commit/e48b2287315fb09005ffd52c0a686dc321171ae2.patch";
+        sha256 = "1jppnanmsyl8npyf59s0d8bgjy7bq50vkh5zx4888jy6jqh27jb6";
+        stripLen = 1;
+      })
+      # Compat with unordered-containers >= 0.2.17.0
+      (fetchpatch {
+        name = "hasura-graphql-engine-unordered-containers-0.2.17.0.patch";
+        url = "https://github.com/hasura/graphql-engine/commit/3a1eb3128a2ded2da7c5fef089738890828cce03.patch";
+        sha256 = "0vz7s8m8mjvv728vm4q0dvvrirvydaw7xks30b5ddj9f6a72a2f1";
+        stripLen = 1;
+      })
+    ];
     doHaddock = false;
-    version = "2.0.10";
-  }) (super.graphql-engine.overrideScope (self: super: {
+    version = "2.3.1";
+  }) (super.graphql-engine.override {
     immortal = self.immortal_0_2_2_1;
     resource-pool = self.hasura-resource-pool;
     ekg-core = self.hasura-ekg-core;
     ekg-json = self.hasura-ekg-json;
-    hspec = dontCheck self.hspec_2_9_4;
-    hspec-core = dontCheck self.hspec-core_2_9_4;
-    hspec-discover = dontCheck super.hspec-discover_2_9_4;
-  }));
-  hasura-ekg-core = doJailbreak (super.hasura-ekg-core.overrideScope (self: super: {
-    hspec = dontCheck self.hspec_2_9_4;
-    hspec-core = dontCheck self.hspec-core_2_9_4;
-    hspec-discover = dontCheck super.hspec-discover_2_9_4;
-  }));
-  hasura-ekg-json = super.hasura-ekg-json.overrideScope (self: super: {
-    ekg-core = self.hasura-ekg-core;
-    hspec = dontCheck self.hspec_2_9_4;
-    hspec-core = dontCheck self.hspec-core_2_9_4;
-    hspec-discover = dontCheck super.hspec-discover_2_9_4;
   });
+  hasura-ekg-json = super.hasura-ekg-json.override {
+    ekg-core = self.hasura-ekg-core;
+  };
   pg-client = overrideCabal (drv: {
     librarySystemDepends = with pkgs; [ postgresql krb5.dev openssl.dev ];
-    # wants a running DB to check against
-    doCheck = false;
+    testToolDepends = drv.testToolDepends or [] ++ [
+      pkgs.postgresql pkgs.postgresqlTestHook
+    ];
+    preCheck = drv.preCheck or "" + ''
+      # empty string means use default connection
+      export DATABASE_URL=""
+    '';
   }) (super.pg-client.override {
     resource-pool = self.hasura-resource-pool;
+    ekg-core = self.hasura-ekg-core;
   });
 
   # https://github.com/bos/statistics/issues/170
@@ -2044,18 +2095,6 @@ self: super: {
     '' + (drv.postPatch or "");
   }) (doJailbreak super.jsaddle);
 
-  # 2022-03-22: PR for haskell-gi-base compat https://github.com/ghcjs/jsaddle/pull/129
-  jsaddle-webkit2gtk =
-    appendPatch (
-      fetchpatch {
-        name = "haskell-gi-base-0.26-compat-patch";
-        url = "https://github.com/ghcjs/jsaddle/commit/c9a9ad39addea469f7e3f5bc6b1c778fefaab5d8.patch";
-        sha256 = "sha256-4njoOxtJH2jVqiPmW8f9hGUqpzI3yJ1XP4u85QgmvjU=";
-        relative = "jsaddle-webkit2gtk";
-      }
-    )
-    super.jsaddle-webkit2gtk;
-
   # 2022-03-22: Jailbreak for base bound: https://github.com/reflex-frp/reflex-dom/pull/433
   reflex-dom = assert super.reflex-dom.version == "0.6.1.1"; doJailbreak super.reflex-dom;
 
@@ -2545,6 +2584,15 @@ self: super: {
   # 2022-03-16: Upstream stopped updating bounds https://github.com/haskell-hvr/base-noprelude/pull/15
   base-noprelude = doJailbreak super.base-noprelude;
 
+  # Manually upgrade cryptostore to work around
+  # https://github.com/ocheron/cryptostore/issues/7
+  cryptostore = assert super.cryptostore.version == "0.2.1.0"; overrideCabal {
+    version = "0.2.2.0";
+    sha256 = "0n70amg7y2qwfjhj4xaqjia46fbabba9l2g19ry191m7c4zp1skx";
+    revision = null;
+    editedCabalFile = null;
+  } super.cryptostore;
+
   # 2022-03-16: Bounds need to be loosened https://github.com/obsidiansystems/dependent-sum-aeson-orphans/issues/10
   dependent-sum-aeson-orphans = doJailbreak super.dependent-sum-aeson-orphans;
 
@@ -2592,4 +2640,11 @@ self: super: {
     aeson = self.aeson_1_5_6_0;
   });
 
+  # Support network >= 3.1.2
+  # https://github.com/erebe/wstunnel/pull/107
+  wstunnel = appendPatch (fetchpatch {
+    url = "https://github.com/erebe/wstunnel/pull/107/commits/47c1f62bdec1dbe77088d9e3ceb6d872f922ce34.patch";
+    sha256 = "sha256-fW5bVbAGQxU/gd9zqgVNclwKraBtUjkKDek7L0c4+O0=";
+  }) super.wstunnel;
+
 } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
diff --git a/pkgs/development/haskell-modules/configuration-darwin.nix b/pkgs/development/haskell-modules/configuration-darwin.nix
index 84be174e97e8a..f8ae9807cd1d1 100644
--- a/pkgs/development/haskell-modules/configuration-darwin.nix
+++ b/pkgs/development/haskell-modules/configuration-darwin.nix
@@ -287,8 +287,6 @@ self: super: ({
   # https://github.com/fpco/unliftio/issues/87
   unliftio = dontCheck super.unliftio;
 
-  # https://github.com/fpco/inline-c/issues/127
-  inline-c-cpp = dontCheck super.inline-c-cpp;
 
   # https://github.com/haskell-crypto/cryptonite/issues/360
   cryptonite = appendPatch ./patches/cryptonite-remove-argon2.patch super.cryptonite;
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
index 0979466904479..5b13e0d036b76 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
@@ -2,6 +2,10 @@
 
 with haskellLib;
 
+let
+  inherit (pkgs.stdenv.hostPlatform) isDarwin;
+in
+
 self: super: {
 
   llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
@@ -85,20 +89,22 @@ self: super: {
   mime-string = disableOptimization super.mime-string;
 
   # Older compilers need the latest ghc-lib to build this package.
-  hls-hlint-plugin = addBuildDepend self.ghc-lib super.hls-hlint-plugin;
+  hls-hlint-plugin = addBuildDepend self.ghc-lib (overrideCabal (drv: {
+      # Workaround for https://github.com/haskell/haskell-language-server/issues/2728
+      postPatch = ''
+        sed -i 's/(GHC.RealSrcSpan x,/(GHC.RealSrcSpan x Nothing,/' src/Ide/Plugin/Hlint.hs
+      '';
+    })
+     super.hls-hlint-plugin);
 
   haskell-language-server = appendConfigureFlags [
-      "-f-fourmolu"
       "-f-stylishhaskell"
       "-f-brittany"
-      "-f-hlint"
     ]
-  (super.haskell-language-server.override {
-    # Not buildable on 8.10
-    hls-fourmolu-plugin = null;
-    # https://github.com/haskell/haskell-language-server/issues/2728
-    hls-hlint-plugin = null;
-  });
+  super.haskell-language-server;
+
+  # has a restrictive lower bound on Cabal
+  fourmolu = doJailbreak super.fourmolu;
 
   # ormolu 0.3 requires Cabal == 3.4
   ormolu = super.ormolu_0_2_0_0;
@@ -121,4 +127,7 @@ self: super: {
   ] super.mysql-simple;
 
   taffybar = markUnbroken (doDistribute super.taffybar);
+
+  # https://github.com/fpco/inline-c/issues/127 (recommend to upgrade to Nixpkgs GHC >=9.0)
+  inline-c-cpp = (if isDarwin then dontCheck else x: x) super.inline-c-cpp;
 }
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
index d712ab9d1a2b1..5eaa1ae413d47 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
@@ -2,6 +2,10 @@
 
 with haskellLib;
 
+let
+  inherit (pkgs.stdenv.hostPlatform) isDarwin;
+in
+
 self: super: {
 
   llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
@@ -104,4 +108,6 @@ self: super: {
 
   mime-string = disableOptimization super.mime-string;
 
+  # https://github.com/fpco/inline-c/issues/127 (recommend to upgrade to Nixpkgs GHC >=9.0)
+  inline-c-cpp = (if isDarwin then dontCheck else x: x) super.inline-c-cpp;
 }
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
index c0e9b7aab5ae3..9a6e8ccab16d0 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
@@ -2,6 +2,10 @@
 
 with haskellLib;
 
+let
+  inherit (pkgs.stdenv.hostPlatform) isDarwin;
+in
+
 self: super: {
 
   llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
@@ -127,18 +131,23 @@ self: super: {
 
   mime-string = disableOptimization super.mime-string;
 
+  # Older compilers need the latest ghc-lib to build this package.
+  hls-hlint-plugin = addBuildDepend self.ghc-lib (overrideCabal (drv: {
+      # Workaround for https://github.com/haskell/haskell-language-server/issues/2728
+      postPatch = ''
+        sed -i 's/(GHC.RealSrcSpan x,/(GHC.RealSrcSpan x Nothing,/' src/Ide/Plugin/Hlint.hs
+      '';
+    })
+     super.hls-hlint-plugin);
+
   haskell-language-server = appendConfigureFlags [
-      "-f-fourmolu"
       "-f-stylishhaskell"
       "-f-brittany"
-      "-f-hlint"
     ]
-  (super.haskell-language-server.override {
-    # Not buildable on 8.8
-    hls-fourmolu-plugin = null;
-    # https://github.com/haskell/haskell-language-server/issues/2728
-    hls-hlint-plugin = null;
-  });
+  super.haskell-language-server;
+
+  # has a restrictive lower bound on Cabal
+  fourmolu = doJailbreak super.fourmolu;
 
   # OneTuple needs hashable instead of ghc-prim for GHC < 9
   OneTuple = super.OneTuple.override {
@@ -150,4 +159,7 @@ self: super: {
   mysql-simple = addBuildDepends [
     self.blaze-textual
   ] super.mysql-simple;
+
+  # https://github.com/fpco/inline-c/issues/127 (recommend to upgrade to Nixpkgs GHC >=9.0)
+  inline-c-cpp = (if isDarwin then dontCheck else x: x) super.inline-c-cpp;
 }
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
index f36c77d636a7b..855afa28101d5 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
@@ -2,6 +2,10 @@
 
 with haskellLib;
 
+let
+  inherit (pkgs.stdenv.hostPlatform) isDarwin;
+in
+
 self: super: {
 
   llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
@@ -118,4 +122,10 @@ self: super: {
   multistate = doJailbreak super.multistate;
   # https://github.com/lspitzner/butcher/issues/7
   butcher = doJailbreak super.butcher;
+
+  # We use a GHC patch to support the fix for https://github.com/fpco/inline-c/issues/127
+  # which means that the upstream cabal file isn't allowed to add the flag.
+  inline-c-cpp =
+    (if isDarwin then appendConfigureFlags ["--ghc-option=-fcompact-unwind"] else x: x)
+    super.inline-c-cpp;
 }
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
index eb1245191cb82..3a9e9f06fbe9c 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
@@ -2,6 +2,10 @@
 
 with haskellLib;
 
+let
+  inherit (pkgs.stdenv.hostPlatform) isDarwin;
+in
+
 self: super: {
 
   llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
@@ -209,7 +213,9 @@ self: super: {
   regex-rure = doDistribute (markUnbroken super.regex-rure);
   jacinda = doDistribute super.jacinda;
   some = doJailbreak super.some;
-  fourmolu = super.fourmolu_0_5_0_1;
+  fourmolu = super.fourmolu_0_6_0_0;
+  # hls-fourmolu-plugin in this version has a to strict upper bound of fourmolu <= 0.5.0.0
+  hls-fourmolu-plugin = assert super.hls-fourmolu-plugin.version == "1.0.2.0"; doJailbreak super.hls-fourmolu-plugin;
   implicit-hie-cradle = doJailbreak super.implicit-hie-cradle;
   # 1.3 introduced support for GHC 9.2.x, so when this assert fails, the jailbreak can be removed
   hashtables = assert super.hashtables.version == "1.2.4.2"; doJailbreak super.hashtables;
@@ -236,4 +242,9 @@ self: super: {
     hls-retrie-plugin = null;
     hls-splice-plugin = null;
   }));
+
+  # https://github.com/fpco/inline-c/pull/131
+  inline-c-cpp =
+    (if isDarwin then appendConfigureFlags ["--ghc-option=-fcompact-unwind"] else x: x)
+    super.inline-c-cpp;
 }
diff --git a/pkgs/development/haskell-modules/configuration-ghc-head.nix b/pkgs/development/haskell-modules/configuration-ghc-head.nix
index e1e3f2c99884e..bc65e209911ea 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-head.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-head.nix
@@ -9,27 +9,33 @@
 
 with haskellLib;
 
+let
+  inherit (pkgs.stdenv.hostPlatform) isDarwin;
+in
+
 self: super: {
 
   llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
 
-  # Disable GHC 8.7.x core libraries.
+  # Disable GHC core libraries.
   array = null;
   base = null;
   binary = null;
   bytestring = null;
   Cabal = null;
+  Cabal-syntax = null;
   containers = null;
   deepseq = null;
   directory = null;
+  exceptions = null;
   filepath = null;
+  ghc-bignum = null;
   ghc-boot = null;
   ghc-boot-th = null;
-  ghc-bignum = null;
   ghc-compact = null;
   ghc-heap = null;
-  ghci = null;
   ghc-prim = null;
+  ghci = null;
   haskeline = null;
   hpc = null;
   integer-gmp = null;
@@ -47,7 +53,6 @@ self: super: {
   transformers = null;
   unix = null;
   xhtml = null;
-  exceptions = null;
 
   # https://github.com/tibbe/unordered-containers/issues/214
   unordered-containers = dontCheck super.unordered-containers;
@@ -74,4 +79,9 @@ self: super: {
   # Break out of "yaml >=0.10.4.0 && <0.11": https://github.com/commercialhaskell/stack/issues/4485
   stack = doJailbreak super.stack;
 
+  # https://github.com/fpco/inline-c/pull/131
+  # and/or https://gitlab.haskell.org/ghc/ghc/-/merge_requests/7739
+  inline-c-cpp =
+    (if isDarwin then appendConfigureFlags ["--ghc-option=-fcompact-unwind"] else x: x)
+    super.inline-c-cpp;
 }
diff --git a/pkgs/development/haskell-modules/configuration-ghcjs.nix b/pkgs/development/haskell-modules/configuration-ghcjs.nix
index 2bdf5cfbe51ed..c6e0e6a2c053d 100644
--- a/pkgs/development/haskell-modules/configuration-ghcjs.nix
+++ b/pkgs/development/haskell-modules/configuration-ghcjs.nix
@@ -19,7 +19,7 @@ self: super:
     jailbreak-cabal alex happy gtk2hs-buildtools rehoo hoogle;
 
   ghcjs-base = dontCheck (self.callPackage ../compilers/ghcjs/ghcjs-base.nix {
-    fetchgit = pkgs.buildPackages.fetchgit;
+    fetchFromGitHub = pkgs.buildPackages.fetchFromGitHub;
   });
 
   # GHCJS does not ship with the same core packages as GHC.
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
index ba23a9a5b28ff..f18d261ce1a16 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
@@ -357,6 +357,7 @@ broken-packages:
   - binary-communicator
   - binary-derive
   - binary-ext
+  - binary-generic-combinators
   - binary-indexed-tree
   - binary-protocol
   - binary-tree
@@ -433,7 +434,6 @@ broken-packages:
   - blockfrost-api
   - blockhash
   - Blogdown
-  - bloodhound
   - bloomfilter-redis
   - blubber-server
   - bludigon
@@ -453,6 +453,7 @@ broken-packages:
   - botpp
   - bottom
   - boundingboxes
+  - bower-json
   - bowntz
   - bpath
   - braid
@@ -1318,6 +1319,7 @@ broken-packages:
   - ert
   - escape-artist
   - escoger
+  - espial
   - esqueleto-pgcrypto
   - ess
   - essence-of-live-coding-gloss-example
@@ -1392,6 +1394,7 @@ broken-packages:
   - fast-nats
   - fastpbkdf2
   - FastPush
+  - fast-tags
   - FastxPipe
   - fathead-util
   - fb
@@ -1685,6 +1688,7 @@ broken-packages:
   - ghcup
   - ghc-usage
   - gh-labeler
+  - gi-adwaita
   - giak
   - gi-cogl
   - Gifcurry
@@ -1924,6 +1928,7 @@ broken-packages:
   - haquery
   - harchive
   - HARM
+  - HarmTrace-Base
   - haroonga
   - harp
   - harpy
@@ -2107,6 +2112,7 @@ broken-packages:
   - heidi
   - hein
   - heist-async
+  - heist-emanote
   - helic
   - helisp
   - hell
@@ -2541,6 +2547,7 @@ broken-packages:
   - hylolib
   - hyperdrive
   - hyperfunctions
+  - hyper-haskell-server
   - hyperion
   - hyperloglogplus
   - hyperscript
@@ -2732,6 +2739,7 @@ broken-packages:
   - json-extra
   - json-fu
   - json-litobj
+  - jsonlogic
   - jsonnet
   - json-pointer
   - json-pointy
@@ -2773,6 +2781,7 @@ broken-packages:
   - kangaroo
   - karabiner-config
   - katip-datadog
+  - katip-elasticsearch
   - katip-kafka
   - katip-logzio
   - katip-scalyr-scribe
@@ -2952,6 +2961,7 @@ broken-packages:
   - lifetimes
   - lifted-protolude
   - lifter
+  - lifx-lan
   - ligature
   - light
   - lilypond
@@ -3324,6 +3334,7 @@ broken-packages:
   - msgpack
   - msgpack-binary
   - msgpack-persist
+  - msgpack-types
   - msh
   - msi-kb-backlit
   - MTGBuilder
@@ -3589,6 +3600,7 @@ broken-packages:
   - open-signals
   - opensoundcontrol-ht
   - openssh-protocol
+  - opentelemetry-extra
   - opentelemetry-http-client
   - opentheory-char
   - opentok
@@ -3959,6 +3971,7 @@ broken-packages:
   - powerdns
   - powermate
   - powerpc
+  - powerqueue-levelmem
   - pprecord
   - PPrinter
   - pqc
@@ -4017,6 +4030,7 @@ broken-packages:
   - process-leksah
   - process-listlike
   - processmemory
+  - procex
   - procrastinating-variable
   - procstat
   - prof2pretty
@@ -4323,6 +4337,7 @@ broken-packages:
   - robin
   - robots-txt
   - roc-cluster
+  - roc-id
   - roku-api
   - rollbar-client
   - rollbar-hs
@@ -4666,6 +4681,7 @@ broken-packages:
   - smtps-gmail
   - smuggler
   - smuggler2
+  - snack
   - snake
   - snake-game
   - snap-accept
@@ -4705,6 +4721,7 @@ broken-packages:
   - socketio
   - sockets-and-pipes
   - socket-sctp
+  - socketson
   - socket-unix
   - sodium
   - soegtk
@@ -5205,6 +5222,7 @@ broken-packages:
   - trial-tomland
   - trigger
   - trim
+  - tripLL
   - trivia
   - tropical
   - true-name
@@ -5591,7 +5609,6 @@ broken-packages:
   - wsdl
   - wsedit
   - wsjtx-udp
-  - wstunnel
   - wtk
   - wumpus-core
   - wxdirect
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
index dfa46c41b9354..48a3181014cc0 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
@@ -68,8 +68,7 @@ core-packages:
 # tracked in stackage.yaml. Adding conflicting overrides with stackage here will
 # not work.
 default-package-overrides:
-  # gi-gdkx11-4.x requires gtk-4.x, which is still under development and
-  # not yet available in Nixpkgs
+  # gi-gdkx11-4.x requires gtk-4.x, but stackage still restricts gi-gtk to 3.*
   - gi-gdkx11 < 4
   # reflex-dom-pandoc is only used by neuron which needs a version < 1.0.0.0
   - reflex-dom-pandoc < 1.0.0.0
@@ -129,6 +128,11 @@ extra-packages:
   - relude == 0.7.0.0                   # 2022-02-25: Needed for ema 0.6
   - SVGFonts < 1.8                      # 2022-03-19: Needed for Chart-diagrams 1.9.3
   - clay < 0.14                         # 2022-03-20: Needed for neuron 1.0.0.0
+  - hspec-golden == 0.1.*               # 2022-04-07: Needed for elm-format
+  - tasty-hspec == 1.1.6                # 2022-04-07: Needed for elm-format
+  - hspec < 2.8                         # 2022-04-07: Needed for tasty-hspec 1.1.6
+  - hspec-core < 2.8                    # 2022-04-07: Needed for tasty-hspec 1.1.6
+  - hspec-discover < 2.8                # 2022-04-07: Needed for tasty-hspec 1.1.6
 
 package-maintainers:
   abbradar:
@@ -228,6 +232,8 @@ package-maintainers:
     - total
     - turtle
     - typed-spreadsheet
+  gebner:
+    - wstunnel
   gridaphobe:
     - located-base
   jb55:
@@ -327,6 +333,8 @@ package-maintainers:
     - hercules-ci-cli
     - hercules-ci-cnix-expr
     - hercules-ci-cnix-store
+    - inline-c
+    - inline-c-cpp
   rvl:
     - taffybar
     - arbtt
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
index 51741597999a0..85354eff6b18a 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
@@ -1,4 +1,4 @@
-# Stackage LTS 19.1
+# Stackage LTS 19.3
 # This file is auto-generated by
 # maintainers/scripts/haskell/update-stackage.sh
 default-package-overrides:
@@ -33,7 +33,7 @@ default-package-overrides:
   - aeson-typescript ==0.3.0.1
   - aeson-yak ==0.1.1.3
   - aeson-yaml ==1.1.0.1
-  - Agda ==2.6.2.1
+  - Agda ==2.6.2.2
   - agda2lagda ==0.2021.6.1
   - al ==0.1.4.2
   - alarmclock ==0.7.0.6
@@ -121,15 +121,15 @@ default-package-overrides:
   - bank-holidays-england ==0.2.0.7
   - barbies ==2.0.3.1
   - barrier ==0.1.1
-  - base16 ==0.3.1.0
+  - base16 ==0.3.2.0
   - base16-bytestring ==1.0.2.0
   - base16-lens ==0.1.3.2
-  - base32 ==0.2.1.0
+  - base32 ==0.2.2.0
   - base32-lens ==0.1.1.1
   - base32string ==0.9.1
   - base58-bytestring ==0.1.0
   - base58string ==0.10.0
-  - base64 ==0.4.2.3
+  - base64 ==0.4.2.4
   - base64-bytestring ==1.2.1.0
   - base64-bytestring-type ==1.0.1
   - base64-lens ==0.3.1
@@ -224,7 +224,7 @@ default-package-overrides:
   - BoundedChan ==1.0.3.0
   - bounded-queue ==1.0.0
   - boxes ==0.1.5
-  - brick ==0.68
+  - brick ==0.68.1
   - brittany ==0.14.0.2
   - broadcast-chan ==0.2.1.2
   - bsb-http-chunked ==0.0.0.4
@@ -267,7 +267,7 @@ default-package-overrides:
   - cabal-file-th ==0.2.7
   - cabal-flatpak ==0.1.0.3
   - cabal-plan ==0.7.2.1
-  - cabal-rpm ==2.0.11
+  - cabal-rpm ==2.0.11.1
   - Cabal-syntax ==3.6.0.0
   - cache ==0.1.3.0
   - cached-json-file ==0.1.1
@@ -296,7 +296,7 @@ default-package-overrides:
   - cborg ==0.2.6.0
   - cborg-json ==0.2.3.0
   - cdar-mBound ==0.1.0.4
-  - c-enum ==0.1.1.2
+  - c-enum ==0.1.1.3
   - cereal ==0.5.8.2
   - cereal-conduit ==0.8.0
   - cereal-text ==0.1.0.2
@@ -329,9 +329,9 @@ default-package-overrides:
   - circle-packing ==0.1.0.6
   - circular ==0.4.0.2
   - citeproc ==0.6.0.1
-  - clash-ghc ==1.6.2
-  - clash-lib ==1.6.2
-  - clash-prelude ==1.6.2
+  - clash-ghc ==1.6.3
+  - clash-lib ==1.6.3
+  - clash-prelude ==1.6.3
   - classy-prelude ==1.5.0.2
   - classy-prelude-conduit ==1.5.0
   - classy-prelude-yesod ==1.5.0
@@ -342,7 +342,7 @@ default-package-overrides:
   - climb ==0.3.3
   - Clipboard ==2.3.2.0
   - clock ==0.8.3
-  - closed ==0.2.0.1
+  - closed ==0.2.0.2
   - clumpiness ==0.17.0.2
   - ClustalParser ==1.3.0
   - cmark ==0.6
@@ -366,8 +366,8 @@ default-package-overrides:
   - comfort-array-shape ==0.0
   - comfort-fftw ==0.0
   - comfort-graph ==0.0.3.2
-  - commonmark ==0.2.1.1
-  - commonmark-extensions ==0.2.3
+  - commonmark ==0.2.2
+  - commonmark-extensions ==0.2.3.1
   - commonmark-pandoc ==0.2.1.2
   - commutative ==0.0.2
   - comonad ==5.0.8
@@ -423,8 +423,8 @@ default-package-overrides:
   - cookie ==0.4.5
   - copr-api ==0.1.0
   - core-data ==0.3.1.1
-  - core-program ==0.4.4.0
-  - core-telemetry ==0.1.9.1
+  - core-program ==0.4.5.1
+  - core-telemetry ==0.1.9.2
   - core-text ==0.3.5.0
   - countable ==1.0
   - covariance ==0.1.0.6
@@ -680,7 +680,7 @@ default-package-overrides:
   - errors ==2.3.0
   - errors-ext ==0.4.2
   - ersatz ==0.4.10
-  - esqueleto ==3.5.3.1
+  - esqueleto ==3.5.4.0
   - essence-of-live-coding ==0.2.6
   - essence-of-live-coding-gloss ==0.2.6
   - essence-of-live-coding-pulse ==0.2.6
@@ -708,7 +708,7 @@ default-package-overrides:
   - explainable-predicates ==0.1.2.1
   - explicit-exception ==0.1.10
   - exp-pairs ==0.2.1.0
-  - express ==1.0.8
+  - express ==1.0.10
   - extended-reals ==0.2.4.0
   - extensible-effects ==5.0.0.1
   - extensible-exceptions ==0.1.1.4
@@ -722,7 +722,7 @@ default-package-overrides:
   - fakedata-quickcheck ==0.2.0
   - fakefs ==0.3.0.2
   - fakepull ==0.3.0.2
-  - faktory ==1.1.2.1
+  - faktory ==1.1.2.2
   - fast-builder ==0.1.3.0
   - fast-logger ==3.1.1
   - fast-math ==1.0.2
@@ -811,7 +811,7 @@ default-package-overrides:
   - functor-classes-compat ==2.0.0.2
   - functor-combinators ==0.4.1.0
   - fused-effects ==1.1.1.2
-  - fusion-plugin ==0.2.3
+  - fusion-plugin ==0.2.4
   - fusion-plugin-types ==0.1.0
   - fuzzcheck ==0.1.1
   - fuzzy ==0.1.0.1
@@ -823,7 +823,7 @@ default-package-overrides:
   - gdp ==0.0.3.0
   - general-games ==1.1.1
   - generic-aeson ==0.2.0.13
-  - generic-arbitrary ==0.2.0
+  - generic-arbitrary ==0.2.1
   - generic-constraints ==1.1.1.1
   - generic-data ==0.9.2.1
   - generic-data-surgery ==0.3.0.0
@@ -942,10 +942,10 @@ default-package-overrides:
   - graph-core ==0.3.0.0
   - graphite ==0.10.0.1
   - graphs ==0.7.1
-  - graphula ==2.0.1.0
+  - graphula ==2.0.1.1
   - graphviz ==2999.20.1.0
   - graph-wrapper ==0.2.6.0
-  - gravatar ==0.8.0
+  - gravatar ==0.8.1
   - greskell ==2.0.0.0
   - greskell-core ==1.0.0.0
   - greskell-websocket ==1.0.0.0
@@ -966,7 +966,7 @@ default-package-overrides:
   - hadoop-streaming ==0.2.0.3
   - hakyll ==4.15.1.1
   - hakyll-convert ==0.3.0.4
-  - hal ==0.4.10
+  - hal ==0.4.10.1
   - half ==0.3.1
   - hall-symbols ==0.1.0.6
   - hamilton ==0.1.0.3
@@ -1050,7 +1050,7 @@ default-package-overrides:
   - hindent ==5.3.2
   - hinfo ==0.0.3.0
   - hinotify ==0.4.1
-  - hint ==0.9.0.5
+  - hint ==0.9.0.6
   - histogram-fill ==0.9.1.0
   - hjsmin ==0.2.0.4
   - hkd-default ==1.1.0.0
@@ -1087,12 +1087,12 @@ default-package-overrides:
   - hourglass ==0.2.12
   - hourglass-orphans ==0.1.0.0
   - hp2pretty ==0.10
-  - hpack ==0.34.6
+  - hpack ==0.34.7
   - hpack-dhall ==0.5.4
   - hpc-codecov ==0.3.0.0
   - HPDF ==1.6.0
-  - hpp ==0.6.4
-  - hpqtypes ==1.9.3.0
+  - hpp ==0.6.5
+  - hpqtypes ==1.9.3.1
   - hprotoc ==2.4.17
   - hreader ==1.1.0
   - hreader-lens ==0.1.3.0
@@ -1116,7 +1116,7 @@ default-package-overrides:
   - hslua-classes ==2.1.0
   - hslua-core ==2.1.0
   - hslua-marshalling ==2.1.0
-  - hslua-module-doclayout ==1.0.3
+  - hslua-module-doclayout ==1.0.4
   - hslua-module-path ==1.0.2
   - hslua-module-system ==1.0.2
   - hslua-module-text ==1.0.2
@@ -1135,7 +1135,7 @@ default-package-overrides:
   - hspec-core ==2.8.5
   - hspec-discover ==2.8.5
   - hspec-expectations ==0.8.2
-  - hspec-expectations-json ==1.0.0.5
+  - hspec-expectations-json ==1.0.0.6
   - hspec-expectations-lifted ==0.10.0
   - hspec-expectations-pretty-diff ==0.7.2.6
   - hspec-golden ==0.2.0.0
@@ -1354,7 +1354,7 @@ default-package-overrides:
   - LambdaHack ==0.11.0.0
   - lame ==0.2.0
   - language-bash ==0.9.2
-  - language-c ==0.9.0.2
+  - language-c ==0.9.1
   - language-c-quote ==0.13
   - language-docker ==10.4.3
   - language-dot ==0.1.1
@@ -1462,7 +1462,7 @@ default-package-overrides:
   - lz4-frame-conduit ==0.1.0.1
   - lzma ==0.0.0.3
   - lzma-clib ==5.2.2
-  - lzma-conduit ==1.2.2
+  - lzma-conduit ==1.2.3
   - machines ==0.7.2
   - magic ==1.1
   - magico ==0.0.2.3
@@ -1533,9 +1533,9 @@ default-package-overrides:
   - MissingH ==1.5.0.1
   - mixed-types-num ==0.5.9.1
   - mmap ==0.5.9
-  - mmark ==0.0.7.5
+  - mmark ==0.0.7.6
   - mmark-cli ==0.0.5.1
-  - mmark-ext ==0.2.1.4
+  - mmark-ext ==0.2.1.5
   - mmorph ==1.1.5
   - mnist-idx ==0.1.3.0
   - mnist-idx-conduit ==0.4.0.0
@@ -1543,7 +1543,7 @@ default-package-overrides:
   - mock-time ==0.1.0
   - mod ==0.1.2.2
   - model ==0.5
-  - modern-uri ==0.3.4.3
+  - modern-uri ==0.3.4.4
   - modular ==0.1.0.8
   - monad-chronicle ==1.0.0.1
   - monad-control ==1.0.3.1
@@ -1665,7 +1665,7 @@ default-package-overrides:
   - nonemptymap ==0.0.6.0
   - non-empty-sequence ==0.2.0.4
   - nonempty-vector ==0.2.1.0
-  - nonempty-zipper ==1.0.0.3
+  - nonempty-zipper ==1.0.0.4
   - non-negative ==0.1.2
   - normalization-insensitive ==2.0.2
   - not-gloss ==0.7.7.0
@@ -1746,7 +1746,7 @@ default-package-overrides:
   - pandoc-lua-marshal ==0.1.5.1
   - pandoc-plot ==1.4.1
   - pandoc-throw ==0.1.0.0
-  - pandoc-types ==1.22.1
+  - pandoc-types ==1.22.2
   - pantry ==0.5.4
   - parallel ==3.2.2.0
   - parallel-io ==0.3.5
@@ -1797,7 +1797,7 @@ default-package-overrides:
   - perf ==0.9.0
   - perfect-hash-generator ==0.2.0.6
   - persist ==0.1.1.5
-  - persistent ==2.13.3.3
+  - persistent ==2.13.3.4
   - persistent-discover ==0.1.0.5
   - persistent-documentation ==0.1.0.4
   - persistent-mongoDB ==2.13.0.1
@@ -1833,7 +1833,7 @@ default-package-overrides:
   - pipes-ordered-zip ==1.2.1
   - pipes-parse ==3.0.9
   - pipes-random ==1.0.0.5
-  - pipes-safe ==2.3.3
+  - pipes-safe ==2.3.4
   - pipes-wai ==3.2.0
   - pkgtreediff ==0.5.0
   - place-cursor-at ==1.0.1
@@ -1930,13 +1930,13 @@ default-package-overrides:
   - protocol-buffers-descriptor ==2.4.17
   - protocol-radius ==0.0.1.1
   - protocol-radius-test ==0.1.0.1
-  - proto-lens ==0.7.1.0
-  - proto-lens-arbitrary ==0.1.2.10
-  - proto-lens-optparse ==0.1.1.8
-  - proto-lens-protobuf-types ==0.7.1.0
-  - proto-lens-protoc ==0.7.1.0
-  - proto-lens-runtime ==0.7.0.1
-  - proto-lens-setup ==0.4.0.5
+  - proto-lens ==0.7.1.1
+  - proto-lens-arbitrary ==0.1.2.11
+  - proto-lens-optparse ==0.1.1.9
+  - proto-lens-protobuf-types ==0.7.1.1
+  - proto-lens-protoc ==0.7.1.1
+  - proto-lens-runtime ==0.7.0.2
+  - proto-lens-setup ==0.4.0.6
   - proxied ==0.3.1
   - psql-helpers ==0.1.0.0
   - psqueues ==0.2.7.3
@@ -2116,7 +2116,7 @@ default-package-overrides:
   - sandwich-quickcheck ==0.1.0.6
   - sandwich-slack ==0.1.0.6
   - say ==0.1.0.1
-  - sbp ==4.1.1
+  - sbp ==4.1.5
   - sbv ==8.17
   - scalpel ==0.6.2
   - scalpel-core ==0.6.2
@@ -2149,7 +2149,7 @@ default-package-overrides:
   - seqalign ==0.2.0.4
   - seqid ==0.6.2
   - seqid-streams ==0.7.2
-  - sequence-formats ==1.6.3
+  - sequence-formats ==1.6.6.1
   - sequenceTools ==1.5.2
   - serf ==0.1.1.0
   - serialise ==0.2.4.0
@@ -2439,7 +2439,7 @@ default-package-overrides:
   - tcp-streams ==1.0.1.1
   - tdigest ==0.2.1.1
   - teardown ==0.5.0.1
-  - telegram-bot-simple ==0.4.4
+  - telegram-bot-simple ==0.4.5
   - template-haskell-compat-v0208 ==0.1.7
   - temporary ==1.3
   - temporary-rc ==1.2.0.3
@@ -2460,8 +2460,8 @@ default-package-overrides:
   - texmath ==0.12.4
   - text-ansi ==0.1.1
   - text-binary ==0.2.1.1
-  - text-builder ==0.6.6.4
-  - text-builder-dev ==0.2
+  - text-builder ==0.6.6.5
+  - text-builder-dev ==0.2.0.1
   - text-conversions ==0.3.1
   - text-icu ==0.7.1.0
   - text-latin1 ==0.3.1
@@ -2627,7 +2627,7 @@ default-package-overrides:
   - universe-instances-extended ==1.1.3
   - universe-reverse-instances ==1.1.1
   - universe-some ==1.2.1
-  - universum ==1.7.2
+  - universum ==1.7.3
   - unix-bytestring ==0.3.7.6
   - unix-compat ==0.5.4
   - unix-time ==0.4.7
@@ -2839,38 +2839,12 @@ default-package-overrides:
   - yesod-form-bootstrap4 ==3.0.1
   - yesod-gitrepo ==0.3.0
   - yesod-gitrev ==0.2.2
-  - yesod-markdown ==0.12.6.12
+  - yesod-markdown ==0.12.6.13
   - yesod-newsfeed ==1.7.0.0
-  - yesod-page-cursor ==2.0.0.9
-  - yesod-paginator ==1.1.1.0
+  - yesod-page-cursor ==2.0.0.10
+  - yesod-paginator ==1.1.2.1
   - yesod-persistent ==1.6.0.7
   - yesod-recaptcha2 ==1.0.2
-  - yesod-routes-flow ==3.0.0.1
+  - yesod-routes-flow ==3.0.0.2
   - yesod-sitemap ==1.6.0
-  - yesod-static ==1.6.1.0
-  - yesod-test ==1.6.12
-  - yesod-websockets ==0.3.0.3
   - yes-precure5-command ==5.5.3
-  - yi-rope ==0.11
-  - yjsvg ==0.2.0.1
-  - yjtools ==0.9.18
-  - yoga ==0.0.0.5
-  - youtube ==0.2.1.1
-  - zenacy-html ==2.0.4
-  - zenacy-unicode ==1.0.1
-  - zero ==0.1.5
-  - zeromq4-haskell ==0.8.0
-  - zeromq4-patterns ==0.3.1.0
-  - zim-parser ==0.2.1.0
-  - zio ==0.1.0.2
-  - zip ==1.7.2
-  - zip-archive ==0.4.2.1
-  - zipper-extra ==0.1.3.2
-  - zippers ==0.3.2
-  - zip-stream ==0.2.1.0
-  - zlib ==0.6.2.3
-  - zlib-bindings ==0.1.1.5
-  - zlib-lens ==0.1.2.1
-  - zot ==0.0.3
-  - zstd ==0.1.3.0
-  - ztail ==1.2.0.3
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
index 674735fd16e79..b712cbcd153c0 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
@@ -928,6 +928,7 @@ dont-distribute-packages:
  - cfopu
  - chainweb-mining-client
  - chalkboard-viewer
+ - chapelure
  - charade
  - chart-cli
  - chart-svg-various
@@ -1354,7 +1355,6 @@ dont-distribute-packages:
  - errors-ext
  - ersatz-toysat
  - esotericbot
- - espial
  - estimators
  - estreps
  - eternity
@@ -1433,6 +1433,7 @@ dont-distribute-packages:
  - feed-translator
  - feed2lj
  - feed2twitter
+ - feedback
  - fei-base
  - fei-dataiter
  - fei-datasets
@@ -2248,6 +2249,7 @@ dont-distribute-packages:
  - hsx-xhtml
  - html-kure
  - html-presentation-text
+ - htoml-parse
  - hts
  - htsn-import
  - http-client-auth
@@ -2425,6 +2427,7 @@ dont-distribute-packages:
  - json-togo
  - json-tokens
  - json2-hdbc
+ - jsonlogic-aeson
  - jsons-to-schema
  - jspath
  - jvm
@@ -2443,7 +2446,6 @@ dont-distribute-packages:
  - kansas-lava-shake
  - karakuri
  - karps
- - katip-elasticsearch
  - katip-raven
  - katip-rollbar
  - keenser
@@ -2525,6 +2527,7 @@ dont-distribute-packages:
  - language-python-colour
  - language-qux
  - language-spelling
+ - large-anon
  - lat
  - latest-npm-version
  - latex-formulae-hakyll
@@ -2785,6 +2788,7 @@ dont-distribute-packages:
  - moonshine
  - morley
  - morley-client
+ - morley-prelude
  - morley-upgradeable
  - morpheus-graphql
  - morpheus-graphql-app
@@ -2807,9 +2811,11 @@ dont-distribute-packages:
  - mptcp-pm
  - mptcpanalyzer
  - msgpack-aeson
+ - msgpack-arbitrary
  - msgpack-idl
  - msgpack-rpc
  - msgpack-rpc-conduit
+ - msgpack-testsuite
  - mtgoxapi
  - mu-avro
  - mu-graphql
@@ -2961,6 +2967,8 @@ dont-distribute-packages:
  - openpgp-Crypto
  - openpgp-crypto-api
  - openssh-github-keys
+ - opentelemetry-lightstep
+ - opentelemetry-lightstep_0_8_0
  - optima-for-hasql
  - optimal-blocks
  - optimusprime
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index 7100aeeb7fdea..4116cf51ebedd 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -95,7 +95,7 @@ self: super: builtins.intersectAttrs super {
   sfml-audio = appendConfigureFlag "--extra-include-dirs=${pkgs.openal}/include/AL" super.sfml-audio;
 
   # avoid compiling twice by providing executable as a separate output (with small closure size)
-  niv = enableSeparateBinOutput super.niv;
+  niv = enableSeparateBinOutput (generateOptparseApplicativeCompletion "niv" super.niv);
   ormolu = enableSeparateBinOutput super.ormolu;
   ghcid = enableSeparateBinOutput super.ghcid;
 
@@ -619,8 +619,15 @@ self: super: builtins.intersectAttrs super {
         '';
       }) super.spago;
 
+      spagoOldAeson = spagoDocs.overrideScope (hfinal: hprev: {
+        # spago (and its dependency, bower-json) is not yet updated for aeson-2.0
+        aeson = hfinal.aeson_1_5_6_0;
+        # bower-json needs aeson_1_5_6_0 and is marked broken without it.
+        bower-json = doDistribute (markUnbroken hprev.bower-json);
+      });
+
       # Tests require network access.
-      spagoWithoutChecks = dontCheck spagoDocs;
+      spagoWithoutChecks = dontCheck spagoOldAeson;
     in
     spagoWithoutChecks;
 
@@ -869,7 +876,10 @@ self: super: builtins.intersectAttrs super {
   cachix = generateOptparseApplicativeCompletion "cachix" (super.cachix.override { nix = pkgs.nixVersions.nix_2_7; });
 
   hercules-ci-agent = super.hercules-ci-agent.override { nix = pkgs.nixVersions.nix_2_7; };
-  hercules-ci-cnix-expr = super.hercules-ci-cnix-expr.override { nix = pkgs.nixVersions.nix_2_7; };
+  hercules-ci-cnix-expr =
+    addTestToolDepend pkgs.git (
+      super.hercules-ci-cnix-expr.override { nix = pkgs.nixVersions.nix_2_7; }
+    );
   hercules-ci-cnix-store = super.hercules-ci-cnix-store.override { nix = pkgs.nixVersions.nix_2_7; };
 
   # Enable extra optimisations which increase build time, but also
@@ -998,4 +1008,7 @@ self: super: builtins.intersectAttrs super {
   hls-tactics-plugin = dontCheck super.hls-tactics-plugin;
   hls-call-hierarchy-plugin = dontCheck super.hls-call-hierarchy-plugin;
   hls-selection-range-plugin = dontCheck super.hls-selection-range-plugin;
+
+  # Wants to execute cabal-install to (re-)build itself
+  hint = dontCheck super.hint;
 }
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index a9692b5a0f012..bc43c39676c81 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -196,13 +196,13 @@ let
     "--prefix=$out"
     "--libdir=\\$prefix/lib/\\$compiler"
     "--libsubdir=\\$abi/\\$libname"
-    (optionalString enableSeparateDataOutput "--datadir=$data/share/${ghc.name}")
+    (optionalString enableSeparateDataOutput "--datadir=$data/share/${ghcNameWithPrefix}")
     (optionalString enableSeparateDocOutput "--docdir=${docdir "$doc"}")
   ] ++ optionals stdenv.hasCC [
     "--with-gcc=$CC" # Clang won't work without that extra information.
   ] ++ [
     "--package-db=$packageConfDir"
-    (optionalString (enableSharedExecutables && stdenv.isLinux) "--ghc-option=-optl=-Wl,-rpath=$out/lib/${ghc.name}/${pname}-${version}")
+    (optionalString (enableSharedExecutables && stdenv.isLinux) "--ghc-option=-optl=-Wl,-rpath=$out/lib/${ghcNameWithPrefix}/${pname}-${version}")
     (optionalString (enableSharedExecutables && stdenv.isDarwin) "--ghc-option=-optl=-Wl,-headerpad_max_install_names")
     (optionalString enableParallelBuilding "--ghc-options=${parallelBuildingFlags}")
     (optionalString useCpphs "--with-cpphs=${cpphs}/bin/cpphs --ghc-options=-cpp --ghc-options=-pgmP${cpphs}/bin/cpphs --ghc-options=-optP--cpp")
@@ -275,6 +275,8 @@ let
   ghcCommand' = if isGhcjs then "ghcjs" else "ghc";
   ghcCommand = "${ghc.targetPrefix}${ghcCommand'}";
 
+  ghcNameWithPrefix = "${ghc.targetPrefix}${ghc.haskellCompilerName}";
+
   nativeGhcCommand = "${nativeGhc.targetPrefix}ghc";
 
   buildPkgDb = ghcName: packageConfDir: ''
@@ -350,14 +352,14 @@ stdenv.mkDerivation ({
   # pkgs* arrays defined in stdenv/setup.hs
   + ''
     for p in "''${pkgsBuildBuild[@]}" "''${pkgsBuildHost[@]}" "''${pkgsBuildTarget[@]}"; do
-      ${buildPkgDb nativeGhc.name "$setupPackageConfDir"}
+      ${buildPkgDb "${nativeGhcCommand}-${nativeGhc.version}" "$setupPackageConfDir"}
     done
     ${nativeGhcCommand}-pkg --${nativePackageDbFlag}="$setupPackageConfDir" recache
   ''
   # For normal components
   + ''
     for p in "''${pkgsHostHost[@]}" "''${pkgsHostTarget[@]}"; do
-      ${buildPkgDb ghc.name "$packageConfDir"}
+      ${buildPkgDb ghcNameWithPrefix "$packageConfDir"}
       if [ -d "$p/include" ]; then
         configureFlags+=" --extra-include-dirs=$p/include"
       fi
@@ -494,7 +496,7 @@ stdenv.mkDerivation ({
       # just the target specified; "install" will error here, since not all targets have been built.
     else ''
       ${setupCommand} copy ${buildTarget}
-      local packageConfDir="$out/lib/${ghc.name}/package.conf.d"
+      local packageConfDir="$out/lib/${ghcNameWithPrefix}/package.conf.d"
       local packageConfFile="$packageConfDir/${pname}-${version}.conf"
       mkdir -p "$packageConfDir"
       ${setupCommand} register --gen-pkg-config=$packageConfFile
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index abfa19d7ced66..59fe88f0b24db 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -815,10 +815,8 @@ self: {
      }:
      mkDerivation {
        pname = "Agda";
-       version = "2.6.2.1";
-       sha256 = "03dw7jfqr3ffik6avigm525djqh2gn5c3qwnb2h6298zkr9lch9w";
-       revision = "4";
-       editedCabalFile = "0spsj8nk28lfvsv6063d1nif5hag8yal47iwicm7yln0626xsxcd";
+       version = "2.6.2.2";
+       sha256 = "0yjjbhc593ylrm4mq4j01nkdvh7xqsg5in30wxj4y53vf5hkggp5";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -10028,6 +10026,8 @@ self: {
        ];
        description = "Parsing and unambiguously representing musical chords";
        license = lib.licenses.lgpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "HasBigDecimal" = callPackage
@@ -21007,8 +21007,8 @@ self: {
     ({ mkDerivation, base, bytestring, transformers, vector, vulkan }:
      mkDerivation {
        pname = "VulkanMemoryAllocator";
-       version = "0.9";
-       sha256 = "1avq9njgqbvmqn5277q66bqq01jj6syyrnw82qy4477r5yln2wh2";
+       version = "0.10";
+       sha256 = "1iqfks31wcpdizk6dnja29i5nzxa08h0s6qnar4h4w8xgwp0zj0q";
        libraryHaskellDepends = [
          base bytestring transformers vector vulkan
        ];
@@ -22048,14 +22048,13 @@ self: {
     ({ mkDerivation, base, deepseq, random, simple-affine-space }:
      mkDerivation {
        pname = "Yampa";
-       version = "0.13.3";
-       sha256 = "06w2glnn5w97bjmwl88j46xkr2mkvgy5a2wwwzqq168awn436kk3";
+       version = "0.13.4";
+       sha256 = "1qh3fdj82n7s2arwjin1mp5n8jn8p0dan5ll6zbj533j181k8w4p";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base deepseq random simple-affine-space
        ];
-       testHaskellDepends = [ base ];
        description = "Elegant Functional Reactive Programming Language for Hybrid Systems";
        license = lib.licenses.bsd3;
      }) {};
@@ -25125,16 +25124,16 @@ self: {
 
   "aeson-match-qq" = callPackage
     ({ mkDerivation, aeson, aeson-qq, attoparsec, base, bytestring
-     , either, haskell-src-meta, hspec, scientific, template-haskell
-     , text, unordered-containers, vector
+     , containers, either, haskell-src-meta, hspec, scientific
+     , template-haskell, text, unordered-containers, vector
      }:
      mkDerivation {
        pname = "aeson-match-qq";
-       version = "1.4.1";
-       sha256 = "0l9x20hqx6k6grdmni2smiznsiigzhzxmpks1qdg7850sb6lw5fg";
+       version = "1.4.2";
+       sha256 = "1dajffzyqcfnrjzmg05gw6kjcfjmn9p9fxfszdgnipx1isr6cn2l";
        libraryHaskellDepends = [
-         aeson attoparsec base bytestring either haskell-src-meta scientific
-         template-haskell text unordered-containers vector
+         aeson attoparsec base bytestring containers either haskell-src-meta
+         scientific template-haskell text unordered-containers vector
        ];
        testHaskellDepends = [
          aeson aeson-qq base hspec unordered-containers
@@ -26973,8 +26972,8 @@ self: {
     ({ mkDerivation, assoc, base, bifunctors, lens, semigroupoids }:
      mkDerivation {
        pname = "alignment";
-       version = "0.1.0.2";
-       sha256 = "1gsnp2rfqcll1hrf1c0c9rkjvv3mbvfsqghlkyfs9jvb0w9sd2i7";
+       version = "0.1.0.3";
+       sha256 = "09icpp5s8sfygcq423mczmapn0ssc9s9i9v5cr78bf687wqy7yqv";
        libraryHaskellDepends = [
          assoc base bifunctors lens semigroupoids
        ];
@@ -36465,15 +36464,16 @@ self: {
 
   "autodocodec-openapi3" = callPackage
     ({ mkDerivation, aeson, autodocodec, base
-     , insert-ordered-containers, lens, openapi3, scientific, text
+     , insert-ordered-containers, lens, mtl, openapi3, scientific, text
+     , unordered-containers
      }:
      mkDerivation {
        pname = "autodocodec-openapi3";
-       version = "0.1.0.0";
-       sha256 = "02ccbpjy4x2kai6wysqp2hjq97k58psn3739c6j1sqhcrlqwhwy5";
+       version = "0.2.0.0";
+       sha256 = "1r9csd9v01pwiz1vhydpn3jnp5jk45shkfmizgpnn8p1mfkms55j";
        libraryHaskellDepends = [
-         aeson autodocodec base insert-ordered-containers lens openapi3
-         scientific text
+         aeson autodocodec base insert-ordered-containers lens mtl openapi3
+         scientific text unordered-containers
        ];
        description = "Autodocodec interpreters for openapi3";
        license = lib.licenses.mit;
@@ -37870,8 +37870,8 @@ self: {
      }:
      mkDerivation {
        pname = "aws-xray-client";
-       version = "0.1.0.1";
-       sha256 = "1b179i32aw3xi72vnxmgvgczq14ay159cji9mmk345shdiac6crj";
+       version = "0.1.0.2";
+       sha256 = "0i60ggcrwp2vkyagj8jqb33wh7y0h3anag9l2pb5zh6xl2n043ai";
        libraryHaskellDepends = [
          aeson base bytestring deepseq http-types lens network random text
          time
@@ -37889,15 +37889,15 @@ self: {
 
   "aws-xray-client-persistent" = callPackage
     ({ mkDerivation, aws-xray-client, base, conduit, containers, lens
-     , persistent, random, resourcet, text, time
+     , persistent, random, text, time
      }:
      mkDerivation {
        pname = "aws-xray-client-persistent";
-       version = "0.1.0.4";
-       sha256 = "1jkc3li196l0hp4x1kbx65idn7dl710c2yagbh573d3l09zzh0l8";
+       version = "0.1.0.5";
+       sha256 = "0pfmlb5i51sz4aypazw2cpkmgxjbmik1jpi9zbp68jwfaw31j7wk";
        libraryHaskellDepends = [
-         aws-xray-client base conduit containers lens persistent random
-         resourcet text time
+         aws-xray-client base conduit containers lens persistent random text
+         time
        ];
        description = "A client for AWS X-Ray integration with Persistent";
        license = lib.licenses.mit;
@@ -37911,8 +37911,8 @@ self: {
      }:
      mkDerivation {
        pname = "aws-xray-client-wai";
-       version = "0.1.0.1";
-       sha256 = "0b2rnls3qk7qzn9swfqmslxrw466gs6lhh7zi677k5b0dzh237vp";
+       version = "0.1.0.2";
+       sha256 = "0n6viya3j94nx1sys9lqabmnc72szmslkpibhc1df1gl453633y9";
        libraryHaskellDepends = [
          aws-xray-client base bytestring containers http-types lens random
          text time unliftio unliftio-core vault wai
@@ -39109,30 +39109,6 @@ self: {
      }:
      mkDerivation {
        pname = "base16";
-       version = "0.3.1.0";
-       sha256 = "1k7gp9nxzsd9d22ma7r4wbigck3bv71jycdjgr2n72bv5yzvrrzn";
-       libraryHaskellDepends = [
-         base bytestring deepseq primitive text text-short
-       ];
-       testHaskellDepends = [
-         base base16-bytestring bytestring QuickCheck random-bytestring
-         tasty tasty-hunit tasty-quickcheck text text-short
-       ];
-       benchmarkHaskellDepends = [
-         base base16-bytestring bytestring criterion deepseq
-         random-bytestring text
-       ];
-       description = "Fast RFC 4648-compliant Base16 encoding";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "base16_0_3_2_0" = callPackage
-    ({ mkDerivation, base, base16-bytestring, bytestring, criterion
-     , deepseq, primitive, QuickCheck, random-bytestring, tasty
-     , tasty-hunit, tasty-quickcheck, text, text-short
-     }:
-     mkDerivation {
-       pname = "base16";
        version = "0.3.2.0";
        sha256 = "149kpmx63b8bmlwjpldkxxb4ldf28qz4h4i3ars6dwlyhzxg6qav";
        libraryHaskellDepends = [
@@ -39148,7 +39124,6 @@ self: {
        ];
        description = "Fast RFC 4648-compliant Base16 encoding";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "base16-bytestring_0_1_1_7" = callPackage
@@ -39200,31 +39175,6 @@ self: {
      }) {};
 
   "base32" = callPackage
-    ({ mkDerivation, base, bytestring, criterion, deepseq
-     , ghc-byteorder, memory, QuickCheck, random-bytestring, tasty
-     , tasty-hunit, tasty-quickcheck, text, text-short
-     }:
-     mkDerivation {
-       pname = "base32";
-       version = "0.2.1.0";
-       sha256 = "1c1qzbri6m8b2m1cr68vrjbny6wlvfyrbfyzd61s83a3y3w39plp";
-       revision = "1";
-       editedCabalFile = "0apyphnlsnr16s5xb9b9g7d5aw3ny4qx8nz8y71zpglk63sy0cq0";
-       libraryHaskellDepends = [
-         base bytestring deepseq ghc-byteorder text text-short
-       ];
-       testHaskellDepends = [
-         base bytestring memory QuickCheck random-bytestring tasty
-         tasty-hunit tasty-quickcheck text text-short
-       ];
-       benchmarkHaskellDepends = [
-         base bytestring criterion deepseq memory random-bytestring text
-       ];
-       description = "Fast RFC 4648-compliant Base32 encoding";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "base32_0_2_2_0" = callPackage
     ({ mkDerivation, base, bytestring, criterion, deepseq, memory
      , QuickCheck, random-bytestring, tasty, tasty-hunit
      , tasty-quickcheck, text, text-short
@@ -39245,7 +39195,6 @@ self: {
        ];
        description = "Fast RFC 4648-compliant Base32 encoding";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "base32-bytestring" = callPackage
@@ -39389,32 +39338,6 @@ self: {
 
   "base64" = callPackage
     ({ mkDerivation, base, base64-bytestring, bytestring, criterion
-     , deepseq, ghc-byteorder, QuickCheck, random-bytestring, tasty
-     , tasty-hunit, tasty-quickcheck, text, text-short
-     }:
-     mkDerivation {
-       pname = "base64";
-       version = "0.4.2.3";
-       sha256 = "1hdqswxhgjrg8akl5v99hbm02gkpagsbx4i7fxbzdys1k0bj3gxw";
-       revision = "2";
-       editedCabalFile = "153csdlayv1zh6xrjrdbdczj6xl5xnipa5pg4l3i3dmaxiynzgcp";
-       libraryHaskellDepends = [
-         base bytestring deepseq ghc-byteorder text text-short
-       ];
-       testHaskellDepends = [
-         base base64-bytestring bytestring QuickCheck random-bytestring
-         tasty tasty-hunit tasty-quickcheck text text-short
-       ];
-       benchmarkHaskellDepends = [
-         base base64-bytestring bytestring criterion deepseq
-         random-bytestring text
-       ];
-       description = "A modern RFC 4648-compliant Base64 library";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "base64_0_4_2_4" = callPackage
-    ({ mkDerivation, base, base64-bytestring, bytestring, criterion
      , deepseq, QuickCheck, random-bytestring, tasty, tasty-hunit
      , tasty-quickcheck, text, text-short
      }:
@@ -39435,7 +39358,6 @@ self: {
        ];
        description = "A modern RFC 4648-compliant Base64 library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "base64-bytes" = callPackage
@@ -40127,8 +40049,8 @@ self: {
      }:
      mkDerivation {
        pname = "bcp47";
-       version = "0.2.0.5";
-       sha256 = "1drfv04v5137c726c9bpz8lh1c0blb4mfnca4dgzai91pjk026sd";
+       version = "0.2.0.6";
+       sha256 = "0k226jmpv6fnifbmbgdfvbj375an5g7bzzlcvfa1n5x65512ibp2";
        libraryHaskellDepends = [
          aeson base containers country generic-arbitrary iso639 megaparsec
          QuickCheck text
@@ -40147,8 +40069,8 @@ self: {
      }:
      mkDerivation {
        pname = "bcp47-orphans";
-       version = "0.1.0.4";
-       sha256 = "08kx00dxmwj0vxazcd2s88q069swnzjfnj61kla5pczaz0aqh11w";
+       version = "0.1.0.5";
+       sha256 = "1h5pqcb1snmbbvcfpjcqrfbk9l8wry6i0mlz6vm347arhfwc62cd";
        libraryHaskellDepends = [
          base bcp47 cassava errors esqueleto hashable http-api-data
          path-pieces persistent text
@@ -41734,6 +41656,8 @@ self: {
        ];
        description = "Combinators and utilities to make Generic-based deriving of Binary easier and more expressive";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "binary-ieee754" = callPackage
@@ -45240,8 +45164,8 @@ self: {
      }:
      mkDerivation {
        pname = "blockfrost-api";
-       version = "0.4.0.0";
-       sha256 = "01rdg8xl3qal2nl76h56badzfmjpqbn8zrcxqrqbbv611c8ccpqs";
+       version = "0.4.0.1";
+       sha256 = "0bz3m6zmmwjj4g6d7h33calljmkhqgxb4la4xgrk309qxpk6sbcj";
        libraryHaskellDepends = [
          aeson base bytestring data-default-class deriving-aeson lens
          QuickCheck quickcheck-instances safe-money servant servant-docs
@@ -45266,8 +45190,8 @@ self: {
      }:
      mkDerivation {
        pname = "blockfrost-client";
-       version = "0.4.0.0";
-       sha256 = "1xx53zrdi37lvj0mfzwfd3yhyzfm9wp8621yqm4cr091gzwh8a1m";
+       version = "0.4.0.1";
+       sha256 = "09gk90sic9dnqp2ybvg9vqaha6lblbd3940cdhqri1v8nc6s2i9g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -45293,8 +45217,8 @@ self: {
      }:
      mkDerivation {
        pname = "blockfrost-client-core";
-       version = "0.4.0.0";
-       sha256 = "1g276jinr4nbia63sx5bciwglb3yxzgqli8xsq1g73pd4qxwdw43";
+       version = "0.4.0.1";
+       sha256 = "0zlcdkvw8qpm0hiy7nyvyxhndbyv6nc5hfd5c7cdv0qighh4s5if";
        libraryHaskellDepends = [
          aeson base blockfrost-api bytestring case-insensitive containers
          data-default http-client http-client-tls http-types servant
@@ -45406,8 +45330,6 @@ self: {
        ];
        description = "Elasticsearch client library for Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bloodhound-amazonka-auth" = callPackage
@@ -46740,6 +46662,8 @@ self: {
        ];
        description = "Read bower.json from Haskell";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "bowntz" = callPackage
@@ -47059,8 +46983,8 @@ self: {
      }:
      mkDerivation {
        pname = "brick";
-       version = "0.68";
-       sha256 = "0fa0vlj9k3ril8mjc0kyxrq87iy40v10yvkgz32r3fcy80j7spk9";
+       version = "0.68.1";
+       sha256 = "17pzp9p4rmd82smxwz2kh1jjd5ssy5b86jnv7a4ac1g1zgnnki0r";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -47977,8 +47901,8 @@ self: {
      }:
      mkDerivation {
        pname = "bugsnag";
-       version = "1.0.0.0";
-       sha256 = "0s0ppjhn1qylbcia2rpccq7xma26ch1qk9lq578df4i1djpl07zl";
+       version = "1.0.0.1";
+       sha256 = "1sbm85r2ia5k4rdbz8yqgd5x01b2l5kw0p4knj8mr8cr37fqzp8b";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -47986,7 +47910,7 @@ self: {
          http-client-tls parsec template-haskell text th-lift-instances
          ua-parser unordered-containers
        ];
-       testHaskellDepends = [ base hspec text unliftio ];
+       testHaskellDepends = [ base hspec unliftio ];
        description = "Bugsnag error reporter for Haskell";
        license = lib.licenses.mit;
      }) {};
@@ -48040,8 +47964,8 @@ self: {
      }:
      mkDerivation {
        pname = "bugsnag-wai";
-       version = "1.0.0.0";
-       sha256 = "0qarc8w1vprklccrr4i8z5x6m4qry2f09fi43ac7jnh1axywv93a";
+       version = "1.0.0.1";
+       sha256 = "0f3x4m9nl277rhg2pwrja9xh6fffrwl2dm1cf3jiyngkrbrfck0w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -48059,8 +47983,8 @@ self: {
      }:
      mkDerivation {
        pname = "bugsnag-yesod";
-       version = "1.0.0.0";
-       sha256 = "181qdsq7dnzsna05g78r613mgfl3shxx6n0zllnzf4m3c05vq5j6";
+       version = "1.0.0.1";
+       sha256 = "06w2ndxk8czwdfwyy3ylkhzagbaxx6gkix8lwybks0vsxwjr6w83";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -48665,8 +48589,8 @@ self: {
      }:
      mkDerivation {
        pname = "bv-sized";
-       version = "1.0.3";
-       sha256 = "1bqzj9gmx8lvfw037y4f3hibbcq6zafhm6xhjdhnvmlyc963n9v9";
+       version = "1.0.4";
+       sha256 = "0c6d8b11dgg585fvql0h2rrmiw2l8831ig2f89jlqzkdsa0asm67";
        libraryHaskellDepends = [
          base bitwise bytestring deepseq panic parameterized-utils random
          th-lift
@@ -49618,8 +49542,8 @@ self: {
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
        pname = "c-enum";
-       version = "0.1.1.2";
-       sha256 = "01i8dfzrcpkji4vnnflabfbxd4f6q8mmzh1whnizqp14pbzmkqv2";
+       version = "0.1.1.3";
+       sha256 = "11xw95arxvbhz53sllvkwka2xfb0lhy2x2caimmcbcb0dh7k13q3";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base template-haskell ];
        description = "To make a type corresponding to an enum of C language";
@@ -50750,27 +50674,6 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-rpm";
-       version = "2.0.11";
-       sha256 = "041sr5fym01cdfi606180iz5zqxnlw44vhr4bbwpxr45qn71kzxb";
-       isLibrary = false;
-       isExecutable = true;
-       executableHaskellDepends = [
-         base bytestring Cabal directory extra filepath http-client
-         http-client-tls http-conduit optparse-applicative process
-         simple-cabal simple-cmd simple-cmd-args time unix
-       ];
-       description = "RPM packaging tool for Haskell Cabal-based packages";
-       license = lib.licenses.gpl3Only;
-     }) {};
-
-  "cabal-rpm_2_0_11_1" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, directory, extra
-     , filepath, http-client, http-client-tls, http-conduit
-     , optparse-applicative, process, simple-cabal, simple-cmd
-     , simple-cmd-args, time, unix
-     }:
-     mkDerivation {
-       pname = "cabal-rpm";
        version = "2.0.11.1";
        sha256 = "07a2jnzldyva1smbxxdknimzydj2rhr7whhgh5q4nwkifkiliadv";
        isLibrary = false;
@@ -50782,7 +50685,6 @@ self: {
        ];
        description = "RPM packaging tool for Haskell Cabal-based packages";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "cabal-scripts" = callPackage
@@ -54620,19 +54522,19 @@ self: {
 
   "cfn-flip" = callPackage
     ({ mkDerivation, aeson, base, bytestring, conduit, doctest
-     , filepath, Glob, hspec, libyaml, resourcet, text, unliftio
-     , unliftio-core, yaml
+     , filepath, Glob, hspec, libyaml, text, unliftio, unliftio-core
+     , yaml
      }:
      mkDerivation {
        pname = "cfn-flip";
-       version = "0.1.0.1";
-       sha256 = "0vykc7lwjarbf0zqkjfms5sv82vsd64q102qrmvl3qs8mil0vkv2";
+       version = "0.1.0.2";
+       sha256 = "16n45ik3g33fqfqry7l8pa0gcljymvw9wkg9n3qal8570q5k82ds";
        libraryHaskellDepends = [
-         aeson base bytestring conduit libyaml resourcet text unliftio
-         unliftio-core yaml
+         aeson base bytestring conduit libyaml text unliftio unliftio-core
+         yaml
        ];
        testHaskellDepends = [
-         aeson base conduit doctest filepath Glob hspec libyaml yaml
+         aeson base doctest filepath Glob hspec libyaml yaml
        ];
        description = "Haskell implementation of aws/cfn-flip";
        license = lib.licenses.mit;
@@ -54990,6 +54892,27 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "chapelure" = callPackage
+    ({ mkDerivation, ansi-terminal, base, colour, containers
+     , hsluv-haskell, hspec, nonempty-vector, optics-core, prettyprinter
+     , string-qq, text, text-display, vector
+     }:
+     mkDerivation {
+       pname = "chapelure";
+       version = "0.0.1.0";
+       sha256 = "0avlif17mx59vmla2gj649f73hglf38yhcwpblzly8yif2nnwj07";
+       libraryHaskellDepends = [
+         ansi-terminal base colour containers hsluv-haskell nonempty-vector
+         optics-core prettyprinter text text-display vector
+       ];
+       testHaskellDepends = [
+         base hspec nonempty-vector prettyprinter string-qq text vector
+       ];
+       description = "A diagnostics library for Haskell";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "char-decode" = callPackage
     ({ mkDerivation, base, bytestring, QuickCheck, tasty
      , tasty-quickcheck, text
@@ -56805,6 +56728,33 @@ self: {
        license = lib.licenses.bsd2;
      }) {};
 
+  "citeproc_0_7" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, bytestring
+     , case-insensitive, containers, data-default, Diff, directory
+     , file-embed, filepath, mtl, pandoc-types, pretty, safe, scientific
+     , text, timeit, transformers, unicode-collation, uniplate, vector
+     , xml-conduit
+     }:
+     mkDerivation {
+       pname = "citeproc";
+       version = "0.7";
+       sha256 = "1xsfsz6hdp0ickps1qafkfn7pwjxc22a5ib3bl99jdjbx7fql6h9";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson attoparsec base bytestring case-insensitive containers
+         data-default file-embed filepath pandoc-types safe scientific text
+         transformers unicode-collation uniplate vector xml-conduit
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers Diff directory filepath mtl pretty
+         text timeit transformers
+       ];
+       description = "Generates citations and bibliography from CSL styles";
+       license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "citeproc-hs" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, filepath
      , hexpat, hs-bibutils, HTTP, json, mtl, network, network-uri
@@ -57154,8 +57104,8 @@ self: {
      }:
      mkDerivation {
        pname = "clash-ghc";
-       version = "1.6.2";
-       sha256 = "0whyml49yag2yjm0qx3kw50w5r88x1ahdqgfh7ys03vhmppnf6h7";
+       version = "1.6.3";
+       sha256 = "1g1szdy2fcjkjlf6w8r3kr0qinv56q0w1lcxav6jzz5ihplxyhhg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -57189,8 +57139,8 @@ self: {
      }:
      mkDerivation {
        pname = "clash-lib";
-       version = "1.6.2";
-       sha256 = "0i1h25zl1zagjk7163dh66a56fwi720889g0pr1mi5pk2j1hwx20";
+       version = "1.6.3";
+       sha256 = "1ylpdfzhr7sgs7s2ivqh4nsmcl3v034k10a3wdd44n50bdlhsk47";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -57228,8 +57178,8 @@ self: {
      }:
      mkDerivation {
        pname = "clash-lib-hedgehog";
-       version = "1.6.2";
-       sha256 = "1wmdfm2i15gwccb7niqfsvfixdzmvv3z25p1qdbjik6368j0d376";
+       version = "1.6.3";
+       sha256 = "05j6rc3d4lpvrnxqsa81ass0xb8pw03nbdlgvq17gpm3697m0kqr";
        libraryHaskellDepends = [
          base clash-lib containers data-binary-ieee754 fakedata
          ghc-typelits-knownnat ghc-typelits-natnormalise hedgehog
@@ -57270,8 +57220,8 @@ self: {
      }:
      mkDerivation {
        pname = "clash-prelude";
-       version = "1.6.2";
-       sha256 = "05yp80skljri0wgc884ka4b6mqziks820wfi1d8yl4sjm2850qji";
+       version = "1.6.3";
+       sha256 = "1yl0lx6bbjqj7zylayssi971q3y2736jzg9sd5rxpcgr15isprzm";
        libraryHaskellDepends = [
          array arrows base binary bytestring constraints containers
          data-binary-ieee754 data-default-class deepseq extra ghc-bignum
@@ -57301,8 +57251,8 @@ self: {
      }:
      mkDerivation {
        pname = "clash-prelude-hedgehog";
-       version = "1.6.2";
-       sha256 = "1i1zgjs8v0834cdbzg893x5l16d9fni33l153w288amg9cdy08l0";
+       version = "1.6.3";
+       sha256 = "05dxp79njsa85y0125b0biqcax7bc73j6zn1f6vgc235fbyc2nza";
        libraryHaskellDepends = [
          base clash-prelude ghc-typelits-knownnat ghc-typelits-natnormalise
          hedgehog text
@@ -58016,30 +57966,31 @@ self: {
      , optparse-applicative, safe-exceptions, servant-client
      , servant-client-core, silently, singletons, spoon, statistics, syb
      , tagged, tasty, tasty-ant-xml, tasty-discover, tasty-hedgehog
-     , tasty-hspec, tasty-hunit-compat, template-haskell, text, time
-     , type-spec, unordered-containers, vinyl, with-utf8
+     , tasty-hspec, tasty-hunit-compat, template-haskell, temporary
+     , text, time, type-spec, unordered-containers, vinyl, with-utf8
      }:
      mkDerivation {
        pname = "cleveland";
-       version = "0.1.0";
-       sha256 = "0px16j08fakmxzsf6rgx9gs91g61ygxzkf7sngj06a76yzfj4hlw";
+       version = "0.1.1";
+       sha256 = "0hwdcld5blhc1af2xc0d4qjj7vz7gh7989ckkbzfagkaz45d7rr7";
        libraryHaskellDepends = [
-         aeson base-noprelude constraints containers criterion cryptonite
-         data-default directory either exceptions file-embed fmt hedgehog
-         hex-text hspec hspec-expectations HUnit lens lorentz MonadRandom
-         morley morley-client morley-prelude mtl named o-clock
+         aeson base-noprelude bytestring constraints containers criterion
+         cryptonite data-default directory either exceptions file-embed fmt
+         hedgehog hex-text hspec hspec-expectations HUnit lens lorentz
+         MonadRandom morley morley-client morley-prelude mtl named o-clock
          optparse-applicative safe-exceptions servant-client-core singletons
          statistics tagged tasty tasty-ant-xml tasty-hedgehog
          tasty-hunit-compat template-haskell text time with-utf8
        ];
        testHaskellDepends = [
          aeson aeson-pretty aeson-qq base-noprelude bimap bytestring
-         constraints containers data-default directory either filepath
-         first-class-families fmt hedgehog hex-text hspec hspec-expectations
-         HUnit lens lorentz megaparsec morley morley-client morley-prelude
-         mtl named o-clock servant-client silently singletons spoon syb
-         tasty tasty-hedgehog tasty-hspec tasty-hunit-compat text time
-         type-spec unordered-containers vinyl with-utf8
+         constraints containers cryptonite data-default directory either
+         filepath first-class-families fmt hedgehog hex-text hspec
+         hspec-expectations HUnit lens lorentz megaparsec morley
+         morley-client morley-prelude mtl named o-clock servant-client
+         silently singletons spoon syb tasty tasty-hedgehog tasty-hspec
+         tasty-hunit-compat template-haskell temporary text time type-spec
+         unordered-containers vinyl with-utf8
        ];
        testToolDepends = [ tasty-discover ];
        benchmarkHaskellDepends = [
@@ -58606,8 +58557,8 @@ self: {
      }:
      mkDerivation {
        pname = "closed";
-       version = "0.2.0.1";
-       sha256 = "1d74bdjvn7rapakmv1vvf7wws2r12pydlbfym9nw1z6hqvvk8hsn";
+       version = "0.2.0.2";
+       sha256 = "0dh73bayq78a0idbh2lprmb8hazj03g4ma5gcmad06bq01nl9yxh";
        libraryHaskellDepends = [
          aeson base cassava deepseq hashable persistent QuickCheck text
        ];
@@ -61223,14 +61174,14 @@ self: {
   "commonmark" = callPackage
     ({ mkDerivation, base, bytestring, containers, parsec, tasty
      , tasty-bench, tasty-hunit, tasty-quickcheck, text, transformers
-     , unicode-transforms
+     , unicode-data, unicode-transforms
      }:
      mkDerivation {
        pname = "commonmark";
-       version = "0.2.1.1";
-       sha256 = "105szy7l4ji255fwv0kbfcy3i3a3a4197zgj6s9jb12kwbn6n0c7";
+       version = "0.2.2";
+       sha256 = "0kmjc9xgzy33kxz842mw5rdywip3lmk7v3ambrs87nakawgl42xp";
        libraryHaskellDepends = [
-         base bytestring containers parsec text transformers
+         base bytestring containers parsec text transformers unicode-data
          unicode-transforms
        ];
        testHaskellDepends = [
@@ -61269,8 +61220,8 @@ self: {
      }:
      mkDerivation {
        pname = "commonmark-extensions";
-       version = "0.2.3";
-       sha256 = "02zq9ma58yngabz1rw0alaq9s8lsfmxjn8m3dfjxavvq2pl3748f";
+       version = "0.2.3.1";
+       sha256 = "1hnhaxw7mpsbcgqz1vlxy0xnnkgh590hi6gv1wk5fw1j12viqdzi";
        libraryHaskellDepends = [
          base commonmark containers emojis filepath network-uri parsec text
          transformers
@@ -66370,8 +66321,8 @@ self: {
      }:
      mkDerivation {
        pname = "core-program";
-       version = "0.4.4.0";
-       sha256 = "1mp694llk3b04yqv8gr7i2rwcld99xmx1m55f5fhk1vgks816kih";
+       version = "0.4.5.1";
+       sha256 = "035yb2zjbhbpx0726ijbbmf3cnvhcykf3k0v35mhpcr4npa6pcig";
        libraryHaskellDepends = [
          async base bytestring chronologique core-data core-text directory
          exceptions filepath fsnotify hashable hourglass mtl prettyprinter
@@ -66390,8 +66341,8 @@ self: {
      }:
      mkDerivation {
        pname = "core-telemetry";
-       version = "0.1.9.1";
-       sha256 = "11b106gs96l20zb0lyr0qw49bnm8wxfc4wcncjaip6mdvgcc8cza";
+       version = "0.1.9.2";
+       sha256 = "07gb8ms3kchjvc0xbh36s1hzcmxaaci78gjgzdnkzap3lisjgcf0";
        libraryHaskellDepends = [
          async base bytestring chronologique core-data core-program
          core-text exceptions http-streams io-streams mtl network-info
@@ -69819,13 +69770,13 @@ self: {
      }) {inherit (pkgs) curl;};
 
   "curl-aeson" = callPackage
-    ({ mkDerivation, aeson, base, curl, text, utf8-string }:
+    ({ mkDerivation, aeson, base, bytestring, curl, text }:
      mkDerivation {
        pname = "curl-aeson";
-       version = "0.0.4";
-       sha256 = "1fpi448f6bgf3rbw3zxf7r9nwyhv9q67zan5sixnad1y7lqxivrx";
-       libraryHaskellDepends = [ aeson base curl text utf8-string ];
-       description = "Communicate with HTTP service using JSON";
+       version = "0.1.0.1";
+       sha256 = "1hiz2rwbycl2nx5k1157nnl661rk1gkj7m4vc4qac1saqvf9jxdz";
+       libraryHaskellDepends = [ aeson base bytestring curl text ];
+       description = "Communicate with web services using JSON";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        broken = true;
@@ -70405,6 +70356,36 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "cybus" = callPackage
+    ({ mkDerivation, adjunctions, base, checkers, deepseq, distributive
+     , indexed-traversable, lens, mtl, pos, pretty-simple, primus
+     , profunctors, QuickCheck, semigroupoids, tasty, tasty-hunit
+     , tasty-quickcheck, these, transformers, vector
+     }:
+     mkDerivation {
+       pname = "cybus";
+       version = "0.2.0.0";
+       sha256 = "01bzczqs7r7c2wfpzn1c6xfnhr910yy6kzzvlx2qhp5d8wml32wj";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         adjunctions base deepseq distributive indexed-traversable mtl pos
+         primus profunctors semigroupoids these transformers vector
+       ];
+       executableHaskellDepends = [
+         adjunctions base deepseq distributive indexed-traversable mtl pos
+         primus profunctors semigroupoids these transformers vector
+       ];
+       testHaskellDepends = [
+         adjunctions base checkers deepseq distributive indexed-traversable
+         lens mtl pos pretty-simple primus profunctors QuickCheck
+         semigroupoids tasty tasty-hunit tasty-quickcheck these transformers
+         vector
+       ];
+       description = "multi-dimensional arrays";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "cyclotomic" = callPackage
     ({ mkDerivation, arithmoi, base, containers, HUnit, QuickCheck
      , test-framework, test-framework-hunit, test-framework-quickcheck2
@@ -74710,18 +74691,14 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "deepseq_1_4_6_1" = callPackage
-    ({ mkDerivation, array, base, ghc-prim, HUnit, test-framework
-     , test-framework-hunit
-     }:
+  "deepseq_1_4_7_0" = callPackage
+    ({ mkDerivation, array, base, ghc-prim }:
      mkDerivation {
        pname = "deepseq";
-       version = "1.4.6.1";
-       sha256 = "178k97l6yh8bklnkzqsla4l2vms16ys126abs7d5i0fcnyj472fm";
-       libraryHaskellDepends = [ array base ];
-       testHaskellDepends = [
-         array base ghc-prim HUnit test-framework test-framework-hunit
-       ];
+       version = "1.4.7.0";
+       sha256 = "0sm00rsw714y73qr5zihz5fhxw0hahs6ksmf8wa60m1qwb9jcy9v";
+       libraryHaskellDepends = [ array base ghc-prim ];
+       testHaskellDepends = [ array base ghc-prim ];
        description = "Deep evaluation of data structures";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -75283,6 +75260,8 @@ self: {
        pname = "dep-t";
        version = "0.6.1.0";
        sha256 = "093zic45a0q3lr0shhc0yjp5gclskyk7ipva0khsqgk2wrqgwqx6";
+       revision = "1";
+       editedCabalFile = "126h9isb8lzrqvf1rgl7n95snjzj181mkxn6qhbl8jg4rxn2zj3l";
        libraryHaskellDepends = [ base mtl transformers unliftio-core ];
        testHaskellDepends = [
          aeson barbies base bytestring containers doctest mtl rank2classes
@@ -75302,6 +75281,8 @@ self: {
        pname = "dep-t-advice";
        version = "0.6.1.0";
        sha256 = "1l3zphhyb55da4jrkbhgynwb72s1lm63iyi4p35np1jffwfcc9mg";
+       revision = "1";
+       editedCabalFile = "09rszbs5l4z8zzhizipiqk8g11h9gr7brn03ylhci716mkzwkzw5";
        libraryHaskellDepends = [
          base dep-t mtl sop-core transformers unliftio-core
        ];
@@ -75326,8 +75307,8 @@ self: {
      }:
      mkDerivation {
        pname = "dep-t-dynamic";
-       version = "0.1.0.0";
-       sha256 = "0z0dhq5s4cn8y2r60d0ws44z7sq104ghfzic5yn1cicy0nlwddhk";
+       version = "0.1.0.1";
+       sha256 = "1wa68s5mcsgwchdm0xm2qcgpxvcxi6banmjzyfq1dn6wzj8028vn";
        libraryHaskellDepends = [
          algebraic-graphs base dep-t hashable sop-core transformers
          unordered-containers
@@ -75800,8 +75781,8 @@ self: {
     ({ mkDerivation, base, criterion, deepseq, hspec, QuickCheck }:
      mkDerivation {
        pname = "derive-storable";
-       version = "0.3.0.0";
-       sha256 = "1qxf729wmvcszw9bs2w9h7ww9sh55576hvalpg0qp6l3zlp3f4sq";
+       version = "0.3.1.0";
+       sha256 = "0zs4j2pqyp98gnacz3s32whvsds89i6p72rqgicy42c3mx8p8csc";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec QuickCheck ];
        benchmarkHaskellDepends = [ base criterion deepseq ];
@@ -75815,8 +75796,8 @@ self: {
      }:
      mkDerivation {
        pname = "derive-storable-plugin";
-       version = "0.2.3.4";
-       sha256 = "0yvfmm8wkix8icsfqm9wd81000dlfgmwjzbnhspzd6a9wpd73i6p";
+       version = "0.2.3.5";
+       sha256 = "16v61sm8vqx7wi02z68qjsvfv76g8kbag9cc8j8i0k8ixya1hddb";
        libraryHaskellDepends = [ base derive-storable ghc ghci ];
        testHaskellDepends = [
          base derive-storable ghc ghci hspec QuickCheck
@@ -75927,8 +75908,8 @@ self: {
      }:
      mkDerivation {
        pname = "deriving-trans";
-       version = "0.3.1.0";
-       sha256 = "0x7kk9b08f9fplkycw2202qil3rh5l2x7l7whjlv30b0v5k885xz";
+       version = "0.3.2.0";
+       sha256 = "0w13274j1qn6qdx9kmd01qbcwhnpvqn4rvrnpv60gwqfi4hwgcqs";
        libraryHaskellDepends = [
          base monad-control mtl transformers transformers-base
        ];
@@ -76566,6 +76547,8 @@ self: {
        pname = "dhall";
        version = "1.41.1";
        sha256 = "09flx2mfl8mzszn0hx80fai3ryiwgjkbxyklfkpmm5hw1smkdslv";
+       revision = "1";
+       editedCabalFile = "19lgfkyg1p9crrf3gi508zya477vma2ks7ib7hw0r84sl4jjiaji";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -81141,8 +81124,8 @@ self: {
      }:
      mkDerivation {
        pname = "docker";
-       version = "0.6.0.6";
-       sha256 = "15qai77a5wqb94lij4l24w516q7d5h6wn6h2g6lmgghwh3hafq8y";
+       version = "0.7.0.0";
+       sha256 = "1w228qhnl54v3d69ln4y5s64ywvcsd202m1m3ry8j6lsgfj1hawm";
        libraryHaskellDepends = [
          aeson base blaze-builder bytestring conduit conduit-combinators
          conduit-extra containers data-default-class directory exceptions
@@ -81276,6 +81259,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "doclayout_0_4" = callPackage
+    ({ mkDerivation, base, containers, criterion, deepseq, emojis, mtl
+     , safe, tasty, tasty-golden, tasty-hunit, tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "doclayout";
+       version = "0.4";
+       sha256 = "18xkzywfw0hl3hgbq9z36hs040vb0iz9yygx33cybxfi4i0dwbkx";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [ base containers emojis mtl safe text ];
+       testHaskellDepends = [
+         base emojis mtl tasty tasty-golden tasty-hunit tasty-quickcheck
+         text
+       ];
+       benchmarkHaskellDepends = [
+         base criterion deepseq emojis mtl text
+       ];
+       description = "A prettyprinting library for laying out text documents";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "docopt" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, bytestring, containers
      , HUnit, parsec, split, template-haskell, text
@@ -81304,6 +81309,8 @@ self: {
        pname = "docrecords";
        version = "0.1.0.0";
        sha256 = "1b8lavhm3iiz0w0b581yn88kaydwiimvj5j9sayx5gq04aa20jvj";
+       revision = "1";
+       editedCabalFile = "1c13ba8plkrrdkm0r71igj3k8vq8bqhpk3i6lr8lhgzylp1bkkin";
        libraryHaskellDepends = [
          aeson base data-default lens optparse-applicative text
          unordered-containers vinyl yaml
@@ -81357,6 +81364,33 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "doctemplates_0_10_0_2" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, criterion
+     , doclayout, filepath, Glob, HsYAML, mtl, parsec, safe, scientific
+     , tasty, tasty-golden, tasty-hunit, temporary, text
+     , text-conversions, vector
+     }:
+     mkDerivation {
+       pname = "doctemplates";
+       version = "0.10.0.2";
+       sha256 = "0as0sc4x4ch5z233dqlb8xqg97xbfbzw2dqsz9rfq8rw10v9yx57";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base containers doclayout filepath HsYAML mtl parsec safe
+         scientific text text-conversions vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers doclayout filepath Glob tasty
+         tasty-golden tasty-hunit temporary text
+       ];
+       benchmarkHaskellDepends = [
+         aeson base containers criterion doclayout filepath mtl text
+       ];
+       description = "Pandoc-style document templates";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "doctest" = callPackage
     ({ mkDerivation, base, base-compat, code-page, deepseq, directory
      , exceptions, filepath, ghc, ghc-paths, hspec, hspec-core, HUnit
@@ -86711,15 +86745,15 @@ self: {
      }:
      mkDerivation {
        pname = "emacs-module";
-       version = "0.1.1";
-       sha256 = "1m6rcvhgdhlzzq86b4qhanbmymwl87r705jx9ih8s89fvsfgvq0y";
+       version = "0.1.1.1";
+       sha256 = "1j66b4r4zhqc2j1fqihzqdc0zacjy3fpgf54b7z55n2wqa6x9lgw";
        libraryHaskellDepends = [
          base bytestring deepseq exceptions monad-control mtl prettyprinter
          resourcet safe-exceptions-checked template-haskell text
          transformers-base vector void
        ];
        description = "Utilities to write Emacs dynamic modules";
-       license = lib.licenses.bsd3;
+       license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -88652,68 +88686,68 @@ self: {
      }) {};
 
   "espial" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bcrypt, bytestring
-     , case-insensitive, classy-prelude, classy-prelude-conduit
-     , classy-prelude-yesod, conduit, containers, data-default
-     , directory, ekg, ekg-core, entropy, esqueleto, fast-logger
-     , file-embed, foreign-store, hjsmin, hscolour, hspec, http-api-data
-     , http-client, http-client-tls, http-conduit, http-types
-     , iso8601-time, microlens, monad-logger, monad-metrics, mtl
-     , optparse-generic, parser-combinators, persistent
-     , persistent-sqlite, persistent-template, pretty-show, safe
-     , shakespeare, template-haskell, text, time, transformers
-     , unordered-containers, vector, wai, wai-extra, wai-logger
-     , wai-middleware-metrics, warp, yaml, yesod, yesod-auth, yesod-core
-     , yesod-form, yesod-static, yesod-test
+    ({ mkDerivation, aeson, attoparsec, base, bcrypt, blaze-html
+     , bytestring, case-insensitive, classy-prelude
+     , classy-prelude-conduit, classy-prelude-yesod, conduit, connection
+     , containers, data-default, directory, entropy, esqueleto
+     , fast-logger, file-embed, foreign-store, hjsmin, hscolour, hspec
+     , html-entities, http-api-data, http-client, http-client-tls
+     , http-conduit, http-types, iso8601-time, microlens, monad-logger
+     , mtl, optparse-applicative, optparse-generic, parser-combinators
+     , persistent, persistent-sqlite, persistent-template, pretty-show
+     , safe, shakespeare, template-haskell, text, time, transformers
+     , unordered-containers, vector, wai, wai-extra, wai-logger, warp
+     , yaml, yesod, yesod-auth, yesod-core, yesod-form, yesod-newsfeed
+     , yesod-static, yesod-test
      }:
      mkDerivation {
        pname = "espial";
-       version = "0.0.7";
-       sha256 = "06nlmz8j6f64dgbd9y9b7i9fd1bv32yxijx764zlvy75i6vbips5";
+       version = "0.0.10";
+       sha256 = "01xbnif1wwfr6w9mnc6fpsnf8vnfdi3r1gcg8gwdsg7mjxvjc0w1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson attoparsec base bcrypt bytestring case-insensitive
+         aeson attoparsec base bcrypt blaze-html bytestring case-insensitive
          classy-prelude classy-prelude-conduit classy-prelude-yesod conduit
-         containers data-default directory ekg ekg-core entropy esqueleto
-         fast-logger file-embed foreign-store hjsmin hscolour http-api-data
-         http-client http-client-tls http-conduit http-types iso8601-time
-         microlens monad-logger monad-metrics mtl parser-combinators
+         connection containers data-default directory entropy esqueleto
+         fast-logger file-embed foreign-store hjsmin hscolour html-entities
+         http-api-data http-client http-client-tls http-conduit http-types
+         iso8601-time microlens monad-logger mtl parser-combinators
          persistent persistent-sqlite persistent-template pretty-show safe
          shakespeare template-haskell text time transformers
-         unordered-containers vector wai wai-extra wai-logger
-         wai-middleware-metrics warp yaml yesod yesod-auth yesod-core
-         yesod-form yesod-static
+         unordered-containers vector wai wai-extra wai-logger warp yaml
+         yesod yesod-auth yesod-core yesod-form yesod-newsfeed yesod-static
        ];
        executableHaskellDepends = [
-         aeson attoparsec base bcrypt bytestring case-insensitive
+         aeson attoparsec base bcrypt blaze-html bytestring case-insensitive
          classy-prelude classy-prelude-conduit classy-prelude-yesod conduit
-         containers data-default directory ekg ekg-core entropy esqueleto
-         fast-logger file-embed foreign-store hjsmin hscolour http-api-data
-         http-client http-client-tls http-conduit http-types iso8601-time
-         microlens monad-logger monad-metrics mtl optparse-generic
-         parser-combinators persistent persistent-sqlite persistent-template
-         pretty-show safe shakespeare template-haskell text time
-         transformers unordered-containers vector wai wai-extra wai-logger
-         wai-middleware-metrics warp yaml yesod yesod-auth yesod-core
-         yesod-form yesod-static
+         connection containers data-default directory entropy esqueleto
+         fast-logger file-embed foreign-store hjsmin hscolour html-entities
+         http-api-data http-client http-client-tls http-conduit http-types
+         iso8601-time microlens monad-logger mtl optparse-applicative
+         optparse-generic parser-combinators persistent persistent-sqlite
+         persistent-template pretty-show safe shakespeare template-haskell
+         text time transformers unordered-containers vector wai wai-extra
+         wai-logger warp yaml yesod yesod-auth yesod-core yesod-form
+         yesod-newsfeed yesod-static
        ];
        testHaskellDepends = [
-         aeson attoparsec base bcrypt bytestring case-insensitive
+         aeson attoparsec base bcrypt blaze-html bytestring case-insensitive
          classy-prelude classy-prelude-conduit classy-prelude-yesod conduit
-         containers data-default directory ekg ekg-core entropy esqueleto
+         connection containers data-default directory entropy esqueleto
          fast-logger file-embed foreign-store hjsmin hscolour hspec
-         http-api-data http-client http-client-tls http-conduit http-types
-         iso8601-time microlens monad-logger monad-metrics mtl
+         html-entities http-api-data http-client http-client-tls
+         http-conduit http-types iso8601-time microlens monad-logger mtl
          parser-combinators persistent persistent-sqlite persistent-template
          pretty-show safe shakespeare template-haskell text time
          transformers unordered-containers vector wai wai-extra wai-logger
-         wai-middleware-metrics warp yaml yesod yesod-auth yesod-core
-         yesod-form yesod-static yesod-test
+         warp yaml yesod yesod-auth yesod-core yesod-form yesod-newsfeed
+         yesod-static yesod-test
        ];
        description = "Espial is an open-source, web-based bookmarking server";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "esqueleto" = callPackage
@@ -88726,10 +88760,8 @@ self: {
      }:
      mkDerivation {
        pname = "esqueleto";
-       version = "3.5.3.1";
-       sha256 = "16i0hnn91a77jdzmj8zwr328splaqbk0wzbj3kvrwnbylwjbdccm";
-       revision = "1";
-       editedCabalFile = "1b5q5nf5b32id5g3gbndsn3c31m3ch57a5w16akfww711dk45lyz";
+       version = "3.5.4.0";
+       sha256 = "1c38kx04nkk68bj76mkbjbmw9fhb3ljn3j8mwsls6q7m4z49m6yy";
        libraryHaskellDepends = [
          aeson attoparsec base blaze-html bytestring conduit containers
          monad-logger persistent resourcet tagged text time transformers
@@ -88746,35 +88778,6 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "esqueleto_3_5_3_2" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, blaze-html, bytestring
-     , conduit, containers, exceptions, hspec, hspec-core, monad-logger
-     , mtl, mysql, mysql-simple, persistent, persistent-mysql
-     , persistent-postgresql, persistent-sqlite, postgresql-simple
-     , QuickCheck, resourcet, tagged, text, time, transformers, unliftio
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "esqueleto";
-       version = "3.5.3.2";
-       sha256 = "0sdp8zxa8jqql1dmhm0wf20hj5yd3853ha7f8wg24dvbjff8z1yj";
-       libraryHaskellDepends = [
-         aeson attoparsec base blaze-html bytestring conduit containers
-         monad-logger persistent resourcet tagged text time transformers
-         unliftio unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson attoparsec base blaze-html bytestring conduit containers
-         exceptions hspec hspec-core monad-logger mtl mysql mysql-simple
-         persistent persistent-mysql persistent-postgresql persistent-sqlite
-         postgresql-simple QuickCheck resourcet tagged text time
-         transformers unliftio unordered-containers
-       ];
-       description = "Type-safe EDSL for SQL queries on persistent backends";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
   "esqueleto-pgcrypto" = callPackage
     ({ mkDerivation, base, esqueleto, hspec, monad-logger, persistent
      , persistent-postgresql, QuickCheck, text, transformers, unliftio
@@ -91265,8 +91268,8 @@ self: {
     ({ mkDerivation, base, leancheck, template-haskell }:
      mkDerivation {
        pname = "express";
-       version = "1.0.8";
-       sha256 = "1hkcrzbqn54sx907zh28sg659f46yip6dvgjaywdjpk8hbvqfzs2";
+       version = "1.0.10";
+       sha256 = "08y0ssnlfwcqw3vr8mswfc9yhjwhgwrl0yvx439443qwvfm64dc0";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base leancheck ];
        benchmarkHaskellDepends = [ base leancheck ];
@@ -92219,8 +92222,8 @@ self: {
      }:
      mkDerivation {
        pname = "faktory";
-       version = "1.1.2.1";
-       sha256 = "0hdwp12qn6m7xd2d7wsj3092jgvx2h6gf4b0gdswy1mkf0c2jql9";
+       version = "1.1.2.2";
+       sha256 = "0vkjd20wpzb170lisk1sb4508h56mgjbk4f5qbi6k8vvbdipiaqy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -92524,6 +92527,8 @@ self: {
        ];
        description = "Fast incremental vi and emacs tags";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "fast-tagsoup" = callPackage
@@ -93640,6 +93645,31 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "feedback" = callPackage
+    ({ mkDerivation, autodocodec, autodocodec-yaml, base, conduit
+     , containers, envparse, fsnotify, optparse-applicative, path
+     , path-io, pretty-show, safe-coloured-text
+     , safe-coloured-text-layout, safe-coloured-text-terminfo, text
+     , time, typed-process, unliftio, yaml
+     }:
+     mkDerivation {
+       pname = "feedback";
+       version = "0.0.0.0";
+       sha256 = "1y4p38cd0cqg4r43y2p0n2i99q83vnhm7gswx0j34p58isrbad4x";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         autodocodec autodocodec-yaml base conduit containers envparse
+         fsnotify optparse-applicative path path-io pretty-show
+         safe-coloured-text safe-coloured-text-layout
+         safe-coloured-text-terminfo text time typed-process unliftio yaml
+       ];
+       executableHaskellDepends = [ base ];
+       description = "Declarative feedback loop manager";
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "fei-base" = callPackage
     ({ mkDerivation, attoparsec, base, c2hs, constraints, deepseq
      , haskell-src-exts, hslogger, lens, mxnet, optparse-applicative
@@ -98451,7 +98481,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "fourmolu_0_5_0_1" = callPackage
+  "fourmolu_0_6_0_0" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, array, base, bytestring
      , Cabal, containers, Diff, directory, dlist, exceptions, filepath
      , ghc-lib-parser, gitrev, hspec, hspec-discover, HsYAML
@@ -98460,10 +98490,8 @@ self: {
      }:
      mkDerivation {
        pname = "fourmolu";
-       version = "0.5.0.1";
-       sha256 = "1dal9nl08g4c8pjkn8nbk5rxbdlnl9bbavybv52kzry7qhlg71px";
-       revision = "1";
-       editedCabalFile = "1jkam52bff82id2bhwmwxi52d3k85pami2530qp6xci1h488gqyh";
+       version = "0.6.0.0";
+       sha256 = "0yxv3ih2jjnjzdhz31y4a94ly6g3qhddrm3lvflqrb4krk445p67";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -98833,13 +98861,13 @@ self: {
      , persistent-postgresql, postgresql-simple, primitive, process
      , resource-pool, retry, rio, safe, semigroupoids, template-haskell
      , temporary, text, time, transformers, transformers-base, unliftio
-     , unliftio-core, unordered-containers, vector, wai, wai-extra, yaml
-     , yesod, yesod-core
+     , unordered-containers, vector, wai, wai-extra, yaml, yesod
+     , yesod-core
      }:
      mkDerivation {
        pname = "freckle-app";
-       version = "1.0.2.9";
-       sha256 = "000frzvydpmyn547za0zlf7w38avcgspvjpcakalsdv5vzj83kk5";
+       version = "1.0.2.10";
+       sha256 = "05y2b4lfc0wxygjrvjlw3nfl9s1x9km095k2vzj57mb58zkr3kyv";
        libraryHaskellDepends = [
          aeson ansi-terminal base bytestring case-insensitive conduit
          containers data-default datadog doctest ekg-core errors exceptions
@@ -98850,8 +98878,7 @@ self: {
          network-uri persistent persistent-postgresql postgresql-simple
          primitive process resource-pool retry rio safe semigroupoids
          template-haskell text time transformers transformers-base unliftio
-         unliftio-core unordered-containers vector wai wai-extra yaml yesod
-         yesod-core
+         unordered-containers vector wai wai-extra yaml yesod yesod-core
        ];
        testHaskellDepends = [
          aeson base bytestring directory hspec http-types lens lens-aeson
@@ -101102,22 +101129,6 @@ self: {
      }:
      mkDerivation {
        pname = "fusion-plugin";
-       version = "0.2.3";
-       sha256 = "1lklrd3afvm8fwd14yiavx5h8zxjkn2k2vqnxbqwcakcnljxrfyq";
-       libraryHaskellDepends = [
-         base containers directory filepath fusion-plugin-types ghc syb time
-         transformers
-       ];
-       description = "GHC plugin to make stream fusion more predictable";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "fusion-plugin_0_2_4" = callPackage
-    ({ mkDerivation, base, containers, directory, filepath
-     , fusion-plugin-types, ghc, syb, time, transformers
-     }:
-     mkDerivation {
-       pname = "fusion-plugin";
        version = "0.2.4";
        sha256 = "1q0xsrzl0zlnx6wga8aw8h40innl76zbnn1dpb02wli6nlq237kp";
        libraryHaskellDepends = [
@@ -101126,7 +101137,6 @@ self: {
        ];
        description = "GHC plugin to make stream fusion more predictable";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "fusion-plugin-types" = callPackage
@@ -102778,10 +102788,8 @@ self: {
     ({ mkDerivation, base, QuickCheck }:
      mkDerivation {
        pname = "generic-arbitrary";
-       version = "0.2.0";
-       sha256 = "1wlrsj9l57vqdkaablb8ypq2g1i4mishjag00fyf2imr2cvzkamg";
-       revision = "1";
-       editedCabalFile = "1x7819chcy0ydby6d7024ny1a1si7pyx46rf1mzr3ngdy6wxdfbp";
+       version = "0.2.1";
+       sha256 = "0xg00rlzk6gg4sd0fb15rpgdgpfpy08azgiwgkxrdrjcjfi6cyp9";
        libraryHaskellDepends = [ base QuickCheck ];
        description = "Generic implementation for QuickCheck's Arbitrary";
        license = lib.licenses.mit;
@@ -105144,6 +105152,8 @@ self: {
        pname = "ghc-exactprint";
        version = "0.6.4";
        sha256 = "0a6baza962d4pz2m02hxmh8234i47zkizmwhsy68namr05dmlgpw";
+       revision = "1";
+       editedCabalFile = "0qil5rlsvxhwrbciixha8mdaw8wfci797n4wcyxn41mr4a4783f5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -105164,6 +105174,8 @@ self: {
        pname = "ghc-exactprint";
        version = "1.4.1";
        sha256 = "0q9z43753arxbcs6mz26kz4dsz0c2i5hkxa125gl36vsipxfrq92";
+       revision = "1";
+       editedCabalFile = "00wvn8j7439r5pp9wjqasv710amrsf34qpa3czxja2khg9jdnngj";
        isLibrary = true;
        isExecutable = true;
        description = "ExactPrint for GHC";
@@ -105177,6 +105189,8 @@ self: {
        pname = "ghc-exactprint";
        version = "1.5.0";
        sha256 = "07m4cg47knrrvpyimnbc0nq9176vkzwwa64b2iqfj6azn6q2hagp";
+       revision = "1";
+       editedCabalFile = "1v6my8bnhjhw7k3v2q9iwjpz9lj5g6ilvlzdq6svcabxahmzbr2c";
        isLibrary = true;
        isExecutable = true;
        description = "ExactPrint for GHC";
@@ -106535,12 +106549,12 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "ghcjs-base_0_2_0_3" = callPackage
+  "ghcjs-base_0_2_1_0" = callPackage
     ({ mkDerivation }:
      mkDerivation {
        pname = "ghcjs-base";
-       version = "0.2.0.3";
-       sha256 = "09sv5p57l8jczbycasbb06h4qsifi5fagxwsr665yil1gickfxyg";
+       version = "0.2.1.0";
+       sha256 = "05dw3kvrwgipxjg1i3gfirqz260azcmgj1rwp7m37a94q4550bcq";
        description = "base library for GHCJS";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
@@ -106935,6 +106949,8 @@ self: {
        platforms = [
          "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
        ];
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) libadwaita;};
 
   "gi-atk" = callPackage
@@ -113680,8 +113696,8 @@ self: {
      }:
      mkDerivation {
        pname = "google-server-api";
-       version = "0.4.0.1";
-       sha256 = "064y4rw4dpx3k9h7p8pwzydkrbh5ljnqgzlxdsgis665hh4kp0rr";
+       version = "0.4.0.2";
+       sha256 = "0wnfn75z5k9lh8h38ya52dc4rjjxzpybj0sayjz6ax1xxiaz3d90";
        libraryHaskellDepends = [
          aeson aeson-casing base base64-bytestring bytestring HsOpenSSL
          http-api-data http-client http-client-tls http-media mime-mail
@@ -115187,27 +115203,23 @@ self: {
      }) {};
 
   "graphula" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, directory
-     , generic-arbitrary, generics-eot, hspec, http-api-data, HUnit
-     , markdown-unlit, monad-logger, mtl, path-pieces, persistent
-     , persistent-sqlite, persistent-template, QuickCheck, random
-     , resourcet, semigroups, temporary, text, transformers, unliftio
+    ({ mkDerivation, base, containers, directory, generic-arbitrary
+     , generics-eot, hspec, HUnit, markdown-unlit, monad-logger, mtl
+     , persistent, persistent-sqlite, QuickCheck, random, resourcet
+     , semigroups, temporary, text, transformers, unliftio
      , unliftio-core
      }:
      mkDerivation {
        pname = "graphula";
-       version = "2.0.1.0";
-       sha256 = "0h9nckz4mz4xrzwpqs3dclrc7dnqxf5pn3x741bng7cmvcwzzhdd";
+       version = "2.0.1.1";
+       sha256 = "0gn33jz9nb2pf1mkjzwnf04l0shnvj520qb0jmz6d87w79jiqdlj";
        libraryHaskellDepends = [
          base containers directory generics-eot HUnit mtl persistent
-         QuickCheck random semigroups temporary text transformers unliftio
-         unliftio-core
+         QuickCheck random semigroups temporary text unliftio unliftio-core
        ];
        testHaskellDepends = [
-         aeson base bytestring containers generic-arbitrary hspec
-         http-api-data markdown-unlit monad-logger path-pieces persistent
-         persistent-sqlite persistent-template QuickCheck resourcet text
-         transformers unliftio-core
+         base generic-arbitrary hspec markdown-unlit monad-logger persistent
+         persistent-sqlite QuickCheck resourcet transformers unliftio-core
        ];
        testToolDepends = [ markdown-unlit ];
        description = "A simple interface for generating persistent data and linking its dependencies";
@@ -115317,17 +115329,17 @@ self: {
      }) {};
 
   "gravatar" = callPackage
-    ({ mkDerivation, base, bytestring, data-default, hspec, HTTP
-     , pureMD5, text
+    ({ mkDerivation, base, bytestring, data-default, doctest, Glob
+     , hspec, HTTP, pureMD5, text
      }:
      mkDerivation {
        pname = "gravatar";
-       version = "0.8.0";
-       sha256 = "1mzl08qzwzzhz6bvkz4qnrdnzsgvsmi2lnhzf743yzx4msn00q3g";
+       version = "0.8.1";
+       sha256 = "0ijcv15kihy6125fm2kyxi997fxii3hvr62lx25nri5aa0qy6vkw";
        libraryHaskellDepends = [
          base bytestring data-default HTTP pureMD5 text
        ];
-       testHaskellDepends = [ base hspec text ];
+       testHaskellDepends = [ base doctest Glob hspec ];
        description = "Generate Gravatar image URLs";
        license = lib.licenses.mit;
      }) {};
@@ -118872,8 +118884,8 @@ self: {
      }:
      mkDerivation {
        pname = "hadolint";
-       version = "2.9.3";
-       sha256 = "0kiy570s08qf9gqphbbv5kzhfkbc3m1jpzpszpb52rbmflmgwi7m";
+       version = "2.10.0";
+       sha256 = "19szxwz633n8zk0zm9hzw029npy9my84kdygxv9jbmy69ndyw9d6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -119391,8 +119403,8 @@ self: {
        pname = "hakyll";
        version = "4.15.1.1";
        sha256 = "0b3bw275q1xbx8qs9a6gzzs3c9z3qdj7skqhpp09jkchi5kdvhvi";
-       revision = "2";
-       editedCabalFile = "0rsr61xndj6kxwscbp4zcq2y5x9cg7y0r4iblj3s767yw1ajnpn4";
+       revision = "3";
+       editedCabalFile = "1h9cy5yp98f2wi0yk6l0qpy3zpg1kb7yizh8dkmss0nzq242nz4s";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -119861,33 +119873,6 @@ self: {
      }:
      mkDerivation {
        pname = "hal";
-       version = "0.4.10";
-       sha256 = "10byncg5m23qfzi2avlrh3yq5gdppgiy998a225wa5p95m31xh9b";
-       revision = "1";
-       editedCabalFile = "01mrqgh8n1kzpclcfqpc02jqdijj9pwks9bia5hs1s6vnasbpfg7";
-       libraryHaskellDepends = [
-         aeson base base64-bytestring bytestring case-insensitive conduit
-         conduit-extra containers envy exceptions hashable http-client
-         http-types mtl scientific text time unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson base base64-bytestring bytestring case-insensitive containers
-         hedgehog hspec hspec-hedgehog http-client http-types raw-strings-qq
-         scientific text time transformers unordered-containers vector
-       ];
-       description = "A runtime environment for Haskell applications running on AWS Lambda";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "hal_0_4_10_1" = callPackage
-    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
-     , case-insensitive, conduit, conduit-extra, containers, envy
-     , exceptions, hashable, hedgehog, hspec, hspec-hedgehog
-     , http-client, http-types, mtl, raw-strings-qq, scientific, text
-     , time, transformers, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "hal";
        version = "0.4.10.1";
        sha256 = "1mxlyx0zxvklrybasx8p6di72aw431mbbyj06pb91570j9c46fp0";
        revision = "1";
@@ -119904,7 +119889,6 @@ self: {
        ];
        description = "A runtime environment for Haskell applications running on AWS Lambda";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "halberd" = callPackage
@@ -129988,6 +129972,48 @@ self: {
        broken = true;
      }) {};
 
+  "heist-emanote" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, bifunctors, blaze-builder
+     , blaze-html, bytestring, containers, criterion
+     , criterion-measurement, directory, directory-tree, dlist, filepath
+     , hashable, HUnit, lens, lifted-base, map-syntax, monad-control
+     , mtl, process, QuickCheck, random, statistics, test-framework
+     , test-framework-hunit, test-framework-quickcheck2, text, time
+     , transformers, transformers-base, unordered-containers, vector
+     , xmlhtml
+     }:
+     mkDerivation {
+       pname = "heist-emanote";
+       version = "1.2.0.0";
+       sha256 = "098gy30vpwwg4hx7nqkic11214y5vrcqazvxk9477ry9rmp7hv85";
+       libraryHaskellDepends = [
+         aeson attoparsec base blaze-builder blaze-html bytestring
+         containers directory directory-tree dlist filepath hashable
+         lifted-base map-syntax monad-control mtl process random text time
+         transformers transformers-base unordered-containers vector xmlhtml
+       ];
+       testHaskellDepends = [
+         aeson attoparsec base bifunctors blaze-builder blaze-html
+         bytestring containers directory directory-tree dlist filepath
+         hashable HUnit lens lifted-base map-syntax monad-control mtl
+         process QuickCheck random test-framework test-framework-hunit
+         test-framework-quickcheck2 text time transformers transformers-base
+         unordered-containers vector xmlhtml
+       ];
+       benchmarkHaskellDepends = [
+         aeson attoparsec base blaze-builder blaze-html bytestring
+         containers criterion criterion-measurement directory directory-tree
+         dlist filepath hashable HUnit lifted-base map-syntax monad-control
+         mtl process random statistics test-framework test-framework-hunit
+         text time transformers transformers-base unordered-containers
+         vector xmlhtml
+       ];
+       description = "An Haskell template system supporting both HTML5 and XML";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "helf" = callPackage
     ({ mkDerivation, alex, array, base, containers, happy, mtl, pretty
      , QuickCheck
@@ -130466,8 +130492,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-agent";
-       version = "0.9.2";
-       sha256 = "1518hkza6xgvy6ykvmv12pc0lhdf5apbjahpgw6bdrwnfyj0xicm";
+       version = "0.9.3";
+       sha256 = "0rf00qskifbgxqkjy8fykc9ck4zwsvs08nsprw2447adx8dl9g5h";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -130643,14 +130669,14 @@ self: {
     ({ mkDerivation, aeson, base, boost, bytestring, Cabal
      , cabal-pkg-config-version-hook, conduit, containers, directory
      , exceptions, filepath, hercules-ci-cnix-store, hspec
-     , hspec-discover, inline-c, inline-c-cpp, nix, protolude
+     , hspec-discover, inline-c, inline-c-cpp, nix, process, protolude
      , QuickCheck, scientific, temporary, text, unliftio
      , unordered-containers, vector
      }:
      mkDerivation {
        pname = "hercules-ci-cnix-expr";
-       version = "0.3.1.1";
-       sha256 = "1rjly7ic310kzclh0dh2gknrn31anam2ncgjrhm6sq3hrvay1v32";
+       version = "0.3.1.2";
+       sha256 = "1jj4ksxwvr6rnbqshcrf2i54f2mfvjz84wlzwv99hxj8ycnm2ddh";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal cabal-pkg-config-version-hook ];
        libraryHaskellDepends = [
@@ -130661,9 +130687,9 @@ self: {
        librarySystemDepends = [ boost ];
        libraryPkgconfigDepends = [ nix ];
        testHaskellDepends = [
-         aeson base bytestring containers hercules-ci-cnix-store hspec
-         protolude QuickCheck scientific temporary unordered-containers
-         vector
+         aeson base bytestring containers filepath hercules-ci-cnix-store
+         hspec process protolude QuickCheck scientific temporary text
+         unordered-containers vector
        ];
        testToolDepends = [ hspec-discover ];
        description = "Bindings for the Nix evaluator";
@@ -130679,8 +130705,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-cnix-store";
-       version = "0.3.0.1";
-       sha256 = "0vfwqa167800hilxqs4bm650sfdyg4q4w47vywpw1r8rmh0iznkh";
+       version = "0.3.1.0";
+       sha256 = "0qkwq2w7pybzn9lmw71xj0rfpv1rvjmjlc0nxywwb12rsvmjvllq";
        setupHaskellDepends = [ base Cabal cabal-pkg-config-version-hook ];
        libraryHaskellDepends = [
          base bytestring conduit containers inline-c inline-c-cpp protolude
@@ -131282,20 +131308,20 @@ self: {
      }) {};
 
   "hexml-lens" = callPackage
-    ({ mkDerivation, base, bytestring, contravariant, doctest
-     , foundation, hexml, hspec, lens, profunctors, QuickCheck, text
-     , wreq
+    ({ mkDerivation, base, bytestring, contravariant, foundation, hexml
+     , hspec, lens, profunctors, text, wreq
      }:
      mkDerivation {
        pname = "hexml-lens";
-       version = "0.2.1";
-       sha256 = "0ss9riq7ppmqav4p38ckk479ggq7iy7xm0wsanr29ybg43vlx8xs";
+       version = "0.2.2";
+       sha256 = "1z522r600b0jzz0fw612a78k296cmpnfddwd5dfg4d4bcqc1db6n";
        libraryHaskellDepends = [
          base bytestring contravariant foundation hexml lens profunctors
          text
        ];
        testHaskellDepends = [
-         base bytestring doctest hexml hspec lens QuickCheck wreq
+         base bytestring contravariant foundation hexml hspec lens
+         profunctors text wreq
        ];
        description = "Lenses for the hexml package";
        license = lib.licenses.bsd3;
@@ -133449,26 +133475,6 @@ self: {
      }) {};
 
   "hint" = callPackage
-    ({ mkDerivation, base, containers, directory, exceptions, filepath
-     , ghc, ghc-boot, ghc-paths, HUnit, random, stm, temporary
-     , transformers, unix
-     }:
-     mkDerivation {
-       pname = "hint";
-       version = "0.9.0.5";
-       sha256 = "1qjasjbilvrfwk8lxfw0pa0hwpsr7nn0n9yd95lwjgfnqnigzcb8";
-       libraryHaskellDepends = [
-         base containers directory exceptions filepath ghc ghc-boot
-         ghc-paths random temporary transformers unix
-       ];
-       testHaskellDepends = [
-         base containers directory exceptions filepath HUnit stm unix
-       ];
-       description = "Runtime Haskell interpreter (GHC API wrapper)";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "hint_0_9_0_6" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory
      , exceptions, filepath, ghc, ghc-boot, ghc-paths, HUnit, random
      , stm, temporary, text, transformers, typed-process, unix
@@ -133487,7 +133493,6 @@ self: {
        ];
        description = "A Haskell interpreter built on top of the GHC API";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hint-server" = callPackage
@@ -135831,8 +135836,8 @@ self: {
     ({ mkDerivation, base, doctest, hmatrix, nlopt-haskell, vector }:
      mkDerivation {
        pname = "hmatrix-nlopt";
-       version = "0.1.3.0";
-       sha256 = "17c6s4q5sldr3mqqbyg4yknqxfgd45a0aw6sac33xcv9dvgyjyfc";
+       version = "0.2.0.0";
+       sha256 = "1akllhmh143j9xcw0kcmvn8pfafha94gkyd9h6cfd48wlvz93wwk";
        libraryHaskellDepends = [ base hmatrix nlopt-haskell vector ];
        testHaskellDepends = [ base doctest ];
        description = "Interface HMatrix with the NLOPT minimizer";
@@ -138384,44 +138389,6 @@ self: {
      }:
      mkDerivation {
        pname = "hpack";
-       version = "0.34.6";
-       sha256 = "0hmaf5j4blyav3a0r1qbdhr5hs8s88c6l7ryxi011xj7hqs4fi8w";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base bifunctors bytestring Cabal containers cryptonite
-         deepseq directory filepath Glob http-client http-client-tls
-         http-types infer-license pretty scientific text transformers
-         unordered-containers vector yaml
-       ];
-       executableHaskellDepends = [
-         aeson base bifunctors bytestring Cabal containers cryptonite
-         deepseq directory filepath Glob http-client http-client-tls
-         http-types infer-license pretty scientific text transformers
-         unordered-containers vector yaml
-       ];
-       testHaskellDepends = [
-         aeson base bifunctors bytestring Cabal containers cryptonite
-         deepseq directory filepath Glob hspec http-client http-client-tls
-         http-types HUnit infer-license interpolate mockery pretty
-         QuickCheck scientific template-haskell temporary text transformers
-         unordered-containers vector yaml
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "A modern format for Haskell packages";
-       license = lib.licenses.mit;
-     }) {};
-
-  "hpack_0_34_7" = callPackage
-    ({ mkDerivation, aeson, base, bifunctors, bytestring, Cabal
-     , containers, cryptonite, deepseq, directory, filepath, Glob, hspec
-     , hspec-discover, http-client, http-client-tls, http-types, HUnit
-     , infer-license, interpolate, mockery, pretty, QuickCheck
-     , scientific, template-haskell, temporary, text, transformers
-     , unordered-containers, vector, yaml
-     }:
-     mkDerivation {
-       pname = "hpack";
        version = "0.34.7";
        sha256 = "0nzqpma4cxp3xw79i5pxgjynl5iq0dq0nrw8vczwpj373kyijd0h";
        isLibrary = true;
@@ -138448,7 +138415,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A modern format for Haskell packages";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hpack-convert" = callPackage
@@ -138819,8 +138785,8 @@ self: {
        pname = "hpc-lcov";
        version = "1.0.1";
        sha256 = "01ws5y2vavgm7151dcabw3jwny1prrnzn5b04q76m5gc6a36wivl";
-       revision = "2";
-       editedCabalFile = "1sbd4wk977hh7jvy2ingmavkqx7fzicfa70figipa7lzdq3lg0ls";
+       revision = "3";
+       editedCabalFile = "1nq636asnibbx6mrx18kr02pcg3jr2m28z40vk9iydmz6lr5msni";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers hpc ];
@@ -139014,8 +138980,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpp";
-       version = "0.6.4";
-       sha256 = "0hkdpd4rlc0z3sfj4ymvk751csfdvqf56y9np9qyzh4ndaw9sj78";
+       version = "0.6.5";
+       sha256 = "0xmnnmw2h4rf0bffncbhy8ja005wfr54cgsnqnc5vsqnl3dmvdlp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -139038,37 +139004,6 @@ self: {
      }:
      mkDerivation {
        pname = "hpqtypes";
-       version = "1.9.3.0";
-       sha256 = "1xvimzwbmb72g7c4c5wi2lr4dn0pyyfzk8y4q4a9ihpw0yapby3n";
-       setupHaskellDepends = [ base Cabal directory filepath ];
-       libraryHaskellDepends = [
-         aeson async base bytestring containers exceptions lifted-base
-         monad-control mtl resource-pool semigroups text text-show time
-         transformers transformers-base uuid-types vector
-       ];
-       librarySystemDepends = [ postgresql ];
-       testHaskellDepends = [
-         aeson base bytestring exceptions HUnit lifted-base monad-control
-         mtl QuickCheck random scientific test-framework
-         test-framework-hunit text text-show time transformers-base
-         unordered-containers uuid-types vector
-       ];
-       description = "Haskell bindings to libpqtypes";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {inherit (pkgs) postgresql;};
-
-  "hpqtypes_1_9_3_1" = callPackage
-    ({ mkDerivation, aeson, async, base, bytestring, Cabal, containers
-     , directory, exceptions, filepath, HUnit, lifted-base
-     , monad-control, mtl, postgresql, QuickCheck, random, resource-pool
-     , scientific, semigroups, test-framework, test-framework-hunit
-     , text, text-show, time, transformers, transformers-base
-     , unordered-containers, uuid-types, vector
-     }:
-     mkDerivation {
-       pname = "hpqtypes";
        version = "1.9.3.1";
        sha256 = "02cinc29smiic2zc8z83h9bppsf60yp56a4cb9k4agkjqf5n2036";
        setupHaskellDepends = [ base Cabal directory filepath ];
@@ -139370,8 +139305,8 @@ self: {
      }:
      mkDerivation {
        pname = "hquantlib";
-       version = "0.0.5.0";
-       sha256 = "1zi31y89kdbid3xjvpsd2iqwvn8a7d2i5518maigkmhp5v1lg0w6";
+       version = "0.0.5.1";
+       sha256 = "0fbmji48ry3adq9lfpxwfx2q064cbrav8wq2ykaqsszgq9yiysc8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -139395,8 +139330,8 @@ self: {
     ({ mkDerivation, base, time }:
      mkDerivation {
        pname = "hquantlib-time";
-       version = "0.0.4.1";
-       sha256 = "0g2j7m14ic40lhcnbvfjya3qh7ngx658qlmrr0dzr5r1ywcyv75c";
+       version = "0.0.5.1";
+       sha256 = "1jvcpcnss3hgnjp6isbpbmjml068gasrlj376sbv7diynh8a4rlf";
        libraryHaskellDepends = [ base time ];
        description = "HQuantLib Time is a business calendar functions extracted from HQuantLib";
        license = "LGPL";
@@ -140156,8 +140091,8 @@ self: {
      }:
      mkDerivation {
        pname = "hs-opentelemetry-api";
-       version = "0.0.3.2";
-       sha256 = "0rb3hmpwvncrjr9dh7wk7dqair51rmdzw9d138ld66cy6np5cjz0";
+       version = "0.0.3.3";
+       sha256 = "0hrlz77p5w57ax4jml5c415qb1bfh8zi357xvnb0bin7g5a00fn8";
        libraryHaskellDepends = [
          async attoparsec base binary bytestring charset clock containers
          ghc-prim hashable http-types memory mtl template-haskell text
@@ -142907,11 +142842,11 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-module-doclayout";
-       version = "1.0.3";
-       sha256 = "01khmrgrvy1dhh2p8gjkrvhkwpnjnznhc23hvxbh2v8lxb4ak3r6";
+       version = "1.0.4";
+       sha256 = "14sqffgcrhhrv7k4j8b1l41mn5gqlp8yzggd727746kjl0n56hqq";
        libraryHaskellDepends = [ base doclayout hslua text ];
        testHaskellDepends = [
-         base doclayout hslua tasty tasty-hunit tasty-lua
+         base doclayout hslua tasty tasty-hunit tasty-lua text
        ];
        description = "Lua module wrapping Text.DocLayout.";
        license = lib.licenses.mit;
@@ -143434,6 +143369,22 @@ self: {
        broken = true;
      }) {};
 
+  "hspec_2_7_10" = callPackage
+    ({ mkDerivation, base, hspec-core, hspec-discover
+     , hspec-expectations, QuickCheck
+     }:
+     mkDerivation {
+       pname = "hspec";
+       version = "2.7.10";
+       sha256 = "0z0lwrmrqkglr78n6k2c36n4h68142bh785ys0x4jaibjshvs6rw";
+       libraryHaskellDepends = [
+         base hspec-core hspec-discover hspec-expectations QuickCheck
+       ];
+       description = "A Testing Framework for Haskell";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hspec" = callPackage
     ({ mkDerivation, base, hspec-core, hspec-discover
      , hspec-expectations, QuickCheck
@@ -143449,14 +143400,14 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hspec_2_9_4" = callPackage
+  "hspec_2_9_6" = callPackage
     ({ mkDerivation, base, hspec-core, hspec-discover
      , hspec-expectations, QuickCheck
      }:
      mkDerivation {
        pname = "hspec";
-       version = "2.9.4";
-       sha256 = "1s009dn0hkqfn5c0y0xfja18wps430f2dkga9mfrrndhvlvx8fm3";
+       version = "2.9.6";
+       sha256 = "1x3mizv029qn9yyq3ipr2awlapbsiyksxzd9x7r3vjfxlwbjs4sr";
        libraryHaskellDepends = [
          base hspec-core hspec-discover hspec-expectations QuickCheck
        ];
@@ -143520,6 +143471,34 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hspec-core_2_7_10" = callPackage
+    ({ mkDerivation, ansi-terminal, array, base, call-stack, clock
+     , deepseq, directory, filepath, hspec-expectations, hspec-meta
+     , HUnit, process, QuickCheck, quickcheck-io, random, setenv
+     , silently, stm, temporary, tf-random, transformers
+     }:
+     mkDerivation {
+       pname = "hspec-core";
+       version = "2.7.10";
+       sha256 = "12k9yp5gznrda449ir60d5wv3xl7nnyffkb5mhfc0svw9f8lxlv1";
+       libraryHaskellDepends = [
+         ansi-terminal array base call-stack clock deepseq directory
+         filepath hspec-expectations HUnit QuickCheck quickcheck-io random
+         setenv stm tf-random transformers
+       ];
+       testHaskellDepends = [
+         ansi-terminal array base call-stack clock deepseq directory
+         filepath hspec-expectations hspec-meta HUnit process QuickCheck
+         quickcheck-io random setenv silently stm temporary tf-random
+         transformers
+       ];
+       testToolDepends = [ hspec-meta ];
+       testTarget = "--test-option=--skip --test-option='Test.Hspec.Core.Runner.hspecResult runs specs in parallel'";
+       description = "A Testing Framework for Haskell";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hspec-core" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, base-orphans
      , call-stack, clock, deepseq, directory, filepath
@@ -143548,7 +143527,7 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hspec-core_2_9_4" = callPackage
+  "hspec-core_2_9_6" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, base-orphans
      , call-stack, clock, deepseq, directory, filepath, ghc, ghc-boot-th
      , hspec-expectations, hspec-meta, HUnit, process, QuickCheck
@@ -143557,8 +143536,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-core";
-       version = "2.9.4";
-       sha256 = "0bkr2hywmlawyyrp27xgfd4a080bk1i5kj81hcxbg2w8y0i7r0w4";
+       version = "2.9.6";
+       sha256 = "0mg8rdg8ga24fk6cv7p8vb0j33agay1nwaxqvfga6d4kj5g440fr";
        libraryHaskellDepends = [
          ansi-terminal array base call-stack clock deepseq directory
          filepath ghc ghc-boot-th hspec-expectations HUnit QuickCheck
@@ -143595,6 +143574,27 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "hspec-discover_2_7_10" = callPackage
+    ({ mkDerivation, base, directory, filepath, hspec-meta, QuickCheck
+     }:
+     mkDerivation {
+       pname = "hspec-discover";
+       version = "2.7.10";
+       sha256 = "13yzvd3b679skvs1insk4s0wc4zvmz6hs38kc8q0j6vzqq06smqa";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base directory filepath ];
+       executableHaskellDepends = [ base directory filepath ];
+       testHaskellDepends = [
+         base directory filepath hspec-meta QuickCheck
+       ];
+       testToolDepends = [ hspec-meta ];
+       description = "Automatically discover and run Hspec tests";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ maralorn ];
+     }) {};
+
   "hspec-discover" = callPackage
     ({ mkDerivation, base, directory, filepath, hspec-meta, mockery
      , QuickCheck
@@ -143616,14 +143616,14 @@ self: {
        maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
-  "hspec-discover_2_9_4" = callPackage
+  "hspec-discover_2_9_6" = callPackage
     ({ mkDerivation, base, directory, filepath, hspec-meta, mockery
      , QuickCheck
      }:
      mkDerivation {
        pname = "hspec-discover";
-       version = "2.9.4";
-       sha256 = "16y3z6f32bbnkxw142y90hs0512rh2mp9904ffahmag9m95qfbnv";
+       version = "2.9.6";
+       sha256 = "1k77hn47b3l4m8qpp2zfv73k2in7pi2fybda0dkpfj3a1jsarpin";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base directory filepath ];
@@ -143652,14 +143652,15 @@ self: {
 
   "hspec-expectations-json" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, aeson-qq, base, Diff, hspec
-     , HUnit, scientific, text, vector
+     , HUnit, scientific, text, unordered-containers, vector
      }:
      mkDerivation {
        pname = "hspec-expectations-json";
-       version = "1.0.0.5";
-       sha256 = "12kb0dsw36rwg522lhs31gi2ij8vf8lq36j3983i352yiqrzb586";
+       version = "1.0.0.6";
+       sha256 = "1gb4i4vc6f59vp120asl6fr20n6d9xnibvnfxjd94knflidhq80n";
        libraryHaskellDepends = [
-         aeson aeson-pretty base Diff HUnit scientific text vector
+         aeson aeson-pretty base Diff HUnit scientific text
+         unordered-containers vector
        ];
        testHaskellDepends = [ aeson-qq base hspec ];
        description = "Hspec expectations for JSON Values";
@@ -143757,6 +143758,24 @@ self: {
        broken = true;
      }) {};
 
+  "hspec-golden_0_1_0_3" = callPackage
+    ({ mkDerivation, base, directory, hspec, hspec-core
+     , optparse-applicative, silently
+     }:
+     mkDerivation {
+       pname = "hspec-golden";
+       version = "0.1.0.3";
+       sha256 = "1d5ab34n0f1wk1q86qlb7x2b49abzzh08jh7j52nbrvnxld2j64l";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base directory hspec-core ];
+       executableHaskellDepends = [ base directory optparse-applicative ];
+       testHaskellDepends = [ base directory hspec hspec-core silently ];
+       description = "Golden tests for hspec";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hspec-golden" = callPackage
     ({ mkDerivation, base, directory, filepath, hspec, hspec-core
      , optparse-applicative, silently
@@ -143866,22 +143885,22 @@ self: {
        broken = true;
      }) {};
 
-  "hspec-junit-formatter_1_1_0_1" = callPackage
+  "hspec-junit-formatter_1_1_0_2" = callPackage
     ({ mkDerivation, base, conduit, containers, directory, exceptions
      , filepath, hspec, hspec-core, iso8601-time, markdown-unlit
      , temporary, text, time, xml-conduit, xml-types
      }:
      mkDerivation {
        pname = "hspec-junit-formatter";
-       version = "1.1.0.1";
-       sha256 = "194r8bxfn525mn8vq4dcfkbsn668s11yz4mdqbfr5qy29i1bzm5p";
+       version = "1.1.0.2";
+       sha256 = "1gzgfisji7w4gsixlchlrg5ylkmdqq2mk5sc0jdwqxz865kjq01g";
        libraryHaskellDepends = [
          base conduit containers directory exceptions filepath hspec-core
          iso8601-time text time xml-conduit xml-types
        ];
        testHaskellDepends = [
-         base containers filepath hspec hspec-core markdown-unlit temporary
-         text xml-conduit
+         base containers filepath hspec markdown-unlit temporary text
+         xml-conduit
        ];
        testToolDepends = [ markdown-unlit ];
        description = "A JUnit XML runner/formatter for hspec";
@@ -145846,6 +145865,24 @@ self: {
        broken = true;
      }) {};
 
+  "htoml-parse" = callPackage
+    ({ mkDerivation, base, comonad, containers, dlist, htoml-megaparsec
+     , mtl, prettyprinter, prettyprinter-combinators, text, time
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "htoml-parse";
+       version = "0.1.0.1";
+       sha256 = "02zp241wgc7lkywp1wd7qz69k2gkgdhk72vdwqfmvxg3l61z0wb8";
+       libraryHaskellDepends = [
+         base comonad containers dlist htoml-megaparsec mtl prettyprinter
+         prettyprinter-combinators text time unordered-containers vector
+       ];
+       description = "Parse TOML values produced by htoml-megaparsec package";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "htrace" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -148055,14 +148092,17 @@ self: {
      }) {};
 
   "hw-aeson" = callPackage
-    ({ mkDerivation, aeson, base, doctest, doctest-discover, hedgehog
-     , hspec, hspec-discover, text
+    ({ mkDerivation, aeson, base, containers, doctest, doctest-discover
+     , hedgehog, hspec, hspec-discover, text, text-short
+     , unordered-containers
      }:
      mkDerivation {
        pname = "hw-aeson";
-       version = "0.1.2.0";
-       sha256 = "0a4x97laraxyyrpkklj4qxwgh7lmxxnzdg7y0ki9041ck8ymsmdr";
-       libraryHaskellDepends = [ aeson base text ];
+       version = "0.1.5.0";
+       sha256 = "0dzwn1k467dij8ihqzxq6vhm5faqqjndvyw0ikwjhwh0lf1h38cz";
+       libraryHaskellDepends = [
+         aeson base containers text text-short unordered-containers
+       ];
        testHaskellDepends = [
          aeson base doctest doctest-discover hedgehog hspec
        ];
@@ -150232,6 +150272,8 @@ self: {
        ];
        description = "Server back-end for the HyperHaskell graphical Haskell interpreter";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hyperdrive" = callPackage
@@ -153701,6 +153743,7 @@ self: {
        ];
        description = "Write Haskell source files including C code inline. No FFI required.";
        license = lib.licenses.mit;
+       maintainers = with lib.maintainers; [ roberth ];
      }) {};
 
   "inline-c-cpp" = callPackage
@@ -153721,6 +153764,7 @@ self: {
        ];
        description = "Lets you embed C++ code into Haskell";
        license = lib.licenses.mit;
+       maintainers = with lib.maintainers; [ roberth ];
      }) {};
 
   "inline-c-win32" = callPackage
@@ -157370,13 +157414,13 @@ self: {
     ({ mkDerivation, alex, array, base, bytestring, containers
      , criterion, deepseq, directory, filepath, happy, microlens
      , microlens-mtl, mtl, optparse-applicative, prettyprinter
-     , recursion, regex-rure, split, tasty, tasty-hunit, text
+     , recursion, regex-rure, silently, split, tasty, tasty-hunit, text
      , transformers, vector
      }:
      mkDerivation {
        pname = "jacinda";
-       version = "0.3.1.0";
-       sha256 = "1nn3c91fhq46ng2yh9425cpxlk5mksalx5wrv1d7z0xn5m1v1387";
+       version = "1.0.0.0";
+       sha256 = "1yskpr3mvfhzxcjf0f9sf3mhsg892vqkx5kd4vz4w6wk3vv1iz3i";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -157390,7 +157434,9 @@ self: {
          base bytestring optparse-applicative
        ];
        testHaskellDepends = [ base bytestring tasty tasty-hunit ];
-       benchmarkHaskellDepends = [ base criterion deepseq ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion deepseq silently
+       ];
        doHaddock = false;
        description = "Functional, expression-oriented data processing language";
        license = lib.licenses.agpl3Only;
@@ -158642,8 +158688,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle";
-       version = "0.9.8.1";
-       sha256 = "19jszi6b2fhgz8cb0a4p6ixjg78c28cr78abwjcffbx173jp981h";
+       version = "0.9.8.2";
+       sha256 = "17xffxyl4h8fbb608gzhflli89qxhrzf38bp9l8n2w2bwix7w01i";
        libraryHaskellDepends = [
          aeson attoparsec base base-compat base64-bytestring bytestring
          containers deepseq exceptions filepath ghc-prim http-types lens
@@ -158660,8 +158706,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle-clib";
-       version = "0.9.8.0";
-       sha256 = "0axgfkxgvm4awvklss2pqa8a4112m3q7k38h71anxs6i199lgkyq";
+       version = "0.9.8.2";
+       sha256 = "0nbsjmn52dr0rfslz6c7f16z7brc76ljq78bkkbq3aj8ljadh0p6";
        libraryHaskellDepends = [
          aeson base base-compat bytestring data-default jsaddle text
        ];
@@ -158716,8 +158762,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle-warp";
-       version = "0.9.8.0";
-       sha256 = "06bf071xnfx7mjzf7jdyjspjw28s2z3br5gmx9vcs7paji20c8np";
+       version = "0.9.8.2";
+       sha256 = "12914i4l7hkwvwvzf25vr7zywc6xp9cq0mfzr57kzw6ga1y3gvxb";
        libraryHaskellDepends = [
          aeson base bytestring containers foreign-store http-types jsaddle
          stm text time transformers wai wai-websockets warp websockets
@@ -158743,8 +158789,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle-webkit2gtk";
-       version = "0.9.8.1";
-       sha256 = "1q4hyjlvw3m2139s1rp658hkqhnayk00nijdymjr8606d7cfyp7p";
+       version = "0.9.8.2";
+       sha256 = "0cqn013dzn5wwap74i5j9kd6maxsqxb84zys6p80kjl5vnk5pvxh";
        libraryHaskellDepends = [
          aeson base bytestring directory gi-gio gi-glib gi-gtk
          gi-javascriptcore gi-webkit2 haskell-gi-base haskell-gi-overloading
@@ -158780,8 +158826,8 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "jsaddle-wkwebview";
-       version = "0.9.8.0";
-       sha256 = "1cjncl2jqnx4j83pmcnnvcc0rswhwwb5grwh636b11yyp4vv58dw";
+       version = "0.9.8.2";
+       sha256 = "07qba7bnygnsy3yg4mk8bn8wfzca43cd7mzzjp5b4yracchvljqj";
        description = "Interface for JavaScript that works with GHCJS and GHC";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
@@ -159824,6 +159870,45 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "jsonlogic" = callPackage
+    ({ mkDerivation, base, containers, hedgehog, mtl, tasty
+     , tasty-hedgehog, tasty-hunit
+     }:
+     mkDerivation {
+       pname = "jsonlogic";
+       version = "0.1.0.0";
+       sha256 = "10mibw6nakpdbb2ilf16zm4fydjg1arsy95frjziiah3vilqngdg";
+       libraryHaskellDepends = [ base containers mtl ];
+       testHaskellDepends = [
+         base containers hedgehog tasty tasty-hedgehog tasty-hunit
+       ];
+       description = "JsonLogic Evaluation";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "jsonlogic-aeson" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
+     , hedgehog, jsonlogic, scientific, tasty, tasty-hedgehog
+     , tasty-hunit, text, utf8-string, vector
+     }:
+     mkDerivation {
+       pname = "jsonlogic-aeson";
+       version = "0.1.0.0";
+       sha256 = "1kljmxrr96lsg8d59pq4jphip8ymd5j3jdd5ckjjlri9hqrmqks1";
+       libraryHaskellDepends = [
+         aeson aeson-pretty base bytestring containers jsonlogic scientific
+         text utf8-string vector
+       ];
+       testHaskellDepends = [
+         base containers hedgehog jsonlogic tasty tasty-hedgehog tasty-hunit
+       ];
+       description = "JsonLogic Aeson Support";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "jsonnet" = callPackage
     ({ mkDerivation, aeson, ansi-wl-pprint, base, binary, bytestring
      , containers, data-fix, deriving-compat, directory, exceptions
@@ -161022,6 +161107,7 @@ self: {
        description = "ElasticSearch scribe for the Katip logging framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "katip-kafka" = callPackage
@@ -161520,8 +161606,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-i18n";
-       version = "0.7.0";
-       sha256 = "0k5cvnkc5r99r4361hn5jrmslvb21y3k2pj0dryiwbs21jwyv213";
+       version = "0.8.0";
+       sha256 = "0bl5szf7npifbmay7shj2lbbwcm71n4p4rxw1cy2mpy71c53gzpl";
        libraryHaskellDepends = [
          base directory filepath glib hgettext MissingK setlocale
          utf8-string
@@ -161535,8 +161621,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "keera-hails-mvc-controller";
-       version = "0.7.0";
-       sha256 = "1j7vhkghdh4hrap7g2xshpd2fw3acgwvi68f2c01mqmfi5dl4z2n";
+       version = "0.8.0";
+       sha256 = "1fky7z6zc2xs56hn4bbxjc9clinw5anzndqbb59qwb7pf1h1bxjb";
        libraryHaskellDepends = [ base ];
        description = "Haskell on Gtk rails - Gtk-based controller for MVC applications";
        license = lib.licenses.bsd3;
@@ -161548,8 +161634,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-mvc-environment-gtk";
-       version = "0.7.0";
-       sha256 = "0px1f9jpdgkd253bhgalxk5rxx971s0s2a845h81x6hy9wi7n6mf";
+       version = "0.8.0";
+       sha256 = "0s3ax8ysz3g2fbi10sjz4xx10hf8cvhy01kqiy6sa3y7c79fbmis";
        libraryHaskellDepends = [
          base keera-hails-mvc-model-protectedmodel keera-hails-mvc-view
          keera-hails-mvc-view-gtk
@@ -161565,8 +161651,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-mvc-model-lightmodel";
-       version = "0.7.0";
-       sha256 = "0nklcgsadm2h62jwp8i419dwrsfs885cmglr5n39b7r1zy7dsa0f";
+       version = "0.8.0";
+       sha256 = "0m3n7l5am935pvicmajxdzs1s7h2y8jw8iw6m4lpij2cv03w0ik5";
        libraryHaskellDepends = [
          base containers keera-hails-reactivevalues MissingK stm
          template-haskell
@@ -161582,8 +161668,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-mvc-model-protectedmodel";
-       version = "0.7.0";
-       sha256 = "0vz4bcnm2p03c3x6qspii9kylcv4d0qlmzawm6x1f148srrwidi7";
+       version = "0.8.0";
+       sha256 = "0s6ac518mr1y9300dyifxryx8ba71ca08630a81ag7glhpr8s81y";
        libraryHaskellDepends = [
          base containers keera-hails-reactivevalues MissingK stm
          template-haskell
@@ -161597,8 +161683,8 @@ self: {
     ({ mkDerivation, base, directory, filepath, MissingK }:
      mkDerivation {
        pname = "keera-hails-mvc-solutions-config";
-       version = "0.0.3.3";
-       sha256 = "16c6nh5fqw2r42nxs3x27rqbpscypjzgqnprl99241giwcvy98x1";
+       version = "0.8.0";
+       sha256 = "0qv77hvw4cvpl6dk4vgcvcc9gybijld5r1ixjxhqqiw70w18qr9a";
        libraryHaskellDepends = [ base directory filepath MissingK ];
        description = "Haskell on Gtk rails - Easy handling of configuration files";
        license = lib.licenses.bsd3;
@@ -161613,15 +161699,15 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-mvc-solutions-gtk";
-       version = "0.0.3.4";
-       sha256 = "01sksznn8rxv4ww3p99qm8dhjlpy03ygavp512zmyrpvydhp86mm";
+       version = "0.8.0";
+       sha256 = "1k7iaz7klm3sc84bhyzrni9sa0b8g1m6c6wacx3w87ca233yx2b4";
        libraryHaskellDepends = [
          base gtk hslogger HTTP keera-hails-mvc-environment-gtk
          keera-hails-mvc-model-protectedmodel keera-hails-mvc-view
          keera-hails-mvc-view-gtk keera-hails-reactivevalues MissingK mtl
          network network-uri template-haskell
        ];
-       description = "Haskell on Gtk rails - Common solutions to recurrent problems in Gtk applications";
+       description = "Haskell on Gtk rails - Solutions to recurrent problems in Gtk applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
      }) {};
@@ -161630,8 +161716,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "keera-hails-mvc-view";
-       version = "0.0.3.3";
-       sha256 = "0jkwbpw23ba5z83nfk51hp8wsfkrbbiwr0f6bvx39wzz1v81n58p";
+       version = "0.8.0";
+       sha256 = "1by0xr31c22b3xcimnx7l2hddf0qhv9fmz6cs60ya0dkd7bgc8gw";
        libraryHaskellDepends = [ base ];
        description = "Haskell on Gtk rails - Generic View for MVC applications";
        license = lib.licenses.bsd3;
@@ -161641,8 +161727,8 @@ self: {
     ({ mkDerivation, base, gtk, gtk-helpers, keera-hails-mvc-view }:
      mkDerivation {
        pname = "keera-hails-mvc-view-gtk";
-       version = "0.0.3.3";
-       sha256 = "1yz4drm0r1831acg9y8glg7hgiqwgc5nqkz4hfgqgfngqs94jx4z";
+       version = "0.8.0";
+       sha256 = "0hf4wjnvbnljm732q826qjmnkvgzvy716d1fc5v31imx7flsi1hl";
        libraryHaskellDepends = [
          base gtk gtk-helpers keera-hails-mvc-view
        ];
@@ -161657,8 +161743,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactive-cbmvar";
-       version = "0.7.0";
-       sha256 = "085zli0s7p8f2ib2882q4qpqlh6czw62626fnrjiks4sff3f31c7";
+       version = "0.8.0";
+       sha256 = "1b9agmlxpg6x6p8bysgb7ir9rrssjnhpx0m28v6wwy06kgwg0j9d";
        libraryHaskellDepends = [
          base keera-callbacks keera-hails-reactivevalues lens
        ];
@@ -161676,8 +161762,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactive-fs";
-       version = "0.0.3.4";
-       sha256 = "1yinlhp08xxdlbnm90gnwbr1h9sp8r741ihd8kihy1yfqzkp85cy";
+       version = "0.8.0";
+       sha256 = "01yr0lc6s4d6ihlrzlrxbdf7vsa81c099whxsr2hyqw9brkc0ycb";
        libraryHaskellDepends = [
          base directory fsnotify keera-hails-reactivevalues system-filepath
        ];
@@ -161692,8 +161778,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactive-gtk";
-       version = "0.7.0";
-       sha256 = "1xn5ar20x8kpiv1z6i5gcvm09xjgrdppjyxd2si8nyv7gw173scr";
+       version = "0.8.0";
+       sha256 = "15zjpj533zm3kjr5j1m8xh25y0cyz6wp224lkdy3b7x321yrd1c2";
        libraryHaskellDepends = [
          base bytestring cairo glib gtk gtk-helpers
          keera-hails-reactivevalues mtl transformers
@@ -161710,8 +161796,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactive-htmldom";
-       version = "0.7.0";
-       sha256 = "05lz38pffm6k3kbw3g6gkslixq4nc764n1i4dxz9p6zwj27f6svc";
+       version = "0.8.0";
+       sha256 = "0mf22b0qvg9xmsz8nijld7qccp12nhwn3gznrcdb56k6p2yk6daf";
        libraryHaskellDepends = [
          base ghcjs-dom keera-callbacks keera-hails-reactive-cbmvar
          keera-hails-reactivevalues mtl transformers
@@ -161727,8 +161813,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactive-network";
-       version = "0.7.0";
-       sha256 = "0qn1vz55fpvrx4l3lak0lkx0ggli8smf3r4za3zypgfv3a1q3rxm";
+       version = "0.8.0";
+       sha256 = "0m1xgfl8cisi67hv6k5gjdr0l2mla8f88vqisicw39dr6nqdrfmf";
        libraryHaskellDepends = [
          base bytestring keera-hails-reactivevalues network network-bsd
        ];
@@ -161742,8 +161828,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactive-polling";
-       version = "0.0.3.3";
-       sha256 = "1khkbhj94y6y5s2d56h718c8kh3y698wdryi2369mrw755dy6qh8";
+       version = "0.8.0";
+       sha256 = "1v88bz16zx73lwk62f5nyr2kizbjazvh5k0f5vfjgd8mlx3hrhg0";
        libraryHaskellDepends = [
          base keera-callbacks keera-hails-reactivevalues
        ];
@@ -161756,8 +161842,8 @@ self: {
     ({ mkDerivation, base, keera-hails-reactivevalues, wx, wxcore }:
      mkDerivation {
        pname = "keera-hails-reactive-wx";
-       version = "0.7.0";
-       sha256 = "1cpwyqqcdnxc30qmny0rq0ww51vv8g241jwjis1sbs47hvwgvi27";
+       version = "0.8.0";
+       sha256 = "0p8zygfbmw0lh88pkfn7rpnxl5ikdfbasdnyafi90nn24dnfii84";
        libraryHaskellDepends = [
          base keera-hails-reactivevalues wx wxcore
        ];
@@ -161772,8 +161858,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactive-yampa";
-       version = "0.7.0";
-       sha256 = "178r5igwnvkbpz1hypiy4l61s3amr4j8bk1yvqc7jvs40cldiw1x";
+       version = "0.8.0";
+       sha256 = "0ayazs0lmjjs2ilr56zdbmvzcx6091fk72dcz0kqg5jx2xlj3h9j";
        libraryHaskellDepends = [
          base keera-callbacks keera-hails-reactivevalues time Yampa
        ];
@@ -161783,12 +161869,19 @@ self: {
      }) {};
 
   "keera-hails-reactivelenses" = callPackage
-    ({ mkDerivation, base, keera-hails-reactivevalues, lens }:
+    ({ mkDerivation, base, directory, filepath, hlint, HUnit
+     , keera-hails-reactivevalues, lens, mtl, process, QuickCheck
+     , regex-posix, tasty, tasty-hunit, tasty-quickcheck
+     }:
      mkDerivation {
        pname = "keera-hails-reactivelenses";
-       version = "0.0.1";
-       sha256 = "1c72sc68wqvsxhjr7y16k7iw784swk8wfp2j7xw0y0ggdjlamn0x";
+       version = "0.8.0";
+       sha256 = "093dpcy076inas2v0zh1p2k8a0dpd7g9gfbsk7shrqv1qjh6rjam";
        libraryHaskellDepends = [ base keera-hails-reactivevalues lens ];
+       testHaskellDepends = [
+         base directory filepath hlint HUnit keera-hails-reactivevalues mtl
+         process QuickCheck regex-posix tasty tasty-hunit tasty-quickcheck
+       ];
        description = "Reactive Haskell on Rails - Lenses applied to Reactive Values";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -161801,8 +161894,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactivevalues";
-       version = "0.7.0";
-       sha256 = "1dmsjyvrzh8rdp9kcc8ysar0zw9gaxqh231xaqy17ndfhlmp2nzq";
+       version = "0.8.0";
+       sha256 = "00h5kakpwfif82dhvcbxc5s8m5ypkd5cyk4v7wjcwrj0m1nikqk4";
        libraryHaskellDepends = [ base contravariant ];
        testHaskellDepends = [
          base directory filepath hlint HUnit mtl process QuickCheck
@@ -164682,8 +164775,8 @@ self: {
      }:
      mkDerivation {
        pname = "language-c";
-       version = "0.9.0.2";
-       sha256 = "1iyrhr87vmgmnkzza35j1y3zck8529kwi01pnkl5b54x10z20spf";
+       version = "0.9.1";
+       sha256 = "0g5djsnzzmi1d1ndcmmrmwz4xnv1m3w009d6kx9jz9jxxdk9adcl";
        libraryHaskellDepends = [
          array base bytestring containers deepseq directory filepath mtl
          pretty process
@@ -164878,8 +164971,8 @@ self: {
      }:
      mkDerivation {
        pname = "language-dickinson";
-       version = "1.4.1.2";
-       sha256 = "0z6bri73gprs485pjhwvwd37p9lfqvy15k9ws5p4178m538bxmmq";
+       version = "1.4.2.0";
+       sha256 = "0745idh2qf2xpql360mk66pjfpjw8acj0p3q3hhnkdx7l3dkakl4";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -164929,6 +165022,29 @@ self: {
        license = lib.licenses.gpl3Only;
      }) {};
 
+  "language-docker_11_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, data-default
+     , data-default-class, hspec, hspec-megaparsec, HUnit, megaparsec
+     , prettyprinter, QuickCheck, split, text, time
+     }:
+     mkDerivation {
+       pname = "language-docker";
+       version = "11.0.0";
+       sha256 = "1j8aib6pq7ghmsi3l2p554l8gnapi0jd3qsi8vhdn2mgvw2n1948";
+       libraryHaskellDepends = [
+         base bytestring containers data-default data-default-class
+         megaparsec prettyprinter split text time
+       ];
+       testHaskellDepends = [
+         base bytestring containers data-default data-default-class hspec
+         hspec-megaparsec HUnit megaparsec prettyprinter QuickCheck split
+         text time
+       ];
+       description = "Dockerfile parser, pretty-printer and embedded DSL";
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "language-dockerfile" = callPackage
     ({ mkDerivation, aeson, base, bytestring, directory, filepath, free
      , Glob, hspec, HUnit, mtl, parsec, pretty, process, QuickCheck
@@ -166039,17 +166155,44 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "large-anon" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
+     , ghc, ghc-tcplugin-api, hashable, large-generics, mtl, optics-core
+     , parsec, primitive, QuickCheck, record-dot-preprocessor
+     , record-hasfield, sop-core, syb, tagged, tasty, tasty-hunit
+     , tasty-quickcheck, text, typelet, validation-selective
+     }:
+     mkDerivation {
+       pname = "large-anon";
+       version = "0.1.0.0";
+       sha256 = "15rrqpfd7jmm391lxhz2ag1sa17nw8x3wjqm0f9naidgmyv9x1z2";
+       libraryHaskellDepends = [
+         aeson base containers ghc ghc-tcplugin-api hashable large-generics
+         mtl optics-core primitive record-hasfield sop-core syb tagged
+         typelet
+       ];
+       testHaskellDepends = [
+         aeson aeson-pretty base bytestring large-generics mtl optics-core
+         parsec QuickCheck record-dot-preprocessor record-hasfield sop-core
+         tasty tasty-hunit tasty-quickcheck text typelet
+         validation-selective
+       ];
+       description = "Scalable anonymous records";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "large-generics" = callPackage
     ({ mkDerivation, aeson, base, generic-deriving, generics-sop
-     , microlens, mtl, QuickCheck, sop-core, tasty, tasty-hunit
-     , tasty-quickcheck, vector
+     , microlens, mtl, primitive, QuickCheck, sop-core, tasty
+     , tasty-hunit, tasty-quickcheck
      }:
      mkDerivation {
        pname = "large-generics";
-       version = "0.1.0.0";
-       sha256 = "0i80pzxi7nrk5m0lxhqavw9glhrr5l69g958zyc998rskqyi0mjw";
+       version = "0.2.0.0";
+       sha256 = "0pyydzwybccwaliajzaddgirrffv0sskkyf5zp84rs8kp2yqz9z1";
        libraryHaskellDepends = [
-         aeson base generics-sop sop-core vector
+         aeson base generics-sop primitive sop-core
        ];
        testHaskellDepends = [
          aeson base generic-deriving generics-sop microlens mtl QuickCheck
@@ -166096,17 +166239,17 @@ self: {
 
   "large-records" = callPackage
     ({ mkDerivation, base, containers, generic-deriving, ghc
-     , large-generics, mtl, newtype, record-dot-preprocessor
+     , large-generics, mtl, newtype, primitive, record-dot-preprocessor
      , record-hasfield, syb, tasty, tasty-hunit, template-haskell
-     , transformers, vector
+     , transformers
      }:
      mkDerivation {
        pname = "large-records";
-       version = "0.2.0.0";
-       sha256 = "0vgdrs12xg2d917z24x7i61xv41m1bdkb7vj136l0vf03av65ffm";
+       version = "0.2.1.0";
+       sha256 = "0gmgrkh9fsyy6ww64l4warsilxkxwfzfl43d36d8a5dcgvn49ip2";
        libraryHaskellDepends = [
-         base containers ghc large-generics mtl record-hasfield syb
-         template-haskell transformers vector
+         base containers ghc large-generics mtl primitive record-hasfield
+         syb template-haskell transformers
        ];
        testHaskellDepends = [
          base generic-deriving large-generics mtl newtype
@@ -169907,20 +170050,22 @@ self: {
      }) {};
 
   "lifx-lan" = callPackage
-    ({ mkDerivation, base, binary, bytestring, composition, containers
-     , extra, monad-loops, mtl, network, random, safe, text, time
-     , transformers
+    ({ mkDerivation, ansi-terminal, base, binary, bytestring, colour
+     , composition, containers, extra, monad-loops, mtl, network, random
+     , safe, text, time, transformers
      }:
      mkDerivation {
        pname = "lifx-lan";
-       version = "0.6.2";
-       sha256 = "1lshzfgx0cgjqpxlknbsqwvhkmn2jc30zgyzj7lsr3jqqr41zssn";
+       version = "0.7";
+       sha256 = "00lci0mj75pyrimzcbyq088pg7k6xx1p9pps09l7m3y4dhbnsyyf";
        libraryHaskellDepends = [
-         base binary bytestring composition containers extra monad-loops mtl
-         network random safe text time transformers
+         ansi-terminal base binary bytestring colour composition containers
+         extra monad-loops mtl network random safe text time transformers
        ];
        description = "LIFX LAN API";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "ligature" = callPackage
@@ -170371,6 +170516,36 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "linear-base_0_2_0" = callPackage
+    ({ mkDerivation, base, containers, deepseq, gauge, ghc-prim
+     , hashable, hashtables, hedgehog, inspection-testing
+     , linear-generics, mmorph, MonadRandom, primitive, random
+     , random-shuffle, storable-tuple, tasty, tasty-hedgehog
+     , tasty-inspection-testing, text, transformers
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "linear-base";
+       version = "0.2.0";
+       sha256 = "0s6z21b71pbqjmbz1r2d6xk90a9wbpa4f1dhlia209avhr1wsv26";
+       libraryHaskellDepends = [
+         base containers ghc-prim hashable linear-generics primitive
+         storable-tuple text transformers vector
+       ];
+       testHaskellDepends = [
+         base containers hedgehog inspection-testing linear-generics mmorph
+         storable-tuple tasty tasty-hedgehog tasty-inspection-testing text
+         vector
+       ];
+       benchmarkHaskellDepends = [
+         base deepseq gauge hashable hashtables MonadRandom random
+         random-shuffle unordered-containers vector
+       ];
+       description = "Standard library for linear types";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "linear-circuit" = callPackage
     ({ mkDerivation, base, comfort-array, comfort-graph, containers
      , lapack, netlib-ffi, non-empty, QuickCheck, transformers
@@ -173173,8 +173348,8 @@ self: {
      }:
      mkDerivation {
        pname = "log-base";
-       version = "0.11.0.0";
-       sha256 = "155lzi9x33rhiymfy1271k0dz7c4qm1r48cz6kc7gcwxvrfh8dxi";
+       version = "0.11.1.0";
+       sha256 = "0gq92n2xbvrsaqyf2mjfcdpxrgvv2ls299mijjmm6b0m9qzh3r2y";
        libraryHaskellDepends = [
          aeson aeson-pretty base bytestring deepseq exceptions mmorph
          monad-control mtl semigroups stm text time transformers-base
@@ -173248,8 +173423,8 @@ self: {
      }:
      mkDerivation {
        pname = "log-elasticsearch";
-       version = "0.12.1.1";
-       sha256 = "0jrfrqydbg549d7gh38mq852kzd0nsaaaq6l5bi4ldfpj443kz8a";
+       version = "0.12.2.0";
+       sha256 = "1laj93wiy092ha7w1dmaggpqkyq6y8zc3l1s56h2dv7jrxhfpc7n";
        libraryHaskellDepends = [
          aeson aeson-pretty base base64-bytestring bytestring deepseq
          http-client http-client-tls http-types log-base network-uri
@@ -173269,8 +173444,8 @@ self: {
      }:
      mkDerivation {
        pname = "log-postgres";
-       version = "0.8.0.2";
-       sha256 = "167asvp7a5v8621sbr6r4j25byg18d125gqd2i4jrq57g5f2mivf";
+       version = "0.8.1.0";
+       sha256 = "01j6x59cahsajymzcqjp7miy46azjnarsgs8ymc5blak2wbws2i5";
        libraryHaskellDepends = [
          aeson aeson-pretty base base64-bytestring bytestring deepseq
          hpqtypes http-client lifted-base log-base mtl semigroups split text
@@ -174317,8 +174492,8 @@ self: {
      }:
      mkDerivation {
        pname = "lorentz";
-       version = "0.13.2";
-       sha256 = "1kb611xj1rl8jbx3bibcqdklv8kls3xkis77vix2vdf6y6fhjhfr";
+       version = "0.13.3";
+       sha256 = "158zbmyhia8dcr8fcqg7xqc3xfq6f3i73g7dqbidcysh6c0fwh0p";
        libraryHaskellDepends = [
          aeson-pretty base-noprelude bimap bytestring constraints containers
          cryptonite data-default first-class-families fmt lens morley
@@ -175611,8 +175786,8 @@ self: {
      }:
      mkDerivation {
        pname = "lzma-conduit";
-       version = "1.2.2";
-       sha256 = "1z6q16hzp2r5a4gdbg9akky5l9bfarzzhzswrgvh0v28ax400whb";
+       version = "1.2.3";
+       sha256 = "1pmvmchrg429b2yk485x0066lxcr37cbyczlyp3ala2iaq8hm61z";
        libraryHaskellDepends = [
          base bytestring conduit lzma resourcet transformers
        ];
@@ -182568,8 +182743,8 @@ self: {
      }:
      mkDerivation {
        pname = "miso";
-       version = "1.8.1.0";
-       sha256 = "0p7gh5ibz84fckc7pkh789jwl0ffxz0ixygbxx1w0r0hs22pn4ia";
+       version = "1.8.2.0";
+       sha256 = "1nxyl18lj1dcnn7qhq3xih6mxpvih0rc71nnkk9y19v6dxxv5ld4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -182955,8 +183130,8 @@ self: {
      }:
      mkDerivation {
        pname = "mmark";
-       version = "0.0.7.5";
-       sha256 = "0jh5pbd2f6bqi8rg4q73k7cgbkdc888hjqf99kzcm6k9xllg5770";
+       version = "0.0.7.6";
+       sha256 = "1zahgky724s0x89c9jp4fa6m0kzh461sc2lcpwaw61hqgamaay4c";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base case-insensitive containers deepseq dlist email-validate
@@ -183002,8 +183177,8 @@ self: {
      }:
      mkDerivation {
        pname = "mmark-ext";
-       version = "0.2.1.4";
-       sha256 = "02ygx0kkp69gd2n4bnqjzbwzhs9ksqm148jf6zfgn3z8w1p9glzh";
+       version = "0.2.1.5";
+       sha256 = "1dy3xnzpbbnp03k3r04q8y10pcj2r708dk8bff0pxzkvypm75g88";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base foldl ghc-syntax-highlighter lucid microlens mmark modern-uri
@@ -183553,10 +183728,8 @@ self: {
      }:
      mkDerivation {
        pname = "modern-uri";
-       version = "0.3.4.3";
-       sha256 = "0904ff8pzcbk1swp0s1v5js468qnf3ccyzfcvaa62nsaj4qb7shq";
-       revision = "1";
-       editedCabalFile = "05y666pg4wsv7qpszjpa8d2zqzcmp1gyfkzvgi4nw9n9kmcij8hv";
+       version = "0.3.4.4";
+       sha256 = "19fffy7kb7ibajagdryjy872x56045zi6c1div8wvr8aisd55qsz";
        libraryHaskellDepends = [
          base bytestring containers contravariant deepseq exceptions
          megaparsec mtl profunctors QuickCheck reflection tagged
@@ -184127,15 +184300,15 @@ self: {
      }) {};
 
   "monad-control-identity" = callPackage
-    ({ mkDerivation, base, monad-control, transformers
+    ({ mkDerivation, base, monad-control, stm, transformers
      , transformers-base
      }:
      mkDerivation {
        pname = "monad-control-identity";
-       version = "0.1.0.3";
-       sha256 = "0nxsyhyvp04xr7js2z8mvmh2w2b2fwv5zzkbgjagm6l51pqpam6q";
+       version = "0.2.0.0";
+       sha256 = "1b636vakpqprwfb0cb7fpcsff8adq4frj4g98vv1yaxzi56rjbb1";
        libraryHaskellDepends = [
-         base monad-control transformers transformers-base
+         base monad-control stm transformers transformers-base
        ];
        description = "Stronger classes than monad-control";
        license = lib.licenses.bsd3;
@@ -186297,31 +186470,32 @@ self: {
   "morley" = callPackage
     ({ mkDerivation, aeson, aeson-casing, aeson-pretty, base-noprelude
      , base58-bytestring, binary, bytestring, constraints, containers
-     , crypto-sodium, cryptonite, data-default, elliptic-curve
+     , crypto-sodium, cryptonite, data-default, Diff, elliptic-curve
      , first-class-families, fmt, galois-field, generic-deriving, gitrev
      , haskeline, hex-text, lens, megaparsec, memory, MonadRandom
      , morley-prelude, mtl, named, optparse-applicative, pairing
      , parser-combinators, scientific, semigroups, show-type, singletons
      , syb, template-haskell, text, text-manipulate, th-lift
-     , th-lift-instances, time, timerep, uncaught-exception
-     , unordered-containers, vector, vinyl, with-utf8, wl-pprint-text
+     , th-lift-instances, th-reify-many, time, timerep
+     , uncaught-exception, unordered-containers, vector, vinyl
+     , with-utf8, wl-pprint-text
      }:
      mkDerivation {
        pname = "morley";
-       version = "1.16.2";
-       sha256 = "1b236yp37pahx3njn0cwdbnkr7yj62ckhfsicgm2crb4l6sjkyas";
+       version = "1.16.3";
+       sha256 = "0s0xkmgymcc8s4izyy094qbyfkvv1f95x8iv4bmmwgkqgjjrlqsp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-casing aeson-pretty base-noprelude base58-bytestring
          binary bytestring constraints containers crypto-sodium cryptonite
-         data-default elliptic-curve first-class-families fmt galois-field
-         generic-deriving gitrev hex-text lens megaparsec memory MonadRandom
-         morley-prelude mtl named optparse-applicative pairing
-         parser-combinators scientific semigroups show-type singletons syb
-         template-haskell text text-manipulate th-lift th-lift-instances
-         time timerep uncaught-exception unordered-containers vector vinyl
-         with-utf8 wl-pprint-text
+         data-default Diff elliptic-curve first-class-families fmt
+         galois-field generic-deriving gitrev hex-text lens megaparsec
+         memory MonadRandom morley-prelude mtl named optparse-applicative
+         pairing parser-combinators scientific semigroups show-type
+         singletons syb template-haskell text text-manipulate th-lift
+         th-lift-instances th-reify-many time timerep uncaught-exception
+         unordered-containers vector vinyl with-utf8 wl-pprint-text
        ];
        executableHaskellDepends = [
          aeson base-noprelude base58-bytestring bytestring fmt haskeline
@@ -186342,13 +186516,13 @@ self: {
      , mtl, named, optparse-applicative, process, random
      , safe-exceptions, scientific, servant, servant-client
      , servant-client-core, singletons, syb, tasty, tasty-ant-xml
-     , tasty-discover, tasty-hunit-compat, template-haskell, text
-     , th-reify-many, time, universum, unliftio, vector
+     , tasty-discover, tasty-hunit-compat, text, time, universum
+     , unliftio
      }:
      mkDerivation {
        pname = "morley-client";
-       version = "0.1.0";
-       sha256 = "1xhmksv745dvf8axbihbdn9r9402na381czckab844whkdmnag0y";
+       version = "0.1.1";
+       sha256 = "0zwydp374aynavc0hgx3ab0m951pp4mmxi05gp9006882vndh6c7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -186357,8 +186531,8 @@ self: {
          hex-text http-client http-client-tls http-types lens lorentz
          megaparsec memory morley morley-prelude mtl named
          optparse-applicative process random safe-exceptions scientific
-         servant servant-client servant-client-core singletons syb
-         template-haskell text th-reify-many time universum unliftio vector
+         servant servant-client servant-client-core singletons syb text time
+         universum unliftio
        ];
        executableHaskellDepends = [
          aeson base-noprelude data-default fmt morley morley-prelude
@@ -186368,8 +186542,8 @@ self: {
          aeson base-noprelude bytestring co-log co-log-core containers
          exceptions fmt hex-text hspec-expectations http-types HUnit lens
          lorentz memory morley morley-prelude safe-exceptions
-         servant-client-core singletons syb tasty tasty-ant-xml
-         tasty-hunit-compat template-haskell time
+         servant-client-core singletons tasty tasty-ant-xml
+         tasty-hunit-compat time
        ];
        testToolDepends = [ tasty-discover ];
        description = "Client to interact with the Tezos blockchain";
@@ -186378,14 +186552,20 @@ self: {
      }) {};
 
   "morley-prelude" = callPackage
-    ({ mkDerivation, base-noprelude, int-cast, lens, universum }:
+    ({ mkDerivation, base-noprelude, Cabal, fmt, int-cast, lens
+     , OddWord, template-haskell, time, universum
+     }:
      mkDerivation {
        pname = "morley-prelude";
-       version = "0.5.0";
-       sha256 = "1j78ki07jh31am9i2g43crkajynb39agdk4as7gdkhj3lfrbriz4";
-       libraryHaskellDepends = [ base-noprelude int-cast lens universum ];
+       version = "0.5.1";
+       sha256 = "06sry4i132psr9dcga9wk0c4d9zw581flwhw3mi186gl0k6cfqdi";
+       libraryHaskellDepends = [
+         base-noprelude Cabal fmt int-cast lens OddWord template-haskell
+         time universum
+       ];
        description = "A custom prelude used in Morley";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "morley-upgradeable" = callPackage
@@ -186489,8 +186669,8 @@ self: {
      }:
      mkDerivation {
        pname = "morpheus-graphql";
-       version = "0.19.0";
-       sha256 = "0yfqbpis3385hqm3xlyx0ks2jnrwvkx898g2m2rb3qskaqblfcj9";
+       version = "0.19.3";
+       sha256 = "0vg48x6sb5rg7mzx905qjv026yq4b76kxfyfpakiw3xybqpcdw0w";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring containers morpheus-graphql-app
@@ -186518,8 +186698,8 @@ self: {
      }:
      mkDerivation {
        pname = "morpheus-graphql-app";
-       version = "0.19.0";
-       sha256 = "0k7bl9gs8sdmfi5wdka5rjlp5vjn7py8n8a09rwws7kgqa3lvd0n";
+       version = "0.19.3";
+       sha256 = "0v00xp6hhaxbjp6kl124cj22p57hnqdkg8kksms9cp2h7f88vm3g";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring containers hashable megaparsec
@@ -186566,8 +186746,8 @@ self: {
      }:
      mkDerivation {
        pname = "morpheus-graphql-client";
-       version = "0.19.0";
-       sha256 = "00hgxi8c7alfpvhxwcb7gcxki14vaasmg1qycfnyj7s2715w6i4c";
+       version = "0.19.3";
+       sha256 = "1vfk1rlm2lkra5xfp9zh3f4q70xhb42v4zyfy1xk6x9k2k919pmg";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring morpheus-graphql-code-gen
@@ -186591,8 +186771,8 @@ self: {
      }:
      mkDerivation {
        pname = "morpheus-graphql-code-gen";
-       version = "0.19.0";
-       sha256 = "0avy4imllxlfyfw3fvwb0nzwd03pwdr0s67k3a2gymhqqz3zf37i";
+       version = "0.19.3";
+       sha256 = "0l9g0pnp3vvlpc5kdhgnvwqgid4d25wgr1mnlqc44s350si623qa";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -186617,8 +186797,8 @@ self: {
      }:
      mkDerivation {
        pname = "morpheus-graphql-core";
-       version = "0.19.0";
-       sha256 = "03sr4yy0n5wr53xk1x623d1zj03v6zpsv7csafp5m40kijx0bl2q";
+       version = "0.19.3";
+       sha256 = "0frd7hvy94q4iknih4ph11kgklk5a70yryhmbfhjipv5141ysrns";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring containers hashable megaparsec mtl relude
@@ -186645,8 +186825,8 @@ self: {
      }:
      mkDerivation {
        pname = "morpheus-graphql-subscriptions";
-       version = "0.19.0";
-       sha256 = "179cwrmyj42hzd70qymrg7y5ll6ld5miadhlr0w0mqbfqnbj0lbv";
+       version = "0.19.3";
+       sha256 = "16flpss0b3qvdcwazsfisw8f0dw5z5p4rrxm7bpr2j54dlz98c7n";
        libraryHaskellDepends = [
          aeson base bytestring morpheus-graphql-app morpheus-graphql-core
          mtl relude text transformers unliftio-core unordered-containers
@@ -186678,14 +186858,14 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "morpheus-graphql-tests_0_19_0" = callPackage
+  "morpheus-graphql-tests_0_19_3" = callPackage
     ({ mkDerivation, aeson, base, bytestring, directory, relude, tasty
      , tasty-hunit, text, unordered-containers
      }:
      mkDerivation {
        pname = "morpheus-graphql-tests";
-       version = "0.19.0";
-       sha256 = "1ymwgsdj4gl88rarqjgb0bx05gdanqxwghz8ws2hh5cvn9m9g4sb";
+       version = "0.19.3";
+       sha256 = "1w10l9l0774hjhq8h0bxlqmksd8g350ccdv5ja86j89lb4glnxla";
        libraryHaskellDepends = [
          aeson base bytestring directory relude tasty tasty-hunit text
          unordered-containers
@@ -187619,6 +187799,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A Haskell implementation of MessagePack";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "msgpack-binary" = callPackage
@@ -187760,6 +187941,7 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "A Haskell implementation of MessagePack";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "msgpack-types" = callPackage
@@ -187784,6 +187966,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A Haskell implementation of MessagePack";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "msh" = callPackage
@@ -190750,8 +190934,8 @@ self: {
        pname = "named";
        version = "0.3.0.1";
        sha256 = "0dnp4qbhn6ci2dlp230gpq8c5z26wb2liani1myc598g2b3c2qij";
-       revision = "2";
-       editedCabalFile = "03g6y6viakybmxpv9jnlbhq5yvchwdp2f1cvcdvlm10c5wkl71a1";
+       revision = "3";
+       editedCabalFile = "1rfli2b4asgasvgp7zjvydhxbyd0vx44vr7yck2760wz1crkzhhn";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "Named parameters (keyword arguments) for Haskell";
@@ -192045,8 +192229,8 @@ self: {
      }:
      mkDerivation {
        pname = "net-mqtt-rpc";
-       version = "0.2.0.0";
-       sha256 = "1ql1hjvx41gspjbpr4rldrcn0xj483g2cphvxbb51m4x6n690lkn";
+       version = "0.2.0.1";
+       sha256 = "079029bfzp9srgxz8655kkiwvccc0164hg4dpmg7f22qis0dd8vp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -194586,8 +194770,8 @@ self: {
      }:
      mkDerivation {
        pname = "niv";
-       version = "0.2.19";
-       sha256 = "15smcgr81ryxb3a57b88azz2xsvcq92n0cmjam8v1x8r6j0w0p39";
+       version = "0.2.20";
+       sha256 = "1bspaz1a1vy50336d264b6wv7wrfb4a758ghcv6j437lhinjjbf9";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -195652,8 +195836,8 @@ self: {
     ({ mkDerivation, base, comonad, deepseq, doctest, Glob, safe }:
      mkDerivation {
        pname = "nonempty-zipper";
-       version = "1.0.0.3";
-       sha256 = "1cifrld76j43spf265arwp2sdpkbhrb4ca2fmj4g9mw0nxj4dbqq";
+       version = "1.0.0.4";
+       sha256 = "19r7lxjwiscg5ml7l2bx6sizb2rlbxmv81shqwnf8yjbnmpibmkp";
        libraryHaskellDepends = [ base comonad deepseq safe ];
        testHaskellDepends = [ base comonad deepseq doctest Glob safe ];
        description = "A non-empty comonadic list zipper";
@@ -199654,6 +199838,21 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
+  "opentelemetry_0_8_0" = callPackage
+    ({ mkDerivation, base, bytestring, exceptions, ghc-trace-events
+     , hashable
+     }:
+     mkDerivation {
+       pname = "opentelemetry";
+       version = "0.8.0";
+       sha256 = "05g4jc2cpcj1fa50hvzai4wqczjjb2vyxmxi1hpf26yyfqw1rgz9";
+       libraryHaskellDepends = [
+         base bytestring exceptions ghc-trace-events hashable
+       ];
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "opentelemetry-extra" = callPackage
     ({ mkDerivation, async, base, binary, bytestring, clock, containers
      , directory, exceptions, filepath, generic-arbitrary, ghc-events
@@ -199688,6 +199887,46 @@ self: {
        testToolDepends = [ tasty-discover ];
        benchmarkHaskellDepends = [ base opentelemetry tasty-bench ];
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "opentelemetry-extra_0_8_0" = callPackage
+    ({ mkDerivation, async, base, binary, bytestring, clock, containers
+     , directory, exceptions, filepath, generic-arbitrary, ghc-events
+     , hashable, hashtables, http-client, http-client-tls, http-types
+     , hvega, jsonifier, opentelemetry, process, QuickCheck
+     , quickcheck-instances, random, scientific, splitmix, stm, tasty
+     , tasty-bench, tasty-discover, tasty-hunit, tasty-quickcheck, text
+     , text-show, typed-process, unordered-containers
+     }:
+     mkDerivation {
+       pname = "opentelemetry-extra";
+       version = "0.8.0";
+       sha256 = "1g13a8lmrx38a48xhn4v1rk144l44vil7p7w5acb66dn6q0cc15d";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         async base binary bytestring clock containers directory exceptions
+         filepath ghc-events hashable http-client http-client-tls http-types
+         jsonifier opentelemetry random scientific splitmix stm text
+         text-show unordered-containers
+       ];
+       executableHaskellDepends = [
+         async base bytestring clock containers directory exceptions
+         filepath hashtables http-client http-client-tls hvega opentelemetry
+         process text typed-process
+       ];
+       testHaskellDepends = [
+         base bytestring generic-arbitrary ghc-events hashable opentelemetry
+         QuickCheck quickcheck-instances splitmix tasty tasty-discover
+         tasty-hunit tasty-quickcheck text text-show unordered-containers
+       ];
+       testToolDepends = [ tasty-discover ];
+       benchmarkHaskellDepends = [ base opentelemetry tasty-bench ];
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "opentelemetry-http-client" = callPackage
@@ -199729,6 +199968,34 @@ self: {
          splitmix text typed-process unordered-containers
        ];
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "opentelemetry-lightstep_0_8_0" = callPackage
+    ({ mkDerivation, async, base, bytestring, clock, containers
+     , exceptions, filepath, ghc-events, http-client, http-client-tls
+     , http-types, network, opentelemetry, opentelemetry-extra
+     , scientific, splitmix, stm, text, typed-process
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "opentelemetry-lightstep";
+       version = "0.8.0";
+       sha256 = "0nvfyd2m393szvvsrpfv8f59xx55xk1mr4gv46idwr43mvqxdz84";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         async base bytestring exceptions http-client http-client-tls
+         http-types network opentelemetry opentelemetry-extra scientific stm
+         text unordered-containers
+       ];
+       executableHaskellDepends = [
+         async base bytestring clock containers exceptions filepath
+         ghc-events http-client http-types opentelemetry opentelemetry-extra
+         splitmix text typed-process unordered-containers
+       ];
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "opentelemetry-wai" = callPackage
@@ -199745,6 +200012,21 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
+  "opentelemetry-wai_0_8_0" = callPackage
+    ({ mkDerivation, base, bytestring, http-types, opentelemetry, text
+     , wai
+     }:
+     mkDerivation {
+       pname = "opentelemetry-wai";
+       version = "0.8.0";
+       sha256 = "1k5wglr61zly4afij087vjsrxzxn6vvsk6rcasw0q1si8n2kl4wb";
+       libraryHaskellDepends = [
+         base bytestring http-types opentelemetry text wai
+       ];
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "opentheory" = callPackage
     ({ mkDerivation, base, opentheory-primitive, QuickCheck }:
      mkDerivation {
@@ -200928,6 +201210,8 @@ self: {
        pname = "ordered";
        version = "0.1";
        sha256 = "0s0g5kgzdw7qjsdcddszjclamx9bi0369pkwhh0wncjg68a7mq69";
+       revision = "1";
+       editedCabalFile = "0xh5hdihyfgzywi9g902c7h6wpv055157ivksrw791ja05zs8v61";
        libraryHaskellDepends = [ base ];
        description = "A definition of Posets";
        license = "unknown";
@@ -202534,6 +202818,66 @@ self: {
        maintainers = with lib.maintainers; [ peti ];
      }) {};
 
+  "pandoc_2_18" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, array, attoparsec, base
+     , base64-bytestring, binary, blaze-html, blaze-markup, bytestring
+     , case-insensitive, citeproc, commonmark, commonmark-extensions
+     , commonmark-pandoc, connection, containers, data-default, deepseq
+     , Diff, directory, doclayout, doctemplates, emojis, exceptions
+     , file-embed, filepath, Glob, haddock-library, hslua
+     , hslua-module-doclayout, hslua-module-path, hslua-module-system
+     , hslua-module-text, hslua-module-version, http-client
+     , http-client-tls, http-types, ipynb, jira-wiki-markup, JuicyPixels
+     , lpeg, mtl, network, network-uri, pandoc-lua-marshal, pandoc-types
+     , parsec, pretty, pretty-show, process, random, safe, scientific
+     , SHA, skylighting, skylighting-core, split, syb, tagsoup, tasty
+     , tasty-bench, tasty-golden, tasty-hunit, tasty-lua
+     , tasty-quickcheck, temporary, texmath, text, text-conversions
+     , time, unicode-collation, unicode-transforms, unix, xml
+     , xml-conduit, xml-types, yaml, zip-archive, zlib
+     }:
+     mkDerivation {
+       pname = "pandoc";
+       version = "2.18";
+       sha256 = "02g6da49g60b5v7aj8w82n9yfks37bcaa6ni75hcbvbn3mw59lyl";
+       configureFlags = [ "-fhttps" "-f-trypandoc" ];
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty array attoparsec base base64-bytestring binary
+         blaze-html blaze-markup bytestring case-insensitive citeproc
+         commonmark commonmark-extensions commonmark-pandoc connection
+         containers data-default deepseq directory doclayout doctemplates
+         emojis exceptions file-embed filepath Glob haddock-library hslua
+         hslua-module-doclayout hslua-module-path hslua-module-system
+         hslua-module-text hslua-module-version http-client http-client-tls
+         http-types ipynb jira-wiki-markup JuicyPixels lpeg mtl network
+         network-uri pandoc-lua-marshal pandoc-types parsec pretty
+         pretty-show process random safe scientific SHA skylighting
+         skylighting-core split syb tagsoup temporary texmath text
+         text-conversions time unicode-collation unicode-transforms unix xml
+         xml-conduit xml-types yaml zip-archive zlib
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base bytestring containers Diff directory doctemplates exceptions
+         filepath Glob hslua mtl pandoc-types process tasty tasty-golden
+         tasty-hunit tasty-lua tasty-quickcheck text time xml zip-archive
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring deepseq mtl tasty-bench text
+       ];
+       postInstall = ''
+         mkdir -p $out/share/man/man1
+         mv "man/"*.1 $out/share/man/man1/
+       '';
+       description = "Conversion between markup formats";
+       license = lib.licenses.gpl2Plus;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ peti ];
+     }) {};
+
   "pandoc-citeproc" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring
      , Cabal, containers, data-default, directory, filepath, hs-bibutils
@@ -202971,7 +203315,7 @@ self: {
        license = lib.licenses.gpl2Plus;
      }) {};
 
-  "pandoc-plot_1_5_0" = callPackage
+  "pandoc-plot_1_5_1" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, criterion
      , data-default, directory, filepath, gitrev, hashable, hspec
      , hspec-expectations, lifted-async, lifted-base, mtl
@@ -202981,8 +203325,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-plot";
-       version = "1.5.0";
-       sha256 = "1naq6kfzxghxn6gzkp0697sdmfjdr2hk790d2rrwx72zv66g35vy";
+       version = "1.5.1";
+       sha256 = "0n0kazc43j4q39r9fp3400clbnpm0nsghv07pv16lwdjbl67sv91";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -203088,8 +203432,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-types";
-       version = "1.22.1";
-       sha256 = "0z2j306jsiriwhib0201hsllwyck7qcvqci5c25frwsmknr3mls2";
+       version = "1.22.2";
+       sha256 = "1m5lln26ixzswx6pb1n7iv99w8i9gii6lhg07whg56jl2gvfghk0";
        libraryHaskellDepends = [
          aeson base bytestring containers deepseq ghc-prim QuickCheck syb
          text transformers
@@ -203385,6 +203729,8 @@ self: {
        pname = "pantry";
        version = "0.5.4";
        sha256 = "080j0pw8fmyb05klbi8vy3dpahiw3zxmykvqamvziwrznl1p4b2m";
+       revision = "1";
+       editedCabalFile = "0y1faym7qqcjn2f23sqhxaq83ih3h6nr7ql665k1pw93hi3jdv05";
        libraryHaskellDepends = [
          aeson ansi-terminal base bytestring Cabal casa-client casa-types
          conduit conduit-extra containers cryptonite cryptonite-conduit
@@ -205669,6 +206015,17 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
+  "path-tree" = callPackage
+    ({ mkDerivation, base, containers, relude }:
+     mkDerivation {
+       pname = "path-tree";
+       version = "0.2.0.0";
+       sha256 = "13dknkl5lyvy1hyfgvgav611788bkc5w2hzsvsfg40z7ga87v10q";
+       libraryHaskellDepends = [ base containers relude ];
+       description = "`Data.Tree` for file paths";
+       license = lib.licenses.mit;
+     }) {};
+
   "path-utils" = callPackage
     ({ mkDerivation, base, exceptions, path, split, text }:
      mkDerivation {
@@ -207550,8 +207907,8 @@ self: {
      }:
      mkDerivation {
        pname = "persistent";
-       version = "2.13.3.3";
-       sha256 = "07fhi9mb2ffdw41jy6ypwvv6nwb1kwb21prjc6pqmbdyxp303ij0";
+       version = "2.13.3.4";
+       sha256 = "1hl11iicgvvd8wxs6zgm2lbv593rqywjiay3f45pfzwr7kmd7r3z";
        libraryHaskellDepends = [
          aeson attoparsec base base64-bytestring blaze-html bytestring
          conduit containers fast-logger http-api-data lift-type monad-logger
@@ -209982,6 +210339,8 @@ self: {
        pname = "pinch";
        version = "0.4.1.2";
        sha256 = "0khgx08mpj16lzqkk3xmxf5a6a68fc6x1vfg1r0lgj5lx2dgl89j";
+       revision = "1";
+       editedCabalFile = "1hpcwjgp12kp5hny74xjhrj7dj89pa4gin84b24arqlvmz5w9anq";
        libraryHaskellDepends = [
          array base bytestring cereal containers deepseq ghc-prim hashable
          network semigroups text unordered-containers vector
@@ -211207,8 +211566,8 @@ self: {
      }:
      mkDerivation {
        pname = "pipes-safe";
-       version = "2.3.3";
-       sha256 = "19gp93x5m1bnq240bj3v33pglf9r5gzji39fsjcazji837czghab";
+       version = "2.3.4";
+       sha256 = "1ha0q1dwl52rn59shmk8jhp7grngpiwmp8x4qa9h54flvxkqk12x";
        libraryHaskellDepends = [
          base containers exceptions monad-control mtl pipes primitive
          transformers transformers-base
@@ -214746,6 +215105,18 @@ self: {
        license = "unknown";
      }) {};
 
+  "pos" = callPackage
+    ({ mkDerivation, base, deepseq, tasty, tasty-hunit }:
+     mkDerivation {
+       pname = "pos";
+       version = "0.2.0.0";
+       sha256 = "0c8zbfkbin97b9bavv56m1ym00q7bz9fv4aac45vlg4ns9b9yshv";
+       libraryHaskellDepends = [ base deepseq ];
+       testHaskellDepends = [ base deepseq tasty tasty-hunit ];
+       description = "positive numbers";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "poseidon" = callPackage
     ({ mkDerivation, aeson, async, base, binary, binary-bits
      , bytestring, generics-eot, hspec, postgresql-libpq, QuickCheck
@@ -216355,6 +216726,8 @@ self: {
        benchmarkSystemDepends = [ leveldb snappy ];
        description = "A high performance in memory and LevelDB backend for powerqueue";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) leveldb; inherit (pkgs) snappy;};
 
   "powerqueue-sqs" = callPackage
@@ -217533,6 +217906,23 @@ self: {
        license = lib.licenses.bsd2;
      }) {};
 
+  "prettyprinter-combinators" = callPackage
+    ({ mkDerivation, base, bimap, bytestring, containers, dlist
+     , pretty-show, prettyprinter, syb, template-haskell, text
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "prettyprinter-combinators";
+       version = "0.1.0.1";
+       sha256 = "0plnan8dvxl1y9h5vazszhdrf47862jqbhyx1ibldak19bibp367";
+       libraryHaskellDepends = [
+         base bimap bytestring containers dlist pretty-show prettyprinter
+         syb template-haskell text unordered-containers vector
+       ];
+       description = "Some useful combinators for the prettyprinter package";
+       license = lib.licenses.asl20;
+     }) {};
+
   "prettyprinter-compat-annotated-wl-pprint" = callPackage
     ({ mkDerivation, base, prettyprinter, text }:
      mkDerivation {
@@ -218153,6 +218543,27 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "primus" = callPackage
+    ({ mkDerivation, adjunctions, base, checkers, deepseq, distributive
+     , lens, pos, profunctors, QuickCheck, semigroupoids, tasty
+     , tasty-hunit, tasty-quickcheck, these
+     }:
+     mkDerivation {
+       pname = "primus";
+       version = "0.2.0.0";
+       sha256 = "170lizshqraf2gqawfnahns019lsazmqvqs61yznzfj71xwr763c";
+       libraryHaskellDepends = [
+         adjunctions base deepseq distributive pos profunctors semigroupoids
+         these
+       ];
+       testHaskellDepends = [
+         adjunctions base checkers deepseq distributive lens pos profunctors
+         QuickCheck semigroupoids tasty tasty-hunit tasty-quickcheck these
+       ];
+       description = "nonempty and positive functions";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "pringletons" = callPackage
     ({ mkDerivation, aeson, base, hashable, singletons
      , template-haskell, text, unordered-containers, vector, vinyl
@@ -218738,6 +219149,8 @@ self: {
        testHaskellDepends = [ async base bytestring hspec unix ];
        description = "Ergonomic process launching with extreme flexibility and speed";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "procrastinating-structure" = callPackage
@@ -219895,8 +220308,8 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens";
-       version = "0.7.1.0";
-       sha256 = "0b5wn89d23p87swjbafndrbmklix360amcq5jsl73zaqlh3vy4sy";
+       version = "0.7.1.1";
+       sha256 = "1a2w8bpi18djcfklgkvsla5zbfsncww260kw8a87jdd3l0v6gq7q";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring containers deepseq ghc-prim lens-family parsec
@@ -219915,8 +220328,8 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-arbitrary";
-       version = "0.1.2.10";
-       sha256 = "1dx82fx4q2q58xavkw62ws34vikpg5g6p0w3mpvn0pigwykjnzda";
+       version = "0.1.2.11";
+       sha256 = "1gapsvn72hn8dbfdnrj9xdy7n1ip55sxx1679lpzgyjgq80sgslv";
        libraryHaskellDepends = [
          base bytestring containers lens-family proto-lens QuickCheck text
        ];
@@ -219986,8 +220399,8 @@ self: {
     ({ mkDerivation, base, optparse-applicative, proto-lens, text }:
      mkDerivation {
        pname = "proto-lens-optparse";
-       version = "0.1.1.8";
-       sha256 = "1y5ygqzwyvphxyj6qr5cnknjk06rs6h0xlbwa864p6hjwlayapcn";
+       version = "0.1.1.9";
+       sha256 = "1xg72lnx0r03gg41j8mgd61bil33kxpqd1jdpmgh6jx25km6rw9l";
        libraryHaskellDepends = [
          base optparse-applicative proto-lens text
        ];
@@ -220002,8 +220415,8 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-protobuf-types";
-       version = "0.7.1.0";
-       sha256 = "0yrwif600lr2pmqfninwap348k4xg5mvzx9cqp99gdgkknfb88hn";
+       version = "0.7.1.1";
+       sha256 = "17m7aysj1mdx74r7mk9c1jy3q3nn7cfksdmadaxr0lmdq7iawk2g";
        setupHaskellDepends = [ base Cabal proto-lens-setup ];
        libraryHaskellDepends = [
          base lens-family proto-lens proto-lens-runtime text
@@ -220020,8 +220433,8 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-protoc";
-       version = "0.7.1.0";
-       sha256 = "14lbal80mrwla51h3yax8v1hsd05mh5xyipc051n0jkxdifs1cv5";
+       version = "0.7.1.1";
+       sha256 = "1wl081xckv0pg2h25gb4fyafw03fq5hrm6shc658k8z8pi3jnh8c";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base filepath ];
@@ -220040,8 +220453,8 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-runtime";
-       version = "0.7.0.1";
-       sha256 = "03dxnawrsz22s52qzfwgnzs18r7mdb1jvirsck2g62bh5incg80a";
+       version = "0.7.0.2";
+       sha256 = "1akspkc1vswdk2z8ilqdnpf01a851mrr820j516xxnlwmhql7y3k";
        libraryHaskellDepends = [
          base bytestring containers deepseq filepath lens-family proto-lens
          text vector
@@ -220056,8 +220469,8 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-setup";
-       version = "0.4.0.5";
-       sha256 = "1zl6srfsa4nizrrrbm7b69200w42rfmxmyzdzgb3cl0675ks2r28";
+       version = "0.4.0.6";
+       sha256 = "1jz1d83cbvr7k6igjmjg6z6yl49aci05v8g944whl1j3vkgh4sya";
        libraryHaskellDepends = [
          base bytestring Cabal containers deepseq directory filepath process
          proto-lens-protoc temporary text
@@ -220070,20 +220483,18 @@ self: {
     ({ mkDerivation, aeson, aeson-pretty, attoparsec, base
      , base64-bytestring, binary, bytestring, cereal, containers
      , contravariant, deepseq, doctest, filepath, foldl
-     , generic-arbitrary, hashable, haskell-src
+     , generic-arbitrary, hashable, haskell-src, hedgehog
      , insert-ordered-containers, lens, mtl, neat-interpolation
      , optparse-applicative, optparse-generic, parsec, parsers, pretty
      , pretty-show, proto3-wire, QuickCheck, quickcheck-instances
      , range-set-list, safe, swagger2, system-filepath, tasty
-     , tasty-hunit, tasty-quickcheck, text, time, transformers, turtle
-     , vector
+     , tasty-hedgehog, tasty-hunit, tasty-quickcheck, text, time
+     , transformers, turtle, vector
      }:
      mkDerivation {
        pname = "proto3-suite";
-       version = "0.4.2";
-       sha256 = "015cg6brf6v0h2h2d36hqqr9i69vr30bhc35av55v0d65ya0sczz";
-       revision = "1";
-       editedCabalFile = "1s9mr6y31kbm0f316i7q0w4qgmi0mas23dhbam6i9pshfa0bav0x";
+       version = "0.5.0";
+       sha256 = "09y09y321jflxlrx13b9fm4v3f3k4j475wpp0bilmc4ygq9bxjcm";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -220101,11 +220512,11 @@ self: {
        ];
        testHaskellDepends = [
          aeson attoparsec base base64-bytestring bytestring cereal
-         containers deepseq doctest generic-arbitrary mtl pretty-show
-         proto3-wire QuickCheck swagger2 tasty tasty-hunit tasty-quickcheck
-         text transformers turtle vector
+         containers deepseq doctest generic-arbitrary hedgehog mtl
+         pretty-show proto3-wire QuickCheck swagger2 tasty tasty-hedgehog
+         tasty-hunit tasty-quickcheck text transformers turtle vector
        ];
-       description = "A low level library for writing out data in the Protocol Buffers wire format";
+       description = "A higher-level API to the proto3-wire library";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
      }) {};
@@ -220432,8 +220843,8 @@ self: {
      }:
      mkDerivation {
        pname = "provenience";
-       version = "0.1.2.2";
-       sha256 = "1glilqib6bs1kbb0yyrzqxbsijrcrdm9q3cgmymgacc7kllc616n";
+       version = "0.1.2.3";
+       sha256 = "1pv1xdzxsdgahv1i7nxdm0di7hs36zr57rpkny666myracdh1wvh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -220715,8 +221126,8 @@ self: {
      }:
      mkDerivation {
        pname = "ptera";
-       version = "0.2.0.0";
-       sha256 = "0lf9d2mcigrmn4asr6cjh5hbp1yl048v57a7az8aszhpsz4k8vkp";
+       version = "0.3.0.0";
+       sha256 = "1zbs7h8lvq9m8qw4267kpp3lr5q2yd3v4jsw4ghrgpa6xwhji7z4";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base containers enummapset-th membership ptera-core
@@ -220764,8 +221175,8 @@ self: {
      }:
      mkDerivation {
        pname = "ptera-th";
-       version = "0.2.0.0";
-       sha256 = "15djvwgivi2gxqhq65j3qkfh2w9z07yjh4nrg42ydv6n3ps4s9i8";
+       version = "0.3.0.0";
+       sha256 = "0w5kr7cp0kcxh1cmqb38waxci81i9ccqn42kvhkrkzf35pnkn0m4";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          array base containers enummapset-th ghc-prim membership ptera
@@ -221443,8 +221854,8 @@ self: {
      }:
      mkDerivation {
        pname = "purescript";
-       version = "0.14.7";
-       sha256 = "0a8ia3qk6x6c42kkp00bdsnrpsrypy6i0bpavm844b0ny8dalqlr";
+       version = "0.14.9";
+       sha256 = "13canh915v668ii58y880b6zgzga3qmxxiblljs9qsdpwx1q7yzd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -231450,6 +231861,39 @@ self: {
        maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
+  "req_3_11_0" = callPackage
+    ({ mkDerivation, aeson, authenticate-oauth, base, blaze-builder
+     , bytestring, case-insensitive, connection, exceptions, hspec
+     , hspec-core, hspec-discover, http-api-data, http-client
+     , http-client-tls, http-types, modern-uri, monad-control, mtl
+     , QuickCheck, retry, template-haskell, text, time, transformers
+     , transformers-base, unliftio-core
+     }:
+     mkDerivation {
+       pname = "req";
+       version = "3.11.0";
+       sha256 = "12nfm2pifwv8w4qbadqhraf6vbg9k54wcvnhwk96zvykhbnhpf2g";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson authenticate-oauth base blaze-builder bytestring
+         case-insensitive connection exceptions http-api-data http-client
+         http-client-tls http-types modern-uri monad-control mtl retry
+         template-haskell text time transformers transformers-base
+         unliftio-core
+       ];
+       testHaskellDepends = [
+         aeson base blaze-builder bytestring case-insensitive hspec
+         hspec-core http-api-data http-client http-types modern-uri
+         monad-control mtl QuickCheck retry template-haskell text time
+       ];
+       testToolDepends = [ hspec-discover ];
+       doCheck = false;
+       description = "HTTP client library";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ maralorn ];
+     }) {};
+
   "req-conduit" = callPackage
     ({ mkDerivation, base, bytestring, conduit, conduit-extra, hspec
      , hspec-discover, http-client, req, resourcet, temporary
@@ -234126,6 +234570,8 @@ self: {
        ];
        description = "Implementation of the ROC National ID standard";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "rock" = callPackage
@@ -237690,33 +238136,6 @@ self: {
      }:
      mkDerivation {
        pname = "sbp";
-       version = "4.1.1";
-       sha256 = "18nhbxq2d07a0hnrb3acm1yi8hlyi84wnia2fc6p1lw9nmlrkzbv";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson array base base64-bytestring basic-prelude binary bytestring
-         data-binary-ieee754 lens lens-aeson monad-loops template-haskell
-         text
-       ];
-       executableHaskellDepends = [
-         aeson aeson-pretty base basic-prelude binary-conduit bytestring
-         cmdargs conduit conduit-extra lens resourcet time yaml
-       ];
-       testHaskellDepends = [ base basic-prelude tasty tasty-hunit ];
-       description = "SwiftNav's SBP Library";
-       license = lib.licenses.mit;
-     }) {};
-
-  "sbp_4_1_5" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, array, base
-     , base64-bytestring, basic-prelude, binary, binary-conduit
-     , bytestring, cmdargs, conduit, conduit-extra, data-binary-ieee754
-     , lens, lens-aeson, monad-loops, resourcet, tasty, tasty-hunit
-     , template-haskell, text, time, yaml
-     }:
-     mkDerivation {
-       pname = "sbp";
        version = "4.1.5";
        sha256 = "1f3i50i4mfxi8y5akg3kncgkwx2wflcgsv7rzxccd75bv3ynk45z";
        isLibrary = true;
@@ -237733,7 +238152,6 @@ self: {
        testHaskellDepends = [ base basic-prelude tasty tasty-hunit ];
        description = "SwiftNav's SBP Library";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sbp2udp" = callPackage
@@ -241344,29 +241762,6 @@ self: {
      }:
      mkDerivation {
        pname = "sequence-formats";
-       version = "1.6.3";
-       sha256 = "0ilirvbi5jzqzrpqg2b8v2w0c3pwvgcshvvp821rvcqkfl9wfvj3";
-       libraryHaskellDepends = [
-         attoparsec base bytestring containers errors exceptions foldl
-         lens-family pipes pipes-attoparsec pipes-bytestring pipes-safe
-         transformers vector
-       ];
-       testHaskellDepends = [
-         base bytestring containers foldl hspec pipes pipes-safe tasty
-         tasty-hunit transformers vector
-       ];
-       description = "A package with basic parsing utilities for several Bioinformatic data formats";
-       license = lib.licenses.gpl3Only;
-     }) {};
-
-  "sequence-formats_1_6_6_1" = callPackage
-    ({ mkDerivation, attoparsec, base, bytestring, containers, errors
-     , exceptions, foldl, hspec, lens-family, pipes, pipes-attoparsec
-     , pipes-bytestring, pipes-safe, tasty, tasty-hunit, transformers
-     , vector
-     }:
-     mkDerivation {
-       pname = "sequence-formats";
        version = "1.6.6.1";
        sha256 = "0qylf0nx0g7z3wr95bza5vpmmsd4q3mvp8xsc7g2pwvsdpgxz9c9";
        libraryHaskellDepends = [
@@ -241380,7 +241775,6 @@ self: {
        ];
        description = "A package with basic parsing utilities for several Bioinformatic data formats";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sequenceTools" = callPackage
@@ -251196,6 +251590,24 @@ self: {
        broken = true;
      }) {};
 
+  "snack" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, bytestring-lexing
+     , criterion, string-conversions, text
+     }:
+     mkDerivation {
+       pname = "snack";
+       version = "0.1.0.0";
+       sha256 = "01h49r64mg55ii32gnd7bab4rmgp73r3gks9g35z2qgdacwijwac";
+       libraryHaskellDepends = [ base bytestring bytestring-lexing text ];
+       benchmarkHaskellDepends = [
+         attoparsec base bytestring criterion string-conversions text
+       ];
+       description = "Strict ByteString Parser Combinator";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "snake" = callPackage
     ({ mkDerivation, base, random, split, terminal-size }:
      mkDerivation {
@@ -253170,6 +253582,8 @@ self: {
        ];
        description = "A small websocket backend provider";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "socks" = callPackage
@@ -258592,8 +259006,8 @@ self: {
      }:
      mkDerivation {
        pname = "stooq-api";
-       version = "0.1.0.0";
-       sha256 = "0r4sc0w9ghlvlysj5aycawlhrb9iylczg8nb0kdkw4790nrd5if0";
+       version = "0.2.0.0";
+       sha256 = "1fsfy2ira8bhkzh6bf72p0wvgq970y1nrgkqsbngbq2p8yx5s2ay";
        libraryHaskellDepends = [
          aeson base bytestring lens text time utf8-string vector wreq
        ];
@@ -260426,8 +260840,8 @@ self: {
        pname = "string-interpolate";
        version = "0.3.1.1";
        sha256 = "0hhzvrs9msyqsxwsqqm55lyxf85vhg4vcsszl735zsbs7431av69";
-       revision = "2";
-       editedCabalFile = "1blxy1ld69i8bg2340j0dcrcbdrqqnx5q8v47jda6183jfzwrxr6";
+       revision = "3";
+       editedCabalFile = "0kpk5mwmi7qzvx0hkiq6pwfyid99ic95zmxc36xxfpw4qxfc7024";
        libraryHaskellDepends = [
          base bytestring haskell-src-exts haskell-src-meta split
          template-haskell text text-conversions utf8-string
@@ -261325,8 +261739,8 @@ self: {
      }:
      mkDerivation {
        pname = "stylish-haskell";
-       version = "0.14.0.1";
-       sha256 = "109d7xf0k86c6hgdc0lgn9fvlqg4gag9nrj52z9ajw7s4qi3y3f1";
+       version = "0.14.1.0";
+       sha256 = "1chgkxqbnrgq7w9zzx118igp08h9vfgp150akazmgimy378cadlk";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -263329,14 +263743,14 @@ self: {
      }:
      mkDerivation {
        pname = "sydtest-servant";
-       version = "0.2.0.0";
-       sha256 = "063bjik3yx7wbawdw1x4yw8ba8k83bq2xysczkl3mxqhj4c0ngx9";
+       version = "0.2.0.1";
+       sha256 = "1yclwmcqp6wkcd980ha7a93dz99zc55mcw2z5fwhk3gfwdpdfyfj";
        libraryHaskellDepends = [
          base http-client servant servant-client servant-server sydtest
          sydtest-wai
        ];
        testHaskellDepends = [
-         base servant servant-client servant-server stm sydtest
+         base servant servant-client servant-server stm sydtest sydtest-wai
        ];
        testToolDepends = [ sydtest-discover ];
        description = "A servant companion library for sydtest";
@@ -265733,25 +266147,26 @@ self: {
   "tailwind" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, containers
      , data-default, deriving-aeson, directory, filepath, filepattern
-     , lens, monad-logger, mtl, neat-interpolation, optparse-applicative
-     , parser-combinators, profunctors, relude, safe-exceptions
-     , temporary, text, time, unliftio, which, with-utf8
+     , monad-logger, mtl, neat-interpolation, optics-core, optics-th
+     , optparse-applicative, parser-combinators, profunctors, relude
+     , safe-exceptions, temporary, text, time, unliftio, which
+     , with-utf8
      }:
      mkDerivation {
        pname = "tailwind";
-       version = "0.2.0.0";
-       sha256 = "08m4mkk3fsrzpna3747gc2ln981nd7x17p3kzzvirs7p6js513yh";
+       version = "0.3.0.0";
+       sha256 = "0dklmlwa4mmg43bq7h6na1qlyy6jjkq2xdq1vg3agvcy1y8b2bzs";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson async base bytestring containers data-default deriving-aeson
-         directory filepath filepattern lens monad-logger mtl
-         neat-interpolation profunctors relude safe-exceptions temporary
-         text time unliftio which with-utf8
+         directory filepath filepattern monad-logger mtl neat-interpolation
+         optics-th profunctors relude safe-exceptions temporary text time
+         unliftio which with-utf8
        ];
        executableHaskellDepends = [
-         base data-default filepath filepattern lens monad-logger
-         optparse-applicative parser-combinators relude with-utf8
+         base data-default filepath filepattern monad-logger optics-core
+         optics-th optparse-applicative parser-combinators relude with-utf8
        ];
        description = "Tailwind wrapped in Haskell";
        license = lib.licenses.mit;
@@ -266645,6 +267060,25 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "tasty-hspec_1_1_6" = callPackage
+    ({ mkDerivation, base, hspec, hspec-core, QuickCheck, tasty
+     , tasty-quickcheck, tasty-smallcheck
+     }:
+     mkDerivation {
+       pname = "tasty-hspec";
+       version = "1.1.6";
+       sha256 = "02s82ijs2ringqxsqbm7m3vcy5brmwxa617azxv0v2phi3rdkjvl";
+       revision = "1";
+       editedCabalFile = "0za15rg0szacxq9yfxxjzddr77ai7ng5827a20pj9dr5anjlnajj";
+       libraryHaskellDepends = [
+         base hspec hspec-core QuickCheck tasty tasty-quickcheck
+         tasty-smallcheck
+       ];
+       description = "Hspec support for the Tasty test framework";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "tasty-hspec" = callPackage
     ({ mkDerivation, base, hspec, hspec-core, QuickCheck, tasty
      , tasty-quickcheck, tasty-smallcheck
@@ -267776,19 +268210,17 @@ self: {
      }) {};
 
   "telegram-bot-simple" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, base, blaze-html, bytestring
-     , cookie, cron, dhall, filepath, hashable, http-api-data
-     , http-client, http-client-tls, http-types, monad-control, mtl
-     , optparse-applicative, pretty-show, prettyprinter, profunctors
-     , QuickCheck, random, servant, servant-blaze, servant-client
-     , servant-multipart-api, servant-multipart-client, servant-server
-     , signal, split, stm, template-haskell, text, time, transformers
-     , unordered-containers, uuid, warp
+    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, cron
+     , filepath, hashable, http-api-data, http-client, http-client-tls
+     , monad-control, mtl, pretty-show, profunctors, servant
+     , servant-client, servant-multipart-api, servant-multipart-client
+     , split, stm, template-haskell, text, time, transformers
+     , unordered-containers
      }:
      mkDerivation {
        pname = "telegram-bot-simple";
-       version = "0.4.4";
-       sha256 = "1qlw4qn773rq3dz97ifrd3vp38xas46hmgxp05r1pmbphw1ncyr8";
+       version = "0.4.5";
+       sha256 = "0c2j0dmx6j15c8csmv64zc3m7qnbvnf5aqan7qjc8d5yfzbxr4nr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -267798,15 +268230,6 @@ self: {
          servant-multipart-api servant-multipart-client split stm
          template-haskell text time transformers unordered-containers
        ];
-       executableHaskellDepends = [
-         aeson aeson-pretty base blaze-html bytestring cookie cron dhall
-         filepath hashable http-api-data http-client http-client-tls
-         http-types monad-control mtl optparse-applicative pretty-show
-         prettyprinter profunctors QuickCheck random servant servant-blaze
-         servant-client servant-multipart-api servant-multipart-client
-         servant-server signal split stm template-haskell text time
-         transformers unordered-containers uuid warp
-       ];
        description = "Easy to use library for building Telegram bots";
        license = lib.licenses.bsd3;
      }) {};
@@ -268751,12 +269174,8 @@ self: {
     ({ mkDerivation, base, reactive-banana, termbox }:
      mkDerivation {
        pname = "termbox-banana";
-       version = "0.3.0";
-       sha256 = "07nn1jff33zb80vhzkw48fik5d5w7j7q982ihpsbb6gbqp5azx5s";
-       revision = "1";
-       editedCabalFile = "0k62lbwigk97shxlx5c34d2k81ndims9nc36rlcv34s0iig0lh7d";
-       isLibrary = true;
-       isExecutable = true;
+       version = "0.3.1";
+       sha256 = "0vni6wpdmqmbm7ypckr17qbjwilwilj3bibbmn6lv096n1wn751h";
        libraryHaskellDepends = [ base reactive-banana termbox ];
        description = "reactive-banana + termbox";
        license = lib.licenses.bsd3;
@@ -269834,6 +270253,29 @@ self: {
        license = lib.licenses.gpl2Only;
      }) {};
 
+  "texmath_0_12_5" = callPackage
+    ({ mkDerivation, base, bytestring, containers, directory, filepath
+     , mtl, pandoc-types, parsec, pretty-show, split, syb, tagged, tasty
+     , tasty-golden, text, xml
+     }:
+     mkDerivation {
+       pname = "texmath";
+       version = "0.12.5";
+       sha256 = "16i40va03v04222wn92fz62jri3094mfim6kdqk29335gamn0yk9";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers mtl pandoc-types parsec split syb text xml
+       ];
+       testHaskellDepends = [
+         base bytestring directory filepath pretty-show tagged tasty
+         tasty-golden text xml
+       ];
+       description = "Conversion between math formats";
+       license = lib.licenses.gpl2Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "texrunner" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, directory, filepath
      , HUnit, io-streams, lens, mtl, process, semigroups, temporary
@@ -269967,27 +270409,6 @@ self: {
      }:
      mkDerivation {
        pname = "text-builder";
-       version = "0.6.6.4";
-       sha256 = "1vzz5dkynh15vlmpwrrvswbva06vlbaxs73f4scb0r1q9wvcs3cj";
-       libraryHaskellDepends = [
-         base-prelude bytestring text text-builder-dev
-       ];
-       testHaskellDepends = [
-         QuickCheck quickcheck-instances rerebase tasty tasty-hunit
-         tasty-quickcheck
-       ];
-       benchmarkHaskellDepends = [ criterion rerebase ];
-       description = "An efficient strict text builder";
-       license = lib.licenses.mit;
-     }) {};
-
-  "text-builder_0_6_6_5" = callPackage
-    ({ mkDerivation, base-prelude, bytestring, criterion, QuickCheck
-     , quickcheck-instances, rerebase, tasty, tasty-hunit
-     , tasty-quickcheck, text, text-builder-dev
-     }:
-     mkDerivation {
-       pname = "text-builder";
        version = "0.6.6.5";
        sha256 = "145m3v5fpisz04dwd3pwnak8mvsnc60rw92br4q946kymfifb7kj";
        libraryHaskellDepends = [
@@ -270000,7 +270421,6 @@ self: {
        benchmarkHaskellDepends = [ criterion rerebase ];
        description = "An efficient strict text builder";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "text-builder-dev" = callPackage
@@ -270011,29 +270431,6 @@ self: {
      }:
      mkDerivation {
        pname = "text-builder-dev";
-       version = "0.2";
-       sha256 = "0q1spsc4v28kmfan1gjk44ajlgmbpr2sldrnjfdxvk9ldwbndc1h";
-       libraryHaskellDepends = [
-         base bytestring deferred-folds split text text-conversions tostring
-         transformers
-       ];
-       testHaskellDepends = [
-         QuickCheck quickcheck-instances rerebase tasty tasty-hunit
-         tasty-quickcheck
-       ];
-       benchmarkHaskellDepends = [ criterion rerebase ];
-       description = "Edge of developments for \"text-builder\"";
-       license = lib.licenses.mit;
-     }) {};
-
-  "text-builder-dev_0_2_0_1" = callPackage
-    ({ mkDerivation, base, bytestring, criterion, deferred-folds
-     , QuickCheck, quickcheck-instances, rerebase, split, tasty
-     , tasty-hunit, tasty-quickcheck, text, text-conversions, tostring
-     , transformers
-     }:
-     mkDerivation {
-       pname = "text-builder-dev";
        version = "0.2.0.1";
        sha256 = "196qnqr5pxx6s4dd37pbzfmbml379s1m91pkimkklf8r2jcvf1zn";
        libraryHaskellDepends = [
@@ -270047,7 +270444,6 @@ self: {
        benchmarkHaskellDepends = [ criterion rerebase ];
        description = "Edge of developments for \"text-builder\"";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "text-containers" = callPackage
@@ -271753,15 +272149,13 @@ self: {
      }) {};
 
   "theatre" = callPackage
-    ({ mkDerivation, base, contravariant, semigroups, slave-thread
-     , unagi-chan
-     }:
+    ({ mkDerivation, base, contravariant, slave-thread, unagi-chan }:
      mkDerivation {
        pname = "theatre";
-       version = "1.0.0.1";
-       sha256 = "0vcli8i0vrxv8fzjdyp684fvp7640xmwc3yawz12mfvxcpgrs2xq";
+       version = "1.0.0.2";
+       sha256 = "1iwl4wswhav9d5vnfgwx9w9sms785jwxxc0vx7p5x2kb9hf3d8ac";
        libraryHaskellDepends = [
-         base contravariant semigroups slave-thread unagi-chan
+         base contravariant slave-thread unagi-chan
        ];
        description = "Minimalistic actor library";
        license = lib.licenses.mit;
@@ -277583,6 +277977,8 @@ self: {
        ];
        description = "A very simple triple store";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "triplesec" = callPackage
@@ -279820,6 +280216,17 @@ self: {
        broken = true;
      }) {};
 
+  "type-safe-avl" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "type-safe-avl";
+       version = "1.0.0.0";
+       sha256 = "0xkv97bzmj89q15hm9kzq7zw2b4y522gnyn4fwxwbsc1368n42q7";
+       libraryHaskellDepends = [ base ];
+       description = "Type safe BST and AVL trees";
+       license = lib.licenses.gpl3Only;
+     }) {};
+
   "type-sets" = callPackage
     ({ mkDerivation, base, cmptype }:
      mkDerivation {
@@ -282224,6 +282631,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "union-color" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "union-color";
+       version = "0.1.2.0";
+       sha256 = "1412axanb5nqnxra3559nyid5cyrxasdnpv28xq5fgp7x7ykirj2";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base ];
+       description = "Unify verious color formats";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "union-find" = callPackage
     ({ mkDerivation, base, containers, transformers }:
      mkDerivation {
@@ -282268,8 +282687,8 @@ self: {
      }:
      mkDerivation {
        pname = "unionmount";
-       version = "0.1.0.0";
-       sha256 = "05i7bh8dg8bcm8070hxdh8fc2y0l2v25bvsqmbvnlbrlfcijphg6";
+       version = "0.2.0.0";
+       sha256 = "0hh577kwg6981141g62f4w95lyyhjn3a461sy28822gd3lpwlwlm";
        libraryHaskellDepends = [
          async base bytestring containers data-default directory filepath
          filepattern fsnotify lvar monad-logger mtl relude text time
@@ -282919,33 +283338,6 @@ self: {
      }:
      mkDerivation {
        pname = "universum";
-       version = "1.7.2";
-       sha256 = "1ka7q5vr9xkf8z5mzpkp648mpf8az7b14lnhbvfakg3v5xy3f7gb";
-       revision = "1";
-       editedCabalFile = "17w3zpbv5ap9as506fn43xlnh6sqxni8mmczlp5l86hvn7zd8y6z";
-       libraryHaskellDepends = [
-         base bytestring containers deepseq ghc-prim hashable microlens
-         microlens-mtl mtl safe-exceptions stm text transformers
-         unordered-containers utf8-string vector
-       ];
-       testHaskellDepends = [
-         base bytestring doctest Glob hedgehog tasty tasty-hedgehog text
-       ];
-       benchmarkHaskellDepends = [
-         base containers gauge text unordered-containers
-       ];
-       description = "Custom prelude used in Serokell";
-       license = lib.licenses.mit;
-     }) {};
-
-  "universum_1_7_3" = callPackage
-    ({ mkDerivation, base, bytestring, containers, deepseq, doctest
-     , gauge, ghc-prim, Glob, hashable, hedgehog, microlens
-     , microlens-mtl, mtl, safe-exceptions, stm, tasty, tasty-hedgehog
-     , text, transformers, unordered-containers, utf8-string, vector
-     }:
-     mkDerivation {
-       pname = "universum";
        version = "1.7.3";
        sha256 = "1dhdj72anj3r50idzn45l63zdwkckmbvll65rkwbsn4jj7pd033d";
        libraryHaskellDepends = [
@@ -282961,7 +283353,6 @@ self: {
        ];
        description = "Custom prelude used in Serokell";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "unix_2_7_2_2" = callPackage
@@ -283396,6 +283787,30 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "unordered-containers_0_2_18_0" = callPackage
+    ({ mkDerivation, base, bytestring, ChasingBottoms, containers
+     , deepseq, hashable, hashmap, HUnit, mtl, nothunks, QuickCheck
+     , random, tasty, tasty-bench, tasty-hunit, tasty-quickcheck
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "unordered-containers";
+       version = "0.2.18.0";
+       sha256 = "09cvqdqaqbf0z5i0hbkgn7hkz44plniznj6zimdx0a86i6lhq3b2";
+       libraryHaskellDepends = [ base deepseq hashable template-haskell ];
+       testHaskellDepends = [
+         base ChasingBottoms containers hashable HUnit nothunks QuickCheck
+         random tasty tasty-hunit tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring containers deepseq hashable hashmap mtl random
+         tasty-bench
+       ];
+       description = "Efficient hashing-based container types";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "unordered-containers-rematch" = callPackage
     ({ mkDerivation, base, hashable, hspec, HUnit, rematch
      , unordered-containers
@@ -285011,8 +285426,8 @@ self: {
     ({ mkDerivation, base, ListLike, time, uu-interleaved }:
      mkDerivation {
        pname = "uu-parsinglib";
-       version = "2.9.1.1";
-       sha256 = "0v5vcxfix04hmwc7ajni4xrv0g099pr2j79bqx1n24s1cvimlpyj";
+       version = "2.9.2";
+       sha256 = "1p86hszbvvmgmkcsksb8rdw27989xnjwrwgza9ddippbj6iapm9b";
        libraryHaskellDepends = [ base ListLike time uu-interleaved ];
        description = "Fast, online, error-correcting, monadic, applicative, merging, permuting, interleaving, idiomatic parser combinators";
        license = lib.licenses.mit;
@@ -288605,8 +289020,8 @@ self: {
      }:
      mkDerivation {
        pname = "vulkan";
-       version = "3.16.2";
-       sha256 = "1wawlq1x9nw9g5iynf8mhlv36876skpvfalfpnvdh55hfw4qznzh";
+       version = "3.17";
+       sha256 = "1vq9z2zif300hw49vfy7wbv830nc8wqxyxmzdgd59s4lprp40lrb";
        libraryHaskellDepends = [ base bytestring transformers vector ];
        libraryPkgconfigDepends = [ vulkan ];
        testHaskellDepends = [
@@ -288638,8 +289053,8 @@ self: {
      }:
      mkDerivation {
        pname = "vulkan-utils";
-       version = "0.5.6";
-       sha256 = "1d8nnv31f35k2qn232vx8g3w06vbvik0ih98g7m7lrv0bqi74i12";
+       version = "0.5.7";
+       sha256 = "071pv6bci17ccmwkdxvvc72yb4aakr7lvlq8r9spdfksjmmb4kjx";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base bytestring containers dependent-map dependent-sum extra
@@ -295243,8 +295658,7 @@ self: {
        ];
        description = "Tunneling program over websocket protocol";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = with lib.maintainers; [ gebner ];
      }) {};
 
   "wtk" = callPackage
@@ -298950,8 +299364,8 @@ self: {
      }:
      mkDerivation {
        pname = "yampa-test";
-       version = "0.13.3";
-       sha256 = "08xs3m14rqpgkjghgp2b8ddalzzs50bzf11nd9kgi72xbg451yzi";
+       version = "0.13.4";
+       sha256 = "08gb3z83vxj39fnvb3gyck54r01l0gh62cp9d2yfjhdr214d2lx3";
        libraryHaskellDepends = [
          base normaldistribution QuickCheck Yampa
        ];
@@ -299028,23 +299442,23 @@ self: {
 
   "yapb" = callPackage
     ({ mkDerivation, base, bytestring, deepseq, directory, hashable
-     , hspec, mtl, network, process, regex-tdfa, transformers
+     , hspec, mtl, network, process, regex-tdfa, timeit, transformers
      }:
      mkDerivation {
        pname = "yapb";
-       version = "0.2.1";
-       sha256 = "00xc5q5yp9f76sd227mp11mb62k1yxhczgq30c6sh66cqxrjidwc";
+       version = "0.2.3";
+       sha256 = "14909qgfvz19jqyj64y2mjg4nzrd3kk3zffg53mf6715y49y6npb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring deepseq directory hashable hspec mtl network
-         process regex-tdfa transformers
+         process regex-tdfa timeit transformers
        ];
        executableHaskellDepends = [
-         base deepseq hspec mtl regex-tdfa transformers
+         base deepseq hspec mtl regex-tdfa timeit transformers
        ];
        testHaskellDepends = [
-         base deepseq hspec mtl process transformers
+         base deepseq hspec mtl process timeit transformers
        ];
        description = "Yet Another Parser Builder (YAPB)";
        license = lib.licenses.bsd3;
@@ -300788,8 +301202,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-markdown";
-       version = "0.12.6.12";
-       sha256 = "0ha06wbzdy040wdimqzpw71hvy5z0pg0b4q524lln05gb26wdlsn";
+       version = "0.12.6.13";
+       sha256 = "0wk7pmg0rxb28vkplm3npcrr2mkxaailvvf7scgsggczqslfszq9";
        libraryHaskellDepends = [
          base blaze-html blaze-markup bytestring directory pandoc persistent
          shakespeare text xss-sanitize yesod-core yesod-form
@@ -300842,30 +301256,6 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-page-cursor";
-       version = "2.0.0.9";
-       sha256 = "13wvivls1yqaanvkc9bpbiwx6qxa78ffgivm4qws4fyicqp628ak";
-       libraryHaskellDepends = [
-         aeson base bytestring containers http-link-header network-uri text
-         unliftio yesod-core
-       ];
-       testHaskellDepends = [
-         aeson base bytestring hspec hspec-expectations-lifted
-         http-link-header http-types lens lens-aeson monad-logger mtl
-         persistent persistent-sqlite persistent-template scientific text
-         time unliftio unliftio-core wai-extra yesod yesod-core yesod-test
-       ];
-       license = lib.licenses.mit;
-     }) {};
-
-  "yesod-page-cursor_2_0_0_10" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, hspec
-     , hspec-expectations-lifted, http-link-header, http-types, lens
-     , lens-aeson, monad-logger, mtl, network-uri, persistent
-     , persistent-sqlite, persistent-template, scientific, text, time
-     , unliftio, unliftio-core, wai-extra, yesod, yesod-core, yesod-test
-     }:
-     mkDerivation {
-       pname = "yesod-page-cursor";
        version = "2.0.0.10";
        sha256 = "0ygj3k86lxq59pf5z671kyzgkfvc8csgsg9wb6ds9wy0vym1jd13";
        libraryHaskellDepends = [
@@ -300879,7 +301269,6 @@ self: {
          time unliftio unliftio-core wai-extra yesod yesod-core yesod-test
        ];
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "yesod-paginate" = callPackage
@@ -300922,8 +301311,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-paginator";
-       version = "1.1.1.0";
-       sha256 = "06zbmklxpxlxy422k01phanj5zj940mm67gjn9vnz5lrs798q7cj";
+       version = "1.1.2.1";
+       sha256 = "0d27jh5qizi9ppf7lvvpmmlih80hhgl5znjbknl12r95pkcjjy2r";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -300935,7 +301324,7 @@ self: {
          yesod-test
        ];
        description = "A pagination approach for yesod";
-       license = lib.licenses.bsd3;
+       license = lib.licenses.mit;
      }) {};
 
   "yesod-paypal-rest" = callPackage
@@ -301252,8 +301641,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-routes-flow";
-       version = "3.0.0.1";
-       sha256 = "18pw4m7dbj2j35frpl08r940sibdbwl8mzw3c3jgrzxb5ahj6p1w";
+       version = "3.0.0.2";
+       sha256 = "1gw6a5089j0a1c0aivlznsqld1r8wc6babjcc7c7vzy7wpnc87c9";
        libraryHaskellDepends = [
          attoparsec base classy-prelude containers system-fileio
          system-filepath text yesod-core
@@ -304166,12 +304555,12 @@ self: {
      }:
      mkDerivation {
        pname = "zuul";
-       version = "0.1.0.0";
-       sha256 = "1agacvixl6s3np8jizmy9vbpzhbb0am9hs8qlc5sqvbg98qr8x1v";
+       version = "0.1.1.0";
+       sha256 = "0pwiy690z32c9b5x2x1pmcczby7xwby6z8jsgl25zkrb07yagxz4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base http-client http-client-tls text
+         aeson base containers http-client http-client-tls text
        ];
        executableHaskellDepends = [
          aeson aeson-pretty base containers directory filepath
diff --git a/pkgs/development/haskell-modules/non-hackage-packages.nix b/pkgs/development/haskell-modules/non-hackage-packages.nix
index e06f9d30d2daa..beb81a58d8638 100644
--- a/pkgs/development/haskell-modules/non-hackage-packages.nix
+++ b/pkgs/development/haskell-modules/non-hackage-packages.nix
@@ -30,6 +30,7 @@ self: super: {
   pg-client = self.callPackage ../misc/haskell/hasura/pg-client.nix {};
   graphql-parser = self.callPackage ../misc/haskell/hasura/graphql-parser.nix {};
   graphql-engine = self.callPackage ../misc/haskell/hasura/graphql-engine.nix {};
+  kriti-lang = self.callPackage ../misc/haskell/hasura/kriti-lang.nix {};
   hasura-resource-pool = self.callPackage ../misc/haskell/hasura/pool.nix {};
   hasura-ekg-core = self.callPackage ../misc/haskell/hasura/ekg-core.nix {};
   hasura-ekg-json = self.callPackage ../misc/haskell/hasura/ekg-json.nix {};
diff --git a/pkgs/development/haskell-modules/patches/graphql-engine-mapkeys.patch b/pkgs/development/haskell-modules/patches/graphql-engine-mapkeys.patch
deleted file mode 100644
index 9035185dc2d58..0000000000000
--- a/pkgs/development/haskell-modules/patches/graphql-engine-mapkeys.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff --git a/server/src-lib/Data/HashMap/Strict/Extended.hs b/server/src-lib/Data/HashMap/Strict/Extended.hs
-index eaff0dfba..9902cadd0 100644
---- a/src-lib/Data/HashMap/Strict/Extended.hs
-+++ b/src-lib/Data/HashMap/Strict/Extended.hs
-@@ -7,7 +7,6 @@ module Data.HashMap.Strict.Extended
-   , groupOnNE
-   , differenceOn
-   , lpadZip
--  , mapKeys
-   , unionsWith
-   ) where
- 
-@@ -54,20 +53,6 @@ lpadZip left = catMaybes . flip A.alignWith left \case
-   That    b -> Just (Nothing, b)
-   These a b -> Just (Just a,  b)
- 
---- | @'mapKeys' f s@ is the map obtained by applying @f@ to each key of @s@.
----
---- The size of the result may be smaller if @f@ maps two or more distinct
---- keys to the same new key.  In this case the value at the greatest of the
---- original keys is retained.
----
---- > mapKeys (+ 1) (fromList [(5,"a"), (3,"b")])                        == fromList [(4, "b"), (6, "a")]
---- > mapKeys (\ _ -> 1) (fromList [(1,"b"), (2,"a"), (3,"d"), (4,"c")]) == singleton 1 "c"
---- > mapKeys (\ _ -> 3) (fromList [(1,"b"), (2,"a"), (3,"d"), (4,"c")]) == singleton 3 "c"
----
---- copied from https://hackage.haskell.org/package/containers-0.6.4.1/docs/src/Data.Map.Internal.html#mapKeys
--mapKeys :: (Ord k2, Hashable k2) => (k1 -> k2) -> HashMap k1 a -> HashMap k2 a
--mapKeys f = fromList . foldrWithKey (\k x xs -> (f k, x) : xs) []
--
- -- | The union of a list of maps, with a combining operation:
- --   (@'unionsWith' f == 'Prelude.foldl' ('unionWith' f) 'empty'@).
- --
diff --git a/pkgs/development/haskell-modules/with-packages-wrapper.nix b/pkgs/development/haskell-modules/with-packages-wrapper.nix
index 7c7add61679d3..c478c875540d1 100644
--- a/pkgs/development/haskell-modules/with-packages-wrapper.nix
+++ b/pkgs/development/haskell-modules/with-packages-wrapper.nix
@@ -51,7 +51,7 @@ let
   ghcCommand = "${ghc.targetPrefix}${ghcCommand'}";
   ghcCommandCaps= lib.toUpper ghcCommand';
   libDir        = if isHaLVM then "$out/lib/HaLVM-${ghc.version}"
-                  else "$out/lib/${ghcCommand}-${ghc.version}";
+                  else "$out/lib/${ghc.targetPrefix}${ghc.haskellCompilerName}";
   docDir        = "$out/share/doc/ghc/html";
   packageCfgDir = "${libDir}/package.conf.d";
   paths         = lib.filter (x: x ? isHaskellLibrary) (lib.closePropagation packages);
@@ -121,7 +121,7 @@ symlinkJoin {
 
   '' + (lib.optionalString (stdenv.targetPlatform.isDarwin && !isGhcjs && !stdenv.targetPlatform.isiOS) ''
     # Work around a linker limit in macOS Sierra (see generic-builder.nix):
-    local packageConfDir="$out/lib/${ghc.name}/package.conf.d";
+    local packageConfDir="${packageCfgDir}";
     local dynamicLinksDir="$out/lib/links"
     mkdir -p $dynamicLinksDir
     # Clean up the old links that may have been (transitively) included by
@@ -148,8 +148,8 @@ symlinkJoin {
      # to another nix derivation, so they are not writable.  Removing
      # them allow the correct behavior of ghc-pkg recache
      # See: https://github.com/NixOS/nixpkgs/issues/79441
-     rm $out/lib/${ghc.name}/package.conf.d/package.cache.lock
-     rm $out/lib/${ghc.name}/package.conf.d/package.cache
+     rm ${packageCfgDir}/package.cache.lock
+     rm ${packageCfgDir}/package.cache
 
      $out/bin/${ghcCommand}-pkg recache
      ''}
diff --git a/pkgs/development/interpreters/bats/default.nix b/pkgs/development/interpreters/bats/default.nix
index 3379d1370af11..da12e7a3e65f4 100644
--- a/pkgs/development/interpreters/bats/default.nix
+++ b/pkgs/development/interpreters/bats/default.nix
@@ -1,4 +1,4 @@
-{ resholvePackage
+{ resholve
 , lib
 , stdenv
 , fetchFromGitHub
@@ -10,7 +10,7 @@
 , doInstallCheck ? true
 }:
 
-resholvePackage rec {
+resholve.mkDerivation rec {
   pname = "bats";
   version = "1.6.0";
 
diff --git a/pkgs/development/interpreters/clojure/babashka.nix b/pkgs/development/interpreters/clojure/babashka.nix
index c3dcd0a0f71ff..1f663b5488d2d 100644
--- a/pkgs/development/interpreters/clojure/babashka.nix
+++ b/pkgs/development/interpreters/clojure/babashka.nix
@@ -2,11 +2,11 @@
 
 buildGraalvmNativeImage rec {
   pname = "babashka";
-  version = "0.7.8";
+  version = "0.8.1";
 
   src = fetchurl {
     url = "https://github.com/babashka/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
-    sha256 = "sha256-VbDivl92YYWzIbkbOgDijzf9bZ5ZyodcapPPG4EiGXc=";
+    sha256 = "sha256-9mh3ki6Q0vwlF+j4+UVznIhZ6Xleh7ChklJ5ojjGhYM=";
   };
 
   executable = "bb";
diff --git a/pkgs/development/interpreters/clojure/default.nix b/pkgs/development/interpreters/clojure/default.nix
index cd63e506a55f4..212e453b7a724 100644
--- a/pkgs/development/interpreters/clojure/default.nix
+++ b/pkgs/development/interpreters/clojure/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "clojure";
-  version = "1.11.0.1100";
+  version = "1.11.1.1113";
 
   src = fetchurl {
     # https://clojure.org/releases/tools
     url = "https://download.clojure.org/install/clojure-tools-${version}.tar.gz";
-    sha256 = "sha256-9KEsO32118fvKE1Gls+9nAeRdlhTKfmJylsiSYCoKKU=";
+    sha256 = "sha256-DJVKVqBx8zueA5+KuQX4NypaYBoNFKMuDM8jDqdgaiI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/interpreters/dart/default.nix b/pkgs/development/interpreters/dart/default.nix
index 366b7df3edd44..0891bfd2d8ff0 100644
--- a/pkgs/development/interpreters/dart/default.nix
+++ b/pkgs/development/interpreters/dart/default.nix
@@ -13,6 +13,10 @@
     version = "2.15.1";
   in
   {
+    "${version}-aarch64-darwin" = fetchurl {
+      url = "${base}/stable/release/${version}/sdk/dartsdk-macos-${aarch64}-release.zip";
+      sha256 = "sha256-DDE4DpA2m8wKkUZuQDn4NpXVvtaJ6sIHeKNjk3RbpYE=";
+    };
     "${version}-x86_64-darwin" = fetchurl {
       url = "${base}/stable/release/${version}/sdk/dartsdk-macos-${x86_64}-release.zip";
       sha256 = "sha256-s6bkwh2m5KdRr/WxWXwItO9YaDpp/HI3xjnS2UHmN+I=";
@@ -47,6 +51,7 @@ stdenv.mkDerivation {
     mkdir -p $out
     cp -R * $out/
     echo $libPath
+  '' + lib.optionalString(stdenv.isLinux) ''
     find $out/bin -executable -type f -exec patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) {} \;
   '';
 
@@ -63,7 +68,7 @@ stdenv.mkDerivation {
       with C-style syntax. It offers compilation to JavaScript, interfaces,
       mixins, abstract classes, reified generics, and optional typing.
     '';
-    platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" ];
+    platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
     license = licenses.bsd3;
   };
 }
diff --git a/pkgs/development/interpreters/duktape/default.nix b/pkgs/development/interpreters/duktape/default.nix
index 912fc691dd919..3d52eda7660e0 100644
--- a/pkgs/development/interpreters/duktape/default.nix
+++ b/pkgs/development/interpreters/duktape/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
     downloadPage = "https://duktape.org/download.html";
     license = licenses.mit;
     maintainers = [ maintainers.fgaz ];
+    mainProgram = "duk";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/interpreters/elixir/1.13.nix b/pkgs/development/interpreters/elixir/1.13.nix
index 0e1ddcc19bf0c..452c3c5413ec9 100644
--- a/pkgs/development/interpreters/elixir/1.13.nix
+++ b/pkgs/development/interpreters/elixir/1.13.nix
@@ -3,7 +3,7 @@
 # How to obtain `sha256`:
 # nix-prefetch-url --unpack https://github.com/elixir-lang/elixir/archive/v${version}.tar.gz
 mkDerivation {
-  version = "1.13.3";
-  sha256 = "sha256-xOIGMpjemPi1xLiYmFpQR4FD6PzeFBxSJP4QpNnEUSE=";
+  version = "1.13.4";
+  sha256 = "sha256-xGKq62wzaIfgZN2j808fL3b8ykizQVPuePWzsy2HKfw=";
   minimumOTPVersion = "22";
 }
diff --git a/pkgs/development/interpreters/gnu-apl/default.nix b/pkgs/development/interpreters/gnu-apl/default.nix
index 0f666dd9af5db..836a09961fafa 100644
--- a/pkgs/development/interpreters/gnu-apl/default.nix
+++ b/pkgs/development/interpreters/gnu-apl/default.nix
@@ -11,14 +11,16 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ readline gettext ncurses ];
 
-  # Needed with GCC 8
   NIX_CFLAGS_COMPILE = with lib; toString ((optionals stdenv.cc.isGNU [
+    # Needed with GCC 8
     "-Wno-error=int-in-bool-context"
     "-Wno-error=class-memaccess"
     "-Wno-error=restrict"
     "-Wno-error=format-truncation"
     # Needed with GCC 10
     "-Wno-error=maybe-uninitialized"
+    # Needed with GCC 11
+    "-Wno-error=misleading-indentation"
    ]) ++ optional stdenv.cc.isClang "-Wno-error=null-dereference");
 
   patchPhase = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/interpreters/janet/default.nix b/pkgs/development/interpreters/janet/default.nix
index 4601faafb06d3..098a7fe7d3a10 100644
--- a/pkgs/development/interpreters/janet/default.nix
+++ b/pkgs/development/interpreters/janet/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "janet";
-  version = "1.21.1";
+  version = "1.21.2";
 
   src = fetchFromGitHub {
     owner = "janet-lang";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-wJwlGliXoj0XmC9qb6SCo8mUy4aqHvJtFiigUB7PFLE=";
+    sha256 = "sha256-6E726+DLs1hCUbr2/rqIdSn8u94LLFdKBBHkbB4rgm0=";
   };
 
   # This release fails the test suite on darwin, remove when debugged.
diff --git a/pkgs/development/interpreters/joker/default.nix b/pkgs/development/interpreters/joker/default.nix
index 141bda75fa884..ae408f5fec5e0 100644
--- a/pkgs/development/interpreters/joker/default.nix
+++ b/pkgs/development/interpreters/joker/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "joker";
-  version = "0.18.0";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "candid82";
     repo = "joker";
-    sha256 = "sha256-Iia4sl8lRTpek5aZvQW/yy+TnMq5KNJH+pBnksqL/G0=";
+    sha256 = "sha256-SlkhxALJwrZ/DOuBbqjb+wHEfT5mhd3lSD6E0geFP4Y=";
   };
 
   vendorSha256 = "sha256-AYoespfzFLP/jIIxbw5K653wc7sSfLY8K7di8GZ64wA=";
diff --git a/pkgs/development/interpreters/lolcode/default.nix b/pkgs/development/interpreters/lolcode/default.nix
index 0bb95ed6ea52f..23a77596e1d9d 100644
--- a/pkgs/development/interpreters/lolcode/default.nix
+++ b/pkgs/development/interpreters/lolcode/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl3;
     maintainers = [ maintainers.AndersonTorres ];
+    mainProgram = "lolcode-lci";
     platforms = lib.platforms.unix;
   };
 
diff --git a/pkgs/development/interpreters/luajit/2.0.nix b/pkgs/development/interpreters/luajit/2.0.nix
index 5516bf002cd96..f2fc16963cadb 100644
--- a/pkgs/development/interpreters/luajit/2.0.nix
+++ b/pkgs/development/interpreters/luajit/2.0.nix
@@ -1,10 +1,10 @@
 { self, callPackage, lib }:
 callPackage ./default.nix {
   inherit self;
-  version = "2.0.5-2021-10-02";
-  rev = "d3294fa63b344173db68dd612c6d3801631e28d4";
+  version = "2.0.5-2022-03-13";
+  rev = "93a65d3cc263aef2d2feb3d7ff2206aca3bee17e";
   isStable = true;
-  sha256 = "0ja6x7bv3iqnf6m8xk6qp1dgan2b7mys0ff86dw671fqqrfw28fn";
+  hash = "sha256-Gp7OdfxBGkW59zxWUml2ugPABLUv2SezMiDblA/FZ7g=";
   extraMeta = { # this isn't precise but it at least stops the useless Hydra build
     platforms = with lib; filter (p: !hasPrefix "aarch64-" p)
       (platforms.linux ++ platforms.darwin);
diff --git a/pkgs/development/interpreters/luajit/2.1.nix b/pkgs/development/interpreters/luajit/2.1.nix
index 4898999281d0e..507bc40fcf6a4 100644
--- a/pkgs/development/interpreters/luajit/2.1.nix
+++ b/pkgs/development/interpreters/luajit/2.1.nix
@@ -1,8 +1,8 @@
 { self, callPackage }:
 callPackage ./default.nix {
   inherit self;
-  version = "2.1.0-2021-10-27";
-  rev = "b4b2dce9fc3ffaaaede39b36d06415311e2aa516";
+  version = "2.1.0-2022-04-05";
+  rev = "5e3c45c43bb0e0f1f2917d432e9d2dba12c42a6e";
   isStable = false;
-  sha256 = "185s071aa0yffz8npgdxj7l98cs987vddb2l5pzfcdqfj41gn55q";
+  hash = "sha256-Q+34hJDgyCqmtThHbxR16Nn7zhq4Ql142No2rO57HL0=";
 }
diff --git a/pkgs/development/interpreters/luajit/default.nix b/pkgs/development/interpreters/luajit/default.nix
index 4e2931aa76885..480e34244134f 100644
--- a/pkgs/development/interpreters/luajit/default.nix
+++ b/pkgs/development/interpreters/luajit/default.nix
@@ -4,7 +4,7 @@
 , buildPackages
 , name ? "luajit-${version}"
 , isStable
-, sha256
+, hash
 , rev
 , version
 , extraMeta ? { }
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "LuaJIT";
     repo = "LuaJIT";
-    inherit sha256 rev;
+    inherit hash rev;
   };
 
   luaversion = "5.1";
diff --git a/pkgs/development/interpreters/maude/default.nix b/pkgs/development/interpreters/maude/default.nix
index 860f9ac3a5eb1..30055dc7a3dd6 100644
--- a/pkgs/development/interpreters/maude/default.nix
+++ b/pkgs/development/interpreters/maude/default.nix
@@ -30,6 +30,10 @@ stdenv.mkDerivation {
   hardeningDisable = [ "stackprotector" ] ++
     lib.optionals stdenv.isi686 [ "pic" "fortify" ];
 
+  # Fix for glibc-2.34, see
+  # https://gitweb.gentoo.org/repo/gentoo.git/commit/dev-lang/maude/maude-3.1-r1.ebuild?id=f021cc6cfa1e35eb9c59955830f1fd89bfcb26b4
+  configureFlags = [ "--without-libsigsegv" ];
+
   preConfigure = ''
     configureFlagsArray=(
       --datadir="$out/share/maude"
diff --git a/pkgs/development/interpreters/nickel/default.nix b/pkgs/development/interpreters/nickel/default.nix
new file mode 100644
index 0000000000000..7a097391ba5d5
--- /dev/null
+++ b/pkgs/development/interpreters/nickel/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nickel";
+  version = "0.1.0";
+
+  src  = fetchFromGitHub {
+    owner = "tweag";
+    repo = pname;
+    rev = "refs/tags/${version}"; # because pure ${version} doesn't work
+    hash = "sha256-St8oK9vP2cAhsNindkebtAMeRPwYggP9E4CciSZc7oA=";
+  };
+
+  cargoSha256 = "sha256-VsyK/api8acIpADpXQ8RdbRLiZwHFSDH0vwQrZQ8zp4=";
+
+  meta = with lib; {
+    homepage = "https://nickel-lang.org/";
+    description = "Better configuration for less";
+    longDescription = ''
+      Nickel is the cheap configuration language.
+
+      Its purpose is to automate the generation of static configuration files -
+      think JSON, YAML, XML, or your favorite data representation language -
+      that are then fed to another system. It is designed to have a simple,
+      well-understood core: it is in essence JSON with functions.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/pkgs/development/interpreters/octave/default.nix b/pkgs/development/interpreters/octave/default.nix
index 1bd78a8a2d4e4..2fcdab95509e7 100644
--- a/pkgs/development/interpreters/octave/default.nix
+++ b/pkgs/development/interpreters/octave/default.nix
@@ -58,9 +58,6 @@
 , qtscript ? null
 , qscintilla ? null
 , qttools ? null
-# - JIT compiler for loops:
-, enableJIT ? false
-, llvm ? null
 , libiconv
 , darwin
 }:
@@ -114,12 +111,12 @@ let
   };
 
   self = mkDerivation rec {
-    version = "6.4.0";
+    version = "7.1.0";
     pname = "octave";
 
     src = fetchurl {
       url = "mirror://gnu/octave/${pname}-${version}.tar.gz";
-      sha256 = "sha256-tI8z1Pzq85TPvqc6jIUAAJNtg6QXOaJPdWi1sKezms0=";
+      sha256 = "sha256-1KnYHz9ntKbgfLeoDcsQrV6RdvzDB2LHCoFYCmS4sLY=";
     };
 
     buildInputs = [
@@ -173,7 +170,6 @@ let
       texinfo
     ]
     ++ lib.optionals (sundials != null) [ sundials ]
-    ++ lib.optionals enableJIT [ llvm ]
     ++ lib.optionals enableQt [
       qtscript
       qttools
@@ -199,7 +195,6 @@ let
     ++ lib.optionals enableReadline [ "--enable-readline" ]
     ++ lib.optionals stdenv.isDarwin [ "--with-x=no" ]
     ++ lib.optionals enableQt [ "--with-qt=5" ]
-    ++ lib.optionals enableJIT [ "--enable-jit" ]
     ;
 
     # Keep a copy of the octave tests detailed results in the output
@@ -220,7 +215,7 @@ let
       inherit portaudio;
       inherit jdk;
       inherit python;
-      inherit enableQt enableJIT enableReadline enableJava;
+      inherit enableQt enableReadline enableJava;
       buildEnv = callPackage ./build-env.nix {
         octave = self;
         inherit octavePackages wrapOctave;
@@ -236,8 +231,6 @@ let
       license = lib.licenses.gpl3Plus;
       maintainers = with lib.maintainers; [ raskin doronbehar ];
       description = "Scientific Programming Language";
-      # https://savannah.gnu.org/bugs/?func=detailitem&item_id=56425 is the best attempt to fix JIT
-      broken = enableJIT;
       platforms = if overridePlatforms == null then
         (lib.platforms.linux ++ lib.platforms.darwin)
       else overridePlatforms;
diff --git a/pkgs/development/interpreters/perl/default.nix b/pkgs/development/interpreters/perl/default.nix
index 54769a03b7b6f..9c3c34c73aad1 100644
--- a/pkgs/development/interpreters/perl/default.nix
+++ b/pkgs/development/interpreters/perl/default.nix
@@ -1,6 +1,7 @@
-{ config, lib, stdenv, fetchurl, fetchpatch, fetchFromGitHub, pkgs, buildPackages
+{ config, lib, stdenv, fetchurl, fetchFromGitHub, pkgs, buildPackages
 , callPackage
 , enableThreading ? true, coreutils, makeWrapper
+, zlib
 }:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
@@ -19,11 +20,10 @@ let
 
   common = { perl, buildPerl, version, sha256 }: stdenv.mkDerivation (rec {
     inherit version;
-
-    name = "perl-${version}";
+    pname = "perl";
 
     src = fetchurl {
-      url = "mirror://cpan/src/5.0/${name}.tar.gz";
+      url = "mirror://cpan/src/5.0/perl-${version}.tar.gz";
       inherit sha256;
     };
 
@@ -41,14 +41,7 @@ let
       ]
       ++ optional stdenv.isSunOS ./ld-shared.patch
       ++ optionals stdenv.isDarwin [ ./cpp-precomp.patch ./sw_vers.patch ]
-      ++ optionals crossCompiling [
-        ./MakeMaker-cross.patch
-        # https://github.com/arsv/perl-cross/pull/120
-        (fetchpatch {
-          url = "https://github.com/arsv/perl-cross/commit/3c318ae6572f8b36cb077c8b49c851e2f5fe181e.patch";
-          sha256 = "0cmcy8bams3c68f6xadl52z2w378wcpdjzi3qi4pcyvcfs011l6g";
-        })
-      ];
+      ++ optional crossCompiling ./MakeMaker-cross.patch;
 
     # This is not done for native builds because pwd may need to come from
     # bootstrap tools when building bootstrap perl.
@@ -116,6 +109,16 @@ let
         cf_by="nixpkgs"
         cf_time="$(date -d "@$SOURCE_DATE_EPOCH")"
         EOF
+
+        # Compress::Raw::Zlib should use our zlib package instead of the one
+        # included with the distribution
+        cat > ./cpan/Compress-Raw-Zlib/config.in <<EOF
+        BUILD_ZLIB   = False
+        INCLUDE      = ${zlib.dev}/include
+        LIB          = ${zlib.out}/lib
+        OLD_ZLIB     = False
+        GZIP_OS_CODE = AUTO_DETECT
+        EOF
       '' + optionalString stdenv.isDarwin ''
         substituteInPlace hints/darwin.sh --replace "env MACOSX_DEPLOYMENT_TARGET=10.3" ""
       '' + optionalString (!enableThreading) ''
@@ -194,14 +197,14 @@ let
       priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl`
     };
   } // optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec {
-    crossVersion = "393821c7cf53774233aaf130ff2c8ccec701b0a9"; # Sep 22, 2021
+    crossVersion = "1.3.7"; # Mar 15, 2022
 
     perl-cross-src = fetchFromGitHub {
       name = "perl-cross-${crossVersion}";
       owner = "arsv";
       repo = "perl-cross";
       rev = crossVersion;
-      sha256 = "1fn35b1773aibi2z54m0mar7114737mvfyp81wkdwhakrmzr5nv1";
+      sha256 = "sha256-F7Vi3RAgIE/3NPlbD5zQ3Q8Ex9ddXTC4zoCRaOxXK0A=";
     };
 
     depsBuildBuild = [ buildPackages.stdenv.cc makeWrapper ];
@@ -230,15 +233,15 @@ in {
   perl534 = common {
     perl = pkgs.perl534;
     buildPerl = buildPackages.perl534;
-    version = "5.34.0";
-    sha256 = "16mywn5afpv1mczv9dlc1w84rbgjgrr0pyr4c0hhb2wnif0zq7jm";
+    version = "5.34.1";
+    sha256 = "sha256-NXlRpJGwuhzjYRJjki/ux4zNWB3dwkpEawM+JazyQqE=";
   };
 
   # the latest Devel version
   perldevel = common {
     perl = pkgs.perldevel;
     buildPerl = buildPackages.perldevel;
-    version = "5.35.4";
-    sha256 = "1ss2r0qq5li6d2qghfv1iah5nl6nraymd7b7ib1iy1395rwyhl4q";
+    version = "5.35.9";
+    sha256 = "sha256-/nmSCIIXHXoC68DxFM9b5GM2AKU4WlLbfWLgduanL7U=";
   };
 }
diff --git a/pkgs/development/interpreters/php/7.4.nix b/pkgs/development/interpreters/php/7.4.nix
index 4bd00811b5fb5..823002978785d 100644
--- a/pkgs/development/interpreters/php/7.4.nix
+++ b/pkgs/development/interpreters/php/7.4.nix
@@ -2,8 +2,8 @@
 
 let
   base = callPackage ./generic.nix (_args // {
-    version = "7.4.28";
-    sha256 = "sha256-IIUIaoY0RLDjlUfeGklp/RxAoMGI61j6spOLZJsMS1g=";
+    version = "7.4.29";
+    sha256 = "sha256-fd5YoCsiXCUTDG4q4su6clS7A0D3/hcpFHgXbYZvlII=";
   });
 
 in
diff --git a/pkgs/development/interpreters/php/8.0.nix b/pkgs/development/interpreters/php/8.0.nix
index 3332c9d5a420c..1a3cb77bab11e 100644
--- a/pkgs/development/interpreters/php/8.0.nix
+++ b/pkgs/development/interpreters/php/8.0.nix
@@ -2,8 +2,8 @@
 
 let
   base = callPackage ./generic.nix (_args // {
-    version = "8.0.17";
-    sha256 = "52811ee2dde71660ca32737a4ac696c24591eb22e846dd8e09ee77122660283f";
+    version = "8.0.18";
+    sha256 = "sha256-gm7jSIGhw0lnjU98xV/5FB+hQRNE5LuPldD5IjvOtVo=";
   });
 
 in
diff --git a/pkgs/development/interpreters/php/8.1.nix b/pkgs/development/interpreters/php/8.1.nix
index aa98204b9979c..5c94f168866ce 100644
--- a/pkgs/development/interpreters/php/8.1.nix
+++ b/pkgs/development/interpreters/php/8.1.nix
@@ -2,8 +2,8 @@
 
 let
   base = callPackage ./generic.nix (_args // {
-    version = "8.1.4";
-    sha256 = "b3f688cb69758523838b8e7f509aaef0152133d9b84a84a0b7cf68eeafc1df76";
+    version = "8.1.5";
+    sha256 = "sha256-gn3lZ3HDq4MToGmBLxX27EmYnVEK69Dc4YCDnG2Nb/M=";
   });
 
 in
diff --git a/pkgs/development/interpreters/php/generic.nix b/pkgs/development/interpreters/php/generic.nix
index bf2ff11158ecb..7c0994d15b645 100644
--- a/pkgs/development/interpreters/php/generic.nix
+++ b/pkgs/development/interpreters/php/generic.nix
@@ -176,6 +176,10 @@ let
               if test -e $out/bin/phpdbg; then
                 wrapProgram $out/bin/phpdbg --set PHP_INI_SCAN_DIR $out/lib
               fi
+
+              if test -e $out/bin/php-cgi; then
+                wrapProgram $out/bin/php-cgi --set PHP_INI_SCAN_DIR $out/lib
+              fi
             '';
           };
         in
@@ -268,7 +272,7 @@ let
               export EXTENSION_DIR=$out/lib/php/extensions
             ''
             # PKG_CONFIG need not be a relative path
-            + lib.optionalString (!lib.versionAtLeast version "7.4") ''
+            + lib.optionalString (lib.versionOlder version "7.4") ''
               for i in $(find . -type f -name "*.m4"); do
                 substituteInPlace $i \
                   --replace 'test -x "$PKG_CONFIG"' 'type -P "$PKG_CONFIG" >/dev/null'
diff --git a/pkgs/development/interpreters/python/cpython/3.11/python-3.x-distutils-C++.patch b/pkgs/development/interpreters/python/cpython/3.11/python-3.x-distutils-C++.patch
new file mode 100644
index 0000000000000..335e06b93c397
--- /dev/null
+++ b/pkgs/development/interpreters/python/cpython/3.11/python-3.x-distutils-C++.patch
@@ -0,0 +1,257 @@
+diff --git a/Lib/_osx_support.py b/Lib/_osx_support.py
+index aa66c8b9f4..71e6556bac 100644
+--- a/Lib/_osx_support.py
++++ b/Lib/_osx_support.py
+@@ -14,13 +14,13 @@
+ # configuration variables that may contain universal build flags,
+ # like "-arch" or "-isdkroot", that may need customization for
+ # the user environment
+-_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS',
+-                            'BLDSHARED', 'LDSHARED', 'CC', 'CXX',
+-                            'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS',
+-                            'PY_CORE_CFLAGS', 'PY_CORE_LDFLAGS')
++_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS',
++                          'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED',
++                          'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS',
++                          'PY_CPPFLAGS', 'PY_CORE_LDFLAGS', 'PY_CORE_CFLAGS')
+ 
+ # configuration variables that may contain compiler calls
+-_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX')
++_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX')
+ 
+ # prefix added to original configuration variable names
+ _INITPRE = '_OSX_SUPPORT_INITIAL_'
+diff --git a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py
+index 66c12dd358..dddb9fd2d4 100644
+--- a/Lib/distutils/cygwinccompiler.py
++++ b/Lib/distutils/cygwinccompiler.py
+@@ -123,8 +123,10 @@ def __init__(self, verbose=0, dry_run=0, force=0):
+         # dllwrap 2.10.90 is buggy
+         if self.ld_version >= "2.10.90":
+             self.linker_dll = "gcc"
++            self.linker_dll_cxx = "g++"
+         else:
+             self.linker_dll = "dllwrap"
++            self.linker_dll_cxx = "dllwrap"
+ 
+         # ld_version >= "2.13" support -shared so use it instead of
+         # -mdll -static
+@@ -138,9 +140,13 @@ def __init__(self, verbose=0, dry_run=0, force=0):
+         self.set_executables(compiler='gcc -mcygwin -O -Wall',
+                              compiler_so='gcc -mcygwin -mdll -O -Wall',
+                              compiler_cxx='g++ -mcygwin -O -Wall',
++                             compiler_so_cxx='g++ -mcygwin -mdll -O -Wall',
+                              linker_exe='gcc -mcygwin',
+                              linker_so=('%s -mcygwin %s' %
+-                                        (self.linker_dll, shared_option)))
++                                        (self.linker_dll, shared_option)),
++                             linker_exe_cxx='g++ -mcygwin',
++                             linker_so_cxx=('%s -mcygwin %s' %
++                                            (self.linker_dll_cxx, shared_option)))
+ 
+         # cygwin and mingw32 need different sets of libraries
+         if self.gcc_version == "2.91.57":
+@@ -164,8 +170,12 @@ def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
+                 raise CompileError(msg)
+         else: # for other files use the C-compiler
+             try:
+-                self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
+-                           extra_postargs)
++                if self.detect_language(src) == 'c++':
++                    self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
++                               extra_postargs)
++                else:
++                    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
++                               extra_postargs)
+             except DistutilsExecError as msg:
+                 raise CompileError(msg)
+ 
+@@ -300,9 +310,14 @@ def __init__(self, verbose=0, dry_run=0, force=0):
+         self.set_executables(compiler='gcc -O -Wall',
+                              compiler_so='gcc -mdll -O -Wall',
+                              compiler_cxx='g++ -O -Wall',
++                             compiler_so_cxx='g++ -mdll -O -Wall',
+                              linker_exe='gcc',
+                              linker_so='%s %s %s'
+                                         % (self.linker_dll, shared_option,
++                                           entry_point),
++                             linker_exe_cxx='g++',
++                             linker_so_cxx='%s %s %s'
++                                        % (self.linker_dll_cxx, shared_option,
+                                            entry_point))
+         # Maybe we should also append -mthreads, but then the finished
+         # dlls need another dll (mingwm10.dll see Mingw32 docs)
+diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
+index 3414a761e7..f1af560cc1 100644
+--- a/Lib/distutils/sysconfig.py
++++ b/Lib/distutils/sysconfig.py
+@@ -216,9 +216,11 @@ def customize_compiler(compiler):
+                 _osx_support.customize_compiler(_config_vars)
+                 _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
+ 
+-        (cc, cxx, cflags, ccshared, ldshared, shlib_suffix, ar, ar_flags) = \
+-            get_config_vars('CC', 'CXX', 'CFLAGS',
+-                            'CCSHARED', 'LDSHARED', 'SHLIB_SUFFIX', 'AR', 'ARFLAGS')
++        (cc, cxx, cflags, ccshared, ldshared, ldcxxshared, shlib_suffix, ar, ar_flags) = \
++            get_config_vars('CC', 'CXX', 'CFLAGS', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
++                            'SHLIB_SUFFIX', 'AR', 'ARFLAGS')
++
++        cxxflags = cflags
+ 
+         if 'CC' in os.environ:
+             newcc = os.environ['CC']
+@@ -233,19 +235,27 @@ def customize_compiler(compiler):
+             cxx = os.environ['CXX']
+         if 'LDSHARED' in os.environ:
+             ldshared = os.environ['LDSHARED']
++        if 'LDCXXSHARED' in os.environ:
++            ldcxxshared = os.environ['LDCXXSHARED']
+         if 'CPP' in os.environ:
+             cpp = os.environ['CPP']
+         else:
+             cpp = cc + " -E"           # not always
+         if 'LDFLAGS' in os.environ:
+             ldshared = ldshared + ' ' + os.environ['LDFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
+         if 'CFLAGS' in os.environ:
+-            cflags = cflags + ' ' + os.environ['CFLAGS']
++            cflags = os.environ['CFLAGS']
+             ldshared = ldshared + ' ' + os.environ['CFLAGS']
++        if 'CXXFLAGS' in os.environ:
++            cxxflags = os.environ['CXXFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
+         if 'CPPFLAGS' in os.environ:
+             cpp = cpp + ' ' + os.environ['CPPFLAGS']
+             cflags = cflags + ' ' + os.environ['CPPFLAGS']
++            cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
+             ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
+         if 'AR' in os.environ:
+             ar = os.environ['AR']
+         if 'ARFLAGS' in os.environ:
+@@ -254,13 +264,17 @@ def customize_compiler(compiler):
+             archiver = ar + ' ' + ar_flags
+ 
+         cc_cmd = cc + ' ' + cflags
++        cxx_cmd = cxx + ' ' + cxxflags
+         compiler.set_executables(
+             preprocessor=cpp,
+             compiler=cc_cmd,
+             compiler_so=cc_cmd + ' ' + ccshared,
+-            compiler_cxx=cxx,
++            compiler_cxx=cxx_cmd,
++            compiler_so_cxx=cxx_cmd + ' ' + ccshared,
+             linker_so=ldshared,
+             linker_exe=cc,
++            linker_so_cxx=ldcxxshared,
++            linker_exe_cxx=cxx,
+             archiver=archiver)
+ 
+         compiler.shared_lib_extension = shlib_suffix
+diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py
+index d00c48981e..4a3d271fee 100644
+--- a/Lib/distutils/unixccompiler.py
++++ b/Lib/distutils/unixccompiler.py
+@@ -52,14 +52,17 @@ class UnixCCompiler(CCompiler):
+     # are pretty generic; they will probably have to be set by an outsider
+     # (eg. using information discovered by the sysconfig about building
+     # Python extensions).
+-    executables = {'preprocessor' : None,
+-                   'compiler'     : ["cc"],
+-                   'compiler_so'  : ["cc"],
+-                   'compiler_cxx' : ["cc"],
+-                   'linker_so'    : ["cc", "-shared"],
+-                   'linker_exe'   : ["cc"],
+-                   'archiver'     : ["ar", "-cr"],
+-                   'ranlib'       : None,
++    executables = {'preprocessor'    : None,
++                   'compiler'        : ["cc"],
++                   'compiler_so'     : ["cc"],
++                   'compiler_cxx'    : ["c++"],
++                   'compiler_so_cxx' : ["c++"],
++                   'linker_so'       : ["cc", "-shared"],
++                   'linker_exe'      : ["cc"],
++                   'linker_so_cxx'   : ["c++", "-shared"],
++                   'linker_exe_cxx'  : ["c++"],
++                   'archiver'        : ["ar", "-cr"],
++                   'ranlib'          : None,
+                   }
+ 
+     if sys.platform[:6] == "darwin":
+@@ -110,12 +113,19 @@ def preprocess(self, source, output_file=None, macros=None,
+ 
+     def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
+         compiler_so = self.compiler_so
++        compiler_so_cxx = self.compiler_so_cxx
+         if sys.platform == 'darwin':
+             compiler_so = _osx_support.compiler_fixup(compiler_so,
+                                                     cc_args + extra_postargs)
++            compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx,
++                                                    cc_args + extra_postargs)
+         try:
+-            self.spawn(compiler_so + cc_args + [src, '-o', obj] +
+-                       extra_postargs)
++            if self.detect_language(src) == 'c++':
++                self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] +
++                           extra_postargs)
++            else:
++                self.spawn(compiler_so + cc_args + [src, '-o', obj] +
++                           extra_postargs)
+         except DistutilsExecError as msg:
+             raise CompileError(msg)
+ 
+@@ -173,30 +183,16 @@ def link(self, target_desc, objects,
+                 ld_args.extend(extra_postargs)
+             self.mkpath(os.path.dirname(output_filename))
+             try:
+-                if target_desc == CCompiler.EXECUTABLE:
+-                    linker = self.linker_exe[:]
++                if target_lang == "c++":
++                    if target_desc == CCompiler.EXECUTABLE:
++                        linker = self.linker_exe_cxx[:]
++                    else:
++                        linker = self.linker_so_cxx[:]
+                 else:
+-                    linker = self.linker_so[:]
+-                if target_lang == "c++" and self.compiler_cxx:
+-                    # skip over environment variable settings if /usr/bin/env
+-                    # is used to set up the linker's environment.
+-                    # This is needed on OSX. Note: this assumes that the
+-                    # normal and C++ compiler have the same environment
+-                    # settings.
+-                    i = 0
+-                    if os.path.basename(linker[0]) == "env":
+-                        i = 1
+-                        while '=' in linker[i]:
+-                            i += 1
+-
+-                    if os.path.basename(linker[i]) == 'ld_so_aix':
+-                        # AIX platforms prefix the compiler with the ld_so_aix
+-                        # script, so we need to adjust our linker index
+-                        offset = 1
++                    if target_desc == CCompiler.EXECUTABLE:
++                        linker = self.linker_exe[:]
+                     else:
+-                        offset = 0
+-
+-                    linker[i+offset] = self.compiler_cxx[i]
++                        linker = self.linker_so[:]
+ 
+                 if sys.platform == 'darwin':
+                     linker = _osx_support.compiler_fixup(linker, ld_args)
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index f803391346..090f14c46c 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -732,9 +732,9 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt @LIBMPDEC_INTERNAL@ @LIBEXPAT_INTERNAL
+ 	    *\ -s*|s*) quiet="-q";; \
+ 	    *) quiet="";; \
+ 	esac; \
+-	echo "$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
++	echo "$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' CFLAGS='$(PY_CFLAGS)' \
+ 		$(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build"; \
+-	$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
++	$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' CFLAGS='$(PY_CFLAGS)' \
+ 		$(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
+ 
+ 
diff --git a/pkgs/development/interpreters/python/cpython/default.nix b/pkgs/development/interpreters/python/cpython/default.nix
index 02ecf8d25b1ef..4463dc8e9ba0d 100644
--- a/pkgs/development/interpreters/python/cpython/default.nix
+++ b/pkgs/development/interpreters/python/cpython/default.nix
@@ -49,7 +49,7 @@
 , enableLTO ? stdenv.is64bit && stdenv.isLinux
 , reproducibleBuild ? false
 , pythonAttr ? "python${sourceVersion.major}${sourceVersion.minor}"
-}:
+} @ inputs:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
 # cannot use fetchpatch! All mutable patches (generated by GitHub or
@@ -83,7 +83,11 @@ let
 
   tzdataSupport = tzdata != null && passthru.pythonAtLeast "3.9";
 
-  passthru = passthruFun rec {
+  passthru = let
+    # When we override the interpreter we also need to override the spliced versions of the interpreter
+    inputs' = lib.filterAttrs (_: v: ! lib.isDerivation v) inputs;
+    override = attr: let python = attr.override (inputs' // { self = python; }); in python;
+  in passthruFun rec {
     inherit self sourceVersion packageOverrides;
     implementation = "cpython";
     libPrefix = "python${pythonVersion}";
@@ -91,11 +95,11 @@ let
     pythonVersion = with sourceVersion; "${major}.${minor}";
     sitePackages = "lib/${libPrefix}/site-packages";
     inherit hasDistutilsCxxPatch;
-    pythonOnBuildForBuild = pkgsBuildBuild.${pythonAttr};
-    pythonOnBuildForHost = pkgsBuildHost.${pythonAttr};
-    pythonOnBuildForTarget = pkgsBuildTarget.${pythonAttr};
-    pythonOnHostForHost = pkgsHostHost.${pythonAttr};
-    pythonOnTargetForTarget = pkgsTargetTarget.${pythonAttr} or {};
+    pythonOnBuildForBuild = override pkgsBuildBuild.${pythonAttr};
+    pythonOnBuildForHost = override pkgsBuildHost.${pythonAttr};
+    pythonOnBuildForTarget = override pkgsBuildTarget.${pythonAttr};
+    pythonOnHostForHost = override pkgsHostHost.${pythonAttr};
+    pythonOnTargetForTarget = if lib.hasAttr pythonAttr pkgsTargetTarget then (override pkgsTargetTarget.${pythonAttr}) else {};
   };
 
   version = with sourceVersion; "${major}.${minor}.${patch}${suffix}";
@@ -236,7 +240,7 @@ in with passthru; stdenv.mkDerivation {
       else
         ./3.5/profile-task.patch
     )
-  ] ++ optionals (pythonAtLeast "3.9" && stdenv.isDarwin) [
+  ] ++ optionals (pythonAtLeast "3.9" && pythonOlder "3.11" && stdenv.isDarwin) [
     # Stop checking for TCL/TK in global macOS locations
     ./3.9/darwin-tcl-tk.patch
   ] ++ optionals (isPy3k && hasDistutilsCxxPatch) [
@@ -247,8 +251,10 @@ in with passthru; stdenv.mkDerivation {
     (
       if isPy35 then
         ./3.5/python-3.x-distutils-C++.patch
-      else if pythonAtLeast "3.7" then
+      else if pythonAtLeast "3.7" && pythonOlder "3.11" then
         ./3.7/python-3.x-distutils-C++.patch
+      else if pythonAtLeast "3.11" then
+        ./3.11/python-3.x-distutils-C++.patch
       else
         fetchpatch {
           url = "https://bugs.python.org/file48016/python-3.x-distutils-C++.patch";
@@ -282,7 +288,7 @@ in with passthru; stdenv.mkDerivation {
 
   CPPFLAGS = concatStringsSep " " (map (p: "-I${getDev p}/include") buildInputs);
   LDFLAGS = concatStringsSep " " (map (p: "-L${getLib p}/lib") buildInputs);
-  LIBS = "${optionalString (!stdenv.isDarwin) "-lcrypt"} ${optionalString (ncurses != null) "-lncurses"}";
+  LIBS = "${optionalString (!stdenv.isDarwin) "-lcrypt"}";
   NIX_LDFLAGS = lib.optionalString stdenv.cc.isGNU ({
     "glibc" = "-lgcc_s";
     "musl" = "-lgcc_eh";
diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix
index bac5ba69c44ad..d9ade27def64d 100644
--- a/pkgs/development/interpreters/python/default.nix
+++ b/pkgs/development/interpreters/python/default.nix
@@ -124,19 +124,19 @@ with pkgs;
       sourceVersion = {
         major = "3";
         minor = "9";
-        patch = "10";
+        patch = "12";
         suffix = "";
       };
-      sha256 = "sha256-Co+/tSh+vDoT6brz1U4I+gZ3j/7M9jEa74Ibs6ZYbMg=";
+      sha256 = "sha256-LNlLIGcOQVnG2atX+R2/JVuX2MGhRR0cNfTsGWit+XE=";
     };
     python310 = {
       sourceVersion = {
         major = "3";
         minor = "10";
-        patch = "2";
+        patch = "4";
         suffix = "";
       };
-      sha256 = "sha256-F946x9qfJRmqnWQ3jGA6c6DprVjf+ogS5FFgwIbeZMc=";
+      sha256 = "sha256-gL+SX1cdpDazUhCIbPefbrX6XWxXExa3NWg0NFH3ehk=";
     };
   };
 
@@ -199,9 +199,9 @@ in {
       major = "3";
       minor = "11";
       patch = "0";
-      suffix = "a6";
+      suffix = "a7";
     };
-    sha256 = "sha256-HFOi/3WHljPjDKwp0qpregEONVuV8L+axpG+zPX50So=";
+    sha256 = "sha256-t8Vt10wvRy1Ja1qNNWvWrZ75sD8mKIwyN9P/aYqwPXQ=";
     inherit (darwin) configd;
     inherit passthruFun;
   };
@@ -300,11 +300,6 @@ in {
     inherit passthruFun;
   };
 
-  graalpython37 = callPackage ./graalpython/default.nix {
-    self = pythonInterpreters.graalpython37;
-    inherit passthruFun;
-  };
-
   rustpython = callPackage ./rustpython/default.nix {
     inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
   };
diff --git a/pkgs/development/interpreters/python/graalpython/default.nix b/pkgs/development/interpreters/python/graalpython/default.nix
deleted file mode 100644
index b5d7d130b5a7e..0000000000000
--- a/pkgs/development/interpreters/python/graalpython/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ pkgs
-, lib
-, graalvm8
-, passthruFun
-, packageOverrides ? (self: super: {})
-, self
-}:
-
-let
-  passthru = passthruFun {
-    inherit self packageOverrides;
-    implementation = "graal";
-    sourceVersion = graalvm8.version;
-    pythonVersion = "3.7";
-    libPrefix = "graalvm";
-    sitePackages = "jre/languages/python/lib-python/3/site-packages";
-    executable = "graalpython";
-    hasDistutilsCxxPatch = false;
-    pythonForBuild = pkgs.buildPackages.pythonInterpreters.graalpython37;
-  };
-in lib.extendDerivation true passthru graalvm8
diff --git a/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py b/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py
index 5f55ed5ecaf1a..3843497d94e53 100755
--- a/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py
+++ b/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py
@@ -356,17 +356,19 @@ def _update_package(path, target):
         text = _replace_value('hash', sri_hash, text)
 
     if fetcher == 'fetchFromGitHub':
-        # in the case of fetchFromGitHub, it's common to see `rev = version;`
-        # in which no string value is meant to be substituted.
-        # Verify that the attribute is set to a variable
-        regex = '(rev\s+=\s+([_a-zA-Z][_a-zA-Z0-9\.]*);)'
+        # in the case of fetchFromGitHub, it's common to see `rev = version;` or `rev = "v${version}";`
+        # in which no string value is meant to be substituted. However, we can just overwrite the previous value.
+        regex = '(rev\s+=\s+[^;]*;)'
         regex = re.compile(regex)
-        value = regex.findall(text)
-        n = len(value)
+        matches = regex.findall(text)
+        n = len(matches)
 
         if n == 0:
-            # value is set to a string, e.g. `rev = "v${version}";`
-            text = _replace_value('rev', f"{prefix}${{version}}", text)
+            raise ValueError("Unable to find rev value for {}.".format(pname))
+        else:
+            # forcefully rewrite rev, incase tagging conventions changed for a release
+            match = matches[0]
+            text = text.replace(match, f'rev = "refs/tags/{prefix}${{version}}";')
             # incase there's no prefix, just rewrite without interpolation
             text = text.replace('"${version}";', 'version;')
 
diff --git a/pkgs/development/interpreters/rakudo/default.nix b/pkgs/development/interpreters/rakudo/default.nix
index 9de6c1b12398d..fd8fbd42caeb2 100644
--- a/pkgs/development/interpreters/rakudo/default.nix
+++ b/pkgs/development/interpreters/rakudo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rakudo";
-  version = "2022.02";
+  version = "2022.03";
 
   src = fetchurl {
     url = "https://rakudo.org/dl/rakudo/rakudo-${version}.tar.gz";
-    sha256 = "sha256-am6dvMbZoWEKNMbsZ+LT9pTXsz6eCg8iRUMIn6f3EzI=";
+    sha256 = "sha256-A+IVsAGoeXR2GNb8GOt/icC4EvXlQ6Q+1mwTQ56ooic=";
   };
 
   nativeBuildInputs = [ removeReferencesTo ];
diff --git a/pkgs/development/interpreters/rakudo/moarvm.nix b/pkgs/development/interpreters/rakudo/moarvm.nix
index 41462e67a4c98..6ecc3ad605360 100644
--- a/pkgs/development/interpreters/rakudo/moarvm.nix
+++ b/pkgs/development/interpreters/rakudo/moarvm.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "moarvm";
-  version = "2022.02";
+  version = "2022.03";
 
   src = fetchurl {
     url = "https://moarvm.org/releases/MoarVM-${version}.tar.gz";
-    sha256 = "sha256-T5PNzmuKVloyKCuzjMlxzv63H10CLIUMM47oFFV07pY=";
+    sha256 = "sha256-+3HNE5EkZEgrmbM/DAbp/XxRoVHG5jKpIgz5PFhV/a8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/interpreters/rakudo/nqp.nix b/pkgs/development/interpreters/rakudo/nqp.nix
index 57cdef94c02d2..dbcb945f4c347 100644
--- a/pkgs/development/interpreters/rakudo/nqp.nix
+++ b/pkgs/development/interpreters/rakudo/nqp.nix
@@ -2,16 +2,26 @@
 
 stdenv.mkDerivation rec {
   pname = "nqp";
-  version = "2022.02";
+  version = "2022.03";
 
   src = fetchurl {
     url = "https://github.com/raku/nqp/releases/download/${version}/nqp-${version}.tar.gz";
-    sha256 = "sha256-JdPJl0XNhPQEmpvZzya7XcgXklq6r+ccm9tohBzbGLE=";
+    sha256 = "sha256-qV53iXDE0JwJHSqimcBQNiCM5LSw06evNzGYwSJYswY=";
   };
 
   buildInputs = [ perl ];
 
   configureScript = "${perl}/bin/perl ./Configure.pl";
+
+  # Fix for issue where nqp expects to find files from moarvm in the same output:
+  # https://github.com/Raku/nqp/commit/e6e069507de135cc71f77524455fc6b03b765b2f
+  #
+  preBuild = ''
+    share_dir="share/nqp/lib/MAST"
+    mkdir -p $out/$share_dir
+    ln -fs ${moarvm}/$share_dir/{Nodes,Ops}.nqp $out/$share_dir
+  '';
+
   configureFlags = [
     "--backends=moar"
     "--with-moar=${moarvm}/bin/moar"
diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix
index ea31f354d0d7f..d30a2d2073eaa 100644
--- a/pkgs/development/interpreters/ruby/default.nix
+++ b/pkgs/development/interpreters/ruby/default.nix
@@ -59,14 +59,9 @@ let
         pname = "ruby";
         inherit version;
 
-        src = if useRailsExpress then fetchFromGitHub {
-          owner  = "ruby";
-          repo   = "ruby";
-          rev    = tag;
-          sha256 = sha256.git;
-        } else fetchurl {
+        src = fetchurl {
           url = "https://cache.ruby-lang.org/pub/ruby/${ver.majMin}/ruby-${ver}.tar.gz";
-          sha256 = sha256.src;
+          inherit sha256;
         };
 
         # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
@@ -100,17 +95,22 @@ let
             patchLevel = ver.patchLevel;
           }).${ver.majMinTiny}
           ++ op (lib.versionOlder ver.majMin "3.1") ./do-not-regenerate-revision.h.patch
-          ++ op (atLeast30 && useRailsExpress) ./do-not-update-gems-baseruby.patch
-          # Ruby prior to 3.0 has a bug the installer (tools/rbinstall.rb) but
-          # the resulting error was swallowed. Newer rubygems no longer swallows
-          # this error. We upgrade rubygems when rubygemsSupport is enabled, so
-          # we have to fix this bug to prevent the install step from failing.
-          # See https://github.com/ruby/ruby/pull/2930
-          ++ op (!atLeast30 && rubygemsSupport)
+          ++ op (atLeast30 && useBaseRuby) ./do-not-update-gems-baseruby.patch
+          ++ ops (!atLeast30 && rubygemsSupport) [
+            # We upgrade rubygems to a version that isn't compatible with the
+            # ruby 2.7 installer. Backport the upstream fix.
+            ./rbinstall-new-rubygems-compat.patch
+
+            # Ruby prior to 3.0 has a bug the installer (tools/rbinstall.rb) but
+            # the resulting error was swallowed. Newer rubygems no longer swallows
+            # this error. We upgrade rubygems when rubygemsSupport is enabled, so
+            # we have to fix this bug to prevent the install step from failing.
+            # See https://github.com/ruby/ruby/pull/2930
             (fetchpatch {
               url = "https://github.com/ruby/ruby/commit/261d8dd20afd26feb05f00a560abd99227269c1c.patch";
               sha256 = "0wrii25cxcz2v8bgkrf7ibcanjlxwclzhayin578bf0qydxdm9qy";
-            });
+            })
+          ];
 
         postUnpack = opString rubygemsSupport ''
           rm -rf $sourceRoot/{lib,test}/rubygems*
@@ -182,6 +182,11 @@ let
               sed -i '/CC_VERSION_MESSAGE/d' $rbConfig
             ''
           }
+          # Remove unnecessary external intermediate files created by gems
+          extMakefiles=$(find $out/lib/ruby/gems -name Makefile)
+          for makefile in $extMakefiles; do
+            make -C "$(dirname "$makefile")" distclean
+          done
           # Bundler tries to create this directory
           mkdir -p $out/nix-support
           cat > $out/nix-support/setup-hook <<EOF
@@ -252,26 +257,17 @@ let
 
 in {
   ruby_2_7 = generic {
-    version = rubyVersion "2" "7" "5" "";
-    sha256 = {
-      src = "1wc1hwmz4m6iqlmqag8liyld917p6a8dvnhnpd1v8d8jl80bjm97";
-      git = "16565fyl7141hr6q6d74myhsz46lvgam8ifnacshi68vzibwjbbh";
-    };
+    version = rubyVersion "2" "7" "6" "";
+    sha256 = "042xrdk7hsv4072bayz3f8ffqh61i8zlhvck10nfshllq063n877";
   };
 
   ruby_3_0 = generic {
-    version = rubyVersion "3" "0" "3" "";
-    sha256 = {
-      src = "1b4j39zyyvdkf1ax2c6qfa40b4mxfkr87zghhw19fmnzn8f8d1im";
-      git = "1q19w5i1jkfxn7qq6f9v9ngax9h52gxwijk7hp312dx6amwrkaim";
-    };
+    version = rubyVersion "3" "0" "4" "";
+    sha256 = "0avj4g3s2839b2y4m6pk8kid74r8nj7k0qm2rsdcwjzhg8h7rd3h";
   };
 
   ruby_3_1 = generic {
-    version = rubyVersion "3" "1" "1" "";
-    sha256 = {
-      src = "sha256-/m5Hgt6XRDl43bqLpL440iKqJNw+PwKmqOdwHA7rYZ0=";
-      git = "sha256-76t/tGyK5nz7nvcRdHJTjjckU+Kv+/kbTMiNWJ93jU8=";
-    };
+    version = rubyVersion "3" "1" "2" "";
+    sha256 = "0gm84ipk6mrfw94852w5h7xxk2lqrxjbnlwb88svf0lz70933131";
   };
 }
diff --git a/pkgs/development/interpreters/ruby/patchsets.nix b/pkgs/development/interpreters/ruby/patchsets.nix
index b76dc1a23b165..a0e2b90b0f4a3 100644
--- a/pkgs/development/interpreters/ruby/patchsets.nix
+++ b/pkgs/development/interpreters/ruby/patchsets.nix
@@ -1,15 +1,15 @@
 { patchSet, useRailsExpress, ops, patchLevel, fetchpatch }:
 
 {
-  "2.7.5" = ops useRailsExpress [
+  "2.7.6" = ops useRailsExpress [
     "${patchSet}/patches/ruby/2.7/head/railsexpress/01-fix-broken-tests-caused-by-ad.patch"
     "${patchSet}/patches/ruby/2.7/head/railsexpress/02-improve-gc-stats.patch"
     "${patchSet}/patches/ruby/2.7/head/railsexpress/03-more-detailed-stacktrace.patch"
   ];
-  "3.0.3" = ops useRailsExpress [
+  "3.0.4" = ops useRailsExpress [
     "${patchSet}/patches/ruby/3.0/head/railsexpress/01-improve-gc-stats.patch"
     "${patchSet}/patches/ruby/3.0/head/railsexpress/02-malloc-trim.patch"
   ];
-  "3.1.1" = ops useRailsExpress [ # no patches yet (2021-12-25)
+  "3.1.2" = ops useRailsExpress [ # no patches yet (2021-12-25)
   ];
 }
diff --git a/pkgs/development/interpreters/ruby/rbinstall-new-rubygems-compat.patch b/pkgs/development/interpreters/ruby/rbinstall-new-rubygems-compat.patch
new file mode 100644
index 0000000000000..54ce8a357a86a
--- /dev/null
+++ b/pkgs/development/interpreters/ruby/rbinstall-new-rubygems-compat.patch
@@ -0,0 +1,87 @@
+From 8e85d27f9ccfe152fc1b891c19f125915a907493 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
+Date: Tue, 1 Oct 2019 12:03:33 +0200
+Subject: [PATCH] Use `Gem::Package` like object instead of monkey patching.
+
+1. This is similar to what RubyGems does and it is less magic [[1]].
+2. It avoids deprecated code paths in RubyGems [[2]].
+
+[1]: https://github.com/rubygems/rubygems/blob/92892bbc3adba86a90756c385433835f6761b8da/lib/rubygems/installer.rb#L151
+[2]: https://github.com/rubygems/rubygems/blob/92892bbc3adba86a90756c385433835f6761b8da/lib/rubygems/installer.rb#L187
+
+(cherry picked from commit e960ef6f18a25c637c54f00c75bb6c24f8ab55d0)
+---
+ tool/rbinstall.rb | 47 +++++++++++++++++++++++++++--------------------
+ 1 file changed, 27 insertions(+), 20 deletions(-)
+
+diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
+index 060390626f..28ae8c409a 100755
+--- a/tool/rbinstall.rb
++++ b/tool/rbinstall.rb
+@@ -710,28 +710,34 @@ def remove_prefix(prefix, string)
+     end
+   end
+ 
+-  class UnpackedInstaller < Gem::Installer
+-    module DirPackage
+-      def extract_files(destination_dir, pattern = "*")
+-        path = File.dirname(@gem.path)
+-        return if path == destination_dir
+-        File.chmod(0700, destination_dir)
+-        mode = pattern == "bin/*" ? $script_mode : $data_mode
+-        spec.files.each do |f|
+-          src = File.join(path, f)
+-          dest = File.join(without_destdir(destination_dir), f)
+-          makedirs(dest[/.*(?=\/)/m])
+-          install src, dest, :mode => mode
+-        end
+-        File.chmod($dir_mode, destination_dir)
++  class DirPackage
++    attr_reader :spec
++
++    attr_accessor :dir_mode
++    attr_accessor :prog_mode
++    attr_accessor :data_mode
++
++    def initialize(spec)
++      @spec = spec
++      @src_dir = File.dirname(@spec.loaded_from)
++    end
++
++    def extract_files(destination_dir, pattern = "*")
++      path = @src_dir
++      return if path == destination_dir
++      File.chmod(0700, destination_dir)
++      mode = pattern == "bin/*" ? $script_mode : $data_mode
++      spec.files.each do |f|
++        src = File.join(path, f)
++        dest = File.join(without_destdir(destination_dir), f)
++        makedirs(dest[/.*(?=\/)/m])
++        install src, dest, :mode => mode
+       end
++      File.chmod($dir_mode, destination_dir)
+     end
++  end
+ 
+-    def initialize(spec, *options)
+-      super(spec.loaded_from, *options)
+-      @package.extend(DirPackage).spec = spec
+-    end
+-
++  class UnpackedInstaller < Gem::Installer
+     def write_cache_file
+     end
+ 
+@@ -890,7 +896,8 @@ def install_default_gem(dir, srcdir)
+     if File.directory?(ext = "#{gem_ext_dir}/#{spec.full_name}")
+       spec.extensions[0] ||= "-"
+     end
+-    ins = RbInstall::UnpackedInstaller.new(spec, options)
++    package = RbInstall::DirPackage.new spec
++    ins = RbInstall::UnpackedInstaller.new(package, options)
+     puts "#{INDENT}#{spec.name} #{spec.version}"
+     ins.install
+     File.chmod($data_mode, File.join(install_dir, "specifications", "#{spec.full_name}.gemspec"))
+-- 
+2.35.1
+
diff --git a/pkgs/development/interpreters/ruby/rubygems/default.nix b/pkgs/development/interpreters/ruby/rubygems/default.nix
index 4150f7683d5dd..6a8e171ee6e16 100644
--- a/pkgs/development/interpreters/ruby/rubygems/default.nix
+++ b/pkgs/development/interpreters/ruby/rubygems/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "rubygems";
+  pname = "rubygems";
   version = "3.2.26";
 
   src = fetchurl {
diff --git a/pkgs/development/interpreters/spidermonkey/91.nix b/pkgs/development/interpreters/spidermonkey/91.nix
index fede01c0ada77..c1e647deb7057 100644
--- a/pkgs/development/interpreters/spidermonkey/91.nix
+++ b/pkgs/development/interpreters/spidermonkey/91.nix
@@ -19,11 +19,11 @@
 
 stdenv.mkDerivation rec {
   pname = "spidermonkey";
-  version = "91.7.0";
+  version = "91.8.0";
 
   src = fetchurl {
     url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz";
-    sha512 = "925811989d8a91d826ba356bd46ac54be8153288ec0319c28d2bfbe89191e62e107691159dd7ca247253e2a4952eb59a5b9613e3feea3f5351238d4822e26301";
+    sha512 = "edea2c7d4d3d0322091b20b623019ef041090d9f89f33c8e3140f66a54624261f278257393db70d2038154de8ee02da0bee6ecf85c281f3558338da71fc173c3";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/interpreters/supercollider/default.nix b/pkgs/development/interpreters/supercollider/default.nix
index 2a0ef3b0957c6..0446e5d540c1f 100644
--- a/pkgs/development/interpreters/supercollider/default.nix
+++ b/pkgs/development/interpreters/supercollider/default.nix
@@ -1,12 +1,11 @@
-{ lib, stdenv, mkDerivation, fetchurl, cmake, pkg-config, alsa-lib
-, libjack2, libsndfile, fftw, curl, gcc
-, libXt, qtbase, qttools, qtwebengine
+{ lib, stdenv, mkDerivation, fetchurl, cmake
+, pkg-config, alsa-lib, libjack2, libsndfile, fftw
+, curl, gcc, libXt, qtbase, qttools, qtwebengine
 , readline, qtwebsockets, useSCEL ? false, emacs
+, supercollider-with-plugins, supercolliderPlugins
+, writeText, runCommand
 }:
 
-let
-  inherit (lib) optional;
-in
 mkDerivation rec {
   pname = "supercollider";
   version = "3.12.2";
@@ -16,6 +15,17 @@ mkDerivation rec {
     sha256 = "sha256-1QYorCgSwBK+SVAm4k7HZirr1j+znPmVicFmJdvO3g4=";
   };
 
+  patches = [
+    # add support for SC_DATA_DIR and SC_PLUGIN_DIR env vars to override compile-time values
+    ./supercollider-3.12.0-env-dirs.patch
+  ];
+
+  nativeBuildInputs = [ cmake pkg-config qttools ];
+
+  buildInputs = [ gcc libjack2 libsndfile fftw curl libXt qtbase qtwebengine qtwebsockets readline ]
+    ++ lib.optional (!stdenv.isDarwin) alsa-lib
+    ++ lib.optional useSCEL emacs;
+
   hardeningDisable = [ "stackprotector" ];
 
   cmakeFlags = [
@@ -23,17 +33,30 @@ mkDerivation rec {
     "-DSC_EL=${if useSCEL then "ON" else "OFF"}"
   ];
 
-  nativeBuildInputs = [ cmake pkg-config qttools ];
-
-  buildInputs = [
-    gcc libjack2 libsndfile fftw curl libXt qtbase qtwebengine qtwebsockets readline ]
-      ++ optional (!stdenv.isDarwin) alsa-lib
-      ++ optional useSCEL emacs;
+  passthru.tests = {
+    # test to make sure sclang runs and included plugins are successfully found
+    sclang-sc3-plugins = let
+      supercollider-with-test-plugins = supercollider-with-plugins.override {
+        plugins = with supercolliderPlugins; [ sc3-plugins ];
+      };
+      testsc = writeText "test.sc" ''
+        var err = 0;
+        try {
+        MdaPiano.name.postln;
+        } {
+        err = 1;
+        };
+        err.exit;
+      '';
+    in runCommand "sclang-sc3-plugins-test" {} ''
+      timeout 60s env XDG_CONFIG_HOME="$(mktemp -d)" QT_QPA_PLATFORM=minimal ${supercollider-with-test-plugins}/bin/sclang ${testsc} >$out
+    '';
+  };
 
   meta = with lib; {
     description = "Programming language for real time audio synthesis";
     homepage = "https://supercollider.github.io";
-    maintainers = with maintainers; [ mrmebelman ];
+    maintainers = with maintainers; [ lilyinstarlight ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
   };
diff --git a/pkgs/development/interpreters/supercollider/plugins/sc3-plugins.nix b/pkgs/development/interpreters/supercollider/plugins/sc3-plugins.nix
new file mode 100644
index 0000000000000..a596d6d770aef
--- /dev/null
+++ b/pkgs/development/interpreters/supercollider/plugins/sc3-plugins.nix
@@ -0,0 +1,33 @@
+{ stdenv, lib, fetchurl, cmake, supercollider, fftw }:
+
+stdenv.mkDerivation rec {
+  pname = "sc3-plugins";
+  version = "3.11.1";
+
+  src = fetchurl {
+    url = "https://github.com/supercollider/sc3-plugins/releases/download/Version-${version}/sc3-plugins-${version}-Source.tar.bz2";
+    sha256 = "sha256-JjUmu7PJ+x3yRibr+Av2gTREng51fPo7Rk+B4y2JvkQ=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    supercollider
+    fftw
+  ];
+
+  cmakeFlags = [
+    "-DSC_PATH=${supercollider}/include/SuperCollider"
+    "-DSUPERNOVA=ON"
+  ];
+
+  stripDebugList = [ "lib" "share" ];
+
+  meta = with lib; {
+    description = "Community plugins for SuperCollider";
+    homepage = "https://supercollider.github.io/sc3-plugins/";
+    maintainers = with maintainers; [ lilyinstarlight ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/interpreters/supercollider/supercollider-3.12.0-env-dirs.patch b/pkgs/development/interpreters/supercollider/supercollider-3.12.0-env-dirs.patch
new file mode 100644
index 0000000000000..dd92028b52256
--- /dev/null
+++ b/pkgs/development/interpreters/supercollider/supercollider-3.12.0-env-dirs.patch
@@ -0,0 +1,65 @@
+diff --git a/common/SC_Filesystem_unix.cpp b/common/SC_Filesystem_unix.cpp
+index 52dc1fd2d..aae09ed9c 100644
+--- a/common/SC_Filesystem_unix.cpp
++++ b/common/SC_Filesystem_unix.cpp
+@@ -94,6 +94,10 @@ bool SC_Filesystem::isNonHostPlatformDirectoryName(const std::string& s) {
+ }
+ 
+ Path SC_Filesystem::defaultSystemAppSupportDirectory() {
++    const char* sc_data_dir = getenv("SC_DATA_DIR");
++    if (sc_data_dir)
++        return Path(sc_data_dir);
++
+ #    ifdef SC_DATA_DIR
+     return Path(SC_DATA_DIR);
+ #    else
+@@ -125,6 +129,10 @@ Path SC_Filesystem::defaultUserConfigDirectory() {
+ }
+ 
+ Path SC_Filesystem::defaultResourceDirectory() {
++    const char* sc_data_dir = getenv("SC_DATA_DIR");
++    if (sc_data_dir)
++        return Path(sc_data_dir);
++
+ #    ifdef SC_DATA_DIR
+     return Path(SC_DATA_DIR);
+ #    else
+diff --git a/server/scsynth/SC_Lib_Cintf.cpp b/server/scsynth/SC_Lib_Cintf.cpp
+index f6219307e..28e13eb98 100644
+--- a/server/scsynth/SC_Lib_Cintf.cpp
++++ b/server/scsynth/SC_Lib_Cintf.cpp
+@@ -178,9 +178,13 @@ void initialize_library(const char* uGensPluginPath) {
+     using DirName = SC_Filesystem::DirName;
+ 
+     if (loadUGensExtDirs) {
++        const char* sc_plugin_dir = getenv("SC_PLUGIN_DIR");
++        if (sc_plugin_dir) {
++            PlugIn_LoadDir(sc_plugin_dir, true);
++        }
+ #ifdef SC_PLUGIN_DIR
+         // load globally installed plugins
+-        if (bfs::is_directory(SC_PLUGIN_DIR)) {
++        else if (bfs::is_directory(SC_PLUGIN_DIR)) {
+             PlugIn_LoadDir(SC_PLUGIN_DIR, true);
+         }
+ #endif // SC_PLUGIN_DIR
+diff --git a/server/supernova/server/main.cpp b/server/supernova/server/main.cpp
+index b2b5adf4e..6cb8c411c 100644
+--- a/server/supernova/server/main.cpp
++++ b/server/supernova/server/main.cpp
+@@ -224,8 +224,14 @@ void set_plugin_paths(server_arguments const& args, nova::sc_ugen_factory* facto
+             }
+         }
+     } else {
++        const char* sc_plugin_dir = getenv("SC_PLUGIN_DIR");
++        if (sc_plugin_dir) {
++            factory->load_plugin_folder(sc_plugin_dir);
++        }
+ #ifdef SC_PLUGIN_DIR
+-        factory->load_plugin_folder(SC_PLUGIN_DIR);
++        else {
++            factory->load_plugin_folder(SC_PLUGIN_DIR);
++        }
+ #endif
+         factory->load_plugin_folder(SC_Filesystem::instance().getDirectory(DirName::Resource) / SC_PLUGIN_DIR_NAME);
+         factory->load_plugin_folder(SC_Filesystem::instance().getDirectory(DirName::SystemExtension));
diff --git a/pkgs/development/interpreters/supercollider/wrapper.nix b/pkgs/development/interpreters/supercollider/wrapper.nix
new file mode 100644
index 0000000000000..e9e97f2b98de9
--- /dev/null
+++ b/pkgs/development/interpreters/supercollider/wrapper.nix
@@ -0,0 +1,18 @@
+{ symlinkJoin, makeWrapper, supercollider, plugins }:
+
+symlinkJoin {
+  name = "supercollider-with-plugins-${supercollider.version}";
+  paths = [ supercollider ] ++ plugins;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postBuild = ''
+    for exe in $out/bin/*; do
+      wrapProgram $exe \
+        --set SC_PLUGIN_DIR "$out/lib/SuperCollider/plugins" \
+        --set SC_DATA_DIR   "$out/share/SuperCollider"
+    done
+  '';
+
+  inherit (supercollider) pname version meta;
+}
diff --git a/pkgs/development/interpreters/trealla/default.nix b/pkgs/development/interpreters/trealla/default.nix
index d6dc01348a1d4..45e63d98bdae5 100644
--- a/pkgs/development/interpreters/trealla/default.nix
+++ b/pkgs/development/interpreters/trealla/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/infradig/trealla";
     license = licenses.mit;
     maintainers = with maintainers; [ siraben ];
+    mainProgram = "tpl";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/interpreters/wasmtime/default.nix b/pkgs/development/interpreters/wasmtime/default.nix
index 7f00faa76476b..a475f53f91f73 100644
--- a/pkgs/development/interpreters/wasmtime/default.nix
+++ b/pkgs/development/interpreters/wasmtime/default.nix
@@ -2,17 +2,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasmtime";
-  version = "0.35.2";
+  version = "0.36.0";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4oZglk7MInLIsvbeCfs4InAcmSmzZp16XL5+8eoYXJk=";
+    sha256 = "sha256-nSA78eQRbJ5JTDquaRqRgFU0V8RVCzvWUONgHxGj+Mc=";
     fetchSubmodules = true;
   };
 
-  cargoSha256 = "sha256-IqFOw9bGdM3IEoMeqDlxKfLnZvR80PSnwP9kr1tI/h0=";
+  cargoSha256 = "sha256-/+uioJRXiugsV7SUwsDNHGaPxrxrhscQUGyXOzzwG/g=";
 
   # This environment variable is required so that when wasmtime tries
   # to run tests by using the rusty_v8 crate, it does not try to
diff --git a/pkgs/development/interpreters/yex-lang/default.nix b/pkgs/development/interpreters/yex-lang/default.nix
index 738b73d8e4c8c..7223b7aca7802 100644
--- a/pkgs/development/interpreters/yex-lang/default.nix
+++ b/pkgs/development/interpreters/yex-lang/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
     description = "A cool functional scripting language written in rust";
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres ];
+    mainProgram = "yex";
     platforms = platforms.unix;
     broken = stdenv.isAarch64 && stdenv.isLinux;
   };
diff --git a/pkgs/development/interpreters/zuo/default.nix b/pkgs/development/interpreters/zuo/default.nix
new file mode 100644
index 0000000000000..f70e674eda649
--- /dev/null
+++ b/pkgs/development/interpreters/zuo/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "zuo";
+  version = "unstable-2022-04-23";
+
+  src = fetchFromGitHub {
+    owner = "racket";
+    repo = "zuo";
+    rev = "2f3e23bd374f9a6504de6000989ebf2adf67c80c";
+    sha256 = "sha256-TxX3iinfL1hXFlQlGQ7x52O6zvYoJYXrMfEfSL4Axig=";
+  };
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "A Tiny Racket for Scripting";
+    homepage = "https://github.com/racket/zuo";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/pkgs/development/libraries/CoinMP/default.nix b/pkgs/development/libraries/CoinMP/default.nix
index d34b465f135a3..25b9ba0fb5746 100644
--- a/pkgs/development/libraries/CoinMP/default.nix
+++ b/pkgs/development/libraries/CoinMP/default.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "13d3j1sdcjzpijp4qks3n0zibk649ac3hhv88hkk8ffxrc6gnn9l";
   };
 
+  enableParallelBuilding = true;
+
   hardeningDisable = [ "format" ];
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/SDL2/default.nix b/pkgs/development/libraries/SDL2/default.nix
index d1086de3718de..1ce2b1525f07e 100644
--- a/pkgs/development/libraries/SDL2/default.nix
+++ b/pkgs/development/libraries/SDL2/default.nix
@@ -22,6 +22,9 @@
 , waylandSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
 , wayland
 , wayland-protocols
+, drmSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
+, libdrm
+, mesa
 , libxkbcommon
 , dbusSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
 , dbus
@@ -65,6 +68,14 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
   outputBin = "dev"; # sdl-config
 
+  patches = [
+    # `sdl2-config --cflags` from Nixpkgs returns include path to just SDL2.
+    # On a normal distro this is enough for includes from all SDL2* packages to work,
+    # but on NixOS they're spread across different paths.
+    # This patch + the setup-hook will ensure that `sdl2-config --cflags` works correctly.
+    ./find-headers.patch
+  ];
+
   depsBuildBuild = [ pkg-config ];
 
   nativeBuildInputs = [ pkg-config ] ++ optionals waylandSupport [ wayland ];
@@ -84,7 +95,8 @@ stdenv.mkDerivation rec {
     ++ optional pulseaudioSupport libpulseaudio
     ++ optional udevSupport udev
     ++ optionals waylandSupport [ wayland wayland-protocols libxkbcommon ]
-    ++ optionals x11Support [ libICE libXi libXScrnSaver libXcursor libXinerama libXext libXrandr libXxf86vm ];
+    ++ optionals x11Support [ libICE libXi libXScrnSaver libXcursor libXinerama libXext libXrandr libXxf86vm ]
+    ++ optionals drmSupport [ libdrm mesa ];
 
   buildInputs = [ libiconv ]
     ++ dlopenBuildInputs
diff --git a/pkgs/development/libraries/SDL2/find-headers.patch b/pkgs/development/libraries/SDL2/find-headers.patch
new file mode 100644
index 0000000000000..4792679deb117
--- /dev/null
+++ b/pkgs/development/libraries/SDL2/find-headers.patch
@@ -0,0 +1,34 @@
+diff --git a/sdl2-config.cmake.in b/sdl2-config.cmake.in
+index c570511fa..ca694f595 100644
+--- a/sdl2-config.cmake.in
++++ b/sdl2-config.cmake.in
+@@ -7,7 +7,8 @@ set(includedir "@includedir@")
+ set(SDL2_PREFIX "${prefix}")
+ set(SDL2_EXEC_PREFIX "${exec_prefix}")
+ set(SDL2_LIBDIR "${libdir}")
+-set(SDL2_INCLUDE_DIRS "${includedir}/SDL2")
++set(SDL2_INCLUDE_DIRS "${includedir}/SDL2" $ENV{SDL2_PATH})
++separate_arguments(SDL2_INCLUDE_DIRS)
+ set(SDL2_LIBRARIES "-L${SDL2_LIBDIR} @SDL_RLD_FLAGS@ @SDL_LIBS@")
+ string(STRIP "${SDL2_LIBRARIES}" SDL2_LIBRARIES)
+ 
+diff --git a/sdl2-config.in b/sdl2-config.in
+index 5a2aed292..7c55f0a28 100644
+--- a/sdl2-config.in
++++ b/sdl2-config.in
+@@ -42,7 +42,11 @@ while test $# -gt 0; do
+       echo @SDL_VERSION@
+       ;;
+     --cflags)
+-      echo -I@includedir@/SDL2 @SDL_CFLAGS@
++      SDL_CFLAGS=""
++      for i in @includedir@/SDL2 $SDL2_PATH; do
++        SDL_CFLAGS="$SDL_CFLAGS -I$i"
++      done
++      echo $SDL_CFLAGS @SDL_CFLAGS@
+       ;;
+ @ENABLE_SHARED_TRUE@    --libs)
+ @ENABLE_SHARED_TRUE@      echo -L@libdir@ @SDL_RLD_FLAGS@ @SDL_LIBS@
+-- 
+2.33.1
+
diff --git a/pkgs/development/libraries/SDL_audiolib/default.nix b/pkgs/development/libraries/SDL_audiolib/default.nix
new file mode 100644
index 0000000000000..0ec0aa312e83a
--- /dev/null
+++ b/pkgs/development/libraries/SDL_audiolib/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, SDL2
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "SDL_audiolib";
+  version = "unstable-2022-04-17";
+
+  src = fetchFromGitHub {
+    owner = "realnc";
+    repo = "SDL_audiolib";
+    rev = "908214606387ef8e49aeacf89ce848fb36f694fc";
+    sha256 = "sha256-11KkwIhG1rX7yDFSj92NJRO9L2e7XZGq2gOJ54+sN/A=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    SDL2
+  ];
+
+  cmakeFlags = [
+    "-DUSE_RESAMP_SRC=OFF"
+    "-DUSE_RESAMP_SOXR=OFF"
+    "-DUSE_DEC_DRFLAC=OFF"
+    "-DUSE_DEC_OPENMPT=OFF"
+    "-DUSE_DEC_XMP=OFF"
+    "-DUSE_DEC_MODPLUG=OFF"
+    "-DUSE_DEC_MPG123=OFF"
+    "-DUSE_DEC_SNDFILE=OFF"
+    "-DUSE_DEC_LIBVORBIS=OFF"
+    "-DUSE_DEC_LIBOPUSFILE=OFF"
+    "-DUSE_DEC_MUSEPACK=OFF"
+    "-DUSE_DEC_FLUIDSYNTH=OFF"
+    "-DUSE_DEC_BASSMIDI=OFF"
+    "-DUSE_DEC_WILDMIDI=OFF"
+    "-DUSE_DEC_ADLMIDI=OFF"
+  ];
+
+  meta = with lib; {
+    description = "Audio decoding, resampling and mixing library for SDL";
+    homepage = "https://github.com/realnc/SDL_audiolib";
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/libraries/amdvlk/default.nix b/pkgs/development/libraries/amdvlk/default.nix
index 1001dc62673a0..081da52b8049e 100644
--- a/pkgs/development/libraries/amdvlk/default.nix
+++ b/pkgs/development/libraries/amdvlk/default.nix
@@ -22,13 +22,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "amdvlk";
-  version = "2022.Q1.3";
+  version = "2022.Q2.1";
 
   src = fetchRepoProject {
     name = "${pname}-src";
     manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git";
     rev = "refs/tags/v-${version}";
-    sha256 = "UBvHWgC/s00XPn87DAmQ65NszFMoZSXwbrVG064HFng=";
+    sha256 = "MJTpPzmIcTf4/RNte1oDYmn6/wLUJrHM2igrGgXIVqI=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/apache-activemq/default.nix b/pkgs/development/libraries/apache-activemq/default.nix
index 9776e85b4350d..c974c886cb69b 100644
--- a/pkgs/development/libraries/apache-activemq/default.nix
+++ b/pkgs/development/libraries/apache-activemq/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "apache-activemq";
-  version = "5.16.4";
+  version = "5.17.0";
 
   src = fetchurl {
-    sha256 = "sha256-+OBNioEBQbOGpcnDlgtfAej+c0YfTJmxkeEV1JOEBwE=";
+    sha256 = "sha256-6war1/Re+tQvT1a2cf7n3/TMrDh+B2Wx0lbhm+pm+Jc=";
     url = "mirror://apache/activemq/${version}/${pname}-${version}-bin.tar.gz";
   };
 
diff --git a/pkgs/development/libraries/applet-window-buttons/default.nix b/pkgs/development/libraries/applet-window-buttons/default.nix
index c58fb5bc240d8..61187581e9aad 100644
--- a/pkgs/development/libraries/applet-window-buttons/default.nix
+++ b/pkgs/development/libraries/applet-window-buttons/default.nix
@@ -11,13 +11,13 @@
 
 mkDerivation rec {
   pname = "applet-window-buttons";
-  version = "0.10.1";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
     owner = "psifidotos";
     repo = "applet-window-buttons";
     rev = version;
-    sha256 = "18h2g3jqzr88wkmws2iz71sgrz633zwkqvhn32sdi32sxxbrksgd";
+    hash = "sha256-Qww/22bEmjuq+R3o0UDcS6U+34qjaeSEy+g681/hcfE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/argagg/0001-catch.diff b/pkgs/development/libraries/argagg/0001-catch.diff
new file mode 100644
index 0000000000000..f99649d568124
--- /dev/null
+++ b/pkgs/development/libraries/argagg/0001-catch.diff
@@ -0,0 +1,20 @@
+--- old/test/doctest.h	2019-03-05 18:04:06.143740733 +0300
++++ new/test/doctest.h	2019-03-05 18:04:43.577284916 +0300
+@@ -1307,7 +1307,7 @@
+                                                        __FILE__, __LINE__, #expr, #as);            \
+             try {                                                                                  \
+                 expr;                                                                              \
+-            } catch(as) {                                                                          \
++            } catch(as e) {                                                                          \
+                 _DOCTEST_RB.m_threw    = true;                                                     \
+                 _DOCTEST_RB.m_threw_as = true;                                                     \
+             } catch(...) { _DOCTEST_RB.m_threw = true; }                                           \
+@@ -1332,7 +1332,7 @@
+ #define DOCTEST_REQUIRE_THROWS(expr) DOCTEST_ASSERT_THROWS(expr, DT_REQUIRE_THROWS)
+ 
+ #define DOCTEST_WARN_THROWS_AS(expr, ex) DOCTEST_ASSERT_THROWS_AS(expr, ex, DT_WARN_THROWS_AS)
+-#define DOCTEST_CHECK_THROWS_AS(expr, ex) DOCTEST_ASSERT_THROWS_AS(expr, ex, DT_CHECK_THROWS_AS)
++#define DOCTEST_CHECK_THROWS_AS(expr, ex) DOCTEST_ASSERT_THROWS_AS(expr, const ex &, DT_CHECK_THROWS_AS)
+ #define DOCTEST_REQUIRE_THROWS_AS(expr, ex) DOCTEST_ASSERT_THROWS_AS(expr, ex, DT_REQUIRE_THROWS_AS)
+ 
+ #define DOCTEST_WARN_NOTHROW(expr) DOCTEST_ASSERT_NOTHROW(expr, DT_WARN_NOTHROW)
diff --git a/pkgs/development/libraries/argagg/default.nix b/pkgs/development/libraries/argagg/default.nix
new file mode 100644
index 0000000000000..7ff9eaac1e3e6
--- /dev/null
+++ b/pkgs/development/libraries/argagg/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "argagg";
+  version = "0.4.6";
+
+  src = fetchFromGitHub {
+    owner = "vietjtnguyen";
+    repo = pname;
+    rev = version;
+    hash = "sha256-MCtlAPfwdJpgfS8IH+zlcgaaxZ5AsP4hJvbZAFtOa4o=";
+  };
+
+  patches = [
+    # Fix compilation of macro catch statement
+    ./0001-catch.diff
+  ];
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/vietjtnguyen/argagg";
+    description = "Argument Aggregator";
+    longDescription = ''
+      argagg is yet another C++ command line argument/option parser. It was
+      written as a simple and idiomatic alternative to other frameworks like
+      getopt, Boost program options, TCLAP, and others. The goal is to achieve
+      the majority of argument parsing needs in a simple manner with an easy to
+      use API. It operates as a single pass over all arguments, recognizing
+      flags prefixed by - (short) or -- (long) and aggregating them into easy to
+      access structures with lots of convenience functions. It defers processing
+      types until you access them, so the result structures end up just being
+      pointers into the original command line argument C-strings.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = with platforms; all;
+    badPlatforms = [ "aarch64-darwin" ];
+  };
+}
diff --git a/pkgs/development/libraries/armadillo/default.nix b/pkgs/development/libraries/armadillo/default.nix
index 14400f8ebf952..ce41240ecf724 100644
--- a/pkgs/development/libraries/armadillo/default.nix
+++ b/pkgs/development/libraries/armadillo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "armadillo";
-  version = "10.8.2";
+  version = "11.0.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
-    sha256 = "sha256-if3YmL9r/3X278OjAYF+Tt51K5qAkn+wfuNYsT41OSI=";
+    sha256 = "sha256-5D1ESTdsH8i1YglUMbuCz5xP+Yp5GiKiXQ+W5eeTfCI=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/aspell/default.nix b/pkgs/development/libraries/aspell/default.nix
index 777bad1e5a53d..b839092228b30 100644
--- a/pkgs/development/libraries/aspell/default.nix
+++ b/pkgs/development/libraries/aspell/default.nix
@@ -1,4 +1,8 @@
-{ lib, stdenv, fetchurl, fetchpatch, fetchzip, perl
+{ lib, stdenv, fetchurl, fetchpatch, fetchzip, perl, ncurses
+
+  # for tests
+, aspell, glibc, runCommand
+
 , searchNixProfiles ? true
 }:
 
@@ -37,7 +41,7 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ perl ];
-  buildInputs = [ perl ];
+  buildInputs = [ ncurses perl ];
 
   doCheck = true;
 
@@ -55,6 +59,19 @@ stdenv.mkDerivation rec {
     cp ${devaMapsSource}/u-deva.{cmap,cset} $out/lib/aspell/
   '';
 
+  passthru.tests = {
+    uses-curses = runCommand "${pname}-curses" {
+      buildInputs = [ glibc ];
+    } ''
+      if ! ldd ${aspell}/bin/aspell | grep -q ${ncurses}
+      then
+        echo "Test failure: It does not look like aspell picked up the curses dependency."
+        exit 1
+      fi
+      touch $out
+    '';
+  };
+
   meta = {
     description = "Spell checker for many languages";
     homepage = "http://aspell.net/";
diff --git a/pkgs/development/libraries/audio/libopenmpt/default.nix b/pkgs/development/libraries/audio/libopenmpt/default.nix
new file mode 100644
index 0000000000000..35a79e3b358bb
--- /dev/null
+++ b/pkgs/development/libraries/audio/libopenmpt/default.nix
@@ -0,0 +1,66 @@
+{ config
+, lib
+, stdenv
+, fetchurl
+, zlib
+, pkg-config
+, mpg123
+, libogg
+, libvorbis
+, portaudio
+, libsndfile
+, flac
+, usePulseAudio ? config.pulseaudio or stdenv.isLinux
+, libpulseaudio
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libopenmpt";
+  version = "0.6.2";
+
+  outputs = [ "out" "dev" "bin" ];
+
+  src = fetchurl {
+    url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
+    sha256 = "1dp645gg6d3pzjh82srq1d7qvyxi5h22k7yfdjiyzbyry8pxdh2h";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    zlib
+    mpg123
+    libogg
+    libvorbis
+    portaudio
+    libsndfile
+    flac
+  ] ++ lib.optional usePulseAudio libpulseaudio;
+
+  configureFlags = lib.optional (!usePulseAudio) "--without-pulseaudio";
+
+  doCheck = true;
+
+  postFixup = ''
+    moveToOutput share/doc $dev
+  '';
+
+  passthru.updateScript = ./update.sh;
+
+  meta = with lib; {
+    description = "Cross-platform C++ and C library to decode tracked music files into a raw PCM audio stream";
+    longDescription = ''
+      libopenmpt is a cross-platform C++ and C library to decode tracked music files (modules) into a raw PCM audio stream.
+      openmpt123 is a cross-platform command-line or terminal based module file player.
+      libopenmpt is based on the player code of the OpenMPT project.
+    '';
+    homepage = "https://lib.openmpt.org/libopenmpt/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/audio/libopenmpt/update.sh b/pkgs/development/libraries/audio/libopenmpt/update.sh
new file mode 100755
index 0000000000000..2d4e5afac0b7e
--- /dev/null
+++ b/pkgs/development/libraries/audio/libopenmpt/update.sh
@@ -0,0 +1,31 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p common-updater-scripts curl xmlstarlet
+
+attr=libopenmpt
+
+set -eu -o pipefail
+
+# Get update notifications, remove updates for libopenmpt-modplug, find latest eligible & extract versions
+versions="$(
+  curl -s 'https://lib.openmpt.org/libopenmpt/feed.xml' |
+  xmlstarlet sel -N atom="http://www.w3.org/2005/Atom" -t -m /atom:feed/atom:entry -v atom:title -n |
+  grep -v 'libopenmpt-modplug' | head -n1 |
+  grep -Eo '([0-9][^,\s]+)' | tr '\n' ' '
+)"
+echo "Latest $attr versions: $versions"
+
+# Find a version that is > current version and not a rc
+# rc's have different download path and a full release will usually follow shortly
+currentVersion="$(nix-instantiate --eval -E "with import ./. {}; $attr.version" | tr -d '"')"
+echo "Current $attr version: $currentVersion"
+for version in $versions; do
+  (echo "$version" | grep -q 'rc') && continue
+  [ "$version" = "$(printf '%s\n%s' "$version" "$currentVersion" | sort -V | head -n1)" ] && continue
+
+  echo "Updating to $version. Please check if other versions qualify for backport to stable!"
+  update-source-version "$attr" "$version"
+  exit 0
+done
+
+echo "No version eligible for bump."
+exit 0
diff --git a/pkgs/development/libraries/audio/lilv/default.nix b/pkgs/development/libraries/audio/lilv/default.nix
index a29fda0ec2b20..14b0d4c5e46fa 100644
--- a/pkgs/development/libraries/audio/lilv/default.nix
+++ b/pkgs/development/libraries/audio/lilv/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config python3 wafHook ];
   buildInputs = [ serd sord sratom ];
   propagatedBuildInputs = [ lv2 ];
+  dontAddWafCrossFlags = true;
 
   passthru.tests = {
     inherit pipewire;
diff --git a/pkgs/development/libraries/audio/lv2/default.nix b/pkgs/development/libraries/audio/lv2/default.nix
index d0ef2e65c5989..6371a52b4dff5 100644
--- a/pkgs/development/libraries/audio/lv2/default.nix
+++ b/pkgs/development/libraries/audio/lv2/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     pkg-config
     wafHook
+    python3
   ];
 
   buildInputs = [
@@ -35,6 +36,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals stdenv.isDarwin [
     "--lv2dir=${placeholder "out"}/lib/lv2"
   ];
+  dontAddWafCrossFlags = true;
 
   passthru.tests = {
     inherit pipewire;
diff --git a/pkgs/development/libraries/audio/sratom/default.nix b/pkgs/development/libraries/audio/sratom/default.nix
index 1a40d249fd5e1..67a66dbfe5a29 100644
--- a/pkgs/development/libraries/audio/sratom/default.nix
+++ b/pkgs/development/libraries/audio/sratom/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config wafHook python3 ];
   buildInputs = [ lv2 serd sord ];
+  dontAddWafCrossFlags = true;
 
   meta = with lib; {
     homepage = "http://drobilla.net/software/sratom";
diff --git a/pkgs/development/libraries/avahi/default.nix b/pkgs/development/libraries/avahi/default.nix
index a52d1be566e68..1732b5df04e2a 100644
--- a/pkgs/development/libraries/avahi/default.nix
+++ b/pkgs/development/libraries/avahi/default.nix
@@ -18,7 +18,7 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "avahi${lib.optionalString withLibdnssdCompat "-compat"}-${version}";
+  pname = "avahi${lib.optionalString withLibdnssdCompat "-compat"}";
   version = "0.8";
 
   src = fetchurl {
@@ -33,6 +33,10 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./no-mkdir-localstatedir.patch
+    (fetchpatch {
+      url = "https://github.com/lathiat/avahi/commit/9d31939e55280a733d930b15ac9e4dda4497680c.patch";
+      sha256 = "sha256-BXWmrLWUvDxKPoIPRFBpMS3T4gijRw0J+rndp6iDybU=";
+    })
   ];
 
   buildInputs = [ libdaemon dbus glib expat libiconv libevent ]
diff --git a/pkgs/development/libraries/avro-c/default.nix b/pkgs/development/libraries/avro-c/default.nix
index 76d5839402cf1..e38a748317fb1 100644
--- a/pkgs/development/libraries/avro-c/default.nix
+++ b/pkgs/development/libraries/avro-c/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, cmake, fetchurl, pkg-config, jansson, zlib }:
+{ lib, stdenv, cmake, fetchurl, pkg-config, jansson, lzma, snappy, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "avro-c";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config cmake ];
 
-  buildInputs = [ jansson zlib ];
+  buildInputs = [ jansson lzma snappy zlib ];
 
   meta = with lib; {
     description = "A C library which implements parts of the Avro Specification";
diff --git a/pkgs/development/libraries/aws-c-sdkutils/default.nix b/pkgs/development/libraries/aws-c-sdkutils/default.nix
index f5b5dfaeebc9a..6fb04fbb3a23c 100644
--- a/pkgs/development/libraries/aws-c-sdkutils/default.nix
+++ b/pkgs/development/libraries/aws-c-sdkutils/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-sdkutils";
-  version = "0.1.1";
+  version = "0.1.2";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-c-sdkutils";
     rev = "v${version}";
-    sha256 = "sha256-jYeyNEoJsF67XQAkmC7oegnIRBRD3FXKf5wF/NCVb4o=";
+    sha256 = "sha256-G+ykP39EmI8BCeulTsZ/OSFKRzXVbEK0+mtJ3tugl5M=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/aws-sdk-cpp/default.nix b/pkgs/development/libraries/aws-sdk-cpp/default.nix
index 769cc2d3bd29d..8bf009ddacba5 100644
--- a/pkgs/development/libraries/aws-sdk-cpp/default.nix
+++ b/pkgs/development/libraries/aws-sdk-cpp/default.nix
@@ -1,7 +1,20 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, curl, openssl, s2n-tls, zlib
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, curl
+, openssl
+, s2n-tls
+, zlib
 , aws-crt-cpp
-, aws-c-cal, aws-c-common, aws-c-event-stream, aws-c-io, aws-checksums
-, CoreAudio, AudioToolbox
+, aws-c-cal
+, aws-c-common
+, aws-c-event-stream
+, aws-c-io
+, aws-checksums
+, CoreAudio
+, AudioToolbox
 , # Allow building a limited set of APIs, e.g. ["s3" "ec2"].
   apis ? ["*"]
 , # Whether to enable AWS' custom memory management.
@@ -18,16 +31,33 @@ in
 
 stdenv.mkDerivation rec {
   pname = "aws-sdk-cpp";
-  version = "1.9.150";
+  version = if stdenv.system == "i686-linux" then "1.9.150"
+    else "1.9.238";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "aws-sdk-cpp";
     rev = version;
-    sha256 = "sha256-fgLdXWQKHaCwulrw9KV3vpQ71DjnQAL4heIRW7Rk7UY=";
+    sha256 = if version == "1.9.150" then "fgLdXWQKHaCwulrw9KV3vpQ71DjnQAL4heIRW7Rk7UY="
+      else "sha256-pEmsTfZXsvJMV79dGkjDNbUVajwyoYgzE5DCsC53pGY=";
   };
 
   postPatch = ''
+    # Missing includes for GCC11
+    sed '5i#include <thread>' -i \
+      aws-cpp-sdk-cloudfront-integration-tests/CloudfrontOperationTest.cpp \
+      aws-cpp-sdk-cognitoidentity-integration-tests/IdentityPoolOperationTest.cpp \
+      aws-cpp-sdk-dynamodb-integration-tests/TableOperationTest.cpp \
+      aws-cpp-sdk-elasticfilesystem-integration-tests/ElasticFileSystemTest.cpp \
+      aws-cpp-sdk-lambda-integration-tests/FunctionTest.cpp \
+      aws-cpp-sdk-mediastore-data-integration-tests/MediaStoreDataTest.cpp \
+      aws-cpp-sdk-queues/source/sqs/SQSQueue.cpp \
+      aws-cpp-sdk-redshift-integration-tests/RedshiftClientTest.cpp \
+      aws-cpp-sdk-s3-crt-integration-tests/BucketAndObjectOperationTest.cpp \
+      aws-cpp-sdk-s3-integration-tests/BucketAndObjectOperationTest.cpp \
+      aws-cpp-sdk-s3control-integration-tests/S3ControlTest.cpp \
+      aws-cpp-sdk-sqs-integration-tests/QueueOperationTest.cpp \
+      aws-cpp-sdk-transfer-tests/TransferTests.cpp
     # Flaky on Hydra
     rm aws-cpp-sdk-core-tests/aws/auth/AWSCredentialsProviderTest.cpp
     # Includes aws-c-auth private headers, so only works with submodule build
@@ -82,13 +112,12 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./cmake-dirs.patch
-
-    # fix cmake config
-    (fetchpatch {
-      url = "https://github.com/aws/aws-sdk-cpp/commit/b102aaf5693c4165c84b616ab9ffb9edfb705239.diff";
-      sha256 = "sha256-38QBo3MEFpyHPb8jZEURRPkoeu4DqWhVeErJayiHKF0=";
-    })
-  ];
+  ]
+    ++ lib.optional (lib.versionOlder version "1.9.163")
+      (fetchpatch {
+        url = "https://github.com/aws/aws-sdk-cpp/commit/b102aaf5693c4165c84b616ab9ffb9edfb705239.diff";
+        sha256 = "sha256-38QBo3MEFpyHPb8jZEURRPkoeu4DqWhVeErJayiHKF0=";
+      });
 
   # Builds in 2+h with 2 cores, and ~10m with a big-parallel builder.
   requiredSystemFeatures = [ "big-parallel" ];
diff --git a/pkgs/development/libraries/bash/bash-preexec/default.nix b/pkgs/development/libraries/bash/bash-preexec/default.nix
index fe8f63c685c41..fcdf5619047bc 100644
--- a/pkgs/development/libraries/bash/bash-preexec/default.nix
+++ b/pkgs/development/libraries/bash/bash-preexec/default.nix
@@ -1,6 +1,6 @@
 { stdenvNoCC, lib, fetchFromGitHub, bats }:
 
-let version = "0.4.1";
+let version = "0.5.0";
 in stdenvNoCC.mkDerivation {
   pname = "bash-preexec";
   inherit version;
@@ -9,7 +9,7 @@ in stdenvNoCC.mkDerivation {
     owner = "rcaloras";
     repo = "bash-preexec";
     rev = version;
-    sha256 = "062iigps285628p710i7vh7kmgra5gahq9qiwj7rxir167lg0ggw";
+    sha256 = "sha256-+FU5n7EkY78X5nUiW3WN9+6Bf6oiPjsG2MSRCleooFs=";
   };
 
   checkInputs = [ bats ];
diff --git a/pkgs/development/libraries/bashup-events/generic.nix b/pkgs/development/libraries/bashup-events/generic.nix
index 2f99a26168163..bf46dcd8def2c 100644
--- a/pkgs/development/libraries/bashup-events/generic.nix
+++ b/pkgs/development/libraries/bashup-events/generic.nix
@@ -1,7 +1,7 @@
 {
   # general
   lib
-, resholvePackage
+, resholve
 , bash
 , doCheck ? true
 , doInstallCheck ? true
@@ -32,7 +32,7 @@ let
     '';
 
 in
-resholvePackage rec {
+resholve.mkDerivation rec {
   # bashup.events doesn't version yet but it has two variants with
   # differing features/performance characteristics:
   # - branch master: a variant for bash 3.2+
diff --git a/pkgs/development/libraries/bctoolbox/default.nix b/pkgs/development/libraries/bctoolbox/default.nix
index d189752664628..8187c75874039 100644
--- a/pkgs/development/libraries/bctoolbox/default.nix
+++ b/pkgs/development/libraries/bctoolbox/default.nix
@@ -9,8 +9,8 @@ stdenv.mkDerivation rec {
   pname = "bctoolbox";
   version = "5.1.17";
 
-  nativeBuildInputs = [ cmake bcunit ];
-  buildInputs = [ mbedtls ];
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ mbedtls bcunit ];
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -26,6 +26,8 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = [ "-Wno-error=stringop-truncation" ];
 
+  strictDeps = true;
+
   meta = with lib; {
     description = "Utilities library for Linphone";
     homepage = "https://gitlab.linphone.org/BC/public/bctoolbox";
diff --git a/pkgs/development/libraries/belle-sip/default.nix b/pkgs/development/libraries/belle-sip/default.nix
index 4032734416e4e..e1b517f66bf5f 100644
--- a/pkgs/development/libraries/belle-sip/default.nix
+++ b/pkgs/development/libraries/belle-sip/default.nix
@@ -30,9 +30,10 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DENABLE_STATIC=NO" ];
 
   NIX_CFLAGS_COMPILE = toString [
+    "-Wno-error=cast-function-type"
     "-Wno-error=deprecated-declarations"
     "-Wno-error=format-truncation"
-    "-Wno-error=cast-function-type"
+    "-Wno-error=stringop-overflow"
   ];
 
   propagatedBuildInputs = [ libantlr3c mbedtls bctoolbox ];
diff --git a/pkgs/development/libraries/boost/1.69.nix b/pkgs/development/libraries/boost/1.69.nix
index d934e3267fcb2..c8846daa64f33 100644
--- a/pkgs/development/libraries/boost/1.69.nix
+++ b/pkgs/development/libraries/boost/1.69.nix
@@ -8,4 +8,6 @@ callPackage ./generic.nix (args // rec {
     # SHA256 from http://www.boost.org/users/history/version_1_69_0.html
     sha256 = "8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406";
   };
+
+  patches = [ ./pthread-stack-min-fix.patch ];
 })
diff --git a/pkgs/development/libraries/boost/1.70.nix b/pkgs/development/libraries/boost/1.70.nix
index bc70797acda8d..4d50f41e49ce5 100644
--- a/pkgs/development/libraries/boost/1.70.nix
+++ b/pkgs/development/libraries/boost/1.70.nix
@@ -8,4 +8,6 @@ callPackage ./generic.nix (args // rec {
     # SHA256 from http://www.boost.org/users/history/version_1_70_0.html
     sha256 = "430ae8354789de4fd19ee52f3b1f739e1fba576f0aded0897c3c2bc00fb38778";
   };
+
+  patches = [ ./pthread-stack-min-fix.patch ];
 })
diff --git a/pkgs/development/libraries/boost/1.72.nix b/pkgs/development/libraries/boost/1.72.nix
index bb2fccdfaf786..666a3cacb656a 100644
--- a/pkgs/development/libraries/boost/1.72.nix
+++ b/pkgs/development/libraries/boost/1.72.nix
@@ -11,5 +11,7 @@ callPackage ./generic.nix (args // rec {
     # SHA256 from http://www.boost.org/users/history/version_1_72_0.html
     sha256 = "59c9b274bc451cf91a9ba1dd2c7fdcaf5d60b1b3aa83f2c9fa143417cc660722";
   };
+
+  patches = [ ./pthread-stack-min-fix.patch ];
 })
 
diff --git a/pkgs/development/libraries/boost/1.78.nix b/pkgs/development/libraries/boost/1.78.nix
new file mode 100644
index 0000000000000..a7ec9b0e04e49
--- /dev/null
+++ b/pkgs/development/libraries/boost/1.78.nix
@@ -0,0 +1,15 @@
+{ callPackage, fetchurl, fetchpatch, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+  version = "1.78.0";
+
+  src = fetchurl {
+    urls = [
+      "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
+      "https://dl.bintray.com/boostorg/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
+    ];
+    # SHA256 from http://www.boost.org/users/history/version_1_78_0.html
+    sha256 = "8681f175d4bdb26c52222665793eef08490d7758529330f98d3b29dd0735bccc";
+  };
+})
+
diff --git a/pkgs/development/libraries/boost/default.nix b/pkgs/development/libraries/boost/default.nix
index aeb0878a0d11f..60dbc00f67fcc 100644
--- a/pkgs/development/libraries/boost/default.nix
+++ b/pkgs/development/libraries/boost/default.nix
@@ -45,4 +45,5 @@ in {
   boost174 = makeBoost ./1.74.nix;
   boost175 = makeBoost ./1.75.nix;
   boost177 = makeBoost ./1.77.nix;
+  boost178 = makeBoost ./1.78.nix;
 }
diff --git a/pkgs/development/libraries/boost/generic.nix b/pkgs/development/libraries/boost/generic.nix
index c0fce3ae57602..34ab5554e74b2 100644
--- a/pkgs/development/libraries/boost/generic.nix
+++ b/pkgs/development/libraries/boost/generic.nix
@@ -32,7 +32,7 @@ assert enablePython -> stdenv.hostPlatform == stdenv.buildPlatform;
 assert enableNumpy -> enablePython;
 
 # Boost <1.69 can't be built on linux with clang >8, because pth was removed
-assert with lib; ((stdenv.isLinux && toolset == "clang" && !(versionOlder stdenv.cc.version "8.0.0")) -> !(versionOlder version "1.69"));
+assert with lib; (stdenv.isLinux && toolset == "clang" && versionAtLeast stdenv.cc.version "8.0.0") -> versionAtLeast version "1.69";
 
 with lib;
 let
@@ -68,7 +68,7 @@ let
     else
       "$NIX_BUILD_CORES";
 
-  needUserConfig = stdenv.hostPlatform != stdenv.buildPlatform || useMpi || stdenv.isDarwin;
+  needUserConfig = stdenv.hostPlatform != stdenv.buildPlatform || useMpi || (stdenv.isDarwin && enableShared);
 
   b2Args = concatStringsSep " " ([
     "--includedir=$dev/include"
@@ -84,7 +84,9 @@ let
     # TODO: make this unconditional
   ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     "address-model=${toString stdenv.hostPlatform.parsed.cpu.bits}"
-    "architecture=${toString stdenv.hostPlatform.parsed.cpu.family}"
+    "architecture=${if stdenv.hostPlatform.isMips64
+                    then if versionOlder version "1.78" then "mips1" else "mips"
+                    else toString stdenv.hostPlatform.parsed.cpu.family}"
     "binary-format=${toString stdenv.hostPlatform.parsed.kernel.execFormat.name}"
     "target-os=${toString stdenv.hostPlatform.parsed.kernel.name}"
 
@@ -92,7 +94,8 @@ let
     # https://www.boost.org/doc/libs/1_66_0/libs/context/doc/html/context/architectures.html
     "abi=${if stdenv.hostPlatform.parsed.cpu.family == "arm" then "aapcs"
            else if stdenv.hostPlatform.isWindows then "ms"
-           else if stdenv.hostPlatform.isMips then "o32"
+           else if stdenv.hostPlatform.isMips32 then "o32"
+           else if stdenv.hostPlatform.isMips64n64 then "n64"
            else "sysv"}"
   ] ++ optional (link != "static") "runtime-link=${runtime-link}"
     ++ optional (variant == "release") "debug-symbols=off"
@@ -133,7 +136,14 @@ stdenv.mkDerivation {
       sha256 = "15d2a636hhsb1xdyp44x25dyqfcaws997vnp9kl1mhzvxjzz7hb0";
       stripLen = 1;
     })
-  ++ optional (and (versionAtLeast version "1.70") (!versionAtLeast version "1.73")) ./cmake-paths.patch
+  ++ optional (versionAtLeast version "1.65" && versionOlder version "1.70") (fetchpatch {
+    # support for Mips64n64 appeared in boost-context 1.70; this patch won't apply to pre-1.65 cleanly
+    url = "https://github.com/boostorg/context/commit/e3f744a1862164062d579d1972272d67bdaa9c39.patch";
+    sha256 = "sha256-qjQy1b4jDsIRrI+UYtcguhvChrMbGWO0UlEzEJHYzRI=";
+    stripLen = 1;
+    extraPrefix = "libs/context/";
+  })
+  ++ optional (versionAtLeast version "1.70" && versionOlder version "1.73") ./cmake-paths.patch
   ++ optional (versionAtLeast version "1.73") ./cmake-paths-173.patch
   ++ optional (version == "1.77.0") (fetchpatch {
     url = "https://github.com/boostorg/math/commit/7d482f6ebc356e6ec455ccb5f51a23971bf6ce5b.patch";
@@ -150,6 +160,14 @@ stdenv.mkDerivation {
                  ++ optional ((versionOlder version "1.57") || version == "1.58") "x86_64-darwin"
                  ++ optionals (versionOlder version "1.73") lib.platforms.riscv;
     maintainers = with maintainers; [ hjones2199 ];
+
+    broken =
+      # boost-context lacks support for the N32 ABI on mips64.  The build
+      # will succeed, but packages depending on boost-context will fail with
+      # a very cryptic error message.
+      stdenv.hostPlatform.isMips64n32 ||
+      # the patch above does not apply cleanly to pre-1.65 boost
+      (stdenv.hostPlatform.isMips64n64 && (versionOlder version "1.65"));
   };
 
   preConfigure = optionalString useMpi ''
diff --git a/pkgs/development/libraries/boost/pthread-stack-min-fix.patch b/pkgs/development/libraries/boost/pthread-stack-min-fix.patch
new file mode 100644
index 0000000000000..b6c85f8405298
--- /dev/null
+++ b/pkgs/development/libraries/boost/pthread-stack-min-fix.patch
@@ -0,0 +1,15 @@
+Taken from https://github.com/conan-io/conan-center-index/pull/361/files
+
+diff --git a/include/boost/thread/pthread/thread_data.hpp b/include/boost/thread/pthread/thread_data.hpp
+index aefbeb4..bc9b136 100644
+--- a/boost/thread/pthread/thread_data.hpp
++++ b/boost/thread/pthread/thread_data.hpp
+@@ -57,7 +57,7 @@ namespace boost
+ #else
+           std::size_t page_size = ::sysconf( _SC_PAGESIZE);
+ #endif
+-#if PTHREAD_STACK_MIN > 0
++#ifdef PTHREAD_STACK_MIN
+           if (size<PTHREAD_STACK_MIN) size=PTHREAD_STACK_MIN;
+ #endif
+           size = ((size+page_size-1)/page_size)*page_size;
diff --git a/pkgs/development/libraries/bullet/default.nix b/pkgs/development/libraries/bullet/default.nix
index 6a33d2ce20436..e37da386cd6d2 100644
--- a/pkgs/development/libraries/bullet/default.nix
+++ b/pkgs/development/libraries/bullet/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bullet";
-  version = "3.22a";
+  version = "3.22b";
 
   src = fetchFromGitHub {
     owner = "bulletphysics";
     repo = "bullet3";
     rev = version;
-    sha256 = "sha256-Ng+kg720y69aE0FgTnD60F05zwUX/LzLlImnrODzOuo=";
+    sha256 = "sha256-hf2b7enh9mziPKFcdU8NwLdhcxhV7Ididf9Bwwa+5/M=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/catch/default.nix b/pkgs/development/libraries/catch/default.nix
index c89fbd477c960..c4d64a0f47878 100644
--- a/pkgs/development/libraries/catch/default.nix
+++ b/pkgs/development/libraries/catch/default.nix
@@ -20,6 +20,12 @@ stdenv.mkDerivation rec {
       url = "https://github.com/catchorg/Catch2/commit/bb6d08323f23a39eb65dd86671e68f4f5d3f2d6c.patch";
       sha256 = "1vhbzx84nrhhf9zlbl6h5zmg3r5w5v833ihlswsysb9wp2i4isc5";
     })
+
+    # Fix glibc-2.34 build
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/catch1/raw/23276476148a657e7a45ade547f858cbf965a33a/f/catch1-sigstksz.patch";
+      sha256 = "sha256-XSsI3iDEZCUSbozlYWC0y/LZ7qr/5zwACpn1jHKD0yU=";
+    })
   ];
 
   doCheck = true;
diff --git a/pkgs/development/libraries/cgreen/default.nix b/pkgs/development/libraries/cgreen/default.nix
index 85532bfd74b03..f8790791798df 100644
--- a/pkgs/development/libraries/cgreen/default.nix
+++ b/pkgs/development/libraries/cgreen/default.nix
@@ -11,6 +11,12 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-aQrfsiPuNrEMscZrOoONiN665KlNmnOiYj9ZIyzW304=";
   };
 
+  postPatch = ''
+    for F in tools/discoverer_acceptance_tests.c tools/discoverer.c; do
+      substituteInPlace "$F" --replace "/usr/bin/nm" "nm"
+    done
+  '';
+
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/civetweb/default.nix b/pkgs/development/libraries/civetweb/default.nix
index bf737972612be..3222702f5a1a7 100644
--- a/pkgs/development/libraries/civetweb/default.nix
+++ b/pkgs/development/libraries/civetweb/default.nix
@@ -30,8 +30,9 @@ stdenv.mkDerivation rec {
   '';
 
   cmakeFlags = [
-    "-DCIVETWEB_ENABLE_CXX=ON"
     "-DBUILD_SHARED_LIBS=ON"
+    "-DCIVETWEB_ENABLE_CXX=ON"
+    "-DCIVETWEB_ENABLE_IPV6=ON"
 
     # The civetweb unit tests rely on downloading their fork of libcheck.
     "-DCIVETWEB_BUILD_TESTING=OFF"
diff --git a/pkgs/development/libraries/clucene-core/2.x.nix b/pkgs/development/libraries/clucene-core/2.x.nix
index 52caa26c9c58b..861e9179e0948 100644
--- a/pkgs/development/libraries/clucene-core/2.x.nix
+++ b/pkgs/development/libraries/clucene-core/2.x.nix
@@ -20,11 +20,14 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     "-D_CL_HAVE_GCC_ATOMIC_FUNCTIONS=0"
     "-D_CL_HAVE_NAMESPACES_EXITCODE=0"
+    "-D_CL_HAVE_NAMESPACES_EXITCODE__TRYRUN_OUTPUT="
     "-D_CL_HAVE_NO_SNPRINTF_BUG_EXITCODE=0"
-    "-D_CL_HAVE_NO_SNWPRINTF_BUG_EXITCODE=0"
+    "-D_CL_HAVE_NO_SNPRINTF_BUG_EXITCODE__TRYRUN_OUTPUT="
     "-D_CL_HAVE_TRY_BLOCKS_EXITCODE=0"
+    "-D_CL_HAVE_TRY_BLOCKS_EXITCODE__TRYRUN_OUTPUT="
     "-D_CL_HAVE_PTHREAD_MUTEX_RECURSIVE=0"
     "-DLUCENE_STATIC_CONSTANT_SYNTAX_EXITCODE=0"
+    "-DLUCENE_STATIC_CONSTANT_SYNTAX_EXITCODE__TRYRUN_OUTPUT="
   ];
 
   patches = # From debian
diff --git a/pkgs/development/libraries/clucene-core/default.nix b/pkgs/development/libraries/clucene-core/default.nix
index 6f0eb8dfff008..c767e9f1d2f9f 100644
--- a/pkgs/development/libraries/clucene-core/default.nix
+++ b/pkgs/development/libraries/clucene-core/default.nix
@@ -11,6 +11,10 @@ stdenv.mkDerivation rec {
 
   patches = [ ./gcc6.patch ];
 
+  NIX_CFLAGS_COMPILE = [
+    "-std=c++11"
+  ];
+
   meta = with lib; {
     description = "Core library for full-featured text search engine";
     longDescription = ''
diff --git a/pkgs/development/libraries/cpp-hocon/default.nix b/pkgs/development/libraries/cpp-hocon/default.nix
index dfe7f77767038..bba2e03f8d59b 100644
--- a/pkgs/development/libraries/cpp-hocon/default.nix
+++ b/pkgs/development/libraries/cpp-hocon/default.nix
@@ -11,6 +11,10 @@ stdenv.mkDerivation rec {
     owner = "puppetlabs";
   };
 
+  postPatch = ''
+    sed -i -e '/add_subdirectory(tests)/d' lib/CMakeLists.txt
+  '';
+
   NIX_CFLAGS_COMPILE = "-Wno-error";
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/cpp-ipfs-api/default.nix b/pkgs/development/libraries/cpp-ipfs-api/default.nix
index 839ddb9b76fb8..315a477e72ad1 100644
--- a/pkgs/development/libraries/cpp-ipfs-api/default.nix
+++ b/pkgs/development/libraries/cpp-ipfs-api/default.nix
@@ -15,6 +15,10 @@ stdenv.mkDerivation {
   buildInputs = [ curl ];
   propagatedBuildInputs = [ nlohmann_json ];
 
+  NIX_CFLAGS_COMPILE = [
+    "-Wno-error=range-loop-construct"
+  ];
+
   meta = with lib; {
     description = "IPFS C++ API client library";
     homepage = "https://github.com/vasild/cpp-ipfs-api";
diff --git a/pkgs/development/libraries/cpp-utilities/default.nix b/pkgs/development/libraries/cpp-utilities/default.nix
index a3de08a838bc9..996609451bf1a 100644
--- a/pkgs/development/libraries/cpp-utilities/default.nix
+++ b/pkgs/development/libraries/cpp-utilities/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cpp-utilities";
-  version = "5.13.0";
+  version = "5.14.0";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-R22nWkI778LpCK3a5C6tvuIsEXU49wPya1fFQxdpocg=";
+    sha256 = "sha256-WS/2iLwVIYZBu4/uuKgEQ5H/BdeG2aMeZBucFPvlOpI=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/cutelyst/default.nix b/pkgs/development/libraries/cutelyst/default.nix
index 9f7d020feaf78..d7fe4e92802b2 100644
--- a/pkgs/development/libraries/cutelyst/default.nix
+++ b/pkgs/development/libraries/cutelyst/default.nix
@@ -14,20 +14,28 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
-  buildInputs = [ qtbase libuuid libcap uwsgi grantlee pcre ];
+  buildInputs = [
+    qtbase
+    grantlee
+  ] ++ lib.optionals stdenv.isLinux [
+    libuuid
+    libcap
+    uwsgi
+    pcre
+  ];
 
   cmakeFlags = [
-    "-DPLUGIN_UWSGI=ON"
+    "-DPLUGIN_UWSGI=${if stdenv.isLinux then "ON" else "OFF"}" # Missing uwsgi symbols on Darwin
     "-DPLUGIN_STATICCOMPRESSED=ON"
     "-DPLUGIN_CSRFPROTECTION=ON"
     "-DPLUGIN_VIEW_GRANTLEE=ON"
   ];
 
-  preBuild = ''
+  preBuild = lib.optionalString stdenv.isLinux ''
     export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}`pwd`/Cutelyst:`pwd`/EventLoopEPoll"
   '';
 
-  postBuild = ''
+  postBuild = lib.optionalString stdenv.isLinux ''
     unset LD_LIBRARY_PATH
   '';
 
@@ -35,6 +43,7 @@ stdenv.mkDerivation rec {
     description = "C++ Web Framework built on top of Qt";
     homepage = "https://cutelyst.org/";
     license = licenses.lgpl21Plus;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ fpletz ];
   };
 }
diff --git a/pkgs/development/libraries/cwiid/default.nix b/pkgs/development/libraries/cwiid/default.nix
index 31a5420e375c8..e640b6cbbbabf 100644
--- a/pkgs/development/libraries/cwiid/default.nix
+++ b/pkgs/development/libraries/cwiid/default.nix
@@ -1,8 +1,8 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook, bison, flex, bluez, pkg-config, gtk2 }:
 
 stdenv.mkDerivation rec {
-  name = "cwiid-${version}-git";
-  version = "2010-02-21";
+  pname = "cwiid";
+  version = "unstable-2010-02-21";
 
   src = fetchFromGitHub {
     owner  = "abstrakraft";
diff --git a/pkgs/development/libraries/cxxopts/default.nix b/pkgs/development/libraries/cxxopts/default.nix
index 9d3ea6f32de3d..5d12b3c19ee3c 100644
--- a/pkgs/development/libraries/cxxopts/default.nix
+++ b/pkgs/development/libraries/cxxopts/default.nix
@@ -8,12 +8,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "cxxopts";
+  pname = "cxxopts";
   version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "jarro2783";
-    repo = name;
+    repo = "cxxopts";
     rev = "v${version}";
     sha256 = "08x7j168l1xwj0r3rv89cgghmfhsx98lpq35r3vkh504m1pd55a6";
   };
diff --git a/pkgs/development/libraries/cyrus-sasl/cyrus-sasl-ac-try-run-fix.patch b/pkgs/development/libraries/cyrus-sasl/cyrus-sasl-ac-try-run-fix.patch
index 8662e812e9956..f0376792e0028 100644
--- a/pkgs/development/libraries/cyrus-sasl/cyrus-sasl-ac-try-run-fix.patch
+++ b/pkgs/development/libraries/cyrus-sasl/cyrus-sasl-ac-try-run-fix.patch
@@ -1,12 +1,13 @@
---- a/m4/sasl2.m4	2018-11-18 22:33:29.902625600 +0300
-+++ b/m4/sasl2.m4	2018-11-18 22:33:59.828746176 +0300
-@@ -339,7 +339,8 @@
- ],	
- 	[ AC_DEFINE(HAVE_GSS_SPNEGO,,[Define if your GSSAPI implementation supports SPNEGO])
- 	AC_MSG_RESULT(yes) ],
--	AC_MSG_RESULT(no))
-+	AC_MSG_RESULT(no),
-+    AC_MSG_RESULT(no))
-   LIBS="$cmu_save_LIBS"
+diff --git a/m4/sasl2.m4 b/m4/sasl2.m4
+index 098c853a..91d98def 100644
+--- a/m4/sasl2.m4
++++ b/m4/sasl2.m4
+@@ -350,7 +350,7 @@ int main(void)
  
- else
+     return (!have_spnego);  // 0 = success, 1 = failure
+ }
+-],[ac_cv_gssapi_supports_spnego=yes],[ac_cv_gssapi_supports_spnego=no])
++],[ac_cv_gssapi_supports_spnego=yes],[ac_cv_gssapi_supports_spnego=no],[ac_cv_gssapi_supports_spnego=no])
+     LIBS="$cmu_save_LIBS"
+   ])
+   AS_IF([test "$ac_cv_gssapi_supports_spnego" = yes],[
diff --git a/pkgs/development/libraries/cyrus-sasl/default.nix b/pkgs/development/libraries/cyrus-sasl/default.nix
index 6e97c61a6a5e9..be20a9b1678df 100644
--- a/pkgs/development/libraries/cyrus-sasl/default.nix
+++ b/pkgs/development/libraries/cyrus-sasl/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, openssl, openldap, libkrb5, db, gettext
 , pam, fixDarwinDylibNames, autoreconfHook, enableLdap ? false
-, buildPackages, pruneLibtoolFiles, fetchpatch }:
+, buildPackages, pruneLibtoolFiles, nixosTests }:
 
 with lib;
 stdenv.mkDerivation rec {
   pname = "cyrus-sasl";
-  version = "2.1.27";
+  version = "2.1.28";
 
   src = fetchurl {
     urls =
@@ -13,9 +13,14 @@ stdenv.mkDerivation rec {
         "http://www.cyrusimap.org/releases/${pname}-${version}.tar.gz"
         "http://www.cyrusimap.org/releases/old/${pname}-${version}.tar.gz"
       ];
-    sha256 = "1m85zcpgfdhm43cavpdkhb1s2zq1b31472hq1w1gs3xh94anp1i6";
+    sha256 = "sha256-fM/Gq9Ae1nwaCSSzU+Um8bdmsh9C1FYu5jWo6/xbs4w=";
   };
 
+  patches = [
+    # Fix cross-compilation
+    ./cyrus-sasl-ac-try-run-fix.patch
+  ];
+
   outputs = [ "bin" "dev" "out" "man" "devdoc" ];
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
@@ -26,16 +31,6 @@ stdenv.mkDerivation rec {
     ++ lib.optional enableLdap openldap
     ++ lib.optional stdenv.isLinux pam;
 
-  patches = [
-    ./missing-size_t.patch # https://bugzilla.redhat.com/show_bug.cgi?id=906519
-    ./cyrus-sasl-ac-try-run-fix.patch
-    (fetchpatch {
-      name = "CVE-2019-19906.patch";
-      url = "https://sources.debian.org/data/main/c/cyrus-sasl2/2.1.27+dfsg-1+deb10u1/debian/patches/0021-CVE-2019-19906.patch";
-      sha256 = "1n4c5wg7l9j8rlbvx8i605j5d39xmj5wm618k8acxl4fmglcmfls";
-    })
-  ];
-
   configureFlags = [
     "--with-openssl=${openssl.dev}"
     "--with-plugindir=${placeholder "out"}/lib/sasl2"
@@ -46,6 +41,10 @@ stdenv.mkDerivation rec {
 
   installFlags = lib.optional stdenv.isDarwin [ "framedir=$(out)/Library/Frameworks/SASL2.framework" ];
 
+  passthru.tests = {
+    inherit (nixosTests) parsedmarc postfix;
+  };
+
   meta = {
     homepage = "https://www.cyrusimap.org/sasl";
     description = "Library for adding authentication support to connection-based protocols";
diff --git a/pkgs/development/libraries/cyrus-sasl/missing-size_t.patch b/pkgs/development/libraries/cyrus-sasl/missing-size_t.patch
deleted file mode 100644
index da96818ca267f..0000000000000
--- a/pkgs/development/libraries/cyrus-sasl/missing-size_t.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Gentoo bug #458790
---- a/include/sasl.h	2012-10-12 17:05:48.000000000 +0300
-+++ b/include/sasl.h	2013-02-23 16:56:44.648786268 +0200
-@@ -121,6 +121,9 @@
- #ifndef SASL_H
- #define SASL_H 1
- 
-+/* stddef.h to get size_t defined */
-+#include <stddef.h>
-+
- /* Keep in sync with win32/common.mak */
- #define SASL_VERSION_MAJOR 2
- #define SASL_VERSION_MINOR 1
diff --git a/pkgs/development/libraries/dav1d/default.nix b/pkgs/development/libraries/dav1d/default.nix
index b39e092360960..180480985ac78 100644
--- a/pkgs/development/libraries/dav1d/default.nix
+++ b/pkgs/development/libraries/dav1d/default.nix
@@ -10,14 +10,14 @@ assert useVulkan -> withExamples;
 
 stdenv.mkDerivation rec {
   pname = "dav1d";
-  version = "0.9.2";
+  version = "1.0.0";
 
   src = fetchFromGitLab {
     domain = "code.videolan.org";
     owner = "videolan";
     repo = pname;
     rev = version;
-    sha256 = "0bkps488h9s15ylvkm4fmfywgrpbw570glawpnv6khpq9n223dzl";
+    sha256 = "sha256-RVr7NFVxY+6MBD8NV7eMW8TEWuCgcfqpula1o1VZe0o=";
   };
 
   nativeBuildInputs = [ meson ninja nasm pkg-config ];
@@ -31,6 +31,8 @@ stdenv.mkDerivation rec {
     "-Denable_examples=${lib.boolToString withExamples}"
   ];
 
+  doCheck = true;
+
   meta = with lib; {
     description = "A cross-platform AV1 decoder focused on speed and correctness";
     longDescription = ''
diff --git a/pkgs/development/libraries/dotconf/default.nix b/pkgs/development/libraries/dotconf/default.nix
index 39d71eee432b6..fed050f64b6ef 100644
--- a/pkgs/development/libraries/dotconf/default.nix
+++ b/pkgs/development/libraries/dotconf/default.nix
@@ -1,7 +1,7 @@
 { fetchFromGitHub, lib, stdenv, autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  name = "dotconf-" + version;
+  pname = "dotconf";
   version = "1.3";
 
   src = fetchFromGitHub {
diff --git a/pkgs/development/libraries/duckdb/default.nix b/pkgs/development/libraries/duckdb/default.nix
index 7d12d9fabf2f7..9e253588e2a57 100644
--- a/pkgs/development/libraries/duckdb/default.nix
+++ b/pkgs/development/libraries/duckdb/default.nix
@@ -16,13 +16,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "duckdb";
-  version = "0.3.2";
+  version = "0.3.3";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-F5YOqDeY3rgcnuu5SNqOfUxhsaXgqvdJZTnD1unI0tc=";
+    sha256 = "sha256-WxJj5hOJsRuKUHjpGZWsa0PxRZZJcX88p1/typ+yqEw=";
   };
 
   patches = [ ./version.patch ];
diff --git a/pkgs/development/libraries/expat/default.nix b/pkgs/development/libraries/expat/default.nix
index ac54ced75b1b9..a05f3b71fb46e 100644
--- a/pkgs/development/libraries/expat/default.nix
+++ b/pkgs/development/libraries/expat/default.nix
@@ -16,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "expat";
-  version = "2.4.6";
+  version = "2.4.7";
 
   src = fetchurl {
     url = "https://github.com/libexpat/libexpat/releases/download/R_${lib.replaceStrings ["."] ["_"] version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-3lV5S3qbwhSFL9wHW+quzYVO/hNhWX5iaO6HlGlRKJs=";
+    sha256 = "0zbss0dssn17mjmvk17qfi5cmvm0lcyzs62cwvqr219hhl864xcq";
   };
 
   outputs = [ "out" "dev" ]; # TODO: fix referrers
@@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
 
   passthru.tests = {
     inherit python3;
+    inherit (python3.pkgs) xmltodict;
     inherit (haskellPackages) hexpat;
     inherit (perlPackages) XMLSAXExpat XMLParser;
     inherit (luaPackages) luaexpat;
diff --git a/pkgs/development/libraries/faudio/default.nix b/pkgs/development/libraries/faudio/default.nix
index baf2b10243796..58601c39a57f7 100644
--- a/pkgs/development/libraries/faudio/default.nix
+++ b/pkgs/development/libraries/faudio/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "faudio";
-  version = "21.10";
+  version = "22.02";
 
   src = fetchFromGitHub {
     owner = "FNA-XNA";
     repo = "FAudio";
     rev = version;
-    sha256 = "sha256-gh/QYH25j9A+XalW6ajRjs+yOYEfkZmw11CHjR6LK1E=";
+    sha256 = "sha256-qjXFpxoFF70aOaEq9/JfI2DtFxxHjyK2OnDaXMiqQMM=";
   };
 
   nativeBuildInputs = [cmake];
diff --git a/pkgs/development/libraries/ffmpeg/0001-fate-ffmpeg-add-missing-samples-dependency-to-fate-s.patch b/pkgs/development/libraries/ffmpeg/0001-fate-ffmpeg-add-missing-samples-dependency-to-fate-s.patch
deleted file mode 100644
index ac016069357df..0000000000000
--- a/pkgs/development/libraries/ffmpeg/0001-fate-ffmpeg-add-missing-samples-dependency-to-fate-s.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From a66b58d61caaae452785a2d69f5de9259ab27138 Mon Sep 17 00:00:00 2001
-From: James Almer <jamrial@gmail.com>
-Date: Sun, 16 Jan 2022 00:32:52 -0300
-Subject: [PATCH] fate/ffmpeg: add missing samples dependency to fate-shortest
-
-Signed-off-by: James Almer <jamrial@gmail.com>
-(cherry picked from commit b1ef5882e35d1a95e9c4838d0933084773055345)
----
- tests/fate/ffmpeg.mak | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/fate/ffmpeg.mak b/tests/fate/ffmpeg.mak
-index 0b00bb5b23..b80467d02e 100644
---- a/tests/fate/ffmpeg.mak
-+++ b/tests/fate/ffmpeg.mak
-@@ -86,7 +86,7 @@ fate-unknown_layout-ac3: CMD = md5 -auto_conversion_filters \
-   -guess_layout_max 0 -f s32le -ac 1 -ar 44100 -i $(TARGET_PATH)/$(AREF) \
-   -f ac3 -flags +bitexact -c ac3_fixed
- 
--FATE_FFMPEG-$(call ALLYES, FILE_PROTOCOL LAVFI_INDEV RAWVIDEO_DEMUXER      \
-+FATE_SAMPLES_FFMPEG-$(call ALLYES, FILE_PROTOCOL LAVFI_INDEV RAWVIDEO_DEMUXER \
-                            SINE_FILTER PCM_S16LE_DECODER RAWVIDEO_DECODER  \
-                            ARESAMPLE_FILTER AMIX_FILTER MPEG4_ENCODER      \
-                            AC3_FIXED_ENCODER FRAMECRC_MUXER PIPE_PROTOCOL) \
--- 
-2.33.1
-
diff --git a/pkgs/development/libraries/ffmpeg/5.nix b/pkgs/development/libraries/ffmpeg/5.nix
index 7b79ddff77ebb..b5dff5a282e25 100644
--- a/pkgs/development/libraries/ffmpeg/5.nix
+++ b/pkgs/development/libraries/ffmpeg/5.nix
@@ -5,10 +5,8 @@
 }@args:
 
 callPackage ./generic.nix (rec {
-  version = "5.0";
+  version = "5.0.1";
   branch = version;
-  sha256 = "1ndy6a2bhl6nvz9grmcaakh4xi0vss455466s47l6qy7na6hn4y0";
+  sha256 = "sha256-KN8z1AChwcGyDQepkZeAmjuI73ZfXwfcH/Bn+sZMWdY=";
   darwinFrameworks = [ Cocoa CoreMedia VideoToolbox ];
-
-  patches = [ ./0001-fate-ffmpeg-add-missing-samples-dependency-to-fate-s.patch ];
 } // args)
diff --git a/pkgs/development/libraries/flatcc/default.nix b/pkgs/development/libraries/flatcc/default.nix
index 6b40814119c66..488cb6846d08d 100644
--- a/pkgs/development/libraries/flatcc/default.nix
+++ b/pkgs/development/libraries/flatcc/default.nix
@@ -21,6 +21,11 @@ stdenv.mkDerivation rec {
     "-DCMAKE_BUILD_TYPE=Release"
   ];
 
+  NIX_CFLAGS_COMPILE = [
+    "-Wno-error=misleading-indentation"
+    "-Wno-error=stringop-overflow"
+  ];
+
   meta = {
     description = "FlatBuffers Compiler and Library in C for C ";
     homepage = "https://github.com/dvidelabs/flatcc";
diff --git a/pkgs/development/libraries/flint/default.nix b/pkgs/development/libraries/flint/default.nix
index 6873508eb7dcd..0c2a07149d206 100644
--- a/pkgs/development/libraries/flint/default.nix
+++ b/pkgs/development/libraries/flint/default.nix
@@ -42,6 +42,8 @@ stdenv.mkDerivation rec {
     "--with-blas=${openblas}"
   ];
 
+  enableParallelBuilding = true;
+
   doCheck = true;
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/fltk/common.nix b/pkgs/development/libraries/fltk/common.nix
index 06e1c05c7d072..54c8b4094f162 100644
--- a/pkgs/development/libraries/fltk/common.nix
+++ b/pkgs/development/libraries/fltk/common.nix
@@ -36,7 +36,6 @@
 , withDocs ? true
 , doxygen
 , graphviz
-, texlive
 
 , withExamples ? true
 , withShared ? true
@@ -44,11 +43,6 @@
 
 let
   onOff = value: if value then "ON" else "OFF";
-  tex = texlive.combine {
-    inherit (texlive)
-      scheme-medium varwidth multirow hanging adjustbox collectbox stackengine
-      sectsty tocloft newunicodechar etoc;
-  };
 in
 stdenv.mkDerivation rec {
   pname = "fltk";
@@ -81,7 +75,6 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals withDocs [
     doxygen
     graphviz
-    tex
   ];
 
   buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
@@ -149,9 +142,9 @@ stdenv.mkDerivation rec {
 
     # Docs
     "-DOPTION_BUILD_HTML_DOCUMENTATION=${onOff withDocs}"
-    "-DOPTION_BUILD_PDF_DOCUMENTATION=${onOff withDocs}"
+    "-DOPTION_BUILD_PDF_DOCUMENTATION=OFF"
     "-DOPTION_INSTALL_HTML_DOCUMENTATION=${onOff withDocs}"
-    "-DOPTION_INSTALL_PDF_DOCUMENTATION=${onOff withDocs}"
+    "-DOPTION_INSTALL_PDF_DOCUMENTATION=OFF"
     "-DOPTION_INCLUDE_DRIVER_DOCUMENTATION=${onOff withDocs}"
   ];
 
diff --git a/pkgs/development/libraries/freeimage/default.nix b/pkgs/development/libraries/freeimage/default.nix
index 2b4b174ca31bb..b132b3fae8ceb 100644
--- a/pkgs/development/libraries/freeimage/default.nix
+++ b/pkgs/development/libraries/freeimage/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation {
   pname = "freeimage";
-  version = "unstable-2020-07-04";
+  version = "unstable-2021-11-01";
 
   src = fetchsvn {
     url = "svn://svn.code.sf.net/p/freeimage/svn/";
-    rev = "1859";
-    sha256 = "1d94935aqbkb994nqkw7m8xcynyz9rm6k7k59igrbjak8b63qpi6";
+    rev = "1900";
+    sha256 = "rWoNlU/BWKZBPzRb1HqU6T0sT7aK6dpqKPe88+o/4sA=";
   };
-  sourceRoot = "svn-r1859/FreeImage/trunk";
+  sourceRoot = "svn-r1900/FreeImage/trunk";
 
   # Ensure that the bundled libraries are not used at all
   prePatch = "rm -rf Source/Lib* Source/OpenEXR Source/ZLib";
diff --git a/pkgs/development/libraries/freeimage/unbundle.diff b/pkgs/development/libraries/freeimage/unbundle.diff
index 22dac720155ab..99a7cfb4ca355 100644
--- a/pkgs/development/libraries/freeimage/unbundle.diff
+++ b/pkgs/development/libraries/freeimage/unbundle.diff
@@ -1,5 +1,5 @@
 diff --git a/Makefile.fip b/Makefile.fip
-index 660a026..86b3040 100644
+index 660a0265..86b30401 100644
 --- a/Makefile.fip
 +++ b/Makefile.fip
 @@ -11,32 +11,21 @@ INSTALLDIR ?= $(DESTDIR)/usr/lib
@@ -54,7 +54,7 @@ index 660a026..86b3040 100644
  	ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)	
  
 diff --git a/Makefile.gnu b/Makefile.gnu
-index a4f2601..be95476 100644
+index a4f26013..be954761 100644
 --- a/Makefile.gnu
 +++ b/Makefile.gnu
 @@ -11,32 +11,21 @@ INSTALLDIR ?= $(DESTDIR)/usr/lib
@@ -110,7 +110,7 @@ index a4f2601..be95476 100644
  clean:
  	rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)
 diff --git a/Makefile.osx b/Makefile.osx
-index c39121d..3800e39 100644
+index c39121db..3800e39d 100644
 --- a/Makefile.osx
 +++ b/Makefile.osx
 @@ -10,24 +10,25 @@ MACOSX_SYSROOT = $(shell xcrun --show-sdk-path)
@@ -185,21 +185,21 @@ index c39121d..3800e39 100644
  	ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(LIBNAME)
  
 diff --git a/Makefile.srcs b/Makefile.srcs
-index 0b8d3a0..b706fd0 100644
+index 692c6e56..212195b2 100644
 --- a/Makefile.srcs
 +++ b/Makefile.srcs
 @@ -1,6 +1,6 @@
  VER_MAJOR = 3
  VER_MINOR = 19.0
--SRCS = ./Source/FreeImage/BitmapAccess.cpp ./Source/FreeImage/ColorLookup.cpp ./Source/FreeImage/ConversionRGBA16.cpp ./Source/FreeImage/ConversionRGBAF.cpp ./Source/FreeImage/FreeImage.cpp ./Source/FreeImage/FreeImageC.c ./Source/FreeImage/FreeImageIO.cpp ./Source/FreeImage/GetType.cpp ./Source/FreeImage/LFPQuantizer.cpp ./Source/FreeImage/MemoryIO.cpp ./Source/FreeImage/PixelAccess.cpp ./Source/FreeImage/J2KHelper.cpp ./Source/FreeImage/MNGHelper.cpp ./Source/FreeImage/Plugin.cpp ./Source/FreeImage/PluginBMP.cpp ./Source/FreeImage/PluginCUT.cpp ./Source/FreeImage/PluginDDS.cpp ./Source/FreeImage/PluginEXR.cpp ./Source/FreeImage/PluginG3.cpp ./Source/FreeImage/PluginGIF.cpp ./Source/FreeImage/PluginHDR.cpp ./Source/FreeImage/PluginICO.cpp ./Source/FreeImage/PluginIFF.cpp ./Source/FreeImage/PluginJ2K.cpp ./Source/FreeImage/PluginJNG.cpp ./Source/FreeImage/PluginJP2.cpp ./Source/FreeImage/PluginJPEG.cpp ./Source/FreeImage/PluginJXR.cpp ./Source/FreeImage/PluginKOALA.cpp ./Source/FreeImage/PluginMNG.cpp ./Source/FreeImage/PluginPCD.cpp ./Source/FreeImage/PluginPCX.cpp ./Source/FreeImage/PluginPFM.cpp ./Source/FreeImage/PluginPICT.cpp ./Source/FreeImage/PluginPNG.cpp ./Source/FreeImage/PluginPNM.cpp ./Source/FreeImage/PluginPSD.cpp ./Source/FreeImage/PluginRAS.cpp ./Source/FreeImage/PluginRAW.cpp ./Source/FreeImage/PluginSGI.cpp ./Source/FreeImage/PluginTARGA.cpp ./Source/FreeImage/PluginTIFF.cpp ./Source/FreeImage/PluginWBMP.cpp ./Source/FreeImage/PluginWebP.cpp ./Source/FreeImage/PluginXBM.cpp ./Source/FreeImage/PluginXPM.cpp ./Source/FreeImage/PSDParser.cpp ./Source/FreeImage/TIFFLogLuv.cpp ./Source/FreeImage/Conversion.cpp ./Source/FreeImage/Conversion16_555.cpp ./Source/FreeImage/Conversion16_565.cpp ./Source/FreeImage/Conversion24.cpp ./Source/FreeImage/Conversion32.cpp ./Source/FreeImage/Conversion4.cpp ./Source/FreeImage/Conversion8.cpp ./Source/FreeImage/ConversionFloat.cpp ./Source/FreeImage/ConversionRGB16.cpp ./Source/FreeImage/ConversionRGBF.cpp ./Source/FreeImage/ConversionType.cpp ./Source/FreeImage/ConversionUINT16.cpp ./Source/FreeImage/Halftoning.cpp ./Source/FreeImage/tmoColorConvert.cpp ./Source/FreeImage/tmoDrago03.cpp ./Source/FreeImage/tmoFattal02.cpp ./Source/FreeImage/tmoReinhard05.cpp ./Source/FreeImage/ToneMapping.cpp ./Source/FreeImage/NNQuantizer.cpp ./Source/FreeImage/WuQuantizer.cpp ./Source/FreeImage/CacheFile.cpp ./Source/FreeImage/MultiPage.cpp ./Source/FreeImage/ZLibInterface.cpp ./Source/Metadata/Exif.cpp ./Source/Metadata/FIRational.cpp ./Source/Metadata/FreeImageTag.cpp ./Source/Metadata/IPTC.cpp ./Source/Metadata/TagConversion.cpp ./Source/Metadata/TagLib.cpp ./Source/Metadata/XTIFF.cpp ./Source/FreeImageToolkit/Background.cpp ./Source/FreeImageToolkit/BSplineRotate.cpp ./Source/FreeImageToolkit/Channels.cpp ./Source/FreeImageToolkit/ClassicRotate.cpp ./Source/FreeImageToolkit/Colors.cpp ./Source/FreeImageToolkit/CopyPaste.cpp ./Source/FreeImageToolkit/Display.cpp ./Source/FreeImageToolkit/Flip.cpp ./Source/FreeImageToolkit/JPEGTransform.cpp ./Source/FreeImageToolkit/MultigridPoissonSolver.cpp ./Source/FreeImageToolkit/Rescale.cpp ./Source/FreeImageToolkit/Resize.cpp Source/LibJPEG/jaricom.c Source/LibJPEG/jcapimin.c Source/LibJPEG/jcapistd.c Source/LibJPEG/jcarith.c Source/LibJPEG/jccoefct.c Source/LibJPEG/jccolor.c Source/LibJPEG/jcdctmgr.c Source/LibJPEG/jchuff.c Source/LibJPEG/jcinit.c Source/LibJPEG/jcmainct.c Source/LibJPEG/jcmarker.c Source/LibJPEG/jcmaster.c Source/LibJPEG/jcomapi.c Source/LibJPEG/jcparam.c Source/LibJPEG/jcprepct.c Source/LibJPEG/jcsample.c Source/LibJPEG/jctrans.c Source/LibJPEG/jdapimin.c Source/LibJPEG/jdapistd.c Source/LibJPEG/jdarith.c Source/LibJPEG/jdatadst.c Source/LibJPEG/jdatasrc.c Source/LibJPEG/jdcoefct.c Source/LibJPEG/jdcolor.c Source/LibJPEG/jddctmgr.c Source/LibJPEG/jdhuff.c Source/LibJPEG/jdinput.c Source/LibJPEG/jdmainct.c Source/LibJPEG/jdmarker.c Source/LibJPEG/jdmaster.c Source/LibJPEG/jdmerge.c Source/LibJPEG/jdpostct.c Source/LibJPEG/jdsample.c Source/LibJPEG/jdtrans.c Source/LibJPEG/jerror.c Source/LibJPEG/jfdctflt.c Source/LibJPEG/jfdctfst.c Source/LibJPEG/jfdctint.c Source/LibJPEG/jidctflt.c Source/LibJPEG/jidctfst.c Source/LibJPEG/jidctint.c Source/LibJPEG/jmemmgr.c Source/LibJPEG/jmemnobs.c Source/LibJPEG/jquant1.c Source/LibJPEG/jquant2.c Source/LibJPEG/jutils.c Source/LibJPEG/transupp.c Source/LibPNG/png.c Source/LibPNG/pngerror.c Source/LibPNG/pngget.c Source/LibPNG/pngmem.c Source/LibPNG/pngpread.c Source/LibPNG/pngread.c Source/LibPNG/pngrio.c Source/LibPNG/pngrtran.c Source/LibPNG/pngrutil.c Source/LibPNG/pngset.c Source/LibPNG/pngtrans.c Source/LibPNG/pngwio.c Source/LibPNG/pngwrite.c Source/LibPNG/pngwtran.c Source/LibPNG/pngwutil.c Source/LibTIFF4/tif_aux.c Source/LibTIFF4/tif_close.c Source/LibTIFF4/tif_codec.c Source/LibTIFF4/tif_color.c Source/LibTIFF4/tif_compress.c Source/LibTIFF4/tif_dir.c Source/LibTIFF4/tif_dirinfo.c Source/LibTIFF4/tif_dirread.c Source/LibTIFF4/tif_dirwrite.c Source/LibTIFF4/tif_dumpmode.c Source/LibTIFF4/tif_error.c Source/LibTIFF4/tif_extension.c Source/LibTIFF4/tif_fax3.c Source/LibTIFF4/tif_fax3sm.c Source/LibTIFF4/tif_flush.c Source/LibTIFF4/tif_getimage.c Source/LibTIFF4/tif_jpeg.c Source/LibTIFF4/tif_luv.c Source/LibTIFF4/tif_lzma.c Source/LibTIFF4/tif_lzw.c Source/LibTIFF4/tif_next.c Source/LibTIFF4/tif_ojpeg.c Source/LibTIFF4/tif_open.c Source/LibTIFF4/tif_packbits.c Source/LibTIFF4/tif_pixarlog.c Source/LibTIFF4/tif_predict.c Source/LibTIFF4/tif_print.c Source/LibTIFF4/tif_read.c Source/LibTIFF4/tif_strip.c Source/LibTIFF4/tif_swab.c Source/LibTIFF4/tif_thunder.c Source/LibTIFF4/tif_tile.c Source/LibTIFF4/tif_version.c Source/LibTIFF4/tif_warning.c Source/LibTIFF4/tif_write.c Source/LibTIFF4/tif_zip.c Source/ZLib/adler32.c Source/ZLib/compress.c Source/ZLib/crc32.c Source/ZLib/deflate.c Source/ZLib/gzclose.c Source/ZLib/gzlib.c Source/ZLib/gzread.c Source/ZLib/gzwrite.c Source/ZLib/infback.c Source/ZLib/inffast.c Source/ZLib/inflate.c Source/ZLib/inftrees.c Source/ZLib/trees.c Source/ZLib/uncompr.c Source/ZLib/zutil.c Source/LibOpenJPEG/bio.c Source/LibOpenJPEG/cio.c Source/LibOpenJPEG/dwt.c Source/LibOpenJPEG/event.c Source/LibOpenJPEG/function_list.c Source/LibOpenJPEG/image.c Source/LibOpenJPEG/invert.c Source/LibOpenJPEG/j2k.c Source/LibOpenJPEG/jp2.c Source/LibOpenJPEG/mct.c Source/LibOpenJPEG/mqc.c Source/LibOpenJPEG/openjpeg.c Source/LibOpenJPEG/opj_clock.c Source/LibOpenJPEG/pi.c Source/LibOpenJPEG/raw.c Source/LibOpenJPEG/t1.c Source/LibOpenJPEG/t2.c Source/LibOpenJPEG/tcd.c Source/LibOpenJPEG/tgt.c Source/OpenEXR/IexMath/IexMathFpu.cpp Source/OpenEXR/IlmImf/b44ExpLogTable.cpp Source/OpenEXR/IlmImf/ImfAcesFile.cpp Source/OpenEXR/IlmImf/ImfAttribute.cpp Source/OpenEXR/IlmImf/ImfB44Compressor.cpp Source/OpenEXR/IlmImf/ImfBoxAttribute.cpp Source/OpenEXR/IlmImf/ImfChannelList.cpp Source/OpenEXR/IlmImf/ImfChannelListAttribute.cpp Source/OpenEXR/IlmImf/ImfChromaticities.cpp Source/OpenEXR/IlmImf/ImfChromaticitiesAttribute.cpp Source/OpenEXR/IlmImf/ImfCompositeDeepScanLine.cpp Source/OpenEXR/IlmImf/ImfCompressionAttribute.cpp Source/OpenEXR/IlmImf/ImfCompressor.cpp Source/OpenEXR/IlmImf/ImfConvert.cpp Source/OpenEXR/IlmImf/ImfCRgbaFile.cpp Source/OpenEXR/IlmImf/ImfDeepCompositing.cpp Source/OpenEXR/IlmImf/ImfDeepFrameBuffer.cpp Source/OpenEXR/IlmImf/ImfDeepImageStateAttribute.cpp Source/OpenEXR/IlmImf/ImfDeepScanLineInputFile.cpp Source/OpenEXR/IlmImf/ImfDeepScanLineInputPart.cpp Source/OpenEXR/IlmImf/ImfDeepScanLineOutputFile.cpp Source/OpenEXR/IlmImf/ImfDeepScanLineOutputPart.cpp Source/OpenEXR/IlmImf/ImfDeepTiledInputFile.cpp Source/OpenEXR/IlmImf/ImfDeepTiledInputPart.cpp Source/OpenEXR/IlmImf/ImfDeepTiledOutputFile.cpp Source/OpenEXR/IlmImf/ImfDeepTiledOutputPart.cpp Source/OpenEXR/IlmImf/ImfDoubleAttribute.cpp Source/OpenEXR/IlmImf/ImfDwaCompressor.cpp Source/OpenEXR/IlmImf/ImfEnvmap.cpp Source/OpenEXR/IlmImf/ImfEnvmapAttribute.cpp Source/OpenEXR/IlmImf/ImfFastHuf.cpp Source/OpenEXR/IlmImf/ImfFloatAttribute.cpp Source/OpenEXR/IlmImf/ImfFloatVectorAttribute.cpp Source/OpenEXR/IlmImf/ImfFrameBuffer.cpp Source/OpenEXR/IlmImf/ImfFramesPerSecond.cpp Source/OpenEXR/IlmImf/ImfGenericInputFile.cpp Source/OpenEXR/IlmImf/ImfGenericOutputFile.cpp Source/OpenEXR/IlmImf/ImfHeader.cpp Source/OpenEXR/IlmImf/ImfHuf.cpp Source/OpenEXR/IlmImf/ImfInputFile.cpp Source/OpenEXR/IlmImf/ImfInputPart.cpp Source/OpenEXR/IlmImf/ImfInputPartData.cpp Source/OpenEXR/IlmImf/ImfIntAttribute.cpp Source/OpenEXR/IlmImf/ImfIO.cpp Source/OpenEXR/IlmImf/ImfKeyCode.cpp Source/OpenEXR/IlmImf/ImfKeyCodeAttribute.cpp Source/OpenEXR/IlmImf/ImfLineOrderAttribute.cpp Source/OpenEXR/IlmImf/ImfLut.cpp Source/OpenEXR/IlmImf/ImfMatrixAttribute.cpp Source/OpenEXR/IlmImf/ImfMisc.cpp Source/OpenEXR/IlmImf/ImfMultiPartInputFile.cpp Source/OpenEXR/IlmImf/ImfMultiPartOutputFile.cpp Source/OpenEXR/IlmImf/ImfMultiView.cpp Source/OpenEXR/IlmImf/ImfOpaqueAttribute.cpp Source/OpenEXR/IlmImf/ImfOutputFile.cpp Source/OpenEXR/IlmImf/ImfOutputPart.cpp Source/OpenEXR/IlmImf/ImfOutputPartData.cpp Source/OpenEXR/IlmImf/ImfPartType.cpp Source/OpenEXR/IlmImf/ImfPizCompressor.cpp Source/OpenEXR/IlmImf/ImfPreviewImage.cpp Source/OpenEXR/IlmImf/ImfPreviewImageAttribute.cpp Source/OpenEXR/IlmImf/ImfPxr24Compressor.cpp Source/OpenEXR/IlmImf/ImfRational.cpp Source/OpenEXR/IlmImf/ImfRationalAttribute.cpp Source/OpenEXR/IlmImf/ImfRgbaFile.cpp Source/OpenEXR/IlmImf/ImfRgbaYca.cpp Source/OpenEXR/IlmImf/ImfRle.cpp Source/OpenEXR/IlmImf/ImfRleCompressor.cpp Source/OpenEXR/IlmImf/ImfScanLineInputFile.cpp Source/OpenEXR/IlmImf/ImfStandardAttributes.cpp Source/OpenEXR/IlmImf/ImfStdIO.cpp Source/OpenEXR/IlmImf/ImfStringAttribute.cpp Source/OpenEXR/IlmImf/ImfStringVectorAttribute.cpp Source/OpenEXR/IlmImf/ImfSystemSpecific.cpp Source/OpenEXR/IlmImf/ImfTestFile.cpp Source/OpenEXR/IlmImf/ImfThreading.cpp Source/OpenEXR/IlmImf/ImfTileDescriptionAttribute.cpp Source/OpenEXR/IlmImf/ImfTiledInputFile.cpp Source/OpenEXR/IlmImf/ImfTiledInputPart.cpp Source/OpenEXR/IlmImf/ImfTiledMisc.cpp Source/OpenEXR/IlmImf/ImfTiledOutputFile.cpp Source/OpenEXR/IlmImf/ImfTiledOutputPart.cpp Source/OpenEXR/IlmImf/ImfTiledRgbaFile.cpp Source/OpenEXR/IlmImf/ImfTileOffsets.cpp Source/OpenEXR/IlmImf/ImfTimeCode.cpp Source/OpenEXR/IlmImf/ImfTimeCodeAttribute.cpp Source/OpenEXR/IlmImf/ImfVecAttribute.cpp Source/OpenEXR/IlmImf/ImfVersion.cpp Source/OpenEXR/IlmImf/ImfWav.cpp Source/OpenEXR/IlmImf/ImfZip.cpp Source/OpenEXR/IlmImf/ImfZipCompressor.cpp Source/OpenEXR/Imath/ImathBox.cpp Source/OpenEXR/Imath/ImathColorAlgo.cpp Source/OpenEXR/Imath/ImathFun.cpp Source/OpenEXR/Imath/ImathMatrixAlgo.cpp Source/OpenEXR/Imath/ImathRandom.cpp Source/OpenEXR/Imath/ImathShear.cpp Source/OpenEXR/Imath/ImathVec.cpp Source/OpenEXR/Iex/IexBaseExc.cpp Source/OpenEXR/Iex/IexThrowErrnoExc.cpp Source/OpenEXR/Half/half.cpp Source/OpenEXR/IlmThread/IlmThread.cpp Source/OpenEXR/IlmThread/IlmThreadMutex.cpp Source/OpenEXR/IlmThread/IlmThreadPool.cpp Source/OpenEXR/IlmThread/IlmThreadSemaphore.cpp Source/OpenEXR/IexMath/IexMathFloatExc.cpp Source/LibRawLite/internal/dcraw_common.cpp Source/LibRawLite/internal/dcraw_fileio.cpp Source/LibRawLite/internal/demosaic_packs.cpp Source/LibRawLite/src/libraw_c_api.cpp Source/LibRawLite/src/libraw_cxx.cpp Source/LibRawLite/src/libraw_datastream.cpp Source/LibWebP/src/dec/alpha_dec.c Source/LibWebP/src/dec/buffer_dec.c Source/LibWebP/src/dec/frame_dec.c Source/LibWebP/src/dec/idec_dec.c Source/LibWebP/src/dec/io_dec.c Source/LibWebP/src/dec/quant_dec.c Source/LibWebP/src/dec/tree_dec.c Source/LibWebP/src/dec/vp8l_dec.c Source/LibWebP/src/dec/vp8_dec.c Source/LibWebP/src/dec/webp_dec.c Source/LibWebP/src/demux/anim_decode.c Source/LibWebP/src/demux/demux.c Source/LibWebP/src/dsp/alpha_processing.c Source/LibWebP/src/dsp/alpha_processing_mips_dsp_r2.c Source/LibWebP/src/dsp/alpha_processing_neon.c Source/LibWebP/src/dsp/alpha_processing_sse2.c Source/LibWebP/src/dsp/alpha_processing_sse41.c Source/LibWebP/src/dsp/cost.c Source/LibWebP/src/dsp/cost_mips32.c Source/LibWebP/src/dsp/cost_mips_dsp_r2.c Source/LibWebP/src/dsp/cost_neon.c Source/LibWebP/src/dsp/cost_sse2.c Source/LibWebP/src/dsp/cpu.c Source/LibWebP/src/dsp/dec.c Source/LibWebP/src/dsp/dec_clip_tables.c Source/LibWebP/src/dsp/dec_mips32.c Source/LibWebP/src/dsp/dec_mips_dsp_r2.c Source/LibWebP/src/dsp/dec_msa.c Source/LibWebP/src/dsp/dec_neon.c Source/LibWebP/src/dsp/dec_sse2.c Source/LibWebP/src/dsp/dec_sse41.c Source/LibWebP/src/dsp/enc.c Source/LibWebP/src/dsp/enc_avx2.c Source/LibWebP/src/dsp/enc_mips32.c Source/LibWebP/src/dsp/enc_mips_dsp_r2.c Source/LibWebP/src/dsp/enc_msa.c Source/LibWebP/src/dsp/enc_neon.c Source/LibWebP/src/dsp/enc_sse2.c Source/LibWebP/src/dsp/enc_sse41.c Source/LibWebP/src/dsp/filters.c Source/LibWebP/src/dsp/filters_mips_dsp_r2.c Source/LibWebP/src/dsp/filters_msa.c Source/LibWebP/src/dsp/filters_neon.c Source/LibWebP/src/dsp/filters_sse2.c Source/LibWebP/src/dsp/lossless.c Source/LibWebP/src/dsp/lossless_enc.c Source/LibWebP/src/dsp/lossless_enc_mips32.c Source/LibWebP/src/dsp/lossless_enc_mips_dsp_r2.c Source/LibWebP/src/dsp/lossless_enc_msa.c Source/LibWebP/src/dsp/lossless_enc_neon.c Source/LibWebP/src/dsp/lossless_enc_sse2.c Source/LibWebP/src/dsp/lossless_enc_sse41.c Source/LibWebP/src/dsp/lossless_mips_dsp_r2.c Source/LibWebP/src/dsp/lossless_msa.c Source/LibWebP/src/dsp/lossless_neon.c Source/LibWebP/src/dsp/lossless_sse2.c Source/LibWebP/src/dsp/rescaler.c Source/LibWebP/src/dsp/rescaler_mips32.c Source/LibWebP/src/dsp/rescaler_mips_dsp_r2.c Source/LibWebP/src/dsp/rescaler_msa.c Source/LibWebP/src/dsp/rescaler_neon.c Source/LibWebP/src/dsp/rescaler_sse2.c Source/LibWebP/src/dsp/ssim.c Source/LibWebP/src/dsp/ssim_sse2.c Source/LibWebP/src/dsp/upsampling.c Source/LibWebP/src/dsp/upsampling_mips_dsp_r2.c Source/LibWebP/src/dsp/upsampling_msa.c Source/LibWebP/src/dsp/upsampling_neon.c Source/LibWebP/src/dsp/upsampling_sse2.c Source/LibWebP/src/dsp/upsampling_sse41.c Source/LibWebP/src/dsp/yuv.c Source/LibWebP/src/dsp/yuv_mips32.c Source/LibWebP/src/dsp/yuv_mips_dsp_r2.c Source/LibWebP/src/dsp/yuv_neon.c Source/LibWebP/src/dsp/yuv_sse2.c Source/LibWebP/src/dsp/yuv_sse41.c Source/LibWebP/src/enc/alpha_enc.c Source/LibWebP/src/enc/analysis_enc.c Source/LibWebP/src/enc/backward_references_cost_enc.c Source/LibWebP/src/enc/backward_references_enc.c Source/LibWebP/src/enc/config_enc.c Source/LibWebP/src/enc/cost_enc.c Source/LibWebP/src/enc/filter_enc.c Source/LibWebP/src/enc/frame_enc.c Source/LibWebP/src/enc/histogram_enc.c Source/LibWebP/src/enc/iterator_enc.c Source/LibWebP/src/enc/near_lossless_enc.c Source/LibWebP/src/enc/picture_csp_enc.c Source/LibWebP/src/enc/picture_enc.c Source/LibWebP/src/enc/picture_psnr_enc.c Source/LibWebP/src/enc/picture_rescale_enc.c Source/LibWebP/src/enc/picture_tools_enc.c Source/LibWebP/src/enc/predictor_enc.c Source/LibWebP/src/enc/quant_enc.c Source/LibWebP/src/enc/syntax_enc.c Source/LibWebP/src/enc/token_enc.c Source/LibWebP/src/enc/tree_enc.c Source/LibWebP/src/enc/vp8l_enc.c Source/LibWebP/src/enc/webp_enc.c Source/LibWebP/src/mux/anim_encode.c Source/LibWebP/src/mux/muxedit.c Source/LibWebP/src/mux/muxinternal.c Source/LibWebP/src/mux/muxread.c Source/LibWebP/src/utils/bit_reader_utils.c Source/LibWebP/src/utils/bit_writer_utils.c Source/LibWebP/src/utils/color_cache_utils.c Source/LibWebP/src/utils/filters_utils.c Source/LibWebP/src/utils/huffman_encode_utils.c Source/LibWebP/src/utils/huffman_utils.c Source/LibWebP/src/utils/quant_levels_dec_utils.c Source/LibWebP/src/utils/quant_levels_utils.c Source/LibWebP/src/utils/random_utils.c Source/LibWebP/src/utils/rescaler_utils.c Source/LibWebP/src/utils/thread_utils.c Source/LibWebP/src/utils/utils.c Source/LibJXR/image/decode/decode.c Source/LibJXR/image/decode/JXRTranscode.c Source/LibJXR/image/decode/postprocess.c Source/LibJXR/image/decode/segdec.c Source/LibJXR/image/decode/strdec.c Source/LibJXR/image/decode/strdec_x86.c Source/LibJXR/image/decode/strInvTransform.c Source/LibJXR/image/decode/strPredQuantDec.c Source/LibJXR/image/encode/encode.c Source/LibJXR/image/encode/segenc.c Source/LibJXR/image/encode/strenc.c Source/LibJXR/image/encode/strenc_x86.c Source/LibJXR/image/encode/strFwdTransform.c Source/LibJXR/image/encode/strPredQuantEnc.c Source/LibJXR/image/sys/adapthuff.c Source/LibJXR/image/sys/image.c Source/LibJXR/image/sys/strcodec.c Source/LibJXR/image/sys/strPredQuant.c Source/LibJXR/image/sys/strTransform.c Source/LibJXR/jxrgluelib/JXRGlue.c Source/LibJXR/jxrgluelib/JXRGlueJxr.c Source/LibJXR/jxrgluelib/JXRGluePFC.c Source/LibJXR/jxrgluelib/JXRMeta.c 
--INCLS = ./Examples/OpenGL/TextureManager/TextureManager.h ./Examples/Plugin/PluginCradle.h ./Examples/Generic/FIIO_Mem.h ./Source/MapIntrospector.h ./Source/CacheFile.h ./Source/LibJPEG/cderror.h ./Source/LibJPEG/jmorecfg.h ./Source/LibJPEG/transupp.h ./Source/LibJPEG/jpeglib.h ./Source/LibJPEG/jversion.h ./Source/LibJPEG/jinclude.h ./Source/LibJPEG/jerror.h ./Source/LibJPEG/jconfig.h ./Source/LibJPEG/jdct.h ./Source/LibJPEG/cdjpeg.h ./Source/LibJPEG/jmemsys.h ./Source/LibJPEG/jpegint.h ./Source/Plugin.h ./Source/Metadata/FreeImageTag.h ./Source/Metadata/FIRational.h ./Source/ToneMapping.h ./Source/LibTIFF4/tiffconf.vc.h ./Source/LibTIFF4/tif_config.h ./Source/LibTIFF4/tif_fax3.h ./Source/LibTIFF4/tif_config.vc.h ./Source/LibTIFF4/tiffvers.h ./Source/LibTIFF4/tiffio.h ./Source/LibTIFF4/tif_config.wince.h ./Source/LibTIFF4/tiffconf.wince.h ./Source/LibTIFF4/tiff.h ./Source/LibTIFF4/uvcode.h ./Source/LibTIFF4/tif_dir.h ./Source/LibTIFF4/t4.h ./Source/LibTIFF4/tif_predict.h ./Source/LibTIFF4/tiffiop.h ./Source/LibTIFF4/tiffconf.h ./Source/LibWebP/src/dec/alphai_dec.h ./Source/LibWebP/src/dec/common_dec.h ./Source/LibWebP/src/dec/vp8i_dec.h ./Source/LibWebP/src/dec/webpi_dec.h ./Source/LibWebP/src/dec/vp8li_dec.h ./Source/LibWebP/src/dec/vp8_dec.h ./Source/LibWebP/src/enc/cost_enc.h ./Source/LibWebP/src/enc/histogram_enc.h ./Source/LibWebP/src/enc/vp8li_enc.h ./Source/LibWebP/src/enc/backward_references_enc.h ./Source/LibWebP/src/enc/vp8i_enc.h ./Source/LibWebP/src/utils/bit_reader_utils.h ./Source/LibWebP/src/utils/endian_inl_utils.h ./Source/LibWebP/src/utils/huffman_encode_utils.h ./Source/LibWebP/src/utils/bit_writer_utils.h ./Source/LibWebP/src/utils/random_utils.h ./Source/LibWebP/src/utils/bit_reader_inl_utils.h ./Source/LibWebP/src/utils/quant_levels_dec_utils.h ./Source/LibWebP/src/utils/color_cache_utils.h ./Source/LibWebP/src/utils/thread_utils.h ./Source/LibWebP/src/utils/filters_utils.h ./Source/LibWebP/src/utils/rescaler_utils.h ./Source/LibWebP/src/utils/huffman_utils.h ./Source/LibWebP/src/utils/quant_levels_utils.h ./Source/LibWebP/src/utils/utils.h ./Source/LibWebP/src/mux/muxi.h ./Source/LibWebP/src/mux/animi.h ./Source/LibWebP/src/webp/mux.h ./Source/LibWebP/src/webp/types.h ./Source/LibWebP/src/webp/format_constants.h ./Source/LibWebP/src/webp/demux.h ./Source/LibWebP/src/webp/encode.h ./Source/LibWebP/src/webp/decode.h ./Source/LibWebP/src/webp/mux_types.h ./Source/LibWebP/src/dsp/msa_macro.h ./Source/LibWebP/src/dsp/yuv.h ./Source/LibWebP/src/dsp/common_sse41.h ./Source/LibWebP/src/dsp/neon.h ./Source/LibWebP/src/dsp/common_sse2.h ./Source/LibWebP/src/dsp/quant.h ./Source/LibWebP/src/dsp/lossless_common.h ./Source/LibWebP/src/dsp/mips_macro.h ./Source/LibWebP/src/dsp/dsp.h ./Source/LibWebP/src/dsp/lossless.h ./Source/FreeImageIO.h ./Source/FreeImage.h ./Source/FreeImage/PSDParser.h ./Source/FreeImage/J2KHelper.h ./Source/ZLib/trees.h ./Source/ZLib/inffixed.h ./Source/ZLib/inflate.h ./Source/ZLib/zlib.h ./Source/ZLib/zconf.h ./Source/ZLib/inftrees.h ./Source/ZLib/zutil.h ./Source/ZLib/inffast.h ./Source/ZLib/crc32.h ./Source/ZLib/gzguts.h ./Source/ZLib/deflate.h ./Source/Quantizers.h ./Source/LibOpenJPEG/cio.h ./Source/LibOpenJPEG/mqc.h ./Source/LibOpenJPEG/cidx_manager.h ./Source/LibOpenJPEG/function_list.h ./Source/LibOpenJPEG/indexbox_manager.h ./Source/LibOpenJPEG/opj_config.h ./Source/LibOpenJPEG/opj_clock.h ./Source/LibOpenJPEG/event.h ./Source/LibOpenJPEG/opj_codec.h ./Source/LibOpenJPEG/pi.h ./Source/LibOpenJPEG/dwt.h ./Source/LibOpenJPEG/tgt.h ./Source/LibOpenJPEG/invert.h ./Source/LibOpenJPEG/opj_malloc.h ./Source/LibOpenJPEG/raw.h ./Source/LibOpenJPEG/jp2.h ./Source/LibOpenJPEG/bio.h ./Source/LibOpenJPEG/t2.h ./Source/LibOpenJPEG/mct.h ./Source/LibOpenJPEG/t1.h ./Source/LibOpenJPEG/t1_luts.h ./Source/LibOpenJPEG/j2k.h ./Source/LibOpenJPEG/opj_stdint.h ./Source/LibOpenJPEG/opj_config_private.h ./Source/LibOpenJPEG/opj_includes.h ./Source/LibOpenJPEG/opj_intmath.h ./Source/LibOpenJPEG/image.h ./Source/LibOpenJPEG/opj_inttypes.h ./Source/LibOpenJPEG/openjpeg.h ./Source/LibOpenJPEG/tcd.h ./Source/LibRawLite/libraw/libraw_version.h ./Source/LibRawLite/libraw/libraw_const.h ./Source/LibRawLite/libraw/libraw.h ./Source/LibRawLite/libraw/libraw_types.h ./Source/LibRawLite/libraw/libraw_alloc.h ./Source/LibRawLite/libraw/libraw_datastream.h ./Source/LibRawLite/libraw/libraw_internal.h ./Source/LibRawLite/internal/dmp_include.h ./Source/LibRawLite/internal/libraw_const.h ./Source/LibRawLite/internal/var_defines.h ./Source/LibRawLite/internal/x3f_tools.h ./Source/LibRawLite/internal/defines.h ./Source/LibRawLite/internal/dcraw_fileio_defs.h ./Source/LibRawLite/internal/dcraw_defs.h ./Source/LibRawLite/internal/libraw_cxx_defs.h ./Source/LibRawLite/internal/libraw_internal_funcs.h ./Source/LibPNG/png.h ./Source/LibPNG/pngdebug.h ./Source/LibPNG/pnginfo.h ./Source/LibPNG/pnglibconf.h ./Source/LibPNG/pngstruct.h ./Source/LibPNG/pngpriv.h ./Source/LibPNG/pngconf.h ./Source/LibJXR/common/include/wmspecstrings_strict.h ./Source/LibJXR/common/include/wmspecstring.h ./Source/LibJXR/common/include/guiddef.h ./Source/LibJXR/common/include/wmsal.h ./Source/LibJXR/common/include/wmspecstrings_undef.h ./Source/LibJXR/common/include/wmspecstrings_adt.h ./Source/LibJXR/jxrgluelib/JXRGlue.h ./Source/LibJXR/jxrgluelib/JXRMeta.h ./Source/LibJXR/image/sys/xplatform_image.h ./Source/LibJXR/image/sys/strTransform.h ./Source/LibJXR/image/sys/windowsmediaphoto.h ./Source/LibJXR/image/sys/strcodec.h ./Source/LibJXR/image/sys/ansi.h ./Source/LibJXR/image/sys/perfTimer.h ./Source/LibJXR/image/sys/common.h ./Source/LibJXR/image/decode/decode.h ./Source/LibJXR/image/x86/x86.h ./Source/LibJXR/image/encode/encode.h ./Source/Utilities.h ./Source/FreeImageToolkit/Resize.h ./Source/FreeImageToolkit/Filters.h ./Source/OpenEXR/OpenEXRConfig.h ./Source/OpenEXR/IexMath/IexMathFloatExc.h ./Source/OpenEXR/IexMath/IexMathFpu.h ./Source/OpenEXR/IexMath/IexMathIeeeExc.h ./Source/OpenEXR/IlmThread/IlmThread.h ./Source/OpenEXR/IlmThread/IlmThreadMutex.h ./Source/OpenEXR/IlmThread/IlmThreadForward.h ./Source/OpenEXR/IlmThread/IlmThreadExport.h ./Source/OpenEXR/IlmThread/IlmThreadSemaphore.h ./Source/OpenEXR/IlmThread/IlmThreadPool.h ./Source/OpenEXR/IlmThread/IlmThreadNamespace.h ./Source/OpenEXR/Iex/IexErrnoExc.h ./Source/OpenEXR/Iex/IexMacros.h ./Source/OpenEXR/Iex/IexForward.h ./Source/OpenEXR/Iex/IexExport.h ./Source/OpenEXR/Iex/IexThrowErrnoExc.h ./Source/OpenEXR/Iex/IexNamespace.h ./Source/OpenEXR/Iex/IexMathExc.h ./Source/OpenEXR/Iex/IexBaseExc.h ./Source/OpenEXR/Iex/Iex.h ./Source/OpenEXR/Imath/ImathColorAlgo.h ./Source/OpenEXR/Imath/ImathNamespace.h ./Source/OpenEXR/Imath/ImathVec.h ./Source/OpenEXR/Imath/ImathGL.h ./Source/OpenEXR/Imath/ImathSphere.h ./Source/OpenEXR/Imath/ImathEuler.h ./Source/OpenEXR/Imath/ImathLimits.h ./Source/OpenEXR/Imath/ImathQuat.h ./Source/OpenEXR/Imath/ImathRoots.h ./Source/OpenEXR/Imath/ImathFun.h ./Source/OpenEXR/Imath/ImathExport.h ./Source/OpenEXR/Imath/ImathShear.h ./Source/OpenEXR/Imath/ImathPlane.h ./Source/OpenEXR/Imath/ImathForward.h ./Source/OpenEXR/Imath/ImathHalfLimits.h ./Source/OpenEXR/Imath/ImathFrustumTest.h ./Source/OpenEXR/Imath/ImathMatrixAlgo.h ./Source/OpenEXR/Imath/ImathVecAlgo.h ./Source/OpenEXR/Imath/ImathInterval.h ./Source/OpenEXR/Imath/ImathBox.h ./Source/OpenEXR/Imath/ImathFrame.h ./Source/OpenEXR/Imath/ImathColor.h ./Source/OpenEXR/Imath/ImathMath.h ./Source/OpenEXR/Imath/ImathLine.h ./Source/OpenEXR/Imath/ImathBoxAlgo.h ./Source/OpenEXR/Imath/ImathFrustum.h ./Source/OpenEXR/Imath/ImathExc.h ./Source/OpenEXR/Imath/ImathLineAlgo.h ./Source/OpenEXR/Imath/ImathRandom.h ./Source/OpenEXR/Imath/ImathInt64.h ./Source/OpenEXR/Imath/ImathGLU.h ./Source/OpenEXR/Imath/ImathPlatform.h ./Source/OpenEXR/Imath/ImathMatrix.h ./Source/OpenEXR/IlmImf/ImfDeepScanLineOutputPart.h ./Source/OpenEXR/IlmImf/ImfDeepScanLineInputFile.h ./Source/OpenEXR/IlmImf/ImfIO.h ./Source/OpenEXR/IlmImf/ImfStdIO.h ./Source/OpenEXR/IlmImf/ImfPreviewImage.h ./Source/OpenEXR/IlmImf/ImfAttribute.h ./Source/OpenEXR/IlmImf/ImfDwaCompressor.h ./Source/OpenEXR/IlmImf/ImfChannelList.h ./Source/OpenEXR/IlmImf/ImfInt64.h ./Source/OpenEXR/IlmImf/ImfGenericOutputFile.h ./Source/OpenEXR/IlmImf/ImfHuf.h ./Source/OpenEXR/IlmImf/ImfOptimizedPixelReading.h ./Source/OpenEXR/IlmImf/b44ExpLogTable.h ./Source/OpenEXR/IlmImf/ImfMultiPartOutputFile.h ./Source/OpenEXR/IlmImf/ImfTileDescriptionAttribute.h ./Source/OpenEXR/IlmImf/ImfFastHuf.h ./Source/OpenEXR/IlmImf/dwaLookups.h ./Source/OpenEXR/IlmImf/ImfCompositeDeepScanLine.h ./Source/OpenEXR/IlmImf/ImfDeepFrameBuffer.h ./Source/OpenEXR/IlmImf/ImfInputPartData.h ./Source/OpenEXR/IlmImf/ImfAcesFile.h ./Source/OpenEXR/IlmImf/ImfRgbaYca.h ./Source/OpenEXR/IlmImf/ImfThreading.h ./Source/OpenEXR/IlmImf/ImfWav.h ./Source/OpenEXR/IlmImf/ImfChromaticitiesAttribute.h ./Source/OpenEXR/IlmImf/ImfDwaCompressorSimd.h ./Source/OpenEXR/IlmImf/ImfNamespace.h ./Source/OpenEXR/IlmImf/ImfMatrixAttribute.h ./Source/OpenEXR/IlmImf/ImfTimeCodeAttribute.h ./Source/OpenEXR/IlmImf/ImfInputFile.h ./Source/OpenEXR/IlmImf/ImfDeepScanLineInputPart.h ./Source/OpenEXR/IlmImf/ImfFloatAttribute.h ./Source/OpenEXR/IlmImf/ImfPxr24Compressor.h ./Source/OpenEXR/IlmImf/ImfCompressor.h ./Source/OpenEXR/IlmImf/ImfCRgbaFile.h ./Source/OpenEXR/IlmImf/ImfOutputFile.h ./Source/OpenEXR/IlmImf/ImfTiledInputPart.h ./Source/OpenEXR/IlmImf/ImfRationalAttribute.h ./Source/OpenEXR/IlmImf/ImfTileOffsets.h ./Source/OpenEXR/IlmImf/ImfInputStreamMutex.h ./Source/OpenEXR/IlmImf/ImfIntAttribute.h ./Source/OpenEXR/IlmImf/ImfTiledOutputPart.h ./Source/OpenEXR/IlmImf/ImfPartType.h ./Source/OpenEXR/IlmImf/ImfTiledInputFile.h ./Source/OpenEXR/IlmImf/ImfStringAttribute.h ./Source/OpenEXR/IlmImf/ImfDeepTiledOutputPart.h ./Source/OpenEXR/IlmImf/ImfRleCompressor.h ./Source/OpenEXR/IlmImf/ImfChromaticities.h ./Source/OpenEXR/IlmImf/ImfTestFile.h ./Source/OpenEXR/IlmImf/ImfInputPart.h ./Source/OpenEXR/IlmImf/ImfXdr.h ./Source/OpenEXR/IlmImf/ImfOutputPart.h ./Source/OpenEXR/IlmImf/ImfExport.h ./Source/OpenEXR/IlmImf/ImfRgba.h ./Source/OpenEXR/IlmImf/ImfLineOrder.h ./Source/OpenEXR/IlmImf/ImfCompression.h ./Source/OpenEXR/IlmImf/ImfTiledMisc.h ./Source/OpenEXR/IlmImf/ImfFramesPerSecond.h ./Source/OpenEXR/IlmImf/ImfZipCompressor.h ./Source/OpenEXR/IlmImf/ImfKeyCodeAttribute.h ./Source/OpenEXR/IlmImf/ImfFloatVectorAttribute.h ./Source/OpenEXR/IlmImf/ImfMultiPartInputFile.h ./Source/OpenEXR/IlmImf/ImfDeepTiledOutputFile.h ./Source/OpenEXR/IlmImf/ImfDeepScanLineOutputFile.h ./Source/OpenEXR/IlmImf/ImfRational.h ./Source/OpenEXR/IlmImf/ImfDeepImageStateAttribute.h ./Source/OpenEXR/IlmImf/ImfChannelListAttribute.h ./Source/OpenEXR/IlmImf/ImfDeepCompositing.h ./Source/OpenEXR/IlmImf/ImfOutputPartData.h ./Source/OpenEXR/IlmImf/ImfDeepTiledInputPart.h ./Source/OpenEXR/IlmImf/ImfPreviewImageAttribute.h ./Source/OpenEXR/IlmImf/ImfFrameBuffer.h ./Source/OpenEXR/IlmImf/ImfDeepImageState.h ./Source/OpenEXR/IlmImf/ImfOpaqueAttribute.h ./Source/OpenEXR/IlmImf/ImfEnvmapAttribute.h ./Source/OpenEXR/IlmImf/ImfPizCompressor.h ./Source/OpenEXR/IlmImf/ImfStringVectorAttribute.h ./Source/OpenEXR/IlmImf/ImfMultiView.h ./Source/OpenEXR/IlmImf/ImfAutoArray.h ./Source/OpenEXR/IlmImf/ImfLut.h ./Source/OpenEXR/IlmImf/ImfTiledOutputFile.h ./Source/OpenEXR/IlmImf/ImfBoxAttribute.h ./Source/OpenEXR/IlmImf/ImfCheckedArithmetic.h ./Source/OpenEXR/IlmImf/ImfB44Compressor.h ./Source/OpenEXR/IlmImf/ImfSystemSpecific.h ./Source/OpenEXR/IlmImf/ImfRgbaFile.h ./Source/OpenEXR/IlmImf/ImfTimeCode.h ./Source/OpenEXR/IlmImf/ImfVecAttribute.h ./Source/OpenEXR/IlmImf/ImfDeepTiledInputFile.h ./Source/OpenEXR/IlmImf/ImfZip.h ./Source/OpenEXR/IlmImf/ImfConvert.h ./Source/OpenEXR/IlmImf/ImfMisc.h ./Source/OpenEXR/IlmImf/ImfHeader.h ./Source/OpenEXR/IlmImf/ImfForward.h ./Source/OpenEXR/IlmImf/ImfPartHelper.h ./Source/OpenEXR/IlmImf/ImfKeyCode.h ./Source/OpenEXR/IlmImf/ImfVersion.h ./Source/OpenEXR/IlmImf/ImfStandardAttributes.h ./Source/OpenEXR/IlmImf/ImfPixelType.h ./Source/OpenEXR/IlmImf/ImfName.h ./Source/OpenEXR/IlmImf/ImfSimd.h ./Source/OpenEXR/IlmImf/ImfArray.h ./Source/OpenEXR/IlmImf/ImfOutputStreamMutex.h ./Source/OpenEXR/IlmImf/ImfTiledRgbaFile.h ./Source/OpenEXR/IlmImf/ImfRle.h ./Source/OpenEXR/IlmImf/ImfScanLineInputFile.h ./Source/OpenEXR/IlmImf/ImfDoubleAttribute.h ./Source/OpenEXR/IlmImf/ImfGenericInputFile.h ./Source/OpenEXR/IlmImf/ImfEnvmap.h ./Source/OpenEXR/IlmImf/ImfLineOrderAttribute.h ./Source/OpenEXR/IlmImf/ImfTileDescription.h ./Source/OpenEXR/IlmImf/ImfCompressionAttribute.h ./Source/OpenEXR/IlmBaseConfig.h ./Source/OpenEXR/Half/halfFunction.h ./Source/OpenEXR/Half/halfExport.h ./Source/OpenEXR/Half/half.h ./Source/OpenEXR/Half/eLut.h ./Source/OpenEXR/Half/halfLimits.h ./Source/OpenEXR/Half/toFloat.h ./Wrapper/FreeImage.NET/cpp/FreeImageIO/FreeImageIO.Net.h ./Wrapper/FreeImage.NET/cpp/FreeImageIO/Stdafx.h ./Wrapper/FreeImage.NET/cpp/FreeImageIO/resource.h ./Wrapper/FreeImagePlus/dist/x64/FreeImagePlus.h ./Wrapper/FreeImagePlus/FreeImagePlus.h ./Wrapper/FreeImagePlus/test/fipTest.h ./TestAPI/TestSuite.h
+-SRCS = ./Source/FreeImage/BitmapAccess.cpp ./Source/FreeImage/ColorLookup.cpp ./Source/FreeImage/ConversionRGBA16.cpp ./Source/FreeImage/ConversionRGBAF.cpp ./Source/FreeImage/FreeImage.cpp ./Source/FreeImage/FreeImageC.c ./Source/FreeImage/FreeImageIO.cpp ./Source/FreeImage/GetType.cpp ./Source/FreeImage/LFPQuantizer.cpp ./Source/FreeImage/MemoryIO.cpp ./Source/FreeImage/PixelAccess.cpp ./Source/FreeImage/J2KHelper.cpp ./Source/FreeImage/MNGHelper.cpp ./Source/FreeImage/Plugin.cpp ./Source/FreeImage/PluginBMP.cpp ./Source/FreeImage/PluginCUT.cpp ./Source/FreeImage/PluginDDS.cpp ./Source/FreeImage/PluginEXR.cpp ./Source/FreeImage/PluginG3.cpp ./Source/FreeImage/PluginGIF.cpp ./Source/FreeImage/PluginHDR.cpp ./Source/FreeImage/PluginICO.cpp ./Source/FreeImage/PluginIFF.cpp ./Source/FreeImage/PluginJ2K.cpp ./Source/FreeImage/PluginJNG.cpp ./Source/FreeImage/PluginJP2.cpp ./Source/FreeImage/PluginJPEG.cpp ./Source/FreeImage/PluginJXR.cpp ./Source/FreeImage/PluginKOALA.cpp ./Source/FreeImage/PluginMNG.cpp ./Source/FreeImage/PluginPCD.cpp ./Source/FreeImage/PluginPCX.cpp ./Source/FreeImage/PluginPFM.cpp ./Source/FreeImage/PluginPICT.cpp ./Source/FreeImage/PluginPNG.cpp ./Source/FreeImage/PluginPNM.cpp ./Source/FreeImage/PluginPSD.cpp ./Source/FreeImage/PluginRAS.cpp ./Source/FreeImage/PluginRAW.cpp ./Source/FreeImage/PluginSGI.cpp ./Source/FreeImage/PluginTARGA.cpp ./Source/FreeImage/PluginTIFF.cpp ./Source/FreeImage/PluginWBMP.cpp ./Source/FreeImage/PluginWebP.cpp ./Source/FreeImage/PluginXBM.cpp ./Source/FreeImage/PluginXPM.cpp ./Source/FreeImage/PSDParser.cpp ./Source/FreeImage/TIFFLogLuv.cpp ./Source/FreeImage/Conversion.cpp ./Source/FreeImage/Conversion16_555.cpp ./Source/FreeImage/Conversion16_565.cpp ./Source/FreeImage/Conversion24.cpp ./Source/FreeImage/Conversion32.cpp ./Source/FreeImage/Conversion4.cpp ./Source/FreeImage/Conversion8.cpp ./Source/FreeImage/ConversionFloat.cpp ./Source/FreeImage/ConversionRGB16.cpp ./Source/FreeImage/ConversionRGBF.cpp ./Source/FreeImage/ConversionType.cpp ./Source/FreeImage/ConversionUINT16.cpp ./Source/FreeImage/Halftoning.cpp ./Source/FreeImage/tmoColorConvert.cpp ./Source/FreeImage/tmoDrago03.cpp ./Source/FreeImage/tmoFattal02.cpp ./Source/FreeImage/tmoReinhard05.cpp ./Source/FreeImage/ToneMapping.cpp ./Source/FreeImage/NNQuantizer.cpp ./Source/FreeImage/WuQuantizer.cpp ./Source/FreeImage/CacheFile.cpp ./Source/FreeImage/MultiPage.cpp ./Source/FreeImage/ZLibInterface.cpp ./Source/Metadata/Exif.cpp ./Source/Metadata/FIRational.cpp ./Source/Metadata/FreeImageTag.cpp ./Source/Metadata/IPTC.cpp ./Source/Metadata/TagConversion.cpp ./Source/Metadata/TagLib.cpp ./Source/Metadata/XTIFF.cpp ./Source/FreeImageToolkit/Background.cpp ./Source/FreeImageToolkit/BSplineRotate.cpp ./Source/FreeImageToolkit/Channels.cpp ./Source/FreeImageToolkit/ClassicRotate.cpp ./Source/FreeImageToolkit/Colors.cpp ./Source/FreeImageToolkit/CopyPaste.cpp ./Source/FreeImageToolkit/Display.cpp ./Source/FreeImageToolkit/Flip.cpp ./Source/FreeImageToolkit/JPEGTransform.cpp ./Source/FreeImageToolkit/MultigridPoissonSolver.cpp ./Source/FreeImageToolkit/Rescale.cpp ./Source/FreeImageToolkit/Resize.cpp Source/LibJPEG/jaricom.c Source/LibJPEG/jcapimin.c Source/LibJPEG/jcapistd.c Source/LibJPEG/jcarith.c Source/LibJPEG/jccoefct.c Source/LibJPEG/jccolor.c Source/LibJPEG/jcdctmgr.c Source/LibJPEG/jchuff.c Source/LibJPEG/jcinit.c Source/LibJPEG/jcmainct.c Source/LibJPEG/jcmarker.c Source/LibJPEG/jcmaster.c Source/LibJPEG/jcomapi.c Source/LibJPEG/jcparam.c Source/LibJPEG/jcprepct.c Source/LibJPEG/jcsample.c Source/LibJPEG/jctrans.c Source/LibJPEG/jdapimin.c Source/LibJPEG/jdapistd.c Source/LibJPEG/jdarith.c Source/LibJPEG/jdatadst.c Source/LibJPEG/jdatasrc.c Source/LibJPEG/jdcoefct.c Source/LibJPEG/jdcolor.c Source/LibJPEG/jddctmgr.c Source/LibJPEG/jdhuff.c Source/LibJPEG/jdinput.c Source/LibJPEG/jdmainct.c Source/LibJPEG/jdmarker.c Source/LibJPEG/jdmaster.c Source/LibJPEG/jdmerge.c Source/LibJPEG/jdpostct.c Source/LibJPEG/jdsample.c Source/LibJPEG/jdtrans.c Source/LibJPEG/jerror.c Source/LibJPEG/jfdctflt.c Source/LibJPEG/jfdctfst.c Source/LibJPEG/jfdctint.c Source/LibJPEG/jidctflt.c Source/LibJPEG/jidctfst.c Source/LibJPEG/jidctint.c Source/LibJPEG/jmemmgr.c Source/LibJPEG/jmemnobs.c Source/LibJPEG/jquant1.c Source/LibJPEG/jquant2.c Source/LibJPEG/jutils.c Source/LibJPEG/transupp.c Source/LibPNG/png.c Source/LibPNG/pngerror.c Source/LibPNG/pngget.c Source/LibPNG/pngmem.c Source/LibPNG/pngpread.c Source/LibPNG/pngread.c Source/LibPNG/pngrio.c Source/LibPNG/pngrtran.c Source/LibPNG/pngrutil.c Source/LibPNG/pngset.c Source/LibPNG/pngtrans.c Source/LibPNG/pngwio.c Source/LibPNG/pngwrite.c Source/LibPNG/pngwtran.c Source/LibPNG/pngwutil.c Source/LibTIFF4/tif_aux.c Source/LibTIFF4/tif_close.c Source/LibTIFF4/tif_codec.c Source/LibTIFF4/tif_color.c Source/LibTIFF4/tif_compress.c Source/LibTIFF4/tif_dir.c Source/LibTIFF4/tif_dirinfo.c Source/LibTIFF4/tif_dirread.c Source/LibTIFF4/tif_dirwrite.c Source/LibTIFF4/tif_dumpmode.c Source/LibTIFF4/tif_error.c Source/LibTIFF4/tif_extension.c Source/LibTIFF4/tif_fax3.c Source/LibTIFF4/tif_fax3sm.c Source/LibTIFF4/tif_flush.c Source/LibTIFF4/tif_getimage.c Source/LibTIFF4/tif_jpeg.c Source/LibTIFF4/tif_lerc.c Source/LibTIFF4/tif_luv.c Source/LibTIFF4/tif_lzw.c Source/LibTIFF4/tif_next.c Source/LibTIFF4/tif_ojpeg.c Source/LibTIFF4/tif_open.c Source/LibTIFF4/tif_packbits.c Source/LibTIFF4/tif_pixarlog.c Source/LibTIFF4/tif_predict.c Source/LibTIFF4/tif_print.c Source/LibTIFF4/tif_read.c Source/LibTIFF4/tif_strip.c Source/LibTIFF4/tif_swab.c Source/LibTIFF4/tif_thunder.c Source/LibTIFF4/tif_tile.c Source/LibTIFF4/tif_version.c Source/LibTIFF4/tif_warning.c Source/LibTIFF4/tif_webp.c Source/LibTIFF4/tif_write.c Source/LibTIFF4/tif_zip.c Source/ZLib/adler32.c Source/ZLib/compress.c Source/ZLib/crc32.c Source/ZLib/deflate.c Source/ZLib/gzclose.c Source/ZLib/gzlib.c Source/ZLib/gzread.c Source/ZLib/gzwrite.c Source/ZLib/infback.c Source/ZLib/inffast.c Source/ZLib/inflate.c Source/ZLib/inftrees.c Source/ZLib/trees.c Source/ZLib/uncompr.c Source/ZLib/zutil.c Source/LibOpenJPEG/bio.c Source/LibOpenJPEG/cio.c Source/LibOpenJPEG/dwt.c Source/LibOpenJPEG/event.c Source/LibOpenJPEG/function_list.c Source/LibOpenJPEG/image.c Source/LibOpenJPEG/invert.c Source/LibOpenJPEG/j2k.c Source/LibOpenJPEG/jp2.c Source/LibOpenJPEG/mct.c Source/LibOpenJPEG/mqc.c Source/LibOpenJPEG/openjpeg.c Source/LibOpenJPEG/opj_clock.c Source/LibOpenJPEG/pi.c Source/LibOpenJPEG/raw.c Source/LibOpenJPEG/t1.c Source/LibOpenJPEG/t2.c Source/LibOpenJPEG/tcd.c Source/LibOpenJPEG/tgt.c Source/OpenEXR/IexMath/IexMathFpu.cpp Source/OpenEXR/IlmImf/b44ExpLogTable.cpp Source/OpenEXR/IlmImf/ImfAcesFile.cpp Source/OpenEXR/IlmImf/ImfAttribute.cpp Source/OpenEXR/IlmImf/ImfB44Compressor.cpp Source/OpenEXR/IlmImf/ImfBoxAttribute.cpp Source/OpenEXR/IlmImf/ImfChannelList.cpp Source/OpenEXR/IlmImf/ImfChannelListAttribute.cpp Source/OpenEXR/IlmImf/ImfChromaticities.cpp Source/OpenEXR/IlmImf/ImfChromaticitiesAttribute.cpp Source/OpenEXR/IlmImf/ImfCompositeDeepScanLine.cpp Source/OpenEXR/IlmImf/ImfCompressionAttribute.cpp Source/OpenEXR/IlmImf/ImfCompressor.cpp Source/OpenEXR/IlmImf/ImfConvert.cpp Source/OpenEXR/IlmImf/ImfCRgbaFile.cpp Source/OpenEXR/IlmImf/ImfDeepCompositing.cpp Source/OpenEXR/IlmImf/ImfDeepFrameBuffer.cpp Source/OpenEXR/IlmImf/ImfDeepImageStateAttribute.cpp Source/OpenEXR/IlmImf/ImfDeepScanLineInputFile.cpp Source/OpenEXR/IlmImf/ImfDeepScanLineInputPart.cpp Source/OpenEXR/IlmImf/ImfDeepScanLineOutputFile.cpp Source/OpenEXR/IlmImf/ImfDeepScanLineOutputPart.cpp Source/OpenEXR/IlmImf/ImfDeepTiledInputFile.cpp Source/OpenEXR/IlmImf/ImfDeepTiledInputPart.cpp Source/OpenEXR/IlmImf/ImfDeepTiledOutputFile.cpp Source/OpenEXR/IlmImf/ImfDeepTiledOutputPart.cpp Source/OpenEXR/IlmImf/ImfDoubleAttribute.cpp Source/OpenEXR/IlmImf/ImfDwaCompressor.cpp Source/OpenEXR/IlmImf/ImfEnvmap.cpp Source/OpenEXR/IlmImf/ImfEnvmapAttribute.cpp Source/OpenEXR/IlmImf/ImfFastHuf.cpp Source/OpenEXR/IlmImf/ImfFloatAttribute.cpp Source/OpenEXR/IlmImf/ImfFloatVectorAttribute.cpp Source/OpenEXR/IlmImf/ImfFrameBuffer.cpp Source/OpenEXR/IlmImf/ImfFramesPerSecond.cpp Source/OpenEXR/IlmImf/ImfGenericInputFile.cpp Source/OpenEXR/IlmImf/ImfGenericOutputFile.cpp Source/OpenEXR/IlmImf/ImfHeader.cpp Source/OpenEXR/IlmImf/ImfHuf.cpp Source/OpenEXR/IlmImf/ImfInputFile.cpp Source/OpenEXR/IlmImf/ImfInputPart.cpp Source/OpenEXR/IlmImf/ImfInputPartData.cpp Source/OpenEXR/IlmImf/ImfIntAttribute.cpp Source/OpenEXR/IlmImf/ImfIO.cpp Source/OpenEXR/IlmImf/ImfKeyCode.cpp Source/OpenEXR/IlmImf/ImfKeyCodeAttribute.cpp Source/OpenEXR/IlmImf/ImfLineOrderAttribute.cpp Source/OpenEXR/IlmImf/ImfLut.cpp Source/OpenEXR/IlmImf/ImfMatrixAttribute.cpp Source/OpenEXR/IlmImf/ImfMisc.cpp Source/OpenEXR/IlmImf/ImfMultiPartInputFile.cpp Source/OpenEXR/IlmImf/ImfMultiPartOutputFile.cpp Source/OpenEXR/IlmImf/ImfMultiView.cpp Source/OpenEXR/IlmImf/ImfOpaqueAttribute.cpp Source/OpenEXR/IlmImf/ImfOutputFile.cpp Source/OpenEXR/IlmImf/ImfOutputPart.cpp Source/OpenEXR/IlmImf/ImfOutputPartData.cpp Source/OpenEXR/IlmImf/ImfPartType.cpp Source/OpenEXR/IlmImf/ImfPizCompressor.cpp Source/OpenEXR/IlmImf/ImfPreviewImage.cpp Source/OpenEXR/IlmImf/ImfPreviewImageAttribute.cpp Source/OpenEXR/IlmImf/ImfPxr24Compressor.cpp Source/OpenEXR/IlmImf/ImfRational.cpp Source/OpenEXR/IlmImf/ImfRationalAttribute.cpp Source/OpenEXR/IlmImf/ImfRgbaFile.cpp Source/OpenEXR/IlmImf/ImfRgbaYca.cpp Source/OpenEXR/IlmImf/ImfRle.cpp Source/OpenEXR/IlmImf/ImfRleCompressor.cpp Source/OpenEXR/IlmImf/ImfScanLineInputFile.cpp Source/OpenEXR/IlmImf/ImfStandardAttributes.cpp Source/OpenEXR/IlmImf/ImfStdIO.cpp Source/OpenEXR/IlmImf/ImfStringAttribute.cpp Source/OpenEXR/IlmImf/ImfStringVectorAttribute.cpp Source/OpenEXR/IlmImf/ImfSystemSpecific.cpp Source/OpenEXR/IlmImf/ImfTestFile.cpp Source/OpenEXR/IlmImf/ImfThreading.cpp Source/OpenEXR/IlmImf/ImfTileDescriptionAttribute.cpp Source/OpenEXR/IlmImf/ImfTiledInputFile.cpp Source/OpenEXR/IlmImf/ImfTiledInputPart.cpp Source/OpenEXR/IlmImf/ImfTiledMisc.cpp Source/OpenEXR/IlmImf/ImfTiledOutputFile.cpp Source/OpenEXR/IlmImf/ImfTiledOutputPart.cpp Source/OpenEXR/IlmImf/ImfTiledRgbaFile.cpp Source/OpenEXR/IlmImf/ImfTileOffsets.cpp Source/OpenEXR/IlmImf/ImfTimeCode.cpp Source/OpenEXR/IlmImf/ImfTimeCodeAttribute.cpp Source/OpenEXR/IlmImf/ImfVecAttribute.cpp Source/OpenEXR/IlmImf/ImfVersion.cpp Source/OpenEXR/IlmImf/ImfWav.cpp Source/OpenEXR/IlmImf/ImfZip.cpp Source/OpenEXR/IlmImf/ImfZipCompressor.cpp Source/OpenEXR/Imath/ImathBox.cpp Source/OpenEXR/Imath/ImathColorAlgo.cpp Source/OpenEXR/Imath/ImathFun.cpp Source/OpenEXR/Imath/ImathMatrixAlgo.cpp Source/OpenEXR/Imath/ImathRandom.cpp Source/OpenEXR/Imath/ImathShear.cpp Source/OpenEXR/Imath/ImathVec.cpp Source/OpenEXR/Iex/IexBaseExc.cpp Source/OpenEXR/Iex/IexThrowErrnoExc.cpp Source/OpenEXR/Half/half.cpp Source/OpenEXR/IlmThread/IlmThread.cpp Source/OpenEXR/IlmThread/IlmThreadMutex.cpp Source/OpenEXR/IlmThread/IlmThreadPool.cpp Source/OpenEXR/IlmThread/IlmThreadSemaphore.cpp Source/OpenEXR/IexMath/IexMathFloatExc.cpp Source/LibRawLite/src/decoders/canon_600.cpp Source/LibRawLite/src/decoders/crx.cpp Source/LibRawLite/src/decoders/decoders_dcraw.cpp Source/LibRawLite/src/decoders/decoders_libraw.cpp Source/LibRawLite/src/decoders/decoders_libraw_dcrdefs.cpp Source/LibRawLite/src/decoders/dng.cpp Source/LibRawLite/src/decoders/fp_dng.cpp Source/LibRawLite/src/decoders/fuji_compressed.cpp Source/LibRawLite/src/decoders/generic.cpp Source/LibRawLite/src/decoders/kodak_decoders.cpp Source/LibRawLite/src/decoders/load_mfbacks.cpp Source/LibRawLite/src/decoders/smal.cpp Source/LibRawLite/src/decoders/unpack.cpp Source/LibRawLite/src/decoders/unpack_thumb.cpp Source/LibRawLite/src/demosaic/aahd_demosaic.cpp Source/LibRawLite/src/demosaic/ahd_demosaic.cpp Source/LibRawLite/src/demosaic/dcb_demosaic.cpp Source/LibRawLite/src/demosaic/dht_demosaic.cpp Source/LibRawLite/src/demosaic/misc_demosaic.cpp Source/LibRawLite/src/demosaic/xtrans_demosaic.cpp Source/LibRawLite/src/integration/dngsdk_glue.cpp Source/LibRawLite/src/integration/rawspeed_glue.cpp Source/LibRawLite/src/libraw_datastream.cpp Source/LibRawLite/src/metadata/adobepano.cpp Source/LibRawLite/src/metadata/canon.cpp Source/LibRawLite/src/metadata/ciff.cpp Source/LibRawLite/src/metadata/cr3_parser.cpp Source/LibRawLite/src/metadata/epson.cpp Source/LibRawLite/src/metadata/exif_gps.cpp Source/LibRawLite/src/metadata/fuji.cpp Source/LibRawLite/src/metadata/hasselblad_model.cpp Source/LibRawLite/src/metadata/identify.cpp Source/LibRawLite/src/metadata/identify_tools.cpp Source/LibRawLite/src/metadata/kodak.cpp Source/LibRawLite/src/metadata/leica.cpp Source/LibRawLite/src/metadata/makernotes.cpp Source/LibRawLite/src/metadata/mediumformat.cpp Source/LibRawLite/src/metadata/minolta.cpp Source/LibRawLite/src/metadata/misc_parsers.cpp Source/LibRawLite/src/metadata/nikon.cpp Source/LibRawLite/src/metadata/normalize_model.cpp Source/LibRawLite/src/metadata/olympus.cpp Source/LibRawLite/src/metadata/p1.cpp Source/LibRawLite/src/metadata/pentax.cpp Source/LibRawLite/src/metadata/samsung.cpp Source/LibRawLite/src/metadata/sony.cpp Source/LibRawLite/src/metadata/tiff.cpp Source/LibRawLite/src/postprocessing/aspect_ratio.cpp Source/LibRawLite/src/postprocessing/dcraw_process.cpp Source/LibRawLite/src/postprocessing/mem_image.cpp Source/LibRawLite/src/postprocessing/postprocessing_aux.cpp Source/LibRawLite/src/postprocessing/postprocessing_utils.cpp Source/LibRawLite/src/postprocessing/postprocessing_utils_dcrdefs.cpp Source/LibRawLite/src/preprocessing/ext_preprocess.cpp Source/LibRawLite/src/preprocessing/raw2image.cpp Source/LibRawLite/src/preprocessing/subtract_black.cpp Source/LibRawLite/src/tables/cameralist.cpp Source/LibRawLite/src/tables/colorconst.cpp Source/LibRawLite/src/tables/colordata.cpp Source/LibRawLite/src/tables/wblists.cpp Source/LibRawLite/src/utils/curves.cpp Source/LibRawLite/src/utils/decoder_info.cpp Source/LibRawLite/src/utils/init_close_utils.cpp Source/LibRawLite/src/utils/open.cpp Source/LibRawLite/src/utils/phaseone_processing.cpp Source/LibRawLite/src/utils/read_utils.cpp Source/LibRawLite/src/utils/thumb_utils.cpp Source/LibRawLite/src/utils/utils_dcraw.cpp Source/LibRawLite/src/utils/utils_libraw.cpp Source/LibRawLite/src/write/file_write.cpp Source/LibRawLite/src/x3f/x3f_parse_process.cpp Source/LibRawLite/src/x3f/x3f_utils_patched.cpp Source/LibWebP/src/dec/alpha_dec.c Source/LibWebP/src/dec/buffer_dec.c Source/LibWebP/src/dec/frame_dec.c Source/LibWebP/src/dec/idec_dec.c Source/LibWebP/src/dec/io_dec.c Source/LibWebP/src/dec/quant_dec.c Source/LibWebP/src/dec/tree_dec.c Source/LibWebP/src/dec/vp8l_dec.c Source/LibWebP/src/dec/vp8_dec.c Source/LibWebP/src/dec/webp_dec.c Source/LibWebP/src/demux/anim_decode.c Source/LibWebP/src/demux/demux.c Source/LibWebP/src/dsp/alpha_processing.c Source/LibWebP/src/dsp/alpha_processing_mips_dsp_r2.c Source/LibWebP/src/dsp/alpha_processing_neon.c Source/LibWebP/src/dsp/alpha_processing_sse2.c Source/LibWebP/src/dsp/alpha_processing_sse41.c Source/LibWebP/src/dsp/cost.c Source/LibWebP/src/dsp/cost_mips32.c Source/LibWebP/src/dsp/cost_mips_dsp_r2.c Source/LibWebP/src/dsp/cost_neon.c Source/LibWebP/src/dsp/cost_sse2.c Source/LibWebP/src/dsp/cpu.c Source/LibWebP/src/dsp/dec.c Source/LibWebP/src/dsp/dec_clip_tables.c Source/LibWebP/src/dsp/dec_mips32.c Source/LibWebP/src/dsp/dec_mips_dsp_r2.c Source/LibWebP/src/dsp/dec_msa.c Source/LibWebP/src/dsp/dec_neon.c Source/LibWebP/src/dsp/dec_sse2.c Source/LibWebP/src/dsp/dec_sse41.c Source/LibWebP/src/dsp/enc.c Source/LibWebP/src/dsp/enc_avx2.c Source/LibWebP/src/dsp/enc_mips32.c Source/LibWebP/src/dsp/enc_mips_dsp_r2.c Source/LibWebP/src/dsp/enc_msa.c Source/LibWebP/src/dsp/enc_neon.c Source/LibWebP/src/dsp/enc_sse2.c Source/LibWebP/src/dsp/enc_sse41.c Source/LibWebP/src/dsp/filters.c Source/LibWebP/src/dsp/filters_mips_dsp_r2.c Source/LibWebP/src/dsp/filters_msa.c Source/LibWebP/src/dsp/filters_neon.c Source/LibWebP/src/dsp/filters_sse2.c Source/LibWebP/src/dsp/lossless.c Source/LibWebP/src/dsp/lossless_enc.c Source/LibWebP/src/dsp/lossless_enc_mips32.c Source/LibWebP/src/dsp/lossless_enc_mips_dsp_r2.c Source/LibWebP/src/dsp/lossless_enc_msa.c Source/LibWebP/src/dsp/lossless_enc_neon.c Source/LibWebP/src/dsp/lossless_enc_sse2.c Source/LibWebP/src/dsp/lossless_enc_sse41.c Source/LibWebP/src/dsp/lossless_mips_dsp_r2.c Source/LibWebP/src/dsp/lossless_msa.c Source/LibWebP/src/dsp/lossless_neon.c Source/LibWebP/src/dsp/lossless_sse2.c Source/LibWebP/src/dsp/lossless_sse41.c Source/LibWebP/src/dsp/rescaler.c Source/LibWebP/src/dsp/rescaler_mips32.c Source/LibWebP/src/dsp/rescaler_mips_dsp_r2.c Source/LibWebP/src/dsp/rescaler_msa.c Source/LibWebP/src/dsp/rescaler_neon.c Source/LibWebP/src/dsp/rescaler_sse2.c Source/LibWebP/src/dsp/ssim.c Source/LibWebP/src/dsp/ssim_sse2.c Source/LibWebP/src/dsp/upsampling.c Source/LibWebP/src/dsp/upsampling_mips_dsp_r2.c Source/LibWebP/src/dsp/upsampling_msa.c Source/LibWebP/src/dsp/upsampling_neon.c Source/LibWebP/src/dsp/upsampling_sse2.c Source/LibWebP/src/dsp/upsampling_sse41.c Source/LibWebP/src/dsp/yuv.c Source/LibWebP/src/dsp/yuv_mips32.c Source/LibWebP/src/dsp/yuv_mips_dsp_r2.c Source/LibWebP/src/dsp/yuv_neon.c Source/LibWebP/src/dsp/yuv_sse2.c Source/LibWebP/src/dsp/yuv_sse41.c Source/LibWebP/src/enc/alpha_enc.c Source/LibWebP/src/enc/analysis_enc.c Source/LibWebP/src/enc/backward_references_cost_enc.c Source/LibWebP/src/enc/backward_references_enc.c Source/LibWebP/src/enc/config_enc.c Source/LibWebP/src/enc/cost_enc.c Source/LibWebP/src/enc/filter_enc.c Source/LibWebP/src/enc/frame_enc.c Source/LibWebP/src/enc/histogram_enc.c Source/LibWebP/src/enc/iterator_enc.c Source/LibWebP/src/enc/near_lossless_enc.c Source/LibWebP/src/enc/picture_csp_enc.c Source/LibWebP/src/enc/picture_enc.c Source/LibWebP/src/enc/picture_psnr_enc.c Source/LibWebP/src/enc/picture_rescale_enc.c Source/LibWebP/src/enc/picture_tools_enc.c Source/LibWebP/src/enc/predictor_enc.c Source/LibWebP/src/enc/quant_enc.c Source/LibWebP/src/enc/syntax_enc.c Source/LibWebP/src/enc/token_enc.c Source/LibWebP/src/enc/tree_enc.c Source/LibWebP/src/enc/vp8l_enc.c Source/LibWebP/src/enc/webp_enc.c Source/LibWebP/src/mux/anim_encode.c Source/LibWebP/src/mux/muxedit.c Source/LibWebP/src/mux/muxinternal.c Source/LibWebP/src/mux/muxread.c Source/LibWebP/src/utils/bit_reader_utils.c Source/LibWebP/src/utils/bit_writer_utils.c Source/LibWebP/src/utils/color_cache_utils.c Source/LibWebP/src/utils/filters_utils.c Source/LibWebP/src/utils/huffman_encode_utils.c Source/LibWebP/src/utils/huffman_utils.c Source/LibWebP/src/utils/quant_levels_dec_utils.c Source/LibWebP/src/utils/quant_levels_utils.c Source/LibWebP/src/utils/random_utils.c Source/LibWebP/src/utils/rescaler_utils.c Source/LibWebP/src/utils/thread_utils.c Source/LibWebP/src/utils/utils.c Source/LibJXR/image/decode/decode.c Source/LibJXR/image/decode/JXRTranscode.c Source/LibJXR/image/decode/postprocess.c Source/LibJXR/image/decode/segdec.c Source/LibJXR/image/decode/strdec.c Source/LibJXR/image/decode/strdec_x86.c Source/LibJXR/image/decode/strInvTransform.c Source/LibJXR/image/decode/strPredQuantDec.c Source/LibJXR/image/encode/encode.c Source/LibJXR/image/encode/segenc.c Source/LibJXR/image/encode/strenc.c Source/LibJXR/image/encode/strenc_x86.c Source/LibJXR/image/encode/strFwdTransform.c Source/LibJXR/image/encode/strPredQuantEnc.c Source/LibJXR/image/sys/adapthuff.c Source/LibJXR/image/sys/image.c Source/LibJXR/image/sys/strcodec.c Source/LibJXR/image/sys/strPredQuant.c Source/LibJXR/image/sys/strTransform.c Source/LibJXR/jxrgluelib/JXRGlue.c Source/LibJXR/jxrgluelib/JXRGlueJxr.c Source/LibJXR/jxrgluelib/JXRGluePFC.c Source/LibJXR/jxrgluelib/JXRMeta.c 
+-INCLS = ./Dist/FreeImage.h ./Examples/Generic/FIIO_Mem.h ./Examples/OpenGL/TextureManager/TextureManager.h ./Examples/Plugin/PluginCradle.h ./Source/CacheFile.h ./Source/FreeImage/J2KHelper.h ./Source/FreeImage/PSDParser.h ./Source/FreeImage.h ./Source/FreeImageIO.h ./Source/FreeImageToolkit/Filters.h ./Source/FreeImageToolkit/Resize.h ./Source/LibJPEG/cderror.h ./Source/LibJPEG/cdjpeg.h ./Source/LibJPEG/jconfig.h ./Source/LibJPEG/jdct.h ./Source/LibJPEG/jerror.h ./Source/LibJPEG/jinclude.h ./Source/LibJPEG/jmemsys.h ./Source/LibJPEG/jmorecfg.h ./Source/LibJPEG/jpegint.h ./Source/LibJPEG/jpeglib.h ./Source/LibJPEG/jversion.h ./Source/LibJPEG/transupp.h ./Source/LibJXR/common/include/guiddef.h ./Source/LibJXR/common/include/wmsal.h ./Source/LibJXR/common/include/wmspecstring.h ./Source/LibJXR/common/include/wmspecstrings_adt.h ./Source/LibJXR/common/include/wmspecstrings_strict.h ./Source/LibJXR/common/include/wmspecstrings_undef.h ./Source/LibJXR/image/decode/decode.h ./Source/LibJXR/image/encode/encode.h ./Source/LibJXR/image/sys/ansi.h ./Source/LibJXR/image/sys/common.h ./Source/LibJXR/image/sys/perfTimer.h ./Source/LibJXR/image/sys/strcodec.h ./Source/LibJXR/image/sys/strTransform.h ./Source/LibJXR/image/sys/windowsmediaphoto.h ./Source/LibJXR/image/sys/xplatform_image.h ./Source/LibJXR/image/x86/x86.h ./Source/LibJXR/jxrgluelib/JXRGlue.h ./Source/LibJXR/jxrgluelib/JXRMeta.h ./Source/LibOpenJPEG/bio.h ./Source/LibOpenJPEG/cidx_manager.h ./Source/LibOpenJPEG/cio.h ./Source/LibOpenJPEG/dwt.h ./Source/LibOpenJPEG/event.h ./Source/LibOpenJPEG/function_list.h ./Source/LibOpenJPEG/image.h ./Source/LibOpenJPEG/indexbox_manager.h ./Source/LibOpenJPEG/invert.h ./Source/LibOpenJPEG/j2k.h ./Source/LibOpenJPEG/jp2.h ./Source/LibOpenJPEG/mct.h ./Source/LibOpenJPEG/mqc.h ./Source/LibOpenJPEG/openjpeg.h ./Source/LibOpenJPEG/opj_clock.h ./Source/LibOpenJPEG/opj_codec.h ./Source/LibOpenJPEG/opj_config.h ./Source/LibOpenJPEG/opj_config_private.h ./Source/LibOpenJPEG/opj_includes.h ./Source/LibOpenJPEG/opj_intmath.h ./Source/LibOpenJPEG/opj_inttypes.h ./Source/LibOpenJPEG/opj_malloc.h ./Source/LibOpenJPEG/opj_stdint.h ./Source/LibOpenJPEG/pi.h ./Source/LibOpenJPEG/raw.h ./Source/LibOpenJPEG/t1.h ./Source/LibOpenJPEG/t1_luts.h ./Source/LibOpenJPEG/t2.h ./Source/LibOpenJPEG/tcd.h ./Source/LibOpenJPEG/tgt.h ./Source/LibPNG/png.h ./Source/LibPNG/pngconf.h ./Source/LibPNG/pngdebug.h ./Source/LibPNG/pnginfo.h ./Source/LibPNG/pnglibconf.h ./Source/LibPNG/pngpriv.h ./Source/LibPNG/pngstruct.h ./Source/LibRawLite/internal/dcraw_defs.h ./Source/LibRawLite/internal/dcraw_fileio_defs.h ./Source/LibRawLite/internal/defines.h ./Source/LibRawLite/internal/dmp_include.h ./Source/LibRawLite/internal/libraw_cameraids.h ./Source/LibRawLite/internal/libraw_cxx_defs.h ./Source/LibRawLite/internal/libraw_internal_funcs.h ./Source/LibRawLite/internal/var_defines.h ./Source/LibRawLite/internal/x3f_tools.h ./Source/LibRawLite/libraw/libraw.h ./Source/LibRawLite/libraw/libraw_alloc.h ./Source/LibRawLite/libraw/libraw_const.h ./Source/LibRawLite/libraw/libraw_datastream.h ./Source/LibRawLite/libraw/libraw_internal.h ./Source/LibRawLite/libraw/libraw_types.h ./Source/LibRawLite/libraw/libraw_version.h ./Source/LibTIFF4/t4.h ./Source/LibTIFF4/tiff.h ./Source/LibTIFF4/tiffconf.h ./Source/LibTIFF4/tiffconf.vc.h ./Source/LibTIFF4/tiffconf.wince.h ./Source/LibTIFF4/tiffio.h ./Source/LibTIFF4/tiffiop.h ./Source/LibTIFF4/tiffvers.h ./Source/LibTIFF4/tif_config.h ./Source/LibTIFF4/tif_config.vc.h ./Source/LibTIFF4/tif_config.wince.h ./Source/LibTIFF4/tif_dir.h ./Source/LibTIFF4/tif_fax3.h ./Source/LibTIFF4/tif_predict.h ./Source/LibTIFF4/uvcode.h ./Source/LibWebP/src/dec/alphai_dec.h ./Source/LibWebP/src/dec/common_dec.h ./Source/LibWebP/src/dec/vp8i_dec.h ./Source/LibWebP/src/dec/vp8li_dec.h ./Source/LibWebP/src/dec/vp8_dec.h ./Source/LibWebP/src/dec/webpi_dec.h ./Source/LibWebP/src/dsp/common_sse2.h ./Source/LibWebP/src/dsp/common_sse41.h ./Source/LibWebP/src/dsp/dsp.h ./Source/LibWebP/src/dsp/lossless.h ./Source/LibWebP/src/dsp/lossless_common.h ./Source/LibWebP/src/dsp/mips_macro.h ./Source/LibWebP/src/dsp/msa_macro.h ./Source/LibWebP/src/dsp/neon.h ./Source/LibWebP/src/dsp/quant.h ./Source/LibWebP/src/dsp/yuv.h ./Source/LibWebP/src/enc/backward_references_enc.h ./Source/LibWebP/src/enc/cost_enc.h ./Source/LibWebP/src/enc/histogram_enc.h ./Source/LibWebP/src/enc/vp8i_enc.h ./Source/LibWebP/src/enc/vp8li_enc.h ./Source/LibWebP/src/mux/animi.h ./Source/LibWebP/src/mux/muxi.h ./Source/LibWebP/src/utils/bit_reader_inl_utils.h ./Source/LibWebP/src/utils/bit_reader_utils.h ./Source/LibWebP/src/utils/bit_writer_utils.h ./Source/LibWebP/src/utils/color_cache_utils.h ./Source/LibWebP/src/utils/endian_inl_utils.h ./Source/LibWebP/src/utils/filters_utils.h ./Source/LibWebP/src/utils/huffman_encode_utils.h ./Source/LibWebP/src/utils/huffman_utils.h ./Source/LibWebP/src/utils/quant_levels_dec_utils.h ./Source/LibWebP/src/utils/quant_levels_utils.h ./Source/LibWebP/src/utils/random_utils.h ./Source/LibWebP/src/utils/rescaler_utils.h ./Source/LibWebP/src/utils/thread_utils.h ./Source/LibWebP/src/utils/utils.h ./Source/LibWebP/src/webp/decode.h ./Source/LibWebP/src/webp/demux.h ./Source/LibWebP/src/webp/encode.h ./Source/LibWebP/src/webp/format_constants.h ./Source/LibWebP/src/webp/mux.h ./Source/LibWebP/src/webp/mux_types.h ./Source/LibWebP/src/webp/types.h ./Source/MapIntrospector.h ./Source/Metadata/FIRational.h ./Source/Metadata/FreeImageTag.h ./Source/OpenEXR/Half/eLut.h ./Source/OpenEXR/Half/half.h ./Source/OpenEXR/Half/halfExport.h ./Source/OpenEXR/Half/halfFunction.h ./Source/OpenEXR/Half/halfLimits.h ./Source/OpenEXR/Half/toFloat.h ./Source/OpenEXR/Iex/Iex.h ./Source/OpenEXR/Iex/IexBaseExc.h ./Source/OpenEXR/Iex/IexErrnoExc.h ./Source/OpenEXR/Iex/IexExport.h ./Source/OpenEXR/Iex/IexForward.h ./Source/OpenEXR/Iex/IexMacros.h ./Source/OpenEXR/Iex/IexMathExc.h ./Source/OpenEXR/Iex/IexNamespace.h ./Source/OpenEXR/Iex/IexThrowErrnoExc.h ./Source/OpenEXR/IexMath/IexMathFloatExc.h ./Source/OpenEXR/IexMath/IexMathFpu.h ./Source/OpenEXR/IexMath/IexMathIeeeExc.h ./Source/OpenEXR/IlmBaseConfig.h ./Source/OpenEXR/IlmImf/b44ExpLogTable.h ./Source/OpenEXR/IlmImf/dwaLookups.h ./Source/OpenEXR/IlmImf/ImfAcesFile.h ./Source/OpenEXR/IlmImf/ImfArray.h ./Source/OpenEXR/IlmImf/ImfAttribute.h ./Source/OpenEXR/IlmImf/ImfAutoArray.h ./Source/OpenEXR/IlmImf/ImfB44Compressor.h ./Source/OpenEXR/IlmImf/ImfBoxAttribute.h ./Source/OpenEXR/IlmImf/ImfChannelList.h ./Source/OpenEXR/IlmImf/ImfChannelListAttribute.h ./Source/OpenEXR/IlmImf/ImfCheckedArithmetic.h ./Source/OpenEXR/IlmImf/ImfChromaticities.h ./Source/OpenEXR/IlmImf/ImfChromaticitiesAttribute.h ./Source/OpenEXR/IlmImf/ImfCompositeDeepScanLine.h ./Source/OpenEXR/IlmImf/ImfCompression.h ./Source/OpenEXR/IlmImf/ImfCompressionAttribute.h ./Source/OpenEXR/IlmImf/ImfCompressor.h ./Source/OpenEXR/IlmImf/ImfConvert.h ./Source/OpenEXR/IlmImf/ImfCRgbaFile.h ./Source/OpenEXR/IlmImf/ImfDeepCompositing.h ./Source/OpenEXR/IlmImf/ImfDeepFrameBuffer.h ./Source/OpenEXR/IlmImf/ImfDeepImageState.h ./Source/OpenEXR/IlmImf/ImfDeepImageStateAttribute.h ./Source/OpenEXR/IlmImf/ImfDeepScanLineInputFile.h ./Source/OpenEXR/IlmImf/ImfDeepScanLineInputPart.h ./Source/OpenEXR/IlmImf/ImfDeepScanLineOutputFile.h ./Source/OpenEXR/IlmImf/ImfDeepScanLineOutputPart.h ./Source/OpenEXR/IlmImf/ImfDeepTiledInputFile.h ./Source/OpenEXR/IlmImf/ImfDeepTiledInputPart.h ./Source/OpenEXR/IlmImf/ImfDeepTiledOutputFile.h ./Source/OpenEXR/IlmImf/ImfDeepTiledOutputPart.h ./Source/OpenEXR/IlmImf/ImfDoubleAttribute.h ./Source/OpenEXR/IlmImf/ImfDwaCompressor.h ./Source/OpenEXR/IlmImf/ImfDwaCompressorSimd.h ./Source/OpenEXR/IlmImf/ImfEnvmap.h ./Source/OpenEXR/IlmImf/ImfEnvmapAttribute.h ./Source/OpenEXR/IlmImf/ImfExport.h ./Source/OpenEXR/IlmImf/ImfFastHuf.h ./Source/OpenEXR/IlmImf/ImfFloatAttribute.h ./Source/OpenEXR/IlmImf/ImfFloatVectorAttribute.h ./Source/OpenEXR/IlmImf/ImfForward.h ./Source/OpenEXR/IlmImf/ImfFrameBuffer.h ./Source/OpenEXR/IlmImf/ImfFramesPerSecond.h ./Source/OpenEXR/IlmImf/ImfGenericInputFile.h ./Source/OpenEXR/IlmImf/ImfGenericOutputFile.h ./Source/OpenEXR/IlmImf/ImfHeader.h ./Source/OpenEXR/IlmImf/ImfHuf.h ./Source/OpenEXR/IlmImf/ImfInputFile.h ./Source/OpenEXR/IlmImf/ImfInputPart.h ./Source/OpenEXR/IlmImf/ImfInputPartData.h ./Source/OpenEXR/IlmImf/ImfInputStreamMutex.h ./Source/OpenEXR/IlmImf/ImfInt64.h ./Source/OpenEXR/IlmImf/ImfIntAttribute.h ./Source/OpenEXR/IlmImf/ImfIO.h ./Source/OpenEXR/IlmImf/ImfKeyCode.h ./Source/OpenEXR/IlmImf/ImfKeyCodeAttribute.h ./Source/OpenEXR/IlmImf/ImfLineOrder.h ./Source/OpenEXR/IlmImf/ImfLineOrderAttribute.h ./Source/OpenEXR/IlmImf/ImfLut.h ./Source/OpenEXR/IlmImf/ImfMatrixAttribute.h ./Source/OpenEXR/IlmImf/ImfMisc.h ./Source/OpenEXR/IlmImf/ImfMultiPartInputFile.h ./Source/OpenEXR/IlmImf/ImfMultiPartOutputFile.h ./Source/OpenEXR/IlmImf/ImfMultiView.h ./Source/OpenEXR/IlmImf/ImfName.h ./Source/OpenEXR/IlmImf/ImfNamespace.h ./Source/OpenEXR/IlmImf/ImfOpaqueAttribute.h ./Source/OpenEXR/IlmImf/ImfOptimizedPixelReading.h ./Source/OpenEXR/IlmImf/ImfOutputFile.h ./Source/OpenEXR/IlmImf/ImfOutputPart.h ./Source/OpenEXR/IlmImf/ImfOutputPartData.h ./Source/OpenEXR/IlmImf/ImfOutputStreamMutex.h ./Source/OpenEXR/IlmImf/ImfPartHelper.h ./Source/OpenEXR/IlmImf/ImfPartType.h ./Source/OpenEXR/IlmImf/ImfPixelType.h ./Source/OpenEXR/IlmImf/ImfPizCompressor.h ./Source/OpenEXR/IlmImf/ImfPreviewImage.h ./Source/OpenEXR/IlmImf/ImfPreviewImageAttribute.h ./Source/OpenEXR/IlmImf/ImfPxr24Compressor.h ./Source/OpenEXR/IlmImf/ImfRational.h ./Source/OpenEXR/IlmImf/ImfRationalAttribute.h ./Source/OpenEXR/IlmImf/ImfRgba.h ./Source/OpenEXR/IlmImf/ImfRgbaFile.h ./Source/OpenEXR/IlmImf/ImfRgbaYca.h ./Source/OpenEXR/IlmImf/ImfRle.h ./Source/OpenEXR/IlmImf/ImfRleCompressor.h ./Source/OpenEXR/IlmImf/ImfScanLineInputFile.h ./Source/OpenEXR/IlmImf/ImfSimd.h ./Source/OpenEXR/IlmImf/ImfStandardAttributes.h ./Source/OpenEXR/IlmImf/ImfStdIO.h ./Source/OpenEXR/IlmImf/ImfStringAttribute.h ./Source/OpenEXR/IlmImf/ImfStringVectorAttribute.h ./Source/OpenEXR/IlmImf/ImfSystemSpecific.h ./Source/OpenEXR/IlmImf/ImfTestFile.h ./Source/OpenEXR/IlmImf/ImfThreading.h ./Source/OpenEXR/IlmImf/ImfTileDescription.h ./Source/OpenEXR/IlmImf/ImfTileDescriptionAttribute.h ./Source/OpenEXR/IlmImf/ImfTiledInputFile.h ./Source/OpenEXR/IlmImf/ImfTiledInputPart.h ./Source/OpenEXR/IlmImf/ImfTiledMisc.h ./Source/OpenEXR/IlmImf/ImfTiledOutputFile.h ./Source/OpenEXR/IlmImf/ImfTiledOutputPart.h ./Source/OpenEXR/IlmImf/ImfTiledRgbaFile.h ./Source/OpenEXR/IlmImf/ImfTileOffsets.h ./Source/OpenEXR/IlmImf/ImfTimeCode.h ./Source/OpenEXR/IlmImf/ImfTimeCodeAttribute.h ./Source/OpenEXR/IlmImf/ImfVecAttribute.h ./Source/OpenEXR/IlmImf/ImfVersion.h ./Source/OpenEXR/IlmImf/ImfWav.h ./Source/OpenEXR/IlmImf/ImfXdr.h ./Source/OpenEXR/IlmImf/ImfZip.h ./Source/OpenEXR/IlmImf/ImfZipCompressor.h ./Source/OpenEXR/IlmThread/IlmThread.h ./Source/OpenEXR/IlmThread/IlmThreadExport.h ./Source/OpenEXR/IlmThread/IlmThreadForward.h ./Source/OpenEXR/IlmThread/IlmThreadMutex.h ./Source/OpenEXR/IlmThread/IlmThreadNamespace.h ./Source/OpenEXR/IlmThread/IlmThreadPool.h ./Source/OpenEXR/IlmThread/IlmThreadSemaphore.h ./Source/OpenEXR/Imath/ImathBox.h ./Source/OpenEXR/Imath/ImathBoxAlgo.h ./Source/OpenEXR/Imath/ImathColor.h ./Source/OpenEXR/Imath/ImathColorAlgo.h ./Source/OpenEXR/Imath/ImathEuler.h ./Source/OpenEXR/Imath/ImathExc.h ./Source/OpenEXR/Imath/ImathExport.h ./Source/OpenEXR/Imath/ImathForward.h ./Source/OpenEXR/Imath/ImathFrame.h ./Source/OpenEXR/Imath/ImathFrustum.h ./Source/OpenEXR/Imath/ImathFrustumTest.h ./Source/OpenEXR/Imath/ImathFun.h ./Source/OpenEXR/Imath/ImathGL.h ./Source/OpenEXR/Imath/ImathGLU.h ./Source/OpenEXR/Imath/ImathHalfLimits.h ./Source/OpenEXR/Imath/ImathInt64.h ./Source/OpenEXR/Imath/ImathInterval.h ./Source/OpenEXR/Imath/ImathLimits.h ./Source/OpenEXR/Imath/ImathLine.h ./Source/OpenEXR/Imath/ImathLineAlgo.h ./Source/OpenEXR/Imath/ImathMath.h ./Source/OpenEXR/Imath/ImathMatrix.h ./Source/OpenEXR/Imath/ImathMatrixAlgo.h ./Source/OpenEXR/Imath/ImathNamespace.h ./Source/OpenEXR/Imath/ImathPlane.h ./Source/OpenEXR/Imath/ImathPlatform.h ./Source/OpenEXR/Imath/ImathQuat.h ./Source/OpenEXR/Imath/ImathRandom.h ./Source/OpenEXR/Imath/ImathRoots.h ./Source/OpenEXR/Imath/ImathShear.h ./Source/OpenEXR/Imath/ImathSphere.h ./Source/OpenEXR/Imath/ImathVec.h ./Source/OpenEXR/Imath/ImathVecAlgo.h ./Source/OpenEXR/OpenEXRConfig.h ./Source/Plugin.h ./Source/Quantizers.h ./Source/ToneMapping.h ./Source/Utilities.h ./Source/ZLib/crc32.h ./Source/ZLib/deflate.h ./Source/ZLib/gzguts.h ./Source/ZLib/inffast.h ./Source/ZLib/inffixed.h ./Source/ZLib/inflate.h ./Source/ZLib/inftrees.h ./Source/ZLib/trees.h ./Source/ZLib/zconf.h ./Source/ZLib/zlib.h ./Source/ZLib/zutil.h ./TestAPI/TestSuite.h ./Wrapper/FreeImage.NET/cpp/FreeImageIO/FreeImageIO.Net.h ./Wrapper/FreeImage.NET/cpp/FreeImageIO/resource.h ./Wrapper/FreeImage.NET/cpp/FreeImageIO/Stdafx.h ./Wrapper/FreeImagePlus/FreeImagePlus.h ./Wrapper/FreeImagePlus/test/fipTest.h
 +SRCS = ./Source/FreeImage/BitmapAccess.cpp ./Source/FreeImage/ColorLookup.cpp ./Source/FreeImage/ConversionRGBA16.cpp ./Source/FreeImage/ConversionRGBAF.cpp ./Source/FreeImage/FreeImage.cpp ./Source/FreeImage/FreeImageC.c ./Source/FreeImage/FreeImageIO.cpp ./Source/FreeImage/GetType.cpp ./Source/FreeImage/LFPQuantizer.cpp ./Source/FreeImage/MemoryIO.cpp ./Source/FreeImage/PixelAccess.cpp ./Source/FreeImage/J2KHelper.cpp ./Source/FreeImage/MNGHelper.cpp ./Source/FreeImage/Plugin.cpp ./Source/FreeImage/PluginBMP.cpp ./Source/FreeImage/PluginCUT.cpp ./Source/FreeImage/PluginDDS.cpp ./Source/FreeImage/PluginEXR.cpp ./Source/FreeImage/PluginG3.cpp ./Source/FreeImage/PluginGIF.cpp ./Source/FreeImage/PluginHDR.cpp ./Source/FreeImage/PluginICO.cpp ./Source/FreeImage/PluginIFF.cpp ./Source/FreeImage/PluginJ2K.cpp ./Source/FreeImage/PluginJNG.cpp ./Source/FreeImage/PluginJP2.cpp ./Source/FreeImage/PluginJPEG.cpp ./Source/FreeImage/PluginJXR.cpp ./Source/FreeImage/PluginKOALA.cpp ./Source/FreeImage/PluginMNG.cpp ./Source/FreeImage/PluginPCD.cpp ./Source/FreeImage/PluginPCX.cpp ./Source/FreeImage/PluginPFM.cpp ./Source/FreeImage/PluginPICT.cpp ./Source/FreeImage/PluginPNG.cpp ./Source/FreeImage/PluginPNM.cpp ./Source/FreeImage/PluginPSD.cpp ./Source/FreeImage/PluginRAS.cpp ./Source/FreeImage/PluginRAW.cpp ./Source/FreeImage/PluginSGI.cpp ./Source/FreeImage/PluginTARGA.cpp ./Source/FreeImage/PluginTIFF.cpp ./Source/FreeImage/PluginWBMP.cpp ./Source/FreeImage/PluginWebP.cpp ./Source/FreeImage/PluginXBM.cpp ./Source/FreeImage/PluginXPM.cpp ./Source/FreeImage/PSDParser.cpp ./Source/FreeImage/TIFFLogLuv.cpp ./Source/FreeImage/Conversion.cpp ./Source/FreeImage/Conversion16_555.cpp ./Source/FreeImage/Conversion16_565.cpp ./Source/FreeImage/Conversion24.cpp ./Source/FreeImage/Conversion32.cpp ./Source/FreeImage/Conversion4.cpp ./Source/FreeImage/Conversion8.cpp ./Source/FreeImage/ConversionFloat.cpp ./Source/FreeImage/ConversionRGB16.cpp ./Source/FreeImage/ConversionRGBF.cpp ./Source/FreeImage/ConversionType.cpp ./Source/FreeImage/ConversionUINT16.cpp ./Source/FreeImage/Halftoning.cpp ./Source/FreeImage/tmoColorConvert.cpp ./Source/FreeImage/tmoDrago03.cpp ./Source/FreeImage/tmoFattal02.cpp ./Source/FreeImage/tmoReinhard05.cpp ./Source/FreeImage/ToneMapping.cpp ./Source/FreeImage/NNQuantizer.cpp ./Source/FreeImage/WuQuantizer.cpp ./Source/FreeImage/CacheFile.cpp ./Source/FreeImage/MultiPage.cpp ./Source/FreeImage/ZLibInterface.cpp ./Source/Metadata/Exif.cpp ./Source/Metadata/FIRational.cpp ./Source/Metadata/FreeImageTag.cpp ./Source/Metadata/IPTC.cpp ./Source/Metadata/TagConversion.cpp ./Source/Metadata/TagLib.cpp ./Source/Metadata/XTIFF.cpp ./Source/FreeImageToolkit/Background.cpp ./Source/FreeImageToolkit/BSplineRotate.cpp ./Source/FreeImageToolkit/Channels.cpp ./Source/FreeImageToolkit/ClassicRotate.cpp ./Source/FreeImageToolkit/Colors.cpp ./Source/FreeImageToolkit/CopyPaste.cpp ./Source/FreeImageToolkit/Display.cpp ./Source/FreeImageToolkit/Flip.cpp ./Source/FreeImageToolkit/JPEGTransform.cpp ./Source/FreeImageToolkit/MultigridPoissonSolver.cpp ./Source/FreeImageToolkit/Rescale.cpp ./Source/FreeImageToolkit/Resize.cpp 
-+INCLS = ./Examples/OpenGL/TextureManager/TextureManager.h ./Examples/Generic/FIIO_Mem.h ./Examples/Plugin/PluginCradle.h ./Wrapper/FreeImage.NET/cpp/FreeImageIO/resource.h ./Wrapper/FreeImage.NET/cpp/FreeImageIO/FreeImageIO.Net.h ./Wrapper/FreeImage.NET/cpp/FreeImageIO/Stdafx.h ./Wrapper/FreeImagePlus/FreeImagePlus.h ./Wrapper/FreeImagePlus/test/fipTest.h ./TestAPI/TestSuite.h ./Source/FreeImage.h ./Source/FreeImage/PSDParser.h ./Source/FreeImage/J2KHelper.h ./Source/FreeImageToolkit/Filters.h ./Source/FreeImageToolkit/Resize.h ./Source/Metadata/FreeImageTag.h ./Source/Metadata/FIRational.h ./Source/ToneMapping.h ./Source/FreeImageIO.h ./Source/Plugin.h ./Source/CacheFile.h ./Source/Utilities.h ./Source/MapIntrospector.h ./Source/Quantizers.h
++INCLS = ./Dist/FreeImage.h ./Examples/Generic/FIIO_Mem.h ./Examples/OpenGL/TextureManager/TextureManager.h ./Examples/Plugin/PluginCradle.h ./Source/CacheFile.h ./Source/FreeImage/J2KHelper.h ./Source/FreeImage/PSDParser.h ./Source/FreeImage.h ./Source/FreeImageIO.h ./Source/FreeImageToolkit/Filters.h ./Source/FreeImageToolkit/Resize.h ./Source/MapIntrospector.h ./Source/Metadata/FIRational.h ./Source/Metadata/FreeImageTag.h ./Source/Plugin.h ./Source/Quantizers.h ./Source/ToneMapping.h ./Source/Utilities.h ./TestAPI/TestSuite.h ./Wrapper/FreeImage.NET/cpp/FreeImageIO/FreeImageIO.Net.h ./Wrapper/FreeImage.NET/cpp/FreeImageIO/resource.h ./Wrapper/FreeImage.NET/cpp/FreeImageIO/Stdafx.h ./Wrapper/FreeImagePlus/FreeImagePlus.h ./Wrapper/FreeImagePlus/test/fipTest.h
  
 -INCLUDE = -I. -ISource -ISource/Metadata -ISource/FreeImageToolkit -ISource/LibJPEG -ISource/LibPNG -ISource/LibTIFF4 -ISource/ZLib -ISource/LibOpenJPEG -ISource/OpenEXR -ISource/OpenEXR/Half -ISource/OpenEXR/Iex -ISource/OpenEXR/IlmImf -ISource/OpenEXR/IlmThread -ISource/OpenEXR/Imath -ISource/OpenEXR/IexMath -ISource/LibRawLite -ISource/LibRawLite/dcraw -ISource/LibRawLite/internal -ISource/LibRawLite/libraw -ISource/LibRawLite/src -ISource/LibWebP -ISource/LibJXR -ISource/LibJXR/common/include -ISource/LibJXR/image/sys -ISource/LibJXR/jxrgluelib
 +INCLUDE = -I. -ISource -ISource/Metadata -ISource/FreeImageToolkit
 diff --git a/Source/FreeImage.h b/Source/FreeImage.h
-index e8f1da6..235563e 100644
+index 2dfb9ee2..d2d32322 100644
 --- a/Source/FreeImage.h
 +++ b/Source/FreeImage.h
 @@ -155,8 +155,8 @@ typedef uint8_t BYTE;
@@ -214,20 +214,20 @@ index e8f1da6..235563e 100644
  // MS is not C99 ISO compliant
  typedef long BOOL;
 diff --git a/Source/FreeImage/J2KHelper.cpp b/Source/FreeImage/J2KHelper.cpp
-index 1776c3b..538f1c5 100644
+index 062b49ee..0e79fbc5 100644
 --- a/Source/FreeImage/J2KHelper.cpp
 +++ b/Source/FreeImage/J2KHelper.cpp
 @@ -21,7 +21,7 @@
- 
- #include "FreeImage.h"
- #include "Utilities.h"
--#include "../LibOpenJPEG/openjpeg.h"
-+#include <openjpeg.h>
- #include "J2KHelper.h"
- 
- // --------------------------------------------------------------------------
+ 

+ #include "FreeImage.h"

+ #include "Utilities.h"

+-#include "../LibOpenJPEG/openjpeg.h"

++#include <openjpeg.h>

+ #include "J2KHelper.h"

+ 

+ // --------------------------------------------------------------------------

 diff --git a/Source/FreeImage/PluginEXR.cpp b/Source/FreeImage/PluginEXR.cpp
-index b286430..9bf3ada 100644
+index b2864303..9bf3ada9 100644
 --- a/Source/FreeImage/PluginEXR.cpp
 +++ b/Source/FreeImage/PluginEXR.cpp
 @@ -28,16 +28,16 @@
@@ -258,7 +258,7 @@ index b286430..9bf3ada 100644
  
  // ==========================================================
 diff --git a/Source/FreeImage/PluginG3.cpp b/Source/FreeImage/PluginG3.cpp
-index 0a083b4..e2f1241 100644
+index 4680aa32..7d4b5ce6 100644
 --- a/Source/FreeImage/PluginG3.cpp
 +++ b/Source/FreeImage/PluginG3.cpp
 @@ -20,7 +20,7 @@
@@ -271,7 +271,7 @@ index 0a083b4..e2f1241 100644
  #include "FreeImage.h"
  #include "Utilities.h"
 diff --git a/Source/FreeImage/PluginJ2K.cpp b/Source/FreeImage/PluginJ2K.cpp
-index b8bcfc8..621a903 100644
+index b8bcfc8b..621a9037 100644
 --- a/Source/FreeImage/PluginJ2K.cpp
 +++ b/Source/FreeImage/PluginJ2K.cpp
 @@ -21,7 +21,7 @@
@@ -284,7 +284,7 @@ index b8bcfc8..621a903 100644
  
  // ==========================================================
 diff --git a/Source/FreeImage/PluginJP2.cpp b/Source/FreeImage/PluginJP2.cpp
-index 742fe2c..c57f626 100644
+index 742fe2c0..c57f6267 100644
 --- a/Source/FreeImage/PluginJP2.cpp
 +++ b/Source/FreeImage/PluginJP2.cpp
 @@ -21,7 +21,7 @@
@@ -297,7 +297,7 @@ index 742fe2c..c57f626 100644
  
  // ==========================================================
 diff --git a/Source/FreeImage/PluginJPEG.cpp b/Source/FreeImage/PluginJPEG.cpp
-index 8db177d..a7de637 100644
+index 8db177d2..a7de6378 100644
 --- a/Source/FreeImage/PluginJPEG.cpp
 +++ b/Source/FreeImage/PluginJPEG.cpp
 @@ -35,9 +35,9 @@ extern "C" {
@@ -431,7 +431,7 @@ index 8db177d..a7de637 100644
  	Read JPEG_APPD marker (IPTC or Adobe Photoshop profile)
  */
 diff --git a/Source/FreeImage/PluginJXR.cpp b/Source/FreeImage/PluginJXR.cpp
-index 85c6ff3..163a93b 100644
+index 85c6ff3e..163a93bd 100644
 --- a/Source/FreeImage/PluginJXR.cpp
 +++ b/Source/FreeImage/PluginJXR.cpp
 @@ -23,7 +23,7 @@
@@ -444,7 +444,7 @@ index 85c6ff3..163a93b 100644
  // ==========================================================

  // Plugin Interface

 diff --git a/Source/FreeImage/PluginPNG.cpp b/Source/FreeImage/PluginPNG.cpp
-index 661f160..504fafe 100644
+index 661f1602..504fafe1 100644
 --- a/Source/FreeImage/PluginPNG.cpp
 +++ b/Source/FreeImage/PluginPNG.cpp
 @@ -40,8 +40,8 @@
@@ -459,7 +459,7 @@ index 661f160..504fafe 100644
  // ----------------------------------------------------------
  
 diff --git a/Source/FreeImage/PluginRAW.cpp b/Source/FreeImage/PluginRAW.cpp
-index ab0499f..2d3c9fd 100644
+index 26134bcc..d7fa81e4 100644
 --- a/Source/FreeImage/PluginRAW.cpp
 +++ b/Source/FreeImage/PluginRAW.cpp
 @@ -19,12 +19,16 @@
@@ -481,7 +481,7 @@ index ab0499f..2d3c9fd 100644
  // Plugin Interface
  // ==========================================================
 diff --git a/Source/FreeImage/PluginTIFF.cpp b/Source/FreeImage/PluginTIFF.cpp
-index a805319..3e318ba 100644
+index 84554958..13a224dd 100644
 --- a/Source/FreeImage/PluginTIFF.cpp
 +++ b/Source/FreeImage/PluginTIFF.cpp
 @@ -37,9 +37,9 @@
@@ -497,7 +497,7 @@ index a805319..3e318ba 100644
  #include "FreeImageIO.h"

  #include "PSDParser.h"

 diff --git a/Source/FreeImage/PluginWebP.cpp b/Source/FreeImage/PluginWebP.cpp
-index 7c9f62f..c401447 100644
+index 7c9f62fd..c4014473 100644
 --- a/Source/FreeImage/PluginWebP.cpp
 +++ b/Source/FreeImage/PluginWebP.cpp
 @@ -24,9 +24,9 @@
@@ -514,7 +514,7 @@ index 7c9f62f..c401447 100644
  // ==========================================================
  // Plugin Interface
 diff --git a/Source/FreeImage/ZLibInterface.cpp b/Source/FreeImage/ZLibInterface.cpp
-index 3ab6d32..0973475 100644
+index 3ab6d321..09734755 100644
 --- a/Source/FreeImage/ZLibInterface.cpp
 +++ b/Source/FreeImage/ZLibInterface.cpp
 @@ -19,10 +19,9 @@
@@ -540,7 +540,7 @@ index 3ab6d32..0973475 100644
  	        memcpy(target + 4 + dest_len, &crc, 4);
  	        memcpy(target + 8 + dest_len, &source_size, 4);
 diff --git a/Source/FreeImageToolkit/JPEGTransform.cpp b/Source/FreeImageToolkit/JPEGTransform.cpp
-index 6f9ba8e..836bc90 100644
+index 6f9ba8e1..836bc901 100644
 --- a/Source/FreeImageToolkit/JPEGTransform.cpp
 +++ b/Source/FreeImageToolkit/JPEGTransform.cpp
 @@ -26,10 +26,10 @@ extern "C" {
@@ -559,26 +559,26 @@ index 6f9ba8e..836bc90 100644
  
  #include "FreeImage.h"
 diff --git a/Source/Metadata/XTIFF.cpp b/Source/Metadata/XTIFF.cpp
-index d5be902..b6ecd11 100644
+index 6919a8e8..ce3d7c6b 100644
 --- a/Source/Metadata/XTIFF.cpp
 +++ b/Source/Metadata/XTIFF.cpp
 @@ -29,7 +29,7 @@
- #pragma warning (disable : 4786) // identifier was truncated to 'number' characters
- #endif
- 
--#include "../LibTIFF4/tiffiop.h"
+ #pragma warning (disable : 4786) // identifier was truncated to 'number' characters

+ #endif

+ 

+-#include "../LibTIFF4/tiffiop.h"

 +#include <tiffiop.h>
- 
- #include "FreeImage.h"
- #include "Utilities.h"
+ 

+ #include "FreeImage.h"

+ #include "Utilities.h"

 diff --git a/fipMakefile.srcs b/fipMakefile.srcs
-index 15ec099..72ba4fb 100644
+index cc75e5e0..bedc9e3e 100644
 --- a/fipMakefile.srcs
 +++ b/fipMakefile.srcs
 @@ -1,4 +1,4 @@
  VER_MAJOR = 3
  VER_MINOR = 19.0
--SRCS = ./Source/FreeImage/BitmapAccess.cpp ./Source/FreeImage/ColorLookup.cpp ./Source/FreeImage/ConversionRGBA16.cpp ./Source/FreeImage/ConversionRGBAF.cpp ./Source/FreeImage/FreeImage.cpp ./Source/FreeImage/FreeImageC.c ./Source/FreeImage/FreeImageIO.cpp ./Source/FreeImage/GetType.cpp ./Source/FreeImage/LFPQuantizer.cpp ./Source/FreeImage/MemoryIO.cpp ./Source/FreeImage/PixelAccess.cpp ./Source/FreeImage/J2KHelper.cpp ./Source/FreeImage/MNGHelper.cpp ./Source/FreeImage/Plugin.cpp ./Source/FreeImage/PluginBMP.cpp ./Source/FreeImage/PluginCUT.cpp ./Source/FreeImage/PluginDDS.cpp ./Source/FreeImage/PluginEXR.cpp ./Source/FreeImage/PluginG3.cpp ./Source/FreeImage/PluginGIF.cpp ./Source/FreeImage/PluginHDR.cpp ./Source/FreeImage/PluginICO.cpp ./Source/FreeImage/PluginIFF.cpp ./Source/FreeImage/PluginJ2K.cpp ./Source/FreeImage/PluginJNG.cpp ./Source/FreeImage/PluginJP2.cpp ./Source/FreeImage/PluginJPEG.cpp ./Source/FreeImage/PluginJXR.cpp ./Source/FreeImage/PluginKOALA.cpp ./Source/FreeImage/PluginMNG.cpp ./Source/FreeImage/PluginPCD.cpp ./Source/FreeImage/PluginPCX.cpp ./Source/FreeImage/PluginPFM.cpp ./Source/FreeImage/PluginPICT.cpp ./Source/FreeImage/PluginPNG.cpp ./Source/FreeImage/PluginPNM.cpp ./Source/FreeImage/PluginPSD.cpp ./Source/FreeImage/PluginRAS.cpp ./Source/FreeImage/PluginRAW.cpp ./Source/FreeImage/PluginSGI.cpp ./Source/FreeImage/PluginTARGA.cpp ./Source/FreeImage/PluginTIFF.cpp ./Source/FreeImage/PluginWBMP.cpp ./Source/FreeImage/PluginWebP.cpp ./Source/FreeImage/PluginXBM.cpp ./Source/FreeImage/PluginXPM.cpp ./Source/FreeImage/PSDParser.cpp ./Source/FreeImage/TIFFLogLuv.cpp ./Source/FreeImage/Conversion.cpp ./Source/FreeImage/Conversion16_555.cpp ./Source/FreeImage/Conversion16_565.cpp ./Source/FreeImage/Conversion24.cpp ./Source/FreeImage/Conversion32.cpp ./Source/FreeImage/Conversion4.cpp ./Source/FreeImage/Conversion8.cpp ./Source/FreeImage/ConversionFloat.cpp ./Source/FreeImage/ConversionRGB16.cpp ./Source/FreeImage/ConversionRGBF.cpp ./Source/FreeImage/ConversionType.cpp ./Source/FreeImage/ConversionUINT16.cpp ./Source/FreeImage/Halftoning.cpp ./Source/FreeImage/tmoColorConvert.cpp ./Source/FreeImage/tmoDrago03.cpp ./Source/FreeImage/tmoFattal02.cpp ./Source/FreeImage/tmoReinhard05.cpp ./Source/FreeImage/ToneMapping.cpp ./Source/FreeImage/NNQuantizer.cpp ./Source/FreeImage/WuQuantizer.cpp ./Source/FreeImage/CacheFile.cpp ./Source/FreeImage/MultiPage.cpp ./Source/FreeImage/ZLibInterface.cpp ./Source/Metadata/Exif.cpp ./Source/Metadata/FIRational.cpp ./Source/Metadata/FreeImageTag.cpp ./Source/Metadata/IPTC.cpp ./Source/Metadata/TagConversion.cpp ./Source/Metadata/TagLib.cpp ./Source/Metadata/XTIFF.cpp ./Source/FreeImageToolkit/Background.cpp ./Source/FreeImageToolkit/BSplineRotate.cpp ./Source/FreeImageToolkit/Channels.cpp ./Source/FreeImageToolkit/ClassicRotate.cpp ./Source/FreeImageToolkit/Colors.cpp ./Source/FreeImageToolkit/CopyPaste.cpp ./Source/FreeImageToolkit/Display.cpp ./Source/FreeImageToolkit/Flip.cpp ./Source/FreeImageToolkit/JPEGTransform.cpp ./Source/FreeImageToolkit/MultigridPoissonSolver.cpp ./Source/FreeImageToolkit/Rescale.cpp ./Source/FreeImageToolkit/Resize.cpp Source/LibJPEG/jaricom.c Source/LibJPEG/jcapimin.c Source/LibJPEG/jcapistd.c Source/LibJPEG/jcarith.c Source/LibJPEG/jccoefct.c Source/LibJPEG/jccolor.c Source/LibJPEG/jcdctmgr.c Source/LibJPEG/jchuff.c Source/LibJPEG/jcinit.c Source/LibJPEG/jcmainct.c Source/LibJPEG/jcmarker.c Source/LibJPEG/jcmaster.c Source/LibJPEG/jcomapi.c Source/LibJPEG/jcparam.c Source/LibJPEG/jcprepct.c Source/LibJPEG/jcsample.c Source/LibJPEG/jctrans.c Source/LibJPEG/jdapimin.c Source/LibJPEG/jdapistd.c Source/LibJPEG/jdarith.c Source/LibJPEG/jdatadst.c Source/LibJPEG/jdatasrc.c Source/LibJPEG/jdcoefct.c Source/LibJPEG/jdcolor.c Source/LibJPEG/jddctmgr.c Source/LibJPEG/jdhuff.c Source/LibJPEG/jdinput.c Source/LibJPEG/jdmainct.c Source/LibJPEG/jdmarker.c Source/LibJPEG/jdmaster.c Source/LibJPEG/jdmerge.c Source/LibJPEG/jdpostct.c Source/LibJPEG/jdsample.c Source/LibJPEG/jdtrans.c Source/LibJPEG/jerror.c Source/LibJPEG/jfdctflt.c Source/LibJPEG/jfdctfst.c Source/LibJPEG/jfdctint.c Source/LibJPEG/jidctflt.c Source/LibJPEG/jidctfst.c Source/LibJPEG/jidctint.c Source/LibJPEG/jmemmgr.c Source/LibJPEG/jmemnobs.c Source/LibJPEG/jquant1.c Source/LibJPEG/jquant2.c Source/LibJPEG/jutils.c Source/LibJPEG/transupp.c Source/LibPNG/png.c Source/LibPNG/pngerror.c Source/LibPNG/pngget.c Source/LibPNG/pngmem.c Source/LibPNG/pngpread.c Source/LibPNG/pngread.c Source/LibPNG/pngrio.c Source/LibPNG/pngrtran.c Source/LibPNG/pngrutil.c Source/LibPNG/pngset.c Source/LibPNG/pngtrans.c Source/LibPNG/pngwio.c Source/LibPNG/pngwrite.c Source/LibPNG/pngwtran.c Source/LibPNG/pngwutil.c Source/LibTIFF4/tif_aux.c Source/LibTIFF4/tif_close.c Source/LibTIFF4/tif_codec.c Source/LibTIFF4/tif_color.c Source/LibTIFF4/tif_compress.c Source/LibTIFF4/tif_dir.c Source/LibTIFF4/tif_dirinfo.c Source/LibTIFF4/tif_dirread.c Source/LibTIFF4/tif_dirwrite.c Source/LibTIFF4/tif_dumpmode.c Source/LibTIFF4/tif_error.c Source/LibTIFF4/tif_extension.c Source/LibTIFF4/tif_fax3.c Source/LibTIFF4/tif_fax3sm.c Source/LibTIFF4/tif_flush.c Source/LibTIFF4/tif_getimage.c Source/LibTIFF4/tif_jpeg.c Source/LibTIFF4/tif_luv.c Source/LibTIFF4/tif_lzma.c Source/LibTIFF4/tif_lzw.c Source/LibTIFF4/tif_next.c Source/LibTIFF4/tif_ojpeg.c Source/LibTIFF4/tif_open.c Source/LibTIFF4/tif_packbits.c Source/LibTIFF4/tif_pixarlog.c Source/LibTIFF4/tif_predict.c Source/LibTIFF4/tif_print.c Source/LibTIFF4/tif_read.c Source/LibTIFF4/tif_strip.c Source/LibTIFF4/tif_swab.c Source/LibTIFF4/tif_thunder.c Source/LibTIFF4/tif_tile.c Source/LibTIFF4/tif_version.c Source/LibTIFF4/tif_warning.c Source/LibTIFF4/tif_write.c Source/LibTIFF4/tif_zip.c Source/ZLib/adler32.c Source/ZLib/compress.c Source/ZLib/crc32.c Source/ZLib/deflate.c Source/ZLib/gzclose.c Source/ZLib/gzlib.c Source/ZLib/gzread.c Source/ZLib/gzwrite.c Source/ZLib/infback.c Source/ZLib/inffast.c Source/ZLib/inflate.c Source/ZLib/inftrees.c Source/ZLib/trees.c Source/ZLib/uncompr.c Source/ZLib/zutil.c Source/LibOpenJPEG/bio.c Source/LibOpenJPEG/cio.c Source/LibOpenJPEG/dwt.c Source/LibOpenJPEG/event.c Source/LibOpenJPEG/function_list.c Source/LibOpenJPEG/image.c Source/LibOpenJPEG/invert.c Source/LibOpenJPEG/j2k.c Source/LibOpenJPEG/jp2.c Source/LibOpenJPEG/mct.c Source/LibOpenJPEG/mqc.c Source/LibOpenJPEG/openjpeg.c Source/LibOpenJPEG/opj_clock.c Source/LibOpenJPEG/pi.c Source/LibOpenJPEG/raw.c Source/LibOpenJPEG/t1.c Source/LibOpenJPEG/t2.c Source/LibOpenJPEG/tcd.c Source/LibOpenJPEG/tgt.c Source/OpenEXR/IexMath/IexMathFpu.cpp Source/OpenEXR/IlmImf/b44ExpLogTable.cpp Source/OpenEXR/IlmImf/ImfAcesFile.cpp Source/OpenEXR/IlmImf/ImfAttribute.cpp Source/OpenEXR/IlmImf/ImfB44Compressor.cpp Source/OpenEXR/IlmImf/ImfBoxAttribute.cpp Source/OpenEXR/IlmImf/ImfChannelList.cpp Source/OpenEXR/IlmImf/ImfChannelListAttribute.cpp Source/OpenEXR/IlmImf/ImfChromaticities.cpp Source/OpenEXR/IlmImf/ImfChromaticitiesAttribute.cpp Source/OpenEXR/IlmImf/ImfCompositeDeepScanLine.cpp Source/OpenEXR/IlmImf/ImfCompressionAttribute.cpp Source/OpenEXR/IlmImf/ImfCompressor.cpp Source/OpenEXR/IlmImf/ImfConvert.cpp Source/OpenEXR/IlmImf/ImfCRgbaFile.cpp Source/OpenEXR/IlmImf/ImfDeepCompositing.cpp Source/OpenEXR/IlmImf/ImfDeepFrameBuffer.cpp Source/OpenEXR/IlmImf/ImfDeepImageStateAttribute.cpp Source/OpenEXR/IlmImf/ImfDeepScanLineInputFile.cpp Source/OpenEXR/IlmImf/ImfDeepScanLineInputPart.cpp Source/OpenEXR/IlmImf/ImfDeepScanLineOutputFile.cpp Source/OpenEXR/IlmImf/ImfDeepScanLineOutputPart.cpp Source/OpenEXR/IlmImf/ImfDeepTiledInputFile.cpp Source/OpenEXR/IlmImf/ImfDeepTiledInputPart.cpp Source/OpenEXR/IlmImf/ImfDeepTiledOutputFile.cpp Source/OpenEXR/IlmImf/ImfDeepTiledOutputPart.cpp Source/OpenEXR/IlmImf/ImfDoubleAttribute.cpp Source/OpenEXR/IlmImf/ImfDwaCompressor.cpp Source/OpenEXR/IlmImf/ImfEnvmap.cpp Source/OpenEXR/IlmImf/ImfEnvmapAttribute.cpp Source/OpenEXR/IlmImf/ImfFastHuf.cpp Source/OpenEXR/IlmImf/ImfFloatAttribute.cpp Source/OpenEXR/IlmImf/ImfFloatVectorAttribute.cpp Source/OpenEXR/IlmImf/ImfFrameBuffer.cpp Source/OpenEXR/IlmImf/ImfFramesPerSecond.cpp Source/OpenEXR/IlmImf/ImfGenericInputFile.cpp Source/OpenEXR/IlmImf/ImfGenericOutputFile.cpp Source/OpenEXR/IlmImf/ImfHeader.cpp Source/OpenEXR/IlmImf/ImfHuf.cpp Source/OpenEXR/IlmImf/ImfInputFile.cpp Source/OpenEXR/IlmImf/ImfInputPart.cpp Source/OpenEXR/IlmImf/ImfInputPartData.cpp Source/OpenEXR/IlmImf/ImfIntAttribute.cpp Source/OpenEXR/IlmImf/ImfIO.cpp Source/OpenEXR/IlmImf/ImfKeyCode.cpp Source/OpenEXR/IlmImf/ImfKeyCodeAttribute.cpp Source/OpenEXR/IlmImf/ImfLineOrderAttribute.cpp Source/OpenEXR/IlmImf/ImfLut.cpp Source/OpenEXR/IlmImf/ImfMatrixAttribute.cpp Source/OpenEXR/IlmImf/ImfMisc.cpp Source/OpenEXR/IlmImf/ImfMultiPartInputFile.cpp Source/OpenEXR/IlmImf/ImfMultiPartOutputFile.cpp Source/OpenEXR/IlmImf/ImfMultiView.cpp Source/OpenEXR/IlmImf/ImfOpaqueAttribute.cpp Source/OpenEXR/IlmImf/ImfOutputFile.cpp Source/OpenEXR/IlmImf/ImfOutputPart.cpp Source/OpenEXR/IlmImf/ImfOutputPartData.cpp Source/OpenEXR/IlmImf/ImfPartType.cpp Source/OpenEXR/IlmImf/ImfPizCompressor.cpp Source/OpenEXR/IlmImf/ImfPreviewImage.cpp Source/OpenEXR/IlmImf/ImfPreviewImageAttribute.cpp Source/OpenEXR/IlmImf/ImfPxr24Compressor.cpp Source/OpenEXR/IlmImf/ImfRational.cpp Source/OpenEXR/IlmImf/ImfRationalAttribute.cpp Source/OpenEXR/IlmImf/ImfRgbaFile.cpp Source/OpenEXR/IlmImf/ImfRgbaYca.cpp Source/OpenEXR/IlmImf/ImfRle.cpp Source/OpenEXR/IlmImf/ImfRleCompressor.cpp Source/OpenEXR/IlmImf/ImfScanLineInputFile.cpp Source/OpenEXR/IlmImf/ImfStandardAttributes.cpp Source/OpenEXR/IlmImf/ImfStdIO.cpp Source/OpenEXR/IlmImf/ImfStringAttribute.cpp Source/OpenEXR/IlmImf/ImfStringVectorAttribute.cpp Source/OpenEXR/IlmImf/ImfSystemSpecific.cpp Source/OpenEXR/IlmImf/ImfTestFile.cpp Source/OpenEXR/IlmImf/ImfThreading.cpp Source/OpenEXR/IlmImf/ImfTileDescriptionAttribute.cpp Source/OpenEXR/IlmImf/ImfTiledInputFile.cpp Source/OpenEXR/IlmImf/ImfTiledInputPart.cpp Source/OpenEXR/IlmImf/ImfTiledMisc.cpp Source/OpenEXR/IlmImf/ImfTiledOutputFile.cpp Source/OpenEXR/IlmImf/ImfTiledOutputPart.cpp Source/OpenEXR/IlmImf/ImfTiledRgbaFile.cpp Source/OpenEXR/IlmImf/ImfTileOffsets.cpp Source/OpenEXR/IlmImf/ImfTimeCode.cpp Source/OpenEXR/IlmImf/ImfTimeCodeAttribute.cpp Source/OpenEXR/IlmImf/ImfVecAttribute.cpp Source/OpenEXR/IlmImf/ImfVersion.cpp Source/OpenEXR/IlmImf/ImfWav.cpp Source/OpenEXR/IlmImf/ImfZip.cpp Source/OpenEXR/IlmImf/ImfZipCompressor.cpp Source/OpenEXR/Imath/ImathBox.cpp Source/OpenEXR/Imath/ImathColorAlgo.cpp Source/OpenEXR/Imath/ImathFun.cpp Source/OpenEXR/Imath/ImathMatrixAlgo.cpp Source/OpenEXR/Imath/ImathRandom.cpp Source/OpenEXR/Imath/ImathShear.cpp Source/OpenEXR/Imath/ImathVec.cpp Source/OpenEXR/Iex/IexBaseExc.cpp Source/OpenEXR/Iex/IexThrowErrnoExc.cpp Source/OpenEXR/Half/half.cpp Source/OpenEXR/IlmThread/IlmThread.cpp Source/OpenEXR/IlmThread/IlmThreadMutex.cpp Source/OpenEXR/IlmThread/IlmThreadPool.cpp Source/OpenEXR/IlmThread/IlmThreadSemaphore.cpp Source/OpenEXR/IexMath/IexMathFloatExc.cpp Source/LibRawLite/internal/dcraw_common.cpp Source/LibRawLite/internal/dcraw_fileio.cpp Source/LibRawLite/internal/demosaic_packs.cpp Source/LibRawLite/src/libraw_c_api.cpp Source/LibRawLite/src/libraw_cxx.cpp Source/LibRawLite/src/libraw_datastream.cpp Source/LibWebP/src/dec/alpha_dec.c Source/LibWebP/src/dec/buffer_dec.c Source/LibWebP/src/dec/frame_dec.c Source/LibWebP/src/dec/idec_dec.c Source/LibWebP/src/dec/io_dec.c Source/LibWebP/src/dec/quant_dec.c Source/LibWebP/src/dec/tree_dec.c Source/LibWebP/src/dec/vp8l_dec.c Source/LibWebP/src/dec/vp8_dec.c Source/LibWebP/src/dec/webp_dec.c Source/LibWebP/src/demux/anim_decode.c Source/LibWebP/src/demux/demux.c Source/LibWebP/src/dsp/alpha_processing.c Source/LibWebP/src/dsp/alpha_processing_mips_dsp_r2.c Source/LibWebP/src/dsp/alpha_processing_neon.c Source/LibWebP/src/dsp/alpha_processing_sse2.c Source/LibWebP/src/dsp/alpha_processing_sse41.c Source/LibWebP/src/dsp/cost.c Source/LibWebP/src/dsp/cost_mips32.c Source/LibWebP/src/dsp/cost_mips_dsp_r2.c Source/LibWebP/src/dsp/cost_neon.c Source/LibWebP/src/dsp/cost_sse2.c Source/LibWebP/src/dsp/cpu.c Source/LibWebP/src/dsp/dec.c Source/LibWebP/src/dsp/dec_clip_tables.c Source/LibWebP/src/dsp/dec_mips32.c Source/LibWebP/src/dsp/dec_mips_dsp_r2.c Source/LibWebP/src/dsp/dec_msa.c Source/LibWebP/src/dsp/dec_neon.c Source/LibWebP/src/dsp/dec_sse2.c Source/LibWebP/src/dsp/dec_sse41.c Source/LibWebP/src/dsp/enc.c Source/LibWebP/src/dsp/enc_avx2.c Source/LibWebP/src/dsp/enc_mips32.c Source/LibWebP/src/dsp/enc_mips_dsp_r2.c Source/LibWebP/src/dsp/enc_msa.c Source/LibWebP/src/dsp/enc_neon.c Source/LibWebP/src/dsp/enc_sse2.c Source/LibWebP/src/dsp/enc_sse41.c Source/LibWebP/src/dsp/filters.c Source/LibWebP/src/dsp/filters_mips_dsp_r2.c Source/LibWebP/src/dsp/filters_msa.c Source/LibWebP/src/dsp/filters_neon.c Source/LibWebP/src/dsp/filters_sse2.c Source/LibWebP/src/dsp/lossless.c Source/LibWebP/src/dsp/lossless_enc.c Source/LibWebP/src/dsp/lossless_enc_mips32.c Source/LibWebP/src/dsp/lossless_enc_mips_dsp_r2.c Source/LibWebP/src/dsp/lossless_enc_msa.c Source/LibWebP/src/dsp/lossless_enc_neon.c Source/LibWebP/src/dsp/lossless_enc_sse2.c Source/LibWebP/src/dsp/lossless_enc_sse41.c Source/LibWebP/src/dsp/lossless_mips_dsp_r2.c Source/LibWebP/src/dsp/lossless_msa.c Source/LibWebP/src/dsp/lossless_neon.c Source/LibWebP/src/dsp/lossless_sse2.c Source/LibWebP/src/dsp/rescaler.c Source/LibWebP/src/dsp/rescaler_mips32.c Source/LibWebP/src/dsp/rescaler_mips_dsp_r2.c Source/LibWebP/src/dsp/rescaler_msa.c Source/LibWebP/src/dsp/rescaler_neon.c Source/LibWebP/src/dsp/rescaler_sse2.c Source/LibWebP/src/dsp/ssim.c Source/LibWebP/src/dsp/ssim_sse2.c Source/LibWebP/src/dsp/upsampling.c Source/LibWebP/src/dsp/upsampling_mips_dsp_r2.c Source/LibWebP/src/dsp/upsampling_msa.c Source/LibWebP/src/dsp/upsampling_neon.c Source/LibWebP/src/dsp/upsampling_sse2.c Source/LibWebP/src/dsp/upsampling_sse41.c Source/LibWebP/src/dsp/yuv.c Source/LibWebP/src/dsp/yuv_mips32.c Source/LibWebP/src/dsp/yuv_mips_dsp_r2.c Source/LibWebP/src/dsp/yuv_neon.c Source/LibWebP/src/dsp/yuv_sse2.c Source/LibWebP/src/dsp/yuv_sse41.c Source/LibWebP/src/enc/alpha_enc.c Source/LibWebP/src/enc/analysis_enc.c Source/LibWebP/src/enc/backward_references_cost_enc.c Source/LibWebP/src/enc/backward_references_enc.c Source/LibWebP/src/enc/config_enc.c Source/LibWebP/src/enc/cost_enc.c Source/LibWebP/src/enc/filter_enc.c Source/LibWebP/src/enc/frame_enc.c Source/LibWebP/src/enc/histogram_enc.c Source/LibWebP/src/enc/iterator_enc.c Source/LibWebP/src/enc/near_lossless_enc.c Source/LibWebP/src/enc/picture_csp_enc.c Source/LibWebP/src/enc/picture_enc.c Source/LibWebP/src/enc/picture_psnr_enc.c Source/LibWebP/src/enc/picture_rescale_enc.c Source/LibWebP/src/enc/picture_tools_enc.c Source/LibWebP/src/enc/predictor_enc.c Source/LibWebP/src/enc/quant_enc.c Source/LibWebP/src/enc/syntax_enc.c Source/LibWebP/src/enc/token_enc.c Source/LibWebP/src/enc/tree_enc.c Source/LibWebP/src/enc/vp8l_enc.c Source/LibWebP/src/enc/webp_enc.c Source/LibWebP/src/mux/anim_encode.c Source/LibWebP/src/mux/muxedit.c Source/LibWebP/src/mux/muxinternal.c Source/LibWebP/src/mux/muxread.c Source/LibWebP/src/utils/bit_reader_utils.c Source/LibWebP/src/utils/bit_writer_utils.c Source/LibWebP/src/utils/color_cache_utils.c Source/LibWebP/src/utils/filters_utils.c Source/LibWebP/src/utils/huffman_encode_utils.c Source/LibWebP/src/utils/huffman_utils.c Source/LibWebP/src/utils/quant_levels_dec_utils.c Source/LibWebP/src/utils/quant_levels_utils.c Source/LibWebP/src/utils/random_utils.c Source/LibWebP/src/utils/rescaler_utils.c Source/LibWebP/src/utils/thread_utils.c Source/LibWebP/src/utils/utils.c Source/LibJXR/image/decode/decode.c Source/LibJXR/image/decode/JXRTranscode.c Source/LibJXR/image/decode/postprocess.c Source/LibJXR/image/decode/segdec.c Source/LibJXR/image/decode/strdec.c Source/LibJXR/image/decode/strdec_x86.c Source/LibJXR/image/decode/strInvTransform.c Source/LibJXR/image/decode/strPredQuantDec.c Source/LibJXR/image/encode/encode.c Source/LibJXR/image/encode/segenc.c Source/LibJXR/image/encode/strenc.c Source/LibJXR/image/encode/strenc_x86.c Source/LibJXR/image/encode/strFwdTransform.c Source/LibJXR/image/encode/strPredQuantEnc.c Source/LibJXR/image/sys/adapthuff.c Source/LibJXR/image/sys/image.c Source/LibJXR/image/sys/strcodec.c Source/LibJXR/image/sys/strPredQuant.c Source/LibJXR/image/sys/strTransform.c Source/LibJXR/jxrgluelib/JXRGlue.c Source/LibJXR/jxrgluelib/JXRGlueJxr.c Source/LibJXR/jxrgluelib/JXRGluePFC.c Source/LibJXR/jxrgluelib/JXRMeta.c Wrapper/FreeImagePlus/src/fipImage.cpp Wrapper/FreeImagePlus/src/fipMemoryIO.cpp Wrapper/FreeImagePlus/src/fipMetadataFind.cpp Wrapper/FreeImagePlus/src/fipMultiPage.cpp Wrapper/FreeImagePlus/src/fipTag.cpp Wrapper/FreeImagePlus/src/fipWinImage.cpp Wrapper/FreeImagePlus/src/FreeImagePlus.cpp 
+-SRCS = ./Source/FreeImage/BitmapAccess.cpp ./Source/FreeImage/ColorLookup.cpp ./Source/FreeImage/ConversionRGBA16.cpp ./Source/FreeImage/ConversionRGBAF.cpp ./Source/FreeImage/FreeImage.cpp ./Source/FreeImage/FreeImageC.c ./Source/FreeImage/FreeImageIO.cpp ./Source/FreeImage/GetType.cpp ./Source/FreeImage/LFPQuantizer.cpp ./Source/FreeImage/MemoryIO.cpp ./Source/FreeImage/PixelAccess.cpp ./Source/FreeImage/J2KHelper.cpp ./Source/FreeImage/MNGHelper.cpp ./Source/FreeImage/Plugin.cpp ./Source/FreeImage/PluginBMP.cpp ./Source/FreeImage/PluginCUT.cpp ./Source/FreeImage/PluginDDS.cpp ./Source/FreeImage/PluginEXR.cpp ./Source/FreeImage/PluginG3.cpp ./Source/FreeImage/PluginGIF.cpp ./Source/FreeImage/PluginHDR.cpp ./Source/FreeImage/PluginICO.cpp ./Source/FreeImage/PluginIFF.cpp ./Source/FreeImage/PluginJ2K.cpp ./Source/FreeImage/PluginJNG.cpp ./Source/FreeImage/PluginJP2.cpp ./Source/FreeImage/PluginJPEG.cpp ./Source/FreeImage/PluginJXR.cpp ./Source/FreeImage/PluginKOALA.cpp ./Source/FreeImage/PluginMNG.cpp ./Source/FreeImage/PluginPCD.cpp ./Source/FreeImage/PluginPCX.cpp ./Source/FreeImage/PluginPFM.cpp ./Source/FreeImage/PluginPICT.cpp ./Source/FreeImage/PluginPNG.cpp ./Source/FreeImage/PluginPNM.cpp ./Source/FreeImage/PluginPSD.cpp ./Source/FreeImage/PluginRAS.cpp ./Source/FreeImage/PluginRAW.cpp ./Source/FreeImage/PluginSGI.cpp ./Source/FreeImage/PluginTARGA.cpp ./Source/FreeImage/PluginTIFF.cpp ./Source/FreeImage/PluginWBMP.cpp ./Source/FreeImage/PluginWebP.cpp ./Source/FreeImage/PluginXBM.cpp ./Source/FreeImage/PluginXPM.cpp ./Source/FreeImage/PSDParser.cpp ./Source/FreeImage/TIFFLogLuv.cpp ./Source/FreeImage/Conversion.cpp ./Source/FreeImage/Conversion16_555.cpp ./Source/FreeImage/Conversion16_565.cpp ./Source/FreeImage/Conversion24.cpp ./Source/FreeImage/Conversion32.cpp ./Source/FreeImage/Conversion4.cpp ./Source/FreeImage/Conversion8.cpp ./Source/FreeImage/ConversionFloat.cpp ./Source/FreeImage/ConversionRGB16.cpp ./Source/FreeImage/ConversionRGBF.cpp ./Source/FreeImage/ConversionType.cpp ./Source/FreeImage/ConversionUINT16.cpp ./Source/FreeImage/Halftoning.cpp ./Source/FreeImage/tmoColorConvert.cpp ./Source/FreeImage/tmoDrago03.cpp ./Source/FreeImage/tmoFattal02.cpp ./Source/FreeImage/tmoReinhard05.cpp ./Source/FreeImage/ToneMapping.cpp ./Source/FreeImage/NNQuantizer.cpp ./Source/FreeImage/WuQuantizer.cpp ./Source/FreeImage/CacheFile.cpp ./Source/FreeImage/MultiPage.cpp ./Source/FreeImage/ZLibInterface.cpp ./Source/Metadata/Exif.cpp ./Source/Metadata/FIRational.cpp ./Source/Metadata/FreeImageTag.cpp ./Source/Metadata/IPTC.cpp ./Source/Metadata/TagConversion.cpp ./Source/Metadata/TagLib.cpp ./Source/Metadata/XTIFF.cpp ./Source/FreeImageToolkit/Background.cpp ./Source/FreeImageToolkit/BSplineRotate.cpp ./Source/FreeImageToolkit/Channels.cpp ./Source/FreeImageToolkit/ClassicRotate.cpp ./Source/FreeImageToolkit/Colors.cpp ./Source/FreeImageToolkit/CopyPaste.cpp ./Source/FreeImageToolkit/Display.cpp ./Source/FreeImageToolkit/Flip.cpp ./Source/FreeImageToolkit/JPEGTransform.cpp ./Source/FreeImageToolkit/MultigridPoissonSolver.cpp ./Source/FreeImageToolkit/Rescale.cpp ./Source/FreeImageToolkit/Resize.cpp Source/LibJPEG/jaricom.c Source/LibJPEG/jcapimin.c Source/LibJPEG/jcapistd.c Source/LibJPEG/jcarith.c Source/LibJPEG/jccoefct.c Source/LibJPEG/jccolor.c Source/LibJPEG/jcdctmgr.c Source/LibJPEG/jchuff.c Source/LibJPEG/jcinit.c Source/LibJPEG/jcmainct.c Source/LibJPEG/jcmarker.c Source/LibJPEG/jcmaster.c Source/LibJPEG/jcomapi.c Source/LibJPEG/jcparam.c Source/LibJPEG/jcprepct.c Source/LibJPEG/jcsample.c Source/LibJPEG/jctrans.c Source/LibJPEG/jdapimin.c Source/LibJPEG/jdapistd.c Source/LibJPEG/jdarith.c Source/LibJPEG/jdatadst.c Source/LibJPEG/jdatasrc.c Source/LibJPEG/jdcoefct.c Source/LibJPEG/jdcolor.c Source/LibJPEG/jddctmgr.c Source/LibJPEG/jdhuff.c Source/LibJPEG/jdinput.c Source/LibJPEG/jdmainct.c Source/LibJPEG/jdmarker.c Source/LibJPEG/jdmaster.c Source/LibJPEG/jdmerge.c Source/LibJPEG/jdpostct.c Source/LibJPEG/jdsample.c Source/LibJPEG/jdtrans.c Source/LibJPEG/jerror.c Source/LibJPEG/jfdctflt.c Source/LibJPEG/jfdctfst.c Source/LibJPEG/jfdctint.c Source/LibJPEG/jidctflt.c Source/LibJPEG/jidctfst.c Source/LibJPEG/jidctint.c Source/LibJPEG/jmemmgr.c Source/LibJPEG/jmemnobs.c Source/LibJPEG/jquant1.c Source/LibJPEG/jquant2.c Source/LibJPEG/jutils.c Source/LibJPEG/transupp.c Source/LibPNG/png.c Source/LibPNG/pngerror.c Source/LibPNG/pngget.c Source/LibPNG/pngmem.c Source/LibPNG/pngpread.c Source/LibPNG/pngread.c Source/LibPNG/pngrio.c Source/LibPNG/pngrtran.c Source/LibPNG/pngrutil.c Source/LibPNG/pngset.c Source/LibPNG/pngtrans.c Source/LibPNG/pngwio.c Source/LibPNG/pngwrite.c Source/LibPNG/pngwtran.c Source/LibPNG/pngwutil.c Source/LibTIFF4/tif_aux.c Source/LibTIFF4/tif_close.c Source/LibTIFF4/tif_codec.c Source/LibTIFF4/tif_color.c Source/LibTIFF4/tif_compress.c Source/LibTIFF4/tif_dir.c Source/LibTIFF4/tif_dirinfo.c Source/LibTIFF4/tif_dirread.c Source/LibTIFF4/tif_dirwrite.c Source/LibTIFF4/tif_dumpmode.c Source/LibTIFF4/tif_error.c Source/LibTIFF4/tif_extension.c Source/LibTIFF4/tif_fax3.c Source/LibTIFF4/tif_fax3sm.c Source/LibTIFF4/tif_flush.c Source/LibTIFF4/tif_getimage.c Source/LibTIFF4/tif_jpeg.c Source/LibTIFF4/tif_lerc.c Source/LibTIFF4/tif_luv.c Source/LibTIFF4/tif_lzw.c Source/LibTIFF4/tif_next.c Source/LibTIFF4/tif_ojpeg.c Source/LibTIFF4/tif_open.c Source/LibTIFF4/tif_packbits.c Source/LibTIFF4/tif_pixarlog.c Source/LibTIFF4/tif_predict.c Source/LibTIFF4/tif_print.c Source/LibTIFF4/tif_read.c Source/LibTIFF4/tif_strip.c Source/LibTIFF4/tif_swab.c Source/LibTIFF4/tif_thunder.c Source/LibTIFF4/tif_tile.c Source/LibTIFF4/tif_version.c Source/LibTIFF4/tif_warning.c Source/LibTIFF4/tif_webp.c Source/LibTIFF4/tif_write.c Source/LibTIFF4/tif_zip.c Source/ZLib/adler32.c Source/ZLib/compress.c Source/ZLib/crc32.c Source/ZLib/deflate.c Source/ZLib/gzclose.c Source/ZLib/gzlib.c Source/ZLib/gzread.c Source/ZLib/gzwrite.c Source/ZLib/infback.c Source/ZLib/inffast.c Source/ZLib/inflate.c Source/ZLib/inftrees.c Source/ZLib/trees.c Source/ZLib/uncompr.c Source/ZLib/zutil.c Source/LibOpenJPEG/bio.c Source/LibOpenJPEG/cio.c Source/LibOpenJPEG/dwt.c Source/LibOpenJPEG/event.c Source/LibOpenJPEG/function_list.c Source/LibOpenJPEG/image.c Source/LibOpenJPEG/invert.c Source/LibOpenJPEG/j2k.c Source/LibOpenJPEG/jp2.c Source/LibOpenJPEG/mct.c Source/LibOpenJPEG/mqc.c Source/LibOpenJPEG/openjpeg.c Source/LibOpenJPEG/opj_clock.c Source/LibOpenJPEG/pi.c Source/LibOpenJPEG/raw.c Source/LibOpenJPEG/t1.c Source/LibOpenJPEG/t2.c Source/LibOpenJPEG/tcd.c Source/LibOpenJPEG/tgt.c Source/OpenEXR/IexMath/IexMathFpu.cpp Source/OpenEXR/IlmImf/b44ExpLogTable.cpp Source/OpenEXR/IlmImf/ImfAcesFile.cpp Source/OpenEXR/IlmImf/ImfAttribute.cpp Source/OpenEXR/IlmImf/ImfB44Compressor.cpp Source/OpenEXR/IlmImf/ImfBoxAttribute.cpp Source/OpenEXR/IlmImf/ImfChannelList.cpp Source/OpenEXR/IlmImf/ImfChannelListAttribute.cpp Source/OpenEXR/IlmImf/ImfChromaticities.cpp Source/OpenEXR/IlmImf/ImfChromaticitiesAttribute.cpp Source/OpenEXR/IlmImf/ImfCompositeDeepScanLine.cpp Source/OpenEXR/IlmImf/ImfCompressionAttribute.cpp Source/OpenEXR/IlmImf/ImfCompressor.cpp Source/OpenEXR/IlmImf/ImfConvert.cpp Source/OpenEXR/IlmImf/ImfCRgbaFile.cpp Source/OpenEXR/IlmImf/ImfDeepCompositing.cpp Source/OpenEXR/IlmImf/ImfDeepFrameBuffer.cpp Source/OpenEXR/IlmImf/ImfDeepImageStateAttribute.cpp Source/OpenEXR/IlmImf/ImfDeepScanLineInputFile.cpp Source/OpenEXR/IlmImf/ImfDeepScanLineInputPart.cpp Source/OpenEXR/IlmImf/ImfDeepScanLineOutputFile.cpp Source/OpenEXR/IlmImf/ImfDeepScanLineOutputPart.cpp Source/OpenEXR/IlmImf/ImfDeepTiledInputFile.cpp Source/OpenEXR/IlmImf/ImfDeepTiledInputPart.cpp Source/OpenEXR/IlmImf/ImfDeepTiledOutputFile.cpp Source/OpenEXR/IlmImf/ImfDeepTiledOutputPart.cpp Source/OpenEXR/IlmImf/ImfDoubleAttribute.cpp Source/OpenEXR/IlmImf/ImfDwaCompressor.cpp Source/OpenEXR/IlmImf/ImfEnvmap.cpp Source/OpenEXR/IlmImf/ImfEnvmapAttribute.cpp Source/OpenEXR/IlmImf/ImfFastHuf.cpp Source/OpenEXR/IlmImf/ImfFloatAttribute.cpp Source/OpenEXR/IlmImf/ImfFloatVectorAttribute.cpp Source/OpenEXR/IlmImf/ImfFrameBuffer.cpp Source/OpenEXR/IlmImf/ImfFramesPerSecond.cpp Source/OpenEXR/IlmImf/ImfGenericInputFile.cpp Source/OpenEXR/IlmImf/ImfGenericOutputFile.cpp Source/OpenEXR/IlmImf/ImfHeader.cpp Source/OpenEXR/IlmImf/ImfHuf.cpp Source/OpenEXR/IlmImf/ImfInputFile.cpp Source/OpenEXR/IlmImf/ImfInputPart.cpp Source/OpenEXR/IlmImf/ImfInputPartData.cpp Source/OpenEXR/IlmImf/ImfIntAttribute.cpp Source/OpenEXR/IlmImf/ImfIO.cpp Source/OpenEXR/IlmImf/ImfKeyCode.cpp Source/OpenEXR/IlmImf/ImfKeyCodeAttribute.cpp Source/OpenEXR/IlmImf/ImfLineOrderAttribute.cpp Source/OpenEXR/IlmImf/ImfLut.cpp Source/OpenEXR/IlmImf/ImfMatrixAttribute.cpp Source/OpenEXR/IlmImf/ImfMisc.cpp Source/OpenEXR/IlmImf/ImfMultiPartInputFile.cpp Source/OpenEXR/IlmImf/ImfMultiPartOutputFile.cpp Source/OpenEXR/IlmImf/ImfMultiView.cpp Source/OpenEXR/IlmImf/ImfOpaqueAttribute.cpp Source/OpenEXR/IlmImf/ImfOutputFile.cpp Source/OpenEXR/IlmImf/ImfOutputPart.cpp Source/OpenEXR/IlmImf/ImfOutputPartData.cpp Source/OpenEXR/IlmImf/ImfPartType.cpp Source/OpenEXR/IlmImf/ImfPizCompressor.cpp Source/OpenEXR/IlmImf/ImfPreviewImage.cpp Source/OpenEXR/IlmImf/ImfPreviewImageAttribute.cpp Source/OpenEXR/IlmImf/ImfPxr24Compressor.cpp Source/OpenEXR/IlmImf/ImfRational.cpp Source/OpenEXR/IlmImf/ImfRationalAttribute.cpp Source/OpenEXR/IlmImf/ImfRgbaFile.cpp Source/OpenEXR/IlmImf/ImfRgbaYca.cpp Source/OpenEXR/IlmImf/ImfRle.cpp Source/OpenEXR/IlmImf/ImfRleCompressor.cpp Source/OpenEXR/IlmImf/ImfScanLineInputFile.cpp Source/OpenEXR/IlmImf/ImfStandardAttributes.cpp Source/OpenEXR/IlmImf/ImfStdIO.cpp Source/OpenEXR/IlmImf/ImfStringAttribute.cpp Source/OpenEXR/IlmImf/ImfStringVectorAttribute.cpp Source/OpenEXR/IlmImf/ImfSystemSpecific.cpp Source/OpenEXR/IlmImf/ImfTestFile.cpp Source/OpenEXR/IlmImf/ImfThreading.cpp Source/OpenEXR/IlmImf/ImfTileDescriptionAttribute.cpp Source/OpenEXR/IlmImf/ImfTiledInputFile.cpp Source/OpenEXR/IlmImf/ImfTiledInputPart.cpp Source/OpenEXR/IlmImf/ImfTiledMisc.cpp Source/OpenEXR/IlmImf/ImfTiledOutputFile.cpp Source/OpenEXR/IlmImf/ImfTiledOutputPart.cpp Source/OpenEXR/IlmImf/ImfTiledRgbaFile.cpp Source/OpenEXR/IlmImf/ImfTileOffsets.cpp Source/OpenEXR/IlmImf/ImfTimeCode.cpp Source/OpenEXR/IlmImf/ImfTimeCodeAttribute.cpp Source/OpenEXR/IlmImf/ImfVecAttribute.cpp Source/OpenEXR/IlmImf/ImfVersion.cpp Source/OpenEXR/IlmImf/ImfWav.cpp Source/OpenEXR/IlmImf/ImfZip.cpp Source/OpenEXR/IlmImf/ImfZipCompressor.cpp Source/OpenEXR/Imath/ImathBox.cpp Source/OpenEXR/Imath/ImathColorAlgo.cpp Source/OpenEXR/Imath/ImathFun.cpp Source/OpenEXR/Imath/ImathMatrixAlgo.cpp Source/OpenEXR/Imath/ImathRandom.cpp Source/OpenEXR/Imath/ImathShear.cpp Source/OpenEXR/Imath/ImathVec.cpp Source/OpenEXR/Iex/IexBaseExc.cpp Source/OpenEXR/Iex/IexThrowErrnoExc.cpp Source/OpenEXR/Half/half.cpp Source/OpenEXR/IlmThread/IlmThread.cpp Source/OpenEXR/IlmThread/IlmThreadMutex.cpp Source/OpenEXR/IlmThread/IlmThreadPool.cpp Source/OpenEXR/IlmThread/IlmThreadSemaphore.cpp Source/OpenEXR/IexMath/IexMathFloatExc.cpp Source/LibRawLite/src/decoders/canon_600.cpp Source/LibRawLite/src/decoders/crx.cpp Source/LibRawLite/src/decoders/decoders_dcraw.cpp Source/LibRawLite/src/decoders/decoders_libraw.cpp Source/LibRawLite/src/decoders/decoders_libraw_dcrdefs.cpp Source/LibRawLite/src/decoders/dng.cpp Source/LibRawLite/src/decoders/fp_dng.cpp Source/LibRawLite/src/decoders/fuji_compressed.cpp Source/LibRawLite/src/decoders/generic.cpp Source/LibRawLite/src/decoders/kodak_decoders.cpp Source/LibRawLite/src/decoders/load_mfbacks.cpp Source/LibRawLite/src/decoders/smal.cpp Source/LibRawLite/src/decoders/unpack.cpp Source/LibRawLite/src/decoders/unpack_thumb.cpp Source/LibRawLite/src/demosaic/aahd_demosaic.cpp Source/LibRawLite/src/demosaic/ahd_demosaic.cpp Source/LibRawLite/src/demosaic/dcb_demosaic.cpp Source/LibRawLite/src/demosaic/dht_demosaic.cpp Source/LibRawLite/src/demosaic/misc_demosaic.cpp Source/LibRawLite/src/demosaic/xtrans_demosaic.cpp Source/LibRawLite/src/integration/dngsdk_glue.cpp Source/LibRawLite/src/integration/rawspeed_glue.cpp Source/LibRawLite/src/libraw_datastream.cpp Source/LibRawLite/src/metadata/adobepano.cpp Source/LibRawLite/src/metadata/canon.cpp Source/LibRawLite/src/metadata/ciff.cpp Source/LibRawLite/src/metadata/cr3_parser.cpp Source/LibRawLite/src/metadata/epson.cpp Source/LibRawLite/src/metadata/exif_gps.cpp Source/LibRawLite/src/metadata/fuji.cpp Source/LibRawLite/src/metadata/hasselblad_model.cpp Source/LibRawLite/src/metadata/identify.cpp Source/LibRawLite/src/metadata/identify_tools.cpp Source/LibRawLite/src/metadata/kodak.cpp Source/LibRawLite/src/metadata/leica.cpp Source/LibRawLite/src/metadata/makernotes.cpp Source/LibRawLite/src/metadata/mediumformat.cpp Source/LibRawLite/src/metadata/minolta.cpp Source/LibRawLite/src/metadata/misc_parsers.cpp Source/LibRawLite/src/metadata/nikon.cpp Source/LibRawLite/src/metadata/normalize_model.cpp Source/LibRawLite/src/metadata/olympus.cpp Source/LibRawLite/src/metadata/p1.cpp Source/LibRawLite/src/metadata/pentax.cpp Source/LibRawLite/src/metadata/samsung.cpp Source/LibRawLite/src/metadata/sony.cpp Source/LibRawLite/src/metadata/tiff.cpp Source/LibRawLite/src/postprocessing/aspect_ratio.cpp Source/LibRawLite/src/postprocessing/dcraw_process.cpp Source/LibRawLite/src/postprocessing/mem_image.cpp Source/LibRawLite/src/postprocessing/postprocessing_aux.cpp Source/LibRawLite/src/postprocessing/postprocessing_utils.cpp Source/LibRawLite/src/postprocessing/postprocessing_utils_dcrdefs.cpp Source/LibRawLite/src/preprocessing/ext_preprocess.cpp Source/LibRawLite/src/preprocessing/raw2image.cpp Source/LibRawLite/src/preprocessing/subtract_black.cpp Source/LibRawLite/src/tables/cameralist.cpp Source/LibRawLite/src/tables/colorconst.cpp Source/LibRawLite/src/tables/colordata.cpp Source/LibRawLite/src/tables/wblists.cpp Source/LibRawLite/src/utils/curves.cpp Source/LibRawLite/src/utils/decoder_info.cpp Source/LibRawLite/src/utils/init_close_utils.cpp Source/LibRawLite/src/utils/open.cpp Source/LibRawLite/src/utils/phaseone_processing.cpp Source/LibRawLite/src/utils/read_utils.cpp Source/LibRawLite/src/utils/thumb_utils.cpp Source/LibRawLite/src/utils/utils_dcraw.cpp Source/LibRawLite/src/utils/utils_libraw.cpp Source/LibRawLite/src/write/file_write.cpp Source/LibRawLite/src/x3f/x3f_parse_process.cpp Source/LibRawLite/src/x3f/x3f_utils_patched.cpp Source/LibWebP/src/dec/alpha_dec.c Source/LibWebP/src/dec/buffer_dec.c Source/LibWebP/src/dec/frame_dec.c Source/LibWebP/src/dec/idec_dec.c Source/LibWebP/src/dec/io_dec.c Source/LibWebP/src/dec/quant_dec.c Source/LibWebP/src/dec/tree_dec.c Source/LibWebP/src/dec/vp8l_dec.c Source/LibWebP/src/dec/vp8_dec.c Source/LibWebP/src/dec/webp_dec.c Source/LibWebP/src/demux/anim_decode.c Source/LibWebP/src/demux/demux.c Source/LibWebP/src/dsp/alpha_processing.c Source/LibWebP/src/dsp/alpha_processing_mips_dsp_r2.c Source/LibWebP/src/dsp/alpha_processing_neon.c Source/LibWebP/src/dsp/alpha_processing_sse2.c Source/LibWebP/src/dsp/alpha_processing_sse41.c Source/LibWebP/src/dsp/cost.c Source/LibWebP/src/dsp/cost_mips32.c Source/LibWebP/src/dsp/cost_mips_dsp_r2.c Source/LibWebP/src/dsp/cost_neon.c Source/LibWebP/src/dsp/cost_sse2.c Source/LibWebP/src/dsp/cpu.c Source/LibWebP/src/dsp/dec.c Source/LibWebP/src/dsp/dec_clip_tables.c Source/LibWebP/src/dsp/dec_mips32.c Source/LibWebP/src/dsp/dec_mips_dsp_r2.c Source/LibWebP/src/dsp/dec_msa.c Source/LibWebP/src/dsp/dec_neon.c Source/LibWebP/src/dsp/dec_sse2.c Source/LibWebP/src/dsp/dec_sse41.c Source/LibWebP/src/dsp/enc.c Source/LibWebP/src/dsp/enc_avx2.c Source/LibWebP/src/dsp/enc_mips32.c Source/LibWebP/src/dsp/enc_mips_dsp_r2.c Source/LibWebP/src/dsp/enc_msa.c Source/LibWebP/src/dsp/enc_neon.c Source/LibWebP/src/dsp/enc_sse2.c Source/LibWebP/src/dsp/enc_sse41.c Source/LibWebP/src/dsp/filters.c Source/LibWebP/src/dsp/filters_mips_dsp_r2.c Source/LibWebP/src/dsp/filters_msa.c Source/LibWebP/src/dsp/filters_neon.c Source/LibWebP/src/dsp/filters_sse2.c Source/LibWebP/src/dsp/lossless.c Source/LibWebP/src/dsp/lossless_enc.c Source/LibWebP/src/dsp/lossless_enc_mips32.c Source/LibWebP/src/dsp/lossless_enc_mips_dsp_r2.c Source/LibWebP/src/dsp/lossless_enc_msa.c Source/LibWebP/src/dsp/lossless_enc_neon.c Source/LibWebP/src/dsp/lossless_enc_sse2.c Source/LibWebP/src/dsp/lossless_enc_sse41.c Source/LibWebP/src/dsp/lossless_mips_dsp_r2.c Source/LibWebP/src/dsp/lossless_msa.c Source/LibWebP/src/dsp/lossless_neon.c Source/LibWebP/src/dsp/lossless_sse2.c Source/LibWebP/src/dsp/lossless_sse41.c Source/LibWebP/src/dsp/rescaler.c Source/LibWebP/src/dsp/rescaler_mips32.c Source/LibWebP/src/dsp/rescaler_mips_dsp_r2.c Source/LibWebP/src/dsp/rescaler_msa.c Source/LibWebP/src/dsp/rescaler_neon.c Source/LibWebP/src/dsp/rescaler_sse2.c Source/LibWebP/src/dsp/ssim.c Source/LibWebP/src/dsp/ssim_sse2.c Source/LibWebP/src/dsp/upsampling.c Source/LibWebP/src/dsp/upsampling_mips_dsp_r2.c Source/LibWebP/src/dsp/upsampling_msa.c Source/LibWebP/src/dsp/upsampling_neon.c Source/LibWebP/src/dsp/upsampling_sse2.c Source/LibWebP/src/dsp/upsampling_sse41.c Source/LibWebP/src/dsp/yuv.c Source/LibWebP/src/dsp/yuv_mips32.c Source/LibWebP/src/dsp/yuv_mips_dsp_r2.c Source/LibWebP/src/dsp/yuv_neon.c Source/LibWebP/src/dsp/yuv_sse2.c Source/LibWebP/src/dsp/yuv_sse41.c Source/LibWebP/src/enc/alpha_enc.c Source/LibWebP/src/enc/analysis_enc.c Source/LibWebP/src/enc/backward_references_cost_enc.c Source/LibWebP/src/enc/backward_references_enc.c Source/LibWebP/src/enc/config_enc.c Source/LibWebP/src/enc/cost_enc.c Source/LibWebP/src/enc/filter_enc.c Source/LibWebP/src/enc/frame_enc.c Source/LibWebP/src/enc/histogram_enc.c Source/LibWebP/src/enc/iterator_enc.c Source/LibWebP/src/enc/near_lossless_enc.c Source/LibWebP/src/enc/picture_csp_enc.c Source/LibWebP/src/enc/picture_enc.c Source/LibWebP/src/enc/picture_psnr_enc.c Source/LibWebP/src/enc/picture_rescale_enc.c Source/LibWebP/src/enc/picture_tools_enc.c Source/LibWebP/src/enc/predictor_enc.c Source/LibWebP/src/enc/quant_enc.c Source/LibWebP/src/enc/syntax_enc.c Source/LibWebP/src/enc/token_enc.c Source/LibWebP/src/enc/tree_enc.c Source/LibWebP/src/enc/vp8l_enc.c Source/LibWebP/src/enc/webp_enc.c Source/LibWebP/src/mux/anim_encode.c Source/LibWebP/src/mux/muxedit.c Source/LibWebP/src/mux/muxinternal.c Source/LibWebP/src/mux/muxread.c Source/LibWebP/src/utils/bit_reader_utils.c Source/LibWebP/src/utils/bit_writer_utils.c Source/LibWebP/src/utils/color_cache_utils.c Source/LibWebP/src/utils/filters_utils.c Source/LibWebP/src/utils/huffman_encode_utils.c Source/LibWebP/src/utils/huffman_utils.c Source/LibWebP/src/utils/quant_levels_dec_utils.c Source/LibWebP/src/utils/quant_levels_utils.c Source/LibWebP/src/utils/random_utils.c Source/LibWebP/src/utils/rescaler_utils.c Source/LibWebP/src/utils/thread_utils.c Source/LibWebP/src/utils/utils.c Source/LibJXR/image/decode/decode.c Source/LibJXR/image/decode/JXRTranscode.c Source/LibJXR/image/decode/postprocess.c Source/LibJXR/image/decode/segdec.c Source/LibJXR/image/decode/strdec.c Source/LibJXR/image/decode/strdec_x86.c Source/LibJXR/image/decode/strInvTransform.c Source/LibJXR/image/decode/strPredQuantDec.c Source/LibJXR/image/encode/encode.c Source/LibJXR/image/encode/segenc.c Source/LibJXR/image/encode/strenc.c Source/LibJXR/image/encode/strenc_x86.c Source/LibJXR/image/encode/strFwdTransform.c Source/LibJXR/image/encode/strPredQuantEnc.c Source/LibJXR/image/sys/adapthuff.c Source/LibJXR/image/sys/image.c Source/LibJXR/image/sys/strcodec.c Source/LibJXR/image/sys/strPredQuant.c Source/LibJXR/image/sys/strTransform.c Source/LibJXR/jxrgluelib/JXRGlue.c Source/LibJXR/jxrgluelib/JXRGlueJxr.c Source/LibJXR/jxrgluelib/JXRGluePFC.c Source/LibJXR/jxrgluelib/JXRMeta.c Wrapper/FreeImagePlus/src/fipImage.cpp Wrapper/FreeImagePlus/src/fipMemoryIO.cpp Wrapper/FreeImagePlus/src/fipMetadataFind.cpp Wrapper/FreeImagePlus/src/fipMultiPage.cpp Wrapper/FreeImagePlus/src/fipTag.cpp Wrapper/FreeImagePlus/src/fipWinImage.cpp Wrapper/FreeImagePlus/src/FreeImagePlus.cpp 
 -INCLUDE = -I. -ISource -ISource/Metadata -ISource/FreeImageToolkit -ISource/LibJPEG -ISource/LibPNG -ISource/LibTIFF4 -ISource/ZLib -ISource/LibOpenJPEG -ISource/OpenEXR -ISource/OpenEXR/Half -ISource/OpenEXR/Iex -ISource/OpenEXR/IlmImf -ISource/OpenEXR/IlmThread -ISource/OpenEXR/Imath -ISource/OpenEXR/IexMath -ISource/LibRawLite -ISource/LibRawLite/dcraw -ISource/LibRawLite/internal -ISource/LibRawLite/libraw -ISource/LibRawLite/src -ISource/LibWebP -ISource/LibJXR -ISource/LibJXR/common/include -ISource/LibJXR/image/sys -ISource/LibJXR/jxrgluelib -IWrapper/FreeImagePlus
 +SRCS = ./Source/FreeImage/BitmapAccess.cpp ./Source/FreeImage/ColorLookup.cpp ./Source/FreeImage/ConversionRGBA16.cpp ./Source/FreeImage/ConversionRGBAF.cpp ./Source/FreeImage/FreeImage.cpp ./Source/FreeImage/FreeImageC.c ./Source/FreeImage/FreeImageIO.cpp ./Source/FreeImage/GetType.cpp ./Source/FreeImage/LFPQuantizer.cpp ./Source/FreeImage/MemoryIO.cpp ./Source/FreeImage/PixelAccess.cpp ./Source/FreeImage/J2KHelper.cpp ./Source/FreeImage/MNGHelper.cpp ./Source/FreeImage/Plugin.cpp ./Source/FreeImage/PluginBMP.cpp ./Source/FreeImage/PluginCUT.cpp ./Source/FreeImage/PluginDDS.cpp ./Source/FreeImage/PluginEXR.cpp ./Source/FreeImage/PluginG3.cpp ./Source/FreeImage/PluginGIF.cpp ./Source/FreeImage/PluginHDR.cpp ./Source/FreeImage/PluginICO.cpp ./Source/FreeImage/PluginIFF.cpp ./Source/FreeImage/PluginJ2K.cpp ./Source/FreeImage/PluginJNG.cpp ./Source/FreeImage/PluginJP2.cpp ./Source/FreeImage/PluginJPEG.cpp ./Source/FreeImage/PluginJXR.cpp ./Source/FreeImage/PluginKOALA.cpp ./Source/FreeImage/PluginMNG.cpp ./Source/FreeImage/PluginPCD.cpp ./Source/FreeImage/PluginPCX.cpp ./Source/FreeImage/PluginPFM.cpp ./Source/FreeImage/PluginPICT.cpp ./Source/FreeImage/PluginPNG.cpp ./Source/FreeImage/PluginPNM.cpp ./Source/FreeImage/PluginPSD.cpp ./Source/FreeImage/PluginRAS.cpp ./Source/FreeImage/PluginRAW.cpp ./Source/FreeImage/PluginSGI.cpp ./Source/FreeImage/PluginTARGA.cpp ./Source/FreeImage/PluginTIFF.cpp ./Source/FreeImage/PluginWBMP.cpp ./Source/FreeImage/PluginWebP.cpp ./Source/FreeImage/PluginXBM.cpp ./Source/FreeImage/PluginXPM.cpp ./Source/FreeImage/PSDParser.cpp ./Source/FreeImage/TIFFLogLuv.cpp ./Source/FreeImage/Conversion.cpp ./Source/FreeImage/Conversion16_555.cpp ./Source/FreeImage/Conversion16_565.cpp ./Source/FreeImage/Conversion24.cpp ./Source/FreeImage/Conversion32.cpp ./Source/FreeImage/Conversion4.cpp ./Source/FreeImage/Conversion8.cpp ./Source/FreeImage/ConversionFloat.cpp ./Source/FreeImage/ConversionRGB16.cpp ./Source/FreeImage/ConversionRGBF.cpp ./Source/FreeImage/ConversionType.cpp ./Source/FreeImage/ConversionUINT16.cpp ./Source/FreeImage/Halftoning.cpp ./Source/FreeImage/tmoColorConvert.cpp ./Source/FreeImage/tmoDrago03.cpp ./Source/FreeImage/tmoFattal02.cpp ./Source/FreeImage/tmoReinhard05.cpp ./Source/FreeImage/ToneMapping.cpp ./Source/FreeImage/NNQuantizer.cpp ./Source/FreeImage/WuQuantizer.cpp ./Source/FreeImage/CacheFile.cpp ./Source/FreeImage/MultiPage.cpp ./Source/FreeImage/ZLibInterface.cpp ./Source/Metadata/Exif.cpp ./Source/Metadata/FIRational.cpp ./Source/Metadata/FreeImageTag.cpp ./Source/Metadata/IPTC.cpp ./Source/Metadata/TagConversion.cpp ./Source/Metadata/TagLib.cpp ./Source/Metadata/XTIFF.cpp ./Source/FreeImageToolkit/Background.cpp ./Source/FreeImageToolkit/BSplineRotate.cpp ./Source/FreeImageToolkit/Channels.cpp ./Source/FreeImageToolkit/ClassicRotate.cpp ./Source/FreeImageToolkit/Colors.cpp ./Source/FreeImageToolkit/CopyPaste.cpp ./Source/FreeImageToolkit/Display.cpp ./Source/FreeImageToolkit/Flip.cpp ./Source/FreeImageToolkit/JPEGTransform.cpp ./Source/FreeImageToolkit/MultigridPoissonSolver.cpp ./Source/FreeImageToolkit/Rescale.cpp ./Source/FreeImageToolkit/Resize.cpp Wrapper/FreeImagePlus/src/fipImage.cpp Wrapper/FreeImagePlus/src/fipMemoryIO.cpp Wrapper/FreeImagePlus/src/fipMetadataFind.cpp Wrapper/FreeImagePlus/src/fipMultiPage.cpp Wrapper/FreeImagePlus/src/fipTag.cpp Wrapper/FreeImagePlus/src/fipWinImage.cpp Wrapper/FreeImagePlus/src/FreeImagePlus.cpp 
 +INCLUDE = -I. -ISource -ISource/Metadata -ISource/FreeImageToolkit -IWrapper/FreeImagePlus
diff --git a/pkgs/development/libraries/freetype/default.nix b/pkgs/development/libraries/freetype/default.nix
index 5dfd56370022c..7f906e19224ad 100644
--- a/pkgs/development/libraries/freetype/default.nix
+++ b/pkgs/development/libraries/freetype/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation rec {
   pname = "freetype";
-  version = "2.11.1";
+  version = "2.12.0";
 
   src = fetchurl {
     url = "mirror://savannah/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-MzOufP2ohCnJenrmO30BqzmAdsO2cYLpYOVoQFDyxcg=";
+    sha256 = "sha256-71wzaqzBoHn/kmLWMI1sKgZt1NKpBTAcSt2ps1Q5kDM=";
   };
 
   propagatedBuildInputs = [ zlib bzip2 libpng ]; # needed when linking against freetype
diff --git a/pkgs/development/libraries/gcc/libgcc/default.nix b/pkgs/development/libraries/gcc/libgcc/default.nix
index b9b7db729ebaa..094bb7e7a1d3d 100644
--- a/pkgs/development/libraries/gcc/libgcc/default.nix
+++ b/pkgs/development/libraries/gcc/libgcc/default.nix
@@ -4,7 +4,7 @@
 }:
 
 stdenvNoLibs.mkDerivation rec {
-  name = "libgcc-${version}";
+  pname = "libgcc";
   inherit (gcc.cc) src version;
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/gensio/default.nix b/pkgs/development/libraries/gensio/default.nix
index 90fe46582672b..84d54b3bc35ea 100644
--- a/pkgs/development/libraries/gensio/default.nix
+++ b/pkgs/development/libraries/gensio/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gensio";
-  version = "2.3.6";
+  version = "2.3.7";
 
   src = fetchFromGitHub {
     owner = "cminyard";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-aPTwN5DuUFPqLDwq73KvmBR8tEN5bIX6/JOZMfOAoow=";
+    sha256 = "sha256-g1o/udsIFLJ+gunvI2QtsnksPaa946jWKkcdmdGmQ/k=";
   };
 
   passthru = {
diff --git a/pkgs/development/libraries/geos/3.9.nix b/pkgs/development/libraries/geos/3.9.nix
new file mode 100644
index 0000000000000..fd0531fa747fd
--- /dev/null
+++ b/pkgs/development/libraries/geos/3.9.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "geos";
+  version = "3.9.2";
+
+  src = fetchurl {
+    url = "https://download.osgeo.org/geos/${pname}-${version}.tar.bz2";
+    sha256 = "sha256-RKWpviHX1HNDa/Yhwt3MPPWou+PHhuEyKWGKO52GEpc=";
+  };
+
+  enableParallelBuilding = true;
+
+  # https://trac.osgeo.org/geos/ticket/993
+  configureFlags = lib.optional stdenv.isAarch32 "--disable-inline";
+
+  meta = with lib; {
+    description = "C++ port of the Java Topology Suite (JTS)";
+    homepage = "https://trac.osgeo.org/geos";
+    license = licenses.lgpl21Only;
+    maintainers = with lib.maintainers; [
+      willcohen
+    ];
+  };
+}
diff --git a/pkgs/development/libraries/geos/default.nix b/pkgs/development/libraries/geos/default.nix
index 355e9e5f07fff..c067a705d0bfe 100644
--- a/pkgs/development/libraries/geos/default.nix
+++ b/pkgs/development/libraries/geos/default.nix
@@ -1,22 +1,31 @@
-{ lib, stdenv, fetchurl }:
+{ lib
+, stdenv
+, fetchurl
+, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "geos";
-  version = "3.9.1";
+  version = "3.10.2";
 
   src = fetchurl {
     url = "https://download.osgeo.org/geos/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-fmMFB9ysncB1ZdJJom8GoVyfWwxS3SkSmg49OB1+OCo=";
+    sha256 = "sha256-ULvFmaw4a0wrOWLcxBHwBAph8gSq7066ciXs3Qz0VxU=";
   };
 
-  enableParallelBuilding = true;
+  nativeBuildInputs = [ cmake ];
 
-  # https://trac.osgeo.org/geos/ticket/993
-  configureFlags = lib.optional stdenv.isAarch32 "--disable-inline";
+  postPatch = ''
+    substituteInPlace tools/geos-config.in \
+      --replace "@libdir@" "@prefix@/lib" \
+      --replace "@includedir@" "@prefix@/include"
+  '';
 
   meta = with lib; {
     description = "C++ port of the Java Topology Suite (JTS)";
     homepage = "https://trac.osgeo.org/geos";
     license = licenses.lgpl21Only;
+    maintainers = with lib.maintainers; [
+      willcohen
+    ];
   };
 }
diff --git a/pkgs/development/libraries/ggz_base_libs/default.nix b/pkgs/development/libraries/ggz_base_libs/default.nix
index cafb869354906..687b74fdb3ad9 100644
--- a/pkgs/development/libraries/ggz_base_libs/default.nix
+++ b/pkgs/development/libraries/ggz_base_libs/default.nix
@@ -1,12 +1,11 @@
 { lib, stdenv, fetchurl, intltool, openssl, expat, libgcrypt }:
 
 stdenv.mkDerivation rec {
+  pname = "ggz-base-libs";
   version = "0.99.5";
-  baseName = "ggz-base-libs";
-  name = "${baseName}-snapshot-${version}";
 
   src = fetchurl {
-    url = "http://mirrors.ibiblio.org/pub/mirrors/ggzgamingzone/ggz/snapshots/${name}.tar.gz";
+    url = "http://mirrors.ibiblio.org/pub/mirrors/ggzgamingzone/ggz/snapshots/ggz-base-libs-snapshot-${version}.tar.gz";
     sha256 = "1cw1vg0fbj36zyggnzidx9cbjwfc1yr4zqmsipxnvns7xa2awbdk";
   };
 
diff --git a/pkgs/development/libraries/ghc_filesystem/default.nix b/pkgs/development/libraries/ghc_filesystem/default.nix
index 0ffad301a493e..3232d7d8f6151 100644
--- a/pkgs/development/libraries/ghc_filesystem/default.nix
+++ b/pkgs/development/libraries/ghc_filesystem/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "filesystem";
-  version = "1.5.6";
+  version = "1.5.12";
 
   src = fetchFromGitHub {
     owner = "gulrak";
     repo = "filesystem";
     rev = "v${version}";
-    hash = "sha256-qnBZ9aCrCPOgxymjbzrRs0gssijo8MJOMiy7QWWMb5c=";
+    hash = "sha256-j4RE5Ach7C7Kef4+H9AHSXa2L8OVyJljDwBduKcC4eE=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/glfw/3.x.nix b/pkgs/development/libraries/glfw/3.x.nix
index 53409ec7f732b..3aedaab5658c7 100644
--- a/pkgs/development/libraries/glfw/3.x.nix
+++ b/pkgs/development/libraries/glfw/3.x.nix
@@ -6,19 +6,18 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.3.6";
+  version = "3.3.7";
   pname = "glfw";
 
   src = fetchFromGitHub {
     owner = "glfw";
     repo = "GLFW";
     rev = version;
-    sha256 = "sha256-mYcnucIRudLLySShKSDzsQfuoM2/0guKpeLSGuAWEkQ=";
+    sha256 = "sha256-aWwt6FRq/ofQmZAeavDa8inrJfrPxb8iyo1XYdQsrKc=";
   };
 
-  # Fix freezing on Wayland (https://github.com/glfw/glfw/pull/1711)
-  # and linkage issues on X11 (https://github.com/NixOS/nixpkgs/issues/142583)
-  patches = if waylandSupport then ./wayland.patch else ./x11.patch;
+  # Fix linkage issues on X11 (https://github.com/NixOS/nixpkgs/issues/142583)
+  patches = lib.optional (!waylandSupport) ./x11.patch;
 
   propagatedBuildInputs = [ libGL ];
 
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index a7b8f0d44bf6d..97da2a7c3be02 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -54,6 +54,14 @@ stdenv.mkDerivation rec {
 
   patches = optionals stdenv.isDarwin [
     ./darwin-compilation.patch
+
+    # Fix Inkscape compilation with clang++
+    # https://gitlab.gnome.org/GNOME/glib/-/issues/2625
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/glib/-/commit/97d39b745ff1f621424f68a41ce0a7c5bb554c87.patch";
+      sha256 = "wftuyf3ExFfrISngCQpEUpIGfHCCLXeYv/PEb/TE6a8=";
+      revert = true;
+    })
   ] ++ optionals stdenv.hostPlatform.isMusl [
     ./quark_init_on_demand.patch
     ./gobject_init_on_demand.patch
@@ -61,6 +69,12 @@ stdenv.mkDerivation rec {
     ./glib-appinfo-watch.patch
     ./schema-override-variable.patch
 
+    # Add support for the GNOME’s default terminal emulator.
+    # https://gitlab.gnome.org/GNOME/glib/-/issues/2618
+    ./gnome-console-support.patch
+    # Do the same for Pantheon’s terminal emulator.
+    ./elementary-terminal-support.patch
+
     # GLib contains many binaries used for different purposes;
     # we will install them to different outputs:
     # 1. Tools for desktop environment ($bin)
diff --git a/pkgs/development/libraries/glib/elementary-terminal-support.patch b/pkgs/development/libraries/glib/elementary-terminal-support.patch
new file mode 100644
index 0000000000000..0b8c8a70871cf
--- /dev/null
+++ b/pkgs/development/libraries/glib/elementary-terminal-support.patch
@@ -0,0 +1,16 @@
+diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c
+index a441bfec9..6bcd3e690 100644
+--- a/gio/gdesktopappinfo.c
++++ b/gio/gdesktopappinfo.c
+@@ -2678,6 +2678,11 @@ prepend_terminal_to_vector (int    *argc,
+             if (check != NULL)
+               pass_cmd_as_single_arg = TRUE;
+           }
++          if (check == NULL) {
++            check = g_find_program_in_path ("io.elementary.terminal");
++            if (check != NULL)
++              pass_cmd_as_single_arg = TRUE;
++          }
+           if (check == NULL)
+             check = g_find_program_in_path ("tilix");
+           if (check == NULL)
diff --git a/pkgs/development/libraries/glib/gnome-console-support.patch b/pkgs/development/libraries/glib/gnome-console-support.patch
new file mode 100644
index 0000000000000..7f6894a5cec9f
--- /dev/null
+++ b/pkgs/development/libraries/glib/gnome-console-support.patch
@@ -0,0 +1,55 @@
+diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c
+index 60d6debb2..a441bfec9 100644
+--- a/gio/gdesktopappinfo.c
++++ b/gio/gdesktopappinfo.c
+@@ -2627,6 +2627,7 @@ prepend_terminal_to_vector (int    *argc,
+   int i, j;
+   char **term_argv = NULL;
+   int term_argc = 0;
++  gboolean pass_cmd_as_single_arg = FALSE;
+   char *check;
+   char **the_argv;
+ 
+@@ -2672,6 +2673,11 @@ prepend_terminal_to_vector (int    *argc,
+         }
+       else
+         {
++          if (check == NULL) {
++            check = g_find_program_in_path ("kgx");
++            if (check != NULL)
++              pass_cmd_as_single_arg = TRUE;
++          }
+           if (check == NULL)
+             check = g_find_program_in_path ("tilix");
+           if (check == NULL)
+@@ -2697,14 +2703,27 @@ prepend_terminal_to_vector (int    *argc,
+         }
+     }
+ 
+-  real_argc = term_argc + *argc;
++  real_argc = term_argc + (pass_cmd_as_single_arg ? 1 : *argc);
+   real_argv = g_new (char *, real_argc + 1);
+ 
+   for (i = 0; i < term_argc; i++)
+     real_argv[i] = term_argv[i];
+ 
+-  for (j = 0; j < *argc; j++, i++)
+-    real_argv[i] = (char *)the_argv[j];
++  if (pass_cmd_as_single_arg) {
++    char **quoted_argv = g_new (char *, *argc + 1);
++
++    for (j = 0; j < *argc; j++) {
++      quoted_argv[j] = g_shell_quote (the_argv[j]);
++      g_free (the_argv[j]);
++    }
++    quoted_argv[j] = NULL;
++
++    real_argv[i++] = g_strjoinv (" ", quoted_argv);
++    g_strfreev (quoted_argv);
++  } else {
++    for (j = 0; j < *argc; j++, i++)
++      real_argv[i] = (char *)the_argv[j];
++  }
+ 
+   real_argv[i] = NULL;
+ 
diff --git a/pkgs/development/libraries/glibc/0001-Revert-Remove-all-usage-of-BASH-or-BASH-in-installed.patch b/pkgs/development/libraries/glibc/0001-Revert-Remove-all-usage-of-BASH-or-BASH-in-installed.patch
new file mode 100644
index 0000000000000..45bad2867e906
--- /dev/null
+++ b/pkgs/development/libraries/glibc/0001-Revert-Remove-all-usage-of-BASH-or-BASH-in-installed.patch
@@ -0,0 +1,131 @@
+From f81744bae4442345ff6f40d80fdb8adaba8b330f Mon Sep 17 00:00:00 2001
+From: Maximilian Bosch <maximilian@mbosch.me>
+Date: Fri, 27 Aug 2021 17:19:27 +0200
+Subject: [PATCH] Revert "Remove all usage of @BASH@ or ${BASH} in installed
+ files, and hardcode /bin/bash instead"
+
+We need the ability to override to use `/bin/sh` here to avoid having
+some bootstrap tools in a final build product.
+
+This reverts commit 5188a9d0265cc6f7235a8af1d31ab02e4a24853d.
+---
+ debug/Makefile     | 5 +++--
+ debug/xtrace.sh    | 2 +-
+ elf/Makefile       | 4 +++-
+ elf/ldd.bash.in    | 2 +-
+ elf/sotruss.sh     | 2 +-
+ malloc/Makefile    | 5 +++--
+ malloc/memusage.sh | 2 +-
+ timezone/Makefile  | 3 ++-
+ 8 files changed, 15 insertions(+), 10 deletions(-)
+
+diff --git a/debug/Makefile b/debug/Makefile
+index 6893111cbf..3f66666c6c 100644
+--- a/debug/Makefile
++++ b/debug/Makefile
+@@ -216,7 +216,8 @@ $(objpfx)pcprofiledump: $(objpfx)pcprofiledump.o
+ 
+ $(objpfx)xtrace: xtrace.sh
+ 	rm -f $@.new
+-	sed -e 's|@VERSION@|$(version)|' -e 's|@SLIBDIR@|$(sLIBdir)|' \
+-	    -e 's|@BINDIR@|$(bindir)|' -e 's|@PKGVERSION@|$(PKGVERSION)|' \
++	sed -e 's|@BASH@|$(BASH)|' -e 's|@VERSION@|$(version)|' \
++	    -e 's|@SLIBDIR@|$(sLIBdir)|' -e 's|@BINDIR@|$(bindir)|' \
++	    -e 's|@PKGVERSION@|$(PKGVERSION)|' \
+ 	    -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|' $^ > $@.new \
+ 	&& rm -f $@ && mv $@.new $@ && chmod +x $@
+diff --git a/debug/xtrace.sh b/debug/xtrace.sh
+index 9697fbe0b4..279fe59ac6 100755
+--- a/debug/xtrace.sh
++++ b/debug/xtrace.sh
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#! @BASH@
+ # Copyright (C) 1999-2021 Free Software Foundation, Inc.
+ # This file is part of the GNU C Library.
+ # Contributed by Ulrich Drepper <drepper@gnu.org>, 1999.
+diff --git a/elf/Makefile b/elf/Makefile
+index d05f410592..9264409fdd 100644
+--- a/elf/Makefile
++++ b/elf/Makefile
+@@ -144,7 +144,8 @@ $(objpfx)sotruss-lib.so: $(common-objpfx)libc.so $(objpfx)ld.so \
+ 	$(common-objpfx)libc_nonshared.a
+ 
+ $(objpfx)sotruss: sotruss.sh $(common-objpfx)config.make
+-	sed -e 's%@VERSION@%$(version)%g' \
++	sed -e 's%@BASH@%$(BASH)%g' \
++	    -e 's%@VERSION@%$(version)%g' \
+ 	    -e 's%@TEXTDOMAINDIR@%$(localedir)%g' \
+ 	    -e 's%@PREFIX@%$(prefix)%g' \
+ 	    -e 's|@PKGVERSION@|$(PKGVERSION)|g' \
+@@ -659,6 +660,7 @@ ldd-rewrite = -e 's%@RTLD@%$(rtlddir)/$(rtld-installed-name)%g' \
+ 	      -e 's%@VERSION@%$(version)%g' \
+ 	      -e 's|@PKGVERSION@|$(PKGVERSION)|g' \
+ 	      -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|g' \
++	      -e 's%@BASH@%$(BASH)%g' \
+ 	      -e 's%@TEXTDOMAINDIR@%$(localedir)%g'
+ 
+ ifeq ($(ldd-rewrite-script),no)
+diff --git a/elf/ldd.bash.in b/elf/ldd.bash.in
+index ba736464ac..57442bc3f2 100644
+--- a/elf/ldd.bash.in
++++ b/elf/ldd.bash.in
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#! @BASH@
+ # Copyright (C) 1996-2021 Free Software Foundation, Inc.
+ # This file is part of the GNU C Library.
+ 
+diff --git a/elf/sotruss.sh b/elf/sotruss.sh
+index 003cf4d825..fd4da80244 100755
+--- a/elf/sotruss.sh
++++ b/elf/sotruss.sh
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#! @BASH@
+ # Copyright (C) 2011-2021 Free Software Foundation, Inc.
+ # This file is part of the GNU C Library.
+ 
+diff --git a/malloc/Makefile b/malloc/Makefile
+index 9b70831d38..90ecadff6c 100644
+--- a/malloc/Makefile
++++ b/malloc/Makefile
+@@ -271,8 +271,9 @@ $(objpfx)mtrace: mtrace.pl
+ 
+ $(objpfx)memusage: memusage.sh
+ 	rm -f $@.new
+-	sed -e 's|@VERSION@|$(version)|' -e 's|@SLIBDIR@|$(sLIBdir)|' \
+-	    -e 's|@BINDIR@|$(bindir)|' -e 's|@PKGVERSION@|$(PKGVERSION)|' \
++	sed -e 's|@BASH@|$(BASH)|' -e 's|@VERSION@|$(version)|' \
++	    -e 's|@SLIBDIR@|$(sLIBdir)|' -e 's|@BINDIR@|$(bindir)|' \
++	    -e 's|@PKGVERSION@|$(PKGVERSION)|' \
+ 	    -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|' $^ > $@.new \
+ 	&& rm -f $@ && mv $@.new $@ && chmod +x $@
+ 
+diff --git a/malloc/memusage.sh b/malloc/memusage.sh
+index 0645f09911..c1cd4e23b7 100755
+--- a/malloc/memusage.sh
++++ b/malloc/memusage.sh
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#! @BASH@
+ # Copyright (C) 1999-2021 Free Software Foundation, Inc.
+ # This file is part of the GNU C Library.
+ # Contributed by Ulrich Drepper <drepper@gnu.org>, 1999.
+diff --git a/timezone/Makefile b/timezone/Makefile
+index c624a189b3..395abfeebd 100644
+--- a/timezone/Makefile
++++ b/timezone/Makefile
+@@ -123,7 +123,8 @@ $(testdata)/XT%: testdata/XT%
+ 	cp $< $@
+ 
+ $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make
+-	sed -e 's|TZDIR=[^}]*|TZDIR=$(zonedir)|' \
++	sed -e 's|/bin/bash|$(BASH)|' \
++	    -e 's|TZDIR=[^}]*|TZDIR=$(zonedir)|' \
+ 	    -e '/TZVERSION=/s|see_Makefile|"$(version)"|' \
+ 	    -e '/PKGVERSION=/s|=.*|="$(PKGVERSION)"|' \
+ 	    -e '/REPORT_BUGS_TO=/s|=.*|="$(REPORT_BUGS_TO)"|' \
+-- 
+2.31.1
+
diff --git a/pkgs/development/libraries/glibc/2.33-master.patch.gz b/pkgs/development/libraries/glibc/2.33-master.patch.gz
deleted file mode 100644
index 777e94e2b2ea5..0000000000000
--- a/pkgs/development/libraries/glibc/2.33-master.patch.gz
+++ /dev/null
Binary files differdiff --git a/pkgs/development/libraries/glibc/2.34-master.patch.gz b/pkgs/development/libraries/glibc/2.34-master.patch.gz
new file mode 100644
index 0000000000000..8fb02ca6d7217
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.34-master.patch.gz
Binary files differdiff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix
index ffec9972d2875..bf77f6abaa351 100644
--- a/pkgs/development/libraries/glibc/common.nix
+++ b/pkgs/development/libraries/glibc/common.nix
@@ -43,9 +43,9 @@
 } @ args:
 
 let
-  version = "2.33";
-  patchSuffix = "-117";
-  sha256 = "sha256-LiVWAA4QXb1X8Layoy/yzxc73k8Nhd/8z9i35RoGd/8=";
+  version = "2.34";
+  patchSuffix = "-115";
+  sha256 = "sha256-RNJqH+ILiFOkj0cOrQHkJ56GmsFJsZXdpORKGV2YGrI=";
 in
 
 assert withLinuxHeaders -> linuxHeaders != null;
@@ -62,14 +62,14 @@ stdenv.mkDerivation ({
   patches =
     [
       /* No tarballs for stable upstream branch, only https://sourceware.org/git/glibc.git and using git would complicate bootstrapping.
-          $ git fetch --all -p && git checkout origin/release/2.33/master && git describe
-          glibc-2.33-117-g55446dd8a2
-          $ git show --minimal --reverse glibc-2.33.. | gzip -9n --rsyncable - > 2.33-master.patch.gz
+          $ git fetch --all -p && git checkout origin/release/2.34/master && git describe
+          glibc-2.34-115-gd5d1c95aaf
+          $ git show --minimal --reverse glibc-2.34.. | gzip -9n --rsyncable - > 2.34-master.patch.gz
 
          To compare the archive contents zdiff can be used.
-          $ zdiff -u 2.33-master.patch.gz ../nixpkgs/pkgs/development/libraries/glibc/2.33-master.patch.gz
+          $ zdiff -u 2.34-master.patch.gz ../nixpkgs/pkgs/development/libraries/glibc/2.34-master.patch.gz
        */
-      ./2.33-master.patch.gz
+      ./2.34-master.patch.gz
 
       /* Allow NixOS and Nix to handle the locale-archive. */
       ./nix-locale-archive.patch
@@ -125,6 +125,15 @@ stdenv.mkDerivation ({
 
       /* https://github.com/NixOS/nixpkgs/pull/137601 */
       ./nix-nss-open-files.patch
+
+      ./0001-Revert-Remove-all-usage-of-BASH-or-BASH-in-installed.patch
+
+      /* Fix segfault in getpwuid when stat fails
+         https://sourceware.org/bugzilla/show_bug.cgi?id=28752 */
+      (fetchurl {
+        url = "https://patchwork.sourceware.org/project/glibc/patch/20220314175316.3239120-2-sam@gentoo.org/raw/";
+        sha256 = "sq0BoPqXHQ69Vq4zJobCspe4XRfnAiuac/wqzVQJESc=";
+      })
     ]
     ++ lib.optional stdenv.hostPlatform.isMusl ./fix-rpc-types-musl-conflicts.patch
     ++ lib.optional stdenv.buildPlatform.isDarwin ./darwin-cross-build.patch;
@@ -138,6 +147,10 @@ stdenv.mkDerivation ({
       # nscd needs libgcc, and we don't want it dynamically linked
       # because we don't want it to depend on bootstrap-tools libs.
       echo "LDFLAGS-nscd += -static-libgcc" >> nscd/Makefile
+
+      # Ensure that `__nss_files_fopen` can still be wrapped by `libredirect`.
+      sed -i -e '/libc_hidden_def (__nss_files_fopen)/d' nss/nss_files_fopen.c
+      sed -i -e '/libc_hidden_proto (__nss_files_fopen)/d' include/nss_files.h
     ''
     # FIXME: find a solution for infinite recursion in cross builds.
     # For now it's hopefully acceptable that IDN from libc doesn't reliably work.
diff --git a/pkgs/development/libraries/glibc/default.nix b/pkgs/development/libraries/glibc/default.nix
index caaacfe4f4368..65a622f046736 100644
--- a/pkgs/development/libraries/glibc/default.nix
+++ b/pkgs/development/libraries/glibc/default.nix
@@ -119,6 +119,17 @@ callPackage ./common.nix { inherit stdenv; } {
 
       # Get rid of more unnecessary stuff.
       rm -rf $out/var $bin/bin/sln
+
+      # Backwards-compatibility to fix e.g.
+      # "configure: error: Pthreads are required to build libgomp" during `gcc`-build
+      # because it's not actually needed anymore to link against `pthreads` since
+      # it's now part of `libc.so.6` itself, but the gcc build breaks if
+      # this doesn't work.
+      ln -sf $out/lib/libpthread.so.0 $out/lib/libpthread.so
+      ln -sf $out/lib/librt.so.1 $out/lib/librt.so
+      ln -sf $out/lib/libdl.so.2 $out/lib/libdl.so
+      ln -sf $out/lib/libutil.so.1 $out/lib/libutil.so
+      touch $out/lib/libpthread.a
     ''
       # For some reason these aren't stripped otherwise and retain reference
       # to bootstrap-tools; on cross-arm this stripping would break objects.
diff --git a/pkgs/development/libraries/glibc/nix-locale-archive.patch b/pkgs/development/libraries/glibc/nix-locale-archive.patch
index 39312951fcf91..2fedf2a7a7dbd 100644
--- a/pkgs/development/libraries/glibc/nix-locale-archive.patch
+++ b/pkgs/development/libraries/glibc/nix-locale-archive.patch
@@ -1,7 +1,8 @@
-diff -Naur glibc-2.27-orig/locale/loadarchive.c glibc-2.27/locale/loadarchive.c
---- glibc-2.27-orig/locale/loadarchive.c	2018-02-01 11:17:18.000000000 -0500
-+++ glibc-2.27/locale/loadarchive.c	2018-02-17 22:32:25.680169462 -0500
-@@ -123,6 +123,23 @@
+diff --git a/locale/loadarchive.c b/locale/loadarchive.c
+index 512769eaec..171dbb4ad9 100644
+--- a/locale/loadarchive.c
++++ b/locale/loadarchive.c
+@@ -123,6 +123,23 @@ calculate_head_size (const struct locarhead *h)
    return MAX (namehash_end, MAX (string_end, locrectab_end));
  }
  
@@ -25,7 +26,7 @@ diff -Naur glibc-2.27-orig/locale/loadarchive.c glibc-2.27/locale/loadarchive.c
  
  /* Find the locale *NAMEP in the locale archive, and return the
     internalized data structure for its CATEGORY data.  If this locale has
-@@ -202,7 +219,7 @@
+@@ -202,7 +219,7 @@ _nl_load_locale_from_archive (int category, const char **namep)
        archmapped = &headmap;
  
        /* The archive has never been opened.  */
@@ -34,23 +35,25 @@ diff -Naur glibc-2.27-orig/locale/loadarchive.c glibc-2.27/locale/loadarchive.c
        if (fd < 0)
  	/* Cannot open the archive, for whatever reason.  */
  	return NULL;
-@@ -397,8 +414,7 @@
+@@ -397,8 +414,7 @@ _nl_load_locale_from_archive (int category, const char **namep)
  	  if (fd == -1)
  	    {
- 	      struct stat64 st;
+ 	      struct __stat64_t64 st;
 -	      fd = __open_nocancel (archfname,
 -				    O_RDONLY|O_LARGEFILE|O_CLOEXEC);
-+	      fd = open_locale_archive ();
++	      fd = open_locale_archive();
  	      if (fd == -1)
  		/* Cannot open the archive, for whatever reason.  */
  		return NULL;
-diff -Naur glibc-2.27-orig/locale/programs/locale.c glibc-2.27/locale/programs/locale.c
---- glibc-2.27-orig/locale/programs/locale.c	2018-02-01 11:17:18.000000000 -0500
-+++ glibc-2.27/locale/programs/locale.c	2018-02-17 22:36:39.726293213 -0500
-@@ -633,6 +633,24 @@
+diff --git a/locale/programs/locale.c b/locale/programs/locale.c
+index ca0a95be99..e484783402 100644
+--- a/locale/programs/locale.c
++++ b/locale/programs/locale.c
+@@ -633,6 +633,24 @@ nameentcmp (const void *a, const void *b)
+ }
  
  
- static int
++static int
 +open_locale_archive (void)
 +{
 +  int fd = -1;
@@ -68,11 +71,10 @@ diff -Naur glibc-2.27-orig/locale/programs/locale.c glibc-2.27/locale/programs/l
 +}
 +
 +
-+static int
+ static int
  write_archive_locales (void **all_datap, char *linebuf)
  {
-   struct stat64 st;
-@@ -644,7 +662,7 @@
+@@ -645,7 +663,7 @@ write_archive_locales (void **all_datap, char *linebuf)
    int fd, ret = 0;
    uint32_t cnt;
  
@@ -81,10 +83,11 @@ diff -Naur glibc-2.27-orig/locale/programs/locale.c glibc-2.27/locale/programs/l
    if (fd < 0)
      return 0;
  
-diff -Naur glibc-2.27-orig/locale/programs/locarchive.c glibc-2.27/locale/programs/locarchive.c
---- glibc-2.27-orig/locale/programs/locarchive.c	2018-02-01 11:17:18.000000000 -0500
-+++ glibc-2.27/locale/programs/locarchive.c	2018-02-17 22:40:51.245293975 -0500
-@@ -117,6 +117,22 @@
+diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c
+index f38e835c52..779a3199fc 100644
+--- a/locale/programs/locarchive.c
++++ b/locale/programs/locarchive.c
+@@ -117,6 +117,22 @@ prepare_address_space (int fd, size_t total, size_t *reserved, int *xflags,
  }
  
  
@@ -107,7 +110,7 @@ diff -Naur glibc-2.27-orig/locale/programs/locarchive.c glibc-2.27/locale/progra
  static void
  create_archive (const char *archivefname, struct locarhandle *ah)
  {
-@@ -578,7 +594,7 @@
+@@ -578,7 +594,7 @@ open_archive (struct locarhandle *ah, bool readonly)
    while (1)
      {
        /* Open the archive.  We must have exclusive write access.  */
diff --git a/pkgs/development/libraries/glibmm/2.68.nix b/pkgs/development/libraries/glibmm/2.68.nix
index 1ba18898ad892..e0ef34a451e31 100644
--- a/pkgs/development/libraries/glibmm/2.68.nix
+++ b/pkgs/development/libraries/glibmm/2.68.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "glibmm";
-  version = "2.70.0";
+  version = "2.72.0";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-gAj9iu3cyGej+X8RPeYl9ulu+Yz3hgN5gTqcD+/9tSA=";
+    sha256 = "sha256-eCkkvxNklvOHj9wqCqnvQPDFFeLD4FTK/6XS5SOAxx4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/glm/default.nix b/pkgs/development/libraries/glm/default.nix
index 81b0b47d5ba8c..d4c836b6912e5 100644
--- a/pkgs/development/libraries/glm/default.nix
+++ b/pkgs/development/libraries/glm/default.nix
@@ -28,6 +28,11 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
+  NIX_CFLAGS_COMPILE =
+    lib.optionals (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "11") [
+      "-fno-ipa-modref" # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102823
+    ];
+
   cmakeFlags = [
     "-DBUILD_SHARED_LIBS=OFF"
     "-DBUILD_STATIC_LIBS=OFF"
diff --git a/pkgs/development/libraries/glog/default.nix b/pkgs/development/libraries/glog/default.nix
index 72758a1b3e774..98ae294c48023 100644
--- a/pkgs/development/libraries/glog/default.nix
+++ b/pkgs/development/libraries/glog/default.nix
@@ -1,27 +1,16 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, cmake, gflags, perl }:
+{ stdenv, lib, fetchFromGitHub, cmake, gflags, perl }:
 
 stdenv.mkDerivation rec {
   pname = "glog";
-  version = "0.5.0";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "glog";
     rev = "v${version}";
-    sha256 = "17014q25c99qyis6l3fwxidw6222bb269fdlr74gn7pzmzg4lvg3";
+    sha256 = "sha256-xqRp9vaauBkKz2CXbh/Z4TWqhaUtqfbsSlbYZR/kW9s=";
   };
 
-  patches = [
-    # Fix duplicate-concatenated nix store path in cmake file, see:
-    # https://github.com/NixOS/nixpkgs/pull/144561#issuecomment-960296043
-    # TODO: Remove when https://github.com/google/glog/pull/733 is merged and available.
-    (fetchpatch {
-      name = "glog-cmake-Fix-incorrect-relative-path-concatenation.patch";
-      url = "https://github.com/google/glog/pull/733/commits/57c636c02784f909e4b5d3c2f0ecbdbb47097266.patch";
-      sha256 = "1py93gkzmcyi2ypcwyj3nri210z8fmlaif51yflzmrrv507zd7bi";
-    })
-  ];
-
   nativeBuildInputs = [ cmake ];
 
   propagatedBuildInputs = [ gflags ];
@@ -35,6 +24,8 @@ stdenv.mkDerivation rec {
 
   # TODO: Re-enable Darwin tests once we're on a release that has https://github.com/google/glog/issues/709#issuecomment-960381653 fixed
   doCheck = !stdenv.isDarwin;
+  # There are some non-thread safe tests that can fail
+  enableParallelChecking = false;
   checkInputs = [ perl ];
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/gmp/6.x.nix b/pkgs/development/libraries/gmp/6.x.nix
index 9093073cecff4..af4f15a151f0f 100644
--- a/pkgs/development/libraries/gmp/6.x.nix
+++ b/pkgs/development/libraries/gmp/6.x.nix
@@ -12,7 +12,7 @@
 let inherit (lib) optional; in
 
 let self = stdenv.mkDerivation rec {
-  pname = "gmp";
+  pname = "gmp${lib.optionalString cxx "-with-cxx"}";
   version = "6.2.1";
 
   src = fetchurl { # we need to use bz2, others aren't in bootstrapping stdenv
diff --git a/pkgs/development/libraries/goffice/default.nix b/pkgs/development/libraries/goffice/default.nix
index 0617eaa1a2600..7dbc4157f6ee2 100644
--- a/pkgs/development/libraries/goffice/default.nix
+++ b/pkgs/development/libraries/goffice/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "goffice";
-  version = "0.10.51";
+  version = "0.10.52";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "LoQQiE1qUa4AyUIJKKv6c/elUsGqIiNx308txazDzSM=";
+    sha256 = "YLnv2UNw8JabOU8KrIxuuR4V68DOEja0Sqc16xyYhAw=";
   };
 
   nativeBuildInputs = [ pkg-config intltool ];
diff --git a/pkgs/development/libraries/graphene-hardened-malloc/default.nix b/pkgs/development/libraries/graphene-hardened-malloc/default.nix
index f3c16c8ac3217..3d4af9db19ce2 100644
--- a/pkgs/development/libraries/graphene-hardened-malloc/default.nix
+++ b/pkgs/development/libraries/graphene-hardened-malloc/default.nix
@@ -1,14 +1,21 @@
-{ lib, stdenv, fetchFromGitHub, python3, runCommand, makeWrapper, stress-ng }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, python3
+, runCommand
+, makeWrapper
+, stress-ng
+}:
 
 lib.fix (self: stdenv.mkDerivation rec {
   pname = "graphene-hardened-malloc";
-  version = "8";
+  version = "11";
 
   src = fetchFromGitHub {
     owner = "GrapheneOS";
     repo = "hardened_malloc";
     rev = version;
-    sha256 = "sha256-+5kJb3hhuFTto7zsIymIXl3tpKUOm3v1DCY4EkAOCgo=";
+    sha256 = "sha256-BbjL0W12QXFmGCzFrFYY6CZZeFbUt0elCGhM+mbL/IU=";
   };
 
   doCheck = true;
@@ -20,7 +27,7 @@ lib.fix (self: stdenv.mkDerivation rec {
 
   installPhase = ''
     install -Dm444 -t $out/include include/*
-    install -Dm444 -t $out/lib libhardened_malloc.so
+    install -Dm444 -t $out/lib out/libhardened_malloc.so
 
     mkdir -p $out/bin
     substitute preload.sh $out/bin/preload-hardened-malloc --replace "\$dir" $out/lib
@@ -41,21 +48,21 @@ lib.fix (self: stdenv.mkDerivation rec {
       # standalone executables. this includes disabling tests for
       # malloc_object_size, which doesn't make sense to use via LD_PRELOAD.
       buildPhase = ''
-        pushd test/simple-memory-corruption
+        pushd test
         make LDLIBS= LDFLAGS=-Wl,--unresolved-symbols=ignore-all CXXFLAGS=-lstdc++
         substituteInPlace test_smc.py \
           --replace 'test_malloc_object_size' 'dont_test_malloc_object_size' \
           --replace 'test_invalid_malloc_object_size' 'dont_test_invalid_malloc_object_size'
-        popd # test/simple-memory-corruption
+        popd # test
       '';
 
       installPhase = ''
         mkdir -p $out/test
-        cp -r test/simple-memory-corruption $out/test/simple-memory-corruption
+        cp -r test $out/test
 
         mkdir -p $out/bin
         makeWrapper ${python3.interpreter} $out/bin/run-tests \
-          --add-flags "-I -m unittest discover --start-directory $out/test/simple-memory-corruption"
+          --add-flags "-I -m unittest discover --start-directory $out/test"
       '';
     };
     tests = {
diff --git a/pkgs/development/libraries/graphene/0001-meson-add-options-for-tests-installation-dirs.patch b/pkgs/development/libraries/graphene/0001-meson-add-options-for-tests-installation-dirs.patch
index 9111217ea08ed..36d81ca9f138f 100644
--- a/pkgs/development/libraries/graphene/0001-meson-add-options-for-tests-installation-dirs.patch
+++ b/pkgs/development/libraries/graphene/0001-meson-add-options-for-tests-installation-dirs.patch
@@ -1,12 +1,12 @@
-From 57bed86429db9d871f1442c94f14e94e38972ca3 Mon Sep 17 00:00:00 2001
+From d68fcb793d70032e978ecf8e0577eea955a741cf Mon Sep 17 00:00:00 2001
 From: worldofpeace <worldofpeace@protonmail.ch>
-Date: Thu, 16 May 2019 21:15:15 -0400
+Date: Sun, 10 Apr 2022 12:02:10 +0800
 Subject: [PATCH] meson: add options for tests installation dirs
 
 ---
  meson_options.txt |  6 ++++++
- tests/meson.build | 23 ++++++++++++++++-------
- 2 files changed, 22 insertions(+), 7 deletions(-)
+ tests/meson.build | 13 +++++++++++--
+ 2 files changed, 17 insertions(+), 2 deletions(-)
 
 diff --git a/meson_options.txt b/meson_options.txt
 index b9a2fb5..4b8629f 100644
@@ -23,7 +23,7 @@ index b9a2fb5..4b8629f 100644
 +       value: '',
 +       description: 'Installation directory for binary files in tests')
 diff --git a/tests/meson.build b/tests/meson.build
-index 77281f5..7522456 100644
+index 2b925e7..3276849 100644
 --- a/tests/meson.build
 +++ b/tests/meson.build
 @@ -21,8 +21,17 @@ unit_tests = [
@@ -32,66 +32,20 @@ index 77281f5..7522456 100644
  
 -installed_test_datadir = join_paths(get_option('prefix'), get_option('datadir'), 'installed-tests', graphene_api_path)
 -installed_test_bindir = join_paths(get_option('prefix'), get_option('libexecdir'), 'installed-tests', graphene_api_path)
-+test_suffix = join_paths('installed-tests', graphene_api_path)
++installed_test_suffix = join_paths('installed-tests', graphene_api_path)
 +
-+test_datadir = join_paths(get_option('installed_test_datadir'), test_suffix)
-+if test_datadir == ''
-+    test_datadir = join_paths(get_option('prefix'), get_option('datadir'), test_suffix)
++installed_test_datadir = join_paths(get_option('installed_test_datadir'), installed_test_suffix)
++if installed_test_datadir == ''
++  installed_test_datadir = join_paths(get_option('prefix'), get_option('datadir'), installed_test_suffix)
 +endif
 +
-+test_bindir = join_paths(get_option('installed_test_bindir'), test_suffix)
-+if test_bindir == ''
-+    test_bindir = join_paths(get_option('prefix'), get_option('libexecdir'), test_suffix)
++installed_test_bindir = join_paths(get_option('installed_test_bindir'), installed_test_suffix)
++if installed_test_bindir == ''
++  installed_test_bindir = join_paths(get_option('prefix'), get_option('libexecdir'), installed_test_suffix)
 +endif
  
  # Make tests conditional on having mutest-1 installed system-wide, or
  # available as a subproject
-@@ -40,13 +49,13 @@ if mutest_dep.found()
-       output: wrapper,
-       command: [
-         gen_installed_test,
--        '--testdir=@0@'.format(installed_test_bindir),
-+        '--testdir=@0@'.format(test_bindir),
-         '--testname=@0@'.format(unit),
-         '--outdir=@OUTDIR@',
-         '--outfile=@0@'.format(wrapper),
-       ],
-       install: get_option('installed_tests'),
--      install_dir: installed_test_datadir,
-+      install_dir: test_datadir,
-     )
- 
-     test(unit,
-@@ -55,7 +64,7 @@ if mutest_dep.found()
-         include_directories: graphene_inc,
-         c_args: common_cflags,
-         install: get_option('installed_tests'),
--        install_dir: installed_test_bindir,
-+        install_dir: test_bindir,
-       ),
-       env: ['MUTEST_OUTPUT=tap'],
-       protocol: 'tap',
-@@ -66,17 +75,18 @@ endif
- if build_gir and host_system == 'linux' and not meson.is_cross_build()
-   foreach unit: ['introspection.py']
-     wrapper = '@0@.test'.format(unit)
-+    install_data(unit, install_dir: test_bindir)
-     custom_target(wrapper,
-       output: wrapper,
-       command: [
-         gen_installed_test,
--        '--testdir=@0@'.format(installed_test_bindir),
-+        '--testdir=@0@'.format(test_bindir),
-         '--testname=@0@'.format(unit),
-         '--outdir=@OUTDIR@',
-         '--outfile=@0@'.format(wrapper),
-       ],
-       install: get_option('installed_tests'),
--      install_dir: installed_test_datadir,
-+      install_dir: test_datadir,
-     )
- 
-     test(unit,
 -- 
-2.31.1
+2.35.1
 
diff --git a/pkgs/development/libraries/graphene/default.nix b/pkgs/development/libraries/graphene/default.nix
index 22c0e044f1e84..b883c549da54c 100644
--- a/pkgs/development/libraries/graphene/default.nix
+++ b/pkgs/development/libraries/graphene/default.nix
@@ -1,5 +1,7 @@
-{ lib, stdenv
+{ stdenv
+, lib
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pkg-config
 , meson
@@ -17,7 +19,7 @@
 
 stdenv.mkDerivation rec {
   pname = "graphene";
-  version = "1.10.6";
+  version = "1.10.8";
 
   outputs = [ "out" ]
     ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "devdoc" "installedTests" ];
@@ -26,12 +28,21 @@ stdenv.mkDerivation rec {
     owner = "ebassi";
     repo = pname;
     rev = version;
-    sha256 = "v6YH3fRMTzhp7wmU8in9ukcavzHmOAW54EK9ZwQyFxc=";
+    sha256 = "P6JQhSktzvyMHatP/iojNGXPmcsxsFxdYerXzS23ojI=";
   };
 
   patches = [
     # Add option for changing installation path of installed tests.
     ./0001-meson-add-options-for-tests-installation-dirs.patch
+
+    # Disable flaky simd_operators_reciprocal test
+    # https://github.com/ebassi/graphene/issues/246
+    (fetchpatch {
+      url = "https://github.com/ebassi/graphene/commit/4fbdd07ea3bcd0964cca3966010bf71cb6fa8209.patch";
+      sha256 = "uFkkH0u4HuQ/ua1mfO7sJZ7MPrQdV/JON7mTYB4DW80=";
+      includes = [ "tests/simd.c" ];
+      revert = true;
+    })
   ];
 
   depsBuildBuild = [
diff --git a/pkgs/development/libraries/grpc/default.nix b/pkgs/development/libraries/grpc/default.nix
index 28c47640ca6a9..f55e2c2f6e453 100644
--- a/pkgs/development/libraries/grpc/default.nix
+++ b/pkgs/development/libraries/grpc/default.nix
@@ -20,7 +20,7 @@
 
 stdenv.mkDerivation rec {
   pname = "grpc";
-  version = "1.43.0"; # N.B: if you change this, please update:
+  version = "1.45.2"; # N.B: if you change this, please update:
     # pythonPackages.grpcio-tools
     # pythonPackages.grpcio-status
 
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     owner = "grpc";
     repo = "grpc";
     rev = "v${version}";
-    sha256 = "sha256-NPyCQsrmD/gBs4UHPGbBACmGRTNQDj6WfnfLNdWulK4=";
+    sha256 = "sha256-l2r1NdbfwViXfLcwbfUgLueqfAVnLzI+gdEarlkIqkI=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/libraries/gsettings-desktop-schemas/default.nix b/pkgs/development/libraries/gsettings-desktop-schemas/default.nix
index 085544a36120e..acc143cd5566c 100644
--- a/pkgs/development/libraries/gsettings-desktop-schemas/default.nix
+++ b/pkgs/development/libraries/gsettings-desktop-schemas/default.nix
@@ -39,14 +39,20 @@ stdenv.mkDerivation rec {
     patchShebangs build-aux/meson/post-install.py
   '';
 
-  # meson installs the schemas to share/glib-2.0/schemas
-  # We add the override file there too so it will be compiled and later moved by
-  # glib's setup hook.
   preInstall = ''
+    # Meson installs the schemas to share/glib-2.0/schemas
+    # We add the override file there too so it will be compiled and later moved by
+    # glib's setup hook.
     mkdir -p $out/share/glib-2.0/schemas
     cat - > $out/share/glib-2.0/schemas/remove-backgrounds.gschema.override <<- EOF
+      # These paths are supposed to refer to gnome-backgrounds
+      # but since we do not use FHS, they are broken.
+      # And we do not want to hardcode the correct paths
+      # since then every GTK app would pull in gnome-backgrounds.
+      # Let’s just override the broken paths so that people are not confused.
       [org.gnome.desktop.background]
       picture-uri='''
+      picture-uri-dark='''
 
       [org.gnome.desktop.screensaver]
       picture-uri='''
diff --git a/pkgs/development/libraries/gspell/default.nix b/pkgs/development/libraries/gspell/default.nix
index be45a48090ff4..6c37529fb3d76 100644
--- a/pkgs/development/libraries/gspell/default.nix
+++ b/pkgs/development/libraries/gspell/default.nix
@@ -16,14 +16,14 @@
 
 stdenv.mkDerivation rec {
   pname = "gspell";
-  version = "1.9.1";
+  version = "1.10.0";
 
   outputs = [ "out" "dev" ];
   outputBin = "dev";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1pdb4gbjrs8mk6r0ipw5vxyvzav1wvkjq46kiq53r3nyznfpdfyw";
+    sha256 = "gDu4hMAhXT/SKoXX8wQjr/iNl5LwWlGZ2KSJov+q4do=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/gtk-frdp/default.nix b/pkgs/development/libraries/gtk-frdp/default.nix
index ffb4e5bbbf90d..4498930bd838b 100644
--- a/pkgs/development/libraries/gtk-frdp/default.nix
+++ b/pkgs/development/libraries/gtk-frdp/default.nix
@@ -14,14 +14,14 @@
 
 stdenv.mkDerivation rec {
   pname = "gtk-frdp";
-  version = "unstable-2021-10-28";
+  version = "unstable-2022-04-11";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = pname;
-    rev = "a44d84ec687f41ad37e43697b28a018f65780780";
-    sha256 = "7J4jf3gDiorsc4zs6zwC+j/Zg0oZWKAFAz9vvJJ2CYM=";
+    rev = "d7f408fb23adc01db14c708b35b74a317418de4b";
+    sha256 = "EyReJX3f7G5+EEB/gbLTnrxdltedbzm7Bg02hCb+XO0=";
   };
 
   nativeBuildInputs = [
@@ -40,8 +40,6 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = unstableGitUpdater {
-      # The updater tries src.url by default, which does not exist for fetchFromGitHub (fetchurl).
-      url = "${meta.homepage}.git";
       branch = "gtk-frdp-0-1";
     };
   };
diff --git a/pkgs/development/libraries/gtkmm/2.x.nix b/pkgs/development/libraries/gtkmm/2.x.nix
index cf26e22da5bc3..284ee83c2d4f4 100644
--- a/pkgs/development/libraries/gtkmm/2.x.nix
+++ b/pkgs/development/libraries/gtkmm/2.x.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, pkg-config, gtk2, glibmm, cairomm, pangomm, atkmm }:
 
 stdenv.mkDerivation rec {
-  name = "gtkmm-${minVer}.5";
-  minVer = "2.24";
+  pname = "gtkmm";
+  version = "2.24.5";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gtkmm/${minVer}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gtkmm/${lib.versions.majorMinor version}/gtkmm-${version}.tar.xz";
     sha256 = "0680a53b7bf90b4e4bf444d1d89e6df41c777e0bacc96e9c09fc4dd2f5fe6b72";
   };
 
diff --git a/pkgs/development/libraries/gtksourceview/5.x.nix b/pkgs/development/libraries/gtksourceview/5.x.nix
index 81c0abd61b6d3..29d85980accc0 100644
--- a/pkgs/development/libraries/gtksourceview/5.x.nix
+++ b/pkgs/development/libraries/gtksourceview/5.x.nix
@@ -23,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gtksourceview";
-  version = "5.4.0";
+  version = "5.4.1";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "ADvCF+ZwqOyKo67OmUtw5wt9a4B0k4rdohcYVV2E5jc=";
+    sha256 = "6zWECZz6CtyaCx7eCN72MgvQmeeedKLQrvtAV82T1o4=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/gvfs/default.nix b/pkgs/development/libraries/gvfs/default.nix
index e02a0be4d28d5..685a77bbd5985 100644
--- a/pkgs/development/libraries/gvfs/default.nix
+++ b/pkgs/development/libraries/gvfs/default.nix
@@ -43,11 +43,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gvfs";
-  version = "1.50.0";
+  version = "1.50.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "y8L1ZNLp8Ax2BnP0LWgDvOPggat/+0RW3v//upM5tN0=";
+    sha256 = "dPb0EU9kJJOEroNKv6tjkjGLdCLOUyFV1rSbrh/cQFY=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/hivex/default.nix b/pkgs/development/libraries/hivex/default.nix
index 204af0a92b577..85fa8fc4c6eb0 100644
--- a/pkgs/development/libraries/hivex/default.nix
+++ b/pkgs/development/libraries/hivex/default.nix
@@ -12,9 +12,9 @@ stdenv.mkDerivation rec {
 
   patches = [ ./hivex-syms.patch ];
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ autoreconfHook makeWrapper pkg-config ];
   buildInputs = [
-    autoreconfHook makeWrapper libxml2
+    libxml2
   ]
   ++ (with perlPackages; [ perl IOStringy ])
   ++ lib.optionals stdenv.isDarwin [ libiconv ];
diff --git a/pkgs/development/libraries/hspell/dicts.nix b/pkgs/development/libraries/hspell/dicts.nix
index 83942c2c1dde2..06f80bf5cf223 100644
--- a/pkgs/development/libraries/hspell/dicts.nix
+++ b/pkgs/development/libraries/hspell/dicts.nix
@@ -2,7 +2,7 @@
 
 let
   dict = variant: a: stdenv.mkDerivation ({
-    inherit (hspell) src patchPhase nativeBuildInputs;
+    inherit (hspell) version src patchPhase nativeBuildInputs;
     buildFlags = [ variant ];
 
     meta = hspell.meta // {
@@ -15,7 +15,7 @@ in
   recurseForDerivations = true;
 
   aspell = dict "aspell" {
-    name = "aspell-dict-he-${hspell.version}";
+    pname = "aspell-dict-he";
 
     installPhase = ''
       mkdir -p $out/lib/aspell
@@ -23,7 +23,7 @@ in
   };
 
   myspell = dict "myspell" {
-    name = "myspell-dict-he-${hspell.version}";
+    pname = "myspell-dict-he";
 
     installPhase = ''
       mkdir -p $out/lib/myspell
@@ -31,7 +31,7 @@ in
   };
 
   hunspell = dict "hunspell" {
-    name = "hunspell-dict-he-${hspell.version}";
+    pname = "hunspell-dict-he";
 
     installPhase = ''
       mkdir -p $out/lib
diff --git a/pkgs/development/libraries/http-parser/default.nix b/pkgs/development/libraries/http-parser/default.nix
index 36ca0b0ca0b76..aff5b1ea3c183 100644
--- a/pkgs/development/libraries/http-parser/default.nix
+++ b/pkgs/development/libraries/http-parser/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "http-parser";
@@ -12,7 +12,14 @@ stdenv.mkDerivation rec {
   };
 
   NIX_CFLAGS_COMPILE = "-Wno-error";
-  patches = [ ./build-shared.patch ];
+  patches = [
+    ./build-shared.patch
+    # https://github.com/nodejs/http-parser/pull/510
+    (fetchpatch {
+      url = "https://github.com/nodejs/http-parser/commit/4f15b7d510dc7c6361a26a7c6d2f7c3a17f8d878.patch";
+      sha256 = "sha256-rZZMJeow3V1fTnjadRaRa+xTq3pdhZn/eJ4xjxEDoU4=";
+    })
+  ];
   makeFlags = [ "DESTDIR=" "PREFIX=$(out)" ];
   buildFlags = [ "library" ];
   doCheck = true;
diff --git a/pkgs/development/libraries/hunspell/dictionaries.nix b/pkgs/development/libraries/hunspell/dictionaries.nix
index ffa8c5d191b99..4f520772b7502 100644
--- a/pkgs/development/libraries/hunspell/dictionaries.nix
+++ b/pkgs/development/libraries/hunspell/dictionaries.nix
@@ -45,8 +45,7 @@ let
         maintainers = with maintainers; [ renzo ];
         platforms = platforms.all;
       };
-      nativeBuildInputs = [ unzip ];
-      buildInputs = [ bash coreutils which zip ];
+      nativeBuildInputs = [ bash coreutils which zip unzip ];
       patchPhase = ''
         substituteInPlace ortograf/herramientas/make_dict.sh \
            --replace /bin/bash bash \
@@ -234,7 +233,7 @@ let
         sha256 = "1a3055hp2bc4q4nlg3gmg0147p3a1zlfnc65xiv2v9pyql1nya8p";
       };
 
-      buildInputs = [ ispell perl hunspell ];
+      nativeBuildInputs = [ ispell perl hunspell ];
 
       dontBuild = true;
 
diff --git a/pkgs/development/libraries/hwloc/default.nix b/pkgs/development/libraries/hwloc/default.nix
index a1119f4be2c6e..1544bb946ea5f 100644
--- a/pkgs/development/libraries/hwloc/default.nix
+++ b/pkgs/development/libraries/hwloc/default.nix
@@ -8,11 +8,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "hwloc";
-  version = "2.7.0";
+  version = "2.7.1";
 
   src = fetchurl {
     url = "https://www.open-mpi.org/software/hwloc/v${versions.majorMinor version}/downloads/hwloc-${version}.tar.bz2";
-    sha256 = "1q440fwvhnxz6j8k5bn3bxj86b3lzbr8fgib78l4iq6gxd9yx302";
+    sha256 = "sha256-DU4dNsOnLF1hkBv9R3M39aTH4Kl12lcWUjfQDjXvUo0=";
   };
 
   configureFlags = [
diff --git a/pkgs/development/libraries/igraph/default.nix b/pkgs/development/libraries/igraph/default.nix
index 441646c439558..adb3b5dc0f31c 100644
--- a/pkgs/development/libraries/igraph/default.nix
+++ b/pkgs/development/libraries/igraph/default.nix
@@ -12,7 +12,9 @@
 , lapack
 , libxml2
 , libxslt
+, llvmPackages
 , pkg-config
+, plfit
 , python3
 , sourceHighlight
 , suitesparse
@@ -21,19 +23,15 @@
 
 stdenv.mkDerivation rec {
   pname = "igraph";
-  version = "0.9.7";
+  version = "0.9.8";
 
   src = fetchFromGitHub {
     owner = "igraph";
     repo = pname;
     rev = version;
-    sha256 = "sha256-SL9PcT18vFvykCv4VRXxXtlcDAcybmwEImnnKXMciFQ=";
+    hash = "sha256-t0GC6FVFcbVbmZ74XNSPCRRUsSr1Z8rRw6Rf++qk4I0=";
   };
 
-  # Normally, igraph wants us to call bootstrap.sh, which will call
-  # tools/getversion.sh. Instead, we're going to put the version directly
-  # where igraph wants, and then let autoreconfHook do the rest of the
-  # bootstrap. ~ C.
   postPatch = ''
     echo "${version}" > IGRAPH_VERSION
   '' + lib.optionalString stdenv.isAarch64 ''
@@ -65,7 +63,10 @@ stdenv.mkDerivation rec {
     gmp
     lapack
     libxml2
+    plfit
     suitesparse
+  ] ++ lib.optionals stdenv.cc.isClang [
+    llvmPackages.openmp
   ];
 
   cmakeFlags = [
@@ -75,8 +76,10 @@ stdenv.mkDerivation rec {
     "-DIGRAPH_USE_INTERNAL_GLPK=OFF"
     "-DIGRAPH_USE_INTERNAL_CXSPARSE=OFF"
     "-DIGRAPH_USE_INTERNAL_GMP=OFF"
+    "-DIGRAPH_USE_INTERNAL_PLFIT=OFF"
     "-DIGRAPH_GLPK_SUPPORT=ON"
     "-DIGRAPH_GRAPHML_SUPPORT=ON"
+    "-DIGRAPH_OPENMP_SUPPORT=ON"
     "-DIGRAPH_ENABLE_LTO=AUTO"
     "-DIGRAPH_ENABLE_TLS=ON"
     "-DBUILD_SHARED_LIBS=ON"
@@ -103,6 +106,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "The network analysis package";
     homepage = "https://igraph.org/";
+    changelog = "https://github.com/igraph/igraph/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ MostAwesomeDude dotlambda ];
diff --git a/pkgs/development/libraries/ijs/default.nix b/pkgs/development/libraries/ijs/default.nix
index b300731ce440b..ad13daef788d1 100644
--- a/pkgs/development/libraries/ijs/default.nix
+++ b/pkgs/development/libraries/ijs/default.nix
@@ -1,9 +1,8 @@
 { lib, stdenv, autoreconfHook, ghostscript }:
 
 stdenv.mkDerivation {
-  name = "ijs-${ghostscript.version}";
-
-  inherit (ghostscript) src;
+  pname = "ijs";
+  inherit (ghostscript) version src;
 
   postPatch = "cd ijs";
 
diff --git a/pkgs/development/libraries/intel-media-driver/default.nix b/pkgs/development/libraries/intel-media-driver/default.nix
index 380f0c1f7e25e..d97eac2a93db8 100644
--- a/pkgs/development/libraries/intel-media-driver/default.nix
+++ b/pkgs/development/libraries/intel-media-driver/default.nix
@@ -14,7 +14,7 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-media-driver";
-  version = "22.2.2";
+  version = "22.3.0";
 
   outputs = [ "out" "dev" ];
 
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "intel";
     repo = "media-driver";
     rev = "intel-media-${version}";
-    sha256 = "sha256-ksh8xx46x9OgXBrhJr3FnBI9g4PHXUDhLPbgpvccffM=";
+    sha256 = "sha256-TQmXU/Roij6U6NTt3oywhjpPJzaFeR4hhVor11mgaRE=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/intel-media-sdk/default.nix b/pkgs/development/libraries/intel-media-sdk/default.nix
index 034d5b74b5633..31f25ec10d77f 100644
--- a/pkgs/development/libraries/intel-media-sdk/default.nix
+++ b/pkgs/development/libraries/intel-media-sdk/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-media-sdk";
-  version = "22.2.1";
+  version = "22.3.0";
 
   src = fetchFromGitHub {
     owner = "Intel-Media-SDK";
     repo = "MediaSDK";
     rev = "intel-mediasdk-${version}";
-    sha256 = "sha256-S8RShdpXz1WQoyuLxUDT94ftnep2WCy8oYKzeYBgftw=";
+    sha256 = "sha256-6/MOjISfLsrsocdeFC148hRwl2os5dvJV1eYq/jIMr4=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/development/libraries/isl/generic.nix b/pkgs/development/libraries/isl/generic.nix
index eb6fe5f9cd69a..0a8c89d88ad30 100644
--- a/pkgs/development/libraries/isl/generic.nix
+++ b/pkgs/development/libraries/isl/generic.nix
@@ -9,7 +9,8 @@
 }:
 
 stdenv.mkDerivation {
-  name = "isl-${version}";
+  pname = "isl";
+  inherit version;
 
   src = fetchurl {
     inherit urls sha256;
diff --git a/pkgs/development/libraries/jarowinkler-cpp/default.nix b/pkgs/development/libraries/jarowinkler-cpp/default.nix
new file mode 100644
index 0000000000000..f89c54121ca1d
--- /dev/null
+++ b/pkgs/development/libraries/jarowinkler-cpp/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, catch2
+}:
+
+stdenv.mkDerivation rec {
+  pname = "jarowinkler-cpp";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "maxbachmann";
+    repo = "jarowinkler-cpp";
+    rev = "v${version}";
+    hash = "sha256-6dIyCyoPs/2wHyGqlE+NC0pwz5ggS5edhN4Jbltx0jg=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  cmakeFlags = lib.optionals doCheck [
+    "-DRAPIDFUZZ_BUILD_TESTING=ON"
+  ];
+
+  checkInputs = [
+    catch2
+  ];
+
+  # uses unreleased Catch2 version 3
+  doCheck = false;
+
+  meta = {
+    description = "Fast Jaro and Jaro-Winkler distance";
+    homepage = "https://github.com/maxbachmann/jarowinkler-cpp";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ dotlambda ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/jcal/default.nix b/pkgs/development/libraries/jcal/default.nix
index 4ce62ec67bc4a..354a5518c43dc 100644
--- a/pkgs/development/libraries/jcal/default.nix
+++ b/pkgs/development/libraries/jcal/default.nix
@@ -3,7 +3,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "jcal";
+  pname = "jcal";
   version = "0.4.1";
 
   src = fetchFromGitHub {
diff --git a/pkgs/development/libraries/jellyfin-ffmpeg/default.nix b/pkgs/development/libraries/jellyfin-ffmpeg/default.nix
new file mode 100644
index 0000000000000..925e58d6a327b
--- /dev/null
+++ b/pkgs/development/libraries/jellyfin-ffmpeg/default.nix
@@ -0,0 +1,30 @@
+{ ffmpeg_4, ffmpeg-full, fetchFromGitHub, lib }:
+
+(ffmpeg-full.override { ffmpeg = ffmpeg_4; }).overrideAttrs (old: rec {
+  name = "jellyfin-ffmpeg";
+  version = "4.4.1-4";
+
+  src = fetchFromGitHub {
+    owner = "jellyfin";
+    repo = "jellyfin-ffmpeg";
+    rev = "v${version}";
+    sha256 = "0y7iskamlx30f0zknbscpi308y685nbnbf5gr9cj1znr5dlfb0bn";
+  };
+
+  postPatch = ''
+    for file in $(cat debian/patches/series); do
+      patch -p1 < debian/patches/$file
+    done
+
+    ${old.postPatch or ""}
+  '';
+
+  doCheck = false; # https://github.com/jellyfin/jellyfin-ffmpeg/issues/79
+
+  meta = with lib; {
+    description = "${old.meta.description} (Jellyfin fork)";
+    homepage = "https://github.com/jellyfin/jellyfin-ffmpeg";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ justinas ];
+  };
+})
diff --git a/pkgs/development/libraries/jsoncpp/default.nix b/pkgs/development/libraries/jsoncpp/default.nix
index 9adf509f8aaa4..77d49c700030c 100644
--- a/pkgs/development/libraries/jsoncpp/default.nix
+++ b/pkgs/development/libraries/jsoncpp/default.nix
@@ -1,4 +1,13 @@
-{ lib, stdenv, fetchFromGitHub, cmake, python3, validatePkgConfig, fetchpatch }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, python3
+, validatePkgConfig
+, fetchpatch
+, secureMemory ? false
+, enableStatic ? stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation rec {
   pname = "jsoncpp";
@@ -30,6 +39,10 @@ stdenv.mkDerivation rec {
     export sourceRoot=${src.name}
   '';
 
+  postPatch = lib.optionalString secureMemory ''
+    sed -i 's/#define JSONCPP_USING_SECURE_MEMORY 0/#define JSONCPP_USING_SECURE_MEMORY 1/' include/json/version.h
+  '';
+
   # Hack to be able to run the test, broken because we use
   # CMAKE_SKIP_BUILD_RPATH to avoid cmake resetting rpath on install
   preBuild = if stdenv.isDarwin then ''
@@ -42,10 +55,21 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DBUILD_SHARED_LIBS=ON"
-    "-DBUILD_STATIC_LIBS=OFF"
     "-DBUILD_OBJECT_LIBS=OFF"
     "-DJSONCPP_WITH_CMAKE_PACKAGE=ON"
-  ] ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "-DJSONCPP_WITH_TESTS=OFF";
+  ]
+    # the test's won't compile if secureMemory is used because there is no
+    # comparison operators and conversion functions between
+    # std::basic_string<..., Json::SecureAllocator<char>> vs.
+    # std::basic_string<..., [default allocator]>
+    ++ lib.optional ((stdenv.buildPlatform != stdenv.hostPlatform) || secureMemory) "-DJSONCPP_WITH_TESTS=OFF"
+    ++ lib.optional (!enableStatic) "-DBUILD_STATIC_LIBS=OFF";
+
+  # this is fixed and no longer necessary in 1.9.5 but there they use
+  # memset_s without switching to a different c++ standard in the cmake files
+  postInstall = lib.optionalString enableStatic ''
+    (cd $out/lib && ln -sf libjsoncpp_static.a libjsoncpp.a)
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/open-source-parsers/jsoncpp";
diff --git a/pkgs/development/libraries/kde-frameworks/attica.nix b/pkgs/development/libraries/kde-frameworks/attica.nix
index 8c71afd5dcf79..dbe4dd14b8f5b 100644
--- a/pkgs/development/libraries/kde-frameworks/attica.nix
+++ b/pkgs/development/libraries/kde-frameworks/attica.nix
@@ -1,7 +1,7 @@
 { mkDerivation, extra-cmake-modules, qtbase }:
 
 mkDerivation {
-  name = "attica";
+  pname = "attica";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtbase ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/baloo.nix b/pkgs/development/libraries/kde-frameworks/baloo.nix
index 0c8f181a188a3..d608785027e84 100644
--- a/pkgs/development/libraries/kde-frameworks/baloo.nix
+++ b/pkgs/development/libraries/kde-frameworks/baloo.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "baloo";
+  pname = "baloo";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kauth kconfig kcrash kdbusaddons ki18n kio kidletime lmdb qtdeclarative
diff --git a/pkgs/development/libraries/kde-frameworks/bluez-qt.nix b/pkgs/development/libraries/kde-frameworks/bluez-qt.nix
index c5764b4915edf..c07553f8493f7 100644
--- a/pkgs/development/libraries/kde-frameworks/bluez-qt.nix
+++ b/pkgs/development/libraries/kde-frameworks/bluez-qt.nix
@@ -4,7 +4,7 @@
 }:
 
 mkDerivation {
-  name = "bluez-qt";
+  pname = "bluez-qt";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtdeclarative ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/breeze-icons.nix b/pkgs/development/libraries/kde-frameworks/breeze-icons.nix
index 6e79a45ea921a..7fd482ea0da0a 100644
--- a/pkgs/development/libraries/kde-frameworks/breeze-icons.nix
+++ b/pkgs/development/libraries/kde-frameworks/breeze-icons.nix
@@ -1,7 +1,7 @@
 { mkDerivation, extra-cmake-modules, gtk3, qtsvg, hicolor-icon-theme }:
 
 mkDerivation {
-  name = "breeze-icons";
+  pname = "breeze-icons";
   nativeBuildInputs = [ extra-cmake-modules gtk3 ];
   buildInputs = [ qtsvg ];
   propagatedBuildInputs = [
diff --git a/pkgs/development/libraries/kde-frameworks/default.nix b/pkgs/development/libraries/kde-frameworks/default.nix
index a5b0bfdae8def..9732fcb663df6 100644
--- a/pkgs/development/libraries/kde-frameworks/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/default.nix
@@ -70,8 +70,8 @@ let
         mkDerivation = args:
           let
 
-            inherit (args) name;
-            inherit (srcs.${name}) src version;
+            inherit (args) pname;
+            inherit (srcs.${pname}) src version;
 
             outputs = args.outputs or [ "bin" "dev" "out" ];
             hasSeparateDev = lib.elem "dev" outputs;
@@ -82,7 +82,7 @@ let
             meta =
               let meta = args.meta or {}; in
               meta // {
-                homepage = meta.homepage or "http://www.kde.org";
+                homepage = meta.homepage or "https://kde.org";
                 license = meta.license or license;
                 maintainers = (meta.maintainers or []) ++ maintainers;
                 platforms = meta.platforms or lib.platforms.linux;
@@ -90,8 +90,7 @@ let
               };
 
           in mkDerivation (args // {
-            name = "${name}-${version}";
-            inherit meta outputs setupHook src version;
+            inherit pname meta outputs setupHook src version;
           });
 
       };
diff --git a/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix b/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix
index b74fb29e5f2a3..b274999010a26 100644
--- a/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, cmake, pkg-config }:
 
 mkDerivation {
-  name = "extra-cmake-modules";
+  pname = "extra-cmake-modules";
 
   patches = [
     ./nix-lib-path.patch
diff --git a/pkgs/development/libraries/kde-frameworks/fetch.sh b/pkgs/development/libraries/kde-frameworks/fetch.sh
index cb4e4cc262981..50a0489529ec3 100644
--- a/pkgs/development/libraries/kde-frameworks/fetch.sh
+++ b/pkgs/development/libraries/kde-frameworks/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/frameworks/5.91/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/frameworks/5.93/ -A '*.tar.xz' )
diff --git a/pkgs/development/libraries/kde-frameworks/frameworkintegration.nix b/pkgs/development/libraries/kde-frameworks/frameworkintegration.nix
index c49eab2763c5e..6cb700c77744c 100644
--- a/pkgs/development/libraries/kde-frameworks/frameworkintegration.nix
+++ b/pkgs/development/libraries/kde-frameworks/frameworkintegration.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "frameworkintegration";
+  pname = "frameworkintegration";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kbookmarks kcompletion kconfig ki18n kio knewstuff knotifications kpackage
diff --git a/pkgs/development/libraries/kde-frameworks/kactivities-stats.nix b/pkgs/development/libraries/kde-frameworks/kactivities-stats.nix
index 88fde8c5fd6d3..63a5b03572417 100644
--- a/pkgs/development/libraries/kde-frameworks/kactivities-stats.nix
+++ b/pkgs/development/libraries/kde-frameworks/kactivities-stats.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kactivities-stats";
+  pname = "kactivities-stats";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ boost kactivities kconfig ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kactivities.nix b/pkgs/development/libraries/kde-frameworks/kactivities.nix
index b53de41455adb..f2f5d09cc8e67 100644
--- a/pkgs/development/libraries/kde-frameworks/kactivities.nix
+++ b/pkgs/development/libraries/kde-frameworks/kactivities.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kactivities";
+  pname = "kactivities";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     boost kconfig kcoreaddons kio kwindowsystem qtdeclarative
diff --git a/pkgs/development/libraries/kde-frameworks/kapidox.nix b/pkgs/development/libraries/kde-frameworks/kapidox.nix
index 381dacaf49614..8d3e89935f8b7 100644
--- a/pkgs/development/libraries/kde-frameworks/kapidox.nix
+++ b/pkgs/development/libraries/kde-frameworks/kapidox.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, python3 }:
 
 mkDerivation {
-  name = "kapidox";
+  pname = "kapidox";
   nativeBuildInputs = [ extra-cmake-modules python3 python3.pkgs.setuptools ];
   postFixup = ''
     moveToOutput bin $bin
diff --git a/pkgs/development/libraries/kde-frameworks/karchive.nix b/pkgs/development/libraries/kde-frameworks/karchive.nix
index bd010f3f11cf2..822b28f3deea1 100644
--- a/pkgs/development/libraries/kde-frameworks/karchive.nix
+++ b/pkgs/development/libraries/kde-frameworks/karchive.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "karchive";
+  pname = "karchive";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ bzip2 xz zlib zstd ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kauth/default.nix b/pkgs/development/libraries/kde-frameworks/kauth/default.nix
index 93c81525a1483..f5ab518ce6213 100644
--- a/pkgs/development/libraries/kde-frameworks/kauth/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kauth/default.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kauth";
+  pname = "kauth";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = lib.optional enablePolkit polkit-qt ++ [ qttools ];
   propagatedBuildInputs = [ kcoreaddons ];
diff --git a/pkgs/development/libraries/kde-frameworks/kbookmarks.nix b/pkgs/development/libraries/kde-frameworks/kbookmarks.nix
index 4d68c3694bd37..1c45a4acb097f 100644
--- a/pkgs/development/libraries/kde-frameworks/kbookmarks.nix
+++ b/pkgs/development/libraries/kde-frameworks/kbookmarks.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kbookmarks";
+  pname = "kbookmarks";
   nativeBuildInputs = [ extra-cmake-modules qttools ];
   buildInputs = [
     kcodecs kconfig kconfigwidgets kcoreaddons kiconthemes kxmlgui
diff --git a/pkgs/development/libraries/kde-frameworks/kcalendarcore.nix b/pkgs/development/libraries/kde-frameworks/kcalendarcore.nix
index f4f2b05ad7367..3f02765af8ea0 100644
--- a/pkgs/development/libraries/kde-frameworks/kcalendarcore.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcalendarcore.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kcalendarcore";
+  pname = "kcalendarcore";
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [ libical ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix b/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
index 22e2929ae0cb3..f965256ce3d4b 100644
--- a/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kcmutils";
+  pname = "kcmutils";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kcoreaddons kdeclarative ki18n kiconthemes kitemviews kpackage kxmlgui
diff --git a/pkgs/development/libraries/kde-frameworks/kcodecs.nix b/pkgs/development/libraries/kde-frameworks/kcodecs.nix
index a62135150a0fe..69a9e812494e6 100644
--- a/pkgs/development/libraries/kde-frameworks/kcodecs.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcodecs.nix
@@ -1,7 +1,7 @@
 { mkDerivation, extra-cmake-modules, qtbase, qttools, gperf }:
 
 mkDerivation {
-  name = "kcodecs";
+  pname = "kcodecs";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qttools gperf ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kcompletion.nix b/pkgs/development/libraries/kde-frameworks/kcompletion.nix
index ffa612ffaa190..28b4715f98f94 100644
--- a/pkgs/development/libraries/kde-frameworks/kcompletion.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcompletion.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kcompletion";
+  pname = "kcompletion";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kconfig kwidgetsaddons qttools ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kconfig.nix b/pkgs/development/libraries/kde-frameworks/kconfig.nix
index ba16e97ef3a6e..76d9a85e649cb 100644
--- a/pkgs/development/libraries/kde-frameworks/kconfig.nix
+++ b/pkgs/development/libraries/kde-frameworks/kconfig.nix
@@ -1,7 +1,7 @@
 { mkDerivation, extra-cmake-modules, qtbase, qttools }:
 
 mkDerivation {
-  name = "kconfig";
+  pname = "kconfig";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qttools ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kconfigwidgets/default.nix b/pkgs/development/libraries/kde-frameworks/kconfigwidgets/default.nix
index fc10f3070b641..e9b283ebc318c 100644
--- a/pkgs/development/libraries/kde-frameworks/kconfigwidgets/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kconfigwidgets/default.nix
@@ -4,7 +4,7 @@
 }:
 
 mkDerivation {
-  name = "kconfigwidgets";
+  pname = "kconfigwidgets";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ kguiaddons ki18n qtbase qttools ];
   propagatedBuildInputs = [ kauth kcodecs kconfig kwidgetsaddons ];
diff --git a/pkgs/development/libraries/kde-frameworks/kcontacts.nix b/pkgs/development/libraries/kde-frameworks/kcontacts.nix
index 56887b775f4ac..0d26d064dd2b7 100644
--- a/pkgs/development/libraries/kde-frameworks/kcontacts.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcontacts.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kcontacts";
+  pname = "kcontacts";
   meta = {
     license = [ lib.licenses.lgpl21 ];
   };
diff --git a/pkgs/development/libraries/kde-frameworks/kcoreaddons.nix b/pkgs/development/libraries/kde-frameworks/kcoreaddons.nix
index a2102c7d73231..f790d802c0ca4 100644
--- a/pkgs/development/libraries/kde-frameworks/kcoreaddons.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcoreaddons.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kcoreaddons";
+  pname = "kcoreaddons";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qttools shared-mime-info ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kcrash.nix b/pkgs/development/libraries/kde-frameworks/kcrash.nix
index 27dc6d65edff5..4658ab5c6daee 100644
--- a/pkgs/development/libraries/kde-frameworks/kcrash.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcrash.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kcrash";
+  pname = "kcrash";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kcoreaddons kwindowsystem qtx11extras ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kdav.nix b/pkgs/development/libraries/kde-frameworks/kdav.nix
index a03cca3fdf265..92d57158e3209 100644
--- a/pkgs/development/libraries/kde-frameworks/kdav.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdav.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kdav";
+  pname = "kdav";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
   };
diff --git a/pkgs/development/libraries/kde-frameworks/kdbusaddons.nix b/pkgs/development/libraries/kde-frameworks/kdbusaddons.nix
index 5c435b4454145..b123129cf8d17 100644
--- a/pkgs/development/libraries/kde-frameworks/kdbusaddons.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdbusaddons.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kdbusaddons";
+  pname = "kdbusaddons";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qttools qtx11extras ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kdeclarative.nix b/pkgs/development/libraries/kde-frameworks/kdeclarative.nix
index 1389df5eb1528..08f7cb5d3785b 100644
--- a/pkgs/development/libraries/kde-frameworks/kdeclarative.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdeclarative.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kdeclarative";
+  pname = "kdeclarative";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     libepoxy kglobalaccel kguiaddons ki18n kiconthemes kio kwidgetsaddons
diff --git a/pkgs/development/libraries/kde-frameworks/kded.nix b/pkgs/development/libraries/kde-frameworks/kded.nix
index 250a999f4d6cf..180d508acc58c 100644
--- a/pkgs/development/libraries/kde-frameworks/kded.nix
+++ b/pkgs/development/libraries/kde-frameworks/kded.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kded";
+  pname = "kded";
   nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
   buildInputs = [
     gsettings-desktop-schemas kconfig kcoreaddons kcrash kdbusaddons
diff --git a/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix b/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix
index 392aa9ea90257..1e7b30738752e 100644
--- a/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix
@@ -9,7 +9,7 @@
 }:
 
 mkDerivation {
-  name = "kdelibs4support";
+  pname = "kdelibs4support";
   patches = [
     ./nix-kde-include-dir.patch
   ];
diff --git a/pkgs/development/libraries/kde-frameworks/kdesignerplugin.nix b/pkgs/development/libraries/kde-frameworks/kdesignerplugin.nix
index f1305274070f0..6244b82397a25 100644
--- a/pkgs/development/libraries/kde-frameworks/kdesignerplugin.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdesignerplugin.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kdesignerplugin";
+  pname = "kdesignerplugin";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kcompletion kconfig kconfigwidgets kcoreaddons kiconthemes kio kitemviews
diff --git a/pkgs/development/libraries/kde-frameworks/kdesu/default.nix b/pkgs/development/libraries/kde-frameworks/kdesu/default.nix
index 9a5f5a6942a84..fe506401da4e6 100644
--- a/pkgs/development/libraries/kde-frameworks/kdesu/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdesu/default.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kdesu";
+  pname = "kdesu";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kcoreaddons ki18n kpty kservice qtbase ];
   propagatedBuildInputs = [ kpty ];
diff --git a/pkgs/development/libraries/kde-frameworks/kdewebkit.nix b/pkgs/development/libraries/kde-frameworks/kdewebkit.nix
index 9f682b4497529..b6d548cabfcd1 100644
--- a/pkgs/development/libraries/kde-frameworks/kdewebkit.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdewebkit.nix
@@ -3,7 +3,7 @@
 }:
 
 mkDerivation {
-  name = "kdewebkit";
+  pname = "kdewebkit";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kconfig kcoreaddons kio kparts ];
   propagatedBuildInputs = [ qtwebkit ];
diff --git a/pkgs/development/libraries/kde-frameworks/kdnssd.nix b/pkgs/development/libraries/kde-frameworks/kdnssd.nix
index 8bb59bb36dba6..545057e7ef1f6 100644
--- a/pkgs/development/libraries/kde-frameworks/kdnssd.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdnssd.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kdnssd";
+  pname = "kdnssd";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ avahi qttools ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kdoctools/default.nix b/pkgs/development/libraries/kde-frameworks/kdoctools/default.nix
index a87bef40b1e23..83f3a04ee36ad 100644
--- a/pkgs/development/libraries/kde-frameworks/kdoctools/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdoctools/default.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kdoctools";
+  pname = "kdoctools";
   nativeBuildInputs = [
     extra-cmake-modules
     # The build system insists on having native Perl.
diff --git a/pkgs/development/libraries/kde-frameworks/kemoticons.nix b/pkgs/development/libraries/kde-frameworks/kemoticons.nix
index 66a0889b13d27..67613d274a75c 100644
--- a/pkgs/development/libraries/kde-frameworks/kemoticons.nix
+++ b/pkgs/development/libraries/kde-frameworks/kemoticons.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kemoticons";
+  pname = "kemoticons";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ karchive kcoreaddons ];
   propagatedBuildInputs = [ kservice qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix b/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
index 7c16dcf465073..782b033221430 100644
--- a/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
@@ -15,7 +15,7 @@
 }:
 
 mkDerivation {
-  name = "kfilemetadata";
+  pname = "kfilemetadata";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     attr
diff --git a/pkgs/development/libraries/kde-frameworks/kglobalaccel.nix b/pkgs/development/libraries/kde-frameworks/kglobalaccel.nix
index 7001c98ee00f0..ab181b8d902d6 100644
--- a/pkgs/development/libraries/kde-frameworks/kglobalaccel.nix
+++ b/pkgs/development/libraries/kde-frameworks/kglobalaccel.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kglobalaccel";
+  pname = "kglobalaccel";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kconfig kcoreaddons kcrash kdbusaddons kservice kwindowsystem qttools
diff --git a/pkgs/development/libraries/kde-frameworks/kguiaddons.nix b/pkgs/development/libraries/kde-frameworks/kguiaddons.nix
index bcd18ab614b66..d3575717592d7 100644
--- a/pkgs/development/libraries/kde-frameworks/kguiaddons.nix
+++ b/pkgs/development/libraries/kde-frameworks/kguiaddons.nix
@@ -4,7 +4,7 @@
 }:
 
 mkDerivation {
-  name = "kguiaddons";
+  pname = "kguiaddons";
 
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtx11extras wayland ];
diff --git a/pkgs/development/libraries/kde-frameworks/kholidays.nix b/pkgs/development/libraries/kde-frameworks/kholidays.nix
index 2ede69e74953d..9484dece57ed9 100644
--- a/pkgs/development/libraries/kde-frameworks/kholidays.nix
+++ b/pkgs/development/libraries/kde-frameworks/kholidays.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kholidays";
+  pname = "kholidays";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = with lib.maintainers; [ bkchr ];
diff --git a/pkgs/development/libraries/kde-frameworks/khtml.nix b/pkgs/development/libraries/kde-frameworks/khtml.nix
index 3ef3a043c4e12..9677ffb78a5ef 100644
--- a/pkgs/development/libraries/kde-frameworks/khtml.nix
+++ b/pkgs/development/libraries/kde-frameworks/khtml.nix
@@ -7,7 +7,7 @@
 }:
 
 mkDerivation {
-  name = "khtml";
+  pname = "khtml";
   nativeBuildInputs = [ extra-cmake-modules perl ];
   buildInputs = [
     giflib karchive kcodecs kglobalaccel ki18n kiconthemes kio knotifications
diff --git a/pkgs/development/libraries/kde-frameworks/ki18n.nix b/pkgs/development/libraries/kde-frameworks/ki18n.nix
index 46f502d06bb4d..be8016155b87b 100644
--- a/pkgs/development/libraries/kde-frameworks/ki18n.nix
+++ b/pkgs/development/libraries/kde-frameworks/ki18n.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "ki18n";
+  pname = "ki18n";
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedNativeBuildInputs = [ gettext python3 ];
   buildInputs = [ qtdeclarative qtscript ];
diff --git a/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix b/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix
index 122f3108da446..f807193718d5a 100644
--- a/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kiconthemes";
+  pname = "kiconthemes";
   patches = [
     ./default-theme-breeze.patch
   ];
diff --git a/pkgs/development/libraries/kde-frameworks/kidletime.nix b/pkgs/development/libraries/kde-frameworks/kidletime.nix
index 2678cf0804eb6..6379a5e2e31b8 100644
--- a/pkgs/development/libraries/kde-frameworks/kidletime.nix
+++ b/pkgs/development/libraries/kde-frameworks/kidletime.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kidletime";
+  pname = "kidletime";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtx11extras ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kimageformats.nix b/pkgs/development/libraries/kde-frameworks/kimageformats.nix
index 97b413e805c6e..86026bf50f457 100644
--- a/pkgs/development/libraries/kde-frameworks/kimageformats.nix
+++ b/pkgs/development/libraries/kde-frameworks/kimageformats.nix
@@ -7,7 +7,7 @@
 let inherit (lib) getDev; in
 
 mkDerivation {
-  name = "kimageformats";
+  pname = "kimageformats";
 
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ karchive openexr libavif qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kinit/default.nix b/pkgs/development/libraries/kde-frameworks/kinit/default.nix
index dcd84f1f35a1d..9acd56f324cbc 100644
--- a/pkgs/development/libraries/kde-frameworks/kinit/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kinit/default.nix
@@ -7,7 +7,7 @@
 let inherit (lib) getLib; in
 
 mkDerivation {
-  name = "kinit";
+  pname = "kinit";
   outputs = [ "out" "dev" ];
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
diff --git a/pkgs/development/libraries/kde-frameworks/kio/default.nix b/pkgs/development/libraries/kde-frameworks/kio/default.nix
index 5c05e0159b5be..7b2815945c8c3 100644
--- a/pkgs/development/libraries/kde-frameworks/kio/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kio/default.nix
@@ -9,7 +9,7 @@
 }:
 
 mkDerivation {
-  name = "kio";
+  pname = "kio";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     karchive kconfigwidgets kdbusaddons ki18n kiconthemes knotifications
diff --git a/pkgs/development/libraries/kde-frameworks/kirigami2.nix b/pkgs/development/libraries/kde-frameworks/kirigami2.nix
index bb5a5a3fc80f3..281a490bf90aa 100644
--- a/pkgs/development/libraries/kde-frameworks/kirigami2.nix
+++ b/pkgs/development/libraries/kde-frameworks/kirigami2.nix
@@ -1,7 +1,7 @@
 { mkDerivation, extra-cmake-modules, qtbase, qtquickcontrols2, qttranslations, qtgraphicaleffects }:
 
 mkDerivation {
-  name = "kirigami2";
+  pname = "kirigami2";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtbase qtquickcontrols2 qttranslations qtgraphicaleffects ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/kitemmodels.nix b/pkgs/development/libraries/kde-frameworks/kitemmodels.nix
index 0f398b0f57d19..8abed8aaa0903 100644
--- a/pkgs/development/libraries/kde-frameworks/kitemmodels.nix
+++ b/pkgs/development/libraries/kde-frameworks/kitemmodels.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kitemmodels";
+  pname = "kitemmodels";
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [ qtbase ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/kitemviews.nix b/pkgs/development/libraries/kde-frameworks/kitemviews.nix
index 0e772978e1919..ef350835f05df 100644
--- a/pkgs/development/libraries/kde-frameworks/kitemviews.nix
+++ b/pkgs/development/libraries/kde-frameworks/kitemviews.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kitemviews";
+  pname = "kitemviews";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qttools ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kjobwidgets.nix b/pkgs/development/libraries/kde-frameworks/kjobwidgets.nix
index 2e116b7bb7935..a4a6d5bb10258 100644
--- a/pkgs/development/libraries/kde-frameworks/kjobwidgets.nix
+++ b/pkgs/development/libraries/kde-frameworks/kjobwidgets.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kjobwidgets";
+  pname = "kjobwidgets";
   nativeBuildInputs = [ extra-cmake-modules qttools ];
   buildInputs = [ kcoreaddons kwidgetsaddons qtx11extras ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kjs.nix b/pkgs/development/libraries/kde-frameworks/kjs.nix
index 33aeb284e167b..a0f9853237470 100644
--- a/pkgs/development/libraries/kde-frameworks/kjs.nix
+++ b/pkgs/development/libraries/kde-frameworks/kjs.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kjs";
+  pname = "kjs";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ pcre qtbase ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kjsembed.nix b/pkgs/development/libraries/kde-frameworks/kjsembed.nix
index f552f963513d9..576727e81d2f8 100644
--- a/pkgs/development/libraries/kde-frameworks/kjsembed.nix
+++ b/pkgs/development/libraries/kde-frameworks/kjsembed.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kjsembed";
+  pname = "kjsembed";
   nativeBuildInputs = [ extra-cmake-modules kdoctools qttools ];
   buildInputs = [ ki18n qtsvg ];
   propagatedBuildInputs = [ kjs ];
diff --git a/pkgs/development/libraries/kde-frameworks/kmediaplayer.nix b/pkgs/development/libraries/kde-frameworks/kmediaplayer.nix
index 5de26e0c8dcb2..f92c22956511c 100644
--- a/pkgs/development/libraries/kde-frameworks/kmediaplayer.nix
+++ b/pkgs/development/libraries/kde-frameworks/kmediaplayer.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kmediaplayer";
+  pname = "kmediaplayer";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kparts kxmlgui ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix b/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix
index 6d170c0bb129f..6e554b5faaadf 100644
--- a/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix
@@ -7,7 +7,7 @@
 }:
 
 mkDerivation {
-  name = "knewstuff";
+  pname = "knewstuff";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     karchive kcompletion kconfig kcoreaddons ki18n kiconthemes kio kitemviews
diff --git a/pkgs/development/libraries/kde-frameworks/knotifications.nix b/pkgs/development/libraries/kde-frameworks/knotifications.nix
index d1a809d9f5169..363ca46d10aeb 100644
--- a/pkgs/development/libraries/kde-frameworks/knotifications.nix
+++ b/pkgs/development/libraries/kde-frameworks/knotifications.nix
@@ -7,7 +7,7 @@
 }:
 
 mkDerivation {
-  name = "knotifications";
+  pname = "knotifications";
   nativeBuildInputs = [ extra-cmake-modules qttools ];
   buildInputs = [
     kcodecs kconfig kcoreaddons kwindowsystem libdbusmenu phonon qtx11extras
diff --git a/pkgs/development/libraries/kde-frameworks/knotifyconfig.nix b/pkgs/development/libraries/kde-frameworks/knotifyconfig.nix
index 1971e3e8039b3..b2415d731ff04 100644
--- a/pkgs/development/libraries/kde-frameworks/knotifyconfig.nix
+++ b/pkgs/development/libraries/kde-frameworks/knotifyconfig.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "knotifyconfig";
+  pname = "knotifyconfig";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kcompletion kconfig ki18n kio phonon ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kpackage/default.nix b/pkgs/development/libraries/kde-frameworks/kpackage/default.nix
index d4edc09b2f00f..c1d9bf387fc5f 100644
--- a/pkgs/development/libraries/kde-frameworks/kpackage/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kpackage/default.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kpackage";
+  pname = "kpackage";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ karchive kconfig kcoreaddons ki18n qtbase ];
   patches = [
diff --git a/pkgs/development/libraries/kde-frameworks/kparts.nix b/pkgs/development/libraries/kde-frameworks/kparts.nix
index e1d2a156160df..682c2da63132b 100644
--- a/pkgs/development/libraries/kde-frameworks/kparts.nix
+++ b/pkgs/development/libraries/kde-frameworks/kparts.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kparts";
+  pname = "kparts";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kconfig kcoreaddons ki18n kiconthemes kjobwidgets knotifications kservice
diff --git a/pkgs/development/libraries/kde-frameworks/kpeople.nix b/pkgs/development/libraries/kde-frameworks/kpeople.nix
index 52c16ea2b9c27..433cc6b6e1138 100644
--- a/pkgs/development/libraries/kde-frameworks/kpeople.nix
+++ b/pkgs/development/libraries/kde-frameworks/kpeople.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kpeople";
+  pname = "kpeople";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kcoreaddons ki18n kitemviews kservice kwidgetsaddons qtdeclarative
diff --git a/pkgs/development/libraries/kde-frameworks/kplotting.nix b/pkgs/development/libraries/kde-frameworks/kplotting.nix
index 68df24d0087b6..eb26b252566b6 100644
--- a/pkgs/development/libraries/kde-frameworks/kplotting.nix
+++ b/pkgs/development/libraries/kde-frameworks/kplotting.nix
@@ -3,7 +3,7 @@
 }:
 
 mkDerivation {
-  name = "kplotting";
+  pname = "kplotting";
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [ qtbase qttools ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/kpty.nix b/pkgs/development/libraries/kde-frameworks/kpty.nix
index 2456f4e22fab3..239407d6abdfe 100644
--- a/pkgs/development/libraries/kde-frameworks/kpty.nix
+++ b/pkgs/development/libraries/kde-frameworks/kpty.nix
@@ -1,7 +1,7 @@
 { mkDerivation, extra-cmake-modules, kcoreaddons, ki18n, qtbase, }:
 
 mkDerivation {
-  name = "kpty";
+  pname = "kpty";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kcoreaddons ki18n qtbase ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/kquickcharts.nix b/pkgs/development/libraries/kde-frameworks/kquickcharts.nix
index 0ae30be653d49..20c1b2368a7b5 100644
--- a/pkgs/development/libraries/kde-frameworks/kquickcharts.nix
+++ b/pkgs/development/libraries/kde-frameworks/kquickcharts.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kquickcharts";
+  pname = "kquickcharts";
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [ qtquickcontrols2 ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/kross.nix b/pkgs/development/libraries/kde-frameworks/kross.nix
index 189e100aa70c1..7cc083e5a261d 100644
--- a/pkgs/development/libraries/kde-frameworks/kross.nix
+++ b/pkgs/development/libraries/kde-frameworks/kross.nix
@@ -4,7 +4,7 @@
 }:
 
 mkDerivation {
-  name = "kross";
+  pname = "kross";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ kcompletion kcoreaddons kxmlgui ];
   propagatedBuildInputs = [
diff --git a/pkgs/development/libraries/kde-frameworks/krunner.nix b/pkgs/development/libraries/kde-frameworks/krunner.nix
index 7db7c61db466f..a56e56a2fe092 100644
--- a/pkgs/development/libraries/kde-frameworks/krunner.nix
+++ b/pkgs/development/libraries/kde-frameworks/krunner.nix
@@ -7,7 +7,7 @@
 
 let
   self = mkDerivation {
-    name = "krunner";
+    pname = "krunner";
     nativeBuildInputs = [ extra-cmake-modules ];
     buildInputs = [
       kconfig kcoreaddons ki18n kio kservice qtdeclarative solid
diff --git a/pkgs/development/libraries/kde-frameworks/kservice/default.nix b/pkgs/development/libraries/kde-frameworks/kservice/default.nix
index c1488f728dd66..008c52cf07850 100644
--- a/pkgs/development/libraries/kde-frameworks/kservice/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kservice/default.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kservice";
+  pname = "kservice";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   propagatedNativeBuildInputs = [ bison flex ];
   buildInputs = [
diff --git a/pkgs/development/libraries/kde-frameworks/ktexteditor.nix b/pkgs/development/libraries/kde-frameworks/ktexteditor.nix
index 6a74dca7b4bd0..5788c07cb05ce 100644
--- a/pkgs/development/libraries/kde-frameworks/ktexteditor.nix
+++ b/pkgs/development/libraries/kde-frameworks/ktexteditor.nix
@@ -7,7 +7,7 @@
 }:
 
 mkDerivation {
-  name = "ktexteditor";
+  pname = "ktexteditor";
   nativeBuildInputs = [ extra-cmake-modules perl ];
   buildInputs = [
     karchive kconfig kguiaddons ki18n kiconthemes kio libgit2 qtscript
diff --git a/pkgs/development/libraries/kde-frameworks/ktextwidgets.nix b/pkgs/development/libraries/kde-frameworks/ktextwidgets.nix
index 653d0ac8899bd..6ce7aa88c3a6e 100644
--- a/pkgs/development/libraries/kde-frameworks/ktextwidgets.nix
+++ b/pkgs/development/libraries/kde-frameworks/ktextwidgets.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "ktextwidgets";
+  pname = "ktextwidgets";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kcompletion kconfig kconfigwidgets kiconthemes kservice kwindowsystem
diff --git a/pkgs/development/libraries/kde-frameworks/kunitconversion.nix b/pkgs/development/libraries/kde-frameworks/kunitconversion.nix
index de0d9aab922ee..aa4c87a1e5f92 100644
--- a/pkgs/development/libraries/kde-frameworks/kunitconversion.nix
+++ b/pkgs/development/libraries/kde-frameworks/kunitconversion.nix
@@ -1,7 +1,7 @@
 { mkDerivation, extra-cmake-modules, ki18n, qtbase, }:
 
 mkDerivation {
-  name = "kunitconversion";
+  pname = "kunitconversion";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ ki18n qtbase ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/kwallet.nix b/pkgs/development/libraries/kde-frameworks/kwallet.nix
index f93f0437dbd1d..e2a54a03f6e6b 100644
--- a/pkgs/development/libraries/kde-frameworks/kwallet.nix
+++ b/pkgs/development/libraries/kde-frameworks/kwallet.nix
@@ -7,7 +7,7 @@
 }:
 
 mkDerivation {
-  name = "kwallet";
+  pname = "kwallet";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kconfig kconfigwidgets kcoreaddons kdbusaddons ki18n kiconthemes
diff --git a/pkgs/development/libraries/kde-frameworks/kwayland.nix b/pkgs/development/libraries/kde-frameworks/kwayland.nix
index 749735c4ad581..6a070d227808d 100644
--- a/pkgs/development/libraries/kde-frameworks/kwayland.nix
+++ b/pkgs/development/libraries/kde-frameworks/kwayland.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kwayland";
+  pname = "kwayland";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ plasma-wayland-protocols wayland wayland-protocols ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix b/pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix
index ee347df18ab86..0fead3bfd6ba3 100644
--- a/pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix
+++ b/pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kwidgetsaddons";
+  pname = "kwidgetsaddons";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qttools ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix b/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
index 7643572a7ec02..ec102dbb342a5 100644
--- a/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kwindowsystem";
+  pname = "kwindowsystem";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ libpthreadstubs libXdmcp qttools qtx11extras ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kxmlgui.nix b/pkgs/development/libraries/kde-frameworks/kxmlgui.nix
index 0b29158e4b06a..c666edbc196d8 100644
--- a/pkgs/development/libraries/kde-frameworks/kxmlgui.nix
+++ b/pkgs/development/libraries/kde-frameworks/kxmlgui.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kxmlgui";
+  pname = "kxmlgui";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     attica kglobalaccel ki18n kiconthemes kitemviews ktextwidgets kwindowsystem
diff --git a/pkgs/development/libraries/kde-frameworks/kxmlrpcclient.nix b/pkgs/development/libraries/kde-frameworks/kxmlrpcclient.nix
index aa334d69ef1d3..3b2d869d17772 100644
--- a/pkgs/development/libraries/kde-frameworks/kxmlrpcclient.nix
+++ b/pkgs/development/libraries/kde-frameworks/kxmlrpcclient.nix
@@ -1,7 +1,7 @@
 { mkDerivation, extra-cmake-modules, ki18n, kio }:
 
 mkDerivation {
-  name = "kxmlrpcclient";
+  pname = "kxmlrpcclient";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ ki18n ];
   propagatedBuildInputs = [ kio ];
diff --git a/pkgs/development/libraries/kde-frameworks/modemmanager-qt.nix b/pkgs/development/libraries/kde-frameworks/modemmanager-qt.nix
index 5ecb5317cfcc4..507e24e8f61e5 100644
--- a/pkgs/development/libraries/kde-frameworks/modemmanager-qt.nix
+++ b/pkgs/development/libraries/kde-frameworks/modemmanager-qt.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "modemmanager-qt";
+  pname = "modemmanager-qt";
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [ modemmanager qtbase ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/networkmanager-qt.nix b/pkgs/development/libraries/kde-frameworks/networkmanager-qt.nix
index 2ff4b2c2b4081..b79c79b084daf 100644
--- a/pkgs/development/libraries/kde-frameworks/networkmanager-qt.nix
+++ b/pkgs/development/libraries/kde-frameworks/networkmanager-qt.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "networkmanager-qt";
+  pname = "networkmanager-qt";
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [ networkmanager qtbase ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/oxygen-icons5.nix b/pkgs/development/libraries/kde-frameworks/oxygen-icons5.nix
index 32b219ab7e1cb..7121944d5d39f 100644
--- a/pkgs/development/libraries/kde-frameworks/oxygen-icons5.nix
+++ b/pkgs/development/libraries/kde-frameworks/oxygen-icons5.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "oxygen-icons5";
+  pname = "oxygen-icons5";
   meta.license = lib.licenses.lgpl3Plus;
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/plasma-framework.nix b/pkgs/development/libraries/kde-frameworks/plasma-framework.nix
index 12540b07007c1..cf118beaabce7 100644
--- a/pkgs/development/libraries/kde-frameworks/plasma-framework.nix
+++ b/pkgs/development/libraries/kde-frameworks/plasma-framework.nix
@@ -8,7 +8,7 @@
 }:
 
 mkDerivation {
-  name = "plasma-framework";
+  pname = "plasma-framework";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kactivities karchive kconfig kconfigwidgets kcoreaddons kdbusaddons
diff --git a/pkgs/development/libraries/kde-frameworks/prison.nix b/pkgs/development/libraries/kde-frameworks/prison.nix
index 670fd02d6161b..c2063e22bba76 100644
--- a/pkgs/development/libraries/kde-frameworks/prison.nix
+++ b/pkgs/development/libraries/kde-frameworks/prison.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "prison";
+  pname = "prison";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ libdmtx qrencode ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/purpose.nix b/pkgs/development/libraries/kde-frameworks/purpose.nix
index 0f376ce9ec3af..ee4e9584641c1 100644
--- a/pkgs/development/libraries/kde-frameworks/purpose.nix
+++ b/pkgs/development/libraries/kde-frameworks/purpose.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "purpose";
+  pname = "purpose";
   nativeBuildInputs = [ extra-cmake-modules intltool ];
   buildInputs = [
     qtbase accounts-qt qtdeclarative kaccounts-integration kconfig kcoreaddons
diff --git a/pkgs/development/libraries/kde-frameworks/qqc2-desktop-style.nix b/pkgs/development/libraries/kde-frameworks/qqc2-desktop-style.nix
index e400967407c69..6d8635c4f2837 100644
--- a/pkgs/development/libraries/kde-frameworks/qqc2-desktop-style.nix
+++ b/pkgs/development/libraries/kde-frameworks/qqc2-desktop-style.nix
@@ -8,7 +8,7 @@
 }:
 
 mkDerivation {
-  name = "qqc2-desktop-style";
+  pname = "qqc2-desktop-style";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtx11extras qtquickcontrols2 kconfig kiconthemes kirigami2 ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/solid.nix b/pkgs/development/libraries/kde-frameworks/solid.nix
index aa1b1ebe34581..69ef8c8adca3f 100644
--- a/pkgs/development/libraries/kde-frameworks/solid.nix
+++ b/pkgs/development/libraries/kde-frameworks/solid.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "solid";
+  pname = "solid";
   nativeBuildInputs = [ bison extra-cmake-modules flex media-player-info ];
   buildInputs = [ qtdeclarative qttools ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/sonnet.nix b/pkgs/development/libraries/kde-frameworks/sonnet.nix
index 2eff7bad24029..78aa189559fc4 100644
--- a/pkgs/development/libraries/kde-frameworks/sonnet.nix
+++ b/pkgs/development/libraries/kde-frameworks/sonnet.nix
@@ -4,7 +4,7 @@
 }:
 
 mkDerivation {
-  name = "sonnet";
+  pname = "sonnet";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ aspell qttools ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/srcs.nix b/pkgs/development/libraries/kde-frameworks/srcs.nix
index 2b3983a892c8a..457ae06bb650b 100644
--- a/pkgs/development/libraries/kde-frameworks/srcs.nix
+++ b/pkgs/development/libraries/kde-frameworks/srcs.nix
@@ -4,667 +4,667 @@
 
 {
   attica = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/attica-5.91.0.tar.xz";
-      sha256 = "0svvy7qflidwxns12y2lra54gg6lhglcddzmrw7ccvbdyqcy2pn0";
-      name = "attica-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/attica-5.93.0.tar.xz";
+      sha256 = "1qcj0n00ma6lyhbdk5dx2a1iwjqwzkbqvrwdhv8hgsqvj44q1hc1";
+      name = "attica-5.93.0.tar.xz";
     };
   };
   baloo = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/baloo-5.91.0.tar.xz";
-      sha256 = "1cqjbaiwqba707xaz9zsrdz9cms2mdrhv6jpwsq8q7f4g4rxcx3m";
-      name = "baloo-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/baloo-5.93.0.tar.xz";
+      sha256 = "1kfmmsinpnsh169dw8ycl9cavw4n7pfwx4davgfx12nvzmlibl95";
+      name = "baloo-5.93.0.tar.xz";
     };
   };
   bluez-qt = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/bluez-qt-5.91.0.tar.xz";
-      sha256 = "0p37jrmppwahh4vaq3wkw6xn0ms8dxcxpfd4glzjlnw426zrwnjr";
-      name = "bluez-qt-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/bluez-qt-5.93.0.tar.xz";
+      sha256 = "091n2bcvzczn28zkry5yxfrg0zpx78y2la3rhdybb4bplgm88pdb";
+      name = "bluez-qt-5.93.0.tar.xz";
     };
   };
   breeze-icons = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/breeze-icons-5.91.0.tar.xz";
-      sha256 = "0aj24gn48c17n9jzrj0az04ph4hpx7zf2rj4vgwl19iip69vfzf1";
-      name = "breeze-icons-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/breeze-icons-5.93.0.tar.xz";
+      sha256 = "1rh39pgyhz73lly7n9sp1z16z6isw2bbx284d2ilb9lanjkdyrs3";
+      name = "breeze-icons-5.93.0.tar.xz";
     };
   };
   extra-cmake-modules = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/extra-cmake-modules-5.91.0.tar.xz";
-      sha256 = "0k65rvxh926ya6qahzk2ns7g1fya1429648mlx7iipxa61g8h5wp";
-      name = "extra-cmake-modules-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/extra-cmake-modules-5.93.0.tar.xz";
+      sha256 = "088b93ahiw00msn20iibp8642p2vy5zd8wb99vvwayv425xylg89";
+      name = "extra-cmake-modules-5.93.0.tar.xz";
     };
   };
   frameworkintegration = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/frameworkintegration-5.91.0.tar.xz";
-      sha256 = "1176ql8f96ap4gzjaj8vm4cr6f2rsx9z93gpc4hx4jcqjhxqrg3z";
-      name = "frameworkintegration-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/frameworkintegration-5.93.0.tar.xz";
+      sha256 = "19m2i09r7hzqj8dkmxdkj7lh5jilm332i7177aadm6v7xv4m8vhm";
+      name = "frameworkintegration-5.93.0.tar.xz";
     };
   };
   kactivities = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kactivities-5.91.0.tar.xz";
-      sha256 = "03y4hx7jgrhac12ys8pm22h0f49kms8b71gck4xv577p3ywi3j60";
-      name = "kactivities-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kactivities-5.93.0.tar.xz";
+      sha256 = "0hv8y6i03ib89ivmpfg4ifypnnia73la6ljp5frs3fykh91j0szb";
+      name = "kactivities-5.93.0.tar.xz";
     };
   };
   kactivities-stats = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kactivities-stats-5.91.0.tar.xz";
-      sha256 = "0864qfljh20723djfzdv8h6nipw01825lhiknyqz17aj2x2ymzcq";
-      name = "kactivities-stats-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kactivities-stats-5.93.0.tar.xz";
+      sha256 = "1a03xznriszw12jd0a2c7snilzd23nbgglx096isw1cf49r9h1pi";
+      name = "kactivities-stats-5.93.0.tar.xz";
     };
   };
   kapidox = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kapidox-5.91.0.tar.xz";
-      sha256 = "1xxpl8rn49d2cr7ld94j3wsg21019l2kq14p5bvilisnj3salka3";
-      name = "kapidox-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kapidox-5.93.0.tar.xz";
+      sha256 = "0nqxz2jg51kyis07k2jqk4ni1wly6zx8mv81lgqfhb9l6mm34a22";
+      name = "kapidox-5.93.0.tar.xz";
     };
   };
   karchive = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/karchive-5.91.0.tar.xz";
-      sha256 = "1kjc47zzdd9jhcmynq6zw6y6zaj2c1i8pxvszx3d9x5asaz2qq53";
-      name = "karchive-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/karchive-5.93.0.tar.xz";
+      sha256 = "1yy7jibbjpi67d6aihz5kcq4ynq8c9j9ds5rz2vp00l682l2dqv1";
+      name = "karchive-5.93.0.tar.xz";
     };
   };
   kauth = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kauth-5.91.0.tar.xz";
-      sha256 = "001svdyvs8qc6h8zkb9x072npkz6xabz6j0djjb380gl9h9wnrgq";
-      name = "kauth-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kauth-5.93.0.tar.xz";
+      sha256 = "0v6s79n9bd75dzncz9rmp449j82945gralmcycsihqyzpxw00n1l";
+      name = "kauth-5.93.0.tar.xz";
     };
   };
   kbookmarks = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kbookmarks-5.91.0.tar.xz";
-      sha256 = "0iqfngsvpbgxk6h8l68idcp97df28sa2zwj707zs0mf2bl9k68m4";
-      name = "kbookmarks-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kbookmarks-5.93.0.tar.xz";
+      sha256 = "0gw6zl87xhm3k2qdmd6993xyj8i0y2z5yvlwsnq91glrzyazgvry";
+      name = "kbookmarks-5.93.0.tar.xz";
     };
   };
   kcalendarcore = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kcalendarcore-5.91.0.tar.xz";
-      sha256 = "0gkn0mzk3za86pjrpi8gd9d71bfv0ihzkgn8yy1ik3dw1rf9gxip";
-      name = "kcalendarcore-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kcalendarcore-5.93.0.tar.xz";
+      sha256 = "0gqxbj3i0w3kfyyd6n9n3dxgmx2nwfh578srxnmy1z1r2wabq28n";
+      name = "kcalendarcore-5.93.0.tar.xz";
     };
   };
   kcmutils = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kcmutils-5.91.0.tar.xz";
-      sha256 = "009r9r7fz1588g2cnqw585d2fz170x8j8bip1zqr7i4jl21ms68s";
-      name = "kcmutils-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kcmutils-5.93.0.tar.xz";
+      sha256 = "0v8dsfrbba1pv8vrisr3pbyw8yanfl95i5jxqbbrzmpznxwgji8l";
+      name = "kcmutils-5.93.0.tar.xz";
     };
   };
   kcodecs = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kcodecs-5.91.0.tar.xz";
-      sha256 = "0qkwvbp4vp3w57f3fyjknxd66qac77hl77mf042c7jxjl5vq7h1y";
-      name = "kcodecs-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kcodecs-5.93.0.tar.xz";
+      sha256 = "12r8n8sq5yav62viddhgm1bjlxv1a0jrndmr1a52y55kma5mrz0f";
+      name = "kcodecs-5.93.0.tar.xz";
     };
   };
   kcompletion = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kcompletion-5.91.0.tar.xz";
-      sha256 = "1l6z85a4rh3vrf4x5g3pqvp0q36gwmw0fbp9ny1iaqyy21dlh8i4";
-      name = "kcompletion-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kcompletion-5.93.0.tar.xz";
+      sha256 = "177vx3ck4yyc38b3kd4m5sm55hj15ybiwx2jm2f62nw7x1ar733z";
+      name = "kcompletion-5.93.0.tar.xz";
     };
   };
   kconfig = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kconfig-5.91.0.tar.xz";
-      sha256 = "0axdnqipa8xgx864zylxllnzchlp50q59bbfw3c98svvvkm3yg56";
-      name = "kconfig-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kconfig-5.93.0.tar.xz";
+      sha256 = "0vn009nvg3s540avq88fjr267j22lvjnmm6n5p11g442shh7r1bi";
+      name = "kconfig-5.93.0.tar.xz";
     };
   };
   kconfigwidgets = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kconfigwidgets-5.91.0.tar.xz";
-      sha256 = "01mvv01hv64wadjh8xk3hhp1vbs04cvbrjpfl1g9cv2sa6hr7102";
-      name = "kconfigwidgets-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kconfigwidgets-5.93.0.tar.xz";
+      sha256 = "1fr4kwkvx5jz9xb3qvk84sh6ma2x5n852xc7ypb6vbby47rf066v";
+      name = "kconfigwidgets-5.93.0.tar.xz";
     };
   };
   kcontacts = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kcontacts-5.91.0.tar.xz";
-      sha256 = "1c839c9rvys3jwmi3fzw06r1nhgvrb4z8sdh8gda0w03vqh7h1hv";
-      name = "kcontacts-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kcontacts-5.93.0.tar.xz";
+      sha256 = "0xacc3yi169hdgf1x82rxb72nnzccmhspmz4v6493afgdin8qz2x";
+      name = "kcontacts-5.93.0.tar.xz";
     };
   };
   kcoreaddons = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kcoreaddons-5.91.0.tar.xz";
-      sha256 = "16vimllvcs6rnb1ccbv9zg8hxbzacisgrlffyvwm608f4q1xmqyz";
-      name = "kcoreaddons-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kcoreaddons-5.93.0.tar.xz";
+      sha256 = "0hzhvf2mf53pyhfbfg4pczb20k3l0hv6y2kp0vfkmskxz652f2lj";
+      name = "kcoreaddons-5.93.0.tar.xz";
     };
   };
   kcrash = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kcrash-5.91.0.tar.xz";
-      sha256 = "0gdknmp5a36ipvzms4jhxywyxpjh0vy26861c54jfsk13yircjal";
-      name = "kcrash-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kcrash-5.93.0.tar.xz";
+      sha256 = "1midk5b5bmlv4qkjjn2wllmcwmdv0q33jad9yhp7aasbjb3ddy1g";
+      name = "kcrash-5.93.0.tar.xz";
     };
   };
   kdav = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kdav-5.91.0.tar.xz";
-      sha256 = "026w3bk2lmc7lqzra8w9jq8i2l1hvqsxz36r1jzj9p01skhdm32v";
-      name = "kdav-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kdav-5.93.0.tar.xz";
+      sha256 = "0s5d6h4p496y6fhrcm1gb10y15bsa0sidsljhh7v58gh400x9lx7";
+      name = "kdav-5.93.0.tar.xz";
     };
   };
   kdbusaddons = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kdbusaddons-5.91.0.tar.xz";
-      sha256 = "18qhpj0s4abypkb8ix2d84wv1kqv6qxyblninn2f9hjkl2dnlwis";
-      name = "kdbusaddons-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kdbusaddons-5.93.0.tar.xz";
+      sha256 = "1n9ah83a0hg7vr5qamf1amvs1wwk2gjm9x4zhkqpmfb53r878b6c";
+      name = "kdbusaddons-5.93.0.tar.xz";
     };
   };
   kdeclarative = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kdeclarative-5.91.0.tar.xz";
-      sha256 = "183df5c0xyjqsip0izqvvk4wy2bjb973900s1wqsldhhvc7gpf7z";
-      name = "kdeclarative-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kdeclarative-5.93.0.tar.xz";
+      sha256 = "0rsh68nqjy5lk8v2irvaj53qrhp726f9rlj2gkc8k3dajg3lba88";
+      name = "kdeclarative-5.93.0.tar.xz";
     };
   };
   kded = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kded-5.91.0.tar.xz";
-      sha256 = "1zi0sixlzaxvw4lfil2r36i3xrav3vfwxp2r1lp4n65dpl7nv7p5";
-      name = "kded-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kded-5.93.0.tar.xz";
+      sha256 = "1psrh4vqa25k4lpmd7rx1bkc4nzci8rciax15kxgijnc444k34hr";
+      name = "kded-5.93.0.tar.xz";
     };
   };
   kdelibs4support = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/portingAids/kdelibs4support-5.91.0.tar.xz";
-      sha256 = "1373fi9vi7ki8frr0lsw6yp335i95v8yq2j41s7ip003dpy4hr2g";
-      name = "kdelibs4support-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/portingAids/kdelibs4support-5.93.0.tar.xz";
+      sha256 = "0z1p0wmj2y318r5d8wgab2p4c2yi3vyrlkzj60lw3avbrj01sgka";
+      name = "kdelibs4support-5.93.0.tar.xz";
     };
   };
   kdesignerplugin = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/portingAids/kdesignerplugin-5.91.0.tar.xz";
-      sha256 = "07lvvryc3k418hd0j7ddlqhid26c51isa8mvk7g6gd0v2x3gp76q";
-      name = "kdesignerplugin-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/portingAids/kdesignerplugin-5.93.0.tar.xz";
+      sha256 = "1bwaca721dzydwrky64p7h4z0bigvajpb7wg5mj8k2ym3vyb96pi";
+      name = "kdesignerplugin-5.93.0.tar.xz";
     };
   };
   kdesu = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kdesu-5.91.0.tar.xz";
-      sha256 = "1wj099w810dabqn43pqis4sism3zwq3d1qa9mvcdyjafqbl7xnjm";
-      name = "kdesu-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kdesu-5.93.0.tar.xz";
+      sha256 = "1gwd2gc98s0v8mlj7iqr1l7wljdx9rmzpcvaa75f5w2ri6d9s0kz";
+      name = "kdesu-5.93.0.tar.xz";
     };
   };
   kdewebkit = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/portingAids/kdewebkit-5.91.0.tar.xz";
-      sha256 = "1mln0w1dzrbpm373vfpcyss4xxnrfgwh9nhzr8wmzs8965bn3wqq";
-      name = "kdewebkit-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/portingAids/kdewebkit-5.93.0.tar.xz";
+      sha256 = "0m9gzm8a4gl1ycz2l7x8g61461x4n7vhph248bblsgbnc1b9pzm2";
+      name = "kdewebkit-5.93.0.tar.xz";
     };
   };
   kdnssd = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kdnssd-5.91.0.tar.xz";
-      sha256 = "1smzwh7lvz8g7vydxnd2kkh0ymg7yp6akc7k2vg8q65pa6pxqn3g";
-      name = "kdnssd-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kdnssd-5.93.0.tar.xz";
+      sha256 = "0fwh5wzx1bp9ndhd8l1gjp61maw47jnzd1i9pfjpx1mm2i7kd5yw";
+      name = "kdnssd-5.93.0.tar.xz";
     };
   };
   kdoctools = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kdoctools-5.91.0.tar.xz";
-      sha256 = "02lr4l4n5gnv7ffzml8lbrdwgfpq6m7ayhz3bdqqijdfvw6h283n";
-      name = "kdoctools-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kdoctools-5.93.0.tar.xz";
+      sha256 = "0p2xnq83c7v5llh3i4a379l68qbrjccw99959swnfdn5a7qkzs15";
+      name = "kdoctools-5.93.0.tar.xz";
     };
   };
   kemoticons = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kemoticons-5.91.0.tar.xz";
-      sha256 = "1jznkiq87rkndv10xs6974b5k0v82ly32agy5acxc2xy9wq7la0h";
-      name = "kemoticons-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kemoticons-5.93.0.tar.xz";
+      sha256 = "0474bb6h9s3ks3z8pankr7zxpjha1n88bapxm01z2p4kfkrkvjl3";
+      name = "kemoticons-5.93.0.tar.xz";
     };
   };
   kfilemetadata = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kfilemetadata-5.91.0.tar.xz";
-      sha256 = "1z030irzcvmjq329nwfk3h8cd51dwy9mppnwbgcd0lw6y3bka0rq";
-      name = "kfilemetadata-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kfilemetadata-5.93.0.tar.xz";
+      sha256 = "05m8fvk6j0zdg6x64hy8bslqhdrx4jh8l8rnbpjgcs7hlmqw059h";
+      name = "kfilemetadata-5.93.0.tar.xz";
     };
   };
   kglobalaccel = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kglobalaccel-5.91.0.tar.xz";
-      sha256 = "09wscg6f19sh314ywpxp47pdr1xf1wzpjchg9rcjg207zrfhqqf0";
-      name = "kglobalaccel-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kglobalaccel-5.93.0.tar.xz";
+      sha256 = "04mpjzpfyrviyva3mrgxamsnkhglz48vfp65k4nn7ir9n3rbh1n8";
+      name = "kglobalaccel-5.93.0.tar.xz";
     };
   };
   kguiaddons = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kguiaddons-5.91.0.tar.xz";
-      sha256 = "0gn8lvpm4i11s5vavlpm162bizjkmh5cb4dhj3p34dlp4vcc4mky";
-      name = "kguiaddons-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kguiaddons-5.93.0.tar.xz";
+      sha256 = "02pl99a7dbxc3hmpp0l76x4v4l3yv1pzsm61hv5spl8b2j967wi7";
+      name = "kguiaddons-5.93.0.tar.xz";
     };
   };
   kholidays = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kholidays-5.91.0.tar.xz";
-      sha256 = "165vfmi5y8l00ng494469w5s1gjnf9zkggqrzmq65dfkdis3amdm";
-      name = "kholidays-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kholidays-5.93.0.tar.xz";
+      sha256 = "0hdq0ikwr4dd1il3lszkh0ygkvddfy3ld02d5hxyf7jh4fw1yjhd";
+      name = "kholidays-5.93.0.tar.xz";
     };
   };
   khtml = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/portingAids/khtml-5.91.0.tar.xz";
-      sha256 = "1ldkk1f954mmgz30vqa895z1nw2jaknnb53lsd5vqxzxi3cmc054";
-      name = "khtml-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/portingAids/khtml-5.93.0.tar.xz";
+      sha256 = "0jv1hqpidlfsvvcfvxvvkzyba48cw7l27ixxwac8n96p5rsvdgri";
+      name = "khtml-5.93.0.tar.xz";
     };
   };
   ki18n = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/ki18n-5.91.0.tar.xz";
-      sha256 = "11gdd2gvzsz3r8zvqbxxwbpwjvjwnzzhzyrd4spbpdy0w7j8n6ly";
-      name = "ki18n-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/ki18n-5.93.0.tar.xz";
+      sha256 = "0fbk4gjwvzd7vw4m9mngywagdk2aq66v5bz1vw98dwbms4058w62";
+      name = "ki18n-5.93.0.tar.xz";
     };
   };
   kiconthemes = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kiconthemes-5.91.0.tar.xz";
-      sha256 = "1khh4ngivwdj9rxxcpx08ka8anskc9i1z9n2zijp4m5ix8mmj3c2";
-      name = "kiconthemes-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kiconthemes-5.93.0.tar.xz";
+      sha256 = "1d72k0ssnqwkkzk3jfnx1n0w1h7xvf2a50dx9j5j46jg9yrwbxvm";
+      name = "kiconthemes-5.93.0.tar.xz";
     };
   };
   kidletime = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kidletime-5.91.0.tar.xz";
-      sha256 = "12qmiwc8p3izj1y5h0rndj2s496ckm1p85dv4g51zbpg7m8a48qv";
-      name = "kidletime-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kidletime-5.93.0.tar.xz";
+      sha256 = "1ndpnyyfx3ym5gdbin96g0qmdpl36il0z9jvmqpbdbpsw7gib4sd";
+      name = "kidletime-5.93.0.tar.xz";
     };
   };
   kimageformats = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kimageformats-5.91.0.tar.xz";
-      sha256 = "0df8in33xwajqay487w0hjfsplz8y51w9sjb75na7yqsn75p38xb";
-      name = "kimageformats-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kimageformats-5.93.0.tar.xz";
+      sha256 = "1l67vlfqwiqj9pvda054wa0wshzjh2wrc174w1wmkybswnfyvc0m";
+      name = "kimageformats-5.93.0.tar.xz";
     };
   };
   kinit = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kinit-5.91.0.tar.xz";
-      sha256 = "1y62k24mwzbg4gchvjb8wn6ygq57wc72clb3jgyipw034czdihvi";
-      name = "kinit-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kinit-5.93.0.tar.xz";
+      sha256 = "16743hyyycld1mdpa1hkhjmsr1f5pq3skiyq9rx3n5ihbfys6dnv";
+      name = "kinit-5.93.0.tar.xz";
     };
   };
   kio = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kio-5.91.0.tar.xz";
-      sha256 = "14v28qilb5ayv9shw86hb88k60nr4bbd2pa4vwsqij9xkwlympgj";
-      name = "kio-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kio-5.93.0.tar.xz";
+      sha256 = "0i2cbngyy3malcl9sv5bj8di6cgq1m17qjn88y8fpjayzfya946j";
+      name = "kio-5.93.0.tar.xz";
     };
   };
   kirigami2 = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kirigami2-5.91.0.tar.xz";
-      sha256 = "0ifljwa6hli2rndfadpzs30dpwc99nnvcm3yi9j5dim2bdf6glwc";
-      name = "kirigami2-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kirigami2-5.93.0.tar.xz";
+      sha256 = "13xb8zfnxcps64v74scn76n8hsccirc9hin9knp12q3pxcjaihm7";
+      name = "kirigami2-5.93.0.tar.xz";
     };
   };
   kitemmodels = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kitemmodels-5.91.0.tar.xz";
-      sha256 = "189kgrw2vjr9067mqr4f2sv06xmnjaapry0bf8s41v6r9v7py708";
-      name = "kitemmodels-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kitemmodels-5.93.0.tar.xz";
+      sha256 = "0ns8y2lw74lydnnys081z8qlz9dyim7f1ay5aayg2dxcja5r3fav";
+      name = "kitemmodels-5.93.0.tar.xz";
     };
   };
   kitemviews = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kitemviews-5.91.0.tar.xz";
-      sha256 = "16cm4zmv1ngrsmy6k0ybv5wxd0g8cc8zwq6ab7jvs7a04sykv238";
-      name = "kitemviews-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kitemviews-5.93.0.tar.xz";
+      sha256 = "1gsswmqpv61byzwkzldgx829a6llpcz8fnb8dz62hnvr7gn1vw4k";
+      name = "kitemviews-5.93.0.tar.xz";
     };
   };
   kjobwidgets = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kjobwidgets-5.91.0.tar.xz";
-      sha256 = "14pkyd6j78kignr62xfkvpyi2fwvzcvcsdnn23h8jxkhwm2ri42v";
-      name = "kjobwidgets-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kjobwidgets-5.93.0.tar.xz";
+      sha256 = "1yrrghkdqym0sq19pww57fz44bhp2jvb45xk3hmb79bggms9ni32";
+      name = "kjobwidgets-5.93.0.tar.xz";
     };
   };
   kjs = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/portingAids/kjs-5.91.0.tar.xz";
-      sha256 = "0jbwlnmf8whzgjkrbnsvdsnn3kv0h44ghf63m2qcgg2l9wb0j8rj";
-      name = "kjs-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/portingAids/kjs-5.93.0.tar.xz";
+      sha256 = "0hh9z6xjqx0nxxpif4gmhjddls6cp37zngjxi565cx97kkg03al5";
+      name = "kjs-5.93.0.tar.xz";
     };
   };
   kjsembed = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/portingAids/kjsembed-5.91.0.tar.xz";
-      sha256 = "124y7518jhjg3y2x7bcyl6b3c0bfxfbgd2sz6dwk45y4byx7rl60";
-      name = "kjsembed-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/portingAids/kjsembed-5.93.0.tar.xz";
+      sha256 = "096lh47xr4xjkdg4dnpkj1qflfz5zfqhkj9wazmjd41z1fzx6mgs";
+      name = "kjsembed-5.93.0.tar.xz";
     };
   };
   kmediaplayer = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/portingAids/kmediaplayer-5.91.0.tar.xz";
-      sha256 = "0rn9azrj8k1m67y9ni0f3nwl9ldf1ksiqv6dgnzrx6xh0rxfm2h1";
-      name = "kmediaplayer-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/portingAids/kmediaplayer-5.93.0.tar.xz";
+      sha256 = "02l3fhg73hqzgr5pin74zl6q7lv2y3pr49w128hsz8zyn2ssza5d";
+      name = "kmediaplayer-5.93.0.tar.xz";
     };
   };
   knewstuff = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/knewstuff-5.91.0.tar.xz";
-      sha256 = "0akaxi9klmpwn4pyr6ys5sxcapdspldq1f64im7vd6byzqrgpnax";
-      name = "knewstuff-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/knewstuff-5.93.0.tar.xz";
+      sha256 = "0nappdgg7lw8grhkb5bndnvkcc54gvvhf47zyrhmzh04dki4ip1a";
+      name = "knewstuff-5.93.0.tar.xz";
     };
   };
   knotifications = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/knotifications-5.91.0.tar.xz";
-      sha256 = "1207rimq8si1zxnn827631a1hskrd3m3ilgaj3wj859qrbkqmxzm";
-      name = "knotifications-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/knotifications-5.93.0.tar.xz";
+      sha256 = "0jysjrkpjayqlkazaf1xg4r7rr2kiph0zdx32bidg0aqwlgin6gy";
+      name = "knotifications-5.93.0.tar.xz";
     };
   };
   knotifyconfig = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/knotifyconfig-5.91.0.tar.xz";
-      sha256 = "07m5mphd8mrak5sdqlldbcd51946v49xpcwi9fhn7w0kx29hknyf";
-      name = "knotifyconfig-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/knotifyconfig-5.93.0.tar.xz";
+      sha256 = "1k8rcrcfxzjrdvi5khlvj1mrslmby217n06dclclam8mcdkf37fc";
+      name = "knotifyconfig-5.93.0.tar.xz";
     };
   };
   kpackage = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kpackage-5.91.0.tar.xz";
-      sha256 = "12w8lfwifa107wlrld3zz774hczn9mkib6wqxw24yxxmzfw9lc2i";
-      name = "kpackage-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kpackage-5.93.0.tar.xz";
+      sha256 = "1kf55v26fbqh4whd5chvnl8j54jhlqx2i4wxj6wldxqwxpbfrrld";
+      name = "kpackage-5.93.0.tar.xz";
     };
   };
   kparts = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kparts-5.91.0.tar.xz";
-      sha256 = "10ni6b114acjnmrahvvqw75iqkc10ii97y3z7lirj2727a3qmzzj";
-      name = "kparts-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kparts-5.93.0.tar.xz";
+      sha256 = "0x8nrnxrh34bipp0pvr0qx86r9ysrrmjv92gj192y6n79ikfk268";
+      name = "kparts-5.93.0.tar.xz";
     };
   };
   kpeople = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kpeople-5.91.0.tar.xz";
-      sha256 = "09l2q8cg9p8g7zkd1mjx6x08bqkr4ykxjibskc184asff7v47gvp";
-      name = "kpeople-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kpeople-5.93.0.tar.xz";
+      sha256 = "0wgk96xyhig8psh3byic5qqp2g58krb1il0nnbbvsapsh9ljdqfk";
+      name = "kpeople-5.93.0.tar.xz";
     };
   };
   kplotting = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kplotting-5.91.0.tar.xz";
-      sha256 = "0rgmmliw9cfi0j2miszqz2kphqm04r5nfs8dqq6pnvclk1k9kss6";
-      name = "kplotting-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kplotting-5.93.0.tar.xz";
+      sha256 = "0vd2nsb60kbk8iy8via5rvizdbwbch86madnzxcm5x8k89linvaq";
+      name = "kplotting-5.93.0.tar.xz";
     };
   };
   kpty = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kpty-5.91.0.tar.xz";
-      sha256 = "1yy1k96kikvvnlyd00krc08ifiqbrz0x5vwv3pgdbpnwgl8p580d";
-      name = "kpty-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kpty-5.93.0.tar.xz";
+      sha256 = "04pc94v4r8066dzic8a5q5clmcn36vf99d1k5zrq5c4ypx6ia19a";
+      name = "kpty-5.93.0.tar.xz";
     };
   };
   kquickcharts = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kquickcharts-5.91.0.tar.xz";
-      sha256 = "1ghiymm257b8xgmkibb7s7bwb28x3zhnrgrrsya47q5njb87h0ck";
-      name = "kquickcharts-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kquickcharts-5.93.0.tar.xz";
+      sha256 = "0j580h8gysdqmsyzhx40arrkszbzkb9fa3byyazqbmyihk26ld14";
+      name = "kquickcharts-5.93.0.tar.xz";
     };
   };
   kross = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/portingAids/kross-5.91.0.tar.xz";
-      sha256 = "06f8220jmvjsfbzjkr2ybwicwjffbi3yw9sr3bcyrilchrrpgqal";
-      name = "kross-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/portingAids/kross-5.93.0.tar.xz";
+      sha256 = "1hqsanjk8n786qbr47pxpwvfpwfd1l6152bqac21f6vk70jgv9ib";
+      name = "kross-5.93.0.tar.xz";
     };
   };
   krunner = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/krunner-5.91.0.tar.xz";
-      sha256 = "17iaw55rkzyfpgkbw2an6pa4wid79b0dnb3310vfaq0xkm0gjxq6";
-      name = "krunner-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/krunner-5.93.0.tar.xz";
+      sha256 = "14f993x6s2y6s3bcjqp9q6f5hhiz31ij4bnqwbsqfpa1klbbkiid";
+      name = "krunner-5.93.0.tar.xz";
     };
   };
   kservice = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kservice-5.91.0.tar.xz";
-      sha256 = "0m4j7djiyapi1hm23lz9nd238rrlldxlggzkqq056z486v2137bp";
-      name = "kservice-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kservice-5.93.0.tar.xz";
+      sha256 = "0cblwvrjwis8w45a6wnjgns6c78xn2lamzss3hqhx2gv6zw95ks6";
+      name = "kservice-5.93.0.tar.xz";
     };
   };
   ktexteditor = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/ktexteditor-5.91.0.tar.xz";
-      sha256 = "1bkz6v1y5vyxav398a6224ldqa9pqhbad3vmhxrjb2hxcbha2cpm";
-      name = "ktexteditor-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/ktexteditor-5.93.0.tar.xz";
+      sha256 = "1hyn5gkbc246rbv5rxaz190c5fa2j87ndjw0jz7sjbfdhaw3gx3s";
+      name = "ktexteditor-5.93.0.tar.xz";
     };
   };
   ktextwidgets = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/ktextwidgets-5.91.0.tar.xz";
-      sha256 = "0xmzrak5mwg1l4v38g14i7j1yr3j6sj13q2iqa433hs5agl6l6n4";
-      name = "ktextwidgets-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/ktextwidgets-5.93.0.tar.xz";
+      sha256 = "05f2nzgqpprri8zh2da9hj36zif0bv2dwvdxxf2z8dfv564mhzz2";
+      name = "ktextwidgets-5.93.0.tar.xz";
     };
   };
   kunitconversion = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kunitconversion-5.91.0.tar.xz";
-      sha256 = "0n2v0f08s71z2imhn41jkm2knjvk7bkwmcz70gs8h97ykrj6niap";
-      name = "kunitconversion-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kunitconversion-5.93.0.tar.xz";
+      sha256 = "1j1gl1ahpqafdwlq4bcwc1xv3q59489jyjgr4wkv7lljxmmgpblv";
+      name = "kunitconversion-5.93.0.tar.xz";
     };
   };
   kwallet = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kwallet-5.91.0.tar.xz";
-      sha256 = "1z1qb6a2b5rqj7js88ms8n67fbs885pw6djbf1l86na2zhf0adip";
-      name = "kwallet-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kwallet-5.93.0.tar.xz";
+      sha256 = "1syx1zi7q14lf1xn8wqkgi475aaydahn2y3v9x2hn9gvgr3zcmpd";
+      name = "kwallet-5.93.0.tar.xz";
     };
   };
   kwayland = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kwayland-5.91.0.tar.xz";
-      sha256 = "1a03ckacp39lpsqyykkm6lxajxm71s6ifpzgj8q0a37v75jzmz9y";
-      name = "kwayland-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kwayland-5.93.0.tar.xz";
+      sha256 = "1gks1an0c9yp047jwdik6lg1w5gbjwz9mzzdl2aih30wmmrs4j0n";
+      name = "kwayland-5.93.0.tar.xz";
     };
   };
   kwidgetsaddons = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kwidgetsaddons-5.91.0.tar.xz";
-      sha256 = "03pj98sgybkcz487vr774x05w46imnipq2794nkv426nnhyxrd73";
-      name = "kwidgetsaddons-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kwidgetsaddons-5.93.0.tar.xz";
+      sha256 = "045489l353jz52rl346lwazyc4xqd3whn628zn5ybakgiiyy2dcw";
+      name = "kwidgetsaddons-5.93.0.tar.xz";
     };
   };
   kwindowsystem = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kwindowsystem-5.91.0.tar.xz";
-      sha256 = "1yy02fvfabrsvdpmrkdnjdsdd3d2crxavsl47si6ry8fdxb90y95";
-      name = "kwindowsystem-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kwindowsystem-5.93.0.tar.xz";
+      sha256 = "18g4xccvq56i9sz4rcwf8nkhwclcbvzi0vj9xniqfx0s9lx25jwp";
+      name = "kwindowsystem-5.93.0.tar.xz";
     };
   };
   kxmlgui = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/kxmlgui-5.91.0.tar.xz";
-      sha256 = "1qww2isx99lx0mn1dv0vzrvmr2xdp8zgikyvgw1wf8hfay3v2s1g";
-      name = "kxmlgui-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/kxmlgui-5.93.0.tar.xz";
+      sha256 = "16dhykbn9z0wyh95ihmfr6lf2ff7xycx253fnsfd035cbzcnbfkl";
+      name = "kxmlgui-5.93.0.tar.xz";
     };
   };
   kxmlrpcclient = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/portingAids/kxmlrpcclient-5.91.0.tar.xz";
-      sha256 = "1bnymf5wq4apjsgshvbhcggdw7jc0yxv4jag3k19ff9820lskhph";
-      name = "kxmlrpcclient-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/portingAids/kxmlrpcclient-5.93.0.tar.xz";
+      sha256 = "0v1p94ngq6cvw42rf6qfkl45rdcj0v3zjsfnwrgdjq2nkzzimd0c";
+      name = "kxmlrpcclient-5.93.0.tar.xz";
     };
   };
   modemmanager-qt = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/modemmanager-qt-5.91.0.tar.xz";
-      sha256 = "15l46lkh8nkal1nai494dabaysy581jzi8nwrv4kjvc6qwc3yrx2";
-      name = "modemmanager-qt-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/modemmanager-qt-5.93.0.tar.xz";
+      sha256 = "1a3718kkx288c8ysf3fc5kd51zzw8i7x7sh7x86rsjsj6rlxxv9s";
+      name = "modemmanager-qt-5.93.0.tar.xz";
     };
   };
   networkmanager-qt = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/networkmanager-qt-5.91.0.tar.xz";
-      sha256 = "0f27qin2ks3q7rin53sk9vjjnadjnax99d9k245sjr6fjpczy81f";
-      name = "networkmanager-qt-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/networkmanager-qt-5.93.0.tar.xz";
+      sha256 = "0q59xg00pxhva75rncwizjca7fjq7h7ib9hyyn14c28iv3i8qn5q";
+      name = "networkmanager-qt-5.93.0.tar.xz";
     };
   };
   oxygen-icons5 = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/oxygen-icons5-5.91.0.tar.xz";
-      sha256 = "0j3j2lyxr2iz68vasvpjqkix4bnnj6wc4sr97i6x6z06zq0kawai";
-      name = "oxygen-icons5-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/oxygen-icons5-5.93.0.tar.xz";
+      sha256 = "019h6my69cq32rlmnxkpnzix6m5r78rpzpn518snbrivvi23ykkk";
+      name = "oxygen-icons5-5.93.0.tar.xz";
     };
   };
   plasma-framework = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/plasma-framework-5.91.0.tar.xz";
-      sha256 = "0ydhhpnwf7lfl3kdjsw92mgsza5gy292f7v6kyby4ygjnir1hizl";
-      name = "plasma-framework-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/plasma-framework-5.93.0.tar.xz";
+      sha256 = "08n3nnbds4smd0jdqidlshp10n643x25issnqbkxza1fxa3wd8nl";
+      name = "plasma-framework-5.93.0.tar.xz";
     };
   };
   prison = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/prison-5.91.0.tar.xz";
-      sha256 = "0k1zp3jzh8gjsji6wh5g8k41zdl8s1vd58ipm0lxy670a71wcqcg";
-      name = "prison-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/prison-5.93.0.tar.xz";
+      sha256 = "0mpvhbxxsnanf41cclhdbadw14979qbh3a7rf5mkq9ng49kdwhqz";
+      name = "prison-5.93.0.tar.xz";
     };
   };
   purpose = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/purpose-5.91.0.tar.xz";
-      sha256 = "1z6wpz7d9byx4n5zx6chmyy9k1jkmghdgahsvkqsc33z6hnh2b4m";
-      name = "purpose-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/purpose-5.93.0.tar.xz";
+      sha256 = "1i1cx5s6mdrfvabvqkllycv5lmck73mwwck1hlhpxcnrqp3w02yw";
+      name = "purpose-5.93.0.tar.xz";
     };
   };
   qqc2-desktop-style = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/qqc2-desktop-style-5.91.0.tar.xz";
-      sha256 = "0rd9rvffhif8yckwr7axjcv5iqn5b0jdviij7f9y8vjpkzyjvm8i";
-      name = "qqc2-desktop-style-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/qqc2-desktop-style-5.93.0.tar.xz";
+      sha256 = "1a597chr7awbmg2d64gylg1v9rsih33j6xyvp8r3bqi9ln2w07hn";
+      name = "qqc2-desktop-style-5.93.0.tar.xz";
     };
   };
   solid = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/solid-5.91.0.tar.xz";
-      sha256 = "1a4k0amyg8mvfr2ld7v8zyphhxv33yybh55vqcshwv4a0jm1wmjg";
-      name = "solid-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/solid-5.93.0.tar.xz";
+      sha256 = "1skb1lzib230crrhzbgzl0lch51a0bcrgq1jnpn3yy888vwz7vr2";
+      name = "solid-5.93.0.tar.xz";
     };
   };
   sonnet = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/sonnet-5.91.0.tar.xz";
-      sha256 = "067xj5mllpzl0gnxxljhfi9y4xdgrpqbckm7pykczzqrklrrx8dx";
-      name = "sonnet-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/sonnet-5.93.0.tar.xz";
+      sha256 = "170d460vhm42vi21prjg5792h34flcbb2j5wx3r3pr6ybsj6n51w";
+      name = "sonnet-5.93.0.tar.xz";
     };
   };
   syndication = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/syndication-5.91.0.tar.xz";
-      sha256 = "1f2kb6mh1xc1k1bn536lq9gq0j2lb65qw4vpp4ixynlfij4zq1gy";
-      name = "syndication-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/syndication-5.93.0.tar.xz";
+      sha256 = "08ysirymi5j6as8syvx3rxc7yh12ylwxz1a7yh6ifq370wv4xw9m";
+      name = "syndication-5.93.0.tar.xz";
     };
   };
   syntax-highlighting = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/syntax-highlighting-5.91.0.tar.xz";
-      sha256 = "0fprqi2z8issh3jkql6labszkwd3cpvd6qadsg9fi46vfjr4a2ip";
-      name = "syntax-highlighting-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/syntax-highlighting-5.93.0.tar.xz";
+      sha256 = "06vixhzmmqvbgmzsrhgx0ncfxm80crp3gpy7axscjardjbw53nzb";
+      name = "syntax-highlighting-5.93.0.tar.xz";
     };
   };
   threadweaver = {
-    version = "5.91.0";
+    version = "5.93.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.91/threadweaver-5.91.0.tar.xz";
-      sha256 = "1900kqglkwzkjc24mvl0j7jf7xcx6cr6b1g78s5b5m18rw050j12";
-      name = "threadweaver-5.91.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.93/threadweaver-5.93.0.tar.xz";
+      sha256 = "11gi0rfd02zjnn8fizhwzgxbaz0jw8m7jhrba56vqbh5fv9bf3bc";
+      name = "threadweaver-5.93.0.tar.xz";
     };
   };
 }
diff --git a/pkgs/development/libraries/kde-frameworks/syndication.nix b/pkgs/development/libraries/kde-frameworks/syndication.nix
index fd5a9b9db8464..1d32f9b702197 100644
--- a/pkgs/development/libraries/kde-frameworks/syndication.nix
+++ b/pkgs/development/libraries/kde-frameworks/syndication.nix
@@ -4,7 +4,7 @@
 }:
 
 mkDerivation {
-  name = "syndication";
+  pname = "syndication";
   meta.maintainers = [ lib.maintainers.bkchr ];
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kcodecs ];
diff --git a/pkgs/development/libraries/kde-frameworks/syntax-highlighting.nix b/pkgs/development/libraries/kde-frameworks/syntax-highlighting.nix
index a295b23f32101..fee392140f7e3 100644
--- a/pkgs/development/libraries/kde-frameworks/syntax-highlighting.nix
+++ b/pkgs/development/libraries/kde-frameworks/syntax-highlighting.nix
@@ -3,7 +3,7 @@
 }:
 
 mkDerivation {
-  name = "syntax-highlighting";
+  pname = "syntax-highlighting";
   nativeBuildInputs = [ extra-cmake-modules perl ];
   buildInputs = [ qttools ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/threadweaver.nix b/pkgs/development/libraries/kde-frameworks/threadweaver.nix
index bfa529c9267ae..fb43b9f28b061 100644
--- a/pkgs/development/libraries/kde-frameworks/threadweaver.nix
+++ b/pkgs/development/libraries/kde-frameworks/threadweaver.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "threadweaver";
+  pname = "threadweaver";
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [ qtbase ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kerberos/krb5.nix b/pkgs/development/libraries/kerberos/krb5.nix
index c632c2fdac9e2..e1251b0e942c8 100644
--- a/pkgs/development/libraries/kerberos/krb5.nix
+++ b/pkgs/development/libraries/kerberos/krb5.nix
@@ -18,7 +18,7 @@ let
 in
 with lib;
 stdenv.mkDerivation rec {
-  name = "${type}krb5-${version}";
+  pname = "${type}krb5";
   version = "1.19.2";
 
   src = fetchurl {
diff --git a/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix b/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix
index 732efda1df466..8ff7b9332476b 100644
--- a/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix
+++ b/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, opencl-headers, cmake, withTracing ? false }:
 
 stdenv.mkDerivation rec {
-  name = "khronos-ocl-icd-loader-${version}";
+  pname = "khronos-ocl-icd-loader";
   version = "2022.01.04";
 
   src = fetchFromGitHub {
diff --git a/pkgs/development/libraries/languagemachines/frog.nix b/pkgs/development/libraries/languagemachines/frog.nix
index b21d0f1159e08..50167f28a9db2 100644
--- a/pkgs/development/libraries/languagemachines/frog.nix
+++ b/pkgs/development/libraries/languagemachines/frog.nix
@@ -9,7 +9,7 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "frog-${release.version}";
+  pname = "frog";
   version = release.version;
   src = fetchurl { inherit (release) url sha256;
                    name = "frog-v${release.version}.tar.gz"; };
diff --git a/pkgs/development/libraries/languagemachines/frogdata.nix b/pkgs/development/libraries/languagemachines/frogdata.nix
index f037e7fc17a09..5b1b07e792772 100644
--- a/pkgs/development/libraries/languagemachines/frogdata.nix
+++ b/pkgs/development/libraries/languagemachines/frogdata.nix
@@ -7,7 +7,7 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "frogdata-${release.version}";
+  pname = "frogdata";
   version = release.version;
   src = fetchurl { inherit (release) url sha256;
                    name = "frogdata-${release.version}.tar.gz"; };
diff --git a/pkgs/development/libraries/languagemachines/libfolia.nix b/pkgs/development/libraries/languagemachines/libfolia.nix
index c2b4f6662bb50..6cc5bcade2050 100644
--- a/pkgs/development/libraries/languagemachines/libfolia.nix
+++ b/pkgs/development/libraries/languagemachines/libfolia.nix
@@ -8,7 +8,7 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "libfolia-${release.version}";
+  pname = "libfolia";
   version = release.version;
   src = fetchurl { inherit (release) url sha256;
                    name = "libfolia-${release.version}.tar.gz"; };
diff --git a/pkgs/development/libraries/languagemachines/mbt.nix b/pkgs/development/libraries/languagemachines/mbt.nix
index af0f872494231..9556c1d567011 100644
--- a/pkgs/development/libraries/languagemachines/mbt.nix
+++ b/pkgs/development/libraries/languagemachines/mbt.nix
@@ -9,7 +9,7 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "mbt-${release.version}";
+  pname = "mbt";
   version = release.version;
   src = fetchurl { inherit (release) url sha256;
                    name = "mbt-${release.version}.tar.gz"; };
diff --git a/pkgs/development/libraries/languagemachines/ticcutils.nix b/pkgs/development/libraries/languagemachines/ticcutils.nix
index a5b262106c055..0b5fef292fcff 100644
--- a/pkgs/development/libraries/languagemachines/ticcutils.nix
+++ b/pkgs/development/libraries/languagemachines/ticcutils.nix
@@ -7,7 +7,7 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "ticcutils-${release.version}";
+  pname = "ticcutils";
   version = release.version;
   src = fetchurl { inherit (release) url sha256;
                    name = "ticcutils-${release.version}.tar.gz"; };
diff --git a/pkgs/development/libraries/languagemachines/timbl.nix b/pkgs/development/libraries/languagemachines/timbl.nix
index 8b9e6c62aee2d..1585798170b33 100644
--- a/pkgs/development/libraries/languagemachines/timbl.nix
+++ b/pkgs/development/libraries/languagemachines/timbl.nix
@@ -9,7 +9,7 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "timbl-${release.version}";
+  pname = "timbl";
   version = release.version;
   src = fetchurl { inherit (release) url sha256;
                    name = "timbl-${release.version}.tar.gz"; };
diff --git a/pkgs/development/libraries/languagemachines/timblserver.nix b/pkgs/development/libraries/languagemachines/timblserver.nix
index 55e914bd5b445..ea40d017d4711 100644
--- a/pkgs/development/libraries/languagemachines/timblserver.nix
+++ b/pkgs/development/libraries/languagemachines/timblserver.nix
@@ -9,7 +9,7 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "timblserver-${release.version}";
+  pname = "timblserver";
   version = release.version;
   src = fetchurl { inherit (release) url sha256;
                    name = "timblserver-${release.version}.tar.gz"; };
diff --git a/pkgs/development/libraries/languagemachines/ucto.nix b/pkgs/development/libraries/languagemachines/ucto.nix
index 4d85bbfc212bf..f707d9fb8b6eb 100644
--- a/pkgs/development/libraries/languagemachines/ucto.nix
+++ b/pkgs/development/libraries/languagemachines/ucto.nix
@@ -9,7 +9,7 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "ucto-${release.version}";
+  pname = "ucto";
   version = release.version;
   src = fetchurl { inherit (release) url sha256;
                    name = "ucto-${release.version}.tar.gz"; };
diff --git a/pkgs/development/libraries/languagemachines/uctodata.nix b/pkgs/development/libraries/languagemachines/uctodata.nix
index dbc15a17a14b6..a274b6193eddc 100644
--- a/pkgs/development/libraries/languagemachines/uctodata.nix
+++ b/pkgs/development/libraries/languagemachines/uctodata.nix
@@ -7,7 +7,7 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "uctodata-${release.version}";
+  pname = "uctodata";
   version = release.version;
   src = fetchurl { inherit (release) url sha256;
                    name = "uctodata-${release.version}.tar.gz"; };
diff --git a/pkgs/development/libraries/lasso/default.nix b/pkgs/development/libraries/lasso/default.nix
index 30c1477755345..06825c5379d94 100644
--- a/pkgs/development/libraries/lasso/default.nix
+++ b/pkgs/development/libraries/lasso/default.nix
@@ -1,22 +1,49 @@
-{ lib, stdenv, autoconf, automake, autoreconfHook, fetchurl, glib, gobject-introspection, gtk-doc, libtool, libxml2, libxslt, openssl, pkg-config, python27Packages, xmlsec, zlib }:
+{ lib, stdenv
+, autoreconfHook
+, fetchurl
+, glib
+, gobject-introspection
+, gtk-doc
+, libtool
+, libxml2
+, libxslt
+, openssl
+, pkg-config
+, python3
+, xmlsec
+, zlib
+}:
 
 stdenv.mkDerivation rec {
-
   pname = "lasso";
-  version = "2.7.0";
+  version = "2.8.0";
 
   src = fetchurl {
     url = "https://dev.entrouvert.org/lasso/lasso-${version}.tar.gz";
-    sha256 = "138x8pmj4k1pbah32z14rd8ylyx4lgz70s93m39vd17f8sjz50lj";
-
+    hash = "sha256-/8vVhR2YWGx+HK9DutZhZCEaO2HRK/hgoFmESP+fKzg=";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config autoconf automake ];
-  buildInputs = [ glib gobject-introspection gtk-doc libtool libxml2 libxslt openssl python27Packages.six xmlsec zlib ];
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+    python3
+  ];
+
+  buildInputs = [
+    glib
+    gobject-introspection
+    gtk-doc
+    libtool
+    libxml2
+    libxslt
+    openssl
+    python3.pkgs.six
+    xmlsec
+    zlib
+  ];
 
   configurePhase = ''
     ./configure --with-pkg-config=$PKG_CONFIG_PATH \
-                --disable-python \
                 --disable-perl \
                 --prefix=$out
   '';
@@ -28,5 +55,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ womfoo ];
   };
-
 }
diff --git a/pkgs/development/libraries/leatherman/default.nix b/pkgs/development/libraries/leatherman/default.nix
index 874c567ed42e8..05cf84144feb7 100644
--- a/pkgs/development/libraries/leatherman/default.nix
+++ b/pkgs/development/libraries/leatherman/default.nix
@@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
     owner = "puppetlabs";
   };
 
+  cmakeFlags = [ "-DLEATHERMAN_ENABLE_TESTING=OFF" ];
+
   NIX_CFLAGS_COMPILE = "-Wno-error";
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/leveldb/default.nix b/pkgs/development/libraries/leveldb/default.nix
index c29a323272782..a6f75413c91e7 100644
--- a/pkgs/development/libraries/leveldb/default.nix
+++ b/pkgs/development/libraries/leveldb/default.nix
@@ -38,13 +38,9 @@ stdenv.mkDerivation rec {
     "-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}"
     "-DCMAKE_SKIP_BUILD_RPATH=OFF"
     "-DLEVELDB_BUILD_TESTS=OFF"
+    "-DLEVELDB_BUILD_BENCHMARKS=OFF"
   ];
 
-  postPatch = lib.optionalString stdenv.hostPlatform.isStatic ''
-    # remove shared objects from "all" target
-    sed -i '/^all:/ s/$(SHARED_LIBS) $(SHARED_PROGRAMS)//' Makefile
-  '';
-
   postInstall = ''
     substituteInPlace "$out"/lib/cmake/leveldb/leveldbTargets.cmake \
       --replace 'INTERFACE_INCLUDE_DIRECTORIES "''${_IMPORT_PREFIX}/include"' 'INTERFACE_INCLUDE_DIRECTORIES "'$dev'"'
diff --git a/pkgs/development/libraries/libadwaita/default.nix b/pkgs/development/libraries/libadwaita/default.nix
index 447ad06e9b87d..f7bef8af2e4a3 100644
--- a/pkgs/development/libraries/libadwaita/default.nix
+++ b/pkgs/development/libraries/libadwaita/default.nix
@@ -21,7 +21,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libadwaita";
-  version = "1.1.0";
+  version = "1.1.1";
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "devdoc"; # demo app
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     owner = "GNOME";
     repo = "libadwaita";
     rev = version;
-    hash = "sha256-+bgCD2jy3M0gEAtbB+nOptQGEXXkvk1idoggJz4UMy0=";
+    hash = "sha256-iCMCQyhCUhp1f20+Qost9nnmfIUFE0iLKMKT/PfwOd4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libappindicator/default.nix b/pkgs/development/libraries/libappindicator/default.nix
index 469235e2e6af5..8ca2acc11c715 100644
--- a/pkgs/development/libraries/libappindicator/default.nix
+++ b/pkgs/development/libraries/libappindicator/default.nix
@@ -13,8 +13,8 @@ with lib;
 
 
 stdenv.mkDerivation rec {
-  name = let postfix = if gtkVersion == "2" && monoSupport then "sharp" else "gtk${gtkVersion}";
-          in "libappindicator-${postfix}-${version}";
+  pname = let postfix = if gtkVersion == "2" && monoSupport then "sharp" else "gtk${gtkVersion}";
+          in "libappindicator-${postfix}";
   version = "12.10.1+20.10.20200706.1";
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/libarchive/default.nix b/pkgs/development/libraries/libarchive/default.nix
index a448748ff227e..240371917f198 100644
--- a/pkgs/development/libraries/libarchive/default.nix
+++ b/pkgs/development/libraries/libarchive/default.nix
@@ -1,36 +1,58 @@
-{
-  fetchFromGitHub, lib, stdenv, pkg-config, autoreconfHook,
-  acl, attr, bzip2, e2fsprogs, libxml2, lzo, openssl, sharutils, xz, zlib, zstd,
+{ lib
+, stdenv
+, fetchFromGitHub
+, acl
+, attr
+, autoreconfHook
+, bzip2
+, e2fsprogs
+, lzo
+, openssl
+, pkg-config
+, sharutils
+, xz
+, zlib
+, zstd
+# Optional but increases closure only negligibly. Also, while libxml2 builds
+# fine on windows, libarchive has trouble linking windows things it depends on
+# for some reason.
+, xarSupport ? stdenv.hostPlatform.isUnix, libxml2
 
-  # Optional but increases closure only negligibly. Also, while libxml2
-  # builds fine on windows, but libarchive has trouble linking windows
-  # things it depends on for some reason.
-  xarSupport ? stdenv.hostPlatform.isUnix,
-
-  # for passthru.tests
-  cmake, nix, samba
+# for passthru.tests
+, cmake
+, nix
+, samba
 }:
 
 assert xarSupport -> libxml2 != null;
 
 stdenv.mkDerivation rec {
   pname = "libarchive";
-  version = "3.6.0";
+  version = "3.6.1";
 
   src = fetchFromGitHub {
     owner = "libarchive";
     repo = "libarchive";
     rev = "v${version}";
-    sha256 = "sha256-u6Zeu9yTjhx5U7KZVUkuuUsQPjWN71mE5egG4T+FGfY=";
+    hash = "sha256-G4wL5DDbX0FqaA4cnOlVLZ25ObN8dNsRtxyas29tpDA=";
   };
 
   outputs = [ "out" "lib" "dev" ];
 
-  nativeBuildInputs = [ pkg-config autoreconfHook ];
-  buildInputs =
-    lib.optional stdenv.hostPlatform.isUnix sharutils
-    ++ [ zlib bzip2 openssl xz lzo zstd ]
-    ++ lib.optionals stdenv.isLinux [ e2fsprogs attr acl ]
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs =  [
+    bzip2
+    lzo
+    openssl
+    xz
+    zlib
+    zstd
+  ] ++ lib.optional stdenv.hostPlatform.isUnix sharutils
+    ++ lib.optionals stdenv.isLinux [ acl attr e2fsprogs ]
     ++ lib.optional xarSupport libxml2;
 
   # Without this, pkg-config-based dependencies are unhappy
@@ -38,11 +60,17 @@ stdenv.mkDerivation rec {
 
   configureFlags = lib.optional (!xarSupport) "--without-xml2";
 
-  preBuild = if stdenv.isCygwin then ''
+  postPatch = ''
+     substituteInPlace Makefile.am --replace '/bin/pwd' 'pwd'
+  '';
+
+  preBuild = lib.optionalString stdenv.isCygwin ''
     echo "#include <windows.h>" >> config.h
-  '' else null;
+  '';
 
-  doCheck = false; # fails
+  # 484: test_write_disk_perms FAIL
+  # TODO: how to disable it? Should it be reported upstream?
+  doCheck = false;
 
   preFixup = ''
     sed -i $lib/lib/libarchive.la \
@@ -52,21 +80,22 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  passthru.tests = {
-    inherit cmake nix samba;
-  };
-
-  meta = {
+  meta = with lib; {
+    homepage = "http://libarchive.org";
     description = "Multi-format archive and compression library";
     longDescription = ''
-      This library has code for detecting and reading many archive formats and
-      compressions formats including (but not limited to) tar, shar, cpio, zip, and
-      compressed with gzip, bzip2, lzma, xz, ...
+      The libarchive project develops a portable, efficient C library that can
+      read and write streaming archives in a variety of formats. It also
+      includes implementations of the common tar, cpio, and zcat command-line
+      tools that use the libarchive library.
     '';
-    homepage = "http://libarchive.org";
     changelog = "https://github.com/libarchive/libarchive/releases/tag/v${version}";
-    license = lib.licenses.bsd3;
-    platforms = with lib.platforms; all;
-    maintainers = with lib.maintainers; [ jcumming ];
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ jcumming AndersonTorres ];
+    platforms = platforms.all;
+  };
+
+  passthru.tests = {
+    inherit cmake nix samba;
   };
 }
diff --git a/pkgs/development/libraries/libargon2/default.nix b/pkgs/development/libraries/libargon2/default.nix
index 2003c8957ffa4..eb8e6333d419d 100644
--- a/pkgs/development/libraries/libargon2/default.nix
+++ b/pkgs/development/libraries/libargon2/default.nix
@@ -11,7 +11,9 @@ stdenv.mkDerivation rec {
     sha256 = "0p4ry9dn0mi9js0byijxdyiwx74p1nr8zj7wjpd1fjgqva4sk23i";
   };
 
-  nativeBuildInputs = [ fixDarwinDylibNames ];
+  nativeBuildInputs = lib.optionals stdenv.isDarwin [
+    fixDarwinDylibNames
+  ];
 
   patches = [
     # TODO: remove when https://github.com/P-H-C/phc-winner-argon2/pull/277 is merged + released
diff --git a/pkgs/development/libraries/libargs/default.nix b/pkgs/development/libraries/libargs/default.nix
index dd3f304ef8b88..f75f556fb0de6 100644
--- a/pkgs/development/libraries/libargs/default.nix
+++ b/pkgs/development/libraries/libargs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "args";
-  version = "6.2.7";
+  version = "6.3.0";
 
   src = fetchFromGitHub {
     owner = "Taywee";
     repo = pname;
     rev = version;
-    sha256 = "sha256-I297qPXs8Fj7Ibq2PN6y/Eas3DiW5Ecvqot0ePwFNTI=";
+    sha256 = "sha256-fEM9KNqqxYbafMcHCW46Y//8Hrvd7gZrCIQhH5lhpFc=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/libavif/default.nix b/pkgs/development/libraries/libavif/default.nix
index 03dd9a33628f2..d5a2a686b893b 100644
--- a/pkgs/development/libraries/libavif/default.nix
+++ b/pkgs/development/libraries/libavif/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libavif";
-  version = "0.9.3";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "AOMediaCodec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ME/mkaHhFeHajTbc7zhg9vtf/8XgkgSRu9I/mlQXnds=";
+    sha256 = "sha256-EGu2avkqQXHFX4gKWsVfVdQN99f4J7Hm86C0sAhuP1Y=";
   };
 
   # reco: encode libaom slowest but best, decode dav1d fastest
diff --git a/pkgs/development/libraries/libcbor/default.nix b/pkgs/development/libraries/libcbor/default.nix
index 349b715d8520c..9473c4823fc4d 100644
--- a/pkgs/development/libraries/libcbor/default.nix
+++ b/pkgs/development/libraries/libcbor/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libcbor";
-  version = "0.8.0";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "PJK";
     repo = pname;
     rev = "v${version}";
-    sha256 = "01dv4vxcmbvpphqy16vqiwh25wx11x630js5wfnx7cryarsh9ld7";
+    sha256 = "sha256-Wp/48yQA17mf/dTgeMcMDvPpKOPkfLhQkCnzgGLpLtk=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/libcollectdclient/default.nix b/pkgs/development/libraries/libcollectdclient/default.nix
index 0bf654ee963cb..919ddcd3f0668 100644
--- a/pkgs/development/libraries/libcollectdclient/default.nix
+++ b/pkgs/development/libraries/libcollectdclient/default.nix
@@ -2,7 +2,8 @@
 with lib;
 
 collectd.overrideAttrs (oldAttrs: {
-  name = "libcollectdclient-${collectd.version}";
+  pname = "libcollectdclient";
+  inherit (collectd) version;
   buildInputs = [ ];
 
   configureFlags = (oldAttrs.configureFlags or []) ++ [
diff --git a/pkgs/development/libraries/libdeltachat/default.nix b/pkgs/development/libraries/libdeltachat/default.nix
index 5b969284995cb..990a9e40960e9 100644
--- a/pkgs/development/libraries/libdeltachat/default.nix
+++ b/pkgs/development/libraries/libdeltachat/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libdeltachat";
-  version = "1.76.0";
+  version = "1.77.0";
 
   src = fetchFromGitHub {
     owner = "deltachat";
     repo = "deltachat-core-rust";
     rev = version;
-    hash = "sha256-aeYOszOFyLaC1xKswYZLzqoWSFFWOOeOkc+WrtqU0jo=";
+    hash = "sha256-SEsa83PQ2r3PBJuJhTMeje1n2mZUt/f61DvoVPwyxvs=";
   };
 
   patches = [
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-sBFXcLXpAkX+HzRKrLKaHhi5ieS8Yc/Uf30WcXyWrok=";
+    hash = "sha256-6srybgs1DGaE6iMrnRUWRnoQM00VCsZwMNdKQ2eqqxg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libdvbcsa/default.nix b/pkgs/development/libraries/libdvbcsa/default.nix
new file mode 100644
index 0000000000000..3eebaafe45096
--- /dev/null
+++ b/pkgs/development/libraries/libdvbcsa/default.nix
@@ -0,0 +1,22 @@
+{lib, stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  pname = "libdvbcsa";
+  version = "1.1.0";
+
+  src = fetchurl {
+    url = "http://get.videolan.org/libdvbcsa/${version}/${pname}-${version}.tar.gz";
+    sha256 = "4db78af5cdb2641dfb1136fe3531960a477c9e3e3b6ba19a2754d046af3f456d";
+  };
+
+  doCheck = true;
+
+  meta = {
+    description = "A free implementation of the DVB Common Scrambling Algorithm with encryption and decryption capabilities";
+    homepage = "http://www.videolan.org/developers/libdvbcsa.html";
+    platforms = lib.platforms.unix;
+    license = lib.licenses.gpl1;
+    maintainers = with lib.maintainers; [ melias122 ];
+  };
+
+}
diff --git a/pkgs/development/libraries/libe57format/default.nix b/pkgs/development/libraries/libe57format/default.nix
index 2ad8573ecb306..fe5558681ffff 100644
--- a/pkgs/development/libraries/libe57format/default.nix
+++ b/pkgs/development/libraries/libe57format/default.nix
@@ -1,6 +1,7 @@
 {
   lib, stdenv,
   cmake,
+  fetchpatch,
   fetchFromGitHub,
   boost,
   xercesc,
@@ -18,6 +19,14 @@ stdenv.mkDerivation rec {
     sha256 = "15l23spjvak5h3n7aj3ggy0c3cwcg8mvnc9jlbd9yc2ra43bx7bp";
   };
 
+  patches = [
+    # gcc11 header fix
+    (fetchpatch {
+      url = "https://github.com/asmaloney/libE57Format/commit/13f6a16394ce3eb50ea4cd21f31f77f53294e8d0.patch";
+      sha256 = "sha256-4vVhKrCxnWO106DSAk+xxo4uk6zC89m9VQAPaDJ8Ed4=";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
   ];
diff --git a/pkgs/development/libraries/libechonest/default.nix b/pkgs/development/libraries/libechonest/default.nix
index 29a0a63a03e7f..6f160bdb6dcc3 100644
--- a/pkgs/development/libraries/libechonest/default.nix
+++ b/pkgs/development/libraries/libechonest/default.nix
@@ -11,6 +11,9 @@ stdenv.mkDerivation rec {
     sha256 = "0xbavf9f355dl1d3qv59x4ryypqrdanh9xdvw2d0q66l008crdkq";
   };
 
+  # Fix build with GCC 11.
+  NIX_CFLAGS_COMPILE = [ "-std=c++14" ];
+
   patches = [
     (fetchpatch {
       url = "https://github.com/lfranchi/libechonest/commit/009514f65044823ef29045397d4b58dd04d09977.patch";
diff --git a/pkgs/development/libraries/libepoxy/default.nix b/pkgs/development/libraries/libepoxy/default.nix
index c54c3c86d232b..348fbfee7b844 100644
--- a/pkgs/development/libraries/libepoxy/default.nix
+++ b/pkgs/development/libraries/libepoxy/default.nix
@@ -19,13 +19,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "libepoxy";
-  version = "1.5.9";
+  version = "1.5.10";
 
   src = fetchFromGitHub {
     owner = "anholt";
     repo = pname;
     rev = version;
-    sha256 = "sha256-8rdmC8FZUkKkEvWPJIdfrBQHiwa81vl5tmVqRdU4UIY=";
+    sha256 = "sha256-gZiyPOW2PeTMILcPiUTqPUGRNlMM5mI1z9563v4SgEs=";
   };
 
   patches = [ ./libgl-path.patch ];
@@ -62,7 +62,6 @@ stdenv.mkDerivation rec {
       --replace "[ 'cgl_epoxy_api', [ 'cgl_epoxy_api.c' ] ]," ""
   '';
 
-  # tests are running from version 1.5.9
   doCheck = true;
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/libevdev/default.nix b/pkgs/development/libraries/libevdev/default.nix
index cca5abef4fc72..b757e516573e0 100644
--- a/pkgs/development/libraries/libevdev/default.nix
+++ b/pkgs/development/libraries/libevdev/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libevdev";
-  version = "1.12.0";
+  version = "1.12.1";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-L3KeNIBpV5H5SC6DiL1yNAK4nw6vEYBXu96jzs7psjc=";
+    sha256 = "sha256-HbukG8UW08p6vA2luGLv4+qKcBj6bpuXzp05QBsiQmw=";
   };
 
   nativeBuildInputs = [ python3 ];
diff --git a/pkgs/development/libraries/libfido2/default.nix b/pkgs/development/libraries/libfido2/default.nix
index 13bbd246c64ad..e5d6d1c7c679b 100644
--- a/pkgs/development/libraries/libfido2/default.nix
+++ b/pkgs/development/libraries/libfido2/default.nix
@@ -12,12 +12,12 @@
 
 stdenv.mkDerivation rec {
   pname = "libfido2";
-  version = "1.9.0";
+  version = "1.10.0";
 
   # releases on https://developers.yubico.com/libfido2/Releases/ are signed
   src = fetchurl {
     url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz";
-    sha256 = "sha256-ujnjrzc20t/IrT0ctuO+fszAlYhhCjsHyGXQ7T5YwtI=";
+    sha256 = "sha256-Um79PVavcGwF0J89IfGO47CxWsDB9cXaGsvCfCcwuZs=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/development/libraries/libfive/default.nix b/pkgs/development/libraries/libfive/default.nix
index 8634f05ebbc7c..00031e66bf506 100644
--- a/pkgs/development/libraries/libfive/default.nix
+++ b/pkgs/development/libraries/libfive/default.nix
@@ -47,5 +47,6 @@ mkDerivation {
     maintainers = with maintainers; [ hodapp kovirobi ];
     license = with licenses; [ mpl20 gpl2Plus ];
     platforms = with platforms; linux ++ darwin;
+    broken = true;
   };
 }
diff --git a/pkgs/development/libraries/libgcrypt/default.nix b/pkgs/development/libraries/libgcrypt/default.nix
index eb4e8e9486296..56594620963c5 100644
--- a/pkgs/development/libraries/libgcrypt/default.nix
+++ b/pkgs/development/libraries/libgcrypt/default.nix
@@ -15,11 +15,11 @@ assert enableCapabilities -> stdenv.isLinux;
 
 stdenv.mkDerivation rec {
   pname = "libgcrypt";
-  version = "1.9.4";
+  version = "1.10.1";
 
   src = fetchurl {
     url = "mirror://gnupg/libgcrypt/${pname}-${version}.tar.bz2";
-    sha256 = "1xxabjv45zlxyryiwhmbfblsx41kl267wsb78bny6m14ly1rr17a";
+    hash = "sha256-7xSuVGsAhM2EJZ9hpV4Ho4w7U6/A9Ua//O8vAbr/6d4=";
   };
 
   outputs = [ "out" "dev" "info" ];
diff --git a/pkgs/development/libraries/libguestfs/default.nix b/pkgs/development/libraries/libguestfs/default.nix
index 49e76a94b0016..d65ead78624c0 100644
--- a/pkgs/development/libraries/libguestfs/default.nix
+++ b/pkgs/development/libraries/libguestfs/default.nix
@@ -12,11 +12,11 @@ assert javaSupport -> jdk != null;
 
 stdenv.mkDerivation rec {
   pname = "libguestfs";
-  version = "1.46.2";
+  version = "1.48.0";
 
   src = fetchurl {
     url = "https://libguestfs.org/download/${lib.versions.majorMinor version}-stable/${pname}-${version}.tar.gz";
-    sha256 = "0sq092irlj2jf64m7hjx23hn5k4iypqxmlyn9g2z0q0xab56ksp6";
+    sha256 = "sha256-FoH93t/PSEym3uxUIwMwoy3vvTDCqx+BeI4lLLXQSCk=";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/libraries/libhandy/default.nix b/pkgs/development/libraries/libhandy/default.nix
index c1d81f8043c80..38e540efd4e94 100644
--- a/pkgs/development/libraries/libhandy/default.nix
+++ b/pkgs/development/libraries/libhandy/default.nix
@@ -15,6 +15,7 @@
 , xvfb-run
 , gdk-pixbuf
 , librsvg
+, libxml2
 , hicolor-icon-theme
 , at-spi2-atk
 , at-spi2-core
@@ -25,7 +26,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libhandy";
-  version = "1.6.1";
+  version = "1.6.2";
 
   outputs = [
     "out"
@@ -38,7 +39,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-bqsDhEBNVr0bH6BZ2aCBF3d49q4ID/whIPKGVsp0YqQ=";
+    sha256 = "sha256-f6iaqoeWa20PX0700+/a9lTisB6ix84r1wMB0fn0LKM=";
   };
 
   nativeBuildInputs = [
@@ -48,6 +49,8 @@ stdenv.mkDerivation rec {
     ninja
     pkg-config
     vala
+  ] ++ lib.optionals enableGlade [
+    libxml2 # for xmllint
   ];
 
   buildInputs = [
diff --git a/pkgs/development/libraries/libinput/default.nix b/pkgs/development/libraries/libinput/default.nix
index 89bdc15ff62c1..5c06cd282da55 100644
--- a/pkgs/development/libraries/libinput/default.nix
+++ b/pkgs/development/libraries/libinput/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
-, fetchurl
+, fetchFromGitLab
+, gitUpdater
 , pkg-config
 , meson
 , ninja
@@ -44,13 +45,16 @@ in
 
 stdenv.mkDerivation rec {
   pname = "libinput";
-  version = "1.19.3";
+  version = "1.20.0";
 
   outputs = [ "bin" "out" "dev" ];
 
-  src = fetchurl {
-    url = "https://www.freedesktop.org/software/libinput/libinput-${version}.tar.xz";
-    sha256 = "sha256-PK54zN4Z19Dzh+WLxzTU0Xq19kJvVKnotyjJCxe6oGg=";
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = "libinput";
+    repo = "libinput";
+    rev = version;
+    sha256 = "Ey6ItBIrf1POACp2+6R0B4KxJq5V1HoO+y4j6hZSGAE=";
   };
 
   patches = [
@@ -113,8 +117,14 @@ stdenv.mkDerivation rec {
     sed -i "/install_subdir('libinput', install_dir : dir_etc)/d" meson.build
   '';
 
-  passthru.tests = {
-    libinput-module = nixosTests.libinput;
+  passthru = {
+    tests = {
+      libinput-module = nixosTests.libinput;
+    };
+    updateScript = gitUpdater {
+      inherit pname version;
+      patchlevel-unstable = true;
+    };
   };
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/libixp-hg/default.nix b/pkgs/development/libraries/libixp-hg/default.nix
deleted file mode 100644
index 0aeef61dae9eb..0000000000000
--- a/pkgs/development/libraries/libixp-hg/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, stdenv, fetchurl, unzip, txt2tags }:
-
-stdenv.mkDerivation rec {
-  rev = "148";
-  version = "hg-2012-12-02";
-  pname = "libixp";
-
-  src = fetchurl {
-    url = "https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/libixp/source-archive.zip";
-    sha256 = "0kcdvdcrkw6q39v563ncis6d7ini64xbgn5fd3b4aa95fp9sj3is";
-  };
-
-  configurePhase = ''
-   sed -i -e "s|^PREFIX.*=.*$|PREFIX = $out|" config.mk
-  '';
-
-  nativeBuildInputs = [ unzip ];
-  buildInputs = [ txt2tags ];
-
-  meta = {
-    homepage = "http://repo.cat-v.org/libixp/"; # see also https://libs.suckless.org/deprecated/libixp
-    description = "Portable, simple C-language 9P client and server libary";
-    maintainers = with lib.maintainers; [ kovirobi ];
-    license = lib.licenses.mit;
-    platforms = with lib.platforms; unix;
-  };
-}
diff --git a/pkgs/development/libraries/libixp/default.nix b/pkgs/development/libraries/libixp/default.nix
new file mode 100644
index 0000000000000..255f4ef30569a
--- /dev/null
+++ b/pkgs/development/libraries/libixp/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitHub, unzip, txt2tags }:
+
+stdenv.mkDerivation rec {
+  pname = "libixp";
+  version = "unstable-2022-04-04";
+
+  src = fetchFromGitHub {
+    owner = "0intro";
+    repo = "libixp";
+    rev = "ca2acb2988e4f040022f0e2094c69ab65fa6ec53";
+    hash = "sha256-S25DmXJ7fN0gXLV0IzUdz8hXPTYEHmaSG7Mnli6GQVc=";
+  };
+
+  postConfigure = ''
+   sed -i -e "s|^PREFIX.*=.*$|PREFIX = $out|" config.mk
+  '';
+
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ txt2tags ];
+
+  meta = {
+    homepage = "https://github.com/0intro/libixp";
+    description = "Portable, simple C-language 9P client and server libary";
+    maintainers = with lib.maintainers; [ kovirobi ];
+    license = lib.licenses.mit;
+    platforms = with lib.platforms; unix;
+  };
+}
diff --git a/pkgs/development/libraries/libjpeg-turbo/default.nix b/pkgs/development/libraries/libjpeg-turbo/default.nix
index 92aaf6201b936..75ec20545cae3 100644
--- a/pkgs/development/libraries/libjpeg-turbo/default.nix
+++ b/pkgs/development/libraries/libjpeg-turbo/default.nix
@@ -16,13 +16,13 @@ assert !(enableJpeg7 && enableJpeg8);  # pick only one or none, not both
 stdenv.mkDerivation rec {
 
   pname = "libjpeg-turbo";
-  version = "2.1.2";
+  version = "2.1.3";
 
   src = fetchFromGitHub {
     owner = "libjpeg-turbo";
     repo = "libjpeg-turbo";
     rev = version;
-    sha256 = "sha256-mlHueKAU/uNUdV9s4jWKAE+XVJdpEFhw2hxGvqRwAGc=";
+    sha256 = "sha256-GbOYoCNAsOESXrEsBb6OHVB4TKhPUEU04PBp8qXVMug=";
   };
 
   # This is needed by freeimage
diff --git a/pkgs/development/libraries/libjson/default.nix b/pkgs/development/libraries/libjson/default.nix
index 9106c19747164..0a1a631a6b93c 100644
--- a/pkgs/development/libraries/libjson/default.nix
+++ b/pkgs/development/libraries/libjson/default.nix
@@ -10,6 +10,7 @@ stdenv.mkDerivation rec {
   patches = [ ./install-fix.patch ];
   nativeBuildInputs = [ unzip ];
   makeFlags = [ "prefix=$(out)" ];
+  NIX_CFLAGS_COMPILE = [ "-std=c++11" ];
   preInstall = "mkdir -p $out/lib";
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/libjxl/default.nix b/pkgs/development/libraries/libjxl/default.nix
index 081ddaf4988a5..049d79c7025eb 100644
--- a/pkgs/development/libraries/libjxl/default.nix
+++ b/pkgs/development/libraries/libjxl/default.nix
@@ -111,7 +111,7 @@ stdenv.mkDerivation rec {
 
   LDFLAGS = lib.optionalString stdenv.hostPlatform.isRiscV "-latomic";
 
-  doCheck = true;
+  doCheck = !stdenv.hostPlatform.isi686;
 
   # The test driver runs a test `LibraryCLinkageTest` which without
   # LD_LIBRARY_PATH setting errors with:
diff --git a/pkgs/development/libraries/libkqueue/default.nix b/pkgs/development/libraries/libkqueue/default.nix
new file mode 100644
index 0000000000000..39a6efeb6fdb9
--- /dev/null
+++ b/pkgs/development/libraries/libkqueue/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "libkqueue";
+  version = "2.6.0";
+
+  src = fetchFromGitHub {
+    owner = "mheily";
+    repo = "libkqueue";
+    rev = "v${version}";
+    sha256 = "sha256-qh1r95A/ngg4KWSVYlC8ldv2ClV+rRPNcJDH+aAGxHs=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with lib; {
+    description = "kqueue(2) compatibility library";
+    homepage = "https://github.com/mheily/libkqueue";
+    license = licenses.bsd2;
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/liblastfm/default.nix b/pkgs/development/libraries/liblastfm/default.nix
index 0f0fec46a2771..68658d20ba6dd 100644
--- a/pkgs/development/libraries/liblastfm/default.nix
+++ b/pkgs/development/libraries/liblastfm/default.nix
@@ -23,6 +23,11 @@ stdenv.mkDerivation rec {
   buildInputs = [ fftwSinglePrec libsamplerate qtbase ]
     ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.SystemConfiguration;
 
+  NIX_CFLAGS_COMPILE =
+    lib.optionals (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "11") [
+      "-std=c++11"
+    ];
+
   dontWrapQtApps = true;
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/libmnl/default.nix b/pkgs/development/libraries/libmnl/default.nix
index a8ec4c5f3b955..9a6f6a1d14dc9 100644
--- a/pkgs/development/libraries/libmnl/default.nix
+++ b/pkgs/development/libraries/libmnl/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmnl";
-  version = "1.0.4";
+  version = "1.0.5";
 
   src = fetchurl {
     url = "https://netfilter.org/projects/libmnl/files/${pname}-${version}.tar.bz2";
-    sha256 = "108zampspaalv44zn0ar9h386dlfixpd149bnxa5hsi8kxlqj7qp";
+    sha256 = "09851ns07399rbz0y8slrlmnw3fn1nakr8d37pxjn5gkks8rnjr7";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/libnetfilter_conntrack/default.nix b/pkgs/development/libraries/libnetfilter_conntrack/default.nix
index a2097bb17e25b..e960c8d1bf481 100644
--- a/pkgs/development/libraries/libnetfilter_conntrack/default.nix
+++ b/pkgs/development/libraries/libnetfilter_conntrack/default.nix
@@ -1,14 +1,22 @@
-{ lib, stdenv, fetchurl, pkg-config, libnfnetlink, libmnl }:
+{ lib, stdenv, fetchurl, fetchpatch, pkg-config, libnfnetlink, libmnl }:
 
 stdenv.mkDerivation rec {
   pname = "libnetfilter_conntrack";
-  version = "1.0.8";
+  version = "1.0.9";
 
   src = fetchurl {
     url = "https://netfilter.org/projects/libnetfilter_conntrack/files/${pname}-${version}.tar.bz2";
-    sha256 = "1ky1mqgnplw2h9jf0kn0a69d94jkydhbiipng9l2hdcj13h3pl8c";
+    sha256 = "sha256-Z72d9J/jTouCFE9t+5OzIPOEqOpZcn6S/40YtfS1eag=";
   };
 
+  patches = [
+    # Fix Musl build.
+    (fetchpatch {
+      url = "https://git.netfilter.org/libnetfilter_conntrack/patch/?id=21ee35dde73aec5eba35290587d479218c6dd824";
+      sha256 = "00rp82jrx5ygcw8la3c7bv7sigw9qzbn956dk71qjx981a2g2kqk";
+    })
+  ];
+
   buildInputs = [ libmnl ];
   propagatedBuildInputs = [ libnfnetlink ];
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/libraries/libnfc/default.nix b/pkgs/development/libraries/libnfc/default.nix
index 7e0d18115ef79..41d546723600e 100644
--- a/pkgs/development/libraries/libnfc/default.nix
+++ b/pkgs/development/libraries/libnfc/default.nix
@@ -1,14 +1,17 @@
-{ lib, stdenv, fetchurl, libusb-compat-0_1, readline }:
+{ lib, stdenv, fetchFromGitHub, libusb-compat-0_1, readline, cmake, pkg-config }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "libnfc";
-  version = "1.7.1";
+  version = "1.8.0";
 
-  src = fetchurl {
-    url = "http://dl.bintray.com/nfc-tools/sources/libnfc-1.7.1.tar.bz2";
-    sha256 = "0wj0iwwcpmpalyk61aa7yc6i4p9hgdajkrgnlswgk0vnwbc78pll";
+  src = fetchFromGitHub {
+    owner = "nfc-tools";
+    repo = pname;
+    rev = "libnfc-${version}";
+    sha256 = "5gMv/HajPrUL/vkegEqHgN2d6Yzf01dTMrx4l34KMrQ=";
   };
 
+  nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ libusb-compat-0_1 readline ];
 
   configureFlags = [ "sysconfdir=/etc" ];
@@ -17,7 +20,7 @@ stdenv.mkDerivation {
     description = "Open source library libnfc for Near Field Communication";
     license = licenses.gpl3;
     homepage = "https://github.com/nfc-tools/libnfc";
-    maintainers = with maintainers; [offline];
+    maintainers = with maintainers; [ offline ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libnfnetlink/Use-stdlib-uint-instead-of-u_int.patch b/pkgs/development/libraries/libnfnetlink/Use-stdlib-uint-instead-of-u_int.patch
deleted file mode 100644
index 074bef42b97ab..0000000000000
--- a/pkgs/development/libraries/libnfnetlink/Use-stdlib-uint-instead-of-u_int.patch
+++ /dev/null
@@ -1,499 +0,0 @@
-From patchwork Fri Apr  3 22:04:46 2015
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: Use stdlib uint* instead of u_int*
-From: Nathan McSween <nwmcsween@gmail.com>
-X-Patchwork-Id: 458131
-X-Patchwork-Delegate: pablo@netfilter.org
-Message-Id: <1428098686-17843-1-git-send-email-nwmcsween@gmail.com>
-To: netfilter-devel@vger.kernel.org
-Cc: Nathan McSween <nwmcsween@gmail.com>
-Date: Fri,  3 Apr 2015 22:04:46 +0000
-
-Signed-off-by: Nathan McSween <nwmcsween@gmail.com>
----
- include/libnfnetlink/libnfnetlink.h           | 25 +++++-----
- include/libnfnetlink/linux_nfnetlink.h        | 11 +++--
- include/libnfnetlink/linux_nfnetlink_compat.h |  6 ++-
- src/iftable.c                                 |  9 ++--
- src/iftable.h                                 |  6 ++-
- src/libnfnetlink.c                            | 71 ++++++++++++++-------------
- src/rtnl.c                                    |  5 +-
- src/rtnl.h                                    |  3 +-
- 8 files changed, 73 insertions(+), 63 deletions(-)
-
-diff --git a/include/libnfnetlink/libnfnetlink.h b/include/libnfnetlink/libnfnetlink.h
-index 1d8c49d..cd0be3d 100644
---- a/include/libnfnetlink/libnfnetlink.h
-+++ b/include/libnfnetlink/libnfnetlink.h
-@@ -15,6 +15,7 @@
- #define aligned_u64 unsigned long long __attribute__((aligned(8)))
- #endif
- 
-+#include <stdint.h>
- #include <sys/socket.h>	/* for sa_family_t */
- #include <linux/netlink.h>
- #include <libnfnetlink/linux_nfnetlink.h>
-@@ -55,7 +56,7 @@ struct nfnlhdr {
- struct nfnl_callback {
- 	int (*call)(struct nlmsghdr *nlh, struct nfattr *nfa[], void *data);
- 	void *data;
--	u_int16_t attr_count;
-+	uint16_t attr_count;
- };
- 
- struct nfnl_handle;
-@@ -69,7 +70,7 @@ extern struct nfnl_handle *nfnl_open(void);
- extern int nfnl_close(struct nfnl_handle *);
- 
- extern struct nfnl_subsys_handle *nfnl_subsys_open(struct nfnl_handle *, 
--						   u_int8_t, u_int8_t, 
-+						   uint8_t, uint8_t,
- 						   unsigned int);
- extern void nfnl_subsys_close(struct nfnl_subsys_handle *);
- 
-@@ -88,8 +89,8 @@ extern int nfnl_sendiov(const struct nfnl_handle *nfnlh,
- 			const struct iovec *iov, unsigned int num,
- 			unsigned int flags);
- extern void nfnl_fill_hdr(struct nfnl_subsys_handle *, struct nlmsghdr *,
--			  unsigned int, u_int8_t, u_int16_t, u_int16_t,
--			  u_int16_t);
-+			  unsigned int, uint8_t, uint16_t, uint16_t,
-+			  uint16_t);
- extern __attribute__((deprecated)) int
- nfnl_talk(struct nfnl_handle *, struct nlmsghdr *, pid_t,
-           unsigned, struct nlmsghdr *,
-@@ -103,8 +104,8 @@ nfnl_listen(struct nfnl_handle *,
- /* receiving */
- extern ssize_t nfnl_recv(const struct nfnl_handle *h, unsigned char *buf, size_t len);
- extern int nfnl_callback_register(struct nfnl_subsys_handle *,
--				  u_int8_t type, struct nfnl_callback *cb);
--extern int nfnl_callback_unregister(struct nfnl_subsys_handle *, u_int8_t type);
-+				  uint8_t type, struct nfnl_callback *cb);
-+extern int nfnl_callback_unregister(struct nfnl_subsys_handle *, uint8_t type);
- extern int nfnl_handle_packet(struct nfnl_handle *, char *buf, int len);
- 
- /* parsing */
-@@ -180,12 +181,12 @@ extern int nfnl_query(struct nfnl_handle *h, struct nlmsghdr *nlh);
- 
- /* nfnl attribute handling functions */
- extern int nfnl_addattr_l(struct nlmsghdr *, int, int, const void *, int);
--extern int nfnl_addattr8(struct nlmsghdr *, int, int, u_int8_t);
--extern int nfnl_addattr16(struct nlmsghdr *, int, int, u_int16_t);
--extern int nfnl_addattr32(struct nlmsghdr *, int, int, u_int32_t);
-+extern int nfnl_addattr8(struct nlmsghdr *, int, int, uint8_t);
-+extern int nfnl_addattr16(struct nlmsghdr *, int, int, uint16_t);
-+extern int nfnl_addattr32(struct nlmsghdr *, int, int, uint32_t);
- extern int nfnl_nfa_addattr_l(struct nfattr *, int, int, const void *, int);
--extern int nfnl_nfa_addattr16(struct nfattr *, int, int, u_int16_t);
--extern int nfnl_nfa_addattr32(struct nfattr *, int, int, u_int32_t);
-+extern int nfnl_nfa_addattr16(struct nfattr *, int, int, uint16_t);
-+extern int nfnl_nfa_addattr32(struct nfattr *, int, int, uint32_t);
- extern int nfnl_parse_attr(struct nfattr **, int, struct nfattr *, int);
- #define nfnl_parse_nested(tb, max, nfa) \
- 	nfnl_parse_attr((tb), (max), NFA_DATA((nfa)), NFA_PAYLOAD((nfa)))
-@@ -197,7 +198,7 @@ extern int nfnl_parse_attr(struct nfattr **, int, struct nfattr *, int);
- ({	(tail)->nfa_len = (void *) NLMSG_TAIL(nlh) - (void *) tail; })
- 
- extern void nfnl_build_nfa_iovec(struct iovec *iov, struct nfattr *nfa, 
--				 u_int16_t type, u_int32_t len,
-+				 uint16_t type, uint32_t len,
- 				 unsigned char *val);
- extern unsigned int nfnl_rcvbufsiz(const struct nfnl_handle *h, 
- 				   unsigned int size);
-diff --git a/include/libnfnetlink/linux_nfnetlink.h b/include/libnfnetlink/linux_nfnetlink.h
-index 76a8550..7b843c6 100644
---- a/include/libnfnetlink/linux_nfnetlink.h
-+++ b/include/libnfnetlink/linux_nfnetlink.h
-@@ -1,5 +1,6 @@
- #ifndef _NFNETLINK_H
- #define _NFNETLINK_H
-+#include <stdint.h>
- #include <linux/types.h>
- #include <libnfnetlink/linux_nfnetlink_compat.h>
- 
-@@ -25,9 +26,9 @@ enum nfnetlink_groups {
- /* General form of address family dependent message.
-  */
- struct nfgenmsg {
--	u_int8_t  nfgen_family;		/* AF_xxx */
--	u_int8_t  version;		/* nfnetlink version */
--	u_int16_t    res_id;		/* resource id */
-+	uint8_t  nfgen_family;		/* AF_xxx */
-+	uint8_t  version;		/* nfnetlink version */
-+	uint16_t    res_id;		/* resource id */
- };
- 
- #define NFNETLINK_V0	0
-@@ -59,7 +60,7 @@ struct nfnl_callback
- 	int (*call)(struct sock *nl, struct sk_buff *skb, 
- 		struct nlmsghdr *nlh, struct nlattr *cda[]);
- 	const struct nla_policy *policy;	/* netlink attribute policy */
--	const u_int16_t attr_count;		/* number of nlattr's */
-+	const uint16_t attr_count;		/* number of nlattr's */
- };
- 
- struct nfnetlink_subsystem
-@@ -76,7 +77,7 @@ extern int nfnetlink_subsys_unregister(const struct nfnetlink_subsystem *n);
- extern int nfnetlink_has_listeners(unsigned int group);
- extern int nfnetlink_send(struct sk_buff *skb, u32 pid, unsigned group, 
- 			  int echo);
--extern int nfnetlink_unicast(struct sk_buff *skb, u_int32_t pid, int flags);
-+extern int nfnetlink_unicast(struct sk_buff *skb, uint32_t pid, int flags);
- 
- #define MODULE_ALIAS_NFNL_SUBSYS(subsys) \
- 	MODULE_ALIAS("nfnetlink-subsys-" __stringify(subsys))
-diff --git a/include/libnfnetlink/linux_nfnetlink_compat.h b/include/libnfnetlink/linux_nfnetlink_compat.h
-index e145176..cd094fc 100644
---- a/include/libnfnetlink/linux_nfnetlink_compat.h
-+++ b/include/libnfnetlink/linux_nfnetlink_compat.h
-@@ -3,6 +3,8 @@
- #ifndef __KERNEL__
- /* Old nfnetlink macros for userspace */
- 
-+#include <stdint.h>
-+
- /* nfnetlink groups: Up to 32 maximum */
- #define NF_NETLINK_CONNTRACK_NEW 		0x00000001
- #define NF_NETLINK_CONNTRACK_UPDATE		0x00000002
-@@ -20,8 +22,8 @@
- 
- struct nfattr
- {
--	u_int16_t nfa_len;
--	u_int16_t nfa_type;	/* we use 15 bits for the type, and the highest
-+	uint16_t nfa_len;
-+	uint16_t nfa_type;	/* we use 15 bits for the type, and the highest
- 				 * bit to indicate whether the payload is nested */
- };
- 
-diff --git a/src/iftable.c b/src/iftable.c
-index 5976ed8..3411c4c 100644
---- a/src/iftable.c
-+++ b/src/iftable.c
-@@ -9,6 +9,7 @@
- /* IFINDEX handling */
- 
- #include <unistd.h>
-+#include <stdint.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-@@ -27,10 +28,10 @@
- struct ifindex_node {
- 	struct list_head head;
- 
--	u_int32_t	index;
--	u_int32_t	type;
--	u_int32_t	alen;
--	u_int32_t	flags;
-+	uint32_t	index;
-+	uint32_t	type;
-+	uint32_t	alen;
-+	uint32_t	flags;
- 	char		addr[8];
- 	char		name[16];
- };
-diff --git a/src/iftable.h b/src/iftable.h
-index 8df7f24..0cc5335 100644
---- a/src/iftable.h
-+++ b/src/iftable.h
-@@ -1,8 +1,10 @@
- #ifndef _IFTABLE_H
- #define _IFTABLE_H
- 
--int iftable_delete(u_int32_t dst, u_int32_t mask, u_int32_t gw, u_int32_t oif);
--int iftable_insert(u_int32_t dst, u_int32_t mask, u_int32_t gw, u_int32_t oif);
-+#include <stdint.h>
-+
-+int iftable_delete(uint32_t dst, uint32_t mask, uint32_t gw, uint32_t oif);
-+int iftable_insert(uint32_t dst, uint32_t mask, uint32_t gw, uint32_t oif);
- 
- int iftable_init(void);
- void iftable_fini(void);
-diff --git a/src/libnfnetlink.c b/src/libnfnetlink.c
-index 398b7d7..b8958dc 100644
---- a/src/libnfnetlink.c
-+++ b/src/libnfnetlink.c
-@@ -36,6 +36,7 @@
-  * 	minor cleanups
-  */
- 
-+#include <stdint.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <unistd.h>
-@@ -72,9 +73,9 @@
- 
- struct nfnl_subsys_handle {
- 	struct nfnl_handle 	*nfnlh;
--	u_int32_t		subscriptions;
--	u_int8_t		subsys_id;
--	u_int8_t		cb_count;
-+	uint32_t		subscriptions;
-+	uint8_t		subsys_id;
-+	uint8_t		cb_count;
- 	struct nfnl_callback 	*cb;	/* array of callbacks */
- };
- 
-@@ -86,11 +87,11 @@ struct nfnl_handle {
- 	int			fd;
- 	struct sockaddr_nl	local;
- 	struct sockaddr_nl	peer;
--	u_int32_t		subscriptions;
--	u_int32_t		seq;
--	u_int32_t		dump;
--	u_int32_t		rcv_buffer_size;	/* for nfnl_catch */
--	u_int32_t		flags;
-+	uint32_t		subscriptions;
-+	uint32_t		seq;
-+	uint32_t		dump;
-+	uint32_t		rcv_buffer_size;	/* for nfnl_catch */
-+	uint32_t		flags;
- 	struct nlmsghdr 	*last_nlhdr;
- 	struct nfnl_subsys_handle subsys[NFNL_MAX_SUBSYS+1];
- };
-@@ -145,7 +146,7 @@ unsigned int nfnl_portid(const struct nfnl_handle *h)
- static int recalc_rebind_subscriptions(struct nfnl_handle *nfnlh)
- {
- 	int i, err;
--	u_int32_t new_subscriptions = nfnlh->subscriptions;
-+	uint32_t new_subscriptions = nfnlh->subscriptions;
- 
- 	for (i = 0; i < NFNL_MAX_SUBSYS; i++)
- 		new_subscriptions |= nfnlh->subsys[i].subscriptions;
-@@ -273,8 +274,8 @@ void nfnl_set_rcv_buffer_size(struct nfnl_handle *h, unsigned int size)
-  * a valid address that points to a nfnl_subsys_handle structure is returned.
-  */
- struct nfnl_subsys_handle *
--nfnl_subsys_open(struct nfnl_handle *nfnlh, u_int8_t subsys_id,
--		 u_int8_t cb_count, u_int32_t subscriptions)
-+nfnl_subsys_open(struct nfnl_handle *nfnlh, uint8_t subsys_id,
-+		 uint8_t cb_count, uint32_t subscriptions)
- {
- 	struct nfnl_subsys_handle *ssh;
- 
-@@ -435,10 +436,10 @@ int nfnl_sendiov(const struct nfnl_handle *nfnlh, const struct iovec *iov,
-  */
- void nfnl_fill_hdr(struct nfnl_subsys_handle *ssh,
- 		    struct nlmsghdr *nlh, unsigned int len, 
--		    u_int8_t family,
--		    u_int16_t res_id,
--		    u_int16_t msg_type,
--		    u_int16_t msg_flags)
-+		    uint8_t family,
-+		    uint16_t res_id,
-+		    uint16_t msg_type,
-+		    uint16_t msg_flags)
- {
- 	assert(ssh);
- 	assert(nlh);
-@@ -849,14 +850,14 @@ int nfnl_nfa_addattr_l(struct nfattr *nfa, int maxlen, int type,
- }
- 
- /**
-- * nfnl_addattr8 - Add u_int8_t attribute to nlmsghdr
-+ * nfnl_addattr8 - Add uint8_t attribute to nlmsghdr
-  *
-  * @n: netlink message header to which attribute is to be added
-  * @maxlen: maximum length of netlink message header
-  * @type: type of new attribute
-  * @data: content of new attribute
-  */
--int nfnl_addattr8(struct nlmsghdr *n, int maxlen, int type, u_int8_t data)
-+int nfnl_addattr8(struct nlmsghdr *n, int maxlen, int type, uint8_t data)
- {
- 	assert(n);
- 	assert(maxlen > 0);
-@@ -866,7 +867,7 @@ int nfnl_addattr8(struct nlmsghdr *n, int maxlen, int type, u_int8_t data)
- }
- 
- /**
-- * nfnl_nfa_addattr16 - Add u_int16_t attribute to struct nfattr 
-+ * nfnl_nfa_addattr16 - Add uint16_t attribute to struct nfattr
-  *
-  * @nfa: struct nfattr
-  * @maxlen: maximal length of nfattr buffer
-@@ -875,7 +876,7 @@ int nfnl_addattr8(struct nlmsghdr *n, int maxlen, int type, u_int8_t data)
-  *
-  */
- int nfnl_nfa_addattr16(struct nfattr *nfa, int maxlen, int type, 
--		       u_int16_t data)
-+		       uint16_t data)
- {
- 	assert(nfa);
- 	assert(maxlen > 0);
-@@ -885,7 +886,7 @@ int nfnl_nfa_addattr16(struct nfattr *nfa, int maxlen, int type,
- }
- 
- /**
-- * nfnl_addattr16 - Add u_int16_t attribute to nlmsghdr
-+ * nfnl_addattr16 - Add uint16_t attribute to nlmsghdr
-  *
-  * @n: netlink message header to which attribute is to be added
-  * @maxlen: maximum length of netlink message header
-@@ -894,7 +895,7 @@ int nfnl_nfa_addattr16(struct nfattr *nfa, int maxlen, int type,
-  *
-  */
- int nfnl_addattr16(struct nlmsghdr *n, int maxlen, int type,
--		   u_int16_t data)
-+		   uint16_t data)
- {
- 	assert(n);
- 	assert(maxlen > 0);
-@@ -904,7 +905,7 @@ int nfnl_addattr16(struct nlmsghdr *n, int maxlen, int type,
- }
- 
- /**
-- * nfnl_nfa_addattr32 - Add u_int32_t attribute to struct nfattr 
-+ * nfnl_nfa_addattr32 - Add uint32_t attribute to struct nfattr
-  *
-  * @nfa: struct nfattr
-  * @maxlen: maximal length of nfattr buffer
-@@ -913,7 +914,7 @@ int nfnl_addattr16(struct nlmsghdr *n, int maxlen, int type,
-  *
-  */
- int nfnl_nfa_addattr32(struct nfattr *nfa, int maxlen, int type, 
--		       u_int32_t data)
-+		       uint32_t data)
- {
- 	assert(nfa);
- 	assert(maxlen > 0);
-@@ -923,7 +924,7 @@ int nfnl_nfa_addattr32(struct nfattr *nfa, int maxlen, int type,
- }
- 
- /**
-- * nfnl_addattr32 - Add u_int32_t attribute to nlmsghdr
-+ * nfnl_addattr32 - Add uint32_t attribute to nlmsghdr
-  *
-  * @n: netlink message header to which attribute is to be added
-  * @maxlen: maximum length of netlink message header
-@@ -932,7 +933,7 @@ int nfnl_nfa_addattr32(struct nfattr *nfa, int maxlen, int type,
-  *
-  */
- int nfnl_addattr32(struct nlmsghdr *n, int maxlen, int type,
--		   u_int32_t data)
-+		   uint32_t data)
- {
- 	assert(n);
- 	assert(maxlen > 0);
-@@ -980,7 +981,7 @@ int nfnl_parse_attr(struct nfattr *tb[], int max, struct nfattr *nfa, int len)
-  *
-  */ 
- void nfnl_build_nfa_iovec(struct iovec *iov, struct nfattr *nfa, 
--			  u_int16_t type, u_int32_t len, unsigned char *val)
-+			  uint16_t type, uint32_t len, unsigned char *val)
- {
- 	assert(iov);
- 	assert(nfa);
-@@ -1115,7 +1116,7 @@ struct nlmsghdr *nfnl_get_msg_next(struct nfnl_handle *h,
-  * appropiately.
-  */
- int nfnl_callback_register(struct nfnl_subsys_handle *ssh,
--			   u_int8_t type, struct nfnl_callback *cb)
-+			   uint8_t type, struct nfnl_callback *cb)
- {
- 	assert(ssh);
- 	assert(cb);
-@@ -1138,7 +1139,7 @@ int nfnl_callback_register(struct nfnl_subsys_handle *ssh,
-  * On sucess, 0 is returned. On error, -1 is returned and errno is
-  * set appropiately.
-  */
--int nfnl_callback_unregister(struct nfnl_subsys_handle *ssh, u_int8_t type)
-+int nfnl_callback_unregister(struct nfnl_subsys_handle *ssh, uint8_t type)
- {
- 	assert(ssh);
- 
-@@ -1161,8 +1162,8 @@ int nfnl_check_attributes(const struct nfnl_handle *h,
- 	assert(nfa);
- 
- 	int min_len;
--	u_int8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type);
--	u_int8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type);
-+	uint8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type);
-+	uint8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type);
- 	const struct nfnl_subsys_handle *ssh;
- 	struct nfnl_callback *cb;
- 
-@@ -1212,8 +1213,8 @@ static int __nfnl_handle_msg(struct nfnl_handle *h, struct nlmsghdr *nlh,
- 			     int len)
- {
- 	struct nfnl_subsys_handle *ssh;
--	u_int8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type);
--	u_int8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type);
-+	uint8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type);
-+	uint8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type);
- 	int err = 0;
- 
- 	if (subsys_id > NFNL_MAX_SUBSYS)
-@@ -1243,7 +1244,7 @@ int nfnl_handle_packet(struct nfnl_handle *h, char *buf, int len)
- {
- 
- 	while (len >= NLMSG_SPACE(0)) {
--		u_int32_t rlen;
-+		uint32_t rlen;
- 		struct nlmsghdr *nlh = (struct nlmsghdr *)buf;
- 
- 		if (nlh->nlmsg_len < sizeof(struct nlmsghdr)
-@@ -1285,8 +1286,8 @@ static int nfnl_is_error(struct nfnl_handle *h, struct nlmsghdr *nlh)
- static int nfnl_step(struct nfnl_handle *h, struct nlmsghdr *nlh)
- {
- 	struct nfnl_subsys_handle *ssh;
--	u_int8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type);
--	u_int8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type);
-+	uint8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type);
-+	uint8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type);
- 
- 	/* Is this an error message? */
- 	if (nfnl_is_error(h, nlh)) {
-diff --git a/src/rtnl.c b/src/rtnl.c
-index 7b4ac7d..34802fe 100644
---- a/src/rtnl.c
-+++ b/src/rtnl.c
-@@ -11,6 +11,7 @@
- /* rtnetlink - routing table netlink interface */
- 
- #include <unistd.h>
-+#include <stdint.h>
- #include <stdlib.h>
- #include <string.h>
- #include <errno.h>
-@@ -30,7 +31,7 @@
- #define rtnl_log(x, ...)
- 
- static inline struct rtnl_handler *
--find_handler(struct rtnl_handle *rtnl_handle, u_int16_t type)
-+find_handler(struct rtnl_handle *rtnl_handle, uint16_t type)
- {
- 	struct rtnl_handler *h;
- 	for (h = rtnl_handle->handlers; h; h = h->next) {
-@@ -41,7 +42,7 @@ find_handler(struct rtnl_handle *rtnl_handle, u_int16_t type)
- }
- 
- static int call_handler(struct rtnl_handle *rtnl_handle,
--			u_int16_t type,
-+			uint16_t type,
- 			struct nlmsghdr *hdr)
- {
- 	struct rtnl_handler *h = find_handler(rtnl_handle, type);
-diff --git a/src/rtnl.h b/src/rtnl.h
-index 0c403dc..9858ae5 100644
---- a/src/rtnl.h
-+++ b/src/rtnl.h
-@@ -1,13 +1,14 @@
- #ifndef _RTNL_H
- #define _RTNL_H
- 
-+#include <stdint.h>
- #include <linux/types.h>
- #include <linux/rtnetlink.h>
- 
- struct rtnl_handler {
- 	struct rtnl_handler *next;
- 
--	u_int16_t	nlmsg_type;
-+	uint16_t	nlmsg_type;
- 	int		(*handlefn)(struct nlmsghdr *h, void *arg);
- 	void		*arg;
- };
diff --git a/pkgs/development/libraries/libnfnetlink/default.nix b/pkgs/development/libraries/libnfnetlink/default.nix
index b22722d3439e7..3b6b804a8dc62 100644
--- a/pkgs/development/libraries/libnfnetlink/default.nix
+++ b/pkgs/development/libraries/libnfnetlink/default.nix
@@ -2,17 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libnfnetlink";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchurl {
     url = "https://www.netfilter.org/projects/libnfnetlink/files/libnfnetlink-${version}.tar.bz2";
-    sha256 = "06mm2x4b01k3m7wnrxblk9j0mybyr4pfz28ml7944xhjx6fy2w7j";
+    sha256 = "0xn3rcrzxr6g82kfxzs9bqn2zvl2kf2yda30drwb9vr6sk1wfr5h";
   };
 
-  patches = [
-    ./Use-stdlib-uint-instead-of-u_int.patch
-  ];
-
   meta = {
     description = "Low-level library for netfilter related kernel/userspace communication";
     longDescription = ''
diff --git a/pkgs/development/libraries/libnftnl/default.nix b/pkgs/development/libraries/libnftnl/default.nix
index 2c351181ee22b..66134eaffe094 100644
--- a/pkgs/development/libraries/libnftnl/default.nix
+++ b/pkgs/development/libraries/libnftnl/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A userspace library providing a low-level netlink API to the in-kernel nf_tables subsystem";
-    homepage = "http://netfilter.org/projects/libnftnl";
+    homepage = "https://netfilter.org/projects/libnftnl/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ fpletz ajs124 ];
diff --git a/pkgs/development/libraries/libngspice/default.nix b/pkgs/development/libraries/libngspice/default.nix
index 2f8aab830da09..e65ec32e34ddd 100644
--- a/pkgs/development/libraries/libngspice/default.nix
+++ b/pkgs/development/libraries/libngspice/default.nix
@@ -4,11 +4,11 @@
 # the ngspice derivation.
 stdenv.mkDerivation rec {
   pname = "libngspice";
-  version = "34";
+  version = "36";
 
   src = fetchurl {
     url = "mirror://sourceforge/ngspice/ngspice-${version}.tar.gz";
-    sha256 = "sha256-ImP//GaUdUlyr3By7wHP5irHkIANrWUbwpC/yueb17U=";
+    sha256 = "sha256-T4GCh++6JFNBBGY1t1eugfh5VJsyakMWtfbml6pRf4w=";
   };
 
   nativeBuildInputs = [ flex bison ];
diff --git a/pkgs/development/libraries/libosmscout/default.nix b/pkgs/development/libraries/libosmscout/default.nix
index 2f83963d205f1..b11ec3eb94c1d 100644
--- a/pkgs/development/libraries/libosmscout/default.nix
+++ b/pkgs/development/libraries/libosmscout/default.nix
@@ -11,6 +11,8 @@ mkDerivation rec {
     sha256 = "1pa459h52kw88mvsdvkz83f4p35vvgsfy2qfjwcj61gj4y9d2rq4";
   };
 
+  cmakeFlags = [ "-DOSMSCOUT_BUILD_TESTS=OFF" ];
+
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ marisa qtlocation ];
 
diff --git a/pkgs/development/libraries/libotr/default.nix b/pkgs/development/libraries/libotr/default.nix
index bd8a521544c29..a9c1d2008af3f 100644
--- a/pkgs/development/libraries/libotr/default.nix
+++ b/pkgs/development/libraries/libotr/default.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1x8rliydhbibmzwdbyr7pd7n87m2jmxnqkpvaalnf4154hj1hfwb";
   };
 
+  patches = [ ./fix-regtest-client.patch ];
+
   outputs = [ "bin" "out" "dev" ];
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/development/libraries/libotr/fix-regtest-client.patch b/pkgs/development/libraries/libotr/fix-regtest-client.patch
new file mode 100644
index 0000000000000..bfd0007b9616c
--- /dev/null
+++ b/pkgs/development/libraries/libotr/fix-regtest-client.patch
@@ -0,0 +1,11 @@
+diff -Nur a/tests/regression/client/client.c b/tests/regression/client/client.c
+--- a/tests/regression/client/client.c	2015-12-25 17:39:45.000000000 +0000
++++ b/tests/regression/client/client.c	2022-03-29 19:33:18.646398117 +0100
+@@ -27,6 +27,7 @@
+ #include <syscall.h>
+ #include <sys/epoll.h>
+ #include <sys/types.h>
++#include <sys/socket.h>
+ #include <sys/un.h>
+ #include <unistd.h>
+ 
diff --git a/pkgs/development/libraries/libowfat/default.nix b/pkgs/development/libraries/libowfat/default.nix
index 9db1354677d65..665121b58b5ce 100644
--- a/pkgs/development/libraries/libowfat/default.nix
+++ b/pkgs/development/libraries/libowfat/default.nix
@@ -17,5 +17,8 @@ stdenv.mkDerivation rec {
     homepage = "https://www.fefe.de/libowfat/";
     license = licenses.gpl2;
     platforms = platforms.linux;
+    # Doesn't build with glibc 2.34: https://hydra.nixos.org/build/156248131
+    # Should be fixed with the next release: https://bugs.gentoo.org/806505
+    broken = true;
   };
 }
diff --git a/pkgs/development/libraries/libpinyin/default.nix b/pkgs/development/libraries/libpinyin/default.nix
index 4f6b2ed00506b..2247c3b9406f6 100644
--- a/pkgs/development/libraries/libpinyin/default.nix
+++ b/pkgs/development/libraries/libpinyin/default.nix
@@ -16,13 +16,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "libpinyin";
-  version = "2.6.1";
+  version = "2.6.2";
 
   src = fetchFromGitHub {
     owner = "libpinyin";
     repo = "libpinyin";
     rev = version;
-    sha256 = "0izisma5g9a7mxfxs177pi1d7v9dklm0ar4z404nf2s8x4wcg3ib";
+    sha256 = "sha256-hafetjKWqImg3Jr1tSXjY0RwbBQ7LccXqx0OdtKCy/c=";
   };
 
   postUnpack = ''
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library for intelligent sentence-based Chinese pinyin input method";
-    homepage = "https://sourceforge.net/projects/libpinyin";
+    homepage = "https://github.com/libpinyin/libpinyin";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ linsui ericsagnes ];
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libpostal/default.nix b/pkgs/development/libraries/libpostal/default.nix
index d32cb2731a11a..6b616a61d5170 100644
--- a/pkgs/development/libraries/libpostal/default.nix
+++ b/pkgs/development/libraries/libpostal/default.nix
@@ -22,6 +22,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/openvenues/libpostal";
     license = licenses.mit;
     maintainers = [ maintainers.Thra11 ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libpqxx/6.nix b/pkgs/development/libraries/libpqxx/6.nix
index feb9c7e65147a..c9e55fd9c0191 100644
--- a/pkgs/development/libraries/libpqxx/6.nix
+++ b/pkgs/development/libraries/libpqxx/6.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, postgresql, doxygen, xmlto, python2, gnused }:
+{ lib, stdenv, fetchFromGitHub, postgresql, doxygen, xmlto, python3, gnused }:
 
 stdenv.mkDerivation rec {
   pname = "libpqxx";
-  version = "6.4.5";
+  version = "6.4.8";
 
   src = fetchFromGitHub {
     owner = "jtv";
     repo = pname;
     rev = version;
-    sha256 = "0djmjr2b5x5nd2a4idv5j8s6w0kdmvil910iv1kyc7x94dirbrni";
+    hash = "sha256-ybnW9ip1QVadmbYLP+gvo49k9ExHfnsOhSnI6NjsAQk=";
   };
 
-  nativeBuildInputs = [ gnused python2 ];
+  nativeBuildInputs = [ gnused python3 ];
   buildInputs = [ postgresql doxygen xmlto ];
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/libqalculate/default.nix b/pkgs/development/libraries/libqalculate/default.nix
index 55132d155238e..ddaa6ae3e1d4d 100644
--- a/pkgs/development/libraries/libqalculate/default.nix
+++ b/pkgs/development/libraries/libqalculate/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libqalculate";
-  version = "4.1.0";
+  version = "4.1.1";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "libqalculate";
     rev = "v${version}";
-    sha256 = "sha256-P3mb5HEj9gHq2mABdIRxF6ZukrPd70sy0DRLT0qKDqk=";
+    sha256 = "sha256-y9GNf2xR3bZ8Pj99Y8qSBbK+hQEkg/+xOzUdyFI5HLw=";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/pkgs/development/libraries/libraspberrypi/default.nix b/pkgs/development/libraries/libraspberrypi/default.nix
index 2a5b75a7b906b..b7e528301e8fc 100644
--- a/pkgs/development/libraries/libraspberrypi/default.nix
+++ b/pkgs/development/libraries/libraspberrypi/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libraspberrypi";
-  version = "unstable-2021-10-25";
+  version = "unstable-2022-03-23";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "userland";
-    rev = "0093675e4aa6e152a3ffc318b51a124e96eb287b";
-    sha256 = "qpooQy9k2UZ94KaqlFwurV+tt0GrBSRffGdlvMcn1XU=";
+    rev = "c4fd1b8986c6d6d4ae5cd51e65a8bbeb495dfa4e";
+    hash = "sha256-sAfpfq7C9HXVS7ym3UFIO6bpEIWFCOfVCSN2n5q1RNg=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/libraw/default.nix b/pkgs/development/libraries/libraw/default.nix
index 3ff7e725f3d86..758b00febf5fc 100644
--- a/pkgs/development/libraries/libraw/default.nix
+++ b/pkgs/development/libraries/libraw/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook, lcms2, pkg-config }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   pname = "libraw";
-  version = "0.20.2";
+  version = "0.20.2.p2";
 
   src = fetchFromGitHub {
     owner = "LibRaw";
     repo = "LibRaw";
-    rev = version;
-    sha256 = "16nm4r2l5501c9zvz25pzajq5id592jhn068scjxhr8np2cblybc";
+    rev = "fedad11e87daad7b7d389a3ef84ccf10b5e84710"; # current 0.20-stable branch
+    sha256 = "1mklf8lzybzyg75ja34822xlv6h9nw93griyrjjna7darl1dyvja";
   };
 
   outputs = [ "out" "lib" "dev" "doc" ];
diff --git a/pkgs/development/libraries/libraw/unstable.nix b/pkgs/development/libraries/libraw/unstable.nix
new file mode 100644
index 0000000000000..3f19bb53c4e64
--- /dev/null
+++ b/pkgs/development/libraries/libraw/unstable.nix
@@ -0,0 +1,12 @@
+{ libraw, fetchFromGitHub }:
+
+libraw.overrideAttrs (_: rec {
+  version = "unstable-2021-12-03";
+
+  src = fetchFromGitHub {
+    owner = "LibRaw";
+    repo = "LibRaw";
+    rev = "52b2fc52e93a566e7e05eaa44cada58e3360b6ad";
+    sha256 = "kW0R4iPuqnFuWYDrl46ok3kaPcGgY2MqZT7mqVX+BDQ=";
+  };
+})
diff --git a/pkgs/development/libraries/librealsense/default.nix b/pkgs/development/libraries/librealsense/default.nix
index 0011dc2f6e11f..5b1673ae37294 100644
--- a/pkgs/development/libraries/librealsense/default.nix
+++ b/pkgs/development/libraries/librealsense/default.nix
@@ -8,11 +8,11 @@
 , ninja
 , pkg-config
 , gcc
-, cudaSupport ? config.cudaSupport or false, cudatoolkit
+, cudaSupport ? config.cudaSupport or false, cudaPackages ? {}
 , enablePython ? false, pythonPackages ? null
 }:
 
-assert cudaSupport -> cudatoolkit != null;
+assert cudaSupport -> (cudaPackages?cudatoolkit && cudaPackages.cudatoolkit != null);
 assert enablePython -> pythonPackages != null;
 
 stdenv.mkDerivation rec {
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     libusb1
     gcc.cc.lib
-  ] ++ lib.optional cudaSupport cudatoolkit
+  ] ++ lib.optional cudaSupport cudaPackages.cudatoolkit
     ++ lib.optionals enablePython (with pythonPackages; [python pybind11 ]);
 
   patches = [
diff --git a/pkgs/development/libraries/libressl/fix-build-with-glibc.patch b/pkgs/development/libraries/libressl/fix-build-with-glibc.patch
new file mode 100644
index 0000000000000..db482bcb35da3
--- /dev/null
+++ b/pkgs/development/libraries/libressl/fix-build-with-glibc.patch
@@ -0,0 +1,92 @@
+diff --git a/tests/explicit_bzero.c b/tests/explicit_bzero.c
+index 34c60baa8a..9c0e917829 100644
+--- a/tests/explicit_bzero.c
++++ b/tests/explicit_bzero.c
+@@ -1,4 +1,4 @@
+-/*	$OpenBSD: explicit_bzero.c,v 1.6 2014/07/11 01:10:35 matthew Exp $	*/
++/*	$OpenBSD: explicit_bzero.c,v 1.7 2021/03/27 11:17:58 bcook Exp $	*/
+ /*
+  * Copyright (c) 2014 Google Inc.
+  *
+@@ -18,6 +18,7 @@
+ #include <assert.h>
+ #include <errno.h>
+ #include <signal.h>
++#include <stdlib.h>
+ #include <string.h>
+ #include <unistd.h>
+ 
+@@ -36,19 +37,33 @@ enum {
+ 	SECRETBYTES = SECRETCOUNT * sizeof(secret)
+ };
+ 
+-static char altstack[SIGSTKSZ + SECRETBYTES];
++/*
++ * As of glibc 2.34, when _GNU_SOURCE is defined, SIGSTKSZ is no longer
++ * constant on Linux. SIGSTKSZ is redefined to sysconf (_SC_SIGSTKSZ).
++ */
++static char *altstack;
++#define ALTSTACK_SIZE (SIGSTKSZ + SECRETBYTES)
+ 
+ static void
+ setup_stack(void)
+ {
++	altstack = calloc(1, ALTSTACK_SIZE);
++	ASSERT_NE(NULL, altstack);
++
+ 	const stack_t sigstk = {
+ 		.ss_sp = altstack,
+-		.ss_size = sizeof(altstack),
++		.ss_size = ALTSTACK_SIZE
+ 	};
+ 
+ 	ASSERT_EQ(0, sigaltstack(&sigstk, NULL));
+ }
+ 
++static void
++cleanup_stack(void)
++{
++	free(altstack);
++}
++
+ static void
+ assert_on_stack(void)
+ {
+@@ -129,7 +144,7 @@ test_without_bzero()
+ 	char buf[SECRETBYTES];
+ 	assert_on_stack();
+ 	populate_secret(buf, sizeof(buf));
+-	char *res = memmem(altstack, sizeof(altstack), buf, sizeof(buf));
++	char *res = memmem(altstack, ALTSTACK_SIZE, buf, sizeof(buf));
+ 	ASSERT_NE(NULL, res);
+ 	return (res);
+ }
+@@ -140,7 +155,7 @@ test_with_bzero()
+ 	char buf[SECRETBYTES];
+ 	assert_on_stack();
+ 	populate_secret(buf, sizeof(buf));
+-	char *res = memmem(altstack, sizeof(altstack), buf, sizeof(buf));
++	char *res = memmem(altstack, ALTSTACK_SIZE, buf, sizeof(buf));
+ 	ASSERT_NE(NULL, res);
+ 	explicit_bzero(buf, sizeof(buf));
+ 	return (res);
+@@ -183,15 +198,17 @@ main()
+ 	 * on the stack.  This sanity checks that call_on_stack() and
+ 	 * populate_secret() work as intended.
+ 	 */
+-	memset(altstack, 0, sizeof(altstack));
++	memset(altstack, 0, ALTSTACK_SIZE);
+ 	call_on_stack(do_test_without_bzero);
+ 
+ 	/*
+ 	 * Now test with a call to explicit_bzero() and check that we
+ 	 * *don't* find any instances of the secret data.
+ 	 */
+-	memset(altstack, 0, sizeof(altstack));
++	memset(altstack, 0, ALTSTACK_SIZE);
+ 	call_on_stack(do_test_with_bzero);
+ 
++	cleanup_stack();
++
+ 	return (0);
+ }
diff --git a/pkgs/development/libraries/libsecret/default.nix b/pkgs/development/libraries/libsecret/default.nix
index 9e8be02aa63a3..95e2c69e4c7ba 100644
--- a/pkgs/development/libraries/libsecret/default.nix
+++ b/pkgs/development/libraries/libsecret/default.nix
@@ -18,7 +18,6 @@
 , gjs
 , libintl
 , dbus
-, xvfb-run
 }:
 
 stdenv.mkDerivation rec {
@@ -55,27 +54,43 @@ stdenv.mkDerivation rec {
     glib
   ];
 
-  installCheckInputs = [
+  checkInputs = [
     python3
     python3.pkgs.dbus-python
     python3.pkgs.pygobject3
-    xvfb-run
     dbus
     gjs
   ];
 
-  # needs to run after install because typelibs point to absolute paths
-  doInstallCheck = false; # Failed to load shared library '/force/shared/libmock_service.so.0' referenced by the typelib
+  doCheck = stdenv.isLinux;
 
   postPatch = ''
-    patchShebangs .
+    patchShebangs ./tool/test-*.sh
   '';
 
-  installCheckPhase = ''
-    export NO_AT_BRIDGE=1
-    xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
+  preCheck = ''
+    # Our gobject-introspection patches make the shared library paths absolute
+    # in the GIR files. When running tests, the library is not yet installed,
+    # though, so we need to replace the absolute path with a local one during build.
+    # We are using a symlink that will be overwitten during installation.
+    mkdir -p $out/lib $out/lib
+    ln -s "$PWD/libsecret/libmock-service.so" "$out/lib/libmock-service.so"
+    ln -s "$PWD/libsecret/libsecret-1.so.0" "$out/lib/libsecret-1.so.0"
+  '';
+
+  checkPhase = ''
+    runHook preCheck
+
+    dbus-run-session \
       --config-file=${dbus.daemon}/share/dbus-1/session.conf \
-      make check
+      meson test --print-errorlogs
+
+    runHook postCheck
+  '';
+
+  postCheck = ''
+    # This is test-only so it won’t be overwritten during installation.
+    rm "$out/lib/libmock-service.so"
   '';
 
   postFixup = ''
diff --git a/pkgs/development/libraries/libsoup/3.x.nix b/pkgs/development/libraries/libsoup/3.x.nix
index 4791e49ae3fa8..c4ab1094cced6 100644
--- a/pkgs/development/libraries/libsoup/3.x.nix
+++ b/pkgs/development/libraries/libsoup/3.x.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libsoup";
-  version = "3.0.5";
+  version = "3.0.6";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-9dFD22gws4Je3CocREnWOSc7C/oBeklwhxli2byiIUU=";
+    sha256 = "sha256-tF1Z+EC5rPm7Rf1FhU4+9nL1fjq5V0AcOtjXUCrCPaY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libspf2/default.nix b/pkgs/development/libraries/libspf2/default.nix
index c48c71e144852..203f2768e37b1 100644
--- a/pkgs/development/libraries/libspf2/default.nix
+++ b/pkgs/development/libraries/libspf2/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, fetchpatch }:
 
 with lib;
 
@@ -13,6 +13,14 @@ stdenv.mkDerivation rec {
     sha256 = "03iiaafdcwh220pqignk407h6klrakwz0zkb8iwk6nkwipkwvhsx";
   };
 
+  patches = [
+    # glibc-2.34 compat
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/gentoo/gentoo/dbb8a5c9f749cc11e61cfe558f164b165cbc30cb/mail-filter/libspf2/files/libspf2-1.2.11-undefined-dn_.patch";
+      sha256 = "sha256-6JVVkVGCcFJsNeBdVTPcLhW4KoHLY4ai/KXDMliXgPA=";
+    })
+  ];
+
   postPatch = ''
     # disable static bins compilation
     sed -i \
diff --git a/pkgs/development/libraries/libsystemtap/default.nix b/pkgs/development/libraries/libsystemtap/default.nix
index 17ac533732f9f..3525d057b97af 100644
--- a/pkgs/development/libraries/libsystemtap/default.nix
+++ b/pkgs/development/libraries/libsystemtap/default.nix
@@ -1,19 +1,22 @@
-{lib, stdenv, fetchgit, gettext, python2, elfutils}:
+{ lib, stdenv, fetchgit
+, gettext
+, python3
+, elfutils
+}:
 
 stdenv.mkDerivation {
   pname = "libsystemtap";
-  version = "3.2";
+  version = "4.6";
 
   src = fetchgit {
     url = "git://sourceware.org/git/systemtap.git";
-    rev = "4051c70c9318c837981384cbb23f3e9eb1bd0892";
-    sha256 = "0sd8n3j3rishks3gyqj2jyqhps7hmlfjyz8i0w8v98cczhhh04rq";
-    fetchSubmodules = false;
+    rev = "release-4.6";
+    hash = "sha256-z7OUy0VGxK39aYCWFfvJnWk34Je0R+51kK5pGh7TzXM=";
   };
 
   dontBuild = true;
 
-  nativeBuildInputs = [ gettext python2 elfutils ];
+  nativeBuildInputs = [ gettext python3 elfutils ];
 
   installPhase = ''
     mkdir -p $out/include
diff --git a/pkgs/development/libraries/libtiff/default.nix b/pkgs/development/libraries/libtiff/default.nix
index 190765273409a..6b455d992b8c1 100644
--- a/pkgs/development/libraries/libtiff/default.nix
+++ b/pkgs/development/libraries/libtiff/default.nix
@@ -53,6 +53,36 @@ stdenv.mkDerivation rec {
       url = "https://gitlab.com/libtiff/libtiff/-/commit/561599c99f987dc32ae110370cfdd7df7975586b.patch";
       sha256 = "0ycirjjc1vigj03kwjb92n6jszsl9p17ccw5hry7lli9gxyyr0an";
     })
+    (fetchpatch {
+      name = "CVE-2022-0891.patch";
+      url = "https://gitlab.com/libtiff/libtiff/-/commit/46dc8fcd4d38c3b6f35ab28e532aee80e6f609d6.patch";
+      sha256 = "1zn2pgsmbrjx3g2bpdggvwwbp6i348mikwlx4ws482h2379vmyj1";
+    })
+    (fetchpatch {
+      name = "CVE-2022-0865.patch";
+      url = "https://gitlab.com/libtiff/libtiff/-/commit/5e18004500cda10d9074bdb6166b054e95b659ed.patch";
+      sha256 = "131b9ial6avl2agwk31wp2jkrx59955f4r0dikx1jdaywqb7zhd1";
+    })
+    (fetchpatch {
+      name = "CVE-2022-0924.patch";
+      url = "https://gitlab.com/libtiff/libtiff/-/commit/408976c44ef0aad975e0d1b6c6dc80d60f9dc665.patch";
+      sha256 = "1aqaynp74ijxr3rizvbyz23ncs71pbbcw5src1zv46473sy55s8p";
+    })
+    (fetchpatch {
+      name = "CVE-2022-0907.patch";
+      url = "https://gitlab.com/libtiff/libtiff/-/commit/f2b656e2e64adde07a6cffd5c8e96bd81a850fea.patch";
+      sha256 = "0nsplq671qx0f35qww9mx27raqp3nvslz8iv7f3hxdgldylmh2vs";
+    })
+    (fetchpatch {
+      name = "CVE-2022-0909.patch";
+      url = "https://gitlab.com/libtiff/libtiff/-/commit/f8d0f9aa1ba04c9ae3bfe869a18141a8b8117ad7.patch";
+      sha256 = "1plhk6ildl16bp0k3wvzfd4a97hqfqfbbn7vjinsaasf4v0x3q5j";
+    })
+    (fetchpatch {
+      name = "CVE-2022-0908.patch";
+      url = "https://gitlab.com/libtiff/libtiff/-/commit/a95b799f65064e4ba2e2dfc206808f86faf93e85.patch";
+      sha256 = "0i61kkjaixdn2p933lpma9s6i0772vhxjxxcwyqagw96lmszrcm7";
+    })
   ];
 
   postPatch = ''
diff --git a/pkgs/development/libraries/libuldaq/default.nix b/pkgs/development/libraries/libuldaq/default.nix
index 2f8f7fbb30ea0..fb234ef60d14c 100644
--- a/pkgs/development/libraries/libuldaq/default.nix
+++ b/pkgs/development/libraries/libuldaq/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libuldaq";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "mccdaq";
     repo = "uldaq";
     rev = "v${version}";
-    sha256 = "0l9ima8ac99yd9vvjvdrmacm95ghv687wiy39zxm00cmghcfv3vj";
+    sha256 = "sha256-DA1mxu94z5xDpGK9OBwD02HXlOATv/slqZ4lz5GM7QM=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/libunistring/default.nix b/pkgs/development/libraries/libunistring/default.nix
index f7a77832c1831..01b302abd68ed 100644
--- a/pkgs/development/libraries/libunistring/default.nix
+++ b/pkgs/development/libraries/libunistring/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libunistring";
-  version = "0.9.10";
+  version = "1.0";
 
   src = fetchurl {
     url = "mirror://gnu/libunistring/${pname}-${version}.tar.gz";
-    sha256 = "02v17za10mxnj095x4pvm80jxyqwk93kailfc2j8xa1r6crmnbm8";
+    sha256 = "sha256-PAGEwOSS18IIzjHSXdHSxY8MPtbLvgMsWySM3a0xhUQ=";
   };
 
   outputs = [ "out" "dev" "info" "doc" ];
diff --git a/pkgs/development/libraries/libunwind/default.nix b/pkgs/development/libraries/libunwind/default.nix
index 4bce1341c7d8c..bda9001f913fa 100644
--- a/pkgs/development/libraries/libunwind/default.nix
+++ b/pkgs/development/libraries/libunwind/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, autoreconfHook, xz, buildPackages }:
+{ stdenv, lib, fetchurl, fetchpatch, autoreconfHook, xz, buildPackages }:
 
 stdenv.mkDerivation rec {
   pname = "libunwind";
@@ -9,6 +9,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-SmrsZmmR+0XQiJxErt6K1usQgHHDVU/N/2cfnJR5SXY=";
   };
 
+  patches = [
+    # Fix for aarch64 and non-4K pages. Remove once upgraded past 1.6.2.
+    (fetchpatch {
+      url = "https://github.com/libunwind/libunwind/commit/e85b65cec757ef589f28957d0c6c21c498a03bdf.patch";
+      sha256 = "1lnlygvhqrdrjgw303pg2k2k4ms4gaghpjsgmhk47q83vy1yjwfg";
+    })
+  ];
+
   postPatch = if stdenv.cc.isClang then ''
     substituteInPlace configure.ac --replace "-lgcc_s" ""
   '' else lib.optionalString stdenv.hostPlatform.isMusl ''
diff --git a/pkgs/development/libraries/libusb1/default.nix b/pkgs/development/libraries/libusb1/default.nix
index 1514d2702103b..24b147d142d74 100644
--- a/pkgs/development/libraries/libusb1/default.nix
+++ b/pkgs/development/libraries/libusb1/default.nix
@@ -7,33 +7,27 @@
 , udev
 , libobjc
 , IOKit
+, Security
 , withStatic ? false
 }:
 
 stdenv.mkDerivation rec {
   pname = "libusb";
-  version = "1.0.24";
+  version = "1.0.25";
 
   src = fetchFromGitHub {
     owner = "libusb";
     repo = "libusb";
     rev = "v${version}";
-    sha256 = "18ri8ky422hw64zry7bpbarb1m0hiljyf64a0a9y093y7aad38i7";
+    sha256 = "141wygijjcgka0h31504cdlvih4l2j02j67pcbb2l527p7dbc5pn";
   };
 
   outputs = [ "out" "dev" ];
 
-  patches = [ (fetchpatch {
-    # https://bugs.archlinux.org/task/69121
-    url = "https://github.com/libusb/libusb/commit/f6d2cb561402c3b6d3627c0eb89e009b503d9067.patch";
-    sha256 = "1dbahikcbwkjhyvks7wbp7fy2bf7nca48vg5z0zqvqzjb9y595cq";
-    excludes = [ "libusb/version_nano.h" ];
-  }) ];
-
   nativeBuildInputs = [ pkg-config autoreconfHook ];
   propagatedBuildInputs =
     lib.optional enableUdev udev ++
-    lib.optionals stdenv.isDarwin [ libobjc IOKit ];
+    lib.optionals stdenv.isDarwin [ libobjc IOKit Security ];
 
   dontDisableStatic = withStatic;
 
diff --git a/pkgs/development/libraries/libuv/default.nix b/pkgs/development/libraries/libuv/default.nix
index 1d9354d48e1a7..12f7f982c1df0 100644
--- a/pkgs/development/libraries/libuv/default.nix
+++ b/pkgs/development/libraries/libuv/default.nix
@@ -1,14 +1,14 @@
 { stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, pkg-config, ApplicationServices, CoreServices }:
 
 stdenv.mkDerivation rec {
-  version = "1.43.0";
+  version = "1.44.1";
   pname = "libuv";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-AsXJb2AGNx+SARPmY8uRFRLfX5vqTPNjwL8njSw/e7o=";
+    sha256 = "sha256-12uveSEavRxQW4xVrB4Rkkj+eHZ71Qy8dRG+95ldz50=";
   };
 
   postPatch = let
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
       "threadpool_multiple_event_loops" # times out on slow machines
       "get_passwd" # passed on NixOS but failed on other Linuxes
       "tcp_writealot" "udp_multicast_join" "udp_multicast_join6" # times out sometimes
+      "fs_fstat" # https://github.com/libuv/libuv/issues/2235#issuecomment-1012086927
     ] ++ lib.optionals stdenv.isDarwin [
         # Sometimes: timeout (no output), failed uv_listen. Someone
         # should report these failures to libuv team. There tests should
diff --git a/pkgs/development/libraries/libva/1.0.0.nix b/pkgs/development/libraries/libva/1.0.0.nix
deleted file mode 100644
index ade56ac16ee9e..0000000000000
--- a/pkgs/development/libraries/libva/1.0.0.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ stdenv, lib, fetchurl, libX11, pkg-config, libXext, libdrm, libXfixes, wayland, libffi
-, libGL, mesa
-, minimal ? false, libva1-minimal
-}:
-
-stdenv.mkDerivation rec {
-  pname = "libva";
-  version = "1.7.3";
-
-  src = fetchurl {
-    url = "https://www.freedesktop.org/software/vaapi/releases/libva/${pname}-${version}.tar.bz2";
-    sha256 = "1ndrf136rlw03xag7j1xpmf9015d1h0dpnv6v587jnh6k2a17g12";
-  };
-
-  outputs = [ "bin" "dev" "out" ];
-
-  nativeBuildInputs = [ pkg-config ];
-
-  buildInputs = [ libdrm ]
-    ++ lib.optionals (!minimal) [ libva1-minimal libX11 libXext libXfixes wayland libffi libGL ];
-  # TODO: share libs between minimal and !minimal - perhaps just symlink them
-
-  configureFlags =
-    # Add FHS paths for non-NixOS applications.
-    [ "--with-drivers-path=${mesa.drivers.driverLink}/lib/dri:/usr/lib/dri:/usr/lib32/dri" ] ++
-    lib.optionals (!minimal) [ "--enable-glx" ];
-
-  installFlags = [ "dummy_drv_video_ladir=$(out)/lib/dri" ];
-
-  meta = with lib; {
-    homepage = "http://www.freedesktop.org/wiki/Software/vaapi";
-    license = licenses.mit;
-    description = "VAAPI library: Video Acceleration API";
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ ];
-  };
-}
diff --git a/pkgs/development/libraries/libva/1.nix b/pkgs/development/libraries/libva/1.nix
new file mode 100644
index 0000000000000..5197420783a12
--- /dev/null
+++ b/pkgs/development/libraries/libva/1.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, autoreconfHook
+, libX11
+, pkg-config
+, libXext
+, libdrm
+, libXfixes
+, wayland
+, libffi
+, libGL
+, mesa
+, minimal ? false
+, libva1-minimal
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libva" + lib.optionalString minimal "-minimal";
+  version = "1.8.3";
+
+  src = fetchFromGitHub {
+    owner = "intel";
+    repo = "libva";
+    rev = version;
+    sha256 = "sha256-ur59cqdZqXIY2dDUSie9XsxyRomVBxIW2IVKAgWYC38=";
+  };
+
+  outputs = [ "dev" "out" ];
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+
+  buildInputs = [ libdrm ]
+    ++ lib.optionals (!minimal) [ libva1-minimal libX11 libXext libXfixes wayland libffi libGL ];
+  # TODO: share libs between minimal and !minimal - perhaps just symlink them
+
+  # Add FHS paths for non-NixOS applications.
+  configureFlags = [ "--with-drivers-path=${mesa.drivers.driverLink}/lib/dri:/usr/lib/dri:/usr/lib32/dri" ]
+    ++ lib.optionals (!minimal) [ "--enable-glx" ];
+
+  installFlags = [ "dummy_drv_video_ladir=$(out)/lib/dri" ];
+
+  meta = with lib; {
+    homepage = "https://www.freedesktop.org/wiki/Software/vaapi/";
+    license = licenses.mit;
+    description = "VAAPI library: Video Acceleration API";
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/libraries/libva/default.nix b/pkgs/development/libraries/libva/default.nix
index 10f90a16c927a..037318353ce06 100644
--- a/pkgs/development/libraries/libva/default.nix
+++ b/pkgs/development/libraries/libva/default.nix
@@ -6,14 +6,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  pname = "libva" + lib.optionalString minimal "minimal";
-  version = "2.13.0";
+  pname = "libva" + lib.optionalString minimal "-minimal";
+  version = "2.14.0";
 
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "libva";
     rev    = version;
-    sha256 = "0vsvli3xc0gqqp06p7wkm973lhr7c5qgnyz5jfjmf8kv75rajazp";
+    sha256 = "0q395lg6gp05mwf04zbrwgj6q9073lahh3wrcfa2i8ll60cfq9fg";
   };
 
   outputs = [ "dev" "out" ];
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
     homepage = "https://01.org/linuxmedia/vaapi";
     changelog = "https://raw.githubusercontent.com/intel/libva/${version}/NEWS";
     license = licenses.mit;
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libva/utils.nix b/pkgs/development/libraries/libva/utils.nix
index 05ba3519ff4c2..357d20527957e 100644
--- a/pkgs/development/libraries/libva/utils.nix
+++ b/pkgs/development/libraries/libva/utils.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libva-utils";
-  version = "2.13.0";
+  version = "2.14.0";
 
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "libva-utils";
     rev    = version;
-    sha256 = "0ahbwikdb0chf76whm62zz0a7zqil3gzsxmq38ccbqlmnnyjkbbb";
+    sha256 = "sha256-WuNJCFBbXbLSftL+L15ruq9PxM1XhIfYpP/IccB+aBs=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/intel/libva-utils";
     changelog = "https://raw.githubusercontent.com/intel/libva-utils/${version}/NEWS";
     license = licenses.mit;
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix
index cda7c091908d3..2c10689d729a6 100644
--- a/pkgs/development/libraries/libvirt/default.nix
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -26,6 +26,7 @@
 , ninja
 , perl
 , perlPackages
+, polkit
 , pkg-config
 , pmutils
 , python3
@@ -227,6 +228,9 @@ stdenv.mkDerivation rec {
         --replace "gmake" "make" \
         --replace "ggrep" "grep"
 
+      substituteInPlace src/util/virpolkit.h \
+        --replace '"/usr/bin/pkttyagent"' '"${polkit.bin}/bin/pkttyagent"'
+
       patchShebangs .
     ''
     + (lib.concatStringsSep "\n" (lib.mapAttrsToList patchBuilder overrides));
@@ -323,7 +327,9 @@ stdenv.mkDerivation rec {
     gettext() { "${gettext}/bin/gettext" "$@"; }
     '
   '' + optionalString isLinux ''
-    substituteInPlace $out/lib/systemd/system/libvirtd.service --replace /bin/kill ${coreutils}/bin/kill
+    for f in $out/lib/systemd/system/*.service ; do
+      substituteInPlace $f --replace /bin/kill ${coreutils}/bin/kill
+    done
     rm $out/lib/systemd/system/{virtlockd,virtlogd}.*
     wrapProgram $out/sbin/libvirtd \
       --prefix PATH : /run/libvirt/nix-emulators:${binPath}
diff --git a/pkgs/development/libraries/libvmaf/default.nix b/pkgs/development/libraries/libvmaf/default.nix
index 03ca9b0d11b31..a58f816e8afaf 100644
--- a/pkgs/development/libraries/libvmaf/default.nix
+++ b/pkgs/development/libraries/libvmaf/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libvmaf";
-  version = "2.3.0";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "netflix";
     repo = "vmaf";
     rev = "v${version}";
-    sha256 = "12mwl7vxc3xi0qar386mkhkpah9zzgjb74mzc2qqsgz9zzxp16dm";
+    sha256 = "sha256-TkMy2tEdG1FPPWfH/wPnVbs5kocqe4Y0jU4yvbiRZ9k=";
   };
 
   sourceRoot = "source/libvmaf";
diff --git a/pkgs/development/libraries/libwacom/default.nix b/pkgs/development/libraries/libwacom/default.nix
index 1517cf9707829..a46ccdf785045 100644
--- a/pkgs/development/libraries/libwacom/default.nix
+++ b/pkgs/development/libraries/libwacom/default.nix
@@ -12,7 +12,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libwacom";
-  version = "2.0.0";
+  version = "2.2.0";
 
   outputs = [ "out" "dev" ];
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     owner = "linuxwacom";
     repo = "libwacom";
     rev = "libwacom-${version}";
-    sha256 = "sha256-k8pEgEu+oWNa0rI47osVPKaZGxgwX/ENaz9jPrQXy0E=";
+    sha256 = "sha256-SqKXxmyP31kb6ikMQRqPaKNIpeLcMLLEGInCGIx5jWM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libwebsockets/default.nix b/pkgs/development/libraries/libwebsockets/default.nix
index faf6acd40b922..e0ee94faf0d48 100644
--- a/pkgs/development/libraries/libwebsockets/default.nix
+++ b/pkgs/development/libraries/libwebsockets/default.nix
@@ -5,12 +5,13 @@
 , openssl
 , zlib
 , libuv
+, fetchpatch
 # External poll is required for e.g. mosquitto, but discouraged by the maintainer.
 , withExternalPoll ? false
 }:
 
 let
-  generic = { version, sha256 }: stdenv.mkDerivation rec {
+  generic = { version, sha256, patches ? [] }: stdenv.mkDerivation rec {
     pname = "libwebsockets";
     inherit version;
 
@@ -21,6 +22,8 @@ let
       inherit sha256;
     };
 
+    inherit patches;
+
     buildInputs = [ openssl zlib libuv ];
 
     nativeBuildInputs = [ cmake ];
@@ -76,7 +79,15 @@ in {
   };
 
   libwebsockets_4_3 = generic {
-    version = "4.3.0";
-    sha256 = "13lxb487mqlzbsbv6fbj50r1717mfwdy87ps592lgfy3307yqpr4";
+    version = "4.3.1";
+    sha256 = "sha256-lB3JHh058cQc5rycLnHk3JAOgtku0nRCixN5U6lPKq8=";
+    patches = [
+      # fixes the propagated cmake files, fixing the build of ttyd
+      # see also https://github.com/tsl0922/ttyd/issues/918
+      (fetchpatch {
+        url = "https://github.com/warmcat/libwebsockets/commit/99a8b9c4422bed45c8b7412a1e121056f2a6132a.patch";
+        hash = "sha256-zHBo2ZEayvibM+jzeVaZqySxghaOLUglpSFwuGhl6HM=";
+      })
+    ];
   };
 }
diff --git a/pkgs/development/libraries/libxcrypt/default.nix b/pkgs/development/libraries/libxcrypt/default.nix
index 4df5bde228713..8bba9945abfe3 100644
--- a/pkgs/development/libraries/libxcrypt/default.nix
+++ b/pkgs/development/libraries/libxcrypt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libxcrypt";
-  version = "4.4.18";
+  version = "4.4.28";
 
   src = fetchFromGitHub {
     owner = "besser82";
     repo = "libxcrypt";
     rev = "v${version}";
-    sha256 = "4015bf1b3a2aab31da5a544424be36c1a0f0ffc1eaa219c0e7b048e4cdcbbfe1";
+    sha256 = "sha256-Ohf+RCOXnoCxAFnXXV9e2TCqpfZziQl+FGJTGDSQTF0=";
   };
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/libyang/default.nix b/pkgs/development/libraries/libyang/default.nix
index d6efe0543db76..cedc24909bcae 100644
--- a/pkgs/development/libraries/libyang/default.nix
+++ b/pkgs/development/libraries/libyang/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libyang";
-  version = "2.0.112";
+  version = "2.0.164";
 
   src = fetchFromGitHub {
     owner = "CESNET";
     repo = "libyang";
     rev = "v${version}";
-    sha256 = "sha256-f8x0tC3XcQ9fnUE987GYw8qEo/B+J759vpCImqG3QWs=";
+    sha256 = "sha256-0Ou0j9KaNkX/SFmid+wphvtu3wDTXkw+8xdck6lEE3w=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/liquid-dsp/default.nix b/pkgs/development/libraries/liquid-dsp/default.nix
index 746771f44fe43..76b9648ef4687 100644
--- a/pkgs/development/libraries/liquid-dsp/default.nix
+++ b/pkgs/development/libraries/liquid-dsp/default.nix
@@ -1,14 +1,14 @@
 {lib, stdenv, fetchFromGitHub, autoreconfHook }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "liquid-dsp";
-  version = "20170307";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "jgaeddert";
     repo = "liquid-dsp";
-    rev = "8c1978fa4f5662b8849fe712be716958f29cec0e";
-    sha256 = "0zpxvdsrw0vzzp3iaag3wh4z8ygl7fkswgjppp2fz2zhhqh93k2w";
+    rev = "v${version}";
+    sha256 = "0mr86z37yycrqwbrmsiayi1vqrgpjq0pn1c3p1qrngipkw45jnn0";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
@@ -19,5 +19,4 @@ stdenv.mkDerivation {
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
   };
-
 }
diff --git a/pkgs/development/libraries/log4shib/default.nix b/pkgs/development/libraries/log4shib/default.nix
index 0602b4c3b5237..1c9a6a1e2ac7a 100644
--- a/pkgs/development/libraries/log4shib/default.nix
+++ b/pkgs/development/libraries/log4shib/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [ autoreconfHook ];
 
+  NIX_CFLAGS_COMPILE = [ "-std=c++11" ];
+
   meta = with lib; {
     description = "A forked version of log4cpp that has been created for the Shibboleth project";
     maintainers = [ maintainers.jammerful ];
diff --git a/pkgs/development/libraries/mapbox-gl-native/default.nix b/pkgs/development/libraries/mapbox-gl-native/default.nix
index c71bf17a3c777..47b9ba63fc2da 100644
--- a/pkgs/development/libraries/mapbox-gl-native/default.nix
+++ b/pkgs/development/libraries/mapbox-gl-native/default.nix
@@ -30,6 +30,11 @@ mkDerivation rec {
       url = "https://git.alpinelinux.org/aports/plain/testing/mapbox-gl-native/0002-skip-license-check.patch?id=6751a93dca26b0b3ceec9eb151272253a2fe497e";
       sha256 = "1yybwzxbvn0lqb1br1fyg7763p2h117s6mkmywkl4l7qg9daa7ba";
     })
+    (fetchpatch {
+      name = "fix-compilation.patch";
+      url = "https://aur.archlinux.org/cgit/aur.git/plain/fix-compilation.patch?h=mapbox-gl-native";
+      hash = "sha256-KgJHyoIdKdnQo+gedns3C+mEXlaTH/UtyQsaYR1T3iI=";
+    })
   ];
 
   postPatch = ''
diff --git a/pkgs/development/libraries/mapbox-gl-qml/default.nix b/pkgs/development/libraries/mapbox-gl-qml/default.nix
index 49a7f26220dd8..a9a2ad64d7adc 100644
--- a/pkgs/development/libraries/mapbox-gl-qml/default.nix
+++ b/pkgs/development/libraries/mapbox-gl-qml/default.nix
@@ -6,31 +6,28 @@
 , curl
 , qtbase
 , qtlocation
-, mapbox-gl-native
+, maplibre-gl-native
 }:
 
 mkDerivation rec {
   pname = "mapbox-gl-qml";
-  version = "1.7.7.1";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "rinigus";
     repo = "mapbox-gl-qml";
     rev = version;
-    hash = "sha256-lmL9nawMY8rNNBV4zNF4N1gn9XZzIZ9Cw2ZRs9bjBaI=";
+    hash = "sha256-EVZbQXV8pI0QTqFDTTynVglsqX1O5oK0Pl5Y/wp+/q0=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ curl qtlocation mapbox-gl-native ];
+  buildInputs = [ curl qtlocation maplibre-gl-native ];
 
   postPatch = ''
     substituteInPlace src/CMakeLists.txt \
       --replace ' ''${QT_INSTALL_QML}' " $out/${qtbase.qtQmlPrefix}"
   '';
 
-  # Package expects qt5 subdirectory of mapbox-gl-native to be in the include path
-  NIX_CFLAGS_COMPILE = "-I${mapbox-gl-native}/include/qt5";
-
   meta = with lib; {
     description = "Unofficial Mapbox GL Native bindings for Qt QML";
     homepage = "https://github.com/rinigus/mapbox-gl-qml";
diff --git a/pkgs/development/libraries/maplibre-gl-native/default.nix b/pkgs/development/libraries/maplibre-gl-native/default.nix
new file mode 100644
index 0000000000000..c680f6822b5dc
--- /dev/null
+++ b/pkgs/development/libraries/maplibre-gl-native/default.nix
@@ -0,0 +1,66 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, pkg-config
+, qtbase
+, curl
+, libuv
+, glfw3
+, rapidjson
+}:
+
+mkDerivation rec {
+  pname = "maplibre-gl-native";
+  version = "unstable-2022-04-07";
+
+  src = fetchFromGitHub {
+    owner = "maplibre";
+    repo = "maplibre-gl-native";
+    rev = "225f8a4bfe7ad30fd59d693c1fb3ca0ba70d2806";
+    fetchSubmodules = true;
+    hash = "sha256-NLtpi+bDLTHlnzMZ4YFQyF5B1xt9lzHyZPvEQLlBAnY=";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "skip-license-check.patch";
+      url = "https://git.alpinelinux.org/aports/plain/testing/mapbox-gl-native/0002-skip-license-check.patch?id=6751a93dca26b0b3ceec9eb151272253a2fe497e";
+      sha256 = "1yybwzxbvn0lqb1br1fyg7763p2h117s6mkmywkl4l7qg9daa7ba";
+    })
+  ];
+
+  postPatch = ''
+    # don't use vendored rapidjson
+    rm -r vendor/mapbox-base/extras/rapidjson
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    curl
+    libuv
+    glfw3
+    qtbase
+    rapidjson
+  ];
+
+  cmakeFlags = [
+    "-DMBGL_WITH_QT=ON"
+    "-DMBGL_WITH_QT_LIB_ONLY=ON"
+    "-DMBGL_WITH_QT_HEADLESS=OFF"
+  ];
+
+  meta = with lib; {
+    description = "Open-source alternative to Mapbox GL Native";
+    homepage = "https://maplibre.org/";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ dotlambda ];
+    platforms = platforms.linux;
+    broken = lib.versionOlder qtbase.version "5.15";
+  };
+}
diff --git a/pkgs/development/libraries/mediastreamer/default.nix b/pkgs/development/libraries/mediastreamer/default.nix
index 5d9cc98b1a9ca..aa584deddb812 100644
--- a/pkgs/development/libraries/mediastreamer/default.nix
+++ b/pkgs/development/libraries/mediastreamer/default.nix
@@ -92,12 +92,14 @@ stdenv.mkDerivation rec {
   # Do not build static libraries
   cmakeFlags = [ "-DENABLE_STATIC=NO" ];
 
-  NIX_CFLAGS_COMPILE = toString [
+  NIX_CFLAGS_COMPILE = [
     "-DGIT_VERSION=\"v${version}\""
     "-Wno-error=deprecated-declarations"
     "-Wno-error=cast-function-type"
     "-Wno-error=stringop-truncation"
     "-Wno-error=stringop-overflow"
+  ] ++ lib.optionals (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "11") [
+    "-Wno-error=stringop-overread"
   ];
   NIX_LDFLAGS = "-lXext";
 
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index 23163763ed9b7..28e8c61bf7364 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -6,15 +6,15 @@
 , libelf, libvdpau
 , libglvnd, libunwind
 , galliumDrivers ? ["auto"]
-, driDrivers ? ["auto"]
 , vulkanDrivers ? ["auto"]
 , eglPlatforms ? [ "x11" ] ++ lib.optionals stdenv.isLinux [ "wayland" ]
 , OpenGL, Xplugin
-, withValgrind ? !stdenv.isDarwin && lib.meta.availableOn stdenv.hostPlatform valgrind-light, valgrind-light
+, withValgrind ? lib.meta.availableOn stdenv.hostPlatform valgrind-light && !valgrind-light.meta.broken, valgrind-light
 , enableGalliumNine ? stdenv.isLinux
 , enableOSMesa ? stdenv.isLinux
 , enableOpenCL ? stdenv.isLinux && stdenv.isx86_64
 , libclc
+, jdupes
 }:
 
 /** Packaging design:
@@ -33,7 +33,7 @@ with lib;
 let
   # Release calendar: https://www.mesa3d.org/release-calendar.html
   # Release frequency: https://www.mesa3d.org/releasing.html#schedule
-  version = "21.3.7";
+  version = "22.0.1";
   branch  = versions.major version;
 
 self = stdenv.mkDerivation {
@@ -47,7 +47,7 @@ self = stdenv.mkDerivation {
       "ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz"
       "ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz"
     ];
-    sha256 = "0ggw3s514z6szasbiy4dv5mdi689121yy2xly2g21gv1mavrvyml";
+    sha256 = "0vs20kyq9sxh52hd242yf7nz2wzw6di8jw7s19pb6q25qn19cpy0";
   };
 
   # TODO:
@@ -113,7 +113,6 @@ self = stdenv.mkDerivation {
     "-Ddri-search-path=${libglvnd.driverLink}/lib/dri"
 
     "-Dplatforms=${concatStringsSep "," eglPlatforms}"
-    "-Ddri-drivers=${concatStringsSep "," driDrivers}"
     "-Dgallium-drivers=${concatStringsSep "," galliumDrivers}"
     "-Dvulkan-drivers=${concatStringsSep "," vulkanDrivers}"
 
@@ -153,6 +152,7 @@ self = stdenv.mkDerivation {
     meson pkg-config ninja
     intltool bison flex file
     python3Packages.python python3Packages.Mako
+    jdupes
   ] ++ lib.optionals (elem "wayland" eglPlatforms) [
     wayland-scanner
   ];
@@ -228,6 +228,9 @@ self = stdenv.mkDerivation {
       fi
     done
 
+    # NAR doesn't support hard links, so convert them to symlinks to save space.
+    jdupes --hard-links --link-soft --recurse "$drivers"
+
     # add RPATH so the drivers can find the moved libgallium and libdricore9
     # moved here to avoid problems with stripping patchelfed files
     for lib in $drivers/lib/*.so* $drivers/lib/*/*.so*; do
diff --git a/pkgs/development/libraries/mlt/qt-5.nix b/pkgs/development/libraries/mlt/qt-5.nix
index 5c58aa4f8aec6..11a63a3cd5ce4 100644
--- a/pkgs/development/libraries/mlt/qt-5.nix
+++ b/pkgs/development/libraries/mlt/qt-5.nix
@@ -71,6 +71,7 @@ mkDerivation rec {
 
   passthru.updateScript = gitUpdater {
     inherit pname version;
+    attrPath = "libsForQt5.mlt";
     rev-prefix = "v";
   };
 
diff --git a/pkgs/development/libraries/mpich/default.nix b/pkgs/development/libraries/mpich/default.nix
index bff44d8aaf564..60e543c462960 100644
--- a/pkgs/development/libraries/mpich/default.nix
+++ b/pkgs/development/libraries/mpich/default.nix
@@ -11,17 +11,20 @@ assert (ch4backend.pname == "ucx" || ch4backend.pname == "libfabric");
 
 stdenv.mkDerivation  rec {
   pname = "mpich";
-  version = "4.0.1";
+  version = "4.0.2";
 
   src = fetchurl {
     url = "https://www.mpich.org/static/downloads/${version}/mpich-${version}.tar.gz";
-    sha256 = "11rnljqwz6mr88ybj726mk710h7gvz20hy7labmz4jkkaa0gx8b6";
+    sha256 = "0hnxvqhhscp3h70zf538dhqz9jwmqpwwnj3fqabdk8nli6lg2hjs";
   };
 
   configureFlags = [
     "--enable-shared"
     "--enable-sharedlib"
     "--with-pm=${withPm}"
+  ] ++ lib.optionals (lib.versionAtLeast gfortran.version "10") [
+    "FFLAGS=-fallow-argument-mismatch" # https://github.com/pmodels/mpich/issues/4300
+    "FCFLAGS=-fallow-argument-mismatch"
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/mustache-hpp/default.nix b/pkgs/development/libraries/mustache-hpp/default.nix
index 373f232a9866d..ce6dd1d21a9b3 100644
--- a/pkgs/development/libraries/mustache-hpp/default.nix
+++ b/pkgs/development/libraries/mustache-hpp/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "mustache";
@@ -11,11 +11,11 @@ stdenv.mkDerivation rec {
     sha256 = "0r9rbk6v1wpld2ismfsk2lkhbyv3dkf0p03hkjivbj05qkfhvlbb";
   };
 
-  nativeBuildInputs = [ cmake ];
+  dontBuild = true;
 
   installPhase = ''
     mkdir -p $out/include
-    cp ../mustache.hpp $out/include
+    cp mustache.hpp $out/include
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/mvapich/default.nix b/pkgs/development/libraries/mvapich/default.nix
index c496927ebca5c..0f358c2796280 100644
--- a/pkgs/development/libraries/mvapich/default.nix
+++ b/pkgs/development/libraries/mvapich/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
     "--enable-threads=multiple"
     "--enable-hybrid"
     "--enable-shared"
+    "FFLAGS=-fallow-argument-mismatch" # fix build with gfortran 10
   ] ++ optional useSlurm "--with-pm=slurm"
     ++ optional (network == "ethernet") "--with-device=ch3:sock"
     ++ optionals (network == "infiniband") [ "--with-device=ch3:mrail" "--with-rdma=gen2" ]
diff --git a/pkgs/development/libraries/netcdf-fortran/default.nix b/pkgs/development/libraries/netcdf-fortran/default.nix
index 40f22b0cabe50..d64d631f94ceb 100644
--- a/pkgs/development/libraries/netcdf-fortran/default.nix
+++ b/pkgs/development/libraries/netcdf-fortran/default.nix
@@ -15,6 +15,9 @@ stdenv.mkDerivation rec {
     ++ lib.optional stdenv.isDarwin CoreFoundation;
   doCheck = true;
 
+  FFLAGS = [ "-std=legacy" ];
+  FCFLAGS = [ "-std=legacy" ];
+
   meta = with lib; {
     description = "Fortran API to manipulate netcdf files";
     homepage = "https://www.unidata.ucar.edu/software/netcdf/";
diff --git a/pkgs/development/libraries/netcdf/default.nix b/pkgs/development/libraries/netcdf/default.nix
index 27af3be4f2df1..da2ad9c3f9ba1 100644
--- a/pkgs/development/libraries/netcdf/default.nix
+++ b/pkgs/development/libraries/netcdf/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
-, fetchpatch
-, fetchurl
+, fetchurl, unzip
 , hdf5
 , m4
 , curl # for DAP
@@ -11,25 +10,13 @@ let
   inherit (hdf5) mpiSupport mpi;
 in stdenv.mkDerivation rec {
   pname = "netcdf" + lib.optionalString mpiSupport "-mpi";
-  version = "4.8.0"; # Remove patch mentioned below on upgrade
+  version = "4.8.1";
 
   src = fetchurl {
-    url = "https://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-c-${version}.tar.gz";
-    sha256 = "1mfn8qi4k0b8pyar3wa8v0npj69c7rhgfdlppdwmq5jqk88kb5k7";
+    url = "https://downloads.unidata.ucar.edu/netcdf-c/${version}/netcdf-c-${version}.tar.gz";
+    sha256 = "1cbjwjmp9691clacw5v88hmpz46ngxs3bfpkf2xy1j7cvlkc72l0";
   };
 
-  patches = [
-    # Fixes:
-    #     *** Checking vlen of compound file...Sorry! Unexpected result, tst_h_atts3.c, line: 289
-    #     FAIL tst_h_atts3 (exit status: 2)
-    # TODO: Remove with next netcdf release (see https://github.com/Unidata/netcdf-c/pull/1980)
-    (fetchpatch {
-      name = "netcdf-Fix-tst_h_atts3-for-hdf5-1.12.patch";
-      url = "https://github.com/Unidata/netcdf-c/commit/9fc8ae62a8564e095ff17f4612874581db0e4db5.patch";
-      sha256 = "128kxz5jikq32x5qjmi0xdngi0k336rf6bvbcppvlk5gibg5nk7v";
-    })
-  ];
-
   postPatch = ''
     patchShebangs .
 
@@ -60,7 +47,8 @@ in stdenv.mkDerivation rec {
     remove-references-to -t ${stdenv.cc} "$(readlink -f $out/lib/libnetcdf.settings)"
   '';
 
-  doCheck = !mpiSupport;
+  doCheck = !(mpiSupport || (stdenv.isDarwin && stdenv.isAarch64));
+  checkInputs = [ unzip ];
 
   meta = {
       description = "Libraries for the Unidata network Common Data Format";
diff --git a/pkgs/development/libraries/nghttp2/default.nix b/pkgs/development/libraries/nghttp2/default.nix
index bd639ec3041a2..01df15c0a831e 100644
--- a/pkgs/development/libraries/nghttp2/default.nix
+++ b/pkgs/development/libraries/nghttp2/default.nix
@@ -1,90 +1,110 @@
-{ lib, stdenv, fetchurl, pkg-config
+{ lib
+, stdenv
+, fetchurl
+, installShellFiles
+, pkg-config
 
-# Optional Dependencies
-, openssl ? null, zlib ? null
-, enableLibEv ? !stdenv.hostPlatform.isWindows, libev ? null
-, enableCAres ? !stdenv.hostPlatform.isWindows, c-ares ? null
-, enableHpack ? false, jansson ? null
+# Optional dependencies
+, enableApp ? with stdenv.hostPlatform; !isWindows && !isStatic
+, c-ares ? null, libev ? null, openssl ? null, zlib ? null
 , enableAsioLib ? false, boost ? null
 , enableGetAssets ? false, libxml2 ? null
+, enableHpack ? false, jansson ? null
 , enableJemalloc ? false, jemalloc ? null
-, enableApp ? with stdenv.hostPlatform; !isWindows && !isStatic
 , enablePython ? false, python ? null, cython ? null, ncurses ? null, setuptools ? null
 
+# Unit tests ; we have to set TZDIR, which is a GNUism.
+, enableTests ? stdenv.hostPlatform.isGnu, cunit ? null, tzdata ? null
+
 # downstream dependencies, for testing
 , curl
 , libsoup
 }:
 
-# Note: this package is used for bootstrapping fetchurl, and thus
-# cannot use fetchpatch! All mutable patches (generated by GitHub or
-# cgit) that are needed here should be included directly in Nixpkgs as
-# files.
+# Note: this package is used for bootstrapping fetchurl, and thus cannot use fetchpatch!
+# All mutable patches (generated by GitHub or cgit) that are needed here
+# should be included directly in Nixpkgs as files.
 
-assert enableHpack -> jansson != null;
+assert enableApp -> c-ares != null && libev != null && openssl != null && zlib != null;
 assert enableAsioLib -> boost != null;
-assert enableGetAssets -> libxml2 != null;
-assert enableJemalloc -> jemalloc != null;
+assert enableGetAssets -> enableApp == true && libxml2 != null;
+assert enableHpack -> enableApp == true && jansson != null;
+assert enableJemalloc -> enableApp == true && jemalloc != null;
 assert enablePython -> python != null && cython != null && ncurses != null && setuptools != null;
-
-let inherit (lib) optional optionals optionalString; in
+assert enableTests -> cunit != null && tzdata != null;
 
 stdenv.mkDerivation rec {
   pname = "nghttp2";
-  version = "1.43.0";
+  version = "1.47.0";
 
   src = fetchurl {
     url = "https://github.com/${pname}/${pname}/releases/download/v${version}/${pname}-${version}.tar.bz2";
-    sha256 = "0qhgyphzdv72dgdfxin2xbk9623za3jwbcvhhaxixiwp6djj8vsm";
+    sha256 = "11d6w8iqrhnxmjd9ss9fzf66f7a32d48h2ihyk1580lg8d3rkj07";
   };
 
   outputs = [ "bin" "out" "dev" "lib" ]
-    ++ optional enablePython "python";
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ openssl ]
-    ++ optional enableLibEv libev
-    ++ [ zlib ]
-    ++ optional enableCAres c-ares
-    ++ optional enableHpack jansson
-    ++ optional enableAsioLib boost
-    ++ optional enableGetAssets libxml2
-    ++ optional enableJemalloc jemalloc
-    ++ optionals enablePython [ python ncurses setuptools ];
+    ++ lib.optionals (enablePython) [ "python" ];
+
+  nativeBuildInputs = [ pkg-config ]
+    ++ lib.optionals (enableApp) [ installShellFiles ]
+    ++ lib.optionals (enablePython) [ cython ];
+
+  buildInputs = lib.optionals enableApp [ c-ares libev openssl zlib ]
+    ++ lib.optionals (enableAsioLib) [ boost ]
+    ++ lib.optionals (enableGetAssets) [ libxml2 ]
+    ++ lib.optionals (enableHpack) [ jansson ]
+    ++ lib.optionals (enableJemalloc) [ jemalloc ]
+    ++ lib.optionals (enablePython) [ python ncurses setuptools ];
 
   enableParallelBuilding = true;
 
   configureFlags = [
-    "--with-spdylay=no"
     "--disable-examples"
     (lib.enableFeature enableApp "app")
-  ] ++ optional enableAsioLib "--enable-asio-lib --with-boost-libdir=${boost}/lib"
-    ++ (if enablePython then [
-    "--with-cython=${cython}/bin/cython"
-  ] else [
-    "--disable-python-bindings"
-  ]);
-
-  preInstall = optionalString enablePython ''
+  ] ++ lib.optionals (enableAsioLib) [ "--enable-asio-lib" "--with-boost-libdir=${boost}/lib" ]
+    ++ lib.optionals (enablePython) [ "--with-cython=${cython}/bin/cython" ];
+
+  # Unit tests require CUnit and setting TZDIR environment variable
+  doCheck = enableTests;
+  checkInputs = lib.optionals (enableTests) [ cunit tzdata ];
+  preCheck = lib.optionalString (enableTests) ''
+    export TZDIR=${tzdata}/share/zoneinfo
+  '';
+
+  preInstall = lib.optionalString (enablePython) ''
     mkdir -p $out/${python.sitePackages}
     # convince installer it's ok to install here
     export PYTHONPATH="$PYTHONPATH:$out/${python.sitePackages}"
   '';
-  postInstall = optionalString enablePython ''
+  postInstall = lib.optionalString (enablePython) ''
     mkdir -p $python/${python.sitePackages}
     mv $out/${python.sitePackages}/* $python/${python.sitePackages}
+    rm -r $out/lib
+  '' + lib.optionalString (enableApp) ''
+    installShellCompletion --bash doc/bash_completion/{h2load,nghttp,nghttpd,nghttpx}
   '';
 
-  #doCheck = true;  # requires CUnit ; currently failing at test_util_localtime_date in util_test.cc
-
   passthru.tests = {
     inherit curl libsoup;
   };
 
   meta = with lib; {
+    description = "HTTP/2 C library and tools";
+    longDescription = ''
+      nghttp2 is an implementation of the HyperText Transfer Protocol version 2 in C.
+      The framing layer of HTTP/2 is implemented as a reusable C library. On top of that,
+      we have implemented an HTTP/2 client, server and proxy. We have also developed
+      load test and benchmarking tools for HTTP/2.
+      An HPACK encoder and decoder are available as a public API.
+      We have Python bindings of this library, but we do not have full code coverage yet.
+      An experimental high level C++ library is also available.
+    '';
+
     homepage = "https://nghttp2.org/";
-    description = "A C implementation of HTTP/2";
+    changelog = "https://github.com/nghttp2/nghttp2/releases/tag/v${version}";
+    # News articles with changes summary can be found here: https://nghttp2.org/blog/archives/
     license = licenses.mit;
+    maintainers = with maintainers; [ c0bw3b ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/nghttp3/default.nix b/pkgs/development/libraries/nghttp3/default.nix
index fc2416c2cfb02..d9608b8e14047 100644
--- a/pkgs/development/libraries/nghttp3/default.nix
+++ b/pkgs/development/libraries/nghttp3/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nghttp3";
-  version = "unstable-2021-12-22";
+  version = "unstable-2022-04-10";
 
   src = fetchFromGitHub {
     owner = "ngtcp2";
     repo = pname;
-    rev = "8d8184acf850b06b53157bba39022bc7b7b5f1cd";
-    sha256 = "sha256-pV1xdQa5RBz17jDINC2uN1Q+jpa2edDwqTqf8D5VU3E=";
+    rev = "1e4bef2cc45b1fd3971ca3606d08a1e1d1567b1a";
+    sha256 = "sha256-DHNxtu4X0S8l1ADwRJC3yQ+Z1ja3FT0Zb/boRh6PvYw=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config file ];
diff --git a/pkgs/development/libraries/ngtcp2/default.nix b/pkgs/development/libraries/ngtcp2/default.nix
index 650516d360cf7..cb11df7f032cf 100644
--- a/pkgs/development/libraries/ngtcp2/default.nix
+++ b/pkgs/development/libraries/ngtcp2/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ngtcp2";
-  version = "unstable-2021-12-19";
+  version = "unstable-2022-04-11";
 
   src = fetchFromGitHub {
     owner = "ngtcp2";
     repo = pname;
-    rev = "20c710a8789ec910455ae4e588c72e9e39f8cec9";
-    sha256 = "sha256-uBmD26EYT8zxmHD5FuHCbEuTdWxer/3uhRp8PhUT87M=";
+    rev = "825899c051ea2a1f06a0c4617f41782f37009a18";
+    sha256 = "sha256-VoSy0tyIXWNTmcVdsaiM9ijXLq41AOaPBajvsEIrfjo=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config file ];
diff --git a/pkgs/development/libraries/nlopt/default.nix b/pkgs/development/libraries/nlopt/default.nix
index 279c8a0fd0543..2fae17a232364 100644
--- a/pkgs/development/libraries/nlopt/default.nix
+++ b/pkgs/development/libraries/nlopt/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, octave ? null }:
+{ lib, stdenv, fetchFromGitHub, cmake, octave ? null, libiconv }:
 
 stdenv.mkDerivation rec {
   pname = "nlopt";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-TgieCX7yUdTAEblzXY/gCN0r6F9TVDh4RdNDjQdXZ1o=";
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
   buildInputs = [ octave ];
 
   configureFlags = [
diff --git a/pkgs/development/libraries/notcurses/default.nix b/pkgs/development/libraries/notcurses/default.nix
index ad10cfadf6eb6..21b10ad4ed15d 100644
--- a/pkgs/development/libraries/notcurses/default.nix
+++ b/pkgs/development/libraries/notcurses/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "notcurses";
-  version = "3.0.7";
+  version = "3.0.8";
 
   src = fetchFromGitHub {
     owner = "dankamongmen";
     repo = "notcurses";
     rev = "v${version}";
-    sha256 = "sha256-tFdxQEYmSFr3GlJMud2ICToR+IB5sGnQkARUd/LtJXg=";
+    sha256 = "sha256-5SNWk1iKDNbyoo413Qvzl2bGaR5Lb+q/UPbPQg7YvRU=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/nss/esr.nix b/pkgs/development/libraries/nss/esr.nix
new file mode 100644
index 0000000000000..a958fa059d6d5
--- /dev/null
+++ b/pkgs/development/libraries/nss/esr.nix
@@ -0,0 +1,4 @@
+import ./generic.nix {
+  version = "3.68.3";
+  sha256 = "sha256-5NDZsLVhfLM0gSZC7YAfjlH1mVyN2FwN78jMra/Lwzc=";
+}
diff --git a/pkgs/development/libraries/nss/default.nix b/pkgs/development/libraries/nss/generic.nix
index d17f4c4a78356..3d109b9679053 100644
--- a/pkgs/development/libraries/nss/default.nix
+++ b/pkgs/development/libraries/nss/generic.nix
@@ -1,3 +1,4 @@
+{ version, sha256 }:
 { lib
 , stdenv
 , fetchurl
@@ -22,21 +23,15 @@ let
     sha256 = "10ibz6y0hknac15zr6dw4gv9nb5r5z9ym6gq18j3xqx7v7n3vpdw";
   };
 
-  # NOTE: Whenever you updated this version check if the `cacert` package also
-  #       needs an update. You can run the regular updater script for cacerts.
-  #       It will rebuild itself using the version of this package (NSS) and if
-  #       an update is required do the required changes to the expression.
-  #       Example: nix-shell ./maintainers/scripts/update.nix --argstr package cacert
-  version = "3.75";
-
+  underscoreVersion = lib.replaceStrings [ "." ] [ "_" ] version;
 in
 stdenv.mkDerivation rec {
   pname = "nss";
   inherit version;
 
   src = fetchurl {
-    url = "mirror://mozilla/security/nss/releases/NSS_${lib.replaceStrings [ "." ] [ "_" ] version}_RTM/src/${pname}-${version}.tar.gz";
-    sha256 = "10l5qn68gly2l4ifv0v6by1qc8nsmhra08nm9m7n913jh83iamzx";
+    url = "mirror://mozilla/security/nss/releases/NSS_${underscoreVersion}_RTM/src/${pname}-${version}.tar.gz";
+    inherit sha256;
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
@@ -190,7 +185,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS";
     description = "A set of libraries for development of security-enabled client and server applications";
-    maintainers = with maintainers; [ ];
+    changelog = "https://github.com/nss-dev/nss/blob/master/doc/rst/releases/nss_${underscoreVersion}.rst";
+    maintainers = with maintainers; [ hexa ajs124 ];
     license = licenses.mpl20;
     platforms = platforms.all;
   };
diff --git a/pkgs/development/libraries/nss/latest.nix b/pkgs/development/libraries/nss/latest.nix
new file mode 100644
index 0000000000000..db8d0179add5f
--- /dev/null
+++ b/pkgs/development/libraries/nss/latest.nix
@@ -0,0 +1,10 @@
+# NOTE: Whenever you updated this version check if the `cacert` package also
+#       needs an update. You can run the regular updater script for cacerts.
+#       It will rebuild itself using the version of this package (NSS) and if
+#       an update is required do the required changes to the expression.
+#       Example: nix-shell ./maintainers/scripts/update.nix --argstr package cacert
+
+import ./generic.nix {
+  version = "3.76.1";
+  sha256 = "0ai37ncg50n4s5243bfvsip8isqq1y6w2swg1n4xgqg2fk1h8cg1";
+}
diff --git a/pkgs/development/libraries/ntdb/default.nix b/pkgs/development/libraries/ntdb/default.nix
deleted file mode 100644
index 021436516c228..0000000000000
--- a/pkgs/development/libraries/ntdb/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{ lib, stdenv
-, fetchurl
-, python2
-, python3
-, pkg-config
-, readline
-, gettext
-, libxslt
-, docbook-xsl-nons
-, docbook_xml_dtd_42
-, wafHook
-}:
-
-stdenv.mkDerivation rec {
-  pname = "ntdb";
-  version = "1.0";
-
-  src = fetchurl {
-    url = "mirror://samba/tdb/${pname}-${version}.tar.gz";
-    sha256 = "0jdzgrz5sr25k83yrw7wqb3r0yj1v04z4s3lhsmnr5z6n5ifhyl1";
-  };
-
-  nativeBuildInputs = [
-    pkg-config
-    gettext
-    libxslt
-    docbook-xsl-nons
-    docbook_xml_dtd_42
-    wafHook
-    python2 # For wafHook
-  ];
-
-  buildInputs = [
-    python3
-    readline # required to build python
-  ];
-
-  wafPath = "buildtools/bin/waf";
-
-  wafConfigureFlags = [
-    "--bundled-libraries=NONE"
-    "--builtin-libraries=replace,ccan"
-  ];
-
-  meta = with lib; {
-    description = "The not-so trivial database";
-    homepage = "https://tdb.samba.org/";
-    license = licenses.lgpl3Plus;
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/libraries/openmpi/default.nix b/pkgs/development/libraries/openmpi/default.nix
index aac11dc83bda1..7baf992669721 100644
--- a/pkgs/development/libraries/openmpi/default.nix
+++ b/pkgs/development/libraries/openmpi/default.nix
@@ -27,11 +27,11 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "openmpi";
-  version = "4.1.2";
+  version = "4.1.3";
 
   src = with lib.versions; fetchurl {
     url = "https://www.open-mpi.org/software/ompi/v${major version}.${minor version}/downloads/${pname}-${version}.tar.bz2";
-    sha256 = "09xmlr4mfs02kwcf5cmdgkcdjj81fjwjmpa3rz2k28f3gz7wfy4v";
+    sha256 = "sha256-PYHQTFTvtV04caRl/7CY2NcsH0j/HLryWA6wWFZ8Cjs=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index 648357b00cfba..8182a01cd52d6 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -69,6 +69,12 @@ let
         x86_64-linux = "./Configure linux-x86_64";
         x86_64-solaris = "./Configure solaris64-x86_64-gcc";
         riscv64-linux = "./Configure linux64-riscv64";
+        mips64el-linux =
+          if stdenv.hostPlatform.isMips64n64
+          then "./Configure linux64-mips64"
+          else if stdenv.hostPlatform.isMips64n32
+          then "./Configure linux-mips64"
+          else throw "unsupported ABI for ${stdenv.hostPlatform.system}";
       }.${stdenv.hostPlatform.system} or (
         if stdenv.hostPlatform == stdenv.buildPlatform
           then "./config"
diff --git a/pkgs/development/libraries/opensubdiv/default.nix b/pkgs/development/libraries/opensubdiv/default.nix
index 83eb77b603c52..026465c97ae8d 100644
--- a/pkgs/development/libraries/opensubdiv/default.nix
+++ b/pkgs/development/libraries/opensubdiv/default.nix
@@ -1,6 +1,10 @@
 { config, lib, stdenv, fetchFromGitHub, cmake, pkg-config, xorg, libGLU
 , libGL, glew, ocl-icd, python3
 , cudaSupport ? config.cudaSupport or false, cudatoolkit
+  # For visibility mostly. The whole approach to cuda architectures and capabilities
+  # will be reworked soon.
+, cudaArch ? "compute_37"
+, openclSupport ? !cudaSupport
 , darwin
 }:
 
@@ -24,7 +28,7 @@ stdenv.mkDerivation rec {
       glew xorg.libX11 xorg.libXrandr xorg.libXxf86vm xorg.libXcursor
       xorg.libXinerama xorg.libXi
     ]
-    ++ lib.optional (!stdenv.isDarwin) ocl-icd
+    ++ lib.optional (openclSupport && !stdenv.isDarwin) ocl-icd
     ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [OpenCL Cocoa CoreVideo IOKit AppKit AGL ])
     ++ lib.optional cudaSupport cudatoolkit;
 
@@ -37,8 +41,10 @@ stdenv.mkDerivation rec {
       "-DGLEW_INCLUDE_DIR=${glew.dev}/include"
       "-DGLEW_LIBRARY=${glew.dev}/lib"
     ] ++ lib.optionals cudaSupport [
-      "-DOSD_CUDA_NVCC_FLAGS=--gpu-architecture=compute_30"
+      "-DOSD_CUDA_NVCC_FLAGS=--gpu-architecture=${cudaArch}"
       "-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/cc"
+    ] ++ lib.optionals (!openclSupport) [
+      "-DNO_OPENCL=1"
     ];
 
   postInstall = "rm $out/lib/*.a";
@@ -46,6 +52,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "An Open-Source subdivision surface library";
     homepage = "http://graphics.pixar.com/opensubdiv";
+    broken = openclSupport && cudaSupport;
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.eelco ];
     license = lib.licenses.asl20;
diff --git a/pkgs/development/libraries/openvino/default.nix b/pkgs/development/libraries/openvino/default.nix
index 86bc3b0d009c3..0b870bf9e4034 100644
--- a/pkgs/development/libraries/openvino/default.nix
+++ b/pkgs/development/libraries/openvino/default.nix
@@ -90,7 +90,7 @@ stdenv.mkDerivation rec {
     cd ../build
   '';
 
-  autoPatchelfIgnoreMissingDeps = true;
+  autoPatchelfIgnoreMissingDeps = [ "libngraph_backend.so" ];
 
   nativeBuildInputs = [
     cmake
@@ -129,6 +129,8 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://docs.openvinotoolkit.org/";
     license = with licenses; [ asl20 ];
+    platforms = platforms.all;
+    broken = stdenv.isDarwin; # Cannot find macos sdk
     maintainers = with maintainers; [ tfmoraes ];
   };
 }
diff --git a/pkgs/development/libraries/pcmsolver/default.nix b/pkgs/development/libraries/pcmsolver/default.nix
index dd94a4a088cb0..a957d517bf7a8 100644
--- a/pkgs/development/libraries/pcmsolver/default.nix
+++ b/pkgs/development/libraries/pcmsolver/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, perl, gfortran, python2
+{ lib, stdenv, fetchFromGitHub, cmake, perl, gfortran, python3
 , boost, eigen, zlib
 } :
 
@@ -13,11 +13,18 @@ stdenv.mkDerivation rec {
     sha256= "0jrxr8z21hjy7ik999hna9rdqy221kbkl3qkb06xw7g80rc9x9yr";
   };
 
+  # Glibc 2.34 changed SIGSTKSZ to a dynamic value, which breaks
+  # PCMsolver. Replace SIGSTKZ by the backward-compatible _SC_SIGSTKSZ.
+  postPatch = ''
+    substituteInPlace external/Catch/catch.hpp \
+      --replace SIGSTKSZ _SC_SIGSTKSZ
+  '';
+
   nativeBuildInputs = [
     cmake
     gfortran
     perl
-    python2
+    python3
   ];
 
   buildInputs = [
diff --git a/pkgs/development/libraries/pcre/default.nix b/pkgs/development/libraries/pcre/default.nix
index 5fc8d496ba914..9d4e52acb4d9d 100644
--- a/pkgs/development/libraries/pcre/default.nix
+++ b/pkgs/development/libraries/pcre/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   outputs = [ "bin" "dev" "out" "doc" "man" ];
 
   # Disable jit on Apple Silicon, https://github.com/zherczeg/sljit/issues/51
-  configureFlags = optional (!stdenv.hostPlatform.isRiscV && !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)) "--enable-jit" ++ [
+  configureFlags = optional (!(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)) "--enable-jit=auto" ++ [
     "--enable-unicode-properties"
     "--disable-cpp"
   ]
diff --git a/pkgs/development/libraries/pcre2/default.nix b/pkgs/development/libraries/pcre2/default.nix
index 8393cb8c59104..0c57b4cd5cf15 100644
--- a/pkgs/development/libraries/pcre2/default.nix
+++ b/pkgs/development/libraries/pcre2/default.nix
@@ -15,9 +15,7 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--enable-pcre2-16"
     "--enable-pcre2-32"
-  ] ++ lib.optional (!stdenv.hostPlatform.isRiscV &&
-                     !(stdenv.hostPlatform.isDarwin &&
-                       stdenv.hostPlatform.isAarch64)) "--enable-jit";
+  ] ++ lib.optional (!(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)) "--enable-jit=auto";
 
   outputs = [ "bin" "dev" "out" "doc" "man" "devdoc" ];
 
diff --git a/pkgs/development/libraries/pdal/default.nix b/pkgs/development/libraries/pdal/default.nix
index 2d971444416c5..354c68decfb07 100644
--- a/pkgs/development/libraries/pdal/default.nix
+++ b/pkgs/development/libraries/pdal/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pdal";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "PDAL";
     repo = "PDAL";
     rev = version;
-    sha256 = "sha256-DKIraCyp8fcgnVp5dFrtQ4Wq96cQGC9SiAPLS6htUZc=";
+    sha256 = "sha256-w9Fu4Op6OdaxdvOUM+glpJUEZq//EwRD2lqzYrMXk8w=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/phash/default.nix b/pkgs/development/libraries/phash/default.nix
index 4596c5aaf4f6d..73097db5ccc6c 100644
--- a/pkgs/development/libraries/phash/default.nix
+++ b/pkgs/development/libraries/phash/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "pHash";
-  version = "0.9.4";
+  version = "0.9.6";
 
   buildInputs = [ cimg ];
 
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     owner = "clearscene";
     repo = "pHash";
     rev = version;
-    sha256 = "0y4gknfkns5sssfaj0snyx29752my20xmxajg6xggijx0myabbv0";
+    sha256 = "sha256-frISiZ89ei7XfI5F2nJJehfQZsk0Mlb4n91q/AiZ2vA=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/physics/lhapdf/maintainer.sh b/pkgs/development/libraries/physics/lhapdf/maintainer.sh
index 6e263dcebfde7..dc182ec99ea63 100755
--- a/pkgs/development/libraries/physics/lhapdf/maintainer.sh
+++ b/pkgs/development/libraries/physics/lhapdf/maintainer.sh
@@ -4,9 +4,9 @@ set -xe
 
 : ${SED:="$(nix-build '<nixpkgs>' -A gnused --no-out-link)/bin/sed"}
 
-BASE_URL="https://lhapdfsets.web.cern.ch/lhapdfsets/current/"
+BASE_URL="https://lhapdfsets.web.cern.ch/current/"
 
-for pdf_set in `curl -L $BASE_URL 2>/dev/null | "$SED" -e "s/.*<a href=\"\([^\"/]*.tar.gz\)\".*/\1/;tx;d;:x" | sort -u`; do
+for pdf_set in `curl -L $BASE_URL 2>/dev/null | "$SED" -n -e 's/.*<a href=".*\/\([^"/]*\.tar\.gz\)".*/\1/p' | sort -u`; do
     echo -n "    \"${pdf_set%.tar.gz}\" = \""
     nix-prefetch-url "${BASE_URL}${pdf_set}" 2>/dev/null | tr -d '\n'
     echo "\";"
diff --git a/pkgs/development/libraries/physics/lhapdf/pdf_sets.nix b/pkgs/development/libraries/physics/lhapdf/pdf_sets.nix
index 694164f5af2eb..286cf8355b64c 100644
--- a/pkgs/development/libraries/physics/lhapdf/pdf_sets.nix
+++ b/pkgs/development/libraries/physics/lhapdf/pdf_sets.nix
@@ -59,6 +59,9 @@ in
     "ATLAS-epWZ16-VAR" = "1zkhlv8yxfla46gj57119w9prsd3zyy5vg275bayfwa6b71gmc0b";
     "ATLAS-epWZtop18-EIG" = "069rysd9mf3cshx7xkcv7735ydh2g6szvljbfkcqwckaqjg2x3v5";
     "ATLAS-epWZtop18-VAR" = "0hpyp52dwl8fnw47pyw8g7fsz97wr6sk4yli6sx0zbj8yy2j28yj";
+    "ATLASepWZVjet20-EIG" = "0lvd3zkmisx95rbjx7r9wkk0s0mxvaybp3pk66sxrxf1bj1l9r52";
+    "ATLASepWZVjet20-MOD" = "1iyb50isdsy3a5wnlm0185z9bfs6nxwlcl1aqlh4h3j1dbmz4ba9";
+    "ATLASepWZVjet20-PAR" = "1kfqii7sbcs8zdsyd9kiy3r233nawc9yfc23fb6ql0xcwfzpyb1d";
     "CJ12max" = "1vk2zkaiqbl6fixaxy7mrggmmxv7lvnw736lxm5sh25dapg6s8ag";
     "CJ12mid" = "0s2558ihypn0l9qqx25qwnawbc7fkbi2wwwhbyb108rjk2klaf8v";
     "CJ12min" = "1kdla638m3axr65ndid9irmqhby4gl084r297xw3jxxlrb0b7hj9";
@@ -171,7 +174,7 @@ in
     "CT14nnloIC" = "1wnpwy0mz0c5y29wi497jcn5k47bndd0h65d6a18qcfk0l15rfzx";
     "CT14nnlo_NF3" = "0ijns9bjkw8zcinba7rflc7ic03mn5701lqfrxqjyq4q6kh8fia7";
     "CT14nnlo_NF4" = "0fhyzaxnm17pi7wfh5hwaic9q4y0hb05ripd6r648wnnhhi353xy";
-    "CT14nnlo_NF6" = "1rnacbsh0y9qjd2x7ggs87zi9msrxrp2l6lidg92i2la4pri27zk";
+    "CT14nnlo_NF6" = "1dvabji3vrqk8ngln72xqiahm8fai3klgv5yz64b3bfxcr04wmg9";
     "CT14nnlo_as_0111" = "1hl88j40czr73h9fbz0zbliawlqwng7ikrmq01hsfns190axm8w9";
     "CT14nnlo_as_0112" = "1w9344v9ihr0w8vrfhhxn81gcnr0qm6ihwwijvcdds09jpdlp6vr";
     "CT14nnlo_as_0113" = "11symfb1ljislbksrars1k766fa2n1inbarzbw3kp01vxpw8gxf5";
@@ -190,133 +193,157 @@ in
     "CT14qed_neutron" = "0ck1vmqk17i7rq42hra79cz2rm8ngxv4da6dvz62l6m2nrga3l2k";
     "CT14qed_proton" = "1gijxkq5gpsljijblzd13kgr7xjjvnjv18v02jivylf73igsakd7";
     "CT18ANLO" = "16lbhgkbiym3njiffxdcm3hf7kkm33hyj2w1hwgb3mvxx2sja31c";
-    "CT18ANLO_as_0110" = "08hwxc99l645a9craimgawwynxcs5cmapgxgk0fy9ihvjvqs6jg2";
-    "CT18ANLO_as_0111" = "02ff3s127svdjzawbhzry04rcsw5waggmf3iwpqndzxhqpm0py8a";
-    "CT18ANLO_as_0112" = "063g7sqii0gf2rdjg9k9x95kzwg62w8lfq9cgyv3bnkpapnbqhia";
-    "CT18ANLO_as_0113" = "01zh34dg4cc8955ipg2i0k6s13h77jg8yaa4v2f4aw0020js9dn2";
-    "CT18ANLO_as_0114" = "061lvglsg4889q6qya83f7ngyzi2ibar1c9w6xyl462x5i4frx2x";
-    "CT18ANLO_as_0115" = "0a35axfjxywy4yh8pk4w4f57rfljvd593bx7a8wnix0cifnngg4j";
-    "CT18ANLO_as_0116" = "1cm3m3m6l93qlr9fxbc0d21gq3x0wn09qi8cxbx7lj0yqhjf2zh8";
-    "CT18ANLO_as_0117" = "1nrzrlp7i42z7pv550ggga0fk356i9rqbj60mdxvlw3xl6v4kkf4";
-    "CT18ANLO_as_0118" = "19p7x6q9flsz1s82scakgnsfsrjf8ym6ix3gp195fjgfdkannh9i";
-    "CT18ANLO_as_0119" = "1jz27f39dpg0g46p834vgvaajxspyqwd8f7zlpv44lfb43va6dgy";
-    "CT18ANLO_as_0120" = "0rp9hrvs44d8pbagmc3vipnh5d9amam3prkm2k7spvxahr6dp8dp";
-    "CT18ANLO_as_0121" = "15abhrjmmhyka9dxjmwz7103i0bpa605yhy6kisgzf7km5ca14h9";
-    "CT18ANLO_as_0122" = "15mxybppydzsxx308hqljahnmrw0islw2zl45kjlhxjxsmaai2nc";
-    "CT18ANLO_as_0123" = "19zlyapm5cp1hwvfqcjm3v6mgwdaa6f5d0mvnh68c05sn39xjhz2";
-    "CT18ANLO_as_0124" = "1fwzcs50bj6d6cjkvi4qj44mwrwxhjh25lxmk2q82wdmddgpaz0c";
+    "CT18ANLO_as_0110" = "1lkxicxmphi4mdc23vig4a5l4gp0n53jblzsl7bvrixbkhd5arv8";
+    "CT18ANLO_as_0111" = "1jk8siawnpnclgjc0jhx89ipym0jp94mrklwkn0awh0hgqxd26ra";
+    "CT18ANLO_as_0112" = "0rpfx10b5hjwzmlqzkk1zkk38ysn5jfgipk71zl5da6qk1ih5v2s";
+    "CT18ANLO_as_0113" = "0chhqgjddrb731y6haa94yypki6pzpjq5rvja61gfbghbvnc02fs";
+    "CT18ANLO_as_0114" = "0nvl1a588jvmh7a7przrzpvf9prrpvv610jmsnfrcp4i98ipdn1p";
+    "CT18ANLO_as_0115" = "1f757zlavyjxjwyda8rnkzg9kagmciywvvvdcsbks9ij3m4fcw5z";
+    "CT18ANLO_as_0116" = "13bdsnwkqzjq63m02vmb7z03rx6chcyy3br4m52gja0qz03rxhyj";
+    "CT18ANLO_as_0117" = "0w5pmqry5rd5jsfwiv43cy5z3hlk7gzllnk0vn1qgsjrgd284hj9";
+    "CT18ANLO_as_0118" = "1g137nw812zqdkr97hdwvfi4c4bxfazy1wyk30gwgrhqs6xdsmyp";
+    "CT18ANLO_as_0119" = "06pjg9nsq6pvda1yg6lg2qi15i3h2radampgk23rbz9g6zn5hw39";
+    "CT18ANLO_as_0120" = "0jh6f5jj81sppv5fhm8ccgzwpacfr1nql3r5466z0bl201fc9x6x";
+    "CT18ANLO_as_0121" = "0jh4x2y4rcp3l825dl3a89apmb0f94jrk0pl93lv8xg34f8jrb2i";
+    "CT18ANLO_as_0122" = "0ma8r5vgdw9hj6cafkj8fbpq8i18cbild4aw4q9lrsszwwcrlv9i";
+    "CT18ANLO_as_0123" = "1mv75gga1gdmnwkaxc0c89jxgapc38376xv5yxfqy2dn03pad9im";
+    "CT18ANLO_as_0124" = "0913a748xm6lbdci8vicz08h323hbkc4z1bjq1wq8qfrl1cx02ic";
     "CT18ANNLO" = "1kbsbvvkkchhwwjdrj4d91lbykid4dcy4ghanpdd9x0nfm5b4sgk";
-    "CT18ANNLO_as_0110" = "1a60p22r292hjjcrdkgis6d81hgihnjzyzlbcqrvx9bkbq447kjq";
-    "CT18ANNLO_as_0111" = "1gyl4h92xs4s64dm7cwrfqk2zrs1cbzp76dqckf7z44k4pm460m9";
-    "CT18ANNLO_as_0112" = "1bsn5q12bgkhyl1d6wkq32m3l7i0wqxpnjxh790xcd3ympbfx16h";
-    "CT18ANNLO_as_0113" = "1dri54s71ygnd1pdnmvr9vqbyfllwzr9x39zg01rpj02zy7kidb0";
-    "CT18ANNLO_as_0114" = "0f731ryn1031053zv40mak9m7mxmn6dvnhn6ik6kyag9d3az6lvx";
-    "CT18ANNLO_as_0115" = "107569wrkjic6xjp574i6r6n8wj2x9cx4h7dqh77wxl8g4aajkh6";
-    "CT18ANNLO_as_0116" = "0r951p0a4pan71lkhf701ysw6kyq1wvf15rbjdjr4j7khjfaykcp";
-    "CT18ANNLO_as_0117" = "0xsgzga5bya0ng6i7nvk33nrf792vzbd1rs174cix4v406g99xm8";
-    "CT18ANNLO_as_0118" = "049534355lxhppw2l85i677ysb2gwzccs0b5afm719sh06rv6jkn";
-    "CT18ANNLO_as_0119" = "034kd7pg103ldc3nmgsylv0ffl8v0sp9jkf9073ny11s7b3pb5wa";
-    "CT18ANNLO_as_0120" = "1ph23xpirkahpr9x1k2qm9pp3a1hc3i15bhc6xprpc29k53m4wsi";
-    "CT18ANNLO_as_0121" = "12qrg3jb1kar46b8lai56lb7wxjr950dzaixfncxvy38hrny6mxh";
-    "CT18ANNLO_as_0122" = "1wmkl2rlhkwzxi1yln0m9i6lvpbqkp3bxdnyzz7hp3hy1sa5f60s";
-    "CT18ANNLO_as_0123" = "1caz4rfmcmabfdw5b8xg2307bs1bjclgdcxq2k6gf73z3pqbjs8w";
-    "CT18ANNLO_as_0124" = "0mx8h8vdhlklgvysmhllkzga3g65zkmzpz7bmyvaqmvbvr6x5q0w";
+    "CT18ANNLO_as_0110" = "1inx20r83pfmwxfhyy3hhj2csp016d9cnald1rf8vl9riqxvx0j4";
+    "CT18ANNLO_as_0111" = "0zzi0b27xp4xykbwd2y7l2ka1k4kfvhaq7y2w82fky2b842ixsmg";
+    "CT18ANNLO_as_0112" = "0y031rslsmwxs76rz184mrjb07pdcxrf07yl5yab1y24vymqj4dy";
+    "CT18ANNLO_as_0113" = "1pgrcb6sbahl2jf3v08bki28w9x0ag5n3zj1fi0jc69fxwgkczzq";
+    "CT18ANNLO_as_0114" = "0ifzf428gxlmhc8wvpj3qaqr0cl6pripiabmnb5av43d5avwhagr";
+    "CT18ANNLO_as_0115" = "1bxf5rs33kfl3q570wm49ad0drlanzq8wkrbd85qjlvyhy52j8vs";
+    "CT18ANNLO_as_0116" = "0l43qn45wfj2lljpp8kri1n2p99lxj3gbbqh2p2s7v0my5ds5p06";
+    "CT18ANNLO_as_0117" = "0nfh9y2w8lvlqbghxx4i7j7gxq5bm67h3vz1wajg86zndarkq6mz";
+    "CT18ANNLO_as_0118" = "0m8s96rgnnl5xk7g3l2pf5qx7dwb8kgn18b9nyr8cyqxn90mh3vr";
+    "CT18ANNLO_as_0119" = "1lpkcrcfmn0kc9g21ca90j1shcf3ii89yrr17rgwynmylwvizs2y";
+    "CT18ANNLO_as_0120" = "0lmn2p57k7yvr5mpzykljhkpnb1c71f4ya2s4zbp2x84fqfg5wbk";
+    "CT18ANNLO_as_0121" = "0arbvp0sc67fsf7slhlv96iwq89yjqqkv84pf76fqdvrrjsmyn61";
+    "CT18ANNLO_as_0122" = "1nbkgb0wmjh2bfx944sqb810sn4bb0ppxgv2aw2y93jbfyx7x4ry";
+    "CT18ANNLO_as_0123" = "1rlxn70mc299v596y0dwp9a1pdy1yz0r8367cjw5l97y46yxhjrh";
+    "CT18ANNLO_as_0124" = "0sfkvhyxp9sqf75wj91h9h59vcs2y2n4qchsg0marjy849xxh6qb";
     "CT18NLO" = "04y2p6vz484l3yv6381pfavqs3xh78h3jn6bg7ncp5vywwqp44n9";
-    "CT18NLO_as_0110" = "0ncaacfw8dh45vaf84kkj93hwxgwz744qqd6llpy73zdilnl62a8";
-    "CT18NLO_as_0111" = "1cib3ggy0wajvvw908wr4bfymcw62iy5abwdadhq69crcg01619r";
-    "CT18NLO_as_0112" = "1x242x4y0vykfypm02g02qxpwmsq2p45bxqrqgfy29qagxz6j66d";
-    "CT18NLO_as_0113" = "0fkis7l0s1lb2k7qyfwnn5axbpiv9yky4j5qc8g3fa068czijmhi";
-    "CT18NLO_as_0114" = "1r6ih2gqiwm7z24iw9xgn2n35659v5nwl2d02f07j1k3d33j175n";
-    "CT18NLO_as_0115" = "0z4vm73l16mpjf3wcrv5q659f2mwkx85wpmnq8j1fnk0vhms59dx";
-    "CT18NLO_as_0116" = "0g4lxxc9g09alpsff9wr7w0jgi26h3klx8rk6nb71j9yzrwv12vv";
-    "CT18NLO_as_0117" = "0hmn5vkgi5981q0s5lyp9mq9jjrzhgr1f9w8np3i2nwcgn1awis5";
-    "CT18NLO_as_0118" = "1z6is1f3064wq56lfxrmqckk3yi6wsl42s2xigx87p8zqg3r4nkz";
-    "CT18NLO_as_0119" = "0p3r7w5v3pq2dgaq96r3khx1wwjq6i33l0bbf63dxs88gk5cx1s4";
-    "CT18NLO_as_0120" = "1h0rcra68yypf1yqwlzql385ks1agxc9njdpyx60j3yg3whk4h63";
-    "CT18NLO_as_0121" = "1by1iiy7qby73m8s3qmnrf0dyca3k4z00fclbrm651f79nz8scz7";
-    "CT18NLO_as_0122" = "1r8h2cw874dh1mj4r545wp9msr1358qw1lzznwvgkmgwjclndjg4";
-    "CT18NLO_as_0123" = "1d8c3bk6bvy3azbv9yqi45cwkcmjbxxw7qaxn6xnc5jfcf6wbsp1";
-    "CT18NLO_as_0124" = "1haqxq1jbcz9qbhnw4pxsvlr37908fkdlzyn7c1csrlr8a51s3z4";
+    "CT18NLO_as_0110" = "0nrydk44sp7hgabn6xk6r2hnkir7mgddcsbbnqmpwmq3x0xz27pn";
+    "CT18NLO_as_0111" = "17xwzcj4n1bmfwz02n2g8afzxc4lp5diij00f2w50pqh2w7vj6g9";
+    "CT18NLO_as_0112" = "0a6lsmpz3c1z7dm593nb3r9q7dgpskkls2i6wpdlrrg6s6cr8rmq";
+    "CT18NLO_as_0113" = "1kwz9yp0vzyiwy9avxjwibdc6jla32vddf23pvfiv0qjcwfnp6ii";
+    "CT18NLO_as_0114" = "161q98jr59vn1qldhd83qxx0qjq1rahgamwfqd3hw6dn6wy39970";
+    "CT18NLO_as_0115" = "1dp0683zfn7mg0bj1l5m7i9kdbyxjl0ahhwppvgi5gs5kbmhbs9n";
+    "CT18NLO_as_0116" = "0hpi5s175cpz251nav0v34l6qsfqj6181mhhp80kghyyvl7l22sw";
+    "CT18NLO_as_0117" = "1v32wxdsvms23sghcszw6csd08kw0xppjzwjnbdsc8k6w67r546m";
+    "CT18NLO_as_0118" = "1vd7vc7f49in1i5398p12b9vklxbsif89wv2q93k6m91kb38rm45";
+    "CT18NLO_as_0119" = "1h0dlys71cngsxl9dj9l5amikxrvzzb7bins2a6wn6s7zgfyvlck";
+    "CT18NLO_as_0120" = "126jfwml027mnpbr6ad7s8d94j3n1sv6fbdy5r5vcb64nyncjach";
+    "CT18NLO_as_0121" = "1khffdgqdfl1g4cxp4fnyb900722s6pwzys7cdxmwhzi9f0rwgw8";
+    "CT18NLO_as_0122" = "1w7q35igi7fnkrwnr1dnfq646qicz4549c6ddqbkyil10arvq7fk";
+    "CT18NLO_as_0123" = "1bl6rf69gjnblvfdh5p8flax9qb65vk25hcfjw2r7qwdz3dxs6sr";
+    "CT18NLO_as_0124" = "18mhpn4l3qqg9v79z2vz4jc8w3za726fndfl6sbc9mf94jy72chm";
     "CT18NNLO" = "1shkah5ma0hp101aklkz2p8n9y4i4sv6zwa5ifzyj3bgz1020l5f";
-    "CT18NNLO_as_0110" = "1smilnmhw8zjd0hl03v7wflbbia5qxqfmvyikbgwc29g212xbq71";
-    "CT18NNLO_as_0111" = "0mj77vshb9fmlvc1pp3m701nl574p0k013lg0l25r4nhvlfiiriz";
-    "CT18NNLO_as_0112" = "0a87crw7dygf9q28v95h9j02yq5f9rr5fdrxvqj5ggw839nazgmk";
-    "CT18NNLO_as_0113" = "011269haxlh2grq60qbmwrilgnkz6hlacd8x56iizl6ify7hcs2c";
-    "CT18NNLO_as_0114" = "0im03f2vr9pfd223skadmcfrypxlpka4pqizjcbqq75fddhljivq";
-    "CT18NNLO_as_0115" = "0pppdh2vq86iiar18c5wi2qbm6viv0hpyfah8pn1p6bcg1k99srs";
-    "CT18NNLO_as_0116" = "17wsn6jxp25klk3x3yfa5abxjjdl5j9vdwxqb51zg6ic3a7is764";
-    "CT18NNLO_as_0117" = "0nkdmqyqzzg19m98mqm9n2dcaiy4i97zrxmy7x1c3rxc0n7igkzh";
-    "CT18NNLO_as_0118" = "0v931kw5dzqq95940mxmkj1r6a75w525j99yf47pyf55vg22ybkb";
-    "CT18NNLO_as_0119" = "1z4kg4na0m2vrflnizxhjdxa9rdzp66mq66bxcjlvqiraf4ygkd4";
-    "CT18NNLO_as_0120" = "07bz7q5h0rfxf5989sarchsv2mcn4093b6x5094725p74sw41sq5";
-    "CT18NNLO_as_0121" = "0slw6m1scnajlfhxswd05if782k32gcyx9zz50gaiwqimrz188fa";
-    "CT18NNLO_as_0122" = "1jrzxq7mqhkfj96whqfr3ny2g1kggc047cvzb7ladlirmi05injg";
-    "CT18NNLO_as_0123" = "1zdmvp9pxjjs96yw05l5s0c0ym1hyj7d3an5siy3i20lvyxcgyz7";
-    "CT18NNLO_as_0124" = "1lb88y4c68n669c2g2q2zwjp92d9hgbxgpl0b7dxny9a7zdmw0mx";
+    "CT18NNLO_as_0110" = "0v7nsjcm1q7hgj726zlvfydl3arqkwyddd20z3g0nwdqcimv3qs9";
+    "CT18NNLO_as_0111" = "118444ygv03ryhbb28njbsayvv0rdlcb9djja6p62kk6rnbwi1wz";
+    "CT18NNLO_as_0112" = "0djxkvwk628sxgf62bff40m2m6vgzs08jss61f90rscvj6gxid5b";
+    "CT18NNLO_as_0113" = "1xg7qs33h8zgj4007r8g4drhm95551slhwv62dzyv9pwy5vrvgdn";
+    "CT18NNLO_as_0114" = "0i1g7kwfs39ps9ml0ckkcq7x4g1n764q1r06ilq7bci3m073cffn";
+    "CT18NNLO_as_0115" = "16q0hc3p0325bq9zgskkpf9qfyhmz9q0rk3b0jrzpc0d4vk7b5r5";
+    "CT18NNLO_as_0116" = "1mhnx8szpp4sfy592f8vzvjlzr9y46qndv3c42hf0jsygx5pc5cr";
+    "CT18NNLO_as_0117" = "1bmcnjfzwf4bl70qyx6csix3ps46pd32yb2h33y2f144vp8bmkpg";
+    "CT18NNLO_as_0118" = "1r1dmj42qrqprhq06i0h4kpjc1riql963n32icl0mfwjq9wpfa0g";
+    "CT18NNLO_as_0119" = "1rxyd21h407zmjn3nnr4cqvinw2nwcdhid6cbr0wif8p2b3gasic";
+    "CT18NNLO_as_0120" = "1llhnfijc7v6v4dkbsfgj2c3m0y4q42mvaynz06v2j3aqv3wzhza";
+    "CT18NNLO_as_0121" = "19dqq2jz5daq59gv2zdvygyvwi9sx6i3ih82yl82yy82gbw2568h";
+    "CT18NNLO_as_0122" = "0p8w4ypaxrpsyz3dn7f0964wgvd30iy4r1haa88hqwx74qrkb4pc";
+    "CT18NNLO_as_0123" = "1c1sw5md5xp8l6b3qxbnf994kz2rd60p4bl3s3l2af7f77w57wfv";
+    "CT18NNLO_as_0124" = "0ldf7dnzdlwqh0gmb6an0b8cwcjpkiaih49aa77j2irw2yja5p41";
     "CT18XNLO" = "1k0cli4j0z5hj24pk9f78flhlvsdfya51hgh90jv4myniapk616l";
-    "CT18XNLO_as_0110" = "0yahahfmzzwzxiqanm7029z05f3nx9cs2yjdvyvhazvicsq3ibid";
-    "CT18XNLO_as_0111" = "1n0q8d0j8smq2z6n9l091r2q8v319zcf896nk2m0s7n9g9a0vcjq";
-    "CT18XNLO_as_0112" = "1wj968g1vb58gz6vslzfmihvqg5f9f2cqgq8inlgdhai1y8vk1lz";
-    "CT18XNLO_as_0113" = "1gi939mxv99q2r1m8a6d4ky5nrp24xv16xw6d9h7ly27jrw8kzm5";
-    "CT18XNLO_as_0114" = "06gf4m01yr89xklch6ack012in2i1bifyzvp793x9w8m56dx12ms";
-    "CT18XNLO_as_0115" = "1g4705l0qb0immd4la2vrj9v4kw7r7i1wz1vn4knbqjwig5kcfws";
-    "CT18XNLO_as_0116" = "0vaxwg3ixf4x92vssh8gqrszbfa5zgzbsd5p81j14nlksshrs6bf";
-    "CT18XNLO_as_0117" = "10qg2yr63csg4nd62a8h0s1z08cmgbkwvcsh0wp7zkzpw70r7x78";
-    "CT18XNLO_as_0118" = "0kxhg2pn7ki4nxcs5jhxvx4fs6c414mq0d0qm3vldv0hsayqsbnd";
-    "CT18XNLO_as_0119" = "1xd4ib2fqzhg9c6z2zyc8h3il4msm7rv9kkaaapll4h0gpjdda6x";
-    "CT18XNLO_as_0120" = "0jyb8gs0avvlhiwwvrv09p47vs3jim3y315hg7wcy31xab90b91i";
-    "CT18XNLO_as_0121" = "1afizsl9phvvdjbyrifx3ii10gpxl51rvx311imz30l51i3fzl7v";
-    "CT18XNLO_as_0122" = "0wkpicsv9357lh96vjnrxzddaaaiaagyfph2jcyp97mjhixx2hlg";
-    "CT18XNLO_as_0123" = "0hr9m422shvp5yzjdd7lqansim7qcx3iv1p017fp1a4ihj661sra";
-    "CT18XNLO_as_0124" = "03zf75f6gx41g3fxrdc6sqkfcyzz03izchwfvabwfxr06yq94jxc";
+    "CT18XNLO_as_0110" = "07k9ga6n2gf9qz0flvrd4if0mssddrq1bbk0rpxsy8wfp41cjsl8";
+    "CT18XNLO_as_0111" = "1ysz50r2nc57c7srgqw1dcvyfr9h578dkz24sbimxq54akp9jkxy";
+    "CT18XNLO_as_0112" = "11wvnvsc6a5c2ygq39avai4xk2mrnfnvi4fqzmkjdcm0kby0swpb";
+    "CT18XNLO_as_0113" = "0cyv8y2m3514np7f3fwpf3g1mzy2cz905sc5lrjqff5djwjc23yg";
+    "CT18XNLO_as_0114" = "16vj7hhg3psmyr4vqvy8mz4bg7rp6jc6b64n2dfpq5jvb15w2fbv";
+    "CT18XNLO_as_0115" = "0ylw7d9g041fgrjfvq0i0ycpxwbm3s4jdgm5mkjk6yj0s4mrrqcy";
+    "CT18XNLO_as_0116" = "0mcfgih55zja7k0cdi1yd7gx1gjr6cpzz28gz4fxyxi2l4paxh2k";
+    "CT18XNLO_as_0117" = "0klzf5bchabcjc0c8h6f09g37jy6vwrpq7q8iwrfcmar2slx26r2";
+    "CT18XNLO_as_0118" = "0hd1bhlkmnchcv0xbrqjc3paa7fqp249sxi9hg71x3qbh03ab036";
+    "CT18XNLO_as_0119" = "1xlxw18hcsv7bij4dvnj9dfm8sai5xm9jggb8g7flmvkmcskgzmg";
+    "CT18XNLO_as_0120" = "1ixdg56qgm5701al85zkp81xx3h9hsipqka8l3sh0ghp563qxk32";
+    "CT18XNLO_as_0121" = "1msa7pp1a77wmvxa9mhr0sgjj4yv1msb0igqj53ahzgisyl3lnml";
+    "CT18XNLO_as_0122" = "1kin5bf9bcxadqibqfzb03bxdrj759mlgpbpjvvpxg4ishj0b7yv";
+    "CT18XNLO_as_0123" = "1mir3cpvbc30l3m84j1ql1d8phrx7nf0qd5xbq9jfl4gx1kjfw8c";
+    "CT18XNLO_as_0124" = "0ims3sl32rria896ckm9fg5dsmbf6ivcfl3drnqpl328ynrkbzlr";
     "CT18XNNLO" = "0j7bwzkhax4cm3wnbhqdv48j4wha9zdd7v77ihlgcvcmk79rx1fa";
-    "CT18XNNLO_as_0110" = "1vwaz00jwpyd1nafpfw0mw309v10zqxcsygdjsdd9mn5p1j6z3hv";
-    "CT18XNNLO_as_0111" = "0g6w519dc13mzgb2wpyy7chnl5wkl0ndrdiw7nymad0csg20yss2";
-    "CT18XNNLO_as_0112" = "06wlzpx9b83gblg4rvqv22k60pvjikqs5m5gp2kvrwmc2wxp73d2";
-    "CT18XNNLO_as_0113" = "0ybm5v0dprid7vvsnsihkd3vn5gqsqsmib63sh3xl45i58h1szzz";
-    "CT18XNNLO_as_0114" = "0hpznnkarzjmf5447jp9za1w52lqpysprnf14v31mda9k7a6kdkn";
-    "CT18XNNLO_as_0115" = "0lj637cwm726hqilrnfa064apdsqdav142dy3scz2gxzpzqpya7c";
-    "CT18XNNLO_as_0116" = "0m1zh15f975g628npifyqmlj578lpdlc67sdrxgdg97jfvxrq7s2";
-    "CT18XNNLO_as_0117" = "1r5kwl333ipq3g78cmn7h5yxk2gl3rfszm1ijzyf8hrjqz9m2p35";
-    "CT18XNNLO_as_0118" = "070jcd7y5w0h65ssk359w4kf2j7164pgdkg78mjwifi2garrlv0s";
-    "CT18XNNLO_as_0119" = "12nzzjyllr4vs422dxdccjy0qffg9gy8p2wa828cr3a26wjlipfr";
-    "CT18XNNLO_as_0120" = "1b9k3wd212nrhhncckj6fml58jzjagiskgmc6h248mcc8mcc2gyz";
-    "CT18XNNLO_as_0121" = "1wkgmkw5djzxc5g4iyr4h2cz08jv1clmp8x8xcidg5532zclavmd";
-    "CT18XNNLO_as_0122" = "1w7jhlk432qni1kn1big44yk16bxghbzrjb1g1rdxpibzy2jdkw3";
-    "CT18XNNLO_as_0123" = "15hqb1c4jx41119h2ahx6zacbigs9xw92jw7c4xsww9dkzr1qsr5";
-    "CT18XNNLO_as_0124" = "0fx7am4dv4d09hdk0yxvxzbdlhzc03y3q2x1hfx9wk07kcxw1mj5";
+    "CT18XNNLO_as_0110" = "1cxlps6kvm08lkgvrqjd8080ykc1dvd56986iwwzd0s6whlpfsi0";
+    "CT18XNNLO_as_0111" = "0bbp4qz3n9pwcfn6m623q2qqmx2wcgpy6759wzwpjnifym832j95";
+    "CT18XNNLO_as_0112" = "16p36jf8c8pliaxd6s30cmmmxg9slnmb2527vnwkka0kp9qw3ffq";
+    "CT18XNNLO_as_0113" = "15d4qx8x56kcg6p8980bslhfilkld8yf1mwpdzyf8v8ns50wrbw5";
+    "CT18XNNLO_as_0114" = "1zsfys0xkgf8zlbzzjmh1wvzxwjqi4rvgik26s5y4ibr68gshvaj";
+    "CT18XNNLO_as_0115" = "1x00d2q2lnl5w0l052v9cvkywav26b4r072dpn1jiak6n52yqqaw";
+    "CT18XNNLO_as_0116" = "1gm9m0rl9vghswcb4xgp54lc3h8wkh6c077625m9y0166xbv5x2d";
+    "CT18XNNLO_as_0117" = "0630arl5qwjhxw0avzlc0mr4hwi09ki8xfn4zvfccgpy2nd85q5b";
+    "CT18XNNLO_as_0118" = "1nx75pf5krazrk3ff3lb6zjnxz2qmffrk5vcf06iq5qci9zi5l0q";
+    "CT18XNNLO_as_0119" = "0dzjj9f2qkpwfr9pm3pfj6jw5ih2jis8wzc8d0vyh5mm084jlk6a";
+    "CT18XNNLO_as_0120" = "17pp23l0brnd0phq23888qbkf1c5j1lcskrbm3v3f2cd8p7jcvvw";
+    "CT18XNNLO_as_0121" = "0hlfx8zsxc1x6glny4cp2vpba8jgjix9cpsfixff9vkbqpm2ppk0";
+    "CT18XNNLO_as_0122" = "1918l55khrfyb3lcxsbbf9w6v8j54klszl2c32nmna0apf8zc3qm";
+    "CT18XNNLO_as_0123" = "02kak35pj6c4hml75na7452ryashfclglhahclzkpq8gs72l5w91";
+    "CT18XNNLO_as_0124" = "03wym12nvwdcr13dz6d2gr4bz3csffnn21zfdld42fsyq4glx431";
     "CT18ZNLO" = "0iv8laks2ymn5fygk6k9lxm3s7fld5g292n9bfkhn3nmcfxczi03";
-    "CT18ZNLO_as_0110" = "0q90c9nx0b3fbqq317qr0j13cc9m3zcgpk3pcn8s2sd6aaksa66i";
-    "CT18ZNLO_as_0111" = "0wnxj323k29xvcrrf68mfyhflfnblvvnx63p070l5x52qqbfjl7y";
-    "CT18ZNLO_as_0112" = "03qjvv004g99lbi022l9bvr82gvv6gzk651r8x5hwwyr0mar4j0v";
-    "CT18ZNLO_as_0113" = "0hw6w7x3bnx2fy03jj5yvbjjab9mj0fzca8bc46phjsmx3nqxq5k";
-    "CT18ZNLO_as_0114" = "0gnhqhxcsaslcldhyh69lxdx1misjz5qiwry57n31j6mqjrggqbi";
-    "CT18ZNLO_as_0115" = "1dn32bwarggnfq2s9drmdjikcrn0nm0mqih4f5wxr3zbmq70xw4q";
-    "CT18ZNLO_as_0116" = "17q8ysl7ar1n7wym55k8vzrx963rip9l9b0kxw2bqkha5ipwmnv3";
-    "CT18ZNLO_as_0117" = "1afaqy8afzib6fmyy7ysnfk8w5f92893nvh4fn1sx9ink7i2zqal";
-    "CT18ZNLO_as_0118" = "0sbhjzjsjd8m6sgz66vky3w7ymhwpss0dr2p603dxgm84fig1kzx";
-    "CT18ZNLO_as_0119" = "0fxplpy2l1fdh5p4csdlabg36xgbpdg8pcdfcnws2cfj3g0941as";
-    "CT18ZNLO_as_0120" = "05dk8bvwkn5y5j4rk18an25rg1f1am9vlddal84rbp8m15qnms65";
-    "CT18ZNLO_as_0121" = "0ymql1wjxng5i887lx2q6p8gryw29zs0d2hzkfxl4f0zzn2wlwpi";
-    "CT18ZNLO_as_0122" = "0gnl23n4ljlry340pwwfs0xs22bl2qp2b8p3f73gpp9xn42nwz1g";
-    "CT18ZNLO_as_0123" = "1wfx59iadvn85raa1bq81ipxpjbxli58hs8wpzm1vz10ilifn9d5";
-    "CT18ZNLO_as_0124" = "0jm0gnp8g1drz6a10wrdxkj2s8gws80ias1ixdnr5fdmnghf1wl7";
+    "CT18ZNLO_as_0110" = "1d0j9nmn9mk90698pxqlpgz7c7cyxswc88n89cr2h8mgcg2w8g2v";
+    "CT18ZNLO_as_0111" = "17l7j1j2x529mhk0andkdh83k9z6kg9v3ccfna08i7d4iilsdfrs";
+    "CT18ZNLO_as_0112" = "1b8mi0jwln2wvysrkbm1fvay053d17dzvlj9fkz36xmr03bv5mvj";
+    "CT18ZNLO_as_0113" = "13dkpjvh5a3p565mhpxqnhijl3jd2zr03np5psknvl121gr007fk";
+    "CT18ZNLO_as_0114" = "0drryvq2x42xpf9bmd6n4vz1f8ddh83c3rynnzm54qssxmfkb073";
+    "CT18ZNLO_as_0115" = "1wdj056rf02jksa2l2panvkijvvwr6rsb8kh3g2bvx0yjhff8g1c";
+    "CT18ZNLO_as_0116" = "1ibf0841irsa4vq9sg0kvrhvakyyshpvs38frz9v3zjbc012cldz";
+    "CT18ZNLO_as_0117" = "0l2nabywfsvb1sk44rqgrwf8h0lxkz8qf6pmzr8jc3zhq1fv04sl";
+    "CT18ZNLO_as_0118" = "0dnksqqshxqr0y3qr3diyvhfq1jxy1x0hrjw8xk76jzm61xi96x1";
+    "CT18ZNLO_as_0119" = "0qljv4d1qfc9rx3p4a8dghij11dv1mi03y30wdilfxrf98znvdyj";
+    "CT18ZNLO_as_0120" = "1w0p5gai8qhfjh4jxhyl26xrp8n210cp2a7zjd4id1s4pcvpzvn7";
+    "CT18ZNLO_as_0121" = "1ija1nqc4pbprcc3ddhl9rxxbaxngjr256zxiy7gg3wmg6364hjl";
+    "CT18ZNLO_as_0122" = "0d7h3vli13m1pm5w91js8skv198aqz9kjkx7w0sa4v2vhvz1rdyh";
+    "CT18ZNLO_as_0123" = "14cl8fmkl6jav7byqwcfa1z2ml6lnn6pzp0w4nqy75gc7wxsba0m";
+    "CT18ZNLO_as_0124" = "18riha0fflfbsgh7nnc3ghm8cpzpcss0z6l48d28bbq0i7caqad7";
     "CT18ZNNLO" = "0zsqrpab6vgcinsxjq3rqdadig5flxzk61wc1aa9rwnkbpm1paa5";
-    "CT18ZNNLO_as_0110" = "09ypj0yydkiw82bq3ymsp19i4iz82fm2z2xfplb3iasa86y377in";
-    "CT18ZNNLO_as_0111" = "00h0zd5indm57xhn467qffpx7aadzb73vyfazq09pl5vdqq9fn8x";
-    "CT18ZNNLO_as_0112" = "19vlb1bvp7r9jnknd2dvblggim1xqf4yjqyf5h04r90b89pyzxn8";
-    "CT18ZNNLO_as_0113" = "0h8i68dligavf051dpil2bqvlxm19156v1951n340pcncaxxi5d1";
-    "CT18ZNNLO_as_0114" = "1n2drxdd6f36njq0lcfm7s6cyignqdqvirh03ixvvar2pgj02yay";
-    "CT18ZNNLO_as_0115" = "0cv633f5gg6hcyhwfh22h5n4irnk1pxsk7949wiax7qkl84mcm1j";
-    "CT18ZNNLO_as_0116" = "17z25cky2ysrcplsxblrzka667npnnp42k6n8jsm73pagscsj91n";
-    "CT18ZNNLO_as_0117" = "1yrbrzbg5r2pvwhbnvfwcp9d9rvfmqqxwph0rd0sdfix9agwy2yd";
-    "CT18ZNNLO_as_0118" = "019lbvb8pjfbwz8hz8h2xw76nf1ly9mgnbz6pzi3v9msk0qbmlp1";
-    "CT18ZNNLO_as_0119" = "1x08wg3y3fqa8ah6m0c6x2fckjjyylkhnmry6vg93rp3n7qlvynw";
-    "CT18ZNNLO_as_0120" = "0m9mfr8553yrysbcksx17nz1gm1vi2zvs5bp8d3v82phsv5alhf5";
-    "CT18ZNNLO_as_0121" = "0snzl818ag926n0i67hdwkjclfvykx546vfnvsx7n2z5pabakd1j";
-    "CT18ZNNLO_as_0122" = "10i7dk1bllyk6f3l92kbiqdib8l2zvqf91g9c20k12sim6n6x2g5";
-    "CT18ZNNLO_as_0123" = "0v2h2fjkdsnyssb6ralw32c23l0nmdxbg3sx38vxh2y2s2nycz5h";
-    "CT18ZNNLO_as_0124" = "0w29hn728p8yip40mr27kqmv5wndfkq6nx0vnl53x41pwczkhkdl";
+    "CT18ZNNLO_as_0110" = "06qzlfshx8gwrhnmjfvz6sxq7h2is1dqvx5sz8jxrr1gl7gl92h9";
+    "CT18ZNNLO_as_0111" = "08k101cn9x9y44zcpn6iql85qqx89rv7xjhvak4y6s309p9rlnzi";
+    "CT18ZNNLO_as_0112" = "1c72mz93kha8mdfdcwj8fs8dqqylxmmc4vs7fjf9h7xbrqzmss7m";
+    "CT18ZNNLO_as_0113" = "0z7s1kmlrv99r5mb6p1xwrydx0s896kr3va0ld3gq39a0f6bqvfz";
+    "CT18ZNNLO_as_0114" = "0ir6n8i170czq7h3badim28540478cq5fb5vv4kdi0ncypsasr4d";
+    "CT18ZNNLO_as_0115" = "0dncvhp99v5s9746ql37gdm65byih9ppg30c77k50i2485a1zfap";
+    "CT18ZNNLO_as_0116" = "0qihfcsgxv66l781dmvmmpbr0s0c52s90jfmz5y52gyy1lplw569";
+    "CT18ZNNLO_as_0117" = "0agqd4vgj53w9p7ghfkrskqyvg7lw5g9ilj0fid0jia8adfh58xp";
+    "CT18ZNNLO_as_0118" = "07y1l00igx7d2yaj9gi60fvqz1p8f8z44fmxm84fpjikajabff5v";
+    "CT18ZNNLO_as_0119" = "16nnwwj16c8fmqh5mwnihzvbgfj3cnvw01i1il1gr0g4zqpn0yhi";
+    "CT18ZNNLO_as_0120" = "0yy0lxwm41aa727wdrq27l6ih7fdaqwiy4bkrbh0zrns0km9r958";
+    "CT18ZNNLO_as_0121" = "0yg70dx2wi9wf5914shfqaf2j90dnkfnbp1pq2jzxd0h0sxhlphj";
+    "CT18ZNNLO_as_0122" = "1bd4193ggv4nb48d0mw2n93ia30h4myfy197k9b0m3qc90xjq77z";
+    "CT18ZNNLO_as_0123" = "0r2vri1brq0xcrpj0cg9hf9kwhkh2czmimrsg5bfvx35adiiis19";
+    "CT18ZNNLO_as_0124" = "1wq0nz9jfb5fmzwnnh0xyra2j62kb5xpmh2nyy8ih4lvxhgi16mg";
+    "EPPS16_B_90CL_Au_hess" = "0ab3pnv8fq45mdp29m6lfmrhhnr88k6qvkq6lwxmn17k39v8j9w4";
+    "EPPS16_B_90CL_Pb_hess" = "1cjc79sygpxnir3qw9n6cdwvd3flfn11ajqs5y64svrpsqcx5ng0";
+    "EPPS16_B_c_90CL_Au_hess" = "1ijvnglq4wrjhhvksyd60s7c6nv50vwyk5vd8c3gs0qr8yz1fk69";
+    "EPPS16_B_c_90CL_Pb_hess" = "1347cqsfkim0xcds5imxmsdxh8x0h2n97x5zwpf035rbdk5mkr4n";
+    "EPPS16_B_d_90CL_Au_hess" = "088jrj6xf1ph19sypa5dizllydfzi6ikxq2gisdlxpj1qnwjymsg";
+    "EPPS16_B_d_90CL_Pb_hess" = "0x12r31l0nvqsc2ml1zkil0w1iji52xgbnxn3wss9pnmswrf3cah";
+    "EPPS16_B_u_90CL_Au_hess" = "1pq7agglirpk2w566c1ql15ps1aglmnph2p2dfa535zlv89s7c0d";
+    "EPPS16_B_u_90CL_Pb_hess" = "137jkcbikmcjaxp8rpr5j193cmr329mcvyy7j0s0a6ynglhpr76k";
+    "EPPS16_D_90CL_Au_hess" = "01ggm0xxwd3nc95cjcf36sy0pdb0xvk6bkiaq328w2sfajccr5mk";
+    "EPPS16_D_90CL_Pb_hess" = "1z3zam84m2kbs7zinn87xhlca90d5zwk8j72yj19nx3r92brnq8h";
+    "EPPS16_D_c_90CL_Au_hess" = "18sviyvm3rm9n7x79w1sx8j9mcc6dnc2il8hsw2avjgy2aqmwj87";
+    "EPPS16_D_c_90CL_Pb_hess" = "1ryv83iq1lrphgxvdsmh70j6iky993sax0s9cfrswpjyl2pcilq2";
+    "EPPS16_D_d_90CL_Au_hess" = "15j6s9mj1ci9wjgsfhbxfikcyxc5pilv56cyzxjhgjhfgwvi1xyz";
+    "EPPS16_D_d_90CL_Pb_hess" = "1qjyb57fhf6d3g7l48jcl6jizj2c5g63xahzanrmkm9r538hvhcc";
+    "EPPS16_D_u_90CL_Au_hess" = "0jjk2rccvv0ngxn7wf33j21y72wvs4dhwl56yhmf7bfzd6v70rp2";
+    "EPPS16_D_u_90CL_Pb_hess" = "09npz68wwvcsvd6h8lsgmlr19l0af4h4rppcd6jlwd88c2zpb3r3";
+    "EPPS16_Jpsi_90CL_Au_hess" = "0msvkihdmhap0bbiydxbp552k1sgk20wadvc2s2h9jldakdx0pk9";
+    "EPPS16_Jpsi_90CL_Pb_hess" = "13vc490k1769gbph3xn1lffj0ilvhz78by3lhw45lwkra4vx5zp4";
+    "EPPS16_Jpsi_c_90CL_Au_hess" = "069lzrnm5kx56rblr4lxqvr014nrf2yyf1iw42s37q2xsxpjip87";
+    "EPPS16_Jpsi_c_90CL_Pb_hess" = "1895iqzmcnaqkidcy96z4766wppycp1riwg9clg71cb404wz74as";
+    "EPPS16_Jpsi_d_90CL_Au_hess" = "0ndh23dyaszam144dsdbg4281c61vai8avgi4y7x8kb0paha4icm";
+    "EPPS16_Jpsi_d_90CL_Pb_hess" = "0xflijnwabg931z19v8c18dzh1lbqivkg94kpwm8j135ya1vpmm2";
+    "EPPS16_Jpsi_u_90CL_Au_hess" = "1hagv9akwm337kq3kvkpkdkcpnic7klnigh9pyif1gm16i1q40jf";
+    "EPPS16_Jpsi_u_90CL_Pb_hess" = "0dw68rky105lyaagkzkmfx6l9jk763m293m7s972jhnl5037bj74";
     "EPPS16nlo_CT14nlo_Ag108" = "1p7gckhv44h04rvknd6fdizy9c1jqfwic7ppf0ra14ic8wp1g7wg";
     "EPPS16nlo_CT14nlo_Al27" = "0hxyakfgknmixxndfj14i44afp5gcfz9afjvjdaj702sv42a7qa8";
     "EPPS16nlo_CT14nlo_Au197" = "1g272110y3a1fr6raxdfhagn68i0lcnwbdhiiqg4j6wb6v4m3p6i";
@@ -421,10 +448,15 @@ in
     "JAM19FF_kaon_nlo" = "05mcahzr0k5w0hqfbn902lmkwxlkbf8wrk6akpqnfsyqpbmhja5k";
     "JAM19FF_pion_nlo" = "06krcf0c9jbbpwf1rk1xd5z7rz904ji984xz05kv9p1j1vgk0ha0";
     "JAM19PDF_proton_nlo" = "1zrcijik60rci6km5d8pn8ivww8w3v8pb1m5dshqjs51lhf56ayp";
-    "JAM20-SIDIS_FF_hadron_nlo" = "11g4syy0r46m1wvzq0pb84s4kk2aihjmhx16mr8gzv5b11520a6d";
-    "JAM20-SIDIS_FF_kaon_nlo" = "1b2rz6k0g6ck3m28vdqjnnfc025ql5alhjmgn1l84cflf4fvkkgp";
-    "JAM20-SIDIS_FF_pion_nlo" = "15l98gmzsqxw615802si94dmj8ihsz6n1mraxkkwjl86hm8nalzi";
-    "JAM20-SIDIS_PDF_proton_nlo" = "07xwp9as0nscm4whl5x9bry1p54yl5qmj2r3hqh6vjsz6mxksdjp";
+    "JAM20-SIDIS_FF_hadron_nlo" = "0bx3igckr2dszxskz5f952vl0q7kwvxgyb28yksjk75325dp2f9c";
+    "JAM20-SIDIS_FF_kaon_nlo" = "060r6ah5843vm1r3rhjvlgp7w45z39cqgibfc2g2m1q7mwjqccjy";
+    "JAM20-SIDIS_FF_pion_nlo" = "0fpkbl5fw76wgk8l599kf51mqa0fy92bq9ksfjfks0c4m6ah1g5i";
+    "JAM20-SIDIS_PDF_proton_nlo" = "1g1g9n2ij58yzvgrw8g1f8jbqyhj9yvbvl9iqjxllkhkb2zbllpl";
+    "JAM21PionPDFnlo" = "0zn7p9ny6072dkhsiaq64f2gdzpqbqc06d9a21rvvg3cgsba9jg3";
+    "JAM21PionPDFnlo_pT" = "1wxpkk1wzx1z1kwxfj6kz14pxlckb96aqaq2fa4sf1a0ph1ibrc8";
+    "JAM21PionPDFnlonll_cosine" = "0nbmdc0744kl6r7r9lfs20gffpjyxpcfpkp7f336fn1mcl89wggn";
+    "JAM21PionPDFnlonll_double_Mellin" = "1n8fqar0dddc92054kg3pl1xlh6z7smm3glv5fvfxr933bxli5g8";
+    "JAM21PionPDFnlonll_expansion" = "0dmmalgmp4xjwimyfx0sa8yafzzm0xzqk557qwkli3ramzwrwy8p";
     "JR14NLO08FF" = "16azkqxf1yw1j32ay6j01gf8n9n7qm56jh4yzgjag0zdhm01lbip";
     "JR14NLO08VF" = "1ilw38pp4vy8c8v1glfi4ixca73wjkdg3di1wh9p8xqrifdb096p";
     "JR14NNLO08FF" = "1w0pywmjb4xi7bsvv1mdd4q2adf1g7khspfbkphmlh8zipx29nxx";
@@ -435,6 +467,9 @@ in
     "LUXqed17_plus_PDF4LHC15_nnlo_100" = "18y3pa6gjmcv2s21si9a5dvbq6xxqphbqz5qiy39c62g2zf8512c";
     "LUXqed17_plus_PDF4LHC15_nnlo_30" = "1bnwlxr8p4xmr36zd2flhqssil6w7jh50k46j0mxfnd8jgxgwn6n";
     "LUXqed_plus_PDF4LHC15_nnlo_100" = "08jzl4wcsrr9agycq1r5kd5bqxsx4b637nxk34s82vs7vwpq7qib";
+    "MAPFF10NLOPIm" = "0w875dh5klqgggcr84g0g7qmh4q2xim8nrf0xdnfc665xww7v4my";
+    "MAPFF10NLOPIp" = "1493k3p7b03sw0n7va60vqxcry2b3xgpww6fnk2gx8b4w1632yn2";
+    "MAPFF10NLOPIsum" = "0x6sashkhg1hs7wy6fyln12s1f4yavvc90zv4k7rclbah4hr75wm";
     "METAv10LHC" = "1vn4wnx1blz6wylbzirswdqqf0knmyh1pcfh62wvj695mh7i0w16";
     "METAv10LHCH" = "1p4wy7m1ksz0r1fylwz3cbq7jl8s58v817n3d898l83ic2ghp4vj";
     "METAv10LHCHfull" = "1w623939fjdyx1316rxyaavf6kmxff19himr00br57jrw3v49nfg";
@@ -486,7 +521,6 @@ in
     "MMHT2015qed_nnlo" = "1ypqiz0yz6hnxfml7ym83k4qqvqsbl39abbr38galns8xzzpi03m";
     "MMHT2015qed_nnlo_elastic" = "17in1cz5j7mm9qjk8i27fif6x276lcqmccl7kfz8a5yn73xxzja4";
     "MMHT2015qed_nnlo_inelastic" = "1ngk4p7w8l8b8sfg6hlm8ypxz97i1iwzlrc48szy7bi99kn8rmy1";
-    "MRST2004qed" = "1kdrzk2arvs36lnpkbc94w06hx3nh8nixh2qjhb271c2blwgahzh";
     "MRST2004qed_neutron" = "12vna0ic6gh313k22b44b0k9kd939v7zjl2hj65k1075j23mq425";
     "MRST2004qed_proton" = "10z0cr8pnr0lfxxi916naiz381a2cqn461jblfzvvddwqmqbllbc";
     "MRST2007lomod" = "13ar6hzw9al20zlm8lg0hvwmgrmv0dbam820gm36rj8p7i33qlr6";
@@ -494,9 +528,45 @@ in
     "MSHT20lo_as130" = "0ivjvqabk9jnrlrczjlqywmijx5ql8wy579j77qkl1vhv7sqccm1";
     "MSHT20nlo_as118" = "1qwbwcq8p4hrprz4ib18mp5142b0lbyyzc1bf5a4iq5jjvi5qm93";
     "MSHT20nlo_as120" = "10y1a6iryahrafzdqskypjrnad6xxq08gm72pa9yc61xdy6andc6";
+    "MSHT20nlo_as120_mbrange_nf3" = "0548pw6lkwwqhlrg7c4cyqh76bcyz78yh06fs7crdbx7hfl47cj7";
+    "MSHT20nlo_as120_mbrange_nf4" = "0pg49mad4845llj49a1piaggd8wpwb2s4ar7jydlhrv7im886by4";
+    "MSHT20nlo_as120_mbrange_nf5" = "0148agm89p7pwzdfjk8gjdaicll30xhz6sawca632kp5qwyd4g3d";
+    "MSHT20nlo_as120_mcrange_nf3" = "187hgg8klk5jhcadiy8viyrfi0jfb3i18jckv6d7nsapixz1wgkz";
+    "MSHT20nlo_as120_mcrange_nf4" = "12pjy0igjcsih100g238v143kq5cjjm5a13cghcipgcz2w4ldglf";
+    "MSHT20nlo_as120_mcrange_nf5" = "00mipn9ndnw1k4nx6pmxb95wddmh98hg9k0317vlirxrf2n2jy7g";
+    "MSHT20nlo_as120_nf3" = "1zy0j9qc28xpav3gx24r6r02zfz49r11ic66hkyq83d3q3fj751b";
+    "MSHT20nlo_as120_nf4" = "0fpyf9s9ppb6w49chsmb2xfp9gwkx3ky9v8gwwqxli9fpzsc2ywn";
+    "MSHT20nlo_as_largerange" = "1f57dvxas2c6qnv38ysnsyf0y8imafnrxkcqh3b0an19mkln5mmg";
     "MSHT20nlo_as_smallrange" = "1rygvj33g84whl24kgpqa47g11c48l93jlnpzqq8f5zr1ijqcq7i";
+    "MSHT20nlo_as_smallrange_nf3" = "1d6cr1akc25mwfyghvn1986i60l76fxb8fd02h7f4pl4lmnn6i8n";
+    "MSHT20nlo_as_smallrange_nf4" = "08js1l5g6knjx3813i0rf34xfjkbn3mdsrbawzkn00vf49xzcxdj";
+    "MSHT20nlo_mbrange_nf3" = "1bwl4inshg5h3sslss4lgvcqahb5q0n794ag73hyacxd1kmx7d2z";
+    "MSHT20nlo_mbrange_nf4" = "1sm995pzzr601wcs4rjgjs6alm74vc23szgmkqa5dvxghw7x8w55";
+    "MSHT20nlo_mbrange_nf5" = "1sal7iqma7770593ifxypl9zapvba693asc8m2fjsbgpbfjjid60";
+    "MSHT20nlo_mcrange_nf3" = "0lmv6m8m7zv0s8kjfm8parr9xlfy39dhwxn71z33f5x6cyp08zlg";
+    "MSHT20nlo_mcrange_nf4" = "0875zfv0dws8n44fqawa1jp5p8b9vky8yyq48wijhrcph8qbxbrx";
+    "MSHT20nlo_mcrange_nf5" = "0qjvam29zwibx54fgijry58vdwqkiwyavdwn736bmckjycncnv8p";
+    "MSHT20nlo_nf3" = "1v0mzsa2sxp0g3m3d8yqcs7dgi74am6cpx79f341ahpwybz5x829";
+    "MSHT20nlo_nf4" = "1lyii55adqaah6sm8b778q8scaq5yjycq3s8jdi3k48z8m23zqng";
     "MSHT20nnlo_as118" = "1yz0003ixjg97974648qba5d37vb4fhzzmq4k9xh4c37pnc3kgyn";
+    "MSHT20nnlo_as_largerange" = "014a9x6zsw3w7b6w3v6lg8qxdjicxslr79bnagi6ci0skqs2v7z9";
     "MSHT20nnlo_as_smallrange" = "1bv7cbdynp6dm5c9v7r32gqy1lch4428apw426pr0d7xpm0abnxv";
+    "MSHT20nnlo_as_smallrange_nf3" = "0n1j9dd069qdmgmd85m7wp29g96cnbgsdxrvlh6y51q063lkqbwb";
+    "MSHT20nnlo_as_smallrange_nf4" = "1jkdl3rd933czz753qbi7yvszg376r6bvwq2inqbslnzfkfav5bh";
+    "MSHT20nnlo_mbrange_nf3" = "095zcxhpfhlsb67ki4j6a8z4d1r5hzx92xlzprwkwd4v5ya4f732";
+    "MSHT20nnlo_mbrange_nf4" = "1114z5a0pk9svps918zifff23difxf37rbmr3jnzxnyp1vfgzws7";
+    "MSHT20nnlo_mbrange_nf5" = "12i6m01bmnzqadi6jg5gmah1jliq4wr4p0vpjgmpgyagsk4drx4b";
+    "MSHT20nnlo_mcrange_nf3" = "01wq537083dr9ibiahwdwdaxj0j2ys211m478w9wgvihdjjvjvvv";
+    "MSHT20nnlo_mcrange_nf4" = "04abrnlnbr94lksn29w9ws9a3b6sqkqvi9awmbk4715dxk2amnpk";
+    "MSHT20nnlo_mcrange_nf5" = "0za255xi66a1mfch2b91qqmsr305m0kvs4rzvqlzf7k0v141j90y";
+    "MSHT20nnlo_nf3" = "10yx59r32q4rl0yn4gpc29z8xskbvizkdr7k219qf16lnv892jpa";
+    "MSHT20nnlo_nf4" = "17d10rba8b0aqi1npnx93j1995has5sw2l4izd6lly3yhjynbgp6";
+    "MSHT20qed_nnlo" = "05c2hjgysyvkcyqg1lq3y00hqixgc8w984zivxkr76nj5csyf6m3";
+    "MSHT20qed_nnlo_elastic" = "0in0y27gn4k9h6ya77krhizv8rg3i6s3d6h4bk0fhz91hbi4l3gh";
+    "MSHT20qed_nnlo_inelastic" = "0vna0gbadf92w3xngb8gnsxd3lil8m029as8260wlki2axm4gqlw";
+    "MSHT20qed_nnlo_neutron" = "1hiq7m8j7736477vfs18mqwhkxyvjmcrs7jiqysa8v6rmhb4bali";
+    "MSHT20qed_nnlo_neutron_elastic" = "06dbvsysszpbvabgafb569vq88q1sm9mvz1iwv1m2b9vzin2ixiy";
+    "MSHT20qed_nnlo_neutron_inelastic" = "0gfh6nhl4vq4qz1jhnv5vhhz4h4wlkwgj4ffjqll6jqa5anfhbqr";
     "MSTW2008CPdeutnlo68cl" = "1x2y7hl8ckplx175bp3wi04xafm44dd7vzfgnmvvai1x0072xi51";
     "MSTW2008CPdeutnnlo68cl" = "1szsdqjkmny30mpw4pdzi97vj7i55agxm285dvnkzp06ycgp1ld3";
     "MSTW2008lo68cl" = "0j12mv286r4ds9v7piqh4n44yjnc51hm74lqa4vv5xznxhibng7l";
@@ -854,6 +924,32 @@ in
     "NNPDF31_nnlo_pch_hessian_pdfas" = "08baysni2lhbpr1scx7h0zf64gyncj2ahcv4y86142gl4zqrafvp";
     "NNPDF31_nnlo_pch_pdfas" = "09mw3gr7dz0vwdnralaplvlz2c464lmdizf673xsb0wlm12pqf6g";
     "NNPDF31_nnlo_pdfas" = "0l92q3xhdk5nrnhkmrirxnvplj531rdpnblnacd759cl4hgxcs2q";
+    "NNPDF40_lo_as_01180" = "0m630n5i7s0qnlxzk6ka43qfp6ipz2jgzr7ys42hdb66kg3z5lkc";
+    "NNPDF40_lo_pch_as_01180" = "0wrvmcgdaipi7vy7j85yszaa3c57hs3xll9lfn9cdbjscvmsx6x5";
+    "NNPDF40_nlo_as_01170" = "14j21qryc25k1jk4ypdcr3cgfkhyy4hsb57hy8x5pggfwc2w3f36";
+    "NNPDF40_nlo_as_01180" = "0399bnxvgl2h2ini198jmzjjb179f6dpxfv5x8imlfl515llivx2";
+    "NNPDF40_nlo_as_01180_nf_4" = "01kwziiyg8vbl26znv7khqdckm501d7ccxlkq1y0cd9s1f5ff8xi";
+    "NNPDF40_nlo_as_01180_nf_6" = "1gv8anb3vqpzdymp9g69702x64pbh6l2rn9257hdpz4i4m98rsjy";
+    "NNPDF40_nlo_as_01190" = "0wf8p2i4mxs3hkqvxg1clj082yinbdgccr6qx5kbwkzsck4yybar";
+    "NNPDF40_nlo_nf_4_pdfas" = "1ia9glingyds6bj6yxy867ahriqdhfkxczzc4nki933h6jbj74bf";
+    "NNPDF40_nlo_pch_as_01180" = "0gad0hjq9kwiymc9pljj4z52jsg794m3knb38zj9icgjk0p9lwxm";
+    "NNPDF40_nlo_pch_as_01180_nf_3" = "15j3vvc0vaf13d8cnyr4h7gwb7iznrcajnw59ryx6ksz7cn84sy4";
+    "NNPDF40_nnlo_as_01160" = "0y9115xlg14m1ahfffiam4zp0axga86bhzfxf0xiaxb36yzbmdhw";
+    "NNPDF40_nnlo_as_01170" = "1h6if1zw9dqlfnn7glbl5flj792i7fqiy7pprhwk93k4snh3800i";
+    "NNPDF40_nnlo_as_01175" = "1dkzzhmkmzm92gmb83lyirj3clicrg70h5grzh0j8nfcw0xlz4rm";
+    "NNPDF40_nnlo_as_01180" = "1bhysjkji0k7xy9njarkfvxff05kjl1byhkknxv0875p2znzkpva";
+    "NNPDF40_nnlo_as_01180_1000" = "04yai94qwd7187wg26icwf2wbwi20747l6zikd66ygsz9n34xn9y";
+    "NNPDF40_nnlo_as_01180_hessian" = "0cmpqgaz341hif0gdkzq8mnfh9apxn1zxjwa12fk5svbig9i1a81";
+    "NNPDF40_nnlo_as_01180_nf_4" = "1aj5y3fyvna2jwxbsrgr2cbc452aprxnwv78vh3ph20jlnww20pd";
+    "NNPDF40_nnlo_as_01180_nf_6" = "0bf6s6s0w7l592bm87mazwff05d8s4qlblzl9yj91am3xlv0cvn1";
+    "NNPDF40_nnlo_as_01185" = "0y1xn9qcv2l81sbz9rayzrpd1bjsdyixr42lzfgmqbq45sw2m04n";
+    "NNPDF40_nnlo_as_01190" = "1ibz4yfrw1n8plq4gi03yxi9afaca2yprxfk2y9lvbkycn608d0q";
+    "NNPDF40_nnlo_as_01200" = "1cfcn819aali7ylv9y6yb2ggqy0yghyj0dys9lf9gv5wiqjwh5q2";
+    "NNPDF40_nnlo_hessian_pdfas" = "1b5jvhdk7fmnz8gl38i3408h2qrqcsr7s9v7bh6ilc7x52xsg65k";
+    "NNPDF40_nnlo_nf_4_pdfas" = "1ssp315xcqpc4md5gijbi2c02r6hpazp8yw1661r4m7xy5qm62wc";
+    "NNPDF40_nnlo_pch_as_01180" = "173l2178plrir9fb3bq17l4dw5qfy9clic4m54wqg7y3r71bmv7p";
+    "NNPDF40_nnlo_pch_as_01180_nf_3" = "1mh0pl1f1ayx1fjj0q1fw9s7wc7gmj7a46jli87s4g5nxrhyki9f";
+    "NNPDF40_nnlo_pdfas" = "16d81h0pzxzgwwrfjghmradx4bijf08xbrdn79y9bxf6czacm8n6";
     "NNPDFpol10_100" = "0r5qfa8cyanalphgjdsh57s3viqv9i10v51p1pyamj1f90gb9pr8";
     "NNPDFpol11_100" = "0nny1lpw37jcillpfxjx82hq7wlzp4yksxialmc2ivr192qqdda8";
     "PDF4LHC15_nlo_100" = "0m9d4zy7608iryqy1ypgkr1d3yhw2wv1nrrc70zrfih7x0fp7lz7";
@@ -871,6 +967,14 @@ in
     "PDF4LHC15_nnlo_asvar" = "03fh1jcbmvla7n2jj3zq4ibwvq66h0rniply7h93d94zawcgsy4v";
     "PDF4LHC15_nnlo_mc" = "0c6nfkv3x1p5iw514knjvqcs1dcaryf74qqg1za8x234yr5ndi3p";
     "PDF4LHC15_nnlo_mc_pdfas" = "0l8hlcz69cdii7mpgargi9nsx7iy746nad5pnn7pvycrc40marij";
+    "PDF4LHC21_40" = "037bs1l7zr3z8zi6wzh5kxgml84bl64258fr2sm0dzv9yxh8lvp5";
+    "PDF4LHC21_40_nf4" = "0m2ki4qmgl1ggim2inlgynjzqr4ya3qgjph63jf72kia8ks2hfl0";
+    "PDF4LHC21_40_pdfas" = "0pigpix2x2bv1a5ib17zjlfjqygjpjra0pgvmf6knm7mbgwxhqm3";
+    "PDF4LHC21_40_pdfas_nf4" = "0dayiilh94cszqiphr487589qacawfp4za2cngr3da03yg1aswbd";
+    "PDF4LHC21_mc" = "17fbwk7fp2m3fd0xzp94sp7m0mmjmzakg870rbhg8vi88bimmwry";
+    "PDF4LHC21_mc_nf4" = "1n7h45yxw2mwppf6zblc8v415khy9vgrackmbfkm5lb9c79faas6";
+    "PDF4LHC21_mc_pdfas" = "1pn9a7z0xl1bn18z461j90sjglccswimm4p23nyq0fxal5ziidbl";
+    "PDF4LHC21_mc_pdfas_nf4" = "1andl5n1lw5iyd337czph5abd0sqc3l90b21g67af96am5pprcpk";
     "TUJU19_nlo_119_50" = "1q1dhsxz1kq75rpzv6gg6p6bzvvv0d44pc4y3wsiy9g14aff85vq";
     "TUJU19_nlo_12_6" = "006j6y4xbjss9apzagjcc3r1z6s61a1hzafhcyriiffqhn8bg50k";
     "TUJU19_nlo_131_54" = "0ymf35alyar6fwagmdny2zz2aag576f38kail7gh2lvqpmjmv6np";
@@ -916,7 +1020,6 @@ in
     "abm12lhc_3_nnlo" = "09k90vhjq7p0i0aaq2697pq2dc86bkmnv4q8zyqxjp3wnqx1v95f";
     "abm12lhc_4_nnlo" = "1hciv1z9b5fiz7swv21gr0rshijj9yj2n8x4l54v9g0jyd061jaz";
     "abm12lhc_5_nnlo" = "00xxkrhbfkxhg33mkpwwk5nsdp4nmi0zmllx5z5ygxl24rinsq9j";
-    "cteq6" = "0lp110wldhliad354v29f0rhdzf5qrs1ibklj0cmzp2rcbp8zrix";
     "cteq61" = "14hbc855b3wsjk7ypg86md46cjm1bj7n4hins9nr8kgzs69i6vss";
     "cteq66" = "09i69ac3gkrai5jmazjyjvi5sl8k2vm48m90ijn6pl24p31qf68y";
     "cteq6l1" = "1b5m7g7wawk72h76l9yr3gx3n67jggna1004lwffvj43gffwkjap";
@@ -943,6 +1046,162 @@ in
     "nCTEQ15FullNuc_7_3" = "1ncarbncfkqk6l3rx3zg34a3sj7mpm2diqsafyldpn92cw66bcs2";
     "nCTEQ15FullNuc_84_42" = "1z719mcx5lnx2ciwlnxxhgc4s00jrr9sfrxcimh69sj14hmzgx0d";
     "nCTEQ15FullNuc_9_4" = "180ipb4m2zy54h7n4s0jwqk9k6562bygvnv7mg9dp2f7vf5317a1";
+    "nCTEQ15HIX_108_47" = "0iqv6rsvvr5mqiaddn2cs6psrslw6ncqxca993v0z0hng9ahnnwd";
+    "nCTEQ15HIX_119_50" = "0gxdr596gk69sb76r90p5ksvx9bk4axj21qrsyxjf1bmgdg2rv72";
+    "nCTEQ15HIX_12_6" = "0vkkz3hq0irvfb08cpdijfvv17bcvzaba5c1bf8kwx1i2zl5s6xz";
+    "nCTEQ15HIX_131_54" = "0pbm6390cdglxqzrpl2slv65m943m32i10c49pf70fg68x3l2dff";
+    "nCTEQ15HIX_14_7" = "1yshwpa3zzzmf7s5v3c3130ysm1wciicz202hrraz4px102h8a06";
+    "nCTEQ15HIX_184_74" = "1wy1691pc776kv456cbjl5x5rg2z7cycyfny24caq1qvjifvbr94";
+    "nCTEQ15HIX_197_79" = "0ckbp8cw49ch78q4nsm1fccn6nizpipdp8q85nnipql53xsnr4zm";
+    "nCTEQ15HIX_1_1" = "13sfws9cmrsnp26mx4m2n03gary2m10l67bd8xic8pykgpr8c695";
+    "nCTEQ15HIX_208_82" = "0fqvzpqszkyqb4f2y44hrdj7rvadbqj6y8fzkl9xzk432lalm8w5";
+    "nCTEQ15HIX_27_13" = "0z356q82x6cm52f3qym7vkajlkf2amkz87as0jvfiygvi4gnilcn";
+    "nCTEQ15HIX_2_1" = "117dgz8nx1j64xgqlp40zmgpg0z8b0p1j75d1llvshmksba43avb";
+    "nCTEQ15HIX_3_2" = "1k1hxpcg39hrh629ml2kwnhir6pq41rpic48njq2lagmrcdpbn52";
+    "nCTEQ15HIX_40_20" = "0q1ggww4a5cdf802737kh7igb0br3q50xw205v4b5p7v237wsiym";
+    "nCTEQ15HIX_4_2" = "0n9zf4yxvp3b3ryxbkdw0yilsb21nrjh40ms883d6j42slzhf37f";
+    "nCTEQ15HIX_56_26" = "1z39vjgp6jryvqaxv6jq05jj0lfxsj212g17amch65pgxm4l7cwg";
+    "nCTEQ15HIX_64_29" = "1iy1g1226irrjxz9wwabwd6x0712dm1aap7ka6fy9wwwbn87f6d8";
+    "nCTEQ15HIX_6_3" = "0ljq0h0cdwbfvlpd40v2nypklimw4hh6k999mnyxqfvq47m13ffl";
+    "nCTEQ15HIX_7_3" = "1y9k2snzymzgs26ayfn2c8n6isqzqq14pzf05xvlxmc3k1fbsfyx";
+    "nCTEQ15HIX_84_36" = "130g553b22s7plgy51n56az05v1pnfgrg5knpg1knx8xr8a9xhh5";
+    "nCTEQ15HIX_9_4" = "05igk9g2i1gm7d7npdwd7y3k7xf39scx1mwiw4m39b52kbq7kszp";
+    "nCTEQ15HIX_FullNuc_108_47" = "1h2x2h2n02nwinf8ba3yyqa61384p4g29ib8vnrzwzc7q34940i0";
+    "nCTEQ15HIX_FullNuc_119_50" = "0m5z036py2m1863k62pzysjdr92dhyiwmb8lxgky5skd7514rrsd";
+    "nCTEQ15HIX_FullNuc_12_6" = "13rsl7lczf5qzjgy8m3dp4f1gyib2ffvf86iwci91sq51sma5kk9";
+    "nCTEQ15HIX_FullNuc_131_54" = "1bsi3y6b7sxykwablgghqc89s3vxrvjr9y4bvhwcm21c2i4y6vbp";
+    "nCTEQ15HIX_FullNuc_14_7" = "0w93qfiqdnzvrry9ddpbqcy6y16sszxfmvvgdy6r8i8py8dzfkyr";
+    "nCTEQ15HIX_FullNuc_184_74" = "1q93f9rvlc4z3hzfhdmmxlyqfschrf99a0xyrc78rq1z2pfgmm9b";
+    "nCTEQ15HIX_FullNuc_197_79" = "0kb2lnvh8mq25i5pkfis86ggs0s6hmpmyqqgimhcsamk8xnf2pcv";
+    "nCTEQ15HIX_FullNuc_1_1" = "1nk792chip0iamc6dlqgqqlc2qlxlbgvgnhsvbmzkmmzvp2ji961";
+    "nCTEQ15HIX_FullNuc_208_82" = "1l038nhnwc0pd7sq4yki3sjrrn66bsvqkvba2j3kf4f852gsyswr";
+    "nCTEQ15HIX_FullNuc_27_13" = "1gdb09429xn5n07qqjch9x1cnq4xinf05wla8fsq69qr7bcdq9mp";
+    "nCTEQ15HIX_FullNuc_2_1" = "0fnbpwv8qzgchc2r2gcjgw9yh4r94vm1rzbwj1f6ahbwrsl4rfp3";
+    "nCTEQ15HIX_FullNuc_3_2" = "1r1s7ljwa169nbgc1439cj0gkaqza6ilx3x4gyq2jg9byz30khzx";
+    "nCTEQ15HIX_FullNuc_40_20" = "13p7mnh2h8abih8y24rfapnrsd036pc8xy8qm82j8g4bk0j5jacx";
+    "nCTEQ15HIX_FullNuc_4_2" = "0j1w7d11ybmpfci79lz99i94szxf5xn6z4kxvh8hly3qlcgn636j";
+    "nCTEQ15HIX_FullNuc_56_26" = "08wds8afv0fzlaxck5i2d3pzvi5nqnc1jmq58fpnc7i0g238wl8k";
+    "nCTEQ15HIX_FullNuc_64_29" = "0w4hn5iwqa65lnf6mhihx5qrq4wpcqw04ii3jphy79l58j3i1iam";
+    "nCTEQ15HIX_FullNuc_6_3" = "1ki2cfsg0wmvfkzv2j9akiyl4d4b8v3d6f65iryxakjkhqj6vvgx";
+    "nCTEQ15HIX_FullNuc_7_3" = "14mx5lh278p3zdc572bhxw9sc6n7ga0ak0ch85h3lx9zwg2a1m5i";
+    "nCTEQ15HIX_FullNuc_84_36" = "0hyxyhb2mn64fwmijigw8m3v5zlj52hf2hicvx4gcq0lw063jxj4";
+    "nCTEQ15HIX_FullNuc_9_4" = "17pydzll5lgs974gz4bchl2wxc9ixfpnqjrsidzksl4jf03gn77z";
+    "nCTEQ15WZSIH_108_54" = "02z08pzvl8fa0bi6ddrlbknj0iryimw02r40z0nn7p8xf99qabhz";
+    "nCTEQ15WZSIH_119_59" = "0r03k6j6nd2mvdkidw4gx1xm1s9hil9z5kanxsn2hzp30ab971db";
+    "nCTEQ15WZSIH_12_6" = "00d4lis1qas1k8yzfb3dbqgvy9ynv7h9lx67ys3mj1ws5fqyn5al";
+    "nCTEQ15WZSIH_131_54" = "10frai6qmzvp8xpkanl1qlpnc6chf6k5j70f4pw4abw8ycbjymij";
+    "nCTEQ15WZSIH_14_7" = "02qd5x041p6n8rzv5l446481jb9vkc5nrc018vcg41735azr0d0p";
+    "nCTEQ15WZSIH_16_8" = "164ciyxkrxp33r5nrkl86gq0jvdzm90hf602raamn1b5l5yrnadl";
+    "nCTEQ15WZSIH_184_74" = "00nrwb8q6sa3zwbdc9mx4jz5ndibml84lfz8gad9vhy20zayyh3q";
+    "nCTEQ15WZSIH_197_79" = "03hzr05vhb0l58iv9c2743c688ygagy1bi5a7zqn8nilsmykbvag";
+    "nCTEQ15WZSIH_197_98" = "1mdlhp643z0gkjpj2jdi5zdd4qxxjqsy93rkv69cn1x5abawdl8l";
+    "nCTEQ15WZSIH_1_1" = "13wskph284niaxqx92yaa4jg749ry6y98ds1ifvwc9970iccdnk2";
+    "nCTEQ15WZSIH_207_103" = "0mpc6msqqjbcs756zd426xgzxmmmcmk8cp8wh2mpagib1drrg1x8";
+    "nCTEQ15WZSIH_208_82" = "130bs9y9337pmgwi1ix0ar2xvhfhl4rs0626kbin5yrxhdy7rpha";
+    "nCTEQ15WZSIH_27_13" = "1r01sbzixlrqxkjp9kx3s4zgsd48myivyc70p7ha83i1qrq50g7w";
+    "nCTEQ15WZSIH_2_1" = "1qlh3zxbg13sq187k1fmssan00ifmqr0q2l7i45vc8jz3mk70098";
+    "nCTEQ15WZSIH_3_1" = "057zyvlxz3hwlwgydccl2y124bvc6iwqqgav2jqw0r53a39rc25g";
+    "nCTEQ15WZSIH_40_20" = "11psi56yk2yd75v396j68hfdacsnxvng2bw4v9g4afbjv9697jgr";
+    "nCTEQ15WZSIH_4_2" = "0g4rvlgksw5gf6a7zh7yzsi2sq5jqkwbrx6d7jgz7zpg8jkg4qrz";
+    "nCTEQ15WZSIH_56_26" = "12d0bj92b615kzadxwivp1q0j906m2rlcxfflwgwg21sv9axhi4l";
+    "nCTEQ15WZSIH_56_28" = "12yx9v87y59qf14005fmj55n38xnhlvc7qgcrgfsicmdbx3ncm5x";
+    "nCTEQ15WZSIH_64_32" = "02w3a4sbygc72acxnfc6lhird4nxcgq5dprfldg10h7f9lr7441y";
+    "nCTEQ15WZSIH_6_3" = "05x3cknlnc1kbqnmi3hk6fjgx07dhl7b36rg3abaqn4yg65i79sj";
+    "nCTEQ15WZSIH_7_3" = "0d6cmpv6csysr96knip033mw7sg56ls1gcq8gvz2qy7isj167gx7";
+    "nCTEQ15WZSIH_84_42" = "15zva7n91p6s98kkhcfsvws20s26fl1bvjql8m1n1c2d5pr29wj5";
+    "nCTEQ15WZSIH_9_4" = "04cs89s2m99p31jkc2k4f5i5rr0l4fpa6a41d59zvknhgfy74yvw";
+    "nCTEQ15WZSIH_FullNuc_108_54" = "1wk8vhhlzj3wrb994s66q5zmwxhcy9vxpyks36s3jr5729jxk1j1";
+    "nCTEQ15WZSIH_FullNuc_119_59" = "1rrkj7inah6bg03mmxgza39z40ghdr8km9hy5v5b69bvqcyr42a3";
+    "nCTEQ15WZSIH_FullNuc_12_6" = "14wgacbimifnaji6byq1cds9zz266a63bvv616b0n06391plvzff";
+    "nCTEQ15WZSIH_FullNuc_131_54" = "0k6gncwq4l5avlnr4qpvakklysi6g855yqksylc42ndlgjm4jxfy";
+    "nCTEQ15WZSIH_FullNuc_14_7" = "1mlffwsn3f942flxvvi0rp63xlcrq88ir9vffmkzh3br3qpm4q41";
+    "nCTEQ15WZSIH_FullNuc_16_8" = "1ga0kijnlzjz98j32bakcan89bfhbhq8y08d84d90xpgaqkpb9z2";
+    "nCTEQ15WZSIH_FullNuc_184_74" = "1nhly8065kabzjjkapr75vafx46f1zl21xc6fdcv15a2qwx54n0p";
+    "nCTEQ15WZSIH_FullNuc_197_79" = "0l9c684f427b8hhwm68swh78n6104nbpdxq6v50zipwc6df0j6w9";
+    "nCTEQ15WZSIH_FullNuc_197_98" = "0vc285bd21arpmaykb6baspzr8ak42yx9h4j0sx2vj07l648g5hi";
+    "nCTEQ15WZSIH_FullNuc_1_1" = "13gbjq46f5cdpdr902nxv261hqw041f7ryxbwgvxr3k2zm7h8fw0";
+    "nCTEQ15WZSIH_FullNuc_207_103" = "08m08pcz0f72nd7zcrvi8cl5va49djlvdff1w4is4gmsb44khyv2";
+    "nCTEQ15WZSIH_FullNuc_208_82" = "04x5icmidi1p3j8bdarl3sj0ak6g2ygyc5wmkkn9g80qqn4mxwva";
+    "nCTEQ15WZSIH_FullNuc_27_13" = "0x4iv1kxb5lp514qm1nr3k32m68aw7sgy12nhdjhy2dv018snd8n";
+    "nCTEQ15WZSIH_FullNuc_2_1" = "177qv17wv15sr1zcm2p6av20h32cjkspf4jj3jvvvgvks947n7dl";
+    "nCTEQ15WZSIH_FullNuc_3_1" = "0aawk1ppg3nhl5n6gpdi6l1rw53l2x2sv3fwjz5821b6d7cmb9f6";
+    "nCTEQ15WZSIH_FullNuc_40_20" = "1271dlp580a5gm29sv6b8plpc8d06j57x2xrfjyp7kafxa1158ii";
+    "nCTEQ15WZSIH_FullNuc_4_2" = "0sv20zpzbinrz5biia1g3jzgyq0wbqaqrmrhhcyg2yxg9z48vgca";
+    "nCTEQ15WZSIH_FullNuc_56_26" = "1wz1vwy2q85qz85kdy9gzzhnvv0jy4iazzavf9janz2xzw7833gg";
+    "nCTEQ15WZSIH_FullNuc_56_28" = "01y0f2bz5yxmfd719fq8s1i3q5wb0dd81l0qkllpa961db83zmz2";
+    "nCTEQ15WZSIH_FullNuc_64_32" = "1a93nqx26pj9kyvy66dmm4ib2pl5qwf03420q84zdl1hlcgaszzc";
+    "nCTEQ15WZSIH_FullNuc_6_3" = "157j927a4x53gcam5kmpcpkyk76qgdlszxa4bcj9wlqrygwxsk3k";
+    "nCTEQ15WZSIH_FullNuc_7_3" = "0l369wpd3gcb6i452w2hsjvidz80xl623xf1g1p8d2485nrvh6jm";
+    "nCTEQ15WZSIH_FullNuc_84_42" = "1nikb7yk35s27g43k1wlgcfxqfyjf40csn8a6aiabliqdfjacaqv";
+    "nCTEQ15WZSIH_FullNuc_9_4" = "0nnxf32kllwvm3fyjlswnyjx8cpsanx15qwsn03z6d67wx2f87sw";
+    "nCTEQ15WZ_108_47" = "0v1s95f0wxyz73pfv5z6hc4mslxb7ml6imjmkhn2p9yx5mvk94qf";
+    "nCTEQ15WZ_108_54" = "0zqw1p1sls58v7aacmwamlic0vsjyjijfam6bas5lh92rrmcf9h6";
+    "nCTEQ15WZ_119_50" = "1wwx1rsjhd8rqrvyq68r70issnsby8zrlr8d76br3622mxqr83a7";
+    "nCTEQ15WZ_119_59" = "11hckxdqyfrbsv3lc12q8zjysr2nw9mhx438ff13azp93ha7h1v6";
+    "nCTEQ15WZ_12_6" = "0naqqy223p6gyw2r1qy5fs185dhmxzmb3zmkx3bbccqnspk7qcnz";
+    "nCTEQ15WZ_131_54" = "0fi4sjv7rs90yac1zmnlf38dv5ry9zwzxrjwakpzh00irxw0cz8r";
+    "nCTEQ15WZ_14_7" = "1k4sc588n3rd8fvcvwhxzc405iqj28xzv7y1md45kz1c7m6qy4cj";
+    "nCTEQ15WZ_16_8" = "0ndjlgbggbk3zk5bm9nm726ci1v8b3qfy3gag14jmp7q780zyhmy";
+    "nCTEQ15WZ_184_74" = "08cdkqbjihls2sg4waj9rxg7nvs0mjzxfv3dx1jppiw6f7ljjzrr";
+    "nCTEQ15WZ_197_79" = "0ss7wgvx8rv03x1g10c516i0yd65njc7qjh19maij49aizf1fd4l";
+    "nCTEQ15WZ_197_98" = "0vlyjqlj9plniim0z7mdhia307i296iha94l8b3iqgzyp9553gly";
+    "nCTEQ15WZ_1_0" = "13wnm5sz1sf3hng70j8d3ml53knrx9b7wrg2h6x947jl51flrkh4";
+    "nCTEQ15WZ_1_1" = "0pllq4zdgjaklad9j87vilx8gapzfhjh478gcw479ahgjcbbbxxp";
+    "nCTEQ15WZ_207_103" = "088d8sr9mq9q4bi0ipxznbm3k2b2k347bj9k5fxsb27f4dl5d0jp";
+    "nCTEQ15WZ_207_82" = "0cxagqav2q6kwq83syiad67nmzzkmrg9q0hlshbz6bjlcqmdi4jr";
+    "nCTEQ15WZ_208_82" = "1c7vacsr2m6r7dy1b439c46xgxjqvq1gj9y68p2vargm5az444sz";
+    "nCTEQ15WZ_20_10" = "1y38sqjgsjrfhmyhf688jir2hgkk871sjz8dm89lm5g7m5c1mgmq";
+    "nCTEQ15WZ_27_13" = "0gb2zg5j3jcqjisa3nzsbif4rfi8vshl5vq2vq93d2132qgpzq3l";
+    "nCTEQ15WZ_2_1" = "04nhmrvy2m4a2i8b5qadsg8h51k171df1kb7mdqn3hjzga7lg0j7";
+    "nCTEQ15WZ_3_1" = "00aansn8jjh8yqyhr2fx8h453nahrdf8j1j0qgny1n1mhad4mc56";
+    "nCTEQ15WZ_3_2" = "1pk6gp5a1g15zn5w00l89liz4w7w4xsmpcdk4x50vc7k5phy6vj7";
+    "nCTEQ15WZ_40_18" = "0m58lby911lxqy6rvvs959qg5gjbppnfxl34hn81glc0lr90qiz6";
+    "nCTEQ15WZ_40_20" = "0dnk9yikivxd557bpi9j7dbpwkf4sk49bg8lf0lxf86bdmi2l330";
+    "nCTEQ15WZ_4_2" = "00rr4qwwp7i419sy5wr6f2lz82121ilrvvj0js45bvcqknx26c7i";
+    "nCTEQ15WZ_56_26" = "09qjjavqjwrh9adkz6yhcjjiy55dg6c7imnbsi8qxi8xspz8nqq3";
+    "nCTEQ15WZ_56_28" = "0pdqsrj4dphjb50r3v95wp1drc8rkdgsbisgg430dj9xaa703ijr";
+    "nCTEQ15WZ_64_29" = "1qjvvfzv5nfjp1k1kdv2kz5pjssr2avrnjlxznqvlxwgs7rv8p7v";
+    "nCTEQ15WZ_64_32" = "172whqdyyvqxyr3lijw2v45y8nvc0vk7z47i9xfmcydi2qfz8g3s";
+    "nCTEQ15WZ_6_3" = "0kr0cf8aqwsn4x8kjwihsynvb99i8bdp4g91digbgcfpp02jyvgd";
+    "nCTEQ15WZ_7_3" = "1c76h9xfflfihqyxi9a6dlmg1gwwr2wh93mfac3a3jnx73981gq3";
+    "nCTEQ15WZ_84_36" = "1cvykpl9r41dwahjv3kik98y6sx53wiyyzywqc87mhnlx1x5876f";
+    "nCTEQ15WZ_84_42" = "1jslkk9wc0fzbm6s5czpmaf004pndwc2ggwnxgkga2idn45204xz";
+    "nCTEQ15WZ_9_4" = "0farphic6jyzc5x3ja715wdmvv5rfcgil1c49i8fxqlap5mlgv89";
+    "nCTEQ15WZ_9_4_iso" = "01zxmn50r14n1a5gq75pia8mz4ibyqhyjl5d31kv3h69xgdrlizc";
+    "nCTEQ15WZ_FullNuc_108_47" = "0yl5ll4j3mr6nhiz9ynn9w3hybgwdypg0b8zwsxz1rjcr3c8bmz5";
+    "nCTEQ15WZ_FullNuc_108_54" = "1c8cdilw9n91apqj9lrv9j6hf6mcg3ndndchc96d5svrqlqk4fg6";
+    "nCTEQ15WZ_FullNuc_119_50" = "19lb71cmmi4fvpb0bxmz0ipjlzg6b5hrlwiml4bj5r65km46whyk";
+    "nCTEQ15WZ_FullNuc_119_59" = "0r9cwy2znpl59ynv2av6whjl3igm4b19rzh6sjqsm6a85d5jjdpc";
+    "nCTEQ15WZ_FullNuc_12_6" = "1972j8lziq1ckwq2s7qpcf9g7mg3762kfrnbdjf4ilfw5b2b9i9n";
+    "nCTEQ15WZ_FullNuc_131_54" = "06w9yl6a11ir8qjyxaakyzs8b51hf3jhm8nj5nvrh4f6cicp1g66";
+    "nCTEQ15WZ_FullNuc_14_7" = "095x9pphc9lx71hlhpwcb71p8wx3b1pnv6qd3s6992visismyb02";
+    "nCTEQ15WZ_FullNuc_16_8" = "005h4mbf9c7d9w61pmgghpxb5yh63i6cbyxyylngznbbbaxggjcc";
+    "nCTEQ15WZ_FullNuc_184_74" = "0niyiq85bmbr596gfrsmf79rksql7n2gqdxw72yrki5ywc3iy4sr";
+    "nCTEQ15WZ_FullNuc_197_79" = "0vbgg6m0b1wlrsx2c5xxga0crz0nwvcq9a88f032yjzihh6rscjd";
+    "nCTEQ15WZ_FullNuc_197_98" = "0sf4q5bb4b44zkbxq51pf0xhpldr5dj5d0gqpqs40qkdlmkb9z7k";
+    "nCTEQ15WZ_FullNuc_1_0" = "1il9j3ggn9kc8k8jpql46lw5c9lq45ngaip45vqppgvl3zcrc4fv";
+    "nCTEQ15WZ_FullNuc_1_1" = "0nxvm11qlapnpdkkymqhy86axcvcx84r9hk0dswa2ji5gmk18jww";
+    "nCTEQ15WZ_FullNuc_207_103" = "05qqg6ckkhv30nfbs5rdpiwz7dkgywjrd8a9gr3skvlayj2bisni";
+    "nCTEQ15WZ_FullNuc_207_82" = "0s27py7i2h0va79q9ivmgrpwk5pxrjx9csyad76fc7pmvi4xsgjl";
+    "nCTEQ15WZ_FullNuc_208_82" = "1xygz9px4jwz3vkbx86384775vhiqqv5l2rp2qi42zy8y8ijwaqd";
+    "nCTEQ15WZ_FullNuc_20_10" = "06bgr8r6pz8cpvqbncjaazxw7j2qzhh183brs7r5mi6yckg318gz";
+    "nCTEQ15WZ_FullNuc_27_13" = "1qrs82jscmxyhqkd4fa2kjglzgig23kqwc7r2n8p23352ggcsn9x";
+    "nCTEQ15WZ_FullNuc_2_1" = "0jxam0p1ypd3x8l83d2f14h2av9wk1r69prfhl6pgd6pdh3nx2gh";
+    "nCTEQ15WZ_FullNuc_3_1" = "0kjgsiidi33p442bpp1g6sss62qn4pj90ag4hcmdqsdf5m9vpc5s";
+    "nCTEQ15WZ_FullNuc_3_2" = "0srxdvk5jh4ga4r8hniikzanfa8fh65xc4g51arxwd9sda4n0mqb";
+    "nCTEQ15WZ_FullNuc_40_18" = "1x7d1cpglijq4rag57m8sp6qyzn3c7r3zs5z9jqarsaqc9wv2ypw";
+    "nCTEQ15WZ_FullNuc_40_20" = "1l58bvdhqs9i4mgc39dw9c13rsh5vq5vh6zq8xk35150cbysiwza";
+    "nCTEQ15WZ_FullNuc_4_2" = "0s1zdn5r9hk7bjk2ggn7bhrzq2iaxspdhmwi9rq1xbsk7n8k3wif";
+    "nCTEQ15WZ_FullNuc_56_26" = "15ilca90cvw7p3w1xr15jynqnvnyw8zhpydhyq11x1kc647bgirm";
+    "nCTEQ15WZ_FullNuc_56_28" = "16bs4yq4jr4y3431csabgps6330gcw1ymgm2161z4nmmyp988w1g";
+    "nCTEQ15WZ_FullNuc_64_29" = "17wqyn8g5zbrm6ywvqn2y5kphy9xwbgijwlzxsni5k821nzmjyxn";
+    "nCTEQ15WZ_FullNuc_64_32" = "0ivyka1g2cj6ign8wm28pzim3saas3bvnxqhixxkr91m1gl40b86";
+    "nCTEQ15WZ_FullNuc_6_3" = "00v5wydvrvw1fgbzc436cap7amk8yr7dj5wf3ykyd6415vxmlzl3";
+    "nCTEQ15WZ_FullNuc_7_3" = "06z2p0gx988q5w4d3c0qx6pj7lp6mqlz1qrnwy5lf4i4i4vcqkkx";
+    "nCTEQ15WZ_FullNuc_84_36" = "0rfn82f8f9f6bgngrs67maip2kfhy42i4ppa904d7dspyqkgfa31";
+    "nCTEQ15WZ_FullNuc_84_42" = "14lyhhc5jwccqnz85msaqzdx7cn2vxkvm2l9mf1p2kmgy7p5jis3";
+    "nCTEQ15WZ_FullNuc_9_4" = "1895lr4yydzk4cry5wnjhpl6gs2kcspjlm2mv2y00sb7gzinjs94";
+    "nCTEQ15WZ_FullNuc_9_4_iso" = "0kvjk4wvw98w7y02ishjacn9frncspl6rsxlzcd4y2pdk1ckr29i";
     "nCTEQ15_108_54" = "1bjx2d61qjhabfx28pfi64hf8br4gl67nzir3ygdpwdcah4k6lz8";
     "nCTEQ15_119_59" = "0g7wffsyjh84r2wv8w67skx8gwdb3clv9c1dlpijwqmpkcm3b8q5";
     "nCTEQ15_12_6" = "1xnnqp38zz3b61jb38hz54wv09w06fwwnb66sf93r1agcajvv1vi";
@@ -966,6 +1225,30 @@ in
     "nCTEQ15_7_3" = "13b9wbm2hqx4lixq3dad1y3cr6didcch8kg7mqm9lgbism7dwaqw";
     "nCTEQ15_84_42" = "12vkqpvjjyh0x0hbn7r4gx5za01yqs9a7lqirdxd15k04fp5rnjr";
     "nCTEQ15_9_4" = "1rkxhxwp0v9dm6f71c5635ihlspfx0sj666maif4iaw1sf4hazln";
+    "nCTEQ15_B_90CL_Au_hess" = "13sdn1ng4nd6935dksk7jin8yilp29zys3d0jvf7m7vx8gyxi187";
+    "nCTEQ15_B_90CL_Pb_hess" = "1j11x8y5sbs5lz4z06wcl702ijvh1bcb4i222jdcq9gh9j40xn17";
+    "nCTEQ15_B_c_90CL_Au_hess" = "0k0pn3yqb632j254h8w9wbdvcasnfxr7d9g47drqw3f4w1as3s16";
+    "nCTEQ15_B_c_90CL_Pb_hess" = "0gvvwnc298qgxhpj4wgnzcrgz0wqlj5r7sfsl1fj21zhm3kc45jl";
+    "nCTEQ15_B_d_90CL_Au_hess" = "0lzfa2gsl5cs2i6y833lhvf2pifzkysj9jgq22v9iyyz5q0nbsh4";
+    "nCTEQ15_B_d_90CL_Pb_hess" = "0zp7dirc2l42f9zjyq1a2qbnir1bbj1firmg3s856mn7sp3p4i0k";
+    "nCTEQ15_B_u_90CL_Au_hess" = "1w2ifnl9waqvsaz1yg696mmqxcijm2bphq8zp3rcbimck3rmr978";
+    "nCTEQ15_B_u_90CL_Pb_hess" = "0j95dg6kyvd30qgivd9495glcd152cr1j3zh1cg76s6sdzfkhvs5";
+    "nCTEQ15_D_90CL_Au_hess" = "0y3n008i22g9ny0v8z6hyc47730xb6qldkpall6p8icn8yzfdga9";
+    "nCTEQ15_D_90CL_Pb_hess" = "0mp1plqxsd6j0ybnf7yrl4hgl68a85q56vdjhs911xah1bgrpix1";
+    "nCTEQ15_D_c_90CL_Au_hess" = "1xk6ngc488n9immd9nbv8ygvxav5n7b7902k44rkxnw42kbx2c4m";
+    "nCTEQ15_D_c_90CL_Pb_hess" = "1ldig46l08n00jvj0dl36jsnpjl2ycv3jdr9d9g375rwgv671kad";
+    "nCTEQ15_D_d_90CL_Au_hess" = "059fz4rfhydnk25hmabavwi346cy2hzxaw2ciq8jx64fmawb3v79";
+    "nCTEQ15_D_d_90CL_Pb_hess" = "0zgs89yjypn2sd97948z2r78sydadivvw6wy7pwi3a5b0yx1zpzn";
+    "nCTEQ15_D_u_90CL_Au_hess" = "0j8sfih3r2wps1l7vapnllh88ibw7672f646m5p67aw5k2an4f8j";
+    "nCTEQ15_D_u_90CL_Pb_hess" = "0d2nxsabard1yq8f2v9a7kwk0fzv549hx1k15k0dfif9523i6xqf";
+    "nCTEQ15_Jpsi_90CL_Au_hess" = "0x75jizpqi8vss62xb2913vdhvckq2b468iqxd0ggr0fic1f8q9a";
+    "nCTEQ15_Jpsi_90CL_Pb_hess" = "09a9s6gmf7q9rk8c88iskra5kxaiz131s5650964znxv29lpzlqm";
+    "nCTEQ15_Jpsi_c_90CL_Au_hess" = "0mh3ikdkca7xc5bc2knjbyr7dkgbydnaa4i1gqln0i29b89j5nw0";
+    "nCTEQ15_Jpsi_c_90CL_Pb_hess" = "1gs39gla77sqgry1799l9kapc1c48pzxgfba6p70fdbwdac45n3j";
+    "nCTEQ15_Jpsi_d_90CL_Au_hess" = "1qn4f4nn8avjrsdqgab25053zadwx7vlr27w8bsmcxg25si104y9";
+    "nCTEQ15_Jpsi_d_90CL_Pb_hess" = "107w4yiv6dl8gqfx0mpbnii06wzf15ih2kqmb8hkmz988x49l65q";
+    "nCTEQ15_Jpsi_u_90CL_Au_hess" = "1mdm8qlzkyzrszsng49ns9hq7zdqaal61vbi64449fkvmxd0a7mk";
+    "nCTEQ15_Jpsi_u_90CL_Pb_hess" = "1y0bcr3g9znjz2c3s4487yjl1ipf0ls05krfpdn8gcsxymf4cirm";
     "nCTEQ15npFullNuc_108_54" = "1g8id10rpys9566r8h92diqrr43mww6q8nhvlns0kfjkvkr22m9y";
     "nCTEQ15npFullNuc_119_59" = "0df499pvfls1281zkvngrhicnc0ac0bfwamzs027k7f2y6ygkfb4";
     "nCTEQ15npFullNuc_12_6" = "0mb3zixcikagsqzpxb7jzrcg05dln37d7anz5359ssjyd6p1mqyi";
@@ -1057,11 +1340,30 @@ in
     "nNNPDF20_nlo_as_0118_Li6" = "0pwdqrmivpm0j7hrg6h2qqshpna2vjlslxnz0sd100kc3lfq7xab";
     "nNNPDF20_nlo_as_0118_N1" = "09y7pd3nnys49w25gb4524x5xkahillvaypjgncbn8n5x1a11nsr";
     "nNNPDF20_nlo_as_0118_N14" = "0nb3kcmhbyncp9frs27ww550mjl3f7yiahyyrm3aik93ycpm16n7";
-    "nNNPDF20_nlo_as_0118_O16" = "12kfhldvg8gqxjaian14dng6qqc6nikydwcj5jz2i2d1da3dyhgg";
+    "nNNPDF20_nlo_as_0118_O16" = "1wmi63l6cpj3nx0vwiqaa1pfw0im5ps96g7842428skzrg0q4yx3";
     "nNNPDF20_nlo_as_0118_Pb208" = "1rwb7vca0y1aj38mz8m3wg07q9hq66qd5j3y6hs9bh0jz6hkifzh";
     "nNNPDF20_nlo_as_0118_Sn119" = "1dan86ckd5padipp4x12x8msfg5p97b8hwxm78gfyf88kq725m6z";
-    "nNNPDF20_nlo_as_0118_W184" = "1g0br4gdrb2vzwmqhgj5778a6vl0lykc4ymylibxlqbqrhf8j89b";
+    "nNNPDF20_nlo_as_0118_W184" = "0wzd8vw2svf3mzpyy1wryr5jz3anhykp5z3cx4hdljprws2b8nll";
     "nNNPDF20_nlo_as_0118_Xe131" = "1a62qi3qy5kli9q80p2w80mj5v3ps2g6p40zxlgm65q5mphkx1qi";
+    "nNNPDF30_nlo_as_0118_A108_Z54" = "0n67w44rmz5s6cg2h58d8sf51dsfd0i5g09dh08mgfcn640bqlqw";
+    "nNNPDF30_nlo_as_0118_A119_Z59" = "1zj5gn5021ig0j6p7jpyy683avg0890blmr90yjm6skqzxfjq48i";
+    "nNNPDF30_nlo_as_0118_A12_Z6" = "0jvaq9a1w19dybv2hzvn8swk4i4z16lab9yfhbywq0vixyfn1swd";
+    "nNNPDF30_nlo_as_0118_A131_Z54" = "01mcqnixjw5m9di508aq8fp74f3aqnvhc1bjirfvi3ca0jz0c1jz";
+    "nNNPDF30_nlo_as_0118_A14_Z7" = "0hqpni9fxbf5qfamcirglr04cbwx58pwylqh8hqm3vc03ap3nmjd";
+    "nNNPDF30_nlo_as_0118_A16_Z8" = "0f0h3hckxg4xgfd6ldblavhcidzdy2b5660a5nvv96y63sdsx2x4";
+    "nNNPDF30_nlo_as_0118_A184_Z74" = "01jsbla72c3b6gbc7w4nx5bb5ws3g864avznb9vxmmk3prib7n8x";
+    "nNNPDF30_nlo_as_0118_A197_Z79" = "1gm7nx0cn3lmjlsy6c7dr5vzyfmi1fcdib9656d4039m0ningrhg";
+    "nNNPDF30_nlo_as_0118_A208_Z82" = "0r1spnj4qmjwpjybqv9aa6w3wybvgk4qzivzwz4s9bacz0kb3z4n";
+    "nNNPDF30_nlo_as_0118_A27_Z13" = "17vmr3pwjp1prb83yngada7sw8553sv39dnncksabnklfp1l5x59";
+    "nNNPDF30_nlo_as_0118_A2_Z1" = "1g97mc7c14hnkfsfvg4n9jmb4l461i9lka643s626hw0gcq053f5";
+    "nNNPDF30_nlo_as_0118_A31_Z15" = "0h5rx9113yq6jw1l2alwyvw77vv733y5mcpa3m9773s7y61w3fpk";
+    "nNNPDF30_nlo_as_0118_A40_Z20" = "1937kk4039hi9cslw4417174s83rs4n9vm16ay70pp1c8bcqzp6l";
+    "nNNPDF30_nlo_as_0118_A4_Z2" = "147npkmbvzk6j95hnnil6jafc2gxjqavaawl9cilr93f9h64w54w";
+    "nNNPDF30_nlo_as_0118_A56_Z26" = "06dxsapqirmajh107j24b3w2nhqz39gs9c2pglq71fc53i0fra5a";
+    "nNNPDF30_nlo_as_0118_A64_Z29" = "1drvfd3i1drrb15m3vk9sm2lzx2x01da44gdq3wbc90nxvzc7d56";
+    "nNNPDF30_nlo_as_0118_A6_Z3" = "0zp1cixj6ixayzdra2i5qyfn2b6y6qfxd5d1l101n8sgf4bdh6fb";
+    "nNNPDF30_nlo_as_0118_A9_Z4" = "07i30jk29cgdbdk4n5acdki5aihaki5w0mqibjww1hy7mwh4y45w";
+    "nNNPDF30_nlo_as_0118_p" = "0k4bs4zhlm7l14mbd2q9n0n7rdnpqwgnfwj289ql62v3kh8mnn18";
     "xFitterPI_NLO_EIG" = "1v6mfhmcrmdvica0wlc2ilfca1srxc7vjyli113wjvpd7wfpnvj5";
     "xFitterPI_NLO_VAR" = "09mlsww89hhm2s96rlkqbkfwwf9qkblw7n3nnrgas6l1kn2hxq1i";
   }
diff --git a/pkgs/development/libraries/physics/qcdnum/default.nix b/pkgs/development/libraries/physics/qcdnum/default.nix
index 834e3fcbba898..f09a1a0e19bd3 100644
--- a/pkgs/development/libraries/physics/qcdnum/default.nix
+++ b/pkgs/development/libraries/physics/qcdnum/default.nix
@@ -12,6 +12,10 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ gfortran ];
   buildInputs = [ zlib ];
 
+  FFLAGS = [
+    "-std=legacy" # fix build with gfortran 10
+  ];
+
   enableParallelBuilding = true;
 
   meta = {
diff --git a/pkgs/development/libraries/pmdk/default.nix b/pkgs/development/libraries/pmdk/default.nix
index 6e0b6ab6722bd..1f02bfa0dab30 100644
--- a/pkgs/development/libraries/pmdk/default.nix
+++ b/pkgs/development/libraries/pmdk/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pmdk";
-  version = "1.9.2";
+  version = "1.11.1";
 
   src = fetchFromGitHub {
     owner  = "pmem";
     repo   = "pmdk";
     rev    = "refs/tags/${version}";
-    sha256 = "0awmkj6j9y2pbqqmp9ql00s7qa3mnpppa82dfy5324lindq0z8a1";
+    hash = "sha256-8bnyLtgkKfgIjJkfY/ZS1I9aCYcrz0nrdY7m/TUVWAk=";
   };
 
   nativeBuildInputs = [ autoconf pkg-config gnum4 pandoc ];
@@ -21,6 +21,8 @@ stdenv.mkDerivation rec {
 
   patchPhase = "patchShebangs utils";
 
+  NIX_CFLAGS_COMPILE = "-Wno-error";
+
   installPhase = ''
     make install prefix=$out
 
diff --git a/pkgs/development/libraries/pocketsphinx/default.nix b/pkgs/development/libraries/pocketsphinx/default.nix
deleted file mode 100644
index fadc14240831c..0000000000000
--- a/pkgs/development/libraries/pocketsphinx/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{ lib, stdenv
-, fetchurl
-, sphinxbase
-, pkg-config
-, python27 # >= 2.6
-, swig2 # 2.0
-}:
-
-stdenv.mkDerivation rec {
-  pname = "pocketsphinx";
-  version = "5prealpha";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/cmusphinx/pocketsphinx-${version}.tar.gz";
-    sha256 = "1n9yazzdgvpqgnfzsbl96ch9cirayh74jmpjf7svs4i7grabanzg";
-  };
-
-  propagatedBuildInputs = [ sphinxbase ];
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ python27 swig2 ];
-
-  meta = {
-    description = "Voice recognition library written in C";
-    homepage = "http://cmusphinx.sourceforge.net";
-    license = lib.licenses.free;
-    platforms = lib.platforms.linux;
-  };
-}
-
-/* Example usage:
-
-
-1.
-
-$ cat << EOF > vocabulary.txt
-oh mighty computer /1e-40/
-hello world /1e-30/
-EOF
-
-2.
-
-$ pocketsphinx_continuous -inmic yes -kws vocabulary.txt 2> /dev/null
-# after you say "hello world":
-hello world
-...
-
-*/
diff --git a/pkgs/development/libraries/polkit-qt-1/default.nix b/pkgs/development/libraries/polkit-qt-1/default.nix
index 86ef2af96e7c8..e6cb90994d9e0 100644
--- a/pkgs/development/libraries/polkit-qt-1/default.nix
+++ b/pkgs/development/libraries/polkit-qt-1/default.nix
@@ -14,11 +14,11 @@
 
 mkDerivation rec {
   pname = "polkit-qt-1";
-  version = "0.113.0";
+  version = "0.114.0";
 
   src = fetchurl {
     url = "mirror://kde/stable/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-W4ZqKVTvEP+2YVbi/orQMhtVKKjfLkqRsC9QQc5VY6c=";
+    sha256 = "sha256-LrDyJEWIgpX/or+8DDaThHoPlzu2sMPkzOAhi+fjkH4=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/development/libraries/polkit/default.nix b/pkgs/development/libraries/polkit/default.nix
index 72907f7aedc89..9c49f89c2ca99 100644
--- a/pkgs/development/libraries/polkit/default.nix
+++ b/pkgs/development/libraries/polkit/default.nix
@@ -71,6 +71,12 @@ stdenv.mkDerivation rec {
       url = "https://src.fedoraproject.org/rpms/polkit/raw/0a203bd46a1e2ec8cc4b3626840e2ea9d0d13a9a/f/CVE-2021-4115.patch";
       sha256 = "sha256-BivHVVpYB4Ies1YbBDyKwUmNlqq2D1MpMipH9/dZM54=";
     })
+    # Fix build with meson 0.61
+    # https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/99
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/a96c5119f726225f8d79b222c85d71a9f0e32419.patch";
+      sha256 = "sha256-/hm/m22dKA50sDmw4L1VAlgvCm8CuIyNjHxF/2YgMKo=";
+    })
   ] ++ lib.optionals stdenv.hostPlatform.isMusl [
     # Make netgroup support optional (musl does not have it)
     # Upstream MR: https://gitlab.freedesktop.org/polkit/polkit/merge_requests/10
diff --git a/pkgs/development/libraries/protobuf/2.5.nix b/pkgs/development/libraries/protobuf/2.5.nix
deleted file mode 100644
index 9d7bb38cf3c95..0000000000000
--- a/pkgs/development/libraries/protobuf/2.5.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ callPackage, fetchurl, ... } @ args:
-
-callPackage ./generic.nix (args // rec {
-  version = "2.5.0";
-  # make sure you test also -A pythonPackages.protobuf
-  src = fetchurl {
-    url = "http://protobuf.googlecode.com/files/${version}.tar.bz2";
-    sha256 = "0xxn9gxhvsgzz2sgmihzf6pf75clr05mqj6218camwrwajpcbgqk";
-  };
-})
diff --git a/pkgs/development/libraries/protobuf/generic.nix b/pkgs/development/libraries/protobuf/generic.nix
deleted file mode 100644
index 7d64df4362608..0000000000000
--- a/pkgs/development/libraries/protobuf/generic.nix
+++ /dev/null
@@ -1,61 +0,0 @@
-{ lib, stdenv, version, src
-, autoreconfHook, zlib, gtest
-, ...
-}:
-
-stdenv.mkDerivation {
-  pname = "protobuf";
-  inherit version;
-
-  inherit src;
-
-  postPatch = ''
-    rm -rf gtest
-    cp -r ${gtest.src}/googletest gtest
-    chmod -R a+w gtest
-  '' + lib.optionalString stdenv.isDarwin ''
-    substituteInPlace src/google/protobuf/testing/googletest.cc \
-      --replace 'tmpnam(b)' '"'$TMPDIR'/foo"'
-  '';
-
-  outputs = [ "out" "lib" ];
-
-  nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ zlib ];
-
-  # The generated C++ code uses static initializers which mutate a global data
-  # structure. This causes problems for an executable when:
-  #
-  # 1) it dynamically links to two libs, both of which contain generated C++ for
-  #    the same proto file, and
-  # 2) the two aforementioned libs both dynamically link to libprotobuf.
-  #
-  # One solution is to statically link libprotobuf, that way the global
-  # variables are not shared; in fact, this is necessary for the python Mesos
-  # binding to not crash, as the python lib contains two C extensions which
-  # both refer to the same proto schema.
-  #
-  # See: https://github.com/NixOS/nixpkgs/pull/19064#issuecomment-255082684
-  #      https://github.com/google/protobuf/issues/1489
-  dontDisableStatic = true;
-  configureFlags = [
-    "CFLAGS=-fPIC"
-    "CXXFLAGS=-fPIC"
-  ];
-
-  doCheck = true;
-
-  meta = {
-    description = "Protocol Buffers - Google's data interchange format";
-    longDescription =
-      '' Protocol Buffers are a way of encoding structured data in an
-         efficient yet extensible format.  Google uses Protocol Buffers for
-         almost all of its internal RPC protocols and file formats.
-      '';
-    license = "mBSD";
-    homepage = "https://developers.google.com/protocol-buffers/";
-    platforms = lib.platforms.unix;
-  };
-
-  passthru.version = version;
-}
diff --git a/pkgs/development/libraries/protolock/default.nix b/pkgs/development/libraries/protolock/default.nix
index ef6338207e3f3..a9b45ddf61329 100644
--- a/pkgs/development/libraries/protolock/default.nix
+++ b/pkgs/development/libraries/protolock/default.nix
@@ -13,8 +13,6 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-kgSJUSjY8kgrGCNDPgw1WA8KwAqI5koJQ0IcE+tC5nk=";
 
-  doCheck = false;
-
   postInstall = ''
     rm $out/bin/plugin*
   '';
diff --git a/pkgs/development/libraries/qca-qt5/2.3.2.nix b/pkgs/development/libraries/qca-qt5/2.3.2.nix
new file mode 100644
index 0000000000000..098fbacc7ff53
--- /dev/null
+++ b/pkgs/development/libraries/qca-qt5/2.3.2.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchurl, cmake, openssl, pkg-config, qtbase }:
+
+stdenv.mkDerivation rec {
+  pname = "qca-qt5";
+  version = "2.3.2";
+
+  src = fetchurl {
+    url = "http://download.kde.org/stable/qca/${version}/qca-${version}.tar.xz";
+    sha256 = "sha256-RpdgAjfEvDqXnofSzIBiTyewYoDmNfXZDsfdTSqfYG0=";
+  };
+
+  buildInputs = [ openssl qtbase ];
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  dontWrapQtApps = true;
+
+  # tells CMake to use this CA bundle file if it is accessible
+  preConfigure = "export QC_CERTSTORE_PATH=/etc/ssl/certs/ca-certificates.crt";
+
+  # tricks CMake into using this CA bundle file if it is not accessible (in a sandbox)
+  cmakeFlags = [ "-Dqca_CERTSTORE=/etc/ssl/certs/ca-certificates.crt" ];
+
+  meta = with lib; {
+    description = "Qt 5 Cryptographic Architecture";
+    homepage = "http://delta.affinix.com/qca";
+    maintainers = with maintainers; [ ttuegel ];
+    license = licenses.lgpl21Plus;
+    platforms = with platforms; unix;
+  };
+}
diff --git a/pkgs/development/libraries/qca-qt5/default.nix b/pkgs/development/libraries/qca-qt5/default.nix
index 9bd57e7ae97ba..b85a3ad8c7a71 100644
--- a/pkgs/development/libraries/qca-qt5/default.nix
+++ b/pkgs/development/libraries/qca-qt5/default.nix
@@ -2,21 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qca-qt5";
-  version = "2.3.1";
+  version = "2.3.4";
 
   src = fetchurl {
     url = "http://download.kde.org/stable/qca/${version}/qca-${version}.tar.xz";
-    sha256 = "sha256-wThREJq+/EYjNwmJ+uOnRb9rGss8KhOolYU5gj6XTks=";
+    sha256 = "sha256-a2lYgafj/ZX3Oq7m6uq5b2rRflFenCs9SzJy14Yv9cQ=";
   };
 
-  patches = [
-    # Pull upstream fix for gcc-11
-    (fetchurl {
-      url = "https://github.com/KDE/qca/commit/32275f1a74c161d2fed8c056b2dd9555687a22f2.patch";
-      sha256 = "sha256-SUH2eyzP2vH/ZjYcX8ybwiqhoTm/QjuEpTKjb2iH1No=";
-    })
-  ];
-
   buildInputs = [ openssl qtbase ];
   nativeBuildInputs = [ cmake pkg-config ];
 
@@ -34,5 +26,8 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ttuegel ];
     license = licenses.lgpl21Plus;
     platforms = with platforms; unix;
+    # until macOS SDK supports Qt 5.15, 2.3.2 is the highest version of qca-qt5
+    # that works on darwin
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/libraries/qrupdate/default.nix b/pkgs/development/libraries/qrupdate/default.nix
index 2f119311c1f27..d3d821ba1db18 100644
--- a/pkgs/development/libraries/qrupdate/default.nix
+++ b/pkgs/development/libraries/qrupdate/default.nix
@@ -25,12 +25,14 @@ stdenv.mkDerivation rec {
       "LAPACK=-L${lapack}/lib -llapack"
       "BLAS=-L${blas}/lib -lblas"
       "PREFIX=${placeholder "out"}"
-      ${lib.optionalString blas.isILP64
-      # If another application intends to use qrupdate compiled with blas with
-      # 64 bit support, it should add this to it's FFLAGS as well. See (e.g):
-      # https://savannah.gnu.org/bugs/?50339
-      "FFLAGS=-fdefault-integer-8"
-      }
+      "FFLAGS=${toString ([
+        "-std=legacy"
+      ] ++ lib.optionals blas.isILP64 [
+        # If another application intends to use qrupdate compiled with blas with
+        # 64 bit support, it should add this to it's FFLAGS as well. See (e.g):
+        # https://savannah.gnu.org/bugs/?50339
+        "-fdefault-integer-8"
+      ])}"
     )
   '';
 
diff --git a/pkgs/development/libraries/qt-5/5.12/default.nix b/pkgs/development/libraries/qt-5/5.12/default.nix
index d89547261880d..2b8dccf162c94 100644
--- a/pkgs/development/libraries/qt-5/5.12/default.nix
+++ b/pkgs/development/libraries/qt-5/5.12/default.nix
@@ -85,6 +85,14 @@ let
     qtscript = [ ./qtscript.patch ];
     qtserialport = [ ./qtserialport.patch ];
     qtwebengine = [
+      # glibc 2.34 compat
+      (fetchpatch {
+        url = "https://src.fedoraproject.org/rpms/qt5-qtwebengine/raw/d122c011631137b79455850c363676c655cf9e09/f/qtwebengine-everywhere-src-5.15.5-SIGSTKSZ.patch";
+        sha256 = "sha256-CJxN6sTvWdPVEwSkr0zpPrjyhUIi6tYSWb8ZyO0sY2o=";
+        excludes = [
+          "src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc"
+        ];
+      })
       ./qtwebengine-no-build-skip.patch
       # https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/707
       # https://bugreports.qt.io/browse/QTBUG-77037
@@ -138,7 +146,7 @@ let
         }
         { inherit self srcs patches; };
 
-      callPackage = self.newScope { inherit qtCompatVersion qtModule srcs; };
+      callPackage = self.newScope { inherit qtCompatVersion qtModule srcs stdenv; };
     in {
 
       inherit callPackage qtCompatVersion qtModule srcs;
diff --git a/pkgs/development/libraries/qt-5/5.14/default.nix b/pkgs/development/libraries/qt-5/5.14/default.nix
index 65ce74dac021d..b95d49fef876c 100644
--- a/pkgs/development/libraries/qt-5/5.14/default.nix
+++ b/pkgs/development/libraries/qt-5/5.14/default.nix
@@ -96,6 +96,12 @@ let
         stripLen = 1;
         extraPrefix = "src/3rdparty/";
       })
+
+      # glibc 2.34 compat
+      (fetchpatch {
+        url = "https://src.fedoraproject.org/rpms/qt5-qtwebengine/raw/4cef673b2dd01ce85ce7a841cf352104bbe79668/f/qtwebengine-everywhere-5.15.2-SIGSTKSZ.patch";
+        sha256 = "sha256-2D0/FL4PBL4p6ccd6JoDAGqNtLs2aeE1OdM+PJItock=";
+      })
     ] ++ lib.optional stdenv.isDarwin ./qtwebengine-darwin-no-platform-check.patch;
     qtwebkit = [
       (fetchpatch {
@@ -120,7 +126,6 @@ let
       ./qtwebkit-darwin-no-qos-classes.patch
     ];
     qttools = [ ./qttools.patch ];
-    qtwayland = [ ./qtwayland-libdrm-build.patch ];
   };
 
   addPackages = self: with self;
@@ -139,7 +144,7 @@ let
         }
         { inherit self srcs patches; };
 
-      callPackage = self.newScope { inherit qtCompatVersion qtModule srcs; };
+      callPackage = self.newScope { inherit qtCompatVersion qtModule srcs stdenv; };
     in {
 
       inherit callPackage qtCompatVersion qtModule srcs;
@@ -182,6 +187,7 @@ let
       qtquickcontrols2 = callPackage ../modules/qtquickcontrols2.nix {};
       qtscript = callPackage ../modules/qtscript.nix {};
       qtsensors = callPackage ../modules/qtsensors.nix {};
+      qtserialbus = callPackage ../modules/qtserialbus.nix {};
       qtserialport = callPackage ../modules/qtserialport.nix {};
       qtspeech = callPackage ../modules/qtspeech.nix {};
       qtsvg = callPackage ../modules/qtsvg.nix {};
diff --git a/pkgs/development/libraries/qt-5/5.14/qtwayland-libdrm-build.patch b/pkgs/development/libraries/qt-5/5.14/qtwayland-libdrm-build.patch
deleted file mode 100644
index fb3d6327e45bf..0000000000000
--- a/pkgs/development/libraries/qt-5/5.14/qtwayland-libdrm-build.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-commit 7217ea9cf297e664be876eb82b66a1b4f157ca80
-Author: Peter Seiderer <ps.report@gmx.net>
-Date:   Fri Apr 3 21:52:30 2020 +0200
-
-    fix libdrm related configure test failure
-    
-    Fixes:
-    
-      Project ERROR: Test config.qtwayland_client.tests.dmabuf-server-buffer tries to use undeclared library 'drm'
-      Project ERROR: Test config.qtwayland_compositor.tests.dmabuf-server-buffer tries to use undeclared library 'drm'
-      Project ERROR: Test config.qtwayland_compositor.tests.dmabuf-client-buffer tries to use undeclared library 'drm'
-    
-    Task-number: QTBUG-83303
-    Change-Id: I3970f4e3855fcfa760493631a14adb6a16950aa9
-    Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
-    Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
-    Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
-    (cherry picked from commit ca63fe81df8ac910f43539719566ed6745700c2b)
-    (cherry picked from commit 1344ca6b5a8fbc1b28727feea6d856af8bf3bc93)
-
-diff --git a/src/client/configure.json b/src/client/configure.json
-index 06213968..27c73f89 100644
---- a/src/client/configure.json
-+++ b/src/client/configure.json
-@@ -74,7 +74,8 @@
-             "label": "Linux dma-buf Buffer Sharing",
-             "type": "compile",
-             "test": "dmabuf_server_buffer",
--            "use": "egl drm"
-+            "libs": "-ldrm",
-+            "use": "egl"
-         },
-         "vulkan-server-buffer": {
-             "label": "Vulkan Buffer Sharing",
-diff --git a/src/compositor/configure.json b/src/compositor/configure.json
-index 0dbb3364..73e4c1a8 100644
---- a/src/compositor/configure.json
-+++ b/src/compositor/configure.json
-@@ -80,13 +80,15 @@
-             "label": "Linux dma-buf Buffer Sharing",
-             "type": "compile",
-             "test": "dmabuf_server_buffer",
--            "use": "egl drm"
-+            "libs": "-ldrm",
-+            "use": "egl"
-         },
-         "dmabuf-client-buffer": {
-             "label": "Linux Client dma-buf Buffer Sharing",
-             "type": "compile",
-             "test": "dmabuf_client_buffer",
--            "use": "egl drm"
-+            "libs": "-ldrm",
-+            "use": "egl"
-         },
-         "vulkan-server-buffer": {
-             "label": "Vulkan Buffer Sharing",
diff --git a/pkgs/development/libraries/qt-5/5.15/default.nix b/pkgs/development/libraries/qt-5/5.15/default.nix
index 5943a80a701e7..763bfc675cbe1 100644
--- a/pkgs/development/libraries/qt-5/5.15/default.nix
+++ b/pkgs/development/libraries/qt-5/5.15/default.nix
@@ -101,7 +101,7 @@ let
         }
         { inherit self srcs patches; };
 
-      callPackage = self.newScope { inherit qtCompatVersion qtModule srcs; };
+      callPackage = self.newScope { inherit qtCompatVersion qtModule srcs stdenv; };
     in {
 
       inherit callPackage qtCompatVersion qtModule srcs;
diff --git a/pkgs/development/libraries/qt-5/5.15/srcs-generated.json b/pkgs/development/libraries/qt-5/5.15/srcs-generated.json
index 8bf6386c4c60c..b772331fc3db7 100644
--- a/pkgs/development/libraries/qt-5/5.15/srcs-generated.json
+++ b/pkgs/development/libraries/qt-5/5.15/srcs-generated.json
@@ -1,117 +1,117 @@
 {
   "qt3d": {
     "url": "https://invent.kde.org/qt/qt/qt3d.git",
-    "rev": "dba14d48611b9e9d59576172658779ab4a39b416",
+    "rev": "6d926ec2739f2289c6b0bbfbc325700046e1ceee",
     "sha256": "1w2m1rm6mhj9qbanak36rqvc30x495zvj7mh2syy1yd29by0g5i8"
   },
   "qtactiveqt": {
     "url": "https://invent.kde.org/qt/qt/qtactiveqt.git",
-    "rev": "f0d03da0e37a84029a4eae1733813521482ac1fb",
+    "rev": "2c53a16f431bbb950bfca8ac32ddabf217a0bf04",
     "sha256": "0llk76lf0mh4mzj7pwd8cs55wpmfq8v1bsdzvizb1sx0vfbjh8g6"
   },
   "qtandroidextras": {
     "url": "https://invent.kde.org/qt/qt/qtandroidextras.git",
-    "rev": "8cce1098c59534352aa0f343ea73861f603ac04a",
+    "rev": "1939eada1cdf00052bba32657d9d975c1e255128",
     "sha256": "130a1yda2m7pa10as3rccz84m3617422n6s51pdn4kp8p8rk7cs6"
   },
   "qtbase": {
     "url": "https://invent.kde.org/qt/qt/qtbase.git",
-    "rev": "d16bf02a11953dcac01dca73e6f3778f293adefe",
-    "sha256": "0rpyd5r60707lzfmfi3y501c7is1gzhh30bframsy8bwglck2hjj"
+    "rev": "ee7a89b2c4750bc3cabe4aeb466645d6ac2a872b",
+    "sha256": "10aj4nxfpx34k0if2kl5sxfjpk3sb1r9z7p6haypjpw60cssjbsl"
   },
   "qtcharts": {
     "url": "https://invent.kde.org/qt/qt/qtcharts.git",
-    "rev": "130463160b4923069eb98da49edaf7d93180f4f8",
-    "sha256": "19g35cddbfh307mk76wac1ps03warynlsj7xi8i596bxiaf7i4pw"
+    "rev": "f13988aa1ad9de5d92e7b0ba4d0d947dd019d759",
+    "sha256": "1l7zmdkakc7bc9c10nzijg86ps9f3jpi1nblkfxr6521g0xjrmb8"
   },
   "qtconnectivity": {
     "url": "https://invent.kde.org/qt/qt/qtconnectivity.git",
-    "rev": "5e9ca5d36d65dadb98ef90013a1dcf15fbd7ae26",
-    "sha256": "1lpiq3svlnj8f8apd12if11sng7k0l8y6vhr317srzz4dd77cfry"
+    "rev": "aa2def2bdb76f8fd2454dc4515883fd7b5ddb521",
+    "sha256": "1fy4anhj432fz05kinb67v8ckdp9h7150fhy4dm6hgbjq6y7j16g"
   },
   "qtdatavis3d": {
     "url": "https://invent.kde.org/qt/qt/qtdatavis3d.git",
-    "rev": "c085311c02dd216e5a041b90c164d55b3cf3ce92",
+    "rev": "19af9584f7b80928ee49950c573c770af68c9519",
     "sha256": "0xya1m2csb42yisl90s9822p9q92n7ags909nlbapfsb49qwsqnj"
   },
   "qtdeclarative": {
     "url": "https://invent.kde.org/qt/qt/qtdeclarative.git",
-    "rev": "1d49a5b678957adde7e2db23a485a3f48157bc8f",
-    "sha256": "1wdpgh23mdn0nny9c837iyg9kszc3m4cdmaanf8glymkzn0rkd8w"
+    "rev": "02105099301450c890e1caba977ef44efdc43da7",
+    "sha256": "0wk8a9fbjwrqwb4gj5s78ipg1svdrhz80cykjd6qgkd26dh1p4kn"
   },
   "qtdoc": {
     "url": "https://invent.kde.org/qt/qt/qtdoc.git",
-    "rev": "897e90fe304d844beaf694b82a93a50237fa8b9e",
-    "sha256": "1c4m9vlgg6bfw7hwzanl5s4vslg0r7xiz50lanhqrlcrr9i36xs1"
+    "rev": "ed002122ce74b3505ba55262ddbc842a810e8159",
+    "sha256": "03hb1jgx49rh5gldxq7d85s1ny0yl64nylw7d61dvsgbs422fqn9"
   },
   "qtgamepad": {
     "url": "https://invent.kde.org/qt/qt/qtgamepad.git",
-    "rev": "64afa18a0a1e9588060e2e6d917bb01ccdd48a81",
+    "rev": "6b7a6303439f83147680723f4d8142d676cdb928",
     "sha256": "1h9yb0asprynnb2qyjbmyglrkk9f9v19g6zzpk0gmixrp0h8gk46"
   },
   "qtgraphicaleffects": {
     "url": "https://invent.kde.org/qt/qt/qtgraphicaleffects.git",
-    "rev": "c36998dc1581167b12cc3de8e4ac68c2a5d9f76e",
+    "rev": "379577925766385991f413a2b0d0d46831381ffa",
     "sha256": "0x11n2fym765z3gyb4xnfl7v6zrip1wjkkl6nx1bxaya173fvdw8"
   },
   "qtimageformats": {
     "url": "https://invent.kde.org/qt/qt/qtimageformats.git",
-    "rev": "cb82c74310837fe4e832c8ab72176a5d63e4355f",
-    "sha256": "0j4cv5sa6mm3adcjw8cv6kbzrslmhjc1rgxqgc130l8vm3vmgbkr"
+    "rev": "90038c936763645610fe1e5f05cfc025e4d98631",
+    "sha256": "1yqfz58p7s92jr8d4lk4n0dv6ij8fslh4sxdz0azd0p6077rim77"
   },
   "qtlocation": {
     "url": "https://invent.kde.org/qt/qt/qtlocation.git",
-    "rev": "861e372b6ad81570d4f496e42fb25a6699b72f2f",
-    "sha256": "1g24pg9v6sv5zf80r48innp3h4g0hss69hnr7ygfzfvfnmmn6g52"
+    "rev": "e07f35879536640ad784e71e5261c5a597d504f5",
+    "sha256": "1yhwaz2wyq2hx9bqrcimabj9jbv2kr9h0czxxryh5b9b6aim6ncw"
   },
   "qtlottie": {
     "url": "https://invent.kde.org/qt/qt/qtlottie.git",
-    "rev": "fa8c8bfc6742ab98b61d1351e054e0e73e9a42f4",
+    "rev": "fca3f80f0ce389271e5bd9af864ce56a313d359a",
     "sha256": "1xgykaw8qjnaip6h9jx0nfadc9amb6aclk758vm5pp43dvs5j96r"
   },
   "qtmacextras": {
     "url": "https://invent.kde.org/qt/qt/qtmacextras.git",
-    "rev": "e72896968697e2a8af16a312e1560948e4c40f30",
-    "sha256": "1hndpbr1nnybn7frg76q99bk1c8fhvra6wjm0q78p4a8pinrvcms"
+    "rev": "80bc8d86508579c7a57110c09a44e33f9d8bc0e5",
+    "sha256": "1n9qixhgz66frsp56cr7zzaxcns3ijip46pa9zcz3m0f438n08z7"
   },
   "qtmultimedia": {
     "url": "https://invent.kde.org/qt/qt/qtmultimedia.git",
-    "rev": "bd29c87027637a013f2c5e3b549fcda84e4d7545",
-    "sha256": "11pz9zzrhsr3n78ga7l3kp3gi20rpxsa4iz3wclhcbcm2xr3nd94"
+    "rev": "fa6c3d653682f9fd331d859c7196a291a8a4d8d5",
+    "sha256": "0x4112b93dryfgy6w49z3jqd8xi8pvc3xqfn2j0n0qhdp4vvz5sl"
   },
   "qtnetworkauth": {
     "url": "https://invent.kde.org/qt/qt/qtnetworkauth.git",
-    "rev": "53870ee9bb9117702cd1f11cb1c5d1cfc2d5394a",
+    "rev": "958db00a2064f77b354b573102ca2c2b2e07529c",
     "sha256": "0idaysqpwrghih7ijrm9hagj9jw3fy9nw539fr4d9rmcggnkkzn2"
   },
   "qtpurchasing": {
     "url": "https://invent.kde.org/qt/qt/qtpurchasing.git",
-    "rev": "cbf444fb570ca4f4ca21d963d2ae4010f10d473e",
+    "rev": "255b9e16f286003bbfaff9d48e4548fb0cb3b398",
     "sha256": "1cki7n62wqm3xxn36mka0y67ngn7jvjkrvr08vsassbjb7kfsmxp"
   },
   "qtquick3d": {
     "url": "https://invent.kde.org/qt/qt/qtquick3d.git",
-    "rev": "3e3e53c834b25dc2959dd30f319d12d6f84ee1e3",
-    "sha256": "1b1khfg26zl3p28yvhwjfldqy3flh10pb5hm5z0av03rz7jy7l8s"
+    "rev": "1ede2ac20170357b3e8d7d9810e5474e08170827",
+    "sha256": "1sxlyv1y6aanln7cv1m8fgjkp72lgx2k4q8a23m79g7xryl0xx2a"
   },
   "qtquickcontrols": {
     "url": "https://invent.kde.org/qt/qt/qtquickcontrols.git",
-    "rev": "cf3f6d7fec824cdf01f9b329ab3b92b1c0e0a420",
-    "sha256": "1vxp0kwigwhqyyfm0xg8llyd1l1f4l18hmk6xqkm57xpi15x55bc"
+    "rev": "d054de15b3c9ead0f96655ddfb1a6381ed7a0e2b",
+    "sha256": "0inym59pnr6pk9y4im2fsq1hzs8b4rwqs3x6cgc61z3kqyv74cb6"
   },
   "qtquickcontrols2": {
     "url": "https://invent.kde.org/qt/qt/qtquickcontrols2.git",
-    "rev": "d8d6b14b9907adbc6ce307d52be34aaa761a58fa",
-    "sha256": "15c7nrvvn7qc3l7kdbl5wdpazqwv8zvg1aij2jvcrhbymn0zl3mc"
+    "rev": "26bd7f5414dc592ab5277e2bb4ad0199faa889de",
+    "sha256": "0d53d1fqcc7ccd9ljr3q1qxd7k7kkn6msqa81592pg6b4ridzdsq"
   },
   "qtquicktimeline": {
     "url": "https://invent.kde.org/qt/qt/qtquicktimeline.git",
-    "rev": "67503cdadea43b95ddad0de1a04951aff0ce1a07",
-    "sha256": "0h4b3ibcf6rsmqmcfbwbk9pbvw3b9cac8nx2538aqvnpyyp1vhid"
+    "rev": "98b1ff53458887061b4bcc183efcce899f432394",
+    "sha256": "1q4d88cym0c5vmw40qjp968x5sp7dx4mq6cr1r6px9i0ifvimdrg"
   },
   "qtremoteobjects": {
     "url": "https://invent.kde.org/qt/qt/qtremoteobjects.git",
-    "rev": "4d6d1e35fb8e0cb900b5e5e9266edea51dc4f735",
+    "rev": "581475dfeb44c8b51c0be86e0f2f57df7d117a80",
     "sha256": "1zbxl5jk7x8qklrnbbaikymyviigqdq7vf0wc8gzls4126vcx146"
   },
   "qtscript": {
@@ -121,87 +121,87 @@
   },
   "qtscxml": {
     "url": "https://invent.kde.org/qt/qt/qtscxml.git",
-    "rev": "7a15000f42c7a3171719727cd056f82a78244ed7",
-    "sha256": "1i2ajsj9pb1s4lk4djj1h1ay9mkz1z3m75a747cspyc1p1iymipq"
+    "rev": "50d2da3965ed8e85f3f5f5760393c42b12d34a9f",
+    "sha256": "148qdyw084agpp4n31cfcgk39ppwf9ndifnvihd94c6ksf1ax3ks"
   },
   "qtsensors": {
     "url": "https://invent.kde.org/qt/qt/qtsensors.git",
-    "rev": "921a31375f29e429e95352b08b2b9dbfea663cb1",
-    "sha256": "1ijayk6lf34nwv7s3ib3cfqx9sjrmr1c6jnziwmxa1l6fy3ik4g8"
+    "rev": "975ba788d3d0ee87aa08bb5301cd33dcbf00521b",
+    "sha256": "13x0d0ky5dybp1lq39yy82xg7hxdvmksam8r85gqargsi0zr5s8x"
   },
   "qtserialbus": {
     "url": "https://invent.kde.org/qt/qt/qtserialbus.git",
-    "rev": "8884c5e43df846deac5a0c7c290eeb633d6bfe32",
-    "sha256": "1ydb5x21j26pl58mr6klnwixkqx8h119nvnzvyawz83gji3ay3a5"
+    "rev": "22b3cad193232ab379a0c9e16989a7db1fdc9234",
+    "sha256": "1j084szvdmfxbc9n37phxsd7k4vxd073vwy1hcnjhmpyg9hwrw81"
   },
   "qtserialport": {
     "url": "https://invent.kde.org/qt/qt/qtserialport.git",
-    "rev": "941d1d8560d1f3e40077c251fbde6fd6a5b0f0d4",
+    "rev": "f95e2411d7c978def87846ea7cedf3dc5fd7c8b8",
     "sha256": "0x7ly67gddmz0hqls9109bk4rgaa97ksyv24qk4brrhzkpr7q9cx"
   },
   "qtspeech": {
     "url": "https://invent.kde.org/qt/qt/qtspeech.git",
-    "rev": "a0efc38377e5bf7eed2d354d1cb4d7a0d5dc7e1b",
-    "sha256": "1ljf45f65pfp8x367qnzl0ssz7n17cxhk29qvqpz9z7rh65zqix5"
+    "rev": "08b27c29aadc0cc0303cca97c9a3baa2a690dfe4",
+    "sha256": "0lm6i85d7zav43lsrxnhdqcq68np32s3widla8z6c208q1pf3qs6"
   },
   "qtsvg": {
     "url": "https://invent.kde.org/qt/qt/qtsvg.git",
-    "rev": "728012f7762ecd5762d493f8796907c6456f31e7",
+    "rev": "2f42157cabbd1db6249ccb1d14e6eede80451e0c",
     "sha256": "1ldizgybl4fp95xlzf103hqmsqdmr3jbx048jyxcb5gjd3pbwh7p"
   },
   "qttools": {
     "url": "https://invent.kde.org/qt/qt/qttools.git",
-    "rev": "33693a928986006d79c1ee743733cde5966ac402",
-    "sha256": "02n0lppsp6g4s9bdvnfxpf7ndkbs9bzm0clcwvirwf2cd8q95a4n"
+    "rev": "a3e5b2eb8ef5982bc1fffb390ebcd141be1deee4",
+    "sha256": "1x7vzqvc80k0fanvahibmglcv4za07hfiamp26wkhmk0g634ms2q"
   },
   "qttranslations": {
     "url": "https://invent.kde.org/qt/qt/qttranslations.git",
-    "rev": "8fbbdf21f127197f97b58c7d80d2fa2a59135638",
+    "rev": "a6d5e7f84a57394db4c8b069f81c56cfeb802e19",
     "sha256": "06r2jb2fsdr5fvxs748war0lr4mm3l3d3b37xc4n73y294vwrmn7"
   },
   "qtvirtualkeyboard": {
     "url": "https://invent.kde.org/qt/qt/qtvirtualkeyboard.git",
-    "rev": "98d1fd864cbb6c7c012c4139118808af110fb8f0",
-    "sha256": "07xjmhca7z5bva03zk73d948qz0a3wnn4kvyy6j4cnp3w5giz5kc"
+    "rev": "bb40dee811333929dd467a480dce24ab7af84ef9",
+    "sha256": "0w6li1qwm2x4plzixd1dv6s1jvcmyrbaw328sri2cmiswajhywdw"
   },
   "qtwayland": {
     "url": "https://invent.kde.org/qt/qt/qtwayland.git",
-    "rev": "214f7ab9d3384a4123f14d9f6cd0205cf0aaa794",
-    "sha256": "1qd64w5c16gmpgi936dfjc0pn1a1rbs752k8lfqv2xwysx7qkqwi"
+    "rev": "118674630cdb5933e66a8b4415afe7c716ad4662",
+    "sha256": "1zvx11z0cfv2avj211zsh79806m6mdkk3kczwhcd98k1qs9r9d3p"
   },
   "qtwebchannel": {
     "url": "https://invent.kde.org/qt/qt/qtwebchannel.git",
-    "rev": "fa8b07105b5e274daaa8adcc129fa4aa0447f9f7",
+    "rev": "611016a49f3a9ba7b58bef29bc295323e06373ae",
     "sha256": "0mggqa8kixknbm1p5i5lkrmkj1na3b2xflj011dkjbj8wb78i42n"
   },
   "qtwebglplugin": {
     "url": "https://invent.kde.org/qt/qt/qtwebglplugin.git",
-    "rev": "550a8cee241bbf8c11863dec9587d579dcb1108b",
+    "rev": "4318ad91c2a8bea3a0aaaa64aaf49d3b997e50a1",
     "sha256": "0p1y0b8zsm7rrkhhylndp282ghgki2cjrgc4n5zhjn732ahxg515"
   },
   "qtwebsockets": {
     "url": "https://invent.kde.org/qt/qt/qtwebsockets.git",
-    "rev": "b13b56904b76e96ea52d0efe56395acc94b17d96",
-    "sha256": "047asrq7c44v7cn2d7c5zba47qzpsb6nidba77i2xn7gqlfv6z3b"
+    "rev": "7196d2cc34adf9f45b50a9488f4ff95b36092993",
+    "sha256": "1a7n5i4s6nsb19z4r3m3w7gadjpp0irm77ysk61axqjda4ypi7fw"
   },
   "qtwebview": {
     "url": "https://invent.kde.org/qt/qt/qtwebview.git",
-    "rev": "920de5f1cd9f9001cfef1bfd2c19e6720793362f",
-    "sha256": "04hnqalabhypkd2hgl45jxf9p1p6dgjwlc5b7gs4f6588lafgd3f"
+    "rev": "ec4de0cec2299f4ae0228ea2c71011e0520ca40e",
+    "sha256": "1na9xv2q4wwy10bcr7684i59d9a20n6s91m12n49yjgrhpn4f4jv"
   },
   "qtwinextras": {
     "url": "https://invent.kde.org/qt/qt/qtwinextras.git",
-    "rev": "3df03dab21f3e84d5a7274c64dd879854ca1bfe7",
-    "sha256": "12dkw982xcm7hxw3lxhg34wny4srbickxm9s3nz7bdyp9dmqnygx"
+    "rev": "051202df9c553d7c0a384f07bd67fde98f3b02c4",
+    "sha256": "0d8y4x41slqjr3nflb14ah1wl2hrlir7331ch9k1qfrk3798a760"
   },
   "qtx11extras": {
     "url": "https://invent.kde.org/qt/qt/qtx11extras.git",
-    "rev": "3898f5484fd4864b047729bfeda9a1222f32364f",
+    "rev": "f628d7a60e45d90a439cb0a393a6229ac6892be5",
     "sha256": "04rp8arml19b03iybd7sa78dsdv7386m9ymmgqciwl13dhwjssra"
   },
   "qtxmlpatterns": {
     "url": "https://invent.kde.org/qt/qt/qtxmlpatterns.git",
-    "rev": "189e28d0aff1f3d7960228ba318b83e3cadac98c",
+    "rev": "af4958af9d628d6124e64abd9743abce42f15a6f",
     "sha256": "0vs9j2i1dnlivcrzz175zz66ql1m8mrdqkglvyqjqv6cb7mpskrq"
   }
 }
diff --git a/pkgs/development/libraries/qt-5/modules/qtbase.nix b/pkgs/development/libraries/qt-5/modules/qtbase.nix
index 0222a708bb87d..c3da951ca523e 100644
--- a/pkgs/development/libraries/qt-5/modules/qtbase.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtbase.nix
@@ -7,11 +7,10 @@
 , libiconv, libobjc, xcbuild, AGL, AppKit, ApplicationServices, Carbon, Cocoa, CoreAudio, CoreBluetooth
 , CoreLocation, CoreServices, DiskArbitration, Foundation, OpenGL, MetalKit, IOKit
 
-, dbus, fontconfig, freetype, glib, harfbuzz, icu, libX11, libXcomposite
-, libXcursor, libXext, libXi, libXrender, libinput, libjpeg, libpng
-, libxcb, libxkbcommon, libxml2, libxslt, openssl, pcre16, pcre2, sqlite, udev
-, xcbutil, xcbutilimage, xcbutilkeysyms, xcbutilrenderutil, xcbutilwm
-, zlib, at-spi2-core
+, dbus, fontconfig, freetype, glib, harfbuzz, icu, libdrm, libX11, libXcomposite
+, libXcursor, libXext, libXi, libXrender, libinput, libjpeg, libpng , libxcb
+, libxkbcommon, libxml2, libxslt, openssl, pcre16, pcre2, sqlite, udev, xcbutil
+, xcbutilimage, xcbutilkeysyms, xcbutilrenderutil, xcbutilwm , zlib, at-spi2-core
 
   # optional dependencies
 , cups ? null, libmysqlclient ? null, postgresql ? null
@@ -62,6 +61,8 @@ stdenv.mkDerivation {
       # Text rendering
       fontconfig freetype
 
+      libdrm
+
       # X11 libs
       libX11 libXcomposite libXext libXi libXrender libxcb libxkbcommon xcbutil
       xcbutilimage xcbutilkeysyms xcbutilrenderutil xcbutilwm
@@ -151,6 +152,9 @@ stdenv.mkDerivation {
     ''}
 
     NIX_CFLAGS_COMPILE+=" -DNIXPKGS_QT_PLUGIN_PREFIX=\"$qtPluginPrefix\""
+
+    # paralellize compilation of qtmake, which happens within ./configure
+    export MAKEFLAGS+=" -j$NIX_BUILD_CORES"
   '' + lib.optionalString (compareVersion "5.15.0" >= 0) ''
     ./bin/syncqt.pl -version $version
   '';
diff --git a/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix b/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix
index baf5c30e73c40..41a7eb6776c3e 100644
--- a/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix
@@ -15,8 +15,9 @@ qtModule {
   pname = "qtmultimedia";
   qtInputs = [ qtbase qtdeclarative ];
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ gstreamer gst-plugins-base libpulseaudio ]
-    ++ lib.optional (stdenv.isLinux) alsa-lib
+  buildInputs = [ gstreamer gst-plugins-base ]
+    # https://github.com/NixOS/nixpkgs/pull/169336 regarding libpulseaudio
+    ++ lib.optionals stdenv.isLinux [ libpulseaudio alsa-lib ]
     ++ lib.optional (lib.versionAtLeast qtbase.version "5.14.0" && stdenv.isLinux) wayland;
   outputs = [ "bin" "dev" "out" ];
   qmakeFlags = [ "GST_VERSION=1.0" ];
diff --git a/pkgs/development/libraries/qt-5/modules/qtwayland-app_id.patch b/pkgs/development/libraries/qt-5/modules/qtwayland-app_id.patch
new file mode 100644
index 0000000000000..24d081aa602be
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/modules/qtwayland-app_id.patch
@@ -0,0 +1,36 @@
+Ensure that the correct `app_id` for Wayland is set. The upstream implementation
+uses `QFileInfo::baseName()`[1] which strips everything away after the first dot.
+This means that `.foo-wrapped` has an empty `app_id` because `baseName` returns
+an empty string in this case.
+
+The patch basically checks whether the program has the form `.foo-wrapped` (i.e. got
+wrapped by `makeWrapper`) and if that's the case, `foo` will be the correct `app_id`.
+
+[1] https://doc.qt.io/qt-5/qfileinfo.html#baseName
+
+diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
+index ba881cb..b3fd031 100644
+--- a/src/client/qwaylandwindow.cpp
++++ b/src/client/qwaylandwindow.cpp
+@@ -167,7 +167,20 @@ void QWaylandWindow::initWindow()
+                                                                                  Qt::SkipEmptyParts);
+ 
+                 if (domainName.isEmpty()) {
+-                    mShellSurface->setAppId(fi.baseName());
++                    auto baseName = fi.baseName();
++                    if (baseName.isEmpty()) {
++                        auto fileName = fi.fileName();
++                        if (fileName.endsWith("-wrapped") && fileName.startsWith(".")) {
++                            do {
++                                auto len = fileName.length();
++                                fileName = fileName.right(len - 1);
++                                fileName = fileName.left(len - 9);
++                            } while (fileName.endsWith("-wrapped") && fileName.startsWith("."));
++                            mShellSurface->setAppId(fileName);
++                        }
++                    } else {
++                        mShellSurface->setAppId(baseName);
++                    }
+                 } else {
+                     QString appId;
+                     for (int i = 0; i < domainName.count(); ++i)
diff --git a/pkgs/development/libraries/qt-5/modules/qtwayland.nix b/pkgs/development/libraries/qt-5/modules/qtwayland.nix
index 1bd1adedaf040..851e4ad6966b0 100644
--- a/pkgs/development/libraries/qt-5/modules/qtwayland.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtwayland.nix
@@ -6,4 +6,10 @@ qtModule {
   buildInputs = [ wayland ];
   nativeBuildInputs = [ pkg-config ];
   outputs = [ "out" "dev" "bin" ];
+  patches = [
+    # NixOS-specific, ensure that app_id is correctly determined for
+    # wrapped executables from `wrapQtAppsHook` (see comment in patch for further
+    # context).  Beware: shared among different Qt5 versions.
+    ./qtwayland-app_id.patch
+  ];
 }
diff --git a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
index 01d0c5932828b..3c5256908d882 100644
--- a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
@@ -12,7 +12,6 @@
 , libcap
 , pciutils
 , systemd
-, pipewire_0_2
 , enableProprietaryCodecs ? true
 , gn
 , cctools, libobjc, libunwind, sandbox, xnu
@@ -23,6 +22,8 @@
 , lib, stdenv, fetchpatch
 , version ? null
 , qtCompatVersion
+, pipewireSupport ? stdenv.isLinux
+, pipewire_0_2
 }:
 
 qtModule {
@@ -137,7 +138,7 @@ qtModule {
   '';
 
   qmakeFlags = [ "--" "-system-ffmpeg" ]
-    ++ lib.optional (stdenv.isLinux && (lib.versionAtLeast qtCompatVersion "5.15")) "-webengine-webrtc-pipewire"
+    ++ lib.optional (pipewireSupport && (lib.versionAtLeast qtCompatVersion "5.15")) "-webengine-webrtc-pipewire"
     ++ lib.optional enableProprietaryCodecs "-proprietary-codecs";
 
   propagatedBuildInputs = [
@@ -171,7 +172,7 @@ qtModule {
     xorg.xrandr libXScrnSaver libXcursor libXrandr xorg.libpciaccess libXtst
     xorg.libXcomposite xorg.libXdamage libdrm xorg.libxkbfile
 
-  ] ++ lib.optionals (stdenv.isLinux && (lib.versionAtLeast qtCompatVersion "5.15")) [
+  ] ++ lib.optionals (pipewireSupport && (lib.versionAtLeast qtCompatVersion "5.15")) [
     # Pipewire
     pipewire_0_2
   ]
diff --git a/pkgs/development/libraries/qt-5/qtModule.nix b/pkgs/development/libraries/qt-5/qtModule.nix
index 3323e3fb4cc82..b74d5e0868027 100644
--- a/pkgs/development/libraries/qt-5/qtModule.nix
+++ b/pkgs/development/libraries/qt-5/qtModule.nix
@@ -14,7 +14,7 @@ in
 
 mkDerivation (args // {
   inherit pname version src;
-  patches = args.patches or patches.${pname} or [];
+  patches = (args.patches or []) ++ (patches.${pname} or []);
 
   nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ perl self.qmake ];
   propagatedBuildInputs = args.qtInputs ++ (args.propagatedBuildInputs or []);
diff --git a/pkgs/development/libraries/qtutilities/default.nix b/pkgs/development/libraries/qtutilities/default.nix
index 6027e5b038549..6d6b413957a8c 100644
--- a/pkgs/development/libraries/qtutilities/default.nix
+++ b/pkgs/development/libraries/qtutilities/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qtutilities";
-  version = "6.5.3";
+  version = "6.6.0";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-P1vAmH1cF5qQxpa4AOIOyK8ogLZgyXt8jaxaHwE9qck=";
+    sha256 = "sha256-ArPTWUQV9h+AK/m4oUIXsGWFO6Fj9IIOKSXCdWGztNM=";
   };
 
   buildInputs = [ qtbase cpp-utilities ];
diff --git a/pkgs/development/libraries/quictls/default.nix b/pkgs/development/libraries/quictls/default.nix
index 3d5741ccba551..2cc043ee0c1be 100644
--- a/pkgs/development/libraries/quictls/default.nix
+++ b/pkgs/development/libraries/quictls/default.nix
@@ -9,20 +9,15 @@
 , withPerl ? stdenv.hostPlatform == stdenv.buildPlatform
 }:
 
-assert (
-  lib.assertMsg (!withPerl -> stdenv.hostPlatform != stdenv.buildPlatform)
-  "withPerl should not be disabled unless cross compiling"
-);
-
 stdenv.mkDerivation rec {
   pname = "quictls";
-  version = "3.0.1+quick_unstable-2021-12.14";
+  version = "3.0.2+quick_unstable-2022-03.15";
 
   src = fetchFromGitHub {
     owner = "quictls";
     repo = "openssl";
-    rev = "ab8b87bdb436b11bf2a10a2a57a897722224f828";
-    sha256 = "sha256-835oZgoM1CTS+JLxPO3oGSTnhLmJXGT1cFaJhCJK++8=";
+    rev = "7f2ab56a2b842b8e6fefc7b9d20eb5ff9c6ef151";
+    sha256 = "sha256-We4ow0mGJFXqYM4PqbGn8qY5IYH/MtNaefrSaJreoRA=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/rapidfuzz-cpp/default.nix b/pkgs/development/libraries/rapidfuzz-cpp/default.nix
new file mode 100644
index 0000000000000..2e1ad8080fa44
--- /dev/null
+++ b/pkgs/development/libraries/rapidfuzz-cpp/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, catch2
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rapidfuzz-cpp";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "maxbachmann";
+    repo = "rapidfuzz-cpp";
+    rev = "v${version}";
+    hash = "sha256-331iW0nu5MlxuKNTgMkRSASnglxn+hEWBhRMnw0lY2Y=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  cmakeFlags = lib.optionals doCheck [
+    "-DRAPIDFUZZ_BUILD_TESTING=ON"
+  ];
+
+  checkInputs = [
+    catch2
+  ];
+
+  # uses unreleased Catch2 version 3
+  doCheck = false;
+
+  meta = {
+    description = "Rapid fuzzy string matching in C++ using the Levenshtein Distance";
+    homepage = "https://github.com/maxbachmann/rapidfuzz-cpp";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ dotlambda ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/re2/default.nix b/pkgs/development/libraries/re2/default.nix
index 2cdad981fbd97..4c8249abe87a8 100644
--- a/pkgs/development/libraries/re2/default.nix
+++ b/pkgs/development/libraries/re2/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "re2";
-  version = "2022-02-01";
+  version = "2022-04-01";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "re2";
     rev = version;
-    sha256 = "sha256-3RspCfJD2jV7GYuzeBUcxkZsdHyL14kaz8lSoIrH7b8=";
+    sha256 = "sha256-ywmXIAyVWYMKBOsAndcq7dFYpn9ZgNz5YWTPjylXxsk=";
   };
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/recastnavigation/default.nix b/pkgs/development/libraries/recastnavigation/default.nix
index d39d1a7132191..6fd2056d2ea2b 100644
--- a/pkgs/development/libraries/recastnavigation/default.nix
+++ b/pkgs/development/libraries/recastnavigation/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, cmake, libGL, SDL2, libGLU }:
+{ stdenv, lib, fetchFromGitHub, cmake, libGL, SDL2, libGLU, catch }:
 
 stdenv.mkDerivation rec {
   pname = "recastai";
@@ -13,6 +13,12 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-QP3lMMFR6fiKQTksAkRL6X9yaoVz2xt4QSIP9g6piww=";
   };
 
+  postPatch = ''
+    cp ${catch}/include/catch/catch.hpp Tests/catch.hpp
+  '';
+
+  doCheck = true;
+
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [ libGL SDL2 libGLU ];
diff --git a/pkgs/development/libraries/redis-plus-plus/default.nix b/pkgs/development/libraries/redis-plus-plus/default.nix
new file mode 100644
index 0000000000000..a39a9b185dca4
--- /dev/null
+++ b/pkgs/development/libraries/redis-plus-plus/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv, fetchFromGitHub, cmake, hiredis
+, enableShared ? !stdenv.hostPlatform.isStatic
+, enableStatic ? stdenv.hostPlatform.isStatic
+}:
+
+# You must build at one type of library
+assert enableShared || enableStatic;
+
+stdenv.mkDerivation rec {
+  pname = "redis-plus-plus";
+  version = "1.3.3";
+
+  src = fetchFromGitHub {
+    owner = "sewenew";
+    repo = "redis-plus-plus";
+    rev = version;
+    sha256 = "sha256-k4q5YbbbKKHXcL0nndzJPshzXS20ARz4Tdy5cBg7kMc=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  propagatedBuildInputs = [ hiredis ];
+
+  cmakeFlags = [
+    "-DREDIS_PLUS_PLUS_BUILD_TEST=OFF"
+  ] ++ lib.optional (!enableShared) [
+    "-DREDIS_PLUS_PLUS_BUILD_SHARED=OFF"
+  ] ++ lib.optional (!enableStatic) [
+    "-DREDIS_PLUS_PLUS_BUILD_STATIC=OFF"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/sewenew/redis-plus-plus";
+    description = "Redis client written in C++";
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ wheelsandmetal ];
+  };
+}
diff --git a/pkgs/development/libraries/rlottie/default.nix b/pkgs/development/libraries/rlottie/default.nix
index f1d3ffd02124e..6f641bd6a6006 100644
--- a/pkgs/development/libraries/rlottie/default.nix
+++ b/pkgs/development/libraries/rlottie/default.nix
@@ -1,4 +1,11 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, meson
+, ninja
+, pkg-config
+}:
 
 stdenv.mkDerivation rec {
   pname = "rlottie";
@@ -11,6 +18,14 @@ stdenv.mkDerivation rec {
     sha256 = "10bxr1zf9wxl55d4cw2j02r6sgqln7mbxplhhfvhw0z92fi40kr3";
   };
 
+  patches = [
+    # Fixed build with GCC 11
+    (fetchpatch {
+       url = "https://github.com/Samsung/rlottie/commit/2d7b1fa2b005bba3d4b45e8ebfa632060e8a157a.patch";
+       hash = "sha256-2JPsj0WiBMMu0N3NUYDrHumvPN2YS8nPq5Zwagx6UWE=";
+    })
+  ];
+
   nativeBuildInputs = [ meson ninja pkg-config ];
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/robin-map/default.nix b/pkgs/development/libraries/robin-map/default.nix
index 4ab48c4844263..229714723cdfb 100644
--- a/pkgs/development/libraries/robin-map/default.nix
+++ b/pkgs/development/libraries/robin-map/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "robin-map";
-  version = "1.0.0";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "Tessil";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-h59khOUg7vzw64EAMT/uzTKHzx2M9q+pc2BhfGQiY3Q=";
+    sha256 = "sha256-4OW7PHow+O7R4t5+6iPV3E+1+6XPhqxrL1LQZitmCzQ=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/s2n-tls/default.nix b/pkgs/development/libraries/s2n-tls/default.nix
index c22ff6c37309d..e6e35f9b2c421 100644
--- a/pkgs/development/libraries/s2n-tls/default.nix
+++ b/pkgs/development/libraries/s2n-tls/default.nix
@@ -25,6 +25,9 @@ stdenv.mkDerivation rec {
     "-DBUILD_SHARED_LIBS=ON"
     "-DCMAKE_SKIP_BUILD_RPATH=OFF"
     "-DUNSAFE_TREAT_WARNINGS_AS_ERRORS=OFF" # disable -Werror
+  ] ++ lib.optionals stdenv.hostPlatform.isMips64 [
+    # See https://github.com/aws/s2n-tls/issues/1592 and https://github.com/aws/s2n-tls/pull/1609
+    "-DS2N_NO_PQ=ON"
   ];
 
   propagatedBuildInputs = [ openssl ]; # s2n-config has find_dependency(LibCrypto).
diff --git a/pkgs/development/libraries/science/astronomy/wcslib/default.nix b/pkgs/development/libraries/science/astronomy/wcslib/default.nix
index 6adf525147106..2b2cade6fbba4 100644
--- a/pkgs/development/libraries/science/astronomy/wcslib/default.nix
+++ b/pkgs/development/libraries/science/astronomy/wcslib/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wcslib";
-  version = "7.7";
+  version = "7.9";
 
   src = fetchurl {
     url = "ftp://ftp.atnf.csiro.au/pub/software/wcslib/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-pwjmtOkOLNZCdDRxW1kbucPUAFyZcl7ElLjgvtLeU1U=";
+    sha256 = "sha256-vv+MHw6GAAeIE8Ay0a/NnLMFwx9WdWdDSCQjPVgqulg=";
   };
 
   nativeBuildInputs = [ flex ];
diff --git a/pkgs/development/libraries/science/math/blis/default.nix b/pkgs/development/libraries/science/math/blis/default.nix
index 847d8429c92f1..5b78afc15ed4f 100644
--- a/pkgs/development/libraries/science/math/blis/default.nix
+++ b/pkgs/development/libraries/science/math/blis/default.nix
@@ -17,13 +17,13 @@ let
   blasIntSize = if blas64 then "64" else "32";
 in stdenv.mkDerivation rec {
   pname = "blis";
-  version = "0.8.1";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "flame";
     repo = "blis";
     rev = version;
-    sha256 = "sha256-D5T/itq9zyD5TkeJ4Ae1vS4yEWU51omyJoIkKQ2NLhY=";
+    sha256 = "sha256-1aHIdt5wCDrT1hBPnaUVThwjwDkJQ0G0+tao2iFXYpM=";
   };
 
   inherit blas64;
diff --git a/pkgs/development/libraries/science/math/caffe2/default.nix b/pkgs/development/libraries/science/math/caffe2/default.nix
index 202903b9aa181..9333d5cdfe89c 100644
--- a/pkgs/development/libraries/science/math/caffe2/default.nix
+++ b/pkgs/development/libraries/science/math/caffe2/default.nix
@@ -5,8 +5,8 @@
 , python, future, six, python-protobuf, numpy, pydot
 , eigen
 , doxygen
-, useCuda ? (config.cudaSupport or false), cudatoolkit ? null
-, useCudnn ? (config.cudnnSupport or false), cudnn ? null
+, useCuda ? (config.cudaSupport or false), cudaPackages ? {}
+, useCudnn ? (config.cudnnSupport or false)
 , useOpenmp ? false, openmp ? null
 , useOpencv3 ? true, opencv3 ? null
 , useLeveldb ? false, leveldb ? null
@@ -20,6 +20,10 @@
 #, useNnpack ? false
 }:
 
+let
+   inherit (cudaPackages) cudatoolkit cudnn;
+in
+
 assert useCuda -> cudatoolkit != null;
 assert useCudnn -> (useCuda && cudnn != null);
 assert useOpencv3 -> opencv3 != null;
diff --git a/pkgs/development/libraries/science/math/cudnn/default.nix b/pkgs/development/libraries/science/math/cudnn/default.nix
deleted file mode 100644
index a3f785c5b38f6..0000000000000
--- a/pkgs/development/libraries/science/math/cudnn/default.nix
+++ /dev/null
@@ -1,114 +0,0 @@
-# The following version combinations are supported:
-#  * cuDNN 7.4.2, cudatoolkit 10.0
-#  * cuDNN 7.6.5, cudatoolkit 10.0-10.1
-#  * cuDNN 8.1.1, cudatoolkit 10.2-11.2
-#  * cuDNN 8.3.2, cudatoolkit 10.2-11.5
-{ callPackage
-, cudatoolkit_10
-, cudatoolkit_10_0
-, cudatoolkit_10_1
-, cudatoolkit_10_2
-, cudatoolkit_11
-, cudatoolkit_11_0
-, cudatoolkit_11_1
-, cudatoolkit_11_2
-, cudatoolkit_11_3
-, cudatoolkit_11_4
-, cudatoolkit_11_5
-, fetchurl
-, lib
-}:
-
-let
-  generic = args: callPackage (import ./generic.nix (removeAttrs args [ "cudatoolkit" ])) {
-    inherit (args) cudatoolkit;
-  };
-  urlPrefix = "https://developer.download.nvidia.com/compute/redist/cudnn";
-in
-rec {
-  # cuDNN 7.x
-  # Still used by libtensorflow-bin. It should be upgraded at some point.
-  cudnn_7_4_cudatoolkit_10_0 = generic rec {
-    version = "7.4.2";
-    cudatoolkit = cudatoolkit_10_0;
-    # See https://docs.nvidia.com/deeplearning/cudnn/archives/cudnn_742/cudnn-support-matrix/index.html#cudnn-cuda-hardware-versions__table-cudnn-cuda-hardware-versions.
-    minCudaVersion = "9.2.88";
-    maxCudaVersion = "10.0.99999";
-    mkSrc = _: fetchurl {
-      url = "${urlPrefix}/v${version}/cudnn-10.0-linux-x64-v7.4.2.24.tgz";
-      hash = "sha256-Lt/IagK1DRfojEeJVaMy5qHoF05+U6NFi06lH68C2qM=";
-    };
-  };
-  # The only overlap between supported and packaged CUDA versions is 10.0.
-
-  cudnn_7_6_cudatoolkit_10_0 = generic rec {
-    version = "7.6.5";
-    cudatoolkit = cudatoolkit_10_0;
-    # See https://docs.nvidia.com/deeplearning/cudnn/archives/cudnn_765/cudnn-support-matrix/index.html#cudnn-versions-763-765.
-    minCudaVersion = "9.2.148";
-    maxCudaVersion = "10.1.243";
-    mkSrc = cudatoolkit: fetchurl {
-      url = "${urlPrefix}/v${version}/cudnn-${cudatoolkit.majorVersion}-linux-x64-v7.6.5.32.tgz";
-      hash = {
-        "10.0" = "sha256-KDVeOV8LK5OsLIO2E2CzW6bNA3fkTni+GXtrYbS0kro=";
-        "10.1" = "sha256-fq7IA5osMKsLx1jTA1iHZ2k972v0myJIWiwAvy4TbLM=";
-      }."${cudatoolkit.majorVersion}";
-    };
-  };
-  cudnn_7_6_cudatoolkit_10_1 = cudnn_7_6_cudatoolkit_10_0.override { cudatoolkit = cudatoolkit_10_1; };
-
-  # cuDNN 8.x
-  # cuDNN 8.1 is still used by tensorflow at the time of writing (2022-02-17).
-  # See https://github.com/NixOS/nixpkgs/pull/158218 for more info.
-  cudnn_8_1_cudatoolkit_10_2 = generic rec {
-    version = "8.1.1";
-    cudatoolkit = cudatoolkit_10_2;
-    # See https://docs.nvidia.com/deeplearning/cudnn/archives/cudnn-811/support-matrix/index.html#cudnn-versions-810-811.
-    minCudaVersion = "10.2.00000";
-    maxCudaVersion = "11.2.99999";
-    mkSrc = cudatoolkit:
-      let v = if lib.versions.majorMinor cudatoolkit.version == "10.2" then "10.2" else "11.2"; in
-      fetchurl {
-        url = "${urlPrefix}/v${version}/cudnn-${v}-linux-x64-v8.1.1.33.tgz";
-        hash = {
-          "10.2" = "sha256-Kkp7mabpv6aQ6xm7QeSVU/KnpJGls6v8rpAOFmxbbr0=";
-          "11.2" = "sha256-mKh4TpKGLyABjSDCgbMNSgzZUfk2lPZDPM9K6cUCumo=";
-        }."${v}";
-      };
-  };
-  cudnn_8_1_cudatoolkit_11_0 = cudnn_8_1_cudatoolkit_10_2.override { cudatoolkit = cudatoolkit_11_0; };
-  cudnn_8_1_cudatoolkit_11_1 = cudnn_8_1_cudatoolkit_10_2.override { cudatoolkit = cudatoolkit_11_1; };
-  cudnn_8_1_cudatoolkit_11_2 = cudnn_8_1_cudatoolkit_10_2.override { cudatoolkit = cudatoolkit_11_2; };
-
-  cudnn_8_1_cudatoolkit_10 = cudnn_8_1_cudatoolkit_10_2.override { cudatoolkit = cudatoolkit_10; };
-
-  # cuDNN 8.3 is necessary for the latest jaxlib, esp. jaxlib-bin. See
-  # https://github.com/google/jax/discussions/9455 for more info.
-  cudnn_8_3_cudatoolkit_10_2 = generic rec {
-    version = "8.3.2";
-    cudatoolkit = cudatoolkit_10_2;
-    # See https://docs.nvidia.com/deeplearning/cudnn/archives/cudnn-832/support-matrix/index.html#cudnn-cuda-hardware-versions.
-    minCudaVersion = "10.2.00000";
-    maxCudaVersion = "11.5.99999";
-    mkSrc = cudatoolkit:
-      let v = if lib.versions.majorMinor cudatoolkit.version == "10.2" then "10.2" else "11.5"; in
-      fetchurl {
-        # Starting at version 8.3.1 there's a new directory layout including
-        # a subdirectory `local_installers`.
-        url = "https://developer.download.nvidia.com/compute/redist/cudnn/v${version}/local_installers/${v}/cudnn-linux-x86_64-8.3.2.44_cuda${v}-archive.tar.xz";
-        hash = {
-          "10.2" = "sha256-1vVu+cqM+PketzIQumw9ykm6REbBZhv6/lXB7EC2aaw=";
-          "11.5" = "sha256-VQCVPAjF5dHd3P2iNPnvvdzb5DpTsm3AqCxyP6FwxFc=";
-        }."${v}";
-      };
-  };
-  cudnn_8_3_cudatoolkit_11_0 = cudnn_8_3_cudatoolkit_10_2.override { cudatoolkit = cudatoolkit_11_0; };
-  cudnn_8_3_cudatoolkit_11_1 = cudnn_8_3_cudatoolkit_10_2.override { cudatoolkit = cudatoolkit_11_1; };
-  cudnn_8_3_cudatoolkit_11_2 = cudnn_8_3_cudatoolkit_10_2.override { cudatoolkit = cudatoolkit_11_2; };
-  cudnn_8_3_cudatoolkit_11_3 = cudnn_8_3_cudatoolkit_10_2.override { cudatoolkit = cudatoolkit_11_3; };
-  cudnn_8_3_cudatoolkit_11_4 = cudnn_8_3_cudatoolkit_10_2.override { cudatoolkit = cudatoolkit_11_4; };
-  cudnn_8_3_cudatoolkit_11_5 = cudnn_8_3_cudatoolkit_10_2.override { cudatoolkit = cudatoolkit_11_5; };
-
-  cudnn_8_3_cudatoolkit_10 = cudnn_8_3_cudatoolkit_10_2.override { cudatoolkit = cudatoolkit_10; };
-  cudnn_8_3_cudatoolkit_11 = cudnn_8_3_cudatoolkit_10_2.override { cudatoolkit = cudatoolkit_11; };
-}
diff --git a/pkgs/development/libraries/science/math/cudnn/extension.nix b/pkgs/development/libraries/science/math/cudnn/extension.nix
new file mode 100644
index 0000000000000..f1bdfb9836ed3
--- /dev/null
+++ b/pkgs/development/libraries/science/math/cudnn/extension.nix
@@ -0,0 +1,116 @@
+final: prev: let
+
+  inherit (final) callPackage;
+  inherit (prev) cudatoolkit cudaVersion lib pkgs;
+
+  ### CuDNN
+
+  buildCuDnnPackage = args:
+    let
+      useCudatoolkitRunfile = lib.versionOlder cudaVersion "11.3.999";
+    in
+    callPackage ./generic.nix { inherit useCudatoolkitRunfile; } args;
+
+  toUnderscore = str: lib.replaceStrings ["."] ["_"] str;
+
+  majorMinorPatch = str: lib.concatStringsSep "." (lib.take 3 (lib.splitVersion str));
+
+  cuDnnPackages = with lib; let
+    # Check whether a file is supported for our cuda version
+    isSupported = fileData: elem cudaVersion fileData.supportedCudaVersions;
+    # Return the first file that is supported. In practice there should only ever be one anyway.
+    supportedFile = files: findFirst isSupported null files;
+    # Supported versions with versions as keys and file as value
+    supportedVersions = filterAttrs (version: file: file !=null ) (mapAttrs (version: files: supportedFile files) cuDnnVersions);
+    # Compute versioned attribute name to be used in this package set
+    computeName = version: "cudnn_${toUnderscore version}";
+    # Add all supported builds as attributes
+    allBuilds = mapAttrs' (version: file: nameValuePair (computeName version) (buildCuDnnPackage (removeAttrs file ["fileVersion"]))) supportedVersions;
+    # Set the default attributes, e.g. cudnn = cudnn_8_3_1;
+    defaultBuild = { "cudnn" = allBuilds.${computeName cuDnnDefaultVersion}; };
+  in allBuilds // defaultBuild;
+
+  cuDnnVersions = let
+    urlPrefix = "https://developer.download.nvidia.com/compute/redist/cudnn";
+  in {
+    "7.4.2" = [
+      rec {
+        fileVersion = "10.0";
+        fullVersion = "7.4.2.24";
+        sha256 = "18ys0apiz9afid2s6lvy9qbyi8g66aimb2a7ikl1f3dm09mciprf";
+        url = "${urlPrefix}/v${majorMinorPatch fullVersion}/cudnn-10.0-linux-x64-v${fullVersion}.tgz";
+        supportedCudaVersions = [ "10.0" ];
+      }
+    ];
+    "7.6.5" = [
+      rec {
+        fileVersion = "10.0";
+        fullVersion = "7.6.5.32";
+        hash = "sha256-KDVeOV8LK5OsLIO2E2CzW6bNA3fkTni+GXtrYbS0kro=";
+        url = "${urlPrefix}/v${majorMinorPatch fullVersion}/cudnn-${cudatoolkit.majorVersion}-linux-x64-v${fullVersion}.tgz";
+        supportedCudaVersions = [ "10.0" ];
+      }
+      rec {
+        fileVersion = "10.1";
+        fullVersion = "7.6.5.32";
+        hash = "sha256-fq7IA5osMKsLx1jTA1iHZ2k972v0myJIWiwAvy4TbLM=";
+        url = "${urlPrefix}/v${majorMinorPatch fullVersion}/cudnn-${cudatoolkit.majorVersion}-linux-x64-v${fullVersion}.tgz";
+        supportedCudaVersions = [ "10.1" ];
+      }
+      rec {
+        fileVersion = "10.2";
+        fullVersion = "7.6.5.32";
+        hash = "sha256-fq7IA5osMKsLx1jTA1iHZ2k972v0myJIWiwAvy4TbLN=";
+        url = "${urlPrefix}/v${majorMinorPatch fullVersion}/cudnn-${cudatoolkit.majorVersion}-linux-x64-v${fullVersion}.tgz";
+        supportedCudaVersions = [ "10.2" ];
+      }
+    ];
+    "8.1.1" = [
+      rec {
+        fileVersion = "10.2";
+        fullVersion = "8.1.1.33";
+        hash = "sha256-Kkp7mabpv6aQ6xm7QeSVU/KnpJGls6v8rpAOFmxbbr0=";
+        url = "${urlPrefix}/v${majorMinorPatch fullVersion}/cudnn-${fileVersion}-linux-x64-v${fullVersion}.tgz";
+        supportedCudaVersions = [ "10.2" ];
+      }
+      rec {
+        fileVersion = "11.2";
+        fullVersion = "8.1.1.33";
+        hash = "sha256-mKh4TpKGLyABjSDCgbMNSgzZUfk2lPZDPM9K6cUCumo=";
+        url = "${urlPrefix}/v${majorMinorPatch fullVersion}/cudnn-${fileVersion}-linux-x64-v${fullVersion}.tgz";
+        supportedCudaVersions = [ "11.2" ];
+      }
+    ];
+    "8.3.2" = [
+      rec {
+        fileVersion = "10.2";
+        fullVersion = "8.3.2.44";
+        hash = "sha256-mKh4TpKGLyABjSDCgbMNSgzZUfk2lPZDPM9K6cUCumo=";
+        url = "${urlPrefix}/v${majorMinorPatch fullVersion}/local_installers/${fileVersion}/cudnn-linux-x86_64-${fullVersion}_cuda${fileVersion}-archive.tar.xz";
+        supportedCudaVersions = [ "10.2" ];
+      }
+      rec {
+        fileVersion = "11.5";
+        fullVersion = "8.3.2.44";
+        hash = "sha256-VQCVPAjF5dHd3P2iNPnvvdzb5DpTsm3AqCxyP6FwxFc=";
+        url = "${urlPrefix}/v${majorMinorPatch fullVersion}/local_installers/${fileVersion}/cudnn-linux-x86_64-${fullVersion}_cuda${fileVersion}-archive.tar.xz";
+        supportedCudaVersions = [ "11.0" "11.1" "11.2" "11.3" "11.4" "11.4" "11.5" "11.6" ];
+      }
+    ];
+  };
+
+  # Default attributes
+  cuDnnDefaultVersion = {
+    "10.0" = "7.4.2";
+    "10.1" = "7.6.5";
+    "10.2" = "8.3.2";
+    "11.0" = "8.3.2";
+    "11.1" = "8.3.2";
+    "11.2" = "8.3.2";
+    "11.3" = "8.3.2";
+    "11.4" = "8.3.2";
+    "11.5" = "8.3.2";
+    "11.6" = "8.3.2";
+  }.${cudaVersion};
+
+in cuDnnPackages
diff --git a/pkgs/development/libraries/science/math/cudnn/generic.nix b/pkgs/development/libraries/science/math/cudnn/generic.nix
index a5272e56ab6d5..1e9bac5efed29 100644
--- a/pkgs/development/libraries/science/math/cudnn/generic.nix
+++ b/pkgs/development/libraries/science/math/cudnn/generic.nix
@@ -1,14 +1,14 @@
-{ minCudaVersion
-, maxCudaVersion
-, mkSrc
-, version
-}:
-
 { stdenv
 , lib
-, cudatoolkit
+, zlib
+, useCudatoolkitRunfile ? false
+, cudaVersion
+, cudaMajorVersion
+, cudatoolkit # if cuda>=11: only used for .cc
+, libcublas ? null # cuda <11 doesn't ship redist packages
+, autoPatchelfHook
+, autoAddOpenGLRunpathHook
 , fetchurl
-, addOpenGLRunpath
 , # The distributed version of CUDNN includes both dynamically liked .so files,
   # as well as statically linked .a files.  However, CUDNN is quite large
   # (multiple gigabytes), so you can save some space in your nix store by
@@ -19,34 +19,57 @@
   removeStatic ? false
 }:
 
-stdenv.mkDerivation {
-  name = "cudatoolkit-${cudatoolkit.majorVersion}-cudnn-${version}";
+{ fullVersion
+, url
+, hash ? null
+, sha256 ? null
+, supportedCudaVersions ? [ ]
+}:
+
+assert (hash != null) || (sha256 != null);
+
+assert useCudatoolkitRunfile || (libcublas != null);
 
+let
+  inherit (cudatoolkit) cc;
+
+  majorMinorPatch = version: lib.concatStringsSep "." (lib.take 3 (lib.splitVersion version));
+  version = majorMinorPatch fullVersion;
+
+  cudatoolkit_root =
+    if useCudatoolkitRunfile
+    then cudatoolkit
+    else libcublas;
+in
+stdenv.mkDerivation {
+  pname = "cudatoolkit-${cudaMajorVersion}-cudnn";
   inherit version;
-  # It's often the case that the src depends on the version of cudatoolkit it's
-  # being linked against, so we pass in `cudatoolkit` as an argument to `mkSrc`.
-  src = mkSrc cudatoolkit;
 
-  nativeBuildInputs = [ addOpenGLRunpath ];
+  src = fetchurl {
+    inherit url hash sha256;
+  };
 
-  # Some cuDNN libraries depend on things in cudatoolkit, eg.
-  # libcudnn_ops_infer.so.8 tries to load libcublas.so.11. So we need to patch
-  # cudatoolkit into RPATH. See also https://github.com/NixOS/nixpkgs/blob/88a2ad974692a5c3638fcdc2c772e5770f3f7b21/pkgs/development/python-modules/jaxlib/bin.nix#L78-L98.
+  # Check and normalize Runpath against DT_NEEDED using autoPatchelf.
+  # Prepend /run/opengl-driver/lib using addOpenGLRunpath for dlopen("libcudacuda.so")
+  nativeBuildInputs = [
+    autoPatchelfHook
+    autoAddOpenGLRunpathHook
+  ];
+
+  # Used by autoPatchelfHook
+  buildInputs = [
+    cc.cc.lib # libstdc++
+    zlib
+    cudatoolkit_root
+  ];
+
+  # We used to patch Runpath here, but now we use autoPatchelfHook
   #
   # Note also that version <=8.3.0 contained a subdirectory "lib64/" but in
   # version 8.3.2 it seems to have been renamed to simply "lib/".
   installPhase = ''
     runHook preInstall
 
-    function fixRunPath {
-      p=$(patchelf --print-rpath $1)
-      patchelf --set-rpath "''${p:+$p:}${lib.makeLibraryPath [ stdenv.cc.cc cudatoolkit.lib ]}:${cudatoolkit}/lib:\$ORIGIN/" $1
-    }
-
-    for sofile in {lib,lib64}/lib*.so; do
-      fixRunPath $sofile
-    done
-
     mkdir -p $out
     cp -a include $out/include
     [ -d "lib/" ] && cp -a lib $out/lib
@@ -58,20 +81,20 @@ stdenv.mkDerivation {
     runHook postInstall
   '';
 
-  # Set RUNPATH so that libcuda in /run/opengl-driver(-32)/lib can be found.
-  # See the explanation in addOpenGLRunpath.
-  postFixup = ''
-    for lib in $out/lib/lib*.so; do
-      addOpenGLRunpath $lib
-    done
+  # Without --add-needed autoPatchelf forgets $ORIGIN on cuda>=8.0.5.
+  postFixup = lib.optionalString (lib.versionAtLeast fullVersion "8.0.5") ''
+    patchelf $out/lib/libcudnn.so --add-needed libcudnn_cnn_infer.so
   '';
 
-  propagatedBuildInputs = [
-    cudatoolkit
-  ];
-
   passthru = {
-    inherit cudatoolkit;
+    inherit useCudatoolkitRunfile;
+
+    cudatoolkit = lib.warn ''
+      cudnn.cudatoolkit passthru attribute is deprecated;
+      if your derivation uses cudnn directly, it should probably consume cudaPackages instead
+    ''
+      cudatoolkit;
+
     majorVersion = lib.versions.major version;
   };
 
@@ -81,14 +104,10 @@ stdenv.mkDerivation {
     # official version constraints (as recorded in default.nix). In some cases
     # you _may_ be able to smudge version constraints, just know that you're
     # embarking into unknown and unsupported territory when doing so.
-    broken = let cudaVer = lib.getVersion cudatoolkit; in
-      !(
-        lib.versionAtLeast cudaVer minCudaVersion
-        && lib.versionAtLeast maxCudaVersion cudaVer
-      );
-
+    broken = !(elem cudaVersion supportedCudaVersions);
     description = "NVIDIA CUDA Deep Neural Network library (cuDNN)";
     homepage = "https://developer.nvidia.com/cudnn";
+    # TODO: consider marking unfreRedistributable when not using runfile
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ mdaiter samuela ];
diff --git a/pkgs/development/libraries/science/math/cutensor/default.nix b/pkgs/development/libraries/science/math/cutensor/default.nix
deleted file mode 100644
index d0d24bd1adbe8..0000000000000
--- a/pkgs/development/libraries/science/math/cutensor/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{ callPackage
-, cudatoolkit_10_1
-, cudatoolkit_10_2
-, cudatoolkit_11
-, cudatoolkit_11_0
-, cudatoolkit_11_1
-, cudatoolkit_11_2
-, cudatoolkit_11_3
-, cudatoolkit_11_4
-, cudatoolkit_11_5
-, cudatoolkit_11_6
-}:
-
-rec {
-  cutensor_cudatoolkit_10_1 = callPackage ./generic.nix rec {
-    version = "1.2.2.5";
-    libPath = "lib/10.1";
-    cudatoolkit = cudatoolkit_10_1;
-    # 1.2.2 is compatible with CUDA 10.1, 10.2, and 11.x.
-    # See https://docs.nvidia.com/cuda/cutensor/release_notes.html#cutensor-v1-2-2.
-    hash = "sha256-lU7iK4DWuC/U3s1Ct/rq2Gr3w4F2U7RYYgpmF05bibY=";
-  };
-
-  cutensor_cudatoolkit_10_2 = cutensor_cudatoolkit_10_1.override {
-    version = "1.3.1.3";
-    libPath = "lib/10.2";
-    cudatoolkit = cudatoolkit_10_2;
-    # 1.3.1 is compatible with CUDA 10.2 and 11.x.
-    # See https://docs.nvidia.com/cuda/cutensor/release_notes.html#cutensor-v1-3-1.
-    hash = "sha256-mNlVnabB2IC3HnYY0mb06RLqQzDxN9ePGVeBy3hkBC8=";
-  };
-
-  cutensor_cudatoolkit_10 = cutensor_cudatoolkit_10_2;
-
-  cutensor_cudatoolkit_11_0 = cutensor_cudatoolkit_10_2.override {
-    libPath = "lib/11";
-    cudatoolkit = cudatoolkit_11_0;
-  };
-
-  cutensor_cudatoolkit_11_1 = cutensor_cudatoolkit_11_0.override { cudatoolkit = cudatoolkit_11_1; };
-  cutensor_cudatoolkit_11_2 = cutensor_cudatoolkit_11_0.override { cudatoolkit = cudatoolkit_11_2; };
-  cutensor_cudatoolkit_11_3 = cutensor_cudatoolkit_11_0.override { cudatoolkit = cudatoolkit_11_3; };
-  cutensor_cudatoolkit_11_4 = cutensor_cudatoolkit_11_0.override { cudatoolkit = cudatoolkit_11_4; };
-  cutensor_cudatoolkit_11_5 = cutensor_cudatoolkit_11_0.override { cudatoolkit = cudatoolkit_11_5; };
-  cutensor_cudatoolkit_11_6 = cutensor_cudatoolkit_11_0.override { cudatoolkit = cudatoolkit_11_6; };
-
-  cutensor_cudatoolkit_11 = cutensor_cudatoolkit_11_0.override { cudatoolkit = cudatoolkit_11; };
-}
diff --git a/pkgs/development/libraries/science/math/libtorch/test/default.nix b/pkgs/development/libraries/science/math/libtorch/test/default.nix
index eaea649d43402..a7940cd1db8d7 100644
--- a/pkgs/development/libraries/science/math/libtorch/test/default.nix
+++ b/pkgs/development/libraries/science/math/libtorch/test/default.nix
@@ -6,10 +6,11 @@
 , symlinkJoin
 
 , cudaSupport
-, cudatoolkit
-, cudnn
+, cudaPackages ? {}
 }:
 let
+  inherit (cudaPackages) cudatoolkit cudnn;
+
   cudatoolkit_joined = symlinkJoin {
     name = "${cudatoolkit.name}-unsplit";
     paths = [ cudatoolkit.out cudatoolkit.lib ];
diff --git a/pkgs/development/libraries/science/math/magma/default.nix b/pkgs/development/libraries/science/math/magma/default.nix
index c5960dddf5177..05d7d4fa18424 100644
--- a/pkgs/development/libraries/science/math/magma/default.nix
+++ b/pkgs/development/libraries/science/math/magma/default.nix
@@ -1,10 +1,14 @@
-{ lib, stdenv, fetchurl, cmake, gfortran, ninja, cudatoolkit, libpthreadstubs, lapack, blas }:
+{ lib, stdenv, fetchurl, cmake, gfortran, ninja, cudaPackages, libpthreadstubs, lapack, blas }:
+
+let
+  inherit (cudaPackages) cudatoolkit;
+in
 
 assert let majorIs = lib.versions.major cudatoolkit.version;
        in majorIs == "9" || majorIs == "10" || majorIs == "11";
 
 let
-  version = "2.5.4";
+  version = "2.6.2";
 
   # We define a specific set of CUDA compute capabilities here,
   # because CUDA 11 does not support compute capability 3.0. Also,
@@ -41,7 +45,7 @@ in stdenv.mkDerivation {
   inherit version;
   src = fetchurl {
     url = "https://icl.cs.utk.edu/projectsfiles/magma/downloads/magma-${version}.tar.gz";
-    sha256 = "0rrvd21hczxlm8awc9z54fj7iqpjmsb518fy32s6ghz0g90znd3p";
+    hash = "sha256-dbVU2rAJA+LRC5cskT5Q5/iMvGLzrkMrWghsfk7aCnE=";
     name = "magma-${version}.tar.gz";
   };
 
@@ -60,23 +64,6 @@ in stdenv.mkDerivation {
   enableParallelBuilding=true;
   buildFlags = [ "magma" "magma_sparse" ];
 
-  # MAGMA's default CMake setup does not care about installation. So we copy files directly.
-  installPhase = ''
-    mkdir -p $out
-    mkdir -p $out/include
-    mkdir -p $out/lib
-    mkdir -p $out/lib/pkgconfig
-    cp -a ../include/*.h $out/include
-    #cp -a sparse-iter/include/*.h $out/include
-    cp -a lib/*.so $out/lib
-    cat ../lib/pkgconfig/magma.pc.in                   | \
-    sed -e s:@INSTALL_PREFIX@:"$out":          | \
-    sed -e s:@CFLAGS@:"-I$out/include":    | \
-    sed -e s:@LIBS@:"-L$out/lib -lmagma -lmagma_sparse": | \
-    sed -e s:@MAGMA_REQUIRED@::                       \
-        > $out/lib/pkgconfig/magma.pc
-  '';
-
   meta = with lib; {
     description = "Matrix Algebra on GPU and Multicore Architectures";
     license = licenses.bsd3;
diff --git a/pkgs/development/libraries/science/math/nccl/default.nix b/pkgs/development/libraries/science/math/nccl/default.nix
index c08b5aa5851dc..41dddf2391ac2 100644
--- a/pkgs/development/libraries/science/math/nccl/default.nix
+++ b/pkgs/development/libraries/science/math/nccl/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "nccl-${version}-cuda-${cudatoolkit.majorVersion}";
-  version = "2.7.8-1";
+  version = "2.12.10-1";
 
   src = fetchFromGitHub {
     owner = "NVIDIA";
     repo = "nccl";
     rev = "v${version}";
-    sha256 = "0xxiwaw239dc9g015fka3k1nvm5zyl00dzgxnwzkang61dys9wln";
+    sha256 = "sha256-QqORzm0gD+QG+P8rId8bQn2oZsxL5YyxCIobUVs85wE=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/science/math/petsc/default.nix b/pkgs/development/libraries/science/math/petsc/default.nix
index a06df2b1950de..048f26bc7d6ad 100644
--- a/pkgs/development/libraries/science/math/petsc/default.nix
+++ b/pkgs/development/libraries/science/math/petsc/default.nix
@@ -18,11 +18,11 @@ assert petsc-withp4est -> p4est.mpiSupport;
 
 stdenv.mkDerivation rec {
   pname = "petsc";
-  version = "3.16.5";
+  version = "3.17.0";
 
   src = fetchurl {
     url = "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-${version}.tar.gz";
-    sha256 = "sha256-fehXDuuUBidS2CqDII/Cuvx3s/UVAjpMFNj/lEDmbKw=";
+    sha256 = "sha256-ltWspoThzhQliRpiDSeHc8JWEcsUQWWpOxdTEjjqr4o=";
   };
 
   mpiSupport = !withp4est || p4est.mpiSupport;
diff --git a/pkgs/development/libraries/science/math/tensorflow/bin.nix b/pkgs/development/libraries/science/math/tensorflow/bin.nix
index b57d1191933ba..e084fce9e9ecd 100644
--- a/pkgs/development/libraries/science/math/tensorflow/bin.nix
+++ b/pkgs/development/libraries/science/math/tensorflow/bin.nix
@@ -1,13 +1,16 @@
 { lib, stdenv
 , fetchurl
 , addOpenGLRunpath
-, cudaSupport ? false, symlinkJoin, cudatoolkit, cudnn
+, cudaSupport ? false, cudaPackages ? {}
+, symlinkJoin
 }:
 
 with lib;
 let
   broken = !stdenv.isLinux && !stdenv.isDarwin;
 
+  inherit (cudaPackages) cudatoolkit cudnn;
+
   tfType = if cudaSupport then "gpu" else "cpu";
 
   system =
diff --git a/pkgs/development/libraries/science/math/zn_poly/default.nix b/pkgs/development/libraries/science/math/zn_poly/default.nix
index 38d5d91e0837a..3ec97e4a288e3 100644
--- a/pkgs/development/libraries/science/math/zn_poly/default.nix
+++ b/pkgs/development/libraries/science/math/zn_poly/default.nix
@@ -3,12 +3,12 @@
 , fetchFromGitLab
 , fetchpatch
 , gmp
-, python2
+, python3
 , tune ? false # tune to hardware, impure
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.9.1";
+  version = "0.9.2";
   pname = "zn_poly";
 
   # sage has picked up the maintenance (bug fixes and building, not development)
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     owner = "sagemath";
     repo = "zn_poly";
     rev = version;
-    sha256 = "0ra5vy585bqq7g3317iw6fp44iqgqvds3j0l1va6mswimypq4vxb";
+    hash = "sha256-QBItcrrpOGj22/ShTDdfZjm63bGW2xY4c71R1q8abPE=";
   };
 
   buildInputs = [
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [
-    python2 # needed by ./configure to create the makefile
+    python3 # needed by ./configure to create the makefile
   ];
 
   # name of library file ("libzn_poly.so")
@@ -44,16 +44,6 @@ stdenv.mkDerivation rec {
     "--disable-tuning"
   ];
 
-  patches = [
-    # fix format-security by not passing variables directly to printf
-    # https://gitlab.com/sagemath/zn_poly/merge_requests/1
-    (fetchpatch {
-      name = "format-security.patch";
-      url = "https://gitlab.com/timokau/zn_poly/commit/1950900a80ec898d342b8bcafa148c8027649766.patch";
-      sha256 = "1gks9chvsfpc6sg5h3nqqfia4cgvph7jmj9dw67k7dk7kv9y0rk1";
-    })
-  ];
-
   # `make install` fails to install some header files and the lib file.
   installPhase = ''
     mkdir -p "$out/include/zn_poly"
diff --git a/pkgs/development/libraries/seasocks/default.nix b/pkgs/development/libraries/seasocks/default.nix
index fd53db0dcf919..044948a012e34 100644
--- a/pkgs/development/libraries/seasocks/default.nix
+++ b/pkgs/development/libraries/seasocks/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, python3, zlib }:
+{ lib, stdenv, fetchFromGitHub, cmake, python3, zlib, catch2 }:
 
 stdenv.mkDerivation rec {
   pname = "seasocks";
@@ -11,9 +11,15 @@ stdenv.mkDerivation rec {
     sha256 = "1f9a3mx3yjmr5qry4rc1c7mrx3348iifxm7d8sj8yd41kqnzmfv4";
   };
 
+  postPatch = ''
+    cp ${catch2}/include/catch2/catch.hpp src/test/c/catch/catch2/catch.hpp
+  '';
+
   nativeBuildInputs = [ cmake ];
   buildInputs = [ zlib python3 ];
 
+  doCheck = true;
+
   meta = with lib; {
     homepage = "https://github.com/mattgodbolt/seasocks";
     description = "Tiny embeddable C++ HTTP and WebSocket server";
diff --git a/pkgs/development/libraries/simgear/default.nix b/pkgs/development/libraries/simgear/default.nix
index c24c336c72896..2d6f6ef8d2921 100644
--- a/pkgs/development/libraries/simgear/default.nix
+++ b/pkgs/development/libraries/simgear/default.nix
@@ -4,7 +4,7 @@
 , curl
 }:
 let
-  version = "2020.3.12";
+  version = "2020.3.13";
   shortVersion = builtins.substring 0 6 version;
 in
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/flightgear/release-${shortVersion}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-W7KZzFU5qZE6tOv9YSzH3yoNi8YET2yzmThMcl23140=";
+    sha256 = "sha256-3AmQb9qLGBD+LLIrX1Fx0gi6kBxbnTkLrW0fP9ZsUeg=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/simpleitk/default.nix b/pkgs/development/libraries/simpleitk/default.nix
index c38257dadb048..9573afda0b30b 100644
--- a/pkgs/development/libraries/simpleitk/default.nix
+++ b/pkgs/development/libraries/simpleitk/default.nix
@@ -4,6 +4,8 @@ stdenv.mkDerivation rec {
   pname = "simpleitk";
   version = "2.1.1";
 
+  outputs = [ "out" "dev" ];
+
   src = fetchFromGitHub {
     owner = "SimpleITK";
     repo = "SimpleITK";
diff --git a/pkgs/development/libraries/smesh/default.nix b/pkgs/development/libraries/smesh/default.nix
index 8494799333be7..0181977873a98 100644
--- a/pkgs/development/libraries/smesh/default.nix
+++ b/pkgs/development/libraries/smesh/default.nix
@@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ninja ];
   buildInputs = [ opencascade ] ++ lib.optionals stdenv.isDarwin [ Cocoa ];
 
+  NIX_CFLAGS_COMPILE = [ "-std=c++11" ];
+
   meta = with lib; {
     description = "Extension to OCE providing advanced meshing features";
     homepage = "https://github.com/tpaviot/smesh";
diff --git a/pkgs/development/libraries/soci/default.nix b/pkgs/development/libraries/soci/default.nix
index b17fbe16655be..142081da0153a 100644
--- a/pkgs/development/libraries/soci/default.nix
+++ b/pkgs/development/libraries/soci/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   ];
 
   # Do not build static libraries
-  cmakeFlags = [ "-DSOCI_STATIC=OFF" "-DCMAKE_CXX_STANDARD=11" ];
+  cmakeFlags = [ "-DSOCI_STATIC=OFF" "-DCMAKE_CXX_STANDARD=11" "-DSOCI_TESTS=off" ];
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [
diff --git a/pkgs/development/libraries/spdlog/default.nix b/pkgs/development/libraries/spdlog/default.nix
index d4e0888ffd2ff..5a21af12e33ca 100644
--- a/pkgs/development/libraries/spdlog/default.nix
+++ b/pkgs/development/libraries/spdlog/default.nix
@@ -36,7 +36,11 @@ let
       '';
 
       doCheck = true;
-      preCheck = "export LD_LIBRARY_PATH=$(pwd)\${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH";
+      preCheck =  if stdenv.isDarwin then ''
+        export DYLD_LIBRARY_PATH="$(pwd)''${DYLD_LIBRARY_PATH:+:}$DYLD_LIBRARY_PATH"
+      '' else ''
+        export LD_LIBRARY_PATH="$(pwd)''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
+      '';
 
       meta = with lib; {
         description    = "Very fast, header only, C++ logging library";
@@ -49,8 +53,8 @@ let
 in
 {
   spdlog_1 = generic {
-    version = "1.9.2";
-    sha256 = "sha256-GSUdHtvV/97RyDKy8i+ticnSlQCubGGWHg4Oo+YAr8Y=";
+    version = "1.10.0";
+    sha256 = "sha256-c6s27lQCXKx6S1FhZ/LiKh14GnXMhZtD1doltU4Avws=";
   };
 
   spdlog_0 = generic {
diff --git a/pkgs/development/libraries/sphinxbase/default.nix b/pkgs/development/libraries/sphinxbase/default.nix
deleted file mode 100644
index 43a70c50fed46..0000000000000
--- a/pkgs/development/libraries/sphinxbase/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ lib, stdenv
-, fetchurl
-, bison
-, pkg-config
-, python27 # >= 2.6
-, swig2 # 2.0
-, multipleOutputs ? false #Uses incomplete features of nix!
-}:
-
-stdenv.mkDerivation (rec {
-  pname = "sphinxbase";
-  version = "5prealpha";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/cmusphinx/sphinxbase-${version}.tar.gz";
-    sha256 = "0vr4k8pv5a8nvq9yja7kl13b5lh0f9vha8fc8znqnm8bwmcxnazp";
-  };
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ swig2 python27 bison ];
-
-  meta = {
-    description = "Support Library for Pocketsphinx";
-    homepage = "http://cmusphinx.sourceforge.net";
-    license = lib.licenses.bsd2;
-    platforms = lib.platforms.unix;
-    maintainers = with lib.maintainers; [ ];
-  };
-
-} // (lib.optionalAttrs multipleOutputs {
-  outputs = [ "out" "lib" "headers" ];
-
-  postInstall = ''
-    mkdir -p $lib
-    cp -av $out/lib* $lib
-
-    mkdir -p $headers
-    cp -av $out/include $headers
-  '';
-}))
diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix
index 5fdf6c11d77bf..0d80a83e8ed7f 100644
--- a/pkgs/development/libraries/sqlite/default.nix
+++ b/pkgs/development/libraries/sqlite/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv, fetchurl, zlib, interactive ? false, readline, ncurses
 , python3Packages
 , enableDeserialize ? false
+, sqldiff, sqlite-analyzer
 }:
 
 with lib;
@@ -11,13 +12,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "sqlite${optionalString interactive "-interactive"}";
-  version = "3.37.2";
+  version = "3.38.2";
 
   # nixpkgs-update: no auto update
   # NB! Make sure to update ./tools.nix src (in the same directory).
   src = fetchurl {
     url = "https://sqlite.org/2022/sqlite-autoconf-${archiveVersion version}.tar.gz";
-    sha256 = "sha256-QImo2bRnU3s/JG8he4TNduALHRqXH+WsoeMOIw5Gstg=";
+    sha256 = "sha256-55dKoUMLrWkKXp95pu5chJKtqCadxnWHWtD7dH18raQ=";
   };
 
   outputs = [ "bin" "dev" "out" ];
@@ -85,6 +86,7 @@ stdenv.mkDerivation rec {
 
   passthru.tests = {
     inherit (python3Packages) sqlalchemy;
+    inherit sqldiff sqlite-analyzer;
   };
 
   meta = {
diff --git a/pkgs/development/libraries/sqlite/tools.nix b/pkgs/development/libraries/sqlite/tools.nix
index d8d3735fe3d85..ebb887ffa0177 100644
--- a/pkgs/development/libraries/sqlite/tools.nix
+++ b/pkgs/development/libraries/sqlite/tools.nix
@@ -4,12 +4,12 @@ let
   archiveVersion = import ./archive-version.nix lib;
   mkTool = { pname, makeTarget, description, homepage }: stdenv.mkDerivation rec {
     inherit pname;
-    version = "3.37.2";
+    version = "3.38.2";
 
     # nixpkgs-update: no auto update
     src = assert version == sqlite.version; fetchurl {
       url = "https://sqlite.org/2022/sqlite-src-${archiveVersion version}.zip";
-      sha256 = "sha256-SGdwtNX4i1uw26VA3W7hdjBn11Od/uGKfGb+m7A9Ftk=";
+      sha256 = "sha256-x8DwcKM4yS6wiAWQXAXyVPpG0cTdo1SKAkdPb7VnMpo=";
     };
 
     nativeBuildInputs = [ unzip ];
diff --git a/pkgs/development/libraries/sundials/default.nix b/pkgs/development/libraries/sundials/default.nix
index 75c238a430c42..0b3dff1ebd83c 100644
--- a/pkgs/development/libraries/sundials/default.nix
+++ b/pkgs/development/libraries/sundials/default.nix
@@ -59,6 +59,19 @@ stdenv.mkDerivation rec {
   )]
   ;
 
+  # disable stackprotector on aarch64-darwin for now
+  # https://github.com/NixOS/nixpkgs/issues/127608
+  #
+  # build error:
+  #
+  # /private/tmp/nix-build-sundials-5.7.0.drv-0/ccD2dUtR.s:21:15: error: index must be an integer in range [-256, 255].
+  #         ldr     x0, [x0, ___stack_chk_guard];momd
+  #                          ^
+  # /private/tmp/nix-build-sundials-5.7.0.drv-0/ccD2dUtR.s:46:15: error: index must be an integer in range [-256, 255].
+  #         ldr     x0, [x0, ___stack_chk_guard];momd
+
+  hardeningDisable = lib.optionals (stdenv.isAarch64 && stdenv.isDarwin) [ "stackprotector" ];
+
   doCheck = true;
   checkTarget = "test";
 
diff --git a/pkgs/development/libraries/symengine/default.nix b/pkgs/development/libraries/symengine/default.nix
index cbe5e13a7007e..5cb2e21178630 100644
--- a/pkgs/development/libraries/symengine/default.nix
+++ b/pkgs/development/libraries/symengine/default.nix
@@ -5,6 +5,7 @@
 , flint
 , mpfr
 , libmpc
+, catch
 }:
 
 stdenv.mkDerivation rec {
@@ -18,6 +19,10 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-5KpxBusJCuwrfFWHbrRKlH6Ic7YivYqz2m+BCbNfZp0=";
   };
 
+  postPatch = ''
+    cp ${catch}/include/catch/catch.hpp symengine/utilities/catch/catch.hpp
+  '';
+
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [ gmp flint mpfr libmpc ];
diff --git a/pkgs/development/libraries/talloc/default.nix b/pkgs/development/libraries/talloc/default.nix
index 07d830f00ce78..cb7af61a63ed2 100644
--- a/pkgs/development/libraries/talloc/default.nix
+++ b/pkgs/development/libraries/talloc/default.nix
@@ -21,11 +21,12 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     pkg-config
-    fixDarwinDylibNames
     python3
     wafHook
     docbook-xsl-nons
     docbook_xml_dtd_42
+  ] ++ lib.optionals stdenv.isDarwin [
+    fixDarwinDylibNames
   ];
 
   buildInputs = [
diff --git a/pkgs/development/libraries/taskflow/default.nix b/pkgs/development/libraries/taskflow/default.nix
new file mode 100644
index 0000000000000..29760cdb94bd2
--- /dev/null
+++ b/pkgs/development/libraries/taskflow/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, substituteAll
+, doctest
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "taskflow";
+  version = "3.3.0";
+
+  src = fetchFromGitHub {
+    owner = "taskflow";
+    repo = "taskflow";
+    rev = "v${version}";
+    hash = "sha256-UfXGupxgtowIt3BnIVWwim3rTE57TT1C9TCx9LVyN34=";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./unvendor-doctest.patch;
+      inherit doctest;
+    })
+  ];
+
+  postPatch = ''
+    rm -r 3rd-party
+
+    # tries to use x86 intrinsics on aarch64-darwin
+    sed -i '/^#if __has_include (<immintrin\.h>)/,/^#endif/d' taskflow/utility/os.hpp
+  '';
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  doCheck = true;
+
+  meta = {
+    description = "General-purpose Parallel and Heterogeneous Task Programming System";
+    homepage = "https://taskflow.github.io/";
+    changelog = let
+      release = lib.replaceStrings ["."] ["-"] version;
+    in "https://taskflow.github.io/taskflow/release-${release}.html";
+    license = lib.licenses.mit;
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/libraries/taskflow/unvendor-doctest.patch b/pkgs/development/libraries/taskflow/unvendor-doctest.patch
new file mode 100644
index 0000000000000..85f2e1fcff98e
--- /dev/null
+++ b/pkgs/development/libraries/taskflow/unvendor-doctest.patch
@@ -0,0 +1,21 @@
+diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt
+index 3397d798..8277191e 100644
+--- a/unittests/CMakeLists.txt
++++ b/unittests/CMakeLists.txt
+@@ -1,6 +1,6 @@
+ enable_testing()
+ 
+-include(${TF_3RD_PARTY_DIR}/doctest/doctest.cmake)
++include(@doctest@/lib/cmake/doctest/doctest.cmake)
+ 
+ list(APPEND TF_UNITTESTS 
+   utility 
+@@ -24,7 +24,7 @@ list(APPEND TF_UNITTESTS
+ foreach(unittest IN LISTS TF_UNITTESTS)
+   add_executable(${unittest} ${unittest}.cpp)
+   target_link_libraries(${unittest} ${PROJECT_NAME} tf::default_settings)
+-  target_include_directories(${unittest} PRIVATE ${TF_3RD_PARTY_DIR}/doctest)
++  target_include_directories(${unittest} PRIVATE @doctest@/include/doctest)
+   doctest_discover_tests(${unittest})
+ endforeach()
+ 
diff --git a/pkgs/development/libraries/tdlib/default.nix b/pkgs/development/libraries/tdlib/default.nix
index 4dedc13db2a85..0196e62fb977a 100644
--- a/pkgs/development/libraries/tdlib/default.nix
+++ b/pkgs/development/libraries/tdlib/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "tdlib";
-  version = "1.8.1";
+  version = "1.8.3";
 
   src = fetchFromGitHub {
     owner = "tdlib";
     repo = "td";
     # https://github.com/tdlib/td/issues/1790
-    rev = "92c2a9c4e521df720abeaa9872e1c2b797d5c93f";
-    sha256 = "ZoKsgdkS78mptfbxkkV4pgcgJEaWwKZWK2cvmxgJN4E=";
+    rev = "054a823c1a812ee3e038f702c6d8ba3e6974be9c";
+    sha256 = "sha256-YlvIGR3Axej0nfcGBQ5lwwYVWsLgqFrYgOxoNubYMPM=";
   };
 
   buildInputs = [ gperf openssl readline zlib ];
diff --git a/pkgs/development/libraries/template-glib/default.nix b/pkgs/development/libraries/template-glib/default.nix
index 375a7c3237a58..23d2e8907ff1c 100644
--- a/pkgs/development/libraries/template-glib/default.nix
+++ b/pkgs/development/libraries/template-glib/default.nix
@@ -13,8 +13,8 @@ stdenv.mkDerivation {
     sha256 = "nsm3HgTU9csU91XveQYxzQtFwGA+Ecg2/Hz9niaM0Ho=";
   };
 
-  buildInputs = [ meson ninja pkg-config gettext flex bison vala glib gtk-doc docbook_xsl docbook_xml_dtd_43 ];
-  nativeBuildInputs = [ glib gobject-introspection ];
+  nativeBuildInputs = [ meson ninja pkg-config gettext flex bison vala glib gtk-doc docbook_xsl docbook_xml_dtd_43 gobject-introspection ];
+  buildInputs = [ glib ];
 
   mesonFlags = [
     "-Denable_gtk_doc=true"
diff --git a/pkgs/development/libraries/tomlc99/default.nix b/pkgs/development/libraries/tomlc99/default.nix
new file mode 100644
index 0000000000000..5ed4fd07b4720
--- /dev/null
+++ b/pkgs/development/libraries/tomlc99/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "tomlc99";
+  version = "0.pre+date=2022-04-04";
+
+  src = fetchFromGitHub {
+    owner = "cktan";
+    repo = pname;
+    rev = "4e7b082ccc44316f212597ae5b09a35cf9329e69";
+    hash = "sha256-R9OBMG/aUa80Qw/zqaks63F9ybQcThfOYRsHP4t1Gv8=";
+  };
+
+  dontConfigure = true;
+
+  installFlags = [
+    "prefix=${placeholder "out"}"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/cktan/tomlc99";
+    description = "TOML v1.0.0-compliant library written in C99";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/pkgs/development/libraries/tomlcpp/0001-missing-headers.diff b/pkgs/development/libraries/tomlcpp/0001-missing-headers.diff
new file mode 100644
index 0000000000000..3559facf3b54b
--- /dev/null
+++ b/pkgs/development/libraries/tomlcpp/0001-missing-headers.diff
@@ -0,0 +1,15 @@
+diff -Naur old-source/tomlcpp.hpp new-source/tomlcpp.hpp
+--- tomlcpp/tomlcpp.hpp	1969-12-31 21:00:01.000000000 -0300
++++ tomlcpp/tomlcpp.hpp	2022-04-14 12:50:14.269775437 -0300
+@@ -25,6 +25,11 @@
+ #ifndef TOML_HPP
+ #define TOML_HPP
+ 
++#include <memory>
++#include <string>
++#include <utility>
++#include <vector>
++
+ struct toml_table_t;
+ struct toml_array_t;
+ 
diff --git a/pkgs/development/libraries/tomlcpp/default.nix b/pkgs/development/libraries/tomlcpp/default.nix
new file mode 100644
index 0000000000000..96559f04541ba
--- /dev/null
+++ b/pkgs/development/libraries/tomlcpp/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "tomlcpp";
+  version = "0.pre+date=2022-05-01";
+
+  src = fetchFromGitHub {
+    owner = "cktan";
+    repo = pname;
+    rev = "59fcc6dc89fb3f4130a2865e41e1fa5b8c502e45";
+    hash = "sha256-Uc6R5KnGIZXY0EJgFM4Xi7Jtxcu6l8yGh5xgFZPoJDM=";
+  };
+
+  patches = [
+    # Self-explaining
+    ./0001-missing-headers.diff
+  ];
+
+  dontConfigure = true;
+
+  installFlags = [
+    "prefix=${placeholder "out"}"
+  ];
+
+  meta = with lib;{
+    homepage = "https://github.com/cktan/tomlcpp";
+    description = "No fanfare TOML C++ Library";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/pkgs/development/libraries/tpm2-tss/default.nix b/pkgs/development/libraries/tpm2-tss/default.nix
index 5ab4ff3b413f3..34a545d7996a1 100644
--- a/pkgs/development/libraries/tpm2-tss/default.nix
+++ b/pkgs/development/libraries/tpm2-tss/default.nix
@@ -2,6 +2,7 @@
 , autoreconfHook, autoconf-archive, pkg-config, doxygen, perl
 , openssl, json_c, curl, libgcrypt
 , cmocka, uthash, ibm-sw-tpm2, iproute2, procps, which
+, shadow
 }:
 let
   # Avoid a circular dependency on Linux systems (systemd depends on tpm2-tss,
@@ -14,17 +15,18 @@ in
 
 stdenv.mkDerivation rec {
   pname = "tpm2-tss";
-  version = "3.0.3";
+  version = "3.2.0";
 
   src = fetchFromGitHub {
     owner = "tpm2-software";
     repo = pname;
     rev = version;
-    sha256 = "106yhsjwjadxsl9dqxywg287mdwsksman02hdalhav18vcnvnlpj";
+    sha256 = "1jijxnvjcsgz5yw4i9fj7ycdnnz90r3l0zicpwinswrw47ac3yy5";
   };
 
   nativeBuildInputs = [
     autoreconfHook autoconf-archive pkg-config doxygen perl
+    shadow
   ];
 
   # cmocka is checked / used(?) in the configure script
@@ -57,6 +59,8 @@ stdenv.mkDerivation rec {
       --replace '@PREFIX@' $out/lib/
     substituteInPlace ./test/unit/tctildr-dl.c \
       --replace '@PREFIX@' $out/lib
+    substituteInPlace ./configure.ac \
+      --replace 'm4_esyscmd_s([git describe --tags --always --dirty])' '${version}'
   '';
 
   configureFlags = lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [
@@ -85,6 +89,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/tpm2-software/tpm2-tss";
     license = licenses.bsd2;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ delroth ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/libraries/umockdev/default.nix b/pkgs/development/libraries/umockdev/default.nix
index 286f5ccc3fcfb..fbf5a71bb4b1a 100644
--- a/pkgs/development/libraries/umockdev/default.nix
+++ b/pkgs/development/libraries/umockdev/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "umockdev";
-  version = "0.17.7";
+  version = "0.17.8";
 
   outputs = [ "bin" "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "https://github.com/martinpitt/umockdev/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-BdZCoW3QHM4Oue4bpuSFsuwIU1vsZ5pjqVv9TfGNC7U=";
+    sha256 = "sha256-s3zeWJxw5ohUtsv4NZGKcdP8khEYzIXycbBrAzdnVoU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/unixODBCDrivers/default.nix b/pkgs/development/libraries/unixODBCDrivers/default.nix
index 9b4173a6da139..40ce639659380 100644
--- a/pkgs/development/libraries/unixODBCDrivers/default.nix
+++ b/pkgs/development/libraries/unixODBCDrivers/default.nix
@@ -21,7 +21,7 @@
 
     meta = with lib; {
       description = "Official PostgreSQL ODBC Driver";
-      homepage =  "https://odbc.postgresql.org/";
+      homepage = "https://odbc.postgresql.org/";
       license = licenses.lgpl2;
       platforms = platforms.linux;
     };
@@ -62,7 +62,7 @@
 
     meta = with lib; {
       description = "MariaDB ODBC database driver";
-      homepage =  "https://downloads.mariadb.org/connector-odbc/";
+      homepage = "https://downloads.mariadb.org/connector-odbc/";
       license = licenses.gpl2;
       platforms = platforms.linux ++ platforms.darwin;
     };
@@ -89,7 +89,7 @@
     };
 
     meta = with lib; {
-      description = "MariaDB ODBC database driver";
+      description = "MySQL ODBC database driver";
       homepage = "https://dev.mysql.com/downloads/connector/odbc/";
       license = licenses.gpl2;
       platforms = platforms.linux;
@@ -174,4 +174,47 @@
       maintainers = with maintainers; [ spencerjanssen ];
     };
   };
+
+  redshift = stdenv.mkDerivation rec {
+    pname = "redshift-odbc";
+    version = "1.4.49.1000";
+
+    src = fetchurl {
+      url = "https://s3.amazonaws.com/redshift-downloads/drivers/odbc/${version}/AmazonRedshiftODBC-64-bit-${version}-1.x86_64.deb";
+      sha256 = "sha256-r5HvsZjB7+x+ClxtWoONkE1/NAbz90NbHfzxC6tf7jA=";
+    };
+
+    nativeBuildInputs = [ dpkg ];
+
+    unpackPhase = ''
+      dpkg -x $src src
+      cd src
+    '';
+
+    # `unixODBC` is loaded with `dlopen`, so `autoPatchElfHook` cannot see it, and `patchELF` phase would strip the manual patchelf. Thus:
+    # - Manually patchelf with `unixODCB` libraries
+    # - Disable automatic `patchELF` phase
+    installPhase = ''
+      mkdir -p $out/lib
+      cp opt/amazon/redshiftodbc/lib/64/* $out/lib
+      patchelf --set-rpath ${unixODBC}/lib/ $out/lib/libamazonredshiftodbc64.so
+    '';
+
+    dontPatchELF = true;
+
+    buildInputs = [ unixODBC ];
+
+    passthru = {
+      fancyName = "Amazon Redshift (x64)";
+      driver = "lib/libamazonredshiftodbc64.so";
+    };
+
+    meta = with lib; {
+      description = "Amazon Redshift ODBC driver";
+      homepage = "https://docs.aws.amazon.com/redshift/latest/mgmt/configure-odbc-connection.html";
+      license = licenses.unfree;
+      platforms = platforms.linux;
+      maintainers = with maintainers; [ sir4ur0n ];
+    };
+  };
 }
diff --git a/pkgs/development/libraries/valhalla/default.nix b/pkgs/development/libraries/valhalla/default.nix
index b3d61e6efd726..dded351d3105a 100644
--- a/pkgs/development/libraries/valhalla/default.nix
+++ b/pkgs/development/libraries/valhalla/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config
 , zlib, curl, protobuf, prime-server, boost, sqlite, libspatialite
-, luajit, geos, python3, zeromq }:
+, luajit, geos39, python3, zeromq }:
 
 stdenv.mkDerivation rec {
   pname = "valhalla";
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [
     zlib curl protobuf prime-server boost sqlite libspatialite
-    luajit geos python3 zeromq
+    luajit geos39 python3 zeromq
   ];
 
   cmakeFlags = [
diff --git a/pkgs/development/libraries/vapoursynth/default.nix b/pkgs/development/libraries/vapoursynth/default.nix
index f97723bc65431..b78db16731689 100644
--- a/pkgs/development/libraries/vapoursynth/default.nix
+++ b/pkgs/development/libraries/vapoursynth/default.nix
@@ -8,13 +8,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "vapoursynth";
-  version = "R57";
+  version = "R58";
 
   src = fetchFromGitHub {
     owner  = "vapoursynth";
     repo   = "vapoursynth";
     rev    = version;
-    sha256 = "sha256-tPQ1SOIpFevOYzL9a8Lc5+dv2egVX1CY3km8yWVv+Sk=";
+    sha256 = "sha256-LIjNfyfpyvE+Ec6f4aGzRA4ZGoWPFhjtUw4yrenDsUQ=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/vigra/default.nix b/pkgs/development/libraries/vigra/default.nix
index a4371e7d1a545..32b97f8ea2d3c 100644
--- a/pkgs/development/libraries/vigra/default.nix
+++ b/pkgs/development/libraries/vigra/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchurl
 , boost
 , cmake
 , fftw
@@ -20,25 +19,17 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "vigra";
-  version = "1.11.1";
+  version = "unstable-2022-01-11";
 
   src = fetchFromGitHub {
     owner = "ukoethe";
     repo = "vigra";
-    rev = "Version-${lib.replaceChars ["."] ["-"] version}";
-    sha256 = "sha256-tD6tdoT4mWBtzkn4Xv3nNIkBQmeqNqzI1AVxUbP76Mk=";
+    rev = "093d57d15c8c237adf1704d96daa6393158ce299";
+    sha256 = "sha256-pFANoT00Wkh1/Dyd2x75IVTfyaoVA7S86tafUSr29Og=";
   };
 
   NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR";
 
-  # Fixes compilation with clang (on darwin) see https://github.com/ukoethe/vigra/issues/414
-  patches =
-    let clangPatch = fetchurl {
-      url = "https://github.com/ukoethe/vigra/commit/81958d302494e137f98a8b1d7869841532f90388.patch";
-      sha256 = "1i1w6smijgb5z8bg9jaq84ccy00k2sxm87s37lgjpyix901gjlgi";
-    };
-    in [ clangPatch ];
-
   nativeBuildInputs = [ cmake ];
   buildInputs = [
     boost
@@ -59,9 +50,6 @@ stdenv.mkDerivation rec {
     ++ lib.optionals (stdenv.hostPlatform.system == "x86_64-linux")
     [ "-DCMAKE_CXX_FLAGS=-fPIC" "-DCMAKE_C_FLAGS=-fPIC" ];
 
-  # fails with "./test_watersheds3d: error while loading shared libraries: libvigraimpex.so.11: cannot open shared object file: No such file or directory"
-  doCheck = false;
-
   meta = with lib; {
     description = "Novel computer vision C++ library with customizable algorithms and data structures";
     homepage = "https://hci.iwr.uni-heidelberg.de/vigra";
diff --git a/pkgs/development/libraries/wasilibc/default.nix b/pkgs/development/libraries/wasilibc/default.nix
index e8436f9e9565a..9448041c5e767 100644
--- a/pkgs/development/libraries/wasilibc/default.nix
+++ b/pkgs/development/libraries/wasilibc/default.nix
@@ -2,16 +2,18 @@
 
 stdenv.mkDerivation {
   pname = "wasilibc";
-  version = "unstable-2021-09-23";
+  version = "unstable-2022-04-12";
 
   src = buildPackages.fetchFromGitHub {
     owner = "WebAssembly";
     repo = "wasi-libc";
-    rev = "ad5133410f66b93a2381db5b542aad5e0964db96";
-    hash = "sha256-RiIClVXrb18jF9qCt+5iALHPCZKYcnad7JsILHBV0pA=";
+    rev = "a279514a6ef30cd8ee1469345b33172fcbc8d52d";
+    sha256 = "0a9ldas8p7jg7jlkhb9wdiw141z7vfz6p18mnmxnnnna7bp1y3fz";
     fetchSubmodules = true;
   };
 
+  outputs = [ "out" "dev" "share" ];
+
   # clang-13: error: argument unused during compilation: '-rtlib=compiler-rt' [-Werror,-Wunused-command-line-argument]
   postPatch = ''
     substituteInPlace Makefile \
@@ -19,21 +21,24 @@ stdenv.mkDerivation {
   '';
 
   preBuild = ''
-    export NIX_CFLAGS_COMPILE="-I$(pwd)/sysroot/include $NIX_CFLAGS_COMPILE"
+    export SYSROOT_LIB=${builtins.placeholder "out"}/lib
+    export SYSROOT_INC=${builtins.placeholder "dev"}/include
+    export SYSROOT_SHARE=${builtins.placeholder "share"}/share
+    mkdir -p "$SYSROOT_LIB" "$SYSROOT_INC" "$SYSROOT_SHARE"
+    makeFlagsArray+=(
+      "SYSROOT_LIB:=$SYSROOT_LIB"
+      "SYSROOT_INC:=$SYSROOT_INC"
+      "SYSROOT_SHARE:=$SYSROOT_SHARE"
+    )
   '';
 
-  makeFlags = [
-    "WASM_CC=${stdenv.cc.targetPrefix}cc"
-    "WASM_NM=${stdenv.cc.targetPrefix}nm"
-    "WASM_AR=${stdenv.cc.targetPrefix}ar"
-    "INSTALL_DIR=${placeholder "out"}"
-  ];
-
   enableParallelBuilding = true;
 
-  postInstall = ''
-    mv $out/lib/*/* $out/lib
-    ln -s $out/share/wasm32-wasi/undefined-symbols.txt $out/lib/wasi.imports
+  # We just build right into the install paths, per the `preBuild`.
+  dontInstall = true;
+
+  preFixup = ''
+    ln -s $share/share/undefined-symbols.txt $out/lib/wasi.imports
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix
index afa8c63490a65..d8f4b72a2feef 100644
--- a/pkgs/development/libraries/webkitgtk/default.nix
+++ b/pkgs/development/libraries/webkitgtk/default.nix
@@ -65,7 +65,7 @@
 
 stdenv.mkDerivation rec {
   pname = "webkitgtk";
-  version = "2.34.6";
+  version = "2.36.0";
 
   outputs = [ "out" "dev" ];
 
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://webkitgtk.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "sha256-a8j9A0qtBDKiRZzk/H7iWtZaSSTGGL+Nk7UrDBqEwfY=";
+    sha256 = "sha256-uHfMofEFI19d1Xx6wrLCvjxraR/0RPk5JcclTPFWxk0=";
   };
 
   patches = lib.optionals stdenv.isLinux [
diff --git a/pkgs/development/libraries/wxwidgets/wxGTK28.nix b/pkgs/development/libraries/wxwidgets/wxGTK28.nix
index 19a57d68e15bb..b577e52482038 100644
--- a/pkgs/development/libraries/wxwidgets/wxGTK28.nix
+++ b/pkgs/development/libraries/wxwidgets/wxGTK28.nix
@@ -17,8 +17,6 @@
 , withMesa ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms
 }:
 
-assert withMesa -> libGLU != null && libGL != null;
-
 stdenv.mkDerivation rec {
   pname = "wxGTK";
   version = "2.8.12.1";
diff --git a/pkgs/development/libraries/wxwidgets/wxGTK29.nix b/pkgs/development/libraries/wxwidgets/wxGTK29.nix
index d5bef77202f15..097cce6109cb5 100644
--- a/pkgs/development/libraries/wxwidgets/wxGTK29.nix
+++ b/pkgs/development/libraries/wxwidgets/wxGTK29.nix
@@ -22,7 +22,6 @@
 , setfile
 }:
 
-assert withMesa -> libGLU != null && libGL != null;
 stdenv.mkDerivation rec {
   pname = "wxGTK";
   version = "2.9.5";
diff --git a/pkgs/development/libraries/wxwidgets/wxGTK30.nix b/pkgs/development/libraries/wxwidgets/wxGTK30.nix
index 115453303870f..6157786a5d041 100644
--- a/pkgs/development/libraries/wxwidgets/wxGTK30.nix
+++ b/pkgs/development/libraries/wxwidgets/wxGTK30.nix
@@ -28,7 +28,6 @@
 assert withGtk2 -> (!withWebKit);
 
 let
-  inherit (gst_all_1) gstreamer gst-plugins-base;
   gtk = if withGtk2 then gtk2 else gtk3;
 in
 stdenv.mkDerivation rec {
@@ -47,8 +46,8 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    gstreamer
-    gst-plugins-base
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
     gtk
     libSM
     libXinerama
diff --git a/pkgs/development/libraries/wxwidgets/wxGTK31.nix b/pkgs/development/libraries/wxwidgets/wxGTK31.nix
index 31d59e24fd840..5bce6250c74fa 100644
--- a/pkgs/development/libraries/wxwidgets/wxGTK31.nix
+++ b/pkgs/development/libraries/wxwidgets/wxGTK31.nix
@@ -35,8 +35,6 @@
 assert withGtk2 -> (!withWebKit);
 
 let
-  inherit (gnome2) GConf;
-  inherit (gst_all_1) gst-plugins-base gstreamer;
   gtk = if withGtk2 then gtk2 else gtk3;
 in
 stdenv.mkDerivation rec {
@@ -59,8 +57,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [
-    gst-plugins-base
-    gstreamer
+    gst_all_1.gst-plugins-base
+    gst_all_1.gstreamer
   ]
   ++ lib.optionals (!stdenv.isDarwin) [
     gtk
@@ -71,7 +69,7 @@ stdenv.mkDerivation rec {
     xorgproto
   ]
   ++ lib.optionals withGtk2 [
-    GConf
+    gnome2.GConf
   ]
   ++ lib.optional withMesa libGLU
   ++ lib.optional (withWebKit && !stdenv.isDarwin) webkitgtk
diff --git a/pkgs/development/libraries/wxwidgets/wxmac30.nix b/pkgs/development/libraries/wxwidgets/wxmac30.nix
index e1f732929cecb..73bf013452a51 100644
--- a/pkgs/development/libraries/wxwidgets/wxmac30.nix
+++ b/pkgs/development/libraries/wxwidgets/wxmac30.nix
@@ -7,13 +7,15 @@
 , libpng
 , libtiff
 , zlib
-, darwin
+, AGL
+, Cocoa
+, Kernel
+, WebKit
+, derez
+, rez
+, setfile
 }:
 
-let
-  inherit (darwin.apple_sdk.frameworks) AGL Cocoa Kernel WebKit;
-  inherit (darwin.stubs) derez rez setfile;
-in
 stdenv.mkDerivation rec {
   pname = "wxmac";
   version = "3.0.5.1";
diff --git a/pkgs/development/libraries/xgboost/default.nix b/pkgs/development/libraries/xgboost/default.nix
index b9f35d407b39e..7d50d2b53b1d6 100644
--- a/pkgs/development/libraries/xgboost/default.nix
+++ b/pkgs/development/libraries/xgboost/default.nix
@@ -6,9 +6,8 @@
 , gtest
 , doCheck ? true
 , cudaSupport ? config.cudaSupport or false
-, cudatoolkit
 , ncclSupport ? false
-, nccl
+, cudaPackages
 , llvmPackages
 }:
 
@@ -28,11 +27,12 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ] ++ lib.optional stdenv.isDarwin llvmPackages.openmp;
 
-  buildInputs = [ gtest ] ++ lib.optional cudaSupport cudatoolkit
-                ++ lib.optional ncclSupport nccl;
+  buildInputs = [ gtest ] ++ lib.optional cudaSupport cudaPackages.cudatoolkit
+                ++ lib.optional ncclSupport cudaPackages.nccl;
 
   cmakeFlags = lib.optionals doCheck [ "-DGOOGLE_TEST=ON" ]
-    ++ lib.optionals cudaSupport [ "-DUSE_CUDA=ON" "-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/cc" ]
+    ++ lib.optionals cudaSupport [ "-DUSE_CUDA=ON" "-DCUDA_HOST_COMPILER=${cudaPackages.cudatoolkit.cc}/bin/cc" ]
+    ++ lib.optionals (cudaSupport && lib.versionAtLeast cudaPackages.cudatoolkit.version "11.4.0") [ "-DBUILD_WITH_CUDA_CUB=ON" ]
     ++ lib.optionals ncclSupport [ "-DUSE_NCCL=ON" ];
 
   inherit doCheck;
diff --git a/pkgs/development/libraries/zeroc-ice/3.6.nix b/pkgs/development/libraries/zeroc-ice/3.6.nix
deleted file mode 100644
index e8082e50447ae..0000000000000
--- a/pkgs/development/libraries/zeroc-ice/3.6.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ stdenv, lib, fetchFromGitHub
-, mcpp, bzip2, expat, openssl, db5
-, darwin, libiconv, Security
-, zeroc-ice # to share meta
-, cpp11 ? false
-}:
-
-stdenv.mkDerivation rec {
-  pname = "zeroc-ice";
-  version = "3.6.5";
-
-  src = fetchFromGitHub {
-    owner = "zeroc-ice";
-    repo = "ice";
-    rev = "v${version}";
-    sha256 = "073h7v1f2sw77cr1a6xxa5l9j547pz24sxa9qdjc4zki0ivcnq15";
-  };
-
-  buildInputs = [ mcpp bzip2 expat openssl db5 ]
-    ++ lib.optionals stdenv.isDarwin [ darwin.cctools libiconv Security ];
-
-  postUnpack = ''
-    sourceRoot=$sourceRoot/cpp
-  '';
-
-  prePatch = lib.optionalString stdenv.isDarwin ''
-    substituteInPlace config/Make.rules.Darwin \
-        --replace xcrun ""
-  '';
-
-  patches = [
-    # Fixes compilation warning about uninitialied variables (in test code)
-    ./uninitialized-variable-warning.patch
-  ];
-
-  preBuild = ''
-    makeFlagsArray+=(
-      "prefix=$out"
-      "OPTIMIZE=yes"
-      "USR_DIR_INSTALL=yes"
-      "CONFIGS=${if cpp11 then "cpp11-shared" else "shared"}"
-      "SKIP=slice2py" # provided by a separate package
-    )
-  '';
-
-  # cannot find -lIceXML (linking bin/transformdb)
-  enableParallelBuilding = false;
-
-  outputs = [ "out" "bin" "dev" ];
-
-  postInstall = ''
-    mkdir -p $bin $dev/share
-    mv $out/bin $bin
-    mv $out/share/Ice-* $dev/share/ice
-    rm -rf $out/share/slice
-  '';
-
-  inherit (zeroc-ice) meta;
-}
diff --git a/pkgs/development/libraries/zeroc-ice/default.nix b/pkgs/development/libraries/zeroc-ice/default.nix
index fcd836348556f..9a1861f60440a 100644
--- a/pkgs/development/libraries/zeroc-ice/default.nix
+++ b/pkgs/development/libraries/zeroc-ice/default.nix
@@ -3,6 +3,7 @@
 , darwin, libiconv, Security
 , python3 # for tests only
 , cpp11 ? false
+, fetchpatch
 }:
 
 let
@@ -32,6 +33,18 @@ in stdenv.mkDerivation rec {
     sha256 = "0zc8gmlzl2f38m1fj6pv2vm8ka7fkszd6hx2lb8gfv65vn3m4sk4";
   };
 
+  patches = [
+    # Fixes for openssl 3.0 / glibc-2.34.
+    (fetchpatch {
+      url = "https://github.com/zeroc-ice/ice/commit/7204b31a082a10cd481c1f31dbb6184ec699160d.patch";
+      sha256 = "sha256-RN8kQrvWRu1oXB7UV7DkYbZ8A0VyJYGArx6ikovwefo=";
+    })
+    (fetchpatch {
+      url = "https://github.com/zeroc-ice/ice/commit/358e7fea00383d55d1c19d38a3bbb64aca803aeb.patch";
+      sha256 = "sha256-ntrTO6qHB7dw398BRdAyJQUfVYW3iEfzUaBYoWWOEDs=";
+    })
+  ];
+
   buildInputs = [ zeroc_mcpp bzip2 expat libedit lmdb openssl ]
     ++ lib.optionals stdenv.isDarwin [ darwin.cctools libiconv Security ];
 
diff --git a/pkgs/development/libraries/zeroc-ice/uninitialized-variable-warning.patch b/pkgs/development/libraries/zeroc-ice/uninitialized-variable-warning.patch
deleted file mode 100644
index 878dee26bb83b..0000000000000
--- a/pkgs/development/libraries/zeroc-ice/uninitialized-variable-warning.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/test/Glacier2/dynamicFiltering/TestControllerI.h b/test/Glacier2/dynamicFiltering/TestControllerI.h
-index 7e21639..1279200 100644
---- a/test/Glacier2/dynamicFiltering/TestControllerI.h
-+++ b/test/Glacier2/dynamicFiltering/TestControllerI.h
-@@ -21,13 +21,12 @@ struct SessionTuple
- {
-     Glacier2::SessionPrx session;
-     Glacier2::SessionControlPrx sessionControl;
--    bool configured;
-+    bool configured = false;
-
-     SessionTuple() {}
-     SessionTuple(Glacier2::SessionPrx s, Glacier2::SessionControlPrx control):
-         session(s),
--        sessionControl(control),
--        configured(false)
-+        sessionControl(control)
-     {}
-
-     SessionTuple&
diff --git a/pkgs/development/libraries/zlib/CVE-2018-25032-1.patch b/pkgs/development/libraries/zlib/CVE-2018-25032-1.patch
new file mode 100644
index 0000000000000..1ade02654e58f
--- /dev/null
+++ b/pkgs/development/libraries/zlib/CVE-2018-25032-1.patch
@@ -0,0 +1,346 @@
+From 5c44459c3b28a9bd3283aaceab7c615f8020c531 Mon Sep 17 00:00:00 2001
+From: Mark Adler <madler@alumni.caltech.edu>
+Date: Tue, 17 Apr 2018 22:09:22 -0700
+Subject: [PATCH 1/2] Fix a bug that can crash deflate on some input when using
+ Z_FIXED.
+
+This bug was reported by Danilo Ramos of Eideticom, Inc. It has
+lain in wait 13 years before being found! The bug was introduced
+in zlib 1.2.2.2, with the addition of the Z_FIXED option. That
+option forces the use of fixed Huffman codes. For rare inputs with
+a large number of distant matches, the pending buffer into which
+the compressed data is written can overwrite the distance symbol
+table which it overlays. That results in corrupted output due to
+invalid distances, and can result in out-of-bound accesses,
+crashing the application.
+
+The fix here combines the distance buffer and literal/length
+buffers into a single symbol buffer. Now three bytes of pending
+buffer space are opened up for each literal or length/distance
+pair consumed, instead of the previous two bytes. This assures
+that the pending buffer cannot overwrite the symbol table, since
+the maximum fixed code compressed length/distance is 31 bits, and
+since there are four bytes of pending space for every three bytes
+of symbol space.
+---
+ deflate.c | 74 ++++++++++++++++++++++++++++++++++++++++---------------
+ deflate.h | 25 +++++++++----------
+ trees.c   | 50 +++++++++++--------------------------
+ 3 files changed, 79 insertions(+), 70 deletions(-)
+
+diff --git a/deflate.c b/deflate.c
+index 425babc..19cba87 100644
+--- a/deflate.c
++++ b/deflate.c
+@@ -255,11 +255,6 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
+     int wrap = 1;
+     static const char my_version[] = ZLIB_VERSION;
+ 
+-    ushf *overlay;
+-    /* We overlay pending_buf and d_buf+l_buf. This works since the average
+-     * output size for (length,distance) codes is <= 24 bits.
+-     */
+-
+     if (version == Z_NULL || version[0] != my_version[0] ||
+         stream_size != sizeof(z_stream)) {
+         return Z_VERSION_ERROR;
+@@ -329,9 +324,47 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
+ 
+     s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */
+ 
+-    overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);
+-    s->pending_buf = (uchf *) overlay;
+-    s->pending_buf_size = (ulg)s->lit_bufsize * (sizeof(ush)+2L);
++    /* We overlay pending_buf and sym_buf. This works since the average size
++     * for length/distance pairs over any compressed block is assured to be 31
++     * bits or less.
++     *
++     * Analysis: The longest fixed codes are a length code of 8 bits plus 5
++     * extra bits, for lengths 131 to 257. The longest fixed distance codes are
++     * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest
++     * possible fixed-codes length/distance pair is then 31 bits total.
++     *
++     * sym_buf starts one-fourth of the way into pending_buf. So there are
++     * three bytes in sym_buf for every four bytes in pending_buf. Each symbol
++     * in sym_buf is three bytes -- two for the distance and one for the
++     * literal/length. As each symbol is consumed, the pointer to the next
++     * sym_buf value to read moves forward three bytes. From that symbol, up to
++     * 31 bits are written to pending_buf. The closest the written pending_buf
++     * bits gets to the next sym_buf symbol to read is just before the last
++     * code is written. At that time, 31*(n-2) bits have been written, just
++     * after 24*(n-2) bits have been consumed from sym_buf. sym_buf starts at
++     * 8*n bits into pending_buf. (Note that the symbol buffer fills when n-1
++     * symbols are written.) The closest the writing gets to what is unread is
++     * then n+14 bits. Here n is lit_bufsize, which is 16384 by default, and
++     * can range from 128 to 32768.
++     *
++     * Therefore, at a minimum, there are 142 bits of space between what is
++     * written and what is read in the overlain buffers, so the symbols cannot
++     * be overwritten by the compressed data. That space is actually 139 bits,
++     * due to the three-bit fixed-code block header.
++     *
++     * That covers the case where either Z_FIXED is specified, forcing fixed
++     * codes, or when the use of fixed codes is chosen, because that choice
++     * results in a smaller compressed block than dynamic codes. That latter
++     * condition then assures that the above analysis also covers all dynamic
++     * blocks. A dynamic-code block will only be chosen to be emitted if it has
++     * fewer bits than a fixed-code block would for the same set of symbols.
++     * Therefore its average symbol length is assured to be less than 31. So
++     * the compressed data for a dynamic block also cannot overwrite the
++     * symbols from which it is being constructed.
++     */
++
++    s->pending_buf = (uchf *) ZALLOC(strm, s->lit_bufsize, 4);
++    s->pending_buf_size = (ulg)s->lit_bufsize * 4;
+ 
+     if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL ||
+         s->pending_buf == Z_NULL) {
+@@ -340,8 +373,12 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
+         deflateEnd (strm);
+         return Z_MEM_ERROR;
+     }
+-    s->d_buf = overlay + s->lit_bufsize/sizeof(ush);
+-    s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;
++    s->sym_buf = s->pending_buf + s->lit_bufsize;
++    s->sym_end = (s->lit_bufsize - 1) * 3;
++    /* We avoid equality with lit_bufsize*3 because of wraparound at 64K
++     * on 16 bit machines and because stored blocks are restricted to
++     * 64K-1 bytes.
++     */
+ 
+     s->level = level;
+     s->strategy = strategy;
+@@ -552,7 +589,7 @@ int ZEXPORT deflatePrime (strm, bits, value)
+ 
+     if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
+     s = strm->state;
+-    if ((Bytef *)(s->d_buf) < s->pending_out + ((Buf_size + 7) >> 3))
++    if (s->sym_buf < s->pending_out + ((Buf_size + 7) >> 3))
+         return Z_BUF_ERROR;
+     do {
+         put = Buf_size - s->bi_valid;
+@@ -1113,7 +1150,6 @@ int ZEXPORT deflateCopy (dest, source)
+ #else
+     deflate_state *ds;
+     deflate_state *ss;
+-    ushf *overlay;
+ 
+ 
+     if (deflateStateCheck(source) || dest == Z_NULL) {
+@@ -1133,8 +1169,7 @@ int ZEXPORT deflateCopy (dest, source)
+     ds->window = (Bytef *) ZALLOC(dest, ds->w_size, 2*sizeof(Byte));
+     ds->prev   = (Posf *)  ZALLOC(dest, ds->w_size, sizeof(Pos));
+     ds->head   = (Posf *)  ZALLOC(dest, ds->hash_size, sizeof(Pos));
+-    overlay = (ushf *) ZALLOC(dest, ds->lit_bufsize, sizeof(ush)+2);
+-    ds->pending_buf = (uchf *) overlay;
++    ds->pending_buf = (uchf *) ZALLOC(dest, ds->lit_bufsize, 4);
+ 
+     if (ds->window == Z_NULL || ds->prev == Z_NULL || ds->head == Z_NULL ||
+         ds->pending_buf == Z_NULL) {
+@@ -1148,8 +1183,7 @@ int ZEXPORT deflateCopy (dest, source)
+     zmemcpy(ds->pending_buf, ss->pending_buf, (uInt)ds->pending_buf_size);
+ 
+     ds->pending_out = ds->pending_buf + (ss->pending_out - ss->pending_buf);
+-    ds->d_buf = overlay + ds->lit_bufsize/sizeof(ush);
+-    ds->l_buf = ds->pending_buf + (1+sizeof(ush))*ds->lit_bufsize;
++    ds->sym_buf = ds->pending_buf + ds->lit_bufsize;
+ 
+     ds->l_desc.dyn_tree = ds->dyn_ltree;
+     ds->d_desc.dyn_tree = ds->dyn_dtree;
+@@ -1925,7 +1959,7 @@ local block_state deflate_fast(s, flush)
+         FLUSH_BLOCK(s, 1);
+         return finish_done;
+     }
+-    if (s->last_lit)
++    if (s->sym_next)
+         FLUSH_BLOCK(s, 0);
+     return block_done;
+ }
+@@ -2056,7 +2090,7 @@ local block_state deflate_slow(s, flush)
+         FLUSH_BLOCK(s, 1);
+         return finish_done;
+     }
+-    if (s->last_lit)
++    if (s->sym_next)
+         FLUSH_BLOCK(s, 0);
+     return block_done;
+ }
+@@ -2131,7 +2165,7 @@ local block_state deflate_rle(s, flush)
+         FLUSH_BLOCK(s, 1);
+         return finish_done;
+     }
+-    if (s->last_lit)
++    if (s->sym_next)
+         FLUSH_BLOCK(s, 0);
+     return block_done;
+ }
+@@ -2170,7 +2204,7 @@ local block_state deflate_huff(s, flush)
+         FLUSH_BLOCK(s, 1);
+         return finish_done;
+     }
+-    if (s->last_lit)
++    if (s->sym_next)
+         FLUSH_BLOCK(s, 0);
+     return block_done;
+ }
+diff --git a/deflate.h b/deflate.h
+index 23ecdd3..d4cf1a9 100644
+--- a/deflate.h
++++ b/deflate.h
+@@ -217,7 +217,7 @@ typedef struct internal_state {
+     /* Depth of each subtree used as tie breaker for trees of equal frequency
+      */
+ 
+-    uchf *l_buf;          /* buffer for literals or lengths */
++    uchf *sym_buf;        /* buffer for distances and literals/lengths */
+ 
+     uInt  lit_bufsize;
+     /* Size of match buffer for literals/lengths.  There are 4 reasons for
+@@ -239,13 +239,8 @@ typedef struct internal_state {
+      *   - I can't count above 4
+      */
+ 
+-    uInt last_lit;      /* running index in l_buf */
+-
+-    ushf *d_buf;
+-    /* Buffer for distances. To simplify the code, d_buf and l_buf have
+-     * the same number of elements. To use different lengths, an extra flag
+-     * array would be necessary.
+-     */
++    uInt sym_next;      /* running index in sym_buf */
++    uInt sym_end;       /* symbol table full when sym_next reaches this */
+ 
+     ulg opt_len;        /* bit length of current block with optimal trees */
+     ulg static_len;     /* bit length of current block with static trees */
+@@ -325,20 +320,22 @@ void ZLIB_INTERNAL _tr_stored_block OF((deflate_state *s, charf *buf,
+ 
+ # define _tr_tally_lit(s, c, flush) \
+   { uch cc = (c); \
+-    s->d_buf[s->last_lit] = 0; \
+-    s->l_buf[s->last_lit++] = cc; \
++    s->sym_buf[s->sym_next++] = 0; \
++    s->sym_buf[s->sym_next++] = 0; \
++    s->sym_buf[s->sym_next++] = cc; \
+     s->dyn_ltree[cc].Freq++; \
+-    flush = (s->last_lit == s->lit_bufsize-1); \
++    flush = (s->sym_next == s->sym_end); \
+    }
+ # define _tr_tally_dist(s, distance, length, flush) \
+   { uch len = (uch)(length); \
+     ush dist = (ush)(distance); \
+-    s->d_buf[s->last_lit] = dist; \
+-    s->l_buf[s->last_lit++] = len; \
++    s->sym_buf[s->sym_next++] = dist; \
++    s->sym_buf[s->sym_next++] = dist >> 8; \
++    s->sym_buf[s->sym_next++] = len; \
+     dist--; \
+     s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \
+     s->dyn_dtree[d_code(dist)].Freq++; \
+-    flush = (s->last_lit == s->lit_bufsize-1); \
++    flush = (s->sym_next == s->sym_end); \
+   }
+ #else
+ # define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c)
+diff --git a/trees.c b/trees.c
+index 4f4a650..decaeb7 100644
+--- a/trees.c
++++ b/trees.c
+@@ -416,7 +416,7 @@ local void init_block(s)
+ 
+     s->dyn_ltree[END_BLOCK].Freq = 1;
+     s->opt_len = s->static_len = 0L;
+-    s->last_lit = s->matches = 0;
++    s->sym_next = s->matches = 0;
+ }
+ 
+ #define SMALLEST 1
+@@ -948,7 +948,7 @@ void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last)
+ 
+         Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ",
+                 opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,
+-                s->last_lit));
++                s->sym_next / 3));
+ 
+         if (static_lenb <= opt_lenb) opt_lenb = static_lenb;
+ 
+@@ -1017,8 +1017,9 @@ int ZLIB_INTERNAL _tr_tally (s, dist, lc)
+     unsigned dist;  /* distance of matched string */
+     unsigned lc;    /* match length-MIN_MATCH or unmatched char (if dist==0) */
+ {
+-    s->d_buf[s->last_lit] = (ush)dist;
+-    s->l_buf[s->last_lit++] = (uch)lc;
++    s->sym_buf[s->sym_next++] = dist;
++    s->sym_buf[s->sym_next++] = dist >> 8;
++    s->sym_buf[s->sym_next++] = lc;
+     if (dist == 0) {
+         /* lc is the unmatched char */
+         s->dyn_ltree[lc].Freq++;
+@@ -1033,30 +1034,7 @@ int ZLIB_INTERNAL _tr_tally (s, dist, lc)
+         s->dyn_ltree[_length_code[lc]+LITERALS+1].Freq++;
+         s->dyn_dtree[d_code(dist)].Freq++;
+     }
+-
+-#ifdef TRUNCATE_BLOCK
+-    /* Try to guess if it is profitable to stop the current block here */
+-    if ((s->last_lit & 0x1fff) == 0 && s->level > 2) {
+-        /* Compute an upper bound for the compressed length */
+-        ulg out_length = (ulg)s->last_lit*8L;
+-        ulg in_length = (ulg)((long)s->strstart - s->block_start);
+-        int dcode;
+-        for (dcode = 0; dcode < D_CODES; dcode++) {
+-            out_length += (ulg)s->dyn_dtree[dcode].Freq *
+-                (5L+extra_dbits[dcode]);
+-        }
+-        out_length >>= 3;
+-        Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ",
+-               s->last_lit, in_length, out_length,
+-               100L - out_length*100L/in_length));
+-        if (s->matches < s->last_lit/2 && out_length < in_length/2) return 1;
+-    }
+-#endif
+-    return (s->last_lit == s->lit_bufsize-1);
+-    /* We avoid equality with lit_bufsize because of wraparound at 64K
+-     * on 16 bit machines and because stored blocks are restricted to
+-     * 64K-1 bytes.
+-     */
++    return (s->sym_next == s->sym_end);
+ }
+ 
+ /* ===========================================================================
+@@ -1069,13 +1047,14 @@ local void compress_block(s, ltree, dtree)
+ {
+     unsigned dist;      /* distance of matched string */
+     int lc;             /* match length or unmatched char (if dist == 0) */
+-    unsigned lx = 0;    /* running index in l_buf */
++    unsigned sx = 0;    /* running index in sym_buf */
+     unsigned code;      /* the code to send */
+     int extra;          /* number of extra bits to send */
+ 
+-    if (s->last_lit != 0) do {
+-        dist = s->d_buf[lx];
+-        lc = s->l_buf[lx++];
++    if (s->sym_next != 0) do {
++        dist = s->sym_buf[sx++] & 0xff;
++        dist += (unsigned)(s->sym_buf[sx++] & 0xff) << 8;
++        lc = s->sym_buf[sx++];
+         if (dist == 0) {
+             send_code(s, lc, ltree); /* send a literal byte */
+             Tracecv(isgraph(lc), (stderr," '%c' ", lc));
+@@ -1100,11 +1079,10 @@ local void compress_block(s, ltree, dtree)
+             }
+         } /* literal or match pair ? */
+ 
+-        /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */
+-        Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,
+-               "pendingBuf overflow");
++        /* Check that the overlay between pending_buf and sym_buf is ok: */
++        Assert(s->pending < s->lit_bufsize + sx, "pendingBuf overflow");
+ 
+-    } while (lx < s->last_lit);
++    } while (sx < s->sym_next);
+ 
+     send_code(s, END_BLOCK, ltree);
+ }
+-- 
+2.33.1
+
diff --git a/pkgs/development/libraries/zlib/CVE-2018-25032-2.patch b/pkgs/development/libraries/zlib/CVE-2018-25032-2.patch
new file mode 100644
index 0000000000000..dadc904a07fbb
--- /dev/null
+++ b/pkgs/development/libraries/zlib/CVE-2018-25032-2.patch
@@ -0,0 +1,27 @@
+From 4346a16853e19b45787ce933666026903fb8f3f8 Mon Sep 17 00:00:00 2001
+From: Mark Adler <madler@alumni.caltech.edu>
+Date: Tue, 17 Apr 2018 22:44:41 -0700
+Subject: [PATCH 2/2] Assure that the number of bits for deflatePrime() is
+ valid.
+
+---
+ deflate.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/deflate.c b/deflate.c
+index 19cba87..23aef18 100644
+--- a/deflate.c
++++ b/deflate.c
+@@ -589,7 +589,8 @@ int ZEXPORT deflatePrime (strm, bits, value)
+ 
+     if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
+     s = strm->state;
+-    if (s->sym_buf < s->pending_out + ((Buf_size + 7) >> 3))
++    if (bits < 0 || bits > 16 ||
++        s->sym_buf < s->pending_out + ((Buf_size + 7) >> 3))
+         return Z_BUF_ERROR;
+     do {
+         put = Buf_size - s->bi_valid;
+-- 
+2.33.1
+
diff --git a/pkgs/development/libraries/zlib/default.nix b/pkgs/development/libraries/zlib/default.nix
index 48603000c9034..9b9938746caf6 100644
--- a/pkgs/development/libraries/zlib/default.nix
+++ b/pkgs/development/libraries/zlib/default.nix
@@ -23,18 +23,16 @@ assert splitStaticOutput -> static;
 
 stdenv.mkDerivation (rec {
   pname = "zlib";
-  version = "1.2.11";
+  version = "1.2.12";
 
   src = fetchurl {
     urls =
       [ "https://www.zlib.net/fossils/zlib-${version}.tar.gz"  # stable archive path
         "mirror://sourceforge/libpng/zlib/${version}/zlib-${version}.tar.gz"
       ];
-    sha256 = "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1";
+    sha256 = "91844808532e5ce316b3c010929493c0244f3d37593afd6de04f71821d5136d9";
   };
 
-  patches = lib.optional stdenv.hostPlatform.isCygwin ./disable-cygwin-widechar.patch;
-
   postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
     substituteInPlace configure \
       --replace '/usr/bin/libtool' '${stdenv.cc.targetPrefix}ar' \
@@ -42,6 +40,10 @@ stdenv.mkDerivation (rec {
       --replace 'ARFLAGS="-o"' 'ARFLAGS="-r"'
   '';
 
+  patches = [
+    ./fix-configure-issue-cross.patch
+  ];
+
   outputs = [ "out" "dev" ]
     ++ lib.optional splitStaticOutput "static";
   setOutputFlags = false;
diff --git a/pkgs/development/libraries/zlib/disable-cygwin-widechar.patch b/pkgs/development/libraries/zlib/disable-cygwin-widechar.patch
deleted file mode 100644
index 3de4978c30661..0000000000000
--- a/pkgs/development/libraries/zlib/disable-cygwin-widechar.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/gzguts.h b/gzguts.h
-index 990a4d2..6378d46 100644
---- a/gzguts.h
-+++ b/gzguts.h
-@@ -39,7 +39,7 @@
- #  include <io.h>
- #endif
- 
--#if defined(_WIN32) || defined(__CYGWIN__)
-+#if defined(_WIN32)
- #  define WIDECHAR
- #endif
- 
diff --git a/pkgs/development/libraries/zlib/fix-configure-issue-cross.patch b/pkgs/development/libraries/zlib/fix-configure-issue-cross.patch
new file mode 100644
index 0000000000000..0136071eabe79
--- /dev/null
+++ b/pkgs/development/libraries/zlib/fix-configure-issue-cross.patch
@@ -0,0 +1,24 @@
+From 05796d3d8d5546cf1b4dfe2cd72ab746afae505d Mon Sep 17 00:00:00 2001
+From: Mark Adler <madler@alumni.caltech.edu>
+Date: Mon, 28 Mar 2022 18:34:10 -0700
+Subject: [PATCH] Fix configure issue that discarded provided CC definition.
+
+---
+ configure | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/configure b/configure
+index 52ff4a04e..3fa3e8618 100755
+--- a/configure
++++ b/configure
+@@ -174,7 +174,10 @@ if test -z "$CC"; then
+   else
+     cc=${CROSS_PREFIX}cc
+   fi
++else
++  cc=${CC}
+ fi
++
+ cflags=${CFLAGS-"-O3"}
+ # to force the asm version use: CFLAGS="-O3 -DASMV" ./configure
+ case "$cc" in
diff --git a/pkgs/development/lua-modules/overrides.nix b/pkgs/development/lua-modules/overrides.nix
index 656695d691094..b659bd9382ada 100644
--- a/pkgs/development/lua-modules/overrides.nix
+++ b/pkgs/development/lua-modules/overrides.nix
@@ -295,7 +295,8 @@ with prev;
 
       buildInputs = [ pkgs.libuv ];
 
-      nativeBuildInputs = [ pkgs.pkg-config pkgs.fixDarwinDylibNames pkgs.cmake ];
+      nativeBuildInputs = [ pkgs.pkg-config pkgs.cmake ]
+        ++ pkgs.lib.optionals pkgs.stdenv.isDarwin [ pkgs.fixDarwinDylibNames ];
   };
 
   luv = prev.lib.overrideLuarocks prev.luv (drv: {
diff --git a/pkgs/development/misc/breakpad/default.nix b/pkgs/development/misc/breakpad/default.nix
index 7fb2b329667d4..045e2e8f9a6e4 100644
--- a/pkgs/development/misc/breakpad/default.nix
+++ b/pkgs/development/misc/breakpad/default.nix
@@ -20,6 +20,11 @@ in stdenv.mkDerivation {
     ln -s ${lss} $sourceRoot/src/third_party/lss
   '';
 
+  postPatch = ''
+    substituteInPlace src/client/linux/handler/exception_handler.cc \
+      --replace "max(16384" "max(static_cast<long>(16384)"
+  '';
+
   meta = with lib; {
     description = "An open-source multi-platform crash reporting system";
     homepage = "https://chromium.googlesource.com/breakpad";
diff --git a/pkgs/development/misc/datafusion/default.nix b/pkgs/development/misc/datafusion/default.nix
new file mode 100644
index 0000000000000..88859b9761299
--- /dev/null
+++ b/pkgs/development/misc/datafusion/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, lib
+, rustPlatform
+, fetchFromGitHub
+}:
+let
+  pname = "datafusion-cli";
+  version = "unstable-2022-04-08";
+in
+rustPlatform.buildRustPackage {
+  inherit pname version;
+
+  # TODO the crate has been yanked so not the best source
+  # the repo is a workspace with a lock inside a subdirectory, making
+  # compilation from github source not straightforward
+  # re-evaluate strategy on release after 7.0.0
+  src = fetchFromGitHub {
+    owner = "apache";
+    repo = "arrow-datafusion";
+    rev = "9cbde6d0e30fd29f59b0a16e309bdb0843cc7c64";
+    sha256 = "sha256-XXd9jvWVivOBRS0PVOU9F4RQ6MrS/q78JF4S6Htd67w=";
+  };
+  sourceRoot = "source/datafusion-cli";
+
+  cargoSha256 = "sha256-Q0SjVofl1+sex15sSU9s7PgKeHG2b0gJPSqz7YZFOVs=";
+
+  meta = with lib; {
+    description = "cli for Apache Arrow DataFusion";
+    homepage = "https://arrow.apache.org/datafusion";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ happysalada ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/misc/haskell/hasura/ekg-core.nix b/pkgs/development/misc/haskell/hasura/ekg-core.nix
index 6a9b1157021e2..2d1b62bc16c78 100644
--- a/pkgs/development/misc/haskell/hasura/ekg-core.nix
+++ b/pkgs/development/misc/haskell/hasura/ekg-core.nix
@@ -1,17 +1,17 @@
 # This has been automatically generated by the script
 # ./update.sh.  This should not be changed by hand.
 { mkDerivation, async, atomic-primops, base, containers, criterion
-, fetchgit, generic-random, ghc-prim, hashable, hspec
-, hspec-smallcheck, HUnit, inspection-testing, lib, markdown-unlit
-, primitive, QuickCheck, smallcheck, text, unordered-containers
+, fetchgit, ghc-prim, hashable, hspec, hspec-smallcheck, HUnit
+, inspection-testing, lib, markdown-unlit, primitive, QuickCheck
+, smallcheck, text, unordered-containers
 }:
 mkDerivation {
   pname = "ekg-core";
   version = "0.1.1.7";
   src = fetchgit {
     url = "https://github.com/hasura/ekg-core.git";
-    sha256 = "1s58kjg1kbhsyfyj0zwhnnws9hg9zwj9jylpwicg54yi78w962ys";
-    rev = "9fc8f94685c149a909b66bad4167455d8ae1002c";
+    sha256 = "1syb87iav3fgj6vqjh1izdvw4g0l4mngcyhvcg2nazisw3l685z6";
+    rev = "b0cdc337ca2a52e392d427916ba3e28246b396c0";
     fetchSubmodules = true;
   };
   libraryHaskellDepends = [
@@ -19,10 +19,9 @@ mkDerivation {
     primitive text unordered-containers
   ];
   testHaskellDepends = [
-    async atomic-primops base containers generic-random ghc-prim
-    hashable hspec hspec-smallcheck HUnit inspection-testing
-    markdown-unlit primitive QuickCheck smallcheck text
-    unordered-containers
+    async atomic-primops base containers ghc-prim hashable hspec
+    hspec-smallcheck HUnit inspection-testing markdown-unlit primitive
+    QuickCheck smallcheck text unordered-containers
   ];
   testToolDepends = [ markdown-unlit ];
   benchmarkHaskellDepends = [ base criterion ];
diff --git a/pkgs/development/misc/haskell/hasura/ekg-json.nix b/pkgs/development/misc/haskell/hasura/ekg-json.nix
index e115e2c40b9d2..bb71aef27970d 100644
--- a/pkgs/development/misc/haskell/hasura/ekg-json.nix
+++ b/pkgs/development/misc/haskell/hasura/ekg-json.nix
@@ -1,6 +1,6 @@
 # This has been automatically generated by the script
 # ./update.sh.  This should not be changed by hand.
-{ mkDerivation, aeson, base, ekg-core, fetchgit, lib, text
+{ mkDerivation, aeson, base, ekg-core, fetchgit, hspec, lib, text
 , unordered-containers, vector
 }:
 mkDerivation {
@@ -8,13 +8,16 @@ mkDerivation {
   version = "0.1.0.7";
   src = fetchgit {
     url = "https://github.com/hasura/ekg-json.git";
-    sha256 = "1yf9x7gh66q27c3wv5m00ijf2qpiwm53jjlhrj2yc1glv684wf4v";
-    rev = "f25b9ddb7aae18059ef707a5ce30d6a54a63db13";
+    sha256 = "17kd2f1695dmf5l95iz1w86hapc4f1gfrd0ld3ivffa2q5vxbi70";
+    rev = "d1c5031b49a5559cf4b4f6beb0238b872890a48c";
     fetchSubmodules = true;
   };
   libraryHaskellDepends = [
     aeson base ekg-core text unordered-containers vector
   ];
+  testHaskellDepends = [
+    aeson base ekg-core hspec text unordered-containers
+  ];
   homepage = "https://github.com/tibbe/ekg-json";
   description = "JSON encoding of ekg metrics";
   license = lib.licenses.bsd3;
diff --git a/pkgs/development/misc/haskell/hasura/graphql-engine.nix b/pkgs/development/misc/haskell/hasura/graphql-engine.nix
index d5d8e693ab41a..7e44cffe8939c 100644
--- a/pkgs/development/misc/haskell/hasura/graphql-engine.nix
+++ b/pkgs/development/misc/haskell/hasura/graphql-engine.nix
@@ -1,39 +1,44 @@
 # This has been automatically generated by the script
 # ./update.sh.  This should not be changed by hand.
-{ mkDerivation, aeson, aeson-casing, ansi-wl-pprint, asn1-encoding
-, asn1-types, async, attoparsec, attoparsec-iso8601, auto-update
-, base, base16-bytestring, base64-bytestring, binary, byteorder
-, bytestring, case-insensitive, ci-info, connection, containers
-, cron, cryptonite, data-default-class, data-has, deepseq
-, dependent-map, dependent-sum, directory, ekg-core, ekg-json
-, exceptions, fast-logger, fetchgit, file-embed, filepath
-, ghc-heap-view, graphql-parser, hashable, hashable-time, hspec
-, hspec-core, hspec-expectations, hspec-expectations-lifted
-, http-api-data, http-client, http-client-tls, http-conduit
+{ mkDerivation, aeson, aeson-casing, aeson-qq, ansi-wl-pprint
+, asn1-encoding, asn1-types, async, attoparsec, attoparsec-iso8601
+, auto-update, base, base16-bytestring, base64-bytestring, binary
+, byteorder, bytestring, case-insensitive, ci-info, conduit
+, connection, containers, cron, cryptonite, data-default-class
+, data-has, deepseq, dependent-map, dependent-sum, directory
+, either, ekg-core, ekg-json, exceptions, fast-logger, fetchgit
+, file-embed, filepath, ghc-heap-view, graphql-parser, hashable
+, hashable-time, haskell-src-meta, hedgehog, hspec, hspec-core
+, hspec-discover, hspec-expectations, hspec-expectations-lifted
+, hspec-hedgehog, hspec-wai, hspec-wai-json, http-api-data
+, http-client, http-client-tls, http-conduit, http-media
 , http-types, immortal, insert-ordered-containers, jose
-, kan-extensions, lens, lens-aeson, lib, lifted-async, lifted-base
-, list-t, memory, mime-types, mmorph, monad-control, monad-loops
-, monad-validate, mtl, mustache, mysql, mysql-simple
-, natural-transformation, network, network-uri, odbc
-, optparse-applicative, pem, pg-client, postgresql-binary
-, postgresql-libpq, pretty-simple, process, profunctors, psqueues
-, QuickCheck, quickcheck-instances, random, regex-tdfa
-, resource-pool, retry, safe, safe-exceptions, scientific
-, semialign, semigroups, semver, shakespeare, some, split
-, Spock-core, stm, stm-containers, tagged, template-haskell, text
-, text-builder, text-conversions, these, time, tls, transformers
-, transformers-base, unix, unordered-containers, uri-encode
+, kan-extensions, kriti-lang, lens, lens-aeson, lib, libyaml
+, lifted-async, lifted-base, list-t, memory, mime-types, mmorph
+, monad-control, monad-logger, monad-loops, monad-validate, mtl
+, mustache, mysql, mysql-simple, natural-transformation, network
+, network-uri, odbc, openapi3, optparse-applicative
+, optparse-generic, parsec, pem, pg-client, postgresql-binary
+, postgresql-libpq, postgresql-simple, pretty-simple, process
+, profunctors, psqueues, QuickCheck, quickcheck-instances, random
+, regex-tdfa, resource-pool, resourcet, retry, safe
+, safe-exceptions, scientific, semialign, semigroups, semver
+, shakespeare, some, split, Spock-core, stm, stm-containers, tagged
+, template-haskell, text, text-builder, text-conversions, th-lift
+, th-lift-instances, these, time, tls, tmp-postgres, transformers
+, transformers-base, typed-process, unix, unliftio-core
+, unordered-containers, uri-bytestring, uri-encode, url
 , utf8-string, uuid, validation, vector, vector-instances, wai
-, warp, websockets, wreq, x509, x509-store, x509-system
-, x509-validation, yaml, zlib
+, wai-extra, warp, websockets, witch, wreq, x509, x509-store
+, x509-system, x509-validation, yaml, zlib
 }:
 mkDerivation {
   pname = "graphql-engine";
   version = "1.0.0";
   src = fetchgit {
     url = "https://github.com/hasura/graphql-engine.git";
-    sha256 = "04ns40wk1760pxi18pyqzgrk8h28mw6402zkjc1g52ny6afchs05";
-    rev = "8be851c2a1326b2caada13a3c43becd2e848db6c";
+    sha256 = "1r19qw2wxzmngb6sjpin3dk6i5r491brcb0ir4g8kw9d0ic90hpy";
+    rev = "1349e6cdcfdef4b06593b48fe8e2e51b9f9c94e9";
     fetchSubmodules = true;
   };
   postUnpack = "sourceRoot+=/server; echo source root reset to $sourceRoot";
@@ -44,22 +49,23 @@ mkDerivation {
     attoparsec attoparsec-iso8601 auto-update base base16-bytestring
     base64-bytestring binary byteorder bytestring case-insensitive
     ci-info connection containers cron cryptonite data-default-class
-    data-has deepseq dependent-map dependent-sum directory ekg-core
-    ekg-json exceptions fast-logger file-embed filepath ghc-heap-view
-    graphql-parser hashable hashable-time http-api-data http-client
-    http-client-tls http-conduit http-types immortal
-    insert-ordered-containers jose kan-extensions lens lens-aeson
-    lifted-async lifted-base list-t memory mime-types mmorph
-    monad-control monad-loops monad-validate mtl mustache mysql
-    mysql-simple network network-uri odbc optparse-applicative pem
-    pg-client postgresql-binary postgresql-libpq pretty-simple process
-    profunctors psqueues QuickCheck quickcheck-instances random
-    regex-tdfa resource-pool retry safe-exceptions scientific semialign
-    semigroups semver shakespeare some split Spock-core stm
-    stm-containers tagged template-haskell text text-builder
-    text-conversions these time tls transformers transformers-base unix
-    unordered-containers uri-encode utf8-string uuid validation vector
-    vector-instances wai warp websockets wreq x509 x509-store
+    data-has deepseq dependent-map dependent-sum directory either
+    ekg-core ekg-json exceptions fast-logger file-embed filepath
+    ghc-heap-view graphql-parser hashable hashable-time http-api-data
+    http-client http-client-tls http-conduit http-media http-types
+    immortal insert-ordered-containers jose kan-extensions kriti-lang
+    lens lens-aeson lifted-async lifted-base list-t memory mime-types
+    mmorph monad-control monad-loops monad-validate mtl mustache mysql
+    mysql-simple network network-uri odbc openapi3 optparse-applicative
+    optparse-generic parsec pem pg-client postgresql-binary
+    postgresql-libpq pretty-simple process profunctors psqueues
+    QuickCheck quickcheck-instances random regex-tdfa resource-pool
+    retry safe-exceptions scientific semialign semigroups semver
+    shakespeare some split Spock-core stm stm-containers tagged
+    template-haskell text text-builder text-conversions these time tls
+    transformers transformers-base unix unordered-containers
+    uri-bytestring uri-encode url utf8-string uuid validation vector
+    vector-instances wai warp websockets witch wreq x509 x509-store
     x509-system x509-validation yaml zlib
   ];
   executableHaskellDepends = [
@@ -67,18 +73,32 @@ mkDerivation {
     text-conversions time unix
   ];
   testHaskellDepends = [
-    aeson base bytestring containers cron dependent-map dependent-sum
-    graphql-parser hspec hspec-core hspec-expectations
-    hspec-expectations-lifted http-client http-client-tls http-types
-    insert-ordered-containers jose kan-extensions lens lifted-base
-    mmorph monad-control mtl natural-transformation network-uri
-    optparse-applicative pg-client process QuickCheck safe scientific
-    split template-haskell text time transformers-base
-    unordered-containers vector
+    aeson aeson-casing aeson-qq async base bytestring case-insensitive
+    conduit containers cron dependent-map dependent-sum ekg-core
+    exceptions graphql-parser haskell-src-meta hedgehog hspec
+    hspec-core hspec-discover hspec-expectations
+    hspec-expectations-lifted hspec-hedgehog hspec-wai hspec-wai-json
+    http-client http-client-tls http-conduit http-types
+    insert-ordered-containers jose kan-extensions lens lens-aeson
+    libyaml lifted-base mmorph monad-control monad-logger mtl mysql
+    mysql-simple natural-transformation network network-uri odbc
+    optparse-applicative parsec pg-client postgresql-libpq
+    postgresql-simple process QuickCheck resource-pool resourcet safe
+    safe-exceptions scientific shakespeare split Spock-core stm
+    template-haskell text text-conversions th-lift th-lift-instances
+    time tmp-postgres transformers transformers-base typed-process unix
+    unliftio-core unordered-containers utf8-string vector wai wai-extra
+    warp websockets yaml
   ];
+  testToolDepends = [ hspec-discover ];
   doCheck = false;
   homepage = "https://www.hasura.io";
   description = "GraphQL API over Postgres";
   license = lib.licenses.asl20;
   maintainers = with lib.maintainers; [ lassulus ];
+
+  # Needs to be updated for aeson-2.0
+  # https://github.com/hasura/graphql-engine/issues/8369
+  hydraPlatforms = lib.platforms.none;
+  broken = true;
 }
diff --git a/pkgs/development/misc/haskell/hasura/graphql-parser.nix b/pkgs/development/misc/haskell/hasura/graphql-parser.nix
index a447ac0154015..5061fe4a2eca9 100644
--- a/pkgs/development/misc/haskell/hasura/graphql-parser.nix
+++ b/pkgs/development/misc/haskell/hasura/graphql-parser.nix
@@ -1,33 +1,37 @@
 # This has been automatically generated by the script
 # ./update.sh.  This should not be changed by hand.
-{ mkDerivation, aeson, attoparsec, base, bytestring, containers
-, criterion, deepseq, fetchgit, filepath, hashable, hedgehog, lib
-, prettyprinter, scientific, template-haskell, text, text-builder
-, th-lift-instances, unordered-containers, vector
+{ mkDerivation, aeson, attoparsec, base, bytestring, deepseq
+, fetchgit, hashable, hedgehog, lib, prettyprinter, scientific
+, tasty-bench, template-haskell, text, text-builder
+, th-lift-instances, unordered-containers
 }:
 mkDerivation {
   pname = "graphql-parser";
   version = "0.2.0.0";
   src = fetchgit {
     url = "https://github.com/hasura/graphql-parser-hs.git";
-    sha256 = "0zqrh7y0cjjrscsw2hmyhdcm4nzvb5pw394pcxk8q19xx13jp9xd";
-    rev = "43562a5b7b41d380e3e31732b48637702e5aa97d";
+    sha256 = "1xprr5wdhcfnbggkygz71v3za1mmkqv5mbm7h16kpsrhm1m9mpx8";
+    rev = "c311bc15b8d8cef28a846d1d81b0bcc1d59bd956";
     fetchSubmodules = true;
   };
   libraryHaskellDepends = [
-    aeson attoparsec base bytestring containers deepseq filepath
-    hashable hedgehog prettyprinter scientific template-haskell text
-    text-builder th-lift-instances unordered-containers vector
+    aeson attoparsec base bytestring deepseq hashable hedgehog
+    prettyprinter scientific template-haskell text text-builder
+    th-lift-instances unordered-containers
   ];
   testHaskellDepends = [
-    attoparsec base bytestring hedgehog prettyprinter scientific text
-    text-builder
+    attoparsec base bytestring hedgehog prettyprinter text text-builder
   ];
   benchmarkHaskellDepends = [
-    base bytestring criterion prettyprinter text text-builder
+    base bytestring prettyprinter tasty-bench text text-builder
   ];
   homepage = "https://github.com/hasura/graphql-parser-hs";
   description = "A native Haskell GraphQL parser";
   license = lib.licenses.bsd3;
   maintainers = with lib.maintainers; [ lassulus ];
+
+  # Needs to be updated for aeson-2.0
+  # https://github.com/hasura/graphql-engine/issues/8369
+  hydraPlatforms = lib.platforms.none;
+  broken = true;
 }
diff --git a/pkgs/development/misc/haskell/hasura/kriti-lang.nix b/pkgs/development/misc/haskell/hasura/kriti-lang.nix
new file mode 100644
index 0000000000000..7e22aff40d7b4
--- /dev/null
+++ b/pkgs/development/misc/haskell/hasura/kriti-lang.nix
@@ -0,0 +1,41 @@
+# This has been automatically generated by the script
+# ./update.sh.  This should not be changed by hand.
+{ mkDerivation, aeson, aeson-pretty, alex, array, base, bytestring
+, containers, directory, fetchgit, filepath, generic-arbitrary
+, happy, hspec, hspec-core, hspec-golden, lens, lens-aeson, lib
+, megaparsec, mtl, network-uri, optparse-applicative, parsec
+, parser-combinators, pretty-simple, prettyprinter, QuickCheck
+, raw-strings-qq, safe-exceptions, scientific, text
+, unordered-containers, utf8-string, vector
+}:
+mkDerivation {
+  pname = "kriti-lang";
+  version = "0.3.1";
+  src = fetchgit {
+    url = "https://github.com/hasura/kriti-lang.git";
+    sha256 = "09v31xp8gkc0p0gfysxyd8yb7lyb1vpgzq8550h3s3msjbapr7pj";
+    rev = "0f0b153b93af5dc6c6e995c016ca4562e8438cec";
+    fetchSubmodules = true;
+  };
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    aeson array base bytestring containers lens megaparsec mtl
+    network-uri optparse-applicative parser-combinators prettyprinter
+    scientific text unordered-containers utf8-string vector
+  ];
+  libraryToolDepends = [ alex happy ];
+  executableHaskellDepends = [
+    aeson base bytestring containers mtl optparse-applicative
+    prettyprinter text utf8-string
+  ];
+  testHaskellDepends = [
+    aeson aeson-pretty base bytestring containers directory filepath
+    generic-arbitrary hspec hspec-core hspec-golden lens lens-aeson mtl
+    optparse-applicative parsec pretty-simple prettyprinter QuickCheck
+    raw-strings-qq safe-exceptions scientific text unordered-containers
+    utf8-string vector
+  ];
+  license = lib.licenses.asl20;
+  maintainers = with lib.maintainers; [ lassulus ];
+}
diff --git a/pkgs/development/misc/haskell/hasura/pg-client.nix b/pkgs/development/misc/haskell/hasura/pg-client.nix
index 52f179f9923ce..92d556824dbd6 100644
--- a/pkgs/development/misc/haskell/hasura/pg-client.nix
+++ b/pkgs/development/misc/haskell/hasura/pg-client.nix
@@ -1,10 +1,10 @@
 # This has been automatically generated by the script
 # ./update.sh.  This should not be changed by hand.
-{ mkDerivation, aeson, aeson-casing, attoparsec, base, bytestring
-, Cabal, criterion, ekg-core, fetchgit, file-embed, hashable
-, hashtables, hasql, hasql-pool, hasql-transaction, hspec, lib
-, mmorph, monad-control, mtl, postgresql, postgresql-binary
-, postgresql-libpq, resource-pool, retry, scientific
+{ mkDerivation, aeson, aeson-casing, async, attoparsec, base
+, bytestring, ekg-core, fetchgit, file-embed, hashable, hashtables
+, hasql, hasql-pool, hasql-transaction, hspec, lib, mmorph
+, monad-control, mtl, postgresql-binary, postgresql-libpq
+, resource-pool, retry, safe-exceptions, scientific, tasty-bench
 , template-haskell, text, text-builder, time, transformers-base
 , uuid, vector
 }:
@@ -13,24 +13,25 @@ mkDerivation {
   version = "0.1.0";
   src = fetchgit {
     url = "https://github.com/hasura/pg-client-hs.git";
-    sha256 = "00h9hskv3p4mg35php5wsr2d2rjahcv29rqidb2lxl11r05psr4m";
-    rev = "5e8a2d7ebe8b96518e5a70f4d61be2550eaa4e70";
+    sha256 = "0ga2bj0mfng25c8kxsvi8i13pnanbnhahxvbq8ijl0bysd41g7zi";
+    rev = "09b40ad8e5d16a78f5d91fe2306676f52caadbc8";
     fetchSubmodules = true;
   };
-  setupHaskellDepends = [ base Cabal ];
   libraryHaskellDepends = [
-    aeson aeson-casing attoparsec base bytestring ekg-core hashable
-    hashtables mmorph monad-control mtl postgresql-binary
-    postgresql-libpq resource-pool retry scientific template-haskell
-    text text-builder time transformers-base uuid vector
+    aeson aeson-casing async attoparsec base bytestring ekg-core
+    hashable hashtables mmorph monad-control mtl postgresql-binary
+    postgresql-libpq resource-pool retry safe-exceptions scientific
+    template-haskell text text-builder time transformers-base uuid
+    vector
+  ];
+  testHaskellDepends = [
+    async base bytestring hspec mtl safe-exceptions time
   ];
-  librarySystemDepends = [ postgresql ];
-  testHaskellDepends = [ base bytestring hspec mtl ];
   benchmarkHaskellDepends = [
-    base bytestring criterion file-embed hashable hasql hasql-pool
-    hasql-transaction mtl postgresql-libpq text text-builder
+    base bytestring file-embed hasql hasql-pool hasql-transaction mtl
+    tasty-bench text
   ];
   homepage = "https://github.com/hasura/platform";
-  license = lib.licenses.bsd3;
+  license = lib.licenses.asl20;
   maintainers = with lib.maintainers; [ lassulus ];
 }
diff --git a/pkgs/development/misc/haskell/hasura/pool.nix b/pkgs/development/misc/haskell/hasura/pool.nix
index c03b1fb88121d..48954114a4a17 100644
--- a/pkgs/development/misc/haskell/hasura/pool.nix
+++ b/pkgs/development/misc/haskell/hasura/pool.nix
@@ -17,7 +17,7 @@ mkDerivation {
     vector
   ];
   testHaskellDepends = [ base hspec ];
-  homepage = "https://github.com/bos/pool";
+  homepage = "http://github.com/bos/pool";
   description = "A high-performance striped resource pooling implementation";
   license = lib.licenses.bsd3;
   maintainers = with lib.maintainers; [ lassulus ];
diff --git a/pkgs/development/misc/haskell/hasura/update.sh b/pkgs/development/misc/haskell/hasura/update.sh
index 77a5d5fc6dead..f4286ea6b831e 100755
--- a/pkgs/development/misc/haskell/hasura/update.sh
+++ b/pkgs/development/misc/haskell/hasura/update.sh
@@ -21,12 +21,13 @@ pgclient_derivation_file="${script_dir}/pg-client.nix"
 pool_derivation_file="${script_dir}/pool.nix"
 ekgcore_derivation_file="${script_dir}/ekg-core.nix"
 ekgjson_derivation_file="${script_dir}/ekg-json.nix"
+kritilang_derivation_file="${script_dir}/kriti-lang.nix"
 
 # TODO: get current revision of graphql-engine in Nixpkgs.
 # old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$engine_derivation_file")"
 
 # This is the latest release version of graphql-engine on GitHub.
-new_version=$(curl --silent "https://api.github.com/repos/hasura/graphql-engine/releases" | jq '.[0].tag_name' --raw-output)
+new_version=$(curl --silent "https://api.github.com/repos/hasura/graphql-engine/releases" | jq 'map(select(.prerelease | not)) | .[0].tag_name' --raw-output)
 
 echo "Running cabal2nix and outputting to ${engine_derivation_file}..."
 
@@ -77,6 +78,15 @@ echo "# ./update.sh.  This should not be changed by hand." >> "$ekgjson_derivati
 
 cabal2nix --maintainer lassulus "https://github.com/hasura/ekg-json.git" >> "$ekgjson_derivation_file"
 
+echo "Running cabal2nix and outputting to ${kritilang_derivation_file}..."
+
+echo "# This has been automatically generated by the script" > "$kritilang_derivation_file"
+echo "# ./update.sh.  This should not be changed by hand." >> "$kritilang_derivation_file"
+
+new_kritilang_version=$(curl --silent "https://api.github.com/repos/hasura/kriti-lang/tags" | jq '.[0].name' --raw-output)
+
+cabal2nix --revision "$new_kritilang_version" --maintainer lassulus "https://github.com/hasura/kriti-lang.git" >> "$kritilang_derivation_file"
+
 echo "###################"
 echo "please update pkgs/servers/hasura/cli.nix vendorSha256"
 echo "please update pkgs/development/haskell-modules/configuration-common.nix graphql-engine version"
diff --git a/pkgs/development/misc/msp430/mspds/binary.nix b/pkgs/development/misc/msp430/mspds/binary.nix
index 2fc306f8e5ffa..967562580c67f 100644
--- a/pkgs/development/misc/msp430/mspds/binary.nix
+++ b/pkgs/development/misc/msp430/mspds/binary.nix
@@ -17,7 +17,8 @@ in stdenv.mkDerivation rec {
     if stdenv.hostPlatform.isWindows then "MSP430${archPostfix}.dll"
     else "libmsp430${archPostfix}${stdenv.hostPlatform.extensions.sharedLibrary}";
 
-  nativeBuildInputs = [ unzip autoPatchelfHook ];
+  nativeBuildInputs = [ unzip ]
+    ++ lib.optional stdenv.isLinux autoPatchelfHook;
   buildInputs = [ stdenv.cc.cc ];
 
   installPhase = ''
diff --git a/pkgs/development/misc/resholve/README.md b/pkgs/development/misc/resholve/README.md
index 0b4bcb371ade1..1ea8843c01ed7 100644
--- a/pkgs/development/misc/resholve/README.md
+++ b/pkgs/development/misc/resholve/README.md
@@ -1,9 +1,18 @@
 # Using resholve's Nix API
+resholve replaces bare references (subject to a PATH search at runtime) to external commands and scripts with absolute paths.
 
-resholve converts bare executable references in shell scripts to absolute
-paths. This will hopefully make its way into the Nixpkgs manual soon, but
-until then I'll outline how to use the `resholvePackage`, `resholveScript`,
-and `resholveScriptBin` functions.
+This small super-power helps ensure script dependencies are declared, present, and don't unexpectedly shift when the PATH changes.
+
+resholve is developed to enable the Nix package manager to package and integrate Shell projects, but its features are not Nix-specific and inevitably have other applications.
+
+<!-- generated from resholve's repo; best to suggest edits there (or at least notify me) -->
+
+This will hopefully make its way into the Nixpkgs manual soon, but
+until then I'll outline how to use the functions:
+- `resholve.mkDerivation` (formerly `resholvePackage`)
+- `resholve.writeScript` (formerly `resholveScript`)
+- `resholve.writeScriptBin` (formerly `resholveScriptBin`)
+- `resholve.phraseSolution` (new in resholve 0.8.0)
 
 > Fair warning: resholve does *not* aspire to resolving all valid Shell
 > scripts. It depends on the OSH/Oil parser, which aims to support most (but
@@ -11,7 +20,7 @@ and `resholveScriptBin` functions.
 
 ## API Concepts
 
-The main difference between `resholvePackage` and other builder functions
+The main difference between `resholve.mkDerivation` and other builder functions
 is the `solutions` attrset, which describes which scripts to resolve and how.
 Each "solution" (k=v pair) in this attrset describes one resholve invocation.
 
@@ -22,70 +31,81 @@ Each "solution" (k=v pair) in this attrset describes one resholve invocation.
 > - Packages with scripts that require conflicting directives can use multiple
 >   solutions to resolve the scripts separately, but produce a single package.
 
-The `resholveScript` and `resholveScriptBin` functions support a _single_
-`solution` attrset. This is basically the same as any single solution in `resholvePackage`, except that it doesn't need a `scripts` attr (it is automatically added).
+`resholve.writeScript` and `resholve.writeScriptBin` support a _single_
+`solution` attrset. This is basically the same as any single solution in `resholve.mkDerivation`, except that it doesn't need a `scripts` attr (it is automatically added). `resholve.phraseSolution` also only accepts a single solution--but it _does_ still require the `scripts` attr.
 
-## Basic `resholvePackage` Example
+## Basic `resholve.mkDerivation` Example
 
-Here's a simple example from one of my own projects, with annotations:
-<!--
-TODO: ideally this will use a nixpkgs example; but we don't have any IN yet
-and the first package PR (bashup-events) is too complex for this context.
--->
+Here's a simple example of how `resholve.mkDerivation` is already used in nixpkgs:
 
-```nix
-{ stdenv, lib, resholvePackage, fetchFromGitHub, bashup-events44, bashInteractive_5, doCheck ? true, shellcheck }:
+<!-- TODO: figure out how to pull this externally? -->
 
-resholvePackage rec {
-  pname = "shellswain";
-  version = "unreleased";
+```nix
+{ lib
+, fetchFromGitHub
+, resholve
+, substituteAll
+, bash
+, coreutils
+, goss
+, which
+}:
+
+resholve.mkDerivation rec {
+  pname = "dgoss";
+  version = "0.3.16";
 
   src = fetchFromGitHub {
-    # ...
+    owner = "aelsabbahy";
+    repo = "goss";
+    rev = "v${version}";
+    sha256 = "1m5w5vwmc9knvaihk61848rlq7qgdyylzpcwi64z84rkw8qdnj6p";
   };
 
-  solutions = {
-    # Give each solution a short name. This is what you'd use to
-    # override its settings, and it shows in (some) error messages.
-    profile = {
-      # the only *required* arguments are the 3 below
+  dontConfigure = true;
+  dontBuild = true;
 
-      # Specify 1 or more $out-relative script paths. Unlike many
-      # builders, resholvePackage modifies the output files during
-      # fixup (to correctly resolve in-package sourcing).
-      scripts = [ "bin/shellswain.bash" ];
-
-      # "none" for no shebang, "${bash}/bin/bash" for bash, etc.
-      interpreter = "none";
+  installPhase = ''
+    sed -i '2i GOSS_PATH=${goss}/bin/goss' extras/dgoss/dgoss
+    install -D extras/dgoss/dgoss $out/bin/dgoss
+  '';
 
-      # packages resholve should resolve executables from
-      inputs = [ bashup-events44 ];
+  solutions = {
+    default = {
+      scripts = [ "bin/dgoss" ];
+      interpreter = "${bash}/bin/bash";
+      inputs = [ coreutils which ];
+      fake = {
+        external = [ "docker" ];
+      };
     };
   };
 
-  makeFlags = [ "prefix=${placeholder "out"}" ];
-
-  inherit doCheck;
-  checkInputs = [ shellcheck ];
-
-  # ...
+  meta = with lib; {
+    homepage = "https://github.com/aelsabbahy/goss/blob/v${version}/extras/dgoss/README.md";
+    description = "Convenience wrapper around goss that aims to bring the simplicity of goss to docker containers";
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ hyzual ];
+  };
 }
 ```
 
-## Basic `resholveScript` and `resholveScriptBin` examples
+
+## Basic `resholve.writeScript` and `resholve.writeScriptBin` examples
 
 Both of these functions have the same basic API. This example is a little
 trivial for now. If you have a real usage that you find helpful, please PR it.
 
 ```nix
-resholvedScript = resholveScript "name" {
+resholvedScript = resholve.writeScript "name" {
     inputs = [ file ];
     interpreter = "${bash}/bin/bash";
   } ''
     echo "Hello"
     file .
   '';
-resholvedScriptBin = resholveScriptBin "name" {
+resholvedScriptBin = resholve.writeScriptBin "name" {
     inputs = [ file ];
     interpreter = "${bash}/bin/bash";
   } ''
@@ -94,25 +114,56 @@ resholvedScriptBin = resholveScriptBin "name" {
   '';
 ```
 
+
+## Basic `resholve.phraseSolution` example
+
+This function has a similar API to `writeScript` and `writeScriptBin`, except it does require a `scripts` attr. It is intended to make resholve a little easier to mix into more types of build. This example is a little
+trivial for now. If you have a real usage that you find helpful, please PR it.
+
+```nix
+{ stdenv, resholve, module1 }:
+
+stdenv.mkDerivation {
+  # pname = "testmod3";
+  # version = "unreleased";
+  # src = ...;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    install conjure.sh $out/bin/conjure.sh
+    ${resholve.phraseSolution "conjure" {
+      scripts = [ "bin/conjure.sh" ];
+      interpreter = "${bash}/bin/bash";
+      inputs = [ module1 ];
+      fake = {
+        external = [ "jq" "openssl" ];
+      };
+    }}
+  '';
+}
+```
+
+
 ## Options
 
-`resholvePackage` maps Nix types/idioms into the flags and environment variables
+`resholve.mkDerivation` maps Nix types/idioms into the flags and environment variables
 that the `resholve` CLI expects. Here's an overview:
 
-| Option        | Type    | Containing                                            |
-| ------------- | ------- | ----------------------------------------------------- |
-| scripts       | list    | $out-relative string paths to resolve                 |
-| inputs        | list    | packages to resolve executables from                  |
-| interpreter   | string  | 'none' or abspath for shebang                         |
-| prologue      | file    | text to insert before the first code-line             |
-| epilogue      | file    | text to insert after the last code-line               |
-| flags         | list    | strings to pass as flags                              |
-| fake          | attrset | [directives](#controlling-resolution-with-directives) |
-| fix           | attrset | [directives](#controlling-resolution-with-directives) |
-| keep          | attrset | [directives](#controlling-resolution-with-directives) |
-| lore          | string  | [lore directory](#controlling-nested-resolution-with-lore)  |
-| execers       | list    | [execer lore directive](#controlling-nested-resolution-with-lore) |
-| wrappers      | list    | [wrapper lore directive](#controlling-nested-resolution-with-lore) |
+| Option | Type | Containing |
+|--------|------|------------|
+| scripts | `<list>` | scripts to resolve (`$out`-relative paths) |
+| interpreter | `"none"` `<path>` | The absolute interpreter `<path>` for the script's shebang. The special value `none` ensures there is no shebang. |
+| inputs | `<packages>` | Packages to resolve external dependencies from. |
+| fake | `<directives>` | pretend some commands exist |
+| fix | `<directives>` | fix things we can't auto-fix/ignore |
+| keep | `<directives>` | keep things we can't auto-fix/ignore |
+| lore | `<directory>` | control nested resolution |
+| execer | `<statements>` | modify nested resolution |
+| wrapper | `<statements>` | modify nested resolution |
+| prologue | `<file>` | insert file before resolved script |
+| epilogue | `<file>` | insert file after resolved script |
+
+<!-- TODO: section below is largely custom for nixpkgs, but I would LIKE to wurst it. -->
 
 ## Controlling resolution with directives
 
@@ -184,6 +235,7 @@ keep = {
 };
 ```
 
+
 > **Note:** For now, at least, you'll need to reference the manpage to completely understand these examples.
 
 ## Controlling nested resolution with lore
@@ -213,7 +265,7 @@ There will be more mechanisms for controlling this process in the future
 the main lever is the ability to substitute your own lore. This is how you'd
 do it piecemeal:
 
-```
+```nix
 # --execer 'cannot:${openssl.bin}/bin/openssl can:${openssl.bin}/bin/c_rehash'
 execer = [
   /*
@@ -237,5 +289,6 @@ execer = [
 ];
 ```
 
+
 The format is fairly simple to generate--you can script your own generator if
 you need to modify the lore.
diff --git a/pkgs/development/misc/resholve/default.nix b/pkgs/development/misc/resholve/default.nix
index 714c4ecabe082..b2ee3c1d1b574 100644
--- a/pkgs/development/misc/resholve/default.nix
+++ b/pkgs/development/misc/resholve/default.nix
@@ -1,5 +1,5 @@
 { callPackage
-, writeTextFile
+, ...
 }:
 
 let
@@ -7,47 +7,15 @@ let
   deps = callPackage ./deps.nix { };
 in
 rec {
+  # resholve itself
   resholve = callPackage ./resholve.nix {
     inherit (source) rSrc version;
     inherit (deps.oil) oildev;
+    inherit resholve-utils;
   };
+  # funcs to validate and phrase invocations of resholve
+  # and use those invocations to build packages
   resholve-utils = callPackage ./resholve-utils.nix {
     inherit resholve;
   };
-  resholvePackage = callPackage ./resholve-package.nix {
-    inherit resholve resholve-utils;
-  };
-  resholveScript = name: partialSolution: text:
-    writeTextFile {
-      inherit name text;
-      executable = true;
-      checkPhase = ''
-        (
-          PS4=$'\x1f'"\033[33m[resholve context]\033[0m "
-          set -x
-          ${resholve-utils.makeInvocation name (partialSolution // {
-            scripts = [ "${placeholder "out"}" ];
-          })}
-        )
-        ${partialSolution.interpreter} -n $out
-      '';
-    };
-  resholveScriptBin = name: partialSolution: text:
-    writeTextFile rec {
-      inherit name text;
-      executable = true;
-      destination = "/bin/${name}";
-      checkPhase = ''
-        (
-          cd "$out"
-          PS4=$'\x1f'"\033[33m[resholve context]\033[0m "
-          set -x
-          : changing directory to $PWD
-          ${resholve-utils.makeInvocation name (partialSolution // {
-            scripts = [ "bin/${name}" ];
-          })}
-        )
-        ${partialSolution.interpreter} -n $out/bin/${name}
-      '';
-    };
 }
diff --git a/pkgs/development/misc/resholve/resholve-package.nix b/pkgs/development/misc/resholve/resholve-package.nix
deleted file mode 100644
index 89852efb8bac8..0000000000000
--- a/pkgs/development/misc/resholve/resholve-package.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ stdenv, lib, resholve, resholve-utils }:
-
-{ pname
-, src
-, version
-, passthru ? { }
-, solutions
-, ...
-}@attrs:
-let
-  inherit stdenv;
-
-  self = (stdenv.mkDerivation ((removeAttrs attrs [ "solutions" ])
-    // {
-    inherit pname version src;
-    buildInputs = (lib.optionals (builtins.hasAttr "buildInputs" attrs) attrs.buildInputs) ++ [ resholve ];
-
-    # enable below for verbose debug info if needed
-    # supports default python.logging levels
-    # LOGLEVEL="INFO";
-    /*
-      subshell/PS4/set -x and : command to output resholve envs
-      and invocation. Extra context makes it clearer what the
-      Nix API is doing, makes nix-shell debugging easier, etc.
-    */
-    preFixup = ''
-      (
-        cd "$out"
-        PS4=$'\x1f'"\033[33m[resholve context]\033[0m "
-        set -x
-        : changing directory to $PWD
-        ${builtins.concatStringsSep "\n" (resholve-utils.makeCommands solutions)}
-      )
-    '';
-  }));
-in
-lib.extendDerivation true passthru self
diff --git a/pkgs/development/misc/resholve/resholve-utils.nix b/pkgs/development/misc/resholve/resholve-utils.nix
index 2d3c55b875631..27e347e7c4aa3 100644
--- a/pkgs/development/misc/resholve/resholve-utils.nix
+++ b/pkgs/development/misc/resholve/resholve-utils.nix
@@ -1,4 +1,4 @@
-{ lib, resholve, binlore }:
+{ lib, stdenv, resholve, binlore, writeTextFile }:
 
 rec {
   /* These functions break up the work of partially validating the
@@ -10,6 +10,7 @@ rec {
 
   # for brevity / line length
   spaces = l: builtins.concatStringsSep " " l;
+  colons = l: builtins.concatStringsSep ":" l;
   semicolons = l: builtins.concatStringsSep ";" l;
 
   /* Throw a fit with dotted attr path context */
@@ -17,58 +18,186 @@ rec {
     throw "${builtins.concatStringsSep "." path}: ${msg}";
 
   /* Special-case directive value representations by type */
-  makeDirective = solution: env: name: val:
+  phraseDirective = solution: env: name: val:
     if builtins.isInt val then builtins.toString val
     else if builtins.isString val then name
     else if true == val then name
     else if false == val then "" # omit!
     else if null == val then "" # omit!
-    else if builtins.isList val then "${name}:${semicolons val}"
+    else if builtins.isList val then "${name}:${semicolons (map lib.escapeShellArg val)}"
     else nope [ solution env name ] "unexpected type: ${builtins.typeOf val}";
 
   /* Build fake/fix/keep directives from Nix types */
-  makeDirectives = solution: env: val:
-    lib.mapAttrsToList (makeDirective solution env) val;
+  phraseDirectives = solution: env: val:
+    lib.mapAttrsToList (phraseDirective solution env) val;
+
+  /* Custom ~search-path routine to handle relative path strings */
+  relSafeBinPath = input:
+    if lib.isDerivation input then ((lib.getOutput "bin" input) + "/bin")
+    else if builtins.isString input then input
+    else throw "unexpected type for input: ${builtins.typeOf input}";
 
   /* Special-case value representation by type/name */
-  makeEnvVal = solution: env: val:
-    if env == "inputs" then lib.makeBinPath val
+  phraseEnvVal = solution: env: val:
+    if env == "inputs" then (colons (map relSafeBinPath val))
     else if builtins.isString val then val
     else if builtins.isList val then spaces val
-    else if builtins.isAttrs val then spaces (makeDirectives solution env val)
+    else if builtins.isAttrs val then spaces (phraseDirectives solution env val)
     else nope [ solution env ] "unexpected type: ${builtins.typeOf val}";
 
   /* Shell-format each env value */
   shellEnv = solution: env: value:
-    lib.escapeShellArg (makeEnvVal solution env value);
+    lib.escapeShellArg (phraseEnvVal solution env value);
 
   /* Build a single ENV=val pair */
-  makeEnv = solution: env: value:
+  phraseEnv = solution: env: value:
     "RESHOLVE_${lib.toUpper env}=${shellEnv solution env value}";
 
-  /* Discard attrs claimed by makeArgs */
-  removeCliArgs = value:
-    removeAttrs value [ "scripts" "flags" ];
+  /* Discard attrs:
+  - claimed by phraseArgs
+  - only needed for binlore.collect
+  */
+  removeUnneededArgs = value:
+    removeAttrs value [ "scripts" "flags" "unresholved" ];
 
   /* Verify required arguments are present */
   validateSolution = { scripts, inputs, interpreter, ... }: true;
 
   /* Pull out specific solution keys to build ENV=val pairs */
-  makeEnvs = solution: value:
-    spaces (lib.mapAttrsToList (makeEnv solution) (removeCliArgs value));
+  phraseEnvs = solution: value:
+    spaces (lib.mapAttrsToList (phraseEnv solution) (removeUnneededArgs value));
 
   /* Pull out specific solution keys to build CLI argstring */
-  makeArgs = { flags ? [ ], scripts, ... }:
+  phraseArgs = { flags ? [ ], scripts, ... }:
     spaces (flags ++ scripts);
 
+  phraseBinloreArgs = value:
+    let
+      hasUnresholved = builtins.hasAttr "unresholved" value;
+    in {
+      drvs = value.inputs ++
+        lib.optionals hasUnresholved [ value.unresholved ];
+      strip = if hasUnresholved then [ value.unresholved ] else [ ];
+    };
+
   /* Build a single resholve invocation */
-  makeInvocation = solution: value:
+  phraseInvocation = solution: value:
     if validateSolution value then
     # we pass resholve a directory
-      "RESHOLVE_LORE=${binlore.collect { drvs = value.inputs; } } ${makeEnvs solution value} ${resholve}/bin/resholve --overwrite ${makeArgs value}"
+      "RESHOLVE_LORE=${binlore.collect (phraseBinloreArgs value) } ${phraseEnvs solution value} ${resholve}/bin/resholve --overwrite ${phraseArgs value}"
     else throw "invalid solution"; # shouldn't trigger for now
 
+  injectUnresholved = solutions: unresholved: (builtins.mapAttrs (name: value: value // { inherit unresholved; } ) solutions);
+
   /* Build resholve invocation for each solution. */
-  makeCommands = solutions:
-    lib.mapAttrsToList makeInvocation solutions;
+  phraseCommands = solutions: unresholved:
+    builtins.concatStringsSep "\n" (
+      lib.mapAttrsToList phraseInvocation (injectUnresholved solutions unresholved)
+    );
+
+  /*
+    subshell/PS4/set -x and : command to output resholve envs
+    and invocation. Extra context makes it clearer what the
+    Nix API is doing, makes nix-shell debugging easier, etc.
+  */
+  phraseContext = { invokable, prep ? ''cd "$out"'' }: ''
+    (
+      ${prep}
+      PS4=$'\x1f'"\033[33m[resholve context]\033[0m "
+      set -x
+      : invoking resholve with PWD=$PWD
+      ${invokable}
+    )
+  '';
+  phraseContextForPWD = invokable: phraseContext { inherit invokable; prep = ""; };
+  phraseContextForOut = invokable: phraseContext { inherit invokable; };
+
+  phraseSolution = name: solution: (phraseContextForOut (phraseInvocation name solution));
+  phraseSolutions = solutions: unresholved:
+    phraseContextForOut (phraseCommands solutions unresholved);
+
+  writeScript = name: partialSolution: text:
+    writeTextFile {
+      inherit name text;
+      executable = true;
+      checkPhase = ''
+         ${(phraseContextForPWD (
+             phraseInvocation name (
+               partialSolution // {
+                 scripts = [ "${placeholder "out"}" ];
+               }
+             )
+           )
+         )}
+        ${partialSolution.interpreter} -n $out
+      '';
+    };
+  writeScriptBin = name: partialSolution: text:
+    writeTextFile rec {
+      inherit name text;
+      executable = true;
+      destination = "/bin/${name}";
+      checkPhase = ''
+        ${phraseContextForOut (
+            phraseInvocation name (
+              partialSolution // {
+                scripts = [ "bin/${name}" ];
+              }
+            )
+          )
+        }
+        ${partialSolution.interpreter} -n $out/bin/${name}
+      '';
+    };
+  mkDerivation = { pname
+    , src
+    , version
+    , passthru ? { }
+    , solutions
+    , ...
+    }@attrs:
+    let
+      inherit stdenv;
+
+      /*
+      Knock out our special solutions arg, but otherwise
+      just build what the caller is giving us. We'll
+      actually resholve it separately below (after we
+      generate binlore for it).
+      */
+      unresholved = (stdenv.mkDerivation ((removeAttrs attrs [ "solutions" ])
+        // {
+        inherit pname version src;
+      }));
+    in
+    /*
+    resholve in a separate derivation; some concerns:
+    - we aren't keeping many of the user's args, so they
+      can't readily set LOGLEVEL and such...
+    - not sure how this affects multiple outputs
+    */
+    lib.extendDerivation true passthru (stdenv.mkDerivation {
+      src = unresholved;
+      version = unresholved.version;
+      pname = "resholved-${unresholved.pname}";
+      buildInputs = [ resholve ];
+
+      # retain a reference to the base
+      passthru = unresholved.passthru // {
+        unresholved = unresholved;
+      };
+
+      # do these imply that we should use NoCC or something?
+      dontConfigure = true;
+      dontBuild = true;
+
+      installPhase = ''
+        cp -R $src $out
+      '';
+
+      # enable below for verbose debug info if needed
+      # supports default python.logging levels
+      # LOGLEVEL="INFO";
+      preFixup = phraseSolutions solutions unresholved;
+    });
 }
diff --git a/pkgs/development/misc/resholve/resholve.nix b/pkgs/development/misc/resholve/resholve.nix
index f364b73158e91..959e7ee0cb524 100644
--- a/pkgs/development/misc/resholve/resholve.nix
+++ b/pkgs/development/misc/resholve/resholve.nix
@@ -7,14 +7,13 @@
 , version
 , oildev
 , binlore
+, resholve-utils
 }:
 
 python27Packages.buildPythonApplication {
   pname = "resholve";
   inherit version;
   src = rSrc;
-  format = "other";
-  dontBuild = true;
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -32,13 +31,12 @@ python27Packages.buildPythonApplication {
   ];
 
   patchPhase = ''
-    for file in resholve; do
+    for file in setup.cfg _resholve/version.py; do
       substituteInPlace $file --subst-var-by version ${version}
     done
   '';
 
-  installPhase = ''
-    install -Dm755 resholve $out/bin/resholve
+   postInstall = ''
     installManPage resholve.1
   '';
 
@@ -48,7 +46,10 @@ python27Packages.buildPythonApplication {
     rm $out/nix-support/propagated-build-inputs
   '';
 
-  passthru.tests = callPackage ./test.nix { inherit rSrc; inherit binlore; };
+  passthru = {
+    inherit (resholve-utils) mkDerivation phraseSolution writeScript writeScriptBin;
+    tests = callPackage ./test.nix { inherit rSrc binlore; };
+  };
 
   meta = with lib; {
     description = "Resolve external shell-script dependencies";
diff --git a/pkgs/development/misc/resholve/source.nix b/pkgs/development/misc/resholve/source.nix
index f2d431d37ef86..ee69f6c21be9c 100644
--- a/pkgs/development/misc/resholve/source.nix
+++ b/pkgs/development/misc/resholve/source.nix
@@ -3,7 +3,7 @@
 }:
 
 rec {
-  version = "0.6.9";
+  version = "0.8.0";
   rSrc =
     # local build -> `make ci`; `make clean` to restore
     # return to remote source
@@ -14,6 +14,6 @@ rec {
         owner = "abathur";
         repo = "resholve";
         rev = "v${version}";
-        hash = "sha256-y9O5w4wA/kR8zoPay9pGs3vwxNqq3JEeZmX0wBJq4UQ=";
+        hash = "sha256-oWS4ZBPjgH2UvYmvHVVRcyl15r3VS964BmB89y9DGo8=";
       };
 }
diff --git a/pkgs/development/misc/resholve/test.nix b/pkgs/development/misc/resholve/test.nix
index 2c17cf2ea038a..2b8a3ec3d296a 100644
--- a/pkgs/development/misc/resholve/test.nix
+++ b/pkgs/development/misc/resholve/test.nix
@@ -2,10 +2,8 @@
 , stdenv
 , callPackage
 , resholve
-, resholvePackage
-, resholveScript
-, resholveScriptBin
 , shunit2
+, fetchFromGitHub
 , coreutils
 , gnused
 , gnugrep
@@ -34,46 +32,7 @@ let
   parsed_packages = [ coreutils sqlite util-linux gnused gawk findutils rlwrap gnutar bc ];
 in
 rec {
-  re_shunit2 = with shunit2;
-    resholvePackage {
-      inherit pname src version installPhase;
-      solutions = {
-        shunit = {
-          interpreter = "none";
-          scripts = [ "bin/shunit2" ];
-          inputs = [ coreutils gnused gnugrep findutils ];
-          # resholve's Nix API is analogous to the CLI flags
-          # documented in 'man resholve'
-          fake = {
-            # "missing" functions shunit2 expects the user to declare
-            function = [
-              "oneTimeSetUp"
-              "oneTimeTearDown"
-              "setUp"
-              "tearDown"
-              "suite"
-              "noexec"
-            ];
-            # shunit2 is both bash and zsh compatible, and in
-            # some zsh-specific code it uses this non-bash builtin
-            builtin = [ "setopt" ];
-          };
-          fix = {
-            # stray absolute path; make it resolve from coreutils
-            "/usr/bin/od" = true;
-          };
-          keep = {
-            # variables invoked as commands; long-term goal is to
-            # resolve the *variable*, but that is complexish, so
-            # this is where we are...
-            "$__SHUNIT_CMD_ECHO_ESC" = true;
-            "$_SHUNIT_LINENO_" = true;
-            "$SHUNIT_CMD_TPUT" = true;
-          };
-        };
-      };
-    };
-  module1 = resholvePackage {
+  module1 = resholve.mkDerivation {
     pname = "testmod1";
     version = "unreleased";
 
@@ -97,7 +56,7 @@ rec {
 
     is_it_okay_with_arbitrary_envs = "shonuff";
   };
-  module2 = resholvePackage {
+  module2 = resholve.mkDerivation {
     pname = "testmod2";
     version = "unreleased";
 
@@ -105,19 +64,20 @@ rec {
     setSourceRoot = "sourceRoot=$(echo */tests/nix/openssl)";
 
     installPhase = ''
-      mkdir -p $out/bin
+      mkdir -p $out/bin $out/libexec
       install openssl.sh $out/bin/openssl.sh
+      install libexec.sh $out/libexec/invokeme
       install profile $out/profile
     '';
-
+    # LOGLEVEL="DEBUG";
     solutions = {
       openssl = {
         fix = {
           aliases = true;
         };
-        scripts = [ "bin/openssl.sh" ];
+        scripts = [ "bin/openssl.sh" "libexec/invokeme" ];
         interpreter = "none";
-        inputs = [ re_shunit2 openssl.bin ];
+        inputs = [ shunit2 openssl.bin "libexec" "libexec/invokeme" ];
         execer = [
           /*
             This is the same verdict binlore will
@@ -136,7 +96,8 @@ rec {
       };
     };
   };
-  module3 = resholvePackage {
+  # demonstrate that we could use resholve in larger build
+  module3 = stdenv.mkDerivation {
     pname = "testmod3";
     version = "unreleased";
 
@@ -146,15 +107,15 @@ rec {
     installPhase = ''
       mkdir -p $out/bin
       install conjure.sh $out/bin/conjure.sh
-    '';
-
-    solutions = {
-      conjure = {
+      ${resholve.phraseSolution "conjure" {
         scripts = [ "bin/conjure.sh" ];
         interpreter = "${bash}/bin/bash";
         inputs = [ module1 ];
-      };
-    };
+        fake = {
+          external = [ "jq" "openssl" ];
+        };
+      }}
+    '';
   };
 
   cli = stdenv.mkDerivation {
@@ -204,14 +165,14 @@ rec {
   };
 
   # Caution: ci.nix asserts the equality of both of these w/ diff
-  resholvedScript = resholveScript "resholved-script" {
+  resholvedScript = resholve.writeScript "resholved-script" {
     inputs = [ file ];
     interpreter = "${bash}/bin/bash";
   } ''
     echo "Hello"
     file .
   '';
-  resholvedScriptBin = resholveScriptBin "resholved-script-bin" {
+  resholvedScriptBin = resholve.writeScriptBin "resholved-script-bin" {
     inputs = [ file ];
     interpreter = "${bash}/bin/bash";
   } ''
diff --git a/pkgs/development/mobile/androidenv/build-tools.nix b/pkgs/development/mobile/androidenv/build-tools.nix
index 536a025d15b42..641560f199285 100644
--- a/pkgs/development/mobile/androidenv/build-tools.nix
+++ b/pkgs/development/mobile/androidenv/build-tools.nix
@@ -2,8 +2,8 @@
 
 deployAndroidPackage {
   inherit package os;
-  buildInputs = [ autoPatchelfHook makeWrapper ] ++
-    lib.optionals (os == "linux") [ pkgs.glibc pkgs.zlib pkgs.ncurses5 pkgs_i686.glibc pkgs_i686.zlib pkgs_i686.ncurses5 pkgs.libcxx ];
+  buildInputs = [ makeWrapper ] ++
+    lib.optionals (os == "linux") [ autoPatchelfHook pkgs.glibc pkgs.zlib pkgs.ncurses5 pkgs_i686.glibc pkgs_i686.zlib pkgs_i686.ncurses5 pkgs.libcxx ];
   patchInstructions = ''
     ${lib.optionalString (os == "linux") ''
       addAutoPatchelfSearchPath $packageBaseDir/lib
diff --git a/pkgs/development/mobile/androidenv/platform-tools.nix b/pkgs/development/mobile/androidenv/platform-tools.nix
index c39d966959a3d..52443486bbb68 100644
--- a/pkgs/development/mobile/androidenv/platform-tools.nix
+++ b/pkgs/development/mobile/androidenv/platform-tools.nix
@@ -2,8 +2,7 @@
 
 deployAndroidPackage {
   inherit package os;
-  buildInputs = [ autoPatchelfHook ]
-    ++ lib.optionals (os == "linux") [ pkgs.glibc pkgs.zlib pkgs.ncurses5 ];
+  buildInputs = lib.optionals (os == "linux") [ autoPatchelfHook pkgs.glibc pkgs.zlib pkgs.ncurses5 ];
   patchInstructions = lib.optionalString (os == "linux") ''
     addAutoPatchelfSearchPath $packageBaseDir/lib64
     autoPatchelf --no-recurse $packageBaseDir/lib64
diff --git a/pkgs/development/nim-packages/tempfile/default.nix b/pkgs/development/nim-packages/tempfile/default.nix
index 2d151bad8e80c..d23ea05cb322b 100644
--- a/pkgs/development/nim-packages/tempfile/default.nix
+++ b/pkgs/development/nim-packages/tempfile/default.nix
@@ -15,5 +15,6 @@ buildNimPackage rec {
       description = "Temporary files and folders";
       license = [ lib.licenses.mit ];
       maintainers = [ maintainers.ehmry ];
+      mainProgram = "tempfile_seeder";
     };
 }
diff --git a/pkgs/development/node-packages/default.nix b/pkgs/development/node-packages/default.nix
index 07ed3d19e4ebb..9845f291f5426 100644
--- a/pkgs/development/node-packages/default.nix
+++ b/pkgs/development/node-packages/default.nix
@@ -343,15 +343,22 @@ let
         wrapProgram "$out/bin/postcss" \
           --prefix NODE_PATH : ${self.postcss}/lib/node_modules \
           --prefix NODE_PATH : ${self.autoprefixer}/lib/node_modules
+        ln -s '${self.postcss}/lib/node_modules/postcss' "$out/lib/node_modules/postcss"
       '';
       passthru.tests = {
         simple-execution = pkgs.callPackage ./package-tests/postcss-cli.nix {
           inherit (self) postcss-cli;
         };
       };
-      meta.mainProgram = "postcss";
+      meta = {
+        mainProgram = "postcss";
+        maintainers = with lib.maintainers; [ Luflosi ];
+      };
     };
 
+    # To update prisma, please first update prisma-engines to the latest
+    # version. Then change the correct hash to this package. The PR should hold
+    # two commits: one for the engines and the other one for the node package.
     prisma = super.prisma.override rec {
       nativeBuildInputs = [ pkgs.makeWrapper ];
 
@@ -359,7 +366,7 @@ let
 
       src = fetchurl {
         url = "https://registry.npmjs.org/prisma/-/prisma-${version}.tgz";
-        sha512 = "sha512-8SdsLPhKR3mOfoo2o73h9mNn3v5kA/RqGA26Sv6qDS78Eh2uepPqt5e8/nwj5EOblYm5HEGuitaXQrOCLb6uTw==";
+        sha512 = "sha512-ltCMZAx1i0i9xuPM692Srj8McC665h6E5RqJom999sjtVSccHSD8Z+HSdBN2183h9PJKvC5dapkn78dd0NWMBg==";
       };
       postInstall = with pkgs; ''
         wrapProgram "$out/bin/prisma" \
@@ -452,6 +459,14 @@ let
       '';
     });
 
+    ts-node = super.ts-node.overrideAttrs (oldAttrs: {
+      buildInputs = oldAttrs.buildInputs ++ [ pkgs.makeWrapper ];
+      postInstall = ''
+        wrapProgram "$out/bin/ts-node" \
+        --prefix NODE_PATH : ${self.typescript}/lib/node_modules
+      '';
+    });
+
     typescript = super.typescript.overrideAttrs (oldAttrs: {
       meta = oldAttrs.meta // { mainProgram = "tsc"; };
     });
diff --git a/pkgs/development/node-packages/node-packages.json b/pkgs/development/node-packages/node-packages.json
index 3efdef6cbe6d9..9a63bf17c6829 100644
--- a/pkgs/development/node-packages/node-packages.json
+++ b/pkgs/development/node-packages/node-packages.json
@@ -55,8 +55,10 @@
 , "coc-emmet"
 , "coc-eslint"
 , "coc-explorer"
+, "coc-flutter"
 , "coc-git"
 , "coc-go"
+, "coc-haxe"
 , "coc-highlight"
 , "coc-html"
 , "coc-imselect"
@@ -347,6 +349,7 @@
 , "titanium"
 , "triton"
 , "tsun"
+, "ts-node"
 , "ttf2eot"
 , "typescript"
 , "typescript-language-server"
diff --git a/pkgs/development/node-packages/node-packages.nix b/pkgs/development/node-packages/node-packages.nix
index 0ab3eda77407d..1e7cd1f5466e5 100644
--- a/pkgs/development/node-packages/node-packages.nix
+++ b/pkgs/development/node-packages/node-packages.nix
@@ -31,13 +31,13 @@ let
         sha512 = "t4WmWoGV9gyzypwG3y3JlcK2t8fKLtvzBA7xEoFTj9SMPvOuLsf13uh4ikK0RRaaa9RPPWLgFUdOyIRaQvCpwQ==";
       };
     };
-    "@alexbosworth/caporal-1.4.1" = {
+    "@alexbosworth/caporal-1.4.4" = {
       name = "_at_alexbosworth_slash_caporal";
       packageName = "@alexbosworth/caporal";
-      version = "1.4.1";
+      version = "1.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@alexbosworth/caporal/-/caporal-1.4.1.tgz";
-        sha512 = "oNEyHFcHc66gzmUXDUqzoqEpjcQnsp4REzXMkQNGxMF7MZDxiec3m9IVvzFmXtl0jU48bX/+ay5aZ8G3EVQV3g==";
+        url = "https://registry.npmjs.org/@alexbosworth/caporal/-/caporal-1.4.4.tgz";
+        sha512 = "IUxyskkgV/N3Jk2+d6SE1CbHScKlqbAaakQjxJwk8NHmXszA8Fqh914VclQ1YvTkzjDNX9mMb1tdRAIhMHC7+A==";
       };
     };
     "@alexbosworth/cli-table3-0.6.1" = {
@@ -49,13 +49,13 @@ let
         sha512 = "K7EO1cd89xNdwctQaR2bY9aQFDArSIrYGSWSDCnqG7RKIZ1J+XASkKVylW9NCIeVcguD6Qemxai8ZFCWg9lLFg==";
       };
     };
-    "@alexbosworth/fiat-1.0.1" = {
+    "@alexbosworth/fiat-1.0.2" = {
       name = "_at_alexbosworth_slash_fiat";
       packageName = "@alexbosworth/fiat";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@alexbosworth/fiat/-/fiat-1.0.1.tgz";
-        sha512 = "7rHvIQLvfBYatq+oAy4dvi6Vf00gNVnvdhqR5a7gpav7qEPDpwOFY1pW5T9tKr32KZd4rcCwqVZgygEewnaP2A==";
+        url = "https://registry.npmjs.org/@alexbosworth/fiat/-/fiat-1.0.2.tgz";
+        sha512 = "gouPoWdQ6NyIqsISkx526taLlnPB13SPJji4qRZ+MWf8Z60Bn6lF0xmoIEn+hpkTrSH+k9P9HvC2ENqfhq1YdQ==";
       };
     };
     "@alexbosworth/html2unicode-1.1.5" = {
@@ -103,58 +103,58 @@ let
         sha512 = "hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==";
       };
     };
-    "@angular-devkit/architect-0.1303.0" = {
+    "@angular-devkit/architect-0.1303.3" = {
       name = "_at_angular-devkit_slash_architect";
       packageName = "@angular-devkit/architect";
-      version = "0.1303.0";
+      version = "0.1303.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1303.0.tgz";
-        sha512 = "kTcKB917ICA8j53SGo4gn+qAlzx8si+iHnOTbp5QlMr7qt/Iz07SVVI8mRlMD6c6lr7eE/fVlCLzEZ1+WCQpTA==";
+        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1303.3.tgz";
+        sha512 = "WRVVBCzLlMqRZVhZXGASHzNJK/OCAvl/DTGhlLuJDIjF7lVGnXHjtwNM8ilYZq949OnC3fly5Z61TfhbN/OHCg==";
       };
     };
-    "@angular-devkit/core-13.2.5" = {
+    "@angular-devkit/core-13.3.2" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "13.2.5";
+      version = "13.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-13.2.5.tgz";
-        sha512 = "WuWp/1R0FtCHPBcJLF13lTLHETtDGFUX0ULfGPRaYB5OVCSQcovVp5UbZTTy/Ss3ub3EOEmJlU8kMJfBrWuq+A==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-13.3.2.tgz";
+        sha512 = "wav5plcnlxQAfZ+0EUt3dvVTJnJ1au2TlKVQ0jSQJdR1LA6N7QUI49N2Ua6ZnDMwruQaQkoynitMW2l1it3qYQ==";
       };
     };
-    "@angular-devkit/core-13.3.0" = {
+    "@angular-devkit/core-13.3.3" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "13.3.0";
+      version = "13.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-13.3.0.tgz";
-        sha512 = "8YrreVbWlJVZnk5zs4vfkRItrPEtWhUcxWOBfYT/Kwu4FwJVAnNuhJAxxXOAQ2Ckd7cv30Idh/RFVLbTZ5Gs9w==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-13.3.3.tgz";
+        sha512 = "lfQwY9LuVRwcNVzGmyPcwOpb3CAobP4T+c3joR1LLIPS5lzcM0oeCE2bon9N52Ktn4Q/pH98dVtjWL+jSrUADw==";
       };
     };
-    "@angular-devkit/schematics-13.2.5" = {
+    "@angular-devkit/schematics-13.3.2" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "13.2.5";
+      version = "13.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.2.5.tgz";
-        sha512 = "kAye6VYiF9JQAoeO+BYhy8eT2QOmhB+WLziRjXoFCBxh5+yXTygTVfs9fD5jmIpHmeu4hd2ErSh69yT5xWcD9g==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.3.2.tgz";
+        sha512 = "XCLb23jmqHN0gJg9ZlICaFgfpfnCufIQp5SOsRKMKRkhjKycvDmKnfBTKDlkzb1IaUl6wQwP5k7Z69b9EX+CQw==";
       };
     };
-    "@angular-devkit/schematics-13.3.0" = {
+    "@angular-devkit/schematics-13.3.3" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "13.3.0";
+      version = "13.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.3.0.tgz";
-        sha512 = "hq7tqnB3uVT/iDgqWWZ4kvnijeAcgd4cfLzZiCPaYn1nuhZf0tWsho6exhJ/odMZHvVp7w8OibqWiUKxNY9zHA==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.3.3.tgz";
+        sha512 = "S8UNlw6IoR/kxBYbiwesuA7oJGSnFkD6bJwVLhpHdT6Sqrz2/IrjHcNgTJRAvhsOKIbfDtMtXRzl/PUdWEfgyw==";
       };
     };
-    "@angular-devkit/schematics-cli-13.3.0" = {
+    "@angular-devkit/schematics-cli-13.3.2" = {
       name = "_at_angular-devkit_slash_schematics-cli";
       packageName = "@angular-devkit/schematics-cli";
-      version = "13.3.0";
+      version = "13.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-13.3.0.tgz";
-        sha512 = "DXT+k4228Ke1zCoU9QxPhXm1xzeYBs5aqgMWhyjXdkfDokJcjQM79CSVLHdKX/OLgR51qhnQ5qVFEHHhVV40EQ==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-13.3.2.tgz";
+        sha512 = "cUHZFNq2kaCaReJAU28MSu2D+WDFTqt2v03U79TryOutYdF8BV4FyfvKqCSW6WXna219GXSXPepVqDYcjvn7/w==";
       };
     };
     "@antora/asciidoc-loader-3.0.1" = {
@@ -319,13 +319,13 @@ let
         sha512 = "vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ==";
       };
     };
-    "@apollographql/apollo-tools-0.5.2" = {
+    "@apollographql/apollo-tools-0.5.3" = {
       name = "_at_apollographql_slash_apollo-tools";
       packageName = "@apollographql/apollo-tools";
-      version = "0.5.2";
+      version = "0.5.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.2.tgz";
-        sha512 = "KxZiw0Us3k1d0YkJDhOpVH5rJ+mBfjXcgoRoCcslbgirjgLotKMzOcx4PZ7YTEvvEROmvG7X3Aon41GvMmyGsw==";
+        url = "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.3.tgz";
+        sha512 = "VcsXHfTFoCodDAgJZxN04GdFK1kqOhZQnQY/9Fa147P+I8xfvOSz5d+lKAPB+hwSgBNyd7ncAKGIs4+utbL+yA==";
       };
     };
     "@apollographql/graphql-playground-html-1.6.27" = {
@@ -364,13 +364,13 @@ let
         sha512 = "TmB2K5UfpDpSbCNBBntXzKHcAk2EA3/P68jmWvmJvglVUdkO9V6kTAuXVe12+h6C4GK0ndwuCrHHtEVcL5t6pQ==";
       };
     };
-    "@astrojs/svelte-language-integration-0.1.2" = {
+    "@astrojs/svelte-language-integration-0.1.3" = {
       name = "_at_astrojs_slash_svelte-language-integration";
       packageName = "@astrojs/svelte-language-integration";
-      version = "0.1.2";
+      version = "0.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@astrojs/svelte-language-integration/-/svelte-language-integration-0.1.2.tgz";
-        sha512 = "O6LYL9igYSzxCxDHYWUqEquuuUlMG0UL1SliZ7rF/vx9GwU71TCpsRe4iHZ0bcemM5ju9ihoTzGCmLXzYrNw0g==";
+        url = "https://registry.npmjs.org/@astrojs/svelte-language-integration/-/svelte-language-integration-0.1.3.tgz";
+        sha512 = "sXCe9FBgn31HAlBwimT2RfveNrYP6/j+XT/YHlj15tdlYqqcEQUj3IP43wSWwkIKwtKVrHWUjY+SOk+MeD+eow==";
       };
     };
     "@aws-crypto/crc32-2.0.0" = {
@@ -463,49 +463,49 @@ let
         sha512 = "o/xjMCq81opAjSBjt7YdHJwIJcGVG5XIV9+C2KXcY5QwVimkOKPybWTv0mXPvSwSilSx+EhpLNhkcJuXdzhw4w==";
       };
     };
-    "@aws-sdk/chunked-blob-reader-native-3.55.0" = {
+    "@aws-sdk/chunked-blob-reader-native-3.58.0" = {
       name = "_at_aws-sdk_slash_chunked-blob-reader-native";
       packageName = "@aws-sdk/chunked-blob-reader-native";
-      version = "3.55.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.55.0.tgz";
-        sha512 = "juorCwSR9O1XhpSIBSAiIH7cP1c67J4wnoiXmmbun/qzmBPipGYm0PHX5H+J89s8gD2F3e49/TWFXbZmxRw57w==";
+        url = "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.58.0.tgz";
+        sha512 = "+D3xnPD5985iphgAqgUerBDs371a2WzzoEVi7eHJUMMsP/gEnSTdSH0HNxsqhYv6CW4EdKtvDAQdAwA1VtCf2A==";
       };
     };
-    "@aws-sdk/client-s3-3.56.0" = {
+    "@aws-sdk/client-s3-3.72.0" = {
       name = "_at_aws-sdk_slash_client-s3";
       packageName = "@aws-sdk/client-s3";
-      version = "3.56.0";
+      version = "3.72.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.56.0.tgz";
-        sha512 = "g/OiJtD8d0roi3XK5ThIwEvkAkSDoKzxkE0gqKKJNABBnyozNnDNAVt4XnMxuXX1PPjg1KVKH2iJWFGj5I0jPQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.72.0.tgz";
+        sha512 = "WQnNs++yTsBARaZqpxIAB3CX9BrqgxnLo4g/wT8cLqRilhL8OY1KPowe8SptXcXbo2AdAuAtcFK2GC+MYcCgmg==";
       };
     };
-    "@aws-sdk/client-sso-3.56.0" = {
+    "@aws-sdk/client-sso-3.72.0" = {
       name = "_at_aws-sdk_slash_client-sso";
       packageName = "@aws-sdk/client-sso";
-      version = "3.56.0";
+      version = "3.72.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.56.0.tgz";
-        sha512 = "5gkbkNK1iaQ7C053HG5yvWNE/AB8w39kxk/VGxACrX6bVZR1tnN36vhInjom83mWlDIu0Tl5WqD8tmkjqCYMFQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.72.0.tgz";
+        sha512 = "mQ2qSy5chVTzNo17kcOtylp8gUJr2SIx7ZkaC5ZUrA9RZu673XKFm1SXvL0aBw1LQBioKU2kGNwsUSDunXulpQ==";
       };
     };
-    "@aws-sdk/client-sts-3.56.0" = {
+    "@aws-sdk/client-sts-3.72.0" = {
       name = "_at_aws-sdk_slash_client-sts";
       packageName = "@aws-sdk/client-sts";
-      version = "3.56.0";
+      version = "3.72.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.56.0.tgz";
-        sha512 = "6LFwAU/K02Q8eNk8O/ZnaPCsnDibKYReiRV222hD64vy8rMvtGO1l+RTf5cFVa1XxHNy9ZERIJBn60EO2Zw7FA==";
+        url = "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.72.0.tgz";
+        sha512 = "m6nEXe5wi7Cx9DHBFOji+i2tn+EXNlBC2BymlFZ+KerxAfjLyu9U16Xx9VzmfnQS5dz0Fyh0DLBIcI9DY5+ywQ==";
       };
     };
-    "@aws-sdk/config-resolver-3.56.0" = {
+    "@aws-sdk/config-resolver-3.58.0" = {
       name = "_at_aws-sdk_slash_config-resolver";
       packageName = "@aws-sdk/config-resolver";
-      version = "3.56.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.56.0.tgz";
-        sha512 = "Gzx/fkUqixQkNpqoVTyR0+BUpJTfv+9qBNbhBw79V+HnPeY+tyqkVB4vZNJYbYSR6A/rMwYThxPOfvsNDFPk6A==";
+        url = "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.58.0.tgz";
+        sha512 = "NXEwYw0JrXcvenu42QpNMQXK+6pgZ+6bDGfCgOfCC0FmyI+w/CuF36lApwm7InHvHazOaDlwArXm2pfntErKoA==";
       };
     };
     "@aws-sdk/credential-provider-env-3.55.0" = {
@@ -517,49 +517,49 @@ let
         sha512 = "4AIIXEdvinLlWNFtrUbUgoB7dkuV04RTcTruVWI4Ub4WSsuSCa72ZU1vqyvcEAOgGGLBmcSaGTWByjiD2sGcGA==";
       };
     };
-    "@aws-sdk/credential-provider-imds-3.56.0" = {
+    "@aws-sdk/credential-provider-imds-3.58.0" = {
       name = "_at_aws-sdk_slash_credential-provider-imds";
       packageName = "@aws-sdk/credential-provider-imds";
-      version = "3.56.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.56.0.tgz";
-        sha512 = "EibXjFcGtDEm8g9DhGtJpcVLxRhnN1tnrTxwlwTdc510k7F4Aly7PNLT/72tr4IQ8hl9eCCYgsNBpPDlY4pMmQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.58.0.tgz";
+        sha512 = "CdtnTQ9zqLx1FbXdbgjijLbMcIWOyQM03TFaLSCjI3FNbUwyt3T7StBU9tj/LtbypHhSdXyQBpzUtXTOMWCEhg==";
       };
     };
-    "@aws-sdk/credential-provider-ini-3.56.0" = {
+    "@aws-sdk/credential-provider-ini-3.72.0" = {
       name = "_at_aws-sdk_slash_credential-provider-ini";
       packageName = "@aws-sdk/credential-provider-ini";
-      version = "3.56.0";
+      version = "3.72.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.56.0.tgz";
-        sha512 = "XpZf8LPIIbBI0zvsRPW9ZNyom5ymctr+lMIv62w9bUglojdVtBVC2ErGBmQXSWWITk/hzFZ122txU5fyRjyAFg==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.72.0.tgz";
+        sha512 = "KeZAywZ5CxEUIRvIpxRiOkRUwGy+rTTGTfjQz/Mz6AUj+nx+8M5WnSLRgENcwXmX59A7VdqosvD1jnRiXJjmPg==";
       };
     };
-    "@aws-sdk/credential-provider-node-3.56.0" = {
+    "@aws-sdk/credential-provider-node-3.72.0" = {
       name = "_at_aws-sdk_slash_credential-provider-node";
       packageName = "@aws-sdk/credential-provider-node";
-      version = "3.56.0";
+      version = "3.72.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.56.0.tgz";
-        sha512 = "TSnjA1grdyTP8xNNgNxLmOvZMUT3zT9JLydBOqpQptLjLBbP90F32CCxKZWFOA/DXtZA0QK9Fjo+8t0Q3xZtiw==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.72.0.tgz";
+        sha512 = "8yNNILXPAD9RlcKI0aronXOgwF9vRZQqEwPuvkurCPFQFt+OM/4/HTJns2NSVmImKDMV36sG+6Ld6aJEVW4cLQ==";
       };
     };
-    "@aws-sdk/credential-provider-process-3.56.0" = {
+    "@aws-sdk/credential-provider-process-3.58.0" = {
       name = "_at_aws-sdk_slash_credential-provider-process";
       packageName = "@aws-sdk/credential-provider-process";
-      version = "3.56.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.56.0.tgz";
-        sha512 = "B+Y35sefW1iTKqAPdlgzRy4lYx7nhXQNn+gyyt1ohfJLEvP3twv/n2xdNrF9xewCyF9glBm3YkxSleFZsGoBCw==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.58.0.tgz";
+        sha512 = "npgFqPUjMhUamf1FvJjBYUdpbWx8XWkKCwJsX73I7IYQAvAi2atCOkdtKq+4rds0VWAYu6vzlaI1tXgFxjOPNQ==";
       };
     };
-    "@aws-sdk/credential-provider-sso-3.56.0" = {
+    "@aws-sdk/credential-provider-sso-3.72.0" = {
       name = "_at_aws-sdk_slash_credential-provider-sso";
       packageName = "@aws-sdk/credential-provider-sso";
-      version = "3.56.0";
+      version = "3.72.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.56.0.tgz";
-        sha512 = "oCUWNl742VgrlES5LVgmtyl6ruin8xXCG8Igv6SO0gxYswkv/ed/3yhQfOOaUmO4hY7p+q0ClwXZ3EQ3UH66wg==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.72.0.tgz";
+        sha512 = "2NGjF2gMls5f/9QbUQEHR9kbVGePLI7EXVOyPb1H6DvQLp54keMVdTlSzKlRIcGUNd4MBYuDJak8Slf976/UVw==";
       };
     };
     "@aws-sdk/credential-provider-web-identity-3.55.0" = {
@@ -571,22 +571,22 @@ let
         sha512 = "aKnXfZNGohTuF9rCGYLg4JEIOvWIZ/sb66XMq7bOUrx13KRPDwL/eUQL8quS5jGRLpjXVNvrS17AFf65GbdUBg==";
       };
     };
-    "@aws-sdk/eventstream-marshaller-3.55.0" = {
+    "@aws-sdk/eventstream-marshaller-3.58.0" = {
       name = "_at_aws-sdk_slash_eventstream-marshaller";
       packageName = "@aws-sdk/eventstream-marshaller";
-      version = "3.55.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/eventstream-marshaller/-/eventstream-marshaller-3.55.0.tgz";
-        sha512 = "ubPmAce0pxVsxrKsQQ/1q0xTY9S14m2/7REnkE0pzAGrl8xjH5OUpGml4yWqyboZPk1chnTaw+hoC5fj8Avexw==";
+        url = "https://registry.npmjs.org/@aws-sdk/eventstream-marshaller/-/eventstream-marshaller-3.58.0.tgz";
+        sha512 = "vTdVFLIHGZTx/Anp9GpkTXVuvwSCNOecTutU5Py4i6fATgefWiSutc5Xc/FLujBSc0EhAXDGZIcTMpZC7jUpeg==";
       };
     };
-    "@aws-sdk/eventstream-serde-browser-3.55.0" = {
+    "@aws-sdk/eventstream-serde-browser-3.72.0" = {
       name = "_at_aws-sdk_slash_eventstream-serde-browser";
       packageName = "@aws-sdk/eventstream-serde-browser";
-      version = "3.55.0";
+      version = "3.72.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.55.0.tgz";
-        sha512 = "V0/54j6sTBIRjhJJWjG1j44PsmZHfYzD0n2vxfhwmEvrK3BSXYU3Z3D9kYcajSvcvO8KRFU9/ZqRFJEN60Cl1g==";
+        url = "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.72.0.tgz";
+        sha512 = "UhMZ4P60mZu7G+craAdkRgR4/n3lWAgrNp1upgN2W8RLEQwhqY3qHiUdn/kp6qvontwHnxZkXNB+5Zm5pcP8bQ==";
       };
     };
     "@aws-sdk/eventstream-serde-config-resolver-3.55.0" = {
@@ -598,40 +598,40 @@ let
         sha512 = "NTJHLq1sbXyXAaJucKvcdN3Svr/fM2TjHEC3l8P/torFjIsX1+Ykpi8tZt8KsX8RjoUTTfKylh41AjJq0K9X4Q==";
       };
     };
-    "@aws-sdk/eventstream-serde-node-3.55.0" = {
+    "@aws-sdk/eventstream-serde-node-3.72.0" = {
       name = "_at_aws-sdk_slash_eventstream-serde-node";
       packageName = "@aws-sdk/eventstream-serde-node";
-      version = "3.55.0";
+      version = "3.72.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.55.0.tgz";
-        sha512 = "0/kzJfupYrNLbJqn+MsTGGV0/dhPbqTN6g/4GqnoVDOiZPQeJjWEzmrWcXUDDbXq79+Zw0fIlniVkAMxhK2hvw==";
+        url = "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.72.0.tgz";
+        sha512 = "woemBkQ3O7mTiT3kdJH72s3lQLhr2B7hxRhYeaa1xQf1UjLJkKXL5PEOOrcylmxLdF6rYLsFs8Y/Hr4FZfqAqA==";
       };
     };
-    "@aws-sdk/eventstream-serde-universal-3.55.0" = {
+    "@aws-sdk/eventstream-serde-universal-3.72.0" = {
       name = "_at_aws-sdk_slash_eventstream-serde-universal";
       packageName = "@aws-sdk/eventstream-serde-universal";
-      version = "3.55.0";
+      version = "3.72.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.55.0.tgz";
-        sha512 = "fUqmpCO1jtdg5t1KQbKfs17KGsMUj9+d2hiIx7XxnL5SroXpBU6LIuiFgrjPluGWi0SsdOrL6SAkrDyR6aa/Xw==";
+        url = "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.72.0.tgz";
+        sha512 = "iIaDC/2xgK+2kLiOPJv8wMDCCtI2JB8bkeac6cQOfn4hZGQdP6fvRGFWD2R8//VR52H68N2vrhCXHvtjnF4iFg==";
       };
     };
-    "@aws-sdk/fetch-http-handler-3.55.0" = {
+    "@aws-sdk/fetch-http-handler-3.58.0" = {
       name = "_at_aws-sdk_slash_fetch-http-handler";
       packageName = "@aws-sdk/fetch-http-handler";
-      version = "3.55.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.55.0.tgz";
-        sha512 = "/Sta3MLlszpRZ1pg+ClxfNqGvraX93F587eHrfQMaGXgQ2BqJLiAVRorBRGcmmmrHxfLOqspNqufF7ibrqziRQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.58.0.tgz";
+        sha512 = "timF3FjPV5Bd+Kgph83LIKVlPCFObVYzious1a6doeLAT6YFwZpRrWbfP/HzS+DCoYiwUsH69oVJ91BoV66oyA==";
       };
     };
-    "@aws-sdk/hash-blob-browser-3.55.0" = {
+    "@aws-sdk/hash-blob-browser-3.58.0" = {
       name = "_at_aws-sdk_slash_hash-blob-browser";
       packageName = "@aws-sdk/hash-blob-browser";
-      version = "3.55.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.55.0.tgz";
-        sha512 = "/tVsZDPXgxIovFRrKclcq304KEHcHUbBcpqar2QRYZAvaK+vxZM9h7ZmAKemmlkzV7mdh0KZqzPnfr6+KN4IGg==";
+        url = "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.58.0.tgz";
+        sha512 = "fdp12BqypRxwvevbJSl/sUhXJRi4Ghv6JKEXAHI1klkR6xY1GRORO5SHWltVY/xl373ERMol5o/n+ra/7jcx/g==";
       };
     };
     "@aws-sdk/hash-node-3.55.0" = {
@@ -643,13 +643,13 @@ let
         sha512 = "2UdYwY/++AlzWEAFaK9wOed2QSxbzV527vmqKjReLHpPKPrSIlooUxlTH3LU6Y6WVDAzDRtLK43KUVXTLgGK1A==";
       };
     };
-    "@aws-sdk/hash-stream-node-3.55.0" = {
+    "@aws-sdk/hash-stream-node-3.58.0" = {
       name = "_at_aws-sdk_slash_hash-stream-node";
       packageName = "@aws-sdk/hash-stream-node";
-      version = "3.55.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.55.0.tgz";
-        sha512 = "0FuQmHZK3XAd+dL+UC36PiPhZ80lOvkbFusFpZLwXTelXB3AUsiVl2IebA4EpE352XU+1ACEAAWwQpj8zsdcOw==";
+        url = "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.58.0.tgz";
+        sha512 = "y7HEeC3OiuXCRqsHnKDn5yef8UAbnegD9r+OM9bdD+3e6FLAL8Rq7hQTOpwIAiPXuD7HKx8h98s9JLvkwTOBkg==";
       };
     };
     "@aws-sdk/invalid-dependency-3.55.0" = {
@@ -670,67 +670,67 @@ let
         sha512 = "NbiPHVYuPxdqdFd6FxzzN3H1BQn/iWA3ri3Ry7AyLeP/tGs1yzEWMwf8BN8TSMALI0GXT6Sh0GDWy3Ok5xB6DA==";
       };
     };
-    "@aws-sdk/md5-js-3.55.0" = {
+    "@aws-sdk/md5-js-3.58.0" = {
       name = "_at_aws-sdk_slash_md5-js";
       packageName = "@aws-sdk/md5-js";
-      version = "3.55.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.55.0.tgz";
-        sha512 = "+jh2p2B0KsyODQR01bAh7Ywladi9oVL4MSfskwl6AQApKaj8/2xLqW9I89zbRSMfPEgi2eIksQgCWET7tUc29Q==";
+        url = "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.58.0.tgz";
+        sha512 = "V5f4Re+CLn3aDF1nrmDqdUtcqBHCyxxD2s2Ot+hZ2JFit+OtJggo1cI03ldTrQpG79rwHG+bHqL2VvNQP7Aj9A==";
       };
     };
-    "@aws-sdk/middleware-bucket-endpoint-3.56.0" = {
+    "@aws-sdk/middleware-bucket-endpoint-3.58.0" = {
       name = "_at_aws-sdk_slash_middleware-bucket-endpoint";
       packageName = "@aws-sdk/middleware-bucket-endpoint";
-      version = "3.56.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.56.0.tgz";
-        sha512 = "czf0u1+QeYg43hXYpR/udf3YwIq1CX5kd4bL5U6DryH9E39sHeIoEGt5NC+82OTnbezqrHBalzZX7h7Y2pI8Sg==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.58.0.tgz";
+        sha512 = "zocLfFzj+NQjXLGZKPJBAYWWldAKBJkGzGVpTfrYx9bxxHTA70Gu+3sx+Xe+iOu8dtQT0OAnIX0wGudOPnTGNg==";
       };
     };
-    "@aws-sdk/middleware-content-length-3.55.0" = {
+    "@aws-sdk/middleware-content-length-3.58.0" = {
       name = "_at_aws-sdk_slash_middleware-content-length";
       packageName = "@aws-sdk/middleware-content-length";
-      version = "3.55.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.55.0.tgz";
-        sha512 = "IkFBwa1G5ERfKFh4Kdtcn/aNAGi3Hcp9IO1PVt69LZWaevxjXAi5NS2k65E9mZPEumzuLtcEeC+3qhPs4FUkqQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.58.0.tgz";
+        sha512 = "h/BypPkhjv2CpCUbXA8Fa2s7V2GPiz9l11XhYK+sKSuQvQ7Lbq6VhaKaLqfeD3gLVZHgJZSLGl2btdHV1qHNNA==";
       };
     };
-    "@aws-sdk/middleware-expect-continue-3.55.0" = {
+    "@aws-sdk/middleware-expect-continue-3.58.0" = {
       name = "_at_aws-sdk_slash_middleware-expect-continue";
       packageName = "@aws-sdk/middleware-expect-continue";
-      version = "3.55.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.55.0.tgz";
-        sha512 = "RT6w9AJvZyMn8Cdw6RHaLK8c/Lkqdi4v19XAJCPaAaD2rQ6GhZ+AawgfkF5zawzN1TgzLmzWB4e1ts4+chr74Q==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.58.0.tgz";
+        sha512 = "nx6X6qLPwvbJrGoPxXSu4tsOek2eRnnjk78hhRUDfxFewpHJQLSPlyNKkXAo+C3syVALe6RJRmUYu5bShY6FfA==";
       };
     };
-    "@aws-sdk/middleware-flexible-checksums-3.55.0" = {
+    "@aws-sdk/middleware-flexible-checksums-3.72.0" = {
       name = "_at_aws-sdk_slash_middleware-flexible-checksums";
       packageName = "@aws-sdk/middleware-flexible-checksums";
-      version = "3.55.0";
+      version = "3.72.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.55.0.tgz";
-        sha512 = "Uhx0HAUkpRfRny5bGNPYNlaznMKSa5d88RWhrAEiYMgrhUsOcAahyj74lHrphGQ0nUwJr67uq55GPRRWn9Q4Ig==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.72.0.tgz";
+        sha512 = "lrwTmpygp6bxGRi6kbMq+EtTW5nsts+B7Wj7MA8PBIQsKU06T2tYxjDBYOyHB1MiVhltlq+vebBvacT64KsbFA==";
       };
     };
-    "@aws-sdk/middleware-header-default-3.55.0" = {
+    "@aws-sdk/middleware-header-default-3.58.0" = {
       name = "_at_aws-sdk_slash_middleware-header-default";
       packageName = "@aws-sdk/middleware-header-default";
-      version = "3.55.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-header-default/-/middleware-header-default-3.55.0.tgz";
-        sha512 = "IrIsVoiol36Ap3VLtrofx95PkiBd4aNw6k4FRi9TsRxmOhfcAe3MvG521wyVEg+n3DqkYPb1N4SVTUENewo8bQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-header-default/-/middleware-header-default-3.58.0.tgz";
+        sha512 = "7F+CdLLauMmNbwFGYrE2pKsgTKY8G2PgazHmaE9s3FySEFcGPWmiEAG8sVImfZooj8gxGFQMLr97nanWjhSq2Q==";
       };
     };
-    "@aws-sdk/middleware-host-header-3.55.0" = {
+    "@aws-sdk/middleware-host-header-3.58.0" = {
       name = "_at_aws-sdk_slash_middleware-host-header";
       packageName = "@aws-sdk/middleware-host-header";
-      version = "3.55.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.55.0.tgz";
-        sha512 = "69mTWJfuPP4aC+h2/cb9B2CUNA9tiRPUBp67dmMrA2dHyy53kNYo8TGgfLKProoBidBz/AVXIfnh+izJj0F20w==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.58.0.tgz";
+        sha512 = "q/UKGcanm9e6DBRNN6UKhVqLvpRRdZWbmmPCeDNr4HqhCmgT6i1OvWdhAMOnT++hvCX8DpTsIXzNSlY6zWAxBg==";
       };
     };
     "@aws-sdk/middleware-location-constraint-3.55.0" = {
@@ -751,31 +751,31 @@ let
         sha512 = "PtRbVrxEzDmeV9prBIP4/9or7R5Dj66mjbFSvNRGZ0n+UBfBFfVRfNrhQPNzQpfV9A3KVl9YyWCVXDSW+/rk9Q==";
       };
     };
-    "@aws-sdk/middleware-retry-3.56.0" = {
+    "@aws-sdk/middleware-retry-3.58.0" = {
       name = "_at_aws-sdk_slash_middleware-retry";
       packageName = "@aws-sdk/middleware-retry";
-      version = "3.56.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.56.0.tgz";
-        sha512 = "AkunQvVex5JimQ+xLDcPcdsseVdvxE5rUSPh/NKLGO0bOyMxPnJSRlOxrOoibK0i1BPHkTpwdx+BDFrWiRLqug==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.58.0.tgz";
+        sha512 = "sfSq+t0Yy47DQwrWGpA8iOx9sd26l4l1JDVTwHNi7+OKD4ClRPVCEdw3bTbbyYz/PV4f9AEfAZ6jwtSff4wkGw==";
       };
     };
-    "@aws-sdk/middleware-sdk-s3-3.56.0" = {
+    "@aws-sdk/middleware-sdk-s3-3.66.0" = {
       name = "_at_aws-sdk_slash_middleware-sdk-s3";
       packageName = "@aws-sdk/middleware-sdk-s3";
-      version = "3.56.0";
+      version = "3.66.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.56.0.tgz";
-        sha512 = "ERHjQsA4ZTMDiKlSWF6dGt/UT15OQCCR8qRR+d/n3hVs6Nzyrt/ajEIBuea7E5lDuGwgyua5wkj1UjiHFQ4YeA==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.66.0.tgz";
+        sha512 = "4ACAdKAZkIjEK99UwoaKTrTGhS7qGqyLmjiGHlzR0ggMUUVmlep7EtcluImFtT6pi+ANVLDzuZGa+95MwGY/Qg==";
       };
     };
-    "@aws-sdk/middleware-sdk-sts-3.56.0" = {
+    "@aws-sdk/middleware-sdk-sts-3.58.0" = {
       name = "_at_aws-sdk_slash_middleware-sdk-sts";
       packageName = "@aws-sdk/middleware-sdk-sts";
-      version = "3.56.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.56.0.tgz";
-        sha512 = "LutcntT3DvS0nnHdGPHES+J+NUtKJFAVgz1gSqPq4MLIAB5oUm9QAWhmki5s2dfBbeRR7Kh1tWpzE00XowyBog==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.58.0.tgz";
+        sha512 = "HUz7MhcsSDDTGygOwL61l4voc0pZco06J3z06JjTX19D5XxcQ7hSCtkHHHz0oMb9M1himVSiEon2tjhjsnB99g==";
       };
     };
     "@aws-sdk/middleware-serde-3.55.0" = {
@@ -787,13 +787,13 @@ let
         sha512 = "NkEbTDrSZcC2NhuvfjXHKJEl0xgI2B5tMAwi/rMOq/TEnARwVUL9qAy+5lgeiPCqebiNllWatARrFgAaYf0VeA==";
       };
     };
-    "@aws-sdk/middleware-signing-3.56.0" = {
+    "@aws-sdk/middleware-signing-3.58.0" = {
       name = "_at_aws-sdk_slash_middleware-signing";
       packageName = "@aws-sdk/middleware-signing";
-      version = "3.56.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.56.0.tgz";
-        sha512 = "m0Rmlb3eojvZs0DQdfTZ+xJwJ0SuTXdeXn75jnpDAlnzRNKy7aRGYSsHChK8nkXgYKkpO2JmYywiTUriwwVULA==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.58.0.tgz";
+        sha512 = "4FXubHB66GbhyZUlo6YPQoWpYfED15GNbEmHbJLSONzrVzZR3IkViSPLasDngVm1a050JqKuqNkFYGJBP4No/Q==";
       };
     };
     "@aws-sdk/middleware-ssec-3.55.0" = {
@@ -814,31 +814,31 @@ let
         sha512 = "ouD+wFz8W2R0ZQ8HrbhgN8tg1jyINEg9lPEEXY79w1Q5sf94LJ90XKAMVk02rw3dJalUWjLHf0OQe1/qxZfHyA==";
       };
     };
-    "@aws-sdk/middleware-user-agent-3.55.0" = {
+    "@aws-sdk/middleware-user-agent-3.58.0" = {
       name = "_at_aws-sdk_slash_middleware-user-agent";
       packageName = "@aws-sdk/middleware-user-agent";
-      version = "3.55.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.55.0.tgz";
-        sha512 = "UOBimkQrj6onXb3Fyuao85IjipnDSowNHfOOl3ADVX9boA/A4db5QAXBSxThV0WHLArC0iiUsnwu95ElSSMVIg==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.58.0.tgz";
+        sha512 = "1c69bIWM63JwXijXvb9IWwcwQ/gViKMZ1lhxv52NvdG5VSxWXXsFJ2jETEXZoAypwT97Hmf3xo9SYuaHcKoq+g==";
       };
     };
-    "@aws-sdk/node-config-provider-3.56.0" = {
+    "@aws-sdk/node-config-provider-3.58.0" = {
       name = "_at_aws-sdk_slash_node-config-provider";
       packageName = "@aws-sdk/node-config-provider";
-      version = "3.56.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.56.0.tgz";
-        sha512 = "2uCisndaymG/tXsfVj+ZqybmNTRJwhTm3sPBB8+utSDcUe7PWR0viNEqR2lPO5Uds1zOQm4MPv1v+j4jZufFyw==";
+        url = "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.58.0.tgz";
+        sha512 = "AMcPqPhKxo/3/yOMS9PsKlI0GWp2/8eD6gSlhzdBpznPCKplyqXOSnSX7wS814Cyh373hFSjCaOrCOA9/EYtDg==";
       };
     };
-    "@aws-sdk/node-http-handler-3.55.0" = {
+    "@aws-sdk/node-http-handler-3.58.0" = {
       name = "_at_aws-sdk_slash_node-http-handler";
       packageName = "@aws-sdk/node-http-handler";
-      version = "3.55.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.55.0.tgz";
-        sha512 = "yF4YQr72YgVgWO9IDOhDcncqlKUJmMCtserAYhKNvmkVuaMGHE11p+IByWgcIsMJTvtFaFBhTA3W7zhJB1C1xA==";
+        url = "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.58.0.tgz";
+        sha512 = "D9xVZG2nfo4GbPsby3JuBiAhpqXTFk1+CfuQU0AZv0gQvE3fFTCnB3za83jo7JV/pyRPU+s+/LHIpxCWUHzStg==";
       };
     };
     "@aws-sdk/property-provider-3.55.0" = {
@@ -850,13 +850,13 @@ let
         sha512 = "o7cKFJSHq5WOhwPsspYrzNto35oKKZvESZuWDtLxaZKSI6l7zpA366BI4kDG6Tc9i2+teV553MbxyZ9eya5A8g==";
       };
     };
-    "@aws-sdk/protocol-http-3.55.0" = {
+    "@aws-sdk/protocol-http-3.58.0" = {
       name = "_at_aws-sdk_slash_protocol-http";
       packageName = "@aws-sdk/protocol-http";
-      version = "3.55.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.55.0.tgz";
-        sha512 = "vNjjsP5bFuKQMhmuBQZDddH441xanPbm8n42qgfigv0RzgWQhvUFrnmZWLBdyY8geY0RwsQ6x9yfQ0gvs48tpw==";
+        url = "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.58.0.tgz";
+        sha512 = "0yFFRPbR+CCa9eOQBBQ2qtrIDLYqSMN0y7G4iqVM8wQdIw7n3QK1PsTI3RNPGJ3Oi2krFTw5uUKqQQZPZEBuVQ==";
       };
     };
     "@aws-sdk/querystring-builder-3.55.0" = {
@@ -877,13 +877,13 @@ let
         sha512 = "e+2FLgo+eDx7oh7ap5HngN9XSVMxredAVztLHxCcSN0lFHHHzMa8b2SpXbaowUxQHh7ziymSqvOrPYFQ71Filg==";
       };
     };
-    "@aws-sdk/s3-request-presigner-3.56.0" = {
+    "@aws-sdk/s3-request-presigner-3.72.0" = {
       name = "_at_aws-sdk_slash_s3-request-presigner";
       packageName = "@aws-sdk/s3-request-presigner";
-      version = "3.56.0";
+      version = "3.72.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.56.0.tgz";
-        sha512 = "Ct/eGVojY1Mtmd4oC3n+OXnL7QmEDCQ8pXIGvhZIFwd/ZyiZsMdEz9ZO2+b8izdMGu9V9gg8EftV+hDfbMxMOQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.72.0.tgz";
+        sha512 = "6CxvI0tdamXn58OEmg59YHZPpsiLvCDtbijs9JhCYxvMblhkyPwWZglsZgcEkzIEPySe9RTZ5/BTHn6FzAe4xw==";
       };
     };
     "@aws-sdk/service-error-classification-3.55.0" = {
@@ -895,31 +895,40 @@ let
         sha512 = "HdjnDyarsa1Avq1MJurkLyEe9c3eRa76dPmK4TmRGgwJ+tInEzGHL0rBW7V8xBK+PDF+fJQ71hvm8jPYmzvBwQ==";
       };
     };
-    "@aws-sdk/shared-ini-file-loader-3.56.0" = {
+    "@aws-sdk/shared-ini-file-loader-3.58.0" = {
       name = "_at_aws-sdk_slash_shared-ini-file-loader";
       packageName = "@aws-sdk/shared-ini-file-loader";
-      version = "3.56.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.56.0.tgz";
-        sha512 = "dCy3mXqYKK76iep9rn2inFrPOlGURvoO+B0Ygem0jgkDuxIF8t5wa10WHWB2ee8qZRlfwPYtcVdpEm2398St3g==";
+        url = "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.58.0.tgz";
+        sha512 = "ARDKQerIzgNs/MFNdCEuK2lgRJ1lneAaJw0p9O1LkJUvcSibvkSATwny7vwJMueOf+ae1Pf+8+54OMNIt0nTkQ==";
       };
     };
-    "@aws-sdk/signature-v4-3.56.0" = {
+    "@aws-sdk/signature-v4-3.58.0" = {
       name = "_at_aws-sdk_slash_signature-v4";
       packageName = "@aws-sdk/signature-v4";
-      version = "3.56.0";
+      version = "3.58.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.58.0.tgz";
+        sha512 = "flEo8p3XkzWoBDqnIUQre4jLuT5aLnmfQNI8c2uSjyJ3OBxpJ0iS1cDu3E++d1/pN6Q8o0KOmr2ypHeiyBOujw==";
+      };
+    };
+    "@aws-sdk/signature-v4-multi-region-3.66.0" = {
+      name = "_at_aws-sdk_slash_signature-v4-multi-region";
+      packageName = "@aws-sdk/signature-v4-multi-region";
+      version = "3.66.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.56.0.tgz";
-        sha512 = "aCvYQDMSAPe2K1lk0A+B+4xPBF50zf5ufO2k6FmBba020kqe8ODZjLq6vJJJfwrywc1B+2xWKvdpvCB7qbAOUw==";
+        url = "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.66.0.tgz";
+        sha512 = "Akvc8G9Del2+umg0R/5Gc/PWgQwbxxTXdnm6YTHtDzvyPPiYWBs6au6WqJQqcqk07gcQV67MLVqFFhnFuLlcVg==";
       };
     };
-    "@aws-sdk/smithy-client-3.55.0" = {
+    "@aws-sdk/smithy-client-3.72.0" = {
       name = "_at_aws-sdk_slash_smithy-client";
       packageName = "@aws-sdk/smithy-client";
-      version = "3.55.0";
+      version = "3.72.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.55.0.tgz";
-        sha512 = "YgBpqg6R3Qg8CH9biOP1N1lYTvh8VLGD6AoDGgy/R1dQSqRQuxgKANLl3DOVcZnIZLsw4TdB0m7U+ZPtirPR1Q==";
+        url = "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.72.0.tgz";
+        sha512 = "eQ2pEzxtS1Vz1XyNKzG4Z+mtfwRzcAs4FUQP0wrrYVJMsIdI0X4vvro8gYGoBbQtOz65uY3XqQdLuXX/SabTQg==";
       };
     };
     "@aws-sdk/types-3.55.0" = {
@@ -949,13 +958,13 @@ let
         sha512 = "76KJxp4MRWufHYWys7DFl64znr5yeJ3AIQNAPCKKw1sP0hzO7p6Kx0PaJnw9x+CPSzOrT4NbuApL6/srYhKDGg==";
       };
     };
-    "@aws-sdk/util-base64-browser-3.55.0" = {
+    "@aws-sdk/util-base64-browser-3.58.0" = {
       name = "_at_aws-sdk_slash_util-base64-browser";
       packageName = "@aws-sdk/util-base64-browser";
-      version = "3.55.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.55.0.tgz";
-        sha512 = "3hrZ2R/ZyD3IM25KhETOGLC5tB/ft8zoyVmNg1l4+takoUm46ompnglFXCVkWBu9Hpxc+M4XtiY7MHE6es4Wtg==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.58.0.tgz";
+        sha512 = "0ebsXIZNpu/fup9OgsFPnRKfCFbuuI9PPRzvP6twzLxUB0c/aix6Co7LGHFKcRKHZdaykoJMXArf8eHj2Nzv1Q==";
       };
     };
     "@aws-sdk/util-base64-node-3.55.0" = {
@@ -1003,49 +1012,49 @@ let
         sha512 = "30dzofQQfx6tp1jVZkZ0DGRsT0wwC15nEysKRiAcjncM64A0Cm6sra77d0os3vbKiKoPCI/lMsFr4o3533+qvQ==";
       };
     };
-    "@aws-sdk/util-create-request-3.55.0" = {
+    "@aws-sdk/util-create-request-3.72.0" = {
       name = "_at_aws-sdk_slash_util-create-request";
       packageName = "@aws-sdk/util-create-request";
-      version = "3.55.0";
+      version = "3.72.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-create-request/-/util-create-request-3.55.0.tgz";
-        sha512 = "ihCVXBWQopYk9R1H/+IsBKuRx1OqBx4OmTMzL7dRC+wnOV1h0nOUhps19QidppT/uIZUnuV8EZs3KnOWdZzH3w==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-create-request/-/util-create-request-3.72.0.tgz";
+        sha512 = "SRxo1RWQ9e7QonuIH8oNEiOJTtasOtYNRD5QYwbJKhNkB4Z6AaE00V28AjrdS/+rMOcb0DKugXZ8Nhbd+n+K0g==";
       };
     };
-    "@aws-sdk/util-defaults-mode-browser-3.55.0" = {
+    "@aws-sdk/util-defaults-mode-browser-3.72.0" = {
       name = "_at_aws-sdk_slash_util-defaults-mode-browser";
       packageName = "@aws-sdk/util-defaults-mode-browser";
-      version = "3.55.0";
+      version = "3.72.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.55.0.tgz";
-        sha512 = "OS3gAwR84bHz7ObhjsSJM+grfeaBq3leGrj7xiX4BH3C8J+c10GMo3fqx1pV8Fq5F+9lMmhHpfOocD63SN5Q8A==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.72.0.tgz";
+        sha512 = "xeoh4jdq+tpZWDwGeXeoAQI+rZaCBEicjumBcqfzkRFE3DyaeyPHn3hiKGSR13R+P6Uf86aqaRNmWAeZZjeE0w==";
       };
     };
-    "@aws-sdk/util-defaults-mode-node-3.56.0" = {
+    "@aws-sdk/util-defaults-mode-node-3.72.0" = {
       name = "_at_aws-sdk_slash_util-defaults-mode-node";
       packageName = "@aws-sdk/util-defaults-mode-node";
-      version = "3.56.0";
+      version = "3.72.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.56.0.tgz";
-        sha512 = "NKHW5kxH5EIcAa4b0Vua6t75z5D3lanwbAeiHzYrA1MeDIFlfXHs/kiHT2KTpr6stZZEEVPOEwb628AnkHAZTg==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.72.0.tgz";
+        sha512 = "Qf4BZmjWTaWaWbIhra/il8zUAdYY6G4JIcg9WMzQgnh1L/iXpCZddInfB2zT4j5rSAuBf5Ov2T6zvtw3/KOh6Q==";
       };
     };
-    "@aws-sdk/util-format-url-3.55.0" = {
+    "@aws-sdk/util-format-url-3.58.0" = {
       name = "_at_aws-sdk_slash_util-format-url";
       packageName = "@aws-sdk/util-format-url";
-      version = "3.55.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.55.0.tgz";
-        sha512 = "xSVunSEiTPzemeEtyR8lIc027LsMKtwmC3j9QDV6oGMEZjarfrVB7SsxgVklTQvm4lPICEpmajMxR9Z0vSxYQg==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.58.0.tgz";
+        sha512 = "nhxomsG+OIBqpIyc2AU88J3+dTap0H5R1D2lNAsSZk07kuu2B1H4qAXIlWPkXyxTi9uL9aykBMuCosECD062NA==";
       };
     };
-    "@aws-sdk/util-hex-encoding-3.55.0" = {
+    "@aws-sdk/util-hex-encoding-3.58.0" = {
       name = "_at_aws-sdk_slash_util-hex-encoding";
       packageName = "@aws-sdk/util-hex-encoding";
-      version = "3.55.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.55.0.tgz";
-        sha512 = "zbDWNzIyqN2Po7SIo1ZDL4rQMP3R0TzGcCrm01bpQAb+2fWqUPigolvNZXXtMO6eS7EW3ZJJzkfoWHdH8zDz1A==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.58.0.tgz";
+        sha512 = "Rl+jXUzk/FJkOLYfUVYPhKa2aUmTpeobRP31l8IatQltSzDgLyRHO35f6UEs7Ztn5s1jbu/POatLAZ2WjbgVyg==";
       };
     };
     "@aws-sdk/util-locate-window-3.55.0" = {
@@ -1093,22 +1102,22 @@ let
         sha512 = "mmdDLUpFCN2nkfwlLdOM54lTD528GiGSPN1qb8XtGLgZsJUmg3uJSFIN2lPeSbEwJB3NFjVas/rnQC48i7mV8w==";
       };
     };
-    "@aws-sdk/util-user-agent-browser-3.55.0" = {
+    "@aws-sdk/util-user-agent-browser-3.58.0" = {
       name = "_at_aws-sdk_slash_util-user-agent-browser";
       packageName = "@aws-sdk/util-user-agent-browser";
-      version = "3.55.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.55.0.tgz";
-        sha512 = "E+8PluqbdOKfdJc9E4k0vy4PPb9wvAMa2Zdm5ycoaY0IXRI9RjQJnRw5JKAAJWLuOy7Lb83LgoowGW3o+4AuKw==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.58.0.tgz";
+        sha512 = "aJpqCvT09giJRg5xFTBDBRAVF0k0yq3OEf6UTuiOVf5azlL2MGp6PJ/xkJp9Z06PuQQkwBJ/2nIQZemo02a5Sw==";
       };
     };
-    "@aws-sdk/util-user-agent-node-3.56.0" = {
+    "@aws-sdk/util-user-agent-node-3.58.0" = {
       name = "_at_aws-sdk_slash_util-user-agent-node";
       packageName = "@aws-sdk/util-user-agent-node";
-      version = "3.56.0";
+      version = "3.58.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.56.0.tgz";
-        sha512 = "jpWDpEG2M06jqGtk/Jz9Iu94lBI8tdP7r2ctq2ptki9wYNmmWKdIXlS/W0g2UFx3qa9G9W67QI1efSTh2B0nfA==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.58.0.tgz";
+        sha512 = "VlbY/nzWdN2pfLUHqKvnlGBQ6tEeV4jyK9ggAD2Szjj0bkYvaaKwpBKswQmuJpi5/J2v7Bo4ayBLnqDL7PgzLA==";
       };
     };
     "@aws-sdk/util-utf8-browser-3.55.0" = {
@@ -1210,13 +1219,13 @@ let
         sha512 = "p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==";
       };
     };
-    "@babel/core-7.17.8" = {
+    "@babel/core-7.17.9" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.17.8";
+      version = "7.17.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz";
-        sha512 = "OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz";
+        sha512 = "5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==";
       };
     };
     "@babel/core-7.9.0" = {
@@ -1228,13 +1237,13 @@ let
         sha512 = "kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==";
       };
     };
-    "@babel/generator-7.17.7" = {
+    "@babel/generator-7.17.9" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.17.7";
+      version = "7.17.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz";
-        sha512 = "oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz";
+        sha512 = "rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==";
       };
     };
     "@babel/helper-annotate-as-pure-7.16.7" = {
@@ -1264,13 +1273,13 @@ let
         sha512 = "UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==";
       };
     };
-    "@babel/helper-create-class-features-plugin-7.17.6" = {
+    "@babel/helper-create-class-features-plugin-7.17.9" = {
       name = "_at_babel_slash_helper-create-class-features-plugin";
       packageName = "@babel/helper-create-class-features-plugin";
-      version = "7.17.6";
+      version = "7.17.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz";
-        sha512 = "SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==";
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz";
+        sha512 = "kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==";
       };
     };
     "@babel/helper-create-regexp-features-plugin-7.17.0" = {
@@ -1309,22 +1318,13 @@ let
         sha512 = "KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==";
       };
     };
-    "@babel/helper-function-name-7.16.7" = {
+    "@babel/helper-function-name-7.17.9" = {
       name = "_at_babel_slash_helper-function-name";
       packageName = "@babel/helper-function-name";
-      version = "7.16.7";
+      version = "7.17.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz";
-        sha512 = "QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==";
-      };
-    };
-    "@babel/helper-get-function-arity-7.16.7" = {
-      name = "_at_babel_slash_helper-get-function-arity";
-      packageName = "@babel/helper-get-function-arity";
-      version = "7.16.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz";
-        sha512 = "flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==";
+        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz";
+        sha512 = "7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==";
       };
     };
     "@babel/helper-hoist-variables-7.16.7" = {
@@ -1453,22 +1453,22 @@ let
         sha512 = "8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==";
       };
     };
-    "@babel/helpers-7.17.8" = {
+    "@babel/helpers-7.17.9" = {
       name = "_at_babel_slash_helpers";
       packageName = "@babel/helpers";
-      version = "7.17.8";
+      version = "7.17.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz";
-        sha512 = "QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==";
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz";
+        sha512 = "cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==";
       };
     };
-    "@babel/highlight-7.16.10" = {
+    "@babel/highlight-7.17.9" = {
       name = "_at_babel_slash_highlight";
       packageName = "@babel/highlight";
-      version = "7.16.10";
+      version = "7.17.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz";
-        sha512 = "5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==";
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz";
+        sha512 = "J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==";
       };
     };
     "@babel/node-7.16.8" = {
@@ -1489,13 +1489,13 @@ let
         sha512 = "RUVpT0G2h6rOZwqLDTrKk7ksNv7YpAilTnYe1/Q+eDjxEceRMKVWbCsX7t8h6C1qCFi/1Y8WZjcEPBAFG27GPw==";
       };
     };
-    "@babel/parser-7.17.8" = {
+    "@babel/parser-7.17.9" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.17.8";
+      version = "7.17.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz";
-        sha512 = "BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz";
+        sha512 = "vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==";
       };
     };
     "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7" = {
@@ -1993,13 +1993,13 @@ let
         sha512 = "KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==";
       };
     };
-    "@babel/plugin-transform-modules-commonjs-7.17.7" = {
+    "@babel/plugin-transform-modules-commonjs-7.17.9" = {
       name = "_at_babel_slash_plugin-transform-modules-commonjs";
       packageName = "@babel/plugin-transform-modules-commonjs";
-      version = "7.17.7";
+      version = "7.17.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz";
-        sha512 = "ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz";
+        sha512 = "2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw==";
       };
     };
     "@babel/plugin-transform-modules-systemjs-7.17.8" = {
@@ -2101,13 +2101,13 @@ let
         sha512 = "hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==";
       };
     };
-    "@babel/plugin-transform-regenerator-7.16.7" = {
+    "@babel/plugin-transform-regenerator-7.17.9" = {
       name = "_at_babel_slash_plugin-transform-regenerator";
       packageName = "@babel/plugin-transform-regenerator";
-      version = "7.16.7";
+      version = "7.17.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz";
-        sha512 = "mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz";
+        sha512 = "Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ==";
       };
     };
     "@babel/plugin-transform-reserved-words-7.16.7" = {
@@ -2281,13 +2281,13 @@ let
         sha512 = "aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==";
       };
     };
-    "@babel/runtime-7.17.8" = {
+    "@babel/runtime-7.17.9" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.17.8";
+      version = "7.17.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz";
-        sha512 = "dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz";
+        sha512 = "lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==";
       };
     };
     "@babel/runtime-7.9.0" = {
@@ -2299,13 +2299,13 @@ let
         sha512 = "cTIudHnzuWLS56ik4DnRnqqNf8MkdUzV4iFFI1h7Jo9xvrpQROYaAnaSd2mHLQAzzZAPfATynX5ord6YlNYNMA==";
       };
     };
-    "@babel/runtime-corejs3-7.17.8" = {
+    "@babel/runtime-corejs3-7.17.9" = {
       name = "_at_babel_slash_runtime-corejs3";
       packageName = "@babel/runtime-corejs3";
-      version = "7.17.8";
+      version = "7.17.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.8.tgz";
-        sha512 = "ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==";
+        url = "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.9.tgz";
+        sha512 = "WxYHHUWF2uZ7Hp1K+D1xQgbgkGUfA+5UPOegEXGt2Y5SMog/rYCVaifLZDbw8UkNXozEqqrZTy6bglL7xTaCOw==";
       };
     };
     "@babel/template-7.16.7" = {
@@ -2317,13 +2317,13 @@ let
         sha512 = "I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==";
       };
     };
-    "@babel/traverse-7.17.3" = {
+    "@babel/traverse-7.17.9" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.17.3";
+      version = "7.17.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz";
-        sha512 = "5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz";
+        sha512 = "PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==";
       };
     };
     "@babel/types-7.16.0" = {
@@ -2344,13 +2344,13 @@ let
         sha512 = "TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==";
       };
     };
-    "@blueprintjs/colors-4.0.1" = {
+    "@blueprintjs/colors-4.1.0" = {
       name = "_at_blueprintjs_slash_colors";
       packageName = "@blueprintjs/colors";
-      version = "4.0.1";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@blueprintjs/colors/-/colors-4.0.1.tgz";
-        sha512 = "w2kMtUzQjHdrmjXpUnCfTq7/pc41S4UnXzOp6+AZtzCR4cVG1r2yBWR4XxaAAecDb94/yIBXooqtMD0B8T1Y2w==";
+        url = "https://registry.npmjs.org/@blueprintjs/colors/-/colors-4.1.0.tgz";
+        sha512 = "aXgkEBg2oEz6lCE/sidvREUzQF7eJq2R8BvfOcQ1ICV4r/KVFszee6seA12ZtVaphfvuR4EE/raH6F1d0f4y7g==";
       };
     };
     "@blueprintjs/core-3.54.0" = {
@@ -2425,40 +2425,49 @@ let
         sha512 = "GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg==";
       };
     };
-    "@cdktf/hcl2cdk-0.9.4" = {
+    "@braintree/sanitize-url-6.0.0" = {
+      name = "_at_braintree_slash_sanitize-url";
+      packageName = "@braintree/sanitize-url";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.0.tgz";
+        sha512 = "mgmE7XBYY/21erpzhexk4Cj1cyTQ9LzvnTxtzM17BJ7ERMNE6W72mQRo0I1Ud8eFJ+RVVIcBNhLFZ3GX4XFz5w==";
+      };
+    };
+    "@cdktf/hcl2cdk-0.10.2" = {
       name = "_at_cdktf_slash_hcl2cdk";
       packageName = "@cdktf/hcl2cdk";
-      version = "0.9.4";
+      version = "0.10.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/hcl2cdk/-/hcl2cdk-0.9.4.tgz";
-        sha512 = "sUg9GsmaFpqqfoGcqibMEDHozMQhaDOxBT3Dz3ioNc0SSWhBpDRwrlctK3rNNKvWUetEeUr28L7SJR/I0TSd+Q==";
+        url = "https://registry.npmjs.org/@cdktf/hcl2cdk/-/hcl2cdk-0.10.2.tgz";
+        sha512 = "F3M66Bw+ooAuVKNAPMM+HFlFugr82HRcYT7X9HO+bsi3yExmgirekfFRVD1lMXreQT2kwfahm3xaw5oxJdPJtQ==";
       };
     };
-    "@cdktf/hcl2json-0.9.4" = {
+    "@cdktf/hcl2json-0.10.2" = {
       name = "_at_cdktf_slash_hcl2json";
       packageName = "@cdktf/hcl2json";
-      version = "0.9.4";
+      version = "0.10.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/hcl2json/-/hcl2json-0.9.4.tgz";
-        sha512 = "dZZUi94C7TFs0E8IubNYu38mBncVlQVUeGp6nA3tYxs/ue1igKqx7+mWfZP7NYVOSlggMGRNaTts6ZA0UAtOYQ==";
+        url = "https://registry.npmjs.org/@cdktf/hcl2json/-/hcl2json-0.10.2.tgz";
+        sha512 = "HZdkn4MtMoloiMQ1YRZVQumqJ0U1TrnErK9liUL59JKi25Zz9GETiN5FdiifpBD2a9p2nZhoMXRcuSjQI8Lk9g==";
       };
     };
-    "@cdktf/provider-generator-0.9.4" = {
+    "@cdktf/provider-generator-0.10.2" = {
       name = "_at_cdktf_slash_provider-generator";
       packageName = "@cdktf/provider-generator";
-      version = "0.9.4";
+      version = "0.10.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/provider-generator/-/provider-generator-0.9.4.tgz";
-        sha512 = "06sfpBTn3+PqiU/XP3RQ6FO6M+GxzmHo6yIJk9r5x1QmIlitDE9tdogXqmAVVHB4nGRL/v7SXefcrOHrOkl1YQ==";
+        url = "https://registry.npmjs.org/@cdktf/provider-generator/-/provider-generator-0.10.2.tgz";
+        sha512 = "hIaxBDNq8u5IyIgAYYzOVh/29UeXlNdsUejThDrysc+uAoOBbnlPctIfUaASdeBooq62p6qsZbii83HIZemwYA==";
       };
     };
-    "@chemzqm/neovim-5.7.7" = {
+    "@chemzqm/neovim-5.7.9" = {
       name = "_at_chemzqm_slash_neovim";
       packageName = "@chemzqm/neovim";
-      version = "5.7.7";
+      version = "5.7.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@chemzqm/neovim/-/neovim-5.7.7.tgz";
-        sha512 = "d9Bu5WA3fTEZw40EfEAkpevoE0HiPEwUAIYw4hfsGwwmcagMJzpx47h3EkH/r0I3qfXeDWEZ353fx9bc1qvYcA==";
+        url = "https://registry.npmjs.org/@chemzqm/neovim/-/neovim-5.7.9.tgz";
+        sha512 = "ou2lI650Rh+/3tS8HuiVim73RJSkCoVqJsf+Mqyw17+CGxbcCmXQqA2stT81j3QAXsbCF+5Ro/z152TrQLUUBg==";
       };
     };
     "@chinachu/aribts-1.3.5-mirakurun.17" = {
@@ -2650,31 +2659,31 @@ let
         sha512 = "do5jDoX9oCR/dGHE4POVQ3PYDCmQ2Fow4CA72UL4WoE8zUImA/0lChczjfl+ucNjE4sXFWUnzoO6j4WzrUvLnw==";
       };
     };
-    "@cspell/cspell-bundled-dicts-5.19.3" = {
+    "@cspell/cspell-bundled-dicts-5.19.7" = {
       name = "_at_cspell_slash_cspell-bundled-dicts";
       packageName = "@cspell/cspell-bundled-dicts";
-      version = "5.19.3";
+      version = "5.19.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-5.19.3.tgz";
-        sha512 = "YAz68AgXTFFtrBUhNJlOQ7KOjUE6ncYt578/esa2GStMJHgJoUtPnOZsE41hh+cVWXqO5yRRI+Qkwub99zLMgQ==";
+        url = "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-5.19.7.tgz";
+        sha512 = "9h2KdI3yKODc8rAxkgB5UZb6RLwwEO25Fo91vnOtM1xfwLhX/scMACU1DoqtnTVaE73HoQ46DYAZAAq/OloRFQ==";
       };
     };
-    "@cspell/cspell-pipe-5.19.3" = {
+    "@cspell/cspell-pipe-5.19.7" = {
       name = "_at_cspell_slash_cspell-pipe";
       packageName = "@cspell/cspell-pipe";
-      version = "5.19.3";
+      version = "5.19.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-5.19.3.tgz";
-        sha512 = "3RKntgGRxYYzoxoH3VBPvnNMYkHKPq0U+U7qogcWxDkgAUgKXlBP0oc2mw96grJQ4HIzOL1vBnaVAWAqteY9Kw==";
+        url = "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-5.19.7.tgz";
+        sha512 = "C2+qovrXyZtoM+IcyMuwwYieoGBwwnWORat+j7bkIkVHf6Pa9spxY3D1IdLt04PqWBKWKHb1g9KzJzw5grBqZw==";
       };
     };
-    "@cspell/cspell-types-5.19.3" = {
+    "@cspell/cspell-types-5.19.7" = {
       name = "_at_cspell_slash_cspell-types";
       packageName = "@cspell/cspell-types";
-      version = "5.19.3";
+      version = "5.19.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-5.19.3.tgz";
-        sha512 = "tub7PW/I6qB6o+ZtlahAZjm5O5cnzj88HRiC8nAbJFpa7q0mrdpFMYhd7ksWtyFLlNbuDkCsfzXGamAhIQnnIw==";
+        url = "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-5.19.7.tgz";
+        sha512 = "xL9a0oE8kPQ/GCkE/bxE5DTCMTctCpk7tdrhYG26wVbMK1VRGo8fv9w+vRVzXgTfF5jTxolEA1LTtfVBuik1MA==";
       };
     };
     "@cspell/dict-ada-2.0.0" = {
@@ -2695,13 +2704,13 @@ let
         sha512 = "NKz7pDZ7pwj/b33i3f4WLpC1rOOUMmENwYgftxU+giU2YBeKM2wZbMTSEIzsrel56r0UlQYmdIVlP/B4nnVaoQ==";
       };
     };
-    "@cspell/dict-bash-2.0.1" = {
+    "@cspell/dict-bash-2.0.2" = {
       name = "_at_cspell_slash_dict-bash";
       packageName = "@cspell/dict-bash";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-2.0.1.tgz";
-        sha512 = "pBx3T/5w7fPF8XD5cx3NwtRFvNpQYmYqzM043NKP2hDmlx4uFwbH599Lvt5mwCMZKfIoRXaNUQvq7se2gstQjw==";
+        url = "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-2.0.2.tgz";
+        sha512 = "ASIgI/LmV2TYrD4mtk+gm4XmUSTRomOyRt7NDWyBpEww/AeawC2O2NH6FosyUT6dUU3GaXt2wgJRN7R78n1SGg==";
       };
     };
     "@cspell/dict-companies-2.0.3" = {
@@ -2713,13 +2722,13 @@ let
         sha512 = "O622rMAaHm85AmqNyMki5je8HB/1XlTKbGOXh2UUhooI5qdgdfrjTQ6VBuHwHrfEfuODBHYTNYXVB2m23XqHCg==";
       };
     };
-    "@cspell/dict-cpp-2.0.0" = {
+    "@cspell/dict-cpp-2.0.3" = {
       name = "_at_cspell_slash_dict-cpp";
       packageName = "@cspell/dict-cpp";
-      version = "2.0.0";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-2.0.0.tgz";
-        sha512 = "EflHLs2pHEEXZM6jPfTGR/KHZKQtJlvzqgkg1zaA1YKv5HQNw9Wy5KVPGEV2bjPcFsZJO3xXjO1KBZcoOPjPmA==";
+        url = "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-2.0.3.tgz";
+        sha512 = "aWRvI3CQW2M3XeJpDVffItw/9n4hxsN5EPwyBa6Po6EnCxZZZLOqpieZk4JNz4pH0/xbnOX+sMMuSeKWr71r/w==";
       };
     };
     "@cspell/dict-cryptocurrencies-2.0.0" = {
@@ -2830,6 +2839,15 @@ let
         sha512 = "+JtYO58QAXnetRN+MGVzI8YbkbFTLpYfl/Cw/tmNqy7U1IDVC4sTXQ2pZvbbeKQWFHBqYvBs0YASV+mTouXYBw==";
       };
     };
+    "@cspell/dict-git-1.0.1" = {
+      name = "_at_cspell_slash_dict-git";
+      packageName = "@cspell/dict-git";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-1.0.1.tgz";
+        sha512 = "Rk+eTof/9inF11lvxmkCRK+gODatA3qai8kSASv6OG/JfPvpj7fTHErx/rdgPw/LOTDUafnoTjTYmj7B2MOQXg==";
+      };
+    };
     "@cspell/dict-golang-2.0.0" = {
       name = "_at_cspell_slash_dict-golang";
       packageName = "@cspell/dict-golang";
@@ -3325,6 +3343,15 @@ let
         sha512 = "BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==";
       };
     };
+    "@electron/universal-1.2.1" = {
+      name = "_at_electron_slash_universal";
+      packageName = "@electron/universal";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron/universal/-/universal-1.2.1.tgz";
+        sha512 = "7323HyMh7KBAl/nPDppdLsC87G6RwRU02dy5FPeGB1eS7rUePh55+WNWiDPLhFQqqVPHzh77M69uhmoT8XnwMQ==";
+      };
+    };
     "@emmetio/abbreviation-2.2.3" = {
       name = "_at_emmetio_slash_abbreviation";
       packageName = "@emmetio/abbreviation";
@@ -3406,6 +3433,51 @@ let
         sha512 = "QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==";
       };
     };
+    "@envelop/core-2.3.1" = {
+      name = "_at_envelop_slash_core";
+      packageName = "@envelop/core";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@envelop/core/-/core-2.3.1.tgz";
+        sha512 = "AnYUci7EGyA8flml881lDvVDl6n/u6GQpVIOTsZVO29d4/rPqSJ2KFguDD3mjDL406doTTLNuDI4ndxfJl6fmQ==";
+      };
+    };
+    "@envelop/disable-introspection-3.3.1" = {
+      name = "_at_envelop_slash_disable-introspection";
+      packageName = "@envelop/disable-introspection";
+      version = "3.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@envelop/disable-introspection/-/disable-introspection-3.3.1.tgz";
+        sha512 = "THR8UnRQQB5nCLmITXvebwXwSHvFjS+ThA3RRVXpFX9EupMbTFN5a4NHty7+BYD798c3VrBZ/InbMlEWqw1c9g==";
+      };
+    };
+    "@envelop/parser-cache-4.3.1" = {
+      name = "_at_envelop_slash_parser-cache";
+      packageName = "@envelop/parser-cache";
+      version = "4.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@envelop/parser-cache/-/parser-cache-4.3.1.tgz";
+        sha512 = "IqerCVjvVTiGvSZ8qSpdEc55hhiuekufJd0+ldWtyMPznhMaYOzpLifFUhjhhD7004eJM17n9vjJQFa7fIGz8Q==";
+      };
+    };
+    "@envelop/types-2.2.0" = {
+      name = "_at_envelop_slash_types";
+      packageName = "@envelop/types";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@envelop/types/-/types-2.2.0.tgz";
+        sha512 = "Lghvfs0kh53G5mUKpCMlB/FhHh3O8SSR4hewB7JyE9hOEu/9h/6u+GHH/OEgdaRHky1Sae5Jf4grO+h21ka4ig==";
+      };
+    };
+    "@envelop/validation-cache-4.3.1" = {
+      name = "_at_envelop_slash_validation-cache";
+      packageName = "@envelop/validation-cache";
+      version = "4.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@envelop/validation-cache/-/validation-cache-4.3.1.tgz";
+        sha512 = "lmtu9idhdWqbYkcFoFsL1ED4y38DLvj6EDEwE9tULXWuZm4WWmlNQAmKHAwB1d3kGVQAMtxM59crkOOJGRBgHQ==";
+      };
+    };
     "@eslint/eslintrc-0.4.3" = {
       name = "_at_eslint_slash_eslintrc";
       packageName = "@eslint/eslintrc";
@@ -3433,13 +3505,13 @@ let
         sha512 = "dDnQizD94EdBwEj/fh3zPRa/HWCS9O5au2PuHhZBbuM3xWHxuaKzPBOEWze7Nn0xW68MIpZ7Xdyn1CoCpjKCuQ==";
       };
     };
-    "@expo/apple-utils-0.0.0-alpha.26" = {
+    "@expo/apple-utils-0.0.0-alpha.31" = {
       name = "_at_expo_slash_apple-utils";
       packageName = "@expo/apple-utils";
-      version = "0.0.0-alpha.26";
+      version = "0.0.0-alpha.31";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/apple-utils/-/apple-utils-0.0.0-alpha.26.tgz";
-        sha512 = "t+xOhn4bYSAXkXamhDPUiI2Ol+QIwHRHLn/2QiCmNAGHolaVan/hMaVveSzvCYitpaJ16b4nthvcWFoJipxGlA==";
+        url = "https://registry.npmjs.org/@expo/apple-utils/-/apple-utils-0.0.0-alpha.31.tgz";
+        sha512 = "lGJOS8eAPcZhaRl5GZFIg4ZNSRY1k10wYeYXjHUbHxbZGE9lkzrATY8OvrVpcu8qQh3lvPguel63V4mrnoAuOA==";
       };
     };
     "@expo/bunyan-4.0.0" = {
@@ -3451,22 +3523,22 @@ let
         sha512 = "Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==";
       };
     };
-    "@expo/config-6.0.19" = {
+    "@expo/config-6.0.20" = {
       name = "_at_expo_slash_config";
       packageName = "@expo/config";
-      version = "6.0.19";
+      version = "6.0.20";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config/-/config-6.0.19.tgz";
-        sha512 = "UkLnnKnt4zP382K7s0UDnUNY646Gdw8PoDWnxaIGAL515R9IX8oWef7+7hX/dZMi27d/WLJPmWNRYsEL8Q/3rw==";
+        url = "https://registry.npmjs.org/@expo/config/-/config-6.0.20.tgz";
+        sha512 = "m2T1/hB4TyLkQElOUwOajn/7gBcPaGyfVwoVsuJMEh0yrNvNFtXP+nl87Cm53g5q+VyfwJUgbewPQ3j/UXkI6Q==";
       };
     };
-    "@expo/config-plugins-4.1.0" = {
+    "@expo/config-plugins-4.1.1" = {
       name = "_at_expo_slash_config-plugins";
       packageName = "@expo/config-plugins";
-      version = "4.1.0";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-4.1.0.tgz";
-        sha512 = "+Uq7kzi1StUZZZivnnqNV6+v8b+SMF6MDgH+cEZxCoM9uwLXOK0rTAURzBGtl+C6EEbKnoZmnKGuzABBGPRP7A==";
+        url = "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-4.1.1.tgz";
+        sha512 = "lo3tVxRhwM9jfxPHJcURsH5WvU26kX12h5EB3C7kjVhgdQPLkvT8Jk8Cx0KSL8MXKcry2xQvZ2uuwWLkMeplJw==";
       };
     };
     "@expo/config-types-44.0.0" = {
@@ -3478,22 +3550,22 @@ let
         sha512 = "d+gpdKOAhqaD5RmcMzGgKzNtvE1w+GCqpFQNSXLliYlXjj+Tv0eL8EPeAdPtvke0vowpPFwd5McXLA90dgY6Jg==";
       };
     };
-    "@expo/dev-server-0.1.106" = {
+    "@expo/dev-server-0.1.107" = {
       name = "_at_expo_slash_dev-server";
       packageName = "@expo/dev-server";
-      version = "0.1.106";
+      version = "0.1.107";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.106.tgz";
-        sha512 = "MEB5YuOkew2O4K3GTDLHS1PT/Ca7B/tGx4J+eH74QK6051PlmrikPA5/buuZd23ww/cmOAAKBw509agcbrpajg==";
+        url = "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.107.tgz";
+        sha512 = "QL0phPimM/F/fX7tjdxfW8n7lkziHT0GxLFiw6gf4Qa3q6BND3xBrI0U2ZIjVZjQGGrVQUiQhdcfenQUNLHdZg==";
       };
     };
-    "@expo/dev-tools-0.13.146" = {
+    "@expo/dev-tools-0.13.148" = {
       name = "_at_expo_slash_dev-tools";
       packageName = "@expo/dev-tools";
-      version = "0.13.146";
+      version = "0.13.148";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/dev-tools/-/dev-tools-0.13.146.tgz";
-        sha512 = "3bZe8He2uLha2SY1vOp2YnwtuXDHXodQwdkYdN/IL6XBveIKaBR9HDhBg/kBvI+/aNcut6ymwSSo9IOEmvUk5g==";
+        url = "https://registry.npmjs.org/@expo/dev-tools/-/dev-tools-0.13.148.tgz";
+        sha512 = "bPZwm7HIjj4Fm9KeNaQGUKFiPGSj4X9LQuTaNFg1nQlJ9sXRGQ8Mct2V/Vyz5Hh3dQz+KVVSF4a3D8irVM0PPA==";
       };
     };
     "@expo/devcert-1.0.0" = {
@@ -3505,67 +3577,67 @@ let
         sha512 = "cahGyQCmpZmHpn2U04NR9KwsOIZy7Rhsw8Fg4q+A6563lIJxbkrgPnxq/O3NQAh3ohEvOXOOnoFx0b4yycCkpQ==";
       };
     };
-    "@expo/image-utils-0.3.18" = {
+    "@expo/image-utils-0.3.19" = {
       name = "_at_expo_slash_image-utils";
       packageName = "@expo/image-utils";
-      version = "0.3.18";
+      version = "0.3.19";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.18.tgz";
-        sha512 = "77/ub2aGuf7SYfaFhvCHE54Hs/jRuU5j+pemS5seLfVHNwHbJSse91TMhsTLLNz3GwwqTxFVe3KMycSccJ73nA==";
+        url = "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.19.tgz";
+        sha512 = "mBuWWltyQpl4WF0bIBitfJXOsjB2MOapP+SR3ZnOZ8hOf/a0lzpju94kplK+wa/f80S9owkVu7NZ3wwu+UxljA==";
       };
     };
-    "@expo/json-file-8.2.34" = {
+    "@expo/json-file-8.2.35" = {
       name = "_at_expo_slash_json-file";
       packageName = "@expo/json-file";
-      version = "8.2.34";
+      version = "8.2.35";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.34.tgz";
-        sha512 = "ZxtBodAZGxdLtgKzmsC+8ViUxt1mhFW642Clu2OuG3f6PAyAFsU/SqEGag9wKFaD3x3Wt8VhL+3y5fMJmUFgPw==";
+        url = "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.35.tgz";
+        sha512 = "cQFLGSNRRFbN9EIhVDpMCYuzXbrHUOmKEqitBR+nrU6surjKGsOsN9Ubyn/L/LAGlFvT293E4XY5zsOtJyiPZQ==";
       };
     };
-    "@expo/metro-config-0.3.12" = {
+    "@expo/metro-config-0.3.13" = {
       name = "_at_expo_slash_metro-config";
       packageName = "@expo/metro-config";
-      version = "0.3.12";
+      version = "0.3.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.3.12.tgz";
-        sha512 = "8cvsMMe68BfZqNYIXeYDVtf6ijEHmJ27llhFKFwS8XZwKaqcfSLRANK8I8xxTc00tzXaWyE1BKJIY6DMq/gbJA==";
+        url = "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.3.13.tgz";
+        sha512 = "SBsCKQdSPGc9GpyYKbDkbnknklnv+dhBX5rTRf9im+bxzj/4w0bKeq2+7AE28QWaTfDXyZqwwkbMjmFbzXeSHA==";
       };
     };
-    "@expo/osascript-2.0.31" = {
+    "@expo/osascript-2.0.32" = {
       name = "_at_expo_slash_osascript";
       packageName = "@expo/osascript";
-      version = "2.0.31";
+      version = "2.0.32";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.31.tgz";
-        sha512 = "5OE8+Fb1mLu9EJNUOx5RcetkJZMXJxthVuIzHPlEZFEAZa3f/zQtJ6vA/hnt1BLZ2X9BR3OzBMALrUzVo95L2w==";
+        url = "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.32.tgz";
+        sha512 = "yH95/CwLJzhrzIl0EaDNbK3MevHFzCGM89k/2F3ppltRqhPzu8Vt/8onE3yZPEABluoiTVX79AWPogS35iIRhA==";
       };
     };
-    "@expo/package-manager-0.0.50" = {
+    "@expo/package-manager-0.0.51" = {
       name = "_at_expo_slash_package-manager";
       packageName = "@expo/package-manager";
-      version = "0.0.50";
+      version = "0.0.51";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.50.tgz";
-        sha512 = "rDa1MkXFxZb3jj/a1iX12A+6DpWsZgtX8H0d5j+sYeCqjOARTvuvgNS9anpNbdhbGEXSu+1m8YGXK/QmBAo51Q==";
+        url = "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.51.tgz";
+        sha512 = "Is/HZYb1GiJ/5VLd02sbUopcdBxnI2PCxNCHp/0r0oC4VcZPUvwcVp3avIBFqaCO0u/MP8JvGPyjq0qHUNZhng==";
       };
     };
-    "@expo/plist-0.0.17" = {
+    "@expo/plist-0.0.18" = {
       name = "_at_expo_slash_plist";
       packageName = "@expo/plist";
-      version = "0.0.17";
+      version = "0.0.18";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/plist/-/plist-0.0.17.tgz";
-        sha512 = "5Ul3d/YOYE6mfum0jCE25XUnkKHZ5vGlU/X2275ZmCtGrpRn1Fl8Nq+jQKSaks3NqTfxdyXROi/TgH8Zxeg2wg==";
+        url = "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz";
+        sha512 = "+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==";
       };
     };
-    "@expo/prebuild-config-3.1.0" = {
+    "@expo/prebuild-config-3.1.1" = {
       name = "_at_expo_slash_prebuild-config";
       packageName = "@expo/prebuild-config";
-      version = "3.1.0";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-3.1.0.tgz";
-        sha512 = "Vwz2L3brsrvLVDBXj2gcB2QfeyAPKxa7rCOSFnPhyHf2qpxtmncv9IVrSdkHyWlPW7KmFVfiRsT3/nHXoataqQ==";
+        url = "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-3.1.1.tgz";
+        sha512 = "7COQ0ZjJof7f4w9kBYlvxg8ulCHJKlA4hqZuQQVAoG83gC+j6Hkbi7cbWOHcAEO/FjwFhNzas5l6P5c3wWj5eg==";
       };
     };
     "@expo/rudder-sdk-node-1.1.1" = {
@@ -3577,13 +3649,13 @@ let
         sha512 = "uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==";
       };
     };
-    "@expo/schemer-1.3.33" = {
+    "@expo/schemer-1.4.0" = {
       name = "_at_expo_slash_schemer";
       packageName = "@expo/schemer";
-      version = "1.3.33";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/schemer/-/schemer-1.3.33.tgz";
-        sha512 = "qjbArE6hl+ZKms4Znlv7mXMbCkm8T5BMn3eBzKnHJRCogNti/LOR0t8Nf9aY3QqaUqX1k6/JspLmLWhM/bGYYw==";
+        url = "https://registry.npmjs.org/@expo/schemer/-/schemer-1.4.0.tgz";
+        sha512 = "HSFwpcS/gYdkV2mj7cXnZKVCHInWimaBIg81On9DKGmwwTqgGFKwYFOcpoTL3dK2K8VbV2qNH9VRaj68jq81Bw==";
       };
     };
     "@expo/sdk-runtime-versions-1.0.0" = {
@@ -3604,13 +3676,13 @@ let
         sha512 = "LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==";
       };
     };
-    "@expo/webpack-config-0.16.19" = {
+    "@expo/webpack-config-0.16.20" = {
       name = "_at_expo_slash_webpack-config";
       packageName = "@expo/webpack-config";
-      version = "0.16.19";
+      version = "0.16.20";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/webpack-config/-/webpack-config-0.16.19.tgz";
-        sha512 = "VB8QNJ4Kvt46cy/y+AbBrJViOH2QY+AEfELNZRDifokZg0wPauxQCz/3Dk7qQnjLYsVOszoH7AtgfOdy/5NSjg==";
+        url = "https://registry.npmjs.org/@expo/webpack-config/-/webpack-config-0.16.20.tgz";
+        sha512 = "aj83vpceXfzAVNKYMVqP+j5C/ByaZbKdR6un0swt6axsPe+Qu8gflAtOJy8LhLUGaiijX51oLncj2jKhCTrGPg==";
       };
     };
     "@expo/xcpretty-4.1.1" = {
@@ -3640,6 +3712,15 @@ let
         sha512 = "uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==";
       };
     };
+    "@fastify/busboy-1.0.0" = {
+      name = "_at_fastify_slash_busboy";
+      packageName = "@fastify/busboy";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fastify/busboy/-/busboy-1.0.0.tgz";
+        sha512 = "tzTXX1TFEjWCseEsNdIlXXkD+48uJoN+zpqIojUX4pSoMscsbhO/UuVEB5SzJucexqDWOo2ma0ECwdD7hZdrzg==";
+      };
+    };
     "@fluentui/date-time-utilities-8.5.0" = {
       name = "_at_fluentui_slash_date-time-utilities";
       packageName = "@fluentui/date-time-utilities";
@@ -3658,22 +3739,22 @@ let
         sha512 = "M4SmXu428wwQLu1iw6ST07iACjdKY5HiU+xpcgD3IQMMQazgN616GDzc6KZ1ebuBsF7B4TyQS7KZh9mfxnnldg==";
       };
     };
-    "@fluentui/font-icons-mdl2-8.2.5" = {
+    "@fluentui/font-icons-mdl2-8.3.2" = {
       name = "_at_fluentui_slash_font-icons-mdl2";
       packageName = "@fluentui/font-icons-mdl2";
-      version = "8.2.5";
+      version = "8.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.2.5.tgz";
-        sha512 = "IgzcoOm+hZMlYJBR1RFb3fner1IxdSLCsnsjkVUtfnwuvGq/zjqEpNgsk5eUG4dHlu3E9dDY86nLqfGJe8R6yw==";
+        url = "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.3.2.tgz";
+        sha512 = "yC9+Gzc6JDKkiwxpa0l1fgjy0yTxlO5Afk1Y/gQkeZFCdJh8jhUVKCZMcgZijwu+bZCJ2DbhayKGiqOjHVrFAA==";
       };
     };
-    "@fluentui/foundation-legacy-8.2.5" = {
+    "@fluentui/foundation-legacy-8.2.6" = {
       name = "_at_fluentui_slash_foundation-legacy";
       packageName = "@fluentui/foundation-legacy";
-      version = "8.2.5";
+      version = "8.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.5.tgz";
-        sha512 = "PP8Wbw1QK9lmzReh+C7XG7A7Q3WTXAaxAMHjcBE3m2OPnhlF77Ok6IAJBkuKTWg0SZYQqJilTDSkVDnXVylGgQ==";
+        url = "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.6.tgz";
+        sha512 = "exjlFBqtxoFdz9gAg106iTtYhdtvztUHWcpxENwBGfSyFdQNKBuitQPvR5V5xO2snWxJCo/UNK3YWjgTm7UB/A==";
       };
     };
     "@fluentui/keyboard-key-0.4.0" = {
@@ -3685,40 +3766,40 @@ let
         sha512 = "2jcD23FzOPaSXqWtfOSCzopkKtxTXUFuHZyVt4aqVRDEjPbkQ/7p37O1WL95xweWTR/9fEPO/gPtv9kOnXrJcA==";
       };
     };
-    "@fluentui/merge-styles-8.5.0" = {
+    "@fluentui/merge-styles-8.5.1" = {
       name = "_at_fluentui_slash_merge-styles";
       packageName = "@fluentui/merge-styles";
-      version = "8.5.0";
+      version = "8.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.5.0.tgz";
-        sha512 = "+WoaAaoYx/wfkrz1Ag40JqHvDUFfQcg+dQ3jaEOoau16y7EZGIe7oN8WYIXNMgWuMxH7r1QlanFbQZ+ziKjHmw==";
+        url = "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.5.1.tgz";
+        sha512 = "jzTyqhockpunkFKbEK+8sBP2cbgLllcmcWdTkCrxb+8CxLXD5bMWGMgUiI99Xz7+G/01QBMgAHOngKC05dVS7A==";
       };
     };
-    "@fluentui/react-8.62.3" = {
+    "@fluentui/react-8.66.1" = {
       name = "_at_fluentui_slash_react";
       packageName = "@fluentui/react";
-      version = "8.62.3";
+      version = "8.66.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react/-/react-8.62.3.tgz";
-        sha512 = "ENfTetlsI74k4vgJ3574mWSoRv7kcwUMow+7GBFBw3EZcwnkUXPG6FubzuLBbn36X8MjeRSi8pnaR6T73GaBOw==";
+        url = "https://registry.npmjs.org/@fluentui/react/-/react-8.66.1.tgz";
+        sha512 = "fhO7paR6Lo484VwvNYOkkwzO/Fkx+Wmqh6Z/1kYmbRggxs//hUQbnlT36U1ZJLUTuj5AXgRpMUlMvw30x8u5Rw==";
       };
     };
-    "@fluentui/react-focus-8.5.6" = {
+    "@fluentui/react-focus-8.5.7" = {
       name = "_at_fluentui_slash_react-focus";
       packageName = "@fluentui/react-focus";
-      version = "8.5.6";
+      version = "8.5.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.5.6.tgz";
-        sha512 = "K4INgXiwlinLz0Msa5TQbhL3YoN1mtqXO3p7XChDKeIf0QepAUDTnmJCrtKXqzY5VuXauLXyqm2darcHFrotVw==";
+        url = "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.5.7.tgz";
+        sha512 = "5pL5Tbtu5eGtKMNYSHpZ7pNd/gR+Ge2Ye9r8UjphX2X3xYm0/Q0ktjRO1xdPDi7KW20I3GgLDviCW2atSxqIBw==";
       };
     };
-    "@fluentui/react-hooks-8.5.3" = {
+    "@fluentui/react-hooks-8.5.4" = {
       name = "_at_fluentui_slash_react-hooks";
       packageName = "@fluentui/react-hooks";
-      version = "8.5.3";
+      version = "8.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.5.3.tgz";
-        sha512 = "zWiiEp/vYmKIXhw/bIVH9BnPKLT3zgWt9ryi3Tp1VVgxLEDloomM7RgDn0e2P8HZvynYRRT8GKq3XJ8H3AzAUg==";
+        url = "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.5.4.tgz";
+        sha512 = "WEU+NCrc080v631KFetcqNfXUBReX91cPbDyo8gi3M5babObs/m913SeV/m2llLKVCAelLVEIGw33QlQsGAK3g==";
       };
     };
     "@fluentui/react-window-provider-2.2.0" = {
@@ -3739,31 +3820,31 @@ let
         sha512 = "bqjpfhqaIkBy16vdYzdc7tER9Td7BTcmC+kCXuqkHOQVuG9LJfqVGRV0DA857KLhOxiy0GXwKMeDbNV5jJf6qQ==";
       };
     };
-    "@fluentui/style-utilities-8.6.5" = {
+    "@fluentui/style-utilities-8.6.6" = {
       name = "_at_fluentui_slash_style-utilities";
       packageName = "@fluentui/style-utilities";
-      version = "8.6.5";
+      version = "8.6.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.6.5.tgz";
-        sha512 = "X0ZIreRdUlnJnRQmKtngWEbrqFuecBlEv9fkKoHJeu+27AD+AU9RPYgK4fd/QCJRFoTU9WzQJj9tWylTBK+kFA==";
+        url = "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.6.6.tgz";
+        sha512 = "axMN7sq4W/YLuk0LiYPrg23e45Tkv89w9w6FCRnhj6JWja+inlK/IPh/qR2egOBkXU0iJY3g03KP0GMqqm5eWg==";
       };
     };
-    "@fluentui/theme-2.6.4" = {
+    "@fluentui/theme-2.6.5" = {
       name = "_at_fluentui_slash_theme";
       packageName = "@fluentui/theme";
-      version = "2.6.4";
+      version = "2.6.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.4.tgz";
-        sha512 = "MXCY2Z5zc1nK5PCN6tqhI1nplX/LF+8lF8YsrSGvu6VDnHilxi4Rifv2dRc+jybNI13tZ50uteok2Je7jABcMA==";
+        url = "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.5.tgz";
+        sha512 = "P22JpZSZoDjIWO5AxdPNjuDixqlhHvj8eEQB4Ilf/aYKXXzMI8HTc6eBcm9vQt3NKutzHsat3h+Jrstkw9H2YA==";
       };
     };
-    "@fluentui/utilities-8.8.1" = {
+    "@fluentui/utilities-8.8.2" = {
       name = "_at_fluentui_slash_utilities";
       packageName = "@fluentui/utilities";
-      version = "8.8.1";
+      version = "8.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.8.1.tgz";
-        sha512 = "JtICpdTINvifiyjp/LxxuDiU8BMkU73mzAP/3mz5KIhqPn3QjKG9ZeaBLPpoUXNOP/I6i9AYbAQHDvQI/ZK5tg==";
+        url = "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.8.2.tgz";
+        sha512 = "hmPS0NiKT1QfBHRX8hM9V179jlM1nt4JxBuzkb+52+XPYwcwBYZJfb4UaX0UhMJH7Em5xwc5Dy2AjNqPCOvnIg==";
       };
     };
     "@gar/promisify-1.1.3" = {
@@ -3847,13 +3928,13 @@ let
         sha512 = "aNgaS7zI6MkE4hrhmxrGiyFZHPvb0BW1djk0D5RoKDwPb8GTuYBfu8w/3twTvaf+HiM7NchvPtdFRbiETIaadw==";
       };
     };
-    "@grammyjs/types-2.6.0" = {
+    "@grammyjs/types-2.7.0" = {
       name = "_at_grammyjs_slash_types";
       packageName = "@grammyjs/types";
-      version = "2.6.0";
+      version = "2.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@grammyjs/types/-/types-2.6.0.tgz";
-        sha512 = "eWckBf25l6xwSS2YO6Ioyf2BDEO7tyNZhgRLl5PzsdvqlHQR+XYTdKwhevsqLG4Y+zmF6hEXnuNTYu+HF8W8Sg==";
+        url = "https://registry.npmjs.org/@grammyjs/types/-/types-2.7.0.tgz";
+        sha512 = "XgncCsNRwly8J+2d50dV2E4jAawtNxCfKaFjV+ynXC/vmyVFO6hsZYtXFP1CGDUD/QmSG2agP9dYWxsgRjZuHA==";
       };
     };
     "@graphql-cli/common-4.1.0" = {
@@ -3883,13 +3964,13 @@ let
         sha512 = "IuR2SB2MnC2ztA/XeTMTfWcA0Wy7ZH5u+nDkDNLAdX+AaSyDnsQS35sCmHqG0VOGTl7rzoyBWLCKGwSJplgtwg==";
       };
     };
-    "@graphql-tools/batch-execute-8.4.1" = {
+    "@graphql-tools/batch-execute-8.4.6" = {
       name = "_at_graphql-tools_slash_batch-execute";
       packageName = "@graphql-tools/batch-execute";
-      version = "8.4.1";
+      version = "8.4.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.4.1.tgz";
-        sha512 = "63+lNWrwXmofjZVa7ML+n9CBviClF3K+RP3Xx3hxGQ8BrhvB1pWS1yzaUZqrkiiKdTu1v3mJGVfmooHwzlyPwQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.4.6.tgz";
+        sha512 = "8O42fReZMssrA4HCkpK68RlRQz/QAvLfOkz+/6dDX2X7VgZtRx3VvFiJd2hFaGdNbLzklBWXF9E6hJdJGkEO5g==";
       };
     };
     "@graphql-tools/delegate-7.1.5" = {
@@ -3901,13 +3982,13 @@ let
         sha512 = "bQu+hDd37e+FZ0CQGEEczmRSfQRnnXeUxI/0miDV+NV/zCbEdIJj5tYFNrKT03W6wgdqx8U06d8L23LxvGri/g==";
       };
     };
-    "@graphql-tools/delegate-8.7.0" = {
+    "@graphql-tools/delegate-8.7.7" = {
       name = "_at_graphql-tools_slash_delegate";
       packageName = "@graphql-tools/delegate";
-      version = "8.7.0";
+      version = "8.7.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-8.7.0.tgz";
-        sha512 = "tsmNFV8nVvPY2nApCj69ck32/Jdj44rYbUZx+cpyUWOzfbUT1iu0d1mUwn5UeHuGnB+Bzgn3fuTypg97mDEyEw==";
+        url = "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-8.7.7.tgz";
+        sha512 = "Yb9UHG+Upm0M+5FgtWipXM0/Q8Vuuh1Ieod7hFDmAwHGHbmwG0YpcS/NMdxrQAZYWnli9EdnSPgDAFnWLFN+ZQ==";
       };
     };
     "@graphql-tools/graphql-file-loader-6.2.7" = {
@@ -3919,22 +4000,22 @@ let
         sha512 = "5k2SNz0W87tDcymhEMZMkd6/vs6QawDyjQXWtqkuLTBF3vxjxPD1I4dwHoxgWPIjjANhXybvulD7E+St/7s9TQ==";
       };
     };
-    "@graphql-tools/graphql-file-loader-7.3.7" = {
+    "@graphql-tools/graphql-file-loader-7.3.11" = {
       name = "_at_graphql-tools_slash_graphql-file-loader";
       packageName = "@graphql-tools/graphql-file-loader";
-      version = "7.3.7";
+      version = "7.3.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.3.7.tgz";
-        sha512 = "fwXLycYvabPhusGtYuFrOPbjeIvLWr6viGkQc9KmiBm2Z2kZrlNRNUlYkXXRzMoiqRkzqFJYhOgWDE7LsOnbjw==";
+        url = "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.3.11.tgz";
+        sha512 = "3RMTfBN0VYSJH+5he9DxW8nGSn5p2+dNN2O2H88QSSwGorkONmKBdmf+9+JTzrEDvPObOzBjIuSD8wCnXlNaQA==";
       };
     };
-    "@graphql-tools/import-6.6.9" = {
+    "@graphql-tools/import-6.6.13" = {
       name = "_at_graphql-tools_slash_import";
       packageName = "@graphql-tools/import";
-      version = "6.6.9";
+      version = "6.6.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.9.tgz";
-        sha512 = "sKaLqvPmNLQlY4te+nnBhRrf5WBISoiyVkbriCLz0kHw805iHdJaU2KxUoHsRTR7WlYq0g9gzB0oVaRh99Q5aA==";
+        url = "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.13.tgz";
+        sha512 = "yqdCem+ZZFVAaIC2IxWyAXSEHLNPIuMzm4avTQe/LbYNRFRTpzyIYo3clc22ixeuh2LqSL3tLXKq2IsggCAeQw==";
       };
     };
     "@graphql-tools/json-file-loader-6.2.6" = {
@@ -3946,13 +4027,13 @@ let
         sha512 = "CnfwBSY5926zyb6fkDBHnlTblHnHI4hoBALFYXnrg0Ev4yWU8B04DZl/pBRUc459VNgO2x8/mxGIZj2hPJG1EA==";
       };
     };
-    "@graphql-tools/json-file-loader-7.3.7" = {
+    "@graphql-tools/json-file-loader-7.3.11" = {
       name = "_at_graphql-tools_slash_json-file-loader";
       packageName = "@graphql-tools/json-file-loader";
-      version = "7.3.7";
+      version = "7.3.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-7.3.7.tgz";
-        sha512 = "dm0LcfiWYin7cUR4RWC33C9bNppujvSU7hwTH+sHmSguNnat9Kn8dBntVSgrY3qCbKuGfz/PshQHIODXrRwAKg==";
+        url = "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-7.3.11.tgz";
+        sha512 = "3in/1y+OVKP3eJ8aloxWD2HdZLcZChgHRk5j3ey3C+ANTwoedIgTWcwxro+iLH40IZ7a6z+I/Lb2dEc8xlgwug==";
       };
     };
     "@graphql-tools/load-6.2.4" = {
@@ -3964,13 +4045,13 @@ let
         sha512 = "FlQC50VELwRxoWUbJMMMs5gG0Dl8BaQYMrXUHTsxwqR7UmksUYnysC21rdousvs6jVZ7pf4unZfZFtBjz+8Edg==";
       };
     };
-    "@graphql-tools/load-7.5.5" = {
+    "@graphql-tools/load-7.5.10" = {
       name = "_at_graphql-tools_slash_load";
       packageName = "@graphql-tools/load";
-      version = "7.5.5";
+      version = "7.5.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.5.tgz";
-        sha512 = "qPasit140nwTbMQbFCfZcgaS7q/0+xMQGdkMGU11rtHt6/jMgJIKDUU8/fJGKltNY3EeHlEdVtZmggZD7Rr6bA==";
+        url = "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.10.tgz";
+        sha512 = "I9b9Md1DdB7Du//+x8CtBAKUW21jyuENCPssvlBjHZjvmx5cIGrTftqwGzuDBgR0Zm72tkmat/FTu6/SQPiyeQ==";
       };
     };
     "@graphql-tools/merge-6.2.17" = {
@@ -3982,13 +4063,13 @@ let
         sha512 = "G5YrOew39fZf16VIrc49q3c8dBqQDD0ax5LYPiNja00xsXDi0T9zsEWVt06ApjtSdSF6HDddlu5S12QjeN8Tow==";
       };
     };
-    "@graphql-tools/merge-8.2.6" = {
+    "@graphql-tools/merge-8.2.10" = {
       name = "_at_graphql-tools_slash_merge";
       packageName = "@graphql-tools/merge";
-      version = "8.2.6";
+      version = "8.2.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.6.tgz";
-        sha512 = "dkwTm4czMISi/Io47IVvq2Fl9q4TIGKpJ0VZjuXYdEFkECyH6A5uwxZfPVandZG+gQs8ocFFoa6RisiUJLZrJw==";
+        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.10.tgz";
+        sha512 = "wpg22seOTNfkIO8jFAgo8w1BsT3IS2OTMpkCNf+dvcKSP09SVidYCOliyWHgjDCmpCrvvSjOX855NUKDx/Biew==";
       };
     };
     "@graphql-tools/schema-7.1.5" = {
@@ -4000,13 +4081,13 @@ let
         sha512 = "uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==";
       };
     };
-    "@graphql-tools/schema-8.3.5" = {
+    "@graphql-tools/schema-8.3.10" = {
       name = "_at_graphql-tools_slash_schema";
       packageName = "@graphql-tools/schema";
-      version = "8.3.5";
+      version = "8.3.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.5.tgz";
-        sha512 = "3mJ/K7TdL+fnEUtCUqF4qkh1fcNMzaxgwKgO9fSYSTS7zyT16hbi5XSulSTshygHgaD2u+MO588iR4ZJcbZcIg==";
+        url = "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.10.tgz";
+        sha512 = "tfhjSTi3OzheDrVzG7rkPZg2BbQjmZRLM2vvQoM2b1TnUwgUIbpAgcnf+AWDLRsoCOWlezeLgij1BLeAR0Q0jg==";
       };
     };
     "@graphql-tools/url-loader-6.10.1" = {
@@ -4018,13 +4099,13 @@ let
         sha512 = "DSDrbhQIv7fheQ60pfDpGD256ixUQIR6Hhf9Z5bRjVkXOCvO5XrkwoWLiU7iHL81GB1r0Ba31bf+sl+D4nyyfw==";
       };
     };
-    "@graphql-tools/url-loader-7.9.7" = {
+    "@graphql-tools/url-loader-7.9.14" = {
       name = "_at_graphql-tools_slash_url-loader";
       packageName = "@graphql-tools/url-loader";
-      version = "7.9.7";
+      version = "7.9.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.9.7.tgz";
-        sha512 = "cJoZcv6oJrhArRPmSnw8wcqnz7F8p+HzwvjoJyHbs0ne2jTXazD+LOHaXMAa1L7lKK2YmH2Txy8pOI76JnvUiQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.9.14.tgz";
+        sha512 = "7IXiqUYp0cHeM+qvgjM4jAq8uJhl3PDdQYkyIj5wzZ7XjrkdV3JjPt0cHj2IBIeEwQJOjEKNeFYXjOlg73guCQ==";
       };
     };
     "@graphql-tools/utils-6.2.4" = {
@@ -4054,13 +4135,13 @@ let
         sha512 = "gzkavMOgbhnwkHJYg32Adv6f+LxjbQmmbdD5Hty0+CWxvaiuJq+nU6tzb/7VSU4cwhbNLx/lGu2jbCPEW1McZQ==";
       };
     };
-    "@graphql-tools/utils-8.6.5" = {
+    "@graphql-tools/utils-8.6.9" = {
       name = "_at_graphql-tools_slash_utils";
       packageName = "@graphql-tools/utils";
-      version = "8.6.5";
+      version = "8.6.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.5.tgz";
-        sha512 = "mjOtaWiS2WIqRz/cq5gaeM3sVrllcu2xbtHROw1su1v3xWa3D3dKgn8Lrl7+tvWs5WUVySsBss/VZ3WdoPkCrA==";
+        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.9.tgz";
+        sha512 = "Z1X4d4GCT81+8CSt6SgU4t1w1UAUsAIRb67mI90k/zAs+ArkB95iE3bWXuJCUmd1+r8DGGtmUNOArtd6wkt+OQ==";
       };
     };
     "@graphql-tools/wrap-7.0.8" = {
@@ -4072,22 +4153,49 @@ let
         sha512 = "1NDUymworsOlb53Qfh7fonDi2STvqCtbeE68ntKY9K/Ju/be2ZNxrFSbrBHwnxWcN9PjISNnLcAyJ1L5tCUyhg==";
       };
     };
-    "@graphql-tools/wrap-8.4.9" = {
+    "@graphql-tools/wrap-8.4.16" = {
       name = "_at_graphql-tools_slash_wrap";
       packageName = "@graphql-tools/wrap";
-      version = "8.4.9";
+      version = "8.4.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-8.4.9.tgz";
-        sha512 = "YFb34itVWyE3sMifvPRqvYjXYpjJle2hkq9nIELQOumc1yqxT7jf/+YnNZalS1DoOdWn4GbDmqO/uljf6AuuDA==";
+        url = "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-8.4.16.tgz";
+        sha512 = "b3yz7uN0en44sBEv/fAEQIqdiCEM/gQJSaLyA7Z2hWJwM0gQ5kiq0XMwKvyUAIY8NGig7IywC7bbup5Jc2F35Q==";
       };
     };
-    "@grpc/grpc-js-1.4.4" = {
-      name = "_at_grpc_slash_grpc-js";
-      packageName = "@grpc/grpc-js";
-      version = "1.4.4";
+    "@graphql-typed-document-node/core-3.1.1" = {
+      name = "_at_graphql-typed-document-node_slash_core";
+      packageName = "@graphql-typed-document-node/core";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.4.4.tgz";
-        sha512 = "a6222b7Dl6fIlMgzVl7e+NiRoLiZFbpcwvBH2Oli56Bn7W4/3Ld+86hK4ffPn5rx2DlDidmIcvIJiOQXyhv9gA==";
+        url = "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz";
+        sha512 = "NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==";
+      };
+    };
+    "@graphql-yoga/common-2.3.0" = {
+      name = "_at_graphql-yoga_slash_common";
+      packageName = "@graphql-yoga/common";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-yoga/common/-/common-2.3.0.tgz";
+        sha512 = "EPKK97953c8E1FiaLHMMGqLKtoAN5H9qHr0AiAzMlruJHn0JcbMf2qFTUXklCsuk6UEwNtxeHX42zim11O/E1g==";
+      };
+    };
+    "@graphql-yoga/node-2.3.0" = {
+      name = "_at_graphql-yoga_slash_node";
+      packageName = "@graphql-yoga/node";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-yoga/node/-/node-2.3.0.tgz";
+        sha512 = "uofEmKIDYthJuCcdhbgU0VW5i2cCqZVKIiEW/xbwvCOBJt439k46D+M6youiQYJ1miaA/m0btbuZ1sAo/TLjdQ==";
+      };
+    };
+    "@graphql-yoga/subscription-2.0.0" = {
+      name = "_at_graphql-yoga_slash_subscription";
+      packageName = "@graphql-yoga/subscription";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-yoga/subscription/-/subscription-2.0.0.tgz";
+        sha512 = "HlG+gIddjIP3/BDrMZymdzmzDjNdYuSGMxx6+1JA83gAEVRDR4yOoT4QeNKYqRhLK9xca/Hxp1PfBpquSa244Q==";
       };
     };
     "@grpc/grpc-js-1.5.10" = {
@@ -4099,31 +4207,49 @@ let
         sha512 = "++oAubX/7rJzlqH0ShyzDENNNDHYrlttdc3NM40KlaVQDcgGqQknuPoavmyTC+oNUDyxPCX5dHceKhfcgN3tiw==";
       };
     };
-    "@grpc/grpc-js-1.5.4" = {
+    "@grpc/grpc-js-1.5.7" = {
       name = "_at_grpc_slash_grpc-js";
       packageName = "@grpc/grpc-js";
-      version = "1.5.4";
+      version = "1.5.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.4.tgz";
-        sha512 = "+nJTOsqpFAXnfFrMZ7Too4XXZ/J9O+8jYvSoaunupoC7I7b9H4iex1BRsbTdOmiowfPGJrWit7jUPmbENSUSpw==";
+        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.7.tgz";
+        sha512 = "RAlSbZ9LXo0wNoHKeUlwP9dtGgVBDUbnBKFpfAv5iSqMG4qWz9um2yLH215+Wow1I48etIa1QMS+WAGmsE/7HQ==";
       };
     };
-    "@grpc/grpc-js-1.5.7" = {
+    "@grpc/grpc-js-1.6.1" = {
       name = "_at_grpc_slash_grpc-js";
       packageName = "@grpc/grpc-js";
-      version = "1.5.7";
+      version = "1.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.7.tgz";
-        sha512 = "RAlSbZ9LXo0wNoHKeUlwP9dtGgVBDUbnBKFpfAv5iSqMG4qWz9um2yLH215+Wow1I48etIa1QMS+WAGmsE/7HQ==";
+        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.1.tgz";
+        sha512 = "ix3rQS64rKL1s6CfIaRgnts+RNYZZ2NaYyTK7iimai6an/0GGDbukzy990hJ5vtKHjhaqJxJMB6Qq7BMZ0zZSQ==";
       };
     };
-    "@grpc/proto-loader-0.6.6" = {
-      name = "_at_grpc_slash_proto-loader";
-      packageName = "@grpc/proto-loader";
-      version = "0.6.6";
+    "@grpc/grpc-js-1.6.2" = {
+      name = "_at_grpc_slash_grpc-js";
+      packageName = "@grpc/grpc-js";
+      version = "1.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.6.tgz";
-        sha512 = "cdMaPZ8AiFz6ua6PUbP+LKbhwJbFXnrQ/mlnKGUyzDUZ3wp7vPLksnmLCBX6SHgSmjX7CbNVNLFYD5GmmjO4GQ==";
+        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.2.tgz";
+        sha512 = "9+89Ne1K8F9u86T+l1yIV2DS+dWHYVK61SsDZN4MFTFehOOaJ4rHxa1cW8Lwdn2/6tOx7N3+SY/vfcjztOHopA==";
+      };
+    };
+    "@grpc/grpc-js-1.6.4" = {
+      name = "_at_grpc_slash_grpc-js";
+      packageName = "@grpc/grpc-js";
+      version = "1.6.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.4.tgz";
+        sha512 = "Jqq8t3ylPLPK4XXnYPj2uuESirRCAaQ0//GxRLPK6Xq2TBHb2DlmSzJUh15a6R4uUIjBwA8wI69JuKleZXz4jQ==";
+      };
+    };
+    "@grpc/grpc-js-1.6.6" = {
+      name = "_at_grpc_slash_grpc-js";
+      packageName = "@grpc/grpc-js";
+      version = "1.6.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.6.tgz";
+        sha512 = "gEMn1+d01yO/QNHsDOPHxJYtA6QItbdQT4mGFS8Gt5IQCq+83OEsD0sbvPf3RLCtHy1HI412JgQPr5HM9QK0mw==";
       };
     };
     "@grpc/proto-loader-0.6.9" = {
@@ -4648,13 +4774,13 @@ let
         sha512 = "Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==";
       };
     };
-    "@jridgewell/trace-mapping-0.3.4" = {
+    "@jridgewell/trace-mapping-0.3.8" = {
       name = "_at_jridgewell_slash_trace-mapping";
       packageName = "@jridgewell/trace-mapping";
-      version = "0.3.4";
+      version = "0.3.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz";
-        sha512 = "vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==";
+        url = "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.8.tgz";
+        sha512 = "zdpaWDz5IEyHlu1EO+B+qRHmJkSxMVV6SXngDry9n1ZqslLXFH9Dw6lRqDidm/sOJAWdRltJsmZ1SK28/uZKsw==";
       };
     };
     "@jsdevtools/ono-7.1.3" = {
@@ -4666,22 +4792,22 @@ let
         sha512 = "4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==";
       };
     };
-    "@jsii/check-node-1.55.1" = {
+    "@jsii/check-node-1.57.0" = {
       name = "_at_jsii_slash_check-node";
       packageName = "@jsii/check-node";
-      version = "1.55.1";
+      version = "1.57.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.55.1.tgz";
-        sha512 = "JC9b+y4CXdIICDE6fYjaN0VKPc65lz4dj1T4lnaqMfbXIBGB7sBMLQJ/szVc9U3Z+o/HBzCJndNn86kGRM+lqw==";
+        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.57.0.tgz";
+        sha512 = "7c4D07I8xefmafKtiXQkarpRsSRufpach4lcM/mepWhBqVGxFjzGF7S4vRT7MAQiEKEpGhnIfpWFhmBgUtP6bw==";
       };
     };
-    "@jsii/spec-1.55.1" = {
+    "@jsii/spec-1.57.0" = {
       name = "_at_jsii_slash_spec";
       packageName = "@jsii/spec";
-      version = "1.55.1";
+      version = "1.57.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.55.1.tgz";
-        sha512 = "KSKKN04eO0rTaqzw6j9RTx8HAzhePdmWRC3iJQ90QeZLv/L8Pj4l+nZ4wn77BGxmeULpXkGXUKbhkceArdr4GA==";
+        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.57.0.tgz";
+        sha512 = "Pt1wWIVeBN7UHJ9Flj676hNA3sNN06YSbErUd3loLgCUjRDOUzp2QysaRQK2Zsf2DBIjwLq048btoWkjPsTFJQ==";
       };
     };
     "@juggle/resize-observer-3.3.1" = {
@@ -4738,13 +4864,13 @@ let
         sha512 = "4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA==";
       };
     };
-    "@ledgerhq/devices-6.24.1" = {
+    "@ledgerhq/devices-6.27.1" = {
       name = "_at_ledgerhq_slash_devices";
       packageName = "@ledgerhq/devices";
-      version = "6.24.1";
+      version = "6.27.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ledgerhq/devices/-/devices-6.24.1.tgz";
-        sha512 = "6SNXWXxojUF6WKXMVIbRs15Mveg+9k0RKJK/PKlwZh929Lnr/NcbONWdwPjWKZAp1g82eEPT4jIkG6qc4QXlcA==";
+        url = "https://registry.npmjs.org/@ledgerhq/devices/-/devices-6.27.1.tgz";
+        sha512 = "jX++oy89jtv7Dp2X6gwt3MMkoajel80JFWcdc0HCouwDsV1mVJ3SQdwl/bQU0zd8HI6KebvUP95QTwbQLLK/RQ==";
       };
     };
     "@ledgerhq/errors-5.50.0" = {
@@ -4774,31 +4900,31 @@ let
         sha512 = "6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw==";
       };
     };
-    "@ledgerhq/hw-transport-6.24.1" = {
+    "@ledgerhq/hw-transport-6.27.1" = {
       name = "_at_ledgerhq_slash_hw-transport";
       packageName = "@ledgerhq/hw-transport";
-      version = "6.24.1";
+      version = "6.27.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-6.24.1.tgz";
-        sha512 = "cOhxkQJrN7DvPFLLXAS2nqAZ7NIDaFqnbgu9ugTccgbJm2/z7ClRZX/uQoI4FscswZ47MuJQdXqz4nK48phteQ==";
+        url = "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-6.27.1.tgz";
+        sha512 = "hnE4/Fq1YzQI4PA1W0H8tCkI99R3UWDb3pJeZd6/Xs4Qw/q1uiQO+vNLC6KIPPhK0IajUfuI/P2jk0qWcMsuAQ==";
       };
     };
-    "@ledgerhq/hw-transport-node-hid-6.24.1" = {
+    "@ledgerhq/hw-transport-node-hid-6.27.1" = {
       name = "_at_ledgerhq_slash_hw-transport-node-hid";
       packageName = "@ledgerhq/hw-transport-node-hid";
-      version = "6.24.1";
+      version = "6.27.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-6.24.1.tgz";
-        sha512 = "onbxunq8FsiY2sVRR+jRCjC1nx376ANuAtnQsmoHsgxONOVTb5asXWWOV4Cjm8y7RZTCtDw3d1fbziEGRhwiqA==";
+        url = "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-6.27.1.tgz";
+        sha512 = "H3kGFU6lDAZM7ef17nVGTCpgwPzDcbO8dwqvGoIDTopvlNgNqmzw95GT3aCosJMp04C9yYGyMPSF5UFjRX8ckg==";
       };
     };
-    "@ledgerhq/hw-transport-node-hid-noevents-6.24.1" = {
+    "@ledgerhq/hw-transport-node-hid-noevents-6.27.1" = {
       name = "_at_ledgerhq_slash_hw-transport-node-hid-noevents";
       packageName = "@ledgerhq/hw-transport-node-hid-noevents";
-      version = "6.24.1";
+      version = "6.27.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-6.24.1.tgz";
-        sha512 = "z3uXCU13oayRX51MOaTREdrn83ujrBkccdXn3ljdMy4H3pmAvG6QGn4m30gursEUUJkogA6dkcXs3G8IRfOdxA==";
+        url = "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-6.27.1.tgz";
+        sha512 = "nsPo491bslP7QySXIB2asILxws7+t2V/0F4Hjc3IBEkHexH3iS+TmeegE5A72vDXhXKI4wskJ8Pp8Odcz9TN1A==";
       };
     };
     "@ledgerhq/hw-transport-u2f-5.36.0-deprecated" = {
@@ -5494,13 +5620,13 @@ let
         sha512 = "/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==";
       };
     };
-    "@mapbox/node-pre-gyp-1.0.8" = {
+    "@mapbox/node-pre-gyp-1.0.9" = {
       name = "_at_mapbox_slash_node-pre-gyp";
       packageName = "@mapbox/node-pre-gyp";
-      version = "1.0.8";
+      version = "1.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.8.tgz";
-        sha512 = "CMGKi28CF+qlbXh26hDe6NxCd7amqeAzEqnS6IHeO6LoaKyM/n+Xw3HT1COdq8cuioOdlKdqn/hCmqPUOMOywg==";
+        url = "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz";
+        sha512 = "aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==";
       };
     };
     "@mapbox/point-geometry-0.1.0" = {
@@ -5584,31 +5710,49 @@ let
         sha512 = "y3Ntio6hb5+m6asxcA3nnIN6URjAFMji2EZZVYGd2Ag5On4mmvPhMnXdiIScCMXgHjFX+5qXuKaojLLhJHZPAg==";
       };
     };
-    "@medable/mdctl-api-1.0.63" = {
+    "@medable/mdctl-api-1.0.64" = {
       name = "_at_medable_slash_mdctl-api";
       packageName = "@medable/mdctl-api";
-      version = "1.0.63";
+      version = "1.0.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@medable/mdctl-api/-/mdctl-api-1.0.63.tgz";
-        sha512 = "B4AgY+HGy7nJpGCY1+88F74NeXEJbmKGud5sgWaBOXHnOweNHvqWb0c2Fkn5A2LxiYPXpDvmGmiypCHubqJlQg==";
+        url = "https://registry.npmjs.org/@medable/mdctl-api/-/mdctl-api-1.0.64.tgz";
+        sha512 = "EPYWmkTMazBrilFm1YgSsQ8e62poVJbXdWHiCgUaVfqgE5htuogUSx1qMQbkGPYA1eWeZQLEpmTaKZXfI/1Vtw==";
       };
     };
-    "@medable/mdctl-core-1.0.63" = {
+    "@medable/mdctl-api-driver-1.0.64" = {
+      name = "_at_medable_slash_mdctl-api-driver";
+      packageName = "@medable/mdctl-api-driver";
+      version = "1.0.64";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@medable/mdctl-api-driver/-/mdctl-api-driver-1.0.64.tgz";
+        sha512 = "w4OzAcQJvAlOBelophFpIM4TZdxFRyFTn71J88TME8h/swxC/YbfUmN3HVRQMxMimhnX0kGC44pm1YiHcqOg/g==";
+      };
+    };
+    "@medable/mdctl-axon-tools-1.0.64" = {
+      name = "_at_medable_slash_mdctl-axon-tools";
+      packageName = "@medable/mdctl-axon-tools";
+      version = "1.0.64";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@medable/mdctl-axon-tools/-/mdctl-axon-tools-1.0.64.tgz";
+        sha512 = "Weew9WUga+AmZUbB4NZDR17qvv8rQ05F2gzlRxDdNwjbuwRmglwtBf2nbZu4SkAYhIFSSf3yPerhHpQsPpaf+w==";
+      };
+    };
+    "@medable/mdctl-core-1.0.64" = {
       name = "_at_medable_slash_mdctl-core";
       packageName = "@medable/mdctl-core";
-      version = "1.0.63";
+      version = "1.0.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@medable/mdctl-core/-/mdctl-core-1.0.63.tgz";
-        sha512 = "XDZS5TN6d7BuHmIFi83P8MPg1zioiOzPFkq/S27DZ0Oa7Z9tW+w29IG0ltYZ6/uFuo8Z0VPiu9MdwM2vmzIPKQ==";
+        url = "https://registry.npmjs.org/@medable/mdctl-core/-/mdctl-core-1.0.64.tgz";
+        sha512 = "iu/iZwtueHD0uzuO/3kNECdZRKndF37VS+kRSS0diMkjgcgAqTo5telnnkEreJ6F/rULTlag6D5IkZNI9b/3LQ==";
       };
     };
-    "@medable/mdctl-core-schemas-1.0.63" = {
+    "@medable/mdctl-core-schemas-1.0.64" = {
       name = "_at_medable_slash_mdctl-core-schemas";
       packageName = "@medable/mdctl-core-schemas";
-      version = "1.0.63";
+      version = "1.0.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@medable/mdctl-core-schemas/-/mdctl-core-schemas-1.0.63.tgz";
-        sha512 = "eoYyS0m4ZFE+q3QpkoHbl+HDxhDxx/xN0i6VeWhQsSMCeTeLffrXBWYIdZvi39QKLCL171m9uWr83yNKkvEp1w==";
+        url = "https://registry.npmjs.org/@medable/mdctl-core-schemas/-/mdctl-core-schemas-1.0.64.tgz";
+        sha512 = "qgSx/Br+B6eFtPWEPLMT6G2kZf6gCLyayN3O7MpwaF1RA8dH7kAqm+EWsiLvIrhYMfQ+3reTvHvP7K3431piRA==";
       };
     };
     "@medable/mdctl-core-utils-1.0.63" = {
@@ -5620,31 +5764,31 @@ let
         sha512 = "9Xx4Fku47H00F9K5cCbHE3ugz3PWyUxXBRp86ee1n3QVTvhoE2PdCHYH2RES24385uH+/BrYfclMtZ4pCfXVwg==";
       };
     };
-    "@medable/mdctl-credentials-provider-keychain-1.0.63" = {
+    "@medable/mdctl-credentials-provider-keychain-1.0.64" = {
       name = "_at_medable_slash_mdctl-credentials-provider-keychain";
       packageName = "@medable/mdctl-credentials-provider-keychain";
-      version = "1.0.63";
+      version = "1.0.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@medable/mdctl-credentials-provider-keychain/-/mdctl-credentials-provider-keychain-1.0.63.tgz";
-        sha512 = "Vr+VpZ9XrPdsg5+qW6YNikED+RUn/v8/RMvbZ78hsEFEjEHRYT0He7f/nbJVkrS7+zYX7cdmzlZnKPV5z5HiQQ==";
+        url = "https://registry.npmjs.org/@medable/mdctl-credentials-provider-keychain/-/mdctl-credentials-provider-keychain-1.0.64.tgz";
+        sha512 = "PXCw9HfDbEu9w7c6MPSFG2rrqDDcEr8oDvr6m7FpmU/VjujsE055JkmmJ5nQTpBRex1pHuGkPWUgtSEMvzhITg==";
       };
     };
-    "@medable/mdctl-credentials-provider-pouchdb-1.0.63" = {
+    "@medable/mdctl-credentials-provider-pouchdb-1.0.64" = {
       name = "_at_medable_slash_mdctl-credentials-provider-pouchdb";
       packageName = "@medable/mdctl-credentials-provider-pouchdb";
-      version = "1.0.63";
+      version = "1.0.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@medable/mdctl-credentials-provider-pouchdb/-/mdctl-credentials-provider-pouchdb-1.0.63.tgz";
-        sha512 = "FNIq2RxBd9NJPz4oBCs17sd3Zg2g0Y7zjAqu3G3I9LyEjbeJZLGwr7lu6NqmtG/F3e/TH2d6ecMK0zKPlpAJQg==";
+        url = "https://registry.npmjs.org/@medable/mdctl-credentials-provider-pouchdb/-/mdctl-credentials-provider-pouchdb-1.0.64.tgz";
+        sha512 = "qCcxaVrUUxsgtEPA693VanapacR0/l51o029YmYCDtIzTnndK7rjpxQ7XDNGLd8o3suzKEq8MrQDF0USkE/18g==";
       };
     };
-    "@medable/mdctl-docs-1.0.63" = {
+    "@medable/mdctl-docs-1.0.64" = {
       name = "_at_medable_slash_mdctl-docs";
       packageName = "@medable/mdctl-docs";
-      version = "1.0.63";
+      version = "1.0.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@medable/mdctl-docs/-/mdctl-docs-1.0.63.tgz";
-        sha512 = "1DUsJFnpJNkwTZ65vx5rd+hzkuM3sfSJ3nxYfwcyOWw1bErloObXSEMw2iPIyt3ryYg3i9Jtt+d3AUuDpcT4PQ==";
+        url = "https://registry.npmjs.org/@medable/mdctl-docs/-/mdctl-docs-1.0.64.tgz";
+        sha512 = "33HEgkgL1Hu4yHYU0uH+zQukLiMv+e/NtfbCFBCGNuelvvSQHI4m/ZzAdriF9h7Ovyv1IFAKylEGKrw4A7xyZQ==";
       };
     };
     "@medable/mdctl-export-adapter-console-1.0.63" = {
@@ -5656,49 +5800,49 @@ let
         sha512 = "hPGbVYsWH/BVA9Q8cWuTMAeWtGvBg5TDE3pYWdVzaRMUqNt1af7weaieYX56h7jlOhkl4AtkKcW6S5AK0Q8w+w==";
       };
     };
-    "@medable/mdctl-export-adapter-tree-1.0.63" = {
+    "@medable/mdctl-export-adapter-tree-1.0.64" = {
       name = "_at_medable_slash_mdctl-export-adapter-tree";
       packageName = "@medable/mdctl-export-adapter-tree";
-      version = "1.0.63";
+      version = "1.0.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@medable/mdctl-export-adapter-tree/-/mdctl-export-adapter-tree-1.0.63.tgz";
-        sha512 = "RfmHQUosT3qXnL0jFM2KPkc+JeHv7Ur9Qf16ffOAJCqopbJ+4ZAfUn/3IOUnlYZbeifWy3xU6gptSCqHITJokQ==";
+        url = "https://registry.npmjs.org/@medable/mdctl-export-adapter-tree/-/mdctl-export-adapter-tree-1.0.64.tgz";
+        sha512 = "O3zQpVACsFfeat3hmBiQXLoHpU4tnjQ0ggDr5pOpQUuWnV3H8lxzDNw1UTmcZuN9e+WA2HoX2C5I3yWZ/2uCvg==";
       };
     };
-    "@medable/mdctl-import-adapter-1.0.63" = {
+    "@medable/mdctl-import-adapter-1.0.64" = {
       name = "_at_medable_slash_mdctl-import-adapter";
       packageName = "@medable/mdctl-import-adapter";
-      version = "1.0.63";
+      version = "1.0.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@medable/mdctl-import-adapter/-/mdctl-import-adapter-1.0.63.tgz";
-        sha512 = "l3xxVPyMvruvbi5JL75TqcFnh1wa+enFnJT9lk6tESy858w57PQes3cqhWdMZHJlDDBvpKhus/UiIERSEfwRDA==";
+        url = "https://registry.npmjs.org/@medable/mdctl-import-adapter/-/mdctl-import-adapter-1.0.64.tgz";
+        sha512 = "0HWnOFQVKomxKwu1nt3o1fK4+ObT10r545viQg8Ad2zEYzcb/jE3k7FlSQOkvLqTk/JCcNjp0AIWV6R3PFHJ0w==";
       };
     };
-    "@medable/mdctl-manifest-1.0.63" = {
+    "@medable/mdctl-manifest-1.0.64" = {
       name = "_at_medable_slash_mdctl-manifest";
       packageName = "@medable/mdctl-manifest";
-      version = "1.0.63";
+      version = "1.0.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@medable/mdctl-manifest/-/mdctl-manifest-1.0.63.tgz";
-        sha512 = "lNepdPyMUTMNL87QrVoHklUOK8d0Nrv72y19gdO52yAM7IZPXG/UORlfip0JYFkFu/KSedrIVodjp6prm7+sgA==";
+        url = "https://registry.npmjs.org/@medable/mdctl-manifest/-/mdctl-manifest-1.0.64.tgz";
+        sha512 = "9lT6lAw9Y0m5Pv3sHXjOJIalUgcazrmCc0GGRmIoxDvWn9AUyaJ0p2dilyh9wR9IX1HAexEAuQR5IviGCLq/Hg==";
       };
     };
-    "@medable/mdctl-node-utils-1.0.63" = {
+    "@medable/mdctl-node-utils-1.0.64" = {
       name = "_at_medable_slash_mdctl-node-utils";
       packageName = "@medable/mdctl-node-utils";
-      version = "1.0.63";
+      version = "1.0.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@medable/mdctl-node-utils/-/mdctl-node-utils-1.0.63.tgz";
-        sha512 = "wbC+fKBmdf0Zk1pB3x0T+4Z1fk3anSE3kcp8VznOZfpGD5UgYUzbhZzH8oPhT/3X1jx17XUS7XTURjqj6vTQew==";
+        url = "https://registry.npmjs.org/@medable/mdctl-node-utils/-/mdctl-node-utils-1.0.64.tgz";
+        sha512 = "ITZP4EHYqJbF0sxfHddrPvTRvEfuBiyZuI8gOBjTOHUUMj9PE8vG3D9okWIoCtvkaNAgr2Jjd/SHkEYDRZHnpA==";
       };
     };
-    "@medable/mdctl-sandbox-1.0.63" = {
+    "@medable/mdctl-sandbox-1.0.64" = {
       name = "_at_medable_slash_mdctl-sandbox";
       packageName = "@medable/mdctl-sandbox";
-      version = "1.0.63";
+      version = "1.0.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@medable/mdctl-sandbox/-/mdctl-sandbox-1.0.63.tgz";
-        sha512 = "GENimL772K2Udv4id+QqL6E66Oko4e2UOeN93tYiUrU92w3S3wvEu/UyXXKjS/rzgs2naBmo6T3K7gdu8HqF4Q==";
+        url = "https://registry.npmjs.org/@medable/mdctl-sandbox/-/mdctl-sandbox-1.0.64.tgz";
+        sha512 = "dhoWUIfRgPJeymAxwW6D4T4k3QNrwvfeANRrIuNj7CT0hcn7CsusQhoCyYkhrymAvN5/X0KoTvYCGRj6sSLeMg==";
       };
     };
     "@medable/mdctl-secrets-1.0.63" = {
@@ -5728,13 +5872,13 @@ let
         sha512 = "W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==";
       };
     };
-    "@microsoft/load-themed-styles-1.10.249" = {
+    "@microsoft/load-themed-styles-1.10.258" = {
       name = "_at_microsoft_slash_load-themed-styles";
       packageName = "@microsoft/load-themed-styles";
-      version = "1.10.249";
+      version = "1.10.258";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.249.tgz";
-        sha512 = "qrLdjIZ9znm2CUILAXuwyAcUvyBzSNaf8wIzaZf/ul2UKhww5xSI7pT7bIqWbuwn5SB+xOmIZrlRr3DyzuVBYQ==";
+        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.258.tgz";
+        sha512 = "MUJGLLztVKuL7cvQcErURsqDF1XW3XR8FKJDgoxZ1g55C7k28TNZ3DkLSVLI/Z3arCB5ZbYQBx5pXAXlyKXtEA==";
       };
     };
     "@mitmaro/errors-1.0.0" = {
@@ -5791,13 +5935,13 @@ let
         sha512 = "BTpWy1e+FxN82RnLz4x1+JcEewVdfmUhV1C6/XYD5AjS7PQp9QFF7K8bCD6gzPTr2l+prvqOyVueQhFJxB1vfg==";
       };
     };
-    "@nestjs/schematics-8.0.8" = {
+    "@nestjs/schematics-8.0.10" = {
       name = "_at_nestjs_slash_schematics";
       packageName = "@nestjs/schematics";
-      version = "8.0.8";
+      version = "8.0.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nestjs/schematics/-/schematics-8.0.8.tgz";
-        sha512 = "xIIb5YnMQN/OJQ68+MCapy2bXvTxSWgINoqQbyZWkLL/yTIuROvZCdtV850NPGyr7f7l93VBP0ZPitbFIexy3Q==";
+        url = "https://registry.npmjs.org/@nestjs/schematics/-/schematics-8.0.10.tgz";
+        sha512 = "gQq/8TYjtgum+5+QuPfHHKgKxDgNLGh8mH+EJ1skOKX+GTxgt5jmg1GFmwEfiOXZUcF9thT6GsOVNKWrdO3YMg==";
       };
     };
     "@netflix/nerror-1.1.3" = {
@@ -6079,13 +6223,13 @@ let
         sha512 = "/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==";
       };
     };
-    "@npmcli/git-3.0.0" = {
+    "@npmcli/git-3.0.1" = {
       name = "_at_npmcli_slash_git";
       packageName = "@npmcli/git";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/git/-/git-3.0.0.tgz";
-        sha512 = "xfSBJ+KBMZWWqRHFbEgIaXG/LtELHrQZMJ72Gkb3yWdHysu/7+VGOs8ME0c3td7QNQX57Ggo3kYL6ylcd70/kA==";
+        url = "https://registry.npmjs.org/@npmcli/git/-/git-3.0.1.tgz";
+        sha512 = "UU85F/T+F1oVn3IsB/L6k9zXIMpXBuUBE25QDH0SsURwT6IOBqkC7M16uqo2vVZIyji3X1K4XH9luip7YekH1A==";
       };
     };
     "@npmcli/installed-package-contents-1.0.7" = {
@@ -6124,6 +6268,15 @@ let
         sha512 = "1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==";
       };
     };
+    "@npmcli/move-file-2.0.0" = {
+      name = "_at_npmcli_slash_move-file";
+      packageName = "@npmcli/move-file";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.0.tgz";
+        sha512 = "UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg==";
+      };
+    };
     "@npmcli/name-from-folder-1.0.1" = {
       name = "_at_npmcli_slash_name-from-folder";
       packageName = "@npmcli/name-from-folder";
@@ -6142,6 +6295,15 @@ let
         sha512 = "fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==";
       };
     };
+    "@npmcli/node-gyp-2.0.0" = {
+      name = "_at_npmcli_slash_node-gyp";
+      packageName = "@npmcli/node-gyp";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz";
+        sha512 = "doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A==";
+      };
+    };
     "@npmcli/package-json-1.0.1" = {
       name = "_at_npmcli_slash_package-json";
       packageName = "@npmcli/package-json";
@@ -6160,6 +6322,15 @@ let
         sha512 = "QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==";
       };
     };
+    "@npmcli/promise-spawn-3.0.0" = {
+      name = "_at_npmcli_slash_promise-spawn";
+      packageName = "@npmcli/promise-spawn";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz";
+        sha512 = "s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g==";
+      };
+    };
     "@npmcli/run-script-1.8.6" = {
       name = "_at_npmcli_slash_run-script";
       packageName = "@npmcli/run-script";
@@ -6178,13 +6349,13 @@ let
         sha512 = "fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==";
       };
     };
-    "@npmcli/run-script-3.0.1" = {
+    "@npmcli/run-script-3.0.2" = {
       name = "_at_npmcli_slash_run-script";
       packageName = "@npmcli/run-script";
-      version = "3.0.1";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-3.0.1.tgz";
-        sha512 = "o2fkld5hYwu9sKYzoXTpqEocMnDLaigobaPzLaGB63k/ExmLBTaB+KpfKlpcIePPnuP8RFR+0GDI4KopJCM6Xg==";
+        url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-3.0.2.tgz";
+        sha512 = "vdjD/PMBl+OX9j9C9irx5sCCIKfp2PWkpPNH9zxvlJAfSZ3Qp5aU412v+O3PFJl3R1PFNwuyChCqHg4ma6ci2Q==";
       };
     };
     "@oclif/command-1.8.0" = {
@@ -6520,481 +6691,481 @@ let
         sha512 = "GdTwDHSaZ6iP5LUdvS/SLUjn3067xn1HcBsLZCh8YOsf22d/YWTBcnFl3buieBP4KiajwHLho4I8HSMDKACBSg==";
       };
     };
-    "@ot-builder/bin-composite-types-1.5.0" = {
+    "@ot-builder/bin-composite-types-1.5.1" = {
       name = "_at_ot-builder_slash_bin-composite-types";
       packageName = "@ot-builder/bin-composite-types";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/bin-composite-types/-/bin-composite-types-1.5.0.tgz";
-        sha512 = "0X12BGmy7l91ONXGLfmG3BQerqjdipYgrGhREXL80qcKQfcZL4o+7NHjq/FDlFYpMGLxDq9CkprGEDmgSIL9CA==";
+        url = "https://registry.npmjs.org/@ot-builder/bin-composite-types/-/bin-composite-types-1.5.1.tgz";
+        sha512 = "ocwr19PbiqbZ6X64IhTzZzXvYxrGBUQHSN3Ii1RAPbZ8McHlNX4LtUbxAE1P3MnXOWtlZO4YUr4hHOZY2c6/7A==";
       };
     };
-    "@ot-builder/bin-util-1.5.0" = {
+    "@ot-builder/bin-util-1.5.1" = {
       name = "_at_ot-builder_slash_bin-util";
       packageName = "@ot-builder/bin-util";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/bin-util/-/bin-util-1.5.0.tgz";
-        sha512 = "zLBqM5SjP/EmVaZtwqOjK832yzYQTlWqtldOmgAizckiNpayC6P5c49KJpVTLhVh54euhsk9oJUjsi0L9i8A0g==";
+        url = "https://registry.npmjs.org/@ot-builder/bin-util/-/bin-util-1.5.1.tgz";
+        sha512 = "uYz/dEE723loQiNIoRifnY8TWOdheuorCojIoTtZa3CIiAzfjpkVpHXpoSrDpO0Syep0tfq8pgDf/vm0fv0Mnw==";
       };
     };
-    "@ot-builder/cli-help-shower-1.5.0" = {
+    "@ot-builder/cli-help-shower-1.5.1" = {
       name = "_at_ot-builder_slash_cli-help-shower";
       packageName = "@ot-builder/cli-help-shower";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-help-shower/-/cli-help-shower-1.5.0.tgz";
-        sha512 = "2jMS5aTr+92mt0HsUoLLV+1GBMsk2GC1tx5YFcdDBH7rfExvYR5NKgpO1d7muVdUi8WBh4fn611rb5sjhBtF5Q==";
+        url = "https://registry.npmjs.org/@ot-builder/cli-help-shower/-/cli-help-shower-1.5.1.tgz";
+        sha512 = "xSeyQV/muAqr0ZMZprdAAz+4fq3C8j1AOPqjv0jWeyUcDTGHR1Itvf1iigL7+LB9nIn3bZXKFLBiUUQx2Lmhig==";
       };
     };
-    "@ot-builder/cli-proc-1.5.0" = {
+    "@ot-builder/cli-proc-1.5.1" = {
       name = "_at_ot-builder_slash_cli-proc";
       packageName = "@ot-builder/cli-proc";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-proc/-/cli-proc-1.5.0.tgz";
-        sha512 = "zU0afR6WqkUcogoX1pLJBsYSlViPJCkQ1zrHjnOLcHRJ5zIPwNXbFUTAhWePMvNF8EAjtILGeX8ZxoE3PtXMTQ==";
+        url = "https://registry.npmjs.org/@ot-builder/cli-proc/-/cli-proc-1.5.1.tgz";
+        sha512 = "/uUtJIOHiUzfFeWMQFF9CNg93+cZc9DIbPb7fIS3yucWSpaKP2cXjwZ9LeHDxkbtIMLwfr9W/ktRk/DlKERPJw==";
       };
     };
-    "@ot-builder/cli-shared-1.5.0" = {
+    "@ot-builder/cli-shared-1.5.1" = {
       name = "_at_ot-builder_slash_cli-shared";
       packageName = "@ot-builder/cli-shared";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-shared/-/cli-shared-1.5.0.tgz";
-        sha512 = "hOYs07mNlg9Z+Rl2wKsDRzb0gYVsnAv6K8O52Q141QBvu5Uyjb6p19zM8pYvOF7VXZTGEhki9WNoM3qVgp5pSA==";
+        url = "https://registry.npmjs.org/@ot-builder/cli-shared/-/cli-shared-1.5.1.tgz";
+        sha512 = "FbFIQ5lWNobNR7Sg4TDevNpEGn03Com+5+OfLLUToHhXoTuGmJDfrHeQ7KG7bFs4pnCNDDavM1Dn34v/U5zmbA==";
       };
     };
-    "@ot-builder/common-impl-1.5.0" = {
+    "@ot-builder/common-impl-1.5.1" = {
       name = "_at_ot-builder_slash_common-impl";
       packageName = "@ot-builder/common-impl";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/common-impl/-/common-impl-1.5.0.tgz";
-        sha512 = "6linn1dhjDVIiu2cvY0UACSAJClKvLmwrLigg3dzlEjJRvr6jnE/zZ8D401CuL7EMLJPNjciSlf1lQCj5/MU8Q==";
+        url = "https://registry.npmjs.org/@ot-builder/common-impl/-/common-impl-1.5.1.tgz";
+        sha512 = "5cBzUheN3hOn0Di47FXW83PN6/ggcIBo3g5jIEP0UiYFXnUkO9YLzdQWEz5dLa0cUVkaotfwS7XYbaiBOmW57g==";
       };
     };
-    "@ot-builder/errors-1.5.0" = {
+    "@ot-builder/errors-1.5.1" = {
       name = "_at_ot-builder_slash_errors";
       packageName = "@ot-builder/errors";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/errors/-/errors-1.5.0.tgz";
-        sha512 = "vARlbSzv3euBX0/Y4orHhbYZOsj7hYjsPU+VXt2LD+do6On1EJ8z6vvXXZxB4B52Rr2jnxzycqk0fNh95IKTeg==";
+        url = "https://registry.npmjs.org/@ot-builder/errors/-/errors-1.5.1.tgz";
+        sha512 = "++wdnFpE9Z/YR/sosddrtdIO4rIglp8V/igHCvZtsyIPR88q+q0/NTmQBMOLsZn6MeHRJgYIt0/Q4yZEhezUiA==";
       };
     };
-    "@ot-builder/io-bin-cff-1.5.0" = {
+    "@ot-builder/io-bin-cff-1.5.1" = {
       name = "_at_ot-builder_slash_io-bin-cff";
       packageName = "@ot-builder/io-bin-cff";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-cff/-/io-bin-cff-1.5.0.tgz";
-        sha512 = "3KWiwRB/8JUkfxE3WqR/xOWQdBDbIS6evdQPBQ/CAJV1qyTtL3Q9KfCHaMPHJcDLbKPP/4lnhKEyi6QsnJU/Tw==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-cff/-/io-bin-cff-1.5.1.tgz";
+        sha512 = "7RcEM5hTDWM9vds2EXyS9sW2KRFUlnQuys9eMQ0OvgU9cO3hrN7UDhNtMTcjDFTtD668DX82jkP1CtnwORUczA==";
       };
     };
-    "@ot-builder/io-bin-encoding-1.5.0" = {
+    "@ot-builder/io-bin-encoding-1.5.1" = {
       name = "_at_ot-builder_slash_io-bin-encoding";
       packageName = "@ot-builder/io-bin-encoding";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-encoding/-/io-bin-encoding-1.5.0.tgz";
-        sha512 = "h55cS6agqz++YRMPAi6Zvgd6oWllF9+SjF72whPGekOjRZLNemuTpmWBbXbD3gc1pU8SqSUUSeIcUdny3sqtdg==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-encoding/-/io-bin-encoding-1.5.1.tgz";
+        sha512 = "0nDTXPdTfHDvThAGuS/Td8HDp7FV7mQBcC1YVblA7L1RXf0EU2dxbLKgjqt9s4diQRsMRAvIs+REc0oa+/FFzQ==";
       };
     };
-    "@ot-builder/io-bin-ext-private-1.5.0" = {
+    "@ot-builder/io-bin-ext-private-1.5.1" = {
       name = "_at_ot-builder_slash_io-bin-ext-private";
       packageName = "@ot-builder/io-bin-ext-private";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-ext-private/-/io-bin-ext-private-1.5.0.tgz";
-        sha512 = "11K88CL96HiSP0DZYvNd/oULlDbKfD+RYChnl8OJlYDKqxQcFfecIcgKAJmEpmkr11MurRB0AdP2Hg6HBCUFuA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-ext-private/-/io-bin-ext-private-1.5.1.tgz";
+        sha512 = "wB8F3cpeSYbUQl9yQPdc/vtq//KKI9g9INc2vh/OaQVBeGtfEEHmyVtTsVg3qaBNH5UVcJLO1n8WPMaUejPQ4w==";
       };
     };
-    "@ot-builder/io-bin-font-1.5.0" = {
+    "@ot-builder/io-bin-font-1.5.1" = {
       name = "_at_ot-builder_slash_io-bin-font";
       packageName = "@ot-builder/io-bin-font";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-font/-/io-bin-font-1.5.0.tgz";
-        sha512 = "UuepwTTj9lbFh92vvyyK346OBVKlG7mXUcafrRijGGCyc1Toe+HONaCU1dcNy9IvwlNjEa6svrQfMFx8fwxMKA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-font/-/io-bin-font-1.5.1.tgz";
+        sha512 = "gyjIucWeUUe5Qa5kgyoKQ5ZgmcEqmjXhyOrMAftflo13JUe48azoqFgmcR2F7mLHEEp0o6zPxIFhuq4Osjoi/g==";
       };
     };
-    "@ot-builder/io-bin-glyph-store-1.5.0" = {
+    "@ot-builder/io-bin-glyph-store-1.5.1" = {
       name = "_at_ot-builder_slash_io-bin-glyph-store";
       packageName = "@ot-builder/io-bin-glyph-store";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-glyph-store/-/io-bin-glyph-store-1.5.0.tgz";
-        sha512 = "Xtg0k34yj4nfFlyh/lpBM6O66QYiAW9+/qmn5Rtp9N8hDCGD+2HZ7fTZZdcqgXYZblZvlknzBFKSOLoupcvZNg==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-glyph-store/-/io-bin-glyph-store-1.5.1.tgz";
+        sha512 = "UmVjJ5SZxwEgaJFbO/l5gN4VD5GQwP0mkFhrTa0iubHMcKsAYAPiXJfs/YCaGj/cWaVtyucilk7+dbHsRglGnw==";
       };
     };
-    "@ot-builder/io-bin-layout-1.5.0" = {
+    "@ot-builder/io-bin-layout-1.5.1" = {
       name = "_at_ot-builder_slash_io-bin-layout";
       packageName = "@ot-builder/io-bin-layout";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-layout/-/io-bin-layout-1.5.0.tgz";
-        sha512 = "bS+e8VkFUX6LyWqD7zGa5FvJbCtIw6Crs2g4DVivn6slhru9JIc5DcNOHp86zwNkwlzg+v+5/3KUoNZoWgxWpw==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-layout/-/io-bin-layout-1.5.1.tgz";
+        sha512 = "SoarXj9DVSuGSMxGetF9jIBeO0BV1KGMuHs23+CTD6xKSBn0YrPa3S/kim8crCbhdJl5az0pIa2X3EvJ+sGziw==";
       };
     };
-    "@ot-builder/io-bin-metadata-1.5.0" = {
+    "@ot-builder/io-bin-metadata-1.5.1" = {
       name = "_at_ot-builder_slash_io-bin-metadata";
       packageName = "@ot-builder/io-bin-metadata";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-metadata/-/io-bin-metadata-1.5.0.tgz";
-        sha512 = "0Q0K1UkSqO0wW03UbUuOw79abzNeK6cHjzCE0UX2hZPtH26gEG32xCPYUNCaSxOFPWXSRXPg/kmYIT6/ZmkWLA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-metadata/-/io-bin-metadata-1.5.1.tgz";
+        sha512 = "XC+0/BBXFUQxP+jeRq7H9QQZLBlsXGvwiSc0Fll8zQjVgFJB8HS/sOpCvr1kP3AiuFpUtnXsFSCp4SUM+phZEQ==";
       };
     };
-    "@ot-builder/io-bin-metric-1.5.0" = {
+    "@ot-builder/io-bin-metric-1.5.1" = {
       name = "_at_ot-builder_slash_io-bin-metric";
       packageName = "@ot-builder/io-bin-metric";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-metric/-/io-bin-metric-1.5.0.tgz";
-        sha512 = "Ezw3MBw4rO6fMrikm1Mc0nOnf3E4FPkHMhUAXN62AFcz6VOKMY34OL+NSoLkJL+HfGTju4KcF3guiNytXrtLeA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-metric/-/io-bin-metric-1.5.1.tgz";
+        sha512 = "WfQtSPgsOaydreLa2j9wjBg1UfBPmi2vYHG5M8LrD0iygOG+OoFcAvuX58gvOxz0n6OS3bHIeI2KAXd/9XLLew==";
       };
     };
-    "@ot-builder/io-bin-name-1.5.0" = {
+    "@ot-builder/io-bin-name-1.5.1" = {
       name = "_at_ot-builder_slash_io-bin-name";
       packageName = "@ot-builder/io-bin-name";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-name/-/io-bin-name-1.5.0.tgz";
-        sha512 = "zPhTA5HEwQ0jAovA+ZwPjt3ZNnOaLSQagoLHo6zuETOb+uJSksTExg+G4h6PFHC9U9q55OZ0HidlWOmnmi1xbA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-name/-/io-bin-name-1.5.1.tgz";
+        sha512 = "R7UT653Y/OYcSRT+cjXpsbPRRU4mAz5RfYxKTW8yKFJ2SN++17LqlkHAUhhWMiU6mJwNjIkpx6/g97ewRgY0oA==";
       };
     };
-    "@ot-builder/io-bin-sfnt-1.5.0" = {
+    "@ot-builder/io-bin-sfnt-1.5.1" = {
       name = "_at_ot-builder_slash_io-bin-sfnt";
       packageName = "@ot-builder/io-bin-sfnt";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-sfnt/-/io-bin-sfnt-1.5.0.tgz";
-        sha512 = "/8sANRI3aBKKdOcbnULiS5w5c34d6lb8IufJtYpCuowUuvkDUXF3vlGw7t7CL7mudzdcELpW4ROa1/vNRR+c6Q==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-sfnt/-/io-bin-sfnt-1.5.1.tgz";
+        sha512 = "/PedJquNAlN+brP11hxKtDsNwVqklZVO8kYBOfh/8M/W5DDiz0Vrp36hSj8/qI0waYQWQegoN8l31y81YQRYxw==";
       };
     };
-    "@ot-builder/io-bin-ttf-1.5.0" = {
+    "@ot-builder/io-bin-ttf-1.5.1" = {
       name = "_at_ot-builder_slash_io-bin-ttf";
       packageName = "@ot-builder/io-bin-ttf";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-ttf/-/io-bin-ttf-1.5.0.tgz";
-        sha512 = "tiyuas19970WkKNFRC4ja9rMD0mgt9arbYbNeQvDjFB9MPsV0+BNgk6fpGr2o8tmYpw73/TZcJfEgIiEICJKtg==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-ttf/-/io-bin-ttf-1.5.1.tgz";
+        sha512 = "xeV56Bd72YGm0n4Pt5SOcA+nocNEP/D2P1oieGu0Karb7yMqwd+fkoxPBo6+UMxWkWh0x7iztY4uMGI87HEpqQ==";
       };
     };
-    "@ot-builder/io-bin-vtt-private-1.5.0" = {
+    "@ot-builder/io-bin-vtt-private-1.5.1" = {
       name = "_at_ot-builder_slash_io-bin-vtt-private";
       packageName = "@ot-builder/io-bin-vtt-private";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-vtt-private/-/io-bin-vtt-private-1.5.0.tgz";
-        sha512 = "yz7WLqLI8XZ0KgYowu5ct9rbOS97TQRwudndDDXJZynSFZyUK5wYV9hfqXwKPDQI2QViAWhYBUJDR94zeSe7MA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-vtt-private/-/io-bin-vtt-private-1.5.1.tgz";
+        sha512 = "QL6HLeE7fs5gYiazG+2DVRg6zbL2O/srkkVGU4L1++1Z87BFp4xvID9LvePwLEpWUJFl9+4bRB6j5ozoYU3vYA==";
       };
     };
-    "@ot-builder/ot-1.5.0" = {
+    "@ot-builder/ot-1.5.1" = {
       name = "_at_ot-builder_slash_ot";
       packageName = "@ot-builder/ot";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot/-/ot-1.5.0.tgz";
-        sha512 = "8nmX1B5D7974LaqH2ieIcZ4TDaAILGvANipOL5e75MMt6jF1O72UUHzO4vJ/llIsZYasqm9+rlv6dkp9CkveZA==";
+        url = "https://registry.npmjs.org/@ot-builder/ot/-/ot-1.5.1.tgz";
+        sha512 = "XIIYr9jv1TSYmcOkZDPRJASvgeKUQ+WnfaScu0fDiFI5GcLCLZOQnYjju8P1Q7/YOHT6HLZlD8T1MgXR8auo+w==";
       };
     };
-    "@ot-builder/ot-encoding-1.5.0" = {
+    "@ot-builder/ot-encoding-1.5.1" = {
       name = "_at_ot-builder_slash_ot-encoding";
       packageName = "@ot-builder/ot-encoding";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-encoding/-/ot-encoding-1.5.0.tgz";
-        sha512 = "cWVGpb/A3jKPqobIdMUdScq1tUd+ew282P/yLFejIeJvaE4U3zZas6wS9pg4se6uiRsdf8bY5xSjAvnfbJAM1w==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-encoding/-/ot-encoding-1.5.1.tgz";
+        sha512 = "jgAxj59W5P3bC33FGYGINjFvgc6JVX6ppPN4LVeXnl0ExtqVqiBDf83DA33u+tDrZlqkAtYSed42V3TNA90wXg==";
       };
     };
-    "@ot-builder/ot-ext-private-1.5.0" = {
+    "@ot-builder/ot-ext-private-1.5.1" = {
       name = "_at_ot-builder_slash_ot-ext-private";
       packageName = "@ot-builder/ot-ext-private";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-ext-private/-/ot-ext-private-1.5.0.tgz";
-        sha512 = "gxbsodaN07XLNtTNLIWhhgHCsXjOs9D7M7c4i40UTv4S80FGzpyJpz2VOW1BJ8SUQjGFP/eeDdSyHWtmrBH21g==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-ext-private/-/ot-ext-private-1.5.1.tgz";
+        sha512 = "fcnGZ6MgMdQIGipVzBuiH1lIOFWovi7Lfwt0ddYMzWjUqlnZgzpl6JwROQkmcfweAguEN3gFB/2Nkd+B5IHNgw==";
       };
     };
-    "@ot-builder/ot-glyphs-1.5.0" = {
+    "@ot-builder/ot-glyphs-1.5.1" = {
       name = "_at_ot-builder_slash_ot-glyphs";
       packageName = "@ot-builder/ot-glyphs";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-glyphs/-/ot-glyphs-1.5.0.tgz";
-        sha512 = "SxqNTishqTKf36tt6XRQkXXLD3fw+7azbf/kSu4A0Pq6MdmRMy5CGs6HDA9KhqaPpmq1UpMk876QPA9vCXoLPw==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-glyphs/-/ot-glyphs-1.5.1.tgz";
+        sha512 = "hHKK6TWINdwy/pYQgPNfSlTWaIesHrizk6Uu2uT66ISRd3FAUcr3L+kjf8nLimkFDqPBvvQGMW8c3pEVlOt3Cw==";
       };
     };
-    "@ot-builder/ot-layout-1.5.0" = {
+    "@ot-builder/ot-layout-1.5.1" = {
       name = "_at_ot-builder_slash_ot-layout";
       packageName = "@ot-builder/ot-layout";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-layout/-/ot-layout-1.5.0.tgz";
-        sha512 = "fdmOl/HZi2Jdl0Fh8bx7CCG9s+jXimH+UCez3LPhTXgNNvOaFVqhABPtP+tAepqWi9J0MjBCeWMnFUmGiSa5gw==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-layout/-/ot-layout-1.5.1.tgz";
+        sha512 = "ORIVOQFccaCkA/CpmKEUAGBU3jE3LtyQGl/g+sQPHNGR4H0Amrm9X4FlDuQAgzqMEDC3jUPmcyB3yBxJ71CLzQ==";
       };
     };
-    "@ot-builder/ot-metadata-1.5.0" = {
+    "@ot-builder/ot-metadata-1.5.1" = {
       name = "_at_ot-builder_slash_ot-metadata";
       packageName = "@ot-builder/ot-metadata";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-metadata/-/ot-metadata-1.5.0.tgz";
-        sha512 = "OARTkm/LDERbwo6I0BMdAmA0D6vMP2A0IaQlOWn1PxjNoHOZQY6U+1er1H//xJQZ4aA5BZtRgOoQebjQpYELbg==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-metadata/-/ot-metadata-1.5.1.tgz";
+        sha512 = "t8u2Uf418PQBXA+Ex5vhAkqg1z7U3ULr4P3gdzwlvs82HpeTVrsJvYbpWj4RymSGUTDB56GT6dpvL9n9MZfg7w==";
       };
     };
-    "@ot-builder/ot-name-1.5.0" = {
+    "@ot-builder/ot-name-1.5.1" = {
       name = "_at_ot-builder_slash_ot-name";
       packageName = "@ot-builder/ot-name";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-name/-/ot-name-1.5.0.tgz";
-        sha512 = "b/NSfonC0QqMVNBloOPHeeQIqVAaHaID0oVD/C9jEGKPtp3zpSgS2oycmtZ8JmSqwS2qfJTU9lfzusT6E/LWsw==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-name/-/ot-name-1.5.1.tgz";
+        sha512 = "SYwiXsP0edNS7kQcRpqmUOJX5koqnA888/kyalzzmStGm95JGoT6bX8dWp6MY/KOyzSHq4srJcM23GBxGs4epA==";
       };
     };
-    "@ot-builder/ot-sfnt-1.5.0" = {
+    "@ot-builder/ot-sfnt-1.5.1" = {
       name = "_at_ot-builder_slash_ot-sfnt";
       packageName = "@ot-builder/ot-sfnt";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-sfnt/-/ot-sfnt-1.5.0.tgz";
-        sha512 = "imCGAlN78Yc2HQDVUzNPixj0ERT+PEodi9bp+wINLVYF9G6CgRMTIuSgG0KBK9H8T20sBrorOFfcZFQJuucy4A==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-sfnt/-/ot-sfnt-1.5.1.tgz";
+        sha512 = "BPfGhc6xpZWKrOcLoH0+ceVxu7EWqaByzkz56d58bh/EGdLRqbQegjRyNsHQz3U237I9YulbsAOBi4LMh9EbCg==";
       };
     };
-    "@ot-builder/ot-standard-glyph-namer-1.5.0" = {
+    "@ot-builder/ot-standard-glyph-namer-1.5.1" = {
       name = "_at_ot-builder_slash_ot-standard-glyph-namer";
       packageName = "@ot-builder/ot-standard-glyph-namer";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-standard-glyph-namer/-/ot-standard-glyph-namer-1.5.0.tgz";
-        sha512 = "aZkJBn2kog2eyAcXygzvYte5uH7GCVgO2jM9QeB4bpWoxXYjIF3dy58hsbZ6zKMXMncphOFcnTgxgvct45bglA==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-standard-glyph-namer/-/ot-standard-glyph-namer-1.5.1.tgz";
+        sha512 = "6zJken8UG3En8/Z0sN1gDvFoXfgxN4hgLD6ElKLzu9gBw3zXdgdigLnIgTecOGzoYUfnO17pA0/tY4AH6Z70OQ==";
       };
     };
-    "@ot-builder/ot-vtt-private-1.5.0" = {
+    "@ot-builder/ot-vtt-private-1.5.1" = {
       name = "_at_ot-builder_slash_ot-vtt-private";
       packageName = "@ot-builder/ot-vtt-private";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-vtt-private/-/ot-vtt-private-1.5.0.tgz";
-        sha512 = "iMQP2zI56mZJqG98VVAswCe2f2NgApW0BtAKfC/e3VKDJPWbsJHcIHnkcRReaC4FzAmzxqarY1IyeNC94xSNVg==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-vtt-private/-/ot-vtt-private-1.5.1.tgz";
+        sha512 = "757L0L3kNZxx3fG5FUeGFGtZIPerv2gAycat91Wtbw6XjiMtqcJITwO7/rkUWD+6u3vMYTWpFO1Ye4XgClYuWQ==";
       };
     };
-    "@ot-builder/prelude-1.5.0" = {
+    "@ot-builder/prelude-1.5.1" = {
       name = "_at_ot-builder_slash_prelude";
       packageName = "@ot-builder/prelude";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/prelude/-/prelude-1.5.0.tgz";
-        sha512 = "b3tJ4GTZvK+sFNHlihFaOTxeMOWmSqIDKGOJuV9l6Svn/1moTcO3VWjRuriHmsrA0ZuaSQxTKMf3Na5BYiTnXw==";
+        url = "https://registry.npmjs.org/@ot-builder/prelude/-/prelude-1.5.1.tgz";
+        sha512 = "0ovDORVvH3SWHoG+nNL0RAAk6wsHrfxp6cW8Fk+7vum06JWWGTiv9VEDyYNWWfCRD958T/xUguk/q/0slr38Ow==";
       };
     };
-    "@ot-builder/primitive-1.5.0" = {
+    "@ot-builder/primitive-1.5.1" = {
       name = "_at_ot-builder_slash_primitive";
       packageName = "@ot-builder/primitive";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/primitive/-/primitive-1.5.0.tgz";
-        sha512 = "jJN98wURFXGa8KTfjrIlB54AF2QJw+w9eQuJ812mt8Nmw2Mle+IaYCRAiD8IKWjRWMZcd6bztkOoDbCavqcrUQ==";
+        url = "https://registry.npmjs.org/@ot-builder/primitive/-/primitive-1.5.1.tgz";
+        sha512 = "xRIHI7+EKqq+3XAJMRne4lX41Y85QLtyf+mAN6CpFfrtTRd9U47BpbLHV8fktW/tzR+iuOtWL5C0g4iNVqrTTA==";
       };
     };
-    "@ot-builder/rectify-1.5.0" = {
+    "@ot-builder/rectify-1.5.1" = {
       name = "_at_ot-builder_slash_rectify";
       packageName = "@ot-builder/rectify";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/rectify/-/rectify-1.5.0.tgz";
-        sha512 = "Ivx2VxlMB/Btq4+YLaH4KhPb+eoU4Nsg4UMd5u0BXQ+JjC3HvUbyXDWRMJn3ACDLvvkXSqjEprf7G3BFp58p7g==";
+        url = "https://registry.npmjs.org/@ot-builder/rectify/-/rectify-1.5.1.tgz";
+        sha512 = "AXM+fy1h/JAvf0y79a31w92NwicQb9y+hotRthd88EXTxOZLlyyuwzUdfBW5MaMfXq7/SfeCxlz6xcSaMMjfrg==";
       };
     };
-    "@ot-builder/stat-glyphs-1.5.0" = {
+    "@ot-builder/stat-glyphs-1.5.1" = {
       name = "_at_ot-builder_slash_stat-glyphs";
       packageName = "@ot-builder/stat-glyphs";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/stat-glyphs/-/stat-glyphs-1.5.0.tgz";
-        sha512 = "OMCvsvxsX0dkjWcde3J3sxF1xRbzVm4uyz+G9sgjRXznBLVKtvstTpspFqpTfhUFEcjRU+7AJhWNn4nvXQR/jw==";
+        url = "https://registry.npmjs.org/@ot-builder/stat-glyphs/-/stat-glyphs-1.5.1.tgz";
+        sha512 = "trH59RavFr0++8WnodHF/A3YpKXXcW68fbugm19dW5Pen5sUSfEh0OpLKwI4YjW98/kKiLYqu8MwJCIugEaKqQ==";
       };
     };
-    "@ot-builder/trace-1.5.0" = {
+    "@ot-builder/trace-1.5.1" = {
       name = "_at_ot-builder_slash_trace";
       packageName = "@ot-builder/trace";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/trace/-/trace-1.5.0.tgz";
-        sha512 = "qegG5Oc9gYHWMSnV9qLqYQnQAq79SRHo/apQtnnpD4o7d1SsxDPqR+xspzl3dprPRYSqq8zUKVZ5mxnLNcLPWQ==";
+        url = "https://registry.npmjs.org/@ot-builder/trace/-/trace-1.5.1.tgz";
+        sha512 = "M+8o1JvM4T99ciRdipJDWIshBN1878EB5B2m7VvB9SwcfIRy2bBEW2pNIf+nWBgttbkXqeMNi9JMGgBlcCbK/w==";
       };
     };
-    "@ot-builder/var-store-1.5.0" = {
+    "@ot-builder/var-store-1.5.1" = {
       name = "_at_ot-builder_slash_var-store";
       packageName = "@ot-builder/var-store";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/var-store/-/var-store-1.5.0.tgz";
-        sha512 = "NufILxFqLWcXjhJqG0IgVCDr0ey/e4Q+mX8k0o+SV1/yHdVxug5CrBQnmF7/yIB1Au9FgdZp2eal2Un1gjxQ4A==";
+        url = "https://registry.npmjs.org/@ot-builder/var-store/-/var-store-1.5.1.tgz";
+        sha512 = "GJWlE7hDwajX1cvGjChR9rt8kqiC3O5cr9ikFpPyz150zkkqWaLi38sISA1h7Vk/dU5TQ6nVka53/I2Q4tWptA==";
       };
     };
-    "@ot-builder/variance-1.5.0" = {
+    "@ot-builder/variance-1.5.1" = {
       name = "_at_ot-builder_slash_variance";
       packageName = "@ot-builder/variance";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/variance/-/variance-1.5.0.tgz";
-        sha512 = "iA8tovocbymAAhA1zRO29vltUlZGfLjYaukyLu3mH8XBgNuxTwb0aUbQ9muDKyWS+E5Q23+KN/PaA8ZwUtlHlA==";
+        url = "https://registry.npmjs.org/@ot-builder/variance/-/variance-1.5.1.tgz";
+        sha512 = "v4HMolIM+Jigr9N8TTAYnPcGhsUr54WDpJbVVW6fueH54ePD3Z9MYE0X22TAjpFwZbBHUUAjtoHeUP32pMMpqg==";
       };
     };
-    "@parcel/bundler-default-2.4.0" = {
+    "@parcel/bundler-default-2.4.1" = {
       name = "_at_parcel_slash_bundler-default";
       packageName = "@parcel/bundler-default";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.4.0.tgz";
-        sha512 = "RaXlxo0M51739Ko3bsOJpDBZlJ+cqkDoBTozNeSc65jS2TMBIBWLMapm8095qmty39OrgYNhzjgPiIlKDS/LWA==";
+        url = "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.4.1.tgz";
+        sha512 = "PTfBOuoiiYdfwyoPFeBTOinyl1RL4qaoyAQ0PCe01C1i4NcRWCY1w7zRvwJW/OhU3Ka+LtioGmfxu5/drdXzLg==";
       };
     };
-    "@parcel/cache-2.4.0" = {
+    "@parcel/cache-2.4.1" = {
       name = "_at_parcel_slash_cache";
       packageName = "@parcel/cache";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/cache/-/cache-2.4.0.tgz";
-        sha512 = "oOudoAafrCAHQY0zkU7gVHG1pAGBUz9rht7Tx4WupTmAH0O0F5UnZs6XbjoBJaPHg+CYUXK7v9wQcrNA72E3GA==";
+        url = "https://registry.npmjs.org/@parcel/cache/-/cache-2.4.1.tgz";
+        sha512 = "2N5ly++p/yefmPdK39X1QIoA2e6NtS1aYSsxrIC9EX92Kjd7SfSceqUJhlJWB49omJSheEJLd1qM3EJG9EvICQ==";
       };
     };
-    "@parcel/codeframe-2.4.0" = {
+    "@parcel/codeframe-2.4.1" = {
       name = "_at_parcel_slash_codeframe";
       packageName = "@parcel/codeframe";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.4.0.tgz";
-        sha512 = "PJ3W9Z0sjoS2CANyo50c+LEr9IRZrtu0WsVPSYZ5ZYRuSXrSa/6PcAlnkyDk2+hi7Od8ncT2bmDexl0Oar3Jyg==";
+        url = "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.4.1.tgz";
+        sha512 = "m3WDeEpWvgqekCqsHfPMJrSQquahdIgSR1x1RDCqQ1YelvW0fQiGgu42MXI5tjoBrHC1l1mF01UDb+xMSxz1DA==";
       };
     };
-    "@parcel/compressor-raw-2.4.0" = {
+    "@parcel/compressor-raw-2.4.1" = {
       name = "_at_parcel_slash_compressor-raw";
       packageName = "@parcel/compressor-raw";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.4.0.tgz";
-        sha512 = "ZErX14fTc0gKIgtnuqW7Clfln4dpXWfUaJQQIf5C3x/LkpUeEhdXeKntkvSxOddDk2JpIKDwqzAxEMZUnDo4Nw==";
+        url = "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.4.1.tgz";
+        sha512 = "cEOOOzIK7glxCqJX0OfBFBZE/iT7tmjEOXswRY3CnqY9FGoY3NYDAsOLm7A73RuIdNaZfYVxVUy3g7OLpbKL+g==";
       };
     };
-    "@parcel/config-default-2.4.0" = {
+    "@parcel/config-default-2.4.1" = {
       name = "_at_parcel_slash_config-default";
       packageName = "@parcel/config-default";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.4.0.tgz";
-        sha512 = "pFOPBXPO6HGqNWTLkcK5i8haMOrRgUouUhcWPGWDpN9IPUYFK2E/O1E/uyMjIA1mSL3FnazI+jJwZ45NhKPpIA==";
+        url = "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.4.1.tgz";
+        sha512 = "yGA4Mx/KDzVOPm8IYb4Id+zlz1TaIM7s472pxA4tUV1qcEtBInY0aeO9R/GsLKC2+3QPHURZld9WI9EMXRUBBA==";
       };
     };
-    "@parcel/core-2.4.0" = {
+    "@parcel/core-2.4.1" = {
       name = "_at_parcel_slash_core";
       packageName = "@parcel/core";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/core/-/core-2.4.0.tgz";
-        sha512 = "EWZ2UWtIuwDc3fgsKyyTLpNNPoG8Yk2L117ICWF/+cqY8z/wJHm2KwLbeplDeq524shav0GJ9O4CemP3JPx0Nw==";
+        url = "https://registry.npmjs.org/@parcel/core/-/core-2.4.1.tgz";
+        sha512 = "h2FvqLA75ZQdIXX1y+ylGjIIi7YtbAUJyIapxaO081h3EsYG2jr9sRL4sym5ECgmvbyua/DEgtMLX3eGYn09FA==";
       };
     };
-    "@parcel/css-1.7.3" = {
+    "@parcel/css-1.8.1" = {
       name = "_at_parcel_slash_css";
       packageName = "@parcel/css";
-      version = "1.7.3";
+      version = "1.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/css/-/css-1.7.3.tgz";
-        sha512 = "rgdRX4Uk31EvzH/mUScL0wdXtkci3U5N1W2pgam+9S10vQy4uONhWBepZ1tUCjONHLacGXr1jp3LbG/HI7LiTw==";
+        url = "https://registry.npmjs.org/@parcel/css/-/css-1.8.1.tgz";
+        sha512 = "TOfe+msei+NuPPKb60Kc+nPuCThl07L3Fut67nfot1OXy2hKYr/eF7AiAguCaIlRXkjEtXRR4S7fO24dLZ1C9g==";
       };
     };
-    "@parcel/css-darwin-arm64-1.7.3" = {
+    "@parcel/css-darwin-arm64-1.8.1" = {
       name = "_at_parcel_slash_css-darwin-arm64";
       packageName = "@parcel/css-darwin-arm64";
-      version = "1.7.3";
+      version = "1.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/css-darwin-arm64/-/css-darwin-arm64-1.7.3.tgz";
-        sha512 = "m3HDY+Rh8HJxmLELKAvCpF59vLS7FWtgBODHxl8G9Jl2CnGtXpXvdpyeMxNsTE+2QuPC+a5QT7IeZAKb2Gjmxg==";
+        url = "https://registry.npmjs.org/@parcel/css-darwin-arm64/-/css-darwin-arm64-1.8.1.tgz";
+        sha512 = "PbpIlqLMAhWZlimKCdNP/ZfGNJUlEWgNeTcO2LDjPIK5JK6oTAJHfP/PPzjLS8mu+JIznZ//9MnVOUi1xcjXMA==";
       };
     };
-    "@parcel/css-darwin-x64-1.7.3" = {
+    "@parcel/css-darwin-x64-1.8.1" = {
       name = "_at_parcel_slash_css-darwin-x64";
       packageName = "@parcel/css-darwin-x64";
-      version = "1.7.3";
+      version = "1.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/css-darwin-x64/-/css-darwin-x64-1.7.3.tgz";
-        sha512 = "LuhweXKxVwrz/hjAOm9XNRMSL+p23px20nhSCASkyUP7Higaxza948W3TSQdoL3YyR+wQxQH8Yj+R/T8Tz3E3g==";
+        url = "https://registry.npmjs.org/@parcel/css-darwin-x64/-/css-darwin-x64-1.8.1.tgz";
+        sha512 = "R4FrwXQGAgW3/YRCSRCBNcV6mz+OKqYuyrVnZBmKTLDuTGhZHCF12qLL7SV5jYsKXBDauYAXDv/SOFIwlikVXg==";
       };
     };
-    "@parcel/css-linux-arm-gnueabihf-1.7.3" = {
+    "@parcel/css-linux-arm-gnueabihf-1.8.1" = {
       name = "_at_parcel_slash_css-linux-arm-gnueabihf";
       packageName = "@parcel/css-linux-arm-gnueabihf";
-      version = "1.7.3";
+      version = "1.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/css-linux-arm-gnueabihf/-/css-linux-arm-gnueabihf-1.7.3.tgz";
-        sha512 = "/pd9Em18zMvt7eDZAMpNBEwF7c4VPVhAtBOZ59ClFrsXCTDNYP7mSy0cwNgtLelCRZCGAQmZNBDNQPH7vO3rew==";
+        url = "https://registry.npmjs.org/@parcel/css-linux-arm-gnueabihf/-/css-linux-arm-gnueabihf-1.8.1.tgz";
+        sha512 = "MVRlPGipRrs+f6nURR6cJbFw85YSXkPbR6l/0Hm1vyFlNn0HmRDCEWZFPwvvSavibU968Wgc5yKaC78D6Ecgsw==";
       };
     };
-    "@parcel/css-linux-arm64-gnu-1.7.3" = {
+    "@parcel/css-linux-arm64-gnu-1.8.1" = {
       name = "_at_parcel_slash_css-linux-arm64-gnu";
       packageName = "@parcel/css-linux-arm64-gnu";
-      version = "1.7.3";
+      version = "1.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/css-linux-arm64-gnu/-/css-linux-arm64-gnu-1.7.3.tgz";
-        sha512 = "5aKiEhQK40riO4iVKzRqISzgYK+7Z7i3e6JTSz+/BHuQyHEUaBe/RuJ8Z0BDQtFz0HmWQlrQCd+7hd0Xgd8vYQ==";
+        url = "https://registry.npmjs.org/@parcel/css-linux-arm64-gnu/-/css-linux-arm64-gnu-1.8.1.tgz";
+        sha512 = "s6UpF9CjUMeeCELx0Cu+HtR8RKycm516b1mJlQC8hsPtAyDYlByW4tSDwC3By4Fqf3xCan6IH/oaq0ujS0Iqew==";
       };
     };
-    "@parcel/css-linux-arm64-musl-1.7.3" = {
+    "@parcel/css-linux-arm64-musl-1.8.1" = {
       name = "_at_parcel_slash_css-linux-arm64-musl";
       packageName = "@parcel/css-linux-arm64-musl";
-      version = "1.7.3";
+      version = "1.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/css-linux-arm64-musl/-/css-linux-arm64-musl-1.7.3.tgz";
-        sha512 = "Wf7/aIueDED2JqBMfZvzbBAFSaPmd3TR28bD2pmP7CI/jZnm9vHVKMdOLgt9NKSSSjdGrp+VM410CsrUM7xcOw==";
+        url = "https://registry.npmjs.org/@parcel/css-linux-arm64-musl/-/css-linux-arm64-musl-1.8.1.tgz";
+        sha512 = "Tp3Pe2tx7mltPrZ1ZDV8PLkgYcwQOigrH9YjPPOaf8iFptDpHOv1y2cs1eSgnvP+5kBdIXd7H87kGSC7OosuXg==";
       };
     };
-    "@parcel/css-linux-x64-gnu-1.7.3" = {
+    "@parcel/css-linux-x64-gnu-1.8.1" = {
       name = "_at_parcel_slash_css-linux-x64-gnu";
       packageName = "@parcel/css-linux-x64-gnu";
-      version = "1.7.3";
+      version = "1.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/css-linux-x64-gnu/-/css-linux-x64-gnu-1.7.3.tgz";
-        sha512 = "0ZADbuFklUrHC1p2uPY4BPcN07jUTMqJzr/SSdnGN2XiXgiVZGcDCMHUj0DvC9Vwy11DDM6Rnw4QBbKHG+QGjQ==";
+        url = "https://registry.npmjs.org/@parcel/css-linux-x64-gnu/-/css-linux-x64-gnu-1.8.1.tgz";
+        sha512 = "8yqXRlei4qBFSv9R8yru6yB2ak7frA/z6rMB2E5lNN8kMhpB1E0xKYMhsTZdMOV5A/gkPZlP3sHZG4qQ3GOLgQ==";
       };
     };
-    "@parcel/css-linux-x64-musl-1.7.3" = {
+    "@parcel/css-linux-x64-musl-1.8.1" = {
       name = "_at_parcel_slash_css-linux-x64-musl";
       packageName = "@parcel/css-linux-x64-musl";
-      version = "1.7.3";
+      version = "1.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/css-linux-x64-musl/-/css-linux-x64-musl-1.7.3.tgz";
-        sha512 = "mFWWM8lX2OIID81YQuDDt9zTqof0B7UcEcs0huE7Zbs60uLEEQupdf8iH0yh5EOhxPt3sRcQnGXf2QTrXdjIMA==";
+        url = "https://registry.npmjs.org/@parcel/css-linux-x64-musl/-/css-linux-x64-musl-1.8.1.tgz";
+        sha512 = "S1Qf9tZzX7AnmqKRhR/qpFYsqSCxYSz5KdekdxIijPEMxyI5tpWp6g2adGYxrCuV0E5EpcpmXlBT6d6+8FrgPg==";
       };
     };
-    "@parcel/css-win32-x64-msvc-1.7.3" = {
+    "@parcel/css-win32-x64-msvc-1.8.1" = {
       name = "_at_parcel_slash_css-win32-x64-msvc";
       packageName = "@parcel/css-win32-x64-msvc";
-      version = "1.7.3";
+      version = "1.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/css-win32-x64-msvc/-/css-win32-x64-msvc-1.7.3.tgz";
-        sha512 = "KUFEMQcoP7DG3QbsN21OxhjHkfQ1BARn7D9puX75bV5N1F1kv557aaLkQZiMsgiYOL4tmJvsdQXutG7x++3j4Q==";
+        url = "https://registry.npmjs.org/@parcel/css-win32-x64-msvc/-/css-win32-x64-msvc-1.8.1.tgz";
+        sha512 = "tZ5s2zM/63mEdpdnE82xtfDDR7tAN32REii1EU5LOdfpB2PIw902p30fvklj1pOFBji/v/JdpAdLIYc4W7Gb6w==";
       };
     };
-    "@parcel/diagnostic-2.4.0" = {
+    "@parcel/diagnostic-2.4.1" = {
       name = "_at_parcel_slash_diagnostic";
       packageName = "@parcel/diagnostic";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.4.0.tgz";
-        sha512 = "TjWO/b2zMFhub5ouwGjazMm7iAUvdmXBfWmjrg4TBhUbhoQwBnyWfvMDtAYo7PcvXfxVPgPZv86Nv6Ym5H6cHQ==";
+        url = "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.4.1.tgz";
+        sha512 = "wmJIfn0PG2ABuraS+kMjl6UKaLjTDTtG+XkjJLWHzU/dd5RozqAZDKp65GWjvHzHLx7KICTAdUJsXh2s3TnTOQ==";
       };
     };
-    "@parcel/events-2.4.0" = {
+    "@parcel/events-2.4.1" = {
       name = "_at_parcel_slash_events";
       packageName = "@parcel/events";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/events/-/events-2.4.0.tgz";
-        sha512 = "DEaEtFbhOhNAEmiXJ3MyF8Scq+sNDKiTyLax4lAC5/dpE5GvwfNnoD17C2+0gDuuDpdQkdHfXfvr50aYFt7jcw==";
+        url = "https://registry.npmjs.org/@parcel/events/-/events-2.4.1.tgz";
+        sha512 = "er2jwyzYt3Zimkrp7TR865GIeIMYNd7YSSxW39y/egm4LIPBsruUpHSnKRD5b65Jd+gckkxDsnrpADG6MH1zNw==";
       };
     };
     "@parcel/fs-1.11.0" = {
@@ -7006,40 +7177,40 @@ let
         sha512 = "86RyEqULbbVoeo8OLcv+LQ1Vq2PKBAvWTU9fCgALxuCTbbs5Ppcvll4Vr+Ko1AnmMzja/k++SzNAwJfeQXVlpA==";
       };
     };
-    "@parcel/fs-2.4.0" = {
+    "@parcel/fs-2.4.1" = {
       name = "_at_parcel_slash_fs";
       packageName = "@parcel/fs";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/fs/-/fs-2.4.0.tgz";
-        sha512 = "CnUlWGUJ52SJVQi8QnaAPPQZOADmHMV9D9aX9GLcDm5XLT3Em7vmesG4bNLdMLwzYuzAtenhcWmuRCACuYztHw==";
+        url = "https://registry.npmjs.org/@parcel/fs/-/fs-2.4.1.tgz";
+        sha512 = "kE9HzW6XjO/ZA5bQnAzp1YVmGlXeDqUaius2cH2K0wU7KQX/GBjyfEWJm/UsKPB6QIrGXgkPH6ashNzOgwDqpw==";
       };
     };
-    "@parcel/fs-search-2.4.0" = {
+    "@parcel/fs-search-2.4.1" = {
       name = "_at_parcel_slash_fs-search";
       packageName = "@parcel/fs-search";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.4.0.tgz";
-        sha512 = "W/Vu6wbZk4wuB6AVdMkyymwh/S8Peed/PgJgSsApYD6lSTD315I6OuEdxZh3lWY+dqQdog/NJ7dvi/hdpH/Iqw==";
+        url = "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.4.1.tgz";
+        sha512 = "xfoLvHjHkZm4VZf3UWU5v6gzz+x7IBVY7siHGn0YyGwvlv73FmiR4mCSizqerXOyXknF2fpg6tNHNQyyNLS32Q==";
       };
     };
-    "@parcel/graph-2.4.0" = {
+    "@parcel/graph-2.4.1" = {
       name = "_at_parcel_slash_graph";
       packageName = "@parcel/graph";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/graph/-/graph-2.4.0.tgz";
-        sha512 = "5TZIAfDITkJCzgH4j4OQhnIvjV9IFwWqNBJanRl5QQTmKvdcODS3WbnK1SOJ+ZltcLVXMB+HNXmL0bX0tVolcw==";
+        url = "https://registry.npmjs.org/@parcel/graph/-/graph-2.4.1.tgz";
+        sha512 = "3JCnPI9BJdKpGIk6NtVN7ML3C/J9Ey+WfUfk8WisDxFP7vjYkXwZbNSR/HnxH+Y03wmB6cv4HI8A4kndF0H0pw==";
       };
     };
-    "@parcel/hash-2.4.0" = {
+    "@parcel/hash-2.4.1" = {
       name = "_at_parcel_slash_hash";
       packageName = "@parcel/hash";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/hash/-/hash-2.4.0.tgz";
-        sha512 = "nB+wYNUhe6+G8M7vQhdeFXtpYJYwJgBHOPZ7Hd9O2jdlamWjDbw0t/u1dJbYvGJ8ZDtLDwiItawQVpuVdskQ9g==";
+        url = "https://registry.npmjs.org/@parcel/hash/-/hash-2.4.1.tgz";
+        sha512 = "Ch1kkFPedef3geapU+XYmAdZY29u3eQXn/twMjowAKkWCmj6wZ+muUgBmOO2uCfK3xys7GycI8jYZcAbF5DVLg==";
       };
     };
     "@parcel/logger-1.11.1" = {
@@ -7051,211 +7222,211 @@ let
         sha512 = "9NF3M6UVeP2udOBDILuoEHd8VrF4vQqoWHEafymO1pfSoOMfxrSJZw1MfyAAIUN/IFp9qjcpDCUbDZB+ioVevA==";
       };
     };
-    "@parcel/logger-2.4.0" = {
+    "@parcel/logger-2.4.1" = {
       name = "_at_parcel_slash_logger";
       packageName = "@parcel/logger";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/logger/-/logger-2.4.0.tgz";
-        sha512 = "DqfU0Zcs/0a7VBk+MsjJ80C66w4kM9EbkO3G12NIyEjNeG50ayW2CE9rUuJ91JaM9j0NFM1P82eyLpQPFFaVPw==";
+        url = "https://registry.npmjs.org/@parcel/logger/-/logger-2.4.1.tgz";
+        sha512 = "wm7FoKY+1dyo+Dd7Z4b0d6hmpgRBWfZwCoZSSyhgbG96Ty68/oo3m7oEMXPfry8IVGIhShmWKDp4py44PH3l7w==";
       };
     };
-    "@parcel/markdown-ansi-2.4.0" = {
+    "@parcel/markdown-ansi-2.4.1" = {
       name = "_at_parcel_slash_markdown-ansi";
       packageName = "@parcel/markdown-ansi";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.4.0.tgz";
-        sha512 = "gPUP1xikxHiu2kFyPy35pfuVkFgAmcywO8YDQj7iYcB+k7l4QPpIYFYGXn2QADV4faf66ncMeTD4uYV8c0GqjQ==";
+        url = "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.4.1.tgz";
+        sha512 = "BkWhzbKQhTQ9lS96ZMMG0KyXSJBFdNeBVobWrdrrwcFlNER0nt2m6fdF7Hfpf1TqFhM4tT+GNFtON7ybL53RiQ==";
       };
     };
-    "@parcel/namer-default-2.4.0" = {
+    "@parcel/namer-default-2.4.1" = {
       name = "_at_parcel_slash_namer-default";
       packageName = "@parcel/namer-default";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.4.0.tgz";
-        sha512 = "DfL+Gx0Tyoa0vsgRpNybXjuKbWNw8MTVpy7Dk7r0btfVsn1jy3SSwlxH4USf76gb00/pK6XBsMp9zn7Z8ePREQ==";
+        url = "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.4.1.tgz";
+        sha512 = "a/Xulfia7JJP6Cw/D6Wq5xX6IAKVKMRPEYtU2wB8vKuwC/et6kXi+0bFVeCLnTjDzVtsjDdyOEwfRC4yiEy3BA==";
       };
     };
-    "@parcel/node-resolver-core-2.4.0" = {
+    "@parcel/node-resolver-core-2.4.1" = {
       name = "_at_parcel_slash_node-resolver-core";
       packageName = "@parcel/node-resolver-core";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-2.4.0.tgz";
-        sha512 = "qiN97XcfW2fYNoYuVEhNKuVPEJKj5ONQl0fqr/NEMmYvWz3bVKjgiXNJwW558elZvCI08gEbdxgyThpuFFQeKQ==";
+        url = "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-2.4.1.tgz";
+        sha512 = "CvCADj3l4o5USqz/ZCaqbK8gdAQK63q94oSa0KnP6hrcDI/gDyf5Bk4+3cD4kSI+ByuN6aFLAYBS2nHBh5O/MQ==";
       };
     };
-    "@parcel/optimizer-css-2.4.0" = {
+    "@parcel/optimizer-css-2.4.1" = {
       name = "_at_parcel_slash_optimizer-css";
       packageName = "@parcel/optimizer-css";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.4.0.tgz";
-        sha512 = "LQmjjOGsHEHKTJqfHR2eJyhWhLXvHP0uOAU+qopBttYYlB2J/vMK9RYAye5cyAb8bQmV8wAdi2mq9rnt7FMSPw==";
+        url = "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.4.1.tgz";
+        sha512 = "+1CxZ43aoAUF8Hj2wLPK4d+TzdJlgYidXJ19Qwlh6XdQs8OeFGBAzIsUBFSr8+XCugXmnTkjYK94nX04Z2FhtQ==";
       };
     };
-    "@parcel/optimizer-htmlnano-2.4.0" = {
+    "@parcel/optimizer-htmlnano-2.4.1" = {
       name = "_at_parcel_slash_optimizer-htmlnano";
       packageName = "@parcel/optimizer-htmlnano";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.4.0.tgz";
-        sha512 = "02EbeElLgNOAYhGU7fFBahpoKrX5G/yzahpaoKB/ypScM4roSsAMBkGcluboR5L10YRsvfvJEpxvfGyDA3tPmw==";
+        url = "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.4.1.tgz";
+        sha512 = "JkykHZcBS92iggT7GHuJJd+MDIc7BMAG0xxTJIY9KzzcxGNYsY8P3LedGVTL0/X8tkdlYQSGNLkTCntP0/62cw==";
       };
     };
-    "@parcel/optimizer-image-2.4.0" = {
+    "@parcel/optimizer-image-2.4.1" = {
       name = "_at_parcel_slash_optimizer-image";
       packageName = "@parcel/optimizer-image";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.4.0.tgz";
-        sha512 = "Q4onaBMPkDyYxPzrb8ytBUftaQZFepj9dSUgq+ETuHDzkgia0tomDPfCqrw6ld0qvYyANzXTP5+LC4g0i5yh+A==";
+        url = "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.4.1.tgz";
+        sha512 = "cv03Ta1FWuF75o9DJLuk1eYk1ULSdSbSkriQUAzc4InKW1bJH6gJasMZSTBsAg2Oz1TWqiDyiy5D/6i/UPoBJg==";
       };
     };
-    "@parcel/optimizer-svgo-2.4.0" = {
+    "@parcel/optimizer-svgo-2.4.1" = {
       name = "_at_parcel_slash_optimizer-svgo";
       packageName = "@parcel/optimizer-svgo";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.4.0.tgz";
-        sha512 = "mwvGuCqVuNCAuMlp2maFE/Uz9ud1T1AuX0f6cCRczjFYiwZuIr/0iDdfFzSziOkVo1MRAGAZNa0dRR/UzCZtVg==";
+        url = "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.4.1.tgz";
+        sha512 = "sOiofvHXjwJDu0NnTO8gGKDv0BztykVczfJdcedYmj207uU71JG1uODZvhyY4uiw1eRqmZnIXELZIftvYnZnDA==";
       };
     };
-    "@parcel/optimizer-terser-2.4.0" = {
+    "@parcel/optimizer-terser-2.4.1" = {
       name = "_at_parcel_slash_optimizer-terser";
       packageName = "@parcel/optimizer-terser";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/optimizer-terser/-/optimizer-terser-2.4.0.tgz";
-        sha512 = "PdCgRgXNSY6R1HTV9VG2MHp1CgUbP5pslCyxvlbUmQAS6bvEpMOpn3qSd+U28o7mGE/qXIhvpDyi808sb+MEcg==";
+        url = "https://registry.npmjs.org/@parcel/optimizer-terser/-/optimizer-terser-2.4.1.tgz";
+        sha512 = "naRdp6gApWHUI1FCBZEJs9NzNngjZx8hRhIHeQtTxWpc2Mu8cVzxbVHNAwUj10nW3iOYmxyj4wleOArl8xpVCQ==";
       };
     };
-    "@parcel/package-manager-2.4.0" = {
+    "@parcel/package-manager-2.4.1" = {
       name = "_at_parcel_slash_package-manager";
       packageName = "@parcel/package-manager";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.4.0.tgz";
-        sha512 = "21AEfAQnZbHRVViTn7QsPGe/CiGaFaDUH5f0m8qVC7fDjjhC8LM8blkqU72goaO9FbaLMadtEf2txhzly7h/bg==";
+        url = "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.4.1.tgz";
+        sha512 = "JUUinm4U3hy4epHl9A389xb+BGiFR8n9+qw3Z4UDfS1te43sh8+0virBGcnai/G7mlr5/vHW+l9xulc7WQaY6w==";
       };
     };
-    "@parcel/packager-css-2.4.0" = {
+    "@parcel/packager-css-2.4.1" = {
       name = "_at_parcel_slash_packager-css";
       packageName = "@parcel/packager-css";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.4.0.tgz";
-        sha512 = "LmPDWzkXi60Oy3WrPF0jPKQxeTwW5hmNBgrcXJMHSu+VcXdaQZNzNxVzhnZkJUbDd2z9vAUrUGzdLh8TquC8iQ==";
+        url = "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.4.1.tgz";
+        sha512 = "COx6RvHbpZ3DzuAgB/XvLLR/luxn9kYhqdFrnmIlYBh4B9atfXyr4rKDlWj1W/r2R72R6LHM35KhkwUATmrC/w==";
       };
     };
-    "@parcel/packager-html-2.4.0" = {
+    "@parcel/packager-html-2.4.1" = {
       name = "_at_parcel_slash_packager-html";
       packageName = "@parcel/packager-html";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.4.0.tgz";
-        sha512 = "OPMIQ1uHYQFpRPrsmm5BqONbAyzjlhVsPRAzHlcBrglG4BTUeOR2ow4MUKblHmVVqc3QHnfZG4nHHtFkeuNQ3A==";
+        url = "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.4.1.tgz";
+        sha512 = "F5/PmWKoz8JhToufnp3u+NQ4LUoVkabzIJYHyQrM858XVmNbMInRfiTYxtgCBa2ARm2BTPhToh7N01OEyFCOhA==";
       };
     };
-    "@parcel/packager-js-2.4.0" = {
+    "@parcel/packager-js-2.4.1" = {
       name = "_at_parcel_slash_packager-js";
       packageName = "@parcel/packager-js";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.4.0.tgz";
-        sha512 = "cfslIH43CJFgBS9PmdFaSnbInMCoejsFCnxtJa2GeUpjCXSfelPRp0OPx7m8n+fap4czftPhoxBALeDUElOZGQ==";
+        url = "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.4.1.tgz";
+        sha512 = "broWBUQisJLF5ThFtnl/asypuLMlMBwFPBTr8Ho9FYlL6W4wUzIymu7eOcuDljstmbD6luNVGMdCBYqt3IhHmw==";
       };
     };
-    "@parcel/packager-raw-2.4.0" = {
+    "@parcel/packager-raw-2.4.1" = {
       name = "_at_parcel_slash_packager-raw";
       packageName = "@parcel/packager-raw";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.4.0.tgz";
-        sha512 = "SFfw7chMFITj3J26ZVDJxbO6xwtPFcFBm1js8cwWMgzwuwS6CEc43k5+Abj+2/EqHU9kNJU9eWV5vT6lQwf3HA==";
+        url = "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.4.1.tgz";
+        sha512 = "4lCY3TjiYaZyRIqshNF21i6XkQ5PJyr+ahhK4O2IymuYuD8/wGH2amTZqKPpGLuiF3j1HskRRUNv1ekpvExJ8w==";
       };
     };
-    "@parcel/packager-svg-2.4.0" = {
+    "@parcel/packager-svg-2.4.1" = {
       name = "_at_parcel_slash_packager-svg";
       packageName = "@parcel/packager-svg";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.4.0.tgz";
-        sha512 = "DwkgrdLEQop+tu9Ocr1ZaadmpsbSgVruJPr80xq1LaB0Jiwrl9HjHStMNH1laNFueK1yydxhnj9C2JQfW28qag==";
+        url = "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.4.1.tgz";
+        sha512 = "V7GW/dgJPqXHReTzwpLcNEdyT5WWveYOW1MfxvKgOOK1ENk6oPgXL0FUdm5IHzqlK1bbwF5hzSQs2vaJMv7rPg==";
       };
     };
-    "@parcel/plugin-2.4.0" = {
+    "@parcel/plugin-2.4.1" = {
       name = "_at_parcel_slash_plugin";
       packageName = "@parcel/plugin";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.4.0.tgz";
-        sha512 = "ehFUAL2+h27Lv+cYbbXA74UGy8C+eglUjcpvASOOjVRFuD6poMAMliKkKAXBhQaFx/Rvhz27A2PIPv9lL2i4UQ==";
+        url = "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.4.1.tgz";
+        sha512 = "EJzNhwNWYuSpIPRlG1U2hKcovq/RsVie4Os1z51/e2dcCto/uAoJOMoWYYsCxtjkJ7BjFYyQ7fcZRKM9DEr6gQ==";
       };
     };
-    "@parcel/reporter-cli-2.4.0" = {
+    "@parcel/reporter-cli-2.4.1" = {
       name = "_at_parcel_slash_reporter-cli";
       packageName = "@parcel/reporter-cli";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.4.0.tgz";
-        sha512 = "Q9bIFMaGvQgypCDxdMEKOwrJzIHAXScKkuFsqTHnUL6mmH3Mo2CoEGAq/wpMXuPhXRn1dPJcHgTNDwZ2fSzz0A==";
+        url = "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.4.1.tgz";
+        sha512 = "99v/dSQ6wYmfpjmBxbsuBoxPWu9bm7PRxDDJxiVapbbym50bWYwVmMEHj6mYnK151YbMssV0garrSs1yYQEvqw==";
       };
     };
-    "@parcel/reporter-dev-server-2.4.0" = {
+    "@parcel/reporter-dev-server-2.4.1" = {
       name = "_at_parcel_slash_reporter-dev-server";
       packageName = "@parcel/reporter-dev-server";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.4.0.tgz";
-        sha512 = "24h++wevs7XYuX4dKa4PUfLSstvn3g7udajFv6CeQoME+dR25RL/wH/2LUbhV5ilgXXab76rWIndSqp78xHxPA==";
+        url = "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.4.1.tgz";
+        sha512 = "tRz1LHiudDhujBC3kJ3Qm0Wnbo3p3SpE6fjyCFRhdv2PJnEufNTTwzEUoa7lYZACwFVQUtrh6F7nMXFw6ynrsQ==";
       };
     };
-    "@parcel/resolver-default-2.4.0" = {
+    "@parcel/resolver-default-2.4.1" = {
       name = "_at_parcel_slash_resolver-default";
       packageName = "@parcel/resolver-default";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.4.0.tgz";
-        sha512 = "K7pIIFmGm1hjg/7Mzkg99i8tfCClKfBUTuc2R5j8cdr2n0mCAi4/f2mFf5svLrb5XZrnDgoQ05tHKklLEfUDUw==";
+        url = "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.4.1.tgz";
+        sha512 = "iJRt1+7lk0n7+wb+S/tVyiObbaiYP1YQGKRsTE8y4Kgp4/OPukdUHGFJwzbojWa0HnyoXm3zEgelVz7cHl47fQ==";
       };
     };
-    "@parcel/runtime-browser-hmr-2.4.0" = {
+    "@parcel/runtime-browser-hmr-2.4.1" = {
       name = "_at_parcel_slash_runtime-browser-hmr";
       packageName = "@parcel/runtime-browser-hmr";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.4.0.tgz";
-        sha512 = "swPFtvxGoCA9LEjU/pHPNjxG1l0fte8447zXwRN/AaYrtjNu9Ww117OSKCyvCnE143E79jZOFStodTQGFuH+9A==";
+        url = "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.4.1.tgz";
+        sha512 = "INsr78Kn0OuwMdXHCzw7v6l3Gf/UBTYtX7N7JNDOIBEFFkuZQiFWyAOI2P/DvMm8qeqcsrKliBO5Xty/a2Ivaw==";
       };
     };
-    "@parcel/runtime-js-2.4.0" = {
+    "@parcel/runtime-js-2.4.1" = {
       name = "_at_parcel_slash_runtime-js";
       packageName = "@parcel/runtime-js";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.4.0.tgz";
-        sha512 = "67OOvmkDdtmgzZVP/EyAzoXhJ/Ug3LUVUt7idg9arun5rdJptqEb3Um3wmH0zjcNa9jMbJt7Kl5x1wA8dJgPYg==";
+        url = "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.4.1.tgz";
+        sha512 = "/EXwRpo+GPvWgN5yD0hjjt84Gm6QWp757dqOOzTG5R2rm1WU+g1a+zJJB1zXkxhu9lleQs44D1jEffzhh2Voyw==";
       };
     };
-    "@parcel/runtime-react-refresh-2.4.0" = {
+    "@parcel/runtime-react-refresh-2.4.1" = {
       name = "_at_parcel_slash_runtime-react-refresh";
       packageName = "@parcel/runtime-react-refresh";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.4.0.tgz";
-        sha512 = "flnr+bf06lMZPbXZZLLaFNrPHvYpfuXTVovEghyUW46qLVpaHj33dpsU/LqZplIuHgBp2ibgrKhr/hY9ell68w==";
+        url = "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.4.1.tgz";
+        sha512 = "a4GBQ/fO7Mklh1M1G2JVpJBPbZD7YXUPAzh9Y4vpCf0ouTHBRMc8ew4CyKPJIrrTly5P42tFWnD3P4FVNKwHOQ==";
       };
     };
-    "@parcel/runtime-service-worker-2.4.0" = {
+    "@parcel/runtime-service-worker-2.4.1" = {
       name = "_at_parcel_slash_runtime-service-worker";
       packageName = "@parcel/runtime-service-worker";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.4.0.tgz";
-        sha512 = "RgM5QUqW22WzstW03CtV+Oih8VGVuwsf94Cc4hLouU2EAD0NUJgATWbFocZVTZIBTKELAWh2gjpSQDdnL4Ur+A==";
+        url = "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.4.1.tgz";
+        sha512 = "WtMKSiyQ0kF78rBw0XIx7n65mMb+6GBx+5m49r1aVZzeZEOSynpjJzJvqo7rxVmA7qTDkD2bko7BH41iScsEaw==";
       };
     };
     "@parcel/source-map-2.0.2" = {
@@ -7267,112 +7438,112 @@ let
         sha512 = "NnUrPYLpYB6qyx2v6bcRPn/gVigmGG6M6xL8wIg/i0dP1GLkuY1nf+Hqdf63FzPTqqT7K3k6eE5yHPQVMO5jcA==";
       };
     };
-    "@parcel/transformer-babel-2.4.0" = {
+    "@parcel/transformer-babel-2.4.1" = {
       name = "_at_parcel_slash_transformer-babel";
       packageName = "@parcel/transformer-babel";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.4.0.tgz";
-        sha512 = "iWDa7KzJTMP3HNmrYxiYq/S6redk2qminx/9MwmKIN9jzm8mgts2Lj9lOg/t66YaDGky6JAvw4DhB2qW4ni6yQ==";
+        url = "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.4.1.tgz";
+        sha512 = "S+L14Fdr+S/+hqOi2nqnhuJvBbEJW24KyQeLmdaoMkt7DQLy5zENjGb9U2WYgB0Q96au0vX8NgB6jOnONecnpg==";
       };
     };
-    "@parcel/transformer-css-2.4.0" = {
+    "@parcel/transformer-css-2.4.1" = {
       name = "_at_parcel_slash_transformer-css";
       packageName = "@parcel/transformer-css";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.4.0.tgz";
-        sha512 = "D2u48LuiQsQvbknABE0wVKFp9r6yCgWrHKEP1J6EJ31c49nXGXDHrpHJJwqq9BvAs/124eBI5mSsehTJyFEMwg==";
+        url = "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.4.1.tgz";
+        sha512 = "+6wCc0eEg4ez96Mucp/RjYKyRVN+7HPWPH7axalsQdp88t7wawWoqI2nd2mEw2PxpyuejIsk0ixLzYZ5opZivw==";
       };
     };
-    "@parcel/transformer-html-2.4.0" = {
+    "@parcel/transformer-html-2.4.1" = {
       name = "_at_parcel_slash_transformer-html";
       packageName = "@parcel/transformer-html";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.4.0.tgz";
-        sha512 = "2/8X/o5QaCNVPr4wkxLCUub7v/YVvVN2L5yCEcTatNeFhNg/2iz7P2ekfqOaoDCHWZEOBT1VTwPbdBt+TMM71Q==";
+        url = "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.4.1.tgz";
+        sha512 = "jyteTWuBA+f5wXn1RmAq3gOnB3yy41c748vARU9uNEXkLB4a7R106w4e5dlTG1DJfk+Tw1okSe1p2BeHoZntAw==";
       };
     };
-    "@parcel/transformer-image-2.4.0" = {
+    "@parcel/transformer-image-2.4.1" = {
       name = "_at_parcel_slash_transformer-image";
       packageName = "@parcel/transformer-image";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.4.0.tgz";
-        sha512 = "JZkQvGGoGiD0AVKLIbAYYUWxepMmUaWZ4XXx71MmS/kA7cUDwTZ0CXq63YnSY1m+DX+ClTuTN8mBlwe2dkcGbA==";
+        url = "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.4.1.tgz";
+        sha512 = "pOfgPVe13lMTKdzydjXXNl4bojVMmuQmwm44OZ9cmpwOD3phkZzCtrxgySoV1eRBCOipdQg1O6GGI3za1KNdvw==";
       };
     };
-    "@parcel/transformer-js-2.4.0" = {
+    "@parcel/transformer-js-2.4.1" = {
       name = "_at_parcel_slash_transformer-js";
       packageName = "@parcel/transformer-js";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.4.0.tgz";
-        sha512 = "eeLHFwv3jT3GmIxpLC7B8EXExGK0MFaK91HXljOMh6l8a+GlQYw27MSFQVtoXr0Olx9Uq2uvjXP1+zSsq3LQUQ==";
+        url = "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.4.1.tgz";
+        sha512 = "39Y9RUuDk5dc09Z3Pgj8snQd5E8926IqOowdTLKNJr7EcmkwHdinbpI4EqgKnisOwX4NSzxUti1I2DHsP1QZHw==";
       };
     };
-    "@parcel/transformer-json-2.4.0" = {
+    "@parcel/transformer-json-2.4.1" = {
       name = "_at_parcel_slash_transformer-json";
       packageName = "@parcel/transformer-json";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.4.0.tgz";
-        sha512 = "3nR+d39mbURoXIypDfVCaxpwL65qMV+h8SLD78up2uhaRGklHQfN7GuemR7L+mcVAgNrmwVvZHhyNjdgYwWqqg==";
+        url = "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.4.1.tgz";
+        sha512 = "bAwKyWb2/Wm6GS7OpQg1lWgcq+VDBXTKy5oFGX3edbpZFsrb59Ln1v+1jI888zRq4ehDBybhx8WTxPKTJnU+jA==";
       };
     };
-    "@parcel/transformer-postcss-2.4.0" = {
+    "@parcel/transformer-postcss-2.4.1" = {
       name = "_at_parcel_slash_transformer-postcss";
       packageName = "@parcel/transformer-postcss";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.4.0.tgz";
-        sha512 = "ijIa2x+dbKnJhr7zO5WlXkvuj832fDoGksMBk2DX3u2WMrbh2rqVWPpGFsDhESx7EAy38nUoV/5KUdrNqUmCEA==";
+        url = "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.4.1.tgz";
+        sha512 = "I+jauarY5RlDUcd0zb9CC4GlpA7/+FqNSqCaGrM73aoszh6FNs4GiwD5tgy0pKOEASBZ0fBPmHEG1OBiVBXRGg==";
       };
     };
-    "@parcel/transformer-posthtml-2.4.0" = {
+    "@parcel/transformer-posthtml-2.4.1" = {
       name = "_at_parcel_slash_transformer-posthtml";
       packageName = "@parcel/transformer-posthtml";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.4.0.tgz";
-        sha512 = "xoL3AzgtVeRRAo6bh0AHAYm9bt1jZ+HiH86/7oARj/uJs6Wd8kXK/DZf6fH+F87hj4e7bnjmDDc0GPVK0lPz1w==";
+        url = "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.4.1.tgz";
+        sha512 = "DNtS41Sew940vnnqlFS0QK3ZbjQqCGT8JXkvwFojIrdH+3BW/n/9Hrtxj+X/bxrlwZlsRiqiRJ7crXp7TVhx2g==";
       };
     };
-    "@parcel/transformer-raw-2.4.0" = {
+    "@parcel/transformer-raw-2.4.1" = {
       name = "_at_parcel_slash_transformer-raw";
       packageName = "@parcel/transformer-raw";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.4.0.tgz";
-        sha512 = "fciFbNrzj0kLlDgr6OsI0PUv414rVygDWAsgbCCq4BexDkuemMs9f9FjMctx9B2VZlctE8dTT4RGkuQumTIpUg==";
+        url = "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.4.1.tgz";
+        sha512 = "0PzdWJSGSTQ522aohymHEnq4GABy0mHSs+LkPZyMfNmX9ZAIyy6XuFJ9dz8nUmP4Nhn8qDvbRjoAYXR3XsGDGQ==";
       };
     };
-    "@parcel/transformer-react-refresh-wrap-2.4.0" = {
+    "@parcel/transformer-react-refresh-wrap-2.4.1" = {
       name = "_at_parcel_slash_transformer-react-refresh-wrap";
       packageName = "@parcel/transformer-react-refresh-wrap";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.4.0.tgz";
-        sha512 = "9+f6sGOWkf0jyUQ1CuFWk+04Mq3KTOCU9kRiwCHX1YdUCv5uki6r9XUSpqiYodrV+L6w9CCwLvGMLCDHxtCxMg==";
+        url = "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.4.1.tgz";
+        sha512 = "zF6pzj/BwSiD1jA/BHDCEJnKSIDekjblU+OWp1WpSjA1uYkJORuZ5knLcq6mXOQ8M2NCbOXosc1ru8071i8sYA==";
       };
     };
-    "@parcel/transformer-svg-2.4.0" = {
+    "@parcel/transformer-svg-2.4.1" = {
       name = "_at_parcel_slash_transformer-svg";
       packageName = "@parcel/transformer-svg";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.4.0.tgz";
-        sha512 = "D+yzVtSxtQML3d26fd/g4E/xYW68+OMbMUVLXORtoYMU42fnXQkJP6jGOdqy8Td+WORNY7EwVtQnESLwhBmolw==";
+        url = "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.4.1.tgz";
+        sha512 = "E0XdXsZOnP7g9zvJskfvXeIHx9pKjPHtLKo/txmpjW1eXOmsFcRMVy6l4pFh+kBciAgiZOI6o1pVHt+Uf7ia/g==";
       };
     };
-    "@parcel/types-2.4.0" = {
+    "@parcel/types-2.4.1" = {
       name = "_at_parcel_slash_types";
       packageName = "@parcel/types";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/types/-/types-2.4.0.tgz";
-        sha512 = "nysGIbBEnp+7R+tKTysdcTFOZDTCodsiXFeAhYQa5bhiOnG1l9gzhxQnE2OsdsgvMm40IOsgKprqvM/DbdLfnQ==";
+        url = "https://registry.npmjs.org/@parcel/types/-/types-2.4.1.tgz";
+        sha512 = "YqkiyGS8oiD89Z2lJP7sbjn0F0wlSJMAuqgqf7obeKj0zmZJS7n2xK0uUEuIlUO+Cbqgl0kCGsUSjuT8xcEqjg==";
       };
     };
     "@parcel/utils-1.11.0" = {
@@ -7384,13 +7555,13 @@ let
         sha512 = "cA3p4jTlaMeOtAKR/6AadanOPvKeg8VwgnHhOyfi0yClD0TZS/hi9xu12w4EzA/8NtHu0g6o4RDfcNjqN8l1AQ==";
       };
     };
-    "@parcel/utils-2.4.0" = {
+    "@parcel/utils-2.4.1" = {
       name = "_at_parcel_slash_utils";
       packageName = "@parcel/utils";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/utils/-/utils-2.4.0.tgz";
-        sha512 = "sdNo+mZqDZT8LJYB6WWRKa4wFVZcK6Zb5Jh6Du76QvXXwHbPIQNZgJBb6gd/Rbk4GLOp2tW7MnBfq6zP9E9E2g==";
+        url = "https://registry.npmjs.org/@parcel/utils/-/utils-2.4.1.tgz";
+        sha512 = "hmbrnPtFAfMT6s9FMMIVlIzCwEFX/+byB67GoJmSCAMRmj6RMu4a6xKlv2FdzkTKJV2ucg8vxAcua0MQ/q8rkQ==";
       };
     };
     "@parcel/watcher-1.12.1" = {
@@ -7420,13 +7591,13 @@ let
         sha512 = "USSjRAAQYsZFlv43FUPdD+jEGML5/8oLF0rUzPQTtK4q9kvaXr49F5ZplyLz5lox78cLZ0TxN2bIDQ1xhOkulQ==";
       };
     };
-    "@parcel/workers-2.4.0" = {
+    "@parcel/workers-2.4.1" = {
       name = "_at_parcel_slash_workers";
       packageName = "@parcel/workers";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/workers/-/workers-2.4.0.tgz";
-        sha512 = "eSFyvEoXXPgFzQfKIlpkUjpHfIbezUCRFTPKyJAKCxvU5DSXOpb1kz5vDESWQ4qTZXKnrKvxS1PPWN6bam9z0g==";
+        url = "https://registry.npmjs.org/@parcel/workers/-/workers-2.4.1.tgz";
+        sha512 = "EYujbJOblFqIt2NGQ+baIYTuavJqbhy84IfZ3j0jmACeKO5Ew1EHXZyl9LJgWHKaIPZsnvnbxw2mDOF05K65xQ==";
       };
     };
     "@peculiar/asn1-schema-2.1.0" = {
@@ -7501,22 +7672,22 @@ let
         sha512 = "DiIjtous4XPuR2deTctD3/RVZy/vRzVYBgYYvHV313MmTfkbVP60qLH5txrT3/bYNvnb0poNDelLS6U0kqlvHA==";
       };
     };
-    "@prisma/engines-3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9" = {
+    "@prisma/engines-3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980" = {
       name = "_at_prisma_slash_engines";
       packageName = "@prisma/engines";
-      version = "3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9";
+      version = "3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@prisma/engines/-/engines-3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9.tgz";
-        sha512 = "MILbsGnvmnhCbFGa2/iSnsyGyazU3afzD7ldjCIeLIGKkNBMSZgA2IvpYsAXl+6qFHKGrS3B2otKfV31dwMSQw==";
+        url = "https://registry.npmjs.org/@prisma/engines/-/engines-3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980.tgz";
+        sha512 = "zULjkN8yhzS7B3yeEz4aIym4E2w1ChrV12i14pht3ePFufvsAvBSoZ+tuXMvfSoNTgBS5E4bolRzLbMmbwkkMQ==";
       };
     };
-    "@prisma/prisma-fmt-wasm-3.11.0-48.b371888aaf8f51357c7457d836b86d12da91658b" = {
+    "@prisma/prisma-fmt-wasm-3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980" = {
       name = "_at_prisma_slash_prisma-fmt-wasm";
       packageName = "@prisma/prisma-fmt-wasm";
-      version = "3.11.0-48.b371888aaf8f51357c7457d836b86d12da91658b";
+      version = "3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@prisma/prisma-fmt-wasm/-/prisma-fmt-wasm-3.11.0-48.b371888aaf8f51357c7457d836b86d12da91658b.tgz";
-        sha512 = "bp8ksqxPmTIuAF13ujxtyUnbbeQl5H3EVLUDjswSARK/8dwQ6ORQC/Ho1wv63joyiuZstwl7K3FgqIY1OB1lcA==";
+        url = "https://registry.npmjs.org/@prisma/prisma-fmt-wasm/-/prisma-fmt-wasm-3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980.tgz";
+        sha512 = "9L+jHXt1zFcnhhcxa+oUBI9r0qh+fNFtDKxndj0C4pnAnGGNevvAo4GZNqWICa8BJbNgiV/XacTMea+98e1Rhw==";
       };
     };
     "@protobufjs/aspromise-1.1.2" = {
@@ -7690,13 +7861,13 @@ let
         sha512 = "y9qNj0//tZtWB2jfXNK3BX18BSBp9zNR7KE7lMysVHwbZtY392OJCjm6Rb/h4UHH2r1AqjNEHFD6bRn+DqU9Mw==";
       };
     };
-    "@redocly/openapi-core-1.0.0-beta.90" = {
+    "@redocly/openapi-core-1.0.0-beta.94" = {
       name = "_at_redocly_slash_openapi-core";
       packageName = "@redocly/openapi-core";
-      version = "1.0.0-beta.90";
+      version = "1.0.0-beta.94";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.90.tgz";
-        sha512 = "MvkME+AWCBexyJyNp/sVFRUBjxCSk5CQ+CAozkwm0t/HusXp9G+kH26+e9giD6Fms129smr1qp3pCAUbwJZzZA==";
+        url = "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.94.tgz";
+        sha512 = "xTklcobv+51bQVkUOpUiNY0GztL+0u3yGsy2BtldaHpcnNGMu3lu/utsoOHkiNTpgVEGyEWVZzBtF6Sz5v/Fkg==";
       };
     };
     "@redocly/react-dropdown-aria-2.0.12" = {
@@ -7708,6 +7879,15 @@ let
         sha512 = "feQEZlyBvQsbT/fvpJ4jJ5OLGaUPpnskHYDsY8DGpPymN+HUeDQrqkBEbbKRwMKidFTI2cxk2kJNNTnvdS9jyw==";
       };
     };
+    "@repeaterjs/repeater-3.0.4" = {
+      name = "_at_repeaterjs_slash_repeater";
+      packageName = "@repeaterjs/repeater";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.4.tgz";
+        sha512 = "AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==";
+      };
+    };
     "@request/api-0.6.0" = {
       name = "_at_request_slash_api";
       packageName = "@request/api";
@@ -7753,13 +7933,13 @@ let
         sha512 = "c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==";
       };
     };
-    "@schematics/angular-13.3.0" = {
+    "@schematics/angular-13.3.3" = {
       name = "_at_schematics_slash_angular";
       packageName = "@schematics/angular";
-      version = "13.3.0";
+      version = "13.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/angular/-/angular-13.3.0.tgz";
-        sha512 = "WND6DXWf0ZFefqlC2hUm1FzHDonRfGpDEPWVhVulhYkB7IUUaXuCz8K41HAScyJ3bxUngs2Lx9+4omikc05fxA==";
+        url = "https://registry.npmjs.org/@schematics/angular/-/angular-13.3.3.tgz";
+        sha512 = "kX5ghVCmWHcMN+g0pUaFuIJzwrXsVnK4bfid8DckU4EEtfFSv3UA5I1QNJRgpCPxTPhNEAk+3ePN8nzDSjdU+w==";
       };
     };
     "@segment/loosely-validate-event-2.0.0" = {
@@ -7780,13 +7960,13 @@ let
         sha512 = "J3jpy002TyBjd4N/p6s+s90eX42H2eRhK3SbsZuvTDv977/E8p2U3zikdiehyJja66do7FlxLomZLPlvl2/xaA==";
       };
     };
-    "@serverless/dashboard-plugin-6.2.0" = {
+    "@serverless/dashboard-plugin-6.2.2" = {
       name = "_at_serverless_slash_dashboard-plugin";
       packageName = "@serverless/dashboard-plugin";
-      version = "6.2.0";
+      version = "6.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/dashboard-plugin/-/dashboard-plugin-6.2.0.tgz";
-        sha512 = "3vapxoW1hI8OBxLRJq+J9vt3tdckZObhYWfwRPDlqPs6FOEoHuJieAzz07e7YdWt7fO/LkQx6rlgCXlGamLnjw==";
+        url = "https://registry.npmjs.org/@serverless/dashboard-plugin/-/dashboard-plugin-6.2.2.tgz";
+        sha512 = "h3zOprpuWZCdAP7qoOKT2nboB+AaxMkGoSzOD0jIBpt9s0cXqLE2VFjR2vKn8Cvam47Qa3XYnT2/XN6tR6rZgQ==";
       };
     };
     "@serverless/event-mocks-1.1.1" = {
@@ -8482,13 +8662,13 @@ let
         sha512 = "azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==";
       };
     };
-    "@types/babel__traverse-7.14.2" = {
+    "@types/babel__traverse-7.17.0" = {
       name = "_at_types_slash_babel__traverse";
       packageName = "@types/babel__traverse";
-      version = "7.14.2";
+      version = "7.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz";
-        sha512 = "K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==";
+        url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.0.tgz";
+        sha512 = "r8aveDbd+rzGP+ykSdF3oPuTVRWRfbBiHl0rVDM2yNEmSMXfkObQLV46b4RnCv3Lra51OlfnZhkkFaDl2MIRaA==";
       };
     };
     "@types/babylon-6.16.6" = {
@@ -8599,13 +8779,13 @@ let
         sha512 = "SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==";
       };
     };
-    "@types/concat-stream-1.6.1" = {
+    "@types/concat-stream-2.0.0" = {
       name = "_at_types_slash_concat-stream";
       packageName = "@types/concat-stream";
-      version = "1.6.1";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz";
-        sha512 = "eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==";
+        url = "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-2.0.0.tgz";
+        sha512 = "t3YCerNM7NTVjLuICZo5gYAXYoDvpuuTceCcFQWcDQz26kxUR5uIWolxbIR5jRNIXpMqhOpW/b8imCR1LEmuJw==";
       };
     };
     "@types/connect-3.4.35" = {
@@ -8959,13 +9139,13 @@ let
         sha512 = "rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==";
       };
     };
-    "@types/inquirer-8.2.0" = {
+    "@types/inquirer-8.2.1" = {
       name = "_at_types_slash_inquirer";
       packageName = "@types/inquirer";
-      version = "8.2.0";
+      version = "8.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.0.tgz";
-        sha512 = "BNoMetRf3gmkpAlV5we+kxyZTle7YibdOntIZbU5pyIfMdcwy784KfeZDAcuyMznkh5OLa17RVXZOGA5LTlkgQ==";
+        url = "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.1.tgz";
+        sha512 = "wKW3SKIUMmltbykg4I5JzCVzUhkuD9trD6efAmYgN2MrSntY0SMRQzEnD3mkyJ/rv9NLbTC7g3hKKE86YwEDLw==";
       };
     };
     "@types/is-empty-1.2.1" = {
@@ -9067,6 +9247,15 @@ let
         sha512 = "k4ih8ayQ65e26vhCxeMTKtZ808DzC0RFQ4unBvPEy9bcFhS4aPm3oXgWWZNmZ4u+H2WzHQDCNrRC5iNX+afiZw==";
       };
     };
+    "@types/json-buffer-3.0.0" = {
+      name = "_at_types_slash_json-buffer";
+      packageName = "@types/json-buffer";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz";
+        sha512 = "3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==";
+      };
+    };
     "@types/json-schema-7.0.11" = {
       name = "_at_types_slash_json-schema";
       packageName = "@types/json-schema";
@@ -9166,13 +9355,13 @@ let
         sha512 = "0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==";
       };
     };
-    "@types/lodash-4.14.180" = {
+    "@types/lodash-4.14.182" = {
       name = "_at_types_slash_lodash";
       packageName = "@types/lodash";
-      version = "4.14.180";
+      version = "4.14.182";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.180.tgz";
-        sha512 = "XOKXa1KIxtNXgASAnwj7cnttJxS4fksBRywK/9LzRV5YxrF80BXZIGeQSuoESQ/VkUj30Ae0+YcuHc15wJCB2g==";
+        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz";
+        sha512 = "/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==";
       };
     };
     "@types/long-4.0.1" = {
@@ -9337,13 +9526,13 @@ let
         sha512 = "Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==";
       };
     };
-    "@types/node-12.20.47" = {
+    "@types/node-12.20.48" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "12.20.47";
+      version = "12.20.48";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-12.20.47.tgz";
-        sha512 = "BzcaRsnFuznzOItW1WpQrDHM7plAa7GIDMZ6b5pnMbkqEtM/6WCOhvZar39oeMQP79gwvFUWjjptE7/KGcNqFg==";
+        url = "https://registry.npmjs.org/@types/node/-/node-12.20.48.tgz";
+        sha512 = "4kxzqkrpwYtn6okJUcb2lfUu9ilnb3yhUOH6qX3nug8D2DupZ2drIkff2yJzYcNJVl3begnlcaBJ7tqiTTzjnQ==";
       };
     };
     "@types/node-13.13.52" = {
@@ -9364,13 +9553,13 @@ let
         sha512 = "USUftMYpmuMzeWobskoPfzDi+vkpe0dvcOBRNOscFrGxVp4jomnRxWuVohgqBow2xyIPC0S3gjxV/5079jhmDg==";
       };
     };
-    "@types/node-14.18.12" = {
+    "@types/node-14.18.13" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "14.18.12";
+      version = "14.18.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz";
-        sha512 = "q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==";
+        url = "https://registry.npmjs.org/@types/node/-/node-14.18.13.tgz";
+        sha512 = "Z6/KzgyWOga3pJNS42A+zayjhPbf2zM3hegRQaOPnLOzEi86VV++6FLDWgR1LGrVCRufP/ph2daa3tEa5br1zA==";
       };
     };
     "@types/node-15.14.9" = {
@@ -9382,13 +9571,13 @@ let
         sha512 = "qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==";
       };
     };
-    "@types/node-16.11.26" = {
+    "@types/node-16.11.27" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "16.11.26";
+      version = "16.11.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-16.11.26.tgz";
-        sha512 = "GZ7bu5A6+4DtG7q9GsoHXy3ALcgeIHP4NnL0Vv2wu0uUB/yQex26v0tf6/na1mm0+bS9Uw+0DFex7aaKr2qawQ==";
+        url = "https://registry.npmjs.org/@types/node/-/node-16.11.27.tgz";
+        sha512 = "C1pD3kgLoZ56Uuy5lhfOxie4aZlA3UMGLX9rXteq4WitEZH6Rl80mwactt9QG0w0gLFlN/kLBTFnGXtDVWvWQw==";
       };
     };
     "@types/node-16.11.6" = {
@@ -9400,24 +9589,6 @@ let
         sha512 = "ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==";
       };
     };
-    "@types/node-16.11.7" = {
-      name = "_at_types_slash_node";
-      packageName = "@types/node";
-      version = "16.11.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-16.11.7.tgz";
-        sha512 = "QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==";
-      };
-    };
-    "@types/node-17.0.15" = {
-      name = "_at_types_slash_node";
-      packageName = "@types/node";
-      version = "17.0.15";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-17.0.15.tgz";
-        sha512 = "zWt4SDDv1S9WRBNxLFxFRHxdD9tvH8f5/kg5/IaLFdnSNXsDY4eL3Q3XXN+VxUnWIhyVFDwcsmAprvwXoM/ClA==";
-      };
-    };
     "@types/node-17.0.21" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
@@ -9436,6 +9607,15 @@ let
         sha512 = "UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==";
       };
     };
+    "@types/node-17.0.25" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "17.0.25";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz";
+        sha512 = "wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==";
+      };
+    };
     "@types/node-6.14.13" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
@@ -9517,13 +9697,13 @@ let
         sha512 = "Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==";
       };
     };
-    "@types/prop-types-15.7.4" = {
+    "@types/prop-types-15.7.5" = {
       name = "_at_types_slash_prop-types";
       packageName = "@types/prop-types";
-      version = "15.7.4";
+      version = "15.7.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz";
-        sha512 = "rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==";
+        url = "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz";
+        sha512 = "JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==";
       };
     };
     "@types/pug-2.0.6" = {
@@ -9580,13 +9760,13 @@ let
         sha512 = "+TRLFmHLnpoV0uw4O/PzqMbPT6bhQM0q2KO0l+R7M3sHYRndPpNL6kv8p7Ee9ZxgQ6noYB18/t+heQi7eijOHA==";
       };
     };
-    "@types/react-16.14.24" = {
+    "@types/react-16.14.25" = {
       name = "_at_types_slash_react";
       packageName = "@types/react";
-      version = "16.14.24";
+      version = "16.14.25";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/react/-/react-16.14.24.tgz";
-        sha512 = "e7U2WC8XQP/xfR7bwhOhNFZKPTfW1ph+MiqtudKb8tSV8RyCsovQx2sNVtKoOryjxFKpHPPC/yNiGfdeVM5Gyw==";
+        url = "https://registry.npmjs.org/@types/react/-/react-16.14.25.tgz";
+        sha512 = "cXRVHd7vBT5v1is72mmvmsg9stZrbJO04DJqFeh3Yj2tVKO6vmxg5BI+ybI6Ls7ROXRG3aFbZj9x0WA3ZAoDQw==";
       };
     };
     "@types/react-dom-16.9.14" = {
@@ -9616,15 +9796,6 @@ let
         sha512 = "V8g8sBDLVeJJAfEENJS7VXZK+DRJ+jzPNtk8jpj2G+obhf+iqGNUDGwNWCbBhLiD+KpHhf3kWQlKBRi0tAeU4Q==";
       };
     };
-    "@types/request-2.48.7" = {
-      name = "_at_types_slash_request";
-      packageName = "@types/request";
-      version = "2.48.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/request/-/request-2.48.7.tgz";
-        sha512 = "GWP9AZW7foLd4YQxyFZDBepl0lPsWLMEXDZUjQ/c1gqVPDPECrRZyEzuhJdnPWioFCq3Tv0qoGpMD6U+ygd4ZA==";
-      };
-    };
     "@types/request-2.48.8" = {
       name = "_at_types_slash_request";
       packageName = "@types/request";
@@ -9841,22 +10012,22 @@ let
         sha512 = "7axfYN8SW9pWg78NgenHasSproWQee5rzyPVLC9HpaQSDgNArsnKJD88EaMfi4Pl48AyciO3agYCFqpHS1gLpg==";
       };
     };
-    "@types/tough-cookie-4.0.1" = {
+    "@types/tough-cookie-4.0.2" = {
       name = "_at_types_slash_tough-cookie";
       packageName = "@types/tough-cookie";
-      version = "4.0.1";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.1.tgz";
-        sha512 = "Y0K95ThC3esLEYD6ZuqNek29lNX2EM1qxV8y2FTLUB0ff5wWrk7az+mLrnNFUnaXcgKye22+sFBRXOgpPILZNg==";
+        url = "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz";
+        sha512 = "Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==";
       };
     };
-    "@types/uglify-js-3.13.1" = {
+    "@types/uglify-js-3.13.2" = {
       name = "_at_types_slash_uglify-js";
       packageName = "@types/uglify-js";
-      version = "3.13.1";
+      version = "3.13.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.1.tgz";
-        sha512 = "O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ==";
+        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.2.tgz";
+        sha512 = "/xFrPIo+4zOeNGtVMbf9rUm0N+i4pDf1ynExomqtokIJmVzR3962lJ1UE+MmexMkA0cmN9oTzg5Xcbwge0Ij2Q==";
       };
     };
     "@types/unist-2.0.6" = {
@@ -9931,13 +10102,13 @@ let
         sha512 = "awvdx4vX7SkMKyvWIlRjycjb4blYRSQI3Bav0YMn+lJLGN6gJgb20urN/dQCv/2ejDu5S6ADEBt6O15DOpIAkg==";
       };
     };
-    "@types/vscode-1.65.0" = {
+    "@types/vscode-1.66.0" = {
       name = "_at_types_slash_vscode";
       packageName = "@types/vscode";
-      version = "1.65.0";
+      version = "1.66.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.65.0.tgz";
-        sha512 = "wQhExnh2nEzpjDMSKhUvnNmz3ucpd3E+R7wJkOhBNK3No6fG3VUdmVmMOKD0A8NDZDDDiQcLNxe3oGmX5SjJ5w==";
+        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.66.0.tgz";
+        sha512 = "ZfJck4M7nrGasfs4A4YbUoxis3Vu24cETw3DERsNYtDZmYSYtk6ljKexKFKhImO/ZmY6ZMsmegu2FPkXoUFImA==";
       };
     };
     "@types/webidl-conversions-6.1.1" = {
@@ -9967,13 +10138,13 @@ let
         sha512 = "XCph0RiiqFGetukCTC3KVnY1jwLcZ84illFRMbyFzCcWl90B/76ew0tSqF46oBhnLC4obNDG7dMO0JfTN0MgMQ==";
       };
     };
-    "@types/webpack-env-1.16.3" = {
+    "@types/webpack-env-1.16.4" = {
       name = "_at_types_slash_webpack-env";
       packageName = "@types/webpack-env";
-      version = "1.16.3";
+      version = "1.16.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.16.3.tgz";
-        sha512 = "9gtOPPkfyNoEqCQgx4qJKkuNm/x0R2hKR7fdl7zvTJyHnIisuE/LfvXOsYWL0o3qq6uiBnKZNNNzi3l0y/X+xw==";
+        url = "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.16.4.tgz";
+        sha512 = "llS8qveOUX3wxHnSykP5hlYFFuMfJ9p5JvIyCiBgp7WTfl6K5ZcyHj8r8JsN/J6QODkAsRRCLIcTuOCu8etkUw==";
       };
     };
     "@types/webpack-sources-3.2.0" = {
@@ -9994,15 +10165,6 @@ let
         sha512 = "B5m9aq7cbbD/5/jThEr33nUY8WEfVi6A2YKCTOvw5Ldy7mtsOkqRvGjnzy6g7iMMDsgu7xREuCzqATLDLQVKcQ==";
       };
     };
-    "@types/websocket-1.0.5" = {
-      name = "_at_types_slash_websocket";
-      packageName = "@types/websocket";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.5.tgz";
-        sha512 = "NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ==";
-      };
-    };
     "@types/whatwg-url-8.2.1" = {
       name = "_at_types_slash_whatwg-url";
       packageName = "@types/whatwg-url";
@@ -10039,24 +10201,6 @@ let
         sha512 = "JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==";
       };
     };
-    "@types/ws-8.2.0" = {
-      name = "_at_types_slash_ws";
-      packageName = "@types/ws";
-      version = "8.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/ws/-/ws-8.2.0.tgz";
-        sha512 = "cyeefcUCgJlEk+hk2h3N+MqKKsPViQgF5boi9TTHSK+PoR9KWBb/C5ccPcDyAqgsbAYHTwulch725DV84+pSpg==";
-      };
-    };
-    "@types/ws-8.2.2" = {
-      name = "_at_types_slash_ws";
-      packageName = "@types/ws";
-      version = "8.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz";
-        sha512 = "NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==";
-      };
-    };
     "@types/ws-8.5.2" = {
       name = "_at_types_slash_ws";
       packageName = "@types/ws";
@@ -10093,6 +10237,15 @@ let
         sha512 = "T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==";
       };
     };
+    "@types/yargs-17.0.10" = {
+      name = "_at_types_slash_yargs";
+      packageName = "@types/yargs";
+      version = "17.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz";
+        sha512 = "gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==";
+      };
+    };
     "@types/yargs-parser-21.0.0" = {
       name = "_at_types_slash_yargs-parser";
       packageName = "@types/yargs-parser";
@@ -10102,6 +10255,15 @@ let
         sha512 = "iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==";
       };
     };
+    "@types/yauzl-2.10.0" = {
+      name = "_at_types_slash_yauzl";
+      packageName = "@types/yauzl";
+      version = "2.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz";
+        sha512 = "Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==";
+      };
+    };
     "@types/yauzl-2.9.2" = {
       name = "_at_types_slash_yauzl";
       packageName = "@types/yauzl";
@@ -10129,13 +10291,13 @@ let
         sha512 = "aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==";
       };
     };
-    "@typescript-eslint/eslint-plugin-5.16.0" = {
+    "@typescript-eslint/eslint-plugin-5.20.0" = {
       name = "_at_typescript-eslint_slash_eslint-plugin";
       packageName = "@typescript-eslint/eslint-plugin";
-      version = "5.16.0";
+      version = "5.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.16.0.tgz";
-        sha512 = "SJoba1edXvQRMmNI505Uo4XmGbxCK9ARQpkvOd00anxzri9RNQk0DDCxD+LIl+jYhkzOJiOMMKYEHnHEODjdCw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz";
+        sha512 = "fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==";
       };
     };
     "@typescript-eslint/experimental-utils-4.33.0" = {
@@ -10156,13 +10318,13 @@ let
         sha512 = "ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==";
       };
     };
-    "@typescript-eslint/parser-5.16.0" = {
+    "@typescript-eslint/parser-5.20.0" = {
       name = "_at_typescript-eslint_slash_parser";
       packageName = "@typescript-eslint/parser";
-      version = "5.16.0";
+      version = "5.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.16.0.tgz";
-        sha512 = "fkDq86F0zl8FicnJtdXakFs4lnuebH6ZADDw6CYQv0UZeIjHvmEw87m9/29nk2Dv5Lmdp0zQ3zDQhiMWQf/GbA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.20.0.tgz";
+        sha512 = "UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w==";
       };
     };
     "@typescript-eslint/scope-manager-4.33.0" = {
@@ -10174,22 +10336,22 @@ let
         sha512 = "5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==";
       };
     };
-    "@typescript-eslint/scope-manager-5.16.0" = {
+    "@typescript-eslint/scope-manager-5.20.0" = {
       name = "_at_typescript-eslint_slash_scope-manager";
       packageName = "@typescript-eslint/scope-manager";
-      version = "5.16.0";
+      version = "5.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz";
-        sha512 = "P+Yab2Hovg8NekLIR/mOElCDPyGgFZKhGoZA901Yax6WR6HVeGLbsqJkZ+Cvk5nts/dAlFKm8PfL43UZnWdpIQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz";
+        sha512 = "h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==";
       };
     };
-    "@typescript-eslint/type-utils-5.16.0" = {
+    "@typescript-eslint/type-utils-5.20.0" = {
       name = "_at_typescript-eslint_slash_type-utils";
       packageName = "@typescript-eslint/type-utils";
-      version = "5.16.0";
+      version = "5.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.16.0.tgz";
-        sha512 = "SKygICv54CCRl1Vq5ewwQUJV/8padIWvPgCxlWPGO/OgQLCijY9G7lDu6H+mqfQtbzDNlVjzVWQmeqbLMBLEwQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.20.0.tgz";
+        sha512 = "WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw==";
       };
     };
     "@typescript-eslint/types-4.33.0" = {
@@ -10201,13 +10363,13 @@ let
         sha512 = "zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==";
       };
     };
-    "@typescript-eslint/types-5.16.0" = {
+    "@typescript-eslint/types-5.20.0" = {
       name = "_at_typescript-eslint_slash_types";
       packageName = "@typescript-eslint/types";
-      version = "5.16.0";
+      version = "5.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz";
-        sha512 = "oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g==";
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz";
+        sha512 = "+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==";
       };
     };
     "@typescript-eslint/typescript-estree-4.33.0" = {
@@ -10219,22 +10381,22 @@ let
         sha512 = "rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==";
       };
     };
-    "@typescript-eslint/typescript-estree-5.16.0" = {
+    "@typescript-eslint/typescript-estree-5.20.0" = {
       name = "_at_typescript-eslint_slash_typescript-estree";
       packageName = "@typescript-eslint/typescript-estree";
-      version = "5.16.0";
+      version = "5.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz";
-        sha512 = "SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz";
+        sha512 = "36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==";
       };
     };
-    "@typescript-eslint/utils-5.16.0" = {
+    "@typescript-eslint/utils-5.20.0" = {
       name = "_at_typescript-eslint_slash_utils";
       packageName = "@typescript-eslint/utils";
-      version = "5.16.0";
+      version = "5.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.16.0.tgz";
-        sha512 = "iYej2ER6AwmejLWMWzJIHy3nPJeGDuCqf8Jnb+jAQVoPpmWzwQOfa9hWVB8GIQE5gsCv/rfN4T+AYb/V06WseQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.20.0.tgz";
+        sha512 = "lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==";
       };
     };
     "@typescript-eslint/visitor-keys-4.33.0" = {
@@ -10246,13 +10408,13 @@ let
         sha512 = "uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==";
       };
     };
-    "@typescript-eslint/visitor-keys-5.16.0" = {
+    "@typescript-eslint/visitor-keys-5.20.0" = {
       name = "_at_typescript-eslint_slash_visitor-keys";
       packageName = "@typescript-eslint/visitor-keys";
-      version = "5.16.0";
+      version = "5.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz";
-        sha512 = "jqxO8msp5vZDhikTwq9ubyMHqZ67UIvawohr4qF3KhlpL7gzSjOd+8471H3nh5LyABkaI85laEKKU8SnGUK5/g==";
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz";
+        sha512 = "1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==";
       };
     };
     "@ungap/promise-all-settled-1.1.2" = {
@@ -10282,31 +10444,31 @@ let
         sha1 = "c585c0bdb94210198945c6597e4fe23d6e63e084";
       };
     };
-    "@vercel/build-utils-2.15.0" = {
+    "@vercel/build-utils-2.15.1" = {
       name = "_at_vercel_slash_build-utils";
       packageName = "@vercel/build-utils";
-      version = "2.15.0";
+      version = "2.15.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-2.15.0.tgz";
-        sha512 = "0SwM19Mn//v5RuLG5gjuZVOnn1iYqJDMA+N0qm8cK7bTBEWMiTKqF+VmdXkvg6Y6X6rKviAJnOBUUUP6va6Xaw==";
+        url = "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-2.15.1.tgz";
+        sha512 = "7qwC7wd2Q/MwtD07/La5qIR5nfpfNVPvISp1cfwYs8fe/FUKjDdbhvGLDFrry+DeoeMFJhnJgK2qmvCnucq+GA==";
       };
     };
-    "@vercel/go-1.3.1" = {
+    "@vercel/go-1.3.2" = {
       name = "_at_vercel_slash_go";
       packageName = "@vercel/go";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/go/-/go-1.3.1.tgz";
-        sha512 = "mNo0DWfc49trswz53Gf0Km7KKdOW1zvlBEP6ZWhEhnEjRcNMHZaLg3dq3jWfttLaQ7ihJ+VOyDImd0NX23C42A==";
+        url = "https://registry.npmjs.org/@vercel/go/-/go-1.3.2.tgz";
+        sha512 = "SS2Iq5NSRrZBphWWX+HpdCf3ji4lUBs9JdLmuvn8anDreY68ubxo53LLTnVOXmzsnHE8G1CiQSNtOapeBxWYyQ==";
       };
     };
-    "@vercel/node-1.14.0" = {
+    "@vercel/node-1.14.1" = {
       name = "_at_vercel_slash_node";
       packageName = "@vercel/node";
-      version = "1.14.0";
+      version = "1.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/node/-/node-1.14.0.tgz";
-        sha512 = "UAb1qQMeTkSXz95yljJpz0MyTzcj++B/1XR0vKFZOs2CEfSkBO1DjzX6BkaKriaihBdbGM/X9UoMJfWfUBBn8Q==";
+        url = "https://registry.npmjs.org/@vercel/node/-/node-1.14.1.tgz";
+        sha512 = "/R1tERotQMTBoB4gw390B8wJAOS9IO4iejing9jqLFSISdW7uVU6kgkUbLM8OtuN0DGwi1qYQ6DcdxySX2qYzw==";
       };
     };
     "@vercel/node-bridge-2.2.0" = {
@@ -10318,22 +10480,22 @@ let
         sha512 = "ydYlZyIQfsuriF6qTt/F4vaAt+nb4ZKhLEl2o5AQFa5ED7LoPS5w01Xbujy+25pqS1ODu8/bsqOCUSX8y/+tSQ==";
       };
     };
-    "@vercel/python-2.2.1" = {
+    "@vercel/python-2.2.2" = {
       name = "_at_vercel_slash_python";
       packageName = "@vercel/python";
-      version = "2.2.1";
+      version = "2.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/python/-/python-2.2.1.tgz";
-        sha512 = "UxftYfkXX+e+5aQK8D3j+N0zb8ob4KFjdbLCnWLCMlxg0lJwD432zArgYgc0BSMrZrHqdiWMvPxIgKkad2takA==";
+        url = "https://registry.npmjs.org/@vercel/python/-/python-2.2.2.tgz";
+        sha512 = "08x3kzFTiWlY9lSRmIksm1gHzz9wrHoyv2w7DdOHAbueEGJTbbMoHNeBPWwQ7hLjfMhCM5JOMjezAz3Uw0kEJg==";
       };
     };
-    "@vercel/ruby-1.3.1" = {
+    "@vercel/ruby-1.3.2" = {
       name = "_at_vercel_slash_ruby";
       packageName = "@vercel/ruby";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/ruby/-/ruby-1.3.1.tgz";
-        sha512 = "stdlKpBUgQT/AxLz+xFpIy2m8xYr7nOA+hjq+MprktWu4RsyIeltSYX49Ju7DNPXdHxyAWxW6tnVENNvh1SOxA==";
+        url = "https://registry.npmjs.org/@vercel/ruby/-/ruby-1.3.2.tgz";
+        sha512 = "SAC1+wHT60IvAJ4CBLylnCZYF7nO7xtvIhO3NL1O4WBMRNgep5oewDNgxIQ/6XzGEymPijI4FP2tBHQ3v557nQ==";
       };
     };
     "@vscode/emmet-helper-2.8.4" = {
@@ -10453,22 +10615,22 @@ let
         sha512 = "KmJUazIEZWhy0UaFHV5Uy8AXpTqJgCPizEHhtxs3f8mIkUnwWjcQFG7FGfsAW7RgsN8hwcSZ5ZFjmXhllVwrkw==";
       };
     };
-    "@vue/compiler-core-3.2.31" = {
+    "@vue/compiler-core-3.2.33" = {
       name = "_at_vue_slash_compiler-core";
       packageName = "@vue/compiler-core";
-      version = "3.2.31";
+      version = "3.2.33";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.31.tgz";
-        sha512 = "aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==";
+        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.33.tgz";
+        sha512 = "AAmr52ji3Zhk7IKIuigX2osWWsb2nQE5xsdFYjdnmtQ4gymmqXbjLvkSE174+fF3A3kstYrTgGkqgOEbsdLDpw==";
       };
     };
-    "@vue/compiler-dom-3.2.31" = {
+    "@vue/compiler-dom-3.2.33" = {
       name = "_at_vue_slash_compiler-dom";
       packageName = "@vue/compiler-dom";
-      version = "3.2.31";
+      version = "3.2.33";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz";
-        sha512 = "60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==";
+        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.33.tgz";
+        sha512 = "GhiG1C8X98Xz9QUX/RlA6/kgPBWJkjq0Rq6//5XTAGSYrTMBgcLpP9+CnlUg1TFxnnCVughAG+KZl28XJqw8uQ==";
       };
     };
     "@vue/component-compiler-utils-3.3.0" = {
@@ -10507,13 +10669,13 @@ let
         sha512 = "LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ==";
       };
     };
-    "@vue/shared-3.2.31" = {
+    "@vue/shared-3.2.33" = {
       name = "_at_vue_slash_shared";
       packageName = "@vue/shared";
-      version = "3.2.31";
+      version = "3.2.33";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.2.31.tgz";
-        sha512 = "ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==";
+        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.2.33.tgz";
+        sha512 = "UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg==";
       };
     };
     "@vue/web-component-wrapper-1.3.0" = {
@@ -11074,13 +11236,13 @@ let
         sha512 = "V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==";
       };
     };
-    "@xmldom/xmldom-0.8.1" = {
+    "@xmldom/xmldom-0.8.2" = {
       name = "_at_xmldom_slash_xmldom";
       packageName = "@xmldom/xmldom";
-      version = "0.8.1";
+      version = "0.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.1.tgz";
-        sha512 = "4wOae+5N2RZ+CZXd9ZKwkaDi55IxrSTOjHpxTvQQ4fomtOJmqVxbmICA9jE1jvnqNhpfgz8cnfFagG86wV/xLQ==";
+        url = "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.2.tgz";
+        sha512 = "+R0juSseERyoPvnBQ/cZih6bpF7IpCXlWbHRoCRzYzqpz6gWHOgf8o4MOEf6KBVuOyqU+gCNLkCWVIJAro8XyQ==";
       };
     };
     "@xmpp/base64-0.13.1" = {
@@ -11443,13 +11605,13 @@ let
         sha1 = "5faad9c2c07f60dd76770f71cf025b62a63cfd4e";
       };
     };
-    "abab-2.0.5" = {
+    "abab-2.0.6" = {
       name = "abab";
       packageName = "abab";
-      version = "2.0.5";
+      version = "2.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz";
-        sha512 = "9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==";
+        url = "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz";
+        sha512 = "j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==";
       };
     };
     "abbrev-1.1.1" = {
@@ -12622,13 +12784,13 @@ let
         sha512 = "y8H99NExU1Sk4TvcaUxTdzfq2SZo6uSj5dyh75XSQvbpH6gdAXIW9MaBcvlNC7n0cVPsidHmOcHOWxJ/pTXGjA==";
       };
     };
-    "apollo-graphql-0.9.5" = {
+    "apollo-graphql-0.9.6" = {
       name = "apollo-graphql";
       packageName = "apollo-graphql";
-      version = "0.9.5";
+      version = "0.9.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.9.5.tgz";
-        sha512 = "RGt5k2JeBqrmnwRM0VOgWFiGKlGJMfmiif/4JvdaEqhMJ+xqe/9cfDYzXfn33ke2eWixsAbjEbRfy8XbaN9nTw==";
+        url = "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.9.6.tgz";
+        sha512 = "CrqJxZwfu/U5x0bYYPPluwu1G+oC3jjKFK/EVn9CDcpi4+yD9rAYko/h1iUB5A6VRQhA4Boluc7QexMYQ2tCng==";
       };
     };
     "apollo-link-1.2.1" = {
@@ -12748,6 +12910,15 @@ let
         sha1 = "2af5c2b544a40e15fc1ac55548314397460845d0";
       };
     };
+    "app-path-3.3.0" = {
+      name = "app-path";
+      packageName = "app-path";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/app-path/-/app-path-3.3.0.tgz";
+        sha512 = "EAgEXkdcxH1cgEePOSsmUtw9ItPl0KTxnh/pj9ZbhvbKbij9x0oX6PWpGnorDr0DS5AosLgoa5n3T/hZmKQpYA==";
+      };
+    };
     "app-root-path-3.0.0" = {
       name = "app-root-path";
       packageName = "app-root-path";
@@ -12901,13 +13072,13 @@ let
         sha512 = "5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==";
       };
     };
-    "archiver-5.3.0" = {
+    "archiver-5.3.1" = {
       name = "archiver";
       packageName = "archiver";
-      version = "5.3.0";
+      version = "5.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/archiver/-/archiver-5.3.0.tgz";
-        sha512 = "iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==";
+        url = "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz";
+        sha512 = "8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==";
       };
     };
     "archiver-utils-2.1.0" = {
@@ -13135,6 +13306,15 @@ let
         sha1 = "3a77345ffc1cf35e2a91825601f9e58f2e24cac4";
       };
     };
+    "arr-rotate-1.0.0" = {
+      name = "arr-rotate";
+      packageName = "arr-rotate";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arr-rotate/-/arr-rotate-1.0.0.tgz";
+        sha512 = "yOzOZcR9Tn7enTF66bqKorGGH0F36vcPaSWg8fO0c0UYb3LX3VMXj5ZxEqQLNOecAhlRJ7wYZja5i4jTlnbIfQ==";
+      };
+    };
     "arr-union-2.1.0" = {
       name = "arr-union";
       packageName = "arr-union";
@@ -13486,13 +13666,13 @@ let
         sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
       };
     };
-    "array.prototype.find-2.1.2" = {
+    "array.prototype.find-2.2.0" = {
       name = "array.prototype.find";
       packageName = "array.prototype.find";
-      version = "2.1.2";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.1.2.tgz";
-        sha512 = "00S1O4ewO95OmmJW7EesWfQlrCrLEL8kZ40w3+GkLX2yTt0m2ggcePPa2uHPJ9KUmJvwRq+lCV9bD8Yim23x/Q==";
+        url = "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.2.0.tgz";
+        sha512 = "sn40qmUiLYAcRb/1HsIQjTTZ1kCy8II8VtZJpMn2Aoen9twULhbWXisfh3HimGqMlHGUul0/TfKCnXg42LuPpQ==";
       };
     };
     "arraybuffer.slice-0.0.6" = {
@@ -13873,22 +14053,13 @@ let
         sha512 = "xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==";
       };
     };
-    "async-2.6.3" = {
-      name = "async";
-      packageName = "async";
-      version = "2.6.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-2.6.3.tgz";
-        sha512 = "zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==";
-      };
-    };
-    "async-3.2.2" = {
+    "async-2.6.4" = {
       name = "async";
       packageName = "async";
-      version = "3.2.2";
+      version = "2.6.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-3.2.2.tgz";
-        sha512 = "H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==";
+        url = "https://registry.npmjs.org/async/-/async-2.6.4.tgz";
+        sha512 = "mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==";
       };
     };
     "async-3.2.3" = {
@@ -13954,6 +14125,15 @@ let
         sha512 = "gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg==";
       };
     };
+    "async-iter-stream-1.2.0" = {
+      name = "async-iter-stream";
+      packageName = "async-iter-stream";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async-iter-stream/-/async-iter-stream-1.2.0.tgz";
+        sha1 = "91afbe5e9a7714fd1dd63d4a8dcb1284a3f72826";
+      };
+    };
     "async-limiter-1.0.1" = {
       name = "async-limiter";
       packageName = "async-limiter";
@@ -14044,22 +14224,22 @@ let
         sha1 = "1e762817d849ce44bfac07925a42036787061b15";
       };
     };
-    "asyncjs-util-1.2.7" = {
+    "asyncjs-util-1.2.8" = {
       name = "asyncjs-util";
       packageName = "asyncjs-util";
-      version = "1.2.7";
+      version = "1.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/asyncjs-util/-/asyncjs-util-1.2.7.tgz";
-        sha512 = "+NoBU9in09GHOWgRv+HhF3kDxqgJ6KowRA7xwHZKxajnh+ybBJhp24i2nOyulZtpdn+4eyrfLvTD6VoRk7TWyQ==";
+        url = "https://registry.npmjs.org/asyncjs-util/-/asyncjs-util-1.2.8.tgz";
+        sha512 = "wUcEKoAxBWWNE1wXkoIvIyM1vVDfvItYXANYTgwemeRL8FgV6z70XdLGLBMty0WiQSub0fBuKIyF+Hz3DCahOg==";
       };
     };
-    "asyncjs-util-1.2.8" = {
+    "asyncjs-util-1.2.9" = {
       name = "asyncjs-util";
       packageName = "asyncjs-util";
-      version = "1.2.8";
+      version = "1.2.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/asyncjs-util/-/asyncjs-util-1.2.8.tgz";
-        sha512 = "wUcEKoAxBWWNE1wXkoIvIyM1vVDfvItYXANYTgwemeRL8FgV6z70XdLGLBMty0WiQSub0fBuKIyF+Hz3DCahOg==";
+        url = "https://registry.npmjs.org/asyncjs-util/-/asyncjs-util-1.2.9.tgz";
+        sha512 = "U9imS8ehJA6DPNdBdvoLcIRDFh7yzI9J93CC8/2obk8gUSIy8KKhmCqYe+3NlISJhxLLi8aWmVL1Gkb3dz1xhg==";
       };
     };
     "asynckit-0.4.0" = {
@@ -14242,13 +14422,22 @@ let
         sha512 = "fChMDiSfWcW0EUWmiqlyc+VAIXKH0w7BBruL3cVWSwO+5oA5A9juGF4NCBV2/KAHzaKaG0hXKPE49Wh6Lq74ag==";
       };
     };
-    "aws-sdk-2.1101.0" = {
+    "aws-sdk-2.1117.0" = {
+      name = "aws-sdk";
+      packageName = "aws-sdk";
+      version = "2.1117.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1117.0.tgz";
+        sha512 = "MBSEiLLlj8ULr8na118m44M2VvTlkyaw13J3rcHOlMSbuB2DpXBZTs2dJylFWv2szaOOSsUTo8vmc+pRJHC+Aw==";
+      };
+    };
+    "aws-sdk-2.1118.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.1101.0";
+      version = "2.1118.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1101.0.tgz";
-        sha512 = "7lyVb7GXGl8yyu954Qxf6vU6MrcgFlmKyTLBVXJyo3Phn1OB+qOExA55WtSC6gQiQ7e5TeWOn1RUHLg30ywTBA==";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1118.0.tgz";
+        sha512 = "R3g06c4RC0Gz/lwMA7wgC7+FwYf5vaO30sPIigoX5m6Tfb7tdzfCYD7pnpvkPRNUvWJ3f5kQk+pEeW25DstRrQ==";
       };
     };
     "aws-sign2-0.6.0" = {
@@ -14476,13 +14665,13 @@ let
         sha512 = "7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==";
       };
     };
-    "babel-loader-8.2.4" = {
+    "babel-loader-8.2.5" = {
       name = "babel-loader";
       packageName = "babel-loader";
-      version = "8.2.4";
+      version = "8.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.4.tgz";
-        sha512 = "8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==";
+        url = "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz";
+        sha512 = "OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==";
       };
     };
     "babel-plugin-dynamic-import-node-2.3.3" = {
@@ -14656,13 +14845,13 @@ let
         sha512 = "Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==";
       };
     };
-    "babel-plugin-styled-components-2.0.6" = {
+    "babel-plugin-styled-components-2.0.7" = {
       name = "babel-plugin-styled-components";
       packageName = "babel-plugin-styled-components";
-      version = "2.0.6";
+      version = "2.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.6.tgz";
-        sha512 = "Sk+7o/oa2HfHv3Eh8sxoz75/fFvEdHsXV4grdeHufX0nauCmymlnN0rGhIvfpMQSJMvGutJ85gvCGea4iqmDpg==";
+        url = "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz";
+        sha512 = "i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA==";
       };
     };
     "babel-plugin-syntax-flow-6.18.0" = {
@@ -15493,13 +15682,13 @@ let
         sha1 = "dd3a862b2fedf66fee8471320069428d0d84427a";
       };
     };
-    "bin-links-3.0.0" = {
+    "bin-links-3.0.1" = {
       name = "bin-links";
       packageName = "bin-links";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bin-links/-/bin-links-3.0.0.tgz";
-        sha512 = "fC7kPWcEkAWBgCKxmAMqZldlIeHsXwQy9JXzrppAVQiukGiDKxmYesJcBKWu6UMwx/5GOfo10wtK/4zy+Xt/mg==";
+        url = "https://registry.npmjs.org/bin-links/-/bin-links-3.0.1.tgz";
+        sha512 = "9vx+ypzVhASvHTS6K+YSGf7nwQdANoz7v6MTC0aCtYnOEZ87YvMf81aY737EZnGZdpbRM3sfWjO9oWkKmuIvyQ==";
       };
     };
     "bin-version-3.1.0" = {
@@ -15682,13 +15871,13 @@ let
         sha512 = "O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==";
       };
     };
-    "bipf-1.5.5" = {
+    "bipf-1.6.2" = {
       name = "bipf";
       packageName = "bipf";
-      version = "1.5.5";
+      version = "1.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bipf/-/bipf-1.5.5.tgz";
-        sha512 = "sGJPBMy5GUBXhmc50TX+LdBXpU6oTR/lkxwbU98GzA2XdmcDK2rmPxcH6NWMtbRO5sv9LhBDrmCxR89HPZsRuQ==";
+        url = "https://registry.npmjs.org/bipf/-/bipf-1.6.2.tgz";
+        sha512 = "Bp6Wo3VVrsVxGwXuRuzca78mYxyTHs0MJz1cZRNhEJPb1KBh7J/2k5ixG35qmDyKscJeCM8+wx20lvBN26ueCg==";
       };
     };
     "bit-field-1.5.3" = {
@@ -15718,15 +15907,6 @@ let
         sha512 = "5DcLxGUDejgNBYcieMIUfjORtUeNWl828VWLHJGVKZCb4zIS1oOySTUr0LGmcqJBQgTBz3bGbRQla4FgrdQEIQ==";
       };
     };
-    "bitcoinjs-lib-6.0.0" = {
-      name = "bitcoinjs-lib";
-      packageName = "bitcoinjs-lib";
-      version = "6.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-6.0.0.tgz";
-        sha512 = "KYx81rVE4LDbZcHfE375NCX4CDeZuz7HECZm/KAmqKMY2jpD3ZcUnI7Fm+QX5EMF/xmtzzfrNL/BNxo8o0iOQg==";
-      };
-    };
     "bitcoinjs-lib-6.0.1" = {
       name = "bitcoinjs-lib";
       packageName = "bitcoinjs-lib";
@@ -16195,31 +16375,31 @@ let
         sha512 = "SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==";
       };
     };
-    "bolt01-1.2.3" = {
+    "body-parser-1.20.0" = {
+      name = "body-parser";
+      packageName = "body-parser";
+      version = "1.20.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz";
+        sha512 = "DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==";
+      };
+    };
+    "bolt01-1.2.4" = {
       name = "bolt01";
       packageName = "bolt01";
-      version = "1.2.3";
+      version = "1.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bolt01/-/bolt01-1.2.3.tgz";
-        sha512 = "zEvNSymgMeMMeFwWmwpklFoN/OJA3YO/pVgFTBV3TVq5ulfS0+mVKEGfeInEQESoaSVK1dsVPGr2RLD22uH/aQ==";
+        url = "https://registry.npmjs.org/bolt01/-/bolt01-1.2.4.tgz";
+        sha512 = "384VACEF6DSao3ffTeD19rgsaYXIQ1UtHUSZf2KAKRYe0i4Amu05E7aNRzymNAB9VapL3nCu5ehR130InCRFCA==";
       };
     };
-    "bolt03-1.2.13" = {
+    "bolt03-1.2.14" = {
       name = "bolt03";
       packageName = "bolt03";
-      version = "1.2.13";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bolt03/-/bolt03-1.2.13.tgz";
-        sha512 = "7KfDXG9JsWwMWZxYSYkP9Ga9vC3JQHvEcIZio4m/edNPAvgSiUCadNPaEjUI9gGeGaRa1RatYg33arBKr4Y3+A==";
-      };
-    };
-    "bolt07-1.7.4" = {
-      name = "bolt07";
-      packageName = "bolt07";
-      version = "1.7.4";
+      version = "1.2.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bolt07/-/bolt07-1.7.4.tgz";
-        sha512 = "y82Na9vEBY+rqjJhjYMFAch70nWvbL5OiEPFqNf7cGTtQfG7g/Vui2KnemrX1mxEw2SgccF+Rn1NSRm9HFtu3w==";
+        url = "https://registry.npmjs.org/bolt03/-/bolt03-1.2.14.tgz";
+        sha512 = "LhBa/3hqtSY7fBgE4FzoJXNPtE1tzxEfuWc32LQXNAwvgeWJP3tlQtNqhfPwfDFflSIysSe5N/yK/ybgd/oniA==";
       };
     };
     "bolt07-1.8.0" = {
@@ -16231,13 +16411,13 @@ let
         sha512 = "UJq+p94UK9QsU3P1npJyWF3r8TuJd6kv6P4m656VQK/m5ifw0bWCkYF0ngcHbFGq3j8u3gP8/tkGtB8WwPPRbQ==";
       };
     };
-    "bolt09-0.2.0" = {
-      name = "bolt09";
-      packageName = "bolt09";
-      version = "0.2.0";
+    "bolt07-1.8.1" = {
+      name = "bolt07";
+      packageName = "bolt07";
+      version = "1.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bolt09/-/bolt09-0.2.0.tgz";
-        sha512 = "s6QWo7qqu6fKGLISGMSG+vFxIRzeUT3KQHDiHpvhflyI3TQD6zdaMu4fEpP7PoyMFJt2Ve26SBvvRP3MM7V0bw==";
+        url = "https://registry.npmjs.org/bolt07/-/bolt07-1.8.1.tgz";
+        sha512 = "vgh796VOdJBunZZZX0YuW1DmkS9SbW93rCLPOmWPsAHS/mStEs4+5d0KM1bYX6QBHshY9ecg4kgJaB18jrZsIA==";
       };
     };
     "bolt09-0.2.1" = {
@@ -16258,6 +16438,15 @@ let
         sha512 = "m533YWZ/R/p1buxEK/19v94Ay1vS1PJNwfP30BCVj6l96NGpOa9t40HYuMpoX+xFYwOx8kZs+GGTb9TbJund0w==";
       };
     };
+    "bolt09-0.2.3" = {
+      name = "bolt09";
+      packageName = "bolt09";
+      version = "0.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bolt09/-/bolt09-0.2.3.tgz";
+        sha512 = "xEt5GE6pXB8wMIWHAoyF28k0Yt2rFqIou1LCyIeNadAOQhu/F7GTjZwreFwLl07YYkhOH23avewRt5PD8JnKKg==";
+      };
+    };
     "bonjour-3.5.0" = {
       name = "bonjour";
       packageName = "bonjour";
@@ -16267,6 +16456,15 @@ let
         sha1 = "8e890a183d8ee9a2393b3844c691a42bcf7bc9f5";
       };
     };
+    "bonjour-service-1.0.11" = {
+      name = "bonjour-service";
+      packageName = "bonjour-service";
+      version = "1.0.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.11.tgz";
+        sha512 = "drMprzr2rDTCtgEE3VgdA9uUFaUHF+jXduwYSThHJnKMYM+FhI9Z3ph+TX3xy0LtgYHae6CHYPJ/2UnK8nQHcA==";
+      };
+    };
     "boolbase-1.0.0" = {
       name = "boolbase";
       packageName = "boolbase";
@@ -16474,15 +16672,6 @@ let
         sha512 = "z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==";
       };
     };
-    "bplist-parser-0.3.0" = {
-      name = "bplist-parser";
-      packageName = "bplist-parser";
-      version = "0.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.0.tgz";
-        sha512 = "zgmaRvT6AN1JpPPV+S0a1/FAtoxSreYDccZGIqEMSvZl9DMe70mJ7MFzpxa1X+gHVdkToE2haRUHHMiW1OdejA==";
-      };
-    };
     "bplist-parser-0.3.1" = {
       name = "bplist-parser";
       packageName = "bplist-parser";
@@ -16870,13 +17059,13 @@ let
         sha512 = "66UkjoB9f7lhT+WKgYq8MQa6nkr96mlX64JYMlIsXe/X4VeqNwvsx7UOE3ZqD6lkwg8GvBhapRTWj0qWO3Pw8w==";
       };
     };
-    "bson-4.6.2" = {
+    "bson-4.6.3" = {
       name = "bson";
       packageName = "bson";
-      version = "4.6.2";
+      version = "4.6.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bson/-/bson-4.6.2.tgz";
-        sha512 = "VeJKHShcu1b/ugl0QiujlVuBepab714X9nNyBdA1kfekuDGecxgpTA2Z6nYbagrWFeiIyzSWIOzju3lhj+RNyQ==";
+        url = "https://registry.npmjs.org/bson/-/bson-4.6.3.tgz";
+        sha512 = "rAqP5hcUVJhXP2MCSNVsf0oM2OGU1So6A9pVRDYayvJ5+hygXHQApf87wd5NlhPM1J9RJnbqxIG/f8QTzRoQ4A==";
       };
     };
     "btc-rpc-client-git://github.com/btc21/btc-rpc-client" = {
@@ -17096,15 +17285,6 @@ let
         sha512 = "c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==";
       };
     };
-    "buffer-from-1.1.1" = {
-      name = "buffer-from";
-      packageName = "buffer-from";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz";
-        sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==";
-      };
-    };
     "buffer-from-1.1.2" = {
       name = "buffer-from";
       packageName = "buffer-from";
@@ -17285,6 +17465,15 @@ let
         sha512 = "1bPRZQtmKaO6h7qV1YHXNtr6nCK28k0Zo95KM4dXfILcZZwoHJBN1m3lfLv9LPkcOZlrSr+J1bzMaZFO98Yq0w==";
       };
     };
+    "builtins-5.0.1" = {
+      name = "builtins";
+      packageName = "builtins";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz";
+        sha512 = "qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==";
+      };
+    };
     "bulk-write-stream-1.1.4" = {
       name = "bulk-write-stream";
       packageName = "bulk-write-stream";
@@ -17357,13 +17546,13 @@ let
         sha512 = "y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==";
       };
     };
-    "busboy-1.5.0" = {
+    "busboy-1.6.0" = {
       name = "busboy";
       packageName = "busboy";
-      version = "1.5.0";
+      version = "1.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/busboy/-/busboy-1.5.0.tgz";
-        sha512 = "bTXFtUV/DkvfwzHD7yjAkRK5/F3RuF2Ab/qWvf5plbHZMSCea8mxOdqMj8tG1PoSNj/Qi0cb3IoRPEj6qXAGgw==";
+        url = "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz";
+        sha512 = "8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==";
       };
     };
     "bval-0.1.6" = {
@@ -17510,13 +17699,13 @@ let
         sha512 = "VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==";
       };
     };
-    "cacache-16.0.3" = {
+    "cacache-16.0.4" = {
       name = "cacache";
       packageName = "cacache";
-      version = "16.0.3";
+      version = "16.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cacache/-/cacache-16.0.3.tgz";
-        sha512 = "eC7wYodNCVb97kuHGk5P+xZsvUJHkhSEOyNwkenqQPAsOtrTjvWOE5vSPNBpz9d8X3acIf6w2Ub5s4rvOCTs4g==";
+        url = "https://registry.npmjs.org/cacache/-/cacache-16.0.4.tgz";
+        sha512 = "U0D4wF3/W8ZgK4qDA5fTtOVSr0gaDfd5aa7tUdAV0uukVWKsAIn6SzXQCoVlg7RWZiJa+bcsM3/pXLumGaL2Ug==";
       };
     };
     "cache-base-1.0.1" = {
@@ -17582,15 +17771,6 @@ let
         sha512 = "2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==";
       };
     };
-    "cacheable-lookup-6.0.4" = {
-      name = "cacheable-lookup";
-      packageName = "cacheable-lookup";
-      version = "6.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.0.4.tgz";
-        sha512 = "mbcDEZCkv2CZF4G01kr8eBd/5agkt9oCqz75tJMSIsquvRZ2sL6Hi5zGVKi/0OSC9oO1GHfJ2AV0ZIOY9vye0A==";
-      };
-    };
     "cacheable-request-2.1.4" = {
       name = "cacheable-request";
       packageName = "cacheable-request";
@@ -17915,13 +18095,13 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001320" = {
+    "caniuse-lite-1.0.30001332" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001320";
+      version = "1.0.30001332";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001320.tgz";
-        sha512 = "MWPzG54AGdo3nWx7zHZTefseM5Y1ccM7hlQKHRqJkPozUaw3hNbBTMmLn16GG2FUzjR13Cr3NPfhIieX5PzXDA==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz";
+        sha512 = "10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==";
       };
     };
     "canvas-2.9.1" = {
@@ -18077,31 +18257,31 @@ let
         sha512 = "eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==";
       };
     };
-    "cdk8s-1.5.52" = {
+    "cdk8s-1.5.74" = {
       name = "cdk8s";
       packageName = "cdk8s";
-      version = "1.5.52";
+      version = "1.5.74";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-1.5.52.tgz";
-        sha512 = "xqVD2lUGC3JJC1Zl2YWDop5xcJRl0OT91PAkT7qrWO5Xho4cz3B3NA3Cua4Q7bcLQViL7CeRdH4d9zL9mJmuMw==";
+        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-1.5.74.tgz";
+        sha512 = "K1TXGzi5xvIUUTPy6v6T+SuJ5uu45lrysD6oEP9XRKW0xoTpDIFtl0czpUHKUq5qVbadWYeaNB1keVrGwW1aYg==";
       };
     };
-    "cdk8s-plus-22-1.0.0-beta.158" = {
+    "cdk8s-plus-22-1.0.0-beta.198" = {
       name = "cdk8s-plus-22";
       packageName = "cdk8s-plus-22";
-      version = "1.0.0-beta.158";
+      version = "1.0.0-beta.198";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdk8s-plus-22/-/cdk8s-plus-22-1.0.0-beta.158.tgz";
-        sha512 = "//RAiob+IkkJxMtt2GhLUIchljTjdwkfPSqC+R3scZLtDM1yPlyN1u5qKp/3C6anm2nKtw96zAENpqzfXdZasw==";
+        url = "https://registry.npmjs.org/cdk8s-plus-22/-/cdk8s-plus-22-1.0.0-beta.198.tgz";
+        sha512 = "mn/DmJzE+UAIaGJo/aCLryGRCi0Q9TZVgtgHk5eieiuw13zQEPHE4KIJYTik339qFNrP92x1mdmU16WR6fEZSg==";
       };
     };
-    "cdktf-0.9.4" = {
+    "cdktf-0.10.2" = {
       name = "cdktf";
       packageName = "cdktf";
-      version = "0.9.4";
+      version = "0.10.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.9.4.tgz";
-        sha512 = "CuTCNVV3Goptnq3daPVfs9boODEoIrjy09XAj9nkApcozgidPkNIkDcaJCo/7q3rxnoblsK9u2nj6CDUB8cTIg==";
+        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.10.2.tgz";
+        sha512 = "10xEr/mlm7RMJ0mvKPgMiUqjGlQAlSWcdymjDu1nFqJAPPShGlbzKtvwQT4LJ+HBTafMc/E04wnRdxFBxV1Rkg==";
       };
     };
     "center-align-0.1.3" = {
@@ -18491,13 +18671,13 @@ let
         sha512 = "0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==";
       };
     };
-    "cheerio-select-1.5.0" = {
+    "cheerio-select-1.6.0" = {
       name = "cheerio-select";
       packageName = "cheerio-select";
-      version = "1.5.0";
+      version = "1.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.5.0.tgz";
-        sha512 = "qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg==";
+        url = "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz";
+        sha512 = "eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==";
       };
     };
     "chevrotain-4.1.1" = {
@@ -18878,13 +19058,13 @@ let
         sha512 = "EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==";
       };
     };
-    "clean-css-5.2.4" = {
+    "clean-css-5.3.0" = {
       name = "clean-css";
       packageName = "clean-css";
-      version = "5.2.4";
+      version = "5.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz";
-        sha512 = "nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg==";
+        url = "https://registry.npmjs.org/clean-css/-/clean-css-5.3.0.tgz";
+        sha512 = "YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==";
       };
     };
     "clean-git-ref-2.0.1" = {
@@ -18977,13 +19157,13 @@ let
         sha512 = "xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w==";
       };
     };
-    "cli-color-2.0.1" = {
+    "cli-color-2.0.2" = {
       name = "cli-color";
       packageName = "cli-color";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-color/-/cli-color-2.0.1.tgz";
-        sha512 = "eBbxZF6fqPUNnf7CLAFOersUnyYzv83tHFLSlts+OAHsNendaqv2tHCq+/MO+b3Y+9JeoUlIvobyxG/Z8GNeOg==";
+        url = "https://registry.npmjs.org/cli-color/-/cli-color-2.0.2.tgz";
+        sha512 = "g4JYjrTW9MGtCziFNjkqp3IMpGhnJyeB0lOtRPjQkYhXzKYr6tYnXKyEVnMzITxhpbahsEW9KsxOYIDKwcsIBw==";
       };
     };
     "cli-cursor-1.0.2" = {
@@ -19049,13 +19229,13 @@ let
         sha512 = "kLORQrhYCAtUPLZxqsAt2YJGOvRdt34+O6jl5cQGb7iF3dM55FQZlTR+rQyIK9JUcO9bBMwZsTlND+3dmFU2Cw==";
       };
     };
-    "cli-progress-footer-2.3.0" = {
+    "cli-progress-footer-2.3.1" = {
       name = "cli-progress-footer";
       packageName = "cli-progress-footer";
-      version = "2.3.0";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-progress-footer/-/cli-progress-footer-2.3.0.tgz";
-        sha512 = "xJl+jqvdsE0Gjh5tKoLzZrQS4nPHC+yzeitgq2faAZiHl+/Peuwzoy5Sed6EBkm8JNrPk7W4U3YNVO/uxoqOFg==";
+        url = "https://registry.npmjs.org/cli-progress-footer/-/cli-progress-footer-2.3.1.tgz";
+        sha512 = "urD1hiEIQeZadVABtW5ExM8wse1phnmz15oJ4QEe46GQN87v1VBa0lZQ7gXkPELMzP6At4VY6v07baAiyztulw==";
       };
     };
     "cli-spinner-0.2.10" = {
@@ -19121,6 +19301,15 @@ let
         sha512 = "w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==";
       };
     };
+    "cli-table3-0.6.2" = {
+      name = "cli-table3";
+      packageName = "cli-table3";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz";
+        sha512 = "QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==";
+      };
+    };
     "cli-tableau-2.0.1" = {
       name = "cli-tableau";
       packageName = "cli-tableau";
@@ -19517,6 +19706,15 @@ let
         sha512 = "lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw==";
       };
     };
+    "cmd-shim-5.0.0" = {
+      name = "cmd-shim";
+      packageName = "cmd-shim";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cmd-shim/-/cmd-shim-5.0.0.tgz";
+        sha512 = "qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==";
+      };
+    };
     "cmdln-3.2.1" = {
       name = "cmdln";
       packageName = "cmdln";
@@ -19670,13 +19868,13 @@ let
         sha512 = "3WQV/Fpa77nvzjUlc+0u53uIroJyyMB2Qwl++aXpAiDIsrsiAQq4uCURwdRBRX+eLkOTIAmT0L4qna3T7+2pUg==";
       };
     };
-    "codemaker-1.55.1" = {
+    "codemaker-1.57.0" = {
       name = "codemaker";
       packageName = "codemaker";
-      version = "1.55.1";
+      version = "1.57.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.55.1.tgz";
-        sha512 = "W0MZSFgqfr9mgKbYLHsTNYTMKiXQE9hDHs6qke5dC5S9ZlFgcWG2zdpznknwvPLDDuWP8Z5QL71MjAM21hEPOg==";
+        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.57.0.tgz";
+        sha512 = "M2/8sfQxQ9IkN2tsbOIwHn9U6KqG/mCRsg14muK8HIZH5oqjgc8Ucfqboqlrye8+9kyuQLieIhABiRV2gqeEDg==";
       };
     };
     "codepage-1.4.0" = {
@@ -20183,13 +20381,13 @@ let
         sha512 = "JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==";
       };
     };
-    "commander-9.1.0" = {
+    "commander-9.2.0" = {
       name = "commander";
       packageName = "commander";
-      version = "9.1.0";
+      version = "9.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/commander/-/commander-9.1.0.tgz";
-        sha512 = "i0/MaqBtdbnJ4XQs4Pmyb+oFQl+q0lsAmokVUH92SlSw4fkeAcG3bVon+Qt7hmtF+u3Het6o4VgrcY3qAoEB6w==";
+        url = "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz";
+        sha512 = "e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==";
       };
     };
     "commandpost-1.4.0" = {
@@ -20390,6 +20588,15 @@ let
         sha1 = "8a47901700238e4fc32269771230226f24b415a9";
       };
     };
+    "compress-brotli-1.3.6" = {
+      name = "compress-brotli";
+      packageName = "compress-brotli";
+      version = "1.3.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.6.tgz";
+        sha512 = "au99/GqZtUtiCBliqLFbWlhnCxn+XSYjwZ77q6mKN4La4qOXDoLVPZ50iXr0WmAyMxl8yqoq3Yq4OeQNPPkyeQ==";
+      };
+    };
     "compress-commons-2.1.1" = {
       name = "compress-commons";
       packageName = "compress-commons";
@@ -20471,13 +20678,13 @@ let
         sha512 = "bzlVWS2THbMetHqXKB8ypsXN4DQ/1qopGwNJi1eYbpwesJcd86FBjFciCQX/YwAhp9bM7NVnPFqZ5LpV7gP0Dg==";
       };
     };
-    "conf-10.1.1" = {
+    "conf-10.1.2" = {
       name = "conf";
       packageName = "conf";
-      version = "10.1.1";
+      version = "10.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conf/-/conf-10.1.1.tgz";
-        sha512 = "z2civwq/k8TMYtcn3SVP0Peso4otIWnHtcTuHhQ0zDZDdP4NTxqEc8owfkz4zBsdMYdn/LFcE+ZhbCeqkhtq3Q==";
+        url = "https://registry.npmjs.org/conf/-/conf-10.1.2.tgz";
+        sha512 = "o9Fv1Mv+6A0JpoayQ8JleNp3hhkbOJP/Re/Q+QqxMPHPkABVsRjQGWZn9A5GcqLiTNC6d89p2PB5ZhHVDSMwyg==";
       };
     };
     "conf-6.2.4" = {
@@ -20723,22 +20930,22 @@ let
         sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
       };
     };
-    "constructs-10.0.97" = {
+    "constructs-10.0.120" = {
       name = "constructs";
       packageName = "constructs";
-      version = "10.0.97";
+      version = "10.0.120";
       src = fetchurl {
-        url = "https://registry.npmjs.org/constructs/-/constructs-10.0.97.tgz";
-        sha512 = "2193Y3iDLY9sYCd89eb4TfjeDN+oD5ocl5d1LRnbGwlmvMe2fWqd9i84ET6K8K/PXBPSTyRQghnpw+Smn8b9vA==";
+        url = "https://registry.npmjs.org/constructs/-/constructs-10.0.120.tgz";
+        sha512 = "dsWux+1mygizUSKu43FHMGdh/m+KX4vt7sXKlb5VwRTkuebEoPu7QGIeV866PfnCgtCZmKbX77hyfMkRqh/0Gg==";
       };
     };
-    "constructs-3.3.250" = {
+    "constructs-3.3.273" = {
       name = "constructs";
       packageName = "constructs";
-      version = "3.3.250";
+      version = "3.3.273";
       src = fetchurl {
-        url = "https://registry.npmjs.org/constructs/-/constructs-3.3.250.tgz";
-        sha512 = "D1817bciQBs1xFEx1+Yh0ynd4GmrrjNPo93Z3Q8H+bxHBfRN00xSCfgDHttv+dk+6UEA43eYaI4SNYbmfSj2gQ==";
+        url = "https://registry.npmjs.org/constructs/-/constructs-3.3.273.tgz";
+        sha512 = "8OAOd3if32Jnqc//G7DkfnSxaqKx8vfENYShhoUI1eg1Uw9MWvs8Q6g8FbRABmBO8ESRzc/xljDA217j2xzqYw==";
       };
     };
     "consume-http-header-1.0.0" = {
@@ -21336,31 +21543,31 @@ let
         sha512 = "YUdI3fFu4TF/2WykQ2xzSiTQdldLB4KVuL9WeAy5XONZYt5Cun/fpQvctoKbCgvPhmzADeesTk/j2Rdx77AcKQ==";
       };
     };
-    "core-js-3.21.1" = {
+    "core-js-3.22.1" = {
       name = "core-js";
       packageName = "core-js";
-      version = "3.21.1";
+      version = "3.22.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz";
-        sha512 = "FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==";
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.22.1.tgz";
+        sha512 = "l6CwCLq7XgITOQGhv1dIUmwCFoqFjyQ6zQHUCQlS0xKmb9d6OHIg8jDiEoswhaettT21BSF5qKr6kbvE+aKwxw==";
       };
     };
-    "core-js-compat-3.21.1" = {
+    "core-js-compat-3.22.1" = {
       name = "core-js-compat";
       packageName = "core-js-compat";
-      version = "3.21.1";
+      version = "3.22.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz";
-        sha512 = "gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==";
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.1.tgz";
+        sha512 = "CWbNqTluLMvZg1cjsQUbGiCM91dobSHKfDIyCoxuqxthdjGuUlaMbCsSehP3CBiVvG0C7P6UIrC1v0hgFE75jw==";
       };
     };
-    "core-js-pure-3.21.1" = {
+    "core-js-pure-3.22.1" = {
       name = "core-js-pure";
       packageName = "core-js-pure";
-      version = "3.21.1";
+      version = "3.22.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz";
-        sha512 = "12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==";
+        url = "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.1.tgz";
+        sha512 = "TChjCtgcMDc8t12RiwAsThjqrS/VpBlEvDgL009ot4HESzBo3h2FSZNa6ZS1nWKZEPDoulnszxUll9n0/spflQ==";
       };
     };
     "core-util-is-1.0.2" = {
@@ -21390,6 +21597,15 @@ let
         sha512 = "waKkgHU2P19huhuMjCqCDWTYjxCIHoB+nnYjI7pVMUOC1giWxMNDrXkPw9QjWY+PWCFm49bD3wA/J+c7BGZ+og==";
       };
     };
+    "core_d-4.0.0" = {
+      name = "core_d";
+      packageName = "core_d";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core_d/-/core_d-4.0.0.tgz";
+        sha512 = "dBxd0Ocxj3D3K+rJxutTAZ9LQHkuMZoc9HPWYwYRYK7swou5wuIRXxgJ39YLNDvFHfHyV3JbxVYluF/AOhcRnw==";
+      };
+    };
     "corestore-5.8.2" = {
       name = "corestore";
       packageName = "corestore";
@@ -21471,13 +21687,13 @@ let
         sha512 = "H/2gurFWVi7xXvCyvsWRLCMekl4tITJcX0QEsDMpzxtuxDyM59xLatYNg4s/k9AA/HdtCYfj2su8mgA0GSDLDA==";
       };
     };
-    "cosmiconfig-typescript-loader-1.0.6" = {
+    "cosmiconfig-typescript-loader-1.0.9" = {
       name = "cosmiconfig-typescript-loader";
       packageName = "cosmiconfig-typescript-loader";
-      version = "1.0.6";
+      version = "1.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-1.0.6.tgz";
-        sha512 = "2nEotziYJWtNtoTjKbchj9QrdTT6DBxCvqjNKoDKARw+e2yZmTQCa07uRrykLIZuvSgp69YXLH89UHc0WhdMfQ==";
+        url = "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-1.0.9.tgz";
+        sha512 = "tRuMRhxN4m1Y8hP9SNYfz7jRwt8lZdWxdjg/ohg5esKmsndJIn4yT96oJVcf5x0eA11taXl+sIp+ielu529k6g==";
       };
     };
     "couch-login-0.1.20" = {
@@ -21561,13 +21777,13 @@ let
         sha512 = "iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==";
       };
     };
-    "crc-32-1.2.1" = {
+    "crc-32-1.2.2" = {
       name = "crc-32";
       packageName = "crc-32";
-      version = "1.2.1";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/crc-32/-/crc-32-1.2.1.tgz";
-        sha512 = "Dn/xm/1vFFgs3nfrpEVScHoIslO9NZRITWGz/1E/St6u4xw99vfZzVkW0OSnzx2h9egej9xwMCEut6sqwokM/w==";
+        url = "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz";
+        sha512 = "ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==";
       };
     };
     "crc32-stream-3.0.1" = {
@@ -21606,13 +21822,13 @@ let
         sha1 = "06be7abef947a3f14a30fd610671d401bca8b7b6";
       };
     };
-    "create-gatsby-2.10.2" = {
+    "create-gatsby-2.12.1" = {
       name = "create-gatsby";
       packageName = "create-gatsby";
-      version = "2.10.2";
+      version = "2.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/create-gatsby/-/create-gatsby-2.10.2.tgz";
-        sha512 = "OmuFey3Eoaek20m8Br/iIqEr76AUrl/ThCn7TBYJ6RvWVKezKV5UksQlFpdQgPK8kO9LogjkmiyA0k94VC3nXg==";
+        url = "https://registry.npmjs.org/create-gatsby/-/create-gatsby-2.12.1.tgz";
+        sha512 = "dOsEy9feLJVFVzFFnA6xJL9OhfYcKewaGMqI9uUaUdifIehBjb5jdeWi+cNy49j2FQLMm38jfZ2SNSQjEK2yOw==";
       };
     };
     "create-graphback-1.0.1" = {
@@ -21795,13 +22011,22 @@ let
         sha512 = "mkLtJJcYbDCxEG7Js6eUnUNndWjyUZwJ3H7bErmmtOYU/Zb99DyUkpamuIZE0b3bhmJyZ7D90uS6f+CGxRRjOw==";
       };
     };
-    "cross-undici-fetch-0.1.27" = {
+    "cross-undici-fetch-0.2.5" = {
       name = "cross-undici-fetch";
       packageName = "cross-undici-fetch";
-      version = "0.1.27";
+      version = "0.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.1.27.tgz";
-        sha512 = "Oz/zXdh2HCq55xARCwFAYtKlyGp3VFAIfOEexN6nVm06rD6O5g47fKp7fggf/kBtc7iG09asNoGW+CUwIi4Efg==";
+        url = "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.2.5.tgz";
+        sha512 = "6IR+JN6o2UMNj2f3fu0ZVkZeP0h22DRKzq78SiMenkqyBYyGIT1AkZjHkItvh0A80LdsAlWENHUpvapapePucw==";
+      };
+    };
+    "cross-undici-fetch-0.3.0" = {
+      name = "cross-undici-fetch";
+      packageName = "cross-undici-fetch";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.3.0.tgz";
+        sha512 = "as3gHg3EJrc4QMS11/GdHtyY+m3LnIf8GrziHQRe/dGxSHqEP4RcONJ/3UVaPeA1j687aYvwzWMPWKgqsdXbtA==";
       };
     };
     "crossroads-0.12.2" = {
@@ -21876,49 +22101,49 @@ let
         sha512 = "v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==";
       };
     };
-    "cspell-gitignore-5.19.3" = {
+    "cspell-gitignore-5.19.7" = {
       name = "cspell-gitignore";
       packageName = "cspell-gitignore";
-      version = "5.19.3";
+      version = "5.19.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-5.19.3.tgz";
-        sha512 = "Q67uHcf0qNgOoanRLhatapjWpLiftT+MuLIyAaSLe5eNVzQurQIc+UnXhtaslkVyOTqQt4NJFqLgtf5ZSGz1bg==";
+        url = "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-5.19.7.tgz";
+        sha512 = "rEqlN6wigNj4P/4Z3QCI1P56KhKkPtXNBpGMXC5CbxIK/NTtn3cLaqHKIZp92pypEnU077lxSCSqRRYCPbg/6A==";
       };
     };
-    "cspell-glob-5.19.3" = {
+    "cspell-glob-5.19.7" = {
       name = "cspell-glob";
       packageName = "cspell-glob";
-      version = "5.19.3";
+      version = "5.19.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-glob/-/cspell-glob-5.19.3.tgz";
-        sha512 = "qp2Oe/euzTu3e0zZrQxHuTrqRo418tYfh4CnCa+DKU6lWKKcF4zCEhOGJHPsYak8SFIXZ4ZE360wHFxB/JDutQ==";
+        url = "https://registry.npmjs.org/cspell-glob/-/cspell-glob-5.19.7.tgz";
+        sha512 = "fqlF7oqYTT2A3SRfQr7gzN21fwPoRO9IGKec1L3QeGkni5UPDxGrM2a5z+oLaYs2GN5pEf29BXVlN7dq0jVxIg==";
       };
     };
-    "cspell-io-5.19.3" = {
+    "cspell-io-5.19.7" = {
       name = "cspell-io";
       packageName = "cspell-io";
-      version = "5.19.3";
+      version = "5.19.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-io/-/cspell-io-5.19.3.tgz";
-        sha512 = "dE9eBvHgIJ11DelWtyehMU3W3bCpcB+0nS6uOZJ2d8fDu13m5BebpLrXZ2dKfY4cjksJUhRPatt14uwQSeUp2A==";
+        url = "https://registry.npmjs.org/cspell-io/-/cspell-io-5.19.7.tgz";
+        sha512 = "SEy8XkuOhvwleGjh336EBYj5HlH1J5FrCI5GxxGiU2g8zvWlBPQmaCfQPPO4tnDrrXtK76rZvolBu1jfCmWwQA==";
       };
     };
-    "cspell-lib-5.19.3" = {
+    "cspell-lib-5.19.7" = {
       name = "cspell-lib";
       packageName = "cspell-lib";
-      version = "5.19.3";
+      version = "5.19.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-lib/-/cspell-lib-5.19.3.tgz";
-        sha512 = "peMJggwJpxCXKZZ0DuHyDtZmf66POKaHf5Im8LGEyMKFARUIq6O2WvaUGggYjyRe3Ng/f5G+EYTcIHbF9pZYcg==";
+        url = "https://registry.npmjs.org/cspell-lib/-/cspell-lib-5.19.7.tgz";
+        sha512 = "d4ewH1RBgcBE9NqAh0FexmVQ6YvkDQv9XOysskeDH+G9wm975owENUU/mBd8AyBt2b4YXL/FoLtaKd/7MRoNDA==";
       };
     };
-    "cspell-trie-lib-5.19.3" = {
+    "cspell-trie-lib-5.19.7" = {
       name = "cspell-trie-lib";
       packageName = "cspell-trie-lib";
-      version = "5.19.3";
+      version = "5.19.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-5.19.3.tgz";
-        sha512 = "Io8EB7E1pmttHzZvgvPEF0b87qlq8G5uA4B+sbqCxrUf5l4JDcK/UYLih0+rekLTbv4Q68zqgCTASvqxgqnoAg==";
+        url = "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-5.19.7.tgz";
+        sha512 = "qr0HS2hGuyIQhDGG5li0nqIjVi039iPRHR8wpeDoSO0YIBCll22i/VlvW3CSmqXLaP5RRoAc9txiZkIGob6DkQ==";
       };
     };
     "csrf-3.1.0" = {
@@ -22056,13 +22281,13 @@ let
         sha512 = "Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==";
       };
     };
-    "css-select-4.2.1" = {
+    "css-select-4.3.0" = {
       name = "css-select";
       packageName = "css-select";
-      version = "4.2.1";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz";
-        sha512 = "/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==";
+        url = "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz";
+        sha512 = "wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==";
       };
     };
     "css-select-base-adapter-0.1.1" = {
@@ -22137,13 +22362,13 @@ let
         sha512 = "ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==";
       };
     };
-    "css-what-5.1.0" = {
+    "css-what-6.1.0" = {
       name = "css-what";
       packageName = "css-what";
-      version = "5.1.0";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz";
-        sha512 = "arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==";
+        url = "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz";
+        sha512 = "HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==";
       };
     };
     "cssauron-1.4.0" = {
@@ -22497,6 +22722,15 @@ let
         sha1 = "596e9698fd0c80e12038c2b82d6eb1b35b6224d9";
       };
     };
+    "cypress-image-snapshot-4.0.1" = {
+      name = "cypress-image-snapshot";
+      packageName = "cypress-image-snapshot";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cypress-image-snapshot/-/cypress-image-snapshot-4.0.1.tgz";
+        sha512 = "PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==";
+      };
+    };
     "d-1.0.1" = {
       name = "d";
       packageName = "d";
@@ -22515,13 +22749,13 @@ let
         sha512 = "4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==";
       };
     };
-    "d3-7.3.0" = {
+    "d3-7.4.4" = {
       name = "d3";
       packageName = "d3";
-      version = "7.3.0";
+      version = "7.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/d3/-/d3-7.3.0.tgz";
-        sha512 = "MDRLJCMK232OJQRqGljQ/gCxtB8k3/sLKFjftMjzPB3nKVUODpdW9Rb3vcq7U8Ka5YKoZkAmp++Ur6I+6iNWIw==";
+        url = "https://registry.npmjs.org/d3/-/d3-7.4.4.tgz";
+        sha512 = "97FE+MYdAlV3R9P74+R3Uar7wUKkIFu89UWMjEaDhiJ9VxKvqaMxauImy8PC2DdBkdM2BxJOIoLxPrcZUyrKoQ==";
       };
     };
     "d3-array-1.2.4" = {
@@ -22542,6 +22776,15 @@ let
         sha512 = "33qQ+ZoZlli19IFiQx4QEpf2CBEayMRzhlisJHSCsSUbDXv6ZishqS1x7uFVClKG4Wr7rZVHvaAttoLow6GqdQ==";
       };
     };
+    "d3-array-3.1.6" = {
+      name = "d3-array";
+      packageName = "d3-array";
+      version = "3.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d3-array/-/d3-array-3.1.6.tgz";
+        sha512 = "DCbBBNuKOeiR9h04ySRBMW52TFVc91O9wJziuyXw6Ztmy8D3oZbmCkOO3UHKC7ceNJsN2Mavo9+vwV8EAEUXzA==";
+      };
+    };
     "d3-axis-1.0.12" = {
       name = "d3-axis";
       packageName = "d3-axis";
@@ -22623,13 +22866,13 @@ let
         sha512 = "SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==";
       };
     };
-    "d3-color-3.0.1" = {
+    "d3-color-3.1.0" = {
       name = "d3-color";
       packageName = "d3-color";
-      version = "3.0.1";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/d3-color/-/d3-color-3.0.1.tgz";
-        sha512 = "6/SlHkDOBLyQSJ1j1Ghs82OIUXpKWlR0hCsw0XrLSQhuUPuCSmLQ1QPH98vpnQxMUQM2/gfAkUEWsupVpd9JGw==";
+        url = "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz";
+        sha512 = "zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==";
       };
     };
     "d3-contour-1.3.2" = {
@@ -22848,13 +23091,13 @@ let
         sha512 = "p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==";
       };
     };
-    "d3-graphviz-4.1.0" = {
+    "d3-graphviz-4.1.1" = {
       name = "d3-graphviz";
       packageName = "d3-graphviz";
-      version = "4.1.0";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/d3-graphviz/-/d3-graphviz-4.1.0.tgz";
-        sha512 = "RtCGnEROcte5npTfjhiNR3kSbwhBl8LA6NNq0oFRXEIFB9N4xHQgGjZWfAHVsN9NQVctEEkRQ4H0GGdqfStlZQ==";
+        url = "https://registry.npmjs.org/d3-graphviz/-/d3-graphviz-4.1.1.tgz";
+        sha512 = "s0IVbKf8rs4eJI2xo5Umr7nXDX/LEZw/x2WtKxmlyQxR0qUY49UiLhBNOX7VDHZywMle43NKEXnU6fn22fpJvQ==";
       };
     };
     "d3-hierarchy-1.1.9" = {
@@ -22866,13 +23109,13 @@ let
         sha512 = "j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==";
       };
     };
-    "d3-hierarchy-3.1.1" = {
+    "d3-hierarchy-3.1.2" = {
       name = "d3-hierarchy";
       packageName = "d3-hierarchy";
-      version = "3.1.1";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.1.tgz";
-        sha512 = "LtAIu54UctRmhGKllleflmHalttH3zkfSi4NlKrTAoFKjC+AFBJohsCAdgCBYQwH0F8hIOGY89X1pPqAchlMkA==";
+        url = "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz";
+        sha512 = "FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==";
       };
     };
     "d3-interpolate-1.4.0" = {
@@ -23406,6 +23649,15 @@ let
         sha512 = "YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==";
       };
     };
+    "dataloader-2.1.0" = {
+      name = "dataloader";
+      packageName = "dataloader";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dataloader/-/dataloader-2.1.0.tgz";
+        sha512 = "qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==";
+      };
+    };
     "datauri-4.1.0" = {
       name = "datauri";
       packageName = "datauri";
@@ -23460,13 +23712,13 @@ let
         sha512 = "eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==";
       };
     };
-    "date-format-4.0.6" = {
+    "date-format-4.0.7" = {
       name = "date-format";
       packageName = "date-format";
-      version = "4.0.6";
+      version = "4.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/date-format/-/date-format-4.0.6.tgz";
-        sha512 = "B9vvg5rHuQ8cbUXE/RMWMyX2YA5TecT3jKF5fLtGNlzPlU7zblSPmAm2OImDbWL+LDOQ6pUm+4LOFz+ywS41Zw==";
+        url = "https://registry.npmjs.org/date-format/-/date-format-4.0.7.tgz";
+        sha512 = "k5xqlzDGIfv2N/DHR/BR8Kc4N9CRy9ReuDkmdxeX/jNfit94QXd36emWMm40ZOEDKNm/c91yV9EO3uGPkR7wWQ==";
       };
     };
     "date-now-0.1.4" = {
@@ -23505,13 +23757,13 @@ let
         sha512 = "2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==";
       };
     };
-    "dayjs-1.11.0" = {
+    "dayjs-1.11.1" = {
       name = "dayjs";
       packageName = "dayjs";
-      version = "1.11.0";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dayjs/-/dayjs-1.11.0.tgz";
-        sha512 = "JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug==";
+        url = "https://registry.npmjs.org/dayjs/-/dayjs-1.11.1.tgz";
+        sha512 = "ER7EjqVAMkRRsxNCC5YqJ9d9VQYuWdGt7aiH2qA5R5wt8ZmWaP2dLUSIK6y/kVzLMlmh1Tvu5xUf4M/wdGJ5KA==";
       };
     };
     "dayjs-1.8.36" = {
@@ -23541,13 +23793,13 @@ let
         sha512 = "E1GI7jMI57hL30OX6Ht/hfQU8DO4AuB9m72WFm4c38GNbUD4Q03//XZaOIHZiY+H1xUaomcot5yk2q/qIZQkGQ==";
       };
     };
-    "deasync-0.1.24" = {
+    "deasync-0.1.26" = {
       name = "deasync";
       packageName = "deasync";
-      version = "0.1.24";
+      version = "0.1.26";
       src = fetchurl {
-        url = "https://registry.npmjs.org/deasync/-/deasync-0.1.24.tgz";
-        sha512 = "i98vg42xNfRZCymummMAN0rIcQ1gZFinSe3btvPIvy6JFTaeHcumeKybRo2HTv86nasfmT0nEgAn2ggLZhOCVA==";
+        url = "https://registry.npmjs.org/deasync/-/deasync-0.1.26.tgz";
+        sha512 = "YKw0BmJSWxkjtQsbgn6Q9CHSWB7DKMen8vKrgyC006zy0UZ6nWyGidB0IzZgqkVRkOglAeUaFtiRTeLyel72bg==";
       };
     };
     "death-1.1.0" = {
@@ -24243,13 +24495,13 @@ let
         sha512 = "Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==";
       };
     };
-    "define-properties-1.1.3" = {
+    "define-properties-1.1.4" = {
       name = "define-properties";
       packageName = "define-properties";
-      version = "1.1.3";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz";
-        sha512 = "3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==";
+        url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz";
+        sha512 = "uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==";
       };
     };
     "define-property-0.2.5" = {
@@ -24684,22 +24936,22 @@ let
         sha512 = "4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==";
       };
     };
-    "devtools-protocol-0.0.969999" = {
+    "devtools-protocol-0.0.981744" = {
       name = "devtools-protocol";
       packageName = "devtools-protocol";
-      version = "0.0.969999";
+      version = "0.0.981744";
       src = fetchurl {
-        url = "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.969999.tgz";
-        sha512 = "6GfzuDWU0OFAuOvBokXpXPLxjOJ5DZ157Ue3sGQQM3LgAamb8m0R0ruSfN0DDu+XG5XJgT50i6zZ/0o8RglreQ==";
+        url = "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz";
+        sha512 = "0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==";
       };
     };
-    "dezalgo-1.0.3" = {
+    "dezalgo-1.0.4" = {
       name = "dezalgo";
       packageName = "dezalgo";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz";
-        sha1 = "7f742de066fc748bc8db820569dddce49bf0d456";
+        url = "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz";
+        sha512 = "rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==";
       };
     };
     "dht-rpc-4.9.6" = {
@@ -24819,13 +25071,13 @@ let
         sha512 = "IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==";
       };
     };
-    "diff2html-3.4.16" = {
+    "diff2html-3.4.17" = {
       name = "diff2html";
       packageName = "diff2html";
-      version = "3.4.16";
+      version = "3.4.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/diff2html/-/diff2html-3.4.16.tgz";
-        sha512 = "KfkvEoZTJertjoGPYFLn8n0yRdvzJcHvFJpJwbIxUlHU9x6qqhRZEM+TlgtU09jdLqRZAQyWFoxPiP6HeT2IYA==";
+        url = "https://registry.npmjs.org/diff2html/-/diff2html-3.4.17.tgz";
+        sha512 = "B/H+iLRHTsRl2Ffs/7tYJ0Rg4uisXe83inIdNE8trXY83Wn7OCTslJNP7fyaUpSsLbRIzPSNgT7LqFNiIQlDyg==";
       };
     };
     "diff3-0.0.3" = {
@@ -24882,6 +25134,15 @@ let
         sha512 = "QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg==";
       };
     };
+    "dir-compare-2.4.0" = {
+      name = "dir-compare";
+      packageName = "dir-compare";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dir-compare/-/dir-compare-2.4.0.tgz";
+        sha512 = "l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA==";
+      };
+    };
     "dir-glob-2.0.0" = {
       name = "dir-glob";
       packageName = "dir-glob";
@@ -25107,13 +25368,13 @@ let
         sha1 = "ea80b106a87538774e8a3a4a5afe293de489e0a9";
       };
     };
-    "doipjs-0.15.5" = {
+    "doipjs-0.15.6" = {
       name = "doipjs";
       packageName = "doipjs";
-      version = "0.15.5";
+      version = "0.15.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/doipjs/-/doipjs-0.15.5.tgz";
-        sha512 = "PIZIx+2+LqDtJWUXOMAd0PabT6uojkk5x4k1crUX68nMqDuNKne8v4K2Viytu8F9eBgN1cIUL9gLV8p4oqXI4A==";
+        url = "https://registry.npmjs.org/doipjs/-/doipjs-0.15.6.tgz";
+        sha512 = "oC9uXxkUye8XTin/U+veA2Qmt++4I+WRBxtIoeufGmWqaD5iLM5REMSVbrOX4FbuLtimYEnajlgFXhh1fdF72A==";
       };
     };
     "dom-converter-0.2.0" = {
@@ -25170,13 +25431,13 @@ let
         sha512 = "2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==";
       };
     };
-    "dom-serializer-1.3.2" = {
+    "dom-serializer-1.4.1" = {
       name = "dom-serializer";
       packageName = "dom-serializer";
-      version = "1.3.2";
+      version = "1.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz";
-        sha512 = "5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==";
+        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz";
+        sha512 = "VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==";
       };
     };
     "dom-storage-2.1.0" = {
@@ -25233,13 +25494,13 @@ let
         sha512 = "BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==";
       };
     };
-    "domelementtype-2.2.0" = {
+    "domelementtype-2.3.0" = {
       name = "domelementtype";
       packageName = "domelementtype";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz";
-        sha512 = "DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==";
+        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz";
+        sha512 = "OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==";
       };
     };
     "domexception-1.0.1" = {
@@ -25773,15 +26034,6 @@ let
         sha512 = "nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==";
       };
     };
-    "ecpair-1.0.1" = {
-      name = "ecpair";
-      packageName = "ecpair";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ecpair/-/ecpair-1.0.1.tgz";
-        sha512 = "5qPa0GVZJI1FAMS+4GZBWXS/bzY7/p2ehuGuHPqvsRWe2yXDc4Bgvf89BMJz87pqcW7+ogGQkLZfwflMr/RPgQ==";
-      };
-    };
     "ecpair-2.0.1" = {
       name = "ecpair";
       packageName = "ecpair";
@@ -25872,13 +26124,22 @@ let
         sha512 = "9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==";
       };
     };
-    "electron-14.2.8" = {
+    "ejs-3.1.7" = {
+      name = "ejs";
+      packageName = "ejs";
+      version = "3.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ejs/-/ejs-3.1.7.tgz";
+        sha512 = "BIar7R6abbUxDA3bfXrO4DSgwo8I+fB5/1zgujl3HLLjwd6+9iOnrT+t3grn2qbk9vOgBubXOFwX2m9axoFaGw==";
+      };
+    };
+    "electron-14.2.9" = {
       name = "electron";
       packageName = "electron";
-      version = "14.2.8";
+      version = "14.2.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron/-/electron-14.2.8.tgz";
-        sha512 = "K22hI0NVkC7sU5sMDXwW1lxAjhNsFXL2wuJF7Ij9CyWqW/j6AtIMfDkUoM5mXaTg0FGUlmlNr9Rh7cp8bBn6Sg==";
+        url = "https://registry.npmjs.org/electron/-/electron-14.2.9.tgz";
+        sha512 = "7LdJFmqVzO9NLKO0hwOwPA6Kv4GSybGMcej8f2q7fVT4O8mIfL9oo/v4axVjVWm0+58ROQtHv8hYnnAs3ygG0Q==";
       };
     };
     "electron-notarize-1.2.1" = {
@@ -25899,13 +26160,13 @@ let
         sha512 = "icoRLHzFz/qxzDh/N4Pi2z4yVHurlsCAYQvsCSG7fCedJ4UJXBS6PoQyGH71IfcqKupcKeK7HX/NkyfG+v6vlQ==";
       };
     };
-    "electron-packager-15.4.0" = {
+    "electron-packager-15.5.0" = {
       name = "electron-packager";
       packageName = "electron-packager";
-      version = "15.4.0";
+      version = "15.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-packager/-/electron-packager-15.4.0.tgz";
-        sha512 = "JrrLcBP15KGrPj0cZ/ALKGmaQ4gJkn3mocf0E3bRKdR3kxKWYcDRpCvdhksYDXw/r3I6tMEcZ7XzyApWFXdVpw==";
+        url = "https://registry.npmjs.org/electron-packager/-/electron-packager-15.5.0.tgz";
+        sha512 = "8mITLQgTm9xdrO8XL/PsK0EZGU7zK/ay7TI8M1C9pc1UZ++HlaWQJBRJHlOXf4TL/7FsiF4OciEhiqhMn+LKQQ==";
       };
     };
     "electron-rebuild-3.2.7" = {
@@ -25917,13 +26178,13 @@ let
         sha512 = "WvaW1EgRinDQ61khHFZfx30rkPQG5ItaOT0wrI7iJv9A3SbghriQGfZQfHZs25fWLBe6/vkv05LOqg6aDw6Wzw==";
       };
     };
-    "electron-to-chromium-1.4.96" = {
+    "electron-to-chromium-1.4.114" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.4.96";
+      version = "1.4.114";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.96.tgz";
-        sha512 = "DPNjvNGPabv6FcyjzLAN4C0psN/GgD9rSGvMTuv81SeXG/EX3mCz0wiw9N1tUEnfQXYCJi3H8M0oFPRziZh7rw==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.114.tgz";
+        sha512 = "gRwLpVYWHGbERPU6o8pKfR168V6enWEXzZc6zQNNXbgJ7UJna+9qzAIHY94+9KOv71D/CH+QebLA9pChD2q8zA==";
       };
     };
     "electrum-client-git://github.com/janoside/electrum-client" = {
@@ -26261,15 +26522,6 @@ let
         sha512 = "21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==";
       };
     };
-    "engine.io-4.1.2" = {
-      name = "engine.io";
-      packageName = "engine.io";
-      version = "4.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io/-/engine.io-4.1.2.tgz";
-        sha512 = "t5z6zjXuVLhXDMiFJPYsPOWEER8B0tIsD3ETgw19S1yg9zryvUfY3Vhtk3Gf4sihw/bQGIqQ//gjvVlu+Ca0bQ==";
-      };
-    };
     "engine.io-6.0.1" = {
       name = "engine.io";
       packageName = "engine.io";
@@ -26369,15 +26621,6 @@ let
         sha512 = "x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==";
       };
     };
-    "engine.io-parser-4.0.3" = {
-      name = "engine.io-parser";
-      packageName = "engine.io-parser";
-      version = "4.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.3.tgz";
-        sha512 = "xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==";
-      };
-    };
     "engine.io-parser-5.0.3" = {
       name = "engine.io-parser";
       packageName = "engine.io-parser";
@@ -26405,13 +26648,13 @@ let
         sha512 = "Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==";
       };
     };
-    "enhanced-resolve-5.9.2" = {
+    "enhanced-resolve-5.9.3" = {
       name = "enhanced-resolve";
       packageName = "enhanced-resolve";
-      version = "5.9.2";
+      version = "5.9.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz";
-        sha512 = "GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==";
+        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz";
+        sha512 = "Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==";
       };
     };
     "enquirer-2.3.6" = {
@@ -26630,13 +26873,13 @@ let
         sha512 = "rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==";
       };
     };
-    "es-abstract-1.19.1" = {
+    "es-abstract-1.19.5" = {
       name = "es-abstract";
       packageName = "es-abstract";
-      version = "1.19.1";
+      version = "1.19.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz";
-        sha512 = "2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==";
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz";
+        sha512 = "Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==";
       };
     };
     "es-get-iterator-1.1.2" = {
@@ -26657,6 +26900,15 @@ let
         sha512 = "1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==";
       };
     };
+    "es-shim-unscopables-1.0.0" = {
+      name = "es-shim-unscopables";
+      packageName = "es-shim-unscopables";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz";
+        sha512 = "Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==";
+      };
+    };
     "es-to-primitive-1.2.1" = {
       name = "es-to-primitive";
       packageName = "es-to-primitive";
@@ -26675,13 +26927,13 @@ let
         sha1 = "5dae3e650e5be3684b88066513d528d092629862";
       };
     };
-    "es5-ext-0.10.59" = {
+    "es5-ext-0.10.61" = {
       name = "es5-ext";
       packageName = "es5-ext";
-      version = "0.10.59";
+      version = "0.10.61";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.59.tgz";
-        sha512 = "cOgyhW0tIJyQY1Kfw6Kr0viu9ZlUctVchRMZ7R0HiH3dxTSp5zJDLecwxUqPUrGKMsgBI1wd1FL+d9Jxfi4cLw==";
+        url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.61.tgz";
+        sha512 = "yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA==";
       };
     };
     "es6-error-4.1.1" = {
@@ -27017,13 +27269,13 @@ let
         sha512 = "/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==";
       };
     };
-    "eslint-8.12.0" = {
+    "eslint-8.13.0" = {
       name = "eslint";
       packageName = "eslint";
-      version = "8.12.0";
+      version = "8.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz";
-        sha512 = "it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz";
+        sha512 = "D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==";
       };
     };
     "eslint-config-prettier-6.15.0" = {
@@ -27854,15 +28106,6 @@ let
         sha512 = "j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==";
       };
     };
-    "execa-5.0.0" = {
-      name = "execa";
-      packageName = "execa";
-      version = "5.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz";
-        sha512 = "ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==";
-      };
-    };
     "execa-5.1.1" = {
       name = "execa";
       packageName = "execa";
@@ -28016,13 +28259,22 @@ let
         sha512 = "bILEG0Fg+ZhIhdEaShHzsEN1WC0hUmXJ5Kcd4cd+8rVk1Ead9vRZxA/yLx1cNBDCOwMe0GAMrhF7TKT+A1P+YA==";
       };
     };
-    "expo-pwa-0.0.114" = {
+    "expo-pwa-0.0.115" = {
       name = "expo-pwa";
       packageName = "expo-pwa";
-      version = "0.0.114";
+      version = "0.0.115";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/expo-pwa/-/expo-pwa-0.0.115.tgz";
+        sha512 = "Z10w+JuRYVcRLnM8DTLmqaKJKG7mh8nBgDLvSZ8T6Hw/x7Eoq3YI0mx8aRRDV/uNQBPZZ02QZSNaxLyDtEuCAA==";
+      };
+    };
+    "exponential-backoff-3.1.0" = {
+      name = "exponential-backoff";
+      packageName = "exponential-backoff";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/expo-pwa/-/expo-pwa-0.0.114.tgz";
-        sha512 = "vJCpKROPULPrTnLTCytZuxBkm23yS9CBXBald2BDeizgKsJV19vOc2+lmTk4fL5hh+TgHQybwtt6UwEy3ORjgg==";
+        url = "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.0.tgz";
+        sha512 = "oBuz5SYz5zzyuHINoe9ooePwSu0xApKWgeNzok4hZ5YKXFh9zrQBEM15CXqoZkJJPuI2ArvqjPQd8UKJA753XA==";
       };
     };
     "express-2.5.11" = {
@@ -28574,13 +28826,13 @@ let
         sha512 = "xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==";
       };
     };
-    "fast-equals-3.0.0" = {
+    "fast-equals-3.0.1" = {
       name = "fast-equals";
       packageName = "fast-equals";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-equals/-/fast-equals-3.0.0.tgz";
-        sha512 = "Af7nSOpf7617idrFg0MJY6x7yVDPoO80aSwtKTC0afT8B/SsmvTpA+2a+uPLmhVF5IHmY5NPuBAA3dJrp55rJA==";
+        url = "https://registry.npmjs.org/fast-equals/-/fast-equals-3.0.1.tgz";
+        sha512 = "J9FxqqC9E/ja0C+SYhoG3Jl6pQuhP92HNcVC75xDEhB+GUzPnjEp3vMfPIxPprYZFfXS5hpVvvPCWUMiDSMS8Q==";
       };
     };
     "fast-fifo-1.1.0" = {
@@ -28772,13 +29024,13 @@ let
         sha512 = "483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==";
       };
     };
-    "fastpriorityqueue-0.7.1" = {
+    "fastpriorityqueue-0.7.2" = {
       name = "fastpriorityqueue";
       packageName = "fastpriorityqueue";
-      version = "0.7.1";
+      version = "0.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fastpriorityqueue/-/fastpriorityqueue-0.7.1.tgz";
-        sha512 = "XJ+vbiXYjmxc32VEpXScAq7mBg3vqh90OjLfiuyQ0zAtXpgICdVgGjKHep1kLGQufyuCBiEYpl6ZKcw79chTpA==";
+        url = "https://registry.npmjs.org/fastpriorityqueue/-/fastpriorityqueue-0.7.2.tgz";
+        sha512 = "5DtIKh6vtOmEGkYdEPNNb+mxeYCnBiKbK3s4gq52l6cX8I5QaTDWWw0Wx/iYo80fVOblSycHu1/iJeqeNxG8Jw==";
       };
     };
     "fastq-1.13.0" = {
@@ -28808,13 +29060,13 @@ let
         sha512 = "WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==";
       };
     };
-    "faunadb-4.5.2" = {
+    "faunadb-4.5.4" = {
       name = "faunadb";
       packageName = "faunadb";
-      version = "4.5.2";
+      version = "4.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/faunadb/-/faunadb-4.5.2.tgz";
-        sha512 = "XQ2yDoPZc5/IqC4eS4tP5tjewFbAK8UdQYLDGlUiJy5E9F3rpvYCMdjlkRWcaxOMD2yPYr8NSoql10zy1CNoCA==";
+        url = "https://registry.npmjs.org/faunadb/-/faunadb-4.5.4.tgz";
+        sha512 = "v0e1aXPhitIGMtuC7NFtp//hyr0d2NtHFcGqsEJgWx49rRJoonZQl6hLQ3lBjhA/LPg26U4R/BAlmDFE2pzsUA==";
       };
     };
     "faye-websocket-0.10.0" = {
@@ -28880,13 +29132,13 @@ let
         sha1 = "25c7c89cb1f9077f8891bbe61d8f390eae256f1e";
       };
     };
-    "fecha-4.2.1" = {
+    "fecha-4.2.3" = {
       name = "fecha";
       packageName = "fecha";
-      version = "4.2.1";
+      version = "4.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz";
-        sha512 = "MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==";
+        url = "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz";
+        sha512 = "OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==";
       };
     };
     "fetch-blob-3.1.5" = {
@@ -28898,13 +29150,13 @@ let
         sha512 = "N64ZpKqoLejlrwkIAnb9iLSA3Vx/kjgzpcDhygcqJ2KKjky8nCgUQ+dzXtbrLaWZGZNmNfQTsiQ0weZ1svglHg==";
       };
     };
-    "fetch-cookie-0.10.1" = {
+    "fetch-cookie-0.11.0" = {
       name = "fetch-cookie";
       packageName = "fetch-cookie";
-      version = "0.10.1";
+      version = "0.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-0.10.1.tgz";
-        sha512 = "beB+VEd4cNeVG1PY+ee74+PkuCQnik78pgLi5Ah/7qdUfov8IctU0vLUbBT8/10Ma5GMBeI4wtxhGrEfKNYs2g==";
+        url = "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-0.11.0.tgz";
+        sha512 = "BQm7iZLFhMWFy5CZ/162sAGjBfdNWb7a8LEqqnzsHFhxT/X/SVj/z2t2nu3aJvjlbQkrAlTUApplPRjWyH4mhA==";
       };
     };
     "fetch-everywhere-1.0.5" = {
@@ -29114,15 +29366,6 @@ let
         sha512 = "sXAMgFk67fQLcetXustxfKX+PZgHIUFn96Xld9uH8aXPdX3xOp0/jg9OdouVTvQrf7mrn+wAa4jN/y9fUOOiRA==";
       };
     };
-    "file-type-16.2.0" = {
-      name = "file-type";
-      packageName = "file-type";
-      version = "16.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/file-type/-/file-type-16.2.0.tgz";
-        sha512 = "1Wwww3mmZCMmLjBfslCluwt2mxH80GsAXYrvPnfQ42G1EGWag336kB1iyCgyn7UXiKY3cJrNykXPrCwA7xb5Ag==";
-      };
-    };
     "file-type-16.5.3" = {
       name = "file-type";
       packageName = "file-type";
@@ -29195,13 +29438,13 @@ let
         sha512 = "hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==";
       };
     };
-    "filelist-1.0.2" = {
+    "filelist-1.0.3" = {
       name = "filelist";
       packageName = "filelist";
-      version = "1.0.2";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz";
-        sha512 = "z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==";
+        url = "https://registry.npmjs.org/filelist/-/filelist-1.0.3.tgz";
+        sha512 = "LwjCsruLWQULGYKy7TX0OPtrL9kLpojOFKc5VCTxdFTV7w5zbsgqVKfnkKG7Qgjtq50gKfO56hJv88OfcGb70Q==";
       };
     };
     "filename-regex-2.0.1" = {
@@ -29240,15 +29483,6 @@ let
         sha512 = "KQV/uJDI9VQgN7sHH1Zbk6+42cD6mnQ2HONzkXUfPJ+K2FC8GZ1dpewbbHw0Sz8Tf5k3EVdHVayM4DoAwWlmtg==";
       };
     };
-    "filenamify-4.2.0" = {
-      name = "filenamify";
-      packageName = "filenamify";
-      version = "4.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/filenamify/-/filenamify-4.2.0.tgz";
-        sha512 = "pkgE+4p7N1n7QieOopmn3TqJaefjdWXwEkj2XLZJLKfOgcQKkn11ahvGNgTD8mLggexLiDFQxeTs14xVU22XPA==";
-      };
-    };
     "filenamify-4.3.0" = {
       name = "filenamify";
       packageName = "filenamify";
@@ -29573,6 +29807,15 @@ let
         sha512 = "ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==";
       };
     };
+    "firebase-frameworks-0.3.0" = {
+      name = "firebase-frameworks";
+      packageName = "firebase-frameworks";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/firebase-frameworks/-/firebase-frameworks-0.3.0.tgz";
+        sha512 = "Zxtx5WsD8ZZdItIeDjjpM+JgaIWDdwBujmLYLKf2Ou6onyRsd8bNRrnVsqrnq4S3FN9TcNYliXdwMu7AwYdW7Q==";
+      };
+    };
     "firefox-profile-4.2.2" = {
       name = "firefox-profile";
       packageName = "firefox-profile";
@@ -29735,13 +29978,13 @@ let
         sha512 = "jlbUu0XkbpXeXhan5xyTqVK1jmEKNxE8hpzznI3TThHTr76GiFwK0iRzhDo4KNy+S9h/KxHaqVhTP86vA6wHCg==";
       };
     };
-    "flow-parser-0.174.1" = {
+    "flow-parser-0.176.2" = {
       name = "flow-parser";
       packageName = "flow-parser";
-      version = "0.174.1";
+      version = "0.176.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.174.1.tgz";
-        sha512 = "nDMOvlFR+4doLpB3OJpseHZ7uEr3ENptlF6qMas/kzQmNcLzMwfQeFX0gGJ/+em7UdldB/nGsk55tDTOvjbCuw==";
+        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.176.2.tgz";
+        sha512 = "unqoh60i18C67h2rvK0SCFUBac/waUcx7CF1a5E4D0Cwj1NErTP42RF7yb7+dy25Tpyzt7uwVtXw13Wr17VzWA==";
       };
     };
     "fluent-ffmpeg-2.1.2" = {
@@ -30023,13 +30266,13 @@ let
         sha512 = "DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==";
       };
     };
-    "fork-ts-checker-webpack-plugin-7.2.1" = {
+    "fork-ts-checker-webpack-plugin-7.2.3" = {
       name = "fork-ts-checker-webpack-plugin";
       packageName = "fork-ts-checker-webpack-plugin";
-      version = "7.2.1";
+      version = "7.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.1.tgz";
-        sha512 = "uOfQdg/iQ8iokQ64qcbu8iZb114rOmaKLQFu7hU14/eJaKgsP91cQ7ts7v2iiDld6TzDe84Meksha8/MkWiCyw==";
+        url = "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.3.tgz";
+        sha512 = "9v308zIFTIFkWJBN/4N1A5oqm/ed9hWG6GH+KYTCBjYCEJOmHoVtDIWpfrJ0eD6cPB7V53HEVoJ6bL2In8QRaw==";
       };
     };
     "fork-ts-checker-webpack-plugin-v5-5.2.1" = {
@@ -30194,13 +30437,13 @@ let
         sha512 = "wJaE62fLaB3jCYvY2ZHjZvmKK2iiLiiehX38rz5QZxtdN8fVPJDeZUiVvJrHStdTc+23LHlyZuSEKgFc0pxi2g==";
       };
     };
-    "fp-ts-2.11.9" = {
+    "fp-ts-2.11.10" = {
       name = "fp-ts";
       packageName = "fp-ts";
-      version = "2.11.9";
+      version = "2.11.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fp-ts/-/fp-ts-2.11.9.tgz";
-        sha512 = "GhYlNKkCOfdjp71ocdtyaQGoqCswEoWDJLRr+2jClnBBq2dnSOtd6QxmJdALq8UhfqCyZZ0f0lxadU4OhwY9nw==";
+        url = "https://registry.npmjs.org/fp-ts/-/fp-ts-2.11.10.tgz";
+        sha512 = "wtUo3eA0/+GZnT+dCjkSt5CuGCH5ZXjjrcZvYm/3BC5KGavuwgvME+eRRHYtCGYWD6I+fJ2uZ9en/JVqDEPrJw==";
       };
     };
     "fraction.js-4.2.0" = {
@@ -30311,13 +30554,13 @@ let
         sha512 = "KhjJmZAs2eqfhCb6PdPx4RcZtheGTz86tpTC5JTvqBn/xda+Nb+0C7dCyjOSN7T76H6a56LvH0SVXQMchLXDRw==";
       };
     };
-    "fs-chunk-store-2.0.4" = {
+    "fs-chunk-store-2.0.5" = {
       name = "fs-chunk-store";
       packageName = "fs-chunk-store";
-      version = "2.0.4";
+      version = "2.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fs-chunk-store/-/fs-chunk-store-2.0.4.tgz";
-        sha512 = "JfeKRPPWkLaUoNKZdi+eLPKzZkZK1pdj2Y5lidEw9fUCkglvK/muLe6ONjdvn8yAGrDsk4tkjNp52GS658yy0g==";
+        url = "https://registry.npmjs.org/fs-chunk-store/-/fs-chunk-store-2.0.5.tgz";
+        sha512 = "z3c2BmyaHdQTtIVXJDQOvwZVWN2gNU//0IYKK2LuPr+cZyGoIrgDwI4iDASaTUyQbOBtyg/k6GuDZepB6jQIPw==";
       };
     };
     "fs-constants-1.0.0" = {
@@ -30383,6 +30626,15 @@ let
         sha512 = "NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==";
       };
     };
+    "fs-extra-10.1.0" = {
+      name = "fs-extra";
+      packageName = "fs-extra";
+      version = "10.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";
+        sha512 = "oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==";
+      };
+    };
     "fs-extra-3.0.1" = {
       name = "fs-extra";
       packageName = "fs-extra";
@@ -30671,6 +30923,15 @@ let
         sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
       };
     };
+    "functions-have-names-1.2.3" = {
+      name = "functions-have-names";
+      packageName = "functions-have-names";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz";
+        sha512 = "xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==";
+      };
+    };
     "fuse.js-6.4.1" = {
       name = "fuse.js";
       packageName = "fuse.js";
@@ -30725,22 +30986,22 @@ let
         sha1 = "cbed2d20a40c1f5679a35908e2b9415733e78db9";
       };
     };
-    "gatsby-core-utils-3.10.1" = {
+    "gatsby-core-utils-3.12.1" = {
       name = "gatsby-core-utils";
       packageName = "gatsby-core-utils";
-      version = "3.10.1";
+      version = "3.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.10.1.tgz";
-        sha512 = "WqNMm0u1CAZm6Q+UQ4dDHwIAt3l32NeIaPuSXmDX7QcMGR3FUUk8cl2Ym6gx1hfILm1aCexqfaSCLUXtaWKkbQ==";
+        url = "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.12.1.tgz";
+        sha512 = "jBG1MfR6t2MZNIl8LQ3Cwc92F6uFNcEC091IK+qKVy9FNT0+WzcKQ6Olip6u1NSvCatfrg1FqrH0K78a6lmnLQ==";
       };
     };
-    "gatsby-telemetry-3.10.1" = {
+    "gatsby-telemetry-3.12.1" = {
       name = "gatsby-telemetry";
       packageName = "gatsby-telemetry";
-      version = "3.10.1";
+      version = "3.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.10.1.tgz";
-        sha512 = "935quI1YsQfzYREuvPLNKBb7IUE2vX9p7WoS7Dc9TbV2xDZPTAzeOfX+HE56ZltkxMi8Zivp7mqe5+n//WL7EQ==";
+        url = "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.12.1.tgz";
+        sha512 = "sAL2T9GdYpceGlFP6CymVDoy0UEhRvrJApv/mu7sU6F0gu8g8rOLvRxVYE3Y2D9RdfCzkuLIonzmscmVIduyOg==";
       };
     };
     "gauge-1.2.7" = {
@@ -30770,13 +31031,13 @@ let
         sha512 = "+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==";
       };
     };
-    "gauge-4.0.3" = {
+    "gauge-4.0.4" = {
       name = "gauge";
       packageName = "gauge";
-      version = "4.0.3";
+      version = "4.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gauge/-/gauge-4.0.3.tgz";
-        sha512 = "ICw1DhAwMtb22rYFwEHgJcx1JCwJGv3x6G0OQUq56Nge+H4Q8JEwr8iveS0XFlsUNSI67F5ffMGK25bK4Pmskw==";
+        url = "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz";
+        sha512 = "f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==";
       };
     };
     "gaxios-2.3.4" = {
@@ -30788,13 +31049,13 @@ let
         sha512 = "US8UMj8C5pRnao3Zykc4AAVr+cffoNKRTg9Rsf2GiuZCW69vgJj38VK2PzlPuQU73FZ/nTk9/Av6/JGcE1N9vA==";
       };
     };
-    "gaxios-4.3.2" = {
+    "gaxios-4.3.3" = {
       name = "gaxios";
       packageName = "gaxios";
-      version = "4.3.2";
+      version = "4.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz";
-        sha512 = "T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==";
+        url = "https://registry.npmjs.org/gaxios/-/gaxios-4.3.3.tgz";
+        sha512 = "gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA==";
       };
     };
     "gaze-1.1.3" = {
@@ -31481,6 +31742,15 @@ let
         sha512 = "lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==";
       };
     };
+    "glob-8.0.1" = {
+      name = "glob";
+      packageName = "glob";
+      version = "8.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-8.0.1.tgz";
+        sha512 = "cF7FYZZ47YzmCu7dDy50xSRRfO3ErRfrXuLZcNIuyiJEco0XSrGtuilG19L5xp3NcwTx7Gn+X6Tv3fmsUPTbow==";
+      };
+    };
     "glob-base-0.3.0" = {
       name = "glob-base";
       packageName = "glob-base";
@@ -31905,6 +32175,15 @@ let
         sha512 = "5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==";
       };
     };
+    "glur-1.1.2" = {
+      name = "glur";
+      packageName = "glur";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glur/-/glur-1.1.2.tgz";
+        sha1 = "f20ea36db103bfc292343921f1f91e83c3467689";
+      };
+    };
     "gm-1.23.1" = {
       name = "gm";
       packageName = "gm";
@@ -31914,22 +32193,22 @@ let
         sha1 = "2edeeb958084d0f8ea7988e5d995b1c7dfc14777";
       };
     };
-    "goldengate-10.4.2" = {
+    "goldengate-11.1.0" = {
       name = "goldengate";
       packageName = "goldengate";
-      version = "10.4.2";
+      version = "11.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/goldengate/-/goldengate-10.4.2.tgz";
-        sha512 = "VZ0VPPIuiSO5/ZZr/UqFP3X3Yv04/TZxIe+SO+Ceqy43ulthPZcnrWsB8hYW2gqZzOPJeVJaYaX9FmL70kYITw==";
+        url = "https://registry.npmjs.org/goldengate/-/goldengate-11.1.0.tgz";
+        sha512 = "nwrFxarqF2kxQXEzgcfvfqh64eokhcfyPl5i/RXGueRwUUSV7XW64A4BehcPcjKMKMxPM9RZarBTwa4vdnSZMA==";
       };
     };
-    "goldengate-11.1.0" = {
+    "goldengate-11.2.1" = {
       name = "goldengate";
       packageName = "goldengate";
-      version = "11.1.0";
+      version = "11.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/goldengate/-/goldengate-11.1.0.tgz";
-        sha512 = "nwrFxarqF2kxQXEzgcfvfqh64eokhcfyPl5i/RXGueRwUUSV7XW64A4BehcPcjKMKMxPM9RZarBTwa4vdnSZMA==";
+        url = "https://registry.npmjs.org/goldengate/-/goldengate-11.2.1.tgz";
+        sha512 = "v0REhYrm8fUJMvDAGzYhymB3R9BqTEulUcD740zNEsH2umNc9Jv+RI4sXGygIXUtUi9FSlBrO4udVerBoRMBLQ==";
       };
     };
     "gonzales-pe-4.3.0" = {
@@ -31968,13 +32247,13 @@ let
         sha512 = "NsuGBpxOzvBS4rbaeicIpgZ1caU3vNcG04kJWb51rlcYJvzXwHgPof9w4UplR2WVqlFzLkDtEStQOKhS/QcLmA==";
       };
     };
-    "google-p12-pem-3.1.3" = {
+    "google-p12-pem-3.1.4" = {
       name = "google-p12-pem";
       packageName = "google-p12-pem";
-      version = "3.1.3";
+      version = "3.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.3.tgz";
-        sha512 = "MC0jISvzymxePDVembypNefkAQp+DRP7dBE+zNUPaIjEspIlYg0++OrsNr248V9tPbz6iqtZ7rX1hxWA5B8qBQ==";
+        url = "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.4.tgz";
+        sha512 = "HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg==";
       };
     };
     "googleapis-76.0.0" = {
@@ -32040,15 +32319,6 @@ let
         sha512 = "yUhpEDLeuGiGJjRSzEq3kvt4zJtAcjKmhIiwNp/eUs75tRlXfWcHo5tcBaMQtnjHWC7nQYT5HkY/l0QOQTkVww==";
       };
     };
-    "got-11.8.2" = {
-      name = "got";
-      packageName = "got";
-      version = "11.8.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/got/-/got-11.8.2.tgz";
-        sha512 = "D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==";
-      };
-    };
     "got-11.8.3" = {
       name = "got";
       packageName = "got";
@@ -32139,13 +32409,13 @@ let
         sha512 = "J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg==";
       };
     };
-    "graceful-fs-4.2.9" = {
+    "graceful-fs-4.2.10" = {
       name = "graceful-fs";
       packageName = "graceful-fs";
-      version = "4.2.9";
+      version = "4.2.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz";
-        sha512 = "NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==";
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz";
+        sha512 = "9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==";
       };
     };
     "graceful-readlink-1.0.1" = {
@@ -32157,13 +32427,13 @@ let
         sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
       };
     };
-    "grammy-1.7.0" = {
+    "grammy-1.8.0" = {
       name = "grammy";
       packageName = "grammy";
-      version = "1.7.0";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/grammy/-/grammy-1.7.0.tgz";
-        sha512 = "Xs4vRzCkSO+8CrFP8BXXOo4BGfBGWTPoDcbj8V3kz/c01XLNXI738HWv6/qjQ+IuPLnd/Qegjy7MBogbymogUg==";
+        url = "https://registry.npmjs.org/grammy/-/grammy-1.8.0.tgz";
+        sha512 = "CG+Eq60crEjX8aqm/FeBadgfDwFaDoc3UaUwiPrxEX94D/1rRCeaj2JtaLBcDLXe9UQLENfWEEErMbkfiMR/Rg==";
       };
     };
     "grant-4.7.0" = {
@@ -32283,22 +32553,22 @@ let
         sha512 = "MBY0wEjvcgJtZUyoqpPvOE1e5qPI0hJaa1gKTqjonSFiCsNHX2lykNjpOPcodmAgH1V06ELxhGnm9kcVzqvi/g==";
       };
     };
-    "graphql-config-4.1.0" = {
+    "graphql-config-4.3.0" = {
       name = "graphql-config";
       packageName = "graphql-config";
-      version = "4.1.0";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-config/-/graphql-config-4.1.0.tgz";
-        sha512 = "Myqay6pmdcmX3KqoH+bMbeKZ1cTODpHS2CxF1ZzNnfTE+YUpGTcp01bOw6LpzamRb0T/WTYtGFbZeXGo9Hab2Q==";
+        url = "https://registry.npmjs.org/graphql-config/-/graphql-config-4.3.0.tgz";
+        sha512 = "Uiu3X7+s5c056WyrvdZVz2vG1fhAipMlYmtiCU/4Z2mX79OXDr1SqIon2MprC/pExIWJfAQZCcjYDY76fPBUQg==";
       };
     };
-    "graphql-executor-0.0.22" = {
+    "graphql-executor-0.0.23" = {
       name = "graphql-executor";
       packageName = "graphql-executor";
-      version = "0.0.22";
+      version = "0.0.23";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-executor/-/graphql-executor-0.0.22.tgz";
-        sha512 = "WbKSnSHFn6REKKH4T6UAwDM3mLUnYMQlQLNG0Fw+Lkb3ilCnL3m5lkJ7411LAI9sF7BvPbthovVZhsEUh9Xfag==";
+        url = "https://registry.npmjs.org/graphql-executor/-/graphql-executor-0.0.23.tgz";
+        sha512 = "3Ivlyfjaw3BWmGtUSnMpP/a4dcXCp0mJtj0PiPG14OKUizaMKlSEX+LX2Qed0LrxwniIwvU6B4w/koVjEPyWJg==";
       };
     };
     "graphql-extensions-0.15.0" = {
@@ -32355,15 +32625,6 @@ let
         sha512 = "Wci5MbrQj+6d7rfvbORrA9uDlfMysBWYaG49ST5TKylNaXYFf3ixFOa74iM1KtM9eidosUbI3E1JlWi0JaidJA==";
       };
     };
-    "graphql-sse-1.1.0" = {
-      name = "graphql-sse";
-      packageName = "graphql-sse";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-sse/-/graphql-sse-1.1.0.tgz";
-        sha512 = "xE8AGPJa5X+g7iFmRQw/8H+7lXIDJvSkW6lou/XSSq17opPQl+dbKOMiqraHMx52VrDgS061ZVx90OSuqS6ykA==";
-      };
-    };
     "graphql-subscriptions-1.2.1" = {
       name = "graphql-subscriptions";
       packageName = "graphql-subscriptions";
@@ -32418,13 +32679,13 @@ let
         sha512 = "sHkK9+lUm20/BGawNEWNtVAeJzhZeBg21VmvmLoT5NdGVeZWv5PdIhkcayQIAgjSyyQ17WMKmbDijIPG2On+Ag==";
       };
     };
-    "graphql-ws-5.6.4" = {
+    "graphql-ws-5.7.0" = {
       name = "graphql-ws";
       packageName = "graphql-ws";
-      version = "5.6.4";
+      version = "5.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.6.4.tgz";
-        sha512 = "5r8tAzznI1zeh7k12+3z07KkgXPckQbnC9h4kJ2TBDWG2wb26TJTbVHQOiAncDBgPbtXtc1A2BlttiRuPH2t/w==";
+        url = "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.7.0.tgz";
+        sha512 = "8yYuvnyqIjlJ/WfebOyu2GSOQeFauRxnfuTveY9yvrDGs2g3kR9Nv4gu40AKvRHbXlSJwTbMJ6dVxAtEyKwVRA==";
       };
     };
     "gray-matter-4.0.3" = {
@@ -32742,13 +33003,13 @@ let
         sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
       };
     };
-    "has-bigints-1.0.1" = {
+    "has-bigints-1.0.2" = {
       name = "has-bigints";
       packageName = "has-bigints";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz";
-        sha512 = "LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==";
+        url = "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz";
+        sha512 = "tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==";
       };
     };
     "has-binary-data-0.1.1" = {
@@ -32859,6 +33120,15 @@ let
         sha512 = "Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==";
       };
     };
+    "has-property-descriptors-1.0.0" = {
+      name = "has-property-descriptors";
+      packageName = "has-property-descriptors";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz";
+        sha512 = "62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==";
+      };
+    };
     "has-symbol-support-x-1.4.2" = {
       name = "has-symbol-support-x";
       packageName = "has-symbol-support-x";
@@ -33390,13 +33660,13 @@ let
         sha512 = "tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==";
       };
     };
-    "highlight.js-11.5.0" = {
+    "highlight.js-11.5.1" = {
       name = "highlight.js";
       packageName = "highlight.js";
-      version = "11.5.0";
+      version = "11.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-11.5.0.tgz";
-        sha512 = "SM6WDj5/C+VfIY8pZ6yW6Xa0Fm1tniYVYWYW1Q/DcMnISZFrC3aQAZZZFAAZtybKNrGId3p/DNbFTtcTXXgYBw==";
+        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-11.5.1.tgz";
+        sha512 = "LKzHqnxr4CrD2YsNoIf/o5nJ09j4yi/GcH5BnYz9UnVpZdS4ucMgvP61TDty5xJcFGRjnH4DpujkS9bHT3hq0Q==";
       };
     };
     "highlight.js-8.2.0" = {
@@ -33741,22 +34011,22 @@ let
         sha1 = "c78de65b5663aa597989dd2b7ab49200d7e4db98";
       };
     };
-    "html-tags-3.1.0" = {
+    "html-tags-3.2.0" = {
       name = "html-tags";
       packageName = "html-tags";
-      version = "3.1.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz";
-        sha512 = "1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==";
+        url = "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz";
+        sha512 = "vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==";
       };
     };
-    "html-to-text-8.1.0" = {
+    "html-to-text-8.1.1" = {
       name = "html-to-text";
       packageName = "html-to-text";
-      version = "8.1.0";
+      version = "8.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/html-to-text/-/html-to-text-8.1.0.tgz";
-        sha512 = "Z9iYAqYK2c18GswSbnxJSeMs7lyJgwR2oIkDOyOHGBbYsPsG4HvT379jj3Lcbfko8A5ceyyMHAfkmp/BiXA9/Q==";
+        url = "https://registry.npmjs.org/html-to-text/-/html-to-text-8.1.1.tgz";
+        sha512 = "uHdOmIGMy0Z1tJdcJzhbUQm3+V+6Q8YmFYCr1+SxjjwlO2Ha9S/D2eq1P8NLjH5fTzJCLQTL9xCXZNuIwraipw==";
       };
     };
     "html-void-elements-1.0.5" = {
@@ -33813,13 +34083,13 @@ let
         sha512 = "jWTtP3dCd7R8x/tt9DK3pvpcQd7HDMcRPUqPxr/i9989q2k5RHIhmlRDFeyQ/LSd8IKrteG8Ce5g0Ig4eGIipg==";
       };
     };
-    "htmlnano-2.0.0" = {
+    "htmlnano-2.0.2" = {
       name = "htmlnano";
       packageName = "htmlnano";
-      version = "2.0.0";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/htmlnano/-/htmlnano-2.0.0.tgz";
-        sha512 = "thKQfhcp2xgtsWNE27A2bliEeqVL5xjAgGn0wajyttvFFsvFWWah1ntV9aEX61gz0T6MBQ5xK/1lXuEumhJTcg==";
+        url = "https://registry.npmjs.org/htmlnano/-/htmlnano-2.0.2.tgz";
+        sha512 = "+ZrQFS4Ub+zd+/fWwfvoYCEGNEa0/zrpys6CyXxvZDwtL7Pl+pOtRkiujyvBQ7Lmfp7/iEPxtOFgxWA16Gkj3w==";
       };
     };
     "htmlparser2-3.10.1" = {
@@ -34074,13 +34344,13 @@ let
         sha512 = "13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg==";
       };
     };
-    "http-proxy-middleware-2.0.4" = {
+    "http-proxy-middleware-2.0.6" = {
       name = "http-proxy-middleware";
       packageName = "http-proxy-middleware";
-      version = "2.0.4";
+      version = "2.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz";
-        sha512 = "m/4FxX17SUvz4lJ5WPXOHDUuCwIqXLfLHs1s0uZ3oYjhoXlx9csYxaOa0ElDEJ+h8Q4iJ1s+lTMbiCa4EXIJqg==";
+        url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz";
+        sha512 = "ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==";
       };
     };
     "http-signature-0.11.0" = {
@@ -34119,13 +34389,13 @@ let
         sha512 = "3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==";
       };
     };
-    "http-status-1.5.0" = {
+    "http-status-1.5.1" = {
       name = "http-status";
       packageName = "http-status";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-status/-/http-status-1.5.0.tgz";
-        sha512 = "wcGvY31MpFNHIkUcXHHnvrE4IKYlpvitJw5P/1u892gMBAM46muQ+RH7UN1d+Ntnfx5apnOnVY6vcLmrWHOLwg==";
+        url = "https://registry.npmjs.org/http-status/-/http-status-1.5.1.tgz";
+        sha512 = "EP6M4naWmtIrCHL1QfVHz6hsQb8dJLP5rDO1oPn03eAXD3CNVXgUqR5302gr3Gl8B/gVE1zz+Pmws7aJx+VMSw==";
       };
     };
     "http2-client-1.3.5" = {
@@ -34200,6 +34470,15 @@ let
         sha512 = "EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==";
       };
     };
+    "https-proxy-agent-5.0.1" = {
+      name = "https-proxy-agent";
+      packageName = "https-proxy-agent";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz";
+        sha512 = "dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==";
+      };
+    };
     "hue-sdk-0.1.0" = {
       name = "hue-sdk";
       packageName = "hue-sdk";
@@ -34281,13 +34560,13 @@ let
         sha512 = "yozWXZx3yXVprf/MM9WqMt5WY60Im8k6ELJDNFGfyMeO+UieITbDmkvVwMnKQA3ptWqUK8fPf/tEGgklWh7Weg==";
       };
     };
-    "hyperbee-1.7.0" = {
+    "hyperbee-1.8.0" = {
       name = "hyperbee";
       packageName = "hyperbee";
-      version = "1.7.0";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hyperbee/-/hyperbee-1.7.0.tgz";
-        sha512 = "gV1maZK6fyD4UlMGTS23bi8/nnsPyq7Jn2Qzr5n3qPCQOUN3Y9vEN4oqnJxTenaOSNvDta6g0wzzSeYxYY21og==";
+        url = "https://registry.npmjs.org/hyperbee/-/hyperbee-1.8.0.tgz";
+        sha512 = "P1eF5bNhlFydbrigHsCNrtr1FAfaNp730LacSARzg8wQqwy6A2rej7REIhLfL3UQNYedBsYYdHvWYuG+wgWPwg==";
       };
     };
     "hypercore-7.7.1" = {
@@ -34668,6 +34947,15 @@ let
         sha512 = "rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==";
       };
     };
+    "ignore-walk-5.0.1" = {
+      name = "ignore-walk";
+      packageName = "ignore-walk";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-5.0.1.tgz";
+        sha512 = "yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==";
+      };
+    };
     "image-data-uri-2.0.1" = {
       name = "image-data-uri";
       packageName = "image-data-uri";
@@ -35127,6 +35415,15 @@ let
         sha512 = "7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==";
       };
     };
+    "ini-3.0.0" = {
+      name = "ini";
+      packageName = "ini";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ini/-/ini-3.0.0.tgz";
+        sha512 = "TxYQaeNW/N8ymDvwAxPyRbhMBtnEwuvaTYpOQkFx1nSeusgezHniEc/l35Vo4iCq/mMiTJbpD7oYxN98hFlfmw==";
+      };
+    };
     "init-package-json-2.0.5" = {
       name = "init-package-json";
       packageName = "init-package-json";
@@ -35154,6 +35451,15 @@ let
         sha512 = "firNp1q3xxTzoItj/eOOSZQnYSlyrWks5llCTVX37nJ59K3eXbQ8PtzCguqo8YI19EELo5QxaKnJd4VxzhU8tg==";
       };
     };
+    "ink-select-input-4.2.1" = {
+      name = "ink-select-input";
+      packageName = "ink-select-input";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ink-select-input/-/ink-select-input-4.2.1.tgz";
+        sha512 = "WvlrYdwmdnD6/nE/9mNhaaanTQOKmwy/hT/vuAqbDec3PUQBQ8Pkwszii/8eGvDTx5bGiUHu18P9D5IoB/ERaw==";
+      };
+    };
     "ink-spinner-4.0.3" = {
       name = "ink-spinner";
       packageName = "ink-spinner";
@@ -35289,15 +35595,6 @@ let
         sha512 = "0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==";
       };
     };
-    "inquirer-8.2.1" = {
-      name = "inquirer";
-      packageName = "inquirer";
-      version = "8.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/inquirer/-/inquirer-8.2.1.tgz";
-        sha512 = "pxhBaw9cyTFMjwKtkjePWDhvwzvrNGAw7En4hottzlPvz80GZaMZthdDU35aA6/f5FRZf3uhE057q8w1DE3V2g==";
-      };
-    };
     "inquirer-8.2.2" = {
       name = "inquirer";
       packageName = "inquirer";
@@ -35631,40 +35928,31 @@ let
         sha512 = "CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==";
       };
     };
-    "invoices-2.0.1" = {
-      name = "invoices";
-      packageName = "invoices";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/invoices/-/invoices-2.0.1.tgz";
-        sha512 = "qd6Os70iotC/P09ArTWsXB3/G8MJRYMkrJQ1k2983kzdKVlROgWobKmdvrA/IFmjg0Ztg/wDkhx49dIQqT8PzQ==";
-      };
-    };
-    "invoices-2.0.2" = {
+    "invoices-2.0.4" = {
       name = "invoices";
       packageName = "invoices";
-      version = "2.0.2";
+      version = "2.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/invoices/-/invoices-2.0.2.tgz";
-        sha512 = "d1PX0ivZUw5u5kqIZ4bEajzTmKMe6EHXry4ZypsKT6SuvG4bTmn3sdCz867EhuMNZY2/Yj3/R1LXqCVTtsDPmA==";
+        url = "https://registry.npmjs.org/invoices/-/invoices-2.0.4.tgz";
+        sha512 = "+Np4KWjNSlYm7Qp12zkRN5eu9tkA7FAFIP60bmpbMbwQbgz5gV9go3bkY8CpGj+Z1zifw5N8U+pH+wko/XSjpw==";
       };
     };
-    "invoices-2.0.3" = {
+    "invoices-2.0.5" = {
       name = "invoices";
       packageName = "invoices";
-      version = "2.0.3";
+      version = "2.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/invoices/-/invoices-2.0.3.tgz";
-        sha512 = "yCAFA3CtbRIiLOdybrZhV1UQ4Rjy20dXBL/5PzlqaZjDbz+RFWtuk3BWsUF12WJo1ikSeVhFXjp6hGAGIG690g==";
+        url = "https://registry.npmjs.org/invoices/-/invoices-2.0.5.tgz";
+        sha512 = "097isfZK3qaDJXQOEqTr3IfnrFZnGCAsbyqWNHAESdG12vBC39dprZWFwPLtnv7I8exhJG6WFFlaC51qaJan/w==";
       };
     };
-    "invoices-2.0.4" = {
+    "invoices-2.0.6" = {
       name = "invoices";
       packageName = "invoices";
-      version = "2.0.4";
+      version = "2.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/invoices/-/invoices-2.0.4.tgz";
-        sha512 = "+Np4KWjNSlYm7Qp12zkRN5eu9tkA7FAFIP60bmpbMbwQbgz5gV9go3bkY8CpGj+Z1zifw5N8U+pH+wko/XSjpw==";
+        url = "https://registry.npmjs.org/invoices/-/invoices-2.0.6.tgz";
+        sha512 = "adGV6WmSItMWzuZXmgR2sbaiLKXMg4YTybNgmSc+TsNDCVgTFluJFUWaihyn1ewK483z6/vNZ9VMP2tYw5tMug==";
       };
     };
     "iota-array-1.0.0" = {
@@ -35694,13 +35982,13 @@ let
         sha512 = "u9YYtb1p2fWSbzpKmZ/b3QXWA+diRYPxc2c4y5lFB/MMk5WZ7wNZv8S3CFcIGVJ5XtlaCAl/FQy/D3eQ2XtdOA==";
       };
     };
-    "ip-num-1.3.4" = {
+    "ip-num-1.4.0" = {
       name = "ip-num";
       packageName = "ip-num";
-      version = "1.3.4";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ip-num/-/ip-num-1.3.4.tgz";
-        sha512 = "ZlO1YqjR87dsMFTxUJGj1iZR+UV+0QHWeOAMZfTBpGocBsKGc7fJdlFoa7F5xpK/guKW7dkfT6UAVDwvWjLK1Q==";
+        url = "https://registry.npmjs.org/ip-num/-/ip-num-1.4.0.tgz";
+        sha512 = "MP+gq4uBvrvm+G7EwP14GcJeFK49/p6sZrNOarMUoExLRodULJQM8mnkb/SbT1YKxRsZfh8rgwei2pUJIa35jA==";
       };
     };
     "ip-regex-2.1.0" = {
@@ -35793,13 +36081,13 @@ let
         sha512 = "HtszKchBQTcqw1DC09uD7i7vvMayHGM1OCo6AHt5pkgZEyo99ClhHTMJdf+Ezc9ovuNNxcH89QfyclGthjZJOw==";
       };
     };
-    "irc-framework-4.11.0" = {
+    "irc-framework-4.12.1" = {
       name = "irc-framework";
       packageName = "irc-framework";
-      version = "4.11.0";
+      version = "4.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/irc-framework/-/irc-framework-4.11.0.tgz";
-        sha512 = "A7AoNxAGzViARQv4sVchmTzRiWiQZMCuQVnCOhrggEgAMsc8Vr345U5/JMN5I45gqL4LVfjtruWokp5YiU23Iw==";
+        url = "https://registry.npmjs.org/irc-framework/-/irc-framework-4.12.1.tgz";
+        sha512 = "RQBQcn5y4jE/ksPHwM4yoKK/OTC7YSboyqHnX1g/W28HpEWbqdBdYTu6PwfM/2/CCrM6vceaYmCPBO345XY0yg==";
       };
     };
     "irc-framework-4.4.0" = {
@@ -36117,13 +36405,13 @@ let
         sha1 = "cfff471aee4dd5c9e158598fbe12967b5cdad345";
       };
     };
-    "is-core-module-2.8.1" = {
+    "is-core-module-2.9.0" = {
       name = "is-core-module";
       packageName = "is-core-module";
-      version = "2.8.1";
+      version = "2.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz";
-        sha512 = "SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==";
+        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz";
+        sha512 = "+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==";
       };
     };
     "is-data-descriptor-0.1.4" = {
@@ -36729,13 +37017,13 @@ let
         sha512 = "6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==";
       };
     };
-    "is-number-object-1.0.6" = {
+    "is-number-object-1.0.7" = {
       name = "is-number-object";
       packageName = "is-number-object";
-      version = "1.0.6";
+      version = "1.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz";
-        sha512 = "bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==";
+        url = "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz";
+        sha512 = "k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==";
       };
     };
     "is-obj-1.0.1" = {
@@ -37125,13 +37413,13 @@ let
         sha512 = "+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==";
       };
     };
-    "is-shared-array-buffer-1.0.1" = {
+    "is-shared-array-buffer-1.0.2" = {
       name = "is-shared-array-buffer";
       packageName = "is-shared-array-buffer";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz";
-        sha512 = "IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==";
+        url = "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz";
+        sha512 = "sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==";
       };
     };
     "is-ssh-1.3.3" = {
@@ -37620,13 +37908,13 @@ let
         sha512 = "eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==";
       };
     };
-    "istanbul-lib-instrument-5.1.0" = {
+    "istanbul-lib-instrument-5.2.0" = {
       name = "istanbul-lib-instrument";
       packageName = "istanbul-lib-instrument";
-      version = "5.1.0";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz";
-        sha512 = "czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==";
+        url = "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz";
+        sha512 = "6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==";
       };
     };
     "isuri-2.0.3" = {
@@ -37701,6 +37989,15 @@ let
         sha512 = "R2SE/AQrE4IhlyRbBp7ASIjFO+Wlpfra2Q7GMZkOjQb890MLtKyINPawJ7fr+Z7CPgHoXj2J3BNyebBIbVn8PQ==";
       };
     };
+    "iterm2-version-4.2.0" = {
+      name = "iterm2-version";
+      packageName = "iterm2-version";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iterm2-version/-/iterm2-version-4.2.0.tgz";
+        sha512 = "IoiNVk4SMPu6uTcK+1nA5QaHNok2BMDLjSl5UomrOixe5g4GkylhPwuiGdw00ysSCrXAKNMfFTu+u/Lk5f6OLQ==";
+      };
+    };
     "jade-0.26.3" = {
       name = "jade";
       packageName = "jade";
@@ -37728,13 +38025,13 @@ let
         sha512 = "M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==";
       };
     };
-    "jake-10.8.4" = {
+    "jake-10.8.5" = {
       name = "jake";
       packageName = "jake";
-      version = "10.8.4";
+      version = "10.8.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jake/-/jake-10.8.4.tgz";
-        sha512 = "MtWeTkl1qGsWUtbl/Jsca/8xSoK3x0UmS82sNbjqxxG/de/M/3b1DntdjHgPMC50enlTNwXOCRqPXLLt5cCfZA==";
+        url = "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz";
+        sha512 = "sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==";
       };
     };
     "javascript-stringify-2.1.0" = {
@@ -37773,6 +38070,15 @@ let
         sha512 = "dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==";
       };
     };
+    "jest-image-snapshot-4.2.0" = {
+      name = "jest-image-snapshot";
+      packageName = "jest-image-snapshot";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-image-snapshot/-/jest-image-snapshot-4.2.0.tgz";
+        sha512 = "6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==";
+      };
+    };
     "jest-message-util-27.5.1" = {
       name = "jest-message-util";
       packageName = "jest-message-util";
@@ -38044,13 +38350,13 @@ let
         sha512 = "NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ==";
       };
     };
-    "js-beautify-1.14.0" = {
+    "js-beautify-1.14.3" = {
       name = "js-beautify";
       packageName = "js-beautify";
-      version = "1.14.0";
+      version = "1.14.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.0.tgz";
-        sha512 = "yuck9KirNSCAwyNJbqW+BxJqJ0NLJ4PwBUzQQACl5O3qHMBXVkXb/rD0ilh/Lat/tn88zSZ+CAHOlk0DsY7GuQ==";
+        url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.3.tgz";
+        sha512 = "f1ra8PHtOEu/70EBnmiUlV8nJePS58y9qKjl4JHfYWlFH6bo7ogZBz//FAZp7jDuXtYnGYKymZPlrg2I/9Zo4g==";
       };
     };
     "js-git-0.7.8" = {
@@ -38332,49 +38638,49 @@ let
         sha512 = "xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==";
       };
     };
-    "jsii-1.55.1" = {
+    "jsii-1.57.0" = {
       name = "jsii";
       packageName = "jsii";
-      version = "1.55.1";
+      version = "1.57.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii/-/jsii-1.55.1.tgz";
-        sha512 = "9L6BztDV8PwNY5C+vwuLRJTzijh5Kyh3eijaz8NS11Jc7rTeTN8AvLxyWsIaPO+ITTP4JTsDKOU3tBaoWabRzA==";
+        url = "https://registry.npmjs.org/jsii/-/jsii-1.57.0.tgz";
+        sha512 = "r9U1+vAfYlKgJ4FnBmf8Fj/VP+ngx/uSi3FxH9BL2KrCS0PBcHml5YXsH9pBGfCSrDQvOxULlONnw+RqEbI1Lw==";
       };
     };
-    "jsii-pacmak-1.55.1" = {
+    "jsii-pacmak-1.57.0" = {
       name = "jsii-pacmak";
       packageName = "jsii-pacmak";
-      version = "1.55.1";
+      version = "1.57.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.55.1.tgz";
-        sha512 = "E208pgMfxbPbXgmcskDG0/hBbkPLGlU7S79VoXESy1Kegf7TnZjLqpBdJ3mNxIroS5gIC8DToArMHUFAQ6z0lA==";
+        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.57.0.tgz";
+        sha512 = "yUIuhVqovNEE8Oq0BKVauiv1/5AT1JguhsuKkB4AWTxdkXHxOkv4eVA/w4jiCBaGjbwVg7BjgWR8zuMuNCU98w==";
       };
     };
-    "jsii-reflect-1.55.1" = {
+    "jsii-reflect-1.57.0" = {
       name = "jsii-reflect";
       packageName = "jsii-reflect";
-      version = "1.55.1";
+      version = "1.57.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.55.1.tgz";
-        sha512 = "/Ak+sCuIjJaRCflCWT2UKPdT88EQhbPYLhtF7F42uuUr2tchlNkybNE15bigZbtqLw7SP1fp/6Dedujvf90N9Q==";
+        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.57.0.tgz";
+        sha512 = "aSmEAxxBjyrdTnzzFx1O0Q+6D8pi1jwIB7LTvdlPQMy8GuLqO8K3nAiZPjfnNpzKBM65iJKFY3I5XNjJf2iIfA==";
       };
     };
-    "jsii-rosetta-1.55.1" = {
+    "jsii-rosetta-1.57.0" = {
       name = "jsii-rosetta";
       packageName = "jsii-rosetta";
-      version = "1.55.1";
+      version = "1.57.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.55.1.tgz";
-        sha512 = "ZUzuO2JgnxE01tgIdZorsUZj5jiHP8uxeLDU/vsnmnAU2ZbMHFDT1cWacoAKESDnCyFF8VRCuPXHx8e5/SOXig==";
+        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.57.0.tgz";
+        sha512 = "ey0tBYk6or4CGkgiP+Ox+9Qxf2HD0KZnqr2dN4hpu8aiyZRJYinktaL/ryARM89EqhfpHKrgHAPD11RPDhFo9w==";
       };
     };
-    "jsii-srcmak-0.1.512" = {
+    "jsii-srcmak-0.1.536" = {
       name = "jsii-srcmak";
       packageName = "jsii-srcmak";
-      version = "0.1.512";
+      version = "0.1.536";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.512.tgz";
-        sha512 = "AA/WSd6ysD6xPrwLvsXOnbgwgN+TlX9ApXBNTsZohQxlKEnyyQAPt945rW9cu/cdNbpc/U/Dnig3CLqDn+PogQ==";
+        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.536.tgz";
+        sha512 = "tzjbiuywyJNmMgreiCp9L/fdzYKL3JD4cfjbysdTC38eU3i4b3ThQjy1j7vgjGGuFlY/rSGeq2lvVXQnSHuCnQ==";
       };
     };
     "json-bigint-1.0.0" = {
@@ -38665,22 +38971,22 @@ let
         sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
       };
     };
-    "json2csv-5.0.6" = {
+    "json2csv-5.0.7" = {
       name = "json2csv";
       packageName = "json2csv";
-      version = "5.0.6";
+      version = "5.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json2csv/-/json2csv-5.0.6.tgz";
-        sha512 = "0/4Lv6IenJV0qj2oBdgPIAmFiKKnh8qh7bmLFJ+/ZZHLjSeiL3fKKGX3UryvKPbxFbhV+JcYo9KUC19GJ/Z/4A==";
+        url = "https://registry.npmjs.org/json2csv/-/json2csv-5.0.7.tgz";
+        sha512 = "YRZbUnyaJZLZUJSRi2G/MqahCyRv9n/ds+4oIetjDF3jWQA7AG7iSeKTiZiCNqtMZM7HDyt0e/W6lEnoGEmMGA==";
       };
     };
-    "json2jsii-0.2.172" = {
+    "json2jsii-0.2.197" = {
       name = "json2jsii";
       packageName = "json2jsii";
-      version = "0.2.172";
+      version = "0.2.197";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json2jsii/-/json2jsii-0.2.172.tgz";
-        sha512 = "SXqltdQ3byo8XEsClMR5xnV6US5MWu0rBJdAC3NcvFCb0jgzu0V8ljfNJWEJJUKInuQWAsJ788ep5oKbLf3W7g==";
+        url = "https://registry.npmjs.org/json2jsii/-/json2jsii-0.2.197.tgz";
+        sha512 = "cr3PXV7IKfWSQDQ5Nx76KZf2F08b98kWKG+f1ll+Vz5jd/mslQ5JezVrrEgqnp1qhJpc9iNnWgDNtsLmTHkxEg==";
       };
     };
     "json3-3.2.6" = {
@@ -39034,13 +39340,13 @@ let
         sha1 = "b88f3a7b2e67a2a048152982c7a3756d9c4828f0";
       };
     };
-    "jszip-3.7.1" = {
+    "jszip-3.9.1" = {
       name = "jszip";
       packageName = "jszip";
-      version = "3.7.1";
+      version = "3.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz";
-        sha512 = "ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==";
+        url = "https://registry.npmjs.org/jszip/-/jszip-3.9.1.tgz";
+        sha512 = "H9A60xPqJ1CuC4Ka6qxzXZeU8aNmgOeP5IFqwJbQQwtu2EUYxota3LdsiZWplF7Wgd9tkAd0mdu36nceSaPuYw==";
       };
     };
     "junk-3.1.0" = {
@@ -39088,13 +39394,13 @@ let
         sha512 = "X00TokkRIDotUIf3EV4xUm6ELc/IkqhS/vPSHdWnsM5y0HoNMfEqrazizI7g78lpHvnRSRt/PFfKtRqJCOGIuQ==";
       };
     };
-    "just-diff-apply-4.0.1" = {
+    "just-diff-apply-5.2.0" = {
       name = "just-diff-apply";
       packageName = "just-diff-apply";
-      version = "4.0.1";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-4.0.1.tgz";
-        sha512 = "AKOkzB5P6FkfP21UlZVX/OPXx/sC2GagpLX9cBxqHqDuRjwmZ/AJRKSNrB9jHPpRW1W1ONs6gly1gW46t055nQ==";
+        url = "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.2.0.tgz";
+        sha512 = "unjtin7rnng0KUpE4RPWwTl8iwWiZuyZqOQ+vm8orV6aIXX8mHN8zlKCPPbOycfDNuLh2PBazbFhNoDJv4S/FA==";
       };
     };
     "jwa-1.4.1" = {
@@ -39349,13 +39655,13 @@ let
         sha512 = "9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==";
       };
     };
-    "keyv-4.1.1" = {
+    "keyv-4.2.2" = {
       name = "keyv";
       packageName = "keyv";
-      version = "4.1.1";
+      version = "4.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/keyv/-/keyv-4.1.1.tgz";
-        sha512 = "tGv1yP6snQVDSM4X6yxrv2zzq/EvpW+oYiUz6aueW1u9CtS8RzUQYxxmFwgZlO2jSgCxQbchhxaqXXp2hnKGpQ==";
+        url = "https://registry.npmjs.org/keyv/-/keyv-4.2.2.tgz";
+        sha512 = "uYS0vKTlBIjNCAUqrjlxmruxOEiZxZIHXyp32sdcGmP+ukFrmWUnE//RcPXJH3Vxrni1H2gsQbjHE0bH7MtMQQ==";
       };
     };
     "khroma-1.4.1" = {
@@ -40213,22 +40519,22 @@ let
         sha512 = "BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==";
       };
     };
-    "lightning-4.14.3" = {
+    "lightning-5.10.1" = {
       name = "lightning";
       packageName = "lightning";
-      version = "4.14.3";
+      version = "5.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lightning/-/lightning-4.14.3.tgz";
-        sha512 = "5i0XgY+PSaGmMQTuVdtnzDg0LiTp1krfH4seefFLJNFb6Hunxic00D/roybGgd9hlbqeGmGYXZ+YQpATKQtblA==";
+        url = "https://registry.npmjs.org/lightning/-/lightning-5.10.1.tgz";
+        sha512 = "dIrN4vPzmzq9DaMD6c+9DqQwJCMl1lOleWrhIrv+HIpzq6rdNJvUXaVJOFz1OV8P3zy2Q3+s9VxnzeN70ee+ow==";
       };
     };
-    "lightning-5.6.2" = {
+    "lightning-5.12.0" = {
       name = "lightning";
       packageName = "lightning";
-      version = "5.6.2";
+      version = "5.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lightning/-/lightning-5.6.2.tgz";
-        sha512 = "1Bfrq+FK4/yuBStMzmiFnAG//YewN9Fznm2qn86z87/u6UcWqdpWvBCRS5njtq5bG6eWgxM4DOfaw9LptyXSog==";
+        url = "https://registry.npmjs.org/lightning/-/lightning-5.12.0.tgz";
+        sha512 = "9APw2nBh8X9B0vy3LKP/Y3WZEKSNgv0QOIl+TYc4m84ZGHiaOhiYVnSnELuYqDqisNMGiCIOj+fkgjN/BkQNpg==";
       };
     };
     "lightning-5.8.2" = {
@@ -40240,6 +40546,15 @@ let
         sha512 = "ryJlD9qhbUSq4ZS6Q0WXnTgmj3IMqN1iBfUJoGAMzSbSGZAS8E8eejci88naBbbDA0N34hALpSsa5Ok7JayAdQ==";
       };
     };
+    "lightning-5.9.0" = {
+      name = "lightning";
+      packageName = "lightning";
+      version = "5.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lightning/-/lightning-5.9.0.tgz";
+        sha512 = "o084Z7QAUaxR7+nLgr+DlL2XiMJGHDq/SRhKcanP10qR0irTK1oSHDyaFmrwz33y5V/d6Tla+5yjdD217LMWAA==";
+      };
+    };
     "lilconfig-2.0.5" = {
       name = "lilconfig";
       packageName = "lilconfig";
@@ -40411,13 +40726,13 @@ let
         sha512 = "q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==";
       };
     };
-    "livereload-js-3.3.3" = {
+    "livereload-js-3.4.0" = {
       name = "livereload-js";
       packageName = "livereload-js";
-      version = "3.3.3";
+      version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/livereload-js/-/livereload-js-3.3.3.tgz";
-        sha512 = "a7Jipme3XIBIryJluWP5LQrEAvhobDPyScBe+q+MYwxBiMT2Ck7msy4tAdF8TAa33FMdJqX4guP81Yhiu6BkmQ==";
+        url = "https://registry.npmjs.org/livereload-js/-/livereload-js-3.4.0.tgz";
+        sha512 = "F/pz9ZZP+R+arY94cECTZco7PXgBXyL+KVWUPZq8AQE9TOu14GV6fYeKOviv02JCvFa4Oi3Rs1hYEpfeajc+ow==";
       };
     };
     "lmdb-2.2.4" = {
@@ -40429,40 +40744,103 @@ let
         sha512 = "gto+BB2uEob8qRiTlOq+R3uX0YNHsX9mjxj9Sbdue/LIKqu6IlZjrsjKeGyOMquc/474GEqFyX2pdytpydp0rQ==";
       };
     };
-    "lmdb-2.2.6" = {
+    "lmdb-2.3.3" = {
       name = "lmdb";
       packageName = "lmdb";
-      version = "2.2.6";
+      version = "2.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lmdb/-/lmdb-2.3.3.tgz";
+        sha512 = "CrooSvHOzd+jPXCXpiffu2+5m90Fe6L/cw90fg+4sCWNrw3W7/ad20CGuTkMVU7mAuwXEAJAfnUwvHN2pS9Rqg==";
+      };
+    };
+    "lmdb-darwin-arm64-2.3.2" = {
+      name = "lmdb-darwin-arm64";
+      packageName = "lmdb-darwin-arm64";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.3.2.tgz";
+        sha512 = "20lWWUPGKnSZRFY8FBm+vZEFx/5Deh0joz6cqJ8/0SuO/ejqRCppSsNqAxPqW87KUNR5rNfhaA2oRekMeb0cwQ==";
+      };
+    };
+    "lmdb-darwin-x64-2.3.2" = {
+      name = "lmdb-darwin-x64";
+      packageName = "lmdb-darwin-x64";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lmdb-darwin-x64/-/lmdb-darwin-x64-2.3.2.tgz";
+        sha512 = "BsBnOfgK1B11Dh4RgcgBTmkmsPv3mjBPKsA4W4E+18SW9K2aRi86CAMPXqjfY/OJDUe1pSrpVf1A83b8N/C9rg==";
+      };
+    };
+    "lmdb-linux-arm-2.3.2" = {
+      name = "lmdb-linux-arm";
+      packageName = "lmdb-linux-arm";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lmdb-linux-arm/-/lmdb-linux-arm-2.3.2.tgz";
+        sha512 = "ofxfxVQqMbaC2Ygjzk8k6xgS5Dg/3cANeLcEx14T35GoU5pQKlLAWjypptyLQEeOboEmEOpZmHMoD7sWu/zakQ==";
+      };
+    };
+    "lmdb-linux-arm64-2.3.2" = {
+      name = "lmdb-linux-arm64";
+      packageName = "lmdb-linux-arm64";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lmdb-linux-arm64/-/lmdb-linux-arm64-2.3.2.tgz";
+        sha512 = "DIibLZHpwwlIsP9cBRmw0xqDy6wZH+CDAnOTI+eihQ5PdWjTs+kaQs5O/x8l6/8fwCB0TPYKWTqfdUbvd/F7AA==";
+      };
+    };
+    "lmdb-linux-x64-2.3.2" = {
+      name = "lmdb-linux-x64";
+      packageName = "lmdb-linux-x64";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lmdb-linux-x64/-/lmdb-linux-x64-2.3.2.tgz";
+        sha512 = "HBUd013RRQ2KpiyBqqqSPSEwPpVUpTJZdTZGDVQFQZuxqyJumt4Wye3uh6ZgEiBtxzSelt4xvAeNjYPH0dcZSQ==";
+      };
+    };
+    "lmdb-win32-x64-2.3.2" = {
+      name = "lmdb-win32-x64";
+      packageName = "lmdb-win32-x64";
+      version = "2.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lmdb/-/lmdb-2.2.6.tgz";
-        sha512 = "UmQV0oZZcV3EN6rjcAjIiuWcc3MYZGWQ0GUYz46Ron5fuTa/dUow7WSQa6leFkvZIKVUdECBWVw96tckfEzUFQ==";
+        url = "https://registry.npmjs.org/lmdb-win32-x64/-/lmdb-win32-x64-2.3.2.tgz";
+        sha512 = "/hir5oU+GYm7/B6QirrpyOmIuzCKiIbWoKIJI2ebXeJlrs6Jj7UY9caPBYVkCzd79QzJnB7hIlX/F6Jx6gcUmg==";
       };
     };
-    "ln-accounting-5.0.5" = {
+    "ln-accounting-5.0.6" = {
       name = "ln-accounting";
       packageName = "ln-accounting";
-      version = "5.0.5";
+      version = "5.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ln-accounting/-/ln-accounting-5.0.6.tgz";
+        sha512 = "ep+JDvgqQTINsUskIAlLgXE2mVsR01Atl0kFbd5D41RjCvr6tnTGocKG5CSxmp5USIpQnY2Jan1VQkXjrLukBg==";
+      };
+    };
+    "ln-service-53.10.0" = {
+      name = "ln-service";
+      packageName = "ln-service";
+      version = "53.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ln-accounting/-/ln-accounting-5.0.5.tgz";
-        sha512 = "WPAdlGE9byTrL79U4PrSV19fbOCmvWlRlGydt52qPy6CSrY1xkGe2s736ge3tjwNmcFDf4XSrxq7xn/oyF658w==";
+        url = "https://registry.npmjs.org/ln-service/-/ln-service-53.10.0.tgz";
+        sha512 = "YXpywZVf/oSWiuntp5v6IRPYNCCMlsGkWkFsX4eygnXqZnKDOaBSgvBHYJ871C0SJuyQD4oN0wazTYD+PhQUGA==";
       };
     };
-    "ln-service-52.16.0" = {
+    "ln-service-53.11.0" = {
       name = "ln-service";
       packageName = "ln-service";
-      version = "52.16.0";
+      version = "53.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ln-service/-/ln-service-52.16.0.tgz";
-        sha512 = "20ZIPPyGI4odh/Jxq6Lawtc+Zx7MkPuxnn34TuhZpM6ppwVbSGJSuJPctLrhZvWdaYYeboz3BITiqI/o4KvChQ==";
+        url = "https://registry.npmjs.org/ln-service/-/ln-service-53.11.0.tgz";
+        sha512 = "qdsgLRFGdn8+zfSDgbGw584fS2QQromxp4VRXzj9nk3qveTD6IwBjaEhC1xtY73MQCHQ3ALkWVn3aYMoy5erFw==";
       };
     };
-    "ln-service-53.7.3" = {
+    "ln-service-53.13.0" = {
       name = "ln-service";
       packageName = "ln-service";
-      version = "53.7.3";
+      version = "53.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ln-service/-/ln-service-53.7.3.tgz";
-        sha512 = "iA+G0yn3j74BcGdKxhHRCDphMSgGg4NWzFNy9r484WPBjq6KQgCRcxE0I8A0Rgi73kqMckKZmYEKrJMUuJyNYw==";
+        url = "https://registry.npmjs.org/ln-service/-/ln-service-53.13.0.tgz";
+        sha512 = "QpXZgaJw139RuKwxvIHD4Wq9zwPFHfiS5Cdz58VFzjZKFJ94ZxHq4C2kzlB/CrcgL77c0TkIRHaa9r7MA/NWSg==";
       };
     };
     "ln-service-53.9.3" = {
@@ -40474,22 +40852,22 @@ let
         sha512 = "vB7pnTJveZSMHbyO6qyGbxNqo+rNTYexb3PONon2+Ow4fBUQW5eeBTj+LguuQdN7AgpXX/PHZUQM0TPFeHlVWw==";
       };
     };
-    "ln-sync-3.11.0" = {
+    "ln-sync-3.12.0" = {
       name = "ln-sync";
       packageName = "ln-sync";
-      version = "3.11.0";
+      version = "3.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ln-sync/-/ln-sync-3.11.0.tgz";
-        sha512 = "YqtS0v6zsDvv7rA51bSbXnB7Il4HQida+FpPD9KTAXdEiJW1L/NiyV4B+oosaygdUbT2oYgM3xw++L7XVBkPvA==";
+        url = "https://registry.npmjs.org/ln-sync/-/ln-sync-3.12.0.tgz";
+        sha512 = "+TFRyMVvUU9jAqRGPiawPY8cGSmfd2bKfofGsH95zTlQ4DeQLYyEPFxzqJZrkmddqdohfuF0XVW9y7+4v4eq5A==";
       };
     };
-    "ln-telegram-3.20.0" = {
+    "ln-telegram-3.21.2" = {
       name = "ln-telegram";
       packageName = "ln-telegram";
-      version = "3.20.0";
+      version = "3.21.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ln-telegram/-/ln-telegram-3.20.0.tgz";
-        sha512 = "gPh5EG0sNQUoqnn0Y1SeXXV0rNZN05LC8uKnvCbjPeHrFdx+3TdRLlMrsSITJL1xwATVtxN4+YWMuCSMEU7S+g==";
+        url = "https://registry.npmjs.org/ln-telegram/-/ln-telegram-3.21.2.tgz";
+        sha512 = "a6a/gDwArn0xlHa0FJgvuBfablxY8AO/Tm0jF8kHxBM23NdKvqWbP8EAnBYqEAw085xtJpK5/Mzh368qAWvs7w==";
       };
     };
     "load-bmfont-1.4.1" = {
@@ -40600,13 +40978,13 @@ let
         sha512 = "Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==";
       };
     };
-    "loader-runner-4.2.0" = {
+    "loader-runner-4.3.0" = {
       name = "loader-runner";
       packageName = "loader-runner";
-      version = "4.2.0";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz";
-        sha512 = "92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==";
+        url = "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz";
+        sha512 = "3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==";
       };
     };
     "loader-utils-0.2.17" = {
@@ -42022,13 +42400,13 @@ let
         sha512 = "ILKe88NeMt4gmDvk/eb615U/IVn7K9KWGkoYbdatQ69Z65nj1ZzjM6fHXfcs0Uge+e+EGnMW7DY4T9yko8vWFg==";
       };
     };
-    "log-update-5.0.0" = {
+    "log-update-5.0.1" = {
       name = "log-update";
       packageName = "log-update";
-      version = "5.0.0";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/log-update/-/log-update-5.0.0.tgz";
-        sha512 = "HovF3knyZX9sleS0OkSJ6f53JEpbzcbomC6/WJ3iuGK8i6CRb6WZ542gO2F3pdQK8hwlijddDefVFhlMpwkOSQ==";
+        url = "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz";
+        sha512 = "5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==";
       };
     };
     "log4js-3.0.6" = {
@@ -42049,13 +42427,13 @@ let
         sha512 = "Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==";
       };
     };
-    "log4js-6.4.4" = {
+    "log4js-6.4.5" = {
       name = "log4js";
       packageName = "log4js";
-      version = "6.4.4";
+      version = "6.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/log4js/-/log4js-6.4.4.tgz";
-        sha512 = "ncaWPsuw9Vl1CKA406hVnJLGQKy1OHx6buk8J4rE2lVW+NW5Y82G5/DIloO7NkqLOUtNPEANaWC1kZYVjXssPw==";
+        url = "https://registry.npmjs.org/log4js/-/log4js-6.4.5.tgz";
+        sha512 = "43RJcYZ7nfUxpPO2woTl8CJ0t5+gucLJZ43mtp2PlInT+LygCp/bl6hNJtKulCJ+++fQsjIv4EO3Mp611PfeLQ==";
       };
     };
     "logform-2.4.0" = {
@@ -42409,13 +42787,13 @@ let
         sha512 = "Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==";
       };
     };
-    "lru-cache-7.7.1" = {
+    "lru-cache-7.8.1" = {
       name = "lru-cache";
       packageName = "lru-cache";
-      version = "7.7.1";
+      version = "7.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-7.7.1.tgz";
-        sha512 = "cRffBiTW8s73eH4aTXqBcTLU0xQnwGV3/imttRHGWCrbergmnK4D6JXQd8qin5z43HnDwRI+o7mVW0LEB+tpAw==";
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-7.8.1.tgz";
+        sha512 = "E1v547OCgJvbvevfjgK9sNKIVXO96NnsTsFPBlg4ZxjhsJSODoH9lk8Bm0OxvHNm6Vm5Yqkl/1fErDxhYL8Skg==";
       };
     };
     "lru-queue-0.1.0" = {
@@ -42491,13 +42869,13 @@ let
         sha512 = "zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==";
       };
     };
-    "luxon-2.3.1" = {
+    "luxon-2.3.2" = {
       name = "luxon";
       packageName = "luxon";
-      version = "2.3.1";
+      version = "2.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/luxon/-/luxon-2.3.1.tgz";
-        sha512 = "I8vnjOmhXsMSlNMZlMkSOvgrxKJl0uOsEzdGgGNZuZPaS9KlefpE9KV95QFftlJSC+1UyCC9/I69R02cz/zcCA==";
+        url = "https://registry.npmjs.org/luxon/-/luxon-2.3.2.tgz";
+        sha512 = "MlAQQVMFhGk4WUA6gpfsy0QycnKP0+NlCBJRVRNPxxSIbjrCbQ65nrpJD3FVyJNZLuJ0uoqL57ye6BmDYgHaSw==";
       };
     };
     "lzma-native-8.0.6" = {
@@ -42680,13 +43058,13 @@ let
         sha512 = "s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==";
       };
     };
-    "make-fetch-happen-10.1.0" = {
+    "make-fetch-happen-10.1.2" = {
       name = "make-fetch-happen";
       packageName = "make-fetch-happen";
-      version = "10.1.0";
+      version = "10.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.0.tgz";
-        sha512 = "HeP4QlkadP/Op+hE+Une1070kcyN85FshQObku3/rmzRh4zDcKXA19d2L3AQR6UoaX3uZmhSOpTLH15b1vOFvQ==";
+        url = "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.2.tgz";
+        sha512 = "GWMGiZsKVeJACQGJ1P3Z+iNec7pLsU6YW1q11eaPn3RR8nRXHppFWfP7Eu0//55JK3hSjrAQRl8sDa5uXpq1Ew==";
       };
     };
     "make-fetch-happen-8.0.14" = {
@@ -42905,13 +43283,13 @@ let
         sha512 = "/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==";
       };
     };
-    "markdown-it-anchor-8.4.1" = {
+    "markdown-it-anchor-8.6.2" = {
       name = "markdown-it-anchor";
       packageName = "markdown-it-anchor";
-      version = "8.4.1";
+      version = "8.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.4.1.tgz";
-        sha512 = "sLODeRetZ/61KkKLJElaU3NuU2z7MhXf12Ml1WJMSdwpngeofneCRF+JBbat8HiSqhniOMuTemXMrsI7hA6XyA==";
+        url = "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.2.tgz";
+        sha512 = "JNaekTlIwwyYGBN3zifZDxgz4bSL8sbEj58fdTZGmPSMMGXBZapFjcZk2I33Jy79c1fvCKHpF7MA/67FOTjvzA==";
       };
     };
     "markdown-it-deflist-2.1.0" = {
@@ -43112,13 +43490,13 @@ let
         sha512 = "/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==";
       };
     };
-    "marked-4.0.12" = {
+    "marked-4.0.14" = {
       name = "marked";
       packageName = "marked";
-      version = "4.0.12";
+      version = "4.0.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz";
-        sha512 = "hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==";
+        url = "https://registry.npmjs.org/marked/-/marked-4.0.14.tgz";
+        sha512 = "HL5sSPE/LP6U9qKgngIIPTthuxC0jrfxpYMZ3LdGDD3vTnLs59m2Z7r6+LNDR3ToqEQdkKd6YaaEfJhodJmijQ==";
       };
     };
     "marked-terminal-3.3.0" = {
@@ -44012,6 +44390,15 @@ let
         sha512 = "ITSHjwVaby1Li738sxhF48sLTxcNyUAoWfoqyztL1f7J6JOLpHOuQPNLBb6lxGPUA0u7xP9IRULgvod0dKu35A==";
       };
     };
+    "mermaid-9.0.0" = {
+      name = "mermaid";
+      packageName = "mermaid";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mermaid/-/mermaid-9.0.0.tgz";
+        sha512 = "HN0gHZ1+2RnyCR/7pS3ceRMGlt/2PpWAM5dUAzTEQ4nmMOM2Ix7XodcPkQbA7BradLQ5LwFhlH5jcMu1LARl1Q==";
+      };
+    };
     "meros-1.1.4" = {
       name = "meros";
       packageName = "meros";
@@ -44453,13 +44840,13 @@ let
         sha512 = "U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==";
       };
     };
-    "micromark-util-events-to-acorn-1.0.4" = {
+    "micromark-util-events-to-acorn-1.0.6" = {
       name = "micromark-util-events-to-acorn";
       packageName = "micromark-util-events-to-acorn";
-      version = "1.0.4";
+      version = "1.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-1.0.4.tgz";
-        sha512 = "dpo8ecREK5s/KMph7jJ46RLM6g7N21CMc9LAJQbDLdbQnTpijigkSJPTIfLXZ+h5wdXlcsQ+b6ufAE9v76AdgA==";
+        url = "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-1.0.6.tgz";
+        sha512 = "+kUMe2kNGy4mljNVt+YmFfwomSIVqX3NI6ePrk6SIl/0GaR53a6eUIGmhV5DDUkbLPPNWgVFCS6ExOqb0WFgHQ==";
       };
     };
     "micromark-util-html-tag-name-1.0.0" = {
@@ -44696,13 +45083,13 @@ let
         sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==";
       };
     };
-    "mime-db-1.50.0" = {
+    "mime-db-1.51.0" = {
       name = "mime-db";
       packageName = "mime-db";
-      version = "1.50.0";
+      version = "1.51.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz";
-        sha512 = "9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==";
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz";
+        sha512 = "5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==";
       };
     };
     "mime-db-1.52.0" = {
@@ -44750,13 +45137,13 @@ let
         sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
       };
     };
-    "mime-types-2.1.33" = {
+    "mime-types-2.1.34" = {
       name = "mime-types";
       packageName = "mime-types";
-      version = "2.1.33";
+      version = "2.1.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz";
-        sha512 = "plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==";
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz";
+        sha512 = "6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==";
       };
     };
     "mime-types-2.1.35" = {
@@ -45398,6 +45785,15 @@ let
         sha512 = "kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==";
       };
     };
+    "moment-2.29.3" = {
+      name = "moment";
+      packageName = "moment";
+      version = "2.29.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz";
+        sha512 = "c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==";
+      };
+    };
     "moment-2.7.0" = {
       name = "moment";
       packageName = "moment";
@@ -45434,13 +45830,13 @@ let
         sha512 = "3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==";
       };
     };
-    "mongodb-4.4.1" = {
+    "mongodb-4.5.0" = {
       name = "mongodb";
       packageName = "mongodb";
-      version = "4.4.1";
+      version = "4.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mongodb/-/mongodb-4.4.1.tgz";
-        sha512 = "IAD3nFtCR4s22vi5qjqkCBnuyDDrOW8WVSSmgHquOvGaP1iTD+XpC5tr8wAUbZ2EeZkaswwBKQFHDvl4qYcKqQ==";
+        url = "https://registry.npmjs.org/mongodb/-/mongodb-4.5.0.tgz";
+        sha512 = "A2l8MjEpKojnhbCM0MK3+UOGUSGvTNNSv7AkP1fsT7tkambrkkqN/5F2y+PhzsV0Nbv58u04TETpkaSEdI2zKA==";
       };
     };
     "mongodb-connection-string-url-2.5.2" = {
@@ -45695,22 +46091,76 @@ let
         sha512 = "VoY2AaoowHZLLKyEb5FRzuhdSzXn5quGjcMKJOJHJPxp9baYZx5t6jiHUhp5aNRlqqlt+5GXQGovMLNKsrm1hg==";
       };
     };
-    "msgpackr-1.5.5" = {
+    "msgpackr-1.5.6" = {
       name = "msgpackr";
       packageName = "msgpackr";
-      version = "1.5.5";
+      version = "1.5.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/msgpackr/-/msgpackr-1.5.5.tgz";
-        sha512 = "JG0V47xRIQ9pyUnx6Hb4+3TrQoia2nA3UIdmyTldhxaxtKFkekkKpUW/N6fwHwod9o4BGuJGtouxOk+yCP5PEA==";
+        url = "https://registry.npmjs.org/msgpackr/-/msgpackr-1.5.6.tgz";
+        sha512 = "Y1Ia1AYKcz30JOAUyyC0jCicI7SeP8NK+SVCGZIeLg2oQs28wSwW2GbHXktk4ZZmrq9/v2jU0JAbvbp2d1ewpg==";
       };
     };
-    "msgpackr-extract-1.0.16" = {
+    "msgpackr-extract-1.1.4" = {
       name = "msgpackr-extract";
       packageName = "msgpackr-extract";
-      version = "1.0.16";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-1.1.4.tgz";
+        sha512 = "WQbHvsThprXh+EqZYy+SQFEs7z6bNM7a0vgirwUfwUcphWGT2mdPcpyLCNiRsN6w5q5VKJUMblHY+tNEyceb9Q==";
+      };
+    };
+    "msgpackr-extract-darwin-arm64-1.1.0" = {
+      name = "msgpackr-extract-darwin-arm64";
+      packageName = "msgpackr-extract-darwin-arm64";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-1.1.0.tgz";
+        sha512 = "s1kHoT12tS2cCQOv+Wl3I+/cYNJXBPtwQqGA+dPYoXmchhXiE0Nso+BIfvQ5PxbmAyjj54Q5o7PnLTqVquNfZA==";
+      };
+    };
+    "msgpackr-extract-darwin-x64-1.1.0" = {
+      name = "msgpackr-extract-darwin-x64";
+      packageName = "msgpackr-extract-darwin-x64";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-1.1.0.tgz";
+        sha512 = "yx/H/i12IKg4eWGu/eKdKzJD4jaYvvujQSaVmeOMCesbSQnWo5X6YR9TFjoiNoU9Aexk1KufzL9gW+1DozG1yw==";
+      };
+    };
+    "msgpackr-extract-linux-arm-1.1.0" = {
+      name = "msgpackr-extract-linux-arm";
+      packageName = "msgpackr-extract-linux-arm";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-1.1.0.tgz";
+        sha512 = "0VvSCqi12xpavxl14gMrauwIzHqHbmSChUijy/uo3mpjB1Pk4vlisKpZsaOZvNJyNKj0ACi5jYtbWnnOd7hYGw==";
+      };
+    };
+    "msgpackr-extract-linux-arm64-1.1.0" = {
+      name = "msgpackr-extract-linux-arm64";
+      packageName = "msgpackr-extract-linux-arm64";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-1.0.16.tgz";
-        sha512 = "fxdRfQUxPrL/TizyfYfMn09dK58e+d65bRD/fcaVH4052vj30QOzzqxcQIS7B0NsqlypEQ/6Du3QmP2DhWFfCA==";
+        url = "https://registry.npmjs.org/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-1.1.0.tgz";
+        sha512 = "AxFle3fHNwz2V4CYDIGFxI6o/ZuI0lBKg0uHI8EcCMUmDE5mVAUWYge5WXmORVvb8sVWyVgFlmi3MTu4Ve6tNQ==";
+      };
+    };
+    "msgpackr-extract-linux-x64-1.1.0" = {
+      name = "msgpackr-extract-linux-x64";
+      packageName = "msgpackr-extract-linux-x64";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-1.1.0.tgz";
+        sha512 = "O+XoyNFWpdB8oQL6O/YyzffPpmG5rTNrr1nKLW70HD2ENJUhcITzbV7eZimHPzkn8LAGls1tBaMTHQezTBpFOw==";
+      };
+    };
+    "msgpackr-extract-win32-x64-1.1.0" = {
+      name = "msgpackr-extract-win32-x64";
+      packageName = "msgpackr-extract-win32-x64";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-1.1.0.tgz";
+        sha512 = "6AJdM5rNsL4yrskRfhujVSPEd6IBpgvsnIT/TPowKNLQ62iIdryizPY2PJNFiW3AJcY249AHEiDBXS1cTDPxzA==";
       };
     };
     "multer-1.4.3" = {
@@ -46208,6 +46658,15 @@ let
         sha512 = "n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==";
       };
     };
+    "nanoid-3.3.3" = {
+      name = "nanoid";
+      packageName = "nanoid";
+      version = "3.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz";
+        sha512 = "p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==";
+      };
+    };
     "nanoiterator-1.2.1" = {
       name = "nanoiterator";
       packageName = "nanoiterator";
@@ -46532,13 +46991,13 @@ let
         sha512 = "6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==";
       };
     };
-    "needle-3.0.0" = {
+    "needle-3.1.0" = {
       name = "needle";
       packageName = "needle";
-      version = "3.0.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/needle/-/needle-3.0.0.tgz";
-        sha512 = "eGr0qnfHxAjr+Eptl1zr2lgUQUPC1SZfTkg2kFi0kxr1ChJonHUVYobkug8siBKMlyUVVp56MSkp6CSeXH/jgw==";
+        url = "https://registry.npmjs.org/needle/-/needle-3.1.0.tgz";
+        sha512 = "gCE9weDhjVGCRqS8dwDR/D3GTAeyXLXuqp7I8EzH6DllZGXSUyxuqqLh+YX9rMAWaaTFyVAg6rHGL25dqvczKw==";
       };
     };
     "negotiator-0.3.0" = {
@@ -46623,13 +47082,13 @@ let
         sha512 = "SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==";
       };
     };
-    "nested-error-stacks-2.1.0" = {
+    "nested-error-stacks-2.1.1" = {
       name = "nested-error-stacks";
       packageName = "nested-error-stacks";
-      version = "2.1.0";
+      version = "2.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz";
-        sha512 = "AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==";
+        url = "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz";
+        sha512 = "9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==";
       };
     };
     "netmask-1.0.6" = {
@@ -46875,13 +47334,13 @@ let
         sha512 = "/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==";
       };
     };
-    "node-abi-3.8.0" = {
+    "node-abi-3.15.0" = {
       name = "node-abi";
       packageName = "node-abi";
-      version = "3.8.0";
+      version = "3.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-abi/-/node-abi-3.8.0.tgz";
-        sha512 = "tzua9qWWi7iW4I42vUPKM+SfaF0vQSLAm4yO5J83mSwB7GeoWrDKC/K+8YCnYNwqP5duwazbw2X9l4m8SC2cUw==";
+        url = "https://registry.npmjs.org/node-abi/-/node-abi-3.15.0.tgz";
+        sha512 = "Ic6z/j6I9RLm4ov7npo1I48UQr2BEyFCqh6p7S1dhEx9jPO0GPGq/e2Rb7x7DroQrmiVMz/Bw1vJm9sPAl2nxA==";
       };
     };
     "node-abort-controller-3.0.1" = {
@@ -47055,15 +47514,6 @@ let
         sha512 = "NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==";
       };
     };
-    "node-fetch-2.6.0" = {
-      name = "node-fetch";
-      packageName = "node-fetch";
-      version = "2.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz";
-        sha512 = "8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==";
-      };
-    };
     "node-fetch-2.6.1" = {
       name = "node-fetch";
       packageName = "node-fetch";
@@ -47145,6 +47595,15 @@ let
         sha512 = "08ARB91bUi6zNKzVmaj3QO7cr397uiDT2nJ63cHjyNtCTWIgvS47j3eT0WfzUwS9+6Z5YshRaoasFkXCKrIYbA==";
       };
     };
+    "node-forge-1.3.1" = {
+      name = "node-forge";
+      packageName = "node-forge";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz";
+        sha512 = "dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==";
+      };
+    };
     "node-gyp-3.8.0" = {
       name = "node-gyp";
       packageName = "node-gyp";
@@ -47199,13 +47658,22 @@ let
         sha512 = "dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==";
       };
     };
-    "node-gyp-build-4.3.0" = {
+    "node-gyp-build-4.4.0" = {
       name = "node-gyp-build";
       packageName = "node-gyp-build";
-      version = "4.3.0";
+      version = "4.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz";
-        sha512 = "iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==";
+        url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz";
+        sha512 = "amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==";
+      };
+    };
+    "node-gyp-build-optional-packages-4.3.2" = {
+      name = "node-gyp-build-optional-packages";
+      packageName = "node-gyp-build-optional-packages";
+      version = "4.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-4.3.2.tgz";
+        sha512 = "P5Ep3ISdmwcCkZIaBaQamQtWAG0facC89phWZgi5Z3hBU//J6S48OIvyZWSPPf6yQMklLZiqoosWAZUj7N+esA==";
       };
     };
     "node-hid-2.1.1" = {
@@ -47352,13 +47820,13 @@ let
         sha512 = "rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==";
       };
     };
-    "node-releases-2.0.2" = {
+    "node-releases-2.0.3" = {
       name = "node-releases";
       packageName = "node-releases";
-      version = "2.0.2";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz";
-        sha512 = "XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==";
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz";
+        sha512 = "maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==";
       };
     };
     "node-rsa-1.1.1" = {
@@ -47847,6 +48315,15 @@ let
         sha512 = "09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==";
       };
     };
+    "npm-install-checks-5.0.0" = {
+      name = "npm-install-checks";
+      packageName = "npm-install-checks";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-5.0.0.tgz";
+        sha512 = "65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA==";
+      };
+    };
     "npm-keyword-5.0.0" = {
       name = "npm-keyword";
       packageName = "npm-keyword";
@@ -47919,13 +48396,13 @@ let
         sha512 = "LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==";
       };
     };
-    "npm-package-arg-9.0.1" = {
+    "npm-package-arg-9.0.2" = {
       name = "npm-package-arg";
       packageName = "npm-package-arg";
-      version = "9.0.1";
+      version = "9.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.0.1.tgz";
-        sha512 = "Xs9wznfEAmZAR61qsYH3iN24V/qMYYkvAR5CRQNMvC6PjN2fHtO8y9XP/xdp5K+Icx+u1wMBMgWRPCmAEChSog==";
+        url = "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.0.2.tgz";
+        sha512 = "v/miORuX8cndiOheW8p2moNuPJ7QhcFh9WGlTorruG8hXSA23vMTEp5hTCmDxic0nD8KHhj/NQgFuySD3GYY3g==";
       };
     };
     "npm-packlist-1.4.8" = {
@@ -47955,13 +48432,13 @@ let
         sha512 = "L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==";
       };
     };
-    "npm-packlist-4.0.0" = {
+    "npm-packlist-5.0.0" = {
       name = "npm-packlist";
       packageName = "npm-packlist";
-      version = "4.0.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-4.0.0.tgz";
-        sha512 = "gL6XC/iw9YSmqArmZOGSkyy+yIZf2f7uH0p4Vmxef/irn73vd9/rDkCtvm+a9rh/QK2xGYfCAMOghM06ymzC0A==";
+        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.0.0.tgz";
+        sha512 = "uU20UwM4Hogfab1Q7htJbhcyafM9lGHxOrDjkKvR2S3z7Ds0uRaESk0cXctczk+ABT4DZWNwjB10xlurFdEwZg==";
       };
     };
     "npm-pick-manifest-6.1.1" = {
@@ -47973,13 +48450,13 @@ let
         sha512 = "dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==";
       };
     };
-    "npm-pick-manifest-7.0.0" = {
+    "npm-pick-manifest-7.0.1" = {
       name = "npm-pick-manifest";
       packageName = "npm-pick-manifest";
-      version = "7.0.0";
+      version = "7.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-7.0.0.tgz";
-        sha512 = "njM1AcdioFaKd0JSGtLO09YA1WRwctjGQJbnHGmKS+u+uwP8oFvtZtOQWPYdxrnY5eJud3wn8OpH4sEIx6+GEQ==";
+        url = "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-7.0.1.tgz";
+        sha512 = "IA8+tuv8KujbsbLQvselW2XQgmXWS47t3CB0ZrzsRZ82DbDfkcFunOaPm4X7qNuhMfq+FmV7hQT4iFVpHqV7mg==";
       };
     };
     "npm-prefix-1.2.0" = {
@@ -48027,13 +48504,13 @@ let
         sha512 = "Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==";
       };
     };
-    "npm-registry-fetch-13.1.0" = {
+    "npm-registry-fetch-13.1.1" = {
       name = "npm-registry-fetch";
       packageName = "npm-registry-fetch";
-      version = "13.1.0";
+      version = "13.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.1.0.tgz";
-        sha512 = "TIYL5X8CcwDhbFMXFDShNcpG6OMCYK6VzvSr6MUWP20tCU2DJ4ao2qQg3DT+3Pet8mO6/cgbZpon4LMh3duYLg==";
+        url = "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.1.1.tgz";
+        sha512 = "5p8rwe6wQPLJ8dMqeTnA57Dp9Ox6GH9H60xkyJup07FmVlu3Mk7pf/kIIpl9gaN5bM8NM+UUx3emUWvDNTt39w==";
       };
     };
     "npm-registry-fetch-9.0.0" = {
@@ -48478,6 +48955,15 @@ let
         sha512 = "gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==";
       };
     };
+    "object-hash-3.0.0" = {
+      name = "object-hash";
+      packageName = "object-hash";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz";
+        sha512 = "RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==";
+      };
+    };
     "object-inspect-1.12.0" = {
       name = "object-inspect";
       packageName = "object-inspect";
@@ -48667,13 +49153,13 @@ let
         sha512 = "eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==";
       };
     };
-    "obliterator-2.0.2" = {
+    "obliterator-2.0.3" = {
       name = "obliterator";
       packageName = "obliterator";
-      version = "2.0.2";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/obliterator/-/obliterator-2.0.2.tgz";
-        sha512 = "g0TrA7SbUggROhDPK8cEu/qpItwH2LSKcNl4tlfBNT54XY+nOsqrs0Q68h1V9b3HOSpIWv15jb1lax2hAggdIg==";
+        url = "https://registry.npmjs.org/obliterator/-/obliterator-2.0.3.tgz";
+        sha512 = "qN5lHhArxl/789Bp3XCpssAYy7cvOdRzxzflmGEJaiipAT2b/USr1XvKjYyssPOwQ/3KjV1e8Ed9po9rie6E6A==";
       };
     };
     "observ-0.2.0" = {
@@ -48721,6 +49207,15 @@ let
         sha512 = "rH3U4eLHsV+OgkOS29ULiC9JLspwMCyCIH/+BglLPXDxQs13IK8AGD+nVmkGXqGN5JefZu85YhfIi05CsOKWPw==";
       };
     };
+    "obz-1.1.0" = {
+      name = "obz";
+      packageName = "obz";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/obz/-/obz-1.1.0.tgz";
+        sha512 = "cG6v76kgWh48urwdsFSkxQlKWCKFYkxZJMhOIG9Aj1uPKTnNW9Hvo/ROyBfGzqaZD3K75K3jhsanKssRPkNKYA==";
+      };
+    };
     "omggif-1.0.10" = {
       name = "omggif";
       packageName = "omggif";
@@ -48901,13 +49396,13 @@ let
         sha512 = "fvaSZRzprpwLFge/mcwE0CItfniNisVNamDdMK1FQUjh4ArQZ8ZWSkDaJbZc3XaANKZHq0xIa8NJpZ2HSe3oXA==";
       };
     };
-    "oo-ascii-tree-1.55.1" = {
+    "oo-ascii-tree-1.57.0" = {
       name = "oo-ascii-tree";
       packageName = "oo-ascii-tree";
-      version = "1.55.1";
+      version = "1.57.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.55.1.tgz";
-        sha512 = "wGtYFm45kmxdss2XrdXC14uDUfyekbaqqZJrfvPtYHSa98Bk+RXHdTHHLQ1kwem6HT5c3ogf7+ZUBhX0B034iA==";
+        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.57.0.tgz";
+        sha512 = "f0YTN8p0IN/X05R3N8yfENqCx7seBtDdVdJa8yQc2kx/v5OuEz/femhwEerxSsVXlb/OKjo2u4QAXTkjWjbPHA==";
       };
     };
     "open-0.0.2" = {
@@ -49441,13 +49936,13 @@ let
         sha512 = "CxEP6845hLK+NHFWZ+LplGO4zfw4QSfxTlqMfvlJ988GoiUeZDMzCvqsZkFHv69sPICmJH1MDxZoQFOKXerAVw==";
       };
     };
-    "ordered-binary-1.2.4" = {
+    "ordered-binary-1.2.5" = {
       name = "ordered-binary";
       packageName = "ordered-binary";
-      version = "1.2.4";
+      version = "1.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.2.4.tgz";
-        sha512 = "A/csN0d3n+igxBPfUrjbV5GC69LWj2pjZzAAeeHXLukQ4+fytfP4T1Lg0ju7MSPSwq7KtHkGaiwO8URZN5IpLg==";
+        url = "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.2.5.tgz";
+        sha512 = "djRmZoEpOGvIRW7ufsCDHtvcUa18UC9TxnPbHhSVFZHsoyg0dtut1bWtBZ/fmxdPN62oWXrV6adM7NoWU+CneA==";
       };
     };
     "ordered-read-streams-1.0.1" = {
@@ -49576,22 +50071,22 @@ let
         sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
       };
     };
-    "ot-builder-1.5.0" = {
+    "ot-builder-1.5.1" = {
       name = "ot-builder";
       packageName = "ot-builder";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ot-builder/-/ot-builder-1.5.0.tgz";
-        sha512 = "taCpdbAu+OFogPf5AMdGMt2PnAGER7p4B4EWmIoMh00ZyDcyOVwgbV5V7z64wxo24tAaWXGwLqWOcI2K0SdWhQ==";
+        url = "https://registry.npmjs.org/ot-builder/-/ot-builder-1.5.1.tgz";
+        sha512 = "i5kUXVflf7Ek10jTng/E4pVt9F/8PpIQ5p3estArHrzi6OL2EfsqeQskz3IKoAhNjjfsq1h/+MpL3yNu6ZYoVg==";
       };
     };
-    "otb-ttc-bundle-1.5.0" = {
+    "otb-ttc-bundle-1.5.1" = {
       name = "otb-ttc-bundle";
       packageName = "otb-ttc-bundle";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/otb-ttc-bundle/-/otb-ttc-bundle-1.5.0.tgz";
-        sha512 = "wiavReuHttWgXplMV/T86jiT+dYPOZCq1UtsJR11m8ddI2BnDxhNZcg65OlkGU0Iq4tQmyjVG2PdX2sGH319XQ==";
+        url = "https://registry.npmjs.org/otb-ttc-bundle/-/otb-ttc-bundle-1.5.1.tgz";
+        sha512 = "i6c3SBvEHyxnptFm0uoRNbfGt6UuXnQOIChG65IFlj9OizEZhqkdwPs+AQ3CZcHcsj6/lXCs20lFOtMOYeScEg==";
       };
     };
     "ow-0.21.0" = {
@@ -50080,6 +50575,15 @@ let
         sha512 = "LdnkVwu808S7ngeKpUjJZDWXsWXqMLYtTGE2pXtKjpIs5Nn2qL6d84Sh+/gxyeJHtTz0qmOEuYnFfn61/TuU0A==";
       };
     };
+    "p2tr-1.3.1" = {
+      name = "p2tr";
+      packageName = "p2tr";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p2tr/-/p2tr-1.3.1.tgz";
+        sha512 = "gwfolcu1fmuXy2muugnXub05PuwMYzvQH1rcksd5HRCY+QS7WgJCs+01kWoqioKXuXWPMqy3HEU/hfH0Cvf3cQ==";
+      };
+    };
     "pac-proxy-agent-4.1.0" = {
       name = "pac-proxy-agent";
       packageName = "pac-proxy-agent";
@@ -50224,13 +50728,13 @@ let
         sha512 = "CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==";
       };
     };
-    "pacote-13.0.5" = {
+    "pacote-13.1.1" = {
       name = "pacote";
       packageName = "pacote";
-      version = "13.0.5";
+      version = "13.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pacote/-/pacote-13.0.5.tgz";
-        sha512 = "6CYfot3/rUAn3qqzF2d/jrrXm5HlBtvaSgfmg0VtOUAdJ8fbSq21BJwftMGArkL71yXHIbUJ7Bt5B04547HELA==";
+        url = "https://registry.npmjs.org/pacote/-/pacote-13.1.1.tgz";
+        sha512 = "MTT3k1OhUo+IpvoHGp25OwsRU0L+kJQM236OCywxvY4OIJ/YfloNW2/Yc3HMASH10BkfZaGMVK/pxybB7fWcLw==";
       };
     };
     "pad-0.0.5" = {
@@ -50251,22 +50755,13 @@ let
         sha1 = "ad1f22ce1bf0fdc0d6ddd908af17f351a404b8ac";
       };
     };
-    "paid-services-3.14.2" = {
+    "paid-services-3.15.1" = {
       name = "paid-services";
       packageName = "paid-services";
-      version = "3.14.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/paid-services/-/paid-services-3.14.2.tgz";
-        sha512 = "Juz+H52DcDe8m0DlYm3oPN1Lf3VKLG5p7/CiiNBoLbZ7vkgO1BU6v71nv1klrvYIJBL9+uwuzgDxWaqYqw4Yxw==";
-      };
-    };
-    "paid-services-3.14.4" = {
-      name = "paid-services";
-      packageName = "paid-services";
-      version = "3.14.4";
+      version = "3.15.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/paid-services/-/paid-services-3.14.4.tgz";
-        sha512 = "DLmutrDtOoxgcaiyZcdzD6nIVFwMwnkcriJhZEvVNeyzXlB+aNySn5MpB4YPlDtxKuSd6use+JZxQ5RzifcJ4g==";
+        url = "https://registry.npmjs.org/paid-services/-/paid-services-3.15.1.tgz";
+        sha512 = "TjZPz2fczIRmUlssVq2XWMB9uBnNsiSlr1dy35aGc4hqhjMQQ424kPg6iG7k+l/NWvY3wq+/woyAo2U39wWAFQ==";
       };
     };
     "pako-0.2.9" = {
@@ -50413,13 +50908,13 @@ let
         sha512 = "bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==";
       };
     };
-    "parse-conflict-json-2.0.1" = {
+    "parse-conflict-json-2.0.2" = {
       name = "parse-conflict-json";
       packageName = "parse-conflict-json";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-2.0.1.tgz";
-        sha512 = "Y7nYw+QaSGBto1LB9lgwOR05Rtz5SbuTf+Oe7HJ6SYQ/DHsvRjQ8O03oWdJbvkt6GzDWospgyZbGmjDYL0sDgA==";
+        url = "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz";
+        sha512 = "jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==";
       };
     };
     "parse-english-4.2.0" = {
@@ -51646,6 +52141,15 @@ let
         sha1 = "8f47dcec5011b477b67db03c243bc1f3085e8854";
       };
     };
+    "pixelmatch-5.2.1" = {
+      name = "pixelmatch";
+      packageName = "pixelmatch";
+      version = "5.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pixelmatch/-/pixelmatch-5.2.1.tgz";
+        sha512 = "WjcAdYSnKrrdDdqTcVEY7aB7UhhwjYQKYhHiBXdJef0MOaQeYpUdQ+iVyBLa5YBKS8MPVPPMX7rpOByISLpeEQ==";
+      };
+    };
     "pixiv-api-client-0.25.0" = {
       name = "pixiv-api-client";
       packageName = "pixiv-api-client";
@@ -51655,13 +52159,13 @@ let
         sha512 = "IWo0HwnxUEH9OtQ3qEZsKUbpdStRSomS18Gx4UV5JT1fj/E/opYGZMgpcdzC1+3ouBJECV1evzt0778S2RJ+/Q==";
       };
     };
-    "pkg-5.5.2" = {
+    "pkg-5.6.0" = {
       name = "pkg";
       packageName = "pkg";
-      version = "5.5.2";
+      version = "5.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pkg/-/pkg-5.5.2.tgz";
-        sha512 = "pD0UB2ud01C6pVv2wpGsTYJrXI/bnvGRYvMLd44wFzA1p+A2jrlTGFPAYa7YEYzmitXhx23PqalaG1eUEnSwcA==";
+        url = "https://registry.npmjs.org/pkg/-/pkg-5.6.0.tgz";
+        sha512 = "mHrAVSQWmHA41RnUmRpC7pK9lNnMfdA16CF3cqOI22a8LZxOQzF7M8YWtA2nfs+d7I0MTDXOtkDsAsFXeCpYjg==";
       };
     };
     "pkg-conf-1.1.3" = {
@@ -51709,13 +52213,13 @@ let
         sha512 = "NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==";
       };
     };
-    "pkg-fetch-3.2.6" = {
+    "pkg-fetch-3.3.0" = {
       name = "pkg-fetch";
       packageName = "pkg-fetch";
-      version = "3.2.6";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.2.6.tgz";
-        sha512 = "Q8fx6SIT022g0cdSE4Axv/xpfHeltspo2gg1KsWRinLQZOTRRAtOOaEFghA1F3jJ8FVsh8hGrL/Pb6Ea5XHIFw==";
+        url = "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.3.0.tgz";
+        sha512 = "xJnIZ1KP+8rNN+VLafwu4tEeV4m8IkFBDdCFqmAJz9K1aiXEtbARmdbEe6HlXWGSVuShSHjFXpfkKRkDBQ5kiA==";
       };
     };
     "pkg-up-2.0.0" = {
@@ -51988,6 +52492,15 @@ let
         sha512 = "NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==";
       };
     };
+    "pngjs-4.0.1" = {
+      name = "pngjs";
+      packageName = "pngjs";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pngjs/-/pngjs-4.0.1.tgz";
+        sha512 = "rf5+2/ioHeQxR6IxuYNYGFytUyG3lma/WW1nsmjeHlWwtb2aByla6dkVc8pmJ9nplzkTA0q2xx7mMWrOTqT4Gg==";
+      };
+    };
     "pngjs-5.0.0" = {
       name = "pngjs";
       packageName = "pngjs";
@@ -52006,13 +52519,13 @@ let
         sha512 = "2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg==";
       };
     };
-    "polished-4.1.4" = {
+    "polished-4.2.2" = {
       name = "polished";
       packageName = "polished";
-      version = "4.1.4";
+      version = "4.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/polished/-/polished-4.1.4.tgz";
-        sha512 = "Nq5Mbza+Auo7N3sQb1QMFaQiDO+4UexWuSGR7Cjb4Sw11SZIJcrrFtiZ+L0jT9MBsUsxDboHVASbCLbE1rnECg==";
+        url = "https://registry.npmjs.org/polished/-/polished-4.2.2.tgz";
+        sha512 = "Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==";
       };
     };
     "polyraf-1.1.0" = {
@@ -52232,13 +52745,13 @@ let
         sha512 = "/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==";
       };
     };
-    "postcss-load-config-3.1.3" = {
+    "postcss-load-config-3.1.4" = {
       name = "postcss-load-config";
       packageName = "postcss-load-config";
-      version = "3.1.3";
+      version = "3.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.3.tgz";
-        sha512 = "5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw==";
+        url = "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz";
+        sha512 = "6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==";
       };
     };
     "postcss-loader-3.0.0" = {
@@ -52583,22 +53096,22 @@ let
         sha512 = "h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==";
       };
     };
-    "postcss-selector-parser-6.0.2" = {
+    "postcss-selector-parser-6.0.10" = {
       name = "postcss-selector-parser";
       packageName = "postcss-selector-parser";
-      version = "6.0.2";
+      version = "6.0.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz";
-        sha512 = "36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==";
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz";
+        sha512 = "IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==";
       };
     };
-    "postcss-selector-parser-6.0.9" = {
+    "postcss-selector-parser-6.0.2" = {
       name = "postcss-selector-parser";
       packageName = "postcss-selector-parser";
-      version = "6.0.9";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz";
-        sha512 = "UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==";
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz";
+        sha512 = "36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==";
       };
     };
     "postcss-svgo-4.0.3" = {
@@ -52736,13 +53249,13 @@ let
         sha512 = "choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==";
       };
     };
-    "pouchdb-abstract-mapreduce-7.2.2" = {
+    "pouchdb-abstract-mapreduce-7.3.0" = {
       name = "pouchdb-abstract-mapreduce";
       packageName = "pouchdb-abstract-mapreduce";
-      version = "7.2.2";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pouchdb-abstract-mapreduce/-/pouchdb-abstract-mapreduce-7.2.2.tgz";
-        sha512 = "7HWN/2yV2JkwMnGnlp84lGvFtnm0Q55NiBUdbBcaT810+clCGKvhssBCrXnmwShD1SXTwT83aszsgiSfW+SnBA==";
+        url = "https://registry.npmjs.org/pouchdb-abstract-mapreduce/-/pouchdb-abstract-mapreduce-7.3.0.tgz";
+        sha512 = "+2fVt3SDh7D776lIGbYZOsKX5js1aUyUw7iJaTGitxSdQ2ObWSTrr3SUrj5Qo1CkgPXwRM3Tdoq/53JYAa2qCA==";
       };
     };
     "pouchdb-adapter-node-websql-7.0.0" = {
@@ -52781,31 +53294,31 @@ let
         sha512 = "yUktdOPIPvOVouCjJN3uop+bCcpdPwePrLm9eUAZNgEYnUFu0njdx7Q0WRsZ7UJ6l75HinL5ZHk4bnvEt86FLw==";
       };
     };
-    "pouchdb-binary-utils-7.2.2" = {
+    "pouchdb-binary-utils-7.3.0" = {
       name = "pouchdb-binary-utils";
       packageName = "pouchdb-binary-utils";
-      version = "7.2.2";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pouchdb-binary-utils/-/pouchdb-binary-utils-7.2.2.tgz";
-        sha512 = "shacxlmyHbUrNfE6FGYpfyAJx7Q0m91lDdEAaPoKZM3SzAmbtB1i+OaDNtYFztXjJl16yeudkDb3xOeokVL3Qw==";
+        url = "https://registry.npmjs.org/pouchdb-binary-utils/-/pouchdb-binary-utils-7.3.0.tgz";
+        sha512 = "xvBH/XGHGcou2vkEzszJxkCc7YElfRUrkLUg51Jbdmh1mogLDUO0bU3Tj6TOIIJfRkQrU/HV+dDkMAhsil0amQ==";
       };
     };
-    "pouchdb-changes-filter-7.2.2" = {
+    "pouchdb-changes-filter-7.3.0" = {
       name = "pouchdb-changes-filter";
       packageName = "pouchdb-changes-filter";
-      version = "7.2.2";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pouchdb-changes-filter/-/pouchdb-changes-filter-7.2.2.tgz";
-        sha512 = "1txJnTtL/C7zrq+spLt3pH9EDHTWmLLwp2zx8zUQrkt6eQtuLuXUI7G84xe+hfpU0rQvUzp/APYMnko0/6Rw0A==";
+        url = "https://registry.npmjs.org/pouchdb-changes-filter/-/pouchdb-changes-filter-7.3.0.tgz";
+        sha512 = "9E/EC9BP9dH9sfqUBdcWlR5HHeDdWqP82MmdEtg5c8spgxttYPwqrPfSHa7T2n55IRnaIoQbVyndmfAoz9GsOw==";
       };
     };
-    "pouchdb-collate-7.2.2" = {
+    "pouchdb-collate-7.3.0" = {
       name = "pouchdb-collate";
       packageName = "pouchdb-collate";
-      version = "7.2.2";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pouchdb-collate/-/pouchdb-collate-7.2.2.tgz";
-        sha512 = "/SMY9GGasslknivWlCVwXMRMnQ8myKHs4WryQ5535nq1Wj/ehpqWloMwxEQGvZE1Sda3LOm7/5HwLTcB8Our+w==";
+        url = "https://registry.npmjs.org/pouchdb-collate/-/pouchdb-collate-7.3.0.tgz";
+        sha512 = "ys7rXKtEr6cfghgUjknwFJiOkITebV6JmeTybJKCzMV0r2luXu0OoPQsKVpE/wbM/3F5LxfpbFKGFpPcfGMvTA==";
       };
     };
     "pouchdb-collections-7.0.0" = {
@@ -52817,22 +53330,22 @@ let
         sha512 = "DaoUr/vU24Q3gM6ghj0va9j/oBanPwkbhkvnqSyC3Dm5dgf5pculNxueLF9PKMo3ycApoWzHMh6N2N8KJbDU2Q==";
       };
     };
-    "pouchdb-collections-7.2.2" = {
+    "pouchdb-collections-7.3.0" = {
       name = "pouchdb-collections";
       packageName = "pouchdb-collections";
-      version = "7.2.2";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pouchdb-collections/-/pouchdb-collections-7.2.2.tgz";
-        sha512 = "6O9zyAYlp3UdtfneiMYuOCWdUCQNo2bgdjvNsMSacQX+3g8WvIoFQCYJjZZCpTttQGb+MHeRMr8m2U95lhJTew==";
+        url = "https://registry.npmjs.org/pouchdb-collections/-/pouchdb-collections-7.3.0.tgz";
+        sha512 = "Xr54m2+fErShXn+qAT4xwqJ+8NwddNPeTMJT4z4k1sZsrwfHmZsWbsKAyGPMF04eQaaU+7DDRMciu2VzaBUXyg==";
       };
     };
-    "pouchdb-core-7.2.2" = {
+    "pouchdb-core-7.3.0" = {
       name = "pouchdb-core";
       packageName = "pouchdb-core";
-      version = "7.2.2";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pouchdb-core/-/pouchdb-core-7.2.2.tgz";
-        sha512 = "AnMmSH+xx12Vk6oASDRQoElXfV9fSn8MIwfus0oa2lqkxowx4bvidofZbhZfKEiE6QgKwFEOBzs56MS3znI8TQ==";
+        url = "https://registry.npmjs.org/pouchdb-core/-/pouchdb-core-7.3.0.tgz";
+        sha512 = "fpEbjrYzmZivSupl7V0Aa2vHivyJHi9gx7+d021Wxajx4br515eYcN6Whk/L0L4xgoDVKoqUwmv+XgEF8EZhwg==";
       };
     };
     "pouchdb-errors-7.0.0" = {
@@ -52844,13 +53357,13 @@ let
         sha512 = "dTusY8nnTw4HIztCrNl7AoGgwvS1bVf/3/97hDaGc4ytn72V9/4dK8kTqlimi3UpaurohYRnqac0SGXYP8vgXA==";
       };
     };
-    "pouchdb-errors-7.2.2" = {
+    "pouchdb-errors-7.3.0" = {
       name = "pouchdb-errors";
       packageName = "pouchdb-errors";
-      version = "7.2.2";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pouchdb-errors/-/pouchdb-errors-7.2.2.tgz";
-        sha512 = "6GQsiWc+7uPfgEHeavG+7wuzH3JZW29Dnrvz8eVbDFE50kVFxNDVm3EkYHskvo5isG7/IkOx7PV7RPTA3keG3g==";
+        url = "https://registry.npmjs.org/pouchdb-errors/-/pouchdb-errors-7.3.0.tgz";
+        sha512 = "dTBbIC1BbCy6J9W/Csg5xROgb3wJN3HpbgAJHHSEtAkb8oA45KZmU3ZwEpNhf0AfPuQm4XgW1936PvlDlGgJiw==";
       };
     };
     "pouchdb-extend-0.1.2" = {
@@ -52862,22 +53375,22 @@ let
         sha1 = "d1ce511bf704ed2e29f7bf428a416acfffa124b8";
       };
     };
-    "pouchdb-fetch-7.2.2" = {
+    "pouchdb-fetch-7.3.0" = {
       name = "pouchdb-fetch";
       packageName = "pouchdb-fetch";
-      version = "7.2.2";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pouchdb-fetch/-/pouchdb-fetch-7.2.2.tgz";
-        sha512 = "lUHmaG6U3zjdMkh8Vob9GvEiRGwJfXKE02aZfjiVQgew+9SLkuOxNw3y2q4d1B6mBd273y1k2Lm0IAziRNxQnA==";
+        url = "https://registry.npmjs.org/pouchdb-fetch/-/pouchdb-fetch-7.3.0.tgz";
+        sha512 = "8/lcg8iMDG+GVs1dHNXA4ktJSEpH71dHU3xesMJ25tNQOqfAaaWrkfz9j71ZYDDkveLYE6UjUzl/sDacu2hSjw==";
       };
     };
-    "pouchdb-find-7.2.2" = {
+    "pouchdb-find-7.3.0" = {
       name = "pouchdb-find";
       packageName = "pouchdb-find";
-      version = "7.2.2";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pouchdb-find/-/pouchdb-find-7.2.2.tgz";
-        sha512 = "BmFeFVQ0kHmDehvJxNZl9OmIztCjPlZlVSdpijuFbk/Fi1EFPU1BAv3kLC+6DhZuOqU/BCoaUBY9sn66pPY2ag==";
+        url = "https://registry.npmjs.org/pouchdb-find/-/pouchdb-find-7.3.0.tgz";
+        sha512 = "EwhnfyxCAkKf8PG4tfndTTygEmtuz+o1LiZkxfPrflfXA3m1jo1ithib0hwBYtEwEYWuZxH6B8pRZutbLoQCGA==";
       };
     };
     "pouchdb-json-7.0.0" = {
@@ -52889,13 +53402,13 @@ let
         sha512 = "w0bNRu/7VmmCrFWMYAm62n30wvJJUT2SokyzeTyj3hRohj4GFwTRg1mSZ+iAmxgRKOFE8nzZstLG/WAB4Ymjew==";
       };
     };
-    "pouchdb-mapreduce-utils-7.2.2" = {
+    "pouchdb-mapreduce-utils-7.3.0" = {
       name = "pouchdb-mapreduce-utils";
       packageName = "pouchdb-mapreduce-utils";
-      version = "7.2.2";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pouchdb-mapreduce-utils/-/pouchdb-mapreduce-utils-7.2.2.tgz";
-        sha512 = "rAllb73hIkU8rU2LJNbzlcj91KuulpwQu804/F6xF3fhZKC/4JQMClahk+N/+VATkpmLxp1zWmvmgdlwVU4HtQ==";
+        url = "https://registry.npmjs.org/pouchdb-mapreduce-utils/-/pouchdb-mapreduce-utils-7.3.0.tgz";
+        sha512 = "KDVSd+H2r+XWTrQfKWV71SknDDYRjYXoeWs0ZQl3xITHCcTl+fIgqyagg/XN+Zy/U9LeLPGMe2JdgPx9H8lJgw==";
       };
     };
     "pouchdb-md5-7.0.0" = {
@@ -52907,13 +53420,13 @@ let
         sha512 = "yaSJKhLA3QlgloKUQeb2hLdT3KmUmPfoYdryfwHZuPTpXIRKTnMQTR9qCIRUszc0ruBpDe53DRslCgNUhAyTNQ==";
       };
     };
-    "pouchdb-md5-7.2.2" = {
+    "pouchdb-md5-7.3.0" = {
       name = "pouchdb-md5";
       packageName = "pouchdb-md5";
-      version = "7.2.2";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pouchdb-md5/-/pouchdb-md5-7.2.2.tgz";
-        sha512 = "c/RvLp2oSh8PLAWU5vFBnp6ejJABIdKqboZwRRUrWcfGDf+oyX8RgmJFlYlzMMOh4XQLUT1IoaDV8cwlsuryZw==";
+        url = "https://registry.npmjs.org/pouchdb-md5/-/pouchdb-md5-7.3.0.tgz";
+        sha512 = "wL04QgoKyd/L/TV5gxgcvlEyCJiZoXCOEFJklTzkdza/kBQNJGPH7i0ZhKa7Sb+AvZYoWZHddf1Zgv7rBScHkA==";
       };
     };
     "pouchdb-merge-7.0.0" = {
@@ -52925,13 +53438,13 @@ let
         sha512 = "tci5u6NpznQhGcPv4ho1h0miky9rs+ds/T9zQ9meQeDZbUojXNaX1Jxsb0uYEQQ+HMqdcQs3Akdl0/u0mgwPGg==";
       };
     };
-    "pouchdb-merge-7.2.2" = {
+    "pouchdb-merge-7.3.0" = {
       name = "pouchdb-merge";
       packageName = "pouchdb-merge";
-      version = "7.2.2";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pouchdb-merge/-/pouchdb-merge-7.2.2.tgz";
-        sha512 = "6yzKJfjIchBaS7Tusuk8280WJdESzFfQ0sb4jeMUNnrqs4Cx3b0DIEOYTRRD9EJDM+je7D3AZZ4AT0tFw8gb4A==";
+        url = "https://registry.npmjs.org/pouchdb-merge/-/pouchdb-merge-7.3.0.tgz";
+        sha512 = "E7LmchMzwYFm6V8OBxejzARLisanpksOju2LEfuiYnotGfNDeW7MByP0qBH0/zF8BfUyyjA1cl7ByaEpsapkeQ==";
       };
     };
     "pouchdb-promise-5.4.3" = {
@@ -52943,13 +53456,13 @@ let
         sha1 = "331d670b1989d5a03f268811214f27f54150cb2b";
       };
     };
-    "pouchdb-selector-core-7.2.2" = {
+    "pouchdb-selector-core-7.3.0" = {
       name = "pouchdb-selector-core";
       packageName = "pouchdb-selector-core";
-      version = "7.2.2";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pouchdb-selector-core/-/pouchdb-selector-core-7.2.2.tgz";
-        sha512 = "XYKCNv9oiNmSXV5+CgR9pkEkTFqxQGWplnVhO3W9P154H08lU0ZoNH02+uf+NjZ2kjse7Q1fxV4r401LEcGMMg==";
+        url = "https://registry.npmjs.org/pouchdb-selector-core/-/pouchdb-selector-core-7.3.0.tgz";
+        sha512 = "sK/cCrIGeL9ImcMhKGcwa54+bzX7Wv4hhVV+oUW3T1Nasaoxh+Muem1GuA+x1+SbTCE8y37rUg8i6DIOhX51ew==";
       };
     };
     "pouchdb-utils-7.0.0" = {
@@ -52961,13 +53474,13 @@ let
         sha512 = "1bnoX1KdZYHv9wicDIFdO0PLiVIMzNDUBUZ/yOJZ+6LW6niQCB8aCv09ZztmKfSQcU5nnN3fe656tScBgP6dOQ==";
       };
     };
-    "pouchdb-utils-7.2.2" = {
+    "pouchdb-utils-7.3.0" = {
       name = "pouchdb-utils";
       packageName = "pouchdb-utils";
-      version = "7.2.2";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pouchdb-utils/-/pouchdb-utils-7.2.2.tgz";
-        sha512 = "XmeM5ioB4KCfyB2MGZXu1Bb2xkElNwF1qG+zVFbQsKQij0zvepdOUfGuWvLRHxTOmt4muIuSOmWZObZa3NOgzQ==";
+        url = "https://registry.npmjs.org/pouchdb-utils/-/pouchdb-utils-7.3.0.tgz";
+        sha512 = "HH+5IXXWn/ZgVCSnrlydBMYn6MabT7RS7SNoo9w8qVH9efpZSp3eLchw6yMQNLw8LQefWmbbskiHV9VgJmSVWQ==";
       };
     };
     "pouchdb-wrappers-4.1.0" = {
@@ -53006,13 +53519,13 @@ let
         sha512 = "Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==";
       };
     };
-    "prebuild-install-7.0.1" = {
+    "prebuild-install-7.1.0" = {
       name = "prebuild-install";
       packageName = "prebuild-install";
-      version = "7.0.1";
+      version = "7.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.0.1.tgz";
-        sha512 = "QBSab31WqkyxpnMWQxubYAHR5S9B2+r81ucocew34Fkl98FhvKIF50jIJnNOBmAZfyNV7vE5T6gd3hTVWgY6tg==";
+        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.0.tgz";
+        sha512 = "CNcMgI1xBypOyGqjp3wOc8AAo1nMhZS3Cwd3iHIxOdAUbb+YxdNuM4Z5iIrZ8RLvOsf3F3bl7b7xGq6DjQoNYA==";
       };
     };
     "precond-0.2.3" = {
@@ -53132,13 +53645,13 @@ let
         sha512 = "vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==";
       };
     };
-    "prettier-2.6.1" = {
+    "prettier-2.6.2" = {
       name = "prettier";
       packageName = "prettier";
-      version = "2.6.1";
+      version = "2.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prettier/-/prettier-2.6.1.tgz";
-        sha512 = "8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A==";
+        url = "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz";
+        sha512 = "PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==";
       };
     };
     "prettier-bytes-1.0.4" = {
@@ -53168,13 +53681,13 @@ let
         sha512 = "GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==";
       };
     };
-    "prettier-plugin-svelte-2.6.0" = {
+    "prettier-plugin-svelte-2.7.0" = {
       name = "prettier-plugin-svelte";
       packageName = "prettier-plugin-svelte";
-      version = "2.6.0";
+      version = "2.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.6.0.tgz";
-        sha512 = "NPSRf6Y5rufRlBleok/pqg4+1FyGsL0zYhkYP6hnueeL1J/uCm3OfOZPsLX4zqD9VAdcXfyEL2PYqGv8ZoOSfA==";
+        url = "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.7.0.tgz";
+        sha512 = "fQhhZICprZot2IqEyoiUYLTRdumULGRvw0o4dzl5jt0jfzVWdGqeYW27QTWAeXhoupEZJULmNoH3ueJwUWFLIA==";
       };
     };
     "prettier-tslint-0.4.2" = {
@@ -53294,15 +53807,6 @@ let
         sha1 = "c438ca2ca33e3927671db4ab69c0e52f936a4f0f";
       };
     };
-    "printj-1.3.1" = {
-      name = "printj";
-      packageName = "printj";
-      version = "1.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/printj/-/printj-1.3.1.tgz";
-        sha512 = "GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg==";
-      };
-    };
     "prism-media-0.0.4" = {
       name = "prism-media";
       packageName = "prism-media";
@@ -53312,13 +53816,13 @@ let
         sha512 = "dG2w7WtovUa4SiYTdWn9H8Bd4JNdei2djtkP/Bk9fXq81j5Q15ZPHYSwhUVvBRbp5zMkGtu0Yk62HuMcly0pRw==";
       };
     };
-    "prismjs-1.27.0" = {
+    "prismjs-1.28.0" = {
       name = "prismjs";
       packageName = "prismjs";
-      version = "1.27.0";
+      version = "1.28.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz";
-        sha512 = "t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==";
+        url = "https://registry.npmjs.org/prismjs/-/prismjs-1.28.0.tgz";
+        sha512 = "8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw==";
       };
     };
     "private-0.1.8" = {
@@ -53348,13 +53852,13 @@ let
         sha512 = "99PZ5+RU4gqiTfK5ZDMDkZtn6eL4WlKfFyVJV7lFQvH3iGmQ85DqMTOdxorERO26LHkevR2qsxnHp0x/2UDJPA==";
       };
     };
-    "probing-2.0.3" = {
+    "probing-2.0.5" = {
       name = "probing";
       packageName = "probing";
-      version = "2.0.3";
+      version = "2.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/probing/-/probing-2.0.3.tgz";
-        sha512 = "6PuKCNitH3pjTjHndVtSkb300EQCiYPKJCxfDHlu9uwEcjDc7Fipee8U9fTm5W8frVCB7Vo4V4dlwGL9WVL2OQ==";
+        url = "https://registry.npmjs.org/probing/-/probing-2.0.5.tgz";
+        sha512 = "vlE0H17RSL3WkZVYtCyoMivLKmtp5ZMwMaSMvCiwE894iPAfNS4p4dgHk2My0tqhfRsHLebgn2p5Tq39Ik2Llw==";
       };
     };
     "proc-log-1.0.0" = {
@@ -53366,13 +53870,13 @@ let
         sha512 = "aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==";
       };
     };
-    "proc-log-2.0.0" = {
+    "proc-log-2.0.1" = {
       name = "proc-log";
       packageName = "proc-log";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/proc-log/-/proc-log-2.0.0.tgz";
-        sha512 = "I/35MfCX2H8jBUhKN8JB8nmqvQo/nKdrBodBY7L3RhDSPPyvOHwLYNmPuhwuJq7a7C3vgFKWGQM+ecPStcvOHA==";
+        url = "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz";
+        sha512 = "Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==";
       };
     };
     "process-0.10.1" = {
@@ -53699,13 +54203,13 @@ let
         sha1 = "8e57123c396ab988897fb327fd3aedc3e735e4fe";
       };
     };
-    "prompt-1.2.2" = {
+    "prompt-1.3.0" = {
       name = "prompt";
       packageName = "prompt";
-      version = "1.2.2";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prompt/-/prompt-1.2.2.tgz";
-        sha512 = "XNXhNv3PUHJDcDkISpCwSJxtw9Bor4FZnlMUDW64N/KCPdxhfVlpD5+YUXI/Z8a9QWmOhs9KSiVtR8nzPS0BYA==";
+        url = "https://registry.npmjs.org/prompt/-/prompt-1.3.0.tgz";
+        sha512 = "ZkaRWtaLBZl7KKAKndKYUL8WqNT+cQHKRZnT4RYYms48jQkFw3rrBL+/N5K/KtdEveHkxs982MX2BkDKub2ZMg==";
       };
     };
     "promptly-2.2.0" = {
@@ -53960,22 +54464,22 @@ let
         sha512 = "0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==";
       };
     };
-    "psbt-1.1.10" = {
+    "psbt-2.0.0" = {
       name = "psbt";
       packageName = "psbt";
-      version = "1.1.10";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/psbt/-/psbt-1.1.10.tgz";
-        sha512 = "LLyJcNVKRK8AUXKcpCrZA21+mlrjzlzTLQZp/Yu279hqqQrakAu9IusT7zEddhhkQrzm6UQ9cER3nhrIZqh0hw==";
+        url = "https://registry.npmjs.org/psbt/-/psbt-2.0.0.tgz";
+        sha512 = "V3RueLeXhP/WZETCtUxFn9aaEjHKdJIp2jir1rgK3iU0fV4hC0f45wDRDrrtcFHIUyvudgzhg6Bcgr8cGaWXlA==";
       };
     };
-    "psbt-2.0.0" = {
+    "psbt-2.0.1" = {
       name = "psbt";
       packageName = "psbt";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/psbt/-/psbt-2.0.0.tgz";
-        sha512 = "V3RueLeXhP/WZETCtUxFn9aaEjHKdJIp2jir1rgK3iU0fV4hC0f45wDRDrrtcFHIUyvudgzhg6Bcgr8cGaWXlA==";
+        url = "https://registry.npmjs.org/psbt/-/psbt-2.0.1.tgz";
+        sha512 = "4s5DSXDJ9xAYjuRJXf8rEuqs+Leyl11TE3y98xzlhMJN2UYXSLkAW1KSUdm/gdu1cSTcdcicIFZscNXmxFko+w==";
       };
     };
     "pseudomap-1.0.2" = {
@@ -54887,13 +55391,13 @@ let
         sha512 = "2cP8mBoqnu5gzAVpbZ0fRaobBWZM8GEUF4I1F6WbgHrKV/rz7SX8PG2wMymZgD0wo0UBlg2FBPNxlF/xlqW6+w==";
       };
     };
-    "puppeteer-13.5.1" = {
+    "puppeteer-13.6.0" = {
       name = "puppeteer";
       packageName = "puppeteer";
-      version = "13.5.1";
+      version = "13.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/puppeteer/-/puppeteer-13.5.1.tgz";
-        sha512 = "wWxO//vMiqxlvuzHMAJ0pRJeDHvDtM7DQpW1GKdStz2nZo2G42kOXBDgkmQ+zqjwMCFofKGesBeeKxIkX9BO+w==";
+        url = "https://registry.npmjs.org/puppeteer/-/puppeteer-13.6.0.tgz";
+        sha512 = "EJXhTyY5bXNPLFXPGcY9JaF6EKJIX8ll8cGG3WUK+553Jx96oDf1cB+lkFOro9p0X16tY+9xx7zYWl+vnWgW2g==";
       };
     };
     "purest-3.1.0" = {
@@ -54968,13 +55472,13 @@ let
         sha512 = "pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==";
       };
     };
-    "pyright-1.1.233" = {
+    "pyright-1.1.239" = {
       name = "pyright";
       packageName = "pyright";
-      version = "1.1.233";
+      version = "1.1.239";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.233.tgz";
-        sha512 = "qjyKJd6mfXLwaBls4Ww0CmML+K2gA4NnTelxGktLC3JQv7ioWU7lmiQ1KSr1BnmwuuTfsaJSDN3f+hUf9YPfWg==";
+        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.239.tgz";
+        sha512 = "WiXtSVKfoT5x/f6+AGJmB/jXhmEeexmvqqZ//MtCwLRI7hPmaRJJyfFCjJi+2ezEFxwcCjQQQTbclrG8jF6o/A==";
       };
     };
     "q-0.9.7" = {
@@ -55634,6 +56138,15 @@ let
         sha512 = "PPYLwZ63lXi6Tv2EZ8w3M4FzC0rVqvxivaOVS8pXSp5FMIHFnvi4MWHL3UdFLhwSy50aNtJsgjY0mBC6oFL26Q==";
       };
     };
+    "rate-limiter-flexible-2.3.6" = {
+      name = "rate-limiter-flexible";
+      packageName = "rate-limiter-flexible";
+      version = "2.3.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rate-limiter-flexible/-/rate-limiter-flexible-2.3.6.tgz";
+        sha512 = "8DVFOe89rreyut/vzwBI7vgXJynyYoYnH5XogtAKs0F/neAbCTTglXxSJ7fZeZamcFXZDvMidCBvps4KM+1srw==";
+      };
+    };
     "raven-js-3.27.2" = {
       name = "raven-js";
       packageName = "raven-js";
@@ -55751,13 +56264,13 @@ let
         sha512 = "bwfUSB37TWkHfP+PPjb/x8BUjChFmmBK44JMfVnU7paisWqZl/o5k7ttCH+EQLnrbn2Aq8Fo1LAsyUiz+WF4CQ==";
       };
     };
-    "rc-config-loader-4.0.0" = {
+    "rc-config-loader-4.1.0" = {
       name = "rc-config-loader";
       packageName = "rc-config-loader";
-      version = "4.0.0";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.0.0.tgz";
-        sha512 = "//LRTblJEcqbmmro1GCmZ39qZXD+JqzuD8Y5/IZU3Dhp3A1Yr0Xn68ks8MQ6qKfKvYCWDveUmRDKDA40c+sCXw==";
+        url = "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.0.tgz";
+        sha512 = "aW+kX4qy0CiM9L4fG4Us3oEOpIrOrXzWykAn+xldD07Y9PXWjTH744oHbv0Kc9ZwWaylw3jMjxaf14RgStrNrA==";
       };
     };
     "rc4-0.1.5" = {
@@ -55841,13 +56354,13 @@ let
         sha512 = "dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A==";
       };
     };
-    "react-devtools-core-4.24.2" = {
+    "react-devtools-core-4.24.4" = {
       name = "react-devtools-core";
       packageName = "react-devtools-core";
-      version = "4.24.2";
+      version = "4.24.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.24.2.tgz";
-        sha512 = "UC3rvQCG/dnC95NPNWBFrUEtdAEiFZ9xZe1tTHFOELVR5qfNLroZ3w9tC51NQvvK5E10G2ko3lQ5Vrh3p0bHrA==";
+        url = "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.24.4.tgz";
+        sha512 = "jbX8Yqyq4YvFEobHyXVlGaH0Cs/+EOdb3PL911bxaR5BnzbB5TE4RFHC1iOgT4vRH3VxIIrVQ7lR9vsiFFCYCA==";
       };
     };
     "react-dom-17.0.2" = {
@@ -55859,13 +56372,13 @@ let
         sha512 = "s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==";
       };
     };
-    "react-error-overlay-6.0.10" = {
+    "react-error-overlay-6.0.11" = {
       name = "react-error-overlay";
       packageName = "react-error-overlay";
-      version = "6.0.10";
+      version = "6.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz";
-        sha512 = "mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA==";
+        url = "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz";
+        sha512 = "/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==";
       };
     };
     "react-fast-compare-3.2.0" = {
@@ -56111,6 +56624,15 @@ let
         sha512 = "HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw==";
       };
     };
+    "read-cmd-shim-3.0.0" = {
+      name = "read-cmd-shim";
+      packageName = "read-cmd-shim";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-3.0.0.tgz";
+        sha512 = "KQDVjGqhZk92PPNRj9ZEXEuqg8bUobSKRw+q0YQ3TKI5xkce7bUJobL4Z/OtiEbAAv70yEpYIXp4iQ9L8oPVog==";
+      };
+    };
     "read-last-lines-1.6.0" = {
       name = "read-last-lines";
       packageName = "read-last-lines";
@@ -56165,13 +56687,13 @@ let
         sha512 = "Dqer4pqzamDE2O4M55xp1qZMuLPqi4ldk2ya648FOMHRjwMzFhuxVrG04wd0c38IsvkVdr3vgHI6z+QTPdAjrQ==";
       };
     };
-    "read-package-json-5.0.0" = {
+    "read-package-json-5.0.1" = {
       name = "read-package-json";
       packageName = "read-package-json";
-      version = "5.0.0";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.0.tgz";
-        sha512 = "1cjk2MV5ONDMn34uxSID3X8NY7VKsXfJnjbcVdFMvHEnJOBzU6MJ7/3yg6QFVZDq5/1yFNrKBUK9kGnonyGP2Q==";
+        url = "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.1.tgz";
+        sha512 = "MALHuNgYWdGW3gKzuNMuYtcSSZbGQm94fAp16xt8VsYTLBjUSc55bLMKe6gzpWue0Tfi6CBgwCSdDAqutGDhMg==";
       };
     };
     "read-package-json-fast-2.0.3" = {
@@ -56669,13 +57191,13 @@ let
         sha1 = "b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4";
       };
     };
-    "redoc-2.0.0-rc.65" = {
+    "redoc-2.0.0-rc.66" = {
       name = "redoc";
       packageName = "redoc";
-      version = "2.0.0-rc.65";
+      version = "2.0.0-rc.66";
       src = fetchurl {
-        url = "https://registry.npmjs.org/redoc/-/redoc-2.0.0-rc.65.tgz";
-        sha512 = "VqJbhb3krYXFP8De7ygyaWsA4jr9K5avsMo3GJUDv2xPiHTOzcprkIfOaL4ZdINn03x6JT1GOa47cWhrmb5KVA==";
+        url = "https://registry.npmjs.org/redoc/-/redoc-2.0.0-rc.66.tgz";
+        sha512 = "ZjmZhYkg46QAkza4SYCouY3TEuqnkjf50uyJBiz6Dyaz55RLClofAKokPoy5uEBo0RkPjxebKf9HTGyrxNqJ8A==";
       };
     };
     "reduce-component-1.0.1" = {
@@ -56777,13 +57299,13 @@ let
         sha512 = "p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==";
       };
     };
-    "regenerator-transform-0.14.5" = {
+    "regenerator-transform-0.15.0" = {
       name = "regenerator-transform";
       packageName = "regenerator-transform";
-      version = "0.14.5";
+      version = "0.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz";
-        sha512 = "eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==";
+        url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz";
+        sha512 = "LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==";
       };
     };
     "regex-cache-0.4.4" = {
@@ -56813,13 +57335,13 @@ let
         sha512 = "1CJygtdvsfNFwiyjaMLBWtg2tfEqx/jSZ8S6TV+GlNL8kiH8rb4cm5Pb7A/C2BpyM/fA8ZJEudlCwi/jvAY+Ow==";
       };
     };
-    "regexp.prototype.flags-1.4.1" = {
+    "regexp.prototype.flags-1.4.3" = {
       name = "regexp.prototype.flags";
       packageName = "regexp.prototype.flags";
-      version = "1.4.1";
+      version = "1.4.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz";
-        sha512 = "pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==";
+        url = "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz";
+        sha512 = "fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==";
       };
     };
     "regexpp-1.1.0" = {
@@ -57902,13 +58424,13 @@ let
         sha512 = "fimzjIVw506FBZLspTAXHdpvgvQebyjpNyLRd0e6drPPRq7gcrROeGWRyF81wLqFg5ijPgnOQbmfck5wdTqpSA==";
       };
     };
-    "request-light-0.5.7" = {
+    "request-light-0.5.8" = {
       name = "request-light";
       packageName = "request-light";
-      version = "0.5.7";
+      version = "0.5.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/request-light/-/request-light-0.5.7.tgz";
-        sha512 = "i/wKzvcx7Er8tZnvqSxWuNO5ZGggu2UgZAqj/RyZ0si7lBTXL7kZiI/dWxzxnQjaY7s5HEy1qK21Do4Ncr6cVw==";
+        url = "https://registry.npmjs.org/request-light/-/request-light-0.5.8.tgz";
+        sha512 = "3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==";
       };
     };
     "request-oauth-0.0.3" = {
@@ -59288,13 +59810,13 @@ let
         sha512 = "zmXn03k3hN0KaiVTjohgkg98C3UowhL1/VSGdj4/VAAiMKGQOE80PFPxFP2Kyq0OUskPKcY5lImkhBKEHlypJA==";
       };
     };
-    "sass-1.49.9" = {
+    "sass-1.50.1" = {
       name = "sass";
       packageName = "sass";
-      version = "1.49.9";
+      version = "1.50.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz";
-        sha512 = "YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==";
+        url = "https://registry.npmjs.org/sass/-/sass-1.50.1.tgz";
+        sha512 = "noTnY41KnlW2A9P8sdwESpDmo+KBNkukI1i8+hOK3footBUcohNHtdOJbckp46XO95nuvcHDDZ+4tmOnpK3hjw==";
       };
     };
     "sass-loader-10.2.0" = {
@@ -59450,15 +59972,6 @@ let
         sha512 = "jhXqQAQVM+8Xj5EjJGVweuEzgtGWb3tmEEpl3CLP3cStInSbVHSg0QWOGQzNq8pSID4JkpeV2mPqlMDLrm0/Vw==";
       };
     };
-    "secp256k1-4.0.2" = {
-      name = "secp256k1";
-      packageName = "secp256k1";
-      version = "4.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz";
-        sha512 = "UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==";
-      };
-    };
     "secp256k1-4.0.3" = {
       name = "secp256k1";
       packageName = "secp256k1";
@@ -59720,6 +60233,15 @@ let
         sha512 = "PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==";
       };
     };
+    "semver-7.3.7" = {
+      name = "semver";
+      packageName = "semver";
+      version = "7.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz";
+        sha512 = "QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==";
+      };
+    };
     "semver-compare-1.0.0" = {
       name = "semver-compare";
       packageName = "semver-compare";
@@ -59936,13 +60458,13 @@ let
         sha512 = "Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==";
       };
     };
-    "serialize-to-js-3.1.1" = {
+    "serialize-to-js-3.1.2" = {
       name = "serialize-to-js";
       packageName = "serialize-to-js";
-      version = "3.1.1";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/serialize-to-js/-/serialize-to-js-3.1.1.tgz";
-        sha512 = "F+NGU0UHMBO4Q965tjw7rvieNVjlH6Lqi2emq/Lc9LUURYJbiCzmpi4Cy1OOjjVPtxu0c+NE85LU6968Wko5ZA==";
+        url = "https://registry.npmjs.org/serialize-to-js/-/serialize-to-js-3.1.2.tgz";
+        sha512 = "owllqNuDDEimQat7EPG0tH7JjO090xKNzUtYz6X+Sk2BXDnOCilDdNLwjWeFywG9xkJul1ULvtUQa9O4pUaY0w==";
       };
     };
     "serve-11.3.2" = {
@@ -60575,13 +61097,13 @@ let
         sha512 = "z4qtrRuaAFJS4PUd0g+xy7aN4y+RvEt/QTJpR184lhJguBA1S/LsVlvE/CM95RsYMOFJG3NGGDjqFCzKU19S/A==";
       };
     };
-    "simple-git-3.4.0" = {
+    "simple-git-3.7.0" = {
       name = "simple-git";
       packageName = "simple-git";
-      version = "3.4.0";
+      version = "3.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/simple-git/-/simple-git-3.4.0.tgz";
-        sha512 = "sBRdudUc1yvi0xQQPuHXc1L9gTWkRn4hP2bbc7q4BTxR502d3JJAGsDOhrmsBY+wAZAw5JLl82tx55fSWYE65w==";
+        url = "https://registry.npmjs.org/simple-git/-/simple-git-3.7.0.tgz";
+        sha512 = "O9HlI83ywqkYqnr7Wh3CqKNNrMkfjzpKQSGtJAhk7+H5P+lAxHBTIPgu/eO/0D9pMciepgs433p0d5S+NYv5Jg==";
       };
     };
     "simple-handshake-3.0.0" = {
@@ -60638,13 +61160,13 @@ let
         sha512 = "D1SaWpOW8afq1CZGWB8xTfrT3FekjQmPValrqncJMX7QFl8YwhrPTZvMCANLtgBwwdS+7zURyqxDDEmY558tTw==";
       };
     };
-    "simple-plist-1.3.0" = {
+    "simple-plist-1.3.1" = {
       name = "simple-plist";
       packageName = "simple-plist";
-      version = "1.3.0";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.0.tgz";
-        sha512 = "uYWpeGFtZtVt2NhG4AHgpwx323zxD85x42heMJBan1qAiqqozIlaGrwrEt6kRjXWRWIXsuV1VLCvVmZan2B5dg==";
+        url = "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz";
+        sha512 = "iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==";
       };
     };
     "simple-sha1-2.1.2" = {
@@ -61079,15 +61601,6 @@ let
         sha512 = "Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==";
       };
     };
-    "socket.io-3.1.2" = {
-      name = "socket.io";
-      packageName = "socket.io";
-      version = "3.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz";
-        sha512 = "JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==";
-      };
-    };
     "socket.io-4.3.1" = {
       name = "socket.io";
       packageName = "socket.io";
@@ -61124,15 +61637,6 @@ let
         sha512 = "WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==";
       };
     };
-    "socket.io-adapter-2.1.0" = {
-      name = "socket.io-adapter";
-      packageName = "socket.io-adapter";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz";
-        sha512 = "+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==";
-      };
-    };
     "socket.io-adapter-2.3.3" = {
       name = "socket.io-adapter";
       packageName = "socket.io-adapter";
@@ -61313,22 +61817,13 @@ let
         sha512 = "vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==";
       };
     };
-    "socks-proxy-agent-6.1.1" = {
-      name = "socks-proxy-agent";
-      packageName = "socks-proxy-agent";
-      version = "6.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz";
-        sha512 = "t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==";
-      };
-    };
-    "socks-proxy-agent-6.2.0-beta.0" = {
+    "socks-proxy-agent-6.2.0" = {
       name = "socks-proxy-agent";
       packageName = "socks-proxy-agent";
-      version = "6.2.0-beta.0";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.0-beta.0.tgz";
-        sha512 = "vJVDGsyaBh7cP8BfynQV1sSqiZ045FkNTyaWLz1g4Ut3sCIuO52sxK0ix8yvqf5n0teDyY1Pw4NRclRiuGTV+w==";
+        url = "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz";
+        sha512 = "wWqJhjb32Q6GsrUqzuFkukxb/zzide5quXYcMVpIjxalDBBYy2nqKCFQ/9+Ie4dvOYSQdOk3hUlZSdzZOd3zMQ==";
       };
     };
     "socks5-client-1.2.8" = {
@@ -61457,13 +61952,13 @@ let
         sha512 = "zlOmAKFLJzTI+MbvmkWhnOOJ++NYo0Iy7F93ARNPmvZvpWG2l8Ff3uwM3CkpHqRw8v3pcRROScM5E+vbeTeOKw==";
       };
     };
-    "sonic-boom-2.6.0" = {
+    "sonic-boom-2.7.0" = {
       name = "sonic-boom";
       packageName = "sonic-boom";
-      version = "2.6.0";
+      version = "2.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.6.0.tgz";
-        sha512 = "6xYZFRmDEtxGqfOKcDQ4cPLrNa0SPEDI+wlzDAHowXE6YV42NeXqg9mP2KkiM8JVu3lHfZ2iQKYlGOz+kTpphg==";
+        url = "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.7.0.tgz";
+        sha512 = "Ynxp0OGQG91wvDjCbFlRMHbSUmDq7dE/EgDeUJ/j+Q9x1FVkFry20cjLykxRSmlm3QS0B4JYAKE8239XKN4SHQ==";
       };
     };
     "sorcery-0.10.0" = {
@@ -61745,15 +62240,6 @@ let
         sha1 = "3722227c54e2faf24b1dc6d933cc144e6f71bfef";
       };
     };
-    "spark-md5-3.0.1" = {
-      name = "spark-md5";
-      packageName = "spark-md5";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.1.tgz";
-        sha512 = "0tF3AGSD1ppQeuffsLDIOWlKUd3lS92tFxcsrh5Pe3ZphhnoK+oXIBTzOAThZCiuINZLvpiLH/1VS1/ANEJVig==";
-      };
-    };
     "spark-md5-3.0.2" = {
       name = "spark-md5";
       packageName = "spark-md5";
@@ -61862,13 +62348,13 @@ let
         sha512 = "Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==";
       };
     };
-    "spdx-license-list-6.4.0" = {
+    "spdx-license-list-6.5.0" = {
       name = "spdx-license-list";
       packageName = "spdx-license-list";
-      version = "6.4.0";
+      version = "6.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-license-list/-/spdx-license-list-6.4.0.tgz";
-        sha512 = "4BxgJ1IZxTJuX1YxMGu2cRYK46Bk9zJNTK2/R0wNZR0cm+6SVl26/uG7FQmQtxoJQX1uZ0EpTi2L7zvMLboaBA==";
+        url = "https://registry.npmjs.org/spdx-license-list/-/spdx-license-list-6.5.0.tgz";
+        sha512 = "28O9GgFrMg2Wp8tVML0Zk+fnXaECy7UbB6pxo+93whHay/nqPyEdM07Cx6B4+j2pniUZTYr57OaIOyNTxsTwtw==";
       };
     };
     "spdy-1.32.5" = {
@@ -62168,6 +62654,25 @@ let
         sha512 = "1SdTNo+BVU211Xj1csWa8lV6KM0CtucDwRyA0VHl91wEH1Mgh7RxUpI4rVvG7OhHrzCSGaVyW5g8vKvlrk9DJA==";
       };
     };
+    "sqlite3-5.0.4" = {
+      name = "sqlite3";
+      packageName = "sqlite3";
+      version = "5.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.4.tgz";
+        sha512 = "ATvAe7JutFv/d+KTbLS58KsKn/t1raL/WGn2qZfZxwsrL/oGSP+0OlbQ2tX5jISvyu6/7JuKze3WkaiP1JAH6A==";
+      };
+    };
+    "sqlite3-git+https://github.com/mapbox/node-sqlite3.git#918052b538b0effe6c4a44c74a16b2749c08a0d2" = {
+      name = "sqlite3";
+      packageName = "sqlite3";
+      version = "5.0.2";
+      src = fetchgit {
+        url = "https://github.com/mapbox/node-sqlite3.git";
+        rev = "918052b538b0effe6c4a44c74a16b2749c08a0d2";
+        sha256 = "6950459a4c59b28b1126d52e67e722a5d1150fbacfeedb7a9dfa46778a168a04";
+      };
+    };
     "sqlstring-2.3.1" = {
       name = "sqlstring";
       packageName = "sqlstring";
@@ -62591,13 +63096,13 @@ let
         sha512 = "zZ/Q1M+9ZWlrchgh4QauD/MEUFa6eC6H6FYq6T8Of/y82JqsQBLwN6YlzbO09evE7Rx6x0oliXDCnQSjwGwQRA==";
       };
     };
-    "sscaff-1.2.239" = {
+    "sscaff-1.2.263" = {
       name = "sscaff";
       packageName = "sscaff";
-      version = "1.2.239";
+      version = "1.2.263";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sscaff/-/sscaff-1.2.239.tgz";
-        sha512 = "labp/0JhozHLJWGAdobeGgabqIosT6oTjRYPVSGQUy+P1L4qTBWLAOBCRURm+4JHLh7fOHXt7gnFLrEg42SDrA==";
+        url = "https://registry.npmjs.org/sscaff/-/sscaff-1.2.263.tgz";
+        sha512 = "K8ciVoLrZq+d1R/VpVihTLoyRnAstFuuaJqPBaoyGykNqLN6x2PDZMO6c/MbGqVerJwKNGh2Xfxl1JV1zv/7nQ==";
       };
     };
     "ssh-config-1.1.6" = {
@@ -62672,6 +63177,15 @@ let
         sha512 = "YzAzemVrXEf1OeZUpveXLeYUT5VVw/I5gxLeyzq1aMS3pRvFvCeaGliNFjKR3VKtGXRqF9WamqKwYadIG6vStQ==";
       };
     };
+    "ssim.js-3.5.0" = {
+      name = "ssim.js";
+      packageName = "ssim.js";
+      version = "3.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ssim.js/-/ssim.js-3.5.0.tgz";
+        sha512 = "Aj6Jl2z6oDmgYFFbQqK7fght19bXdOxY7Tj03nF+03M9gCBAjeIiO8/PlEGMfKDwYpw4q6iBqVq2YuREorGg/g==";
+      };
+    };
     "ssri-5.3.0" = {
       name = "ssri";
       packageName = "ssri";
@@ -62699,6 +63213,15 @@ let
         sha512 = "97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==";
       };
     };
+    "ssri-9.0.0" = {
+      name = "ssri";
+      packageName = "ssri";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ssri/-/ssri-9.0.0.tgz";
+        sha512 = "Y1Z6J8UYnexKFN1R/hxUaYoY2LVdKEzziPmVAFKiKX8fiwvCJTVzn/xYE9TEWod5OVyNfIHHuVfIEuBClL/uJQ==";
+      };
+    };
     "stable-0.1.8" = {
       name = "stable";
       packageName = "stable";
@@ -63185,6 +63708,15 @@ let
         sha512 = "PS6wT2ZyyR38Cy+lE6PBEI1ZmO2HdzZoLeDGG0zZbYikCZd0dh8FUoSeFzgWLItpBYw1WJmPVRLpykRV+lAWLQ==";
       };
     };
+    "stream-to-iterator-3.0.3" = {
+      name = "stream-to-iterator";
+      packageName = "stream-to-iterator";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-to-iterator/-/stream-to-iterator-3.0.3.tgz";
+        sha512 = "KT1EWa9Wug83efjIRA8fGaCEFblgU9yNSwoE/uXfuEb0g2LL0vbayn8p6gQ2iuxVUnrIepH0soWBjN8oUShvfg==";
+      };
+    };
     "stream-to-promise-3.0.0" = {
       name = "stream-to-promise";
       packageName = "stream-to-promise";
@@ -63257,13 +63789,13 @@ let
         sha512 = "OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==";
       };
     };
-    "streamroller-3.0.6" = {
+    "streamroller-3.0.7" = {
       name = "streamroller";
       packageName = "streamroller";
-      version = "3.0.6";
+      version = "3.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/streamroller/-/streamroller-3.0.6.tgz";
-        sha512 = "Qz32plKq/MZywYyhEatxyYc8vs994Gz0Hu2MSYXXLD233UyPeIeRBZARIIGwFer4Mdb8r3Y2UqKkgyDghM6QCg==";
+        url = "https://registry.npmjs.org/streamroller/-/streamroller-3.0.7.tgz";
+        sha512 = "kh68kwiDGuIPiPDWwRbEC5us+kfARP1e9AsQiaLaSqGrctOvMn0mtL8iNY3r4/o5nIoYi3gPI1jexguZsXDlxw==";
       };
     };
     "streamsearch-0.1.2" = {
@@ -64040,13 +64572,13 @@ let
         sha512 = "luHn2OAMGJouOnadm6Fim6WXodQ2AWDkWjYq0rMdyEwzO5PdE4LzoXAEn9LL2snmBAlwUp1URVOTF7lZR3KU+Q==";
       };
     };
-    "stylis-4.0.13" = {
+    "stylis-4.1.0" = {
       name = "stylis";
       packageName = "stylis";
-      version = "4.0.13";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz";
-        sha512 = "xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==";
+        url = "https://registry.npmjs.org/stylis/-/stylis-4.1.0.tgz";
+        sha512 = "SrSDzNasOCBTo7C2N9geFwydg/2bmdkWXd4gJirtq82m5JBYtR2+Ialck8czmfBLIdPxCOotlgJESPa8C1RqvA==";
       };
     };
     "stylus-0.54.8" = {
@@ -64094,15 +64626,6 @@ let
         sha512 = "cVqd/URpp7si1HWu5YqQ3vqQkjuolAwHypY1B4itPlS71/lsf6TQPZ2Y0ijT22EYVkvH5ove9JFJf4u7VGPuZw==";
       };
     };
-    "subscriptions-transport-ws-0.11.0" = {
-      name = "subscriptions-transport-ws";
-      packageName = "subscriptions-transport-ws";
-      version = "0.11.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.11.0.tgz";
-        sha512 = "8D4C6DIH5tGiAIpp5I0wD/xRlNiZAPGHygzCe7VzyzUoxHtawzjNAY9SUTXU05/EY2NMY9/9GF0ycizkXr1CWQ==";
-      };
-    };
     "subscriptions-transport-ws-0.9.18" = {
       name = "subscriptions-transport-ws";
       packageName = "subscriptions-transport-ws";
@@ -64130,13 +64653,13 @@ let
         sha1 = "3a26ab96e06f78cf4ace8d083f6227fa55970947";
       };
     };
-    "sucrase-3.20.3" = {
+    "sucrase-3.21.0" = {
       name = "sucrase";
       packageName = "sucrase";
-      version = "3.20.3";
+      version = "3.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sucrase/-/sucrase-3.20.3.tgz";
-        sha512 = "azqwq0/Bs6RzLAdb4dXxsCgMtAaD2hzmUr4UhSfsxO46JFPAwMnnb441B/qsudZiS6Ylea3JXZe3Q497lsgXzQ==";
+        url = "https://registry.npmjs.org/sucrase/-/sucrase-3.21.0.tgz";
+        sha512 = "FjAhMJjDcifARI7bZej0Bi1yekjWQHoEvWIXhLPwDhC6O4iZ5PtGb86WV56riW87hzpgB13wwBKO9vKAiWu5VQ==";
       };
     };
     "sudo-block-1.2.0" = {
@@ -64229,13 +64752,13 @@ let
         sha512 = "DnarpKN6Xn8e3pYlFV4Yvsj9yxLY4q5FIsUe5JvN7vjzP+YCfzXv03dTkZSD2yzrSadsNYHf0IgOUJwKjX457A==";
       };
     };
-    "supercluster-7.1.4" = {
+    "supercluster-7.1.5" = {
       name = "supercluster";
       packageName = "supercluster";
-      version = "7.1.4";
+      version = "7.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/supercluster/-/supercluster-7.1.4.tgz";
-        sha512 = "GhKkRM1jMR6WUwGPw05fs66pOFWhf59lXq+Q3J3SxPvhNcmgOtLRV6aVQPMRsmXdpaeFJGivt+t7QXUPL3ff4g==";
+        url = "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz";
+        sha512 = "EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==";
       };
     };
     "superstatic-7.1.0" = {
@@ -64328,13 +64851,13 @@ let
         sha512 = "MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==";
       };
     };
-    "supports-color-9.2.1" = {
+    "supports-color-9.2.2" = {
       name = "supports-color";
       packageName = "supports-color";
-      version = "9.2.1";
+      version = "9.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/supports-color/-/supports-color-9.2.1.tgz";
-        sha512 = "Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==";
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-9.2.2.tgz";
+        sha512 = "XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA==";
       };
     };
     "supports-hyperlinks-1.0.1" = {
@@ -64382,31 +64905,31 @@ let
         sha1 = "5a7f8a20a71188cf9e75a2cfe8eb182de90daf3b";
       };
     };
-    "svelte-3.46.4" = {
+    "svelte-3.47.0" = {
       name = "svelte";
       packageName = "svelte";
-      version = "3.46.4";
+      version = "3.47.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte/-/svelte-3.46.4.tgz";
-        sha512 = "qKJzw6DpA33CIa+C/rGp4AUdSfii0DOTCzj/2YpSKKayw5WGSS624Et9L1nU1k2OVRS9vaENQXp2CVZNU+xvIg==";
+        url = "https://registry.npmjs.org/svelte/-/svelte-3.47.0.tgz";
+        sha512 = "4JaJp3HEoTCGARRWZQIZDUanhYv0iyoHikklVHVLH9xFE9db22g4TDv7CPeNA8HD1JgjXI1vlhR1JZvvhaTu2Q==";
       };
     };
-    "svelte-preprocess-4.10.4" = {
+    "svelte-preprocess-4.10.6" = {
       name = "svelte-preprocess";
       packageName = "svelte-preprocess";
-      version = "4.10.4";
+      version = "4.10.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.10.4.tgz";
-        sha512 = "fuwol0N4UoHsNQolLFbMqWivqcJ9N0vfWO9IuPAiX/5okfoGXURyJ6nECbuEIv0nU3M8Xe2I1ONNje2buk7l6A==";
+        url = "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.10.6.tgz";
+        sha512 = "I2SV1w/AveMvgIQlUF/ZOO3PYVnhxfcpNyGt8pxpUVhPfyfL/CZBkkw/KPfuFix5FJ9TnnNYMhACK3DtSaYVVQ==";
       };
     };
-    "svelte2tsx-0.5.6" = {
+    "svelte2tsx-0.5.9" = {
       name = "svelte2tsx";
       packageName = "svelte2tsx";
-      version = "0.5.6";
+      version = "0.5.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.5.6.tgz";
-        sha512 = "B4WZUtoTdVD+F73H1RQEH3Hrv7m2/ahThmAUkjT5CTWRigQaJqYQpSjisCH1Pzfi9B37YikDnAi4u4uxwYM+iw==";
+        url = "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.5.9.tgz";
+        sha512 = "xTDASjlh+rKo4QRhTRYSH87sS7fRoyX67xhGIMPKa3FYqftRHRmMes6nVgEskiuhBovslNHYYpMMg5YM5n/STg==";
       };
     };
     "sver-compat-1.5.0" = {
@@ -64562,13 +65085,13 @@ let
         sha512 = "8z18eX8G/jbTXYzyNIaobrnD7PSN7yU/YkSasMmajrXtw0FGS64XjrKn5v37d36qmU3o1xLeuYnktshRr7uIFw==";
       };
     };
-    "swagger-ui-dist-4.9.1" = {
+    "swagger-ui-dist-4.10.3" = {
       name = "swagger-ui-dist";
       packageName = "swagger-ui-dist";
-      version = "4.9.1";
+      version = "4.10.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-4.9.1.tgz";
-        sha512 = "hYo/kt/wXYd/4WOUm2NLyDa3tR3lCfHbjVa1wSvvSL8AKbYoJsBkc4Va7VJ1uv/JO89xM1736pp1tzJkrVsBxA==";
+        url = "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-4.10.3.tgz";
+        sha512 = "eR4vsd7sYo0Sx7ZKRP5Z04yij7JkNmIlUQfrDQgC+xO5ABYx+waabzN+nDsQTLAJ4Z04bjkRd8xqkJtbxr3G7w==";
       };
     };
     "swagger2openapi-7.0.8" = {
@@ -64706,13 +65229,13 @@ let
         sha512 = "YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==";
       };
     };
-    "systeminformation-5.11.9" = {
+    "systeminformation-5.11.12" = {
       name = "systeminformation";
       packageName = "systeminformation";
-      version = "5.11.9";
+      version = "5.11.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-5.11.9.tgz";
-        sha512 = "eeMtL9UJFR/LYG+2rpeAgZ0Va4ojlNQTkYiQH/xbbPwDjDMsaetj3Pkc+C1aH5G8mav6HvDY8kI4Vl4noksSkA==";
+        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-5.11.12.tgz";
+        sha512 = "4OFXesPSSkNiO6SO4L8DQ0Hj2j/fWPmucybnjQsr9BVTI+K3xH6i3zm8f3SyPZQdULOuskUdzerY0ffmmbWKhA==";
       };
     };
     "sywac-1.3.0" = {
@@ -64860,13 +65383,13 @@ let
         sha512 = "GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==";
       };
     };
-    "tape-4.15.0" = {
+    "tape-4.15.1" = {
       name = "tape";
       packageName = "tape";
-      version = "4.15.0";
+      version = "4.15.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tape/-/tape-4.15.0.tgz";
-        sha512 = "SfRmG2I8QGGgJE/MCiLH8c11L5XxyUXxwK9xLRD0uiK5fehRkkSZGmR6Y1pxOt8vJ19m3sY+POTQpiaVv45/LQ==";
+        url = "https://registry.npmjs.org/tape/-/tape-4.15.1.tgz";
+        sha512 = "k7F5pyr91n9D/yjSJwbLLYDCrTWXxMSXbbmHX2n334lSIc2rxeXyFkaBv4UuUd2gBYMrAOalPutAiCxC6q1qbw==";
       };
     };
     "tar-0.1.17" = {
@@ -65175,6 +65698,15 @@ let
         sha512 = "ZXwggmsv+mheSNZ0yOtpOBS5kTSosGPVcTeS9didqs2VRW0sIByYr2cLS1N2vlpGAjq5PKqmy6Z3hZEgcCG4Wg==";
       };
     };
+    "term-img-4.1.0" = {
+      name = "term-img";
+      packageName = "term-img";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/term-img/-/term-img-4.1.0.tgz";
+        sha512 = "DFpBhaF5j+2f7kheKFc1ajsAUUDGOaNPpKPtiIMxlbfud6mvfFZuWGnTRpaujUa5J7yl6cIw/h6nyr4mSsENPg==";
+      };
+    };
     "term-size-1.2.0" = {
       name = "term-size";
       packageName = "term-size";
@@ -65292,6 +65824,15 @@ let
         sha1 = "11da6ff670f3471a73b625ca4f3fdcf7bb748291";
       };
     };
+    "text-decoding-1.0.0" = {
+      name = "text-decoding";
+      packageName = "text-decoding";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/text-decoding/-/text-decoding-1.0.0.tgz";
+        sha512 = "/0TJD42KDnVwKmDK6jj3xP7E2MG7SHAOG4tyTgyUCRPdHwvkquYNLEQltmdMa3owq3TkddCVcTsoctJI8VQNKA==";
+      };
+    };
     "text-encoding-utf-8-1.0.2" = {
       name = "text-encoding-utf-8";
       packageName = "text-encoding-utf-8";
@@ -65328,13 +65869,13 @@ let
         sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
       };
     };
-    "textextensions-5.14.0" = {
+    "textextensions-5.15.0" = {
       name = "textextensions";
       packageName = "textextensions";
-      version = "5.14.0";
+      version = "5.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/textextensions/-/textextensions-5.14.0.tgz";
-        sha512 = "4cAYwNFNYlIAHBUo7p6zw8POUvWbZor+/R0Tanv+rIhsauEyV9QSrEXL40pI+GfTQxKX8k6Tyw6CmdSDSmASrg==";
+        url = "https://registry.npmjs.org/textextensions/-/textextensions-5.15.0.tgz";
+        sha512 = "MeqZRHLuaGamUXGuVn2ivtU3LA3mLCCIO5kUGoohTCoGmCBg/+8yPhWVX9WSl9telvVd8erftjFk9Fwb2dD6rw==";
       };
     };
     "textlint-rule-helper-1.2.0" = {
@@ -65400,13 +65941,13 @@ let
         sha512 = "5hijX1V/4CrgrkqCqtwP32LSbLPSF/10nneI+2doPHKx7AdCgR52HqWZo0AQEPv4fvOqEOMLJ0c9pL6t/jUDwg==";
       };
     };
-    "thelounge-4.3.0" = {
+    "thelounge-4.3.1" = {
       name = "thelounge";
       packageName = "thelounge";
-      version = "4.3.0";
+      version = "4.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/thelounge/-/thelounge-4.3.0.tgz";
-        sha512 = "dkVdH21q9vipV7UU10qQQprPuP8rG+IDJSHUtmOC0WDYvwYTiUC9IYLIpkyWdgfwFYegDTnnR4duHNZynqOXTA==";
+        url = "https://registry.npmjs.org/thelounge/-/thelounge-4.3.1.tgz";
+        sha512 = "sWitbCj5+Jr+HY8nN2VE01OVeZSaTGyQK76whBgt2LyBih57yQBjZYR3BshPBiUgGb/GMbI+j112myKU9YUh/g==";
       };
     };
     "then-fs-2.0.0" = {
@@ -65787,6 +66328,15 @@ let
         sha512 = "pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==";
       };
     };
+    "tiny-lru-7.0.6" = {
+      name = "tiny-lru";
+      packageName = "tiny-lru";
+      version = "7.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tiny-lru/-/tiny-lru-7.0.6.tgz";
+        sha512 = "zNYO0Kvgn5rXzWpL0y3RS09sMK67eGaQj9805jlK9G6pSadfriTczzLHFXa/xcW4mIRfmlB9HyQ/+SgL0V1uow==";
+      };
+    };
     "tiny-queue-0.2.1" = {
       name = "tiny-queue";
       packageName = "tiny-queue";
@@ -65895,13 +66445,13 @@ let
         sha512 = "6kbY7GJpRQXwBddSOAbVUZXjObbCGFXliWWN+kOSEoRWIOyRWLB6zdeKC/Tguwwenl/KsUx016XR50EdHYsxZw==";
       };
     };
-    "tlds-1.216.0" = {
+    "tlds-1.228.0" = {
       name = "tlds";
       packageName = "tlds";
-      version = "1.216.0";
+      version = "1.228.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tlds/-/tlds-1.216.0.tgz";
-        sha512 = "y9A+eMRKLdAOclcFRTk3durpvCWiEdWcQhCOopCO654pckH9+o5Z5VgBsTTAFqtyxB8yFRXSG1q7BCCeHyrm0w==";
+        url = "https://registry.npmjs.org/tlds/-/tlds-1.228.0.tgz";
+        sha512 = "Q0TU9zh5hDs2CpRFNM7SOW3K7OSgUgJC/cMrq9t44ei4tu+G3KV8BZyIJuYVvryJHH96mKgc9WXdhgKVvGD7jg==";
       };
     };
     "tmp-0.0.29" = {
@@ -66768,13 +67318,13 @@ let
         sha1 = "5f4278e701800967a8fc383fd19648878f2a6e3a";
       };
     };
-    "tsconfig-paths-3.14.0" = {
+    "tsconfig-paths-3.14.1" = {
       name = "tsconfig-paths";
       packageName = "tsconfig-paths";
-      version = "3.14.0";
+      version = "3.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.0.tgz";
-        sha512 = "cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g==";
+        url = "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz";
+        sha512 = "fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==";
       };
     };
     "tsconfig-paths-webpack-plugin-3.5.2" = {
@@ -67254,15 +67804,6 @@ let
         sha512 = "yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==";
       };
     };
-    "type-fest-2.11.1" = {
-      name = "type-fest";
-      packageName = "type-fest";
-      version = "2.11.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/type-fest/-/type-fest-2.11.1.tgz";
-        sha512 = "fPcV5KLAqFfmhHobtAUwEpbpfYhVF7wSLVgbG/7mIGe/Pete7ky/bPAPRkzbWdrj0/EkswFAAR2feJCgigkUKg==";
-      };
-    };
     "type-fest-2.12.0" = {
       name = "type-fest";
       packageName = "type-fest";
@@ -67272,13 +67813,13 @@ let
         sha512 = "Qe5GRT+n/4GoqCNGGVp5Snapg1Omq3V7irBJB3EaKsp7HWDo5Gv2d/67gfNyV+d5EXD+x/RF5l1h4yJ7qNkcGA==";
       };
     };
-    "type-fest-2.12.1" = {
+    "type-fest-2.12.2" = {
       name = "type-fest";
       packageName = "type-fest";
-      version = "2.12.1";
+      version = "2.12.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/type-fest/-/type-fest-2.12.1.tgz";
-        sha512 = "AiknQSEqKVGDDjtZqeKrUoTlcj7FKhupmnVUgz6KoOKtvMwRGE6hUNJ/nVear+h7fnUPO1q/htSkYKb1pyntkQ==";
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-2.12.2.tgz";
+        sha512 = "qt6ylCGpLjZ7AaODxbpyBZSs9fCI9SkL3Z9q2oxMBQhs/uyY+VD8jHA8ULCGmWQJlBgqvO3EJeAngOHD8zQCrQ==";
       };
     };
     "type-is-1.6.18" = {
@@ -67362,13 +67903,13 @@ let
         sha512 = "7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==";
       };
     };
-    "typegram-3.8.0" = {
+    "typegram-3.9.0" = {
       name = "typegram";
       packageName = "typegram";
-      version = "3.8.0";
+      version = "3.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typegram/-/typegram-3.8.0.tgz";
-        sha512 = "MdlbWu0HfmgFJf4+xj6eqGYuanV2LJxBYTzLrD0kTV+woQ5dxDD2k8UVVjYnbBGkAagAyxzQevPiFZRWLFHSBw==";
+        url = "https://registry.npmjs.org/typegram/-/typegram-3.9.0.tgz";
+        sha512 = "uXA93E7pmdBcL8oxsC2MRdah4qF72g2bUeCWWS6N6IbzlMrsn4uBwVw+RMQoG0ky10KP0gpsQ8lZ7P/jqVno5g==";
       };
     };
     "typeorm-0.2.38" = {
@@ -67551,15 +68092,6 @@ let
         sha512 = "+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==";
       };
     };
-    "ua-parser-js-0.7.30" = {
-      name = "ua-parser-js";
-      packageName = "ua-parser-js";
-      version = "0.7.30";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.30.tgz";
-        sha512 = "uXEtSresNUlXQ1QL4/3dQORcGv7+J2ookOG2ybA/ga9+HYEXueT2o+8dUJQkpedsyTyCJ6jCCirRcKtdtx1kbg==";
-      };
-    };
     "ua-parser-js-0.7.31" = {
       name = "ua-parser-js";
       packageName = "ua-parser-js";
@@ -67605,13 +68137,13 @@ let
         sha512 = "FAGKF12fWdkpvNJZENacOH0e/83eG6JyVQyanIJaBXCN1J11TUQv1T1/z8S+Z0CG0ZPk1nPcreF/c7lrTd0TEQ==";
       };
     };
-    "uglify-js-3.15.3" = {
+    "uglify-js-3.15.4" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.15.3";
+      version = "3.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.3.tgz";
-        sha512 = "6iCVm2omGJbsu3JWac+p6kUiOpg3wFO2f8lIXjfEb8RrmLjzog1wTPMmwKB7swfzzqxj9YM+sGUM++u1qN4qJg==";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.4.tgz";
+        sha512 = "vMOPGDuvXecPs34V74qDKk4iJ/SN4vL3Ow/23ixafENYvtrNvtbcgUeugTcUGRGsOF/5fU8/NYSL5Hyb3l1OJA==";
       };
     };
     "uglify-js-3.4.10" = {
@@ -67947,13 +68479,13 @@ let
         sha1 = "5e4bda308e4a8a2ae584f9b9a4359a499825cc50";
       };
     };
-    "undici-4.16.0" = {
+    "undici-5.0.0" = {
       name = "undici";
       packageName = "undici";
-      version = "4.16.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/undici/-/undici-4.16.0.tgz";
-        sha512 = "tkZSECUYi+/T1i4u+4+lwZmQgLXd4BLGlrc7KZPcLIW7Jpq99+Xpc30ONv7nS6F5UNOxp/HBZSSL9MafUrvJbw==";
+        url = "https://registry.npmjs.org/undici/-/undici-5.0.0.tgz";
+        sha512 = "VhUpiZ3No1DOPPQVQnsDZyfcbTTcHdcgWej1PdFnSvOeJmOVDgiOHkunJmBLfmjt4CqgPQddPVjSWW0dsTs5Yg==";
       };
     };
     "unherit-1.1.3" = {
@@ -68136,13 +68668,13 @@ let
         sha512 = "ZlMm62ejrf+tJHdyOjQfljszngQjRor95q2XZMGk6rpJUYi7ZIHY/EXEhOcj9PZkMKKdLIM+dqL4s0ceyk9wbA==";
       };
     };
-    "unified-engine-9.0.5" = {
+    "unified-engine-9.1.0" = {
       name = "unified-engine";
       packageName = "unified-engine";
-      version = "9.0.5";
+      version = "9.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unified-engine/-/unified-engine-9.0.5.tgz";
-        sha512 = "frQ6lUNlkTwVC0JELJqSSITpE7MLrLJqAWmDrUFj5Do6A4/3n6eX5Jyg8fhe4Dbwwh38spqUJd39FtRFG34QWg==";
+        url = "https://registry.npmjs.org/unified-engine/-/unified-engine-9.1.0.tgz";
+        sha512 = "V3UAUsVSAPSNsAdGeYHjtM6FWKIXUt6fPZovbBI5L6WsQIRkRkuFfllquTGCvtu0RckrzdOC7jGaV/tKkokwDw==";
       };
     };
     "unified-lint-rule-1.0.6" = {
@@ -68415,13 +68947,13 @@ let
         sha512 = "w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==";
       };
     };
-    "unist-util-position-4.0.2" = {
+    "unist-util-position-4.0.3" = {
       name = "unist-util-position";
       packageName = "unist-util-position";
-      version = "4.0.2";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.2.tgz";
-        sha512 = "Y6+plxR41dOLbyyqVDLuGWgXDmxdXslCSRYQkSDagBnOT9oFsQH0J8FzhirSklUEe0xZTT0WDnAE1gXPaDFljA==";
+        url = "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.3.tgz";
+        sha512 = "p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==";
       };
     };
     "unist-util-position-from-estree-1.1.1" = {
@@ -68955,13 +69487,13 @@ let
         sha512 = "7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==";
       };
     };
-    "urijs-1.19.10" = {
+    "urijs-1.19.11" = {
       name = "urijs";
       packageName = "urijs";
-      version = "1.19.10";
+      version = "1.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/urijs/-/urijs-1.19.10.tgz";
-        sha512 = "EzauQlgKuJgsXOqoMrCiePBf4At5jVqRhXykF3Wfb8ZsOBMxPcfiVBcsHXug4Aepb/ICm2PIgqAUGMelgdrWEg==";
+        url = "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz";
+        sha512 = "HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==";
       };
     };
     "urix-0.1.0" = {
@@ -69541,13 +70073,13 @@ let
         sha512 = "l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==";
       };
     };
-    "v8-compile-cache-lib-3.0.0" = {
+    "v8-compile-cache-lib-3.0.1" = {
       name = "v8-compile-cache-lib";
       packageName = "v8-compile-cache-lib";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz";
-        sha512 = "mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==";
+        url = "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz";
+        sha512 = "wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==";
       };
     };
     "v8-debug-1.0.1" = {
@@ -69631,6 +70163,15 @@ let
         sha1 = "5fa912d81eb7d0c74afc140de7317f0ca7df437e";
       };
     };
+    "validate-npm-package-name-4.0.0" = {
+      name = "validate-npm-package-name";
+      packageName = "validate-npm-package-name";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz";
+        sha512 = "mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==";
+      };
+    };
     "validator-10.11.0" = {
       name = "validator";
       packageName = "validator";
@@ -70009,13 +70550,13 @@ let
         sha512 = "Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==";
       };
     };
-    "vega-typings-0.22.2" = {
+    "vega-typings-0.22.3" = {
       name = "vega-typings";
       packageName = "vega-typings";
-      version = "0.22.2";
+      version = "0.22.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.2.tgz";
-        sha512 = "op4bNiyS150V7gnuIdjwFYB1belYB8qnapqLQQ+ZBJQ+r7a+IbvXphEUf8AkBlOoGPN1ITNdhlIsq9WWiuxu8Q==";
+        url = "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz";
+        sha512 = "PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==";
       };
     };
     "vega-util-1.17.0" = {
@@ -70558,13 +71099,13 @@ let
         sha512 = "FA0foqMzMmEoO0WJP+MjoD4dRERhKS+Ag+yBrtmWQDmw2OuZ1R/5FkvI/XdTkCpHmTD9VMczugpHRejQyTXCNQ==";
       };
     };
-    "vscode-css-languageservice-5.3.0" = {
+    "vscode-css-languageservice-5.4.1" = {
       name = "vscode-css-languageservice";
       packageName = "vscode-css-languageservice";
-      version = "5.3.0";
+      version = "5.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-5.3.0.tgz";
-        sha512 = "ujWW855AoJlE4ETU17Gff7unlZZTHDA0w26itk9EQFMfJqi9lE6S67zOsMvcPmJf55MrnGQbojDYZRiDVaFjdA==";
+        url = "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-5.4.1.tgz";
+        sha512 = "W7D3GKFXf97ReAaU4EZ2nxVO1kQhztbycJgc1b/Ipr0h8zYWr88BADmrXu02z+lsCS84D7Sr4hoUzDKeaFn2Kg==";
       };
     };
     "vscode-debugadapter-testsupport-1.51.0" = {
@@ -71557,13 +72098,13 @@ let
         sha512 = "2njbTqZ6Q7ZqqK14YpK1GGmaZs3NmuGYF5b7abCXulUIWFSlSYcZ3NBJQRFcMiQDceD7vQknb8FUuvI1F7Qe/g==";
       };
     };
-    "web-streams-polyfill-3.2.0" = {
+    "web-streams-polyfill-3.2.1" = {
       name = "web-streams-polyfill";
       packageName = "web-streams-polyfill";
-      version = "3.2.0";
+      version = "3.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz";
-        sha512 = "EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==";
+        url = "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz";
+        sha512 = "e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==";
       };
     };
     "web-streams-polyfill-4.0.0-beta.1" = {
@@ -71593,13 +72134,13 @@ let
         sha512 = "8G0xBj05hqZybCqBtW7RPZ/hWEtP3DiLTauQzGJZuZYfVRgw7qj7iaZ+8djNqJ4VPrdOO+pS2dR1JsTbsLxdYg==";
       };
     };
-    "web3-utils-1.7.1" = {
+    "web3-utils-1.7.3" = {
       name = "web3-utils";
       packageName = "web3-utils";
-      version = "1.7.1";
+      version = "1.7.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.1.tgz";
-        sha512 = "fef0EsqMGJUgiHPdX+KN9okVWshbIumyJPmR+btnD1HgvoXijKEkuKBv0OmUqjbeqmLKP2/N9EiXKJel5+E1Dw==";
+        url = "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.3.tgz";
+        sha512 = "g6nQgvb/bUpVUIxJE+ezVN+rYwYmlFyMvMIRSuqpi1dk6ApDD00YNArrk7sPcZnjvxOJ76813Xs2vIN2rgh4lg==";
       };
     };
     "webassemblyjs-1.11.1" = {
@@ -71611,13 +72152,13 @@ let
         sha512 = "WkwV9qJLZZm1ygrryt4+6hAKbk4jLSVCpE92RYk/MOtLSpxq/2S1U0JFyKgsASXhYU5hqHQRiXvFBoNQhfCHyg==";
       };
     };
-    "webcrypto-core-1.7.2" = {
+    "webcrypto-core-1.7.3" = {
       name = "webcrypto-core";
       packageName = "webcrypto-core";
-      version = "1.7.2";
+      version = "1.7.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.2.tgz";
-        sha512 = "GUblRwka3JiP/dduk9/Hdkbm7/+ZqVPISJj9Fq1rZ/JBSInmaeVbeH0KuIy4/gtoC7aWpu6DEnYk0VhkZXmFSA==";
+        url = "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.3.tgz";
+        sha512 = "8TnMtwwC/hQOyvElAOJ26lJKGgcErUG02KnKS1+QhjV4mDvQetVWU1EUEeLF8ICOrdc42+GypocyBJKRqo2kQg==";
       };
     };
     "webidl-conversions-2.0.1" = {
@@ -71701,13 +72242,22 @@ let
         sha512 = "6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==";
       };
     };
-    "webpack-5.70.0" = {
+    "webpack-5.71.0" = {
+      name = "webpack";
+      packageName = "webpack";
+      version = "5.71.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack/-/webpack-5.71.0.tgz";
+        sha512 = "g4dFT7CFG8LY0iU5G8nBL6VlkT21Z7dcYDpJAEJV5Q1WLb9UwnFbrem1k7K52ILqEmomN7pnzWFxxE6SlDY56A==";
+      };
+    };
+    "webpack-5.72.0" = {
       name = "webpack";
       packageName = "webpack";
-      version = "5.70.0";
+      version = "5.72.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz";
-        sha512 = "ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==";
+        url = "https://registry.npmjs.org/webpack/-/webpack-5.72.0.tgz";
+        sha512 = "qmSmbspI0Qo5ld49htys8GY9XhS9CGqFoHTsOVAnjBdg0Zn79y135R+k4IR4rKK6+eKaabMhJwiVB7xw0SJu5w==";
       };
     };
     "webpack-bundle-analyzer-3.9.0" = {
@@ -71917,13 +72467,13 @@ let
         sha512 = "7iZ+u28Ljw5hCnMiq0BCOeSYf0vCFQe/ORY0HgscTiKjQed8WqugpBUggJ2NTnB9fahn1kEnPRX2jf8Px5PhJw==";
       };
     };
-    "webtorrent-1.8.10" = {
+    "webtorrent-1.8.13" = {
       name = "webtorrent";
       packageName = "webtorrent";
-      version = "1.8.10";
+      version = "1.8.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webtorrent/-/webtorrent-1.8.10.tgz";
-        sha512 = "0ywp9VXPMpqemsamWWUjU74vdNpOKUILK+lAfZnOgolybAcYZRJ5gCz0u01BI2NFKHZFWoyDacl3fkbxVb57pw==";
+        url = "https://registry.npmjs.org/webtorrent/-/webtorrent-1.8.13.tgz";
+        sha512 = "CrNeCA2ZRSvG7YRVpmjyT8sr7QOa7E70k0nAAqIEIvXsYgDexwrwMe4TxH9sXbwaJCA9URSX9UBEGNZ/bjhwMg==";
       };
     };
     "webworkify-webpack-2.1.5" = {
@@ -72421,6 +72971,15 @@ let
         sha512 = "9j8T75p+bcN6D00sF/zjFVmPp+t8KMPB1MzbbzYjeN9VWxdsYnTB40TkbNUEXAmILEfChMvAMgidlX64OG3p6w==";
       };
     };
+    "winston-3.7.2" = {
+      name = "winston";
+      packageName = "winston";
+      version = "3.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston/-/winston-3.7.2.tgz";
+        sha512 = "QziIqtojHBoyzUOdQvQiar1DH0Xp9nF1A1y7NVy2DGEsz82SBDtOalS0ulTRGVT14xPX3WRWkCsdcJKqNflKng==";
+      };
+    };
     "winston-transport-4.5.0" = {
       name = "winston-transport";
       packageName = "winston-transport";
@@ -72538,6 +73097,15 @@ let
         sha512 = "Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==";
       };
     };
+    "workerpool-6.2.1" = {
+      name = "workerpool";
+      packageName = "workerpool";
+      version = "6.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz";
+        sha512 = "ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==";
+      };
+    };
     "wrap-ansi-2.1.0" = {
       name = "wrap-ansi";
       packageName = "wrap-ansi";
@@ -72835,15 +73403,6 @@ let
         sha512 = "wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==";
       };
     };
-    "ws-8.4.2" = {
-      name = "ws";
-      packageName = "ws";
-      version = "8.4.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz";
-        sha512 = "Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==";
-      };
-    };
     "ws-8.5.0" = {
       name = "ws";
       packageName = "ws";
@@ -72952,13 +73511,13 @@ let
         sha512 = "N1XQngeqMBoj9wM4ZFadVV2MymImeiFfYD+fJrNlcVcOHsJFFQe7n3b+aBoTPwARuq2HQxukfzVpQmAk1gN4sQ==";
       };
     };
-    "xdl-59.2.30" = {
+    "xdl-59.2.32" = {
       name = "xdl";
       packageName = "xdl";
-      version = "59.2.30";
+      version = "59.2.32";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xdl/-/xdl-59.2.30.tgz";
-        sha512 = "Id4b3prDMPlW9OuycaeQwXeD/3tAgTmJY0N1blRL5Xr3KXhybXkyCsnvOaFyvQ+luqnmsOUdJQkfzL0JuyIauw==";
+        url = "https://registry.npmjs.org/xdl/-/xdl-59.2.32.tgz";
+        sha512 = "aXrgplZQJeDUlGsgA/lcMzf+opKHXOKt0a3B/+/FA6AE8SSSda9p+86t441x9d/is/PPUM4G5jbzIT4pqrvGAw==";
       };
     };
     "xenvar-0.5.1" = {
@@ -73475,6 +74034,15 @@ let
         sha512 = "5kGSQrzDyjCk0BLuFfjkoUE9vYcoyrwZIZ+GnpOSM9vhkvPjItYiWJ1jpRSo0aU4QmsoNrFwDT4O7XS2UGcBQg==";
       };
     };
+    "yaml-2.0.1" = {
+      name = "yaml";
+      packageName = "yaml";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yaml/-/yaml-2.0.1.tgz";
+        sha512 = "1NpAYQ3wjzIlMs0mgdBmYzLkFgWBIWrzYVDYfrixhoFNNgJ444/jT2kUT2sicRbJES3oQYRZugjB6Ro8SjKeFg==";
+      };
+    };
     "yaml-ast-parser-0.0.43" = {
       name = "yaml-ast-parser";
       packageName = "yaml-ast-parser";
@@ -73646,6 +74214,15 @@ let
         sha512 = "WJudfrk81yWFSOkZYpAZx4Nt7V4xp7S/uJkX0CnxovMCt1wCE8LNftPpNuF9X/u9gN5nsD7ycYtRcDf2pL3UiA==";
       };
     };
+    "yargs-17.4.1" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "17.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz";
+        sha512 = "WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==";
+      };
+    };
     "yargs-3.10.0" = {
       name = "yargs";
       packageName = "yargs";
@@ -73835,13 +74412,13 @@ let
         sha512 = "gBnfbL9rYY05Gt0cjJhs/siqQXHYlZalTjK3nXn2QO20xbkIFPob+LlH44ML47GcR4VU9/2dYck1BWFM0Javxw==";
       };
     };
-    "yarn-1.22.10" = {
+    "yarn-1.22.17" = {
       name = "yarn";
       packageName = "yarn";
-      version = "1.22.10";
+      version = "1.22.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yarn/-/yarn-1.22.10.tgz";
-        sha512 = "IanQGI9RRPAN87VGTF7zs2uxkSyQSrSPsju0COgbsKQOOXr5LtcVPeyXWgwVa0ywG3d8dg6kSYKGBuYK021qeA==";
+        url = "https://registry.npmjs.org/yarn/-/yarn-1.22.17.tgz";
+        sha512 = "H0p241BXaH0UN9IeH//RT82tl5PfNraVpSpEoW+ET7lmopNC61eZ+A+IDvU8FM6Go5vx162SncDL8J1ZjRBriQ==";
       };
     };
     "yarn-1.22.18" = {
@@ -74147,15 +74724,15 @@ in
   "@angular/cli" = nodeEnv.buildNodePackage {
     name = "_at_angular_slash_cli";
     packageName = "@angular/cli";
-    version = "13.3.0";
+    version = "13.3.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@angular/cli/-/cli-13.3.0.tgz";
-      sha512 = "2qCKP/QsyxrJnpd3g4P/iTQ4TjI04N8r+bG5YLLfudoMDsQ/Ti4ogdI7PBeG2IMbRylZW9XLjHraWG42+Y9tWw==";
+      url = "https://registry.npmjs.org/@angular/cli/-/cli-13.3.3.tgz";
+      sha512 = "a+nnzFP1FfnypXpAhrHbIBaJcxzegWLZUvVzJQwt6P2z60IoHdvTVmyNbY89qI0LE1SrAokEUO1zW3Yjmu7fUw==";
     };
     dependencies = [
-      sources."@angular-devkit/architect-0.1303.0"
-      sources."@angular-devkit/core-13.3.0"
-      sources."@angular-devkit/schematics-13.3.0"
+      sources."@angular-devkit/architect-0.1303.3"
+      sources."@angular-devkit/core-13.3.3"
+      sources."@angular-devkit/schematics-13.3.3"
       sources."@gar/promisify-1.1.3"
       sources."@npmcli/fs-1.1.1"
       sources."@npmcli/git-2.1.0"
@@ -74164,7 +74741,7 @@ in
       sources."@npmcli/node-gyp-1.0.3"
       sources."@npmcli/promise-spawn-1.3.2"
       sources."@npmcli/run-script-2.0.0"
-      sources."@schematics/angular-13.3.0"
+      sources."@schematics/angular-13.3.3"
       sources."@tootallnate/once-1.1.2"
       sources."@yarnpkg/lockfile-1.1.0"
       sources."abbrev-1.1.1"
@@ -74220,16 +74797,16 @@ in
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
-      sources."gauge-4.0.3"
+      sources."gauge-4.0.4"
       sources."glob-7.2.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
       sources."has-unicode-2.0.1"
       sources."hosted-git-info-4.1.0"
       sources."http-cache-semantics-4.1.0"
       sources."http-proxy-agent-4.0.1"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."humanize-ms-1.2.1"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
@@ -74247,7 +74824,7 @@ in
         ];
       })
       sources."ip-1.1.5"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-docker-2.2.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-interactive-1.0.0"
@@ -74289,15 +74866,17 @@ in
       (sources."npm-registry-fetch-12.0.2" // {
         dependencies = [
           sources."@npmcli/fs-2.1.0"
+          sources."@npmcli/move-file-2.0.0"
           sources."@tootallnate/once-2.0.0"
-          sources."cacache-16.0.3"
+          sources."cacache-16.0.4"
           sources."http-proxy-agent-5.0.0"
-          sources."lru-cache-7.7.1"
-          (sources."make-fetch-happen-10.1.0" // {
+          sources."lru-cache-7.8.1"
+          (sources."make-fetch-happen-10.1.2" // {
             dependencies = [
               sources."minipass-fetch-2.1.0"
             ];
           })
+          sources."ssri-9.0.0"
         ];
       })
       sources."npmlog-6.0.1"
@@ -74329,7 +74908,7 @@ in
       sources."signal-exit-3.0.7"
       sources."smart-buffer-4.2.0"
       sources."socks-2.6.2"
-      sources."socks-proxy-agent-6.1.1"
+      sources."socks-proxy-agent-6.2.0"
       sources."source-map-0.7.3"
       sources."sourcemap-codec-1.4.8"
       sources."ssri-8.0.1"
@@ -74531,15 +75110,14 @@ in
       sources."convert-source-map-1.8.0"
       sources."convict-6.2.2"
       sources."core-util-is-1.0.3"
-      sources."crc-32-1.2.1"
+      sources."crc-32-1.2.2"
       sources."dateformat-4.6.3"
       sources."decompress-response-4.2.1"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."diff3-0.0.3"
       sources."duplexify-4.1.2"
       sources."end-of-stream-1.4.4"
       sources."escape-string-regexp-1.0.5"
-      sources."exit-on-epipe-1.0.1"
       sources."extend-3.0.2"
       sources."fast-redact-3.1.1"
       sources."fast-safe-stringify-2.1.1"
@@ -74561,11 +75139,12 @@ in
           sources."glob-7.2.0"
         ];
       })
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."gulp-vinyl-zip-2.5.0"
       sources."handlebars-4.7.7"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."hpagent-0.1.2"
       sources."ignore-5.2.0"
@@ -74631,7 +75210,6 @@ in
       sources."pino-abstract-transport-0.5.0"
       sources."pino-pretty-7.3.0"
       sources."pino-std-serializers-4.0.0"
-      sources."printj-1.3.1"
       sources."process-nextick-args-2.0.1"
       sources."process-warning-1.0.0"
       sources."progress-2.0.3"
@@ -74680,7 +75258,7 @@ in
       sources."to-regex-range-5.0.1"
       sources."to-through-2.0.0"
       sources."type-fest-1.4.0"
-      sources."uglify-js-3.15.3"
+      sources."uglify-js-3.15.4"
       sources."unc-path-regex-0.1.2"
       sources."unique-stream-2.3.1"
       sources."unxhr-1.0.1"
@@ -74720,13 +75298,13 @@ in
   "@astrojs/language-server" = nodeEnv.buildNodePackage {
     name = "_at_astrojs_slash_language-server";
     packageName = "@astrojs/language-server";
-    version = "0.13.2";
+    version = "0.15.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@astrojs/language-server/-/language-server-0.13.2.tgz";
-      sha512 = "4YM4hM02ILvvsSQljAlwLY7OWymlhbikY7O/gsZqELVGMXixemA6dI3GTr2K6duU4ktPBJ3JexuU/OFyb5jvtQ==";
+      url = "https://registry.npmjs.org/@astrojs/language-server/-/language-server-0.15.0.tgz";
+      sha512 = "KjpuFJBUHk6J3Mf2++EwZj5if4le47yn8lcZUmVYUqAD5W/yIxLnp74h+1PYlTuVsnGxNb/301A4LxRQDVhkLA==";
     };
     dependencies = [
-      sources."@astrojs/svelte-language-integration-0.1.2"
+      sources."@astrojs/svelte-language-integration-0.1.3"
       sources."@emmetio/abbreviation-2.2.3"
       sources."@emmetio/css-abbreviation-2.1.4"
       sources."@emmetio/scanner-1.0.0"
@@ -74743,11 +75321,11 @@ in
       sources."no-case-3.0.4"
       sources."pascal-case-3.1.2"
       sources."source-map-0.7.3"
-      sources."svelte-3.46.4"
-      sources."svelte2tsx-0.5.6"
+      sources."svelte-3.47.0"
+      sources."svelte2tsx-0.5.9"
       sources."tslib-2.3.1"
       sources."typescript-4.6.3"
-      sources."vscode-css-languageservice-5.3.0"
+      sources."vscode-css-languageservice-5.4.1"
       sources."vscode-html-languageservice-4.2.4"
       sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-7.0.0"
@@ -74778,7 +75356,7 @@ in
       sources."@koa/multer-3.0.0"
       sources."@koa/router-10.1.1"
       sources."@tootallnate/once-1.1.2"
-      sources."abab-2.0.5"
+      sources."abab-2.0.6"
       sources."accepts-1.3.8"
       sources."acorn-8.7.0"
       (sources."acorn-globals-6.0.0" // {
@@ -74875,7 +75453,7 @@ in
       sources."fresh-0.5.2"
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
       sources."has-symbols-1.0.3"
@@ -74903,7 +75481,7 @@ in
         ];
       })
       sources."json-stringify-safe-5.0.1"
-      sources."jszip-3.7.1"
+      sources."jszip-3.9.1"
       sources."keygrip-1.1.0"
       (sources."koa-2.13.4" // {
         dependencies = [
@@ -75044,7 +75622,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -75083,7 +75661,7 @@ in
       sources."@tsconfig/node14-1.0.1"
       sources."@tsconfig/node16-1.0.2"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/parse-json-4.0.0"
       sources."JSONStream-1.3.5"
@@ -75106,7 +75684,7 @@ in
       sources."conventional-changelog-angular-5.0.13"
       sources."conventional-commits-parser-3.2.4"
       sources."cosmiconfig-7.0.1"
-      sources."cosmiconfig-typescript-loader-1.0.6"
+      sources."cosmiconfig-typescript-loader-1.0.9"
       sources."create-require-1.1.1"
       sources."cross-spawn-7.0.3"
       sources."dargs-7.0.0"
@@ -75126,13 +75704,13 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."find-up-4.1.0"
-      sources."fs-extra-10.0.1"
+      sources."fs-extra-10.1.0"
       sources."function-bind-1.1.1"
       sources."get-caller-file-2.0.5"
       sources."get-stream-6.0.1"
       sources."git-raw-commits-2.0.11"
       sources."global-dirs-0.1.1"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
@@ -75147,7 +75725,7 @@ in
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-obj-2.0.0"
       sources."is-plain-obj-1.1.0"
@@ -75232,14 +75810,14 @@ in
       sources."universalify-2.0.0"
       sources."uri-js-4.4.1"
       sources."util-deprecate-1.0.2"
-      sources."v8-compile-cache-lib-3.0.0"
+      sources."v8-compile-cache-lib-3.0.1"
       sources."validate-npm-package-license-3.0.4"
       sources."which-2.0.2"
       sources."wrap-ansi-7.0.0"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
       sources."yaml-1.10.2"
-      (sources."yargs-17.4.0" // {
+      (sources."yargs-17.4.1" // {
         dependencies = [
           sources."yargs-parser-21.0.1"
         ];
@@ -75296,7 +75874,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -75310,9 +75888,10 @@ in
       sources."@szmarczak/http-timer-4.0.6"
       sources."@types/cacheable-request-6.0.2"
       sources."@types/http-cache-semantics-4.0.1"
+      sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/responselike-1.0.0"
       sources."abort-controller-3.0.0"
@@ -75352,6 +75931,7 @@ in
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."commander-7.2.0"
+      sources."compress-brotli-1.3.6"
       sources."concat-map-0.0.1"
       sources."currently-unhandled-0.4.1"
       sources."debounce-1.2.1"
@@ -75377,21 +75957,21 @@ in
       sources."figures-3.2.0"
       sources."fill-range-7.0.1"
       sources."find-up-5.0.0"
-      sources."fs-extra-10.0.1"
+      sources."fs-extra-10.1.0"
       sources."fsevents-2.3.2"
       sources."function-bind-1.1.1"
       sources."fuzzy-0.1.3"
-      sources."gaxios-4.3.2"
+      sources."gaxios-4.3.3"
       sources."gcp-metadata-4.3.1"
       sources."get-intrinsic-1.1.1"
       sources."get-stream-5.2.0"
       sources."glob-parent-5.1.2"
       sources."google-auth-library-7.14.1"
-      sources."google-p12-pem-3.1.3"
+      sources."google-p12-pem-3.1.4"
       sources."googleapis-76.0.0"
       sources."googleapis-common-5.1.0"
       sources."got-11.8.3"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."gtoken-5.3.2"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
@@ -75399,7 +75979,7 @@ in
       sources."hosted-git-info-4.1.0"
       sources."http-cache-semantics-4.1.0"
       sources."http2-wrapper-1.0.3"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
       sources."indent-string-4.0.0"
@@ -75419,7 +75999,7 @@ in
       })
       sources."is-arrayish-0.2.1"
       sources."is-binary-path-2.1.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
@@ -75438,7 +76018,7 @@ in
       sources."jsonfile-6.1.0"
       sources."jwa-2.0.0"
       sources."jws-4.0.0"
-      sources."keyv-4.1.1"
+      sources."keyv-4.2.2"
       sources."lines-and-columns-1.2.4"
       sources."locate-path-6.0.0"
       sources."lodash-4.17.21"
@@ -75458,11 +76038,11 @@ in
       sources."multimatch-5.0.0"
       sources."mute-stream-0.0.8"
       sources."node-fetch-2.6.7"
-      sources."node-forge-1.3.0"
+      sources."node-forge-1.3.1"
       sources."normalize-newline-4.1.0"
       (sources."normalize-package-data-3.0.3" // {
         dependencies = [
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
         ];
       })
       sources."normalize-path-3.0.0"
@@ -75549,7 +76129,7 @@ in
       sources."tr46-0.0.3"
       (sources."ts2gas-4.2.0" // {
         dependencies = [
-          sources."type-fest-2.12.1"
+          sources."type-fest-2.12.2"
         ];
       })
       sources."tslib-2.3.1"
@@ -75597,7 +76177,7 @@ in
       sources."@hyperswarm/hypersign-2.1.1"
       sources."@hyperswarm/network-2.1.0"
       sources."@leichtgewicht/ip-codec-2.0.3"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."abstract-extension-3.1.1"
       sources."abstract-leveldown-6.2.3"
       sources."acorn-8.7.0"
@@ -75711,7 +76291,7 @@ in
       sources."hrpc-2.2.0"
       sources."hrpc-runtime-2.1.1"
       sources."hyperbeam-1.1.3"
-      sources."hyperbee-1.7.0"
+      sources."hyperbee-1.8.0"
       sources."hypercore-9.12.0"
       (sources."hypercore-byte-stream-1.0.12" // {
         dependencies = [
@@ -75750,7 +76330,7 @@ in
       sources."inspect-custom-symbol-1.1.1"
       sources."ipv4-peers-2.0.0"
       sources."is-binary-path-2.1.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
@@ -75790,7 +76370,7 @@ in
       sources."minimist-1.2.6"
       sources."mkdirp-1.0.4"
       sources."mkdirp-classic-0.5.3"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."mountable-hypertrie-2.8.0"
       sources."ms-2.0.0"
       sources."multicast-dns-7.2.4"
@@ -75801,7 +76381,7 @@ in
       sources."nanoresource-1.3.0"
       sources."nanoresource-promise-1.2.2"
       sources."napi-macros-2.0.0"
-      sources."node-gyp-build-4.3.0"
+      sources."node-gyp-build-4.4.0"
       (sources."noise-peer-2.1.1" // {
         dependencies = [
           sources."readable-stream-3.6.0"
@@ -75893,7 +76473,7 @@ in
       sources."supports-preserve-symlinks-flag-1.0.0"
       sources."temp-dir-1.0.0"
       sources."tempy-0.1.0"
-      sources."textextensions-5.14.0"
+      sources."textextensions-5.15.0"
       (sources."through2-4.0.2" // {
         dependencies = [
           sources."readable-stream-3.6.0"
@@ -75952,35 +76532,37 @@ in
   "@medable/mdctl-cli" = nodeEnv.buildNodePackage {
     name = "_at_medable_slash_mdctl-cli";
     packageName = "@medable/mdctl-cli";
-    version = "1.0.62";
+    version = "1.0.64";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@medable/mdctl-cli/-/mdctl-cli-1.0.62.tgz";
-      sha512 = "7EpRhhrJqICbMGjLkdthQYLLGMXNCsrsq8/xxYX1cdRiNwoGb84yjL1WFBrnQtaM8rXShOvhf4lrM2W0K9m4lQ==";
+      url = "https://registry.npmjs.org/@medable/mdctl-cli/-/mdctl-cli-1.0.64.tgz";
+      sha512 = "hV1PG20mLFmYbSJvV+JIGVLUT3zzDt2snR9T7tKMBAVvGQBAfzodylbTZe+b20hNz3Max2Z4zsKVksRu71x1+A==";
     };
     dependencies = [
-      sources."@babel/parser-7.17.8"
-      sources."@medable/mdctl-api-1.0.63"
-      sources."@medable/mdctl-core-1.0.63"
-      sources."@medable/mdctl-core-schemas-1.0.63"
+      sources."@babel/parser-7.17.9"
+      sources."@medable/mdctl-api-1.0.64"
+      sources."@medable/mdctl-api-driver-1.0.64"
+      sources."@medable/mdctl-axon-tools-1.0.64"
+      sources."@medable/mdctl-core-1.0.64"
+      sources."@medable/mdctl-core-schemas-1.0.64"
       sources."@medable/mdctl-core-utils-1.0.63"
-      sources."@medable/mdctl-credentials-provider-keychain-1.0.63"
-      sources."@medable/mdctl-credentials-provider-pouchdb-1.0.63"
-      sources."@medable/mdctl-docs-1.0.63"
+      sources."@medable/mdctl-credentials-provider-keychain-1.0.64"
+      sources."@medable/mdctl-credentials-provider-pouchdb-1.0.64"
+      sources."@medable/mdctl-docs-1.0.64"
       sources."@medable/mdctl-export-adapter-console-1.0.63"
-      (sources."@medable/mdctl-export-adapter-tree-1.0.63" // {
+      (sources."@medable/mdctl-export-adapter-tree-1.0.64" // {
         dependencies = [
           sources."glob-7.2.0"
           sources."globby-10.0.2"
         ];
       })
-      sources."@medable/mdctl-import-adapter-1.0.63"
-      (sources."@medable/mdctl-manifest-1.0.63" // {
+      sources."@medable/mdctl-import-adapter-1.0.64"
+      (sources."@medable/mdctl-manifest-1.0.64" // {
         dependencies = [
           sources."pluralize-8.0.0"
         ];
       })
-      sources."@medable/mdctl-node-utils-1.0.63"
-      sources."@medable/mdctl-sandbox-1.0.63"
+      sources."@medable/mdctl-node-utils-1.0.64"
+      sources."@medable/mdctl-sandbox-1.0.64"
       sources."@medable/mdctl-secrets-1.0.63"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.scandir-2.1.5"
@@ -75991,7 +76573,7 @@ in
       sources."@types/markdown-it-12.2.3"
       sources."@types/mdurl-1.0.2"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/tough-cookie-2.3.8"
       sources."abbrev-1.1.1"
       sources."abort-controller-3.0.0"
@@ -76022,7 +76604,8 @@ in
       sources."assert-plus-1.0.0"
       sources."assign-symbols-1.0.0"
       sources."ast-types-0.9.6"
-      sources."async-2.6.3"
+      sources."async-2.6.4"
+      sources."async-iter-stream-1.2.0"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
@@ -76204,7 +76787,7 @@ in
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
       sources."fastq-1.13.0"
-      sources."fetch-cookie-0.10.1"
+      sources."fetch-cookie-0.11.0"
       (sources."figures-2.0.0" // {
         dependencies = [
           sources."escape-string-regexp-1.0.5"
@@ -76267,7 +76850,7 @@ in
           sources."to-regex-range-2.1.1"
         ];
       })
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       (sources."handlebars-4.7.7" // {
         dependencies = [
           sources."source-map-0.6.1"
@@ -76292,7 +76875,7 @@ in
       sources."hash-base-3.1.0"
       sources."hasurl-1.0.0"
       sources."http-signature-1.2.0"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."iconv-lite-0.4.24"
       sources."ignore-5.2.0"
       sources."ignore-walk-3.0.4"
@@ -76323,7 +76906,7 @@ in
       sources."ip-regex-2.1.0"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
       sources."is-extendable-0.1.1"
@@ -76389,12 +76972,16 @@ in
       sources."lodash.isstring-4.0.1"
       sources."lodash.once-4.1.1"
       sources."lodash.sortby-4.7.0"
-      sources."map-age-cleaner-0.1.3"
+      (sources."map-age-cleaner-0.1.3" // {
+        dependencies = [
+          sources."p-defer-1.0.0"
+        ];
+      })
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
       sources."markdown-it-12.3.2"
-      sources."markdown-it-anchor-8.4.1"
-      sources."marked-4.0.12"
+      sources."markdown-it-anchor-8.6.2"
+      sources."marked-4.0.14"
       sources."md5.js-1.3.5"
       sources."mdurl-1.0.1"
       (sources."mem-4.3.0" // {
@@ -76419,6 +77006,7 @@ in
         ];
       })
       sources."mkdirp-0.5.6"
+      sources."moment-2.29.3"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.7"
       sources."nan-2.14.0"
@@ -76476,7 +77064,7 @@ in
       sources."os-locale-3.1.0"
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
-      sources."p-defer-1.0.0"
+      sources."p-defer-3.0.0"
       sources."p-finally-1.0.0"
       sources."p-is-promise-2.1.0"
       sources."p-limit-2.3.0"
@@ -76494,50 +77082,50 @@ in
       sources."pify-4.0.1"
       sources."pluralize-7.0.0"
       sources."posix-character-classes-0.1.1"
-      (sources."pouchdb-abstract-mapreduce-7.2.2" // {
+      (sources."pouchdb-abstract-mapreduce-7.3.0" // {
         dependencies = [
-          sources."buffer-from-1.1.1"
+          sources."buffer-from-1.1.2"
           sources."immediate-3.3.0"
-          sources."pouchdb-binary-utils-7.2.2"
-          sources."pouchdb-collections-7.2.2"
-          sources."pouchdb-errors-7.2.2"
-          sources."pouchdb-md5-7.2.2"
-          sources."pouchdb-utils-7.2.2"
-          sources."spark-md5-3.0.1"
-          sources."uuid-8.1.0"
+          sources."pouchdb-binary-utils-7.3.0"
+          sources."pouchdb-collections-7.3.0"
+          sources."pouchdb-errors-7.3.0"
+          sources."pouchdb-md5-7.3.0"
+          sources."pouchdb-utils-7.3.0"
+          sources."spark-md5-3.0.2"
+          sources."uuid-8.3.2"
         ];
       })
       sources."pouchdb-adapter-node-websql-7.0.0"
       sources."pouchdb-adapter-utils-7.0.0"
       sources."pouchdb-adapter-websql-core-7.0.0"
       sources."pouchdb-binary-utils-7.0.0"
-      (sources."pouchdb-changes-filter-7.2.2" // {
+      (sources."pouchdb-changes-filter-7.3.0" // {
         dependencies = [
-          sources."buffer-from-1.1.1"
+          sources."buffer-from-1.1.2"
           sources."immediate-3.3.0"
-          sources."pouchdb-binary-utils-7.2.2"
-          sources."pouchdb-collections-7.2.2"
-          sources."pouchdb-errors-7.2.2"
-          sources."pouchdb-md5-7.2.2"
-          sources."pouchdb-utils-7.2.2"
-          sources."spark-md5-3.0.1"
-          sources."uuid-8.1.0"
+          sources."pouchdb-binary-utils-7.3.0"
+          sources."pouchdb-collections-7.3.0"
+          sources."pouchdb-errors-7.3.0"
+          sources."pouchdb-md5-7.3.0"
+          sources."pouchdb-utils-7.3.0"
+          sources."spark-md5-3.0.2"
+          sources."uuid-8.3.2"
         ];
       })
-      sources."pouchdb-collate-7.2.2"
+      sources."pouchdb-collate-7.3.0"
       sources."pouchdb-collections-7.0.0"
-      (sources."pouchdb-core-7.2.2" // {
+      (sources."pouchdb-core-7.3.0" // {
         dependencies = [
-          sources."buffer-from-1.1.1"
+          sources."buffer-from-1.1.2"
           sources."immediate-3.3.0"
-          sources."pouchdb-binary-utils-7.2.2"
-          sources."pouchdb-collections-7.2.2"
-          sources."pouchdb-errors-7.2.2"
-          sources."pouchdb-md5-7.2.2"
-          sources."pouchdb-merge-7.2.2"
-          sources."pouchdb-utils-7.2.2"
-          sources."spark-md5-3.0.1"
-          sources."uuid-8.1.0"
+          sources."pouchdb-binary-utils-7.3.0"
+          sources."pouchdb-collections-7.3.0"
+          sources."pouchdb-errors-7.3.0"
+          sources."pouchdb-md5-7.3.0"
+          sources."pouchdb-merge-7.3.0"
+          sources."pouchdb-utils-7.3.0"
+          sources."spark-md5-3.0.2"
+          sources."uuid-8.3.2"
         ];
       })
       (sources."pouchdb-errors-7.0.0" // {
@@ -76546,52 +77134,48 @@ in
         ];
       })
       sources."pouchdb-extend-0.1.2"
-      (sources."pouchdb-fetch-7.2.2" // {
+      sources."pouchdb-fetch-7.3.0"
+      (sources."pouchdb-find-7.3.0" // {
         dependencies = [
-          sources."node-fetch-2.6.0"
-        ];
-      })
-      (sources."pouchdb-find-7.2.2" // {
-        dependencies = [
-          sources."buffer-from-1.1.1"
+          sources."buffer-from-1.1.2"
           sources."immediate-3.3.0"
-          sources."pouchdb-binary-utils-7.2.2"
-          sources."pouchdb-collections-7.2.2"
-          sources."pouchdb-errors-7.2.2"
-          sources."pouchdb-md5-7.2.2"
-          sources."pouchdb-utils-7.2.2"
-          sources."spark-md5-3.0.1"
-          sources."uuid-8.1.0"
+          sources."pouchdb-binary-utils-7.3.0"
+          sources."pouchdb-collections-7.3.0"
+          sources."pouchdb-errors-7.3.0"
+          sources."pouchdb-md5-7.3.0"
+          sources."pouchdb-utils-7.3.0"
+          sources."spark-md5-3.0.2"
+          sources."uuid-8.3.2"
         ];
       })
       sources."pouchdb-json-7.0.0"
-      (sources."pouchdb-mapreduce-utils-7.2.2" // {
+      (sources."pouchdb-mapreduce-utils-7.3.0" // {
         dependencies = [
-          sources."buffer-from-1.1.1"
+          sources."buffer-from-1.1.2"
           sources."immediate-3.3.0"
-          sources."pouchdb-binary-utils-7.2.2"
-          sources."pouchdb-collections-7.2.2"
-          sources."pouchdb-errors-7.2.2"
-          sources."pouchdb-md5-7.2.2"
-          sources."pouchdb-utils-7.2.2"
-          sources."spark-md5-3.0.1"
-          sources."uuid-8.1.0"
+          sources."pouchdb-binary-utils-7.3.0"
+          sources."pouchdb-collections-7.3.0"
+          sources."pouchdb-errors-7.3.0"
+          sources."pouchdb-md5-7.3.0"
+          sources."pouchdb-utils-7.3.0"
+          sources."spark-md5-3.0.2"
+          sources."uuid-8.3.2"
         ];
       })
       sources."pouchdb-md5-7.0.0"
       sources."pouchdb-merge-7.0.0"
       sources."pouchdb-promise-5.4.3"
-      (sources."pouchdb-selector-core-7.2.2" // {
+      (sources."pouchdb-selector-core-7.3.0" // {
         dependencies = [
-          sources."buffer-from-1.1.1"
+          sources."buffer-from-1.1.2"
           sources."immediate-3.3.0"
-          sources."pouchdb-binary-utils-7.2.2"
-          sources."pouchdb-collections-7.2.2"
-          sources."pouchdb-errors-7.2.2"
-          sources."pouchdb-md5-7.2.2"
-          sources."pouchdb-utils-7.2.2"
-          sources."spark-md5-3.0.1"
-          sources."uuid-8.1.0"
+          sources."pouchdb-binary-utils-7.3.0"
+          sources."pouchdb-collections-7.3.0"
+          sources."pouchdb-errors-7.3.0"
+          sources."pouchdb-md5-7.3.0"
+          sources."pouchdb-utils-7.3.0"
+          sources."spark-md5-3.0.2"
+          sources."uuid-8.3.2"
         ];
       })
       (sources."pouchdb-utils-7.0.0" // {
@@ -76740,6 +77324,7 @@ in
           sources."kind-of-5.1.0"
         ];
       })
+      sources."stream-to-iterator-3.0.3"
       sources."string-natural-compare-2.0.3"
       sources."string-width-1.0.2"
       sources."string_decoder-1.3.0"
@@ -76792,7 +77377,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
       sources."uc.micro-1.0.6"
-      sources."uglify-js-3.15.3"
+      sources."uglify-js-3.15.4"
       sources."underscore-1.13.2"
       sources."union-value-1.0.1"
       (sources."universal-url-2.0.0" // {
@@ -76920,7 +77505,7 @@ in
       sources."deprecation-2.3.1"
       sources."esprima-4.0.1"
       sources."fs-extra-9.1.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-flag-4.0.0"
       sources."ieee754-1.2.1"
       sources."inherits-2.0.4"
@@ -76979,15 +77564,15 @@ in
   "@nestjs/cli" = nodeEnv.buildNodePackage {
     name = "_at_nestjs_slash_cli";
     packageName = "@nestjs/cli";
-    version = "8.2.4";
+    version = "8.2.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@nestjs/cli/-/cli-8.2.4.tgz";
-      sha512 = "9zNV9oMtaz1vwLO3WXviD0wzRpyiaLWJZ7KCIZLk62U22RDNRsbtLLDS52Wkig5L8UU7Z1xRfrEv+s3f9keysQ==";
+      url = "https://registry.npmjs.org/@nestjs/cli/-/cli-8.2.5.tgz";
+      sha512 = "b5DzZ08q/6iWvLz+n2DhEyZ3rsOurN1ec1jYQaWC5DCVQoZCwyOew48bVf01kevTK4eZyQxPwuErf7HnFAc0oQ==";
     };
     dependencies = [
-      sources."@angular-devkit/core-13.3.0"
-      sources."@angular-devkit/schematics-13.3.0"
-      (sources."@angular-devkit/schematics-cli-13.3.0" // {
+      sources."@angular-devkit/core-13.3.2"
+      sources."@angular-devkit/schematics-13.3.2"
+      (sources."@angular-devkit/schematics-cli-13.3.2" // {
         dependencies = [
           sources."chalk-4.1.2"
           sources."inquirer-8.2.0"
@@ -76997,7 +77582,7 @@ in
       })
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -77007,18 +77592,13 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      (sources."@nestjs/schematics-8.0.8" // {
-        dependencies = [
-          sources."@angular-devkit/core-13.2.5"
-          sources."@angular-devkit/schematics-13.2.5"
-        ];
-      })
+      sources."@nestjs/schematics-8.0.10"
       sources."@types/eslint-8.4.1"
       sources."@types/eslint-scope-3.7.3"
       sources."@types/estree-0.0.51"
       sources."@types/json-schema-7.0.11"
       sources."@types/json5-0.0.29"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/parse-json-4.0.0"
       sources."@webassemblyjs/ast-1.11.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.1"
@@ -77041,7 +77621,7 @@ in
       sources."acorn-import-assertions-1.8.0"
       sources."ajv-8.9.0"
       sources."ajv-formats-2.1.1"
-      sources."ajv-keywords-5.1.0"
+      sources."ajv-keywords-3.5.2"
       sources."ansi-colors-4.1.1"
       sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.1"
@@ -77057,7 +77637,7 @@ in
       sources."buffer-5.7.1"
       sources."buffer-from-1.1.2"
       sources."callsites-3.1.0"
-      sources."caniuse-lite-1.0.30001320"
+      sources."caniuse-lite-1.0.30001332"
       sources."chalk-3.0.0"
       sources."chardet-0.7.0"
       sources."chokidar-3.5.3"
@@ -77076,10 +77656,10 @@ in
       sources."cross-spawn-7.0.3"
       sources."deepmerge-4.2.2"
       sources."defaults-1.0.3"
-      sources."electron-to-chromium-1.4.96"
+      sources."electron-to-chromium-1.4.114"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
-      sources."enhanced-resolve-5.9.2"
+      sources."enhanced-resolve-5.9.3"
       sources."error-ex-1.3.2"
       sources."es-module-lexer-0.9.3"
       sources."escalade-3.1.1"
@@ -77098,7 +77678,7 @@ in
       sources."fast-json-stable-stringify-2.1.0"
       sources."figures-3.2.0"
       sources."fill-range-7.0.1"
-      (sources."fork-ts-checker-webpack-plugin-7.2.1" // {
+      (sources."fork-ts-checker-webpack-plugin-7.2.3" // {
         dependencies = [
           sources."chalk-4.1.2"
         ];
@@ -77112,7 +77692,7 @@ in
       sources."glob-7.2.0"
       sources."glob-parent-5.1.2"
       sources."glob-to-regexp-0.4.1"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
       sources."human-signals-1.1.1"
@@ -77129,7 +77709,7 @@ in
       sources."interpret-1.4.0"
       sources."is-arrayish-0.2.1"
       sources."is-binary-path-2.1.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
@@ -77151,7 +77731,7 @@ in
       sources."jsonc-parser-3.0.0"
       sources."jsonfile-6.1.0"
       sources."lines-and-columns-1.2.4"
-      sources."loader-runner-4.2.0"
+      sources."loader-runner-4.3.0"
       sources."lodash-4.17.21"
       (sources."log-symbols-4.1.0" // {
         dependencies = [
@@ -77167,11 +77747,11 @@ in
       sources."mime-types-2.1.35"
       sources."mimic-fn-2.1.0"
       sources."minimatch-3.1.2"
-      sources."minimist-1.2.5"
+      sources."minimist-1.2.6"
       sources."mute-stream-0.0.8"
       sources."neo-async-2.6.2"
       sources."node-emoji-1.11.0"
-      sources."node-releases-2.0.2"
+      sources."node-releases-2.0.3"
       sources."normalize-path-3.0.0"
       sources."npm-run-path-4.0.1"
       sources."once-1.4.0"
@@ -77207,8 +77787,13 @@ in
       sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."schema-utils-4.0.0"
-      sources."semver-7.3.5"
+      (sources."schema-utils-3.1.1" // {
+        dependencies = [
+          sources."ajv-6.12.6"
+          sources."json-schema-traverse-0.4.1"
+        ];
+      })
+      sources."semver-7.3.7"
       sources."serialize-javascript-6.0.0"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
@@ -77237,10 +77822,6 @@ in
       })
       (sources."terser-webpack-plugin-5.3.1" // {
         dependencies = [
-          sources."ajv-6.12.6"
-          sources."ajv-keywords-3.5.2"
-          sources."json-schema-traverse-0.4.1"
-          sources."schema-utils-3.1.1"
           sources."source-map-0.6.1"
         ];
       })
@@ -77248,7 +77829,7 @@ in
       sources."tmp-0.0.33"
       sources."to-regex-range-5.0.1"
       sources."tree-kill-1.2.2"
-      sources."tsconfig-paths-3.14.0"
+      sources."tsconfig-paths-3.14.1"
       (sources."tsconfig-paths-webpack-plugin-3.5.2" // {
         dependencies = [
           sources."chalk-4.1.2"
@@ -77262,14 +77843,7 @@ in
       sources."util-deprecate-1.0.2"
       sources."watchpack-2.3.1"
       sources."wcwidth-1.0.1"
-      (sources."webpack-5.70.0" // {
-        dependencies = [
-          sources."ajv-6.12.6"
-          sources."ajv-keywords-3.5.2"
-          sources."json-schema-traverse-0.4.1"
-          sources."schema-utils-3.1.1"
-        ];
-      })
+      sources."webpack-5.71.0"
       sources."webpack-node-externals-3.0.0"
       sources."webpack-sources-3.2.3"
       sources."which-2.0.2"
@@ -77332,7 +77906,7 @@ in
       sources."util-deprecate-1.0.2"
       sources."wasm-feature-detect-1.2.11"
       sources."wcwidth-1.0.1"
-      sources."web-streams-polyfill-3.2.0"
+      sources."web-streams-polyfill-3.2.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -77467,7 +78041,7 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      (sources."aws-sdk-2.1101.0" // {
+      (sources."aws-sdk-2.1117.0" // {
         dependencies = [
           sources."uuid-3.3.2"
         ];
@@ -77512,7 +78086,7 @@ in
         ];
       })
       sources."deep-copy-1.4.2"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."delayed-stream-1.0.0"
       sources."denque-1.5.1"
       sources."depd-1.1.2"
@@ -77557,7 +78131,7 @@ in
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
       sources."getpass-0.1.7"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       (sources."grant-4.7.0" // {
         dependencies = [
           sources."qs-6.10.3"
@@ -77567,6 +78141,7 @@ in
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."helmet-4.6.0"
       sources."http-errors-1.7.2"
@@ -77621,7 +78196,7 @@ in
           sources."mime-db-1.42.0"
         ];
       })
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."moment-timezone-0.5.34"
       (sources."morgan-1.10.0" // {
         dependencies = [
@@ -77752,17 +78327,17 @@ in
           sources."@types/node-10.17.60"
         ];
       })
-      sources."@apollographql/apollo-tools-0.5.2"
+      sources."@apollographql/apollo-tools-0.5.3"
       sources."@apollographql/graphql-playground-html-1.6.27"
       sources."@apollographql/graphql-upload-8-fork-8.1.3"
       sources."@babel/code-frame-7.16.7"
       sources."@babel/compat-data-7.17.7"
-      (sources."@babel/core-7.17.8" // {
+      (sources."@babel/core-7.17.9" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      (sources."@babel/generator-7.17.7" // {
+      (sources."@babel/generator-7.17.9" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
@@ -77774,7 +78349,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/helper-create-class-features-plugin-7.17.6"
+      sources."@babel/helper-create-class-features-plugin-7.17.9"
       sources."@babel/helper-create-regexp-features-plugin-7.17.0"
       (sources."@babel/helper-define-polyfill-provider-0.3.1" // {
         dependencies = [
@@ -77783,8 +78358,7 @@ in
       })
       sources."@babel/helper-environment-visitor-7.16.7"
       sources."@babel/helper-explode-assignable-expression-7.16.7"
-      sources."@babel/helper-function-name-7.16.7"
-      sources."@babel/helper-get-function-arity-7.16.7"
+      sources."@babel/helper-function-name-7.17.9"
       sources."@babel/helper-hoist-variables-7.16.7"
       sources."@babel/helper-member-expression-to-functions-7.17.7"
       sources."@babel/helper-module-imports-7.16.7"
@@ -77799,8 +78373,8 @@ in
       sources."@babel/helper-validator-identifier-7.16.7"
       sources."@babel/helper-validator-option-7.16.7"
       sources."@babel/helper-wrap-function-7.16.8"
-      sources."@babel/helpers-7.17.8"
-      (sources."@babel/highlight-7.16.10" // {
+      sources."@babel/helpers-7.17.9"
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -77810,7 +78384,7 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@babel/parser-7.17.8"
+      sources."@babel/parser-7.17.9"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7"
       sources."@babel/plugin-proposal-async-generator-functions-7.16.8"
@@ -77860,7 +78434,7 @@ in
       sources."@babel/plugin-transform-literals-7.16.7"
       sources."@babel/plugin-transform-member-expression-literals-7.16.7"
       sources."@babel/plugin-transform-modules-amd-7.16.7"
-      sources."@babel/plugin-transform-modules-commonjs-7.17.7"
+      sources."@babel/plugin-transform-modules-commonjs-7.17.9"
       sources."@babel/plugin-transform-modules-systemjs-7.17.8"
       sources."@babel/plugin-transform-modules-umd-7.16.7"
       sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.8"
@@ -77868,7 +78442,7 @@ in
       sources."@babel/plugin-transform-object-super-7.16.7"
       sources."@babel/plugin-transform-parameters-7.16.7"
       sources."@babel/plugin-transform-property-literals-7.16.7"
-      sources."@babel/plugin-transform-regenerator-7.16.7"
+      sources."@babel/plugin-transform-regenerator-7.17.9"
       sources."@babel/plugin-transform-reserved-words-7.16.7"
       sources."@babel/plugin-transform-shorthand-properties-7.16.7"
       sources."@babel/plugin-transform-spread-7.16.7"
@@ -77893,16 +78467,16 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."@babel/runtime-7.17.8"
+      sources."@babel/runtime-7.17.9"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.17.3"
+      sources."@babel/traverse-7.17.9"
       sources."@babel/types-7.17.0"
       sources."@hapi/hoek-9.2.1"
       sources."@hapi/topo-5.1.0"
       sources."@josephg/resolvable-1.0.1"
       sources."@jridgewell/resolve-uri-3.0.5"
       sources."@jridgewell/sourcemap-codec-1.4.11"
-      sources."@jridgewell/trace-mapping-0.3.4"
+      sources."@jridgewell/trace-mapping-0.3.8"
       sources."@node-ipc/js-queue-2.0.3"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
@@ -77933,7 +78507,7 @@ in
       sources."@types/fs-capacitor-2.0.0"
       sources."@types/http-assert-1.5.3"
       sources."@types/http-errors-1.8.2"
-      sources."@types/inquirer-8.2.0"
+      sources."@types/inquirer-8.2.1"
       (sources."@types/jscodeshift-0.7.2" // {
         dependencies = [
           sources."ast-types-0.12.1"
@@ -77945,7 +78519,7 @@ in
       sources."@types/koa-compose-3.2.5"
       sources."@types/long-4.0.1"
       sources."@types/mime-1.3.2"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/qs-6.9.7"
       sources."@types/range-parser-1.2.4"
@@ -77960,9 +78534,9 @@ in
       })
       sources."@vue/cli-ui-addon-webpack-5.0.4"
       sources."@vue/cli-ui-addon-widgets-5.0.4"
-      sources."@vue/compiler-core-3.2.31"
-      sources."@vue/compiler-dom-3.2.31"
-      sources."@vue/shared-3.2.31"
+      sources."@vue/compiler-core-3.2.33"
+      sources."@vue/compiler-dom-3.2.33"
+      sources."@vue/shared-3.2.33"
       (sources."@wry/equality-0.1.11" // {
         dependencies = [
           sources."tslib-1.14.1"
@@ -77980,7 +78554,7 @@ in
       sources."ansi-styles-4.3.0"
       sources."apollo-cache-control-0.14.0"
       sources."apollo-datasource-0.9.0"
-      sources."apollo-graphql-0.9.5"
+      sources."apollo-graphql-0.9.6"
       (sources."apollo-link-1.2.14" // {
         dependencies = [
           sources."tslib-1.14.1"
@@ -78015,7 +78589,7 @@ in
       sources."arrify-2.0.1"
       sources."assign-symbols-1.0.0"
       sources."ast-types-0.14.2"
-      sources."async-2.6.3"
+      sources."async-2.6.4"
       sources."async-retry-1.3.3"
       sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
@@ -78037,9 +78611,12 @@ in
       })
       sources."base64-js-1.5.1"
       sources."bl-4.1.0"
-      (sources."body-parser-1.19.2" // {
+      (sources."body-parser-1.20.0" // {
         dependencies = [
           sources."debug-2.6.9"
+          sources."depd-2.0.0"
+          sources."http-errors-2.0.0"
+          sources."statuses-2.0.1"
         ];
       })
       (sources."boxen-5.1.2" // {
@@ -78068,7 +78645,7 @@ in
       })
       sources."call-bind-1.0.2"
       sources."camelcase-6.3.0"
-      sources."caniuse-lite-1.0.30001320"
+      sources."caniuse-lite-1.0.30001332"
       sources."caw-2.0.1"
       sources."chalk-4.1.2"
       sources."chardet-0.7.0"
@@ -78121,12 +78698,12 @@ in
       sources."cookie-0.4.2"
       sources."cookie-signature-1.0.6"
       sources."copy-descriptor-0.1.1"
-      (sources."core-js-compat-3.21.1" // {
+      (sources."core-js-compat-3.22.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
       })
-      sources."core-js-pure-3.21.1"
+      sources."core-js-pure-3.22.1"
       sources."core-util-is-1.0.3"
       sources."cors-2.8.5"
       (sources."cross-spawn-6.0.5" // {
@@ -78172,11 +78749,11 @@ in
       sources."deepmerge-4.2.2"
       sources."defaults-1.0.3"
       sources."define-lazy-prop-2.0.0"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."define-property-2.0.2"
       sources."depd-1.1.2"
       sources."deprecated-decorator-0.1.6"
-      sources."destroy-1.0.4"
+      sources."destroy-1.2.0"
       sources."dicer-0.3.0"
       sources."dir-glob-3.0.1"
       (sources."download-7.1.0" // {
@@ -78188,15 +78765,15 @@ in
       sources."duplexer3-0.1.4"
       sources."easy-stack-1.0.1"
       sources."ee-first-1.1.1"
-      sources."ejs-3.1.6"
-      sources."electron-to-chromium-1.4.96"
+      sources."ejs-3.1.7"
+      sources."electron-to-chromium-1.4.114"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."entities-2.2.0"
       sources."envinfo-7.8.1"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.19.1"
+      sources."es-abstract-1.19.5"
       sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.1"
       sources."escape-html-1.0.3"
@@ -78229,7 +78806,11 @@ in
       })
       (sources."express-4.17.3" // {
         dependencies = [
+          sources."body-parser-1.19.2"
           sources."debug-2.6.9"
+          sources."on-finished-2.3.0"
+          sources."qs-6.9.7"
+          sources."raw-body-2.4.3"
         ];
       })
       sources."express-history-api-fallback-2.2.1"
@@ -78253,13 +78834,19 @@ in
       sources."fd-slicer-1.1.0"
       sources."figures-3.2.0"
       sources."file-type-8.1.0"
-      sources."filelist-1.0.2"
+      (sources."filelist-1.0.3" // {
+        dependencies = [
+          sources."brace-expansion-2.0.1"
+          sources."minimatch-5.0.1"
+        ];
+      })
       sources."filename-reserved-regex-2.0.0"
       sources."filenamify-2.1.0"
       sources."fill-range-7.0.1"
       (sources."finalhandler-1.1.2" // {
         dependencies = [
           sources."debug-2.6.9"
+          sources."on-finished-2.3.0"
         ];
       })
       (sources."find-cache-dir-2.1.0" // {
@@ -78289,7 +78876,7 @@ in
           sources."which-2.0.2"
         ];
       })
-      sources."flow-parser-0.174.1"
+      sources."flow-parser-0.176.2"
       sources."for-each-0.3.3"
       sources."for-in-1.0.2"
       sources."forwarded-0.2.0"
@@ -78331,7 +78918,7 @@ in
           sources."get-stream-3.0.0"
         ];
       })
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."graphql-15.8.0"
       sources."graphql-extensions-0.15.0"
       sources."graphql-subscriptions-1.2.1"
@@ -78344,8 +78931,9 @@ in
       sources."graphql-type-json-0.3.2"
       sources."growly-1.3.0"
       sources."has-1.0.3"
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
       sources."has-flag-4.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbol-support-x-1.4.2"
       sources."has-symbols-1.0.3"
       sources."has-to-string-tag-x-1.4.1"
@@ -78384,7 +78972,7 @@ in
       sources."is-boolean-object-1.1.2"
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.4"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.5"
       sources."is-descriptor-1.0.2"
@@ -78397,14 +78985,14 @@ in
       sources."is-natural-number-4.0.1"
       sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-object-1.0.2"
       sources."is-plain-obj-1.1.0"
       sources."is-plain-object-2.0.4"
       sources."is-promise-2.2.2"
       sources."is-regex-1.1.4"
       sources."is-retry-allowed-1.2.0"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-stream-1.1.0"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
@@ -78418,9 +79006,9 @@ in
       sources."isobject-3.0.1"
       sources."isurl-1.0.0"
       sources."iterall-1.3.0"
-      (sources."jake-10.8.4" // {
+      (sources."jake-10.8.5" // {
         dependencies = [
-          sources."async-0.9.2"
+          sources."async-3.2.3"
         ];
       })
       sources."javascript-stringify-2.1.0"
@@ -78504,7 +79092,7 @@ in
           sources."which-2.0.2"
         ];
       })
-      sources."node-releases-2.0.2"
+      sources."node-releases-2.0.3"
       (sources."normalize-package-data-2.5.0" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -78538,7 +79126,7 @@ in
       sources."object.assign-4.1.2"
       sources."object.getownpropertydescriptors-2.1.3"
       sources."object.pick-1.3.0"
-      sources."on-finished-2.3.0"
+      sources."on-finished-2.4.1"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
       sources."open-8.4.0"
@@ -78595,7 +79183,7 @@ in
       })
       sources."posix-character-classes-0.1.1"
       sources."prepend-http-2.0.0"
-      sources."prismjs-1.27.0"
+      sources."prismjs-1.28.0"
       sources."private-0.1.8"
       (sources."process-exists-4.1.0" // {
         dependencies = [
@@ -78607,18 +79195,24 @@ in
       sources."proxy-addr-2.0.7"
       sources."ps-list-7.2.0"
       sources."pump-3.0.0"
-      sources."qs-6.9.7"
+      sources."qs-6.10.3"
       sources."query-string-5.1.1"
       sources."queue-microtask-1.2.3"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.3"
+      (sources."raw-body-2.5.1" // {
+        dependencies = [
+          sources."depd-2.0.0"
+          sources."http-errors-2.0.0"
+          sources."statuses-2.0.1"
+        ];
+      })
       sources."read-pkg-5.2.0"
       sources."readable-stream-3.6.0"
       sources."recast-0.20.5"
       sources."regenerate-1.4.2"
       sources."regenerate-unicode-properties-10.0.1"
       sources."regenerator-runtime-0.13.9"
-      sources."regenerator-transform-0.14.5"
+      sources."regenerator-transform-0.15.0"
       sources."regex-not-1.0.2"
       sources."regexpu-core-5.0.1"
       sources."regjsgen-0.6.0"
@@ -78651,7 +79245,7 @@ in
           sources."commander-2.20.3"
         ];
       })
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       (sources."send-0.17.2" // {
         dependencies = [
           (sources."debug-2.6.9" // {
@@ -78659,7 +79253,9 @@ in
               sources."ms-2.0.0"
             ];
           })
+          sources."destroy-1.0.4"
           sources."ms-2.1.3"
+          sources."on-finished-2.3.0"
         ];
       })
       sources."serve-static-1.14.2"
@@ -79019,10 +79615,10 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.16.7"
-      sources."@babel/generator-7.17.7"
+      sources."@babel/generator-7.17.9"
       sources."@babel/helper-validator-identifier-7.16.7"
-      sources."@babel/highlight-7.16.10"
-      sources."@babel/parser-7.17.8"
+      sources."@babel/highlight-7.17.9"
+      sources."@babel/parser-7.17.9"
       sources."@babel/template-7.16.7"
       sources."@babel/types-7.17.0"
       sources."@webassemblyjs/ast-1.11.1"
@@ -79100,11 +79696,11 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      sources."@babel/highlight-7.16.10"
+      sources."@babel/highlight-7.17.9"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/acorn-4.0.6"
-      sources."@types/concat-stream-1.6.1"
+      sources."@types/concat-stream-2.0.0"
       sources."@types/debug-4.1.7"
       sources."@types/estree-0.0.51"
       sources."@types/estree-jsx-0.0.1"
@@ -79115,7 +79711,7 @@ in
       sources."@types/minimist-1.2.2"
       sources."@types/ms-0.7.31"
       sources."@types/nlcst-1.0.0"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/parse5-6.0.3"
       sources."@types/supports-color-8.1.1"
@@ -79225,7 +79821,7 @@ in
         ];
       })
       sources."got-9.6.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
@@ -79261,7 +79857,7 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-buffer-2.0.5"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-decimal-2.0.1"
       sources."is-empty-1.2.0"
       sources."is-fullwidth-code-point-3.0.0"
@@ -79356,11 +79952,7 @@ in
       sources."micromark-util-decode-numeric-character-reference-1.0.0"
       sources."micromark-util-decode-string-1.0.2"
       sources."micromark-util-encode-1.0.1"
-      (sources."micromark-util-events-to-acorn-1.0.4" // {
-        dependencies = [
-          sources."@types/estree-0.0.50"
-        ];
-      })
+      sources."micromark-util-events-to-acorn-1.0.6"
       sources."micromark-util-html-tag-name-1.0.0"
       sources."micromark-util-normalize-identifier-1.0.0"
       sources."micromark-util-resolve-all-1.0.0"
@@ -79438,7 +80030,7 @@ in
       sources."retext-profanities-7.1.0"
       sources."sade-1.8.1"
       sources."safe-buffer-5.2.1"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -79493,7 +80085,7 @@ in
         ];
       })
       sources."unified-diff-4.0.1"
-      (sources."unified-engine-9.0.5" // {
+      (sources."unified-engine-9.1.0" // {
         dependencies = [
           sources."is-plain-obj-4.0.0"
           sources."lines-and-columns-2.0.3"
@@ -79509,7 +80101,7 @@ in
       sources."unist-util-inspect-7.0.0"
       sources."unist-util-is-5.1.1"
       sources."unist-util-modify-children-2.0.0"
-      sources."unist-util-position-4.0.2"
+      sources."unist-util-position-4.0.3"
       sources."unist-util-position-from-estree-1.1.1"
       sources."unist-util-remove-position-4.0.1"
       sources."unist-util-stringify-position-3.0.2"
@@ -79544,7 +80136,7 @@ in
           sources."emoji-regex-9.2.2"
           sources."string-width-5.1.2"
           sources."strip-ansi-7.0.1"
-          sources."supports-color-9.2.1"
+          sources."supports-color-9.2.2"
         ];
       })
       sources."vfile-sort-3.0.0"
@@ -79589,16 +80181,15 @@ in
       sources."@ampproject/remapping-2.1.2"
       sources."@babel/code-frame-7.16.7"
       sources."@babel/compat-data-7.17.7"
-      sources."@babel/core-7.17.8"
-      (sources."@babel/generator-7.17.7" // {
+      sources."@babel/core-7.17.9"
+      (sources."@babel/generator-7.17.9" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
       sources."@babel/helper-compilation-targets-7.17.7"
       sources."@babel/helper-environment-visitor-7.16.7"
-      sources."@babel/helper-function-name-7.16.7"
-      sources."@babel/helper-get-function-arity-7.16.7"
+      sources."@babel/helper-function-name-7.17.9"
       sources."@babel/helper-hoist-variables-7.16.7"
       sources."@babel/helper-module-imports-7.16.7"
       sources."@babel/helper-module-transforms-7.17.7"
@@ -79606,24 +80197,24 @@ in
       sources."@babel/helper-split-export-declaration-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
       sources."@babel/helper-validator-option-7.16.7"
-      sources."@babel/helpers-7.17.8"
-      sources."@babel/highlight-7.16.10"
-      sources."@babel/parser-7.17.8"
+      sources."@babel/helpers-7.17.9"
+      sources."@babel/highlight-7.17.9"
+      sources."@babel/parser-7.17.9"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.17.3"
+      sources."@babel/traverse-7.17.9"
       sources."@babel/types-7.17.0"
       sources."@jridgewell/resolve-uri-3.0.5"
       sources."@jridgewell/sourcemap-codec-1.4.11"
-      sources."@jridgewell/trace-mapping-0.3.4"
-      sources."@xmldom/xmldom-0.8.1"
+      sources."@jridgewell/trace-mapping-0.3.8"
+      sources."@xmldom/xmldom-0.8.2"
       sources."JSV-4.0.2"
       sources."ansi-styles-3.2.1"
       sources."array-unique-0.3.2"
       sources."async-3.2.3"
       sources."balanced-match-1.0.2"
-      sources."brace-expansion-1.1.11"
+      sources."brace-expansion-2.0.1"
       sources."browserslist-4.20.2"
-      sources."caniuse-lite-1.0.30001320"
+      sources."caniuse-lite-1.0.30001332"
       sources."chalk-2.4.2"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -79633,11 +80224,15 @@ in
       sources."convert-source-map-1.8.0"
       sources."debug-4.3.4"
       sources."ejs-3.1.6"
-      sources."electron-to-chromium-1.4.96"
+      sources."electron-to-chromium-1.4.114"
       sources."ensure-posix-path-1.1.1"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
-      sources."filelist-1.0.2"
+      (sources."filelist-1.0.3" // {
+        dependencies = [
+          sources."minimatch-5.0.1"
+        ];
+      })
       sources."fs-extra-5.0.0"
       sources."function-bind-1.1.1"
       sources."gensync-1.0.0-beta.2"
@@ -79653,20 +80248,19 @@ in
         ];
       })
       sources."globals-11.12.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
       sources."has-color-0.1.7"
       sources."has-flag-3.0.0"
       sources."homedir-polyfill-1.0.3"
       sources."ini-1.3.8"
       sources."is-3.3.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-windows-1.0.2"
       sources."isexe-2.0.0"
-      (sources."jake-10.8.4" // {
+      (sources."jake-10.8.5" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."async-0.9.2"
           sources."chalk-4.1.2"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
@@ -79681,10 +80275,14 @@ in
       sources."jsonlint-1.6.3"
       sources."lodash-4.17.21"
       sources."matcher-collection-1.1.2"
-      sources."minimatch-3.1.2"
+      (sources."minimatch-3.1.2" // {
+        dependencies = [
+          sources."brace-expansion-1.1.11"
+        ];
+      })
       sources."moment-2.29.1"
       sources."ms-2.1.2"
-      sources."node-releases-2.0.2"
+      sources."node-releases-2.0.3"
       sources."node.extend-2.0.2"
       (sources."nomnom-1.8.1" // {
         dependencies = [
@@ -79725,10 +80323,10 @@ in
   antennas = nodeEnv.buildNodePackage {
     name = "antennas";
     packageName = "antennas";
-    version = "4.1.0";
+    version = "4.1.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/antennas/-/antennas-4.1.0.tgz";
-      sha512 = "lqPoPSftBQyiIPFL2GNxvbHZrHTIL+iw9xhqwemUxB3ftcQRfpuWPE95MC1NSSFJ+dEAqtAkwh8tdNidK95yyQ==";
+      url = "https://registry.npmjs.org/antennas/-/antennas-4.1.1.tgz";
+      sha512 = "hNT3T+vtIvgL1rlahmlKqaz1XdWMJvyzYVM36WwxV9786Jtei1s/TCmAetko5d0fZVzIfYIr19VLVQnEQiQtMQ==";
     };
     dependencies = [
       sources."accepts-1.3.8"
@@ -79739,10 +80337,11 @@ in
       sources."argparse-1.0.10"
       sources."asn1-0.2.6"
       sources."assert-plus-1.0.0"
-      sources."async-2.6.3"
+      sources."async-2.6.4"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
+      sources."axios-0.24.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bluebird-3.7.2"
       sources."bytes-3.1.2"
@@ -79777,6 +80376,7 @@ in
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
+      sources."follow-redirects-1.14.9"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
       sources."fresh-0.5.2"
@@ -79857,8 +80457,6 @@ in
       sources."punycode-2.1.1"
       sources."qs-6.5.3"
       sources."request-2.88.2"
-      sources."request-promise-core-1.1.4"
-      sources."request-promise-native-1.0.9"
       sources."require-directory-2.1.1"
       (sources."resolve-path-1.4.0" // {
         dependencies = [
@@ -79874,7 +80472,6 @@ in
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.17.0"
       sources."statuses-1.5.0"
-      sources."stealthy-require-1.1.1"
       sources."string-width-4.2.3"
       sources."strip-ansi-6.0.1"
       sources."supports-color-5.5.0"
@@ -79887,7 +80484,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
       sources."uri-js-4.4.1"
-      sources."urijs-1.19.10"
+      sources."urijs-1.19.11"
       sources."uuid-3.4.0"
       sources."vary-1.1.2"
       sources."verror-1.10.0"
@@ -79899,14 +80496,14 @@ in
         ];
       })
       sources."y18n-5.0.8"
-      sources."yargs-17.4.0"
+      sources."yargs-17.4.1"
       sources."yargs-parser-21.0.1"
       sources."ylru-1.3.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "HDHomeRun emulator for Plex DVR to connect to Tvheadend.";
-      homepage = "https://github.com/thejf/antennas#readme";
+      homepage = "https://github.com/jfarseneau/antennas#readme";
       license = "MIT";
     };
     production = true;
@@ -79924,7 +80521,7 @@ in
     dependencies = [
       sources."@types/glob-7.2.0"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."chromium-pickle-js-0.2.0"
@@ -80009,11 +80606,11 @@ in
     };
     dependencies = [
       sources."browserslist-4.20.2"
-      sources."caniuse-lite-1.0.30001320"
-      sources."electron-to-chromium-1.4.96"
+      sources."caniuse-lite-1.0.30001332"
+      sources."electron-to-chromium-1.4.114"
       sources."escalade-3.1.1"
       sources."fraction.js-4.2.0"
-      sources."node-releases-2.0.2"
+      sources."node-releases-2.0.3"
       sources."normalize-range-0.1.2"
       sources."picocolors-1.0.0"
       sources."postcss-value-parser-4.2.0"
@@ -80038,14 +80635,14 @@ in
     };
     dependencies = [
       sources."@tootallnate/once-1.1.2"
-      sources."@types/node-17.0.23"
-      sources."@types/yauzl-2.9.2"
+      sources."@types/node-17.0.25"
+      sources."@types/yauzl-2.10.0"
       sources."agent-base-6.0.2"
       sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."ast-types-0.13.4"
-      (sources."aws-sdk-2.1101.0" // {
+      (sources."aws-sdk-2.1117.0" // {
         dependencies = [
           sources."uuid-3.3.2"
         ];
@@ -80066,7 +80663,7 @@ in
       sources."chalk-4.1.2"
       sources."chardet-0.7.0"
       sources."cheerio-1.0.0-rc.10"
-      sources."cheerio-select-1.5.0"
+      sources."cheerio-select-1.6.0"
       sources."chownr-1.1.4"
       sources."cli-cursor-3.1.0"
       sources."cli-spinners-2.6.1"
@@ -80077,8 +80674,8 @@ in
       sources."commander-8.3.0"
       sources."concat-map-0.0.1"
       sources."core-util-is-1.0.3"
-      sources."css-select-4.2.1"
-      sources."css-what-5.1.0"
+      sources."css-select-4.3.0"
+      sources."css-what-6.1.0"
       sources."data-uri-to-buffer-3.0.1"
       sources."debug-4.3.4"
       sources."deep-is-0.1.4"
@@ -80086,8 +80683,8 @@ in
       sources."degenerator-2.2.0"
       sources."depd-2.0.0"
       sources."devtools-protocol-0.0.901419"
-      sources."dom-serializer-1.3.2"
-      sources."domelementtype-2.2.0"
+      sources."dom-serializer-1.4.1"
+      sources."domelementtype-2.3.0"
       sources."domhandler-4.3.1"
       sources."domutils-2.8.0"
       sources."emoji-regex-8.0.0"
@@ -80119,12 +80716,12 @@ in
       sources."get-stream-5.2.0"
       sources."get-uri-3.0.2"
       sources."glob-7.2.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-flag-4.0.0"
       sources."htmlparser2-6.1.0"
       sources."http-errors-2.0.0"
       sources."http-proxy-agent-4.0.1"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.1.13"
       sources."inflight-1.0.6"
@@ -80177,6 +80774,7 @@ in
       (sources."puppeteer-10.4.0" // {
         dependencies = [
           sources."debug-4.3.1"
+          sources."https-proxy-agent-5.0.0"
         ];
       })
       sources."querystring-0.2.0"
@@ -80253,7 +80851,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -80360,7 +80958,7 @@ in
       sources."glob-parent-5.1.2"
       sources."globby-11.1.0"
       sources."got-9.6.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
@@ -80378,7 +80976,7 @@ in
       sources."is-alphanumerical-1.0.4"
       sources."is-arrayish-0.2.1"
       sources."is-buffer-2.0.5"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-decimal-1.0.4"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
@@ -80438,7 +81036,7 @@ in
       sources."nice-try-1.0.5"
       (sources."normalize-package-data-3.0.3" // {
         dependencies = [
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
         ];
       })
       sources."normalize-url-4.5.1"
@@ -80663,19 +81261,19 @@ in
   balanceofsatoshis = nodeEnv.buildNodePackage {
     name = "balanceofsatoshis";
     packageName = "balanceofsatoshis";
-    version = "11.61.3";
+    version = "12.5.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/balanceofsatoshis/-/balanceofsatoshis-11.61.3.tgz";
-      sha512 = "+ORg7HujAcHBRnOycZsbkVaNESplxHqYUxbtfZ1jSqNRoIf/mjQhpzTa4L5huBk7C+nFnx/rbfJn+xFIeL7ebA==";
+      url = "https://registry.npmjs.org/balanceofsatoshis/-/balanceofsatoshis-12.5.0.tgz";
+      sha512 = "r9L34CZGMxxgZ19h2GDXQvEdUdqVr8oqACFMc2kFH8JjtDkpzeO8gwTv40PQyki4xWlAqt953afbk7w3AW0wUw==";
     };
     dependencies = [
-      (sources."@alexbosworth/caporal-1.4.1" // {
+      (sources."@alexbosworth/caporal-1.4.4" // {
         dependencies = [
           sources."colorette-1.4.0"
         ];
       })
       sources."@alexbosworth/cli-table3-0.6.1"
-      sources."@alexbosworth/fiat-1.0.1"
+      sources."@alexbosworth/fiat-1.0.2"
       sources."@alexbosworth/html2unicode-1.1.5"
       sources."@alexbosworth/node-fetch-2.6.2"
       (sources."@alexbosworth/prettyjson-1.2.2" // {
@@ -80690,8 +81288,10 @@ in
           sources."string_decoder-1.3.0"
         ];
       })
-      sources."@grammyjs/types-2.6.0"
-      sources."@grpc/grpc-js-1.5.7"
+      sources."@colors/colors-1.5.0"
+      sources."@dabh/diagnostics-2.0.3"
+      sources."@grammyjs/types-2.7.0"
+      sources."@grpc/grpc-js-1.6.4"
       sources."@grpc/proto-loader-0.6.9"
       sources."@handsontable/formulajs-2.0.2"
       sources."@mitmaro/errors-1.0.0"
@@ -80715,13 +81315,13 @@ in
       sources."@types/express-serve-static-core-4.17.28"
       sources."@types/long-4.0.1"
       sources."@types/mime-1.3.2"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/qs-6.9.7"
       sources."@types/range-parser-1.2.4"
-      sources."@types/request-2.48.7"
+      sources."@types/request-2.48.8"
       sources."@types/serve-static-1.13.10"
-      sources."@types/tough-cookie-4.0.1"
-      sources."@types/ws-8.2.0"
+      sources."@types/tough-cookie-4.0.2"
+      sources."@types/ws-8.5.3"
       sources."abort-controller-3.0.0"
       sources."accepts-1.3.8"
       (sources."agent-base-6.0.2" // {
@@ -80741,22 +81341,14 @@ in
       sources."asciichart-1.5.25"
       sources."astral-regex-2.0.0"
       sources."async-3.2.3"
-      sources."asyncjs-util-1.2.8"
+      sources."asyncjs-util-1.2.9"
       sources."asynckit-0.4.0"
       sources."base-x-3.0.9"
       sources."base64-js-1.5.1"
       sources."basic-auth-2.0.1"
       sources."bech32-2.0.0"
       sources."bessel-1.0.2"
-      sources."bindings-1.5.0"
       sources."bip174-2.0.1"
-      (sources."bip32-2.0.6" // {
-        dependencies = [
-          sources."@types/node-10.12.18"
-          sources."bn.js-4.12.0"
-          sources."tiny-secp256k1-1.1.6"
-        ];
-      })
       sources."bip65-1.0.3"
       sources."bip66-1.1.5"
       sources."bip68-1.0.4"
@@ -80769,32 +81361,33 @@ in
       })
       sources."bluebird-3.7.2"
       sources."bn.js-5.2.0"
-      sources."body-parser-1.19.2"
-      sources."bolt01-1.2.3"
-      sources."bolt03-1.2.13"
-      sources."bolt07-1.8.0"
-      sources."bolt09-0.2.1"
+      sources."body-parser-1.20.0"
+      sources."bolt01-1.2.4"
+      sources."bolt03-1.2.14"
+      sources."bolt07-1.8.1"
+      sources."bolt09-0.2.2"
       (sources."boxen-5.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
           sources."supports-color-7.2.0"
           sources."type-fest-0.20.2"
         ];
       })
-      sources."brorand-1.1.0"
       sources."bs58-4.0.1"
       sources."bs58check-2.1.2"
       sources."buffer-5.7.1"
       sources."buffer-from-1.1.2"
       sources."bytes-3.1.2"
-      sources."cacheable-lookup-6.0.4"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
         ];
       })
+      sources."call-bind-1.0.2"
       sources."camelcase-6.3.0"
       sources."cbor-8.1.0"
       (sources."chalk-1.1.3" // {
@@ -80814,26 +81407,31 @@ in
       sources."clone-1.0.4"
       sources."clone-response-1.0.2"
       sources."code-point-at-1.1.0"
-      sources."color-convert-2.0.1"
-      sources."color-name-1.1.4"
+      sources."color-3.2.1"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."color-string-1.9.0"
       sources."colorette-2.0.16"
       sources."colors-1.4.0"
+      sources."colorspace-1.1.4"
       sources."combined-stream-1.0.8"
       sources."commander-6.2.1"
       sources."concat-stream-1.6.2"
       sources."configstore-5.0.1"
-      sources."content-disposition-0.5.3"
+      (sources."content-disposition-0.5.4" // {
+        dependencies = [
+          sources."safe-buffer-5.2.1"
+        ];
+      })
       sources."content-type-1.0.4"
-      sources."cookie-0.4.0"
+      sources."cookie-0.4.2"
       sources."cookie-signature-1.0.6"
       sources."core-util-is-1.0.3"
       sources."cors-2.8.5"
       sources."create-hash-1.2.0"
-      sources."create-hmac-1.1.7"
       sources."crypto-js-4.1.1"
       sources."crypto-random-string-2.0.0"
       sources."csv-parse-5.0.4"
-      sources."cycle-1.0.3"
       sources."debug-2.6.9"
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
@@ -80842,18 +81440,14 @@ in
       sources."define-property-1.0.0"
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
-      sources."depd-1.1.2"
-      sources."destroy-1.0.4"
+      sources."depd-2.0.0"
+      sources."destroy-1.2.0"
       sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
       sources."ecpair-2.0.1"
       sources."ee-first-1.1.1"
-      (sources."elliptic-6.5.4" // {
-        dependencies = [
-          sources."bn.js-4.12.0"
-        ];
-      })
       sources."emoji-regex-8.0.0"
+      sources."enabled-2.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."escalade-3.1.1"
@@ -80863,48 +81457,65 @@ in
       sources."etag-1.8.1"
       sources."event-target-shim-5.0.1"
       sources."exit-hook-1.1.1"
-      (sources."express-4.17.1" // {
+      (sources."express-4.17.3" // {
         dependencies = [
-          sources."body-parser-1.19.0"
-          sources."bytes-3.1.0"
-          sources."http-errors-1.7.2"
-          sources."inherits-2.0.3"
-          sources."qs-6.7.0"
-          sources."raw-body-2.4.0"
-          sources."setprototypeof-1.1.1"
-          sources."toidentifier-1.0.0"
+          sources."body-parser-1.19.2"
+          sources."depd-1.1.2"
+          sources."http-errors-1.8.1"
+          sources."on-finished-2.3.0"
+          sources."qs-6.9.7"
+          sources."raw-body-2.4.3"
+          sources."safe-buffer-5.2.1"
+          sources."statuses-1.5.0"
         ];
       })
       sources."extend-3.0.2"
       sources."external-editor-1.1.1"
-      sources."eyes-0.1.8"
       sources."fast-deep-equal-3.1.3"
       sources."fast-levenshtein-2.0.6"
+      sources."fecha-4.2.3"
       sources."figures-1.7.0"
-      sources."file-uri-to-path-1.0.0"
-      sources."finalhandler-1.1.2"
+      (sources."finalhandler-1.1.2" // {
+        dependencies = [
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
+        ];
+      })
+      sources."fn.name-1.1.0"
       sources."form-data-2.5.1"
       sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
+      sources."function-bind-1.1.1"
       sources."gauge-1.2.7"
       sources."get-caller-file-2.0.5"
+      sources."get-intrinsic-1.1.1"
       sources."get-stream-4.1.0"
-      sources."global-dirs-3.0.0"
-      sources."goldengate-11.1.0"
+      (sources."global-dirs-3.0.0" // {
+        dependencies = [
+          sources."ini-2.0.0"
+        ];
+      })
+      (sources."goldengate-11.2.1" // {
+        dependencies = [
+          sources."ln-service-53.11.0"
+        ];
+      })
       sources."got-9.6.0"
-      sources."graceful-fs-4.2.9"
-      (sources."grammy-1.7.0" // {
+      sources."graceful-fs-4.2.10"
+      (sources."grammy-1.8.0" // {
         dependencies = [
           sources."debug-4.3.4"
           sources."ms-2.1.2"
         ];
       })
+      sources."has-1.0.3"
       (sources."has-ansi-2.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
         ];
       })
       sources."has-flag-4.0.0"
+      sources."has-symbols-1.0.3"
       sources."has-unicode-2.0.1"
       sources."has-yarn-2.1.0"
       (sources."hash-base-3.1.0" // {
@@ -80913,17 +81524,15 @@ in
           sources."safe-buffer-5.2.1"
         ];
       })
-      sources."hash.js-1.1.7"
-      sources."hmac-drbg-1.0.1"
       sources."hot-formula-parser-4.0.0"
       sources."http-cache-semantics-4.1.0"
-      sources."http-errors-1.8.1"
+      sources."http-errors-2.0.0"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
       sources."import-lazy-4.0.0"
       sources."imurmurhash-0.1.4"
       sources."inherits-2.0.4"
-      sources."ini-2.0.0"
+      sources."ini-3.0.0"
       (sources."inquirer-8.2.2" // {
         dependencies = [
           sources."ansi-escapes-4.3.2"
@@ -80931,6 +81540,8 @@ in
           sources."chalk-4.1.2"
           sources."cli-cursor-3.1.0"
           sources."cli-width-3.0.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
           sources."external-editor-3.1.0"
           sources."figures-3.2.0"
           sources."mute-stream-0.0.8"
@@ -80938,17 +81549,14 @@ in
           sources."restore-cursor-3.1.0"
           sources."supports-color-7.2.0"
           sources."tmp-0.0.33"
+          sources."type-fest-0.21.3"
         ];
       })
-      (sources."invoices-2.0.4" // {
-        dependencies = [
-          sources."tiny-secp256k1-2.2.0"
-          sources."uint8array-tools-0.0.6"
-        ];
-      })
+      sources."invoices-2.0.5"
       sources."ip-1.1.5"
       sources."ipaddr.js-1.9.1"
       sources."is-accessor-descriptor-1.0.0"
+      sources."is-arrayish-0.3.2"
       sources."is-buffer-1.1.6"
       sources."is-ci-2.0.0"
       sources."is-data-descriptor-1.0.0"
@@ -80964,124 +81572,122 @@ in
       })
       sources."is-obj-2.0.0"
       sources."is-path-inside-3.0.3"
+      sources."is-stream-2.0.1"
       sources."is-typedarray-1.0.0"
       sources."is-unicode-supported-0.1.0"
       sources."is-yarn-global-0.3.0"
       sources."isarray-1.0.0"
-      sources."isstream-0.1.2"
       sources."json-buffer-3.0.0"
       sources."json-schema-traverse-1.0.0"
-      sources."json2csv-5.0.6"
+      sources."json2csv-5.0.7"
       sources."jsonparse-1.3.1"
       sources."jstat-1.9.5"
       sources."keyv-3.1.0"
       sources."kind-of-6.0.3"
+      sources."kuler-2.0.0"
       sources."latest-version-5.1.0"
-      (sources."lightning-4.14.3" // {
+      (sources."lightning-5.10.1" // {
         dependencies = [
-          sources."@grpc/grpc-js-1.4.4"
-          sources."@grpc/proto-loader-0.6.6"
-          sources."@types/node-16.11.7"
-          sources."async-3.2.2"
-          sources."asyncjs-util-1.2.7"
-          sources."bech32-1.1.4"
-          sources."bitcoinjs-lib-6.0.0"
-          sources."body-parser-1.19.0"
-          sources."bolt07-1.7.4"
-          sources."bolt09-0.2.0"
-          sources."bytes-3.1.0"
-          sources."http-errors-1.7.2"
-          sources."inherits-2.0.3"
-          (sources."invoices-2.0.1" // {
+          sources."@grpc/grpc-js-1.6.2"
+          sources."@types/node-17.0.23"
+          sources."bolt09-0.2.3"
+        ];
+      })
+      (sources."ln-accounting-5.0.6" // {
+        dependencies = [
+          sources."@grpc/grpc-js-1.5.7"
+          sources."@types/node-17.0.21"
+          sources."@types/ws-8.5.2"
+          sources."body-parser-1.19.2"
+          sources."bolt07-1.8.0"
+          sources."bolt09-0.2.1"
+          sources."depd-1.1.2"
+          (sources."goldengate-11.1.0" // {
             dependencies = [
-              (sources."bitcoinjs-lib-5.2.0" // {
-                dependencies = [
-                  sources."bech32-1.1.4"
-                ];
-              })
+              sources."asyncjs-util-1.2.8"
+              sources."ln-service-53.9.3"
             ];
           })
-          (sources."psbt-1.1.10" // {
+          sources."http-errors-1.8.1"
+          sources."invoices-2.0.4"
+          (sources."lightning-5.8.2" // {
             dependencies = [
-              sources."bitcoinjs-lib-5.2.0"
+              sources."asyncjs-util-1.2.8"
+              sources."bolt09-0.2.2"
+              sources."tiny-secp256k1-2.2.1"
+              sources."uint8array-tools-0.0.7"
             ];
           })
-          sources."qs-6.7.0"
-          sources."raw-body-2.4.0"
-          sources."setprototypeof-1.1.1"
-          (sources."tiny-secp256k1-1.1.6" // {
+          (sources."ln-service-53.10.0" // {
             dependencies = [
-              sources."bn.js-4.12.0"
+              sources."@grpc/grpc-js-1.6.1"
+              sources."@types/node-17.0.23"
+              sources."@types/ws-8.5.3"
+              sources."asyncjs-util-1.2.8"
+              sources."bolt09-0.2.2"
+              sources."lightning-5.9.0"
+              sources."tiny-secp256k1-2.2.1"
+              sources."type-fest-2.12.2"
+              sources."uint8array-tools-0.0.7"
             ];
           })
-          sources."toidentifier-1.0.0"
+          sources."on-finished-2.3.0"
+          (sources."p2tr-1.3.0" // {
+            dependencies = [
+              sources."tiny-secp256k1-2.2.1"
+              sources."uint8array-tools-0.0.7"
+            ];
+          })
+          sources."psbt-2.0.0"
+          sources."qs-6.9.7"
+          sources."raw-body-2.4.3"
+          sources."statuses-1.5.0"
+          sources."tiny-secp256k1-2.2.0"
+          sources."type-fest-2.12.0"
         ];
       })
-      (sources."ln-accounting-5.0.5" // {
+      (sources."ln-service-53.13.0" // {
         dependencies = [
-          sources."@grpc/grpc-js-1.4.4"
-          sources."@grpc/proto-loader-0.6.6"
-          sources."async-3.2.2"
-          sources."asyncjs-util-1.2.7"
-          sources."bech32-1.1.4"
-          sources."bitcoinjs-lib-6.0.0"
-          sources."bn.js-4.12.0"
-          sources."body-parser-1.19.0"
-          (sources."bolt07-1.7.4" // {
+          sources."@grpc/grpc-js-1.6.6"
+          sources."bolt09-0.2.3"
+          sources."invoices-2.0.6"
+          sources."lightning-5.12.0"
+        ];
+      })
+      (sources."ln-sync-3.12.0" // {
+        dependencies = [
+          sources."@grpc/grpc-js-1.6.1"
+          sources."@types/node-17.0.23"
+          sources."body-parser-1.19.2"
+          sources."bolt09-0.2.1"
+          sources."depd-1.1.2"
+          sources."http-errors-1.8.1"
+          (sources."invoices-2.0.4" // {
             dependencies = [
-              sources."bn.js-5.2.0"
+              sources."bolt07-1.8.0"
+              sources."tiny-secp256k1-2.2.0"
             ];
           })
-          sources."bolt09-0.2.0"
-          sources."bytes-3.1.0"
-          sources."ecpair-1.0.1"
-          sources."goldengate-10.4.2"
-          sources."http-errors-1.7.2"
-          sources."inherits-2.0.3"
-          (sources."invoices-2.0.2" // {
+          (sources."lightning-5.9.0" // {
             dependencies = [
-              sources."bech32-2.0.0"
-              sources."bn.js-5.2.0"
+              sources."asyncjs-util-1.2.8"
+              sources."bolt07-1.8.0"
+              sources."bolt09-0.2.2"
+              sources."psbt-2.0.0"
             ];
           })
-          sources."ln-service-52.16.0"
-          (sources."psbt-1.1.10" // {
+          (sources."ln-service-53.10.0" // {
             dependencies = [
-              sources."bitcoinjs-lib-5.2.0"
-              sources."bn.js-5.2.0"
+              sources."bolt07-1.8.0"
             ];
           })
-          sources."qs-6.7.0"
-          sources."raw-body-2.4.0"
-          sources."setprototypeof-1.1.1"
-          sources."tiny-secp256k1-1.1.6"
-          sources."toidentifier-1.0.0"
-        ];
-      })
-      (sources."ln-service-53.9.3" // {
-        dependencies = [
-          sources."@types/node-17.0.21"
-          sources."@types/request-2.48.8"
-          sources."@types/ws-8.5.2"
-          sources."bolt09-0.2.2"
-          sources."content-disposition-0.5.4"
-          sources."cookie-0.4.2"
-          sources."express-4.17.3"
-          sources."lightning-5.8.2"
-          sources."ms-2.1.3"
-          sources."safe-buffer-5.2.1"
-          sources."send-0.17.2"
-          sources."serve-static-1.14.2"
-          sources."type-fest-2.12.0"
-          sources."ws-8.5.0"
-        ];
-      })
-      sources."ln-sync-3.11.0"
-      (sources."ln-telegram-3.20.0" // {
-        dependencies = [
-          sources."paid-services-3.14.2"
+          sources."on-finished-2.3.0"
+          sources."qs-6.9.7"
+          sources."raw-body-2.4.3"
+          sources."statuses-1.5.0"
         ];
       })
+      sources."ln-telegram-3.21.2"
       sources."lodash-4.17.21"
       sources."lodash.camelcase-4.3.0"
       sources."lodash.difference-4.5.0"
@@ -81095,13 +81701,20 @@ in
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
           sources."supports-color-7.2.0"
         ];
       })
+      (sources."logform-2.4.0" // {
+        dependencies = [
+          sources."ms-2.1.3"
+        ];
+      })
       sources."long-4.0.0"
       sources."lowercase-keys-1.0.1"
       sources."lru-cache-6.0.0"
-      sources."luxon-2.3.1"
+      sources."luxon-2.3.2"
       sources."macaroon-3.0.4"
       (sources."make-dir-3.1.0" // {
         dependencies = [
@@ -81111,7 +81724,6 @@ in
       sources."md5.js-1.3.5"
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
-      sources."merkle-lib-2.0.10"
       sources."methods-1.1.2"
       sources."micromist-1.1.0"
       sources."mime-1.6.0"
@@ -81119,37 +81731,36 @@ in
       sources."mime-types-2.1.35"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
-      sources."minimalistic-assert-1.0.1"
-      sources."minimalistic-crypto-utils-1.0.1"
       sources."minimist-1.2.6"
       sources."mkdirp-0.5.6"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       (sources."morgan-1.10.0" // {
         dependencies = [
-          sources."depd-2.0.0"
+          sources."on-finished-2.3.0"
         ];
       })
       sources."ms-2.0.0"
       sources."mute-stream-0.0.6"
-      sources."nan-2.15.0"
       sources."negotiator-0.6.3"
-      sources."node-addon-api-2.0.2"
       sources."node-fetch-2.6.7"
-      sources."node-gyp-build-4.3.0"
       sources."nofilter-3.1.0"
       sources."normalize-url-4.5.1"
       sources."npmlog-2.0.4"
       sources."number-is-nan-1.0.1"
       sources."object-assign-4.1.1"
-      sources."on-finished-2.3.0"
+      sources."object-inspect-1.12.0"
+      sources."on-finished-2.4.1"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
+      sources."one-time-1.0.0"
       sources."onetime-1.1.0"
       (sources."ora-5.4.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.2"
           sources."cli-cursor-3.1.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
           sources."onetime-5.1.2"
           sources."restore-cursor-3.1.0"
           sources."supports-color-7.2.0"
@@ -81158,58 +81769,47 @@ in
       sources."os-shim-0.1.3"
       sources."os-tmpdir-1.0.2"
       sources."p-cancelable-1.1.0"
-      sources."p2tr-1.3.0"
+      sources."p2tr-1.3.1"
       (sources."package-json-6.5.0" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."paid-services-3.14.4"
+      (sources."paid-services-3.15.1" // {
+        dependencies = [
+          sources."bolt09-0.2.3"
+          sources."invoices-2.0.6"
+          (sources."ln-service-53.11.0" // {
+            dependencies = [
+              sources."bolt09-0.2.2"
+              sources."invoices-2.0.5"
+            ];
+          })
+        ];
+      })
       sources."parseurl-1.3.3"
       sources."path-to-regexp-0.1.7"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
       sources."prepend-http-2.0.0"
-      (sources."probing-2.0.3" // {
-        dependencies = [
-          sources."@grpc/grpc-js-1.5.4"
-          sources."@types/node-17.0.15"
-          sources."@types/request-2.48.8"
-          sources."@types/ws-8.2.2"
-          sources."body-parser-1.19.1"
-          sources."bytes-3.1.1"
-          sources."content-disposition-0.5.4"
-          sources."cookie-0.4.1"
-          sources."express-4.17.2"
-          sources."invoices-2.0.3"
-          sources."lightning-5.6.2"
-          sources."ln-service-53.7.3"
-          sources."ms-2.1.3"
-          sources."qs-6.9.6"
-          sources."raw-body-2.4.2"
-          sources."safe-buffer-5.2.1"
-          sources."secp256k1-4.0.3"
-          sources."send-0.17.2"
-          sources."serve-static-1.14.2"
-          sources."tiny-secp256k1-2.2.0"
-          sources."type-fest-2.11.1"
-          sources."uint8array-tools-0.0.6"
-          sources."ws-8.4.2"
+      (sources."probing-2.0.5" // {
+        dependencies = [
+          sources."ln-service-53.11.0"
         ];
       })
       sources."process-nextick-args-2.0.1"
       sources."protobufjs-6.11.2"
       sources."proxy-addr-2.0.7"
-      sources."psbt-2.0.0"
+      sources."psbt-2.0.1"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."pupa-2.1.1"
       sources."pushdata-bitcoin-1.0.1"
       sources."qrcode-terminal-0.12.0"
-      sources."qs-6.9.7"
+      sources."qs-6.10.3"
       sources."randombytes-2.1.0"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.3"
+      sources."raw-body-2.5.1"
       (sources."rc-1.2.8" // {
         dependencies = [
           sources."ini-1.3.8"
@@ -81227,36 +81827,42 @@ in
       sources."rx-4.1.0"
       sources."rxjs-7.5.5"
       sources."safe-buffer-5.1.2"
+      sources."safe-stable-stringify-2.3.1"
       sources."safer-buffer-2.1.2"
       sources."sanitize-filename-1.6.3"
-      sources."secp256k1-4.0.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      (sources."send-0.17.1" // {
+      (sources."send-0.17.2" // {
         dependencies = [
-          sources."http-errors-1.7.3"
-          sources."ms-2.1.1"
-          sources."setprototypeof-1.1.1"
-          sources."toidentifier-1.0.0"
+          sources."depd-1.1.2"
+          sources."destroy-1.0.4"
+          sources."http-errors-1.8.1"
+          sources."ms-2.1.3"
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
         ];
       })
-      sources."serve-static-1.14.1"
+      sources."serve-static-1.14.2"
       sources."setprototypeof-1.2.0"
       sources."sha.js-2.4.11"
+      sources."side-channel-1.0.4"
       sources."signal-exit-3.0.7"
+      sources."simple-swizzle-0.2.2"
       sources."sjcl-1.0.8"
       (sources."slice-ansi-4.0.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
         ];
       })
       sources."smart-buffer-4.2.0"
       sources."socks-2.6.2"
-      (sources."socks-proxy-agent-6.2.0-beta.0" // {
+      (sources."socks-proxy-agent-6.2.0" // {
         dependencies = [
           sources."debug-4.3.4"
           sources."ms-2.1.2"
@@ -81264,7 +81870,7 @@ in
       })
       sources."spawn-sync-1.0.15"
       sources."stack-trace-0.0.10"
-      sources."statuses-1.5.0"
+      sources."statuses-2.0.1"
       sources."string-width-4.2.3"
       sources."string_decoder-1.1.1"
       sources."strip-ansi-6.0.1"
@@ -81280,29 +81886,37 @@ in
           sources."strip-ansi-3.0.1"
         ];
       })
+      sources."text-hex-1.0.0"
       sources."through-2.3.8"
       sources."tiny-emitter-2.1.0"
-      sources."tiny-secp256k1-2.2.1"
+      (sources."tiny-secp256k1-2.2.1" // {
+        dependencies = [
+          sources."uint8array-tools-0.0.7"
+        ];
+      })
       sources."tmp-0.0.29"
       sources."to-readable-stream-1.0.0"
       sources."toidentifier-1.0.1"
       sources."tr46-0.0.3"
+      sources."triple-beam-1.3.0"
       sources."truncate-utf8-bytes-1.0.2"
       sources."tslib-2.3.1"
       sources."tweetnacl-1.0.3"
       sources."tweetnacl-util-0.15.1"
-      sources."type-fest-0.21.3"
+      sources."type-fest-2.12.2"
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
       sources."typeforce-1.18.0"
-      sources."uint8array-tools-0.0.7"
+      sources."uint8array-tools-0.0.6"
       sources."unique-string-2.0.0"
       sources."unpipe-1.0.0"
       (sources."update-notifier-5.1.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
           sources."import-lazy-2.1.0"
           sources."supports-color-7.2.0"
         ];
@@ -81320,20 +81934,26 @@ in
       sources."widest-line-3.1.0"
       sources."wif-2.0.6"
       sources."window-size-1.1.1"
-      (sources."winston-2.4.5" // {
+      (sources."winston-3.7.2" // {
         dependencies = [
-          sources."async-1.0.0"
-          sources."colors-1.0.3"
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      (sources."winston-transport-4.5.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
         ];
       })
       (sources."wrap-ansi-7.0.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
         ];
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
-      sources."ws-8.2.3"
+      sources."ws-8.5.0"
       sources."xdg-basedir-4.0.0"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
@@ -81353,13 +81973,13 @@ in
   bash-language-server = nodeEnv.buildNodePackage {
     name = "bash-language-server";
     packageName = "bash-language-server";
-    version = "2.0.0";
+    version = "2.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/bash-language-server/-/bash-language-server-2.0.0.tgz";
-      sha512 = "yp6KF2GCVgj64kU2qknE+CFydb8IHc+2ZTRFc6UrN8FugOAHEfO7PzkxfJ/SDWbqa7wIJyjdEFtbTOy/qbHtbQ==";
+      url = "https://registry.npmjs.org/bash-language-server/-/bash-language-server-2.1.0.tgz";
+      sha512 = "cmW/ba3Di7Quq9TkfwDrinIlwVZ+W8aT4ctzNZMFK2LgQliKBxW6qZuUhjrvl/Ll863HWjzPo76jGEG5yisonw==";
     };
     dependencies = [
-      sources."abab-2.0.5"
+      sources."abab-2.0.6"
       sources."acorn-5.7.4"
       (sources."acorn-globals-4.3.4" // {
         dependencies = [
@@ -81461,7 +82081,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
       sources."uri-js-4.4.1"
-      sources."urijs-1.19.10"
+      sources."urijs-1.19.11"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
       sources."vscode-jsonrpc-6.0.0"
@@ -81529,12 +82149,12 @@ in
       sources."delegates-1.0.0"
       sources."detect-libc-1.0.3"
       sources."doctoc-2.1.0"
-      (sources."dom-serializer-1.3.2" // {
+      (sources."dom-serializer-1.4.1" // {
         dependencies = [
           sources."domhandler-4.3.1"
         ];
       })
-      sources."domelementtype-2.2.0"
+      sources."domelementtype-2.3.0"
       sources."domhandler-3.3.0"
       (sources."domutils-2.8.0" // {
         dependencies = [
@@ -81702,7 +82322,7 @@ in
       sources."find-up-1.1.2"
       (sources."fs-extra-0.26.7" // {
         dependencies = [
-          sources."graceful-fs-4.2.9"
+          sources."graceful-fs-4.2.10"
         ];
       })
       sources."fs.realpath-1.0.0"
@@ -81717,23 +82337,23 @@ in
       sources."inherits-2.0.4"
       sources."intersect-1.0.1"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-finite-1.1.0"
       sources."is-plain-obj-1.1.0"
       sources."is-utf8-0.2.1"
       (sources."jsonfile-2.4.0" // {
         dependencies = [
-          sources."graceful-fs-4.2.9"
+          sources."graceful-fs-4.2.10"
         ];
       })
       (sources."klaw-1.3.1" // {
         dependencies = [
-          sources."graceful-fs-4.2.9"
+          sources."graceful-fs-4.2.10"
         ];
       })
       (sources."load-json-file-1.1.0" // {
         dependencies = [
-          sources."graceful-fs-4.2.9"
+          sources."graceful-fs-4.2.10"
         ];
       })
       sources."lodash-4.2.1"
@@ -81756,7 +82376,7 @@ in
       sources."path-parse-1.0.7"
       (sources."path-type-1.1.0" // {
         dependencies = [
-          sources."graceful-fs-4.2.9"
+          sources."graceful-fs-4.2.10"
         ];
       })
       sources."pify-2.3.0"
@@ -81870,7 +82490,7 @@ in
       sources."create-hmac-1.1.7"
       sources."crypto-browserify-3.12.0"
       sources."dash-ast-1.0.0"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."defined-1.0.0"
       sources."deps-sort-2.0.1"
       sources."des.js-1.0.1"
@@ -81887,7 +82507,7 @@ in
           sources."bn.js-4.12.0"
         ];
       })
-      sources."es-abstract-1.19.1"
+      sources."es-abstract-1.19.5"
       sources."es-to-primitive-1.2.1"
       sources."events-3.3.0"
       sources."evp_bytestokey-1.0.3"
@@ -81900,7 +82520,8 @@ in
       sources."get-symbol-description-1.0.0"
       sources."glob-7.2.0"
       sources."has-1.0.3"
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       (sources."hash-base-3.1.0" // {
@@ -81923,13 +82544,13 @@ in
       sources."is-boolean-object-1.1.2"
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.4"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-date-object-1.0.5"
       sources."is-generator-function-1.0.10"
       sources."is-negative-zero-2.0.2"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-regex-1.1.4"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.8"
@@ -82056,7 +82677,7 @@ in
       sources."@types/component-emitter-1.2.11"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.12"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."accepts-1.3.8"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
@@ -82129,7 +82750,7 @@ in
       sources."fsevents-2.3.2"
       sources."get-caller-file-2.0.5"
       sources."glob-parent-5.1.2"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-ansi-2.0.0"
       sources."has-cors-1.1.0"
       (sources."http-errors-2.0.0" // {
@@ -82253,7 +82874,7 @@ in
       sources."ws-8.2.3"
       sources."xmlhttprequest-ssl-2.0.0"
       sources."y18n-5.0.8"
-      (sources."yargs-17.4.0" // {
+      (sources."yargs-17.4.1" // {
         dependencies = [
           sources."yargs-parser-21.0.1"
         ];
@@ -82282,8 +82903,8 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      sources."@babel/highlight-7.16.10"
-      sources."@babel/parser-7.17.8"
+      sources."@babel/highlight-7.17.9"
+      sources."@babel/parser-7.17.9"
       sources."@babel/types-7.17.0"
       sources."@kwsites/file-exists-1.1.1"
       sources."@kwsites/promise-deferred-1.1.1"
@@ -82327,7 +82948,7 @@ in
       })
       sources."bluebird-3.7.2"
       sources."bn.js-4.12.0"
-      (sources."body-parser-1.19.2" // {
+      (sources."body-parser-1.20.0" // {
         dependencies = [
           sources."debug-2.6.9"
         ];
@@ -82380,8 +83001,10 @@ in
       (sources."csurf-1.11.0" // {
         dependencies = [
           sources."cookie-0.4.0"
+          sources."depd-1.1.2"
           sources."http-errors-1.7.3"
           sources."setprototypeof-1.1.1"
+          sources."statuses-1.5.0"
           sources."toidentifier-1.0.0"
         ];
       })
@@ -82405,8 +83028,8 @@ in
       sources."decimal.js-10.3.1"
       sources."delayed-stream-1.0.0"
       sources."denque-1.5.1"
-      sources."depd-1.1.2"
-      sources."destroy-1.0.4"
+      sources."depd-2.0.0"
+      sources."destroy-1.2.0"
       sources."dijkstrajs-1.0.2"
       sources."doctypes-1.1.0"
       sources."dotenv-10.0.0"
@@ -82426,16 +83049,22 @@ in
       sources."event-loop-stats-1.4.1"
       (sources."express-4.17.3" // {
         dependencies = [
+          sources."body-parser-1.19.2"
           sources."cookie-0.4.2"
           sources."debug-2.6.9"
+          sources."depd-1.1.2"
+          sources."http-errors-1.8.1"
+          sources."on-finished-2.3.0"
+          sources."qs-6.9.7"
+          sources."raw-body-2.4.3"
           sources."safe-buffer-5.2.1"
+          sources."statuses-1.5.0"
         ];
       })
       sources."express-async-handler-1.2.0"
       (sources."express-session-1.17.2" // {
         dependencies = [
           sources."debug-2.6.9"
-          sources."depd-2.0.0"
           sources."safe-buffer-5.2.1"
         ];
       })
@@ -82447,6 +83076,8 @@ in
       (sources."finalhandler-1.1.2" // {
         dependencies = [
           sources."debug-2.6.9"
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
         ];
       })
       sources."find-up-4.1.0"
@@ -82475,7 +83106,7 @@ in
       sources."hash.js-1.1.7"
       sources."hmac-drbg-1.0.1"
       sources."hosted-git-info-4.1.0"
-      sources."http-errors-1.8.1"
+      sources."http-errors-2.0.0"
       sources."http-signature-1.2.0"
       sources."iconv-lite-0.4.24"
       sources."indent-string-4.0.0"
@@ -82484,7 +83115,7 @@ in
       sources."ipaddr.js-1.9.1"
       sources."is-arrayish-0.2.1"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-expression-4.0.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-plain-obj-1.1.0"
@@ -82539,12 +83170,12 @@ in
       sources."minimist-1.2.6"
       sources."minimist-options-4.1.0"
       sources."mkdirp-0.5.6"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."moment-duration-format-2.3.2"
       (sources."morgan-1.10.0" // {
         dependencies = [
           sources."debug-2.6.9"
-          sources."depd-2.0.0"
+          sources."on-finished-2.3.0"
         ];
       })
       sources."ms-2.0.0"
@@ -82555,7 +83186,8 @@ in
       sources."normalize-package-data-3.0.3"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
-      sources."on-finished-2.3.0"
+      sources."object-inspect-1.12.0"
+      sources."on-finished-2.4.1"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       sources."p-limit-2.3.0"
@@ -82592,12 +83224,12 @@ in
       sources."punycode-2.1.1"
       sources."pushdata-bitcoin-1.0.1"
       sources."qrcode-1.5.0"
-      sources."qs-6.9.7"
+      sources."qs-6.10.3"
       sources."quick-lru-4.0.1"
       sources."random-bytes-1.0.0"
       sources."randombytes-2.1.0"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.3"
+      sources."raw-body-2.5.1"
       (sources."read-pkg-5.2.0" // {
         dependencies = [
           sources."hosted-git-info-2.8.9"
@@ -82631,7 +83263,7 @@ in
       sources."safe-buffer-5.1.2"
       sources."safe-json-stringify-1.2.0"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       (sources."send-0.17.2" // {
         dependencies = [
           (sources."debug-2.6.9" // {
@@ -82639,7 +83271,12 @@ in
               sources."ms-2.0.0"
             ];
           })
+          sources."depd-1.1.2"
+          sources."destroy-1.0.4"
+          sources."http-errors-1.8.1"
           sources."ms-2.1.3"
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
         ];
       })
       (sources."serve-favicon-2.5.0" // {
@@ -82652,6 +83289,7 @@ in
       sources."set-blocking-2.0.0"
       sources."setprototypeof-1.2.0"
       sources."sha.js-2.4.11"
+      sources."side-channel-1.0.4"
       sources."simple-git-2.48.0"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
@@ -82660,7 +83298,7 @@ in
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.17.0"
       sources."standard-error-1.1.0"
-      sources."statuses-1.5.0"
+      sources."statuses-2.0.1"
       sources."string-width-4.2.3"
       (sources."string_decoder-1.3.0" // {
         dependencies = [
@@ -82745,7 +83383,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."addr-to-ip-port-1.5.4"
       sources."airplay-js-0.2.16"
       sources."ajv-6.12.6"
@@ -82807,7 +83445,7 @@ in
       sources."co-3.1.0"
       sources."codepage-1.4.0"
       sources."combined-stream-1.0.8"
-      sources."commander-9.1.0"
+      sources."commander-9.2.0"
       sources."compact2string-1.4.1"
       sources."concat-map-0.0.1"
       (sources."concat-stream-2.0.0" // {
@@ -82869,7 +83507,7 @@ in
       sources."getpass-0.1.7"
       sources."glob-7.2.0"
       sources."got-1.2.2"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
@@ -82888,7 +83526,7 @@ in
       sources."ip-set-1.0.2"
       sources."ipaddr.js-2.0.1"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-finite-1.1.0"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
@@ -83360,7 +83998,7 @@ in
       sources."global-dirs-0.1.1"
       sources."globby-8.0.2"
       sources."got-6.7.1"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
       (sources."has-ansi-2.0.0" // {
         dependencies = [
@@ -83395,7 +84033,7 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-buffer-1.1.6"
       sources."is-ci-1.2.1"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
       sources."is-extendable-0.1.1"
@@ -83752,19 +84390,19 @@ in
   cdk8s-cli = nodeEnv.buildNodePackage {
     name = "cdk8s-cli";
     packageName = "cdk8s-cli";
-    version = "1.0.134";
+    version = "1.0.153";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-1.0.134.tgz";
-      sha512 = "piVuRH84D5xsGeC7uOOGQNBR7JrhrDT+6g5GEM4EOZf1XjxeuH15YfRsI6+ukexwq85kseEoCWltcOvGZefYQQ==";
+      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-1.0.153.tgz";
+      sha512 = "7eZ5AhQG3iVP5FLPvX5BI3cJdlohtiBGg0L52gFQFvWzYQfEtkNvvGP8tPw0lZMUw0ed3UxrtJbgJ+fGzGVGJQ==";
     };
     dependencies = [
-      sources."@jsii/check-node-1.55.1"
-      sources."@jsii/spec-1.55.1"
+      sources."@jsii/check-node-1.57.0"
+      sources."@jsii/spec-1.57.0"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@types/node-12.20.47"
-      sources."@xmldom/xmldom-0.8.1"
+      sources."@types/node-12.20.48"
+      sources."@xmldom/xmldom-0.8.2"
       sources."ajv-8.11.0"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
@@ -83774,12 +84412,12 @@ in
       sources."call-bind-1.0.2"
       sources."camelcase-6.3.0"
       sources."case-1.6.3"
-      sources."cdk8s-1.5.52"
-      sources."cdk8s-plus-22-1.0.0-beta.158"
+      sources."cdk8s-1.5.74"
+      sources."cdk8s-plus-22-1.0.0-beta.198"
       sources."chalk-4.1.2"
       sources."cliui-7.0.4"
       sources."clone-2.1.2"
-      (sources."codemaker-1.55.1" // {
+      (sources."codemaker-1.57.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
         ];
@@ -83788,18 +84426,18 @@ in
       sources."color-name-1.1.4"
       sources."colors-1.4.0"
       sources."commonmark-0.30.0"
-      sources."constructs-3.3.250"
-      sources."date-format-4.0.6"
+      sources."constructs-3.3.273"
+      sources."date-format-4.0.7"
       sources."debug-4.3.4"
       sources."decamelize-5.0.1"
       sources."deep-equal-2.0.5"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."detect-indent-5.0.0"
       sources."detect-newline-2.1.0"
       sources."dot-case-3.0.4"
       sources."emoji-regex-8.0.0"
       sources."entities-2.0.3"
-      sources."es-abstract-1.19.1"
+      sources."es-abstract-1.19.5"
       sources."es-get-iterator-1.1.2"
       sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.1"
@@ -83818,14 +84456,16 @@ in
         ];
       })
       sources."function-bind-1.1.1"
+      sources."functions-have-names-1.2.3"
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.1"
       sources."get-symbol-description-1.0.0"
       sources."glob-parent-5.1.2"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
       sources."has-flag-4.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."internal-slot-1.0.3"
@@ -83840,10 +84480,10 @@ in
       sources."is-map-2.0.2"
       sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-regex-1.1.4"
       sources."is-set-2.0.2"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.8"
@@ -83851,42 +84491,42 @@ in
       sources."is-weakref-1.0.2"
       sources."is-weakset-2.0.2"
       sources."isarray-2.0.5"
-      (sources."jsii-1.55.1" // {
+      (sources."jsii-1.57.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-pacmak-1.55.1" // {
+      (sources."jsii-pacmak-1.57.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-reflect-1.55.1" // {
+      (sources."jsii-reflect-1.57.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-rosetta-1.55.1" // {
+      (sources."jsii-rosetta-1.57.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-srcmak-0.1.512" // {
+      (sources."jsii-srcmak-0.1.536" // {
         dependencies = [
           sources."fs-extra-9.1.0"
         ];
       })
       sources."json-schema-0.4.0"
       sources."json-schema-traverse-1.0.0"
-      sources."json2jsii-0.2.172"
+      sources."json2jsii-0.2.197"
       sources."jsonfile-6.1.0"
       sources."jsonschema-1.4.0"
       sources."locate-path-5.0.0"
-      sources."log4js-6.4.4"
+      sources."log4js-6.4.5"
       sources."lower-case-2.0.2"
       sources."lru-cache-6.0.0"
       sources."mdurl-1.0.1"
@@ -83900,7 +84540,7 @@ in
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
-      sources."oo-ascii-tree-1.55.1"
+      sources."oo-ascii-tree-1.57.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
@@ -83908,14 +84548,14 @@ in
       sources."picomatch-2.3.1"
       sources."punycode-2.1.1"
       sources."queue-microtask-1.2.3"
-      sources."regexp.prototype.flags-1.4.1"
+      sources."regexp.prototype.flags-1.4.3"
       sources."require-directory-2.1.1"
       sources."require-from-string-2.0.2"
       sources."require-main-filename-2.0.0"
       sources."reusify-1.0.4"
       sources."rfdc-1.3.0"
       sources."run-parallel-1.2.0"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       (sources."semver-intersect-1.4.0" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -83925,11 +84565,11 @@ in
       sources."side-channel-1.0.4"
       sources."snake-case-3.0.4"
       sources."sort-json-2.0.1"
-      sources."spdx-license-list-6.4.0"
-      sources."sscaff-1.2.239"
-      (sources."streamroller-3.0.6" // {
+      sources."spdx-license-list-6.5.0"
+      sources."sscaff-1.2.263"
+      (sources."streamroller-3.0.7" // {
         dependencies = [
-          sources."fs-extra-10.0.1"
+          sources."fs-extra-10.1.0"
         ];
       })
       sources."string-width-4.2.3"
@@ -83948,7 +84588,7 @@ in
       sources."which-collection-1.0.1"
       sources."which-module-2.0.0"
       sources."which-typed-array-1.1.7"
-      sources."workerpool-6.2.0"
+      sources."workerpool-6.2.1"
       sources."wrap-ansi-7.0.0"
       sources."xmlbuilder-15.1.1"
       sources."y18n-5.0.8"
@@ -83978,23 +84618,23 @@ in
   cdktf-cli = nodeEnv.buildNodePackage {
     name = "cdktf-cli";
     packageName = "cdktf-cli";
-    version = "0.9.4";
+    version = "0.10.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.9.4.tgz";
-      sha512 = "C7nL+AVA2ltmRhFdAb6yinXzjumRIAyaNi1p5QyZpythrg6+GThxZS/We+s8GIA000uIrPMvesuHCE+dGxkssw==";
+      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.10.2.tgz";
+      sha512 = "NBUZ8jX/9NaO6xVv2STHwsk3JnFcrC6/OZK7sYz+4qkdzQ5zZ2QLkZcbwLeBpeUUIdvYqj/rR9YIC8a29H0sVw==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.7"
-      sources."@babel/generator-7.17.7"
+      sources."@babel/generator-7.17.9"
       sources."@babel/helper-validator-identifier-7.16.7"
-      sources."@babel/highlight-7.16.10"
-      sources."@babel/parser-7.17.8"
+      sources."@babel/highlight-7.17.9"
+      sources."@babel/parser-7.17.9"
       sources."@babel/template-7.16.7"
       sources."@babel/types-7.17.0"
-      sources."@cdktf/hcl2cdk-0.9.4"
-      sources."@cdktf/hcl2json-0.9.4"
-      sources."@cdktf/provider-generator-0.9.4"
-      (sources."@jsii/check-node-1.55.1" // {
+      sources."@cdktf/hcl2cdk-0.10.2"
+      sources."@cdktf/hcl2json-0.10.2"
+      sources."@cdktf/provider-generator-0.10.2"
+      (sources."@jsii/check-node-1.57.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.2"
@@ -84004,15 +84644,18 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      sources."@jsii/spec-1.55.1"
+      sources."@jsii/spec-1.57.0"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/node-fetch-2.6.1"
-      sources."@xmldom/xmldom-0.8.1"
+      sources."@types/yargs-17.0.10"
+      sources."@types/yargs-parser-21.0.0"
+      sources."@xmldom/xmldom-0.8.2"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
+      sources."arr-rotate-1.0.0"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
       sources."available-typed-arrays-1.0.5"
@@ -84022,7 +84665,7 @@ in
       sources."call-bind-1.0.2"
       sources."camelcase-6.3.0"
       sources."case-1.6.3"
-      sources."cdktf-0.9.4"
+      sources."cdktf-0.10.2"
       sources."chalk-2.4.2"
       sources."cliui-6.0.0"
       sources."clone-2.1.2"
@@ -84036,18 +84679,18 @@ in
       sources."combined-stream-1.0.8"
       sources."commonmark-0.30.0"
       sources."concat-map-0.0.1"
-      sources."constructs-10.0.97"
-      sources."date-format-4.0.6"
+      sources."constructs-10.0.120"
+      sources."date-format-4.0.7"
       sources."debug-4.3.4"
       sources."decamelize-1.2.0"
       sources."deep-equal-2.0.5"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."delayed-stream-1.0.0"
       sources."detect-indent-5.0.0"
       sources."detect-newline-2.1.0"
       sources."emoji-regex-8.0.0"
       sources."entities-2.0.3"
-      sources."es-abstract-1.19.1"
+      sources."es-abstract-1.19.5"
       sources."es-get-iterator-1.1.2"
       sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.1"
@@ -84055,6 +84698,7 @@ in
       sources."events-3.3.0"
       sources."fast-glob-3.2.11"
       sources."fastq-1.13.0"
+      sources."figures-3.2.0"
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
       sources."flatted-3.2.5"
@@ -84063,21 +84707,28 @@ in
       sources."fs-extra-8.1.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
+      sources."functions-have-names-1.2.3"
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.1"
       sources."get-symbol-description-1.0.0"
-      sources."glob-7.2.0"
+      (sources."glob-7.2.0" // {
+        dependencies = [
+          sources."minimatch-3.1.2"
+        ];
+      })
       sources."glob-parent-5.1.2"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."graphology-0.24.1"
       sources."graphology-types-0.21.2"
       sources."has-1.0.3"
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
       sources."has-flag-3.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
+      sources."ink-select-input-4.2.1"
       sources."internal-slot-1.0.3"
       sources."is-arguments-1.1.1"
       sources."is-bigint-1.0.4"
@@ -84090,10 +84741,10 @@ in
       sources."is-map-2.0.2"
       sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-regex-1.1.4"
       sources."is-set-2.0.2"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.8"
@@ -84104,7 +84755,7 @@ in
       sources."isarray-2.0.5"
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
-      (sources."jsii-1.55.1" // {
+      (sources."jsii-1.57.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.2"
@@ -84122,11 +84773,11 @@ in
           sources."yargs-parser-20.2.9"
         ];
       })
-      (sources."jsii-pacmak-1.55.1" // {
+      (sources."jsii-pacmak-1.57.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."cliui-7.0.4"
-          sources."codemaker-1.55.1"
+          sources."codemaker-1.57.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."decamelize-5.0.1"
@@ -84140,7 +84791,7 @@ in
           sources."yargs-parser-20.2.9"
         ];
       })
-      (sources."jsii-reflect-1.55.1" // {
+      (sources."jsii-reflect-1.57.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.2"
@@ -84158,7 +84809,7 @@ in
           sources."yargs-parser-20.2.9"
         ];
       })
-      (sources."jsii-rosetta-1.55.1" // {
+      (sources."jsii-rosetta-1.57.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."cliui-7.0.4"
@@ -84173,7 +84824,7 @@ in
           sources."yargs-parser-20.2.9"
         ];
       })
-      (sources."jsii-srcmak-0.1.512" // {
+      (sources."jsii-srcmak-0.1.536" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
@@ -84184,42 +84835,49 @@ in
       sources."jsonfile-4.0.0"
       sources."jsonschema-1.4.0"
       sources."locate-path-5.0.0"
-      sources."log4js-6.4.4"
+      sources."lodash.isequal-4.5.0"
+      sources."log4js-6.4.5"
       sources."lru-cache-6.0.0"
       sources."mdurl-1.0.1"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
-      sources."minimatch-3.1.2"
+      (sources."minimatch-5.0.1" // {
+        dependencies = [
+          sources."brace-expansion-2.0.1"
+        ];
+      })
       sources."minimist-1.2.6"
       sources."ms-2.1.2"
       sources."ncp-2.0.0"
+      sources."node-abort-controller-3.0.1"
       sources."node-fetch-2.6.7"
       sources."object-inspect-1.12.0"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
-      sources."obliterator-2.0.2"
+      sources."obliterator-2.0.3"
       sources."once-1.4.0"
-      sources."oo-ascii-tree-1.55.1"
+      sources."oo-ascii-tree-1.57.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."picomatch-2.3.1"
-      sources."prettier-2.6.1"
+      sources."prettier-2.6.2"
       sources."punycode-2.1.1"
       sources."queue-microtask-1.2.3"
-      sources."regexp.prototype.flags-1.4.1"
+      sources."regexp.prototype.flags-1.4.3"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
       sources."reserved-words-0.1.2"
       sources."reusify-1.0.4"
       sources."rfdc-1.3.0"
       sources."run-parallel-1.2.0"
-      sources."semver-7.3.5"
+      sources."safe-buffer-5.2.1"
+      sources."semver-7.3.7"
       (sources."semver-intersect-1.4.0" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -84229,10 +84887,10 @@ in
       sources."side-channel-1.0.4"
       sources."sort-json-2.0.1"
       sources."source-map-0.5.7"
-      sources."spdx-license-list-6.4.0"
-      (sources."streamroller-3.0.6" // {
+      sources."spdx-license-list-6.5.0"
+      (sources."streamroller-3.0.7" // {
         dependencies = [
-          sources."fs-extra-10.0.1"
+          sources."fs-extra-10.1.0"
           sources."jsonfile-6.1.0"
           sources."universalify-2.0.0"
         ];
@@ -84246,6 +84904,7 @@ in
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."tr46-0.0.3"
+      sources."tunnel-agent-0.6.0"
       sources."typescript-3.9.10"
       sources."unbox-primitive-1.0.1"
       sources."universalify-0.1.2"
@@ -84255,7 +84914,7 @@ in
       sources."which-collection-1.0.1"
       sources."which-module-2.0.0"
       sources."which-typed-array-1.1.7"
-      sources."workerpool-6.2.0"
+      sources."workerpool-6.2.1"
       (sources."wrap-ansi-6.2.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -84267,7 +84926,7 @@ in
       sources."xmlbuilder-15.1.1"
       sources."y18n-4.0.3"
       sources."yallist-4.0.0"
-      (sources."yargs-17.4.0" // {
+      (sources."yargs-17.4.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."cliui-7.0.4"
@@ -84298,10 +84957,10 @@ in
   clean-css-cli = nodeEnv.buildNodePackage {
     name = "clean-css-cli";
     packageName = "clean-css-cli";
-    version = "5.5.2";
+    version = "5.6.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-5.5.2.tgz";
-      sha512 = "4y5FD+ayRz7IWqZRCCMvFxNUhluc1Yv8mNPmrHbrm2NjKsv9uaQZedZKN4L+QMkTqANL1RfOwhpe22neDEgEMA==";
+      url = "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-5.6.0.tgz";
+      sha512 = "68vorNEG808D1QzeerO9AlwQVTuaR8YSK4aqwIsjJq0wDSyPH11ApHY0O+EQrdEGUZcN+d72v+Nn/gpxjAFewQ==";
     };
     dependencies = [
       sources."anymatch-3.1.2"
@@ -84310,7 +84969,7 @@ in
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."chokidar-3.5.3"
-      sources."clean-css-5.2.4"
+      sources."clean-css-5.3.0"
       sources."commander-7.2.0"
       sources."concat-map-0.0.1"
       sources."fill-range-7.0.1"
@@ -84355,7 +85014,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      sources."@babel/highlight-7.16.10"
+      sources."@babel/highlight-7.17.9"
       sources."@types/minimist-1.2.2"
       sources."@types/normalize-package-data-2.4.1"
       sources."ansi-styles-3.2.1"
@@ -84389,7 +85048,7 @@ in
       sources."human-signals-2.1.0"
       sources."indent-string-5.0.0"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-docker-2.2.1"
       sources."is-plain-obj-1.1.0"
       sources."is-stream-2.0.1"
@@ -84419,7 +85078,7 @@ in
       sources."read-pkg-6.0.0"
       sources."read-pkg-up-8.0.0"
       sources."redent-4.0.0"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.7"
@@ -84459,7 +85118,7 @@ in
     dependencies = [
       sources."@colors/colors-1.5.0"
       sources."ansi-styles-3.2.1"
-      sources."async-0.9.2"
+      sources."async-3.2.3"
       sources."chalk-2.4.2"
       sources."cli-spinner-0.2.10"
       sources."clubhouse-lib-0.10.0"
@@ -84484,7 +85143,7 @@ in
       sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
       sources."node-fetch-1.7.3"
-      sources."prompt-1.2.2"
+      sources."prompt-1.3.0"
       sources."punycode-2.1.1"
       sources."query-string-6.14.1"
       sources."read-1.0.7"
@@ -84518,10 +85177,10 @@ in
   coc-clangd = nodeEnv.buildNodePackage {
     name = "coc-clangd";
     packageName = "coc-clangd";
-    version = "0.21.1";
+    version = "0.21.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-clangd/-/coc-clangd-0.21.1.tgz";
-      sha512 = "222VMJBKE4ReyznvWjgJv4lZFtCrkEnKfJk4cL20SH+74x95JP2N0ujNtUiggBhaWcxvOiQxRt467NuVI48Fxg==";
+      url = "https://registry.npmjs.org/coc-clangd/-/coc-clangd-0.21.3.tgz";
+      sha512 = "fo38suoOGygQ68d6WAcQyTT0uVyEq+plVgr0viWb/DVe4vy51S5RLDboGFuCfkk8GIy6snWCv0am0w83WXBuig==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -84709,6 +85368,23 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  coc-flutter = nodeEnv.buildNodePackage {
+    name = "coc-flutter";
+    packageName = "coc-flutter";
+    version = "1.9.7";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/coc-flutter/-/coc-flutter-1.9.7.tgz";
+      sha512 = "12tXdF76vIOKhswubUNsd69jva2QxVStJuKSL8Ul7qH664MH3Pk1H6h26V+xu+vAeJKLZYp27MFZQmlpnd82IQ==";
+    };
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "flutter support for (Neo)vim";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   coc-git = nodeEnv.buildNodePackage {
     name = "coc-git";
     packageName = "coc-git";
@@ -84730,10 +85406,10 @@ in
   coc-go = nodeEnv.buildNodePackage {
     name = "coc-go";
     packageName = "coc-go";
-    version = "1.2.1";
+    version = "1.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-go/-/coc-go-1.2.1.tgz";
-      sha512 = "wC3hU4P7w9QtGUNng4lb3PFjfZvOwaSCz9V/M7xcnscuyyoA1j0nNB1/GsBNmW7xnhRS4kEfRPeeHwvj/3YYmA==";
+      url = "https://registry.npmjs.org/coc-go/-/coc-go-1.3.0.tgz";
+      sha512 = "Oh3ea/gb0lU5qZN1qaQMAQhxscrgcYfB3ZuRWxi+tMLCjoi8gJg/g05C5zD6hfbgmhC1PsL7jPeWSe5F4MifLg==";
     };
     dependencies = [
       sources."isexe-2.0.0"
@@ -84751,6 +85427,24 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  coc-haxe = nodeEnv.buildNodePackage {
+    name = "coc-haxe";
+    packageName = "coc-haxe";
+    version = "0.8.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/coc-haxe/-/coc-haxe-0.8.0.tgz";
+      sha512 = "u8DAHCGDi9C/7xY5xXxmsD4mIry07ujX+piCzkcDg/n6rMQ0R3lmqDk4tBt+C/qfWxqAFgee45q++OD62wsNxg==";
+    };
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Haxe language server extension for coc.nvim";
+      homepage = "https://github.com/vantreeseba/coc-haxe#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   coc-highlight = nodeEnv.buildNodePackage {
     name = "coc-highlight";
     packageName = "coc-highlight";
@@ -84904,11 +85598,11 @@ in
       sha512 = "zFExh1wGAZl4LXSp76NAjWORO9Tyhfw8WtALnhDv741p4tjWjVSEl6GmXTQN0U0tXz8UZ8ln2rL2OaxOdgMCTA==";
     };
     dependencies = [
-      sources."@chemzqm/neovim-5.7.7"
+      sources."@chemzqm/neovim-5.7.9"
       sources."@tootallnate/once-1.1.2"
       sources."agent-base-6.0.2"
       sources."arch-2.2.0"
-      sources."async-2.6.3"
+      sources."async-2.6.4"
       sources."await-semaphore-0.1.3"
       sources."balanced-match-1.0.2"
       sources."big-integer-1.6.51"
@@ -84933,14 +85627,14 @@ in
           sources."which-1.3.1"
         ];
       })
-      sources."date-format-4.0.6"
+      sources."date-format-4.0.7"
       sources."debounce-1.2.1"
       sources."debug-4.3.4"
       sources."deep-extend-0.6.0"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."duplexer2-0.1.4"
       sources."end-of-stream-1.4.4"
-      sources."es-abstract-1.19.1"
+      sources."es-abstract-1.19.5"
       sources."es-to-primitive-1.2.1"
       sources."event-lite-0.1.2"
       sources."execa-1.0.0"
@@ -84948,8 +85642,8 @@ in
       sources."fb-watchman-2.0.1"
       sources."flatted-3.2.5"
       sources."follow-redirects-1.14.9"
-      sources."fp-ts-2.11.9"
-      sources."fs-extra-10.0.1"
+      sources."fp-ts-2.11.10"
+      sources."fs-extra-10.1.0"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       (sources."fstream-1.0.12" // {
@@ -84963,13 +85657,14 @@ in
       sources."get-stream-4.1.0"
       sources."get-symbol-description-1.0.0"
       sources."glob-7.2.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."http-proxy-agent-4.0.1"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."ieee754-1.2.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -84982,9 +85677,9 @@ in
       sources."is-date-object-1.0.5"
       sources."is-docker-2.2.1"
       sources."is-negative-zero-2.0.2"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-regex-1.1.4"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-stream-1.1.0"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
@@ -85002,7 +85697,7 @@ in
         ];
       })
       sources."lodash-4.17.21"
-      sources."log4js-6.4.4"
+      sources."log4js-6.4.5"
       sources."lru-cache-6.0.0"
       sources."metals-languageclient-0.4.2"
       sources."minimatch-3.1.2"
@@ -85045,14 +85740,14 @@ in
       sources."rfdc-1.3.0"
       sources."rimraf-3.0.2"
       sources."safe-buffer-5.2.1"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."setimmediate-1.0.5"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."shell-quote-1.7.3"
       sources."side-channel-1.0.4"
       sources."signal-exit-3.0.7"
-      sources."streamroller-3.0.6"
+      sources."streamroller-3.0.7"
       sources."string.prototype.trimend-1.0.4"
       sources."string.prototype.trimstart-1.0.4"
       (sources."string_decoder-1.1.1" // {
@@ -85123,7 +85818,7 @@ in
       sha512 = "LkwQTBlD/chH0BTl7zFMw+M1CKbVIy8W49nVLuB+wmgS3dqnKZo58PRTYkcX2X25/FIWOh/oMSjWoZ8cTck8zQ==";
     };
     dependencies = [
-      sources."prettier-2.6.1"
+      sources."prettier-2.6.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -85138,13 +85833,13 @@ in
   coc-pyright = nodeEnv.buildNodePackage {
     name = "coc-pyright";
     packageName = "coc-pyright";
-    version = "1.1.232";
+    version = "1.1.235";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-pyright/-/coc-pyright-1.1.232.tgz";
-      sha512 = "1ytGBG4gmz/M/6guRKUvTSltXDpoWlcbqq7RsMi3fFEBhYvSQVpy3MkKgxjkJNVbp+YKuJpcuNAhCIjq0+BHAg==";
+      url = "https://registry.npmjs.org/coc-pyright/-/coc-pyright-1.1.235.tgz";
+      sha512 = "7hF2rkGFbx4KQrYflu12OlPVV/7lQxaJWyslJMsdElEVOVOpO5C6wmwf2+6Xnzm65i6mFIg5lO7zYAz6nRSMFg==";
     };
     dependencies = [
-      sources."pyright-1.1.233"
+      sources."pyright-1.1.239"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -85218,10 +85913,10 @@ in
   coc-rust-analyzer = nodeEnv.buildNodePackage {
     name = "coc-rust-analyzer";
     packageName = "coc-rust-analyzer";
-    version = "0.61.1";
+    version = "0.62.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.61.1.tgz";
-      sha512 = "xQtIB93k8SIlK6tOS1XEpdFAypU8mLVWhqsPkfV8Hf7AP3m4prErooMS8Du/9AMRqwL2nQxsBjAwpWYI/gJCgA==";
+      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.62.0.tgz";
+      sha512 = "rLvqkBL26cSgWtmfJMR9byRAyAIRZRQB0dx/tUqBQP34U0xkkyqlo2HirQ5fqlpnziUh9U4cYTItthRALe8vxA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -85254,10 +85949,10 @@ in
   coc-snippets = nodeEnv.buildNodePackage {
     name = "coc-snippets";
     packageName = "coc-snippets";
-    version = "3.0.5";
+    version = "3.0.9";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-snippets/-/coc-snippets-3.0.5.tgz";
-      sha512 = "fyJwbwX6FJVNb8NMmkyN2JDj5pr/imvfOCePPvkHiQCybnU82YM05+CKpBIAUBfxzwkBLQq64V4D7LD+lrUVLQ==";
+      url = "https://registry.npmjs.org/coc-snippets/-/coc-snippets-3.0.9.tgz";
+      sha512 = "BrQfCIW4kOWbNB0+RTXPs3pT6tqYI8xqrD7kbKBUaP0e7pFrQYCvf7SHCmT7M3TeIcfMCuv0bwiuHEoWejj1MQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -85297,12 +85992,11 @@ in
       sources."@ampproject/remapping-2.1.2"
       sources."@babel/code-frame-7.16.7"
       sources."@babel/compat-data-7.17.7"
-      sources."@babel/core-7.17.8"
-      sources."@babel/generator-7.17.7"
+      sources."@babel/core-7.17.9"
+      sources."@babel/generator-7.17.9"
       sources."@babel/helper-compilation-targets-7.17.7"
       sources."@babel/helper-environment-visitor-7.16.7"
-      sources."@babel/helper-function-name-7.16.7"
-      sources."@babel/helper-get-function-arity-7.16.7"
+      sources."@babel/helper-function-name-7.17.9"
       sources."@babel/helper-hoist-variables-7.16.7"
       sources."@babel/helper-module-imports-7.16.7"
       sources."@babel/helper-module-transforms-7.17.7"
@@ -85310,19 +86004,19 @@ in
       sources."@babel/helper-split-export-declaration-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
       sources."@babel/helper-validator-option-7.16.7"
-      sources."@babel/helpers-7.17.8"
-      (sources."@babel/highlight-7.16.10" // {
+      sources."@babel/helpers-7.17.9"
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.17.8"
+      sources."@babel/parser-7.17.9"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.17.3"
+      sources."@babel/traverse-7.17.9"
       sources."@babel/types-7.17.0"
       sources."@jridgewell/resolve-uri-3.0.5"
       sources."@jridgewell/sourcemap-codec-1.4.11"
-      sources."@jridgewell/trace-mapping-0.3.4"
+      sources."@jridgewell/trace-mapping-0.3.8"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
@@ -85356,7 +86050,7 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001320"
+      sources."caniuse-lite-1.0.30001332"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -85386,14 +86080,14 @@ in
       sources."dir-glob-3.0.1"
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.2.0"
+          sources."domelementtype-2.3.0"
           sources."entities-2.2.0"
         ];
       })
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."electron-to-chromium-1.4.96"
+      sources."electron-to-chromium-1.4.114"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -85427,7 +86121,7 @@ in
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
       sources."hosted-git-info-4.1.0"
-      sources."html-tags-3.1.0"
+      sources."html-tags-3.2.0"
       sources."htmlparser2-3.10.1"
       sources."ignore-5.2.0"
       (sources."import-fresh-3.3.0" // {
@@ -85445,7 +86139,7 @@ in
       sources."is-alphanumerical-1.0.4"
       sources."is-arrayish-0.2.1"
       sources."is-buffer-2.0.5"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-decimal-1.0.4"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
@@ -85489,10 +86183,10 @@ in
         ];
       })
       sources."ms-2.1.2"
-      sources."node-releases-2.0.2"
+      sources."node-releases-2.0.3"
       (sources."normalize-package-data-3.0.3" // {
         dependencies = [
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
         ];
       })
       sources."normalize-range-0.1.2"
@@ -85525,7 +86219,7 @@ in
       sources."postcss-safe-parser-4.0.2"
       sources."postcss-sass-0.4.4"
       sources."postcss-scss-2.1.1"
-      sources."postcss-selector-parser-6.0.9"
+      sources."postcss-selector-parser-6.0.10"
       sources."postcss-syntax-0.36.2"
       sources."postcss-value-parser-4.2.0"
       sources."punycode-2.1.1"
@@ -85677,7 +86371,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      sources."@babel/highlight-7.16.10"
+      sources."@babel/highlight-7.17.9"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
       sources."balanced-match-1.0.2"
@@ -85698,7 +86392,7 @@ in
       sources."has-flag-3.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
       sources."minimatch-3.1.2"
@@ -85764,10 +86458,10 @@ in
   coc-tsserver = nodeEnv.buildNodePackage {
     name = "coc-tsserver";
     packageName = "coc-tsserver";
-    version = "1.9.15";
+    version = "1.10.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-tsserver/-/coc-tsserver-1.9.15.tgz";
-      sha512 = "7mvLHnOqiXl0sk6mq78SmdIYL0nouIzejpTDgRlRjUrAXTCqXfpFVqfJg+2xASpcGTR5nH1lYMk/LXRrnFltIw==";
+      url = "https://registry.npmjs.org/coc-tsserver/-/coc-tsserver-1.10.1.tgz";
+      sha512 = "wkXnt6Ok/VL7/Nx/96mldX/BactXvNmme2mpmk3qk9VdN8Do9esETyBxqzbQqBO71ZVtTUxYGpK+W61gm15Dow==";
     };
     dependencies = [
       sources."typescript-4.6.3"
@@ -85811,7 +86505,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.11"
       sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."chalk-2.4.2"
           sources."escape-string-regexp-1.0.5"
@@ -85908,7 +86602,7 @@ in
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-expression-4.0.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
@@ -85937,7 +86631,7 @@ in
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
       sources."prelude-ls-1.2.1"
-      sources."prettier-2.6.1"
+      sources."prettier-2.6.2"
       sources."progress-2.0.3"
       sources."pug-error-2.0.0"
       sources."pug-lexer-5.0.1"
@@ -85947,7 +86641,7 @@ in
       sources."resolve-1.22.0"
       sources."resolve-from-4.0.0"
       sources."rimraf-3.0.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       (sources."slice-ansi-4.0.0" // {
@@ -86009,10 +86703,10 @@ in
   coc-vimlsp = nodeEnv.buildNodePackage {
     name = "coc-vimlsp";
     packageName = "coc-vimlsp";
-    version = "0.12.5";
+    version = "0.12.8";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-vimlsp/-/coc-vimlsp-0.12.5.tgz";
-      sha512 = "IUewjywQmqGxjnvCO1chR1jOaqkXz6Hhxrtf8WIZynEfz/TNqfkuLGB5K8XqJtN54uLeMUg2VvVkjnPvhBRXPw==";
+      url = "https://registry.npmjs.org/coc-vimlsp/-/coc-vimlsp-0.12.8.tgz";
+      sha512 = "t03LSLQgHXvlNcifKTohzNbWq3//sp8B442mwKIUFJshd+1rdMUZfgZCgisMcQjuWaQCG491VYnm/wAP4o0ifA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -86165,7 +86859,7 @@ in
       sources."git-clone-0.1.0"
       sources."glob-7.2.0"
       sources."got-6.7.1"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-flag-3.0.0"
       sources."has-symbol-support-x-1.4.2"
       sources."has-to-string-tag-x-1.4.1"
@@ -86336,10 +87030,10 @@ in
   concurrently = nodeEnv.buildNodePackage {
     name = "concurrently";
     packageName = "concurrently";
-    version = "7.0.0";
+    version = "7.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/concurrently/-/concurrently-7.0.0.tgz";
-      sha512 = "WKM7PUsI8wyXpF80H+zjHP32fsgsHNQfPLw/e70Z5dYkV7hF+rf8q3D+ScWJIEr57CpkO3OWBko6hwhQLPR8Pw==";
+      url = "https://registry.npmjs.org/concurrently/-/concurrently-7.1.0.tgz";
+      sha512 = "Bz0tMlYKZRUDqJlNiF/OImojMB9ruKUz6GCfmhFnSapXgPe+3xzY4byqoKG9tUZ7L2PGEUjfLPOLfIX3labnmw==";
     };
     dependencies = [
       sources."ansi-regex-5.0.1"
@@ -86403,7 +87097,7 @@ in
       sources."commander-7.2.0"
       sources."enabled-2.0.0"
       sources."eventemitter3-4.0.7"
-      sources."fecha-4.2.1"
+      sources."fecha-4.2.3"
       sources."fn.name-1.1.0"
       sources."follow-redirects-1.14.9"
       sources."http-proxy-1.18.1"
@@ -86451,7 +87145,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      sources."@babel/highlight-7.16.10"
+      sources."@babel/highlight-7.17.9"
       sources."@hutson/parse-repository-url-3.0.2"
       sources."@types/minimist-1.2.2"
       sources."@types/normalize-package-data-2.4.1"
@@ -86518,7 +87212,7 @@ in
       sources."git-remote-origin-url-2.0.0"
       sources."git-semver-tags-4.1.1"
       sources."gitconfiglocal-1.0.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."handlebars-4.7.7"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
@@ -86528,7 +87222,7 @@ in
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-obj-2.0.0"
       sources."is-plain-obj-1.1.0"
@@ -86582,7 +87276,7 @@ in
       sources."neo-async-2.6.2"
       (sources."normalize-package-data-3.0.3" // {
         dependencies = [
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
         ];
       })
       sources."p-limit-1.3.0"
@@ -86635,7 +87329,7 @@ in
       sources."through2-4.0.2"
       sources."trim-newlines-3.0.1"
       sources."type-fest-0.18.1"
-      sources."uglify-js-3.15.3"
+      sources."uglify-js-3.15.4"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."validate-npm-package-license-3.0.4"
@@ -86712,7 +87406,7 @@ in
       sources."array-union-2.1.0"
       sources."asn1-0.2.6"
       sources."assert-plus-1.0.0"
-      sources."async-2.6.3"
+      sources."async-2.6.4"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
       sources."atomically-1.7.0"
@@ -86776,7 +87470,7 @@ in
         ];
       })
       sources."concat-map-0.0.1"
-      (sources."conf-10.1.1" // {
+      (sources."conf-10.1.2" // {
         dependencies = [
           sources."ajv-8.11.0"
           sources."dot-prop-6.0.1"
@@ -86891,7 +87585,7 @@ in
       sources."form-data-2.3.3"
       sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
-      sources."fs-extra-10.0.1"
+      sources."fs-extra-10.1.0"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
@@ -86907,7 +87601,7 @@ in
           sources."get-stream-4.1.0"
         ];
       })
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
@@ -86919,7 +87613,7 @@ in
       sources."http-errors-1.8.1"
       sources."http-proxy-agent-4.0.1"
       sources."http-signature-1.2.0"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."human-signals-2.1.0"
       sources."humanize-ms-1.2.1"
       sources."iconv-lite-0.6.3"
@@ -86968,7 +87662,7 @@ in
       sources."ip-1.1.5"
       sources."ipaddr.js-1.9.1"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-1.0.0"
@@ -87144,7 +87838,7 @@ in
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
       sources."sax-1.1.4"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -87169,7 +87863,7 @@ in
       sources."slash-3.0.0"
       sources."smart-buffer-4.2.0"
       sources."socks-2.6.2"
-      sources."socks-proxy-agent-6.1.1"
+      sources."socks-proxy-agent-6.2.0"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
@@ -87186,7 +87880,7 @@ in
       sources."strip-json-comments-2.0.1"
       sources."supports-color-7.2.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."systeminformation-5.11.9"
+      sources."systeminformation-5.11.12"
       sources."tar-6.1.11"
       sources."through-2.3.8"
       sources."tmp-0.2.1"
@@ -87277,7 +87971,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      sources."@babel/highlight-7.16.10"
+      sources."@babel/highlight-7.17.9"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
@@ -87316,7 +88010,7 @@ in
       sources."function-bind-1.1.1"
       sources."glob-parent-5.1.2"
       sources."globby-13.1.1"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
@@ -87324,7 +88018,7 @@ in
       sources."ignore-5.2.0"
       sources."indent-string-5.0.0"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
@@ -87347,10 +88041,10 @@ in
           sources."arrify-1.0.1"
         ];
       })
-      sources."nested-error-stacks-2.1.0"
+      sources."nested-error-stacks-2.1.1"
       (sources."normalize-package-data-3.0.3" // {
         dependencies = [
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
         ];
       })
       sources."p-event-4.2.0"
@@ -87416,7 +88110,7 @@ in
       sources."@cycle/run-3.4.0"
       sources."@cycle/time-0.10.1"
       sources."@types/cookiejar-2.1.2"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/superagent-3.8.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
@@ -87445,9 +88139,9 @@ in
       sources."cycle-onionify-4.0.0"
       sources."d-1.0.1"
       sources."debug-3.2.7"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."delayed-stream-1.0.0"
-      sources."es5-ext-0.10.59"
+      sources."es5-ext-0.10.61"
       sources."es6-iterator-2.0.3"
       sources."es6-map-0.1.5"
       (sources."es6-set-0.1.5" // {
@@ -87474,6 +88168,7 @@ in
       sources."has-1.0.3"
       sources."has-ansi-2.0.0"
       sources."has-flag-3.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."iconv-lite-0.4.24"
       sources."inherits-2.0.4"
@@ -87567,10 +88262,10 @@ in
   create-react-app = nodeEnv.buildNodePackage {
     name = "create-react-app";
     packageName = "create-react-app";
-    version = "5.0.0";
+    version = "5.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/create-react-app/-/create-react-app-5.0.0.tgz";
-      sha512 = "r1hJymk28l9HiGNatNq92txdua5pq5z4jHsYRG4g2BME7cDtRcCiuUsZzT1tPqjapSHT0Zwpwnp0gdTaqPzyBA==";
+      url = "https://registry.npmjs.org/create-react-app/-/create-react-app-5.0.1.tgz";
+      sha512 = "UkxTKK8I9HuZZHqkNq/JkKXDgdLeiRGc+bL58Iae2g+7WwFomAj4wppn6JfqlZM2IKYRlZtgLlmVr5oZfdd1xg==";
     };
     dependencies = [
       sources."ansi-styles-4.3.0"
@@ -87589,12 +88284,12 @@ in
       sources."debug-2.6.9"
       sources."duplexer2-0.0.2"
       sources."envinfo-7.8.1"
-      sources."fs-extra-10.0.1"
+      sources."fs-extra-10.1.0"
       sources."fs.realpath-1.0.0"
       sources."fstream-1.0.12"
       sources."fstream-ignore-1.0.5"
       sources."glob-7.2.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-flag-4.0.0"
       sources."hyperquest-2.1.3"
       sources."inflight-1.0.6"
@@ -87616,7 +88311,7 @@ in
       sources."readable-stream-1.1.14"
       sources."rimraf-2.7.1"
       sources."safe-buffer-5.1.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."sisteransi-1.0.5"
@@ -87680,15 +88375,15 @@ in
   cspell = nodeEnv.buildNodePackage {
     name = "cspell";
     packageName = "cspell";
-    version = "5.19.3";
+    version = "5.19.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cspell/-/cspell-5.19.3.tgz";
-      sha512 = "JJBH8iqtHYmxqLQZ+7GAMTVvc6SAoHVgn1tdYknOI2/uxAbZVH29eaxINY7JfjwPuxPPVAvttRetBAIRiu6ZYw==";
+      url = "https://registry.npmjs.org/cspell/-/cspell-5.19.7.tgz";
+      sha512 = "7/y+k708tv68+5lpN23Ew1/djx/EnG838zZ8W2ZDWCc6uRHutqRhpxsjMZr/MT3RHN44iKUj2MgT5+sfnhr4eg==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -87698,14 +88393,14 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@cspell/cspell-bundled-dicts-5.19.3"
-      sources."@cspell/cspell-pipe-5.19.3"
-      sources."@cspell/cspell-types-5.19.3"
+      sources."@cspell/cspell-bundled-dicts-5.19.7"
+      sources."@cspell/cspell-pipe-5.19.7"
+      sources."@cspell/cspell-types-5.19.7"
       sources."@cspell/dict-ada-2.0.0"
       sources."@cspell/dict-aws-2.0.0"
-      sources."@cspell/dict-bash-2.0.1"
+      sources."@cspell/dict-bash-2.0.2"
       sources."@cspell/dict-companies-2.0.3"
-      sources."@cspell/dict-cpp-2.0.0"
+      sources."@cspell/dict-cpp-2.0.3"
       sources."@cspell/dict-cryptocurrencies-2.0.0"
       sources."@cspell/dict-csharp-2.0.1"
       sources."@cspell/dict-css-2.0.0"
@@ -87718,6 +88413,7 @@ in
       sources."@cspell/dict-filetypes-2.0.1"
       sources."@cspell/dict-fonts-2.0.0"
       sources."@cspell/dict-fullstack-2.0.4"
+      sources."@cspell/dict-git-1.0.1"
       sources."@cspell/dict-golang-2.0.0"
       sources."@cspell/dict-haskell-2.0.0"
       sources."@cspell/dict-html-3.0.1"
@@ -87752,36 +88448,36 @@ in
       sources."clear-module-4.1.2"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."commander-9.1.0"
+      sources."commander-9.2.0"
       sources."comment-json-4.2.2"
       sources."concat-map-0.0.1"
       sources."configstore-5.0.1"
       sources."core-util-is-1.0.3"
       sources."cosmiconfig-7.0.1"
       sources."crypto-random-string-2.0.0"
-      sources."cspell-gitignore-5.19.3"
-      sources."cspell-glob-5.19.3"
-      sources."cspell-io-5.19.3"
-      sources."cspell-lib-5.19.3"
-      sources."cspell-trie-lib-5.19.3"
+      sources."cspell-gitignore-5.19.7"
+      sources."cspell-glob-5.19.7"
+      sources."cspell-io-5.19.7"
+      sources."cspell-lib-5.19.7"
+      sources."cspell-trie-lib-5.19.7"
       sources."dot-prop-5.3.0"
       sources."error-ex-1.3.2"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
-      sources."fast-equals-3.0.0"
+      sources."fast-equals-3.0.1"
       sources."fast-json-stable-stringify-2.1.0"
       sources."file-entry-cache-6.0.1"
       sources."fill-range-7.0.1"
       sources."find-up-5.0.0"
       sources."flat-cache-3.0.4"
       sources."flatted-3.2.5"
-      sources."fs-extra-10.0.1"
+      sources."fs-extra-10.1.0"
       sources."fs.realpath-1.0.0"
       sources."gensequence-3.1.1"
       sources."get-stdin-8.0.0"
       sources."glob-7.2.0"
       sources."global-dirs-0.1.1"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-flag-4.0.0"
       sources."has-own-prop-2.0.0"
       (sources."import-fresh-3.3.0" // {
@@ -87824,7 +88520,7 @@ in
       sources."resolve-from-5.0.0"
       sources."resolve-global-1.0.0"
       sources."rimraf-3.0.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."signal-exit-3.0.7"
       sources."strip-ansi-6.0.1"
       sources."supports-color-7.2.0"
@@ -87918,7 +88614,7 @@ in
       sources."asn1-0.2.6"
       sources."assert-plus-1.0.0"
       sources."assign-symbols-1.0.0"
-      sources."async-0.9.2"
+      sources."async-3.2.3"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
       sources."atomic-batcher-1.0.2"
@@ -88112,7 +88808,7 @@ in
       sources."global-4.4.0"
       sources."global-dirs-0.1.1"
       sources."got-6.7.1"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."guard-timeout-2.0.0"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
@@ -88231,7 +88927,7 @@ in
       sources."neat-input-1.11.1"
       sources."neat-log-3.1.0"
       sources."nets-3.2.0"
-      sources."node-gyp-build-4.3.0"
+      sources."node-gyp-build-4.4.0"
       sources."normalize-path-2.1.1"
       sources."npm-run-path-2.0.2"
       sources."oauth-sign-0.9.0"
@@ -88268,7 +88964,7 @@ in
       sources."process-0.11.10"
       sources."process-nextick-args-2.0.1"
       sources."progress-string-1.2.2"
-      sources."prompt-1.2.2"
+      sources."prompt-1.3.0"
       (sources."protocol-buffers-encodings-1.1.1" // {
         dependencies = [
           sources."varint-5.0.0"
@@ -88519,14 +89215,14 @@ in
   "deltachat-desktop-../../applications/networking/instant-messengers/deltachat-desktop" = nodeEnv.buildNodePackage {
     name = "deltachat-desktop";
     packageName = "deltachat-desktop";
-    version = "1.28.0";
+    version = "1.28.2";
     src = ../../applications/networking/instant-messengers/deltachat-desktop;
     dependencies = [
       sources."@ampproject/remapping-2.1.2"
       sources."@babel/code-frame-7.16.7"
       sources."@babel/compat-data-7.17.7"
-      sources."@babel/core-7.17.8"
-      (sources."@babel/generator-7.17.7" // {
+      sources."@babel/core-7.17.9"
+      (sources."@babel/generator-7.17.9" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
@@ -88534,13 +89230,12 @@ in
       sources."@babel/helper-annotate-as-pure-7.16.7"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.7"
       sources."@babel/helper-compilation-targets-7.17.7"
-      sources."@babel/helper-create-class-features-plugin-7.17.6"
+      sources."@babel/helper-create-class-features-plugin-7.17.9"
       sources."@babel/helper-create-regexp-features-plugin-7.17.0"
       sources."@babel/helper-define-polyfill-provider-0.3.1"
       sources."@babel/helper-environment-visitor-7.16.7"
       sources."@babel/helper-explode-assignable-expression-7.16.7"
-      sources."@babel/helper-function-name-7.16.7"
-      sources."@babel/helper-get-function-arity-7.16.7"
+      sources."@babel/helper-function-name-7.17.9"
       sources."@babel/helper-hoist-variables-7.16.7"
       sources."@babel/helper-member-expression-to-functions-7.17.7"
       sources."@babel/helper-module-imports-7.16.7"
@@ -88555,9 +89250,9 @@ in
       sources."@babel/helper-validator-identifier-7.16.7"
       sources."@babel/helper-validator-option-7.16.7"
       sources."@babel/helper-wrap-function-7.16.8"
-      sources."@babel/helpers-7.17.8"
-      sources."@babel/highlight-7.16.10"
-      sources."@babel/parser-7.17.8"
+      sources."@babel/helpers-7.17.9"
+      sources."@babel/highlight-7.17.9"
+      sources."@babel/parser-7.17.9"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7"
       sources."@babel/plugin-proposal-async-generator-functions-7.16.8"
@@ -88605,7 +89300,7 @@ in
       sources."@babel/plugin-transform-literals-7.16.7"
       sources."@babel/plugin-transform-member-expression-literals-7.16.7"
       sources."@babel/plugin-transform-modules-amd-7.16.7"
-      sources."@babel/plugin-transform-modules-commonjs-7.17.7"
+      sources."@babel/plugin-transform-modules-commonjs-7.17.9"
       sources."@babel/plugin-transform-modules-systemjs-7.17.8"
       sources."@babel/plugin-transform-modules-umd-7.16.7"
       sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.8"
@@ -88617,7 +89312,7 @@ in
       sources."@babel/plugin-transform-react-jsx-7.17.3"
       sources."@babel/plugin-transform-react-jsx-development-7.16.7"
       sources."@babel/plugin-transform-react-pure-annotations-7.16.7"
-      sources."@babel/plugin-transform-regenerator-7.16.7"
+      sources."@babel/plugin-transform-regenerator-7.17.9"
       sources."@babel/plugin-transform-reserved-words-7.16.7"
       sources."@babel/plugin-transform-shorthand-properties-7.16.7"
       sources."@babel/plugin-transform-spread-7.16.7"
@@ -88629,11 +89324,11 @@ in
       sources."@babel/preset-env-7.16.11"
       sources."@babel/preset-modules-0.1.5"
       sources."@babel/preset-react-7.16.7"
-      sources."@babel/runtime-7.17.8"
+      sources."@babel/runtime-7.17.9"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.17.3"
+      sources."@babel/traverse-7.17.9"
       sources."@babel/types-7.17.0"
-      sources."@blueprintjs/colors-4.0.1"
+      sources."@blueprintjs/colors-4.1.0"
       sources."@blueprintjs/core-3.54.0"
       sources."@blueprintjs/icons-3.33.0"
       sources."@deltachat/message_parser_wasm-0.3.0"
@@ -88641,7 +89336,7 @@ in
       sources."@hypnosphi/create-react-context-0.3.1"
       sources."@jridgewell/resolve-uri-3.0.5"
       sources."@jridgewell/sourcemap-codec-1.4.11"
-      sources."@jridgewell/trace-mapping-0.3.4"
+      sources."@jridgewell/trace-mapping-0.3.8"
       sources."@juggle/resize-observer-3.3.1"
       sources."@mapbox/extent-0.4.0"
       sources."@mapbox/geojson-coords-0.0.2"
@@ -88665,11 +89360,11 @@ in
       sources."@types/mapbox-gl-0.54.5"
       sources."@types/mime-types-2.1.1"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-14.18.12"
+      sources."@types/node-14.18.13"
       sources."@types/node-fetch-2.6.1"
-      sources."@types/prop-types-15.7.4"
+      sources."@types/prop-types-15.7.5"
       sources."@types/rc-1.2.1"
-      sources."@types/react-16.14.24"
+      sources."@types/react-16.14.25"
       sources."@types/react-dom-16.9.14"
       sources."@types/react-window-1.8.5"
       sources."@types/react-window-infinite-loader-1.0.6"
@@ -88722,7 +89417,7 @@ in
         ];
       })
       sources."call-bind-1.0.2"
-      sources."caniuse-lite-1.0.30001320"
+      sources."caniuse-lite-1.0.30001332"
       sources."chalk-2.4.2"
       sources."chokidar-2.1.8"
       (sources."class-utils-0.3.6" // {
@@ -88763,7 +89458,7 @@ in
         ];
       })
       sources."copy-descriptor-0.1.1"
-      (sources."core-js-compat-3.21.1" // {
+      (sources."core-js-compat-3.22.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -88779,7 +89474,7 @@ in
       sources."deep-equal-1.1.1"
       sources."deep-extend-0.6.0"
       sources."defer-to-connect-1.1.3"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."define-property-2.0.2"
       sources."delayed-stream-1.0.0"
       sources."deltachat-node-1.76.0"
@@ -88788,8 +89483,8 @@ in
       sources."dom4-2.1.6"
       sources."duplexer3-0.1.4"
       sources."earcut-2.2.3"
-      sources."electron-14.2.8"
-      sources."electron-to-chromium-1.4.96"
+      sources."electron-14.2.9"
+      sources."electron-to-chromium-1.4.114"
       sources."emoji-js-clean-4.0.0"
       sources."emoji-mart-3.0.1"
       sources."emoji-regex-9.2.2"
@@ -88854,6 +89549,7 @@ in
       sources."fs-extra-8.1.0"
       sources."fsevents-1.2.13"
       sources."function-bind-1.1.1"
+      sources."functions-have-names-1.2.3"
       sources."gensync-1.0.0-beta.2"
       sources."geojson-flatten-1.0.4"
       sources."geojson-vt-3.2.1"
@@ -88870,7 +89566,7 @@ in
       sources."glob-watcher-5.0.5"
       (sources."global-agent-3.0.0" // {
         dependencies = [
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
         ];
       })
       sources."global-tunnel-ng-2.7.1"
@@ -88881,11 +89577,12 @@ in
           sources."get-stream-4.1.0"
         ];
       })
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."grid-index-1.1.0"
       sources."gud-1.0.0"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."has-value-1.0.0"
@@ -88903,7 +89600,7 @@ in
       sources."is-arguments-1.1.1"
       sources."is-binary-path-1.0.1"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.5"
       sources."is-descriptor-1.0.2"
@@ -88961,15 +89658,15 @@ in
         ];
       })
       sources."mkdirp-0.5.6"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."ms-2.1.2"
       sources."murmurhash-js-1.0.0"
       sources."nan-2.15.0"
       sources."nanomatch-1.2.13"
       sources."napi-macros-2.0.0"
       sources."node-fetch-2.6.7"
-      sources."node-gyp-build-4.3.0"
-      sources."node-releases-2.0.2"
+      sources."node-gyp-build-4.4.0"
+      sources."node-releases-2.0.3"
       sources."normalize-path-3.0.0"
       sources."normalize-url-4.5.1"
       sources."normalize.css-8.0.1"
@@ -89044,9 +89741,9 @@ in
       sources."regenerate-1.4.2"
       sources."regenerate-unicode-properties-10.0.1"
       sources."regenerator-runtime-0.13.9"
-      sources."regenerator-transform-0.14.5"
+      sources."regenerator-transform-0.15.0"
       sources."regex-not-1.0.2"
-      sources."regexp.prototype.flags-1.4.1"
+      sources."regexp.prototype.flags-1.4.3"
       sources."regexpu-core-5.0.1"
       sources."regjsgen-0.6.0"
       (sources."regjsparser-0.8.4" // {
@@ -89068,7 +89765,7 @@ in
       sources."rw-0.1.4"
       sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
-      (sources."sass-1.49.9" // {
+      (sources."sass-1.50.1" // {
         dependencies = [
           sources."anymatch-3.1.2"
           sources."binary-extensions-2.2.0"
@@ -89159,7 +89856,7 @@ in
       sources."string_decoder-1.3.0"
       sources."strip-json-comments-2.0.1"
       sources."sumchecker-3.0.1"
-      sources."supercluster-7.1.4"
+      sources."supercluster-7.1.5"
       sources."supports-color-5.5.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
       sources."temp-dir-1.0.0"
@@ -89275,7 +89972,7 @@ in
       sources."glob-7.2.0"
       sources."glob-parent-5.1.2"
       sources."globby-11.1.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."ignore-5.2.0"
       sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
@@ -89365,20 +90062,20 @@ in
   elasticdump = nodeEnv.buildNodePackage {
     name = "elasticdump";
     packageName = "elasticdump";
-    version = "6.82.1";
+    version = "6.82.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.82.1.tgz";
-      sha512 = "21LnOw92tD3UXOP0/yaWYBig5p28N5q8TTgL64mkIkNWUIKA2gOa+UO+Enejs1Mubo36jNX830w2ea1uJfHcLg==";
+      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.82.3.tgz";
+      sha512 = "Q7JNsKRQbPkwCQIj9YNHbgYZ2TcHAMdKlga++mBkKwpuIiwYYtqvb40TtjQBWpAD+k9MI7Lrp2/Vqrt9vmy0ow==";
     };
     dependencies = [
       sources."@fast-csv/format-4.3.5"
       sources."@fast-csv/parse-4.3.6"
-      sources."@types/node-14.18.12"
+      sources."@types/node-14.18.13"
       sources."JSONStream-1.3.5"
       sources."ajv-6.12.6"
       sources."asn1-0.2.6"
       sources."assert-plus-1.0.0"
-      sources."async-2.6.3"
+      sources."async-2.6.4"
       sources."asynckit-0.4.0"
       sources."aws-sdk-2.1097.0"
       sources."aws-sign2-0.7.0"
@@ -89410,7 +90107,7 @@ in
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."http-signature-1.2.0"
-      sources."http-status-1.5.0"
+      sources."http-status-1.5.1"
       sources."ieee754-1.1.13"
       sources."inherits-2.0.4"
       sources."ini-2.0.0"
@@ -89560,6 +90257,12 @@ in
           sources."universalify-0.1.2"
         ];
       })
+      (sources."@electron/universal-1.2.1" // {
+        dependencies = [
+          sources."@malept/cross-spawn-promise-1.1.1"
+          sources."fs-extra-9.1.0"
+        ];
+      })
       sources."@gar/promisify-1.1.3"
       sources."@malept/cross-spawn-promise-2.0.0"
       sources."@nodelib/fs.scandir-2.1.5"
@@ -89573,11 +90276,12 @@ in
       sources."@types/cacheable-request-6.0.2"
       sources."@types/glob-7.2.0"
       sources."@types/http-cache-semantics-4.0.1"
+      sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/responselike-1.0.0"
-      sources."@types/yauzl-2.9.2"
+      sources."@types/yauzl-2.10.0"
       sources."abbrev-1.1.1"
       sources."agent-base-6.0.2"
       sources."agentkeepalive-4.2.1"
@@ -89616,6 +90320,7 @@ in
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
       sources."buffer-crc32-0.2.13"
+      sources."buffer-equal-1.0.0"
       sources."buffer-fill-1.0.0"
       sources."buffer-from-1.1.2"
       sources."cacache-15.3.0"
@@ -89637,9 +90342,11 @@ in
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."color-support-1.1.3"
+      sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
       sources."commander-4.1.1"
       sources."compare-version-0.1.2"
+      sources."compress-brotli-1.3.6"
       sources."concat-map-0.0.1"
       sources."config-chain-1.1.13"
       sources."console-control-strings-1.1.0"
@@ -89664,7 +90371,7 @@ in
       sources."defaults-1.0.3"
       sources."defer-to-connect-2.0.1"
       sources."define-lazy-prop-2.0.0"
-      (sources."define-properties-1.1.3" // {
+      (sources."define-properties-1.1.4" // {
         dependencies = [
           sources."object-keys-1.1.1"
         ];
@@ -89674,6 +90381,12 @@ in
       sources."depd-1.1.2"
       sources."detect-libc-1.0.3"
       sources."detect-node-2.1.0"
+      (sources."dir-compare-2.4.0" // {
+        dependencies = [
+          sources."commander-2.9.0"
+          sources."minimatch-3.0.4"
+        ];
+      })
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
       (sources."electron-notarize-1.2.1" // {
@@ -89686,7 +90399,7 @@ in
           sources."debug-2.6.9"
         ];
       })
-      (sources."electron-packager-15.4.0" // {
+      (sources."electron-packager-15.5.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
         ];
@@ -89748,7 +90461,7 @@ in
       })
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."fs-extra-10.0.1"
+      sources."fs-extra-10.1.0"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
@@ -89761,9 +90474,10 @@ in
           sources."universalify-0.1.2"
         ];
       })
-      sources."gauge-4.0.3"
+      sources."gauge-4.0.4"
       sources."get-caller-file-2.0.5"
       sources."get-installed-path-2.1.1"
+      sources."get-intrinsic-1.1.1"
       (sources."get-package-info-1.0.0" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -89783,11 +90497,14 @@ in
       sources."global-tunnel-ng-2.7.1"
       sources."globalthis-1.0.2"
       sources."got-11.8.3"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
+      sources."graceful-readlink-1.0.1"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
+      sources."has-property-descriptors-1.0.0"
+      sources."has-symbols-1.0.3"
       sources."has-unicode-2.0.1"
       sources."homedir-polyfill-1.0.3"
       sources."hosted-git-info-2.8.9"
@@ -89795,7 +90512,7 @@ in
       sources."http-proxy-agent-4.0.1"
       sources."http-signature-1.2.0"
       sources."http2-wrapper-1.0.3"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."humanize-ms-1.2.1"
       sources."iconv-lite-0.6.3"
       sources."ieee754-1.2.1"
@@ -89808,7 +90525,7 @@ in
       sources."inquirer-8.2.2"
       sources."ip-1.1.5"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
@@ -89833,7 +90550,7 @@ in
       sources."jsonfile-6.1.0"
       sources."jsprim-1.4.2"
       sources."junk-3.1.0"
-      sources."keyv-4.1.1"
+      sources."keyv-4.2.2"
       sources."load-json-file-2.0.0"
       sources."locate-path-2.0.0"
       sources."lodash-4.17.21"
@@ -89870,12 +90587,12 @@ in
       sources."mute-stream-0.0.8"
       sources."negotiator-0.6.3"
       sources."nice-try-1.0.5"
-      sources."node-abi-3.8.0"
+      sources."node-abi-3.15.0"
       sources."node-addon-api-3.2.1"
       sources."node-api-version-0.1.4"
       sources."node-fetch-2.6.7"
       sources."node-gyp-8.4.1"
-      sources."node-gyp-build-4.3.0"
+      sources."node-gyp-build-4.4.0"
       sources."nopt-5.0.0"
       (sources."normalize-package-data-2.5.0" // {
         dependencies = [
@@ -89978,7 +90695,7 @@ in
       sources."rxjs-7.5.5"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."semver-compare-1.0.0"
       sources."serialize-error-7.0.1"
       sources."set-blocking-2.0.0"
@@ -89995,7 +90712,7 @@ in
       })
       sources."smart-buffer-4.2.0"
       sources."socks-2.6.2"
-      sources."socks-proxy-agent-6.1.1"
+      sources."socks-proxy-agent-6.2.0"
       sources."source-map-0.6.1"
       sources."source-map-support-0.5.21"
       sources."spdx-correct-3.1.1"
@@ -90061,7 +90778,7 @@ in
       sources."xtend-2.1.2"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
-      (sources."yargs-17.4.0" // {
+      (sources."yargs-17.4.1" // {
         dependencies = [
           sources."yargs-parser-21.0.1"
         ];
@@ -90120,12 +90837,12 @@ in
       sources."@ampproject/remapping-2.1.2"
       sources."@babel/code-frame-7.16.7"
       sources."@babel/compat-data-7.17.7"
-      (sources."@babel/core-7.17.8" // {
+      (sources."@babel/core-7.17.9" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/generator-7.17.7"
+      sources."@babel/generator-7.17.9"
       sources."@babel/helper-annotate-as-pure-7.16.7"
       (sources."@babel/helper-compilation-targets-7.17.7" // {
         dependencies = [
@@ -90133,8 +90850,7 @@ in
         ];
       })
       sources."@babel/helper-environment-visitor-7.16.7"
-      sources."@babel/helper-function-name-7.16.7"
-      sources."@babel/helper-get-function-arity-7.16.7"
+      sources."@babel/helper-function-name-7.17.9"
       sources."@babel/helper-hoist-variables-7.16.7"
       sources."@babel/helper-module-imports-7.16.7"
       sources."@babel/helper-module-transforms-7.17.7"
@@ -90143,9 +90859,9 @@ in
       sources."@babel/helper-split-export-declaration-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
       sources."@babel/helper-validator-option-7.16.7"
-      sources."@babel/helpers-7.17.8"
-      sources."@babel/highlight-7.16.10"
-      sources."@babel/parser-7.17.8"
+      sources."@babel/helpers-7.17.9"
+      sources."@babel/highlight-7.17.9"
+      sources."@babel/parser-7.17.9"
       sources."@babel/plugin-proposal-object-rest-spread-7.17.3"
       sources."@babel/plugin-syntax-jsx-7.16.7"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
@@ -90153,11 +90869,11 @@ in
       sources."@babel/plugin-transform-parameters-7.16.7"
       sources."@babel/plugin-transform-react-jsx-7.17.3"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.17.3"
+      sources."@babel/traverse-7.17.9"
       sources."@babel/types-7.17.0"
       sources."@jridgewell/resolve-uri-3.0.5"
       sources."@jridgewell/sourcemap-codec-1.4.11"
-      sources."@jridgewell/trace-mapping-0.3.4"
+      sources."@jridgewell/trace-mapping-0.3.8"
       sources."@types/minimist-1.2.2"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/yoga-layout-1.9.2"
@@ -90182,7 +90898,7 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001320"
+      sources."caniuse-lite-1.0.30001332"
       sources."chalk-2.4.2"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
@@ -90196,7 +90912,7 @@ in
       sources."concat-map-0.0.1"
       (sources."conf-7.1.2" // {
         dependencies = [
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
         ];
       })
       sources."convert-source-map-1.8.0"
@@ -90211,7 +90927,7 @@ in
         ];
       })
       sources."dot-prop-5.3.0"
-      sources."electron-to-chromium-1.4.96"
+      sources."electron-to-chromium-1.4.114"
       sources."emoji-regex-8.0.0"
       sources."emojilib-2.4.0"
       sources."end-of-stream-1.4.4"
@@ -90261,7 +90977,7 @@ in
       })
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-docker-2.2.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-obj-2.0.0"
@@ -90300,7 +91016,7 @@ in
       sources."minimist-options-4.1.0"
       sources."ms-2.1.2"
       sources."nice-try-1.0.5"
-      sources."node-releases-2.0.2"
+      sources."node-releases-2.0.3"
       sources."normalize-package-data-2.5.0"
       sources."npm-run-path-2.0.2"
       sources."object-assign-4.1.1"
@@ -90336,7 +91052,7 @@ in
       sources."punycode-2.1.1"
       sources."quick-lru-4.0.1"
       sources."react-16.14.0"
-      sources."react-devtools-core-4.24.2"
+      sources."react-devtools-core-4.24.4"
       sources."react-is-16.13.1"
       sources."react-reconciler-0.26.2"
       (sources."read-pkg-5.2.0" // {
@@ -90445,7 +91161,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.11"
       sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -90465,28 +91181,30 @@ in
       (sources."@eslint/eslintrc-0.4.3" // {
         dependencies = [
           sources."ajv-6.12.6"
+          sources."brace-expansion-1.1.11"
           sources."debug-4.3.4"
           sources."ignore-4.0.6"
           sources."js-yaml-3.14.1"
           sources."json-schema-traverse-0.4.1"
+          sources."minimatch-3.1.2"
           sources."ms-2.1.2"
           sources."strip-json-comments-3.1.1"
         ];
       })
       sources."@fluentui/date-time-utilities-8.5.0"
       sources."@fluentui/dom-utilities-2.2.0"
-      sources."@fluentui/font-icons-mdl2-8.2.5"
-      sources."@fluentui/foundation-legacy-8.2.5"
+      sources."@fluentui/font-icons-mdl2-8.3.2"
+      sources."@fluentui/foundation-legacy-8.2.6"
       sources."@fluentui/keyboard-key-0.4.0"
-      sources."@fluentui/merge-styles-8.5.0"
-      sources."@fluentui/react-8.62.3"
-      sources."@fluentui/react-focus-8.5.6"
-      sources."@fluentui/react-hooks-8.5.3"
+      sources."@fluentui/merge-styles-8.5.1"
+      sources."@fluentui/react-8.66.1"
+      sources."@fluentui/react-focus-8.5.7"
+      sources."@fluentui/react-hooks-8.5.4"
       sources."@fluentui/react-window-provider-2.2.0"
       sources."@fluentui/set-version-8.2.0"
-      sources."@fluentui/style-utilities-8.6.5"
-      sources."@fluentui/theme-2.6.4"
-      sources."@fluentui/utilities-8.8.1"
+      sources."@fluentui/style-utilities-8.6.6"
+      sources."@fluentui/theme-2.6.5"
+      sources."@fluentui/utilities-8.8.2"
       (sources."@gulp-sourcemaps/identity-map-2.0.1" // {
         dependencies = [
           sources."acorn-6.4.2"
@@ -90501,12 +91219,14 @@ in
       })
       (sources."@humanwhocodes/config-array-0.5.0" // {
         dependencies = [
+          sources."brace-expansion-1.1.11"
           sources."debug-4.3.4"
+          sources."minimatch-3.1.2"
           sources."ms-2.1.2"
         ];
       })
       sources."@humanwhocodes/object-schema-1.2.1"
-      sources."@microsoft/load-themed-styles-1.10.249"
+      sources."@microsoft/load-themed-styles-1.10.258"
       sources."@node-rs/crc32-1.5.0"
       sources."@node-rs/crc32-android-arm-eabi-1.5.0"
       sources."@node-rs/crc32-android-arm64-1.5.0"
@@ -90693,15 +91413,14 @@ in
       sources."base64id-2.0.0"
       sources."basic-auth-2.0.1"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."big-integer-1.6.51"
       sources."bignumber.js-9.0.0"
       sources."binary-extensions-1.13.1"
       sources."bindings-1.5.0"
       sources."block-stream-0.0.9"
       sources."body-parser-1.19.0"
-      sources."brace-expansion-1.1.11"
+      sources."brace-expansion-2.0.1"
       sources."braces-3.0.2"
-      sources."bson-4.6.2"
+      sources."bson-4.6.3"
       sources."buffer-5.7.1"
       sources."buffer-equal-1.0.0"
       sources."buffer-from-1.1.2"
@@ -90856,10 +91575,13 @@ in
       })
       sources."default-resolution-2.0.0"
       sources."defer-to-connect-1.1.3"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."define-property-2.0.2"
       (sources."del-6.0.0" // {
         dependencies = [
+          sources."brace-expansion-1.1.11"
+          sources."glob-7.2.0"
+          sources."minimatch-3.1.2"
           sources."rimraf-3.0.2"
         ];
       })
@@ -90906,10 +91628,10 @@ in
         ];
       })
       sources."engine.io-parser-5.0.3"
-      sources."enhanced-resolve-5.9.2"
+      sources."enhanced-resolve-5.9.3"
       sources."enquirer-2.3.6"
       sources."error-ex-1.3.2"
-      sources."es5-ext-0.10.59"
+      sources."es5-ext-0.10.61"
       sources."es6-iterator-2.0.3"
       sources."es6-symbol-3.1.3"
       sources."es6-weak-map-2.0.3"
@@ -90920,6 +91642,7 @@ in
         dependencies = [
           sources."ajv-6.12.6"
           sources."ansi-regex-5.0.1"
+          sources."brace-expansion-1.1.11"
           sources."debug-4.3.4"
           sources."escape-string-regexp-4.0.0"
           (sources."eslint-utils-2.1.0" // {
@@ -90930,6 +91653,7 @@ in
           sources."ignore-4.0.6"
           sources."js-yaml-3.14.1"
           sources."json-schema-traverse-0.4.1"
+          sources."minimatch-3.1.2"
           sources."ms-2.1.2"
           sources."strip-ansi-6.0.1"
           sources."strip-json-comments-3.1.1"
@@ -91032,7 +91756,10 @@ in
       sources."flagged-respawn-1.0.1"
       (sources."flat-cache-3.0.4" // {
         dependencies = [
+          sources."brace-expansion-1.1.11"
           sources."flatted-3.2.5"
+          sources."glob-7.2.0"
+          sources."minimatch-3.1.2"
           sources."rimraf-3.0.2"
         ];
       })
@@ -91072,13 +91799,16 @@ in
       sources."get-stream-4.1.0"
       sources."get-value-2.0.6"
       sources."getpass-0.1.7"
-      sources."glob-7.2.0"
+      sources."glob-8.0.1"
       sources."glob-parent-5.1.2"
       (sources."glob-stream-6.1.0" // {
         dependencies = [
+          sources."brace-expansion-1.1.11"
+          sources."glob-7.2.0"
           sources."glob-parent-3.1.0"
           sources."is-glob-3.1.0"
           sources."isarray-1.0.0"
+          sources."minimatch-3.1.2"
           sources."readable-stream-2.3.7"
           sources."string_decoder-1.1.1"
         ];
@@ -91090,7 +91820,7 @@ in
       sources."globby-11.1.0"
       sources."glogg-1.0.2"
       sources."got-9.6.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."gulp-4.0.2"
       (sources."gulp-cli-2.3.0" // {
         dependencies = [
@@ -91109,6 +91839,7 @@ in
           sources."ansi-regex-4.1.1"
           sources."ansi-styles-3.2.1"
           sources."astral-regex-1.0.0"
+          sources."brace-expansion-1.1.11"
           sources."chalk-2.4.2"
           sources."color-convert-1.9.3"
           sources."color-name-1.1.3"
@@ -91125,6 +91856,7 @@ in
           sources."espree-6.2.1"
           sources."file-entry-cache-5.0.1"
           sources."flat-cache-2.0.1"
+          sources."glob-7.2.0"
           sources."globals-12.4.0"
           sources."has-flag-3.0.0"
           sources."ignore-4.0.6"
@@ -91132,6 +91864,7 @@ in
           sources."js-yaml-3.14.1"
           sources."json-schema-traverse-0.4.1"
           sources."levn-0.3.0"
+          sources."minimatch-3.1.2"
           sources."minimist-1.2.6"
           sources."mkdirp-0.5.6"
           sources."ms-2.1.2"
@@ -91190,6 +91923,7 @@ in
       sources."has-1.0.3"
       sources."has-ansi-2.0.0"
       sources."has-flag-4.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-unicode-2.0.1"
       sources."has-value-1.0.0"
@@ -91212,7 +91946,12 @@ in
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
       sources."ignore-5.2.0"
-      sources."ignore-walk-3.0.4"
+      (sources."ignore-walk-3.0.4" // {
+        dependencies = [
+          sources."brace-expansion-1.1.11"
+          sources."minimatch-3.1.2"
+        ];
+      })
       sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
@@ -91231,14 +91970,14 @@ in
       sources."inversify-5.1.1"
       sources."invert-kv-1.0.0"
       sources."ip-1.1.5"
-      sources."ip-num-1.3.4"
+      sources."ip-num-1.4.0"
       sources."ipaddr.js-1.9.1"
       sources."is-absolute-1.0.0"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arrayish-0.2.1"
       sources."is-binary-path-1.0.1"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
       sources."is-dir-1.0.0"
@@ -91341,7 +92080,7 @@ in
       sources."mime-types-2.1.35"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
-      sources."minimatch-3.1.2"
+      sources."minimatch-5.0.1"
       sources."minimist-1.2.5"
       (sources."minipass-2.9.0" // {
         dependencies = [
@@ -91352,6 +92091,7 @@ in
       (sources."mirakurun-3.9.0-beta.26" // {
         dependencies = [
           sources."ajv-6.12.6"
+          sources."brace-expansion-1.1.11"
           sources."eventemitter3-4.0.7"
           (sources."express-openapi-8.0.0" // {
             dependencies = [
@@ -91359,7 +92099,9 @@ in
             ];
           })
           sources."fs-routes-8.0.0"
+          sources."glob-7.2.0"
           sources."json-schema-traverse-0.4.1"
+          sources."minimatch-3.1.2"
           (sources."openapi-default-setter-8.0.0" // {
             dependencies = [
               sources."openapi-types-8.0.0"
@@ -91402,7 +92144,7 @@ in
             ];
           })
           sources."openapi-types-7.2.3"
-          sources."swagger-ui-dist-4.9.1"
+          sources."swagger-ui-dist-4.10.3"
         ];
       })
       (sources."mixin-deep-1.3.2" // {
@@ -91411,7 +92153,7 @@ in
         ];
       })
       sources."mkdirp-1.0.4"
-      sources."mongodb-4.4.1"
+      sources."mongodb-4.5.0"
       sources."mongodb-connection-string-url-2.5.2"
       (sources."morgan-1.10.0" // {
         dependencies = [
@@ -91450,6 +92192,9 @@ in
       sources."node-addon-api-3.2.1"
       (sources."node-gyp-3.8.0" // {
         dependencies = [
+          sources."brace-expansion-1.1.11"
+          sources."glob-7.2.0"
+          sources."minimatch-3.1.2"
           sources."minimist-1.2.6"
           sources."mkdirp-0.5.6"
           sources."nopt-3.0.6"
@@ -91457,7 +92202,7 @@ in
           sources."tar-2.2.2"
         ];
       })
-      sources."node-gyp-build-4.3.0"
+      sources."node-gyp-build-4.4.0"
       (sources."node-pre-gyp-0.11.0" // {
         dependencies = [
           sources."minimist-1.2.6"
@@ -91680,7 +92425,13 @@ in
       sources."ret-0.1.15"
       sources."reusify-1.0.4"
       sources."rfdc-1.3.0"
-      sources."rimraf-2.7.1"
+      (sources."rimraf-2.7.1" // {
+        dependencies = [
+          sources."brace-expansion-1.1.11"
+          sources."glob-7.2.0"
+          sources."minimatch-3.1.2"
+        ];
+      })
       sources."run-async-2.4.1"
       sources."run-parallel-1.2.0"
       (sources."rxjs-6.6.7" // {
@@ -91694,7 +92445,7 @@ in
       sources."saslprep-1.0.3"
       sources."sax-1.2.4"
       sources."scheduler-0.20.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."semver-greatest-satisfied-range-1.1.0"
       (sources."send-0.17.1" // {
         dependencies = [
@@ -91893,8 +92644,11 @@ in
       sources."typedarray-0.0.6"
       (sources."typeorm-0.2.38" // {
         dependencies = [
+          sources."brace-expansion-1.1.11"
           sources."buffer-6.0.3"
           sources."debug-4.3.4"
+          sources."glob-7.2.0"
+          sources."minimatch-3.1.2"
           sources."ms-2.1.2"
         ];
       })
@@ -91989,7 +92743,7 @@ in
           sources."supports-color-2.0.0"
         ];
       })
-      (sources."yargs-17.4.0" // {
+      (sources."yargs-17.4.1" // {
         dependencies = [
           sources."ansi-regex-5.0.1"
           sources."is-fullwidth-code-point-3.0.0"
@@ -92022,7 +92776,7 @@ in
       sources."@achrinza/node-ipc-9.2.2"
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      sources."@babel/highlight-7.16.10"
+      sources."@babel/highlight-7.17.9"
       (sources."@eslint/eslintrc-0.4.3" // {
         dependencies = [
           sources."acorn-7.4.1"
@@ -92072,7 +92826,7 @@ in
       sources."@types/mime-1.3.2"
       sources."@types/minimatch-3.0.5"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/parse-json-4.0.0"
       sources."@types/q-1.5.5"
@@ -92083,7 +92837,7 @@ in
       sources."@types/socket.io-client-1.4.36"
       sources."@types/source-list-map-0.1.2"
       sources."@types/tapable-1.0.8"
-      (sources."@types/uglify-js-3.13.1" // {
+      (sources."@types/uglify-js-3.13.2" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -92094,7 +92848,7 @@ in
         ];
       })
       sources."@types/webpack-dev-server-3.11.6"
-      sources."@types/webpack-env-1.16.3"
+      sources."@types/webpack-env-1.16.4"
       (sources."@types/webpack-sources-3.2.0" // {
         dependencies = [
           sources."source-map-0.7.3"
@@ -92279,7 +93033,7 @@ in
       sources."assert-plus-1.0.0"
       sources."assign-symbols-1.0.0"
       sources."astral-regex-2.0.0"
-      sources."async-2.6.3"
+      sources."async-2.6.4"
       sources."async-each-1.0.3"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
@@ -92387,7 +93141,7 @@ in
       sources."camel-case-3.0.0"
       sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001320"
+      sources."caniuse-lite-1.0.30001332"
       sources."case-sensitive-paths-webpack-plugin-2.4.0"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
@@ -92577,7 +93331,7 @@ in
         ];
       })
       sources."defaults-1.0.3"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."define-property-2.0.2"
       (sources."del-4.1.1" // {
         dependencies = [
@@ -92608,14 +93362,14 @@ in
       sources."dom-converter-0.2.0"
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.2.0"
+          sources."domelementtype-2.3.0"
         ];
       })
       sources."domain-browser-1.2.0"
       sources."domelementtype-1.3.1"
       (sources."domhandler-4.3.1" // {
         dependencies = [
-          sources."domelementtype-2.2.0"
+          sources."domelementtype-2.3.0"
         ];
       })
       sources."domutils-1.7.0"
@@ -92628,7 +93382,7 @@ in
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.4.96"
+      sources."electron-to-chromium-1.4.114"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -92654,7 +93408,7 @@ in
       sources."errno-0.1.8"
       sources."error-ex-1.3.2"
       sources."error-stack-parser-2.0.7"
-      sources."es-abstract-1.19.1"
+      sources."es-abstract-1.19.5"
       sources."es-to-primitive-1.2.1"
       sources."es6-promise-4.2.8"
       sources."escalade-3.1.1"
@@ -92841,6 +93595,7 @@ in
       sources."fsevents-2.3.2"
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
+      sources."functions-have-names-1.2.3"
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.1"
       sources."get-stdin-6.0.0"
@@ -92857,7 +93612,7 @@ in
         ];
       })
       sources."globby-11.1.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."gzip-size-5.1.1"
       sources."handle-thing-2.0.1"
       sources."har-schema-2.0.0"
@@ -92868,9 +93623,10 @@ in
           sources."ansi-regex-2.1.1"
         ];
       })
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
       sources."has-cors-1.1.0"
       sources."has-flag-3.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."has-value-1.0.0"
@@ -92918,8 +93674,8 @@ in
       })
       (sources."htmlparser2-6.1.0" // {
         dependencies = [
-          sources."dom-serializer-1.3.2"
-          sources."domelementtype-2.2.0"
+          sources."dom-serializer-1.4.1"
+          sources."domelementtype-2.3.0"
           sources."domutils-2.8.0"
         ];
       })
@@ -92990,7 +93746,7 @@ in
       sources."is-callable-1.2.4"
       sources."is-ci-1.2.1"
       sources."is-color-stop-1.1.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.5"
       sources."is-descriptor-1.0.2"
@@ -93002,7 +93758,7 @@ in
       sources."is-glob-4.0.3"
       sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-obj-2.0.0"
       sources."is-path-cwd-2.2.0"
       sources."is-path-in-cwd-2.1.0"
@@ -93011,7 +93767,7 @@ in
       sources."is-plain-object-2.0.4"
       sources."is-regex-1.1.4"
       sources."is-resolvable-1.1.0"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-stream-1.1.0"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
@@ -93136,7 +93892,7 @@ in
           sources."punycode-1.4.1"
         ];
       })
-      sources."node-releases-2.0.2"
+      sources."node-releases-2.0.3"
       (sources."normalize-package-data-2.5.0" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -93358,7 +94114,7 @@ in
           sources."postcss-value-parser-3.3.1"
         ];
       })
-      sources."postcss-selector-parser-6.0.9"
+      sources."postcss-selector-parser-6.0.10"
       (sources."postcss-svgo-4.0.3" // {
         dependencies = [
           sources."postcss-value-parser-3.3.1"
@@ -93412,17 +94168,17 @@ in
       sources."rechoir-0.6.2"
       sources."reflect-metadata-0.1.13"
       sources."regex-not-1.0.2"
-      sources."regexp.prototype.flags-1.4.1"
+      sources."regexp.prototype.flags-1.4.3"
       sources."regexpp-3.2.0"
       sources."relateurl-0.2.7"
       sources."remove-trailing-separator-1.1.0"
       (sources."renderkid-2.0.7" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
-          sources."css-select-4.2.1"
-          sources."css-what-5.1.0"
-          sources."dom-serializer-1.3.2"
-          sources."domelementtype-2.2.0"
+          sources."css-select-4.3.0"
+          sources."css-what-6.1.0"
+          sources."dom-serializer-1.4.1"
+          sources."domelementtype-2.3.0"
           sources."domutils-2.8.0"
           sources."nth-check-2.0.1"
           sources."strip-ansi-3.0.1"
@@ -93472,7 +94228,7 @@ in
       sources."schema-utils-1.0.0"
       sources."select-hose-2.0.0"
       sources."selfsigned-1.10.14"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       (sources."send-0.17.2" // {
         dependencies = [
           (sources."debug-2.6.9" // {
@@ -93991,10 +94747,10 @@ in
   eslint = nodeEnv.buildNodePackage {
     name = "eslint";
     packageName = "eslint";
-    version = "8.12.0";
+    version = "8.13.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz";
-      sha512 = "it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==";
+      url = "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz";
+      sha512 = "D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==";
     };
     dependencies = [
       sources."@eslint/eslintrc-1.2.1"
@@ -94095,80 +94851,50 @@ in
   eslint_d = nodeEnv.buildNodePackage {
     name = "eslint_d";
     packageName = "eslint_d";
-    version = "11.1.1";
+    version = "12.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint_d/-/eslint_d-11.1.1.tgz";
-      sha512 = "PaNWblwIa10KZUt9EObGBzrsaxB+CPtk5d99sTveXmAtQrPSmrntKpWqxN/Mwot0qnI5gCllzkPZi6tO710KUA==";
+      url = "https://registry.npmjs.org/eslint_d/-/eslint_d-12.0.0.tgz";
+      sha512 = "jSueemgxyOsxVLOWkJuBbJfQB1vt9rjCqAbht51W/2982VcDxQ3ywjUaEvWTF+oTFWe2M1ER+d54kFgoZCGevg==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.12.11"
-      sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
-        dependencies = [
-          sources."chalk-2.4.2"
-          sources."escape-string-regexp-1.0.5"
-          sources."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
-        ];
-      })
-      sources."@eslint/eslintrc-0.4.3"
-      sources."@humanwhocodes/config-array-0.5.0"
+      sources."@eslint/eslintrc-1.2.1"
+      sources."@humanwhocodes/config-array-0.9.5"
       sources."@humanwhocodes/object-schema-1.2.1"
-      sources."acorn-7.4.1"
+      sources."acorn-8.7.0"
       sources."acorn-jsx-5.3.2"
       sources."ajv-6.12.6"
-      sources."ansi-colors-4.1.1"
       sources."ansi-regex-5.0.1"
-      sources."ansi-styles-3.2.1"
-      sources."argparse-1.0.10"
-      sources."astral-regex-2.0.0"
+      sources."ansi-styles-4.3.0"
+      sources."argparse-2.0.1"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."callsites-3.1.0"
       (sources."chalk-4.1.2" // {
         dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
           sources."supports-color-7.2.0"
         ];
       })
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
       sources."concat-map-0.0.1"
-      sources."core_d-3.2.0"
+      sources."core_d-4.0.0"
       sources."cross-spawn-7.0.3"
       sources."debug-4.3.4"
       sources."deep-is-0.1.4"
       sources."doctrine-3.0.0"
-      sources."emoji-regex-8.0.0"
-      sources."enquirer-2.3.6"
       sources."escape-string-regexp-4.0.0"
-      sources."eslint-7.32.0"
-      sources."eslint-scope-5.1.1"
-      (sources."eslint-utils-2.1.0" // {
-        dependencies = [
-          sources."eslint-visitor-keys-1.3.0"
-        ];
-      })
-      sources."eslint-visitor-keys-2.1.0"
-      (sources."espree-7.3.1" // {
-        dependencies = [
-          sources."eslint-visitor-keys-1.3.0"
-        ];
-      })
-      sources."esprima-4.0.1"
-      (sources."esquery-1.4.0" // {
-        dependencies = [
-          sources."estraverse-5.3.0"
-        ];
-      })
-      (sources."esrecurse-4.3.0" // {
+      sources."eslint-8.13.0"
+      sources."eslint-scope-7.1.1"
+      (sources."eslint-utils-3.0.0" // {
         dependencies = [
-          sources."estraverse-5.3.0"
+          sources."eslint-visitor-keys-2.1.0"
         ];
       })
-      sources."estraverse-4.3.0"
+      sources."eslint-visitor-keys-3.3.0"
+      sources."espree-9.3.1"
+      sources."esquery-1.4.0"
+      sources."esrecurse-4.3.0"
+      sources."estraverse-5.3.0"
       sources."esutils-2.0.3"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
@@ -94179,26 +94905,22 @@ in
       sources."fs.realpath-1.0.0"
       sources."functional-red-black-tree-1.0.1"
       sources."glob-7.2.0"
-      sources."glob-parent-5.1.2"
+      sources."glob-parent-6.0.2"
       sources."globals-13.13.0"
       sources."has-flag-4.0.0"
-      sources."ignore-4.0.6"
+      sources."ignore-5.2.0"
       sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
       sources."isexe-2.0.0"
-      sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.1"
+      sources."js-yaml-4.1.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."levn-0.4.1"
       sources."lodash.merge-4.6.2"
-      sources."lodash.truncate-4.4.2"
-      sources."lru-cache-6.0.0"
       sources."minimatch-3.1.2"
       sources."ms-2.1.2"
       sources."nanolru-1.0.0"
@@ -94209,33 +94931,15 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."prelude-ls-1.2.1"
-      sources."progress-2.0.3"
       sources."punycode-2.1.1"
       sources."regexpp-3.2.0"
-      sources."require-from-string-2.0.2"
       sources."resolve-from-4.0.0"
       sources."rimraf-3.0.2"
-      sources."semver-7.3.5"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      (sources."slice-ansi-4.0.0" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-        ];
-      })
-      sources."sprintf-js-1.0.3"
-      sources."string-width-4.2.3"
       sources."strip-ansi-6.0.1"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-8.1.1"
-      (sources."table-6.8.0" // {
-        dependencies = [
-          sources."ajv-8.11.0"
-          sources."json-schema-traverse-1.0.0"
-        ];
-      })
       sources."text-table-0.2.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.20.2"
@@ -94244,7 +94948,6 @@ in
       sources."which-2.0.2"
       sources."word-wrap-1.2.3"
       sources."wrappy-1.0.2"
-      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -94276,10 +94979,10 @@ in
   expo-cli = nodeEnv.buildNodePackage {
     name = "expo-cli";
     packageName = "expo-cli";
-    version = "5.3.0";
+    version = "5.3.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/expo-cli/-/expo-cli-5.3.0.tgz";
-      sha512 = "Oi5E+C3AtAHOwqBbL3GL1eQErfDnZGmIqbMjlDGp8WtELN0f+fdfWA4ZldCOSjnqsYg7hYQFgrZXjIXbjYsC9Q==";
+      url = "https://registry.npmjs.org/expo-cli/-/expo-cli-5.3.2.tgz";
+      sha512 = "kUCIPYW1bHs+Jj8MvEkr1gp4ssN4kONUH3BEnEotW7Emoc9N7st7J6iNcEiB7obcPF532VSXzvYgcyRR8pJ8NA==";
     };
     dependencies = [
       sources."@babel/code-frame-7.10.4"
@@ -94289,46 +94992,45 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."@babel/generator-7.17.7"
+      sources."@babel/generator-7.17.9"
       sources."@babel/helper-environment-visitor-7.16.7"
-      sources."@babel/helper-function-name-7.16.7"
-      sources."@babel/helper-get-function-arity-7.16.7"
+      sources."@babel/helper-function-name-7.17.9"
       sources."@babel/helper-hoist-variables-7.16.7"
       sources."@babel/helper-module-imports-7.16.7"
       sources."@babel/helper-module-transforms-7.17.7"
       sources."@babel/helper-simple-access-7.17.7"
       sources."@babel/helper-split-export-declaration-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      sources."@babel/helpers-7.17.8"
-      (sources."@babel/highlight-7.16.10" // {
+      sources."@babel/helpers-7.17.9"
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.17.8"
+      sources."@babel/parser-7.17.9"
       sources."@babel/runtime-7.9.0"
       (sources."@babel/template-7.16.7" // {
         dependencies = [
           sources."@babel/code-frame-7.16.7"
         ];
       })
-      (sources."@babel/traverse-7.17.3" // {
+      (sources."@babel/traverse-7.17.9" // {
         dependencies = [
           sources."@babel/code-frame-7.16.7"
         ];
       })
       sources."@babel/types-7.17.0"
-      sources."@expo/apple-utils-0.0.0-alpha.26"
+      sources."@expo/apple-utils-0.0.0-alpha.31"
       sources."@expo/bunyan-4.0.0"
-      sources."@expo/config-6.0.19"
-      (sources."@expo/config-plugins-4.1.0" // {
+      sources."@expo/config-6.0.20"
+      (sources."@expo/config-plugins-4.1.1" // {
         dependencies = [
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
         ];
       })
       sources."@expo/config-types-44.0.0"
-      sources."@expo/dev-server-0.1.106"
-      sources."@expo/dev-tools-0.13.146"
+      sources."@expo/dev-server-0.1.107"
+      sources."@expo/dev-tools-0.13.148"
       (sources."@expo/devcert-1.0.0" // {
         dependencies = [
           sources."debug-3.2.7"
@@ -94336,34 +95038,34 @@ in
           sources."sudo-prompt-8.2.5"
         ];
       })
-      (sources."@expo/image-utils-0.3.18" // {
+      (sources."@expo/image-utils-0.3.19" // {
         dependencies = [
           sources."temp-dir-1.0.0"
           sources."tempy-0.3.0"
           sources."type-fest-0.3.1"
         ];
       })
-      sources."@expo/json-file-8.2.34"
-      sources."@expo/metro-config-0.3.12"
-      sources."@expo/osascript-2.0.31"
-      (sources."@expo/package-manager-0.0.50" // {
+      sources."@expo/json-file-8.2.35"
+      sources."@expo/metro-config-0.3.13"
+      sources."@expo/osascript-2.0.32"
+      (sources."@expo/package-manager-0.0.51" // {
         dependencies = [
           sources."npm-package-arg-7.0.0"
           sources."rimraf-3.0.2"
           sources."semver-5.7.1"
         ];
       })
-      (sources."@expo/plist-0.0.17" // {
+      (sources."@expo/plist-0.0.18" // {
         dependencies = [
           sources."xmlbuilder-14.0.0"
         ];
       })
-      sources."@expo/prebuild-config-3.1.0"
+      sources."@expo/prebuild-config-3.1.1"
       sources."@expo/rudder-sdk-node-1.1.1"
-      sources."@expo/schemer-1.3.33"
+      sources."@expo/schemer-1.4.0"
       sources."@expo/sdk-runtime-versions-1.0.0"
       sources."@expo/spawn-async-1.5.0"
-      (sources."@expo/webpack-config-0.16.19" // {
+      (sources."@expo/webpack-config-0.16.20" // {
         dependencies = [
           sources."is-wsl-2.2.0"
         ];
@@ -94382,7 +95084,7 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       (sources."@npmcli/fs-1.1.1" // {
         dependencies = [
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
         ];
       })
       (sources."@npmcli/move-file-1.1.2" // {
@@ -94418,16 +95120,17 @@ in
       sources."@types/istanbul-lib-coverage-2.0.4"
       sources."@types/istanbul-lib-report-3.0.0"
       sources."@types/istanbul-reports-3.0.1"
+      sources."@types/json-buffer-3.0.0"
       sources."@types/json-schema-7.0.11"
       sources."@types/keyv-3.1.4"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/q-1.5.5"
       sources."@types/responselike-1.0.0"
       sources."@types/retry-0.12.1"
       sources."@types/source-list-map-0.1.2"
       sources."@types/tapable-1.0.8"
-      (sources."@types/uglify-js-3.13.1" // {
+      (sources."@types/uglify-js-3.13.2" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -94626,7 +95329,7 @@ in
       })
       sources."camelcase-6.3.0"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001320"
+      sources."caniuse-lite-1.0.30001332"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -94677,7 +95380,7 @@ in
       sources."cli-boxes-2.2.1"
       sources."cli-cursor-2.1.0"
       sources."cli-spinners-2.6.1"
-      sources."cli-table3-0.6.1"
+      sources."cli-table3-0.6.2"
       (sources."cliui-5.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.1"
@@ -94701,13 +95404,13 @@ in
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."color-string-1.9.0"
-      sources."colors-1.4.0"
       sources."combined-stream-1.0.8"
       sources."command-exists-1.2.9"
       sources."commander-2.17.1"
       sources."commondir-1.0.1"
       sources."component-emitter-1.3.0"
       sources."component-type-1.2.1"
+      sources."compress-brotli-1.3.6"
       sources."compressible-2.0.18"
       (sources."compression-1.7.4" // {
         dependencies = [
@@ -94786,7 +95489,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      (sources."css-select-4.2.1" // {
+      (sources."css-select-4.3.0" // {
         dependencies = [
           sources."domhandler-4.3.1"
         ];
@@ -94797,7 +95500,7 @@ in
           sources."source-map-0.6.1"
         ];
       })
-      sources."css-what-5.1.0"
+      sources."css-what-6.1.0"
       sources."cssesc-3.0.0"
       sources."cssnano-4.1.11"
       sources."cssnano-preset-default-4.0.8"
@@ -94831,7 +95534,7 @@ in
       sources."defaults-1.0.3"
       sources."defer-to-connect-2.0.1"
       sources."define-lazy-prop-2.0.0"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."define-property-2.0.2"
       (sources."del-6.0.0" // {
         dependencies = [
@@ -94860,13 +95563,13 @@ in
       sources."dns-packet-1.3.4"
       sources."dns-txt-2.0.2"
       sources."dom-converter-0.2.0"
-      (sources."dom-serializer-1.3.2" // {
+      (sources."dom-serializer-1.4.1" // {
         dependencies = [
           sources."domhandler-4.3.1"
         ];
       })
       sources."domain-browser-1.2.0"
-      sources."domelementtype-2.2.0"
+      sources."domelementtype-2.3.0"
       sources."domhandler-3.3.0"
       sources."domino-2.1.6"
       (sources."domutils-2.8.0" // {
@@ -94884,7 +95587,7 @@ in
       sources."duplexer3-0.1.4"
       sources."duplexify-3.7.1"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.96"
+      sources."electron-to-chromium-1.4.114"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -94905,7 +95608,7 @@ in
       sources."errno-0.1.8"
       sources."error-ex-1.3.2"
       sources."errorhandler-1.5.1"
-      sources."es-abstract-1.19.1"
+      sources."es-abstract-1.19.5"
       sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.1"
       sources."escape-html-1.0.3"
@@ -94956,7 +95659,7 @@ in
           sources."fs-extra-9.1.0"
         ];
       })
-      (sources."expo-pwa-0.0.114" // {
+      (sources."expo-pwa-0.0.115" // {
         dependencies = [
           sources."commander-2.20.0"
         ];
@@ -95068,6 +95771,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
       sources."function-bind-1.1.1"
+      sources."functions-have-names-1.2.3"
       sources."gensync-1.0.0-beta.2"
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.1"
@@ -95083,7 +95787,7 @@ in
       sources."globals-11.12.0"
       sources."globby-11.1.0"
       sources."got-11.8.3"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."graphql-0.13.2"
       (sources."graphql-tools-3.0.0" // {
         dependencies = [
@@ -95093,8 +95797,9 @@ in
       sources."gzip-size-5.1.1"
       sources."handle-thing-2.0.1"
       sources."has-1.0.3"
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
       sources."has-flag-3.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."has-value-1.0.0"
@@ -95200,7 +95905,7 @@ in
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.4"
       sources."is-color-stop-1.1.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.5"
       sources."is-descriptor-1.0.2"
@@ -95218,7 +95923,7 @@ in
       })
       sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-obj-2.0.0"
       sources."is-path-cwd-2.2.0"
       (sources."is-path-in-cwd-2.1.0" // {
@@ -95255,7 +95960,7 @@ in
       sources."is-regex-1.1.4"
       sources."is-resolvable-1.1.0"
       sources."is-root-2.1.0"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-stream-2.0.1"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
@@ -95297,7 +96002,7 @@ in
       sources."jsonfile-6.1.0"
       sources."jsonify-0.0.0"
       sources."keychain-1.3.0"
-      sources."keyv-4.1.1"
+      sources."keyv-4.2.2"
       sources."killable-1.0.1"
       sources."kind-of-6.0.3"
       sources."kleur-3.0.3"
@@ -95442,7 +96147,7 @@ in
           sources."punycode-1.4.1"
         ];
       })
-      sources."node-releases-2.0.2"
+      sources."node-releases-2.0.3"
       sources."normalize-path-3.0.0"
       sources."normalize-url-6.1.0"
       (sources."npm-package-arg-6.1.0" // {
@@ -95603,7 +96308,7 @@ in
       sources."pnp-webpack-plugin-1.7.0"
       (sources."portfinder-1.0.28" // {
         dependencies = [
-          sources."async-2.6.3"
+          sources."async-2.6.4"
           sources."debug-3.2.7"
         ];
       })
@@ -95716,7 +96421,7 @@ in
         ];
       })
       sources."postcss-safe-parser-4.0.2"
-      sources."postcss-selector-parser-6.0.9"
+      sources."postcss-selector-parser-6.0.10"
       (sources."postcss-svgo-4.0.3" // {
         dependencies = [
           sources."postcss-value-parser-3.3.1"
@@ -95807,7 +96512,7 @@ in
           sources."which-2.0.2"
         ];
       })
-      sources."react-error-overlay-6.0.10"
+      sources."react-error-overlay-6.0.11"
       sources."react-is-17.0.2"
       sources."read-chunk-3.2.0"
       sources."read-last-lines-1.6.0"
@@ -95820,7 +96525,7 @@ in
       })
       sources."regenerator-runtime-0.13.9"
       sources."regex-not-1.0.2"
-      sources."regexp.prototype.flags-1.4.1"
+      sources."regexp.prototype.flags-1.4.3"
       sources."registry-auth-token-3.3.2"
       sources."registry-url-3.1.0"
       sources."relateurl-0.2.7"
@@ -95924,9 +96629,9 @@ in
       sources."shell-quote-1.6.1"
       sources."side-channel-1.0.4"
       sources."signal-exit-3.0.7"
-      (sources."simple-plist-1.3.0" // {
+      (sources."simple-plist-1.3.1" // {
         dependencies = [
-          sources."bplist-parser-0.3.0"
+          sources."bplist-parser-0.3.1"
         ];
       })
       (sources."simple-swizzle-0.2.2" // {
@@ -96053,7 +96758,7 @@ in
           sources."ws-3.3.3"
         ];
       })
-      (sources."sucrase-3.20.3" // {
+      (sources."sucrase-3.21.0" // {
         dependencies = [
           sources."commander-4.1.1"
         ];
@@ -96074,7 +96779,7 @@ in
           sources."css-what-3.4.2"
           (sources."dom-serializer-0.2.2" // {
             dependencies = [
-              sources."domelementtype-2.2.0"
+              sources."domelementtype-2.3.0"
             ];
           })
           sources."domelementtype-1.3.1"
@@ -96375,7 +97080,7 @@ in
           sources."uuid-7.0.3"
         ];
       })
-      (sources."xdl-59.2.30" // {
+      (sources."xdl-59.2.32" // {
         dependencies = [
           sources."bplist-parser-0.3.1"
           sources."chownr-1.1.4"
@@ -96442,13 +97147,12 @@ in
       sources."@ampproject/remapping-2.1.2"
       sources."@babel/code-frame-7.16.7"
       sources."@babel/compat-data-7.17.7"
-      sources."@babel/core-7.17.8"
-      sources."@babel/generator-7.17.7"
+      sources."@babel/core-7.17.9"
+      sources."@babel/generator-7.17.9"
       sources."@babel/helper-annotate-as-pure-7.16.7"
       sources."@babel/helper-compilation-targets-7.17.7"
       sources."@babel/helper-environment-visitor-7.16.7"
-      sources."@babel/helper-function-name-7.16.7"
-      sources."@babel/helper-get-function-arity-7.16.7"
+      sources."@babel/helper-function-name-7.17.9"
       sources."@babel/helper-hoist-variables-7.16.7"
       sources."@babel/helper-module-imports-7.16.7"
       sources."@babel/helper-module-transforms-7.17.7"
@@ -96457,9 +97161,9 @@ in
       sources."@babel/helper-split-export-declaration-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
       sources."@babel/helper-validator-option-7.16.7"
-      sources."@babel/helpers-7.17.8"
-      sources."@babel/highlight-7.16.10"
-      sources."@babel/parser-7.17.8"
+      sources."@babel/helpers-7.17.9"
+      sources."@babel/highlight-7.17.9"
+      sources."@babel/parser-7.17.9"
       sources."@babel/plugin-proposal-object-rest-spread-7.17.3"
       sources."@babel/plugin-syntax-jsx-7.16.7"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
@@ -96467,15 +97171,15 @@ in
       sources."@babel/plugin-transform-parameters-7.16.7"
       sources."@babel/plugin-transform-react-jsx-7.17.3"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.17.3"
+      sources."@babel/traverse-7.17.9"
       sources."@babel/types-7.17.0"
       sources."@jridgewell/resolve-uri-3.0.5"
       sources."@jridgewell/sourcemap-codec-1.4.11"
-      sources."@jridgewell/trace-mapping-0.3.4"
+      sources."@jridgewell/trace-mapping-0.3.8"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/normalize-package-data-2.4.1"
-      sources."@types/yauzl-2.9.2"
+      sources."@types/yauzl-2.10.0"
       sources."@types/yoga-layout-1.9.2"
       sources."agent-base-6.0.2"
       (sources."ansi-escapes-4.3.2" // {
@@ -96500,7 +97204,7 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001320"
+      sources."caniuse-lite-1.0.30001332"
       sources."chalk-2.4.2"
       sources."chownr-1.1.4"
       sources."ci-info-2.0.0"
@@ -96524,8 +97228,8 @@ in
         ];
       })
       sources."delay-5.0.0"
-      sources."devtools-protocol-0.0.969999"
-      sources."electron-to-chromium-1.4.96"
+      sources."devtools-protocol-0.0.981744"
+      sources."electron-to-chromium-1.4.114"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."error-ex-1.3.2"
@@ -96565,7 +97269,7 @@ in
       sources."ink-spinner-4.0.3"
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-plain-obj-1.1.0"
       sources."js-tokens-4.0.0"
@@ -96592,10 +97296,10 @@ in
       sources."mkdirp-classic-0.5.3"
       sources."ms-2.1.2"
       sources."node-fetch-2.6.7"
-      sources."node-releases-2.0.2"
+      sources."node-releases-2.0.3"
       (sources."normalize-package-data-3.0.3" // {
         dependencies = [
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
         ];
       })
       sources."object-assign-4.1.1"
@@ -96615,15 +97319,14 @@ in
       sources."progress-2.0.3"
       sources."proxy-from-env-1.1.0"
       sources."pump-3.0.0"
-      (sources."puppeteer-13.5.1" // {
+      (sources."puppeteer-13.6.0" // {
         dependencies = [
-          sources."debug-4.3.3"
           sources."ws-8.5.0"
         ];
       })
       sources."quick-lru-4.0.1"
       sources."react-17.0.2"
-      sources."react-devtools-core-4.24.2"
+      sources."react-devtools-core-4.24.4"
       sources."react-reconciler-0.26.2"
       (sources."read-pkg-5.2.0" // {
         dependencies = [
@@ -96717,10 +97420,10 @@ in
   fauna-shell = nodeEnv.buildNodePackage {
     name = "fauna-shell";
     packageName = "fauna-shell";
-    version = "0.14.0";
+    version = "0.15.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/fauna-shell/-/fauna-shell-0.14.0.tgz";
-      sha512 = "BkerCVGNYE81YUaXK1N4Zv9Sppa1KqfdaqDF03o+B1fnDrQLeCftN+8j8P/z9iFH8ZDrDR9E1qgWNA5NvjHbAw==";
+      url = "https://registry.npmjs.org/fauna-shell/-/fauna-shell-0.15.0.tgz";
+      sha512 = "/1EUu9Z5ICqSOwegsl0aWI1e3yvfr0/HEw8ns9RLYmROKqihO0IaeWkcf0vqayjp7vp6gl9SoJF8yiX1soYpvA==";
     };
     dependencies = [
       (sources."@heroku-cli/color-1.1.14" // {
@@ -96854,6 +97557,7 @@ in
           sources."semver-5.7.1"
         ];
       })
+      sources."csv-parse-5.0.4"
       sources."csv-stream-0.2.0"
       sources."dashdash-1.14.1"
       sources."debug-4.3.4"
@@ -96873,6 +97577,7 @@ in
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       sources."execa-0.10.0"
+      sources."exponential-backoff-3.1.0"
       sources."extend-3.0.2"
       sources."external-editor-3.1.0"
       sources."extract-stack-1.0.0"
@@ -96882,7 +97587,7 @@ in
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
       sources."fastq-1.13.0"
-      sources."faunadb-4.5.2"
+      sources."faunadb-4.5.4"
       (sources."figures-3.2.0" // {
         dependencies = [
           sources."escape-string-regexp-1.0.5"
@@ -96899,7 +97604,7 @@ in
       sources."glob-parent-5.1.2"
       sources."globby-11.1.0"
       sources."got-8.3.2"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-flag-3.0.0"
@@ -96973,7 +97678,7 @@ in
       sources."mime-types-2.1.35"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
       (sources."netrc-parser-3.1.6" // {
@@ -97006,13 +97711,14 @@ in
       sources."pify-3.0.0"
       sources."prelude-ls-1.1.2"
       sources."prepend-http-2.0.0"
-      sources."prettier-2.6.1"
+      sources."prettier-2.6.2"
       sources."process-nextick-args-2.0.1"
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
       sources."qs-6.5.3"
       sources."query-string-5.1.1"
       sources."queue-microtask-1.2.3"
+      sources."rate-limiter-flexible-2.3.6"
       (sources."readable-stream-2.3.7" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
@@ -97030,7 +97736,7 @@ in
       sources."rxjs-7.5.5"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."signal-exit-3.0.7"
@@ -97101,10 +97807,10 @@ in
   firebase-tools = nodeEnv.buildNodePackage {
     name = "firebase-tools";
     packageName = "firebase-tools";
-    version = "10.5.0";
+    version = "10.7.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/firebase-tools/-/firebase-tools-10.5.0.tgz";
-      sha512 = "sl4ycYfKsliII500HuqgEOWeB3OXi0twDDC/xPv1Eiw8FFYoTJwHm2w4YWUhTtDq4tSrHNCmdBza9LP+wvelnA==";
+      url = "https://registry.npmjs.org/firebase-tools/-/firebase-tools-10.7.0.tgz";
+      sha512 = "yCrYNvfL3IbAGgsRsYsO/cqqdabEn4ujnEq1vEgUGvPadStvUrU51/pdLAAI4cFQ4HbKCULKiVXqz52JZOJT2A==";
     };
     dependencies = [
       (sources."@apidevtools/json-schema-ref-parser-9.0.9" // {
@@ -97125,7 +97831,7 @@ in
       sources."@jsdevtools/ono-7.1.3"
       (sources."@npmcli/fs-1.1.1" // {
         dependencies = [
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
         ];
       })
       (sources."@npmcli/move-file-1.1.2" // {
@@ -97151,14 +97857,18 @@ in
       sources."@types/duplexify-3.6.1"
       sources."@types/json-schema-7.0.11"
       sources."@types/long-4.0.1"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."abbrev-1.1.1"
       sources."abort-controller-3.0.0"
       sources."accepts-1.3.8"
       sources."acorn-8.7.0"
       sources."acorn-walk-8.2.0"
       sources."agent-base-6.0.2"
-      sources."agentkeepalive-4.2.1"
+      (sources."agentkeepalive-4.2.1" // {
+        dependencies = [
+          sources."depd-1.1.2"
+        ];
+      })
       sources."aggregate-error-3.1.0"
       sources."ajv-6.12.6"
       (sources."ajv-formats-2.1.1" // {
@@ -97174,7 +97884,7 @@ in
       sources."ansicolors-0.3.2"
       sources."anymatch-3.1.2"
       sources."aproba-2.0.0"
-      sources."archiver-5.3.0"
+      sources."archiver-5.3.1"
       (sources."archiver-utils-2.1.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
@@ -97210,7 +97920,7 @@ in
       sources."bl-4.1.0"
       sources."blakejs-1.2.1"
       sources."bluebird-3.4.7"
-      (sources."body-parser-1.19.2" // {
+      (sources."body-parser-1.20.0" // {
         dependencies = [
           sources."debug-2.6.9"
           sources."ms-2.0.0"
@@ -97241,6 +97951,7 @@ in
           sources."lowercase-keys-2.0.0"
         ];
       })
+      sources."call-bind-1.0.2"
       sources."call-me-maybe-1.0.1"
       sources."camelcase-5.3.1"
       sources."cardinal-2.1.1"
@@ -97306,7 +98017,7 @@ in
       sources."cookie-signature-1.0.6"
       sources."core-util-is-1.0.3"
       sources."cors-2.8.5"
-      sources."crc-32-1.2.1"
+      sources."crc-32-1.2.2"
       sources."crc32-stream-4.0.2"
       (sources."cross-env-5.2.1" // {
         dependencies = [
@@ -97336,8 +98047,8 @@ in
       sources."degenerator-3.0.2"
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
-      sources."depd-1.1.2"
-      sources."destroy-1.0.4"
+      sources."depd-2.0.0"
+      sources."destroy-1.2.0"
       sources."dot-prop-5.3.0"
       sources."dotenv-6.2.0"
       (sources."duplexer2-0.1.4" // {
@@ -97363,7 +98074,7 @@ in
       sources."end-of-stream-1.4.4"
       sources."env-paths-2.2.1"
       sources."err-code-2.0.3"
-      sources."es5-ext-0.10.59"
+      sources."es5-ext-0.10.61"
       sources."es6-iterator-2.0.3"
       sources."es6-symbol-3.1.3"
       sources."es6-weak-map-2.0.3"
@@ -97383,16 +98094,22 @@ in
         dependencies = [
           sources."ajv-8.11.0"
           sources."json-schema-traverse-1.0.0"
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
         ];
       })
       sources."exegesis-express-4.0.0"
       sources."exit-code-1.0.2"
-      sources."exit-on-epipe-1.0.1"
       (sources."express-4.17.3" // {
         dependencies = [
+          sources."body-parser-1.19.2"
           sources."debug-2.6.9"
+          sources."depd-1.1.2"
+          sources."http-errors-1.8.1"
           sources."ms-2.0.0"
+          sources."on-finished-2.3.0"
+          sources."qs-6.9.7"
+          sources."raw-body-2.4.3"
+          sources."statuses-1.5.0"
         ];
       })
       (sources."ext-1.6.0" // {
@@ -97412,7 +98129,7 @@ in
           sources."punycode-1.4.1"
         ];
       })
-      sources."fecha-4.2.1"
+      sources."fecha-4.2.3"
       sources."figures-3.2.0"
       sources."file-uri-to-path-2.0.0"
       sources."filesize-6.4.0"
@@ -97421,8 +98138,11 @@ in
         dependencies = [
           sources."debug-2.6.9"
           sources."ms-2.0.0"
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
         ];
       })
+      sources."firebase-frameworks-0.3.0"
       (sources."flat-arguments-1.0.2" // {
         dependencies = [
           (sources."as-array-1.0.0" // {
@@ -97456,10 +98176,12 @@ in
           sources."string_decoder-0.10.31"
         ];
       })
-      sources."gauge-4.0.3"
-      sources."gaxios-4.3.2"
+      sources."function-bind-1.1.1"
+      sources."gauge-4.0.4"
+      sources."gaxios-4.3.3"
       sources."gcp-metadata-4.3.1"
       sources."get-caller-file-2.0.5"
+      sources."get-intrinsic-1.1.1"
       sources."get-stream-4.1.0"
       (sources."get-uri-3.0.2" // {
         dependencies = [
@@ -97474,26 +98196,28 @@ in
       sources."global-dirs-2.1.0"
       sources."google-auth-library-7.14.1"
       sources."google-gax-2.29.6"
-      sources."google-p12-pem-3.1.3"
+      sources."google-p12-pem-3.1.4"
       sources."got-9.6.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."gtoken-5.3.2"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
+      sources."has-1.0.3"
       (sources."has-ansi-2.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
         ];
       })
       sources."has-flag-4.0.0"
+      sources."has-symbols-1.0.3"
       sources."has-unicode-2.0.1"
       sources."has-yarn-2.1.0"
       sources."home-dir-1.0.0"
       sources."http-cache-semantics-4.1.0"
-      sources."http-errors-1.8.1"
+      sources."http-errors-2.0.0"
       sources."http-proxy-agent-4.0.1"
       sources."http-signature-1.2.0"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."humanize-ms-1.2.1"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
@@ -97606,10 +98330,10 @@ in
       })
       (sources."make-fetch-happen-9.1.0" // {
         dependencies = [
-          sources."socks-proxy-agent-6.1.1"
+          sources."socks-proxy-agent-6.2.0"
         ];
       })
-      sources."marked-4.0.12"
+      sources."marked-4.0.14"
       (sources."marked-terminal-3.3.0" // {
         dependencies = [
           sources."ansi-escapes-3.2.0"
@@ -97643,8 +98367,8 @@ in
       (sources."morgan-1.10.0" // {
         dependencies = [
           sources."debug-2.6.9"
-          sources."depd-2.0.0"
           sources."ms-2.0.0"
+          sources."on-finished-2.3.0"
         ];
       })
       sources."ms-2.1.2"
@@ -97661,10 +98385,10 @@ in
       sources."nice-try-1.0.5"
       sources."node-emoji-1.11.0"
       sources."node-fetch-2.6.7"
-      sources."node-forge-1.3.0"
+      sources."node-forge-1.3.1"
       (sources."node-gyp-8.4.1" // {
         dependencies = [
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
           sources."which-2.0.2"
         ];
       })
@@ -97675,7 +98399,8 @@ in
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
       sources."object-hash-2.2.0"
-      sources."on-finished-2.3.0"
+      sources."object-inspect-1.12.0"
+      sources."on-finished-2.4.1"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       sources."one-time-1.0.0"
@@ -97703,13 +98428,12 @@ in
       sources."picomatch-2.3.1"
       (sources."portfinder-1.0.28" // {
         dependencies = [
-          sources."async-2.6.3"
+          sources."async-2.6.4"
           sources."debug-3.2.7"
         ];
       })
       sources."prelude-ls-1.1.2"
       sources."prepend-http-2.0.0"
-      sources."printj-1.3.1"
       sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
       sources."promise-breaker-5.0.0"
@@ -97733,9 +98457,9 @@ in
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."pupa-2.1.1"
-      sources."qs-6.9.7"
+      sources."qs-6.10.3"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.3"
+      sources."raw-body-2.5.1"
       sources."rc-1.2.8"
       sources."re2-1.17.4"
       sources."readable-stream-3.6.0"
@@ -97783,8 +98507,13 @@ in
               sources."ms-2.0.0"
             ];
           })
+          sources."depd-1.1.2"
+          sources."destroy-1.0.4"
+          sources."http-errors-1.8.1"
           sources."mime-1.6.0"
           sources."ms-2.1.3"
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
         ];
       })
       sources."serve-static-1.14.2"
@@ -97793,6 +98522,7 @@ in
       sources."setprototypeof-1.2.0"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
+      sources."side-channel-1.0.4"
       sources."signal-exit-3.0.7"
       sources."simple-swizzle-0.2.2"
       sources."smart-buffer-4.2.0"
@@ -97803,7 +98533,7 @@ in
       sources."sshpk-1.17.0"
       sources."ssri-8.0.1"
       sources."stack-trace-0.0.10"
-      sources."statuses-1.5.0"
+      sources."statuses-2.0.1"
       sources."stream-chain-2.2.5"
       sources."stream-json-1.7.4"
       sources."stream-shift-1.0.1"
@@ -97905,7 +98635,7 @@ in
           sources."ini-2.0.0"
           sources."is-installed-globally-0.4.0"
           sources."is-npm-5.0.0"
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
           sources."type-fest-0.20.2"
         ];
       })
@@ -97929,7 +98659,7 @@ in
       sources."which-1.3.1"
       sources."wide-align-1.1.5"
       sources."widest-line-3.1.0"
-      sources."winston-3.6.0"
+      sources."winston-3.7.2"
       sources."winston-transport-4.5.0"
       sources."word-wrap-1.2.3"
       sources."wrap-ansi-7.0.0"
@@ -98015,7 +98745,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -98103,7 +98833,7 @@ in
         ];
       })
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-fullwidth-code-point-4.0.0"
       sources."is-interactive-1.0.0"
       sources."is-plain-obj-1.1.0"
@@ -98174,7 +98904,7 @@ in
       sources."rxjs-7.5.5"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.7"
@@ -98229,7 +98959,7 @@ in
       sources."@types/atob-2.1.2"
       sources."@types/bn.js-5.1.0"
       sources."@types/inquirer-6.5.0"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/pbkdf2-3.1.0"
       sources."@types/secp256k1-4.0.3"
       sources."@types/through-0.0.30"
@@ -98307,7 +99037,7 @@ in
       sources."fs-extra-9.1.0"
       sources."get-caller-file-2.0.5"
       sources."getpass-0.1.7"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-flag-4.0.0"
@@ -98352,7 +99082,7 @@ in
       sources."nedb-1.8.0"
       sources."node-addon-api-2.0.2"
       sources."node-fetch-2.6.7"
-      sources."node-gyp-build-4.3.0"
+      sources."node-gyp-build-4.4.0"
       (sources."number-to-bn-1.7.0" // {
         dependencies = [
           sources."bn.js-4.11.6"
@@ -98421,7 +99151,7 @@ in
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
-      sources."web3-utils-1.7.1"
+      sources."web3-utils-1.7.3"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
       sources."which-module-2.0.0"
@@ -98556,13 +99286,13 @@ in
       sources."debug-2.6.9"
       sources."decode-uri-component-0.2.0"
       sources."deep-equal-2.0.5"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."define-property-2.0.2"
       sources."director-1.2.7"
       sources."dot-prop-4.2.1"
       sources."duplexer-0.1.2"
       sources."enabled-2.0.0"
-      sources."es-abstract-1.19.1"
+      sources."es-abstract-1.19.5"
       sources."es-get-iterator-1.1.2"
       sources."es-to-primitive-1.2.1"
       sources."event-stream-3.3.4"
@@ -98595,7 +99325,7 @@ in
         ];
       })
       sources."eyes-0.1.8"
-      sources."fecha-4.2.1"
+      sources."fecha-4.2.3"
       sources."file-uri-to-path-1.0.0"
       (sources."fill-range-4.0.0" // {
         dependencies = [
@@ -98613,6 +99343,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."fsevents-1.2.13"
       sources."function-bind-1.1.1"
+      sources."functions-have-names-1.2.3"
       sources."get-intrinsic-1.1.1"
       sources."get-symbol-description-1.0.0"
       sources."get-value-2.0.6"
@@ -98622,9 +99353,10 @@ in
           sources."is-glob-3.1.0"
         ];
       })
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."has-value-1.0.0"
@@ -98660,12 +99392,12 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-obj-1.0.1"
       sources."is-plain-object-2.0.4"
       sources."is-regex-1.1.4"
       sources."is-set-2.0.2"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-stream-2.0.1"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
@@ -98766,7 +99498,7 @@ in
       })
       sources."readdirp-2.2.1"
       sources."regex-not-1.0.2"
-      sources."regexp.prototype.flags-1.4.1"
+      sources."regexp.prototype.flags-1.4.3"
       sources."remove-trailing-separator-1.1.0"
       sources."repeat-element-1.1.4"
       sources."repeat-string-1.6.1"
@@ -98884,7 +99616,7 @@ in
       sources."which-boxed-primitive-1.0.2"
       sources."which-collection-1.0.1"
       sources."which-typed-array-1.1.7"
-      (sources."winston-3.6.0" // {
+      (sources."winston-3.7.2" // {
         dependencies = [
           sources."async-3.2.3"
           sources."readable-stream-3.6.0"
@@ -98965,21 +99697,21 @@ in
   gatsby-cli = nodeEnv.buildNodePackage {
     name = "gatsby-cli";
     packageName = "gatsby-cli";
-    version = "4.10.2";
+    version = "4.12.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-4.10.2.tgz";
-      sha512 = "lA1zFuWZwE+VtKYgntls0EC5PG4QoqqeJFWP+83Lmh+9hoLLkmL1plALBQeI3JY/9KXgRiC4OoR94CQkI329TA==";
+      url = "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-4.12.1.tgz";
+      sha512 = "vlSqri0p9HpLfACFtUCJhxQArzxSvdcUkrN4Jlw8RgeJYxcJyb8VPPDJHJT3rMGRKZFeBaAeqMbqx/eK4K5F1w==";
     };
     dependencies = [
       sources."@ampproject/remapping-2.1.2"
       sources."@babel/code-frame-7.16.7"
       sources."@babel/compat-data-7.17.7"
-      (sources."@babel/core-7.17.8" // {
+      (sources."@babel/core-7.17.9" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      (sources."@babel/generator-7.17.7" // {
+      (sources."@babel/generator-7.17.9" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
@@ -98990,10 +99722,9 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/helper-create-class-features-plugin-7.17.6"
+      sources."@babel/helper-create-class-features-plugin-7.17.9"
       sources."@babel/helper-environment-visitor-7.16.7"
-      sources."@babel/helper-function-name-7.16.7"
-      sources."@babel/helper-get-function-arity-7.16.7"
+      sources."@babel/helper-function-name-7.17.9"
       sources."@babel/helper-hoist-variables-7.16.7"
       sources."@babel/helper-member-expression-to-functions-7.17.7"
       sources."@babel/helper-module-imports-7.16.7"
@@ -99005,25 +99736,25 @@ in
       sources."@babel/helper-split-export-declaration-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
       sources."@babel/helper-validator-option-7.16.7"
-      sources."@babel/helpers-7.17.8"
-      (sources."@babel/highlight-7.16.10" // {
+      sources."@babel/helpers-7.17.9"
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.17.8"
+      sources."@babel/parser-7.17.9"
       sources."@babel/plugin-syntax-typescript-7.16.7"
       sources."@babel/plugin-transform-typescript-7.16.8"
       sources."@babel/preset-typescript-7.16.7"
-      sources."@babel/runtime-7.17.8"
+      sources."@babel/runtime-7.17.9"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.17.3"
+      sources."@babel/traverse-7.17.9"
       sources."@babel/types-7.17.0"
       sources."@hapi/hoek-9.2.1"
       sources."@hapi/topo-5.1.0"
       sources."@jridgewell/resolve-uri-3.0.5"
       sources."@jridgewell/sourcemap-codec-1.4.11"
-      sources."@jridgewell/trace-mapping-0.3.4"
+      sources."@jridgewell/trace-mapping-0.3.8"
       sources."@sideway/address-4.1.4"
       sources."@sideway/formula-3.0.0"
       sources."@sideway/pinpoint-2.0.0"
@@ -99035,8 +99766,9 @@ in
       sources."@types/cacheable-request-6.0.2"
       sources."@types/common-tags-1.8.1"
       sources."@types/http-cache-semantics-4.0.1"
+      sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/node-fetch-2.6.1"
       sources."@types/responselike-1.0.0"
       sources."@types/yoga-layout-1.9.2"
@@ -99065,7 +99797,7 @@ in
       })
       sources."call-bind-1.0.2"
       sources."camelcase-6.3.0"
-      sources."caniuse-lite-1.0.30001320"
+      sources."caniuse-lite-1.0.30001332"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -99098,19 +99830,20 @@ in
       sources."color-name-1.1.3"
       sources."combined-stream-1.0.8"
       sources."common-tags-1.8.2"
+      sources."compress-brotli-1.3.6"
       sources."concat-map-0.0.1"
       sources."configstore-5.0.1"
       sources."convert-hrtime-3.0.0"
       sources."convert-source-map-1.8.0"
-      sources."create-gatsby-2.10.2"
+      sources."create-gatsby-2.12.1"
       (sources."cross-spawn-6.0.5" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
       })
       sources."crypto-random-string-2.0.0"
-      sources."css-select-4.2.1"
-      sources."css-what-5.1.0"
+      sources."css-select-4.3.0"
+      sources."css-what-6.1.0"
       sources."debug-4.3.4"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
@@ -99123,13 +99856,13 @@ in
       sources."defer-to-connect-2.0.1"
       sources."delayed-stream-1.0.0"
       sources."dom-converter-0.2.0"
-      sources."dom-serializer-1.3.2"
-      sources."domelementtype-2.2.0"
+      sources."dom-serializer-1.4.1"
+      sources."domelementtype-2.3.0"
       sources."domhandler-4.3.1"
       sources."domutils-2.8.0"
       sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
-      sources."electron-to-chromium-1.4.96"
+      sources."electron-to-chromium-1.4.114"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."entities-2.2.0"
@@ -99161,11 +99894,11 @@ in
       sources."find-up-4.1.0"
       sources."form-data-3.0.1"
       sources."fs-exists-cached-1.0.0"
-      sources."fs-extra-10.0.1"
+      sources."fs-extra-10.1.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
-      sources."gatsby-core-utils-3.10.1"
-      (sources."gatsby-telemetry-3.10.1" // {
+      sources."gatsby-core-utils-3.12.1"
+      (sources."gatsby-telemetry-3.12.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."boxen-4.2.0"
@@ -99187,7 +99920,7 @@ in
       sources."global-dirs-3.0.0"
       sources."globals-11.12.0"
       sources."got-11.8.3"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
       sources."has-symbols-1.0.3"
@@ -99229,10 +99962,16 @@ in
       sources."json-buffer-3.0.1"
       sources."json5-2.2.1"
       sources."jsonfile-6.1.0"
-      sources."keyv-4.1.1"
+      sources."keyv-4.2.2"
       sources."kleur-3.0.3"
       sources."latest-version-5.1.0"
-      sources."lmdb-2.2.6"
+      sources."lmdb-2.3.3"
+      sources."lmdb-darwin-arm64-2.3.2"
+      sources."lmdb-darwin-x64-2.3.2"
+      sources."lmdb-linux-arm-2.3.2"
+      sources."lmdb-linux-arm64-2.3.2"
+      sources."lmdb-linux-x64-2.3.2"
+      sources."lmdb-win32-x64-2.3.2"
       sources."locate-path-5.0.0"
       sources."lock-1.1.0"
       sources."lodash-4.17.21"
@@ -99252,15 +99991,22 @@ in
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
       sources."ms-2.1.2"
-      sources."msgpackr-1.5.5"
-      sources."msgpackr-extract-1.0.16"
+      sources."msgpackr-1.5.6"
+      sources."msgpackr-extract-1.1.4"
+      sources."msgpackr-extract-darwin-arm64-1.1.0"
+      sources."msgpackr-extract-darwin-x64-1.1.0"
+      sources."msgpackr-extract-linux-arm-1.1.0"
+      sources."msgpackr-extract-linux-arm64-1.1.0"
+      sources."msgpackr-extract-linux-x64-1.1.0"
+      sources."msgpackr-extract-win32-x64-1.1.0"
       sources."mute-stream-0.0.8"
       sources."nan-2.15.0"
       sources."nice-try-1.0.5"
+      sources."node-addon-api-4.3.0"
       sources."node-fetch-2.6.7"
-      sources."node-gyp-build-4.3.0"
+      sources."node-gyp-build-optional-packages-4.3.2"
       sources."node-object-hash-2.3.10"
-      sources."node-releases-2.0.2"
+      sources."node-releases-2.0.3"
       sources."normalize-url-6.1.0"
       sources."npm-run-path-2.0.2"
       sources."nth-check-2.0.1"
@@ -99269,7 +100015,7 @@ in
       sources."onetime-5.1.2"
       sources."open-7.4.2"
       sources."opentracing-0.14.7"
-      sources."ordered-binary-1.2.4"
+      sources."ordered-binary-1.2.5"
       sources."os-tmpdir-1.0.2"
       sources."p-cancelable-2.1.1"
       sources."p-finally-1.0.0"
@@ -99347,7 +100093,7 @@ in
       sources."rxjs-6.6.7"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -99450,7 +100196,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -99509,7 +100255,7 @@ in
       sources."inherits-2.0.4"
       sources."interpret-1.4.0"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-plain-obj-2.1.0"
       sources."is-plain-object-5.0.0"
@@ -99553,11 +100299,11 @@ in
       })
       sources."read-pkg-up-7.0.1"
       sources."rechoir-0.6.2"
-      sources."request-light-0.5.7"
+      sources."request-light-0.5.8"
       sources."resolve-1.22.0"
       sources."run-async-2.4.1"
       sources."sanitize-filename-1.6.3"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."shelljs-0.8.5"
@@ -99664,7 +100410,7 @@ in
       sha512 = "76zCOpXUl/85CMk9aJwWbBy2vGYv+Yn17PcUMhksTtMJLAUujje3eP8v7FufC2pN9SbQx88Gtr4ARXGeVWwAJA==";
     };
     dependencies = [
-      sources."async-2.6.3"
+      sources."async-2.6.4"
       sources."debug-4.3.4"
       sources."lodash-4.17.21"
       sources."lodash.groupby-4.6.0"
@@ -99734,7 +100480,7 @@ in
       sources."mime-types-2.1.35"
       sources."minimist-1.2.6"
       sources."mkdirp-0.5.6"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."moo-0.5.1"
       sources."ms-2.1.2"
       sources."multicb-1.2.2"
@@ -99743,7 +100489,7 @@ in
       sources."multiserver-scopes-2.0.0"
       sources."muxrpc-6.7.2"
       sources."nearley-2.20.1"
-      sources."node-gyp-build-4.3.0"
+      sources."node-gyp-build-4.4.0"
       sources."node-polyglot-1.0.0"
       sources."non-private-ip-2.2.0"
       sources."os-homedir-1.0.2"
@@ -99907,8 +100653,9 @@ in
       sources."@szmarczak/http-timer-4.0.6"
       sources."@types/cacheable-request-6.0.2"
       sources."@types/http-cache-semantics-4.0.1"
+      sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/responselike-1.0.0"
       sources."ansi-regex-6.0.1"
       sources."ansi-styles-4.3.0"
@@ -99927,6 +100674,7 @@ in
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."combined-stream-1.0.8"
+      sources."compress-brotli-1.3.6"
       sources."decode-uri-component-0.2.0"
       (sources."decompress-response-6.0.0" // {
         dependencies = [
@@ -99954,7 +100702,7 @@ in
       sources."is-interactive-2.0.0"
       sources."is-unicode-supported-1.2.0"
       sources."json-buffer-3.0.1"
-      sources."keyv-4.1.1"
+      sources."keyv-4.2.2"
       sources."li-1.3.0"
       (sources."log-symbols-5.1.0" // {
         dependencies = [
@@ -100012,15 +100760,15 @@ in
   gitmoji-cli = nodeEnv.buildNodePackage {
     name = "gitmoji-cli";
     packageName = "gitmoji-cli";
-    version = "4.11.0";
+    version = "5.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gitmoji-cli/-/gitmoji-cli-4.11.0.tgz";
-      sha512 = "tRX7PJ+qYGsfQcfaXT5rGgXE0KOXz7sR6rS8oScFPguXTSUtBl3cW74jNh92nGVHhbCCVBFq9vqVBgt5aRo9RQ==";
+      url = "https://registry.npmjs.org/gitmoji-cli/-/gitmoji-cli-5.0.0.tgz";
+      sha512 = "DFiHpvCtnsX/e80RZSFhLZz7e9Ev102M3vLy9UYGi4XUaB5A1d158rLvVNi2Z66+5eKgaGi0k6L83i2QhI06ow==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -100076,7 +100824,7 @@ in
       sources."clone-response-1.0.2"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."conf-10.1.1"
+      sources."conf-10.1.2"
       (sources."configstore-5.0.1" // {
         dependencies = [
           sources."dot-prop-5.3.0"
@@ -100113,7 +100861,7 @@ in
       sources."esprima-4.0.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
-      sources."execa-5.0.0"
+      sources."execa-5.1.1"
       sources."external-editor-3.1.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-levenshtein-2.0.6"
@@ -100137,7 +100885,7 @@ in
           sources."get-stream-4.1.0"
         ];
       })
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
@@ -100146,7 +100894,7 @@ in
       sources."http-cache-semantics-4.1.0"
       sources."http-errors-2.0.0"
       sources."http-proxy-agent-4.0.1"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."human-signals-2.1.0"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
@@ -100155,7 +100903,7 @@ in
       sources."indent-string-4.0.0"
       sources."inherits-2.0.4"
       sources."ini-2.0.0"
-      (sources."inquirer-8.2.1" // {
+      (sources."inquirer-8.2.2" // {
         dependencies = [
           sources."chalk-4.1.2"
         ];
@@ -100164,7 +100912,7 @@ in
       sources."ip-1.1.5"
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-installed-globally-0.4.0"
       sources."is-interactive-1.0.0"
@@ -100218,7 +100966,7 @@ in
       sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
       sources."netmask-2.0.2"
-      sources."node-fetch-2.6.0"
+      sources."node-fetch-2.6.7"
       sources."normalize-package-data-3.0.3"
       sources."normalize-url-4.5.1"
       sources."npm-run-path-4.0.1"
@@ -100295,7 +101043,7 @@ in
       sources."rxjs-7.5.5"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -100326,6 +101074,7 @@ in
       sources."tmp-0.0.33"
       sources."to-readable-stream-1.0.0"
       sources."toidentifier-1.0.1"
+      sources."tr46-0.0.3"
       sources."trim-newlines-3.0.1"
       sources."tslib-2.3.1"
       sources."type-check-0.3.2"
@@ -100341,6 +101090,8 @@ in
       sources."validate-npm-package-license-3.0.4"
       sources."vm2-3.9.9"
       sources."wcwidth-1.0.1"
+      sources."webidl-conversions-3.0.1"
+      sources."whatwg-url-5.0.0"
       sources."which-2.0.2"
       sources."widest-line-3.1.0"
       sources."word-wrap-1.2.3"
@@ -100365,19 +101116,18 @@ in
   glob = nodeEnv.buildNodePackage {
     name = "glob";
     packageName = "glob";
-    version = "7.2.0";
+    version = "8.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz";
-      sha512 = "lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==";
+      url = "https://registry.npmjs.org/glob/-/glob-8.0.1.tgz";
+      sha512 = "cF7FYZZ47YzmCu7dDy50xSRRfO3ErRfrXuLZcNIuyiJEco0XSrGtuilG19L5xp3NcwTx7Gn+X6Tv3fmsUPTbow==";
     };
     dependencies = [
       sources."balanced-match-1.0.2"
-      sources."brace-expansion-1.1.11"
-      sources."concat-map-0.0.1"
+      sources."brace-expansion-2.0.1"
       sources."fs.realpath-1.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."minimatch-3.1.2"
+      sources."minimatch-5.0.1"
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
       sources."wrappy-1.0.2"
@@ -100403,7 +101153,7 @@ in
     dependencies = [
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
-      sources."async-2.6.3"
+      sources."async-2.6.4"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bl-1.2.3"
@@ -100448,7 +101198,7 @@ in
       sources."get-caller-file-2.0.5"
       sources."get-stream-2.3.1"
       sources."glob-7.2.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."ieee754-1.2.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -100537,7 +101287,7 @@ in
       sources."wrappy-1.0.2"
       sources."xtend-4.0.2"
       sources."y18n-5.0.8"
-      sources."yargs-17.4.0"
+      sources."yargs-17.4.1"
       sources."yargs-parser-21.0.1"
       sources."yauzl-2.10.0"
     ];
@@ -100563,7 +101313,7 @@ in
       sources."@ardatan/aggregate-error-0.0.6"
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -100604,9 +101354,9 @@ in
           sources."tslib-2.1.0"
         ];
       })
-      (sources."@graphql-tools/import-6.6.9" // {
+      (sources."@graphql-tools/import-6.6.13" // {
         dependencies = [
-          sources."@graphql-tools/utils-8.6.5"
+          sources."@graphql-tools/utils-8.6.9"
           sources."tslib-2.3.1"
         ];
       })
@@ -100631,10 +101381,10 @@ in
           sources."tslib-2.3.1"
         ];
       })
-      (sources."@graphql-tools/schema-8.3.5" // {
+      (sources."@graphql-tools/schema-8.3.10" // {
         dependencies = [
-          sources."@graphql-tools/merge-8.2.6"
-          sources."@graphql-tools/utils-8.6.5"
+          sources."@graphql-tools/merge-8.2.10"
+          sources."@graphql-tools/utils-8.6.9"
           sources."tslib-2.3.1"
         ];
       })
@@ -100665,7 +101415,7 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/parse-json-4.0.0"
       sources."@types/websocket-1.0.2"
       sources."abort-controller-3.0.0"
@@ -100751,7 +101501,7 @@ in
       sources."deep-extend-0.6.0"
       sources."defaults-1.0.3"
       sources."defer-to-connect-1.1.3"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."delayed-stream-1.0.0"
       sources."dir-glob-3.0.1"
       sources."duplexer3-0.1.4"
@@ -100759,7 +101509,7 @@ in
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.19.1"
+      sources."es-abstract-1.19.5"
       sources."es-get-iterator-1.1.2"
       sources."es-to-primitive-1.2.1"
       sources."es6-promise-3.3.1"
@@ -100795,6 +101545,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."fullname-4.0.1"
       sources."function-bind-1.1.1"
+      sources."functions-have-names-1.2.3"
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.1"
       sources."get-stream-4.1.0"
@@ -100808,7 +101559,7 @@ in
           sources."p-cancelable-1.1.0"
         ];
       })
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."graphql-15.3.0"
       (sources."graphql-config-3.0.3" // {
         dependencies = [
@@ -100822,8 +101573,9 @@ in
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
       sources."has-flag-4.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."http-cache-semantics-4.1.0"
@@ -100867,11 +101619,11 @@ in
       sources."is-map-2.0.2"
       sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-promise-4.0.0"
       sources."is-regex-1.1.4"
       sources."is-set-2.0.2"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-stream-1.1.0"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
@@ -100961,7 +101713,7 @@ in
       sources."oas-linter-3.2.2"
       (sources."oas-resolver-2.5.6" // {
         dependencies = [
-          sources."yargs-17.4.0"
+          sources."yargs-17.4.1"
         ];
       })
       sources."oas-schema-walker-1.1.5"
@@ -101023,7 +101775,7 @@ in
       sources."queue-microtask-1.2.3"
       sources."rc-1.2.8"
       sources."reftools-1.1.9"
-      sources."regexp.prototype.flags-1.4.1"
+      sources."regexp.prototype.flags-1.4.3"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
       sources."remove-trailing-separator-1.1.0"
@@ -101074,7 +101826,7 @@ in
       sources."supports-color-7.2.0"
       (sources."swagger2openapi-7.0.8" // {
         dependencies = [
-          sources."yargs-17.4.0"
+          sources."yargs-17.4.1"
         ];
       })
       sources."symbol-observable-1.2.0"
@@ -101142,7 +101894,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -101155,26 +101907,38 @@ in
       })
       sources."@cronvel/get-pixels-3.4.0"
       sources."@endemolshinegroup/cosmiconfig-typescript-loader-3.0.2"
-      sources."@graphql-tools/batch-execute-8.4.1"
-      sources."@graphql-tools/delegate-8.7.0"
-      sources."@graphql-tools/graphql-file-loader-7.3.7"
-      sources."@graphql-tools/import-6.6.9"
-      sources."@graphql-tools/json-file-loader-7.3.7"
-      sources."@graphql-tools/load-7.5.5"
-      sources."@graphql-tools/merge-8.2.6"
-      sources."@graphql-tools/schema-8.3.5"
-      (sources."@graphql-tools/url-loader-7.9.7" // {
-        dependencies = [
-          (sources."subscriptions-transport-ws-0.11.0" // {
-            dependencies = [
-              sources."ws-7.5.7"
-            ];
-          })
+      sources."@envelop/core-2.3.1"
+      sources."@envelop/disable-introspection-3.3.1"
+      sources."@envelop/parser-cache-4.3.1"
+      sources."@envelop/types-2.2.0"
+      sources."@envelop/validation-cache-4.3.1"
+      sources."@graphql-tools/batch-execute-8.4.6"
+      sources."@graphql-tools/delegate-8.7.7"
+      sources."@graphql-tools/graphql-file-loader-7.3.11"
+      sources."@graphql-tools/import-6.6.13"
+      sources."@graphql-tools/json-file-loader-7.3.11"
+      sources."@graphql-tools/load-7.5.10"
+      sources."@graphql-tools/merge-8.2.10"
+      sources."@graphql-tools/schema-8.3.10"
+      (sources."@graphql-tools/url-loader-7.9.14" // {
+        dependencies = [
           sources."ws-8.5.0"
         ];
       })
-      sources."@graphql-tools/utils-8.6.5"
-      sources."@graphql-tools/wrap-8.4.9"
+      sources."@graphql-tools/utils-8.6.9"
+      sources."@graphql-tools/wrap-8.4.16"
+      sources."@graphql-typed-document-node/core-3.1.1"
+      (sources."@graphql-yoga/common-2.3.0" // {
+        dependencies = [
+          sources."cross-undici-fetch-0.2.5"
+        ];
+      })
+      (sources."@graphql-yoga/node-2.3.0" // {
+        dependencies = [
+          sources."cross-undici-fetch-0.2.5"
+        ];
+      })
+      sources."@graphql-yoga/subscription-2.0.0"
       sources."@iarna/toml-2.2.5"
       sources."@n1ru4l/graphql-live-query-0.9.0"
       sources."@nodelib/fs.scandir-2.1.5"
@@ -101209,10 +101973,10 @@ in
         ];
       })
       sources."@oclif/screen-1.0.4"
+      sources."@repeaterjs/repeater-3.0.4"
       sources."@types/json-schema-7.0.9"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/parse-json-4.0.0"
-      sources."@types/websocket-1.0.5"
       sources."@types/ws-8.5.3"
       sources."abort-controller-3.0.0"
       sources."accepts-1.3.8"
@@ -101277,9 +102041,9 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."cross-undici-fetch-0.1.27"
+      sources."cross-undici-fetch-0.3.0"
       sources."cwise-compiler-1.1.3"
-      sources."dataloader-2.0.0"
+      sources."dataloader-2.1.0"
       sources."debug-4.3.4"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
@@ -101324,10 +102088,10 @@ in
       sources."fs-extra-8.1.0"
       sources."glob-parent-5.1.2"
       sources."globby-11.1.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."graphql-15.4.0"
-      sources."graphql-config-4.1.0"
-      sources."graphql-executor-0.0.22"
+      sources."graphql-config-4.3.0"
+      sources."graphql-executor-0.0.23"
       (sources."graphql-language-service-interface-2.10.2" // {
         dependencies = [
           sources."graphql-language-service-utils-2.7.1"
@@ -101336,8 +102100,7 @@ in
       sources."graphql-language-service-parser-1.10.4"
       sources."graphql-language-service-types-1.8.7"
       sources."graphql-language-service-utils-2.5.1"
-      sources."graphql-sse-1.1.0"
-      sources."graphql-ws-5.6.4"
+      sources."graphql-ws-5.7.0"
       sources."has-flag-4.0.0"
       sources."http-errors-1.6.3"
       sources."hyperlinker-1.0.0"
@@ -101387,7 +102150,7 @@ in
       sources."mime-1.4.1"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
-      sources."minimatch-3.0.4"
+      sources."minimatch-4.2.1"
       sources."ms-2.1.2"
       sources."ndarray-1.0.19"
       sources."ndarray-pack-1.2.1"
@@ -101429,7 +102192,7 @@ in
       sources."reusify-1.0.4"
       sources."run-parallel-1.2.0"
       sources."safe-buffer-5.1.1"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       (sources."send-0.16.2" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -101469,6 +102232,7 @@ in
       sources."symbol-observable-1.2.0"
       sources."sync-fetch-0.3.1"
       sources."terminal-kit-1.49.4"
+      sources."tiny-lru-7.0.6"
       sources."to-regex-range-5.0.1"
       sources."tr46-0.0.3"
       sources."tree-kit-0.7.4"
@@ -101476,7 +102240,7 @@ in
       sources."ts-node-9.1.1"
       sources."tslib-2.3.1"
       sources."type-is-1.6.18"
-      sources."undici-4.16.0"
+      sources."undici-5.0.0"
       sources."uniq-1.0.1"
       sources."universalify-0.1.2"
       sources."unixify-1.0.0"
@@ -101485,7 +102249,7 @@ in
       sources."value-or-promise-1.0.11"
       sources."vary-1.1.2"
       sources."vscode-languageserver-types-3.16.0"
-      sources."web-streams-polyfill-3.2.0"
+      sources."web-streams-polyfill-3.2.1"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-fetch-3.6.2"
       sources."whatwg-url-5.0.0"
@@ -101539,7 +102303,7 @@ in
       sources."ini-1.3.8"
       sources."interpret-1.1.0"
       sources."is-absolute-1.0.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
@@ -101748,8 +102512,7 @@ in
       sources."cardinal-2.1.1"
       sources."chalk-1.1.3"
       sources."charm-0.1.2"
-      sources."cli-table3-0.6.1"
-      sources."colors-1.4.0"
+      sources."cli-table3-0.6.2"
       sources."core-util-is-1.0.3"
       sources."drawille-blessed-contrib-1.0.0"
       sources."drawille-canvas-blessed-contrib-0.1.3"
@@ -101770,7 +102533,7 @@ in
       sources."isarray-0.0.1"
       sources."lodash-4.17.21"
       sources."map-canvas-0.1.5"
-      sources."marked-4.0.12"
+      sources."marked-4.0.14"
       (sources."marked-terminal-5.1.1" // {
         dependencies = [
           sources."chalk-5.0.1"
@@ -101801,7 +102564,7 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      sources."systeminformation-5.11.9"
+      sources."systeminformation-5.11.12"
       sources."term-canvas-0.0.5"
       sources."type-fest-1.4.0"
       sources."wordwrap-0.0.3"
@@ -101935,14 +102698,14 @@ in
         ];
       })
       sources."default-resolution-2.0.0"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."define-property-2.0.2"
       sources."detect-file-1.0.0"
       sources."duplexify-3.7.1"
       sources."each-props-1.3.2"
       sources."end-of-stream-1.4.4"
       sources."error-ex-1.3.2"
-      sources."es5-ext-0.10.59"
+      sources."es5-ext-0.10.61"
       sources."es6-iterator-2.0.3"
       sources."es6-symbol-3.1.3"
       sources."es6-weak-map-2.0.3"
@@ -102016,10 +102779,11 @@ in
       sources."global-modules-1.0.0"
       sources."global-prefix-1.0.2"
       sources."glogg-1.0.2"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."gulp-cli-2.3.0"
       sources."gulplog-1.0.0"
       sources."has-1.0.3"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
@@ -102039,7 +102803,7 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-binary-path-1.0.1"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
       sources."is-extendable-0.1.1"
@@ -102353,7 +103117,7 @@ in
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
       sources."default-compare-1.0.0"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."define-property-2.0.2"
       sources."detect-file-1.0.0"
       (sources."each-props-1.3.2" // {
@@ -102362,7 +103126,7 @@ in
         ];
       })
       sources."error-ex-1.3.2"
-      sources."es5-ext-0.10.59"
+      sources."es5-ext-0.10.61"
       sources."es6-iterator-2.0.3"
       sources."es6-symbol-3.1.3"
       (sources."expand-brackets-2.1.4" // {
@@ -102418,9 +103182,10 @@ in
       sources."global-modules-1.0.0"
       sources."global-prefix-1.0.2"
       sources."glogg-1.0.2"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."gulplog-1.0.0"
       sources."has-1.0.3"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
@@ -102442,7 +103207,7 @@ in
       })
       sources."is-arrayish-0.2.1"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       (sources."is-data-descriptor-1.0.0" // {
         dependencies = [
           sources."kind-of-6.0.3"
@@ -102699,7 +103464,7 @@ in
       sources."param-case-2.1.1"
       sources."relateurl-0.2.7"
       sources."source-map-0.6.1"
-      sources."uglify-js-3.15.3"
+      sources."uglify-js-3.15.4"
       sources."upper-case-1.1.3"
     ];
     buildInputs = globalBuildInputs;
@@ -102715,10 +103480,10 @@ in
   htmlhint = nodeEnv.buildNodePackage {
     name = "htmlhint";
     packageName = "htmlhint";
-    version = "1.1.2";
+    version = "1.1.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/htmlhint/-/htmlhint-1.1.2.tgz";
-      sha512 = "3rUS4ROXjyRidMiThTXhwtAotmGvOOof3uUk1X0YWjJF63qOP0sorogfgvo+XFcp5Q6IWhiFcZqd3giCrKHg+g==";
+      url = "https://registry.npmjs.org/htmlhint/-/htmlhint-1.1.4.tgz";
+      sha512 = "tSKPefhIaaWDk/vKxAOQbN+QwZmDeJCq3bZZGbJMoMQAfTjepudC+MkuT9MOBbuQI3dLLzDWbmU7fLV3JASC7Q==";
     };
     dependencies = [
       sources."ansi-styles-4.3.0"
@@ -102728,22 +103493,18 @@ in
       sources."chalk-4.1.2"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."commander-8.3.0"
+      sources."commander-9.2.0"
       sources."concat-map-0.0.1"
       sources."fs.realpath-1.0.0"
       sources."glob-7.2.0"
-      sources."glob-base-0.3.0"
-      sources."glob-parent-2.0.0"
       sources."has-flag-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."is-dotfile-1.0.3"
-      sources."is-extglob-1.0.0"
-      sources."is-glob-2.0.1"
+      sources."is-extglob-2.1.1"
+      sources."is-glob-4.0.3"
       sources."minimatch-3.1.2"
       sources."node-fetch-2.6.7"
       sources."once-1.4.0"
-      sources."parse-glob-3.0.4"
       sources."path-is-absolute-1.0.1"
       sources."strip-json-comments-3.1.0"
       sources."supports-color-7.2.0"
@@ -102773,7 +103534,7 @@ in
     };
     dependencies = [
       sources."ansi-styles-4.3.0"
-      sources."async-2.6.3"
+      sources."async-2.6.4"
       sources."basic-auth-2.0.1"
       sources."call-bind-1.0.2"
       sources."chalk-4.1.2"
@@ -102995,16 +103756,16 @@ in
       sources."@colors/colors-1.5.0"
       sources."@fast-csv/format-4.3.5"
       sources."@fast-csv/parse-4.3.6"
-      sources."@types/node-14.18.12"
+      sources."@types/node-14.18.13"
       sources."ajv-6.12.6"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."argparse-1.0.10"
       sources."asn1-0.2.6"
       sources."assert-plus-1.0.0"
-      sources."async-2.6.3"
+      sources."async-2.6.4"
       sources."asynckit-0.4.0"
-      sources."aws-sdk-2.1101.0"
+      sources."aws-sdk-2.1118.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."base64-js-1.5.1"
@@ -103111,7 +103872,7 @@ in
       sources."mime-types-2.1.35"
       sources."minimist-1.2.6"
       sources."mkdirp-0.5.6"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."moment-timezone-0.5.34"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
@@ -103121,9 +103882,9 @@ in
       sources."optionator-0.8.3"
       sources."performance-now-2.1.0"
       sources."prelude-ls-1.1.2"
-      (sources."prompt-1.2.2" // {
+      (sources."prompt-1.3.0" // {
         dependencies = [
-          sources."async-0.9.2"
+          sources."async-3.2.3"
         ];
       })
       sources."psl-1.8.0"
@@ -103209,7 +103970,7 @@ in
       sources."jp-kernel-2.0.0"
       sources."nan-2.14.2"
       sources."nel-1.3.0"
-      sources."node-gyp-build-4.3.0"
+      sources."node-gyp-build-4.4.0"
       sources."uuid-3.4.0"
       sources."zeromq-5.2.8"
     ];
@@ -103301,7 +104062,7 @@ in
           sources."object-assign-3.0.0"
         ];
       })
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-ansi-2.0.0"
@@ -103475,7 +104236,7 @@ in
           sources."minimist-1.2.6"
         ];
       })
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."mv-2.1.1"
       sources."nan-2.15.0"
       sources."ncp-2.0.0"
@@ -103565,7 +104326,7 @@ in
       sources."fsevents-2.3.2"
       sources."get-stream-4.1.0"
       sources."glob-7.2.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."historic-readline-1.0.8"
       sources."iconv-lite-0.6.3"
       sources."inflight-1.0.6"
@@ -103586,7 +104347,7 @@ in
       sources."p-finally-1.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
-      sources."prismjs-1.27.0"
+      sources."prismjs-1.28.0"
       sources."pump-3.0.0"
       sources."rimraf-2.7.1"
       sources."safer-buffer-2.1.2"
@@ -103687,8 +104448,8 @@ in
       })
       sources."diagnostic-channel-publishers-0.4.4"
       sources."discontinuous-range-1.0.0"
-      sources."dom-serializer-1.3.2"
-      sources."domelementtype-2.2.0"
+      sources."dom-serializer-1.4.1"
+      sources."domelementtype-2.3.0"
       sources."domhandler-4.3.1"
       sources."domutils-2.8.0"
       sources."ecc-jsbn-0.1.2"
@@ -103714,11 +104475,11 @@ in
       sources."getpass-0.1.7"
       sources."glob-7.2.0"
       sources."glob-parent-5.1.2"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."he-1.2.0"
-      sources."html-to-text-8.1.0"
+      sources."html-to-text-8.1.1"
       sources."htmlparser2-6.1.0"
       sources."http-signature-1.2.0"
       sources."inflight-1.0.6"
@@ -103774,7 +104535,7 @@ in
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."selderee-0.6.0"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."shimmer-1.2.1"
       sources."sigmund-1.0.1"
       sources."sshpk-1.17.0"
@@ -103788,7 +104549,7 @@ in
       sources."uri-js-4.4.1"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
-      (sources."vscode-css-languageservice-5.3.0" // {
+      (sources."vscode-css-languageservice-5.4.1" // {
         dependencies = [
           sources."vscode-languageserver-types-3.16.0"
         ];
@@ -103935,13 +104696,13 @@ in
       sources."get-stream-4.1.0"
       sources."get-uri-3.0.2"
       sources."glob-7.2.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
       sources."has-symbols-1.0.3"
       sources."http-errors-2.0.0"
       sources."http-proxy-agent-4.0.1"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."iconv-lite-0.4.24"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
@@ -104148,42 +104909,42 @@ in
     dependencies = [
       sources."@iarna/toml-2.2.5"
       sources."@msgpack/msgpack-2.7.2"
-      sources."@ot-builder/bin-composite-types-1.5.0"
-      sources."@ot-builder/bin-util-1.5.0"
-      sources."@ot-builder/cli-help-shower-1.5.0"
-      sources."@ot-builder/cli-proc-1.5.0"
-      sources."@ot-builder/cli-shared-1.5.0"
-      sources."@ot-builder/common-impl-1.5.0"
-      sources."@ot-builder/errors-1.5.0"
-      sources."@ot-builder/io-bin-cff-1.5.0"
-      sources."@ot-builder/io-bin-encoding-1.5.0"
-      sources."@ot-builder/io-bin-ext-private-1.5.0"
-      sources."@ot-builder/io-bin-font-1.5.0"
-      sources."@ot-builder/io-bin-glyph-store-1.5.0"
-      sources."@ot-builder/io-bin-layout-1.5.0"
-      sources."@ot-builder/io-bin-metadata-1.5.0"
-      sources."@ot-builder/io-bin-metric-1.5.0"
-      sources."@ot-builder/io-bin-name-1.5.0"
-      sources."@ot-builder/io-bin-sfnt-1.5.0"
-      sources."@ot-builder/io-bin-ttf-1.5.0"
-      sources."@ot-builder/io-bin-vtt-private-1.5.0"
-      sources."@ot-builder/ot-1.5.0"
-      sources."@ot-builder/ot-encoding-1.5.0"
-      sources."@ot-builder/ot-ext-private-1.5.0"
-      sources."@ot-builder/ot-glyphs-1.5.0"
-      sources."@ot-builder/ot-layout-1.5.0"
-      sources."@ot-builder/ot-metadata-1.5.0"
-      sources."@ot-builder/ot-name-1.5.0"
-      sources."@ot-builder/ot-sfnt-1.5.0"
-      sources."@ot-builder/ot-standard-glyph-namer-1.5.0"
-      sources."@ot-builder/ot-vtt-private-1.5.0"
-      sources."@ot-builder/prelude-1.5.0"
-      sources."@ot-builder/primitive-1.5.0"
-      sources."@ot-builder/rectify-1.5.0"
-      sources."@ot-builder/stat-glyphs-1.5.0"
-      sources."@ot-builder/trace-1.5.0"
-      sources."@ot-builder/var-store-1.5.0"
-      sources."@ot-builder/variance-1.5.0"
+      sources."@ot-builder/bin-composite-types-1.5.1"
+      sources."@ot-builder/bin-util-1.5.1"
+      sources."@ot-builder/cli-help-shower-1.5.1"
+      sources."@ot-builder/cli-proc-1.5.1"
+      sources."@ot-builder/cli-shared-1.5.1"
+      sources."@ot-builder/common-impl-1.5.1"
+      sources."@ot-builder/errors-1.5.1"
+      sources."@ot-builder/io-bin-cff-1.5.1"
+      sources."@ot-builder/io-bin-encoding-1.5.1"
+      sources."@ot-builder/io-bin-ext-private-1.5.1"
+      sources."@ot-builder/io-bin-font-1.5.1"
+      sources."@ot-builder/io-bin-glyph-store-1.5.1"
+      sources."@ot-builder/io-bin-layout-1.5.1"
+      sources."@ot-builder/io-bin-metadata-1.5.1"
+      sources."@ot-builder/io-bin-metric-1.5.1"
+      sources."@ot-builder/io-bin-name-1.5.1"
+      sources."@ot-builder/io-bin-sfnt-1.5.1"
+      sources."@ot-builder/io-bin-ttf-1.5.1"
+      sources."@ot-builder/io-bin-vtt-private-1.5.1"
+      sources."@ot-builder/ot-1.5.1"
+      sources."@ot-builder/ot-encoding-1.5.1"
+      sources."@ot-builder/ot-ext-private-1.5.1"
+      sources."@ot-builder/ot-glyphs-1.5.1"
+      sources."@ot-builder/ot-layout-1.5.1"
+      sources."@ot-builder/ot-metadata-1.5.1"
+      sources."@ot-builder/ot-name-1.5.1"
+      sources."@ot-builder/ot-sfnt-1.5.1"
+      sources."@ot-builder/ot-standard-glyph-namer-1.5.1"
+      sources."@ot-builder/ot-vtt-private-1.5.1"
+      sources."@ot-builder/prelude-1.5.1"
+      sources."@ot-builder/primitive-1.5.1"
+      sources."@ot-builder/rectify-1.5.1"
+      sources."@ot-builder/stat-glyphs-1.5.1"
+      sources."@ot-builder/trace-1.5.1"
+      sources."@ot-builder/var-store-1.5.1"
+      sources."@ot-builder/variance-1.5.1"
       sources."@unicode/unicode-14.0.0-1.2.1"
       sources."@xmldom/xmldom-0.7.5"
       sources."aglfn-1.0.2"
@@ -104230,9 +104991,9 @@ in
       sources."esutils-2.0.3"
       sources."fast-deep-equal-3.1.3"
       sources."fast-levenshtein-2.0.6"
-      sources."fs-extra-10.0.1"
+      sources."fs-extra-10.1.0"
       sources."get-caller-file-2.0.5"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-flag-4.0.0"
       sources."hashish-0.0.4"
       sources."iconv-lite-0.6.3"
@@ -104245,8 +105006,8 @@ in
       sources."mimic-fn-2.1.0"
       sources."onetime-5.1.2"
       sources."optionator-0.8.3"
-      sources."ot-builder-1.5.0"
-      sources."otb-ttc-bundle-1.5.0"
+      sources."ot-builder-1.5.1"
+      sources."otb-ttc-bundle-1.5.1"
       sources."passerror-1.1.1"
       sources."patel-0.37.1"
       sources."patrisika-0.24.0"
@@ -104258,7 +105019,7 @@ in
       sources."resumer-0.0.0"
       sources."safer-buffer-2.1.2"
       sources."semaphore-async-await-1.5.1"
-      (sources."semver-7.3.5" // {
+      (sources."semver-7.3.7" // {
         dependencies = [
           sources."lru-cache-6.0.0"
         ];
@@ -104280,7 +105041,7 @@ in
       sources."universalify-2.0.0"
       (sources."verda-1.5.0" // {
         dependencies = [
-          sources."yargs-17.4.0"
+          sources."yargs-17.4.1"
           sources."yargs-parser-21.0.1"
         ];
       })
@@ -104305,23 +105066,31 @@ in
   jake = nodeEnv.buildNodePackage {
     name = "jake";
     packageName = "jake";
-    version = "10.8.4";
+    version = "10.8.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/jake/-/jake-10.8.4.tgz";
-      sha512 = "MtWeTkl1qGsWUtbl/Jsca/8xSoK3x0UmS82sNbjqxxG/de/M/3b1DntdjHgPMC50enlTNwXOCRqPXLLt5cCfZA==";
+      url = "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz";
+      sha512 = "sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==";
     };
     dependencies = [
       sources."ansi-styles-4.3.0"
-      sources."async-0.9.2"
+      sources."async-3.2.3"
       sources."balanced-match-1.0.2"
-      sources."brace-expansion-1.1.11"
+      sources."brace-expansion-2.0.1"
       sources."chalk-4.1.2"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."concat-map-0.0.1"
-      sources."filelist-1.0.2"
+      (sources."filelist-1.0.3" // {
+        dependencies = [
+          sources."minimatch-5.0.1"
+        ];
+      })
       sources."has-flag-4.0.0"
-      sources."minimatch-3.1.2"
+      (sources."minimatch-3.1.2" // {
+        dependencies = [
+          sources."brace-expansion-1.1.11"
+        ];
+      })
       sources."supports-color-7.2.0"
     ];
     buildInputs = globalBuildInputs;
@@ -104472,93 +105241,95 @@ in
       })
       sources."@aws-sdk/abort-controller-3.55.0"
       sources."@aws-sdk/chunked-blob-reader-3.55.0"
-      sources."@aws-sdk/chunked-blob-reader-native-3.55.0"
-      sources."@aws-sdk/client-s3-3.56.0"
-      sources."@aws-sdk/client-sso-3.56.0"
-      sources."@aws-sdk/client-sts-3.56.0"
-      sources."@aws-sdk/config-resolver-3.56.0"
+      sources."@aws-sdk/chunked-blob-reader-native-3.58.0"
+      sources."@aws-sdk/client-s3-3.72.0"
+      sources."@aws-sdk/client-sso-3.72.0"
+      sources."@aws-sdk/client-sts-3.72.0"
+      sources."@aws-sdk/config-resolver-3.58.0"
       sources."@aws-sdk/credential-provider-env-3.55.0"
-      sources."@aws-sdk/credential-provider-imds-3.56.0"
-      sources."@aws-sdk/credential-provider-ini-3.56.0"
-      sources."@aws-sdk/credential-provider-node-3.56.0"
-      sources."@aws-sdk/credential-provider-process-3.56.0"
-      sources."@aws-sdk/credential-provider-sso-3.56.0"
+      sources."@aws-sdk/credential-provider-imds-3.58.0"
+      sources."@aws-sdk/credential-provider-ini-3.72.0"
+      sources."@aws-sdk/credential-provider-node-3.72.0"
+      sources."@aws-sdk/credential-provider-process-3.58.0"
+      sources."@aws-sdk/credential-provider-sso-3.72.0"
       sources."@aws-sdk/credential-provider-web-identity-3.55.0"
-      sources."@aws-sdk/eventstream-marshaller-3.55.0"
-      sources."@aws-sdk/eventstream-serde-browser-3.55.0"
+      sources."@aws-sdk/eventstream-marshaller-3.58.0"
+      sources."@aws-sdk/eventstream-serde-browser-3.72.0"
       sources."@aws-sdk/eventstream-serde-config-resolver-3.55.0"
-      sources."@aws-sdk/eventstream-serde-node-3.55.0"
-      sources."@aws-sdk/eventstream-serde-universal-3.55.0"
-      sources."@aws-sdk/fetch-http-handler-3.55.0"
-      sources."@aws-sdk/hash-blob-browser-3.55.0"
+      sources."@aws-sdk/eventstream-serde-node-3.72.0"
+      sources."@aws-sdk/eventstream-serde-universal-3.72.0"
+      sources."@aws-sdk/fetch-http-handler-3.58.0"
+      sources."@aws-sdk/hash-blob-browser-3.58.0"
       sources."@aws-sdk/hash-node-3.55.0"
-      sources."@aws-sdk/hash-stream-node-3.55.0"
+      sources."@aws-sdk/hash-stream-node-3.58.0"
       sources."@aws-sdk/invalid-dependency-3.55.0"
       sources."@aws-sdk/is-array-buffer-3.55.0"
-      sources."@aws-sdk/md5-js-3.55.0"
-      sources."@aws-sdk/middleware-bucket-endpoint-3.56.0"
-      sources."@aws-sdk/middleware-content-length-3.55.0"
-      sources."@aws-sdk/middleware-expect-continue-3.55.0"
-      sources."@aws-sdk/middleware-flexible-checksums-3.55.0"
-      sources."@aws-sdk/middleware-header-default-3.55.0"
-      sources."@aws-sdk/middleware-host-header-3.55.0"
+      sources."@aws-sdk/md5-js-3.58.0"
+      sources."@aws-sdk/middleware-bucket-endpoint-3.58.0"
+      sources."@aws-sdk/middleware-content-length-3.58.0"
+      sources."@aws-sdk/middleware-expect-continue-3.58.0"
+      sources."@aws-sdk/middleware-flexible-checksums-3.72.0"
+      sources."@aws-sdk/middleware-header-default-3.58.0"
+      sources."@aws-sdk/middleware-host-header-3.58.0"
       sources."@aws-sdk/middleware-location-constraint-3.55.0"
       sources."@aws-sdk/middleware-logger-3.55.0"
-      (sources."@aws-sdk/middleware-retry-3.56.0" // {
+      (sources."@aws-sdk/middleware-retry-3.58.0" // {
         dependencies = [
           sources."uuid-8.3.2"
         ];
       })
-      sources."@aws-sdk/middleware-sdk-s3-3.56.0"
-      sources."@aws-sdk/middleware-sdk-sts-3.56.0"
+      sources."@aws-sdk/middleware-sdk-s3-3.66.0"
+      sources."@aws-sdk/middleware-sdk-sts-3.58.0"
       sources."@aws-sdk/middleware-serde-3.55.0"
-      sources."@aws-sdk/middleware-signing-3.56.0"
+      sources."@aws-sdk/middleware-signing-3.58.0"
       sources."@aws-sdk/middleware-ssec-3.55.0"
       sources."@aws-sdk/middleware-stack-3.55.0"
-      sources."@aws-sdk/middleware-user-agent-3.55.0"
-      sources."@aws-sdk/node-config-provider-3.56.0"
-      sources."@aws-sdk/node-http-handler-3.55.0"
+      sources."@aws-sdk/middleware-user-agent-3.58.0"
+      sources."@aws-sdk/node-config-provider-3.58.0"
+      sources."@aws-sdk/node-http-handler-3.58.0"
       sources."@aws-sdk/property-provider-3.55.0"
-      sources."@aws-sdk/protocol-http-3.55.0"
+      sources."@aws-sdk/protocol-http-3.58.0"
       sources."@aws-sdk/querystring-builder-3.55.0"
       sources."@aws-sdk/querystring-parser-3.55.0"
-      sources."@aws-sdk/s3-request-presigner-3.56.0"
+      sources."@aws-sdk/s3-request-presigner-3.72.0"
       sources."@aws-sdk/service-error-classification-3.55.0"
-      sources."@aws-sdk/shared-ini-file-loader-3.56.0"
-      sources."@aws-sdk/signature-v4-3.56.0"
-      sources."@aws-sdk/smithy-client-3.55.0"
+      sources."@aws-sdk/shared-ini-file-loader-3.58.0"
+      sources."@aws-sdk/signature-v4-3.58.0"
+      sources."@aws-sdk/signature-v4-multi-region-3.66.0"
+      sources."@aws-sdk/smithy-client-3.72.0"
       sources."@aws-sdk/types-3.55.0"
       sources."@aws-sdk/url-parser-3.55.0"
       sources."@aws-sdk/util-arn-parser-3.55.0"
-      sources."@aws-sdk/util-base64-browser-3.55.0"
+      sources."@aws-sdk/util-base64-browser-3.58.0"
       sources."@aws-sdk/util-base64-node-3.55.0"
       sources."@aws-sdk/util-body-length-browser-3.55.0"
       sources."@aws-sdk/util-body-length-node-3.55.0"
       sources."@aws-sdk/util-buffer-from-3.55.0"
       sources."@aws-sdk/util-config-provider-3.55.0"
-      sources."@aws-sdk/util-create-request-3.55.0"
-      sources."@aws-sdk/util-defaults-mode-browser-3.55.0"
-      sources."@aws-sdk/util-defaults-mode-node-3.56.0"
-      sources."@aws-sdk/util-format-url-3.55.0"
-      sources."@aws-sdk/util-hex-encoding-3.55.0"
+      sources."@aws-sdk/util-create-request-3.72.0"
+      sources."@aws-sdk/util-defaults-mode-browser-3.72.0"
+      sources."@aws-sdk/util-defaults-mode-node-3.72.0"
+      sources."@aws-sdk/util-format-url-3.58.0"
+      sources."@aws-sdk/util-hex-encoding-3.58.0"
       sources."@aws-sdk/util-locate-window-3.55.0"
       sources."@aws-sdk/util-middleware-3.55.0"
       sources."@aws-sdk/util-stream-browser-3.55.0"
       sources."@aws-sdk/util-stream-node-3.55.0"
       sources."@aws-sdk/util-uri-escape-3.55.0"
-      sources."@aws-sdk/util-user-agent-browser-3.55.0"
-      sources."@aws-sdk/util-user-agent-node-3.56.0"
+      sources."@aws-sdk/util-user-agent-browser-3.58.0"
+      sources."@aws-sdk/util-user-agent-node-3.58.0"
       sources."@aws-sdk/util-utf8-browser-3.55.0"
       sources."@aws-sdk/util-utf8-node-3.55.0"
       sources."@aws-sdk/util-waiter-3.55.0"
       sources."@aws-sdk/xml-builder-3.55.0"
       sources."@braintree/sanitize-url-3.1.0"
       sources."@cronvel/get-pixels-3.4.0"
+      sources."@gar/promisify-1.1.3"
       sources."@joplin/fork-htmlparser2-4.1.39"
       sources."@joplin/fork-sax-1.2.43"
       (sources."@joplin/htmlpack-2.6.1" // {
         dependencies = [
-          sources."fs-extra-10.0.1"
+          sources."fs-extra-10.1.0"
         ];
       })
       sources."@joplin/lib-2.6.3"
@@ -104576,7 +105347,38 @@ in
         ];
       })
       sources."@joplin/turndown-plugin-gfm-1.0.43"
-      sources."abab-2.0.5"
+      (sources."@mapbox/node-pre-gyp-1.0.9" // {
+        dependencies = [
+          sources."ansi-regex-5.0.1"
+          sources."are-we-there-yet-2.0.0"
+          sources."chownr-2.0.0"
+          sources."fs-minipass-2.1.0"
+          sources."gauge-3.0.2"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."minipass-3.1.6"
+          sources."minizlib-2.1.2"
+          sources."mkdirp-1.0.4"
+          sources."node-fetch-2.6.7"
+          sources."npmlog-5.0.1"
+          sources."readable-stream-3.6.0"
+          sources."rimraf-3.0.2"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+          sources."tar-6.1.11"
+          sources."tr46-0.0.3"
+          sources."webidl-conversions-3.0.1"
+          sources."whatwg-url-5.0.0"
+        ];
+      })
+      sources."@npmcli/fs-1.1.1"
+      (sources."@npmcli/move-file-1.1.2" // {
+        dependencies = [
+          sources."mkdirp-1.0.4"
+          sources."rimraf-3.0.2"
+        ];
+      })
+      sources."@tootallnate/once-1.1.2"
+      sources."abab-2.0.6"
       sources."abbrev-1.1.1"
       sources."acorn-7.4.1"
       (sources."acorn-globals-4.3.4" // {
@@ -104585,6 +105387,17 @@ in
         ];
       })
       sources."acorn-walk-6.2.0"
+      (sources."agent-base-6.0.2" // {
+        dependencies = [
+          sources."debug-4.3.4"
+        ];
+      })
+      (sources."agentkeepalive-4.2.1" // {
+        dependencies = [
+          sources."debug-4.3.4"
+        ];
+      })
+      sources."aggregate-error-3.1.0"
       sources."ajv-6.12.6"
       (sources."ansi-escape-sequences-4.1.0" // {
         dependencies = [
@@ -104611,7 +105424,7 @@ in
       sources."async-mutex-0.1.4"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      (sources."aws-sdk-2.1101.0" // {
+      (sources."aws-sdk-2.1118.0" // {
         dependencies = [
           sources."sax-1.2.1"
           sources."uuid-3.3.2"
@@ -104633,13 +105446,23 @@ in
           sources."readable-stream-3.6.0"
         ];
       })
-      sources."block-stream-0.0.9"
       sources."bowser-2.11.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."browser-process-hrtime-1.0.0"
       sources."buffer-4.9.2"
       sources."builtin-modules-3.2.0"
+      (sources."cacache-15.3.0" // {
+        dependencies = [
+          sources."chownr-2.0.0"
+          sources."fs-minipass-2.1.0"
+          sources."minipass-3.1.6"
+          sources."minizlib-2.1.2"
+          sources."mkdirp-1.0.4"
+          sources."rimraf-3.0.2"
+          sources."tar-6.1.11"
+        ];
+      })
       sources."camel-case-3.0.0"
       sources."camelcase-4.1.0"
       sources."caseless-0.12.0"
@@ -104649,12 +105472,14 @@ in
       sources."chownr-1.1.4"
       sources."chroma-js-2.4.2"
       sources."clean-css-4.2.4"
+      sources."clean-stack-2.2.0"
       sources."cliss-0.0.2"
       sources."code-point-at-1.1.0"
       sources."color-3.1.2"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."color-string-1.9.0"
+      sources."color-support-1.1.3"
       sources."combined-stream-1.0.8"
       sources."command-line-usage-4.1.0"
       sources."commander-2.17.1"
@@ -104676,13 +105501,13 @@ in
         ];
       })
       sources."cwise-compiler-1.1.3"
-      sources."d3-7.3.0"
-      sources."d3-array-3.1.1"
+      sources."d3-7.4.4"
+      sources."d3-array-3.1.6"
       sources."d3-axis-3.0.0"
       sources."d3-brush-3.0.0"
       sources."d3-chord-3.0.1"
       sources."d3-collection-1.0.7"
-      sources."d3-color-3.0.1"
+      sources."d3-color-3.1.0"
       sources."d3-contour-3.0.1"
       sources."d3-delaunay-6.0.2"
       sources."d3-dispatch-3.0.1"
@@ -104698,7 +105523,7 @@ in
       sources."d3-force-3.0.0"
       sources."d3-format-3.1.0"
       sources."d3-geo-3.0.1"
-      sources."d3-hierarchy-3.1.1"
+      sources."d3-hierarchy-3.1.2"
       sources."d3-interpolate-3.0.1"
       sources."d3-path-3.0.1"
       sources."d3-polygon-3.0.1"
@@ -104764,12 +105589,12 @@ in
       sources."depd-1.1.2"
       sources."detect-libc-2.0.1"
       sources."diff-match-patch-1.0.5"
-      (sources."dom-serializer-1.3.2" // {
+      (sources."dom-serializer-1.4.1" // {
         dependencies = [
           sources."domhandler-4.3.1"
         ];
       })
-      sources."domelementtype-2.2.0"
+      sources."domelementtype-2.3.0"
       sources."domexception-1.0.1"
       sources."domhandler-3.3.0"
       sources."dompurify-2.3.5"
@@ -104779,6 +105604,7 @@ in
         ];
       })
       sources."ecc-jsbn-0.1.2"
+      sources."emoji-regex-8.0.0"
       (sources."emphasize-1.5.0" // {
         dependencies = [
           sources."ansi-styles-2.2.1"
@@ -104795,6 +105621,8 @@ in
       })
       sources."end-of-stream-1.4.4"
       sources."entities-2.2.0"
+      sources."env-paths-2.2.1"
+      sources."err-code-2.0.3"
       sources."es6-promise-pool-2.5.0"
       sources."escape-string-regexp-1.0.5"
       sources."escodegen-1.14.3"
@@ -104830,7 +105658,6 @@ in
       sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
-      sources."fstream-1.0.12"
       (sources."gauge-2.7.4" // {
         dependencies = [
           sources."strip-ansi-3.0.1"
@@ -104842,7 +105669,7 @@ in
       sources."github-from-package-0.0.0"
       sources."glob-7.2.0"
       sources."glob-parent-5.1.2"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."graphlib-2.1.8"
       sources."growly-1.3.0"
       sources."har-schema-2.0.0"
@@ -104851,15 +105678,26 @@ in
       sources."has-flag-4.0.0"
       sources."has-unicode-2.0.1"
       sources."he-1.2.0"
-      sources."highlight.js-11.5.0"
+      sources."highlight.js-11.5.1"
       sources."html-encoding-sniffer-1.0.2"
       sources."html-entities-1.4.0"
       sources."html-minifier-3.5.21"
+      sources."http-cache-semantics-4.1.0"
       sources."http-errors-1.8.1"
+      (sources."http-proxy-agent-4.0.1" // {
+        dependencies = [
+          sources."debug-4.3.4"
+        ];
+      })
       sources."http-signature-1.2.0"
+      (sources."https-proxy-agent-5.0.1" // {
+        dependencies = [
+          sources."debug-4.3.4"
+        ];
+      })
+      sources."humanize-ms-1.2.1"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.1.13"
-      sources."ignore-walk-3.0.4"
       (sources."image-data-uri-2.0.1" // {
         dependencies = [
           sources."fs-extra-0.26.7"
@@ -104869,6 +105707,9 @@ in
       sources."image-size-1.0.0"
       sources."image-type-3.1.0"
       sources."immer-7.0.15"
+      sources."imurmurhash-0.1.4"
+      sources."indent-string-4.0.0"
+      sources."infer-owner-1.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
@@ -104900,6 +105741,7 @@ in
       })
       sources."internmap-2.0.3"
       sources."iota-array-1.0.0"
+      sources."ip-1.1.5"
       sources."ip-regex-2.1.0"
       sources."is-absolute-0.2.6"
       sources."is-arrayish-0.3.2"
@@ -104909,6 +105751,7 @@ in
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-glob-4.0.3"
+      sources."is-lambda-1.0.1"
       sources."is-number-7.0.0"
       sources."is-relative-0.2.1"
       sources."is-stream-1.1.0"
@@ -104963,6 +105806,16 @@ in
       })
       sources."lru-cache-6.0.0"
       sources."magicli-0.0.8"
+      (sources."make-dir-3.1.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      (sources."make-fetch-happen-9.1.0" // {
+        dependencies = [
+          sources."minipass-3.1.6"
+        ];
+      })
       (sources."markdown-it-10.0.0" // {
         dependencies = [
           sources."argparse-1.0.10"
@@ -104997,36 +105850,69 @@ in
           sources."yallist-3.1.1"
         ];
       })
+      (sources."minipass-collect-1.0.2" // {
+        dependencies = [
+          sources."minipass-3.1.6"
+        ];
+      })
+      (sources."minipass-fetch-1.4.1" // {
+        dependencies = [
+          sources."minipass-3.1.6"
+          sources."minizlib-2.1.2"
+        ];
+      })
+      (sources."minipass-flush-1.0.5" // {
+        dependencies = [
+          sources."minipass-3.1.6"
+        ];
+      })
+      (sources."minipass-pipeline-1.2.4" // {
+        dependencies = [
+          sources."minipass-3.1.6"
+        ];
+      })
+      (sources."minipass-sized-1.0.3" // {
+        dependencies = [
+          sources."minipass-3.1.6"
+        ];
+      })
       sources."minizlib-1.3.3"
       sources."mkdirp-0.5.6"
       sources."mkdirp-classic-0.5.3"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."moment-mini-2.24.0"
-      sources."ms-2.1.3"
+      sources."ms-2.1.2"
       sources."multiparty-4.2.3"
       sources."mustache-4.2.0"
-      sources."nanoid-3.3.1"
+      sources."nanoid-3.3.3"
       sources."napi-build-utils-1.0.2"
       sources."ndarray-1.0.19"
       sources."ndarray-pack-1.2.1"
-      (sources."needle-2.9.1" // {
-        dependencies = [
-          sources."debug-3.2.7"
-        ];
-      })
+      sources."negotiator-0.6.3"
       sources."nextgen-events-1.5.2"
       sources."no-case-2.3.2"
-      sources."node-abi-3.8.0"
+      sources."node-abi-3.15.0"
       sources."node-addon-api-4.3.0"
       sources."node-bitmap-0.0.1"
       sources."node-emoji-1.11.0"
       sources."node-fetch-1.7.3"
-      (sources."node-gyp-3.8.0" // {
+      (sources."node-gyp-8.4.1" // {
         dependencies = [
-          sources."nopt-3.0.6"
-          sources."semver-5.3.0"
-          sources."tar-2.2.2"
-          sources."which-1.3.1"
+          sources."ansi-regex-5.0.1"
+          sources."are-we-there-yet-3.0.0"
+          sources."chownr-2.0.0"
+          sources."fs-minipass-2.1.0"
+          sources."gauge-4.0.4"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."minipass-3.1.6"
+          sources."minizlib-2.1.2"
+          sources."mkdirp-1.0.4"
+          sources."npmlog-6.0.1"
+          sources."readable-stream-3.6.0"
+          sources."rimraf-3.0.2"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+          sources."tar-6.1.11"
         ];
       })
       (sources."node-notifier-8.0.2" // {
@@ -105035,18 +105921,9 @@ in
         ];
       })
       sources."node-persist-2.1.0"
-      (sources."node-pre-gyp-0.11.0" // {
-        dependencies = [
-          sources."detect-libc-1.0.3"
-          sources."semver-5.7.1"
-        ];
-      })
       sources."node-rsa-1.1.1"
-      sources."nopt-4.0.3"
+      sources."nopt-5.0.0"
       sources."normalize-path-3.0.0"
-      sources."npm-bundled-1.1.2"
-      sources."npm-normalize-package-bin-1.0.1"
-      sources."npm-packlist-1.4.8"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
       sources."nwsapi-2.2.0"
@@ -105062,11 +105939,9 @@ in
       sources."once-1.4.0"
       sources."open-7.4.2"
       sources."optionator-0.8.3"
-      sources."os-homedir-1.0.2"
-      sources."os-tmpdir-1.0.2"
-      sources."osenv-0.1.5"
       sources."p-limit-1.3.0"
       sources."p-locate-2.0.0"
+      sources."p-map-4.0.0"
       sources."p-try-1.0.0"
       sources."param-case-2.1.1"
       sources."parse5-5.1.0"
@@ -105078,10 +105953,16 @@ in
       sources."pipe-functions-1.3.0"
       sources."pn-1.1.0"
       sources."pngjs-5.0.0"
-      sources."prebuild-install-7.0.1"
+      sources."prebuild-install-7.1.0"
       sources."prelude-ls-1.1.2"
       sources."process-nextick-args-2.0.1"
       sources."promise-7.3.1"
+      sources."promise-inflight-1.0.1"
+      (sources."promise-retry-2.0.1" // {
+        dependencies = [
+          sources."retry-0.12.0"
+        ];
+      })
       sources."proper-lockfile-2.0.1"
       sources."psl-1.8.0"
       sources."pump-3.0.0"
@@ -105129,7 +106010,7 @@ in
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
       sources."saxes-3.1.11"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."server-destroy-1.0.1"
       sources."set-blocking-2.0.0"
       sources."setimmediate-1.0.5"
@@ -105164,17 +106045,34 @@ in
           sources."is-fullwidth-code-point-2.0.0"
         ];
       })
+      sources."smart-buffer-4.2.0"
+      sources."socks-2.6.2"
+      (sources."socks-proxy-agent-6.2.0" // {
+        dependencies = [
+          sources."debug-4.3.4"
+        ];
+      })
       sources."source-map-0.6.1"
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.1"
       sources."split-skip-0.0.2"
       sources."sprintf-js-1.1.2"
-      (sources."sqlite3-5.0.2" // {
+      (sources."sqlite3-5.0.4" // {
         dependencies = [
-          sources."node-addon-api-3.2.1"
+          sources."chownr-2.0.0"
+          sources."fs-minipass-2.1.0"
+          sources."minipass-3.1.6"
+          sources."minizlib-2.1.2"
+          sources."mkdirp-1.0.4"
+          sources."tar-6.1.11"
         ];
       })
       sources."sshpk-1.17.0"
+      (sources."ssri-8.0.1" // {
+        dependencies = [
+          sources."minipass-3.1.6"
+        ];
+      })
       sources."statuses-1.5.0"
       sources."stealthy-require-1.1.1"
       sources."strict-uri-encode-1.1.0"
@@ -105202,7 +106100,7 @@ in
         ];
       })
       sources."strip-json-comments-2.0.1"
-      sources."stylis-4.0.13"
+      sources."stylis-4.1.0"
       sources."supports-color-7.2.0"
       sources."symbol-observable-1.2.0"
       sources."symbol-tree-3.2.4"
@@ -105254,6 +106152,8 @@ in
       sources."uid-safe-2.1.5"
       sources."unc-path-regex-0.1.2"
       sources."uniq-1.0.1"
+      sources."unique-filename-1.1.1"
+      sources."unique-slug-2.0.2"
       sources."universalify-2.0.0"
       sources."unorm-1.6.0"
       sources."unpack-string-0.0.2"
@@ -105309,10 +106209,10 @@ in
   js-beautify = nodeEnv.buildNodePackage {
     name = "js-beautify";
     packageName = "js-beautify";
-    version = "1.14.0";
+    version = "1.14.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.0.tgz";
-      sha512 = "yuck9KirNSCAwyNJbqW+BxJqJ0NLJ4PwBUzQQACl5O3qHMBXVkXb/rD0ilh/Lat/tn88zSZ+CAHOlk0DsY7GuQ==";
+      url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.3.tgz";
+      sha512 = "f1ra8PHtOEu/70EBnmiUlV8nJePS58y9qKjl4JHfYWlFH6bo7ogZBz//FAZp7jDuXtYnGYKymZPlrg2I/9Zo4g==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
@@ -105379,7 +106279,7 @@ in
       sha512 = "IdQ8ppSo5LKZ9o3M+LKIIK8i00DIe5msDvG3G81Km+1dhy0XrOWD0Ji8H61ElgyEj/O9KRLokgKbAM9XX9CJAg==";
     };
     dependencies = [
-      sources."@babel/parser-7.17.8"
+      sources."@babel/parser-7.17.9"
       sources."@types/linkify-it-3.0.2"
       sources."@types/markdown-it-12.2.3"
       sources."@types/mdurl-1.0.2"
@@ -105393,8 +106293,8 @@ in
       sources."linkify-it-3.0.3"
       sources."lodash-4.17.21"
       sources."markdown-it-12.3.2"
-      sources."markdown-it-anchor-8.4.1"
-      sources."marked-4.0.12"
+      sources."markdown-it-anchor-8.6.2"
+      sources."marked-4.0.14"
       sources."mdurl-1.0.1"
       sources."mkdirp-1.0.4"
       sources."requizzle-0.2.3"
@@ -105432,7 +106332,7 @@ in
       sources."date-now-0.1.4"
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.2.0"
+          sources."domelementtype-2.3.0"
           sources."entities-2.2.0"
         ];
       })
@@ -105486,17 +106386,17 @@ in
   json-diff = nodeEnv.buildNodePackage {
     name = "json-diff";
     packageName = "json-diff";
-    version = "0.7.3";
+    version = "0.7.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/json-diff/-/json-diff-0.7.3.tgz";
-      sha512 = "VBvNBt3cIrCBHa3gYbVsCFUEReqWZPf+Biq1ZtFdIiQ6rytRLDp3qvtrGv7z/iZDd1D4vXWpW7Nx1nP8muLzkg==";
+      url = "https://registry.npmjs.org/json-diff/-/json-diff-0.7.4.tgz";
+      sha512 = "FJ2P+ShDbzu9epF+kCKgoSUhPIUW7Ta7A4XlIT0L5LzgaR/z1TBF1mm0XhRGj8RlA3Xm0j+c/FsWOHDtuoYejA==";
     };
     dependencies = [
-      sources."cli-color-2.0.1"
+      sources."cli-color-2.0.2"
       sources."d-1.0.1"
       sources."difflib-0.2.4"
       sources."dreamopt-0.8.0"
-      sources."es5-ext-0.10.59"
+      sources."es5-ext-0.10.61"
       sources."es6-iterator-2.0.3"
       sources."es6-symbol-3.1.3"
       sources."es6-weak-map-2.0.3"
@@ -105605,7 +106505,7 @@ in
       sources."ansi-styles-4.3.0"
       sources."array-flatten-1.1.1"
       sources."basic-auth-2.0.1"
-      sources."body-parser-1.19.2"
+      sources."body-parser-1.20.0"
       sources."boxen-5.1.2"
       sources."bytes-3.1.2"
       (sources."cacheable-request-6.1.0" // {
@@ -105614,6 +106514,7 @@ in
           sources."lowercase-keys-2.0.0"
         ];
       })
+      sources."call-bind-1.0.2"
       sources."camelcase-6.3.0"
       sources."chalk-4.1.2"
       sources."ci-info-2.0.0"
@@ -105644,8 +106545,8 @@ in
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
       sources."defer-to-connect-1.1.3"
-      sources."depd-1.1.2"
-      sources."destroy-1.0.4"
+      sources."depd-2.0.0"
+      sources."destroy-1.2.0"
       sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
@@ -105659,7 +106560,14 @@ in
       sources."etag-1.8.1"
       (sources."express-4.17.3" // {
         dependencies = [
+          sources."body-parser-1.19.2"
+          sources."depd-1.1.2"
+          sources."http-errors-1.8.1"
+          sources."on-finished-2.3.0"
+          sources."qs-6.9.7"
+          sources."raw-body-2.4.3"
           sources."safe-buffer-5.2.1"
+          sources."statuses-1.5.0"
         ];
       })
       (sources."express-urlrewrite-1.4.0" // {
@@ -105667,18 +106575,27 @@ in
           sources."path-to-regexp-1.8.0"
         ];
       })
-      sources."finalhandler-1.1.2"
+      (sources."finalhandler-1.1.2" // {
+        dependencies = [
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
+        ];
+      })
       sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
+      sources."function-bind-1.1.1"
       sources."get-caller-file-2.0.5"
+      sources."get-intrinsic-1.1.1"
       sources."get-stream-4.1.0"
       sources."global-dirs-3.0.0"
       sources."got-9.6.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
+      sources."has-1.0.3"
       sources."has-flag-4.0.0"
+      sources."has-symbols-1.0.3"
       sources."has-yarn-2.1.0"
       sources."http-cache-semantics-4.1.0"
-      sources."http-errors-1.8.1"
+      sources."http-errors-2.0.0"
       sources."iconv-lite-0.4.24"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
@@ -105725,15 +106642,16 @@ in
       sources."minimist-1.2.6"
       (sources."morgan-1.10.0" // {
         dependencies = [
-          sources."depd-2.0.0"
+          sources."on-finished-2.3.0"
         ];
       })
       sources."ms-2.0.0"
-      sources."nanoid-3.3.1"
+      sources."nanoid-3.3.3"
       sources."negotiator-0.6.3"
       sources."normalize-url-4.5.1"
       sources."object-assign-4.1.1"
-      sources."on-finished-2.3.0"
+      sources."object-inspect-1.12.0"
+      sources."on-finished-2.4.1"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       sources."p-cancelable-1.1.0"
@@ -105751,9 +106669,9 @@ in
       sources."proxy-addr-2.0.7"
       sources."pump-3.0.0"
       sources."pupa-2.1.1"
-      sources."qs-6.9.7"
+      sources."qs-6.10.3"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.3"
+      sources."raw-body-2.5.1"
       (sources."rc-1.2.8" // {
         dependencies = [
           sources."ini-1.3.8"
@@ -105765,7 +106683,7 @@ in
       sources."responselike-1.0.2"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."semver-compare-1.0.0"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
@@ -105774,14 +106692,20 @@ in
       })
       (sources."send-0.17.2" // {
         dependencies = [
+          sources."depd-1.1.2"
+          sources."destroy-1.0.4"
+          sources."http-errors-1.8.1"
           sources."ms-2.1.3"
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
         ];
       })
       sources."serve-static-1.14.2"
       sources."server-destroy-1.0.1"
       sources."setprototypeof-1.2.0"
+      sources."side-channel-1.0.4"
       sources."signal-exit-3.0.7"
-      sources."statuses-1.5.0"
+      sources."statuses-2.0.1"
       sources."steno-0.4.4"
       sources."string-width-4.2.3"
       sources."strip-ansi-6.0.1"
@@ -105805,7 +106729,7 @@ in
       sources."xdg-basedir-4.0.0"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
-      sources."yargs-17.4.0"
+      sources."yargs-17.4.1"
       sources."yargs-parser-21.0.1"
     ];
     buildInputs = globalBuildInputs;
@@ -105882,7 +106806,7 @@ in
       sources."bcrypt-pbkdf-1.0.2"
       sources."binary-extensions-1.13.1"
       sources."bindings-1.5.0"
-      sources."body-parser-1.19.2"
+      sources."body-parser-1.20.0"
       sources."boxen-0.6.0"
       sources."braces-1.8.5"
       sources."bytes-3.1.2"
@@ -105891,6 +106815,7 @@ in
           sources."isobject-3.0.1"
         ];
       })
+      sources."call-bind-1.0.2"
       sources."camelcase-2.1.1"
       sources."capture-stack-trace-1.0.1"
       sources."caseless-0.12.0"
@@ -105956,8 +106881,8 @@ in
         ];
       })
       sources."delayed-stream-1.0.0"
-      sources."depd-1.1.2"
-      sources."destroy-1.0.4"
+      sources."depd-2.0.0"
+      sources."destroy-1.2.0"
       sources."dot-prop-3.0.0"
       sources."duplexer2-0.1.4"
       sources."ecc-jsbn-0.1.2"
@@ -105972,7 +106897,14 @@ in
       sources."expand-range-1.8.2"
       (sources."express-4.17.3" // {
         dependencies = [
+          sources."body-parser-1.19.2"
+          sources."depd-1.1.2"
+          sources."http-errors-1.8.1"
+          sources."on-finished-2.3.0"
+          sources."qs-6.9.7"
+          sources."raw-body-2.4.3"
           sources."safe-buffer-5.2.1"
+          sources."statuses-1.5.0"
         ];
       })
       sources."extend-3.0.2"
@@ -105989,7 +106921,12 @@ in
       sources."filename-regex-2.0.1"
       sources."fill-range-2.2.4"
       sources."filled-array-1.1.0"
-      sources."finalhandler-1.1.2"
+      (sources."finalhandler-1.1.2" // {
+        dependencies = [
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
+        ];
+      })
       sources."find-up-1.1.2"
       sources."for-in-1.0.2"
       sources."for-own-0.1.5"
@@ -106001,16 +106938,18 @@ in
       sources."fsevents-1.2.13"
       sources."function-bind-1.1.1"
       sources."get-caller-file-1.0.3"
+      sources."get-intrinsic-1.1.1"
       sources."get-value-2.0.6"
       sources."getpass-0.1.7"
       sources."glob-base-0.3.0"
       sources."glob-parent-2.0.0"
       sources."got-5.7.1"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
       sources."has-ansi-2.0.0"
+      sources."has-symbols-1.0.3"
       (sources."has-value-1.0.0" // {
         dependencies = [
           sources."isobject-3.0.1"
@@ -106027,7 +106966,7 @@ in
         ];
       })
       sources."hosted-git-info-2.8.9"
-      sources."http-errors-1.8.1"
+      sources."http-errors-2.0.0"
       sources."http-signature-1.2.0"
       sources."iconv-lite-0.4.24"
       sources."imurmurhash-0.1.4"
@@ -106043,7 +106982,7 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-binary-path-1.0.1"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       (sources."is-data-descriptor-1.0.0" // {
         dependencies = [
           sources."kind-of-6.0.3"
@@ -106118,7 +107057,7 @@ in
       sources."mkdirp-0.5.6"
       (sources."morgan-1.10.0" // {
         dependencies = [
-          sources."depd-2.0.0"
+          sources."on-finished-2.3.0"
         ];
       })
       sources."ms-2.0.0"
@@ -106150,6 +107089,7 @@ in
           })
         ];
       })
+      sources."object-inspect-1.12.0"
       (sources."object-visit-1.0.1" // {
         dependencies = [
           sources."isobject-3.0.1"
@@ -106161,7 +107101,7 @@ in
           sources."isobject-3.0.1"
         ];
       })
-      sources."on-finished-2.3.0"
+      sources."on-finished-2.4.1"
       sources."on-headers-1.0.2"
       sources."os-homedir-1.0.2"
       sources."os-locale-1.4.0"
@@ -106189,7 +107129,7 @@ in
       sources."proxy-addr-2.0.7"
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
-      sources."qs-6.9.7"
+      sources."qs-6.10.3"
       (sources."randomatic-3.1.1" // {
         dependencies = [
           sources."is-number-4.0.0"
@@ -106197,7 +107137,7 @@ in
         ];
       })
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.3"
+      sources."raw-body-2.5.1"
       sources."rc-1.2.8"
       sources."read-all-stream-3.1.0"
       sources."read-pkg-1.1.0"
@@ -106279,7 +107219,12 @@ in
       sources."semver-diff-2.1.0"
       (sources."send-0.17.2" // {
         dependencies = [
+          sources."depd-1.1.2"
+          sources."destroy-1.0.4"
+          sources."http-errors-1.8.1"
           sources."ms-2.1.3"
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
         ];
       })
       sources."serve-static-1.14.2"
@@ -106291,6 +107236,7 @@ in
         ];
       })
       sources."setprototypeof-1.2.0"
+      sources."side-channel-1.0.4"
       sources."slide-1.1.6"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
@@ -106343,7 +107289,7 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."statuses-1.5.0"
+      sources."statuses-2.0.1"
       sources."steno-0.4.4"
       sources."string-width-1.0.2"
       sources."string_decoder-1.1.1"
@@ -106509,7 +107455,7 @@ in
       sources."dotenv-8.6.0"
       sources."emoji-regex-8.0.0"
       sources."env-paths-2.2.1"
-      sources."es5-ext-0.10.59"
+      sources."es5-ext-0.10.61"
       sources."es6-iterator-2.0.3"
       sources."es6-symbol-3.1.3"
       sources."escape-string-regexp-4.0.0"
@@ -106536,7 +107482,7 @@ in
       sources."get-intrinsic-1.1.1"
       sources."glob-parent-5.1.2"
       sources."globby-11.1.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
       sources."has-symbols-1.0.3"
@@ -106573,7 +107519,7 @@ in
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."mimic-fn-2.1.0"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
       sources."natural-orderby-2.0.3"
@@ -106611,7 +107557,7 @@ in
         ];
       })
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."side-channel-1.0.4"
@@ -106631,7 +107577,7 @@ in
       sources."typedarray-to-buffer-3.1.5"
       sources."universalify-0.1.2"
       sources."uri-js-4.4.1"
-      sources."urijs-1.19.10"
+      sources."urijs-1.19.11"
       sources."uuid-8.3.2"
       sources."which-1.3.1"
       sources."widest-line-3.1.0"
@@ -106673,10 +107619,10 @@ in
   karma = nodeEnv.buildNodePackage {
     name = "karma";
     packageName = "karma";
-    version = "6.3.17";
+    version = "6.3.19";
     src = fetchurl {
-      url = "https://registry.npmjs.org/karma/-/karma-6.3.17.tgz";
-      sha512 = "2TfjHwrRExC8yHoWlPBULyaLwAFmXmxQrcuFImt/JsAsSZu1uOWTZ1ZsWjqQtWpHLiatJOHL5jFjXSJIgCd01g==";
+      url = "https://registry.npmjs.org/karma/-/karma-6.3.19.tgz";
+      sha512 = "NDhWckzES/Y9xMiddyU1RzaKL76/scCsu8Mp0vR0Z3lQRvC3p72+Ab4ppoxs36S9tyPNX5V48yvaV++RNEBPZw==";
     };
     dependencies = [
       sources."@colors/colors-1.5.0"
@@ -106684,7 +107630,7 @@ in
       sources."@types/component-emitter-1.2.11"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.12"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."accepts-1.3.8"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
@@ -106692,10 +107638,11 @@ in
       sources."balanced-match-1.0.2"
       sources."base64id-2.0.0"
       sources."binary-extensions-2.2.0"
-      sources."body-parser-1.19.2"
+      sources."body-parser-1.20.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."bytes-3.1.2"
+      sources."call-bind-1.0.2"
       sources."chokidar-3.5.3"
       sources."cliui-7.0.4"
       sources."color-convert-2.0.1"
@@ -106707,9 +107654,10 @@ in
       sources."cookie-0.4.2"
       sources."cors-2.8.5"
       sources."custom-event-1.0.1"
-      sources."date-format-4.0.6"
+      sources."date-format-4.0.7"
       sources."debug-2.6.9"
-      sources."depd-1.1.2"
+      sources."depd-2.0.0"
+      sources."destroy-1.2.0"
       sources."di-0.0.1"
       sources."dom-serialize-2.2.1"
       sources."ee-first-1.1.1"
@@ -106728,17 +107676,26 @@ in
       sources."eventemitter3-4.0.7"
       sources."extend-3.0.2"
       sources."fill-range-7.0.1"
-      sources."finalhandler-1.1.2"
+      (sources."finalhandler-1.1.2" // {
+        dependencies = [
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
+        ];
+      })
       sources."flatted-3.2.5"
       sources."follow-redirects-1.14.9"
-      sources."fs-extra-10.0.1"
+      sources."fs-extra-10.1.0"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
+      sources."function-bind-1.1.1"
       sources."get-caller-file-2.0.5"
+      sources."get-intrinsic-1.1.1"
       sources."glob-7.2.0"
       sources."glob-parent-5.1.2"
-      sources."graceful-fs-4.2.9"
-      sources."http-errors-1.8.1"
+      sources."graceful-fs-4.2.10"
+      sources."has-1.0.3"
+      sources."has-symbols-1.0.3"
+      sources."http-errors-2.0.0"
       sources."http-proxy-1.18.1"
       sources."iconv-lite-0.4.24"
       sources."inflight-1.0.6"
@@ -106751,7 +107708,7 @@ in
       sources."isbinaryfile-4.0.10"
       sources."jsonfile-6.1.0"
       sources."lodash-4.17.21"
-      (sources."log4js-6.4.4" // {
+      (sources."log4js-6.4.5" // {
         dependencies = [
           sources."debug-4.3.4"
           sources."ms-2.1.2"
@@ -106768,15 +107725,16 @@ in
       sources."negotiator-0.6.3"
       sources."normalize-path-3.0.0"
       sources."object-assign-4.1.1"
-      sources."on-finished-2.3.0"
+      sources."object-inspect-1.12.0"
+      sources."on-finished-2.4.1"
       sources."once-1.4.0"
       sources."parseurl-1.3.3"
       sources."path-is-absolute-1.0.1"
       sources."picomatch-2.3.1"
       sources."qjobs-1.2.0"
-      sources."qs-6.9.7"
+      sources."qs-6.10.3"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.3"
+      sources."raw-body-2.5.1"
       sources."readdirp-3.6.0"
       sources."require-directory-2.1.1"
       sources."requires-port-1.0.0"
@@ -106784,6 +107742,7 @@ in
       sources."rimraf-3.0.2"
       sources."safer-buffer-2.1.2"
       sources."setprototypeof-1.2.0"
+      sources."side-channel-1.0.4"
       (sources."socket.io-4.4.1" // {
         dependencies = [
           sources."debug-4.3.4"
@@ -106798,8 +107757,8 @@ in
         ];
       })
       sources."source-map-0.6.1"
-      sources."statuses-1.5.0"
-      (sources."streamroller-3.0.6" // {
+      sources."statuses-2.0.1"
+      (sources."streamroller-3.0.7" // {
         dependencies = [
           sources."debug-4.3.4"
           sources."ms-2.1.2"
@@ -106847,12 +107806,12 @@ in
       sources."@babel/cli-7.17.6"
       sources."@babel/code-frame-7.16.7"
       sources."@babel/compat-data-7.17.7"
-      (sources."@babel/core-7.17.8" // {
+      (sources."@babel/core-7.17.9" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/generator-7.17.7"
+      sources."@babel/generator-7.17.9"
       sources."@babel/helper-annotate-as-pure-7.16.7"
       (sources."@babel/helper-compilation-targets-7.17.7" // {
         dependencies = [
@@ -106860,8 +107819,7 @@ in
         ];
       })
       sources."@babel/helper-environment-visitor-7.16.7"
-      sources."@babel/helper-function-name-7.16.7"
-      sources."@babel/helper-get-function-arity-7.16.7"
+      sources."@babel/helper-function-name-7.17.9"
       sources."@babel/helper-hoist-variables-7.16.7"
       sources."@babel/helper-module-imports-7.16.7"
       sources."@babel/helper-module-transforms-7.17.7"
@@ -106870,19 +107828,19 @@ in
       sources."@babel/helper-split-export-declaration-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
       sources."@babel/helper-validator-option-7.16.7"
-      sources."@babel/helpers-7.17.8"
-      sources."@babel/highlight-7.16.10"
+      sources."@babel/helpers-7.17.9"
+      sources."@babel/highlight-7.17.9"
       sources."@babel/node-7.16.8"
-      sources."@babel/parser-7.17.8"
+      sources."@babel/parser-7.17.9"
       sources."@babel/plugin-syntax-jsx-7.16.7"
       sources."@babel/plugin-transform-react-jsx-7.17.3"
       sources."@babel/register-7.17.7"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.17.3"
+      sources."@babel/traverse-7.17.9"
       sources."@babel/types-7.17.0"
       sources."@jridgewell/resolve-uri-3.0.5"
       sources."@jridgewell/sourcemap-codec-1.4.11"
-      sources."@jridgewell/trace-mapping-0.3.4"
+      sources."@jridgewell/trace-mapping-0.3.8"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
@@ -106920,7 +107878,7 @@ in
       sources."@xmpp/tls-0.13.1"
       sources."@xmpp/websocket-0.13.1"
       sources."@xmpp/xml-0.13.1"
-      sources."abab-2.0.5"
+      sources."abab-2.0.6"
       sources."accepts-1.3.8"
       sources."acorn-8.7.0"
       (sources."acorn-globals-6.0.0" // {
@@ -106970,7 +107928,7 @@ in
       sources."buffer-from-1.1.2"
       sources."bytes-3.1.2"
       sources."call-bind-1.0.2"
-      sources."caniuse-lite-1.0.30001320"
+      sources."caniuse-lite-1.0.30001332"
       sources."chalk-2.4.2"
       sources."chardet-1.4.0"
       sources."chownr-1.1.4"
@@ -106999,7 +107957,7 @@ in
       sources."convert-source-map-1.8.0"
       sources."cookie-0.4.2"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.21.1"
+      sources."core-js-3.22.1"
       sources."core-util-is-1.0.3"
       sources."cors-2.8.5"
       sources."create-hash-1.2.0"
@@ -107023,14 +107981,14 @@ in
       sources."decompress-response-4.2.1"
       sources."deep-extend-0.6.0"
       sources."deep-is-0.1.4"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
       sources."detect-libc-1.0.3"
       sources."dir-glob-3.0.1"
-      sources."doipjs-0.15.5"
+      sources."doipjs-0.15.6"
       (sources."domexception-2.0.1" // {
         dependencies = [
           sources."webidl-conversions-5.0.0"
@@ -107038,12 +107996,12 @@ in
       })
       sources."dotenv-8.6.0"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.96"
+      sources."electron-to-chromium-1.4.114"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."enquirer-2.3.6"
-      sources."es-abstract-1.19.1"
+      sources."es-abstract-1.19.5"
       sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.1"
       sources."escape-html-1.0.3"
@@ -107117,10 +108075,11 @@ in
           sources."slash-3.0.0"
         ];
       })
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
       sources."has-flag-3.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."has-unicode-2.0.1"
@@ -107133,7 +108092,7 @@ in
       sources."html-encoding-sniffer-2.0.1"
       sources."http-errors-1.8.1"
       sources."http-proxy-agent-4.0.1"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
       sources."ignore-5.2.0"
@@ -107152,19 +108111,19 @@ in
       sources."is-bigint-1.0.4"
       sources."is-boolean-object-1.1.2"
       sources."is-callable-1.2.4"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-date-object-1.0.5"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-glob-4.0.3"
       sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-plain-obj-2.1.0"
       sources."is-plain-object-2.0.4"
       sources."is-potential-custom-element-name-1.0.1"
       sources."is-regex-1.1.4"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
       sources."is-weakref-1.0.2"
@@ -107216,7 +108175,7 @@ in
       sources."node-abi-2.30.1"
       sources."node-environment-flags-1.0.6"
       sources."node-fetch-2.6.7"
-      sources."node-releases-2.0.2"
+      sources."node-releases-2.0.3"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
       sources."nwsapi-2.2.0"
@@ -107245,7 +108204,7 @@ in
       sources."picomatch-2.3.1"
       sources."pify-4.0.1"
       sources."pirates-4.0.5"
-      (sources."pkg-5.5.2" // {
+      (sources."pkg-5.6.0" // {
         dependencies = [
           sources."@babel/parser-7.16.2"
           sources."@babel/types-7.16.0"
@@ -107258,14 +108217,14 @@ in
         ];
       })
       sources."pkg-dir-3.0.0"
-      (sources."pkg-fetch-3.2.6" // {
+      (sources."pkg-fetch-3.3.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.2"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
           sources."supports-color-7.2.0"
         ];
       })
@@ -107379,7 +108338,7 @@ in
       sources."vary-1.1.2"
       sources."w3c-hr-time-1.0.2"
       sources."w3c-xmlserializer-2.0.0"
-      sources."webcrypto-core-1.7.2"
+      sources."webcrypto-core-1.7.3"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-encoding-1.0.5"
       sources."whatwg-mimetype-2.3.0"
@@ -107441,7 +108400,7 @@ in
       sources."concat-map-0.0.1"
       sources."convert-source-map-1.8.0"
       sources."core-util-is-1.0.3"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."duplexify-3.7.1"
       sources."end-of-stream-1.4.4"
       sources."extend-3.0.2"
@@ -107453,8 +108412,9 @@ in
       sources."glob-7.2.0"
       sources."glob-parent-3.1.0"
       sources."glob-stream-6.1.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -107640,7 +108600,7 @@ in
       sources."minimatch-3.1.2"
       sources."minimist-0.0.8"
       sources."mkdirp-0.5.1"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."mute-stream-0.0.8"
       (sources."nconf-0.10.0" // {
         dependencies = [
@@ -107890,7 +108850,7 @@ in
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
       sources."mkdirp-1.0.4"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."mute-stream-0.0.8"
       (sources."nconf-0.10.0" // {
         dependencies = [
@@ -108030,7 +108990,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -108278,13 +109238,13 @@ in
       sources."decode-uri-component-0.2.0"
       sources."dedent-0.7.0"
       sources."defaults-1.0.3"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
       sources."depd-1.1.2"
       sources."deprecation-2.3.1"
       sources."detect-indent-5.0.0"
-      sources."dezalgo-1.0.3"
+      sources."dezalgo-1.0.4"
       sources."dir-glob-3.0.1"
       sources."dot-prop-6.0.1"
       sources."duplexer-0.1.2"
@@ -108295,7 +109255,7 @@ in
       sources."envinfo-7.8.1"
       sources."err-code-2.0.3"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.19.1"
+      sources."es-abstract-1.19.5"
       sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
@@ -108362,14 +109322,15 @@ in
       sources."glob-7.2.0"
       sources."glob-parent-5.1.2"
       sources."globby-11.1.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."handlebars-4.7.7"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
       sources."has-flag-4.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."has-unicode-2.0.1"
@@ -108377,7 +109338,7 @@ in
       sources."http-cache-semantics-4.1.0"
       sources."http-proxy-agent-4.0.1"
       sources."http-signature-1.2.0"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."human-signals-2.1.0"
       sources."humanize-ms-1.2.1"
       sources."iconv-lite-0.6.3"
@@ -108409,7 +109370,7 @@ in
       sources."is-boolean-object-1.1.2"
       sources."is-callable-1.2.4"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-date-object-1.0.5"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
@@ -108417,12 +109378,12 @@ in
       sources."is-lambda-1.0.1"
       sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-obj-2.0.0"
       sources."is-plain-obj-1.1.0"
       sources."is-plain-object-2.0.4"
       sources."is-regex-1.1.4"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-ssh-1.3.3"
       sources."is-stream-2.0.1"
       sources."is-string-1.0.7"
@@ -108657,7 +109618,7 @@ in
       sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."set-blocking-2.0.0"
       sources."shallow-clone-3.0.1"
       sources."shebang-command-2.0.0"
@@ -108668,7 +109629,7 @@ in
       sources."slide-1.1.6"
       sources."smart-buffer-4.2.0"
       sources."socks-2.6.2"
-      sources."socks-proxy-agent-6.1.1"
+      sources."socks-proxy-agent-6.2.0"
       sources."sort-keys-2.0.0"
       sources."source-map-0.6.1"
       sources."spdx-correct-3.1.1"
@@ -108714,7 +109675,7 @@ in
       sources."type-fest-0.4.1"
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
-      sources."uglify-js-3.15.3"
+      sources."uglify-js-3.15.4"
       sources."uid-number-0.0.6"
       sources."umask-1.1.0"
       sources."unbox-primitive-1.0.1"
@@ -108784,7 +109745,7 @@ in
       sources."copy-anything-2.0.6"
       sources."debug-3.2.7"
       sources."errno-0.1.8"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."iconv-lite-0.4.24"
       sources."image-size-0.5.5"
       sources."is-what-3.14.1"
@@ -108959,7 +109920,7 @@ in
           sources."is-glob-3.1.0"
         ];
       })
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
@@ -109208,7 +110169,7 @@ in
       sources."binary-extensions-1.13.1"
       sources."bindings-1.5.0"
       sources."blob-0.0.5"
-      sources."body-parser-1.19.2"
+      sources."body-parser-1.20.0"
       sources."braces-1.8.5"
       sources."bytes-3.1.2"
       (sources."cache-base-1.0.1" // {
@@ -109216,6 +110177,7 @@ in
           sources."isobject-3.0.1"
         ];
       })
+      sources."call-bind-1.0.2"
       sources."caseless-0.12.0"
       sources."chokidar-1.7.0"
       (sources."class-utils-0.3.6" // {
@@ -109260,8 +110222,8 @@ in
         ];
       })
       sources."delayed-stream-1.0.0"
-      sources."depd-1.1.2"
-      sources."destroy-1.0.4"
+      sources."depd-2.0.0"
+      sources."destroy-1.2.0"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."encodeurl-1.0.2"
@@ -109284,7 +110246,14 @@ in
       sources."expand-range-1.8.2"
       (sources."express-4.17.3" // {
         dependencies = [
+          sources."body-parser-1.19.2"
+          sources."depd-1.1.2"
+          sources."http-errors-1.8.1"
+          sources."on-finished-2.3.0"
+          sources."qs-6.9.7"
+          sources."raw-body-2.4.3"
           sources."safe-buffer-5.2.1"
+          sources."statuses-1.5.0"
         ];
       })
       sources."extend-3.0.2"
@@ -109300,7 +110269,12 @@ in
       sources."file-uri-to-path-1.0.0"
       sources."filename-regex-2.0.1"
       sources."fill-range-2.2.4"
-      sources."finalhandler-1.1.2"
+      (sources."finalhandler-1.1.2" // {
+        dependencies = [
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
+        ];
+      })
       sources."for-in-1.0.2"
       sources."for-own-0.1.5"
       sources."forever-agent-0.6.1"
@@ -109309,20 +110283,24 @@ in
       sources."fragment-cache-0.2.1"
       sources."fresh-0.5.2"
       sources."fsevents-1.2.13"
+      sources."function-bind-1.1.1"
+      sources."get-intrinsic-1.1.1"
       sources."get-value-2.0.6"
       sources."getpass-0.1.7"
       sources."github-slugger-1.4.0"
       sources."glob-base-0.3.0"
       sources."glob-parent-2.0.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
+      sources."has-1.0.3"
       (sources."has-binary2-1.0.3" // {
         dependencies = [
           sources."isarray-2.0.1"
         ];
       })
       sources."has-cors-1.1.0"
+      sources."has-symbols-1.0.3"
       (sources."has-value-1.0.0" // {
         dependencies = [
           sources."isobject-3.0.1"
@@ -109339,7 +110317,7 @@ in
         ];
       })
       sources."html-entities-1.4.0"
-      sources."http-errors-1.8.1"
+      sources."http-errors-2.0.0"
       sources."http-signature-1.2.0"
       sources."iconv-lite-0.4.24"
       sources."indexof-0.0.1"
@@ -109434,6 +110412,7 @@ in
           })
         ];
       })
+      sources."object-inspect-1.12.0"
       (sources."object-visit-1.0.1" // {
         dependencies = [
           sources."isobject-3.0.1"
@@ -109445,7 +110424,7 @@ in
           sources."isobject-3.0.1"
         ];
       })
-      sources."on-finished-2.3.0"
+      sources."on-finished-2.4.1"
       sources."opn-5.5.0"
       sources."parse-glob-3.0.4"
       sources."parseqs-0.0.6"
@@ -109461,7 +110440,7 @@ in
       sources."proxy-addr-2.0.7"
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
-      sources."qs-6.9.7"
+      sources."qs-6.10.3"
       (sources."randomatic-3.1.1" // {
         dependencies = [
           sources."is-number-4.0.0"
@@ -109469,7 +110448,7 @@ in
         ];
       })
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.3"
+      sources."raw-body-2.5.1"
       sources."readable-stream-2.3.7"
       (sources."readdirp-2.2.1" // {
         dependencies = [
@@ -109539,7 +110518,12 @@ in
       sources."safer-buffer-2.1.2"
       (sources."send-0.17.2" // {
         dependencies = [
+          sources."depd-1.1.2"
+          sources."destroy-1.0.4"
+          sources."http-errors-1.8.1"
           sources."ms-2.1.3"
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
         ];
       })
       sources."serve-static-1.14.2"
@@ -109549,6 +110533,7 @@ in
         ];
       })
       sources."setprototypeof-1.2.0"
+      sources."side-channel-1.0.4"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -109619,7 +110604,7 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."statuses-1.5.0"
+      sources."statuses-2.0.1"
       sources."string_decoder-1.1.1"
       sources."to-array-0.1.4"
       sources."to-object-path-0.3.0"
@@ -109701,18 +110686,17 @@ in
       sources."@ampproject/remapping-2.1.2"
       sources."@babel/code-frame-7.16.7"
       sources."@babel/compat-data-7.17.7"
-      sources."@babel/core-7.17.8"
-      sources."@babel/generator-7.17.7"
+      sources."@babel/core-7.17.9"
+      sources."@babel/generator-7.17.9"
       sources."@babel/helper-annotate-as-pure-7.16.7"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.7"
       sources."@babel/helper-compilation-targets-7.17.7"
-      sources."@babel/helper-create-class-features-plugin-7.17.6"
+      sources."@babel/helper-create-class-features-plugin-7.17.9"
       sources."@babel/helper-create-regexp-features-plugin-7.17.0"
       sources."@babel/helper-define-polyfill-provider-0.3.1"
       sources."@babel/helper-environment-visitor-7.16.7"
       sources."@babel/helper-explode-assignable-expression-7.16.7"
-      sources."@babel/helper-function-name-7.16.7"
-      sources."@babel/helper-get-function-arity-7.16.7"
+      sources."@babel/helper-function-name-7.17.9"
       sources."@babel/helper-hoist-variables-7.16.7"
       sources."@babel/helper-member-expression-to-functions-7.17.7"
       sources."@babel/helper-module-imports-7.16.7"
@@ -109727,13 +110711,13 @@ in
       sources."@babel/helper-validator-identifier-7.16.7"
       sources."@babel/helper-validator-option-7.16.7"
       sources."@babel/helper-wrap-function-7.16.8"
-      sources."@babel/helpers-7.17.8"
-      (sources."@babel/highlight-7.16.10" // {
+      sources."@babel/helpers-7.17.9"
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.17.8"
+      sources."@babel/parser-7.17.9"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7"
       sources."@babel/plugin-external-helpers-7.8.3"
@@ -109783,7 +110767,7 @@ in
       sources."@babel/plugin-transform-literals-7.16.7"
       sources."@babel/plugin-transform-member-expression-literals-7.16.7"
       sources."@babel/plugin-transform-modules-amd-7.16.7"
-      sources."@babel/plugin-transform-modules-commonjs-7.17.7"
+      sources."@babel/plugin-transform-modules-commonjs-7.17.9"
       sources."@babel/plugin-transform-modules-systemjs-7.17.8"
       sources."@babel/plugin-transform-modules-umd-7.16.7"
       sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.8"
@@ -109791,7 +110775,7 @@ in
       sources."@babel/plugin-transform-object-super-7.16.7"
       sources."@babel/plugin-transform-parameters-7.16.7"
       sources."@babel/plugin-transform-property-literals-7.16.7"
-      sources."@babel/plugin-transform-regenerator-7.16.7"
+      sources."@babel/plugin-transform-regenerator-7.17.9"
       sources."@babel/plugin-transform-reserved-words-7.16.7"
       sources."@babel/plugin-transform-runtime-7.17.0"
       sources."@babel/plugin-transform-shorthand-properties-7.16.7"
@@ -109804,9 +110788,9 @@ in
       sources."@babel/preset-env-7.16.11"
       sources."@babel/preset-modules-0.1.5"
       sources."@babel/preset-stage-2-7.8.3"
-      sources."@babel/runtime-7.17.8"
+      sources."@babel/runtime-7.17.9"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.17.3"
+      sources."@babel/traverse-7.17.9"
       sources."@babel/types-7.17.0"
       sources."@cnakazawa/watch-1.0.4"
       sources."@comandeer/babel-plugin-banner-5.0.0"
@@ -109820,18 +110804,18 @@ in
       sources."@jest/types-25.5.0"
       sources."@jridgewell/resolve-uri-3.0.5"
       sources."@jridgewell/sourcemap-codec-1.4.11"
-      sources."@jridgewell/trace-mapping-0.3.4"
+      sources."@jridgewell/trace-mapping-0.3.8"
       sources."@types/babel__core-7.1.19"
       sources."@types/babel__generator-7.6.4"
       sources."@types/babel__template-7.4.1"
-      sources."@types/babel__traverse-7.14.2"
+      sources."@types/babel__traverse-7.17.0"
       sources."@types/estree-0.0.51"
       sources."@types/graceful-fs-4.1.5"
       sources."@types/istanbul-lib-coverage-2.0.4"
       sources."@types/istanbul-lib-report-3.0.0"
       sources."@types/istanbul-reports-1.1.2"
       sources."@types/json-schema-7.0.11"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/resolve-0.0.8"
       sources."@types/yargs-15.0.14"
@@ -109905,7 +110889,7 @@ in
       sources."babel-helper-remove-or-void-0.4.3"
       sources."babel-helper-to-multiple-sequence-expressions-0.5.0"
       sources."babel-jest-25.5.1"
-      sources."babel-loader-8.2.4"
+      sources."babel-loader-8.2.5"
       sources."babel-plugin-dynamic-import-node-2.3.3"
       sources."babel-plugin-istanbul-6.1.1"
       sources."babel-plugin-jest-hoist-25.5.0"
@@ -110004,7 +110988,7 @@ in
       sources."cached-path-relative-1.1.0"
       sources."call-bind-1.0.2"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001320"
+      sources."caniuse-lite-1.0.30001332"
       sources."capture-exit-2.0.0"
       sources."caseless-0.12.0"
       (sources."chalk-3.0.0" // {
@@ -110075,7 +111059,7 @@ in
       })
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.21.1" // {
+      (sources."core-js-compat-3.22.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -110110,7 +111094,7 @@ in
       sources."debug-4.3.4"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."define-property-2.0.2"
       sources."defined-1.0.0"
       sources."delayed-stream-1.0.0"
@@ -110127,7 +111111,7 @@ in
       sources."duplexer2-0.1.4"
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
-      sources."electron-to-chromium-1.4.96"
+      sources."electron-to-chromium-1.4.114"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -110247,7 +111231,7 @@ in
       })
       sources."globals-11.12.0"
       sources."google-closure-compiler-js-20170910.0.1"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       (sources."gunzip-maybe-1.4.2" // {
         dependencies = [
           sources."browserify-zlib-0.1.4"
@@ -110258,6 +111242,7 @@ in
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
@@ -110302,7 +111287,7 @@ in
       sources."is-binary-path-2.1.0"
       sources."is-buffer-1.1.6"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-deflate-1.0.0"
       sources."is-descriptor-1.0.2"
@@ -110328,7 +111313,7 @@ in
       sources."isobject-3.0.1"
       sources."isstream-0.1.2"
       sources."istanbul-lib-coverage-3.2.0"
-      sources."istanbul-lib-instrument-5.1.0"
+      sources."istanbul-lib-instrument-5.2.0"
       sources."jest-haste-map-25.5.1"
       sources."jest-regex-util-25.2.6"
       sources."jest-serializer-25.5.0"
@@ -110425,7 +111410,7 @@ in
           sources."util-0.11.1"
         ];
       })
-      sources."node-releases-2.0.2"
+      sources."node-releases-2.0.3"
       (sources."normalize-package-data-2.5.0" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -110521,7 +111506,7 @@ in
       sources."regenerate-1.4.2"
       sources."regenerate-unicode-properties-10.0.1"
       sources."regenerator-runtime-0.13.9"
-      sources."regenerator-transform-0.14.5"
+      sources."regenerator-transform-0.15.0"
       sources."regex-not-1.0.2"
       sources."regexpu-core-5.0.1"
       sources."regjsgen-0.6.0"
@@ -110865,7 +111850,7 @@ in
       sources."@types/commander-2.12.2"
       sources."@types/diff-3.5.5"
       sources."@types/get-stdin-5.0.1"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."commander-2.20.3"
       sources."diff-3.5.0"
       sources."get-stdin-5.0.1"
@@ -110950,7 +111935,7 @@ in
       sources."fuzzyset.js-0.0.1"
       sources."getpass-0.1.7"
       sources."glob-6.0.4"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."hogan.js-2.0.0"
       (sources."http-signature-1.3.6" // {
         dependencies = [
@@ -110987,7 +111972,7 @@ in
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
       sources."mkdirp-0.5.6"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       (sources."mooremachine-2.3.0" // {
         dependencies = [
           sources."assert-plus-0.2.0"
@@ -111225,16 +112210,16 @@ in
       sources."commander-6.2.1"
       sources."debug-3.2.7"
       sources."has-flag-4.0.0"
-      sources."iconv-lite-0.4.24"
+      sources."iconv-lite-0.6.3"
       sources."is-absolute-url-3.0.3"
       sources."is-relative-url-3.0.0"
       sources."isemail-3.2.0"
       sources."link-check-5.1.0"
       sources."lodash-4.17.21"
       sources."markdown-link-extractor-2.0.1"
-      sources."marked-4.0.12"
+      sources."marked-4.0.14"
       sources."ms-2.1.3"
-      sources."needle-3.0.0"
+      sources."needle-3.1.0"
       sources."progress-2.0.3"
       sources."punycode-2.1.1"
       sources."safer-buffer-2.1.2"
@@ -111438,7 +112423,7 @@ in
       })
       sources."ecc-jsbn-0.1.2"
       sources."entities-1.1.2"
-      sources."es5-ext-0.10.59"
+      sources."es5-ext-0.10.61"
       sources."es6-iterator-2.0.3"
       sources."es6-map-0.1.5"
       (sources."es6-set-0.1.5" // {
@@ -111492,7 +112477,7 @@ in
       sources."glob-7.2.0"
       sources."globals-9.18.0"
       sources."glogg-1.0.2"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."gulp-eslint-3.0.1"
       (sources."gulp-util-3.0.8" // {
         dependencies = [
@@ -111516,7 +112501,7 @@ in
       sources."inherits-2.0.4"
       sources."inquirer-0.12.0"
       sources."interpret-1.4.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-my-ip-valid-1.0.1"
       sources."is-my-json-valid-2.20.6"
@@ -111725,17 +112710,20 @@ in
   "@mermaid-js/mermaid-cli" = nodeEnv.buildNodePackage {
     name = "_at_mermaid-js_slash_mermaid-cli";
     packageName = "@mermaid-js/mermaid-cli";
-    version = "8.14.0";
+    version = "9.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@mermaid-js/mermaid-cli/-/mermaid-cli-8.14.0.tgz";
-      sha512 = "NHuFVPINakXJlAX0DHl3Bvcrz664ZblHfvB7M2X9fwTZNMZzoFTO2k0Q79Rh9QTmZTmmMjj0JmKMg7LiP+pFCA==";
+      url = "https://registry.npmjs.org/@mermaid-js/mermaid-cli/-/mermaid-cli-9.0.0.tgz";
+      sha512 = "Q6CWhguVKcCFotQXZO29o4VmnmOm5QqaZvwmXb3JHGBJ+ZAD/QRbL8670pNHFfKJqtYV93iXBx8AHgHcnKKgzA==";
     };
     dependencies = [
-      sources."@braintree/sanitize-url-3.1.0"
-      sources."@types/node-17.0.23"
-      sources."@types/yauzl-2.9.2"
+      sources."@braintree/sanitize-url-6.0.0"
+      sources."@types/node-17.0.25"
+      sources."@types/yauzl-2.10.0"
       sources."agent-base-6.0.2"
+      sources."ansi-escapes-4.3.2"
+      sources."ansi-regex-2.1.1"
       sources."ansi-styles-4.3.0"
+      sources."app-path-3.3.0"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bl-4.1.0"
@@ -111746,16 +112734,27 @@ in
       sources."chownr-1.1.4"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."commander-9.1.0"
+      sources."commander-9.2.0"
       sources."concat-map-0.0.1"
       sources."cross-fetch-3.1.5"
-      sources."d3-7.3.0"
-      sources."d3-array-3.1.1"
+      sources."cross-spawn-6.0.5"
+      (sources."cypress-image-snapshot-4.0.1" // {
+        dependencies = [
+          sources."ansi-styles-3.2.1"
+          sources."chalk-2.4.2"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."has-flag-3.0.0"
+          sources."supports-color-5.5.0"
+        ];
+      })
+      sources."d3-7.4.4"
+      sources."d3-array-3.1.6"
       sources."d3-axis-3.0.0"
       sources."d3-brush-3.0.0"
       sources."d3-chord-3.0.1"
       sources."d3-collection-1.0.7"
-      sources."d3-color-3.0.1"
+      sources."d3-color-3.1.0"
       sources."d3-contour-3.0.1"
       sources."d3-delaunay-6.0.2"
       sources."d3-dispatch-3.0.1"
@@ -111770,7 +112769,7 @@ in
       sources."d3-force-3.0.0"
       sources."d3-format-3.1.0"
       sources."d3-geo-3.0.1"
-      sources."d3-hierarchy-3.1.1"
+      sources."d3-hierarchy-3.1.2"
       sources."d3-interpolate-3.0.1"
       sources."d3-path-3.0.1"
       sources."d3-polygon-3.0.1"
@@ -111823,19 +112822,30 @@ in
           sources."iconv-lite-0.4.24"
         ];
       })
-      sources."debug-4.3.3"
+      sources."debug-4.3.4"
       sources."delaunator-5.0.0"
-      sources."devtools-protocol-0.0.969999"
-      sources."dompurify-2.3.5"
+      sources."devtools-protocol-0.0.981744"
+      sources."dompurify-2.3.6"
       sources."end-of-stream-1.4.4"
-      sources."extract-zip-2.0.1"
+      sources."escape-string-regexp-1.0.5"
+      sources."execa-1.0.0"
+      (sources."extract-zip-2.0.1" // {
+        dependencies = [
+          sources."get-stream-5.2.0"
+        ];
+      })
       sources."fd-slicer-1.1.0"
-      sources."find-up-4.1.0"
+      sources."find-up-3.0.0"
       sources."fs-constants-1.0.0"
+      sources."fs-extra-7.0.1"
       sources."fs.realpath-1.0.0"
-      sources."get-stream-5.2.0"
+      sources."get-stdin-5.0.1"
+      sources."get-stream-4.1.0"
       sources."glob-7.2.0"
+      sources."glur-1.1.2"
+      sources."graceful-fs-4.2.10"
       sources."graphlib-2.1.8"
+      sources."has-ansi-2.0.0"
       sources."has-flag-4.0.0"
       sources."https-proxy-agent-5.0.0"
       sources."iconv-lite-0.6.3"
@@ -111843,46 +112853,91 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."internmap-2.0.3"
+      sources."is-stream-1.1.0"
+      sources."isexe-2.0.0"
+      sources."iterm2-version-4.2.0"
+      (sources."jest-image-snapshot-4.2.0" // {
+        dependencies = [
+          sources."ansi-styles-2.2.1"
+          sources."chalk-1.1.3"
+          sources."supports-color-2.0.0"
+        ];
+      })
+      sources."jsonfile-4.0.0"
       sources."khroma-1.4.1"
-      sources."locate-path-5.0.0"
+      sources."locate-path-3.0.0"
       sources."lodash-4.17.21"
-      sources."mermaid-8.14.0"
+      sources."mermaid-9.0.0"
       sources."minimatch-3.1.2"
+      sources."minimist-1.2.6"
+      sources."mkdirp-0.5.6"
       sources."mkdirp-classic-0.5.3"
       sources."moment-mini-2.24.0"
       sources."ms-2.1.2"
+      sources."nice-try-1.0.5"
       sources."node-fetch-2.6.7"
+      sources."npm-run-path-2.0.2"
       sources."once-1.4.0"
+      sources."p-finally-1.0.0"
       sources."p-limit-2.3.0"
-      sources."p-locate-4.1.0"
+      sources."p-locate-3.0.0"
       sources."p-try-2.2.0"
-      sources."path-exists-4.0.0"
+      sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
+      sources."path-key-2.0.1"
       sources."pend-1.2.0"
-      sources."pkg-dir-4.2.0"
+      (sources."pixelmatch-5.2.1" // {
+        dependencies = [
+          sources."pngjs-4.0.1"
+        ];
+      })
+      sources."pkg-dir-3.0.0"
+      sources."plist-3.0.5"
+      sources."pngjs-3.4.0"
       sources."progress-2.0.3"
       sources."proxy-from-env-1.1.0"
       sources."pump-3.0.0"
-      sources."puppeteer-13.5.1"
+      (sources."puppeteer-13.6.0" // {
+        dependencies = [
+          sources."find-up-4.1.0"
+          sources."locate-path-5.0.0"
+          sources."p-locate-4.1.0"
+          sources."path-exists-4.0.0"
+          sources."pkg-dir-4.2.0"
+          sources."rimraf-3.0.2"
+        ];
+      })
       sources."readable-stream-3.6.0"
-      sources."rimraf-3.0.2"
+      sources."rimraf-2.7.1"
       sources."robust-predicates-3.0.1"
       sources."rw-1.3.3"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
+      sources."semver-5.7.1"
+      sources."shebang-command-1.2.0"
+      sources."shebang-regex-1.0.0"
+      sources."signal-exit-3.0.7"
+      sources."ssim.js-3.5.0"
       sources."string_decoder-1.3.0"
-      sources."stylis-4.0.13"
+      sources."strip-ansi-3.0.1"
+      sources."strip-eof-1.0.0"
+      sources."stylis-4.1.0"
       sources."supports-color-7.2.0"
       sources."tar-fs-2.1.1"
       sources."tar-stream-2.2.0"
+      sources."term-img-4.1.0"
       sources."through-2.3.8"
       sources."tr46-0.0.3"
+      sources."type-fest-0.21.3"
       sources."unbzip2-stream-1.4.3"
+      sources."universalify-0.1.2"
       sources."util-deprecate-1.0.2"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
+      sources."which-1.3.1"
       sources."wrappy-1.0.2"
       sources."ws-8.5.0"
+      sources."xmlbuilder-9.0.7"
       sources."yauzl-2.10.0"
     ];
     buildInputs = globalBuildInputs;
@@ -112161,7 +113216,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -112174,11 +113229,11 @@ in
       sources."@jest/environment-27.5.1"
       sources."@jest/fake-timers-27.5.1"
       sources."@jest/types-27.5.1"
-      sources."@ledgerhq/devices-6.24.1"
+      sources."@ledgerhq/devices-6.27.1"
       sources."@ledgerhq/errors-6.10.0"
-      sources."@ledgerhq/hw-transport-6.24.1"
-      sources."@ledgerhq/hw-transport-node-hid-6.24.1"
-      sources."@ledgerhq/hw-transport-node-hid-noevents-6.24.1"
+      sources."@ledgerhq/hw-transport-6.27.1"
+      sources."@ledgerhq/hw-transport-node-hid-6.27.1"
+      sources."@ledgerhq/hw-transport-node-hid-noevents-6.27.1"
       (sources."@ledgerhq/hw-transport-u2f-5.36.0-deprecated" // {
         dependencies = [
           sources."@ledgerhq/devices-5.51.1"
@@ -112211,7 +113266,7 @@ in
       sources."@types/istanbul-lib-coverage-2.0.4"
       sources."@types/istanbul-lib-report-3.0.0"
       sources."@types/istanbul-reports-3.0.1"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/stack-utils-2.0.1"
       sources."@types/yargs-16.0.4"
       sources."@types/yargs-parser-21.0.0"
@@ -112309,7 +113364,7 @@ in
       sources."glob-7.2.0"
       sources."global-dirs-3.0.0"
       sources."got-9.6.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-flag-4.0.0"
       sources."has-unicode-2.0.1"
       sources."has-yarn-2.1.0"
@@ -112386,7 +113441,7 @@ in
       })
       sources."node-addon-api-3.2.1"
       sources."node-fetch-2.6.7"
-      sources."node-gyp-build-4.3.0"
+      sources."node-gyp-build-4.4.0"
       sources."node-hid-2.1.1"
       sources."normalize-url-4.5.1"
       sources."npmlog-4.1.2"
@@ -112432,7 +113487,7 @@ in
       sources."ripemd160-2.0.2"
       sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -112535,7 +113590,7 @@ in
       sources."color-string-1.9.0"
       sources."colorspace-1.1.4"
       sources."enabled-2.0.0"
-      sources."fecha-4.2.1"
+      sources."fecha-4.2.3"
       sources."fn.name-1.1.0"
       sources."inherits-2.0.4"
       sources."is-arrayish-0.3.2"
@@ -112548,7 +113603,7 @@ in
       sources."readable-stream-3.6.0"
       sources."safe-buffer-5.2.1"
       sources."safe-stable-stringify-2.3.1"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."simple-swizzle-0.2.2"
       sources."stack-trace-0.0.10"
       sources."string_decoder-1.3.0"
@@ -112602,7 +113657,7 @@ in
     dependencies = [
       sources."@gar/promisify-1.1.3"
       sources."@npmcli/fs-2.1.0"
-      sources."@npmcli/move-file-1.1.2"
+      sources."@npmcli/move-file-2.0.0"
       sources."@tootallnate/once-2.0.0"
       sources."abbrev-1.1.1"
       sources."agent-base-6.0.2"
@@ -112613,7 +113668,7 @@ in
       sources."are-we-there-yet-3.0.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."cacache-16.0.3"
+      sources."cacache-16.0.4"
       sources."chownr-2.0.0"
       sources."clean-stack-2.2.0"
       sources."color-support-1.1.3"
@@ -112628,13 +113683,13 @@ in
       sources."err-code-2.0.3"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
-      sources."gauge-4.0.3"
+      sources."gauge-4.0.4"
       sources."glob-7.2.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-unicode-2.0.1"
       sources."http-cache-semantics-4.1.0"
       sources."http-proxy-agent-5.0.0"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."humanize-ms-1.2.1"
       sources."iconv-lite-0.6.3"
       sources."imurmurhash-0.1.4"
@@ -112646,8 +113701,8 @@ in
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-lambda-1.0.1"
       sources."isexe-2.0.0"
-      sources."lru-cache-7.7.1"
-      sources."make-fetch-happen-10.1.0"
+      sources."lru-cache-7.8.1"
+      sources."make-fetch-happen-10.1.2"
       sources."minimatch-3.1.2"
       sources."minipass-3.1.6"
       sources."minipass-collect-1.0.2"
@@ -112671,7 +113726,7 @@ in
       sources."rimraf-3.0.2"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      (sources."semver-7.3.5" // {
+      (sources."semver-7.3.7" // {
         dependencies = [
           sources."lru-cache-6.0.0"
         ];
@@ -112680,8 +113735,8 @@ in
       sources."signal-exit-3.0.7"
       sources."smart-buffer-4.2.0"
       sources."socks-2.6.2"
-      sources."socks-proxy-agent-6.1.1"
-      sources."ssri-8.0.1"
+      sources."socks-proxy-agent-6.2.0"
+      sources."ssri-9.0.0"
       sources."string-width-4.2.3"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.1"
@@ -112707,10 +113762,10 @@ in
   node-gyp-build = nodeEnv.buildNodePackage {
     name = "node-gyp-build";
     packageName = "node-gyp-build";
-    version = "4.3.0";
+    version = "4.4.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz";
-      sha512 = "iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==";
+      url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz";
+      sha512 = "amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -112815,7 +113870,7 @@ in
         ];
       })
       sources."glob-5.0.15"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."har-schema-1.0.5"
       sources."har-validator-4.2.1"
       sources."has-1.0.3"
@@ -112834,7 +113889,7 @@ in
       sources."invert-kv-1.0.0"
       sources."ipaddr.js-1.9.1"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-finite-1.1.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-typedarray-1.0.0"
@@ -113128,8 +114183,8 @@ in
       sha512 = "DAx4v9/W2MEBb/tHNO94bmjeELdAg7CVZlPJX+UBH1RsmXB0q/3ZYW1Zi55NVMVN/0sBBO1g+dI/L0NWCG8s9A==";
     };
     dependencies = [
-      sources."@babel/runtime-7.17.8"
-      sources."@mapbox/node-pre-gyp-1.0.8"
+      sources."@babel/runtime-7.17.9"
+      sources."@mapbox/node-pre-gyp-1.0.9"
       sources."@node-red/editor-api-2.2.2"
       sources."@node-red/editor-client-2.2.2"
       (sources."@node-red/nodes-2.2.2" // {
@@ -113152,8 +114207,9 @@ in
       sources."@szmarczak/http-timer-4.0.6"
       sources."@types/cacheable-request-6.0.2"
       sources."@types/http-cache-semantics-4.0.1"
+      sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.8"
@@ -113207,7 +114263,7 @@ in
       sources."cacheable-lookup-5.0.4"
       sources."cacheable-request-7.0.2"
       sources."cheerio-1.0.0-rc.10"
-      sources."cheerio-select-1.5.0"
+      sources."cheerio-select-1.6.0"
       sources."chownr-2.0.0"
       sources."cli-table-0.3.11"
       sources."clone-2.1.2"
@@ -113216,6 +114272,7 @@ in
       sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
       sources."commist-1.1.0"
+      sources."compress-brotli-1.3.6"
       sources."concat-map-0.0.1"
       (sources."concat-stream-1.6.2" // {
         dependencies = [
@@ -113234,8 +114291,8 @@ in
       sources."core-util-is-1.0.3"
       sources."cors-2.8.5"
       sources."cronosjs-1.7.1"
-      sources."css-select-4.2.1"
-      sources."css-what-5.1.0"
+      sources."css-select-4.3.0"
+      sources."css-what-6.1.0"
       sources."debug-2.6.9"
       (sources."decompress-response-6.0.0" // {
         dependencies = [
@@ -113248,10 +114305,10 @@ in
       sources."denque-2.0.1"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."detect-libc-1.0.3"
+      sources."detect-libc-2.0.1"
       sources."dicer-0.2.5"
-      sources."dom-serializer-1.3.2"
-      sources."domelementtype-2.2.0"
+      sources."dom-serializer-1.4.1"
+      sources."domelementtype-2.3.0"
       sources."domhandler-4.3.1"
       sources."domutils-2.8.0"
       (sources."duplexify-4.1.2" // {
@@ -113293,7 +114350,7 @@ in
       sources."get-stream-5.2.0"
       sources."glob-7.2.0"
       sources."got-11.8.3"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-unicode-2.0.1"
       sources."hash-sum-2.0.0"
       (sources."help-me-3.0.0" // {
@@ -113333,7 +114390,7 @@ in
           sources."universalify-2.0.0"
         ];
       })
-      sources."keyv-4.1.1"
+      sources."keyv-4.2.2"
       sources."leven-2.1.0"
       sources."lodash.clonedeep-4.5.0"
       sources."lowercase-keys-2.0.0"
@@ -113369,7 +114426,7 @@ in
         ];
       })
       sources."mkdirp-0.5.6"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."moment-timezone-0.5.34"
       (sources."mqtt-4.3.5" // {
         dependencies = [
@@ -113520,10 +114577,10 @@ in
   node2nix = nodeEnv.buildNodePackage {
     name = "node2nix";
     packageName = "node2nix";
-    version = "1.10.0";
+    version = "1.11.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node2nix/-/node2nix-1.10.0.tgz";
-      sha512 = "3hUEkGeUl9X2FQCeZ9K2/WiSdBjXVKMnGz7qQVGuWnyxwA8xqWi+dQueTd+YmOA7LmZAseQgok1CUcoTR7d2FQ==";
+      url = "https://registry.npmjs.org/node2nix/-/node2nix-1.11.0.tgz";
+      sha512 = "GG3s/A3EO0KetjI97VHgnqujsltMnrDy1cNZOV3gtIrHpajD7/0kAGsSjh/Dofm5i4kfwzHxCjqIDYxRFGOckQ==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
@@ -113571,7 +114628,7 @@ in
       sources."gauge-2.7.4"
       sources."getpass-0.1.7"
       sources."glob-7.2.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
@@ -113581,7 +114638,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-typedarray-1.0.0"
       sources."isarray-1.0.0"
@@ -113653,7 +114710,7 @@ in
       sources."rimraf-2.2.8"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."set-blocking-2.0.0"
       sources."signal-exit-3.0.7"
       sources."slasp-0.0.4"
@@ -113771,7 +114828,7 @@ in
       sources."glob-parent-5.1.2"
       sources."global-dirs-3.0.0"
       sources."got-9.6.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-flag-3.0.0"
       sources."has-yarn-2.1.0"
       sources."http-cache-semantics-4.1.0"
@@ -113849,7 +114906,7 @@ in
       sources."unique-string-2.0.0"
       (sources."update-notifier-5.1.0" // {
         dependencies = [
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
         ];
       })
       sources."url-parse-lax-3.0.0"
@@ -113881,7 +114938,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -113904,9 +114961,10 @@ in
       sources."@szmarczak/http-timer-4.0.6"
       sources."@types/cacheable-request-6.0.2"
       sources."@types/http-cache-semantics-4.0.1"
+      sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/parse-json-4.0.0"
       sources."@types/responselike-1.0.0"
@@ -113962,6 +115020,7 @@ in
       sources."code-point-at-1.1.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
+      sources."compress-brotli-1.3.6"
       sources."concat-map-0.0.1"
       (sources."configstore-5.0.1" // {
         dependencies = [
@@ -114016,7 +115075,7 @@ in
           sources."type-fest-0.10.0"
         ];
       })
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       (sources."has-ansi-2.0.0" // {
@@ -114078,7 +115137,7 @@ in
       })
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
@@ -114109,7 +115168,7 @@ in
       sources."js-tokens-4.0.0"
       sources."json-buffer-3.0.1"
       sources."json-parse-even-better-errors-2.3.1"
-      sources."keyv-4.1.1"
+      sources."keyv-4.2.2"
       sources."kind-of-6.0.3"
       sources."latest-version-5.1.0"
       sources."lines-and-columns-1.2.4"
@@ -114323,7 +115382,7 @@ in
       sources."rxjs-6.6.7"
       sources."safer-buffer-2.1.2"
       sources."scoped-regex-2.1.0"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -114400,10 +115459,10 @@ in
   npm = nodeEnv.buildNodePackage {
     name = "npm";
     packageName = "npm";
-    version = "8.5.5";
+    version = "8.7.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm/-/npm-8.5.5.tgz";
-      sha512 = "a1vl26nokCNlD+my/iNYmOUPx/hpYR4ZyZk8gb7/A2XXtrPZf2gTSJOnVjS77jQS+BSfIVQpipZwXWCL0+5wzg==";
+      url = "https://registry.npmjs.org/npm/-/npm-8.7.0.tgz";
+      sha512 = "fOSunmSa1K3dBv4YFoX54wew3PC6aYYDMGWBAonWRO4Yc7smYtk3nLrCda6+dtkTJwA8D4Tv/0wmnpYNgf5VFw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -114418,10 +115477,10 @@ in
   npm-check-updates = nodeEnv.buildNodePackage {
     name = "npm-check-updates";
     packageName = "npm-check-updates";
-    version = "12.5.4";
+    version = "12.5.9";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-12.5.4.tgz";
-      sha512 = "4+27zaTdieWgvPLaCZ/A6Q2WC1cYVcrc2SqVmLFYgkWBrKw1QkwpeV16FSvkFGZr3OdFyr7Dpjw8JRn4H2QxFw==";
+      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-12.5.9.tgz";
+      sha512 = "l9iOvD7EsQb96gFJL45V01YG6bP8+dmobYnSguvehPuNwgdWNMrE8RC8bSfURX5iUmX4bkobN4T8XMHXN9GMHA==";
     };
     dependencies = [
       sources."@gar/promisify-1.1.3"
@@ -114429,16 +115488,12 @@ in
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
       sources."@npmcli/fs-2.1.0"
-      (sources."@npmcli/git-3.0.0" // {
-        dependencies = [
-          sources."lru-cache-7.7.1"
-        ];
-      })
+      sources."@npmcli/git-3.0.1"
       sources."@npmcli/installed-package-contents-1.0.7"
-      sources."@npmcli/move-file-1.1.2"
-      sources."@npmcli/node-gyp-1.0.3"
-      sources."@npmcli/promise-spawn-1.3.2"
-      sources."@npmcli/run-script-3.0.1"
+      sources."@npmcli/move-file-2.0.0"
+      sources."@npmcli/node-gyp-2.0.0"
+      sources."@npmcli/promise-spawn-3.0.0"
+      sources."@npmcli/run-script-3.0.2"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@tootallnate/once-2.0.0"
@@ -114458,12 +115513,8 @@ in
       sources."brace-expansion-2.0.1"
       sources."braces-3.0.2"
       sources."buffer-from-1.1.2"
-      sources."builtins-1.0.3"
-      (sources."cacache-16.0.3" // {
-        dependencies = [
-          sources."lru-cache-7.7.1"
-        ];
-      })
+      sources."builtins-5.0.1"
+      sources."cacache-16.0.4"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."get-stream-5.2.0"
@@ -114483,7 +115534,7 @@ in
       sources."color-name-1.1.4"
       sources."color-support-1.1.3"
       sources."colors-1.0.3"
-      sources."commander-9.1.0"
+      sources."commander-9.2.0"
       sources."concat-map-0.0.1"
       sources."configstore-5.0.1"
       sources."console-control-strings-1.1.0"
@@ -114513,7 +115564,7 @@ in
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
-      sources."gauge-4.0.3"
+      sources."gauge-4.0.4"
       sources."get-stdin-8.0.0"
       sources."get-stream-4.1.0"
       (sources."glob-7.2.0" // {
@@ -114530,24 +115581,19 @@ in
       })
       sources."globby-11.1.0"
       sources."got-9.6.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
       sources."has-unicode-2.0.1"
       sources."has-yarn-2.1.0"
-      sources."hosted-git-info-4.1.0"
+      sources."hosted-git-info-5.0.0"
       sources."http-cache-semantics-4.1.0"
       sources."http-proxy-agent-5.0.0"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."humanize-ms-1.2.1"
       sources."iconv-lite-0.6.3"
       sources."ignore-5.2.0"
-      (sources."ignore-walk-4.0.1" // {
-        dependencies = [
-          sources."brace-expansion-1.1.11"
-          sources."minimatch-3.1.2"
-        ];
-      })
+      sources."ignore-walk-5.0.1"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
@@ -114557,7 +115603,7 @@ in
       sources."ini-1.3.8"
       sources."ip-1.1.5"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
@@ -114593,17 +115639,13 @@ in
       sources."locate-path-6.0.0"
       sources."lodash-4.17.21"
       sources."lowercase-keys-1.0.1"
-      sources."lru-cache-6.0.0"
+      sources."lru-cache-7.8.1"
       (sources."make-dir-3.1.0" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      (sources."make-fetch-happen-10.1.0" // {
-        dependencies = [
-          sources."lru-cache-7.7.1"
-        ];
-      })
+      sources."make-fetch-happen-10.1.2"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
       sources."mimic-response-1.0.1"
@@ -114622,25 +115664,15 @@ in
       sources."negotiator-0.6.3"
       sources."node-gyp-9.0.0"
       sources."nopt-5.0.0"
-      (sources."normalize-package-data-4.0.0" // {
-        dependencies = [
-          sources."hosted-git-info-5.0.0"
-          sources."lru-cache-7.7.1"
-        ];
-      })
+      sources."normalize-package-data-4.0.0"
       sources."normalize-url-4.5.1"
       sources."npm-bundled-1.1.2"
-      sources."npm-install-checks-4.0.0"
+      sources."npm-install-checks-5.0.0"
       sources."npm-normalize-package-bin-1.0.1"
-      (sources."npm-package-arg-9.0.1" // {
-        dependencies = [
-          sources."hosted-git-info-5.0.0"
-          sources."lru-cache-7.7.1"
-        ];
-      })
-      sources."npm-packlist-4.0.0"
-      sources."npm-pick-manifest-7.0.0"
-      sources."npm-registry-fetch-13.1.0"
+      sources."npm-package-arg-9.0.2"
+      sources."npm-packlist-5.0.0"
+      sources."npm-pick-manifest-7.0.1"
+      sources."npm-registry-fetch-13.1.1"
       sources."npmlog-6.0.1"
       sources."once-1.4.0"
       sources."p-cancelable-1.1.0"
@@ -114653,14 +115685,14 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."pacote-13.0.5"
+      sources."pacote-13.1.1"
       sources."parse-github-url-1.0.2"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-type-4.0.0"
       sources."picomatch-2.3.1"
       sources."prepend-http-2.0.0"
-      sources."proc-log-2.0.0"
+      sources."proc-log-2.0.1"
       sources."progress-2.0.3"
       sources."promise-inflight-1.0.1"
       sources."promise-retry-2.0.1"
@@ -114669,8 +115701,12 @@ in
       sources."pupa-2.1.1"
       sources."queue-microtask-1.2.3"
       sources."rc-1.2.8"
-      sources."rc-config-loader-4.0.0"
-      sources."read-package-json-5.0.0"
+      sources."rc-config-loader-4.1.0"
+      (sources."read-package-json-5.0.1" // {
+        dependencies = [
+          sources."glob-8.0.1"
+        ];
+      })
       sources."read-package-json-fast-2.0.3"
       sources."readable-stream-3.6.0"
       sources."registry-auth-token-4.2.1"
@@ -114684,7 +115720,11 @@ in
       sources."run-parallel-1.2.0"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.5"
+      (sources."semver-7.3.7" // {
+        dependencies = [
+          sources."lru-cache-6.0.0"
+        ];
+      })
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -114697,7 +115737,7 @@ in
       sources."slash-3.0.0"
       sources."smart-buffer-4.2.0"
       sources."socks-2.6.2"
-      sources."socks-proxy-agent-6.1.1"
+      sources."socks-proxy-agent-6.2.0"
       sources."source-map-0.6.1"
       sources."source-map-support-0.5.21"
       sources."spawn-please-1.0.0"
@@ -114705,7 +115745,7 @@ in
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.11"
-      sources."ssri-8.0.1"
+      sources."ssri-9.0.0"
       sources."string-width-4.2.3"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.1"
@@ -114723,7 +115763,7 @@ in
       sources."url-parse-lax-3.0.0"
       sources."util-deprecate-1.0.2"
       sources."validate-npm-package-license-3.0.4"
-      sources."validate-npm-package-name-3.0.0"
+      sources."validate-npm-package-name-4.0.0"
       sources."which-2.0.2"
       sources."wide-align-1.1.5"
       sources."widest-line-3.1.0"
@@ -114828,7 +115868,7 @@ in
           sources."mkdirp-0.5.6"
         ];
       })
-      sources."gauge-4.0.3"
+      sources."gauge-4.0.4"
       sources."getpass-0.1.7"
       sources."glob-7.2.0"
       sources."graceful-fs-2.0.3"
@@ -115056,13 +116096,13 @@ in
       sources."@ampproject/remapping-2.1.2"
       sources."@babel/code-frame-7.16.7"
       sources."@babel/compat-data-7.17.7"
-      (sources."@babel/core-7.17.8" // {
+      (sources."@babel/core-7.17.9" // {
         dependencies = [
           sources."json5-2.2.1"
           sources."semver-6.3.0"
         ];
       })
-      (sources."@babel/generator-7.17.7" // {
+      (sources."@babel/generator-7.17.9" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
@@ -115074,7 +116114,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/helper-create-class-features-plugin-7.17.6"
+      sources."@babel/helper-create-class-features-plugin-7.17.9"
       sources."@babel/helper-create-regexp-features-plugin-7.17.0"
       (sources."@babel/helper-define-polyfill-provider-0.3.1" // {
         dependencies = [
@@ -115083,8 +116123,7 @@ in
       })
       sources."@babel/helper-environment-visitor-7.16.7"
       sources."@babel/helper-explode-assignable-expression-7.16.7"
-      sources."@babel/helper-function-name-7.16.7"
-      sources."@babel/helper-get-function-arity-7.16.7"
+      sources."@babel/helper-function-name-7.17.9"
       sources."@babel/helper-hoist-variables-7.16.7"
       sources."@babel/helper-member-expression-to-functions-7.17.7"
       sources."@babel/helper-module-imports-7.16.7"
@@ -115099,9 +116138,9 @@ in
       sources."@babel/helper-validator-identifier-7.16.7"
       sources."@babel/helper-validator-option-7.16.7"
       sources."@babel/helper-wrap-function-7.16.8"
-      sources."@babel/helpers-7.17.8"
-      sources."@babel/highlight-7.16.10"
-      sources."@babel/parser-7.17.8"
+      sources."@babel/helpers-7.17.9"
+      sources."@babel/highlight-7.17.9"
+      sources."@babel/parser-7.17.9"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7"
       sources."@babel/plugin-proposal-async-generator-functions-7.16.8"
@@ -115151,7 +116190,7 @@ in
       sources."@babel/plugin-transform-literals-7.16.7"
       sources."@babel/plugin-transform-member-expression-literals-7.16.7"
       sources."@babel/plugin-transform-modules-amd-7.16.7"
-      sources."@babel/plugin-transform-modules-commonjs-7.17.7"
+      sources."@babel/plugin-transform-modules-commonjs-7.17.9"
       sources."@babel/plugin-transform-modules-systemjs-7.17.8"
       sources."@babel/plugin-transform-modules-umd-7.16.7"
       sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.8"
@@ -115160,7 +116199,7 @@ in
       sources."@babel/plugin-transform-parameters-7.16.7"
       sources."@babel/plugin-transform-property-literals-7.16.7"
       sources."@babel/plugin-transform-react-jsx-7.17.3"
-      sources."@babel/plugin-transform-regenerator-7.16.7"
+      sources."@babel/plugin-transform-regenerator-7.17.9"
       sources."@babel/plugin-transform-reserved-words-7.16.7"
       sources."@babel/plugin-transform-shorthand-properties-7.16.7"
       sources."@babel/plugin-transform-spread-7.16.7"
@@ -115175,14 +116214,14 @@ in
         ];
       })
       sources."@babel/preset-modules-0.1.5"
-      sources."@babel/runtime-7.17.8"
+      sources."@babel/runtime-7.17.9"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.17.3"
+      sources."@babel/traverse-7.17.9"
       sources."@babel/types-7.17.0"
       sources."@iarna/toml-2.2.5"
       sources."@jridgewell/resolve-uri-3.0.5"
       sources."@jridgewell/sourcemap-codec-1.4.11"
-      sources."@jridgewell/trace-mapping-0.3.4"
+      sources."@jridgewell/trace-mapping-0.3.8"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
       sources."@parcel/fs-1.11.0"
@@ -115191,7 +116230,7 @@ in
       sources."@parcel/watcher-1.12.1"
       sources."@parcel/workers-1.11.0"
       sources."@types/q-1.5.5"
-      sources."abab-2.0.5"
+      sources."abab-2.0.6"
       sources."acorn-7.4.1"
       (sources."acorn-globals-4.3.4" // {
         dependencies = [
@@ -115303,7 +116342,7 @@ in
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001320"
+      sources."caniuse-lite-1.0.30001332"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
       sources."chokidar-2.1.8"
@@ -115329,7 +116368,7 @@ in
       sources."convert-source-map-1.8.0"
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.21.1" // {
+      (sources."core-js-compat-3.22.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -115385,7 +116424,7 @@ in
       sources."cssstyle-1.4.0"
       sources."dashdash-1.14.1"
       sources."data-urls-1.1.0"
-      sources."deasync-0.1.24"
+      sources."deasync-0.1.26"
       sources."debug-4.3.4"
       sources."decode-uri-component-0.2.0"
       sources."deep-is-0.1.4"
@@ -115394,7 +116433,7 @@ in
           sources."clone-1.0.4"
         ];
       })
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       (sources."define-property-0.2.5" // {
         dependencies = [
           (sources."is-accessor-descriptor-0.1.6" // {
@@ -115422,7 +116461,7 @@ in
       })
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.2.0"
+          sources."domelementtype-2.3.0"
         ];
       })
       sources."domain-browser-1.2.0"
@@ -115430,7 +116469,7 @@ in
       sources."domexception-1.0.1"
       (sources."domhandler-4.3.1" // {
         dependencies = [
-          sources."domelementtype-2.2.0"
+          sources."domelementtype-2.3.0"
         ];
       })
       sources."domutils-1.7.0"
@@ -115440,7 +116479,7 @@ in
       sources."duplexer2-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.96"
+      sources."electron-to-chromium-1.4.114"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -115450,7 +116489,7 @@ in
       sources."entities-2.2.0"
       sources."envinfo-7.8.1"
       sources."error-ex-1.3.2"
-      (sources."es-abstract-1.19.1" // {
+      (sources."es-abstract-1.19.5" // {
         dependencies = [
           sources."object-inspect-1.12.0"
         ];
@@ -115512,7 +116551,7 @@ in
       })
       sources."glob-to-regexp-0.3.0"
       sources."globals-11.12.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."grapheme-breaker-0.3.2"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
@@ -115522,8 +116561,9 @@ in
           sources."ansi-regex-2.1.1"
         ];
       })
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
       sources."has-flag-3.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."has-value-1.0.0"
@@ -115556,8 +116596,8 @@ in
       })
       (sources."htmlparser2-6.1.0" // {
         dependencies = [
-          sources."dom-serializer-1.3.2"
-          sources."domelementtype-2.2.0"
+          sources."dom-serializer-1.4.1"
+          sources."domelementtype-2.3.0"
           sources."domutils-2.8.0"
         ];
       })
@@ -115585,7 +116625,7 @@ in
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.4"
       sources."is-color-stop-1.1.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       (sources."is-data-descriptor-1.0.0" // {
         dependencies = [
           sources."kind-of-6.0.3"
@@ -115604,12 +116644,12 @@ in
       sources."is-html-1.1.0"
       sources."is-negative-zero-2.0.2"
       sources."is-number-3.0.0"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-obj-2.0.0"
       sources."is-plain-object-2.0.4"
       sources."is-regex-1.1.4"
       sources."is-resolvable-1.1.0"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
       sources."is-typedarray-1.0.0"
@@ -115708,7 +116748,7 @@ in
           sources."punycode-1.4.1"
         ];
       })
-      sources."node-releases-2.0.2"
+      sources."node-releases-2.0.3"
       sources."normalize-path-3.0.0"
       sources."normalize-url-3.3.0"
       sources."nth-check-1.0.2"
@@ -115809,7 +116849,7 @@ in
       sources."postcss-ordered-values-4.1.2"
       sources."postcss-reduce-initial-4.0.3"
       sources."postcss-reduce-transforms-4.0.2"
-      sources."postcss-selector-parser-6.0.9"
+      sources."postcss-selector-parser-6.0.10"
       sources."postcss-svgo-4.0.3"
       sources."postcss-unique-selectors-4.0.1"
       sources."postcss-value-parser-3.3.1"
@@ -115857,7 +116897,7 @@ in
       sources."regenerate-1.4.2"
       sources."regenerate-unicode-properties-10.0.1"
       sources."regenerator-runtime-0.13.9"
-      sources."regenerator-transform-0.14.5"
+      sources."regenerator-transform-0.15.0"
       (sources."regex-not-1.0.2" // {
         dependencies = [
           sources."extend-shallow-3.0.2"
@@ -115903,7 +116943,7 @@ in
           sources."ms-2.1.3"
         ];
       })
-      sources."serialize-to-js-3.1.1"
+      sources."serialize-to-js-3.1.2"
       sources."serve-static-1.15.0"
       sources."set-value-2.0.1"
       sources."setimmediate-1.0.5"
@@ -116081,91 +117121,91 @@ in
   parcel = nodeEnv.buildNodePackage {
     name = "parcel";
     packageName = "parcel";
-    version = "2.4.0";
+    version = "2.4.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/parcel/-/parcel-2.4.0.tgz";
-      sha512 = "dPWpu4RnxG9HqiLvaF8COEWEnT/KrigrC6PyPaQ0zEgpBfp7/jzXZFBVaZk2N+lpvrbNEYMjN9bv5UQGJJszIw==";
+      url = "https://registry.npmjs.org/parcel/-/parcel-2.4.1.tgz";
+      sha512 = "H8n7cJ0rOt0AZZLuPuG6hvujUWiWz8kxx4pkqEDm31dijrbKb0pNgccXOllQ34em6r7elv6yH7lxox8jDCp0hw==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@parcel/bundler-default-2.4.0"
-      sources."@parcel/cache-2.4.0"
-      sources."@parcel/codeframe-2.4.0"
-      sources."@parcel/compressor-raw-2.4.0"
-      sources."@parcel/config-default-2.4.0"
-      sources."@parcel/core-2.4.0"
-      sources."@parcel/css-1.7.3"
-      sources."@parcel/css-darwin-arm64-1.7.3"
-      sources."@parcel/css-darwin-x64-1.7.3"
-      sources."@parcel/css-linux-arm-gnueabihf-1.7.3"
-      sources."@parcel/css-linux-arm64-gnu-1.7.3"
-      sources."@parcel/css-linux-arm64-musl-1.7.3"
-      sources."@parcel/css-linux-x64-gnu-1.7.3"
-      sources."@parcel/css-linux-x64-musl-1.7.3"
-      sources."@parcel/css-win32-x64-msvc-1.7.3"
-      sources."@parcel/diagnostic-2.4.0"
-      sources."@parcel/events-2.4.0"
-      sources."@parcel/fs-2.4.0"
-      sources."@parcel/fs-search-2.4.0"
-      sources."@parcel/graph-2.4.0"
-      sources."@parcel/hash-2.4.0"
-      sources."@parcel/logger-2.4.0"
-      sources."@parcel/markdown-ansi-2.4.0"
-      sources."@parcel/namer-default-2.4.0"
-      sources."@parcel/node-resolver-core-2.4.0"
-      sources."@parcel/optimizer-css-2.4.0"
-      sources."@parcel/optimizer-htmlnano-2.4.0"
-      sources."@parcel/optimizer-image-2.4.0"
-      sources."@parcel/optimizer-svgo-2.4.0"
-      sources."@parcel/optimizer-terser-2.4.0"
-      sources."@parcel/package-manager-2.4.0"
-      sources."@parcel/packager-css-2.4.0"
-      sources."@parcel/packager-html-2.4.0"
-      sources."@parcel/packager-js-2.4.0"
-      sources."@parcel/packager-raw-2.4.0"
-      sources."@parcel/packager-svg-2.4.0"
-      sources."@parcel/plugin-2.4.0"
-      sources."@parcel/reporter-cli-2.4.0"
-      sources."@parcel/reporter-dev-server-2.4.0"
-      sources."@parcel/resolver-default-2.4.0"
-      sources."@parcel/runtime-browser-hmr-2.4.0"
-      sources."@parcel/runtime-js-2.4.0"
-      sources."@parcel/runtime-react-refresh-2.4.0"
-      sources."@parcel/runtime-service-worker-2.4.0"
+      sources."@parcel/bundler-default-2.4.1"
+      sources."@parcel/cache-2.4.1"
+      sources."@parcel/codeframe-2.4.1"
+      sources."@parcel/compressor-raw-2.4.1"
+      sources."@parcel/config-default-2.4.1"
+      sources."@parcel/core-2.4.1"
+      sources."@parcel/css-1.8.1"
+      sources."@parcel/css-darwin-arm64-1.8.1"
+      sources."@parcel/css-darwin-x64-1.8.1"
+      sources."@parcel/css-linux-arm-gnueabihf-1.8.1"
+      sources."@parcel/css-linux-arm64-gnu-1.8.1"
+      sources."@parcel/css-linux-arm64-musl-1.8.1"
+      sources."@parcel/css-linux-x64-gnu-1.8.1"
+      sources."@parcel/css-linux-x64-musl-1.8.1"
+      sources."@parcel/css-win32-x64-msvc-1.8.1"
+      sources."@parcel/diagnostic-2.4.1"
+      sources."@parcel/events-2.4.1"
+      sources."@parcel/fs-2.4.1"
+      sources."@parcel/fs-search-2.4.1"
+      sources."@parcel/graph-2.4.1"
+      sources."@parcel/hash-2.4.1"
+      sources."@parcel/logger-2.4.1"
+      sources."@parcel/markdown-ansi-2.4.1"
+      sources."@parcel/namer-default-2.4.1"
+      sources."@parcel/node-resolver-core-2.4.1"
+      sources."@parcel/optimizer-css-2.4.1"
+      sources."@parcel/optimizer-htmlnano-2.4.1"
+      sources."@parcel/optimizer-image-2.4.1"
+      sources."@parcel/optimizer-svgo-2.4.1"
+      sources."@parcel/optimizer-terser-2.4.1"
+      sources."@parcel/package-manager-2.4.1"
+      sources."@parcel/packager-css-2.4.1"
+      sources."@parcel/packager-html-2.4.1"
+      sources."@parcel/packager-js-2.4.1"
+      sources."@parcel/packager-raw-2.4.1"
+      sources."@parcel/packager-svg-2.4.1"
+      sources."@parcel/plugin-2.4.1"
+      sources."@parcel/reporter-cli-2.4.1"
+      sources."@parcel/reporter-dev-server-2.4.1"
+      sources."@parcel/resolver-default-2.4.1"
+      sources."@parcel/runtime-browser-hmr-2.4.1"
+      sources."@parcel/runtime-js-2.4.1"
+      sources."@parcel/runtime-react-refresh-2.4.1"
+      sources."@parcel/runtime-service-worker-2.4.1"
       sources."@parcel/source-map-2.0.2"
-      sources."@parcel/transformer-babel-2.4.0"
-      sources."@parcel/transformer-css-2.4.0"
-      (sources."@parcel/transformer-html-2.4.0" // {
+      sources."@parcel/transformer-babel-2.4.1"
+      sources."@parcel/transformer-css-2.4.1"
+      (sources."@parcel/transformer-html-2.4.1" // {
         dependencies = [
           sources."posthtml-parser-0.10.2"
         ];
       })
-      sources."@parcel/transformer-image-2.4.0"
-      sources."@parcel/transformer-js-2.4.0"
-      sources."@parcel/transformer-json-2.4.0"
-      sources."@parcel/transformer-postcss-2.4.0"
-      (sources."@parcel/transformer-posthtml-2.4.0" // {
+      sources."@parcel/transformer-image-2.4.1"
+      sources."@parcel/transformer-js-2.4.1"
+      sources."@parcel/transformer-json-2.4.1"
+      sources."@parcel/transformer-postcss-2.4.1"
+      (sources."@parcel/transformer-posthtml-2.4.1" // {
         dependencies = [
           sources."posthtml-parser-0.10.2"
         ];
       })
-      sources."@parcel/transformer-raw-2.4.0"
-      sources."@parcel/transformer-react-refresh-wrap-2.4.0"
-      (sources."@parcel/transformer-svg-2.4.0" // {
+      sources."@parcel/transformer-raw-2.4.1"
+      sources."@parcel/transformer-react-refresh-wrap-2.4.1"
+      (sources."@parcel/transformer-svg-2.4.1" // {
         dependencies = [
           sources."posthtml-parser-0.10.2"
         ];
       })
-      sources."@parcel/types-2.4.0"
-      sources."@parcel/utils-2.4.0"
+      sources."@parcel/types-2.4.1"
+      sources."@parcel/utils-2.4.1"
       sources."@parcel/watcher-2.0.5"
-      sources."@parcel/workers-2.4.0"
+      sources."@parcel/workers-2.4.1"
       sources."@swc/helpers-0.3.8"
       sources."@trysound/sax-0.2.0"
       sources."@types/parse-json-4.0.0"
@@ -116177,7 +117217,7 @@ in
       sources."browserslist-4.20.2"
       sources."buffer-from-1.1.2"
       sources."callsites-3.1.0"
-      sources."caniuse-lite-1.0.30001320"
+      sources."caniuse-lite-1.0.30001332"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -116193,22 +117233,22 @@ in
       sources."color-name-1.1.3"
       sources."commander-7.2.0"
       sources."cosmiconfig-7.0.1"
-      sources."css-select-4.2.1"
+      sources."css-select-4.3.0"
       sources."css-tree-1.1.3"
-      sources."css-what-5.1.0"
+      sources."css-what-6.1.0"
       sources."csso-4.2.0"
       sources."detect-libc-1.0.3"
-      (sources."dom-serializer-1.3.2" // {
+      (sources."dom-serializer-1.4.1" // {
         dependencies = [
           sources."entities-2.2.0"
         ];
       })
-      sources."domelementtype-2.2.0"
+      sources."domelementtype-2.3.0"
       sources."domhandler-4.3.1"
       sources."domutils-2.8.0"
       sources."dotenv-7.0.0"
       sources."dotenv-expand-5.1.0"
-      sources."electron-to-chromium-1.4.96"
+      sources."electron-to-chromium-1.4.114"
       sources."entities-3.0.1"
       sources."error-ex-1.3.2"
       sources."escalade-3.1.1"
@@ -116216,7 +117256,7 @@ in
       sources."get-port-4.2.0"
       sources."globals-13.13.0"
       sources."has-flag-3.0.0"
-      sources."htmlnano-2.0.0"
+      sources."htmlnano-2.0.2"
       sources."htmlparser2-7.2.0"
       sources."import-fresh-3.3.0"
       sources."is-arrayish-0.2.1"
@@ -116228,15 +117268,22 @@ in
       sources."lines-and-columns-1.2.4"
       sources."lmdb-2.2.4"
       sources."mdn-data-2.0.14"
-      sources."msgpackr-1.5.5"
-      sources."msgpackr-extract-1.0.16"
+      sources."msgpackr-1.5.6"
+      sources."msgpackr-extract-1.1.4"
+      sources."msgpackr-extract-darwin-arm64-1.1.0"
+      sources."msgpackr-extract-darwin-x64-1.1.0"
+      sources."msgpackr-extract-linux-arm-1.1.0"
+      sources."msgpackr-extract-linux-arm64-1.1.0"
+      sources."msgpackr-extract-linux-x64-1.1.0"
+      sources."msgpackr-extract-win32-x64-1.1.0"
       sources."nan-2.15.0"
       sources."node-addon-api-3.2.1"
-      sources."node-gyp-build-4.3.0"
-      sources."node-releases-2.0.2"
+      sources."node-gyp-build-4.4.0"
+      sources."node-gyp-build-optional-packages-4.3.2"
+      sources."node-releases-2.0.3"
       sources."nth-check-2.0.1"
       sources."nullthrows-1.1.1"
-      sources."ordered-binary-1.2.4"
+      sources."ordered-binary-1.2.5"
       sources."parent-module-1.0.1"
       sources."parse-json-5.2.0"
       sources."path-type-4.0.0"
@@ -116322,7 +117369,7 @@ in
       sources."brace-expansion-1.1.11"
       sources."bunyan-1.8.15"
       sources."bunyan-syslog-udp-0.2.0"
-      sources."busboy-1.5.0"
+      sources."busboy-1.6.0"
       sources."bytes-3.0.0"
       sources."call-bind-1.0.2"
       sources."camelcase-5.3.1"
@@ -116350,7 +117397,7 @@ in
       sources."dashdash-1.14.1"
       sources."debug-2.6.9"
       sources."decamelize-1.2.0"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."delayed-stream-1.0.0"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
@@ -116400,11 +117447,12 @@ in
       sources."get-intrinsic-1.1.1"
       sources."getpass-0.1.7"
       sources."glob-7.2.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."handlebars-4.7.7"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."hat-0.0.3"
@@ -116446,7 +117494,7 @@ in
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
       sources."mkdirp-0.5.6"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."ms-2.0.0"
       sources."msgpack5-3.6.1"
       sources."mv-2.1.1"
@@ -116515,7 +117563,7 @@ in
       sources."serve-static-1.14.2"
       (sources."service-runner-2.9.0" // {
         dependencies = [
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
           sources."yargs-14.2.3"
         ];
       })
@@ -116536,7 +117584,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
-      sources."uglify-js-3.15.3"
+      sources."uglify-js-3.15.4"
       sources."unix-dgram-2.0.4"
       sources."unpipe-1.0.0"
       sources."uri-js-4.4.1"
@@ -116602,7 +117650,7 @@ in
       sources."fs-extra-7.0.1"
       sources."fs.realpath-1.0.0"
       sources."glob-7.2.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-flag-3.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -116723,7 +117771,7 @@ in
       sources."decompress-response-3.3.0"
       sources."deep-equal-1.1.1"
       sources."deep-extend-0.6.0"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."dns-equal-1.0.0"
       sources."dns-packet-1.3.4"
       sources."dns-txt-2.0.2"
@@ -116743,14 +117791,16 @@ in
       })
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
+      sources."functions-have-names-1.2.3"
       sources."get-browser-rtc-1.1.0"
       sources."get-intrinsic-1.1.1"
       sources."get-stdin-4.0.1"
       sources."glob-7.2.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
       sources."has-ansi-2.0.0"
       sources."has-flag-3.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."hat-0.0.3"
@@ -116780,7 +117830,7 @@ in
       sources."ipaddr.js-2.0.1"
       sources."is-arguments-1.1.1"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-date-object-1.0.5"
       sources."is-finite-1.1.0"
       sources."is-fullwidth-code-point-1.0.0"
@@ -116874,7 +117924,7 @@ in
       sources."read-pkg-up-1.0.1"
       sources."readable-stream-2.3.7"
       sources."redent-1.0.0"
-      sources."regexp.prototype.flags-1.4.1"
+      sources."regexp.prototype.flags-1.4.3"
       sources."repeating-2.0.1"
       sources."resolve-1.22.0"
       sources."restore-cursor-2.0.0"
@@ -116984,7 +118034,7 @@ in
       sources."arraybuffer.slice-0.0.7"
       sources."asn1-0.2.6"
       sources."assert-plus-1.0.0"
-      sources."async-2.6.3"
+      sources."async-2.6.4"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
@@ -117009,7 +118059,7 @@ in
       sources."blob-0.0.5"
       sources."bn.js-4.12.0"
       sources."bncode-0.5.3"
-      sources."body-parser-1.19.2"
+      sources."body-parser-1.20.0"
       sources."brace-expansion-1.1.11"
       sources."buffer-5.7.1"
       sources."buffer-alloc-1.2.0"
@@ -117020,6 +118070,7 @@ in
       sources."buffer-fill-1.0.0"
       sources."buffer-from-1.1.2"
       sources."bytes-3.1.2"
+      sources."call-bind-1.0.2"
       sources."caseless-0.12.0"
       sources."chrome-dgram-3.0.6"
       sources."chrome-dns-1.0.1"
@@ -117037,9 +118088,12 @@ in
       sources."concat-map-0.0.1"
       (sources."connect-multiparty-2.2.0" // {
         dependencies = [
+          sources."depd-1.1.2"
           sources."http-errors-1.7.3"
+          sources."on-finished-2.3.0"
           sources."qs-6.5.3"
           sources."setprototypeof-1.1.1"
+          sources."statuses-1.5.0"
           sources."toidentifier-1.0.0"
         ];
       })
@@ -117059,8 +118113,8 @@ in
       sources."debug-2.6.9"
       sources."decompress-response-3.3.0"
       sources."delayed-stream-1.0.0"
-      sources."depd-1.1.2"
-      sources."destroy-1.0.4"
+      sources."depd-2.0.0"
+      sources."destroy-1.2.0"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."encodeurl-1.0.2"
@@ -117082,8 +118136,15 @@ in
       sources."events-3.3.0"
       (sources."express-4.17.3" // {
         dependencies = [
+          sources."body-parser-1.19.2"
+          sources."depd-1.1.2"
+          sources."http-errors-1.8.1"
+          sources."on-finished-2.3.0"
+          sources."qs-6.9.7"
+          sources."raw-body-2.4.3"
           sources."safe-buffer-5.2.1"
           sources."serve-static-1.14.2"
+          sources."statuses-1.5.0"
         ];
       })
       sources."extend-3.0.2"
@@ -117091,7 +118152,12 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fifo-0.1.4"
-      sources."finalhandler-1.1.2"
+      (sources."finalhandler-1.1.2" // {
+        dependencies = [
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
+        ];
+      })
       sources."flatten-0.0.1"
       sources."fluent-ffmpeg-2.1.2"
       sources."forever-agent-0.6.1"
@@ -117101,20 +118167,24 @@ in
       sources."fs-chunk-store-1.7.0"
       sources."fs-constants-1.0.0"
       sources."fs.realpath-1.0.0"
+      sources."function-bind-1.1.1"
       sources."get-browser-rtc-1.1.0"
+      sources."get-intrinsic-1.1.1"
       sources."getpass-0.1.7"
       sources."glob-7.2.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
+      sources."has-1.0.3"
       (sources."has-binary2-1.0.3" // {
         dependencies = [
           sources."isarray-2.0.1"
         ];
       })
       sources."has-cors-1.1.0"
+      sources."has-symbols-1.0.3"
       sources."hat-0.0.3"
-      sources."http-errors-1.8.1"
+      sources."http-errors-2.0.0"
       sources."http-signature-1.2.0"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
@@ -117171,19 +118241,23 @@ in
       sources."mkdirp-classic-0.5.3"
       (sources."morgan-1.10.0" // {
         dependencies = [
-          sources."depd-2.0.0"
+          sources."on-finished-2.3.0"
         ];
       })
       sources."ms-2.0.0"
       (sources."multiparty-4.2.3" // {
         dependencies = [
+          sources."depd-1.1.2"
+          sources."http-errors-1.8.1"
           sources."safe-buffer-5.2.1"
+          sources."statuses-1.5.0"
         ];
       })
       sources."negotiator-0.6.3"
       sources."normalize-path-3.0.0"
       sources."oauth-sign-0.9.0"
-      sources."on-finished-2.3.0"
+      sources."object-inspect-1.12.0"
+      sources."on-finished-2.4.1"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       sources."options-0.0.6"
@@ -117213,7 +118287,7 @@ in
       sources."psl-1.8.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
-      sources."qs-6.9.7"
+      sources."qs-6.10.3"
       sources."queue-microtask-1.2.3"
       sources."queue-tick-1.0.0"
       sources."random-access-file-2.2.1"
@@ -117222,7 +118296,7 @@ in
       sources."random-iterate-1.0.1"
       sources."randombytes-2.1.0"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.3"
+      sources."raw-body-2.5.1"
       sources."re-emitter-1.1.4"
       sources."read-torrent-1.3.1"
       sources."readable-stream-3.6.0"
@@ -117239,21 +118313,22 @@ in
       sources."safer-buffer-2.1.2"
       (sources."send-0.17.2" // {
         dependencies = [
+          sources."depd-1.1.2"
+          sources."destroy-1.0.4"
+          sources."http-errors-1.8.1"
           sources."ms-2.1.3"
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
         ];
       })
       (sources."serve-static-1.15.0" // {
         dependencies = [
-          sources."depd-2.0.0"
-          sources."destroy-1.2.0"
-          sources."http-errors-2.0.0"
           sources."ms-2.1.3"
-          sources."on-finished-2.4.1"
           sources."send-0.18.0"
-          sources."statuses-2.0.1"
         ];
       })
       sources."setprototypeof-1.2.0"
+      sources."side-channel-1.0.4"
       sources."simple-concat-1.0.1"
       sources."simple-get-2.8.2"
       (sources."simple-peer-6.4.4" // {
@@ -117293,7 +118368,7 @@ in
       })
       sources."speedometer-0.1.4"
       sources."sshpk-1.17.0"
-      sources."statuses-1.5.0"
+      sources."statuses-2.0.1"
       (sources."string2compact-1.3.2" // {
         dependencies = [
           sources."ipaddr.js-2.0.1"
@@ -117354,10 +118429,10 @@ in
   pkg = nodeEnv.buildNodePackage {
     name = "pkg";
     packageName = "pkg";
-    version = "5.5.2";
+    version = "5.6.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pkg/-/pkg-5.5.2.tgz";
-      sha512 = "pD0UB2ud01C6pVv2wpGsTYJrXI/bnvGRYvMLd44wFzA1p+A2jrlTGFPAYa7YEYzmitXhx23PqalaG1eUEnSwcA==";
+      url = "https://registry.npmjs.org/pkg/-/pkg-5.6.0.tgz";
+      sha512 = "mHrAVSQWmHA41RnUmRpC7pK9lNnMfdA16CF3cqOI22a8LZxOQzF7M8YWtA2nfs+d7I0MTDXOtkDsAsFXeCpYjg==";
     };
     dependencies = [
       sources."@babel/helper-validator-identifier-7.16.7"
@@ -117424,17 +118499,17 @@ in
       sources."github-from-package-0.0.0"
       sources."glob-parent-5.1.2"
       sources."globby-11.1.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
       sources."has-unicode-2.0.1"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."ieee754-1.2.1"
       sources."ignore-5.2.0"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."into-stream-6.0.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
@@ -117470,7 +118545,7 @@ in
       sources."path-parse-1.0.7"
       sources."path-type-4.0.0"
       sources."picomatch-2.3.1"
-      sources."pkg-fetch-3.2.6"
+      sources."pkg-fetch-3.3.0"
       sources."prebuild-install-6.1.4"
       sources."prelude-ls-1.1.2"
       sources."process-nextick-args-2.0.1"
@@ -117484,7 +118559,7 @@ in
       sources."reusify-1.0.4"
       sources."run-parallel-1.2.0"
       sources."safe-buffer-5.1.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."set-blocking-2.0.0"
       sources."signal-exit-3.0.7"
       sources."simple-concat-1.0.1"
@@ -117560,7 +118635,7 @@ in
       })
       (sources."@pm2/io-5.0.0" // {
         dependencies = [
-          sources."async-2.6.3"
+          sources."async-2.6.4"
           sources."eventemitter2-6.4.5"
           sources."semver-6.3.0"
           sources."tslib-1.9.3"
@@ -117568,7 +118643,7 @@ in
       })
       (sources."@pm2/js-api-0.6.7" // {
         dependencies = [
-          sources."async-2.6.3"
+          sources."async-2.6.4"
           sources."eventemitter2-6.4.5"
         ];
       })
@@ -117645,19 +118720,19 @@ in
       sources."git-sha1-0.1.2"
       sources."glob-7.2.0"
       sources."glob-parent-5.1.2"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
       sources."http-errors-2.0.0"
       sources."http-proxy-agent-4.0.1"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."iconv-lite-0.4.24"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."ip-1.1.5"
       sources."is-binary-path-2.1.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
@@ -117719,7 +118794,7 @@ in
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
-      (sources."semver-7.3.5" // {
+      (sources."semver-7.3.7" // {
         dependencies = [
           sources."lru-cache-6.0.0"
           sources."yallist-4.0.0"
@@ -117738,7 +118813,7 @@ in
       sources."string_decoder-0.10.31"
       sources."supports-color-7.2.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."systeminformation-5.11.9"
+      sources."systeminformation-5.11.12"
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.1"
       sources."tslib-2.3.1"
@@ -117750,7 +118825,7 @@ in
       sources."uuid-3.4.0"
       (sources."vizion-2.2.1" // {
         dependencies = [
-          sources."async-2.6.3"
+          sources."async-2.6.4"
         ];
       })
       sources."vm2-3.9.9"
@@ -117774,10 +118849,10 @@ in
   pnpm = nodeEnv.buildNodePackage {
     name = "pnpm";
     packageName = "pnpm";
-    version = "6.32.3";
+    version = "6.32.9";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pnpm/-/pnpm-6.32.3.tgz";
-      sha512 = "lMQgROSwiUA+kt+suAPinjNwqevS1Iz0rppWNZ3jHhzeP07RFRQ+Ksai2OlAnM+YjlbHT9niQ4ICBVSqcdQ04w==";
+      url = "https://registry.npmjs.org/pnpm/-/pnpm-6.32.9.tgz";
+      sha512 = "fU/urJXv2Q8l4n8FW4Qx54KGDTVMpa3n7azqa7i65XZtG5Mcpa35D+HTmAL/7G3u/3R9WGPG4CdLU7631Ti6aA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -117801,7 +118876,7 @@ in
       sources."commander-2.11.0"
       sources."file-or-stdin-1.0.2"
       sources."get-stdin-5.0.1"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."inspect-with-kind-1.0.5"
       sources."kind-of-6.0.3"
       sources."poor-mans-t-sql-formatter-1.6.10"
@@ -117826,7 +118901,7 @@ in
       sha512 = "lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==";
     };
     dependencies = [
-      sources."nanoid-3.3.1"
+      sources."nanoid-3.3.3"
       sources."picocolors-1.0.0"
       sources."source-map-js-1.0.2"
     ];
@@ -117869,13 +118944,13 @@ in
       sources."fast-glob-3.2.11"
       sources."fastq-1.13.0"
       sources."fill-range-7.0.1"
-      sources."fs-extra-10.0.1"
+      sources."fs-extra-10.1.0"
       sources."fsevents-2.3.2"
       sources."get-caller-file-2.0.5"
       sources."get-stdin-9.0.0"
       sources."glob-parent-5.1.2"
       sources."globby-12.2.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."ignore-5.2.0"
       sources."is-binary-path-2.1.0"
       sources."is-extglob-2.1.1"
@@ -117891,7 +118966,7 @@ in
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
       sources."pify-2.3.0"
-      sources."postcss-load-config-3.1.3"
+      sources."postcss-load-config-3.1.4"
       sources."postcss-reporter-7.0.5"
       sources."pretty-hrtime-1.0.3"
       sources."queue-microtask-1.2.3"
@@ -117909,7 +118984,7 @@ in
       sources."wrap-ansi-7.0.0"
       sources."y18n-5.0.8"
       sources."yaml-1.10.2"
-      sources."yargs-17.4.0"
+      sources."yargs-17.4.1"
       sources."yargs-parser-21.0.1"
     ];
     buildInputs = globalBuildInputs;
@@ -117925,10 +119000,10 @@ in
   prebuild-install = nodeEnv.buildNodePackage {
     name = "prebuild-install";
     packageName = "prebuild-install";
-    version = "7.0.1";
+    version = "7.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.0.1.tgz";
-      sha512 = "QBSab31WqkyxpnMWQxubYAHR5S9B2+r81ucocew34Fkl98FhvKIF50jIJnNOBmAZfyNV7vE5T6gd3hTVWgY6tg==";
+      url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.0.tgz";
+      sha512 = "CNcMgI1xBypOyGqjp3wOc8AAo1nMhZS3Cwd3iHIxOdAUbb+YxdNuM4Z5iIrZ8RLvOsf3F3bl7b7xGq6DjQoNYA==";
     };
     dependencies = [
       sources."ansi-regex-2.1.1"
@@ -117965,7 +119040,7 @@ in
       sources."minimist-1.2.6"
       sources."mkdirp-classic-0.5.3"
       sources."napi-build-utils-1.0.2"
-      sources."node-abi-3.8.0"
+      sources."node-abi-3.15.0"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
       sources."object-assign-4.1.1"
@@ -117975,7 +119050,7 @@ in
       sources."rc-1.2.8"
       sources."readable-stream-2.3.7"
       sources."safe-buffer-5.1.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."set-blocking-2.0.0"
       sources."signal-exit-3.0.7"
       sources."simple-concat-1.0.1"
@@ -118009,10 +119084,10 @@ in
   prettier = nodeEnv.buildNodePackage {
     name = "prettier";
     packageName = "prettier";
-    version = "2.6.1";
+    version = "2.6.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/prettier/-/prettier-2.6.1.tgz";
-      sha512 = "8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A==";
+      url = "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz";
+      sha512 = "PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -118038,11 +119113,11 @@ in
       sources."function-bind-1.1.1"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."minimist-1.2.6"
       sources."nanolru-1.0.0"
       sources."path-parse-1.0.7"
-      sources."prettier-2.6.1"
+      sources."prettier-2.6.2"
       sources."resolve-1.22.0"
       sources."supports-color-8.1.1"
       sources."supports-preserve-symlinks-flag-1.0.0"
@@ -118084,13 +119159,13 @@ in
   prisma = nodeEnv.buildNodePackage {
     name = "prisma";
     packageName = "prisma";
-    version = "3.11.1";
+    version = "3.12.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/prisma/-/prisma-3.11.1.tgz";
-      sha512 = "aYn8bQwt1xwR2oSsVNHT4PXU7EhsThIwmpNB/MNUaaMx5OPLTro6VdNJe/sJssXFLxhamfWeMjwmpXjljo6xkg==";
+      url = "https://registry.npmjs.org/prisma/-/prisma-3.12.0.tgz";
+      sha512 = "ltCMZAx1i0i9xuPM692Srj8McC665h6E5RqJom999sjtVSccHSD8Z+HSdBN2183h9PJKvC5dapkn78dd0NWMBg==";
     };
     dependencies = [
-      sources."@prisma/engines-3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9"
+      sources."@prisma/engines-3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -118105,31 +119180,16 @@ in
   "@prisma/language-server" = nodeEnv.buildNodePackage {
     name = "_at_prisma_slash_language-server";
     packageName = "@prisma/language-server";
-    version = "3.11.0";
+    version = "3.12.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@prisma/language-server/-/language-server-3.11.0.tgz";
-      sha512 = "gH48Ytf2EOtKAM2uDGbGwh/Y3gHIsHigV4nBbnsodbCZpirbbWXxO/L5+sY1nSeU49wnd6GUcQ7dqZCMW+bcaQ==";
+      url = "https://registry.npmjs.org/@prisma/language-server/-/language-server-3.12.0.tgz";
+      sha512 = "YP22QXvdwCHKmYObWJzmHgFJKJ/g4NDhgJ22vfcOYVRIqu4PanK8XyBtjiKqj4SJMkg1QjhxWkdH+KSA6wQszA==";
     };
     dependencies = [
-      sources."@prisma/prisma-fmt-wasm-3.11.0-48.b371888aaf8f51357c7457d836b86d12da91658b"
+      sources."@prisma/prisma-fmt-wasm-3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980"
       sources."@types/js-levenshtein-1.1.1"
-      sources."anymatch-3.1.2"
-      sources."binary-extensions-2.2.0"
-      sources."braces-3.0.2"
-      sources."chokidar-3.5.3"
-      sources."fill-range-7.0.1"
-      sources."fsevents-2.3.2"
-      sources."glob-parent-5.1.2"
-      sources."is-binary-path-2.1.0"
-      sources."is-extglob-2.1.1"
-      sources."is-glob-4.0.3"
-      sources."is-number-7.0.0"
       sources."js-levenshtein-1.1.6"
       sources."klona-2.0.5"
-      sources."normalize-path-3.0.0"
-      sources."picomatch-2.3.1"
-      sources."readdirp-3.6.0"
-      sources."to-regex-range-5.0.1"
       sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-7.0.0"
       sources."vscode-languageserver-protocol-3.16.0"
@@ -118138,7 +119198,7 @@ in
     ];
     buildInputs = globalBuildInputs;
     meta = {
-      description = "Implementation of a language server in Node.";
+      description = "Prisma Language Server";
       homepage = "https://github.com/prisma/language-tools#readme";
       license = "Apache-2.0";
     };
@@ -118299,7 +119359,7 @@ in
           sources."glob-7.1.7"
         ];
       })
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
       (sources."hash-base-3.1.0" // {
         dependencies = [
@@ -118320,7 +119380,7 @@ in
         ];
       })
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."json-stable-stringify-0.0.1"
@@ -118557,16 +119617,16 @@ in
       sources."duplexer3-0.1.4"
       sources."end-of-stream-1.4.4"
       sources."follow-redirects-1.14.9"
-      sources."fs-extra-10.0.1"
+      sources."fs-extra-10.1.0"
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
       sources."get-stream-4.1.0"
       sources."got-9.6.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
       sources."has-symbols-1.0.3"
       sources."http-cache-semantics-4.1.0"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."ini-1.3.8"
       sources."ip-1.1.5"
       sources."is-docker-2.2.1"
@@ -118581,7 +119641,7 @@ in
       sources."lowercase-keys-1.0.1"
       sources."mimic-response-1.0.1"
       sources."minimist-1.2.6"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."ms-2.1.2"
       sources."node-abort-controller-3.0.1"
       sources."normalize-url-4.5.1"
@@ -118631,10 +119691,10 @@ in
   pyright = nodeEnv.buildNodePackage {
     name = "pyright";
     packageName = "pyright";
-    version = "1.1.233";
+    version = "1.1.239";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.233.tgz";
-      sha512 = "qjyKJd6mfXLwaBls4Ww0CmML+K2gA4NnTelxGktLC3JQv7ioWU7lmiQ1KSr1BnmwuuTfsaJSDN3f+hUf9YPfWg==";
+      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.239.tgz";
+      sha512 = "WiXtSVKfoT5x/f6+AGJmB/jXhmEeexmvqqZ//MtCwLRI7hPmaRJJyfFCjJi+2ezEFxwcCjQQQTbclrG8jF6o/A==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -118649,10 +119709,10 @@ in
   quicktype = nodeEnv.buildNodePackage {
     name = "quicktype";
     packageName = "quicktype";
-    version = "15.0.260";
+    version = "15.0.261";
     src = fetchurl {
-      url = "https://registry.npmjs.org/quicktype/-/quicktype-15.0.260.tgz";
-      sha512 = "OYP77enVz2UkcdDqVFc2AcFGYjk5/ENGYZHmSEY5Oy6Y2xVatlHUnrScddEkI+xJxSfYS6UXSH8oOTW7mEOiEw==";
+      url = "https://registry.npmjs.org/quicktype/-/quicktype-15.0.261.tgz";
+      sha512 = "y2Se/GFGSeFNfON7X0MEJO8K+Lm23hWEZs5UMP9dVy3ShSYng6HTVw1YmqreUwGCLRGn4jD9TjNB1oqyaT3NBw==";
     };
     dependencies = [
       sources."@mark.probst/typescript-json-schema-0.32.0"
@@ -118714,7 +119774,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."invert-kv-2.0.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-stream-1.1.0"
       sources."is-url-1.2.4"
@@ -118745,7 +119805,7 @@ in
       sources."mimic-fn-2.1.0"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."nice-try-1.0.5"
       sources."node-fetch-2.6.7"
       sources."npm-run-path-2.0.2"
@@ -118839,7 +119899,7 @@ in
           sources."pako-0.2.9"
         ];
       })
-      sources."urijs-1.19.10"
+      sources."urijs-1.19.11"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."vlq-0.2.3"
@@ -118896,8 +119956,8 @@ in
       sources."concat-map-0.0.1"
       sources."cycle-1.0.3"
       sources."deep-equal-2.0.5"
-      sources."define-properties-1.1.3"
-      sources."es-abstract-1.19.1"
+      sources."define-properties-1.1.4"
+      sources."es-abstract-1.19.5"
       sources."es-get-iterator-1.1.2"
       sources."es-to-primitive-1.2.1"
       sources."escape-string-regexp-1.0.5"
@@ -118905,12 +119965,14 @@ in
       sources."foreach-2.0.5"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
+      sources."functions-have-names-1.2.3"
       sources."get-intrinsic-1.1.1"
       sources."get-symbol-description-1.0.0"
       sources."glob-7.2.0"
       sources."has-1.0.3"
       sources."has-ansi-2.0.0"
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."i-0.3.7"
@@ -118924,10 +119986,10 @@ in
       sources."is-date-object-1.0.5"
       sources."is-map-2.0.2"
       sources."is-negative-zero-2.0.2"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-regex-1.1.4"
       sources."is-set-2.0.2"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.8"
@@ -118950,7 +120012,7 @@ in
       sources."pkginfo-0.4.1"
       sources."prompt-0.2.14"
       sources."read-1.0.7"
-      sources."regexp.prototype.flags-1.4.1"
+      sources."regexp.prototype.flags-1.4.3"
       sources."revalidator-0.1.8"
       sources."rimraf-2.7.1"
       sources."semver-5.7.1"
@@ -118995,12 +120057,12 @@ in
       sources."@babel/cli-7.17.6"
       sources."@babel/code-frame-7.16.7"
       sources."@babel/compat-data-7.17.7"
-      (sources."@babel/core-7.17.8" // {
+      (sources."@babel/core-7.17.9" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/generator-7.17.7"
+      sources."@babel/generator-7.17.9"
       sources."@babel/helper-annotate-as-pure-7.16.7"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.7"
       (sources."@babel/helper-compilation-targets-7.17.7" // {
@@ -119008,7 +120070,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/helper-create-class-features-plugin-7.17.6"
+      sources."@babel/helper-create-class-features-plugin-7.17.9"
       sources."@babel/helper-create-regexp-features-plugin-7.17.0"
       (sources."@babel/helper-define-polyfill-provider-0.3.1" // {
         dependencies = [
@@ -119017,8 +120079,7 @@ in
       })
       sources."@babel/helper-environment-visitor-7.16.7"
       sources."@babel/helper-explode-assignable-expression-7.16.7"
-      sources."@babel/helper-function-name-7.16.7"
-      sources."@babel/helper-get-function-arity-7.16.7"
+      sources."@babel/helper-function-name-7.17.9"
       sources."@babel/helper-hoist-variables-7.16.7"
       sources."@babel/helper-member-expression-to-functions-7.17.7"
       sources."@babel/helper-module-imports-7.16.7"
@@ -119033,9 +120094,9 @@ in
       sources."@babel/helper-validator-identifier-7.16.7"
       sources."@babel/helper-validator-option-7.16.7"
       sources."@babel/helper-wrap-function-7.16.8"
-      sources."@babel/helpers-7.17.8"
-      sources."@babel/highlight-7.16.10"
-      sources."@babel/parser-7.17.8"
+      sources."@babel/helpers-7.17.9"
+      sources."@babel/highlight-7.17.9"
+      sources."@babel/parser-7.17.9"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7"
       sources."@babel/plugin-proposal-async-generator-functions-7.16.8"
@@ -119085,7 +120146,7 @@ in
       sources."@babel/plugin-transform-literals-7.16.7"
       sources."@babel/plugin-transform-member-expression-literals-7.16.7"
       sources."@babel/plugin-transform-modules-amd-7.16.7"
-      sources."@babel/plugin-transform-modules-commonjs-7.17.7"
+      sources."@babel/plugin-transform-modules-commonjs-7.17.9"
       sources."@babel/plugin-transform-modules-systemjs-7.17.8"
       sources."@babel/plugin-transform-modules-umd-7.16.7"
       sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.8"
@@ -119097,7 +120158,7 @@ in
       sources."@babel/plugin-transform-react-jsx-7.17.3"
       sources."@babel/plugin-transform-react-jsx-development-7.16.7"
       sources."@babel/plugin-transform-react-pure-annotations-7.16.7"
-      sources."@babel/plugin-transform-regenerator-7.16.7"
+      sources."@babel/plugin-transform-regenerator-7.17.9"
       sources."@babel/plugin-transform-reserved-words-7.16.7"
       (sources."@babel/plugin-transform-runtime-7.17.0" // {
         dependencies = [
@@ -119120,19 +120181,19 @@ in
       sources."@babel/preset-react-7.16.7"
       sources."@babel/preset-stage-0-7.8.3"
       sources."@babel/register-7.17.7"
-      sources."@babel/runtime-7.17.8"
+      sources."@babel/runtime-7.17.9"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.17.3"
+      sources."@babel/traverse-7.17.9"
       sources."@babel/types-7.17.0"
       sources."@jridgewell/resolve-uri-3.0.5"
       sources."@jridgewell/sourcemap-codec-1.4.11"
-      sources."@jridgewell/trace-mapping-0.3.4"
+      sources."@jridgewell/trace-mapping-0.3.8"
       sources."@reach/router-1.3.4"
       sources."@sindresorhus/is-0.7.0"
       sources."@types/glob-7.2.0"
       sources."@types/json-schema-7.0.11"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/parse-json-4.0.0"
       sources."@types/q-1.5.5"
       sources."@webassemblyjs/ast-1.9.0"
@@ -119200,7 +120261,7 @@ in
         ];
       })
       sources."assign-symbols-1.0.0"
-      sources."async-2.6.3"
+      sources."async-2.6.4"
       sources."async-each-1.0.3"
       sources."async-limiter-1.0.1"
       sources."atob-2.1.2"
@@ -119211,7 +120272,7 @@ in
       })
       sources."axios-0.21.4"
       sources."babel-core-7.0.0-bridge.0"
-      (sources."babel-loader-8.2.4" // {
+      (sources."babel-loader-8.2.5" // {
         dependencies = [
           sources."find-cache-dir-3.3.2"
           sources."find-up-4.1.0"
@@ -119324,7 +120385,7 @@ in
       sources."camel-case-3.0.0"
       sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001320"
+      sources."caniuse-lite-1.0.30001332"
       sources."case-sensitive-paths-webpack-plugin-2.4.0"
       sources."caw-2.0.1"
       sources."chalk-2.4.2"
@@ -119408,7 +120469,7 @@ in
       sources."copy-concurrently-1.0.5"
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.21.1" // {
+      (sources."core-js-compat-3.22.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -119512,7 +120573,7 @@ in
           sources."pump-3.0.0"
         ];
       })
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."define-property-2.0.2"
       sources."del-4.1.1"
       sources."depd-1.1.2"
@@ -119530,14 +120591,14 @@ in
       sources."dom-converter-0.2.0"
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.2.0"
+          sources."domelementtype-2.3.0"
         ];
       })
       sources."domain-browser-1.2.0"
       sources."domelementtype-1.3.1"
       (sources."domhandler-4.3.1" // {
         dependencies = [
-          sources."domelementtype-2.2.0"
+          sources."domelementtype-2.3.0"
         ];
       })
       sources."domutils-1.7.0"
@@ -119554,7 +120615,7 @@ in
       sources."duplexify-3.7.1"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.4.96"
+      sources."electron-to-chromium-1.4.114"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -119585,7 +120646,7 @@ in
       sources."entities-2.2.0"
       sources."errno-0.1.8"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.19.1"
+      sources."es-abstract-1.19.5"
       sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.1"
       sources."escape-html-1.0.3"
@@ -119702,6 +120763,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
       sources."function-bind-1.1.1"
+      sources."functions-have-names-1.2.3"
       sources."gensync-1.0.0-beta.2"
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.1"
@@ -119724,13 +120786,13 @@ in
           sources."pify-3.0.0"
         ];
       })
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."gud-1.0.0"
       sources."gunzip-maybe-1.4.2"
       sources."gzip-size-5.1.1"
       sources."handle-thing-2.0.1"
       sources."has-1.0.3"
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
       (sources."has-binary2-1.0.3" // {
         dependencies = [
           sources."isarray-2.0.1"
@@ -119738,6 +120800,7 @@ in
       })
       sources."has-cors-1.1.0"
       sources."has-flag-3.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbol-support-x-1.4.2"
       sources."has-symbols-1.0.3"
       sources."has-to-string-tag-x-1.4.1"
@@ -119784,8 +120847,8 @@ in
       })
       (sources."htmlparser2-6.1.0" // {
         dependencies = [
-          sources."dom-serializer-1.3.2"
-          sources."domelementtype-2.2.0"
+          sources."dom-serializer-1.4.1"
+          sources."domelementtype-2.3.0"
           sources."domutils-2.8.0"
         ];
       })
@@ -119851,7 +120914,7 @@ in
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.4"
       sources."is-color-stop-1.1.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.5"
       sources."is-deflate-1.0.0"
@@ -119865,7 +120928,7 @@ in
       sources."is-natural-number-4.0.1"
       sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-obj-2.0.0"
       sources."is-object-1.0.2"
       sources."is-path-cwd-2.2.0"
@@ -119876,7 +120939,7 @@ in
       sources."is-regex-1.1.4"
       sources."is-resolvable-1.1.0"
       sources."is-retry-allowed-1.2.0"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-stream-1.1.0"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
@@ -119990,7 +121053,7 @@ in
           sources."punycode-1.4.1"
         ];
       })
-      sources."node-releases-2.0.2"
+      sources."node-releases-2.0.3"
       sources."normalize-path-3.0.0"
       sources."normalize-range-0.1.2"
       (sources."normalize-url-2.0.1" // {
@@ -120213,7 +121276,7 @@ in
           sources."postcss-value-parser-3.3.1"
         ];
       })
-      sources."postcss-selector-parser-6.0.9"
+      sources."postcss-selector-parser-6.0.10"
       (sources."postcss-svgo-4.0.3" // {
         dependencies = [
           sources."postcss-value-parser-3.3.1"
@@ -120273,9 +121336,9 @@ in
       sources."regenerate-1.4.2"
       sources."regenerate-unicode-properties-10.0.1"
       sources."regenerator-runtime-0.13.9"
-      sources."regenerator-transform-0.14.5"
+      sources."regenerator-transform-0.15.0"
       sources."regex-not-1.0.2"
-      sources."regexp.prototype.flags-1.4.1"
+      sources."regexp.prototype.flags-1.4.3"
       sources."regexpu-core-5.0.1"
       sources."registry-auth-token-3.3.2"
       sources."registry-url-3.1.0"
@@ -120290,10 +121353,10 @@ in
       (sources."renderkid-2.0.7" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
-          sources."css-select-4.2.1"
-          sources."css-what-5.1.0"
-          sources."dom-serializer-1.3.2"
-          sources."domelementtype-2.2.0"
+          sources."css-select-4.3.0"
+          sources."css-what-6.1.0"
+          sources."dom-serializer-1.4.1"
+          sources."domelementtype-2.3.0"
           sources."domutils-2.8.0"
           sources."nth-check-2.0.1"
           sources."strip-ansi-3.0.1"
@@ -120789,7 +121852,7 @@ in
       sources."esprima-3.1.3"
       sources."esprima-fb-13001.1001.0-dev-harmony-fb"
       sources."glob-5.0.15"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."iconv-lite-0.4.24"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -120831,7 +121894,7 @@ in
     dependencies = [
       sources."@mozilla/readability-0.4.2"
       sources."@tootallnate/once-2.0.0"
-      sources."abab-2.0.5"
+      sources."abab-2.0.6"
       sources."acorn-8.7.0"
       (sources."acorn-globals-6.0.0" // {
         dependencies = [
@@ -120872,7 +121935,7 @@ in
       sources."get-caller-file-2.0.5"
       sources."html-encoding-sniffer-3.0.0"
       sources."http-proxy-agent-5.0.0"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."iconv-lite-0.6.3"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-potential-custom-element-name-1.0.1"
@@ -120910,7 +121973,7 @@ in
       sources."xml-name-validator-4.0.0"
       sources."xmlchars-2.2.0"
       sources."y18n-5.0.8"
-      sources."yargs-17.4.0"
+      sources."yargs-17.4.1"
       sources."yargs-parser-21.0.1"
     ];
     buildInputs = globalBuildInputs;
@@ -120926,31 +121989,30 @@ in
   redoc-cli = nodeEnv.buildNodePackage {
     name = "redoc-cli";
     packageName = "redoc-cli";
-    version = "0.13.9";
+    version = "0.13.10";
     src = fetchurl {
-      url = "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.13.9.tgz";
-      sha512 = "RoUonPhAQeEpg6lCJyi7Oha5iYPNFhAN2lFWzc3biLigJCTh6JDwPHlomfLMrwkri6bz8W3vVEtEqQ1RLaxMJQ==";
+      url = "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.13.10.tgz";
+      sha512 = "txYchKO6rpXJapD6Kg/Vd6mEg3ZJDz+TLCev8dvj8cGQxiSZDJ/V/x3uRfg03EH5FrC71kHC4ETI97MUlye9NQ==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.7"
-      (sources."@babel/generator-7.17.7" // {
+      (sources."@babel/generator-7.17.9" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
       sources."@babel/helper-annotate-as-pure-7.16.7"
       sources."@babel/helper-environment-visitor-7.16.7"
-      sources."@babel/helper-function-name-7.16.7"
-      sources."@babel/helper-get-function-arity-7.16.7"
+      sources."@babel/helper-function-name-7.17.9"
       sources."@babel/helper-hoist-variables-7.16.7"
       sources."@babel/helper-module-imports-7.16.7"
       sources."@babel/helper-split-export-declaration-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      sources."@babel/highlight-7.16.10"
-      sources."@babel/parser-7.17.8"
-      sources."@babel/runtime-7.17.8"
+      sources."@babel/highlight-7.17.9"
+      sources."@babel/parser-7.17.9"
+      sources."@babel/runtime-7.17.9"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.17.3"
+      sources."@babel/traverse-7.17.9"
       sources."@babel/types-7.17.0"
       sources."@emotion/is-prop-valid-1.1.2"
       sources."@emotion/memoize-0.7.5"
@@ -120958,10 +122020,10 @@ in
       sources."@emotion/unitless-0.7.5"
       sources."@exodus/schemasafe-1.0.0-rc.6"
       sources."@redocly/ajv-8.6.4"
-      sources."@redocly/openapi-core-1.0.0-beta.90"
+      sources."@redocly/openapi-core-1.0.0-beta.94"
       sources."@redocly/react-dropdown-aria-2.0.12"
       sources."@types/json-schema-7.0.11"
-      sources."@types/node-14.18.12"
+      sources."@types/node-14.18.13"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.2"
@@ -120976,7 +122038,7 @@ in
           sources."util-0.10.3"
         ];
       })
-      sources."babel-plugin-styled-components-2.0.6"
+      sources."babel-plugin-styled-components-2.0.7"
       sources."babel-plugin-syntax-jsx-6.18.0"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
@@ -121095,7 +122157,7 @@ in
       sources."loose-envify-1.4.0"
       sources."lunr-2.3.9"
       sources."mark.js-8.11.1"
-      sources."marked-4.0.12"
+      sources."marked-4.0.14"
       sources."md5.js-1.3.5"
       (sources."miller-rabin-4.0.1" // {
         dependencies = [
@@ -121132,9 +122194,9 @@ in
       sources."perfect-scrollbar-1.5.5"
       sources."picomatch-2.3.1"
       sources."pluralize-8.0.0"
-      sources."polished-4.1.4"
+      sources."polished-4.2.2"
       sources."postcss-value-parser-4.2.0"
-      sources."prismjs-1.27.0"
+      sources."prismjs-1.28.0"
       sources."process-0.11.10"
       sources."process-nextick-args-2.0.1"
       sources."prop-types-15.8.1"
@@ -121161,7 +122223,7 @@ in
         ];
       })
       sources."readdirp-3.6.0"
-      (sources."redoc-2.0.0-rc.65" // {
+      (sources."redoc-2.0.0-rc.66" // {
         dependencies = [
           sources."path-browserify-1.0.1"
         ];
@@ -121201,7 +122263,7 @@ in
       sources."to-regex-range-5.0.1"
       sources."tr46-0.0.3"
       sources."tty-browserify-0.0.0"
-      sources."uglify-js-3.15.3"
+      sources."uglify-js-3.15.4"
       (sources."uri-js-4.4.1" // {
         dependencies = [
           sources."punycode-2.1.1"
@@ -121234,7 +122296,7 @@ in
       sources."y18n-5.0.8"
       sources."yaml-1.10.2"
       sources."yaml-ast-parser-0.0.43"
-      sources."yargs-17.4.0"
+      sources."yargs-17.4.1"
       sources."yargs-parser-21.0.1"
     ];
     buildInputs = globalBuildInputs;
@@ -121285,7 +122347,7 @@ in
       sources."figures-3.2.0"
       sources."find-up-2.1.0"
       sources."function-bind-1.1.1"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
       sources."hosted-git-info-2.8.9"
@@ -121293,7 +122355,7 @@ in
       sources."ink-2.7.1"
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-plain-obj-1.1.0"
       sources."js-tokens-4.0.0"
@@ -121513,7 +122575,7 @@ in
       sources."glob-parent-5.1.2"
       sources."global-dirs-3.0.0"
       sources."got-9.6.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-flag-4.0.0"
       sources."has-yarn-2.1.0"
       sources."highlight.js-10.7.2"
@@ -121552,7 +122614,7 @@ in
       sources."keyv-3.1.0"
       sources."latest-version-5.1.0"
       sources."livereload-0.9.3"
-      sources."livereload-js-3.3.3"
+      sources."livereload-js-3.4.0"
       sources."lodash-4.17.21"
       sources."lowercase-keys-1.0.1"
       sources."lru-cache-6.0.0"
@@ -121625,7 +122687,7 @@ in
       sources."rimraf-2.7.1"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -121732,10 +122794,10 @@ in
   rollup = nodeEnv.buildNodePackage {
     name = "rollup";
     packageName = "rollup";
-    version = "2.70.1";
+    version = "2.70.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz";
-      sha512 = "CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==";
+      url = "https://registry.npmjs.org/rollup/-/rollup-2.70.2.tgz";
+      sha512 = "EitogNZnfku65I1DD5Mxe8JYRUCy0hkK5X84IlDtUs+O6JRMpRciXTzyCUuX11b5L5pvjH+OmFXiQ3XjabcXgg==";
     };
     dependencies = [
       sources."fsevents-2.3.2"
@@ -121767,14 +122829,14 @@ in
       sources."@types/json-schema-7.0.11"
       sources."@types/node-14.17.34"
       sources."@types/vscode-1.63.2"
-      sources."@typescript-eslint/eslint-plugin-5.16.0"
-      sources."@typescript-eslint/parser-5.16.0"
-      sources."@typescript-eslint/scope-manager-5.16.0"
-      sources."@typescript-eslint/type-utils-5.16.0"
-      sources."@typescript-eslint/types-5.16.0"
-      sources."@typescript-eslint/typescript-estree-5.16.0"
-      sources."@typescript-eslint/utils-5.16.0"
-      sources."@typescript-eslint/visitor-keys-5.16.0"
+      sources."@typescript-eslint/eslint-plugin-5.20.0"
+      sources."@typescript-eslint/parser-5.20.0"
+      sources."@typescript-eslint/scope-manager-5.20.0"
+      sources."@typescript-eslint/type-utils-5.20.0"
+      sources."@typescript-eslint/types-5.20.0"
+      sources."@typescript-eslint/typescript-estree-5.20.0"
+      sources."@typescript-eslint/utils-5.20.0"
+      sources."@typescript-eslint/visitor-keys-5.20.0"
       sources."@vscode/test-electron-2.1.3"
       sources."acorn-8.7.0"
       sources."acorn-jsx-5.3.2"
@@ -121809,7 +122871,7 @@ in
       sources."chainsaw-0.1.0"
       sources."chalk-4.1.2"
       sources."cheerio-1.0.0-rc.10"
-      sources."cheerio-select-1.5.0"
+      sources."cheerio-select-1.6.0"
       sources."chownr-1.1.4"
       sources."cliui-7.0.4"
       sources."code-point-at-1.1.0"
@@ -121821,14 +122883,14 @@ in
       sources."console-control-strings-1.1.0"
       sources."core-util-is-1.0.3"
       sources."cross-spawn-7.0.3"
-      sources."css-select-4.2.1"
-      sources."css-what-5.1.0"
-      sources."d3-7.3.0"
-      sources."d3-array-3.1.1"
+      sources."css-select-4.3.0"
+      sources."css-what-6.1.0"
+      sources."d3-7.4.4"
+      sources."d3-array-3.1.6"
       sources."d3-axis-3.0.0"
       sources."d3-brush-3.0.0"
       sources."d3-chord-3.0.1"
-      sources."d3-color-3.0.1"
+      sources."d3-color-3.1.0"
       sources."d3-contour-3.0.1"
       sources."d3-delaunay-6.0.2"
       sources."d3-dispatch-3.0.1"
@@ -121839,7 +122901,7 @@ in
       sources."d3-force-3.0.0"
       sources."d3-format-3.1.0"
       sources."d3-geo-3.0.1"
-      (sources."d3-graphviz-4.1.0" // {
+      (sources."d3-graphviz-4.1.1" // {
         dependencies = [
           sources."d3-color-2.0.0"
           sources."d3-dispatch-2.0.0"
@@ -121854,7 +122916,7 @@ in
           sources."d3-zoom-2.0.0"
         ];
       })
-      sources."d3-hierarchy-3.1.1"
+      sources."d3-hierarchy-3.1.2"
       sources."d3-interpolate-3.0.1"
       sources."d3-path-3.0.1"
       sources."d3-polygon-3.0.1"
@@ -121878,8 +122940,8 @@ in
       sources."detect-libc-2.0.1"
       sources."dir-glob-3.0.1"
       sources."doctrine-3.0.0"
-      sources."dom-serializer-1.3.2"
-      sources."domelementtype-2.2.0"
+      sources."dom-serializer-1.4.1"
+      sources."domelementtype-2.3.0"
       sources."domhandler-4.3.1"
       sources."domutils-2.8.0"
       sources."duplexer2-0.1.4"
@@ -121896,7 +122958,7 @@ in
       sources."entities-2.2.0"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-4.0.0"
-      (sources."eslint-8.12.0" // {
+      (sources."eslint-8.13.0" // {
         dependencies = [
           sources."eslint-scope-7.1.1"
           sources."estraverse-5.3.0"
@@ -121958,7 +123020,7 @@ in
       sources."glob-parent-5.1.2"
       sources."globals-13.13.0"
       sources."globby-11.1.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
       sources."has-symbols-1.0.3"
@@ -121966,7 +123028,7 @@ in
       sources."hosted-git-info-4.1.0"
       sources."htmlparser2-6.1.0"
       sources."http-proxy-agent-4.0.1"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."iconv-lite-0.6.3"
       sources."ieee754-1.2.1"
       sources."ignore-5.2.0"
@@ -122010,7 +123072,7 @@ in
       sources."mute-stream-0.0.8"
       sources."napi-build-utils-1.0.2"
       sources."natural-compare-1.4.0"
-      sources."node-abi-3.8.0"
+      sources."node-abi-3.15.0"
       sources."node-addon-api-4.3.0"
       sources."npmlog-4.1.2"
       sources."nth-check-2.0.1"
@@ -122032,7 +123094,7 @@ in
       sources."path-type-4.0.0"
       sources."pend-1.2.0"
       sources."picomatch-2.3.1"
-      sources."prebuild-install-7.0.1"
+      sources."prebuild-install-7.1.0"
       sources."prelude-ls-1.2.1"
       sources."process-nextick-args-2.0.1"
       sources."pseudomap-1.0.2"
@@ -122058,7 +123120,7 @@ in
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."set-blocking-2.0.0"
       sources."setimmediate-1.0.5"
       sources."shebang-command-2.0.0"
@@ -122130,7 +123192,7 @@ in
       sources."xmlbuilder-11.0.1"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
-      sources."yargs-17.4.0"
+      sources."yargs-17.4.1"
       sources."yargs-parser-21.0.1"
       sources."yauzl-2.10.0"
       sources."yazl-2.5.1"
@@ -122153,7 +123215,7 @@ in
     dependencies = [
       sources."find-up-5.0.0"
       sources."locate-path-6.0.0"
-      sources."nanoid-3.3.1"
+      sources."nanoid-3.3.3"
       sources."p-limit-3.1.0"
       sources."p-locate-5.0.0"
       sources."path-exists-4.0.0"
@@ -122272,10 +123334,10 @@ in
   sass = nodeEnv.buildNodePackage {
     name = "sass";
     packageName = "sass";
-    version = "1.49.9";
+    version = "1.50.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz";
-      sha512 = "YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==";
+      url = "https://registry.npmjs.org/sass/-/sass-1.50.1.tgz";
+      sha512 = "noTnY41KnlW2A9P8sdwESpDmo+KBNkukI1i8+hOK3footBUcohNHtdOJbckp46XO95nuvcHDDZ+4tmOnpK3hjw==";
     };
     dependencies = [
       sources."anymatch-3.1.2"
@@ -122309,10 +123371,10 @@ in
   semver = nodeEnv.buildNodePackage {
     name = "semver";
     packageName = "semver";
-    version = "7.3.5";
+    version = "7.3.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz";
-      sha512 = "PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==";
+      url = "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz";
+      sha512 = "QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==";
     };
     dependencies = [
       sources."lru-cache-6.0.0"
@@ -122452,10 +123514,10 @@ in
   serverless = nodeEnv.buildNodePackage {
     name = "serverless";
     packageName = "serverless";
-    version = "3.10.0";
+    version = "3.15.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/serverless/-/serverless-3.10.0.tgz";
-      sha512 = "2bRpqJFrejlN0hIrTnFQKV/MejUF8lZSRfULBqdUG4emwrUiTzZSerYdUVifHvhvIEcno6GeTbMs1xwQrCb2fw==";
+      url = "https://registry.npmjs.org/serverless/-/serverless-3.15.0.tgz";
+      sha512 = "53tVnDXbzhxVH4QJwqZPIb/W/cOozNowTMOmMuigX9xk0R0PVI3f2F30jd0NO3EQtCrL2+Gq9YZdUJAjldtZCg==";
     };
     dependencies = [
       sources."2-thenable-1.0.0"
@@ -122464,7 +123526,7 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@serverless/dashboard-plugin-6.2.0"
+      sources."@serverless/dashboard-plugin-6.2.2"
       sources."@serverless/event-mocks-1.1.1"
       (sources."@serverless/platform-client-4.3.2" // {
         dependencies = [
@@ -122481,9 +123543,10 @@ in
       sources."@tokenizer/token-0.3.0"
       sources."@types/cacheable-request-6.0.2"
       sources."@types/http-cache-semantics-4.0.1"
+      sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
-      sources."@types/lodash-4.14.180"
-      sources."@types/node-17.0.23"
+      sources."@types/lodash-4.14.182"
+      sources."@types/node-17.0.25"
       sources."@types/responselike-1.0.0"
       sources."adm-zip-0.5.9"
       sources."agent-base-6.0.2"
@@ -122498,7 +123561,7 @@ in
           sources."file-type-4.4.0"
         ];
       })
-      (sources."archiver-5.3.0" // {
+      (sources."archiver-5.3.1" // {
         dependencies = [
           sources."readable-stream-3.6.0"
         ];
@@ -122509,7 +123572,7 @@ in
       sources."async-3.2.3"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
-      (sources."aws-sdk-2.1101.0" // {
+      (sources."aws-sdk-2.1118.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."ieee754-1.1.13"
@@ -122555,9 +123618,9 @@ in
       sources."chokidar-3.5.3"
       sources."chownr-2.0.0"
       sources."ci-info-3.3.0"
-      sources."cli-color-2.0.1"
+      sources."cli-color-2.0.2"
       sources."cli-cursor-3.1.0"
-      sources."cli-progress-footer-2.3.0"
+      sources."cli-progress-footer-2.3.1"
       sources."cli-spinners-2.6.1"
       (sources."cli-sprintf-format-1.1.1" // {
         dependencies = [
@@ -122572,6 +123635,7 @@ in
       sources."combined-stream-1.0.8"
       sources."commander-2.20.3"
       sources."component-emitter-1.3.0"
+      sources."compress-brotli-1.3.6"
       (sources."compress-commons-4.1.1" // {
         dependencies = [
           sources."readable-stream-3.6.0"
@@ -122585,7 +123649,7 @@ in
       })
       sources."cookiejar-2.1.3"
       sources."core-util-is-1.0.3"
-      sources."crc-32-1.2.1"
+      sources."crc-32-1.2.2"
       (sources."crc32-stream-4.0.2" // {
         dependencies = [
           sources."readable-stream-3.6.0"
@@ -122601,7 +123665,7 @@ in
           sources."type-1.2.0"
         ];
       })
-      sources."dayjs-1.11.0"
+      sources."dayjs-1.11.1"
       sources."debug-4.3.4"
       (sources."decompress-4.2.1" // {
         dependencies = [
@@ -122650,7 +123714,7 @@ in
       sources."duration-0.2.2"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
-      sources."es5-ext-0.10.59"
+      sources."es5-ext-0.10.61"
       sources."es6-iterator-2.0.3"
       (sources."es6-set-0.1.5" // {
         dependencies = [
@@ -122665,7 +123729,6 @@ in
       sources."essentials-1.2.0"
       sources."event-emitter-0.3.5"
       sources."events-1.1.1"
-      sources."exit-on-epipe-1.0.1"
       sources."ext-1.6.0"
       sources."ext-list-2.2.2"
       sources."ext-name-5.0.0"
@@ -122701,14 +123764,14 @@ in
       sources."glob-parent-5.1.2"
       sources."globby-11.1.0"
       sources."got-11.8.3"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."graphlib-2.1.8"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
       sources."has-symbols-1.0.3"
       sources."http-cache-semantics-4.1.0"
       sources."http2-wrapper-1.0.3"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
       sources."ignore-5.2.0"
@@ -122749,9 +123812,9 @@ in
       })
       sources."json-schema-traverse-1.0.0"
       sources."jsonfile-6.1.0"
-      sources."jszip-3.7.1"
+      sources."jszip-3.9.1"
       sources."jwt-decode-2.2.0"
-      sources."keyv-4.1.1"
+      sources."keyv-4.2.2"
       sources."lazystream-1.0.1"
       sources."lie-3.3.0"
       sources."lodash-4.17.21"
@@ -122819,7 +123882,6 @@ in
       sources."pify-2.3.0"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
-      sources."printj-1.3.1"
       sources."process-nextick-args-2.0.1"
       sources."process-utils-4.0.0"
       sources."promise-queue-2.2.5"
@@ -122850,13 +123912,13 @@ in
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.1"
       sources."seek-bzip-1.0.6"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."set-immediate-shim-1.0.1"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."side-channel-1.0.4"
       sources."signal-exit-3.0.7"
-      sources."simple-git-3.4.0"
+      sources."simple-git-3.7.0"
       sources."slash-3.0.0"
       sources."sort-keys-1.1.2"
       sources."sort-keys-length-1.0.1"
@@ -123270,7 +124332,7 @@ in
       sources."for-in-1.0.2"
       sources."fragment-cache-0.2.1"
       sources."get-value-2.0.6"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."graceful-readlink-1.0.1"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
@@ -123575,10 +124637,10 @@ in
   snyk = nodeEnv.buildNodePackage {
     name = "snyk";
     packageName = "snyk";
-    version = "1.884.0";
+    version = "1.908.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/snyk/-/snyk-1.884.0.tgz";
-      sha512 = "lQtXRoi0mgTsrjzTcKNbpec+q4ai8rhls1FOcr2ZBTe7V7mKTGXZ9yk6DY2VXRKyboL8zvV3rIrzm+l85n5yIg==";
+      url = "https://registry.npmjs.org/snyk/-/snyk-1.908.0.tgz";
+      sha512 = "fti0j50hDdDBwrwVfLGaHN+xCBvktpxDYIqpJ9pk0IMgQrxBM7fum6l5Pim+Jaq7tZASD3S3p+7RL4JWsS3O/A==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -123602,7 +124664,7 @@ in
       sources."@types/component-emitter-1.2.11"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.12"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."accepts-1.3.8"
       sources."base64id-2.0.0"
       sources."component-emitter-1.3.0"
@@ -123642,7 +124704,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -123698,7 +124760,7 @@ in
       sources."indent-string-5.0.0"
       sources."inherits-2.0.4"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-fullwidth-code-point-4.0.0"
       sources."is-interactive-2.0.0"
       sources."is-plain-obj-1.1.0"
@@ -123713,7 +124775,7 @@ in
           sources."chalk-5.0.1"
         ];
       })
-      sources."log-update-5.0.0"
+      sources."log-update-5.0.1"
       sources."lru-cache-6.0.0"
       sources."map-obj-4.3.0"
       sources."meow-10.1.2"
@@ -123741,7 +124803,7 @@ in
       sources."round-to-6.0.0"
       sources."safe-buffer-5.2.1"
       sources."sax-1.2.4"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."signal-exit-3.0.7"
       (sources."slice-ansi-5.0.0" // {
         dependencies = [
@@ -123874,7 +124936,7 @@ in
       sources."binary-search-1.3.6"
       sources."binary-search-bounds-2.0.5"
       sources."bindings-1.5.0"
-      sources."bipf-1.5.5"
+      sources."bipf-1.6.2"
       sources."blake2s-1.1.0"
       sources."brace-expansion-1.1.11"
       sources."braces-1.8.5"
@@ -123958,7 +125020,7 @@ in
           sources."abstract-leveldown-6.2.3"
         ];
       })
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       (sources."define-property-2.0.2" // {
         dependencies = [
           sources."isobject-3.0.1"
@@ -123980,7 +125042,7 @@ in
       })
       sources."epidemic-broadcast-trees-7.0.0"
       sources."errno-0.1.8"
-      sources."es-abstract-1.19.1"
+      sources."es-abstract-1.19.5"
       (sources."es-get-iterator-1.1.2" // {
         dependencies = [
           sources."isarray-2.0.5"
@@ -124002,7 +125064,7 @@ in
       sources."extend.js-0.0.2"
       sources."extglob-0.3.2"
       sources."fastintcompression-0.0.4"
-      sources."fastpriorityqueue-0.7.1"
+      sources."fastpriorityqueue-0.7.2"
       sources."file-uri-to-path-1.0.0"
       sources."filename-regex-2.0.1"
       sources."fill-range-2.2.4"
@@ -124050,6 +125112,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."fsevents-1.2.13"
       sources."function-bind-1.1.1"
+      sources."functions-have-names-1.2.3"
       sources."get-intrinsic-1.1.1"
       sources."get-symbol-description-1.0.0"
       sources."get-value-2.0.6"
@@ -124058,11 +125121,12 @@ in
       sources."glob-parent-2.0.0"
       sources."globby-4.1.0"
       sources."gossip-query-2.0.2"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
       sources."has-ansi-2.0.0"
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
       sources."has-network-0.0.1"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       (sources."has-value-1.0.0" // {
@@ -124109,7 +125173,7 @@ in
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.4"
       sources."is-canonical-base64-1.1.1"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       (sources."is-data-descriptor-1.0.0" // {
         dependencies = [
           sources."kind-of-6.0.3"
@@ -124132,7 +125196,7 @@ in
       sources."is-map-2.0.2"
       sources."is-negative-zero-2.0.2"
       sources."is-number-2.1.0"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-options-1.0.2"
       (sources."is-plain-object-2.0.4" // {
         dependencies = [
@@ -124143,7 +125207,7 @@ in
       sources."is-primitive-2.0.0"
       sources."is-regex-1.1.4"
       sources."is-set-2.0.2"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.8"
@@ -124159,6 +125223,7 @@ in
       (sources."jitdb-4.1.0" // {
         dependencies = [
           sources."mkdirp-1.0.4"
+          sources."obz-1.0.3"
           sources."push-stream-11.0.1"
         ];
       })
@@ -124257,7 +125322,7 @@ in
       sources."next-tick-1.1.0"
       sources."nice-try-1.0.5"
       sources."node-bindgen-loader-1.0.1"
-      sources."node-gyp-build-4.3.0"
+      sources."node-gyp-build-4.4.0"
       sources."non-private-ip-2.2.0"
       sources."normalize-path-2.1.1"
       sources."normalize-uri-1.1.3"
@@ -124294,7 +125359,7 @@ in
       sources."observ-0.2.0"
       sources."observ-debounce-1.1.1"
       sources."obv-0.0.1"
-      sources."obz-1.0.3"
+      sources."obz-1.1.0"
       sources."on-change-network-0.0.2"
       sources."on-wakeup-1.0.1"
       sources."once-1.4.0"
@@ -124469,7 +125534,7 @@ in
       })
       sources."regex-cache-0.4.4"
       sources."regex-not-1.0.2"
-      sources."regexp.prototype.flags-1.4.1"
+      sources."regexp.prototype.flags-1.4.3"
       sources."relative-url-1.0.2"
       (sources."remark-3.2.3" // {
         dependencies = [
@@ -124669,7 +125734,7 @@ in
       sources."strip-json-comments-2.0.1"
       sources."supports-color-2.0.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      (sources."tape-4.15.0" // {
+      (sources."tape-4.15.1" // {
         dependencies = [
           sources."glob-7.2.0"
         ];
@@ -124838,7 +125903,7 @@ in
       sources."async-1.5.2"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
-      (sources."aws-sdk-2.1101.0" // {
+      (sources."aws-sdk-2.1118.0" // {
         dependencies = [
           sources."uuid-3.3.2"
         ];
@@ -124866,9 +125931,9 @@ in
       sources."bindings-1.2.1"
       sources."blob-0.0.5"
       sources."bluebird-2.11.0"
-      (sources."body-parser-1.19.2" // {
+      (sources."body-parser-1.20.0" // {
         dependencies = [
-          sources."qs-6.9.7"
+          sources."qs-6.10.3"
         ];
       })
       sources."boom-2.10.1"
@@ -124931,11 +125996,7 @@ in
       })
       sources."cookie-signature-1.0.6"
       sources."cookiejar-2.1.3"
-      (sources."cookies-0.8.0" // {
-        dependencies = [
-          sources."depd-2.0.0"
-        ];
-      })
+      sources."cookies-0.8.0"
       sources."core-js-2.6.12"
       sources."core-util-is-1.0.2"
       sources."cors-2.8.5"
@@ -124944,8 +126005,10 @@ in
       sources."csrf-3.1.0"
       (sources."csurf-1.11.0" // {
         dependencies = [
+          sources."depd-1.1.2"
           sources."http-errors-1.7.3"
           sources."setprototypeof-1.1.1"
+          sources."statuses-1.5.0"
           sources."toidentifier-1.0.0"
         ];
       })
@@ -124963,9 +126026,9 @@ in
       sources."decamelize-1.2.0"
       sources."deep-extend-0.4.2"
       sources."delayed-stream-1.0.0"
-      sources."depd-1.1.2"
+      sources."depd-2.0.0"
       sources."deref-0.6.4"
-      sources."destroy-1.0.4"
+      sources."destroy-1.2.0"
       sources."dicer-0.2.5"
       sources."doctypes-1.1.0"
       sources."drange-1.1.1"
@@ -125010,11 +126073,17 @@ in
       })
       (sources."express-4.17.3" // {
         dependencies = [
+          sources."body-parser-1.19.2"
           sources."cookie-0.4.2"
+          sources."depd-1.1.2"
+          sources."http-errors-1.8.1"
+          sources."on-finished-2.3.0"
           sources."proxy-addr-2.0.7"
           sources."qs-6.9.7"
+          sources."raw-body-2.4.3"
           sources."safe-buffer-5.2.1"
           sources."serve-static-1.14.2"
+          sources."statuses-1.5.0"
         ];
       })
       (sources."express-validator-2.21.0" // {
@@ -125030,7 +126099,12 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fd-slicer-1.1.0"
-      sources."finalhandler-1.1.2"
+      (sources."finalhandler-1.1.2" // {
+        dependencies = [
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
+        ];
+      })
       sources."find-up-3.0.0"
       sources."follow-redirects-1.14.9"
       sources."forever-agent-0.6.1"
@@ -125056,7 +126130,7 @@ in
           sources."debug-3.2.7"
         ];
       })
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."graphlib-2.1.8"
       sources."har-schema-2.0.0"
       sources."har-validator-2.0.6"
@@ -125079,7 +126153,7 @@ in
       })
       sources."hoek-2.16.3"
       sources."hosted-git-info-2.8.9"
-      sources."http-errors-1.8.1"
+      sources."http-errors-2.0.0"
       (sources."http-proxy-1.18.1" // {
         dependencies = [
           sources."eventemitter3-4.0.7"
@@ -125097,7 +126171,7 @@ in
       sources."ipaddr.js-1.9.1"
       sources."is-arrayish-0.2.1"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       (sources."is-expression-3.0.0" // {
         dependencies = [
           sources."acorn-4.0.13"
@@ -125209,7 +126283,7 @@ in
       sources."minimist-1.2.6"
       sources."minitouch-prebuilt-1.2.0"
       sources."mkdirp-0.5.6"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."ms-2.1.3"
       sources."multer-1.4.4"
       sources."mustache-2.3.2"
@@ -125231,7 +126305,7 @@ in
       sources."object-assign-4.1.1"
       sources."object-hash-0.3.0"
       sources."object-inspect-1.12.0"
-      sources."on-finished-2.3.0"
+      sources."on-finished-2.4.1"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       (sources."openid-2.0.10" // {
@@ -125309,7 +126383,7 @@ in
       sources."randexp-0.4.9"
       sources."random-bytes-1.0.0"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.3"
+      sources."raw-body-2.5.1"
       sources."read-pkg-1.1.0"
       (sources."read-pkg-up-1.0.1" // {
         dependencies = [
@@ -125360,7 +126434,15 @@ in
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.1"
       sources."semver-5.7.1"
-      sources."send-0.17.2"
+      (sources."send-0.17.2" // {
+        dependencies = [
+          sources."depd-1.1.2"
+          sources."destroy-1.0.4"
+          sources."http-errors-1.8.1"
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
+        ];
+      })
       (sources."serve-favicon-2.5.0" // {
         dependencies = [
           sources."ms-2.1.1"
@@ -125369,12 +126451,7 @@ in
       })
       (sources."serve-static-1.15.0" // {
         dependencies = [
-          sources."depd-2.0.0"
-          sources."destroy-1.2.0"
-          sources."http-errors-2.0.0"
-          sources."on-finished-2.4.1"
           sources."send-0.18.0"
-          sources."statuses-2.0.1"
         ];
       })
       sources."set-blocking-2.0.0"
@@ -125419,7 +126496,7 @@ in
         ];
       })
       sources."stack-trace-0.0.10"
-      sources."statuses-1.5.0"
+      sources."statuses-2.0.1"
       sources."stf-appstore-db-1.0.0"
       sources."stf-browser-db-1.0.2"
       sources."stf-device-db-1.2.0"
@@ -125626,15 +126703,15 @@ in
   stylelint = nodeEnv.buildNodePackage {
     name = "stylelint";
     packageName = "stylelint";
-    version = "14.6.1";
+    version = "14.7.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/stylelint/-/stylelint-14.6.1.tgz";
-      sha512 = "FfNdvZUZdzh9KDQxDnO7Opp+prKh8OQVuSW8S13cBtxrooCbm6J6royhUeb++53WPMt04VB+ZbOz/QmzAijs6Q==";
+      url = "https://registry.npmjs.org/stylelint/-/stylelint-14.7.1.tgz";
+      sha512 = "rUOWm67hrzGXXyO/cInENEejF4urh1dLgOb9cr/3XLDb/t/A+rXQp3p6+no8o8QCKTgBUdhVUq/bXMgE988PJw==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      sources."@babel/highlight-7.16.10"
+      sources."@babel/highlight-7.17.9"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
@@ -125700,7 +126777,7 @@ in
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
       sources."hosted-git-info-4.1.0"
-      sources."html-tags-3.1.0"
+      sources."html-tags-3.2.0"
       sources."ignore-5.2.0"
       (sources."import-fresh-3.3.0" // {
         dependencies = [
@@ -125714,7 +126791,7 @@ in
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
@@ -125741,7 +126818,7 @@ in
       sources."minimatch-3.1.2"
       sources."minimist-options-4.1.0"
       sources."ms-2.1.2"
-      sources."nanoid-3.3.1"
+      sources."nanoid-3.3.3"
       sources."normalize-package-data-3.0.3"
       sources."normalize-path-3.0.0"
       sources."normalize-selector-0.2.0"
@@ -125761,7 +126838,7 @@ in
       sources."postcss-media-query-parser-0.2.3"
       sources."postcss-resolve-nested-selector-0.1.1"
       sources."postcss-safe-parser-6.0.0"
-      sources."postcss-selector-parser-6.0.9"
+      sources."postcss-selector-parser-6.0.10"
       sources."postcss-value-parser-4.2.0"
       sources."punycode-2.1.1"
       sources."queue-microtask-1.2.3"
@@ -125786,7 +126863,7 @@ in
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
       sources."run-parallel-1.2.0"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."signal-exit-3.0.7"
       sources."slash-3.0.0"
       (sources."slice-ansi-4.0.0" // {
@@ -125890,7 +126967,7 @@ in
       sources."fstream-1.0.12"
       sources."getpass-0.1.7"
       sources."glob-7.2.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-flag-3.0.0"
@@ -125980,16 +127057,16 @@ in
   svelte-check = nodeEnv.buildNodePackage {
     name = "svelte-check";
     packageName = "svelte-check";
-    version = "2.4.6";
+    version = "2.7.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/svelte-check/-/svelte-check-2.4.6.tgz";
-      sha512 = "luzdly7RJhyXucQe8ID/7CqDgXdMrPYXmyZBjCbp+cixzTopZotuWevrB5hWDOnOU19m2cyetigIIa7WDHnCmQ==";
+      url = "https://registry.npmjs.org/svelte-check/-/svelte-check-2.7.0.tgz";
+      sha512 = "GrvG24j0+i8AOm0k0KyJ6Dqc+TAR2yzB7rtS4nljHStunVxCTr/1KYlv4EsOeoqtHLzeWMOd5D2O6nDdP/yw4A==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/pug-2.0.6"
       sources."@types/sass-1.43.1"
       sources."anymatch-3.1.2"
@@ -126010,7 +127087,7 @@ in
       sources."fsevents-2.3.2"
       sources."glob-7.2.0"
       sources."glob-parent-5.1.2"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."import-fresh-3.3.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -126044,7 +127121,7 @@ in
       sources."source-map-0.7.3"
       sources."sourcemap-codec-1.4.8"
       sources."strip-indent-3.0.0"
-      sources."svelte-preprocess-4.10.4"
+      sources."svelte-preprocess-4.10.6"
       sources."to-regex-range-5.0.1"
       sources."typescript-4.6.3"
       sources."wrappy-1.0.2"
@@ -126062,10 +127139,10 @@ in
   svelte-language-server = nodeEnv.buildNodePackage {
     name = "svelte-language-server";
     packageName = "svelte-language-server";
-    version = "0.14.23";
+    version = "0.14.26";
     src = fetchurl {
-      url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-0.14.23.tgz";
-      sha512 = "/k/Py3fr5Dq7OncbktZUpE/fgMy503hArv41nOa6NLoMbnB3/Lqz7onOKo/K+fyfvWUkHF+Wklz6PZcaNPE8/A==";
+      url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-0.14.26.tgz";
+      sha512 = "U4pJ0ISruXQ6z+4++szyN2fsapa9/usVb1UlPC0p6sPfWfmQgFlR4125zWsMr0nl1ScsYa8VdEweQlk7mrq6zw==";
     };
     dependencies = [
       sources."@emmetio/abbreviation-2.2.3"
@@ -126074,7 +127151,7 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/pug-2.0.6"
       sources."@types/sass-1.43.1"
       sources."anymatch-3.1.2"
@@ -126097,7 +127174,7 @@ in
       sources."fsevents-2.3.2"
       sources."glob-7.2.0"
       sources."glob-parent-5.1.2"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."is-binary-path-2.1.0"
@@ -126121,7 +127198,7 @@ in
       sources."path-is-absolute-1.0.1"
       sources."picomatch-2.3.1"
       sources."prettier-2.5.1"
-      sources."prettier-plugin-svelte-2.6.0"
+      sources."prettier-plugin-svelte-2.7.0"
       sources."queue-microtask-1.2.3"
       sources."readdirp-3.6.0"
       sources."reusify-1.0.4"
@@ -126132,9 +127209,9 @@ in
       sources."source-map-0.7.3"
       sources."sourcemap-codec-1.4.8"
       sources."strip-indent-3.0.0"
-      sources."svelte-3.46.4"
-      sources."svelte-preprocess-4.10.4"
-      sources."svelte2tsx-0.5.6"
+      sources."svelte-3.47.0"
+      sources."svelte-preprocess-4.10.6"
+      sources."svelte2tsx-0.5.9"
       sources."to-regex-range-5.0.1"
       sources."tslib-2.3.1"
       sources."typescript-4.6.3"
@@ -126185,12 +127262,12 @@ in
       sources."@trysound/sax-0.2.0"
       sources."boolbase-1.0.0"
       sources."commander-7.2.0"
-      sources."css-select-4.2.1"
+      sources."css-select-4.3.0"
       sources."css-tree-1.1.3"
-      sources."css-what-5.1.0"
+      sources."css-what-6.1.0"
       sources."csso-4.2.0"
-      sources."dom-serializer-1.3.2"
-      sources."domelementtype-2.2.0"
+      sources."dom-serializer-1.4.1"
+      sources."domelementtype-2.3.0"
       sources."domhandler-4.3.1"
       sources."domutils-2.8.0"
       sources."entities-2.2.0"
@@ -126418,7 +127495,7 @@ in
       })
       sources."global-dirs-0.1.1"
       sources."got-6.7.1"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       (sources."graphlib-2.1.8" // {
         dependencies = [
           sources."lodash-4.17.21"
@@ -126800,7 +127877,7 @@ in
       sources."truncate-utf8-bytes-1.0.2"
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.15.3"
+      sources."uglify-js-3.15.4"
       sources."undefsafe-2.0.5"
       (sources."union-value-1.0.1" // {
         dependencies = [
@@ -126860,54 +127937,34 @@ in
   tailwindcss = nodeEnv.buildNodePackage {
     name = "tailwindcss";
     packageName = "tailwindcss";
-    version = "3.0.23";
+    version = "3.0.24";
     src = fetchurl {
-      url = "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.23.tgz";
-      sha512 = "+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==";
+      url = "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz";
+      sha512 = "H3uMmZNWzG6aqmg9q07ZIRNIawoiEcNFKDfL+YzOPuPsXuDXxJxB9icqzLgdzKNwjG3SAro2h9SYav8ewXNgig==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.16.7"
-      sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
-        dependencies = [
-          sources."ansi-styles-3.2.1"
-          sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
-        ];
-      })
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@types/parse-json-4.0.0"
       sources."acorn-7.4.1"
       sources."acorn-node-1.8.2"
       sources."acorn-walk-7.2.0"
-      sources."ansi-styles-4.3.0"
       sources."anymatch-3.1.2"
       sources."arg-5.0.1"
       sources."binary-extensions-2.2.0"
       sources."braces-3.0.2"
-      sources."callsites-3.1.0"
       sources."camelcase-css-2.0.1"
-      sources."chalk-4.1.2"
       (sources."chokidar-3.5.3" // {
         dependencies = [
           sources."glob-parent-5.1.2"
         ];
       })
-      sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."cosmiconfig-7.0.1"
       sources."cssesc-3.0.0"
       sources."defined-1.0.0"
       sources."detective-5.2.0"
       sources."didyoumean-1.2.2"
       sources."dlv-1.1.3"
-      sources."error-ex-1.3.2"
-      sources."escape-string-regexp-1.0.5"
       (sources."fast-glob-3.2.11" // {
         dependencies = [
           sources."glob-parent-5.1.2"
@@ -126919,45 +127976,34 @@ in
       sources."function-bind-1.1.1"
       sources."glob-parent-6.0.2"
       sources."has-1.0.3"
-      sources."has-flag-4.0.0"
-      sources."import-fresh-3.3.0"
-      sources."is-arrayish-0.2.1"
       sources."is-binary-path-2.1.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
-      sources."js-tokens-4.0.0"
-      sources."json-parse-even-better-errors-2.3.1"
       sources."lilconfig-2.0.5"
-      sources."lines-and-columns-1.2.4"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
       sources."minimist-1.2.6"
-      sources."nanoid-3.3.1"
+      sources."nanoid-3.3.3"
       sources."normalize-path-3.0.0"
-      sources."object-hash-2.2.0"
-      sources."parent-module-1.0.1"
-      sources."parse-json-5.2.0"
+      sources."object-hash-3.0.0"
       sources."path-parse-1.0.7"
-      sources."path-type-4.0.0"
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
       sources."postcss-8.4.12"
       sources."postcss-js-4.0.0"
-      sources."postcss-load-config-3.1.3"
+      sources."postcss-load-config-3.1.4"
       sources."postcss-nested-5.0.6"
-      sources."postcss-selector-parser-6.0.9"
+      sources."postcss-selector-parser-6.0.10"
       sources."postcss-value-parser-4.2.0"
       sources."queue-microtask-1.2.3"
       sources."quick-lru-5.1.1"
       sources."readdirp-3.6.0"
       sources."resolve-1.22.0"
-      sources."resolve-from-4.0.0"
       sources."reusify-1.0.4"
       sources."run-parallel-1.2.0"
       sources."source-map-js-1.0.2"
-      sources."supports-color-7.2.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
       sources."to-regex-range-5.0.1"
       sources."util-deprecate-1.0.2"
@@ -127042,7 +128088,7 @@ in
       sources."mime-types-2.1.35"
       sources."minimist-1.2.6"
       sources."module-alias-2.2.2"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."ms-2.1.2"
       sources."node-fetch-2.6.7"
       sources."oauth-sign-0.9.0"
@@ -127078,7 +128124,7 @@ in
       sources."tr46-0.0.3"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-1.0.3"
-      sources."typegram-3.8.0"
+      sources."typegram-3.9.0"
       sources."uri-js-4.4.1"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
@@ -127110,7 +128156,7 @@ in
     };
     dependencies = [
       sources."node-addon-api-4.3.0"
-      sources."node-gyp-build-4.3.0"
+      sources."node-gyp-build-4.4.0"
       sources."q-1.5.1"
       sources."usb-1.9.2"
     ];
@@ -127144,7 +128190,7 @@ in
       sources."errno-0.1.8"
       sources."fs.realpath-1.0.0"
       sources."glob-7.2.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."isarray-1.0.0"
@@ -127253,7 +128299,7 @@ in
       sources."debug-4.3.4"
       sources."deep-equal-1.1.1"
       sources."deep-is-0.1.4"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."diff-4.0.2"
       sources."emoji-regex-8.0.0"
       sources."error-ex-1.3.2"
@@ -127270,12 +128316,14 @@ in
       sources."format-0.2.2"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
+      sources."functions-have-names-1.2.3"
       sources."get-intrinsic-1.1.1"
       sources."get-stdin-5.0.1"
       sources."glob-7.2.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."hosted-git-info-2.8.9"
@@ -127286,7 +128334,7 @@ in
       sources."is-arguments-1.1.1"
       sources."is-arrayish-0.2.1"
       sources."is-buffer-2.0.5"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-date-object-1.0.5"
       sources."is-decimal-1.0.4"
       sources."is-file-1.0.0"
@@ -127367,7 +128415,7 @@ in
           sources."strip-bom-3.0.0"
         ];
       })
-      sources."regexp.prototype.flags-1.4.1"
+      sources."regexp.prototype.flags-1.4.3"
       sources."remark-footnotes-3.0.0"
       sources."remark-frontmatter-3.0.0"
       sources."remark-gfm-1.0.0"
@@ -127452,14 +128500,16 @@ in
     };
     dependencies = [
       sources."call-bind-1.0.2"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."function-bind-1.1.1"
+      sources."functions-have-names-1.2.3"
       sources."get-intrinsic-1.1.1"
       sources."has-1.0.3"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."match-index-1.0.3"
       sources."object-keys-1.1.1"
-      sources."regexp.prototype.flags-1.4.1"
+      sources."regexp.prototype.flags-1.4.3"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -127482,7 +128532,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      sources."@babel/highlight-7.16.10"
+      sources."@babel/highlight-7.17.9"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/hast-2.3.4"
@@ -127590,7 +128640,7 @@ in
         ];
       })
       sources."got-9.6.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
@@ -127621,7 +128671,7 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-buffer-2.0.5"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-decimal-1.0.4"
       sources."is-empty-1.2.0"
       sources."is-fullwidth-code-point-3.0.0"
@@ -128058,19 +129108,21 @@ in
       sha512 = "47yQZ14SbNfyBGKcSV/89eXwxLlGIwj8WzbKk1jvDh/uPy59skVfFbWoF4tUn09mYnRyVldMsdqB0llYgQMLUA==";
     };
     dependencies = [
-      sources."array.prototype.find-2.1.2"
+      sources."array.prototype.find-2.2.0"
       sources."call-bind-1.0.2"
       sources."check-ends-with-period-1.0.1"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."emoji-regex-6.5.1"
       sources."end-with-1.0.2"
-      sources."es-abstract-1.19.1"
+      sources."es-abstract-1.19.5"
+      sources."es-shim-unscopables-1.0.0"
       sources."es-to-primitive-1.2.1"
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
       sources."get-symbol-description-1.0.0"
       sources."has-1.0.3"
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."internal-slot-1.0.3"
@@ -128079,9 +129131,9 @@ in
       sources."is-callable-1.2.4"
       sources."is-date-object-1.0.5"
       sources."is-negative-zero-2.0.2"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-regex-1.1.4"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
       sources."is-weakref-1.0.2"
@@ -128173,14 +129225,15 @@ in
     dependencies = [
       sources."array-includes-3.1.4"
       sources."call-bind-1.0.2"
-      sources."define-properties-1.1.3"
-      sources."es-abstract-1.19.1"
+      sources."define-properties-1.1.4"
+      sources."es-abstract-1.19.5"
       sources."es-to-primitive-1.2.1"
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
       sources."get-symbol-description-1.0.0"
       sources."has-1.0.3"
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."internal-slot-1.0.3"
@@ -128190,9 +129243,9 @@ in
       sources."is-capitalized-1.0.0"
       sources."is-date-object-1.0.5"
       sources."is-negative-zero-2.0.2"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-regex-1.1.4"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
       sources."is-weakref-1.0.2"
@@ -128253,13 +129306,16 @@ in
   thelounge = nodeEnv.buildNodePackage {
     name = "thelounge";
     packageName = "thelounge";
-    version = "4.3.0";
+    version = "4.3.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/thelounge/-/thelounge-4.3.0.tgz";
-      sha512 = "dkVdH21q9vipV7UU10qQQprPuP8rG+IDJSHUtmOC0WDYvwYTiUC9IYLIpkyWdgfwFYegDTnnR4duHNZynqOXTA==";
+      url = "https://registry.npmjs.org/thelounge/-/thelounge-4.3.1.tgz";
+      sha512 = "sWitbCj5+Jr+HY8nN2VE01OVeZSaTGyQK76whBgt2LyBih57yQBjZYR3BshPBiUgGb/GMbI+j112myKU9YUh/g==";
     };
     dependencies = [
+      sources."@fastify/busboy-1.0.0"
+      sources."@mapbox/node-pre-gyp-1.0.9"
       sources."@sindresorhus/is-4.6.0"
+      sources."@socket.io/base64-arraybuffer-1.0.2"
       sources."@szmarczak/http-timer-4.0.6"
       sources."@tokenizer/token-0.3.0"
       sources."@types/cacheable-request-6.0.2"
@@ -128267,83 +129323,65 @@ in
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.12"
       sources."@types/http-cache-semantics-4.0.1"
+      sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
-      (sources."accepts-1.3.8" // {
-        dependencies = [
-          sources."mime-types-2.1.35"
-        ];
-      })
+      sources."accepts-1.3.8"
       (sources."agent-base-6.0.2" // {
         dependencies = [
           sources."debug-4.3.4"
           sources."ms-2.1.2"
         ];
       })
-      sources."ajv-6.12.6"
-      sources."ansi-regex-2.1.1"
+      sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
-      sources."aproba-1.2.0"
-      (sources."are-we-there-yet-1.1.7" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."aproba-2.0.0"
+      sources."are-we-there-yet-2.0.0"
       sources."array-flatten-1.1.1"
       sources."asn1-0.2.6"
       sources."asn1.js-5.4.1"
       sources."assert-plus-1.0.0"
-      sources."asynckit-0.4.0"
       sources."available-typed-arrays-1.0.5"
-      sources."aws-sign2-0.7.0"
-      sources."aws4-1.11.0"
       sources."backoff-2.5.0"
       sources."balanced-match-1.0.2"
-      sources."base64-arraybuffer-0.1.4"
       sources."base64-js-1.5.1"
       sources."base64id-2.0.0"
-      sources."bcrypt-pbkdf-1.0.2"
       sources."bcryptjs-2.4.3"
-      sources."block-stream-0.0.9"
       sources."bn.js-4.12.0"
-      sources."body-parser-1.19.0"
+      sources."body-parser-1.19.2"
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."buffer-6.0.3"
       sources."buffer-equal-constant-time-1.0.1"
-      sources."busboy-0.3.1"
-      sources."bytes-3.1.0"
+      sources."bytes-3.1.2"
       sources."cacheable-lookup-5.0.4"
       sources."cacheable-request-7.0.2"
       sources."call-bind-1.0.2"
-      sources."caseless-0.12.0"
       sources."chalk-4.1.2"
       sources."cheerio-1.0.0-rc.10"
-      sources."cheerio-select-1.5.0"
-      sources."chownr-1.1.4"
+      sources."cheerio-select-1.6.0"
+      sources."chownr-2.0.0"
       sources."clone-response-1.0.2"
-      sources."code-point-at-1.1.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."combined-stream-1.0.8"
-      sources."commander-7.2.0"
+      sources."color-support-1.1.3"
+      sources."commander-9.0.0"
       sources."component-emitter-1.3.0"
+      sources."compress-brotli-1.3.6"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
-      sources."content-disposition-0.5.3"
+      sources."content-disposition-0.5.4"
       sources."content-type-1.0.4"
-      sources."cookie-0.4.0"
+      sources."cookie-0.4.2"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.21.1"
+      sources."core-js-3.22.1"
       sources."core-util-is-1.0.2"
       sources."cors-2.8.5"
-      sources."css-select-4.2.1"
-      sources."css-what-5.1.0"
-      sources."dashdash-1.14.1"
+      sources."css-select-4.3.0"
+      sources."css-what-6.1.0"
       sources."debug-2.6.9"
       (sources."decompress-response-6.0.0" // {
         dependencies = [
@@ -128352,81 +129390,67 @@ in
       })
       sources."deep-extend-0.6.0"
       sources."defer-to-connect-2.0.1"
-      sources."define-properties-1.1.3"
-      sources."delayed-stream-1.0.0"
+      sources."define-properties-1.1.4"
       sources."delegates-1.0.0"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."detect-libc-1.0.3"
-      sources."dicer-0.3.0"
-      sources."dom-serializer-1.3.2"
-      sources."domelementtype-2.2.0"
+      sources."detect-libc-2.0.1"
+      sources."dom-serializer-1.4.1"
+      sources."domelementtype-2.3.0"
       sources."domhandler-4.3.1"
       sources."domutils-2.8.0"
-      sources."duplexer3-0.1.4"
-      sources."ecc-jsbn-0.1.2"
       sources."ecdsa-sig-formatter-1.0.11"
       sources."ee-first-1.1.1"
+      sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."engine.io-4.1.2" // {
+      (sources."engine.io-6.1.3" // {
         dependencies = [
-          sources."cookie-0.4.2"
           sources."debug-4.3.4"
           sources."ms-2.1.2"
         ];
       })
-      sources."engine.io-parser-4.0.3"
+      sources."engine.io-parser-5.0.3"
       sources."entities-2.2.0"
-      sources."es-abstract-1.19.1"
+      sources."es-abstract-1.19.5"
       sources."es-to-primitive-1.2.1"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
       sources."etag-1.8.1"
       sources."eventemitter3-4.0.7"
-      sources."express-4.17.1"
-      sources."extend-3.0.2"
+      sources."express-4.17.3"
       sources."extsprintf-1.4.1"
-      sources."fast-deep-equal-3.1.3"
-      sources."fast-json-stable-stringify-2.1.0"
       sources."fast-text-encoding-1.0.3"
-      sources."file-type-16.2.0"
+      sources."file-type-16.5.3"
       sources."filename-reserved-regex-2.0.0"
-      sources."filenamify-4.2.0"
+      sources."filenamify-4.3.0"
       sources."finalhandler-1.1.2"
       sources."foreach-2.0.5"
-      sources."forever-agent-0.6.1"
-      sources."form-data-2.3.3"
       sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
-      sources."fs-minipass-1.2.7"
+      sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
-      sources."fstream-1.0.12"
       sources."function-bind-1.1.1"
-      sources."gauge-2.7.4"
+      sources."gauge-3.0.2"
       sources."get-intrinsic-1.1.1"
       sources."get-stream-5.2.0"
       sources."get-symbol-description-1.0.0"
-      sources."getpass-0.1.7"
       sources."glob-7.2.0"
-      sources."got-11.8.2"
-      sources."graceful-fs-4.2.9"
+      sources."got-11.8.3"
       sources."grapheme-splitter-1.0.4"
-      sources."har-schema-2.0.0"
-      sources."har-validator-5.1.5"
       sources."has-1.0.3"
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
       sources."has-flag-4.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."has-unicode-2.0.1"
       sources."htmlparser2-6.1.0"
       sources."http-cache-semantics-4.1.0"
-      sources."http-errors-1.7.2"
-      sources."http-signature-1.2.0"
+      sources."http-errors-1.8.1"
       sources."http2-wrapper-1.0.3"
       sources."http_ece-1.1.0"
-      (sources."https-proxy-agent-5.0.0" // {
+      (sources."https-proxy-agent-5.0.1" // {
         dependencies = [
           sources."debug-4.3.4"
           sources."ms-2.1.2"
@@ -128434,14 +129458,13 @@ in
       })
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
-      sources."ignore-walk-3.0.4"
       sources."inflight-1.0.6"
-      sources."inherits-2.0.3"
+      sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."internal-slot-1.0.3"
       sources."ip-1.1.5"
       sources."ipaddr.js-1.9.1"
-      (sources."irc-framework-4.11.0" // {
+      (sources."irc-framework-4.12.1" // {
         dependencies = [
           sources."iconv-lite-0.6.3"
         ];
@@ -128451,150 +129474,81 @@ in
       sources."is-boolean-object-1.1.2"
       sources."is-callable-1.2.4"
       sources."is-date-object-1.0.5"
-      sources."is-fullwidth-code-point-1.0.0"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-generator-function-1.0.10"
       sources."is-negative-zero-2.0.2"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-regex-1.1.4"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.8"
-      sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
       sources."is-weakref-1.0.2"
-      sources."isarray-1.0.0"
-      sources."isexe-2.0.0"
       sources."isomorphic-textencoder-1.0.1"
-      sources."isstream-0.1.2"
-      sources."jsbn-0.1.1"
       sources."json-buffer-3.0.1"
-      sources."json-schema-0.4.0"
-      sources."json-schema-traverse-0.4.1"
-      sources."json-stringify-safe-5.0.1"
-      (sources."jsprim-1.4.2" // {
-        dependencies = [
-          sources."extsprintf-1.3.0"
-          sources."verror-1.10.0"
-        ];
-      })
       sources."jwa-2.0.0"
       sources."jws-4.0.0"
-      sources."keyv-4.1.1"
+      sources."keyv-4.2.2"
       sources."ldap-filter-0.3.3"
       sources."ldapjs-2.3.1"
       sources."linkify-it-3.0.3"
       sources."lodash-4.17.21"
       sources."lowercase-keys-2.0.0"
       sources."lru-cache-6.0.0"
+      (sources."make-dir-3.1.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."middleware-handler-0.2.0"
       sources."mime-1.6.0"
-      sources."mime-db-1.52.0"
-      (sources."mime-types-2.1.33" // {
-        dependencies = [
-          sources."mime-db-1.50.0"
-        ];
-      })
+      sources."mime-db-1.51.0"
+      sources."mime-types-2.1.34"
       sources."mimic-response-1.0.1"
       sources."minimalistic-assert-1.0.1"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
-      (sources."minipass-2.9.0" // {
-        dependencies = [
-          sources."yallist-3.1.1"
-        ];
-      })
-      sources."minizlib-1.3.3"
-      sources."mkdirp-0.5.6"
+      sources."minipass-3.1.6"
+      sources."minizlib-2.1.2"
+      sources."mkdirp-1.0.4"
       sources."ms-2.0.0"
       sources."mute-stream-0.0.8"
-      (sources."needle-2.9.1" // {
-        dependencies = [
-          sources."debug-3.2.7"
-          sources."ms-2.1.3"
-        ];
-      })
       sources."negotiator-0.6.3"
-      sources."node-addon-api-3.2.1"
-      sources."node-forge-0.10.0"
-      (sources."node-gyp-3.8.0" // {
-        dependencies = [
-          sources."nopt-3.0.6"
-          sources."semver-5.3.0"
-          sources."tar-2.2.2"
-        ];
-      })
-      (sources."node-pre-gyp-0.11.0" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
-      sources."nopt-4.0.3"
+      sources."node-addon-api-4.3.0"
+      sources."node-fetch-2.6.7"
+      sources."node-forge-1.3.0"
+      sources."nopt-5.0.0"
       sources."normalize-url-6.1.0"
-      sources."npm-bundled-1.1.2"
-      sources."npm-normalize-package-bin-1.0.1"
-      sources."npm-packlist-1.4.8"
-      sources."npmlog-4.1.2"
+      sources."npmlog-5.0.1"
       sources."nth-check-2.0.1"
-      sources."number-is-nan-1.0.1"
-      sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
       sources."object-inspect-1.12.0"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
-      sources."os-homedir-1.0.2"
-      sources."os-tmpdir-1.0.2"
-      sources."osenv-0.1.5"
       sources."p-cancelable-2.1.1"
       sources."p-finally-1.0.0"
       sources."p-try-2.2.0"
-      (sources."package-json-6.5.0" // {
-        dependencies = [
-          sources."@sindresorhus/is-0.14.0"
-          sources."@szmarczak/http-timer-1.1.2"
-          (sources."cacheable-request-6.1.0" // {
-            dependencies = [
-              sources."get-stream-5.2.0"
-              sources."lowercase-keys-2.0.0"
-            ];
-          })
-          sources."decompress-response-3.3.0"
-          sources."defer-to-connect-1.1.3"
-          sources."get-stream-4.1.0"
-          sources."got-9.6.0"
-          sources."json-buffer-3.0.0"
-          sources."keyv-3.1.0"
-          sources."lowercase-keys-1.0.1"
-          sources."normalize-url-4.5.1"
-          sources."p-cancelable-1.1.0"
-          sources."responselike-1.0.2"
-          sources."semver-6.3.0"
-        ];
-      })
+      sources."package-json-7.0.0"
       sources."parse5-6.0.1"
       sources."parse5-htmlparser2-tree-adapter-6.0.1"
       sources."parseurl-1.3.3"
       sources."path-is-absolute-1.0.1"
       sources."path-to-regexp-0.1.7"
       sources."peek-readable-4.1.0"
-      sources."performance-now-2.1.0"
       sources."pify-4.0.1"
       sources."precond-0.2.3"
-      sources."prepend-http-2.0.0"
-      sources."process-nextick-args-2.0.1"
       sources."proxy-addr-2.0.7"
-      sources."psl-1.8.0"
       sources."pump-3.0.0"
-      sources."punycode-2.1.1"
-      sources."qs-6.7.0"
+      sources."qs-6.9.7"
       sources."quick-lru-5.1.1"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.0"
+      sources."raw-body-2.4.3"
       sources."rc-1.2.8"
       sources."read-1.0.7"
       sources."read-chunk-3.2.0"
@@ -128603,37 +129557,30 @@ in
       sources."regenerator-runtime-0.13.9"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
-      (sources."request-2.88.2" // {
-        dependencies = [
-          sources."qs-6.5.3"
-          sources."uuid-3.4.0"
-        ];
-      })
       sources."resolve-alpn-1.2.1"
       sources."responselike-2.0.0"
-      sources."rimraf-2.7.1"
-      sources."safe-buffer-5.1.2"
+      sources."rimraf-3.0.2"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."sax-1.2.4"
       sources."semver-7.3.5"
-      (sources."send-0.17.1" // {
+      (sources."send-0.17.2" // {
         dependencies = [
-          sources."ms-2.1.1"
+          sources."ms-2.1.3"
         ];
       })
-      sources."serve-static-1.14.1"
+      sources."serve-static-1.14.2"
       sources."set-blocking-2.0.0"
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."side-channel-1.0.4"
       sources."signal-exit-3.0.7"
       sources."smart-buffer-4.2.0"
-      (sources."socket.io-3.1.2" // {
+      (sources."socket.io-4.4.1" // {
         dependencies = [
           sources."debug-4.3.4"
           sources."ms-2.1.2"
         ];
       })
-      sources."socket.io-adapter-2.1.0"
+      sources."socket.io-adapter-2.3.3"
       (sources."socket.io-parser-4.0.4" // {
         dependencies = [
           sources."debug-4.3.4"
@@ -128641,55 +129588,31 @@ in
         ];
       })
       sources."socks-2.6.2"
-      sources."sqlite3-5.0.2"
-      sources."sshpk-1.17.0"
+      sources."sqlite3-git+https://github.com/mapbox/node-sqlite3.git#918052b538b0effe6c4a44c74a16b2749c08a0d2"
       sources."statuses-1.5.0"
-      (sources."stream-browserify-3.0.0" // {
-        dependencies = [
-          sources."inherits-2.0.4"
-        ];
-      })
-      sources."streamsearch-0.1.2"
-      sources."string-width-1.0.2"
+      sources."stream-browserify-3.0.0"
+      sources."string-width-4.2.3"
       sources."string.prototype.trimend-1.0.4"
       sources."string.prototype.trimstart-1.0.4"
-      (sources."string_decoder-1.3.0" // {
-        dependencies = [
-          sources."safe-buffer-5.2.1"
-        ];
-      })
-      sources."strip-ansi-3.0.1"
+      sources."string_decoder-1.3.0"
+      sources."strip-ansi-6.0.1"
       sources."strip-json-comments-2.0.1"
       sources."strip-outer-1.0.1"
       sources."strtok3-6.3.0"
       sources."supports-color-7.2.0"
-      (sources."tar-4.4.19" // {
-        dependencies = [
-          sources."safe-buffer-5.2.1"
-          sources."yallist-3.1.1"
-        ];
-      })
-      sources."tlds-1.216.0"
-      sources."to-readable-stream-1.0.0"
-      sources."toidentifier-1.0.0"
-      (sources."token-types-2.1.1" // {
-        dependencies = [
-          sources."@tokenizer/token-0.1.1"
-        ];
-      })
-      sources."tough-cookie-2.5.0"
+      sources."tar-6.1.11"
+      sources."text-decoding-1.0.0"
+      sources."tlds-1.228.0"
+      sources."toidentifier-1.0.1"
+      sources."token-types-4.2.0"
+      sources."tr46-0.0.3"
       sources."trim-repeated-1.0.0"
       sources."tslib-2.3.1"
-      sources."tunnel-agent-0.6.0"
-      sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
-      sources."typedarray-to-buffer-3.1.5"
-      sources."ua-parser-js-0.7.30"
+      sources."ua-parser-js-1.0.2"
       sources."uc.micro-1.0.6"
       sources."unbox-primitive-1.0.1"
       sources."unpipe-1.0.0"
-      sources."uri-js-4.4.1"
-      sources."url-parse-lax-3.0.0"
       sources."urlsafe-base64-1.0.0"
       sources."util-0.12.4"
       sources."util-deprecate-1.0.2"
@@ -128703,15 +129626,16 @@ in
       })
       sources."verror-1.10.1"
       sources."web-push-3.4.5"
-      sources."which-1.3.1"
+      sources."webidl-conversions-3.0.1"
+      sources."whatwg-url-5.0.0"
       sources."which-boxed-primitive-1.0.2"
       sources."which-typed-array-1.1.7"
       sources."wide-align-1.1.5"
       sources."with-open-file-0.1.7"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.6"
+      sources."ws-8.2.3"
       sources."yallist-4.0.0"
-      sources."yarn-1.22.10"
+      sources."yarn-1.22.17"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -128732,7 +129656,10 @@ in
       sha512 = "o24rZwvzeMbbvuara2bGaX6eHw925aQw1BZhl7VHtY6xlWrJ9Sy7P29/Q2GQNIP4Otzcf09TX29zTBbRjKbrSA==";
     };
     dependencies = [
+      sources."@fastify/busboy-1.0.0"
+      sources."@mapbox/node-pre-gyp-1.0.9"
       sources."@sindresorhus/is-4.6.0"
+      sources."@socket.io/base64-arraybuffer-1.0.2"
       sources."@szmarczak/http-timer-4.0.6"
       sources."@tokenizer/token-0.3.0"
       sources."@types/cacheable-request-6.0.2"
@@ -128740,83 +129667,65 @@ in
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.12"
       sources."@types/http-cache-semantics-4.0.1"
+      sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
-      (sources."accepts-1.3.8" // {
-        dependencies = [
-          sources."mime-types-2.1.35"
-        ];
-      })
+      sources."accepts-1.3.8"
       (sources."agent-base-6.0.2" // {
         dependencies = [
           sources."debug-4.3.4"
           sources."ms-2.1.2"
         ];
       })
-      sources."ajv-6.12.6"
-      sources."ansi-regex-2.1.1"
+      sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
-      sources."aproba-1.2.0"
-      (sources."are-we-there-yet-1.1.7" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."aproba-2.0.0"
+      sources."are-we-there-yet-2.0.0"
       sources."array-flatten-1.1.1"
       sources."asn1-0.2.6"
       sources."asn1.js-5.4.1"
       sources."assert-plus-1.0.0"
-      sources."asynckit-0.4.0"
       sources."available-typed-arrays-1.0.5"
-      sources."aws-sign2-0.7.0"
-      sources."aws4-1.11.0"
       sources."backoff-2.5.0"
       sources."balanced-match-1.0.2"
-      sources."base64-arraybuffer-0.1.4"
       sources."base64-js-1.5.1"
       sources."base64id-2.0.0"
-      sources."bcrypt-pbkdf-1.0.2"
       sources."bcryptjs-2.4.3"
-      sources."block-stream-0.0.9"
       sources."bn.js-4.12.0"
-      sources."body-parser-1.19.0"
+      sources."body-parser-1.19.2"
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."buffer-6.0.3"
       sources."buffer-equal-constant-time-1.0.1"
-      sources."busboy-0.3.1"
-      sources."bytes-3.1.0"
+      sources."bytes-3.1.2"
       sources."cacheable-lookup-5.0.4"
       sources."cacheable-request-7.0.2"
       sources."call-bind-1.0.2"
-      sources."caseless-0.12.0"
       sources."chalk-4.1.2"
       sources."cheerio-1.0.0-rc.10"
-      sources."cheerio-select-1.5.0"
-      sources."chownr-1.1.4"
+      sources."cheerio-select-1.6.0"
+      sources."chownr-2.0.0"
       sources."clone-response-1.0.2"
-      sources."code-point-at-1.1.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."combined-stream-1.0.8"
-      sources."commander-7.2.0"
+      sources."color-support-1.1.3"
+      sources."commander-9.0.0"
       sources."component-emitter-1.3.0"
+      sources."compress-brotli-1.3.6"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
-      sources."content-disposition-0.5.3"
+      sources."content-disposition-0.5.4"
       sources."content-type-1.0.4"
-      sources."cookie-0.4.0"
+      sources."cookie-0.4.2"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.21.1"
+      sources."core-js-3.22.1"
       sources."core-util-is-1.0.2"
       sources."cors-2.8.5"
-      sources."css-select-4.2.1"
-      sources."css-what-5.1.0"
-      sources."dashdash-1.14.1"
+      sources."css-select-4.3.0"
+      sources."css-what-6.1.0"
       sources."debug-2.6.9"
       (sources."decompress-response-6.0.0" // {
         dependencies = [
@@ -128825,81 +129734,67 @@ in
       })
       sources."deep-extend-0.6.0"
       sources."defer-to-connect-2.0.1"
-      sources."define-properties-1.1.3"
-      sources."delayed-stream-1.0.0"
+      sources."define-properties-1.1.4"
       sources."delegates-1.0.0"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."detect-libc-1.0.3"
-      sources."dicer-0.3.0"
-      sources."dom-serializer-1.3.2"
-      sources."domelementtype-2.2.0"
+      sources."detect-libc-2.0.1"
+      sources."dom-serializer-1.4.1"
+      sources."domelementtype-2.3.0"
       sources."domhandler-4.3.1"
       sources."domutils-2.8.0"
-      sources."duplexer3-0.1.4"
-      sources."ecc-jsbn-0.1.2"
       sources."ecdsa-sig-formatter-1.0.11"
       sources."ee-first-1.1.1"
+      sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."engine.io-4.1.2" // {
+      (sources."engine.io-6.1.3" // {
         dependencies = [
-          sources."cookie-0.4.2"
           sources."debug-4.3.4"
           sources."ms-2.1.2"
         ];
       })
-      sources."engine.io-parser-4.0.3"
+      sources."engine.io-parser-5.0.3"
       sources."entities-2.2.0"
-      sources."es-abstract-1.19.1"
+      sources."es-abstract-1.19.5"
       sources."es-to-primitive-1.2.1"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
       sources."etag-1.8.1"
       sources."eventemitter3-4.0.7"
-      sources."express-4.17.1"
-      sources."extend-3.0.2"
+      sources."express-4.17.3"
       sources."extsprintf-1.4.1"
-      sources."fast-deep-equal-3.1.3"
-      sources."fast-json-stable-stringify-2.1.0"
       sources."fast-text-encoding-1.0.3"
-      sources."file-type-16.2.0"
+      sources."file-type-16.5.3"
       sources."filename-reserved-regex-2.0.0"
-      sources."filenamify-4.2.0"
+      sources."filenamify-4.3.0"
       sources."finalhandler-1.1.2"
       sources."foreach-2.0.5"
-      sources."forever-agent-0.6.1"
-      sources."form-data-2.3.3"
       sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
-      sources."fs-minipass-1.2.7"
+      sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
-      sources."fstream-1.0.12"
       sources."function-bind-1.1.1"
-      sources."gauge-2.7.4"
+      sources."gauge-3.0.2"
       sources."get-intrinsic-1.1.1"
       sources."get-stream-5.2.0"
       sources."get-symbol-description-1.0.0"
-      sources."getpass-0.1.7"
       sources."glob-7.2.0"
-      sources."got-11.8.2"
-      sources."graceful-fs-4.2.9"
+      sources."got-11.8.3"
       sources."grapheme-splitter-1.0.4"
-      sources."har-schema-2.0.0"
-      sources."har-validator-5.1.5"
       sources."has-1.0.3"
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
       sources."has-flag-4.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."has-unicode-2.0.1"
       sources."htmlparser2-6.1.0"
       sources."http-cache-semantics-4.1.0"
-      sources."http-errors-1.7.2"
-      sources."http-signature-1.2.0"
+      sources."http-errors-1.8.1"
       sources."http2-wrapper-1.0.3"
       sources."http_ece-1.1.0"
-      (sources."https-proxy-agent-5.0.0" // {
+      (sources."https-proxy-agent-5.0.1" // {
         dependencies = [
           sources."debug-4.3.4"
           sources."ms-2.1.2"
@@ -128907,14 +129802,13 @@ in
       })
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
-      sources."ignore-walk-3.0.4"
       sources."inflight-1.0.6"
-      sources."inherits-2.0.3"
+      sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."internal-slot-1.0.3"
       sources."ip-1.1.5"
       sources."ipaddr.js-1.9.1"
-      (sources."irc-framework-4.11.0" // {
+      (sources."irc-framework-4.12.1" // {
         dependencies = [
           sources."iconv-lite-0.6.3"
         ];
@@ -128924,150 +129818,81 @@ in
       sources."is-boolean-object-1.1.2"
       sources."is-callable-1.2.4"
       sources."is-date-object-1.0.5"
-      sources."is-fullwidth-code-point-1.0.0"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-generator-function-1.0.10"
       sources."is-negative-zero-2.0.2"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-regex-1.1.4"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.8"
-      sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
       sources."is-weakref-1.0.2"
-      sources."isarray-1.0.0"
-      sources."isexe-2.0.0"
       sources."isomorphic-textencoder-1.0.1"
-      sources."isstream-0.1.2"
-      sources."jsbn-0.1.1"
       sources."json-buffer-3.0.1"
-      sources."json-schema-0.4.0"
-      sources."json-schema-traverse-0.4.1"
-      sources."json-stringify-safe-5.0.1"
-      (sources."jsprim-1.4.2" // {
-        dependencies = [
-          sources."extsprintf-1.3.0"
-          sources."verror-1.10.0"
-        ];
-      })
       sources."jwa-2.0.0"
       sources."jws-4.0.0"
-      sources."keyv-4.1.1"
+      sources."keyv-4.2.2"
       sources."ldap-filter-0.3.3"
       sources."ldapjs-2.3.1"
       sources."linkify-it-3.0.3"
       sources."lodash-4.17.21"
       sources."lowercase-keys-2.0.0"
       sources."lru-cache-6.0.0"
+      (sources."make-dir-3.1.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."middleware-handler-0.2.0"
       sources."mime-1.6.0"
-      sources."mime-db-1.52.0"
-      (sources."mime-types-2.1.33" // {
-        dependencies = [
-          sources."mime-db-1.50.0"
-        ];
-      })
+      sources."mime-db-1.51.0"
+      sources."mime-types-2.1.34"
       sources."mimic-response-1.0.1"
       sources."minimalistic-assert-1.0.1"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
-      (sources."minipass-2.9.0" // {
-        dependencies = [
-          sources."yallist-3.1.1"
-        ];
-      })
-      sources."minizlib-1.3.3"
-      sources."mkdirp-0.5.6"
+      sources."minipass-3.1.6"
+      sources."minizlib-2.1.2"
+      sources."mkdirp-1.0.4"
       sources."ms-2.0.0"
       sources."mute-stream-0.0.8"
-      (sources."needle-2.9.1" // {
-        dependencies = [
-          sources."debug-3.2.7"
-          sources."ms-2.1.3"
-        ];
-      })
       sources."negotiator-0.6.3"
-      sources."node-addon-api-3.2.1"
-      sources."node-forge-0.10.0"
-      (sources."node-gyp-3.8.0" // {
-        dependencies = [
-          sources."nopt-3.0.6"
-          sources."semver-5.3.0"
-          sources."tar-2.2.2"
-        ];
-      })
-      (sources."node-pre-gyp-0.11.0" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
-      sources."nopt-4.0.3"
+      sources."node-addon-api-4.3.0"
+      sources."node-fetch-2.6.7"
+      sources."node-forge-1.3.0"
+      sources."nopt-5.0.0"
       sources."normalize-url-6.1.0"
-      sources."npm-bundled-1.1.2"
-      sources."npm-normalize-package-bin-1.0.1"
-      sources."npm-packlist-1.4.8"
-      sources."npmlog-4.1.2"
+      sources."npmlog-5.0.1"
       sources."nth-check-2.0.1"
-      sources."number-is-nan-1.0.1"
-      sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
       sources."object-inspect-1.12.0"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
-      sources."os-homedir-1.0.2"
-      sources."os-tmpdir-1.0.2"
-      sources."osenv-0.1.5"
       sources."p-cancelable-2.1.1"
       sources."p-finally-1.0.0"
       sources."p-try-2.2.0"
-      (sources."package-json-6.5.0" // {
-        dependencies = [
-          sources."@sindresorhus/is-0.14.0"
-          sources."@szmarczak/http-timer-1.1.2"
-          (sources."cacheable-request-6.1.0" // {
-            dependencies = [
-              sources."get-stream-5.2.0"
-              sources."lowercase-keys-2.0.0"
-            ];
-          })
-          sources."decompress-response-3.3.0"
-          sources."defer-to-connect-1.1.3"
-          sources."get-stream-4.1.0"
-          sources."got-9.6.0"
-          sources."json-buffer-3.0.0"
-          sources."keyv-3.1.0"
-          sources."lowercase-keys-1.0.1"
-          sources."normalize-url-4.5.1"
-          sources."p-cancelable-1.1.0"
-          sources."responselike-1.0.2"
-          sources."semver-6.3.0"
-        ];
-      })
+      sources."package-json-7.0.0"
       sources."parse5-6.0.1"
       sources."parse5-htmlparser2-tree-adapter-6.0.1"
       sources."parseurl-1.3.3"
       sources."path-is-absolute-1.0.1"
       sources."path-to-regexp-0.1.7"
       sources."peek-readable-4.1.0"
-      sources."performance-now-2.1.0"
       sources."pify-4.0.1"
       sources."precond-0.2.3"
-      sources."prepend-http-2.0.0"
-      sources."process-nextick-args-2.0.1"
       sources."proxy-addr-2.0.7"
-      sources."psl-1.8.0"
       sources."pump-3.0.0"
-      sources."punycode-2.1.1"
-      sources."qs-6.7.0"
+      sources."qs-6.9.7"
       sources."quick-lru-5.1.1"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.0"
+      sources."raw-body-2.4.3"
       sources."rc-1.2.8"
       sources."read-1.0.7"
       sources."read-chunk-3.2.0"
@@ -129076,37 +129901,30 @@ in
       sources."regenerator-runtime-0.13.9"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
-      (sources."request-2.88.2" // {
-        dependencies = [
-          sources."qs-6.5.3"
-          sources."uuid-3.4.0"
-        ];
-      })
       sources."resolve-alpn-1.2.1"
       sources."responselike-2.0.0"
-      sources."rimraf-2.7.1"
-      sources."safe-buffer-5.1.2"
+      sources."rimraf-3.0.2"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."sax-1.2.4"
       sources."semver-7.3.5"
-      (sources."send-0.17.1" // {
+      (sources."send-0.17.2" // {
         dependencies = [
-          sources."ms-2.1.1"
+          sources."ms-2.1.3"
         ];
       })
-      sources."serve-static-1.14.1"
+      sources."serve-static-1.14.2"
       sources."set-blocking-2.0.0"
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."side-channel-1.0.4"
       sources."signal-exit-3.0.7"
       sources."smart-buffer-4.2.0"
-      (sources."socket.io-3.1.2" // {
+      (sources."socket.io-4.4.1" // {
         dependencies = [
           sources."debug-4.3.4"
           sources."ms-2.1.2"
         ];
       })
-      sources."socket.io-adapter-2.1.0"
+      sources."socket.io-adapter-2.3.3"
       (sources."socket.io-parser-4.0.4" // {
         dependencies = [
           sources."debug-4.3.4"
@@ -129114,56 +129932,32 @@ in
         ];
       })
       sources."socks-2.6.2"
-      sources."sqlite3-5.0.2"
-      sources."sshpk-1.17.0"
+      sources."sqlite3-git+https://github.com/mapbox/node-sqlite3.git#918052b538b0effe6c4a44c74a16b2749c08a0d2"
       sources."statuses-1.5.0"
-      (sources."stream-browserify-3.0.0" // {
-        dependencies = [
-          sources."inherits-2.0.4"
-        ];
-      })
-      sources."streamsearch-0.1.2"
-      sources."string-width-1.0.2"
+      sources."stream-browserify-3.0.0"
+      sources."string-width-4.2.3"
       sources."string.prototype.trimend-1.0.4"
       sources."string.prototype.trimstart-1.0.4"
-      (sources."string_decoder-1.3.0" // {
-        dependencies = [
-          sources."safe-buffer-5.2.1"
-        ];
-      })
-      sources."strip-ansi-3.0.1"
+      sources."string_decoder-1.3.0"
+      sources."strip-ansi-6.0.1"
       sources."strip-json-comments-2.0.1"
       sources."strip-outer-1.0.1"
       sources."strtok3-6.3.0"
       sources."supports-color-7.2.0"
-      (sources."tar-4.4.19" // {
-        dependencies = [
-          sources."safe-buffer-5.2.1"
-          sources."yallist-3.1.1"
-        ];
-      })
-      sources."thelounge-4.3.0"
-      sources."tlds-1.216.0"
-      sources."to-readable-stream-1.0.0"
-      sources."toidentifier-1.0.0"
-      (sources."token-types-2.1.1" // {
-        dependencies = [
-          sources."@tokenizer/token-0.1.1"
-        ];
-      })
-      sources."tough-cookie-2.5.0"
+      sources."tar-6.1.11"
+      sources."text-decoding-1.0.0"
+      sources."thelounge-4.3.1"
+      sources."tlds-1.228.0"
+      sources."toidentifier-1.0.1"
+      sources."token-types-4.2.0"
+      sources."tr46-0.0.3"
       sources."trim-repeated-1.0.0"
       sources."tslib-2.3.1"
-      sources."tunnel-agent-0.6.0"
-      sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
-      sources."typedarray-to-buffer-3.1.5"
-      sources."ua-parser-js-0.7.30"
+      sources."ua-parser-js-1.0.2"
       sources."uc.micro-1.0.6"
       sources."unbox-primitive-1.0.1"
       sources."unpipe-1.0.0"
-      sources."uri-js-4.4.1"
-      sources."url-parse-lax-3.0.0"
       sources."urlsafe-base64-1.0.0"
       sources."util-0.12.4"
       sources."util-deprecate-1.0.2"
@@ -129177,15 +129971,16 @@ in
       })
       sources."verror-1.10.1"
       sources."web-push-3.4.5"
-      sources."which-1.3.1"
+      sources."webidl-conversions-3.0.1"
+      sources."whatwg-url-5.0.0"
       sources."which-boxed-primitive-1.0.2"
       sources."which-typed-array-1.1.7"
       sources."wide-align-1.1.5"
       sources."with-open-file-0.1.7"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.6"
+      sources."ws-8.2.3"
       sources."yallist-4.0.0"
-      sources."yarn-1.22.10"
+      sources."yarn-1.22.17"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -129291,7 +130086,7 @@ in
       sources."content-type-1.0.4"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.21.1"
+      sources."core-js-3.22.1"
       sources."core-util-is-1.0.2"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
@@ -129374,7 +130169,7 @@ in
       sources."getpass-0.1.7"
       sources."glob-7.2.0"
       sources."got-9.6.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."grapheme-splitter-1.0.4"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
@@ -129655,15 +130450,15 @@ in
   thelounge-theme-abyss = nodeEnv.buildNodePackage {
     name = "thelounge-theme-abyss";
     packageName = "thelounge-theme-abyss";
-    version = "2.0.2";
+    version = "2.0.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/thelounge-theme-abyss/-/thelounge-theme-abyss-2.0.2.tgz";
-      sha512 = "1TrJGKqrk+zltLhythNDfEScgt1FL8b1j+3+tPno1yN06vm3yn8dRQlNesMP52op5jX+xJqA5jBFQGMQYSS19g==";
+      url = "https://registry.npmjs.org/thelounge-theme-abyss/-/thelounge-theme-abyss-2.0.3.tgz";
+      sha512 = "Kx0eqblXlz3aRN/XNxcwQXN5L2K2QIgmXdn6OJKBcwXCIBqcAf+2Njey6iNtEbB+lIBYm+yXBQJOuGnLuECIsA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
       description = "A theme for The Lounge";
-      homepage = "https://github.com/rj45man/thelounge-theme-abyss";
+      homepage = "https://github.com/Flisk/thelounge-theme-abyss";
       license = "GPL-3";
     };
     production = true;
@@ -129745,10 +130540,10 @@ in
   thelounge-theme-chord = nodeEnv.buildNodePackage {
     name = "thelounge-theme-chord";
     packageName = "thelounge-theme-chord";
-    version = "1.0.1";
+    version = "1.1.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/thelounge-theme-chord/-/thelounge-theme-chord-1.0.1.tgz";
-      sha512 = "Y9nr1ZIUAGFyDBRCXmJcZ93pEWdjzfvyFvg+4X0hPC/+mn1QmE5nfx060ExCNRY4uKl1T0muWV89X4B2FAVoHg==";
+      url = "https://registry.npmjs.org/thelounge-theme-chord/-/thelounge-theme-chord-1.1.6.tgz";
+      sha512 = "fcazTSuzpxjrxSv5VQ39iBjYwRFZViwknpnEy34k12JWcPdSVXb9XXneoF09ffsS4NdYqdDAWlNwQMHC+uORKA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -129882,8 +130677,9 @@ in
       sources."@tokenizer/token-0.3.0"
       sources."@types/cacheable-request-6.0.2"
       sources."@types/http-cache-semantics-4.0.1"
+      sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -129953,6 +130749,7 @@ in
       sources."component-bind-1.0.0"
       sources."component-emitter-1.2.1"
       sources."component-inherit-0.0.3"
+      sources."compress-brotli-1.3.6"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
       (sources."content-disposition-0.5.3" // {
@@ -129963,7 +130760,7 @@ in
       sources."content-type-1.0.4"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.21.1"
+      sources."core-js-3.22.1"
       sources."core-util-is-1.0.2"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
@@ -130040,7 +130837,7 @@ in
       sources."getpass-0.1.7"
       sources."glob-7.2.0"
       sources."got-11.5.2"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."grapheme-splitter-1.0.4"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
@@ -130058,7 +130855,7 @@ in
       sources."http-signature-1.2.0"
       sources."http2-wrapper-1.0.3"
       sources."http_ece-1.1.0"
-      (sources."https-proxy-agent-5.0.0" // {
+      (sources."https-proxy-agent-5.0.1" // {
         dependencies = [
           sources."debug-4.3.4"
           sources."ms-2.1.2"
@@ -130097,7 +130894,7 @@ in
       })
       sources."jwa-2.0.0"
       sources."jws-4.0.0"
-      sources."keyv-4.1.1"
+      sources."keyv-4.2.2"
       sources."ldap-filter-0.3.3"
       sources."ldapjs-2.1.1"
       sources."linkify-it-3.0.2"
@@ -130347,8 +131144,9 @@ in
       sources."@tokenizer/token-0.3.0"
       sources."@types/cacheable-request-6.0.2"
       sources."@types/http-cache-semantics-4.0.1"
+      sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -130418,6 +131216,7 @@ in
       sources."component-bind-1.0.0"
       sources."component-emitter-1.2.1"
       sources."component-inherit-0.0.3"
+      sources."compress-brotli-1.3.6"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
       (sources."content-disposition-0.5.3" // {
@@ -130428,7 +131227,7 @@ in
       sources."content-type-1.0.4"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.21.1"
+      sources."core-js-3.22.1"
       sources."core-util-is-1.0.2"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
@@ -130505,7 +131304,7 @@ in
       sources."getpass-0.1.7"
       sources."glob-7.2.0"
       sources."got-11.5.2"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."grapheme-splitter-1.0.4"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
@@ -130523,7 +131322,7 @@ in
       sources."http-signature-1.2.0"
       sources."http2-wrapper-1.0.3"
       sources."http_ece-1.1.0"
-      (sources."https-proxy-agent-5.0.0" // {
+      (sources."https-proxy-agent-5.0.1" // {
         dependencies = [
           sources."debug-4.3.4"
           sources."ms-2.1.2"
@@ -130562,7 +131361,7 @@ in
       })
       sources."jwa-2.0.0"
       sources."jws-4.0.0"
-      sources."keyv-4.1.1"
+      sources."keyv-4.2.2"
       sources."ldap-filter-0.3.3"
       sources."ldapjs-2.1.1"
       sources."linkify-it-3.0.2"
@@ -130873,10 +131672,10 @@ in
   thelounge-theme-midnight = nodeEnv.buildNodePackage {
     name = "thelounge-theme-midnight";
     packageName = "thelounge-theme-midnight";
-    version = "1.1.3";
+    version = "1.1.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/thelounge-theme-midnight/-/thelounge-theme-midnight-1.1.3.tgz";
-      sha512 = "g57O8pLOUtXubRuYCurwP3eKHLvh3KoBvD30rZnXB7d+fwaSApKe9wzPSiOiCeNfMlwbV/1Zwbdg4+AWU25kHw==";
+      url = "https://registry.npmjs.org/thelounge-theme-midnight/-/thelounge-theme-midnight-1.1.7.tgz";
+      sha512 = "fRAeJx4+VHLacDhJL8papjHwBQgqmvnUCGt9ATF5tISTjxJNES9iRFMVWBw9tJwdW3e2HexwsPXLYeIABERLjg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -131197,10 +131996,10 @@ in
   three = nodeEnv.buildNodePackage {
     name = "three";
     packageName = "three";
-    version = "0.139.0";
+    version = "0.139.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/three/-/three-0.139.0.tgz";
-      sha512 = "hZ4LkCjgoEM82WLaOVptDKGpB3SkEyuJP2OHe36AFO8hS2I6CrEiNanXj7wwR3wIPT7V5wi5Y5pFnncS5SVHgQ==";
+      url = "https://registry.npmjs.org/three/-/three-0.139.2.tgz";
+      sha512 = "gV7q7QY8rogu7HLFZR9cWnOQAUedUhu2WXAnpr2kdXZP9YDKsG/0ychwQvWkZN5PlNw9mv5MoCTin6zNTXoONg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -131251,7 +132050,7 @@ in
       sources."@octokit/request-error-2.1.0"
       sources."@octokit/rest-18.12.0"
       sources."@octokit/types-6.34.0"
-      sources."@xmldom/xmldom-0.8.1"
+      sources."@xmldom/xmldom-0.8.2"
       sources."ajv-6.12.6"
       sources."asn1-0.2.6"
       sources."assert-plus-1.0.0"
@@ -131292,7 +132091,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."getpass-0.1.7"
       sources."glob-7.2.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."http-signature-1.2.0"
@@ -131333,7 +132132,7 @@ in
       sources."rimraf-2.6.3"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."sprintf-0.1.5"
       sources."sshpk-1.17.0"
       sources."stack-trace-0.0.10"
@@ -131447,7 +132246,7 @@ in
       sources."minimatch-3.1.2"
       sources."minimist-0.0.8"
       sources."mkdirp-0.5.1"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."mooremachine-2.3.0"
       sources."mute-stream-0.0.8"
       sources."mv-2.1.1"
@@ -131620,6 +132419,40 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  ts-node = nodeEnv.buildNodePackage {
+    name = "ts-node";
+    packageName = "ts-node";
+    version = "10.7.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz";
+      sha512 = "TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==";
+    };
+    dependencies = [
+      sources."@cspotcode/source-map-consumer-0.8.0"
+      sources."@cspotcode/source-map-support-0.7.0"
+      sources."@tsconfig/node10-1.0.8"
+      sources."@tsconfig/node12-1.0.9"
+      sources."@tsconfig/node14-1.0.1"
+      sources."@tsconfig/node16-1.0.2"
+      sources."acorn-8.7.0"
+      sources."acorn-walk-8.2.0"
+      sources."arg-4.1.3"
+      sources."create-require-1.1.1"
+      sources."diff-4.0.2"
+      sources."make-error-1.3.6"
+      sources."v8-compile-cache-lib-3.0.1"
+      sources."yn-3.1.1"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "TypeScript execution environment and REPL for node.js, with source map support";
+      homepage = "https://typestrong.org/ts-node";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   ttf2eot = nodeEnv.buildNodePackage {
     name = "ttf2eot";
     packageName = "ttf2eot";
@@ -131677,7 +132510,7 @@ in
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."clean-stack-2.2.0"
-      sources."commander-9.1.0"
+      sources."commander-9.2.0"
       sources."concat-map-0.0.1"
       sources."crypto-random-string-2.0.0"
       sources."del-6.0.0"
@@ -131686,12 +132519,12 @@ in
       sources."fastq-1.13.0"
       sources."fill-range-7.0.1"
       sources."find-up-3.0.0"
-      sources."fs-extra-10.0.1"
+      sources."fs-extra-10.1.0"
       sources."fs.realpath-1.0.0"
       sources."glob-7.2.0"
       sources."glob-parent-5.1.2"
       sources."globby-11.1.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."ignore-5.2.0"
       sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
@@ -131724,7 +132557,7 @@ in
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
       sources."run-parallel-1.2.0"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."slash-3.0.0"
       sources."temp-dir-2.0.0"
       sources."tempy-1.0.1"
@@ -131754,10 +132587,10 @@ in
   uglify-js = nodeEnv.buildNodePackage {
     name = "uglify-js";
     packageName = "uglify-js";
-    version = "3.15.3";
+    version = "3.15.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.3.tgz";
-      sha512 = "6iCVm2omGJbsu3JWac+p6kUiOpg3wFO2f8lIXjfEb8RrmLjzog1wTPMmwKB7swfzzqxj9YM+sGUM++u1qN4qJg==";
+      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.4.tgz";
+      sha512 = "vMOPGDuvXecPs34V74qDKk4iJ/SN4vL3Ow/23ixafENYvtrNvtbcgUeugTcUGRGsOF/5fU8/NYSL5Hyb3l1OJA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -131807,8 +132640,9 @@ in
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.12"
       sources."@types/http-cache-semantics-4.0.1"
+      sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-16.11.26"
+      sources."@types/node-16.11.27"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.8"
@@ -131840,6 +132674,7 @@ in
       sources."color-string-1.9.0"
       sources."colorspace-1.1.4"
       sources."component-emitter-1.3.0"
+      sources."compress-brotli-1.3.6"
       sources."concat-map-0.0.1"
       sources."content-disposition-0.5.4"
       sources."content-type-1.0.4"
@@ -131866,7 +132701,7 @@ in
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
       sources."diff-5.0.0"
-      sources."diff2html-3.4.16"
+      sources."diff2html-3.4.17"
       sources."dnd-page-scroll-0.0.4"
       sources."ee-first-1.1.1"
       sources."emoji-regex-8.0.0"
@@ -131895,7 +132730,7 @@ in
           sources."depd-2.0.0"
         ];
       })
-      sources."fecha-4.2.1"
+      sources."fecha-4.2.3"
       sources."finalhandler-1.1.2"
       sources."fn.name-1.1.0"
       sources."forwarded-0.2.0"
@@ -131932,7 +132767,7 @@ in
       sources."jquery-ui-1.13.1"
       sources."json-buffer-3.0.1"
       sources."just-detect-adblock-1.1.0"
-      sources."keyv-4.1.1"
+      sources."keyv-4.2.2"
       sources."knockout-3.5.1"
       sources."kuler-2.0.0"
       sources."latest-version-6.0.0"
@@ -131960,7 +132795,7 @@ in
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
       sources."mkdirp-1.0.4"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."ms-2.0.0"
       sources."negotiator-0.6.3"
       sources."node-cache-5.1.2"
@@ -132010,7 +132845,7 @@ in
       sources."safe-buffer-5.2.1"
       sources."safe-stable-stringify-2.3.1"
       sources."safer-buffer-2.1.2"
-      (sources."semver-7.3.5" // {
+      (sources."semver-7.3.7" // {
         dependencies = [
           sources."lru-cache-6.0.0"
           sources."yallist-4.0.0"
@@ -132118,13 +132953,13 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      sources."@babel/highlight-7.16.10"
-      sources."@types/concat-stream-1.6.1"
+      sources."@babel/highlight-7.17.9"
+      sources."@types/concat-stream-2.0.0"
       sources."@types/debug-4.1.7"
       sources."@types/is-empty-1.2.1"
       sources."@types/js-yaml-4.0.5"
       sources."@types/ms-0.7.31"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/supports-color-8.1.1"
       sources."@types/unist-2.0.6"
       sources."ansi-regex-6.0.1"
@@ -132179,7 +133014,7 @@ in
       sources."path-is-absolute-1.0.1"
       sources."readable-stream-3.6.0"
       sources."safe-buffer-5.2.1"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."string-width-5.1.2"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-7.0.1"
@@ -132187,7 +133022,7 @@ in
       sources."to-vfile-7.2.3"
       sources."trough-2.1.0"
       sources."typedarray-0.0.6"
-      sources."unified-engine-9.0.5"
+      sources."unified-engine-9.1.0"
       sources."unist-util-inspect-7.0.0"
       sources."unist-util-stringify-position-3.0.2"
       sources."util-deprecate-1.0.2"
@@ -132195,7 +133030,7 @@ in
       sources."vfile-message-3.1.2"
       (sources."vfile-reporter-7.0.4" // {
         dependencies = [
-          sources."supports-color-9.2.1"
+          sources."supports-color-9.2.2"
         ];
       })
       sources."vfile-sort-3.0.0"
@@ -132227,7 +133062,7 @@ in
       sha512 = "gX4TrHLo1nsBiLC/bZkWnZANp1ib4b4+3drekhCkJv0ne+Ti9Xuf5b2G8yqYv4pmT/sB5/ClvxFKmm1Ol0tFIQ==";
     };
     dependencies = [
-      sources."@mapbox/node-pre-gyp-1.0.8"
+      sources."@mapbox/node-pre-gyp-1.0.9"
       sources."@types/estree-0.0.50"
       sources."abbrev-1.1.1"
       sources."agent-base-6.0.2"
@@ -132246,8 +133081,8 @@ in
       sources."commander-7.2.0"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
-      sources."d3-array-3.1.1"
-      sources."d3-color-3.0.1"
+      sources."d3-array-3.1.6"
+      sources."d3-color-3.1.0"
       sources."d3-delaunay-6.0.2"
       sources."d3-dispatch-3.0.1"
       sources."d3-dsv-3.0.1"
@@ -132255,7 +133090,7 @@ in
       sources."d3-format-3.1.0"
       sources."d3-geo-3.0.1"
       sources."d3-geo-projection-4.0.0"
-      sources."d3-hierarchy-3.1.1"
+      sources."d3-hierarchy-3.1.2"
       sources."d3-interpolate-3.0.1"
       sources."d3-path-3.0.1"
       sources."d3-quadtree-3.0.1"
@@ -132268,7 +133103,7 @@ in
       sources."decompress-response-4.2.1"
       sources."delaunator-5.0.0"
       sources."delegates-1.0.0"
-      sources."detect-libc-1.0.3"
+      sources."detect-libc-2.0.1"
       sources."emoji-regex-8.0.0"
       sources."escalade-3.1.1"
       sources."fs-minipass-2.1.0"
@@ -132277,7 +133112,7 @@ in
       sources."get-caller-file-2.0.5"
       sources."glob-7.2.0"
       sources."has-unicode-2.0.1"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."iconv-lite-0.6.3"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -132309,7 +133144,7 @@ in
       sources."rw-1.3.3"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."set-blocking-2.0.0"
       sources."signal-exit-3.0.7"
       sources."simple-concat-1.0.1"
@@ -132345,11 +133180,15 @@ in
       sources."vega-runtime-6.1.3"
       sources."vega-scale-7.2.0"
       sources."vega-scenegraph-4.10.1"
-      sources."vega-selections-5.4.0"
+      (sources."vega-selections-5.4.0" // {
+        dependencies = [
+          sources."d3-array-3.1.1"
+        ];
+      })
       sources."vega-statistics-1.8.0"
       sources."vega-time-2.1.0"
       sources."vega-transforms-4.10.0"
-      sources."vega-typings-0.22.2"
+      sources."vega-typings-0.22.3"
       sources."vega-util-1.17.0"
       sources."vega-view-5.11.0"
       sources."vega-view-transforms-4.5.8"
@@ -132362,7 +133201,7 @@ in
       sources."wrappy-1.0.2"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
-      sources."yargs-17.4.0"
+      sources."yargs-17.4.1"
       sources."yargs-parser-21.0.1"
     ];
     buildInputs = globalBuildInputs;
@@ -132425,21 +133264,21 @@ in
   vercel = nodeEnv.buildNodePackage {
     name = "vercel";
     packageName = "vercel";
-    version = "24.0.1";
+    version = "24.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vercel/-/vercel-24.0.1.tgz";
-      sha512 = "LmWW65KyWJV/GTxlcVwcifGp1yywUSNP3fcMNZQLdd6fVC3CHJUyHz5t4GD8O1VM56NqvnnYgqNbGYBQXLN5gQ==";
+      url = "https://registry.npmjs.org/vercel/-/vercel-24.1.0.tgz";
+      sha512 = "OSX9Dn7+EAQnITdx4+cvfhtOLIi81qzbQwh9FtLmDOarba+reXDDTAJX/yxtcohSLT2NmyJ8mDyIdhr/5FeE8g==";
     };
     dependencies = [
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-17.0.23"
-      sources."@vercel/build-utils-2.15.0"
-      sources."@vercel/go-1.3.1"
-      sources."@vercel/node-1.14.0"
+      sources."@types/node-17.0.25"
+      sources."@vercel/build-utils-2.15.1"
+      sources."@vercel/go-1.3.2"
+      sources."@vercel/node-1.14.1"
       sources."@vercel/node-bridge-2.2.0"
-      sources."@vercel/python-2.2.1"
-      sources."@vercel/ruby-1.3.1"
+      sources."@vercel/python-2.2.2"
+      sources."@vercel/ruby-1.3.2"
       sources."ansi-align-3.0.1"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
@@ -132473,7 +133312,7 @@ in
       sources."get-stream-4.1.0"
       sources."global-dirs-2.1.0"
       sources."got-9.6.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-flag-4.0.0"
       sources."has-yarn-2.1.0"
       sources."http-cache-semantics-4.1.0"
@@ -132544,10 +133383,10 @@ in
   vim-language-server = nodeEnv.buildNodePackage {
     name = "vim-language-server";
     packageName = "vim-language-server";
-    version = "2.2.6";
+    version = "2.2.10";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vim-language-server/-/vim-language-server-2.2.6.tgz";
-      sha512 = "mgX18AzHsg2sDqh4aVVjk23iXf2s93lN7SZnZq2JE74/uGeXfrBckix3YdKtxgZe1vb1tiwDz9JRqoRV9SyGng==";
+      url = "https://registry.npmjs.org/vim-language-server/-/vim-language-server-2.2.10.tgz";
+      sha512 = "Z98jMgnyPCUKVqLZZhsypCLehpE+FbQZjv20IT+TTeAYDqqX0wGRcvkUsDgcw2x2xc2xKdN1Rgp71WGzydGINg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -132570,7 +133409,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.11"
       sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."chalk-2.4.2"
           sources."escape-string-regexp-1.0.5"
@@ -132667,7 +133506,7 @@ in
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-expression-4.0.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
@@ -132696,7 +133535,7 @@ in
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
       sources."prelude-ls-1.2.1"
-      sources."prettier-2.6.1"
+      sources."prettier-2.6.2"
       sources."progress-2.0.3"
       sources."pug-error-2.0.0"
       sources."pug-lexer-5.0.1"
@@ -132706,7 +133545,7 @@ in
       sources."resolve-1.22.0"
       sources."resolve-from-4.0.0"
       sources."rimraf-3.0.2"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       (sources."slice-ansi-4.0.0" // {
@@ -132931,12 +133770,12 @@ in
       sha512 = "HZfrlqpVu8N0UkSyjldPsGFpVFByYaDRDMmBvmKwKai2rAsd2vtde2CFnX9rOpmg3pN2vET8j3qtqZvZLzmkjQ==";
     };
     dependencies = [
-      sources."core-js-3.21.1"
+      sources."core-js-3.22.1"
       sources."jsonc-parser-3.0.0"
       sources."regenerator-runtime-0.13.9"
-      sources."request-light-0.5.7"
+      sources."request-light-0.5.8"
       sources."typescript-4.6.3"
-      sources."vscode-css-languageservice-5.3.0"
+      sources."vscode-css-languageservice-5.4.1"
       sources."vscode-html-languageservice-4.2.4"
       sources."vscode-json-languageservice-4.2.1"
       sources."vscode-jsonrpc-8.0.0-next.7"
@@ -132975,8 +133814,8 @@ in
       sources."@types/json-schema-7.0.11"
       sources."@types/mocha-7.0.2"
       sources."@types/node-8.10.66"
-      sources."@types/vscode-1.65.0"
-      sources."@types/yauzl-2.9.2"
+      sources."@types/vscode-1.66.0"
+      sources."@types/yauzl-2.10.0"
       sources."@ungap/promise-all-settled-1.1.2"
       sources."@webassemblyjs/ast-1.11.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.1"
@@ -133020,14 +133859,14 @@ in
       sources."buffer-from-1.1.2"
       sources."call-bind-1.0.2"
       sources."camelcase-6.3.0"
-      sources."caniuse-lite-1.0.30001320"
+      sources."caniuse-lite-1.0.30001332"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."supports-color-7.2.0"
         ];
       })
       sources."cheerio-1.0.0-rc.10"
-      sources."cheerio-select-1.5.0"
+      sources."cheerio-select-1.6.0"
       sources."chokidar-3.5.1"
       sources."chrome-trace-event-1.0.3"
       (sources."cliui-7.0.4" // {
@@ -133046,8 +133885,8 @@ in
       sources."concat-map-0.0.1"
       sources."core-util-is-1.0.3"
       sources."cross-spawn-7.0.3"
-      sources."css-select-4.2.1"
-      sources."css-what-5.1.0"
+      sources."css-select-4.3.0"
+      sources."css-what-6.1.0"
       (sources."debug-4.3.1" // {
         dependencies = [
           sources."ms-2.1.2"
@@ -133056,14 +133895,14 @@ in
       sources."decamelize-4.0.0"
       sources."denodeify-1.2.1"
       sources."diff-5.0.0"
-      sources."dom-serializer-1.3.2"
-      sources."domelementtype-2.2.0"
+      sources."dom-serializer-1.4.1"
+      sources."domelementtype-2.3.0"
       sources."domhandler-4.3.1"
       sources."domutils-2.8.0"
-      sources."electron-to-chromium-1.4.96"
+      sources."electron-to-chromium-1.4.114"
       sources."emoji-regex-8.0.0"
       sources."emojis-list-3.0.0"
-      sources."enhanced-resolve-5.9.2"
+      sources."enhanced-resolve-5.9.3"
       sources."entities-2.2.0"
       sources."envinfo-7.8.1"
       sources."errno-0.1.8"
@@ -133095,7 +133934,7 @@ in
       sources."glob-7.1.6"
       sources."glob-parent-5.1.2"
       sources."glob-to-regexp-0.4.1"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."growl-1.10.5"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
@@ -133108,7 +133947,7 @@ in
       sources."inherits-2.0.4"
       sources."interpret-2.2.0"
       sources."is-binary-path-2.1.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.3"
@@ -133127,7 +133966,7 @@ in
       sources."kind-of-6.0.3"
       sources."leven-3.1.0"
       sources."linkify-it-2.2.0"
-      sources."loader-runner-4.2.0"
+      sources."loader-runner-4.3.0"
       sources."loader-utils-2.0.2"
       sources."locate-path-6.0.0"
       sources."lodash-4.17.21"
@@ -133161,7 +134000,7 @@ in
       sources."mute-stream-0.0.8"
       sources."nanoid-3.1.20"
       sources."neo-async-2.6.2"
-      sources."node-releases-2.0.2"
+      sources."node-releases-2.0.3"
       sources."normalize-path-3.0.0"
       sources."npm-run-path-4.0.1"
       sources."nth-check-2.0.1"
@@ -133242,7 +134081,7 @@ in
       (sources."ts-loader-8.3.0" // {
         dependencies = [
           sources."enhanced-resolve-4.5.0"
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
           sources."tapable-1.1.3"
         ];
       })
@@ -133269,7 +134108,7 @@ in
       sources."vscode-debugadapter-testsupport-1.51.0"
       sources."vscode-debugprotocol-1.51.0"
       sources."watchpack-2.3.1"
-      sources."webpack-5.70.0"
+      sources."webpack-5.72.0"
       (sources."webpack-cli-4.9.2" // {
         dependencies = [
           sources."commander-7.2.0"
@@ -133334,7 +134173,7 @@ in
       sources."arrify-1.0.1"
       sources."asn1-0.2.6"
       sources."assert-plus-1.0.0"
-      sources."async-2.6.3"
+      sources."async-2.6.4"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
@@ -133422,7 +134261,7 @@ in
       sources."git-clone-0.1.0"
       sources."glob-7.2.0"
       sources."got-6.7.1"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."gray-matter-4.0.3"
       sources."handlebars-4.7.7"
       sources."har-schema-2.0.0"
@@ -133572,7 +134411,7 @@ in
       sources."tslib-1.14.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uglify-js-3.15.3"
+      sources."uglify-js-3.15.4"
       sources."uid-0.0.2"
       sources."unbzip2-stream-1.4.3"
       sources."unyield-0.0.1"
@@ -133619,7 +134458,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      sources."@babel/highlight-7.16.10"
+      sources."@babel/highlight-7.17.9"
       sources."@emmetio/extract-abbreviation-0.1.6"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
@@ -133635,7 +134474,7 @@ in
       sources."@starptech/rehype-webparser-0.10.0"
       sources."@starptech/webparser-0.10.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/unist-2.0.6"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
@@ -133937,7 +134776,7 @@ in
           sources."get-stream-4.1.0"
         ];
       })
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."gridsome-helper-json-1.0.3"
       sources."has-1.0.3"
       (sources."has-ansi-2.0.0" // {
@@ -133992,7 +134831,7 @@ in
       sources."is-binary-path-2.1.0"
       sources."is-buffer-2.0.5"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-decimal-1.0.4"
       sources."is-descriptor-1.0.2"
@@ -134024,7 +134863,7 @@ in
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
-      sources."js-beautify-1.14.0"
+      sources."js-beautify-1.14.3"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
       sources."json-buffer-3.0.0"
@@ -134561,11 +135400,11 @@ in
       sha512 = "slGcIXCA/j5d2uzQ7flA4/veF0P0eE+Om/Bw7uEO2LC9a3mVNdB+2bSR1CILMjvgyFy9Q9D6eseomQgp7UW5Dg==";
     };
     dependencies = [
-      sources."@babel/runtime-corejs3-7.17.8"
-      sources."@mapbox/node-pre-gyp-1.0.8"
+      sources."@babel/runtime-corejs3-7.17.9"
+      sources."@mapbox/node-pre-gyp-1.0.9"
       sources."@tootallnate/once-1.1.2"
       sources."@types/raf-3.4.0"
-      sources."abab-2.0.5"
+      sources."abab-2.0.6"
       sources."abbrev-1.1.1"
       sources."acorn-8.7.0"
       (sources."acorn-globals-6.0.0" // {
@@ -134596,7 +135435,7 @@ in
       sources."combined-stream-1.0.8"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
-      sources."core-js-pure-3.21.1"
+      sources."core-js-pure-3.22.1"
       sources."cssom-0.4.4"
       (sources."cssstyle-2.3.0" // {
         dependencies = [
@@ -134616,7 +135455,7 @@ in
       sources."deep-is-0.1.4"
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
-      sources."detect-libc-1.0.3"
+      sources."detect-libc-2.0.1"
       (sources."domexception-2.0.1" // {
         dependencies = [
           sources."webidl-conversions-5.0.0"
@@ -134630,17 +135469,17 @@ in
       sources."esutils-2.0.3"
       sources."fast-levenshtein-2.0.6"
       sources."form-data-3.0.1"
-      sources."fs-extra-10.0.1"
+      sources."fs-extra-10.1.0"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."gauge-3.0.2"
       sources."get-caller-file-2.0.5"
       sources."glob-7.2.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-unicode-2.0.1"
       sources."html-encoding-sniffer-2.0.1"
       sources."http-proxy-agent-4.0.1"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
       sources."iconv-lite-0.4.24"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -134697,7 +135536,7 @@ in
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
       sources."saxes-5.0.1"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       sources."set-blocking-2.0.0"
       sources."signal-exit-3.0.7"
       sources."simple-concat-1.0.1"
@@ -134737,7 +135576,7 @@ in
       sources."xmlchars-2.2.0"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
-      sources."yargs-17.4.0"
+      sources."yargs-17.4.1"
       sources."yargs-parser-21.0.1"
     ];
     buildInputs = globalBuildInputs;
@@ -134761,7 +135600,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
-      (sources."@babel/highlight-7.16.10" // {
+      (sources."@babel/highlight-7.17.9" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -134793,7 +135632,7 @@ in
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/yauzl-2.9.2"
       sources."acorn-8.7.0"
       sources."acorn-jsx-5.3.2"
@@ -134845,7 +135684,7 @@ in
       sources."caseless-0.12.0"
       sources."chalk-4.1.2"
       sources."cheerio-1.0.0-rc.10"
-      sources."cheerio-select-1.5.0"
+      sources."cheerio-select-1.6.0"
       sources."chrome-launcher-0.15.0"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
@@ -134871,8 +135710,8 @@ in
       sources."core-util-is-1.0.3"
       sources."cross-spawn-7.0.3"
       sources."crypto-random-string-2.0.0"
-      sources."css-select-4.2.1"
-      sources."css-what-5.1.0"
+      sources."css-select-4.3.0"
+      sources."css-what-6.1.0"
       sources."dashdash-1.14.1"
       sources."debounce-1.2.0"
       sources."debug-2.6.9"
@@ -134885,11 +135724,11 @@ in
       sources."deepmerge-4.2.2"
       sources."defaults-1.0.3"
       sources."defer-to-connect-1.1.3"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."delayed-stream-1.0.0"
       sources."doctrine-3.0.0"
-      sources."dom-serializer-1.3.2"
-      sources."domelementtype-2.2.0"
+      sources."dom-serializer-1.4.1"
+      sources."domelementtype-2.3.0"
       sources."domhandler-4.3.1"
       sources."domutils-2.8.0"
       sources."dot-prop-5.3.0"
@@ -134960,6 +135799,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
+      sources."functions-have-names-1.2.3"
       (sources."fx-runner-1.2.0" // {
         dependencies = [
           sources."commander-2.9.0"
@@ -134981,13 +135821,14 @@ in
           sources."get-stream-4.1.0"
         ];
       })
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."graceful-readlink-1.0.1"
       sources."growly-1.3.0"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."has-yarn-2.1.0"
@@ -135052,7 +135893,7 @@ in
         ];
       })
       sources."jsprim-1.4.2"
-      (sources."jszip-3.7.1" // {
+      (sources."jszip-3.9.1" // {
         dependencies = [
           sources."readable-stream-2.3.7"
           sources."safe-buffer-5.1.2"
@@ -135095,7 +135936,7 @@ in
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
       sources."mkdirp-1.0.4"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."ms-2.0.0"
       sources."multimatch-5.0.0"
       (sources."mv-2.1.1" // {
@@ -135107,7 +135948,7 @@ in
       })
       sources."mz-2.7.0"
       sources."nan-2.15.0"
-      sources."nanoid-3.3.1"
+      sources."nanoid-3.3.3"
       sources."natural-compare-1.4.0"
       sources."ncp-2.0.0"
       sources."node-forge-0.10.0"
@@ -135169,7 +136010,7 @@ in
       sources."readable-stream-3.6.0"
       sources."real-require-0.1.0"
       sources."regenerator-runtime-0.13.9"
-      sources."regexp.prototype.flags-1.4.1"
+      sources."regexp.prototype.flags-1.4.3"
       sources."regexpp-3.2.0"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
@@ -135216,7 +136057,7 @@ in
         ];
       })
       sources."signal-exit-3.0.7"
-      sources."sonic-boom-2.6.0"
+      sources."sonic-boom-2.7.0"
       sources."source-map-0.6.1"
       sources."source-map-js-1.0.2"
       sources."source-map-support-0.5.20"
@@ -135309,17 +136150,17 @@ in
   webpack = nodeEnv.buildNodePackage {
     name = "webpack";
     packageName = "webpack";
-    version = "5.70.0";
+    version = "5.72.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz";
-      sha512 = "ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==";
+      url = "https://registry.npmjs.org/webpack/-/webpack-5.72.0.tgz";
+      sha512 = "qmSmbspI0Qo5ld49htys8GY9XhS9CGqFoHTsOVAnjBdg0Zn79y135R+k4IR4rKK6+eKaabMhJwiVB7xw0SJu5w==";
     };
     dependencies = [
       sources."@types/eslint-8.4.1"
       sources."@types/eslint-scope-3.7.3"
       sources."@types/estree-0.0.51"
       sources."@types/json-schema-7.0.11"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@webassemblyjs/ast-1.11.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.1"
       sources."@webassemblyjs/helper-api-error-1.11.1"
@@ -135343,11 +136184,11 @@ in
       sources."ajv-keywords-3.5.2"
       sources."browserslist-4.20.2"
       sources."buffer-from-1.1.2"
-      sources."caniuse-lite-1.0.30001320"
+      sources."caniuse-lite-1.0.30001332"
       sources."chrome-trace-event-1.0.3"
       sources."commander-2.20.3"
-      sources."electron-to-chromium-1.4.96"
-      sources."enhanced-resolve-5.9.2"
+      sources."electron-to-chromium-1.4.114"
+      sources."enhanced-resolve-5.9.3"
       sources."es-module-lexer-0.9.3"
       sources."escalade-3.1.1"
       sources."eslint-scope-5.1.1"
@@ -135361,17 +136202,17 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."glob-to-regexp-0.4.1"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-flag-4.0.0"
       sources."jest-worker-27.5.1"
       sources."json-parse-better-errors-1.0.2"
       sources."json-schema-traverse-0.4.1"
-      sources."loader-runner-4.2.0"
+      sources."loader-runner-4.3.0"
       sources."merge-stream-2.0.0"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."neo-async-2.6.2"
-      sources."node-releases-2.0.2"
+      sources."node-releases-2.0.3"
       sources."picocolors-1.0.0"
       sources."punycode-2.1.1"
       sources."randombytes-2.1.0"
@@ -135429,7 +136270,7 @@ in
       sources."human-signals-2.1.0"
       sources."import-local-3.1.0"
       sources."interpret-2.2.0"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-plain-object-2.0.4"
       sources."is-stream-2.0.1"
       sources."isexe-2.0.0"
@@ -135474,15 +136315,13 @@ in
   webpack-dev-server = nodeEnv.buildNodePackage {
     name = "webpack-dev-server";
     packageName = "webpack-dev-server";
-    version = "4.7.4";
+    version = "4.8.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz";
-      sha512 = "nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A==";
+      url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.8.1.tgz";
+      sha512 = "dwld70gkgNJa33czmcj/PlKY/nOy/BimbrgZRaR9vDATBQAYgLzggR0nxDtPLJiLrMgZwbE6RRfJ5vnBBasTyg==";
     };
     dependencies = [
-      sources."@nodelib/fs.scandir-2.1.5"
-      sources."@nodelib/fs.stat-2.0.5"
-      sources."@nodelib/fs.walk-1.2.8"
+      sources."@leichtgewicht/ip-codec-2.0.3"
       sources."@types/body-parser-1.19.2"
       sources."@types/bonjour-3.5.10"
       sources."@types/connect-3.4.35"
@@ -135492,7 +136331,7 @@ in
       sources."@types/http-proxy-1.17.8"
       sources."@types/json-schema-7.0.11"
       sources."@types/mime-1.3.2"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/qs-6.9.7"
       sources."@types/range-parser-1.2.4"
       sources."@types/retry-0.12.1"
@@ -135501,16 +136340,13 @@ in
       sources."@types/sockjs-0.3.33"
       sources."@types/ws-8.5.3"
       sources."accepts-1.3.8"
-      sources."aggregate-error-3.1.0"
       sources."ajv-8.11.0"
       sources."ajv-formats-2.1.1"
       sources."ajv-keywords-5.1.0"
       sources."ansi-html-community-0.0.8"
-      sources."ansi-regex-6.0.1"
       sources."anymatch-3.1.2"
       sources."array-flatten-2.1.2"
-      sources."array-union-2.1.0"
-      sources."async-2.6.3"
+      sources."async-2.6.4"
       sources."balanced-match-1.0.2"
       sources."batch-0.6.1"
       sources."binary-extensions-2.2.0"
@@ -135519,42 +136355,34 @@ in
           sources."bytes-3.1.2"
         ];
       })
-      sources."bonjour-3.5.0"
+      sources."bonjour-service-1.0.11"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."buffer-indexof-1.1.1"
       sources."bytes-3.0.0"
-      sources."call-bind-1.0.2"
       sources."chokidar-3.5.3"
-      sources."clean-stack-2.2.0"
       sources."colorette-2.0.16"
       sources."compressible-2.0.18"
-      (sources."compression-1.7.4" // {
+      sources."compression-1.7.4"
+      sources."concat-map-0.0.1"
+      sources."connect-history-api-fallback-1.6.0"
+      (sources."content-disposition-0.5.4" // {
         dependencies = [
-          sources."safe-buffer-5.1.2"
+          sources."safe-buffer-5.2.1"
         ];
       })
-      sources."concat-map-0.0.1"
-      sources."connect-history-api-fallback-1.6.0"
-      sources."content-disposition-0.5.4"
       sources."content-type-1.0.4"
       sources."cookie-0.4.2"
       sources."cookie-signature-1.0.6"
       sources."core-util-is-1.0.3"
       sources."cross-spawn-7.0.3"
       sources."debug-2.6.9"
-      sources."deep-equal-1.1.1"
       sources."default-gateway-6.0.3"
       sources."define-lazy-prop-2.0.0"
-      sources."define-properties-1.1.3"
-      sources."del-6.0.0"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
       sources."detect-node-2.1.0"
-      sources."dir-glob-3.0.1"
       sources."dns-equal-1.0.0"
-      sources."dns-packet-1.3.4"
-      sources."dns-txt-2.0.2"
+      sources."dns-packet-5.3.1"
       sources."ee-first-1.1.1"
       sources."encodeurl-1.0.2"
       sources."escape-html-1.0.3"
@@ -135564,11 +136392,10 @@ in
       (sources."express-4.17.3" // {
         dependencies = [
           sources."array-flatten-1.1.1"
+          sources."safe-buffer-5.2.1"
         ];
       })
       sources."fast-deep-equal-3.1.3"
-      sources."fast-glob-3.2.11"
-      sources."fastq-1.13.0"
       sources."faye-websocket-0.11.4"
       sources."fill-range-7.0.1"
       sources."finalhandler-1.1.2"
@@ -135578,21 +136405,14 @@ in
       sources."fs-monkey-1.0.3"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
-      sources."function-bind-1.1.1"
-      sources."get-intrinsic-1.1.1"
       sources."get-stream-6.0.1"
       sources."glob-7.2.0"
       sources."glob-parent-5.1.2"
-      sources."globby-11.1.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."handle-thing-2.0.1"
-      sources."has-1.0.3"
-      sources."has-symbols-1.0.3"
-      sources."has-tostringtag-1.0.0"
       (sources."hpack.js-2.1.6" // {
         dependencies = [
           sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
         ];
       })
       sources."html-entities-2.3.3"
@@ -135600,26 +136420,18 @@ in
       sources."http-errors-1.8.1"
       sources."http-parser-js-0.5.6"
       sources."http-proxy-1.18.1"
-      sources."http-proxy-middleware-2.0.4"
+      sources."http-proxy-middleware-2.0.6"
       sources."human-signals-2.1.0"
       sources."iconv-lite-0.4.24"
-      sources."ignore-5.2.0"
-      sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ip-1.1.5"
       sources."ipaddr.js-2.0.1"
-      sources."is-arguments-1.1.1"
       sources."is-binary-path-2.1.0"
-      sources."is-date-object-1.0.5"
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
-      sources."is-path-cwd-2.2.0"
-      sources."is-path-inside-3.0.3"
       sources."is-plain-obj-3.0.0"
-      sources."is-regex-1.1.4"
       sources."is-stream-2.0.1"
       sources."is-wsl-2.2.0"
       sources."isarray-1.0.0"
@@ -135630,7 +136442,6 @@ in
       sources."memfs-3.4.1"
       sources."merge-descriptors-1.0.1"
       sources."merge-stream-2.0.0"
-      sources."merge2-1.4.1"
       sources."methods-1.1.2"
       sources."micromatch-4.0.5"
       sources."mime-1.6.0"
@@ -135642,27 +136453,22 @@ in
       sources."minimist-1.2.6"
       sources."mkdirp-0.5.6"
       sources."ms-2.0.0"
-      sources."multicast-dns-6.2.3"
-      sources."multicast-dns-service-types-1.1.0"
+      sources."multicast-dns-7.2.4"
       sources."negotiator-0.6.3"
-      sources."node-forge-1.3.0"
+      sources."node-forge-1.3.1"
       sources."normalize-path-3.0.0"
       sources."npm-run-path-4.0.1"
-      sources."object-is-1.1.5"
-      sources."object-keys-1.1.1"
       sources."obuf-1.1.2"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
       sources."open-8.4.0"
-      sources."p-map-4.0.0"
       sources."p-retry-4.6.1"
       sources."parseurl-1.3.3"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."path-to-regexp-0.1.7"
-      sources."path-type-4.0.0"
       sources."picomatch-2.3.1"
       (sources."portfinder-1.0.28" // {
         dependencies = [
@@ -135678,7 +136484,6 @@ in
       })
       sources."punycode-2.1.1"
       sources."qs-6.9.7"
-      sources."queue-microtask-1.2.3"
       sources."range-parser-1.2.1"
       (sources."raw-body-2.4.3" // {
         dependencies = [
@@ -135687,14 +136492,11 @@ in
       })
       sources."readable-stream-3.6.0"
       sources."readdirp-3.6.0"
-      sources."regexp.prototype.flags-1.4.1"
       sources."require-from-string-2.0.2"
       sources."requires-port-1.0.0"
       sources."retry-0.13.1"
-      sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
-      sources."run-parallel-1.2.0"
-      sources."safe-buffer-5.2.1"
+      sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
       sources."schema-utils-4.0.0"
       sources."select-hose-2.0.0"
@@ -135716,7 +136518,6 @@ in
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.7"
-      sources."slash-3.0.0"
       sources."sockjs-0.3.24"
       (sources."spdy-4.0.2" // {
         dependencies = [
@@ -135731,12 +136532,7 @@ in
         ];
       })
       sources."statuses-1.5.0"
-      (sources."string_decoder-1.1.1" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
-      sources."strip-ansi-7.0.1"
+      sources."string_decoder-1.1.1"
       sources."strip-final-newline-2.0.0"
       sources."thunky-1.1.0"
       sources."to-regex-range-5.0.1"
@@ -135849,7 +136645,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@webtorrent/http-node-1.3.0"
       sources."addr-to-ip-port-1.5.4"
       sources."airplay-js-0.3.0"
@@ -135964,7 +136760,7 @@ in
       sources."fast-fifo-1.1.0"
       sources."filestream-5.0.0"
       sources."freelist-1.0.3"
-      (sources."fs-chunk-store-2.0.4" // {
+      (sources."fs-chunk-store-2.0.5" // {
         dependencies = [
           sources."thunky-1.1.0"
         ];
@@ -136022,7 +136818,7 @@ in
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
       sources."mkdirp-classic-0.5.3"
-      sources."moment-2.29.1"
+      sources."moment-2.29.3"
       sources."mp4-box-encoding-1.4.1"
       sources."mp4-stream-3.1.3"
       sources."ms-2.0.0"
@@ -136036,7 +136832,7 @@ in
       sources."netmask-2.0.2"
       sources."network-address-1.1.2"
       sources."next-event-1.0.0"
-      sources."node-gyp-build-4.3.0"
+      sources."node-gyp-build-4.4.0"
       sources."node-ssdp-2.9.1"
       sources."nodebmc-0.0.7"
       sources."on-finished-2.4.1"
@@ -136149,7 +136945,7 @@ in
       sources."utp-native-2.5.3"
       sources."videostream-3.2.2"
       sources."vlc-command-1.2.0"
-      (sources."webtorrent-1.8.10" // {
+      (sources."webtorrent-1.8.13" // {
         dependencies = [
           sources."debug-4.3.4"
           sources."decompress-response-6.0.0"
@@ -136166,7 +136962,7 @@ in
       sources."xmlbuilder-11.0.1"
       sources."xmldom-0.1.31"
       sources."y18n-5.0.8"
-      sources."yargs-17.4.0"
+      sources."yargs-17.4.1"
       sources."yargs-parser-21.0.1"
     ];
     buildInputs = globalBuildInputs;
@@ -136234,7 +137030,7 @@ in
     };
     dependencies = [
       sources."jsonc-parser-3.0.0"
-      sources."request-light-0.5.7"
+      sources."request-light-0.5.8"
       sources."vscode-json-languageservice-4.1.8"
       sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-7.0.0"
@@ -136279,7 +137075,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."get-caller-file-2.0.5"
       sources."glob-7.2.0"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."has-flag-4.0.0"
       sources."ignore-5.2.0"
       sources."ignore-walk-3.0.4"
@@ -136342,7 +137138,7 @@ in
       sha512 = "0V5CpR62BY1EOevIxXq5BL84YJeIunEzRsFlqb00tc7D77I51/0bvgdGRZhEwhNI2rFxKZ1i77eoisT56gfMTQ==";
     };
     dependencies = [
-      sources."@babel/runtime-7.17.8"
+      sources."@babel/runtime-7.17.9"
       sources."@gar/promisify-1.1.3"
       sources."@isaacs/string-locale-compare-1.1.0"
       sources."@nodelib/fs.scandir-2.1.5"
@@ -136351,31 +137147,30 @@ in
       (sources."@npmcli/arborist-4.3.1" // {
         dependencies = [
           sources."mkdirp-1.0.4"
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
         ];
       })
       (sources."@npmcli/fs-1.1.1" // {
         dependencies = [
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
         ];
       })
       (sources."@npmcli/git-2.1.0" // {
         dependencies = [
           sources."mkdirp-1.0.4"
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
           sources."which-2.0.2"
         ];
       })
       sources."@npmcli/installed-package-contents-1.0.7"
       (sources."@npmcli/map-workspaces-2.0.2" // {
         dependencies = [
-          sources."brace-expansion-2.0.1"
           sources."minimatch-5.0.1"
         ];
       })
       (sources."@npmcli/metavuln-calculator-2.0.0" // {
         dependencies = [
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
         ];
       })
       (sources."@npmcli/move-file-1.1.2" // {
@@ -136429,14 +137224,14 @@ in
       sources."asn1-0.2.6"
       sources."assert-plus-1.0.0"
       sources."astral-regex-1.0.0"
-      sources."async-2.6.3"
+      sources."async-2.6.4"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
-      (sources."bin-links-3.0.0" // {
+      (sources."bin-links-3.0.1" // {
         dependencies = [
           sources."write-file-atomic-4.0.1"
         ];
@@ -136455,7 +137250,7 @@ in
           sources."camelcase-4.1.0"
         ];
       })
-      sources."brace-expansion-1.1.11"
+      sources."brace-expansion-2.0.1"
       sources."braces-3.0.2"
       sources."buffer-5.7.1"
       sources."buffer-from-1.1.2"
@@ -136492,7 +137287,7 @@ in
       sources."clone-response-1.0.2"
       sources."clone-stats-1.0.0"
       sources."cloneable-readable-1.1.3"
-      sources."cmd-shim-4.1.0"
+      sources."cmd-shim-5.0.0"
       sources."code-point-at-1.1.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -136508,7 +137303,7 @@ in
       sources."config-chain-1.1.13"
       sources."configstore-3.1.5"
       sources."console-control-strings-1.1.0"
-      sources."core-js-3.21.1"
+      sources."core-js-3.22.1"
       sources."core-util-is-1.0.3"
       sources."create-error-class-3.0.2"
       sources."cross-spawn-6.0.5"
@@ -136524,19 +137319,19 @@ in
       sources."deep-extend-0.6.0"
       sources."default-uid-1.0.0"
       sources."defaults-1.0.3"
-      sources."define-properties-1.1.3"
+      sources."define-properties-1.1.4"
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
       sources."depd-1.1.2"
       sources."detect-node-2.1.0"
-      sources."dezalgo-1.0.3"
+      sources."dezalgo-1.0.4"
       sources."diff-5.0.0"
       sources."dir-glob-3.0.1"
       sources."dot-prop-4.2.1"
       sources."downgrade-root-1.2.2"
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
-      sources."ejs-3.1.6"
+      sources."ejs-3.1.7"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       (sources."encoding-0.1.13" // {
@@ -136564,7 +137359,11 @@ in
       sources."fast-json-stable-stringify-2.1.0"
       sources."fastq-1.13.0"
       sources."figures-2.0.0"
-      sources."filelist-1.0.2"
+      (sources."filelist-1.0.3" // {
+        dependencies = [
+          sources."minimatch-5.0.1"
+        ];
+      })
       sources."fill-range-7.0.1"
       sources."filter-obj-2.0.2"
       sources."find-up-2.1.0"
@@ -136580,6 +137379,7 @@ in
       sources."fullname-4.0.1"
       sources."function-bind-1.1.1"
       sources."gauge-1.2.7"
+      sources."get-intrinsic-1.1.1"
       sources."get-stdin-4.0.1"
       sources."get-stream-4.1.0"
       sources."getpass-0.1.7"
@@ -136587,7 +137387,7 @@ in
       sources."glob-parent-5.1.2"
       (sources."global-agent-2.2.0" // {
         dependencies = [
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
         ];
       })
       sources."global-dirs-0.1.1"
@@ -136600,7 +137400,7 @@ in
           sources."p-cancelable-0.4.1"
         ];
       })
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."grouped-queue-2.0.0"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
@@ -136611,7 +137411,9 @@ in
         ];
       })
       sources."has-flag-3.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbol-support-x-1.4.2"
+      sources."has-symbols-1.0.3"
       sources."has-to-string-tag-x-1.4.1"
       sources."has-unicode-2.0.1"
       sources."hosted-git-info-2.8.9"
@@ -136623,7 +137425,7 @@ in
         ];
       })
       sources."http-signature-1.2.0"
-      (sources."https-proxy-agent-5.0.0" // {
+      (sources."https-proxy-agent-5.0.1" // {
         dependencies = [
           sources."debug-4.3.4"
           sources."ms-2.1.2"
@@ -136654,7 +137456,7 @@ in
       sources."ip-regex-2.1.0"
       sources."is-arrayish-0.2.1"
       sources."is-ci-1.2.1"
-      sources."is-core-module-2.8.1"
+      sources."is-core-module-2.9.0"
       sources."is-docker-1.1.0"
       sources."is-extglob-2.1.1"
       sources."is-finite-1.1.0"
@@ -136685,10 +137487,10 @@ in
       sources."isexe-2.0.0"
       sources."isstream-0.1.2"
       sources."isurl-1.0.0"
-      (sources."jake-10.8.4" // {
+      (sources."jake-10.8.5" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."async-0.9.2"
+          sources."async-3.2.3"
           sources."chalk-4.1.2"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
@@ -136708,7 +137510,7 @@ in
       sources."jsonparse-1.3.1"
       sources."jsprim-1.4.2"
       sources."just-diff-5.0.1"
-      sources."just-diff-apply-4.0.1"
+      sources."just-diff-apply-5.2.0"
       sources."keyv-3.0.0"
       (sources."latest-version-3.1.0" // {
         dependencies = [
@@ -136772,7 +137574,11 @@ in
       sources."mime-types-2.1.35"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
-      sources."minimatch-3.1.2"
+      (sources."minimatch-3.1.2" // {
+        dependencies = [
+          sources."brace-expansion-1.1.11"
+        ];
+      })
       sources."minimist-1.2.6"
       sources."minipass-3.1.6"
       sources."minipass-collect-1.0.2"
@@ -136798,11 +137604,11 @@ in
           sources."ansi-regex-5.0.1"
           sources."are-we-there-yet-3.0.0"
           sources."env-paths-2.2.1"
-          sources."gauge-4.0.3"
+          sources."gauge-4.0.4"
           sources."is-fullwidth-code-point-3.0.0"
           sources."npmlog-6.0.1"
           sources."readable-stream-3.6.0"
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
           sources."string-width-4.2.3"
           sources."strip-ansi-6.0.1"
           sources."which-2.0.2"
@@ -136816,7 +137622,7 @@ in
       sources."npm-conf-1.1.3"
       (sources."npm-install-checks-4.0.0" // {
         dependencies = [
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
         ];
       })
       (sources."npm-keyword-5.0.0" // {
@@ -136833,36 +137639,38 @@ in
       (sources."npm-package-arg-8.1.5" // {
         dependencies = [
           sources."hosted-git-info-4.1.0"
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
         ];
       })
       sources."npm-packlist-3.0.0"
       (sources."npm-pick-manifest-6.1.1" // {
         dependencies = [
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
         ];
       })
       (sources."npm-registry-fetch-12.0.2" // {
         dependencies = [
           sources."@npmcli/fs-2.1.0"
+          sources."@npmcli/move-file-2.0.0"
           sources."@tootallnate/once-2.0.0"
-          sources."cacache-16.0.3"
+          sources."cacache-16.0.4"
           sources."debug-4.3.4"
           sources."http-cache-semantics-4.1.0"
           sources."http-proxy-agent-5.0.0"
-          sources."lru-cache-7.7.1"
-          (sources."make-fetch-happen-10.1.0" // {
+          sources."lru-cache-7.8.1"
+          (sources."make-fetch-happen-10.1.2" // {
             dependencies = [
               sources."minipass-fetch-2.1.0"
             ];
           })
           sources."mkdirp-1.0.4"
           sources."ms-2.1.2"
-          (sources."semver-7.3.5" // {
+          (sources."semver-7.3.7" // {
             dependencies = [
               sources."lru-cache-6.0.0"
             ];
           })
+          sources."ssri-9.0.0"
         ];
       })
       sources."npm-run-path-2.0.2"
@@ -136927,7 +137735,7 @@ in
         ];
       })
       sources."pad-component-0.0.1"
-      sources."parse-conflict-json-2.0.1"
+      sources."parse-conflict-json-2.0.2"
       sources."parse-help-1.0.0"
       sources."parse-json-2.2.0"
       sources."passwd-user-3.0.0"
@@ -136979,7 +137787,7 @@ in
       sources."query-string-5.1.1"
       sources."queue-microtask-1.2.3"
       sources."rc-1.2.8"
-      sources."read-cmd-shim-2.0.0"
+      sources."read-cmd-shim-3.0.0"
       sources."read-package-json-fast-2.0.3"
       (sources."read-pkg-1.1.0" // {
         dependencies = [
@@ -137055,7 +137863,7 @@ in
       sources."slash-3.0.0"
       sources."smart-buffer-4.2.0"
       sources."socks-2.6.2"
-      (sources."socks-proxy-agent-6.1.1" // {
+      (sources."socks-proxy-agent-6.2.0" // {
         dependencies = [
           sources."debug-4.3.4"
           sources."ms-2.1.2"
@@ -137150,7 +137958,7 @@ in
         ];
       })
       sources."text-table-0.2.0"
-      sources."textextensions-5.14.0"
+      sources."textextensions-5.15.0"
       sources."through-2.3.8"
       sources."timed-out-4.0.1"
       sources."titleize-1.0.1"
@@ -137165,6 +137973,7 @@ in
       sources."tweetnacl-0.14.5"
       (sources."twig-1.15.4" // {
         dependencies = [
+          sources."brace-expansion-1.1.11"
           sources."minimatch-3.0.8"
         ];
       })
@@ -137271,7 +138080,7 @@ in
           sources."readable-stream-3.6.0"
           sources."restore-cursor-3.1.0"
           sources."rxjs-7.5.5"
-          sources."semver-7.3.5"
+          sources."semver-7.3.7"
           sources."shebang-command-2.0.0"
           sources."shebang-regex-3.0.0"
           sources."string-width-4.2.3"
@@ -137309,10 +138118,10 @@ in
   zx = nodeEnv.buildNodePackage {
     name = "zx";
     packageName = "zx";
-    version = "6.0.7";
+    version = "6.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/zx/-/zx-6.0.7.tgz";
-      sha512 = "aJTTKN4m9m8wM02yQ4jMOXMp53Ni+r+VDAs0D+bo9l9x9nCMhOocNWeTjoaancHkb7LpNb4oLILp58HzTy0GpQ==";
+      url = "https://registry.npmjs.org/zx/-/zx-6.1.0.tgz";
+      sha512 = "LcvyN946APdktLPm1ta4wfNiJaDuq1iHOTDwApP69ug5hNYWzMYaVMC5Ek6Ny4nnSLpJ6wdY42feR/2LY5/nVA==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.5"
@@ -137320,7 +138129,7 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@types/fs-extra-9.0.13"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-17.0.23"
+      sources."@types/node-17.0.25"
       sources."@types/which-2.0.1"
       sources."braces-3.0.2"
       sources."chalk-5.0.1"
@@ -137334,10 +138143,10 @@ in
       sources."fill-range-7.0.1"
       sources."formdata-polyfill-4.0.10"
       sources."from-0.1.7"
-      sources."fs-extra-10.0.1"
+      sources."fs-extra-10.1.0"
       sources."glob-parent-5.1.2"
       sources."globby-13.1.1"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."ignore-5.2.0"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
@@ -137363,9 +138172,9 @@ in
       sources."through-2.3.8"
       sources."to-regex-range-5.0.1"
       sources."universalify-2.0.0"
-      sources."web-streams-polyfill-3.2.0"
+      sources."web-streams-polyfill-3.2.1"
       sources."which-2.0.2"
-      sources."yaml-1.10.2"
+      sources."yaml-2.0.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
diff --git a/pkgs/development/ocaml-modules/alcotest/default.nix b/pkgs/development/ocaml-modules/alcotest/default.nix
index bb1b18e3ec19f..c54deed737a73 100644
--- a/pkgs/development/ocaml-modules/alcotest/default.nix
+++ b/pkgs/development/ocaml-modules/alcotest/default.nix
@@ -1,18 +1,20 @@
 { lib, buildDunePackage, fetchurl
-, astring, cmdliner, fmt, uuidm, re, stdlib-shims, uutf
+, astring, cmdliner, fmt, uuidm, re, stdlib-shims, uutf, ocaml-syntax-shims
 }:
 
 buildDunePackage rec {
   pname = "alcotest";
-  version = "1.4.0";
+  version = "1.5.0";
 
   useDune2 = true;
 
   src = fetchurl {
-    url = "https://github.com/mirage/alcotest/releases/download/${version}/alcotest-mirage-${version}.tbz";
-    sha256 = "sha256:1h9yp44snb6sgm5g1x3wg4gwjscic7i56jf0j8jr07355pxwrami";
+    url = "https://github.com/mirage/alcotest/releases/download/${version}/alcotest-js-${version}.tbz";
+    sha256 = "sha256-VCgZB+AteJld8kbcLhDtGCgoKUrSBZNHoeOhM1SEj2w=";
   };
 
+  nativeBuildInputs = [ ocaml-syntax-shims ];
+
   propagatedBuildInputs = [ astring cmdliner fmt uuidm re stdlib-shims uutf ];
 
   doCheck = true;
diff --git a/pkgs/development/ocaml-modules/asn1-combinators/default.nix b/pkgs/development/ocaml-modules/asn1-combinators/default.nix
index 3c8be666b66a1..8447c25cd7075 100644
--- a/pkgs/development/ocaml-modules/asn1-combinators/default.nix
+++ b/pkgs/development/ocaml-modules/asn1-combinators/default.nix
@@ -3,13 +3,11 @@
 }:
 
 buildDunePackage rec {
-  minimumOCamlVersion = "4.05";
+  minimalOCamlVersion = "4.08";
 
   pname = "asn1-combinators";
   version = "0.2.6";
 
-  useDune2 = true;
-
   src = fetchurl {
     url = "https://github.com/mirleft/ocaml-asn1-combinators/releases/download/v${version}/asn1-combinators-v${version}.tbz";
     sha256 = "sha256-ASreDYhp72IQY3UsHPjqAm9rxwL+0Q35r1ZojikbGpE=";
diff --git a/pkgs/development/ocaml-modules/bap/default.nix b/pkgs/development/ocaml-modules/bap/default.nix
index ea009083e8d17..5228727727658 100644
--- a/pkgs/development/ocaml-modules/bap/default.nix
+++ b/pkgs/development/ocaml-modules/bap/default.nix
@@ -10,18 +10,18 @@
 , z3
 }:
 
-if !lib.versionAtLeast ocaml.version "4.08"
+if lib.versionOlder ocaml.version "4.08"
 then throw "BAP is not available for OCaml ${ocaml.version}"
 else
 
 stdenv.mkDerivation rec {
   pname = "ocaml${ocaml.version}-bap";
-  version = "2.2.0";
+  version = "2.4.0";
   src = fetchFromGitHub {
     owner = "BinaryAnalysisPlatform";
     repo = "bap";
     rev = "v${version}";
-    sha256 = "0c53sps6ba9n5cjdmapi8ylzlpcc11pksijp9swzlwgxyz5d276f";
+    sha256 = "1xc8zfcwm40zihs3ajcrh2x32xd08qnygay03qy3qxhybr5hqngr";
   };
 
   sigs = fetchurl {
@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
   '';
 
   disableIda = "--disable-ida";
+  disableGhidra = "--disable-ghidra";
 
   patches = [ ./curses_is_ncurses.patch ];
 
@@ -69,7 +70,7 @@ stdenv.mkDerivation rec {
     substituteInPlace oasis/elf-loader --replace bitstring.ppx ppx_bitstring
   '';
 
-  configureFlags = [ "--enable-everything ${disableIda}" "--with-llvm-config=${llvm.dev}/bin/llvm-config" ];
+  configureFlags = [ "--enable-everything ${disableIda} ${disableGhidra}" "--with-llvm-config=${llvm.dev}/bin/llvm-config" ];
 
   meta = with lib; {
     description = "Platform for binary analysis. It is written in OCaml, but can be used from other languages.";
diff --git a/pkgs/development/ocaml-modules/batteries/default.nix b/pkgs/development/ocaml-modules/batteries/default.nix
index 865518ec29c79..731f6e2636382 100644
--- a/pkgs/development/ocaml-modules/batteries/default.nix
+++ b/pkgs/development/ocaml-modules/batteries/default.nix
@@ -2,7 +2,7 @@
 , doCheck ? lib.versionAtLeast ocaml.version "4.08" && !stdenv.isAarch64
 }:
 
-if !lib.versionAtLeast ocaml.version "4.02"
+if lib.versionOlder ocaml.version "4.02"
 then throw "batteries is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/bitstring/ppx.nix b/pkgs/development/ocaml-modules/bitstring/ppx.nix
index 4d391d3458dc1..9eb4c74f574c5 100644
--- a/pkgs/development/ocaml-modules/bitstring/ppx.nix
+++ b/pkgs/development/ocaml-modules/bitstring/ppx.nix
@@ -3,7 +3,7 @@
 , ounit
 }:
 
-if !lib.versionAtLeast ppxlib.version "0.18.0"
+if lib.versionOlder ppxlib.version "0.18.0"
 then throw "ppx_bitstring is not available with ppxlib-${ppxlib.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/bitv/default.nix b/pkgs/development/ocaml-modules/bitv/default.nix
index 07649f3655b86..a986a46f29354 100644
--- a/pkgs/development/ocaml-modules/bitv/default.nix
+++ b/pkgs/development/ocaml-modules/bitv/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchFromGitHub, autoreconfHook, which, ocaml, findlib }:
 
-if !lib.versionAtLeast ocaml.version "4.02"
+if lib.versionOlder ocaml.version "4.02"
 then throw "bitv is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/bjack/default.nix b/pkgs/development/ocaml-modules/bjack/default.nix
new file mode 100644
index 0000000000000..fa03194bde4a7
--- /dev/null
+++ b/pkgs/development/ocaml-modules/bjack/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildDunePackage, fetchFromGitHub, dune-configurator, libsamplerate, libjack2 }:
+
+buildDunePackage rec {
+  pname = "bjack";
+  version = "0.1.6";
+
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-bjack";
+    rev = "v${version}";
+    sha256 = "1gf31a8i9byp6npn0x6gydcickn6sf5dnzmqr2c1b9jn2nl7334c";
+  };
+
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ libsamplerate libjack2 ];
+
+  meta = with lib; {
+    homepage = "https://github.com/savonet/ocaml-bjack";
+    description = "Blocking API for the jack audio connection kit";
+    license = licenses.lgpl21Only;
+    maintainers = with maintainers; [ dandellion ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/brisk-reconciler/default.nix b/pkgs/development/ocaml-modules/brisk-reconciler/default.nix
new file mode 100644
index 0000000000000..65d5abd6f4409
--- /dev/null
+++ b/pkgs/development/ocaml-modules/brisk-reconciler/default.nix
@@ -0,0 +1,33 @@
+{ buildDunePackage, fetchFromGitHub, lib, reason, ppxlib }:
+
+buildDunePackage rec {
+  pname = "brisk-reconciler";
+  version = "unstable-2020-12-02";
+
+  src = fetchFromGitHub {
+    owner = "briskml";
+    repo = "brisk-reconciler";
+    rev = "c9d5c4cf5dd17ff2da994de2c3b0f34c72778f70";
+    sha256 = "sha256-AAB4ZzBnwfwFXOAqX/sIT6imOl70F0YNMt96SWOOE9w=";
+  };
+
+  nativeBuildInputs = [ reason ];
+
+  buildInputs = [
+    ppxlib
+  ];
+
+  meta = with lib; {
+    description = "React.js-like reconciler implemented in OCaml/Reason";
+    longDescription = ''
+      Easily model any `tree-shaped state` with simple `stateful functions`.
+
+      Definitions:
+      * tree-shaped state: Any tree shaped-state like the DOM tree, app navigation state, or even rich text document!
+      * stateful functions: Functions that maintain state over time. Imagine that you can take any variable in your function and manage its value over the function's invocation. Now, imagine that any function invocation really creates its own "instance" of the function which will track this state separately from other invocations of this function.
+    '';
+    homepage = "https://github.com/briskml/brisk-reconciler";
+    maintainers = with maintainers; [ superherointj ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/bz2/default.nix b/pkgs/development/ocaml-modules/bz2/default.nix
index 4ac0262e1ee31..6d8b56ae232dd 100644
--- a/pkgs/development/ocaml-modules/bz2/default.nix
+++ b/pkgs/development/ocaml-modules/bz2/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitLab, ocaml, findlib, bzip2, autoreconfHook }:
 
-if !lib.versionAtLeast ocaml.version "4.02"
+if lib.versionOlder ocaml.version "4.02"
 then throw "bz2 is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/camlpdf/default.nix b/pkgs/development/ocaml-modules/camlpdf/default.nix
index 06456b9c930e0..cbcb67e2d295c 100644
--- a/pkgs/development/ocaml-modules/camlpdf/default.nix
+++ b/pkgs/development/ocaml-modules/camlpdf/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, which, ocaml, findlib }:
 
-if !lib.versionAtLeast ocaml.version "4.10"
+if lib.versionOlder ocaml.version "4.10"
 then throw "camlpdf is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/caqti/default.nix b/pkgs/development/ocaml-modules/caqti/default.nix
index e8367402cad2e..a4ac9dadad155 100644
--- a/pkgs/development/ocaml-modules/caqti/default.nix
+++ b/pkgs/development/ocaml-modules/caqti/default.nix
@@ -1,8 +1,10 @@
-{ lib, fetchFromGitHub, buildDunePackage, cppo, logs, ptime, uri }:
+{ lib, fetchFromGitHub, buildDunePackage
+, cppo, logs, ptime, uri, bigstringaf
+, re, cmdliner, alcotest }:
 
 buildDunePackage rec {
   pname = "caqti";
-  version = "1.7.0";
+  version = "1.8.0";
   useDune2 = true;
 
   minimumOCamlVersion = "4.04";
@@ -11,11 +13,14 @@ buildDunePackage rec {
     owner = "paurkedal";
     repo = "ocaml-${pname}";
     rev = "v${version}";
-    sha256 = "sha256-NGK38so6ZVCRbtV3ww1u31EFAjkHgDdsFfFUwc8ldm4=";
+    sha256 = "sha256-8uKlrq9j1Z3QzkCyoRIn2j6wCdGyo7BY7XlbFHN1xVE=";
   };
 
   nativeBuildInputs = [ cppo ];
-  propagatedBuildInputs = [ logs ptime uri ];
+  propagatedBuildInputs = [ logs ptime uri bigstringaf ];
+  checkInputs = [ re cmdliner alcotest ];
+
+  doCheck = true;
 
   meta = {
     description = "Unified interface to relational database libraries";
diff --git a/pkgs/development/ocaml-modules/cmdliner/default.nix b/pkgs/development/ocaml-modules/cmdliner/default.nix
index 9536cc25290e4..7797055610098 100644
--- a/pkgs/development/ocaml-modules/cmdliner/default.nix
+++ b/pkgs/development/ocaml-modules/cmdliner/default.nix
@@ -1,35 +1,27 @@
 { lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg, result }:
 
-let
-  pname = "cmdliner";
-in
-
-assert lib.versionAtLeast ocaml.version "4.01.0";
-
-let param =
-  if lib.versionAtLeast ocaml.version "4.03" then {
-    version = "1.0.4";
-    sha256 = "1h04q0zkasd0mw64ggh4y58lgzkhg6yhzy60lab8k8zq9ba96ajw";
-  } else {
-    version = "1.0.2";
-    sha256 = "18jqphjiifljlh9jg8zpl6310p3iwyaqphdkmf89acyaix0s4kj1";
-  }
-; in
+assert (lib.versionAtLeast ocaml.version "4.03");
 
 stdenv.mkDerivation rec {
-  name = "ocaml${ocaml.version}-${pname}-${version}";
-  inherit (param) version;
+  pname = "cmdliner";
+  version = "1.0.4";
 
   src = fetchurl {
     url = "https://erratique.ch/software/${pname}/releases/${pname}-${version}.tbz";
-    inherit (param) sha256;
+    sha256 = "1h04q0zkasd0mw64ggh4y58lgzkhg6yhzy60lab8k8zq9ba96ajw";
   };
 
-  nativeBuildInputs = [ ocaml ocamlbuild findlib topkg ];
-  buildInputs = [ topkg ];
-  propagatedBuildInputs = [ result ];
-
-  inherit (topkg) buildPhase installPhase;
+  nativeBuildInputs = [ ocaml ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+  installTargets = "install install-doc";
+  installFlags = [
+    "LIBDIR=$(out)/lib/ocaml/${ocaml.version}/site-lib/${pname}"
+    "DOCDIR=$(out)/share/doc/${pname}"
+  ];
+  postInstall = ''
+    mv $out/lib/ocaml/${ocaml.version}/site-lib/${pname}/{opam,${pname}.opam}
+  '';
 
   meta = with lib; {
     homepage = "https://erratique.ch/software/cmdliner";
diff --git a/pkgs/development/ocaml-modules/coin/default.nix b/pkgs/development/ocaml-modules/coin/default.nix
index f2e0919bdee45..0ff2ce9404105 100644
--- a/pkgs/development/ocaml-modules/coin/default.nix
+++ b/pkgs/development/ocaml-modules/coin/default.nix
@@ -1,20 +1,19 @@
 { buildDunePackage
-, fetchzip
+, fetchurl
 , findlib
 , lib
-, menhir
 , ocaml
 , re
 }:
 
 buildDunePackage rec {
   pname = "coin";
-  version = "0.1.3";
+  version = "0.1.4";
   minimalOCamlVersion = "4.03";
 
-  src = fetchzip {
-    url = "https://github.com/mirage/coin/releases/download/v${version}/coin-v${version}.tbz";
-    sha256 = "06bfidvglyp9hzvr2xwbdx8wf26is2xrzc31fldzjf5ab0vd076p";
+  src = fetchurl {
+    url = "https://github.com/mirage/coin/releases/download/v${version}/coin-${version}.tbz";
+    sha256 = "sha256:0069qqswd1ik5ay3d5q1v1pz0ql31kblfsnv0ax0z8jwvacp3ack";
   };
 
   postPatch = ''
@@ -22,9 +21,7 @@ buildDunePackage rec {
       'ocaml} -I ${findlib}/lib/ocaml/${ocaml.version}/site-lib '
   '';
 
-  useDune2 = true;
-
-  nativeBuildInputs = [ menhir findlib ];
+  nativeBuildInputs = [ findlib ];
   buildInputs = [ re ];
 
   strictDeps = true;
diff --git a/pkgs/development/ocaml-modules/cpdf/default.nix b/pkgs/development/ocaml-modules/cpdf/default.nix
index 3f60263736e8e..b1694885258a1 100644
--- a/pkgs/development/ocaml-modules/cpdf/default.nix
+++ b/pkgs/development/ocaml-modules/cpdf/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, ocaml, findlib, camlpdf, ncurses }:
 
-if !lib.versionAtLeast ocaml.version "4.10"
+if lib.versionOlder ocaml.version "4.10"
 then throw "cpdf is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/cstruct/lwt.nix b/pkgs/development/ocaml-modules/cstruct/lwt.nix
index df8941d1260d6..60e73449264fb 100644
--- a/pkgs/development/ocaml-modules/cstruct/lwt.nix
+++ b/pkgs/development/ocaml-modules/cstruct/lwt.nix
@@ -1,6 +1,6 @@
 { lib, buildDunePackage, cstruct, lwt }:
 
-if !lib.versionAtLeast (cstruct.version or "1") "3"
+if lib.versionOlder (cstruct.version or "1") "3"
 then cstruct
 else
 
diff --git a/pkgs/development/ocaml-modules/cstruct/ppx.nix b/pkgs/development/ocaml-modules/cstruct/ppx.nix
index 523a2c04f618e..6705602ef25bf 100644
--- a/pkgs/development/ocaml-modules/cstruct/ppx.nix
+++ b/pkgs/development/ocaml-modules/cstruct/ppx.nix
@@ -2,7 +2,7 @@
 , ounit, cppo, ppx_sexp_conv, cstruct-unix, cstruct-sexp
 }:
 
-if !lib.versionAtLeast (cstruct.version or "1") "3"
+if lib.versionOlder (cstruct.version or "1") "3"
 then cstruct
 else
 
diff --git a/pkgs/development/ocaml-modules/cstruct/sexp.nix b/pkgs/development/ocaml-modules/cstruct/sexp.nix
index b04810e48038a..69972ad34037f 100644
--- a/pkgs/development/ocaml-modules/cstruct/sexp.nix
+++ b/pkgs/development/ocaml-modules/cstruct/sexp.nix
@@ -1,6 +1,6 @@
 { lib, buildDunePackage, ocaml, alcotest, cstruct, sexplib }:
 
-if !lib.versionAtLeast (cstruct.version or "1") "3"
+if lib.versionOlder (cstruct.version or "1") "3"
 then cstruct
 else
 
diff --git a/pkgs/development/ocaml-modules/cstruct/unix.nix b/pkgs/development/ocaml-modules/cstruct/unix.nix
index 1ea27bb04de44..c3d280d785abc 100644
--- a/pkgs/development/ocaml-modules/cstruct/unix.nix
+++ b/pkgs/development/ocaml-modules/cstruct/unix.nix
@@ -1,6 +1,6 @@
 { lib, buildDunePackage, cstruct }:
 
-if !lib.versionAtLeast (cstruct.version or "1") "3"
+if lib.versionOlder (cstruct.version or "1") "3"
 then cstruct
 else
 
diff --git a/pkgs/development/ocaml-modules/csv/lwt.nix b/pkgs/development/ocaml-modules/csv/lwt.nix
index b0f771209aa61..c90dc019b9d4c 100644
--- a/pkgs/development/ocaml-modules/csv/lwt.nix
+++ b/pkgs/development/ocaml-modules/csv/lwt.nix
@@ -1,6 +1,6 @@
 { lib, buildDunePackage, ocaml, csv, ocaml_lwt }:
 
-if !lib.versionAtLeast ocaml.version "4.02"
+if lib.versionOlder ocaml.version "4.02"
 then throw "csv-lwt is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/ctypes/default.nix b/pkgs/development/ocaml-modules/ctypes/default.nix
index 833ea45a86923..6e9aa98e1cca5 100644
--- a/pkgs/development/ocaml-modules/ctypes/default.nix
+++ b/pkgs/development/ocaml-modules/ctypes/default.nix
@@ -1,18 +1,18 @@
 { lib, stdenv, fetchFromGitHub, ocaml, findlib, libffi, pkg-config, ncurses, integers, bigarray-compat }:
 
-if !lib.versionAtLeast ocaml.version "4.02"
+if lib.versionOlder ocaml.version "4.02"
 then throw "ctypes is not available for OCaml ${ocaml.version}"
 else
 
 stdenv.mkDerivation rec {
   pname = "ocaml${ocaml.version}-ctypes";
-  version = "0.18.0";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "ocamllabs";
     repo = "ocaml-ctypes";
     rev = version;
-    sha256 = "sha256-eu5RAuPYC97IM4XUsUw3HQ1BJlEHQ+eBpsdUE6hd+Q8=";
+    sha256 = "sha256-fr60H/hiSVjEg11qM8LF1Y5CotS3FEyFdCcIh0A0uI4=";
   };
 
   nativeBuildInputs = [ pkg-config ocaml findlib ];
diff --git a/pkgs/development/ocaml-modules/dssi/default.nix b/pkgs/development/ocaml-modules/dssi/default.nix
new file mode 100644
index 0000000000000..b8235cef96905
--- /dev/null
+++ b/pkgs/development/ocaml-modules/dssi/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildDunePackage, fetchFromGitHub, dune-configurator, ladspa, alsa-lib }:
+
+buildDunePackage rec {
+  pname = "dssi";
+  version = "0.1.5";
+
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-dssi";
+    rev = "v${version}";
+    sha256 = "1frbmx1aznwp60r6bkx1whqyr6mkflvd9ysmjg7s7b80mh0s4ix6";
+  };
+
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ ladspa alsa-lib ];
+
+  meta = with lib; {
+    homepage = "https://github.com/savonet/ocaml-dssi";
+    description = "Bindings for the DSSI API which provides audio synthesizers";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ dandellion ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/eliom/default.nix b/pkgs/development/ocaml-modules/eliom/default.nix
index e3af173edc916..f3c587428a409 100644
--- a/pkgs/development/ocaml-modules/eliom/default.nix
+++ b/pkgs/development/ocaml-modules/eliom/default.nix
@@ -16,17 +16,18 @@
 , js_of_ocaml-tyxml
 , lwt_ppx
 , ocamlnet
+, ocsipersist
 }:
 
 stdenv.mkDerivation rec {
   pname = "eliom";
-  version = "8.9.0";
+  version = "9.4.0";
 
   src = fetchFromGitHub {
     owner = "ocsigen";
     repo = "eliom";
     rev = version;
-    sha256 = "sha256-VNxzpVpXEGlixyjadbW0GjL83jcKV5TWd46UReNYO6w=";
+    sha256 = "sha256:1yn8mqxv9yz51x81j8wv1jn7l7crm8azp1m2g4zn5nz2s4nmfv6q";
   };
 
   nativeBuildInputs = [
@@ -49,12 +50,17 @@ stdenv.mkDerivation rec {
     lwt_ppx
     lwt_react
     ocsigen_server
+    ocsipersist
     ppx_deriving
   ];
 
   strictDeps = true;
 
-  installPhase = "opaline -prefix $out -libdir $OCAMLFIND_DESTDIR";
+  installPhase = ''
+    runHook preInstall
+    opaline -prefix $out -libdir $OCAMLFIND_DESTDIR
+    runHook postInstall
+  '';
 
   setupHook = [ ./setup-hook.sh ];
 
diff --git a/pkgs/development/ocaml-modules/erm_xml/default.nix b/pkgs/development/ocaml-modules/erm_xml/default.nix
index ebf9cdaad69ac..d1f93f5726453 100644
--- a/pkgs/development/ocaml-modules/erm_xml/default.nix
+++ b/pkgs/development/ocaml-modules/erm_xml/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchFromGitHub, ocaml, findlib, ocamlbuild }:
 
-if !lib.versionAtLeast ocaml.version "4.02"
+if lib.versionOlder ocaml.version "4.02"
 then throw "erm_xml is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/expat/default.nix b/pkgs/development/ocaml-modules/expat/default.nix
index 6fb7927073d41..0bd6c733e6fbd 100644
--- a/pkgs/development/ocaml-modules/expat/default.nix
+++ b/pkgs/development/ocaml-modules/expat/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
 
-  doCheck = !lib.versionAtLeast ocaml.version "4.06";
+  doCheck = lib.versionOlder ocaml.version "4.06";
   checkTarget = "testall";
 
   createFindlibDestdir = true;
diff --git a/pkgs/development/ocaml-modules/farfadet/default.nix b/pkgs/development/ocaml-modules/farfadet/default.nix
index 1ac5595a015b9..a02866e3b4f0c 100644
--- a/pkgs/development/ocaml-modules/farfadet/default.nix
+++ b/pkgs/development/ocaml-modules/farfadet/default.nix
@@ -2,7 +2,7 @@
 , faraday
 }:
 
-if !lib.versionAtLeast ocaml.version "4.3"
+if lib.versionOlder ocaml.version "4.3"
 then throw "farfadet is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/ffmpeg/base.nix b/pkgs/development/ocaml-modules/ffmpeg/base.nix
index 77a6ef01ac9ff..5dc5f612fd325 100644
--- a/pkgs/development/ocaml-modules/ffmpeg/base.nix
+++ b/pkgs/development/ocaml-modules/ffmpeg/base.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub }:
 
 rec {
-  version = "1.1.0";
+  version = "1.1.3";
 
   useDune2 = true;
 
@@ -9,7 +9,7 @@ rec {
     owner = "savonet";
     repo = "ocaml-ffmpeg";
     rev = "v${version}";
-    sha256 = "13rc3d0n963a28my5ahv78r82rh450hvbsc74mb6ld0r9v210r0p";
+    sha256 = "1l40dfc0v3wn2drfq0mclrc1lrlpycdjrkrw4knkwpsg0za68v4c";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/flex/default.nix b/pkgs/development/ocaml-modules/flex/default.nix
new file mode 100644
index 0000000000000..c9db2440e01cd
--- /dev/null
+++ b/pkgs/development/ocaml-modules/flex/default.nix
@@ -0,0 +1,22 @@
+{ buildDunePackage, fetchFromGitHub, lib, reason }:
+
+buildDunePackage rec {
+  pname = "flex";
+  version = "unstable-2020-09-12";
+
+  src = fetchFromGitHub {
+    owner = "jordwalke";
+    repo = "flex";
+    rev = "6ff12fe4f96749ffd3c0ea3d9962742767937b4a";
+    sha256 = "sha256-GomTOdlU5ZwElKK8CM4DEMr51YDIrFKmTxUCGMLL3c4=";
+  };
+
+  nativeBuildInputs = [ reason ];
+
+  meta = with lib; {
+    description = "Native Reason implementation of CSS Flexbox layout. An Yoga project port";
+    homepage = "https://github.com/jordwalke/flex";
+    maintainers = with maintainers; [ superherointj ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/fmt/default.nix b/pkgs/development/ocaml-modules/fmt/default.nix
index edf8d08eaabaa..4816cab57cfd3 100644
--- a/pkgs/development/ocaml-modules/fmt/default.nix
+++ b/pkgs/development/ocaml-modules/fmt/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg, cmdliner, seq, stdlib-shims }:
 
-if !lib.versionAtLeast ocaml.version "4.05"
+if lib.versionOlder ocaml.version "4.05"
 then throw "fmt is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/fpath/default.nix b/pkgs/development/ocaml-modules/fpath/default.nix
index 53489f69cc3ef..84f25fed28406 100644
--- a/pkgs/development/ocaml-modules/fpath/default.nix
+++ b/pkgs/development/ocaml-modules/fpath/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchurl, ocaml, findlib, ocamlbuild, topkg, astring }:
 
-if !lib.versionAtLeast ocaml.version "4.03"
+if lib.versionOlder ocaml.version "4.03"
 then throw "fpath is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/frontc/default.nix b/pkgs/development/ocaml-modules/frontc/default.nix
index c05422497ee73..c4ec0908fb0db 100644
--- a/pkgs/development/ocaml-modules/frontc/default.nix
+++ b/pkgs/development/ocaml-modules/frontc/default.nix
@@ -1,26 +1,19 @@
-{ stdenv, lib, fetchurl, fetchpatch, fetchFromGitHub, ocaml, findlib }:
+{ lib, buildDunePackage, fetchFromGitHub, ocaml, menhir }:
 
-let
-  meta_file = fetchurl {
-    url = "https://raw.githubusercontent.com/ocaml/opam-repository/3c191ae9356ca7b3b628f2707cfcb863db42480f/packages/FrontC/FrontC.3.4.1/files/META";
-    sha256 = "0s2wsinycldk8y5p09xd0hsgbhckhy7bkghzl63bph6mwv64kq2d";
-  };
-in
-
-stdenv.mkDerivation rec {
-  pname = "ocaml${ocaml.version}-FrontC";
-  version = "3.4.1";
+buildDunePackage rec {
+  pname = "FrontC";
+  version = "4.1.0";
 
   src = fetchFromGitHub {
     owner = "BinaryAnalysisPlatform";
     repo = "FrontC";
-    rev = "V_${lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "1dq5nks0c9gsbr1m8k39m1bniawr5hqcy1r8x5px7naa95ch06ak";
+    rev = "v${version}";
+    sha256 = "1mi1vh4qgscnb470qwidccaqd068j1bqlz6pf6wddk21paliwnqb";
   };
 
-  nativeBuildInputs = [ ocaml findlib ];
+  minimalOCamlVersion = "4.08";
 
-  strictDeps = true;
+  nativeBuildInputs = [ menhir ];
 
   meta = with lib; {
     inherit (src.meta) homepage;
@@ -29,14 +22,4 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21;
     maintainers = [ maintainers.maurer ];
   };
-
-  patches = [ (fetchpatch {
-      url = "https://raw.githubusercontent.com/ocaml/opam-repository/3c191ae9356ca7b3b628f2707cfcb863db42480f/packages/FrontC/FrontC.3.4.1/files/opam.patch";
-      sha256 = "0v4f6740jbj1kxg1y03dzfa3x3gsrhv06wpzdj30gl4ki5fvj4hs";
-    })
-  ];
-
-  makeFlags = [ "PREFIX=$(out)" "OCAML_SITE=$(OCAMLFIND_DESTDIR)" ];
-
-  postInstall = "cp ${meta_file} $OCAMLFIND_DESTDIR/FrontC/META";
 }
diff --git a/pkgs/development/ocaml-modules/gen_js_api/default.nix b/pkgs/development/ocaml-modules/gen_js_api/default.nix
new file mode 100644
index 0000000000000..e0474cdac6a89
--- /dev/null
+++ b/pkgs/development/ocaml-modules/gen_js_api/default.nix
@@ -0,0 +1,41 @@
+{ buildDunePackage
+, lib
+, ppxlib
+, fetchFromGitHub
+, ojs
+, js_of_ocaml-compiler
+, nodejs
+}:
+
+buildDunePackage rec {
+  pname = "gen_js_api";
+  version = "1.0.9";
+
+  src = fetchFromGitHub {
+    owner = "LexiFi";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1qx6if1avr484bl9x1h0cksdc6gqw5i4pwzdr27h46hppnnvi8y8";
+  };
+
+  minimalOCamlVersion = "4.08";
+
+  propagatedBuildInputs = [ ojs ppxlib ];
+  checkInputs = [ js_of_ocaml-compiler nodejs ];
+  doCheck = true;
+
+  meta = {
+    homepage = "https://github.com/LexiFi/gen_js_api";
+    description = "Easy OCaml bindings for JavaScript libraries";
+    longDescription = ''
+      gen_js_api aims at simplifying the creation of OCaml bindings for
+      JavaScript libraries. Authors of bindings write OCaml signatures for
+      JavaScript libraries and the tool generates the actual binding code with a
+      combination of implicit conventions and explicit annotations.
+
+      gen_js_api is to be used with the js_of_ocaml compiler.
+    '';
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.bcc32 ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/gen_js_api/ojs.nix b/pkgs/development/ocaml-modules/gen_js_api/ojs.nix
new file mode 100644
index 0000000000000..722f9fa7f6e15
--- /dev/null
+++ b/pkgs/development/ocaml-modules/gen_js_api/ojs.nix
@@ -0,0 +1,21 @@
+{ buildDunePackage
+, gen_js_api
+}:
+
+buildDunePackage rec {
+  pname = "ojs";
+
+  inherit (gen_js_api) version src;
+
+  doCheck = false; # checks depend on gen_js_api, which is a cycle
+
+  minimalOCamlVersion = "4.08";
+
+  meta = {
+    inherit (gen_js_api.meta) homepage license maintainers;
+    description = "Runtime Library for gen_js_api generated libraries";
+    longDescription = ''
+      To be used in conjunction with gen_js_api
+    '';
+  };
+}
diff --git a/pkgs/development/ocaml-modules/hacl-star/raw.nix b/pkgs/development/ocaml-modules/hacl-star/raw.nix
index 58fa1eb00212d..07e4d99344f7e 100644
--- a/pkgs/development/ocaml-modules/hacl-star/raw.nix
+++ b/pkgs/development/ocaml-modules/hacl-star/raw.nix
@@ -14,6 +14,9 @@ stdenv.mkDerivation rec {
 
   minimalOCamlVersion = "4.08";
 
+  # strictoverflow is disabled because it breaks aarch64-darwin
+  hardeningDisable = [ "strictoverflow" ];
+
   postPatch = ''
     patchShebangs ./
   '';
diff --git a/pkgs/development/ocaml-modules/javalib/default.nix b/pkgs/development/ocaml-modules/javalib/default.nix
index ccd3fa19a92cf..a12ade51c2ea9 100644
--- a/pkgs/development/ocaml-modules/javalib/default.nix
+++ b/pkgs/development/ocaml-modules/javalib/default.nix
@@ -8,7 +8,7 @@
 , extlib
 }:
 
-if !lib.versionAtLeast ocaml.version "4.04"
+if lib.versionOlder ocaml.version "4.04"
 then throw "javalib is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/lablgl/default.nix b/pkgs/development/ocaml-modules/lablgl/default.nix
index 85c27f93a0918..fa525dbba813d 100644
--- a/pkgs/development/ocaml-modules/lablgl/default.nix
+++ b/pkgs/development/ocaml-modules/lablgl/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, ocaml, findlib, libGLU, libGL, freeglut } :
 
-if !lib.versionAtLeast ocaml.version "4.03"
+if lib.versionOlder ocaml.version "4.03"
 then throw "lablgl is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/lablgtk-extras/default.nix b/pkgs/development/ocaml-modules/lablgtk-extras/default.nix
index 736e345dfb35d..75b3940a1d506 100644
--- a/pkgs/development/ocaml-modules/lablgtk-extras/default.nix
+++ b/pkgs/development/ocaml-modules/lablgtk-extras/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchFromGitLab, ocaml, findlib, camlp4, config-file, lablgtk, xmlm }:
 
-if !lib.versionAtLeast ocaml.version "4.02"
+if lib.versionOlder ocaml.version "4.02"
 || lib.versionAtLeast ocaml.version "4.13"
 then throw "lablgtk-extras is not available for OCaml ${ocaml.version}"
 else
diff --git a/pkgs/development/ocaml-modules/ladspa/default.nix b/pkgs/development/ocaml-modules/ladspa/default.nix
new file mode 100644
index 0000000000000..b037a61a0fb4f
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ladspa/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildDunePackage, fetchFromGitHub, dune-configurator, ladspaH }:
+
+buildDunePackage rec {
+  pname = "ladspa";
+  version = "0.2.2";
+
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-ladspa";
+    rev = "v${version}";
+    sha256 = "1y83infjaz9apzyvaaqw331zqdysmn3bpidfab061v3bczv4jzbz";
+  };
+
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ ladspaH ];
+
+  meta = with lib; {
+    homepage = "https://github.com/savonet/ocaml-alsa";
+    description = "Bindings for the LADSPA API which provides audio effects";
+    license = licenses.lgpl21Only;
+    maintainers = with maintainers; [ dandellion ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/lastfm/default.nix b/pkgs/development/ocaml-modules/lastfm/default.nix
new file mode 100644
index 0000000000000..41bdac459b310
--- /dev/null
+++ b/pkgs/development/ocaml-modules/lastfm/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildDunePackage
+, fetchFromGitHub
+, pkg-config
+, dune-configurator
+, xmlplaylist
+, ocaml_pcre
+, ocamlnet
+}:
+
+buildDunePackage rec {
+  pname = "lastfm";
+  version = "0.3.3";
+
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-lastfm";
+    rev = "v${version}";
+    sha256 = "1sz400ny9h7fs20k7600q475q164x49ba30ls3q9y35rhm3g2y2b";
+  };
+
+  propagatedBuildInputs = [ xmlplaylist ocaml_pcre ocamlnet ];
+
+  meta = with lib; {
+    homepage = "https://github.com/savonet/ocaml-lastfm";
+    description = "OCaml API to lastfm radio and audioscrobbler";
+    license = licenses.lgpl21Only;
+    maintainers = with maintainers; [ dandellion ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/llvm/default.nix b/pkgs/development/ocaml-modules/llvm/default.nix
index 9ab3d906ab1ef..c0600df64f277 100644
--- a/pkgs/development/ocaml-modules/llvm/default.nix
+++ b/pkgs/development/ocaml-modules/llvm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, python2, cmake, libllvm, ocaml, findlib, ctypes }:
+{ stdenv, lib, python3, cmake, libllvm, ocaml, findlib, ctypes }:
 
 let version = lib.getVersion libllvm; in
 
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
 
   inherit (libllvm) src;
 
-  nativeBuildInputs = [ cmake python2 ocaml findlib ];
+  nativeBuildInputs = [ cmake python3 ocaml findlib ];
   buildInputs = [ ctypes ];
   propagatedBuildInputs = [ libllvm ];
 
diff --git a/pkgs/development/ocaml-modules/logs/default.nix b/pkgs/development/ocaml-modules/logs/default.nix
index 4359f09ebd324..adc7f255b1988 100644
--- a/pkgs/development/ocaml-modules/logs/default.nix
+++ b/pkgs/development/ocaml-modules/logs/default.nix
@@ -8,7 +8,7 @@ let
   webpage = "https://erratique.ch/software/${pname}";
 in
 
-if !lib.versionAtLeast ocaml.version "4.03"
+if lib.versionOlder ocaml.version "4.03"
 then throw "logs is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/lua-ml/default.nix b/pkgs/development/ocaml-modules/lua-ml/default.nix
index 586fc395064f1..523e453b7d488 100644
--- a/pkgs/development/ocaml-modules/lua-ml/default.nix
+++ b/pkgs/development/ocaml-modules/lua-ml/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchFromGitHub, ocaml, findlib, ocamlbuild, opaline }:
 
-if !lib.versionAtLeast ocaml.version "4.07"
+if lib.versionOlder ocaml.version "4.07"
 then throw "lua-ml is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/lwt/default.nix b/pkgs/development/ocaml-modules/lwt/default.nix
index 96e3abc267461..5f1059395ab22 100644
--- a/pkgs/development/ocaml-modules/lwt/default.nix
+++ b/pkgs/development/ocaml-modules/lwt/default.nix
@@ -4,7 +4,7 @@
 , ocaml-syntax-shims
 }:
 
-let inherit (lib) optional versionAtLeast; in
+let inherit (lib) optional versionOlder; in
 
 buildDunePackage rec {
   pname = "lwt";
@@ -22,9 +22,9 @@ buildDunePackage rec {
   strictDeps = true;
 
   nativeBuildInputs = [ pkg-config cppo ]
-    ++ optional (!versionAtLeast ocaml.version "4.08") ocaml-syntax-shims;
+    ++ optional (versionOlder ocaml.version "4.08") ocaml-syntax-shims;
   buildInputs = [ dune-configurator ]
-    ++ optional (!versionAtLeast ocaml.version "4.07") ncurses;
+    ++ optional (versionOlder ocaml.version "4.07") ncurses;
   propagatedBuildInputs = [ libev mmap ocplib-endian seq result ];
 
   meta = {
diff --git a/pkgs/development/ocaml-modules/nocrypto/default.nix b/pkgs/development/ocaml-modules/nocrypto/default.nix
index d179c8c1c9019..e34e3ae014627 100644
--- a/pkgs/development/ocaml-modules/nocrypto/default.nix
+++ b/pkgs/development/ocaml-modules/nocrypto/default.nix
@@ -15,7 +15,7 @@ let
   '';
 in
 
-if !versionAtLeast ocaml.version "4.08"
+if versionOlder ocaml.version "4.08"
 then throw "nocrypto is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/notty/default.nix b/pkgs/development/ocaml-modules/notty/default.nix
index 1598b2ee5cd35..2e53944a3068a 100644
--- a/pkgs/development/ocaml-modules/notty/default.nix
+++ b/pkgs/development/ocaml-modules/notty/default.nix
@@ -4,7 +4,7 @@
 
 with lib;
 
-if !versionAtLeast ocaml.version "4.05"
+if versionOlder ocaml.version "4.05"
 then throw "notty is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/ocp-ocamlres/default.nix b/pkgs/development/ocaml-modules/ocp-ocamlres/default.nix
index 763617be1328c..d084e7f8a62e3 100644
--- a/pkgs/development/ocaml-modules/ocp-ocamlres/default.nix
+++ b/pkgs/development/ocaml-modules/ocp-ocamlres/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchFromGitHub, ocaml, findlib, astring, pprint }:
 
-if !lib.versionAtLeast ocaml.version "4.02"
+if lib.versionOlder ocaml.version "4.02"
 then throw "ocp-ocamlres is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/ocsigen-deriving/default.nix b/pkgs/development/ocaml-modules/ocsigen-deriving/default.nix
index 480ea6daf203f..6ffeec9830485 100644
--- a/pkgs/development/ocaml-modules/ocsigen-deriving/default.nix
+++ b/pkgs/development/ocaml-modules/ocsigen-deriving/default.nix
@@ -9,7 +9,7 @@
 , num
 }:
 
-if !lib.versionAtLeast ocaml.version "4.03"
+if lib.versionOlder ocaml.version "4.03"
 then throw "ocsigen-deriving is not available of OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/ocsigen-server/default.nix b/pkgs/development/ocaml-modules/ocsigen-server/default.nix
index 67ec458a122d5..daa64b7e30193 100644
--- a/pkgs/development/ocaml-modules/ocsigen-server/default.nix
+++ b/pkgs/development/ocaml-modules/ocsigen-server/default.nix
@@ -2,7 +2,7 @@
 , bigstringaf, lwt, cstruct, mirage-crypto, zarith, mirage-crypto-ec, ptime, mirage-crypto-rng, mtime, ca-certs
 , cohttp, cohttp-lwt-unix, hmap
 , lwt_log, ocaml_pcre, cryptokit, xml-light, ipaddr
-, pgocaml, camlzip, ocaml_sqlite3
+, camlzip
 , makeWrapper
 }:
 
@@ -17,7 +17,7 @@ let caml_ld_library_path =
 ; in
 
 buildDunePackage rec {
-  version = "4.0.1";
+  version = "5.0.1";
   pname = "ocsigenserver";
 
   useDune2 = true;
@@ -27,11 +27,11 @@ buildDunePackage rec {
     owner = "ocsigen";
     repo = "ocsigenserver";
     rev = version;
-    sha256 = "0pid4irkmdmx1d6n2rvcvx5mnljl3hazzdqc3bql72by35izfac6";
+    sha256 = "sha256:1vzza33hd41740dqrx4854rqpyd8wv7kwpsvvmlpck841i9lh8h5";
   };
 
   nativeBuildInputs = [ makeWrapper which ];
-  buildInputs = [ lwt_react pgocaml camlzip ocaml_sqlite3 ];
+  buildInputs = [ lwt_react camlzip ];
 
   propagatedBuildInputs = [ cohttp cohttp-lwt-unix cryptokit hmap ipaddr lwt_log lwt_ssl
     ocaml_pcre xml-light
diff --git a/pkgs/development/ocaml-modules/ocsigen-start/default.nix b/pkgs/development/ocaml-modules/ocsigen-start/default.nix
index 118138dc8fd00..4f439733740e2 100644
--- a/pkgs/development/ocaml-modules/ocsigen-start/default.nix
+++ b/pkgs/development/ocaml-modules/ocsigen-start/default.nix
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation rec {
   pname = "ocaml${ocaml.version}-ocsigen-start";
-  version = "4.3.0";
+  version = "4.5.0";
 
   nativeBuildInputs = [ ocaml findlib eliom ];
   propagatedBuildInputs = [ pgocaml_ppx safepass ocsigen-toolkit yojson resource-pooling cohttp-lwt-unix ocamlnet ];
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     owner = "ocsigen";
     repo = "ocsigen-start";
     rev = version;
-    sha256 = "0lkl59dwzyqq2lyr46fyjr27ms0fp9h59xfsn37faaavdd7v0h98";
+    sha256 = "sha256:1n94r8rbkzxbgcz5w135n6f2cwpc91bdvf7yslcdq4cn713rncmq";
   };
 
   preInstall = ''
diff --git a/pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix b/pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix
index 1b2dd72a2ec38..12a92c5be399c 100644
--- a/pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix
+++ b/pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix
@@ -5,7 +5,7 @@
 stdenv.mkDerivation rec {
  pname = "ocsigen-toolkit";
  name = "ocaml${ocaml.version}-${pname}-${version}";
- version = "3.0.1";
+ version = "3.1.1";
 
  propagatedBuildInputs = [ calendar js_of_ocaml-ppx_deriving_json eliom ];
  nativeBuildInputs = [ ocaml findlib opaline eliom ];
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     owner = "ocsigen";
     repo = pname;
     rev = version;
-    sha256 = "1yx50ja2wcs5vfy4rk9szgwccpnihkjn14i4ywchx4yr4ppr00fm";
+    sha256 = "sha256:1fm0vvccmjib9yj5m2760vhzb4z3392swlprp51az53g3vk4q218";
   };
 
   meta = {
diff --git a/pkgs/development/ocaml-modules/ocsipersist/default.nix b/pkgs/development/ocaml-modules/ocsipersist/default.nix
new file mode 100644
index 0000000000000..8006477dad96e
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ocsipersist/default.nix
@@ -0,0 +1,20 @@
+{ buildDunePackage, ocsipersist-lib
+, ocsipersist-pgsql
+, ocsipersist-sqlite
+}:
+
+buildDunePackage {
+  pname = "ocsipersist";
+  inherit (ocsipersist-lib) src version useDune2;
+
+  buildInputs = [
+    ocsipersist-pgsql
+    ocsipersist-sqlite
+  ];
+
+  propagatedBuildInputs = [ ocsipersist-lib ];
+
+  meta = ocsipersist-lib.meta // {
+    description = "Persistent key/value storage (for Ocsigen) using multiple backends";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ocsipersist/lib.nix b/pkgs/development/ocaml-modules/ocsipersist/lib.nix
new file mode 100644
index 0000000000000..a2abc5d9b399e
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ocsipersist/lib.nix
@@ -0,0 +1,27 @@
+{ lib, buildDunePackage, fetchFromGitHub
+, lwt_ppx, lwt
+}:
+
+buildDunePackage rec {
+  pname = "ocsipersist-lib";
+  version = "1.1.0";
+
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "ocsigen";
+    repo = "ocsipersist";
+    rev = version;
+    sha256 = "sha256:1d6kdcfjvrz0dl764mnyxc477aa57rvmzkg154qc915w2y1nbz9a";
+  };
+
+  buildInputs = [ lwt_ppx ];
+  propagatedBuildInputs = [ lwt ];
+
+  meta = {
+    description = "Persistent key/value storage (for Ocsigen) - support library";
+    license = lib.licenses.lgpl21Only;
+    maintainers = [ lib.maintainers.vbgl ];
+    inherit (src.meta) homepage;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ocsipersist/pgsql.nix b/pkgs/development/ocaml-modules/ocsipersist/pgsql.nix
new file mode 100644
index 0000000000000..e93c8b4790359
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ocsipersist/pgsql.nix
@@ -0,0 +1,24 @@
+{ buildDunePackage, ocsipersist-lib
+, lwt_log
+, ocsigen_server
+, pgocaml
+, xml-light
+}:
+
+buildDunePackage {
+  pname = "ocsipersist-pgsql";
+  inherit (ocsipersist-lib) version src useDune2;
+
+  propagatedBuildInputs = [
+    lwt_log
+    ocsigen_server
+    ocsipersist-lib
+    pgocaml
+    xml-light
+  ];
+
+  meta = ocsipersist-lib.meta // {
+    description = "Persistent key/value storage (for Ocsigen) using PostgreSQL";
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/ocsipersist/sqlite.nix b/pkgs/development/ocaml-modules/ocsipersist/sqlite.nix
new file mode 100644
index 0000000000000..2cfa30bc908e6
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ocsipersist/sqlite.nix
@@ -0,0 +1,23 @@
+{ buildDunePackage, ocsipersist-lib
+, lwt_log
+, ocaml_sqlite3
+, ocsigen_server
+, xml-light
+}:
+
+buildDunePackage {
+  pname = "ocsipersist-sqlite";
+  inherit (ocsipersist-lib) version src useDune2;
+
+  propagatedBuildInputs = [
+    lwt_log
+    ocaml_sqlite3
+    ocsigen_server
+    ocsipersist-lib
+    xml-light
+  ];
+
+  meta = ocsipersist-lib.meta // {
+    description = "Persistent key/value storage (for Ocsigen) using SQLite";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/phylogenetics/default.nix b/pkgs/development/ocaml-modules/phylogenetics/default.nix
index 1cb348a41656e..366ad9cc24acf 100644
--- a/pkgs/development/ocaml-modules/phylogenetics/default.nix
+++ b/pkgs/development/ocaml-modules/phylogenetics/default.nix
@@ -16,13 +16,11 @@
 
 buildDunePackage rec {
   pname = "phylogenetics";
-  version = "0.0.0";
-
-  useDune2 = true;
+  version = "0.1.0";
 
   src = fetchurl {
     url = "https://github.com/biocaml/phylogenetics/releases/download/v${version}/${pname}-${version}.tbz";
-    sha256 = "sha256:0knfh2s0jfnsc0vsq5yw5xla7m7i98xd0qv512dyh3jhkh7m00l9";
+    sha256 = "sha256:064ldljzh17h8pp0c27xd1pf6c50yhccw2g3hddzhk07a95q8v16";
   };
 
   # Ensure compatibility with printbox ≥ 0.6
diff --git a/pkgs/development/ocaml-modules/ppxlib/default.nix b/pkgs/development/ocaml-modules/ppxlib/default.nix
index c5b2dd762cedb..2b7feddfa89b2 100644
--- a/pkgs/development/ocaml-modules/ppxlib/default.nix
+++ b/pkgs/development/ocaml-modules/ppxlib/default.nix
@@ -49,7 +49,7 @@ let param = {
 }."${version}"; in
 
 if param ? max_version && lib.versionAtLeast ocaml.version param.max_version
-|| param ? min_version && !lib.versionAtLeast ocaml.version param.min_version
+|| param ? min_version && lib.versionOlder ocaml.version param.min_version
 then throw "ppxlib-${version} is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/ptime/default.nix b/pkgs/development/ocaml-modules/ptime/default.nix
index ac30876520a65..169cf4ce16f5a 100644
--- a/pkgs/development/ocaml-modules/ptime/default.nix
+++ b/pkgs/development/ocaml-modules/ptime/default.nix
@@ -1,14 +1,16 @@
-{ stdenv, lib, fetchurl, ocaml, findlib, ocamlbuild, topkg, result, js_of_ocaml
+{ stdenv, lib, fetchurl, ocaml, findlib, ocamlbuild, topkg, js_of_ocaml
 , jsooSupport ? true
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.8.5";
+  version = "0.8.6";
   pname = "ocaml${ocaml.version}-ptime";
 
+  minimalOCamlVersion = "4.03";
+
   src = fetchurl {
     url = "https://erratique.ch/software/ptime/releases/ptime-${version}.tbz";
-    sha256 = "1fxq57xy1ajzfdnvv5zfm7ap2nf49znw5f9gbi4kb9vds942ij27";
+    sha256 = "sha256-gy/fUsfUHUZx1A/2sQMQIFMHl1V+QO3zHAsEnZT/lkI=";
   };
 
   nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ];
@@ -16,8 +18,6 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
 
-  propagatedBuildInputs = [ result ];
-
   buildPhase = "${topkg.run} build --with-js_of_ocaml ${lib.boolToString jsooSupport}";
 
   inherit (topkg) installPhase;
diff --git a/pkgs/development/ocaml-modules/pure-splitmix/default.nix b/pkgs/development/ocaml-modules/pure-splitmix/default.nix
new file mode 100644
index 0000000000000..228f8ad8c488b
--- /dev/null
+++ b/pkgs/development/ocaml-modules/pure-splitmix/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchFromGitHub, buildDunePackage }:
+
+buildDunePackage rec {
+  pname = "pure-splitmix";
+  version = "0.3";
+
+  src = fetchFromGitHub {
+    owner = "Lysxia";
+    repo = pname;
+    rev = version;
+    sha256 = "RUnsAB4hMV87ItCyGhc47bHGY1iOwVv9kco2HxnzqbU=";
+  };
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/Lysxia/pure-splitmix";
+    description = "Purely functional splittable PRNG";
+    license = licenses.mit;
+    maintainers = [ maintainers.ulrikstrid ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/reactivedata/default.nix b/pkgs/development/ocaml-modules/reactivedata/default.nix
index 23ebb3144d11d..9be32d28bab9a 100644
--- a/pkgs/development/ocaml-modules/reactivedata/default.nix
+++ b/pkgs/development/ocaml-modules/reactivedata/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild, react, opaline }:
 
-if !lib.versionAtLeast ocaml.version "4.04"
+if lib.versionOlder ocaml.version "4.04"
 then throw "reactiveData is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/rebez/default.nix b/pkgs/development/ocaml-modules/rebez/default.nix
new file mode 100644
index 0000000000000..b82c2ba748278
--- /dev/null
+++ b/pkgs/development/ocaml-modules/rebez/default.nix
@@ -0,0 +1,22 @@
+{ buildDunePackage, fetchFromGitHub, lib, reason }:
+
+buildDunePackage rec {
+  pname = "rebez";
+  version = "unstable-2019-06-20";
+
+  src = fetchFromGitHub {
+    owner = "jchavarri";
+    repo = "rebez";
+    rev = "03fa3b707abb28fdd710eb9e57ba40d9cd6ae163";
+    sha256 = "sha256-khZSwtwW+mP/EvAvIZMQyOb6FgNR+gmzpBZoD9ZPkpY=";
+  };
+
+  nativeBuildInputs = [ reason ];
+
+  meta = with lib; {
+    description = "Cubic bezier implementation in Reason / OCaml";
+    homepage = "https://github.com/jchavarri/rebez/";
+    maintainers = with maintainers; [ superherointj ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/reperf/default.nix b/pkgs/development/ocaml-modules/reperf/default.nix
new file mode 100644
index 0000000000000..bcae9dc695cfb
--- /dev/null
+++ b/pkgs/development/ocaml-modules/reperf/default.nix
@@ -0,0 +1,41 @@
+{ buildDunePackage, fetchFromGitHub, lib, printbox-text, reason }:
+
+buildDunePackage rec {
+  pname = "reperf";
+  version = "1.5.1";
+
+  src = fetchFromGitHub {
+    owner = "bryphe";
+    repo = "reperf";
+    rev = "68ef2f96899c09e6ac7d929b0375f7a806aee067";
+    sha256 = "sha256-ASujTsH4eDAYLNalB9Xt1p3C8x+FI0kMldZBYaXMCWc=";
+  };
+
+  postPatch = ''
+    substituteInPlace src/dune --replace "printbox" "printbox-text"
+  '';
+
+  nativeBuildInputs = [ reason ];
+
+  buildInputs = [
+    printbox-text
+  ];
+
+  meta = with lib; {
+    description = "Native Reason + JSOO cross-platform performance benchmarking tools";
+    longDescription = ''
+      Inspired by the core_bench tools from Janestreet.
+
+      reperf helps with:
+      * Timing: time spent in a code block
+      * Call count: frequency of code-path calls
+      * Allocations: code-block impact to garbage collector
+
+      Supports benchmarks, which are test cases that exercise performance scenarios.
+      Outputs a JSON performance report, and compare it with previous iterations - and fail if a regression is detected.
+    '';
+    homepage = "https://github.com/bryphe/reperf";
+    maintainers = with maintainers; [ superherointj ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/samplerate/default.nix b/pkgs/development/ocaml-modules/samplerate/default.nix
new file mode 100644
index 0000000000000..c101cfc0c2798
--- /dev/null
+++ b/pkgs/development/ocaml-modules/samplerate/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildDunePackage, fetchFromGitHub, dune-configurator, libsamplerate }:
+
+buildDunePackage rec {
+  pname = "samplerate";
+  version = "0.1.6";
+
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-samplerate";
+    rev = "v${version}";
+    sha256 = "0h0i9v9p9n2givv3wys8qrfi1i7vp8kq7lnkf14s7d3m4r8x4wrp";
+  };
+
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ libsamplerate ];
+
+  meta = with lib; {
+    homepage = "https://github.com/savonet/ocaml-samplerate";
+    description = "Interface for libsamplerate";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ dandellion ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/sawja/default.nix b/pkgs/development/ocaml-modules/sawja/default.nix
index ec1b59c04077d..eaad7e7f1bbf6 100644
--- a/pkgs/development/ocaml-modules/sawja/default.nix
+++ b/pkgs/development/ocaml-modules/sawja/default.nix
@@ -5,7 +5,7 @@ let
   version = "1.5.11";
 in
 
-if !lib.versionAtLeast ocaml.version "4.07"
+if lib.versionOlder ocaml.version "4.07"
 then throw "${pname} is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/sedlex/default.nix b/pkgs/development/ocaml-modules/sedlex/default.nix
index b808145bcbbcb..685d4426cfc30 100644
--- a/pkgs/development/ocaml-modules/sedlex/default.nix
+++ b/pkgs/development/ocaml-modules/sedlex/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchFromGitHub, ocaml, findlib, gen, ppx_tools_versioned, ocaml-migrate-parsetree }:
 
-if !lib.versionAtLeast ocaml.version "4.02"
+if lib.versionOlder ocaml.version "4.02"
 then throw "sedlex is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/sosa/default.nix b/pkgs/development/ocaml-modules/sosa/default.nix
index 141e2a50193df..623f21748a87c 100644
--- a/pkgs/development/ocaml-modules/sosa/default.nix
+++ b/pkgs/development/ocaml-modules/sosa/default.nix
@@ -2,7 +2,7 @@
 , findlib, ocaml, ocamlbuild
 }:
 
-if !lib.versionAtLeast ocaml.version "4.02"
+if lib.versionOlder ocaml.version "4.02"
 then throw "sosa is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/sqlite3EZ/default.nix b/pkgs/development/ocaml-modules/sqlite3EZ/default.nix
deleted file mode 100644
index 6009eaecce1d3..0000000000000
--- a/pkgs/development/ocaml-modules/sqlite3EZ/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild, twt, ocaml_sqlite3 }:
-
-assert lib.versionAtLeast (lib.getVersion ocaml) "3.12";
-
-if lib.versionAtLeast ocaml.version "4.06"
-then throw "sqlite3EZ is not available for OCaml ${ocaml.version}"
-else
-
-stdenv.mkDerivation rec {
-  pname = "ocaml-sqlite3EZ";
-  version = "0.1.0";
-
-  src = fetchFromGitHub {
-    owner = "mlin";
-    repo = "ocaml-sqlite3EZ";
-    rev = "v${version}";
-    sha256 = "sha256-pKysvth0efxJeyJQY2Dnqarg7OtsKyyLnFV/1ZhsfDY=";
-  };
-
-  nativeBuildInputs = [ ocaml findlib ocamlbuild ];
-  buildInputs = [ twt ];
-
-  propagatedBuildInputs = [ ocaml_sqlite3 ];
-
-  strictDeps = true;
-
-  createFindlibDestdir = true;
-
-  meta = with lib; {
-    homepage = "https://github.com/mlin/ocaml-sqlite3EZ";
-    description = "A thin wrapper for sqlite3-ocaml with a simplified interface";
-    license = licenses.mit;
-    maintainers = [ maintainers.vbgl ];
-    platforms = ocaml.meta.platforms or [ ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/toml/default.nix b/pkgs/development/ocaml-modules/toml/default.nix
index dd765e3882352..b79d80016d9cc 100644
--- a/pkgs/development/ocaml-modules/toml/default.nix
+++ b/pkgs/development/ocaml-modules/toml/default.nix
@@ -4,15 +4,13 @@
 
 buildDunePackage rec {
   pname = "toml";
-  version = "6.0.0";
-
-  useDune2 = true;
+  version = "7.0.0";
 
   src = fetchFromGitHub {
     owner = "ocaml-toml";
     repo = "to.ml";
     rev = version;
-    sha256 = "08ywzqckllvwawl1wpgg7qzvx6jhq7d6vysa0d5hj7qdwq213ggm";
+    sha256 = "sha256-VEZQTFPwAGShCBGbKUiNOIY1zA/JdTpXU0ZIGNWopnQ=";
   };
 
   nativeBuildInputs = [ menhir ];
diff --git a/pkgs/development/ocaml-modules/torch/default.nix b/pkgs/development/ocaml-modules/torch/default.nix
index 7a0c6bdadeff8..c4c80dacc9f2f 100644
--- a/pkgs/development/ocaml-modules/torch/default.nix
+++ b/pkgs/development/ocaml-modules/torch/default.nix
@@ -56,5 +56,6 @@ buildDunePackage rec {
     description = "Ocaml bindings to Pytorch";
     maintainers = [ maintainers.bcdarwin ];
     license = licenses.asl20;
+    broken = lib.versionAtLeast pytorch.version "1.11";
   };
 }
diff --git a/pkgs/development/ocaml-modules/tsdl/default.nix b/pkgs/development/ocaml-modules/tsdl/default.nix
index a56cccbe0717a..3a1990326df9c 100644
--- a/pkgs/development/ocaml-modules/tsdl/default.nix
+++ b/pkgs/development/ocaml-modules/tsdl/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg, ctypes, result, SDL2, pkg-config, ocb-stubblr }:
 
-if !lib.versionAtLeast ocaml.version "4.03"
+if lib.versionOlder ocaml.version "4.03"
 then throw "tsdl is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/uri/sexp.nix b/pkgs/development/ocaml-modules/uri/sexp.nix
index 83be70c364977..ba970b1d6c51e 100644
--- a/pkgs/development/ocaml-modules/uri/sexp.nix
+++ b/pkgs/development/ocaml-modules/uri/sexp.nix
@@ -1,6 +1,6 @@
 { lib, ocaml, buildDunePackage, uri, ounit, ppx_sexp_conv, sexplib0 }:
 
-if !lib.versionAtLeast ocaml.version "4.04"
+if lib.versionOlder ocaml.version "4.04"
 then throw "uri-sexp is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/uucp/default.nix b/pkgs/development/ocaml-modules/uucp/default.nix
index 9031087f50539..42705e20d3f5b 100644
--- a/pkgs/development/ocaml-modules/uucp/default.nix
+++ b/pkgs/development/ocaml-modules/uucp/default.nix
@@ -8,7 +8,7 @@ let
   doCheck = true;
 in
 
-if !(lib.versionAtLeast ocaml.version minimumOCamlVersion)
+if lib.versionOlder ocaml.version minimumOCamlVersion
 then builtins.throw "${pname} needs at least OCaml ${minimumOCamlVersion}"
 else
 
diff --git a/pkgs/development/ocaml-modules/uunf/default.nix b/pkgs/development/ocaml-modules/uunf/default.nix
index 12031c53927cf..b61a60c2a3754 100644
--- a/pkgs/development/ocaml-modules/uunf/default.nix
+++ b/pkgs/development/ocaml-modules/uunf/default.nix
@@ -5,7 +5,7 @@ let
   version = "14.0.0";
 in
 
-if !lib.versionAtLeast ocaml.version "4.03"
+if lib.versionOlder ocaml.version "4.03"
 then throw "${pname} is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/vg/default.nix b/pkgs/development/ocaml-modules/vg/default.nix
index 9dc7a4eeeeff6..35a0e51cb09a2 100644
--- a/pkgs/development/ocaml-modules/vg/default.nix
+++ b/pkgs/development/ocaml-modules/vg/default.nix
@@ -8,14 +8,14 @@
 with lib;
 
 let
-  inherit (lib) optionals versionAtLeast;
+  inherit (lib) optionals versionOlder;
 
   pname = "vg";
   version = "0.9.4";
   webpage = "https://erratique.ch/software/${pname}";
 in
 
-if !versionAtLeast ocaml.version "4.03"
+if versionOlder ocaml.version "4.03"
 then throw "vg is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/wasm/default.nix b/pkgs/development/ocaml-modules/wasm/default.nix
index ffe8479b67e95..5d53d6db4186c 100644
--- a/pkgs/development/ocaml-modules/wasm/default.nix
+++ b/pkgs/development/ocaml-modules/wasm/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchFromGitHub, ocaml, findlib, ocamlbuild }:
 
-if !lib.versionAtLeast ocaml.version "4.03"
+if lib.versionOlder ocaml.version "4.03"
 || lib.versionOlder "4.13" ocaml.version
 then throw "wasm is not available for OCaml ${ocaml.version}"
 else
diff --git a/pkgs/development/ocaml-modules/xmlm/default.nix b/pkgs/development/ocaml-modules/xmlm/default.nix
index f7aa1fdf113ee..d989b281cadd1 100644
--- a/pkgs/development/ocaml-modules/xmlm/default.nix
+++ b/pkgs/development/ocaml-modules/xmlm/default.nix
@@ -4,7 +4,7 @@ let
   webpage = "https://erratique.ch/software/${pname}";
 in
 
-if !lib.versionAtLeast ocaml.version "4.02"
+if lib.versionOlder ocaml.version "4.02"
 then throw "xmlm is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/ocaml-modules/xmlplaylist/default.nix b/pkgs/development/ocaml-modules/xmlplaylist/default.nix
new file mode 100644
index 0000000000000..a30172573506e
--- /dev/null
+++ b/pkgs/development/ocaml-modules/xmlplaylist/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildDunePackage, fetchFromGitHub, dune-configurator, xmlm }:
+
+buildDunePackage rec {
+  pname = "xmlplaylist";
+  version = "0.1.5";
+
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-xmlplaylist";
+    rev = "v${version}";
+    sha256 = "1x5lbwkr2ip00x8vyfbl8936yy79j138vx8a16ix7g9p2j5qsfcq";
+  };
+
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ xmlm ];
+
+  meta = with lib; {
+    homepage = "https://github.com/savonet/ocaml-xmlplaylist";
+    description = "Module to parse various RSS playlist formats";
+    license = licenses.lgpl21Only;
+    maintainers = with maintainers; [ dandellion ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/z3/default.nix b/pkgs/development/ocaml-modules/z3/default.nix
index b17f29b435315..f2ece5550d785 100644
--- a/pkgs/development/ocaml-modules/z3/default.nix
+++ b/pkgs/development/ocaml-modules/z3/default.nix
@@ -1,17 +1,12 @@
 { stdenv, lib, ocaml, findlib, zarith, z3 }:
 
-if !lib.versionAtLeast ocaml.version "4.07"
+if lib.versionOlder ocaml.version "4.07"
 then throw "z3 is not available for OCaml ${ocaml.version}"
 else
 
 let z3-with-ocaml = (z3.override {
   ocamlBindings = true;
   inherit ocaml findlib zarith;
-}).overrideAttrs (o: {
-  patches = (o.patches or []) ++ [
-    # Fix build; see: https://github.com/Z3Prover/z3/issues/5776
-    ./ocamlfind.patch
-  ];
 }); in
 
 stdenv.mkDerivation {
diff --git a/pkgs/development/ocaml-modules/z3/ocamlfind.patch b/pkgs/development/ocaml-modules/z3/ocamlfind.patch
deleted file mode 100644
index d84907cf79385..0000000000000
--- a/pkgs/development/ocaml-modules/z3/ocamlfind.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/scripts/mk_util.py b/scripts/mk_util.py
-index 042e6af46..1e105b002 100644
---- a/scripts/mk_util.py
-+++ b/scripts/mk_util.py
-@@ -1995,7 +1995,7 @@ class MLComponent(Component):
- 
-             LIBZ3 = LIBZ3 + ' ' + ' '.join(map(lambda x: '-cclib ' + x, LDFLAGS.split()))
- 
--            stubs_install_path = '$$(%s printconf path)/stublibs' % OCAMLFIND
-+            stubs_install_path = '$$(%s printconf destdir)/stublibs' % OCAMLFIND
-             if not STATIC_LIB:
-                 loadpath = '-ccopt -L' + stubs_install_path
-                 dllpath = '-dllpath ' + stubs_install_path
diff --git a/pkgs/development/ocaml-modules/zarith/default.nix b/pkgs/development/ocaml-modules/zarith/default.nix
index 95351caee307b..70f0be8c7af89 100644
--- a/pkgs/development/ocaml-modules/zarith/default.nix
+++ b/pkgs/development/ocaml-modules/zarith/default.nix
@@ -3,7 +3,7 @@
 , gmp
 }:
 
-if !lib.versionAtLeast ocaml.version "4.04"
+if lib.versionOlder ocaml.version "4.04"
 then throw "zarith is not available for OCaml ${ocaml.version}"
 else
 
diff --git a/pkgs/development/php-packages/composer/default.nix b/pkgs/development/php-packages/composer/default.nix
index f0d4b84d02cb6..a046f345dbe38 100644
--- a/pkgs/development/php-packages/composer/default.nix
+++ b/pkgs/development/php-packages/composer/default.nix
@@ -1,14 +1,14 @@
 { mkDerivation, fetchurl, makeWrapper, unzip, lib, php }:
 let
   pname = "composer";
-  version = "2.3.3";
+  version = "2.3.5";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://getcomposer.org/download/${version}/composer.phar";
-    sha256 = "sha256-1pMewrOLQb0K1i+dFXkI5miLrAkbvwvWphnBBnuSJAI=";
+    sha256 = "sha256-OztaiZwGpGrsKAcnvfUKrRQzT2vEBDbqdrB7ZQhw2PQ=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/php-packages/datadog_trace/default.nix b/pkgs/development/php-packages/datadog_trace/default.nix
new file mode 100644
index 0000000000000..9b91d85fefe5f
--- /dev/null
+++ b/pkgs/development/php-packages/datadog_trace/default.nix
@@ -0,0 +1,22 @@
+{ buildPecl, curl, fetchFromGitHub, lib, pcre2 }:
+
+buildPecl rec {
+  pname = "ddtrace";
+  version = "0.70.0";
+
+  src = fetchFromGitHub {
+    owner = "DataDog";
+    repo = "dd-trace-php";
+    rev = "${version}";
+    sha256 = "sha256-AYRBzE0Detg/IHXYutZUfPRMtfthxdkSjqD0M+VcTpY=";
+  };
+
+  buildInputs = [ curl pcre2 ];
+
+  meta = with lib; {
+    description = "Datadog Tracing PHP Client";
+    homepage = "https://github.com/DataDog/dd-trace-php";
+    license = licenses.apsl20;
+    maintainers = teams.php.members;
+  };
+}
diff --git a/pkgs/development/php-packages/phpstan/default.nix b/pkgs/development/php-packages/phpstan/default.nix
index bafbe23acd2b5..029bf14787eb4 100644
--- a/pkgs/development/php-packages/phpstan/default.nix
+++ b/pkgs/development/php-packages/phpstan/default.nix
@@ -1,14 +1,14 @@
 { mkDerivation, fetchurl, makeWrapper, lib, php }:
 let
   pname = "phpstan";
-  version = "1.5.3";
+  version = "1.5.4";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://github.com/phpstan/phpstan/releases/download/${version}/phpstan.phar";
-    sha256 = "sha256-tIVzXxOyHVz2AE0PjQdkQ+uevdSqsjBRIZQWVDwzuKg=";
+    sha256 = "sha256-6dXYrDpQ3E+z8mcZof7GSXOrUMoceuPTHO21Z8l4Wyw=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/php-packages/xdebug/default.nix b/pkgs/development/php-packages/xdebug/default.nix
index ba582dbb757bd..3d896a4dc490d 100644
--- a/pkgs/development/php-packages/xdebug/default.nix
+++ b/pkgs/development/php-packages/xdebug/default.nix
@@ -3,8 +3,8 @@
 buildPecl {
   pname = "xdebug";
 
-  version = "3.1.3";
-  sha256 = "sha256-N9CmcBlV9bNAbGwye3cCvXwhRi5lbztMziSgUlgBPU4=";
+  version = "3.1.4";
+  sha256 = "sha256-QZWSb59sToAv90m7LKhaxQY2cZpy5TieNy4171I1Bfk=";
 
   doCheck = true;
   checkTarget = "test";
diff --git a/pkgs/development/python-modules/Cython/default.nix b/pkgs/development/python-modules/Cython/default.nix
index e22037cbbb9f2..5ceabe766b867 100644
--- a/pkgs/development/python-modules/Cython/default.nix
+++ b/pkgs/development/python-modules/Cython/default.nix
@@ -25,11 +25,11 @@ let
 
 in buildPythonPackage rec {
   pname = "Cython";
-  version = "0.29.24";
+  version = "0.29.28";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-zfBNB8NgCGDowuuq1Oj1KsP+shJFPBdkpJrAjIJ+hEM=";
+    sha256 = "sha256-1vrCNCgCww5RQmgo/ghP9N6xszhzZ8+Yl2uy5ktvjkU=";
   };
 
   nativeBuildInputs = [
@@ -44,13 +44,6 @@ in buildPythonPackage rec {
   LC_ALL = "en_US.UTF-8";
 
   patches = [
-    # https://github.com/cython/cython/issues/2752, needed by sage (https://trac.sagemath.org/ticket/26855) and up to be included in 0.30
-    (fetchpatch {
-      name = "non-int-conversion-to-pyhash.patch";
-      url = "https://github.com/cython/cython/commit/28251032f86c266065e4976080230481b1a1bb29.patch";
-      sha256 = "19rg7xs8gr90k3ya5c634bs8gww1sxyhdavv07cyd2k71afr83gy";
-    })
-
     # backport Cython 3.0 trashcan support (https://github.com/cython/cython/pull/2842) to 0.X series.
     # it does not affect Python code unless the code explicitly uses the feature.
     # trashcan support is needed to avoid stack overflows during object deallocation in sage (https://trac.sagemath.org/ticket/27267)
diff --git a/pkgs/development/python-modules/Mako/default.nix b/pkgs/development/python-modules/Mako/default.nix
index 4c16861823fdc..d7b350b9f96bf 100644
--- a/pkgs/development/python-modules/Mako/default.nix
+++ b/pkgs/development/python-modules/Mako/default.nix
@@ -1,23 +1,45 @@
 { lib
 , buildPythonPackage
+, pythonOlder
 , fetchPypi
 , isPyPy
+
+# propagates
 , markupsafe
+
+# extras: Babel
+, Babel
+
+# tests
 , mock
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "Mako";
-  version = "1.1.6";
+  version = "1.2.0";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4e9e345a41924a954251b95b4b28e14a301145b544901332e658907a7464b6b2";
+    sha256 = "sha256-mnx+kiuH2zaGIQz0nV12cDOkHUAQsoTnR2gskr3dizk=";
+  };
+
+  propagatedBuildInputs = [
+    markupsafe
+  ];
+
+  passthru.extras-require = {
+    babel = [
+      Babel
+    ];
   };
 
-  propagatedBuildInputs = [ markupsafe ];
-  checkInputs = [ pytestCheckHook markupsafe mock ];
+  checkInputs = [
+    pytestCheckHook
+    mock
+  ] ++ passthru.extras-require.babel;
 
   disabledTests = lib.optionals isPyPy [
     # https://github.com/sqlalchemy/mako/issues/315
@@ -29,6 +51,11 @@ buildPythonPackage rec {
     "test_bytestring_passthru"
   ];
 
+  disabledTestPaths = [
+    # lingua dependency is not packaged
+    "test/ext/test_linguaplugin.py"
+  ];
+
   meta = with lib; {
     description = "Super-fast templating language";
     homepage = "https://www.makotemplates.org/";
diff --git a/pkgs/development/python-modules/Theano/default.nix b/pkgs/development/python-modules/Theano/default.nix
index 480970f04a111..cd4c81056d5a7 100644
--- a/pkgs/development/python-modules/Theano/default.nix
+++ b/pkgs/development/python-modules/Theano/default.nix
@@ -11,10 +11,14 @@
 , setuptools
 , six
 , libgpuarray
-, cudaSupport ? false, cudatoolkit
-, cudnnSupport ? false, cudnn
+, cudaSupport ? false, cudaPackages ? {}
+, cudnnSupport ? false
 }:
 
+let
+  inherit (cudaPackages) cudatoolkit cudnn;
+in
+
 assert cudnnSupport -> cudaSupport;
 
 let
@@ -39,7 +43,9 @@ let
     (    lib.optional cudaSupport libgpuarray_
       ++ lib.optional cudnnSupport cudnn );
 
-  libgpuarray_ = libgpuarray.override { inherit cudaSupport cudatoolkit; };
+  # We need to be careful with overriding Python packages within the package set
+  # as this can lead to collisions!
+  libgpuarray_ = libgpuarray.override { inherit cudaSupport cudaPackages; };
 
 in buildPythonPackage rec {
   pname = "Theano";
diff --git a/pkgs/development/python-modules/XlsxWriter/default.nix b/pkgs/development/python-modules/XlsxWriter/default.nix
index 15bd1ee35fec2..5096f37e3025d 100644
--- a/pkgs/development/python-modules/XlsxWriter/default.nix
+++ b/pkgs/development/python-modules/XlsxWriter/default.nix
@@ -1,24 +1,36 @@
-{lib, buildPythonPackage, fetchFromGitHub}:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+}:
 
 buildPythonPackage rec {
+  pname = "xlsxwriter";
+  version = "3.0.2";
+  format = "setuptools";
 
-  pname = "XlsxWriter";
-  version = "1.2.9";
+  disabled = pythonOlder "3.7";
 
-  # PyPI release tarball doesn't contain tests so let's use GitHub. See:
-  # https://github.com/jmcnamara/XlsxWriter/issues/327
-  src = fetchFromGitHub{
+  src = fetchFromGitHub {
     owner = "jmcnamara";
-    repo = pname;
+    repo = "XlsxWriter";
     rev = "RELEASE_${version}";
-    sha256 = "08pdca5ssi50bx2xz52gkmjix2ybv5i4bjw7yd6yfiph0y0qsbsb";
+    hash = "sha256-I87/8OhMoI9/BRXdmTZ1Ul+d+/x+Kg/9CuqMgTsP8Eo=";
   };
 
-  meta = {
-    description = "A Python module for creating Excel XLSX files";
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "xlsxwriter"
+  ];
+
+  meta = with lib; {
+    description = "Module for creating Excel XLSX files";
     homepage = "https://xlsxwriter.readthedocs.io/";
-    maintainers = with lib.maintainers; [ jluttine ];
-    license = lib.licenses.bsd2;
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ jluttine ];
   };
-
 }
diff --git a/pkgs/development/python-modules/adafruit-io/default.nix b/pkgs/development/python-modules/adafruit-io/default.nix
index 88bdff440c4a7..bd44626f8bcf2 100644
--- a/pkgs/development/python-modules/adafruit-io/default.nix
+++ b/pkgs/development/python-modules/adafruit-io/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "adafruit-io";
-  version = "2.6.0";
+  version = "2.7.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,8 +18,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "adafruit";
     repo = "Adafruit_IO_Python";
-    rev = version;
-    hash = "sha256-tjm+HvUuLK3IxXwuxPidJaBetj+n0BzKOuLj75bM7a8=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-BIquSrhtRv2NEOn/G6TTfYMrL2OBwwJQYZ455fznwdU=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/adafruit-platformdetect/default.nix b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
index 2671c25e59f7d..921c844e27d8d 100644
--- a/pkgs/development/python-modules/adafruit-platformdetect/default.nix
+++ b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "adafruit-platformdetect";
-  version = "3.22.0";
+  version = "3.22.1";
   format = "setuptools";
 
   src = fetchPypi {
     pname = "Adafruit-PlatformDetect";
     inherit version;
-    sha256 = "sha256-XnB6aSTKRV72WjcXx9jPZ+FGmCNh6dvwiau7WDlyE5M=";
+    sha256 = "sha256-fOBs0aPekIvpwbrYxzh1wz7EKGko0Je1f/N5H0DIguw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/adb-shell/default.nix b/pkgs/development/python-modules/adb-shell/default.nix
index 907cf155ea102..792729da1fac9 100644
--- a/pkgs/development/python-modules/adb-shell/default.nix
+++ b/pkgs/development/python-modules/adb-shell/default.nix
@@ -28,18 +28,27 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    aiofiles
     cryptography
-    libusb1
     pyasn1
     rsa
   ];
 
+  passthru.extras-require = {
+    async = [
+      aiofiles
+    ];
+    usb = [
+      libusb1
+    ];
+  };
+
   checkInputs = [
     mock
     pycryptodome
     pytestCheckHook
-  ];
+  ]
+  ++ passthru.extras-require.async
+  ++ passthru.extras-require.usb;
 
   disabledTests = lib.optionals (pythonAtLeast "3.10") [
     # Tests are failing with Python 3.10
diff --git a/pkgs/development/python-modules/adblock/default.nix b/pkgs/development/python-modules/adblock/default.nix
index 941beb5447313..3655c7456e586 100644
--- a/pkgs/development/python-modules/adblock/default.nix
+++ b/pkgs/development/python-modules/adblock/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "adblock";
-  version = "0.5.1";
+  version = "0.5.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -25,14 +25,14 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "ArniDagur";
     repo = "python-adblock";
-    rev = version;
-    sha256 = "sha256-f6PmEHVahQv8t+WOkE8DO2emivHG2t14hUSIf/l8omY=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-6FH+AVK7+Yg1a6oKbFV80TuGGE4Y7I3mMVzwVHdHYO4=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-x0mcykHWhheD2ycELcfR1ZQ/6WfFQzY+L/LmMipP4Rc=";
+    hash = "sha256-JI/C+Woi/dJWUGUum8daecjFWiQgxY6BFYZ5MpTcRvU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/add-trailing-comma/default.nix b/pkgs/development/python-modules/add-trailing-comma/default.nix
index c38a4f0614358..5b0131576cd33 100644
--- a/pkgs/development/python-modules/add-trailing-comma/default.nix
+++ b/pkgs/development/python-modules/add-trailing-comma/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "add-trailing-comma";
-  version = "2.2.1";
+  version = "2.2.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "asottile";
     repo = pname;
     rev = "v${version}";
-    sha256 = "RBOL4mM9VciHHNmCTlRBIoXqeln19MKYxgv9p6GCNvU=";
+    sha256 = "sha256-hJVVRhaElroZ1GVlbGK49gzts2tozLqp9xfoaPdbb3I=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aenum/default.nix b/pkgs/development/python-modules/aenum/default.nix
index a360959a9a73c..8ebed55e1bc7d 100644
--- a/pkgs/development/python-modules/aenum/default.nix
+++ b/pkgs/development/python-modules/aenum/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "aenum";
-  version = "3.1.8";
+  version = "3.1.11";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8dbe15f446eb8264b788dfeca163fb0a043d408d212152397dc11377b851e4ae";
+    sha256 = "sha256-rtLCc1R65yoNXuhpcZwCpkPaFr9QfICVj6rcfgOOP3M=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/aesara/default.nix b/pkgs/development/python-modules/aesara/default.nix
index 3e2e9cb2cf375..58a39422a3a3a 100644
--- a/pkgs/development/python-modules/aesara/default.nix
+++ b/pkgs/development/python-modules/aesara/default.nix
@@ -18,13 +18,13 @@
 
 buildPythonPackage rec {
   pname = "aesara";
-  version = "2.4.0";
+  version = "2.5.3";
 
   src = fetchFromGitHub {
     owner = "aesara-devs";
     repo = "aesara";
-    rev = "38d7a813646c1e350170c46bafade0e7d0e2427c";
-    sha256 = "sha256-933bM15BZi4sTjnIOGAg5dc5tXVWQ9lFzktOtzj5DNQ=";
+    rev = "refs/tags/rel-${version}";
+    sha256 = "sha256-20nc70gNdcGjtGxv2WxmYxmswNH8v7yGLkToP2iazjc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aesedb/default.nix b/pkgs/development/python-modules/aesedb/default.nix
new file mode 100644
index 0000000000000..b6b0dce3c24b3
--- /dev/null
+++ b/pkgs/development/python-modules/aesedb/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, aiowinreg
+, buildPythonPackage
+, colorama
+, fetchPypi
+, pycryptodomex
+, pythonOlder
+, tqdm
+, unicrypto
+}:
+
+buildPythonPackage rec {
+  pname = "aesedb";
+  version = "0.0.5";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-2m4VxqTD9zvUpZ1O8/SBprAzG4vUX4z3LthMpP5Hc8g=";
+  };
+
+  propagatedBuildInputs = [
+    aiowinreg
+    colorama
+    pycryptodomex
+    tqdm
+    unicrypto
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "aesedb"
+  ];
+
+  meta = with lib; {
+    description = "Parser for JET databases";
+    homepage = "https://github.com/skelsec/aesedb";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/afdko/default.nix b/pkgs/development/python-modules/afdko/default.nix
index 66f12ffd54b0b..bbf8d555b5efd 100644
--- a/pkgs/development/python-modules/afdko/default.nix
+++ b/pkgs/development/python-modules/afdko/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "afdko";
-  version = "3.7.1";
+  version = "3.8.1";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "05hj2mw3ppfjaig5zdk5db9vfrbbq5gmv5rzggmvvrj0yyfpr0pd";
+    sha256 = "sha256-BaSpw7TiBymCvoP0/z1zynWKQJH/PjbbGf85ZI9LOZw=";
   };
 
   format = "pyproject";
@@ -40,12 +40,6 @@ buildPythonPackage rec {
 
     # Use antlr4 runtime from nixpkgs and link it dynamically
     ./use-dynamic-system-antlr4-runtime.patch
-
-    # Fix compatibility with latest fonttools.
-    (fetchpatch {
-      url = "https://github.com/adobe-type-tools/afdko/commit/120752c50a562e4f6c12ff4be1e3bd96ed664e82.patch";
-      sha256 = "RDGIpNAuCmK+zqZOeOK7ddCjr9BuqPpcnbnxdtoE48M=";
-    })
   ];
 
   # setup.py will always (re-)execute cmake in buildPhase
@@ -91,6 +85,8 @@ buildPythonPackage rec {
     # aarch64-only (?) failure, unknown reason so far
     # https://github.com/adobe-type-tools/afdko/issues/1425
     "test_spec"
+  ] ++ lib.optionals (stdenv.hostPlatform.isi686) [
+    "test_type1mm_inputs"
   ];
 
   passthru.tests = {
diff --git a/pkgs/development/python-modules/afsapi/default.nix b/pkgs/development/python-modules/afsapi/default.nix
index 4bc3532f5b572..864d0caba3959 100644
--- a/pkgs/development/python-modules/afsapi/default.nix
+++ b/pkgs/development/python-modules/afsapi/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "afsapi";
-  version = "0.2.2";
+  version = "0.2.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "wlcrs";
     repo = "python-afsapi";
     rev = version;
-    hash = "sha256-C4rxlkylWGsDsnMPuecrC2ELj1PvP6EelZ/kzTn4Brk=";
+    hash = "sha256-6nmj15jCGBRkT7Ip/VGHX5IrAbhu1LUlvXuvFhvXknY=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/ailment/default.nix b/pkgs/development/python-modules/ailment/default.nix
index ef606a027d06c..9f6828fd63292 100644
--- a/pkgs/development/python-modules/ailment/default.nix
+++ b/pkgs/development/python-modules/ailment/default.nix
@@ -7,8 +7,8 @@
 
 buildPythonPackage rec {
   pname = "ailment";
-  version = "9.1.12332";
-  format = "setuptools";
+  version = "9.2.1";
+  format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-qWKvNhiOAonUi0qpOWtwbNZa2lgBQ+gaGrAHMgDdr4Q=";
+    hash = "sha256-F0t4vVxi4KUUtIZc8FJD9+2qf1XA58haFfjmHwAQaWA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aio-geojson-generic-client/default.nix b/pkgs/development/python-modules/aio-geojson-generic-client/default.nix
new file mode 100644
index 0000000000000..df13e8d7519a1
--- /dev/null
+++ b/pkgs/development/python-modules/aio-geojson-generic-client/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, aiohttp
+, aresponses
+, asynctest
+, buildPythonPackage
+, aio-geojson-client
+, fetchFromGitHub
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, pytz
+}:
+
+buildPythonPackage rec {
+  pname = "aio-geojson-generic-client";
+  version = "0.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "exxamalte";
+    repo = "python-aio-geojson-generic-client";
+    rev = "v${version}";
+    hash = "sha256-6Gc3SRRQiISBZnCg7a+rCQHR4NQipBHmG5gWZZXIsxY=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    aio-geojson-client
+    pytz
+  ];
+
+  checkInputs = [
+    aresponses
+    asynctest
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "aio_geojson_generic_client"
+  ];
+
+  meta = with lib; {
+    description = "Python library for accessing GeoJSON feeds";
+    homepage = "https://github.com/exxamalte/python-aio-geojson-generic-client";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/aio-georss-client/default.nix b/pkgs/development/python-modules/aio-georss-client/default.nix
index 586cc6b74a827..f62c8b1bcfb7c 100644
--- a/pkgs/development/python-modules/aio-georss-client/default.nix
+++ b/pkgs/development/python-modules/aio-georss-client/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "aio-georss-client";
-  version = "0.9";
+  version = "0.10";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "exxamalte";
     repo = "python-aio-georss-client";
     rev = "v${version}";
-    sha256 = "sha256-cnOW9Ey6WdL2bAqPop5noETn12OeeKsMkWHKGmYCjJU=";
+    sha256 = "sha256-g/BlRRBImJihVlAfSMsPIPV0GJns0/pStF8TKSxpDI4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aio-georss-gdacs/default.nix b/pkgs/development/python-modules/aio-georss-gdacs/default.nix
index b33e2e35ee1c8..96e105fab213d 100644
--- a/pkgs/development/python-modules/aio-georss-gdacs/default.nix
+++ b/pkgs/development/python-modules/aio-georss-gdacs/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "aio-georss-gdacs";
-  version = "0.6";
+  version = "0.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "exxamalte";
     repo = "python-aio-georss-gdacs";
     rev = "v${version}";
-    sha256 = "sha256-sUHVmueu70ZnXP8KoJ2mDzzEedzXYHM2yeGC4oVsZZU=";
+    sha256 = "sha256-6z0l0PcFTQgOBj8cBgBMPJIqWG53u7h4WbYkBqU4FNE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aioairzone/default.nix b/pkgs/development/python-modules/aioairzone/default.nix
index b7f415d0cf1f9..fc62525915e91 100644
--- a/pkgs/development/python-modules/aioairzone/default.nix
+++ b/pkgs/development/python-modules/aioairzone/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "aioairzone";
-  version = "0.3.2";
+  version = "0.3.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -15,8 +15,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "Noltari";
     repo = pname;
-    rev = version;
-    hash = "sha256-NDw2vqnOOeFpgvU9//1WIA0hI9zY7TkiquU6DJ70b5E=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-ENdgaG30Fll5HQOTcghkmqOAiMYEY1aHRIel4Bd25Pk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aiobotocore/default.nix b/pkgs/development/python-modules/aiobotocore/default.nix
index 01066c127be58..df800eb475521 100644
--- a/pkgs/development/python-modules/aiobotocore/default.nix
+++ b/pkgs/development/python-modules/aiobotocore/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "aiobotocore";
-  version = "2.1.2";
+  version = "2.2.0";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-AP1/Q8wEhNjtJ0/QvkkqoWp/6medvqlqYCu3IspMLSI=";
+    sha256 = "sha256-cTV5OcMCJnDXu5SDMZQUekTr/OJLFkPk5E/twe5zSbo=";
   };
 
   # relax version constraints: aiobotocore works with newer botocore versions
diff --git a/pkgs/development/python-modules/aioconsole/default.nix b/pkgs/development/python-modules/aioconsole/default.nix
index c88f848593911..b178913c0f593 100644
--- a/pkgs/development/python-modules/aioconsole/default.nix
+++ b/pkgs/development/python-modules/aioconsole/default.nix
@@ -40,6 +40,8 @@ buildPythonPackage rec {
 
   disabledTests = [
     "test_interact_syntax_error"
+    # Output and the sandbox don't work well together
+    "test_interact_multiple_indented_lines"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/aiodiscover/default.nix b/pkgs/development/python-modules/aiodiscover/default.nix
index dbc684281fb4b..d8fb5c6b38b62 100644
--- a/pkgs/development/python-modules/aiodiscover/default.nix
+++ b/pkgs/development/python-modules/aiodiscover/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "aiodiscover";
-  version = "1.4.8";
+  version = "1.4.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "bdraco";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ts3PnL1ePWJHHaLuC0eQKqBOt+HeEeAayeVBAIhnUWs=";
+    sha256 = "sha256-s5g8otQSWTAOkN4q1LrM/FxVlOnGSv8XKtIDkdwcHMg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aioftp/default.nix b/pkgs/development/python-modules/aioftp/default.nix
index fab3a32a6a0ec..4ef05d27d9910 100644
--- a/pkgs/development/python-modules/aioftp/default.nix
+++ b/pkgs/development/python-modules/aioftp/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "aioftp";
-  version = "0.20.0";
+  version = "0.21.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-N8qiKsWPaFT/t5p1eSHS0BydoXv4AL6y8gP4z4P9fsE=";
+    sha256 = "sha256-JWzeBdCPXLYMmKkvCqQQF/mHoRbdRvj0vKVF4+D8LSI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aioguardian/default.nix b/pkgs/development/python-modules/aioguardian/default.nix
index baf84ad89f42b..ed902288d0f24 100644
--- a/pkgs/development/python-modules/aioguardian/default.nix
+++ b/pkgs/development/python-modules/aioguardian/default.nix
@@ -15,13 +15,13 @@
 
 buildPythonPackage rec {
   pname = "aioguardian";
-  version = "2022.03.1";
+  version = "2022.03.2";
 
   src = fetchFromGitHub {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "sha256-UiRTyUAoTcohRkTBF5Jvd/uY2zAbHV5z4HC8Oc0QNTs=";
+    sha256 = "sha256-eEvvcj8tHNErU6RrWar5mxG3xbQ5wCEEYJ95hXkdY54=";
   };
 
   format = "pyproject";
diff --git a/pkgs/development/python-modules/aioh2/default.nix b/pkgs/development/python-modules/aioh2/default.nix
deleted file mode 100644
index 1ae997c60e8c6..0000000000000
--- a/pkgs/development/python-modules/aioh2/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ lib, buildPythonPackage, isPy3k, fetchPypi, h2, priority }:
-
-buildPythonPackage rec {
-  pname = "aioh2";
-  version = "0.2.2";
-  disabled = !isPy3k;
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "03i24wzpw0mrnrpck3w6qy83iigwl7n99sdrndqzxfyrc69b99wd";
-  };
-
-  propagatedBuildInputs = [ h2 priority ];
-
-  doCheck = false; # https://github.com/decentfox/aioh2/issues/17
-
-  meta = with lib; {
-    homepage = "https://github.com/decentfox/aioh2";
-    description = "HTTP/2 implementation with hyper-h2 on Python 3 asyncio";
-    license = licenses.bsd3;
-    maintainers = [ maintainers.qyliss ];
-    broken = true; # requires h2<4
-  };
-}
diff --git a/pkgs/development/python-modules/aiohomekit/default.nix b/pkgs/development/python-modules/aiohomekit/default.nix
index b1938c88aa90c..66f028cf1df7e 100644
--- a/pkgs/development/python-modules/aiohomekit/default.nix
+++ b/pkgs/development/python-modules/aiohomekit/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "aiohomekit";
-  version = "0.7.16";
+  version = "0.7.17";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -20,8 +20,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "Jc2k";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-dakxPhnI1m6KiOj6oQkfQ0UVA7NEBTHFGYnF6L6c8Ck=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-vgRiqA3xNvuw3nIzl45RXdmcbDW6OTxvReSH5SVcNEs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aiohttp-remotes/default.nix b/pkgs/development/python-modules/aiohttp-remotes/default.nix
index be33becb26c29..4b150b9edeaea 100644
--- a/pkgs/development/python-modules/aiohttp-remotes/default.nix
+++ b/pkgs/development/python-modules/aiohttp-remotes/default.nix
@@ -41,6 +41,12 @@ buildPythonPackage rec {
     "aiohttp_remotes"
   ];
 
+  pytestFlagsArray = [
+    "-W"
+    "ignore::DeprecationWarning"
+    "--asyncio-mode=auto"
+  ];
+
   meta = with lib; {
     description = "Set of useful tools for aiohttp.web server";
     homepage = "https://github.com/wikibusiness/aiohttp-remotes";
diff --git a/pkgs/development/python-modules/aiohttp-swagger/default.nix b/pkgs/development/python-modules/aiohttp-swagger/default.nix
index 501c70e3ee477..a8e3499ee5844 100644
--- a/pkgs/development/python-modules/aiohttp-swagger/default.nix
+++ b/pkgs/development/python-modules/aiohttp-swagger/default.nix
@@ -13,6 +13,7 @@
 buildPythonPackage rec {
   pname = "aiohttp-swagger";
   version = "1.0.15";
+  format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
@@ -20,7 +21,7 @@ buildPythonPackage rec {
     owner = "cr0hn";
     repo = pname;
     rev = version;
-    sha256 = "sha256-M43sNpbXWXFRTd549cZhvhO35nBB6OH+ki36BzSk87Q=";
+    hash = "sha256-M43sNpbXWXFRTd549cZhvhO35nBB6OH+ki36BzSk87Q=";
   };
 
   propagatedBuildInputs = [
@@ -41,7 +42,14 @@ buildPythonPackage rec {
       --replace "jinja2~=2.11.2" "jinja2>=2.11.2"
   '';
 
-  pythonImportsCheck = [ "aiohttp_swagger" ];
+  preCheck = ''
+    # The custom client is obsolete
+    rm tests/conftest.py
+  '';
+
+  pythonImportsCheck = [
+    "aiohttp_swagger"
+  ];
 
   meta = with lib; {
     description = "Swagger API Documentation builder for aiohttp";
diff --git a/pkgs/development/python-modules/aiohttp/default.nix b/pkgs/development/python-modules/aiohttp/default.nix
index f6d9b5d97ec72..660e205fb482b 100644
--- a/pkgs/development/python-modules/aiohttp/default.nix
+++ b/pkgs/development/python-modules/aiohttp/default.nix
@@ -75,6 +75,10 @@ buildPythonPackage rec {
     "test_client_session_timeout_zero"
     "test_mark_formdata_as_processed"
     "test_requote_redirect_url_default"
+    # Disable tests that trigger deprecation warnings in pytest
+    "test_async_with_session"
+    "test_session_close_awaitable"
+    "test_close_run_until_complete_not_deprecated"
   ] ++ lib.optionals stdenv.is32bit [
     "test_cookiejar"
   ] ++ lib.optionals stdenv.isDarwin [
diff --git a/pkgs/development/python-modules/aiolifx/default.nix b/pkgs/development/python-modules/aiolifx/default.nix
index 2cc04130c6710..1ce640179a134 100644
--- a/pkgs/development/python-modules/aiolifx/default.nix
+++ b/pkgs/development/python-modules/aiolifx/default.nix
@@ -8,13 +8,14 @@
 
 buildPythonPackage rec {
   pname = "aiolifx";
-  version = "0.7.1";
+  version = "0.8.0";
+  format = "setuptools";
 
-  disabled = pythonOlder "3.4";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ktXnAgrxfDELfMQATcWHn/u6C4bKQii+mbT4mA54coo=";
+    hash = "sha256-7XwtTALfEFAI2Rl3JcVcncIZBTFNuXyyclpJj5jHyEU=";
   };
 
   propagatedBuildInputs = [
@@ -25,10 +26,12 @@ buildPythonPackage rec {
   # tests are not implemented
   doCheck = false;
 
-  pythonImportsCheck = [ "aiolifx" ];
+  pythonImportsCheck = [
+    "aiolifx"
+  ];
 
   meta = with lib; {
-    description = "API for local communication with LIFX devices over a LAN";
+    description = "Module for local communication with LIFX devices over a LAN";
     homepage = "https://github.com/frawau/aiolifx";
     license = licenses.mit;
     maintainers = with maintainers; [ netixx ];
diff --git a/pkgs/development/python-modules/aionotify/default.nix b/pkgs/development/python-modules/aionotify/default.nix
index e653f4cca74eb..13ae51d25227f 100644
--- a/pkgs/development/python-modules/aionotify/default.nix
+++ b/pkgs/development/python-modules/aionotify/default.nix
@@ -18,6 +18,11 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.5";
 
+  preCheck = ''
+    substituteInPlace tests/test_usage.py \
+      --replace "asyncio.wait_for(task, timeout, loop=self.loop)" "asyncio.wait_for(task, timeout)"
+  '';
+
   checkInputs = [
     asynctest
   ];
diff --git a/pkgs/development/python-modules/aioqsw/default.nix b/pkgs/development/python-modules/aioqsw/default.nix
new file mode 100644
index 0000000000000..91dac94f20d2d
--- /dev/null
+++ b/pkgs/development/python-modules/aioqsw/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "aioqsw";
+  version = "0.0.5";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "Noltari";
+    repo = pname;
+    rev = version;
+    hash = "sha256-2MuJrWrjcRkdeVkKfv/nUVfHyBtKKsq1sC5ISSEtyEE=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "aioqsw"
+  ];
+
+  meta = with lib; {
+    description = "Library to fetch data from QNAP QSW switches";
+    homepage = "https://github.com/Noltari/aioqsw";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/aioshelly/default.nix b/pkgs/development/python-modules/aioshelly/default.nix
index d6f2c12890811..6c6ba7e93ec66 100644
--- a/pkgs/development/python-modules/aioshelly/default.nix
+++ b/pkgs/development/python-modules/aioshelly/default.nix
@@ -8,16 +8,16 @@
 
 buildPythonPackage rec {
   pname = "aioshelly";
-  version = "1.0.11";
+  version = "2.0.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "home-assistant-libs";
     repo = pname;
     rev = version;
-    hash = "sha256-N+8vmB41AUu4aTUTBYX6SPVsW1PARaq5mCOdhg9h0/g=";
+    hash = "sha256-1bIlK/5UoGq6xTjcpkAkHPBlM+ifZhnbWzGbPRdFGkU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aioswitcher/default.nix b/pkgs/development/python-modules/aioswitcher/default.nix
index d42f242438b38..68cc3150d9f69 100644
--- a/pkgs/development/python-modules/aioswitcher/default.nix
+++ b/pkgs/development/python-modules/aioswitcher/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "aioswitcher";
-  version = "2.0.8";
+  version = "2.0.9";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "TomerFi";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-4+XGSaHZNYjId0bTOwCkYpb1K/pM8WtN5/NI+GVaI7M=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-vsMQG664ySMQfdl4tGJKMY0MZXVl39QaFxu7kMtZWCM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aiotractive/default.nix b/pkgs/development/python-modules/aiotractive/default.nix
index b7790751a5898..f864dd35f1a8e 100644
--- a/pkgs/development/python-modules/aiotractive/default.nix
+++ b/pkgs/development/python-modules/aiotractive/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "aiotractive";
-  version = "0.5.3";
+  version = "0.5.4";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "zhulik";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1rkylzbxxy3p744q1iqcvpnkn12ra6ja16vhqzidn702n4h5377j";
+    sha256 = "sha256-pcGUl8mq1O1QY5EPkNhWRLCKDn2FWAF9XymXkUXWEUk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/alembic/default.nix b/pkgs/development/python-modules/alembic/default.nix
index 18698a0d68f26..ea8f4d4d1318a 100644
--- a/pkgs/development/python-modules/alembic/default.nix
+++ b/pkgs/development/python-modules/alembic/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "alembic";
-  version = "1.7.5";
+  version = "1.7.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-fDKGlKLmjwPulx5jw72IWEZHA3OltTLPLJ8WAcQTsVM=";
+    sha256 = "sha256-SWEkgXPq186KIe+z3jePE7g5jmYw+rDrJY3HSoryTFg=";
   };
 
   propagatedBuildInputs = [
@@ -42,10 +42,6 @@ buildPythonPackage rec {
     pytest-xdist
   ];
 
-  pytestFlagsArray = [
-    "--numprocesses" "$NIX_BUILD_CORES"
-  ];
-
   meta = with lib; {
     homepage = "https://bitbucket.org/zzzeek/alembic";
     description = "A database migration tool for SQLAlchemy";
diff --git a/pkgs/development/python-modules/amberelectric/default.nix b/pkgs/development/python-modules/amberelectric/default.nix
index cd49848614323..667e5fff5e19b 100644
--- a/pkgs/development/python-modules/amberelectric/default.nix
+++ b/pkgs/development/python-modules/amberelectric/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "amberelectric";
-  version = "1.0.3";
+  version = "1.0.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1hsbk2v7j1nsa083j28jb7b3rv76flan0g9wav97qccp1gjds5b0";
+    sha256 = "sha256-5SWJnTxRm6mzP0RxrgA+jnV+Gp23WjqQA57wbT2V9Dk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/amply/default.nix b/pkgs/development/python-modules/amply/default.nix
index 35aa3ecb4d3a6..5a26e341958bd 100644
--- a/pkgs/development/python-modules/amply/default.nix
+++ b/pkgs/development/python-modules/amply/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "amply";
-  version = "0.1.4";
+  version = "0.1.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cb12dcb49d16b168c02be128a1527ecde50211e4bd94af76ff4e67707f5a2d38";
+    sha256 = "sha256-rXF7SQtrcFWQn6oZXoKkQytwb4+VhUBQFy9Ckx5HhCY=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/amqp/default.nix b/pkgs/development/python-modules/amqp/default.nix
index c23c1d012da44..d226192164d0d 100644
--- a/pkgs/development/python-modules/amqp/default.nix
+++ b/pkgs/development/python-modules/amqp/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "amqp";
-  version = "5.0.9";
+  version = "5.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Hl9wdCTlRAeMoZbnKuahSIfOdOAr0Sa+VLfAPJcb7xg=";
+    hash = "sha256-RGs+io68LOr9Qk/8qrHDU4MNSBYSVleO16ZUSOYB6+0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/androidtv/default.nix b/pkgs/development/python-modules/androidtv/default.nix
index 2ea8dc5bad5bb..f116cef3dc759 100644
--- a/pkgs/development/python-modules/androidtv/default.nix
+++ b/pkgs/development/python-modules/androidtv/default.nix
@@ -25,14 +25,22 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     adb-shell
-    aiofiles
     pure-python-adb
   ];
 
+  passthru.extras-require = {
+    async = [
+      aiofiles
+    ];
+    inherit (adb-shell.extras-require) usb;
+  };
+
   checkInputs = [
     mock
     pytestCheckHook
-  ];
+  ]
+  ++ passthru.extras-require.async
+  ++ passthru.extras-require.usb;
 
   disabledTests = [
     # Requires git but fails anyway
diff --git a/pkgs/development/python-modules/angr/default.nix b/pkgs/development/python-modules/angr/default.nix
index 1881da62f5065..31629eab9d674 100644
--- a/pkgs/development/python-modules/angr/default.nix
+++ b/pkgs/development/python-modules/angr/default.nix
@@ -46,8 +46,8 @@ in
 
 buildPythonPackage rec {
   pname = "angr";
-  version = "9.1.12332";
-  format = "setuptools";
+  version = "9.2.1";
+  format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
@@ -55,7 +55,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-GaW1XyFOnjU28HqptFC6+Fe41zYZMR716Nsq0dPy660=";
+    hash = "sha256-7t4NV1udBq3tK7czuKYUsQ+9tLahFM8DlUUBT3d6bco=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/angrop/default.nix b/pkgs/development/python-modules/angrop/default.nix
index 8164190cd49c0..d32441a989c6a 100644
--- a/pkgs/development/python-modules/angrop/default.nix
+++ b/pkgs/development/python-modules/angrop/default.nix
@@ -9,8 +9,8 @@
 
 buildPythonPackage rec {
   pname = "angrop";
-  version = "9.1.12332";
-  format = "setuptools";
+  version = "9.2.1";
+  format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-lhwlZ7eHaEMaTW7c+WCRSeGSIQ5IeEx6XALyYJH+Ey0=";
+    hash = "sha256-VhlsRd5IN8zF6aUU5Ji/ULkdecOpR+egU3vhYpi+KL8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ansi/default.nix b/pkgs/development/python-modules/ansi/default.nix
index d198fde80bb82..5847e3ad0f9e8 100644
--- a/pkgs/development/python-modules/ansi/default.nix
+++ b/pkgs/development/python-modules/ansi/default.nix
@@ -1,17 +1,29 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "ansi";
-  version = "0.2.0";
+  version = "0.3.6";
+  format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "98e9b27c4bb187867a69480cbc63b843331622fec7e7d090873d806e1b5d8a80";
+  src = fetchFromGitHub {
+    owner = "tehmaze";
+    repo = pname;
+    rev = "${pname}-${version}";
+    hash = "sha256-2gu2Dba3LOjMhbCCZrBqzlOor5KqDYThhe8OP8J3O2M=";
   };
 
-  checkPhase = ''
-    python -c "import ansi.color"
-  '';
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "ansi.colour"
+    "ansi.color"
+  ];
 
   meta = with lib; {
     description = "ANSI cursor movement and graphics";
diff --git a/pkgs/development/python-modules/ansi2html/default.nix b/pkgs/development/python-modules/ansi2html/default.nix
index 50188fe0e4a3a..1f45968974cb7 100644
--- a/pkgs/development/python-modules/ansi2html/default.nix
+++ b/pkgs/development/python-modules/ansi2html/default.nix
@@ -2,13 +2,14 @@
 
 buildPythonPackage rec {
   pname = "ansi2html";
-  version = "1.6.0";
+  version = "1.7.0";
+  format = "pyproject";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0f124ea7efcf3f24f1f9398e527e688c9ae6eab26b0b84e1299ef7f94d92c596";
+    sha256 = "sha256-aTFr6MaKyRxVgtOXwokOacmTzHzaUgYqx+Rfy2YNjtw=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/ansible-compat/default.nix b/pkgs/development/python-modules/ansible-compat/default.nix
index 97766cdd3aa0f..743ebab42f1e8 100644
--- a/pkgs/development/python-modules/ansible-compat/default.nix
+++ b/pkgs/development/python-modules/ansible-compat/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, ansible
+, ansible-core
 , flaky
 , pytest-mock
 , pytestCheckHook
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   '';
 
   checkInputs = [
-    ansible
+    ansible-core
     flaky
     pytest-mock
     pytestCheckHook
diff --git a/pkgs/development/python-modules/ansible-doctor/default.nix b/pkgs/development/python-modules/ansible-doctor/default.nix
index 4792712f41e94..a56b9690bec24 100644
--- a/pkgs/development/python-modules/ansible-doctor/default.nix
+++ b/pkgs/development/python-modules/ansible-doctor/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , fetchFromGitHub
-, lib
+, pythonOlder
 
 # pythonPackages
 , anyconfig
@@ -18,14 +19,16 @@
 
 buildPythonPackage rec {
   pname = "ansible-doctor";
-  version = "1.2.1";
+  version = "1.2.4";
   format = "pyproject";
 
+  disabled = pythonOlder "3.7";
+
   src = fetchFromGitHub {
     owner = "thegeeklab";
     repo = "ansible-doctor";
     rev = "v${version}";
-    sha256 = "sha256-2Jaf7asU4c7kw9v9dUYDL4/M2Y/2qhMM3m0jqYiobUI=";
+    hash = "sha256-e0FmV4U96TSC/dYJlgo5AeLdXQ7Z7rrP4JCtBxJdkhU=";
   };
 
   postInstall = ''
@@ -34,6 +37,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
+      --replace 'anyconfig = "0.13.0"' 'anyconfig = "*"' \
       --replace 'environs = "9.5.0"' 'environs = "*"' \
       --replace 'jsonschema = "4.4.0"' 'jsonschema = "*"' \
       --replace '"ruamel.yaml" = "0.17.21"' '"ruamel.yaml" = "*"'
@@ -58,7 +62,10 @@ buildPythonPackage rec {
 
   # no tests
   doCheck = false;
-  pythonImportsCheck = [ "ansibledoctor" ];
+
+  pythonImportsCheck = [
+    "ansibledoctor"
+  ];
 
   meta = with lib; {
     description = "Annotation based documentation for your Ansible roles";
diff --git a/pkgs/development/python-modules/ansible-later/default.nix b/pkgs/development/python-modules/ansible-later/default.nix
index 43f24bfbf0a46..e8f40a109ab87 100644
--- a/pkgs/development/python-modules/ansible-later/default.nix
+++ b/pkgs/development/python-modules/ansible-later/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "ansible-later";
-  version = "2.0.9";
+  version = "2.0.11";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -29,8 +29,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "thegeeklab";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-g7/RClQB+6HsDbe/VjjKka97LcwRTKO0OD0RlCG9lWY=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-K4GResTKKWXQ0OHpBwqTLnptQ8ipuQ9iaGZDlPqRUaI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/ansible-lint/default.nix b/pkgs/development/python-modules/ansible-lint/default.nix
index 503247580fb44..37538088b226c 100644
--- a/pkgs/development/python-modules/ansible-lint/default.nix
+++ b/pkgs/development/python-modules/ansible-lint/default.nix
@@ -57,10 +57,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "--numprocesses" "$NIX_BUILD_CORES"
-  ];
-
   preCheck = ''
     # ansible wants to write to $HOME and crashes if it can't
     export HOME=$(mktemp -d)
diff --git a/pkgs/development/python-modules/ansible-runner/default.nix b/pkgs/development/python-modules/ansible-runner/default.nix
index 0083362c753b5..ded3205f47b6d 100644
--- a/pkgs/development/python-modules/ansible-runner/default.nix
+++ b/pkgs/development/python-modules/ansible-runner/default.nix
@@ -1,10 +1,11 @@
 { lib
 , stdenv
-, ansible
+, ansible-core
 , buildPythonPackage
 , fetchPypi
 , mock
 , openssh
+, pbr
 , pexpect
 , psutil
 , pytest-mock
@@ -26,8 +27,12 @@ buildPythonPackage rec {
     hash = "sha256-2m5dD+gGDL5LnY7QbDYiGdu4GYu0C49WU29GZY2bnBo=";
   };
 
+  nativeBuildInputs = [
+    pbr
+  ];
+
   propagatedBuildInputs = [
-    ansible
+    ansible-core
     psutil
     pexpect
     python-daemon
@@ -36,7 +41,7 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    ansible # required to place ansible CLI onto the PATH in tests
+    ansible-core # required to place ansible CLI onto the PATH in tests
     pytestCheckHook
     pytest-mock
     pytest-timeout
diff --git a/pkgs/development/python-modules/ansible/base.nix b/pkgs/development/python-modules/ansible/base.nix
deleted file mode 100644
index 173e620703a42..0000000000000
--- a/pkgs/development/python-modules/ansible/base.nix
+++ /dev/null
@@ -1,88 +0,0 @@
-{ lib
-, callPackage
-, buildPythonPackage
-, fetchPypi
-, installShellFiles
-, cryptography
-, jinja2
-, junit-xml
-, lxml
-, ncclient
-, packaging
-, paramiko
-, pexpect
-, psutil
-, pycrypto
-, pyyaml
-, requests
-, scp
-, windowsSupport ? false, pywinrm
-, xmltodict
-}:
-
-let
-  ansible-collections = callPackage ./collections.nix {
-    version = "3.4.0"; # must be < 4.0
-    sha256 = "096rbgz730njk0pg8qnc27mmz110wqrw354ca9gasb7rqg0f4d6a";
-  };
-in
-buildPythonPackage rec {
-  pname = "ansible-base";
-  version = "2.10.17";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-75JYgsqNTDwszQkc3hmeDIaQJMytDQejN9zyB7/zLzQ=";
-  };
-
-  # ansible_connection is already wrapped, so don't pass it through
-  # the python interpreter again, as it would break execution of
-  # connection plugins.
-  postPatch = ''
-    substituteInPlace lib/ansible/executor/task_executor.py \
-      --replace "[python," "["
-  '';
-
-  nativeBuildInputs = [
-    installShellFiles
-  ];
-
-  propagatedBuildInputs = [
-    # depend on ansible-collections instead of the other way around
-    ansible-collections
-    # from requirements.txt
-    cryptography
-    jinja2
-    packaging
-    pyyaml
-    # optional dependencies
-    junit-xml
-    lxml
-    ncclient
-    paramiko
-    pexpect
-    psutil
-    pycrypto
-    requests
-    scp
-    xmltodict
-  ] ++ lib.optional windowsSupport pywinrm;
-
-  postInstall = ''
-    installManPage docs/man/man1/*.1
-  '';
-
-  # internal import errors, missing dependencies
-  doCheck = false;
-
-  passthru = {
-    collections = ansible-collections;
-  };
-
-  meta = with lib; {
-    description = "Radically simple IT automation";
-    homepage = "https://www.ansible.com";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ hexa ];
-  };
-}
diff --git a/pkgs/development/python-modules/ansible/core.nix b/pkgs/development/python-modules/ansible/core.nix
index fc242ccd10ace..49ae39feba7b9 100644
--- a/pkgs/development/python-modules/ansible/core.nix
+++ b/pkgs/development/python-modules/ansible/core.nix
@@ -3,6 +3,7 @@
 , buildPythonPackage
 , fetchPypi
 , installShellFiles
+, ansible
 , cryptography
 , jinja2
 , junit-xml
@@ -21,19 +22,13 @@
 , xmltodict
 }:
 
-let
-  ansible-collections = callPackage ./collections.nix {
-    version = "5.5.0";
-    sha256 = "sha256-uKdtc3iJyb/Q5rDyJ23PjYNtpmcGejVXdvNQTXpm1Rg=";
-  };
-in
 buildPythonPackage rec {
   pname = "ansible-core";
-  version = "2.12.3";
+  version = "2.12.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ihNan3TJfKtndZKTdErTQ1D3GVI+i9m7kAjfTPlTryA=";
+    sha256 = "sha256-HMyZRPEBMxra0e1A1axmqBSRMwUq402wJnp0qnO+67M=";
   };
 
   # ansible_connection is already wrapped, so don't pass it through
@@ -49,8 +44,8 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    # depend on ansible-collections instead of the other way around
-    ansible-collections
+    # depend on ansible instead of the other way around
+    ansible
     # from requirements.txt
     cryptography
     jinja2
@@ -77,10 +72,6 @@ buildPythonPackage rec {
   # internal import errors, missing dependencies
   doCheck = false;
 
-  passthru = {
-    collections = ansible-collections;
-  };
-
   meta = with lib; {
     description = "Radically simple IT automation";
     homepage = "https://www.ansible.com";
diff --git a/pkgs/development/python-modules/ansible/collections.nix b/pkgs/development/python-modules/ansible/default.nix
index 427e76a979cbf..1d2bb9505a27e 100644
--- a/pkgs/development/python-modules/ansible/collections.nix
+++ b/pkgs/development/python-modules/ansible/default.nix
@@ -1,4 +1,5 @@
 { lib
+, pythonOlder
 , buildPythonPackage
 , fetchPypi
 , jsonschema
@@ -11,25 +12,30 @@
 , textfsm
 , ttp
 , xmltodict
+
+# optionals
 , withJunos ? false
 , withNetbox ? false
-
-, version
-, sha256
 }:
 
-buildPythonPackage rec {
+let
   pname = "ansible";
-  inherit version;
+  version = "5.6.0";
+in
+buildPythonPackage {
+  inherit pname version;
   format = "setuptools";
 
+  disabled = pythonOlder "3.8";
+
   src = fetchPypi {
-    inherit pname version sha256;
+    inherit pname version;
+    sha256 = "sha256-rNMHMUNBVNo3bO7rQW7hVBzfuOo8ZIAjpVo0yz7K+fM=";
   };
 
   postPatch = ''
-    # make ansible-base depend on ansible-collection, not the other way around
-    sed -Ei '/ansible-(base|core)/d' setup.py
+    # we make ansible-core depend on ansible, not the other way around
+    sed -Ei '/ansible-core/d' setup.py
   '';
 
   propagatedBuildInputs = lib.unique ([
diff --git a/pkgs/development/python-modules/ansible/legacy.nix b/pkgs/development/python-modules/ansible/legacy.nix
deleted file mode 100644
index 50662b43f32c0..0000000000000
--- a/pkgs/development/python-modules/ansible/legacy.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pycrypto
-, paramiko
-, jinja2
-, pyyaml
-, httplib2
-, six
-, netaddr
-, dnspython
-, jmespath
-, dopy
-, ncclient
-, windowsSupport ? false
-, pywinrm
-}:
-
-buildPythonPackage rec {
-  pname = "ansible";
-  version = "2.9.27";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-R5FZ5Qs72Qkg0GvFlBDDpR0/m+m04QKeEdHkotBwVzY=";
-  };
-
-  prePatch = ''
-    # ansible-connection is wrapped, so make sure it's not passed
-    # through the python interpreter.
-    sed -i "s/\[python, /[/" lib/ansible/executor/task_executor.py
-  '';
-
-  postInstall = ''
-    for m in docs/man/man1/*; do
-      install -vD $m -t $out/share/man/man1
-    done
-  '';
-
-  propagatedBuildInputs = [
-    pycrypto paramiko jinja2 pyyaml httplib2
-    six netaddr dnspython jmespath dopy ncclient
-  ] ++ lib.optional windowsSupport pywinrm;
-
-  # dificult to test
-  doCheck = false;
-
-  meta = with lib; {
-    homepage = "https://www.ansible.com";
-    description = "Radically simple IT automation";
-    license = [ licenses.gpl3 ] ;
-    maintainers = with maintainers; [ joamaki costrouc hexa ];
-    platforms = platforms.linux ++ platforms.darwin;
-  };
-}
diff --git a/pkgs/development/python-modules/anybadge/default.nix b/pkgs/development/python-modules/anybadge/default.nix
index bc776e42f07b4..49be7afaac7a2 100644
--- a/pkgs/development/python-modules/anybadge/default.nix
+++ b/pkgs/development/python-modules/anybadge/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "anybadge";
-  version = "1.8.0";
+  version = "1.9.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "jongracecox";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-xKHIoV/8qsNMcU5fd92Jjh7d7jTeYN5xakMEjR6qPX8=";
+    sha256 = "sha256-9C1oPZcXjrGwvkx20E+xPGje+ATD9HwOCWWn/pg+98Q=";
   };
 
   # setup.py reads its version from the TRAVIS_TAG environment variable
diff --git a/pkgs/development/python-modules/anyconfig/default.nix b/pkgs/development/python-modules/anyconfig/default.nix
index 3e0e347bbfa3d..17794d5c8c46c 100644
--- a/pkgs/development/python-modules/anyconfig/default.nix
+++ b/pkgs/development/python-modules/anyconfig/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "anyconfig";
-  version = "0.12.0";
+  version = "0.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-MJHXZ1dAaG+t6FdVU38qfGzO+oZZxbtWF04C3tdLltU=";
+    sha256 = "sha256-A/8uF2KvOI+7vtHBq3+fHsAGqR2n2zpouWPabneV0qw=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/anyio/default.nix b/pkgs/development/python-modules/anyio/default.nix
index 382e64ea0f4fb..a9ae447d45ff5 100644
--- a/pkgs/development/python-modules/anyio/default.nix
+++ b/pkgs/development/python-modules/anyio/default.nix
@@ -2,6 +2,7 @@
 , lib
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , pythonOlder
 , setuptools-scm
 , idna
@@ -19,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "anyio";
-  version = "3.3.4";
+  version = "3.5.0";
   format = "pyproject";
   disabled = pythonOlder "3.7";
 
@@ -27,9 +28,17 @@ buildPythonPackage rec {
     owner = "agronholm";
     repo = pname;
     rev = version;
-    sha256 = "sha256-aMnXZ+4dlybId2QhjE/3STY+Sj/vzI6K7wmqqx+P8yE=";
+    sha256 = "sha256-AZ9M/NBCBlMIUpRJgKbJRL/oReZDUh2Jhwtoxoo0tMs=";
   };
 
+  patches = [
+    (fetchpatch {
+      # Pytest 7.0 compatibility
+      url = "https://github.com/agronholm/anyio/commit/fed7cc4f95e196f68251bcb9253da3b143ea8e7e.patch";
+      sha256 = "sha256-VmZmiQEmWJ4aPz0Wx+GTMZo7jXRDScnRYf2Hu2hiRVw=";
+    })
+  ];
+
   preBuild = ''
     export SETUPTOOLS_SCM_PRETEND_VERSION=${version}
   '';
diff --git a/pkgs/development/python-modules/apache-airflow/default.nix b/pkgs/development/python-modules/apache-airflow/default.nix
index 4ac03a8820fb8..948fae7893b85 100644
--- a/pkgs/development/python-modules/apache-airflow/default.nix
+++ b/pkgs/development/python-modules/apache-airflow/default.nix
@@ -65,13 +65,13 @@
 , mkYarnPackage
 }:
 let
-  version = "2.2.3";
+  version = "2.2.4";
 
   airflow-src = fetchFromGitHub rec {
     owner = "apache";
     repo = "airflow";
     rev = version;
-    sha256 = "02y3az7yj4g4qaamq5s1bcvy3knd6xmvnhbfqs3kbm51irkba1zq";
+    sha256 = "sha256-JCcEgCq1sB8lBaeJy7QQbWU00sGAh5vUmJAptF8M9qo=";
   };
 
   # airflow bundles a web interface, which is built using webpack by an undocumented shell script in airflow's source tree.
diff --git a/pkgs/development/python-modules/apache-beam/default.nix b/pkgs/development/python-modules/apache-beam/default.nix
index 2eeebaaea7f8c..8d774410ca355 100644
--- a/pkgs/development/python-modules/apache-beam/default.nix
+++ b/pkgs/development/python-modules/apache-beam/default.nix
@@ -25,8 +25,6 @@
 , pydot
 , pyhamcrest
 , pymongo
-, pytest-timeout
-, pytest-xdist
 , pytestCheckHook
 , python
 , pythonAtLeast
@@ -43,26 +41,21 @@
 
 buildPythonPackage rec {
   pname = "apache-beam";
-  version = "2.35.0";
+  version = "2.37.0";
   disabled = pythonAtLeast "3.10";
 
   src = fetchFromGitHub {
     owner = "apache";
     repo = "beam";
     rev = "v${version}";
-    sha256 = "0qxkas33d8i6yj133plnadbfm74ak7arn7ldpziyiwdav3hj68sy";
+    sha256 = "sha256-FmfTxRLqXUHhhAZIxCRx2+phX0bmU5rIHaftBU4yBJY=";
   };
 
-  patches = [
-    ./relax-deps.patch
-    # Fixes https://issues.apache.org/jira/browse/BEAM-9324
-    ./fix-cython.patch
-  ];
-
   # See https://github.com/NixOS/nixpkgs/issues/156957.
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "typing-extensions>=3.7.0,<4" "typing-extensions" \
+      --replace "dill>=0.3.1.1,<0.3.2" "dill" \
+      --replace "httplib2>=0.8,<0.20.0" "httplib2" \
       --replace "pyarrow>=0.15.1,<7.0.0" "pyarrow"
   '';
 
@@ -109,8 +102,6 @@ buildPythonPackage rec {
     parameterized
     psycopg2
     pyhamcrest
-    pytest-timeout
-    pytest-xdist
     pytestCheckHook
     pyyaml
     requests-mock
@@ -123,6 +114,18 @@ buildPythonPackage rec {
   preCheck = "cd $out/lib/${python.libPrefix}/site-packages";
 
   disabledTestPaths = [
+    # Fails with
+    #     _______ ERROR collecting apache_beam/io/external/xlang_jdbcio_it_test.py _______
+    #     apache_beam/io/external/xlang_jdbcio_it_test.py:80: in <module>
+    #         class CrossLanguageJdbcIOTest(unittest.TestCase):
+    #     apache_beam/io/external/xlang_jdbcio_it_test.py:99: in CrossLanguageJdbcIOTest
+    #         container_init: Callable[[], Union[PostgresContainer, MySqlContainer]],
+    #     E   NameError: name 'MySqlContainer' is not defined
+    #
+    # Test relies on the testcontainers package, which is not currently (as of
+    # 2022-04-08) available in nixpkgs.
+    "apache_beam/io/external/xlang_jdbcio_it_test.py"
+
     # These tests depend on the availability of specific servers backends.
     "apache_beam/runners/portability/flink_runner_test.py"
     "apache_beam/runners/portability/samza_runner_test.py"
@@ -136,12 +139,6 @@ buildPythonPackage rec {
     # quite elaborate testing infra with containers and multiple
     # different runners - I don't expect them to help debugging these
     # when running via our (= custom from their PoV) testing infra.
-    "testBuildListUnpack"
-    "testBuildTupleUnpack"
-    "testBuildTupleUnpackWithCall"
-    "test_convert_bare_types"
-    "test_incomparable_default"
-    "test_pardo_type_inference"
     "test_with_main_session"
   ];
 
diff --git a/pkgs/development/python-modules/apache-beam/fix-cython.patch b/pkgs/development/python-modules/apache-beam/fix-cython.patch
deleted file mode 100644
index f73d75b4b84a4..0000000000000
--- a/pkgs/development/python-modules/apache-beam/fix-cython.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff --git a/apache_beam/runners/worker/operations.py b/apache_beam/runners/worker/operations.py
-index 3464c5750c..5921c72b90 100644
---- a/apache_beam/runners/worker/operations.py
-+++ b/apache_beam/runners/worker/operations.py
-@@ -69,18 +69,6 @@ if TYPE_CHECKING:
-   from apache_beam.runners.worker.statesampler import StateSampler
-   from apache_beam.transforms.userstate import TimerSpec
- 
--# Allow some "pure mode" declarations.
--try:
--  import cython
--except ImportError:
--
--  class FakeCython(object):
--    @staticmethod
--    def cast(type, value):
--      return value
--
--  globals()['cython'] = FakeCython()
--
- _globally_windowed_value = GlobalWindows.windowed_value(None)
- _global_window_type = type(_globally_windowed_value.windows[0])
- 
-@@ -149,7 +137,7 @@ class ConsumerSet(Receiver):
-     # type: (WindowedValue) -> None
-     self.update_counters_start(windowed_value)
-     for consumer in self.consumers:
--      cython.cast(Operation, consumer).process(windowed_value)
-+      consumer.process(windowed_value)
-     self.update_counters_finish()
- 
-   def try_split(self, fraction_of_remainder):
-@@ -345,7 +333,7 @@ class Operation(object):
- 
-   def output(self, windowed_value, output_index=0):
-     # type: (WindowedValue, int) -> None
--    cython.cast(Receiver, self.receivers[output_index]).receive(windowed_value)
-+    self.receivers[output_index].receive(windowed_value)
- 
-   def add_receiver(self, operation, output_index=0):
-     # type: (Operation, int) -> None
diff --git a/pkgs/development/python-modules/apache-beam/relax-deps.patch b/pkgs/development/python-modules/apache-beam/relax-deps.patch
deleted file mode 100644
index 67bd38f5e7cc6..0000000000000
--- a/pkgs/development/python-modules/apache-beam/relax-deps.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 9429459622..2727b3becb 100644
---- a/setup.py
-+++ b/setup.py
-@@ -136,12 +136,12 @@ REQUIRED_PACKAGES = [
-     # version of dill. It is best to use the same version of dill on client and
-     # server, therefore list of allowed versions is very narrow.
-     # See: https://github.com/uqfoundation/dill/issues/341.
--    'dill>=0.3.1.1,<0.3.2',
-+    'dill>=0.3.1.1',
-     'fastavro>=0.21.4,<2',
-     'grpcio>=1.29.0,<2',
-     'hdfs>=2.1.0,<3.0.0',
--    'httplib2>=0.8,<0.20.0',
--    'numpy>=1.14.3,<1.21.0',
-+    'httplib2>=0.8',
-+    'numpy>=1.14.3',
-     'pymongo>=3.8.0,<4.0.0',
-     'oauth2client>=2.0.1,<5',
-     'protobuf>=3.12.2,<4',
diff --git a/pkgs/development/python-modules/aplpy/default.nix b/pkgs/development/python-modules/aplpy/default.nix
index 682ef6e17fdf0..7461c502a31de 100644
--- a/pkgs/development/python-modules/aplpy/default.nix
+++ b/pkgs/development/python-modules/aplpy/default.nix
@@ -11,6 +11,7 @@
 , pyregion
 , pillow
 , scikitimage
+, cython
 , shapely
 , pytest
 , pytest-astropy
@@ -18,39 +19,18 @@
 
 buildPythonPackage rec {
   pname = "aplpy";
-  version = "2.0.3";
+  version = "2.1.0";
   format = "pyproject";
 
   src = fetchPypi {
-    pname = "APLpy";
+    pname = "aplpy";
     inherit version;
-    sha256 = "239f3d83635ca4251536aeb577df7c60df77fc4d658097b92094719739aec3f3";
+    sha256 = "sha256-KCdmBwQWt7IfHsjq7pWlbSISEpfQZDyt+SQSTDaUCV4=";
   };
 
-  patches = [
-    # Fixes compatibility with astropy-helpers. This patch has been merged into
-    # the master branch as of May 2020, and should be part of the next
-    # upstream release (v2.0.3 was tagged in Feb. 2019).
-    (fetchpatch {
-      url = "https://github.com/aplpy/aplpy/pull/448.patch";
-      sha256 = "1pnzh7ykjc8hwahzbzyryrzv5a8fddgd1bmzbhagkrn6lmvhhpvq";
-      excludes = [ "tox.ini" "azure-pipelines.yml" ".circleci/config.yml" "MANIFEST.in" ".gitignore"
-       "setup.cfg" "appveyor.yml" "readthedocs.yml" "CHANGES.rst" ".gitmodules" ".travis.yml" "astropy_helpers" ];
-    })
-    # Fix for matplotlib >= 3.4 (https://github.com/aplpy/aplpy/pull/466)
-    # Note: because of a security thing, github will refuse to serve this patch from the
-    # "normal" location
-    # (https://github.com/aplpy/aplpy/commit/56c1cc694fdea69e7da8506d3212c4495adb0ca5.patch)
-    # due to the fact that it contains the PDF magic bytes, but it will serve it from
-    # this githubusercontent domain.
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/aplpy/aplpy/pull/466/commit/56c1cc694fdea69e7da8506d3212c4495adb0ca5.patch";
-      sha256 = "0jna2n1cgfzr0a27m5z94wwph7qg25hs7lycrdb2dp3943rb35g4";
-    })
-  ];
-
   propagatedBuildInputs = [
     numpy
+    cython
     astropy
     matplotlib
     reproject
diff --git a/pkgs/development/python-modules/apprise/default.nix b/pkgs/development/python-modules/apprise/default.nix
index 11990e7d39965..8be62dfd0da1b 100644
--- a/pkgs/development/python-modules/apprise/default.nix
+++ b/pkgs/development/python-modules/apprise/default.nix
@@ -13,21 +13,21 @@
 , pythonOlder
 , pyyaml
 , requests
-, requests_oauthlib
+, requests-oauthlib
 , six
 , slixmpp
 }:
 
 buildPythonPackage rec {
   pname = "apprise";
-  version = "0.9.7";
+  version = "0.9.8.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-BOMeSvwmGiZvA95+e2bceCGXRwowU5+zJAl7Sn4wKqM=";
+    hash = "sha256-EDKa77sU09HOBp4NVsHNwp6S4UbHyqX8T8rFGOnV8kA=";
   };
 
   nativeBuildInputs = [
@@ -41,7 +41,7 @@ buildPythonPackage rec {
     markdown
     pyyaml
     requests
-    requests_oauthlib
+    requests-oauthlib
     six
   ];
 
diff --git a/pkgs/development/python-modules/approvaltests/default.nix b/pkgs/development/python-modules/approvaltests/default.nix
index b74533e0d44b9..dd2f26e92d1ee 100644
--- a/pkgs/development/python-modules/approvaltests/default.nix
+++ b/pkgs/development/python-modules/approvaltests/default.nix
@@ -1,36 +1,58 @@
-{ lib, buildPythonPackage, fetchFromGitHub
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+
+# propagates
+, allpairspy
 , beautifulsoup4
 , empty-files
-, numpy
 , pyperclip
 , pytest
+
+# tests
+, numpy
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
-  version = "3.6.0";
+  version = "5.0.1";
   pname = "approvaltests";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6.1";
 
   # no tests included in PyPI tarball
   src = fetchFromGitHub {
     owner = "approvals";
     repo = "ApprovalTests.Python";
-    rev = "v${version}";
-    sha256 = "sha256-pgGuIoYV6JRM9h7hR8IeNduqsGm+UrKq+P/T1LM30NE=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-lmH/nw/7woLCDepR/rDQUqwrhuLFY+TO8sdgK1+apgc=";
   };
 
   propagatedBuildInputs = [
+    allpairspy
     beautifulsoup4
     empty-files
-    numpy
     pyperclip
     pytest
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace bs4 beautifulsoup4 \
-      --replace "pyperclip==1.5.27" "pyperclip>=1.5.27"
-  '';
+  checkInputs = [
+    numpy
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # tests expects paths below ApprovalTests.Python directory
+    "test_received_filename"
+    "test_pytest_namer"
+  ];
+
+  pythonImportsCheck = [
+    "approvaltests.approvals"
+    "approvaltests.reporters.generic_diff_reporter_factory"
+  ];
 
   meta = with lib; {
     description = "Assertion/verification library to aid testing";
diff --git a/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix b/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
index 9fc959126b37f..a6984e773dd09 100644
--- a/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
+++ b/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "appthreat-vulnerability-db";
-  version = "2.0.1";
+  version = "2.0.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -22,8 +22,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "AppThreat";
     repo = "vulnerability-db";
-    rev = "v${version}";
-    sha256 = "sha256-fqpBnxcRBBXsjJepxDuoDbT3hk5rXAvky11sIvQS9XI=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-Ozf3qmD9JRH19N/eERhDHz4LUoWwCVepLbSRCg6lWnQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aprslib/default.nix b/pkgs/development/python-modules/aprslib/default.nix
index 67d585d36ed0c..7c2fa222bd2cf 100644
--- a/pkgs/development/python-modules/aprslib/default.nix
+++ b/pkgs/development/python-modules/aprslib/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "aprslib";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "rossengeorgiev";
     repo = "aprs-python";
     rev = "v${version}";
-    sha256 = "sha256-QasyF0Ch4zdPoAgcqRavEENVGA/02/AgeWAgXYcSUjk=";
+    hash = "sha256-wWlzOFhWJ7hJeM3RWsPTEsLjRzN4SMXsb2Cd612HB4w=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/apsw/default.nix b/pkgs/development/python-modules/apsw/default.nix
index 46ae3fc34e565..dda3fe6a6836e 100644
--- a/pkgs/development/python-modules/apsw/default.nix
+++ b/pkgs/development/python-modules/apsw/default.nix
@@ -4,12 +4,12 @@
 , fetchFromGitHub
 , sqlite
 , isPyPy
-, pytestCheckHook
+, python
 }:
 
 buildPythonPackage rec {
   pname = "apsw";
-  version = "3.37.0-r1";
+  version = "3.38.1-r1";
   format = "setuptools";
 
   disabled = isPyPy;
@@ -18,34 +18,19 @@ buildPythonPackage rec {
     owner = "rogerbinns";
     repo = "apsw";
     rev = version;
-    sha256 = "0p6rlbk7p6hj5mbmk1a8phazw3ym6hf5103zkxzg4p1jgjgi0xpl";
+    hash = "sha256-pbb6wCu1T1mPlgoydB1Y1AKv+kToGkdVUjiom2vTqf4=";
   };
 
   buildInputs = [
     sqlite
   ];
 
-  checkInputs = [
-    pytestCheckHook
-  ];
-
-  pytestFlagsArray = [
-    "tests.py"
-  ];
-
-  disabledTests = [
-    "testCursor"
-    "testLoadExtension"
-    "testShell"
-    "testVFS"
-    "testVFSWithWAL"
-    "testdb"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # This is https://github.com/rogerbinns/apsw/issues/277 but
-    # because we use pytestCheckHook we need to blacklist the test
-    # manually
-    "testzzForkChecker"
-  ];
+  # Project uses custom test setup to exclude some tests by default, so using pytest
+  # requires more maintenance
+  # https://github.com/rogerbinns/apsw/issues/335
+  checkPhase = ''
+    ${python.interpreter} setup.py test
+  '';
 
   pythonImportsCheck = [
     "apsw"
@@ -55,6 +40,6 @@ buildPythonPackage rec {
     description = "A Python wrapper for the SQLite embedded relational database engine";
     homepage = "https://github.com/rogerbinns/apsw";
     license = licenses.zlib;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ gador ];
   };
 }
diff --git a/pkgs/development/python-modules/apycula/default.nix b/pkgs/development/python-modules/apycula/default.nix
index d8bb92e0d3bcf..f9ffeefa296d9 100644
--- a/pkgs/development/python-modules/apycula/default.nix
+++ b/pkgs/development/python-modules/apycula/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "apycula";
-  version = "0.3";
+  version = "0.3.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit version;
     pname = "Apycula";
-    hash = "sha256-Ncecrn5fQW0iAgrE3P7GZTx8E1TiFqiDMhZQSPrDvdk=";
+    hash = "sha256-RoWZt2Ox0XjJ6vmuCCcNCTMfwZnwJ6fSx71fmipmu2c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/archinfo/default.nix b/pkgs/development/python-modules/archinfo/default.nix
index f9affcddd122b..b9b29a7167abc 100644
--- a/pkgs/development/python-modules/archinfo/default.nix
+++ b/pkgs/development/python-modules/archinfo/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , pytestCheckHook
 , nose
 , pythonOlder
@@ -9,8 +8,8 @@
 
 buildPythonPackage rec {
   pname = "archinfo";
-  version = "9.1.12332";
-  format = "setuptools";
+  version = "9.2.1";
+  format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
@@ -18,7 +17,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-nv/hwQZgKv/cM8fF6GqI8zY9GAe8aCZ/AGFOmhz+bMM=";
+    hash = "sha256-RWdY7tzT5wDVjAn1QIkQm8b5lIo++VzktsYZxn8taeg=";
   };
 
   checkInputs = [
@@ -26,15 +25,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  patches = [
-    # Make archinfo import without installing pyvex, https://github.com/angr/archinfo/pull/113
-    (fetchpatch {
-      name = "fix-import-issue.patch";
-      url = "https://github.com/angr/archinfo/commit/d29c108f55ffd458ff1d3d65db2d651c76b19267.patch";
-      sha256 = "sha256-9vi0QyqQLIPQxFuB8qrpcnPXWOJ6d27/IXJE/Ui6HhM=";
-    })
-  ];
-
   pythonImportsCheck = [
     "archinfo"
   ];
@@ -43,6 +33,6 @@ buildPythonPackage rec {
     description = "Classes with architecture-specific information";
     homepage = "https://github.com/angr/archinfo";
     license = with licenses; [ bsd2 ];
-    maintainers = [ maintainers.fab ];
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/arris-tg2492lg/default.nix b/pkgs/development/python-modules/arris-tg2492lg/default.nix
new file mode 100644
index 0000000000000..9a883b2f68ee0
--- /dev/null
+++ b/pkgs/development/python-modules/arris-tg2492lg/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pytest-aiohttp
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "arris-tg2492lg";
+  version = "2.1.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "vanbalken";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-C1o9HWWJ/G/7Pp6I0FbRmX2PQvUJx71L9wHRkUMtnL4=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  checkInputs = [
+    pytest-aiohttp
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "arris_tg2492lg"
+  ];
+
+  meta = with lib; {
+    description = "Library to connect to an Arris TG2492LG";
+    homepage = "https://github.com/vanbalken/arris-tg2492lg";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/arrow/default.nix b/pkgs/development/python-modules/arrow/default.nix
index fc66509a194a1..c09610c3be1f7 100644
--- a/pkgs/development/python-modules/arrow/default.nix
+++ b/pkgs/development/python-modules/arrow/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "arrow";
-  version = "1.2.1";
+  version = "1.2.2";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c2dde3c382d9f7e6922ce636bf0b318a7a853df40ecb383b29192e6c5cc82840";
+    sha256 = "sha256-Bcrx/T2aEaETWytvCYh0IRU7lFWOXvTQkLVntHFzrCs=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/asana/default.nix b/pkgs/development/python-modules/asana/default.nix
index c7839f051478e..d179f3f94902d 100644
--- a/pkgs/development/python-modules/asana/default.nix
+++ b/pkgs/development/python-modules/asana/default.nix
@@ -1,37 +1,47 @@
-{ buildPythonPackage, pythonAtLeast, pytest, requests, requests_oauthlib, six
-, fetchFromGitHub, responses, lib
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, requests
+, requests-oauthlib
+, responses
+, six
 }:
 
 buildPythonPackage rec {
   pname = "asana";
-  version = "0.10.3";
+  version = "0.10.9";
+  format = "setuptools";
 
-  # upstream reportedly doesn't support 3.7 yet, blocked on
-  # https://bugs.python.org/issue34226
-  disabled = pythonAtLeast "3.7";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "asana";
     repo = "python-asana";
     rev = "v${version}";
-    sha256 = "11nsfygcfpc2qb2gy4npi9w00cqfh88g7k3rsfq7xambz1zjdz1n";
+    sha256 = "sha256-9gOkCMY15ChdhiFdzS0TjvWpVTKKEGt7XIcK6EhkSK8=";
   };
 
-  checkInputs = [ pytest responses ];
-  propagatedBuildInputs = [ requests requests_oauthlib six ];
+  propagatedBuildInputs = [
+    requests
+    requests-oauthlib
+    six
+  ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "requests_oauthlib >= 0.8.0, == 0.8.*" "requests_oauthlib>=0.8.0<2.0"
-  '';
+  checkInputs = [
+    pytestCheckHook
+    responses
+  ];
 
-  checkPhase = ''
-    py.test tests
-  '';
+  pythonImportsCheck = [
+    "asana"
+  ];
 
   meta = with lib; {
     description = "Python client library for Asana";
     homepage = "https://github.com/asana/python-asana";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/asciimatics/default.nix b/pkgs/development/python-modules/asciimatics/default.nix
index 0d7286c171f05..3854abed09f80 100644
--- a/pkgs/development/python-modules/asciimatics/default.nix
+++ b/pkgs/development/python-modules/asciimatics/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "asciimatics";
-  version = "1.13.0";
+  version = "1.14.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a041826ec5add03fb882d8981c1debf9b9e98274f4f2d52ec21ef30de70c2c6e";
+    sha256 = "sha256-FtIM5CIQtDTrBbpGns24KTrH7TwM4N1PcOMNctdgIic=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/asdf-standard/default.nix b/pkgs/development/python-modules/asdf-standard/default.nix
new file mode 100644
index 0000000000000..bc691fb020950
--- /dev/null
+++ b/pkgs/development/python-modules/asdf-standard/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, importlib-resources
+, pythonOlder
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "asdf-standard";
+  version = "1.0.2";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    pname = "asdf_standard";
+    inherit version;
+    hash = "sha256-Ic/AXdghVZtn37xU0DsrzArYtstcydFNdZH3OrNFFwA=";
+  };
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [
+    importlib-resources
+  ];
+
+  # Circular dependency on asdf
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "asdf_standard"
+  ];
+
+  meta = with lib; {
+    description = "Standards document describing ASDF";
+    homepage = "https://github.com/asdf-format/asdf-standard";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/asdf-transform-schemas/default.nix b/pkgs/development/python-modules/asdf-transform-schemas/default.nix
new file mode 100644
index 0000000000000..8333e25f01aa7
--- /dev/null
+++ b/pkgs/development/python-modules/asdf-transform-schemas/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, asdf-standard
+, buildPythonPackage
+, fetchPypi
+, importlib-resources
+, pythonOlder
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "asdf-transform-schemas";
+  version = "0.2.2";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    pname = "asdf_transform_schemas";
+    inherit version;
+    hash = "sha256-9xqTCe0+vQmxk3roV8lM7JKIeHBEDrPphou77XJlaxU=";
+  };
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    asdf-standard
+  ] ++ lib.optionals (pythonOlder "3.9") [
+    importlib-resources
+  ];
+
+  # Circular dependency on asdf
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "asdf_transform_schemas"
+  ];
+
+  meta = with lib; {
+    description = "ASDF schemas for validating transform tags";
+    homepage = "https://github.com/asdf-format/asdf-transform-schemas";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/asdf/default.nix b/pkgs/development/python-modules/asdf/default.nix
index 1a9ba2dd0963c..658ec10a0ae23 100644
--- a/pkgs/development/python-modules/asdf/default.nix
+++ b/pkgs/development/python-modules/asdf/default.nix
@@ -1,10 +1,13 @@
 { lib
+, asdf-standard
+, asdf-transform-schemas
 , astropy
 , buildPythonPackage
 , fetchPypi
 , importlib-resources
 , jmespath
 , jsonschema
+, lz4
 , numpy
 , packaging
 , pytest-astropy
@@ -17,18 +20,23 @@
 
 buildPythonPackage rec {
   pname = "asdf";
-  version = "2.8.3";
-  disabled = pythonOlder "3.6";
+  version = "2.11.1";
   format = "pyproject";
 
+  disabled = pythonOlder "3.7";
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "de0f70ffb2e0d539461940d6f7529c3548541fa098d8edc37af256af61c09b44";
+    hash = "sha256-1uDRoS9nyZCLPdbiAQBADoiwqaVBzj1NMpZXdJQYoxQ=";
   };
 
-  nativeBuildInputs = [ setuptools-scm ];
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
 
   propagatedBuildInputs = [
+    asdf-standard
+    asdf-transform-schemas
     jmespath
     jsonschema
     numpy
@@ -40,8 +48,9 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytest-astropy
     astropy
+    lz4
+    pytest-astropy
     pytestCheckHook
   ];
 
@@ -49,11 +58,13 @@ buildPythonPackage rec {
     export PY_IGNORE_IMPORTMISMATCH=1
   '';
 
-  pythonImportsCheck = [ "asdf" ];
+  pythonImportsCheck = [
+    "asdf"
+  ];
 
   meta = with lib; {
     description = "Python tools to handle ASDF files";
-    homepage = "https://github.com/spacetelescope/asdf";
+    homepage = "https://github.com/asdf-format/asdf";
     license = licenses.bsd3;
     maintainers = with maintainers; [ costrouc ];
   };
diff --git a/pkgs/development/python-modules/asgiref/default.nix b/pkgs/development/python-modules/asgiref/default.nix
index 5eea9a5579a19..2ea9f4130f979 100644
--- a/pkgs/development/python-modules/asgiref/default.nix
+++ b/pkgs/development/python-modules/asgiref/default.nix
@@ -6,21 +6,31 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, fetchpatch
 }:
 
 buildPythonPackage rec {
-  version = "3.4.1";
+  version = "3.5.0";
   pname = "asgiref";
+  format = "setuptools";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "django";
     repo = pname;
     rev = version;
-    sha256 = "sha256-aXD46qH5sTTmp0rlzQGLAN+MfIz1u6obCwtfqoIYgBA=";
+    sha256 = "sha256-eWDsd8iWK1C/X3t/fKAM1i4hyTM/daGTd8CDSgDTL/U=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "remove-sock-nonblock-in-tests.patch";
+      url = "https://github.com/django/asgiref/commit/d451a724c93043b623e83e7f86743bbcd9a05c45.patch";
+      sha256 = "0whdsn5isln4dqbqqngvsy4yxgaqgpnziz0cndj1zdxim8cdicj7";
+    })
+  ];
+
   propagatedBuildInputs = [
     async-timeout
   ];
@@ -40,6 +50,6 @@ buildPythonPackage rec {
     description = "Reference ASGI adapters and channel layers";
     homepage = "https://github.com/django/asgiref";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/asn1crypto/default.nix b/pkgs/development/python-modules/asn1crypto/default.nix
index 989b974c64a64..0c071c4206b06 100644
--- a/pkgs/development/python-modules/asn1crypto/default.nix
+++ b/pkgs/development/python-modules/asn1crypto/default.nix
@@ -1,19 +1,25 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "asn1crypto";
-  version = "1.4.0";
+  version = "1.5.1";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "f4f6e119474e58e04a2b1af817eb585b4fd72bdd89b998624712b5c99be7641c";
+  # Pulling from Github to run tests
+  src = fetchFromGitHub {
+    owner = "wbond";
+    repo = "asn1crypto";
+    rev = version;
+    sha256 = "sha256-M8vASxhaJPgkiTrAckxz7gk/QHkrFlNz7fFbnLEBT+M=";
   };
 
-  # No tests included
-  doCheck = false;
+  checkInputs = [
+    pytestCheckHook
+  ];
 
   meta = {
     description = "Fast ASN.1 parser and serializer with definitions for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7, PKCS#8, PKCS#12, PKCS#5, X.509 and TSP";
diff --git a/pkgs/development/python-modules/astroid/default.nix b/pkgs/development/python-modules/astroid/default.nix
index ab62a565ce678..539787403c6ef 100644
--- a/pkgs/development/python-modules/astroid/default.nix
+++ b/pkgs/development/python-modules/astroid/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, pythonAtLeast
 , pythonOlder
 , isPyPy
 , lazy-object-proxy
@@ -14,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "astroid";
-  version = "2.9.3"; # Check whether the version is compatible with pylint
+  version = "2.11.2"; # Check whether the version is compatible with pylint
 
   disabled = pythonOlder "3.6.2";
 
@@ -22,7 +23,7 @@ buildPythonPackage rec {
     owner = "PyCQA";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1x77faggk1dgxy48ng31xj9h6p51w312kvk5zqgvd5f19nvznxyi";
+    sha256 = "sha256-adnvJCchsMWQxsIlenndUb6Mw1MgCNAanZcTmssmsEc=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
@@ -45,6 +46,9 @@ buildPythonPackage rec {
   disabledTests = [
     # assert (1, 1) == (1, 16)
     "test_end_lineno_string"
+  ] ++ lib.optionals (pythonAtLeast "3.10") [
+    # AssertionError: Lists differ: ['ABC[16 chars]yBase', 'Final', 'Generic', 'MyProtocol', 'Protocol', 'object'] != ['ABC[16 chars]yBase', 'Final', 'Generic', 'MyProtocol', 'object']
+    "test_mro_typing_extensions"
   ];
 
   passthru.tests = {
diff --git a/pkgs/development/python-modules/astropy-extension-helpers/default.nix b/pkgs/development/python-modules/astropy-extension-helpers/default.nix
index 8e5a2fda3301a..cb15acf883997 100644
--- a/pkgs/development/python-modules/astropy-extension-helpers/default.nix
+++ b/pkgs/development/python-modules/astropy-extension-helpers/default.nix
@@ -3,17 +3,20 @@
 , fetchPypi
 , findutils
 , pytestCheckHook
+, pythonOlder
 , setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "extension-helpers";
-  version = "0.1";
+  version = "1.0.0";
   format = "pyproject";
 
+  disabled = pythonOlder "3.6";
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10iqjzmya2h4sk765dlm1pbqypwlqyh8rw59a5m9i63d3klnz2mc";
+    sha256 = "ca1bfac67c79cf4a7a0c09286ce2a24eec31bf17715818d0726318dd0e5050e6";
   };
 
   nativeBuildInputs = [
@@ -22,13 +25,21 @@ buildPythonPackage rec {
 
   patches = [ ./permissions.patch ];
 
-  checkInputs = [ findutils pytestCheckHook ];
+  checkInputs = [
+    findutils
+    pytestCheckHook
+  ];
 
   # avoid import mismatch errors, as conftest.py is copied to build dir
   pytestFlagsArray = [
     "extension_helpers"
   ];
 
+  disabledTests = [
+    # https://github.com/astropy/extension-helpers/issues/43
+    "test_write_if_different"
+  ];
+
   pythonImportsCheck = [
     "extension_helpers"
   ];
@@ -37,6 +48,6 @@ buildPythonPackage rec {
     description = "Utilities for building and installing packages in the Astropy ecosystem";
     homepage = "https://github.com/astropy/extension-helpers";
     license = licenses.bsd3;
-    maintainers = [ maintainers.rmcgibbo ];
+    maintainers = with maintainers; [ rmcgibbo ];
   };
 }
diff --git a/pkgs/development/python-modules/astropy/default.nix b/pkgs/development/python-modules/astropy/default.nix
index 78f02e2870ce8..56d0cc766ad01 100644
--- a/pkgs/development/python-modules/astropy/default.nix
+++ b/pkgs/development/python-modules/astropy/default.nix
@@ -19,7 +19,7 @@
 
 let
   pname = "astropy";
-  version = "5.0";
+  version = "5.0.3";
 in
 buildPythonPackage {
   inherit pname version;
@@ -29,7 +29,7 @@ buildPythonPackage {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "70203e151e13292586a817b4069ce1aad4643567aff38b1d191c173bc54f3927";
+    sha256 = "sha256-GxZOxV63HH8Pil8zVDOcWkLWEpg1ayFOT7n/JWqGgUc=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/astroquery/default.nix b/pkgs/development/python-modules/astroquery/default.nix
index 8853b1e9e08d9..6c1d39a82b018 100644
--- a/pkgs/development/python-modules/astroquery/default.nix
+++ b/pkgs/development/python-modules/astroquery/default.nix
@@ -6,39 +6,61 @@
 , keyring
 , beautifulsoup4
 , html5lib
+, matplotlib
+, pillow
 , pytest
 , pytest-astropy
+, pytestCheckHook
+, pyvo
 , astropy-helpers
 , isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "astroquery";
-  version = "0.4.5";
+  version = "0.4.6";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "20002f84b61fb11ceeae408a4cd23b379490e174054ec777f946df8a3f06be1b";
+    sha256 = "sha256-MHylVMtzSgypoi+G9e/+fkE6+ROuZeFXiXLYR7H+E+4=";
   };
 
   disabled = !isPy3k;
 
-  propagatedBuildInputs = [ astropy requests keyring beautifulsoup4 html5lib ];
+  propagatedBuildInputs = [
+    astropy
+    requests
+    keyring
+    beautifulsoup4
+    html5lib
+    pyvo
+  ];
 
   nativeBuildInputs = [ astropy-helpers ];
 
-  # Tests disabled until pytest-astropy has been updated to include pytest-astropy-header
-  doCheck = false;
-  checkInputs = [ pytest pytest-astropy ];
+  # Disable automatic update of the astropy-helper module
+  postPatch = ''
+    substituteInPlace setup.cfg --replace "auto_use = True" "auto_use = False"
+  '';
+
+  checkInputs = [
+    matplotlib
+    pillow
+    pytest
+    pytest-astropy
+    pytestCheckHook
+  ];
 
   # Tests must be run in the build directory. The tests create files
   # in $HOME/.astropy so we need to set HOME to $TMPDIR.
-  checkPhase = ''
+  preCheck = ''
+    export HOME=$TMPDIR
     cd build/lib
-    HOME=$TMPDIR pytest
   '';
 
+  pythonImportsCheck = [ "astroquery" ];
+
   meta = with pkgs.lib; {
     description = "Functions and classes to access online data resources";
     homepage = "https://astroquery.readthedocs.io/";
diff --git a/pkgs/development/python-modules/asttokens/default.nix b/pkgs/development/python-modules/asttokens/default.nix
index 1e44ee8fa0e16..3d78ae7690b3e 100644
--- a/pkgs/development/python-modules/asttokens/default.nix
+++ b/pkgs/development/python-modules/asttokens/default.nix
@@ -22,10 +22,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     six
-    astroid
   ];
 
   checkInputs = [
+    astroid
     pytestCheckHook
   ];
 
@@ -34,6 +34,11 @@ buildPythonPackage rec {
     "test_slices"
   ];
 
+  disabledTestPaths = [
+    # incompatible with astroid 2.11.0, pins <= 2.5.3
+    "tests/test_astroid.py"
+  ];
+
   pythonImportsCheck = [ "asttokens" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/async-lru/default.nix b/pkgs/development/python-modules/async-lru/default.nix
index 9dc412ccde86d..69e6519b32c3d 100644
--- a/pkgs/development/python-modules/async-lru/default.nix
+++ b/pkgs/development/python-modules/async-lru/default.nix
@@ -28,6 +28,10 @@ buildPythonPackage rec {
     pytest-asyncio
   ];
 
+  pytestFlagsArray = [
+    "--asyncio-mode=strict"
+  ];
+
   disabledTests = [
     # https://github.com/aio-libs/async-lru/issues/341
     "test_alru_cache_deco"
diff --git a/pkgs/development/python-modules/async-upnp-client/default.nix b/pkgs/development/python-modules/async-upnp-client/default.nix
index 1c818d2724ea0..f2fc5b855c109 100644
--- a/pkgs/development/python-modules/async-upnp-client/default.nix
+++ b/pkgs/development/python-modules/async-upnp-client/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "async-upnp-client";
-  version = "0.23.5";
+  version = "0.28.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "StevenLooman";
     repo = "async_upnp_client";
     rev = version;
-    sha256 = "sha256-fMlP8LX+OFiw6o1rpz8J0sEsACk5x9dQko1oGEaZFuc=";
+    sha256 = "sha256-ZyYIZLIlLQV3Yj4a+M5vZVaTe9lEsrWhBe/g9wzM1TY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/async_generator/default.nix b/pkgs/development/python-modules/async_generator/default.nix
index 6f6da10a87f9c..277616849e15d 100644
--- a/pkgs/development/python-modules/async_generator/default.nix
+++ b/pkgs/development/python-modules/async_generator/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
-, pytest-asyncio
 , pytestCheckHook
 }:
 
@@ -19,7 +18,6 @@ buildPythonPackage rec {
   };
 
   checkInputs = [
-    pytest-asyncio
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python-modules/asyncssh/default.nix b/pkgs/development/python-modules/asyncssh/default.nix
index 3d00805537fe4..bb6ce96ea5886 100644
--- a/pkgs/development/python-modules/asyncssh/default.nix
+++ b/pkgs/development/python-modules/asyncssh/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "asyncssh";
-  version = "2.10.0";
+  version = "2.10.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-WF5JmDzHlXFB4D7p9IvRU2pepXFdCqHOnM4Ecobmaws=";
+    sha256 = "sha256-SZuDbPWKnxknrStaQMPL0N042+CNLfj6is1TjCj8j6k=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/atlassian-python-api/default.nix b/pkgs/development/python-modules/atlassian-python-api/default.nix
index 468dac5566144..4ecf893c1b941 100755
--- a/pkgs/development/python-modules/atlassian-python-api/default.nix
+++ b/pkgs/development/python-modules/atlassian-python-api/default.nix
@@ -4,7 +4,7 @@
 , deprecated
 , oauthlib
 , requests
-, requests_oauthlib
+, requests-oauthlib
 , six
 , pytestCheckHook
 , pythonOlder
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     deprecated
     oauthlib
     requests
-    requests_oauthlib
+    requests-oauthlib
     six
   ];
 
diff --git a/pkgs/development/python-modules/atom/default.nix b/pkgs/development/python-modules/atom/default.nix
index 80e29932ee2d7..88cfc818e3b98 100644
--- a/pkgs/development/python-modules/atom/default.nix
+++ b/pkgs/development/python-modules/atom/default.nix
@@ -1,19 +1,45 @@
-{ lib, buildPythonPackage, fetchPypi, future, cppy }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools-scm
+, future
+, cppy
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "atom";
-  version = "0.7.0";
+  version = "0.8.0";
+  format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "4055fbdeeb692d3d52c6e3c628d7513fc71f147920cac7d0da05b6dbb5ec8c8d";
+  src = fetchFromGitHub {
+    owner = "nucleic";
+    repo = pname;
+    rev = version;
+    hash = "sha256-Xby3QopKw7teShMi80RMG8YdhOOvfQb5vwOuFEUTxHQ=";
   };
 
-  buildInputs = [ cppy ];
-  propagatedBuildInputs = [ future ];
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
 
-  # Tests not released to pypi
-  doCheck = true;
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  buildInputs = [
+    cppy
+  ];
+
+  preCheck = ''
+    rm -rf atom
+  '';
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "atom.api"
+  ];
 
   meta = with lib; {
     description = "Memory efficient Python objects";
diff --git a/pkgs/development/python-modules/aurorapy/default.nix b/pkgs/development/python-modules/aurorapy/default.nix
index 17abcf0e9c476..7e59d9c8bc958 100644
--- a/pkgs/development/python-modules/aurorapy/default.nix
+++ b/pkgs/development/python-modules/aurorapy/default.nix
@@ -5,6 +5,7 @@
 , pyserial
 , pytestCheckHook
 , pythonOlder
+, six
 }:
 
 buildPythonPackage rec {
@@ -28,6 +29,7 @@ buildPythonPackage rec {
 
   checkInputs = [
     pytestCheckHook
+    six
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/authcaptureproxy/default.nix b/pkgs/development/python-modules/authcaptureproxy/default.nix
index 73422a0624c8c..11e1f444cb0bb 100644
--- a/pkgs/development/python-modules/authcaptureproxy/default.nix
+++ b/pkgs/development/python-modules/authcaptureproxy/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "authcaptureproxy";
-  version = "1.1.1";
+  version = "1.1.3";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "alandtse";
     repo = "auth_capture_proxy";
     rev = "v${version}";
-    sha256 = "08zpaclg5f9g1pix0jaq42i2ph12xc8djjrmhxz0yygw5rsilgl4";
+    sha256 = "sha256-RD/8v3IQb50iGkU6zj5QfHXakjHdcCBWWAkXhCIF6qo=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/authheaders/default.nix b/pkgs/development/python-modules/authheaders/default.nix
index 8593f7f4d742e..0d9c1a4093dae 100644
--- a/pkgs/development/python-modules/authheaders/default.nix
+++ b/pkgs/development/python-modules/authheaders/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "authheaders";
-  version = "0.14.1";
+  version = "0.15.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4e601b5b54080019a2f548fadf80ddf9c5538615607c7fb602936404aafe67e2";
+    sha256 = "sha256-90rOvu+CbHtammrMDZpPx7rIboIT2X/jL1GtfjpmuOk=";
   };
 
   propagatedBuildInputs = [ authres dnspython dkimpy publicsuffix2 ]
diff --git a/pkgs/development/python-modules/autobahn/default.nix b/pkgs/development/python-modules/autobahn/default.nix
index a088a0120103a..49f18ebca4982 100644
--- a/pkgs/development/python-modules/autobahn/default.nix
+++ b/pkgs/development/python-modules/autobahn/default.nix
@@ -23,14 +23,14 @@
 
 buildPythonPackage rec {
   pname = "autobahn";
-  version = "21.11.1";
+  version = "22.3.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-vW9GMVQZygpb5BCfc3QQIIrV8ZcY9nympKZ0zGbKmxg=";
+    sha256 = "sha256-WKiHx6GWuwjYtmJMs2lfSTqeXJ8A/TUNjW+Cm0f/kDY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/autograd/default.nix b/pkgs/development/python-modules/autograd/default.nix
index 0bdee21b69c21..93e89a2800d40 100644
--- a/pkgs/development/python-modules/autograd/default.nix
+++ b/pkgs/development/python-modules/autograd/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "autograd";
-  version = "1.3";
+  version = "1.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1i1ylf03b7220n8znk63zg6sgdd3py9wlh1pvqvy03g1fxsi8pd1";
+    sha256 = "sha256-OD3g9TfvLji4X/lpJZOwz66JWMmzvUUbUsJV/ZFx/84=";
   };
 
   propagatedBuildInputs = [ numpy future ];
diff --git a/pkgs/development/python-modules/av/default.nix b/pkgs/development/python-modules/av/default.nix
index c79dc8b3fcb14..3ebc44d1c4d63 100644
--- a/pkgs/development/python-modules/av/default.nix
+++ b/pkgs/development/python-modules/av/default.nix
@@ -1,33 +1,141 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, isPy27
-, numpy
-, ffmpeg
+, fetchFromGitHub
+, pythonOlder
+
+# build
+, cython
 , pkg-config
+
+# runtime
+, ffmpeg
+
+# tests
+, numpy
+, pillow
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "av";
-  version = "8.1.0";
-  disabled = isPy27; # setup.py no longer compatible
+  version = "9.1.1";
+  format = "pyproject";
+  disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0402169bc27e38e0f44e0e0e1854cf488337e86206b6d25d6dae2bfd7a1a0230";
+  src = fetchFromGitHub {
+    owner = "mikeboers";
+    repo = "PyAV";
+    rev = "v${version}";
+    hash = "sha256-/6C5GE9zANPy0xaptu/+pIupOLDra/R7TJ41YLGszUs=";
   };
 
-  checkInputs = [ numpy ];
+  nativeBuildInputs = [
+    cython
+    pkg-config
+  ];
+
+  buildInputs = [
+    ffmpeg
+  ];
+
+  preCheck = ''
+    # ensure we import the built version
+    rm -r av
+  '';
+
+  checkInputs = [
+    numpy
+    pillow
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    # Tests that want to download FATE data
+    # https://github.com/PyAV-Org/PyAV/issues/955
+    "--deselect=tests/test_audiofifo.py::TestAudioFifo::test_data"
+    "--deselect=tests/test_codec_context.py::TestCodecContext::test_codec_tag"
+    "--deselect=tests/test_codec_context.py::TestCodecContext::test_parse"
+    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_aac"
+    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_dnxhd"
+    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_dvvideo"
+    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_h264"
+    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_mjpeg"
+    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_mp2"
+    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_mpeg1video"
+    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_mpeg4"
+    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_pcm_s24le"
+    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_png"
+    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_tiff"
+    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_xvid"
+    "--deselect=tests/test_decode.py::TestDecode::test_decode_audio_sample_count"
+    "--deselect=tests/test_decode.py::TestDecode::test_decoded_motion_vectors"
+    "--deselect=tests/test_decode.py::TestDecode::test_decoded_motion_vectors_no_flag"
+    "--deselect=tests/test_decode.py::TestDecode::test_decoded_time_base"
+    "--deselect=tests/test_decode.py::TestDecode::test_decoded_video_frame_count"
+    "--deselect=tests/test_encode.py::TestBasicAudioEncoding::test_transcode"
+    "--deselect=tests/test_file_probing.py::TestAudioProbe::test_container_probing"
+    "--deselect=tests/test_file_probing.py::TestAudioProbe::test_stream_probing"
+    "--deselect=tests/test_file_probing.py::TestDataProbe::test_container_probing"
+    "--deselect=tests/test_file_probing.py::TestDataProbe::test_stream_probing"
+    "--deselect=tests/test_file_probing.py::TestSubtitleProbe::test_container_probing"
+    "--deselect=tests/test_file_probing.py::TestSubtitleProbe::test_stream_probing"
+    "--deselect=tests/test_file_probing.py::TestVideoProbe::test_container_probing"
+    "--deselect=tests/test_file_probing.py::TestVideoProbe::test_stream_probing"
+    "--deselect=tests/test_python_io.py::TestPythonIO::test_reading_from_buffer"
+    "--deselect=tests/test_python_io.py::TestPythonIO::test_reading_from_buffer_no_see"
+    "--deselect=tests/test_python_io.py::TestPythonIO::test_reading_from_file"
+    "--deselect=tests/test_python_io.py::TestPythonIO::test_reading_from_pipe_readonly"
+    "--deselect=tests/test_python_io.py::TestPythonIO::test_reading_from_write_readonl"
+    "--deselect=tests/test_seek.py::TestSeek::test_decode_half"
+    "--deselect=tests/test_seek.py::TestSeek::test_seek_end"
+    "--deselect=tests/test_seek.py::TestSeek::test_seek_float"
+    "--deselect=tests/test_seek.py::TestSeek::test_seek_int64"
+    "--deselect=tests/test_seek.py::TestSeek::test_seek_middle"
+    "--deselect=tests/test_seek.py::TestSeek::test_seek_start"
+    "--deselect=tests/test_seek.py::TestSeek::test_stream_seek"
+    "--deselect=tests/test_streams.py::TestStreams::test_selection"
+    "--deselect=tests/test_streams.py::TestStreams::test_stream_tuples"
+    "--deselect=tests/test_subtitles.py::TestSubtitle::test_movtext"
+    "--deselect=tests/test_subtitles.py::TestSubtitle::test_vobsub"
+    "--deselect=tests/test_videoframe.py::TestVideoFrameImage::test_roundtrip"
+  ];
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ ffmpeg ];
+  disabledTestPaths = [
+    # urlopen fails during DNS resolution
+    "tests/test_doctests.py"
+    "tests/test_timeout.py"
+  ];
 
-  # Tests require downloading files from internet
-  doCheck = false;
+  pythonImportsCheck = [
+    "av"
+    "av.audio"
+    "av.buffer"
+    "av.bytesource"
+    "av.codec"
+    "av.container"
+    "av._core"
+    "av.datasets"
+    "av.descriptor"
+    "av.dictionary"
+    "av.enum"
+    "av.error"
+    "av.filter"
+    "av.format"
+    "av.frame"
+    "av.logging"
+    "av.option"
+    "av.packet"
+    "av.plane"
+    "av.stream"
+    "av.subtitles"
+    "av.utils"
+    "av.video"
+  ];
 
-  meta = {
+  meta = with lib; {
     description = "Pythonic bindings for FFmpeg/Libav";
     homepage = "https://github.com/mikeboers/PyAV/";
-    license = lib.licenses.bsd2;
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/awesomeversion/default.nix b/pkgs/development/python-modules/awesomeversion/default.nix
index f74a6af84757c..c1fca79f81c6d 100644
--- a/pkgs/development/python-modules/awesomeversion/default.nix
+++ b/pkgs/development/python-modules/awesomeversion/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "awesomeversion";
-  version = "22.2.0";
+  version = "22.4.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "ludeeus";
     repo = pname;
     rev = version;
-    sha256 = "sha256-FlJrk/PH3nBLakQfS+ruDwAPH/oo16JcfrtVRFgbUXY=";
+    sha256 = "sha256-bloBP5cKZtvu96HSQ4AmZ5+VeSXGkmN/m4fuyHLrBws=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aws-adfs/default.nix b/pkgs/development/python-modules/aws-adfs/default.nix
index 461ce9d90d9d6..845032ddcb926 100644
--- a/pkgs/development/python-modules/aws-adfs/default.nix
+++ b/pkgs/development/python-modules/aws-adfs/default.nix
@@ -1,31 +1,42 @@
 { lib
+, boto3
 , botocore
 , buildPythonPackage
 , click
 , configparser
-, fetchPypi
+, fetchFromGitHub
+, fetchpatch
 , fido2
-, glibcLocales
-, isPy27
 , lxml
-, mock
+, poetry-core
 , pyopenssl
 , pytestCheckHook
+, pythonOlder
 , requests
 , requests-kerberos
+, toml
 }:
 
 buildPythonPackage rec {
   pname = "aws-adfs";
-  version = "1.24.5";
-  disabled = isPy27;
+  version = "2.0.1";
+  format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "6a78bd31477ea9988166215ae86abcbfe1413bee20373ecdf0dd170b7290db55";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "venth";
+    repo = pname;
+    rev = version;
+    hash = "sha256-0BURXbEOZvb8kszuajLtR+V7HjJycCBAQrm3WqpVB1w=";
   };
 
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
   propagatedBuildInputs = [
+    boto3
     botocore
     click
     configparser
@@ -36,31 +47,38 @@ buildPythonPackage rec {
     requests-kerberos
   ];
 
-  checkInputs = [
-    glibcLocales
-    mock
-    pytestCheckHook
+  patches = [
+    # Switch to poetry-core, https://github.com/venth/aws-adfs/pull/230
+    (fetchpatch {
+      name = "switch-to-poetry-core.patch";
+      url = "https://github.com/venth/aws-adfs/commit/da095ccf64629d36a6045ffec2684038378ee690.patch";
+      sha256 = "sha256-xg4c7iIonkUmNN74q/UeGSuYP3to7q4cLW6+TMW9nh4=";
+    })
   ];
 
-  # Relax version constraint
   postPatch = ''
-    substituteInPlace setup.py \
-      --replace 'coverage < 4' 'coverage' \
-      --replace 'fido2>=0.8.1,<0.9.0' 'fido2>=0.8.1,<1.0.0'
+    substituteInPlace pyproject.toml \
+      --replace 'boto3 = "^1.20.50"' 'boto3 = "*"' \
+      --replace 'botocore = ">=1.12.6"' 'botocore = "*"'
   '';
 
-  # Test suite writes files to $HOME/.aws/, or /homeless-shelter if unset
-  HOME = ".";
+  checkInputs = [
+    pytestCheckHook
+    toml
+  ];
 
-  # Required for python3 tests, along with glibcLocales
-  LC_ALL = "en_US.UTF-8";
+  preCheck = ''
+    export HOME=$(mktemp -d);
+  '';
 
-  pythonImportsCheck = [ "aws_adfs" ];
+  pythonImportsCheck = [
+    "aws_adfs"
+  ];
 
   meta = with lib; {
-    description = "Command line tool to ease aws cli authentication against ADFS";
+    description = "Command line tool to ease AWS CLI authentication against ADFS";
     homepage = "https://github.com/venth/aws-adfs";
     license = licenses.psfl;
-    maintainers = [ maintainers.bhipple ];
+    maintainers = with maintainers; [ bhipple ];
   };
 }
diff --git a/pkgs/development/python-modules/awscrt/default.nix b/pkgs/development/python-modules/awscrt/default.nix
index 6197914f435be..cc43d411039f2 100644
--- a/pkgs/development/python-modules/awscrt/default.nix
+++ b/pkgs/development/python-modules/awscrt/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "awscrt";
-  version = "0.13.7";
+  version = "0.13.9";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-FCmdYuXh8+nWfeGbJ9IhfwASFsZoxOp7jL+5/TrtG5Q=";
+    hash = "sha256-9XUzHfezr+bhQt6OKYiVEaCHqqWE6J7Y4Rj3MmaMAXA=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [
diff --git a/pkgs/development/python-modules/awsiotpythonsdk/default.nix b/pkgs/development/python-modules/awsiotpythonsdk/default.nix
index fc188ae683c6a..7ec8b9008fd4a 100644
--- a/pkgs/development/python-modules/awsiotpythonsdk/default.nix
+++ b/pkgs/development/python-modules/awsiotpythonsdk/default.nix
@@ -6,7 +6,7 @@
 
 buildPythonPackage rec {
   pname = "AWSIoTPythonSDK";
-  version = "1.5.1";
+  version = "1.5.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -14,8 +14,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "aws";
     repo = "aws-iot-device-sdk-python";
-    rev = "v${version}";
-    sha256 = "sha256-UpfgoCVbweOpWbgaqNebAAkWmhjkZu3txVoTZ/qhl3g=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-GHMnDRxXkaKDTaawwPtMqa7EZJ8Y35+ScgtfEP9PJGs=";
   };
 
   # Module has no tests
diff --git a/pkgs/development/python-modules/azure-common/default.nix b/pkgs/development/python-modules/azure-common/default.nix
index 2312df1cafaf0..a540ebf0beadd 100644
--- a/pkgs/development/python-modules/azure-common/default.nix
+++ b/pkgs/development/python-modules/azure-common/default.nix
@@ -9,14 +9,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.1.27";
+  version = "1.1.28";
   pname = "azure-common";
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "9f3f5d991023acbd93050cf53c4e863c6973ded7e236c69e99c8ff5c7bad41ef";
+    sha256 = "sha256-SsDNMhTja2obakQmhnIqXYzESWA6qDPz8PQL2oNnBKM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-core/default.nix b/pkgs/development/python-modules/azure-core/default.nix
index b7d330e6eff90..260a40e9de806 100644
--- a/pkgs/development/python-modules/azure-core/default.nix
+++ b/pkgs/development/python-modules/azure-core/default.nix
@@ -15,19 +15,20 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.21.1";
+  version = "1.23.1";
   pname = "azure-core";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "88d2db5cf9a135a7287dc45fdde6b96f9ca62c9567512a3bb3e20e322ce7deb2";
+    sha256 = "sha256-KKAd+68KaBLE4qgtFkLqMJVqlznyW8d8myO5H06mjw8=";
   };
 
   propagatedBuildInputs = [
     requests
     six
+    typing-extensions
   ];
 
   checkInputs = [
@@ -41,7 +42,6 @@ buildPythonPackage rec {
     pytest-asyncio
     pytestCheckHook
     trio
-    typing-extensions
   ];
 
   # test server needs to be available
@@ -57,6 +57,8 @@ buildPythonPackage rec {
     "response"
     "request"
     "timeout"
+    "test_sync_transport_short_read_download_stream"
+    "test_aio_transport_short_read_download_stream"
   # disable 8 tests failing on some darwin machines with errors:
   # azure.core.polling.base_polling.BadStatus: Invalid return status 403 for 'GET' operation
   # azure.core.exceptions.HttpResponseError: Operation returned an invalid status 'Forbidden'
diff --git a/pkgs/development/python-modules/azure-eventgrid/default.nix b/pkgs/development/python-modules/azure-eventgrid/default.nix
index a5e06a4f54f28..861f9ccd0f9b0 100644
--- a/pkgs/development/python-modules/azure-eventgrid/default.nix
+++ b/pkgs/development/python-modules/azure-eventgrid/default.nix
@@ -5,16 +5,20 @@
 , azure-common
 , azure-core
 , msrestazure
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "azure-eventgrid";
-  version = "4.7.1";
+  version = "4.8.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "b96afc0317c764c2c428512485305ec5748698081cb6bc70dcaa903b0ac04754";
+    hash = "sha256-8jEtTQTUJLSa2iuA/Sgirgcm8kbwWOT11O1n46CLouw=";
   };
 
   propagatedBuildInputs = [
@@ -26,7 +30,10 @@ buildPythonPackage rec {
 
   # has no tests
   doCheck = false;
-  pythonImportsCheck = [ "azure.eventgrid" ];
+
+  pythonImportsCheck = [
+    "azure.eventgrid"
+  ];
 
   meta = with lib; {
     description = "A fully-managed intelligent event routing service that allows for uniform event consumption using a publish-subscribe model";
diff --git a/pkgs/development/python-modules/azure-identity/default.nix b/pkgs/development/python-modules/azure-identity/default.nix
index ea0696e294a07..c4897fb306f9b 100644
--- a/pkgs/development/python-modules/azure-identity/default.nix
+++ b/pkgs/development/python-modules/azure-identity/default.nix
@@ -16,14 +16,19 @@
 
 buildPythonPackage rec {
   pname = "azure-identity";
-  version = "1.8.0";
+  version = "1.9.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "sha256-Ag/w5HFXhS5KrIo62waEGCcUfyepTL50qQRCXY5i2Tw=";
+    sha256 = "sha256-CFTRnaTFZEZBgU3E+VHELgFAC1eS8J37a/+nJti5Fg0=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "msal-extensions~=0.3.0" "msal-extensions"
+  '';
+
   propagatedBuildInputs = [
     azure-common
     azure-core
diff --git a/pkgs/development/python-modules/azure-keyvault-keys/default.nix b/pkgs/development/python-modules/azure-keyvault-keys/default.nix
index 8ce81bc3d6169..d9e37f1b8826d 100644
--- a/pkgs/development/python-modules/azure-keyvault-keys/default.nix
+++ b/pkgs/development/python-modules/azure-keyvault-keys/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "azure-keyvault-keys";
-  version = "4.5.0";
+  version = "4.5.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    hash = "sha256-x1AhiARXZXcky3A+DJXoCrvkqsonlkgdrdr6es/VY3s=";
+    hash = "sha256-2ojnH+ySoU+1jOyIaKv366BAGI3Nzjac4QUK3RllhvY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
index 00e24a2d9f181..4a502ac65dbfb 100644
--- a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-containerservice";
-  version = "18.0.0";
+  version = "19.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "sha256-b4AwcnSp6JOtG8VaBbUN7d/NIhHN2TPnyjzCUVhMOzg=";
+    sha256 = "sha256-UHkSUoNzXWomr4vczGRRXVJplVRfqDjwFczkOP2Jwsc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-core/default.nix b/pkgs/development/python-modules/azure-mgmt-core/default.nix
index 6adca4c02c7a5..0a65dbfb7ec82 100644
--- a/pkgs/development/python-modules/azure-mgmt-core/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-core/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , azure-core
+, typing-extensions
 }:
 
 buildPythonPackage rec {
@@ -16,6 +17,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     azure-core
+    typing-extensions
   ];
 
   pythonNamespaces = "azure.mgmt";
diff --git a/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix b/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
index eed367c2206da..d26033c414f1f 100644
--- a/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
@@ -5,18 +5,20 @@
 , msrestazure
 , azure-common
 , azure-mgmt-core
-, azure-mgmt-nspkg
-, isPy3k
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-datafactory";
-  version = "2.3.0";
+  version = "2.4.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "sha256-pjBjFPkKhKd8XI6wmzX/rAssHINMzDAZa+XRqG/pLYo=";
+    hash = "sha256-oCDh7tWsBA6z/auQm3AtkRzT9IUrq8HJ+R//HDJ+1nw=";
   };
 
   propagatedBuildInputs = [
@@ -24,8 +26,6 @@ buildPythonPackage rec {
     msrestazure
     azure-common
     azure-mgmt-core
-  ] ++ lib.optionals (!isPy3k) [
-    azure-mgmt-nspkg
   ];
 
   # has no tests
diff --git a/pkgs/development/python-modules/azure-mgmt-kusto/azure-mgmt-apimanagement/default.nix b/pkgs/development/python-modules/azure-mgmt-kusto/azure-mgmt-apimanagement/default.nix
index 4c7233203bb92..4c61b55b666c9 100644
--- a/pkgs/development/python-modules/azure-mgmt-kusto/azure-mgmt-apimanagement/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-kusto/azure-mgmt-apimanagement/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.1.0";
+  version = "3.0.0";
   pname = "azure-mgmt-apimanagement";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "58296bd45e876df33f93f3a41c866c36476f5f3bd46818e8891308794f041c94";
+    sha256 = "sha256-kmL1TtOH6wg9ja5m0yqN81ZHMZuQK9SYzcN29QoS0VQ=";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix b/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
index 947bb4a28ba97..9629c6e7bba06 100644
--- a/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
@@ -4,7 +4,6 @@
 , msrest
 , msrestazure
 , azure-common
-, azure-mgmt-nspkg
 , azure-mgmt-core
 }:
 
@@ -22,7 +21,6 @@ buildPythonPackage rec {
     msrest
     msrestazure
     azure-common
-    azure-mgmt-nspkg
     azure-mgmt-core
   ];
 
diff --git a/pkgs/development/python-modules/azure-mgmt-msi/default.nix b/pkgs/development/python-modules/azure-mgmt-msi/default.nix
index bf81b5e67c72d..1f1a2dde37627 100644
--- a/pkgs/development/python-modules/azure-mgmt-msi/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-msi/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-msi";
-  version = "1.0.0";
+  version = "6.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0n4gbwk843z66hhpcp1kcrnwqkzygbbc2ma01r9asgfv4nmklvyl";
+    sha256 = "sha256-RpmYeF6LRKqu0KrjNAFAaOGxyfPuK+TImOumP+FPX2w=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-reservations/default.nix b/pkgs/development/python-modules/azure-mgmt-reservations/default.nix
index 7e08b16166d7a..0be05eb390f14 100644
--- a/pkgs/development/python-modules/azure-mgmt-reservations/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-reservations/default.nix
@@ -5,18 +5,20 @@
 , msrestazure
 , azure-common
 , azure-mgmt-core
-, azure-mgmt-nspkg
-, isPy3k
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-reservations";
-  version = "1.0.0";
+  version = "2.0.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "880df54fdf3869ee6b142d4fc7a3fce518c850523c42cc895b7fb8359956554e";
+    hash = "sha256-5vXdXiRubnzPk4uTFeNHR6rwiHSGbeUREX9eW1pqC3E=";
   };
 
   propagatedBuildInputs = [
@@ -24,8 +26,6 @@ buildPythonPackage rec {
     msrestazure
     azure-common
     azure-mgmt-core
-  ] ++ lib.optionals (!isPy3k) [
-    azure-mgmt-nspkg
   ];
 
   # has no tests
diff --git a/pkgs/development/python-modules/azure-mgmt-servicelinker/default.nix b/pkgs/development/python-modules/azure-mgmt-servicelinker/default.nix
index 58d32853194bd..55f4d9284923d 100644
--- a/pkgs/development/python-modules/azure-mgmt-servicelinker/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-servicelinker/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-servicelinker";
-  version = "1.0.0b1";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4f70d3bcd98ba539bfef870e3c497ebdc5efed3200c2627a61718baa9ab21a61";
+    sha256 = "sha256-lAjgwEa2TJDEUU8pwfwkU8EyA1bhLkcAv++I6WHb7Xs=";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/azure-mgmt-storage/default.nix b/pkgs/development/python-modules/azure-mgmt-storage/default.nix
index cd7e96049d1fc..8bc69d0c9b72b 100644
--- a/pkgs/development/python-modules/azure-mgmt-storage/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-storage/default.nix
@@ -3,18 +3,20 @@
 , fetchPypi
 , azure-mgmt-common
 , azure-mgmt-core
-, isPy3k
+, pythonOlder
 }:
 
 buildPythonPackage rec {
-  version = "19.1.0";
+  version = "20.0.0";
   pname = "azure-mgmt-storage";
-  disabled = !isPy3k;
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "sha256-Seoi8A4JZaNVCvNKQcGh06SBaQ9lAMeOhUCIAvVtdBY=";
+    hash = "sha256-buR2tWIv9vWVTt7m6w2N1CezIXAihVrfHshjPKBM3uI=";
   };
 
   propagatedBuildInputs = [
@@ -22,9 +24,13 @@ buildPythonPackage rec {
     azure-mgmt-core
   ];
 
-  pythonNamespaces = [ "azure.mgmt" ];
+  pythonNamespaces = [
+    "azure.mgmt"
+  ];
 
-  pythonImportsCheck = [ "azure.mgmt.storage" ];
+  pythonImportsCheck = [
+    "azure.mgmt.storage"
+  ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-mgmt-trafficmanager/default.nix b/pkgs/development/python-modules/azure-mgmt-trafficmanager/default.nix
index dd7ed3b19b213..68d14c49ef6a8 100644
--- a/pkgs/development/python-modules/azure-mgmt-trafficmanager/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-trafficmanager/default.nix
@@ -4,24 +4,26 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 , isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-trafficmanager";
-  version = "0.51.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "fc8ae77022cfe52fda4379a2f31e0b857574d536e41291a7b569b5c0f4104186";
+    sha256 = "sha256-R0F2HoA0bE7dTLPycTaOqYBj+ATQFeJFwv4EjtK1lqg=";
   };
 
   propagatedBuildInputs = [
     msrest
     msrestazure
     azure-common
+    azure-mgmt-core
   ] ++ lib.optionals (!isPy3k) [
     azure-mgmt-nspkg
   ];
diff --git a/pkgs/development/python-modules/azure-servicebus/default.nix b/pkgs/development/python-modules/azure-servicebus/default.nix
index b4e37c33fef9f..a0864529177fc 100644
--- a/pkgs/development/python-modules/azure-servicebus/default.nix
+++ b/pkgs/development/python-modules/azure-servicebus/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "azure-servicebus";
-  version = "7.5.0";
+  version = "7.6.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "e97a069c6a73fce3042a5ef0d438cc564152cfbcc2e7db6f7a19fbd51bb3555b";
+    sha256 = "sha256-uZGxQ1Vl6wpBCMW1+80/CBuqelLV02yXf1sNlNtCpHU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-synapse-artifacts/default.nix b/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
index 5a83385b75410..de0909fa0c02f 100644
--- a/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
+++ b/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "azure-synapse-artifacts";
-  version = "0.12.0";
+  version = "0.13.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "sha256-IfQWsITuThzh+TRgv99JTtcDFY3gMq5PjALkN4mJEZo=";
+    sha256 = "sha256-WJZtE7efs1xwalyb0Sr2J+pmPIt9gn2o01/prncb2uM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/backports-zoneinfo/default.nix b/pkgs/development/python-modules/backports-zoneinfo/default.nix
index 0b4703e265161..d2b6d06c4cdbb 100644
--- a/pkgs/development/python-modules/backports-zoneinfo/default.nix
+++ b/pkgs/development/python-modules/backports-zoneinfo/default.nix
@@ -1,4 +1,5 @@
 { lib, buildPythonPackage, fetchFromGitHub
+, pythonAtLeast
 , pythonOlder
 , python
 , substituteAll
@@ -12,6 +13,8 @@ buildPythonPackage rec {
   pname = "backports-zoneinfo";
   version = "0.2.1";
 
+  disabled = pythonAtLeast "3.9";
+
   src = fetchFromGitHub {
     owner = "pganssle";
     repo = "zoneinfo";
diff --git a/pkgs/development/python-modules/basemap/default.nix b/pkgs/development/python-modules/basemap/default.nix
index 30ca58fed319e..6d8dd8a3943b0 100644
--- a/pkgs/development/python-modules/basemap/default.nix
+++ b/pkgs/development/python-modules/basemap/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "basemap";
-  version = "1.3.0";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "matplotlib";
     repo = "basemap";
     rev = "v${version}";
-    sha256 = "0nwpd6zx2q2fc556ppz71ra6ad9z0d5bz8hcld64i91dcy0f0zs3";
+    sha256 = "sha256-onNdOQL4i6GTcuCRel5yanJ2EQ5iYClp+imuBObXF2I=";
   };
 
   propagatedBuildInputs = [ numpy matplotlib pillow pyproj pyshp six ];
diff --git a/pkgs/development/python-modules/bc-python-hcl2/default.nix b/pkgs/development/python-modules/bc-python-hcl2/default.nix
index 78529e288ca26..8d5c2d7d4c265 100644
--- a/pkgs/development/python-modules/bc-python-hcl2/default.nix
+++ b/pkgs/development/python-modules/bc-python-hcl2/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "bc-python-hcl2";
-  version = "0.3.33";
+  version = "0.3.39";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-tdsw9gf64VGH9tRWgYZZq3FNa5B5JNhN3k6wUHrU5zY=";
+    hash = "sha256-JMQ2sLgAnMJ1/0nR8LgKbpPB43gVKtCtrZKr/T4p0O8=";
   };
 
   # Nose is required during build process, so can not use `checkInputs`.
diff --git a/pkgs/development/python-modules/bcrypt/default.nix b/pkgs/development/python-modules/bcrypt/default.nix
index d6347b1790465..13fb25d037146 100644
--- a/pkgs/development/python-modules/bcrypt/default.nix
+++ b/pkgs/development/python-modules/bcrypt/default.nix
@@ -1,9 +1,19 @@
-{ lib, buildPythonPackage, isPyPy, fetchPypi, pythonOlder
-, cffi, pycparser, mock, pytest, py, six }:
+{ lib
+, buildPythonPackage
+, setuptools
+, isPyPy
+, fetchPypi
+, pythonOlder
+, cffi
+, pytestCheckHook
+, six
+}:
 
 buildPythonPackage rec {
-  version = "3.2.0";
   pname = "bcrypt";
+  version = "3.2.0";
+  format = "pyproject";
+
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
@@ -11,16 +21,31 @@ buildPythonPackage rec {
     sha256 = "5b93c1726e50a93a033c36e5ca7fdcd29a5c7395af50a6892f5d9e7c6cfbfb29";
   };
 
-  buildInputs = [ pycparser mock pytest py ];
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    six
+    cffi
+  ];
+
+  propagatedNativeBuildInputs = [
+    cffi
+  ];
 
-  propagatedBuildInputs = [ six ] ++ lib.optional (!isPyPy) cffi;
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  propagatedNativeBuildInputs = lib.optional (!isPyPy) cffi;
+  pythonImportsCheck = [
+    "bcrypt"
+  ];
 
   meta = with lib; {
-    maintainers = with maintainers; [ domenkozar ];
     description = "Modern password hashing for your software and your servers";
-    license = licenses.asl20;
     homepage = "https://github.com/pyca/bcrypt/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ domenkozar ];
   };
 }
diff --git a/pkgs/development/python-modules/beautifultable/default.nix b/pkgs/development/python-modules/beautifultable/default.nix
index def8f207ee808..646cfe8af9a2c 100644
--- a/pkgs/development/python-modules/beautifultable/default.nix
+++ b/pkgs/development/python-modules/beautifultable/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, wcwidth
 , pytestCheckHook
 }:
 
@@ -15,6 +16,10 @@ buildPythonPackage rec {
     sha256 = "12ci6jy8qmbphsvzvj98466nlhclfzs0a0pmbsv3mf5bfcdwvbh7";
   };
 
+  propagatedBuildInputs = [
+    wcwidth
+  ];
+
   checkInputs = [
     pytestCheckHook
   ];
@@ -25,7 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python package for printing visually appealing tables";
-    homepage = "https://github.com/CERT-Polska/mwdblib";
+    homepage = "https://github.com/pri22296/beautifultable";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/behave/default.nix b/pkgs/development/python-modules/behave/default.nix
index 1198f034d00ab..5254f79c4b2fd 100644
--- a/pkgs/development/python-modules/behave/default.nix
+++ b/pkgs/development/python-modules/behave/default.nix
@@ -1,22 +1,22 @@
 { lib, stdenv, fetchFromGitHub
 , buildPythonApplication, python
-, pytestCheckHook, mock, pathpy, pyhamcrest, pytest-html
+, pytestCheckHook, mock, path, pyhamcrest, pytest-html
 , glibcLocales
 , colorama, cucumber-tag-expressions, parse, parse-type, six
 }:
 
 buildPythonApplication rec {
   pname = "behave";
-  version = "1.2.7.dev1";
+  version = "1.2.7.dev2";
 
   src = fetchFromGitHub {
     owner = "behave";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ssgixmqlg8sxsyalr83a1970njc2wg3zl8idsmxnsljwacv7qwv";
+    hash = "sha256-B8PUN1Q4UAsDWrHjPZDlpaPjCKjI/pAogCSI+BQnaWs=";
   };
 
-  checkInputs = [ pytestCheckHook mock pathpy pyhamcrest pytest-html ];
+  checkInputs = [ pytestCheckHook mock path pyhamcrest pytest-html ];
 
   # upstream tests are failing, so instead we only check if we can import it
   doCheck = false;
diff --git a/pkgs/development/python-modules/bimmer-connected/default.nix b/pkgs/development/python-modules/bimmer-connected/default.nix
index 8f754b213e819..3e8ba28c717ea 100644
--- a/pkgs/development/python-modules/bimmer-connected/default.nix
+++ b/pkgs/development/python-modules/bimmer-connected/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "bimmer-connected";
-  version = "0.8.11";
+  version = "0.8.12";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "bimmerconnected";
     repo = "bimmer_connected";
     rev = version;
-    hash = "sha256-Ufx9Tl0PmV3AEig3UvejJBVxhewzPN6IRsji5MzVxG8=";
+    hash = "sha256-0yXEm8cjzw1ClSP8a5TB9RrugzgHSu40tTtyNQU4dfY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/bip_utils/default.nix b/pkgs/development/python-modules/bip_utils/default.nix
index a4430b655ce17..932d887754ec4 100644
--- a/pkgs/development/python-modules/bip_utils/default.nix
+++ b/pkgs/development/python-modules/bip_utils/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "bip_utils";
-  version = "2.1.0";
+  version = "2.2.1";
 
   disabled = pythonOlder "3.6";
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "ebellocchia";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1n677z6rvcny1vyfzwnvcmzbqp9m4kfpdjfvkf1q6310zr2ybp7m";
+    sha256 = "sha256-p2JOZAJxQ/nPZ7vjnB24hA3kz3Io4D3HTP/8mqS/XCc=";
   };
 
   propagatedBuildInputs = [ ecdsa pysha3 ];
diff --git a/pkgs/development/python-modules/bitarray/default.nix b/pkgs/development/python-modules/bitarray/default.nix
index be7f69fbd8dcc..d5806d77112d5 100644
--- a/pkgs/development/python-modules/bitarray/default.nix
+++ b/pkgs/development/python-modules/bitarray/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "bitarray";
-  version = "2.4.0";
+  version = "2.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-8SA+kC1R3zGRfXfuupw/540DKHOirXjHN+JkIPAIDlg=";
+    sha256 = "sha256-+uygP5eemSzHb3QGr365eVyxEbjYlpyJGgMr10l8h9o=";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/bitbox02/default.nix b/pkgs/development/python-modules/bitbox02/default.nix
index d57d4a6585bd4..358a4d163f3e2 100644
--- a/pkgs/development/python-modules/bitbox02/default.nix
+++ b/pkgs/development/python-modules/bitbox02/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "bitbox02";
-  version = "5.3.0";
+  version = "6.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fe0e8aeb9b32fd7d76bb3e9838895973a74dfd532a8fb8ac174a1a60214aee26";
+    sha256 = "sha256-wTateh3dJycFNozLaQbAzXF0avr2ofBdjlqqcOBLr/0=";
   };
 
   propagatedBuildInputs = [ base58 ecdsa hidapi noiseprotocol protobuf semver typing-extensions ];
diff --git a/pkgs/development/python-modules/bitcoin-price-api/default.nix b/pkgs/development/python-modules/bitcoin-price-api/default.nix
deleted file mode 100644
index c9d317a81c3c3..0000000000000
--- a/pkgs/development/python-modules/bitcoin-price-api/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi
-, python-dateutil, requests }:
-
-buildPythonPackage rec {
-  pname = "bitcoin-price-api";
-  version = "0.0.4";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "bc68076f9632aaa9a8009d916d67a709c1e045dd904cfc7a3e8be33960d32029";
-  };
-
-  propagatedBuildInputs = [ python-dateutil requests ];
-
-  # No tests in archive
-  doCheck = false;
-
-  meta = {
-    homepage = "https://github.com/dursk/bitcoin-price-api";
-    description = "Price APIs for bitcoin exchanges";
-    license = with lib.licenses; [ mit ];
-    maintainers = with lib.maintainers; [ bhipple ];
-  };
-}
diff --git a/pkgs/development/python-modules/bitstruct/default.nix b/pkgs/development/python-modules/bitstruct/default.nix
index 78b34dfbf17c1..5867e695b816e 100644
--- a/pkgs/development/python-modules/bitstruct/default.nix
+++ b/pkgs/development/python-modules/bitstruct/default.nix
@@ -1,17 +1,28 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "bitstruct";
-  version = "8.12.1";
+  version = "8.14.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "45b2b932ce6681f5c6ce8cba39abdd423b579b0568c76fa48b1e09c88368ede7";
+    hash = "sha256-04ExvUR7avW49GTEh4eXyHpdnaHJW5NX4HHEJP3l8FU=";
   };
 
+  pythonImportsCheck = [
+    "bitstruct"
+  ];
+
   meta = with lib; {
-    homepage = "https://github.com/eerimoq/bitstruct";
     description = "Python bit pack/unpack package";
+    homepage = "https://github.com/eerimoq/bitstruct";
     license = licenses.mit;
     maintainers = with maintainers; [ jakewaksbaum ];
   };
diff --git a/pkgs/development/python-modules/bjoern/default.nix b/pkgs/development/python-modules/bjoern/default.nix
index ef599d89be2bc..e8b11a6311a4e 100644
--- a/pkgs/development/python-modules/bjoern/default.nix
+++ b/pkgs/development/python-modules/bjoern/default.nix
@@ -1,12 +1,17 @@
-{ lib, buildPythonPackage, fetchPypi, libev, python }:
+{ lib, buildPythonPackage, fetchFromGitHub, libev, python }:
 
 buildPythonPackage rec {
   pname = "bjoern";
-  version = "3.1.0";
+  version = "3.2.1";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "01f3b601cf0ab0a9c7cb9c8f944ab7c738baaa6043ca82db20e9bd7a9be5767b";
+  # tests are not published to pypi anymore
+  src = fetchFromGitHub {
+    owner = "jonashaag";
+    repo = pname;
+    rev = version;
+    hash = "sha256-d7u/lEh2Zr5NYWYu4Zr7kgyeOIQuHQLYrZeiZMHbpio=";
+    fetchSubmodules = true; # fetch http-parser and statsd-c-client submodules
   };
 
   buildInputs = [ libev ];
diff --git a/pkgs/development/python-modules/black/default.nix b/pkgs/development/python-modules/black/default.nix
index 064fe8187edcc..884629da0ffe5 100644
--- a/pkgs/development/python-modules/black/default.nix
+++ b/pkgs/development/python-modules/black/default.nix
@@ -23,13 +23,13 @@
 
 buildPythonPackage rec {
   pname = "black";
-  version = "22.1.0";
+  version = "22.3.0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-p8AZLTVjX2/BF0vldct5FekuXdYp7nn9rw3PpBqAr7U=";
+    hash = "sha256-NQILiIbAIs7ZKCtRtah1ttGrDDh7MaBluE23wzCFynk=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/blessed/default.nix b/pkgs/development/python-modules/blessed/default.nix
index c2b03d35a21c3..592c36692d0fd 100644
--- a/pkgs/development/python-modules/blessed/default.nix
+++ b/pkgs/development/python-modules/blessed/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "blessed";
-  version = "1.19.0";
+  version = "1.19.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4db0f94e5761aea330b528e84a250027ffe996b5a94bf03e502600c9a5ad7a61";
+    sha256 = "sha256-mg0JlpW/Yh1GgN1sc/atVH9qNEL72+gMSx2qHtvEkvw=";
   };
 
   checkInputs = [ pytest mock glibcLocales ];
diff --git a/pkgs/development/python-modules/blinker/default.nix b/pkgs/development/python-modules/blinker/default.nix
index ca59a0d710aba..53aaacbdf820a 100644
--- a/pkgs/development/python-modules/blinker/default.nix
+++ b/pkgs/development/python-modules/blinker/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, nose, pytestCheckHook }:
+{ lib, buildPythonPackage, fetchPypi, nose }:
 
 buildPythonPackage rec {
   pname = "blinker";
@@ -9,13 +9,18 @@ buildPythonPackage rec {
     sha256 = "1dpq0vb01p36jjwbhhd08ylvrnyvcc82yxx3mwjx6awrycjyw6j7";
   };
 
-  checkInputs = [ nose pytestCheckHook ];
+  checkInputs = [ nose ];
+
+  checkPhase = ''
+    nosetests
+  '';
+
   pythonImportsCheck = [ "blinker" ];
 
   meta = with lib; {
     homepage = "https://pythonhosted.org/blinker/";
     description = "Fast, simple object-to-object and broadcast signaling";
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/blspy/default.nix b/pkgs/development/python-modules/blspy/default.nix
index aac2c2b973918..9f07fa764f9d7 100644
--- a/pkgs/development/python-modules/blspy/default.nix
+++ b/pkgs/development/python-modules/blspy/default.nix
@@ -27,10 +27,10 @@ buildPythonPackage rec {
       src = ./dont_fetch_dependencies.patch;
       pybind11_src = pybind11.src;
       relic_src = fetchFromGitHub {
-        owner = "relic-toolkit";
+        owner = "Chia-Network";
         repo = "relic";
-        rev = "1885ae3b681c423c72b65ce1fe70910142cf941c"; # pinned by blspy
-        hash = "sha256-tsSZTcssl8t7Nqdex4BesgQ+ACPgTdtHnJFvS9josN0=";
+        rev = "1d98e5abf3ca5b14fd729bd5bcced88ea70ecfd7"; # pinned by blspy
+        hash = "sha256-IfTD8DvTEXeLUoKe4Ejafb+PEJW5DV/VXRYuutwGQHU=";
       };
       sodium_src = fetchFromGitHub {
         owner = "AmineKhaldi";
diff --git a/pkgs/development/python-modules/boltztrap2/default.nix b/pkgs/development/python-modules/boltztrap2/default.nix
index e697d97fea781..ad28d461faffa 100644
--- a/pkgs/development/python-modules/boltztrap2/default.nix
+++ b/pkgs/development/python-modules/boltztrap2/default.nix
@@ -14,32 +14,45 @@
 }:
 
 buildPythonPackage rec {
-  version = "22.3.2";
-  pname = "BoltzTraP2";
+  pname = "boltztrap2";
+  version = "22.4.1";
+  format = "setuptools";
+
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-Yo37xdXxCQKkA+lrFEZp1DxjJy216Q6aYYT68PEx9JU=";
+    pname = "BoltzTraP2";
+    inherit version;
+    hash = "sha256-lGwKHWAslCmb9bVQELHD6kAay+dnieiNsSAfAyNFLPM=";
   };
 
   dontUseCmakeConfigure = true;
 
-  nativeBuildInputs = [ cmake cython ];
-  checkInputs = [ pytest ];
-  propagatedBuildInputs = [ spglib numpy scipy matplotlib ase netcdf4 ];
+  nativeBuildInputs = [
+    cmake
+    cython
+  ];
+
+  propagatedBuildInputs = [
+    spglib
+    numpy
+    scipy
+    matplotlib
+    ase
+    netcdf4
+  ];
 
   # pypi release does no include files for tests
   doCheck = false;
 
-  checkPhase = ''
-    py.test
-  '';
+  pythonImportsCheck = [
+    "BoltzTraP2"
+  ];
 
   meta = with lib; {
-    homepage = "http://www.boltztrap.org/";
     description = "Band-structure interpolator and transport coefficient calculator";
-    license = licenses.gpl3;
-    maintainers = [ maintainers.costrouc ];
+    homepage = "http://www.boltztrap.org/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/boschshcpy/default.nix b/pkgs/development/python-modules/boschshcpy/default.nix
index 518a2d8b69e0d..277a55637f733 100644
--- a/pkgs/development/python-modules/boschshcpy/default.nix
+++ b/pkgs/development/python-modules/boschshcpy/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "boschshcpy";
-  version = "0.2.30";
+  version = "0.2.32";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "tschamm";
     repo = pname;
     rev = version;
-    sha256 = "sha256-qq01hnNiJ6BUGhi5owYvxM+Kj7/KYp0vBpILmwPuZaw=";
+    sha256 = "sha256-tJlgmxa6HppLLTs4ZggnJ5H6NOH3v+C9pUfLBmxr4XY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/boto3/default.nix b/pkgs/development/python-modules/boto3/default.nix
index c6fdc8c9981c5..d849d49b64f85 100644
--- a/pkgs/development/python-modules/boto3/default.nix
+++ b/pkgs/development/python-modules/boto3/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "boto3";
-  version = "1.20.35"; # N.B: if you change this, change botocore and awscli to a matching version
+  version = "1.21.30"; # N.B: if you change this, change botocore and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "42dd9fcb9e033ab19c9dfaeaba745ef9d2db6efe4e9f1e1f547b3e3e0b1f4a82";
+    sha256 = "sha256-8K+PTvX+Y1PHlM08zmJ9Rpphi1is58p1pjz9cZ32Fc4=";
   };
 
   propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];
diff --git a/pkgs/development/python-modules/botocore/default.nix b/pkgs/development/python-modules/botocore/default.nix
index 6d5c11665c2cb..52b8d8d37fc14 100644
--- a/pkgs/development/python-modules/botocore/default.nix
+++ b/pkgs/development/python-modules/botocore/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "botocore";
-  version = "1.23.35"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.24.33"; # N.B: if you change this, change boto3 and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5be6ba6c5ea71c256da8a5023bf9c278847c4b90fdb40f2c4c3bdb21ca11ff28";
+    sha256 = "sha256-6l/RgAggMKbDP6Gb8BHXKXDz7SPP/xtBQTBp4yV2gQM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/bottleneck/default.nix b/pkgs/development/python-modules/bottleneck/default.nix
index f7e7dc7c390c1..4197920d2b9a4 100644
--- a/pkgs/development/python-modules/bottleneck/default.nix
+++ b/pkgs/development/python-modules/bottleneck/default.nix
@@ -1,32 +1,47 @@
-{ lib, buildPythonPackage, fetchPypi
-, nose
+{ lib
+, buildPythonPackage
+, fetchPypi
 , numpy
-, pytest
+, pytestCheckHook
 , python
+, pythonOlder
 }:
 
 buildPythonPackage rec {
-  pname = "Bottleneck";
-  version = "1.3.2";
+  pname = "bottleneck";
+  version = "1.3.4";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "20179f0b66359792ea283b69aa16366419132f3b6cf3adadc0c48e2e8118e573";
+    pname = "Bottleneck";
+    inherit version;
+    hash = "sha256-F2Sn9K1YxVhyPFQoR+s2erC7ttiApOXV7vMKDs5c7Oo=";
   };
 
-  propagatedBuildInputs = [ numpy ];
+  propagatedBuildInputs = [
+    numpy
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    "$out/${python.sitePackages}"
+  ];
 
-  postPatch = ''
-    substituteInPlace setup.py --replace "__builtins__.__NUMPY_SETUP__ = False" ""
-  '';
+  disabledTests = [
+    "test_make_c_files"
+  ];
 
-  checkInputs = [ pytest nose ];
-  checkPhase = ''
-    py.test -p no:warnings $out/${python.sitePackages}
-  '';
+  pythonImportsCheck = [
+    "bottleneck"
+  ];
 
   meta = with lib; {
-    description = "Fast NumPy array functions written in C";
+    description = "Fast NumPy array functions";
     homepage = "https://github.com/pydata/bottleneck";
     license = licenses.bsd2;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/boxx/default.nix b/pkgs/development/python-modules/boxx/default.nix
index a3f0db80fafe8..10032f0ae58fe 100644
--- a/pkgs/development/python-modules/boxx/default.nix
+++ b/pkgs/development/python-modules/boxx/default.nix
@@ -13,16 +13,20 @@
 , pyopengl
 , seaborn
 , pytorch
+, pythonOlder
 , torchvision
 }:
 
 buildPythonPackage rec {
   pname = "boxx";
-  version = "0.9.9";
+  version = "0.10.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Mc6R6ruUVhFs2D0CTJsAiM9aGOusS973hRS5r2kQsy4=";
+    hash = "sha256-1Q6wCloOCfyDmvC8VbK6GgfnxuliJ6Ze7UEvsNFBVa0=";
   };
 
   propagatedBuildInputs = [
@@ -37,19 +41,22 @@ buildPythonPackage rec {
     seaborn
   ];
 
-  pythonImportsCheck = [ "boxx" ];
   checkInputs = [
     xvfb-run
     pytorch
     torchvision
   ];
 
+  pythonImportsCheck = [
+    "boxx"
+  ];
+
   checkPhase = ''
     xvfb-run ${python.interpreter} -m unittest
   '';
 
   meta = with lib; {
-    description = "Tool-box for efficient build and debug in Python. Especially for Scientific Computing and Computer Vision.";
+    description = "Tool-box for efficient build and debug for Scientific Computing and Computer Vision";
     homepage = "https://github.com/DIYer22/boxx";
     license = licenses.mit;
     maintainers = with maintainers; [ lucasew ];
diff --git a/pkgs/development/python-modules/brother/default.nix b/pkgs/development/python-modules/brother/default.nix
index 17d46940e254e..db4ef16522e83 100644
--- a/pkgs/development/python-modules/brother/default.nix
+++ b/pkgs/development/python-modules/brother/default.nix
@@ -1,37 +1,29 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, pysnmp
+, pysnmplib
 , pytest-asyncio
 , pytest-error-for-skips
-, pytest-runner
 , pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "brother";
-  version = "1.1.0";
+  version = "1.2.0";
+  format = "setuptools";
+
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "bieniu";
     repo = pname;
     rev = version;
-    sha256 = "sha256-ZDQIpzdr3XkYrSUgrBDZsUwUZRQCdJdvmniMezvJxzU=";
+    hash = "sha256-hKOZ5pTDwhM0lOXoatXXVvEVxiTfxIpBRe3fFcUfzwE=";
   };
 
-  nativeBuildInputs = [
-    pytest-runner
-  ];
-
-  postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace "--cov --cov-report term-missing " ""
-  '';
-
   propagatedBuildInputs = [
-    pysnmp
+    pysnmplib
   ];
 
   checkInputs = [
@@ -40,7 +32,16 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "brother" ];
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "--cov --cov-report term-missing " ""
+    substituteInPlace setup.py \
+      --replace '"pytest-runner"' ""
+  '';
+
+  pythonImportsCheck = [
+    "brother"
+  ];
 
   meta = with lib; {
     description = "Python wrapper for getting data from Brother laser and inkjet printers via SNMP";
diff --git a/pkgs/development/python-modules/bsblan/default.nix b/pkgs/development/python-modules/bsblan/default.nix
index 6db9523477522..ed13a3a3a7ba7 100644
--- a/pkgs/development/python-modules/bsblan/default.nix
+++ b/pkgs/development/python-modules/bsblan/default.nix
@@ -5,6 +5,8 @@
 , aresponses
 , coverage
 , mypy
+, poetry-core
+, pydantic
 , pytest-asyncio
 , pytest-cov
 , pytest-mock
@@ -17,22 +19,27 @@
 
 buildPythonPackage rec {
   pname = "bsblan";
-  version = "0.5.0";
-  format = "setuptools";
+  version = "0.5.5";
+  format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "liudger";
     repo = "python-bsblan";
-    rev = "v.${version}";
-    sha256 = "1j41y2njnalcsp1vjqwl508yp3ki82lv8108ijz52hprhrq4fffb";
+    rev = "v${version}";
+    sha256 = "sha256-kq4cML7D9XC/QRPjGfaWcs0H78OOc2IXGua7qJpWYOQ=";
   };
 
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
   propagatedBuildInputs = [
     aiohttp
     attrs
     cattrs
+    pydantic
     yarl
   ];
 
diff --git a/pkgs/development/python-modules/build/default.nix b/pkgs/development/python-modules/build/default.nix
index f1f7f0e81bd25..d36804649b7e3 100644
--- a/pkgs/development/python-modules/build/default.nix
+++ b/pkgs/development/python-modules/build/default.nix
@@ -52,8 +52,6 @@ buildPythonPackage rec {
   ];
 
   pytestFlagsArray = [
-    "-n"
-    "$NIX_BUILD_CORES"
     "-W"
     "ignore::DeprecationWarning"
   ];
diff --git a/pkgs/development/python-modules/buildbot/default.nix b/pkgs/development/python-modules/buildbot/default.nix
index 2836ee24c34a4..743c9f2c4b117 100644
--- a/pkgs/development/python-modules/buildbot/default.nix
+++ b/pkgs/development/python-modules/buildbot/default.nix
@@ -31,11 +31,11 @@ let
 
   package = buildPythonPackage rec {
     pname = "buildbot";
-    version = "3.4.1";
+    version = "3.5.0";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "sha256-GmKMqejHjtEiEtlZffze7PGNjVwUKB/ZcvUgJ4DoeDQ=";
+      sha256 = "sha256-woGHdCan5qTp00toNkWa821EgVQMrPK+OWXoqFcgIDQ=";
     };
 
     propagatedBuildInputs = [
@@ -92,6 +92,9 @@ let
     preCheck = ''
       export LC_ALL="en_US.UTF-8"
       export PATH="$out/bin:$PATH"
+
+      # remove testfile which is missing configuration file from sdist
+      rm buildbot/test/integration/test_graphql.py
     '';
 
     disabled = !isPy3k;
diff --git a/pkgs/development/python-modules/buildbot/pkg.nix b/pkgs/development/python-modules/buildbot/pkg.nix
index a35506c89b8de..a2cffd739d1a7 100644
--- a/pkgs/development/python-modules/buildbot/pkg.nix
+++ b/pkgs/development/python-modules/buildbot/pkg.nix
@@ -6,7 +6,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-A2a5rEL5MN9jlu5vVnUIKx9ma2H6wuJAWjkqLpQgcfc=";
+    sha256 = "sha256-CYbMixfZZ1xypV0J7TW54n/fja9RGMlWiF7StJYFnqM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/buildbot/plugins.nix b/pkgs/development/python-modules/buildbot/plugins.nix
index 5b64f4c51ab99..62aa51e053dcb 100644
--- a/pkgs/development/python-modules/buildbot/plugins.nix
+++ b/pkgs/development/python-modules/buildbot/plugins.nix
@@ -7,7 +7,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "sha256-Hly1dwUbWblHoP+ufjxyz4boXby8kxeFSHLMHcCpc1o=";
+      sha256 = "sha256-boa/MWi/HAhNU3/n96i0fuoQ+jT5I+dWoe1Zd7f/Yvs=";
     };
 
     # Remove unneccessary circular dependency on buildbot
@@ -34,7 +34,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "sha256-QuV808Wg9epCgjehuUaMKCLLTLfFJVWBdKPy8sZfBYg=";
+      sha256 = "sha256-NUDTwgkQuasOlJxNTlvfIm99LNVCrRIdBmgeJnwkSU8=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -56,7 +56,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "sha256-p8PRQaWrPb63RrF4FtTX65qM3HdzI4Gl4tR0zTOBFEI=";
+      sha256 = "sha256-EmiIDCG4iFIwFnwii8fjII7C7wsBifzeZeW7HyY04dE=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -78,7 +78,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "sha256-cNYptEp98padbyoY1DmZbpaED7O5pfck9oMjst4RHnI=";
+      sha256 = "sha256-QcS8QJ17uzDvkynTczj05LojuIT6feGiQNCwCESbVLw=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -100,7 +100,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "sha256-o747SIyqJom4ucZ7hmODcP0VC7i+ydgvi+oMxn/vupc=";
+      sha256 = "sha256-U9ecRxpDowzjD4GsrW4FUHcbNaWeAFGKDlqMrbIoTrQ=";
     };
 
     buildInputs = [ buildbot-pkg ];
diff --git a/pkgs/development/python-modules/buildbot/worker.nix b/pkgs/development/python-modules/buildbot/worker.nix
index 97a3eec770bd8..8c5319868ce5b 100644
--- a/pkgs/development/python-modules/buildbot/worker.nix
+++ b/pkgs/development/python-modules/buildbot/worker.nix
@@ -1,5 +1,26 @@
-{ lib, buildPythonPackage, fetchPypi, buildbot, setuptoolsTrial, mock, twisted,
-  future, coreutils, nixosTests }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, buildbot
+
+# patch
+, coreutils
+
+# propagates
+, autobahn
+, future
+, msgpack
+, twisted
+
+# tests
+, mock
+, parameterized
+, psutil
+, setuptoolsTrial
+
+# passthru
+, nixosTests
+}:
 
 buildPythonPackage (rec {
   pname = "buildbot-worker";
@@ -7,18 +28,31 @@ buildPythonPackage (rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-9wdUvp00vuP7peJ+Oo4guHLfIz0YWHwp6q/zlKOOoXg=";
+    sha256 = "sha256-HZH3TdH5dhr3f6ev25O3SgPPNbiFGMmAp9DHwcb/2MA=";
   };
 
-  propagatedBuildInputs = [ twisted future ];
-
-  checkInputs = [ setuptoolsTrial mock ];
-
   postPatch = ''
     substituteInPlace buildbot_worker/scripts/logwatcher.py \
       --replace /usr/bin/tail "${coreutils}/bin/tail"
   '';
 
+  nativeBuildInputs = [
+    setuptoolsTrial
+  ];
+
+  propagatedBuildInputs = [
+    autobahn
+    future
+    msgpack
+    twisted
+  ];
+
+  checkInputs = [
+    mock
+    parameterized
+    psutil
+  ];
+
   passthru.tests = {
     smoke-test = nixosTests.buildbot;
   };
diff --git a/pkgs/development/python-modules/caldav/default.nix b/pkgs/development/python-modules/caldav/default.nix
index 27b59cfc07e10..c2ffe1786c488 100644
--- a/pkgs/development/python-modules/caldav/default.nix
+++ b/pkgs/development/python-modules/caldav/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "caldav";
-  version = "0.8.2";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "python-caldav";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-2mpE1aLipps4X/3EF0oKHXDcrgUh78/fxY6y1B1V2IU=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-1pYbL9k2cfjIw9AFiItlDCidxZIuOAoUcgFmSibkphA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/can/default.nix b/pkgs/development/python-modules/can/default.nix
index a68d73e1242c5..8e7a8b7ea0e81 100644
--- a/pkgs/development/python-modules/can/default.nix
+++ b/pkgs/development/python-modules/can/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , future
 , hypothesis
+, packaging
 , parameterized
 , msgpack
 , pyserial
@@ -15,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "python-can";
-  version = "unstable-2022-01-11";
+  version = "4.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -23,12 +24,13 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "hardbyte";
     repo = pname;
-    rev = "2e24af08326ecd69fba9f02fed7b9c26f233c92b";
-    hash = "sha256-ZP5qtbjDtBZ2uT9DOSvSnfHyTlirr0oCEXhiLO1ydz0=";
+    rev = version;
+    hash = "sha256-/z7zBfVbO7x4UtzWOXolH2YrtYWgsvRLObWwz8sqOEc=";
   };
 
   propagatedBuildInputs = [
     msgpack
+    packaging
     pyserial
     typing-extensions
     wrapt
@@ -56,6 +58,9 @@ buildPythonPackage rec {
     # Tests require access socket
     "BasicTestUdpMulticastBusIPv4"
     "BasicTestUdpMulticastBusIPv6"
+    # pytest.approx is not supported in a boolean context (since pytest7)
+    "test_pack_unpack"
+    "test_receive"
   ];
 
   preCheck = ''
diff --git a/pkgs/development/python-modules/casbin/default.nix b/pkgs/development/python-modules/casbin/default.nix
index 12ea06a5c4f7d..433b7644e7a80 100644
--- a/pkgs/development/python-modules/casbin/default.nix
+++ b/pkgs/development/python-modules/casbin/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "casbin";
-  version = "1.15.4";
+  version = "1.15.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -17,8 +17,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = pname;
     repo = "pycasbin";
-    rev = "v${version}";
-    sha256 = "0vczml14dvvrj401r08d6b0rfn5p5kfm1wr0vrfi8rqk2z5x1w0g";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-7q9zTuqdIUAiipA5kh8CwQa/TeiXGsKuGGvYYwTjObw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cattrs/default.nix b/pkgs/development/python-modules/cattrs/default.nix
index e3d694d28e3b3..69a351e3c341c 100644
--- a/pkgs/development/python-modules/cattrs/default.nix
+++ b/pkgs/development/python-modules/cattrs/default.nix
@@ -7,6 +7,7 @@
 , motor
 , msgpack
 , poetry-core
+, pytest-xdist
 , pytestCheckHook
 , pythonOlder
 , pyyaml
@@ -44,12 +45,14 @@ buildPythonPackage rec {
     immutables
     motor
     msgpack
+    pytest-xdist
     pytestCheckHook
     pyyaml
     tomlkit
     ujson
   ];
 
+
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace "-l --benchmark-sort=fullname --benchmark-warmup=true --benchmark-warmup-iterations=5  --benchmark-group-by=fullname" "" \
@@ -75,6 +78,8 @@ buildPythonPackage rec {
   disabledTests = [
     # orjson is not available as it requires Rust nightly features to compile its requirements
     "test_orjson"
+    # tomlkit is pinned to an older version and newer versions raise InvalidControlChar exception
+    "test_tomlkit"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/cbor2/default.nix b/pkgs/development/python-modules/cbor2/default.nix
index cf4813a9d9085..5039872b336f2 100644
--- a/pkgs/development/python-modules/cbor2/default.nix
+++ b/pkgs/development/python-modules/cbor2/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "cbor2";
-  version = "5.4.2";
+  version = "5.4.2.post1";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-4oPnC1WgSf82TMXmSP3lh+TZsOh+SyZkxp5jkTXms7g=";
+    sha256 = "sha256-nPIdWWBLlSnXh3yOA0Ki66rhoH/o/1aD3HX+wVhHx5c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/celery/default.nix b/pkgs/development/python-modules/celery/default.nix
index 247d25bf420ab..4c7e2d8d62f5b 100644
--- a/pkgs/development/python-modules/celery/default.nix
+++ b/pkgs/development/python-modules/celery/default.nix
@@ -24,14 +24,14 @@
 
 buildPythonPackage rec {
   pname = "celery";
-  version = "5.2.3";
+  version = "5.2.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-4s1BZnrZfU9qL0Zy0cam662hlMYZJTBYtfI3BKqtqoI=";
+    hash = "sha256-0TmMrfMPV2Jms0Nw4o6IAwbsVfektjB1SbCunBVmNIE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/certbot/default.nix b/pkgs/development/python-modules/certbot/default.nix
index e65e6f0d808ed..72a5d8db39d75 100644
--- a/pkgs/development/python-modules/certbot/default.nix
+++ b/pkgs/development/python-modules/certbot/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "certbot";
-  version = "1.22.0";
+  version = "1.24.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wrk5rhds6a69vbs1bda0zhwpvjhd8i20did6j3kydbas3zbr516";
+    sha256 = "sha256-XIKFEPQKIV5s6sZ7LRnlTvsb3cF4KIaiVZ36cAN1AwA=";
   };
 
   sourceRoot = "source/${pname}";
diff --git a/pkgs/development/python-modules/certomancer/default.nix b/pkgs/development/python-modules/certomancer/default.nix
new file mode 100644
index 0000000000000..3d863165f2966
--- /dev/null
+++ b/pkgs/development/python-modules/certomancer/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, asn1crypto
+, click
+, oscrypto
+, pyyaml
+, python-dateutil
+, tzlocal
+, pytest-aiohttp
+, pytz
+, freezegun
+, jinja2
+, pyhanko-certvalidator
+, requests
+, requests-mock
+, werkzeug
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "certomancer";
+  version = "0.8.2";
+  format = "setuptools";
+  disabled = pythonOlder "3.7";
+
+  # Tests are only available on GitHub
+  src = fetchFromGitHub {
+    owner = "MatthiasValvekens";
+    repo = "certomancer";
+    rev = version;
+    sha256 = "sha256-H43NlFNTwZtedHsB7c62MocwQVOi5JjVJxRcZY+Wn7Y=";
+  };
+
+  propagatedBuildInputs = [
+    asn1crypto
+    click
+    oscrypto
+    pyyaml
+    python-dateutil
+    tzlocal
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace ", 'pytest-runner'" "" \
+      --replace "pyhanko-certvalidator==0.19.2" "pyhanko-certvalidator==0.19.5"
+  '';
+
+  checkInputs = [
+    freezegun
+    jinja2
+    pyhanko-certvalidator
+    pytest-aiohttp
+    pytz
+    requests
+    requests-mock
+    werkzeug
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "certomancer" ];
+
+  meta = with lib; {
+    description = "Quickly construct, mock & deploy PKI test configurations using simple declarative configuration";
+    homepage = "https://github.com/MatthiasValvekens/certomancer";
+    license = licenses.mit;
+    maintainers = with maintainers; [ wolfangaukang ];
+  };
+}
diff --git a/pkgs/development/python-modules/cffi/default.nix b/pkgs/development/python-modules/cffi/default.nix
index a65cd297f43f5..22d2e87cd276c 100644
--- a/pkgs/development/python-modules/cffi/default.nix
+++ b/pkgs/development/python-modules/cffi/default.nix
@@ -19,11 +19,12 @@ if isPyPy then null else buildPythonPackage rec {
 
   propagatedBuildInputs = [ pycparser ];
 
-  prePatch = lib.optionalString stdenv.isDarwin ''
+  postPatch = lib.optionalString stdenv.isDarwin ''
     # Remove setup.py impurities
-    substituteInPlace setup.py --replace "'-iwithsysroot/usr/include/ffi'" ""
-    substituteInPlace setup.py --replace "'/usr/include/ffi'," ""
-    substituteInPlace setup.py --replace '/usr/include/libffi' '${lib.getDev libffi}/include'
+    substituteInPlace setup.py \
+      --replace "'-iwithsysroot/usr/include/ffi'" "" \
+      --replace "'/usr/include/ffi'," "" \
+      --replace '/usr/include/libffi' '${lib.getDev libffi}/include'
   '';
 
   # The tests use -Werror but with python3.6 clang detects some unreachable code.
diff --git a/pkgs/development/python-modules/chainer/default.nix b/pkgs/development/python-modules/chainer/default.nix
index b7dbfca70e8a8..1b40d506abc1d 100644
--- a/pkgs/development/python-modules/chainer/default.nix
+++ b/pkgs/development/python-modules/chainer/default.nix
@@ -1,6 +1,6 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy3k
+{ config, lib, buildPythonPackage, fetchFromGitHub, isPy3k
 , filelock, protobuf, numpy, pytestCheckHook, mock, typing-extensions
-, cupy, cudaSupport ? false
+, cupy, cudaSupport ? config.cudaSupport or false
 }:
 
 buildPythonPackage rec {
@@ -39,6 +39,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A flexible framework of neural networks for deep learning";
     homepage = "https://chainer.org/";
+    # Un-break me when updating chainer next time!
+    broken = cudaSupport && (lib.versionAtLeast cupy.version "8.0.0");
     license = licenses.mit;
     maintainers = with maintainers; [ hyphon81 ];
   };
diff --git a/pkgs/development/python-modules/chalice/default.nix b/pkgs/development/python-modules/chalice/default.nix
index 762846ab34c2d..d309bc71731bc 100644
--- a/pkgs/development/python-modules/chalice/default.nix
+++ b/pkgs/development/python-modules/chalice/default.nix
@@ -24,13 +24,13 @@
 
 buildPythonPackage rec {
   pname = "chalice";
-  version = "1.26.4";
+  version = "1.26.6";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Xn8OqeEihLxZS9QZtrhzau2zLg9SzQrrigK70PoImhU=";
+    sha256 = "sha256-6Y5pJg6N/F97zvkyo4r6MoThi79kI53AvlHNOmOCpFA=";
   };
 
   propagatedBuildInputs = [
@@ -62,7 +62,7 @@ buildPythonPackage rec {
     sed -i setup.py -e "/pip>=/c\'pip',"
     substituteInPlace setup.py \
       --replace "typing==3.6.4" "typing" \
-      --replace "attrs>=19.3.0,<21.3.0" "attrs"
+      --replace "jmespath>=0.9.3,<1.0.0" "jmespath>=0.9.3,<2.0.0"
   '';
 
   disabledTestPaths = [
diff --git a/pkgs/development/python-modules/cherrypy/default.nix b/pkgs/development/python-modules/cherrypy/default.nix
index 01bbfe8841b7a..f4272f90d6298 100644
--- a/pkgs/development/python-modules/cherrypy/default.nix
+++ b/pkgs/development/python-modules/cherrypy/default.nix
@@ -6,7 +6,7 @@
 , jaraco_collections
 , more-itertools
 , objgraph
-, pathpy
+, path
 , portend
 , pytest-forked
 , pytest-services
@@ -51,7 +51,7 @@ buildPythonPackage rec {
 
   checkInputs = [
     objgraph
-    pathpy
+    path
     pytest-forked
     pytest-services
     pytestCheckHook
diff --git a/pkgs/development/python-modules/chex/default.nix b/pkgs/development/python-modules/chex/default.nix
index bb873f2c3bfd0..a06cb4ec84bba 100644
--- a/pkgs/development/python-modules/chex/default.nix
+++ b/pkgs/development/python-modules/chex/default.nix
@@ -12,16 +12,14 @@
 
 buildPythonPackage rec {
   pname = "chex";
-  # As of 2021-12-29, the latest official version has broken tests with jax 0.2.26:
-  # `AttributeError: module 'jax.interpreters.xla' has no attribute 'xb'`
-  version = "unstable-2021-12-16";
+  version = "0.1.2";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "deepmind";
     repo = pname;
-    rev = "5adc10e0b4218f8ec775567fca38b68bbad42a3a";
-    sha256 = "00xib6zv9pwid2q7wcr109qj3fa3g3b852skz8444kw7r0qxy7z3";
+    rev = "v${version}";
+    hash = "sha256-NtZYOHByKBcKmhRaNULwaQqxfoPRmgbtJ3cFHNfy4E8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/chiavdf/default.nix b/pkgs/development/python-modules/chiavdf/default.nix
index 1525c5ac90587..a4bd20f9cd6a8 100644
--- a/pkgs/development/python-modules/chiavdf/default.nix
+++ b/pkgs/development/python-modules/chiavdf/default.nix
@@ -14,12 +14,12 @@
 
 buildPythonPackage rec {
   pname = "chiavdf";
-  version = "1.0.5";
+  version = "1.0.6";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2pC6sFRwgAwIEanZXe99848XMxK/lyLGxiA+UA+q3H0=";
+    hash = "sha256-Ri7j/T0nnZFml4kC0qIQkyYRJBPZMhTYxolW/A25030=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/ciscoconfparse/default.nix b/pkgs/development/python-modules/ciscoconfparse/default.nix
index e6db689a45c5f..49b36a5c6582c 100644
--- a/pkgs/development/python-modules/ciscoconfparse/default.nix
+++ b/pkgs/development/python-modules/ciscoconfparse/default.nix
@@ -33,6 +33,7 @@ buildPythonPackage rec {
     passlib
     dnspython
     loguru
+    toml
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/ckcc-protocol/default.nix b/pkgs/development/python-modules/ckcc-protocol/default.nix
index 670e4a3c92375..e2a8ebd977688 100644
--- a/pkgs/development/python-modules/ckcc-protocol/default.nix
+++ b/pkgs/development/python-modules/ckcc-protocol/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "ckcc-protocol";
-  version = "1.3.0";
+  version = "1.3.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-UVLKJHDPxi9ivY3JyIySmce0NUhxIIlIxVTdPoXMaKM=";
+    sha256 = "sha256-5wsVg7GX/9UygzpGI6DwrkAvexgcOmJyuv8GXiPPWvk=";
   };
 
   propagatedBuildInputs = [ click ecdsa hidapi pyaes ];
diff --git a/pkgs/development/python-modules/claripy/default.nix b/pkgs/development/python-modules/claripy/default.nix
index 9816ff3782b35..8f66e8551edf5 100644
--- a/pkgs/development/python-modules/claripy/default.nix
+++ b/pkgs/development/python-modules/claripy/default.nix
@@ -8,13 +8,14 @@
 , pysmt
 , pythonOlder
 , pytestCheckHook
+, six
 , z3
 }:
 
 buildPythonPackage rec {
   pname = "claripy";
-  version = "9.1.12332";
-  format = "setuptools";
+  version = "9.2.1";
+  format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
@@ -22,7 +23,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-YrR8OkDoop6kHAuk4cM4STYYOjjaMLZCQuE07/5IXqs=";
+    hash = "sha256-pCqhSpZfX3u9vJ8Oy1yyicagBQYK5+jBVCEab0TnGA4=";
   };
 
   propagatedBuildInputs = [
@@ -36,12 +37,13 @@ buildPythonPackage rec {
   checkInputs = [
     nose
     pytestCheckHook
+    six
   ];
 
   postPatch = ''
     # Use upstream z3 implementation
-    substituteInPlace setup.py \
-      --replace "z3-solver>=4.8.5.0" ""
+    substituteInPlace setup.cfg \
+      --replace "z3-solver >= 4.8.5.0" ""
   '';
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/cle/default.nix b/pkgs/development/python-modules/cle/default.nix
index 6c8126172c056..8ee898b445e72 100644
--- a/pkgs/development/python-modules/cle/default.nix
+++ b/pkgs/development/python-modules/cle/default.nix
@@ -15,7 +15,7 @@
 
 let
   # The binaries are following the argr projects release cycle
-  version = "9.1.12332";
+  version = "9.2.1";
 
   # Binary files from https://github.com/angr/binaries (only used for testing and only here)
   binaries = fetchFromGitHub {
@@ -29,7 +29,7 @@ in
 buildPythonPackage rec {
   pname = "cle";
   inherit version;
-  format = "setuptools";
+  format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
@@ -37,7 +37,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-xcj6Skzzmw5g+0KsBMLNOhRyXQA7nbgnc9YyfJLteCM=";
+    hash = "sha256-OGdnrRFfx2LMMsw6giPC+4izWX603cYbpKHuslj4Gng=";
   };
 
   propagatedBuildInputs = [
@@ -70,6 +70,8 @@ buildPythonPackage rec {
     "test_plt_full_relro"
     # Test fails
     "test_tls_pe_incorrect_tls_data_start"
+    # The required parts is not present on Nix
+    "test_remote_file_map"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/click-log/default.nix b/pkgs/development/python-modules/click-log/default.nix
index 3145d4775e397..c0b8c89ea648b 100644
--- a/pkgs/development/python-modules/click-log/default.nix
+++ b/pkgs/development/python-modules/click-log/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "click-log";
-  version = "0.3.2";
+  version = "0.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16fd1ca3fc6b16c98cea63acf1ab474ea8e676849dc669d86afafb0ed7003124";
+    sha256 = "sha256-OXD4VwrFRJEje82z2KtePu9sBX3yn4w9EVGlGpwjuXU=";
   };
 
   propagatedBuildInputs = [ click ];
diff --git a/pkgs/development/python-modules/click/default.nix b/pkgs/development/python-modules/click/default.nix
index 6d865307f9be4..a75f563862a37 100644
--- a/pkgs/development/python-modules/click/default.nix
+++ b/pkgs/development/python-modules/click/default.nix
@@ -3,7 +3,6 @@
 , pythonOlder
 , fetchPypi
 , importlib-metadata
-, locale
 , pytestCheckHook
 
 # large-rebuild downstream dependencies
@@ -17,18 +16,14 @@
 
 buildPythonPackage rec {
   pname = "click";
-  version = "8.0.3";
+  version = "8.1.2";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-QQ6TKwUPXu13PEzalN51lxyJzbMVWnKggxE5p55ey1s=";
+    sha256 = "sha256-R5cH/hTZ7JoHV2GLehAKCuTE4jb6xbf4DKaAKBQaGnI=";
   };
 
-  postPatch = ''
-    substituteInPlace src/click/_unicodefun.py \
-      --replace '"locale"' "'${locale}/bin/locale'"
-  '';
-
   propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
     importlib-metadata
   ];
diff --git a/pkgs/development/python-modules/clickhouse-driver/default.nix b/pkgs/development/python-modules/clickhouse-driver/default.nix
index dd1698f9a3ae4..826ce08c1e06d 100644
--- a/pkgs/development/python-modules/clickhouse-driver/default.nix
+++ b/pkgs/development/python-modules/clickhouse-driver/default.nix
@@ -57,8 +57,6 @@ buildPythonPackage rec {
   # some test in test_buffered_reader.py doesn't seem to return
   disabledTestPaths = [ "tests/test_buffered_reader.py" ];
 
-  pytestFlagsArray = [ "-n" "$NIX_BUILD_CORES" ];
-
   # most tests require `clickhouse`
   # TODO: enable tests after `clickhouse` unbroken
   doCheck = false;
diff --git a/pkgs/development/python-modules/clize/default.nix b/pkgs/development/python-modules/clize/default.nix
index 75c4513d1e3a3..10b4c8f68c69a 100644
--- a/pkgs/development/python-modules/clize/default.nix
+++ b/pkgs/development/python-modules/clize/default.nix
@@ -1,12 +1,18 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, python-dateutil
+
+# propagtes
 , sigtools
 , six
 , attrs
 , od
 , docutils
+
+# extras: datetime
+, python-dateutil
+
+# tests
 , pygments
 , unittest2
 , pytestCheckHook
@@ -21,6 +27,25 @@ buildPythonPackage rec {
     sha256 = "3177a028e4169d8865c79af82bdd441b24311d4bd9c0ae8803641882d340a51d";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "docutils ~= 0.17.0" "docutils"
+  '';
+
+  propagatedBuildInputs = [
+    attrs
+    docutils
+    od
+    sigtools
+    six
+  ];
+
+  passthru.extras-require = {
+    datetime = [
+      python-dateutil
+    ];
+  };
+
   # repeated_test no longer exists in nixpkgs
   # also see: https://github.com/epsy/clize/issues/74
   doCheck = false;
@@ -31,14 +56,6 @@ buildPythonPackage rec {
     unittest2
   ];
 
-  propagatedBuildInputs = [
-    attrs
-    docutils
-    od
-    sigtools
-    six
-  ];
-
   pythonImportsCheck = [ "clize" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/clldutils/default.nix b/pkgs/development/python-modules/clldutils/default.nix
index 563ad08381c4e..697296d9a200b 100644
--- a/pkgs/development/python-modules/clldutils/default.nix
+++ b/pkgs/development/python-modules/clldutils/default.nix
@@ -44,9 +44,15 @@ buildPythonPackage rec {
     pytest-mock
   ];
 
+  disabledTests = [
+    # uses pytest.approx which is not supported in a boolean context in pytest7
+    "test_to_dec"
+    "test_roundtrip"
+  ];
+
   meta = with lib; {
-    description = "CSV on the Web";
-    homepage = "https://github.com/cldf/csvw";
+    description = "Utilities for clld apps without the overhead of requiring pyramid, rdflib et al";
+    homepage = "https://github.com/clld/clldutils";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/cloudflare/default.nix b/pkgs/development/python-modules/cloudflare/default.nix
index 4c4a6bccfcd93..e6498216aa03c 100644
--- a/pkgs/development/python-modules/cloudflare/default.nix
+++ b/pkgs/development/python-modules/cloudflare/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "cloudflare";
-  version = "2.9.9";
+  version = "2.9.10";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-wou62Xro/hOU3pjGdJpe2kzY15+bcd14UOn4vsw9RcI=";
+    hash = "sha256-LsUMB0zqlelHqWsgdmJ8v+Qn/reYuxCTKTODBT9K0bg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cma/default.nix b/pkgs/development/python-modules/cma/default.nix
index 473f060769833..c0480f2fa714c 100644
--- a/pkgs/development/python-modules/cma/default.nix
+++ b/pkgs/development/python-modules/cma/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "cma";
-  version = "3.1.0";
+  version = "3.2.1";
 
   src = fetchFromGitHub {
     owner = "CMA-ES";
     repo = "pycma";
     rev = "r${version}";
-    sha256 = "1bal4kljxrdm6x5ppyi6i109714h0czdxfsna906dlfplrmq52bf";
+    sha256 = "sha256-wLUD8HMJusUeCwwp37D/W7yJuJQcDfRwVGVKwBS6sR8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cmd2/default.nix b/pkgs/development/python-modules/cmd2/default.nix
index 5f262438fe954..8a7f9a5e1c8ac 100644
--- a/pkgs/development/python-modules/cmd2/default.nix
+++ b/pkgs/development/python-modules/cmd2/default.nix
@@ -18,13 +18,13 @@
 
 buildPythonPackage rec {
   pname = "cmd2";
-  version = "2.3.3";
+  version = "2.4.0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "750d7eb04d55c3bc2a413e191bc177856f388102de47d11f2210a35266543640";
+    sha256 = "sha256-CQkJq2yOzuQIE87HWeYd1ucMgiehqOlggvXysNOUvHc=";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/development/python-modules/collections-extended/default.nix b/pkgs/development/python-modules/collections-extended/default.nix
index 52f73a5554a59..867226c327b43 100644
--- a/pkgs/development/python-modules/collections-extended/default.nix
+++ b/pkgs/development/python-modules/collections-extended/default.nix
@@ -1,13 +1,15 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, pythonOlder
+, hypothesis
 , poetry-core
 , pytestCheckHook
+, pythonOlder
 }:
+
 buildPythonPackage rec {
   pname = "collections-extended";
-  version = "2.0.0";
+  version = "2.0.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -16,7 +18,7 @@ buildPythonPackage rec {
     owner = "mlenzen";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256:1qcr1q49a134b122rpldjiim1fsl32gxs5fpj3232nyb05r68haz";
+    hash = "sha256-cK13+CQUELKSiLpG747+C+RB5b6luu0mWLLXTT+uGH4=";
   };
 
   nativeBuildInputs = [
@@ -24,14 +26,17 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
+    hypothesis
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "collections_extended" ];
+  pythonImportsCheck = [
+    "collections_extended"
+  ];
 
   meta = with lib; {
+    description = "Extra Python Collections - bags (multisets), setlists (unique list/indexed set), RangeMap and IndexedDict";
     homepage = "https://github.com/mlenzen/collections-extended";
-    description = "Extra Python Collections - bags (multisets), setlists (unique list / indexed set), RangeMap and IndexedDict";
     license = licenses.asl20;
     maintainers = with maintainers; [ exarkun ];
   };
diff --git a/pkgs/development/python-modules/commoncode/default.nix b/pkgs/development/python-modules/commoncode/default.nix
index 7a2416728c8e1..b6c5f02fb8e13 100644
--- a/pkgs/development/python-modules/commoncode/default.nix
+++ b/pkgs/development/python-modules/commoncode/default.nix
@@ -19,16 +19,21 @@
 
 buildPythonPackage rec {
   pname = "commoncode";
-  version = "30.0.0";
-  format = "setuptools";
+  version = "30.1.1";
+  format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-6SeU4u6pfDuGCgCYAO5fdbWBxW9XN3WvM8j6DwUlFwM=";
+    sha256 = "sha256-KymdX+5CAYSRpOwpqQ1DMCFWqkeMAmOHjVnBZTji76I=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "intbitset >= 2.3.0, < 3.0" "intbitset >= 2.3.0"
+  '';
+
   dontConfigure = true;
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/construct/default.nix b/pkgs/development/python-modules/construct/default.nix
index 8ae44476eff40..ce6e0a65b3429 100644
--- a/pkgs/development/python-modules/construct/default.nix
+++ b/pkgs/development/python-modules/construct/default.nix
@@ -5,7 +5,7 @@
 
 buildPythonPackage rec {
   pname   = "construct";
-  version = "2.10.67";
+  version = "2.10.68";
 
   disabled = pythonOlder "3.6";
 
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     owner  = pname;
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "1nciwim745qk41l1ck4chx3vxpfr6cq4k3a4i7vfnnrd3s6szzsw";
+    sha256 = "sha256-bp/YyRFP0rrBHPyhiqnn6o1iC5l61oedShZ2phGeqaw=";
   };
 
   # not an explicit dependency, but it's imported by an entrypoint
diff --git a/pkgs/development/python-modules/convertdate/default.nix b/pkgs/development/python-modules/convertdate/default.nix
index cc26142d362b1..b20066c51d8b1 100644
--- a/pkgs/development/python-modules/convertdate/default.nix
+++ b/pkgs/development/python-modules/convertdate/default.nix
@@ -1,23 +1,24 @@
 { lib
 , buildPythonPackage
-, isPy27
 , fetchFromGitHub
 , pymeeus
 , pytz
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "convertdate";
-  version = "2.3.2";
-  disabled = isPy27;
+  version = "2.4.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
-  # Tests are not available in the PyPI tarball so use GitHub instead.
   src = fetchFromGitHub {
     owner = "fitnr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0k7j59sbqwyi72vcjx5vsh3qb6hxfnkfjkd2i6f6lckdr1bkh7fz";
+    hash = "sha256-iOHK3UJulXJJR50nhiVgfk3bt+CAtG3BRySJ8DkBuJE=";
   };
 
   propagatedBuildInputs = [
@@ -29,11 +30,13 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "convertdate" ];
+  pythonImportsCheck = [
+    "convertdate"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/fitnr/convertdate";
     description = "Utils for converting between date formats and calculating holidays";
+    homepage = "https://github.com/fitnr/convertdate";
     license = licenses.mit;
     maintainers = with maintainers; [ jluttine ];
   };
diff --git a/pkgs/development/python-modules/coqpit/default.nix b/pkgs/development/python-modules/coqpit/default.nix
index e19255c4479df..12e1a46025a9f 100644
--- a/pkgs/development/python-modules/coqpit/default.nix
+++ b/pkgs/development/python-modules/coqpit/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "coqpit";
-  version = "0.0.15";
+  version = "0.0.16";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "coqui-ai";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-i2Lf7YQ9Ht4AlmfIBvJTWNPgEk8Kv92rs5VxuPgvR5U=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-f1FLjR4VzSOA/VaeseVA4F1NWVJIvokIZIDW1k7fNqU=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/coverage/default.nix b/pkgs/development/python-modules/coverage/default.nix
index f1930b88fb8c4..8019fc9496655 100644
--- a/pkgs/development/python-modules/coverage/default.nix
+++ b/pkgs/development/python-modules/coverage/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "coverage";
-  version = "6.2";
+  version = "6.3.2";
   # uses f strings
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e2cad8093172b7d1595b4ad66f24270808658e11acf43a8f95b41276162eb5b8";
+    sha256 = "sha256-A+KngmCGuR7zRf8YdC7p/Eemg5zNUXBh74+hl25lLOk=";
   };
 
   # No tests in archive
diff --git a/pkgs/development/python-modules/cppy/default.nix b/pkgs/development/python-modules/cppy/default.nix
index fffa91744248e..5b7e092c42a57 100644
--- a/pkgs/development/python-modules/cppy/default.nix
+++ b/pkgs/development/python-modules/cppy/default.nix
@@ -1,23 +1,28 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, isPy3k
+, pythonOlder
+, pytestCheckHook
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "cppy";
-  version = "1.1.0";
+  version = "1.2.1";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4eda6f1952054a270f32dc11df7c5e24b259a09fddf7bfaa5f33df9fb4a29642";
+    sha256 = "sha256-g7Q78XsQhawVxd69tCFU8Ti5KCNLIURzWJgfadDW/hs=";
   };
 
-  # Headers-only library, no tests
-  doCheck = false;
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
 
-  # Not supported
-  disabled = !isPy3k;
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "cppy" ];
 
   meta = {
     description = "C++ headers for C extension development";
diff --git a/pkgs/development/python-modules/cryptography/default.nix b/pkgs/development/python-modules/cryptography/default.nix
index b4a79137d59bf..b4048366ed544 100644
--- a/pkgs/development/python-modules/cryptography/default.nix
+++ b/pkgs/development/python-modules/cryptography/default.nix
@@ -1,16 +1,17 @@
-{ lib, stdenv
+{ lib
+, stdenv
+, callPackage
 , buildPythonPackage
 , fetchPypi
 , rustPlatform
 , setuptools-rust
 , openssl
-, cryptography_vectors
-, darwin
+, Security
 , packaging
 , six
 , isPyPy
 , cffi
-, pytest
+, pytestCheckHook
 , pytest-subtests
 , pretend
 , libiconv
@@ -19,20 +20,23 @@
 , hypothesis
 }:
 
+let
+  cryptography-vectors = callPackage ./vectors.nix { };
+in
 buildPythonPackage rec {
   pname = "cryptography";
-  version = "36.0.0"; # Also update the hash in vectors.nix
+  version = "36.0.2"; # Also update the hash in vectors.nix
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zshc1jaavykdnic5ns8zax6gqganys6gp5f35bqcfggnkn6kxsj";
+    sha256 = "sha256-cPj097sqyfNAZVy6yJ1oxSevW7Q4dSKoQT6EHj5mKMk=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     sourceRoot = "${pname}-${version}/${cargoRoot}";
     name = "${pname}-${version}";
-    sha256 = "1nbw4cfshyc125jwdivg9gxy52qcd1iz31lypl95ij9bn1dyx933";
+    sha256 = "sha256-6C4N445h4Xf2nCc9rJWpSZaNPilR9GfgbmKvNlSIFqg=";
   };
 
   cargoRoot = "src/rust";
@@ -47,37 +51,31 @@ buildPythonPackage rec {
   ] ++ (with rustPlatform; [ rust.cargo rust.rustc ]);
 
   buildInputs = [ openssl ]
-             ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security libiconv ];
-  propagatedBuildInputs = [
-    packaging
-    six
-  ] ++ lib.optionals (!isPyPy) [
+    ++ lib.optionals stdenv.isDarwin [ Security libiconv ];
+
+  propagatedBuildInputs = lib.optionals (!isPyPy) [
     cffi
   ];
 
   checkInputs = [
-    cryptography_vectors
+    cryptography-vectors
     hypothesis
     iso8601
     pretend
-    pytest
+    pytestCheckHook
     pytest-subtests
     pytz
   ];
 
-  pytestFlags = lib.concatStringsSep " " ([
+  pytestFlagsArray = [
     "--disable-pytest-warnings"
-  ] ++
-    lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
-      # aarch64-darwin forbids W+X memory, but this tests depends on it:
-      # * https://cffi.readthedocs.io/en/latest/using.html#callbacks
-      "--ignore=tests/hazmat/backends/test_openssl_memleak.py"
-    ]
-  );
+  ];
 
-  checkPhase = ''
-    py.test ${pytestFlags} tests
-  '';
+  disabledTestPaths = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+    # aarch64-darwin forbids W+X memory, but this tests depends on it:
+    # * https://cffi.readthedocs.io/en/latest/using.html#callbacks
+    "tests/hazmat/backends/test_openssl_memleak.py"
+  ];
 
   meta = with lib; {
     description = "A package which provides cryptographic recipes and primitives";
@@ -92,6 +90,6 @@ buildPythonPackage rec {
     changelog = "https://cryptography.io/en/latest/changelog/#v"
       + replaceStrings [ "." ] [ "-" ] version;
     license = with licenses; [ asl20 bsd3 psfl ];
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/cryptography/vectors.nix b/pkgs/development/python-modules/cryptography/vectors.nix
index 577c2c870910b..9937209072653 100644
--- a/pkgs/development/python-modules/cryptography/vectors.nix
+++ b/pkgs/development/python-modules/cryptography/vectors.nix
@@ -1,23 +1,26 @@
 { buildPythonPackage, fetchPypi, lib, cryptography }:
 
 buildPythonPackage rec {
-  pname = "cryptography_vectors";
-  # The test vectors must have the same version as the cryptography package:
-  version = cryptography.version;
+  pname = "cryptography-vectors";
+  # The test vectors must have the same version as the cryptography package
+  inherit (cryptography) version;
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "19gs051jbsixxwhlfs4xdxpzg8w1vypzpz3w56bp9x01qwzfbdy6";
+    pname = "cryptography_vectors";
+    inherit version;
+    sha256 = "sha256-KnkkRJoDAl+vf4dUpvQgAAHKshBzSmzmrB9r2s06aOQ=";
   };
 
   # No tests included
   doCheck = false;
 
+  pythonImportsCheck = [ "cryptography_vectors" ];
+
   meta = with lib; {
     description = "Test vectors for the cryptography package";
     homepage = "https://cryptography.io/en/latest/development/test-vectors/";
     # Source: https://github.com/pyca/cryptography/tree/master/vectors;
     license = with licenses; [ asl20 bsd3 ];
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/crytic-compile/default.nix b/pkgs/development/python-modules/crytic-compile/default.nix
index 7260310ea03e9..393dcd5e9d83f 100644
--- a/pkgs/development/python-modules/crytic-compile/default.nix
+++ b/pkgs/development/python-modules/crytic-compile/default.nix
@@ -2,15 +2,15 @@
 
 buildPythonPackage rec {
   pname = "crytic-compile";
-  version = "0.2.2";
+  version = "0.2.3";
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "crytic";
     repo = "crytic-compile";
-    rev = version;
-    sha256 = "sha256-4Lz+jJdKURp+K5XJJb7ksiFbnQwzS71gZWOufBvqz/k=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-l8a9QXERpkVrx7zHluMlb3zBvJSODsviNtJPzvL3hDo=";
   };
 
   propagatedBuildInputs = [ pysha3 setuptools ];
diff --git a/pkgs/development/python-modules/cssselect2/default.nix b/pkgs/development/python-modules/cssselect2/default.nix
index 52c1bc4067fbc..987e84ffcee2f 100644
--- a/pkgs/development/python-modules/cssselect2/default.nix
+++ b/pkgs/development/python-modules/cssselect2/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, flit-core
 , pythonOlder
 , fetchPypi
 , tinycss2
@@ -8,18 +9,23 @@
 
 buildPythonPackage rec {
   pname = "cssselect2";
-  version = "0.4.1";
+  version = "0.5.0";
+  format = "pyproject";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "93fbb9af860e95dd40bf18c3b2b6ed99189a07c0f29ba76f9c5be71344664ec8";
+    sha256 = "sha256-2Yp7vdjrxGCTJ5GV1mmjNZvVoj+QwZ6CwZ2e7vMz5hc=";
   };
 
   postPatch = ''
     sed -i '/^addopts/d' pyproject.toml
   '';
 
+  nativeBuildInputs = [
+    flit-core
+  ];
+
   propagatedBuildInputs = [ tinycss2 ];
 
   checkInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/cupy/default.nix b/pkgs/development/python-modules/cupy/default.nix
index a798920ef7a87..cdd11e5010be4 100644
--- a/pkgs/development/python-modules/cupy/default.nix
+++ b/pkgs/development/python-modules/cupy/default.nix
@@ -1,22 +1,20 @@
 { lib, buildPythonPackage
 , fetchPypi, isPy3k, cython
 , fastrlock, numpy, six, wheel, pytestCheckHook, mock, setuptools
-, cudatoolkit, cudnn, cutensor, nccl
+, cudaPackages
 , addOpenGLRunpath
 }:
 
-assert cudnn.cudatoolkit == cudatoolkit;
-assert cutensor.cudatoolkit == cudatoolkit;
-assert nccl.cudatoolkit == cudatoolkit;
-
-buildPythonPackage rec {
+let
+  inherit (cudaPackages) cudatoolkit cudnn cutensor nccl;
+in buildPythonPackage rec {
   pname = "cupy";
-  version = "10.2.0";
+  version = "10.3.1";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-5ovvA76QGOsOnVztMfDgLerks5nJrKR08rLc+ArmWA8=";
+    sha256 = "sha256-c8BOKI1AWU+zN8lhliRus55PUAgvFm+TlxKToYn7jWc=";
   };
 
   # See https://docs.cupy.dev/en/v10.2.0/reference/environment.html. Seting both
diff --git a/pkgs/development/python-modules/cx_freeze/default.nix b/pkgs/development/python-modules/cx_freeze/default.nix
index 90e2608069c40..fb02b0d1ef144 100644
--- a/pkgs/development/python-modules/cx_freeze/default.nix
+++ b/pkgs/development/python-modules/cx_freeze/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "cx_Freeze";
-  version = "6.9";
+  version = "6.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "673aa3199af2ef87fc03a43a30e5d78b27ced2cedde925da89c55b5657da267b";
+    sha256 = "sha256-5bcb9XuYgawUL76+riyLDTKUtW9uSKtkAyMh47Giuic=";
   };
 
   disabled = pythonOlder "3.5";
diff --git a/pkgs/development/python-modules/cyclonedx-python-lib/default.nix b/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
index 26546c3f7cb01..c8a2eefed246d 100644
--- a/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
+++ b/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
@@ -6,27 +6,28 @@
 , lxml
 , packageurl-python
 , poetry-core
-, pytestCheckHook
+, python
 , pythonOlder
 , requirements-parser
 , setuptools
 , toml
 , types-setuptools
 , types-toml
+, xmldiff
 }:
 
 buildPythonPackage rec {
   pname = "cyclonedx-python-lib";
-  version = "1.3.0";
+  version = "2.3.0";
   format = "pyproject";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "CycloneDX";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-/1kWvhTUS0JT0RwodiivJSUiWIDwQyXxdjF/KUlCNds=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-eZy+m6AkSlZM/i64FyFL+ZgeW86MOSM6sDYPT4ckaHE=";
   };
 
   nativeBuildInputs = [
@@ -46,13 +47,21 @@ buildPythonPackage rec {
   checkInputs = [
     jsonschema
     lxml
-    pytestCheckHook
+    xmldiff
   ];
 
   pythonImportsCheck = [
     "cyclonedx"
   ];
 
+ checkPhase = ''
+   runHook preCheck
+   # Tests require network access
+   rm tests/test_output_json.py
+   ${python.interpreter} -m unittest discover -s tests -v
+   runHook postCheck
+ '';
+
   meta = with lib; {
     description = "Python library for generating CycloneDX SBOMs";
     homepage = "https://github.com/CycloneDX/cyclonedx-python-lib";
diff --git a/pkgs/development/python-modules/cypherpunkpay/default.nix b/pkgs/development/python-modules/cypherpunkpay/default.nix
new file mode 100644
index 0000000000000..3c72f2e073ed8
--- /dev/null
+++ b/pkgs/development/python-modules/cypherpunkpay/default.nix
@@ -0,0 +1,97 @@
+{ stdenv
+, lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, APScheduler
+, bitstring
+, cffi
+, ecdsa
+, monero
+, pypng
+, pyqrcode
+, pyramid
+, pyramid_jinja2
+, pysocks
+, requests
+, tzlocal
+, waitress
+, yoyo-migrations
+, pytestCheckHook
+, pytest-cov
+, webtest
+}:
+
+buildPythonPackage rec {
+  pname = "cypherpunkpay";
+  version = "1.0.15";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "CypherpunkPay";
+    repo = "CypherpunkPay";
+    rev = "v${version}";
+    sha256 = "sha256-W2f4jtEqopDXiXx0pklZrjOmVhpx2kDdTJRPm2Ka0Cg=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'monero = "^0.99"' 'monero = ">=0.99"' \
+      --replace 'pypng = "^0.0.20"' 'pypng = ">=0.0.20"' \
+      --replace 'tzlocal = "2.1"' 'tzlocal = ">=2.1"'
+  '';
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    APScheduler
+    bitstring
+    cffi
+    ecdsa
+    monero
+    pypng
+    pyqrcode
+    pyramid
+    pyramid_jinja2
+    pysocks
+    requests
+    tzlocal
+    waitress
+    yoyo-migrations
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-cov
+    webtest
+  ];
+
+  disabledTestPaths = [
+    # performance test
+    "test/unit/tools/pbkdf2_test.py"
+    # tests require network connection
+    "test/network/explorers/bitcoin"
+    "test/network/net/http_client"
+    "test/network/prices"
+    # tests require bitcoind running
+    "test/network/full_node_clients"
+    # tests require lnd running
+    "test/network/ln"
+    # tests require tor running
+    "test/network/net/tor_client"
+    # tests require the full environment running
+    "test/acceptance/views"
+    "test/acceptance/views_admin"
+    "test/acceptance/views_donations"
+    "test/acceptance/views_dummystore"
+  ];
+
+  meta = with lib; {
+    description = "Modern self-hosted software for accepting Bitcoin";
+    homepage = "https://cypherpunkpay.org";
+    license = with licenses; [ mit /* or */ unlicense ];
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/pkgs/development/python-modules/dask-mpi/default.nix b/pkgs/development/python-modules/dask-mpi/default.nix
index cc44a6e97eb7b..15f0b315e9f0f 100644
--- a/pkgs/development/python-modules/dask-mpi/default.nix
+++ b/pkgs/development/python-modules/dask-mpi/default.nix
@@ -7,12 +7,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "2021.11.0";
+  version = "2022.4.0";
   pname = "dask-mpi";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "602d2e2d7816a4abc1eb17998e1acc93a43b6f82bf94a6accca169a42de21898";
+    sha256 = "sha256-CgTx19NaBs3/UGWTMw1EFOokLJFySYzhkfV0LqxJnhc=";
   };
 
   propagatedBuildInputs = [ dask distributed mpi4py ];
diff --git a/pkgs/development/python-modules/dask/default.nix b/pkgs/development/python-modules/dask/default.nix
index 7af0eca747e81..79f07c6e88f22 100644
--- a/pkgs/development/python-modules/dask/default.nix
+++ b/pkgs/development/python-modules/dask/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "dask";
-  version = "2022.02.0";
+  version = "2022.02.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "dask";
     repo = pname;
     rev = version;
-    hash = "sha256-tDqpIS8j6a16YbJak+P1GkCEZvJyheWV5vkUrkhScRY=";
+    hash = "sha256-A8ktvfpow/QKAEEt9SUnkTqYFJCrV1mgnuDIP3gdyrE=";
   };
 
   propagatedBuildInputs = [
@@ -67,8 +67,6 @@ buildPythonPackage rec {
   '';
 
   pytestFlagsArray = [
-    # parallelize
-    "--numprocesses $NIX_BUILD_CORES"
     # rerun failed tests up to three times
     "--reruns 3"
     # don't run tests that require network access
diff --git a/pkgs/development/python-modules/databricks-connect/default.nix b/pkgs/development/python-modules/databricks-connect/default.nix
index d242c59acdbdb..3475001a58b7d 100644
--- a/pkgs/development/python-modules/databricks-connect/default.nix
+++ b/pkgs/development/python-modules/databricks-connect/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "databricks-connect";
-  version = "9.1.10";
+  version = "9.1.14";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-OR3TXO6IzqwqbBbfFf+FGIUbwTa0DoKry84e1hL0I3Q=";
+    sha256 = "sha256-l+mTqiQPuPJfGbEVSILpCTlxAka0GeCgIXjMG4Vs82o=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/development/python-modules/datadog/default.nix b/pkgs/development/python-modules/datadog/default.nix
index c15e673fa3ed7..7d32650302f4d 100644
--- a/pkgs/development/python-modules/datadog/default.nix
+++ b/pkgs/development/python-modules/datadog/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
+, hatchling
 , decorator
 , requests
 , typing ? null
@@ -17,17 +18,22 @@
 
 buildPythonPackage rec {
   pname = "datadog";
-  version = "0.43.0";
+  version = "0.44.0";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1f2123083d9e1add6f238c62714b76ac2fc134d7d1c435cd82b976487b191b96";
+    sha256 = "sha256-BxFw8MfvIlEdv3+b12xL5QDuLT1SBykApch7VJXSxzM=";
   };
 
   postPatch = ''
     find . -name '*.pyc' -exec rm {} \;
   '';
 
+  nativeBuildInputs = [
+    hatchling
+  ];
+
   propagatedBuildInputs = [ decorator requests ]
     ++ lib.optional (pythonOlder "3.5") typing
     ++ lib.optional (pythonOlder "3.0") configparser;
diff --git a/pkgs/development/python-modules/dataset/default.nix b/pkgs/development/python-modules/dataset/default.nix
index 38de0218dec07..514876761ebfe 100644
--- a/pkgs/development/python-modules/dataset/default.nix
+++ b/pkgs/development/python-modules/dataset/default.nix
@@ -1,22 +1,28 @@
 { lib
+, alembic
+, banal
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , sqlalchemy
-, alembic
-, banal
 }:
 
 buildPythonPackage rec {
   pname = "dataset";
   version = "1.5.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-TDZ6fAqFxOdI79o07uMAw/zD8HbHXDKQt0mnoFM1yEc=";
+    hash = "sha256-TDZ6fAqFxOdI79o07uMAw/zD8HbHXDKQt0mnoFM1yEc=";
   };
 
   propagatedBuildInputs = [
-    sqlalchemy alembic banal
+    alembic
+    banal
+    sqlalchemy
   ];
 
   # checks attempt to import nonexistent module 'test.test' and fail
@@ -30,6 +36,6 @@ buildPythonPackage rec {
     description = "Toolkit for Python-based database access";
     homepage = "https://dataset.readthedocs.io";
     license = licenses.mit;
-    maintainers = [ maintainers.xfnw ];
+    maintainers = with maintainers; [ xfnw ];
   };
 }
diff --git a/pkgs/development/python-modules/datasets/default.nix b/pkgs/development/python-modules/datasets/default.nix
index ab5e929818c6e..aa3cd42e50867 100644
--- a/pkgs/development/python-modules/datasets/default.nix
+++ b/pkgs/development/python-modules/datasets/default.nix
@@ -1,42 +1,53 @@
 { lib
+, aiohttp
 , buildPythonPackage
-, fetchFromGitHub
 , dill
-, filelock
+, fetchFromGitHub
 , fsspec
 , huggingface-hub
+, importlib-metadata
 , multiprocess
 , numpy
+, packaging
 , pandas
 , pyarrow
+, pythonOlder
 , requests
+, responses
 , tqdm
 , xxhash
 }:
 
 buildPythonPackage rec {
   pname = "datasets";
-  version = "1.17.0";
+  version = "1.18.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "huggingface";
     repo = pname;
     rev = version;
-    sha256 = "0bsk3jldvcxak64dhlxkqax7mf83z6qpwfgfk32rni1gpnz5pqbd";
+    hash = "sha256-2x6DpsDcVF2O5iJKeMEGw/aJwZPc7gSGaK2947c3B6s=";
   };
 
   propagatedBuildInputs = [
+    aiohttp
     dill
-    filelock
     fsspec
     huggingface-hub
     multiprocess
     numpy
+    packaging
     pandas
     pyarrow
     requests
+    responses
     tqdm
     xxhash
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
   ];
 
   # Tests require pervasive internet access.
@@ -45,11 +56,13 @@ buildPythonPackage rec {
   # Module import will attempt to create a cache directory.
   postFixup = "export HF_MODULES_CACHE=$TMPDIR";
 
-  pythonImportsCheck = [ "datasets" ];
+  pythonImportsCheck = [
+    "datasets"
+  ];
 
   meta = with lib; {
+    description = "Open-access datasets and evaluation metrics for natural language processing";
     homepage = "https://github.com/huggingface/datasets";
-    description = "Fast, efficient, open-access datasets and evaluation metrics for natural language processing";
     changelog = "https://github.com/huggingface/datasets/releases/tag/${version}";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/pkgs/development/python-modules/datasette/default.nix b/pkgs/development/python-modules/datasette/default.nix
index f2a0d531a0a77..18c6943d1e677 100644
--- a/pkgs/development/python-modules/datasette/default.nix
+++ b/pkgs/development/python-modules/datasette/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   pname = "datasette";
   version = "0.61.1";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "simonw";
@@ -41,6 +41,17 @@ buildPythonPackage rec {
     sha256 = "sha256-HVzMyF4ujYK12UQ25il/XROPo+iBldsMxOTx+duoc5o=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace '"pytest-runner"' "" \
+      --replace "click>=7.1.1,<8.1.0" "click>=7.1.1,<8.2.0" \
+      --replace "click-default-group~=1.2.2" "click-default-group" \
+      --replace "hupper~=1.9" "hupper" \
+      --replace "Jinja2>=2.10.3,<3.1.0" "Jinja2" \
+      --replace "pint~=0.9" "pint" \
+      --replace "uvicorn~=0.11" "uvicorn"
+  '';
+
   propagatedBuildInputs = [
     aiofiles
     asgi-csrf
@@ -70,17 +81,6 @@ buildPythonPackage rec {
     trustme
   ];
 
-  postConfigure = ''
-    substituteInPlace setup.py \
-      --replace '"pytest-runner"' ""
-    substituteInPlace setup.py \
-      --replace "click-default-group~=1.2.2" "click-default-group" \
-      --replace "hupper~=1.9" "hupper" \
-      --replace "pint~=0.9" "pint" \
-      --replace "pluggy~=0.13.0" "pluggy" \
-      --replace "uvicorn~=0.11" "uvicorn" \
-  '';
-
   # takes 30-180 mins to run entire test suite, not worth the CPU resources, slows down reviews
   # with pytest-xdist, it still takes around 10 mins with 32 cores
   # just run the csv tests, as this should give some indictation of correctness
diff --git a/pkgs/development/python-modules/datashader/default.nix b/pkgs/development/python-modules/datashader/default.nix
index 152582f6716f2..b9630aa07fd4d 100644
--- a/pkgs/development/python-modules/datashader/default.nix
+++ b/pkgs/development/python-modules/datashader/default.nix
@@ -70,7 +70,6 @@ buildPythonPackage rec {
   '';
 
   pytestFlagsArray = [
-    "-n $NIX_BUILD_CORES"
     "datashader"
   ];
 
diff --git a/pkgs/development/python-modules/datatable/default.nix b/pkgs/development/python-modules/datatable/default.nix
index 9008270fc79e3..004e47a60b5cc 100644
--- a/pkgs/development/python-modules/datatable/default.nix
+++ b/pkgs/development/python-modules/datatable/default.nix
@@ -44,15 +44,9 @@ buildPythonPackage rec {
   LLVM = llvm;
   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-isystem ${lib.getDev libcxx}/include/c++/v1";
 
-  pytestFlagsArray = let
-    # ini file (not included in tarball) required to change python_files setting,
-    pytestIni = writeText "pytest.ini" ''
-      [pytest]
-      python_files = test_*.py test-*.py
-    '';
-  in [
-    "-c ${pytestIni}"
-  ];
+  # test suite is very cpu intensive, only run small subset to ensure package is working as expected
+  pytestFlagsArray = [ "tests/test-sets.py" ];
+
   disabledTests = [
     # skip tests which are irrelevant to our installation or use way too much memory
     "test_xfunction_paths"
diff --git a/pkgs/development/python-modules/dateparser/default.nix b/pkgs/development/python-modules/dateparser/default.nix
index 467ed5184c114..7f92077c0c73f 100644
--- a/pkgs/development/python-modules/dateparser/default.nix
+++ b/pkgs/development/python-modules/dateparser/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "dateparser";
-  version = "1.1.0";
+  version = "1.1.1";
 
   disabled = !isPy3k;
 
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "scrapinghub";
     repo = "dateparser";
     rev = "v${version}";
-    sha256 = "sha256-RpQWDsj7vGtfu6wf4yETdswfXDfoTkburTl6aOA03Ww=";
+    sha256 = "sha256-bDup3q93Zq+pvwsy/lQy2byOMjG6C/+7813hWQMbZRU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/db-dtypes/default.nix b/pkgs/development/python-modules/db-dtypes/default.nix
new file mode 100644
index 0000000000000..883439aba4621
--- /dev/null
+++ b/pkgs/development/python-modules/db-dtypes/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, numpy
+, packaging
+, pandas
+, pyarrow
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "db-dtypes";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "3070d1a8d86ff0b5d9b16f15c5fab9c18893c6b3d5723cd95ee397b169049454";
+  };
+
+  propagatedBuildInputs = [
+    numpy
+    packaging
+    pandas
+    pyarrow
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "db_dtypes" ];
+
+  meta = with lib; {
+    description = "Pandas Data Types for SQL systems (BigQuery, Spanner)";
+    homepage = "https://github.com/googleapis/python-db-dtypes-pandas";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/python-modules/debtcollector/default.nix b/pkgs/development/python-modules/debtcollector/default.nix
index 1915b64aca801..ced1929bcd7a6 100644
--- a/pkgs/development/python-modules/debtcollector/default.nix
+++ b/pkgs/development/python-modules/debtcollector/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "debtcollector";
-  version = "2.4.0";
+  version = "2.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-G8A+LZAX3kgMQc8+Wg2MyV8bDI8TOSgbTsqKIqz3aiM=";
+    sha256 = "sha256-3J0a0/dFxD9LvtvKMPn/6JBajAKMmSbmEHeEfV6iV6s=";
   };
 
   nativeBuildInputs = [ pbr ];
diff --git a/pkgs/development/python-modules/debugpy/default.nix b/pkgs/development/python-modules/debugpy/default.nix
index 9f6026ce7360c..04b78d6c80232 100644
--- a/pkgs/development/python-modules/debugpy/default.nix
+++ b/pkgs/development/python-modules/debugpy/default.nix
@@ -84,7 +84,6 @@ buildPythonPackage rec {
   # Override default arguments in pytest.ini
   pytestFlagsArray = [
     "--timeout=0"
-    "-n=$NIX_BUILD_CORES"
   ];
 
   disabledTests = lib.optionals (pythonAtLeast "3.10") [
diff --git a/pkgs/development/python-modules/deepdiff/default.nix b/pkgs/development/python-modules/deepdiff/default.nix
index 67f5347e1e7e2..2601eedc2fa27 100644
--- a/pkgs/development/python-modules/deepdiff/default.nix
+++ b/pkgs/development/python-modules/deepdiff/default.nix
@@ -12,18 +12,21 @@
 
 buildPythonPackage rec {
   pname = "deepdiff";
-  version = "5.6.0";
+  version = "5.7.0";
   format = "setuptools";
 
   # pypi source does not contain all fixtures required for tests
   src = fetchFromGitHub {
     owner = "seperman";
     repo = "deepdiff";
-    rev = version;
-    sha256 = "sha256-ysaIeVefsTX7ZubOXaEzeS1kMyBp4/w3SHNFxsGVhzY=";
+    # 5.7.0 release not tagged https://github.com/seperman/deepdiff/issues/300
+    rev = "f2ffdb83b2993f4f0bb7e854620f0acd0bf6339e";
+    hash = "sha256-0UBx7sH2iMrLVl5FtHNTwoecLHi8GbInn75G3FSg4gk=";
   };
 
   postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace "ordered-set==4.0.2" "ordered-set"
     substituteInPlace tests/test_command.py \
       --replace '/tmp/' "$TMPDIR/"
   '';
diff --git a/pkgs/development/python-modules/deezer-python/default.nix b/pkgs/development/python-modules/deezer-python/default.nix
index 0f01ebab4a55e..b8ad686120acd 100644
--- a/pkgs/development/python-modules/deezer-python/default.nix
+++ b/pkgs/development/python-modules/deezer-python/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "deezer-python";
-  version = "5.2.0";
+  version = "5.3.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -21,8 +21,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "browniebroke";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-jaF5vQx8/qP9pGLfilx86v1GxHbjxaRghjjI5Me0pU0=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-x1iZP+dGHeWwIr/AwQr1rYSFECtM6iDXEq9DrGH5J+s=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/detect-secrets/default.nix b/pkgs/development/python-modules/detect-secrets/default.nix
index ef19b9a913b01..e9227891e0457 100644
--- a/pkgs/development/python-modules/detect-secrets/default.nix
+++ b/pkgs/development/python-modules/detect-secrets/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "detect-secrets";
-  version = "1.1.0";
+  version = "1.2.0";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "Yelp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-dG2YaWXAMINxBGKNMlVfGTR9QHdnepiZmN+G88X4Wak=";
+    hash = "sha256-4VcV06iaL3NAj7qF8RyfWV1zgrt928AQfjGeuO2Pbjk=";
     leaveDotGit = true;
   };
 
diff --git a/pkgs/development/python-modules/devolo-home-control-api/default.nix b/pkgs/development/python-modules/devolo-home-control-api/default.nix
index badbd3afbdb6f..31e9da795d3a7 100644
--- a/pkgs/development/python-modules/devolo-home-control-api/default.nix
+++ b/pkgs/development/python-modules/devolo-home-control-api/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "devolo-home-control-api";
-  version = "0.17.4";
+  version = "0.18.1";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "2Fake";
     repo = "devolo_home_control_api";
     rev = "v${version}";
-    sha256 = "sha256-N/48Q2IEL194vCzrPPuy+mRNejXfkoXy2t2oe0Y6ug4=";
+    sha256 = "sha256-Xj5k09uEVxZgG0oLbiPOBx/dALsRjqkZbLKit4X4q9Q=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/devtools/default.nix b/pkgs/development/python-modules/devtools/default.nix
index 5d4f0871bf78f..34004769b1fdf 100644
--- a/pkgs/development/python-modules/devtools/default.nix
+++ b/pkgs/development/python-modules/devtools/default.nix
@@ -34,11 +34,18 @@ buildPythonPackage rec {
     pytest-mock
   ];
 
+  pytestFlagsArray = [
+    # pytest.PytestRemovedIn8Warning: Passing None has been deprecated.
+    "-W ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   disabledTests = [
     # Test for Windows32
     "test_print_subprocess"
     # sensitive to timing
     "test_multiple_not_verbose"
+    # sensitive to interpreter output
+    "test_simple_vars"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/dictpath/default.nix b/pkgs/development/python-modules/dictpath/default.nix
index 2809d859589ec..5a648f7898f5e 100644
--- a/pkgs/development/python-modules/dictpath/default.nix
+++ b/pkgs/development/python-modules/dictpath/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pytestCheckHook
+, six
 }:
 
 buildPythonPackage rec {
@@ -21,6 +22,7 @@ buildPythonPackage rec {
 
   checkInputs = [
     pytestCheckHook
+    six
   ];
 
   pythonImportsCheck = [ "dictpath" ];
diff --git a/pkgs/development/python-modules/diff-cover/default.nix b/pkgs/development/python-modules/diff-cover/default.nix
index cbb44fb7ca4fe..1fc50c5ef232f 100644
--- a/pkgs/development/python-modules/diff-cover/default.nix
+++ b/pkgs/development/python-modules/diff-cover/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "diff-cover";
-  version = "6.4.5";
+  version = "6.5.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "diff_cover";
     inherit version;
-    sha256 = "sha256-qUuMHBfcJEmJF/con+ODtFfYrU7yo//KgKiSpByLWKY=";
+    sha256 = "sha256-N2O0/C75EGO6crUCFGUiJLLQqfMVRNVQRZb1xKhHzXs=";
   };
 
   propagatedBuildInputs = [
@@ -52,6 +52,8 @@ buildPythonPackage rec {
     "file_does_not_exist"
     # AssertionError: assert '.c { color:...
     "test_style_defs"
+    # uses pytest.approx in a boolean context, which is unsupported since pytest7
+    "test_percent_covered"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/diskcache/default.nix b/pkgs/development/python-modules/diskcache/default.nix
index 26cb0e438f01c..cf3f7b514b1fa 100644
--- a/pkgs/development/python-modules/diskcache/default.nix
+++ b/pkgs/development/python-modules/diskcache/default.nix
@@ -45,10 +45,6 @@ buildPythonPackage rec {
     "test_get_many"
   ];
 
-  pytestFlagsArray = [
-    "-n $NIX_BUILD_CORES"
-  ];
-
   pythonImportsCheck = [
     "diskcache"
   ];
diff --git a/pkgs/development/python-modules/distributed/default.nix b/pkgs/development/python-modules/distributed/default.nix
index ee86418a66514..2055c9de13e39 100644
--- a/pkgs/development/python-modules/distributed/default.nix
+++ b/pkgs/development/python-modules/distributed/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "distributed";
-  version = "2022.2.0";
+  version = "2022.2.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   # get full repository need conftest.py to run tests
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Gi9u7JczpnAEg53E7N5tXBfAeWZaLBVzRU3SpbU3bZU=";
+    hash = "sha256-+2KnWvjvM7vhqoCmjAGjOpPBzVozLdAXq0SVW/fs9ls=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/distro/default.nix b/pkgs/development/python-modules/distro/default.nix
index bf8675af941d3..deee452ae1b4a 100644
--- a/pkgs/development/python-modules/distro/default.nix
+++ b/pkgs/development/python-modules/distro/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "distro";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "83f5e5a09f9c5f68f60173de572930effbcc0287bb84fdc4426cb4168c088424";
+    sha256 = "sha256-FRrsz2DCFkApMrUuQO5HepOfjViJiSc3igKrvoUsHDk=";
   };
 
   # tests are very targeted at individual linux distributions
diff --git a/pkgs/development/python-modules/django-allauth/default.nix b/pkgs/development/python-modules/django-allauth/default.nix
index a68cfd6d9cdfe..591d41a960ccd 100644
--- a/pkgs/development/python-modules/django-allauth/default.nix
+++ b/pkgs/development/python-modules/django-allauth/default.nix
@@ -1,31 +1,45 @@
-{ lib, buildPythonPackage, fetchFromGitHub, requests, requests_oauthlib
-, django, python3-openid, mock, coverage }:
+{ lib
+, buildPythonPackage
+, django
+, fetchFromGitHub
+, python3-openid
+, pythonOlder
+, requests
+, requests-oauthlib
+}:
 
 buildPythonPackage rec {
   pname = "django-allauth";
   version = "0.47.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
-  # no tests on PyPI
   src = fetchFromGitHub {
     owner = "pennersr";
     repo = pname;
     rev = version;
-    sha256 = "sha256-wKrsute6TCl331UrxNEBf/zTtGnyGHsOZQwdiicbg2o=";
+    hash = "sha256-wKrsute6TCl331UrxNEBf/zTtGnyGHsOZQwdiicbg2o=";
   };
 
-  propagatedBuildInputs = [ requests requests_oauthlib django python3-openid ];
-
-  checkInputs = [ coverage mock ];
+  propagatedBuildInputs = [
+    requests
+    requests-oauthlib
+    django
+    python3-openid
+  ];
 
+  # Tests requires a Django instance
   doCheck = false;
-  checkPhase = ''
-    cd $NIX_BUILD_TOP/$sourceRoot
-    coverage run manage.py test allauth
-  '';
+
+  pythonImportsCheck = [
+    "allauth"
+  ];
 
   meta = with lib; {
     description = "Integrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication";
     homepage = "https://www.intenct.nl/projects/django-allauth";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/django-appconf/default.nix b/pkgs/development/python-modules/django-appconf/default.nix
new file mode 100644
index 0000000000000..66eef9d472886
--- /dev/null
+++ b/pkgs/development/python-modules/django-appconf/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, django
+, six
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "django-appconf";
+  version = "1.0.5";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "django-compressor";
+    repo = "django-appconf";
+    rev = "v${version}";
+    hash = "sha256-nS4Hwp/NYg1XGvZO1tiE9mzJA7WFifyvgAjyp3YpqS4=";
+  };
+
+  propagatedBuildInputs = [
+    django
+  ];
+
+  preCheck = ''
+    # prove we're running tests against installed package, not build dir
+    rm -r appconf
+  '';
+
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} -m django test --settings=tests.test_settings
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    description = "A helper class for handling configuration defaults of packaged apps gracefully";
+    homepage = "https://django-appconf.readthedocs.org/";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ desiderius ];
+  };
+}
diff --git a/pkgs/development/python-modules/django-hijack-admin/default.nix b/pkgs/development/python-modules/django-hijack-admin/default.nix
index ee5a47d3787cb..ccd285757cbdd 100644
--- a/pkgs/development/python-modules/django-hijack-admin/default.nix
+++ b/pkgs/development/python-modules/django-hijack-admin/default.nix
@@ -34,5 +34,8 @@ buildPythonPackage rec {
     homepage = "https://github.com/arteria/django-hijack-admin";
     license = licenses.mit;
     maintainers = with maintainers; [ lsix ];
+    # may be unmaintained, doesn't work with recent django-hijack:
+    # https://github.com/django-hijack/django-hijack-admin/issues/46
+    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/django-hijack/default.nix b/pkgs/development/python-modules/django-hijack/default.nix
index fd9c30a4bc7cc..78cce76ca5b0d 100644
--- a/pkgs/development/python-modules/django-hijack/default.nix
+++ b/pkgs/development/python-modules/django-hijack/default.nix
@@ -1,34 +1,34 @@
-{ lib, buildPythonPackage, fetchFromGitHub, python,
-  django, django_compat, django_nose
+{ lib
+, fetchPypi
+, buildPythonPackage
+, django
+, django_compat
+, pytest-django
+, pytestCheckHook
 }:
+
 buildPythonPackage rec {
   pname = "django-hijack";
-  version = "2.1.10";
+  version = "3.2.0";
 
-  # the pypi packages don't include everything required for the tests
-  src = fetchFromGitHub {
-    owner = "arteria";
-    repo = "django-hijack";
-    rev = "v${version}";
-    sha256 = "01fwkjdzvw0yx2spwi7zc1yy64ndq1y72bfmk7kxnq5x803m2ak6";
+  # the wheel comes with pre-built assets, allowing us to avoid fighting
+  # with npm/webpack/gettext to build them ourselves.
+  format = "wheel";
+  src = fetchPypi {
+    inherit version format;
+    pname = "django_hijack";
+    dist = "py3";
+    python = "py3";
+    sha256 = "1ixn7ppmbq1bgqahwv3z57hk80ql7sxpwl8jms7y8w5z1h91cn86";
   };
 
-  checkInputs = [ django_nose ];
   propagatedBuildInputs = [ django django_compat ];
 
-  checkPhase = ''
-    runHook preCheck
-
-    # we have to do a little bit of tinkering to convince the tests to run against the installed package, not the
-    # source directory
-    mkdir testbase
-    pushd testbase
-    mv ../runtests.py .
-    ${python.interpreter} runtests.py hijack
-    popd
-
-    runHook postCheck
+  checkInputs = [ pytestCheckHook pytest-django ];
+  preCheck = ''
+    export DJANGO_SETTINGS_MODULE='hijack.tests.test_app.settings'
   '';
+  pytestFlagsArray = [ "--pyargs" "hijack" ];
 
   meta = with lib; {
     description = "Allows superusers to hijack (=login as) and work on behalf of another user";
diff --git a/pkgs/development/python-modules/django-raster/default.nix b/pkgs/development/python-modules/django-raster/default.nix
index 713e7214cfbc6..f590aca527f4f 100644
--- a/pkgs/development/python-modules/django-raster/default.nix
+++ b/pkgs/development/python-modules/django-raster/default.nix
@@ -2,9 +2,7 @@
   numpy, django_colorful, pillow, psycopg2,
   pyparsing, django, celery, boto3, importlib-metadata
 }:
-if lib.versionOlder django.version "2.0"
-then throw "django-raster requires Django >= 2.0. Consider overiding the python package set to use django_2."
-else
+
 buildPythonPackage rec {
   version = "0.8.1";
   pname = "django-raster";
diff --git a/pkgs/development/python-modules/django-statici18n/default.nix b/pkgs/development/python-modules/django-statici18n/default.nix
index 78c807903c4ef..db7d36c899339 100644
--- a/pkgs/development/python-modules/django-statici18n/default.nix
+++ b/pkgs/development/python-modules/django-statici18n/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, django, django_appconf }:
+{ lib, buildPythonPackage, fetchPypi, django, django-appconf }:
 
 buildPythonPackage rec {
   pname = "django-statici18n";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "dbcdac190d93e0b4eabcab8875c8eb68795eceb442f926843ec5cbe1432fe628";
   };
 
-  propagatedBuildInputs = [ django django_appconf ];
+  propagatedBuildInputs = [ django django-appconf ];
 
   # pypi package does not contains test harness
   # source tarball requires setting up a config
diff --git a/pkgs/development/python-modules/django-widget-tweaks/default.nix b/pkgs/development/python-modules/django-widget-tweaks/default.nix
index 63e575b634549..5fd29de16107d 100644
--- a/pkgs/development/python-modules/django-widget-tweaks/default.nix
+++ b/pkgs/development/python-modules/django-widget-tweaks/default.nix
@@ -1,4 +1,16 @@
-{ buildPythonPackage, fetchFromGitHub, python, lib, django }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+
+# native
+, setuptools-scm
+
+# propagated
+, django
+
+# tests
+, python
+}:
 
 buildPythonPackage rec {
   pname = "django-widget-tweaks";
@@ -11,15 +23,26 @@ buildPythonPackage rec {
     sha256 = "1rhn2skx287k6nnkxlwvl9snbia6w6z4c2rqg22hwzbz5w05b24h";
   };
 
-  checkPhase = "${python.interpreter} runtests.py";
-  propagatedBuildInputs = [ django ];
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    django
+  ];
+
+  checkPhase = ''
+    ${python.interpreter} -m django test --settings=tests.settings
+  '';
 
   meta = with lib; {
-      description = "Tweak the form field rendering in templates, not in python-level form definitions.";
-      homepage = "https://github.com/jazzband/django-widget-tweaks";
-      license = licenses.mit;
-      maintainers = with maintainers; [
-          maxxk
-      ];
+    description = "Tweak the form field rendering in templates, not in python-level form definitions.";
+    homepage = "https://github.com/jazzband/django-widget-tweaks";
+    license = licenses.mit;
+    maintainers = with maintainers; [
+      maxxk
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/django/1.10-gis-libs.template.patch b/pkgs/development/python-modules/django/1.10-gis-libs.template.patch
deleted file mode 100644
index da154554d1b37..0000000000000
--- a/pkgs/development/python-modules/django/1.10-gis-libs.template.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/django/contrib/gis/gdal/libgdal.py b/django/contrib/gis/gdal/libgdal.py
---- a/django/contrib/gis/gdal/libgdal.py
-+++ b/django/contrib/gis/gdal/libgdal.py
-@@ -17,7 +17,7 @@ try:
-     lib_path = settings.GDAL_LIBRARY_PATH
- except (AttributeError, EnvironmentError,
-         ImportError, ImproperlyConfigured):
--    lib_path = None
-+    lib_path = "@gdal@/lib/libgdal@extension@"
- 
- if lib_path:
-     lib_names = None
-diff --git a/django/contrib/gis/geos/libgeos.py b/django/contrib/gis/geos/libgeos.py
---- a/django/contrib/gis/geos/libgeos.py
-+++ b/django/contrib/gis/geos/libgeos.py
-@@ -26,7 +26,7 @@ try:
-         lib_path = settings.GEOS_LIBRARY_PATH
-     except (AttributeError, EnvironmentError,
-             ImportError, ImproperlyConfigured):
--        lib_path = None
-+        lib_path = "@geos@/lib/libgeos_c@extension@"
- 
-     # Setting the appropriate names for the GEOS-C library.
-     if lib_path:
diff --git a/pkgs/development/python-modules/django/2.nix b/pkgs/development/python-modules/django/2.nix
deleted file mode 100644
index 727bf304fdb2b..0000000000000
--- a/pkgs/development/python-modules/django/2.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, substituteAll,
-  isPy3k,
-  geos, gdal, pytz, sqlparse,
-  withGdal ? false
-}:
-
-buildPythonPackage rec {
-  pname = "django";
-  version = "2.2.27";
-
-  disabled = !isPy3k;
-
-  src = fetchPypi {
-    pname = "Django";
-    inherit version;
-    sha256 = "sha256-HuNwRrC/K2HoOzoB0GcyNRbsO28rF81JsTJt1LqdyRM=";
-  };
-
-  patches = lib.optional withGdal
-    (substituteAll {
-      src = ./1.10-gis-libs.template.patch;
-      geos = geos;
-      gdal = gdal;
-      extension = stdenv.hostPlatform.extensions.sharedLibrary;
-    })
-  ;
-
-  propagatedBuildInputs = [ pytz sqlparse ];
-
-  # too complicated to setup
-  doCheck = false;
-
-  meta = with lib; {
-    description = "A high-level Python Web framework";
-    homepage = "https://www.djangoproject.com/";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ georgewhewell ];
-  };
-}
diff --git a/pkgs/development/python-modules/django/3.nix b/pkgs/development/python-modules/django/3.nix
index 1538b8a82b470..f1cee8c5ffa08 100644
--- a/pkgs/development/python-modules/django/3.nix
+++ b/pkgs/development/python-modules/django/3.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "django";
-  version = "3.2.12";
+  version = "3.2.13";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     pname = "Django";
     inherit version;
-    sha256 = "sha256-l3Lmk1cD5Z6ZOWCDLWamFM8CM6HFEjvGIk7MataeQeI=";
+    sha256 = "sha256-bZNJegqb9roOCxopzM3EDvv8dilyVbEwmzqISmiOxLY=";
   };
 
   patches = lib.optional withGdal
diff --git a/pkgs/development/python-modules/django/4.nix b/pkgs/development/python-modules/django/4.nix
index 57c752725d587..db00506798115 100644
--- a/pkgs/development/python-modules/django/4.nix
+++ b/pkgs/development/python-modules/django/4.nix
@@ -39,14 +39,14 @@
 
 buildPythonPackage rec {
   pname = "Django";
-  version = "4.0.3";
+  version = "4.0.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-d/8ucFDjMkybZ+KbZwd1RWb1hRQRKprHMxD2DNUmGTA=";
+    hash = "sha256-ToF3hYUkQXVjzAQw8p6iSZRtgx6ssAaKFFVoZYffQLU=";
   };
 
   patches = lib.optional withGdal
diff --git a/pkgs/development/python-modules/django_appconf/default.nix b/pkgs/development/python-modules/django_appconf/default.nix
deleted file mode 100644
index 5da9ed0ca26da..0000000000000
--- a/pkgs/development/python-modules/django_appconf/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib, buildPythonPackage, fetchFromGitHub, six, django, fetchpatch }:
-buildPythonPackage rec {
-  pname = "django-appconf";
-  version = "1.0.3";
-
-  src = fetchFromGitHub {
-    owner = "django-compressor";
-    repo = "django-appconf";
-    rev = version;
-    sha256 = "06hwbz7362y0la9np3df25mms235fcqgpd2vn0mnf8dri9spzy1h";
-  };
-
-  propagatedBuildInputs = [ six django ];
-
-  patches = [
-    (fetchpatch {
-      name = "backport_django_2_2.patch";
-      url = "https://github.com/django-compressor/django-appconf/commit/1526a842ee084b791aa66c931b3822091a442853.patch";
-      sha256 = "1vl2s6vlf15089s8p4c3g4d5iqm8jva66bdw683r8440f80ixgmw";
-    })
-  ];
-
-  checkPhase = ''
-    # prove we're running tests against installed package, not build dir
-    rm -r appconf
-    python -m django test --settings="tests.test_settings"
-  '';
-
-  meta = with lib; {
-    description = "A helper class for handling configuration defaults of packaged apps gracefully";
-    homepage = "https://django-appconf.readthedocs.org/";
-    license = licenses.bsd2;
-    maintainers = with maintainers; [ desiderius ];
-  };
-}
diff --git a/pkgs/development/python-modules/django_compressor/default.nix b/pkgs/development/python-modules/django_compressor/default.nix
index a8204eab5fad2..82684b52374ac 100644
--- a/pkgs/development/python-modules/django_compressor/default.nix
+++ b/pkgs/development/python-modules/django_compressor/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi,
-  rcssmin, rjsmin, django_appconf }:
+  rcssmin, rjsmin, django-appconf }:
 
 buildPythonPackage rec {
     pname = "django_compressor";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     # requires django-sekizai, which we don't have packaged yet
     doCheck = false;
 
-    propagatedBuildInputs = [ rcssmin rjsmin django_appconf ];
+    propagatedBuildInputs = [ rcssmin rjsmin django-appconf ];
 
     meta = with lib; {
       description = "Compresses linked and inline JavaScript or CSS into single cached files";
diff --git a/pkgs/development/python-modules/django_contrib_comments/default.nix b/pkgs/development/python-modules/django_contrib_comments/default.nix
index 3f717b0fb5ce1..88bbdfdeddb99 100644
--- a/pkgs/development/python-modules/django_contrib_comments/default.nix
+++ b/pkgs/development/python-modules/django_contrib_comments/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "django-contrib-comments";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d82f1d04690550df026553053903deec0c52dc54212e1b79241b08f0355cff2c";
+    sha256 = "sha256-SN4A8VZ34BaiFq7/IF1uAOQ5HJpXAhNsZBGcRytzVto=";
   };
 
   propagatedBuildInputs = [ django ];
diff --git a/pkgs/development/python-modules/django_modelcluster/default.nix b/pkgs/development/python-modules/django_modelcluster/default.nix
index fc0d0e0921b48..02995c1570b9f 100644
--- a/pkgs/development/python-modules/django_modelcluster/default.nix
+++ b/pkgs/development/python-modules/django_modelcluster/default.nix
@@ -1,25 +1,43 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
+, django
+, django-taggit
 , pytz
 , pythonOlder
-, six
+, python
 }:
 
 buildPythonPackage rec {
   pname = "django-modelcluster";
-  version = "5.2";
+  version = "6.0";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "e541a46a0a899ef4778a4708be22e71cac3efacc09a6ff44bc065c5c9194c054";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "wagtail";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-p6hvOkPWRVJYLHvwyn9nS05wblikRFmlSYZuLiCcuqc=";
   };
 
-  disabled = pythonOlder "3.5";
+  propagatedBuildInputs = [
+    django
+    pytz
+  ];
+
+  passthru.extras-require.taggit = [
+    django-taggit
+  ];
 
-  doCheck = false;
+  checkInputs = passthru.extras-require.taggit;
 
-  propagatedBuildInputs = [ pytz six ];
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} ./runtests.py --noinput
+    runHook postCheck
+  '';
 
   meta = with lib; {
     description = "Django extension to allow working with 'clusters' of models as a single unit, independently of the database";
diff --git a/pkgs/development/python-modules/django_reversion/default.nix b/pkgs/development/python-modules/django_reversion/default.nix
index 1bf4d6b4dab55..f6bc72dc226a5 100644
--- a/pkgs/development/python-modules/django_reversion/default.nix
+++ b/pkgs/development/python-modules/django_reversion/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "django-reversion";
-  version = "4.0.2";
+  version = "5.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-XTO6lE2/GccDDJ5w43MSSK40Nozyr+3hDg0I+/ieb4w=";
+    sha256 = "sha256-C63jw5k4dFEIfwxng14NPRhtdn3mpcW6U6iOr8Pyccg=";
   };
 
   # tests assume the availability of a mysql/postgresql database
diff --git a/pkgs/development/python-modules/dm-haiku/default.nix b/pkgs/development/python-modules/dm-haiku/default.nix
index 55a91006b06a8..2c4c24b93670b 100644
--- a/pkgs/development/python-modules/dm-haiku/default.nix
+++ b/pkgs/development/python-modules/dm-haiku/default.nix
@@ -15,13 +15,13 @@
 
 buildPythonPackage rec {
   pname = "dm-haiku";
-  version = "0.0.5";
+  version = "0.0.6";
 
   src = fetchFromGitHub {
     owner = "deepmind";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1mdqjcka0m1div63ngba8w8z94id4c1h8xqmnq1xpmgkc79224wa";
+    hash = "sha256-qvKMeGPiWXvvyV+GZdTWdsC6Wp08AmP8nDtWk7sZtqM=";
   };
 
   propagatedBuildInputs = [
@@ -32,13 +32,13 @@ buildPythonPackage rec {
   checkInputs = [
     chex
     cloudpickle
+    dill
     dm-tree
     jaxlib
     pytest-xdist
     pytestCheckHook
     tensorflow
   ];
-  pytestFlagsArray = [ "-n $NIX_BUILD_CORES" ];
 
   pythonImportsCheck = [
     "haiku"
@@ -53,6 +53,13 @@ buildPythonPackage rec {
     # likely that's the reason the upstream uses TF-nightly for tests?
     # `nixpkgs` doesn't have the corresponding TF version packaged.
     "haiku/_src/integration/jax2tf_test.py"
+    # `TypeError: lax.conv_general_dilated requires arguments to have the same dtypes, got float32, float16`.
+    "haiku/_src/integration/numpy_inputs_test.py"
+  ];
+
+  disabledTests = [
+    # See https://github.com/deepmind/dm-haiku/issues/366.
+    "test_jit_Recurrent"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/dm-sonnet/default.nix b/pkgs/development/python-modules/dm-sonnet/default.nix
deleted file mode 100644
index 3820fdd1e36cb..0000000000000
--- a/pkgs/development/python-modules/dm-sonnet/default.nix
+++ /dev/null
@@ -1,91 +0,0 @@
-{ lib
-, fetchFromGitHub
-, bazel_0_26
-, buildBazelPackage
-, buildPythonPackage
-, git
-, python
-, six
-, absl-py
-, semantic-version
-, contextlib2
-, wrapt
-, tensorflow
-, tensorflow-probability
-, tensorflow-estimator
-}:
-
-let
-  version = "1.33";
-
-  # first build all binaries and generate setup.py using bazel
-  bazel-build = buildBazelPackage {
-    bazel = bazel_0_26;
-
-    name = "dm-sonnet-bazel-${version}";
-
-    src = fetchFromGitHub {
-      owner = "deepmind";
-      repo = "sonnet";
-      rev = "v${version}";
-      sha256 = "1nqsja1s8jrkq6v1whgh7smk17313mjr9vs3k5c1m8px4yblzhqc";
-    };
-
-    nativeBuildInputs = [
-      git # needed to fetch the bazel deps (protobuf in particular)
-    ];
-
-    # see https://github.com/deepmind/sonnet/blob/master/docs/INSTALL.md
-    bazelTarget = ":install";
-
-    fetchAttrs = {
-      sha256 = "09dzxs2v5wpiaxrz7qj257q1fbx0gxwbk0jyx58n81m5kys7yj9k";
-    };
-
-    buildAttrs = {
-      preBuild = ''
-        patchShebangs .
-      '';
-
-      installPhase = ''
-        # do not generate a wheel, instead just copy the generated files to $out to be installed by buildPythonPackage
-        sed -i 's,.*bdist_wheel.*,cp -rL . "$out"; exit 0,' bazel-bin/install
-
-        # the target directory "dist" does not actually matter since we're not generating a wheel
-        bazel-bin/install dist
-      '';
-    };
-  };
-
-# now use pip to install the package prepared by bazel
-in buildPythonPackage {
-  pname = "dm-sonnet";
-  inherit version;
-
-  src = bazel-build;
-
-  propagatedBuildInputs = [
-    six
-    absl-py
-    semantic-version
-    contextlib2
-    wrapt
-    tensorflow
-    tensorflow-probability
-    tensorflow-estimator
-  ];
-
-  # not sure how to properly run the real test suite -- through bazel?
-  checkPhase = ''
-    ${python.interpreter} -c "import sonnet"
-  '';
-
-  meta = with lib; {
-    description = "TensorFlow-based neural network library";
-    homepage = "https://sonnet.dev";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ timokau ];
-    platforms = platforms.linux;
-    broken = true; # depends on older TensorFlow version than is currently packaged
-  };
-}
diff --git a/pkgs/development/python-modules/dnspython/default.nix b/pkgs/development/python-modules/dnspython/default.nix
index 59730bff71ecf..1dbbba48b1048 100644
--- a/pkgs/development/python-modules/dnspython/default.nix
+++ b/pkgs/development/python-modules/dnspython/default.nix
@@ -5,31 +5,39 @@
 , pythonOlder
 , setuptools-scm
 , pytestCheckHook
+, cacert
 }:
 
 buildPythonPackage rec {
   pname = "dnspython";
-  version = "2.2.0";
+  version = "2.2.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
     extension = "tar.gz";
-    sha256 = "1mi6l2n766y1gic3x1swp2jk2nr7wbkb191qinwhddnh6bh534z7";
+    sha256 = "0gk00m8zxjghxnzafhars51k5ahd6wfhf123nrc1j5gzlsj6jx8g";
   };
 
   checkInputs = [
     pytestCheckHook
+  ] ++ lib.optional stdenv.isDarwin [
+    cacert
   ];
 
   disabledTests = [
     # dns.exception.SyntaxError: protocol not found
     "test_misc_good_WKS_text"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # unable to get local issuer certificate
-    "test_async"
-    "test_query"
+    # fails if IPv6 isn't available
     "test_resolver_override"
+
+  # Tests that run inconsistently on darwin systems
+  ] ++ lib.optionals stdenv.isDarwin [
+    # 9 tests fail with: BlockingIOError: [Errno 35] Resource temporarily unavailable
+    "testQueryUDP"
+    # 6 tests fail with: dns.resolver.LifetimeTimeout: The resolution lifetime expired after ...
+    "testResolveCacheHit"
+    "testResolveTCP"
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/doc8/default.nix b/pkgs/development/python-modules/doc8/default.nix
index 61c4ca6890a15..c02100e379ec5 100644
--- a/pkgs/development/python-modules/doc8/default.nix
+++ b/pkgs/development/python-modules/doc8/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "doc8";
-  version = "0.10.1";
+  version = "0.11.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "376e50f4e70a1ae935416ddfcf93db35dd5d4cc0e557f2ec72f0667d0ace4548";
+    sha256 = "sha256-bby1Ry79Mydj/7KGK0/e7EDIpv3Gu2fmhxOtdJylgIw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/docutils/default.nix b/pkgs/development/python-modules/docutils/default.nix
index 529a09d3f0468..3cd680e062f0e 100644
--- a/pkgs/development/python-modules/docutils/default.nix
+++ b/pkgs/development/python-modules/docutils/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "docutils";
-  version = "0.17.1";
+  version = "0.18.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125";
+    sha256 = "sha256-Z5mHyvNhp1OdduWEy+3cMR467pN4d8hzRvMd68Y+nQY=";
   };
 
   # Only Darwin needs LANG, but we could set it in general.
diff --git a/pkgs/development/python-modules/doit/default.nix b/pkgs/development/python-modules/doit/default.nix
index c7c66fceaa7cd..71cc9f69654c7 100644
--- a/pkgs/development/python-modules/doit/default.nix
+++ b/pkgs/development/python-modules/doit/default.nix
@@ -8,21 +8,24 @@
 , cloudpickle
 , pyinotify
 , macfsevents
+, toml
 }:
 
 buildPythonPackage rec {
   pname = "doit";
-  version = "0.34.2";
+  version = "0.35.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-OIER+Kals7RGIM7rKH0FhZJ8hdDW0/h5DTT7tFwM9sM=";
+    sha256 = "sha256-cVoyLIdMTLhiOU46DWn/MlcrUln1cDb7/cEFPEwB00g=";
   };
 
-  propagatedBuildInputs = [ cloudpickle ]
-    ++ lib.optional stdenv.isLinux pyinotify
+  propagatedBuildInputs = [
+    cloudpickle
+    toml
+  ] ++ lib.optional stdenv.isLinux pyinotify
     ++ lib.optional stdenv.isDarwin macfsevents;
 
   # hangs on darwin
diff --git a/pkgs/development/python-modules/dotmap/default.nix b/pkgs/development/python-modules/dotmap/default.nix
index 1378569f3a9c1..5c4cfbf952406 100644
--- a/pkgs/development/python-modules/dotmap/default.nix
+++ b/pkgs/development/python-modules/dotmap/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "dotmap";
-  version = "1.3.28";
+  version = "1.3.30";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-riqDYqtjstyx681zz80aZ6hBizNw4V3NOusInHGlXoI=";
+    hash = "sha256-WCGnkz8HX7R1Y0F8DpLgt8AxFYtMmmp+VhY0ebZYs2g=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/dragonfly/default.nix b/pkgs/development/python-modules/dragonfly/default.nix
index 82e1a645c853f..74740aeffb7ee 100644
--- a/pkgs/development/python-modules/dragonfly/default.nix
+++ b/pkgs/development/python-modules/dragonfly/default.nix
@@ -24,13 +24,13 @@
 
 buildPythonPackage rec {
   pname = "dragonfly";
-  version = "0.32.0";
+  version = "0.35.0";
 
   src = fetchFromGitHub {
     owner = "dictation-toolbox";
     repo = pname;
     rev = version;
-    sha256 = "BUbIhc8as/DVx8/4VeQS9emOLGcWFujNCxesSEEBqKQ=";
+    sha256 = "sha256-sqEEEr5/KG3cn4rmOGJt9zMNAjeLO6h3NJgg0EyewrM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/dropbox/default.nix b/pkgs/development/python-modules/dropbox/default.nix
index f18f6203d1e09..efce258451ffd 100644
--- a/pkgs/development/python-modules/dropbox/default.nix
+++ b/pkgs/development/python-modules/dropbox/default.nix
@@ -1,17 +1,18 @@
 { lib
 , buildPythonPackage
+, pythonOlder
 , fetchFromGitHub
 , requests
-, urllib3
-, mock
-, setuptools
+, six
 , stone
-, pythonOlder
+, mock
+, pytest-mock
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "dropbox";
-  version = "11.29.0";
+  version = "11.30.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,33 +21,58 @@ buildPythonPackage rec {
     owner = "dropbox";
     repo = "dropbox-sdk-python";
     rev = "v${version}";
-    sha256 = "sha256-TKJb34hJYzZtQcqgopLpN8c1utWCNjmev9epY+hYU7M=";
+    hash = "sha256-w07r95MBAClf0F3SICiZsHLdslzf+JuxC+BVdTACCog=";
   };
 
   propagatedBuildInputs = [
     requests
-    urllib3
-    mock
-    setuptools
+    six
     stone
   ];
 
+  checkInputs = [
+    mock
+    pytest-mock
+    pytestCheckHook
+  ];
+
   postPatch = ''
     substituteInPlace setup.py \
       --replace "'pytest-runner == 5.2.0'," ""
   '';
 
-  # Set DROPBOX_TOKEN environment variable to a valid token.
-  doCheck = false;
+  doCheck = true;
 
   pythonImportsCheck = [
     "dropbox"
   ];
 
+  # Set SCOPED_USER_DROPBOX_TOKEN environment variable to a valid value.
+  disabledTests = [
+    "test_default_oauth2_urls"
+    "test_bad_auth"
+    "test_multi_auth"
+    "test_refresh"
+    "test_app_auth"
+    "test_downscope"
+    "test_rpc"
+    "test_upload_download"
+    "test_bad_upload_types"
+    "test_clone_when_user_linked"
+    "test_with_path_root_constructor"
+    "test_path_root"
+    "test_path_root_err"
+    "test_versioned_route"
+    "test_team"
+    "test_as_user"
+    "test_as_admin"
+    "test_clone_when_team_linked"
+  ];
+
   meta = with lib; {
     description = "Python library for Dropbox's HTTP-based Core and Datastore APIs";
     homepage = "https://github.com/dropbox/dropbox-sdk-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ sfrijters ];
   };
 }
diff --git a/pkgs/development/python-modules/dugong/default.nix b/pkgs/development/python-modules/dugong/default.nix
index 5130ea3b0043e..190411b5333c5 100644
--- a/pkgs/development/python-modules/dugong/default.nix
+++ b/pkgs/development/python-modules/dugong/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, pythonAtLeast
 , pytestCheckHook
 }:
 
@@ -21,6 +22,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  # Lots of tests hang during teardown with:
+  #   ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:2396)
+  doCheck = pythonOlder "3.10";
+
   pythonImportsCheck = [ "dugong" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/dunamai/default.nix b/pkgs/development/python-modules/dunamai/default.nix
index f4a24a7a7f8a7..8b51d829c8df1 100644
--- a/pkgs/development/python-modules/dunamai/default.nix
+++ b/pkgs/development/python-modules/dunamai/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "dunamai";
-  version = "1.10.0";
+  version = "1.11.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "mtkennerly";
     repo = "dunamai";
     rev = "v${version}";
-    sha256 = "sha256-Sp0yfNkFwNc2qR9aSPteBqZcqRokM9whOVmduXVK3CI=";
+    sha256 = "sha256-nkE9QBziCQA/aN+Z0OuqJlf5FJ4fidE7u5Gt25zjX0c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dynalite-devices/default.nix b/pkgs/development/python-modules/dynalite-devices/default.nix
index dafbcfc2f5cd0..3ee79ae448049 100644
--- a/pkgs/development/python-modules/dynalite-devices/default.nix
+++ b/pkgs/development/python-modules/dynalite-devices/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "dynalite-devices";
-  version = "0.1.46";
+  version = "0.46";
 
   src = fetchFromGitHub {
     owner = "ziv1234";
     repo = "python-dynalite-devices";
-    rev = "v0.46"; # https://github.com/ziv1234/python-dynalite-devices/issues/2
+    rev = "v${version}"; # https://github.com/ziv1234/python-dynalite-devices/issues/2
     hash = "sha256-Fju2JpFkQBCbOln7r3L+crv82TI2SkdPJ1oaK7PEifo=";
   };
 
diff --git a/pkgs/development/python-modules/eagle100/default.nix b/pkgs/development/python-modules/eagle100/default.nix
new file mode 100644
index 0000000000000..9d5e5d795028f
--- /dev/null
+++ b/pkgs/development/python-modules/eagle100/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "eagle100";
+  version = "0.1.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-eyYY1x8IjIfUx5OiaOomiWunsO1++seFwXlI/iKDDLw=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "eagle100"
+  ];
+
+  meta = with lib; {
+    description = "Python library for interacting with Rainforest EAGLE devices";
+    homepage = "https://github.com/hastarin/eagle100";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/easyprocess/default.nix b/pkgs/development/python-modules/easyprocess/default.nix
index c98a8b572d454..97707e0e9fd43 100644
--- a/pkgs/development/python-modules/easyprocess/default.nix
+++ b/pkgs/development/python-modules/easyprocess/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "EasyProcess";
-  version = "0.3";
+  version = "1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "115rzzr0hx4af4m6krf7dxn8851n4l8jfxahjzjc2r0zq2m8v57v";
+    sha256 = "sha256-iFiYMCpXqrlIlz6LXTKkIpOSufstmGqx1P/VkOW6kOw=";
   };
 
   # No tests
diff --git a/pkgs/development/python-modules/editables/default.nix b/pkgs/development/python-modules/editables/default.nix
index ee902d772c99f..e5deb02af52f4 100644
--- a/pkgs/development/python-modules/editables/default.nix
+++ b/pkgs/development/python-modules/editables/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "editables";
-  version = "0.2";
+  version = "0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6918f16225258f24ef9800c2327e14eded42ddac344e77982380749464024f35";
+    sha256 = "sha256-FnUk43c1jtHxN05hwmjw16S/fb0EbGVve0EM3hYWGxo=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/elkm1-lib/default.nix b/pkgs/development/python-modules/elkm1-lib/default.nix
index 6b877a58dd0ba..12f9a667fef8a 100644
--- a/pkgs/development/python-modules/elkm1-lib/default.nix
+++ b/pkgs/development/python-modules/elkm1-lib/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "elkm1-lib";
-  version = "1.2.1";
+  version = "1.3.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "gwww";
     repo = "elkm1";
     rev = version;
-    hash = "sha256-Jr9f+essHB1FkzD6zM0G6jgE9C9lfDJuFIPrKRhVt+g=";
+    hash = "sha256-g8tMVH1MZihEEHGQjxX/Mcn5Mu3N9VA3AGdk2avlOoE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/enaml/default.nix b/pkgs/development/python-modules/enaml/default.nix
index 9e6a910b2ba94..ccd8bb497d100 100644
--- a/pkgs/development/python-modules/enaml/default.nix
+++ b/pkgs/development/python-modules/enaml/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, setuptools-scm
 , atom
 , ply
 , kiwisolver
@@ -12,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "enaml";
-  version = "0.14.1";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "nucleic";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-QfI7cwl2c5HOlFNNdG+oOv48X9jJZnZNU/kWgutWe6k=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-xSMgT8VooDS5kvf4BCcVbv/MNfRDTVnPKU3Ou+/Gq7I=";
   };
 
   # qt bindings cannot be found during tests
@@ -39,6 +40,7 @@ buildPythonPackage rec {
     "enaml.workbench"
   ];
 
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [
     atom
     ply
@@ -48,6 +50,7 @@ buildPythonPackage rec {
     cppy
     bytecode
   ];
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
 
   meta = with lib; {
     homepage = "https://github.com/nucleic/enaml";
diff --git a/pkgs/development/python-modules/entrypoint2/default.nix b/pkgs/development/python-modules/entrypoint2/default.nix
index 73ede85fb886e..4fd464d483f39 100644
--- a/pkgs/development/python-modules/entrypoint2/default.nix
+++ b/pkgs/development/python-modules/entrypoint2/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, EasyProcess, pathpy, pytestCheckHook }:
+{ lib, buildPythonPackage, fetchPypi, EasyProcess, path, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "entrypoint2";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "entrypoint2" ];
 
-  checkInputs = [ EasyProcess pathpy pytestCheckHook ];
+  checkInputs = [ EasyProcess path pytestCheckHook ];
 
   meta = with lib; {
     description = "Easy to use command-line interface for python modules";
diff --git a/pkgs/development/python-modules/entrypoints/default.nix b/pkgs/development/python-modules/entrypoints/default.nix
index a26d6ede8904f..1223f3f911dec 100644
--- a/pkgs/development/python-modules/entrypoints/default.nix
+++ b/pkgs/development/python-modules/entrypoints/default.nix
@@ -1,31 +1,36 @@
 { lib
 , buildPythonPackage
+, pythonOlder
 , fetchPypi
+, flit-core
 , configparser
-, pytest
-, isPy3k
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "entrypoints";
-  version = "0.3";
+  version = "0.4";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451";
+    sha256 = "sha256-twbt2qkhihnrzWe1aBjwW7J1ibHKno15e3Sv+tTMrNQ=";
   };
 
-  checkInputs = [ pytest ];
-
-  propagatedBuildInputs = lib.optional (!isPy3k) configparser;
+  nativeBuildInputs = [
+    flit-core
+  ];
 
-  checkPhase = ''
-    py.test tests
-  '';
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  meta = {
+  meta = with lib; {
     description = "Discover and load entry points from installed packages";
     homepage = "https://github.com/takluyver/entrypoints";
-    license = lib.licenses.mit;
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/env-canada/default.nix b/pkgs/development/python-modules/env-canada/default.nix
index 9ec0dda4bc515..216168b51131b 100644
--- a/pkgs/development/python-modules/env-canada/default.nix
+++ b/pkgs/development/python-modules/env-canada/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "env-canada";
-  version = "0.5.22";
+  version = "0.5.23";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -22,8 +22,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "michaeldavie";
     repo = "env_canada";
-    rev = "v${version}";
-    sha256 = "sha256-3dqG3wlFlGCI3Ymq5rpoNpmeU36WCQ4Iya5m5mCAVFI=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-ksQQ3jujfu2XR0ZaR5fc8GNYDL8Tos+8U4OHS1mMyRY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ephemeral-port-reserve/default.nix b/pkgs/development/python-modules/ephemeral-port-reserve/default.nix
new file mode 100644
index 0000000000000..0af57945073fe
--- /dev/null
+++ b/pkgs/development/python-modules/ephemeral-port-reserve/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+let
+  pname = "ephemeral-port-reserve";
+  version = "1.1.4";
+in
+buildPythonPackage {
+  inherit pname version;
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "Yelp";
+    repo = "ephemeral-port-reserve";
+    rev = "v${version}";
+    hash = "sha256-R6NRpfaT05PO/cTWgCakiGfCuCyucjVOXbAezn5x1cU=";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = lib.optionals stdenv.isDarwin [
+    # can't find hostname in our darwin build environment
+    "test_fqdn"
+  ];
+
+  pythonImportsCheck = [
+    "ephemeral_port_reserve"
+  ];
+
+  meta = with lib; {
+    description = "Find an unused port, reliably";
+    homepage = "https://github.com/Yelp/ephemeral-port-reserve/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/exchangelib/default.nix b/pkgs/development/python-modules/exchangelib/default.nix
index 3550f1e17361c..2f3f5fe16abbc 100644
--- a/pkgs/development/python-modules/exchangelib/default.nix
+++ b/pkgs/development/python-modules/exchangelib/default.nix
@@ -17,7 +17,7 @@
 , pyyaml
 , requests
 , requests_ntlm
-, requests_oauthlib
+, requests-oauthlib
 , requests-kerberos
 , requests-mock
 , tzdata
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "ecederstrand";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fdYc+fJEePgCzAkUWz7pmL/CI/O9zm5G9xh1f4bhrH4=";
+    hash = "sha256-fdYc+fJEePgCzAkUWz7pmL/CI/O9zm5G9xh1f4bhrH4=";
   };
 
   propagatedBuildInputs = [
@@ -48,7 +48,7 @@ buildPythonPackage rec {
     pygments
     requests
     requests_ntlm
-    requests_oauthlib
+    requests-oauthlib
     requests-kerberos
     tzdata
     tzlocal
diff --git a/pkgs/development/python-modules/faker/default.nix b/pkgs/development/python-modules/faker/default.nix
index 048edf64d38f8..7ca49a4843429 100644
--- a/pkgs/development/python-modules/faker/default.nix
+++ b/pkgs/development/python-modules/faker/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "faker";
-  version = "11.3.0";
+  version = "13.3.4";
 
   src = fetchPypi {
     pname = "Faker";
     inherit version;
-    hash = "sha256-rb5WfmTaahCX/qyraZAA4a0W4Xplkqjwrh7gt/vxmIc=";
+    hash = "sha256-GIlhBl+1x46mOfQhdvVRAPcskMOjF5rGyVXEvXErBRE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/fakeredis/default.nix b/pkgs/development/python-modules/fakeredis/default.nix
index 5860a959afcd8..5d45c4dc5ce38 100644
--- a/pkgs/development/python-modules/fakeredis/default.nix
+++ b/pkgs/development/python-modules/fakeredis/default.nix
@@ -26,6 +26,11 @@ buildPythonPackage rec {
     hash = "sha256-fCxLobQuCnUzfFS3d78GcQVrRWllDj/5J+S5s4WvyOw=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "redis<4.2.0" "redis"
+  '';
+
   propagatedBuildInputs = [
     aioredis
     lupa
diff --git a/pkgs/development/python-modules/falcon/default.nix b/pkgs/development/python-modules/falcon/default.nix
index 5dba22d839124..58bbae872832e 100644
--- a/pkgs/development/python-modules/falcon/default.nix
+++ b/pkgs/development/python-modules/falcon/default.nix
@@ -1,22 +1,21 @@
 { lib
 , buildPythonPackage
 , pythonOlder
-, fetchPypi
-, pytestCheckHook
+, isPyPy
+, fetchFromGitHub
+
+# build
+, cython
+
+# tests
 , aiofiles
 , cbor2
-, ddt
-, gunicorn
 , httpx
-, hypercorn
-, jsonschema
 , msgpack
 , mujson
-, nose
 , orjson
-, pecan
 , pytest-asyncio
-, python-mimeparse
+, pytestCheckHook
 , pyyaml
 , rapidjson
 , requests
@@ -28,43 +27,57 @@
 
 buildPythonPackage rec {
   pname = "falcon";
-  version = "3.0.1";
+  version = "3.1.0";
   format = "pyproject";
   disabled = pythonOlder "3.5";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-xB2E2zJYgahw6LcSnV7P2XL6QyPPd7cRmh0qIZZu5oE=";
+  src = fetchFromGitHub {
+    owner = "falconry";
+    repo = pname;
+    rev = version;
+    hash = "sha256-Y6bD0GCXhqpvMV+/i1v59p2qWZ91f2ey7sPQrVALY54=";
   };
 
+  nativeBuildInputs = lib.optionals (!isPyPy) [
+    cython
+  ];
+
+  preCheck = ''
+    export HOME=$TMPDIR
+    cp -R tests examples $TMPDIR
+    pushd $TMPDIR
+  '';
+
+  postCheck = ''
+    popd
+  '';
+
   checkInputs = [
-    aiofiles
-    cbor2
-    ddt
-    gunicorn
-    httpx
-    hypercorn
-    jsonschema
-    msgpack
-    mujson
-    nose
-    orjson
-    pecan
-    pytest-asyncio
+    # https://github.com/falconry/falcon/blob/master/requirements/tests
     pytestCheckHook
-    python-mimeparse
     pyyaml
-    rapidjson
     requests
-    testtools
-    ujson
+    rapidjson
+    orjson
+
+    # ASGI specific
+    pytest-asyncio
+    aiofiles
+    httpx
     uvicorn
     websockets
+
+    # handler specific
+    cbor2
+    msgpack
+    mujson
+    ujson
+  ] ++ lib.optionals (pythonOlder "3.10") [
+    testtools
   ];
 
-  disabledTestPaths = [
-    # missing optional nuts package
-    "falcon/bench/nuts/nuts/tests/test_functional.py"
+  pytestFlagsArray = [
+    "tests"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/faraday-plugins/default.nix b/pkgs/development/python-modules/faraday-plugins/default.nix
index 42f8a4860509a..fb26c1621fe35 100644
--- a/pkgs/development/python-modules/faraday-plugins/default.nix
+++ b/pkgs/development/python-modules/faraday-plugins/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "faraday-plugins";
-  version = "1.6.1";
+  version = "1.6.4";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "infobyte";
     repo = "faraday_plugins";
-    rev = "v${version}";
-    sha256 = "sha256-NpPVA+fruI/xX0KMjRuRuMK8HYc/0ErbDhJOCNXKhyY=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-0IAr91ql4ShjGQol3uc/erIHW6E1Vzj724JJ3NaLZUo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/fastapi/default.nix b/pkgs/development/python-modules/fastapi/default.nix
index cf55a56bdd173..c3abc2163be76 100644
--- a/pkgs/development/python-modules/fastapi/default.nix
+++ b/pkgs/development/python-modules/fastapi/default.nix
@@ -7,6 +7,7 @@
 , pytest-asyncio
 , aiosqlite
 , databases
+, fetchpatch
 , flask
 , httpx
 , passlib
@@ -19,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "fastapi";
-  version = "0.75.1";
+  version = "0.75.2";
   format = "flit";
 
   disabled = pythonOlder "3.6";
@@ -28,7 +29,7 @@ buildPythonPackage rec {
     owner = "tiangolo";
     repo = pname;
     rev = version;
-    sha256 = "sha256-tSZ5isMzDhDsuVNQdoYXG0IYkgCvdVdARtFXELNjTtk=";
+    hash = "sha256-B4q3Q256Sj4jTQt1TDm3fiEaQKdVxddCF9+KsxkkTWo=";
   };
 
   propagatedBuildInputs = [
@@ -50,6 +51,16 @@ buildPythonPackage rec {
     trio
   ];
 
+  patches = [
+    # Bump starlette, https://github.com/tiangolo/fastapi/pull/4483
+    (fetchpatch {
+      name = "support-later-starlette.patch";
+      # PR contains multiple commits
+      url = "https://patch-diff.githubusercontent.com/raw/tiangolo/fastapi/pull/4483.patch";
+      sha256 = "sha256-ZWaqAd/QYEYRL1hSQdXdFPgWgdmOill2GtmEn33vz2U=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace "starlette ==" "starlette >="
@@ -70,10 +81,13 @@ buildPythonPackage rec {
 
   disabledTests = [
     "test_get_custom_response"
-
     # Failed: DID NOT RAISE <class 'starlette.websockets.WebSocketDisconnect'>
     "test_websocket_invalid_data"
     "test_websocket_no_credentials"
+    # TypeError: __init__() missing 1...starlette-releated
+    "test_head"
+    "test_options"
+    "test_trace"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/fastcore/default.nix b/pkgs/development/python-modules/fastcore/default.nix
index b7fc364958dd2..e86013605e7b1 100644
--- a/pkgs/development/python-modules/fastcore/default.nix
+++ b/pkgs/development/python-modules/fastcore/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "fastcore";
-  version = "1.4.1";
+  version = "1.4.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -16,8 +16,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "fastai";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-qZsCsMwZxJsnznQ/C1SUPexkquv0tIyCkNYL5f2k0FU=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-0q+qFrfMsXkwgu08igt2kHZ9c3/aqz/inCpJXkPZsdg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/fasteners/default.nix b/pkgs/development/python-modules/fasteners/default.nix
index 0364022fa2864..ef8a62bc8e8e4 100644
--- a/pkgs/development/python-modules/fasteners/default.nix
+++ b/pkgs/development/python-modules/fasteners/default.nix
@@ -1,47 +1,34 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, six
-, monotonic
+, fetchFromGitHub
 , diskcache
 , more-itertools
-, testtools
-, isPy3k
-, nose
-, futures ? null
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "fasteners";
-  version = "0.16.3";
+  version = "0.17.3";
+  format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "b1ab4e5adfbc28681ce44b3024421c4f567e705cc3963c732bf1cba3348307de";
+  src = fetchFromGitHub {
+    owner = "harlowja";
+    repo = pname;
+    rev = version;
+    hash = "sha256-FVhHp8BZ/wQQyr5AcuDo94LlflixhjZ0SnheSdHuDVQ=";
   };
 
-  propagatedBuildInputs = [
-    six
-    monotonic
-  ];
-
   checkInputs = [
     diskcache
     more-itertools
-    testtools
-    nose
-  ] ++ lib.optionals (!isPy3k) [
-    futures
+    pytestCheckHook
   ];
 
-  checkPhase = ''
-    nosetests
-  '';
-
   meta = with lib; {
     description = "A python package that provides useful locks";
     homepage = "https://github.com/harlowja/fasteners";
     license = licenses.asl20;
+    maintainers = with maintainers; [ ];
   };
 
 }
diff --git a/pkgs/development/python-modules/fastparquet/default.nix b/pkgs/development/python-modules/fastparquet/default.nix
index 56fb6a53e14a2..30aa6a2ab7640 100644
--- a/pkgs/development/python-modules/fastparquet/default.nix
+++ b/pkgs/development/python-modules/fastparquet/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "fastparquet";
-  version = "0.7.1";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "dask";
     repo = pname;
     rev = version;
-    hash = "sha256-xV0AXNZSy4LSrHf11OP/+KDbeDQu8yF1ugX+W4mie1E=";
+    sha256 = "05qb4nz87p9vnrdsyl25hdp5sj35lki64gjza5dahc89fwfdnsmd";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/science/math/fenics/default.nix b/pkgs/development/python-modules/fenics/default.nix
index 2690d544c2c8b..f1ccc5efc84b4 100644
--- a/pkgs/development/libraries/science/math/fenics/default.nix
+++ b/pkgs/development/python-modules/fenics/default.nix
@@ -1,45 +1,37 @@
 { lib, stdenv
 , fetchurl
 , fetchpatch
+, blas
 , boost
 , cmake
 , doxygen
 , eigen
+, gtest
+, hdf5
+, lapack
+, mpi
 , mpi4py
 , numpy
 , pkg-config
+, ply
 , pybind11
 , pytest
-, pythonPackages
-, six
-, sympy
-, gtest
-, hdf5
-, mpi
-, ply
 , python
+, pythonPackages
 , scotch
 , setuptools
+, six
 , sphinx
 , suitesparse
 , swig
+, sympy
 , zlib
-, blas
-, lapack
 , nixosTests
 }:
+
 let
   version = "2019.1.0";
 
-  # TODO: test with newer pytest
-  pytest = pythonPackages.callPackage
-    ../../../../python2-modules/pytest {
-      # hypothesis tests require pytest that causes dependency cycle
-      hypothesis = pythonPackages.hypothesis.override {
-        doCheck = false;
-      };
-    };
-
   dijitso = pythonPackages.buildPythonPackage {
     pname = "dijitso";
     inherit version;
@@ -243,8 +235,8 @@ let
       export CMAKE_PREFIX_PATH=${pybind11}/share/cmake/pybind11:$CMAKE_PREFIX_PATH
       substituteInPlace setup.py --replace "pybind11==2.2.4" "pybind11"
       substituteInPlace dolfin/jit/jit.py \
-        --replace 'pkg-config.exists("dolfin")' 'pkg-config.exists("${dolfin}/lib/pkgconfig/dolfin.pc")' \
-        --replace 'pkg-config.parse("dolfin")' 'pkg-config.parse("${dolfin}/lib/pkgconfig/dolfin.pc")'
+        --replace 'pkgconfig.exists("dolfin")' 'pkgconfig.exists("${dolfin}/lib/pkgconfig/dolfin.pc")' \
+        --replace 'pkgconfig.parse("dolfin")' 'pkgconfig.parse("${dolfin}/lib/pkgconfig/dolfin.pc")'
     '';
     buildInputs = [
       dolfin
diff --git a/pkgs/development/python-modules/ffcv/default.nix b/pkgs/development/python-modules/ffcv/default.nix
index 2aee132e294fc..08f80d198e4e2 100644
--- a/pkgs/development/python-modules/ffcv/default.nix
+++ b/pkgs/development/python-modules/ffcv/default.nix
@@ -5,7 +5,7 @@
 , numba
 , opencv4
 , pandas
-, pkgconfig
+, pkg-config
 , pytorch-pfn-extras
 , terminaltables
 , tqdm
@@ -35,7 +35,8 @@ buildPythonPackage rec {
       --replace "'webdataset'," ""
   '';
 
-  buildInputs = [ libjpeg pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ libjpeg ];
   propagatedBuildInputs = [ opencv4 numba pandas pytorch-pfn-extras terminaltables tqdm ];
 
   # `ffcv._libffcv*.so` cannot be loaded in the nix build environment for some
diff --git a/pkgs/development/python-modules/filelock/default.nix b/pkgs/development/python-modules/filelock/default.nix
index 8eaed65ca73c2..16379ef85e1ef 100644
--- a/pkgs/development/python-modules/filelock/default.nix
+++ b/pkgs/development/python-modules/filelock/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "filelock";
-  version = "3.4.2";
+  version = "3.6.0";
   format = "pyproject";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "38b4f4c989f9d06d44524df1b24bd19e167d851f19b50bf3e3559952dddc5b80";
+    sha256 = "sha256-nNVAqTUuQyxyRqSP5OhxKxCssd8q0fMOjAcLgq4f7YU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/findpython/default.nix b/pkgs/development/python-modules/findpython/default.nix
new file mode 100644
index 0000000000000..6c4f5daf64860
--- /dev/null
+++ b/pkgs/development/python-modules/findpython/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+
+# build time
+, pdm-pep517
+
+# runtime
+, packaging
+
+# tests
+, pytestCheckHook
+}:
+
+let
+  pname = "findpython";
+  version = "0.1.6";
+in
+buildPythonPackage {
+  inherit pname version;
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-n9YYXNy5a6pxCTCER++0k7LH8aj1aeEorxTXJrKmnhg=";
+  };
+
+  nativeBuildInputs = [
+    pdm-pep517
+  ];
+
+  propagatedBuildInputs = [
+    packaging
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "findpython"
+  ];
+
+  meta = with lib; {
+    description = "A utility to find python versions on your system";
+    homepage = "https://github.com/frostming/findpython";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/fints/default.nix b/pkgs/development/python-modules/fints/default.nix
index 7972a9374c785..13f20fbd49d69 100644
--- a/pkgs/development/python-modules/fints/default.nix
+++ b/pkgs/development/python-modules/fints/default.nix
@@ -8,7 +8,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "3.0.1";
+  version = "3.1.0";
   pname = "fints";
   disabled = isPy27;
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "raphaelm";
     repo = "python-fints";
     rev = "v${version}";
-    sha256 = "sha256-P9+3QuB5c7WMjic2fSp8pwXrOUHIrLThvfodtbBXLMY=";
+    hash = "sha256-3frJIEZgVnZD2spWYIuEtUt7MVsU/Zj82HOB9fKYQWE=";
   };
 
   propagatedBuildInputs = [ requests mt-940 sepaxml bleach ];
diff --git a/pkgs/development/python-modules/fipy/default.nix b/pkgs/development/python-modules/fipy/default.nix
index ab670e557da4b..57835019d5def 100644
--- a/pkgs/development/python-modules/fipy/default.nix
+++ b/pkgs/development/python-modules/fipy/default.nix
@@ -39,6 +39,14 @@ buildPythonPackage rec {
   ] ++ lib.optionals isPy27 [ pysparse ]
   ++ lib.optionals (!stdenv.isDarwin) [ gmsh ];
 
+  # Reading version string from Gmsh is broken in latest release of FiPy
+  # This issue is repaired on master branch of FiPy
+  # Fixed with: https://github.com/usnistgov/fipy/pull/848/files
+  # Remove patch with next release.
+  patches = [ ./gmsh.patch ];
+
+  checkInputs = lib.optionals (!stdenv.isDarwin) [ gmsh ];
+
   checkPhase = ''
     export OMPI_MCA_plm_rsh_agent=${openssh}/bin/ssh
     ${python.interpreter} setup.py test --modules
diff --git a/pkgs/development/python-modules/fipy/gmsh.patch b/pkgs/development/python-modules/fipy/gmsh.patch
new file mode 100644
index 0000000000000..7e7b687ac8c6a
--- /dev/null
+++ b/pkgs/development/python-modules/fipy/gmsh.patch
@@ -0,0 +1,182 @@
+diff --git a/fipy/meshes/gmshMesh.py b/fipy/meshes/gmshMesh.py
+index fc3ff6c8..d529d532 100755
+--- a/fipy/meshes/gmshMesh.py
++++ b/fipy/meshes/gmshMesh.py
+@@ -13,11 +13,11 @@ import sys
+ import tempfile
+ from textwrap import dedent
+ import warnings
+-from distutils.version import StrictVersion
+ 
+ from fipy.tools import numerix as nx
+ from fipy.tools import parallelComm
+ from fipy.tools import serialComm
++from fipy.tools.version import Version, parse_version
+ from fipy.tests.doctestPlus import register_skipper
+ 
+ from fipy.meshes.mesh import Mesh
+@@ -38,7 +38,7 @@ def _checkForGmsh():
+     hasGmsh = True
+     try:
+         version = _gmshVersion(communicator=parallelComm)
+-        hasGmsh = version >= StrictVersion("2.0")
++        hasGmsh = version >= Version("2.0")
+     except Exception:
+         hasGmsh = False
+     return hasGmsh
+@@ -68,6 +68,7 @@ def gmshVersion(communicator=parallelComm):
+         while True:
+             try:
+                 # gmsh returns version in stderr (Why?!?)
++                # (newer versions of gmsh return the version in stdout)
+                 # spyder on Windows throws
+                 #   OSError: [WinError 6] The handle is invalid
+                 # if we don't PIPE stdout, too
+@@ -77,8 +78,11 @@ def gmshVersion(communicator=parallelComm):
+                 break
+ 
+             try:
+-                out, verStr = p.communicate()
+-                verStr = verStr.decode('ascii').strip()
++                out, err = p.communicate()
++                verStr = err.decode('ascii').strip()
++                if not verStr:
++                    # newer versions of gmsh return the version in stdout
++                    verStr = out.decode('ascii').strip()
+                 break
+             except IOError:
+                 # some weird conflict with things like PyQT can cause
+@@ -93,12 +97,12 @@ def gmshVersion(communicator=parallelComm):
+ def _gmshVersion(communicator=parallelComm):
+     version = gmshVersion(communicator) or "0.0"
+     try:
+-        version = StrictVersion(version)
++        version = parse_version(version)
+     except ValueError:
+         # gmsh returns the version string in stderr,
+         # which means it's often unparsable due to irrelevant warnings
+         # assume it's OK and move on
+-        version = StrictVersion("3.0")
++        version = Version("3.0")
+ 
+     return version
+ 
+@@ -133,7 +137,7 @@ def openMSHFile(name, dimensions=None, coordDimensions=None, communicator=parall
+ 
+     # Enforce gmsh version to be either >= 2 or 2.5, based on Nproc.
+     version = _gmshVersion(communicator=communicator)
+-    if version < StrictVersion("2.0"):
++    if version < Version("2.0"):
+         raise EnvironmentError("Gmsh version must be >= 2.0.")
+ 
+     # If we're being passed a .msh file, leave it be. Otherwise,
+@@ -176,9 +180,11 @@ def openMSHFile(name, dimensions=None, coordDimensions=None, communicator=parall
+             gmshFlags = ["-%d" % dimensions, "-nopopup"]
+ 
+             if communicator.Nproc > 1:
+-                if not (StrictVersion("2.5") < version <= StrictVersion("4.0")):
+-                    warnstr = "Cannot partition with Gmsh version < 2.5 or >= 4.0. " \
+-                               + "Reverting to serial."
++                if  ((version < Version("2.5"))
++                     or (Version("4.0") <= version < Version("4.5.2"))):
++                    warnstr = ("Cannot partition with Gmsh version < 2.5 "
++                               "or 4.0 <= version < 4.5.2. "
++                               "Reverting to serial.")
+                     warnings.warn(warnstr, RuntimeWarning, stacklevel=2)
+                     communicator = serialComm
+ 
+@@ -188,13 +194,13 @@ def openMSHFile(name, dimensions=None, coordDimensions=None, communicator=parall
+                         raise ValueError("'dimensions' must be specified to generate a mesh from a geometry script")
+                 else: # gmsh version is adequate for partitioning
+                     gmshFlags += ["-part", "%d" % communicator.Nproc]
+-                    if version >= StrictVersion("4.0"):
++                    if version >= Version("4.0"):
+                         # Gmsh 4.x needs to be told to generate ghost cells
+-                        # Unfortunately, the ghosts are broken
++                        # Unfortunately, the ghosts are broken in Gmsh 4.0--4.5.1
+                         # https://gitlab.onelab.info/gmsh/gmsh/issues/733
+                         gmshFlags += ["-part_ghosts"]
+ 
+-            gmshFlags += ["-format", "msh2"]
++            gmshFlags += ["-format", "msh2", "-smooth", "8"]
+ 
+             if background is not None:
+                 if communicator.procID == 0:
+@@ -1387,6 +1393,11 @@ class _GmshTopology(_MeshTopology):
+ class Gmsh2D(Mesh2D):
+     """Construct a 2D Mesh using Gmsh
+ 
++    If called in parallel, the mesh will be partitioned based on the value
++    of `parallelComm.Nproc`.  If an `MSH` file is supplied, it must have
++    been previously partitioned with the number of partitions matching
++    `parallelComm.Nproc`.
++
+     >>> radius = 5.
+     >>> side = 4.
+     >>> squaredCircle = Gmsh2D('''
+@@ -1875,6 +1886,11 @@ class Gmsh2D(Mesh2D):
+ class Gmsh2DIn3DSpace(Gmsh2D):
+     """Create a topologically 2D Mesh in 3D coordinates using Gmsh
+ 
++    If called in parallel, the mesh will be partitioned based on the value
++    of `parallelComm.Nproc`.  If an `MSH` file is supplied, it must have
++    been previously partitioned with the number of partitions matching
++    `parallelComm.Nproc`.
++
+     Parameters
+     ----------
+     arg : str
+@@ -1959,6 +1975,11 @@ class Gmsh2DIn3DSpace(Gmsh2D):
+ class Gmsh3D(Mesh):
+     """Create a 3D Mesh using Gmsh
+ 
++    If called in parallel, the mesh will be partitioned based on the value
++    of `parallelComm.Nproc`.  If an `MSH` file is supplied, it must have
++    been previously partitioned with the number of partitions matching
++    `parallelComm.Nproc`.
++
+     Parameters
+     ----------
+     arg : str
+@@ -2225,7 +2246,7 @@ class GmshGrid2D(Gmsh2D):
+         width  = nx * dx
+         numLayers = int(ny / float(dy))
+ 
+-        if _gmshVersion() < StrictVersion("2.7"):
++        if _gmshVersion() < Version("2.7"):
+             # kludge: must offset cellSize by `eps` to work properly
+             eps = float(dx)/(nx * 10)
+         else:
+@@ -2299,7 +2320,7 @@ class GmshGrid3D(Gmsh3D):
+         width  = nx * dx
+         depth  = nz * dz
+ 
+-        if _gmshVersion() < StrictVersion("2.7"):
++        if _gmshVersion() < Version("2.7"):
+             # kludge: must offset cellSize by `eps` to work properly
+             eps = float(dx)/(nx * 10)
+         else:
+diff --git a/fipy/tools/version.py b/fipy/tools/version.py
+new file mode 100644
+index 00000000..93d89c18
+--- /dev/null
++++ b/fipy/tools/version.py
+@@ -0,0 +1,18 @@
++"""Shim for version checking
++
++`distutils.version` is deprecated, but `packaging.version` is unavailable
++in Python 2.7
++"""
++from __future__ import unicode_literals
++
++__docformat__ = 'restructuredtext'
++
++
++__all__ = ["Version", "parse_version"]
++from future.utils import text_to_native_str
++__all__ = [text_to_native_str(n) for n in __all__]
++
++try:
++    from packaging.version import Version, parse as parse_version
++except ImportError:
++    from distutils.version import StrictVersion as Version, StrictVersion as parse_version    
diff --git a/pkgs/development/python-modules/fitbit/default.nix b/pkgs/development/python-modules/fitbit/default.nix
index b41ac0a4983a1..3a1c76776774a 100644
--- a/pkgs/development/python-modules/fitbit/default.nix
+++ b/pkgs/development/python-modules/fitbit/default.nix
@@ -1,41 +1,49 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, coverage
-, python-dateutil
 , freezegun
 , mock
+, pytestCheckHook
+, python-dateutil
+, pythonOlder
 , requests-mock
-, requests_oauthlib
-, sphinx
+, requests-oauthlib
 }:
 
 buildPythonPackage rec {
   pname = "fitbit";
   version = "0.3.1";
+  format = "setuptools";
 
-  checkInputs = [ coverage freezegun mock requests-mock sphinx ];
-  propagatedBuildInputs = [ python-dateutil requests_oauthlib ];
+  disabled = pythonOlder "3.7";
 
-  # The source package on PyPi is missing files required for unit testing.
-  # https://github.com/orcasgit/python-fitbit/issues/148
   src = fetchFromGitHub {
-    rev = version;
     owner = "orcasgit";
     repo = "python-fitbit";
-    sha256 = "1w2lpgf6bs5nbnmslppaf4lbhr9cj6grg0a525xv41jip7iy3vfn";
+    rev = version;
+    hash = "sha256-1u3h47lRBrJ7EUWBl5+RLGW4KHHqXqqrXbboZdy7VPA=";
   };
 
-  postPatch = ''
-    substituteInPlace requirements/test.txt \
-      --replace 'Sphinx>=1.2,<1.4' 'Sphinx' \
-      --replace 'coverage>=3.7,<4.0' 'coverage'
-  '';
+  propagatedBuildInputs = [
+    python-dateutil
+    requests-oauthlib
+  ];
+
+  checkInputs = [
+    freezegun
+    mock
+    pytestCheckHook
+    requests-mock
+  ];
+
+  pythonImportsCheck = [
+    "fitbit"
+  ];
 
   meta = with lib; {
     description = "Fitbit API Python Client Implementation";
-    license = licenses.asl20;
     homepage = "https://github.com/orcasgit/python-fitbit";
+    license = licenses.asl20;
     maintainers = with maintainers; [ delroth ];
   };
 }
diff --git a/pkgs/development/python-modules/fivem-api/default.nix b/pkgs/development/python-modules/fivem-api/default.nix
new file mode 100644
index 0000000000000..aef6fc342129f
--- /dev/null
+++ b/pkgs/development/python-modules/fivem-api/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "fivem-api";
+  version = "0.1.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-6llrMGWbDRmysEw+B6B115hLS5xlktQEXiSHzPLbV5s=";
+  };
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "fivem"
+  ];
+
+  meta = with lib; {
+    description = "Module for interacting with FiveM servers";
+    homepage = "https://github.com/Sander0542/fivem-api";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/flake8-blind-except/default.nix b/pkgs/development/python-modules/flake8-blind-except/default.nix
index ee3f46d078ca2..c25985e16819d 100644
--- a/pkgs/development/python-modules/flake8-blind-except/default.nix
+++ b/pkgs/development/python-modules/flake8-blind-except/default.nix
@@ -1,6 +1,7 @@
 { lib
 , fetchPypi
 , buildPythonPackage
+, pycodestyle
 , pythonOlder
 }:
 
@@ -16,6 +17,10 @@ buildPythonPackage rec {
     hash = "sha256-8lpXWp3LPus8dgv5wi22C4taIxICJO0fqppD913X3RY=";
   };
 
+  propagatedBuildInputs = [
+    pycodestyle
+  ];
+
   # Module has no tests
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/flake8-bugbear/default.nix b/pkgs/development/python-modules/flake8-bugbear/default.nix
index ef014011bdff0..a2fb820c1e5fe 100644
--- a/pkgs/development/python-modules/flake8-bugbear/default.nix
+++ b/pkgs/development/python-modules/flake8-bugbear/default.nix
@@ -4,19 +4,23 @@
 , attrs
 , flake8
 , pytestCheckHook
+, pythonOlder
 , hypothesis
 , hypothesmith
 }:
 
 buildPythonPackage rec {
   pname = "flake8-bugbear";
-  version = "22.3.23";
+  version = "22.4.25";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "PyCQA";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-s1EnPM2He+R+vafu14XI1Xuft8Rg6W3vPH2Atc6N7I0=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-y/hpBlIQ3aJj3Y1snpArOCIv2w1ncQNMSYJ+G0CeM84=";
   };
 
   propagatedBuildInputs = [
@@ -32,9 +36,10 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
+    description = "Plugin for Flake8 to find bugs and design problems";
     homepage = "https://github.com/PyCQA/flake8-bugbear";
     changelog = "https://github.com/PyCQA/flake8-bugbear/blob/${version}/README.rst#change-log";
-    description = ''
+    longDescription = ''
       A plugin for flake8 finding likely bugs and design problems in your
       program.
     '';
diff --git a/pkgs/development/python-modules/flake8/default.nix b/pkgs/development/python-modules/flake8/default.nix
index c707cb3caaa1b..73dc7403b25f4 100644
--- a/pkgs/development/python-modules/flake8/default.nix
+++ b/pkgs/development/python-modules/flake8/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.cfg \
-      --replace "pyflakes >= 2.3.0, < 2.4.0" "pyflakes >= 2.3.0, < 2.5.0"
+      --replace "mccabe>=0.6.0,<0.7.0" "mccabe>=0.7.0,<0.8.0"
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/flask-admin/default.nix b/pkgs/development/python-modules/flask-admin/default.nix
index 7187e8790529c..6a1ea3991cfa3 100644
--- a/pkgs/development/python-modules/flask-admin/default.nix
+++ b/pkgs/development/python-modules/flask-admin/default.nix
@@ -62,6 +62,11 @@ buildPythonPackage rec {
     wtf-peewee
   ];
 
+  disabledTests = [
+    # Incompatible with werkzeug 2.1
+    "test_mockview"
+  ];
+
   disabledTestPaths = [
     # Tests have additional requirements
     "flask_admin/tests/geoa/test_basic.py"
diff --git a/pkgs/development/python-modules/flask-appbuilder/default.nix b/pkgs/development/python-modules/flask-appbuilder/default.nix
index 0129c98772307..1d84fb88ed7c4 100644
--- a/pkgs/development/python-modules/flask-appbuilder/default.nix
+++ b/pkgs/development/python-modules/flask-appbuilder/default.nix
@@ -27,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "flask-appbuilder";
-  version = "3.4.4";
+  version = "4.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -35,14 +35,10 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "Flask-AppBuilder";
     inherit version;
-    sha256 = "sha256-uZzuvNusqMzAS/vmg3CuZ+D442J4LbFwsBboVIx/srE=";
+    hash = "sha256-g+iHUL83PokXPGu7HJ8ffLocQr0uGpMqS5MbfIlZZ2E=";
   };
 
-  # See here: https://github.com/dpgaspar/Flask-AppBuilder/commit/7097a7b133f27c78d2b54d2a46e4a4c24478a066.patch
-  #           https://github.com/dpgaspar/Flask-AppBuilder/pull/1610
-  # The patch from the PR doesn't apply cleanly so I edited it manually.
   patches = [
-    ./upgrade-to-flask_jwt_extended-4.patch
     (fetchpatch {
       # https://github.com/dpgaspar/Flask-AppBuilder/pull/1734
       name = "flask-appbuilder-wtf3.patch";
@@ -82,16 +78,11 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace setup.py \
       --replace "apispec[yaml]>=3.3, <4" "apispec[yaml] >=3.3" \
-      --replace "Flask>=0.12, <2" "Flask" \
-      --replace "Flask-Login>=0.3, <0.5" "Flask-Login >=0.3, <0.6" \
-      --replace "Flask-Babel>=1, <2" "Flask-Babel >=1, <3" \
+      --replace "Flask-Login>=0.3, <0.5" "Flask-Login >=0.3" \
       --replace "Flask-WTF>=0.14.2, <0.15.0" "Flask-WTF" \
       --replace "WTForms<3.0.0" "WTForms" \
       --replace "marshmallow-sqlalchemy>=0.22.0, <0.27.0" "marshmallow-sqlalchemy" \
-      --replace "Flask-JWT-Extended>=3.18, <4" "Flask-JWT-Extended>=4.1.0" \
-      --replace "PyJWT>=1.7.1, <2.0.0" "PyJWT>=2.0.1" \
-      --replace "prison>=0.2.1, <1.0.0" "prison" \
-      --replace "SQLAlchemy<1.4.0" "SQLAlchemy"
+      --replace "prison>=0.2.1, <1.0.0" "prison"
   '';
 
   # Majority of tests require network access or mongo
diff --git a/pkgs/development/python-modules/flask-bcrypt/default.nix b/pkgs/development/python-modules/flask-bcrypt/default.nix
index fd0e63d26f301..1c09b6d809c4a 100644
--- a/pkgs/development/python-modules/flask-bcrypt/default.nix
+++ b/pkgs/development/python-modules/flask-bcrypt/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "flask-bcrypt";
-  version = "0.7.1";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "maxcountryman";
     repo = pname;
     rev = version;
-    sha256 = "0036gag3nj7fzib23lbbpwhlrn1s0kkrfwk5pd90y4cjcfqh8z9x";
+    sha256 = "sha256-WlIholi/nzq6Ikc0LS6FhG0Q5Kz0kvvAlA2YJ7EksZ4=";
   };
 
   propagatedBuildInputs = [
@@ -23,9 +23,15 @@ buildPythonPackage rec {
   ];
 
   checkPhase = ''
-    ${python.interpreter} test_bcrypt.py
+    runHook preCheck
+    ${python.interpreter} -m unittest discover
+    runHook postCheck
   '';
 
+  pythonImportsCheck = [
+    "flask_bcrypt"
+  ];
+
   meta = with lib; {
     description = "Brcrypt hashing for Flask";
     homepage = "https://github.com/maxcountryman/flask-bcrypt";
diff --git a/pkgs/development/python-modules/flask-compress/default.nix b/pkgs/development/python-modules/flask-compress/default.nix
index fff330946d168..26e5feca03e39 100644
--- a/pkgs/development/python-modules/flask-compress/default.nix
+++ b/pkgs/development/python-modules/flask-compress/default.nix
@@ -1,25 +1,43 @@
-{ lib, fetchPypi, buildPythonPackage, flask
+{ lib
+, fetchPypi
+, buildPythonPackage
+, setuptools-scm
+, flask
 , brotli
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
-  version = "1.10.1";
+  version = "1.11";
   pname = "Flask-Compress";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "28352387efbbe772cfb307570019f81957a13ff718d994a9125fa705efb73680";
+    sha256 = "sha256-9WnzLERtayXKjjR9UAOgUxgR73MmeABbADb8HJ6xwhw=";
   };
 
-  postPatch = ''
-    sed -i -e 's/use_scm_version=.*/version="${version}",/' setup.py
-  '';
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
 
-  propagatedBuildInputs = [ flask brotli ];
+  propagatedBuildInputs = [
+    flask
+    brotli
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "flask_compress"
+  ];
 
   meta = with lib; {
     description = "Compress responses in your Flask app with gzip";
-    homepage = "https://libwilliam.github.io/flask-compress/";
+    homepage = "https://github.com/colour-science/flask-compress";
+    changelog = "https://github.com/colour-science/flask-compress/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/flask-httpauth/default.nix b/pkgs/development/python-modules/flask-httpauth/default.nix
index e667e08b144ac..fb313faff2396 100644
--- a/pkgs/development/python-modules/flask-httpauth/default.nix
+++ b/pkgs/development/python-modules/flask-httpauth/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "flask-httpauth";
-  version = "4.5.0";
+  version = "4.6.0";
 
   disabled = python.pythonOlder "3";
 
   src = fetchPypi {
     pname = "Flask-HTTPAuth";
     version = version;
-    sha256 = "0ada63rkcvwkakjyx4ay98fjzwx5h55br12ys40ghkc5lbyl0l1r";
+    sha256 = "sha256-IHbPhuhMaqRC7gM0S/91Hq4TPTWhpIkx5vmfFHFhtVs=";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/flask-login/default.nix b/pkgs/development/python-modules/flask-login/default.nix
index 3c7058c1212d8..62eb3287f8c75 100644
--- a/pkgs/development/python-modules/flask-login/default.nix
+++ b/pkgs/development/python-modules/flask-login/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "flask-login";
-  version = "0.5.0";
+  version = "0.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "Flask-Login";
     inherit version;
-    sha256 = "6d33aef15b5bcead780acc339464aae8a6e28f13c90d8b1cf9de8b549d1c0b4b";
+    sha256 = "sha256-qoT8+0w88JyljAjoFre85z8TSboc8T0A2N/8WHLV/PY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/flask-paranoid/default.nix b/pkgs/development/python-modules/flask-paranoid/default.nix
index 787b34a93b37f..8de346593efbe 100644
--- a/pkgs/development/python-modules/flask-paranoid/default.nix
+++ b/pkgs/development/python-modules/flask-paranoid/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "flask-paranoid";
-  version = "0.2";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "miguelgrinberg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0WWc/ktAOuTk4A75xI1jCj/aef2+1TjLKBA9+PRfJO0=";
+    sha256 = "sha256-tikD8efc3Q3xIQnaC3SSBaCRQxMI1HzXxeupvYeNnE4=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/flask-restful/default.nix b/pkgs/development/python-modules/flask-restful/default.nix
index db7a63c5ed4a2..1af875d4bbc59 100644
--- a/pkgs/development/python-modules/flask-restful/default.nix
+++ b/pkgs/development/python-modules/flask-restful/default.nix
@@ -20,6 +20,10 @@ buildPythonPackage rec {
     sha256 = "0gm5dz088v3d2k1dkcp9b3nnqpkk0fp2jly870hijj2xhc5nbv6c";
   };
 
+  patches = [
+    ./werkzeug-2.1.0-compat.patch
+  ];
+
   propagatedBuildInputs = [
     aniso8601
     flask
diff --git a/pkgs/development/python-modules/flask-restful/werkzeug-2.1.0-compat.patch b/pkgs/development/python-modules/flask-restful/werkzeug-2.1.0-compat.patch
new file mode 100644
index 0000000000000..c8707b2394354
--- /dev/null
+++ b/pkgs/development/python-modules/flask-restful/werkzeug-2.1.0-compat.patch
@@ -0,0 +1,114 @@
+Fixes compatibility with Werkzeug 2.1.0 ported over from flask-restx#423.
+
+https://github.com/python-restx/flask-restx/pull/423
+
+diff --git a/flask_restful/reqparse.py b/flask_restful/reqparse.py
+index 9bb3099..5c59594 100644
+--- a/flask_restful/reqparse.py
++++ b/flask_restful/reqparse.py
+@@ -114,7 +114,10 @@ class Argument(object):
+         :param request: The flask request object to parse arguments from
+         """
+         if isinstance(self.location, six.string_types):
+-            value = getattr(request, self.location, MultiDict())
++            if self.location in {"json", "get_json"}:
++                value = request.get_json(silent=True)
++            else:
++                value = getattr(request, self.location, MultiDict())
+             if callable(value):
+                 value = value()
+             if value is not None:
+@@ -122,7 +125,10 @@ class Argument(object):
+         else:
+             values = MultiDict()
+             for l in self.location:
+-                value = getattr(request, l, None)
++                if l in {"json", "get_json"}:
++                    value = request.get_json(silent=True)
++                else:
++                    value = getattr(request, l, None)
+                 if callable(value):
+                     value = value()
+                 if value is not None:
+diff --git a/tests/test_api.py b/tests/test_api.py
+index 15f12eb..9a9cceb 100644
+--- a/tests/test_api.py
++++ b/tests/test_api.py
+@@ -936,7 +936,7 @@ class APITestCase(unittest.TestCase):
+         app = app.test_client()
+         resp = app.get('/api')
+         self.assertEqual(resp.status_code, 302)
+-        self.assertEqual(resp.headers['Location'], 'http://localhost/')
++        self.assertEqual(resp.headers['Location'], '/')
+ 
+     def test_json_float_marshalled(self):
+         app = Flask(__name__)
+diff --git a/tests/test_reqparse.py b/tests/test_reqparse.py
+index 1d75e40..e5c586b 100644
+--- a/tests/test_reqparse.py
++++ b/tests/test_reqparse.py
+@@ -23,8 +23,9 @@ class ReqParseTestCase(unittest.TestCase):
+         with app.app_context():
+             parser = RequestParser()
+             parser.add_argument('foo', choices=('one', 'two'), help='Bad choice: {error_msg}')
+-            req = Mock(['values'])
++            req = Mock(["values", "get_json"])
+             req.values = MultiDict([('foo', 'three')])
++            req.get_json.return_value = None
+             parser.parse_args(req)
+             expected = {'foo': 'Bad choice: three is not a valid choice'}
+             abort.assert_called_with(400, message=expected)
+@@ -35,8 +36,9 @@ class ReqParseTestCase(unittest.TestCase):
+         with app.app_context():
+             parser = RequestParser()
+             parser.add_argument('foo', choices=('one', 'two'), help=u'Bad choice: {error_msg}')
+-            req = Mock(['values'])
++            req = Mock(["values", "get_json"])
+             req.values = MultiDict([('foo', u'\xf0\x9f\x8d\x95')])
++            req.get_json.return_value = None
+             parser.parse_args(req)
+             expected = {'foo': u'Bad choice: \xf0\x9f\x8d\x95 is not a valid choice'}
+             abort.assert_called_with(400, message=expected)
+@@ -47,8 +49,9 @@ class ReqParseTestCase(unittest.TestCase):
+         with app.app_context():
+             parser = RequestParser()
+             parser.add_argument('foo', choices=['one', 'two'], help='Please select a valid choice')
+-            req = Mock(['values'])
++            req = Mock(["values", "get_json"])
+             req.values = MultiDict([('foo', 'three')])
++            req.get_json.return_value = None
+             parser.parse_args(req)
+             expected = {'foo': 'Please select a valid choice'}
+             abort.assert_called_with(400, message=expected)
+@@ -58,8 +61,9 @@ class ReqParseTestCase(unittest.TestCase):
+         def bad_choice():
+             parser = RequestParser()
+             parser.add_argument('foo', choices=['one', 'two'])
+-            req = Mock(['values'])
++            req = Mock(["values", "get_json"])
+             req.values = MultiDict([('foo', 'three')])
++            req.get_json.return_value = None
+             parser.parse_args(req)
+             abort.assert_called_with(400, message='three is not a valid choice')
+         app = Flask(__name__)
+@@ -190,7 +194,8 @@ class ReqParseTestCase(unittest.TestCase):
+         self.assertTrue(len(arg.source(req)) == 0)  # yes, basically you don't find it
+ 
+     def test_source_default_location(self):
+-        req = Mock(['values'])
++        req = Mock(['values', 'get_json'])
++        req.get_json.return_value = None
+         req._get_child_mock = lambda **kwargs: MultiDict()
+         arg = Argument('foo')
+         self.assertEqual(arg.source(req), req.values)
+@@ -215,8 +220,9 @@ class ReqParseTestCase(unittest.TestCase):
+         args = parser.parse_args(req)
+         self.assertEqual(args['foo'], "bar")
+ 
+-        req = Mock()
++        req = Mock(['get_json'])
+         req.values = ()
++        req.get_json.return_value = None
+         req.json = None
+         req.view_args = {"foo": "bar"}
+         parser = RequestParser()
diff --git a/pkgs/development/python-modules/flask-restx/default.nix b/pkgs/development/python-modules/flask-restx/default.nix
index 42e3eabec74eb..4b88ab5645075 100644
--- a/pkgs/development/python-modules/flask-restx/default.nix
+++ b/pkgs/development/python-modules/flask-restx/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , aniso8601
 , jsonschema
 , flask
@@ -28,6 +29,20 @@ buildPythonPackage rec {
     sha256 = "18vrmknyxw6adn62pz3kr9kvazfgjgl4pgimdf8527fyyiwcqy15";
   };
 
+  patches = [
+    # Fixes werkzeug 2.1 compatibility
+    (fetchpatch {
+      # https://github.com/python-restx/flask-restx/pull/427
+      url = "https://github.com/python-restx/flask-restx/commit/bb72a51860ea8a42c928f69bdd44ad20b1f9ee7e.patch";
+      hash = "sha256-DRH3lI6TV1m0Dq1VyscL7GQS26OOra9g88dXZNrNpmQ=";
+    })
+    (fetchpatch {
+      # https://github.com/python-restx/flask-restx/pull/427
+      url = "https://github.com/python-restx/flask-restx/commit/bb3e9dd83b9d4c0d0fa0de7d7ff713fae71eccee.patch";
+      hash = "sha256-HJpjG4aQWzEPCMfbXfkw4mz5TH9d89BCvGH2dE6Jfv0=";
+    })
+  ];
+
   propagatedBuildInputs = [
     aniso8601
     flask
diff --git a/pkgs/development/python-modules/flask-seasurf/default.nix b/pkgs/development/python-modules/flask-seasurf/default.nix
index ff1f97c42184a..6d09d7ec45c69 100644
--- a/pkgs/development/python-modules/flask-seasurf/default.nix
+++ b/pkgs/development/python-modules/flask-seasurf/default.nix
@@ -1,19 +1,29 @@
-{ lib, fetchFromGitHub, buildPythonPackage, isPy3k, flask }:
+{ lib, fetchFromGitHub, buildPythonPackage, isPy3k, flask, mock, python }:
 
 buildPythonPackage rec {
   pname = "Flask-SeaSurf";
-  version = "0.3.0";
+  version = "1.1.1";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "maxcountryman";
     repo = "flask-seasurf";
     rev = version;
-    sha256 = "02hsvppsz1d93v641f14fdnd22gbc12ilc9k9kn7wl119n5s3pd8";
+    sha256 = "sha256-L/ZUEqqHmsyXG5eShcITII36ttwQlZN5GBngo+GcCdw=";
   };
 
   propagatedBuildInputs = [ flask ];
 
+  checkInputs = [
+    mock
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} -m unittest discover
+    runHook postCheck
+  '';
+
   pythonImportsCheck = [ "flask_seasurf" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/flask-security-too/default.nix b/pkgs/development/python-modules/flask-security-too/default.nix
index ddf5aa05c493b..8379ec7bcfe4b 100644
--- a/pkgs/development/python-modules/flask-security-too/default.nix
+++ b/pkgs/development/python-modules/flask-security-too/default.nix
@@ -1,69 +1,103 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, flask
+
+# extras: babel
+, Babel
+, flask-babel
+
+# extras: common
+, bcrypt
+, bleach
+, flask_mail
+
+# extras: fsqla
+, flask_sqlalchemy
+, sqlalchemy
+, sqlalchemy-utils
+
+# extras: mfa
+, cryptography
+, phonenumbers
+, pyqrcode
+
+# propagates
 , blinker
-, setuptools
-, itsdangerous
-, flask_principal
-, passlib
 , email_validator
-, flask_wtf
+, flask
 , flask_login
-, pytestCheckHook
-, flask_mail
-, sqlalchemy
-, flask_sqlalchemy
+, flask_principal
+, flask_wtf
+, itsdangerous
+, passlib
+
+# tests
 , flask-mongoengine
+, mongoengine
+, mongomock
 , peewee
 , pony
+, pytestCheckHook
 , zxcvbn
-, mongoengine
-, cryptography
-, pyqrcode
-, phonenumbers
-, bleach
-, mongomock
 }:
 
 buildPythonPackage rec {
   pname = "flask-security-too";
-  version = "4.1.2";
+  version = "4.1.4";
 
   src = fetchPypi {
     pname = "Flask-Security-Too";
     inherit version;
-    sha256 = "16ws5n08vm7wsa2f7lrkxvc7jl3ah1xfylhhyzb4vvqmlk7x9hw8";
+    sha256 = "sha256-j6My1CD+GY2InHlN0IXPcNqfq+ytdoDD3y+5s2o3WRI=";
   };
 
   propagatedBuildInputs = [
+    blinker
+    email_validator
     flask
     flask_login
     flask_principal
     flask_wtf
-    email_validator
     itsdangerous
     passlib
-    blinker
-    setuptools
   ];
 
+  passthru.extras-require = {
+    babel = [
+      Babel
+      flask-babel
+    ];
+    common = [
+      bcrypt
+      bleach
+      flask_mail
+    ];
+    fsqla = [
+      flask_sqlalchemy
+      sqlalchemy
+      sqlalchemy-utils
+    ];
+    mfa = [
+      cryptography
+      phonenumbers
+      pyqrcode
+    ];
+  };
+
   checkInputs = [
-    pytestCheckHook
-    flask_mail
-    sqlalchemy
-    flask_sqlalchemy
     flask-mongoengine
+    mongoengine
+    mongomock
     peewee
     pony
+    pytestCheckHook
     zxcvbn
-    mongoengine
-    cryptography
-    pyqrcode
-    phonenumbers
-    bleach
-    mongomock
-  ];
+  ]
+  ++ passthru.extras-require.babel
+  ++ passthru.extras-require.common
+  ++ passthru.extras-require.fsqla
+  ++ passthru.extras-require.mfa;
+
 
   pythonImportsCheck = [ "flask_security" ];
 
diff --git a/pkgs/development/python-modules/flask-socketio/default.nix b/pkgs/development/python-modules/flask-socketio/default.nix
index 496676600fc9d..a429e81ce0fb4 100644
--- a/pkgs/development/python-modules/flask-socketio/default.nix
+++ b/pkgs/development/python-modules/flask-socketio/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "Flask-SocketIO";
-  version = "5.0.1";
+  version = "5.1.1";
 
   src = fetchFromGitHub {
     owner = "miguelgrinberg";
     repo = "Flask-SocketIO";
     rev = "v${version}";
-    sha256 = "01zf6cy95pgc4flgn0740z2my90l7rxwliahp6rb2xbp7rh32cng";
+    sha256 = "sha256-PnNJEtcWaisOlt6OmYUl97TlZb9cK2ORvtEcmGPxSB0=";
   };
 
   propagatedBuildInputs = [
@@ -28,6 +28,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pytestFlagsArray = [
+    "test_socketio.py"
+  ];
+
   pythonImportsCheck = [ "flask_socketio" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/flask-talisman/default.nix b/pkgs/development/python-modules/flask-talisman/default.nix
index b57d588247056..82f3e09b47944 100644
--- a/pkgs/development/python-modules/flask-talisman/default.nix
+++ b/pkgs/development/python-modules/flask-talisman/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "flask-talisman";
-  version = "0.8.1";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "11gjgqkpj2yqydb0pfhjyx56iy4l9szgz33vg5d7bw8vqp02wl2x";
+    sha256 = "sha256-IF0958Xs+tZnyEEj9fvlgLH2jNmhsFjXNTzANI4Vsb8=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/flask/default.nix b/pkgs/development/python-modules/flask/default.nix
index 6c05367b3d477..997a28de1e9c0 100644
--- a/pkgs/development/python-modules/flask/default.nix
+++ b/pkgs/development/python-modules/flask/default.nix
@@ -3,21 +3,22 @@
 , fetchPypi
 , asgiref
 , click
+, importlib-metadata
 , itsdangerous
 , jinja2
 , python-dotenv
 , werkzeug
-, setuptools
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
-  version = "2.0.2";
+  version = "2.1.1";
   pname = "Flask";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7b2fb8e934ddd50731893bdcdb00fc8c0315916f9fcd50d22c7cc1a95ab634e2";
+    sha256 = "sha256-qMm9PlWOyZZG0Xepc5xB3x3tBilIC0yNKXVBLzyVGcg=";
   };
 
   propagatedBuildInputs = [
@@ -27,11 +28,7 @@ buildPythonPackage rec {
     itsdangerous
     jinja2
     werkzeug
-
-    # required for CLI subcommand autodiscovery
-    # see: https://github.com/pallets/flask/blob/fdac8a5404e3e3a316568107a293f134707c75bb/src/flask/cli.py#L498
-    setuptools
-  ];
+  ] ++ lib.optional (pythonOlder "3.10") importlib-metadata;
 
   checkInputs = [
     pytestCheckHook
@@ -48,5 +45,6 @@ buildPythonPackage rec {
       Python web application frameworks.
     '';
     license = licenses.bsd3;
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/flatbuffers/default.nix b/pkgs/development/python-modules/flatbuffers/default.nix
index f697f7b8ae099..3575f1c361372 100644
--- a/pkgs/development/python-modules/flatbuffers/default.nix
+++ b/pkgs/development/python-modules/flatbuffers/default.nix
@@ -17,5 +17,6 @@ buildPythonPackage rec {
   meta = flatbuffers.meta // {
     description = "Python runtime library for use with the Flatbuffers serialization format";
     maintainers = with lib.maintainers; [ wulfsta ];
+    mainProgram = "flatc";
   };
 }
diff --git a/pkgs/development/python-modules/flax/default.nix b/pkgs/development/python-modules/flax/default.nix
index 1f1622dc1aead..1cd68790479f2 100644
--- a/pkgs/development/python-modules/flax/default.nix
+++ b/pkgs/development/python-modules/flax/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "flax";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0rvdaxyf68qmm5d77gbizpcibyz2ic2pb2x7rgf7p8qwijyc39ws";
+    sha256 = "0j5ngdndm9nm49gcda7m36qzwk5lcbi4jnij9fi96vld54ip6f6v";
   };
 
   buildInputs = [ jaxlib ];
@@ -42,7 +42,11 @@ buildPythonPackage rec {
     pytestCheckHook
     tensorflow
   ];
-  pytestFlagsArray = [ "-n $NIX_BUILD_CORES" ];
+
+  pytestFlagsArray = [
+    "-W ignore::FutureWarning"
+    "-W ignore::DeprecationWarning"
+  ];
 
   disabledTestPaths = [
     # Docs test, needs extra deps + we're not interested in it.
diff --git a/pkgs/development/python-modules/flickrapi/default.nix b/pkgs/development/python-modules/flickrapi/default.nix
index d7d20f19ea7be..8ad1071cd241a 100644
--- a/pkgs/development/python-modules/flickrapi/default.nix
+++ b/pkgs/development/python-modules/flickrapi/default.nix
@@ -1,35 +1,66 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , requests
 , requests-toolbelt
-, requests_oauthlib
-, pytest
-, pytest-runner
-, pytest-cov
+, requests-oauthlib
+, pytestCheckHook
 , responses
+, pythonOlder
 }:
 
 buildPythonPackage rec {
-  pname   = "flickrapi";
-  version = "2.4.0";
+  pname = "flickrapi";
+  version = "2.4";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "03g2z21k6nhxgwysjrgnxj9m1yg25mnnkr10gpyfhfkd9w77pcpz";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "sybrenstuvel";
+    repo = pname;
+    rev = "version-${version}";
+    hash = "sha256-vRZrlXKI0UDdmDevh3XUngH4X8G3VlOCSP0z/rxhIgw=";
   };
 
-  propagatedBuildInputs = [ requests requests-toolbelt requests_oauthlib ];
+  propagatedBuildInputs = [
+    requests
+    requests-toolbelt
+    requests-oauthlib
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    responses
+  ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d);
+  '';
+
+  disabledTests = [
+    # Tests require network access
+    "test_default_format"
+    "test_etree_default_format"
+    "test_etree_format_error"
+    "test_etree_format_happy"
+    "test_explicit_format"
+    "test_json_callback_format"
+    "test_json_format"
+    "test_parsed_json_format"
+    "test_walk"
+    "test_xmlnode_format"
+    "test_xmlnode_format_error"
+  ];
 
-  checkInputs = [ pytest pytest-runner pytest-cov responses ];
-  doCheck = false; # Otherwise:
-  # ========================= no tests ran in 0.01 seconds =========================
-  # builder for '/nix/store/c8a58v6aa18zci08q2l53s12ywn8jqhq-python3.6-flickrapi-2.4.0.drv' failed with exit code 5
+  pythonImportsCheck = [
+    "flickrapi"
+  ];
 
-  meta = {
+  meta = with lib; {
     description = "A Python interface to the Flickr API";
-    homepage    = "https://stuvel.eu/flickrapi";
-    license     = lib.licenses.psfl;
-    maintainers = with lib.maintainers; [ obadz ];
+    homepage = "https://stuvel.eu/flickrapi";
+    license = licenses.psfl;
+    maintainers = with maintainers; [ obadz ];
   };
 }
diff --git a/pkgs/development/python-modules/flit-core/default.nix b/pkgs/development/python-modules/flit-core/default.nix
index 35bba06f1f36e..d0b83d30ea270 100644
--- a/pkgs/development/python-modules/flit-core/default.nix
+++ b/pkgs/development/python-modules/flit-core/default.nix
@@ -6,7 +6,7 @@
 
 buildPythonPackage rec {
   pname = "flit-core";
-  version = "3.6.0";
+  inherit (flit) version;
   format = "pyproject";
 
   outputs = [
@@ -35,7 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Distribution-building parts of Flit. See flit package for more information";
-    homepage = "https://github.com/takluyver/flit";
+    homepage = "https://github.com/pypa/flit";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fridh SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/flit/default.nix b/pkgs/development/python-modules/flit/default.nix
index 830ed2702b898..598905d97ffaf 100644
--- a/pkgs/development/python-modules/flit/default.nix
+++ b/pkgs/development/python-modules/flit/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , docutils
 , requests
-, pytest
+, pytestCheckHook
 , testpath
 , responses
 , flit-core
@@ -18,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "flit";
-  version = "3.6.0";
+  version = "3.7.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "takluyver";
     repo = "flit";
     rev = version;
-    sha256 = "sha256-D3q/1g6njrrmizooGmzNd9g2nKs00dMGj9jrrv3Y6HQ=";
+    sha256 = "sha256-zKgaeK3fskz2TuHvIWlxBrdZIWfIJHhaqopZ3+V36wY=";
   };
 
   nativeBuildInputs = [
@@ -40,18 +40,17 @@ buildPythonPackage rec {
     tomli-w
   ];
 
-  checkInputs = [ pytest testpath responses ];
+  checkInputs = [ pytestCheckHook testpath responses ];
 
-  # Disable test that needs some ini file.
-  # Disable test that wants hg
-  checkPhase = ''
-    HOME=$(mktemp -d) pytest -k "not test_invalid_classifier and not test_build_sdist"
-  '';
+  disabledTests = [
+    # needs some ini file.
+    "test_invalid_classifier"
+  ];
 
   meta = with lib; {
     description = "A simple packaging tool for simple packages";
-    homepage = "https://github.com/takluyver/flit";
+    homepage = "https://github.com/pypa/flit";
     license = licenses.bsd3;
-    maintainers = [ maintainers.fridh ];
+    maintainers = with maintainers; [ fridh SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/flux-led/default.nix b/pkgs/development/python-modules/flux-led/default.nix
index f07efbee7f300..9e1c881805e8c 100644
--- a/pkgs/development/python-modules/flux-led/default.nix
+++ b/pkgs/development/python-modules/flux-led/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "flux-led";
-  version = "0.28.27";
+  version = "0.28.28";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "Danielhiversen";
     repo = "flux_led";
     rev = version;
-    sha256 = "sha256-Z1NgQo4BrfdPAwoELzyjZphmuvPK/c09j/BvDOWaD9I=";
+    sha256 = "sha256-FtZHZ48XGo+0aP4ARSfzI9xzFVptYhG6CDVGTT4oDBQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/fn/default.nix b/pkgs/development/python-modules/fn/default.nix
index f64d1a3d122d7..0acdf24d9542f 100644
--- a/pkgs/development/python-modules/fn/default.nix
+++ b/pkgs/development/python-modules/fn/default.nix
@@ -1,20 +1,34 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchpatch
+, fetchPypi
+}:
 
 buildPythonPackage rec {
   pname = "fn";
   version = "0.4.3";
 
-  meta = {
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1nmsjmn8jb4gp22ksx0j0hhdf4y0zm8rjykyy2i6flzimg6q1kgq";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/kachayev/fn.py/commit/a54fc0bd8aeae277de2db726131d249ce607c0c2.patch";
+      hash = "sha256-I0ZISOgVibsc1k7gwSfeW6qV9PspQqdaHlRLr/IusQ8=";
+      excludes = [
+        "fn/monad.py"
+      ];
+    })
+  ];
+
+  meta = with lib; {
     description = ''
       Functional programming in Python: implementation of missing
       features to enjoy FP
     '';
     homepage = "https://github.com/kachayev/fn.py";
-    license = lib.licenses.asl20;
-  };
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1nmsjmn8jb4gp22ksx0j0hhdf4y0zm8rjykyy2i6flzimg6q1kgq";
+    license = licenses.asl20;
   };
 }
diff --git a/pkgs/development/python-modules/fontparts/default.nix b/pkgs/development/python-modules/fontparts/default.nix
index 7830cb1171285..16d594eab04f6 100644
--- a/pkgs/development/python-modules/fontparts/default.nix
+++ b/pkgs/development/python-modules/fontparts/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, python
+{ lib, buildPythonPackage, fetchPypi, python, pythonOlder
 , fonttools, lxml, fs, unicodedata2
 , defcon, fontpens, fontmath, booleanoperations
 , pytest, setuptools-scm
@@ -6,11 +6,13 @@
 
 buildPythonPackage rec {
   pname = "fontParts";
-  version = "0.10.3";
+  version = "0.10.4";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-aHtjLHdc2/s3ppF8fz8qFAqxwEKMZJJAFNlBaZ7FAb4=";
+    sha256 = "1ic453q86s5hsw8mxnclk1vr4qp69fd67gywhv23zqwz9a7kb7lh";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/fonttools/default.nix b/pkgs/development/python-modules/fonttools/default.nix
index 50f5e87a29f49..a70dfef00541b 100644
--- a/pkgs/development/python-modules/fonttools/default.nix
+++ b/pkgs/development/python-modules/fonttools/default.nix
@@ -17,16 +17,15 @@
 
 buildPythonPackage rec {
   pname = "fonttools";
-  version = "4.29.0";
+  version = "4.30.0";
 
-  # Bump to 3.7 when https://github.com/fonttools/fonttools/pull/2417 is merged
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner  = pname;
     repo   = pname;
     rev    = version;
-    sha256 = "LnkpTEpZbbRAyqGPJXdfpHjh4t7n6LkjZGLhirVNl7E=";
+    sha256 = "1y9f071bdl66rsx42j16j5v53h85xra5qlg860rz3m054s2rmin9";
   };
 
   # all dependencies are optional, but
diff --git a/pkgs/development/python-modules/freezegun/default.nix b/pkgs/development/python-modules/freezegun/default.nix
index 2ffefa1a4e095..171d2b0556aba 100644
--- a/pkgs/development/python-modules/freezegun/default.nix
+++ b/pkgs/development/python-modules/freezegun/default.nix
@@ -1,21 +1,23 @@
 { lib
 , buildPythonPackage
-, pythonOlder
-, pythonAtLeast
 , fetchpatch
 , fetchPypi
-, python-dateutil
 , pytestCheckHook
+, python-dateutil
+, pythonAtLeast
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "freezegun";
-  version = "1.1.0";
-  disabled = pythonOlder "3.5";
+  version = "1.2.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "177f9dd59861d871e27a484c3332f35a6e3f5d14626f2bf91be37891f18927f3";
+    hash = "sha256-tMZO+ydea8aNxudxsX/+D/D5C4GipRiQQ1ULZRmSa6Q=";
   };
 
   patches = lib.optionals (pythonAtLeast "3.10") [
@@ -26,13 +28,22 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [ python-dateutil ];
-  checkInputs = [ pytestCheckHook ];
+  propagatedBuildInputs = [
+    python-dateutil
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "freezegun"
+  ];
 
   meta = with lib; {
-    description = "FreezeGun: Let your Python tests travel through time";
+    description = "Library that allows your Python tests to travel through time";
     homepage = "https://github.com/spulec/freezegun";
     license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
   };
-
 }
diff --git a/pkgs/development/python-modules/fs/default.nix b/pkgs/development/python-modules/fs/default.nix
index 0ab3778f55cf4..6915ba8d050c9 100644
--- a/pkgs/development/python-modules/fs/default.nix
+++ b/pkgs/development/python-modules/fs/default.nix
@@ -20,11 +20,11 @@
 
 buildPythonPackage rec {
   pname = "fs";
-  version = "2.4.14";
+  version = "2.4.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9555dc2bc58c58cac03478ac7e9f622d29fe2d20a4384c24c90ab50de2c7b36c";
+    sha256 = "sha256-sJ0CwxH0rdHm4rdXJMRQ6vz+7MkXV5IkyorSHazQoYI=";
   };
 
   buildInputs = [ glibcLocales ];
diff --git a/pkgs/development/python-modules/ftfy/default.nix b/pkgs/development/python-modules/ftfy/default.nix
index 5ea93ec179ecb..d214cb4f0a437 100644
--- a/pkgs/development/python-modules/ftfy/default.nix
+++ b/pkgs/development/python-modules/ftfy/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "ftfy";
-  version = "6.0.3";
+  version = "6.1.1";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ba71121a9c8d7790d3e833c6c1021143f3e5c4118293ec3afb5d43ed9ca8e72b";
+    sha256 = "sha256-v8IBn4T82FFBkVIyCmN1YEoPFFnCgbWxmbLNDS5yf48=";
   };
 
   propagatedBuildInputs = [
@@ -29,6 +29,12 @@ buildPythonPackage rec {
     export PATH=$out/bin:$PATH
   '';
 
+  disabledTestPaths = [
+    # Calls poetry and fails to match output exactly
+    "tests/test_cli.py"
+  ];
+
+
   meta = with lib; {
     description = "Given Unicode text, make its representation consistent and possibly less broken";
     homepage = "https://github.com/LuminosoInsight/python-ftfy";
diff --git a/pkgs/development/python-modules/funcparserlib/default.nix b/pkgs/development/python-modules/funcparserlib/default.nix
index 3ace04b108d44..ba535146cf25b 100644
--- a/pkgs/development/python-modules/funcparserlib/default.nix
+++ b/pkgs/development/python-modules/funcparserlib/default.nix
@@ -6,6 +6,7 @@
 , python
 , pytestCheckHook
 , pythonOlder
+, six
 }:
 
 buildPythonPackage rec {
@@ -28,6 +29,7 @@ buildPythonPackage rec {
 
   checkInputs = [
     pytestCheckHook
+    six
   ];
 
   patches = [
diff --git a/pkgs/development/python-modules/furo/default.nix b/pkgs/development/python-modules/furo/default.nix
index 615bf3ebe9c02..60fbc917f7d95 100644
--- a/pkgs/development/python-modules/furo/default.nix
+++ b/pkgs/development/python-modules/furo/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "furo";
-  version = "2022.3.4";
+  version = "2022.4.7";
   format = "wheel";
   disable = pythonOlder "3.6";
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     inherit pname version format;
     dist = "py3";
     python = "py3";
-    sha256 = "sha256-bHGCk+v4d1XwufFIseaXyeOqvXr5VWRNS8ruXOddt4E=";
+    sha256 = "sha256-fz49L7l3SDWQ+Oyyws1RG9gmYbecGO+yTelVi8nN8tc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/fuse-python/default.nix b/pkgs/development/python-modules/fuse-python/default.nix
index f1bf6e39a069b..46cf6ec53459b 100644
--- a/pkgs/development/python-modules/fuse-python/default.nix
+++ b/pkgs/development/python-modules/fuse-python/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "fuse-python";
-  version = "1.0.4";
+  version = "1.0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b9a69c38b3909ffd35d77cb1a73ebfdc3a103a6d4cdd20c86c70ed1141771580";
+    sha256 = "sha256-dOX/szaCu6mlrypaBI9Ht+e0ZOv4QpG/WiWL+60Do6o=";
   };
 
   buildInputs = [ fuse ];
diff --git a/pkgs/development/python-modules/gattlib/default.nix b/pkgs/development/python-modules/gattlib/default.nix
new file mode 100644
index 0000000000000..c7450d6b6b5b8
--- /dev/null
+++ b/pkgs/development/python-modules/gattlib/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, substituteAll
+
+# build
+, pkg-config
+, glibc
+, python
+
+# runtime
+, bluez
+, boost
+, glib
+
+}:
+
+let
+  pname = "gattlib";
+  version = "unstable-2021-06-16";
+in
+buildPythonPackage {
+  inherit pname version;
+  format = "setuptools";
+
+
+  src = fetchFromGitHub {
+    owner = "oscaracena";
+    repo = "pygattlib";
+    rev = "7bdb229124fe7d9f4a2cc090277b0fdef82e2a56";
+    hash = "sha256-PS5DIH1JuH2HweyebLLM+UNFGY/XsjKIrsD9x7g7yMI=";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./setup.patch;
+      boost_version = let
+        pythonVersion = with lib.versions; "${major python.version}${minor python.version}";
+      in
+        "boost_python${pythonVersion}";
+    })
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+    glibc
+  ];
+
+  buildInputs = [
+    bluez
+    boost
+    glib
+  ];
+
+  # has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "gattlib"
+  ];
+
+  meta = with lib; {
+    description = "Python library to use the GATT Protocol for Bluetooth LE devices";
+    homepage = "https://github.com/oscaracena/pygattlib";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/gattlib/setup.patch b/pkgs/development/python-modules/gattlib/setup.patch
new file mode 100644
index 0000000000000..32c3b1be496d1
--- /dev/null
+++ b/pkgs/development/python-modules/gattlib/setup.patch
@@ -0,0 +1,18 @@
+diff --git a/setup.py b/setup.py
+index 0825241..389a59e 100755
+--- a/setup.py
++++ b/setup.py
+@@ -11,12 +11,7 @@ extension_modules = []
+ 
+ 
+ def get_boost_version(out=None):
+-    if out is None:
+-        out = subprocess.check_output(
+-            r"ldconfig -p | grep -E 'libboost_python.*\.so '", shell=True)
+-
+-    ver = os.path.splitext(out.split()[0][3:])[0].decode()
+-    return ver
++    return "@boost_version@"
+ 
+ def tests():
+     # case: python3-py3x.so
diff --git a/pkgs/development/python-modules/gb-io/default.nix b/pkgs/development/python-modules/gb-io/default.nix
new file mode 100644
index 0000000000000..e61248cecf93d
--- /dev/null
+++ b/pkgs/development/python-modules/gb-io/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, rustPlatform
+, setuptools-rust
+}:
+
+buildPythonPackage rec {
+  pname = "gb-io";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "althonos";
+    repo = "gb-io.py";
+    rev = "v${version}";
+    sha256 = "05fpz11rqqjrb8lc8id6ssv7sni9i1h7x1ra5v5flw9ghpf29ncm";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src sourceRoot;
+    name = "${pname}-${version}";
+    sha256 = "1qh31jysg475f2qc70b3bczmzywmg9987kn2vsmk88h8sx4nnwc5";
+  };
+
+  sourceRoot = "source";
+
+  nativeBuildInputs = [ setuptools-rust ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
+
+  checkPhase = ''
+    python -m unittest discover
+  '';
+
+  pythonImportsCheck = [ "gb_io" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/althonos/gb-io.py";
+    description = "A Python interface to gb-io, a fast GenBank parser written in Rust";
+    license = licenses.mit;
+    maintainers = with lib.maintainers; [ dlesl ];
+  };
+}
diff --git a/pkgs/development/python-modules/genshi/default.nix b/pkgs/development/python-modules/genshi/default.nix
index c476960bbf836..be6abbd836443 100644
--- a/pkgs/development/python-modules/genshi/default.nix
+++ b/pkgs/development/python-modules/genshi/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "Genshi";
-  version = "0.7.5";
+  version = "0.7.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c12d6c2abf7df0ec661d9ff2e197522eae846e43dc58abd5a36443d05bc41135";
+    sha256 = "sha256-NKLOi4DoQ/Ygxbe35ZqqNip2zpdkpvEQMig+2UWMOlk=";
   };
 
   # FAIL: test_sanitize_remove_script_elem (genshi.filters.tests.html.HTMLSanitizerTestCase)
diff --git a/pkgs/development/python-modules/geoalchemy2/default.nix b/pkgs/development/python-modules/geoalchemy2/default.nix
index 15ba87400e33e..9260bb6e3c394 100644
--- a/pkgs/development/python-modules/geoalchemy2/default.nix
+++ b/pkgs/development/python-modules/geoalchemy2/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "GeoAlchemy2";
-  version = "0.10.2";
+  version = "0.11.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3db833746e11bc802b754751ec94eaab81009a9ad8fe647d461fe76d1a47a3fd";
+    sha256 = "sha256-+SoPrdtbdDhNu/PHAAQzNYzo4HoYD+HWwoQ+qgQ3/wg=";
   };
 
   nativeBuildInputs = [
@@ -34,6 +34,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pytestFlagsArray = [
+    # tests require live postgis database
+    "--deselect=tests/test_pickle.py::TestPickle::test_pickle_unpickle"
+    "--deselect=tests/gallery/test_specific_compilation.py::test_specific_compilation"
+  ];
+
   disabledTestPaths = [
     # tests require live postgis database
     "tests/gallery/test_decipher_raster.py"
@@ -41,6 +47,11 @@ buildPythonPackage rec {
     "tests/gallery/test_summarystatsagg.py"
     "tests/gallery/test_type_decorator.py"
     "tests/test_functional.py"
+    "tests/test_functional_postgresql.py"
+  ];
+
+  pythonImportsCheck = [
+    "geoalchemy2"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/geocachingapi/default.nix b/pkgs/development/python-modules/geocachingapi/default.nix
index 952457c5360d9..9d75727317887 100644
--- a/pkgs/development/python-modules/geocachingapi/default.nix
+++ b/pkgs/development/python-modules/geocachingapi/default.nix
@@ -3,19 +3,23 @@
 , backoff
 , buildPythonPackage
 , fetchFromGitHub
+, pythonOlder
 , setuptools-scm
 , yarl
 }:
 
 buildPythonPackage rec {
   pname = "geocachingapi";
-  version = "0.1.0";
+  version = "0.2.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "Sholofly";
     repo = "geocachingapi-python";
-    rev = version;
-    sha256 = "1vdknsxd7rvw6g5lwxlxj97l9ic8cch8rdki3aczs6xzw5adxhcs";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-36CkbwRDpMTprsZuPJ9khSrzqLb2Sz7iCvXtJ46uTL0=";
   };
 
   nativeBuildInputs = [
@@ -33,7 +37,9 @@ buildPythonPackage rec {
   # Tests require a token and network access
   doCheck = false;
 
-  pythonImportsCheck = [ "geocachingapi" ];
+  pythonImportsCheck = [
+    "geocachingapi"
+  ];
 
   meta = with lib; {
     description = "Python API to control the Geocaching API";
diff --git a/pkgs/development/python-modules/geopandas/default.nix b/pkgs/development/python-modules/geopandas/default.nix
index b62b2c67ef781..9bacb9fd818c6 100644
--- a/pkgs/development/python-modules/geopandas/default.nix
+++ b/pkgs/development/python-modules/geopandas/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, fetchpatch, pythonOlder
 , pandas, shapely, fiona, pyproj
 , pytestCheckHook, Rtree }:
 
@@ -14,6 +14,19 @@ buildPythonPackage rec {
     sha256 = "14azl3gppqn90k8h4hpjilsivj92k6p1jh7mdr6p4grbww1b7sdq";
   };
 
+  patches = [
+    # Fixes a test, will be included in the next release after 0.10.2
+    (fetchpatch {
+      url = "https://github.com/geopandas/geopandas/pull/2219/commits/ac67515c9df745b672cca1669adf05eaf5cb0f3b.patch";
+      sha256 = "sha256-XcaoFhD6Rq0nfEpMbOJiAWPbaPDrMwFwoyppayq8NHc=";
+    })
+    # 5 commits from post 0.10.2 that fix the test suite compatibility with pandas >=1.4
+    (fetchpatch {
+      url = "https://github.com/geopandas/geopandas/pull/2289.patch";
+      sha256 = "sha256-BcZVdaO/DdpZoVGUWaw9etFvvgwizAgrkaBISEOhV4A=";
+    })
+  ];
+
   propagatedBuildInputs = [
     pandas
     shapely
diff --git a/pkgs/development/python-modules/ghapi/default.nix b/pkgs/development/python-modules/ghapi/default.nix
index 428215eeee595..3c648b4a45600 100644
--- a/pkgs/development/python-modules/ghapi/default.nix
+++ b/pkgs/development/python-modules/ghapi/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "ghapi";
-  version = "0.1.19";
+  version = "0.1.20";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "fastai";
     repo = "ghapi";
     rev = version;
-    sha256 = "sha256-UV2cfotRad9jg/X3pOysKJyMi4/XKt24kf6F4aw4vcI=";
+    sha256 = "sha256-Pry+qCHCt+c+uwkLaoTVUY1KblESj6kcNtMfGwK1rfk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/gidgethub/default.nix b/pkgs/development/python-modules/gidgethub/default.nix
index 691af2eda8497..9d1fdc07d9017 100644
--- a/pkgs/development/python-modules/gidgethub/default.nix
+++ b/pkgs/development/python-modules/gidgethub/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "gidgethub";
-  version = "5.0.1";
+  version = "5.1.0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3efbd6998600254ec7a2869318bd3ffde38edc3a0d37be0c14bc46b45947b682";
+    sha256 = "sha256-kNGTb6mA2XBaljYvpOWaKFEks3NigsiPgmdIgSMKTiU=";
   };
 
   nativeBuildInputs = [ setuptools pytest-runner ];
diff --git a/pkgs/development/python-modules/gipc/default.nix b/pkgs/development/python-modules/gipc/default.nix
index 2bab62fbcb109..85d17ee3ab8a2 100644
--- a/pkgs/development/python-modules/gipc/default.nix
+++ b/pkgs/development/python-modules/gipc/default.nix
@@ -27,8 +27,6 @@ buildPythonPackage rec {
     '';
     homepage = "http://gehrcke.de/gipc";
     license = licenses.mit;
-    # gipc only has support for older versions of gevent
-    broken = versionOlder "1.6" gevent.version;
   };
 
 }
diff --git a/pkgs/development/python-modules/git-annex-adapter/default.nix b/pkgs/development/python-modules/git-annex-adapter/default.nix
index d41874cff3b52..bcc4148c19537 100644
--- a/pkgs/development/python-modules/git-annex-adapter/default.nix
+++ b/pkgs/development/python-modules/git-annex-adapter/default.nix
@@ -22,6 +22,10 @@ buildPythonPackage rec {
       url = "https://github.com/alpernebbi/git-annex-adapter/commit/6c210d828e8a57b12c716339ad1bf15c31cd4a55.patch";
       sha256 = "17kp7pnm9svq9av4q7hfic95xa1w3z02dnr8nmg14sjck2rlmqsi";
     })
+    (fetchpatch {
+      url = "https://github.com/alpernebbi/git-annex-adapter/commit/b78a8f445f1fb5cf34b28512fc61898ef166b5a1.patch";
+      hash = "sha256-BSVoOPWsgY1btvn68bco4yb90FAC7ay2kYZ+q9qDHHw=";
+    })
     (substituteAll {
       src = ./git-annex-path.patch;
       gitAnnex = "${git-annex}/bin/git-annex";
diff --git a/pkgs/development/python-modules/github3_py/default.nix b/pkgs/development/python-modules/github3_py/default.nix
index 1f5c983e14f38..67e1868fb8b1a 100644
--- a/pkgs/development/python-modules/github3_py/default.nix
+++ b/pkgs/development/python-modules/github3_py/default.nix
@@ -18,11 +18,11 @@
 
 buildPythonPackage rec {
   pname = "github3.py";
-  version = "3.0.0";
+  version = "3.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a9134cb9efd334b1644ad7c5ee3ff3ff488317c4549ffc0e8d82e4d63383a1a4";
+    sha256 = "sha256-Cbcr4Ul9NGsJaM3oNgoNavedwgbQFJpjzT7IbGXDd8w=";
   };
 
   checkInputs = [ betamax pytest betamax-matchers ]
diff --git a/pkgs/development/python-modules/glad/default.nix b/pkgs/development/python-modules/glad/default.nix
new file mode 100644
index 0000000000000..9d05720d84dfd
--- /dev/null
+++ b/pkgs/development/python-modules/glad/default.nix
@@ -0,0 +1,18 @@
+{ buildPythonPackage, fetchPypi, lib }:
+
+buildPythonPackage rec {
+  pname = "glad";
+  version = "0.1.36";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-P7ANv+x65t2+ugTiFUf2fzzPx5X8NFYkUM8/K7Gf28c=";
+  };
+
+  meta = with lib; {
+    description = "Multi-Language Vulkan/GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specs";
+    homepage = "https://github.com/Dav1dde/glad";
+    license = licenses.mit;
+    maintainers = with maintainers; [ superherointj ];
+  };
+}
diff --git a/pkgs/development/python-modules/glcontext/default.nix b/pkgs/development/python-modules/glcontext/default.nix
index fe25277e8cdac..a9306c1818645 100644
--- a/pkgs/development/python-modules/glcontext/default.nix
+++ b/pkgs/development/python-modules/glcontext/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "glcontext";
-  version = "2.3.5";
+  version = "2.3.6";
 
   src = fetchFromGitHub {
     owner = "moderngl";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-wvoIfwd0UBooqbJGshADjf96Xqx2k9G1nN3Dy6v3GIY=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-fE1fyoKQz1jmTBcAz2CbkLjRfgN5QedpMOLMU8keIZs=";
   };
 
   disabled = !isPy3k;
diff --git a/pkgs/development/python-modules/glean-parser/default.nix b/pkgs/development/python-modules/glean-parser/default.nix
index 704c556c00334..3cb8d83b7c8d5 100644
--- a/pkgs/development/python-modules/glean-parser/default.nix
+++ b/pkgs/development/python-modules/glean-parser/default.nix
@@ -26,6 +26,12 @@ buildPythonPackage rec {
     hash = "sha256-PjOMNUnrz0kDfYEXv5Ni/9RIHn4Yylle6NJOK1Rb3SY=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "pytest-runner" "" \
+      --replace "MarkupSafe==2.0.1" "MarkupSafe"
+  '';
+
   nativeBuildInputs = [
     setuptools-scm
   ];
@@ -44,11 +50,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "pytest-runner" ""
-  '';
-
   disabledTests = [
     # https://bugzilla.mozilla.org/show_bug.cgi?id=1741668
     "test_validate_ping"
diff --git a/pkgs/development/python-modules/glfw/default.nix b/pkgs/development/python-modules/glfw/default.nix
index e9587d0b765ca..accd8fcf5b915 100644
--- a/pkgs/development/python-modules/glfw/default.nix
+++ b/pkgs/development/python-modules/glfw/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "glfw";
-  version = "2.5.1";
+  version = "2.5.3";
 
   src = fetchFromGitHub {
     owner = "FlorianRhiem";
     repo = "pyGLFW";
-    rev = "v${version}";
-    sha256 = "sha256-XR6TqIrbCR93Qe9cRMgJ0aT/6ZZFj+6Mz+9GhiMD8lM=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-LaK/lYCUN7PDy8QsaGCnQPM1nvQNeBRTdEEkKtaMUHA=";
   };
 
   # Patch path to GLFW shared object
diff --git a/pkgs/development/python-modules/globus-sdk/default.nix b/pkgs/development/python-modules/globus-sdk/default.nix
index 6895db19abc12..88a2c49e0520b 100644
--- a/pkgs/development/python-modules/globus-sdk/default.nix
+++ b/pkgs/development/python-modules/globus-sdk/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "globus-sdk";
-  version = "3.6.0";
+  version = "3.7.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -21,8 +21,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "globus";
     repo = "globus-sdk-python";
-    rev = version;
-    hash = "sha256-SBLQ+uSZE8YkT+fQWIKGlfhocJXX5k9kSejAbjazjM8=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-Us3SCkrBPL3v9YCOQ7ceF3neCUZkJTrchYsvCRSX84Y=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-api-core/default.nix b/pkgs/development/python-modules/google-api-core/default.nix
index 468b2476de9b5..b5a9bfea212f5 100644
--- a/pkgs/development/python-modules/google-api-core/default.nix
+++ b/pkgs/development/python-modules/google-api-core/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "google-api-core";
-  version = "2.5.0";
+  version = "2.7.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-8zhjpnCWUXA7ixi2cJNRSDjHnysE0CqlASAwefJLgBg=";
+    sha256 = "sha256-sPpXflEvDI4GM4a5dHGLhhRYanmMWJTtNL7fJW2driQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-api-python-client/default.nix b/pkgs/development/python-modules/google-api-python-client/default.nix
index 772f45411d397..bce1897eac565 100644
--- a/pkgs/development/python-modules/google-api-python-client/default.nix
+++ b/pkgs/development/python-modules/google-api-python-client/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-api-python-client";
-  version = "2.35.0";
+  version = "2.42.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "038b12979ea86ef0e33962bd33f955c337bc28f0471522bd27a801d52bfb4ae2";
+    sha256 = "sha256-e/WLZltjXQattHeXqaT3NILnOeAu0DbNlg3HwYM2H2c=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-auth-oauthlib/default.nix b/pkgs/development/python-modules/google-auth-oauthlib/default.nix
index 6ee0cb0654010..449a07ea40cbd 100644
--- a/pkgs/development/python-modules/google-auth-oauthlib/default.nix
+++ b/pkgs/development/python-modules/google-auth-oauthlib/default.nix
@@ -6,12 +6,16 @@
 , mock
 , pytestCheckHook
 , google-auth
-, requests_oauthlib
+, requests-oauthlib
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-auth-oauthlib";
   version = "0.5.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
@@ -20,7 +24,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     google-auth
-    requests_oauthlib
+    requests-oauthlib
   ];
 
   checkInputs = [
@@ -29,7 +33,13 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = lib.optionals stdenv.isDarwin [ "test_run_local_server" ];
+  disabledTests = lib.optionals stdenv.isDarwin [
+    "test_run_local_server"
+  ];
+
+  pythonImportsCheck = [
+    "google_auth_oauthlib"
+  ];
 
   meta = with lib; {
     description = "Google Authentication Library: oauthlib integration";
diff --git a/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix b/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix
new file mode 100644
index 0000000000000..1b59bc8ddbf81
--- /dev/null
+++ b/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, google-auth
+, google-cloud-bigquery
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-bigquery-storage";
+  version = "2.13.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "7a25148f635a04ca9ff568d47e64be275d3a4a3c90772524879e8f88f270d92d";
+  };
+
+  propagatedBuildInputs = [
+    google-api-core
+  ];
+
+  checkInputs = [
+    google-auth
+    google-cloud-bigquery
+    pytestCheckHook
+  ];
+
+  # dependency loop with google-cloud-bigquery
+  doCheck = false;
+
+  preCheck = ''
+    rm -r google
+  '';
+
+  pythonImportsCheck = [
+    "google.cloud.bigquery_storage"
+    "google.cloud.bigquery_storage_v1"
+    "google.cloud.bigquery_storage_v1beta2"
+  ];
+
+  meta = with lib; {
+    description = "BigQuery Storage API API client library";
+    homepage = "https://github.com/googleapis/python-bigquery-storage";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/python-modules/google-cloud-bigquery/default.nix b/pkgs/development/python-modules/google-cloud-bigquery/default.nix
index 86ac3048e0ab9..3a5142a9ceffe 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery/default.nix
@@ -2,7 +2,9 @@
 , buildPythonPackage
 , fetchPypi
 , pytestCheckHook
+, db-dtypes
 , freezegun
+, google-cloud-bigquery-storage
 , google-cloud-core
 , google-cloud-datacatalog
 , google-cloud-storage
@@ -18,22 +20,24 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery";
-  version = "2.34.2";
+  version = "3.0.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-DriC3zCgD1oe89M5ojpnAjCACyqySUWVkafmharWcU8=";
+    sha256 = "sha256-UmW6BEV44Ucdg/hUGSQk/kyDnB+Hsyx4q3AXTQe89hI=";
   };
 
   propagatedBuildInputs = [
-    google-resumable-media
     google-cloud-core
+    google-cloud-bigquery-storage
+    google-resumable-media
     proto-plus
     pyarrow
   ];
 
   checkInputs = [
+    db-dtypes
     freezegun
     google-cloud-testutils
     ipython
@@ -54,8 +58,8 @@ buildPythonPackage rec {
     # requires credentials
     "test_bigquery_magic"
     "TestBigQuery"
+    "test_context_with_no_query_cache_from_context"
     "test_arrow_extension_types_same_for_storage_and_REST_APIs_894"
-    "test_query_retry_539"
     "test_list_rows_empty_table"
     "test_list_rows_page_size"
     "test_list_rows_scalars"
@@ -75,6 +79,13 @@ buildPythonPackage rec {
     "test__initiate_resumable_upload_with_retry"
   ];
 
+  disabledTestPaths = [
+    # requires credentials
+    "tests/system/test_query.py"
+    "tests/system/test_job_retry.py"
+    "tests/system/test_pandas.py"
+  ];
+
   pythonImportsCheck = [
     "google.cloud.bigquery"
     "google.cloud.bigquery_v2"
diff --git a/pkgs/development/python-modules/google-cloud-bigtable/default.nix b/pkgs/development/python-modules/google-cloud-bigtable/default.nix
index 9763cd4e0ba32..1fbe806db3c49 100644
--- a/pkgs/development/python-modules/google-cloud-bigtable/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigtable/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigtable";
-  version = "2.7.1";
+  version = "2.8.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-TUMgrv1JNt8h6DzCNtk0Fm4LQFC73/FNfpgTs9jhkYs=";
+    hash = "sha256-Gy/CS06uGQyQoPLjm8ChR6MkO6CYkpC/n5wM/VncDDs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-dataproc/default.nix b/pkgs/development/python-modules/google-cloud-dataproc/default.nix
index d8451ec097ccd..88d4e0bd6620c 100644
--- a/pkgs/development/python-modules/google-cloud-dataproc/default.nix
+++ b/pkgs/development/python-modules/google-cloud-dataproc/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-dataproc";
-  version = "4.0.1";
+  version = "4.0.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-IAnsz7UxMf3GqaPYPltis0WWPM+IIWwpK1iTSV7Kl5c=";
+    sha256 = "sha256-C2hAkWSb3h+lFC3pUIHlttme44Ugfae8opmFQbVWYTE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-error-reporting/default.nix b/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
index 9c5af01714c5f..7ae7babaebf54 100644
--- a/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
+++ b/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
@@ -8,22 +8,21 @@
 , mock
 , proto-plus
 , pytest-asyncio
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-error-reporting";
-  version = "1.5.1";
+  version = "1.5.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-7gFpvFxtYneABxW2mOwW1V2E7kobmj0yzV0pxaRhs8c=";
+    hash = "sha256-wjRUPBZwyGP+2528vZ/x4EqiZwqH+9ZvK5rx4ISklHE=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace 'google-cloud-logging>=1.14.0, <2.4' 'google-cloud-logging>=1.14.0'
-  '';
-
   propagatedBuildInputs = [
     google-cloud-logging
     libcst
diff --git a/pkgs/development/python-modules/google-cloud-pubsub/default.nix b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
index 5f9fdb2833d20..9ba7f9145e30f 100644
--- a/pkgs/development/python-modules/google-cloud-pubsub/default.nix
+++ b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
@@ -10,16 +10,19 @@
 , mock
 , proto-plus
 , pytest-asyncio
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-pubsub";
-  version = "2.11.0";
+  version = "2.12.0";
   format = "setuptools";
 
+  disabled = pythonOlder "3.6";
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-btPJ2X+I0f8C3YDB9bZwPv7HWnqsq9koWsT+CyK1AgM=";
+    hash = "sha256-5RoIpyVm/y2+6pN4mJPWHbVUwxH6yWI/vIuCVNJU2aw=";
   };
 
   propagatedBuildInputs = [
@@ -47,7 +50,9 @@ buildPythonPackage rec {
     "tests/unit/pubsub_v1"
   ];
 
-  pythonImportsCheck = [ "google.cloud.pubsub" ];
+  pythonImportsCheck = [
+    "google.cloud.pubsub"
+  ];
 
   meta = with lib; {
     description = "Google Cloud Pub/Sub API client library";
diff --git a/pkgs/development/python-modules/google-cloud-secret-manager/default.nix b/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
index f7c79521b6323..76c686c951ad0 100644
--- a/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
+++ b/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
@@ -8,15 +8,19 @@
 , proto-plus
 , pytestCheckHook
 , pytest-asyncio
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-secret-manager";
-  version = "2.9.2";
+  version = "2.10.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-W93SDJR8bUPQX9KzoZ6YvV9kU+Twd9huH09Smap481g=";
+    hash = "sha256-nQfdej2SveO0Qxam57ZRAyTQ0NnGoyb4nx2YFnqtAhI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-testutils/default.nix b/pkgs/development/python-modules/google-cloud-testutils/default.nix
index d4551b4954a5e..c5d02926f507f 100644
--- a/pkgs/development/python-modules/google-cloud-testutils/default.nix
+++ b/pkgs/development/python-modules/google-cloud-testutils/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, click, google-auth, six }:
+{ lib, buildPythonPackage, fetchPypi, click, google-auth, packaging, six }:
 
 buildPythonPackage rec {
   pname = "google-cloud-testutils";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "sha256-X85NRgGZt7+OpL4poOyS+UWec4fuABiTxEYyFpkUpqs=";
   };
 
-  propagatedBuildInputs = [ click google-auth six ];
+  propagatedBuildInputs = [ click google-auth packaging six ];
 
   # does not contain tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/google-nest-sdm/default.nix b/pkgs/development/python-modules/google-nest-sdm/default.nix
index b190d7e854e9a..c14598a8ebaee 100644
--- a/pkgs/development/python-modules/google-nest-sdm/default.nix
+++ b/pkgs/development/python-modules/google-nest-sdm/default.nix
@@ -11,7 +11,7 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
-, requests_oauthlib
+, requests-oauthlib
 }:
 
 buildPythonPackage rec {
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     google-auth
     google-auth-oauthlib
     google-cloud-pubsub
-    requests_oauthlib
+    requests-oauthlib
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/gradient/default.nix b/pkgs/development/python-modules/gradient/default.nix
index 8daa95c53b868..fa70e62a6fd74 100644
--- a/pkgs/development/python-modules/gradient/default.nix
+++ b/pkgs/development/python-modules/gradient/default.nix
@@ -23,12 +23,12 @@
 
 buildPythonPackage rec {
   pname = "gradient";
-  version = "1.10.0";
+  version = "1.11.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-wLdxU+PSREmTlX51scazmTC+U/mE95sSpfaUgHb8/Oc=";
+    hash = "sha256-IfScVoXFq6XPwUQdkcN87zOmuFY7kapbTkthxHqMAFU=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/graph_nets/default.nix b/pkgs/development/python-modules/graph_nets/default.nix
deleted file mode 100644
index 4f7b8c52e9ee1..0000000000000
--- a/pkgs/development/python-modules/graph_nets/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, tensorflow
-, absl-py
-, dm-sonnet
-, networkx
-, numpy
-, setuptools
-, six
-, future
-}:
-
-buildPythonPackage rec {
-  pname = "graph_nets";
-  version = "1.1.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "278a040674bef295aaf8bb5b0d1b3f207144dc68f0bcfe3f14912b9b85eb0927";
-  };
-
-  postPatch = ''
-    # https://github.com/deepmind/graph_nets/issues/63
-    sed -i 's/dm-sonnet==1.23/dm-sonnet/' setup.py
-  '';
-
-  propagatedBuildInputs = [
-    tensorflow
-    absl-py
-    dm-sonnet
-    networkx
-    numpy
-    setuptools
-    six
-    future
-  ];
-
-  meta = with lib; {
-    description = "Build Graph Nets in Tensorflow";
-    homepage = "https://github.com/deepmind/graph_nets";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ timokau ];
-  };
-}
diff --git a/pkgs/development/python-modules/graphene-django/default.nix b/pkgs/development/python-modules/graphene-django/default.nix
index f736fbe39d85b..404a6779505ba 100644
--- a/pkgs/development/python-modules/graphene-django/default.nix
+++ b/pkgs/development/python-modules/graphene-django/default.nix
@@ -19,17 +19,21 @@
 
 buildPythonPackage rec {
   pname = "graphene-django";
-  version = "unstable-2021-06-11";
+  version = "unstable-2022-03-03";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "graphql-python";
     repo = pname;
-    rev = "e7f7d8da07ba1020f9916153f17e97b0ec037712";
-    sha256 = "0b33q1im90ahp3gzy9wx5amfzy6q57ydjpy5rn988gh81hbyqaxv";
+    rev = "f6ec0689c18929344c79ae363d2e3d5628fa4a2d";
+    hash = "sha256-KTZ5jcoeHYXnlaF47t8jIi6+7NyMyA4hDPv+il3bt+U=";
   };
 
+  patches = [
+    ./graphene-3_2_0.patch
+  ];
+
   postPatch = ''
     substituteInPlace setup.py \
       --replace '"pytest-runner"' ""
diff --git a/pkgs/development/python-modules/graphene-django/graphene-3_2_0.patch b/pkgs/development/python-modules/graphene-django/graphene-3_2_0.patch
new file mode 100644
index 0000000000000..0e8fa63464a36
--- /dev/null
+++ b/pkgs/development/python-modules/graphene-django/graphene-3_2_0.patch
@@ -0,0 +1,150 @@
+diff --git a/graphene_django/filter/tests/test_fields.py b/graphene_django/filter/tests/test_fields.py
+index 7d440f4..0aec6e4 100644
+--- a/graphene_django/filter/tests/test_fields.py
++++ b/graphene_django/filter/tests/test_fields.py
+@@ -1005,7 +1005,7 @@ def test_integer_field_filter_type():
+ 
+     schema = Schema(query=Query)
+ 
+-    assert str(schema) == dedent(
++    assert str(schema).rstrip() + "\n" == dedent(
+         """\
+         type Query {
+           pets(offset: Int = null, before: String = null, after: String = null, first: Int = null, last: Int = null, age: Int = null): PetTypeConnection
+@@ -1074,7 +1074,7 @@ def test_other_filter_types():
+ 
+     schema = Schema(query=Query)
+ 
+-    assert str(schema) == dedent(
++    assert str(schema).rstrip() + "\n" == dedent(
+         """\
+         type Query {
+           pets(offset: Int = null, before: String = null, after: String = null, first: Int = null, last: Int = null, age: Int = null, age_Isnull: Boolean = null, age_Lt: Int = null): PetTypeConnection
+diff --git a/graphene_django/tests/test_command.py b/graphene_django/tests/test_command.py
+index 70116b8..a4ab4db 100644
+--- a/graphene_django/tests/test_command.py
++++ b/graphene_django/tests/test_command.py
+@@ -49,7 +49,7 @@ def test_generate_graphql_file_on_call_graphql_schema():
+     assert handle.write.called_once()
+ 
+     schema_output = handle.write.call_args[0][0]
+-    assert schema_output == dedent(
++    assert schema_output.rstrip() + "\n" == dedent(
+         """\
+         type Query {
+           hi: String
+diff --git a/graphene_django/tests/test_types.py b/graphene_django/tests/test_types.py
+index bde72c7..0b64440 100644
+--- a/graphene_django/tests/test_types.py
++++ b/graphene_django/tests/test_types.py
+@@ -247,7 +247,7 @@ def test_schema_representation():
+         }
+         """
+     )
+-    assert str(schema) == expected
++    assert str(schema).rstrip() + "\n" == expected
+ 
+ 
+ def with_local_registry(func):
+@@ -515,7 +515,7 @@ class TestDjangoObjectType:
+ 
+         schema = Schema(query=Query)
+ 
+-        assert str(schema) == dedent(
++        assert str(schema).rstrip() + "\n" == dedent(
+             """\
+             type Query {
+               pet: Pet
+@@ -541,7 +541,7 @@ class TestDjangoObjectType:
+ 
+         schema = Schema(query=Query)
+ 
+-        assert str(schema) == dedent(
++        assert str(schema).rstrip() + "\n" == dedent(
+             """\
+             type Query {
+               pet: Pet
+@@ -576,7 +576,7 @@ class TestDjangoObjectType:
+ 
+         schema = Schema(query=Query)
+ 
+-        assert str(schema) == dedent(
++        assert str(schema).rstrip() + "\n" == dedent(
+             """\
+             type Query {
+               pet: Pet
+@@ -603,7 +603,7 @@ class TestDjangoObjectType:
+ 
+         schema = Schema(query=Query)
+ 
+-        assert str(schema) == dedent(
++        assert str(schema).rstrip() + "\n" == dedent(
+             """\
+             type Query {
+               pet: PetModelKind
+@@ -642,7 +642,7 @@ class TestDjangoObjectType:
+ 
+         schema = Schema(query=Query)
+ 
+-        assert str(schema) == dedent(
++        assert str(schema).rstrip() + "\n" == dedent(
+             """\
+             type Query {
+               pet: PetModelKind
+diff --git a/graphene_django/tests/test_views.py b/graphene_django/tests/test_views.py
+index 945fa87..e2e8b46 100644
+--- a/graphene_django/tests/test_views.py
++++ b/graphene_django/tests/test_views.py
+@@ -109,12 +109,10 @@ def test_reports_validation_errors(client):
+             {
+                 "message": "Cannot query field 'unknownOne' on type 'QueryRoot'.",
+                 "locations": [{"line": 1, "column": 9}],
+-                "path": None,
+             },
+             {
+                 "message": "Cannot query field 'unknownTwo' on type 'QueryRoot'.",
+                 "locations": [{"line": 1, "column": 21}],
+-                "path": None,
+             },
+         ]
+     }
+@@ -135,8 +133,6 @@ def test_errors_when_missing_operation_name(client):
+         "errors": [
+             {
+                 "message": "Must provide operation name if query contains multiple operations.",
+-                "locations": None,
+-                "path": None,
+             }
+         ]
+     }
+@@ -476,8 +472,7 @@ def test_handles_syntax_errors_caught_by_graphql(client):
+         "errors": [
+             {
+                 "locations": [{"column": 1, "line": 1}],
+-                "message": "Syntax Error: Unexpected Name 'syntaxerror'.",
+-                "path": None,
++                "message": "Syntax Error: Unexpected Name 'syntaxerror'."
+             }
+         ]
+     }
+diff --git a/graphene_django/views.py b/graphene_django/views.py
+index c23b020..f533f70 100644
+--- a/graphene_django/views.py
++++ b/graphene_django/views.py
+@@ -11,7 +11,6 @@ from django.views.decorators.csrf import ensure_csrf_cookie
+ from django.views.generic import View
+ from graphql import OperationType, get_operation_ast, parse, validate
+ from graphql.error import GraphQLError
+-from graphql.error import format_error as format_graphql_error
+ from graphql.execution import ExecutionResult
+ 
+ from graphene import Schema
+@@ -387,7 +386,7 @@ class GraphQLView(View):
+     @staticmethod
+     def format_error(error):
+         if isinstance(error, GraphQLError):
+-            return format_graphql_error(error)
++            return error.formatted
+ 
+         return {"message": str(error)}
+ 
diff --git a/pkgs/development/python-modules/graphene/default.nix b/pkgs/development/python-modules/graphene/default.nix
index e975bff8fee48..7d44f4c6a2458 100644
--- a/pkgs/development/python-modules/graphene/default.nix
+++ b/pkgs/development/python-modules/graphene/default.nix
@@ -1,6 +1,7 @@
 { lib
 , aniso8601
 , buildPythonPackage
+, fetchpatch
 , fetchFromGitHub
 , graphql-core
 , graphql-relay
@@ -29,6 +30,20 @@ buildPythonPackage rec {
     sha256 = "0qgp3nl6afyz6y27bw175hyqppx75pp1vqwl7nvlpwvgwyyc2mnl";
   };
 
+  patches = [
+    # Fix graphql-core 3.2.0 support
+    (fetchpatch {
+      # https://github.com/graphql-python/graphene/pull/1378
+      url = "https://github.com/graphql-python/graphene/commit/989970f89341ebb949962d13dcabca8a6ccddad4.patch";
+      hash = "sha256-qRxWTqv5XQN7uFjL2uv9NjTvSLi76/MyFSa4jpkb8to=";
+    })
+    (fetchpatch {
+      # https://github.com/graphql-python/graphene/pull/1417
+      url = "https://github.com/graphql-python/graphene/commit/4e0e18d1682b7759bdf16499c573f675c7fb51cb.patch";
+      hash = "sha256-icdTGDabJouQ3hVpcMkkeabNwdoDxdVVAboTOWFbO94=";
+    })
+  ];
+
   propagatedBuildInputs = [
     aniso8601
     graphql-core
@@ -53,6 +68,8 @@ buildPythonPackage rec {
     # Expects different Exeception classes, but receives none of them
     # https://github.com/graphql-python/graphene/issues/1346
     "test_unexpected_error"
+    # https://github.com/graphql-python/graphene/pull/1417#issuecomment-1102492138
+    "test_example_end_to_end"
   ] ++ lib.optionals (pythonAtLeast "3.10") [
     "test_objecttype_as_container_extra_args"
     "test_objecttype_as_container_invalid_kwargs"
diff --git a/pkgs/development/python-modules/graphql-relay/default.nix b/pkgs/development/python-modules/graphql-relay/default.nix
index 08e27c1948734..435f1f5d8d0f0 100644
--- a/pkgs/development/python-modules/graphql-relay/default.nix
+++ b/pkgs/development/python-modules/graphql-relay/default.nix
@@ -1,22 +1,36 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+
+, pythonOlder
+
+# build
+, poetry-core
+
+# runtime
 , graphql-core
+, typing-extensions
+
+# tests
 , pytest-asyncio
+, pytest-describe
 , pytestCheckHook
-, pythonOlder
-, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "graphql-relay";
-  version = "3.1.0";
+  version = "3.2.0";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-cNWn7lmV6nwqmjflEidmOxpGTx9A6Y/d6VC+VBXf4LQ=";
+    hash = "sha256-H/HFEpg1bkgaC+AJzN/ySYMs5T8wVZwTOPIqDg0XJQw=";
   };
 
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
   propagatedBuildInputs = [
     graphql-core
   ] ++ lib.optionals (pythonOlder "3.8") [
@@ -25,6 +39,7 @@ buildPythonPackage rec {
 
   checkInputs = [
     pytest-asyncio
+    pytest-describe
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python-modules/graphql-subscription-manager/default.nix b/pkgs/development/python-modules/graphql-subscription-manager/default.nix
index 2ca6a134ee271..40b7b0be6879e 100644
--- a/pkgs/development/python-modules/graphql-subscription-manager/default.nix
+++ b/pkgs/development/python-modules/graphql-subscription-manager/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "graphql-subscription-manager";
-  version = "0.5.5";
+  version = "0.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,8 +16,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "Danielhiversen";
     repo = "PyGraphqlWebsocketManager";
-    rev = version;
-    hash = "sha256-7MqFsttMNnWmmWKj1zaOORBTDGt6Wm8GU7w56DfPl2c=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-5+KHPm/JuazObvuC2ip6hwQxvjJH/lDgukJMH49cuwg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/graphviz/default.nix b/pkgs/development/python-modules/graphviz/default.nix
index 881dec6b932f9..46a541fe50409 100644
--- a/pkgs/development/python-modules/graphviz/default.nix
+++ b/pkgs/development/python-modules/graphviz/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
@@ -58,6 +59,9 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
+  # Too many failures due to attempting to connect to com.apple.fonts daemon
+  doCheck = !stdenv.isDarwin;
+
   meta = with lib; {
     description = "Simple Python interface for Graphviz";
     homepage = "https://github.com/xflr6/graphviz";
diff --git a/pkgs/development/python-modules/graspologic/default.nix b/pkgs/development/python-modules/graspologic/default.nix
index 10e7190d1fde7..1a246461e5f7d 100644
--- a/pkgs/development/python-modules/graspologic/default.nix
+++ b/pkgs/development/python-modules/graspologic/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "graspologic";
-  version = "0.3.1";
+  version = "1.0.0";
 
   disabled = isPy27;
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "microsoft";
     repo = "graspologic";
     rev = "v${version}";
-    sha256 = "07dmfb1aplha01d22b41js7634dac4v28pv1l3bzssqhi4yyds7h";
+    sha256 = "sha256-mzJ3eFo77gnOh/Vs9u68yFDZW3ilXtcCCwKahKyRRmc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/greeclimate/default.nix b/pkgs/development/python-modules/greeclimate/default.nix
index 531ead0f19459..a7a2c5594e566 100644
--- a/pkgs/development/python-modules/greeclimate/default.nix
+++ b/pkgs/development/python-modules/greeclimate/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "greeclimate";
-  version = "1.1.0";
+  version = "1.1.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -18,8 +18,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "cmroche";
     repo = "greeclimate";
-    rev = "v${version}";
-    hash = "sha256-KVrm99aP2Nq15pDa8zaYIvTTcl6JEYU+7IkcMayHRQw=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-TFsuzw9twhoGrgOnTNSmYWqsUW4oqY+SGvrvPUT4tZY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/gremlinpython/default.nix b/pkgs/development/python-modules/gremlinpython/default.nix
index c9ab433d98162..3f7ca1011b529 100644
--- a/pkgs/development/python-modules/gremlinpython/default.nix
+++ b/pkgs/development/python-modules/gremlinpython/default.nix
@@ -15,25 +15,18 @@
 
 buildPythonPackage rec {
   pname = "gremlinpython";
-  version = "3.5.1";
+  version = "3.6.0";
 
   # pypi tarball doesn't include tests
   src = fetchFromGitHub {
     owner = "apache";
     repo = "tinkerpop";
     rev = version;
-    sha256 = "1vlhxq0f2hanhkv6f17dxgbwr7gnbnh1kkkq0lxcwkbm2l0rdrlr";
+    sha256 = "0gyf3a0zbh1grc1vr9zzpqm5yfcjvn0f1akw9l1arq36isqwvydn";
   };
   sourceRoot = "source/gremlin-python/src/main/python";
   postPatch = ''
     substituteInPlace setup.py \
-      --replace 'aenum>=1.4.5,<3.0.0' 'aenum' \
-      --replace 'aiohttp>=3.7.0,<=3.7.4' 'aiohttp' \
-      --replace 'PyHamcrest>=1.9.0,<2.0.0' 'PyHamcrest' \
-      --replace 'radish-bdd==0.8.6' 'radish-bdd' \
-      --replace 'mock>=3.0.5,<4.0.0' 'mock' \
-      --replace 'pytest>=4.6.4,<5.0.0' 'pytest' \
-      --replace 'importlib-metadata<3.0.0' 'importlib-metadata' \
       --replace 'pytest-runner==5.2' ' '
   '';
 
@@ -59,6 +52,7 @@ buildPythonPackage rec {
   # disable custom pytest report generation
   preCheck = ''
     substituteInPlace setup.cfg --replace 'addopts' '#addopts'
+    export TEST_TRANSACTIONS='false'
   '';
 
   # many tests expect a running tinkerpop server
diff --git a/pkgs/development/python-modules/grip/default.nix b/pkgs/development/python-modules/grip/default.nix
index dafa692493e3d..eab4b45547c16 100644
--- a/pkgs/development/python-modules/grip/default.nix
+++ b/pkgs/development/python-modules/grip/default.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchFromGitHub
-, fetchpatch
 # Python bits:
 , buildPythonPackage
 , pytest
@@ -16,23 +15,15 @@
 
 buildPythonPackage rec {
   pname = "grip";
-  version = "4.5.2";
+  version = "4.6.1";
 
   src = fetchFromGitHub {
     owner = "joeyespo";
     repo = "grip";
     rev = "v${version}";
-    sha256 = "0hphplnyi903jx7ghfxplg1qlj2kpcav1frr2js7p45pbh5ib9rm";
+    sha256 = "sha256-CHL2dy0H/i0pLo653F7aUHFvZHTeZA6jC/rwn1KrEW4=";
   };
 
-  patches = [
-    # Render "front matter", used in our RFC template and elsewhere
-    (fetchpatch {
-      url = "https://github.com/joeyespo/grip/pull/249.patch";
-      sha256 = "07za5iymfv647dfrvi6hhj54a96hgjyarys51zbi08c51shqyzpg";
-    })
-  ];
-
   checkInputs = [ pytest responses ];
 
   propagatedBuildInputs = [ docopt flask markdown path-and-address pygments requests tabulate ];
diff --git a/pkgs/development/python-modules/grpcio-status/default.nix b/pkgs/development/python-modules/grpcio-status/default.nix
index b20426c0288fa..173353fc9f2f3 100644
--- a/pkgs/development/python-modules/grpcio-status/default.nix
+++ b/pkgs/development/python-modules/grpcio-status/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "grpcio-status";
-  version = "1.43.0";
+  version = "1.45.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-IXWQBvNqf/v/GH1BkfQRjActiqn6aCOhGq14QqPGzNA=";
+    sha256 = "sha256-S6rY6Ow8RHiOA4wk49fccCWeBroJ9ApbgXhThWO6Plo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/grpcio-tools/default.nix b/pkgs/development/python-modules/grpcio-tools/default.nix
index 78d952f4cb973..b3794e8b9d434 100644
--- a/pkgs/development/python-modules/grpcio-tools/default.nix
+++ b/pkgs/development/python-modules/grpcio-tools/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "grpcio-tools";
-  version = "1.43.0";
+  version = "1.45.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f42f1d713096808b1b0472dd2a3749b712d13f0092dab9442d9c096446e860b2";
+    sha256 = "sha256-oBbPwh4NkbOwNtPU+WjR/eqGXfoDUkyx++yoRxn9RaI=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/python-modules/gspread/default.nix b/pkgs/development/python-modules/gspread/default.nix
index ec3b134f16b8b..32a27cf544108 100644
--- a/pkgs/development/python-modules/gspread/default.nix
+++ b/pkgs/development/python-modules/gspread/default.nix
@@ -7,12 +7,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "5.3.0";
+  version = "5.3.2";
   pname = "gspread";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-viIg4ZcjVw7ZjouOtqW24Er6DwjsHwi4niF8NUSIoEc=";
+    sha256 = "sha256-MZdm2Q2wUFYpP37grSs1UDoaQGg6dYl6KSI5jNIBYoM=";
   };
 
   propagatedBuildInputs = [ requests google-auth google-auth-oauthlib ];
diff --git a/pkgs/development/python-modules/gssapi/default.nix b/pkgs/development/python-modules/gssapi/default.nix
index d500c64532133..f703820a4f5c5 100644
--- a/pkgs/development/python-modules/gssapi/default.nix
+++ b/pkgs/development/python-modules/gssapi/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "gssapi";
-  version = "1.7.2";
+  version = "1.7.3";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "pythongssapi";
     repo = "python-${pname}";
     rev = "v${version}";
-    sha256 = "1xdcnm66b07m7chf04pp58p3khvy547hns1fw1xffd4n51kl42pp";
+    sha256 = "sha256-/1YOnG6sCP8G8J3K2/RycTC95rXW9M+U3Mjz4GCt13s=";
   };
 
   # It's used to locate headers
diff --git a/pkgs/development/python-modules/h11/default.nix b/pkgs/development/python-modules/h11/default.nix
index f3d37dacfa3c7..98dd8eef6cbdc 100644
--- a/pkgs/development/python-modules/h11/default.nix
+++ b/pkgs/development/python-modules/h11/default.nix
@@ -2,15 +2,17 @@
 , buildPythonPackage
 , fetchPypi
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "h11";
-  version = "0.12.0";
+  version = "0.13.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0hk0nll6qazsambp3kl8cxxsbl4gv5y9252qadyk0jky0sv2q8j7";
+    sha256 = "sha256-cIE8ETUIeiSKTTjMDhoBgf+rIYgUGpPq9WeUDDlX/wY=";
   };
 
   checkInputs = [ pytestCheckHook ];
@@ -22,5 +24,6 @@ buildPythonPackage rec {
     description = "Pure-Python, bring-your-own-I/O implementation of HTTP/1.1";
     homepage = "https://github.com/python-hyper/h11";
     license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/h3/default.nix b/pkgs/development/python-modules/h3/default.nix
index 6e5965053f4ab..e638997be79ec 100644
--- a/pkgs/development/python-modules/h3/default.nix
+++ b/pkgs/development/python-modules/h3/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "h3";
-  version = "3.7.3";
+  version = "3.7.4";
 
   # pypi version does not include tests
   src = fetchFromGitHub {
     owner = "uber";
     repo = "h3-py";
-    rev = "v${version}";
-    sha256 = "0wc1fz8v59r97wlayr4lnsgwzd4fxm991xbs9690d4vwdkapafll";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-/DtQD2M+5kBn1RxAOobVqtu32+1cxN8lZSuGH613Bwc=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/development/python-modules/ha-av/default.nix b/pkgs/development/python-modules/ha-av/default.nix
deleted file mode 100644
index 78735b67d44d9..0000000000000
--- a/pkgs/development/python-modules/ha-av/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, pkg-config
-, ffmpeg_4
-}:
-
-buildPythonPackage rec {
-  pname = "ha-av";
-  version = "8.0.4rc1";
-  format = "setuptools";
-
-  disabled = pythonOlder "3.5";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-txdi2/X6upqrACeHhHpEh4tGqgPpW/dyWda8y++7c3M=";
-  };
-
-  nativeBuildInputs = [
-    pkg-config
-  ];
-
-  buildInputs = [
-    ffmpeg_4
-  ];
-
-  pythonImportsCheck = [
-    "av"
-    "av._core"
-  ];
-
-  # tests fail to import av._core
-  doCheck = false;
-
-  meta = with lib; {
-    homepage = "https://pypi.org/project/ha-av/";
-    description = "Pythonic bindings for FFmpeg's libraries";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ hexa ];
-  };
-}
diff --git a/pkgs/development/python-modules/hachoir/default.nix b/pkgs/development/python-modules/hachoir/default.nix
index 2c46b14a27445..c7d4178e3bf9a 100644
--- a/pkgs/development/python-modules/hachoir/default.nix
+++ b/pkgs/development/python-modules/hachoir/default.nix
@@ -3,17 +3,21 @@
 , fetchFromGitHub
 , pytestCheckHook
 , urwid
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "hachoir";
-  version = "3.1.2";
+  version = "3.1.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "vstinner";
     repo = pname;
     rev = version;
-    sha256 = "06544qmmimvaznwcjs8wwfih1frdd7anwcw5z07cf69l8p146p0y";
+    hash = "sha256-HlxDwkU0GccO+IUzbtVpLbsAo+Mcacm4/WrXWCsmpBg=";
   };
 
   propagatedBuildInputs = [
@@ -24,7 +28,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "hachoir" ];
+  pythonImportsCheck = [
+    "hachoir"
+  ];
 
   meta = with lib; {
     description = "Python library to view and edit a binary stream";
diff --git a/pkgs/development/python-modules/hahomematic/default.nix b/pkgs/development/python-modules/hahomematic/default.nix
index b70c808197544..cf7acf0f484ec 100644
--- a/pkgs/development/python-modules/hahomematic/default.nix
+++ b/pkgs/development/python-modules/hahomematic/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "hahomematic";
-  version = "1.0.4";
+  version = "1.1.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
@@ -22,8 +22,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "danielperna84";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-YpsZKhuK3IzUZFNmBToBOuUacaDgbMC/N7pZDjuSzbE=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-wuoc+A+KoqH/OdZ7/Rj/RZjgRLMU1WrRFqlS3TzJL4I=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/hangups/default.nix b/pkgs/development/python-modules/hangups/default.nix
index 3b5e0a218b78a..18dd31f8af565 100644
--- a/pkgs/development/python-modules/hangups/default.nix
+++ b/pkgs/development/python-modules/hangups/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "hangups";
-  version = "0.4.17";
+  version = "0.4.18";
 
   disabled = pythonOlder "3.6";
 
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "tdryer";
     repo = "hangups";
     rev = "v${version}";
-    hash = "sha256-8kNWcRAip9LkmazDUVeDjGWhy/TWzT01c959LA5hb1Q=";
+    hash = "sha256-vq1OrOUPMQtezBFlisP2f/bvvYprDjhOuwUcT8rmIvw=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/hass-nabucasa/default.nix b/pkgs/development/python-modules/hass-nabucasa/default.nix
index e7732e1f6a426..edf19d0e190ff 100644
--- a/pkgs/development/python-modules/hass-nabucasa/default.nix
+++ b/pkgs/development/python-modules/hass-nabucasa/default.nix
@@ -28,7 +28,8 @@ buildPythonPackage rec {
     sed -i 's/"acme.*"/"acme"/' setup.py
     substituteInPlace setup.py \
       --replace "cryptography>=2.8,<4.0" "cryptography" \
-      --replace "snitun==" "snitun>="
+      --replace "snitun==" "snitun>=" \
+      --replace "pycognito==2022.01.0" "pycognito"
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/hatasmota/default.nix b/pkgs/development/python-modules/hatasmota/default.nix
index 6a0a3793d87b2..b710e5fb2e263 100644
--- a/pkgs/development/python-modules/hatasmota/default.nix
+++ b/pkgs/development/python-modules/hatasmota/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "hatasmota";
-  version = "0.3.1";
+  version = "0.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "emontnemery";
     repo = pname;
     rev = version;
-    sha256 = "sha256-/am6cRhAdiqMq0u7Ed4qhIA+Em2O0gIt7HfP19+2XHw=";
+    sha256 = "sha256-r9EBuaKxc7Vcdfk8zoDpIi2i6yIGc7soSWx+RjG+SZo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/hatchling/default.nix b/pkgs/development/python-modules/hatchling/default.nix
new file mode 100644
index 0000000000000..045bbafd6360e
--- /dev/null
+++ b/pkgs/development/python-modules/hatchling/default.nix
@@ -0,0 +1,79 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+
+# runtime
+, editables
+, importlib-metadata # < 3.8
+, packaging
+, pathspec
+, pluggy
+, tomli
+
+# tests
+, build
+, python
+, requests
+, toml
+, virtualenv
+}:
+
+let
+  pname = "hatchling";
+  version = "0.22.0";
+in
+buildPythonPackage {
+  inherit pname version;
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-BUJ24F4oON/9dWpnnDNM5nIOuh3yuwlvDnLA9uQAIXo=";
+  };
+
+  # listed in backend/src/hatchling/ouroboros.py
+  propagatedBuildInputs = [
+    editables
+    packaging
+    pathspec
+    pluggy
+    tomli
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ];
+
+  pythonImportsCheck = [
+    "hatchling"
+    "hatchling.build"
+  ];
+
+  # tries to fetch packages from the internet
+  doCheck = false;
+
+  # listed in /backend/tests/downstream/requirements.txt
+  checkInputs = [
+    build
+    packaging
+    requests
+    toml
+    virtualenv
+  ];
+
+  preCheck = ''
+    export HOME=$TMPDIR
+  '';
+
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} tests/downstream/integrate.py
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    description = "Modern, extensible Python build backend";
+    homepage = "https://ofek.dev/hatch/latest/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ofek ];
+  };
+}
diff --git a/pkgs/development/python-modules/hg-git/default.nix b/pkgs/development/python-modules/hg-git/default.nix
index eccdcdaed422a..6ccde29313b73 100644
--- a/pkgs/development/python-modules/hg-git/default.nix
+++ b/pkgs/development/python-modules/hg-git/default.nix
@@ -3,24 +3,34 @@
 , fetchPypi
 , dulwich
 , mercurial
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "hg-git";
-  version = "0.10.3";
+  version = "1.0.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "27e6d7686a1548d4632dcc977f2ff3ce2e42d80735339b1f3b389b7481260cc4";
+    hash = "sha256-ORGDOWLrnImca+qPtJZmyC8hGxJNCEC+tq2V4jpGIbY=";
   };
 
-  propagatedBuildInputs = [ dulwich mercurial ];
+  propagatedBuildInputs = [
+    dulwich
+    mercurial
+  ];
+
+  pythonImportsCheck = [
+    "hggit"
+  ];
 
   meta = with lib; {
     description = "Push and pull from a Git server using Mercurial";
     homepage = "https://hg-git.github.io/";
-    maintainers = with maintainers; [ koral ];
     license = licenses.gpl2Only;
+    maintainers = with maintainers; [ koral ];
   };
-
 }
diff --git a/pkgs/development/python-modules/hid/default.nix b/pkgs/development/python-modules/hid/default.nix
index ce6e1d58def34..5546b71fea0ee 100644
--- a/pkgs/development/python-modules/hid/default.nix
+++ b/pkgs/development/python-modules/hid/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "hid";
-  version = "1.0.4";
+  version = "1.0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-9hsDgvN6M0vIuoYEvIS5SHXuT1lPu6+CssOz6CeIP8E=";
+    sha256 = "sha256-HpVOf3q5t8nfx421lQRpLBfbO3EklJK5drFSW5fbsOg=";
   };
 
   propagatedBuildInputs = [ hidapi ];
diff --git a/pkgs/development/python-modules/hidapi/default.nix b/pkgs/development/python-modules/hidapi/default.nix
index cf54198b18b30..b77dcaaa9d375 100644
--- a/pkgs/development/python-modules/hidapi/default.nix
+++ b/pkgs/development/python-modules/hidapi/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "hidapi";
-  version = "0.11.0.post2";
+  version = "0.11.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "da815e0d1d4b2ef1ebbcc85034572105dca29627eb61881337aa39010f2ef8cb";
+    sha256 = "sha256-yYS37C/C6ph81EzwaUflVXJJjtLUPGSJC0q1iymvcrw=";
   };
 
   nativeBuildInputs = lib.optionals stdenv.isDarwin [ xcbuild ];
diff --git a/pkgs/development/python-modules/hkavr/default.nix b/pkgs/development/python-modules/hkavr/default.nix
new file mode 100644
index 0000000000000..851150ea1dd8f
--- /dev/null
+++ b/pkgs/development/python-modules/hkavr/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "hkavr";
+  version = "0.0.5";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-wa0yS0KPdrQUuxxViweESD6Itn2rFlTwwrPQ0COWIPc=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "hkavr"
+  ];
+
+  meta = with lib; {
+    description = "Library for interacting with Harman Kardon AVR controllers";
+    homepage = "https://github.com/Devqon/hkavr";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/hmmlearn/default.nix b/pkgs/development/python-modules/hmmlearn/default.nix
index 17f5126367bf4..8c699af975261 100644
--- a/pkgs/development/python-modules/hmmlearn/default.nix
+++ b/pkgs/development/python-modules/hmmlearn/default.nix
@@ -1,21 +1,22 @@
-{ lib, fetchurl, buildPythonPackage, numpy, scikit-learn, setuptools-scm, cython, pytest }:
+{ lib, fetchurl, buildPythonPackage
+, numpy, scikit-learn, pybind11, setuptools-scm, cython
+, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "hmmlearn";
-  version = "0.2.6";
+  version = "0.2.7";
 
   src = fetchurl {
     url = "mirror://pypi/h/hmmlearn/${pname}-${version}.tar.gz";
-    sha256 = "2a289cf28b31be59fa8ba5d3253d4a2a992401d45a8cdc221ae484fbf390c0d7";
+    sha256 = "sha256-a0snIPJ6912pNnq02Q3LAPONozFo322Rf57F3mZw9uE=";
   };
 
-  buildInputs = [ setuptools-scm cython ];
+  buildInputs = [ setuptools-scm cython pybind11 ];
   propagatedBuildInputs = [ numpy scikit-learn ];
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
-  checkPhase = ''
-    pytest --pyargs hmmlearn
-  '';
+  pythonImportsCheck = [ "hmmlearn" ];
+  pytestFlagsArray = [ "--pyargs" "hmmlearn" ];
 
   meta = with lib; {
     description = "Hidden Markov Models in Python with scikit-learn like API";
diff --git a/pkgs/development/python-modules/homeconnect/default.nix b/pkgs/development/python-modules/homeconnect/default.nix
index b6fca4201ad7f..b615274416abc 100644
--- a/pkgs/development/python-modules/homeconnect/default.nix
+++ b/pkgs/development/python-modules/homeconnect/default.nix
@@ -2,26 +2,33 @@
 , buildPythonPackage
 , fetchPypi
 , requests
-, requests_oauthlib
+, requests-oauthlib
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "homeconnect";
   version = "0.7.0";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-/h0dEVmP0R9tVt56mvu72Ksrvnuox1FA7BgrZMOhV6Q=";
+    hash = "sha256-/h0dEVmP0R9tVt56mvu72Ksrvnuox1FA7BgrZMOhV6Q=";
   };
 
   propagatedBuildInputs = [
     requests
-    requests_oauthlib
+    requests-oauthlib
   ];
 
   # Project has no tests
   doCheck = false;
-  pythonImportsCheck = [ "homeconnect" ];
+
+  pythonImportsCheck = [
+    "homeconnect"
+  ];
 
   meta = with lib; {
     description = "Python client for the BSH Home Connect REST API";
diff --git a/pkgs/development/python-modules/hpack/default.nix b/pkgs/development/python-modules/hpack/default.nix
index a5140a216cfd3..842c6d5f8bfcb 100644
--- a/pkgs/development/python-modules/hpack/default.nix
+++ b/pkgs/development/python-modules/hpack/default.nix
@@ -1,21 +1,34 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
+, pythonOlder
+, hypothesis
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "hpack";
   version = "4.0.0";
+  disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "fc41de0c63e687ebffde81187a948221294896f6bdc0ae2312708df339430095";
+  src = fetchFromGitHub {
+    owner = "python-hyper";
+    repo = "hpack";
+    rev = "v${version}";
+    sha256 = "sha256-2CehGy3K5fKbkB1J8+8x1D4XvnBn1Mbapx+p8rdXDYc=";
   };
 
+  checkInputs = [
+    hypothesis
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "hpack" ];
+
   meta = with lib; {
     description = "Pure-Python HPACK header compression";
-    homepage = "http://hyper.rtfd.org";
+    homepage = "https://github.com/python-hyper/hpack";
     license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
-
 }
diff --git a/pkgs/development/python-modules/html-sanitizer/default.nix b/pkgs/development/python-modules/html-sanitizer/default.nix
index 111d7e00d1b2c..09539b590cb38 100644
--- a/pkgs/development/python-modules/html-sanitizer/default.nix
+++ b/pkgs/development/python-modules/html-sanitizer/default.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     owner = "matthiask";
     repo = pname;
     rev = version;
-    sha256 = "sha256-1JSdi1PFM+N+UuEPfgWkOZw8S2PZ4ntadU0wnVJNnjw=";
+    hash = "sha256-1JSdi1PFM+N+UuEPfgWkOZw8S2PZ4ntadU0wnVJNnjw=";
   };
 
   propagatedBuildInputs = [
@@ -31,7 +31,9 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
+    # Tests are sensitive to output
     "test_billion_laughs"
+    "test_10_broken_html"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/httpbin/default.nix b/pkgs/development/python-modules/httpbin/default.nix
index 8359fcf0a096d..a5a77a82af29f 100644
--- a/pkgs/development/python-modules/httpbin/default.nix
+++ b/pkgs/development/python-modules/httpbin/default.nix
@@ -2,6 +2,7 @@
 , brotlipy
 , buildPythonPackage
 , decorator
+, fetchpatch
 , fetchPypi
 , flask
 , flask-limiter
@@ -22,6 +23,15 @@ buildPythonPackage rec {
     hash = "sha256-y7N3kMkVdfTxV1f0KtQdn3KesifV7b6J5OwXVIbbjfo=";
   };
 
+  patches = [
+    (fetchpatch {
+      # Replaces BaseResponse class with Response class for Werkezug 2.1.0 compatibility
+      # https://github.com/postmanlabs/httpbin/pull/674
+      url = "https://github.com/postmanlabs/httpbin/commit/5cc81ce87a3c447a127e4a1a707faf9f3b1c9b6b.patch";
+      hash = "sha256-SbEWjiqayMFYrbgAPZtSsXqSyCDUz3z127XgcKOcrkE=";
+    })
+  ];
+
   propagatedBuildInputs = [
     brotlipy
     flask
diff --git a/pkgs/development/python-modules/httpcore/default.nix b/pkgs/development/python-modules/httpcore/default.nix
index 79d979b10a97c..7f028c478fc5c 100644
--- a/pkgs/development/python-modules/httpcore/default.nix
+++ b/pkgs/development/python-modules/httpcore/default.nix
@@ -12,6 +12,7 @@
 , pytest-cov
 , pytest-httpbin
 , sniffio
+, socksio
 , trio
 , trustme
 , uvicorn
@@ -19,22 +20,28 @@
 
 buildPythonPackage rec {
   pname = "httpcore";
-  version = "0.14.4";
+  version = "0.14.7";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "19zsg8ijw0s1722ka67mjxx5z07lx9jq36z97l1fa6z1129wq240";
+    sha256 = "sha256-h+3MfP1p/ifN0mF/xxrOKPTjD4Q7WzRh94YO4DYSuXE=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "h11>=0.11,<0.13" "h11>=0.11,<0.14"
+  '';
+
   propagatedBuildInputs = [
     anyio
     certifi
     h11
     h2
     sniffio
+    socksio
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/httplib2/default.nix b/pkgs/development/python-modules/httplib2/default.nix
index cd2134418a753..7f331c8edad47 100644
--- a/pkgs/development/python-modules/httplib2/default.nix
+++ b/pkgs/development/python-modules/httplib2/default.nix
@@ -9,21 +9,20 @@
 , pytest-forked
 , pytest-randomly
 , pytest-timeout
-, pytest-xdist
 , pytestCheckHook
 , six
 }:
 
 buildPythonPackage rec {
   pname = "httplib2";
-  version = "0.20.3";
+  version = "0.20.4";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Q5KkhVqyHDoIeKjvvYoHRbZPY7LUXGDwgp4CSuyvQ1g=";
+    sha256 = "sha256-eLvxmG9PUX+2RB3M6oG442Wmh6c5GI/aKP/Z8Z5Ixq8=";
   };
 
   propagatedBuildInputs = [
@@ -36,7 +35,6 @@ buildPythonPackage rec {
     pytest-forked
     pytest-randomly
     pytest-timeout
-    pytest-xdist
     six
     pytestCheckHook
   ];
@@ -52,7 +50,13 @@ buildPythonPackage rec {
     # ValueError: Unable to load PEM file.
     # https://github.com/httplib2/httplib2/issues/192#issuecomment-993165140
     "test_client_cert_password_verified"
-  ] ++ lib.optionals (stdenv.isDarwin) [
+
+    # improper pytest marking
+    "test_head_301"
+    "test_303"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # fails with "ConnectionResetError: [Errno 54] Connection reset by peer"
+    "test_connection_close"
     # fails with HTTP 408 Request Timeout, instead of expected 200 OK
     "test_timeout_subsequent"
     "test_connection_close"
diff --git a/pkgs/development/python-modules/httptools/default.nix b/pkgs/development/python-modules/httptools/default.nix
index 0a5b510b0ad9c..963a9ff5ebfe2 100644
--- a/pkgs/development/python-modules/httptools/default.nix
+++ b/pkgs/development/python-modules/httptools/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "httptools";
-  version = "0.3.0";
+  version = "0.4.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3f9b4856d46ba1f0c850f4e84b264a9a8b4460acb20e865ec00978ad9fbaa4cf";
+    sha256 = "sha256-LJqTDDeLPRXWtpX7levP+BpzlbT5d1xPEKB2vrCywf8=";
   };
 
   # tests are not included in pypi tarball
diff --git a/pkgs/development/python-modules/httpx-ntlm/default.nix b/pkgs/development/python-modules/httpx-ntlm/default.nix
index 40ef250401bf5..a014872ad696c 100644
--- a/pkgs/development/python-modules/httpx-ntlm/default.nix
+++ b/pkgs/development/python-modules/httpx-ntlm/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "httpx_ntlm";
     inherit version;
-    sha256 = "sha256-pv/OxgcO0JWk2nCZp+bKlOdX7NqV6V5xZRDy5dd13qQ=";
+    hash = "sha256-pv/OxgcO0JWk2nCZp+bKlOdX7NqV6V5xZRDy5dd13qQ=";
   };
 
   propagatedBuildInputs = [
@@ -26,6 +26,12 @@ buildPythonPackage rec {
     pyspnego
   ];
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "pyspnego==0.3.*" "pyspnego>=0.3.*" \
+      --replace "cryptography==36.0.*" "cryptography>=36.0.*"
+  '';
+
   # https://github.com/ulodciv/httpx-ntlm/issues/5
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/httpx/default.nix b/pkgs/development/python-modules/httpx/default.nix
index d479cc1f13ced..dbf8d1745c0e5 100644
--- a/pkgs/development/python-modules/httpx/default.nix
+++ b/pkgs/development/python-modules/httpx/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "httpx";
-  version = "0.21.3";
+  version = "0.22.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "01069b0kj6vnb26xazlz06rj4yncy5nkq76pajvzx0pmpjkniiz9";
+    sha256 = "sha256-hQmQodGpVG23IZSsWV7rB1iB6QAudDao/8YshIgpmas=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/huggingface-hub/default.nix b/pkgs/development/python-modules/huggingface-hub/default.nix
index cf0b27c6c5b3a..3bbc8ad2669e9 100644
--- a/pkgs/development/python-modules/huggingface-hub/default.nix
+++ b/pkgs/development/python-modules/huggingface-hub/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "huggingface-hub";
-  version = "0.1.2";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "huggingface";
     repo = "huggingface_hub";
     rev = "v${version}";
-    sha256 = "1pmi76vinwwn0bcxy5hj8pxhzqxdbzp0y3hsd631yyys01s0n6xd";
+    sha256 = "sha256-rrkubNy60e/1VcGacYQang4yWxUzIBGySxZyq6G1arw=";
   };
 
   nativeBuildInputs = [ packaging ];
diff --git a/pkgs/development/python-modules/humanize/default.nix b/pkgs/development/python-modules/humanize/default.nix
index d0b2464608b94..fa13cdab0c23a 100644
--- a/pkgs/development/python-modules/humanize/default.nix
+++ b/pkgs/development/python-modules/humanize/default.nix
@@ -9,7 +9,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "3.13.1";
+  version = "4.0.0";
   pname = "humanize";
   format = "pyproject";
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "jmoiron";
     repo = pname;
     rev = version;
-    sha256 = "sha256-lgGBvYb3ciqETBOR31gxQVD7YyopTtmr++nCwvm63Zs=";
+    sha256 = "sha256-v4OdZmUI2LCick4qCSGOHJ7jtWybwKTeTeIcly+QQQQ=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/hwi/default.nix b/pkgs/development/python-modules/hwi/default.nix
index 332521d070401..873138cddb340 100644
--- a/pkgs/development/python-modules/hwi/default.nix
+++ b/pkgs/development/python-modules/hwi/default.nix
@@ -2,45 +2,48 @@
 , buildPythonPackage
 , fetchFromGitHub
 , bitbox02
+, cbor
 , ecdsa
 , hidapi
 , libusb1
 , mnemonic
 , pyaes
+, pyserial
 , typing-extensions
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "hwi";
-  version = "2.0.2";
+  version = "2.1.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.7";
-
   src = fetchFromGitHub {
     owner = "bitcoin-core";
     repo = "HWI";
     rev = version;
-    sha256 = "sha256-s0pKYqesZjHE6YndqsMwCuqLK7eE82oRiSXxBdUtEX4=";
+    sha256 = "sha256-ih4k58OdH5taf/7fvqLeWLrMzR38uPpDSGE4KU8sEAk=";
   };
 
   propagatedBuildInputs = [
     bitbox02
+    cbor
     ecdsa
     hidapi
     libusb1
     mnemonic
     pyaes
+    pyserial
     typing-extensions
   ];
 
-  # make compatible with libusb1 2.x
+  # relax required dependencies:
+  # libusb1           - https://github.com/bitcoin-core/HWI/issues/579
+  # typing-extensions - https://github.com/bitcoin-core/HWI/issues/572
   postPatch = ''
     substituteInPlace setup.py \
-      --replace 'libusb1>=1.7,<2.0' 'libusb1>=1.7' \
-      --replace "'python_requires': '>=3.6,<3.10'," "'python_requires': '>=3.6,<4'," \
-      --replace 'typing-extensions>=3.7,<4.0' 'typing-extensions>=3.7'
+      --replace 'libusb1>=1.7,<3' 'libusb1>=1.7,<4' \
+      --replace 'typing-extensions>=3.7,<4.0' 'typing-extensions>=3.7,<5.0'
   '';
 
   # tests require to clone quite a few firmwares
diff --git a/pkgs/development/python-modules/hydra-check/default.nix b/pkgs/development/python-modules/hydra-check/default.nix
index 48833d77e8bfd..8c1fd56b8d3ae 100644
--- a/pkgs/development/python-modules/hydra-check/default.nix
+++ b/pkgs/development/python-modules/hydra-check/default.nix
@@ -2,46 +2,39 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
-, docopt
+, poetry-core
 , requests
 , beautifulsoup4
-, mypy
-, types-requests
+, colorama
 }:
 
 buildPythonPackage rec {
   pname = "hydra-check";
-  version = "1.2.0";
-  disabled = pythonOlder "3.5";
+  version = "1.3.4";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = pname;
-    rev = version;
-    sha256 = "EegoQ8qTrFGFYbCDsbAOE4Afg9haLjYdC0Cux/yvSk8=";
+    rev = "v${version}";
+    sha256 = "sha256-voSbpOPJUPjwzdMLVt2TC/FIi6LKk01PLd/GczOAUR8=";
   };
 
+  nativeBuildInputs = [ poetry-core ];
   propagatedBuildInputs = [
-    docopt
+    colorama
     requests
     beautifulsoup4
   ];
 
-  checkInputs = [
-    mypy
-    types-requests
-  ];
-
-  checkPhase = ''
-    echo -e "\x1b[32m## run mypy\x1b[0m"
-    mypy hydracheck
-  '';
+  pythonImportsCheck = [ "hydra_check" ];
 
   meta = with lib; {
     description = "check hydra for the build status of a package";
     homepage = "https://github.com/nix-community/hydra-check";
     license = licenses.mit;
-    maintainers = with maintainers; [ makefu ];
+    maintainers = with maintainers; [ makefu artturin ];
   };
 }
-
diff --git a/pkgs/development/python-modules/hyperframe/default.nix b/pkgs/development/python-modules/hyperframe/default.nix
index d10ecc6c07522..e22dc0761a785 100644
--- a/pkgs/development/python-modules/hyperframe/default.nix
+++ b/pkgs/development/python-modules/hyperframe/default.nix
@@ -11,9 +11,12 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook ];
 
+  pythonImportsCheck = [ "hyperframe" ];
+
   meta = with lib; {
     description = "HTTP/2 framing layer for Python";
-    homepage = "http://hyper.rtfd.org/";
+    homepage = "https://github.com/python-hyper/hyperframe/";
     license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/hyperion-py/default.nix b/pkgs/development/python-modules/hyperion-py/default.nix
index 719efb92d1da7..7837deea6dba5 100644
--- a/pkgs/development/python-modules/hyperion-py/default.nix
+++ b/pkgs/development/python-modules/hyperion-py/default.nix
@@ -4,6 +4,7 @@
 , fetchFromGitHub
 , pytestCheckHook
 , pythonOlder
+, pythonAtLeast
 , poetry-core
 , pytest-aiohttp
 , pytest-asyncio
@@ -11,15 +12,15 @@
 
 buildPythonPackage rec {
   pname = "hyperion-py";
-  version = "0.7.4";
-  disabled = pythonOlder "3.8";
+  version = "0.7.5";
+  disabled = pythonOlder "3.8" || pythonAtLeast "3.10";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "dermotduffy";
     repo = pname;
     rev = "v${version}";
-    sha256 = "00x12ppmvlxs3qbdxq06wnzakvwm2m39qhmpp27qfpl137b0qqyj";
+    sha256 = "sha256-arcnpCQsRuiWCrAz/t4TCjTe8DRDtRuzYp8k7nnjGDk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/hypothesis/default.nix b/pkgs/development/python-modules/hypothesis/default.nix
index 89aac153172d7..8eaa808563e6d 100644
--- a/pkgs/development/python-modules/hypothesis/default.nix
+++ b/pkgs/development/python-modules/hypothesis/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   # If you need these, you can just add them to your environment.
 
   pname = "hypothesis";
-  version = "6.35.0";
+  version = "6.40.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "HypothesisWorks";
     repo = "hypothesis-python";
     rev = "hypothesis-python-${version}";
-    sha256 = "08wph7q3c08480ma2p7m7mamy0g7g7r5jqpwdyhdga4cfg734527";
+    hash = "sha256-6BC3CTotkMhguueH4NJM8VjbrYhofHqtZEUytcllMwQ=";
   };
 
   postUnpack = "sourceRoot=$sourceRoot/hypothesis-python";
diff --git a/pkgs/development/python-modules/hypothesmith/default.nix b/pkgs/development/python-modules/hypothesmith/default.nix
index ee8b897154bdb..4bac9c0bb022b 100644
--- a/pkgs/development/python-modules/hypothesmith/default.nix
+++ b/pkgs/development/python-modules/hypothesmith/default.nix
@@ -1,4 +1,13 @@
-{ lib, buildPythonPackage, fetchPypi, hypothesis, lark, libcst, black, parso, pytestCheckHook, pytest-cov, pytest-xdist }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, hypothesis
+, lark
+, libcst
+, parso
+, pytestCheckHook
+, pytest-xdist
+}:
 
 buildPythonPackage rec {
   pname = "hypothesmith";
@@ -9,15 +18,34 @@ buildPythonPackage rec {
     sha256 = "0fb7b3fd03d76eddd4474b0561e1c2662457593a74cc300fd27e5409cd4d7922";
   };
 
+  patches = [
+    ./remove-black.patch
+  ];
+
   postPatch = ''
-    substituteInPlace setup.py --replace "lark-parser" "lark"
+    substituteInPlace setup.py \
+      --replace "lark-parser" "lark"
+
+    substituteInPlace tox.ini \
+      --replace "--cov=hypothesmith" "" \
+      --replace "--cov-branch" "" \
+      --replace "--cov-report=term-missing:skip-covered" "" \
+      --replace "--cov-fail-under=100" ""
   '';
 
   propagatedBuildInputs = [ hypothesis lark libcst ];
 
-  checkInputs = [ black parso pytestCheckHook pytest-cov pytest-xdist ];
+  checkInputs = [ parso pytestCheckHook pytest-xdist ];
+
+  pytestFlagsArray = [
+    "-v"
+  ];
+
+  disabledTests = [
+    # https://github.com/Zac-HD/hypothesmith/issues/21
+    "test_source_code_from_libcst_node_type"
+  ];
 
-  pytestFlagsArray = [ "-v" ];  # tests are fairly slow, prevents timeout due to no stdout printing
   pythonImportsCheck = [ "hypothesmith" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/hypothesmith/remove-black.patch b/pkgs/development/python-modules/hypothesmith/remove-black.patch
new file mode 100644
index 0000000000000..565f350b06b44
--- /dev/null
+++ b/pkgs/development/python-modules/hypothesmith/remove-black.patch
@@ -0,0 +1,88 @@
+diff --git a/tests/test_cst.py b/tests/test_cst.py
+index c436183..bdba2d7 100644
+--- a/tests/test_cst.py
++++ b/tests/test_cst.py
+@@ -3,7 +3,6 @@ import ast
+ from inspect import isabstract
+ from operator import attrgetter
+ 
+-import black
+ import libcst
+ import parso
+ import pytest
+@@ -51,27 +50,6 @@ def test_ast_unparse_from_nodes(source_code):
+     assert ast.dump(first) == ast.dump(second)
+ 
+ 
+-@pytest.mark.xfail
+-@example("A\u2592", black.FileMode())
+-@given(
+-    source_code=hypothesmith.from_node(),
+-    mode=st.builds(
+-        black.FileMode,
+-        line_length=st.just(88) | st.integers(0, 200),
+-        string_normalization=st.booleans(),
+-        is_pyi=st.booleans(),
+-    ),
+-)
+-def test_black_autoformatter_from_nodes(source_code, mode):
+-    try:
+-        result = black.format_file_contents(source_code, fast=False, mode=mode)
+-    except black.NothingChanged:
+-        pass
+-    else:
+-        with pytest.raises(black.NothingChanged):
+-            black.format_file_contents(result, fast=False, mode=mode)
+-
+-
+ @given(source_code=hypothesmith.from_node())
+ def test_from_node_always_compilable(source_code):
+     compile(source_code, "<string>", "exec")
+diff --git a/tests/test_syntactic.py b/tests/test_syntactic.py
+index 7ea42e9..a77ac39 100644
+--- a/tests/test_syntactic.py
++++ b/tests/test_syntactic.py
+@@ -3,8 +3,6 @@ import ast
+ import io
+ import tokenize
+ 
+-import black
+-import blib2to3
+ import parso
+ import pytest
+ from hypothesis import example, given, reject, strategies as st
+@@ -58,34 +56,6 @@ def test_ast_unparse_from_grammar(source_code):
+     assert ast.dump(first) == ast.dump(second)
+ 
+ 
+-@example("\\", black.FileMode())
+-@example("A#\r#", black.FileMode())
+-@given(
+-    source_code=hypothesmith.from_grammar(),
+-    mode=st.builds(
+-        black.FileMode,
+-        line_length=st.just(88) | st.integers(0, 200),
+-        string_normalization=st.booleans(),
+-        is_pyi=st.booleans(),
+-    ),
+-)
+-def test_black_autoformatter_from_grammar(source_code, mode):
+-    try:
+-        result = black.format_file_contents(source_code, fast=False, mode=mode)
+-    except black.NothingChanged:
+-        pass
+-    except blib2to3.pgen2.tokenize.TokenError:
+-        # Fails to tokenise e.g. "\\", though compile("\\", "<string>", "exec") works.
+-        # See https://github.com/psf/black/issues/1012
+-        reject()
+-    except black.InvalidInput:
+-        # e.g. "A#\r#", see https://github.com/psf/black/issues/970
+-        reject()
+-    else:
+-        with pytest.raises(black.NothingChanged):
+-            black.format_file_contents(result, fast=False, mode=mode)
+-
+-
+ @given(source_code=hypothesmith.from_grammar("eval_input"))
+ def test_eval_input_generation(source_code):
+     compile(source_code, filename="<string>", mode="eval")
diff --git a/pkgs/development/python-modules/hyppo/default.nix b/pkgs/development/python-modules/hyppo/default.nix
index 61966bc7de76b..de089ba39d2d4 100644
--- a/pkgs/development/python-modules/hyppo/default.nix
+++ b/pkgs/development/python-modules/hyppo/default.nix
@@ -3,6 +3,7 @@
 , pythonOlder
 , fetchFromGitHub
 , pytestCheckHook
+, autograd
 , numba
 , numpy
 , scikit-learn
@@ -13,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "hyppo";
-  version = "0.2.2";
+  version = "0.3.2";
 
   disabled = pythonOlder "3.6";
 
@@ -21,10 +22,11 @@ buildPythonPackage rec {
     owner = "neurodata";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wrzrppyjq0pc03bn6qcslxzcnwn7fr2z5lm71gfpli5k05i26nr";
+    sha256 = "sha256-DQ5DrQrFBJ3dnGAjD1c/7GCJeR3g+aL2poR4hwOvmPA=";
   };
 
   propagatedBuildInputs = [
+    autograd
     numba
     numpy
     scikit-learn
@@ -40,8 +42,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/neurodata/hyppo";
-    description = "Indepedence testing in Python";
-    license = licenses.asl20;
+    description = "Python package for multivariate hypothesis testing";
+    license = licenses.mit;
     maintainers = with maintainers; [ bcdarwin ];
   };
 }
diff --git a/pkgs/development/python-modules/ibis-framework/default.nix b/pkgs/development/python-modules/ibis-framework/default.nix
index 61b944b488369..39d226bb95644 100644
--- a/pkgs/development/python-modules/ibis-framework/default.nix
+++ b/pkgs/development/python-modules/ibis-framework/default.nix
@@ -58,7 +58,7 @@ buildPythonPackage rec {
     repo = "ibis";
     owner = "ibis-project";
     rev = version;
-    sha256 = "sha256-n3fR6wvcSfIo7760seB+5SxtoYSqQmqkzZ9VlNQF200=";
+    hash = "sha256-n3fR6wvcSfIo7760seB+5SxtoYSqQmqkzZ9VlNQF200=";
   };
 
   nativeBuildInputs = [ poetry-core ];
@@ -94,7 +94,8 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace 'atpublic = ">=2.3,<3"' 'atpublic = ">=2.3"'
+      --replace 'atpublic = ">=2.3,<3"' 'atpublic = ">=2.3"' \
+      --replace 'regex = "^2021.7.6"' 'regex = "*"'
   '';
 
   preBuild = ''
@@ -119,7 +120,6 @@ buildPythonPackage rec {
   ];
 
   pytestFlagsArray = [
-    "--numprocesses $NIX_BUILD_CORES"
     "ibis/tests"
     "ibis/backends/tests"
     "ibis/backends/{${lib.concatStringsSep "," backends}}/tests"
diff --git a/pkgs/development/python-modules/igraph/default.nix b/pkgs/development/python-modules/igraph/default.nix
index f7409dc082361..32b471a83ce29 100644
--- a/pkgs/development/python-modules/igraph/default.nix
+++ b/pkgs/development/python-modules/igraph/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "igraph";
-  version = "0.9.9";
+  version = "0.9.10";
 
   disabled = pythonOlder "3.6";
 
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "igraph";
     repo = "python-igraph";
     rev = version;
-    hash = "sha256-jHK8whCg+WitRSL5LmkqfdqiAdi9vZPicygzKThnW2U=";
+    hash = "sha256-c20N8BtbQGxAK7ykQvyfqWYu7wVOlYfeGpNOwWPlGxs=";
   };
 
   nativeBuildInputs = [
@@ -48,6 +48,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "High performance graph data structures and algorithms";
     homepage = "https://igraph.org/python/";
+    changelog = "https://github.com/igraph/python-igraph/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ MostAwesomeDude dotlambda ];
   };
diff --git a/pkgs/development/python-modules/ihatemoney/default.nix b/pkgs/development/python-modules/ihatemoney/default.nix
index d351f1ca7d44e..ff30196630a9f 100644
--- a/pkgs/development/python-modules/ihatemoney/default.nix
+++ b/pkgs/development/python-modules/ihatemoney/default.nix
@@ -99,7 +99,8 @@ buildPythonPackage rec {
       --replace "cachetools>=4.1,<5" "cachetools>=4.1" \
       --replace "Flask-WTF>=0.14.3,<1" "Flask-WTF>=0.14.3,<2" \
       --replace "SQLAlchemy>=1.3.0,<1.4" "SQLAlchemy>=1.3.0,<1.5" \
-      --replace "WTForms>=2.3.1,<2.4" "WTForms"
+      --replace "WTForms>=2.3.1,<2.4" "WTForms" \
+      --replace "Flask-Talisman>=0.8,<1" "Flask-Talisman>=0.8,<2" # https://github.com/spiral-project/ihatemoney/pull/1006
   '';
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/imageio/default.nix b/pkgs/development/python-modules/imageio/default.nix
index 98495932fdaf1..9c449c69b7700 100644
--- a/pkgs/development/python-modules/imageio/default.nix
+++ b/pkgs/development/python-modules/imageio/default.nix
@@ -1,26 +1,36 @@
 { lib
+, stdenv
 , buildPythonPackage
 , isPy27
 , fetchPypi
-, fetchpatch
+, substituteAll
 , imageio-ffmpeg
 , numpy
 , pillow
 , psutil
 , pytestCheckHook
 , tifffile
+, fsspec
+, libGL
 }:
 
 buildPythonPackage rec {
   pname = "imageio";
-  version = "2.14.1";
+  version = "2.16.1";
   disabled = isPy27;
 
   src = fetchPypi {
-    sha256 = "sha256-cJwY+ACYHkKGq+S9hrbJtbtuKFtrkztboJYu+OeZQFg=";
+    sha256 = "sha256-fxI8sjp3rFq+jtTnrWpggxqC3ixdEjRj3PHUJ4xHedI=";
     inherit pname version;
   };
 
+  patches = [
+    (substituteAll {
+      src = ./libgl-path.patch;
+      libgl = "${libGL.out}/lib/libGL${stdenv.hostPlatform.extensions.sharedLibrary}";
+    })
+  ];
+
   propagatedBuildInputs = [
     imageio-ffmpeg
     numpy
@@ -28,34 +38,33 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
+    fsspec
     psutil
     pytestCheckHook
     tifffile
   ];
 
+  pytestFlagsArray = [
+    "-m 'not needs_internet'"
+  ];
+
   preCheck = ''
     export IMAGEIO_USERDIR="$TMP"
-    export IMAGEIO_NO_INTERNET="true"
-    export HOME="$(mktemp -d)"
+    export HOME=$TMPDIR
   '';
 
-  disabledTests = [
-    # tries to pull remote resources, even with IMAGEIO_NO_INTERNET
-    "test_png_remote"
-    # needs git history
-    "test_mvolread_out_of_bytes"
-    "test_imiter"
-    "test_memory_size"
-    "test_legacy_write_empty"
-  ];
-
   disabledTestPaths = [
+    # tries to fetch fixtures over the network
+    "tests/test_freeimage.py"
     "tests/test_pillow.py"
+    "tests/test_spe.py"
+    "tests/test_swf.py"
   ];
 
   meta = with lib; {
     description = "Library for reading and writing a wide range of image, video, scientific, and volumetric data formats";
     homepage = "http://imageio.github.io/";
     license = licenses.bsd2;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/imageio/libgl-path.patch b/pkgs/development/python-modules/imageio/libgl-path.patch
new file mode 100644
index 0000000000000..f2a2bbfa093d2
--- /dev/null
+++ b/pkgs/development/python-modules/imageio/libgl-path.patch
@@ -0,0 +1,13 @@
+diff --git a/tests/test_core.py b/tests/test_core.py
+index 2cdbb3a..032974c 100644
+--- a/tests/test_core.py
++++ b/tests/test_core.py
+@@ -129,7 +129,7 @@ def test_findlib2():
+     open(os.path.join(fi_dir, "notalib.test.so"), "wb")
+ 
+     # Loading libs
+-    gllib = ctypes.util.find_library("GL")
++    gllib = "@libgl@"
+     core.load_lib([gllib], [])
+     # Fail
+     raises(ValueError, core.load_lib, [], [])  # Nothing given
diff --git a/pkgs/development/python-modules/imap-tools/default.nix b/pkgs/development/python-modules/imap-tools/default.nix
index 9d017b2422350..a63754f0c09e3 100644
--- a/pkgs/development/python-modules/imap-tools/default.nix
+++ b/pkgs/development/python-modules/imap-tools/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "imap-tools";
-  version = "0.52.0";
+  version = "0.54.0";
 
   disabled = isPy27;
 
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "ikvk";
     repo = "imap_tools";
     rev = "v${version}";
-    hash = "sha256-la2+cpTnHZQn/FXtySp+3zDCBTONiLC16Tm+hDiIERc=";
+    hash = "sha256-RiKGxyCPYlAJ5YbxvEKxCYgUg1D9s29YSCT4tY3FIEE=";
   };
 
   checkInputs = [
@@ -39,6 +39,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Work with email and mailbox by IMAP";
     homepage = "https://github.com/ikvk/imap_tools";
+    changelog = "https://github.com/ikvk/imap_tools/blob/v${version}/docs/release_notes.rst";
     license = licenses.asl20;
     maintainers = with maintainers; [ dotlambda ];
   };
diff --git a/pkgs/development/python-modules/img2pdf/default.nix b/pkgs/development/python-modules/img2pdf/default.nix
index 58e3db524a82a..791edcb2fb20e 100644
--- a/pkgs/development/python-modules/img2pdf/default.nix
+++ b/pkgs/development/python-modules/img2pdf/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , isPy27
 , fetchPypi
-, fetchpatch
 , pikepdf
 , pillow
 , stdenv
@@ -19,23 +18,14 @@
 
 buildPythonPackage rec {
   pname = "img2pdf";
-  version = "0.4.3";
+  version = "0.4.4";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-jlHFBD76lddRSBtRYHGgBvh8KkBZlhqaxD7COJFd4J8=";
+    sha256 = "8ec898a9646523fd3862b154f3f47cd52609c24cc3e2dc1fb5f0168f0cbe793c";
   };
 
-  patches = [
-    # Disable tests broken by Pillow 9.0.0
-    # https://gitlab.mister-muffin.de/josch/img2pdf/issues/130#issuecomment-586
-    (fetchpatch {
-      url = "https://salsa.debian.org/debian/img2pdf/-/raw/f77fefc81e7c4b235c47ae6777d222d391c59536/debian/patches/pillow9";
-      sha256 = "sha256-8giZCuv5PzSbrBQqslNqiLOhgxbg3LsdBVwt+DWnvh4=";
-    })
-  ];
-
   propagatedBuildInputs = [
     pikepdf
     pillow
diff --git a/pkgs/development/python-modules/impacket/default.nix b/pkgs/development/python-modules/impacket/default.nix
index 82c49cae8bfc5..6b6f7e452b279 100644
--- a/pkgs/development/python-modules/impacket/default.nix
+++ b/pkgs/development/python-modules/impacket/default.nix
@@ -1,20 +1,46 @@
-{ lib, buildPythonPackage, fetchPypi, flask, ldapdomaindump, pycryptodomex, pyasn1, pyopenssl, chardet, setuptools }:
+{ lib
+, buildPythonPackage
+, chardet
+, fetchPypi
+, flask
+, ldapdomaindump
+, pyasn1
+, pycryptodomex
+, pyopenssl
+, pythonOlder
+, setuptools
+, six
+}:
 
 buildPythonPackage rec {
   pname = "impacket";
   version = "0.9.24";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "18d557d387f4914fafa739813b9172bc3f8bd9c036e93bf589a8e0ebb7304bba";
+    hash = "sha256-GNVX04f0kU+vpzmBO5FyvD+L2cA26Tv1iajg67cwS7o=";
   };
 
-  propagatedBuildInputs = [ flask ldapdomaindump pycryptodomex pyasn1 pyopenssl chardet setuptools ];
+  propagatedBuildInputs = [
+    chardet
+    flask
+    ldapdomaindump
+    pyasn1
+    pycryptodomex
+    pyopenssl
+    setuptools
+    six
+  ];
 
-  # fail with:
   # RecursionError: maximum recursion depth exceeded
   doCheck = false;
-  pythonImportsCheck = [ "impacket" ];
+
+  pythonImportsCheck = [
+    "impacket"
+  ];
 
   meta = with lib; {
     description = "Network protocols Constructors and Dissectors";
diff --git a/pkgs/development/python-modules/importlib-metadata/default.nix b/pkgs/development/python-modules/importlib-metadata/default.nix
index 3917742a55a90..26612ff924e6d 100644
--- a/pkgs/development/python-modules/importlib-metadata/default.nix
+++ b/pkgs/development/python-modules/importlib-metadata/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
+, setuptools
 , setuptools-scm
 , typing-extensions
 , toml
@@ -10,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "importlib-metadata";
-  version = "4.11.0";
+  version = "4.11.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -18,10 +19,11 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "importlib_metadata";
     inherit version;
-    hash = "sha256-nl5VO7uhhDy0oAgjAUuQdha+Ru5QPSuboAHSFKjaIY8=";
+    hash = "sha256-6kxZfr83FC+Ce485KZV54xaFwx06Q4tZ9GlAav0PJTk=";
   };
 
   nativeBuildInputs = [
+    setuptools # otherwise cross build fails
     setuptools-scm
   ];
 
diff --git a/pkgs/development/python-modules/importlib-resources/default.nix b/pkgs/development/python-modules/importlib-resources/default.nix
index b28932a74f057..61fb5be068d38 100644
--- a/pkgs/development/python-modules/importlib-resources/default.nix
+++ b/pkgs/development/python-modules/importlib-resources/default.nix
@@ -11,13 +11,14 @@
 
 buildPythonPackage rec {
   pname = "importlib-resources";
-  version = "5.4.0";
+  version = "5.6.0";
+  format = "pyproject";
   disabled = isPy27;
 
   src = fetchPypi {
     pname = "importlib_resources";
     inherit version;
-    sha256 = "sha256-11bi+F3U3iuom+CyHboqO77C6HGkKjoWcZJYoR+HUGs=";
+    sha256 = "sha256-G5MjjL8jtM3jQkDdgyHZnpvy60vJHAyZsohig+e6rYU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/inquirer/default.nix b/pkgs/development/python-modules/inquirer/default.nix
index dd2db106aceab..0fb7a24512104 100644
--- a/pkgs/development/python-modules/inquirer/default.nix
+++ b/pkgs/development/python-modules/inquirer/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "inquirer";
-  version = "2.9.1";
+  version = "2.9.2";
   format = "pyproject";
 
   src = fetchFromGitHub rec {
     owner = "magmax";
     repo = "python-inquirer";
     rev = "v${version}";
-    sha256 = "sha256:0vdly2k4i7bfcqc8zh2miv9dbpmqvayxk72qn9d4hr7z15wph233";
+    sha256 = "sha256-TQEZeZDl4N78dE7CXy5OwquUoHuxxjmDAC3wdxqydaQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/installer/default.nix b/pkgs/development/python-modules/installer/default.nix
index a19f27a0a7534..8749ea16132d8 100644
--- a/pkgs/development/python-modules/installer/default.nix
+++ b/pkgs/development/python-modules/installer/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "installer";
-  version = "0.3.0";
+  version = "0.5.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "pradyunsg";
     repo = pname;
     rev = version;
-    sha256 = "sha256-AxAQgDhRFkb0HB7ttDb+pHuHzwnNDX6UOm9rswzIwmI=";
+    sha256 = "sha256-vhZYUhUcD5fnjkyEqFMvggVGH9Ri8iNgqRgSBQTOCtM=";
   };
 
   nativeBuildInputs = [ flit-core ];
diff --git a/pkgs/development/python-modules/intbitset/default.nix b/pkgs/development/python-modules/intbitset/default.nix
index db98be8276c59..9cedf7c4d284c 100644
--- a/pkgs/development/python-modules/intbitset/default.nix
+++ b/pkgs/development/python-modules/intbitset/default.nix
@@ -1,36 +1,23 @@
 { lib
 , fetchPypi
 , buildPythonPackage
-, six
-, nose
+, pytestCheckHook
 }:
+
 buildPythonPackage rec {
   pname = "intbitset";
-  version = "2.4.1";
+  version = "3.0.1";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "44bca80b8cc702d5a56f0686f2bb5e028ab4d0c2c1761941589d46b7fa2c701c";
+    sha256 = "sha256-8ebQPGcpkioiPFGEnfZbnpFuYlrvuRF4Tn+azUwgfVM=";
   };
 
-  patches = [
-    # fixes compilation on aarch64 and determinism (uses -march=core2 and
-    # -mtune=native)
-    ./remove-impure-tuning.patch
-  ];
-
-  propagatedBuildInputs = [
-    six
-  ];
-
   checkInputs = [
-    nose
+    pytestCheckHook
   ];
 
-  checkPhase = ''
-    nosetests
-  '';
-
   pythonImportsCheck = [
     "intbitset"
   ];
diff --git a/pkgs/development/python-modules/intbitset/remove-impure-tuning.patch b/pkgs/development/python-modules/intbitset/remove-impure-tuning.patch
deleted file mode 100644
index 4747b87b806c9..0000000000000
--- a/pkgs/development/python-modules/intbitset/remove-impure-tuning.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 2ea60bdf4d7b0344fc6ff5c97c675842fedccfa8 Mon Sep 17 00:00:00 2001
-From: Cole Helbling <cole.e.helbling@outlook.com>
-Date: Fri, 23 Apr 2021 09:02:22 -0700
-Subject: [PATCH] setup.py: remove impure tuning
-
----
- setup.py | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index 7840022..3922aa5 100644
---- a/setup.py
-+++ b/setup.py
-@@ -48,7 +48,6 @@ setup(
-     ext_modules=[
-         Extension("intbitset",
-                   ["intbitset/intbitset.c", "intbitset/intbitset_impl.c"],
--                  extra_compile_args=['-O3', '-march=core2', '-mtune=native']
-                   # For debug -> '-ftree-vectorizer-verbose=2'
-                   )
-     ],
--- 
-2.30.1
-
diff --git a/pkgs/development/python-modules/intellifire4py/default.nix b/pkgs/development/python-modules/intellifire4py/default.nix
index b93b9b9c957b4..f8cbd93bb35be 100644
--- a/pkgs/development/python-modules/intellifire4py/default.nix
+++ b/pkgs/development/python-modules/intellifire4py/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "intellifire4py";
-  version = "1.0.2";
+  version = "1.0.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "jeeftor";
     repo = pname;
     rev = version;
-    hash = "sha256-t3wJQ7dXX65yqxMYsFggViqqGvLCdASw1QLc5DJBn+4=";
+    hash = "sha256-wBk9tCVXDxHBnhofFQfMbsrYF4UYRZ2oXEBCldvJTnM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/intensity-normalization/default.nix b/pkgs/development/python-modules/intensity-normalization/default.nix
index 48260398f4907..94d6252e3c06d 100644
--- a/pkgs/development/python-modules/intensity-normalization/default.nix
+++ b/pkgs/development/python-modules/intensity-normalization/default.nix
@@ -15,14 +15,15 @@
 
 buildPythonPackage rec {
   pname = "intensity-normalization";
-  version = "2.1.4";
+  version = "2.2.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "e7b46039311bcbba40224d85eb07eefe1488bd8a6faa893a180e15e65c48b7f5";
+    pname = "intensity_normalization";
+    inherit version;
+    sha256 = "sha256-Yjd4hXmbT87xNKSqc6zkKNisOVhQzQAUZI5wBiI/UBk=";
   };
 
   propagatedBuildInputs = [
@@ -57,5 +58,7 @@ buildPythonPackage rec {
     description = "MRI intensity normalization tools";
     maintainers = with maintainers; [ bcdarwin ];
     license = licenses.asl20;
+    # depends on simpleitk python wrapper which is not packaged yet
+    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/invocations/default.nix b/pkgs/development/python-modules/invocations/default.nix
index 78ace76b762e9..fef497739cbf6 100644
--- a/pkgs/development/python-modules/invocations/default.nix
+++ b/pkgs/development/python-modules/invocations/default.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , blessings
 , fetchFromGitHub
 , invoke
-, lib
 , releases
 , semantic-version
 , tabulate
+, tqdm
 , twine
 }:
 
@@ -27,12 +28,22 @@ buildPythonPackage rec {
       --replace "tabulate==0.7.5" "tabulate"
   '';
 
-  propagatedBuildInputs = [ blessings invoke releases semantic-version tabulate twine ];
+  propagatedBuildInputs = [
+    blessings
+    invoke
+    releases
+    semantic-version
+    tabulate
+    tqdm
+    twine
+  ];
 
   # There's an error loading the test suite. See https://github.com/pyinvoke/invocations/issues/29.
   doCheck = false;
 
-  pythonImportsCheck = [ "invocations" ];
+  pythonImportsCheck = [
+    "invocations"
+  ];
 
   meta = with lib; {
     description = "Common/best-practice Invoke tasks and collections";
diff --git a/pkgs/development/python-modules/ipykernel/default.nix b/pkgs/development/python-modules/ipykernel/default.nix
index e888fdcd32093..d7302eaaecb2c 100644
--- a/pkgs/development/python-modules/ipykernel/default.nix
+++ b/pkgs/development/python-modules/ipykernel/default.nix
@@ -3,35 +3,37 @@
 , callPackage
 , fetchPypi
 , pythonOlder
-, argcomplete
 , ipython
 , jupyter-client
+, packaging
+, psutil
 , tornado
 , traitlets
 }:
 
 buildPythonPackage rec {
   pname = "ipykernel";
-  version = "6.7.0";
+  version = "6.12.1";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d82b904fdc2fd8c7b1fbe0fa481c68a11b4cd4c8ef07e6517da1f10cc3114d24";
+    sha256 = "sha256-CGj1VhcpreREAR+Mp9NQLcnyf39E4g8dX+5+Hytxg6E=";
   };
 
   # debugpy is optional, see https://github.com/ipython/ipykernel/pull/767
   postPatch = ''
-    substituteInPlace setup.py \
-      --replace "'debugpy>=1.0.0,<2.0'," ""
+    sed -i "/debugpy/d" setup.py
   '';
 
   propagatedBuildInputs = [
     ipython
     jupyter-client
+    packaging
+    psutil
     tornado
     traitlets
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    argcomplete
   ];
 
   # check in passthru.tests.pytest to escape infinite recursion with ipyparallel
diff --git a/pkgs/development/python-modules/ipympl/default.nix b/pkgs/development/python-modules/ipympl/default.nix
index 3644442f7adaa..226fea5b621dc 100644
--- a/pkgs/development/python-modules/ipympl/default.nix
+++ b/pkgs/development/python-modules/ipympl/default.nix
@@ -3,20 +3,21 @@
 , fetchPypi
 , ipykernel
 , ipywidgets
+, matplotlib
 }:
 
 buildPythonPackage rec {
   pname = "ipympl";
-  version = "0.8.7";
+  version = "0.9.0";
   format = "wheel";
 
   src = fetchPypi {
     inherit pname version format;
-    sha256 = "11c3d01f0555f855c51a960964e3ab4dff38e6ccd1a4695205fe250341a9eb99";
+    sha256 = "sha256-HpO3T/zRbimxd1+nUkbSmclj7nPsMYuSUK0VJItZQs4=";
   };
 
 
-  propagatedBuildInputs = [ ipykernel ipywidgets ];
+  propagatedBuildInputs = [ ipykernel ipywidgets matplotlib ];
 
   # There are no unit tests in repository
   doCheck = false;
diff --git a/pkgs/development/python-modules/ipython/default.nix b/pkgs/development/python-modules/ipython/default.nix
index c1c0b049dc8c8..0a39950689dfd 100644
--- a/pkgs/development/python-modules/ipython/default.nix
+++ b/pkgs/development/python-modules/ipython/default.nix
@@ -10,7 +10,6 @@
 # Runtime dependencies
 , appnope
 , backcall
-, black
 , decorator
 , jedi
 , matplotlib-inline
@@ -28,13 +27,13 @@
 
 buildPythonPackage rec {
   pname = "ipython";
-  version = "8.0.1";
+  version = "8.2.0";
   format = "pyproject";
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0x19sj4dlq7r4p1mqnpx9245r8dwvpjwd8n34snfm37a452lsmmb";
+    sha256 = "sha256-cOXrEyysWUo0tfeZvSUliQCZBfBRBHKK6mpAPsJRncE=";
   };
 
   buildInputs = [
@@ -43,7 +42,6 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     backcall
-    black
     decorator
     jedi
     matplotlib-inline
@@ -83,7 +81,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "IPython: Productive Interactive Computing";
-    homepage = "http://ipython.org/";
+    homepage = "https://ipython.org/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bjornfor fridh ];
   };
diff --git a/pkgs/development/python-modules/ipywidgets/default.nix b/pkgs/development/python-modules/ipywidgets/default.nix
index c324eea947dae..b33ec2759b561 100644
--- a/pkgs/development/python-modules/ipywidgets/default.nix
+++ b/pkgs/development/python-modules/ipywidgets/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "ipywidgets";
-  version = "7.6.5";
+  version = "7.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "00974f7cb4d5f8d494c19810fedb9fa9b64bffd3cda7c2be23c133a1ad3c99c5";
+    sha256 = "sha256-q0pVloVaiLg3YZIcdocH1l5YRwaBObwXKd3+g0cDVCo=";
   };
 
   # Tests are not distributed
diff --git a/pkgs/development/python-modules/islpy/default.nix b/pkgs/development/python-modules/islpy/default.nix
index 67b547b724ea8..b37a2b55b2dce 100644
--- a/pkgs/development/python-modules/islpy/default.nix
+++ b/pkgs/development/python-modules/islpy/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "islpy";
-  version = "2022.1.1";
+  version = "2022.1.2";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-eWNc1xxOqEmPdSC1Ha6tfM8ofgkudfOGjvp3ZyM4pxE=";
+    sha256 = "sha256-Z0LXmbQeCyBPP0mtnt+UFyi08tcfP9XLZUS8jzkrADo=";
   };
 
   postConfigure = ''
diff --git a/pkgs/development/python-modules/iso4217/default.nix b/pkgs/development/python-modules/iso4217/default.nix
index 12cf40a6764e0..8df5f962ce584 100644
--- a/pkgs/development/python-modules/iso4217/default.nix
+++ b/pkgs/development/python-modules/iso4217/default.nix
@@ -16,7 +16,7 @@ let
 in
 buildPythonPackage rec {
   pname = "iso4217";
-  version = "1.8";
+  version = "1.9";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "dahlia";
     repo = pname;
     rev = version;
-    hash = "sha256-L0vx6Aan6D1lusgBh/pcT373ZTxbtWpQnFKB2V0dxlA=";
+    hash = "sha256-7VrXAP/Qyzy2BDTmFwDlxHvF7HhndJsDMt/qHcsmhzs=";
   };
 
   propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [
diff --git a/pkgs/development/python-modules/iso8601/default.nix b/pkgs/development/python-modules/iso8601/default.nix
index a5eb03dc8eb6e..14cef7c62a8c0 100644
--- a/pkgs/development/python-modules/iso8601/default.nix
+++ b/pkgs/development/python-modules/iso8601/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , hypothesis
+, poetry-core
 , pytestCheckHook
 , pytz
 , pythonOlder
@@ -10,7 +11,7 @@
 buildPythonPackage rec {
   pname = "iso8601";
   version = "1.0.2";
-  format = "setuptools";
+  format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
@@ -19,6 +20,10 @@ buildPythonPackage rec {
     sha256 = "sha256-J/UDIg5oRdnblU+yErlbA2LYt+bBsjJqhwYcPek1lLE=";
   };
 
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
   checkInputs = [
     hypothesis
     pytestCheckHook
diff --git a/pkgs/development/python-modules/iterm2/default.nix b/pkgs/development/python-modules/iterm2/default.nix
index 1cba03531b5be..1742fc08e1e49 100644
--- a/pkgs/development/python-modules/iterm2/default.nix
+++ b/pkgs/development/python-modules/iterm2/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "iterm2";
-  version = "1.30";
+  version = "2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "148b32a593f3d932a33daad01fdaa4639918eca74a6e153d9729dd8b3cba3345";
+    sha256 = "sha256-oEXDW+ar3S0gJn2DdaOyq6GDE9dJaghQEpPBCfTL2Kw=";
   };
 
   propagatedBuildInputs = [ protobuf websockets ];
diff --git a/pkgs/development/python-modules/itsdangerous/default.nix b/pkgs/development/python-modules/itsdangerous/default.nix
index 35cdf8836a89e..99bdb965235c1 100644
--- a/pkgs/development/python-modules/itsdangerous/default.nix
+++ b/pkgs/development/python-modules/itsdangerous/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "itsdangerous";
-  version = "2.0.1";
+  version = "2.1.2";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1w6gfb2zhbcmrfj6digwzw1z68w6zg1q87rm6la2m412zil4swly";
+    sha256 = "sha256-XbvGizF+XkLzJ/kCF2NUXcP8O/4i5t65aq8fw4h0FWo=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/jaraco_itertools/default.nix b/pkgs/development/python-modules/jaraco_itertools/default.nix
index 80b0349ed58d3..95d20fd7e6be7 100644
--- a/pkgs/development/python-modules/jaraco_itertools/default.nix
+++ b/pkgs/development/python-modules/jaraco_itertools/default.nix
@@ -4,11 +4,12 @@
 
 buildPythonPackage rec {
   pname = "jaraco.itertools";
-  version = "6.0.3";
+  version = "6.2.1";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1775bfcad5de275a540a36720c5ab34594ea1dbe7ffefa32099b0129c5604608";
+    sha256 = "sha256-YJjts3xrgCPzeU1CWIoTv3WyygK0D/l5XIRry+DBtGw=";
   };
 
   pythonNamespaces = [ "jaraco" ];
diff --git a/pkgs/development/python-modules/jaraco_text/default.nix b/pkgs/development/python-modules/jaraco_text/default.nix
index 054f68ba2f244..e1e82df89ea32 100644
--- a/pkgs/development/python-modules/jaraco_text/default.nix
+++ b/pkgs/development/python-modules/jaraco_text/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "jaraco.text";
-  version = "3.6.0";
+  version = "3.7.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "901d3468eaaa04f1d8a8f141f54b8887bfd943ccba311fc1c1de62c66604dfe0";
+    sha256 = "sha256-p/nMG0Sl8wlqIWy9EwtlDHprLJ+ABbAArpfzKSOafAA=";
   };
 
   pythonNamespaces = [
diff --git a/pkgs/development/python-modules/jarowinkler/default.nix b/pkgs/development/python-modules/jarowinkler/default.nix
new file mode 100644
index 0000000000000..3985a22d5bcb6
--- /dev/null
+++ b/pkgs/development/python-modules/jarowinkler/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, cmake
+, cython
+, rapidfuzz-capi
+, scikit-build
+, hypothesis
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "jarowinkler";
+  version = "1.0.2";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "maxbachmann";
+    repo = "JaroWinkler";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    hash = "sha256-zVAcV6xxqyfXRUcyWo9PcOdagcexJc/D5k4g5ag3hbY=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    cython
+    rapidfuzz-capi
+    scikit-build
+  ];
+
+  dontUseCmakeConfigure = true;
+
+  checkInputs = [
+    hypothesis
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    # import from $out
+    rm -r jarowinkler
+  '';
+
+  pythonImportsCheck = [ "jarowinkler" ];
+
+  meta = with lib; {
+    description = "Library for fast approximate string matching using Jaro and Jaro-Winkler similarity";
+    homepage = "https://github.com/maxbachmann/JaroWinkler";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/jax/default.nix b/pkgs/development/python-modules/jax/default.nix
index 332cac3133cc2..e4e9139216e17 100644
--- a/pkgs/development/python-modules/jax/default.nix
+++ b/pkgs/development/python-modules/jax/default.nix
@@ -3,6 +3,7 @@
 , blas
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , jaxlib
 , lapack
 , numpy
@@ -19,7 +20,7 @@ let
 in
 buildPythonPackage rec {
   pname = "jax";
-  version = "0.3.4";
+  version = "0.3.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -28,12 +29,18 @@ buildPythonPackage rec {
     owner = "google";
     repo = pname;
     rev = "jax-v${version}";
-    sha256 = "sha256-RZqSJP2vtt8U6nmftV2VzfkMGkkk3100QqsjI7PpQbc=";
+    hash = "sha256-eGdAEZFHadNTHgciP4KMYHdwksz9g6un0Ar+A/KV5TE=";
   };
 
   patches = [
     # See https://github.com/google/jax/issues/7944
     ./cache-fix.patch
+
+    # See https://github.com/google/jax/issues/10292
+    (fetchpatch {
+      url = "https://github.com/google/jax/commit/cadc8046d56e0c1433cf48a2f106947d5f4ecbfd.patch";
+      hash = "sha256-jrpIqt4LzWAswt/Cpwtfa5d1Yn31HcXkVH3ETmaigA0=";
+    })
   ];
 
   # jaxlib is _not_ included in propagatedBuildInputs because there are
@@ -54,21 +61,27 @@ buildPythonPackage rec {
     pytest-xdist
   ];
 
+  # high parallelism will result in the tests getting stuck
+  dontUsePytestXdist = true;
+
   # NOTE: Don't run the tests in the expiremental directory as they require flax
   # which creates a circular dependency. See https://discourse.nixos.org/t/how-to-nix-ify-python-packages-with-circular-dependencies/14648/2.
   # Not a big deal, this is how the JAX docs suggest running the test suite
   # anyhow.
   pytestFlagsArray = [
-    "-n auto"
+    "--numprocesses=4"
     "-W ignore::DeprecationWarning"
     "tests/"
   ];
 
-  # See
-  #  * https://github.com/google/jax/issues/9705
-  #  * https://discourse.nixos.org/t/getting-different-results-for-the-same-build-on-two-equally-configured-machines/17921
-  #  * https://github.com/NixOS/nixpkgs/issues/161960
-  disabledTests = lib.optionals usingMKL [
+  disabledTests = [
+    # Exceeds tolerance when the machine is busy
+    "test_custom_linear_solve_aux"
+  ] ++ lib.optionals usingMKL [
+    # See
+    #  * https://github.com/google/jax/issues/9705
+    #  * https://discourse.nixos.org/t/getting-different-results-for-the-same-build-on-two-equally-configured-machines/17921
+    #  * https://github.com/NixOS/nixpkgs/issues/161960
     "test_custom_linear_solve_cholesky"
     "test_custom_root_with_aux"
     "testEigvalsGrad_shape"
diff --git a/pkgs/development/python-modules/jaxlib/bin.nix b/pkgs/development/python-modules/jaxlib/bin.nix
index 0929831e32a4b..1eb4cc18ed069 100644
--- a/pkgs/development/python-modules/jaxlib/bin.nix
+++ b/pkgs/development/python-modules/jaxlib/bin.nix
@@ -18,7 +18,6 @@
 , autoPatchelfHook
 , buildPythonPackage
 , config
-, cudatoolkit_11
 , cudnn
 , fetchurl
 , flatbuffers
@@ -29,11 +28,16 @@
 , stdenv
   # Options:
 , cudaSupport ? config.cudaSupport or false
+, cudaPackages ? {}
 }:
 
+let
+  inherit (cudaPackages) cudatoolkit cudnn;
+in
+
 # There are no jaxlib wheels targeting cudnn <8.0.5, and although there are
 # wheels for cudatoolkit <11.1, we don't support them.
-assert cudaSupport -> lib.versionAtLeast cudatoolkit_11.version "11.1";
+assert cudaSupport -> lib.versionAtLeast cudatoolkit.version "11.1";
 assert cudaSupport -> lib.versionAtLeast cudnn.version "8.0.5";
 
 let
@@ -116,7 +120,7 @@ buildPythonPackage rec {
       rpath=$(patchelf --print-rpath $file)
       # For some reason `makeLibraryPath` on `cudatoolkit_11` maps to
       # <cudatoolkit_11.lib>/lib which is different from <cudatoolkit_11>/lib.
-      patchelf --set-rpath "$rpath:${cudatoolkit_11}/lib:${lib.makeLibraryPath [ cudatoolkit_11.lib cudnn ]}" $file
+      patchelf --set-rpath "$rpath:${cudatoolkit}/lib:${lib.makeLibraryPath [ cudatoolkit.lib cudnn ]}" $file
     done
   '';
 
@@ -127,7 +131,7 @@ buildPythonPackage rec {
   # more info.
   postInstall = lib.optional cudaSupport ''
     mkdir -p $out/bin
-    ln -s ${cudatoolkit_11}/bin/ptxas $out/bin/ptxas
+    ln -s ${cudatoolkit}/bin/ptxas $out/bin/ptxas
   '';
 
   pythonImportsCheck = [ "jaxlib" ];
diff --git a/pkgs/development/python-modules/jaxlib/default.nix b/pkgs/development/python-modules/jaxlib/default.nix
index 363bfe5613463..002858a8fa156 100644
--- a/pkgs/development/python-modules/jaxlib/default.nix
+++ b/pkgs/development/python-modules/jaxlib/default.nix
@@ -18,11 +18,6 @@
 , wheel
 , which
 
-  # Build-time and runtime CUDA dependencies:
-, cudatoolkit ? null
-, cudnn ? null
-, nccl ? null
-
   # Python dependencies:
 , absl-py
 , flatbuffers
@@ -42,6 +37,7 @@
   # CUDA flags:
 , cudaCapabilities ? [ "sm_35" "sm_50" "sm_60" "sm_70" "sm_75" "compute_80" ]
 , cudaSupport ? false
+, cudaPackages ? {}
 
   # MKL:
 , mklSupport ? true
@@ -49,6 +45,8 @@
 
 let
 
+  inherit (cudaPackages) cudatoolkit cudnn nccl;
+
   pname = "jaxlib";
   version = "0.3.0";
 
@@ -57,6 +55,8 @@ let
     homepage = "https://github.com/google/jax";
     license = licenses.asl20;
     maintainers = with maintainers; [ ndl ];
+    platforms = [ "x86_64-linux" "aarch64-darwin" "x86_64-darwin"];
+    hydraPlatforms = ["x86_64-linux" ]; # Don't think anybody is checking the darwin builds
   };
 
   cudatoolkit_joined = symlinkJoin {
@@ -216,9 +216,9 @@ let
     fetchAttrs = {
       sha256 =
         if cudaSupport then
-          "1k0rjxqjm703gd9navwzx5x3874b4dxamr62m1fxhm79d271zxis"
+          "0d2rqwk9n4a6c51m4g21rxymv85kw2sdksni30cdx3pdcdbqgic7"
         else
-          "0ivah1w41jcj13jm740qzwx5h0ia8vbj71pjgd0zrfk3c92kll41";
+          "0q540mwmh7grig0qq48ynzqi0gynimxnrq7k97wribqpkx99k39d";
     };
 
     buildAttrs = {
diff --git a/pkgs/development/python-modules/jeepney/default.nix b/pkgs/development/python-modules/jeepney/default.nix
index 3079f152e4444..6ec1fb811cf08 100644
--- a/pkgs/development/python-modules/jeepney/default.nix
+++ b/pkgs/development/python-modules/jeepney/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
+, flit-core
 , async-timeout
 , dbus
 , pytest
@@ -13,15 +14,21 @@
 
 buildPythonPackage rec {
   pname = "jeepney";
-  version = "0.7.1";
+  version = "0.8.0";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
+
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fa9e232dfa0c498bd0b8a3a73b8d8a31978304dcef0515adc859d4e096f96f4f";
+    sha256 = "5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806";
   };
 
+  nativeBuildInputs = [
+    flit-core
+  ];
+
   checkInputs = [
     async-timeout
     dbus
diff --git a/pkgs/development/python-modules/jenkins-job-builder/default.nix b/pkgs/development/python-modules/jenkins-job-builder/default.nix
index bc5432cb6e3f6..99c5aff43c0e2 100644
--- a/pkgs/development/python-modules/jenkins-job-builder/default.nix
+++ b/pkgs/development/python-modules/jenkins-job-builder/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "jenkins-job-builder";
-  version = "3.12.0";
+  version = "4.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-gpsot4LW1IBfYt8eb72WJqMzWEAMt4gqWOD1KhTQjds=";
+    sha256 = "sha256-6bsiq3LwlBZdF378HXEIgZSKf7NsTjo3bbSmt7XkYgM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/jinja2/default.nix b/pkgs/development/python-modules/jinja2/default.nix
index 7c9971b0c4544..29b08df8e0fea 100644
--- a/pkgs/development/python-modules/jinja2/default.nix
+++ b/pkgs/development/python-modules/jinja2/default.nix
@@ -10,12 +10,13 @@
 
 buildPythonPackage rec {
   pname = "Jinja2";
-  version = "3.0.3";
-  disabled = pythonOlder "3.6";
+  version = "3.1.1";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7";
+    sha256 = "sha256-ZAvtS7UBy9FxlLPKzh3CEm9bYZzwaKcmuYGSoP3nSuk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jira/default.nix b/pkgs/development/python-modules/jira/default.nix
index b22f5ccd73a4d..c6b1386adec00 100644
--- a/pkgs/development/python-modules/jira/default.nix
+++ b/pkgs/development/python-modules/jira/default.nix
@@ -5,37 +5,39 @@
 , flaky
 , keyring
 , requests-mock
-, requests_oauthlib
+, requests-oauthlib
 , requests-toolbelt
 , setuptools-scm
 , setuptools-scm-git-archive
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "jira";
   version = "3.1.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "pycontribs";
     repo = pname;
     rev = version;
-    sha256 = "04s2zgwxip54g894hps2cm081cp07mbi7qipmsv4dvailhsg43nn";
+    hash = "sha256-1g7yNKRR7Ua2rjfiE1c94LKAQGVCX0gSeqTc2Pn7QhM=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace "--cov-report=xml --cov jira" ""
-  '';
-
-  nativeBuildInputs = [ setuptools-scm setuptools-scm-git-archive ];
+  nativeBuildInputs = [
+    setuptools-scm
+    setuptools-scm-git-archive
+  ];
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
 
   propagatedBuildInputs = [
     defusedxml
     keyring
-    requests_oauthlib
+    requests-oauthlib
     requests-toolbelt
   ];
 
@@ -45,11 +47,20 @@ buildPythonPackage rec {
     requests-mock
   ];
 
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "--cov-report=xml --cov jira" ""
+  '';
+
+  pythonImportsCheck = [
+    "jira"
+  ];
+
   # impure tests because of connectivity attempts to jira servers
   doCheck = false;
 
   meta = with lib; {
-    description = "This library eases the use of the JIRA REST API from Python.";
+    description = "Library to interact with the JIRA REST API";
     homepage = "https://github.com/pycontribs/jira";
     license = licenses.bsd2;
     maintainers = with maintainers; [ globin ];
diff --git a/pkgs/development/python-modules/jmespath/default.nix b/pkgs/development/python-modules/jmespath/default.nix
index 3f74ae8d810e5..18c2f46216f22 100644
--- a/pkgs/development/python-modules/jmespath/default.nix
+++ b/pkgs/development/python-modules/jmespath/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "jmespath";
-  version = "0.10.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9";
+    sha256 = "sha256-pJDigO3R9X1t6IY2mS0Ftx6X1pomoZ8Fjs99MER0v14=";
   };
 
   buildInputs = [ nose ];
diff --git a/pkgs/development/python-modules/joblib/default.nix b/pkgs/development/python-modules/joblib/default.nix
index 2b011f56c1e8f..ad7db290d67e6 100644
--- a/pkgs/development/python-modules/joblib/default.nix
+++ b/pkgs/development/python-modules/joblib/default.nix
@@ -1,4 +1,5 @@
 { lib
+, pythonAtLeast
 , pythonOlder
 , buildPythonPackage
 , fetchPypi
@@ -28,6 +29,7 @@ buildPythonPackage rec {
   disabledTests = [
     "test_disk_used" # test_disk_used is broken: https://github.com/joblib/joblib/issues/57
     "test_parallel_call_cached_function_defined_in_jupyter" # jupyter not available during tests
+    "test_nested_parallel_warnings" # tests is flaky under load
   ] ++ lib.optionals stdenv.isDarwin [
     "test_dispatch_multiprocessing" # test_dispatch_multiprocessing is broken only on Darwin.
   ];
diff --git a/pkgs/development/python-modules/josepy/default.nix b/pkgs/development/python-modules/josepy/default.nix
index 036b60e9eca25..100228bf4f146 100644
--- a/pkgs/development/python-modules/josepy/default.nix
+++ b/pkgs/development/python-modules/josepy/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "josepy";
-  version = "1.12.0";
+  version = "1.13.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "267004a64f08c016cd54b7aaf7c323fa3ef3679fb62f4b086cd56448d0fecb25";
+    sha256 = "sha256-iTHa84+KTIUnSg6LfLJa3f2NHyj5+4++0FPdUa7HXck=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jsbeautifier/default.nix b/pkgs/development/python-modules/jsbeautifier/default.nix
index bdd0897acbe68..5109f8ffe27b7 100644
--- a/pkgs/development/python-modules/jsbeautifier/default.nix
+++ b/pkgs/development/python-modules/jsbeautifier/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonApplication rec {
   pname = "jsbeautifier";
-  version = "1.14.2";
+  version = "1.14.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-PskybkfTilQ5W97/h2lWakcnWOcLnhG6fMVs/spqm/Y=";
+    hash = "sha256-1tV2J8+ezYzZAbnsetSogSeo3t6RAXf6SyGedtAvm9c=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/json-home-client/default.nix b/pkgs/development/python-modules/json-home-client/default.nix
new file mode 100644
index 0000000000000..be3d99904dcdb
--- /dev/null
+++ b/pkgs/development/python-modules/json-home-client/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+# build inputs
+, typing-extensions
+, uri-template
+}:
+
+buildPythonPackage rec {
+  pname = "json-home-client";
+  version = "1.1.1";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "plinss";
+    repo = "json_home_client";
+    rev = "v${version}";
+    sha256 = "sha256-DhnvvY1nMe1sdRE+OgjBt4TsLmiqnD8If4rl700zW9E=";
+  };
+
+  postPatch = ''
+    sed -i -e 's/0.0.0/${version}/' setup.py
+  '';
+
+  propagatedBuildInputs = [
+    typing-extensions
+    uri-template
+  ];
+
+  pythonImportsCheck = [ "json_home_client" ];
+
+  meta = with lib; {
+    description = "Client class for calling http+json APIs in Python";
+    homepage = "https://github.com/plinss/json_home_client";
+    license = licenses.mit;
+    maintainers = [ maintainers.kvark ];
+  };
+}
diff --git a/pkgs/development/python-modules/json-schema-for-humans/default.nix b/pkgs/development/python-modules/json-schema-for-humans/default.nix
index a9faf437f80fe..8fb0e2dd40cf3 100644
--- a/pkgs/development/python-modules/json-schema-for-humans/default.nix
+++ b/pkgs/development/python-modules/json-schema-for-humans/default.nix
@@ -31,6 +31,11 @@ buildPythonPackage rec {
     hash = "sha256-H0jvOnrWE4/xxRYNehshHBRNc/qLX1+sCV7O1ACCdew=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'pytz = "^2021.1"' 'pytz = "*"'
+  '';
+
   nativeBuildInputs = [
     poetry-core
   ];
@@ -54,12 +59,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    # https://github.com/coveooss/json-schema-for-humans/issues/127
-    substituteInPlace pyproject.toml \
-      --replace 'PyYAML = "^5.4.1"' 'PyYAML = "*"'
-  '';
-
   disabledTests = [
     # Tests require network access
     "test_references_url"
diff --git a/pkgs/development/python-modules/jsondiff/default.nix b/pkgs/development/python-modules/jsondiff/default.nix
index 0b6f012098189..fe41d0dd85401 100644
--- a/pkgs/development/python-modules/jsondiff/default.nix
+++ b/pkgs/development/python-modules/jsondiff/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "jsondiff";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5122bf4708a031b02db029366184a87c5d0ddd5a327a5884ee6cf0193e599d71";
+    sha256 = "sha256-BM+uvUpeVziUirYVcQ3D7pjvvfhRJV/Tl3xMLuWecxI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/jsonpickle/default.nix b/pkgs/development/python-modules/jsonpickle/default.nix
index a91e6b3accd29..1ffbbdd5e8954 100644
--- a/pkgs/development/python-modules/jsonpickle/default.nix
+++ b/pkgs/development/python-modules/jsonpickle/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "jsonpickle";
-  version = "2.0.0";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0be49cba80ea6f87a168aa8168d717d00c6ca07ba83df3cec32d3b30bfe6fb9a";
+    sha256 = "sha256-hGhM/FM4pTQXPI3WmAnkDyhl0L4fiit6+EZeW5aNz6k=";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/junos-eznc/default.nix b/pkgs/development/python-modules/junos-eznc/default.nix
index 426b990ccac58..d693c73130be8 100644
--- a/pkgs/development/python-modules/junos-eznc/default.nix
+++ b/pkgs/development/python-modules/junos-eznc/default.nix
@@ -1,43 +1,77 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, six
-, scp
-, pyserial
-, paramiko
-, netaddr
+, fetchpatch
+, fetchFromGitHub
+
+# propagates
+, jinja2
+, lxml
 , ncclient
+, netaddr
 , ntc-templates
-, lxml
-, jinja2
+, paramiko
+, pyparsing
+, pyserial
 , pyyaml
+, scp
+, six
 , transitions
 , yamlordereddictloader
+
+# tests
+, mock
 , nose
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "junos-eznc";
   version = "2.6.3";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "4eee93d0af203af7cee54a8f0c7bd28af683e829edf1fd68feba85d0ad737395";
+  src = fetchFromGitHub {
+    owner = "Juniper";
+    repo = "py-junos-eznc";
+    rev = version;
+    hash = "sha256-XhQJwtS518AzSwyaWE392nfNdYe9+iYHvXxQsjJfzI8=";
   };
 
+  patches = [
+    (fetchpatch {
+      # Fixes tests with lxml>=4.8.0; remove > 2.6.3
+      url = "https://github.com/Juniper/py-junos-eznc/commit/048f750bb7357b6f6b9db8ad64bea479298c74fb.patch";
+      hash = "sha256-DYVj0BNPwDSbxDrzHhaq4F4kz1bliXB6Au3I63mRauc=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace requirements.txt \
       --replace "ncclient==0.6.9" "ncclient"
   '';
 
-  checkInputs = [ nose ];
-
   propagatedBuildInputs = [
-    scp six pyserial paramiko netaddr ncclient ntc-templates lxml jinja2 pyyaml transitions yamlordereddictloader
+    jinja2
+    lxml
+    ncclient
+    netaddr
+    ntc-templates
+    paramiko
+    pyparsing
+    pyserial
+    pyyaml
+    scp
+    six
+    transitions
+    yamlordereddictloader
+  ];
+
+  checkInputs = [
+    mock
+    nose
   ];
 
   checkPhase = ''
-    nosetests -v --with-coverage --cover-package=jnpr.junos --cover-inclusive -a unit
+    nosetests -v -a unit --exclude=test_sw_put_ftp
   '';
 
   pythonImportsCheck = [ "jnpr.junos" ];
diff --git a/pkgs/development/python-modules/jupyter-client/default.nix b/pkgs/development/python-modules/jupyter-client/default.nix
index 9cb465947551a..2670fc163f6c2 100644
--- a/pkgs/development/python-modules/jupyter-client/default.nix
+++ b/pkgs/development/python-modules/jupyter-client/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "jupyter_client";
-  version = "7.1.0";
+  version = "7.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a5f995a73cffb314ed262713ae6dfce53c6b8216cea9f332071b8ff44a6e1654";
+    sha256 = "sha256-qhdyeekyBdBoHsDi4hDaAbIsWhRkpWq9RVrcrGTw3pE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyter-packaging/default.nix b/pkgs/development/python-modules/jupyter-packaging/default.nix
index f3fd7747ff86c..bb2837d28fc88 100644
--- a/pkgs/development/python-modules/jupyter-packaging/default.nix
+++ b/pkgs/development/python-modules/jupyter-packaging/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "jupyter-packaging";
-  version = "0.11.1";
+  version = "0.12.0";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     pname = "jupyter_packaging";
     inherit version;
-    sha256 = "6f5c7eeea98f7f3c8fb41d565a94bf59791768a93f93148b3c2dfb7ebade8eec";
+    sha256 = "sha256-snRV1grck6e6ouC484a+gbkyu048ARYEbfntIwzT+qw=";
   };
 
   propagatedBuildInputs = [ deprecation packaging tomlkit ];
diff --git a/pkgs/development/python-modules/jupyter_console/default.nix b/pkgs/development/python-modules/jupyter_console/default.nix
index 9716fbe8e5d7d..5a3176b462c6e 100644
--- a/pkgs/development/python-modules/jupyter_console/default.nix
+++ b/pkgs/development/python-modules/jupyter_console/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "jupyter_console";
-  version = "6.4.0";
+  version = "6.4.3";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "242248e1685039cd8bff2c2ecb7ce6c1546eb50ee3b08519729e6e881aec19c7";
+    sha256 = "sha256-VfMmJrC+ZHqF4yF93Nsi22nvx56LQDuXceuezGlgGbU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyter_core/default.nix b/pkgs/development/python-modules/jupyter_core/default.nix
index a7dd89a1f89a0..b7838ff5915f6 100644
--- a/pkgs/development/python-modules/jupyter_core/default.nix
+++ b/pkgs/development/python-modules/jupyter_core/default.nix
@@ -2,33 +2,54 @@
 , buildPythonPackage
 , fetchPypi
 , isPy3k
+, fetchpatch
+, python
 , ipython
 , traitlets
 , glibcLocales
 , mock
-, pytest
+, pytestCheckHook
 , nose
 }:
 
 buildPythonPackage rec {
   pname = "jupyter_core";
-  version = "4.9.1";
+  version = "4.9.2";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dce8a7499da5a53ae3afd5a9f4b02e5df1d57250cf48f3ad79da23b4778cd6fa";
+    sha256 = "sha256-1puuuf+xKLjNJlf88nA/icdp0Wc8hRgSEZ46Kg6TrZo=";
   };
 
-  checkInputs = [ pytest mock glibcLocales nose ];
+  checkInputs = [ pytestCheckHook mock glibcLocales nose ];
   propagatedBuildInputs = [ ipython traitlets ];
 
-  patches = [ ./tests_respect_pythonpath.patch ];
+  patches = [
+    # install jupyter_core/*.py files
+    (fetchpatch {
+      url = "https://github.com/jupyter/jupyter_core/pull/253/commits/3bbeaebec0a53520523162d5e8d5c6ca02b1b782.patch";
+      sha256 = "sha256-QeAfj7wLz4egVUPMAgrZ9Wn/Tv60LrIXLgHGVoH41wQ=";
+    })
+    ./tests_respect_pythonpath.patch
+  ];
 
-  checkPhase = ''
-    HOME=$TMPDIR LC_ALL=en_US.utf8 py.test
+  preCheck = ''
+    export HOME=$TMPDIR
+    export LC_ALL=en_US.utf8
   '';
 
+  disabledTests = [
+    # creates a temporary script, which isn't aware of PYTHONPATH
+    "test_argv0"
+  ];
+
+  postCheck = ''
+    $out/bin/jupyter --help > /dev/null
+  '';
+
+  pythonImportsCheck = [ "jupyter_core" ];
+
   meta = with lib; {
     description = "Jupyter core package. A base package on which Jupyter projects rely";
     homepage = "https://jupyter.org/";
diff --git a/pkgs/development/python-modules/jupyterlab-git/default.nix b/pkgs/development/python-modules/jupyterlab-git/default.nix
index 9d2907072e62a..9f36e03d48854 100644
--- a/pkgs/development/python-modules/jupyterlab-git/default.nix
+++ b/pkgs/development/python-modules/jupyterlab-git/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab-git";
-  version = "0.34.1";
+  version = "0.36.0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     pname = "jupyterlab_git";
     inherit version;
-    sha256 = "c7a03f526eb19175df73fedd5dee3cdae2d39e0474eef8f55c1c55b219ab26d9";
+    sha256 = "sha256-K+h1ra9PsqKlSSPnc1jgSODICv3FoEdwqBGYWQYs6wE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyterlab/default.nix b/pkgs/development/python-modules/jupyterlab/default.nix
index fbea0935ff304..1a72398f05a4f 100644
--- a/pkgs/development/python-modules/jupyterlab/default.nix
+++ b/pkgs/development/python-modules/jupyterlab/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab";
-  version = "3.3.2";
+  version = "3.3.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-PHFr9VkssoxcVcYVxuW9PvxxiY9pV9E3GbVkeLu7WHo=";
+    sha256 = "sha256-4ENVhIs9kaxNlcLjhGoEKbM+nC7ceWaPtPxNIS8eUQc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyterlab_server/default.nix b/pkgs/development/python-modules/jupyterlab_server/default.nix
index ed0fe4bca2d76..e612cfaeab043 100644
--- a/pkgs/development/python-modules/jupyterlab_server/default.nix
+++ b/pkgs/development/python-modules/jupyterlab_server/default.nix
@@ -16,16 +16,20 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab_server";
-  version = "2.10.3";
+  version = "2.12.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3fb84a5813d6d836ceda773fb2d4e9ef3c7944dbc1b45a8d59d98641a80de80a";
+    sha256 = "sha256-AOD0tMOZ9Vk4Mj6hDPktkVKI/hJ1PjXRBp9soItyq78=";
   };
 
   postPatch = ''
-    sed -i "/^addopts/d" pyproject.toml
+    substituteInPlace pyproject.toml \
+      --replace "--cov jupyterlab_server --cov-report term-missing --cov-report term:skip-covered" ""
+
+    # translation tests try to install additional packages into read only paths
+    rm -r tests/translations/
   '';
 
   propagatedBuildInputs = [ requests jsonschema pyjson5 Babel jupyter_server ];
@@ -37,8 +41,6 @@ buildPythonPackage rec {
     ruamel-yaml
   ];
 
-  pytestFlagsArray = [ "--pyargs" "jupyterlab_server" ];
-
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/jupytext/default.nix b/pkgs/development/python-modules/jupytext/default.nix
index 6e0668de1470d..a7a7d48c9d1dc 100644
--- a/pkgs/development/python-modules/jupytext/default.nix
+++ b/pkgs/development/python-modules/jupytext/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "jupytext";
-  version = "1.13.7";
+  version = "1.13.8";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -26,8 +26,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "mwouts";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-DWK5ZoPL6Ek3dXHOlZfecQKLNwBqDjMZ77XZ7YLCXKI=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-ebe5sQJxA8QE6eJp6vPUyMaEvZUPqzCmQ6damzo1BVo=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/kaldi-active-grammar/default.nix b/pkgs/development/python-modules/kaldi-active-grammar/default.nix
index 46fc619b4cb3a..a1ef7e314656e 100644
--- a/pkgs/development/python-modules/kaldi-active-grammar/default.nix
+++ b/pkgs/development/python-modules/kaldi-active-grammar/default.nix
@@ -5,6 +5,7 @@
 , cmake
 , ush
 , requests
+, six
 , numpy
 , cffi
 , openfst
@@ -12,6 +13,11 @@
 , callPackage
 }:
 
+#
+# Maintainer note: only in-tree dependant is `dragonfly`, try to
+# update the two alongside eachother.
+#
+
 let
   kaldi = callPackage ./fork.nix { };
 in
@@ -48,7 +54,7 @@ buildPythonPackage rec {
 
   buildInputs = [ openfst kaldi ];
   nativeBuildInputs = [ scikit-build cmake ];
-  propagatedBuildInputs = [ ush requests numpy cffi ];
+  propagatedBuildInputs = [ ush requests numpy cffi six ];
 
   doCheck = false;  # no tests exist
 
diff --git a/pkgs/development/python-modules/karton-core/default.nix b/pkgs/development/python-modules/karton-core/default.nix
index 07f317a8aba5a..562d8880692fc 100644
--- a/pkgs/development/python-modules/karton-core/default.nix
+++ b/pkgs/development/python-modules/karton-core/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "karton-core";
-  version = "4.3.0";
+  version = "4.4.0";
 
   src = fetchFromGitHub {
     owner = "CERT-Polska";
     repo = "karton";
-    rev = "v${version}";
-    sha256 = "sha256-pIYDY+pie4xqH11UHBal7/+MVmJDgNCFVpSD9we9ZPA=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-TwTq44l/Nx+FQ6tFZHat4SPGOmHSwYfg7ShbGnxpkVw=";
   };
 
   propagatedBuildInputs = [ minio redis ];
diff --git a/pkgs/development/python-modules/kbcstorage/default.nix b/pkgs/development/python-modules/kbcstorage/default.nix
new file mode 100644
index 0000000000000..913b7981edd09
--- /dev/null
+++ b/pkgs/development/python-modules/kbcstorage/default.nix
@@ -0,0 +1,69 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+
+# build
+, setuptools-scm
+
+# propagates
+, azure-storage-blob
+, boto3
+, requests
+
+# tests
+, responses
+, python
+}:
+
+buildPythonPackage rec {
+    pname = "sapi-python-client";
+    version = "0.4.1";
+    format = "setuptools";
+
+    src = fetchFromGitHub {
+      owner = "keboola";
+      repo = pname;
+      rev  = version;
+      sha256 = "189dzj06vzp7366h2qsfvbjmw9qgl7jbp8syhynn9yvrjqp4k8h3";
+    };
+
+    SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+    nativeBuildInputs = [
+      setuptools-scm
+    ];
+
+    propagatedBuildInputs = [
+      azure-storage-blob
+      boto3
+      requests
+    ];
+
+    # requires API token and an active keboola bucket
+    # ValueError: Root URL is required.
+    doCheck = false;
+
+    checkInputs = [
+      responses
+    ];
+
+    checkPhase = ''
+      runHook preCheck
+      ${python.interpreter} -m unittest discover
+      runHook postCheck
+    '';
+
+    pythonImportsCheck = [
+      "kbcstorage"
+      "kbcstorage.buckets"
+      "kbcstorage.client"
+      "kbcstorage.tables"
+    ];
+
+    meta = with lib; {
+      description = "Keboola Connection Storage API client";
+      homepage = "https://github.com/keboola/sapi-python-client";
+      maintainers = with maintainers; [ mrmebelman ];
+      license = licenses.mit;
+    };
+}
diff --git a/pkgs/development/python-modules/keepalive/default.nix b/pkgs/development/python-modules/keepalive/default.nix
index b6daec6ca2006..6a4fcdb265f47 100644
--- a/pkgs/development/python-modules/keepalive/default.nix
+++ b/pkgs/development/python-modules/keepalive/default.nix
@@ -19,6 +19,7 @@ buildPythonPackage rec {
     description = "An HTTP handler for `urllib2` that supports HTTP 1.1 and keepalive";
     homepage = "https://github.com/wikier/keepalive";
     license = licenses.asl20;
+    broken = true; # uses use_2to3, which is no longer supported for setuptools>=58
   };
 
 }
diff --git a/pkgs/development/python-modules/keras/default.nix b/pkgs/development/python-modules/keras/default.nix
index 2b9a269e280fc..dbdebefdb5a08 100644
--- a/pkgs/development/python-modules/keras/default.nix
+++ b/pkgs/development/python-modules/keras/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "keras";
-  version = "2.7.0";
+  version = "2.8.0";
   format = "wheel";
 
   src = fetchPypi {
     inherit format pname version;
-    sha256 = "0c33ae1f728064ca0d35dfba999e9c316f03623bf5688c82fb83cc74a80ea248";
+    sha256 = "sha256-dE053GV33NgP9KTUFUnpK3fWoX4O3VikMdMGVuKbyU4=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/kiss-headers/default.nix b/pkgs/development/python-modules/kiss-headers/default.nix
index 0ceced85cacfe..43d1f784fab94 100644
--- a/pkgs/development/python-modules/kiss-headers/default.nix
+++ b/pkgs/development/python-modules/kiss-headers/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "kiss-headers";
-  version = "2.3.0";
+  version = "2.3.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "Ousret";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-/eTRyxFyAKQMzE/JjdoEN3w0lRiaIJcsJHTWV8M0CYQ=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-xPjw/uJTmvmQZDrI3i1KTUeAZuDF1mc13hvFBl8Erh0=";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/kivy-garden/default.nix b/pkgs/development/python-modules/kivy-garden/default.nix
index edfad0c9b91dc..1475b4448230d 100644
--- a/pkgs/development/python-modules/kivy-garden/default.nix
+++ b/pkgs/development/python-modules/kivy-garden/default.nix
@@ -1,29 +1,31 @@
 { lib
-, buildPythonPackage, fetchPypi
+, buildPythonPackage
+, fetchFromGitHub
 , requests
 }:
 
 buildPythonPackage rec {
   pname = "kivy-garden";
-  version = "0.1.4";
+  version = "0.1.5";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0wkcpr2zc1q5jb0bi7v2dgc0vs5h1y7j42mviyh764j2i0kz8mn2";
+  src = fetchFromGitHub {
+    owner = "kivy-garden";
+    repo = "garden";
+    rev = "v${version}";
+    hash = "sha256-xOMBPFKV7mTa51Q0VKja7b0E509IaWjwlJVlSRVdct8=";
   };
 
   propagatedBuildInputs = [ requests ];
 
   pythonImportsCheck = [ "garden" ];
 
-  # There are no tests in the Pypi archive and building from source is not
-  # easily feasible because the build is done using buildozer and multiple
-  # repositories.
+  # There are no tests
   doCheck = false;
 
   meta = with lib; {
     description = "The kivy garden installation script, split into its own package for convenient use in buildozer.";
-    homepage = "https://pypi.python.org/pypi/kivy-garden";
+    homepage = "https://github.com/kivy-garden/garden";
     license = licenses.mit;
     maintainers = with maintainers; [ risson ];
   };
diff --git a/pkgs/development/python-modules/kiwisolver/default.nix b/pkgs/development/python-modules/kiwisolver/default.nix
index e5649c58e465a..b968fa3a50aa6 100644
--- a/pkgs/development/python-modules/kiwisolver/default.nix
+++ b/pkgs/development/python-modules/kiwisolver/default.nix
@@ -4,30 +4,42 @@
 , stdenv
 , libcxx
 , cppy
+, setuptools-scm
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "kiwisolver";
-  version = "1.3.2";
+  version = "1.4.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fc4453705b81d03568d5b808ad8f09c77c47534f6ac2e72e733f9ca4714aa75c";
+    hash = "sha256-f2BtkbiogWvkdlE6d/0wq+ZiJwOb1vi0BsNIywJH3Mk=";
   };
 
-  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1";
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin [
+    "-I${lib.getDev libcxx}/include/c++/v1"
+  ];
 
   nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  buildInputs = [
     cppy
   ];
 
-  # Does not include tests
-  doCheck = false;
+  pythonImportsCheck = [
+    "kiwisolver"
+  ];
 
-  meta = {
-    description = "A fast implementation of the Cassowary constraint solver";
+  meta = with lib; {
+    description = "Implementation of the Cassowary constraint solver";
     homepage = "https://github.com/nucleic/kiwi";
-    license = lib.licenses.bsd3;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/kubernetes/default.nix b/pkgs/development/python-modules/kubernetes/default.nix
index 8508e5178f528..61333cc52bd71 100644
--- a/pkgs/development/python-modules/kubernetes/default.nix
+++ b/pkgs/development/python-modules/kubernetes/default.nix
@@ -11,7 +11,7 @@
 , python-dateutil
 , pyyaml
 , requests
-, requests_oauthlib
+, requests-oauthlib
 , urllib3
 , websocket-client
 
@@ -24,6 +24,7 @@ buildPythonPackage rec {
   pname = "kubernetes";
   version = "20.13.0";
   format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
@@ -41,7 +42,7 @@ buildPythonPackage rec {
     python-dateutil
     pyyaml
     requests
-    requests_oauthlib
+    requests-oauthlib
     urllib3
     websocket-client
   ];
@@ -61,7 +62,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Kubernetes python client";
+    description = "Kubernetes Python client";
     homepage = "https://github.com/kubernetes-client/python";
     license = licenses.asl20;
     maintainers = with maintainers; [ lsix ];
diff --git a/pkgs/development/python-modules/labelbox/default.nix b/pkgs/development/python-modules/labelbox/default.nix
index c89782d4027e5..27f05d83aa058 100644
--- a/pkgs/development/python-modules/labelbox/default.nix
+++ b/pkgs/development/python-modules/labelbox/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "labelbox";
-  version = "3.11.1";
+  version = "3.15.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "Labelbox";
     repo = "labelbox-python";
-    rev = "v${version}";
-    sha256 = "114h9phvbdknyvqdnjba3pd7i4iznffhgx9d569lq0hfla3hl61a";
+    rev = "v.${version}";
+    sha256 = "sha256-pJkDC/2EDPWbIw9WqV9kdYmr4X6apXtholzd0IYjgDg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/labgrid/default.nix b/pkgs/development/python-modules/labgrid/default.nix
index c95acdf68e30c..2032eb33d60cc 100644
--- a/pkgs/development/python-modules/labgrid/default.nix
+++ b/pkgs/development/python-modules/labgrid/default.nix
@@ -6,6 +6,7 @@
 , jinja2
 , lib
 , mock
+, packaging
 , pexpect
 , psutil
 , pyserial
@@ -44,6 +45,7 @@ buildPythonPackage rec {
     attrs
     autobahn
     jinja2
+    packaging
     pexpect
     pyserial
     pyudev
diff --git a/pkgs/development/python-modules/ledgerblue/default.nix b/pkgs/development/python-modules/ledgerblue/default.nix
index ff489f4cf222b..b52a8e5b4c8e9 100644
--- a/pkgs/development/python-modules/ledgerblue/default.nix
+++ b/pkgs/development/python-modules/ledgerblue/default.nix
@@ -1,25 +1,48 @@
-{ lib, fetchPypi, buildPythonPackage, hidapi
-, pycrypto, pillow, protobuf, future, ecpy, python-u2flib-host, pycryptodomex
+{ lib
+, buildPythonPackage
+, ecpy
+, fetchPypi
+, future
+, hidapi
+, pillow
+, protobuf
+, pycrypto
+, pycryptodomex
+, pythonOlder
+, python-u2flib-host
 , websocket-client
 }:
 
 buildPythonPackage rec {
   pname = "ledgerblue";
-  version = "0.1.41";
+  version = "0.1.42";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7246a1a0442a63aff0b5de2796d306f0033e1937b3c9b9c2a92c9101cde4fe8d";
+    hash = "sha256-UNquetZ1sCLO9T5p5b3jTSu+52xuc5XdyHNKsvvPdck=";
   };
 
   propagatedBuildInputs = [
-    hidapi pycrypto pillow protobuf future ecpy python-u2flib-host pycryptodomex websocket-client
+    ecpy
+    future
+    hidapi
+    pillow
+    protobuf
+    pycrypto
+    pycryptodomex
+    python-u2flib-host
+    websocket-client
   ];
 
   # No tests
   doCheck = false;
 
-  pythonImportsCheck = [ "ledgerblue" ];
+  pythonImportsCheck = [
+    "ledgerblue"
+  ];
 
   meta = with lib; {
     description = "Python library to communicate with Ledger Blue/Nano S";
diff --git a/pkgs/development/python-modules/lektor/default.nix b/pkgs/development/python-modules/lektor/default.nix
index f88e14d0a3e7c..020506d519100 100644
--- a/pkgs/development/python-modules/lektor/default.nix
+++ b/pkgs/development/python-modules/lektor/default.nix
@@ -1,55 +1,84 @@
 { lib
+, Babel
 , buildPythonPackage
-, fetchFromGitHub
 , click
-, watchdog
 , exifread
-, requests
-, mistune
+, fetchFromGitHub
+, filetype
+, flask
 , inifile
-, Babel
 , jinja2
-, flask
+, marshmallow
+, marshmallow-dataclass
+, mistune
+, pip
 , pyopenssl
-, ndg-httpsclient
-, pytestCheckHook
-, pytest-cov
+, pytest-click
 , pytest-mock
 , pytest-pylint
-, pytest-click
-, isPy27
-, functools32
+, pytestCheckHook
+, pythonOlder
+, python-slugify
+, requests
 , setuptools
+, watchdog
+, werkzeug
 }:
 
 buildPythonPackage rec {
   pname = "lektor";
-  version = "3.3.1";
+  version = "3.3.3";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "lektor";
-    repo = "lektor";
-    rev = version;
-    sha256 = "04gn3jybqf9wc6l9mi0djpki60adnk7gppmv987ik676k5x8f1kk";
+    repo = pname;
+    rev = "refs/tags/v${version}";
+    hash = "sha256-3jPN4VQdIUVjSSGJxPek2RrnXzCwkDxoEBqk4vuL+nc=";
   };
 
   propagatedBuildInputs = [
-    click watchdog exifread requests mistune inifile Babel jinja2
-    flask pyopenssl ndg-httpsclient setuptools
-  ] ++ lib.optionals isPy27 [ functools32 ];
+    Babel
+    click
+    exifread
+    filetype
+    flask
+    inifile
+    jinja2
+    marshmallow
+    marshmallow-dataclass
+    mistune
+    pip
+    pyopenssl
+    python-slugify
+    requests
+    setuptools
+    watchdog
+    werkzeug
+  ];
 
   checkInputs = [
-    pytestCheckHook pytest-cov pytest-mock pytest-pylint pytest-click
+    pytest-click
+    pytest-mock
+    pytest-pylint
+    pytestCheckHook
   ];
 
-  # many errors -- tests assume inside of git repo, linting errors 13/317 fail
-  doCheck = false;
+  pythonImportsCheck = [
+    "lektor"
+  ];
+
+  disabledTests = [
+    # Test requires network access
+    "test_path_installed_plugin_is_none"
+  ];
 
   meta = with lib; {
     description = "A static content management system";
-    homepage    = "https://www.getlektor.com/";
-    license     = licenses.bsd0;
+    homepage = "https://www.getlektor.com/";
+    license = licenses.bsd0;
     maintainers = with maintainers; [ costrouc ];
   };
-
 }
diff --git a/pkgs/development/python-modules/levenshtein/default.nix b/pkgs/development/python-modules/levenshtein/default.nix
index 64a9a3b5e996b..ebc1c51137534 100644
--- a/pkgs/development/python-modules/levenshtein/default.nix
+++ b/pkgs/development/python-modules/levenshtein/default.nix
@@ -2,14 +2,17 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, cmake
+, cython
 , pytestCheckHook
 , rapidfuzz
+, scikit-build
 }:
 
 buildPythonPackage rec {
   pname = "levenshtein";
-  version = "0.17.0";
-  format = "setuptools";
+  version = "0.18.1";
+  format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
@@ -17,13 +20,18 @@ buildPythonPackage rec {
     owner = "maxbachmann";
     repo = "Levenshtein";
     rev = "v${version}";
-    sha256 = "1a14cw2314jb5lrm979zipzk3av4630lxdr4jzj2wl5qh3yw4w52";
+    # https://github.com/maxbachmann/Levenshtein/issues/22
+    fetchSubmodules = true;
+    sha256 = "sha256-WREYdD5MFOpCzH4BSceRpzQZdpi3Xxxn0DpMvDsNlGo=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace "rapidfuzz >= 1.8.2, < 1.9" "rapidfuzz"
-  '';
+  nativeBuildInputs = [
+    cmake
+    cython
+    scikit-build
+  ];
+
+  dontUseCmakeConfigure = true;
 
   propagatedBuildInputs = [
     rapidfuzz
diff --git a/pkgs/development/python-modules/libcst/default.nix b/pkgs/development/python-modules/libcst/default.nix
index 0c4a8985e4015..ccd12e4aaae3b 100644
--- a/pkgs/development/python-modules/libcst/default.nix
+++ b/pkgs/development/python-modules/libcst/default.nix
@@ -1,12 +1,16 @@
 { lib
+, stdenv
 , buildPythonPackage
 , dataclasses
 , fetchFromGitHub
 , hypothesis
+, libiconv
 , pytestCheckHook
 , python
 , pythonOlder
 , pyyaml
+, rustPlatform
+, setuptools-rust
 , setuptools-scm
 , typing-extensions
 , typing-inspect
@@ -14,8 +18,8 @@
 
 buildPythonPackage rec {
   pname = "libcst";
-  version = "0.3.23";
-  format = "setuptools";
+  version = "0.4.1";
+  format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
@@ -23,9 +27,18 @@ buildPythonPackage rec {
     owner = "instagram";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1r4aiqpndqa75119faknsghi7zxyjrx5r6i7cb3d0liwiqrkzrvx";
+    sha256 = "sha256-soAlt1KBpCn5JxM1b2LZ3vOpBn9HPGdbm+BBYbyEkfE=";
   };
 
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    sourceRoot = "source/${cargoRoot}";
+    name = "${pname}-${version}";
+    hash = "sha256:1rz1c0dv3f1h2m5hwdisl3rbqnmifbva4f0c4vygk7rh1q27l515";
+  };
+
+  cargoRoot = "native";
+
   postPatch = ''
     # test try to format files, which isn't necessary when consuming releases
     sed -i libcst/codegen/generate.py \
@@ -35,8 +48,12 @@ buildPythonPackage rec {
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
 
   nativeBuildInputs = [
+    setuptools-rust
     setuptools-scm
-  ];
+    rustPlatform.cargoSetupHook
+  ] ++ (with rustPlatform; [ rust.cargo rust.rustc ]);
+
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   propagatedBuildInputs = [
     hypothesis
diff --git a/pkgs/development/python-modules/libevdev/default.nix b/pkgs/development/python-modules/libevdev/default.nix
index 4a4ba489e0a62..494e887c79bca 100644
--- a/pkgs/development/python-modules/libevdev/default.nix
+++ b/pkgs/development/python-modules/libevdev/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "libevdev";
-  version = "0.9";
+  version = "0.10";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17agnigmzscmdjqmrylg1lza03hwjhgxbpf4l705s6i7p7ndaqrs";
+    sha256 = "sha256-9LM2Ftr6qmQYysCxso+XJSthwJdOU01J+yL8ZWbtwRM=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/libgpuarray/default.nix b/pkgs/development/python-modules/libgpuarray/default.nix
index 2be115ae3658e..89a83df42684f 100644
--- a/pkgs/development/python-modules/libgpuarray/default.nix
+++ b/pkgs/development/python-modules/libgpuarray/default.nix
@@ -9,7 +9,7 @@
 , six
 , nose
 , Mako
-, cudaSupport ? false, cudatoolkit
+, cudaSupport ? false, cudaPackages
 , openclSupport ? true, ocl-icd, clblas
 }:
 
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   configurePhase = "cmakeConfigurePhase";
 
   libraryPath = lib.makeLibraryPath (
-    lib.optionals cudaSupport [ cudatoolkit.lib cudatoolkit.out ]
+    lib.optionals cudaSupport (with cudaPackages; [ cudatoolkit.lib cudatoolkit.out ])
     ++ lib.optionals openclSupport ([ clblas ] ++ lib.optional (!stdenv.isDarwin) ocl-icd)
   );
 
diff --git a/pkgs/development/python-modules/libtmux/default.nix b/pkgs/development/python-modules/libtmux/default.nix
index 7a7e116aa2212..74515e1c1396a 100644
--- a/pkgs/development/python-modules/libtmux/default.nix
+++ b/pkgs/development/python-modules/libtmux/default.nix
@@ -3,19 +3,20 @@
 , buildPythonPackage
 , poetry-core
 , pytestCheckHook
-, pkgs
+, procps
+, tmux
 }:
 
 buildPythonPackage rec {
   pname = "libtmux";
-  version = "0.10.3";
+  version = "0.11.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "tmux-python";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256:0syj8m4x2mcq96b76b7h75dsmcai22m15pfgkk90rpg7rp6sn772";
+    hash = "sha256-QbKqS40la6UGZENyGEw5kXigzexp3q7ff43fKlQ9GqE=";
   };
 
   nativeBuildInputs = [
@@ -23,8 +24,9 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pkgs.procps
-    pkgs.tmux
+    procps
+    tmux
+
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python-modules/lightwave2/default.nix b/pkgs/development/python-modules/lightwave2/default.nix
index f840a2186cfb7..1f2558ef7611b 100644
--- a/pkgs/development/python-modules/lightwave2/default.nix
+++ b/pkgs/development/python-modules/lightwave2/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "lightwave2";
-  version = "0.8.1";
+  version = "0.8.14";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-UULOQawsY2N0xxYlgIZKs8Xyl0XDqC6fSSKvo8ZBEcY=";
+    sha256 = "sha256-zUPo81MC1K830ss7ECfawiYU1RNah9PIKAz1Uqz7c/w=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/limits/default.nix b/pkgs/development/python-modules/limits/default.nix
index 9a19dda15789a..7cb622df047ec 100644
--- a/pkgs/development/python-modules/limits/default.nix
+++ b/pkgs/development/python-modules/limits/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "limits";
-  version = "2.2.0";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "da6346f0dcf85f17f0f1cc709c3408a3058cf6fee68313c288127c287237b411";
+    sha256 = "sha256-jiK2PfJjECB6d7db1HRZnwpGE6fZFjZQ7TpCjpzHrjU=";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/lmnotify/default.nix b/pkgs/development/python-modules/lmnotify/default.nix
index 4e5526a424dae..bf9d857dc74d2 100644
--- a/pkgs/development/python-modules/lmnotify/default.nix
+++ b/pkgs/development/python-modules/lmnotify/default.nix
@@ -3,28 +3,39 @@
 , fetchPypi
 , oauthlib
 , requests
-, requests_oauthlib
+, requests-oauthlib
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "lmnotify";
   version = "0.0.6";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-cCP7BU2f7QJe9gAI298cvkp3OGijvBv8G1RN7qfZ5PE=";
+    hash = "sha256-cCP7BU2f7QJe9gAI298cvkp3OGijvBv8G1RN7qfZ5PE=";
   };
 
-  propagatedBuildInputs = [ oauthlib requests requests_oauthlib ];
+  propagatedBuildInputs = [
+    oauthlib
+    requests
+    requests-oauthlib
+  ];
 
-  doCheck = false; # no tests exist
+  # Module has no tests
+  doCheck = false;
 
-  pythonImportsCheck = [ "lmnotify" ];
+  pythonImportsCheck = [
+    "lmnotify"
+  ];
 
   meta = with lib; {
     description = "Python package for sending notifications to LaMetric Time";
     homepage = "https://github.com/keans/lmnotify";
-    maintainers = with maintainers; [ rhoriguchi ];
     license = licenses.mit;
+    maintainers = with maintainers; [ rhoriguchi ];
   };
 }
diff --git a/pkgs/development/python-modules/losant-rest/default.nix b/pkgs/development/python-modules/losant-rest/default.nix
index 6dac34a9f7a84..8056e93c51a78 100644
--- a/pkgs/development/python-modules/losant-rest/default.nix
+++ b/pkgs/development/python-modules/losant-rest/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "losant-rest";
-  version = "1.16.0";
+  version = "1.16.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "Losant";
     repo = "losant-rest-python";
     rev = "v${version}";
-    sha256 = "sha256-1beURMpQ2klwupcd4wJZud6MnAKzwXPvVlobk/eSvXo=";
+    sha256 = "sha256-mdSqGeVfZTSW65eQiYerjlq6afq2dyYjUi38DVsI6wQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/lru-dict/default.nix b/pkgs/development/python-modules/lru-dict/default.nix
new file mode 100644
index 0000000000000..b075ead342973
--- /dev/null
+++ b/pkgs/development/python-modules/lru-dict/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+}:
+
+let
+  pname = "lru-dict";
+  version = "1.1.7";
+in
+buildPythonPackage {
+  inherit pname version;
+  format = "setuptools";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-RbgfZ9dTQdRDOrreeZpH6cQqniKhGFMdy15UmGQDLXw=";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "lru"
+  ];
+
+  meta = with lib; {
+    description = "Fast and memory efficient LRU cache for Python";
+    homepage = "https://github.com/amitdev/lru-dict";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/luxtronik/default.nix b/pkgs/development/python-modules/luxtronik/default.nix
index 7466397ebb71e..7f7225bdb92a1 100644
--- a/pkgs/development/python-modules/luxtronik/default.nix
+++ b/pkgs/development/python-modules/luxtronik/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "luxtronik";
-  version = "0.3.11";
+  version = "0.3.12";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "Bouni";
     repo = "python-luxtronik";
     rev = version;
-    sha256 = "sha256-pngtkEuWmOD1MG7/Bh+8iqCxU0l/fGHA8uZxYoxOE5Y=";
+    sha256 = "sha256-qQwMahZ3EzXzI7FyTL71WzDpLqmIgVYxiJ0IGvlw8dY=";
   };
 
   # Project has no tests
diff --git a/pkgs/development/python-modules/lxmf/default.nix b/pkgs/development/python-modules/lxmf/default.nix
new file mode 100644
index 0000000000000..c6044844a62f6
--- /dev/null
+++ b/pkgs/development/python-modules/lxmf/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, rns
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "lxmf";
+  version = "0.1.5";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "markqvist";
+    repo = "lxmf";
+    rev = "refs/tags/${version}";
+    hash = "sha256-9JG/EnL7vW4P7QiT6Xa0GLfmu1JeM0dlFSp3VRE47NI=";
+  };
+
+  propagatedBuildInputs = [
+    rns
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "LXMF"
+  ];
+
+  meta = with lib; {
+    description = "Lightweight Extensible Message Format for Reticulum";
+    homepage = "https://github.com/markqvist/lxmf";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/lxml/default.nix b/pkgs/development/python-modules/lxml/default.nix
index 2c549b6830a16..3ef230eb8e8d1 100644
--- a/pkgs/development/python-modules/lxml/default.nix
+++ b/pkgs/development/python-modules/lxml/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "lxml";
-  version = "4.7.1";
+  version = "4.8.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "lxml-${version}";
-    sha256 = "0xji4kcw1fl3nqg04q6zlympkx2kv2s1r1p18763dshgpisqgiq4";
+    sha256 = "sha256-ppyLn8B0YFQivRCOE8TjKGdDDQHbb7UdTUkevznoVC8=";
   };
 
   # setuptoolsBuildPhase needs dependencies to be passed through nativeBuildInputs
diff --git a/pkgs/development/python-modules/lz4/default.nix b/pkgs/development/python-modules/lz4/default.nix
index 9e2cc9b31e155..c6966e632f05e 100644
--- a/pkgs/development/python-modules/lz4/default.nix
+++ b/pkgs/development/python-modules/lz4/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, python
 
 # native inputs
 , pkgconfig
@@ -14,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "python-lz4";
-  version = "3.1.12";
+  version = "4.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
@@ -24,7 +25,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fqt9aJGqZpfbiYtU8cmm7UQaixZwbTKFBwRfR1B/qic=";
+    sha256 = "sha256-9gp67i2fotvFOpkaQZ82/YKnDEs3DnzXfuNCVRJg88I=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
@@ -50,13 +51,13 @@ buildPythonPackage rec {
     psutil
   ];
 
-  # leave build directory, so the installed library gets imported
-  preCheck = ''
-    pushd tests
-  '';
+  # for lz4.steam
+  PYLZ4_EXPERIMENTAL = true;
 
-  postCheck = ''
-    popd
+  # prevent local lz4 directory from getting imported as it lacks native extensions
+  preCheck = ''
+    rm -r lz4
+    export PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/magicgui/default.nix b/pkgs/development/python-modules/magicgui/default.nix
index 03ca9d7915971..e437ee7290b26 100644
--- a/pkgs/development/python-modules/magicgui/default.nix
+++ b/pkgs/development/python-modules/magicgui/default.nix
@@ -9,20 +9,29 @@
 , pyside2
 , psygnal
 , docstring-parser
+, napari # a reverse-dependency, for tests
 }: buildPythonPackage rec {
   pname = "magicgui";
-  version = "0.3.0";
+  version = "0.3.7";
+
+  format = "pyproject";
+
   src = fetchFromGitHub {
     owner = "napari";
     repo = "magicgui";
     rev = "v${version}";
-    sha256 = "sha256-DvL1szk2RoCrpisjp0BVNL6qFZtYc2oYDenX59Cxbug=";
+    sha256 = "sha256-LYXNNr5lS3ibQk2NIopZkB8kzC7j3yY8moGMk0Gr+hU=";
   };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
   nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ typing-extensions qtpy pyside2 psygnal docstring-parser ];
   checkInputs = [ pytestCheckHook pytest-mypy-plugins ];
+
   doCheck = false; # Reports "Fatal Python error"
-  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  passthru.tests = { inherit napari; };
 
   meta = with lib; {
     description = "Build GUIs from python functions, using magic.  (napari/magicgui)";
diff --git a/pkgs/development/python-modules/mailchecker/default.nix b/pkgs/development/python-modules/mailchecker/default.nix
index ab609b597a4e7..61e4c3d21f07b 100644
--- a/pkgs/development/python-modules/mailchecker/default.nix
+++ b/pkgs/development/python-modules/mailchecker/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "mailchecker";
-  version = "4.1.13";
+  version = "4.1.15";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-4ez18K9ksVGjzspHHcw/Ja6hxoKTkYLBFn65m7VBWYk=";
+    hash = "sha256-DOtLJKNvmj5dlveZX9sScfJZa3SY7GH7xfZHhIsybVQ=";
   };
 
   # Module has no tests
diff --git a/pkgs/development/python-modules/manticore/default.nix b/pkgs/development/python-modules/manticore/default.nix
index 0c36f2cc6cc6e..2e1bff7e21ef0 100644
--- a/pkgs/development/python-modules/manticore/default.nix
+++ b/pkgs/development/python-modules/manticore/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "manticore";
-  version = "0.3.6";
+  version = "0.3.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     owner = "trailofbits";
     repo = "manticore";
     rev = version;
-    sha256 = "sha256-L112YwrBcdcLBeBsPLWt3C57u2WDvGLq50EzW9ojdyg=";
+    sha256 = "sha256-+17VBfAtkZZIi3SF5Num1Uqg3WjIpgbz3Jx65rD5zkM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/mariadb/default.nix b/pkgs/development/python-modules/mariadb/default.nix
index 987fe203edb79..93260e9aac268 100644
--- a/pkgs/development/python-modules/mariadb/default.nix
+++ b/pkgs/development/python-modules/mariadb/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "mariadb";
-  version = "1.0.10";
+  version = "1.0.11";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-eQKLpgURc9rRrQvnUYOJyrcCOfkrT/i4gT2uVcPyxT0=";
+    hash = "sha256-dpFsiSvJNsWw824loUEfZRp7fOl4mSrjqN5+KD79rL8=";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/markupsafe/default.nix b/pkgs/development/python-modules/markupsafe/default.nix
index 12845da7e37a8..0c36299b1f123 100644
--- a/pkgs/development/python-modules/markupsafe/default.nix
+++ b/pkgs/development/python-modules/markupsafe/default.nix
@@ -7,13 +7,15 @@
 
 buildPythonPackage rec {
   pname = "markupsafe";
-  version = "2.0.1";
-  disabled = pythonOlder "3.6";
+  version = "2.1.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     pname = "MarkupSafe";
     inherit version;
-    sha256 = "02k2ynmqvvd0z0gakkf8s4idyb606r7zgga41jrkhqmigy06fk2r";
+    sha256 = "sha256-f5EZfMnkj5idEuTm+8RklcRGY238gbnM9Quw7HS5HUs=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/marshmallow-dataclass/default.nix b/pkgs/development/python-modules/marshmallow-dataclass/default.nix
index 4b36ee9b74ef1..730254bcf8257 100644
--- a/pkgs/development/python-modules/marshmallow-dataclass/default.nix
+++ b/pkgs/development/python-modules/marshmallow-dataclass/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "marshmallow-dataclass";
-  version = "8.5.3";
+  version = "8.5.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "lovasoa";
     repo = "marshmallow_dataclass";
     rev = "v${version}";
-    sha256 = "0mngkjfs2nxxr0y77n429hb22rmjxbnn95j4vwqr9y6q16bqxs0w";
+    sha256 = "sha256-sozq+L3pa9iprAWtQd/L+LCfTWfDue04WzQ/fbM0mps=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix b/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
index 9887f42bd8f39..e7921a29f54ad 100644
--- a/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "marshmallow-sqlalchemy";
-  version = "0.27.0";
+  version = "0.28.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1521b129564444648c523a38f6446c137f1aae5c9c7de1ec151d5ebf03fd407d";
+    sha256 = "sha256-+2sGaG84/sLqDsU6XuSXkhlAnisiYPm8keS0MQXRl4I=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/matchpy/default.nix b/pkgs/development/python-modules/matchpy/default.nix
index 8ee3d60f80101..efcf1741ab415 100644
--- a/pkgs/development/python-modules/matchpy/default.nix
+++ b/pkgs/development/python-modules/matchpy/default.nix
@@ -1,11 +1,9 @@
 { lib
 , buildPythonPackage
-, fetchpatch
-, fetchPypi
+, fetchFromGitHub
 , hopcroftkarp
 , multiset
-, pytest
-, pytest-runner
+, pytestCheckHook
 , hypothesis
 , setuptools-scm
 , isPy27
@@ -13,37 +11,45 @@
 
 buildPythonPackage rec {
   pname = "matchpy";
-  version = "0.5.1";
+  version = "0.5.5"; # Don't upgrade to 4.3.1, this tag is very old
   disabled = isPy27;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1vvf1cd9kw5z1mzvypc9f030nd18lgvvjc8j56b1s9b7dyslli2r";
+  src = fetchFromGitHub {
+    owner = "HPAC";
+    repo = pname;
+    rev = version;
+    hash = "sha256-n5rXIjqVQZzEbfIZVQiGLh2PR1DHAJ9gumcrbvwnasA=";
   };
 
-  patches = [
-    # Fix tests for pytest 4. Remove with the next release
-    (fetchpatch {
-      url = "https://github.com/HPAC/matchpy/commit/b405a2717a7793d58c47b2e2197d9d00c06fb13c.patch";
-      includes = [ "tests/conftest.py" ];
-      sha256 = "1b6gqf2vy9qxg384nqr9k8il335afhbdmlyx4vhd8r8rqpv7gax9";
-    })
-  ];
-
   postPatch = ''
+    sed -i '/pytest-runner/d' setup.cfg
+
     substituteInPlace setup.cfg \
-       --replace "hypothesis>=3.6,<4.0" "hypothesis" \
-       --replace "pytest>=3.0,<4.0" "pytest"
+      --replace "multiset>=2.0,<3.0" "multiset"
   '';
 
-  buildInputs = [ setuptools-scm pytest-runner ];
-  checkInputs = [ pytest hypothesis ];
-  propagatedBuildInputs = [ hopcroftkarp multiset ];
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    hopcroftkarp
+    multiset
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    hypothesis
+  ];
+
+  pythonImportsCheck = [
+    "matchpy"
+  ];
 
   meta = with lib; {
     description = "A library for pattern matching on symbolic expressions";
     homepage = "https://github.com/HPAC/matchpy";
     license = licenses.mit;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/matrix-nio/default.nix b/pkgs/development/python-modules/matrix-nio/default.nix
index 665167e290ea9..724a1459b7794 100644
--- a/pkgs/development/python-modules/matrix-nio/default.nix
+++ b/pkgs/development/python-modules/matrix-nio/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace 'aiofiles = "^0.6.0"' 'aiofiles = "*"' \
+      --replace 'h11 = "^0.12.0"' 'h11 = "*"' \
       --replace 'jsonschema = "^3.2.0"' 'jsonschema = "*"' \
       --replace 'cachetools = { version = "^4.2.1", optional = true }' 'cachetools = { version = "*", optional = true }'
   '';
diff --git a/pkgs/development/python-modules/mccabe/default.nix b/pkgs/development/python-modules/mccabe/default.nix
index f20cb18b48852..f47e4e4d4b6e9 100644
--- a/pkgs/development/python-modules/mccabe/default.nix
+++ b/pkgs/development/python-modules/mccabe/default.nix
@@ -1,15 +1,27 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, pytest-runner }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytest
+, hypothesis
+, hypothesmith
+, python
+}:
 
 buildPythonPackage rec {
   pname = "mccabe";
-  version = "0.6.1";
+  version = "0.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07w3p1qm44hgxf3vvwz84kswpsx6s7kvaibzrsx5dzm0hli1i3fx";
+    sha256 = "sha256-NI4CQMM7YLvfTlIxku+RnyjLLD19XHeU90AJKQ8jYyU=";
   };
 
-  buildInputs = [ pytest pytest-runner ];
+  buildInputs = [
+    pytest
+  ];
+
+  # https://github.com/PyCQA/mccabe/issues/93
+  doCheck = false;
 
   meta = with lib; {
     description = "McCabe checker, plugin for flake8";
diff --git a/pkgs/development/python-modules/md-toc/default.nix b/pkgs/development/python-modules/md-toc/default.nix
index a37e82a62d34e..5d3cde1d038c6 100644
--- a/pkgs/development/python-modules/md-toc/default.nix
+++ b/pkgs/development/python-modules/md-toc/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "md-toc";
-  version = "8.1.1";
+  version = "8.1.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "frnmst";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Dlqia+B7WJZlFGlIhgUWdND1qhSS/FOPoFH+uim6i8I=";
+    sha256 = "sha256-/Hi2CW3aqbvCr7xGHD9lAe9U84waSjVfTfWq76NXNT4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/mdurl/default.nix b/pkgs/development/python-modules/mdurl/default.nix
index 37b3e9ad56ac5..da44a1dbbc3d6 100644
--- a/pkgs/development/python-modules/mdurl/default.nix
+++ b/pkgs/development/python-modules/mdurl/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "mdurl";
-  version = "0.1.0";
+  version = "0.1.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "hukkin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-AVklWFc4o5R9OzS9BYauuOaxm89P/Ih5l3Vrb2P0El4=";
+    sha256 = "sha256-SBJSs+i+I0jF90i3o6BUgLCDR6Et34fXEmQ7fbDoAbA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/mechanize/default.nix b/pkgs/development/python-modules/mechanize/default.nix
index aa309ff33cea9..5b0ca1735cbd8 100644
--- a/pkgs/development/python-modules/mechanize/default.nix
+++ b/pkgs/development/python-modules/mechanize/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "mechanize";
-  version = "0.4.7";
+  version = "0.4.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1773a8f5818398e0010e781dc0f942cd88b107a57424c904d545cd827c216809";
+    sha256 = "sha256-XoasB3c1fgBusEzSj37Z+BHUjf+mA9OJGsbSuSKA3JE=";
   };
 
   propagatedBuildInputs = [ html5lib ];
diff --git a/pkgs/development/python-modules/mergedb/default.nix b/pkgs/development/python-modules/mergedb/default.nix
new file mode 100644
index 0000000000000..b31d4ddf19280
--- /dev/null
+++ b/pkgs/development/python-modules/mergedb/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, colorama
+, fetchPypi
+, jinja2
+, pytestCheckHook
+, pythonOlder
+, pyyaml
+, setuptools
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "mergedb";
+  version = "0.1.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "2034c18dca23456c5b166b63d94300bcd8ec9f386e6cd639c2f66e141c0313f9";
+  };
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    pyyaml
+    colorama
+    jinja2
+    setuptools
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "mergedb"
+  ];
+
+  meta = with lib; {
+    description = "A tool/library for deep merging YAML files";
+    homepage = "https://github.com/graysonhead/mergedb";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ graysonhead ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/merkletools/default.nix b/pkgs/development/python-modules/merkletools/default.nix
index 92acdaf58ed42..a57f926a615f5 100644
--- a/pkgs/development/python-modules/merkletools/default.nix
+++ b/pkgs/development/python-modules/merkletools/default.nix
@@ -15,6 +15,6 @@ buildPythonPackage rec {
     description = "Python tools for creating Merkle trees, generating Merkle proofs, and verification of Merkle proofs";
     homepage = "https://github.com/Tierion/pymerkletools";
     license = licenses.mit;
-    maintainers = with maintainers; [ chiiruno ];
+    maintainers = with maintainers; [ Madouura ];
   };
 }
diff --git a/pkgs/development/python-modules/meshio/default.nix b/pkgs/development/python-modules/meshio/default.nix
index 54f8431ba2792..1df5a7f478074 100644
--- a/pkgs/development/python-modules/meshio/default.nix
+++ b/pkgs/development/python-modules/meshio/default.nix
@@ -6,22 +6,24 @@
 , h5py
 , exdown
 , pytestCheckHook
+, rich
 }:
 
 buildPythonPackage rec {
   pname = "meshio";
-  version = "5.2.2";
+  version = "5.3.4";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "209885ac31b00155e43c27859d1aff0ba7f97f319ee7bed453a8b9e1677a4e52";
+    sha256 = "sha256-4kBpLX/yecErE8bl17QDYpqGrStE6SMJWLPwDB7DafA=";
   };
 
   propagatedBuildInputs = [
     numpy
     netcdf4
     h5py
+    rich
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/metakernel/default.nix b/pkgs/development/python-modules/metakernel/default.nix
index f94ddb12ac5d2..417b4d914e632 100644
--- a/pkgs/development/python-modules/metakernel/default.nix
+++ b/pkgs/development/python-modules/metakernel/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "metakernel";
-  version = "0.28.2";
+  version = "0.29.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8811a4497444495639ef000902f4c6e8a7e2c57da1d47a8a24bcc9083548b389";
+    sha256 = "sha256-+B8ywp7q42g8H+BPFK+D1VyLfyqgnrYIN3ai/mdcwcA=";
   };
 
   propagatedBuildInputs = [ ipykernel ];
diff --git a/pkgs/development/python-modules/meteofrance-api/default.nix b/pkgs/development/python-modules/meteofrance-api/default.nix
new file mode 100644
index 0000000000000..5e738adb62bf4
--- /dev/null
+++ b/pkgs/development/python-modules/meteofrance-api/default.nix
@@ -0,0 +1,76 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry
+, pytestCheckHook
+, pythonOlder
+, pytz
+, requests
+, requests-mock
+, typing-extensions
+, urllib3
+}:
+
+buildPythonPackage rec {
+  pname = "meteofrance-api";
+  version = "1.0.2";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "hacf-fr";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-X8f0z9ZPXH7Wc3GqHmPptxpNxbHeezdOzw4gZCprumU=";
+  };
+
+  nativeBuildInputs = [
+    # Doesn't work with poetry-core at the moment
+    poetry
+  ];
+
+  propagatedBuildInputs = [
+    pytz
+    requests
+    urllib3
+  ] ++ lib.optionals (pythonOlder "3.7") [
+    typing-extensions
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    requests-mock
+  ];
+
+  postPatch = ''
+    # https://github.com/hacf-fr/meteofrance-api/pull/378
+    substituteInPlace pyproject.toml \
+      --replace 'pytz = ">=2020.4,<2022.0"' 'pytz = ">=2020.4,<2023.0"'
+  '';
+
+  pythonImportsCheck = [
+    "meteofrance_api"
+  ];
+
+  disabledTests = [
+    # Tests require network access
+    "test_currentphenomenons"
+    "test_forecast"
+    "test_full_with_coastal_bulletint"
+    "test_fulls"
+    "test_no_rain_expected"
+    "test_picture_of_the_day"
+    "test_places"
+    "test_rain"
+    "test_session"
+    "test_workflow"
+  ];
+
+  meta = with lib; {
+    description = "Module to access information from the Meteo-France API";
+    homepage = "https://github.com/hacf-fr/meteofrance-api";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/mezzanine/default.nix b/pkgs/development/python-modules/mezzanine/default.nix
index 2c78575d3704a..6607dc0739dec 100644
--- a/pkgs/development/python-modules/mezzanine/default.nix
+++ b/pkgs/development/python-modules/mezzanine/default.nix
@@ -1,38 +1,56 @@
 { lib
-
+, beautifulsoup4
+, bleach
 , buildPythonPackage
-, fetchPypi
-, isPyPy
-, pyflakes
-, pep8
+, chardet
 , django
 , django_contrib_comments
+, fetchPypi
 , filebrowser_safe
-, grappelli_safe
-, bleach
-, tzlocal
-, beautifulsoup4
-, requests
-, requests_oauthlib
 , future
+, grappelli_safe
+, isPyPy
+, pep8
 , pillow
-, chardet
+, pyflakes
+, pythonOlder
+, requests
+, requests-oauthlib
+, tzlocal
 }:
 
 buildPythonPackage rec {
-  version = "5.1.0";
-  pname = "Mezzanine";
+  pname = "mezzanine";
+  version = "5.1.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6" || isPyPy;
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "ce1117c81416d2e0a77981419312e200aec1cf3cb3ea9630083bd29e74bbb265";
+    pname = "Mezzanine";
+    inherit version;
+    hash = "sha256-G/Oj5g70tFUhnbSVElVk0s9Ka+MEuPsEgj6blcFBOoY=";
   };
 
-  disabled = isPyPy || lib.versionOlder django.version "1.11"
-    || lib.versionAtLeast django.version "2.0";
+  buildInputs = [
+    pyflakes
+    pep8
+  ];
 
-  buildInputs = [ pyflakes pep8 ];
-  propagatedBuildInputs = [ django django_contrib_comments filebrowser_safe grappelli_safe bleach tzlocal beautifulsoup4 requests requests_oauthlib future pillow chardet ];
+  propagatedBuildInputs = [
+    beautifulsoup4
+    bleach
+    chardet
+    django
+    django_contrib_comments
+    filebrowser_safe
+    future
+    grappelli_safe
+    pillow
+    requests
+    requests-oauthlib
+    tzlocal
+  ];
 
   # Tests Fail Due to Syntax Warning, Fixed for v3.1.11+
   doCheck = false;
@@ -41,12 +59,10 @@ buildPythonPackage rec {
     sed -i 's/==/>=/' setup.py
   '';
 
-  LC_ALL="en_US.UTF-8";
+  LC_ALL = "en_US.UTF-8";
 
   meta = with lib; {
-    description = ''
-      A content management platform built using the Django framework
-    '';
+    description = "Content management platform built using the Django framework";
     longDescription = ''
       Mezzanine is a powerful, consistent, and flexible content
       management platform. Built using the Django framework, Mezzanine
@@ -64,11 +80,9 @@ buildPythonPackage rec {
     '';
     homepage = "http://mezzanine.jupo.org/";
     downloadPage = "https://github.com/stephenmcd/mezzanine/releases";
-    license = licenses.free;
+    license = licenses.bsd2;
     maintainers = with maintainers; [ prikhi ];
     platforms = platforms.unix;
-    # mezzanine requires django-1.11. Consider overriding python package set to use django_1_11"
-    broken = versionOlder django.version "1.11" || versionAtLeast django.version "2.0";
   };
-
 }
+
diff --git a/pkgs/development/python-modules/minio/default.nix b/pkgs/development/python-modules/minio/default.nix
index 477ed47e9dd14..5b142406fab09 100644
--- a/pkgs/development/python-modules/minio/default.nix
+++ b/pkgs/development/python-modules/minio/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "minio";
-  version = "7.1.2";
+  version = "7.1.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "minio";
     repo = "minio-py";
     rev = version;
-    sha256 = "sha256-KluSdmhpSSqUTLVdFpIGwre7LOu3A16rt73FvaTmuz8=";
+    sha256 = "sha256-IzITqo23pRf83SFpnBZdryGHIsxh+7HrLVLM9CT5nQQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/mitmproxy/default.nix b/pkgs/development/python-modules/mitmproxy/default.nix
index f3b24ffabff2f..055cb8aee99a3 100644
--- a/pkgs/development/python-modules/mitmproxy/default.nix
+++ b/pkgs/development/python-modules/mitmproxy/default.nix
@@ -111,6 +111,7 @@ buildPythonPackage rec {
     # Tests require terminal
     "test_integration"
   ];
+  dontUsePytestXdist = true;
 
   pythonImportsCheck = [ "mitmproxy" ];
 
diff --git a/pkgs/development/python-modules/mkdocs-material/default.nix b/pkgs/development/python-modules/mkdocs-material/default.nix
index dc67a51582408..a0df100089261 100644
--- a/pkgs/development/python-modules/mkdocs-material/default.nix
+++ b/pkgs/development/python-modules/mkdocs-material/default.nix
@@ -1,21 +1,28 @@
-{ lib, callPackage, buildPythonApplication, fetchFromGitHub
+{ lib
+, callPackage
+, buildPythonApplication
+, fetchFromGitHub
 , jinja2
 , markdown
 , mkdocs
 , mkdocs-material-extensions
 , pygments
 , pymdown-extensions
+, pythonOlder
 }:
 
 buildPythonApplication rec {
   pname = "mkdocs-material";
-  version = "8.2.7";
+  version = "8.2.11";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "squidfunk";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-Jh0FmtBCYCEk6mYFLOKb1HQXQ4Wc9Z6JCHFVu420IBk=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-YAXdIA36QWwdQxTux6Sy/F0j8lprSO+5/VezFcsGQYg=";
   };
 
   propagatedBuildInputs = [
@@ -30,7 +37,9 @@ buildPythonApplication rec {
   # No tests for python
   doCheck = false;
 
-  pythonImportsCheck = [ "mkdocs" ];
+  pythonImportsCheck = [
+    "mkdocs"
+  ];
 
   meta = with lib; {
     description = "Material for mkdocs";
diff --git a/pkgs/development/python-modules/mkdocs/default.nix b/pkgs/development/python-modules/mkdocs/default.nix
index 7d4f1cc66c6e2..13604bc975a3e 100644
--- a/pkgs/development/python-modules/mkdocs/default.nix
+++ b/pkgs/development/python-modules/mkdocs/default.nix
@@ -3,7 +3,6 @@
   lib
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , pythonOlder
   # runtime deps
 , click
@@ -24,24 +23,16 @@
 
 buildPythonPackage rec {
   pname = "mkdocs";
-  version = "1.2.3";
+  version = "1.3.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-LBw2ftGyeNvARQ8xiYUho8BiQh+aIEqROP51gKvNxEo=";
+    sha256 = "sha256-S4xkr3jS5GvkMu8JnEGfqhmkxy3FtZZb7Rbuniltudg=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/mkdocs/mkdocs/commit/c93fc91e4dc0ef33e2ea418aaa32b0584a8d354a.patch";
-      sha256 = "sha256-7uLIuQOt6KU/+iS9cwhXkWPAHzZkQdMyNBxSMut5WK4=";
-      excludes = [ "tox.ini" ];
-    })
-  ];
-
   propagatedBuildInputs = [
     click
     jinja2
diff --git a/pkgs/development/python-modules/mlflow/default.nix b/pkgs/development/python-modules/mlflow/default.nix
index 49d6bd7a3248e..10c69b0761127 100644
--- a/pkgs/development/python-modules/mlflow/default.nix
+++ b/pkgs/development/python-modules/mlflow/default.nix
@@ -27,12 +27,12 @@
 
 buildPythonPackage rec {
   pname = "mlflow";
-  version = "1.24.0";
+  version = "1.25.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-6hZwiOuHtB8RFwgyfPeV8plLBPlnAdVP1f1bNah4en4=";
+    sha256 = "sha256-jDePRRbWNz+VvFe2x8LcpD8mUNSc7lq2ucNFf8RvBgA=";
   };
 
   # run into https://stackoverflow.com/questions/51203641/attributeerror-module-alembic-context-has-no-attribute-config
diff --git a/pkgs/development/python-modules/mock/default.nix b/pkgs/development/python-modules/mock/default.nix
index 72e40d750ed13..464a6ae969d77 100644
--- a/pkgs/development/python-modules/mock/default.nix
+++ b/pkgs/development/python-modules/mock/default.nix
@@ -1,31 +1,30 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, isPy27
-, funcsigs
-, six
-, pbr
+, fetchpatch
 , python
+, pythonOlder
 , pytest
 }:
 
 buildPythonPackage rec {
   pname = "mock";
   version = "4.0.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "7d3fbbde18228f4ff2f1f119a45cdffa458b4c0dee32eb4d2bb2f82554bac7bc";
   };
 
-  propagatedBuildInputs = [ six pbr ] ++ lib.optionals isPy27 [ funcsigs ];
-
-  # On PyPy for Python 2.7 in particular, Mock's tests have a known failure.
-  # Mock upstream has a decoration to disable the failing test and make
-  # everything pass, but it is not yet released. The commit:
-  # https://github.com/testing-cabal/mock/commit/73bfd51b7185#diff-354f30a63fb0907d4ad57269548329e3L12
-  #doCheck = !(python.isPyPy && python.isPy27);
-  doCheck = false; # Infinite recursion pytest
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/testing-cabal/mock/commit/f3e3d82aab0ede7e25273806dc0505574d85eae2.patch";
+      sha256 = "sha256-wPrv1/WeICZHn31UqFlICFsny2knvn3+Xg8BZoaGbwQ=";
+    })
+  ];
 
   checkPhase = ''
     ${python.interpreter} -m unittest discover
@@ -37,8 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Mock objects for Python";
-    homepage = "http://python-mock.sourceforge.net/";
+    homepage = "https://github.com/testing-cabal/mock";
     license = licenses.bsd2;
   };
-
 }
diff --git a/pkgs/development/python-modules/mocket/default.nix b/pkgs/development/python-modules/mocket/default.nix
index 1a0b7ee907bcb..d5fe44b37e746 100644
--- a/pkgs/development/python-modules/mocket/default.nix
+++ b/pkgs/development/python-modules/mocket/default.nix
@@ -19,12 +19,12 @@
 
 buildPythonPackage rec {
   pname = "mocket";
-  version = "3.10.4";
+  version = "3.10.5";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "831c23bf891c525828b7da49a358c6e0698481e4c8b3a61a69e87f36d06ef969";
+    sha256 = "sha256-rF6ol5T6wH0nNmaP+lHQL8H+XZz1kl7OEe7NNO4MCtw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/modeled/default.nix b/pkgs/development/python-modules/modeled/default.nix
index acf8ee4c11232..c49077d2181b6 100644
--- a/pkgs/development/python-modules/modeled/default.nix
+++ b/pkgs/development/python-modules/modeled/default.nix
@@ -4,7 +4,7 @@
 , zetup
 , six
 , moretools
-, pathpy
+, path
 , pytestCheckHook
 }:
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   buildInputs = [ zetup ];
 
-  propagatedBuildInputs = [ six moretools pathpy ];
+  propagatedBuildInputs = [ six moretools path ];
 
   checkInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/monero/default.nix b/pkgs/development/python-modules/monero/default.nix
new file mode 100644
index 0000000000000..907e54417d6dd
--- /dev/null
+++ b/pkgs/development/python-modules/monero/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pycryptodomex
+, pysocks
+, pynacl
+, requests
+, six
+, varint
+, pytestCheckHook
+, pytest-cov
+, responses
+}:
+
+buildPythonPackage rec {
+  pname = "monero";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "monero-ecosystem";
+    repo = "monero-python";
+    rev = "v${version}";
+    sha256 = "sha256-ZjAShIeGVVIKlwgSNPVSN7eaqhKu3wEpDP9wgBMOyZU=";
+  };
+
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace 'pynacl~=1.4' 'pynacl>=1.4' \
+      --replace 'ipaddress' ""
+  '';
+
+  pythonImportsCheck = [ "monero" ];
+
+  propagatedBuildInputs = [
+    pycryptodomex
+    pynacl
+    pysocks
+    requests
+    six
+    varint
+  ];
+
+  checkInputs = [ pytestCheckHook pytest-cov responses ];
+
+  meta = with lib; {
+    description = "Comprehensive Python module for handling Monero";
+    homepage = "https://github.com/monero-ecosystem/monero-python";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/pkgs/development/python-modules/mongoengine/default.nix b/pkgs/development/python-modules/mongoengine/default.nix
index d609f465e2771..269ebf2ef3cfd 100644
--- a/pkgs/development/python-modules/mongoengine/default.nix
+++ b/pkgs/development/python-modules/mongoengine/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "mongoengine";
-  version = "0.23.1";
+  version = "0.24.0";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "MongoEngine";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1lj33pgdrp4rvjzcg2glvz1f87np1pfnqhlwbdcijav9rxqc0w70";
+    sha256 = "sha256-BQSB4SGlejARFreeTfqFMzCWvBc6Vvq9EOMLjhAihdI=";
   };
 
   propagatedBuildInputs = [
@@ -36,12 +36,15 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "coverage==4.2" "coverage"
+      --replace "coverage==4.2" "coverage" \
+      --replace "pymongo>=3.4,<=4.0" "pymongo"
   '';
 
   # tests require mongodb running in background
   doCheck = false;
 
+  pythonImportsCheck = [ "mongoengine" ];
+
   meta = with lib; {
     description = "MongoEngine is a Python Object-Document Mapper for working with MongoDB";
     homepage = "http://mongoengine.org/";
diff --git a/pkgs/development/python-modules/moonraker-api/default.nix b/pkgs/development/python-modules/moonraker-api/default.nix
index 9f6ca7e91a785..50ba81d6d5260 100644
--- a/pkgs/development/python-modules/moonraker-api/default.nix
+++ b/pkgs/development/python-modules/moonraker-api/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "moonraker-api";
-  version = "2.0.4";
+  version = "2.0.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "cmroche";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1hhm3jnl9qm44y4k927fzw1n32c3551kgsk7i57qw25nca9x3k61";
+    sha256 = "sha256-PgFsXmdAmHXK0wZ6xLTu94RdME1L2H1Mb6V+qFlGXSk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/moretools/default.nix b/pkgs/development/python-modules/moretools/default.nix
index 5a96682accdb7..01f6b58a9475a 100644
--- a/pkgs/development/python-modules/moretools/default.nix
+++ b/pkgs/development/python-modules/moretools/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi
-, six, pathpy, zetup, pytest
+, six, path, zetup, pytest
 , decorator }:
 
 buildPythonPackage rec {
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   '';
 
   nativeBuildInputs = [ zetup ];
-  checkInputs = [ six pathpy pytest ];
+  checkInputs = [ six path pytest ];
   propagatedBuildInputs = [ decorator ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/motionblinds/default.nix b/pkgs/development/python-modules/motionblinds/default.nix
index 0d8a131a8e426..f3cf778fcbad4 100644
--- a/pkgs/development/python-modules/motionblinds/default.nix
+++ b/pkgs/development/python-modules/motionblinds/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "motionblinds";
-  version = "0.6.4";
+  version = "0.6.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,8 +15,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "starkillerOG";
     repo = "motion-blinds";
-    rev = version;
-    sha256 = "sha256-k0o6zGhuQPCh9bxXd7v9Hfjo1vKmf5kpw7MGJ31/1Mw=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-RAGsVHi/f+0gIzVomhC8h3JvoD4EEe6dK9PBi5daTgU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/moto/default.nix b/pkgs/development/python-modules/moto/default.nix
index 1d9d077437982..7f3251a6cc228 100644
--- a/pkgs/development/python-modules/moto/default.nix
+++ b/pkgs/development/python-modules/moto/default.nix
@@ -1,269 +1,127 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, fetchpatch
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+
+# runtime
 , aws-xray-sdk
-, backports_tempfile
 , boto3
 , botocore
 , cfn-lint
+, cryptography
 , docker
 , flask
 , flask-cors
-, freezegun
+, graphql-core
+, idna
 , jinja2
 , jsondiff
-, mock
-, pyaml
+, python-dateutil
 , python-jose
 , pytz
+, pyyaml
 , requests
 , responses
-, six
 , sshpubkeys
-, sure
 , werkzeug
 , xmltodict
-, parameterized
-, idna
-, nose
+
+# tests
+, freezegun
 , pytestCheckHook
 , pytest-xdist
+, sure
 }:
 
 buildPythonPackage rec {
   pname = "moto";
-  version = "3.0.2";
+  version = "3.1.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-vZ1oofOYUkFETDFKwSmifvvn+bCi/6NQAxu950NYk5k=";
+    sha256 = "sha256-+kgVlfVhHZ/r2vCg0Skwe1433mh2w30DXO7+Rs59isA=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "ecdsa<0.15" "ecdsa" \
-      --replace "idna<3,>=2.5" "idna" \
-      --replace "MarkupSafe<2.0" "MarkupSafe" \
-  '';
-
   propagatedBuildInputs = [
     aws-xray-sdk
     boto3
     botocore
     cfn-lint
+    cryptography
     docker
-    flask # required for server
+    flask
+    flask-cors
+    graphql-core
+    idna
     jinja2
     jsondiff
-    mock
-    pyaml
+    python-dateutil
     python-jose
     pytz
-    six
+    pyyaml
     requests
     responses
     sshpubkeys
     werkzeug
     xmltodict
-    idna
-  ] ++ lib.optionals isPy27 [ backports_tempfile ];
+  ];
 
   checkInputs = [
-    boto3
-    flask-cors
     freezegun
-    parameterized
     pytestCheckHook
-    pytest-xdist
     sure
   ];
 
-  # Multiple test files still import boto, rather than boto3 like
-  # boto is long-deprecated and broken on python3.9
-  # https://github.com/spulec/moto/blob/63ce647123755e4c4693a89f52c254596004c098/tests/test_autoscaling/test_autoscaling.py#L2
-  # NOTE: This should change to use disabledTestFiles / disabledTestPaths once that
-  # feature stabalizes: see #113153 (mostly the discussion therein), #113167, #110700
   pytestFlagsArray = [
-    "-n $NIX_BUILD_CORES"
-    "--ignore=tests/test_awslambda/test_policy.py"
-    "--ignore=tests/test_autoscaling/test_autoscaling.py"
-    "--ignore=tests/test_autoscaling/test_cloudformation.py"
-    "--ignore=tests/test_autoscaling/test_elbv2.py"
-    "--ignore=tests/test_autoscaling/test_launch_configurations.py"
-    "--ignore=tests/test_autoscaling/test_policies.py"
-    "--ignore=tests/test_autoscaling/test_server.py"
-    "--ignore=tests/test_awslambda/test_lambda.py"
-    "--ignore=tests/test_awslambda/test_lambda_cloudformation.py"
-    "--ignore=tests/test_batch/test_cloudformation.py"
-    "--ignore=tests/test_batch/test_server.py"
-    "--ignore=tests/test_cloudformation/test_cloudformation_depends_on.py"
-    "--ignore=tests/test_cloudformation/test_cloudformation_stack_crud.py"
-    "--ignore=tests/test_cloudformation/test_cloudformation_stack_crud_boto3.py"
-    "--ignore=tests/test_cloudformation/test_cloudformation_stack_integration.py"
-    "--ignore=tests/test_cloudformation/test_stack_parsing.py"
-    "--ignore=tests/test_cloudformation/test_validate.py"
-    "--ignore=tests/test_cloudwatch/test_cloudwatch.py"
-    "--ignore=tests/test_cognitoidentity/test_server.py"
-    "--ignore=tests/test_config/test_config.py"
-    "--ignore=tests/test_core/test_auth.py"
-    "--ignore=tests/test_core/test_decorator_calls.py"
-    "--ignore=tests/test_core/test_nested.py"
-    "--ignore=tests/test_core/test_server.py"
-    "--ignore=tests/test_datapipeline/test_datapipeline.py"
-    "--ignore=tests/test_datapipeline/test_server.py"
-    "--ignore=tests/test_datasync/test_datasync.py"
-    "--ignore=tests/test_dynamodb/test_dynamodb.py"
-    "--ignore=tests/test_dynamodb/test_dynamodb_table_with_range_key.py"
-    "--ignore=tests/test_dynamodb/test_dynamodb_table_without_range_key.py"
-    "--ignore=tests/test_dynamodb/test_server.py"
-    "--ignore=tests/test_dynamodb2/test_dynamodb.py"
-    "--ignore=tests/test_dynamodb2/test_dynamodb_table_with_range_key.py"
-    "--ignore=tests/test_dynamodb2/test_dynamodb_table_without_range_key.py"
-    "--ignore=tests/test_dynamodb2/test_server.py"
-    "--ignore=tests/test_ec2/test_amazon_dev_pay.py"
-    "--ignore=tests/test_ec2/test_amis.py"
-    "--ignore=tests/test_ec2/test_availability_zones_and_regions.py"
-    "--ignore=tests/test_ec2/test_customer_gateways.py"
-    "--ignore=tests/test_ec2/test_dhcp_options.py"
-    "--ignore=tests/test_ec2/test_elastic_block_store.py"
-    "--ignore=tests/test_ec2/test_elastic_ip_addresses.py"
-    "--ignore=tests/test_ec2/test_elastic_network_interfaces.py"
-    "--ignore=tests/test_ec2/test_general.py"
-    "--ignore=tests/test_ec2/test_instances.py"
-    "--ignore=tests/test_ec2/test_internet_gateways.py"
-    "--ignore=tests/test_ec2/test_ip_addresses.py"
-    "--ignore=tests/test_ec2/test_key_pairs.py"
-    "--ignore=tests/test_ec2/test_monitoring.py"
-    "--ignore=tests/test_ec2/test_network_acls.py"
-    "--ignore=tests/test_ec2/test_placement_groups.py"
-    "--ignore=tests/test_ec2/test_regions.py"
-    "--ignore=tests/test_ec2/test_reserved_instances.py"
-    "--ignore=tests/test_ec2/test_route_tables.py"
-    "--ignore=tests/test_ec2/test_security_groups.py"
-    "--ignore=tests/test_ec2/test_spot_instances.py"
-    "--ignore=tests/test_ec2/test_subnets.py"
-    "--ignore=tests/test_ec2/test_tags.py"
-    "--ignore=tests/test_ec2/test_virtual_private_gateways.py"
-    "--ignore=tests/test_ec2/test_vm_export.py"
-    "--ignore=tests/test_ec2/test_vm_import.py"
-    "--ignore=tests/test_ec2/test_vpc_peering.py"
-    "--ignore=tests/test_ec2/test_vpcs.py"
-    "--ignore=tests/test_ec2/test_vpn_connections.py"
-    "--ignore=tests/test_ec2/test_vpn_connections.py"
-    "--ignore=tests/test_ec2/test_windows.py"
-    "--ignore=tests/test_ecs/test_ecs_boto3.py"
-    "--ignore=tests/test_elb/test_elb.py"
-    "--ignore=tests/test_elb/test_server.py"
-    "--ignore=tests/test_elbv2/test_elbv2.py"
-    "--ignore=tests/test_elbv2/test_server.py"
-    "--ignore=tests/test_emr/test_emr.py"
-    "--ignore=tests/test_emr/test_server.py"
-    "--ignore=tests/test_glacier/test_glacier_archives.py"
-    "--ignore=tests/test_glacier/test_glacier_jobs.py"
-    "--ignore=tests/test_glacier/test_glacier_vaults.py"
-    "--ignore=tests/test_iam/test_iam.py"
-    "--ignore=tests/test_iam/test_iam_cloudformation.py"
-    "--ignore=tests/test_iam/test_iam_groups.py"
-    "--ignore=tests/test_iam/test_server.py"
-    "--ignore=tests/test_iot/test_server.py"
-    "--ignore=tests/test_iotdata/test_server.py"
-    "--ignore=tests/test_kinesis/test_kinesis.py"
-    "--ignore=tests/test_kinesis/test_kinesis_cloudformation.py"
-    "--ignore=tests/test_kinesis/test_server.py"
-    "--ignore=tests/test_kinesisvideo/test_server.py"
-    "--ignore=tests/test_kinesisvideoarchivedmedia/test_server.py"
-    "--ignore=tests/test_kms/test_kms.py"
-    "--ignore=tests/test_kms/test_server.py"
-    "--ignore=tests/test_kms/test_utils.py"
-    "--ignore=tests/test_logs/test_logs.py"
-    "--ignore=tests/test_polly/test_server.py"
-    "--ignore=tests/test_rds/test_rds.py"
-    "--ignore=tests/test_rds/test_server.py"
-    "--ignore=tests/test_rds2/test_server.py"
-    "--ignore=tests/test_redshift/test_redshift.py"
-    "--ignore=tests/test_redshift/test_server.py"
-    "--ignore=tests/test_resourcegroupstaggingapi/test_resourcegroupstaggingapi.py"
-    "--ignore=tests/test_route53/test_route53.py"
-    "--ignore=tests/test_s3/test_s3.py"
-    "--ignore=tests/test_s3/test_s3_cloudformation.py"
-    "--ignore=tests/test_s3/test_s3_lifecycle.py"
-    "--ignore=tests/test_s3/test_s3_storageclass.py"
-    "--ignore=tests/test_s3/test_s3_utils.py"
-    "--ignore=tests/test_s3bucket_path/test_s3bucket_path.py"
-    "--ignore=tests/test_s3bucket_path/test_s3bucket_path_combo.py"
-    "--ignore=tests/test_secretsmanager/test_server.py"
-    "--ignore=tests/test_ses/test_server.py"
-    "--ignore=tests/test_ses/test_ses.py"
-    "--ignore=tests/test_ses/test_ses_boto3.py"
-    "--ignore=tests/test_ses/test_ses_sns_boto3.py"
-    "--ignore=tests/test_sns/test_application.py"
-    "--ignore=tests/test_sns/test_application_boto3.py"
-    "--ignore=tests/test_sns/test_publishing.py"
-    "--ignore=tests/test_sns/test_publishing_boto3.py"
-    "--ignore=tests/test_sns/test_server.py"
-    "--ignore=tests/test_sns/test_subscriptions.py"
-    "--ignore=tests/test_sns/test_subscriptions_boto3.py"
-    "--ignore=tests/test_sns/test_topics.py"
-    "--ignore=tests/test_sns/test_topics_boto3.py"
-    "--ignore=tests/test_sqs/test_server.py"
-    "--ignore=tests/test_sqs/test_sqs.py"
-    "--ignore=tests/test_ssm/test_ssm_boto3.py"
-    "--ignore=tests/test_ssm/test_ssm_docs.py"
-    "--ignore=tests/test_sts/test_server.py"
-    "--ignore=tests/test_sts/test_sts.py"
-    "--ignore=tests/test_swf/models/test_activity_task.py"
-    "--ignore=tests/test_swf/models/test_decision_task.py"
-    "--ignore=tests/test_swf/models/test_timeout.py"
-    "--ignore=tests/test_swf/models/test_workflow_execution.py"
-    "--ignore=tests/test_swf/responses/test_activity_tasks.py"
-    "--ignore=tests/test_swf/responses/test_activity_types.py"
-    "--ignore=tests/test_swf/responses/test_decision_tasks.py"
-    "--ignore=tests/test_swf/responses/test_domains.py"
-    "--ignore=tests/test_swf/responses/test_timeouts.py"
-    "--ignore=tests/test_swf/responses/test_workflow_executions.py"
-    "--ignore=tests/test_swf/responses/test_workflow_types.py"
-    # attempts web connections
-    "--ignore=tests/test_appsync/test_appsync_schema.py"
-    "--ignore=tests/test_awslambda/test_lambda_eventsourcemapping.py"
-    "--ignore=tests/test_awslambda/test_lambda_invoke.py"
-    "--ignore=tests/test_batch/test_batch_jobs.py"
-    "--ignore=tests/**/*_integration.py"
+    # Disable tests that try to access the network
+    "--deselect=tests/test_cloudformation/test_cloudformation_custom_resources.py::test_create_custom_lambda_resource__verify_cfnresponse_failed"
+    "--deselect=tests/test_cloudformation/test_server.py::test_cloudformation_server_get"
+    "--deselect=tests/test_core/test_decorator_calls.py::test_context_manager"
+    "--deselect=tests/test_core/test_decorator_calls.py::test_decorator_start_and_stop"
+    "--deselect=tests/test_core/test_request_mocking.py::test_passthrough_requests"
+    "--deselect=tests/test_firehose/test_firehose_put.py::test_put_record_batch_http_destination"
+    "--deselect=tests/test_firehose/test_firehose_put.py::test_put_record_http_destination"
+    "--deselect=tests/test_logs/test_integration.py::test_put_subscription_filter_with_lambda"
+    "--deselect=tests/test_sqs/test_integration.py::test_invoke_function_from_sqs_exception"
+    "--deselect=tests/test_sqs/test_sqs_integration.py::test_invoke_function_from_sqs_exception"
+    "--deselect=tests/test_stepfunctions/test_stepfunctions.py::test_state_machine_creation_fails_with_invalid_names"
+    "--deselect=tests/test_stepfunctions/test_stepfunctions.py::test_state_machine_list_executions_with_pagination"
+    "--deselect=tests/test_iotdata/test_iotdata.py::test_update"
+    "--deselect=tests/test_iotdata/test_iotdata.py::test_basic"
+    "--deselect=tests/test_iotdata/test_iotdata.py::test_delete_field_from_device_shadow"
+    "--deselect=tests/test_iotdata/test_iotdata.py::test_publish"
+    "--deselect=tests/test_s3/test_server.py::test_s3_server_bucket_versioning"
+
+    # json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
+    "--deselect=tests/test_cloudformation/test_cloudformation_stack_integration.py::test_lambda_function"
+
+    # AssertionError: CloudWatch log event was not found.
+    "--deselect=tests/test_logs/test_integration.py::test_subscription_filter_applies_to_new_streams"
+
+    # KeyError: 'global'
+    "--deselect=tests/test_iotdata/test_server.py::test_iotdata_list"
+    "--deselect=tests/test_iotdata/test_server.py::test_publish"
+
+    # Blocks test execution
+    "--deselect=tests/test_utilities/test_threaded_server.py::TestThreadedMotoServer::test_load_data_from_inmemory_client"
+  ];
+
+  disabledTestPaths = [
+    # xml.parsers.expat.ExpatError: out of memory: line 1, column 0
+    "tests/test_sts/test_sts.py"
+    # botocore.exceptions.NoCredentialsError: Unable to locate credentials
+    "tests/test_redshiftdata/test_redshiftdata.py"
+    # Tries to access the network
+    "tests/test_appsync/test_appsync_schema.py"
+    "tests/test_awslambda/test_lambda_eventsourcemapping.py"
+    "tests/test_awslambda/test_lambda_invoke.py"
+    "tests/test_batch/test_batch_jobs.py"
   ];
 
   disabledTests = [
-    # these tests rely on the network
-    "test_server"
-    "test_managedblockchain_nodes"
-    "test_swf"
-    "test_simple_instance"
-    "test_passthrough_requests"
-    "test_s3_server_get"
-    "test_s3_server_bucket_create"
-    "test_s3_server_post_to_bucket"
-    "test_s3_server_put_ipv6"
-    "test_s3_server_put_ipv4"
-    "test_http_proxying_integration"
-    "test_submit_job_by_name"
-    "test_submit_job"
-    "test_list_jobs"
-    "test_terminate_job"
-    "test_idtoken_contains_kid_header"
-    "test_latest_meta_data"
-    "test_meta_data_iam"
-    "test_meta_data_security_credentials"
-    "test_meta_data_default_role"
-    "test_reset_api"
-    "test_data_api"
-    "test_requests_to_amazon_subdomains_dont_work"
-    "test_get_records_seq"
-    "test_stream_with_range_key"
-    "test_create_notebook_instance_bad_volume_size"
-    "http_destination"
-    "test_invoke_function_from_sqs_exception"
-    "test_state_machine_list_executions_with_pagination"
-    "test_put_subscription_filter_with_lambda"
-    "test_create_custom_lambda_resource__verify_cfnresponse_failed"
-    "test_state_machine_creation_fails_with_invalid_names"
-    # needs graphql
-    "test_get_schema_creation_status"
     # only appears in aarch64 currently, but best to be safe
     "test_state_machine_list_executions_with_filter"
   ];
diff --git a/pkgs/development/python-modules/msal-extensions/default.nix b/pkgs/development/python-modules/msal-extensions/default.nix
index f81395f0245b7..a811018da214b 100644
--- a/pkgs/development/python-modules/msal-extensions/default.nix
+++ b/pkgs/development/python-modules/msal-extensions/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "msal-extensions";
-  version = "0.3.1";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d9029af70f2cbdc5ad7ecfed61cb432ebe900484843ccf72825445dbfe62d311";
+    sha256 = "sha256-xnarpWsMzjeD3htcXs/oKNuZgWeHUSbKS0fcZDZFE1Q=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/msrest/default.nix b/pkgs/development/python-modules/msrest/default.nix
index 6eb6e49cdddae..da130f289fda6 100644
--- a/pkgs/development/python-modules/msrest/default.nix
+++ b/pkgs/development/python-modules/msrest/default.nix
@@ -1,51 +1,66 @@
 { lib
+, aiodns
+, aiohttp
 , buildPythonPackage
-, fetchFromGitHub
-, isPy3k
-, requests
-, requests_oauthlib
-, isodate
 , certifi
-, enum34 ? null
-, typing
-, aiohttp
-, aiodns
-, pytest
+, fetchFromGitHub
 , httpretty
-, mock
-, futures ? null
+, isodate
+, pytest-aiohttp
+, pytestCheckHook
+, pythonOlder
+, requests
+, requests-oauthlib
 , trio
 }:
 
 buildPythonPackage rec {
-  version = "0.6.21";
   pname = "msrest";
+  version = "0.6.21";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
-  # no tests in PyPI tarball
-  # see https://github.com/Azure/msrest-for-python/pull/152
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "msrest-for-python";
     rev = "v${version}";
-    sha256 = "sha256-IlBwlVQ/v+vJmCWNbFZKGL6a9K09z4AYrPm3kwaA/nI=";
+    hash = "sha256-IlBwlVQ/v+vJmCWNbFZKGL6a9K09z4AYrPm3kwaA/nI=";
   };
 
   propagatedBuildInputs = [
-    requests requests_oauthlib isodate certifi
-  ] ++ lib.optionals (!isPy3k) [ enum34 typing ]
-    ++ lib.optionals isPy3k [ aiohttp aiodns ];
+    aiodns
+    aiohttp
+    certifi
+    isodate
+    requests
+    requests-oauthlib
+  ];
+
+  checkInputs = [
+    httpretty
+    pytest-aiohttp
+    pytestCheckHook
+    trio
+  ];
 
-  checkInputs = [ pytest httpretty ]
-    ++ lib.optionals (!isPy3k) [ mock futures ]
-    ++ lib.optional isPy3k trio;
+  disabledTests = [
+    # Test require network access
+    "test_basic_aiohttp"
+    "test_basic_aiohttp"
+    "test_basic_async_requests"
+    "test_basic_async_requests"
+    "test_conf_async_requests"
+    "test_conf_async_requests"
+    "test_conf_async_trio_requests"
+  ];
 
-  # Deselected tests require network access
-  checkPhase = ''
-    pytest tests/ -k "not test_conf_async_trio_requests"
-  '';
+  pythonImportsCheck = [
+    "msrest"
+  ];
 
   meta = with lib; {
-    description = "The runtime library 'msrest' for AutoRest generated Python clients.";
+    description = "The runtime library for AutoRest generated Python clients";
     homepage = "https://github.com/Azure/msrest-for-python";
     license = licenses.mit;
     maintainers = with maintainers; [ bendlas jonringer maxwilson ];
diff --git a/pkgs/development/python-modules/multidict/default.nix b/pkgs/development/python-modules/multidict/default.nix
index 0ea21ecbe405a..6ee071732691b 100644
--- a/pkgs/development/python-modules/multidict/default.nix
+++ b/pkgs/development/python-modules/multidict/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "multidict";
-  version = "5.2.0";
+  version = "6.0.2";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0dd1c93edb444b33ba2274b66f63def8a327d607c6c790772f448a53b6ea59ce";
+    sha256 = "sha256-X/O9dfOOTEPx9HDy33pNQwuCHEziK+OE4UWctX1rsBM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/mutagen/default.nix b/pkgs/development/python-modules/mutagen/default.nix
index 33fc3c02daeba..b5415c51c4cda 100644
--- a/pkgs/development/python-modules/mutagen/default.nix
+++ b/pkgs/development/python-modules/mutagen/default.nix
@@ -1,37 +1,70 @@
 { lib
 , buildPythonPackage
+, pythonOlder
 , fetchPypi
-, isPy27
-, flake8
+
+# docs
+, python
+, sphinx
+, sphinx_rtd_theme
+
+# tests
 , hypothesis
-, pycodestyle
-, pyflakes
-, pytest
-, setuptools
-, pkgs
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "mutagen";
   version = "1.45.1";
-  disabled = isPy27; # abandoned
+  format = "pyproject";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "6397602efb3c2d7baebd2166ed85731ae1c1d475abca22090b7141ff5034b3e1";
   };
 
-  propagatedBuildInputs = [ setuptools ];
+  outputs = [ "out" "doc" ];
+
+  nativeBuildInputs = [
+    sphinx
+    sphinx_rtd_theme
+  ];
+
+  postInstall = ''
+    ${python.interpreter} setup.py build_sphinx --build-dir=$doc
+  '';
+
   checkInputs = [
-    pkgs.faad2 pkgs.flac pkgs.vorbis-tools pkgs.liboggz
-    pkgs.glibcLocales pycodestyle pyflakes pytest hypothesis flake8
+    hypothesis
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Hypothesis produces unreliable results: Falsified on the first call but did not on a subsequent one
+    "test_test_fileobj_save"
+  ];
+
+  disabledTestPaths = [
+    # we are not interested in code quality measurements
+    "tests/quality/test_flake8.py"
   ];
-  LC_ALL = "en_US.UTF-8";
 
   meta = with lib; {
-    description = "Python multimedia tagging library";
+    description = "Python module for handling audio metadata";
+    longDescription = ''
+      Mutagen is a Python module to handle audio metadata. It supports
+      ASF, FLAC, MP4, Monkey's Audio, MP3, Musepack, Ogg Opus, Ogg FLAC,
+      Ogg Speex, Ogg Theora, Ogg Vorbis, True Audio, WavPack, OptimFROG,
+      and AIFF audio files. All versions of ID3v2 are supported, and all
+      standard ID3v2.4 frames are parsed. It can read Xing headers to
+      accurately calculate the bitrate and length of MP3s. ID3 and APEv2
+      tags can be edited regardless of audio format. It can also
+      manipulate Ogg streams on an individual packet/page level.
+    '';
     homepage = "https://mutagen.readthedocs.io";
-    license = licenses.lgpl2Plus;
-    platforms = platforms.all;
+    changelog = "https://mutagen.readthedocs.io/en/latest/changelog.html#release-${lib.replaceStrings [ "." ] [ "-" ] version}";
+    license = licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/development/python-modules/mutmut/default.nix b/pkgs/development/python-modules/mutmut/default.nix
index ae0f06213a87d..626c768f2a81c 100644
--- a/pkgs/development/python-modules/mutmut/default.nix
+++ b/pkgs/development/python-modules/mutmut/default.nix
@@ -7,7 +7,7 @@
 , pony
 , junit-xml
 , pythonOlder
-, testVersion
+, testers
 }:
 
 let self = buildPythonApplication rec {
@@ -31,7 +31,7 @@ let self = buildPythonApplication rec {
 
   propagatedBuildInputs = [ click glob2 parso pony junit-xml ];
 
-  passthru.tests.version = testVersion { package = self; };
+  passthru.tests.version = testers.testVersion { package = self; };
 
   meta = with lib; {
     description = "mutation testing system for Python, with a strong focus on ease of use";
diff --git a/pkgs/development/python-modules/mwclient/default.nix b/pkgs/development/python-modules/mwclient/default.nix
index bffc4247632d7..da260251e9f2b 100644
--- a/pkgs/development/python-modules/mwclient/default.nix
+++ b/pkgs/development/python-modules/mwclient/default.nix
@@ -1,11 +1,21 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, requests, requests_oauthlib, six
-, pytest, pytestcache, pytest-cov, responses, mock
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, mock
+, pytestCheckHook
+, pythonOlder
+, requests
+, requests-oauthlib
+, responses
+, six
 }:
 
 buildPythonPackage rec {
   version = "0.10.1";
   pname = "mwclient";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "mwclient";
@@ -14,17 +24,31 @@ buildPythonPackage rec {
     sha256 = "120snnsh9n5svfwkyj1w9jrxf99jnqm0jk282yypd3lpyca1l9hj";
   };
 
-  checkInputs = [ pytest pytestcache pytest-cov responses mock ];
+  propagatedBuildInputs = [
+    requests
+    requests-oauthlib
+    six
+  ];
 
-  propagatedBuildInputs = [ requests requests_oauthlib six ];
+  checkInputs = [
+    mock
+    pytestCheckHook
+    responses
+  ];
 
-  checkPhase = ''
-    py.test
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace " --cov mwclient test" ""
   '';
 
+  pythonImportsCheck = [
+    "mwclient"
+  ];
+
   meta = with lib; {
     description = "Python client library to the MediaWiki API";
     license = licenses.mit;
     homepage = "https://github.com/mwclient/mwclient";
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/mwoauth/default.nix b/pkgs/development/python-modules/mwoauth/default.nix
index 8743329917e72..0a12052abc7e0 100644
--- a/pkgs/development/python-modules/mwoauth/default.nix
+++ b/pkgs/development/python-modules/mwoauth/default.nix
@@ -1,40 +1,47 @@
 { lib
 , buildPythonPackage
-, six
+, fetchPypi
+, oauthlib
 , pyjwt
+, pythonOlder
 , requests
-, oauthlib
-, requests_oauthlib
-, fetchPypi
+, requests-oauthlib
+, six
 }:
 
 buildPythonPackage rec {
   pname = "mwoauth";
   version = "0.3.7";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9e0d70a1fa6f452584de1cb853ae6c11f41233549f7839cfb879f99410f6ad46";
+    hash = "sha256-ng1wofpvRSWE3hy4U65sEfQSM1SfeDnPuHn5lBD2rUY=";
   };
 
   propagatedBuildInputs = [
     oauthlib
     pyjwt
     requests
-    requests_oauthlib
+    requests-oauthlib
     six
   ];
 
   postPatch = ''
     # https://github.com/mediawiki-utilities/python-mwoauth/pull/43
-    substituteInPlace setup.py --replace "PyJWT>=1.0.1,<2.0.0" "PyJWT>=1.0.1"
+    substituteInPlace setup.py \
+      --replace "PyJWT>=1.0.1,<2.0.0" "PyJWT>=1.0.1"
   '';
 
   # PyPI source has no tests included
   # https://github.com/mediawiki-utilities/python-mwoauth/issues/44
   doCheck = false;
 
-  pythonImportsCheck = [ "mwoauth" ];
+  pythonImportsCheck = [
+    "mwoauth"
+  ];
 
   meta = with lib; {
     description = "Python library to perform OAuth handshakes with a MediaWiki installation";
diff --git a/pkgs/development/python-modules/mxnet/default.nix b/pkgs/development/python-modules/mxnet/default.nix
index 47f4d80ad9271..a9e778bdd8c6f 100644
--- a/pkgs/development/python-modules/mxnet/default.nix
+++ b/pkgs/development/python-modules/mxnet/default.nix
@@ -6,10 +6,11 @@
 , graphviz
 , python
 , isPy3k
+, isPy310
 }:
 
 buildPythonPackage {
-  inherit (pkgs.mxnet) pname version src meta;
+  inherit (pkgs.mxnet) pname version src;
 
   buildInputs = [ pkgs.mxnet ];
   propagatedBuildInputs = [ requests numpy graphviz ];
@@ -32,4 +33,7 @@ buildPythonPackage {
     ln -s ${pkgs.mxnet}/lib/libmxnet.so $out/${python.sitePackages}/mxnet
   '';
 
+  meta = pkgs.mxnet.meta // {
+    broken = (pkgs.mxnet.broken or false) || (isPy310 && pkgs.mxnet.cudaSupport);
+  };
 }
diff --git a/pkgs/development/python-modules/myfitnesspal/default.nix b/pkgs/development/python-modules/myfitnesspal/default.nix
index f6df7b88f8528..791cb708be5c5 100644
--- a/pkgs/development/python-modules/myfitnesspal/default.nix
+++ b/pkgs/development/python-modules/myfitnesspal/default.nix
@@ -9,6 +9,7 @@
 , python-dateutil
 , requests
 , rich
+, typing-extensions
 , pytestCheckHook
 , mock
 , nose
@@ -36,6 +37,7 @@ buildPythonPackage rec {
     python-dateutil
     requests
     rich
+    typing-extensions
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/myjwt/default.nix b/pkgs/development/python-modules/myjwt/default.nix
index 0fecd439e3f53..3c21c2c8106f6 100644
--- a/pkgs/development/python-modules/myjwt/default.nix
+++ b/pkgs/development/python-modules/myjwt/default.nix
@@ -10,6 +10,7 @@
 , pyperclip
 , pytest-mock
 , pytestCheckHook
+, pythonOlder
 , questionary
 , requests
 , requests-mock
@@ -17,13 +18,16 @@
 
 buildPythonPackage rec {
   pname = "myjwt";
-  version = "1.5.0";
+  version = "1.6.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "mBouamama";
     repo = "MyJWT";
-    rev = version;
-    sha256 = "sha256-kZkqFeaQPd56BVaYmCWAbVu1xwbPAIlQC3u5/x3dh7A=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-A9tsQ6L+y3doL5pJbau3yKnmQtX2IPXWyW/YCLhS7nc=";
   };
 
   propagatedBuildInputs = [
@@ -48,7 +52,9 @@ buildPythonPackage rec {
     sed -i -e "s/==[0-9.]*//" requirements.txt
   '';
 
-  pythonImportsCheck = [ "myjwt" ];
+  pythonImportsCheck = [
+    "myjwt"
+  ];
 
   meta = with lib; {
     description = "CLI tool for testing vulnerabilities of JSON Web Tokens (JWT)";
diff --git a/pkgs/development/python-modules/mypy-boto3-s3/default.nix b/pkgs/development/python-modules/mypy-boto3-s3/default.nix
index 4f33912d3dfe5..c77dc38466369 100644
--- a/pkgs/development/python-modules/mypy-boto3-s3/default.nix
+++ b/pkgs/development/python-modules/mypy-boto3-s3/default.nix
@@ -8,19 +8,18 @@
 
 buildPythonPackage rec {
   pname = "mypy-boto3-s3";
-  version = "1.21.7";
+  version = "1.22.0.post1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-SWzL6AMXoZzYw3LwrBdvbe9JzLMudZioKZWo7HtHM8U=";
+    hash = "sha256-lOpsygYi1iCZ9DgqOjfJ4HL9PvRmLqMpEWqgeOyFCI4=";
   };
 
   propagatedBuildInputs = [
     boto3
-  ] ++ lib.optionals (pythonOlder "3.9") [
     typing-extensions
   ];
 
diff --git a/pkgs/development/python-modules/mypy/default.nix b/pkgs/development/python-modules/mypy/default.nix
index 5c5e985641ff7..937c958717242 100644
--- a/pkgs/development/python-modules/mypy/default.nix
+++ b/pkgs/development/python-modules/mypy/default.nix
@@ -14,22 +14,22 @@
 
 buildPythonPackage rec {
   pname = "mypy";
-  version = "0.931";
+  version = "0.941";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "python";
     repo = "mypy";
     rev = "v${version}";
-    sha256 = "1v83flrdxh8grcp40qw04q4hzjflih9xwib64078vsxv2w36f817";
+    hash = "sha256-H2SWJA0WWyKV7/5miFawv4JRXu/J7H6Wer1eBL+Tru0=";
   };
 
   patches = [
     # FIXME: Remove patch after upstream has decided the proper solution.
     #        https://github.com/python/mypy/pull/11143
     (fetchpatch {
-      url = "https://github.com/python/mypy/commit/f1755259d54330cd087cae763cd5bbbff26e3e8a.patch";
-      sha256 = "sha256-5gPahX2X6+/qUaqDQIGJGvh9lQ2EDtks2cpQutgbOHk=";
+      url = "https://github.com/python/mypy/commit/e7869f05751561958b946b562093397027f6d5fa.patch";
+      hash = "sha256-waIZ+m3tfvYE4HJ8kL6rN/C4fMjvLEe9UoPbt9mHWIM=";
     })
   ];
 
diff --git a/pkgs/development/python-modules/napari-npe2/default.nix b/pkgs/development/python-modules/napari-npe2/default.nix
new file mode 100644
index 0000000000000..0fd2c3e5e979a
--- /dev/null
+++ b/pkgs/development/python-modules/napari-npe2/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, appdirs
+, pyyaml
+, pytomlpp
+, pydantic
+, magicgui
+, typer
+, setuptools-scm
+, napari # reverse dependency, for tests
+}:
+
+let
+  pname = "napari-npe2";
+  version = "0.3.0";
+in
+buildPythonPackage {
+  inherit pname version;
+
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "napari";
+    repo = "npe2";
+    rev = "v${version}";
+    hash = "sha256-IyDUeztWQ8JWXDo//76iHzAlWWaZP6/0lwCh0eZAZsM=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    # npe2 *can* build without it,
+    # but then setuptools refuses to acknowledge it when building napari
+    setuptools-scm
+  ];
+  propagatedBuildInputs = [
+    appdirs
+    pyyaml
+    pytomlpp
+    pydantic
+    magicgui
+    typer
+  ];
+
+  passthru.tests = { inherit napari; };
+
+  meta = with lib; {
+    description = "Yet another plugin system for napari (the image visualizer)";
+    homepage = "https://github.com/napari/npe2";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ SomeoneSerge ];
+  };
+}
diff --git a/pkgs/development/python-modules/napari/default.nix b/pkgs/development/python-modules/napari/default.nix
index 74936da4f7254..837936f17a0a6 100644
--- a/pkgs/development/python-modules/napari/default.nix
+++ b/pkgs/development/python-modules/napari/default.nix
@@ -6,7 +6,7 @@
 , superqt
 , typing-extensions
 , tifffile
-, napari-plugin-engine
+, napari-npe2
 , pint
 , pyyaml
 , numpydoc
@@ -28,16 +28,25 @@
 , wrapQtAppsHook
 }: mkDerivationWith buildPythonPackage rec {
   pname = "napari";
-  version = "0.4.12";
+  version = "0.4.15";
+
+  format = "pyproject";
+
   src = fetchFromGitHub {
     owner = "napari";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-0QSI0mgDjF70/X58fE7uWwlBUCGY5gsvbCm4oJkp2Yk=";
+    sha256 = "sha256-52TDMU6box7TA26P0F9ZgPr8fyzYM646lPUfOektOuE=";
   };
-  nativeBuildInputs = [ setuptools-scm wrapQtAppsHook ];
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+    wrapQtAppsHook
+  ];
   propagatedBuildInputs = [
-    napari-plugin-engine
+    napari-npe2
     cachey
     napari-svg
     napari-console
@@ -60,7 +69,7 @@
     jsonschema
     scipy
   ];
-  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
   dontUseSetuptoolsCheck = true;
   postFixup = ''
     wrapQtApp $out/bin/napari
diff --git a/pkgs/development/python-modules/nats-py/default.nix b/pkgs/development/python-modules/nats-py/default.nix
index f87eb269da7a3..3cc92514bd6ea 100644
--- a/pkgs/development/python-modules/nats-py/default.nix
+++ b/pkgs/development/python-modules/nats-py/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "nats-py";
-  version = "2.0.0";
+  version = "2.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,8 +18,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "nats-io";
     repo = "nats.py";
-    rev = "v${version}";
-    hash = "sha256-BraT30J7OIcW2NXAwjcg9PYu+kgf8f1iDjKiN9J6l7Y=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-OwxTcjHB1YLijEtTA+QFjEmihqXsiitIcCtdl/3uipI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/nbclient/default.nix b/pkgs/development/python-modules/nbclient/default.nix
index c5e3facc06224..1b2071e7f0c58 100644
--- a/pkgs/development/python-modules/nbclient/default.nix
+++ b/pkgs/development/python-modules/nbclient/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "nbclient";
-  version = "0.5.10";
+  version = "0.5.13";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b5fdea88d6fa52ca38de6c2361401cfe7aaa7cd24c74effc5e489cec04d79088";
+    sha256 = "sha256-QMUsm148MfrsruafICs/U+ONfBxWPeD63enX7aD9r+g=";
   };
 
   inherit doCheck;
diff --git a/pkgs/development/python-modules/nbconvert/default.nix b/pkgs/development/python-modules/nbconvert/default.nix
index ab91f22acc442..5a89210170fe2 100644
--- a/pkgs/development/python-modules/nbconvert/default.nix
+++ b/pkgs/development/python-modules/nbconvert/default.nix
@@ -5,6 +5,7 @@
 , glibcLocales
 , entrypoints
 , bleach
+, beautifulsoup4
 , mistune
 , nbclient
 , jinja2
@@ -23,11 +24,11 @@
 
 buildPythonPackage rec {
   pname = "nbconvert";
-  version = "6.4.0";
+  version = "6.4.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5412ec774c6db4fccecb8c4ba07ec5d37d6dcf5762593cb3d6ecbbeb562ebbe5";
+    sha256 = "sha256-IRY6jiBzwHEJyo85iDbkXv26KqzqaNb3WopUX+8HDU4=";
   };
 
   # Add $out/share/jupyter to the list of paths that are used to search for
@@ -45,7 +46,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     entrypoints bleach mistune jinja2 pygments traitlets testpath
     jupyter_core nbformat ipykernel pandocfilters tornado jupyter-client
-    defusedxml
+    defusedxml beautifulsoup4
     (nbclient.override { doCheck = false; }) # avoid infinite recursion
     jupyterlab-pygments
   ];
diff --git a/pkgs/development/python-modules/nbformat/default.nix b/pkgs/development/python-modules/nbformat/default.nix
index a8e6993d6458c..e110934fdd13a 100644
--- a/pkgs/development/python-modules/nbformat/default.nix
+++ b/pkgs/development/python-modules/nbformat/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "nbformat";
-  version = "5.1.3";
+  version = "5.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b516788ad70771c6250977c1374fcca6edebe6126fd2adb5a69aa5c2356fd1c8";
+    sha256 = "sha256-k98LnGciHTj7lwxI9tNhgZpsOIKZoO8xcbu5Eu3+EyQ=";
   };
 
   LC_ALL="en_US.utf8";
diff --git a/pkgs/development/python-modules/ncclient/default.nix b/pkgs/development/python-modules/ncclient/default.nix
index 2cb040ed8a38d..3457c71af4ca5 100644
--- a/pkgs/development/python-modules/ncclient/default.nix
+++ b/pkgs/development/python-modules/ncclient/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "ncclient";
-  version = "0.6.12";
+  version = "0.6.13";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1sjvqaxb54nmqljiw5bg1423msa9rg015wiix9fsm6djk3wpklmk";
+    sha256 = "sha256-NrilXB1NFcqNCGrwshhuLdhQoeHJ12PSp4MBScT9kYc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ndg-httpsclient/default.nix b/pkgs/development/python-modules/ndg-httpsclient/default.nix
index 0082b8e8db239..39429950b71c6 100644
--- a/pkgs/development/python-modules/ndg-httpsclient/default.nix
+++ b/pkgs/development/python-modules/ndg-httpsclient/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, pyasn1
 , pyopenssl
 }:
 
@@ -8,8 +9,6 @@ buildPythonPackage rec {
   version = "0.5.1";
   pname = "ndg-httpsclient";
 
-  propagatedBuildInputs = [ pyopenssl ];
-
   src = fetchFromGitHub {
     owner = "cedadev";
     repo = "ndg_httpsclient";
@@ -17,6 +16,12 @@ buildPythonPackage rec {
     sha256 = "0lhsgs4am4xyjssng5p0vkfwqncczj1dpa0vss4lrhzq86mnn5rz";
   };
 
+
+  propagatedBuildInputs = [
+    pyasn1
+    pyopenssl
+  ];
+
   # uses networking
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/neo4j-driver/default.nix b/pkgs/development/python-modules/neo4j-driver/default.nix
index 63a2efafbd6ec..c86ae1b00c4fa 100644
--- a/pkgs/development/python-modules/neo4j-driver/default.nix
+++ b/pkgs/development/python-modules/neo4j-driver/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "neo4j-driver";
-  version = "4.4.2";
+  version = "4.4.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "neo4j";
     repo = "neo4j-python-driver";
     rev = version;
-    sha256 = "sha256-rYedmxQvT+RjVdbDckLv00J4YuEQtMuIc8Q5FGWr3Rw=";
+    sha256 = "sha256-YApj4EA0e3Q9V+ujnJC7/eSS0DybnZH22LnnSla/mw4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/net2grid/default.nix b/pkgs/development/python-modules/net2grid/default.nix
deleted file mode 100644
index 05b5321a69cfa..0000000000000
--- a/pkgs/development/python-modules/net2grid/default.nix
+++ /dev/null
@@ -1,58 +0,0 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, yarl
-}:
-
-buildPythonPackage rec {
-  pname = "net2grid";
-  version = "3.0.0";
-  format = "pyproject";
-
-  disabled = pythonOlder "3.9";
-
-  src = fetchFromGitHub {
-    owner = "klaasnicolaas";
-    repo = "python-net2grid";
-    rev = "v${version}";
-    hash = "sha256-nT9qMv4Zr7SjNwHRN3HRR11yl+Oue8VVCfJr2n1D02Q=";
-  };
-
-  nativeBuildInputs = [
-    poetry-core
-  ];
-
-  propagatedBuildInputs = [
-    aiohttp
-    yarl
-  ];
-
-  checkInputs = [
-    aresponses
-    pytest-asyncio
-    pytestCheckHook
-  ];
-
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace '"0.0.0"' '"${version}"' \
-      --replace 'addopts = "--cov"' ""
-  '';
-
-  pythonImportsCheck = [
-    "net2grid"
-  ];
-
-  meta = with lib; {
-    description = "Module for interacting with NET2GRID devices";
-    homepage = "https://github.com/klaasnicolaas/python-net2grid";
-    license = with licenses; [ mit ];
-    maintainers = with maintainers; [ fab ];
-  };
-}
diff --git a/pkgs/development/python-modules/netmiko/default.nix b/pkgs/development/python-modules/netmiko/default.nix
index 0934439f74730..3081b5a6b7cdc 100644
--- a/pkgs/development/python-modules/netmiko/default.nix
+++ b/pkgs/development/python-modules/netmiko/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "netmiko";
-  version = "3.4.0";
+  version = "4.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "14s9c6ws32swizcmfdqmlkkk2yqw6071ybq3w94fhkl6jzfvkbdc";
+    sha256 = "sha256-fVhBkiO1JpqMIFl32xlwSjeCd7aObocXPAr069fKdmc=";
   };
 
   buildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/networkx/default.nix b/pkgs/development/python-modules/networkx/default.nix
index e8769f9efc7dd..140eb9bb24c95 100644
--- a/pkgs/development/python-modules/networkx/default.nix
+++ b/pkgs/development/python-modules/networkx/default.nix
@@ -10,11 +10,11 @@
 buildPythonPackage rec {
   pname = "networkx";
   # upgrade may break sage, please test the sage build or ping @timokau on upgrade
-  version = "2.6.3";
+  version = "2.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c0946ed31d71f1b732b5aaa6da5a0388a345019af232ce2f49c766e2d6795c51";
+    sha256 = "sha256-0RlLp1Pl7tB83s0dI8XNejx3IJm9jb0v6jZniM9N57o=";
   };
 
   propagatedBuildInputs = [ decorator setuptools ];
diff --git a/pkgs/development/python-modules/nextcord/default.nix b/pkgs/development/python-modules/nextcord/default.nix
index ab814061b58db..5f4997259136e 100644
--- a/pkgs/development/python-modules/nextcord/default.nix
+++ b/pkgs/development/python-modules/nextcord/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "nextcord";
-  version = "2.0.0a9";
+  version = "2.0.0a10";
 
   format = "setuptools";
 
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "nextcord";
     repo = "nextcord";
     rev = version;
-    hash = "sha256-9UJLfSYud/pIkIkJ75jE3pxsYm5bKNNRCwjDerDHp9c=";
+    hash = "sha256-p99WJ4y2iJQTI3wHbh+jwJyLnE3aBXnHxrehDYYek/4=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/nibabel/default.nix b/pkgs/development/python-modules/nibabel/default.nix
index 60f5fcde63fe9..dc0a6d12f0c1b 100644
--- a/pkgs/development/python-modules/nibabel/default.nix
+++ b/pkgs/development/python-modules/nibabel/default.nix
@@ -3,7 +3,7 @@
 , fetchPypi
 , isPy27
 , packaging
-, pytest
+, pytestCheckHook
 , nose
 , numpy
 , h5py
@@ -23,11 +23,14 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ numpy scipy h5py packaging pydicom ];
 
-  checkInputs = [ nose pytest ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  checkPhase = ''
-    pytest
-  '';
+  disabledTests = [
+    # https://github.com/nipy/nibabel/issues/951
+    "test_filenames"
+  ];
 
   meta = with lib; {
     homepage = "https://nipy.org/nibabel";
diff --git a/pkgs/development/python-modules/nilearn/default.nix b/pkgs/development/python-modules/nilearn/default.nix
index 60e11ef1d12da..2494a446a8113 100644
--- a/pkgs/development/python-modules/nilearn/default.nix
+++ b/pkgs/development/python-modules/nilearn/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "nilearn";
-  version = "0.8.1";
+  version = "0.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a0489940855130f35bbc4cac0750479a6f82025215ea7b1d778faca064219298";
+    sha256 = "sha256-+cjjCt71FImRCux3JLVpneF4Qn065jhz2tmyPdMh/nY=";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/nipype/neurdflib.nix b/pkgs/development/python-modules/nipype/neurdflib.nix
index 0a266ff7bf826..8095b0fb0401e 100644
--- a/pkgs/development/python-modules/nipype/neurdflib.nix
+++ b/pkgs/development/python-modules/nipype/neurdflib.nix
@@ -3,7 +3,7 @@
 , fetchPypi
 , isodate
 , html5lib
-, SPARQLWrapper
+, sparqlwrapper
 , networkx
 , nose
 , python
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     sha256 = "d34493cee15029ff5db16157429585ff863ba5542675a4d8a94a0da1bc6e3a50";
   };
 
-  propagatedBuildInputs = [ isodate html5lib SPARQLWrapper ];
+  propagatedBuildInputs = [ isodate html5lib sparqlwrapper ];
 
   checkInputs = [ networkx nose ];
 
diff --git a/pkgs/development/python-modules/nix-prefetch-github/default.nix b/pkgs/development/python-modules/nix-prefetch-github/default.nix
index 6df6f15c068be..7ef63348dfb3a 100644
--- a/pkgs/development/python-modules/nix-prefetch-github/default.nix
+++ b/pkgs/development/python-modules/nix-prefetch-github/default.nix
@@ -2,12 +2,13 @@
 , lib
 , buildPythonPackage
 , git
+, which
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "nix-prefetch-github";
-  version = "5.0.1";
+  version = "5.1.2";
 
   disabled = pythonOlder "3.7";
 
@@ -15,10 +16,10 @@ buildPythonPackage rec {
     owner = "seppeljordan";
     repo = "nix-prefetch-github";
     rev = "v${version}";
-    sha256 = "DOmFfUCLJ+rnS4PznQaQrDrqjUU4DXmOrC9BspqKZVM=";
+    sha256 = "GHUH3Oog800qrdgXs5AEa4O6ovZ1LT0k3P4YwEHfwlY=";
   };
 
-  checkInputs = [ git ];
+  checkInputs = [ git which ];
 
   checkPhase = ''
     python -m unittest discover
diff --git a/pkgs/development/python-modules/nocasedict/default.nix b/pkgs/development/python-modules/nocasedict/default.nix
index 982f2abe880d9..d9140d591c81c 100644
--- a/pkgs/development/python-modules/nocasedict/default.nix
+++ b/pkgs/development/python-modules/nocasedict/default.nix
@@ -1,5 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi
-, pytest
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, six
 }:
 
 buildPythonPackage rec {
@@ -11,8 +14,12 @@ buildPythonPackage rec {
     sha256 = "sha256-giC5e6BrCOst7e13TEBsd+DKDVNSrnEkn2+dHyoXvXs=";
   };
 
+  propagatedBuildInputs = [
+    six
+  ];
+
   checkInputs = [
-    pytest
+    pytestCheckHook
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/nodeenv/default.nix b/pkgs/development/python-modules/nodeenv/default.nix
index d88661ae757cb..1ff2d47b32d63 100644
--- a/pkgs/development/python-modules/nodeenv/default.nix
+++ b/pkgs/development/python-modules/nodeenv/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, setuptools }:
+{ lib, buildPythonPackage, fetchPypi, setuptools, python, which }:
 
 buildPythonPackage rec {
   pname = "nodeenv";
@@ -16,6 +16,13 @@ buildPythonPackage rec {
   # Tests not included in PyPI tarball
   doCheck = false;
 
+  preFixup = ''
+    substituteInPlace $out/${python.sitePackages}/nodeenv.py \
+      --replace '["which", candidate]' '["${lib.getBin which}/bin/which", candidate]'
+  '';
+
+  pythonImportsCheck = [ "nodeenv" ];
+
   meta = with lib; {
     description = "Node.js virtual environment builder";
     homepage = "https://github.com/ekalinin/nodeenv";
diff --git a/pkgs/development/python-modules/nomadnet/default.nix b/pkgs/development/python-modules/nomadnet/default.nix
new file mode 100644
index 0000000000000..4505c33a696bd
--- /dev/null
+++ b/pkgs/development/python-modules/nomadnet/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, rns
+, fetchFromGitHub
+, lxmf
+, urwid
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "nomadnet";
+  version = "0.1.7";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "markqvist";
+    repo = "NomadNet";
+    rev = version;
+    hash = "sha256-WJpcV6+cnK1525lbYvkWqrGasioph72nuoNV4oWxVK0=";
+  };
+
+  propagatedBuildInputs = [
+    rns
+    lxmf
+    urwid
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "nomadnet"
+  ];
+
+  meta = with lib; {
+    description = "Off-grid, resilient mesh communication";
+    homepage = "https://github.com/markqvist/NomadNet";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/nose-cover3/default.nix b/pkgs/development/python-modules/nose-cover3/default.nix
deleted file mode 100644
index b75dcc526c5fd..0000000000000
--- a/pkgs/development/python-modules/nose-cover3/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-}:
-
-buildPythonPackage rec {
-  pname = "nose-cover3";
-  version = "0.1.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1la4hhc1yszjpcchvkqk5xmzlb2g1b3fgxj9wwc58qc549whlcc1";
-  };
-
-  propagatedBuildInputs = [ nose ];
-
-  # No tests included
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Coverage 3.x support for Nose";
-    homepage = "https://github.com/ask/nosecover3";
-    license = licenses.lgpl21;
-  };
-
-}
diff --git a/pkgs/development/python-modules/nose/default.nix b/pkgs/development/python-modules/nose/default.nix
index 451c71897da9a..586af7a904233 100644
--- a/pkgs/development/python-modules/nose/default.nix
+++ b/pkgs/development/python-modules/nose/default.nix
@@ -23,7 +23,9 @@ buildPythonPackage rec {
       --replace "from setuptools.command.build_py import Mixin2to3" "from distutils.util import Mixin2to3"
   '';
 
-  preBuild = ''
+  preBuild = lib.optionalString
+      ((python.isPy3k or false) && (python.pname != "pypy3"))
+  ''
     2to3 -wn nose functional_tests unit_tests
   '';
 
diff --git a/pkgs/development/python-modules/notebook/default.nix b/pkgs/development/python-modules/notebook/default.nix
index 7a1902cb21144..3ead3cf4fe200 100644
--- a/pkgs/development/python-modules/notebook/default.nix
+++ b/pkgs/development/python-modules/notebook/default.nix
@@ -27,12 +27,12 @@
 
 buildPythonPackage rec {
   pname = "notebook";
-  version = "6.4.7";
+  version = "6.4.10";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b01da66f11a203b3839d6afa4013674bcfff41c36552f9ad0fbcb2d93c92764a";
+    sha256 = "sha256-JAina8YokoOo7s/KZ+KY7IPGfbUaTC4bcT3RgLs56Q4=";
   };
 
   LC_ALL = "en_US.utf8";
diff --git a/pkgs/development/python-modules/nplusone/default.nix b/pkgs/development/python-modules/nplusone/default.nix
index d9a340d824918..898d209d91381 100644
--- a/pkgs/development/python-modules/nplusone/default.nix
+++ b/pkgs/development/python-modules/nplusone/default.nix
@@ -8,7 +8,6 @@
 , mock
 , peewee
 , pytest-django
-, pytest-pythonpath
 , pytestCheckHook
 , six
 , sqlalchemy
@@ -38,7 +37,6 @@ buildPythonPackage rec {
     mock
     peewee
     pytest-django
-    pytest-pythonpath
     pytestCheckHook
     sqlalchemy
     webtest
@@ -54,6 +52,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pytest.ini \
+      --replace "python_paths" "pythonpath" \
       --replace "--cov nplusone --cov-report term-missing" ""
   '';
 
diff --git a/pkgs/development/python-modules/numba/default.nix b/pkgs/development/python-modules/numba/default.nix
index c1415a07b68e0..d656a56e3c17d 100644
--- a/pkgs/development/python-modules/numba/default.nix
+++ b/pkgs/development/python-modules/numba/default.nix
@@ -13,21 +13,33 @@
 
 # CUDA-only dependencies:
 , addOpenGLRunpath ? null
-, cudatoolkit ? null
+, cudaPackages ? {}
 
 # CUDA flags:
 , cudaSupport ? false
 }:
-buildPythonPackage rec {
-  version = "0.55.0";
+
+let
+  inherit (cudaPackages) cudatoolkit;
+in buildPythonPackage rec {
+  version = "0.55.1";
   pname = "numba";
   disabled = pythonOlder "3.6" || pythonAtLeast "3.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-siHr2ZdmKh3Ld+TwkUDgIvv+dXetB4H8LgIUE126bL0=";
+    sha256 = "sha256-A+kGmiZm0chPk7ANvXFvuP7d6Lssbvr6LwSEKkZELqM=";
   };
 
+  postPatch = ''
+    # numpy
+    substituteInPlace setup.py \
+      --replace "1.22" "2"
+
+    substituteInPlace numba/__init__.py \
+      --replace "(1, 21)" "(2, 0)"
+  '';
+
   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1";
 
   propagatedBuildInputs = [ numpy llvmlite setuptools ] ++ lib.optionals cudaSupport [ cudatoolkit cudatoolkit.lib ];
diff --git a/pkgs/development/python-modules/numpydoc/default.nix b/pkgs/development/python-modules/numpydoc/default.nix
index 0f57847b3a624..b770ac26fbd7f 100644
--- a/pkgs/development/python-modules/numpydoc/default.nix
+++ b/pkgs/development/python-modules/numpydoc/default.nix
@@ -1,23 +1,54 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy27
 , jinja2
-, nose
-, pytest
 , sphinx
+, pytestCheckHook
+, matplotlib
 }:
 
 buildPythonPackage rec {
   pname = "numpydoc";
-  version = "1.1.0";
+  version = "1.2.1";
+  format = "setuptools";
+
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname;
     inherit version;
-    sha256 = "c36fd6cb7ffdc9b4e165a43f67bf6271a7b024d0bb6b00ac468c9e2bfc76448e";
+    sha256 = "sha256-fOgm7Q1Uw/3JCXmSqNc6TUWdxGhhE1HGjkRP7ESkWvY=";
   };
 
-  checkInputs = [ nose pytest ];
-  propagatedBuildInputs = [ sphinx jinja2 ];
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "Jinja2>=2.10,<3.1" "Jinja2>=2.10,<3.2"
+    substituteInPlace setup.cfg \
+      --replace "--cov-report=" "" \
+      --replace "--cov=numpydoc" ""
+  '';
+
+  propagatedBuildInputs = [
+    jinja2
+    sphinx
+  ];
+
+  checkInputs = [
+    matplotlib
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # https://github.com/numpy/numpydoc/issues/373
+    "test_MyClass"
+    "test_my_function"
+    "test_reference"
+  ];
+
+  pythonImportsCheck = [
+    "numpydoc"
+  ];
 
   meta = {
     description = "Sphinx extension to support docstrings in Numpy format";
diff --git a/pkgs/development/python-modules/nunavut/default.nix b/pkgs/development/python-modules/nunavut/default.nix
index f4cc9d3140e46..4cfce289917af 100644
--- a/pkgs/development/python-modules/nunavut/default.nix
+++ b/pkgs/development/python-modules/nunavut/default.nix
@@ -2,22 +2,24 @@
 , buildPythonPackage
 , pythonOlder
 , fetchPypi
+, importlib-resources
 , pydsdl
 , pyyaml
 }:
 
  buildPythonPackage rec {
   pname = "nunavut";
-  version = "1.6.2";
+  version = "1.7.5";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c6f99eaa65935b2c8a3f004025fb3c0309e11655c391d0fcd318d2a8665ca5c4";
+    sha256 = "sha256-4wZfj2C6aUNqHaA00KiiXbKOMf/XBSD0N2+9c++e0K8=";
   };
 
   propagatedBuildInputs = [
+    importlib-resources
     pydsdl
     pyyaml
   ];
diff --git a/pkgs/development/python-modules/oasatelematics/default.nix b/pkgs/development/python-modules/oasatelematics/default.nix
new file mode 100644
index 0000000000000..c4d7ca1213872
--- /dev/null
+++ b/pkgs/development/python-modules/oasatelematics/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "oasatelematics";
+  version = "0.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "panosmz";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-3O7XbNVj1S3ZwheklEhm0ivw16Tj7drML/xYC9383Kg=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "oasatelematics"
+  ];
+
+  meta = with lib; {
+    description = "Python wrapper for the OASA Telematics API";
+    homepage = "https://github.com/panosmz/oasatelematics";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/oauthlib/default.nix b/pkgs/development/python-modules/oauthlib/default.nix
index 01e6ca29b5d9b..3a2f5cb1bddc5 100644
--- a/pkgs/development/python-modules/oauthlib/default.nix
+++ b/pkgs/development/python-modules/oauthlib/default.nix
@@ -1,28 +1,26 @@
 { lib
-, buildPythonPackage
-, fetchFromGitHub
-
-# propagates
 , blinker
+, buildPythonPackage
 , cryptography
-, pyjwt
-
-# test
+, fetchFromGitHub
 , mock
+, pyjwt
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "oauthlib";
-  version = "3.1.1";
+  version = "3.2.0";
   format = "setuptools";
 
-  # master supports pyjwt==1.7.1
+  disabled = pythonOlder "3.7";
+
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256:1bgxpzh11i0x7h9py3a29cz5z714b3p498b62znnn5ciy0cr80sv";
+    hash = "sha256-41JFURG8G8BjlAlNu2+lbj84XR/trAk1U5OPYxPq+5M=";
   };
 
   propagatedBuildInputs = [
@@ -36,10 +34,14 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pythonImportsCheck = [
+    "oauthlib"
+  ];
+
   meta = with lib; {
+    description = "Generic, spec-compliant, thorough implementation of the OAuth request-signing logic";
     homepage = "https://github.com/idan/oauthlib";
-    description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic";
-    maintainers = with maintainers; [ prikhi ];
     license = licenses.bsd3;
+    maintainers = with maintainers; [ prikhi ];
   };
 }
diff --git a/pkgs/development/python-modules/objax/default.nix b/pkgs/development/python-modules/objax/default.nix
index da0a70aafb4c7..84d56962cc4d9 100644
--- a/pkgs/development/python-modules/objax/default.nix
+++ b/pkgs/development/python-modules/objax/default.nix
@@ -7,7 +7,7 @@
 , parameterized
 , pillow
 , scipy
-, tensorflow-tensorboard
+, tensorboard
 }:
 
 buildPythonPackage rec {
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     parameterized
     pillow
     scipy
-    tensorflow-tensorboard
+    tensorboard
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/oci/default.nix b/pkgs/development/python-modules/oci/default.nix
index 8fd06ae3b403c..879a317469e20 100644
--- a/pkgs/development/python-modules/oci/default.nix
+++ b/pkgs/development/python-modules/oci/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "oci";
-  version = "2.60.0";
+  version = "2.63.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "oracle";
     repo = "oci-python-sdk";
     rev = "v${version}";
-    hash = "sha256-fXeea4MftVSJWzanHeAuERRiQLBp8l1l1Cw2lG3uz24=";
+    hash = "sha256-EIn7BRXsVf7R2ij8iK3hrNWnLehxKDBlk96lAhFh0xw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ocrmypdf/default.nix b/pkgs/development/python-modules/ocrmypdf/default.nix
index fe5211802807d..72565e55419c8 100644
--- a/pkgs/development/python-modules/ocrmypdf/default.nix
+++ b/pkgs/development/python-modules/ocrmypdf/default.nix
@@ -27,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "ocrmypdf";
-  version = "13.4.1";
+  version = "13.4.3";
 
   src = fetchFromGitHub {
     owner = "jbarlow83";
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     extraPostFetch = ''
       rm "$out/.git_archival.txt"
     '';
-    sha256 = "sha256-gxgeEwm3cYNllcmRTZhdyIWWGKXTewyVW314k732swE=";
+    hash = "sha256-kriT3NV9Lj44WjOeK6+pILjfRMt9QMcKU57si394xxI=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/ondilo/default.nix b/pkgs/development/python-modules/ondilo/default.nix
index 271243ab791e1..c766e2cb158d9 100644
--- a/pkgs/development/python-modules/ondilo/default.nix
+++ b/pkgs/development/python-modules/ondilo/default.nix
@@ -4,30 +4,35 @@
 , oauthlib
 , pythonOlder
 , requests
-, requests_oauthlib
+, requests-oauthlib
 }:
 
 buildPythonPackage rec {
   pname = "ondilo";
   version = "0.3.0";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "JeromeHXP";
     repo = pname;
     rev = version;
-    sha256 = "sha256-MI6K+41I/IVi+GRBdmRIHbljULDFLAwpo3W8tdxCOBM=";
+    hash = "sha256-MI6K+41I/IVi+GRBdmRIHbljULDFLAwpo3W8tdxCOBM=";
   };
 
   propagatedBuildInputs = [
     oauthlib
     requests
-    requests_oauthlib
+    requests-oauthlib
   ];
 
   # Project has no tests
   doCheck = false;
-  pythonImportsCheck = [ "ondilo" ];
+
+  pythonImportsCheck = [
+    "ondilo"
+  ];
 
   meta = with lib; {
     description = "Python package to access Ondilo ICO APIs";
diff --git a/pkgs/development/python-modules/onnx/default.nix b/pkgs/development/python-modules/onnx/default.nix
index d32b82365dc71..377521bb2f878 100644
--- a/pkgs/development/python-modules/onnx/default.nix
+++ b/pkgs/development/python-modules/onnx/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, bash
 , cmake
 , fetchPypi
 , isPy27
@@ -14,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "onnx";
-  version = "1.10.2";
+  version = "1.11.0";
   format = "setuptools";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-JNc8p9/X5sczmUT4lVS0AQcZiZM3kk/KFEfY8bXbUNY=";
+    sha256 = "sha256-7KIkx8LI7kByoHQ+SJioSpvfgpe15ZEKJjLkxBgv+yo=";
   };
 
   nativeBuildInputs = [
@@ -43,8 +44,9 @@ buildPythonPackage rec {
 
   postPatch = ''
     chmod +x tools/protoc-gen-mypy.sh.in
-    patchShebangs tools/protoc-gen-mypy.sh.in tools/protoc-gen-mypy.py
-
+    patchShebangs tools/protoc-gen-mypy.py
+    substituteInPlace tools/protoc-gen-mypy.sh.in \
+      --replace "/bin/bash" "${bash}/bin/bash"
     substituteInPlace setup.py \
       --replace "setup_requires.append('pytest-runner')" ""
   '';
@@ -53,6 +55,11 @@ buildPythonPackage rec {
     export MAX_JOBS=$NIX_BUILD_CORES
   '';
 
+  disabledTestPaths = [
+    # Unexpected output fields from running code: {'stderr'}
+    "onnx/examples/np_array_tensorproto.ipynb"
+  ];
+
   # The executables are just utility scripts that aren't too important
   postInstall = ''
     rm -r $out/bin
diff --git a/pkgs/development/python-modules/openai/default.nix b/pkgs/development/python-modules/openai/default.nix
index 4fb744826b794..b137050ebff88 100644
--- a/pkgs/development/python-modules/openai/default.nix
+++ b/pkgs/development/python-modules/openai/default.nix
@@ -9,6 +9,7 @@
 , pandas-stubs
 , requests
 , tqdm
+, wandb
 
 # Check dependencies
 , pytest-mock
@@ -17,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "openai";
-  version = "0.16.0";
+  version = "0.18.1";
 
   disabled = pythonOlder "3.7.1";
 
@@ -26,7 +27,7 @@ buildPythonPackage rec {
     owner = "openai";
     repo = "openai-python";
     rev = "v${version}";
-    sha256 = "sha256-9BxFOiGIf3Cy7OU0as6onV5ltECInM9wwCr+qCMuPbU=";
+    sha256 = "sha256-ii/w29aRGhuzR6E+kbknsSrVZlOurpy/tTVGeAYKkXo=";
   };
 
   propagatedBuildInputs = [
@@ -35,6 +36,7 @@ buildPythonPackage rec {
     pandas-stubs
     requests
     tqdm
+    wandb
   ];
 
   pythonImportsCheck = [ "openai" ];
diff --git a/pkgs/development/python-modules/openapi-core/default.nix b/pkgs/development/python-modules/openapi-core/default.nix
index 199ea38ae4ab8..32989e7f9ce5a 100644
--- a/pkgs/development/python-modules/openapi-core/default.nix
+++ b/pkgs/development/python-modules/openapi-core/default.nix
@@ -68,6 +68,8 @@ buildPythonPackage rec {
   disabledTestPaths = [
     # AttributeError: 'str' object has no attribute '__name__'
     "tests/integration/validation"
+    # requires secrets and additional configuration
+    "tests/integration/contrib/test_django.py"
     # Unable to detect SECRET_KEY and ROOT_URLCONF
     "tests/integration/contrib/test_django.py"
   ];
diff --git a/pkgs/development/python-modules/openapi-schema-validator/default.nix b/pkgs/development/python-modules/openapi-schema-validator/default.nix
index 8251c2cd01751..ced5f8ed68b8a 100644
--- a/pkgs/development/python-modules/openapi-schema-validator/default.nix
+++ b/pkgs/development/python-modules/openapi-schema-validator/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "openapi-schema-validator";
-  version = "0.2.0";
+  version = "0.2.3";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "p1c2u";
     repo = pname;
     rev = version;
-    sha256 = "sha256-HoXtDlXOoYqzsM4FxVfLQdIlpJXaNUcQo8//B4JqJoA=";
+    sha256 = "sha256-rgl2B55dnbpZszr+gWM0FgeXMKfrkDG7HeZBSw5Eles=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/openapi-spec-validator/default.nix b/pkgs/development/python-modules/openapi-spec-validator/default.nix
index 4e61a86a5013e..7ef70ab3d3ff8 100644
--- a/pkgs/development/python-modules/openapi-spec-validator/default.nix
+++ b/pkgs/development/python-modules/openapi-spec-validator/default.nix
@@ -1,17 +1,23 @@
 { lib, buildPythonPackage, isPy27, fetchPypi
 , jsonschema, openapi-schema-validator, pyyaml, six, pathlib
-, mock, pytest, pytest-cov, pytest-flake8, tox, setuptools }:
+, mock, pytest, pytest-cov, pytest-flake8, tox, setuptools
+, poetry-core
+, requests
+}:
 
 buildPythonPackage rec {
   pname = "openapi-spec-validator";
-  version = "0.3.1";
+  version = "0.4.0";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3d70e6592754799f7e77a45b98c6a91706bdd309a425169d17d8e92173e198a2";
+    sha256 = "sha256-l/JYhQr8l7BI98JlOFXg+I+masEDwr5Qd8eWCsoq1Jo=";
   };
 
-  propagatedBuildInputs = [ jsonschema openapi-schema-validator pyyaml six setuptools ]
+  nativeBuildInputs = [ poetry-core ];
+
+  propagatedBuildInputs = [ jsonschema openapi-schema-validator pyyaml six setuptools requests ]
     ++ (lib.optionals (isPy27) [ pathlib ]);
 
   checkInputs = [ mock pytest pytest-cov pytest-flake8 tox ];
diff --git a/pkgs/development/python-modules/openhomedevice/default.nix b/pkgs/development/python-modules/openhomedevice/default.nix
index 57c0182abd780..533a6f66f7f01 100644
--- a/pkgs/development/python-modules/openhomedevice/default.nix
+++ b/pkgs/development/python-modules/openhomedevice/default.nix
@@ -8,14 +8,16 @@
 
 buildPythonPackage rec {
   pname = "openhomedevice";
-  version = "2.0.1";
+  version = "2.0.2";
+  format = "setuptools";
+
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "bazwilliams";
     repo = pname;
     rev = version;
-    sha256 = "sha256-BQgwXg15+xEGfPm0HJWpKXbNuCgc0VcAD5AuVSDXd8g=";
+    hash = "sha256-D4n/fv+tgdKiU7CemI+12cqoox2hsqRYlCHY7daD5fM=";
   };
 
   propagatedBuildInputs = [
@@ -26,7 +28,10 @@ buildPythonPackage rec {
   # Tests are currently outdated
   # https://github.com/bazwilliams/openhomedevice/issues/20
   doCheck = false;
-  pythonImportsCheck = [ "openhomedevice" ];
+
+  pythonImportsCheck = [
+    "openhomedevice"
+  ];
 
   meta = with lib; {
     description = "Python module to access Linn Ds and Openhome devices";
diff --git a/pkgs/development/python-modules/openshift/default.nix b/pkgs/development/python-modules/openshift/default.nix
index 78e0c53c9112f..c233f88c73f9c 100644
--- a/pkgs/development/python-modules/openshift/default.nix
+++ b/pkgs/development/python-modules/openshift/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "openshift";
-  version = "0.12.1";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "openshift";
     repo = "openshift-restclient-python";
     rev = "v${version}";
-    sha256 = "1di55xg3nl4dwrrfw314p4mfm6593kdi7ia517v1sm6x5p4hjl78";
+    sha256 = "sha256-9mMHih2xuQve8hEnc5x4f9Pd4wX7IMy3vrxxGFCG+8o=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/opentracing/default.nix b/pkgs/development/python-modules/opentracing/default.nix
index 381b0d76b1445..bf7ec6a938ff4 100644
--- a/pkgs/development/python-modules/opentracing/default.nix
+++ b/pkgs/development/python-modules/opentracing/default.nix
@@ -5,12 +5,15 @@
 , futures ? null
 , gevent
 , mock
-, pytest
-, tornado }:
+, pytestCheckHook
+, tornado
+, six
+}:
 
 buildPythonPackage rec {
   pname = "opentracing";
   version = "2.4.0";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
@@ -19,11 +22,13 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = lib.optional isPy27 futures;
 
-  checkInputs = [ gevent mock pytest tornado ];
-
-  checkPhase = ''
-    pytest
-  '';
+  checkInputs = [
+    gevent
+    mock
+    pytestCheckHook
+    six
+    tornado
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/opentracing/opentracing-python";
diff --git a/pkgs/development/python-modules/optax/default.nix b/pkgs/development/python-modules/optax/default.nix
index f3790a3f59f42..b0f896a18ebb1 100644
--- a/pkgs/development/python-modules/optax/default.nix
+++ b/pkgs/development/python-modules/optax/default.nix
@@ -38,7 +38,6 @@ buildPythonPackage rec {
     tensorflow
     tensorflow-datasets
   ];
-  pytestFlagsArray = [ "-n $NIX_BUILD_CORES" ];
 
   pythonImportsCheck = [
     "optax"
diff --git a/pkgs/development/python-modules/ordered-set/default.nix b/pkgs/development/python-modules/ordered-set/default.nix
index 7546566cb3aac..8ea71fd2d901f 100644
--- a/pkgs/development/python-modules/ordered-set/default.nix
+++ b/pkgs/development/python-modules/ordered-set/default.nix
@@ -1,24 +1,39 @@
-{ buildPythonPackage, fetchPypi, lib, isPy27, pytest }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, flit-core
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "ordered-set";
-  version = "4.0.2";
-  disabled = isPy27;
+  version = "4.1.0";
+  format = "pyproject";
 
-  checkInputs = [ pytest ];
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "159syfbqnwqnivzjfn3x7ak3xwrxmnzbji7c2qhj1jjv0pgv54xs";
+    sha256 = "sha256-aUqORMh2V8WSku3nKJHrkdNBMfZTFGOqswCRkcdzZKg=";
   };
 
-  checkPhase = ''
-    py.test test.py
-  '';
+  nativeBuildInputs = [
+    flit-core
+  ];
 
-  meta = {
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "ordered_set"
+  ];
+
+  meta = with lib; {
     description = "A MutableSet that remembers its order, so that every entry has an index.";
-    license = lib.licenses.mit;
-    maintainers = [ lib.maintainers.MostAwesomeDude ];
+    homepage = "https://github.com/rspeer/ordered-set";
+    license = licenses.mit;
+    maintainers = with maintainers; [ MostAwesomeDude ];
   };
 }
diff --git a/pkgs/development/python-modules/ormar/default.nix b/pkgs/development/python-modules/ormar/default.nix
index 5546f58b26240..8678e512fdf0e 100644
--- a/pkgs/development/python-modules/ormar/default.nix
+++ b/pkgs/development/python-modules/ormar/default.nix
@@ -70,8 +70,8 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace 'SQLAlchemy = ">=1.3.18,<=1.4.29"' 'SQLAlchemy = ">=1.3.18"' \
-      --replace 'databases = ">=0.3.2,!=0.5.0,!=0.5.1,!=0.5.2,!=0.5.3,<0.5.5"' 'databases = ">=0.5.5"'
+      --replace 'SQLAlchemy = ">=1.3.18,<=1.4.31"' 'SQLAlchemy = ">=1.3.18"' \
+      --replace 'databases = ">=0.3.2,!=0.5.0,!=0.5.1,!=0.5.2,!=0.5.3,<=0.5.5"' 'databases = ">=0.5.5"'
   '';
 
   disabledTests = [
@@ -84,8 +84,8 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    homepage = "https://github.com/collerek/ormar";
     description = "Async ORM with fastapi in mind and pydantic validation";
+    homepage = "https://github.com/collerek/ormar";
     license = licenses.mit;
     maintainers = with maintainers; [ andreasfelix ];
   };
diff --git a/pkgs/development/python-modules/osc-lib/default.nix b/pkgs/development/python-modules/osc-lib/default.nix
index e9a662412b771..2777fc5be7546 100644
--- a/pkgs/development/python-modules/osc-lib/default.nix
+++ b/pkgs/development/python-modules/osc-lib/default.nix
@@ -43,7 +43,13 @@ buildPythonPackage rec {
   ];
 
   checkPhase = ''
-    stestr run
+    # tests parse cli output which slightly changed
+    stestr run -e <(echo "
+      osc_lib.tests.utils.test_tags.TestTagHelps.test_add_tag_filtering_option_to_parser
+      osc_lib.tests.utils.test_tags.TestTagHelps.test_add_tag_option_to_parser_for_create
+      osc_lib.tests.utils.test_tags.TestTagHelps.test_add_tag_option_to_parser_for_set
+      osc_lib.tests.utils.test_tags.TestTagHelps.test_add_tag_option_to_parser_for_unset
+    ")
   '';
 
   pythonImportsCheck = [ "osc_lib" ];
diff --git a/pkgs/development/python-modules/oslo-context/default.nix b/pkgs/development/python-modules/oslo-context/default.nix
index f38b9bb09b39d..7f5fa9b98ca0e 100644
--- a/pkgs/development/python-modules/oslo-context/default.nix
+++ b/pkgs/development/python-modules/oslo-context/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "oslo.context";
-  version = "3.4.0";
+  version = "4.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "970f96361c5de9a5dc86d48a648289d77118180ca13ba5eeb307137736ffa953";
+    sha256 = "sha256-damnIqVS+6ionooBAo+oKmGQqzF6lZG7gzA6IhCnkUQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/oslo-log/default.nix b/pkgs/development/python-modules/oslo-log/default.nix
index a2e6eac8e3894..c2b11dd3167bb 100644
--- a/pkgs/development/python-modules/oslo-log/default.nix
+++ b/pkgs/development/python-modules/oslo-log/default.nix
@@ -11,16 +11,20 @@
 , pyinotify
 , python-dateutil
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "oslo-log";
-  version = "4.6.1";
+  version = "4.7.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     pname = "oslo.log";
     inherit version;
-    sha256 = "0dlnxjci9mpwhgfv19fy1z7xrdp8m95skrj5dr60all3pr7n22f6";
+    hash = "sha256-ycLEyW098LLuuTG0djvbCpBbqvKbiVgW2Vd41p+hJwc=";
   };
 
   propagatedBuildInputs = [
@@ -44,7 +48,9 @@ buildPythonPackage rec {
     "test_logging_handle_error"
   ];
 
-  pythonImportsCheck = [ "oslo_log" ];
+  pythonImportsCheck = [
+    "oslo_log"
+  ];
 
   meta = with lib; {
     description = "oslo.log library";
diff --git a/pkgs/development/python-modules/ovh/default.nix b/pkgs/development/python-modules/ovh/default.nix
index 305b03b4d144d..b9ab287260d64 100644
--- a/pkgs/development/python-modules/ovh/default.nix
+++ b/pkgs/development/python-modules/ovh/default.nix
@@ -1,20 +1,45 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, mock
+, nose
+, requests
+, yanc
 }:
 
 buildPythonPackage rec {
   pname = "ovh";
-  version = "0.5.0";
-
-  # Needs yanc
-  doCheck = false;
+  version = "1.0.0";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f74d190c4bff0953d76124cb8ed319a8a999138720e42957f0db481ef4746ae8";
+    sha256 = "sha256-IQzwu0gwfPNPOLQLCO99KL5Hu2094Y+acQBFXVGzHhU=";
   };
 
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  checkInputs = [
+    mock
+    nose
+    yanc
+  ];
+
+  # requires network
+  checkPhase = ''
+    nosetests . \
+      -e test_config_get_conf \
+      -e test_config_get_custom_conf \
+      -e test_endpoints \
+      -e test_init_from_custom_config
+  '';
+
   meta = {
     description = "Thin wrapper around OVH's APIs";
     homepage = "https://github.com/ovh/python-ovh";
diff --git a/pkgs/development/python-modules/packageurl-python/default.nix b/pkgs/development/python-modules/packageurl-python/default.nix
index 5236cc7bbf8e5..c2d74d0d3c16c 100644
--- a/pkgs/development/python-modules/packageurl-python/default.nix
+++ b/pkgs/development/python-modules/packageurl-python/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "packageurl-python";
-  version = "0.9.8.1";
+  version = "0.9.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Z14OyAWPoIN6BAUEcXi96mp9C0aWaYP6eeHAoa+rHJ4=";
+    sha256 = "sha256-hyoENLmkSLP6l1cXEfad0qP7cjRa1myQsX2Cev6oLwk=";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/packaging/default.nix b/pkgs/development/python-modules/packaging/default.nix
index 648a548e521b5..69457e2a5569e 100644
--- a/pkgs/development/python-modules/packaging/default.nix
+++ b/pkgs/development/python-modules/packaging/default.nix
@@ -2,40 +2,44 @@
 , buildPythonPackage
 , fetchPypi
 , pyparsing
-, six
 , pytestCheckHook
 , pretend
 , setuptools
 }:
 
-buildPythonPackage rec {
-  pname = "packaging";
-  version = "21.3";
-  format = "pyproject";
+let
+  packaging = buildPythonPackage rec {
+    pname = "packaging";
+    version = "21.3";
+    format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-3UfEKSfYmrkR5gZRiQfMLTofOLvQJjhZcGQ/nFuOz+s=";
-  };
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "sha256-3UfEKSfYmrkR5gZRiQfMLTofOLvQJjhZcGQ/nFuOz+s=";
+    };
+
+    nativeBuildInputs = [
+      setuptools
+    ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+    propagatedBuildInputs = [ pyparsing ];
 
-  propagatedBuildInputs = [ pyparsing six ];
+    checkInputs = [
+      pytestCheckHook
+      pretend
+    ];
 
-  checkInputs = [
-    pytestCheckHook
-    pretend
-  ];
+    # Prevent circular dependency
+    doCheck = false;
 
-  # Prevent circular dependency
-  doCheck = false;
+    passthru.tests = packaging.overridePythonAttrs (_: { doCheck = true; });
 
-  meta = with lib; {
-    description = "Core utilities for Python packages";
-    homepage = "https://github.com/pypa/packaging";
-    license = [ licenses.bsd2 licenses.asl20 ];
-    maintainers = with maintainers; [ bennofs ];
+    meta = with lib; {
+      description = "Core utilities for Python packages";
+      homepage = "https://github.com/pypa/packaging";
+      license = with licenses; [ bsd2 asl20 ];
+      maintainers = with maintainers; [ bennofs ];
+    };
   };
-}
+in
+packaging
diff --git a/pkgs/development/python-modules/paho-mqtt/default.nix b/pkgs/development/python-modules/paho-mqtt/default.nix
index 341ef8321835b..fb249acf63333 100644
--- a/pkgs/development/python-modules/paho-mqtt/default.nix
+++ b/pkgs/development/python-modules/paho-mqtt/default.nix
@@ -5,6 +5,7 @@
 , isPy3k
 , pytestCheckHook
 , mock
+, six
 }:
 
 buildPythonPackage rec {
@@ -18,16 +19,9 @@ buildPythonPackage rec {
     sha256 = "sha256-9nH6xROVpmI+iTKXfwv2Ar1PAmWbEunI3HO0pZyK6Rg=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "pylama" "" \
-      --replace "'pytest-runner'" ""
-    substituteInPlace setup.cfg \
-      --replace "--pylama" ""
-  '';
-
   checkInputs = [
     pytestCheckHook
+    six
   ] ++ lib.optional (!isPy3k) [
     mock
   ];
diff --git a/pkgs/development/python-modules/pandas/default.nix b/pkgs/development/python-modules/pandas/default.nix
index 536f883f29a2d..70919715eefdc 100644
--- a/pkgs/development/python-modules/pandas/default.nix
+++ b/pkgs/development/python-modules/pandas/default.nix
@@ -27,12 +27,12 @@
 
 buildPythonPackage rec {
   pname = "pandas";
-  version = "1.3.5";
+  version = "1.4.2";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1e4285f5de1012de20ca46b188ccf33521bff61ba5c5ebd78b4fb28e5416a9f1";
+    sha256 = "sha256-krwfxYXxRjyoJ7RVNZV4FbfeshjFSbfBhALDIsdUmhI=";
   };
 
   nativeBuildInputs = [ cython ];
@@ -71,10 +71,16 @@ buildPythonPackage rec {
 
   doCheck = !stdenv.isAarch32 && !stdenv.isAarch64; # upstream doesn't test this architecture
 
+  # don't max out build cores, it breaks tests
+  dontUsePytestXdist = true;
+
   pytestFlagsArray = [
+    # https://github.com/pandas-dev/pandas/blob/main/test_fast.sh
+    "--skip-db"
     "--skip-slow"
     "--skip-network"
-    "--numprocesses" "0"
+    "-m" "'not single_cpu'"
+    "--numprocesses" "4"
   ];
 
   disabledTests = [
diff --git a/pkgs/development/python-modules/panel/default.nix b/pkgs/development/python-modules/panel/default.nix
index 48247112d958c..dca9b44c81738 100644
--- a/pkgs/development/python-modules/panel/default.nix
+++ b/pkgs/development/python-modules/panel/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "panel";
-  version = "0.12.7";
+  version = "0.13.0";
 
   format = "wheel";
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   # tries to fetch even more artifacts
   src = fetchPypi {
     inherit pname version format;
-    hash = "sha256-VcoMGYT48WduyuyTB/4KJybT/pBKV0hB1pSpZGagAeA=";
+    hash = "sha256-Iv1Lb45n2XUHSluZzdF2Bf/hXZmgs++9/av26rHgePc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/parameterizedtestcase/default.nix b/pkgs/development/python-modules/parameterizedtestcase/default.nix
index 20e662cd66d61..9d277af8d1a9c 100644
--- a/pkgs/development/python-modules/parameterizedtestcase/default.nix
+++ b/pkgs/development/python-modules/parameterizedtestcase/default.nix
@@ -27,5 +27,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/msabramo/python_unittest_parameterized_test_case";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
+    broken = python.isPy3k; # uses use_2to3
   };
 }
diff --git a/pkgs/development/python-modules/parse-type/default.nix b/pkgs/development/python-modules/parse-type/default.nix
index 5cfb4b610ce7a..3356853e8ac4a 100644
--- a/pkgs/development/python-modules/parse-type/default.nix
+++ b/pkgs/development/python-modules/parse-type/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "parse-type";
-  version = "0.5.6";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "jenisys";
     repo = "parse_type";
     rev = "v${version}";
-    sha256 = "sha256-CJroqJIi5DpmR8i1lr8OJ+234615PhpVUsqK91XOT3E=";
+    sha256 = "sha256-v79zzAAwXYoK2N8ZPl1L90qOwMRexAV2wCTMvo4vrSc=";
   };
 
   propagatedBuildInputs = [
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace pytest.ini \
       --replace "--metadata PACKAGE_UNDER_TEST parse_type" "" \
-      --replace "--metadata PACKAGE_VERSION 0.5.6" "" \
+      --replace "--metadata PACKAGE_VERSION ${version}" "" \
       --replace "--html=build/testing/report.html --self-contained-html" "" \
       --replace "--junit-xml=build/testing/report.xml" ""
   '';
diff --git a/pkgs/development/python-modules/parsimonious/default.nix b/pkgs/development/python-modules/parsimonious/default.nix
index 557e632f2edad..d517e9433e41f 100644
--- a/pkgs/development/python-modules/parsimonious/default.nix
+++ b/pkgs/development/python-modules/parsimonious/default.nix
@@ -1,29 +1,46 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, nose
-, six
+, regex
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
-  version = "0.8.1";
   pname = "parsimonious";
+  version = "0.9.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3add338892d580e0cb3b1a39e4a1b427ff9f687858fdd61097053742391a9f6b";
+    hash = "sha256-sq0a5jovZb149eCorFEKmPNgekPx2yqNRmNqXZ5KMME=";
   };
 
-  checkInputs = [ nose ];
-  propagatedBuildInputs = [ six ];
+  propagatedBuildInputs = [
+    regex
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  # performance tests tend to fail sometimes
-  NOSE_EXCLUDE = "test_benchmarks";
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "regex>=2022.3.15" "regex"
+  '';
+
+  pythonImportsCheck = [
+    "parsimonious"
+    "parsimonious.grammar"
+    "parsimonious.nodes"
+  ];
 
   meta = with lib; {
+    description = "Arbitrary-lookahead parser";
     homepage = "https://github.com/erikrose/parsimonious";
-    description = "Fast arbitrary-lookahead parser written in pure Python";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/path.py/default.nix b/pkgs/development/python-modules/path.py/default.nix
deleted file mode 100644
index e49b1ceb462cc..0000000000000
--- a/pkgs/development/python-modules/path.py/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
-, pytestCheckHook
-, pytest-flake8
-, glibcLocales
-, packaging
-, isPy38
-, importlib-metadata
-, fetchpatch
-}:
-
-buildPythonPackage rec {
-  pname = "path.py";
-  version = "12.0.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "9f2169633403aa0423f6ec000e8701dd1819526c62465f5043952f92527fea0f";
-  };
-
-  checkInputs = [ pytestCheckHook pytest-flake8 glibcLocales packaging ];
-  buildInputs = [ setuptools-scm ];
-  propagatedBuildInputs = [
-    importlib-metadata
-  ];
-
-  LC_ALL = "en_US.UTF-8";
-
-  meta = {
-    description = "A module wrapper for os.path";
-    homepage = "https://github.com/jaraco/path.py";
-    license = lib.licenses.mit;
-  };
-
-  # ignore performance test which may fail when the system is under load
-  # test_version fails with 3.8 https://github.com/jaraco/path.py/issues/172
-  disabledTests = [ "TestPerformance" ] ++ lib.optionals isPy38 [ "test_version"];
-
-  dontUseSetuptoolsCheck = true;
-
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/jaraco/path.py/commit/02eb16f0eb2cdc0015972ce963357aaa1cd0b84b.patch";
-      sha256 = "0bqa8vjwil7jn35a6984adcm24pvv3pjkhszv10qv6yr442d1mk9";
-    })
-  ];
-
-}
diff --git a/pkgs/development/python-modules/path/default.nix b/pkgs/development/python-modules/path/default.nix
new file mode 100644
index 0000000000000..a22aa64e8b1e5
--- /dev/null
+++ b/pkgs/development/python-modules/path/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+
+# build time
+, setuptools-scm
+
+# tests
+, pytestCheckHook
+, appdirs
+, packaging
+}:
+
+buildPythonPackage rec {
+  pname = "path";
+  version = "16.4.0";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-uvLnV8Sxm+ggj55n5I+0dbSld9VhNZDORmk7298IL1I=";
+  };
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # creates a file, checks when it was last accessed/modified
+    # AssertionError: assert 1650036414.0 == 1650036414.960688
+    "test_utime"
+  ];
+
+  pythonImportsCheck = [
+    "path"
+  ];
+
+  meta = with lib; {
+    description = "Object-oriented file system path manipulation";
+    homepage = "https://github.com/jaraco/path";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/pathlib2/default.nix b/pkgs/development/python-modules/pathlib2/default.nix
index 757ddc7d97463..f0f0163652ca0 100644
--- a/pkgs/development/python-modules/pathlib2/default.nix
+++ b/pkgs/development/python-modules/pathlib2/default.nix
@@ -5,28 +5,32 @@
 , pythonOlder
 , scandir ? null
 , glibcLocales
-, mock ? null
+, mock
+, typing
 }:
 
 buildPythonPackage rec {
   pname = "pathlib2";
-  version = "2.3.6";
+  version = "2.3.7.post1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7d8bcb5555003cdf4a8d2872c538faa3a0f5d20630cb360e518ca3b981795e5f";
+    sha256 = "sha256-n+DtrYmLg8DD4ZnIQrJ+0hZkXS4Xd1ey3Wc4TUETxkE=";
   };
 
-  propagatedBuildInputs = [ six ] ++ lib.optional (pythonOlder "3.5") scandir;
-  checkInputs = [ glibcLocales ] ++ lib.optional (pythonOlder "3.3") mock;
+  propagatedBuildInputs = [ six ]
+    ++ lib.optionals (pythonOlder "3.5") [ scandir typing ];
+  checkInputs = [ glibcLocales ]
+    ++ lib.optional (pythonOlder "3.3") mock;
 
   preCheck = ''
     export LC_ALL="en_US.UTF-8"
   '';
 
-  meta = {
+  meta = with lib; {
     description = "This module offers classes representing filesystem paths with semantics appropriate for different operating systems.";
-    homepage = "https://pypi.python.org/pypi/pathlib2/";
-    license = with lib.licenses; [ mit ];
+    homepage = "https://pypi.org/project/pathlib2/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/pdm-pep517/default.nix b/pkgs/development/python-modules/pdm-pep517/default.nix
index aa99d5f23f7b7..f91df4f6e5ea8 100644
--- a/pkgs/development/python-modules/pdm-pep517/default.nix
+++ b/pkgs/development/python-modules/pdm-pep517/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "pdm-pep517";
-  version = "0.10.2";
+  version = "0.12.3";
   format = "pyproject";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "83bb71a7588df69ea0d77dc6524741c3a1af54ad5f421341428de648bfc03a29";
+    sha256 = "sha256-EXv7Fhm4a+s0/gCbjUGsrPeQ0fxSQMzBH2ytoVHUaIc=";
   };
 
   preCheck = ''
diff --git a/pkgs/development/python-modules/peco/default.nix b/pkgs/development/python-modules/peco/default.nix
new file mode 100644
index 0000000000000..72450237a542f
--- /dev/null
+++ b/pkgs/development/python-modules/peco/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchPypi
+, pydantic
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "peco";
+  version = "0.0.29";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-zL0tBTwm+l5eyxlWr2xoE+nLpMfUKri1/yD+WgTUqHQ=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    pydantic
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "peco"
+  ];
+
+  meta = with lib; {
+    description = "Library for interacting with the PECO outage map";
+    homepage = "https://github.com/IceBotYT/peco-outage-api";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/peewee/default.nix b/pkgs/development/python-modules/peewee/default.nix
index 852ba5ffbcb7c..85a58271b6d38 100644
--- a/pkgs/development/python-modules/peewee/default.nix
+++ b/pkgs/development/python-modules/peewee/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "peewee";
-  version = "3.14.8";
+  version = "3.14.9";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "coleifer";
     repo = pname;
     rev = version;
-    sha256 = "sha256-BJSM+7+VdW6SxN4/AXsX8NhQPdIFoYrVRVwR9OsJ3QE=";
+    sha256 = "sha256-8rwWKsOOYUrk2k1piCurb1LkB9zzmSITq52qWdyx4yk=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pelican/default.nix b/pkgs/development/python-modules/pelican/default.nix
index 436192e18b8d5..723b3888edb8c 100644
--- a/pkgs/development/python-modules/pelican/default.nix
+++ b/pkgs/development/python-modules/pelican/default.nix
@@ -28,14 +28,14 @@
 
 buildPythonPackage rec {
   pname = "pelican";
-  version = "4.7.1";
+  version = "4.7.2";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "getpelican";
     repo = pname;
     rev = version;
-    sha256 = "0w3r4ifbrl6mhfphabqs048qys7x6k164ds63jr10l3namljm8ad";
+    hash = "sha256-ZBGzsyCtFt5uj9mpOpGdTzGJET0iwOAgDTy80P6anRU=";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     extraPostFetch = ''
diff --git a/pkgs/development/python-modules/pencompy/default.nix b/pkgs/development/python-modules/pencompy/default.nix
new file mode 100644
index 0000000000000..b2648e36e5a12
--- /dev/null
+++ b/pkgs/development/python-modules/pencompy/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pencompy";
+  version = "0.0.4";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-PjALTsk0Msv3g8M6k0v6ftzDAuFKyIPSpfvT8S3YL48=";
+  };
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pencompy"
+  ];
+
+  meta = with lib; {
+    description = "Library for interacting with Pencom relay boards";
+    homepage = "https://github.com/dubnom/pencompy";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pep257/default.nix b/pkgs/development/python-modules/pep257/default.nix
deleted file mode 100644
index d6205fc6e72ec..0000000000000
--- a/pkgs/development/python-modules/pep257/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook, mock }:
-
-buildPythonPackage rec {
-  pname = "pep257";
-  version = "6.1.1";
-
-  src = fetchFromGitHub {
-    owner = "GreenSteam";
-    repo = "pep257";
-    rev = version;
-    sha256 = "0hcf3nyvzl8kd6gmc9qsiigz7vpwrjxcd1bd50dd63cad87qqicg";
-  };
-
-  checkInputs = [ pytestCheckHook mock ];
-
-  meta = with lib; {
-    homepage = "https://github.com/GreenSteam/pep257/";
-    description = "Python docstring style checker";
-    longDescription = "Static analysis tool for checking compliance with Python PEP 257.";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ];
-  };
-}
diff --git a/pkgs/development/python-modules/perfplot/default.nix b/pkgs/development/python-modules/perfplot/default.nix
index ca8f867e6e30c..a2bb6baec9694 100644
--- a/pkgs/development/python-modules/perfplot/default.nix
+++ b/pkgs/development/python-modules/perfplot/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "perfplot";
-  version = "0.9.13";
+  version = "0.10.1";
   format = "pyproject";
   disabled = pythonOlder "3.7";
 
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "nschloe";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0ry5x38sv8gh505z6ip90jymm7kfgyf80y3vjb2i6z567bnblam6";
+    sha256 = "sha256-5qZolEJWjhqk1JakcGBWZ1hxeP1cLqcB7IZ3ufjOC/o=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pex/default.nix b/pkgs/development/python-modules/pex/default.nix
index 0c22823d565ec..19bf4676b01a6 100644
--- a/pkgs/development/python-modules/pex/default.nix
+++ b/pkgs/development/python-modules/pex/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "pex";
-  version = "2.1.75";
+  version = "2.1.82";
   format = "flit";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-G5JE4/ZWZYo8Fpy3ZhIaWNzGfEkWb9qA9vL3UVTqf0Q=";
+    hash = "sha256-VwbpcKPtPH/43E+lfzUken8JvX8QtTa6o0H0S2RXbYk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pg8000/default.nix b/pkgs/development/python-modules/pg8000/default.nix
index 8653c28c878d9..c871a7bccb850 100644
--- a/pkgs/development/python-modules/pg8000/default.nix
+++ b/pkgs/development/python-modules/pg8000/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pg8000";
-  version = "1.24.1";
+  version = "1.26.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-KRIixd39ZqP8DTIXAM9ZHIsPkw0vyEh3fWz8/1VEPOY=";
+    sha256 = "sha256-zNK2/hkK3ddMCTpivgcwuemfPqA6oO96uV7Rt/9p0lc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pgspecial/default.nix b/pkgs/development/python-modules/pgspecial/default.nix
index 308e8c9c8b640..e7b4e62ab575d 100644
--- a/pkgs/development/python-modules/pgspecial/default.nix
+++ b/pkgs/development/python-modules/pgspecial/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "pgspecial";
-  version = "1.13.0";
+  version = "1.13.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3847e205b19469f16ded05bda24b4758056d67ade4075a5ded4ce6628a9bad01";
+    sha256 = "sha256-1dq5ZpCQgnWRbcLGIu+uIX8ULggWX6NmlJ1By8VlhwE=";
   };
 
   propagatedBuildInputs = [
@@ -28,6 +28,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # requires a postgresql server
+    "test_slash_dp_pattern_schema"
+  ];
+
   meta = with lib; {
     description = "Meta-commands handler for Postgres Database";
     homepage = "https://pypi.python.org/pypi/pgspecial";
diff --git a/pkgs/development/python-modules/phe/default.nix b/pkgs/development/python-modules/phe/default.nix
index 86a5ec848ace9..0e589a04dbf9c 100644
--- a/pkgs/development/python-modules/phe/default.nix
+++ b/pkgs/development/python-modules/phe/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "phe";
-  version = "1.4.0";
+  version = "1.5.0";
 in
 
 buildPythonPackage {
@@ -13,7 +13,7 @@ buildPythonPackage {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0wzlk7d24kp0f5kpm0kvvc88mm42144f5cg9pcpb1dsfha75qy5m";
+    sha256 = "sha256-mS+3CR0kJ/DZczlG+PNQrN1NHQEgV/Kq02S6eflwM5w=";
   };
 
   buildInputs = [ click gmpy2 numpy ];
diff --git a/pkgs/development/python-modules/phik/default.nix b/pkgs/development/python-modules/phik/default.nix
index a7cb6e7e838e2..2919fb5c733a5 100644
--- a/pkgs/development/python-modules/phik/default.nix
+++ b/pkgs/development/python-modules/phik/default.nix
@@ -19,12 +19,12 @@
 
 buildPythonPackage rec {
   pname = "phik";
-  version = "0.12.0";
+  version = "0.12.2";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "959fd40482246e3f643cdac5ea04135b2c11a487e917af7d4e75843f47183549";
+    sha256 = "sha256-sGdOuCnSMpBDP3GNI2ASK+gEsXDMyAetnZqNHBOYVTM=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/phonemizer/default.nix b/pkgs/development/python-modules/phonemizer/default.nix
index 29f7266b69101..88bb69e9952ff 100644
--- a/pkgs/development/python-modules/phonemizer/default.nix
+++ b/pkgs/development/python-modules/phonemizer/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonApplication rec {
   pname = "phonemizer";
-  version = "3.0.1";
+  version = "3.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1b4ea53b8da9a156361dff1d0c04ac1a8e65e6966d1cb9a8147c200960b32296";
+    sha256 = "sha256-PWVK0NLVa0Rx1xyUyQF2/RvUo3/geskn53FcEv0Jr0c=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/phonenumbers/default.nix b/pkgs/development/python-modules/phonenumbers/default.nix
index 9faad1e96de20..4f8dc93c671ec 100644
--- a/pkgs/development/python-modules/phonenumbers/default.nix
+++ b/pkgs/development/python-modules/phonenumbers/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "phonenumbers";
-  version = "8.12.43";
+  version = "8.12.47";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-HIJwouJX1sZUWKQig/gtPsp/e52SVFSmlm4vBN914c8=";
+    sha256 = "sha256-Vv1gXS9UYOHfIRcIW2U7s4MiKV7GWOasqvycl2hn1SI=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/pickleshare/default.nix b/pkgs/development/python-modules/pickleshare/default.nix
index 34798cc3ee5e4..381f03bdce5cc 100644
--- a/pkgs/development/python-modules/pickleshare/default.nix
+++ b/pkgs/development/python-modules/pickleshare/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pathpy
+, path
 , pathlib2
 , pythonOlder
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca";
   };
 
-  propagatedBuildInputs = [ pathpy ]
+  propagatedBuildInputs = [ path ]
     ++ lib.optional (pythonOlder "3.4") pathlib2;
 
   # No proper test suite
diff --git a/pkgs/development/python-modules/pikepdf/default.nix b/pkgs/development/python-modules/pikepdf/default.nix
index bb8c2c385c237..0b72031a4bc7c 100644
--- a/pkgs/development/python-modules/pikepdf/default.nix
+++ b/pkgs/development/python-modules/pikepdf/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "pikepdf";
-  version = "5.1.1";
+  version = "5.1.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -40,7 +40,7 @@ buildPythonPackage rec {
     extraPostFetch = ''
       rm "$out/.git_archival.txt"
     '';
-    hash = "sha256-LgF46DGVWNuUN2KGdfOGSokf4reDx55ay3gP2LO+4dY=";
+    hash = "sha256-VR2/+XCQb62FdkGZBxP2XTqatdFYZO1ngb8gvoJEvzs=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/pillow-simd/default.nix b/pkgs/development/python-modules/pillow-simd/default.nix
index e2ea4c7138882..826d9f15252ee 100644
--- a/pkgs/development/python-modules/pillow-simd/default.nix
+++ b/pkgs/development/python-modules/pillow-simd/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, buildPythonPackage, fetchFromGitHub, isPyPy, isPy3k
 , olefile, freetype, libjpeg, zlib, libtiff, libwebp, tcl, lcms2
-, libxcb, tk, libX11, openjpeg, libimagequant, pyroma, numpy
+, libxcb, tk, libX11, openjpeg, libimagequant, pyroma, numpy, defusedxml
 , pytestCheckHook
 }@args:
 
@@ -8,14 +8,14 @@ import ../pillow/generic.nix (rec {
   pname = "Pillow-SIMD";
   # check for release version on https://pypi.org/project/Pillow-SIMD/#history
   # does not match the latest pillow release version!
-  version = "7.0.0.post3";
+  version = "9.0.0.post1";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "uploadcare";
     repo = "pillow-simd";
     rev = "v${version}";
-    sha256 = "1h832xp1bzf951hr4dmjmxqfsv28sx9lr2cq96qdz1c72k40zj1h";
+    sha256 = "sha256-qTZYhgHjVMXqoYl3mG1xVrFaWrPidSY8HlyFQizV27Y=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pillow/default.nix b/pkgs/development/python-modules/pillow/default.nix
index 8aa1ad1f4c4d0..47ed191c6d993 100644
--- a/pkgs/development/python-modules/pillow/default.nix
+++ b/pkgs/development/python-modules/pillow/default.nix
@@ -1,4 +1,9 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, isPyPy, isPy3k
+{ lib
+, stdenv
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, isPyPy
 , defusedxml, olefile, freetype, libjpeg, zlib, libtiff, libwebp, tcl, lcms2, tk, libX11
 , libxcb, openjpeg, libimagequant, pyroma, numpy, pytestCheckHook
 # for passthru.tests
@@ -6,14 +11,15 @@
 }@args:
 
 import ./generic.nix (rec {
-  pname = "Pillow";
-  version = "9.0.1";
+  pname = "pillow";
+  version = "9.1.0";
 
-  disabled = !isPy3k;
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "bIvII4p9/a96dfXsWmY/QXP4w2flo5+H5yBJXh7tdfo=";
+    pname = "Pillow";
+    inherit version;
+    sha256 = "f401ed2bbb155e1ade150ccc63db1a4f6c1909d3d378f7d1235a44e90d75fb97";
   };
 
   passthru.tests = {
diff --git a/pkgs/development/python-modules/pip-tools/default.nix b/pkgs/development/python-modules/pip-tools/default.nix
index 307e99c04d80d..e2f2f565862ff 100644
--- a/pkgs/development/python-modules/pip-tools/default.nix
+++ b/pkgs/development/python-modules/pip-tools/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "pip-tools";
-  version = "6.5.1";
+  version = "6.6.0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-gPViqmmfx2pCRTlpfgvvQeSQoFDlemohRoUxmBqdQZ4=";
+    sha256 = "sha256-mKokAERAocBInXGlZ6Tor98jx3gr/0g9EhmIHnMC3oM=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/pip/default.nix b/pkgs/development/python-modules/pip/default.nix
index 2ddba8f363e34..239c91fb88acf 100644
--- a/pkgs/development/python-modules/pip/default.nix
+++ b/pkgs/development/python-modules/pip/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "pip";
-  version = "21.3.1";
+  version = "22.0.4";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "pypa";
     repo = pname;
     rev = version;
-    sha256 = "sha256-A8oePI5VOKGJTY6ZuUhcOhRkz2I2FSdfsS2xIgktCVQ=";
+    sha256 = "sha256-gtDaopeFVpVFXpBtHDzBuZuXUrJciSSIppYXBx1anu4=";
     name = "${pname}-${version}-source";
   };
 
diff --git a/pkgs/development/python-modules/pixcat/default.nix b/pkgs/development/python-modules/pixcat/default.nix
new file mode 100644
index 0000000000000..026685cd63416
--- /dev/null
+++ b/pkgs/development/python-modules/pixcat/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, blessed
+, docopt
+, pillow
+, requests
+, dataclasses
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pixcat";
+  version = "0.1.4";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "657c8fe04513caecccd6086b347aa4b85db6b4c0f761b162cb9cd789abe7abb6";
+  };
+
+  propagatedBuildInputs = [
+    blessed
+    docopt
+    pillow
+    requests
+  ];
+
+  pythonImportsCheck = [ "pixcat" ];
+
+  meta = with lib; {
+    description = "Display images on a kitty terminal with optional resizing";
+    homepage = "https://github.com/mirukan/pixcat";
+    license = licenses.lgpl3;
+    maintainers = [ maintainers.tilcreator ];
+  };
+}
diff --git a/pkgs/development/python-modules/plaid-python/default.nix b/pkgs/development/python-modules/plaid-python/default.nix
index ac635fe4db5eb..efcdf3fd3a326 100644
--- a/pkgs/development/python-modules/plaid-python/default.nix
+++ b/pkgs/development/python-modules/plaid-python/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "plaid-python";
-  version = "9.2.0";
+  version = "9.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-3yFfANMkn8CXCheNHU77WGeYxPV4gs2jvOl/rV+/6vY=";
+    hash = "sha256-7H6fpJl192L8MEWrQW89Fa/BTZ2GZXjDRcy0yc17hDI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/platformdirs/default.nix b/pkgs/development/python-modules/platformdirs/default.nix
index 2be8928f630f4..584d9361fb767 100644
--- a/pkgs/development/python-modules/platformdirs/default.nix
+++ b/pkgs/development/python-modules/platformdirs/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "platformdirs";
-  version = "2.5.0";
+  version = "2.5.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-fppwtY8VX8IQ96H930xItO7mS8LlxxHgBcKlwIL5P2E=";
+    sha256 = "sha256-z6WIwTWLlc/chNRxt3dqqa/IxYj1BBTcQ6OcfliHrvA=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/pleroma-bot/default.nix b/pkgs/development/python-modules/pleroma-bot/default.nix
index 1dca45eca762b..ed586a4474b8b 100644
--- a/pkgs/development/python-modules/pleroma-bot/default.nix
+++ b/pkgs/development/python-modules/pleroma-bot/default.nix
@@ -4,30 +4,45 @@
 , pytestCheckHook
 , requests-mock
 , oauthlib
-, requests_oauthlib
+, requests-oauthlib
 , requests
 , pyaml
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pleroma-bot";
   version = "0.8.6";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "robertoszek";
-    repo = "pleroma-bot";
+    repo = pname;
     rev = version;
-    sha256 = "1q0xhgqq41zbqiawpd4kbdx41zhwxxp5ipn1c2rc8d7pjyb5p75w";
+    hash = "sha256-vJxblpf3NMSyYMHeWG7vHP5AeluTtMtVxOsHgvGDHeA=";
   };
 
-  propagatedBuildInputs = [ pyaml requests requests_oauthlib oauthlib ];
-  checkInputs = [ pytestCheckHook requests-mock ];
+  propagatedBuildInputs = [
+    pyaml
+    requests
+    requests-oauthlib
+    oauthlib
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    requests-mock
+  ];
 
-  pythonImportsCheck = [ "pleroma_bot" ];
+  pythonImportsCheck = [
+    "pleroma_bot"
+  ];
 
   meta = with lib; {
-    homepage = "https://robertoszek.github.io/pleroma-bot/";
     description = "Bot for mirroring one or multiple Twitter accounts in Pleroma/Mastodon";
+    homepage = "https://robertoszek.github.io/pleroma-bot/";
     license = licenses.mit;
     maintainers = with maintainers; [ robertoszek ];
   };
diff --git a/pkgs/development/python-modules/plotly/default.nix b/pkgs/development/python-modules/plotly/default.nix
index fbe869b07032f..fc24a4c2e6f7f 100644
--- a/pkgs/development/python-modules/plotly/default.nix
+++ b/pkgs/development/python-modules/plotly/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "plotly";
-  version = "5.5.0";
+  version = "5.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "20b8a1a0f0434f9b8d10eb7caa66e947a9a1d698e5a53d40d447bbc0d2ae41f0";
+    sha256 = "sha256-2G5E69449HU9/5gqubXgPPhyqrj99TpAPpme03gVQzE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/plugwise/default.nix b/pkgs/development/python-modules/plugwise/default.nix
index cc2601e4a227b..fe364ea0ece80 100644
--- a/pkgs/development/python-modules/plugwise/default.nix
+++ b/pkgs/development/python-modules/plugwise/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "plugwise";
-  version = "0.16.6";
+  version = "0.17.7";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "python-plugwise";
-    rev = "v${version}";
-    sha256 = "sha256-hAYbYsLpiiJYdg9Rx5BjqNA9JTtKGu3DE0SpwOxlTWw=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-PZoxI7s3LTb60oXFfsOi5mCaLOKzq6ed2yFKap0Q1Ng=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/plumbum/default.nix b/pkgs/development/python-modules/plumbum/default.nix
index ae3c4941f6848..70b4421778f3e 100644
--- a/pkgs/development/python-modules/plumbum/default.nix
+++ b/pkgs/development/python-modules/plumbum/default.nix
@@ -50,6 +50,14 @@ buildPythonPackage rec {
     "test_change_env"
     "test_dictlike"
     "test_local"
+    # incompatible with pytest 7
+    "test_incorrect_login"
+  ];
+
+  disabledTestPaths = [
+    # incompatible with pytest7
+    # https://github.com/tomerfiliba/plumbum/issues/594
+    "tests/test_remote.py"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/poetry-core/default.nix b/pkgs/development/python-modules/poetry-core/default.nix
index e8632d0ed0782..5922d67fc8b76 100644
--- a/pkgs/development/python-modules/poetry-core/default.nix
+++ b/pkgs/development/python-modules/poetry-core/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "poetry-core";
-  version = "1.0.7";
+  version = "1.0.8";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "python-poetry";
     repo = pname;
     rev = version;
-    sha256 = "0v86x8f8pcbviv2cdn7jjbgj3c994qasx0bqk1kr0mj8m6pjwy9z";
+    sha256 = "sha256-cs9SMGD9RdW8Wx/IAMq6gkOUBsney5r19hyGva98grk=";
   };
 
   postPatch = lib.optionalString (pythonOlder "3.8") ''
diff --git a/pkgs/development/python-modules/polars/default.nix b/pkgs/development/python-modules/polars/default.nix
new file mode 100644
index 0000000000000..aa97cf6cc03f2
--- /dev/null
+++ b/pkgs/development/python-modules/polars/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, pythonOlder
+, rustPlatform
+, libiconv
+, fetchzip
+}:
+let
+  pname = "polars";
+  version = "0.13.19";
+  rootSource = fetchzip {
+    url = "https://github.com/pola-rs/${pname}/archive/refs/tags/py-polars-v${version}.tar.gz";
+    sha256 = "sha256-JOHjxTTPzS9Dd/ODp4r0ebU9hEonxrbjURJoq0BQCyI=";
+  };
+in
+buildPythonPackage {
+  inherit pname version;
+  format = "pyproject";
+  disabled = pythonOlder "3.6";
+  src = rootSource;
+  preBuild = ''
+      cd py-polars
+  '';
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    src = rootSource;
+    preBuild = ''
+        cd py-polars
+    '';
+    name = "${pname}-${version}";
+    sha256 = "sha256-KEt8lITY4El2afuh2cxnrDkXGN3MZgfKQU3Pe2jECF0=";
+  };
+  cargoRoot = "py-polars";
+
+  nativeBuildInputs = with rustPlatform; [ cargoSetupHook maturinBuildHook ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
+
+  pythonImportsCheck = [ "polars" ];
+  # checkInputs = [
+  #   pytestCheckHook
+  #   fixtures
+  #   graphviz
+  #   matplotlib
+  #   networkx
+  #   numpy
+  #   pydot
+  # ];
+
+  meta = with lib; {
+    description = "Fast multi-threaded DataFrame library in Rust | Python | Node.js ";
+    homepage = "https://github.com/pola-rs/polars";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ happysalada ];
+  };
+}
diff --git a/pkgs/development/python-modules/policy-sentry/default.nix b/pkgs/development/python-modules/policy-sentry/default.nix
index 969f1207a5b59..13308ef1c985c 100644
--- a/pkgs/development/python-modules/policy-sentry/default.nix
+++ b/pkgs/development/python-modules/policy-sentry/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "policy-sentry";
-  version = "0.12.2";
+  version = "0.12.3";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "salesforce";
     repo = "policy_sentry";
     rev = version;
-    sha256 = "sha256-6yG60vUsvLpIiZ3i1D3NZOL9bINaF5ydrDvewqpEmpA=";
+    sha256 = "sha256-LaSSjqa5BniwOIeCH/oR8vVhy2rCSo2je3rTqB4ifLg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/policyuniverse/default.nix b/pkgs/development/python-modules/policyuniverse/default.nix
index 27a53eee42813..39f3be83ca2d6 100644
--- a/pkgs/development/python-modules/policyuniverse/default.nix
+++ b/pkgs/development/python-modules/policyuniverse/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "policyuniverse";
-  version = "1.4.0.20220110";
+  version = "1.5.0.20220421";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-EWuAhVTX6nXvyXtMuQQIVUbbRZNO8xUXXLR1XHpEid4=";
+    sha256 = "sha256-1rY77cIxqVcde+AYE6qfRgZzB8vb3yiQ3Bj+P0o1zFM=";
   };
 
   # Tests are not shipped and there are no GitHub tags
diff --git a/pkgs/development/python-modules/pooch/default.nix b/pkgs/development/python-modules/pooch/default.nix
index 3b7ddaf280197..238e6ad62230b 100644
--- a/pkgs/development/python-modules/pooch/default.nix
+++ b/pkgs/development/python-modules/pooch/default.nix
@@ -11,12 +11,13 @@
 
 buildPythonPackage rec {
   pname = "pooch";
-  version = "1.5.2";
+  version = "1.6.0";
+  format = "pyproject";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5969b2f1defbdc405df932767e05e0b536e2771c27f1f95d7f260bc99bf13581";
+    sha256 = "sha256-V9IOxLEN1pTSsFu2S8axCcboWmwUBXlM6H7Ys0GrP0Q=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/portalocker/default.nix b/pkgs/development/python-modules/portalocker/default.nix
index 357ca815407fa..cd7d6d03bbd4c 100644
--- a/pkgs/development/python-modules/portalocker/default.nix
+++ b/pkgs/development/python-modules/portalocker/default.nix
@@ -22,6 +22,10 @@ buildPythonPackage rec {
     pytest-mypy
   ];
 
+  disabledTests = [
+    "test_combined" # no longer compatible with setuptools>=58
+  ];
+
   meta = with lib; {
     description = "A library to provide an easy API to file locking";
     homepage = "https://github.com/WoLpH/portalocker";
diff --git a/pkgs/development/python-modules/pre-commit-hooks/default.nix b/pkgs/development/python-modules/pre-commit-hooks/default.nix
index eae35b5bac6da..db598b368c5b6 100644
--- a/pkgs/development/python-modules/pre-commit-hooks/default.nix
+++ b/pkgs/development/python-modules/pre-commit-hooks/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pre-commit-hooks";
-  version = "4.1.0";
+  version = "4.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -19,8 +19,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "pre-commit";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-nxJp7LkCUkJj77RCeWedBusue3x0lZYatSidbueZqfo=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-jSu4LutEgpeAbCgSHgk6VXQKLZo00T3TrQVZxsNU1co=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/prettytable/default.nix b/pkgs/development/python-modules/prettytable/default.nix
index f914a0f3df449..7c4afe4a72842 100644
--- a/pkgs/development/python-modules/prettytable/default.nix
+++ b/pkgs/development/python-modules/prettytable/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "prettytable";
-  version = "3.0.0";
+  version = "3.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "69fe75d78ac8651e16dd61265b9e19626df5d630ae294fc31687aa6037b97a58";
+    sha256 = "sha256-rn2WxkEAVD3GFmK0CijzsDwPlKUD7RIcb8ongsWBb4E=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/prometheus-client/default.nix b/pkgs/development/python-modules/prometheus-client/default.nix
index 7af4e2b02faae..9ba5068359bbc 100644
--- a/pkgs/development/python-modules/prometheus-client/default.nix
+++ b/pkgs/development/python-modules/prometheus-client/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "prometheus-client";
-  version = "0.12.0";
+  version = "0.13.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "prometheus";
     repo = "client_python";
     rev = "v${version}";
-    sha256 = "1a0kllal5vkkdv325k0mx1mha2l9808mcz4dqx6qrgfskz8c2xjl";
+    sha256 = "sha256-1sMnlUOvvdlUuh288UalAdlf0a1mpnM+Y/upwlnL1H8=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/promise/default.nix b/pkgs/development/python-modules/promise/default.nix
index 403f0c0979163..8833689cec122 100644
--- a/pkgs/development/python-modules/promise/default.nix
+++ b/pkgs/development/python-modules/promise/default.nix
@@ -18,6 +18,11 @@ buildPythonPackage rec {
     sha256 = "17mq1bm78xfl0x1g50ng502m5ldq6421rzz35hlqafsj0cq8dkp6";
   };
 
+  postPatch = ''
+    substituteInPlace tests/test_extra.py \
+      --replace "assert_exc.traceback[-1].path.strpath" "str(assert_exc.traceback[-1].path)"
+  '';
+
   propagatedBuildInputs = [
     six
   ];
diff --git a/pkgs/development/python-modules/prompt-toolkit/default.nix b/pkgs/development/python-modules/prompt-toolkit/default.nix
index e38560be2eb68..be90726e189bc 100644
--- a/pkgs/development/python-modules/prompt-toolkit/default.nix
+++ b/pkgs/development/python-modules/prompt-toolkit/default.nix
@@ -3,12 +3,13 @@
 , fetchPypi
 , pytestCheckHook
 , pythonOlder
+, six
 , wcwidth
 }:
 
 buildPythonPackage rec {
   pname = "prompt-toolkit";
-  version = "3.0.24";
+  version = "3.0.28";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -16,10 +17,11 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "prompt_toolkit";
     inherit version;
-    sha256 = "1bb05628c7d87b645974a1bad3f17612be0c29fa39af9f7688030163f680bad6";
+    sha256 = "sha256-nxzRax6GwpaPJRnX+zHdnWaZFvUVYSwmnRTp7VK1FlA=";
   };
 
   propagatedBuildInputs = [
+    six
     wcwidth
   ];
 
diff --git a/pkgs/development/python-modules/proto-plus/default.nix b/pkgs/development/python-modules/proto-plus/default.nix
index dd2494729efd7..defc28d9429a3 100644
--- a/pkgs/development/python-modules/proto-plus/default.nix
+++ b/pkgs/development/python-modules/proto-plus/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "proto-plus";
-  version = "1.19.8";
+  version = "1.20.3";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bdf45f0e0be71510eb2ec9db4da78afde7b5fb8b0a507a36340a9b6ce8e48e58";
+    sha256 = "sha256-8osiW8nmwU4gb7f46Zakb7LM2QJkjlEtSWq7anFqSuU=";
   };
 
   propagatedBuildInputs = [ protobuf ];
diff --git a/pkgs/development/python-modules/proxy-py/default.nix b/pkgs/development/python-modules/proxy-py/default.nix
index 4bf07b1375eb4..6527f88e4891a 100644
--- a/pkgs/development/python-modules/proxy-py/default.nix
+++ b/pkgs/development/python-modules/proxy-py/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "proxy-py";
-  version = "2.3.1";
+  version = "2.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "abhinavsingh";
     repo = "proxy.py";
     rev = "v${version}";
-    sha256 = "sha256-qqwb3t8/xicDGfO6l843qRwh0yUfthnOIhgNeKIbEO4=";
+    sha256 = "sha256-VagX7ATVu6AT4POWoG9btizxFeBh9MLXiLpavtfXnyM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/psautohint/default.nix b/pkgs/development/python-modules/psautohint/default.nix
index 3004d5f7a9b92..b9fb5f3aa146a 100644
--- a/pkgs/development/python-modules/psautohint/default.nix
+++ b/pkgs/development/python-modules/psautohint/default.nix
@@ -3,19 +3,20 @@
 , lxml, fs # for fonttools extras
 , setuptools-scm
 , pytestCheckHook, pytest-cov, pytest-xdist
+, runAllTests ? false, psautohint # for passthru.tests
 }:
 
 buildPythonPackage rec {
   pname = "psautohint";
-  version = "2.3.1";
+  version = "2.4.0";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "adobe-type-tools";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1knh428af0lvzijvd72i30jcvx9n6ga0hai69kxg8386jdpmmvkg";
+    sha256 = "125nx7accvbk626qlfar90va1995kp9qfrz6a978q4kv2kk37xai";
     fetchSubmodules = true; # data dir for tests
   };
 
@@ -34,10 +35,7 @@ buildPythonPackage rec {
     pytest-cov
     pytest-xdist
   ];
-  disabledTests = [
-    # Test that fails on pytest >= v6
-    # https://github.com/adobe-type-tools/psautohint/issues/284#issuecomment-742800965
-    "test_hashmap_old_version"
+  disabledTests = lib.optionals (!runAllTests) [
     # Slow tests, reduces test time from ~5 mins to ~30s
     "test_mmufo"
     "test_flex_ufo"
@@ -48,6 +46,10 @@ buildPythonPackage rec {
     "test_otf"
   ];
 
+  passthru.tests = {
+    fullTestsuite = psautohint.override { runAllTests = true; };
+  };
+
   meta = with lib; {
     description = "Script to normalize the XML and other data inside of a UFO";
     homepage = "https://github.com/adobe-type-tools/psautohint";
diff --git a/pkgs/development/python-modules/pubnub/default.nix b/pkgs/development/python-modules/pubnub/default.nix
index c5fbe3d28590f..da417565d2d67 100644
--- a/pkgs/development/python-modules/pubnub/default.nix
+++ b/pkgs/development/python-modules/pubnub/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "pubnub";
-  version = "6.2.0";
+  version = "6.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,8 +21,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = pname;
     repo = "python";
-    rev = "v${version}";
-    hash = "sha256-QOOPcWhhEqg7c0INQv88+eOP0povN8W4lLoaly9TGu0=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-HnDCRwGrWYVW2WpCFDySVYzNW4/cNhVqNG2YfF5V3WY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pure-python-adb/default.nix b/pkgs/development/python-modules/pure-python-adb/default.nix
index c562f20e5ecbc..cb054feaf10f1 100644
--- a/pkgs/development/python-modules/pure-python-adb/default.nix
+++ b/pkgs/development/python-modules/pure-python-adb/default.nix
@@ -1,4 +1,10 @@
-{ aiofiles, buildPythonPackage, fetchPypi, lib, pythonOlder }:
+{ aiofiles
+, buildPythonPackage
+, fetchPypi
+, lib
+, pythonOlder
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "pure-python-adb";
@@ -11,11 +17,24 @@ buildPythonPackage rec {
     sha256 = "0kdr7w2fhgjpcf1k3l6an9im583iqkr6v8hb4q1zw30nh3bqkk0f";
   };
 
-  propagatedBuildInputs = [ aiofiles ];
-  # Disable tests as they require docker, docker-compose and a dedicated
-  # android emulator
-  doCheck = false;
-  pythonImportsCheck = [ "ppadb.client" "ppadb.client_async" ];
+  passthru.extras-require = {
+    async = [
+      aiofiles
+    ];
+  };
+
+  doCheck = pythonOlder "3.10"; # all tests result in RuntimeError on 3.10
+
+  checkInputs = [
+    pytestCheckHook
+  ]
+  ++ passthru.extras-require.async;
+
+  pythonImportsCheck = [
+    "ppadb.client"
+  ] ++ lib.optionals doCheck [
+    "ppadb.client_async"
+  ];
 
   meta = with lib; {
     description = "Pure python implementation of the adb client";
diff --git a/pkgs/development/python-modules/purl/default.nix b/pkgs/development/python-modules/purl/default.nix
index aa85ea3965ab9..8c7b208df2fea 100644
--- a/pkgs/development/python-modules/purl/default.nix
+++ b/pkgs/development/python-modules/purl/default.nix
@@ -1,4 +1,7 @@
-{ lib, buildPythonPackage, fetchFromGitHub
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, six
 , pytestCheckHook
 }:
 
@@ -13,7 +16,17 @@ buildPythonPackage rec {
     sha256 = "sha256-Jb3JRW/PtQ7NlO4eQ9DmTPu/sjvFTg2mztphoIF79gc=";
   };
 
-  checkInputs = [ pytestCheckHook];
+  propagatedBuildInputs = [
+    six
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "purl"
+  ];
 
   meta = with lib; {
     description = "Immutable URL class for easy URL-building and manipulation";
diff --git a/pkgs/development/python-modules/pwntools/default.nix b/pkgs/development/python-modules/pwntools/default.nix
index cfcbf14703b01..6a20a5d4bf270 100644
--- a/pkgs/development/python-modules/pwntools/default.nix
+++ b/pkgs/development/python-modules/pwntools/default.nix
@@ -27,12 +27,12 @@ let
   debuggerName = lib.strings.getName debugger;
 in
 buildPythonPackage rec {
-  version = "4.7.0";
+  version = "4.8.0";
   pname = "pwntools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-dDiOKGdeehkp92PfWhzsaj1YlkEEm2z0drscVuxQqI4=";
+    sha256 = "sha256-QgUuLYg3EOTh2gQekWdabXGftOXvLdJFyyhT2hEmkpA=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/py-radix/default.nix b/pkgs/development/python-modules/py-radix/default.nix
index 18fff5ec97f61..f4b064d41aac8 100644
--- a/pkgs/development/python-modules/py-radix/default.nix
+++ b/pkgs/development/python-modules/py-radix/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, pythonAtLeast
 , fetchFromGitHub
 , coverage
 , nose
@@ -9,6 +10,8 @@ buildPythonPackage rec {
   pname = "py-radix";
   version = "0.10.0";
 
+  disabled = pythonAtLeast "3.10"; # abandoned, remove when we move to py310/py311
+
   src = fetchFromGitHub {
     owner = "mjschultz";
     repo = "py-radix";
diff --git a/pkgs/development/python-modules/py3rijndael/default.nix b/pkgs/development/python-modules/py3rijndael/default.nix
new file mode 100644
index 0000000000000..be098df6a6a88
--- /dev/null
+++ b/pkgs/development/python-modules/py3rijndael/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+}:
+
+let
+  pname = "py3rijndael";
+  version = "0.3.3";
+in
+buildPythonPackage {
+  inherit pname version;
+  format = "setuptools";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-tmVaPr/zoQVA6u0EnoeI7qOsk9a3GzpqwrACJLvs6ag=";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Rijndael algorithm library";
+    homepage = "https://github.com/meyt/py3rijndael";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/py4j/default.nix b/pkgs/development/python-modules/py4j/default.nix
index cf24d21e17f56..cdf8a3c49c37e 100644
--- a/pkgs/development/python-modules/py4j/default.nix
+++ b/pkgs/development/python-modules/py4j/default.nix
@@ -3,11 +3,11 @@
 buildPythonPackage rec {
   pname = "py4j";
 
-  version = "0.10.9.3";
+  version = "0.10.9.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0d92844da4cb747155b9563c44fc322c9a1562b3ef0979ae692dbde732d784dd";
+    sha256 = "sha256-J2pKPFohVN8YYO8zA6knRg4C6XsEfcCkfBw/uMzjTbY=";
   };
 
   # No tests in archive
diff --git a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
index 391afabf931f0..508e6f71d11fe 100644
--- a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
+++ b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
@@ -1,20 +1,36 @@
-{ lib, buildPythonPackage, fetchPypi, aiohttp, requests }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, aiohttp
+, requests
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "pyTelegramBotAPI";
-  version = "4.4.0";
+  version = "4.4.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-5vIjVqvr/+Cok9z3L+CaDIve2tb0mMVaMMPdMs5Ijmo=";
+    hash = "sha256-3Qppp/UDKiGChnvMOgW8EKygI75gYzv37c0ctExmK+g=";
   };
 
-  propagatedBuildInputs = [ aiohttp requests ];
+  propagatedBuildInputs = [
+    aiohttp
+    requests
+  ];
+
+  pythonImportsCheck = [
+    "telebot"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/eternnoir/pyTelegramBotAPI";
     description = "A simple, but extensible Python implementation for the Telegram Bot API";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ das_j ];
   };
 }
diff --git a/pkgs/development/python-modules/pyamg/default.nix b/pkgs/development/python-modules/pyamg/default.nix
index b2a230685cc8e..09a113a421858 100644
--- a/pkgs/development/python-modules/pyamg/default.nix
+++ b/pkgs/development/python-modules/pyamg/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "pyamg";
-  version = "4.2.2";
+  version = "4.2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-mtrFqUwEustYlCcCiV1FQZm7dJKohu650xHdiNg6D6E=";
+    sha256 = "sha256-N608Hcr/JDXCq3yOw2lCrwcmxWPTUFm80Y6wdHP3GC4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyasn1/default.nix b/pkgs/development/python-modules/pyasn1/default.nix
index a0037d6468353..a3dbc7396b0d3 100644
--- a/pkgs/development/python-modules/pyasn1/default.nix
+++ b/pkgs/development/python-modules/pyasn1/default.nix
@@ -9,10 +9,12 @@ buildPythonPackage rec {
     sha256 = "aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba";
   };
 
+  pythonImportsCheck = [ "pyasn1" ];
+
   meta = with lib; {
-    description = "ASN.1 tools for Python";
-    homepage = "http://pyasn1.sourceforge.net/";
-    license = "mBSD";
-    platforms = platforms.unix;  # arbitrary choice
+    description = "Generic ASN.1 library for Python";
+    homepage = "https://github.com/etingof/pyasn1";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/pyathena/default.nix b/pkgs/development/python-modules/pyathena/default.nix
index fe9d3276e1be0..7a44cf995e3f0 100644
--- a/pkgs/development/python-modules/pyathena/default.nix
+++ b/pkgs/development/python-modules/pyathena/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pyathena";
-  version = "2.5.1";
+  version = "2.5.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PyAthena";
     inherit version;
-    sha256 = "sha256-GTcDiDtZGgTpdl6YBgPuztv7heEPZ/ymhup/4JwfELA=";
+    sha256 = "sha256-vjoK6lEitvd5vqSEE/ael8q00O05lquKIviFK/bPlVQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyatmo/default.nix b/pkgs/development/python-modules/pyatmo/default.nix
index 5cd314b6cb993..9d75c2b01d85f 100644
--- a/pkgs/development/python-modules/pyatmo/default.nix
+++ b/pkgs/development/python-modules/pyatmo/default.nix
@@ -9,7 +9,7 @@
 , pytestCheckHook
 , pythonOlder
 , requests
-, requests_oauthlib
+, requests-oauthlib
 , requests-mock
 , setuptools-scm
 }:
@@ -38,7 +38,7 @@ buildPythonPackage rec {
     aiohttp
     oauthlib
     requests
-    requests_oauthlib
+    requests-oauthlib
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/pybids/default.nix b/pkgs/development/python-modules/pybids/default.nix
index 3ad29916575a9..4640be0c436db 100644
--- a/pkgs/development/python-modules/pybids/default.nix
+++ b/pkgs/development/python-modules/pybids/default.nix
@@ -14,12 +14,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.14.0";
+  version = "0.15.0";
   pname = "pybids";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "73c4d03aad333f2a7cb4405abe96f55a33cffa4b5a2d23fad6ac5767c45562ef";
+    sha256 = "sha256-Eq+4x7h1uR5QHXfgCEZl+7usc9CBFQClvV36Yyrqbd0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pybind11/default.nix b/pkgs/development/python-modules/pybind11/default.nix
index 46c1307826ef2..8627ca53d54b2 100644
--- a/pkgs/development/python-modules/pybind11/default.nix
+++ b/pkgs/development/python-modules/pybind11/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
 
   postBuild = ''
     # build tests
-    make
+    make -j $NIX_BUILD_CORES -l $NIX_BUILD_CORES
   '';
 
   postInstall = ''
@@ -60,6 +60,8 @@ buildPythonPackage rec {
     "tests/test_numpy_dtypes.py"
     # no need to test internal packaging
     "tests/extra_python_package/test_files.py"
+    # tests that try to parse setuptools stdout
+    "tests/extra_setuptools/test_setuphelper.py"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pybluez/default.nix b/pkgs/development/python-modules/pybluez/default.nix
index 1cd7d91ef2593..55262a07a4cad 100644
--- a/pkgs/development/python-modules/pybluez/default.nix
+++ b/pkgs/development/python-modules/pybluez/default.nix
@@ -1,29 +1,45 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchFromGitHub
-, pkgs
+, bluez
+, gattlib
 }:
 
 buildPythonPackage rec {
-  version = "unstable-20160819";
   pname = "pybluez";
-
-  propagatedBuildInputs = [ pkgs.bluez ];
+  version = "unstable-2022-01-28";
+  format = "setuptools";
 
   src = fetchFromGitHub {
-    owner = "karulis";
+    owner = pname;
     repo = pname;
-    rev = "a0b226a61b166e170d48539778525b31e47a4731";
-    sha256 = "104dm5ngfhqisv1aszdlr3szcav2g3bhsgzmg4qfs09b3i5zj047";
+    rev = "5096047f90a1f6a74ceb250aef6243e144170f92";
+    hash = "sha256-GA58DfCFaVzZQA1HYpGQ68bznrt4SX1ojyOVn8hyCGo=";
   };
 
-  # the tests do not pass
+  buildInputs = [
+    bluez
+  ];
+
+  propagatedBuildInputs = [
+    gattlib
+  ];
+
+  # there are no tests
   doCheck = false;
 
+  pythonImportsCheck = [
+    "bluetooth"
+    "bluetooth.ble"
+  ];
+
   meta = with lib; {
     description = "Bluetooth Python extension module";
+    homepage = "https://github.com/pybluez/pybluez";
     license = licenses.gpl2;
     maintainers = with maintainers; [ leenaars ];
+    broken = stdenv.isDarwin; # requires pyobjc-core, pyobjc-framework-Cocoa
   };
 
 }
diff --git a/pkgs/development/python-modules/pybotvac/default.nix b/pkgs/development/python-modules/pybotvac/default.nix
index dff1374087a5b..2feee74d319f8 100644
--- a/pkgs/development/python-modules/pybotvac/default.nix
+++ b/pkgs/development/python-modules/pybotvac/default.nix
@@ -2,29 +2,35 @@
 , buildPythonPackage
 , fetchPypi
 , requests
-, requests_oauthlib
+, requests-oauthlib
 , voluptuous
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pybotvac";
   version = "0.0.23";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "54b4fe565c10000c54d5644d081e2de1f850daefbac39cea74cea649b47bfb12";
+    hash = "sha256-VLT+VlwQAAxU1WRNCB4t4fhQ2u+6w5zqdM6mSbR7+xI=";
   };
 
   propagatedBuildInputs = [
     requests
-    requests_oauthlib
+    requests-oauthlib
     voluptuous
   ];
 
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [ "pybotvac" ];
+  pythonImportsCheck = [
+    "pybotvac"
+  ];
 
   meta = with lib; {
     description = "Python module for interacting with Neato Botvac Connected vacuum robots";
diff --git a/pkgs/development/python-modules/pycapnp/default.nix b/pkgs/development/python-modules/pycapnp/default.nix
index 8c63a11862239..cd2e8f450cd2b 100644
--- a/pkgs/development/python-modules/pycapnp/default.nix
+++ b/pkgs/development/python-modules/pycapnp/default.nix
@@ -20,16 +20,18 @@ buildPythonPackage rec {
     sha256 = "1xi6df93ggkpmwckwbi356v7m32zv5qry8s45hvsps66dz438kmi";
   };
 
-  buildInputs = [ capnproto cython pkgconfig ];
+  nativeBuildInputs = [ cython pkgconfig ];
 
-  # Tests disabled due to dependency on jinja and various other libraries.
+  buildInputs = [ capnproto ];
+
+  # Tests depend on schema_capnp which fails to generate
   doCheck = false;
 
   pythonImportsCheck = [ "capnp" ];
 
   meta = with lib; {
+    homepage = "https://capnproto.github.io/pycapnp/";
     maintainers = with maintainers; [ cstrahan lukeadams ];
     license = licenses.bsd2;
-    homepage = "https://capnproto.github.io/pycapnp/";
   };
 }
diff --git a/pkgs/development/python-modules/pycep-parser/default.nix b/pkgs/development/python-modules/pycep-parser/default.nix
index d76f72630a6ba..3e8104ea33b8a 100644
--- a/pkgs/development/python-modules/pycep-parser/default.nix
+++ b/pkgs/development/python-modules/pycep-parser/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pycep-parser";
-  version = "0.3.2";
+  version = "0.3.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "gruebel";
     repo = "pycep";
     rev = version;
-    hash = "sha256-ud26xJQWdu7wtv75/K16HSSw0MvaSr3H1hDZBPjSzYE=";
+    hash = "sha256-o2sYPvZVevDqZV8EtKWTL2zHHzX2kmTZ4iVHsUhFv7M=";
   };
 
   nativeBuildInputs = [
@@ -41,8 +41,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace 'version = "0.3.2-alpha.4"' 'version = "${version}"' \
-      --replace 'regex = "^2022.3.2"' 'regex = "*"'
+      --replace 'regex = "^2022.3.15"' 'regex = "*"'
   '';
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/pycfmodel/default.nix b/pkgs/development/python-modules/pycfmodel/default.nix
index c47362e339e50..9aa41214bfcf0 100644
--- a/pkgs/development/python-modules/pycfmodel/default.nix
+++ b/pkgs/development/python-modules/pycfmodel/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pycfmodel";
-  version = "0.18.0";
+  version = "0.19.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,8 +17,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "Skyscanner";
     repo = pname;
-    rev = version;
-    hash = "sha256-g249Nq4u4pPQLbW9Kw5vLwVKCaZoots5LD6yk1NPv6s=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-k059AfI3dTPMLAOColmTG4kz0z2bLO1oi8Bg0QeLork=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pycognito/default.nix b/pkgs/development/python-modules/pycognito/default.nix
index 375453231b9bc..ff050c15bfe08 100644
--- a/pkgs/development/python-modules/pycognito/default.nix
+++ b/pkgs/development/python-modules/pycognito/default.nix
@@ -4,22 +4,25 @@
 , envs
 , fetchFromGitHub
 , isPy27
+, freezegun
 , mock
+, moto
 , pytestCheckHook
 , python-jose
 , requests
+, requests-mock
 }:
 
 buildPythonPackage rec {
   pname = "pycognito";
-  version = "2022.01.0";
+  version = "2022.02.1";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "pvizeli";
     repo = pname;
     rev = version;
-    sha256 = "sha256-mmlw3irMC0SFjfEinXHyoPNfTvCcO02zGyqQLj9STSY=";
+    sha256 = "sha256-0PqeZ8yy2MzvIi1xQNosR7V2Ma3tMT0Q/v4OIv7f1Kg=";
   };
 
   propagatedBuildInputs = [
@@ -30,8 +33,11 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
+    freezegun
     mock
+    moto
     pytestCheckHook
+    requests-mock
   ];
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pycoolmasternet-async/default.nix b/pkgs/development/python-modules/pycoolmasternet-async/default.nix
index 45b40ddeadb90..909feb9443283 100644
--- a/pkgs/development/python-modules/pycoolmasternet-async/default.nix
+++ b/pkgs/development/python-modules/pycoolmasternet-async/default.nix
@@ -6,7 +6,7 @@
 
 buildPythonPackage rec {
   pname = "pycoolmasternet-async";
-  version = "0.1.2";
+  version = "0.1.3";
 
   disabled = pythonOlder "3.7";
 
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     owner = "OnFreund";
     repo = "pycoolmasternet-async";
     rev = "v${version}";
-    sha256 = "0qzdk18iqrvin8p8zrydf69d6pii3j47j11h7ymmsx08gh7c176g";
+    hash = "sha256-1Xd8OdN8d3g23kQZqihZrNLKoqLCbu5BvAMNitg8aDA=";
   };
 
   # no tests implemented
diff --git a/pkgs/development/python-modules/pycountry/default.nix b/pkgs/development/python-modules/pycountry/default.nix
index 560c5a708122f..3583826f69a33 100644
--- a/pkgs/development/python-modules/pycountry/default.nix
+++ b/pkgs/development/python-modules/pycountry/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pycountry";
-  version = "22.1.10";
+  version = "22.3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b9a6d9cdbf53f81ccdf73f6f5de01b0d8493cab2213a230af3e34458de85ea32";
+    sha256 = "sha256-shY6JGxYWJTYCPGHg+GRN8twoMGPs2dI3AH8bxCcFkY=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/pycuda/default.nix b/pkgs/development/python-modules/pycuda/default.nix
index cdd07e86110b0..1c443712db765 100644
--- a/pkgs/development/python-modules/pycuda/default.nix
+++ b/pkgs/development/python-modules/pycuda/default.nix
@@ -10,7 +10,7 @@
 , decorator
 , appdirs
 , six
-, cudatoolkit
+, cudaPackages
 , python
 , mkDerivation
 , lib
@@ -19,6 +19,8 @@ let
   compyte = import ./compyte.nix {
     inherit mkDerivation fetchFromGitHub;
   };
+
+  inherit (cudaPackages) cudatoolkit;
 in
 buildPythonPackage rec {
   pname = "pycuda";
diff --git a/pkgs/development/python-modules/pycurl/default.nix b/pkgs/development/python-modules/pycurl/default.nix
index 5b62b3bb016b9..e7f3b87ad0c3c 100644
--- a/pkgs/development/python-modules/pycurl/default.nix
+++ b/pkgs/development/python-modules/pycurl/default.nix
@@ -50,16 +50,6 @@ buildPythonPackage rec {
   '';
 
   disabledTests = [
-    # libcurl stopped passing the reason phrase from the HTTP status line
-    # https://github.com/pycurl/pycurl/issues/679
-    "test_failonerror"
-    "test_failonerror_status_line_invalid_utf8_python3"
-    # bottle>=0.12.17 escapes utf8 properly, so these test don't work anymore
-    # https://github.com/pycurl/pycurl/issues/669
-    "test_getinfo_content_type_invalid_utf8_python3"
-    "test_getinfo_cookie_invalid_utf8_python3"
-    "test_getinfo_raw_content_type_invalid_utf8"
-    "test_getinfo_raw_cookie_invalid_utf8"
     # tests that require network access
     "test_keyfunction"
     "test_keyfunction_bogus_return"
@@ -77,6 +67,6 @@ buildPythonPackage rec {
     homepage = "http://pycurl.io/";
     description = "Python Interface To The cURL library";
     license = with licenses; [ lgpl2Only mit ];
-    maintainers = with maintainers; [];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/pydmd/default.nix b/pkgs/development/python-modules/pydmd/default.nix
index f80f900347848..68a19afddba71 100644
--- a/pkgs/development/python-modules/pydmd/default.nix
+++ b/pkgs/development/python-modules/pydmd/default.nix
@@ -35,9 +35,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTestPaths = [
-    # Those tests take over 1.5 h on hydra. Also, an error and two failures
-    "tests/test_spdmd.py"
+  pytestFlagsArray = [
+    # test suite takes over 100 vCPU hours, just run small subset of it.
+    # TODO: Add a passthru.tests with all tests
+    "tests/test_dmdbase.py"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/pyee/default.nix b/pkgs/development/python-modules/pyee/default.nix
index a252cd4505ac2..7a967c48a0426 100644
--- a/pkgs/development/python-modules/pyee/default.nix
+++ b/pkgs/development/python-modules/pyee/default.nix
@@ -1,30 +1,36 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, vcversioner
 , mock
-, pytestCheckHook
 , pytest-asyncio
 , pytest-trio
-, twisted
+, pytestCheckHook
 , pythonOlder
+, twisted
+, typing-extensions
+, vcversioner
 }:
 
 buildPythonPackage rec {
   pname = "pyee";
-  version = "8.2.2";
+  version = "9.0.4";
+  format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-XH5g+N+VcQ2+F1UOFs4BU/g5kMAO90SEG0Pzce1T6+o=";
+    hash = "sha256-J3DEkoq8ch9GtwXmpysMWUgMSmnJqDygsAu5lPHqSzI=";
   };
 
   buildInputs = [
     vcversioner
   ];
 
+  propagatedBuildInputs = [
+    typing-extensions
+  ];
+
   checkInputs = [
     mock
     pytest-asyncio
@@ -33,7 +39,9 @@ buildPythonPackage rec {
     twisted
   ];
 
-  pythonImportsCheck = [ "pyee" ];
+  pythonImportsCheck = [
+    "pyee"
+  ];
 
   meta = with lib; {
     description = "A port of Node.js's EventEmitter to Python";
diff --git a/pkgs/development/python-modules/pyefergy/default.nix b/pkgs/development/python-modules/pyefergy/default.nix
index 28fb058c52a26..7b7e587feddb4 100644
--- a/pkgs/development/python-modules/pyefergy/default.nix
+++ b/pkgs/development/python-modules/pyefergy/default.nix
@@ -1,11 +1,9 @@
 { lib
 , aiohttp
-, aresponses
 , buildPythonPackage
 , fetchFromGitHub
 , iso4217
 , pytest-asyncio
-, pytestCheckHook
 , pythonOlder
 , pytz
 }:
@@ -21,7 +19,7 @@ buildPythonPackage rec {
     owner = "tkdrob";
     repo = pname;
     rev = version;
-    sha256 = "sha256-AdoM+PcVoajxhnEfkyN9UuNufChu8XGmZDLNC3mjrps=";
+    hash = "sha256-AdoM+PcVoajxhnEfkyN9UuNufChu8XGmZDLNC3mjrps=";
   };
 
   propagatedBuildInputs = [
@@ -30,11 +28,8 @@ buildPythonPackage rec {
     pytz
   ];
 
-  checkInputs = [
-    aresponses
-    pytest-asyncio
-    pytestCheckHook
-  ];
+  # Tests require network access
+  doCheck  =false;
 
   pythonImportsCheck = [
     "pyefergy"
diff --git a/pkgs/development/python-modules/pyezviz/default.nix b/pkgs/development/python-modules/pyezviz/default.nix
index e6a2d5c022600..6499b91dda645 100644
--- a/pkgs/development/python-modules/pyezviz/default.nix
+++ b/pkgs/development/python-modules/pyezviz/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pyezviz";
-  version = "0.2.0.6";
+  version = "0.2.0.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "baqs";
     repo = "pyEzviz";
     rev = version;
-    sha256 = "sha256-3GRyM6OK0EpQ7wepTzqg+XANx9D0OVBTnw98i3b1V/8=";
+    sha256 = "sha256-cQsjEH+e2/rNXmCnhNRv2Vg5i/ax0x88w1pit2eVO2c=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyfaidx/default.nix b/pkgs/development/python-modules/pyfaidx/default.nix
index a2815c3e1e2d2..20b3e99eeb413 100644
--- a/pkgs/development/python-modules/pyfaidx/default.nix
+++ b/pkgs/development/python-modules/pyfaidx/default.nix
@@ -5,17 +5,18 @@
 , numpy
 , setuptools-scm
 , six
+, glibcLocales
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pyfaidx";
-  version = "0.6.3.1";
+  version = "0.6.4";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "93adf036a75e08dc9b1dcd59de6a4db2f65a48c603edabe2e499764b6535ed50";
+    sha256 = "sha256-e6O9yx30unSfdmWzTmoFKqToQkBqDflebfRxfMEj85I=";
   };
 
   nativeBuildInputs = [
@@ -27,16 +28,15 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
+    glibcLocales
     nose
     numpy
     pytestCheckHook
   ];
 
-  disabledTests = [
-    # PyPI releases don't ship all the needed files for the tests
-    "test_index_zero_length"
-    "test_fetch_zero_length"
-    "test_read_back_index"
+  disabledTestPaths = [
+    # FileNotFoundError: [Errno 2] No such file or directory: 'data/genes.fasta.gz'
+    "tests/test_Fasta_bgzip.py"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/pyfakefs/default.nix b/pkgs/development/python-modules/pyfakefs/default.nix
index 29803793fd6f8..c3c6513f331c2 100644
--- a/pkgs/development/python-modules/pyfakefs/default.nix
+++ b/pkgs/development/python-modules/pyfakefs/default.nix
@@ -7,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "4.5.4";
+  version = "4.5.6";
   pname = "pyfakefs";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5b5951e873f73bf12e3a19d8e4470c4b7962c51df753cf8c4caaf64e24a0a323";
+    sha256 = "sha256-kU17+ZRAbPvv7gtNRZGPYMFbQGr+k/gZSoBNpaRQqCI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pygatt/default.nix b/pkgs/development/python-modules/pygatt/default.nix
index 9d596e17236ed..8d6f67a4c7514 100644
--- a/pkgs/development/python-modules/pygatt/default.nix
+++ b/pkgs/development/python-modules/pygatt/default.nix
@@ -22,15 +22,19 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    pexpect
     pyserial
   ];
 
+  passthru.extras-require.GATTTOOL = [
+    pexpect
+  ];
+
   checkInputs = [
     mock
     nose
     pytestCheckHook
-  ];
+  ]
+  ++ passthru.extras-require.GATTTOOL;
 
   postPatch = ''
     # Not support for Python < 3.4
diff --git a/pkgs/development/python-modules/pygit2/default.nix b/pkgs/development/python-modules/pygit2/default.nix
index b8b405a8ecf03..2d4deb16276b3 100644
--- a/pkgs/development/python-modules/pygit2/default.nix
+++ b/pkgs/development/python-modules/pygit2/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pygit2";
-  version = "1.8.0";
+  version = "1.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-bixc/1qh5D9DEDSAdhFS9cXWvvQPXB9QyHWKbonmbLY=";
+    sha256 = "sha256-72R5w7YZKCUxawVjNtt36/9ueEmusfu4i3YAGsM3uck=";
   };
 
   preConfigure = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/python-modules/pygls/default.nix b/pkgs/development/python-modules/pygls/default.nix
index 4c557b2676cdf..22cea8c0709db 100644
--- a/pkgs/development/python-modules/pygls/default.nix
+++ b/pkgs/development/python-modules/pygls/default.nix
@@ -4,6 +4,7 @@
 , fetchFromGitHub
 , setuptools-scm
 , pydantic
+, toml
 , typeguard
 , mock
 , pytest-asyncio
@@ -13,6 +14,7 @@
 buildPythonPackage rec {
   pname = "pygls";
   version = "0.11.3";
+  format = "setuptools";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
@@ -27,6 +29,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     pydantic
+    toml
     typeguard
   ];
   # We don't know why an early version of pydantic is required, see:
diff --git a/pkgs/development/python-modules/pyhanko-certvalidator/default.nix b/pkgs/development/python-modules/pyhanko-certvalidator/default.nix
new file mode 100644
index 0000000000000..4675e48a56464
--- /dev/null
+++ b/pkgs/development/python-modules/pyhanko-certvalidator/default.nix
@@ -0,0 +1,73 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, aiohttp
+, asn1crypto
+, cryptography
+, oscrypto
+, requests
+, uritools
+, openssl
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pyhanko-certvalidator";
+  version = "0.19.5";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  # Tests are only available on GitHub
+  src = fetchFromGitHub {
+    owner = "MatthiasValvekens";
+    repo = "certvalidator";
+    rev = version;
+    sha256 = "sha256-UxlBggKgqvbKioG98UaKvhW0YgEa6PqV913nqYvTx1I=";
+  };
+
+  propagatedBuildInputs = [
+    asn1crypto
+    cryptography
+    oscrypto
+    requests
+    uritools
+  ];
+
+  checkInputs = [
+    aiohttp
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    # Test looks for libcrypto.so.1.1
+    "dev/stress_test.py"
+    # Requests
+    "tests/test_crl_client.py"
+  ];
+
+  disabledTests = [
+    # Look for nonexisting certificates
+    "test_basic_certificate_validator_tls"
+    # Failed to fetch OCSP response from http://ocsp.digicert.com
+    "test_fetch_ocsp_aiohttp"
+    "test_fetch_ocsp_requests"
+    "test_fetch_ocsp_err_requests"
+    # Unable to build a validation path for the certificate "%s" - no issuer matching "%s" was found
+    "test_revocation_mode_hard_aiohttp_autofetch"
+    # The path could not be validated because no revocation information could be found for intermediate certificate 1
+    "test_revocation_mode_hard"
+  ];
+
+  pythonImportsCheck = [
+    "pyhanko_certvalidator"
+  ];
+
+  meta = with lib; {
+    description = "Python library for validating X.509 certificates and paths";
+    homepage = "https://github.com/MatthiasValvekens/certvalidator";
+    license = licenses.mit;
+    maintainers = with maintainers; [ wolfangaukang ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyhanko/0001-Updating-pytest-aiohttp-version.patch b/pkgs/development/python-modules/pyhanko/0001-Updating-pytest-aiohttp-version.patch
new file mode 100644
index 0000000000000..562dc6461ef93
--- /dev/null
+++ b/pkgs/development/python-modules/pyhanko/0001-Updating-pytest-aiohttp-version.patch
@@ -0,0 +1,25 @@
+From 942d4fd37786941bae91b769ef6499a4b4da6843 Mon Sep 17 00:00:00 2001
+From: "P. R. d. O" <d.ol.rod@tutanota.com>
+Date: Sat, 9 Apr 2022 12:40:59 -0600
+Subject: [PATCH] Updating pytest-aiohttp version
+
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index fe33d9a..694fab4 100644
+--- a/setup.py
++++ b/setup.py
+@@ -85,7 +85,7 @@ setup(
+     tests_require=[
+         'pytest>=6.1.1', 'requests-mock>=1.8.0',
+         'freezegun>=1.1.0', 'certomancer~=0.8.1',
+-        'aiohttp~=3.8.0', 'pytest-aiohttp~=0.3.0',
++        'aiohttp~=3.8.0', 'pytest-aiohttp~=1.0.3',
+         'python-pae==0.1.0'
+     ],
+     keywords="signature pdf pades digital-signature pkcs11"
+-- 
+2.35.1
+
diff --git a/pkgs/development/python-modules/pyhanko/default.nix b/pkgs/development/python-modules/pyhanko/default.nix
new file mode 100644
index 0000000000000..2cd71ae0f33aa
--- /dev/null
+++ b/pkgs/development/python-modules/pyhanko/default.nix
@@ -0,0 +1,132 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, asn1crypto
+, click
+, cryptography
+, pyhanko-certvalidator
+, pytz
+, pyyaml
+, qrcode
+, requests
+, tzlocal
+, certomancer
+, freezegun
+, python-pae
+, pytest-aiohttp
+, requests-mock
+, pytestCheckHook
+# Flags to add to the library
+, extraPubkeyAlgsSupport ? false
+, oscrypto
+, opentypeSupport ? false
+, fonttools
+, uharfbuzz
+, imageSupport ? false
+, pillow
+, python-barcode
+, pkcs11Support ? false
+, python-pkcs11
+, asyncHttpSupport ? false
+, aiohttp
+}:
+
+buildPythonPackage rec {
+  pname = "pyhanko";
+  version = "0.12.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  # Tests are only available on GitHub
+  src = fetchFromGitHub {
+    owner = "MatthiasValvekens";
+    repo = "pyHanko";
+    rev = version;
+    sha256 = "sha256-W60NTKEtCqJ/QdtNiieKUsrl2jIjIH86Wych68R3mBc=";
+  };
+
+  propagatedBuildInputs = [
+    click
+    pyhanko-certvalidator
+    pytz
+    pyyaml
+    qrcode
+    tzlocal
+  ] ++ lib.optionals (extraPubkeyAlgsSupport) [
+    oscrypto
+  ] ++ lib.optionals (opentypeSupport) [
+    fonttools
+    uharfbuzz
+  ] ++ lib.optionals (imageSupport) [
+    pillow
+    python-barcode
+  ] ++ lib.optionals (pkcs11Support) [
+    python-pkcs11
+  ] ++ lib.optionals (asyncHttpSupport) [
+    aiohttp
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace ", 'pytest-runner'" "" \
+      --replace "pytest-aiohttp~=0.3.0" "pytest-aiohttp~=1.0.3"
+  '';
+
+  checkInputs = [
+    aiohttp
+    certomancer
+    freezegun
+    python-pae
+    pytest-aiohttp
+    requests-mock
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = lib.optionals (!opentypeSupport) [
+    "pyhanko_tests/test_stamp.py"
+    "pyhanko_tests/test_text.py"
+  ] ++ lib.optionals (!imageSupport) [
+    "pyhanko_tests/test_barcode.py"
+  ] ++ lib.optionals (!pkcs11Support) [
+    "pyhanko_tests/test_pkcs11.py"
+  ];
+
+  disabledTests = [
+    # Most of the test require working with local certificates,
+    # contacting OSCP or performing requests
+    "test_generic_data_sign_legacy"
+    "test_generic_data_sign"
+    "test_cms_v3_sign"
+    "test_detached_cms_with_self_reported_timestamp"
+    "test_detached_cms_with_tst"
+    "test_detached_cms_with_content_tst"
+    "test_detached_cms_with_wrong_content_tst"
+    "test_detached_with_malformed_content_tst"
+    "test_noop_attribute_prov"
+    "test_detached_cades_cms_with_tst"
+    "test_read_qr_config"
+    "test_no_changes_policy"
+    "test_bogus_metadata_manipulation"
+    "test_tamper_sig_obj"
+    "test_signed_file_diff_proxied_objs"
+    "test_pades_revinfo_live"
+    "test_diff_fallback_ok"
+    "test_no_diff_summary"
+    "test_ocsp_embed"
+    "test_ts_fetch_aiohttp"
+    "test_ts_fetch_requests"
+  ];
+
+  pythonImportsCheck = [
+    "pyhanko"
+  ];
+
+  meta = with lib; {
+    description = "Sign and stamp PDF files";
+    homepage = "https://github.com/MatthiasValvekens/pyHanko";
+    license = licenses.mit;
+    maintainers = with maintainers; [ wolfangaukang ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyhaversion/default.nix b/pkgs/development/python-modules/pyhaversion/default.nix
index 6028f19bdab22..84c5756689fdb 100644
--- a/pkgs/development/python-modules/pyhaversion/default.nix
+++ b/pkgs/development/python-modules/pyhaversion/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pyhaversion";
-  version = "22.02.0";
+  version = "22.4.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -19,8 +19,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "ludeeus";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-7cBUsTEZ9yVlWsUdKs4YWm647baN09AQJI+7CTORhLc=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-adM6LUo8ycD/3G19JIl4DcuVK/f0/9V8AG82qgYO0uM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyicu/default.nix b/pkgs/development/python-modules/pyicu/default.nix
index 3281a7ceb8735..02226feff2ced 100644
--- a/pkgs/development/python-modules/pyicu/default.nix
+++ b/pkgs/development/python-modules/pyicu/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "PyICU";
-  version = "2.8";
+  version = "2.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3d80de47045a8163db5aebc947c42b4d429eeea4f0c32af4f40b33981fa872b9";
+    sha256 = "sha256-8LlUmof4e6fEE/E2edE3Jx4LN/HzmwEJrOOCV9TRSNY=";
   };
 
   nativeBuildInputs = [ icu ]; # for icu-config, but should be replaced with pkg-config
diff --git a/pkgs/development/python-modules/pyinfra/default.nix b/pkgs/development/python-modules/pyinfra/default.nix
index fed8628ea2da1..130486a55f171 100644
--- a/pkgs/development/python-modules/pyinfra/default.nix
+++ b/pkgs/development/python-modules/pyinfra/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "pyinfra";
-  version = "1.7.2";
+  version = "2.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-qA65l0+E5jVdPghjcX2YiVtdhHRxt4ey28xOedgwHaM=";
+    sha256 = "sha256-157NtpA85FS27Ln1Xsvq5/qumSsr0WSDOhG0UwMUnRE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyisy/default.nix b/pkgs/development/python-modules/pyisy/default.nix
index 5daadce41f444..4037146710085 100644
--- a/pkgs/development/python-modules/pyisy/default.nix
+++ b/pkgs/development/python-modules/pyisy/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "pyisy";
-  version = "3.0.5";
+  version = "3.0.6";
 
   src = fetchFromGitHub {
     owner = "automicus";
     repo = "PyISY";
-    rev = "v${version}";
-    hash = "sha256-lVutG/xJvVP0qS0UnEyS/9KwwqdRX6ownTKek8/VXbU=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-4thCP9Xc3dtL6IaP863sW/L4aj4+QIPFv6p0kFLGh7E=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pykerberos/default.nix b/pkgs/development/python-modules/pykerberos/default.nix
index fd4c0088b08c1..67246ffbb1ab7 100644
--- a/pkgs/development/python-modules/pykerberos/default.nix
+++ b/pkgs/development/python-modules/pykerberos/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pykerberos";
-  version = "1.2.3.dev0";
+  version = "1.2.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17zjiw6rqgfic32px86qls1i3z7anp15dgb3sprbdvywy98alryn";
+    sha256 = "sha256-nXAevY/FlsmdMVXVukWBO9WQjSbvg7oK3SUO22IqvtQ=";
   };
 
   nativeBuildInputs = [ krb5 ]; # for krb5-config
diff --git a/pkgs/development/python-modules/pykeyatome/default.nix b/pkgs/development/python-modules/pykeyatome/default.nix
index f4ea169b01e45..a9bfb58a9c181 100644
--- a/pkgs/development/python-modules/pykeyatome/default.nix
+++ b/pkgs/development/python-modules/pykeyatome/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "pykeyatome";
-  version = "1.4.1";
+  version = "1.5.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -21,8 +21,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "jugla";
     repo = "pyKeyAtome";
-    rev = "V${version}";
-    sha256 = "sha256-Gv418i2JLoovwagkZpv8PIJPW3I/0pRmXR/PJOJ2NBc=";
+    rev = "refs/tags/V${version}";
+    sha256 = "sha256-9J8MaQs3+/Ld+v3WmA98lSu3iMrX4Se4q1jD1KeRTpw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pylama/default.nix b/pkgs/development/python-modules/pylama/default.nix
index 3f93aef0a3f7b..0289b2462136c 100644
--- a/pkgs/development/python-modules/pylama/default.nix
+++ b/pkgs/development/python-modules/pylama/default.nix
@@ -10,12 +10,14 @@
 , pydocstyle
 , pyflakes
 , vulture
+, isort
+, pylint
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pylama";
-  version = "8.3.6";
+  version = "8.3.8";
 
   format = "setuptools";
 
@@ -24,7 +26,7 @@ buildPythonPackage rec {
     owner = "klen";
     repo = "pylama";
     rev = version;
-    hash = "sha256-KU/G+2Fm4G/dUuNhhk8xM0Y8+7YOUUgREONM8CQGugw=";
+    hash = "sha256-g6Lq5NaieUI/alxqoVFfL5VaCHwB/jLcp02/N1W69yE=";
   };
 
   patches = [
@@ -45,14 +47,22 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
+    # avoid infinite recursion pylint -> isort -> pylama
+    (pylint.override {
+      isort = isort.overridePythonAttrs (old: {
+        doCheck = false;
+      });
+    })
     pytestCheckHook
   ];
 
+  preCheck = ''
+    export HOME=$TEMP
+  '';
+
   disabledTests = [
-    "test_pylint" # infinite recursion
     "test_quotes" # FIXME package pylama-quotes
     "test_radon" # FIXME package radon
-    "test_sort"
   ];
 
   pythonImportsCheck = [
@@ -62,6 +72,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Code audit tool for python";
     homepage = "https://github.com/klen/pylama";
+    changelog = "https://github.com/klen/pylama/blob/${version}/Changelog";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
   };
diff --git a/pkgs/development/python-modules/pylint-django/default.nix b/pkgs/development/python-modules/pylint-django/default.nix
index 291ef8fba62ef..61d49bd3ba0db 100644
--- a/pkgs/development/python-modules/pylint-django/default.nix
+++ b/pkgs/development/python-modules/pylint-django/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "pylint-django";
-  version = "2.5.0";
+  version = "2.5.2";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "PyCQA";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1r48dss9qnzlifwy5ylkffdw35aaajmil0486mav056jm1vmi2pr";
+    sha256 = "sha256-VgGdV1T154LauclGo6jpLPUrYn5vTOWwvO4IXQ9se7c=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pylint/default.nix b/pkgs/development/python-modules/pylint/default.nix
index b52cb3e2f95cb..dda915bb7ef33 100644
--- a/pkgs/development/python-modules/pylint/default.nix
+++ b/pkgs/development/python-modules/pylint/default.nix
@@ -2,30 +2,35 @@
 , lib
 , buildPythonPackage
 , fetchFromGitHub
+, pythonAtLeast
 , pythonOlder
 , installShellFiles
 , astroid
+, dill
 , isort
-, GitPython
 , mccabe
 , platformdirs
-, toml
+, tomli
+, typing-extensions
+, GitPython
 , pytest-benchmark
+, pytest-timeout
 , pytest-xdist
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pylint";
-  version = "2.12.2";
+  version = "2.13.5";
+  format = "setuptools";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.6.2";
 
   src = fetchFromGitHub {
     owner = "PyCQA";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-seBYBTB+8PLIovqxVohkoQEfDAZI1fehLgXuHeTx9Wo=";
+    sha256 = "sha256-FB99vmUtoTc0cTjDUSbx80Tesh0vASigSpPktrDYk08=";
   };
 
   nativeBuildInputs = [
@@ -34,10 +39,14 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     astroid
+    dill
     isort
     mccabe
     platformdirs
-    toml
+  ] ++ lib.optionals (pythonOlder "3.11") [
+    tomli
+  ] ++ lib.optionals (pythonOlder "3.9") [
+    typing-extensions
   ];
 
   postInstall = ''
@@ -48,9 +57,12 @@ buildPythonPackage rec {
 
   checkInputs = [
     GitPython
+    # https://github.com/PyCQA/pylint/blob/main/requirements_test_min.txt
     pytest-benchmark
+    pytest-timeout
     pytest-xdist
     pytestCheckHook
+    typing-extensions
   ];
 
   dontUseSetuptoolsCheck = true;
@@ -61,10 +73,6 @@ buildPythonPackage rec {
     export HOME=$TEMPDIR
   '';
 
-  pytestFlagsArray = [
-    "-n auto"
-  ];
-
   disabledTestPaths = [
     # tests miss multiple input files
     # FileNotFoundError: [Errno 2] No such file or directory
diff --git a/pkgs/development/python-modules/pymazda/default.nix b/pkgs/development/python-modules/pymazda/default.nix
index fdc7e1f67873f..5ee3234b70d81 100644
--- a/pkgs/development/python-modules/pymazda/default.nix
+++ b/pkgs/development/python-modules/pymazda/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pymazda";
-  version = "0.3.2";
+  version = "0.3.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d51619cfbd90f4bb4e8fbfe1bccd58d4f5ece9bdb78d8f33fed1776d749d5fa9";
+    sha256 = "sha256-jvDjitS8r0oyANxUGbYksX7O7dbEqZeWEpYc9gABb78=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pymc3/default.nix b/pkgs/development/python-modules/pymc3/default.nix
index 7c1e46647e396..54a12481e116d 100644
--- a/pkgs/development/python-modules/pymc3/default.nix
+++ b/pkgs/development/python-modules/pymc3/default.nix
@@ -23,12 +23,12 @@
 
 buildPythonPackage rec {
   pname = "pymc3";
-  version = "3.11.4";
+  version = "3.11.5";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3b88d1e6c85f7fb8a9b99d6f136ac860672170370ec4146338fdd160c3b3fd3f";
+    sha256 = "sha256-M0HLvZYpCROLfV6+TtfP7in0Cy/nyt64iLOda7wXE4w=";
   };
 
   # No need for coverage stats in Nix builds
diff --git a/pkgs/development/python-modules/pymemcache/default.nix b/pkgs/development/python-modules/pymemcache/default.nix
index f30b6ea06b4c0..81c05f4e97c2e 100644
--- a/pkgs/development/python-modules/pymemcache/default.nix
+++ b/pkgs/development/python-modules/pymemcache/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, six
 , future
 , mock
 , pytestCheckHook
@@ -8,15 +9,20 @@
 
 buildPythonPackage rec {
   pname = "pymemcache";
-  version = "3.5.0";
+  version = "3.5.1";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "pinterest";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-O2qmcLWCUSc1f32irelIZOOuOziOUQXFGcuQJBXPvvM=";
+    sha256 = "sha256-DKqfv5gf9gzbnEPQSzy2mAaVYJZL9jmTKyGWVzj40T4=";
   };
 
+  propagatedBuildInputs = [
+    six
+  ];
+
   checkInputs = [
     future
     mock
diff --git a/pkgs/development/python-modules/pymfy/default.nix b/pkgs/development/python-modules/pymfy/default.nix
index ab5b21e8881d8..e48966e9da064 100644
--- a/pkgs/development/python-modules/pymfy/default.nix
+++ b/pkgs/development/python-modules/pymfy/default.nix
@@ -6,13 +6,14 @@
 , pytestCheckHook
 , pythonOlder
 , requests
-, requests_oauthlib
+, requests-oauthlib
 }:
 
 buildPythonPackage rec {
   pname = "pymfy";
   version = "0.11.0";
   format = "pyproject";
+
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
@@ -22,11 +23,13 @@ buildPythonPackage rec {
     sha256 = "0wpjwjmywfyqgwvfa5kwcjpaljc32qa088kk88nl9nqdvc31mzhv";
   };
 
-  nativeBuildInputs = [ poetry-core ];
+  nativeBuildInputs = [
+    poetry-core
+  ];
 
   propagatedBuildInputs = [
     requests
-    requests_oauthlib
+    requests-oauthlib
   ];
 
   checkInputs = [
@@ -34,7 +37,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "pymfy" ];
+  pythonImportsCheck = [
+    "pymfy"
+  ];
 
   meta = with lib; {
     description = "Python client for the Somfy Open API";
diff --git a/pkgs/development/python-modules/pymongo/default.nix b/pkgs/development/python-modules/pymongo/default.nix
index bae4f7c25fb82..ba184f68b4b5a 100644
--- a/pkgs/development/python-modules/pymongo/default.nix
+++ b/pkgs/development/python-modules/pymongo/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "pymongo";
-  version = "3.12.2";
+  version = "3.12.3";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "64ea5e97fca1a37f83df9f3460bf63640bc0d725e12f3471e6acbf3a6040dd37";
+    sha256 = "sha256-ConK3ABipeU2ZN3gQ/bAlxcrjBxfAJRJAJUoL/mZWl8=";
   };
 
   # Tests call a running mongodb instance
diff --git a/pkgs/development/python-modules/pympler/default.nix b/pkgs/development/python-modules/pympler/default.nix
index 4f132ad2c8274..6fc917981a7f4 100644
--- a/pkgs/development/python-modules/pympler/default.nix
+++ b/pkgs/development/python-modules/pympler/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv
 , buildPythonPackage
 , fetchPypi
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -12,9 +13,15 @@ buildPythonPackage rec {
     sha256 = "993f1a3599ca3f4fcd7160c7545ad06310c9e12f70174ae7ae8d4e25f6c5d3fa";
   };
 
-  postPatch = ''
-   rm test/asizeof/test_asizeof.py
-  '';
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # 'AssertionError: 'function (test.muppy.test_summary.func)' != 'function (muppy.test_summary.func)'
+    # https://github.com/pympler/pympler/issues/134
+    "test_repr_function"
+  ];
 
   doCheck = stdenv.hostPlatform.isLinux;
 
diff --git a/pkgs/development/python-modules/pynello/default.nix b/pkgs/development/python-modules/pynello/default.nix
index 43852cbcd4c24..a7a75d7c5ddd3 100644
--- a/pkgs/development/python-modules/pynello/default.nix
+++ b/pkgs/development/python-modules/pynello/default.nix
@@ -4,7 +4,7 @@
 , python-dateutil
 , pythonOlder
 , requests
-, requests_oauthlib
+, requests-oauthlib
 }:
 
 buildPythonPackage rec {
@@ -18,19 +18,21 @@ buildPythonPackage rec {
     owner = "pschmitt";
     repo = pname;
     rev = version;
-    sha256 = "015rlccsn2vff9if82rjj2fza3bjbmawqhamc22wq40gq7pbfk5i";
+    hash = "sha256-sUy37sEPEMyFYFVBzFVdcg31nZAyC+Ricm4LqxmjuQQ=";
   };
 
   propagatedBuildInputs = [
     python-dateutil
     requests
-    requests_oauthlib
+    requests-oauthlib
   ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [ "pynello" ];
+  pythonImportsCheck = [
+    "pynello"
+  ];
 
   meta = with lib; {
     description = "Python library for nello.io intercoms";
diff --git a/pkgs/development/python-modules/pynetbox/default.nix b/pkgs/development/python-modules/pynetbox/default.nix
index 14c74cc8669c4..e92776e72a296 100644
--- a/pkgs/development/python-modules/pynetbox/default.nix
+++ b/pkgs/development/python-modules/pynetbox/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "pynetbox";
-  version = "6.6.1";
+  version = "6.6.2";
 
   src = fetchFromGitHub {
     owner = "netbox-community";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-8oqbnCAMq29QIp9ETbMa3Ve8tTuJzQ0D8KlOYnLdUgQ=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-W5ukrhqJTgOXM9MnbZWvNy9TCoEUGrFYfD+zGGNU07w=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/pynetdicom/default.nix b/pkgs/development/python-modules/pynetdicom/default.nix
index fa2b369aa2bae..32c93b50e55e2 100644
--- a/pkgs/development/python-modules/pynetdicom/default.nix
+++ b/pkgs/development/python-modules/pynetdicom/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pynetdicom";
-  version = "2.0.1";
+  version = "2.0.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "pydicom";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-28SoOdS6sAj3KrfJT8PR2k8XLEY2zh0k9w1eq1y7V8M=";
+    sha256 = "sha256-/JWQUtFBW4uqCbs/nUxj1pRBfTCXV4wcqTkqvzpdFrM=";
   };
 
   propagatedBuildInputs = [
@@ -40,14 +40,17 @@ buildPythonPackage rec {
     "TestAEGoodAssociation"
     "TestEchoSCP"
     "TestEchoSCPCLI"
+    "TestEventHandlingAcceptor"
     "TestFindSCP"
     "TestFindSCPCLI"
     "TestGetSCP"
     "TestGetSCPCLI"
     "TestMoveSCP"
     "TestMoveSCPCLI"
+    "TestPrimitive_N_GET"
     "TestQRGetServiceClass"
     "TestQRMoveServiceClass"
+    "TestSearch"
     "TestState"
     "TestStorageServiceClass"
     "TestStoreSCP"
@@ -56,6 +59,11 @@ buildPythonPackage rec {
     "TestStoreSCUCLI"
   ];
 
+  disabledTestPaths = [
+    # Ignore apps tests
+    "pynetdicom/apps/tests/"
+  ];
+
   pythonImportsCheck = [
     "pynetdicom"
   ];
diff --git a/pkgs/development/python-modules/pynetgear/default.nix b/pkgs/development/python-modules/pynetgear/default.nix
index 1e93ebdc486e7..1eabc9daaee79 100644
--- a/pkgs/development/python-modules/pynetgear/default.nix
+++ b/pkgs/development/python-modules/pynetgear/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pynetgear";
-  version = "0.9.3";
+  version = "0.9.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,8 +15,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "MatMaul";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-zydSx2OZowf+1KZ5ZJ/1FDVqDZQZ4U0+q62eB1+s+WY=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-/oxwUukYq/a0WeO/XhkMW3Jj7I1icZZUDwh1mdbGi08=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pynina/default.nix b/pkgs/development/python-modules/pynina/default.nix
index 8227e01edc24d..be81bd6e6557a 100644
--- a/pkgs/development/python-modules/pynina/default.nix
+++ b/pkgs/development/python-modules/pynina/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pynina";
-  version = "0.1.7";
+  version = "0.1.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PyNINA";
     inherit version;
-    sha256 = "sha256-7sceYmzOmXJMKaIdGmXMuCAum0aJeVTxx1w/jZy5Eig=";
+    sha256 = "sha256-U8/SzkkZJLRBpTQx8NRpFWUlckn4Jr0n9cHR4/plyb0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pynndescent/default.nix b/pkgs/development/python-modules/pynndescent/default.nix
index f15cfef63c6e0..79b914f6122cc 100644
--- a/pkgs/development/python-modules/pynndescent/default.nix
+++ b/pkgs/development/python-modules/pynndescent/default.nix
@@ -34,6 +34,16 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # numpy.core._exceptions._UFuncNoLoopError
+    "test_sparse_nn_descent_query_accuracy_angular"
+    "test_nn_descent_query_accuracy_angular"
+    "test_alternative_distances"
+    # scipy: ValueError: Unknown Distance Metric: wminkowski
+    # https://github.com/scikit-learn/scikit-learn/pull/21741
+    "test_weighted_minkowski"
+  ];
+
   pythonImportsCheck = [
     "pynndescent"
   ];
diff --git a/pkgs/development/python-modules/pyomo/default.nix b/pkgs/development/python-modules/pyomo/default.nix
index e8d89e9ef2d25..20450cd9effc6 100644
--- a/pkgs/development/python-modules/pyomo/default.nix
+++ b/pkgs/development/python-modules/pyomo/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "pyomo";
-  version = "5.7.3";
+  version = "6.3.0";
   disabled = isPy27; # unable to import pyutilib.th
 
   src = fetchFromGitHub {
     repo = "pyomo";
     owner = "pyomo";
     rev = version;
-    sha256 = "sha256-p0/DdCwyXdzXElzjWewKs0Oi7BMXC+BxgYikdZL0t68=";
+    sha256 = "sha256-xyjiB5fDRf5y9Av5Cr+8wtU4pHzMHsM45mcmJEOaTWs=";
   };
 
   checkInputs = [ nose glpk ];
diff --git a/pkgs/development/python-modules/pyopengl-accelerate/default.nix b/pkgs/development/python-modules/pyopengl-accelerate/default.nix
index c6839bba98962..195ec563d50f6 100644
--- a/pkgs/development/python-modules/pyopengl-accelerate/default.nix
+++ b/pkgs/development/python-modules/pyopengl-accelerate/default.nix
@@ -1,11 +1,13 @@
 { lib
 , buildPythonPackage
+, pythonAtLeast
 , fetchPypi
 }:
 
 buildPythonPackage rec {
   pname = "pyopengl-accelerate";
   version = "3.1.5";
+  disabled = pythonAtLeast "3.10"; # fails to compile
 
   src = fetchPypi {
     pname = "PyOpenGL-accelerate";
diff --git a/pkgs/development/python-modules/pyopengl/default.nix b/pkgs/development/python-modules/pyopengl/default.nix
index 72d6ae3325837..7370057ad720d 100644
--- a/pkgs/development/python-modules/pyopengl/default.nix
+++ b/pkgs/development/python-modules/pyopengl/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "pyopengl";
-  version = "3.1.5";
+  version = "3.1.6";
 
   src = fetchPypi {
     pname = "PyOpenGL";
     inherit version;
-    sha256 = "4107ba0d0390da5766a08c242cf0cf3404c377ed293c5f6d701e457c57ba3424";
+    sha256 = "sha256-jqbIdzkn7adAW//G9buTvoFWmnsFyMrFDNlOlp3OXic=";
   };
 
   propagatedBuildInputs = [ pillow ];
diff --git a/pkgs/development/python-modules/pyopenssl/default.nix b/pkgs/development/python-modules/pyopenssl/default.nix
index e4655082af92b..d629d97637fa7 100644
--- a/pkgs/development/python-modules/pyopenssl/default.nix
+++ b/pkgs/development/python-modules/pyopenssl/default.nix
@@ -4,13 +4,9 @@
 , fetchPypi
 , openssl
 , cryptography
-, pyasn1
-, idna
 , pytestCheckHook
 , pretend
 , flaky
-, glibcLocales
-, six
 }:
 
 buildPythonPackage rec {
@@ -30,9 +26,9 @@ buildPythonPackage rec {
   doCheck = !stdenv.isDarwin;
 
   nativeBuildInputs = [ openssl ];
-  propagatedBuildInputs = [ cryptography pyasn1 idna six ];
+  propagatedBuildInputs = [ cryptography ];
 
-  checkInputs = [ pytestCheckHook pretend flaky glibcLocales ];
+  checkInputs = [ pytestCheckHook pretend flaky ];
 
   preCheck = ''
     export LANG="en_US.UTF-8"
diff --git a/pkgs/development/python-modules/pyoppleio/default.nix b/pkgs/development/python-modules/pyoppleio/default.nix
new file mode 100644
index 0000000000000..f0d11d86c7c27
--- /dev/null
+++ b/pkgs/development/python-modules/pyoppleio/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, crc16
+, fetchPypi
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pyoppleio";
+  version = "1.0.7";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-S1w3pPqhX903kkXUq9ALz0+zRvNGOimLughRRVKjV8E=";
+  };
+
+  propagatedBuildInputs = [
+    crc16
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pyoppleio"
+  ];
+
+  meta = with lib; {
+    description = "Library for interacting with OPPLE lights";
+    homepage = "https://github.com/jedmeng/python-oppleio";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyoverkiz/default.nix b/pkgs/development/python-modules/pyoverkiz/default.nix
index f39b17a67541b..019a7682a7ef6 100644
--- a/pkgs/development/python-modules/pyoverkiz/default.nix
+++ b/pkgs/development/python-modules/pyoverkiz/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pyoverkiz";
-  version = "1.3.14";
+  version = "1.4.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "iMicknl";
     repo = "python-overkiz-api";
     rev = "v${version}";
-    hash = "sha256-dyT2hrTQwYoKEZAVIed2N4259YlR2JmvOEpAuPLCur4=";
+    hash = "sha256-uaeSyRtnokUJ3jWTioVMuo+T3jFoH+SYTBT3HPCPjm8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyownet/default.nix b/pkgs/development/python-modules/pyownet/default.nix
index 2bdc18e1e2440..9a368c26087eb 100644
--- a/pkgs/development/python-modules/pyownet/default.nix
+++ b/pkgs/development/python-modules/pyownet/default.nix
@@ -14,6 +14,10 @@ buildPythonPackage rec {
     sha256 = "4f2fa4471c2f806b35090bdc6c092305c6eded3ff3736f8b586d35bdb157de62";
   };
 
+  postPatch = ''
+    sed -i '/use_2to3/d' setup.py
+  '';
+
   # tests access network
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/pypandoc/default.nix b/pkgs/development/python-modules/pypandoc/default.nix
index 32bada43c1545..8e46be2697ce8 100644
--- a/pkgs/development/python-modules/pypandoc/default.nix
+++ b/pkgs/development/python-modules/pypandoc/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "pypandoc";
-  version = "1.7.4";
+  version = "1.7.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-KN4j9kbZ6ARAPGth180yptdso1arx563IXvb/2dI+G4=";
+    sha256 = "sha256-gCwmquF7ZBNsbQBpSdjOGDp9TZ+9Ty0FHmb0+59FylA=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/pyparsing/default.nix b/pkgs/development/python-modules/pyparsing/default.nix
index 27047cf6eabc4..fb5abc5c3522b 100644
--- a/pkgs/development/python-modules/pyparsing/default.nix
+++ b/pkgs/development/python-modules/pyparsing/default.nix
@@ -5,31 +5,31 @@
 # since this is a dependency of pytest, we need to avoid
 # circular dependencies
 , jinja2
+, pytestCheckHook
 , railroad-diagrams
 }:
 
 let
   pyparsing = buildPythonPackage rec {
     pname = "pyparsing";
-    version = "3.0.6";
+    version = "3.0.7";
 
     src = fetchFromGitHub {
       owner = "pyparsing";
       repo = pname;
       rev = "pyparsing_${version}";
-      sha256 = "0n89ky7rx5yg09ssji8liahnyxip08hz7syc2k4pmlgs4978181a";
+      sha256 = "sha256-RyvTTbFshAZgyZPgzqcq31E504RlnMZuf16jJYGqDDI=";
     };
 
     # circular dependencies if enabled by default
     doCheck = false;
     checkInputs = [
       jinja2
+      pytestCheckHook
       railroad-diagrams
     ];
 
-    checkPhase = ''
-      python -m unittest
-    '';
+    pythonImportsCheck = [ "pyparsing" ];
 
     passthru.tests = {
       check = pyparsing.overridePythonAttrs (_: { doCheck = true; });
@@ -39,9 +39,7 @@ let
       homepage = "https://github.com/pyparsing/pyparsing";
       description = "An alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions";
       license = licenses.mit;
-      maintainers = with maintainers; [
-        kamadorueda
-      ];
+      maintainers = with maintainers; [ kamadorueda ];
     };
   };
 in
diff --git a/pkgs/development/python-modules/pypdf3/default.nix b/pkgs/development/python-modules/pypdf3/default.nix
index 4970c0d527bb5..a4273497e3bc4 100644
--- a/pkgs/development/python-modules/pypdf3/default.nix
+++ b/pkgs/development/python-modules/pypdf3/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "pypdf3";
-  version = "1.0.5";
+  version = "1.0.6";
 
   src = fetchPypi {
     pname = "PyPDF3";
     inherit version;
-    sha256 = "sha256-DGKpR4p3z8tw4gKi5Hmj09svysD3Hkn4NklhgROmEAU=";
+    sha256 = "sha256-yUbzJzQZ43JY415yJz9JkEqxVyPYenYcERXvmXmfjF8=";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/development/python-modules/pyperf/default.nix b/pkgs/development/python-modules/pyperf/default.nix
index 40a77fc0c7bd1..25cf9906cb44b 100644
--- a/pkgs/development/python-modules/pyperf/default.nix
+++ b/pkgs/development/python-modules/pyperf/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "pyperf";
-  version = "2.3.0";
+  version = "2.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8a85dd42e067131d5b26b71472336da7f7f4b87ff9c97350d89f5ff0de9adedc";
+    sha256 = "sha256-SsLiz3JKubUlInw7SmnxarXHFOpbrWHJdODF1XhyOKE=";
   };
 
   checkInputs = [ nose psutil ] ++
diff --git a/pkgs/development/python-modules/pyplaato/default.nix b/pkgs/development/python-modules/pyplaato/default.nix
index d4e91a985ef34..f070340f9290c 100644
--- a/pkgs/development/python-modules/pyplaato/default.nix
+++ b/pkgs/development/python-modules/pyplaato/default.nix
@@ -3,22 +3,32 @@
 , fetchPypi
 , aiohttp
 , python-dateutil
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pyplaato";
-  version = "0.0.15";
+  version = "0.0.18";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1nykbkv2fg1x5min07cbi44x6am48f5gw3mnyj7x2kpmj6sqfpqp";
+    hash = "sha256-HZF3Yxb/dTQSVzTkdAbfeD1Zyf8jFHoF3nt6OcdCnAM=";
   };
 
-  propagatedBuildInputs = [ aiohttp python-dateutil ];
+  propagatedBuildInputs = [
+    aiohttp
+    python-dateutil
+  ];
 
-  # Project has no tests
+  # Module has no tests
   doCheck = false;
-  pythonImportsCheck = [ "pyplaato" ];
+
+  pythonImportsCheck = [
+    "pyplaato"
+  ];
 
   meta = with lib; {
     description = "Python API client for fetching Plaato data";
diff --git a/pkgs/development/python-modules/pypng/default.nix b/pkgs/development/python-modules/pypng/default.nix
new file mode 100644
index 0000000000000..968e9310318a0
--- /dev/null
+++ b/pkgs/development/python-modules/pypng/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pypng";
+  version = "0.0.21";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "drj11";
+    repo = "pypng";
+    rev = "${pname}-${version}";
+    sha256 = "sha256-JU1GCSTm2s6Kczn6aRcF5DizPJVpizNtnAMJxTBi9vo=";
+  };
+
+  pythonImportsCheck = [ "png" ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Pure Python library for PNG image encoding/decoding";
+    homepage = "https://github.com/drj11/pypng";
+    license = licenses.mit;
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyppeteer/default.nix b/pkgs/development/python-modules/pyppeteer/default.nix
index 153be45ca8f56..a1857ec720670 100644
--- a/pkgs/development/python-modules/pyppeteer/default.nix
+++ b/pkgs/development/python-modules/pyppeteer/default.nix
@@ -1,6 +1,7 @@
 { lib
 , appdirs
 , buildPythonPackage
+, certifi
 , fetchFromGitHub
 , importlib-metadata
 , poetry-core
@@ -16,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "pyppeteer";
-  version = "0.2.6";
+  version = "1.0.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-mMFQp8GMjKUc3yyB4c8Tgxut7LkMFa2cySO3iSA/aI4=";
+    sha256 = "sha256-izMaWtJdkLHMQbyq7o7n46xB8dOHXZ5uO0UXt+twjL4=";
   };
 
   nativeBuildInputs = [
@@ -34,6 +35,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     appdirs
+    certifi
     importlib-metadata
     pyee
     tqdm
@@ -49,6 +51,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
+      --replace 'pyee = "^8.1.0"' 'pyee = "*"' \
       --replace 'websockets = "^9.1"' 'websockets = "*"'
   '';
 
diff --git a/pkgs/development/python-modules/pypykatz/default.nix b/pkgs/development/python-modules/pypykatz/default.nix
index 2e2bd7def655d..72fdb6d3c5b48 100644
--- a/pkgs/development/python-modules/pypykatz/default.nix
+++ b/pkgs/development/python-modules/pypykatz/default.nix
@@ -1,4 +1,5 @@
 { lib
+, aesedb
 , aiosmb
 , aiowinreg
 , buildPythonPackage
@@ -6,19 +7,24 @@
 , minidump
 , minikerberos
 , msldap
+, pythonOlder
 , winsspi
 }:
 
 buildPythonPackage rec {
   pname = "pypykatz";
-  version = "0.5.2";
+  version = "0.5.7";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1lyvypi1g4l9fq1f9q05bdn6vq8y5y9ghmb6ziqdycr0lxn7lfdd";
+    hash = "sha256-G+dbP+xtRH8dIU70HbimRJV+e/yYlo2ds5OAIzUcydY=";
   };
 
   propagatedBuildInputs = [
+    aesedb
     aiosmb
     aiowinreg
     minikerberos
@@ -29,7 +35,10 @@ buildPythonPackage rec {
 
   # Project doesn't have tests
   doCheck = false;
-  pythonImportsCheck = [ "pypykatz" ];
+
+  pythonImportsCheck = [
+    "pypykatz"
+  ];
 
   meta = with lib; {
     description = "Mimikatz implementation in Python";
diff --git a/pkgs/development/python-modules/pyrad/default.nix b/pkgs/development/python-modules/pyrad/default.nix
index 67841cab7d9fc..c8fb0310548d0 100644
--- a/pkgs/development/python-modules/pyrad/default.nix
+++ b/pkgs/development/python-modules/pyrad/default.nix
@@ -1,8 +1,17 @@
-{ buildPythonPackage, fetchFromGitHub, lib, netaddr, six, nose }:
+{ buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, lib
+, poetry-core
+, netaddr
+, six
+, python
+}:
 
 buildPythonPackage rec {
   pname = "pyrad";
   version = "2.4";
+  format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "pyradius";
@@ -11,19 +20,43 @@ buildPythonPackage rec {
     sha256 = "sha256-oqgkE0xG/8cmLeRZdGoHkaHbjtByeJwzBJwEdxH8oNY=";
   };
 
-  propagatedBuildInputs = [ netaddr six ];
-  checkInputs = [ nose ];
+  patches = [
+    (fetchpatch {
+      # Migrate to poetry-core
+      url = "https://github.com/pyradius/pyrad/commit/a4b70067dd6269e14a2f9530d820390a8a454231.patch";
+      hash = "sha256-1We9wrVY3Or3GLIKK6hZvEjVYv6JOaahgP9zOMvgErE=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    netaddr
+    six
+  ];
+
+  preCheck = ''
+    substituteInPlace tests/testServer.py \
+      --replace "def testBind(self):" "def dontTestBind(self):" \
+      --replace "def testBindv6(self):" "def dontTestBindv6(self):"
+  '';
 
   checkPhase = ''
-    nosetests -e testBind
+    runHook preCheck
+    ${python.interpreter} -m unittest discover
+    runHook postCheck
   '';
 
-  pythonImportsCheck = [ "pyrad" ];
+  pythonImportsCheck = [
+    "pyrad"
+  ];
 
   meta = with lib; {
     description = "Python RADIUS Implementation";
-    homepage = "https://bitbucket.org/zzzeek/sqlsoup";
+    homepage = "https://github.com/pyradius/pyrad";
     license = licenses.bsd3;
-    maintainers = [ maintainers.globin ];
+    maintainers = with maintainers; [ globin ];
   };
 }
diff --git a/pkgs/development/python-modules/pyramid_jinja2/default.nix b/pkgs/development/python-modules/pyramid_jinja2/default.nix
index d1eaf49e6bc23..455f4fb73b6c2 100644
--- a/pkgs/development/python-modules/pyramid_jinja2/default.nix
+++ b/pkgs/development/python-modules/pyramid_jinja2/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pyramid_jinja2";
-  version = "2.8";
+  version = "2.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "81e0615cb3108f2a251ff3141ad0d698a5d03685819f3a836ea84787e8489502";
+    sha256 = "sha256-8nEGnZ6ay6x622kSGQqEj2M49+V6+68+lSN/6DzI9NI=";
   };
 
   buildInputs = [ webtest ];
diff --git a/pkgs/development/python-modules/pyres/default.nix b/pkgs/development/python-modules/pyres/default.nix
index bb15a4d927ab2..a5b618d56902b 100644
--- a/pkgs/development/python-modules/pyres/default.nix
+++ b/pkgs/development/python-modules/pyres/default.nix
@@ -1,26 +1,10 @@
 { lib, stdenv, fetchPypi, buildPythonPackage, fetchFromGitHub, simplejson, redis, setproctitle, nose, pkgs }:
 
-let
-
-  # the requirements of `pyres` support Redis 3.x (due to a missing upper-bound),
-  # but it doesn't support Redis 3.x.
-  redis' = redis.overridePythonAttrs (old: rec {
-    pname = "redis";
-    version = "2.10.6";
-    src = fetchPypi {
-      inherit pname version;
-      sha256 = "03vcgklykny0g0wpvqmy8p6azi2s078317wgb2xjv5m2rs9sjb52";
-    };
-  });
-
-in
-
 buildPythonPackage rec {
   pname = "pyres";
   version = "1.5";
 
-  # ps is used in Worker.worker_pids method
-  propagatedBuildInputs = [ simplejson setproctitle redis' pkgs.ps ];
+  propagatedBuildInputs = [ simplejson setproctitle redis pkgs.ps ];
   checkInputs = [ nose pkgs.redis ];
 
   # PyPI tarball doesn't contain tests so let's use GitHub
@@ -44,5 +28,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/binarydud/pyres";
     license = licenses.mit;
     maintainers = with maintainers; [ jluttine ];
+    broken = true; # not compatible with latest redis
   };
 }
diff --git a/pkgs/development/python-modules/pyro-ppl/default.nix b/pkgs/development/python-modules/pyro-ppl/default.nix
index f810cf6f37b69..d4837dd9fb141 100644
--- a/pkgs/development/python-modules/pyro-ppl/default.nix
+++ b/pkgs/development/python-modules/pyro-ppl/default.nix
@@ -2,12 +2,12 @@
 , graphviz, networkx, six, opt-einsum, tqdm, pyro-api }:
 
 buildPythonPackage rec {
-  version = "1.8.0";
+  version = "1.8.1";
   pname = "pyro-ppl";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "68e4ea30f219227dd88e55de2550d3f8c20a20adbdb67ad1e13b50868bb2ac0c";
+    sha256 = "sha256-18BJ6y50haYStN2ZwkwwnMhgx8vGsZczhwNPVDbRyNY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyrogram/default.nix b/pkgs/development/python-modules/pyrogram/default.nix
index 971b8015a4178..c8f7dccc4f0fe 100644
--- a/pkgs/development/python-modules/pyrogram/default.nix
+++ b/pkgs/development/python-modules/pyrogram/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , pythonOlder
-, fetchPypi
+, fetchFromGitHub
 , pyaes
 , pysocks
 , async-lru
@@ -12,14 +12,15 @@
 
 buildPythonPackage rec {
   pname = "pyrogram";
-  version = "1.4.12";
+  version = "2.0.13";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    pname = "Pyrogram";
-    inherit version;
-    hash = "sha256-rNGdWnZuhCU0Kg/CkeNjazKb76h8/VanZdF4yi0KWGU=";
+  src = fetchFromGitHub {
+    owner = "pyrogram";
+    repo = "pyrogram";
+    rev = "v${version}";
+    hash = "sha256-8mnGfW8/2RbU4gFS8e72KAxMGGkb8XrhsyK01wD97rI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyrsistent/default.nix b/pkgs/development/python-modules/pyrsistent/default.nix
index 75cecc7d70916..5a1b66bfa26c5 100644
--- a/pkgs/development/python-modules/pyrsistent/default.nix
+++ b/pkgs/development/python-modules/pyrsistent/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "pyrsistent";
-  version = "0.18.0";
+  version = "0.18.1";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "773c781216f8c2900b42a7b638d5b517bb134ae1acbebe4d1e8f1f41ea60eb4b";
+    sha256 = "sha256-1NYfi5k6clW6cU3zrKUnAPgSUon4T3BM+AkWUXxG65Y=";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/pysaj/default.nix b/pkgs/development/python-modules/pysaj/default.nix
new file mode 100644
index 0000000000000..15f8dd0fccf07
--- /dev/null
+++ b/pkgs/development/python-modules/pysaj/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, lxml
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pysaj";
+  version = "0.0.16";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fredericvl";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-7mN6GPRbXfEUfCrCrCs71SSt4x2Ch2y3a5rfXnuwVA0=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    lxml
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pysaj"
+  ];
+
+  meta = with lib; {
+    description = "Library to communicate with SAJ inverters";
+    homepage = "https://github.com/fredericvl/pysaj";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyscss/default.nix b/pkgs/development/python-modules/pyscss/default.nix
index bbf4ee712c6a1..3b91236a6ccfe 100644
--- a/pkgs/development/python-modules/pyscss/default.nix
+++ b/pkgs/development/python-modules/pyscss/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "pyScss";
-  version = "1.3.7";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     repo = "pyScss";
     owner = "Kronuz";
-    rev = version;
-    sha256 = "0701hziiiw67blafgpmjhzspmrss8mfvif7fw0rs8fikddwwc9g6";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-z0y4z+/JE6rZWHAvps/taDZvutyVhxxs2gMujV5rNu4=";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/pysensibo/default.nix b/pkgs/development/python-modules/pysensibo/default.nix
new file mode 100644
index 0000000000000..a4973efe5049c
--- /dev/null
+++ b/pkgs/development/python-modules/pysensibo/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pysensibo";
+  version = "1.0.12";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "andrey-git";
+    repo = pname;
+    rev = version;
+    hash = "sha256-gXdyVEBcYCUOo8PHzsJLkjtnX1B1iRS/DAxdQDU3HaY=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  # no tests implemented
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pysensibo"
+  ];
+
+  meta = with lib; {
+    description = "Module for interacting with Sensibo";
+    homepage = "https://github.com/andrey-git/pysensibo";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pysigma-backend-insightidr/default.nix b/pkgs/development/python-modules/pysigma-backend-insightidr/default.nix
new file mode 100644
index 0000000000000..46346f466b20d
--- /dev/null
+++ b/pkgs/development/python-modules/pysigma-backend-insightidr/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pysigma
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pysigma-backend-insightidr";
+  version = "0.1.5";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "SigmaHQ";
+    repo = "pySigma-backend-insightidr";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-RjBRFNMIpjW/x5vShXUgi25oOmvRlD2zP6mNQJ7sG8M=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    pysigma
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "sigma.backends.insight_idr"
+    "sigma.pipelines.insight_idr"
+  ];
+
+  meta = with lib; {
+    description = "Library to support the Rapid7 InsightIDR backend for pySigma";
+    homepage = "https://github.com/SigmaHQ/pySigma-backend-insightidr";
+    license = with licenses; [ lgpl21Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pysigma-backend-splunk/default.nix b/pkgs/development/python-modules/pysigma-backend-splunk/default.nix
index 2fc5c6a6ccdae..a8c0b3d6ea67c 100644
--- a/pkgs/development/python-modules/pysigma-backend-splunk/default.nix
+++ b/pkgs/development/python-modules/pysigma-backend-splunk/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma-backend-splunk";
-  version = "0.2.2";
+  version = "0.3.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma-backend-splunk";
     rev = "v${version}";
-    hash = "sha256-NAhAWK1eSSGQAlMGgMHrW/RTpT9LJMqwkhE9/8xWGT8=";
+    hash = "sha256-wcAqXFou20V2ZPOXCsF1Nky008q2xkfuI0RbTsatC6k=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pysigma-pipeline-crowdstrike/default.nix b/pkgs/development/python-modules/pysigma-pipeline-crowdstrike/default.nix
index 2d2aadb9eaec6..5ed92014fc2e9 100644
--- a/pkgs/development/python-modules/pysigma-pipeline-crowdstrike/default.nix
+++ b/pkgs/development/python-modules/pysigma-pipeline-crowdstrike/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma-pipeline-crowdstrike";
-  version = "0.1.4";
+  version = "0.1.5";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma-pipeline-crowdstrike";
     rev = "v${version}";
-    hash = "sha256-Riu2u1IouS1BMtXauXrNMIl06TU11pHdC0jjlOiR71s=";
+    hash = "sha256-TmvEWrkNu8gJ8rPFoRWd+uYob2rmmdasqxH1CYmz4Rk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pysigma-pipeline-sysmon/default.nix b/pkgs/development/python-modules/pysigma-pipeline-sysmon/default.nix
index 7c1e959d74064..26f058c3e197a 100644
--- a/pkgs/development/python-modules/pysigma-pipeline-sysmon/default.nix
+++ b/pkgs/development/python-modules/pysigma-pipeline-sysmon/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma-pipeline-sysmon";
-  version = "0.1.3";
+  version = "0.1.5";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma-pipeline-sysmon";
     rev = "v${version}";
-    hash = "sha256-uJgV7emBqQN792EvfOz85BKoZY8DCCr8aUN7Ai8R9js=";
+    hash = "sha256-Bh0Qh+pY22lm/0vtJC4tFIl1KRF3zFQ8vcH0JEfYGAc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pysigma-pipeline-windows/default.nix b/pkgs/development/python-modules/pysigma-pipeline-windows/default.nix
new file mode 100644
index 0000000000000..ef8595fa873cd
--- /dev/null
+++ b/pkgs/development/python-modules/pysigma-pipeline-windows/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pysigma
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pysigma-pipeline-windows";
+  version = "0.1.0";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "SigmaHQ";
+    repo = "pySigma-pipeline-windows";
+    rev = "v${version}";
+    hash = "sha256-BO6hiPLwEJX0sICqMZfcO4tqljdS+93Z1kG8IWsV9og=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    pysigma
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "sigma.pipelines.windows"
+  ];
+
+  meta = with lib; {
+    description = "Library to support Windows service pipeline for pySigma";
+    homepage = "https://github.com/SigmaHQ/pySigma-pipeline-windows";
+    license = with licenses; [ lgpl21Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pysigma/default.nix b/pkgs/development/python-modules/pysigma/default.nix
index 1c7cd8ee299db..921de2e0c7e8e 100644
--- a/pkgs/development/python-modules/pysigma/default.nix
+++ b/pkgs/development/python-modules/pysigma/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma";
-  version = "0.4.5";
+  version = "0.5.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma";
     rev = "v${version}";
-    hash = "sha256-jZPimSkJ6qTs0kEMVhP9Gnxu0jxA0cmgdn5++CevgIM=";
+    hash = "sha256-HGF8Tu28ksIfaCKAbnJv6sDmoQrDDjteVLxbJN1HH3U=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pysimplegui/default.nix b/pkgs/development/python-modules/pysimplegui/default.nix
index d645a068d291c..31e40fcb12da3 100644
--- a/pkgs/development/python-modules/pysimplegui/default.nix
+++ b/pkgs/development/python-modules/pysimplegui/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pysimplegui";
-  version = "4.57.0";
+  version = "4.59.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PySimpleGUI";
     inherit version;
-    sha256 = "sha256-+Dcrv+esnthI74AFLK47sS2qI4sPvihuQlL54Zo32RM=";
+    sha256 = "sha256-GW6BwKQ36sSJNZXy7mlRW5hB5gjTUb08V33XqRNFT1E=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyskyqremote/default.nix b/pkgs/development/python-modules/pyskyqremote/default.nix
index e72e38b30cbaa..e7e52991f6e84 100644
--- a/pkgs/development/python-modules/pyskyqremote/default.nix
+++ b/pkgs/development/python-modules/pyskyqremote/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pyskyqremote";
-  version = "0.3.5";
+  version = "0.3.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,8 +17,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "RogerSelwyn";
     repo = "skyq_remote";
-    rev = version;
-    sha256 = "sha256-/BhNoU1dnZj07ZvG126srSb6eW00n8htFuDttq006QE=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-CCbLRb8eoMuYH3it2onfiUzHLW6sirePR/lqATpp4K0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyslurm/default.nix b/pkgs/development/python-modules/pyslurm/default.nix
index f25651dcf98b2..248ccc41033ba 100644
--- a/pkgs/development/python-modules/pyslurm/default.nix
+++ b/pkgs/development/python-modules/pyslurm/default.nix
@@ -1,17 +1,27 @@
-{ lib, fetchFromGitHub, buildPythonPackage, cython, slurm }:
+{ lib
+, pythonOlder
+, fetchFromGitHub
+, buildPythonPackage
+, cython
+, slurm
+}:
 
 buildPythonPackage rec {
   pname = "pyslurm";
-  version = "19-05-0";
+  version = "21.08.4";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     repo = "pyslurm";
     owner = "PySlurm";
-    rev = version;
-    sha256 = "1lfb4q81y96syz5an1lzscfcvmfvlkf4cfl3i5zllw9r3gbarl2r";
+    rev = "v${version}";
+    hash = "sha256-9ZYTBO8g+5B9D8Ll5JjkJYFyh0RQNIjxg958UZoCNmA=";
   };
 
   buildInputs = [ cython slurm ];
+
   setupPyBuildFlags = [ "--slurm-lib=${slurm}/lib" "--slurm-inc=${slurm.dev}/include" ];
 
   # Test cases need /etc/slurm/slurm.conf and require a working slurm installation
@@ -23,6 +33,5 @@ buildPythonPackage rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ bhipple ];
     platforms = platforms.linux;
-    broken = true;  # still needs slurm-19.05, but nixpkgs has slurm-20+ now
   };
 }
diff --git a/pkgs/development/python-modules/pysma/default.nix b/pkgs/development/python-modules/pysma/default.nix
index 81fc1d5709e9a..efad8aaca9483 100644
--- a/pkgs/development/python-modules/pysma/default.nix
+++ b/pkgs/development/python-modules/pysma/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "pysma";
-  version = "0.6.10";
+  version = "0.6.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "990abf6dba3f52b98970fc95aaf484e521faa9ff28c9c19f5a6dca3fddf5840c";
+    sha256 = "sha256-x0sFJAdueSny0XoaOYbYLN8ZRS5B/iEVT62mqd4Voe4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pysmappee/default.nix b/pkgs/development/python-modules/pysmappee/default.nix
index c2322819ae459..ae9d5fa983040 100644
--- a/pkgs/development/python-modules/pysmappee/default.nix
+++ b/pkgs/development/python-modules/pysmappee/default.nix
@@ -1,25 +1,27 @@
 { lib
 , buildPythonPackage
-, fetchFromGitHub
 , cachetools
+, fetchFromGitHub
 , paho-mqtt
+, pythonOlder
 , pytz
 , requests
-, requests_oauthlib
+, requests-oauthlib
 , schedule
-, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pysmappee";
   version = "0.2.29";
+  format = "setuptools";
+
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "smappee";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Ffi55FZsZUKDcS4qV46NpRK3VP6axzrL2BO+hYW7J9E=";
+    hash = "sha256-Ffi55FZsZUKDcS4qV46NpRK3VP6axzrL2BO+hYW7J9E=";
   };
 
   propagatedBuildInputs = [
@@ -27,14 +29,16 @@ buildPythonPackage rec {
     paho-mqtt
     pytz
     requests
-    requests_oauthlib
+    requests-oauthlib
     schedule
   ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [ "pysmappee" ];
+  pythonImportsCheck = [
+    "pysmappee"
+  ];
 
   meta = with lib; {
     description = "Python Library for the Smappee dev API";
diff --git a/pkgs/development/python-modules/pysnmp-pyasn1/default.nix b/pkgs/development/python-modules/pysnmp-pyasn1/default.nix
new file mode 100644
index 0000000000000..3caccf688b8c0
--- /dev/null
+++ b/pkgs/development/python-modules/pysnmp-pyasn1/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, poetry-core
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pysnmp-pyasn1";
+  version = "1.1.2";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "pysnmp";
+    repo = "pyasn1";
+    rev = "v${version}";
+    hash = "sha256-R4reMwVcJBTfTEHUk6sSUugsEPuKIziH1WbjMakP/dA=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "pyasn1"
+  ];
+
+  meta = with lib; {
+    description = "Python ASN.1 encoder and decoder";
+    homepage = "https://github.com/pysnmp/pyasn1";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pysnmp-pysmi/default.nix b/pkgs/development/python-modules/pysnmp-pysmi/default.nix
new file mode 100644
index 0000000000000..0616a7c695e9f
--- /dev/null
+++ b/pkgs/development/python-modules/pysnmp-pysmi/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, ply
+, poetry-core
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pysnmp-pysmi";
+  version = "1.1.8";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "pysnmp";
+    repo = "pysmi";
+    rev = "v${version}";
+    hash = "sha256-nsIEZPD7bfbePZukkudP0ZH/m8Be88QkVDM5PdjNHVk=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    ply
+    requests
+  ];
+
+  # Circular dependency with pysnmplib
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pysmi"
+  ];
+
+  meta = with lib; {
+    description = "SNMP MIB parser";
+    homepage = "https://github.com/pysnmp/pysmi";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pysnmplib/default.nix b/pkgs/development/python-modules/pysnmplib/default.nix
new file mode 100644
index 0000000000000..3c3333074a68c
--- /dev/null
+++ b/pkgs/development/python-modules/pysnmplib/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pycryptodomex
+, pysnmp-pyasn1
+, pysnmp-pysmi
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pysnmplib";
+  version = "5.0.10";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "pysnmp";
+    repo = "pysnmp";
+    rev = "v${version}";
+    hash = "sha256-PsfsOVzeHCVdd1Bi+FYYi68Wzn1MI8dZUbRr/tmT+cA=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    pysnmp-pysmi
+    pysnmp-pyasn1
+    pycryptodomex
+  ];
+
+  # Module has no test, examples are used for testing
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pysnmp"
+  ];
+
+  meta = with lib; {
+    description = "Implementation of v1/v2c/v3 SNMP engine";
+    homepage = "https://github.com/pysnmp/pysnmp";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pysnow/default.nix b/pkgs/development/python-modules/pysnow/default.nix
index 1c9fccb706875..5baa9e9032159 100644
--- a/pkgs/development/python-modules/pysnow/default.nix
+++ b/pkgs/development/python-modules/pysnow/default.nix
@@ -1,56 +1,72 @@
 { lib
+, brotli
 , buildPythonPackage
 , fetchFromGitHub
-, poetry
-, brotli
-, ijson
-, nose
+, fetchpatch
 , httpretty
-, requests_oauthlib
+, ijson
+, poetry-core
 , python_magic
 , pytz
+, pytestCheckHook
+, requests-oauthlib
 }:
 
 buildPythonPackage rec {
   pname = "pysnow";
   version = "0.7.16";
+  format = "pyproject";
+
 
-  # tests not included in pypi tarball
   src = fetchFromGitHub {
     owner = "rbw";
     repo = pname;
     rev = version;
-    sha256 = "0dj90w742klfcjnx7yhp0nzki2mzafqzzr0rk2dp6vxn8h58z8ww";
+    hash = "sha256-nKOPCkS2b3ObmBnk/7FTv4o4vwUX+tOtZI5OQQ4HSTY=";
   };
-  format = "pyproject";
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace 'ijson = "^2.5.1"' 'ijson = "*"' \
-      --replace 'pytz = "^2019.3"' 'pytz = "*"' \
-      --replace 'oauthlib = "^3.1.0"' 'oauthlib = "*"'
-  '';
+  nativeBuildInputs = [
+    poetry-core
+  ];
 
-  nativeBuildInputs = [ poetry ];
   propagatedBuildInputs = [
     brotli
     ijson
     python_magic
     pytz
-    requests_oauthlib
+    requests-oauthlib
+  ];
+
+  checkInputs = [
+    httpretty
+    pytestCheckHook
   ];
 
-  checkInputs = [ nose httpretty ];
-  checkPhase = ''
-    nosetests --cover-package=pysnow --with-coverage --cover-erase
+  patches = [
+    # Switch to peotry-core, https://github.com/rbw/pysnow/pull/183
+    (fetchpatch {
+      name = "switch-to-poetry-core.patch";
+      url = "https://github.com/rbw/pysnow/commit/f214a203432b329df5317f3a25b2c0d9b55a9029.patch";
+      sha256 = "sha256-ViRR+9WStlaQwyrLGk/tMOUAcEMY+kB61ZEKGMQJ30o=";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'ijson = "^2.5.1"' 'ijson = "*"' \
+      --replace 'pytz = "^2019.3"' 'pytz = "*"' \
+      --replace 'oauthlib = "^3.1.0"' 'oauthlib = "*"'
   '';
-  pythonImportsCheck = [ "pysnow" ];
+
+  pythonImportsCheck = [
+    "pysnow"
+  ];
 
   meta = with lib; {
     description = "ServiceNow HTTP client library written in Python";
     homepage = "https://github.com/rbw/pysnow";
     license = licenses.mit;
-    maintainers = [ maintainers.almac ];
+    maintainers = with maintainers; [ almac ];
   };
 
 }
diff --git a/pkgs/development/python-modules/pyspark/default.nix b/pkgs/development/python-modules/pyspark/default.nix
index 2e6f41aa23327..6acc5b3bf92f0 100644
--- a/pkgs/development/python-modules/pyspark/default.nix
+++ b/pkgs/development/python-modules/pyspark/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pyspark";
-  version = "3.2.0";
+  version = "3.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bfea06179edbfb4bc76a0f470bd3c38e12f00e1023e3ad0373558d07cff102ab";
+    sha256 = "sha256-C4E1kmLsbprHjDUzROfeAmAn0UDG3vlJ/w2Aq3D4mlQ=";
   };
 
   # pypandoc is broken with pandoc2, so we just lose docs.
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     sed -i "s/'pypandoc'//" setup.py
 
     substituteInPlace setup.py \
-      --replace py4j==0.10.9.2 'py4j>=0.10.9,<0.11'
+      --replace py4j==0.10.9.3 'py4j>=0.10.9,<0.11'
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyspnego/default.nix b/pkgs/development/python-modules/pyspnego/default.nix
index 561ec037c0a2a..563042091bf74 100644
--- a/pkgs/development/python-modules/pyspnego/default.nix
+++ b/pkgs/development/python-modules/pyspnego/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "pyspnego";
-  version = "0.3.1";
+  version = "0.5.0";
 
   disabled = pythonOlder "3.7";
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "jborean93";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-f7CR7wMxHNNpxizV7MFCtWci3SSNvdx+W5i/rgOUSxY=";
+    sha256 = "sha256-CvPvyP7Vi2Ib+ikgUQt8JkVt5fxzapG590TgAehXqHE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytesseract/default.nix b/pkgs/development/python-modules/pytesseract/default.nix
index 4aac6902ce3bb..13cfdaea214e1 100644
--- a/pkgs/development/python-modules/pytesseract/default.nix
+++ b/pkgs/development/python-modules/pytesseract/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage, fetchPypi, lib, pillow, tesseract, substituteAll, packaging }:
+{ buildPythonPackage, fetchPypi, lib, packaging, pillow, tesseract, substituteAll }:
 
 buildPythonPackage rec {
   pname = "pytesseract";
   version = "0.3.9";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
@@ -16,8 +17,14 @@ buildPythonPackage rec {
     })
   ];
 
-  buildInputs = [ tesseract ];
-  propagatedBuildInputs = [ pillow packaging ];
+  buildInputs = [
+    tesseract
+  ];
+
+  propagatedBuildInputs = [
+    packaging
+    pillow
+  ];
 
   # the package doesn't have any tests.
   doCheck = false;
diff --git a/pkgs/development/python-modules/pytest-ansible/default.nix b/pkgs/development/python-modules/pytest-ansible/default.nix
index 8285996170a22..ee8d7caf779ad 100644
--- a/pkgs/development/python-modules/pytest-ansible/default.nix
+++ b/pkgs/development/python-modules/pytest-ansible/default.nix
@@ -40,5 +40,7 @@ buildPythonPackage rec {
     description = "Plugin for py.test to simplify calling ansible modules from tests or fixtures";
     license = licenses.mit;
     maintainers = [ maintainers.costrouc ];
+    # https://github.com/ansible-community/pytest-ansible/blob/v2.2.4/setup.py#L124
+    broken = lib.versionAtLeast ansible.version "2.10";
   };
 }
diff --git a/pkgs/development/python-modules/pytest-astropy/default.nix b/pkgs/development/python-modules/pytest-astropy/default.nix
index 9a3f46d476c2a..45ad26ab279e9 100644
--- a/pkgs/development/python-modules/pytest-astropy/default.nix
+++ b/pkgs/development/python-modules/pytest-astropy/default.nix
@@ -16,12 +16,12 @@
 
 buildPythonPackage rec {
   pname = "pytest-astropy";
-  version = "0.9.0";
+  version = "0.10.0";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7cdac1b2a5460f37477a329712c3a5d4af4ddf876b064731995663621be4308b";
+    sha256 = "sha256-hePGbO7eTOZo9HOzzzd/yyqjxI4k8oqqN3roYATM4hE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pytest-asyncio/default.nix b/pkgs/development/python-modules/pytest-asyncio/default.nix
index b8d3dffa3b0b9..8c368c50e32c8 100644
--- a/pkgs/development/python-modules/pytest-asyncio/default.nix
+++ b/pkgs/development/python-modules/pytest-asyncio/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pytest-asyncio";
-  version = "0.18.0";
+  version = "0.18.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "pytest-dev";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-PE66ogjfzj6cW3+UD5nZHSt6zg7b+j6Q4ACznE4j0j8=";
+    hash = "sha256-eopKlDKiTvGmqcqw44MKlhvSKswKZd/VDYRpZbuyOqM=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
@@ -29,17 +29,20 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  buildInputs = [
     pytest
   ];
 
   checkInputs = [
     flaky
     hypothesis
-    flaky
     pytestCheckHook
   ];
 
+  disabledTestPaths = [
+    "tests/trio" # pytest-trio causes infinite recursion
+  ];
+
   pythonImportsCheck = [
     "pytest_asyncio"
   ];
@@ -47,6 +50,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Library for testing asyncio code with pytest";
     homepage = "https://github.com/pytest-dev/pytest-asyncio";
+    changelog = "https://github.com/pytest-dev/pytest-asyncio/blob/${src.rev}/CHANGELOG.rst";
     license = licenses.asl20;
     maintainers = with maintainers; [ dotlambda ];
   };
diff --git a/pkgs/development/python-modules/pytest-check/default.nix b/pkgs/development/python-modules/pytest-check/default.nix
index 3498b9f8ab945..c690e01778b66 100644
--- a/pkgs/development/python-modules/pytest-check/default.nix
+++ b/pkgs/development/python-modules/pytest-check/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "pytest-check";
-  version = "1.0.4";
+  version = "1.0.5";
   format = "flit";
 
   src = fetchPypi {
     pname = "pytest_check";
     inherit version;
-    sha256 = "c93eee5a98bcd28634a4ec657ab62c46d25fa384300811e5a925d9c4d98b9540";
+    sha256 = "sha256-ucjbax3uPB5mFivQebgcCDKWy3Ex6YQVGcKKQIGKSHU=";
   };
 
   buildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/pytest-cid/default.nix b/pkgs/development/python-modules/pytest-cid/default.nix
index c1c918c4d60c2..767d300f7dd94 100644
--- a/pkgs/development/python-modules/pytest-cid/default.nix
+++ b/pkgs/development/python-modules/pytest-cid/default.nix
@@ -20,6 +20,11 @@ buildPythonPackage rec {
     sha256 = "sha256-H2RtMGYWukowTTfqZSx+hikxzkqw1v5bA4AfZfiVl8U=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace "pytest >= 5.0, < 7.0" "pytest >= 5.0"
+  '';
+
   propagatedBuildInputs = [
     py-cid
   ];
diff --git a/pkgs/development/python-modules/pytest-describe/default.nix b/pkgs/development/python-modules/pytest-describe/default.nix
new file mode 100644
index 0000000000000..7f5fbf3615975
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-describe/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+
+# build
+, pytest
+
+# tests
+, pytestCheckHook
+}:
+
+let
+  pname = "pytest-describe";
+  version = "2.0.1";
+in
+buildPythonPackage {
+  inherit pname version;
+  format = "setuptools";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-5cuqMRafAGA0itXKAZECfl8fQfPyf97vIINl4JxV65o=";
+  };
+
+  buildInputs = [
+    pytest
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Describe-style plugin for the pytest framework";
+    homepage = "https://github.com/pytest-dev/pytest-describe";
+    changelog = "https://github.com/pytest-dev/pytest-describe/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-httpbin/default.nix b/pkgs/development/python-modules/pytest-httpbin/default.nix
index 0069eb6f179ec..7dc70c49280f6 100644
--- a/pkgs/development/python-modules/pytest-httpbin/default.nix
+++ b/pkgs/development/python-modules/pytest-httpbin/default.nix
@@ -28,6 +28,12 @@ buildPythonPackage rec {
     six
   ];
 
+  preCheck = ''
+    # Remove assertion that doesn't hold for Flask 2.1.0
+    substituteInPlace tests/test_server.py \
+      --replace "assert response.headers['Location'].startswith('https://')" ""
+  '';
+
   checkInputs = [
     pytestCheckHook
     requests
diff --git a/pkgs/development/python-modules/pytest-httpx/default.nix b/pkgs/development/python-modules/pytest-httpx/default.nix
index 9536325ade513..569ac8606f6a1 100644
--- a/pkgs/development/python-modules/pytest-httpx/default.nix
+++ b/pkgs/development/python-modules/pytest-httpx/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pytest-httpx";
-  version = "0.17.3";
+  version = "0.20.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "Colin-b";
     repo = "pytest_httpx";
     rev = "v${version}";
-    sha256 = "sha256-cJRzjNIN9Fc8vcjmndW+akjxDSp+wFahY2MEslgXIwM=";
+    sha256 = "sha256-9LDbVZgTmfyYAWylUy6Q4KH2gKpAa/o4IhqQV31BVgY=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pytest-isort/default.nix b/pkgs/development/python-modules/pytest-isort/default.nix
index e628e6a158c51..234742f2e6d77 100644
--- a/pkgs/development/python-modules/pytest-isort/default.nix
+++ b/pkgs/development/python-modules/pytest-isort/default.nix
@@ -1,26 +1,64 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, mock, pytest, isort }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, importlib-metadata
+, isort
+, poetry-core
+, pytest
+, pytestCheckHook
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "pytest-isort";
-  version = "2.0.0";
+  version = "3.0.0";
+  format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "821a8c5c9c4f3a3c52cfa9c541fbe89ac9e28728125125af53724c4c3f129117";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "stephrdev";
+    repo = pname;
+    rev = version;
+    hash = "sha256-gbEO3HBDeZ+nUACzpeV6iVuCdNHS5956wFzIYkbam+M=";
   };
 
-  propagatedBuildInputs = [ isort ];
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  buildInputs = [
+    pytest
+  ];
+
+  propagatedBuildInputs = [
+    isort
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  checkInputs = [ pytest ]
-    ++ lib.optionals isPy27 [ mock ];
+  patches = [
+    # Can be removed with the next release, https://github.com/stephrdev/pytest-isort/pull/44
+    (fetchpatch {
+      name = "switch-to-poetry-core.patch";
+      url = "https://github.com/stephrdev/pytest-isort/commit/f17ed2d294ae90e415d051e1c720982e3dd01bff.patch";
+      sha256 = "sha256-PiOs0c61BNx/tZN11DYblOd7tNzGthNnlkmYMTI9v18=";
+    })
+  ];
 
-  checkPhase = ''
-    py.test -vs --cache-clear
-  '';
+  pythonImportsCheck = [
+    "pytest_isort"
+  ];
 
   meta = with lib; {
     description = "Pytest plugin to perform isort checks (import ordering)";
     homepage = "https://github.com/moccu/pytest-isort/";
     license = licenses.bsd3;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pytest-metadata/default.nix b/pkgs/development/python-modules/pytest-metadata/default.nix
index 9f04cbe407d3b..057eb06ab3e06 100644
--- a/pkgs/development/python-modules/pytest-metadata/default.nix
+++ b/pkgs/development/python-modules/pytest-metadata/default.nix
@@ -1,13 +1,20 @@
-{ lib, buildPythonPackage, fetchPypi
-, pytest, setuptools-scm }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytest
+, pythonOlder
+, setuptools-scm
+}:
 
 buildPythonPackage rec {
   pname = "pytest-metadata";
-  version = "1.11.0";
+  version = "2.0.1";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "71b506d49d34e539cc3cfdb7ce2c5f072bea5c953320002c95968e0238f8ecf1";
+    sha256 = "sha256-XNtq7qi6kQkYHPnxScijrhQw/35EUGqPhmr4qYykYwE=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/pytest-mock/default.nix b/pkgs/development/python-modules/pytest-mock/default.nix
index 94db409be9184..837dec7c96d6d 100644
--- a/pkgs/development/python-modules/pytest-mock/default.nix
+++ b/pkgs/development/python-modules/pytest-mock/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, fetchpatch
 , fetchPypi
 , pytest
 , pytest-asyncio
@@ -16,6 +17,14 @@ buildPythonPackage rec {
     hash = "sha256-URK9ksyfGG7pbhqS78hJaepJSTnDrq05xQ9CHEzGlTQ=";
   };
 
+  patches = [
+    (fetchpatch {
+      # pytest7 compatbilitya
+      url = "https://github.com/pytest-dev/pytest-mock/commit/0577f1ad051fb8d0da94ea22dcb02346d74064b2.patch";
+      hash = "sha256-eim4v7U8Mjigr462bXI0pKH/M0ANBzSRc0lT4RpbZ0w=";
+    })
+  ];
+
   nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytest-mpl/default.nix b/pkgs/development/python-modules/pytest-mpl/default.nix
index 747411ad74558..f0215ed7d7b2b 100644
--- a/pkgs/development/python-modules/pytest-mpl/default.nix
+++ b/pkgs/development/python-modules/pytest-mpl/default.nix
@@ -1,7 +1,9 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, setuptools-scm
 , pytest
+, jinja2
 , matplotlib
 , nose
 , pillow
@@ -10,18 +12,25 @@
 
 buildPythonPackage rec {
   pname = "pytest-mpl";
-  version = "0.13";
+  version = "0.15.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "582db6e14315f9b08cbd2df39b136dc344bfe8a27c2f05b995460fb0969ec19e";
+    sha256 = "sha256-p5/UKLVoDYclp2o/MBb2oX1pHzxsQpHjmfwU1kFSKbw=";
   };
 
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
   buildInputs = [
     pytest
   ];
 
+  SETUPTOOLS_SCM_PRETEND_VERSION=version;
+
   propagatedBuildInputs = [
+    jinja2
     matplotlib
     nose
     pillow
@@ -31,12 +40,18 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  # Broken since b6e98f18950c2b5dbdc725c1181df2ad1be19fee
+
   disabledTests = [
+    # Broken since b6e98f18950c2b5dbdc725c1181df2ad1be19fee
     "test_hash_fails"
     "test_hash_missing"
   ];
 
+  disabledTestPaths = [
+    # Following are broken since at least a1548780dbc79d76360580691dc1bb4af4e837f6
+    "tests/subtests/test_subtest.py"
+  ];
+
   preCheck = ''
     export HOME=$(mktemp -d)
     mkdir -p $HOME/.config/matplotlib
diff --git a/pkgs/development/python-modules/pytest-mypy/default.nix b/pkgs/development/python-modules/pytest-mypy/default.nix
index 8c52fa2e69889..bec0ee59d0c5b 100644
--- a/pkgs/development/python-modules/pytest-mypy/default.nix
+++ b/pkgs/development/python-modules/pytest-mypy/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-mypy";
-  version = "0.8.1";
+  version = "0.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1fa55723a4bf1d054fcba1c3bd694215a2a65cc95ab10164f5808afd893f3b11";
+    sha256 = "sha256-n/o79AXBLFxr6ekuIr67arLJG5wy9FsPDJOvRzJpq1w=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/pytest-pep257/default.nix b/pkgs/development/python-modules/pytest-pep257/default.nix
deleted file mode 100644
index 827386786b795..0000000000000
--- a/pkgs/development/python-modules/pytest-pep257/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, pep257 }:
-
-buildPythonPackage rec {
-  pname = "pytest-pep257";
-  version = "0.0.5";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "082v3d5k4331x53za51kl8zxsndsw1pcyf1xdfpb2gjdjrhixb8w";
-  };
-
-  buildInputs = [ pytest ];
-  propagatedBuildInputs = [ pep257 ];
-
-  meta = with lib; {
-    homepage = "https://github.com/anderslime/pytest-pep257";
-    description = "py.test plugin for PEP257";
-    license = licenses.mit;
-  };
-}
diff --git a/pkgs/development/python-modules/pytest-pythonpath/default.nix b/pkgs/development/python-modules/pytest-pythonpath/default.nix
deleted file mode 100644
index 8c3fb48b430e6..0000000000000
--- a/pkgs/development/python-modules/pytest-pythonpath/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ buildPythonPackage, fetchPypi, lib, pytest }:
-
-buildPythonPackage rec {
-  pname = "pytest-pythonpath";
-  version = "0.7.4";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-ZOGVsjqPjAxjH7Fogtmtb6QTftHylh3dFdUgZc1DXbY=";
-  };
-
-  buildInputs = [ pytest ];
-  checkInputs = [ pytest ];
-
-  checkPhase = ''
-    pytest
-  '';
-
-  meta = with lib; {
-    description =
-      "Pytest plugin for adding to the PYTHONPATH from command line or configs";
-    homepage = "https://github.com/bigsassy/pytest-pythonpath";
-    maintainers = with maintainers; [ cript0nauta ];
-    license = licenses.mit;
-  };
-}
diff --git a/pkgs/development/python-modules/pytest-regressions/default.nix b/pkgs/development/python-modules/pytest-regressions/default.nix
index 6866df7b71258..99099d3ac9247 100644
--- a/pkgs/development/python-modules/pytest-regressions/default.nix
+++ b/pkgs/development/python-modules/pytest-regressions/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "pytest-regressions";
-  version = "2.3.0";
+  version = "2.3.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-STWtZzbvhQ0NsSvl7jh0CjmYjmtRA/LTUQAAaze5Tg4=";
+    sha256 = "sha256-s+xM2zTo9idgYnXYuDTGXmDhowc+MmuzcnpCcnPQIh0=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/pytest-runner/default.nix b/pkgs/development/python-modules/pytest-runner/default.nix
index d99f72299dd7d..baca23d774913 100644
--- a/pkgs/development/python-modules/pytest-runner/default.nix
+++ b/pkgs/development/python-modules/pytest-runner/default.nix
@@ -1,20 +1,29 @@
-{ lib, buildPythonPackage, fetchPypi, setuptools-scm, pytest }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools-scm
+, pytest
+}:
 
 buildPythonPackage rec {
   pname = "pytest-runner";
-  version = "5.3.1";
+  version = "6.0.0";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0fce5b8dc68760f353979d99fdd6b3ad46330b6b1837e2077a89ebcf204aac91";
+    sha256 = "sha256-tNhTYu0ptMNIZ43nl99Djw8FCUl924xkcJbAKm2HtoU=";
   };
 
-  nativeBuildInputs = [ setuptools-scm pytest ];
-
   postPatch = ''
     rm pytest.ini
   '';
 
+  nativeBuildInputs = [
+    setuptools-scm
+    pytest
+  ];
+
   checkPhase = ''
     py.test tests
   '';
diff --git a/pkgs/development/python-modules/pytest-shutil/default.nix b/pkgs/development/python-modules/pytest-shutil/default.nix
index e43a837d6aa4c..e3b2277fa99bb 100644
--- a/pkgs/development/python-modules/pytest-shutil/default.nix
+++ b/pkgs/development/python-modules/pytest-shutil/default.nix
@@ -1,6 +1,6 @@
 { lib, isPyPy, buildPythonPackage, fetchPypi
-, pytest, cmdline, pytest-cov, coverage, setuptools-git, mock, pathpy, execnet
-, contextlib2, termcolor }:
+, pytest, cmdline, pytest-cov, coverage, setuptools-git, mock, path, execnet
+, contextlib2, termcolor, six }:
 
 buildPythonPackage rec {
   pname = "pytest-shutil";
@@ -11,9 +11,14 @@ buildPythonPackage rec {
     sha256 = "0q8j0ayzmnvlraml6i977ybdq4xi096djhf30n2m1rvnvrhm45nq";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "path.py" "path"
+  '';
+
   buildInputs = [ pytest ];
   checkInputs = [ cmdline pytest ];
-  propagatedBuildInputs = [ pytest-cov coverage setuptools-git mock pathpy execnet contextlib2 termcolor ];
+  propagatedBuildInputs = [ pytest-cov coverage setuptools-git mock path execnet contextlib2 termcolor six ];
 
   checkPhase = ''
     py.test ${lib.optionalString isPyPy "-k'not (test_run or test_run_integration)'"}
diff --git a/pkgs/development/python-modules/pytest-snapshot/default.nix b/pkgs/development/python-modules/pytest-snapshot/default.nix
index 34833bcc30a87..0d24f8fa202e5 100644
--- a/pkgs/development/python-modules/pytest-snapshot/default.nix
+++ b/pkgs/development/python-modules/pytest-snapshot/default.nix
@@ -5,18 +5,21 @@
 , pytest
 , setuptools-scm
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pytest-snapshot";
-  version = "0.8.1";
+  version = "0.9.0";
   format = "setuptools";
 
+  disabled = pythonOlder "3.5";
+
   src = fetchFromGitHub {
     owner = "joseph-roitman";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-ymB9h3Mc6GSMRsxIh6uuf111qLvIkNAnFsxR6O2SF7s=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-0PZu9wL29iEppLxxbl4D0E4WfOHe61KUUld003cRBRU=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/pytest-socket/default.nix b/pkgs/development/python-modules/pytest-socket/default.nix
index 1376d3e8412f8..bcd4abb4d4100 100644
--- a/pkgs/development/python-modules/pytest-socket/default.nix
+++ b/pkgs/development/python-modules/pytest-socket/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pytest-socket";
-  version = "0.5.0";
+  version = "0.5.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "miketheman";
     repo = pname;
     rev = version;
-    hash = "sha256-HdGkpIHFsoAG2+8UyL9jSb3Dm8bWkYzREdY3i15ls/Q=";
+    hash = "sha256-QKHnuq2pqWMVUhF9nnhJggEK6SSyp6zBEfQX9tGND2E=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pytest-subtests/default.nix b/pkgs/development/python-modules/pytest-subtests/default.nix
index d5e379b524d5f..b1df1ceaad678 100644
--- a/pkgs/development/python-modules/pytest-subtests/default.nix
+++ b/pkgs/development/python-modules/pytest-subtests/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pytest-subtests";
-  version = "0.6.0";
+  version = "0.7.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Pr0wao3PdRM/F0LyiMgvNkJuvPihMtTuiXgtIOhPwTo=";
+    sha256 = "sha256-lcRMd+P77emEi7iMqQs4SBX8uoCQ75qfVWWasWOxaBw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pytest-testmon/default.nix b/pkgs/development/python-modules/pytest-testmon/default.nix
index 1b291778b2ad6..0f8d09e597d23 100644
--- a/pkgs/development/python-modules/pytest-testmon/default.nix
+++ b/pkgs/development/python-modules/pytest-testmon/default.nix
@@ -8,24 +8,19 @@
 
 buildPythonPackage rec {
   pname = "pytest-testmon";
-  version = "1.2.2";
+  version = "1.3.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e69d5aeac4e371986f94e8ad06e56d70633870d026f2306fca44051f02fcb688";
+    sha256 = "sha256-6gWWCtm/GHknhjLyRdVf42koeaSKzk5/V0173DELmj0=";
   };
 
-  propagatedBuildInputs = [ coverage ];
+  propagatedBuildInputs = [ pytest coverage ];
 
-  checkInputs = [ pytest ];
-
-  # avoid tests which try to import unittest_mixins
-  # unittest_mixins doesn't seem to be very active
-  checkPhase = ''
-    cd test
-    pytest test_{core,process_code,pytest_assumptions}.py
-  '';
+  # The project does not include tests since version 1.3.0
+  doCheck = false;
+  pythonImportsCheck = [ "testmon" ];
 
   meta = with lib; {
     homepage = "https://github.com/tarpas/pytest-testmon/";
diff --git a/pkgs/development/python-modules/pytest-timeout/default.nix b/pkgs/development/python-modules/pytest-timeout/default.nix
index f99340e48b3b2..e380068c59d35 100644
--- a/pkgs/development/python-modules/pytest-timeout/default.nix
+++ b/pkgs/development/python-modules/pytest-timeout/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "pytest-timeout";
-  version = "2.0.2";
+  version = "2.1.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e6f98b54dafde8d70e4088467ff621260b641eb64895c4195b6e5c8f45638112";
+    sha256 = "sha256-wHygdATGEvirviIpSyPDaOLlEEtSHBeQGVVh834aw9k=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pytest-xdist/default.nix b/pkgs/development/python-modules/pytest-xdist/default.nix
index fa1b0f63fabcd..b17b6f2f763a6 100644
--- a/pkgs/development/python-modules/pytest-xdist/default.nix
+++ b/pkgs/development/python-modules/pytest-xdist/default.nix
@@ -9,6 +9,7 @@
 , pytest
 , pytest-forked
 , psutil
+, pexpect
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,15 @@ buildPythonPackage rec {
   buildInputs = [
     pytest
   ];
-  checkInputs = [ pytestCheckHook filelock ];
+  checkInputs = [ pytestCheckHook filelock pexpect ];
   propagatedBuildInputs = [ execnet pytest-forked psutil ];
 
+  pytestFlagsArray = [
+    # pytest can already use xdist at this point
+    "--numprocesses=$NIX_BUILD_CORES"
+    "--forked"
+  ];
+
   # access file system
   disabledTests = [
     "test_distribution_rsyncdirs_example"
@@ -40,6 +47,8 @@ buildPythonPackage rec {
     "test_internal_errors_propagate_to_controller"
   ];
 
+  setupHook = ./setup-hook.sh;
+
   meta = with lib; {
     description = "Pytest xdist plugin for distributed testing and loop-on-failing modes";
     homepage = "https://github.com/pytest-dev/pytest-xdist";
diff --git a/pkgs/development/python-modules/pytest-xdist/setup-hook.sh b/pkgs/development/python-modules/pytest-xdist/setup-hook.sh
new file mode 100644
index 0000000000000..5523a7f360f5f
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-xdist/setup-hook.sh
@@ -0,0 +1,18 @@
+pytestXdistHook() {
+    pytestFlagsArray+=(
+        "--numprocesses=$NIX_BUILD_CORES"
+        "--forked"
+    )
+}
+
+# the flags should be added before pytestCheckHook runs so
+# until we have dependency mechanism in generic builder, we need to use this ugly hack.
+
+if [ -z "${dontUsePytestXdist-}" ] && [ -z "${dontUsePytestCheck-}" ]; then
+    if [[ " ${preDistPhases:-} " =~ " pytestCheckPhase " ]]; then
+        preDistPhases+=" "
+        preDistPhases="${preDistPhases/ pytestCheckPhase / pytestXdistHook pytestCheckPhase }"
+    else
+        preDistPhases+=" pytestXdistHook"
+    fi
+fi
diff --git a/pkgs/development/python-modules/pytest/default.nix b/pkgs/development/python-modules/pytest/default.nix
index 0b1bb2b02030b..8c40c835feb02 100644
--- a/pkgs/development/python-modules/pytest/default.nix
+++ b/pkgs/development/python-modules/pytest/default.nix
@@ -1,56 +1,48 @@
-{ lib, buildPythonPackage, pythonOlder, fetchPypi, isPy3k, isPyPy
-, pythonAtLeast, fetchpatch
-, atomicwrites
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, isPyPy
+, writeText
+
+# build
+, setuptools-scm
+
+# propagates
 , attrs
-, hypothesis
 , iniconfig
-, more-itertools
 , packaging
-, pathlib2
 , pluggy
 , py
+, tomli
+
+# tests
+, hypothesis
 , pygments
-, setuptools
-, setuptools-scm
-, six
-, toml
-, wcwidth
-, writeText
 }:
 
 buildPythonPackage rec {
   pname = "pytest";
-  version = "6.2.5";
-  disabled = !isPy3k;
+  version = "7.1.1";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89";
+    sha256 = "sha256-hBEyyu9rGtF6mv3kbcT2z6WaBflVWq5RUfc73yggymM=";
   };
 
-  patches = lib.optionals (pythonAtLeast "3.10") [
-    (fetchpatch {
-      # Fix test_errors_in_xfail_skip_expressions for Python 3.10.1, remove after 6.2.5
-      url = "https://github.com/pytest-dev/pytest/commit/913439f5e5691f391e2969b3c8f0a49e50dce43a.patch";
-      sha256 = "0hsl3lww6bx5k99cp8gj0fy9rg02kcfbwiiwjx2y8vbhwd5ns41p";
-    })
+  nativeBuildInputs = [
+    setuptools-scm
   ];
 
-  nativeBuildInputs = [ setuptools-scm ];
-
   propagatedBuildInputs = [
-    atomicwrites
     attrs
     iniconfig
-    more-itertools
     packaging
     pluggy
     py
-    setuptools
-    six
-    toml
-    wcwidth
-  ] ++ lib.optionals (pythonOlder "3.6") [ pathlib2 ];
+    tomli
+  ];
 
   checkInputs = [
     hypothesis
@@ -59,17 +51,13 @@ buildPythonPackage rec {
 
   doCheck = !isPyPy; # https://github.com/pytest-dev/pytest/issues/3460
 
-  preCheck = ''
-    # don't test bash builtins
-    rm testing/test_argcomplete.py
-  '';
-
   # Ignored file https://github.com/pytest-dev/pytest/pull/5605#issuecomment-522243929
   # test_missing_required_plugins will emit deprecation warning which is treated as error
   checkPhase = ''
     runHook preCheck
     $out/bin/py.test -x testing/ \
       --ignore=testing/test_junitxml.py \
+      --ignore=testing/test_argcomplete.py \
       -k "not test_collect_pyargs_with_testpaths and not test_missing_required_plugins"
 
     # tests leave behind unreproducible pytest binaries in the output directory, remove:
@@ -95,7 +83,7 @@ buildPythonPackage rec {
     # - files are not needed after tests are finished
     pytestRemoveBytecodePhase () {
         # suffix is defined at:
-        #    https://github.com/pytest-dev/pytest/blob/6.2.5/src/_pytest/assertion/rewrite.py#L51-L53
+        #    https://github.com/pytest-dev/pytest/blob/7.1.1/src/_pytest/assertion/rewrite.py#L51-L53
         find $out -name "*-pytest-*.py[co]" -delete
     }
     preDistPhases+=" pytestRemoveBytecodePhase"
diff --git a/pkgs/development/python-modules/python-barcode/default.nix b/pkgs/development/python-modules/python-barcode/default.nix
new file mode 100644
index 0000000000000..7a586c2caed2a
--- /dev/null
+++ b/pkgs/development/python-modules/python-barcode/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, setuptools-scm
+, imagesSupport ? false
+, pillow
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "python-barcode";
+  version = "0.13.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-+vukqiTp2Wl3e+UhwpT/GPbCs2rWO1/C8hCNly4jslI=";
+  };
+
+  propagatedBuildInputs = [
+    setuptools-scm
+  ] ++ lib.optionals (imagesSupport) [
+    pillow
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "--cov=barcode" "" \
+      --replace "--cov-report=term-missing:skip-covered" "" \
+      --replace "--no-cov-on-fail" ""
+  '';
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "barcode" ];
+
+  meta = with lib; {
+    description = "Create standard barcodes with Python";
+    homepage = "https://github.com/WhyNotHugo/python-barcode";
+    license = licenses.mit;
+    maintainers = with maintainers; [ wolfangaukang ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-binance/default.nix b/pkgs/development/python-modules/python-binance/default.nix
index cd1e09557ecb8..f5cd9b29f520e 100644
--- a/pkgs/development/python-modules/python-binance/default.nix
+++ b/pkgs/development/python-modules/python-binance/default.nix
@@ -14,14 +14,16 @@
 
 buildPythonPackage rec {
   pname = "python-binance";
-  version = "1.0.10";
+  version = "1.0.16";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "sammchardy";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "09pq2blvky1ah4k8yc6zkp2g5nkn3awc52ad3lxvj6m33akfzxiv";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-2v3qeykjQR/CUOC6F0Xomm49Q+wrYJS8vmL3+u6ew0M=";
   };
 
   propagatedBuildInputs = [
@@ -44,7 +46,9 @@ buildPythonPackage rec {
     "tests/test_historical_klines.py"
   ];
 
-  pythonImportsCheck = [ "binance" ];
+  pythonImportsCheck = [
+    "binance"
+  ];
 
   meta = with lib; {
     description = "Binance Exchange API python implementation for automated trading";
diff --git a/pkgs/development/python-modules/python-daemon/default.nix b/pkgs/development/python-modules/python-daemon/default.nix
index 074e5699e3d5a..cc12b14aa153e 100644
--- a/pkgs/development/python-modules/python-daemon/default.nix
+++ b/pkgs/development/python-modules/python-daemon/default.nix
@@ -51,6 +51,11 @@ buildPythonPackage rec {
     })
   ];
 
+  disabledTestPaths = [
+    # requires removed distutils.command
+    "test_version.py"
+  ];
+
   disabledTests = [
     "begin_with_TestCase"
     "changelog_TestCase"
diff --git a/pkgs/development/python-modules/python-dbusmock/default.nix b/pkgs/development/python-modules/python-dbusmock/default.nix
index 60e6f2e745526..378c58f02364f 100644
--- a/pkgs/development/python-modules/python-dbusmock/default.nix
+++ b/pkgs/development/python-modules/python-dbusmock/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonPackage rec {
   pname = "python-dbusmock";
-  version = "0.25.0";
+  version = "0.26.1";
 
   src = fetchFromGitHub {
     owner = "martinpitt";
     repo = pname;
     rev = version;
-    sha256 = "0zg2aib0k6hc1vvlbdcmp003m85dvkv7pndzgkc4vv2y9qpi0jp9";
+    sha256 = "sha256-kavbWMTgKU/rBIo7RMs9NkwReYQyEdeFwMBSzEM9wa0=";
   };
 
   prePatch = ''
diff --git a/pkgs/development/python-modules/python-dotenv/default.nix b/pkgs/development/python-modules/python-dotenv/default.nix
index 774ca6855aee3..d1b5d632b302c 100644
--- a/pkgs/development/python-modules/python-dotenv/default.nix
+++ b/pkgs/development/python-modules/python-dotenv/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "python-dotenv";
-  version = "0.19.2";
+  version = "0.20.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a5de49a31e953b45ff2d2fd434bbc2670e8db5273606c1e737cc6b93eff3655f";
+    sha256 = "sha256-t+OwSllpPELDb5qxzCrMRvpd+MeOF4/DOo1M0FyNSY8=";
   };
 
   propagatedBuildInputs = [ click ];
diff --git a/pkgs/development/python-modules/python-family-hub-local/default.nix b/pkgs/development/python-modules/python-family-hub-local/default.nix
new file mode 100644
index 0000000000000..01d9da8423ddd
--- /dev/null
+++ b/pkgs/development/python-modules/python-family-hub-local/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, aiohttp
+, async-timeout
+, pillow
+, fetchPypi
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "python-family-hub-local";
+  version = "0.0.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    hash = "sha256-bbOBlUJ4g+HOcJihEBAz3lsHR9Gn07z8st14FRFeJbc=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+    pillow
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pyfamilyhublocal"
+  ];
+
+  meta = with lib; {
+    description = "Module to accesse information from Samsung FamilyHub fridges locally";
+    homepage = "https://github.com/Klathmon/python-family-hub-local";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-glanceclient/default.nix b/pkgs/development/python-modules/python-glanceclient/default.nix
index 754bac51ea682..3d290ae5eda5e 100644
--- a/pkgs/development/python-modules/python-glanceclient/default.nix
+++ b/pkgs/development/python-modules/python-glanceclient/default.nix
@@ -19,11 +19,11 @@
 
 buildPythonApplication rec {
   pname = "python-glanceclient";
-  version = "3.5.0";
+  version = "3.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "417b9d814b43e62df4351f26a0d5569b801e9f99f7758bd8c82ef994c3629356";
+    sha256 = "sha256-gi1IYtWJL2pltoKTRy5gsHTRwHlp0GHoBMbh1UP5g9o=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/python-google-nest/default.nix b/pkgs/development/python-modules/python-google-nest/default.nix
index a1e612e1f74e4..3d086fa2684e9 100644
--- a/pkgs/development/python-modules/python-google-nest/default.nix
+++ b/pkgs/development/python-modules/python-google-nest/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
-, requests_oauthlib
+, requests-oauthlib
 }:
 
 buildPythonPackage rec {
@@ -14,11 +14,11 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "y3BOhorVkJ3rFPifNOopLMqk6y1fHX5vxHGiqWvWHhE=";
+    hash = "sha256-y3BOhorVkJ3rFPifNOopLMqk6y1fHX5vxHGiqWvWHhE=";
   };
 
   propagatedBuildInputs = [
-    requests_oauthlib
+    requests-oauthlib
   ];
 
   # Project has no tests
diff --git a/pkgs/development/python-modules/python-heatclient/default.nix b/pkgs/development/python-modules/python-heatclient/default.nix
index 8ba5c7dd21fc8..d78682a8c66cf 100644
--- a/pkgs/development/python-modules/python-heatclient/default.nix
+++ b/pkgs/development/python-modules/python-heatclient/default.nix
@@ -22,11 +22,11 @@
 
 buildPythonApplication rec {
   pname = "python-heatclient";
-  version = "2.5.0";
+  version = "2.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b610748eb3f18f6bd762e0808accdf872308289a77c3b19ed2d8b9f306393a42";
+    sha256 = "sha256-3l7XyxKm18BAM1DhNsCmRwcZR224+8m/jQ1YHrwLHCs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-ironicclient/default.nix b/pkgs/development/python-modules/python-ironicclient/default.nix
index c193cf7cd1ad9..83449a9285d3a 100644
--- a/pkgs/development/python-modules/python-ironicclient/default.nix
+++ b/pkgs/development/python-modules/python-ironicclient/default.nix
@@ -20,11 +20,11 @@
 
 buildPythonApplication rec {
   pname = "python-ironicclient";
-  version = "4.10.0";
+  version = "4.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8f3ad8ae1fc4df524ea05a458ad2567b58144e881807dbbb985e282902d732fd";
+    sha256 = "sha256-zGG/3Cq7mARyuGGvqa4KGWFmx/UN+W2KMuy+RNenzXM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-kasa/default.nix b/pkgs/development/python-modules/python-kasa/default.nix
index 6adfbf5745d27..46ee0ad00fb2e 100644
--- a/pkgs/development/python-modules/python-kasa/default.nix
+++ b/pkgs/development/python-modules/python-kasa/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "python-kasa";
-  version = "0.4.2";
+  version = "0.4.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -21,8 +21,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    rev = version;
-    sha256 = "sha256-5Ohks3yfqAAe+CiLEucibezmibl6TtktDXMHAhecXzA=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-r1PoOxFPA4zYFEpw+BakzDAJ13IMfcZpTJWkRt/q4go=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-logstash/default.nix b/pkgs/development/python-modules/python-logstash/default.nix
index 55d3c60cd448a..7930dcd33e0a5 100644
--- a/pkgs/development/python-modules/python-logstash/default.nix
+++ b/pkgs/development/python-modules/python-logstash/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "python-logstash";
-  version = "0.4.6";
+  version = "0.4.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13763yx0k655y0c8gxv7jj6cqp45zypx2fmnc56jnn9zz1fkx50h";
+    sha256 = "sha256-0E4c4R7MEH5KTzuAf8V9loEelkpVQIGzu7RHMvdO9fk=";
   };
 
   # no tests
diff --git a/pkgs/development/python-modules/python-manilaclient/default.nix b/pkgs/development/python-modules/python-manilaclient/default.nix
index a2da2e4f4a761..09dc46ba9552c 100644
--- a/pkgs/development/python-modules/python-manilaclient/default.nix
+++ b/pkgs/development/python-modules/python-manilaclient/default.nix
@@ -22,11 +22,11 @@
 
 buildPythonApplication rec {
   pname = "python-manilaclient";
-  version = "3.2.0";
+  version = "3.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-6iAed0mtEYHguYq4Rlh4YWT8E5hNqBYPcnG9/8RMspo=";
+    sha256 = "sha256-JFfkbJHmDQFbiWXw0Wp+0xSLyXowIHnsw7+5irZwhXo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-miio/default.nix b/pkgs/development/python-modules/python-miio/default.nix
index c1391995ddaa6..3cbc48c3cd65a 100644
--- a/pkgs/development/python-modules/python-miio/default.nix
+++ b/pkgs/development/python-modules/python-miio/default.nix
@@ -1,24 +1,24 @@
 { lib
+, android-backup
+, appdirs
+, attrs
 , buildPythonPackage
-, pythonOlder
-, fetchPypi
-, poetry-core
 , click
-, cryptography
 , construct
-, zeroconf
-, attrs
-, pytz
-, appdirs
-, tqdm
-, netifaces
-, android-backup
-, importlib-metadata
 , croniter
+, cryptography
 , defusedxml
-, pytestCheckHook
+, fetchPypi
+, importlib-metadata
+, netifaces
+, poetry-core
 , pytest-mock
+, pytestCheckHook
+, pythonOlder
+, pytz
 , pyyaml
+, tqdm
+, zeroconf
 }:
 
 
@@ -57,13 +57,16 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytestCheckHook
     pytest-mock
+    pytestCheckHook
   ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace 'defusedxml = "^0"' 'defusedxml = "*"' \
+      --replace 'defusedxml = "^0"' 'defusedxml = "*"'
+    # Will be fixed with the next release, https://github.com/rytilahti/python-miio/pull/1378
+    substituteInPlace miio/integrations/vacuum/roborock/vacuum_cli.py \
+      --replace "resultcallback" "result_callback"
   '';
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/python-pae/default.nix b/pkgs/development/python-modules/python-pae/default.nix
new file mode 100644
index 0000000000000..067d2a2843e63
--- /dev/null
+++ b/pkgs/development/python-modules/python-pae/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, poetry-core
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "python-pae";
+  version = "0.1.0";
+  format = "pyproject";
+  disabled = pythonOlder "3.7";
+
+  # Tests are on GitHub
+  src = fetchFromGitHub {
+    owner = "MatthiasValvekens";
+    repo = "python-pae";
+    rev = version;
+    sha256 = "sha256-D0X2T0ze79KR6Gno4UWpA/XvlkK6Y/jXUtLbzlOKr3E=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "python_pae" ];
+
+  meta = with lib; {
+    description = "Pre-authentication encoding (PAE) implementation in Python";
+    homepage = "https://github.com/MatthiasValvekens/python-pae";
+    license = licenses.mit;
+    maintainers = with maintainers; [ wolfangaukang ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-registry/default.nix b/pkgs/development/python-modules/python-registry/default.nix
index fbf8df7f322d7..8b24ca08ff8bb 100644
--- a/pkgs/development/python-modules/python-registry/default.nix
+++ b/pkgs/development/python-modules/python-registry/default.nix
@@ -4,6 +4,7 @@
 , fetchFromGitHub
 , pytestCheckHook
 , unicodecsv
+, six
 }:
 
 buildPythonPackage rec {
@@ -24,6 +25,7 @@ buildPythonPackage rec {
 
   checkInputs = [
     pytestCheckHook
+    six
   ];
 
   disabledTestPaths = [
diff --git a/pkgs/development/python-modules/python-slugify/default.nix b/pkgs/development/python-modules/python-slugify/default.nix
index 16c4dc0f23085..2f22a20afb357 100644
--- a/pkgs/development/python-modules/python-slugify/default.nix
+++ b/pkgs/development/python-modules/python-slugify/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "python-slugify";
-  version = "6.1.0";
+  version = "6.1.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-7/GQ5N+sl9L4wYkO5oJwns0jZQdCNhaH24LZXh5eJfU=";
+    hash = "sha256-AAAzl/TjFBTpIs5WezpNoozxQ2pT0zLJrutRx9jEaf0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-smarttub/default.nix b/pkgs/development/python-modules/python-smarttub/default.nix
index b41ddf01a8e9a..6770b589ce769 100644
--- a/pkgs/development/python-modules/python-smarttub/default.nix
+++ b/pkgs/development/python-modules/python-smarttub/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "python-smarttub";
-  version = "0.0.30";
+  version = "0.0.31";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -21,8 +21,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "mdz";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-PzmE0j/sas1Dc/U022dS3krROm292xJlL37+EWPEs+g=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-tyE50HzwnrxXGWJ0+YRxCmSxtqrPnYmJzBH2ZDFJDZ4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-snappy/default.nix b/pkgs/development/python-modules/python-snappy/default.nix
index fe4d6ea7bda7d..397fcaa3dd0d1 100644
--- a/pkgs/development/python-modules/python-snappy/default.nix
+++ b/pkgs/development/python-modules/python-snappy/default.nix
@@ -4,35 +4,33 @@
 , isPyPy
 , snappy
 , cffi
-, nose
+, python
 }:
 
 buildPythonPackage rec {
   pname = "python-snappy";
-  version = "0.6.0";
+  version = "0.6.1";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06l9my361ig4x5ycyrmq33q83zcdib3y2zxfxv7k7dlpyp9ri2hn";
+    sha256 = "sha256-tqEHqwYgasxTWdTFYyvZsi1EhwKnmzFpsMYuD7gIuyo=";
   };
 
   buildInputs = [ snappy ];
 
   propagatedBuildInputs = lib.optional isPyPy cffi;
 
-  checkInputs = [ nose ];
-
   checkPhase = ''
-    rm -r snappy # prevent local snappy from being picked up
-    nosetests test_snappy.py
-  '' + lib.optionalString isPyPy ''
-    nosetests test_snappy_cffi.py
+    runHook preCheck
+    ${python.interpreter} -m unittest discover
+    runHook postCheck
   '';
 
   meta = with lib; {
     description = "Python library for the snappy compression library from Google";
     homepage = "https://github.com/andrix/python-snappy";
     license = licenses.bsd3;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/python-swiftclient/default.nix b/pkgs/development/python-modules/python-swiftclient/default.nix
index cb3b5b850e36b..8c1e38ed45e07 100644
--- a/pkgs/development/python-modules/python-swiftclient/default.nix
+++ b/pkgs/development/python-modules/python-swiftclient/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonApplication rec {
   pname = "python-swiftclient";
-  version = "3.13.0";
+  version = "3.13.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b200dcfbc6842bd4cac29efd0ea9ef34d3b8625957472ba7aa3ae0242437e2cc";
+    sha256 = "sha256-LSbJC2OS9r76f7sW/Np75Eqibiropb7icF0dHIE4M/A=";
   };
 
   propagatedBuildInputs = [ pbr python-keystoneclient ];
diff --git a/pkgs/development/python-modules/python-twitter/default.nix b/pkgs/development/python-modules/python-twitter/default.nix
index f6814a8d0fda7..79d262a8b02a9 100644
--- a/pkgs/development/python-modules/python-twitter/default.nix
+++ b/pkgs/development/python-modules/python-twitter/default.nix
@@ -2,20 +2,23 @@
 , buildPythonPackage
 , fetchFromGitHub
 , fetchpatch
-, pytest-runner
+, filetype
 , future
+, hypothesis
+, pytestCheckHook
+, pythonOlder
 , requests
+, requests-oauthlib
 , responses
-, requests_oauthlib
-, pytest
-, hypothesis
 }:
 
 buildPythonPackage rec {
   pname = "python-twitter";
   version = "3.5";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
-  # No tests in PyPi Tarball
   src = fetchFromGitHub {
     owner = "bear";
     repo = pname;
@@ -31,12 +34,30 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [ pytest-runner ];
-  propagatedBuildInputs = [ future requests requests_oauthlib ];
-  checkInputs = [ pytest responses hypothesis ];
+  propagatedBuildInputs = [
+    filetype
+    future
+    requests
+    requests-oauthlib
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    responses
+    hypothesis
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "'pytest-runner'" ""
+  '';
+
+  pythonImportsCheck = [
+    "twitter"
+  ];
 
   meta = with lib; {
-    description = "A Python wrapper around the Twitter API";
+    description = "Python wrapper around the Twitter API";
     homepage = "https://github.com/bear/python-twitter";
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
diff --git a/pkgs/development/python-modules/python-vagrant/default.nix b/pkgs/development/python-modules/python-vagrant/default.nix
index 92ba757667daa..9984931e3a980 100644
--- a/pkgs/development/python-modules/python-vagrant/default.nix
+++ b/pkgs/development/python-modules/python-vagrant/default.nix
@@ -1,17 +1,22 @@
 { lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
-  version = "0.5.15";
+  version = "1.0.0";
   pname = "python-vagrant";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ikrh6canhcxg5y7pzmkcnnydikppv7s6sm9prfx90nk0ac8m6mg";
+    sha256 = "sha256-qP6TzPL/N+zJXsL0nqdKkabOc6TbShapjdJtOXz9CeU=";
   };
 
   # The tests try to connect to qemu
   doCheck = false;
 
+  pythonImportsCheck = [
+    "vagrant"
+  ];
+
   meta = {
     description = "Python module that provides a thin wrapper around the vagrant command line executable";
     homepage = "https://github.com/todddeluca/python-vagrant";
diff --git a/pkgs/development/python-modules/python3-saml/default.nix b/pkgs/development/python-modules/python3-saml/default.nix
index a21ee97eca5db..dca35089f45fe 100644
--- a/pkgs/development/python-modules/python3-saml/default.nix
+++ b/pkgs/development/python-modules/python3-saml/default.nix
@@ -3,16 +3,21 @@ isodate, lxml, xmlsec, freezegun }:
 
 buildPythonPackage rec {
   pname = "python3-saml";
-  version = "1.12.0";
+  version = "1.14.0";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "onelogin";
     repo = "python3-saml";
     rev = "v${version}";
-    sha256 = "sha256-VPUsjuo4FIes8ti0tkR0kT3J3RdUt1wtl4QEahVsc2c=";
+    sha256 = "sha256-TAfVXh1fSKhNn/lsi7elq4wFyKCxCtCYUTrnH3ytBTw=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "lxml<4.7.1" "lxml<5"
+  '';
+
   propagatedBuildInputs = [
     isodate lxml xmlsec
   ];
diff --git a/pkgs/development/python-modules/pytibber/default.nix b/pkgs/development/python-modules/pytibber/default.nix
index e2c788f1b3ebf..3b2d924695ace 100644
--- a/pkgs/development/python-modules/pytibber/default.nix
+++ b/pkgs/development/python-modules/pytibber/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "pytibber";
-  version = "0.22.1";
+  version = "0.22.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "Danielhiversen";
     repo = "pyTibber";
     rev = version;
-    hash = "sha256-kzKY9ixsAkfee5En0IzYl5izeXq3xY/8bc5Kz/qkE7U=";
+    hash = "sha256-tM8Uu/TpP5a7y+ePFko0bMoZJWG2efYA861Ez8dPeFY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytomlpp/default.nix b/pkgs/development/python-modules/pytomlpp/default.nix
index 271d193ce019f..73c1987fb3c92 100644
--- a/pkgs/development/python-modules/pytomlpp/default.nix
+++ b/pkgs/development/python-modules/pytomlpp/default.nix
@@ -38,6 +38,14 @@ buildPythonPackage rec {
   # pelican requires > 2.7
   doCheck = !pythonOlder "3.6";
 
+  disabledTests = [
+    # incompatible with pytest7
+    # https://github.com/bobfang1992/pytomlpp/issues/66
+    "test_loads_valid_toml_files"
+    "test_round_trip_for_valid_toml_files"
+    "test_decode_encode_binary"
+  ];
+
   preCheck = ''
     cd tests
   '';
diff --git a/pkgs/development/python-modules/pytomorrowio/default.nix b/pkgs/development/python-modules/pytomorrowio/default.nix
new file mode 100644
index 0000000000000..2c695fc7e05a6
--- /dev/null
+++ b/pkgs/development/python-modules/pytomorrowio/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, aiohttp
+, pytest-asyncio
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pytomorrowio";
+  version = "0.2.1";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "aabb41436fb5834b687d73b334d95be07a18d5943d27a1fd06271b749558ba0e";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pytomorrowio" ];
+
+  meta = {
+    description = "Async Python package to access the Tomorrow.io API";
+    homepage = "https://github.com/raman325/pytomorrowio";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytools/default.nix b/pkgs/development/python-modules/pytools/default.nix
index 7dcd86705a35d..2ee74e64b0650 100644
--- a/pkgs/development/python-modules/pytools/default.nix
+++ b/pkgs/development/python-modules/pytools/default.nix
@@ -3,34 +3,36 @@
 , fetchPypi
 , pythonOlder
 , decorator
-, appdirs
-, six
 , numpy
-, pytest
+, platformdirs
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pytools";
-  version = "2021.2.9";
+  version = "2022.1.2";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "db6cf83c9ba0a165d545029e2301621486d1e9ef295684072e5cd75316a13755";
+    sha256 = "sha256-XoJBAYgKJGNUdWNliAplu0FvaoyrZRO2j8u0j7oJD8s=";
   };
 
-  checkInputs = [ pytest ];
-
   propagatedBuildInputs = [
     decorator
-    appdirs
-    six
     numpy
+    platformdirs
+  ];
+
+  checkInputs = [
+    pytestCheckHook
   ];
 
-  checkPhase = ''
-    py.test -k 'not test_persistent_dict'
-  '';
+  pythonImportsCheck = [
+    "pytools"
+    "pytools.batchjob"
+    "pytools.lex"
+  ];
 
   meta = {
     homepage = "https://github.com/inducer/pytools/";
diff --git a/pkgs/development/python-modules/pytorch-lightning/default.nix b/pkgs/development/python-modules/pytorch-lightning/default.nix
index de75aa0ae8fbd..d3c9a96551591 100644
--- a/pkgs/development/python-modules/pytorch-lightning/default.nix
+++ b/pkgs/development/python-modules/pytorch-lightning/default.nix
@@ -6,12 +6,12 @@
 , pytestCheckHook
 , pytorch
 , pyyaml
-, tensorflow-tensorboard
+, tensorboard
 , tqdm }:
 
 buildPythonPackage rec {
   pname = "pytorch-lightning";
-  version = "1.5.8";
+  version = "1.5.10";
 
   disabled = isPy27;
 
@@ -19,14 +19,14 @@ buildPythonPackage rec {
     owner = "PyTorchLightning";
     repo = pname;
     rev = version;
-    sha256 = "161mz66l11z4350q93fmmq3x0jzbp5761lf4fx3yvz17qzp7ygkn";
+    sha256 = "sha256-GP6/VZuRv8dS5wKQW7RbtOSa2vV9Af2Jp+ioEW3bIgc=";
   };
 
   propagatedBuildInputs = [
     future
     pytorch
     pyyaml
-    tensorflow-tensorboard
+    tensorboard
     tqdm
   ];
 
diff --git a/pkgs/development/python-modules/pytorch-metric-learning/default.nix b/pkgs/development/python-modules/pytorch-metric-learning/default.nix
index e9728b3d676c5..64dfca2e94b03 100644
--- a/pkgs/development/python-modules/pytorch-metric-learning/default.nix
+++ b/pkgs/development/python-modules/pytorch-metric-learning/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname   = "pytorch-metric-learning";
-  version = "1.1.0";
+  version = "1.2.0";
 
   disabled = isPy27;
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "KevinMusgrave";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0qvlxgdml22fzrs47yzqpfzak8lfdrzayvapawfz93cq8903h7qp";
+    sha256 = "sha256-M/iH+pIuamOmvxLtKMzWXiuMCnMXzpVFRb/HfYfCKdc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytorch-pfn-extras/default.nix b/pkgs/development/python-modules/pytorch-pfn-extras/default.nix
index 46bd35b9cfb85..c30f3bd5120d8 100644
--- a/pkgs/development/python-modules/pytorch-pfn-extras/default.nix
+++ b/pkgs/development/python-modules/pytorch-pfn-extras/default.nix
@@ -3,25 +3,32 @@
 , lib
 , numpy
 , onnx
+, packaging
 , pytestCheckHook
 , pytorch
+, torchvision
 , typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "pytorch-pfn-extras";
-  version = "0.5.6";
+  version = "0.5.7";
 
   src = fetchFromGitHub {
     owner = "pfnet";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ch4vhz3zjanj5advqsj51yy7idrp8yvydvcg4ymwa3wsfjrx58g";
+    sha256 = "sha256-gB575ZKXZRAy5K5CkBtfG6KG1yQ9WDREIobsy43CEOc=";
   };
 
-  propagatedBuildInputs = [ numpy pytorch typing-extensions ];
+  propagatedBuildInputs = [ numpy packaging pytorch typing-extensions ];
 
-  checkInputs = [ onnx pytestCheckHook ];
+  checkInputs = [ onnx pytestCheckHook torchvision ];
+
+  # ignore all pytest warnings
+  preCheck = ''
+    rm pytest.ini
+  '';
 
   pythonImportsCheck = [ "pytorch_pfn_extras" ];
 
@@ -29,6 +36,15 @@ buildPythonPackage rec {
     # Requires optuna which is currently (2022-02-16) marked as broken.
     "tests/pytorch_pfn_extras_tests/test_config_types.py"
 
+    # requires onnxruntime which was removed because of poor maintainability
+    # See https://github.com/NixOS/nixpkgs/pull/105951 https://github.com/NixOS/nixpkgs/pull/155058
+    "tests/pytorch_pfn_extras_tests/onnx_tests/test_export.py"
+    "tests/pytorch_pfn_extras_tests/onnx_tests/test_torchvision.py"
+    "tests/pytorch_pfn_extras_tests/onnx_tests/utils.py"
+
+    # RuntimeError: No Op registered for Gradient with domain_version of 9
+    "tests/pytorch_pfn_extras_tests/onnx_tests/test_grad.py"
+
     # Requires CUDA access which is not possible in the nix environment.
     "tests/pytorch_pfn_extras_tests/cuda_tests/test_allocator.py"
     "tests/pytorch_pfn_extras_tests/nn_tests/modules_tests/test_lazy_batchnorm.py"
diff --git a/pkgs/development/python-modules/pytorch/bin.nix b/pkgs/development/python-modules/pytorch/bin.nix
index 24533a08e4752..daa82bba580c7 100644
--- a/pkgs/development/python-modules/pytorch/bin.nix
+++ b/pkgs/development/python-modules/pytorch/bin.nix
@@ -76,6 +76,7 @@ in buildPythonPackage {
     # https://www.intel.com/content/www/us/en/developer/articles/license/onemkl-license-faq.html
     license = licenses.bsd3;
     platforms = platforms.linux ++ platforms.darwin;
+    hydraPlatforms = []; # output size 3.2G on 1.11.0
     maintainers = with maintainers; [ junjihashimoto ];
   };
 }
diff --git a/pkgs/development/python-modules/pytorch/breakpad-sigstksz.patch b/pkgs/development/python-modules/pytorch/breakpad-sigstksz.patch
new file mode 100644
index 0000000000000..33a2304cb9b1a
--- /dev/null
+++ b/pkgs/development/python-modules/pytorch/breakpad-sigstksz.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/breakpad/src/client/linux/handler/exception_handler.cc b/third_party/breakpad/src/client/linux/handler/exception_handler.cc
+index ca353c4099..499be0a986 100644
+--- a/third_party/breakpad/src/client/linux/handler/exception_handler.cc
++++ b/third_party/breakpad/src/client/linux/handler/exception_handler.cc
+@@ -138,7 +138,7 @@ void InstallAlternateStackLocked() {
+   // SIGSTKSZ may be too small to prevent the signal handlers from overrunning
+   // the alternative stack. Ensure that the size of the alternative stack is
+   // large enough.
+-  static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ);
++  const unsigned kSigStackSize = std::max<unsigned>(16384, SIGSTKSZ);
+ 
+   // Only set an alternative stack if there isn't already one, or if the current
+   // one is too small.
diff --git a/pkgs/development/python-modules/pytorch/default.nix b/pkgs/development/python-modules/pytorch/default.nix
index c370eaf6a9426..810460a30adea 100644
--- a/pkgs/development/python-modules/pytorch/default.nix
+++ b/pkgs/development/python-modules/pytorch/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, lib, fetchFromGitHub, buildPythonPackage, python,
-  cudaSupport ? false, cudatoolkit, cudnn, nccl, magma,
+{ stdenv, lib, fetchFromGitHub, fetchpatch, buildPythonPackage, python,
+  cudaSupport ? false, cudaPackages, magma,
   mklDnnSupport ? true, useSystemNccl ? true,
   MPISupport ? false, mpi,
   buildDocs ? false,
@@ -12,7 +12,7 @@
   numactl,
 
   # Propagated build inputs
-  dataclasses, numpy, pyyaml, cffi, click, typing-extensions,
+  numpy, pyyaml, cffi, click, typing-extensions,
 
   # Unit tests
   hypothesis, psutil,
@@ -25,10 +25,14 @@
   ninja,
 
   # dependencies for torch.utils.tensorboard
-  pillow, six, future, tensorflow-tensorboard, protobuf,
+  pillow, six, future, tensorboard, protobuf,
 
   isPy3k, pythonOlder }:
 
+let
+  inherit (cudaPackages) cudatoolkit cudnn nccl;
+in
+
 # assert that everything needed for cuda is present and that the correct cuda versions are used
 assert !cudaSupport || (let majorIs = lib.versions.major cudatoolkit.version;
                         in majorIs == "9" || majorIs == "10" || majorIs == "11");
@@ -117,9 +121,10 @@ let
 in buildPythonPackage rec {
   pname = "pytorch";
   # Don't forget to update pytorch-bin to the same version.
-  version = "1.10.2";
+  version = "1.11.0";
+  format = "setuptools";
 
-  disabled = !isPy3k;
+  disabled = pythonOlder "3.7.0";
 
   outputs = [
     "out"   # output standard python package
@@ -132,10 +137,15 @@ in buildPythonPackage rec {
     repo   = "pytorch";
     rev    = "v${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-QcvoJqpZJXPSc9HLCJHetrp/hMESuC5kYl90d7Id0ZU=";
+    sha256 = "sha256-CEu63tdRBAF8CTchO3Qu8gUNObQylX6U08yDTI4/c/0=";
   };
 
-  patches = lib.optionals stdenv.isDarwin [
+  patches = [
+    # Fix for a breakpad incompatibility with glibc>2.33
+    # https://github.com/pytorch/pytorch/issues/70297
+    # https://github.com/google/breakpad/commit/605c51ed96ad44b34c457bbca320e74e194c317e
+    ./breakpad-sigstksz.patch
+  ] ++ lib.optionals stdenv.isDarwin [
     # pthreadpool added support for Grand Central Dispatch in April
     # 2020. However, this relies on functionality (DISPATCH_APPLY_AUTO)
     # that is available starting with macOS 10.13. However, our current
@@ -144,13 +154,6 @@ in buildPythonPackage rec {
     ./pthreadpool-disable-gcd.diff
   ];
 
-  # The dataclasses module is included with Python >= 3.7. This should
-  # be fixed with the next PyTorch release.
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "'dataclasses'" "'dataclasses; python_version < \"3.7\"'"
-  '';
-
   preConfigure = lib.optionalString cudaSupport ''
     export TORCH_CUDA_ARCH_LIST="${lib.strings.concatStringsSep ";" final_cudaArchList}"
     export CC=${cudatoolkit.cc}/bin/gcc CXX=${cudatoolkit.cc}/bin/g++
@@ -208,7 +211,7 @@ in buildPythonPackage rec {
   # https://github.com/pytorch/pytorch/issues/22346
   #
   # Also of interest: pytorch ignores CXXFLAGS uses CFLAGS for both C and C++:
-  # https://github.com/pytorch/pytorch/blob/v1.2.0/setup.py#L17
+  # https://github.com/pytorch/pytorch/blob/v1.11.0/setup.py#L17
   NIX_CFLAGS_COMPILE = lib.optionals (blas.implementation == "mkl") [ "-Wno-error=array-bounds" ];
 
   nativeBuildInputs = [
@@ -230,9 +233,8 @@ in buildPythonPackage rec {
     pyyaml
     typing-extensions
     # the following are required for tensorboard support
-    pillow six future tensorflow-tensorboard protobuf
-  ] ++ lib.optionals MPISupport [ mpi ]
-    ++ lib.optionals (pythonOlder "3.7") [ dataclasses ];
+    pillow six future tensorboard protobuf
+  ] ++ lib.optionals MPISupport [ mpi ];
 
   checkInputs = [ hypothesis ninja psutil ];
 
@@ -302,7 +304,7 @@ in buildPythonPackage rec {
   requiredSystemFeatures = [ "big-parallel" ];
 
   passthru = {
-    inherit cudaSupport;
+    inherit cudaSupport cudaPackages;
     cudaArchList = final_cudaArchList;
     # At least for 1.10.2 `torch.fft` is unavailable unless BLAS provider is MKL. This attribute allows for easy detection of its availability.
     blasProvider = blas.provider;
diff --git a/pkgs/development/python-modules/pytradfri/default.nix b/pkgs/development/python-modules/pytradfri/default.nix
index e1c74b0846132..70f9acd0380fe 100644
--- a/pkgs/development/python-modules/pytradfri/default.nix
+++ b/pkgs/development/python-modules/pytradfri/default.nix
@@ -21,14 +21,17 @@ buildPythonPackage rec {
     hash = "sha256-12ol+2CnoPfkxmDGJJAkoafHGpQuWC4lh0N7lSvx2DE=";
   };
 
-  propagatedBuildInputs = [
-    aiocoap
-    dtlssocket
-  ];
+  passthru.extras-require = {
+    async = [
+      aiocoap
+      dtlssocket
+    ];
+  };
 
   checkInputs = [
     pytestCheckHook
-  ];
+  ]
+  ++ passthru.extras-require.async;
 
   pythonImportsCheck = [
     "pytradfri"
diff --git a/pkgs/development/python-modules/pyttsx3/default.nix b/pkgs/development/python-modules/pyttsx3/default.nix
new file mode 100644
index 0000000000000..fc47623406027
--- /dev/null
+++ b/pkgs/development/python-modules/pyttsx3/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi, espeak-ng }:
+
+buildPythonPackage rec {
+  pname = "pyttsx3";
+  version = "2.90";
+  format = "wheel";
+
+  src = fetchPypi {
+    inherit pname version format;
+    sha256 = "a585b6d8cffc19bd92db1e0ccbd8aa9c6528dd2baa5a47045d6fed542a44aa19";
+    dist = "py3";
+    python = "py3";
+  };
+
+  # This package has no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Offline text-to-speech synthesis library";
+    homepage = "https://github.com/nateshmbhat/pyttsx3";
+    license = licenses.mpl20;
+    maintainers = [ maintainers.ethindp ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytz/default.nix b/pkgs/development/python-modules/pytz/default.nix
index f7f406e487cc7..27b18845804f9 100644
--- a/pkgs/development/python-modules/pytz/default.nix
+++ b/pkgs/development/python-modules/pytz/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytz";
-  version = "2021.3";
+  version = "2022.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326";
+    sha256 = "sha256-HnYOL+aoFjvAs9mhnE+ENCr6Cir/6/qoSwG5eKAuyqc=";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/pyudev/default.nix b/pkgs/development/python-modules/pyudev/default.nix
index 89cd50f085f67..24784afc842dc 100644
--- a/pkgs/development/python-modules/pyudev/default.nix
+++ b/pkgs/development/python-modules/pyudev/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "pyudev";
-  version = "0.22.0";
+  version = "0.23.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0xmj6l08iih2js9skjqpv4w7y0dhxyg91zmrs6v5aa65gbmipfv9";
+    sha256 = "sha256-Mq41hbMgpRvCg+CgQAD9iiVZnttEVB4vUDT2r+5dFcw=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyupgrade/default.nix b/pkgs/development/python-modules/pyupgrade/default.nix
index 09c2c1ca7a69c..e2c48948b9784 100644
--- a/pkgs/development/python-modules/pyupgrade/default.nix
+++ b/pkgs/development/python-modules/pyupgrade/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pyupgrade";
-  version = "2.31.1";
+  version = "2.32.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "asottile";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-l4wF/I3wsA9nowIdLjNPUxCaTPBu5v5oPQ3oNbLh+/o=";
+    sha256 = "sha256-VSGi93R8O0LGKFBkWMclje64suOqq/Gf2vE2OHXLP5Q=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/pyuv/default.nix b/pkgs/development/python-modules/pyuv/default.nix
index 2d276c6dccab9..2f1870dd1c852 100644
--- a/pkgs/development/python-modules/pyuv/default.nix
+++ b/pkgs/development/python-modules/pyuv/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, pythonAtLeast
 , fetchFromGitHub
 , libuv
 }:
@@ -7,6 +8,7 @@
 buildPythonPackage rec {
   pname = "pyuv";
   version = "1.4.0";
+  disabled = pythonAtLeast "3.10"; # https://github.com/saghul/pyuv/issues/273
 
   src = fetchFromGitHub {
     owner = "saghul";
diff --git a/pkgs/development/python-modules/pyvcf/default.nix b/pkgs/development/python-modules/pyvcf/default.nix
index 7c513617754fb..919477298b152 100644
--- a/pkgs/development/python-modules/pyvcf/default.nix
+++ b/pkgs/development/python-modules/pyvcf/default.nix
@@ -28,5 +28,6 @@ buildPythonPackage rec {
       vcf will attempt to parse the content of each record based on the data
       types specified in the meta-information lines
     '';
+    broken = true; # uses the 2to3 feature, that got removed in setuptools 0.58
   };
 }
diff --git a/pkgs/development/python-modules/pyverilog/default.nix b/pkgs/development/python-modules/pyverilog/default.nix
index 8e41d26921fa9..115014a25bbb7 100644
--- a/pkgs/development/python-modules/pyverilog/default.nix
+++ b/pkgs/development/python-modules/pyverilog/default.nix
@@ -5,7 +5,6 @@
 , jinja2
 , ply
 , verilog
-, pytest-pythonpath
 , pytestCheckHook
 }:
 
@@ -32,8 +31,12 @@ buildPythonPackage rec {
     verilog
   ];
 
+  preCheck = ''
+    substituteInPlace pytest.ini \
+      --replace "python_paths" "pythonpath"
+  '';
+
   checkInputs = [
-    pytest-pythonpath
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python-modules/pyvesync/default.nix b/pkgs/development/python-modules/pyvesync/default.nix
index 96669c52634bd..45404c107fb1b 100644
--- a/pkgs/development/python-modules/pyvesync/default.nix
+++ b/pkgs/development/python-modules/pyvesync/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "pyvesync";
-  version = "2.0.0";
+  version = "2.0.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-+054tFirjMF3sGLRpTVCZ3V2KN627b57+fFl6GBMMcU=";
+    sha256 = "sha256-SsSzwuJvDbQ1AzF+q5bjOnFaR6M2UFixtlmk6sgjKOg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyvex/default.nix b/pkgs/development/python-modules/pyvex/default.nix
index e3a810be91602..799271371c7b1 100644
--- a/pkgs/development/python-modules/pyvex/default.nix
+++ b/pkgs/development/python-modules/pyvex/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "pyvex";
-  version = "9.1.12332";
-  format = "setuptools";
+  version = "9.2.1";
+  format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-e1lruHgppQ8mJbTx6xsUDSkLCYQISqM9c1vsjdQU4eI=";
+    hash = "sha256-b6LZJmAyxklvZxvane19dK/kQfbLPjkk29RydiWMZCY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyvicare/default.nix b/pkgs/development/python-modules/pyvicare/default.nix
index bd3daf7bfb0e2..379481953ee9c 100644
--- a/pkgs/development/python-modules/pyvicare/default.nix
+++ b/pkgs/development/python-modules/pyvicare/default.nix
@@ -1,11 +1,11 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, pythonOlder
-, requests_oauthlib
-, simplejson
 , pkce
 , pytestCheckHook
+, pythonOlder
+, requests-oauthlib
+, simplejson
 }:
 
 buildPythonPackage rec {
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
 
   propagatedBuildInputs = [
-    requests_oauthlib
+    requests-oauthlib
     simplejson
     pkce
   ];
diff --git a/pkgs/development/python-modules/pyvips/default.nix b/pkgs/development/python-modules/pyvips/default.nix
index b25d9d3b5ae44..3974767856677 100644
--- a/pkgs/development/python-modules/pyvips/default.nix
+++ b/pkgs/development/python-modules/pyvips/default.nix
@@ -1,23 +1,23 @@
-{ buildPythonPackage, fetchPypi, pytest-runner, pytestCheckHook, glib, vips, cffi
-, pkg-config, pkgconfig, lib }:
+{ buildPythonPackage, fetchFromGitHub, pytestCheckHook, glib, vips, cffi
+, pkgconfig, lib }:
 
 buildPythonPackage rec {
   pname = "pyvips";
   version = "2.1.16";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "654c03014a15f846786807a2ece6f525a8fec883d1c857742c8e37da149a81ed";
+  src = fetchFromGitHub {
+    owner = "libvips";
+    repo = "pyvips";
+    rev = "v${version}";
+    sha256 = "sha256-8CeQbx3f2i0lEU0wxPeUwHlUGtzOztzTOdFNjIDy8s0=";
   };
 
-  nativeBuildInputs = [ pytest-runner pkgconfig pkg-config ];
+  nativeBuildInputs = [ pkgconfig ];
 
   buildInputs = [ glib vips ];
 
   propagatedBuildInputs = [ cffi ];
 
-  # tests are not included in pypi tarball
-  doCheck = false;
   checkInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "pyvips" ];
diff --git a/pkgs/development/python-modules/pyvis/default.nix b/pkgs/development/python-modules/pyvis/default.nix
index 498dba97b3254..f13e1bbac798f 100644
--- a/pkgs/development/python-modules/pyvis/default.nix
+++ b/pkgs/development/python-modules/pyvis/default.nix
@@ -6,25 +6,25 @@
 , jinja2
 , ipython
 , jsonpickle
-, numpy }:
+, numpy
+}:
 
 buildPythonPackage rec {
   pname = "pyvis";
-  version = "unstable-2021-04-29";
+  version = "0.2.1";
 
-  # We use unstable, as test are failing for 0.1.9
   src = fetchFromGitHub {
     owner = "WestHealth";
     repo = pname;
-    rev = "4c521302abf9725dcbe7f59962baf85360b2718d";
-    sha256 = "sha256-DYbHQpxtSfiLbzmBGclym/ChM0WLBzSEC/3phDTtGY8=";
+    rev = "v${version}";
+    sha256 = "sha256-cER5XYxnURzRLtrisWBu2kxtOiRqgaRTJYyaCMh2qqE=";
   };
 
   patches = [
-    # Remove when https://github.com/WestHealth/pyvis/pull/101 is merged.
+    # Fix test: https://github.com/WestHealth/pyvis/issues/138
     (fetchpatch {
-      url = "https://github.com/WestHealth/pyvis/commit/158a34de45f970b17ffd746c6e705b89128e2445.patch";
-      sha256 = "sha256-zK72nrnn5YLGNW6PKYUyHry5ORCdt1T1oH6n1X64DKg=";
+      url = "https://github.com/WestHealth/pyvis/commit/eaa24b882401e2e74353efa78bf4e71a880cfc47.patch";
+      sha256 = "sha256-hyDypavoCM36SiuQda1U4FLUPdAjTIMtaeZ0KqfHKzI=";
     })
   ];
 
diff --git a/pkgs/development/python-modules/pyvo/default.nix b/pkgs/development/python-modules/pyvo/default.nix
new file mode 100644
index 0000000000000..715cf0196aa41
--- /dev/null
+++ b/pkgs/development/python-modules/pyvo/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, astropy
+, pillow
+, pythonOlder
+, pytestCheckHook
+, pytest-astropy
+, requests
+, requests-mock
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "pyvo";
+  version = "1.3";
+
+  disabled = pythonOlder "3.8"; # according to setup.cfg
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "846a54a05a8ddb47a8c2cc3077434779b0e4ccc1b74a7a5408593cb673307d67";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    astropy
+    requests
+  ];
+
+  checkInputs = [
+    pillow
+    pytestCheckHook
+    pytest-astropy
+    requests-mock
+  ];
+
+  disabledTestPaths = [
+    # touches network
+    "pyvo/dal/tests/test_datalink.py"
+  ];
+
+  pythonImportsCheck = [ "pyvo" ];
+
+  meta = with lib; {
+    description = "Astropy affiliated package for accessing Virtual Observatory data and services";
+    homepage = "github.com/astropy/pyvo";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ smaret ];
+  };
+}
diff --git a/pkgs/development/python-modules/pywavelets/default.nix b/pkgs/development/python-modules/pywavelets/default.nix
index cbd7681c63f92..a85a59ff4ab65 100644
--- a/pkgs/development/python-modules/pywavelets/default.nix
+++ b/pkgs/development/python-modules/pywavelets/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "PyWavelets";
-  version = "1.2.0";
+  version = "1.3.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6cbd69b047bb4e00873097472133425f5f08a4e6bc8b3f0ae709274d4d5e9a8d";
+    sha256 = "sha256-y6qdYgUtna+Np2X8jnwww46iuOnhwYhBkT37SuxnHuU=";
   };
 
   checkInputs = [ nose pytest ];
diff --git a/pkgs/development/python-modules/pywayland/default.nix b/pkgs/development/python-modules/pywayland/default.nix
index 5be7042339093..d4fd8d28ae741 100644
--- a/pkgs/development/python-modules/pywayland/default.nix
+++ b/pkgs/development/python-modules/pywayland/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "pywayland";
-  version = "0.4.11";
+  version = "0.4.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "coUNrPcHLBDamgKiZ08ysg2maQ2wLRSijfNRblKMIZk=";
+    sha256 = "sha256-IAwBzV+wvQYgoJK1+GjAHm2aXWE2iVaMV2cduMtCkx8=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/python-modules/pywbem/default.nix b/pkgs/development/python-modules/pywbem/default.nix
index db7bd82b652b6..0547f3edd9386 100644
--- a/pkgs/development/python-modules/pywbem/default.nix
+++ b/pkgs/development/python-modules/pywbem/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pywbem";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "52f668f7ee1f03bdd80485692b648588b3e1909e2dc0754dceca497f5e9cf059";
+    sha256 = "sha256-rYu75Kt+eVciwPJ/JlbJL8Zzp+BqFM0VGlDwMGRU0X4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pywebview/default.nix b/pkgs/development/python-modules/pywebview/default.nix
index 67f11ed291f5b..eaf4ae64a6538 100644
--- a/pkgs/development/python-modules/pywebview/default.nix
+++ b/pkgs/development/python-modules/pywebview/default.nix
@@ -2,24 +2,29 @@
 , buildPythonPackage
 , fetchFromGitHub
 , importlib-resources
+, proxy_tools
+, pygobject3
 , pyqtwebengine
 , pytest
 , pythonOlder
 , qt5
+, qtpy
+, six
 , xvfb-run
-, proxy_tools
 }:
 
 buildPythonPackage rec {
   pname = "pywebview";
-  version = "3.5";
+  version = "3.6.3";
+  format = "setuptools";
+
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "r0x0r";
     repo = "pywebview";
     rev = version;
-    sha256 = "sha256-+At/ToEylSPcLh/u2NHVTXQpMnw+2/afsevg5YAX/4c=";
+    hash = "sha256-qOLK4MHdpmcCazCNfojncD8XH7OJB2H/pIW5XAJAlDo=";
   };
 
   nativeBuildInputs = [
@@ -29,10 +34,15 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     pyqtwebengine
     proxy_tools
-  ] ++ lib.optionals (pythonOlder "3.7") [ importlib-resources ];
+    six
+  ] ++ lib.optionals (pythonOlder "3.7") [
+    importlib-resources
+  ];
 
   checkInputs = [
+    pygobject3
     pytest
+    qtpy
     xvfb-run
   ];
 
@@ -54,11 +64,13 @@ buildPythonPackage rec {
     popd
   '';
 
-  pythonImportsCheck = [ "webview" ];
+  pythonImportsCheck = [
+    "webview"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/r0x0r/pywebview";
     description = "Lightweight cross-platform wrapper around a webview";
+    homepage = "https://github.com/r0x0r/pywebview";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jojosch ];
   };
diff --git a/pkgs/development/python-modules/pywlroots/default.nix b/pkgs/development/python-modules/pywlroots/default.nix
index b4f23f71d7488..fdae8fdc10441 100644
--- a/pkgs/development/python-modules/pywlroots/default.nix
+++ b/pkgs/development/python-modules/pywlroots/default.nix
@@ -7,6 +7,7 @@
 , libxkbcommon
 , libinput
 , pixman
+, pythonOlder
 , udev
 , wlroots
 , wayland
@@ -18,11 +19,14 @@
 
 buildPythonPackage rec {
   pname = "pywlroots";
-  version = "0.15.11";
+  version = "0.15.13";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-L+59uf3/wqWnmWpqm8RAyIEarbj2Sdwf1Pbweh/z9C8=";
+    sha256 = "teZ8udox+4NefgA73gD5d6hPur/zjCapoMYPW36ax0s=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/python-modules/qiskit-aer/default.nix b/pkgs/development/python-modules/qiskit-aer/default.nix
index d7b195f1debf6..7fb67c5449bdc 100644
--- a/pkgs/development/python-modules/qiskit-aer/default.nix
+++ b/pkgs/development/python-modules/qiskit-aer/default.nix
@@ -30,7 +30,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-aer";
-  version = "0.10.3";
+  version = "0.10.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit-aer";
     rev = version;
-    sha256 = "sha256-COvJCj18qRNQJUXKrtlYJQGLjna44IgtNZeNVJJaIHg=";
+    sha256 = "sha256-mf+Pgw/daFkt1bvqSeYzlO/Sd2F2MtwZcLr+h1u+eb0=";
   };
 
   postPatch = ''
@@ -55,15 +55,14 @@ buildPythonPackage rec {
     cmake
     ninja
     scikit-build
-    pybind11
   ];
 
   buildInputs = [
     blas
     catch2
+    nlohmann_json
     fmt
     muparserx
-    nlohmann_json
     spdlog
   ];
 
@@ -71,6 +70,7 @@ buildPythonPackage rec {
     cvxpy
     cython  # generates some cython files at runtime that need to be cython-ized
     numpy
+    pybind11
   ];
 
   preBuild = ''
@@ -80,19 +80,18 @@ buildPythonPackage rec {
   dontUseCmakeConfigure = true;
 
   # *** Testing ***
-
   pythonImportsCheck = [
     "qiskit.providers.aer"
     "qiskit.providers.aer.backends.qasm_simulator"
     "qiskit.providers.aer.backends.controller_wrappers" # Checks C++ files built correctly. Only exists if built & moved to output
   ];
-  # Slow tests
   disabledTests = [
-    "test_snapshot" # TODO: these ~30 tests fail on setup due to pytest fixture issues?
-    "test_initialize_2" # TODO: simulations appear incorrect, off by >10%.
-    # These tests fail on cvxpy >= 1.1.15
+    # these tests don't work with cvxpy >= 1.1.15
     "test_clifford"
     "test_approx_random"
+    "test_snapshot" # TODO: these ~30 tests fail on setup due to pytest fixture issues?
+    "test_initialize_2" # TODO: simulations appear incorrect, off by >10%.
+    "test_pauli_error_2q_gate_from_string_1qonly"
 
     # these fail for some builds. Haven't been able to reproduce error locally.
     "test_kraus_gate_noise"
diff --git a/pkgs/development/python-modules/qiskit-finance/default.nix b/pkgs/development/python-modules/qiskit-finance/default.nix
index 1fc98361ad090..2c544d5a92ed5 100644
--- a/pkgs/development/python-modules/qiskit-finance/default.nix
+++ b/pkgs/development/python-modules/qiskit-finance/default.nix
@@ -33,6 +33,10 @@ buildPythonPackage rec {
     sha256 = "sha256-wnto3IqrJFAqIv6QAXe3BB9fvXQXe2fw/iUZe3+198M=";
   };
 
+  postPatch = ''
+    substituteInPlace requirements.txt --replace "pandas<1.4.0" "pandas"
+  '';
+
   propagatedBuildInputs = [
     fastdtw
     numpy
diff --git a/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix b/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
index 0c8f74cf66dd7..ca2f9b22d835a 100644
--- a/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
+++ b/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
@@ -40,15 +40,15 @@ let
 in
 buildPythonPackage rec {
   pname = "qiskit-ibmq-provider";
-  version = "0.18.3";
+  version = "0.19.1";
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "Qiskit";
     repo = pname;
-    rev = version;
-    sha256 = "1n1w1lnq2xw94hhhn6kdvw8dqlxk5fxwpm8ng31gxbp1s3qgni17";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-VdGdaOxCwD2Qa0JCCDVZJtcjhmTssS/KgpcjoaPXYB8=";
   };
 
   propagatedBuildInputs = [
@@ -58,6 +58,7 @@ buildPythonPackage rec {
     requests
     requests_ntlm
     websocket-client
+    websockets
   ] ++ lib.optionals withVisualization visualizationPackages;
 
   postPatch = ''
@@ -72,12 +73,12 @@ buildPythonPackage rec {
     pproxy
     qiskit-aer
     vcrpy
-    websockets
   ] ++ lib.optionals (!withVisualization) visualizationPackages;
 
   pythonImportsCheck = [ "qiskit.providers.ibmq" ];
-  # These disabled tests require internet connection, aren't skipped elsewhere
   disabledTests = [
+    "test_coder_operators"  # fails for some reason on nixos-21.05+
+    # These disabled tests require internet connection, aren't skipped elsewhere
     "test_old_api_url"
     "test_non_auth_url"
     "test_non_auth_url_with_hub"
diff --git a/pkgs/development/python-modules/qiskit-machine-learning/default.nix b/pkgs/development/python-modules/qiskit-machine-learning/default.nix
index 511bc0b2a0bed..ad00a16a880ea 100644
--- a/pkgs/development/python-modules/qiskit-machine-learning/default.nix
+++ b/pkgs/development/python-modules/qiskit-machine-learning/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-machine-learning";
-  version = "0.3.0";
+  version = "0.3.1";
 
   disabled = pythonOlder "3.6";
 
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "qiskit";
     repo = pname;
     rev = version;
-    sha256 = "0jycs18apnwrksarpwpmp7scndyx91vnv6fchil4jyx4kym8mnf9";
+    sha256 = "sha256-8tnd6+tqofKuK/sBdqmClBtywHbu3VvwLjO9k4YoChA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/qiskit-nature/default.nix b/pkgs/development/python-modules/qiskit-nature/default.nix
index 2693daa6ead01..7b652c5072230 100644
--- a/pkgs/development/python-modules/qiskit-nature/default.nix
+++ b/pkgs/development/python-modules/qiskit-nature/default.nix
@@ -21,15 +21,15 @@
 
 buildPythonPackage rec {
   pname = "qiskit-nature";
-  version = "0.3.1";
+  version = "0.3.2";
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
-    owner = "qiskit";
+    owner = "Qiskit";
     repo = pname;
     rev = version;
-    sha256 = "sha256-EkYppEOQGmRIxKC4ArXZb0b+p1gPGnP6AU8LbEbOpPo=";
+    sha256 = "sha256-BXUVRZ8X3OJiRexNXZsnvp+Yh8ARNYohYH49/IYFYM0=";
   };
 
   propagatedBuildInputs = [
@@ -56,7 +56,7 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    "test_two_qubit_reduction"  # unsure of failure reason. Might be related to recent cvxpy update?
+    "test_two_qubit_reduction"  # failure cause unclear
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/qiskit-terra/default.nix b/pkgs/development/python-modules/qiskit-terra/default.nix
index 1a5aa516c52d0..ca71de5dbbd6d 100644
--- a/pkgs/development/python-modules/qiskit-terra/default.nix
+++ b/pkgs/development/python-modules/qiskit-terra/default.nix
@@ -2,8 +2,8 @@
 , pythonOlder
 , buildPythonPackage
 , fetchFromGitHub
+, rustPlatform
   # Python requirements
-, cython
 , dill
 , numpy
 , networkx
@@ -14,6 +14,7 @@
 , retworkx
 , scipy
 , scikit-quant ? null
+, setuptools-rust
 , stevedore
 , symengine
 , sympy
@@ -54,18 +55,24 @@ in
 
 buildPythonPackage rec {
   pname = "qiskit-terra";
-  version = "0.19.2";
+  version = "0.20.1";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "qiskit";
     repo = pname;
     rev = version;
-    sha256 = "sha256-P2QTdt1H9I5T/ONNoo7XEVnoHweOdq3p2NH3l3/yAn4=";
+    sha256 = "sha256-spKLPUlUXBmnIo/rnBPUFf72Vxd53xFhh409KzytpkI=";
   };
 
-  nativeBuildInputs = [ cython ];
+  nativeBuildInputs = [ setuptools-rust ] ++ (with rustPlatform; [ rust.rustc rust.cargo cargoSetupHook ]);
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    sha256 = "sha256-KNx7c5Jc1AWIpldMQ1AcWYuMb4W+yLY/cgB87hzPuVY=";
+  };
 
   propagatedBuildInputs = [
     dill
@@ -96,7 +103,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [
     "qiskit"
-    "qiskit.transpiler.passes.routing.cython.stochastic_swap.swap_trial"
+    "qiskit.pulse"
   ];
 
   disabledTestPaths = [
@@ -109,7 +116,10 @@ buildPythonPackage rec {
   ];
   pytestFlagsArray = [ "--durations=10" ];
   disabledTests = [
-    "TestUnitarySynthesisPlugin" # uses unittest mocks for transpiler.run(), seems incompatible somehow w/ pytest infrastructure
+    "TestUnitarySynthesisPlugin" # use unittest mocks for transpiler.run(), seems incompatible somehow w/ pytest infrastructure
+    # matplotlib tests seems to fail non-deterministically
+    "TestMatplotlibDrawer"
+    "TestGraphMatplotlibDrawer"
     "test_copy" # assertNotIn doesn't seem to work as expected w/ pytest vs unittest
 
     # Flaky tests
@@ -153,18 +163,14 @@ buildPythonPackage rec {
     "test_two_qubit_weyl_decomposition_ab0"
     "test_sample_counts_memory_superposition"
     "test_piecewise_polynomial_function"
-    "test_vqe_qasm"
     "test_piecewise_chebyshev_mutability"
     "test_bit_conditional_no_cregbundle"
     "test_gradient_wrapper2"
     "test_two_qubit_weyl_decomposition_abmb"
     "test_two_qubit_weyl_decomposition_abb"
-    "test_two_qubit_weyl_decomposition_aac"
-    "test_aqc"
-    "test_gradient"
-    "test_piecewise_polynomial_rotations_mutability"
-    "test_confidence_intervals_1"
-    "test_trotter_from_bound"
+    "test_vqe_qasm"
+    "test_dag_from_networkx"
+    "test_defaults_to_dict_46"
   ];
 
   # Moves tests to $PACKAGEDIR/test. They can't be run from /build because of finding
diff --git a/pkgs/development/python-modules/qiskit/default.nix b/pkgs/development/python-modules/qiskit/default.nix
index aa81ba00a8cae..b3c15b1b3855c 100644
--- a/pkgs/development/python-modules/qiskit/default.nix
+++ b/pkgs/development/python-modules/qiskit/default.nix
@@ -28,15 +28,15 @@ in
 buildPythonPackage rec {
   pname = "qiskit";
   # NOTE: This version denotes a specific set of subpackages. See https://qiskit.org/documentation/release_notes.html#version-history
-  version = "0.34.2";
+  version = "0.36.1";
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
-    owner = "qiskit";
+    owner = "Qiskit";
     repo = "qiskit";
     rev = version;
-    sha256 = "sha256-weL65IQs6vbjJiPJdaizU0ST6u9qDYb0LhTwC6yAdhY=";
+    sha256 = "sha256-cprFWWvYgfoJXvK0Xoi67BwOXQfz7XeHT/JbfErqblk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/qtconsole/default.nix b/pkgs/development/python-modules/qtconsole/default.nix
index 4cf9bd022daba..f9eecbe23a8e8 100644
--- a/pkgs/development/python-modules/qtconsole/default.nix
+++ b/pkgs/development/python-modules/qtconsole/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "qtconsole";
-  version = "5.2.2";
+  version = "5.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8f9db97b27782184efd0a0f2d57ea3bd852d053747a2e442a9011329c082976d";
+    sha256 = "sha256-jjUg/cdeRqvEzGz/7KFvomUnVBCbiug5+ijifR66ViU=";
   };
 
   checkInputs = [ nose ] ++ lib.optionals isPy27 [mock];
diff --git a/pkgs/development/python-modules/qutip/default.nix b/pkgs/development/python-modules/qutip/default.nix
index 8d19e360ca4d5..c1f078ecc1381 100644
--- a/pkgs/development/python-modules/qutip/default.nix
+++ b/pkgs/development/python-modules/qutip/default.nix
@@ -1,57 +1,69 @@
 { lib, stdenv, fetchFromGitHub, buildPythonPackage, python, packaging, numpy
-, cython, scipy, matplotlib, pytestCheckHook, pytest-rerunfailures }:
+, cython, scipy, matplotlib, pytestCheckHook, pytest-rerunfailures
+, doCheck ? false
+}:
 
-buildPythonPackage rec {
-  pname = "qutip";
-  version = "4.6.3";
+let
+  self = buildPythonPackage rec {
+    pname = "qutip";
+    version = "4.6.3";
 
-  src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-11K7Tl7PE98nM2vGsa+OKIJYu0Wmv8dT700PDt9RRVk=";
-  };
+    src = fetchFromGitHub {
+      owner = pname;
+      repo = pname;
+      rev = "v${version}";
+      sha256 = "sha256-11K7Tl7PE98nM2vGsa+OKIJYu0Wmv8dT700PDt9RRVk=";
+    };
+
+    # QuTiP says it needs specific (old) Numpy versions. We overwrite them here
+    # as the tests work perfectly fine with up-to-date packages.
+    postPatch = ''
+      substituteInPlace setup.cfg --replace "numpy>=1.16.6,<1.20" "numpy>=1.16.6"
+    '';
+
+    # Disabling OpenMP support on Darwin.
+    setupPyGlobalFlags = lib.optional (!stdenv.isDarwin) "--with-openmp";
+
+    propagatedBuildInputs = [
+      packaging
+      numpy
+      cython
+      scipy
+      matplotlib
+    ];
+
+    checkInputs = [
+      pytestCheckHook
+      pytest-rerunfailures
+    ];
+
+    # test suite is very cpu intensive
+    inherit doCheck;
+    # - QuTiP tries to access the home directory to create an rc file for us.
+    # This of course fails and therefore, we provide a writable temp dir as HOME.
+    # - We need to go to another directory to run the tests from there.
+    # This is due to the Cython-compiled modules not being in the correct location
+    # of the source tree.
+    # - For running tests, see:
+    # https://qutip.org/docs/latest/installation.html#verifying-the-installation
+    checkPhase = ''
+      export OMP_NUM_THREADS=$NIX_BUILD_CORES
+      export HOME=$(mktemp -d)
+      mkdir -p test && cd test
+      ${python.interpreter} -c "import qutip.testing; qutip.testing.run()"
+    '';
+
+    pythonImportsCheck = [ "qutip" ];
+
+    passthru.tests = {
+      all-tests = self.override { doCheck = true; };
+    };
 
-  # QuTiP says it needs specific (old) Numpy versions. We overwrite them here
-  # as the tests work perfectly fine with up-to-date packages.
-  postPatch = ''
-    substituteInPlace setup.cfg --replace "numpy>=1.16.6,<1.20" "numpy>=1.16.6"
-  '';
-
-  # Disabling OpenMP support on Darwin.
-  setupPyGlobalFlags = lib.optional (!stdenv.isDarwin) "--with-openmp";
-
-  propagatedBuildInputs = [
-    packaging
-    numpy
-    cython
-    scipy
-    matplotlib
-  ];
-
-  checkInputs = [
-    pytestCheckHook
-    pytest-rerunfailures
-  ];
-
-  # - QuTiP tries to access the home directory to create an rc file for us.
-  # This of course fails and therefore, we provide a writable temp dir as HOME.
-  # - We need to go to another directory to run the tests from there.
-  # This is due to the Cython-compiled modules not being in the correct location
-  # of the source tree.
-  # - For running tests, see:
-  # https://qutip.org/docs/latest/installation.html#verifying-the-installation
-  checkPhase = ''
-    export OMP_NUM_THREADS=$NIX_BUILD_CORES
-    export HOME=$(mktemp -d)
-    mkdir -p test && cd test
-    ${python.interpreter} -c "import qutip.testing; qutip.testing.run()"
-  '';
-
-  meta = with lib; {
-    description = "Open-source software for simulating the dynamics of closed and open quantum systems";
-    homepage = "https://qutip.org/";
-    license = licenses.bsd3;
-    maintainers = [ maintainers.fabiangd ];
+    meta = with lib; {
+      description = "Open-source software for simulating the dynamics of closed and open quantum systems";
+      homepage = "https://qutip.org/";
+      license = licenses.bsd3;
+      maintainers = [ maintainers.fabiangd ];
+    };
   };
-}
+in self
diff --git a/pkgs/development/python-modules/radio_beam/default.nix b/pkgs/development/python-modules/radio_beam/default.nix
index 1fcf778a58cbc..bcb099887695d 100644
--- a/pkgs/development/python-modules/radio_beam/default.nix
+++ b/pkgs/development/python-modules/radio_beam/default.nix
@@ -3,14 +3,17 @@
 , buildPythonPackage
 , setuptools-scm
 , astropy
+, numpy
+, scipy
+, six
 , pytestCheckHook
 , pytest-doctestplus
-, scipy
 }:
 
 buildPythonPackage rec {
   pname = "radio_beam";
   version = "0.3.3";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit version;
@@ -22,9 +25,17 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [ astropy ];
+  propagatedBuildInputs = [
+    astropy
+    numpy
+    scipy
+    six
+  ];
 
-  checkInputs = [ pytestCheckHook pytest-doctestplus scipy ];
+  checkInputs = [
+    pytestCheckHook
+    pytest-doctestplus
+  ];
 
   # Tests must be run in the build directory
   preCheck = ''
diff --git a/pkgs/development/python-modules/rapidfuzz-capi/default.nix b/pkgs/development/python-modules/rapidfuzz-capi/default.nix
new file mode 100644
index 0000000000000..b0235f1eda448
--- /dev/null
+++ b/pkgs/development/python-modules/rapidfuzz-capi/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "rapidfuzz-capi";
+  version = "1.0.5";
+
+  src = fetchFromGitHub {
+    owner = "maxbachmann";
+    repo = "rapidfuzz_capi";
+    rev = "v${version}";
+    hash = "sha256-0IvJl2JU/k1WbGPWRoucVGbVsEFNPHZT1ozEQAKQnPk=";
+  };
+
+  # upstream has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "rapidfuzz_capi" ];
+
+  meta = with lib; {
+    description = "C-API of RapidFuzz, which can be used to extend RapidFuzz from separate packages";
+    homepage = "https://github.com/maxbachmann/rapidfuzz_capi";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/rapidfuzz/default.nix b/pkgs/development/python-modules/rapidfuzz/default.nix
index 19ee86e93ab6d..45929e3c991d3 100644
--- a/pkgs/development/python-modules/rapidfuzz/default.nix
+++ b/pkgs/development/python-modules/rapidfuzz/default.nix
@@ -2,39 +2,63 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
-, pytestCheckHook
+, cmake
+, cython_3
+, rapidfuzz-capi
+, scikit-build
+, jarowinkler
+, numpy
 , hypothesis
+, jarowinkler-cpp
 , pandas
-, numpy
+, pytestCheckHook
+, rapidfuzz-cpp
+, taskflow
 }:
 
 buildPythonPackage rec {
   pname = "rapidfuzz";
-  version = "1.9.1";
+  version = "2.0.11";
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "maxbachmann";
     repo = "RapidFuzz";
     rev = "v${version}";
-    fetchSubmodules = true;
-    sha256 = "sha256-aZqsQHrxmPqZARkqR1hWaj7XndOlCJjmWk1Cosx4skA=";
+    hash = "sha256-npmdnUMrmbHgUgqMxKBytgtL1weWw6BjVNmBkYSKNMw=";
   };
 
+  nativeBuildInputs = [
+    cmake
+    cython_3
+    rapidfuzz-capi
+    scikit-build
+  ];
+
+  dontUseCmakeConfigure = true;
+
+  buildInputs = [
+    jarowinkler-cpp
+    rapidfuzz-cpp
+    taskflow
+  ];
+
   propagatedBuildInputs = [
+    jarowinkler
     numpy
   ];
 
   checkInputs = [
-    pytestCheckHook
     hypothesis
     pandas
+    pytestCheckHook
   ];
 
-  disabledTests = [
-    "test_levenshtein_block" # hypothesis data generation too slow
-  ];
+  preCheck = ''
+    # import from $out
+    rm -r rapidfuzz
+  '';
 
   pythonImportsCheck = [
     "rapidfuzz.fuzz"
diff --git a/pkgs/development/python-modules/rasterio/default.nix b/pkgs/development/python-modules/rasterio/default.nix
index 27d6d498c3470..8c73268e6b8de 100644
--- a/pkgs/development/python-modules/rasterio/default.nix
+++ b/pkgs/development/python-modules/rasterio/default.nix
@@ -1,31 +1,86 @@
-{ buildPythonPackage, lib, fetchFromGitHub, isPy3k
-, cython, setuptools
-, numpy, affine, attrs, cligj, click-plugins, snuggs, gdal
-, pytest, pythonOlder, packaging, hypothesis, boto3
-, certifi, shapely
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+
+# build time
+, cython
+, gdal
+
+# runtime
+, affine
+, attrs
+, boto3
+, click
+, click-plugins
+, cligj
+, matplotlib
+, numpy
+, snuggs
+
+# tests
+, hypothesis
+, packaging
+, pytest-randomly
+, pytestCheckHook
+, shapely
 }:
 
 buildPythonPackage rec {
   pname = "rasterio";
-  version = "1.2.10";
+  version = "1.2.10"; # not x.y[ab]z, those are alpha/beta versions
+  format = "pyproject";
   disabled = pythonOlder "3.6";
 
   # Pypi doesn't ship the tests, so we fetch directly from GitHub
   src = fetchFromGitHub {
-    owner = "mapbox";
+    owner = "rasterio";
     repo = "rasterio";
     rev = version;
-    sha256 = "sha256-xVGwQfQvxsqYihUYXENJAz9Qp9xBkhsGc/RheRTJxgo=";
+    hash = "sha256-xVGwQfQvxsqYihUYXENJAz9Qp9xBkhsGc/RheRTJxgo=";
   };
 
-  checkInputs = [ boto3 pytest packaging hypothesis shapely ];
-  nativeBuildInputs = [ cython gdal ];
-  propagatedBuildInputs = [ certifi gdal numpy attrs affine cligj click-plugins snuggs setuptools ];
+  nativeBuildInputs = [
+    cython
+    gdal
+  ];
+
+  propagatedBuildInputs = [
+    affine
+    attrs
+    boto3
+    click
+    click-plugins
+    cligj
+    matplotlib
+    numpy
+    snuggs
+  ];
+
+  preCheck = ''
+    rm -rf rasterio
+  '';
+
+  checkInputs = [
+    pytest-randomly
+    pytestCheckHook
+    packaging
+    hypothesis
+    shapely
+  ];
+
+  pytestFlagsArray = [
+    "-m 'not network'"
+  ];
+
+  pythonImportsCheck = [
+    "rasterio"
+  ];
 
   meta = with lib; {
     description = "Python package to read and write geospatial raster data";
-    license = licenses.bsd3;
     homepage = "https://rasterio.readthedocs.io/en/latest/";
+    license = licenses.bsd3;
     maintainers = with maintainers; [ mredaelli ];
   };
 }
diff --git a/pkgs/development/python-modules/rdflib/default.nix b/pkgs/development/python-modules/rdflib/default.nix
index 73f170b90b1b6..1a587d8d61acd 100644
--- a/pkgs/development/python-modules/rdflib/default.nix
+++ b/pkgs/development/python-modules/rdflib/default.nix
@@ -2,16 +2,23 @@
 , stdenv
 , buildPythonPackage
 , fetchFromGitHub
-, html5lib
+, pythonOlder
+
+# propagates
 , isodate
-, networkx
-, nose
 , pyparsing
-, tabulate
-, pandas
+
+# propagates <3.8
+, importlib-metadata
+
+# extras: networkx
+, networkx
+
+# extras: html
+, html5lib
+
+# tests
 , pytestCheckHook
-, pythonOlder
-, SPARQLWrapper
 }:
 
 buildPythonPackage rec {
@@ -32,34 +39,37 @@ buildPythonPackage rec {
     isodate
     html5lib
     pyparsing
-    SPARQLWrapper
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
   ];
 
+  passthru.extra-requires = {
+    html = [
+      html5lib
+    ];
+    networkx = [
+      networkx
+    ];
+  };
+
   checkInputs = [
-    networkx
-    pandas
-    nose
-    tabulate
     pytestCheckHook
-  ];
+  ]
+  ++ passthru.extra-requires.networkx
+  ++ passthru.extra-requires.html;
 
   pytestFlagsArray = [
     # requires network access
-    "--deselect rdflib/__init__.py::rdflib"
-    "--deselect test/jsonld/test_onedotone.py::test_suite"
+    "--deselect=rdflib/__init__.py::rdflib"
+    "--deselect=test/jsonld/test_onedotone.py::test_suite"
   ];
 
   disabledTests = [
     # Requires network access
-    "api_key"
-    "BerkeleyDBTestCase"
-    "test_bad_password"
     "test_service"
     "testGuessFormatForParse"
   ] ++ lib.optional stdenv.isDarwin [
     # Require loopback network access
-    "test_sparqlstore"
-    "test_sparqlupdatestore_mock"
     "TestGraphHTTP"
   ];
 
diff --git a/pkgs/development/python-modules/readme_renderer/default.nix b/pkgs/development/python-modules/readme_renderer/default.nix
index 122c4fdf6653d..1c1ea480cd40c 100644
--- a/pkgs/development/python-modules/readme_renderer/default.nix
+++ b/pkgs/development/python-modules/readme_renderer/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "readme-renderer";
-  version = "34.0";
+  version = "35.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "readme_renderer";
     inherit version;
-    sha256 = "sha256-37TRfyFwbRRfdHPgthyiRbpY6BDPmyIJpII5Z3+C5bA=";
+    sha256 = "sha256-pyeZms/CIvwh2CoS7UjJV8SYl4XlhlgHxlpIfSFndJc=";
   };
 
   propagatedBuildInputs = [
@@ -43,6 +43,12 @@ buildPythonPackage rec {
   disabledTests = [
     # https://github.com/pypa/readme_renderer/issues/221
     "test_GFM_"
+    # Relies on old distutils behaviour removed by setuptools (TypeError: dist must be a Distribution instance)
+    "test_valid_rst"
+    "test_invalid_rst"
+    "test_malicious_rst"
+    "test_invalid_missing"
+    "test_invalid_empty"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix b/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
index 74f1c05a20106..b71a675f6d8ef 100644
--- a/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
+++ b/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "readthedocs-sphinx-ext";
-  version = "2.1.4";
+  version = "2.1.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2ba023376057c6ba5d07b4fd016ec1d526f1b4fc5ad7a7ce7f0ed8a91dc54bbe";
+    sha256 = "sha256-G/QuIOW3qUOJGnmM5cy5H9W6wiMLDBmdhTgMkhAHa3g=";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/redis/default.nix b/pkgs/development/python-modules/redis/default.nix
index 0731487575b1a..b38975c9c6d67 100644
--- a/pkgs/development/python-modules/redis/default.nix
+++ b/pkgs/development/python-modules/redis/default.nix
@@ -4,36 +4,53 @@
 , pythonOlder
 
 # propagates
-, cryptography
+, async-timeout
 , deprecated
-, hiredis
 , importlib-metadata
 , packaging
+, typing-extensions
+
+# extras: hiredis
+, hiredis
+
+# extras: ocsp
+, cryptography
+, pyopenssl
 , requests
 }:
 
 buildPythonPackage rec {
   pname = "redis";
-  version = "4.1.0";
+  version = "4.2.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-IfCiO85weQkHbmuizgdsulm/9g0qsily4GR/32IP/kc=";
+    sha256 = "sha256-/kVROIEinb7mEGILnggXsfSMR7pjWHAyD9RKcSIEu90=";
   };
 
   propagatedBuildInputs = [
-    cryptography
+    async-timeout
     deprecated
-    hiredis
     packaging
-    requests
+    typing-extensions
   ] ++ lib.optionals (pythonOlder "3.8") [
     importlib-metadata
   ];
 
+  passthru.extras-require = {
+    hidredis = [
+      hiredis
+    ];
+    ocsp = [
+      cryptography
+      pyopenssl
+      requests
+    ];
+  };
+
   pythonImportsCheck = [
     "redis"
     "redis.client"
diff --git a/pkgs/development/python-modules/reedsolo/default.nix b/pkgs/development/python-modules/reedsolo/default.nix
index d9dd54e29f433..44e2c3b9b4491 100644
--- a/pkgs/development/python-modules/reedsolo/default.nix
+++ b/pkgs/development/python-modules/reedsolo/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub, cython, nose }:
+{ lib
+, buildPythonPackage
+, fetchpatch
+, fetchFromGitHub
+, cython
+, nose
+}:
 
 buildPythonPackage rec {
   pname = "reedsolo";
@@ -8,11 +14,18 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "tomerfiliba";
     repo = "reedsolomon";
-    # https://github.com/tomerfiliba/reedsolomon/issues/28
-    rev = "73926cdf81b39009bd6e46c8d49f3bbc0eaad4e4";
-    sha256 = "03wrr0c32dsl7h9k794b8fwnyzklvmxgriy49mjvvd3val829cc1";
+    rev = "v${version}";
+    hash = "sha256-GUMdL5HclXxqMYasq9kUE7fCqOkjr1D20wjd/E+xPBk=";
   };
 
+  patches = [
+    (fetchpatch {
+      # python3.10 compat; https://github.com/tomerfiliba/reedsolomon/pull/38
+      url = "https://github.com/tomerfiliba/reedsolomon/commit/63e5bd9fc3ca503990c212eb2c77c10589e6d6c3.patch";
+      hash = "sha256-47g+jUsJEAyqGnlzRA1oSyc2XFPUOfH0EW+vcOJzsxI=";
+    })
+  ];
+
   nativeBuildInputs = [ cython ];
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/regex/default.nix b/pkgs/development/python-modules/regex/default.nix
index 86e591eaf14f1..512a7162f0e3c 100644
--- a/pkgs/development/python-modules/regex/default.nix
+++ b/pkgs/development/python-modules/regex/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "regex";
-  version = "2022.1.18";
+  version = "2022.3.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-l/MtwDqAVKTEpatddh7Uhh6CiywgD+vU5GhXBppIORY=";
+    hash = "sha256-eeWvH/JYvA/gvdb2m8SuM5NaiY48vvu8zyLoiif6BTs=";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/renault-api/default.nix b/pkgs/development/python-modules/renault-api/default.nix
index 2312078c5fc65..a2cfdd98d8450 100644
--- a/pkgs/development/python-modules/renault-api/default.nix
+++ b/pkgs/development/python-modules/renault-api/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "renault-api";
-  version = "0.1.10";
+  version = "0.1.11";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "hacf-fr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-PXycRRUrKIkU/MgQbW4BjvBhpEi6InY5jZHPw4Nyv2s=";
+    sha256 = "sha256-71UFVXfww3wgSO2qoRCuV80+33B91Bjl2+nuuCbQRLg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/reportlab/default.nix b/pkgs/development/python-modules/reportlab/default.nix
index 82d84dc26a974..35289d3b5d4bf 100644
--- a/pkgs/development/python-modules/reportlab/default.nix
+++ b/pkgs/development/python-modules/reportlab/default.nix
@@ -1,4 +1,5 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , fetchPypi
 , freetype
 , pillow
@@ -11,11 +12,11 @@ let
   ft = freetype.overrideAttrs (oldArgs: { dontDisableStatic = true; });
 in buildPythonPackage rec {
   pname = "reportlab";
-  version = "3.6.5";
+  version = "3.6.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d8fe27ad312671c9347cf5997f7c1017833fac17233f33296281ba9fa0de189a";
+    sha256 = "sha256-XQzDaCRWrSExUPbb/+fUfqtzfYCeUXwxYQM3a+VI+4Q=";
   };
 
   checkInputs = [ glibcLocales ];
@@ -23,6 +24,9 @@ in buildPythonPackage rec {
   buildInputs = [ ft pillow ];
 
   postPatch = ''
+    substituteInPlace setup.py \
+      --replace "mif = findFile(d,'ft2build.h')" "mif = findFile('${lib.getDev ft}','ft2build.h')"
+
     # Remove all the test files that require access to the internet to pass.
     rm tests/test_lib_utils.py
     rm tests/test_platypus_general.py
diff --git a/pkgs/development/python-modules/requests-oauthlib/default.nix b/pkgs/development/python-modules/requests-oauthlib/default.nix
index aed6576c90dfc..d42de957791e4 100644
--- a/pkgs/development/python-modules/requests-oauthlib/default.nix
+++ b/pkgs/development/python-modules/requests-oauthlib/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "requests-oauthlib";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0smaxs5ixng4z0k6dsgmm6s972ka3p6a2ykdpnl23mqzlw0ic9ml";
+    sha256 = "sha256-db6sSkeIHuuU1epdatMe+IhWr/4jMrmq+1LGRSzPDXo=";
   };
 
   propagatedBuildInputs = [ oauthlib requests ];
diff --git a/pkgs/development/python-modules/requests/default.nix b/pkgs/development/python-modules/requests/default.nix
index f5b021801f413..559ce70533ce5 100644
--- a/pkgs/development/python-modules/requests/default.nix
+++ b/pkgs/development/python-modules/requests/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , brotli
 , brotlicffi
 , buildPythonPackage
@@ -13,7 +14,6 @@
 , pytest-mock
 , pytest-xdist
 , pytestCheckHook
-, trustme
 , urllib3
 }:
 
@@ -31,21 +31,15 @@ buildPythonPackage rec {
     ./0001-Prefer-NixOS-Nix-default-CA-bundles-over-certifi.patch
   ];
 
-  postPatch = ''
-    # Use latest idna
-    substituteInPlace setup.py \
-      --replace ",<3" ""
-  '';
-
   propagatedBuildInputs = [
     certifi
     idna
     urllib3
     chardet
-  ] ++ lib.optionals (isPy3k) [
+  ] ++ lib.optionals isPy3k [
     brotlicffi
     charset-normalizer
-  ] ++ lib.optionals (isPy27) [
+  ] ++ lib.optionals isPy27 [
     brotli
   ];
 
@@ -54,7 +48,6 @@ buildPythonPackage rec {
     pytest-mock
     pytest-xdist
     pytestCheckHook
-    trustme
   ];
 
   # AttributeError: 'KeywordMapping' object has no attribute 'get'
@@ -74,6 +67,15 @@ buildPythonPackage rec {
     "test_use_proxy_from_environment"
     "TestRequests"
     "TestTimeout"
+  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+    # Fatal Python error: Aborted
+    "test_basic_response"
+    "test_text_response"
+  ];
+
+  disabledTestPaths = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+    # Fatal Python error: Aborted
+    "tests/test_lowlevel.py"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/responses/default.nix b/pkgs/development/python-modules/responses/default.nix
index 95861bda181c9..7f9372dcdb719 100644
--- a/pkgs/development/python-modules/responses/default.nix
+++ b/pkgs/development/python-modules/responses/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , pytest-localserver
 , pytestCheckHook
 , pythonOlder
@@ -10,14 +10,16 @@
 
 buildPythonPackage rec {
   pname = "responses";
-  version = "0.18.0";
+  version = "0.20.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-OAytTBwdyULl6KjqrgtNTt9wj08BDbi3vPr60fzSVP8=";
+  src = fetchFromGitHub {
+    owner = "getsentry";
+    repo = pname;
+    rev = version;
+    hash = "sha256-dhIKMQXBJfZGIanJN1bFmlr/FYL1UYgYKGYaSznKhZs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/respx/default.nix b/pkgs/development/python-modules/respx/default.nix
index 51d88446c0b5d..241f0f9e9da44 100644
--- a/pkgs/development/python-modules/respx/default.nix
+++ b/pkgs/development/python-modules/respx/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "respx";
-  version = "0.19.1";
+  version = "0.19.2";
 
   src = fetchFromGitHub {
     owner = "lundberg";
     repo = pname;
     rev = version;
-    sha256 = "134h9526md242p7ql0cpknqvkpd3fhxk2vridkvswg91f532w180";
+    sha256 = "sha256-uNmSBJOQF4baq8AWzfwj0kinO19jr6Mp9Yblys/WmZs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/restructuredtext_lint/default.nix b/pkgs/development/python-modules/restructuredtext_lint/default.nix
index 01c7a5e78c62e..0033794ef4371 100644
--- a/pkgs/development/python-modules/restructuredtext_lint/default.nix
+++ b/pkgs/development/python-modules/restructuredtext_lint/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "restructuredtext_lint";
-  version = "1.3.2";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d3b10a1fe2ecac537e51ae6d151b223b78de9fafdd50e5eb6b08c243df173c80";
+    sha256 = "sha256-GyNcDJIjQatsUwOQiS656S+QubdQRgY+BHys+w8FDEU=";
   };
 
   checkInputs = [ nose testtools ];
diff --git a/pkgs/development/python-modules/result/default.nix b/pkgs/development/python-modules/result/default.nix
new file mode 100644
index 0000000000000..95fcc8295b224
--- /dev/null
+++ b/pkgs/development/python-modules/result/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "result";
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "rustedpy";
+    repo = "result";
+     rev = "v${version}";
+    sha256 = "sha256-bEf3OJg6ksDvzZE7ezA58Q2FObb5V7BG8vkKtX284Jg=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace '"--flake8",' "" \
+      --replace '"--tb=short",' "" \
+      --replace '"--cov=result",' "" \
+      --replace '"--cov=tests",' "" \
+      --replace '"--cov-report=term",' "" \
+      --replace '"--cov-report=xml",' ""
+  '';
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    #TODO: figure out the failure "match o:" Invalid Syntax
+    "tests/test_pattern_matching.py"
+  ];
+
+  pythonImportsCheck = [ "result" ];
+
+  meta = with lib; {
+    description = "A simple Result type for Python 3 inspired by Rust, fully type annotated";
+    homepage = "https://github.com/rustedpy/result";
+    license = licenses.mit;
+    maintainers = [ maintainers.kvark ];
+  };
+}
diff --git a/pkgs/development/python-modules/rfc6555/default.nix b/pkgs/development/python-modules/rfc6555/default.nix
index 5be65fee23951..e866df5d122e8 100644
--- a/pkgs/development/python-modules/rfc6555/default.nix
+++ b/pkgs/development/python-modules/rfc6555/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pytestCheckHook
-, selectors2
+, pythonOlder
 }:
 
 buildPythonPackage rec {
@@ -10,17 +10,15 @@ buildPythonPackage rec {
   version = "0.1.0";
   format = "setuptools";
 
+  disabled = pythonOlder "3.7";
+
   src = fetchFromGitHub {
     owner = "sethmlarson";
     repo = pname;
     rev = "v${version}";
-    sha256 = "Lmwgusc4EQlF0GHmMTUxWzUCjBk19cvurNwbOnT+1jM=";
+    hash = "sha256-Lmwgusc4EQlF0GHmMTUxWzUCjBk19cvurNwbOnT+1jM=";
   };
 
-  propagatedBuildInputs = [
-    selectors2
-  ];
-
   checkInputs = [
     pytestCheckHook
   ];
diff --git a/pkgs/development/python-modules/rich/default.nix b/pkgs/development/python-modules/rich/default.nix
index f6194970adbd0..addc12b3637a4 100644
--- a/pkgs/development/python-modules/rich/default.nix
+++ b/pkgs/development/python-modules/rich/default.nix
@@ -3,7 +3,6 @@
 , fetchFromGitHub
 , pythonOlder
 , CommonMark
-, colorama
 , dataclasses
 , poetry-core
 , pygments
@@ -13,26 +12,26 @@
 
 buildPythonPackage rec {
   pname = "rich";
-  version = "11.0.0";
+  version = "12.2.0";
   format = "pyproject";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
-    owner = "willmcgugan";
+    owner = "Textualize";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vkwar22rv1j6a3kqj3c016j0vnnha0kwi79fkd90ib1n501m7rn";
+    sha256 = "02zypmnc9sijlipki0riywh82piamd3hlrl5xbg2bxlldnlnwx1d";
   };
 
   nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     CommonMark
-    colorama
     pygments
-    typing-extensions
   ] ++ lib.optional (pythonOlder "3.7") [
     dataclasses
+  ] ++ lib.optional (pythonOlder "3.9") [
+    typing-extensions
   ];
 
   checkInputs = [
@@ -43,7 +42,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal";
-    homepage = "https://github.com/willmcgugan/rich";
+    homepage = "https://github.com/Textualize/rich";
     license = licenses.mit;
     maintainers = with maintainers; [ ris ];
   };
diff --git a/pkgs/development/python-modules/ring-doorbell/default.nix b/pkgs/development/python-modules/ring-doorbell/default.nix
index 968182f8535fd..bffa6fed7d122 100644
--- a/pkgs/development/python-modules/ring-doorbell/default.nix
+++ b/pkgs/development/python-modules/ring-doorbell/default.nix
@@ -1,31 +1,33 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, isPy3k
 , oauthlib
 , pytestCheckHook
+, pythonOlder
 , pytz
 , requests
 , requests-mock
-, requests_oauthlib
+, requests-oauthlib
 }:
 
 buildPythonPackage rec {
   pname = "ring-doorbell";
   version = "0.7.2";
-  disabled = !isPy3k;
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     pname = "ring_doorbell";
     inherit version;
-    sha256 = "0a7e82abf27086843eb39c0279f5dfccea6751ff848560e67154ca6fbfa4ef2b";
+    hash = "sha256-Cn6Cq/JwhoQ+s5wCefXfzOpnUf+EhWDmcVTKb7+k7ys=";
   };
 
   propagatedBuildInputs = [
     oauthlib
     pytz
     requests
-    requests_oauthlib
+    requests-oauthlib
   ];
 
   checkInputs = [
@@ -33,11 +35,13 @@ buildPythonPackage rec {
     requests-mock
   ];
 
-  pythonImportsCheck = [ "ring_doorbell" ];
+  pythonImportsCheck = [
+    "ring_doorbell"
+  ];
 
   meta = with lib; {
+    description = "Python library to communicate with Ring Door Bell";
     homepage = "https://github.com/tchellomello/python-ring-doorbell";
-    description = "A Python library to communicate with Ring Door Bell (https://ring.com/)";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ graham33 ];
   };
diff --git a/pkgs/development/python-modules/ripser/default.nix b/pkgs/development/python-modules/ripser/default.nix
index 6c510f577e466..5317b39f083af 100644
--- a/pkgs/development/python-modules/ripser/default.nix
+++ b/pkgs/development/python-modules/ripser/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, fetchpatch
 , fetchPypi
 , pythonOlder
 , cython
@@ -7,7 +8,7 @@
 , scipy
 , scikit-learn
 , persim
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -20,8 +21,11 @@ buildPythonPackage rec {
     sha256 = "335112a0f94532ccbe686db7826ee8d0714b32f65891abf92c0a02f3cb0fc5fd";
   };
 
-  checkInputs = [
-    pytest
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/scikit-tda/ripser.py/commit/4baa248994cee9a65d710fac91809bad8ed4e5f1.patch";
+      sha256 = "sha256-J/nxMOGOUiBueojJrUlAaXwktHDploYG/XL8/siF2kY=";
+    })
   ];
 
   propagatedBuildInputs = [
@@ -32,13 +36,15 @@ buildPythonPackage rec {
     persim
   ];
 
-  checkPhase = ''
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  preCheck = ''
     # specifically needed for darwin
     export HOME=$(mktemp -d)
     mkdir -p $HOME/.matplotlib
     echo "backend: ps" > $HOME/.matplotlib/matplotlibrc
-
-    pytest
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/rjpl/default.nix b/pkgs/development/python-modules/rjpl/default.nix
new file mode 100644
index 0000000000000..8d5cfbc92aae1
--- /dev/null
+++ b/pkgs/development/python-modules/rjpl/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, requests
+, fetchPypi
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "rjpl";
+  version = "0.3.6";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-GLNIpZuM3yuCnPyjBa8KjdaL5cFK8InluuY+LTCrimc=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "rjpl"
+  ];
+
+  meta = with lib; {
+    description = "Library for interacting with the Rejseplanen API";
+    homepage = "https://github.com/tomatpasser/python-rejseplanen";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/rns/default.nix b/pkgs/development/python-modules/rns/default.nix
new file mode 100644
index 0000000000000..39496de24c09e
--- /dev/null
+++ b/pkgs/development/python-modules/rns/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, cryptography
+, fetchFromGitHub
+, netifaces
+, pyserial
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "rns";
+  version = "0.3.4";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "markqvist";
+    repo = "Reticulum";
+    rev = version;
+    hash = "sha256-fpXbp0Tj22flco9Rg4JTWZes6oxY7FhvYD76jA3yVuE=";
+  };
+
+  propagatedBuildInputs = [
+    cryptography
+    netifaces
+    pyserial
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "RNS"
+  ];
+
+  meta = with lib; {
+    description = "Cryptography-based networking stack for wide-area networks";
+    homepage = "https://github.com/markqvist/Reticulum";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/robotframework-tools/default.nix b/pkgs/development/python-modules/robotframework-tools/default.nix
index 77a7fe13df99c..2c2fe3945b09a 100644
--- a/pkgs/development/python-modules/robotframework-tools/default.nix
+++ b/pkgs/development/python-modules/robotframework-tools/default.nix
@@ -3,7 +3,7 @@
 , fetchPypi
 , robotframework
 , moretools
-, pathpy
+, path
 , six
 , zetup
 , modeled
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     robotframework
     moretools
-    pathpy
+    path
     six
     modeled
   ];
diff --git a/pkgs/development/python-modules/robotstatuschecker/default.nix b/pkgs/development/python-modules/robotstatuschecker/default.nix
index 63e87609ac25b..74810c7761f53 100644
--- a/pkgs/development/python-modules/robotstatuschecker/default.nix
+++ b/pkgs/development/python-modules/robotstatuschecker/default.nix
@@ -8,7 +8,7 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "robotframework";
     repo = "statuschecker";
-    rev = version;
+    rev = "refs/tags/v${version}";
     sha256 = "0hy1390j3l4kkfna9x9xax4y5mqaa3hdndv3fiyg9wr5f7sx3wnz";
   };
 
diff --git a/pkgs/development/python-modules/rova/default.nix b/pkgs/development/python-modules/rova/default.nix
new file mode 100644
index 0000000000000..5f419615dd539
--- /dev/null
+++ b/pkgs/development/python-modules/rova/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "rova";
+  version = "0.3.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "GidoHakvoort";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-TLL9Ta+7Xd55hGTTXjc6CBMj+tW1LpFrprpsnGqZvkQ=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "rova"
+  ];
+
+  meta = with lib; {
+    description = "Module to access for ROVA calendars";
+    homepage = "https://github.com/GidoHakvoort/rova";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/rtsp-to-webrtc/default.nix b/pkgs/development/python-modules/rtsp-to-webrtc/default.nix
index 9cc4a85bee6a1..2c8fd9e40ba28 100644
--- a/pkgs/development/python-modules/rtsp-to-webrtc/default.nix
+++ b/pkgs/development/python-modules/rtsp-to-webrtc/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "rtsp-to-webrtc";
-  version = "0.5.0";
+  version = "0.5.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "allenporter";
     repo = "rtsp-to-webrtc-client";
     rev = version;
-    hash = "sha256-ry6xNymWgkkvYXliVLUFOUiPz8gbCsQDrSuGmCaH4ZE=";
+    hash = "sha256-miMBN/8IO4v03mMoclCa3GFl6HCS3Sh6z2HOQ39MRZY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/s3fs/default.nix b/pkgs/development/python-modules/s3fs/default.nix
index d90d1052282dc..8582c0ac72923 100644
--- a/pkgs/development/python-modules/s3fs/default.nix
+++ b/pkgs/development/python-modules/s3fs/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "s3fs";
-  version = "2022.1.0";
+  version = "2022.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6bafc1f6b4e935ea59512c0f38d5cb9c299dbbfe738e40c3d1de8f67b4ee1fd4";
+    sha256 = "sha256-RhHQ9+QeW8nawwCQcOCtN9qHpC9t73W0gTwG9+QEpzg=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/sabyenc3/default.nix b/pkgs/development/python-modules/sabyenc3/default.nix
index 831680670d1fe..8b0b0a9e24480 100644
--- a/pkgs/development/python-modules/sabyenc3/default.nix
+++ b/pkgs/development/python-modules/sabyenc3/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "sabyenc3";
-  version = "5.1.6";
+  version = "5.1.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-DHHil9ZQsrKLgw5dje0Yo1J5FZAFrY1tn5y3mdBJHWg=";
+    hash = "sha256-pewB7JAQ/4KitGFrHX52Gn02my/bOcQCz79cwh6vElk=";
   };
 
   # Tests are not included in pypi distribution
diff --git a/pkgs/development/python-modules/sagemaker/default.nix b/pkgs/development/python-modules/sagemaker/default.nix
index 80c4bd92a385a..dff960429fb15 100644
--- a/pkgs/development/python-modules/sagemaker/default.nix
+++ b/pkgs/development/python-modules/sagemaker/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "sagemaker";
-  version = "2.75.1";
+  version = "2.82.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-MN/F7TWaKsQpKMR7Pxx0Vam1+O+PFEJ/H5jLJh3zpe4=";
+    sha256 = "sha256-cQe4b5XpmaC9ZTanI9LKNTLw1HycxqaDCOuLfw/vBRY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/samsungctl/default.nix b/pkgs/development/python-modules/samsungctl/default.nix
index 174af9023512b..f917c265973af 100644
--- a/pkgs/development/python-modules/samsungctl/default.nix
+++ b/pkgs/development/python-modules/samsungctl/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi
+{ lib
+, buildPythonPackage
+, fetchPypi
+
+# extra: websocket
 , websocket-client
 }:
 
@@ -11,9 +15,12 @@ buildPythonPackage rec {
     sha256 = "0ipz3fd65rqkxlb02sql0awc3vnslrwb2pfrsnpfnf8bfgxpbh9g";
   };
 
-  propagatedBuildInputs = [
-    websocket-client
-  ];
+  passthru.extras-require = {
+    websocket = [
+      websocket-client
+    ];
+    # interactive_ui requires curses package
+  };
 
   # no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/samsungtvws/default.nix b/pkgs/development/python-modules/samsungtvws/default.nix
index cd137b1547ea3..383841caffa43 100644
--- a/pkgs/development/python-modules/samsungtvws/default.nix
+++ b/pkgs/development/python-modules/samsungtvws/default.nix
@@ -1,25 +1,62 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+
+# propagates:
 , requests
 , websocket-client
+
+# extras: async
+, aiohttp
+, websockets
+
+# extras: encrypted
+, cryptography
+, py3rijndael
+
+# tests
+, aioresponses
+, pytest-asyncio
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "samsungtvws";
   version = "2.5.0";
+  format = "setuptools";
   disabled = isPy27;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-AFCN1b80GZ24g3oWe1qqc72yWQy4+/sorL8zwOYM7vo=";
+  src = fetchFromGitHub {
+    owner = "xchwarze";
+    repo = "samsung-tv-ws-api";
+    rev = "v${version}";
+    hash = "sha256-AimG5tyTRBETpivC2BwCuoR4o7y98YT6u5sogJlcmoo=";
   };
 
   propagatedBuildInputs = [
-    websocket-client
     requests
+    websocket-client
   ];
 
-  # no tests
-  doCheck = false;
+  passthru.extras-require = {
+    async = [
+      aiohttp
+      websockets
+    ];
+    encrypted = [
+      cryptography
+      py3rijndael
+    ];
+  };
+
+  checkInputs = [
+    aioresponses
+    pytest-asyncio
+    pytestCheckHook
+  ]
+  ++ passthru.extras-require.async
+  ++ passthru.extras-require.encrypted;
 
   pythonImportsCheck = [ "samsungtvws" ];
 
diff --git a/pkgs/development/python-modules/sanic-testing/default.nix b/pkgs/development/python-modules/sanic-testing/default.nix
index 4bc446c2e1425..3fb60ebaa9e5c 100644
--- a/pkgs/development/python-modules/sanic-testing/default.nix
+++ b/pkgs/development/python-modules/sanic-testing/default.nix
@@ -1,11 +1,10 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, pytestCheckHook
 , httpx
-, pytest-asyncio
 , sanic
 , websockets
+, callPackage
 }:
 
 buildPythonPackage rec {
@@ -19,11 +18,14 @@ buildPythonPackage rec {
     sha256 = "17fbb78gvic5s9nlcgwj817fq1f9j9d1d7z6n2ahhinmvyzl9gc8";
   };
 
+  outputs = [
+    "out"
+    "testsout"
+  ];
+
   postPatch = ''
-    # https://github.com/sanic-org/sanic-testing/issues/19
     substituteInPlace setup.py \
-      --replace '"websockets==8.1",' '"websockets>=9.1",' \
-      --replace "httpx==0.18.*" "httpx"
+      --replace "httpx>=0.18,<0.22" "httpx"
   '';
 
   propagatedBuildInputs = [
@@ -32,18 +34,18 @@ buildPythonPackage rec {
     websockets
   ];
 
-  checkInputs = [
-    pytest-asyncio
-    pytestCheckHook
-  ];
+  postInstall = ''
+    mkdir $testsout
+    cp -R tests $testsout/tests
+  '';
 
-  # `sanic` is explicitly set to null when building `sanic` itself
-  # to prevent infinite recursion.  In that case we skip running
-  # the package at all.
-  doCheck = sanic != null;
-  dontUsePythonImportsCheck = sanic == null;
+  # check in passthru.tests.pytest to escape infinite recursion with sanic
+  doCheck = false;
+  doInstallCheck = false;
 
-  pythonImportsCheck = [ "sanic_testing" ];
+  passthru.tests = {
+    pytest = callPackage ./tests.nix { };
+  };
 
   meta = with lib; {
     description = "Core testing clients for the Sanic web framework";
diff --git a/pkgs/development/python-modules/sanic-testing/tests.nix b/pkgs/development/python-modules/sanic-testing/tests.nix
new file mode 100644
index 0000000000000..6a228a9823102
--- /dev/null
+++ b/pkgs/development/python-modules/sanic-testing/tests.nix
@@ -0,0 +1,26 @@
+{ buildPythonPackage
+, sanic
+, sanic-testing
+, pytest-asyncio
+, pytestCheckHook
+}:
+
+buildPythonPackage {
+  pname = "sanic-testing-tests";
+  inherit (sanic-testing) version;
+
+  src = sanic-testing.testsout;
+
+  dontBuild = true;
+  dontInstall = true;
+
+  checkInputs = [
+    pytest-asyncio
+    pytestCheckHook
+    sanic
+  ];
+
+  pythonImportsCheck = [
+    "sanic_testing"
+  ];
+}
diff --git a/pkgs/development/python-modules/sanic/default.nix b/pkgs/development/python-modules/sanic/default.nix
index 63c24e9936fcb..91d8c564315c1 100644
--- a/pkgs/development/python-modules/sanic/default.nix
+++ b/pkgs/development/python-modules/sanic/default.nix
@@ -40,9 +40,12 @@ buildPythonPackage rec {
   postPatch = ''
     # Loosen dependency requirements.
     substituteInPlace setup.py \
-      --replace '"pytest==6.2.5"' '"pytest"' \
-      --replace '"gunicorn==20.0.4"' '"gunicorn"' \
-      --replace '"pytest-sanic",' "" \
+      --replace "pytest==6.2.5" "pytest" \
+      --replace "gunicorn==20.0.4" "gunicorn" \
+      --replace "multidict>=5.0,<6.0" "multidict"
+
+    sed '/pytest-sanic/d' setup.py
+
     # Patch a request headers test to allow brotli encoding
     # (we build httpx with brotli support, upstream doesn't).
     substituteInPlace tests/test_headers.py \
@@ -118,6 +121,10 @@ buildPythonPackage rec {
     "test_num_workers"
     "test_server_run"
     "test_version"
+    # Sensitive comparison of raw HTTP header fails
+    "test_raw_headers"
+    # noisy_exceptions sometimes missing from sanic stdout
+    "test_noisy_exceptions"
   ];
 
   disabledTestPaths = [
diff --git a/pkgs/development/python-modules/sapi-python-client/default.nix b/pkgs/development/python-modules/sapi-python-client/default.nix
deleted file mode 100644
index 8375c62e979f4..0000000000000
--- a/pkgs/development/python-modules/sapi-python-client/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ lib, git, setuptools, setuptools-scm, fetchFromGitHub, requests, boto3, buildPythonPackage, responses }:
-
-buildPythonPackage rec {
-    pname = "sapi-python-client";
-    version = "0.4.1";
-
-    src = fetchFromGitHub {
-        owner = "keboola";
-        repo = pname;
-        rev  = version;
-        sha256 = "189dzj06vzp7366h2qsfvbjmw9qgl7jbp8syhynn9yvrjqp4k8h3";
-    };
-
-    postPatch = ''
-        sed -i 's|use_scm_version=True|version="${version}"|' setup.py
-    '';
-
-    doCheck = false; # requires API token and an active keboola bucket
-
-    nativeBuildInputs = [ git setuptools-scm ];
-
-    propagatedBuildInputs = [ setuptools requests boto3 responses ];
-
-    meta = with lib; {
-        description = "Keboola Connection Storage API client";
-        homepage = "https://github.com/keboola/sapi-python-client";
-        maintainers = with maintainers; [ mrmebelman ];
-        license = licenses.mit;
-    };
-}
diff --git a/pkgs/development/python-modules/schema-salad/default.nix b/pkgs/development/python-modules/schema-salad/default.nix
index bea5b766b5c91..995c7e206faf3 100644
--- a/pkgs/development/python-modules/schema-salad/default.nix
+++ b/pkgs/development/python-modules/schema-salad/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "schema-salad";
-  version = "8.2.20220103095339";
+  version = "8.2.20220204150214";
   format = "setuptools";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "051690a2f89b98e35100cd2cb489406a5169a60c2f27a716f3f287a42d45be2d";
+    hash = "sha256-PlPb/nE3eWueUTWSDpa7JxPe2ee+KFna5VTR3IsClwQ=";
   };
 
   propagatedBuildInputs = [
@@ -37,9 +37,11 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # setup for these tests requires network access
+    # Setup for these tests requires network access
     "test_secondaryFiles"
     "test_outputBinding"
+    # Test requires network
+    "test_yaml_tab_error"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/scikit-build/default.nix b/pkgs/development/python-modules/scikit-build/default.nix
index bc72f76bf2237..17b2ac3556702 100644
--- a/pkgs/development/python-modules/scikit-build/default.nix
+++ b/pkgs/development/python-modules/scikit-build/default.nix
@@ -1,22 +1,21 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , distro
 , packaging
+, python
 , setuptools
+, setuptools-scm
 , wheel
-# Test Inputs
+  # Test Inputs
 , cmake
-, codecov
-, coverage
 , cython
 , flake8
 , ninja
-, pathpy
-, pytest
-, pytest-cov
+, path
+, pytestCheckHook
 , pytest-mock
-, pytest-runner
 , pytest-virtualenv
 , requests
 , six
@@ -25,31 +24,36 @@
 
 buildPythonPackage rec {
   pname = "scikit-build";
-  version = "0.12.0";
+  version = "0.14.1";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f851382c469bcd9a8c98b1878bcfdd13b68556279d2fd9a329be41956ae5a7fe";
+    sha256 = "sha256-Fwc9g3tWVRvt6Pa++utOuj2UM15ZAjmELjZg8HY6CRo=";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/scikit-build/scikit-build/commit/59cf7a5b09a71d418947db3c9d487471c4573a24.patch";
+      sha256 = "sha256-oQllX3qzwWwllczXUMObrwndCfvMdS5FulEhbBORAks=";
+    })
+  ];
+
   propagatedBuildInputs = [
     distro
     packaging
     setuptools
+    setuptools-scm
     wheel
   ];
+
   checkInputs = [
     cmake
-    codecov
-    coverage
     cython
-    flake8
     ninja
-    pathpy
-    pytest
-    pytest-cov
+    path
+    pytestCheckHook
     pytest-mock
-    pytest-runner
     pytest-virtualenv
     requests
     six
@@ -58,7 +62,7 @@ buildPythonPackage rec {
 
   dontUseCmakeConfigure = true;
 
-  disabledTests = lib.concatMapStringsSep " and " (s: "not " + s) ([
+  disabledTests = [
     "test_hello_develop" # tries setuptools develop install
     "test_source_distribution" # pip has no way to install missing dependencies
     "test_wheel" # pip has no way to install missing dependencies
@@ -66,15 +70,23 @@ buildPythonPackage rec {
     "test_install_command" # tries to alter out path
     "test_test_command" # tries to alter out path
     "test_setup" # tries to install using distutils
-  ]);
-
-  checkPhase = ''
-    py.test -k '${disabledTests}'
-  '';
+    "test_pep518" # pip exits with code 1
+    "test_dual_pep518" # pip exits with code 1
+    "test_isolated_env_trigger_reconfigure" # Regex pattern 'exit skbuild saving cmake spec' does not match 'exit skbuild running make'.
+    "test_hello_wheel" # [Errno 2] No such file or directory: '_skbuild/linux-x86_64-3.9/setuptools/bdist.linux-x86_64/wheel/helloModule.py'
+    # sdist contents differ, contains additional setup.py
+    "test_hello_sdist"
+    "test_manifest_in_sdist"
+    "test_sdist_with_symlinks"
+    # distutils.errors.DistutilsArgError: no commands supplied
+    "test_invalid_command"
+    "test_manifest_in_sdist"
+    "test_no_command"
+  ];
 
   meta = with lib; {
     description = "Improved build system generator for CPython C/C++/Fortran/Cython extensions";
-    homepage = "http://scikit-build.org/";
+    homepage = "https://github.com/scikit-build/scikit-build";
     license = with licenses; [ mit bsd2 ]; # BSD due to reuses of PyNE code
     maintainers = with maintainers; [ FlorianFranzen ];
   };
diff --git a/pkgs/development/python-modules/scikit-image/default.nix b/pkgs/development/python-modules/scikit-image/default.nix
index b06c1cb5db48b..45239f64fbef9 100644
--- a/pkgs/development/python-modules/scikit-image/default.nix
+++ b/pkgs/development/python-modules/scikit-image/default.nix
@@ -16,89 +16,98 @@
 , imageio
 , tifffile
 , pytestCheckHook
+, doCheck ? false
 }:
 
 let
   installedPackageRoot = "${builtins.placeholder "out"}/${python.sitePackages}";
-in buildPythonPackage rec {
-  pname = "scikit-image";
-  version = "0.18.3";
+  self = buildPythonPackage rec {
+    pname = "scikit-image";
+    version = "0.18.3";
 
-  src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0a2h3bw5rkk23k4r04qc9maccg00nddssd7lfsps8nhp5agk1vyh";
-  };
+    src = fetchFromGitHub {
+      owner = pname;
+      repo = pname;
+      rev = "v${version}";
+      sha256 = "0a2h3bw5rkk23k4r04qc9maccg00nddssd7lfsps8nhp5agk1vyh";
+    };
+
+    patches = [ ./add-testing-data.patch ];
 
-  patches = [ ./add-testing-data.patch ];
+    nativeBuildInputs = [ cython ];
 
-  nativeBuildInputs = [ cython ];
+    propagatedBuildInputs = [
+      cloudpickle
+      dask
+      imageio
+      matplotlib
+      networkx
+      numpy
+      pillow
+      pywavelets
+      scipy
+      six
+      tifffile
+    ];
 
-  propagatedBuildInputs = [
-    cloudpickle
-    dask
-    imageio
-    matplotlib
-    networkx
-    numpy
-    pillow
-    pywavelets
-    scipy
-    six
-    tifffile
-  ];
+    # test suite is very cpu intensive, move to passthru.tests
+    inherit doCheck;
+    checkInputs = [ pytestCheckHook ];
 
-  checkInputs = [ pytestCheckHook ];
+    # (1) The package has cythonized modules, whose .so libs will appear only in the wheel, i.e. in nix store;
+    # (2) To stop Python from importing the wrong directory, i.e. the one in the build dir, not the one in nix store, `skimage` dir should be removed or renamed;
+    # (3) Therefore, tests should be run on the installed package in nix store.
 
-  # (1) The package has cythonized modules, whose .so libs will appear only in the wheel, i.e. in nix store;
-  # (2) To stop Python from importing the wrong directory, i.e. the one in the build dir, not the one in nix store, `skimage` dir should be removed or renamed;
-  # (3) Therefore, tests should be run on the installed package in nix store.
+    # See e.g. https://discourse.nixos.org/t/cant-import-cythonized-modules-at-checkphase/14207 on why the following is needed.
+    preCheck = ''
+      rm -r skimage
+    '';
 
-  # See e.g. https://discourse.nixos.org/t/cant-import-cythonized-modules-at-checkphase/14207 on why the following is needed.
-  preCheck = ''
-    rm -r skimage
-  '';
+    disabledTestPaths = [
+      # Requires network access (actually some data is loaded via `skimage._shared.testing.fetch` in the global scope, which calls `pytest.skip` when a network is unaccessible, leading to a pytest collection error).
+      "${installedPackageRoot}/skimage/filters/rank/tests/test_rank.py"
+    ];
+    pytestFlagsArray = [ "${installedPackageRoot}" "--pyargs" "skimage" ] ++ builtins.map (testid: "--deselect=" + testid) ([
+      # These tests require network access
+      "skimage/data/test_data.py::test_skin"
+      "skimage/data/tests/test_data.py::test_skin"
+      "skimage/io/tests/test_io.py::test_imread_http_url"
+      "skimage/restoration/tests/test_rolling_ball.py::test_ndim"
+    ] ++ lib.optionals stdenv.isDarwin [
+      # Matplotlib tests are broken inside darwin sandbox
+      "skimage/feature/tests/test_util.py::test_plot_matches"
+      "skimage/filters/tests/test_thresholding.py::TestSimpleImage::test_try_all_threshold"
+      "skimage/io/tests/test_mpl_imshow.py::"
+    ]);
 
-  disabledTestPaths = [
-    # Requires network access (actually some data is loaded via `skimage._shared.testing.fetch` in the global scope, which calls `pytest.skip` when a network is unaccessible, leading to a pytest collection error).
-    "${installedPackageRoot}/skimage/filters/rank/tests/test_rank.py"
-  ];
-  pytestFlagsArray = [ "${installedPackageRoot}" "--pyargs" "skimage" ] ++ builtins.map (testid: "--deselect=" + testid) ([
-    # These tests require network access
-    "skimage/data/test_data.py::test_skin"
-    "skimage/data/tests/test_data.py::test_skin"
-    "skimage/io/tests/test_io.py::test_imread_http_url"
-    "skimage/restoration/tests/test_rolling_ball.py::test_ndim"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # Matplotlib tests are broken inside darwin sandbox
-    "skimage/feature/tests/test_util.py::test_plot_matches"
-    "skimage/filters/tests/test_thresholding.py::TestSimpleImage::test_try_all_threshold"
-    "skimage/io/tests/test_mpl_imshow.py::"
-  ]);
+    # Check cythonized modules
+    pythonImportsCheck = [
+      "skimage"
+      "skimage._shared"
+      "skimage.draw"
+      "skimage.feature"
+      "skimage.restoration"
+      "skimage.filters"
+      "skimage.future.graph"
+      "skimage.graph"
+      "skimage.io"
+      "skimage.measure"
+      "skimage.morphology"
+      "skimage.transform"
+      "skimage.util"
+      "skimage.segmentation"
+    ];
 
-  # Check cythonized modules
-  pythonImportsCheck = [
-    "skimage"
-    "skimage._shared"
-    "skimage.draw"
-    "skimage.feature"
-    "skimage.restoration"
-    "skimage.filters"
-    "skimage.future.graph"
-    "skimage.graph"
-    "skimage.io"
-    "skimage.measure"
-    "skimage.morphology"
-    "skimage.transform"
-    "skimage.util"
-    "skimage.segmentation"
-  ];
+    passthru.tests = {
+      all-tests = self.override { doCheck = true; };
+    };
 
-  meta = {
-    description = "Image processing routines for SciPy";
-    homepage = "https://scikit-image.org";
-    license = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [ yl3dy ];
+    meta = {
+      description = "Image processing routines for SciPy";
+      homepage = "https://scikit-image.org";
+      license = lib.licenses.bsd3;
+      maintainers = with lib.maintainers; [ yl3dy ];
+    };
   };
-}
+in
+  self
diff --git a/pkgs/development/python-modules/scikit-learn-extra/default.nix b/pkgs/development/python-modules/scikit-learn-extra/default.nix
index a91f4ed74f178..f198b49c7ad28 100644
--- a/pkgs/development/python-modules/scikit-learn-extra/default.nix
+++ b/pkgs/development/python-modules/scikit-learn-extra/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
   ];
   disabledTests = [
     "build"   # needs network connection
+    "test_all_estimators" # sklearn.exceptions.NotFittedError: Estimator fails to pass `check_is_fitted` even though it has been fit.
   ];
 
   # Check packages with cythonized modules
diff --git a/pkgs/development/python-modules/scikit-learn/default.nix b/pkgs/development/python-modules/scikit-learn/default.nix
index 7e2096c9b9ba6..82a85d7094130 100644
--- a/pkgs/development/python-modules/scikit-learn/default.nix
+++ b/pkgs/development/python-modules/scikit-learn/default.nix
@@ -78,8 +78,6 @@ buildPythonPackage rec {
     # https://github.com/scikit-learn/scikit-learn/issues/17582
     # Since we are overriding '-k' we need to include the 'disabledTests' from above manually.
     "-k" "'not (NuSVC and memmap) ${toString (lib.forEach disabledTests (t: "and not ${t}"))}'"
-
-    "-n" "$NIX_BUILD_CORES"
   ];
 
   preCheck = ''
diff --git a/pkgs/development/python-modules/scipy/default.nix b/pkgs/development/python-modules/scipy/default.nix
index 9c3b28e0a9aca..85708822cc2bb 100644
--- a/pkgs/development/python-modules/scipy/default.nix
+++ b/pkgs/development/python-modules/scipy/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "scipy";
-  version = "1.7.3";
+  version = "1.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ab5875facfdef77e0a47d5fd39ea178b58e60e454a4c85aa1e52fcb80db7babf";
+    sha256 = "sha256-MdTy1rckvJqY5Se1hJuKflib8epjDDOqVj7akSyf8L0=";
   };
 
   nativeBuildInputs = [ cython gfortran pythran ];
diff --git a/pkgs/development/python-modules/scmrepo/default.nix b/pkgs/development/python-modules/scmrepo/default.nix
index b68d15f3cac1e..93854478853d2 100644
--- a/pkgs/development/python-modules/scmrepo/default.nix
+++ b/pkgs/development/python-modules/scmrepo/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "scmrepo";
-  version = "0.0.16";
+  version = "0.0.18";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,8 +22,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "iterative";
     repo = pname;
-    rev = version;
-    hash = "sha256-gaZXQFZ1Vm8ruW42IXc6+fLA5856Oc0cGgtScwIr5f8=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-eMtYVdKLiIaagDB1OEdYge6+McchOZPBcuIKGMzyvQQ=";
   };
 
   propagatedBuildInputs = [
@@ -37,6 +37,11 @@ buildPythonPackage rec {
     pygtrie
   ];
 
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "asyncssh>=2.7.1,<2.9" "asyncssh>=2.7.1"
+  '';
+
   # Requires a running Docker instance
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/seabreeze/default.nix b/pkgs/development/python-modules/seabreeze/default.nix
index 06802a8a2ce15..6f048144dfa1f 100644
--- a/pkgs/development/python-modules/seabreeze/default.nix
+++ b/pkgs/development/python-modules/seabreeze/default.nix
@@ -4,7 +4,6 @@
 , cython
 , git
 , pkgconfig
-, pytest-runner
 , setuptools-scm
 , future
 , numpy
@@ -31,11 +30,15 @@ buildPythonPackage rec {
     leaveDotGit = true;
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace '"pytest-runner",' ""
+  '';
+
   nativeBuildInputs = [
     cython
     git
     pkgconfig
-    pytest-runner
     setuptools-scm
   ];
 
diff --git a/pkgs/development/python-modules/securetar/default.nix b/pkgs/development/python-modules/securetar/default.nix
new file mode 100644
index 0000000000000..68b25355744d7
--- /dev/null
+++ b/pkgs/development/python-modules/securetar/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, cryptography
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "securetar";
+  version = "2022.02.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "pvizeli";
+    repo = pname;
+    rev = version;
+    hash = "sha256-FwQp08jwcGh07zpHqRNoUUmeLZJh78wI8wCXySi3Tdc=";
+  };
+
+  propagatedBuildInputs = [
+    cryptography
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "securetar"
+  ];
+
+  meta = with lib; {
+    description = "Module to handle tarfile backups";
+    homepage = "https://github.com/pvizeli/securetar";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/sendgrid/default.nix b/pkgs/development/python-modules/sendgrid/default.nix
index aab6ab049da56..8462b9924edab 100644
--- a/pkgs/development/python-modules/sendgrid/default.nix
+++ b/pkgs/development/python-modules/sendgrid/default.nix
@@ -7,6 +7,7 @@
 , pythonOlder
 , pyyaml
 , starkbank-ecdsa
+, six
 , werkzeug
 }:
 
@@ -27,6 +28,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     python-http-client
     starkbank-ecdsa
+    six
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix
index 51e6c76de5db2..4cd80fbed8096 100644
--- a/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -28,6 +28,7 @@
 , pytest-forked
 , pytest-localserver
 , pytestCheckHook
+, pythonOlder
 , rq
 , sanic
 , sanic-testing
@@ -40,14 +41,16 @@
 
 buildPythonPackage rec {
   pname = "sentry-sdk";
-  version = "1.5.8";
+  version = "1.5.10";
   format = "setuptools";
 
+  disabled = pythonOlder "3.7";
+
   src = fetchFromGitHub {
     owner = "getsentry";
     repo = "sentry-python";
     rev = version;
-    sha256 = "sha256-28MkwQog+Abk1PSDPWbah650YATiGCBWaTbFO52KgzY=";
+    hash = "sha256-f5V2fMvPpyz+pU08Owzxq9xI48ZeZpH5SmUXtshqMm0=";
   };
 
   propagatedBuildInputs = [
@@ -56,10 +59,12 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
+    aiohttp
     asttokens
     blinker
     botocore
     bottle
+    celery
     chalice
     django
     executing
@@ -67,25 +72,22 @@ buildPythonPackage rec {
     falcon
     flask_login
     gevent
+    httpx
     jsonschema
     pure-eval
+    pyramid
+    pyspark
     pytest-django
     pytest-forked
     pytest-localserver
     pytestCheckHook
     rq
+    sanic
+    sanic-testing
     sqlalchemy
     tornado
     trytond
     werkzeug
-  ] ++ lib.optionals isPy3k [
-    aiohttp
-    celery
-    httpx
-    pyramid
-    pyspark
-    sanic
-    sanic-testing
   ];
 
   doCheck = !stdenv.isDarwin;
@@ -112,6 +114,8 @@ buildPythonPackage rec {
     "test_auto_session_tracking_with_aggregates"
     # Network requests to public web
     "test_crumb_capture"
+    # TypeError: cannot unpack non-iterable TestResponse object
+    "test_rpc_error_page"
   ];
 
   disabledTestPaths = [
@@ -126,6 +130,18 @@ buildPythonPackage rec {
     "tests/integrations/chalice/"
     # broken since rq-1.10.1: https://github.com/getsentry/sentry-python/issues/1274
     "tests/integrations/rq/"
+    # broken since pytest 7.0.1; AssertionError: previous item was not torn down properly
+    "tests/utils/test_contextvars.py"
+    # broken since Flask and Werkzeug update to 2.1.0 (different error messages)
+    "tests/integrations/flask/test_flask.py"
+    "tests/integrations/bottle/test_bottle.py"
+    "tests/integrations/django/test_basic.py"
+    "tests/integrations/pyramid/test_pyramid.py"
+  ]
+  # test crashes on aarch64
+  ++ lib.optionals (stdenv.buildPlatform != "x86_64-linux") [
+    "tests/test_transport.py"
+    "tests/integrations/threading/test_threading.py"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/servefile/default.nix b/pkgs/development/python-modules/servefile/default.nix
new file mode 100644
index 0000000000000..e9d87ca912730
--- /dev/null
+++ b/pkgs/development/python-modules/servefile/default.nix
@@ -0,0 +1,43 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, lib
+, pyopenssl
+, pytestCheckHook
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "servefile";
+  version = "0.5.3";
+
+  src = fetchFromGitHub {
+    owner = "sebageek";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-/ZEMZIH/ImuZ2gh5bwB0FlaWnG/ELxfBGEJ2SuNSEb8=";
+  };
+
+  propagatedBuildInputs = [ pyopenssl ];
+
+  checkInputs = [ pytestCheckHook requests ];
+  # Test attempts to connect to a port on localhost which fails in nix build
+  # environment.
+  disabledTests = [
+    "test_abort_download"
+    "test_big_download"
+    "test_https_big_download"
+    "test_https"
+    "test_redirect_and_download"
+    "test_specify_port"
+    "test_upload_size_limit"
+    "test_upload"
+  ];
+  pythonImportsCheck = [ "servefile" ];
+
+  meta = with lib; {
+    description = "Serve files from shell via a small HTTP server";
+    homepage = "https://github.com/sebageek/servefile";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ samuela ];
+  };
+}
diff --git a/pkgs/development/python-modules/service_identity/default.nix b/pkgs/development/python-modules/service_identity/default.nix
index d7c37e7c433bf..8ac3b52d58c79 100644
--- a/pkgs/development/python-modules/service_identity/default.nix
+++ b/pkgs/development/python-modules/service_identity/default.nix
@@ -7,6 +7,7 @@
 , ipaddress
 , pyasn1
 , pyasn1-modules
+, six
 , pytestCheckHook
 , pythonOlder
 }:
@@ -28,6 +29,7 @@ buildPythonPackage rec {
     idna
     pyasn1
     pyasn1-modules
+    six
   ] ++ lib.optionals (pythonOlder "3.3") [
     ipaddress
   ];
diff --git a/pkgs/development/python-modules/setupmeta/default.nix b/pkgs/development/python-modules/setupmeta/default.nix
index c42565082cfd2..d24c8263e9a14 100644
--- a/pkgs/development/python-modules/setupmeta/default.nix
+++ b/pkgs/development/python-modules/setupmeta/default.nix
@@ -7,6 +7,7 @@
 , pytestCheckHook
 , pythonOlder
 , setuptools-scm
+, six
 }:
 
 buildPythonPackage rec {
@@ -36,6 +37,7 @@ buildPythonPackage rec {
     mock
     pep440
     pytestCheckHook
+    six
   ];
 
   preCheck = ''
@@ -45,6 +47,7 @@ buildPythonPackage rec {
   disabledTests = [
     # Tests want to scan site-packages
     "test_check_dependencies"
+    "test_clean"
     "test_scenario"
     "test_git_versioning"
   ];
diff --git a/pkgs/development/python-modules/setuptools-rust/default.nix b/pkgs/development/python-modules/setuptools-rust/default.nix
index 2ab609c7d0c1e..24c60839fe0bd 100644
--- a/pkgs/development/python-modules/setuptools-rust/default.nix
+++ b/pkgs/development/python-modules/setuptools-rust/default.nix
@@ -12,17 +12,17 @@
 
 buildPythonPackage rec {
   pname = "setuptools-rust";
-  version = "1.1.2";
+  version = "1.2.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a0adb9b503c0ffc4e8fe80b7c617898cefa78049983aaaea7f747e153a3e65d1";
+    sha256 = "sha256-CkraR56Mfj2L18tW4aKazCsruYwjJQUbDNy1fX8Fbeg=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [ semantic-version setuptools toml typing-extensions ];
+  propagatedBuildInputs = [ semantic-version setuptools typing-extensions ];
 
   doCheck = false;
   pythonImportsCheck = [ "setuptools_rust" ];
diff --git a/pkgs/development/python-modules/setuptools/default.nix b/pkgs/development/python-modules/setuptools/default.nix
index e748334b5ad16..1d9592022d16f 100644
--- a/pkgs/development/python-modules/setuptools/default.nix
+++ b/pkgs/development/python-modules/setuptools/default.nix
@@ -10,7 +10,7 @@
 
 let
   pname = "setuptools";
-  version = "57.2.0";
+  version = "61.2.0";
 
   # Create an sdist of setuptools
   sdist = stdenv.mkDerivation rec {
@@ -20,12 +20,13 @@ let
       owner = "pypa";
       repo = pname;
       rev = "v${version}";
-      sha256 = "sha256-zFmndVoATNxfvDsacY+gj5bzIbbd/8ldbsJj4qOawTA=";
+      hash = "sha256-Cgz3uA8U7A1lOZNuj1EYZVViZ3aL6VjcAno8GYQUufk=";
       name = "${pname}-${version}-source";
     };
 
     patches = [
       ./tag-date.patch
+      ./setuptools-distutils-C++.patch
     ];
 
     buildPhase = ''
diff --git a/pkgs/development/python-modules/setuptools/setuptools-distutils-C++.patch b/pkgs/development/python-modules/setuptools/setuptools-distutils-C++.patch
new file mode 100644
index 0000000000000..43601d8b6eb19
--- /dev/null
+++ b/pkgs/development/python-modules/setuptools/setuptools-distutils-C++.patch
@@ -0,0 +1,180 @@
+diff --git a/setuptools/_distutils/cygwinccompiler.py b/setuptools/_distutils/cygwinccompiler.py
+index c5c86d8f..b879e447 100644
+--- a/setuptools/_distutils/cygwinccompiler.py
++++ b/setuptools/_distutils/cygwinccompiler.py
+@@ -124,14 +124,19 @@ class CygwinCCompiler(UnixCCompiler):
+         self.cxx = os.environ.get('CXX', 'g++')
+ 
+         self.linker_dll = self.cc
++        self.linker_dll_cxx = self.cxx
+         shared_option = "-shared"
+ 
+         self.set_executables(compiler='%s -mcygwin -O -Wall' % self.cc,
+                              compiler_so='%s -mcygwin -mdll -O -Wall' % self.cc,
+                              compiler_cxx='%s -mcygwin -O -Wall' % self.cxx,
++                             compiler_so_cxx='%s -mcygwin -mdll -O -Wall' % self.cxx,
+                              linker_exe='%s -mcygwin' % self.cc,
+                              linker_so=('%s -mcygwin %s' %
+-                                        (self.linker_dll, shared_option)))
++                                        (self.linker_dll, shared_option)),
++                             linker_exe_cxx='%s -mcygwin' % self.cxx,
++                             linker_so_cxx=('%s -mcygwin %s' %
++                                            (self.linker_dll_cxx, shared_option)))
+ 
+         # Include the appropriate MSVC runtime library if Python was built
+         # with MSVC 7.0 or later.
+@@ -162,8 +167,12 @@ class CygwinCCompiler(UnixCCompiler):
+                 raise CompileError(msg)
+         else: # for other files use the C-compiler
+             try:
+-                self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
+-                           extra_postargs)
++                if self.detect_language(src) == 'c++':
++                    self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
++                               extra_postargs)
++                else:
++                    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
++                               extra_postargs)
+             except DistutilsExecError as msg:
+                 raise CompileError(msg)
+ 
+@@ -279,9 +288,13 @@ class Mingw32CCompiler(CygwinCCompiler):
+         self.set_executables(compiler='%s -O -Wall' % self.cc,
+                              compiler_so='%s -mdll -O -Wall' % self.cc,
+                              compiler_cxx='%s -O -Wall' % self.cxx,
++                             compiler_so_cxx='%s -mdll -O -Wall' % self.cxx,
+                              linker_exe='%s' % self.cc,
+                              linker_so='%s %s'
+-                                        % (self.linker_dll, shared_option))
++                                        % (self.linker_dll, shared_option),
++                             linker_exe_cxx='%s' % self.cxx,
++                             linker_so_cxx='%s %s'
++                                        % (self.linker_dll_cxx, shared_option))
+ 
+         # Maybe we should also append -mthreads, but then the finished
+         # dlls need another dll (mingwm10.dll see Mingw32 docs)
+diff --git a/setuptools/_distutils/sysconfig.py b/setuptools/_distutils/sysconfig.py
+index 9fad3835..889e2595 100644
+--- a/setuptools/_distutils/sysconfig.py
++++ b/setuptools/_distutils/sysconfig.py
+@@ -216,9 +216,11 @@ def customize_compiler(compiler):
+                 _osx_support.customize_compiler(_config_vars)
+                 _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
+ 
+-        (cc, cxx, cflags, ccshared, ldshared, shlib_suffix, ar, ar_flags) = \
+-            get_config_vars('CC', 'CXX', 'CFLAGS',
+-                            'CCSHARED', 'LDSHARED', 'SHLIB_SUFFIX', 'AR', 'ARFLAGS')
++        (cc, cxx, cflags, ccshared, ldshared, ldcxxshared, shlib_suffix, ar, ar_flags) = \
++            get_config_vars('CC', 'CXX', 'CFLAGS', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
++                            'SHLIB_SUFFIX', 'AR', 'ARFLAGS')
++
++        cxxflags = cflags
+ 
+         if 'CC' in os.environ:
+             newcc = os.environ['CC']
+@@ -232,19 +234,27 @@ def customize_compiler(compiler):
+             cxx = os.environ['CXX']
+         if 'LDSHARED' in os.environ:
+             ldshared = os.environ['LDSHARED']
++        if 'LDCXXSHARED' in os.environ:
++            ldcxxshared = os.environ['LDCXXSHARED']
+         if 'CPP' in os.environ:
+             cpp = os.environ['CPP']
+         else:
+             cpp = cc + " -E"           # not always
+         if 'LDFLAGS' in os.environ:
+             ldshared = ldshared + ' ' + os.environ['LDFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
+         if 'CFLAGS' in os.environ:
+-            cflags = cflags + ' ' + os.environ['CFLAGS']
++            cflags = os.environ['CFLAGS']
+             ldshared = ldshared + ' ' + os.environ['CFLAGS']
++        if 'CXXFLAGS' in os.environ:
++            cxxflags = os.environ['CXXFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
+         if 'CPPFLAGS' in os.environ:
+             cpp = cpp + ' ' + os.environ['CPPFLAGS']
+             cflags = cflags + ' ' + os.environ['CPPFLAGS']
++            cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
+             ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
+         if 'AR' in os.environ:
+             ar = os.environ['AR']
+         if 'ARFLAGS' in os.environ:
+@@ -253,13 +263,17 @@ def customize_compiler(compiler):
+             archiver = ar + ' ' + ar_flags
+ 
+         cc_cmd = cc + ' ' + cflags
++        cxx_cmd = cxx + ' ' + cxxflags
+         compiler.set_executables(
+             preprocessor=cpp,
+             compiler=cc_cmd,
+             compiler_so=cc_cmd + ' ' + ccshared,
+-            compiler_cxx=cxx,
++            compiler_cxx=cxx_cmd,
++            compiler_so_cxx=cxx_cmd + ' ' + ccshared,
+             linker_so=ldshared,
+             linker_exe=cc,
++            linker_so_cxx=ldcxxshared,
++            linker_exe_cxx=cxx,
+             archiver=archiver)
+ 
+         if 'RANLIB' in os.environ and compiler.executables.get('ranlib', None):
+diff --git a/setuptools/_distutils/unixccompiler.py b/setuptools/_distutils/unixccompiler.py
+index 715408f5..6125a1eb 100644
+--- a/setuptools/_distutils/unixccompiler.py
++++ b/setuptools/_distutils/unixccompiler.py
+@@ -110,14 +110,17 @@ class UnixCCompiler(CCompiler):
+     # are pretty generic; they will probably have to be set by an outsider
+     # (eg. using information discovered by the sysconfig about building
+     # Python extensions).
+-    executables = {'preprocessor' : None,
+-                   'compiler'     : ["cc"],
+-                   'compiler_so'  : ["cc"],
+-                   'compiler_cxx' : ["cc"],
+-                   'linker_so'    : ["cc", "-shared"],
+-                   'linker_exe'   : ["cc"],
+-                   'archiver'     : ["ar", "-cr"],
+-                   'ranlib'       : None,
++    executables = {'preprocessor'    : None,
++                   'compiler'        : ["cc"],
++                   'compiler_so'     : ["cc"],
++                   'compiler_cxx'    : ["c++"],
++                   'compiler_so_cxx' : ["c++"],
++                   'linker_so'       : ["cc", "-shared"],
++                   'linker_exe'      : ["cc"],
++                   'linker_so_cxx'   : ["c++", "-shared"],
++                   'linker_exe_cxx'  : ["c++"],
++                   'archiver'        : ["ar", "-cr"],
++                   'ranlib'          : None,
+                   }
+ 
+     if sys.platform[:6] == "darwin":
+@@ -169,9 +172,15 @@ class UnixCCompiler(CCompiler):
+     def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
+         compiler_so = compiler_fixup(
+             self.compiler_so, cc_args + extra_postargs)
++        compiler_so_cxx = compiler_fixup(
++            self.compiler_so_cxx, cc_args + extra_postargs)
+         try:
+-            self.spawn(compiler_so + cc_args + [src, '-o', obj] +
+-                       extra_postargs)
++            if self.detect_language(src) == 'c++':
++                self.spawn(compiler_so_cxx + cc_args + [ src, '-o', obj] +
++                           extra_postargs)
++            else:
++                self.spawn(compiler_so + cc_args + [src, '-o', obj] +
++                           extra_postargs)
+         except DistutilsExecError as msg:
+             raise CompileError(msg)
+ 
+@@ -233,7 +242,8 @@ class UnixCCompiler(CCompiler):
+                 # building an executable or linker_so (with shared options)
+                 # when building a shared library.
+                 building_exe = target_desc == CCompiler.EXECUTABLE
+-                linker = (self.linker_exe if building_exe else self.linker_so)[:]
++                linker = (self.linker_exe if building_exe else (self.linker_so_cxx if
++                              target_lang == "c++" else self.linker_so))[:]
+ 
+                 if target_lang == "c++" and self.compiler_cxx:
+                     env, linker_ne = _split_env(linker)
diff --git a/pkgs/development/python-modules/seventeentrack/default.nix b/pkgs/development/python-modules/seventeentrack/default.nix
new file mode 100644
index 0000000000000..8e70b4af51d4d
--- /dev/null
+++ b/pkgs/development/python-modules/seventeentrack/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, aiohttp
+, aresponses
+, async-timeout
+, attrs
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, pytz
+}:
+
+buildPythonPackage rec {
+  pname = "seventeentrack";
+  version = "2022.04.6";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "McSwindler";
+    repo = pname;
+    rev = version;
+    hash = "sha256-vMdRXcd0es/LjgsVyWItSLFzlSTEa3oaA6lr/NL4i8U=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+    attrs
+    pytz
+  ];
+
+  checkInputs = [
+    aresponses
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    # Ignore the examples directory as the files are prefixed with test_
+    "examples/"
+  ];
+
+  pythonImportsCheck = [
+    "seventeentrack"
+  ];
+
+  meta = with lib; {
+    description = "Python library to track package info from 17track.com";
+    homepage = "https://github.com/McSwindler/seventeentrack";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/shapely/default.nix b/pkgs/development/python-modules/shapely/default.nix
index 818cce6a5670d..8d5d0d2aa4f5b 100644
--- a/pkgs/development/python-modules/shapely/default.nix
+++ b/pkgs/development/python-modules/shapely/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "Shapely";
-  version = "1.8.0";
+  version = "1.8.1.post1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "177g8wxsgnphhhn4634n6ca1qrk462ijqlznpj5ry6d49ghpwc7m";
+    sha256 = "sha256-k/8G/wX74r6EO5PHsa2CkuVuZlugG0cI91rop1eXLp8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/shapely/library-paths.patch b/pkgs/development/python-modules/shapely/library-paths.patch
index d55630be9c109..484af67ef68cc 100644
--- a/pkgs/development/python-modules/shapely/library-paths.patch
+++ b/pkgs/development/python-modules/shapely/library-paths.patch
@@ -1,8 +1,8 @@
 diff --git a/shapely/geos.py b/shapely/geos.py
-index 4619732..1abdb5e 100644
+index 13ab835..1abdb5e 100644
 --- a/shapely/geos.py
 +++ b/shapely/geos.py
-@@ -55,148 +55,21 @@ def load_dll(libname, fallbacks=None, mode=DEFAULT_MODE):
+@@ -55,174 +55,21 @@ def load_dll(libname, fallbacks=None, mode=DEFAULT_MODE):
              "Could not find lib {} or load any of its variants {}.".format(
                  libname, fallbacks or []))
  
@@ -61,16 +61,23 @@ index 4619732..1abdb5e 100644
 -
 -elif sys.platform == 'darwin':
 -    # Test to see if we have a delocated wheel with a GEOS dylib.
--    geos_whl_dylib = os.path.abspath(os.path.join(os.path.dirname(
--        __file__), '.dylibs/libgeos_c.1.dylib'))
+-    dylib_path = os.path.abspath(
+-        os.path.join(os.path.dirname(__file__), ".dylibs/*.dylib")
+-    )
+-    LOG.debug("Formed path for globbing: dylib_path=%r", dylib_path)
+-
+-    geos_whl_dylib = glob.glob(dylib_path)
+-    LOG.debug("Globbed: geos_whl_dylib=%r", geos_whl_dylib)
 -
--    if os.path.exists(geos_whl_dylib):
+-    if len(geos_whl_dylib) > 0:
 -        handle = CDLL(None)
 -        if hasattr(handle, "initGEOS_r"):
 -            LOG.debug("GEOS already loaded")
 -            _lgeos = handle
 -        else:
--            _lgeos = CDLL(geos_whl_dylib)
+-            geos_whl_dylib = sorted(geos_whl_dylib)
+-            CDLL(geos_whl_dylib[0])
+-            _lgeos = CDLL(geos_whl_dylib[-1])
 -            LOG.debug("Found GEOS DLL: %r, using it.", _lgeos)
 -
 -    elif exists_conda_env():
@@ -112,25 +119,44 @@ index 4619732..1abdb5e 100644
 -elif sys.platform == 'win32':
 -    _conda_dll_path = os.path.join(sys.prefix, 'Library', 'bin', 'geos_c.dll')
 -    if exists_conda_env() and os.path.exists(_conda_dll_path):
--        # conda package.
 -        _lgeos = CDLL(_conda_dll_path)
 -    else:
--        try:
--            egg_dlls = os.path.abspath(
--                os.path.join(os.path.dirname(__file__), 'DLLs'))
--            if hasattr(sys, '_MEIPASS'):
--                wininst_dlls = sys._MEIPASS
--            elif hasattr(sys, "frozen"):
--                wininst_dlls = os.path.normpath(
--                    os.path.abspath(sys.executable + '../../DLLS'))
--            else:
--                wininst_dlls = os.path.abspath(os.__file__ + "../../../DLLs")
--            original_path = os.environ['PATH']
--            os.environ['PATH'] = "%s;%s;%s" % \
--                (egg_dlls, wininst_dlls, original_path)
--            _lgeos = load_dll("geos_c.dll")
--        except (ImportError, WindowsError, OSError):
--            raise
+-        geos_whl_dll = glob.glob(
+-            os.path.abspath(
+-                os.path.join(
+-                    os.path.dirname(__file__), "..", "Shapely.libs", "geos*.dll"
+-                )
+-            )
+-        )
+-
+-        if len(geos_whl_dll) > 0:
+-            geos_whl_dll = sorted(geos_whl_dll)
+-            # CDLL(geos_whl_so[0])
+-            _lgeos = CDLL(geos_whl_dll[-1])
+-            LOG.debug("Found GEOS DLL: %r, using it.", _lgeos)
+-        else:
+-            try:
+-                egg_dlls = os.path.abspath(
+-                    os.path.join(os.path.dirname(__file__), "DLLs")
+-                )
+-                if hasattr(sys, "_MEIPASS"):
+-                    wininst_dlls = sys._MEIPASS
+-                elif hasattr(sys, "frozen"):
+-                    wininst_dlls = os.path.normpath(
+-                        os.path.abspath(sys.executable + "../../DLLS")
+-                    )
+-                else:
+-                    wininst_dlls = os.path.abspath(os.__file__ + "../../../DLLs")
+-                original_path = os.environ["PATH"]
+-                os.environ["PATH"] = "%s;%s;%s" % (
+-                    egg_dlls,
+-                    wininst_dlls,
+-                    original_path,
+-                )
+-                _lgeos = load_dll("geos_c.dll")
+-
+-            except (ImportError, WindowsError, OSError):
+-                raise
 -
 -        def free(m):
 -            try:
diff --git a/pkgs/development/python-modules/shiboken2/default.nix b/pkgs/development/python-modules/shiboken2/default.nix
index 11461a9545cd2..2a7e7613dfb81 100644
--- a/pkgs/development/python-modules/shiboken2/default.nix
+++ b/pkgs/development/python-modules/shiboken2/default.nix
@@ -34,6 +34,6 @@ stdenv.mkDerivation {
     license = with licenses; [ gpl2 lgpl21 ];
     homepage = "https://wiki.qt.io/Qt_for_Python";
     maintainers = with maintainers; [ gebner ];
-    broken = stdenv.isDarwin;
+    broken = stdenv.isDarwin || python.isPy310;
   };
 }
diff --git a/pkgs/development/python-modules/shiv/default.nix b/pkgs/development/python-modules/shiv/default.nix
new file mode 100644
index 0000000000000..14cb688be4643
--- /dev/null
+++ b/pkgs/development/python-modules/shiv/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, lib
+, buildPythonPackage
+, fetchPypi
+, click
+, pip
+, setuptools
+, wheel
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "shiv";
+  version = "1.0.1";
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "ec16095a0565906536af7f5e57771e9ae7a061b646ed63ad66ebbc70c30f4d2a";
+  };
+
+  propagatedBuildInputs = [ click pip setuptools wheel ];
+
+  pythonImportsCheck = [ "shiv" ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Command line utility for building fully self contained Python zipapps";
+    homepage = "https://github.com/linkedin/shiv";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/pkgs/development/python-modules/shtab/default.nix b/pkgs/development/python-modules/shtab/default.nix
index 78e160058b238..4051378d06892 100644
--- a/pkgs/development/python-modules/shtab/default.nix
+++ b/pkgs/development/python-modules/shtab/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "shtab";
-  version = "1.5.3";
+  version = "1.5.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Wuc4m3VdOGEcevYXUpbL4gTvyW9t13pj57zPYdqx0UY=";
+    hash = "sha256-MYLAQSz55913fOhRnH+Y9xugOdfO43gkavitazIgeqg=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/simple-salesforce/default.nix b/pkgs/development/python-modules/simple-salesforce/default.nix
index d2b36af12a3ba..e9c054bdd4ec1 100644
--- a/pkgs/development/python-modules/simple-salesforce/default.nix
+++ b/pkgs/development/python-modules/simple-salesforce/default.nix
@@ -4,24 +4,30 @@
 , authlib
 , requests
 , nose
+, pythonOlder
 , pytz
 , responses
+, zeep
 }:
 
 buildPythonPackage rec {
   pname = "simple-salesforce";
-  version = "1.11.4";
+  version = "1.11.6";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "17d6g7zfhlgd2n4mimjarl2x4hl7ww2lb4izidlns1hzqm8igg4y";
+    sha256 = "sha256-/uaFEQnilcelHKjbmrnyLm5Mzj2V8P4oEH+cgJn+KvI=";
   };
 
   propagatedBuildInputs = [
     authlib
     requests
+    zeep
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/simplejson/default.nix b/pkgs/development/python-modules/simplejson/default.nix
index 1e6def5ae78a6..74530b3fb830c 100644
--- a/pkgs/development/python-modules/simplejson/default.nix
+++ b/pkgs/development/python-modules/simplejson/default.nix
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    rev = "v${version}";
+    rev = "refs/tags/v${version}";
     sha256 = "1irlp5sakbdfcf717qmrx0r9rjlmwk0vza6zm3y55d32zw5c1cxg";
   };
 
diff --git a/pkgs/development/python-modules/sip/default.nix b/pkgs/development/python-modules/sip/default.nix
index 6904714a60c78..d6ee1e76f5480 100644
--- a/pkgs/development/python-modules/sip/default.nix
+++ b/pkgs/development/python-modules/sip/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "sip";
-  version = "6.5.0";
+  version = "6.5.1";
 
   src = fetchPypi {
     pname = "sip";
     inherit version;
-    sha256 = "a1cf8431a8eb9392b3ff6dc61d832d0447bfdcae5b3e4256a5fa74dbc25b0734";
+    sha256 = "sha256-IE8CQNuJmadJ1jiph7NRhhhD5pI5uBHsPRiBQSw3BqY=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/slicerator/default.nix b/pkgs/development/python-modules/slicerator/default.nix
index 191159a648ec0..a1240f47c4e80 100644
--- a/pkgs/development/python-modules/slicerator/default.nix
+++ b/pkgs/development/python-modules/slicerator/default.nix
@@ -2,20 +2,21 @@
 , buildPythonPackage
 , fetchPypi
 , python
-, six
+, pythonOlder
 }:
 
 buildPythonPackage rec {
-  version = "1.0.0";
   pname = "slicerator";
+  version = "1.1.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "18e60393e6765ca96986f801bbae62a617a1eba6ed57784e61b165ffc7dc1848";
+    hash = "sha256-RAEKf1zYdoDAchO1yr6B0ftxJSlilD5Tc+59FGBdYEY=";
   };
 
-  propagatedBuildInputs = [ six ];
-
   checkPhase = ''
     ${python.interpreter} run_tests.py
   '';
@@ -24,9 +25,9 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    homepage = "https://github.com/soft-matter/slicerator";
     description = "A lazy-loading, fancy-sliceable iterable";
+    homepage = "https://github.com/soft-matter/slicerator";
     license = licenses.bsdOriginal;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/slither-analyzer/default.nix b/pkgs/development/python-modules/slither-analyzer/default.nix
index 8eaf442fb5de8..d3295cbb1f8b6 100644
--- a/pkgs/development/python-modules/slither-analyzer/default.nix
+++ b/pkgs/development/python-modules/slither-analyzer/default.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenv
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , makeWrapper
 , pythonOlder
 , crytic-compile
@@ -13,12 +13,16 @@
 
 buildPythonPackage rec {
   pname = "slither-analyzer";
-  version = "0.8.2";
-  disabled = pythonOlder "3.6";
+  version = "0.8.3";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-77045eB7KvHBb0j61qz4zJTtEprg4/aH6MrPlQY1wiM=";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "crytic";
+    repo = "slither";
+    rev = version;
+    sha256 = "sha256-Kh5owlkRB9hDlfIRiS+aNFe4YtZj38CLeE3Fe+R7diM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/slixmpp/default.nix b/pkgs/development/python-modules/slixmpp/default.nix
index 4743639c43d1c..375f910e5f844 100644
--- a/pkgs/development/python-modules/slixmpp/default.nix
+++ b/pkgs/development/python-modules/slixmpp/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "slixmpp";
-  version = "1.8.1";
+  version = "1.8.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-QgTIC+4JtAD9nnS+fJKZwF0aJEIrFmPHkYg8cPgXmcA=";
+    hash = "sha256-U7lD2iVy2gS5Ktop4PVKg+cUbIg4MJt+m6tH5aOb1Y4=";
   };
 
   propagatedBuildInputs = [
@@ -44,6 +44,7 @@ buildPythonPackage rec {
   disabledTestPaths = [
     # Exclude live tests
     "tests/live_test.py"
+    "tests/test_xep_0454.py"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/smbprotocol/default.nix b/pkgs/development/python-modules/smbprotocol/default.nix
index b5d826c8f8efb..562346b1a476f 100644
--- a/pkgs/development/python-modules/smbprotocol/default.nix
+++ b/pkgs/development/python-modules/smbprotocol/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "smbprotocol";
-  version = "1.8.3";
+  version = "1.9.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "jborean93";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-m9C+uzwrEOcbkvBQ3Z+to2BsX2i7cLnUiV/+L7hMUdE=";
+    sha256 = "sha256-u3brP3WsnoqRy3R0OQQkIbq+avS7nemx9GKpvTq+vxg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/social-auth-core/default.nix b/pkgs/development/python-modules/social-auth-core/default.nix
index ede138218e010..667c4ec4245a9 100644
--- a/pkgs/development/python-modules/social-auth-core/default.nix
+++ b/pkgs/development/python-modules/social-auth-core/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , requests
 , oauthlib
-, requests_oauthlib
+, requests-oauthlib
 , pyjwt
 , cryptography
 , defusedxml
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     requests
     oauthlib
-    requests_oauthlib
+    requests-oauthlib
     pyjwt
     cryptography
     defusedxml
diff --git a/pkgs/development/python-modules/socksio/default.nix b/pkgs/development/python-modules/socksio/default.nix
new file mode 100644
index 0000000000000..5d42ed6e8ecc5
--- /dev/null
+++ b/pkgs/development/python-modules/socksio/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonAtLeast
+, flit-core
+, pytestCheckHook
+}:
+
+let
+  pname = "socksio";
+  version = "1.0.0";
+in
+buildPythonPackage {
+  inherit pname version;
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-+IvrPaW1w4uYkEad5n0MsPnUlLeLEGyhhF+WwQuRxKw=";
+  };
+
+  nativeBuildInputs = [
+    flit-core
+  ];
+
+  # remove coverage configuration
+  preCheck = ''
+    rm pytest.ini
+  '';
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Sans-I/O implementation of SOCKS4, SOCKS4A, and SOCKS5";
+    homepage = "https://github.com/sethmlarson/socksio";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/sortedcontainers/default.nix b/pkgs/development/python-modules/sortedcontainers/default.nix
index 8920336f8db81..4edd68f1f07db 100644
--- a/pkgs/development/python-modules/sortedcontainers/default.nix
+++ b/pkgs/development/python-modules/sortedcontainers/default.nix
@@ -1,24 +1,39 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
+, pytestCheckHook
 }:
 
-buildPythonPackage rec {
-  pname = "sortedcontainers";
-  version = "2.4.0";
+let
+  sortedcontainers = buildPythonPackage rec {
+    pname = "sortedcontainers";
+    version = "2.4.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88";
-  };
+    src = fetchFromGitHub {
+      owner = "grantjenks";
+      repo = "python-sortedcontainers";
+      rev = "v${version}";
+      sha256 = "sha256-YRbSM2isWi7AzfquFvuZBlpEMNUnBJTBLBn0/XYVHKQ=";
+    };
+
+    doCheck = false;
+
+    checkInputs = [
+      pytestCheckHook
+    ];
+
+    pythonImportsCheck = [ "sortedcontainers" ];
 
-  # pypi tarball does not come with tests
-  doCheck = false;
+    passthru.tests = {
+      pytest = sortedcontainers.overridePythonAttrs (_: { doCheck = true; });
+    };
 
-  meta = {
-    description = "Python Sorted Container Types: SortedList, SortedDict, and SortedSet";
-    homepage = "http://www.grantjenks.com/docs/sortedcontainers/";
-    license = lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ costrouc ];
+    meta = with lib; {
+      description = "Python Sorted Container Types: SortedList, SortedDict, and SortedSet";
+      homepage = "https://grantjenks.com/docs/sortedcontainers/";
+      license = licenses.asl20;
+      maintainers = with maintainers; [ SuperSandro2000 ];
+    };
   };
-}
+in
+sortedcontainers
diff --git a/pkgs/development/python-modules/spacy-transformers/default.nix b/pkgs/development/python-modules/spacy-transformers/default.nix
index 2f70732caa316..2a81a5bce083b 100644
--- a/pkgs/development/python-modules/spacy-transformers/default.nix
+++ b/pkgs/development/python-modules/spacy-transformers/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "spacy-transformers";
-  version = "1.1.3";
+  version = "1.1.5";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f4f553d3d2a065147a8c1292b5d9adf050c0f78dd15bb05c9614341cf88c5574";
+    sha256 = "sha256-nxbmnFyHptbe5M7rQi2ECGoBpxUuutdCtY20eHsGDPI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/spacy/default.nix b/pkgs/development/python-modules/spacy/default.nix
index 5e3bc6aac8b75..41e6a8cc37c9c 100644
--- a/pkgs/development/python-modules/spacy/default.nix
+++ b/pkgs/development/python-modules/spacy/default.nix
@@ -31,13 +31,13 @@
 
 buildPythonPackage rec {
   pname = "spacy";
-  version = "3.2.3";
+  version = "3.2.4";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-JdAz/Ae4+/yb3Te3cLilhtxBTb1gMShEmvMldqOJFnM=";
+    sha256 = "sha256-PkxvKY1UBEWC2soRQrCC7jiDG7PXu5MdLuYB6Ljc5k8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sparqlwrapper/default.nix b/pkgs/development/python-modules/sparqlwrapper/default.nix
index 41c11172d9bf0..0660b8a403ce0 100644
--- a/pkgs/development/python-modules/sparqlwrapper/default.nix
+++ b/pkgs/development/python-modules/sparqlwrapper/default.nix
@@ -1,31 +1,28 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, six
-, isodate
-, pyparsing
-, html5lib
 , keepalive
 }:
 
 buildPythonPackage rec {
-  pname = "SPARQLWrapper";
-  version = "1.8.5";
+  pname = "sparqlwrapper";
+  version = "2.0.0";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "d6a66b5b8cda141660e07aeb00472db077a98d22cb588c973209c7336850fb3c";
+    pname = "SPARQLWrapper";
+    inherit version;
+    sha256 = "sha256-P+0+vMd2F6SnTSZEuG/Yjg8y5/cAOseyszTAJiAXMfE=";
   };
 
   # break circular dependency loop
   patchPhase = ''
-    sed -i '/rdflib/d' requirements.txt
+    sed -i '/rdflib/d' setup.cfg
   '';
 
   # Doesn't actually run tests
   doCheck = false;
 
-  propagatedBuildInputs = [ six isodate pyparsing html5lib keepalive ];
+  propagatedBuildInputs = [ keepalive ];
 
   meta = with lib; {
     description = "This is a wrapper around a SPARQL service. It helps in creating the query URI and, possibly, convert the result into a more manageable format";
diff --git a/pkgs/development/python-modules/sphinx-jinja/default.nix b/pkgs/development/python-modules/sphinx-jinja/default.nix
index 7f5ea8c4241a1..28d575752551e 100644
--- a/pkgs/development/python-modules/sphinx-jinja/default.nix
+++ b/pkgs/development/python-modules/sphinx-jinja/default.nix
@@ -1,29 +1,26 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, pbr, sphinx, sphinx-testing, nose, glibcLocales }:
+{ lib, buildPythonPackage, fetchPypi, pythonOlder, sphinx }:
 
 buildPythonPackage rec {
   pname = "sphinx-jinja";
-  version = "1.4.0";
+  version = "2.0.1";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e6614d986c0289cb85b016c25eb8cb9781ceb841e70bee639c5123f39ad90b38";
+    sha256 = "sha256-3lMY1InG1PaAqhIrp5kovE6t+kTTpTKS3ir+WI/+RAY=";
   };
 
-  buildInputs = [ pbr ];
   propagatedBuildInputs = [ sphinx ];
 
-  checkInputs = [ sphinx-testing nose glibcLocales ];
+  # upstream source is not updated to 2.0.X and pypi does not contain tests
+  doCheck = false;
 
-  checkPhase = lib.optionalString (!isPy27) ''
-    # prevent python from loading locally and breaking namespace
-    mv sphinxcontrib .sphinxcontrib
-  '' + ''
-    # Zip (epub) does not support files with epoch timestamp
-    LC_ALL="en_US.UTF-8" nosetests -e test_build_epub
-  '';
+  pythonImportsCheck = [ "sphinx_jinja" ];
 
   meta = with lib; {
     description = "Sphinx extension to include jinja templates in documentation";
+    homepage = "https://github.com/tardyp/sphinx-jinja";
     maintainers = with maintainers; [ ];
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/sphinx/default.nix b/pkgs/development/python-modules/sphinx/default.nix
index 19961cc2ec182..020cf5c143a2f 100644
--- a/pkgs/development/python-modules/sphinx/default.nix
+++ b/pkgs/development/python-modules/sphinx/default.nix
@@ -30,14 +30,16 @@
 
 buildPythonPackage rec {
   pname = "sphinx";
-  version = "4.4.0";
-  disabled = pythonOlder "3.5";
+  version = "4.5.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "sphinx-doc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Q4CqPO08AfR+CDB02al65A+FHRFUDUfFTba0u8YQx+8=";
+    sha256 = "sha256-Lw9yZWCQpt02SL/McWPcyFRfVhQHC0TejcYRbVw+VxY=";
     extraPostFetch = ''
       cd $out
       mv tests/roots/test-images/testimäge.png \
@@ -46,6 +48,11 @@ buildPythonPackage rec {
     '';
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "docutils>=0.14,<0.18" "docutils>=0.14"
+  '';
+
   propagatedBuildInputs = [
     Babel
     alabaster
@@ -92,9 +99,11 @@ buildPythonPackage rec {
     # Due to lack of network sandboxing can't guarantee port 7777 isn't bound
     "test_inspect_main_url"
     "test_auth_header_uses_first_match"
+    "test_linkcheck_allowed_redirects"
     "test_linkcheck_request_headers"
     "test_linkcheck_request_headers_no_slash"
     "test_follows_redirects_on_HEAD"
+    "test_get_after_head_raises_connection_error"
     "test_invalid_ssl"
     "test_connect_to_selfsigned_with_tls_verify_false"
     "test_connect_to_selfsigned_with_tls_cacerts"
diff --git a/pkgs/development/python-modules/sphinx_rtd_theme/default.nix b/pkgs/development/python-modules/sphinx_rtd_theme/default.nix
index 1d890de94f709..d0c9a3883aff9 100644
--- a/pkgs/development/python-modules/sphinx_rtd_theme/default.nix
+++ b/pkgs/development/python-modules/sphinx_rtd_theme/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "docutils<0.17" "docutils"
+      --replace "docutils<0.18" "docutils"
   '';
 
   preBuild = ''
diff --git a/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix b/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
index f7fd32a3aff43..94c545a694ef0 100644
--- a/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, isPy3k
+, pythonOlder
 , oset
 , pybtex
 , pybtex-docutils
@@ -9,20 +9,28 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.4.1";
   pname = "sphinxcontrib-bibtex";
+  version = "2.4.2";
 
-  disabled = !isPy3k;
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "282223309bbaf34cd20a8fe1ba346fe8642f403a8930607e77a8cb08ae81fc5f";
+    hash = "sha256-ZbAj7kfzXx8DrE1xyCTmfGJMfsrBuyboNiMnGgH52oY=";
   };
 
-  propagatedBuildInputs = [ oset pybtex pybtex-docutils sphinx ];
+  propagatedBuildInputs = [
+    oset
+    pybtex
+    pybtex-docutils
+    sphinx
+  ];
 
   doCheck = false;
-  pythonImportsCheck = [ "sphinxcontrib.bibtex" ];
+
+  pythonImportsCheck = [
+    "sphinxcontrib.bibtex"
+  ];
 
   meta = with lib; {
     description = "A Sphinx extension for BibTeX style citations";
diff --git a/pkgs/development/python-modules/sphinxext-opengraph/default.nix b/pkgs/development/python-modules/sphinxext-opengraph/default.nix
index 8b68eea256681..76e5079e91637 100644
--- a/pkgs/development/python-modules/sphinxext-opengraph/default.nix
+++ b/pkgs/development/python-modules/sphinxext-opengraph/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "sphinxext-opengraph";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "wpilibsuite";
     repo = "sphinxext-opengraph";
     rev = "v${version}";
-    sha256 = "sha256-3bZFFtGW6j/3m/3F4+tapZujzpMZnrIcYTngDCNGylI=";
+    sha256 = "sha256-YR6TlsmND5IhLdbPbmtVhRN2vSZfx70g2a6Yn6y6L/M=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/spyder-kernels/default.nix b/pkgs/development/python-modules/spyder-kernels/default.nix
index 4ddacc9119036..95d54e404471a 100644
--- a/pkgs/development/python-modules/spyder-kernels/default.nix
+++ b/pkgs/development/python-modules/spyder-kernels/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "spyder-kernels";
-  version = "2.2.1";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "574ee1bd03f7236b9f9dacae34936a0625cd67ccfe3df11fec69f26889a0b866";
+    sha256 = "sha256-pdU20Oil53TX1hbBAqj6LWqkX9MwoLeZuY7vFYNW02w=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/spyder/default.nix b/pkgs/development/python-modules/spyder/default.nix
index cfeaf08fb33f4..c117cb4990f8b 100644
--- a/pkgs/development/python-modules/spyder/default.nix
+++ b/pkgs/development/python-modules/spyder/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "spyder";
-  version = "5.2.1";
+  version = "5.3.0";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b318a70a75acd200018a547d2ff2d2f55e7507054469d0c77ec6f967ac3c2d28";
+    sha256 = "sha256-ggCFvYUdUm5fVSpTZoN/OhNPJAQOyehwrQprYTzprbc=";
   };
 
   nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ];
diff --git a/pkgs/development/python-modules/sqlalchemy-imageattach/default.nix b/pkgs/development/python-modules/sqlalchemy-imageattach/default.nix
deleted file mode 100644
index 55026b2b55303..0000000000000
--- a/pkgs/development/python-modules/sqlalchemy-imageattach/default.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ lib
-, buildPythonPackage
-, pytest
-, Wand
-, webob
-, sqlalchemy
-, isPyPy
-, pkgs
-}:
-
-buildPythonPackage rec {
-  pname = "SQLAlchemy-ImageAttach";
-  version = "1.0.0";
-
-  src = pkgs.fetchFromGitHub {
-    repo = "sqlalchemy-imageattach";
-    owner = "dahlia";
-    rev = version;
-    sha256 = "0ba97pn5dh00qvxyjbr0mr3pilxqw5kb3a6jd4wwbsfcv6nngqig";
-  };
-
-  checkInputs = [ pytest Wand.imagemagick webob ];
-  propagatedBuildInputs = [ sqlalchemy Wand ];
-
-  checkPhase = ''
-    cd tests
-    export MAGICK_HOME="${pkgs.imagemagick.dev}"
-    export PYTHONPATH=$PYTHONPATH:../
-    py.test
-    cd ..
-  '';
-
-  doCheck = !isPyPy;  # failures due to sqla version mismatch
-
-  meta = with lib; {
-    homepage = "https://github.com/dahlia/sqlalchemy-imageattach";
-    description = "SQLAlchemy extension for attaching images to entity objects";
-    license = licenses.mit;
-    broken = true; # Incompatible with sqlalchemy>=1.4 (https://github.com/dahlia/sqlalchemy-imageattach/issues/47)
-  };
-
-}
diff --git a/pkgs/development/python-modules/sqlalchemy/default.nix b/pkgs/development/python-modules/sqlalchemy/default.nix
index 1d6406c5db13c..b6e800a7ed3d8 100644
--- a/pkgs/development/python-modules/sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "SQLAlchemy";
-  version = "1.4.31";
+  version = "1.4.35";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-WCtZ0eV4CkR6raIrRh5QtASp3AV2jaHYc2itgZBGhBg=";
+    hash = "sha256-L/yBOwHcZHOZD15XXyEMpawvVGWs45CLeP/W0gBYqrU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sqlite-utils/default.nix b/pkgs/development/python-modules/sqlite-utils/default.nix
index 5d96f8e1505c3..b3621802a0978 100644
--- a/pkgs/development/python-modules/sqlite-utils/default.nix
+++ b/pkgs/development/python-modules/sqlite-utils/default.nix
@@ -14,12 +14,14 @@
 
 buildPythonPackage rec {
   pname = "sqlite-utils";
-  version = "3.25.1";
+  version = "3.26";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-32lfUJoTbkflztLU/BDhbHbuOkW66OGpHLuiyAKFy8k=";
+    hash = "sha256-G2Fy9PEYtq0dIWhsgV4HZa5y+wLxcI3CYSgDL6ijkdo=";
   };
 
   propagatedBuildInputs = [
@@ -35,6 +37,10 @@ buildPythonPackage rec {
     hypothesis
   ];
 
+  pythonImportsCheck = [
+    "sqlite_utils"
+  ];
+
   meta = with lib; {
     description = "Python CLI utility and library for manipulating SQLite databases";
     homepage = "https://github.com/simonw/sqlite-utils";
diff --git a/pkgs/development/python-modules/sqlitedict/default.nix b/pkgs/development/python-modules/sqlitedict/default.nix
index 178617e18dea8..5634eb41601a1 100644
--- a/pkgs/development/python-modules/sqlitedict/default.nix
+++ b/pkgs/development/python-modules/sqlitedict/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "sqlitedict";
-  version = "1.7.0";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "RaRe-Technologies";
     repo = "sqlitedict";
-    rev = version;
-    sha256 = "08fr81rz1fz35d35kravg7vl234aqagr9wqb09x6wi9lx9zkkh28";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-8dmGn5h3NigCdDtnDYjpjntRpyjk7ivRp1B8x8nUgpE=";
   };
 
   preCheck = ''
diff --git a/pkgs/development/python-modules/sqlmap/default.nix b/pkgs/development/python-modules/sqlmap/default.nix
index a435b363a0f7b..6313f413c6ab7 100644
--- a/pkgs/development/python-modules/sqlmap/default.nix
+++ b/pkgs/development/python-modules/sqlmap/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "sqlmap";
-  version = "1.6.3";
+  version = "1.6.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-W/UdJPLcFOEHHz7VYeQ3CcXysNju5DuxqvYA+xMkb20=";
+    sha256 = "sha256-6RKJ5a8Yl+SnWgdfrTIwY0m1JyY6W9fhZk6pTZiBVx8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/srp/default.nix b/pkgs/development/python-modules/srp/default.nix
index 17a3ab51cc7a7..13820a2363469 100644
--- a/pkgs/development/python-modules/srp/default.nix
+++ b/pkgs/development/python-modules/srp/default.nix
@@ -1,20 +1,35 @@
-{ buildPythonPackage, fetchPypi, six, lib }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, six
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "srp";
-  version = "1.0.18";
+  version = "1.0.19";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1582317ccd383dc39d54f223424c588254d73d1cfb2c5c24d945e018ec9516bb";
+    hash = "sha256-SOZT6MP1kJCbpAcwbrLoRgosfR+GxWvOWc9Cr1T/XSo=";
   };
 
-  propagatedBuildInputs = [ six ];
+  propagatedBuildInputs = [
+    six
+  ];
 
   # Tests ends up with libssl.so cannot load shared
   doCheck = false;
 
+  pythonImportsCheck = [
+    "srp"
+  ];
+
   meta = with lib; {
+    description = "Implementation of the Secure Remote Password protocol (SRP)";
     longDescription = ''
      This package provides an implementation of the Secure Remote Password protocol (SRP).
      SRP is a cryptographically strong authentication protocol for password-based, mutual authentication over an insecure network connection.
diff --git a/pkgs/development/python-modules/srsly/default.nix b/pkgs/development/python-modules/srsly/default.nix
index 18771886b0faa..7a2d6790b47da 100644
--- a/pkgs/development/python-modules/srsly/default.nix
+++ b/pkgs/development/python-modules/srsly/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "srsly";
-  version = "2.4.2";
+  version = "2.4.3";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-KrolIpJ2eHUIat9OQ4DiewJNc2VUVveW+OB+s6TfrMA=";
+    hash = "sha256-2+kfbdSuqegZSTYoNW3HFb2cYGSGKXu3yldI5uADhBw=";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/pkgs/development/python-modules/starlette/default.nix b/pkgs/development/python-modules/starlette/default.nix
index 1084a50be7707..caa841339e16c 100644
--- a/pkgs/development/python-modules/starlette/default.nix
+++ b/pkgs/development/python-modules/starlette/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "starlette";
-  version = "0.17.1";
+  version = "0.19.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "sha256-qT/w7r8PsrauLoBolwCGpxiwhDZo3z6hIqKVXeY5yqA=";
+    sha256 = "sha256-gjRTMzoQ8pqxjIusRwRXGs72VYo6xsp2DSUxmEr9KxU=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/staticjinja/default.nix b/pkgs/development/python-modules/staticjinja/default.nix
index ac3c173c09a5b..0c1a698aa63c0 100644
--- a/pkgs/development/python-modules/staticjinja/default.nix
+++ b/pkgs/development/python-modules/staticjinja/default.nix
@@ -9,7 +9,7 @@
 , pytest-check
 , pythonOlder
 , markdown
-, testVersion
+, testers
 , tomlkit
 , staticjinja
 , callPackage
@@ -53,7 +53,7 @@ buildPythonPackage rec {
   '';
 
   passthru.tests = {
-    version = testVersion { package = staticjinja; };
+    version = testers.testVersion { package = staticjinja; };
     minimal-template = callPackage ./test-minimal-template {};
   };
 
diff --git a/pkgs/development/python-modules/stone/default.nix b/pkgs/development/python-modules/stone/default.nix
index 8ea42d1f27953..55f74b58fb520 100644
--- a/pkgs/development/python-modules/stone/default.nix
+++ b/pkgs/development/python-modules/stone/default.nix
@@ -1,34 +1,31 @@
-{ lib, buildPythonPackage, fetchPypi
-, coverage
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
 , mock
 , ply
-, pytest-runner
 , pytestCheckHook
 , six
 }:
 
 buildPythonPackage rec {
   pname = "stone";
-  version = "3.2.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0xby5mpsms7b2rv8j6mvxzmzz5i9ii01brb9ylxz6kiv2i08piwv";
+  version = "3.3.1";
+
+  # pypi sdist misses requirements.txt
+  src = fetchFromGitHub {
+    owner = "dropbox";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-0FWdYbv+paVU3Wj6g9OrSNUB0pH8fLwTkhVIBPeFB/U=";
   };
 
   postPatch = ''
-    substituteInPlace setup.py \
-      --replace "pytest-runner == 5.2.0" "pytest-runner" \
-      --replace "pytest < 5" "pytest"
-    substituteInPlace test/requirements.txt \
-      --replace "coverage==5.3" "coverage"
+    sed -i '/pytest-runner/d' setup.py
   '';
 
-  nativeBuildInputs = [ pytest-runner ];
-
   propagatedBuildInputs = [ ply six ];
 
-  checkInputs = [ pytestCheckHook coverage mock ];
+  checkInputs = [ pytestCheckHook mock ];
 
   # try to import from `test` directory, which is exported by the python interpreter
   # and cannot be overriden without removing some py3 to py2 support
diff --git a/pkgs/development/python-modules/stookalert/default.nix b/pkgs/development/python-modules/stookalert/default.nix
new file mode 100644
index 0000000000000..82552ca44bb39
--- /dev/null
+++ b/pkgs/development/python-modules/stookalert/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "stookalert";
+  version = "0.1.4";
+
+  format = "setuptools";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "38c479e2fb7668f9b37aff0f9ffdd7bfd1ee9393528f2d3d36b5911b40da70a1";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  # upstream has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "stookalert" ];
+
+  meta = {
+    description = "Python package for the RIVM Stookalert";
+    homepage = "https://github.com/fwestenberg/stookalert";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/stripe/default.nix b/pkgs/development/python-modules/stripe/default.nix
index 6580e245866f0..27c3f84331ad2 100644
--- a/pkgs/development/python-modules/stripe/default.nix
+++ b/pkgs/development/python-modules/stripe/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "stripe";
-  version = "2.70.0";
+  version = "2.74.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-7YiX9o5rrDOYzJmOtWNFUYQGMNZQTAAm/P0K2RyadKQ=";
+    hash = "sha256-+o7StcJBv9peiYTWBnIfnDUqodiG3sVQJBbKBOALktA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/stumpy/default.nix b/pkgs/development/python-modules/stumpy/default.nix
index 68e35a1d0eca7..66a9b7e0d82ce 100644
--- a/pkgs/development/python-modules/stumpy/default.nix
+++ b/pkgs/development/python-modules/stumpy/default.nix
@@ -34,6 +34,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pytestFlagsArray = [
+    # whole testsuite is very CPU intensive, only run core tests
+    # TODO: move entire test suite to passthru.tests
+    "tests/test_core.py"
+  ];
+
   meta = with lib; {
     description = "A powerful and scalable library that can be used for a variety of time series data mining tasks";
     homepage = "https://github.com/TDAmeritrade/stumpy";
diff --git a/pkgs/development/python-modules/suds-jurko/default.nix b/pkgs/development/python-modules/suds-jurko/default.nix
index af307919387f6..f2776265b067f 100644
--- a/pkgs/development/python-modules/suds-jurko/default.nix
+++ b/pkgs/development/python-modules/suds-jurko/default.nix
@@ -27,6 +27,7 @@ buildPythonPackage rec {
     description = "Lightweight SOAP client (Jurko's fork)";
     homepage = "https://bitbucket.org/jurko/suds";
     license = licenses.lgpl3;
+    broken = true; # Uses use2to3, which has been removed in setuptools>=58
   };
 
 }
diff --git a/pkgs/development/python-modules/sumo/default.nix b/pkgs/development/python-modules/sumo/default.nix
index 68f298de10802..86ab922c1bfb6 100644
--- a/pkgs/development/python-modules/sumo/default.nix
+++ b/pkgs/development/python-modules/sumo/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "sumo";
-  version = "2.2.5";
+  version = "2.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -25,8 +25,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "SMTG-UCL";
     repo = "sumo";
-    rev = "v${version}";
-    sha256 = "1vwqyv215yf51j1278cn7l8mpqmy1grm9j7z3hxjlz4w65cff324";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-apI5Qt7Wrr4FXKL48iqqIQJDX2BIf3PPz/qIgSO7nuo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/sunpy/default.nix b/pkgs/development/python-modules/sunpy/default.nix
index 4e61f8665ba6a..8f1653d91abff 100644
--- a/pkgs/development/python-modules/sunpy/default.nix
+++ b/pkgs/development/python-modules/sunpy/default.nix
@@ -31,14 +31,14 @@
 
 buildPythonPackage rec {
   pname = "sunpy";
-  version = "3.1.3";
+  version = "3.1.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4acb05a05c7e6a2090cd0bb426b34c7e1620be0de2bf90a95a3f48ba15a5fce2";
+    sha256 = "sha256-mI5W4EDzTk3GryTQbnmvP+ks3VJDzw4drew9wD9+tIE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/superqt/default.nix b/pkgs/development/python-modules/superqt/default.nix
index 9890a7000a9af..af600f623423c 100644
--- a/pkgs/development/python-modules/superqt/default.nix
+++ b/pkgs/development/python-modules/superqt/default.nix
@@ -3,21 +3,25 @@
 , fetchFromGitHub
 , setuptools-scm
 , pyqt5
+, qtpy
 , typing-extensions
 , pytest
 , pytestCheckHook
-}: buildPythonPackage rec {
+}:
+
+buildPythonPackage rec {
   pname = "superqt";
-  version = "0.2.5-1";
+  version = "0.3.1";
+
   src = fetchFromGitHub {
     owner = "napari";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-rkTiCJ8mIogS9SDmLPiaAyhhuBx3kk6rXjCc19zbwiM=";
+    sha256 = "sha256-DPjJxOgybNvZ3YvYHr48fmx59Puck61Dzm2G4M9qKo4=";
   };
   format = "pyproject";
   nativeBuildInputs = [ setuptools-scm ];
-  propagatedBuildInputs = [ pyqt5 typing-extensions ];
+  propagatedBuildInputs = [ pyqt5 qtpy typing-extensions ];
   checkInputs = [ pytestCheckHook pytest ];
   doCheck = false; # Segfaults...
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/svdtools/default.nix b/pkgs/development/python-modules/svdtools/default.nix
index 03db4b6356e22..98b59c18bdc39 100644
--- a/pkgs/development/python-modules/svdtools/default.nix
+++ b/pkgs/development/python-modules/svdtools/default.nix
@@ -11,22 +11,16 @@
 
 buildPythonPackage rec {
   pname = "svdtools";
-  version = "0.1.21";
+  version = "0.1.22";
+  format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "0qc94haqkj4dbhify1l3x0ji1dx34m79nfnsk1c7l1kl2zjvz6bz";
+    hash = "sha256-5zMuCFCvh7BXr9BbyyDhWw1Lt/Fomv0SALiPJQbxJNQ=";
   };
 
-  # remove upon next release
-  # see: https://github.com/stm32-rs/svdtools/pull/96
-  prePatch = ''
-    substituteInPlace setup.py \
-      --replace 'PyYAML ~= 5.3' 'PyYAML >= 5.3'
-  '';
-
   propagatedBuildInputs = [
     braceexpand
     click
@@ -34,9 +28,13 @@ buildPythonPackage rec {
     lxml
   ];
 
-  checkInputs = [ pytestCheckHook ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  pythonImportsCheck = [ "svdtools" ];
+  pythonImportsCheck = [
+    "svdtools"
+  ];
 
   meta = with lib; {
     description = "Python package to handle vendor-supplied, often buggy SVD files";
diff --git a/pkgs/development/python-modules/svg-path/default.nix b/pkgs/development/python-modules/svg-path/default.nix
index e01909fc93a8b..b5b1547632210 100644
--- a/pkgs/development/python-modules/svg-path/default.nix
+++ b/pkgs/development/python-modules/svg-path/default.nix
@@ -1,13 +1,37 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pillow
+, pytestCheckHook
+, pythonOlder
+}:
+
 buildPythonPackage rec {
   pname = "svg.path";
-  version = "4.1";
+  version = "6.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7e6847ba690ff620e20f152818d52e1685b993aacbc41b321f8fee3d1cb427db";
+    hash = "sha256-X78HaJFzywl3aA4Sl58wHQu2r1NVyjlsww0+ESx5TdU=";
   };
 
+  checkInputs = [
+    pillow
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # generated image differs from example
+    "test_image"
+  ];
+
+  pythonImportsCheck = [
+    "svg.path"
+  ];
+
   meta = with lib; {
     description = "SVG path objects and parser";
     homepage = "https://github.com/regebro/svg.path";
diff --git a/pkgs/development/python-modules/symengine/default.nix b/pkgs/development/python-modules/symengine/default.nix
index db0f01ae51f0b..ee2a08738456f 100644
--- a/pkgs/development/python-modules/symengine/default.nix
+++ b/pkgs/development/python-modules/symengine/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, fetchpatch
 , fetchFromGitHub
 , cython
 , cmake
@@ -12,6 +13,7 @@
 buildPythonPackage rec {
   pname = "symengine";
   version = "0.9.2";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "symengine";
@@ -20,13 +22,18 @@ buildPythonPackage rec {
     sha256 = "sha256-ZHplYEG97foy/unOdSokFFkDl4LK5TI4kypHSLpcCM4=";
   };
 
-  postConfigure = ''
+  patches = [
+    (fetchpatch {
+      # setuptools 61 compat
+      url = "https://github.com/symengine/symengine.py/commit/987e665e71cf92d1b021d7d573a1b9733408eecf.patch";
+      hash = "sha256-2QbNdw/lKYRIRpOU5BiwF2kK+5Lh2j/Q82MKUIvl0+c=";
+    })
+  ];
+
+  postPatch = ''
     substituteInPlace setup.py \
       --replace "\"cmake\"" "\"${cmake}/bin/cmake\"" \
       --replace "'cython>=0.29.24'" "'cython'"
-
-    substituteInPlace cmake/FindCython.cmake \
-      --replace "SET(CYTHON_BIN cython" "SET(CYTHON_BIN ${cython}/bin/cython"
   '';
 
   nativeBuildUnputs = [ cmake ];
diff --git a/pkgs/development/python-modules/sympy/default.nix b/pkgs/development/python-modules/sympy/default.nix
index 7d6206f04c805..17765a3752983 100644
--- a/pkgs/development/python-modules/sympy/default.nix
+++ b/pkgs/development/python-modules/sympy/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "sympy";
-  version = "1.9";
+  version = "1.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c7a880e229df96759f955d4f3970d4cabce79f60f5b18830c08b90ce77cd5fdc";
+    sha256 = "sha256-WTnu/9+eFSFyYBRjYmwCKiwn51z2J43o1AHVDJ1YeHs=";
   };
 
   checkInputs = [ glibcLocales ];
diff --git a/pkgs/development/python-modules/syslog-rfc5424-formatter/default.nix b/pkgs/development/python-modules/syslog-rfc5424-formatter/default.nix
index 040db8d1e0786..50ebc91d9e81c 100644
--- a/pkgs/development/python-modules/syslog-rfc5424-formatter/default.nix
+++ b/pkgs/development/python-modules/syslog-rfc5424-formatter/default.nix
@@ -1,23 +1,29 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "syslog-rfc5424-formatter";
-  version = "1.2.2";
+  version = "1.2.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "easypost";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "17ym5ls5r6dd9pg9frdz8myfq5fxyqlwdq1gygc9vnrxbgw2c9kb";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-dvRSOMXRmZf0vEEyX6H7OBSfo/PgyOLKuDS8X6g4qe0=";
   };
 
   # Tests are not picked up, review later again
   doCheck = false;
 
-  pythonImportsCheck = [ "syslog_rfc5424_formatter" ];
+  pythonImportsCheck = [
+    "syslog_rfc5424_formatter"
+  ];
 
   meta = with lib; {
     description = "Python logging formatter for emitting RFC5424 Syslog messages";
diff --git a/pkgs/development/python-modules/tablib/default.nix b/pkgs/development/python-modules/tablib/default.nix
index b854e09c0506a..ae0217b0ebdc6 100644
--- a/pkgs/development/python-modules/tablib/default.nix
+++ b/pkgs/development/python-modules/tablib/default.nix
@@ -1,9 +1,12 @@
-{ buildPythonPackage, lib, fetchPypi, isPy27
+{ buildPythonPackage
+, lib
+, fetchPypi
+, isPy27
 , odfpy
 , openpyxl
 , pandas
 , setuptools-scm
-, pytest
+, pytestCheckHook
 , pytest-cov
 , pyyaml
 , unicodecsv
@@ -13,26 +16,27 @@
 
 buildPythonPackage rec {
   pname = "tablib";
-  version = "3.2.0";
+  version = "3.2.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12d8686454c721de88d8ca5adf07e1f419ef6dbcecedf65e8950d4a329daf3a0";
+    sha256 = "sha256-pX8ncLjCJf6+wcseZQEqac8w3Si+gQ4P+Y0CR2jH0PE=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ xlwt openpyxl pyyaml xlrd odfpy ];
-  checkInputs = [ pytest pytest-cov unicodecsv pandas ];
+  checkInputs = [ pytestCheckHook pytest-cov unicodecsv pandas ];
 
   # test_tablib needs MarkupPy, which isn't packaged yet
-  checkPhase = ''
-    pytest --ignore tests/test_tablib.py
-  '';
+  pytestFlagsArray = [ "--ignore=tests/test_tablib.py" ];
+
+  pythonImportsCheck = [ "tablib" ];
 
   meta = with lib; {
     description = "Format-agnostic tabular dataset library";
-    homepage = "https://python-tablib.org";
+    homepage = "https://tablib.readthedocs.io/";
+    changelog = "https://github.com/jazzband/tablib/raw/v${version}/HISTORY.md";
     license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/teletype/default.nix b/pkgs/development/python-modules/teletype/default.nix
index c3878bf3c8779..999454edf83ff 100644
--- a/pkgs/development/python-modules/teletype/default.nix
+++ b/pkgs/development/python-modules/teletype/default.nix
@@ -1,17 +1,27 @@
-{ buildPythonPackage, fetchPypi, lib }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "teletype";
-  version = "1.1.0";
+  version = "1.3.4";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "02mg0qmdf7hljq6jw1hwaid3hvkf70dfxgrxmpqybaxrph5pfg1y";
+    hash = "sha256-uBppM4w9GlMgYqKFGw1Rcjvq+mnU04K3E74jCgK9YYo=";
   };
 
   # no tests
   doCheck = false;
-  pythonImportsCheck = [ "teletype" ];
+
+  pythonImportsCheck = [
+    "teletype"
+  ];
 
   meta = with lib; {
     description = "A high-level cross platform tty library";
diff --git a/pkgs/development/python-modules/tellduslive/default.nix b/pkgs/development/python-modules/tellduslive/default.nix
index 5a6a84af8392b..f933553dcdbe7 100644
--- a/pkgs/development/python-modules/tellduslive/default.nix
+++ b/pkgs/development/python-modules/tellduslive/default.nix
@@ -3,12 +3,16 @@
 , docopt
 , fetchFromGitHub
 , requests
-, requests_oauthlib
+, requests-oauthlib
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "tellduslive";
   version = "0.10.11";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "molobrakos";
@@ -20,12 +24,15 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     docopt
     requests
-    requests_oauthlib
+    requests-oauthlib
   ];
 
   # Project has no tests
   doCheck = false;
-  pythonImportsCheck = [ "tellduslive" ];
+
+  pythonImportsCheck = [
+    "tellduslive"
+  ];
 
   meta = with lib; {
     description = "Python module to communicate with Telldus Live";
diff --git a/pkgs/development/python-modules/tempora/default.nix b/pkgs/development/python-modules/tempora/default.nix
index 79b04b7ebbb2b..ff837158fc268 100644
--- a/pkgs/development/python-modules/tempora/default.nix
+++ b/pkgs/development/python-modules/tempora/default.nix
@@ -1,30 +1,59 @@
-{ lib, buildPythonPackage, fetchPypi
-, setuptools-scm, pytestCheckHook, pytest-freezegun, freezegun, backports_unittest-mock
-, six, pytz, jaraco_functools, pythonOlder
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+
+# build time
+, setuptools-scm
+
+# runtime
+, pytz
+, jaraco_functools
+
+# tests
+, freezegun
+, pytest-freezegun
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "tempora";
-  version = "5.0.0";
+  version = "5.0.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "aa21dd1956e29559ecb2f2f2e14fcdb950085222fbbf86e6c946b5e1a8c36b26";
+    sha256 = "sha256-y6Dxl6ZIg78+c2V++8AyTVvxcXnndpsThbTXXSbNkSc=";
   };
 
-  disabled = pythonOlder "3.2";
-
-  nativeBuildInputs = [ setuptools-scm ];
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
 
-  propagatedBuildInputs = [ six pytz jaraco_functools ];
+  propagatedBuildInputs = [
+    jaraco_functools
+    pytz
+  ];
 
   checkInputs = [
-    pytest-freezegun pytestCheckHook freezegun backports_unittest-mock
+    freezegun
+    pytest-freezegun
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "tempora"
+    "tempora.schedule"
+    "tempora.timing"
+    "tempora.utc"
   ];
 
   meta = with lib; {
     description = "Objects and routines pertaining to date and time";
     homepage = "https://github.com/jaraco/tempora";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/tensorflow-tensorboard/default.nix b/pkgs/development/python-modules/tensorboard/default.nix
index a4a04d898566a..47025bf4a28af 100644
--- a/pkgs/development/python-modules/tensorflow-tensorboard/default.nix
+++ b/pkgs/development/python-modules/tensorboard/default.nix
@@ -22,17 +22,16 @@
 # buildBazelPackage.
 
 buildPythonPackage rec {
-  pname = "tensorflow-tensorboard";
-  version = "2.6.0";
+  pname = "tensorboard";
+  version = "2.8.0";
   format = "wheel";
-  disabled = pythonOlder "3.6" || pythonAtLeast "3.10";
+  disabled = pythonOlder "3.6" || pythonAtLeast "3.11";
 
   src = fetchPypi {
-    pname = "tensorboard";
-    inherit version format;
+    inherit pname version format;
     dist = "py3";
     python = "py3";
-    sha256 = "sha256-99rEzftS0UyeP3RYXOKq+OYgNiCoZOUfr4SYiwn3u9s=";
+    hash = "sha256-ZaM45EJOkHnyYEkjvb4wF5KtzirOG+aNprPd8AUXDe8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/tensorboardx/default.nix b/pkgs/development/python-modules/tensorboardx/default.nix
index eacb5b4cdc804..7aa29f34baa55 100644
--- a/pkgs/development/python-modules/tensorboardx/default.nix
+++ b/pkgs/development/python-modules/tensorboardx/default.nix
@@ -13,7 +13,7 @@
 , pytorch
 , six
 , soundfile
-, tensorflow-tensorboard
+, tensorboard
 , torchvision
 }:
 
@@ -56,7 +56,7 @@ buildPythonPackage rec {
     pillow
     pytestCheckHook
     pytorch
-    tensorflow-tensorboard
+    tensorboard
     torchvision
   ];
 
@@ -70,6 +70,8 @@ buildPythonPackage rec {
   disabledTestPaths = [
     # we are not interested in linting errors
     "tests/test_lint.py"
+    # missing caffe2 dependency
+    "tests/test_caffe2.py"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/tensorflow-datasets/default.nix b/pkgs/development/python-modules/tensorflow-datasets/default.nix
index b97461394d13a..38d6458d4fd9a 100644
--- a/pkgs/development/python-modules/tensorflow-datasets/default.nix
+++ b/pkgs/development/python-modules/tensorflow-datasets/default.nix
@@ -9,6 +9,8 @@
 , future
 , imagemagick
 , importlib-resources
+, jax
+, jaxlib
 , jinja2
 , langdetect
 , lib
@@ -39,13 +41,13 @@
 
 buildPythonPackage rec {
   pname = "tensorflow-datasets";
-  version = "4.4.0";
+  version = "4.5.2";
 
   src = fetchFromGitHub {
     owner = "tensorflow";
     repo = "datasets";
     rev = "v${version}";
-    sha256 = "11kbpv54nwr0xf7z5mkj2lmrfqfmcdq8qcpapnqck1kiawr3yad6";
+    sha256 = "sha256-OZpaY/6BMISq5IeDXyuyu5L/yG+DwlFliw4BsipPOLg=";
   };
 
   patches = [
@@ -78,6 +80,8 @@ buildPythonPackage rec {
     beautifulsoup4
     ffmpeg
     imagemagick
+    jax
+    jaxlib
     jinja2
     langdetect
     matplotlib
@@ -96,7 +100,6 @@ buildPythonPackage rec {
     tensorflow
     tifffile
   ];
-  pytestFlagsArray = [ "-n $NIX_BUILD_CORES" ];
 
   disabledTestPaths = [
     # Sandbox violations: network access, filesystem write attempts outside of build dir, ...
@@ -119,6 +122,9 @@ buildPythonPackage rec {
     # Requires `tensorflow_io` which is not packaged in `nixpkgs`.
     "tensorflow_datasets/image/lsun_test.py"
 
+    # Requires `envlogger` which is not packaged in `nixpkgs`.
+    "tensorflow_datasets/rlds/robosuite_panda_pick_place_can/robosuite_panda_pick_place_can_test.py"
+
     # Fails with `TypeError: Constant constructor takes either 0 or 2 positional arguments`
     # deep in TF AutoGraph. Doesn't reproduce in Docker with Ubuntu 22.04 => might be related
     # to the differences in some of the dependencies?
diff --git a/pkgs/development/python-modules/tensorflow-estimator/default.nix b/pkgs/development/python-modules/tensorflow-estimator/default.nix
index 5ad6d0ab6e555..7c7f155adb09b 100644
--- a/pkgs/development/python-modules/tensorflow-estimator/default.nix
+++ b/pkgs/development/python-modules/tensorflow-estimator/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "tensorflow-estimator";
-  version = "2.7.0";
+  version = "2.8.0";
   format = "wheel";
 
   src = fetchPypi {
     pname = "tensorflow_estimator";
     inherit version format;
-    hash = "sha256-MltaIkhkN5JCt7dsaYfKVEI5voJXnTPmjsfCvaV6vJ0=";
+    hash = "sha256-vujgUgxgrn6vbKjLRsWp9LRXJVMTgNuPvjj8tIR4trs=";
   };
 
   propagatedBuildInputs = [ mock numpy absl-py ];
diff --git a/pkgs/development/python-modules/tensorflow-metadata/build.patch b/pkgs/development/python-modules/tensorflow-metadata/build.patch
index ff81c5d1e86cf..5b570bf72062d 100644
--- a/pkgs/development/python-modules/tensorflow-metadata/build.patch
+++ b/pkgs/development/python-modules/tensorflow-metadata/build.patch
@@ -2,15 +2,6 @@ diff --git a/setup.py b/setup.py
 index 7a09b2f..94c5aa6 100644
 --- a/setup.py
 +++ b/setup.py
-@@ -125,7 +125,7 @@ setup(
-     ],
-     namespace_packages=[],
-     install_requires=[
--        'absl-py>=0.9,<0.13',
-+        'absl-py>=0.9',
-         'googleapis-common-protos>=1.52.0,<2',
-         'protobuf>=3.13,<4',
-     ],
 @@ -137,8 +137,5 @@ setup(
      long_description_content_type='text/markdown',
      keywords='tensorflow metadata tfx',
diff --git a/pkgs/development/python-modules/tensorflow-metadata/default.nix b/pkgs/development/python-modules/tensorflow-metadata/default.nix
index 2a80155c4cd9e..b39f1211d0cac 100644
--- a/pkgs/development/python-modules/tensorflow-metadata/default.nix
+++ b/pkgs/development/python-modules/tensorflow-metadata/default.nix
@@ -2,18 +2,19 @@
 , buildPythonPackage
 , fetchFromGitHub
 , googleapis-common-protos
+, protobuf
 , lib
 }:
 
 buildPythonPackage rec {
   pname = "tensorflow-metadata";
-  version = "1.5.0";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "tensorflow";
     repo = "metadata";
     rev = "v${version}";
-    sha256 = "17p74k6rwswpmj7m16cw9hdam6b4m7v5bahirmc2l1kwfvrn4w33";
+    sha256 = "sha256-CQlLEVNcD9u2pojz8r1eLzYzc9i2hjdZfzfYSQ/8Q4k=";
   };
 
   patches = [
@@ -31,8 +32,12 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     absl-py
     googleapis-common-protos
+    protobuf
   ];
 
+  # has no tests
+  doCheck = false;
+
   pythonImportsCheck = [
     "tensorflow_metadata"
   ];
diff --git a/pkgs/development/python-modules/tensorflow-tensorboard/1/default.nix b/pkgs/development/python-modules/tensorflow-tensorboard/1/default.nix
deleted file mode 100644
index f58b1a207719a..0000000000000
--- a/pkgs/development/python-modules/tensorflow-tensorboard/1/default.nix
+++ /dev/null
@@ -1,65 +0,0 @@
-{ lib, fetchPypi, buildPythonPackage, isPy3k
-, numpy
-, wheel
-, werkzeug
-, protobuf
-, grpcio
-, markdown
-, futures
-, absl-py
-}:
-
-# tensorflow/tensorboard is built from a downloaded wheel, because
-# https://github.com/tensorflow/tensorboard/issues/719 blocks
-# buildBazelPackage.
-
-buildPythonPackage rec {
-  pname = "tensorflow-tensorboard";
-  version = "1.15.0";
-  format = "wheel";
-
-  src = fetchPypi ({
-    pname = "tensorboard";
-    inherit version format;
-  } // (if isPy3k then {
-    python = "py3";
-    sha256 = "1g62i3nrgp8q9wfsyqqjkkfnsz7x2k018c26kdh527h1yrjjrbac";
-  } else {
-    python = "py2";
-    sha256 = "0l3zc8j2sh7h1z4qpy8kfvclv3kzndri55p10i42q6xahs9phav1";
-  }));
-
-  propagatedBuildInputs = [
-    numpy
-    werkzeug
-    protobuf
-    markdown
-    grpcio
-    absl-py
-    # not declared in install_requires, but used at runtime
-    # https://github.com/NixOS/nixpkgs/issues/73840
-    wheel
-  ] ++ lib.optional (!isPy3k) futures;
-
-  # in the absence of a real test suite, run cli and imports
-  checkPhase = ''
-    $out/bin/tensorboard --help > /dev/null
-  '';
-
-  pythonImportsCheck = [
-    "tensorboard"
-    "tensorboard.backend"
-    "tensorboard.compat"
-    "tensorboard.data"
-    "tensorboard.plugins"
-    "tensorboard.summary"
-    "tensorboard.util"
-  ];
-
-  meta = with lib; {
-    description = "TensorFlow's Visualization Toolkit";
-    homepage = "http://tensorflow.org";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ abbradar ];
-  };
-}
diff --git a/pkgs/development/python-modules/tensorflow/bin.nix b/pkgs/development/python-modules/tensorflow/bin.nix
index 2556a8039c1b7..f5044a360f08b 100644
--- a/pkgs/development/python-modules/tensorflow/bin.nix
+++ b/pkgs/development/python-modules/tensorflow/bin.nix
@@ -18,10 +18,9 @@
 , opt-einsum
 , backports_weakref
 , tensorflow-estimator
-, tensorflow-tensorboard
+, tensorboard
 , cudaSupport ? false
-, cudatoolkit
-, cudnn
+, cudaPackages ? {}
 , patchelfUnstable
 , zlib
 , python
@@ -43,12 +42,14 @@ assert ! (stdenv.isDarwin && cudaSupport);
 
 let
   packages = import ./binary-hashes.nix;
+  inherit (cudaPackages) cudatoolkit cudnn;
 in buildPythonPackage {
   pname = "tensorflow" + lib.optionalString cudaSupport "-gpu";
   inherit (packages) version;
   format = "wheel";
 
-  disabled = pythonAtLeast "3.10";
+  # See https://github.com/tensorflow/tensorflow/issues/55581#issuecomment-1101890383
+  disabled = pythonAtLeast "3.10" && !cudaSupport;
 
   src = let
     pyVerNoDot = lib.strings.stringAsChars (x: if x == "." then "" else x) python.pythonVersion;
@@ -74,7 +75,7 @@ in buildPythonPackage {
     google-pasta
     wrapt
     tensorflow-estimator
-    tensorflow-tensorboard
+    tensorboard
     keras-applications
     keras-preprocessing
     h5py
@@ -97,11 +98,11 @@ in buildPythonPackage {
     (
       cd unpacked/tensorflow*
       # Adjust dependency requirements:
-      # - Relax gast version requirement that doesn't match what we have packaged
+      # - Relax tensorflow-estimator version requirement that doesn't match what we have packaged
       # - The purpose of python3Packages.libclang is not clear at the moment and we don't have it packaged yet
       # - keras and tensorlow-io-gcs-filesystem will be considered as optional for now.
       sed -i *.dist-info/METADATA \
-        -e "s/Requires-Dist: gast.*/Requires-Dist: gast/" \
+        -e "s/Requires-Dist: tf-estimator-nightly.*/Requires-Dist: tensorflow-estimator/" \
         -e "/Requires-Dist: libclang/d" \
         -e "/Requires-Dist: keras/d" \
         -e "/Requires-Dist: tensorflow-io-gcs-filesystem/d"
@@ -168,7 +169,7 @@ in buildPythonPackage {
     '';
 
   # Upstream has a pip hack that results in bin/tensorboard being in both tensorflow
-  # and the propagated input tensorflow-tensorboard, which causes environment collisions.
+  # and the propagated input tensorboard, which causes environment collisions.
   # Another possibility would be to have tensorboard only in the buildInputs
   # See https://github.com/NixOS/nixpkgs/pull/44381 for more information.
   postInstall = ''
@@ -177,11 +178,14 @@ in buildPythonPackage {
 
   pythonImportsCheck = [
     "tensorflow"
-    "tensorflow.keras"
     "tensorflow.python"
     "tensorflow.python.framework"
   ];
 
+  passthru = {
+    inherit cudaPackages;
+  };
+
   meta = with lib; {
     description = "Computation using data flow graphs for scalable machine learning";
     homepage = "http://tensorflow.org";
diff --git a/pkgs/development/python-modules/tensorflow/binary-hashes.nix b/pkgs/development/python-modules/tensorflow/binary-hashes.nix
index 4b2f9d5284077..0d221452bb72b 100644
--- a/pkgs/development/python-modules/tensorflow/binary-hashes.nix
+++ b/pkgs/development/python-modules/tensorflow/binary-hashes.nix
@@ -1,39 +1,51 @@
 {
-version = "2.7.0";
+version = "2.8.0";
 linux_py_37_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.7.0-cp37-cp37m-manylinux2010_x86_64.whl";
-  sha256 = "1irw4ri1fbxbj251cnjbr12gxsyj2k30asxjfxjpxhc9b0cchhx0";
+  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.8.0-cp37-cp37m-manylinux2010_x86_64.whl";
+  sha256 = "1nza8i0nvqgrcwj2yy74a3wgpgf52svf0yrz9xd6l18gsifkmkx0";
 };
 linux_py_38_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.7.0-cp38-cp38-manylinux2010_x86_64.whl";
-  sha256 = "11a1rimr998lvvjdg03rqr8h2h7x6bbd4gyv74biwgaxmjczvjdj";
+  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.8.0-cp38-cp38-manylinux2010_x86_64.whl";
+  sha256 = "1li2gllznd5w3hh2w9ibh5lkvvssnwh5vhk7i873dxjjdl1w8sqy";
 };
 linux_py_39_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.7.0-cp39-cp39-manylinux2010_x86_64.whl";
-  sha256 = "0x1zzmgq7hl2k98p8870h0yhaik39nc1ckvxirjx8simpj8ghsbp";
+  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.8.0-cp39-cp39-manylinux2010_x86_64.whl";
+  sha256 = "03swmyak1hb0k6b2fi9a8g76fi57jz30ym015a576iwp42pqcgkq";
+};
+linux_py_310_cpu = {
+  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.8.0-cp310-cp310-manylinux2010_x86_64.whl";
+  sha256 = "";
 };
 linux_py_37_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.7.0-cp37-cp37m-manylinux2010_x86_64.whl";
-  sha256 = "1x5yyxzkly9gdyhcfq4x7w7sqqxh6cw5qnfwbvzj5349xwrm63wi";
+  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.8.0-cp37-cp37m-manylinux2010_x86_64.whl";
+  sha256 = "06q3vjrlqfkqa5r18hla3d8ms1sqa897g7fpnqizgh4k8skhm9fq";
 };
 linux_py_38_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.7.0-cp38-cp38-manylinux2010_x86_64.whl";
-  sha256 = "0prxa8yc6lbq62vnh8cw6dhcrnkdjih62kbg6pbw4gmgcbf6v6fg";
+  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.8.0-cp38-cp38-manylinux2010_x86_64.whl";
+  sha256 = "0099aa5g19zi74n6bamhmmcgp096m41fhr61swkwnh92myz1ylgb";
 };
 linux_py_39_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.7.0-cp39-cp39-manylinux2010_x86_64.whl";
-  sha256 = "0jjv8vm20d0airml68bxhassp4yg09rcz2a39aa511cz8mavj0l6";
+  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.8.0-cp39-cp39-manylinux2010_x86_64.whl";
+  sha256 = "0zw20yvlqga7znr13pa10qxww42mj64209syiicgvhs74ji1zdca";
+};
+linux_py_310_gpu = {
+  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.8.0-cp310-cp310-manylinux2010_x86_64.whl";
+  sha256 = "06kwjlhzl46jhjcg836crys2aw39x0g8s1s9qfscm1kbwzbww1hq";
 };
 mac_py_37_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.7.0-cp37-cp37m-macosx_10_11_x86_64.whl";
-  sha256 = "1gr95ck0h4wzhdacjfhkzxdw4zglm85fc54swqhyzzv1f5n9vw8j";
+  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.8.0-cp37-cp37m-macosx_10_14_x86_64.whl";
+  sha256 = "1z5w6wx3h45fz0ji9kn2m2kf963bqbvmqc7cyjv4ixymd0rp4jps";
 };
 mac_py_38_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.7.0-cp38-cp38-macosx_10_11_x86_64.whl";
-  sha256 = "1h3qlvlrwyvxynh5flvyqk7grbvyqc21ljqhlvds436hpn2kqrgb";
+  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.8.0-cp38-cp38-macosx_10_14_x86_64.whl";
+  sha256 = "1h5v8flhc5zb038ld0av7638cyqqkrib379lrlzvf8dw7q8ry3yx";
 };
 mac_py_39_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.7.0-cp39-cp39-macosx_10_11_x86_64.whl";
-  sha256 = "0pyj1p2yik6ysdqn8n6cz1nqni0s9xx51ifmvdx4dl3hrzp86jz2";
+  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.8.0-cp39-cp39-macosx_10_14_x86_64.whl";
+  sha256 = "0qsmlrf8h2gxkimniyrz9bniaqpdsd92pficmsrq30k8rkz2bwjj";
+};
+mac_py_310_cpu = {
+  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.8.0-cp310-cp310-macosx_10_14_x86_64.whl";
+  sha256 = "0lnwbvil6c6ai10lcaj9ay9pya207s9g204273msjalm1hpbmhvq";
 };
 }
diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix
index 517faef3f8fc7..3a8eba3ba97fc 100644
--- a/pkgs/development/python-modules/tensorflow/default.nix
+++ b/pkgs/development/python-modules/tensorflow/default.nix
@@ -1,23 +1,23 @@
-{ stdenv, bazel_3, buildBazelPackage, isPy3k, lib, fetchFromGitHub, symlinkJoin
+{ stdenv, bazel_4, buildBazelPackage, isPy3k, lib, fetchFromGitHub, symlinkJoin
 , addOpenGLRunpath, fetchpatch, patchelfUnstable
 # Python deps
 , buildPythonPackage, pythonOlder, python
 # Python libraries
-, numpy, tensorflow-tensorboard, absl-py
+, numpy, tensorboard, absl-py
 , setuptools, wheel, keras, keras-preprocessing, google-pasta
 , opt-einsum, astunparse, h5py
 , termcolor, grpcio, six, wrapt, protobuf-python, tensorflow-estimator
-, dill, flatbuffers-python, tblib, typing-extensions
+, dill, flatbuffers-python, portpicker, tblib, typing-extensions
 # Common deps
 , git, pybind11, which, binutils, glibcLocales, cython, perl
 # Common libraries
-, jemalloc, mpi, gast, grpc, sqlite, boringssl, jsoncpp
+, jemalloc, mpi, gast, grpc, sqlite, boringssl, jsoncpp, nsync
 , curl, snappy, flatbuffers-core, lmdb-core, icu, double-conversion, libpng, libjpeg_turbo, giflib, protobuf-core
-# Upsteam by default includes cuda support since tensorflow 1.15. We could do
+# Upstream by default includes cuda support since tensorflow 1.15. We could do
 # that in nix as well. It would make some things easier and less confusing, but
 # it would also make the default tensorflow package unfree. See
 # https://groups.google.com/a/tensorflow.org/forum/#!topic/developers/iRCt5m4qUz0
-, cudaSupport ? false, cudatoolkit ? null, cudnn ? null, nccl ? null
+, cudaSupport ? false, cudaPackages ? {}
 , mklSupport ? false, mkl ? null
 , tensorboardSupport ? true
 # XLA without CUDA is broken
@@ -31,6 +31,10 @@
 , Foundation, Security, cctools, llvmPackages_11
 }:
 
+let
+  inherit (cudaPackages) cudatoolkit cudnn nccl;
+in
+
 assert cudaSupport -> cudatoolkit != null
                    && cudnn != null;
 
@@ -72,7 +76,7 @@ let
 
   tfFeature = x: if x then "1" else "0";
 
-  version = "2.7.1";
+  version = "2.8.0";
   variant = if cudaSupport then "-gpu" else "";
   pname = "tensorflow${variant}";
 
@@ -94,8 +98,8 @@ let
       setuptools
       six
       tblib
+      tensorboard
       tensorflow-estimator
-      tensorflow-tensorboard
       termcolor
       typing-extensions
       wheel
@@ -179,20 +183,15 @@ let
     stdenv = llvmPackages_11.stdenv;
   })) {
     name = "${pname}-${version}";
-    bazel = bazel_3;
+    bazel = bazel_4;
 
     src = fetchFromGitHub {
       owner = "tensorflow";
       repo = "tensorflow";
       rev = "v${version}";
-      sha256 = "1qwzbqq899swrwrwmm6z7mq9sc55gyh0r4ca0mcnchbvn7w0qbkh";
+      hash = "sha256-w78ehpsnXElIyYftgZEq3b/+TSrRN1gyWVUVlSZpGFM=";
     };
 
-    patches = [
-      # Patch the sources to compile with protobuf >= 3.16.
-      ./system-protobuf.patch
-    ];
-
     # On update, it can be useful to steal the changes from gentoo
     # https://gitweb.gentoo.org/repo/gentoo.git/tree/sci-libs/tensorflow
 
@@ -207,20 +206,20 @@ let
       git
 
       # libs taken from system through the TF_SYS_LIBS mechanism
-      grpc
-      sqlite
       boringssl
-      jsoncpp
       curl
-      pybind11
-      snappy
+      double-conversion
       flatbuffers-core
+      giflib
+      grpc
       icu
-      double-conversion
-      libpng
+      jsoncpp
       libjpeg_turbo
-      giflib
+      libpng
       lmdb-core
+      pybind11
+      snappy
+      sqlite
     ] ++ lib.optionals cudaSupport [
       cudatoolkit
       cudnn
@@ -229,6 +228,8 @@ let
     ] ++ lib.optionals stdenv.isDarwin [
       Foundation
       Security
+    ] ++ lib.optionals (!stdenv.isDarwin) [
+      nsync
     ];
 
     # arbitrarily set to the current latest bazel version, overly careful
@@ -237,7 +238,7 @@ let
     # Take as many libraries from the system as possible. Keep in sync with
     # list of valid syslibs in
     # https://github.com/tensorflow/tensorflow/blob/master/third_party/systemlibs/syslibs_configure.bzl
-    TF_SYSTEM_LIBS = lib.concatStringsSep "," [
+    TF_SYSTEM_LIBS = lib.concatStringsSep "," ([
       "absl_py"
       "astor_archive"
       "astunparse_archive"
@@ -253,7 +254,6 @@ let
       "cython"
       "dill_archive"
       "double_conversion"
-      "enum34_archive"
       "flatbuffers"
       "functools32_archive"
       "gast_archive"
@@ -264,7 +264,6 @@ let
       "libjpeg_turbo"
       "lmdb"
       "nasm"
-      # "nsync" # not packaged in nixpkgs
       "opt_einsum_archive"
       "org_sqlite"
       "pasta"
@@ -277,7 +276,9 @@ let
       "typing_extensions_archive"
       "wrapt"
       "zlib"
-    ];
+    ] ++ lib.optionals (!stdenv.isDarwin) [
+      "nsync" # fails to build on darwin
+    ]);
 
     INCLUDEDIR = "${includes_joined}/include";
 
@@ -361,12 +362,12 @@ let
     fetchAttrs = {
       # cudaSupport causes fetch of ncclArchive, resulting in different hashes
       sha256 = if cudaSupport then
-        "sha256-+szc2mRoImwijzbj3nw6HmZp3DeRjjPRU5yC+5AEbkg="
+        "sha256-dQEyfueuQPcGvbhuh8Al45np3nRLDw2PCfC2lEqAH50="
       else
         if stdenv.isDarwin then
-          "sha256-+bwIzp6t7gRJPcI8B5oyuf9z0AjCAyggUR7x+vv5kFs="
+          "sha256-yfnZVtKWqNQGvlfq2owXhem0LmzDYriVfYgf1ZRlaDo="
         else
-          "sha256-5yOYmeGpJq4Chi55H7iblxyRXVktgnePtpYTPvBs538=";
+          "sha256:12i1ix2xwq77f3h8qr4h57g0aazrdsjjqa536cpwx3n1mvl5p6qi";
     };
 
     buildAttrs = {
@@ -428,18 +429,20 @@ in buildPythonPackage {
 
   # Adjust dependency requirements:
   # - Relax gast version requirement that doesn't match what we have packaged
+  # - Relax tf-estimator, that would require a nightly version
   # - The purpose of python3Packages.libclang is not clear at the moment and we don't have it packaged yet
   # - keras and tensorlow-io-gcs-filesystem will be considered as optional for now.
   postPatch = ''
     sed -i setup.py \
       -e "s/'gast[^']*',/'gast',/" \
+      -e "s/'tf-estimator-nightly[^']*',/'tensorflow-estimator',/" \
       -e "/'libclang[^']*',/d" \
       -e "/'keras[^']*',/d" \
       -e "/'tensorflow-io-gcs-filesystem[^']*',/d"
   '';
 
   # Upstream has a pip hack that results in bin/tensorboard being in both tensorflow
-  # and the propagated input tensorflow-tensorboard, which causes environment collisions.
+  # and the propagated input tensorboard, which causes environment collisions.
   # Another possibility would be to have tensorboard only in the buildInputs
   # https://github.com/tensorflow/tensorflow/blob/v1.7.1/tensorflow/tools/pip_package/setup.py#L79
   postInstall = ''
@@ -452,7 +455,6 @@ in buildPythonPackage {
   propagatedBuildInputs = [
     absl-py
     astunparse
-    dill
     flatbuffers-python
     gast
     google-pasta
@@ -463,13 +465,12 @@ in buildPythonPackage {
     opt-einsum
     protobuf-python
     six
-    tblib
     tensorflow-estimator
     termcolor
     typing-extensions
     wrapt
   ] ++ lib.optionals withTensorboard [
-    tensorflow-tensorboard
+    tensorboard
   ];
 
   # remove patchelfUnstable once patchelf 0.14 with https://github.com/NixOS/patchelf/pull/256 becomes the default
@@ -486,7 +487,13 @@ in buildPythonPackage {
   # Actual tests are slow and impure.
   # TODO try to run them anyway
   # TODO better test (files in tensorflow/tools/ci_build/builds/*test)
-  checkInputs = [ keras ];
+  # TEST_PACKAGES in tensorflow/tools/pip_package/setup.py
+  checkInputs = [
+    dill
+    keras
+    portpicker
+    tblib
+  ];
   checkPhase = ''
     ${python.interpreter} <<EOF
     # A simple "Hello world"
@@ -511,6 +518,7 @@ in buildPythonPackage {
   # Regression test for #77626 removed because not more `tensorflow.contrib`.
 
   passthru = {
+    inherit cudaPackages;
     deps = bazel-build.deps;
     libtensorflow = bazel-build.out;
   };
diff --git a/pkgs/development/python-modules/tensorflow/prefetcher.sh b/pkgs/development/python-modules/tensorflow/prefetcher.sh
index bb189bb06d656..3edc671582710 100755
--- a/pkgs/development/python-modules/tensorflow/prefetcher.sh
+++ b/pkgs/development/python-modules/tensorflow/prefetcher.sh
@@ -1,6 +1,6 @@
 #!/usr/bin/env bash
 
-version="2.7.0"
+version="2.8.0"
 
 bucket="https://storage.googleapis.com/tensorflow"
 
@@ -11,12 +11,15 @@ url_and_key_list=(
 "linux_py_37_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp37-cp37m-manylinux2010_x86_64.whl"
 "linux_py_38_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp38-cp38-manylinux2010_x86_64.whl"
 "linux_py_39_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp39-cp39-manylinux2010_x86_64.whl"
+"linux_py_310_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp310-cp310-manylinux2010_x86_64.whl"
 "linux_py_37_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp37-cp37m-manylinux2010_x86_64.whl"
 "linux_py_38_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp38-cp38-manylinux2010_x86_64.whl"
 "linux_py_39_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp39-cp39-manylinux2010_x86_64.whl"
-"mac_py_37_cpu $bucket/mac/cpu/tensorflow-${version}-cp37-cp37m-macosx_10_11_x86_64.whl"
-"mac_py_38_cpu $bucket/mac/cpu/tensorflow-${version}-cp38-cp38-macosx_10_11_x86_64.whl"
-"mac_py_39_cpu $bucket/mac/cpu/tensorflow-${version}-cp39-cp39-macosx_10_11_x86_64.whl"
+"linux_py_310_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp310-cp310-manylinux2010_x86_64.whl"
+"mac_py_37_cpu $bucket/mac/cpu/tensorflow-${version}-cp37-cp37m-macosx_10_14_x86_64.whl"
+"mac_py_38_cpu $bucket/mac/cpu/tensorflow-${version}-cp38-cp38-macosx_10_14_x86_64.whl"
+"mac_py_39_cpu $bucket/mac/cpu/tensorflow-${version}-cp39-cp39-macosx_10_14_x86_64.whl"
+"mac_py_310_cpu $bucket/mac/cpu/tensorflow-${version}-cp310-cp310-macosx_10_14_x86_64.whl"
 )
 
 hashfile=binary-hashes.nix
diff --git a/pkgs/development/python-modules/tensorflow/system-protobuf.patch b/pkgs/development/python-modules/tensorflow/system-protobuf.patch
deleted file mode 100644
index dce6df810464f..0000000000000
--- a/pkgs/development/python-modules/tensorflow/system-protobuf.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/tensorflow/core/kernels/example_parsing_ops.cc b/tensorflow/core/kernels/example_parsing_ops.cc
-index a1265cfb5c6..ada919bbd7b 100644
---- a/tensorflow/core/kernels/example_parsing_ops.cc
-+++ b/tensorflow/core/kernels/example_parsing_ops.cc
-@@ -1218,7 +1218,7 @@ class DecodeJSONExampleOp : public OpKernel {
-           resolver_.get(), "type.googleapis.com/tensorflow.Example", &in, &out);
-       OP_REQUIRES(ctx, status.ok(),
-                   errors::InvalidArgument("Error while parsing JSON: ",
--                                          string(status.error_message())));
-+                                          string(status.message())));
-     }
-   }
- 
diff --git a/pkgs/development/python-modules/terminado/default.nix b/pkgs/development/python-modules/terminado/default.nix
index 28b0eb09dbed5..30673971a1641 100644
--- a/pkgs/development/python-modules/terminado/default.nix
+++ b/pkgs/development/python-modules/terminado/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "terminado";
-  version = "0.12.1";
+  version = "0.13.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b20fd93cc57c1678c799799d117874367cc07a3d2d55be95205b1a88fa08393f";
+    sha256 = "sha256-lNHPq2NSWZP31cm0aaUKGNDN85Q1tZeFcVU53UHjbA0=";
   };
 
   propagatedBuildInputs = [ ptyprocess tornado ];
diff --git a/pkgs/development/python-modules/teslajsonpy/default.nix b/pkgs/development/python-modules/teslajsonpy/default.nix
index 5cdc1dafc0345..5cd0044bb5947 100644
--- a/pkgs/development/python-modules/teslajsonpy/default.nix
+++ b/pkgs/development/python-modules/teslajsonpy/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "teslajsonpy";
-  version = "1.9.0";
+  version = "2.0.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -23,8 +23,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "zabuldon";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-Q/ltNdr2Huvfj1RmKFopJbaR4FSM7ziWadmDKPS26vc=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-EVSKBsIhYm5UqFEZ3snKF1aEW3+JjE0Kzs3gYnFQsUc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/test-tube/default.nix b/pkgs/development/python-modules/test-tube/default.nix
index 1cc20cc2cca7f..5eac0d60b6cff 100644
--- a/pkgs/development/python-modules/test-tube/default.nix
+++ b/pkgs/development/python-modules/test-tube/default.nix
@@ -8,7 +8,7 @@
 , numpy
 , pandas
 , pytorch
-, tensorflow-tensorboard
+, tensorboard
 }:
 
 buildPythonPackage rec {
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     numpy
     pandas
     pytorch
-    tensorflow-tensorboard
+    tensorboard
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/testing-common-database/default.nix b/pkgs/development/python-modules/testing-common-database/default.nix
index 1d50ed1ec49d9..ff323b85e720f 100644
--- a/pkgs/development/python-modules/testing-common-database/default.nix
+++ b/pkgs/development/python-modules/testing-common-database/default.nix
@@ -9,6 +9,11 @@ buildPythonPackage rec {
     sha256 = "0wvdv0frl7xib05sixjv9m6jywaa2wdhdhsqqdfk45akk2r80pcn";
   };
 
+  postPatch =  ''
+    substituteInPlace src/testing/common/database.py \
+      --replace "collections.Callable" "collections.abc.Callable"
+  '';
+
   # There are no unit tests
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/testpath/default.nix b/pkgs/development/python-modules/testpath/default.nix
index e11ddeed50a6f..4db5aa362f4a0 100644
--- a/pkgs/development/python-modules/testpath/default.nix
+++ b/pkgs/development/python-modules/testpath/default.nix
@@ -2,18 +2,24 @@
 , stdenv
 , buildPythonPackage
 , fetchPypi
+, flit-core
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "testpath";
-  version = "0.5.0";
+  version = "0.6.0";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "05z4s4d5i1ja16hiv4jhqv63fvg1a4vw77s0ay1sw11hrl5pmkqs";
+    sha256 = "sha256-LxuX5kQsAmgevgG9hPUxAop8rqGvOCUAD1I0XDAoXg8=";
   };
 
+  nativeBuildInputs = [
+    flit-core
+  ];
+
   checkInputs = [
     pytestCheckHook
   ];
diff --git a/pkgs/development/python-modules/tifffile/default.nix b/pkgs/development/python-modules/tifffile/default.nix
index 01294ff5007f0..0faea93ebdeb7 100644
--- a/pkgs/development/python-modules/tifffile/default.nix
+++ b/pkgs/development/python-modules/tifffile/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "tifffile";
-  version = "2022.2.9";
+  version = "2022.3.25";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ftp0EXZDaBuyyqaVtI854iQ7SIf3z5kdWt/9gT5cg3M=";
+    hash = "sha256-bZQ/LAGxo0pHbJY9EZVl+6EI9VngYUJsY6UVeEaVntk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/tiledb/default.nix b/pkgs/development/python-modules/tiledb/default.nix
index b310defa45d19..eabb2aff006ae 100644
--- a/pkgs/development/python-modules/tiledb/default.nix
+++ b/pkgs/development/python-modules/tiledb/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "tiledb";
-  version = "0.12.0";
+  version = "0.13.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "TileDB-Inc";
     repo = "TileDB-Py";
     rev = version;
-    sha256 = "0iz16sgr5dpwc1jvb6brcmgvvg0npjdd98q4wgkqmvg7qif92zls";
+    sha256 = "sha256-ku+9kMXXrlPy4teV5KpTXAwExhIoPpAsGAHIBvsl9KI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/tldextract/default.nix b/pkgs/development/python-modules/tldextract/default.nix
index f2f15c8bb7fa9..139f58660c4cd 100644
--- a/pkgs/development/python-modules/tldextract/default.nix
+++ b/pkgs/development/python-modules/tldextract/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname   = "tldextract";
-  version = "3.2.0";
+  version = "3.2.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-PUtqIQVgC30CkOoje/MLaw3HY+UPy+QOhJoBm9bby/8=";
+    sha256 = "sha256-rJMEzfgLCcN+6pZXmeDZrAqhzLZTH65Uiqvgm68aJUk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/toggl-cli/default.nix b/pkgs/development/python-modules/toggl-cli/default.nix
index 30c3f08f52e7c..af6132cd2771b 100644
--- a/pkgs/development/python-modules/toggl-cli/default.nix
+++ b/pkgs/development/python-modules/toggl-cli/default.nix
@@ -58,8 +58,9 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace requirements.txt \
       --replace "notify-py==0.3.1" "notify-py>=0.3.1" \
-      --replace "click==7.1.2" "click>=7.1.2" \
-      --replace "pbr==5.5.1" "pbr>=5.5.1"
+      --replace "click==8.0.3" "click>=8.0.3" \
+      --replace "pbr==5.8.0" "pbr>=5.8.0" \
+      --replace "inquirer==2.9.1" "inquirer>=2.9.1"
     substituteInPlace pytest.ini \
       --replace ' --cov toggl -m "not premium"' ""
   '';
diff --git a/pkgs/development/python-modules/tomli/default.nix b/pkgs/development/python-modules/tomli/default.nix
index 551655eebf0d0..c9c9cb46b2c75 100644
--- a/pkgs/development/python-modules/tomli/default.nix
+++ b/pkgs/development/python-modules/tomli/default.nix
@@ -3,6 +3,7 @@
 , callPackage
 , fetchFromGitHub
 , flit-core
+, python
 
 # important downstream dependencies
 , flit
@@ -13,40 +14,28 @@
 
 buildPythonPackage rec {
   pname = "tomli";
-  version = "1.2.2";
+  version = "2.0.1";
   format = "pyproject";
 
-  outputs = [
-    "out"
-    "testsout"
-  ];
-
   src = fetchFromGitHub {
     owner = "hukkin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-oDjpNzWxTaCC1+WyBKrkR6kp90ZomcZQfyW+xKddDoM=";
+    sha256 = "sha256-v0ZMrHIIaGeORwD4JiBeLthmnKZODK5odZVL0SY4etA=";
   };
 
-  patches = [
-    # required for mypy
-    ./fix-backwards-compatibility-load.patch
-  ];
-
   nativeBuildInputs = [ flit-core ];
 
-  postInstall = ''
-    mkdir $testsout
-    cp -R benchmark/ pyproject.toml tests/ $testsout/
-  '';
-
   pythonImportsCheck = [ "tomli" ];
 
-  # check in passthru.tests.pytest to escape infinite recursion with setuptools-scm
-  doCheck = false;
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} -m unittest discover
+    runHook postCheck
+  '';
 
   passthru.tests = {
-    pytest = callPackage ./tests.nix { };
+    # test downstream dependencies
     inherit flit black mypy setuptools-scm;
   };
 
diff --git a/pkgs/development/python-modules/tomli/fix-backwards-compatibility-load.patch b/pkgs/development/python-modules/tomli/fix-backwards-compatibility-load.patch
deleted file mode 100644
index edfc2f3834956..0000000000000
--- a/pkgs/development/python-modules/tomli/fix-backwards-compatibility-load.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/tomli/_parser.py b/tomli/_parser.py
-index 89e81c3..6fb1bfd 100644
---- a/tomli/_parser.py
-+++ b/tomli/_parser.py
-@@ -1,6 +1,6 @@
- import string
- from types import MappingProxyType
--from typing import Any, BinaryIO, Dict, FrozenSet, Iterable, NamedTuple, Optional, Tuple
-+from typing import IO, Union, Any, BinaryIO, Dict, FrozenSet, Iterable, NamedTuple, Optional, Tuple
- import warnings
- 
- from tomli._re import (
-@@ -48,7 +48,7 @@ class TOMLDecodeError(ValueError):
-     """An error raised if a document is not valid TOML."""
- 
- 
--def load(fp: BinaryIO, *, parse_float: ParseFloat = float) -> Dict[str, Any]:
-+def load(fp: Union[IO, BinaryIO], *, parse_float: ParseFloat = float) -> Dict[str, Any]:
-     """Parse TOML from a binary file object."""
-     s_bytes = fp.read()
-     try:
diff --git a/pkgs/development/python-modules/tomli/tests.nix b/pkgs/development/python-modules/tomli/tests.nix
deleted file mode 100644
index 5d3d67dbd128c..0000000000000
--- a/pkgs/development/python-modules/tomli/tests.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ buildPythonPackage
-, tomli
-, pytestCheckHook
-, python-dateutil
-}:
-
-buildPythonPackage rec {
-  pname = "tomli-tests";
-  inherit (tomli) version;
-
-  src = tomli.testsout;
-
-  dontBuild = true;
-  dontInstall = true;
-
-  checkInputs = [
-    pytestCheckHook
-    python-dateutil
-    tomli
-  ];
-}
diff --git a/pkgs/development/python-modules/tomlkit/default.nix b/pkgs/development/python-modules/tomlkit/default.nix
index 6c8455f060ec0..fbe6c7be4d12c 100644
--- a/pkgs/development/python-modules/tomlkit/default.nix
+++ b/pkgs/development/python-modules/tomlkit/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "tomlkit";
-  version = "0.8.0";
+  version = "0.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "29e84a855712dfe0e88a48f6d05c21118dbafb283bb2eed614d46f80deb8e9a1";
+    sha256 = "sha256-PFF4lOre9T6QctND035EJ7jwtiAKcLfJoZsuvR9TuVE=";
   };
 
   propagatedBuildInputs =
diff --git a/pkgs/development/python-modules/torch-tb-profiler/default.nix b/pkgs/development/python-modules/torch-tb-profiler/default.nix
index fc53c5ba8232c..2843910613672 100644
--- a/pkgs/development/python-modules/torch-tb-profiler/default.nix
+++ b/pkgs/development/python-modules/torch-tb-profiler/default.nix
@@ -4,7 +4,7 @@
 , pandas
 , pytestCheckHook
 , pytorch
-, tensorflow-tensorboard
+, tensorboard
 , torchvision
 }:
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   # See https://discourse.nixos.org/t/extracting-sub-directory-from-fetchgit-or-fetchurl-or-any-derivation/8830.
   src = "${repo}/tb_plugin";
 
-  propagatedBuildInputs = [ pandas tensorflow-tensorboard ];
+  propagatedBuildInputs = [ pandas tensorboard ];
 
   checkInputs = [ pytestCheckHook pytorch torchvision ];
 
diff --git a/pkgs/development/python-modules/torchinfo/default.nix b/pkgs/development/python-modules/torchinfo/default.nix
index 331729e25c581..da0544c299cd4 100644
--- a/pkgs/development/python-modules/torchinfo/default.nix
+++ b/pkgs/development/python-modules/torchinfo/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "torchinfo";
-  version = "1.6.3";
+  version = "1.6.5";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-g1xhtdwygzPTTswP8iZ364ynBQE7D+aAsZ3d9EpyvIA=";
+    sha256 = "sha256-Vg/TXD+/VMIv1wHywaOuEj4MDTq90lUo99n+Nppu0uI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/torchvision/default.nix b/pkgs/development/python-modules/torchvision/default.nix
index 7b6384966ab1c..0cb280af67483 100644
--- a/pkgs/development/python-modules/torchvision/default.nix
+++ b/pkgs/development/python-modules/torchvision/default.nix
@@ -11,12 +11,12 @@
 , pillow
 , pytorch
 , pytest
-, cudatoolkit
-, cudnn
 , cudaSupport ? pytorch.cudaSupport or false # by default uses the value from pytorch
 }:
 
 let
+  inherit (pytorch.cudaPackages) cudatoolkit cudnn;
+
   cudatoolkit_joined = symlinkJoin {
     name = "${cudatoolkit.name}-unsplit";
     paths = [ cudatoolkit.out cudatoolkit.lib ];
diff --git a/pkgs/development/python-modules/tornado/5.nix b/pkgs/development/python-modules/tornado/5.nix
index 2f3ba5c1c2aae..f0dc14b5fa2ab 100644
--- a/pkgs/development/python-modules/tornado/5.nix
+++ b/pkgs/development/python-modules/tornado/5.nix
@@ -3,12 +3,13 @@
 , buildPythonPackage
 , fetchPypi
 , isPy27
+, pythonAtLeast
 }:
 
 buildPythonPackage rec {
   pname = "tornado";
   version = "5.1.1";
-  disabled = isPy27;
+  disabled = isPy27 || pythonAtLeast "3.10";
 
   # We specify the name of the test files to prevent
   # https://github.com/NixOS/nixpkgs/issues/14634
diff --git a/pkgs/development/python-modules/tornado/default.nix b/pkgs/development/python-modules/tornado/default.nix
index 893943cbc7201..4519641c4820e 100644
--- a/pkgs/development/python-modules/tornado/default.nix
+++ b/pkgs/development/python-modules/tornado/default.nix
@@ -2,28 +2,34 @@
 , python
 , buildPythonPackage
 , fetchPypi
+, pycares
+, pycurl
+, twisted
 }:
 
 buildPythonPackage rec {
   pname = "tornado";
   version = "6.1";
 
-  # We specify the name of the test files to prevent
-  # https://github.com/NixOS/nixpkgs/issues/14634
-  checkPhase = ''
-    ${python.interpreter} -m unittest discover *_test.py
-  '';
-
   src = fetchPypi {
     inherit pname version;
     sha256 = "33c6e81d7bd55b468d2e793517c909b139960b6c790a60b7991b9b6b76fb9791";
   };
 
+  checkInputs = [
+    pycares
+    pycurl
+    twisted
+  ];
+
+  pythonImportsCheck = [ "tornado" ];
+
   __darwinAllowLocalNetworking = true;
 
-  meta = {
+  meta = with lib; {
     description = "A web framework and asynchronous networking library";
     homepage = "https://www.tornadoweb.org/";
-    license = lib.licenses.asl20;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/towncrier/default.nix b/pkgs/development/python-modules/towncrier/default.nix
index b039277f20199..9953e2c17be57 100644
--- a/pkgs/development/python-modules/towncrier/default.nix
+++ b/pkgs/development/python-modules/towncrier/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "towncrier";
-  version = "21.3.0";
+  version = "21.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6eed0bc924d72c98c000cb8a64de3bd566e5cb0d11032b73fcccf8a8f956ddfe";
+    sha256 = "sha256-nLb0XBbhoe7J0OdlEWXnvmDNCrgdE6XJbKl6SYrof0g=";
   };
 
   propagatedBuildInputs = [
@@ -31,12 +31,18 @@ buildPythonPackage rec {
 
   # zope.interface collision
   doCheck = !isPy27;
+
+  preCheck = ''
+    export PATH=$out/bin:$PATH
+  '';
+
   checkInputs = [
     git
     mock
     twisted
     pytestCheckHook
   ];
+
   pythonImportsCheck = [ "towncrier" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/tpm2-pytss/default.nix b/pkgs/development/python-modules/tpm2-pytss/default.nix
index 544c1a3084a6e..e003d075a1582 100644
--- a/pkgs/development/python-modules/tpm2-pytss/default.nix
+++ b/pkgs/development/python-modules/tpm2-pytss/default.nix
@@ -1,37 +1,58 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder
-, pkg-config, swig
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, asn1crypto
+, cffi
+, cryptography
+, ibm-sw-tpm2
+, pkg-config
+, pkgconfig
+, pycparser
+, pytestCheckHook
+, python
+, setuptools-scm
 , tpm2-tss
-, cryptography, ibm-sw-tpm2
 }:
 
 buildPythonPackage rec {
   pname = "tpm2-pytss";
-
-  # Last version on github is 0.2.4, but it looks
-  # like a mistake (it's missing commits from 0.1.9)
-  version = "0.1.9";
-  disabled = pythonOlder "3.5";
+  version = "1.1.0";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-v5Xth0A3tFnLFg54nvWYL2TD201e/GWv+2y5Qc60CmU=";
+    sha256 = "sha256-O0d1b99/V8b3embg8veerTrJGSVb/prlPVb7qSHErdQ=";
   };
-  postPatch = ''
-    substituteInPlace tpm2_pytss/config.py --replace \
-      'SYSCONFDIR = CONFIG.get("sysconfdir", "/etc")' \
-      'SYSCONFDIR = "${tpm2-tss}/etc"'
-  '';
 
-  nativeBuildInputs = [ pkg-config swig ];
-  # The TCTI is dynamically loaded from tpm2-tss, we have to provide the library to the end-user
-  propagatedBuildInputs = [ tpm2-tss ];
+  nativeBuildInputs = [
+    cffi
+    pkgconfig
+    # somehow propagating from pkgconfig does not work
+    pkg-config
+    setuptools-scm
+  ];
 
-  checkInputs = [
+  buildInputs = [
+    tpm2-tss
+  ];
+
+  propagatedBuildInputs = [
+    cffi
+    asn1crypto
     cryptography
-    # provide tpm_server used as simulator for the tests
+  ];
+
+  # https://github.com/tpm2-software/tpm2-pytss/issues/341
+  doCheck = false;
+
+  checkInputs = [
     ibm-sw-tpm2
+    pytestCheckHook
   ];
 
+  pythonImportsCheck = [ "tpm2_pytss" ];
+
   meta = with lib; {
     homepage = "https://github.com/tpm2-software/tpm2-pytss";
     description = "TPM2 TSS Python bindings for Enhanced System API (ESYS)";
diff --git a/pkgs/development/python-modules/tqdm/default.nix b/pkgs/development/python-modules/tqdm/default.nix
index 3973d68b6c381..40b6b47a946d2 100644
--- a/pkgs/development/python-modules/tqdm/default.nix
+++ b/pkgs/development/python-modules/tqdm/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "tqdm";
-  version = "4.62.3";
+  version = "4.63.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d359de7217506c9851b7869f3708d8ee53ed70a1b8edbba4dbcb47442592920d";
+    sha256 = "sha256-QjCkkRmkFsiMxH0NLTLV2Q8aKC1eSX1JgBlQcE5Jhj0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/trimesh/default.nix b/pkgs/development/python-modules/trimesh/default.nix
index 54e2da8e4ed19..0810acd1ea470 100644
--- a/pkgs/development/python-modules/trimesh/default.nix
+++ b/pkgs/development/python-modules/trimesh/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "trimesh";
-  version = "3.10.7";
+  version = "3.10.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-OYor+DQJkkQx8C5E0pmeGaymiYEyKkuKBLp12jkrhS8=";
+    sha256 = "sha256-SFG3wGGFxzZKfNyIQrpDGblL2vC0pQguWIYdwF0Mg5A=";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/pkgs/development/python-modules/trio/default.nix b/pkgs/development/python-modules/trio/default.nix
index e667f146afc04..f9b325ecc2956 100644
--- a/pkgs/development/python-modules/trio/default.nix
+++ b/pkgs/development/python-modules/trio/default.nix
@@ -13,19 +13,45 @@
 , jedi
 , astor
 , yapf
+, coreutils
 }:
 
 buildPythonPackage rec {
   pname = "trio";
-  version = "0.19.0";
+  version = "0.20.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "895e318e5ec5e8cea9f60b473b6edb95b215e82d99556a03eb2d20c5e027efe1";
+    sha256 = "sha256-ZwpS0xFdDoeeGsg4pOuZmvMvhYFj46cE/kg53ipnYHA=";
   };
 
-  checkInputs = [ astor pytestCheckHook pyopenssl trustme jedi yapf ];
+  propagatedBuildInputs = [
+    attrs
+    sortedcontainers
+    async_generator
+    idna
+    outcome
+    sniffio
+  ] ++ lib.optionals (pythonOlder "3.7") [ contextvars ];
+
+  # tests are failing on Darwin
+  doCheck = !stdenv.isDarwin;
+
+  checkInputs = [
+    astor
+    jedi
+    pyopenssl
+    pytestCheckHook
+    trustme
+    yapf
+  ];
+
+  preCheck = ''
+    substituteInPlace trio/tests/test_subprocess.py \
+      --replace "/bin/sleep" "${coreutils}/bin/sleep"
+  '';
+
   # It appears that the build sandbox doesn't include /etc/services, and these tests try to use it.
   disabledTests = [
     "getnameinfo"
@@ -41,18 +67,6 @@ buildPythonPackage rec {
     "-W" "ignore::DeprecationWarning"
   ];
 
-  propagatedBuildInputs = [
-    attrs
-    sortedcontainers
-    async_generator
-    idna
-    outcome
-    sniffio
-  ] ++ lib.optionals (pythonOlder "3.7") [ contextvars ];
-
-  # tests are failing on Darwin
-  doCheck = !stdenv.isDarwin;
-
   meta = {
     description = "An async/await-native I/O library for humans and snake people";
     homepage = "https://github.com/python-trio/trio";
diff --git a/pkgs/development/python-modules/trytond/default.nix b/pkgs/development/python-modules/trytond/default.nix
index c332a067a76be..c2509c662d3d8 100644
--- a/pkgs/development/python-modules/trytond/default.nix
+++ b/pkgs/development/python-modules/trytond/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonApplication
+, fetchpatch
 , fetchPypi
 , pythonOlder
 , mock
@@ -24,16 +25,24 @@
 
 buildPythonApplication rec {
   pname = "trytond";
-  version = "6.2.3";
+  version = "6.2.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9be5d27aff9ae9b0ab73a8805145b2cc89900b9b513e6d5bfce89e9b7167f8f4";
+    sha256 = "sha256-Sof6A9lxU70YnCbboJr56CAdTL0cRbaRNxdvG5Tnqnw=";
   };
 
+  patches = [
+    (fetchpatch {
+      # werkzeug 2.1 compatibility for the tests
+      url = "https://github.com/tryton/trytond/commit/86a50ca06cf0d79404dbd731141ed29f8e9fcb9d.patch";
+      hash = "sha256-xY5Sdhkd0lEgscV7NHwX2YWxobWqQFElY5BJvDT+we8=";
+    })
+  ];
+
   # Tells the tests which database to use
   DB_NAME = ":memory:";
 
diff --git a/pkgs/development/python-modules/tubeup/default.nix b/pkgs/development/python-modules/tubeup/default.nix
index 65553dc18834a..e11aaa7d55596 100644
--- a/pkgs/development/python-modules/tubeup/default.nix
+++ b/pkgs/development/python-modules/tubeup/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "tubeup";
-  version = "0.0.27";
+  version = "0.0.28";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "77affb4105fc319d82c56aa5706151a4976b8b504dd252fe3db01443e27cba50";
+    sha256 = "sha256-+RvDwOHL+zwpM/nOWWS7pZIFEOx+jMrgt3FLYSshANo=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/tweepy/default.nix b/pkgs/development/python-modules/tweepy/default.nix
index a3526eb707be9..a2c815b45e258 100644
--- a/pkgs/development/python-modules/tweepy/default.nix
+++ b/pkgs/development/python-modules/tweepy/default.nix
@@ -3,16 +3,16 @@
 , buildPythonPackage
 , fetchFromGitHub
 , oauthlib
-, requests
+, pytestCheckHook
 , pythonOlder
+, requests
+, requests-oauthlib
 , vcrpy
-, pytestCheckHook
-, requests_oauthlib
 }:
 
 buildPythonPackage rec {
   pname = "tweepy";
-  version = "4.5.0";
+  version = "4.8.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -21,14 +21,14 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-mRpYPuj2B/kEaaeZlNYYnViGxWiK1xtWfDObHNduIK8=";
+    hash = "sha256-RaM2JN2WOHyZY+AxzgQLvhXg6UnevDbSFSR4jFLsYrc=";
   };
 
   propagatedBuildInputs = [
     aiohttp
     oauthlib
     requests
-    requests_oauthlib
+    requests-oauthlib
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/twilio/default.nix b/pkgs/development/python-modules/twilio/default.nix
index ddc94541422c3..13bbff916cff9 100644
--- a/pkgs/development/python-modules/twilio/default.nix
+++ b/pkgs/development/python-modules/twilio/default.nix
@@ -1,17 +1,19 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, mock
-, nose
-, pyjwt
 , pythonOlder
+
+, pyjwt
 , pytz
 , requests
+
+, mock
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "twilio";
-  version = "7.5.0";
+  version = "7.8.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -19,8 +21,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "twilio";
     repo = "twilio-python";
-    rev = version;
-    sha256 = "0h6r9nz7dcvagrjhzvnirpnjazcy9r64cwlr2bnmlrbjhwdni9rq";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-r28iKUv+i8D6JLvsJA7x8T2KFzK26limIwqsXC5jjSE=";
   };
 
   propagatedBuildInputs = [
@@ -31,7 +33,7 @@ buildPythonPackage rec {
 
   checkInputs = [
     mock
-    nose
+    pytestCheckHook
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/twill/default.nix b/pkgs/development/python-modules/twill/default.nix
index 2ae36cd5408df..f68ec91e1cbb5 100644
--- a/pkgs/development/python-modules/twill/default.nix
+++ b/pkgs/development/python-modules/twill/default.nix
@@ -1,31 +1,41 @@
-{ lib, buildPythonPackage, fetchPypi, nose
+{ lib
+, buildPythonPackage
+, fetchPypi
 , lxml
 , requests
 , pyparsing
+, pythonOlder
 }:
+
 buildPythonPackage rec {
   pname = "twill";
-  version = "3.0.1";
+  version = "3.0.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "57cde4c3a2265f1a14d80007aa4f66c2135d509555499e9b156d2b4cf5048c2c";
+    hash = "sha256-dWtrdkiR1+IBfeF9jwbOjKE2UMXDJji0iOb+USbY7zk=";
   };
 
-  checkInputs = [ nose ];
-
   propagatedBuildInputs = [
     lxml
     requests
     pyparsing
   ];
 
-  doCheck = false; # pypi package comes without tests, other homepage does not provide all verisons
+  pythonImportsCheck = [
+    "twill"
+  ];
+
+  # pypi package comes without tests, other homepage does not provide all verisons
+  doCheck = false;
 
   meta = with lib; {
-    homepage = "https://twill-tools.github.io/twill/";
     description = "A simple scripting language for Web browsing";
-    license     = licenses.mit;
+    homepage = "https://twill-tools.github.io/twill/";
+    license = licenses.mit;
     maintainers = with maintainers; [ mic92 ];
   };
 }
diff --git a/pkgs/development/python-modules/twine/default.nix b/pkgs/development/python-modules/twine/default.nix
index 82c157722d285..6cfb7f3604768 100644
--- a/pkgs/development/python-modules/twine/default.nix
+++ b/pkgs/development/python-modules/twine/default.nix
@@ -1,40 +1,42 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
 , importlib-metadata
 , keyring
 , pkginfo
-, pyblake2
 , readme_renderer
 , requests
 , requests-toolbelt
-, setuptools-scm
-, tqdm
-, colorama
+, rich
 , rfc3986
+, setuptools-scm
+, urllib3
 }:
 
 buildPythonPackage rec {
   pname = "twine";
-  version = "3.7.1";
+  version = "4.0.0";
   format = "pyproject";
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "28460a3db6b4532bde6a5db6755cf2dce6c5020bada8a641bb2c5c7a9b1f35b8";
+    sha256 = "sha256-gXqgwL3AKl6+MgUeFo4jxxoGCDNOYkx5MBHxINu8Bbc=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
+
   propagatedBuildInputs = [
     importlib-metadata
     keyring
     pkginfo
-    pyblake2
     readme_renderer
     requests
     requests-toolbelt
-    tqdm
-    colorama
     rfc3986
+    rich
+    urllib3
   ];
 
   # Requires network
diff --git a/pkgs/development/python-modules/twisted/default.nix b/pkgs/development/python-modules/twisted/default.nix
index 4641e4af40464..02a993fdf1398 100644
--- a/pkgs/development/python-modules/twisted/default.nix
+++ b/pkgs/development/python-modules/twisted/default.nix
@@ -17,12 +17,12 @@
 }:
 buildPythonPackage rec {
   pname = "Twisted";
-  version = "22.2.0";
+  version = "22.4.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "tar.gz";
-    sha256 = "1wml02jxni8k15984pskks7d6yin81w4d2ac026cpyiqd0gjpwsp";
+    sha256 = "sha256-oEeZD1ffrh4L0rffJSbU8W3NyEN3TcEIt4xS8qXxNoA=";
   };
 
   propagatedBuildInputs = [ zope_interface incremental automat constantly hyperlink pyhamcrest attrs setuptools typing-extensions ];
@@ -31,7 +31,7 @@ buildPythonPackage rec {
 
   # Patch t.p._inotify to point to libc. Without this,
   # twisted.python.runtime.platform.supportsINotify() == False
-  patchPhase = lib.optionalString stdenv.isLinux ''
+  postPatch = lib.optionalString stdenv.isLinux ''
     substituteInPlace src/twisted/python/_inotify.py --replace \
       "ctypes.util.find_library(\"c\")" "'${stdenv.glibc.out}/lib/libc.so.6'"
   '';
@@ -45,13 +45,13 @@ buildPythonPackage rec {
   '';
 
   checkPhase = ''
-    ${python.interpreter} -m unittest discover -s twisted/test
+    ${python.interpreter} -m unittest discover -s src/twisted/test
   '';
   # Tests require network
   doCheck = false;
 
   meta = with lib; {
-    homepage = "https://twistedmatrix.com/";
+    homepage = "https://github.com/twisted/twisted";
     description = "Twisted, an event-driven networking engine written in Python";
     longDescription = ''
       Twisted is an event-driven networking engine written in Python
diff --git a/pkgs/development/python-modules/twitterapi/default.nix b/pkgs/development/python-modules/twitterapi/default.nix
index acaf3bf640e5f..313249e50d9cf 100644
--- a/pkgs/development/python-modules/twitterapi/default.nix
+++ b/pkgs/development/python-modules/twitterapi/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , requests
-, requests_oauthlib
+, requests-oauthlib
 , pythonOlder
 }:
 
@@ -17,12 +17,12 @@ buildPythonPackage rec {
     owner = "geduldig";
     repo = "TwitterAPI";
     rev = "v${version}";
-    sha256 = "sha256-WqeoIZt2OGDXKPAbjm3cHI1kgiCEJC6+ROXXx4TR4b4=";
+    hash = "sha256-WqeoIZt2OGDXKPAbjm3cHI1kgiCEJC6+ROXXx4TR4b4=";
   };
 
   propagatedBuildInputs = [
     requests
-    requests_oauthlib
+    requests-oauthlib
   ];
 
   # Tests are interacting with the Twitter API
diff --git a/pkgs/development/python-modules/txaio/default.nix b/pkgs/development/python-modules/txaio/default.nix
index 074e7b8d50915..23c24f3e514a7 100644
--- a/pkgs/development/python-modules/txaio/default.nix
+++ b/pkgs/development/python-modules/txaio/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "txaio";
-  version = "21.2.1";
+  version = "22.2.1";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-fW+JdFaAIz8cTbndt0jfXojSp6N5Yr4XTA/QTI26Hcg=";
+    sha256 = "sha256-LkWCtw8EsjRZCCVGhKmEIGwNm1DjB0okpMVauiHSTQE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/txtorcon/default.nix b/pkgs/development/python-modules/txtorcon/default.nix
index c5fc7e1c6a441..167e090fca064 100644
--- a/pkgs/development/python-modules/txtorcon/default.nix
+++ b/pkgs/development/python-modules/txtorcon/default.nix
@@ -1,31 +1,24 @@
 { lib, stdenv, python, buildPythonPackage, pythonOlder, fetchPypi, isPy3k, incremental, ipaddress, twisted
-, automat, zope_interface, idna, pyopenssl, service-identity, pytest, mock, lsof
-, GeoIP}:
+, automat, zope_interface, idna, pyopenssl, service-identity, pytestCheckHook, mock, lsof
+, GeoIP }:
 
 buildPythonPackage rec {
   pname = "txtorcon";
   version = "22.0.0";
 
-  checkInputs = [ pytest mock lsof GeoIP ];
-  propagatedBuildInputs = [
-    incremental twisted automat zope_interface
-    # extra dependencies required by twisted[tls]
-    idna pyopenssl service-identity
-  ] ++ lib.optionals (!isPy3k) [ ipaddress ];
-
   src = fetchPypi {
     inherit pname version;
     sha256 = "sha256-iaG2XjKks2nWfmwWY4f7xGjMXQUidEjSOaXn6XGKoFM=";
   };
 
-  # Based on what txtorcon tox.ini will automatically test, allow back as far
-  # as Python 3.5.
-  disabled = pythonOlder "3.5";
+  propagatedBuildInputs = [
+    incremental twisted automat zope_interface
+  ] ++ twisted.extras.tls
+  ++ lib.optionals (!isPy3k) [ ipaddress ];
+
+  checkInputs = [ pytestCheckHook mock lsof GeoIP ];
 
   doCheck = !(stdenv.isDarwin && stdenv.isAarch64);
-  checkPhase = ''
-    ${python.interpreter} -m twisted.trial -j $NIX_BUILD_CORES ./test
-  '';
 
   meta = {
     description = "Twisted-based Tor controller client, with state-tracking and configuration abstractions";
diff --git a/pkgs/development/python-modules/typed-settings/default.nix b/pkgs/development/python-modules/typed-settings/default.nix
index 6e903b6840772..d9696122f151a 100644
--- a/pkgs/development/python-modules/typed-settings/default.nix
+++ b/pkgs/development/python-modules/typed-settings/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "typed-settings";
-  version = "1.0.0";
+  version = "1.0.1";
   format = "pyproject";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-c+iOb1F8+9IoRbwpMTdyDfOPW2ZEo4xDAlbzLAxgSfk=";
+    sha256 = "sha256-xrIJgQiAaSXcANMnyXMnqEkLNUP+VyxjRoi9DkX+SLA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/typeguard/default.nix b/pkgs/development/python-modules/typeguard/default.nix
index 8b2ff2de5129d..dd3f62527aa23 100644
--- a/pkgs/development/python-modules/typeguard/default.nix
+++ b/pkgs/development/python-modules/typeguard/default.nix
@@ -3,7 +3,7 @@
 , pythonOlder
 , lib
 , setuptools-scm
-, pytest
+, pytestCheckHook
 , typing-extensions
 , glibcLocales
 }:
@@ -26,12 +26,17 @@ buildPythonPackage rec {
     substituteInPlace setup.cfg --replace " --cov" ""
   '';
 
-  checkInputs = [ pytest typing-extensions ];
+  checkInputs = [ pytestCheckHook typing-extensions ];
 
-  # mypy tests aren't passing with latest mypy
-  checkPhase = ''
-    py.test . --ignore=tests/mypy
-  '';
+  disabledTestPaths = [
+    # mypy tests aren't passing with latest mypy
+    "tests/mypy"
+  ];
+
+  disabledTests = [
+    # not compatible with python3.10
+    "test_typed_dict"
+  ];
 
   disabled = pythonOlder "3.3";
 
diff --git a/pkgs/development/python-modules/typer/default.nix b/pkgs/development/python-modules/typer/default.nix
index 17008eafc1baf..9ef2b53b94705 100644
--- a/pkgs/development/python-modules/typer/default.nix
+++ b/pkgs/development/python-modules/typer/default.nix
@@ -1,30 +1,34 @@
 { lib
 , stdenv
 , buildPythonPackage
+, fetchpatch
 , fetchPypi
+, flit-core
 , click
 , pytestCheckHook
 , shellingham
 , pytest-xdist
 , pytest-sugar
 , coverage
-, mypy
-, black
-, isort
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "typer";
-  version = "0.4.0";
+  version = "0.4.1";
+  format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1pgm0zsylbmz1r96q4n3rfi0h3pn4jss2yfs83z0yxa90nmsxhv3";
+    sha256 = "sha256-Vkau8Nk2ssdhoQOT8DhO5rXH/guz5c1xCxcTTKHZnP8=";
   };
 
+  nativeBuildInputs = [
+    flit-core
+  ];
+
   propagatedBuildInputs = [
     click
   ];
@@ -34,10 +38,7 @@ buildPythonPackage rec {
     pytest-xdist
     pytest-sugar
     shellingham
-    coverage
-    mypy
-    black
-    isort
+    coverage # execs coverage in tests
   ];
 
   preCheck = ''
diff --git a/pkgs/development/python-modules/types-cryptography/default.nix b/pkgs/development/python-modules/types-cryptography/default.nix
index dd68bfddef7b5..449ab50117cc7 100644
--- a/pkgs/development/python-modules/types-cryptography/default.nix
+++ b/pkgs/development/python-modules/types-cryptography/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "types-cryptography";
-  version = "3.3.18";
+  version = "3.3.20";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-RI/q+a4xImFJvGvOHPj/9U2mYe8Eg398DDFoKYhcNig=";
+    sha256 = "sha256-u+9bZpcllvPNYbMJFxn8k14IHzu6h+zqVhvA27Fnh1M=";
   };
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/types-dateutil/default.nix b/pkgs/development/python-modules/types-dateutil/default.nix
index 4cefc57ed594d..5a1e7220ec44b 100644
--- a/pkgs/development/python-modules/types-dateutil/default.nix
+++ b/pkgs/development/python-modules/types-dateutil/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "types-python-dateutil";
-  version = "2.8.10";
+  version = "2.8.12";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-a886rnJC5Xk7r9eyvPtOJV63srMUSs0N8OGC3OWMytM=";
+    sha256 = "sha256-7zBTt0XwHERDtRK2s9WwT7ry1HaqUDtsyTIEah7fpWo=";
   };
 
   pythonImportsCheck = [ "dateutil-stubs" ];
diff --git a/pkgs/development/python-modules/types-decorator/default.nix b/pkgs/development/python-modules/types-decorator/default.nix
index f8dc74c00f982..114ceade047af 100644
--- a/pkgs/development/python-modules/types-decorator/default.nix
+++ b/pkgs/development/python-modules/types-decorator/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "types-decorator";
-  version = "5.1.4";
+  version = "5.1.6";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "463c04b192108e2b3f409df8a3eaaf8d44e3e98965c11e473ed2a97da591798b";
+    sha256 = "sha256-OZ+qczvJMstRtQ08odfpV7KuAvPE1xGcdpYxKCo4aKY=";
   };
 
   # Modules doesn't have tests
diff --git a/pkgs/development/python-modules/types-freezegun/default.nix b/pkgs/development/python-modules/types-freezegun/default.nix
index f1559fb27d4f9..d34bac65a92df 100644
--- a/pkgs/development/python-modules/types-freezegun/default.nix
+++ b/pkgs/development/python-modules/types-freezegun/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "types-freezegun";
-  version = "1.1.8";
+  version = "1.1.9";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9LsIxUqkaBbHehtceipU9Tk8POWOfUAC5n+QgbQR6SE=";
+    hash = "sha256-bwUQjUaLrsrfmZhzvTfleyXOs1010/g+enQvJdb+iw4=";
   };
 
   # Module doesn't have tests
diff --git a/pkgs/development/python-modules/types-paramiko/default.nix b/pkgs/development/python-modules/types-paramiko/default.nix
index 5b87e8079a5e9..4405a02770a2d 100644
--- a/pkgs/development/python-modules/types-paramiko/default.nix
+++ b/pkgs/development/python-modules/types-paramiko/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "types-paramiko";
-  version = "2.8.17";
+  version = "2.8.19";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-1toFPkau9cYpvE6lvatWZwhlNerg/P2N6EBpQ7g00uY=";
+    sha256 = "sha256-UhkthDZk73wfh7n+Bpe7u1qPgS5DAWlEz+q+x93spCM=";
   };
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/types-requests/default.nix b/pkgs/development/python-modules/types-requests/default.nix
index b29a0792ae8f6..59f8d50fcb123 100644
--- a/pkgs/development/python-modules/types-requests/default.nix
+++ b/pkgs/development/python-modules/types-requests/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "types-requests";
-  version = "2.27.16";
+  version = "2.27.20";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-yAEMGLKRp++2CxRS2+ElMLwlaT3WV+cMYoA/zcS//ps=";
+    sha256 = "sha256-YzRFc83mxO/UTYZ8AVjZ+35r65VyHL6YgvP4V+6KU5g=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/types-setuptools/default.nix b/pkgs/development/python-modules/types-setuptools/default.nix
index c59baea3c6e3e..ee2489df8c48c 100644
--- a/pkgs/development/python-modules/types-setuptools/default.nix
+++ b/pkgs/development/python-modules/types-setuptools/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "types-setuptools";
-  version = "57.4.11";
+  version = "57.4.14";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Ji90BuDH1wWta7RSa1t2H6UAv5nqt03oWsNZIYfWKTU=";
+    sha256 = "sha256-3wL+HdJE9Yz05nz8PQqXkwotYact2J8h2BxxAXzYP5o=";
   };
 
   # Module doesn't have tests
diff --git a/pkgs/development/python-modules/types-tabulate/default.nix b/pkgs/development/python-modules/types-tabulate/default.nix
index 6d7ceade85c9f..1fc11aeede949 100644
--- a/pkgs/development/python-modules/types-tabulate/default.nix
+++ b/pkgs/development/python-modules/types-tabulate/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "types-tabulate";
-  version = "0.8.6";
+  version = "0.8.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-P037eVRJwheO1cIU7FEUwESx7t1xrQoQA7xnDwnYcQo=";
+    hash = "sha256-Cs0ClYZuXy3i6Qc4/wvBIBdR4d0Ci9MMv6Qap6Zpkp4=";
   };
 
   # Module doesn't have tests
diff --git a/pkgs/development/python-modules/types-toml/default.nix b/pkgs/development/python-modules/types-toml/default.nix
index affdbbb2b4479..263fc0edd7baa 100644
--- a/pkgs/development/python-modules/types-toml/default.nix
+++ b/pkgs/development/python-modules/types-toml/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "types-toml";
-  version = "0.10.4";
+  version = "0.10.5";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-k0DnwVh3FVgbsTkFs68wt5/mivrM/KN3Zl1eY7aUEpo=";
+    sha256 = "sha256-+UlGOjiCAL45Lvk5nbrT4eO75tRUPYStk9lsP9oCgIA=";
   };
 
   # Module doesn't have tests
diff --git a/pkgs/development/python-modules/types-urllib3/default.nix b/pkgs/development/python-modules/types-urllib3/default.nix
index 235535ce97164..45b6dd97c2d81 100644
--- a/pkgs/development/python-modules/types-urllib3/default.nix
+++ b/pkgs/development/python-modules/types-urllib3/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "types-urllib3";
-  version = "1.26.11";
+  version = "1.26.13";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JNZORBFohR6wXx0CLeGK4xVY9WScjxEX44TC6F4xMVs=";
+    hash = "sha256-QPj7XozX1X6K797j/dXpMKoaG7QXnNrdVSJs6liK95A=";
   };
 
   # Module doesn't have tests
diff --git a/pkgs/development/python-modules/typing-extensions/default.nix b/pkgs/development/python-modules/typing-extensions/default.nix
index 1e29bc9a6160c..97f0d48cecc2a 100644
--- a/pkgs/development/python-modules/typing-extensions/default.nix
+++ b/pkgs/development/python-modules/typing-extensions/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "typing-extensions";
-  version = "4.0.1";
+  version = "4.1.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "typing_extensions";
     inherit version;
-    hash = "sha256-TKCR3qFJ+UXsVq+0ja5xTyHoaS7yKjlSI7zTKJYbag4=";
+    hash = "sha256-GpRi3MM0enmx8cAnH7556ERYC7WYuvoe0gi5TaPNzUI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/typing-inspect/default.nix b/pkgs/development/python-modules/typing-inspect/default.nix
index 1e5303b7b09e5..d540160493643 100644
--- a/pkgs/development/python-modules/typing-inspect/default.nix
+++ b/pkgs/development/python-modules/typing-inspect/default.nix
@@ -3,6 +3,7 @@
 , fetchPypi
 , typing-extensions
 , mypy-extensions
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -20,6 +21,19 @@ buildPythonPackage rec {
     mypy-extensions
   ];
 
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # https://github.com/ilevkivskyi/typing_inspect/issues/84
+    "test_typed_dict_typing_extension"
+  ];
+
+  pythonImportsCheck = [
+    "typing_inspect"
+  ];
+
   meta = with lib; {
     description = "Runtime inspection utilities for Python typing module";
     homepage = "https://github.com/ilevkivskyi/typing_inspect";
diff --git a/pkgs/development/python-modules/tzdata/default.nix b/pkgs/development/python-modules/tzdata/default.nix
index cfc46a658d347..ee8166abb9463 100644
--- a/pkgs/development/python-modules/tzdata/default.nix
+++ b/pkgs/development/python-modules/tzdata/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "tzdata";
-  version = "2021.5";
+  version = "2022.1";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-aNvkGv0BuGeJS739VPoD9GjPpPAIa/tK3NjejyTz7iE=";
+    hash = "sha256-i1NqjsY9wHUTQrOYQZOjEY+Pyir+JXUrubf//TmFUtM=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/tzlocal/default.nix b/pkgs/development/python-modules/tzlocal/default.nix
index 7079392e4f668..bb51abb1822c5 100644
--- a/pkgs/development/python-modules/tzlocal/default.nix
+++ b/pkgs/development/python-modules/tzlocal/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "tzlocal";
-  version = "4.1"; # version needs to be compatible with APScheduler
+  version = "4.2"; # version needs to be compatible with APScheduler
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-DygBWsaKXAZyEEAKkZf8XTa6m8P46vHaPL1ZrN/tngk=";
+    sha256 = "ee5842fa3a795f023514ac2d801c4a81d1743bbe642e3940143326b3a00addd7";
   };
 
   propagatedBuildInputs = [
@@ -39,6 +39,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Tzinfo object for the local timezone";
     homepage = "https://github.com/regebro/tzlocal";
+    changelog = "https://github.com/regebro/tzlocal/blob/${version}/CHANGES.txt";
     license = licenses.cddl;
     maintainers = with maintainers; [ dotlambda ];
   };
diff --git a/pkgs/development/python-modules/uamqp/default.nix b/pkgs/development/python-modules/uamqp/default.nix
index f3c8792e569cc..a838f44eb9577 100644
--- a/pkgs/development/python-modules/uamqp/default.nix
+++ b/pkgs/development/python-modules/uamqp/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "uamqp";
-  version = "1.5.1";
+  version = "1.5.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-VevtbXtOTKQEqVYpNKFrDhvyDBJY+uQMhld6in+EroE=";
+    sha256 = "sha256-guhfOMvddC4E+oOmvpeG8GsXEfqLcSHVdtj3w8fF2Vs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/ufo2ft/default.nix b/pkgs/development/python-modules/ufo2ft/default.nix
index a3458b2f332fe..8f700107bceb6 100644
--- a/pkgs/development/python-modules/ufo2ft/default.nix
+++ b/pkgs/development/python-modules/ufo2ft/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "ufo2ft";
-  version = "2.25.2";
+  version = "2.26.0";
 
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ooWIHvyMtrht4WcGPiacY8dfjPSb5uitHnTRTKvf2AA=";
+    sha256 = "sha256-1WQAs1ypWtLObgBzPtqtvHjkKnDWohu3PbI3bF7B0Sg=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/uharfbuzz/default.nix b/pkgs/development/python-modules/uharfbuzz/default.nix
new file mode 100644
index 0000000000000..f39aa12152a14
--- /dev/null
+++ b/pkgs/development/python-modules/uharfbuzz/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, cython
+, setuptools-scm
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "uharfbuzz";
+  version = "0.24.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.5";
+
+  # Fetching from GitHub as Pypi contains different versions
+  src = fetchFromGitHub {
+    owner = "harfbuzz";
+    repo = "uharfbuzz";
+    rev = "v${version}";
+    sha256 = "sha256-DyFXbwB28JH2lvmWDezRh49tjCvleviUNSE5LHG3kUg=";
+    fetchSubmodules = true;
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    cython
+    setuptools-scm
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "uharfbuzz" ];
+
+  meta = with lib; {
+    description = "Streamlined Cython bindings for the harfbuzz shaping engine";
+    homepage = "https://github.com/harfbuzz/uharfbuzz";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ wolfangaukang ];
+  };
+}
diff --git a/pkgs/development/python-modules/umap-learn/default.nix b/pkgs/development/python-modules/umap-learn/default.nix
index 91e8512d18d12..1281d90cdaf59 100644
--- a/pkgs/development/python-modules/umap-learn/default.nix
+++ b/pkgs/development/python-modules/umap-learn/default.nix
@@ -15,13 +15,13 @@
 
 buildPythonPackage rec {
   pname = "umap-learn";
-  version = "0.5.2";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     owner = "lmcinnes";
     repo = "umap";
     rev = version;
-    sha256 = "sha256-JfYuuE1BP+HdiEl7l01sZ/XXlEwHyAsLjK9nqhRd/3o=";
+    sha256 = "sha256-S2+k7Ec4AxsN6d0GUGnU81oLnBgmlZp8OmUFCNaUJYw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/unittest-xml-reporting/default.nix b/pkgs/development/python-modules/unittest-xml-reporting/default.nix
index c8d1edc421094..c4ee1f955e440 100644
--- a/pkgs/development/python-modules/unittest-xml-reporting/default.nix
+++ b/pkgs/development/python-modules/unittest-xml-reporting/default.nix
@@ -1,18 +1,21 @@
-{lib, fetchPypi, buildPythonPackage, isPy27, six}:
+{lib, fetchPypi, buildPythonPackage, isPy27, six, lxml }:
 
 buildPythonPackage rec {
   pname = "unittest-xml-reporting";
-  version = "3.0.4";
+  version = "3.2.0";
   disabled = isPy27;
 
-  propagatedBuildInputs = [six];
+  propagatedBuildInputs = [
+    lxml
+    six
+  ];
 
   # The tarball from Pypi doesn't actually contain the unit tests
   doCheck = false;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "984cebba69e889401bfe3adb9088ca376b3a1f923f0590d005126c1bffd1a695";
+    sha256 = "sha256-7djTFwtAw6gbjPkQ9GxqMErihH7AEDbQLpwPm4V2LSg=";
   };
   meta = with lib; {
     homepage = "https://github.com/xmlrunner/unittest-xml-reporting/tree/master/";
diff --git a/pkgs/development/python-modules/update-dotdee/default.nix b/pkgs/development/python-modules/update-dotdee/default.nix
index 1532fca78c4ce..a89f0df403c33 100644
--- a/pkgs/development/python-modules/update-dotdee/default.nix
+++ b/pkgs/development/python-modules/update-dotdee/default.nix
@@ -1,17 +1,56 @@
-{ lib, buildPythonPackage, fetchFromGitHub, executor, naturalsort }:
+{ lib
+, buildPythonPackage
+, coloredlogs
+, executor
+, fetchFromGitHub
+, humanfriendly
+, naturalsort
+, property-manager
+, pytestCheckHook
+, pythonOlder
+, six
+}:
 
 buildPythonPackage rec {
   pname = "update-dotdee";
   version = "6.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "xolox";
     repo = "python-update-dotdee";
     rev = version;
-    sha256 = "sha256-2k7FdgWM0ESHQb2za87yhXGaR/rbMYLVcv10QexUH1A=";
+    hash = "sha256-2k7FdgWM0ESHQb2za87yhXGaR/rbMYLVcv10QexUH1A=";
   };
 
-  propagatedBuildInputs = [ executor naturalsort ];
+  propagatedBuildInputs = [
+    coloredlogs
+    executor
+    humanfriendly
+    naturalsort
+    property-manager
+    six
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace tox.ini \
+      --replace " --cov --showlocals --verbose" ""
+  '';
+
+  pythonImportsCheck = [
+    "update_dotdee"
+  ];
+
+  disabledTests = [
+    # TypeError: %o format: an integer is required, not str
+    "test_executable"
+  ];
 
   meta = with lib; {
     description = "Generic modularized configuration file manager";
diff --git a/pkgs/development/python-modules/uproot/default.nix b/pkgs/development/python-modules/uproot/default.nix
index bf523046c6166..8bf8e67b8e465 100644
--- a/pkgs/development/python-modules/uproot/default.nix
+++ b/pkgs/development/python-modules/uproot/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "uproot";
-  version = "4.1.9";
+  version = "4.2.0";
 
   # fetch from github for tests
   src = fetchFromGitHub {
     owner = "scikit-hep";
     repo = "uproot4";
     rev = version;
-    sha256 = "035gljxm18hvpfvc7nsd7lhawwq3np5sg1y86pzcxc680c6rj6lx";
+    sha256 = "sha256-ft2VXYGb+iPqRUrtOBvl7SgTPfPR4+IOdYFVTNbQAEw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/uri-template/default.nix b/pkgs/development/python-modules/uri-template/default.nix
new file mode 100644
index 0000000000000..19f61989e5c2e
--- /dev/null
+++ b/pkgs/development/python-modules/uri-template/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildPythonPackage, fetchFromGitHub, python }:
+
+buildPythonPackage rec {
+  pname = "uri-template";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "plinss";
+    repo = "uri_template";
+    rev = "v${version}";
+    sha256 = "sha256-IAq6GpEwimq45FU0QugLZLSOhwAmC1KbpZKD0zyxsUs=";
+  };
+
+  postPatch = ''
+    sed -i -e 's/0.0.0/${version}/' setup.py
+  '';
+
+  checkPhase = ''
+    ${python.interpreter} test.py
+  '';
+
+  pythonImportsCheck = [ "uri_template" ];
+
+  meta = with lib; {
+    description = "An implementation of RFC 6570 URI Templates";
+    homepage = "https://github.com/plinss/uri_template/";
+    license = licenses.mit;
+    maintainers = [ maintainers.kvark ];
+  };
+}
diff --git a/pkgs/development/python-modules/urllib3/default.nix b/pkgs/development/python-modules/urllib3/default.nix
index 4c1a61b09fc64..6d29a107f0045 100644
--- a/pkgs/development/python-modules/urllib3/default.nix
+++ b/pkgs/development/python-modules/urllib3/default.nix
@@ -18,12 +18,12 @@
 
 buildPythonPackage rec {
   pname = "urllib3";
-  version = "1.26.8";
+  version = "1.26.9";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Dnwz2aY+fd/LhngKrIe+/C+930bFjbtIfghV987sKDw=";
+    hash = "sha256-qrrxZHeAal4d0ZqkH4wreVDdPHRjYtfjIj2+beasRI4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ush/default.nix b/pkgs/development/python-modules/ush/default.nix
index d7a90bcb9e8d5..3e7773fb2fd92 100644
--- a/pkgs/development/python-modules/ush/default.nix
+++ b/pkgs/development/python-modules/ush/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook}:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, six
+}:
 
 buildPythonPackage rec {
   pname = "ush";
@@ -11,7 +16,10 @@ buildPythonPackage rec {
     sha256 = "sha256-eL3vG3yS02enbLYorKvvYKbju9HInffUhrZgkodwhvo=";
   };
 
-  checkInputs = [ pytestCheckHook ];
+  checkInputs = [
+    pytestCheckHook
+    six
+  ];
 
   disabledTestPaths = [
     # seems to be outdated?
diff --git a/pkgs/development/python-modules/uvicorn/default.nix b/pkgs/development/python-modules/uvicorn/default.nix
index 4ce9228efee88..a3238d4c5484e 100644
--- a/pkgs/development/python-modules/uvicorn/default.nix
+++ b/pkgs/development/python-modules/uvicorn/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "uvicorn";
-  version = "0.16.0";
+  version = "0.17.5";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "14jih6j4q2qp5c9rgl798i5p51b4y6zkkj434q2l1naw0csphk4s";
+    sha256 = "sha256-66wPVnBLy2HK4p0m/b/DRxy12sk8AsVFZoFVcWRkL4s=";
   };
 
   outputs = [
diff --git a/pkgs/development/python-modules/uvloop/default.nix b/pkgs/development/python-modules/uvloop/default.nix
index 72ede5dc1716f..b4b75dbb19411 100644
--- a/pkgs/development/python-modules/uvloop/default.nix
+++ b/pkgs/development/python-modules/uvloop/default.nix
@@ -62,8 +62,12 @@ buildPythonPackage rec {
     "tests/test_sourcecode.py"
   ];
 
-  # force using installed/compiled uvloop vs source by moving tests to temp dir
-  preCheck = ''
+  preCheck = lib.optionalString stdenv.isDarwin ''
+    # Work around "OSError: AF_UNIX path too long"
+    # https://github.com/MagicStack/uvloop/issues/463
+    export TMPDIR="/tmp"
+   '' + ''
+    # force using installed/compiled uvloop vs source by moving tests to temp dir
     export TEST_DIR=$(mktemp -d)
     cp -r tests $TEST_DIR
     pushd $TEST_DIR
diff --git a/pkgs/development/python-modules/validators/default.nix b/pkgs/development/python-modules/validators/default.nix
index 29ec9cd73d73b..f83fe801a2a2f 100644
--- a/pkgs/development/python-modules/validators/default.nix
+++ b/pkgs/development/python-modules/validators/default.nix
@@ -3,6 +3,7 @@
 , fetchPypi
 , isPy27
 , decorator
+, six
 , pytestCheckHook
 }:
 
@@ -18,6 +19,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     decorator
+    six
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/validictory/default.nix b/pkgs/development/python-modules/validictory/default.nix
index 29ffb76591eff..c4172079a6077 100644
--- a/pkgs/development/python-modules/validictory/default.nix
+++ b/pkgs/development/python-modules/validictory/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, pythonAtLeast
 , fetchPypi
 }:
 
@@ -7,6 +8,8 @@ buildPythonPackage rec {
   pname = "validictory";
   version = "1.1.2";
 
+  disabled = pythonAtLeast "3.10"; # abandoned, should be removed when we move to py310/311
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "1fim11vj990rmn59qd67knccjx1p4an7gavbgprpabsrb13bi1rs";
diff --git a/pkgs/development/python-modules/variants/default.nix b/pkgs/development/python-modules/variants/default.nix
index e23407ab06b36..2b5dccec558a0 100644
--- a/pkgs/development/python-modules/variants/default.nix
+++ b/pkgs/development/python-modules/variants/default.nix
@@ -4,6 +4,7 @@
 , pytest-runner
 , setuptools-scm
 , pytestCheckHook
+, six
 , lib
 }:
 
@@ -17,12 +18,12 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    pytest-runner
     setuptools-scm
   ];
 
   checkInputs = [
     pytestCheckHook
+    six
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/vdirsyncer/default.nix b/pkgs/development/python-modules/vdirsyncer/default.nix
index edb61ccb70341..b51246739518b 100644
--- a/pkgs/development/python-modules/vdirsyncer/default.nix
+++ b/pkgs/development/python-modules/vdirsyncer/default.nix
@@ -7,7 +7,7 @@
 , click-threading
 , requests-toolbelt
 , requests
-, requests_oauthlib # required for google oauth sync
+, requests-oauthlib
 , atomicwrites
 , hypothesis
 , pytestCheckHook
@@ -17,22 +17,31 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.18.0";
   pname = "vdirsyncer";
+  version = "0.18.0";
+  format = "setuptools";
+
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-J7w+1R93STX7ujkpFcjI1M9jmuUaRLZ0aGtJoQJfwgE=";
+    hash = "sha256-J7w+1R93STX7ujkpFcjI1M9jmuUaRLZ0aGtJoQJfwgE=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "click-log>=0.3.0, <0.4.0" "click-log>=0.3.0, <0.5.0"
+
+    sed -i -e '/--cov/d' -e '/--no-cov/d' setup.cfg
+  '';
+
   propagatedBuildInputs = [
     atomicwrites
     click
     click-log
     click-threading
     requests
-    requests_oauthlib # required for google oauth sync
+    requests-oauthlib
     requests-toolbelt
   ];
 
@@ -47,10 +56,6 @@ buildPythonPackage rec {
     pytest-subtesthack
   ];
 
-  postPatch = ''
-    sed -i -e '/--cov/d' -e '/--no-cov/d' setup.cfg
-  '';
-
   preCheck = ''
     export DETERMINISTIC_TESTS=true
   '';
diff --git a/pkgs/development/python-modules/vehicle/default.nix b/pkgs/development/python-modules/vehicle/default.nix
index a56cc4ca8b43e..7328494a61ff1 100644
--- a/pkgs/development/python-modules/vehicle/default.nix
+++ b/pkgs/development/python-modules/vehicle/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "vehicle";
-  version = "0.3.1";
+  version = "0.4.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "frenck";
     repo = "python-vehicle";
     rev = "v${version}";
-    sha256 = "04xcs5bfjd49j870gyyznc8hkaadsa9gm9pz0w9qvzlphnxvv5h4";
+    sha256 = "sha256-dvSdYrONUEe+bdZ+9nALrOQ6gJwq9e1dLvuq08xP5tQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/vertica-python/default.nix b/pkgs/development/python-modules/vertica-python/default.nix
index cd6186e574f30..0fdd4ed6d9625 100644
--- a/pkgs/development/python-modules/vertica-python/default.nix
+++ b/pkgs/development/python-modules/vertica-python/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "vertica-python";
-  version = "1.0.4";
+  version = "1.0.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-IpdrR9mDG+8cNnXgSXkmXahSEP4EGnEBJqZk5SNu9pA=";
+    hash = "sha256-m9r6P8GTehx33QO/aCuKArrpJ/ycVHWPkQ9sPc3tmeo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/virtualenv/default.nix b/pkgs/development/python-modules/virtualenv/default.nix
index c463c37747eaa..a739ab2fd6ce8 100644
--- a/pkgs/development/python-modules/virtualenv/default.nix
+++ b/pkgs/development/python-modules/virtualenv/default.nix
@@ -23,11 +23,11 @@
 
 buildPythonPackage rec {
   pname = "virtualenv";
-  version = "20.13.0";
+  version = "20.14.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d8458cf8d59d0ea495ad9b34c2599487f8a7772d796f9910858376d1600dd2dd";
+    sha256 = "sha256-jltAIDcocSboHM3pQyuVqL5bGdNlhPZJVwYKNIjBHKg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/vispy/default.nix b/pkgs/development/python-modules/vispy/default.nix
index 47a966332548c..c17f372873847 100644
--- a/pkgs/development/python-modules/vispy/default.nix
+++ b/pkgs/development/python-modules/vispy/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "vispy";
-  version = "0.9.6";
+  version = "0.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ISzVtQgkSZu84+LXQaray3nAt3GsVm+THGE1WXYCi8s=";
+    sha256 = "sha256-t2rW8+rK2/xJRM+4IR6ttuqEF6WQmT7OWqfKrAgs/8I=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/vivisect/default.nix b/pkgs/development/python-modules/vivisect/default.nix
index ddf6ce54b25ea..8eddde2b65b72 100644
--- a/pkgs/development/python-modules/vivisect/default.nix
+++ b/pkgs/development/python-modules/vivisect/default.nix
@@ -2,32 +2,56 @@
 , buildPythonPackage
 , isPy3k
 , fetchPypi
+, wrapQtAppsHook
+
+# propagates
 , pyasn1
 , pyasn1-modules
 , cxxfilt
 , msgpack
 , pycparser
+
+# extras: gui
+, pyqt5
+, pyqtwebengine
+
+# knobs
+, withGui ? false
 }:
+
 buildPythonPackage rec {
   pname = "vivisect";
   version = "1.0.7";
-  disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "727a27ac1eb95d5a41f4430f6912e79940525551314fe68a2811fc9d51eaf2e9";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace 'cxxfilt>=0.2.1,<0.3.0' 'cxxfilt'
+  '';
+
+  nativeBuildInputs = [
+    wrapQtAppsHook
+  ];
+
   propagatedBuildInputs = [
     pyasn1
     pyasn1-modules
     cxxfilt
     msgpack
     pycparser
+  ] ++ lib.optionals (withGui) passthru.extras-require.gui;
+
+  passthru.extras-require.gui = [
+    pyqt5
+    pyqtwebengine
   ];
 
-  preBuild = ''
-    sed "s@==.*'@'@" -i setup.py
+  postFixup = ''
+    wrapQtApp $out/bin/vivbin
   '';
 
   # requires another repo for test files
diff --git a/pkgs/development/python-modules/waitress/default.nix b/pkgs/development/python-modules/waitress/default.nix
index aa09b0068d9ab..e2cbe59ab2864 100644
--- a/pkgs/development/python-modules/waitress/default.nix
+++ b/pkgs/development/python-modules/waitress/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "waitress";
-  version = "2.0.0";
+  version = "2.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "69e1f242c7f80273490d3403c3976f3ac3b26e289856936d1f620ed48f321897";
+    sha256 = "sha256-4uYFds8UoVOdp597fuHnmnHmTzZqC0fbVKFelx9XuxY=";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/wallbox/default.nix b/pkgs/development/python-modules/wallbox/default.nix
index a1136d89342e7..53ccd00a75f5b 100644
--- a/pkgs/development/python-modules/wallbox/default.nix
+++ b/pkgs/development/python-modules/wallbox/default.nix
@@ -2,22 +2,24 @@
 , buildPythonPackage
 , pythonOlder
 , fetchPypi
+, aenum
 , requests
 , simplejson
 }:
 
 buildPythonPackage rec {
   pname = "wallbox";
-  version = "0.4.6";
+  version = "0.4.8";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "651c61e2264258382d1f54c4f0bf6bcd198482a744d8f1db3dd73084c240d9bb";
+    sha256 = "f8965b0ae3a873f570986e712a4e667d0b6634c9e3afb51fbd5596856412878c";
   };
 
   propagatedBuildInputs = [
+    aenum
     requests
     simplejson
   ];
diff --git a/pkgs/development/python-modules/wandb/default.nix b/pkgs/development/python-modules/wandb/default.nix
index ef8e6cfd247ec..f31708baef8b6 100644
--- a/pkgs/development/python-modules/wandb/default.nix
+++ b/pkgs/development/python-modules/wandb/default.nix
@@ -1,8 +1,9 @@
-{ azure-core
+{ lib
+, stdenv
+, azure-core
 , bokeh
 , buildPythonPackage
 , click
-, configparser
 , docker_pycreds
 , fetchFromGitHub
 , flask
@@ -10,7 +11,6 @@
 , GitPython
 , jsonref
 , jsonschema
-, lib
 , matplotlib
 , nbformat
 , pandas
@@ -22,8 +22,8 @@
 , pytest-mock
 , pytest-xdist
 , pytestCheckHook
-, python
 , python-dateutil
+, pythonOlder
 , pyyaml
 , requests
 , scikit-learn
@@ -31,37 +31,27 @@
 , setproctitle
 , setuptools
 , shortuuid
-, stdenv
 , tqdm
-, yaspin
 }:
 
 buildPythonPackage rec {
   pname = "wandb";
-  version = "0.12.11";
+  version = "0.12.15";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "client";
     rev = "v${version}";
-    sha256 = "0av4vv4llan40678bw0vlah0gn6hjg5pdqwq0c5cv15lqrdb8g32";
+    hash = "sha256-Fq+JwUEZP1QDFKYVyiR8DUU0GQV6fK50FW78qaWh+Mo=";
   };
 
-  # The wandb requirements.txt does not distinguish python2/3 dependencies. We
-  # need to drop the subprocess32 dependency when building for python3.
-  patchPhase = ''
-    substituteInPlace requirements.txt --replace "subprocess32>=3.5.3" ""
-  '';
-
-  # git is not a setup.py dependency of wandb, but wandb does expect git to be
-  # in PATH. See https://gist.github.com/samuela/57aeee710e41ab2bf361b7ed8fbbeabf
-  # for the error message, and an example usage here: https://github.com/wandb/client/blob/master/wandb/sdk/internal/meta.py#L139-L141.
   # setuptools is necessary since pkg_resources is required at runtime.
   propagatedBuildInputs = [
     click
-    configparser
     docker_pycreds
-    git
     GitPython
     pathtools
     promise
@@ -74,9 +64,35 @@ buildPythonPackage rec {
     setproctitle
     setuptools
     shortuuid
-    yaspin
   ];
 
+  checkInputs = [
+    azure-core
+    bokeh
+    flask
+    jsonref
+    jsonschema
+    matplotlib
+    nbformat
+    pandas
+    pydantic
+    pytest-mock
+    pytest-xdist
+    pytestCheckHook
+    scikit-learn
+    tqdm
+  ];
+
+  # wandb expects git to be in PATH. See https://gist.github.com/samuela/57aeee710e41ab2bf361b7ed8fbbeabf
+  # for the error message, and an example usage here: https://github.com/wandb/client/blob/d5f655b7ca7e3eac2f3a67a84bc5c2a664a31baf/wandb/sdk/internal/meta.py#L128.
+  # See https://github.com/NixOS/nixpkgs/pull/164176#discussion_r828801621 as to
+  # why we don't put it in propagatedBuildInputs. Note that this is difficult to
+  # test offline due to https://github.com/wandb/client/issues/3519.
+  postInstall = ''
+    mkdir -p $out/bin
+    ln -s ${git}/bin/git $out/bin/git
+  '';
+
   disabledTestPaths = [
     # Tests that try to get chatty over sockets or spin up servers, not possible in the nix build environment.
     "tests/test_cli.py"
@@ -106,6 +122,7 @@ buildPythonPackage rec {
     "tests/wandb_settings_test.py"
     "tests/wandb_sweep_test.py"
     "tests/wandb_verify_test.py"
+    "tests/test_model_workflows.py"
 
     # Fails and borks the pytest runner as well.
     "tests/wandb_test.py"
@@ -114,24 +131,15 @@ buildPythonPackage rec {
     "tests/test_tables.py"
   ];
 
-  checkInputs = [
-    azure-core
-    bokeh
-    flask
-    jsonref
-    jsonschema
-    matplotlib
-    nbformat
-    pandas
-    pydantic
-    pytest-mock
-    pytest-xdist
-    pytestCheckHook
-    scikit-learn
-    tqdm
+  # Disable test that fails on darwin due to issue with python3Packages.psutil:
+  # https://github.com/giampaolo/psutil/issues/1219
+  disabledTests = lib.optional stdenv.isDarwin [
+    "test_tpu_system_stats"
   ];
 
-  pythonImportsCheck = [ "wandb" ];
+  pythonImportsCheck = [
+    "wandb"
+  ];
 
   meta = with lib; {
     description = "A CLI and library for interacting with the Weights and Biases API";
diff --git a/pkgs/development/python-modules/wasabi/default.nix b/pkgs/development/python-modules/wasabi/default.nix
index fca3f5480dcf5..16c89ae63a0d6 100644
--- a/pkgs/development/python-modules/wasabi/default.nix
+++ b/pkgs/development/python-modules/wasabi/default.nix
@@ -2,23 +2,34 @@
 , buildPythonPackage
 , fetchPypi
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "wasabi";
-  version = "0.9.0";
+  version = "0.9.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "152245d892030a3a7b511038e9472acff6d0e237cfe4123fef0d147f2d3274fc";
+    sha256 = "sha256-rabxPptw7ya/lfrQ/r396+IAXimgitWPS7rjg6lymM8=";
   };
 
-  checkInputs = [ pytestCheckHook ];
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "wasabi"
+  ];
 
   meta = with lib; {
     description = "A lightweight console printing and formatting toolkit";
     homepage = "https://github.com/ines/wasabi";
     changelog = "https://github.com/ines/wasabi/releases/tag/v${version}";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/wasm/default.nix b/pkgs/development/python-modules/wasm/default.nix
index f6c2cc42e387b..adc3c958bee13 100644
--- a/pkgs/development/python-modules/wasm/default.nix
+++ b/pkgs/development/python-modules/wasm/default.nix
@@ -1,5 +1,6 @@
 { buildPythonPackage
 , fetchPypi
+, pythonAtLeast
 , lib
 }:
 
@@ -7,6 +8,8 @@ buildPythonPackage rec {
   pname = "wasm";
   version = "1.2";
 
+  disabled = pythonAtLeast "3.10"; # project is abandoned, remove we whe move to py310/311
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "179xcinfc35xgk0bf9y58kwxzymzk7c1p58w6khmqfiqvb91j3r8";
diff --git a/pkgs/development/python-modules/watchdog/default.nix b/pkgs/development/python-modules/watchdog/default.nix
index 9fba5785c4478..9afd0f032fc3c 100644
--- a/pkgs/development/python-modules/watchdog/default.nix
+++ b/pkgs/development/python-modules/watchdog/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "watchdog";
-  version = "2.1.6";
+  version = "2.1.7";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-o25132x2fL9G9hqRxws7pxgR36CspKMk2UB6Bqi3ouc=";
+    sha256 = "sha256-P9R4FTU76cRO68lMwo/iaysMW9iJ2vxKWny9+SQUNIA=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
@@ -39,6 +39,11 @@ buildPythonPackage rec {
       --replace "--cov-report=term-missing" ""
   '';
 
+  disabledTests = [
+    # probably failing because of an encoding related issue
+    "test_create_wrong_encoding"
+  ];
+
   disabledTestPaths = [
     # Tests are flaky
     "tests/test_inotify_buffer.py"
diff --git a/pkgs/development/python-modules/watchgod/default.nix b/pkgs/development/python-modules/watchgod/default.nix
index 5bb8425864226..70e93f1a20906 100644
--- a/pkgs/development/python-modules/watchgod/default.nix
+++ b/pkgs/development/python-modules/watchgod/default.nix
@@ -1,17 +1,22 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, anyio
 }:
 
 buildPythonPackage rec {
   pname = "watchgod";
-  version = "0.7";
+  version = "0.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0aagm0n5fkpzdsfgl0r21gkz5qaicgq3f4rqz2fdvsgbn1i0s528";
+    sha256 = "sha256-wS0V8999EedAcE5FOYJ3918dePRq1Zyp11Bb/YuNMIY=";
   };
 
+  propagatedBuildInputs = [
+    anyio
+  ];
+
   # no tests in release
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/weasyprint/default.nix b/pkgs/development/python-modules/weasyprint/default.nix
index 3d752596dec3b..a1a7470b8b5d6 100644
--- a/pkgs/development/python-modules/weasyprint/default.nix
+++ b/pkgs/development/python-modules/weasyprint/default.nix
@@ -27,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "weasyprint";
-  version = "54.2";
+  version = "54.3";
   disabled = !isPy3k;
 
   format = "pyproject";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit version;
     pname = "weasyprint";
-    sha256 = "sha256-1eiqguPiokd6RUPwZG2fsUCAybo0oIWXUesjdXzABGY=";
+    sha256 = "sha256-4E2gQGMFZsRMqiAgM/B/hYdl9TZwkEWoCXOfPQSOidY=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/websocket-client/default.nix b/pkgs/development/python-modules/websocket-client/default.nix
index 116f45f16dd34..a1c0cfa82e1d0 100644
--- a/pkgs/development/python-modules/websocket-client/default.nix
+++ b/pkgs/development/python-modules/websocket-client/default.nix
@@ -4,20 +4,22 @@
 , pythonOlder
 , pytestCheckHook
 , python-socks
+, six
 }:
 
 buildPythonPackage rec {
   pname = "websocket-client";
-  version = "1.2.3";
+  version = "1.3.2";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1315816c0acc508997eb3ae03b9d3ff619c9d12d544c9a9b553704b1cc4f6af5";
+    sha256 = "sha256-ULIdsAWPepU9Z8wERb5LlI1/wZbsvrgIPWjZRijkq/Y=";
   };
 
   propagatedBuildInputs = [
     python-socks
+    six
    ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/webssh/default.nix b/pkgs/development/python-modules/webssh/default.nix
index 49b7097549d6a..ff26a9f1711e5 100644
--- a/pkgs/development/python-modules/webssh/default.nix
+++ b/pkgs/development/python-modules/webssh/default.nix
@@ -29,6 +29,11 @@ buildPythonPackage rec {
     "webssh"
   ];
 
+  disabledTests = [
+    # Test fails with AttributeError (possibly related to paramiko update)
+    "test_app_with_bad_host_key"
+  ];
+
   meta = with lib; {
     description = "Web based SSH client";
     homepage = "https://github.com/huashengdun/webssh/";
diff --git a/pkgs/development/python-modules/webthing/default.nix b/pkgs/development/python-modules/webthing/default.nix
index 92e4ea5a8fb5f..aea123bc78c16 100644
--- a/pkgs/development/python-modules/webthing/default.nix
+++ b/pkgs/development/python-modules/webthing/default.nix
@@ -4,6 +4,7 @@
 , ifaddr
 , jsonschema
 , pyee
+, pythonOlder
 , tornado
 , zeroconf
 }:
@@ -11,12 +12,15 @@
 buildPythonPackage rec {
   pname = "webthing";
   version = "0.15.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "WebThingsIO";
     repo = "webthing-python";
     rev = "v${version}";
-    sha256 = "06264rwchy4qmbn7lv7m00qg864y7aw3rngcqqcr9nvaqz4rb0fg";
+    hash = "sha256-z4GVycdq25QZxuzZPLg6nhj0MAD1bHrsqph4yHgmRhg=";
   };
 
   propagatedBuildInputs = [
@@ -27,9 +31,12 @@ buildPythonPackage rec {
     zeroconf
   ];
 
-  # no tests are present
+  # No tests are present
   doCheck = false;
-  pythonImportsCheck = [ "webthing" ];
+
+  pythonImportsCheck = [
+    "webthing"
+  ];
 
   meta = with lib; {
     description = "Python implementation of a Web Thing server";
diff --git a/pkgs/development/python-modules/weconnect-mqtt/default.nix b/pkgs/development/python-modules/weconnect-mqtt/default.nix
index 42a3877cffc15..646702befbb37 100644
--- a/pkgs/development/python-modules/weconnect-mqtt/default.nix
+++ b/pkgs/development/python-modules/weconnect-mqtt/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "weconnect-mqtt";
-  version = "0.30.0";
+  version = "0.33.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "tillsteinbach";
     repo = "WeConnect-mqtt";
     rev = "v${version}";
-    sha256 = "sha256-/mlN9gEEy8DJSFef0Pp2PLjHhwStKwANKSzw4nT19eM=";
+    sha256 = "sha256-m8T1ngTcqwrel4EW8jvXg7RH+TtYyZRvIR33kzgda7E=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/weconnect/default.nix b/pkgs/development/python-modules/weconnect/default.nix
index f5af3e5aa5048..1dab5c8c92808 100644
--- a/pkgs/development/python-modules/weconnect/default.nix
+++ b/pkgs/development/python-modules/weconnect/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "weconnect";
-  version = "0.37.0";
+  version = "0.39.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "tillsteinbach";
     repo = "WeConnect-python";
     rev = "v${version}";
-    sha256 = "sha256-h6jKtQt9vCh5bnhIqWLniUIJ41GxCs0uSi4vBVNs8tE=";
+    sha256 = "sha256-O5Dh0RWvSXCIF0savyNG5XDhGqCTJZHQpJM4VEX+S9w=";
   };
 
   propagatedBuildInputs = [
@@ -42,8 +42,8 @@ buildPythonPackage rec {
     substituteInPlace setup.py \
       --replace "setup_requires=SETUP_REQUIRED," "setup_requires=[]," \
       --replace "tests_require=TEST_REQUIRED," "tests_require=[],"
-    substituteInPlace requirements.txt \
-      --replace "pillow~=9.0.0" "pillow"
+    substituteInPlace image_extra_requirements.txt \
+      --replace "pillow~=9.0.1" "pillow"
     substituteInPlace pytest.ini \
       --replace "--cov=weconnect --cov-config=.coveragerc --cov-report html" "" \
       --replace "pytest-cov" ""
diff --git a/pkgs/development/python-modules/werkzeug/default.nix b/pkgs/development/python-modules/werkzeug/default.nix
index c75c59ac1c9c5..f961d0359db4f 100644
--- a/pkgs/development/python-modules/werkzeug/default.nix
+++ b/pkgs/development/python-modules/werkzeug/default.nix
@@ -5,6 +5,7 @@
 , fetchPypi
 , watchdog
 , dataclasses
+, ephemeral-port-reserve
 , pytest-timeout
 , pytest-xprocess
 , pytestCheckHook
@@ -12,15 +13,15 @@
 
 buildPythonPackage rec {
   pname = "werkzeug";
-  version = "2.0.2";
+  version = "2.1.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     pname = "Werkzeug";
     inherit version;
-    sha256 = "sha256-qiu2/I3ujWxQTArB5/X33FgQqZA+eTtvcVqfAVva25o=";
+    sha256 = "sha256-m1VGaj6Z4TsfBoamYRfTm9qFqZIWbgp5rt/PNYYyj3o=";
   };
 
   propagatedBuildInputs = lib.optionals (!stdenv.isDarwin) [
@@ -31,6 +32,7 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
+    ephemeral-port-reserve
     pytest-timeout
     pytest-xprocess
     pytestCheckHook
@@ -40,6 +42,11 @@ buildPythonPackage rec {
     "test_get_machine_id"
   ];
 
+  disabledTestPaths = [
+    # ConnectionRefusedError: [Errno 111] Connection refused
+    "tests/test_serving.py"
+  ];
+
   pytestFlagsArray = [
     # don't run tests that are marked with filterwarnings, they fail with
     # warnings._OptionError: unknown warning category: 'pytest.PytestUnraisableExceptionWarning'
diff --git a/pkgs/development/python-modules/west/default.nix b/pkgs/development/python-modules/west/default.nix
index 1f9aad67f19db..eb934fde11292 100644
--- a/pkgs/development/python-modules/west/default.nix
+++ b/pkgs/development/python-modules/west/default.nix
@@ -1,16 +1,24 @@
-{ lib, fetchPypi, buildPythonPackage, isPy3k
-, colorama, configobj, packaging, pyyaml, pykwalify
+{ lib
+, buildPythonPackage
+, colorama
+, configobj
+, fetchPypi
+, packaging
+, pykwalify
+, pythonOlder
+, pyyaml
 }:
 
 buildPythonPackage rec {
-  version = "0.12.0";
   pname = "west";
+  version = "0.13.1";
+  format = "setuptools";
 
-  disabled = !isPy3k;
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d7ce0d719fd218fee5983442fe93a33a21a6be6a736915a7ffbe75369714e9ce";
+    hash = "sha256-B6B7shZ8FM5pyXzXknJv9mwr+ERq4kiEzRf5jLTCicM=";
   };
 
   propagatedBuildInputs = [
@@ -24,12 +32,12 @@ buildPythonPackage rec {
   # pypi package does not include tests (and for good reason):
   # tests run under 'tox' and have west try to git clone repos (not sandboxable)
   doCheck = false;
+
   pythonImportsCheck = [
     "west"
   ];
 
   meta = with lib; {
-    homepage = "https://github.com/zephyrproject-rtos/west";
     description = "Zephyr RTOS meta tool";
     longDescription = ''
       West lets you manage multiple Git repositories under a single directory using a single file,
@@ -47,6 +55,7 @@ buildPythonPackage rec {
       For more details, see Multiple Repository Management in the west documentation
       (https://docs.zephyrproject.org/latest/guides/west/repo-tool.html).
     '';
+    homepage = "https://github.com/zephyrproject-rtos/west";
     license = licenses.asl20;
     maintainers = with maintainers; [ siriobalmelli ];
   };
diff --git a/pkgs/development/python-modules/whodap/default.nix b/pkgs/development/python-modules/whodap/default.nix
index d4f6913105f21..60affb0cd5c61 100644
--- a/pkgs/development/python-modules/whodap/default.nix
+++ b/pkgs/development/python-modules/whodap/default.nix
@@ -10,15 +10,15 @@
 
 buildPythonPackage rec {
   pname = "whodap";
-  version = "0.1.4";
+  version = "0.1.5";
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "pogzyb";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-L8fSf9AhmWbRvLKvf0aowKoal+5dG1SJXcA7Ssrhj6o=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-Jm3+WMGuYc910TNDVzHjYcbNcts668D3xYORXxozWqA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/widgetsnbextension/default.nix b/pkgs/development/python-modules/widgetsnbextension/default.nix
index 8f6cb6ad1867c..5b4f535563c22 100644
--- a/pkgs/development/python-modules/widgetsnbextension/default.nix
+++ b/pkgs/development/python-modules/widgetsnbextension/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "widgetsnbextension";
-  version = "3.5.2";
+  version = "3.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e0731a60ba540cd19bbbefe771a9076dcd2dde90713a8f87f27f53f2d1db7727";
+    sha256 = "sha256-6Ep6n8ubrz1XEG4YSnOJqPjrk1v3QaXrnWCqGMwCmoA=";
   };
 
   propagatedBuildInputs = [ notebook ];
diff --git a/pkgs/development/python-modules/widlparser/default.nix b/pkgs/development/python-modules/widlparser/default.nix
new file mode 100644
index 0000000000000..d11fa492ca57a
--- /dev/null
+++ b/pkgs/development/python-modules/widlparser/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+# build inputs
+, typing-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "widlparser";
+  version = "1.0.12";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "plinss";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-T17fDWYd1naza/ao7kXWGcRIl2fzL1/Z9SaJiutZzqk=";
+  };
+
+  postPatch = ''
+    sed -i -e 's/0.0.0/${version}/' setup.py
+  '';
+
+  propagatedBuildInputs = [
+    typing-extensions
+  ];
+
+  pythonImportsCheck = [ "widlparser" ];
+
+  meta = with lib; {
+    description = "Stand-alone WebIDL Parser in Python";
+    homepage = "https://github.com/plinss/widlparser";
+    license = licenses.mit;
+    maintainers = [ maintainers.kvark ];
+  };
+}
diff --git a/pkgs/development/python-modules/wifi/default.nix b/pkgs/development/python-modules/wifi/default.nix
new file mode 100644
index 0000000000000..0b5a9444dbfdf
--- /dev/null
+++ b/pkgs/development/python-modules/wifi/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pbkdf2
+, pytestCheckHook
+, pythonOlder
+, substituteAll
+, wirelesstools
+}:
+
+buildPythonPackage rec {
+  pname = "wifi";
+  version = "0.3.5";
+
+  src = fetchFromGitHub {
+    owner = "rockymeza";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-scg/DvApvyQZtzDgkHFJzf9gCRfJgBvZ64CG/c2Cx8E=";
+  };
+
+  disabled = pythonOlder "2.6";
+
+  postPatch = ''
+    substituteInPlace wifi/scan.py \
+      --replace "/sbin/iwlist" "${wirelesstools}/bin/iwlist"
+  '';
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  propagatedBuildInputs = [
+    pbkdf2
+  ];
+
+  pythonImportsCheck = [ "wifi" ];
+
+  meta = with lib; {
+    description = "Provides a command line wrapper for iwlist and /etc/network/interfaces";
+    homepage = "https://github.com/rockymeza/wifi";
+    maintainers = with maintainers; [ rhoriguchi ];
+    license = licenses.bsd2;
+  };
+}
diff --git a/pkgs/development/python-modules/winacl/default.nix b/pkgs/development/python-modules/winacl/default.nix
index 76d6d71c0b63c..52ae843d42606 100644
--- a/pkgs/development/python-modules/winacl/default.nix
+++ b/pkgs/development/python-modules/winacl/default.nix
@@ -1,15 +1,19 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "winacl";
-  version = "0.1.2";
+  version = "0.1.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "187b4394ef247806f50e1d8320bdb9e33ad1f759d9e61e2e391b97b9adf5f58a";
+    hash = "sha256-G6xWep0hMACCqiJGuw+UpZH8qOIY4WO6sY3w4y7v6gY=";
   };
 
   # Project doesn't have tests
diff --git a/pkgs/development/python-modules/winsspi/default.nix b/pkgs/development/python-modules/winsspi/default.nix
index ea880234c0bf3..6869c9f0b08a2 100644
--- a/pkgs/development/python-modules/winsspi/default.nix
+++ b/pkgs/development/python-modules/winsspi/default.nix
@@ -2,21 +2,31 @@
 , buildPythonPackage
 , fetchPypi
 , minikerberos
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "winsspi";
-  version = "0.0.9";
+  version = "0.0.10";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1q8hr8l8d9jxyp55qsrlkyhdhqjc0n18ajzms7hf1xkhdl7rrbd2";
+    hash = "sha256-L1qNLEufRZFEQmkJ4mp05VBRLiO2z5r1LCoAADx8P9s=";
   };
-  propagatedBuildInputs = [ minikerberos ];
 
-  # Project doesn't have tests
+  propagatedBuildInputs = [
+    minikerberos
+  ];
+
+  # Module doesn't have tests
   doCheck = false;
-  pythonImportsCheck = [ "winsspi" ];
+
+  pythonImportsCheck = [
+    "winsspi"
+  ];
 
   meta = with lib; {
     description = "Python module for ACL/ACE/Security descriptor manipulation";
diff --git a/pkgs/development/python-modules/wsproto/default.nix b/pkgs/development/python-modules/wsproto/default.nix
index d4dd7d0899976..bcc9428b460bd 100644
--- a/pkgs/development/python-modules/wsproto/default.nix
+++ b/pkgs/development/python-modules/wsproto/default.nix
@@ -1,30 +1,31 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, isPy36
-, dataclasses
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
 , h11
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "wsproto";
-  version = "1.0.0";
-  disabled = pythonOlder "3.6"; # python versions <3.6
+  version = "1.1.0";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "868776f8456997ad0d9720f7322b746bbe9193751b5b290b7f924659377c8c38";
+    sha256 = "sha256-ouVr/Vx82DwTadg7X+zNbTd5i3SHKGbmJhbg7PERvag=";
   };
 
-  propagatedBuildInputs = [ h11 ] ++ lib.optional isPy36 dataclasses;
+  propagatedBuildInputs = [ h11 ];
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
-  checkPhase = ''
-    py.test
-  '';
+  pythonImportsCheck = [ "wsproto" ];
 
   meta = with lib; {
     description = "Pure Python, pure state-machine WebSocket implementation";
     homepage = "https://github.com/python-hyper/wsproto/";
     license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/wxPython/4.1.nix b/pkgs/development/python-modules/wxPython/4.1.nix
index 71f8b2847e3be..e5942c17d4c24 100644
--- a/pkgs/development/python-modules/wxPython/4.1.nix
+++ b/pkgs/development/python-modules/wxPython/4.1.nix
@@ -48,12 +48,14 @@ buildPythonPackage rec {
     doxygen
     wxGTK.gtk
     pkg-config
+  ] ++ lib.optionals stdenv.isLinux [
     autoPatchelfHook
   ];
 
   buildInputs = [
     wxGTK.gtk
     ncurses
+  ] ++ lib.optionals stdenv.isLinux [
     libXinerama
     libSM
     libXxf86vm
diff --git a/pkgs/development/python-modules/xarray/default.nix b/pkgs/development/python-modules/xarray/default.nix
index 5f780a61ffc56..85b8ac799c739 100644
--- a/pkgs/development/python-modules/xarray/default.nix
+++ b/pkgs/development/python-modules/xarray/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "xarray";
-  version = "0.20.2";
+  version = "2022.3.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-wuvoDKgbEKAkH2h23MNKyWluXFzc30dY2nz0vXMsQfc=";
+    sha256 = "sha256-OYNEv30XBHeqzv9wIQ4R69aa9rFW/hOXgFTSXEhylEA=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION="${version}";
diff --git a/pkgs/development/python-modules/xdis/default.nix b/pkgs/development/python-modules/xdis/default.nix
index ca339b7a4438b..291da467e9ed3 100644
--- a/pkgs/development/python-modules/xdis/default.nix
+++ b/pkgs/development/python-modules/xdis/default.nix
@@ -1,32 +1,55 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy27
+{ lib
+, buildPythonPackage
 , click
-, pytest
+, fetchFromGitHub
+, fetchpatch
+, pytestCheckHook
+, pythonOlder
 , six
 }:
 
 buildPythonPackage rec {
   pname = "xdis";
-  version = "6.0.3";
-  disabled = isPy27;
+  version = "unstable-2022-04-13";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "rocky";
     repo = "python-xdis";
-    rev = version;
-    sha256 = "1qvg3bwqzqxlzlixz2di3si7siy0ismq93wd57r8cqmxl54gva6h";
+    # Support for later Python releases is missing in 6.0.3
+    rev = "f888df7df5cb8839927e9187c258769cc77fb7a3";
+    hash = "sha256-V1ws5GibRkutFRNcjlP7aW+AshSyWavXIxuwznVbRlU=";
   };
 
-  checkInputs = [ pytest ];
-  propagatedBuildInputs = [ six click ];
+  propagatedBuildInputs = [
+    click
+    six
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "xdis"
+  ];
+
+  disabledTestPaths = [
+    # Our Python release is not in the test matrix
+    "test_unit/test_disasm.py"
+  ];
 
-  checkPhase = ''
-    make check
-  '';
-  pythonImportsCheck = [ "xdis" ];
+  disabledTests = [
+    "test_big_linenos"
+    "test_basic"
+  ];
 
   meta = with lib; {
     description = "Python cross-version byte-code disassembler and marshal routines";
     homepage = "https://github.com/rocky/python-xdis/";
     license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/xgboost/default.nix b/pkgs/development/python-modules/xgboost/default.nix
index 3717ca2473c39..f6c63db450517 100644
--- a/pkgs/development/python-modules/xgboost/default.nix
+++ b/pkgs/development/python-modules/xgboost/default.nix
@@ -48,7 +48,8 @@ buildPythonPackage {
     ln -s ${xgboost}/bin/xgboost ../xgboost
   '';
 
-  pytestFlagsArray = ["../tests/python"];
+  # tests are extremely cpu intensive, only run basic tests to ensure package is working
+  pytestFlagsArray = ["../tests/python/test_basic.py"];
   disabledTestPaths = [
     # Requires internet access: https://github.com/dmlc/xgboost/blob/03cd087da180b7dff21bd8ef34997bf747016025/tests/python/test_ranking.py#L81
     "../tests/python/test_ranking.py"
diff --git a/pkgs/development/python-modules/xhtml2pdf/default.nix b/pkgs/development/python-modules/xhtml2pdf/default.nix
index 5a47fc90f67fd..230e57a06430e 100644
--- a/pkgs/development/python-modules/xhtml2pdf/default.nix
+++ b/pkgs/development/python-modules/xhtml2pdf/default.nix
@@ -4,6 +4,7 @@
 , fetchFromGitHub
 , html5lib
 , pillow
+, pyhanko
 , pypdf3
 , pytestCheckHook
 , python-bidi
@@ -14,22 +15,25 @@
 
 buildPythonPackage rec {
   pname = "xhtml2pdf";
-  version = "0.2.6";
+  version = "0.2.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
+  # Tests are only available on GitHub
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-EyIERvAC98LqPTMCdwWqTkm1RiMhikscL0tnMZUHIT8=";
+    # Currently it is not possible to fetch from version as there is a branch with the same name
+    rev = "afa72cdbbdaf7d459261c1605263101ffcd999af";
+    sha256 = "sha256-plyIM7Ohnp5UBWz/UDTJa1UeWK9yckSZR16wxmLrpnc=";
   };
 
   propagatedBuildInputs = [
     arabic-reshaper
     html5lib
     pillow
+    pyhanko
     pypdf3
     python-bidi
     reportlab
diff --git a/pkgs/development/python-modules/xknx/default.nix b/pkgs/development/python-modules/xknx/default.nix
index b2bfeea8f7a93..88bf7541428bb 100644
--- a/pkgs/development/python-modules/xknx/default.nix
+++ b/pkgs/development/python-modules/xknx/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, cryptography
 , netifaces
 , voluptuous
 , pyyaml
@@ -11,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "xknx";
-  version = "0.19.2";
+  version = "0.20.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -19,14 +20,13 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "XKNX";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-LJ7MmKCWx+n7caud0pN4+7f9H4XzwuAAn9u86X/FACo=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-uqFS/kveWLEmu+8L9dOprcQcO+Odq9lzfTI9lqIhaSw=";
   };
 
   propagatedBuildInputs = [
-    voluptuous
+    cryptography
     netifaces
-    pyyaml
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/xml2rfc/default.nix b/pkgs/development/python-modules/xml2rfc/default.nix
index c9cf286b6cce4..be9323c774d8f 100644
--- a/pkgs/development/python-modules/xml2rfc/default.nix
+++ b/pkgs/development/python-modules/xml2rfc/default.nix
@@ -1,6 +1,6 @@
 { lib
-, fetchPypi
 , buildPythonPackage
+, fetchFromGitHub
 , pythonOlder
 , intervaltree
 , pyflakes
@@ -18,19 +18,37 @@
 , jinja2
 , configargparse
 , appdirs
+, decorator
+, pycairo
+, pytestCheckHook
+, python-fontconfig
 }:
 
 buildPythonPackage rec {
   pname = "xml2rfc";
-  version = "3.12.3";
+  version = "3.12.4";
 
   disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-YUrcD3Q1fkDW+nwf6k2T/aBL8+W9iWkPYW/TqdTiuA0=";
+  src = fetchFromGitHub {
+    owner = "ietf-tools";
+    repo = "xml2rfc";
+    rev = "v${version}";
+    sha256 = "sha256-TAu2Ls553t7wJ/Jhgu+Ff+H4P6az0Du8OL00JjZyCDs=";
   };
 
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "SHELL := /bin/bash" "SHELL := bash" \
+      --replace "test flaketest" "test" \
+      --replace "python setup.py --quiet install" ""
+    substituteInPlace setup.py \
+      --replace "'tox'," ""
+    substituteInPlace requirements.txt \
+      --replace "jinja2>=2.11,<3.0" "jinja2" \
+      --replace "markupsafe==2.0.1" "markupsafe"
+  '';
+
   propagatedBuildInputs = [
     intervaltree
     jinja2
@@ -50,23 +68,25 @@ buildPythonPackage rec {
     appdirs
   ];
 
-  postPatch = ''
-    substituteInPlace requirements.txt \
-      --replace "jinja2>=2.11,<3.0" "jinja2>=2.11"
-  '';
-
-  preCheck = ''
-    export HOME=$(mktemp -d)
-  '';
+  checkInputs = [
+    decorator
+    pycairo
+    pytestCheckHook
+    python-fontconfig
+  ];
 
-  # lxml tries to fetch from the internet
+   # requires Noto Serif and Roboto Mono font
   doCheck = false;
 
+  checkPhase = ''
+    make tests-no-network
+  '';
+
   pythonImportsCheck = [ "xml2rfc" ];
 
   meta = with lib; {
     description = "Tool generating IETF RFCs and drafts from XML sources";
-    homepage = "https://tools.ietf.org/tools/xml2rfc/trac/";
+    homepage = "https://github.com/ietf-tools/xml2rfc";
     # Well, parts might be considered unfree, if being strict; see:
     # http://metadata.ftp-master.debian.org/changelogs/non-free/x/xml2rfc/xml2rfc_2.9.6-1_copyright
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/xmlsec/default.nix b/pkgs/development/python-modules/xmlsec/default.nix
index 0a9a0af0e543f..76ce32e5e8f38 100644
--- a/pkgs/development/python-modules/xmlsec/default.nix
+++ b/pkgs/development/python-modules/xmlsec/default.nix
@@ -16,6 +16,7 @@
 buildPythonPackage rec {
   pname = "xmlsec";
   version = "1.3.12";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
@@ -35,7 +36,14 @@ buildPythonPackage rec {
 
   # Full git clone required for test_doc_examples
   checkInputs = [ pytestCheckHook hypothesis ];
-  disabledTestPaths = [ "tests/test_doc_examples.py" ];
+
+  disabledTestPaths = [
+    "tests/test_doc_examples.py"
+    # test_reinitialize_module segfaults python
+    # https://github.com/mehcode/python-xmlsec/issues/203
+    "tests/test_xmlsec.py"
+  ];
+
 
   pythonImportsCheck = [ "xmlsec" ];
 
diff --git a/pkgs/development/python-modules/xmltodict/default.nix b/pkgs/development/python-modules/xmltodict/default.nix
index 13cc5b89c2a21..5e0733b6256e7 100644
--- a/pkgs/development/python-modules/xmltodict/default.nix
+++ b/pkgs/development/python-modules/xmltodict/default.nix
@@ -1,30 +1,27 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, coverage
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "xmltodict";
   version = "0.12.0";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "50d8c638ed7ecb88d90561beedbf720c9b4e851a9fa6c47ebd64e99d166d8a21";
   };
 
-  checkInputs = [ coverage pytestCheckHook ];
-
-  disabledTests = [
-    # incompatibilities with security fixes: https://github.com/martinblech/xmltodict/issues/289
-    "test_namespace_collapse"
-    "test_namespace_support"
+  checkInputs = [
+    pytestCheckHook
   ];
 
-  meta = {
+  meta = with lib; {
     description = "Makes working with XML feel like you are working with JSON";
     homepage = "https://github.com/martinblech/xmltodict";
-    license = lib.licenses.mit;
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/xxhash/default.nix b/pkgs/development/python-modules/xxhash/default.nix
index df3c0c852696d..ff4eeff354594 100644
--- a/pkgs/development/python-modules/xxhash/default.nix
+++ b/pkgs/development/python-modules/xxhash/default.nix
@@ -1,17 +1,22 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
-  version = "2.0.2";
+  version = "3.0.0";
   pname = "xxhash";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b7bead8cf6210eadf9cecf356e17af794f57c0939a3d420a00d87ea652f87b49";
+    sha256 = "sha256-MLLZeq8R+xIgI/a0TruXxpVengDXRhqWQVygMLXOucc=";
   };
 
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
   meta = with lib; {
     homepage = "https://github.com/ifduyue/python-xxhash";
     description = "Python Binding for xxHash https://pypi.org/project/xxhash/";
diff --git a/pkgs/development/python-modules/yamlfix/default.nix b/pkgs/development/python-modules/yamlfix/default.nix
index 7243b3891f403..b789aab03701d 100644
--- a/pkgs/development/python-modules/yamlfix/default.nix
+++ b/pkgs/development/python-modules/yamlfix/default.nix
@@ -37,11 +37,6 @@ buildPythonPackage rec {
       --replace 'python_paths = "."' ""
   '';
 
-  pytestFlagsArray = [
-    "-n"
-    "$NIX_BUILD_CORES"
-  ];
-
   pythonImportsCheck = [
     "yamlfix"
   ];
diff --git a/pkgs/development/python-modules/yanc/default.nix b/pkgs/development/python-modules/yanc/default.nix
index 925276c0ad62a..37e7d91a80981 100644
--- a/pkgs/development/python-modules/yanc/default.nix
+++ b/pkgs/development/python-modules/yanc/default.nix
@@ -4,16 +4,16 @@ buildPythonPackage rec {
   pname = "yanc";
   version = "0.3.3";
 
-  # Tests fail on Python>=3.5. See: https://github.com/0compute/yanc/issues/10
-  disabled = !(pythonOlder "3.5");
-
-  checkInputs = [ nose ];
-
   src = fetchPypi {
     inherit pname version;
     sha256 = "0z35bkk9phs40lf5061k1plhjdl5fskm0dmdikrsqi1bjihnxp8w";
   };
 
+  # Tests fail on Python>=3.5. See: https://github.com/0compute/yanc/issues/10
+  doCheck = pythonOlder "3.5";
+
+  checkInputs = [ nose ];
+
   checkPhase = ''
     nosetests .
   '';
diff --git a/pkgs/development/python-modules/yeelight/default.nix b/pkgs/development/python-modules/yeelight/default.nix
index b64bd929f13f4..b2c0198894835 100644
--- a/pkgs/development/python-modules/yeelight/default.nix
+++ b/pkgs/development/python-modules/yeelight/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "yeelight";
-  version = "0.7.9";
+  version = "0.7.10";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "stavros";
     repo = "python-yeelight";
     rev = "v${version}";
-    sha256 = "sha256-8N+HOhUX3BXecS/kaAfLoge+NYzKLKPyoTthu+useJA=";
+    sha256 = "sha256-vUsL1CvhYRtv75gkmiPe/UkAtBDZPy1iK2BPUupMXz8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/youtube-search-python/default.nix b/pkgs/development/python-modules/youtube-search-python/default.nix
index 6795ba5812731..361966ef458f1 100644
--- a/pkgs/development/python-modules/youtube-search-python/default.nix
+++ b/pkgs/development/python-modules/youtube-search-python/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "youtube-search-python";
-  version = "1.6.3";
+  version = "1.6.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zAza1XMKLIMZFFS0v/4ATqh6j7aEB2Y+eliE/hNPORw=";
+    hash = "sha256-9ZAZaLkJb2mEg0rstBxOvs9/L4wtbLuCTdFDOuxMqN0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/yoyo-migrations/default.nix b/pkgs/development/python-modules/yoyo-migrations/default.nix
new file mode 100644
index 0000000000000..14c90dbd5f288
--- /dev/null
+++ b/pkgs/development/python-modules/yoyo-migrations/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, sqlparse
+, tabulate
+}:
+
+buildPythonPackage rec {
+  pname = "yoyo-migrations";
+  version = "7.3.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-RIQIKOGgFp9UHnAtWu3KgYWtpoCH57rUhQpvxdced6Q=";
+  };
+
+  propagatedBuildInputs = [ setuptools sqlparse tabulate ];
+
+  doCheck = false; # pypi tarball does not contain tests
+
+  pythonImportsCheck = [ "yoyo" ];
+
+  meta = with lib; {
+    description = "Database schema migration tool";
+    homepage = "https://ollycope.com/software/yoyo";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/pkgs/development/python-modules/yq/default.nix b/pkgs/development/python-modules/yq/default.nix
index b87982b20b65c..4792f38d7ce17 100644
--- a/pkgs/development/python-modules/yq/default.nix
+++ b/pkgs/development/python-modules/yq/default.nix
@@ -4,18 +4,20 @@
 , substituteAll
 , argcomplete
 , pyyaml
+, toml
 , xmltodict
 , jq
+, setuptools-scm
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "yq";
-  version = "2.13.0";
+  version = "2.14.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-/RMf2x9WcWrY1EzZ6q99OyLTm6iGHqZKQJzD9K4mPbg=";
+    sha256 = "sha256-9L8rKZ0eXH69dM+yXR9dm2QBBjusB6LQmhVhRMHWROE=";
   };
 
   patches = [
@@ -25,14 +27,14 @@ buildPythonPackage rec {
     })
   ];
 
-  postPatch = ''
-    substituteInPlace test/test.py \
-      --replace "expect_exit_codes={0} if sys.stdin.isatty() else {2}" "expect_exit_codes={0}"
-  '';
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
 
   propagatedBuildInputs = [
     pyyaml
     xmltodict
+    toml
     argcomplete
   ];
 
@@ -44,13 +46,8 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "yq" ];
 
-  doInstallCheck = true;
-  installCheckPhase = ''
-    echo '{"hello":{"foo":"bar"}}' | $out/bin/yq -y . | grep 'foo: bar'
-  '';
-
   meta = with lib; {
-    description = "Command-line YAML processor - jq wrapper for YAML documents";
+    description = "Command-line YAML/XML/TOML processor - jq wrapper for YAML, XML, TOML documents";
     homepage = "https://github.com/kislyuk/yq";
     license = licenses.asl20;
     maintainers = with maintainers; [ womfoo SuperSandro2000 ];
diff --git a/pkgs/development/python-modules/zarr/default.nix b/pkgs/development/python-modules/zarr/default.nix
index 11c6f84850bd5..972bd527ad0fc 100644
--- a/pkgs/development/python-modules/zarr/default.nix
+++ b/pkgs/development/python-modules/zarr/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "zarr";
-  version = "2.10.3";
+  version = "2.11.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "76932665c2146ebdf15f6dba254f9e0030552fbfcf9322dea822bff96fbce693";
+    sha256 = "sha256-EbYo9C3sNuAUeHnovUcVJLWbI4CUubIePDW+eDmcEV4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/zeep/default.nix b/pkgs/development/python-modules/zeep/default.nix
index 1b3e0c5fcdf0c..83ee3f37f7e4e 100644
--- a/pkgs/development/python-modules/zeep/default.nix
+++ b/pkgs/development/python-modules/zeep/default.nix
@@ -6,6 +6,7 @@
 , cached-property
 , defusedxml
 , fetchFromGitHub
+, fetchpatch
 , freezegun
 , httpx
 , isodate
@@ -38,6 +39,14 @@ buildPythonPackage rec {
     sha256 = "sha256-fJLr2LJpbNQTl183R56G7sJILfm04R39qpJxLogQLoo=";
   };
 
+  patches = [
+    (fetchpatch {
+      # fixes pytest_httpx test case; https://github.com/mvantellingen/python-zeep/pull/1293
+      url = "https://github.com/mvantellingen/python-zeep/commit/2907848185adcb4e6d8c093db6c617c64cb8c8bf.patch";
+      hash = "sha256-hpksgMfrBLvYtI1QIs1aHBtFq7C1PWpnAj8BW5ak1/4=";
+    })
+  ];
+
   propagatedBuildInputs = [
     attrs
     cached-property
diff --git a/pkgs/development/python-modules/zetup/default.nix b/pkgs/development/python-modules/zetup/default.nix
index c2e707347b330..41b5f05cfeb2a 100644
--- a/pkgs/development/python-modules/zetup/default.nix
+++ b/pkgs/development/python-modules/zetup/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , nbconvert
-, pathpy
+, path
 , pytestCheckHook
 , setuptools-scm
 , pythonAtLeast
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ setuptools-scm ];
 
   checkInputs = [
-    pathpy
+    path
     nbconvert
     pytestCheckHook
   ];
diff --git a/pkgs/development/python-modules/zha-quirks/default.nix b/pkgs/development/python-modules/zha-quirks/default.nix
index 56d2704fcc194..541eda6185e79 100644
--- a/pkgs/development/python-modules/zha-quirks/default.nix
+++ b/pkgs/development/python-modules/zha-quirks/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "zha-quirks";
-  version = "0.0.67";
+  version = "0.0.72";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = "zha-device-handlers";
     rev = version;
-    sha256 = "sha256-qkXXrwqMEtfafHsXtlyy6HFwuo/8sOZuQ9SvGRJkGtA=";
+    sha256 = "sha256-tVCvmQR9tGhSDB4OztNaSCj2BTxPdrX3Gw9WZopRo8k=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/zigpy-cc/default.nix b/pkgs/development/python-modules/zigpy-cc/default.nix
index 79b9d910053aa..376b74c266cb0 100644
--- a/pkgs/development/python-modules/zigpy-cc/default.nix
+++ b/pkgs/development/python-modules/zigpy-cc/default.nix
@@ -25,7 +25,6 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    pyserial
     pyserial-asyncio
     zigpy
   ];
@@ -36,6 +35,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    "test_incoming_msg"
+    "test_incoming_msg2"
+    "test_deser"
+  ];
+
   meta = with lib; {
     description = "A library which communicates with Texas Instruments CC2531 radios for zigpy";
     homepage = "https://github.com/zigpy/zigpy-cc";
diff --git a/pkgs/development/python-modules/zigpy/default.nix b/pkgs/development/python-modules/zigpy/default.nix
index 20d5237f76e8b..a10e9ae65c791 100644
--- a/pkgs/development/python-modules/zigpy/default.nix
+++ b/pkgs/development/python-modules/zigpy/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "zigpy";
-  version = "0.43.0";
+  version = "0.44.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "zigpy";
     repo = "zigpy";
     rev = version;
-    sha256 = "1740cv99ny6xy7wfpz754h4wj2cm874b8vnddvff90ajk07qgdia";
+    sha256 = "sha256-E6SeuVu5UdWL5Tx39UQymNhABltR+qVHANYWuCh+h6I=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/zimports/default.nix b/pkgs/development/python-modules/zimports/default.nix
index d350e2040891b..dc9a618924058 100644
--- a/pkgs/development/python-modules/zimports/default.nix
+++ b/pkgs/development/python-modules/zimports/default.nix
@@ -4,27 +4,29 @@
 , buildPythonPackage
 , flake8-import-order
 , pyflakes
-, mock
+, tomli
 , setuptools
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "zimports";
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "sqlalchemyorg";
     repo = "zimports";
     rev = "v${version}";
-    sha256 = "11mg7j7xiypv9hki4qbnp9jsgwgfdrgdzfqyrzk5x0s4hycgi4q0";
+    sha256 = "sha256-O8MHUt9yswL9fK9pEddkvnNS2E4vWA/S1BTs1OD1VbU=";
   };
 
   disabled = !isPy3k;
 
   propagatedBuildInputs = [
-    pyflakes
     flake8-import-order
+    pyflakes
     setuptools
+    tomli
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/zodb/default.nix b/pkgs/development/python-modules/zodb/default.nix
index e4f1e403cd970..7c788f7a9f8f8 100644
--- a/pkgs/development/python-modules/zodb/default.nix
+++ b/pkgs/development/python-modules/zodb/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "ZODB";
-  version = "5.6.0";
+  version = "5.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1zh7rd182l15swkbkm3ib0wgyn16xasdz2mzry8k4lwk6dagnm26";
+    sha256 = "sha256-+kC7wF7NoewkNc0MbdAqE7dphGBVikYENm9qCmhAHNM=";
   };
 
   # remove broken test
diff --git a/pkgs/development/python-modules/zodbpickle/default.nix b/pkgs/development/python-modules/zodbpickle/default.nix
index 864155c2a2053..de1f8dfd3aafe 100644
--- a/pkgs/development/python-modules/zodbpickle/default.nix
+++ b/pkgs/development/python-modules/zodbpickle/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "zodbpickle";
-  version = "2.2.0";
+  version = "2.3";
   disabled = isPyPy; # https://github.com/zopefoundation/zodbpickle/issues/10
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "584127173db0a2647af0fc8cb935130b1594398c611e94fb09a719e09e1ed4bd";
+    sha256 = "sha256-5MtccZcF6Lseju5Kok4gcaMJTs8ng9h0B6uCLxZto6I=";
   };
 
   # fails..
diff --git a/pkgs/development/python-modules/zope_exceptions/default.nix b/pkgs/development/python-modules/zope_exceptions/default.nix
index 0586227c61c54..fb1eb07154a08 100644
--- a/pkgs/development/python-modules/zope_exceptions/default.nix
+++ b/pkgs/development/python-modules/zope_exceptions/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "zope.exceptions";
-  version = "4.4";
+  version = "4.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0d72886b1bb8af4c346a117a540f28ab122577f5e3a105a261be72cd15776fda";
+    sha256 = "sha256-TjW7oEiJxdEU3KpVKXQl1fM/YYqF7323Ehs7dxEAeE4=";
   };
 
   propagatedBuildInputs = [ zope_interface ];
diff --git a/pkgs/development/python-modules/zope_testing/default.nix b/pkgs/development/python-modules/zope_testing/default.nix
index ea2d531f76320..f8ea4e83b15c9 100644
--- a/pkgs/development/python-modules/zope_testing/default.nix
+++ b/pkgs/development/python-modules/zope_testing/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "zope.testing";
-  version = "4.9";
+  version = "4.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "475cb847a7af9d547313ee93f5d0b8800bf627e6d0d9a51d11967984083cb54e";
+    sha256 = "sha256-O25ZBsrd0UjCP+lY5qrj+tyKCKilP3R9l5HC2BNe5W4=";
   };
 
   doCheck = !isPyPy;
diff --git a/pkgs/development/python-modules/zopfli/default.nix b/pkgs/development/python-modules/zopfli/default.nix
index d7e9cf507f031..dc2b14bdc62be 100644
--- a/pkgs/development/python-modules/zopfli/default.nix
+++ b/pkgs/development/python-modules/zopfli/default.nix
@@ -1,12 +1,14 @@
-{ lib, buildPythonPackage, fetchPypi, setuptools-scm, zopfli, pytest }:
+{ lib, buildPythonPackage, fetchPypi, pythonOlder, setuptools-scm, zopfli, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "zopfli";
-  version = "0.1.9";
+  version = "0.2.1";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "78de3cc08a8efaa8013d61528907d91ac4d6cc014ffd8a41cc10ee75e9e60d7b";
+    sha256 = "1ipjkcgdbplsrhr31ypk48px8cax4cm9gcjj7yrcrhg20ql3s9p5";
     extension = "zip";
   };
 
@@ -15,8 +17,7 @@ buildPythonPackage rec {
   buildInputs = [ zopfli ];
   USE_SYSTEM_ZOPFLI = "True";
 
-  # doesn't work with pytestCheckHook
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "cPython bindings for zopfli";
diff --git a/pkgs/development/python-modules/zulip/default.nix b/pkgs/development/python-modules/zulip/default.nix
index 55f2180ebf448..fc0a49687e347 100644
--- a/pkgs/development/python-modules/zulip/default.nix
+++ b/pkgs/development/python-modules/zulip/default.nix
@@ -1,28 +1,27 @@
 { lib
 , buildPythonPackage
-, isPy3k
+, pythonOlder
 , fetchFromGitHub
 , requests
 , matrix-client
 , distro
 , click
-, cryptography
-, pyopenssl
+, typing-extensions
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "zulip";
-  version = "0.8.1";
+  version = "0.8.2";
 
-  disabled = !isPy3k;
+  disabled = pythonOlder "3.6";
 
   # no sdist on PyPI
   src = fetchFromGitHub {
     owner = "zulip";
     repo = "python-zulip-api";
     rev = version;
-    sha256 = "sha256-vYeZEz8nuZYL1stHLa595IbhyNbqqxH4mx7ISbqRAlA=";
+    hash = "sha256-Z5WrV/RDQwdKUBF86M5/xWhXn3fGNqJtqO5PTd7s5ME=";
   };
   sourceRoot = "${src.name}/zulip";
 
@@ -31,20 +30,13 @@ buildPythonPackage rec {
     matrix-client
     distro
     click
-
-    # from requests[security]
-    cryptography
-    pyopenssl
+    typing-extensions
   ];
 
   checkInputs = [
     pytestCheckHook
   ];
 
-  preCheck = ''
-    export COLUMNS=80
-  '';
-
   pythonImportsCheck = [ "zulip" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/zwave-js-server-python/default.nix b/pkgs/development/python-modules/zwave-js-server-python/default.nix
index 5f4203634acb0..028e30f4cb740 100644
--- a/pkgs/development/python-modules/zwave-js-server-python/default.nix
+++ b/pkgs/development/python-modules/zwave-js-server-python/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "zwave-js-server-python";
-  version = "0.35.2";
+  version = "0.35.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Bte4pAi+atdkMvxYlzdN/UOrHB2WKfl44U9m/vKFMoA=";
+    sha256 = "sha256-vM5GEqq32VdC5UjGVlnrN8/LRcCHHkJFzEbaA2Snte8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/zwave-me-ws/default.nix b/pkgs/development/python-modules/zwave-me-ws/default.nix
new file mode 100644
index 0000000000000..479b2d5193ed4
--- /dev/null
+++ b/pkgs/development/python-modules/zwave-me-ws/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, aiohttp
+, aresponses
+, asynctest
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytest-aiohttp
+, pytest-asyncio
+, pytestCheckHook
+, python-engineio
+, python-socketio
+, pythonOlder
+, websocket-client
+}:
+
+buildPythonPackage rec {
+  pname = "zwave-me-ws";
+  version = "0.2.4";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "Z-Wave-Me";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-x7P6fOYTe/u0GKUsO62cNVz2i/hVjUb8t8Bigijxgk0=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    websocket-client
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "zwave_me_ws"
+  ];
+
+  meta = with lib; {
+    description = "Library to connect to a ZWave-Me instance";
+    homepage = "https://github.com/Z-Wave-Me/zwave-me-ws";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python2-modules/cryptography/default.nix b/pkgs/development/python2-modules/cryptography/default.nix
index 357bb35dacf76..0b4e2ae394cdb 100644
--- a/pkgs/development/python2-modules/cryptography/default.nix
+++ b/pkgs/development/python2-modules/cryptography/default.nix
@@ -1,10 +1,11 @@
-{ lib, stdenv
+{ lib
+, stdenv
+, callPackage
 , buildPythonPackage
 , fetchPypi
 , isPy27
 , ipaddress
 , openssl
-, cryptography_vectors
 , darwin
 , packaging
 , six
@@ -18,6 +19,9 @@
 , enum34
 }:
 
+let
+  cryptography-vectors = callPackage ./vectors.nix { };
+in
 buildPythonPackage rec {
   pname = "cryptography";
   version = "3.3.2"; # Also update the hash in vectors-3.3.nix
@@ -36,18 +40,19 @@ buildPythonPackage rec {
   ];
 
   buildInputs = [ openssl ]
-             ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
+    ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
   propagatedBuildInputs = [
     packaging
     six
   ] ++ lib.optionals (!isPyPy) [
     cffi
   ] ++ lib.optionals isPy27 [
-    ipaddress enum34
+    ipaddress
+    enum34
   ];
 
   checkInputs = [
-    cryptography_vectors
+    cryptography-vectors
     hypothesis
     iso8601
     pretend
diff --git a/pkgs/development/python2-modules/cryptography-vectors/default.nix b/pkgs/development/python2-modules/cryptography/vectors.nix
index f9b7c525237ab..4d6214807e73e 100644
--- a/pkgs/development/python2-modules/cryptography-vectors/default.nix
+++ b/pkgs/development/python2-modules/cryptography/vectors.nix
@@ -1,12 +1,13 @@
 { buildPythonPackage, fetchPypi, lib, cryptography }:
 
 buildPythonPackage rec {
-  pname = "cryptography_vectors";
+  pname = "cryptography-vectors";
   # The test vectors must have the same version as the cryptography package:
   version = cryptography.version;
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "cryptography_vectors";
+    inherit version;
     sha256 = "1yhaps0f3h2yjb6lmz953z1l1d84y9swk4k3gj9nqyk4vbx5m7cc";
   };
 
diff --git a/pkgs/development/python2-modules/pycairo/default.nix b/pkgs/development/python2-modules/pycairo/default.nix
index 9da4da1479c0e..eefc69a3323f6 100644
--- a/pkgs/development/python2-modules/pycairo/default.nix
+++ b/pkgs/development/python2-modules/pycairo/default.nix
@@ -3,7 +3,7 @@
 , meson
 , ninja
 , buildPythonPackage
-, pytestCheckHook
+, pytest
 , pkg-config
 , cairo
 , python
@@ -32,9 +32,11 @@ buildPythonPackage rec {
     cairo
   ];
 
-  checkInputs = [
-    pytestCheckHook
-  ];
+  # HACK: Don't use the pytestCheckHook because PYTHONPATH
+  # will be added by the Python setuptook breaking meson.
+  checkPhase = ''
+    ${pytest}/bin/pytest
+  '';
 
   mesonFlags = [
     # This is only used for figuring out what version of Python is in
diff --git a/pkgs/development/quickemu/default.nix b/pkgs/development/quickemu/default.nix
index 7aa5b1602c381..e70053a316bfa 100644
--- a/pkgs/development/quickemu/default.nix
+++ b/pkgs/development/quickemu/default.nix
@@ -19,7 +19,7 @@
 , zsync
 , OVMF
 , quickemu
-, testVersion
+, testers
 }:
 let
   runtimePaths = [
@@ -43,13 +43,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "quickemu";
-  version = "3.14";
+  version = "3.15";
 
   src = fetchFromGitHub {
     owner = "quickemu-project";
     repo = "quickemu";
     rev = version;
-    sha256="sha256-7zaXazGzb36Nwk/meJ3lGD+l+fylWZYnhttDL1CXN9s=";
+    sha256="sha256-ako/eh8cMWKvdrgm9VTgSH67nA2igKUlJZtBeH1bu4Y=";
   };
 
   patches = [
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  passthru.tests = testVersion { package = quickemu; };
+  passthru.tests = testers.testVersion { package = quickemu; };
 
   meta = with lib; {
     description = "Quickly create and run optimised Windows, macOS and Linux desktop virtual machines";
diff --git a/pkgs/development/r-modules/bioc-annotation-packages.nix b/pkgs/development/r-modules/bioc-annotation-packages.nix
index e8da5771d4eac..a4bb9dac14de1 100644
--- a/pkgs/development/r-modules/bioc-annotation-packages.nix
+++ b/pkgs/development/r-modules/bioc-annotation-packages.nix
@@ -29,6 +29,7 @@ in with self; {
   BSgenome_Btaurus_UCSC_bosTau6_masked = derive2 { name="BSgenome.Btaurus.UCSC.bosTau6.masked"; version="1.3.99"; sha256="07isv0lcvlsl0aha1p474l0pps0j7bsh455m33vfxwahivqsfy27"; depends=[BSgenome BSgenome_Btaurus_UCSC_bosTau6]; };
   BSgenome_Btaurus_UCSC_bosTau8 = derive2 { name="BSgenome.Btaurus.UCSC.bosTau8"; version="1.4.2"; sha256="16wjy1aw9nvx03r7w8yh5w7sw3pn8i9nczd0n0728l6nnyqxlsz6"; depends=[BSgenome]; };
   BSgenome_Btaurus_UCSC_bosTau9 = derive2 { name="BSgenome.Btaurus.UCSC.bosTau9"; version="1.4.2"; sha256="0vx9z101faybqqdqfk306m7m3j490svmx7bn7knh5if66g0mzi7g"; depends=[BSgenome]; };
+  BSgenome_Btaurus_UCSC_bosTau9_masked = derive2 { name="BSgenome.Btaurus.UCSC.bosTau9.masked"; version="1.4.4"; sha256="04wzhrp0kb8mv7dg732daqr58djs5dwjm54hgmzbaafv1715i74k"; depends=[BSgenome BSgenome_Btaurus_UCSC_bosTau9]; };
   BSgenome_Carietinum_NCBI_v1 = derive2 { name="BSgenome.Carietinum.NCBI.v1"; version="1.0.0"; sha256="1asyyb1p1bzc7dv9s2igjxrf9f144vvz2xbv9qxg15w9qzzx7r33"; depends=[BSgenome]; };
   BSgenome_Celegans_UCSC_ce10 = derive2 { name="BSgenome.Celegans.UCSC.ce10"; version="1.4.0"; sha256="1zaym97jk4npxk14ifvwz2rvhm4zx9xgs33r9vvx9rlynp0gydrk"; depends=[BSgenome]; };
   BSgenome_Celegans_UCSC_ce11 = derive2 { name="BSgenome.Celegans.UCSC.ce11"; version="1.4.2"; sha256="0d4bxfglpqiv1f0n6imdgz101g9383hfj3ra91268wryzlm0yk5w"; depends=[BSgenome]; };
@@ -330,7 +331,7 @@ in with self; {
   excluderanges = derive2 { name="excluderanges"; version="0.99.6"; sha256="1ryp2ghbx1b1268fpgza5rn6brhalff9hsr6fxpr5x5mc35hkd68"; depends=[]; };
   fitCons_UCSC_hg19 = derive2 { name="fitCons.UCSC.hg19"; version="3.7.1"; sha256="19isa4x8js0pdb4k8a11bw3bzmzv6jc4jphzrvav7piqkvrgykzx"; depends=[BSgenome GenomeInfoDb GenomicRanges GenomicScores IRanges S4Vectors]; };
   fly_db0 = derive2 { name="fly.db0"; version="3.14.0"; sha256="0jk5k5zpr4r9yn2l7vpb01xdmhi0pm3jg333jr7rv0c6fzjq5279"; depends=[AnnotationDbi]; };
-  geneplast_data = derive2 { name="geneplast.data"; version="0.99.5"; sha256="0bwhc20jkjs3n1n4xv7xmkgjzf6ghssvbsmx3dm347smk54wgjsw"; depends=[]; };
+  geneplast_data = derive2 { name="geneplast.data"; version="0.99.6"; sha256="1vq2l828d25lsmmac6079vip8bbvqhiyr1x58s467cwcl1mgayrk"; depends=[]; };
   geneplast_data_string_v91 = derive2 { name="geneplast.data.string.v91"; version="0.99.6"; sha256="0mc26d0sgmpmfmqsqinqv5k6vhg0hlc8hsjkcnvf369yav224nq1"; depends=[]; };
   genomewidesnp5Crlmm = derive2 { name="genomewidesnp5Crlmm"; version="1.0.6"; sha256="06dmwnjy3gb53y6nr02dmp22qzfl5d63wppazrabcqbzwimhnvp8"; depends=[]; };
   genomewidesnp6Crlmm = derive2 { name="genomewidesnp6Crlmm"; version="1.0.7"; sha256="16qcxa32fmbdcv5dck0grsnqyfcqql7wpxa1l6andv9hrvabv2jx"; depends=[]; };
diff --git a/pkgs/development/r-modules/bioc-experiment-packages.nix b/pkgs/development/r-modules/bioc-experiment-packages.nix
index 5974766e04bd2..a95381557885a 100644
--- a/pkgs/development/r-modules/bioc-experiment-packages.nix
+++ b/pkgs/development/r-modules/bioc-experiment-packages.nix
@@ -153,7 +153,7 @@ in with self; {
   QDNAseq_mm10 = derive2 { name="QDNAseq.mm10"; version="1.24.0"; sha256="1iamvkpj5gij2x7j3fixgn3djgly684wrvr888w9cfir6wf5pk94"; depends=[QDNAseq]; };
   QUBICdata = derive2 { name="QUBICdata"; version="1.22.0"; sha256="15saydq9vv1lvqgvv5d51km52aqzwjx7q7ijpka6why442lrys9r"; depends=[]; };
   RGMQLlib = derive2 { name="RGMQLlib"; version="1.14.0"; sha256="0l317dma9cnwhr24k65lhs26n1511chiq8fp0xx4bnxzvw3q7g5b"; depends=[]; };
-  RITANdata = derive2 { name="RITANdata"; version="1.18.0"; sha256="0jpw3lsm7npwn44j7ydi2630qmkjymm1hm2hv73gfk464zr40xf4"; depends=[]; };
+  RITANdata = derive2 { name="RITANdata"; version="1.18.1"; sha256="1dx743cjhi9713sa0ndvk5w8m8p0zxbp9xdw1ssincgqyv1n02qb"; depends=[]; };
   RLHub = derive2 { name="RLHub"; version="1.0.0"; sha256="1i3i1dp5b04xmkgz6lf3fdk0bag23as4f42pcqncalxavgf3c3vm"; depends=[AnnotationHub ExperimentHub]; };
   RMassBankData = derive2 { name="RMassBankData"; version="1.32.0"; sha256="1m268dd3wl92l3vihqijcxy1iif7qw3i3vlqhjq18qmc11i55qp2"; depends=[]; };
   RNASeqRData = derive2 { name="RNASeqRData"; version="1.12.0"; sha256="0546d7p29vra6n54ffnjxz0ajb9ih90m01xx3b9p56v2s4x0wia4"; depends=[]; };
@@ -200,7 +200,7 @@ in with self; {
   TBX20BamSubset = derive2 { name="TBX20BamSubset"; version="1.30.0"; sha256="1y1dgnqa3f80x8j8pw02dd4zb40q86v1qp7102lkhnppvb3b3f2j"; depends=[Rsamtools xtable]; };
   TCGAMethylation450k = derive2 { name="TCGAMethylation450k"; version="1.30.0"; sha256="1qymmnvpic4nz93079r5kxb9yi7y6qcjq39rz5mmcp15q73lpfqk"; depends=[]; };
   TCGAWorkflowData = derive2 { name="TCGAWorkflowData"; version="1.18.0"; sha256="17iq6g93bxzzgsv255ab68crcr5haim57fxx6shjy8ww2ab6522k"; depends=[SummarizedExperiment]; };
-  TCGAbiolinksGUI_data = derive2 { name="TCGAbiolinksGUI.data"; version="1.14.0"; sha256="08zmlvycq3jz1zy0715x9f21nf3465c51k7w2jq12sfbap36pmjm"; depends=[]; };
+  TCGAbiolinksGUI_data = derive2 { name="TCGAbiolinksGUI.data"; version="1.14.1"; sha256="0h8k8bq64c9l70li2jzjmwillxsdmp06f3kikzxhys0xhdkcaanm"; depends=[]; };
   TCGAcrcmRNA = derive2 { name="TCGAcrcmRNA"; version="1.14.0"; sha256="09ccilwf4kvwgaglk5ar5b6c7pyh3b21r0vg6ibb57ilbv85srqd"; depends=[Biobase]; };
   TCGAcrcmiRNA = derive2 { name="TCGAcrcmiRNA"; version="1.14.0"; sha256="0njs301kfbchhcy4i8ldlpv7z9lsj4hm1ivb4w2r75qkaalmgi7s"; depends=[Biobase]; };
   TENxBUSData = derive2 { name="TENxBUSData"; version="1.8.0"; sha256="1smvgqym0jd5m3as8pjyl9dhnfbh02sdh2sxb2hr89133fh6mx6a"; depends=[AnnotationHub BiocGenerics ExperimentHub]; };
@@ -394,7 +394,7 @@ in with self; {
   stemHypoxia = derive2 { name="stemHypoxia"; version="1.30.0"; sha256="05jly60gg5xr9511jlymzbpjysapfz2qq81rxhdz7cjbjkkgvykr"; depends=[]; };
   stjudem = derive2 { name="stjudem"; version="1.34.0"; sha256="005wy7b8naaph9krsdw234sk8fprccclnj7y4rfrs2f3lbrw4b2g"; depends=[]; };
   synapterdata = derive2 { name="synapterdata"; version="1.31.0"; sha256="03bdx8a1hrnlbcfq92d2yrjydw978pifbgr257r55p15khkigl86"; depends=[]; };
-  systemPipeRdata = derive2 { name="systemPipeRdata"; version="1.22.0"; sha256="09p653i4drnfjvx3kd20f4jg7lw1254f44qknl3ghiqppa6rz9g9"; depends=[BiocGenerics GenomicFeatures GenomicRanges IRanges jsonlite remotes Rsamtools rtracklayer ShortRead]; };
+  systemPipeRdata = derive2 { name="systemPipeRdata"; version="1.22.2"; sha256="1hkmgj6dzrn2wnpasl418hxzv9ym0007swg9ayjjy6i4w0q1mvs3"; depends=[BiocGenerics GenomicFeatures GenomicRanges IRanges jsonlite remotes Rsamtools rtracklayer ShortRead]; };
   tartare = derive2 { name="tartare"; version="1.8.0"; sha256="0zaiy4wkikrcx2lc8mcsikpfp8yz3l17bd1z1l0g9r41ixysq105"; depends=[AnnotationHub ExperimentHub]; };
   tcgaWGBSData_hg19 = derive2 { name="tcgaWGBSData.hg19"; version="1.12.0"; sha256="1kmh4iyh2h7vc1mlwb3sridn4nwkqdschz5md5dk53mxkn2wxcmi"; depends=[bsseq ExperimentHub knitr]; };
   timecoursedata = derive2 { name="timecoursedata"; version="1.4.0"; sha256="007dh5wmjd6s7jr0p8af6irm25my20j1ifxhm6rxscgijskqb410"; depends=[SummarizedExperiment]; };
diff --git a/pkgs/development/r-modules/bioc-packages.nix b/pkgs/development/r-modules/bioc-packages.nix
index 965b3d5047108..15089b4cb4374 100644
--- a/pkgs/development/r-modules/bioc-packages.nix
+++ b/pkgs/development/r-modules/bioc-packages.nix
@@ -14,7 +14,7 @@ in with self; {
   ADAM = derive2 { name="ADAM"; version="1.10.0"; sha256="18zwci0ab54q7rdwj0n63w0i14lfrb4cccp09bcrq10gl1ki07f5"; depends=[dplyr DT GO_db KEGGREST knitr pbapply Rcpp stringr SummarizedExperiment]; };
   ADAMgui = derive2 { name="ADAMgui"; version="1.10.0"; sha256="0n06bb9djigha0249lxx84pn9q0xiryxbv25qsc3p2h46iaxi3wq"; depends=[ADAM colorRamps data_table dplyr DT ggplot2 ggpubr ggrepel ggsignif GO_db gridExtra knitr RColorBrewer reshape2 shiny shinyjs stringi stringr testthat varhandle]; };
   ADImpute = derive2 { name="ADImpute"; version="1.4.0"; sha256="1bkq1hd8sqg9r28r70a9vd3gb2nsmg6dybf002d621p88cdfjib2"; depends=[BiocParallel checkmate data_table DrImpute kernlab MASS Matrix rsvd S4Vectors SAVER SingleCellExperiment SummarizedExperiment]; };
-  ADaCGH2 = derive2 { name="ADaCGH2"; version="2.34.0"; sha256="0a01wds33i2h2whigznbrxq38irlxm20qpwix33x6vlxbjgrckal"; depends=[aCGH bit cluster DNAcopy ff ffbase GLAD snapCGH tilingArray waveslim]; };
+  ADaCGH2 = derive2 { name="ADaCGH2"; version="2.34.0"; sha256="0a01wds33i2h2whigznbrxq38irlxm20qpwix33x6vlxbjgrckal"; depends=[aCGH bit cluster DNAcopy ff GLAD snapCGH tilingArray waveslim]; };
   AGDEX = derive2 { name="AGDEX"; version="1.42.0"; sha256="0y0q4zdybr5hlsi7qy2hf6c2sqr2z2211wz36dz70jkqyr0ggw64"; depends=[Biobase GSEABase]; };
   AIMS = derive2 { name="AIMS"; version="1.26.0"; sha256="1jsvyddv4cy3a53agprqkpfv1a7p384d462675k73dh8paid90nq"; depends=[Biobase e1071]; };
   ALDEx2 = derive2 { name="ALDEx2"; version="1.26.0"; sha256="1k57ifczqj47r8v2m08kmqr4vsrc5vsh7zs18vspvd6xd0qd03xf"; depends=[BiocParallel GenomicRanges IRanges multtest Rfast S4Vectors SummarizedExperiment zCompositions]; };
@@ -32,7 +32,7 @@ in with self; {
   ASSIGN = derive2 { name="ASSIGN"; version="1.30.0"; sha256="0j8kvn5pq29wqjdcsq6smawdvxb7ccam3m5z223mkwww24m92qyw"; depends=[ggplot2 gplots msm Rlab sva yaml]; };
   ASpediaFI = derive2 { name="ASpediaFI"; version="1.8.0"; sha256="0q33ir3chlix9qvw9drjrwzckk5s1vkj7gfdsffrslxsyl0nizx7"; depends=[BiocParallel biomaRt dplyr DRaWR e1071 fgsea GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 Gviz igraph IRanges IVAS limma Matrix mGSZ reshape2 ROCR Rsamtools rtracklayer S4Vectors scales SummarizedExperiment]; };
   ASpli = derive2 { name="ASpli"; version="2.4.0"; sha256="0548p8k3a379qqw7d80rbc7hm1g9bx4vmadxm0gmjph9akx56f3h"; depends=[AnnotationDbi BiocGenerics BiocStyle data_table DT edgeR GenomicAlignments GenomicFeatures GenomicRanges Gviz htmltools igraph IRanges limma MASS pbmcapply Rsamtools S4Vectors tidyr UpSetR]; };
-  ATACseqQC = derive2 { name="ATACseqQC"; version="1.18.0"; sha256="0i1i3bfkp1xsjdl1nd56mlh66qz3aasd1hp09d4i31njz2f9znwn"; depends=[BiocGenerics Biostrings BSgenome ChIPpeakAnno edgeR GenomeInfoDb GenomicAlignments GenomicRanges GenomicScores IRanges KernSmooth limma motifStack preseqR randomForest Rsamtools rtracklayer S4Vectors]; };
+  ATACseqQC = derive2 { name="ATACseqQC"; version="1.18.1"; sha256="1jmlialnhs9df1hv6l4qk2c4qjyjbz9mdj8vr52ms8vlxlxplz6c"; depends=[BiocGenerics Biostrings BSgenome ChIPpeakAnno edgeR GenomeInfoDb GenomicAlignments GenomicRanges GenomicScores IRanges KernSmooth limma motifStack preseqR randomForest Rsamtools rtracklayer S4Vectors]; };
   AUCell = derive2 { name="AUCell"; version="1.16.0"; sha256="1lclf8hkhrm6g5fp8yhvjxnwgf8p0j9ffxsmcybz4rjvmwkiz5dp"; depends=[BiocGenerics data_table GSEABase mixtools R_utils S4Vectors shiny SummarizedExperiment]; };
   AWFisher = derive2 { name="AWFisher"; version="1.8.0"; sha256="1i9niknq2bnhwjdvl4f5hmdhg0p5vn9p6b6bb8fanfsijq0cn37p"; depends=[edgeR limma]; };
   AffiXcan = derive2 { name="AffiXcan"; version="1.12.0"; sha256="06yn87briv2141jqad934gg5rcd90w5nghrgmbhqnmwafn72gj9d"; depends=[BiocParallel crayon MultiAssayExperiment SummarizedExperiment]; };
@@ -42,7 +42,7 @@ in with self; {
   AllelicImbalance = derive2 { name="AllelicImbalance"; version="1.32.0"; sha256="1s6arjd0nxgxyqy7vhqcb78k0ss7vwrhv41pm346hs1nyr5dkzaq"; depends=[AnnotationDbi BiocGenerics Biostrings BSgenome GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges gridExtra Gviz IRanges lattice latticeExtra nlme Rsamtools S4Vectors seqinr SummarizedExperiment VariantAnnotation]; };
   AlphaBeta = derive2 { name="AlphaBeta"; version="1.8.0"; sha256="0ya3dqvdf8iyd5bscc9lc476vkc7kamiqgjvxhxl4ay5j4vn02nr"; depends=[BiocParallel data_table dplyr expm ggplot2 gtools igraph optimx plotly stringr]; };
   AlpsNMR = derive2 { name="AlpsNMR"; version="3.4.0"; sha256="0h8y9hi97zbv3qzjskxh81qjarmwx2w790kpspljgxa214f58fzv"; depends=[assertthat baseline BiocParallel dplyr fs furrr future GGally ggplot2 ggrepel glue htmltools magrittr matrixStats mixOmics pcaPP plyr purrr readxl reshape2 rlang rmarkdown S4Vectors signal speaq stringr SummarizedExperiment tibble tidyr tidyselect vctrs writexl zip]; };
-  AnVIL = derive2 { name="AnVIL"; version="1.6.5"; sha256="0ipf3916xwmg22kmc0qk7x8sw3bb6579cffmdwsizr1mw84cdjwd"; depends=[BiocManager dplyr futile_logger httr jsonlite rapiclient rlang tibble tidyr tidyselect]; };
+  AnVIL = derive2 { name="AnVIL"; version="1.6.7"; sha256="0sy3338vg6g9rsc8ixh1l51xkjcyzxk2mcdw7xxxi6bpcg3zhqv9"; depends=[BiocManager dplyr futile_logger httr jsonlite rapiclient rlang tibble tidyr tidyselect]; };
   AnVILBilling = derive2 { name="AnVILBilling"; version="1.4.0"; sha256="0pg5r6qn18i91z2ixapdkranaacv9z8ljmdb33vdn2dqwv2w85b1"; depends=[bigrquery DBI dplyr DT ggplot2 lubridate magrittr plotly shiny shinytoastr]; };
   AnVILPublish = derive2 { name="AnVILPublish"; version="1.4.1"; sha256="0jvh22kz9mg4r49mbzvbvzbn58lzj5mvk7qb4pizn4sd8xsbvmyq"; depends=[AnVIL httr jsonlite readr rmarkdown whisker yaml]; };
   Anaquin = derive2 { name="Anaquin"; version="2.18.0"; sha256="0b9clpqy2jfhign30nab1369xswrkmqm6dx14mf6wjrvcl9xpm2s"; depends=[DESeq2 ggplot2 knitr locfit plyr qvalue ROCR]; };
@@ -88,10 +88,10 @@ in with self; {
   BayesSpace = derive2 { name="BayesSpace"; version="1.4.1"; sha256="1nif6d4hb9zpfx9lczs6j6xniiv0spq6s39jvrs1qazdyysmf4qy"; depends=[assertthat BiocFileCache BiocSingular coda DirichletReg ggplot2 Matrix mclust purrr Rcpp RcppArmadillo RcppDist RcppProgress RCurl rhdf5 S4Vectors scales scater scran SingleCellExperiment SummarizedExperiment xgboost]; };
   BeadDataPackR = derive2 { name="BeadDataPackR"; version="1.46.0"; sha256="004cppgdy79fqw2szkgkxir0rxvn91bmfrq4g20sdr7cvh8kpfyi"; depends=[]; };
   BgeeCall = derive2 { name="BgeeCall"; version="1.10.0"; sha256="0rbbl8m48qcvl26lnf27jq108p7pi84m9ac3qcpjc0ax5wywbv16"; depends=[biomaRt Biostrings data_table dplyr GenomicFeatures jsonlite rhdf5 rslurm rtracklayer sjmisc tximport]; };
-  BgeeDB = derive2 { name="BgeeDB"; version="2.20.0"; sha256="0pjymal01sjl5dc37g66wykgxnksarlbvwnbvhg7w0i7y92zavqk"; depends=[Biobase curl data_table digest dplyr graph R_utils RCurl RSQLite tidyr topGO]; };
+  BgeeDB = derive2 { name="BgeeDB"; version="2.20.1"; sha256="0mrw7fwjx8k0a5c3iw2j94h1yn5pkvqil7fbzih9xiafnpbn374m"; depends=[Biobase curl data_table digest dplyr graph R_utils RCurl RSQLite tidyr topGO]; };
   BiFET = derive2 { name="BiFET"; version="1.14.0"; sha256="0vidypvphnj76g4ra5ijrgqx2dnzw0fmvdvz35gsqswrr3k20jkk"; depends=[GenomicRanges poibin]; };
   BiGGR = derive2 { name="BiGGR"; version="1.30.0"; sha256="1g01666wwznk148776s4vr1hfi3dfl448dhgk4d1qy2wv6sxh9kr"; depends=[hyperdraw hypergraph LIM limSolve rsbml stringr]; };
-  BiRewire = derive2 { name="BiRewire"; version="3.26.2"; sha256="114qljg6yqx55yi0w5nmhdz9260dzkj73bjgqh8w9kpfvcb0439l"; depends=[igraph Matrix slam tsne]; };
+  BiRewire = derive2 { name="BiRewire"; version="3.26.5"; sha256="041i5d08bsc5jqx3309fixjacizs4yi992cwazxghm8mrk3kicbr"; depends=[igraph Matrix Rtsne slam]; };
   BiSeq = derive2 { name="BiSeq"; version="1.34.0"; sha256="05namdzj196rzjg3wqvamj3xpn039dbfhfpmc6p8ifxn9c9dnd3c"; depends=[betareg Biobase BiocGenerics Formula GenomeInfoDb GenomicRanges globaltest IRanges lokern rtracklayer S4Vectors SummarizedExperiment]; };
   BicARE = derive2 { name="BicARE"; version="1.52.0"; sha256="1g8vrsc05cysb36gsw8sfmr6dgbh4aji37vcq9qwkmkv3jgvnlf6"; depends=[Biobase GSEABase multtest]; };
   BindingSiteFinder = derive2 { name="BindingSiteFinder"; version="1.0.0"; sha256="0mvl2mh2px315ilfmf9ax5qjz3282l56qm1a0v142bb7cxld13v7"; depends=[GenomicRanges ggforce ggplot2 matrixStats rtracklayer S4Vectors tidyr]; };
@@ -147,7 +147,7 @@ in with self; {
   CGHnormaliter = derive2 { name="CGHnormaliter"; version="1.48.0"; sha256="1zz4iaxyf5b03xalq58idnkrwcpsvh8zlz6hlxz487caw7c8xx6p"; depends=[Biobase CGHbase CGHcall]; };
   CGHregions = derive2 { name="CGHregions"; version="1.52.0"; sha256="1g337b6fjmbbkpn9pw20z6bvacrlfh582n6lss3qw0s6x6w5cygs"; depends=[Biobase CGHbase]; };
   CHRONOS = derive2 { name="CHRONOS"; version="1.22.0"; sha256="18fdvbdbl0rms1fs27yi6lvf3xnn3pjfm1qngaaz4c06v207mg9w"; depends=[biomaRt circlize doParallel foreach graph igraph openxlsx RBGL RCurl rJava XML]; };
-  CIMICE = derive2 { name="CIMICE"; version="1.2.0"; sha256="0d2sglrp8ansh8nibbqyg3pvhaaw33q5mzci382pwky05mpy9sjk"; depends=[assertthat dplyr ggcorrplot ggplot2 ggraph glue igraph maftools Matrix networkD3 purrr relations tidyr visNetwork]; };
+  CIMICE = derive2 { name="CIMICE"; version="1.2.1"; sha256="1np9wp7phlhvhk58v853iz55i5jhkc75kw5xnyz8zjc30gb5nz9k"; depends=[assertthat dplyr expm ggcorrplot ggplot2 ggraph glue igraph maftools Matrix networkD3 purrr tidygraph tidyr visNetwork]; };
   CINdex = derive2 { name="CINdex"; version="1.22.0"; sha256="0a73rdhmsprbbq69yvnnhgp86wic255yxrj82k1i1k62f3bsi74c"; depends=[bitops dplyr GenomeInfoDb GenomicRanges gplots gridExtra IRanges png S4Vectors som stringr]; };
   CMA = derive2 { name="CMA"; version="1.52.0"; sha256="09w0wj2mars83rfws8k6fpfgkbyp7fw97zfcf6d8lbsza639f3cm"; depends=[Biobase]; };
   CNAnorm = derive2 { name="CNAnorm"; version="1.40.0"; sha256="0nrkqycsssrrsf8h2w2wgi4lfyjlqakjx1iacb754pp2jfsr2nl2"; depends=[DNAcopy]; };
@@ -242,7 +242,7 @@ in with self; {
   DEComplexDisease = derive2 { name="DEComplexDisease"; version="1.14.0"; sha256="0qbmw70rqmfixrbnb2jzvvqi54j2rl6gy1bspb143gsadh8z2s9i"; depends=[BiocParallel ComplexHeatmap DESeq2 edgeR Rcpp SummarizedExperiment]; };
   DEFormats = derive2 { name="DEFormats"; version="1.22.0"; sha256="0c9ajkrjzw3rdnfnjj7xn9pdsykdzn230mi01138srrkvcpra856"; depends=[checkmate data_table DESeq2 edgeR GenomicRanges S4Vectors SummarizedExperiment]; };
   DEGraph = derive2 { name="DEGraph"; version="1.46.0"; sha256="1p8zzx8vbzhxnpvd7cbr4g1r87lys41cx4n60rkx53c0pqlnabsn"; depends=[graph KEGGgraph lattice mvtnorm NCIgraph R_methodsS3 R_utils RBGL Rgraphviz rrcov]; };
-  DEGreport = derive2 { name="DEGreport"; version="1.30.0"; sha256="0zmqz8gvpbka5cnwxx7w00xjaxlhmrni1lvacnippy63lpl2w4sz"; depends=[Biobase BiocGenerics broom circlize cluster ComplexHeatmap ConsensusClusterPlus cowplot DESeq2 dplyr edgeR ggdendro ggplot2 ggrepel knitr lasso2 logging magrittr Nozzle_R1 psych RColorBrewer reshape rlang S4Vectors scales stringr SummarizedExperiment tibble tidyr]; };
+  DEGreport = derive2 { name="DEGreport"; version="1.30.3"; sha256="08g0ldj4867jsw2h1368pcirvcbdz5w9pbz3pgyxjg9mdbnllaka"; depends=[Biobase BiocGenerics broom circlize cluster ComplexHeatmap ConsensusClusterPlus cowplot DESeq2 dplyr edgeR ggdendro ggplot2 ggrepel knitr lasso2 logging magrittr Nozzle_R1 psych RColorBrewer reshape rlang S4Vectors scales stringr SummarizedExperiment tibble tidyr]; };
   DEGseq = derive2 { name="DEGseq"; version="1.48.0"; sha256="1bx6xj71k7126ckpr1b7dh1ndmb9yvp9wrrr8lyfcq5birgpf22n"; depends=[qvalue]; };
   DEP = derive2 { name="DEP"; version="1.16.0"; sha256="122gxaslxl3q66ncqndkmnjf6kx2gkj880cf2khwivh58sg6y410"; depends=[assertthat circlize cluster ComplexHeatmap dplyr DT fdrtool ggplot2 ggrepel gridExtra imputeLCMD limma MSnbase purrr RColorBrewer readr rmarkdown shiny shinydashboard SummarizedExperiment tibble tidyr vsn]; };
   DEScan2 = derive2 { name="DEScan2"; version="1.14.1"; sha256="017pxb1z1vflxcqbhc1vrdxw146rb50zgxzalpmh0njzc333v3j1"; depends=[BiocGenerics BiocParallel ChIPpeakAnno data_table DelayedArray GenomeInfoDb GenomicAlignments GenomicRanges glue IRanges plyr Rcpp RcppArmadillo rtracklayer S4Vectors SummarizedExperiment]; };
@@ -274,7 +274,7 @@ in with self; {
   DeMixT = derive2 { name="DeMixT"; version="1.10.0"; sha256="0x3kjcn0878w36rqd808ca1iicv4dki1f8066s3ry7806dhcxiln"; depends=[base64enc ggplot2 KernSmooth knitr matrixcalc matrixStats Rcpp rmarkdown SummarizedExperiment truncdist]; };
   DeconRNASeq = derive2 { name="DeconRNASeq"; version="1.36.0"; sha256="1ax9lx5qg4k5c1mv35bhpfh9q8dbfbv4rf4y1vy994qxmnq4rwsv"; depends=[ggplot2 limSolve pcaMethods]; };
   DeepBlueR = derive2 { name="DeepBlueR"; version="1.20.0"; sha256="16sdsvmp54k6zj1xcxmq0pdpm91q9ff11p3c83ii30brshj69bhi"; depends=[data_table diffr dplyr filehash foreach GenomeInfoDb GenomicRanges R_utils RCurl rjson rtracklayer settings stringr withr XML]; };
-  DeepPINCS = derive2 { name="DeepPINCS"; version="1.2.1"; sha256="0ic9v6ikpb4r51j39f54z3va5ybcpd7i11xigwgb85wp3ri3nkvw"; depends=[CatEncoders keras matlab PRROC purrr rcdk reticulate stringdist tensorflow tokenizers ttgsea webchem]; };
+  DeepPINCS = derive2 { name="DeepPINCS"; version="1.2.2"; sha256="1daxagyhcf6ma4r504ypr4gpfjzrbmp1x57r0siccrpgqc1ds817"; depends=[CatEncoders keras matlab PRROC purrr rcdk reticulate stringdist tensorflow tokenizers ttgsea webchem]; };
   DegNorm = derive2 { name="DegNorm"; version="1.4.0"; sha256="0f3vpynm5g83lpja5xg9nvpssyj6lh5cw9syg242j3mlrjim9bif"; depends=[data_table doParallel foreach GenomicAlignments GenomicFeatures GenomicRanges ggplot2 heatmaply IRanges plotly plyr Rcpp RcppArmadillo Rsamtools S4Vectors viridis]; };
   DelayedArray = derive2 { name="DelayedArray"; version="0.20.0"; sha256="1cm6zh01mvhiq7zrik7q3dmgxinyjz1nyg6rfj93kpkvcb5d4wpj"; depends=[BiocGenerics IRanges Matrix MatrixGenerics S4Vectors]; };
   DelayedDataFrame = derive2 { name="DelayedDataFrame"; version="1.10.0"; sha256="1vifbqka5k1rmimqcpl6218ragr9dq9rzxizx9nff5ilsva21f9b"; depends=[BiocGenerics DelayedArray S4Vectors]; };
@@ -306,7 +306,7 @@ in with self; {
   EGSEA = derive2 { name="EGSEA"; version="1.22.0"; sha256="17q0cjvkrqhmzcgvip4mkdz02aa9rm3svfv2s689fhz2kmwljca8"; depends=[AnnotationDbi Biobase DT edgeR EGSEAdata gage ggplot2 globaltest gplots GSVA HTMLUtils htmlwidgets hwriter limma metap org_Hs_eg_db org_Mm_eg_db org_Rn_eg_db PADOG pathview plotly RColorBrewer safe stringi topGO]; };
   ELMER = derive2 { name="ELMER"; version="2.18.0"; sha256="0kn5yr9yf49kcipjn4z7bcpzj74kcfkhb8q9cfnx659xnksfb27d"; depends=[biomaRt circlize ComplexHeatmap DelayedArray doParallel downloader dplyr ELMER_data GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 ggpubr ggrepel gridExtra Gviz IRanges lattice magrittr Matrix MultiAssayExperiment plotly plyr progress purrr readr reshape reshape2 rmarkdown rtracklayer rvest S4Vectors scales stringr SummarizedExperiment TCGAbiolinks tibble tidyr xml2]; };
   EMDomics = derive2 { name="EMDomics"; version="2.24.0"; sha256="0rf83brhzdqsnwg3vlby0a4kf8khv2g7rmxkk31r44apkyspzapl"; depends=[BiocParallel CDFt emdist ggplot2 matrixStats preprocessCore]; };
-  ENmix = derive2 { name="ENmix"; version="1.30.01"; sha256="14p1imjqylqwfap662w94mss0f8gl4z2laz8mhhxz5gk1xym5i9n"; depends=[AnnotationHub Biobase doParallel dynamicTreeCut ExperimentHub foreach genefilter geneplotter gplots gtools illuminaio impute IRanges matrixStats minfi preprocessCore quadprog RPMM S4Vectors SummarizedExperiment]; };
+  ENmix = derive2 { name="ENmix"; version="1.30.03"; sha256="1mqfvvdrmwc4qcrb6826sq9yr244p3x6vrcw523ybcs0qvzw25yg"; depends=[AnnotationHub Biobase doParallel dynamicTreeCut ExperimentHub foreach genefilter geneplotter gplots gtools illuminaio impute IRanges matrixStats minfi preprocessCore quadprog RPMM S4Vectors SummarizedExperiment]; };
   ERSSA = derive2 { name="ERSSA"; version="1.12.0"; sha256="11lak418vmswi9mz4h97pxb68m7ihqbg6z93bvnakka65w997ki8"; depends=[BiocParallel DESeq2 edgeR ggplot2 plyr RColorBrewer]; };
   EWCE = derive2 { name="EWCE"; version="1.2.0"; sha256="02kfcj2wldqfrkrlwss5k5vb5mgi37jrp2c3kx556k25xkzh19vq"; depends=[AnnotationHub biomaRt cowplot ewceData ExperimentHub future ggdendro ggplot2 gridExtra HGNChelper limma Matrix reshape2 RNOmni scales stringr SummarizedExperiment]; };
   EmpiricalBrownsMethod = derive2 { name="EmpiricalBrownsMethod"; version="1.22.0"; sha256="0yra1mp1iz4rh6dvlxv0i0f1ibqgl9giz3r4csg5l0wxz60fbxzm"; depends=[]; };
@@ -352,7 +352,7 @@ in with self; {
   GDCRNATools = derive2 { name="GDCRNATools"; version="1.14.0"; sha256="1h0gfi6mhr5kzwhqxkzgxz12abkn7svnbbzga70pp7az8m8vxmnn"; depends=[BiocParallel biomaRt clusterProfiler DESeq2 DOSE DT edgeR GenomicDataCommons ggplot2 gplots jsonlite limma org_Hs_eg_db pathview rjson shiny survival survminer XML]; };
   GDSArray = derive2 { name="GDSArray"; version="1.14.1"; sha256="0v8kxy7xfhgghz4qg2djc4nxh2w3bk48b0cx1jx7lc45hm2qsdfx"; depends=[BiocGenerics DelayedArray gdsfmt S4Vectors SeqArray SNPRelate]; };
   GEM = derive2 { name="GEM"; version="1.20.0"; sha256="19jars2vajfgy2v9xrgp45gc2yn2hq31d9ikdpnkd9gvpqm99nkv"; depends=[ggplot2]; };
-  GENESIS = derive2 { name="GENESIS"; version="2.24.1"; sha256="10b72yy6bx9alw8zr9rz22wgkqm1m6b2lr1flrf80mvxjihfy7as"; depends=[Biobase BiocGenerics BiocParallel data_table gdsfmt GenomicRanges GWASTools igraph IRanges Matrix reshape2 S4Vectors SeqArray SeqVarTools SNPRelate]; };
+  GENESIS = derive2 { name="GENESIS"; version="2.24.2"; sha256="13xjn9a0njpm6w0i2ikkjsp77ykdaigf5x5d39g6qqdj2rc2pz7w"; depends=[Biobase BiocGenerics BiocParallel data_table gdsfmt GenomicRanges GWASTools igraph IRanges Matrix reshape2 S4Vectors SeqArray SeqVarTools SNPRelate]; };
   GENIE3 = derive2 { name="GENIE3"; version="1.16.0"; sha256="0ms769267pimrx3xwwkgjy03qilkxxs7xwhzfca01f65i4n3l6fw"; depends=[dplyr reshape2]; };
   GEOexplorer = derive2 { name="GEOexplorer"; version="1.0.0"; sha256="01hgjdp14b9r2044h0sd136f0px983n0il08wiii41vq1jgisvhb"; depends=[Biobase DT factoextra GEOquery ggplot2 heatmaply htmltools impute limma maptools pheatmap plotly scales shiny shinyBS shinybusy shinyHeatmaply stringr umap]; };
   GEOfastq = derive2 { name="GEOfastq"; version="1.2.0"; sha256="03ya7x7dph6g97aa3gf3d7dinjcy8qipd0dyxqpdhdm1w1gx83by"; depends=[doParallel foreach plyr RCurl rvest stringr xml2]; };
@@ -407,7 +407,7 @@ in with self; {
   GeneRegionScan = derive2 { name="GeneRegionScan"; version="1.50.0"; sha256="0bkhadr61i9jsfwp3i3clz4b0yjdav8rnnrmfplh86sq700y58v5"; depends=[affxparser Biobase Biostrings RColorBrewer S4Vectors]; };
   GeneSelectMMD = derive2 { name="GeneSelectMMD"; version="2.38.0"; sha256="1nq6n4bp3ydgpjbsgg3222dd345l5z5yp4mvs4haps6wlc6bin4i"; depends=[Biobase limma MASS]; };
   GeneStructureTools = derive2 { name="GeneStructureTools"; version="1.14.0"; sha256="1w7nckmjc4zg5a20f4hjqjavmkdwngkjp70akrf3bh1qmbvpdr2a"; depends=[Biostrings BSgenome_Mmusculus_UCSC_mm10 data_table GenomicRanges Gviz IRanges plyr rtracklayer S4Vectors stringdist stringr]; };
-  GeneTonic = derive2 { name="GeneTonic"; version="1.6.1"; sha256="1kcl87bjjy933z8xkqc3nx5yy6b89f62iaf7p6hc69z4vw5xrydf"; depends=[AnnotationDbi backbone bs4Dash circlize colorspace colourpicker ComplexHeatmap dendextend DESeq2 dplyr DT dynamicTreeCut expm ggforce ggplot2 ggrepel GO_db igraph matrixStats plotly RColorBrewer rintrojs rlang rmarkdown S4Vectors scales shiny shinyAce shinycssloaders shinyWidgets SummarizedExperiment tidyr tippy viridis visNetwork]; };
+  GeneTonic = derive2 { name="GeneTonic"; version="1.6.4"; sha256="1qj12jpd5q95lf0fwq26ykpnw6kjp54pdnbh0ipgn37fl9v5vbcx"; depends=[AnnotationDbi backbone bs4Dash circlize colorspace colourpicker ComplexHeatmap dendextend DESeq2 dplyr DT dynamicTreeCut expm ggforce ggplot2 ggrepel GO_db igraph matrixStats plotly RColorBrewer rintrojs rlang rmarkdown S4Vectors scales shiny shinyAce shinycssloaders shinyWidgets SummarizedExperiment tidyr tippy viridis visNetwork]; };
   GeneticsPed = derive2 { name="GeneticsPed"; version="1.56.0"; sha256="1gvk3wg5mqyc8j95l4djfc55ymv4i08az67znnly3r8376m07mqw"; depends=[gdata genetics MASS]; };
   GenomeInfoDb = derive2 { name="GenomeInfoDb"; version="1.30.1"; sha256="1ly851w6xy144qvmpdv7p64yc45bqxmvny2rzgz691h3qbin3x55"; depends=[BiocGenerics GenomeInfoDbData IRanges RCurl S4Vectors]; };
   GenomicAlignments = derive2 { name="GenomicAlignments"; version="1.30.0"; sha256="1jwksis94mk8bmdggk0w3kvxqwp4di6x78xgsjk6ij54710adyq9"; depends=[BiocGenerics BiocParallel Biostrings GenomeInfoDb GenomicRanges IRanges Rsamtools S4Vectors SummarizedExperiment]; };
@@ -418,12 +418,12 @@ in with self; {
   GenomicInteractions = derive2 { name="GenomicInteractions"; version="1.28.0"; sha256="090kxq5jn1jfr9fgbkvbjr5g4bcxzgsaal3gc9yx1n7pgmhccfmb"; depends=[Biobase BiocGenerics data_table dplyr GenomeInfoDb GenomicRanges ggplot2 gridExtra Gviz igraph InteractionSet IRanges Rsamtools rtracklayer S4Vectors stringr]; };
   GenomicOZone = derive2 { name="GenomicOZone"; version="1.8.0"; sha256="1dx72y7kmj7ng3r6qn9bzlmgq9pf7g738myhgrnmk4ivjl6f615w"; depends=[biomaRt Ckmeans_1d_dp GenomeInfoDb GenomicRanges ggbio ggplot2 gridExtra IRanges lsr plyr Rdpack S4Vectors]; };
   GenomicRanges = derive2 { name="GenomicRanges"; version="1.46.1"; sha256="133r27wsdyppjv9kq0d2xamx007lkf416nnlaygs4hs3a76p9xwx"; depends=[BiocGenerics GenomeInfoDb IRanges S4Vectors XVector]; };
-  GenomicScores = derive2 { name="GenomicScores"; version="2.6.0"; sha256="18fzi2qi95851ci7qrzwpb7v6fhwp6xi1d1vk11xbygpbvql5mls"; depends=[AnnotationHub Biobase BiocFileCache BiocGenerics BiocManager Biostrings DelayedArray GenomeInfoDb GenomicRanges HDF5Array IRanges rhdf5 S4Vectors XML]; };
+  GenomicScores = derive2 { name="GenomicScores"; version="2.6.1"; sha256="17v2v7aklljy17nivwmani2jxkbffqs2yr38hlspjlvgpidpf9ln"; depends=[AnnotationHub Biobase BiocFileCache BiocGenerics BiocManager Biostrings DelayedArray GenomeInfoDb GenomicRanges HDF5Array IRanges rhdf5 S4Vectors XML]; };
   GenomicSuperSignature = derive2 { name="GenomicSuperSignature"; version="1.2.1"; sha256="08z1h70j82s405q0hqahb4n580ibqaqml7skq0p4w8rgchrvbs7q"; depends=[Biobase BiocFileCache ComplexHeatmap dplyr flextable ggplot2 ggpubr plotly S4Vectors SummarizedExperiment]; };
   GenomicTuples = derive2 { name="GenomicTuples"; version="1.28.0"; sha256="15rv41z4mxj8nn1mkvs73warygd1cmwi9m7lshgld1wf6zk43ypl"; depends=[BiocGenerics data_table GenomeInfoDb GenomicRanges IRanges Rcpp S4Vectors]; };
   GeoDiff = derive2 { name="GeoDiff"; version="1.0.0"; sha256="0ci1x5q8k6rjarciasg72j0ngrv79ya2j8plhgjck41v8g10mbi0"; depends=[Biobase GeomxTools lme4 Matrix NanoStringNCTools plyr Rcpp RcppArmadillo robust roptim testthat withr]; };
   GeomxTools = derive2 { name="GeomxTools"; version="2.0.0"; sha256="0pzad7m77aib9pa0p37sa2wcmlcydy5nvz4xiax11szjc0y4ay7f"; depends=[Biobase BiocGenerics data_table dplyr EnvStats lmerTest NanoStringNCTools outliers readxl reshape2 rjson S4Vectors]; };
-  GladiaTOX = derive2 { name="GladiaTOX"; version="1.10.0"; sha256="0cybhqzw403vm0w6wimdjb8k0fvfgig53g83k5v9m3i3wp8vk0pz"; depends=[brew data_table DBI ggplot2 ggrepel numDeriv RColorBrewer RCurl RJSONIO RMySQL RSQLite stringr tidyr XML xtable]; };
+  GladiaTOX = derive2 { name="GladiaTOX"; version="1.10.2"; sha256="0hdbfsjn3xfmaprhq3vz78hwshp1dgvvmbrs8n76dnsvh8bxwsgx"; depends=[brew data_table DBI ggplot2 ggrepel numDeriv RColorBrewer RCurl RJSONIO RMySQL RSQLite stringr tidyr XML xtable]; };
   Glimma = derive2 { name="Glimma"; version="2.4.0"; sha256="0qkbx9n2vb7kvb5f00csnbffy5bm7hhbdvkx2isgzi0wv0y59kx9"; depends=[DESeq2 edgeR htmlwidgets jsonlite limma S4Vectors SummarizedExperiment]; };
   GlobalAncova = derive2 { name="GlobalAncova"; version="4.12.0"; sha256="12r62a67k3p85lcs8mffai3bzrxq52vm3blgvia3by16nids42d0"; depends=[annotate AnnotationDbi Biobase corpcor dendextend globaltest GSEABase VGAM]; };
   GmicR = derive2 { name="GmicR"; version="1.8.0"; sha256="18rfbdljfc6hl4p9c66j36j0yg19fp8nhv4gny6f8qa9x3n172sd"; depends=[AnnotationDbi ape bnlearn Category data_table doParallel DT foreach GOstats gRain gRbase GSEABase org_Hs_eg_db org_Mm_eg_db reshape2 shiny WGCNA]; };
@@ -494,7 +494,7 @@ in with self; {
   IntramiRExploreR = derive2 { name="IntramiRExploreR"; version="1.16.0"; sha256="18x08rfxvqf1g7haidbzmlg5zd22w8140rhba5jzxpcyx8mcz6h7"; depends=[FGNet igraph knitr]; };
   IsoCorrectoR = derive2 { name="IsoCorrectoR"; version="1.12.0"; sha256="0z2aw2ldar3qq7ddza0k87gksix1j829j76arqyg4w2w0yp9r2q6"; depends=[dplyr magrittr pracma quadprog readr readxl stringr tibble WriteXLS]; };
   IsoCorrectoRGUI = derive2 { name="IsoCorrectoRGUI"; version="1.10.0"; sha256="0mbfm2v8hhmff3yix9znvb6fbjwlgf76bgjyzx000dvpnp7pjrz7"; depends=[IsoCorrectoR readxl tcltk2]; };
-  IsoGeneGUI = derive2 { name="IsoGeneGUI"; version="2.30.0"; sha256="0970w1g6na4iwqcyml2b9amx816n05n78ara1qrxvdx6swxw3r8s"; depends=[Biobase ff geneplotter goric Iso IsoGene jpeg multtest ORCME ORIClust orQA RColorBrewer Rcpp relimp tkrplot xlsx]; };
+  IsoGeneGUI = derive2 { name="IsoGeneGUI"; version="2.30.0"; sha256="0970w1g6na4iwqcyml2b9amx816n05n78ara1qrxvdx6swxw3r8s"; depends=[Biobase ff geneplotter goric Iso IsoGene jpeg multtest ORCME ORIClust RColorBrewer Rcpp relimp tkrplot xlsx]; };
   IsoformSwitchAnalyzeR = derive2 { name="IsoformSwitchAnalyzeR"; version="1.16.0"; sha256="14bqf39gw5ab5r9sr3afkig1jbzdvds1bmcvc6bpb45kschx7fwf"; depends=[Biobase BiocGenerics Biostrings BSgenome DBI DEXSeq dplyr DRIMSeq edgeR futile_logger GenomeInfoDb GenomicRanges ggplot2 gridExtra IRanges limma magrittr plyr RColorBrewer RCurl readr reshape2 rtracklayer stringr tibble tximeta tximport VennDiagram XVector]; };
   KBoost = derive2 { name="KBoost"; version="1.2.0"; sha256="1c4l5lwiarm6l6nbqcw85sf16am3x06a1wfsfcm91pchkdl1jx08"; depends=[]; };
   KCsmart = derive2 { name="KCsmart"; version="2.52.0"; sha256="17glg0m4c5k5ridr3k25r4wpwsp1bsl51lgi270sl590rbj2634n"; depends=[BiocGenerics KernSmooth multtest siggenes]; };
@@ -535,6 +535,7 @@ in with self; {
   MBASED = derive2 { name="MBASED"; version="1.28.0"; sha256="11rbsaki3nbzil2p8fv7b7biykb60398ayq8sc8drqpiam15myy7"; depends=[BiocGenerics BiocParallel GenomicRanges RUnit SummarizedExperiment]; };
   MBAmethyl = derive2 { name="MBAmethyl"; version="1.28.0"; sha256="1jkvx523spv55qrikg26xc2r9qb72y7kfa161ha6jjm8l57rb6bv"; depends=[]; };
   MBCB = derive2 { name="MBCB"; version="1.48.0"; sha256="06idlf8s0a59q45rckflxi5m3i7rgn8lphzyw2fgajvv4df5j7q3"; depends=[preprocessCore tcltk2]; };
+  MBQN = derive2 { name="MBQN"; version="2.6.2"; sha256="1wzpa45nxn8z96q6f08h8h5c77nfbwapxb494nrk1gdpszcqsq7l"; depends=[BiocFileCache ggplot2 limma PairedData preprocessCore rappdirs RCurl rmarkdown SummarizedExperiment xml2]; };
   MBttest = derive2 { name="MBttest"; version="1.22.0"; sha256="115bkavx4pqy7sh70m5jmghk784f4cqm6z91z5s44m8c00a58vnp"; depends=[gplots gtools]; };
   MCbiclust = derive2 { name="MCbiclust"; version="1.18.0"; sha256="1sswmmdkxw41pzqzqxs8rq581jx1wprcmafagnn4n39h2mw00wwy"; depends=[AnnotationDbi BiocParallel cluster GGally ggplot2 GO_db org_Hs_eg_db scales WGCNA]; };
   MDTS = derive2 { name="MDTS"; version="1.14.0"; sha256="124ixdshragwgnr4rz5qii2j0j74ybm5h8y3k2h1kba56632ff1s"; depends=[Biostrings DNAcopy GenomicAlignments GenomicRanges IRanges Rsamtools stringr]; };
@@ -554,7 +555,7 @@ in with self; {
   MLSeq = derive2 { name="MLSeq"; version="2.12.0"; sha256="0z722cbbvkkfpzli47n9dhyj3n02gibffy1l06imwvzxcvahcfyj"; depends=[Biobase caret DESeq2 edgeR foreach ggplot2 limma pamr plyr sSeq SummarizedExperiment testthat VennDiagram xtable]; };
   MMAPPR2 = derive2 { name="MMAPPR2"; version="1.8.0"; sha256="1fl8dmbxr407f0vzv4q3jpaia28igzqxjb6azbck7zgn64wh5i3c"; depends=[Biobase BiocGenerics BiocParallel data_table dplyr ensemblVEP GenomeInfoDb GenomicRanges gmapR IRanges magrittr Rsamtools S4Vectors stringr tidyr VariantAnnotation VariantTools]; };
   MMDiff2 = derive2 { name="MMDiff2"; version="1.22.0"; sha256="1a74q87mlf1pvgy47gyncllsdz460iyk1nrh4m75jywhbxjf36z0"; depends=[Biobase Biostrings BSgenome GenomicRanges ggplot2 locfit RColorBrewer Rsamtools S4Vectors shiny]; };
-  MMUPHin = derive2 { name="MMUPHin"; version="1.8.1"; sha256="161s7505hyacn9632yaq8a0arqac1g11vbz4awjrhqjlma12c9m1"; depends=[cowplot dplyr fpc ggplot2 igraph Maaslin2 metafor tidyr]; };
+  MMUPHin = derive2 { name="MMUPHin"; version="1.8.2"; sha256="1bdcg7mcnpj5n26klc6s2gvind5wdh8ic96glpq6cjgcayaqbd9a"; depends=[cowplot dplyr fpc ggplot2 igraph Maaslin2 metafor tidyr]; };
   MODA = derive2 { name="MODA"; version="1.20.0"; sha256="00v40gsp1x5gbjg4ilnsjq1j512lwl3sbhqmavyxs20i8c8xjcqf"; depends=[AMOUNTAIN cluster dynamicTreeCut igraph RColorBrewer WGCNA]; };
   MOFA2 = derive2 { name="MOFA2"; version="1.4.0"; sha256="0vl2ffvh9nsdgw94yavkdkkhihpcb8fdbn3f19aygmwbfg78j3w9"; depends=[basilisk corrplot cowplot DelayedArray dplyr forcats ggplot2 ggrepel HDF5Array magrittr pheatmap RColorBrewer reshape2 reticulate rhdf5 Rtsne stringi tidyr uwot]; };
   MOGAMUN = derive2 { name="MOGAMUN"; version="1.4.0"; sha256="0jq863ql6ydykrbriw5h6ibinchkhsgxq8908gyg5f5jl2sgc8pc"; depends=[BiocParallel igraph RCy3 RUnit stringr]; };
@@ -582,7 +583,7 @@ in with self; {
   Maaslin2 = derive2 { name="Maaslin2"; version="1.8.0"; sha256="08zncj3ywc5pcywi3zgqvvlmqgp9j165b3vrkipvwv15b647jqvp"; depends=[biglm car chemometrics cplm data_table dplyr edgeR ggplot2 glmmTMB hash lme4 lmerTest logging lpsymphony MASS metagenomeSeq optparse pbapply pcaPP pheatmap pscl robustbase vegan]; };
   MantelCorr = derive2 { name="MantelCorr"; version="1.64.0"; sha256="10n1f04088wzki7mw27zwlahv6mmkwjjljkj0g65az5arki02rbl"; depends=[]; };
   MassArray = derive2 { name="MassArray"; version="1.46.0"; sha256="1m3a0h5jmjifm16z9l37rij00jka0k22qryq0lmhvfmidzvn7pbf"; depends=[]; };
-  MassSpecWavelet = derive2 { name="MassSpecWavelet"; version="1.60.0"; sha256="1icqyxkx5a9y3wahkxpxngw85c7l4hih1ym9nwwn9qy93pnw1zi4"; depends=[waveslim]; };
+  MassSpecWavelet = derive2 { name="MassSpecWavelet"; version="1.60.1"; sha256="00irq3i5kfck7rnm8ll7rqhqfpp3bisv2h8is50a7wbd7480z7ij"; depends=[waveslim]; };
   MatrixGenerics = derive2 { name="MatrixGenerics"; version="1.6.0"; sha256="1s75p8rrmj24r0vcbaiyw8xg8y84j388mv6iawai7pypfcl8s1z3"; depends=[matrixStats]; };
   MatrixQCvis = derive2 { name="MatrixQCvis"; version="1.2.2"; sha256="1czw4v7dyggk6dkhvqsx01wd5rp9rds3h4g9dbycgb9gz5qmza0h"; depends=[ComplexHeatmap dplyr ggplot2 Hmisc htmlwidgets impute imputeLCMD limma openxlsx pcaMethods plotly proDA rlang rmarkdown Rtsne S4Vectors shiny shinydashboard shinyhelper shinyjs SummarizedExperiment tibble tidyr umap UpSetR vegan vsn]; };
   MatrixRider = derive2 { name="MatrixRider"; version="1.26.0"; sha256="0mv0w3m7waqfm8gy39hmdn00p6cq0a0ndr01scfg1js29jm6sgc2"; depends=[Biostrings IRanges S4Vectors TFBSTools XVector]; };
@@ -629,7 +630,7 @@ in with self; {
   MultiBaC = derive2 { name="MultiBaC"; version="1.4.0"; sha256="0pwg6zmrfqrzra1r6ai68ya5fjf6dy2sl035xnxl617iii96jada"; depends=[ggplot2 Matrix MultiAssayExperiment plotrix ropls]; };
   MultiDataSet = derive2 { name="MultiDataSet"; version="1.22.0"; sha256="17asldnxqvp3sijx7nbi2lbbgnq4iq8z72qlg9080sm5lga1yy1s"; depends=[Biobase BiocGenerics GenomicRanges ggplot2 ggrepel IRanges limma qqman S4Vectors SummarizedExperiment]; };
   MultiMed = derive2 { name="MultiMed"; version="2.16.0"; sha256="1dkvvrvjfc04ad48zywbrmbvm1lcnni6rvvl9gdax11y9lz19341"; depends=[]; };
-  MungeSumstats = derive2 { name="MungeSumstats"; version="1.2.3"; sha256="04lv8yqpjwa6p9n6jpd9mpnnn0r1yv8b6rig6w1zgmhi31cigz7j"; depends=[Biostrings BSgenome data_table dplyr GenomeInfoDb GenomicRanges googleAuthR httr jsonlite magrittr R_utils RCurl rtracklayer stringr VariantAnnotation]; };
+  MungeSumstats = derive2 { name="MungeSumstats"; version="1.2.4"; sha256="00skqhqkh6fbxifqf8dkc79vyizha4cqpwzyb3h6w7v3yzs6bd7x"; depends=[Biostrings BSgenome data_table dplyr GenomeInfoDb GenomicRanges googleAuthR httr jsonlite magrittr R_utils RCurl rtracklayer stringr VariantAnnotation]; };
   MutationalPatterns = derive2 { name="MutationalPatterns"; version="3.4.1"; sha256="0i6fq6736gvrqn45r7nrhl0ns45qwj1bl4yc6qlalw2g46mjxf6k"; depends=[BiocGenerics Biostrings BSgenome cowplot dplyr GenomeInfoDb GenomicRanges ggalluvial ggdendro ggplot2 IRanges magrittr NMF pracma purrr RColorBrewer S4Vectors stringr tibble tidyr VariantAnnotation]; };
   NADfinder = derive2 { name="NADfinder"; version="1.18.0"; sha256="0glcjxgydj2k7h4963fl465y398xqvq4g393ainvwcgz77kx4sk0"; depends=[ATACseqQC baseline BiocGenerics corrplot csaw EmpiricalBrownsMethod GenomeInfoDb GenomicAlignments GenomicRanges IRanges limma metap Rsamtools rtracklayer S4Vectors signal SummarizedExperiment trackViewer]; };
   NBAMSeq = derive2 { name="NBAMSeq"; version="1.10.0"; sha256="1him4qg3xmgisl3jsws690ciknvj2876xn8n9gxc8l08cihfminf"; depends=[BiocParallel DESeq2 genefilter mgcv S4Vectors SummarizedExperiment]; };
@@ -748,7 +749,7 @@ in with self; {
   RCASPAR = derive2 { name="RCASPAR"; version="1.40.0"; sha256="0iw17mh880x1pjqs5ffjlc8xicy8qrks8yigb1aiyn4xd00ihf1s"; depends=[]; };
   RCM = derive2 { name="RCM"; version="1.10.0"; sha256="082qnzy5q3k5g2qazralj4jwhrdxm1y9xc8dxry5d4l6l6vf77wp"; depends=[alabama edgeR ggplot2 MASS nleqslv phyloseq RColorBrewer reshape2 tensor tseries VGAM]; };
   RCSL = derive2 { name="RCSL"; version="1.2.0"; sha256="01v45b42g0gvhz6h0p1j4865l2cm185ai40bf1fcvjd8747850h4"; depends=[ggplot2 igraph NbClust pracma RcppAnnoy Rtsne umap]; };
-  RCy3 = derive2 { name="RCy3"; version="2.14.1"; sha256="1avfplsg0pl6naxbwvwl3r29idq57r6vpiqnhbzfvj28hra4gdqi"; depends=[base64enc base64url BiocGenerics fs glue graph httr IRdisplay IRkernel RColorBrewer RCurl RJSONIO uchardet uuid XML]; };
+  RCy3 = derive2 { name="RCy3"; version="2.14.2"; sha256="13yjr01svgz36g5irr8jg1c3zpwwb9q424qj75k8nrf2zrz72l7w"; depends=[base64enc base64url BiocGenerics fs glue graph httr IRdisplay IRkernel RColorBrewer RCurl RJSONIO uchardet uuid XML]; };
   RCyjs = derive2 { name="RCyjs"; version="2.16.0"; sha256="1xb98gyf847sy5ijv2ka1vsvz64n6fi356qmcgm4k1qhz1jizm6z"; depends=[base64enc BiocGenerics BrowserViz graph httpuv]; };
   RDRToolbox = derive2 { name="RDRToolbox"; version="1.44.0"; sha256="1mlfzvn6imnkj2mrma6nr5cm0qdxjca7vy6hlaidicvwn3jz4129"; depends=[MASS rgl]; };
   REBET = derive2 { name="REBET"; version="1.12.0"; sha256="19hsykk770jyrvd5lbaybggs4j1f1rnrbcq2mb0cz8w288lh4i5p"; depends=[ASSET]; };
@@ -845,11 +846,11 @@ in with self; {
   RpsiXML = derive2 { name="RpsiXML"; version="2.36.0"; sha256="19jc5dhwyy2z1cwbvgvw54v7kkbgh7g0wzy4frxv91zdgaj7wmhy"; depends=[annotate AnnotationDbi Biobase graph hypergraph RBGL XML]; };
   Rqc = derive2 { name="Rqc"; version="1.28.0"; sha256="0hcxkrfja0gmd8r2llijdvaw2xiiplk037305inimz0qna6w2071"; depends=[BiocGenerics BiocParallel BiocStyle Biostrings biovizBase GenomicAlignments GenomicFiles ggplot2 IRanges knitr markdown plyr Rcpp reshape2 Rsamtools S4Vectors shiny ShortRead]; };
   Rsamtools = derive2 { name="Rsamtools"; version="2.10.0"; sha256="0v6b3j45ivd9f04fpfs1vjwby5pi30mf5683bjxim01vi2krj9yh"; depends=[BiocGenerics BiocParallel Biostrings bitops GenomeInfoDb GenomicRanges IRanges Rhtslib S4Vectors XVector zlibbioc]; };
-  Rsubread = derive2 { name="Rsubread"; version="2.8.1"; sha256="0lpx0dp5570kbrq7v0g573axkhi00qrf38si59vmvnqxhmkvsixn"; depends=[Matrix]; };
+  Rsubread = derive2 { name="Rsubread"; version="2.8.2"; sha256="078zcchw9xl6vs2wihzzji349vq0m1a039m86jdlvb7nc3i1imfk"; depends=[Matrix]; };
   Rtpca = derive2 { name="Rtpca"; version="1.4.0"; sha256="05i25sfgdqsnw9ky0p25aix8qrzkirmcl5vvpqrv8bwvs335glm4"; depends=[Biobase dplyr fdrtool ggplot2 pROC tibble tidyr]; };
   Rtreemix = derive2 { name="Rtreemix"; version="1.56.0"; sha256="15kr8y8w059bxhl9x7j7qg01b55jsxfmfzgdyxk6l40i3l4i0wh1"; depends=[Biobase graph Hmisc]; };
-  S4Vectors = derive2 { name="S4Vectors"; version="0.32.3"; sha256="0wp29v41f9cf6khq2ww0f63nsq6219l1ycajzdqp3a2xda734ncw"; depends=[BiocGenerics]; };
-  SAIGEgds = derive2 { name="SAIGEgds"; version="1.8.0"; sha256="08jhqpi13kg69nfl425m6rvgyvzfspfylgnzkk1v6v0kaz5876f2"; depends=[gdsfmt Rcpp RcppArmadillo RcppParallel SeqArray SPAtest]; };
+  S4Vectors = derive2 { name="S4Vectors"; version="0.32.4"; sha256="17dvypxcwp8c7ih23hi2366110by6zq1mjgxkmlbiklzachg9780"; depends=[BiocGenerics]; };
+  SAIGEgds = derive2 { name="SAIGEgds"; version="1.8.1"; sha256="1fyhscqvhmpwd7zykj7mglk6liq6nccmic741mds5hqlx8zxhy7d"; depends=[gdsfmt Rcpp RcppArmadillo RcppParallel SeqArray SPAtest]; };
   SANTA = derive2 { name="SANTA"; version="2.30.0"; sha256="0w0rd0vmjvz98ijk53ikpin7x5acl0yfkb2v7y77ma6lizy70rgl"; depends=[igraph Matrix]; };
   SBGNview = derive2 { name="SBGNview"; version="1.8.0"; sha256="17jh1ad1a951r89xd9127c1wv5s4rzd03qq8rh5zjn2zxzpwswr4"; depends=[AnnotationDbi bookdown httr igraph KEGGREST knitr pathview Rdpack rmarkdown rsvg SBGNview_data SummarizedExperiment xml2]; };
   SBMLR = derive2 { name="SBMLR"; version="1.90.0"; sha256="08cvhlrh13v571jc0fgfiwzc041nq2ndxpy5nsxmgpbsw5ryfgff"; depends=[deSolve XML]; };
@@ -894,7 +895,7 @@ in with self; {
   SRAdb = derive2 { name="SRAdb"; version="1.56.0"; sha256="18z62c2w6spsmnyqcmc57w41vli5vrcrl3hpy1al1n1yy9fgil0y"; depends=[GEOquery graph RCurl RSQLite]; };
   STAN = derive2 { name="STAN"; version="2.22.0"; sha256="1inqjw11a791c6svw0y4p3m8rd09fjcna3j4p5950f975aph1q4g"; depends=[BiocGenerics GenomeInfoDb GenomicRanges Gviz IRanges poilog Rsolnp S4Vectors]; };
   STATegRa = derive2 { name="STATegRa"; version="1.30.0"; sha256="10a230bvfjvjwsjkh0v3fjbrjkwcvsdch8bfv1s6h4yav1m4wca7"; depends=[affy Biobase calibrate edgeR foreach ggplot2 gplots gridExtra limma MASS]; };
-  STRINGdb = derive2 { name="STRINGdb"; version="2.6.1"; sha256="14yn0fi6ghlv41z5vk4wvrx51hlpx7z9k5fk5jyb50l2g8wwzjhi"; depends=[gplots hash igraph plotrix plyr png RColorBrewer RCurl sqldf]; };
+  STRINGdb = derive2 { name="STRINGdb"; version="2.6.5"; sha256="0n2r2zc2sx1a2a8wqqxz6z7i4ynaj18iwbwgif7469n13agji5mv"; depends=[gplots hash igraph plotrix plyr png RColorBrewer RCurl sqldf]; };
   STROMA4 = derive2 { name="STROMA4"; version="1.18.0"; sha256="10v8kgmx79zd2vgzwij3il80l724sdl0k4a3rm73kd4jw2wvhkrh"; depends=[Biobase BiocParallel cluster matrixStats]; };
   SWATH2stats = derive2 { name="SWATH2stats"; version="1.24.0"; sha256="0ifl1y3rs0r2zqkpcpiibyv12mjqz6wxs296f691k1qfz9qvx8kg"; depends=[biomaRt data_table ggplot2 reshape2]; };
   SamSPECTRAL = derive2 { name="SamSPECTRAL"; version="1.48.0"; sha256="1xxz5ggxj10psrz5rm0xjr8mxwc3cfyl9chsa9w2wxrrixypdnah"; depends=[]; };
@@ -949,7 +950,7 @@ in with self; {
   TCC = derive2 { name="TCC"; version="1.34.0"; sha256="0298zfvrs7x6050s3222fg5yp60siz85pfh6541wmah7j0wzpgsd"; depends=[baySeq DESeq2 edgeR ROC]; };
   TCGAbiolinks = derive2 { name="TCGAbiolinks"; version="2.22.4"; sha256="071wz6dm6dypbfzvxd6j67l1iawlb6d5sfzq871zh06fzaxjm332"; depends=[biomaRt data_table downloader dplyr GenomicRanges ggplot2 httr IRanges jsonlite knitr plyr purrr R_utils readr rvest S4Vectors stringr SummarizedExperiment TCGAbiolinksGUI_data tibble tidyr XML xml2]; };
   TCGAbiolinksGUI = derive2 { name="TCGAbiolinksGUI"; version="1.20.0"; sha256="0941xcd42kz72vlhlm93681dwgi4afli5j8cfs331fpddpv7l4af"; depends=[caret clusterProfiler colourpicker data_table downloader DT ELMER ggplot2 ggrepel maftools pathview plotly readr sesame shiny shinyBS shinydashboard shinyFiles shinyjs stringr SummarizedExperiment TCGAbiolinks TCGAbiolinksGUI_data]; };
-  TCGAutils = derive2 { name="TCGAutils"; version="1.14.0"; sha256="0gjmgz20hmy8c7igy5xvwql37k0v7662qkxwsc2vi01x6y781bcj"; depends=[AnnotationDbi BiocGenerics GenomeInfoDb GenomicDataCommons GenomicFeatures GenomicRanges IRanges MultiAssayExperiment RaggedExperiment rvest S4Vectors stringr SummarizedExperiment xml2]; };
+  TCGAutils = derive2 { name="TCGAutils"; version="1.14.1"; sha256="1i8cl01l9qnpvbirxka5raaa8xp88wwn6914cqsq3qz44ji4gi79"; depends=[AnnotationDbi BiocGenerics GenomeInfoDb GenomicDataCommons GenomicFeatures GenomicRanges IRanges MultiAssayExperiment RaggedExperiment rvest S4Vectors stringr SummarizedExperiment xml2]; };
   TCseq = derive2 { name="TCseq"; version="1.18.0"; sha256="1kzz3fl19d1ivb6l55xadwg202vq4wza3r7wgf6fx196s20vnvng"; depends=[BiocGenerics cluster e1071 edgeR GenomicAlignments GenomicRanges ggplot2 IRanges locfit reshape2 Rsamtools SummarizedExperiment]; };
   TDARACNE = derive2 { name="TDARACNE"; version="1.44.0"; sha256="0rjlwj05fw0y4q02lhvdg0blpqrgxjq5kdq0hff94qjwp7fgn5gn"; depends=[Biobase GenKern Rgraphviz]; };
   TEQC = derive2 { name="TEQC"; version="4.16.0"; sha256="08jllnzsfz0zkn2m8n5c6cppjbh5cm8kpgwq652bgw5jmkkpg3f2"; depends=[Biobase BiocGenerics hwriter IRanges Rsamtools]; };
@@ -961,7 +962,7 @@ in with self; {
   TIN = derive2 { name="TIN"; version="1.26.0"; sha256="07m8q3lgcflmrchpw88y4w62iwq5cxd0sw1lbassvgych7dnq3ks"; depends=[aroma_affymetrix data_table impute squash stringr WGCNA]; };
   TMixClust = derive2 { name="TMixClust"; version="1.16.0"; sha256="1i69q92ss9q2vv6hyxvq8wv55w1937rmda43a8qfblzy0jr5avww"; depends=[Biobase BiocParallel cluster flexclust gss mvtnorm SPEM zoo]; };
   TNBC_CMS = derive2 { name="TNBC.CMS"; version="1.10.0"; sha256="1iz2jb895hsliavk9g93mvvccla461cmifmsam3qdscj09gfl17x"; depends=[e1071 forestplot GGally ggplot2 ggpubr GSVA pheatmap pracma quadprog R_utils RColorBrewer SummarizedExperiment survival]; };
-  TOAST = derive2 { name="TOAST"; version="1.8.2"; sha256="1j0a3ll0mkp0jgw8hfl8xs5yj4baqjxfvg09zb8sh82jim1my77z"; depends=[corpcor doParallel EpiDISH GGally ggplot2 limma nnls quadprog SummarizedExperiment tidyr]; };
+  TOAST = derive2 { name="TOAST"; version="1.8.3"; sha256="13vdkygyz0qiwyniz4ahydpfkj6k1ap91hsnkzr6ym765cpdan01"; depends=[corpcor doParallel EpiDISH GGally ggplot2 limma nnls quadprog SummarizedExperiment tidyr]; };
   TPP = derive2 { name="TPP"; version="3.22.1"; sha256="0vr8sv22rhhrv63arz33vbkp5i3cwd03bz54qwx3zbdcf5l3snhy"; depends=[Biobase biobroom broom data_table doParallel dplyr foreach futile_logger ggplot2 gridExtra knitr limma magrittr MASS mefa nls2 openxlsx plyr purrr RColorBrewer RCurl reshape2 rmarkdown stringr tibble tidyr VennDiagram VGAM]; };
   TPP2D = derive2 { name="TPP2D"; version="1.10.0"; sha256="183gf3v1nj0nqll817whxdif0kiwscil88ig0vjj1hn3936q59v6"; depends=[BiocParallel doParallel dplyr foreach ggplot2 limma MASS openxlsx RCurl stringr tidyr]; };
   TRESS = derive2 { name="TRESS"; version="1.0.0"; sha256="0zmzbpzhcsykbpifs5m8md2lhami0ya7y9sf2rdmadgbx17gvzj7"; depends=[AnnotationDbi GenomicFeatures GenomicRanges IRanges Matrix matrixStats Rsamtools rtracklayer S4Vectors]; };
@@ -1105,7 +1106,7 @@ in with self; {
   biomformat = derive2 { name="biomformat"; version="1.22.0"; sha256="0xf99j4lhf8kh9h1317hrbzxdv6rljs1fn68r8s40x6y4db3l817"; depends=[jsonlite Matrix plyr rhdf5]; };
   biomvRCNS = derive2 { name="biomvRCNS"; version="1.34.0"; sha256="01nhjhfyzs67p97bk9bjqdxk239ckl8sgfj55azk1zmw92aw2hfy"; depends=[GenomicRanges Gviz IRanges mvtnorm]; };
   biosigner = derive2 { name="biosigner"; version="1.22.0"; sha256="189018qahyw33dmg73wa7k4rp8nzrx6ai8f2dr6vhbpcdc1gnm0z"; depends=[Biobase e1071 MultiDataSet randomForest ropls]; };
-  biotmle = derive2 { name="biotmle"; version="1.18.0"; sha256="0p3iavf9059qa8qvfvqzskfc5gki3z0ivkkqdwg5anvf0wv2k47g"; depends=[assertthat BiocGenerics BiocParallel dplyr drtmle ggplot2 ggsci limma S4Vectors SummarizedExperiment superheat tibble]; };
+  biotmle = derive2 { name="biotmle"; version="1.18.0"; sha256="0p3iavf9059qa8qvfvqzskfc5gki3z0ivkkqdwg5anvf0wv2k47g"; depends=[assertthat BiocGenerics BiocParallel dplyr ggplot2 ggsci limma S4Vectors SummarizedExperiment superheat tibble]; };
   biovizBase = derive2 { name="biovizBase"; version="1.42.0"; sha256="0kg71p7sqfvxal0c19zrws1ffaqgyi8p605l3z6mkq5ldi26pajz"; depends=[AnnotationDbi AnnotationFilter BiocGenerics Biostrings dichromat ensembldb GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges Hmisc IRanges RColorBrewer rlang Rsamtools S4Vectors scales SummarizedExperiment VariantAnnotation]; };
   biscuiteer = derive2 { name="biscuiteer"; version="1.8.0"; sha256="16ds322b21g8ys5c3lkrvi70i82f9rxvnknbiqx4sp6f2l01j5yj"; depends=[Biobase BiocGenerics BiocParallel biscuiteerData bsseq data_table DelayedMatrixStats dmrseq GenomeInfoDb GenomicRanges gtools HDF5Array Homo_sapiens impute Matrix matrixStats Mus_musculus QDNAseq qualV R_utils readr Rsamtools rtracklayer S4Vectors SummarizedExperiment VariantAnnotation]; };
   blacksheepr = derive2 { name="blacksheepr"; version="1.8.0"; sha256="0j623s9vjxknqx3p3d2nbwiqqjp1326bbyvqjm75n1iyj33z1844"; depends=[circlize ComplexHeatmap pasilla RColorBrewer SummarizedExperiment viridis]; };
@@ -1126,7 +1127,7 @@ in with self; {
   caOmicsV = derive2 { name="caOmicsV"; version="1.24.0"; sha256="0snr67g9bqwyvrr1gxmgdjhrybgcpl38dwik583752sgdyf84c6p"; depends=[bc3net igraph]; };
   cageminer = derive2 { name="cageminer"; version="1.0.0"; sha256="140w8ccm5j5kl3gyn6437a2zqlzf5277k3g3c9i22n1jkdp947yn"; depends=[BioNERO GenomeInfoDb GenomicRanges ggbio ggplot2 ggtext IRanges reshape2]; };
   calm = derive2 { name="calm"; version="1.8.0"; sha256="1sq78fv4s6ja9yw84k20zl10pbkk8g2kf38p6nbxkhi4rvz8b5r2"; depends=[mgcv]; };
-  canceR = derive2 { name="canceR"; version="1.28.02"; sha256="00h8jklisp1vapqz8z4l4qk2273p2n33f0sfrgc6gpraiypvqr10"; depends=[Biobase cgdsr circlize Formula geNetClassifier GSEABase phenoTest plyr rpart RUnit survival tcltk2 tkrplot]; };
+  canceR = derive2 { name="canceR"; version="1.28.04"; sha256="0si885h0nkfzvy3snhsp7638fdzc66l90hswd0va42d3ahq8hr8v"; depends=[Biobase cgdsr circlize Formula geNetClassifier GSEABase phenoTest plyr rpart RUnit survival tkrplot]; };
   cancerclass = derive2 { name="cancerclass"; version="1.38.0"; sha256="1kp764g9jms7r95wh58c4d1yli7xfvhfvi50x2s8rzi4bhi3zik6"; depends=[binom Biobase]; };
   casper = derive2 { name="casper"; version="2.28.0"; sha256="0z85zq5crf3806c16hv0gpv072k2bf7hdyhq958y33282wybr4zd"; depends=[Biobase BiocGenerics coda EBarrays gaga GenomeInfoDb GenomicFeatures GenomicRanges gtools IRanges limma mgcv Rsamtools rtracklayer S4Vectors sqldf survival VGAM]; };
   categoryCompare = derive2 { name="categoryCompare"; version="1.38.0"; sha256="1175is4gr6nr393lk5ha2c3rqsdzsl1mfnhkajcym8n0927rx8n8"; depends=[annotate AnnotationDbi Biobase BiocGenerics Category colorspace GOstats graph GSEABase hwriter RCy3]; };
@@ -1144,7 +1145,7 @@ in with self; {
   cellity = derive2 { name="cellity"; version="1.22.0"; sha256="18nivw8c2iv6ibp6hj2m0f04qb28dcq3ya1imfwsvanm9qb2z8zr"; depends=[AnnotationDbi e1071 ggplot2 mvoutlier org_Hs_eg_db org_Mm_eg_db robustbase topGO]; };
   cellmigRation = derive2 { name="cellmigRation"; version="1.2.0"; sha256="0wwfp4jffdxjhzpjpa9136i7ji7bkgbmkdrc4k058kwncv65iajp"; depends=[doParallel FactoMineR FME foreach Hmisc matrixStats reshape2 sp SpatialTools tiff vioplot]; };
   cellscape = derive2 { name="cellscape"; version="1.18.0"; sha256="1p8ib244yxfzl5xswl1ifhj7grc8435npw82kmj5vqg8mqbkhgh7"; depends=[dplyr gtools htmlwidgets jsonlite plyr reshape2 stringr]; };
-  censcyt = derive2 { name="censcyt"; version="1.2.0"; sha256="0yrkv3122iniqgfsp8hhglndpklhlvr2d1f661ghn73dhwbabmww"; depends=[BiocParallel broom_mixed diffcyt dirmult dplyr edgeR fitdistrplus lme4 magrittr MASS mice multcomp purrr rlang S4Vectors stringr SummarizedExperiment survival tibble tidyr]; };
+  censcyt = derive2 { name="censcyt"; version="1.2.1"; sha256="0sd412jhhgax0szslks8bmg81yrqs3hj54ahdgsnbqf846kccrzw"; depends=[BiocParallel broom_mixed diffcyt dirmult dplyr edgeR fitdistrplus lme4 magrittr MASS mice multcomp purrr rlang S4Vectors stringr SummarizedExperiment survival tibble tidyr]; };
   cfDNAPro = derive2 { name="cfDNAPro"; version="1.0.0"; sha256="0klzwax2wblcq8j51ig7qkxml7yb3qc2p66g2ds8sfai0y3hslf9"; depends=[dplyr ggplot2 magrittr quantmod rlang Rsamtools stringr]; };
   cghMCR = derive2 { name="cghMCR"; version="1.52.0"; sha256="1j3pdj1c5wpl0mmirbssysval6fh2vyfb4d6w6jkqikchbcal8pk"; depends=[BiocGenerics CNTools DNAcopy limma]; };
   chimeraviz = derive2 { name="chimeraviz"; version="1.20.0"; sha256="0gsd2bwjzh6f8gqclnhm8gq2q3c1ddp4qqflmbgfk16jja8516va"; depends=[AnnotationDbi AnnotationFilter BiocStyle Biostrings checkmate data_table dplyr DT ensembldb GenomeInfoDb GenomicAlignments GenomicRanges graph gtools Gviz IRanges magick org_Hs_eg_db org_Mm_eg_db plyr RCircos RColorBrewer Rgraphviz rmarkdown Rsamtools S4Vectors]; };
@@ -1228,7 +1229,7 @@ in with self; {
   daMA = derive2 { name="daMA"; version="1.66.0"; sha256="0m7192md5956mbklw0j7z0b82inr6h0p2c9vvjsmd5ivlbz1zdri"; depends=[MASS]; };
   dada2 = derive2 { name="dada2"; version="1.22.0"; sha256="1mj2fiqanr8lp1883bali00la38d9g1krqz9v7f396s1f5x8yll6"; depends=[BiocGenerics Biostrings ggplot2 IRanges Rcpp RcppParallel reshape2 ShortRead XVector]; };
   dagLogo = derive2 { name="dagLogo"; version="1.32.0"; sha256="1gqb56zg11cl7ldww15zmn09f1f5i60mshwrv7gsb3yc79zs48s1"; depends=[BiocGenerics biomaRt Biostrings motifStack pheatmap UniProt_ws]; };
-  dasper = derive2 { name="dasper"; version="1.4.2"; sha256="1c0kz52wwz7b8fxgzj7drs8mqr5r2cl25n58rralqb7mgn926v62"; depends=[basilisk BiocFileCache BiocParallel data_table dplyr GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 ggpubr ggrepel IRanges magrittr megadepth plyranges readr reticulate rtracklayer S4Vectors stringr SummarizedExperiment tidyr]; };
+  dasper = derive2 { name="dasper"; version="1.4.3"; sha256="0rry987mmwrrg15wm5vwmwds2dk6vqpvayvkhzgw2zm5gabis27n"; depends=[basilisk BiocFileCache BiocParallel data_table dplyr GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 ggpubr ggrepel IRanges magrittr megadepth plyranges readr reticulate rtracklayer S4Vectors stringr SummarizedExperiment tidyr]; };
   dcGSA = derive2 { name="dcGSA"; version="1.22.0"; sha256="0j697q02zys9brmc7xn1yh7lir7k1m7hlr752ykydqx9qzzw0m77"; depends=[BiocParallel Matrix]; };
   dcanr = derive2 { name="dcanr"; version="1.10.0"; sha256="0xrfdwcs4qxgasm318nd2cdqmr9ksaxig1frs8h6a7lg8wvh5f2x"; depends=[circlize doRNG foreach igraph Matrix plyr RColorBrewer reshape2 stringr]; };
   dce = derive2 { name="dce"; version="1.2.0"; sha256="0wzi9hv975ib7nvd6qqnlhzfzgx9wydxxs1pkklzzgwlwm4gr971"; depends=[assertthat CombinePValue dplyr edgeR epiNEM expm ggplot2 ggraph glm2 glue graph graphite harmonicmeanp igraph logger MASS Matrix metap mnem naturalsort org_Hs_eg_db pcalg ppcor purrr reshape2 Rgraphviz rlang tidygraph tidyverse]; };
@@ -1236,12 +1237,12 @@ in with self; {
   ddPCRclust = derive2 { name="ddPCRclust"; version="1.14.0"; sha256="13s2h8bfd6i6shbm9iwlz99nvyif6c934ccgkdihgbxfq2zacmdj"; depends=[clue flowCore flowDensity flowPeaks ggplot2 openxlsx plotrix R_utils SamSPECTRAL]; };
   dearseq = derive2 { name="dearseq"; version="1.6.0"; sha256="07vr27rv3z86ajd62c0ilvfgz9z35qsiwwi5pv4sygbhnnjwh3rc"; depends=[ggplot2 KernSmooth matrixStats patchwork pbapply statmod survey viridisLite]; };
   debCAM = derive2 { name="debCAM"; version="1.12.0"; sha256="1nqc2r9wr4q71zsya0ylwkxc91sqa4zkal26wiv5h10bk5nxig5r"; depends=[apcluster Biobase BiocParallel corpcor DMwR2 geometry NMF nnls pcaPP rJava SummarizedExperiment]; };
-  debrowser = derive2 { name="debrowser"; version="1.22.4"; sha256="0wrwyq7kz8qqhgg2pjif8hz53ci33r6fgzwpsdxywds1arv54yb2"; depends=[annotate AnnotationDbi apeglm ashr clusterProfiler colourpicker DESeq2 DOSE DT edgeR enrichplot GenomicRanges ggplot2 gplots Harman heatmaply igraph IRanges jsonlite limma org_Hs_eg_db org_Mm_eg_db pathview plotly RColorBrewer RCurl reshape2 S4Vectors shiny shinyBS shinydashboard shinyjs stringi SummarizedExperiment sva]; };
+  debrowser = derive2 { name="debrowser"; version="1.22.5"; sha256="1aqjnq13yvgw0rjq90l7kgf8c56fhjxhv7r3g1xa5pbdqzfdbv99"; depends=[annotate AnnotationDbi apeglm ashr clusterProfiler colourpicker DESeq2 DOSE DT edgeR enrichplot GenomicRanges ggplot2 gplots Harman heatmaply igraph IRanges jsonlite limma org_Hs_eg_db org_Mm_eg_db pathview plotly RColorBrewer RCurl reshape2 S4Vectors shiny shinyBS shinydashboard shinyjs stringi SummarizedExperiment sva]; };
   deco = derive2 { name="deco"; version="1.10.0"; sha256="1bvn5wipvyxy5h74wl1433pv5lzdp82m8yxwr3b8cljnlqcqh9da"; depends=[ade4 AnnotationDbi Biobase BiocParallel BiocStyle cluster foreign gdata ggplot2 gplots gridExtra limma locfit made4 RColorBrewer reshape2 scatterplot3d sfsmisc SummarizedExperiment]; };
   decompTumor2Sig = derive2 { name="decompTumor2Sig"; version="2.10.0"; sha256="125913q735vazmlnvg8vdca8j88y0mx24zdlqzsgzw9ylkwbq86p"; depends=[BiocGenerics Biostrings BSgenome_Hsapiens_UCSC_hg19 data_table GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 ggseqlogo gridExtra Matrix plyr quadprog readxl S4Vectors SummarizedExperiment TxDb_Hsapiens_UCSC_hg19_knownGene VariantAnnotation]; };
   decontam = derive2 { name="decontam"; version="1.14.0"; sha256="0k8rp91ap3dwzhhhg3s7ikbphxvgha7m118ayrghshp8929g3cdm"; depends=[ggplot2 reshape2]; };
   deconvR = derive2 { name="deconvR"; version="1.0.1"; sha256="1ibp59d0q8bax7rphg140jb5ylkhmaa4lmc0khqffq440j9fnrr5"; depends=[assertthat BiocGenerics data_table dplyr e1071 foreach GenomicRanges IRanges magrittr MASS matrixStats methylKit nnls quadprog rsq S4Vectors tidyr]; };
-  decoupleR = derive2 { name="decoupleR"; version="2.0.0"; sha256="0a9jxhfa2qfafvc35vqky8dfqhpl5vw6zmm1q5gq26bc58pswqar"; depends=[AUCell broom dplyr fgsea GSVA magrittr Matrix purrr ranger rlang RobustRankAggreg rpart speedglm stringr SummarizedExperiment tibble tidyr tidyselect viper withr]; };
+  decoupleR = derive2 { name="decoupleR"; version="2.0.1"; sha256="0d4jl94598rxzw4y0qs2g4c67dhlsnlzj01qqcmi156am3a13pkr"; depends=[broom dplyr magrittr Matrix purrr rlang stringr tibble tidyr tidyselect withr]; };
   deepSNV = derive2 { name="deepSNV"; version="1.40.0"; sha256="1wi6j6yb6i9fs9yszfywqz3w50mhl85dkfmr4w3phwvkf0xkn81w"; depends=[Biostrings GenomicRanges IRanges Rhtslib SummarizedExperiment VariantAnnotation VGAM]; };
   deltaCaptureC = derive2 { name="deltaCaptureC"; version="1.8.0"; sha256="1gfh788xxamsf919bznwl1n5ycd81bcxw4mxcsib46fqmzxgh7vh"; depends=[DESeq2 GenomicRanges ggplot2 IRanges SummarizedExperiment tictoc]; };
   deltaGseg = derive2 { name="deltaGseg"; version="1.34.0"; sha256="090bkkd0sxkjxnparn7jyi59rk18vd3nid2sw66malvc4zx0b22y"; depends=[changepoint fBasics ggplot2 pvclust reshape scales tseries wavethresh]; };
@@ -1281,11 +1282,11 @@ in with self; {
   eegc = derive2 { name="eegc"; version="1.20.0"; sha256="0x35z9nwylb3jq56w31z9zb2q6b52fqk0sb70l3axqamb8yym0lc"; depends=[AnnotationDbi clusterProfiler DESeq2 DOSE edgeR ggplot2 gplots igraph limma org_Hs_eg_db org_Mm_eg_db pheatmap R_utils S4Vectors sna wordcloud]; };
   eiR = derive2 { name="eiR"; version="1.34.0"; sha256="1dppl1x5s0apz7djdi3qzdv8i0q7iqh6q9dcxx1g0hfn2v945jfn"; depends=[BiocGenerics ChemmineR DBI digest RcppAnnoy RCurl RUnit snow snowfall]; };
   eisaR = derive2 { name="eisaR"; version="1.6.0"; sha256="1gfcmxdbzpb8rfdk7c1y7jhqanipa6jyxy2cg6f9jsp9x73fs61w"; depends=[BiocGenerics edgeR GenomicRanges IRanges limma S4Vectors SummarizedExperiment]; };
-  enhancerHomologSearch = derive2 { name="enhancerHomologSearch"; version="1.0.0"; sha256="1v8zgp33kabf5qjf7aklb1lbzsvlh1jv30g0f79djf2i9khcxlkm"; depends=[BiocFileCache BiocGenerics BiocParallel Biostrings BSgenome GenomeInfoDb GenomicRanges httr IRanges jsonlite Matrix motifmatchr Rcpp rtracklayer S4Vectors]; };
+  enhancerHomologSearch = derive2 { name="enhancerHomologSearch"; version="1.0.1"; sha256="080cfazmj13mcymfrcajfmwrj6jq0nkhf4qqv12nb3vchd8dbvjk"; depends=[BiocFileCache BiocGenerics BiocParallel Biostrings BSgenome GenomeInfoDb GenomicRanges httr IRanges jsonlite Matrix motifmatchr Rcpp rtracklayer S4Vectors]; };
   enrichTF = derive2 { name="enrichTF"; version="1.10.0"; sha256="0ssjsl5vh0wdq0584yl6c61d8bp5n3qvkgfrqdlpjfwb7b7gh4xv"; depends=[BiocGenerics BSgenome clusterProfiler GenomeInfoDb GenomicRanges ggplot2 ggpubr heatmap3 IRanges JASPAR2018 magrittr motifmatchr pipeFrame R_utils rmarkdown rtracklayer S4Vectors TFBSTools]; };
   enrichplot = derive2 { name="enrichplot"; version="1.14.2"; sha256="1rjiqmc32c9gxckgrgbypxpp0m8y0kahvhzvjzymda25xp8zqjs2"; depends=[aplot DOSE ggplot2 ggraph ggtree GOSemSim igraph magrittr plyr purrr RColorBrewer reshape2 scatterpie shadowtext yulab_utils]; };
-  ensemblVEP = derive2 { name="ensemblVEP"; version="1.36.0"; sha256="1b9i8qv16mrr31qpvvcimcd80nkykky8dygi90jinkzgvkzdxi64"; depends=[BiocGenerics Biostrings GenomeInfoDb GenomicRanges S4Vectors SummarizedExperiment VariantAnnotation]; };
-  ensembldb = derive2 { name="ensembldb"; version="2.18.3"; sha256="0rbd8ycvl1aydbd8xcbkhgqxqkrflymgah3wm6nx76csapbzh4q9"; depends=[AnnotationDbi AnnotationFilter Biobase BiocGenerics Biostrings curl DBI GenomeInfoDb GenomicFeatures GenomicRanges IRanges ProtGenerics Rsamtools RSQLite rtracklayer S4Vectors]; };
+  ensemblVEP = derive2 { name="ensemblVEP"; version="1.36.1"; sha256="1g38psw45g4yvwilj47ka8xbbmjmna2rdabjfjjal47x9p0yf01a"; depends=[BiocGenerics Biostrings GenomeInfoDb GenomicRanges S4Vectors SummarizedExperiment VariantAnnotation]; };
+  ensembldb = derive2 { name="ensembldb"; version="2.18.4"; sha256="1nsdcsghhh3ikv0hbn1aazdam7a6pqf1p6rz68ll2h6965kl4qzp"; depends=[AnnotationDbi AnnotationFilter Biobase BiocGenerics Biostrings curl DBI GenomeInfoDb GenomicFeatures GenomicRanges IRanges ProtGenerics Rsamtools RSQLite rtracklayer S4Vectors]; };
   epiNEM = derive2 { name="epiNEM"; version="1.18.0"; sha256="0xs9jzy0d9iv45d5ina7ki79wix96318yp17mxhp1l4vdkpm3fk7"; depends=[BoolNet e1071 graph gtools igraph latex2exp lattice latticeExtra minet mnem pcalg RColorBrewer]; };
   epialleleR = derive2 { name="epialleleR"; version="1.2.0"; sha256="1zgwwzrg9ngsfq186qsmvgwxcz0b9avr8wk1yadjlrjc9avgh2d3"; depends=[BH BiocGenerics data_table GenomeInfoDb GenomicRanges Rcpp Rhtslib stringi SummarizedExperiment VariantAnnotation zlibbioc]; };
   epidecodeR = derive2 { name="epidecodeR"; version="1.2.0"; sha256="1fy3i7djpj2inlcpa2h4n5hzp0q6a555sc5axg1jwxiala9l8siv"; depends=[dplyr EnvStats GenomicRanges ggplot2 ggpubr IRanges rstatix rtracklayer]; };
@@ -1381,7 +1382,7 @@ in with self; {
   geneXtendeR = derive2 { name="geneXtendeR"; version="1.20.0"; sha256="03vfb2si6wwn2ilqpiwacmbd3fj2lgzx71jf19sk7ypmnwld3zgc"; depends=[AnnotationDbi BiocStyle data_table dplyr GO_db networkD3 org_Rn_eg_db RColorBrewer rtracklayer SnowballC tm wordcloud]; };
   genefilter = derive2 { name="genefilter"; version="1.76.0"; sha256="05ba33m99dg414lasn36mjmkd9lvrxgpamy1qj2zvi31i9vkq6y2"; depends=[annotate AnnotationDbi Biobase BiocGenerics survival]; };
   genefu = derive2 { name="genefu"; version="2.26.0"; sha256="0l9a20fncrifrmfawsx3azaxvs2v2i41xifgk6zi6dfyj1k4h3sk"; depends=[AIMS amap biomaRt iC10 impute limma mclust survcomp]; };
-  geneplast = derive2 { name="geneplast"; version="1.20.0"; sha256="13gfxsc3i2c25h51sx46lsaivy78vy8mbj9frh5kqc2i6lwrcmpi"; depends=[ape data_table igraph snow]; };
+  geneplast = derive2 { name="geneplast"; version="1.20.1"; sha256="00ajcyxwqpkl40bq42493r7mrcvmq3nx7a1kg080vkjyskqf40m0"; depends=[ape data_table igraph snow]; };
   geneplotter = derive2 { name="geneplotter"; version="1.72.0"; sha256="1b7ngp9l00vrymx3d3nsda546s7p4ifr90idn3x2v4ilf38rfhp8"; depends=[annotate AnnotationDbi Biobase BiocGenerics lattice RColorBrewer]; };
   genoCN = derive2 { name="genoCN"; version="1.46.0"; sha256="159hrdlyc6gh5j3qmrq2s1xpbyd29ahlggr7ccr0wlcl1m9zjfgm"; depends=[]; };
   genomation = derive2 { name="genomation"; version="1.26.0"; sha256="0ynwsrlnp98iyz4bl2s7plin0k9iy9zix4jy4v38lcqg6n4iz00j"; depends=[Biostrings BSgenome data_table GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 gridBase impute IRanges matrixStats plotrix plyr Rcpp readr reshape2 Rsamtools rtracklayer S4Vectors seqPattern]; };
@@ -1402,7 +1403,7 @@ in with self; {
   ggtreeExtra = derive2 { name="ggtreeExtra"; version="1.4.2"; sha256="0c7kf0a5hr63y9w6f09z8dfd3apbhx6i6cd31fvl1wiy977pn2ly"; depends=[ggnewscale ggplot2 ggtree rlang]; };
   girafe = derive2 { name="girafe"; version="1.46.0"; sha256="1al296zsp454lap05mh58y5lmrd0bfc4vmwaq5icnna56i4bi9m9"; depends=[Biobase BiocGenerics Biostrings genomeIntervals intervals IRanges Rsamtools S4Vectors ShortRead]; };
   glmGamPoi = derive2 { name="glmGamPoi"; version="1.6.0"; sha256="1yffzcy910cawz2lzjqg8h1hrjvrkhz3pdif5q352kpzjklr5qjm"; depends=[beachmat BiocGenerics DelayedArray DelayedMatrixStats HDF5Array matrixStats Rcpp RcppArmadillo SummarizedExperiment]; };
-  glmSparseNet = derive2 { name="glmSparseNet"; version="1.12.0"; sha256="14qyj2jgjapjjznjzhslhcfbyxm9z0p28z8qrjqkxcb5z2hw9arq"; depends=[biomaRt dplyr forcats futile_logger ggplot2 glmnet glue httr loose_rock Matrix MultiAssayExperiment readr reshape2 sparsebn sparsebnUtils stringr SummarizedExperiment survminer]; };
+  glmSparseNet = derive2 { name="glmSparseNet"; version="1.12.0"; sha256="14qyj2jgjapjjznjzhslhcfbyxm9z0p28z8qrjqkxcb5z2hw9arq"; depends=[biomaRt dplyr forcats futile_logger ggplot2 glmnet glue httr Matrix MultiAssayExperiment readr reshape2 sparsebnUtils stringr SummarizedExperiment survminer]; };
   globalSeq = derive2 { name="globalSeq"; version="1.22.0"; sha256="16l9pa6siahmfl8k6m0s2cch5jfqz4pcx4xzqi8gsqn9szy6f6jq"; depends=[]; };
   globaltest = derive2 { name="globaltest"; version="5.48.0"; sha256="0wpd1b0wcwkhixd6qkaw0j3y94d5b4aabgz2gq0r72k84jbaxb9f"; depends=[annotate AnnotationDbi Biobase survival]; };
   gmapR = derive2 { name="gmapR"; version="1.36.0"; sha256="0vyw54ijfydb9mvp0znvk850na1iw51higjm3wx69l8jny9l8w60"; depends=[Biobase BiocGenerics BiocParallel Biostrings BSgenome GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges Rsamtools rtracklayer S4Vectors VariantAnnotation]; };
@@ -1427,7 +1428,7 @@ in with self; {
   gwasurvivr = derive2 { name="gwasurvivr"; version="1.12.0"; sha256="1q31ydns5i8jk4p4731i57f80iwx6qm0r9fka4xd4wdxzk5kps8z"; depends=[GWASTools matrixStats SNPRelate SummarizedExperiment survival VariantAnnotation]; };
   h5vc = derive2 { name="h5vc"; version="2.28.0"; sha256="0i4p122cavihc29javrgg5ywqn1fkg73hp46hfj3v2qmwakihk4w"; depends=[abind BatchJobs BiocParallel Biostrings GenomeInfoDb GenomicRanges ggplot2 gridExtra h5vcData IRanges reshape rhdf5 Rhtslib Rsamtools S4Vectors]; };
   hapFabia = derive2 { name="hapFabia"; version="1.36.0"; sha256="0niwlfy2ljsx1ivdxrpm0f8w75bs03xb2l43dkcm5gclwac2ys1v"; depends=[Biobase fabia]; };
-  hca = derive2 { name="hca"; version="1.2.2"; sha256="0jdn93r48id24n8ha2yn2d256mz446j6hfvn0dz0y1kniff154cc"; depends=[BiocFileCache digest dplyr httr jsonlite readr tibble tidyr]; };
+  hca = derive2 { name="hca"; version="1.2.3"; sha256="1raj7z4n1hrfvb18ml3ywnxzidc4ay9ixb74gh0d8m8ps662r701"; depends=[BiocFileCache digest dplyr httr jsonlite readr tibble tidyr]; };
   heatmaps = derive2 { name="heatmaps"; version="1.18.0"; sha256="11fi0kzqx6ihvvwc852xhj34xv4aik0zyv47ad4zbhvb1mvxqv8a"; depends=[BiocGenerics Biostrings EBImage GenomeInfoDb GenomicRanges IRanges KernSmooth Matrix plotrix RColorBrewer]; };
   hiAnnotator = derive2 { name="hiAnnotator"; version="1.28.0"; sha256="1hjgn9gszr38q9syjl9qqw3lml5falp08asn01mq4h1m53akwxxv"; depends=[BSgenome dplyr foreach GenomicRanges ggplot2 iterators rtracklayer scales]; };
   hiReadsProcessor = derive2 { name="hiReadsProcessor"; version="1.30.0"; sha256="02y6gy9h841aag0v88j1g0hw0ckd4zd3agjgvzi9mcmb76zhxz8k"; depends=[BiocGenerics BiocParallel Biostrings dplyr GenomicAlignments GenomicRanges hiAnnotator readxl sonicLength]; };
@@ -1563,7 +1564,7 @@ in with self; {
   methylclock = derive2 { name="methylclock"; version="1.0.1"; sha256="00j1crflmpk02xxs0gfidrd04s8gaw3l1hiqs7qj522j13ks1q45"; depends=[Biobase devtools dplyr dynamicTreeCut ExperimentHub ggplot2 ggpmisc ggpubr impute methylclockData minfi PerformanceAnalytics preprocessCore quadprog Rcpp RPMM tibble tidyr tidyverse]; };
   methylscaper = derive2 { name="methylscaper"; version="1.2.0"; sha256="0ygkx6fs8rjbqp4ry3am7vd3jsqx3nac1z1hdiib2pvgr7b6h1r7"; depends=[BiocParallel Biostrings data_table Rfast seqinr seriation shiny shinyFiles shinyjs SummarizedExperiment]; };
   methylumi = derive2 { name="methylumi"; version="2.40.1"; sha256="1lfcsv8k9c4ndfwlbdk3vd7fq58100bfijyxklna41zf8m8kkkka"; depends=[annotate AnnotationDbi Biobase BiocGenerics FDb_InfiniumMethylation_hg19 genefilter GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 illuminaio IRanges lattice matrixStats minfi reshape2 S4Vectors scales SummarizedExperiment]; };
-  mfa = derive2 { name="mfa"; version="1.16.0"; sha256="1a672zd33bdg0pa490pxrr0jp8vnmnkngb3x12jsqqq56p4dzpjb"; depends=[Biobase coda dplyr ggmcmc ggplot2 magrittr MCMCglmm MCMCpack Rcpp tibble]; };
+  mfa = derive2 { name="mfa"; version="1.16.3"; sha256="0jpnwxzm6iyqcbi6lf89w7xi4gmgi0fhb7rln6g0s81jarqxggib"; depends=[Biobase coda dplyr ggmcmc ggplot2 magrittr MCMCglmm MCMCpack Rcpp tibble]; };
   mgsa = derive2 { name="mgsa"; version="1.42.0"; sha256="02yc49w9yccvhq6iwf09kfb7hkq35aswxymcrkf4j54q7mqhiflc"; depends=[gplots]; };
   miQC = derive2 { name="miQC"; version="1.2.0"; sha256="1a9f6w3j3w2wwqgl2hnl2jrrzycnzwhjv2cds2xk6lakz6x7h9hd"; depends=[flexmix ggplot2 SingleCellExperiment]; };
   miRBaseConverter = derive2 { name="miRBaseConverter"; version="1.18.0"; sha256="07snnvgnmxj0w0f9400vcqgchbfvhmqlh3wrk4wqacqc0ldcxb7a"; depends=[]; };
@@ -1626,7 +1627,7 @@ in with self; {
   multiscan = derive2 { name="multiscan"; version="1.54.0"; sha256="0qjh302hpld7zdrfqkbx8a5hrp3bwfn539pv36mwizjigjznnsi9"; depends=[Biobase]; };
   multtest = derive2 { name="multtest"; version="2.50.0"; sha256="03z71r7g318nwwgiz0k8qwbhghw1hhdhh1an4qnb0nc62c5x9kns"; depends=[Biobase BiocGenerics MASS survival]; };
   mumosa = derive2 { name="mumosa"; version="1.2.0"; sha256="093mzbkx7sf5gg5qcvyzgkfzzdpjm8pd6hb7dwavcjxf90y14l1h"; depends=[batchelor beachmat BiocGenerics BiocNeighbors BiocParallel BiocSingular DelayedArray DelayedMatrixStats igraph IRanges Matrix metapod S4Vectors ScaledMatrix scran scuttle SingleCellExperiment SummarizedExperiment uwot]; };
-  muscat = derive2 { name="muscat"; version="1.8.1"; sha256="0dpzid0zxcyb395yaz4gbgqlv7ngfxw1i5rfybp6cf37cfrk4m70"; depends=[BiocParallel blme ComplexHeatmap data_table DESeq2 dplyr edgeR ggplot2 glmmTMB limma lme4 lmerTest Matrix matrixStats progress purrr S4Vectors scales scater sctransform scuttle SingleCellExperiment SummarizedExperiment variancePartition viridis]; };
+  muscat = derive2 { name="muscat"; version="1.8.2"; sha256="1dlzr1swv0mfaj1kj5m0plvmh72djfwqkl1517r0kf74xj6hab7k"; depends=[BiocParallel blme ComplexHeatmap data_table DESeq2 dplyr edgeR ggplot2 glmmTMB limma lme4 lmerTest Matrix matrixStats progress purrr S4Vectors scales scater sctransform scuttle SingleCellExperiment SummarizedExperiment variancePartition viridis]; };
   muscle = derive2 { name="muscle"; version="3.36.0"; sha256="0a081ay0360h0r9731d145prdg15d1g96s7zzcn411qa8fwg7rv0"; depends=[Biostrings]; };
   musicatk = derive2 { name="musicatk"; version="1.4.0"; sha256="168578fg6gmg48gwd6944ln30g75nyq16yzyjw175yanj09g9qfs"; depends=[Biostrings BSgenome BSgenome_Hsapiens_UCSC_hg19 BSgenome_Hsapiens_UCSC_hg38 BSgenome_Mmusculus_UCSC_mm10 BSgenome_Mmusculus_UCSC_mm9 cluster ComplexHeatmap cowplot data_table decompTumor2Sig deconstructSigs dplyr factoextra GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 ggrepel gridExtra gtools IRanges maftools magrittr MASS matrixTests MCMCprecision NMF philentropy plotly rlang S4Vectors shiny shinyalert shinyBS shinybusy shinydashboard shinyjqui shinyjs sortable stringi stringr SummarizedExperiment TCGAbiolinks tibble tidyr topicmodels TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene uwot VariantAnnotation withr]; };
   mygene = derive2 { name="mygene"; version="1.30.0"; sha256="1s9hlcj9g2a3q2aa3ahjk3j2ksk4v9mpax1cxm739gywaf4sbknp"; depends=[GenomicFeatures Hmisc httr jsonlite plyr S4Vectors sqldf]; };
@@ -1698,7 +1699,7 @@ in with self; {
   pathview = derive2 { name="pathview"; version="1.34.0"; sha256="1jdl81lvrsz03b1nws90nssf2clipipzaqvwm1pq57mvshnlnkjr"; depends=[AnnotationDbi graph KEGGgraph KEGGREST org_Hs_eg_db png Rgraphviz XML]; };
   pathwayPCA = derive2 { name="pathwayPCA"; version="1.10.0"; sha256="01m2g8icx7gq4fpxxxm356wr8wc5dmq3lnvr1s5dj1qqm4hk70xr"; depends=[lars survival]; };
   paxtoolsr = derive2 { name="paxtoolsr"; version="1.28.0"; sha256="0c72fp6nisv6j0rkzw4yip3f94wq990nkmaw3h7lv5r5gpj9b69x"; depends=[httr igraph jsonlite plyr R_utils rappdirs readr rJava rjson XML]; };
-  pcaExplorer = derive2 { name="pcaExplorer"; version="2.20.1"; sha256="1ada0prp16yq21cvrgy19i570y6lsn2ph1s79vmmbw4q4i6xgcwx"; depends=[AnnotationDbi base64enc biomaRt DESeq2 DT genefilter GenomicRanges ggplot2 ggrepel GO_db GOstats heatmaply IRanges knitr limma NMF pheatmap plotly plyr rmarkdown S4Vectors scales shiny shinyAce shinyBS shinydashboard SummarizedExperiment threejs tidyr topGO]; };
+  pcaExplorer = derive2 { name="pcaExplorer"; version="2.20.2"; sha256="1ayixqyds0ma3ph66i3456jfl5bf528vkwi3ja792av5qsn701jx"; depends=[AnnotationDbi base64enc biomaRt DESeq2 DT genefilter GenomicRanges ggplot2 ggrepel GO_db GOstats heatmaply IRanges knitr limma NMF pheatmap plotly plyr rmarkdown S4Vectors scales shiny shinyAce shinyBS shinydashboard SummarizedExperiment threejs tidyr topGO]; };
   pcaMethods = derive2 { name="pcaMethods"; version="1.86.0"; sha256="1fj2v6sna4lbw7ar9h93y2g4pzylqqp7760ih425gcai7s19xdrg"; depends=[Biobase BiocGenerics MASS Rcpp]; };
   pcxn = derive2 { name="pcxn"; version="2.16.0"; sha256="1n61gn1k74k61rrfp340kjchafrfmfidslkqxdr0ijbacbp017qw"; depends=[pcxnData pheatmap]; };
   pdInfoBuilder = derive2 { name="pdInfoBuilder"; version="1.58.0"; sha256="1vk0kppsg9vynwzflkv3frv16hsl43lpk9awr6x22a1frmpndj10"; depends=[affxparser Biobase BiocGenerics Biostrings DBI IRanges oligo oligoClasses RSQLite S4Vectors]; };
@@ -1710,12 +1711,13 @@ in with self; {
   periodicDNA = derive2 { name="periodicDNA"; version="1.4.0"; sha256="1v6rl234qs0la2r7qwiahslw7yr8mppcdcpand2lk8w862k67nda"; depends=[BiocParallel Biostrings BSgenome cowplot GenomeInfoDb GenomicRanges ggplot2 IRanges magrittr rtracklayer S4Vectors zoo]; };
   pgca = derive2 { name="pgca"; version="1.18.0"; sha256="1wrp4k0b1sj75yhw799aqcb6dmimza6gvcxkn5ayfn6x3hfifwwl"; depends=[]; };
   phantasus = derive2 { name="phantasus"; version="1.14.0"; sha256="0p8xa0jqasgn61qzzva7wrjk8d2xcsn9kd20c4dbc61sg3cxrcir"; depends=[AnnotationDbi assertthat Biobase ccaPP curl DESeq2 fgsea GEOquery ggplot2 gtable htmltools httpuv httr jsonlite limma Matrix opencpu pheatmap protolite rhdf5 Rook scales stringr svglite]; };
+  phemd = derive2 { name="phemd"; version="1.10.0"; sha256="1n3xvw9x3600pwv2wk7mbgal0lr6zpkwziy0whlkdkxzbgy9xzaw"; depends=[Biobase BiocGenerics cluster cowplot destiny ggplot2 igraph maptree monocle phateR pheatmap pracma RANN RColorBrewer reticulate Rtsne S4Vectors scatterplot3d Seurat SingleCellExperiment SummarizedExperiment transport VGAM]; };
   phenoTest = derive2 { name="phenoTest"; version="1.42.0"; sha256="0ci44hwicvz32sgv6mywawyygd1wzz2bayx6rshwvpmz1mixncq6"; depends=[annotate AnnotationDbi Biobase biomaRt BMA Category ellipse genefilter ggplot2 gplots GSEABase Heatplus hgu133a_db Hmisc hopach limma mgcv survival xtable]; };
   phenopath = derive2 { name="phenopath"; version="1.18.0"; sha256="1c0cxm3cwxprjkkwimzgjz0h67dykx2jy7jin13h7vzpwwvphh2p"; depends=[dplyr ggplot2 Rcpp SummarizedExperiment tibble tidyr]; };
   philr = derive2 { name="philr"; version="1.20.1"; sha256="1ra7wnnn0blxvxvsa570cf6jiqd9fh0ki90j2vbckrzh33z6plyv"; depends=[ape ggplot2 ggtree phangorn tidyr]; };
   phosphonormalizer = derive2 { name="phosphonormalizer"; version="1.18.0"; sha256="0qbls06h7fkqsg8yhnc8dmbqhkgxxxa29j3h7cwxdq4nvg66frjl"; depends=[matrixStats plyr]; };
   phyloseq = derive2 { name="phyloseq"; version="1.38.0"; sha256="0k0aj8f7g1vr7l0qcc507b3w67zc1k9x7sdblm7mjb20zqr3916s"; depends=[ade4 ape Biobase BiocGenerics biomformat Biostrings cluster data_table foreach ggplot2 igraph multtest plyr reshape2 scales vegan]; };
-  piano = derive2 { name="piano"; version="2.10.0"; sha256="13nnysbr2ljh0r303aja797bjxppksc6ac0qms8qy8nkn155gcw3"; depends=[Biobase BiocGenerics DT fgsea gplots htmlwidgets igraph marray relations scales shiny shinydashboard shinyjs visNetwork]; };
+  piano = derive2 { name="piano"; version="2.10.1"; sha256="0x4d7p273mh6pw2gi5rlv493j9kzpzbzkzgwl82snsqab4ljdg2r"; depends=[Biobase BiocGenerics DT fgsea gplots htmlwidgets igraph marray relations scales shiny shinydashboard shinyjs visNetwork]; };
   pickgene = derive2 { name="pickgene"; version="1.66.0"; sha256="0l5gk659gxh7i0sq3j1dg1v69p108ig84d735dv3x8mf9bq1mfhk"; depends=[MASS]; };
   pipeComp = derive2 { name="pipeComp"; version="1.4.0"; sha256="1r61m3468b4v3vw60yywgxs4r4w1lr55wgwndll6wfh62pzgvrf2"; depends=[aricode BiocParallel circlize clue cluster ComplexHeatmap cowplot dplyr ggplot2 intrinsicDimension knitr Matrix matrixStats randomcoloR RColorBrewer reshape2 Rtsne S4Vectors scales scater scran Seurat SingleCellExperiment SummarizedExperiment uwot viridisLite]; };
   pipeFrame = derive2 { name="pipeFrame"; version="1.10.0"; sha256="0463z7kyaar474yfa05j754df49yasl3qmsfxz0qb3y1d7p37grr"; depends=[Biostrings BSgenome digest GenomeInfoDb magrittr rmarkdown visNetwork]; };
@@ -1725,12 +1727,12 @@ in with self; {
   plgem = derive2 { name="plgem"; version="1.66.0"; sha256="06w8xlw4j1fc9ipdgw55dvhp07f04icmhr20lqzwwhqd5pskrra3"; depends=[Biobase MASS]; };
   plier = derive2 { name="plier"; version="1.64.0"; sha256="1sw89kici1h2xfg7zvrfdm7b7iw5n3mzwhyz82676w2vk0lgkpn4"; depends=[affy Biobase]; };
   plotGrouper = derive2 { name="plotGrouper"; version="1.12.0"; sha256="191grbs8sy8jfxz9a6vsp9qf3zaqppp23fcl5qdrmfzims9krhlw"; depends=[colourpicker dplyr egg ggplot2 ggpubr gridExtra gtable Hmisc magrittr readr readxl rlang scales shiny shinythemes stringr tibble tidyr]; };
-  plotgardener = derive2 { name="plotgardener"; version="1.0.15"; sha256="0gwvxvfcvcank7dny901kr74a3n52l16bf9lmas660ydhfn7g4x0"; depends=[curl data_table dplyr ggplotify IRanges plyranges purrr RColorBrewer Rcpp rlang strawr]; };
+  plotgardener = derive2 { name="plotgardener"; version="1.0.17"; sha256="0jlmakxvwsm1gyhkyncdiipljidf0ymab2illj0gpiwaij9fhd67"; depends=[curl data_table dplyr ggplotify IRanges plyranges purrr RColorBrewer Rcpp rlang strawr]; };
   plyranges = derive2 { name="plyranges"; version="1.14.0"; sha256="1s4zyr57x71v9ywdz6s27z158nhazwhmhkx3944l8zsqd5ciwnnc"; depends=[BiocGenerics dplyr GenomeInfoDb GenomicAlignments GenomicRanges IRanges magrittr rlang Rsamtools rtracklayer S4Vectors tidyselect]; };
   pmm = derive2 { name="pmm"; version="1.26.0"; sha256="0vmkpqxf0lfgkbmyvham128201d33dv3wf9g31nrlwnxd0jcxszn"; depends=[lme4]; };
   pmp = derive2 { name="pmp"; version="1.6.0"; sha256="15yggymqh329f2ibhmg9wmh76hbyn0gpz9k1cxzkvh787lss1w72"; depends=[ggplot2 impute matrixStats missForest pcaMethods reshape2 S4Vectors SummarizedExperiment]; };
   podkat = derive2 { name="podkat"; version="1.26.0"; sha256="0xj0cvw5wj29qfdjs25gawxm2fpbd1dypga54j0fi7nzp94y8ydr"; depends=[Biobase BiocGenerics Biostrings BSgenome GenomeInfoDb GenomicRanges IRanges Matrix Rcpp Rhtslib Rsamtools]; };
-  pogos = derive2 { name="pogos"; version="1.14.0"; sha256="0chvlasp42j63hjv7s9swas9m91wkl264wng2r7461pa5kq9x2pp"; depends=[ggplot2 httr ontoProc rjson S4Vectors shiny]; };
+  pogos = derive2 { name="pogos"; version="1.14.1"; sha256="0h4h5j7mv50zg0sm2hzcpwpdj6738crr1szjj13zkh828p7khd55"; depends=[ggplot2 httr ontoProc rjson S4Vectors shiny]; };
   polyester = derive2 { name="polyester"; version="1.30.0"; sha256="0399jal3f2f4bxfxclx54rxxs8azvm63whjiqwrnkq0s3n7wd08y"; depends=[Biostrings IRanges limma logspline S4Vectors zlibbioc]; };
   powerTCR = derive2 { name="powerTCR"; version="1.14.0"; sha256="0c7crgiwpizynl1bd4i5si96kw7cffnnhsbz4w44a3wd1d6ibk4g"; depends=[cubature doParallel evmix foreach magrittr purrr truncdist vegan VGAM]; };
   ppcseq = derive2 { name="ppcseq"; version="1.2.0"; sha256="1rjqyq31lm54apznp3ymk8mm3vcyq4yxz026awy3dh4s53nzsv0a"; depends=[benchmarkme BH dplyr edgeR foreach furrr future ggplot2 lifecycle magrittr purrr Rcpp RcppEigen rlang rstan rstantools StanHeaders tibble tidybayes tidyr]; };
@@ -1753,16 +1755,16 @@ in with self; {
   progeny = derive2 { name="progeny"; version="1.16.0"; sha256="0zhr5i5v87akzqjb6wid67nhg2icrw6w0awdy87x848c6c1i6j9y"; depends=[Biobase dplyr ggplot2 ggrepel gridExtra tidyr]; };
   projectR = derive2 { name="projectR"; version="1.10.0"; sha256="1ny6fdjqc4smd2b7s5zknm0m8mi1wrapcbzlj4n8d1mhd1xxms0d"; depends=[cluster CoGAPS dplyr ggalluvial ggplot2 limma NMF RColorBrewer reshape2 ROCR scales viridis]; };
   proteinProfiles = derive2 { name="proteinProfiles"; version="1.34.0"; sha256="049q579x3m1sw0l5n22ldsrdkmcx61j8jlabq8kydwdhr6d9mbli"; depends=[]; };
-  psichomics = derive2 { name="psichomics"; version="1.20.1"; sha256="1ycsazxm3ghjwawsxjyk5jm1m7nrk03y77x1lfzyqy87s1vzfy9i"; depends=[AnnotationDbi AnnotationHub BiocFileCache cluster colourpicker data_table digest dplyr DT edgeR fastICA fastmatch ggplot2 ggrepel highcharter htmltools httr jsonlite limma pairsD3 plyr purrr R_utils Rcpp recount reshape2 Rfast shiny shinyBS shinyjs stringr SummarizedExperiment survival XML xtable]; };
+  psichomics = derive2 { name="psichomics"; version="1.20.2"; sha256="1dlxgrlqrkippiw577r94phlh6i029kpgd9sps2qi3d0n4hmlfx9"; depends=[AnnotationDbi AnnotationHub BiocFileCache cluster colourpicker data_table digest dplyr DT edgeR fastICA fastmatch ggplot2 ggrepel highcharter htmltools httr jsonlite limma pairsD3 plyr purrr R_utils Rcpp recount reshape2 Rfast shiny shinyBS shinyjs stringr SummarizedExperiment survival XML xtable]; };
   psygenet2r = derive2 { name="psygenet2r"; version="1.26.0"; sha256="1fs2ljshqfyq4hnlm882fc0vd7x4sif5k3qlliqbxai6k5sdh3li"; depends=[BgeeDB Biobase biomaRt ggplot2 GO_db igraph labeling RCurl reshape2 stringr topGO]; };
   ptairMS = derive2 { name="ptairMS"; version="1.2.0"; sha256="1y6wpg85058migpgyankns5v84jv4fk8n7raxxfryn85bqsn0ida"; depends=[Biobase bit64 chron data_table doParallel DT enviPat foreach ggplot2 ggpubr gridExtra Hmisc minpack_lm MSnbase plotly Rcpp rhdf5 rlang scales shiny shinyscreenshot signal]; };
-  pulsedSilac = derive2 { name="pulsedSilac"; version="1.8.0"; sha256="0k2rq76bxg9cq6vjvwwx51hph6s0z1xmka62x6hv19qwakc64qnn"; depends=[cowplot ggplot2 ggridges MuMIn R_utils robustbase S4Vectors SummarizedExperiment taRifx UpSetR]; };
+  pulsedSilac = derive2 { name="pulsedSilac"; version="1.8.0"; sha256="0k2rq76bxg9cq6vjvwwx51hph6s0z1xmka62x6hv19qwakc64qnn"; depends=[cowplot ggplot2 ggridges MuMIn R_utils robustbase S4Vectors SummarizedExperiment UpSetR]; };
   puma = derive2 { name="puma"; version="3.36.0"; sha256="0li5xxvvf1346ilc6ksg0w9ri2r2w9l7cm0d7i3s2y3bai7g36ka"; depends=[affy affyio Biobase mclust oligo oligoClasses]; };
   pvac = derive2 { name="pvac"; version="1.42.0"; sha256="0zic1p12nn6yb5spkz01wr6c15cq7ilhhb2xxkxj0fsw1qalfgnb"; depends=[affy Biobase]; };
   pvca = derive2 { name="pvca"; version="1.34.0"; sha256="12d4rc29qj8sf3y3j3gfnihs7gy7gq3hnlb1ivzsqqw8rwk53cyg"; depends=[Biobase lme4 Matrix vsn]; };
   pwOmics = derive2 { name="pwOmics"; version="1.26.0"; sha256="1r38hbkyai2cf9izljp8sr2mx9ql6bznnfm9gra6kmnhlz0lrw1c"; depends=[AnnotationDbi AnnotationHub Biobase BiocGenerics biomaRt data_table GenomicRanges gplots graph igraph rBiopaxParser STRINGdb]; };
   pwrEWAS = derive2 { name="pwrEWAS"; version="1.8.0"; sha256="08z5phrwvpc3xaw7vzq4jam2aaba8i6vb46zm420fby7lxrc2bbx"; depends=[abind BiocManager CpGassoc doParallel doSNOW foreach genefilter ggplot2 limma pwrEWAS_data shiny shinyBS shinyWidgets truncnorm]; };
-  qPLEXanalyzer = derive2 { name="qPLEXanalyzer"; version="1.12.0"; sha256="03v1q13xxnbi3r43b4y5psfmcpavnvx2ccr8r0gd6hfhx4wg98a2"; depends=[assertthat Biobase BiocGenerics Biostrings dplyr ggdendro ggplot2 IRanges limma magrittr MSnbase preprocessCore purrr RColorBrewer readr rlang scales stringr tibble tidyr tidyselect]; };
+  qPLEXanalyzer = derive2 { name="qPLEXanalyzer"; version="1.12.1"; sha256="0r1pvvlvccbsc1srim98ahsd7wg9sinnkh8mwbkkm53442r3p7fm"; depends=[assertthat Biobase BiocGenerics Biostrings dplyr ggdendro ggplot2 IRanges limma magrittr MSnbase preprocessCore purrr RColorBrewer readr rlang scales stringr tibble tidyr tidyselect]; };
   qckitfastq = derive2 { name="qckitfastq"; version="1.10.0"; sha256="177agr9q2rjdk67kc2nv6idnqqk2aq595yc83r8pq6h2wp2ynmn0"; depends=[data_table dplyr ggplot2 magrittr Rcpp reshape2 rlang RSeqAn seqTools zlibbioc]; };
   qcmetrics = derive2 { name="qcmetrics"; version="1.32.0"; sha256="1wfc8v1z77wpqfslls8vkw9vi51ylnr8ssr6lm8xz1jd9zijf9ny"; depends=[Biobase knitr pander S4Vectors xtable]; };
   qpcrNorm = derive2 { name="qpcrNorm"; version="1.52.0"; sha256="0zbp5kd6lm1qg9xzg9mibcqm7r3ap9gz7fhaf07ls5q1zk63cdj9"; depends=[affy Biobase limma]; };
@@ -1802,7 +1804,7 @@ in with self; {
   reconsi = derive2 { name="reconsi"; version="1.6.0"; sha256="0djiq9l70wvicbqia14n1bbd9c7ykvsyrp0r2arw2b2pqh8281fh"; depends=[ggplot2 KernSmooth matrixStats phyloseq reshape2]; };
   recount = derive2 { name="recount"; version="1.20.0"; sha256="1maa0fi6dqkcsjlbm52gl0r37qcv951xrc6m4rc6fvp6cb83x68p"; depends=[BiocParallel derfinder downloader GenomeInfoDb GenomicRanges GEOquery IRanges RCurl rentrez rtracklayer S4Vectors SummarizedExperiment]; };
   recount3 = derive2 { name="recount3"; version="1.4.0"; sha256="0ciaab6q0pix7zhz7948b8w3qki8dfy9lpa0wffhqjr7fvfh2km2"; depends=[BiocFileCache data_table GenomicRanges Matrix R_utils RCurl rtracklayer S4Vectors sessioninfo SummarizedExperiment]; };
-  recountmethylation = derive2 { name="recountmethylation"; version="1.4.2"; sha256="11z8ssn7s5mgb92jcr6jcw2rxja8kdddv7bwrqhgns2qkgj52n6w"; depends=[BiocFileCache HDF5Array IlluminaHumanMethylation450kmanifest minfi R_utils RCurl rhdf5 S4Vectors]; };
+  recountmethylation = derive2 { name="recountmethylation"; version="1.4.5"; sha256="1pmrdjiz57ig4rgbn0kkkpls26pfjc4hmx6cpczywqipdyrv6aha"; depends=[BiocFileCache HDF5Array IlluminaHumanMethylation450kmanifest minfi R_utils RCurl rhdf5 S4Vectors]; };
   recoup = derive2 { name="recoup"; version="1.22.0"; sha256="00qxkjjb4bx6vak50jjpl2l9y7myri9x7m17h01j2v2cncg48s55"; depends=[BiocGenerics biomaRt Biostrings circlize ComplexHeatmap GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 httr IRanges Rsamtools RSQLite rtracklayer S4Vectors stringr]; };
   regionReport = derive2 { name="regionReport"; version="1.28.1"; sha256="03d7nbfsk55mrlhzzr81mx3ndswkfj7fajyh1yz4jakjdclvzlxm"; depends=[BiocStyle DEFormats derfinder DESeq2 GenomeInfoDb GenomicRanges knitr knitrBootstrap RefManageR rmarkdown S4Vectors SummarizedExperiment]; };
   regioneR = derive2 { name="regioneR"; version="1.26.1"; sha256="0k500fdmv5l0v7b9pj73bjk3h9k261mfqi6vl52khlw0fafn9b6p"; depends=[Biostrings BSgenome GenomeInfoDb GenomicRanges IRanges memoise rtracklayer S4Vectors]; };
@@ -1813,7 +1815,7 @@ in with self; {
   rfPred = derive2 { name="rfPred"; version="1.32.0"; sha256="12ppidpn8piw1w450nm35qxzfgyki4ihvp7cri8qk9gipvd3kq9z"; depends=[data_table GenomicRanges IRanges Rsamtools]; };
   rfaRm = derive2 { name="rfaRm"; version="1.6.0"; sha256="095p3nsax57m74j4dj7klpwkl8w2326c9yhc8s0c236kwyszz9rv"; depends=[Biostrings data_table httr IRanges magick rsvg rvest S4Vectors stringi xml2]; };
   rgsepd = derive2 { name="rgsepd"; version="1.26.0"; sha256="149065kmlzdzb9bjwm7x5y3l5j1y7qxzh8xz5liicz5rc4s7pb4i"; depends=[AnnotationDbi biomaRt DESeq2 GO_db goseq gplots hash org_Hs_eg_db SummarizedExperiment]; };
-  rhdf5 = derive2 { name="rhdf5"; version="2.38.0"; sha256="13zm993l3i9f98gqdpxgsrzf9fgqppx2ajvrl0i3f7cvpifcgxqg"; depends=[rhdf5filters Rhdf5lib]; };
+  rhdf5 = derive2 { name="rhdf5"; version="2.38.1"; sha256="1mlwp7bblhbpmd90sxj02zpq1q3fyg8v7ankyjb1y284xaymp02y"; depends=[rhdf5filters Rhdf5lib]; };
   rhdf5client = derive2 { name="rhdf5client"; version="1.16.0"; sha256="1pbgjhcqilr1kzx3a5m4113p6alcr30z1mdd33qqllcarnc0pf4n"; depends=[DelayedArray httr R6 rjson S4Vectors]; };
   rhdf5filters = derive2 { name="rhdf5filters"; version="1.6.0"; sha256="05b015pyp3g1crmm2d3ldsa7r5w0khmf87qbl4fv16r6pdggha78"; depends=[Rhdf5lib]; };
   riboSeqR = derive2 { name="riboSeqR"; version="1.28.0"; sha256="0nnhjvjl4c9yyfzjf8kcj4yky5cdimicp7lz008sczy19jq4vjhd"; depends=[abind baySeq GenomeInfoDb GenomicRanges IRanges Rsamtools seqLogo]; };
@@ -1824,7 +1826,7 @@ in with self; {
   rnaEditr = derive2 { name="rnaEditr"; version="1.4.0"; sha256="0hs3g7cr6c8gcvg1svv88r4h68364gfnqsmdjc6llwg2l1j36a8w"; depends=[BiocGenerics bumphunter corrplot GenomeInfoDb GenomicRanges IRanges logistf plyr S4Vectors survival]; };
   rnaseqcomp = derive2 { name="rnaseqcomp"; version="1.24.0"; sha256="0asx51fxg9hc0brbqlxl0jyfyidh4fbwyclrvczzzqasf277f23w"; depends=[RColorBrewer]; };
   roar = derive2 { name="roar"; version="1.30.0"; sha256="0hqh4vsnxl2sn1bf6s6wxl2nskb40rhvrysdvb6dr60zkih3g347"; depends=[BiocGenerics GenomeInfoDb GenomicAlignments GenomicRanges IRanges rtracklayer S4Vectors SummarizedExperiment]; };
-  rols = derive2 { name="rols"; version="2.22.0"; sha256="08asfjl6smdg05m41m0bdc2awiqbhyb016z9f77adx3vc73mh613"; depends=[Biobase BiocGenerics httr jsonlite progress]; };
+  rols = derive2 { name="rols"; version="2.22.1"; sha256="1qam4aajg2sp8xii3rkarq5qjxdncy4mp6n5pinmm1iwynlsv217"; depends=[Biobase BiocGenerics httr jsonlite progress]; };
   ropls = derive2 { name="ropls"; version="1.26.4"; sha256="19f3wd55860x959h5n7mrivyjdas5b3jmx74lf24xnx23g26f8rn"; depends=[Biobase MultiDataSet]; };
   rpx = derive2 { name="rpx"; version="2.2.2"; sha256="05qgfchg4pyff0xqrnycxzpan0w5ry1f9w30irhpjiglp7ggf882"; depends=[BiocFileCache curl jsonlite RCurl xml2]; };
   rqt = derive2 { name="rqt"; version="1.20.0"; sha256="0v2bm774y2ikwppp0w0ydqzak96ax7ga1d303vgll13xan50d391"; depends=[car CompQuadForm glmnet Matrix metap pls ropls RUnit SummarizedExperiment]; };
@@ -1840,7 +1842,7 @@ in with self; {
   sagenhaft = derive2 { name="sagenhaft"; version="1.64.0"; sha256="110xg6kagap9795saxmh1dl77r4c2gzmk49rvqjlwqvbifnn4mvw"; depends=[SparseM]; };
   sampleClassifier = derive2 { name="sampleClassifier"; version="1.18.0"; sha256="1plsyjjbjrjq1mydv19lsv0alq98vr2132c3m9j0w4akvs7zcv6q"; depends=[annotate e1071 ggplot2 MGFM MGFR]; };
   sangeranalyseR = derive2 { name="sangeranalyseR"; version="1.4.0"; sha256="14bmz98rhpnkdqxkq67qvzkyld1a56h3y8kvjnhz5hzw8q1aihyd"; depends=[ape BiocStyle Biostrings data_table DECIPHER DT excelR ggdendro gridExtra knitr logger openxlsx phangorn plotly reshape2 rmarkdown sangerseqR seqinr shiny shinycssloaders shinydashboard shinyjs shinyWidgets stringr zeallot]; };
-  sangerseqR = derive2 { name="sangerseqR"; version="1.30.0"; sha256="0j0hzpcsz9z04yf6jp26xscp62slgx4i4i33f6s1ajbgx00sq70n"; depends=[Biostrings shiny]; };
+  sangerseqR = derive2 { name="sangerseqR"; version="1.30.1"; sha256="0anrwj63s0rd9dz6iiq6mvzp1jv5zqadjwrhc1cypvz57zf8ja02"; depends=[Biostrings shiny]; };
   sarks = derive2 { name="sarks"; version="1.6.0"; sha256="026px0b7cbfvf7zqcm2p1y00hna1wgpyfr4bkirwrbmskb7f32lp"; depends=[binom Biostrings cluster IRanges rJava]; };
   satuRn = derive2 { name="satuRn"; version="1.2.0"; sha256="1i2prsjxf6h0ynkcx4g1sj0mpb3v9rm6hwb9ppha2p86ffqxvrjn"; depends=[BiocParallel boot ggplot2 limma locfdr Matrix pbapply SummarizedExperiment]; };
   savR = derive2 { name="savR"; version="1.32.0"; sha256="0dwl94j5dm5ngn8lyyc4bd9ihd1nqincvq26najjn6lw0x55ciky"; depends=[ggplot2 gridExtra reshape2 scales XML]; };
@@ -1859,7 +1861,7 @@ in with self; {
   scMAGeCK = derive2 { name="scMAGeCK"; version="1.6.0"; sha256="1vx90l5d010dp6snasvaymlh16w5law19shdz0fhg3ngkc1v9jg0"; depends=[ggplot2 Seurat]; };
   scMerge = derive2 { name="scMerge"; version="1.10.0"; sha256="031wlfilcagl3mq14yqybz2z7r0l420p5v8f128f841lmhqclg55"; depends=[BiocParallel BiocSingular cluster DelayedArray DelayedMatrixStats distr igraph M3Drop pdist proxy ruv S4Vectors SingleCellExperiment SummarizedExperiment]; };
   scPCA = derive2 { name="scPCA"; version="1.8.0"; sha256="1qgb03c446yv1zkzgiin05vlj7njlz3krvwj183s9y43d95mfny1"; depends=[assertthat BiocParallel cluster coop DelayedArray dplyr elasticnet kernlab Matrix MatrixGenerics matrixStats origami purrr Rdpack RSpectra ScaledMatrix sparsepca stringr tibble]; };
-  scPipe = derive2 { name="scPipe"; version="1.16.0"; sha256="0ckl6crm5rx53dlbbx0b4bfkllr5krai2bnxq5r5yqffv9p7n6mi"; depends=[AnnotationDbi BiocGenerics biomaRt dplyr GenomicRanges GGally ggplot2 glue hash magrittr MASS mclust org_Hs_eg_db org_Mm_eg_db Rcpp reshape Rhtslib rlang robustbase rtracklayer S4Vectors scales scater SingleCellExperiment stringr SummarizedExperiment testthat zlibbioc]; };
+  scPipe = derive2 { name="scPipe"; version="1.16.1"; sha256="0anw36azfp4adsxdl3c58jmgvmvjv0vrcgp2bq90wnxky9xipmna"; depends=[AnnotationDbi BiocGenerics biomaRt dplyr GenomicRanges GGally ggplot2 glue hash magrittr MASS mclust org_Hs_eg_db org_Mm_eg_db Rcpp reshape Rhtslib rlang robustbase rtracklayer S4Vectors scales scater SingleCellExperiment stringr SummarizedExperiment testthat zlibbioc]; };
   scReClassify = derive2 { name="scReClassify"; version="1.0.0"; sha256="0v2cz8h18p3q6a437db1z1ca85j7yrpz9sg7418q2hdv74wd645c"; depends=[e1071 randomForest SingleCellExperiment SummarizedExperiment]; };
   scRecover = derive2 { name="scRecover"; version="1.10.0"; sha256="0x8hlbjhf9jfin075sikc7gpl9qbpppcvhy3rd4cgy1nzq6dqwq1"; depends=[bbmle BiocParallel doParallel foreach gamlss kernlab MASS Matrix penalized preseqR pscl Rmagic rsvd SAVER]; };
   scRepertoire = derive2 { name="scRepertoire"; version="1.4.0"; sha256="17il73lv0pxbqaza21i0fg5zh2v3jf7n30nwngi1jqics4l5ahsl"; depends=[doParallel dplyr ggalluvial ggplot2 igraph plyr powerTCR reshape2 rlang SeuratObject stringdist stringr SummarizedExperiment vegan]; };
@@ -1896,8 +1898,8 @@ in with self; {
   seqPattern = derive2 { name="seqPattern"; version="1.26.0"; sha256="1mik575qaxw9h9qyjn971207pfgbc8p1mx60jrb20jbrrihgg2na"; depends=[Biostrings GenomicRanges IRanges KernSmooth plotrix]; };
   seqTools = derive2 { name="seqTools"; version="1.28.0"; sha256="1m8pxyq11bq4wz3w4n4ls5wf9ws2b7pazazv1d6icrrr9z3278ma"; depends=[zlibbioc]; };
   seqbias = derive2 { name="seqbias"; version="1.42.0"; sha256="1q608c1madij8l52ljl3w52vi3cssr6ikny84yj6n8s7yvpx5jpr"; depends=[Biostrings GenomicRanges Rhtslib]; };
-  seqcombo = derive2 { name="seqcombo"; version="1.16.0"; sha256="0xyrjbvgrld5sy6g6sp79f43j93jnyccwg21il65fqrzb7z4d7xk"; depends=[Biostrings cowplot dplyr ggplot2 igraph magrittr yulab_utils]; };
-  seqsetvis = derive2 { name="seqsetvis"; version="1.14.1"; sha256="1ja286qz7m15k97ms7rm81l0picsjjpm7fmsdpbklc66y3syl089"; depends=[data_table eulerr GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 ggplotify IRanges limma pbapply pbmcapply png RColorBrewer Rsamtools rtracklayer S4Vectors UpSetR]; };
+  seqcombo = derive2 { name="seqcombo"; version="1.16.1"; sha256="18iixqj84b4ldg8q0dj8fivxrgqzba6qnj9zin9dhsyfqg5wz6z0"; depends=[Biostrings cowplot dplyr ggplot2 igraph magrittr yulab_utils]; };
+  seqsetvis = derive2 { name="seqsetvis"; version="1.14.2"; sha256="1l3fxskqwh5am1zxyz3l95whlw8wdylagx9n7fvlrfs4lfqbzphr"; depends=[data_table eulerr GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 ggplotify IRanges limma pbapply pbmcapply png RColorBrewer Rsamtools rtracklayer S4Vectors UpSetR]; };
   sesame = derive2 { name="sesame"; version="1.12.9"; sha256="0sqmykp5nc87ixhf330bhz0vh28si3c6kfvr8rrfhhf3jvy34a2k"; depends=[BiocParallel DNAcopy e1071 fgsea GenomicRanges ggplot2 ggrepel illuminaio IRanges KernSmooth MASS matrixStats preprocessCore randomForest reshape2 S4Vectors sesameData stringr SummarizedExperiment tibble wheatmap]; };
   sevenC = derive2 { name="sevenC"; version="1.14.0"; sha256="06m6479ps7896zaks8jnnak8l7c6abbsdx56k3l5ir78681g4bq1"; depends=[BiocGenerics boot data_table GenomeInfoDb GenomicRanges InteractionSet IRanges purrr readr rtracklayer S4Vectors]; };
   sevenbridges = derive2 { name="sevenbridges"; version="1.24.0"; sha256="03p7p1mwa3m8zvyz5761xmqhch6cfgy42cv0swwgj0n9jr83sc23"; depends=[curl data_table docopt httr jsonlite objectProperties S4Vectors stringr uuid yaml]; };
@@ -1929,7 +1931,7 @@ in with self; {
   snpStats = derive2 { name="snpStats"; version="1.44.0"; sha256="0ha34b5cg26940xihgky45adns1nflrgq2qjq77w4bncxpaacsqq"; depends=[BiocGenerics Matrix survival zlibbioc]; };
   soGGi = derive2 { name="soGGi"; version="1.26.0"; sha256="1g2lsi8nqpi2vm284jv1ab3i9k03kwqsy9zf51vfnpqq31lrdlki"; depends=[BiocGenerics BiocParallel Biostrings chipseq GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges preprocessCore reshape2 Rsamtools rtracklayer S4Vectors SummarizedExperiment]; };
   sojourner = derive2 { name="sojourner"; version="1.8.0"; sha256="0ld1gh6vznmvd09xrza5xs93n3g0vf8zqymn58b23rilsrvm2cbc"; depends=[dplyr EBImage fitdistrplus ggplot2 gridExtra lattice MASS mclust minpack_lm mixtools mltools nls2 pixmap plyr R_matlab Rcpp reshape2 rlang sampSurf scales shiny shinyjs sp truncnorm]; };
-  sparrow = derive2 { name="sparrow"; version="1.0.1"; sha256="1i0dzj5wnphfhxdl6gmwf3qy8x9v5vb7c35mkq5xml6miwl3x5ha"; depends=[babelgene BiocGenerics BiocParallel BiocSet checkmate circlize ComplexHeatmap data_table DelayedMatrixStats edgeR ggplot2 GSEABase irlba limma Matrix plotly viridis]; };
+  sparrow = derive2 { name="sparrow"; version="1.0.3"; sha256="0mlsbicas04l3c1bhvnqnprjnlqzd6h61k7n3j51bkahrds33nbf"; depends=[babelgene BiocGenerics BiocParallel BiocSet checkmate circlize ComplexHeatmap data_table DelayedMatrixStats edgeR ggplot2 GSEABase irlba limma Matrix plotly viridis]; };
   sparseDOSSA = derive2 { name="sparseDOSSA"; version="1.18.0"; sha256="1rn8jv2b3fmyibgc6h91mhnl9nzqkds02pvj6vbq12pfvhhb021i"; depends=[MASS MCMCpack optparse tmvtnorm]; };
   sparseMatrixStats = derive2 { name="sparseMatrixStats"; version="1.6.0"; sha256="0ifqj4a6mn4749sr62gq3dwd6mmbbzdx5mh5b5663vcgl1kw96x1"; depends=[Matrix MatrixGenerics matrixStats Rcpp]; };
   sparsenetgls = derive2 { name="sparsenetgls"; version="1.12.0"; sha256="0g8vbzhzyccyi77x49c8idhwy357a2azywvllinjapgwiy88s02a"; depends=[glmnet huge MASS Matrix]; };
@@ -1972,9 +1974,9 @@ in with self; {
   switchBox = derive2 { name="switchBox"; version="1.30.0"; sha256="09z9wi8yzjq49rjmn707a1kvf7c203lbxcnc7znwhy7lv51svj67"; depends=[gplots pROC]; };
   switchde = derive2 { name="switchde"; version="1.20.0"; sha256="1n815zwj5znddgc3pz87089q8bvb14n2g61zfang8d8pna4zbf7v"; depends=[dplyr ggplot2 SingleCellExperiment SummarizedExperiment]; };
   synapsis = derive2 { name="synapsis"; version="1.0.0"; sha256="1kqapzcd2zvmyaqshcrfxkkaf6k7kwaqnd6g4dhnjcf2wqnf6fs5"; depends=[EBImage]; };
-  synergyfinder = derive2 { name="synergyfinder"; version="3.2.8"; sha256="07fjam0c6j5ga75601vsbp4x1x8h31gxwxanwjxmixnv7md0pdms"; depends=[dplyr drc furrr future ggforce ggplot2 ggrepel gstat kriging lattice magrittr metR mice nleqslv pbapply plotly purrr reshape2 sp SpatialExtremes stringr tidyr tidyverse vegan]; };
+  synergyfinder = derive2 { name="synergyfinder"; version="3.2.10"; sha256="0nc2c8y3msffl8ghp60wmvwnjahxg9w5xfmrpx36r7z81ggdqs9d"; depends=[dplyr drc furrr future ggforce ggplot2 ggrepel gstat kriging lattice magrittr metR mice nleqslv pbapply plotly purrr reshape2 sp SpatialExtremes stringr tidyr tidyverse vegan]; };
   synlet = derive2 { name="synlet"; version="1.24.0"; sha256="1xidxlkppap0x8h9iiyl78lcx50ckpg46n8pl49vz4435vd6grp2"; depends=[doBy dplyr ggplot2 magrittr RankProd RColorBrewer reshape2]; };
-  systemPipeR = derive2 { name="systemPipeR"; version="2.0.5"; sha256="1j91pyfjsqngxxlxjqc477pznlfax4vayrks2q12rxw76ija80hf"; depends=[BiocGenerics Biostrings crayon GenomicRanges ggplot2 htmlwidgets magrittr Rsamtools S4Vectors ShortRead stringr SummarizedExperiment yaml]; };
+  systemPipeR = derive2 { name="systemPipeR"; version="2.0.6"; sha256="0l9m74cz5qf1hcr6f2jng7kd9vc3ppkpjgxh7gla8x0y329q0znz"; depends=[BiocGenerics Biostrings crayon GenomicRanges ggplot2 htmlwidgets magrittr Rsamtools S4Vectors ShortRead stringr SummarizedExperiment yaml]; };
   systemPipeShiny = derive2 { name="systemPipeShiny"; version="1.4.0"; sha256="0h803ijajf32igfknkaivlzrc323apzligq1j8ghpf02q7f5q830"; depends=[assertthat bsplus crayon dplyr drawer DT ggplot2 glue htmltools magrittr openssl plotly R6 rlang RSQLite rstudioapi shiny shinyAce shinydashboard shinydashboardPlus shinyFiles shinyjqui shinyjs shinytoastr shinyWidgets spsComps spsUtil stringr styler tibble vroom yaml]; };
   systemPipeTools = derive2 { name="systemPipeTools"; version="1.2.0"; sha256="1n53nwb00zmrhb8h1fq4lqzdd87f74c4l1z24sid4xrjssylrnwr"; depends=[ape DESeq2 dplyr DT GGally ggplot2 ggrepel ggtree glmpca magrittr pheatmap plotly Rtsne SummarizedExperiment tibble]; };
   tLOH = derive2 { name="tLOH"; version="1.2.0"; sha256="0k3lqlivxbv4gaipiskhpl34rjrmrn1x4243awxnvbhhvaqq5r50"; depends=[data_table dplyr GenomicRanges ggplot2 MatrixGenerics purrr scales VariantAnnotation]; };
@@ -2070,7 +2072,6 @@ in with self; {
   GenoGAM = derive2 { name="GenoGAM"; version="2.11.0"; sha256="058qix2h0zm2k9csmbdhci2wqih3lyggjj591cqn0ls2nv7bnyvj"; depends=[BiocParallel Biostrings data_table DelayedArray DESeq2 futile_logger GenomeInfoDb GenomicAlignments GenomicRanges HDF5Array IRanges Matrix Rcpp RcppArmadillo rhdf5 Rsamtools S4Vectors sparseinv SummarizedExperiment]; broken = true; };
   Herper = derive2 { name="Herper"; version="1.3.0"; sha256="038cavnbz7gvmv9mpnf88n8dzrg7yl306y68zsq5hpkrj6qax9vr"; depends=[reticulate rjson withr]; broken = true; };
   HiCBricks = derive2 { name="HiCBricks"; version="1.11.0"; sha256="12s01r9z569pp6amlvcs7fqmwivw9jb2ahnnyq6nzflsyn5277kl"; depends=[BiocParallel curl data_table digest GenomeInfoDb GenomicRanges ggplot2 IRanges jsonlite R_utils R6 RColorBrewer readr reshape2 rhdf5 S4Vectors scales stringr tibble viridis]; broken = true; };
-  MBQN = derive2 { name="MBQN"; version="2.5.0"; sha256="01pf9wkk3dsxgx1y8mxfxn9m2j2hqipc5kajm7w8g60bj9flg09j"; depends=[BiocFileCache ggplot2 limma PairedData preprocessCore rappdirs RCurl rpx SummarizedExperiment xml2]; broken = true; };
   MSEADbi = derive2 { name="MSEADbi"; version="1.2.0"; sha256="1g1kg3nh7iwg5nrpmig6srw6as4yfwmbqn965pffrk0zp19llsbf"; depends=[AnnotationDbi Biobase DBI RSQLite]; broken = true; };
   MSstatsTMTPTM = derive2 { name="MSstatsTMTPTM"; version="1.1.2"; sha256="16qnddwhwhjjfr5akdrmp93gkxq2r41s82hb1blbz47lwbj5kaj5"; depends=[dplyr ggplot2 gridExtra MSstatsTMT Rcpp reshape2 stringr]; broken = true; };
   MethCP = derive2 { name="MethCP"; version="1.7.0"; sha256="1smhwmrgckgivf6xfk54sz197cw1mar95chzkrfpf4wxw3jzbbkn"; depends=[BiocParallel bsseq DNAcopy DSS GenomeInfoDb GenomicRanges IRanges methylKit S4Vectors]; broken = true; };
@@ -2085,5 +2086,4 @@ in with self; {
   methyAnalysis = derive2 { name="methyAnalysis"; version="1.34.0"; sha256="05k3n7iy5ijidbnblbqqas8dsj8drwzbhyrbs8wl1ypkg51havi0"; depends=[annotate AnnotationDbi Biobase BiocGenerics biomaRt genefilter GenomeInfoDb GenomicFeatures GenomicRanges Gviz IRanges lumi methylumi org_Hs_eg_db rtracklayer SummarizedExperiment VariantAnnotation]; broken = true; };
   methylPipe = derive2 { name="methylPipe"; version="1.27.0"; sha256="0z2md9n1flzfsgsbzwffn4q6yfcjyj03bg1vi4phcknigbhg1viy"; depends=[BiocGenerics Biostrings data_table GenomeInfoDb GenomicAlignments GenomicRanges gplots Gviz IRanges marray Rsamtools S4Vectors SummarizedExperiment]; broken = true; };
   perturbatr = derive2 { name="perturbatr"; version="1.13.0"; sha256="0ssk8cr42hibn917s2z2nzcdan54c7xiydypbi8f3g4w68q4ly31"; depends=[assertthat diffusr doParallel dplyr foreach formula_tools ggplot2 igraph lazyeval lme4 magrittr rlang scales tibble tidyr]; broken = true; };
-  phemd = derive2 { name="phemd"; version="1.9.0"; sha256="0hqivlc9hzcfcprng1499nas84fwvgisg8976vsjciyn903355jr"; depends=[Biobase BiocGenerics cluster cowplot destiny ggplot2 igraph maptree monocle phateR pheatmap pracma RANN RColorBrewer reticulate Rtsne S4Vectors scatterplot3d Seurat SingleCellExperiment SummarizedExperiment transport VGAM]; broken = true; };
 }
diff --git a/pkgs/development/r-modules/cran-packages.nix b/pkgs/development/r-modules/cran-packages.nix
index ee3f719fd12e1..337b1dd002023 100644
--- a/pkgs/development/r-modules/cran-packages.nix
+++ b/pkgs/development/r-modules/cran-packages.nix
@@ -4,7 +4,7 @@
 # Rscript generate-r-packages.R cran >new && mv new cran-packages.nix
 
 { self, derive }:
-let derive2 = derive { snapshot = "2022-03-10"; };
+let derive2 = derive { snapshot = "2022-04-08"; };
 in with self; {
   A3 = derive2 { name="A3"; version="1.0.0"; sha256="017hq9pjsv1h9i7cqk5cfx27as54shlhdsdvr6jkhb8jfkpdb6cw"; depends=[pbapply xtable]; };
   AATtools = derive2 { name="AATtools"; version="0.0.1"; sha256="08is383xhs2lc9wfffykcwqyl8mwcxfpk3lnvlpkp96hq9m9ikbf"; depends=[doParallel dplyr foreach magrittr]; };
@@ -24,6 +24,7 @@ in with self; {
   ACNE = derive2 { name="ACNE"; version="0.8.1"; sha256="0kzapsalzw6jsi990qicp4glijh5ddnfimsg5pidgbwxg4i05grl"; depends=[aroma_affymetrix aroma_core MASS matrixStats R_filesets R_methodsS3 R_oo R_utils]; };
   ACSWR = derive2 { name="ACSWR"; version="1.0"; sha256="195vjrkang5cl7gwsna0aq4p0h4jym9xg9yh94bnf8vq6wf8j83n"; depends=[MASS]; };
   ACTCD = derive2 { name="ACTCD"; version="1.2-0"; sha256="0mzjxxr2zfdidw8ibh6w8mvpkw3q3nvngqi05g9ind26ckvk053p"; depends=[GDINA R_methodsS3]; };
+  ACV = derive2 { name="ACV"; version="1.0.2"; sha256="078n1if2rkbdhivrzp3lsq35a8awrf5y3s7fi3f5l21a9dmrk4d1"; depends=[forecast Matrix]; };
   ACWR = derive2 { name="ACWR"; version="0.1.0"; sha256="19q8m5swp7ivrxi8rbkpp37d6fwr35zd8xs4ygpfgd07axc9451s"; depends=[r2d3]; };
   ADAPTS = derive2 { name="ADAPTS"; version="1.0.21"; sha256="0ddmgk1syi0mafgp3fyvgz95ny8disyvmkd859ya32lykjjmwsxv"; depends=[ComICS doParallel e1071 foreach missForest nnls pcaMethods pheatmap preprocessCore quantmod ranger]; };
   ADCT = derive2 { name="ADCT"; version="0.1.0"; sha256="1glf83ydx4v3ld8c4gb9h3jk6srd054bis5l8k57p1ba4fnqnnpp"; depends=[mvtnorm]; };
@@ -44,6 +45,7 @@ in with self; {
   AEenrich = derive2 { name="AEenrich"; version="1.1.0"; sha256="049z696mkwha90w84l60r11q12r3jlam6kyh8abiy0zk2k425san"; depends=[doParallel dplyr foreach magrittr modelr qvalue rlang tidyr]; };
   AF = derive2 { name="AF"; version="0.1.5"; sha256="1r87ra55g0qm2s8cgsmdwck93ia2vr8zfab3in45mxm5xc501xgk"; depends=[data_table drgee ivtools stdReg survival]; };
   AFM = derive2 { name="AFM"; version="2.0"; sha256="1l0yd68h8vlii1437zhyrxj6fq1ghfaqclk860c25q2d055ajnqd"; depends=[data_table dbscan fftwtools fractaldim ggplot2 gridExtra gstat igraph mixtools moments plyr png pracma rgl scales shiny shinyjs sp stringr]; };
+  AFR = derive2 { name="AFR"; version="0.1.0"; sha256="0anqgjnrbmr7yincp47wih3ks6zlljw46p3cg1m5ch4cjn1s8pns"; depends=[car forecast ggplot2 gridExtra lmtest mFilter nlme olsrr regclass rlang tseries writexl xts zoo]; };
   AFheritability = derive2 { name="AFheritability"; version="0.1.0"; sha256="03w0a4z2x539ykyzdxm1mfqkhzz03cg0aqvgi062jrrm5m6f57ix"; depends=[ggplot2 mvtnorm reshape2 shiny]; };
   AGD = derive2 { name="AGD"; version="0.39"; sha256="0hmq684snnffc2v7vmns4ky200a6zh1ggiap03n5cvpb3nlqc6lr"; depends=[gamlss gamlss_dist]; };
   AGHmatrix = derive2 { name="AGHmatrix"; version="2.0.4"; sha256="1pvnv3fzxfdzjz9il0022k46kkcb57ypz31qn0br7mck64bkzsia"; depends=[Matrix zoo]; };
@@ -73,14 +75,13 @@ in with self; {
   AMModels = derive2 { name="AMModels"; version="0.1.4"; sha256="18h075bzk8s75b3zmjd0x8c6dpl40445d4kv8n0p4ldnx80b1aha"; depends=[unmarked]; };
   AMOEBA = derive2 { name="AMOEBA"; version="1.1"; sha256="1npzh3rpfnxd4r1pj1hm214sfgbw4wmq4ws093lnl7pvsl0q37xn"; depends=[rlecuyer snowfall spdep]; };
   AMPLE = derive2 { name="AMPLE"; version="1.0.0"; sha256="1lcwwf41i0mkg2bv8z5mzrj6h3pa31h33mrmbxbndjgb3ivz2wf5"; depends=[ggplot2 markdown R6 RColorBrewer scales shiny shinyjs shinyscreenshot]; };
-  AMR = derive2 { name="AMR"; version="1.8.0"; sha256="0vxm8rd2c4v4v0xq3h1yfxdjibz72pv9a8z43f3ii2ymgdwg5d31"; depends=[]; };
+  AMR = derive2 { name="AMR"; version="1.8.1"; sha256="1q08d44c9ilryn3wwwncn1bq606mcg406vxq0zy7r5h9chgxnpp9"; depends=[]; };
   ANN2 = derive2 { name="ANN2"; version="2.3.4"; sha256="1izljhz3rkzq05dkvg9q3fdyj7q871j8lsky67d5r8ffpzm1lk3z"; depends=[ggplot2 Rcpp RcppArmadillo reshape2 testthat viridisLite]; };
   ANOM = derive2 { name="ANOM"; version="0.5"; sha256="14nfy9xplbabfprwxz5fvx26nmqhp657vr6d90dc8vk8ds63ckiz"; depends=[ggplot2 MCPAN multcomp nparcomp SimComp]; };
   ANOVAIREVA = derive2 { name="ANOVAIREVA"; version="0.1.0"; sha256="04z2g79nnh5yhn4aqw0i7ck2b1z5dbasf1zp1sj6rjjrp9aqmaa6"; depends=[car dplyr ggplot2 plotly rmarkdown shiny]; };
   ANOVAShiny = derive2 { name="ANOVAShiny"; version="0.1.0"; sha256="1z8wi8c8j3rlchfk1vx101qz1r9j2jl5lfh72y5lqsisqxl2fyyz"; depends=[DescTools dplyr HH rhandsontable rmarkdown shiny]; };
   ANOVAShiny2 = derive2 { name="ANOVAShiny2"; version="0.1.0"; sha256="0bnxfg5c37wi5g53jd0zqq31yx29zvlk2m2jh6jlwki8khpp9y00"; depends=[DescTools dplyr HH rhandsontable rmarkdown shiny]; };
   ANOVAreplication = derive2 { name="ANOVAreplication"; version="1.1.5"; sha256="1d2r2cwpn9rdfbmiccag487pvsq6adn7b321c5z8i7n671h2wi26"; depends=[quadprog shiny]; };
-  ANTs = derive2 { name="ANTs"; version="0.0.13"; sha256="01zncc9zzv32cdfy718c2cdbscy404zdhwn35vf5ha81zpz3ql3a"; depends=[gtools Kendall lme4 Rcpp RcppArmadillo RcppEigen]; };
   AOV1R = derive2 { name="AOV1R"; version="0.1.0"; sha256="0dv7k0mifybkarpwqyla5j6cvw9dcch09wvdq09ra9bsf4vyk652"; depends=[cellranger data_table lazyeval purrr]; };
   APAtree = derive2 { name="APAtree"; version="1.0.1"; sha256="0vhvx2xp62avyq405jqn4i3z8awlifcs1lb527brxxhybrhnk4rv"; depends=[BH FD lwgeom raster Rcpp sf units]; };
   APCI = derive2 { name="APCI"; version="1.0.5"; sha256="0wkpcjsgzk01x4qc395wwqr856fr096v8vhydcw84yrmp8w3clxx"; depends=[data_table dplyr gee ggplot2 ggpubr magrittr stringr survey]; };
@@ -124,15 +125,16 @@ in with self; {
   ATR = derive2 { name="ATR"; version="0.1-1"; sha256="0via7zm3byzbdgrfw351fqvx0g5cj2z31bqfwh7kr99nqgjh0dyn"; depends=[partykit]; };
   ATbounds = derive2 { name="ATbounds"; version="0.1.0"; sha256="007gc9yjxwlhkb0mibxaa394xdiilfm8z6jbbqdn6wl986p07pg3"; depends=[mgcv]; };
   ATmet = derive2 { name="ATmet"; version="1.2.1"; sha256="17lzb4qnxgvlwy5zaz250mb0c4ayk509700k8mj8zf4dgv51kxa3"; depends=[DiceDesign lhs metRology msm sensitivity]; };
-  AUC = derive2 { name="AUC"; version="0.3.0"; sha256="0ripcib2qz0m7rgr1kiz68nx8f6p408l1ww7j78ljqik7p3g41g7"; depends=[]; };
+  AUC = derive2 { name="AUC"; version="0.3.2"; sha256="07xf47kypqbsg2mixmq6mnh4s89aqan9bgl6kfv6lbx8ajv2asw3"; depends=[]; };
   AUCRF = derive2 { name="AUCRF"; version="1.1"; sha256="00d7jcg2dyvf7sc9w7vxxd85m7nsbcmfqsavrv236vxfpfc9yn7i"; depends=[randomForest]; };
   AUtests = derive2 { name="AUtests"; version="0.99"; sha256="0ima350mjlqvij6f9xy6wfcibvlji7nh0prpqngj7apn82ri4m2k"; depends=[logistf]; };
   AWR = derive2 { name="AWR"; version="1.11.189-1"; sha256="1imvpmq6br0z7l67w66a5s1ylbv6xvypj0wc09bmjy7sapdmkn4x"; depends=[rJava]; };
   AWR_Athena = derive2 { name="AWR.Athena"; version="2.0.7-0"; sha256="1j9bqhyk0jzry4g379ml65gwxlszn7pjif1dywgns98jbry8mavh"; depends=[rJava RJDBC]; };
   AWR_KMS = derive2 { name="AWR.KMS"; version="0.1"; sha256="00aqhyqlncsv0vfcyhaazxaclwm63v5kscssash7529avdwd4gqg"; depends=[AWR jsonlite rJava]; };
   AWR_Kinesis = derive2 { name="AWR.Kinesis"; version="1.7.3"; sha256="1gfjzbb8xxfd2x5zabysqi0x10sb1c9826wqw8y555nsxgksqxz8"; depends=[AWR futile_logger jsonlite rJava]; };
+  AZIAD = derive2 { name="AZIAD"; version="0.0.1"; sha256="1nknqq33pls512r62agb6340634jf4b14hg0hm27dkxw0qjrqc70"; depends=[corpcor doParallel dplyr EnvStats extraDistr foreach lqmm matrixcalc MixAll QRM rmutil rootSolve]; };
   Ac3net = derive2 { name="Ac3net"; version="1.2.2"; sha256="1ns4n0xxz6p34c11bj0k7nzgmyqr9mis2b0g5nfz37dbikndyqyz"; depends=[data_table]; };
-  AcceptanceSampling = derive2 { name="AcceptanceSampling"; version="1.0-7"; sha256="13k3zczjycw24n5yp0qmrm233id5j8h6fvra57f1n6js7ljxiiq2"; depends=[]; };
+  AcceptanceSampling = derive2 { name="AcceptanceSampling"; version="1.0-8"; sha256="1ja1g0v8qvf7yj81x37wc6i7fkwpc573756jgvazazi8yf1gm12p"; depends=[]; };
   AcousticNDLCodeR = derive2 { name="AcousticNDLCodeR"; version="1.0.2"; sha256="1fgzgwanpv2pzy74xdk3hamc44p8qch467wh163dxby8jr9ik0sb"; depends=[seewave tuneR zoo]; };
   AcrossTic = derive2 { name="AcrossTic"; version="1.0-3"; sha256="03180h79jhjd66ibrnsfp3yyp2jlfysp7cymw46phzj2palghsc0"; depends=[lpSolve treeClust]; };
   ActCR = derive2 { name="ActCR"; version="0.2.0"; sha256="1jjkmw0pwr8xlmhiw3wpyjfmi2xcx569zvp797ywvjk6rvipzw52"; depends=[cosinor cosinor2 dplyr minpack_lm zoo]; };
@@ -160,10 +162,11 @@ in with self; {
   AeroSampleR = derive2 { name="AeroSampleR"; version="0.1.12"; sha256="0p9mnmvr3mq41a39b8gcj99f4nh7wxwv4xly3c7bwwy2mi5c4qm5"; depends=[dplyr ggplot2 ggthemes magrittr purrr stringr tidyr tidyselect]; };
   AggregateR = derive2 { name="AggregateR"; version="0.1.1"; sha256="1s2q888bqx6ilisv5s4g8ryja97nz6cz4ycm4sw1i63l5wjrwljc"; depends=[data_table NCmisc tibble]; };
   AgreementInterval = derive2 { name="AgreementInterval"; version="0.1.1"; sha256="1bvinzylvsaipa8mq15f45b6h37znavlrdl0rbrx1pqw52r7z8kv"; depends=[psych]; };
-  AgroR = derive2 { name="AgroR"; version="1.2.7"; sha256="0fk1q9pqqxmllk0462nlbijg61qixbfqv78r0gf3y9ch5njj0hgh"; depends=[cowplot crayon drc dunn_test emmeans ggplot2 ggrepel lme4 lmtest MASS multcomp multcompView nortest RColorBrewer]; };
-  AgroReg = derive2 { name="AgroReg"; version="1.2.1"; sha256="0pdr39vimd749h4khw9jj48k3k6ysi50ppc8jcca4sr7rmq138dc"; depends=[boot broom dplyr drc egg ggplot2 minpack_lm rcompanion]; };
+  AgroR = derive2 { name="AgroR"; version="1.2.9"; sha256="1bpmnk57k1kmdhplrw5klfjwd3pfh2z42pspv37bm8055gqlpyzs"; depends=[cowplot crayon drc dunn_test emmeans ggplot2 ggrepel lme4 lmtest MASS multcomp multcompView nortest RColorBrewer]; };
+  AgroReg = derive2 { name="AgroReg"; version="1.2.2"; sha256="1f3h5ydq6wwb8g6zs7l8c3jbwjlz1f75wq4x4q6xqnrcbbrv2z3f"; depends=[boot broom dplyr drc egg ggplot2 minpack_lm rcompanion]; };
   AgroTech = derive2 { name="AgroTech"; version="1.0.1"; sha256="1r04ns77axjm1nfhxbdq2zwr8gkbxrxblh9kicpv8jznc7ngb8mi"; depends=[crayon ggplot2 ggrepel gridExtra lmtest nortest readxl xlsx]; };
   AhoCorasickTrie = derive2 { name="AhoCorasickTrie"; version="0.1.2"; sha256="0zh3y5jd8m0xbj6lqr01zvwj9qd1xr3iq7vd6sgr3g3qh4kqm5pq"; depends=[Rcpp]; };
+  AirMonitor = derive2 { name="AirMonitor"; version="0.2.2"; sha256="1pjr0cv8p4wh1r42dclarxbbd4iiwrv8zn6igdkr19829k1airkw"; depends=[dplyr dygraphs leaflet lubridate magrittr MazamaCoreUtils MazamaTimeSeries readr rlang stringr tidyselect xts]; };
   AirSensor = derive2 { name="AirSensor"; version="1.0.8"; sha256="0wpfg3mry1vdyd9v1981hasizj1mn5wy60ig9swxlqdm7j11wxan"; depends=[countrycode cowplot dplyr dygraphs geodist geosphere GGally ggmap ggplot2 gridExtra httpcode httr jsonlite leaflet lubridate magrittr MazamaCoreUtils MazamaLocationUtils MazamaSpatialUtils openair PWFSLSmoke RColorBrewer readr rlang scales seismicRoll sp stringr tibble tidyr tidyselect worldmet xts zoo]; };
   Ake = derive2 { name="Ake"; version="1.0"; sha256="1dj598xfdyjqvysc39a0d5gizgk367c5lkddmwmsqa8zjmvpr15a"; depends=[]; };
   AlgDesign = derive2 { name="AlgDesign"; version="1.2.0"; sha256="0ammlg148gk0p24fh700116nd66636np0jb1wwh0axq5jphwk1pz"; depends=[]; };
@@ -172,7 +175,7 @@ in with self; {
   AlleleRetain = derive2 { name="AlleleRetain"; version="2.0.2"; sha256="0b6h5giskqbjbrk8nf29i75wrhxsjw1c87laiqzrpbp9n717bl20"; depends=[]; };
   AlleleShift = derive2 { name="AlleleShift"; version="1.0-2"; sha256="0pmjh5nq67fxnwlszp5rlmnmzg4gdjkr9dzaz6b0p7vh2cfy9m45"; depends=[adegenet BiodiversityR vegan]; };
   Allspice = derive2 { name="Allspice"; version="1.0.3"; sha256="1l11alczi3bq8l9np4wzwf19sfnkqpbllqw54mx30py7qz6p1ng3"; depends=[]; };
-  AlphaPart = derive2 { name="AlphaPart"; version="0.9.2"; sha256="1k0ib1v8jssdgnjjkwapiy4vjf380dk103kmxlziz771vq2wsaix"; depends=[directlabels dplyr gdata ggplot2 magrittr pedigree Rcpp reshape]; };
+  AlphaPart = derive2 { name="AlphaPart"; version="0.9.3"; sha256="0v1cv55lw1r2nr6b68h0d3f5j7x4rjbmd78d45h005hhr1lss8fp"; depends=[directlabels dplyr gdata ggplot2 magrittr pedigree Rcpp reshape]; };
   AlphaSimR = derive2 { name="AlphaSimR"; version="1.1.2"; sha256="0pc3byi19ydlnmddgc76gdqgvlyw7ixa3k55471x8kxnz22fhcx1"; depends=[BH R6 Rcpp RcppArmadillo]; };
   Amelia = derive2 { name="Amelia"; version="1.8.0"; sha256="0plrnmlwn91bmrx8ip83nqb15ykjxjl6m49788sinq5cinkdbh9y"; depends=[foreign Rcpp RcppArmadillo]; };
   AmericanCallOpt = derive2 { name="AmericanCallOpt"; version="0.95"; sha256="1nhy44j5bmmjsp6g79nrn741rzzxikhdnxk4wwbdj9igcc1bs573"; depends=[]; };
@@ -183,7 +186,6 @@ in with self; {
   AmpliconDuo = derive2 { name="AmpliconDuo"; version="1.1.1"; sha256="0vw06x47vc0dqzafgpkn4abdsrhxfs9dq8nnrr2pl49skj5n4hks"; depends=[ggplot2 xtable]; };
   AmyloGram = derive2 { name="AmyloGram"; version="1.1"; sha256="1xdi3i3nw4fzj4d040r55f0gid72gy3vbz5nbdrvapl97zk3kp8c"; depends=[biogram ranger seqinr shiny]; };
   AnaCoDa = derive2 { name="AnaCoDa"; version="0.1.4.4"; sha256="1b03bxysvw9v4j3bzsmrjf5ci06v6s83ix89qxy73ba5akf2gb7h"; depends=[mvtnorm Rcpp VGAM]; };
-  AnalyzeFMRI = derive2 { name="AnalyzeFMRI"; version="1.1-24"; sha256="0qkhw6bik6s82h4yb5bashqjl8wfxarivvz6r5ffn9cgrvlwyahd"; depends=[fastICA R_matlab]; };
   AncestryMapper = derive2 { name="AncestryMapper"; version="2.0"; sha256="1fr2y1a5rn7rq8aly94f618kywix32jwysi70nfhaqx8hf4zzprb"; depends=[svd]; };
   AnchorRegression = derive2 { name="AnchorRegression"; version="0.1.3"; sha256="1bmlxk5j3i9mm71cwz785q5sysp8hsyy0080kgd3ksx78p68ara5"; depends=[glmnet mgcv selectiveInference]; };
   Andromeda = derive2 { name="Andromeda"; version="0.6.0"; sha256="0q102bspkbx0nh80q92c8841fqz1y4rh1w29sw8shd5jplbfp5af"; depends=[cli DBI dbplyr dplyr hms pillar rlang RSQLite tidyselect zip]; };
@@ -212,6 +214,7 @@ in with self; {
   ArchaeoPhases_dataset = derive2 { name="ArchaeoPhases.dataset"; version="0.2.0"; sha256="0yffzc9jmyiil3p0bvf0fpq64mn55swcnizi3bgsl44d4j93y68q"; depends=[]; };
   Arothron = derive2 { name="Arothron"; version="2.0.3"; sha256="0rb1n9pmp7q2wdihn26kbpyvyznlk8mrs8c26l1ar4q29jw44rw4"; depends=[abind alphashape3d compositions doParallel foreach geometry Morpho rgl Rvcg stringr vegan]; };
   AsioHeaders = derive2 { name="AsioHeaders"; version="1.16.1-1"; sha256="0hp08v6if476745v2mk9k2sp1ikiac94fcnp8v9jdcyx954fqqlq"; depends=[]; };
+  AssetAllocation = derive2 { name="AssetAllocation"; version="0.1.0"; sha256="0b0hh0kgr2nm7p4hilh7n56d1x7yqlqmgbcs782vypkj1g4dg01p"; depends=[PerformanceAnalytics quantmod xts zoo]; };
   AssetCorr = derive2 { name="AssetCorr"; version="1.0.4"; sha256="0r98li2lxhfap1hn6h0l78phpm9m1nlcqhwzpq0ahhw0b1rd4qkf"; depends=[boot ggplot2 knitr mvQuad mvtnorm numDeriv qpdf Rdpack VineCopula]; };
   AssetPricing = derive2 { name="AssetPricing"; version="1.0-3"; sha256="199ygwfddpzxnj388gxkn7xyhnvjr24f5jg4lnydh0z7pb96pm5r"; depends=[deSolve polynom]; };
   AssocAFC = derive2 { name="AssocAFC"; version="1.0.2"; sha256="1rjiiir472dnr15xyvpn81s62nf01gl70khr8mrni65ssp5m30fb"; depends=[CompQuadForm]; };
@@ -233,7 +236,7 @@ in with self; {
   Autoplotprotein = derive2 { name="Autoplotprotein"; version="1.1"; sha256="13mxqmhhdiq7mz4m6nx39dsq7x3bm8fsgskswx48vsq6x2k6byxa"; depends=[ade4 plotrix plyr seqinr XML]; };
   AutoregressionMDE = derive2 { name="AutoregressionMDE"; version="1.0"; sha256="1dmg0q4sp2d2anzhw2my8xjhpyjsx0kf7r202q5bkw8yr57jnhvr"; depends=[]; };
   Autoseed = derive2 { name="Autoseed"; version="0.1.0"; sha256="0xr3sjfccvp8h18jqxzajb2pfn4nm8q9maic6k9zzr15fxvphiy5"; depends=[]; };
-  AvInertia = derive2 { name="AvInertia"; version="0.0.1"; sha256="0s7syd3jas2gzqzswv0nj2d1q0sjfqgjayr5ds2w8i4fzsi9zdvz"; depends=[ggplot2 ggthemes pracma readxl reshape2 stringr tidyr]; };
+  AvInertia = derive2 { name="AvInertia"; version="0.0.2"; sha256="1i3fy4jf91x662xhi07kcsg9b1p0hfyj2x5fav3zkvs9lx7gwfqx"; depends=[ggplot2 ggthemes pracma readxl reshape2 stringr tidyr]; };
   AzureAppInsights = derive2 { name="AzureAppInsights"; version="0.3.0"; sha256="0dqk13r6iyaa54g21hda6fwijxlriq5dqnazvaw7cwh1zvivh8lm"; depends=[assertthat jsonlite lubridate rlang shiny]; };
   AzureAuth = derive2 { name="AzureAuth"; version="1.3.3"; sha256="1arr7vbcj9ibrx826md487hcmlch46b2h3r03a14wxq6ssxj4x0z"; depends=[httr jose jsonlite openssl R6 rappdirs]; };
   AzureCognitive = derive2 { name="AzureCognitive"; version="1.0.1"; sha256="1mn3qw5g77x24qyhybhn1p3h4s9ymdafrj35i24f32ncr5abnd2f"; depends=[AzureAuth AzureRMR httr jsonlite]; };
@@ -259,14 +262,14 @@ in with self; {
   BAMBI = derive2 { name="BAMBI"; version="2.3.3"; sha256="0v4rlsam7l3bdq2q7cmg1w2y4m1sj0ab2r2da76yq8rimch00q8g"; depends=[bridgesampling coda future_apply gtools label_switching lattice loo mvtnorm numDeriv qrng RColorBrewer Rcpp RcppArmadillo scales]; };
   BAMMtools = derive2 { name="BAMMtools"; version="2.1.8"; sha256="1ply8cj8sh8fn958g52i88gzyify79if41882cmks58diglpi0g5"; depends=[ape gplots Rcpp]; };
   BANOVA = derive2 { name="BANOVA"; version="1.2.0"; sha256="0zyfgcx6wxrl9vgdpbzcs8pb6irmyagknjkcl1x30pzlj4dlx3kg"; depends=[coda rjags rstan runjags]; };
-  BARIS = derive2 { name="BARIS"; version="1.1.1"; sha256="1h1zrgpn69nvz61567c08vfynmzy70g31a37wp4p6g8wri1hr7xg"; depends=[checkmate data_table downloader dplyr httr janitor jsonlite magrittr memoise miniUI rgdal rio rstudioapi sf shiny stringi stringr XML]; };
+  BARIS = derive2 { name="BARIS"; version="1.1.3"; sha256="1ccwxc7s1qk9zcs546kkpwzv26rxswrydnblvg4b8vbm5790n0gv"; depends=[checkmate data_table downloader dplyr glue httr janitor jsonlite magrittr memoise miniUI rgdal rio rstudioapi sf shiny stringi stringr XML]; };
   BART = derive2 { name="BART"; version="2.9"; sha256="1yzwiyjc2gq2vvw5z2psmyqbbb1kq0xvsb0zingcn8qikw45mm5m"; depends=[nlme nnet Rcpp survival]; };
   BAS = derive2 { name="BAS"; version="1.6.0"; sha256="01qmh49k5k6sidy3k5xx3cy3vmj8f59znd4z2jn0sqjzzngyxypg"; depends=[]; };
   BASIX = derive2 { name="BASIX"; version="1.1"; sha256="18dkvv1iwskfnlpl6xridcgqpalbbpm2616mvc3hfrc0b26v01id"; depends=[]; };
   BASS = derive2 { name="BASS"; version="1.2.2"; sha256="14zimfdkpsil22n1z4ldpi9smmja5kf7qqlklr5sr7y5avnh0hd9"; depends=[hypergeo truncdist]; };
   BASiNET = derive2 { name="BASiNET"; version="0.0.4"; sha256="0pmn4znqhpav729ai7zr027a7sx6bz2lmlk086crmwm1fnwipqq4"; depends=[Biostrings igraph randomForest rJava rmcfs RWeka]; };
-  BASiNETEntropy = derive2 { name="BASiNETEntropy"; version="0.99.1"; sha256="1jacfcnl86frnrnhil4xx8hi7v2l0na7ldb8nfhic1cdrmz323jr"; depends=[Biostrings igraph randomForest]; };
-  BAT = derive2 { name="BAT"; version="2.8.0"; sha256="102z5x2c1dvmizza4zbzldimxl0vrvr9dnsm9jq7k9ml2mbipv3l"; depends=[ape geometry hypervolume MASS nls2 raster vegan]; };
+  BASiNETEntropy = derive2 { name="BASiNETEntropy"; version="0.99.2"; sha256="1vls83b7yvbckw11n63yiss0dc852h807br8p1l49zhsq977sv4n"; depends=[Biostrings igraph randomForest]; };
+  BAT = derive2 { name="BAT"; version="2.8.1"; sha256="0bf843r4mycxg7bx64bxz915zblyq0i9205f7kl3rgwi4bsxzymg"; depends=[ape geometry hypervolume MASS nls2 raster vegan]; };
   BAYSTAR = derive2 { name="BAYSTAR"; version="0.2-9"; sha256="0crillww1f1jvhjw639sf09lpc3wpzd69milah143gk9zlrkhmz2"; depends=[coda mvtnorm]; };
   BAwiR = derive2 { name="BAwiR"; version="1.2.7"; sha256="1vvym7bbfbi1x91962nfcqql0fiyv4svdk5329rq43nnh188i456"; depends=[Anthropometry dplyr ggplot2 ggthemes httr lubridate magrittr plyr purrr reshape2 rvest rworldmap scales stringi stringr tibble tidyr xml2]; };
   BB = derive2 { name="BB"; version="2019.10-1"; sha256="0kf9sfsm3n036a8a8gjfpc9qdryvadb019kqjh80n1szdv7bdl04"; depends=[quadprog]; };
@@ -277,10 +280,11 @@ in with self; {
   BBRecapture = derive2 { name="BBRecapture"; version="0.2"; sha256="1w0m8p4mwjsycv9krmsgdyjckic2nwxbyhrz1s2gng2v1h20zvlf"; depends=[HI lme4 locfit secr]; };
   BBSSL = derive2 { name="BBSSL"; version="0.1.0"; sha256="0vb3afbx8p3frliy92sf2wlmx32rasxj39i8d023m2dvsblbh50x"; depends=[glmnet greybox Matrix mvnfast rmutil statmod svMisc truncnorm]; };
   BBcor = derive2 { name="BBcor"; version="1.0.3"; sha256="160d34an9837i9myw9m0yxplh1z2cmhx2wc7m59dlld5zap4glag"; depends=[bayeslincom ggplot2 pbapply psych Rdpack wdm]; };
-  BBmisc = derive2 { name="BBmisc"; version="1.11"; sha256="1lh1n4bvxzivb5rbz69mvd8xdgr3gr2bnqd68a39sd1530l8r90y"; depends=[checkmate]; };
+  BBmisc = derive2 { name="BBmisc"; version="1.12"; sha256="0gh5f342rwra79i7imv50x8vrhd2zkifm7khb0yv3ndpd4zn62lh"; depends=[checkmate data_table]; };
   BCA1SG = derive2 { name="BCA1SG"; version="0.1.0"; sha256="14jvi5gn19f72szcnyhfpdld00cc7gyih5qrm4bpzvp553f1svvk"; depends=[logOfGamma Matrix]; };
   BCBCSF = derive2 { name="BCBCSF"; version="1.0-1"; sha256="0hvhnra68i0x78n57nlbxmz0qwl2flng9w47089jw6f9hzkq9r7n"; depends=[abind]; };
   BCC1997 = derive2 { name="BCC1997"; version="0.1.1"; sha256="1lqbivjkc7858jn54av1v9bzp0as43klgndbzkr59dc3l128xp12"; depends=[]; };
+  BCDAG = derive2 { name="BCDAG"; version="1.0.0"; sha256="1a4ylby1hm2pfdf22qvw1qpgs742y77kpvmymikx8pc1vnhmwjih"; depends=[gRbase lattice mvtnorm]; };
   BCDating = derive2 { name="BCDating"; version="0.9.8"; sha256="1px9fimg3fqx8bfkzq6rl34xclc9gcjxqjvj5islpdy4f1ifwph3"; depends=[]; };
   BCE = derive2 { name="BCE"; version="2.1"; sha256="0dqp08pbq7r88yhvlwgzzk9dcdln7awlliy5mfq18j5jhiy7axiz"; depends=[FME limSolve Matrix]; };
   BCEA = derive2 { name="BCEA"; version="2.4.1"; sha256="1x5hyl09ky7jgqvqfnf8sx6s8ncglbhk2bwj8mvhl02kgx4n42k6"; depends=[dplyr ggplot2 GrassmannOptim gridExtra MASS purrr reshape2 rlang]; };
@@ -294,13 +298,13 @@ in with self; {
   BDEsize = derive2 { name="BDEsize"; version="1.6"; sha256="0dyjd5f1cqmzqnrbxz06pbxrk6gjrmsh2x6p7qllczvlmm7jdm5i"; depends=[fpow ggplot2]; };
   BDP2 = derive2 { name="BDP2"; version="0.1.3"; sha256="14m85sigx6hk0qzhfgih43m2lxp9xczmp9g3z4pping6msbnbdrz"; depends=[rmarkdown shiny shinyBS]; };
   BDWreg = derive2 { name="BDWreg"; version="1.2.0"; sha256="07j6dy69q1as1nwgp2790wzpzmjich2256cddhl7n3h2rs1dja74"; depends=[coda doParallel DWreg foreach MASS]; };
-  BDgraph = derive2 { name="BDgraph"; version="2.64"; sha256="0pnzbw09c7amsvj8l4p1jnmss4rkbr1dsmagiygh8lj5fbrklgr4"; depends=[igraph]; };
-  BE = derive2 { name="BE"; version="0.1.5"; sha256="0z4cd6z5r0r0smk8q0zhl264zj48pfp8w3hgdap59zsqrn5c6z5l"; depends=[rtf]; };
+  BDgraph = derive2 { name="BDgraph"; version="2.65"; sha256="0rg3wi9xwsbj90gb60p3vzkfrf76hwh47nc6fwv6c21yzd3s7vm4"; depends=[igraph]; };
+  BE = derive2 { name="BE"; version="0.2.0"; sha256="0v2bc9lskhrhp5bnc6c21wwdnralnggn7qbwdqk0bgvmxsyn5ghn"; depends=[rtf]; };
   BEACH = derive2 { name="BEACH"; version="1.3.1"; sha256="0biq6c74k8vb8ykafzf3blyi08rp65x1vaw3bfpwdc1ihc9wrgjr"; depends=[devtools DT haven plyr rJava rtf sas7bdat shiny WriteXLS xtable]; };
   BED = derive2 { name="BED"; version="1.4.4"; sha256="1hbdjxh695607ppmk39xclh26k1bq9hrysyp8nc5axhhg1drpiff"; depends=[dplyr DT htmltools miniUI neo2R readr rstudioapi shiny stringr visNetwork]; };
   BEDASSLE = derive2 { name="BEDASSLE"; version="1.5"; sha256="1bz3lr0waly9vj9adwhmgs3lq7zjdkcbvm3y9rnn72qlrwmv5fbn"; depends=[emdbook MASS matrixcalc]; };
   BEDMatrix = derive2 { name="BEDMatrix"; version="2.0.3"; sha256="1pq333x1shxw3wcqgcb4gqg6rwa0hyc24rib235q4zg10r2gyrbm"; depends=[crochet]; };
-  BEKKs = derive2 { name="BEKKs"; version="1.0.1"; sha256="0r8hcbkby9b60qyc0hjr1hi0k1zyzg546ggx8hfm83z0507qsdj0"; depends=[expm forecast future future_apply ggfortify ggplot2 gridExtra mathjaxr Rcpp RcppArmadillo reshape2 xts]; };
+  BEKKs = derive2 { name="BEKKs"; version="1.1.0"; sha256="0pq2wv107sp7s3k9rlyk5mrdkijy3k017i6i6y16fnzpkz5gi6lw"; depends=[expm forecast future future_apply ggfortify ggplot2 gridExtra mathjaxr Rcpp RcppArmadillo reshape2 xts]; };
   BENMMI = derive2 { name="BENMMI"; version="4.3-7"; sha256="1v96g4l1zkpvvx8jdifnafyaz4ml8v1bxbl97r1n5n6mgw88gk77"; depends=[benthos dplyr ggplot2 jsonlite knitr markdown purrr readr tidyr xtable]; };
   BEST = derive2 { name="BEST"; version="0.5.4"; sha256="109zl99bz1bndan1pm3hm0f1da86a18lcyzl0741z14l0m0d91a9"; depends=[coda HDInterval rjags]; };
   BESTree = derive2 { name="BESTree"; version="0.5.2"; sha256="0yij6xdlvhbqifckaylgbhszwwp38d9x6vbpr1nl40mwwnv4bswz"; depends=[plyr]; };
@@ -313,7 +317,7 @@ in with self; {
   BGGM = derive2 { name="BGGM"; version="2.0.4"; sha256="0676viahmid0n89jhs93ci8l7rxpam7rn75mdbshgx7f1q3wqiih"; depends=[BFpack GGally ggplot2 ggridges MASS mvnfast network Rcpp RcppArmadillo RcppDist RcppProgress Rdpack reshape sna]; };
   BGLR = derive2 { name="BGLR"; version="1.0.9"; sha256="16chvslsknhfjdnfy79y4bl5xayvrk8j01y0r3nddq02ypwrc2j4"; depends=[MASS truncnorm]; };
   BGSIMD = derive2 { name="BGSIMD"; version="1.0"; sha256="0xkr56z8l72wps7faqi5pna1nzalc3qj09jvd3v9zy8s7zf5r7w4"; depends=[]; };
-  BGVAR = derive2 { name="BGVAR"; version="2.4.3"; sha256="109nmcjwbcgzcbah2pb8k3db3rbcpd2xsswjw1q7nl75v3rwdlp6"; depends=[abind bayesm coda GIGrvg knitr MASS Matrix Rcpp RcppArmadillo RcppParallel RcppProgress readxl stochvol xts zoo]; };
+  BGVAR = derive2 { name="BGVAR"; version="2.4.5"; sha256="1jfljhaw54lxv91skvvxaqs6y8pailcp9yphd97kvw8vqnx9yqfy"; depends=[abind bayesm coda GIGrvg knitr MASS Matrix Rcpp RcppArmadillo RcppParallel RcppProgress readxl stochvol xts zoo]; };
   BGmisc = derive2 { name="BGmisc"; version="0.1"; sha256="15xgm3n3hn5zkrvyfcylyz5q3zah0155914a0rck0ipihb45sbbl"; depends=[Matrix]; };
   BH = derive2 { name="BH"; version="1.78.0-0"; sha256="1cwc1q8w9d6i81nclgi7lycsnpj0dcbxlv9rdb0f04r0d03rv7iv"; depends=[]; };
   BHAI = derive2 { name="BHAI"; version="0.99.2"; sha256="1hawa55mk590is8ziav7fdszsa3a42bqb0znzqsazz5lkg4daaa7"; depends=[MCMCpack plotrix prevtoinc]; };
@@ -324,13 +328,13 @@ in with self; {
   BI = derive2 { name="BI"; version="1.0.0"; sha256="192qdw2ag8sdw5v7xsc19y2a6w7gs58lnlh0yakc2i0jjad3iyw5"; depends=[]; };
   BICORN = derive2 { name="BICORN"; version="0.1.0"; sha256="0mqk8vgp6jdk7f0paa06yqlibkd1y3vs69pg7i9mkvxmda7p4nkq"; depends=[]; };
   BIEN = derive2 { name="BIEN"; version="1.2.5"; sha256="0s98n6zbf48vssd3h63k6kashcxv1kawcb026n0ngsfpc5dv6i48"; depends=[ape DBI doParallel fasterize foreach raster rgdal rgeos RPostgreSQL sf sp]; };
-  BIFIEsurvey = derive2 { name="BIFIEsurvey"; version="3.3-12"; sha256="1kphczvj3rxyjvi93cx2j714scvmmpqv5wrg5pdyy8l891jxsr89"; depends=[miceadds Rcpp RcppArmadillo]; };
+  BIFIEsurvey = derive2 { name="BIFIEsurvey"; version="3.4-15"; sha256="0dm2yq2mmpiksmd1r248dv64sn72gazlsrjjwb0bsblivk69s21j"; depends=[miceadds Rcpp RcppArmadillo]; };
   BIGDAWG = derive2 { name="BIGDAWG"; version="3.0.3"; sha256="1zbikvhyaksbddv2kz8nqkidjy4qsfp6a8wwyxjy5a0wcnqnwsxf"; depends=[haplo_stats httr XML]; };
   BIGL = derive2 { name="BIGL"; version="1.6.5"; sha256="1ksp88nspjd2si0kicv3j6fvb8i46phgpf6mw8ihfxkn9mrjbs2v"; depends=[ggplot2 MASS minpack_lm nleqslv numDeriv progress rgl robustbase scales]; };
   BINCOR = derive2 { name="BINCOR"; version="0.2.0"; sha256="0x2s82jql429shk70bhjdy9kamz8dz5ymsxj6kp8ga1711bpwyq6"; depends=[pracma]; };
-  BINtools = derive2 { name="BINtools"; version="0.1.0"; sha256="061g1790m3gi88kj1avgxdnpdvj6n2mg5dh17c7vx4gx5g5x2q2d"; depends=[BH combinat dplyr mvtnorm Rcpp RcppEigen RcppParallel rstan StanHeaders stringi tibble]; };
+  BINtools = derive2 { name="BINtools"; version="0.2.0"; sha256="0x97h0b2krdgrd0x266fidj77an3dq8mf9lnbas9112p4mhkmk58"; depends=[BH combinat dplyr mvtnorm Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders stringi tibble]; };
   BIOM_utils = derive2 { name="BIOM.utils"; version="0.9"; sha256="0xckhdvf15a62awfk9rjyqbi6rm7p4awxz7vg2m7bqiqzdll80p7"; depends=[]; };
-  BIOMASS = derive2 { name="BIOMASS"; version="2.1.7"; sha256="015gfn7b0viymrb06q33gwz8ljpiwawrdscb2q2bk0j6vi1gnncx"; depends=[data_table jsonlite minpack_lm proj4 rappdirs raster sp]; };
+  BIOMASS = derive2 { name="BIOMASS"; version="2.1.8"; sha256="18ypdqh5fc9a7yq8y5insadmvamrzrd9yn00g1cj1lxii0jn4r43"; depends=[data_table jsonlite minpack_lm proj4 rappdirs raster sp]; };
   BIOdry = derive2 { name="BIOdry"; version="0.8"; sha256="1zga8g50wjnnz2h9b3ak9q67qnl1f14cq6hvdzf9f84pphsnpasa"; depends=[ecodist nlme]; };
   BISdata = derive2 { name="BISdata"; version="0.1-1"; sha256="0h0fw2qhv0jq9h7mig7rfg5w9gc9q3hz6jl5n3v85yjkw5fxfdns"; depends=[]; };
   BKPC = derive2 { name="BKPC"; version="1.0.1"; sha256="17gmhf6qq8jn2xzkqvjq60xzy0slz6kgfpd0d6hlpnf30ww7q923"; depends=[kernlab]; };
@@ -370,7 +374,7 @@ in with self; {
   BPEC = derive2 { name="BPEC"; version="1.3.1"; sha256="0jvq56cq1wnhwd6wvg02hbx4b5vc2hz1lyxi63pl41rk0xva615a"; depends=[ape coda fields ggmap ggplot2 igraph maptools mvtnorm OpenStreetMap phytools sp]; };
   BPM = derive2 { name="BPM"; version="1.0.0"; sha256="17k2d1xjfz85ygx0xnh6yqca9nyypd32d7sbna3k33ynsjqay3x8"; depends=[limma]; };
   BPmodel = derive2 { name="BPmodel"; version="1.1.2"; sha256="1fmiz06ci3x4ljaap6famnz82mrf2rcdg4d282x6wghpy4yv4afa"; depends=[Deriv dplyr extraDistr gamlss gamlss_dist ggplot2 pracma]; };
-  BRACoD_R = derive2 { name="BRACoD.R"; version="0.0.1.2"; sha256="1p5fvmzkydask47hmz1fnss1sc1hrp1s7h28qn5q6fja0r52kzkz"; depends=[reticulate]; };
+  BRACoD_R = derive2 { name="BRACoD.R"; version="0.0.2.0"; sha256="1jxxrgq2s5fqflp9ac4fx51jhlx33pdwijsp4vq63y430k79vcpp"; depends=[reticulate]; };
   BRDT = derive2 { name="BRDT"; version="0.1.0"; sha256="1yv2fh4cc9h35l8cngpxnqa83a7bx79pr7c1gp9h84p1pigg8282"; depends=[]; };
   BRETIGEA = derive2 { name="BRETIGEA"; version="1.0.3"; sha256="0q4phggz6smzd294znr1fp0gskpcwdbd6hnvvl3q3z1h7cpf40sn"; depends=[]; };
   BRINDA = derive2 { name="BRINDA"; version="0.1.3"; sha256="1nq7wlwwlyfff0rn4yv8bws0ibd7wssb1jd6ccc7xvhdb2bqv9kc"; depends=[berryFunctions data_table dplyr Hmisc rlang]; };
@@ -416,14 +420,13 @@ in with self; {
   Barycenter = derive2 { name="Barycenter"; version="1.3.1"; sha256="0yhc0wwjqms569gnm8z2l9hgcbw8lyy437ynkij47pa4c1a1qvjy"; depends=[Rcpp RcppArmadillo]; };
   BaseSet = derive2 { name="BaseSet"; version="0.0.17"; sha256="1v5f8ixcnqngrhsfrydl7y48gmvmb5srs4xygydv4g4vpmd8gh0c"; depends=[dplyr magrittr rlang]; };
   BasketballAnalyzeR = derive2 { name="BasketballAnalyzeR"; version="0.5.0"; sha256="1bad287llg89smqg43lgz2hdkjg3l39mh4k82avgb52xwqp5gjxc"; depends=[circlize corrplot dendextend directlabels dplyr GGally ggnetwork ggplot2 ggplotify ggrepel gridExtra hexbin magrittr MASS network operators PBSmapping plyr readr rlang scales sna sp statnet_common stringr tidyr]; };
-  BatchExperiments = derive2 { name="BatchExperiments"; version="1.4.2"; sha256="0zvcpgzhbna6p37jlf57j7mzrvh5xs5w17janmv9v4210cpbzi1q"; depends=[backports BatchJobs BBmisc checkmate data_table DBI RSQLite]; };
+  BatchExperiments = derive2 { name="BatchExperiments"; version="1.4.3"; sha256="0g3vr2g4v968rwzja1nngji58960p2r494km8wia7x5w3y69p063"; depends=[backports BatchJobs BBmisc checkmate data_table DBI RSQLite]; };
   BatchGetSymbols = derive2 { name="BatchGetSymbols"; version="2.6.1"; sha256="0jm4bswczmha7p8xb78n4q3wxyjxmi7ya5zrfm0gb31g7r275wba"; depends=[crayon curl dplyr furrr future lubridate purrr quantmod rvest scales stringr tibble tidyr XML zoo]; };
-  BatchJobs = derive2 { name="BatchJobs"; version="1.8"; sha256="1zz4sspj596pijxlz321g0jy2rg9ki83j6fihbwisjwr66p2vk1m"; depends=[backports BBmisc brew checkmate data_table DBI digest RSQLite sendmailR stringi]; };
+  BatchJobs = derive2 { name="BatchJobs"; version="1.9"; sha256="0xsw25j2ks9bqgz189qdcyj8hzz93snknlik83nj04s6vy0w7aax"; depends=[backports BBmisc brew checkmate data_table DBI digest RSQLite sendmailR stringi]; };
   BayHaz = derive2 { name="BayHaz"; version="0.1-3"; sha256="08ilghlkgyma5758yw7mdgqycqcillqmx73knzzdlg2kzc77dvg6"; depends=[]; };
   BayLum = derive2 { name="BayLum"; version="0.2.1"; sha256="0h0x18al2rqs6wjf4jayc1qv8lkn7rvkbjmr5h1gcggn2c4byyjn"; depends=[ArchaeoPhases coda hexbin KernSmooth Luminescence rjags runjags]; };
   BaySIC = derive2 { name="BaySIC"; version="1.0"; sha256="023ji6q1nvksmhp3ny8ad39xxccc0a1rv9iaiaagwavgzzc0pjd9"; depends=[fields poibin rjags]; };
   BayesARIMAX = derive2 { name="BayesARIMAX"; version="0.1.1"; sha256="1rcfq0r8sqiqs65mbpcr8i4667cdb50k6bx6wdh9spr0djh8gfv0"; depends=[coda forecast]; };
-  BayesBEKK = derive2 { name="BayesBEKK"; version="0.1.0"; sha256="0fykcmf54820krwy7q573gmlcrx96i94knx7rgzc83i287lnpnfg"; depends=[coda MTS mvtnorm]; };
   BayesBP = derive2 { name="BayesBP"; version="1.1"; sha256="043msccrins1smaizmf7qc6q1cyjdzirw2ygnvi56lskib1cls7m"; depends=[iterators openxlsx]; };
   BayesBinMix = derive2 { name="BayesBinMix"; version="1.4.1"; sha256="1b18qg0mjbmrilwqffrq33gw04fzask2xgj1bp4cli51cjf2slf7"; depends=[coda doParallel foreach label_switching]; };
   BayesCACE = derive2 { name="BayesCACE"; version="1.2"; sha256="0rzjnhjvcnfy7dffq2jpybg6ybgkzfibz5kbd2qwbflj62h3v899"; depends=[coda forestplot lme4 metafor Rdpack rjags]; };
@@ -445,7 +448,7 @@ in with self; {
   BayesLogit = derive2 { name="BayesLogit"; version="2.1"; sha256="0w3bzk39sxdskwikcz5i0xwfsll4sqgkpr8vw8jvzlcy6dl3yhis"; depends=[]; };
   BayesMFSurv = derive2 { name="BayesMFSurv"; version="0.1.0"; sha256="1yxxzwjh1fgfh7qkzf9dfm3x0vbgb0v4p6bf6b5w14kvm06rzhkg"; depends=[coda FastGP MCMCpack mvtnorm Rcpp RcppArmadillo]; };
   BayesMRA = derive2 { name="BayesMRA"; version="1.0.0"; sha256="005pygpa8bmr153naxnag7kn876lqwq34d8pzbj954nivlxl4zaw"; depends=[fields igraph Matrix mvnfast Rcpp RcppArmadillo spam]; };
-  BayesMallows = derive2 { name="BayesMallows"; version="1.1.0"; sha256="10yfhbigf30pjywhjzpcjdzf2cz7lz1lhx026ss1154sinbqavg4"; depends=[cowplot dplyr ggplot2 HDInterval igraph PerMallows Rcpp RcppArmadillo Rdpack relations rlang sets]; };
+  BayesMallows = derive2 { name="BayesMallows"; version="1.1.1"; sha256="088j10ahvy2wi7m4h69cwzzrshgrbsdkqy5pcakra8p5n0vsi51j"; depends=[cowplot dplyr ggplot2 HDInterval igraph PerMallows Rcpp RcppArmadillo Rdpack relations rlang sets]; };
   BayesMassBal = derive2 { name="BayesMassBal"; version="1.0.0"; sha256="158vwfp5wn9g28fg48zmd95lfsr6flmcdm4igfw4cmgp4w0w69lq"; depends=[coda HDInterval LaplacesDemon Matrix pracma Rdpack tmvtnorm]; };
   BayesMixSurv = derive2 { name="BayesMixSurv"; version="0.9.1"; sha256="19kf39881q00pap9afwvvggk4s4w3qpz17b7065nig1mvk8dnp8r"; depends=[survival]; };
   BayesNI = derive2 { name="BayesNI"; version="0.1"; sha256="0zvr6rkb5zxgl53xby69d0j3yrfnlcmac6kwkxz77q5616w9dwq0"; depends=[]; };
@@ -469,7 +472,7 @@ in with self; {
   BayesSpec = derive2 { name="BayesSpec"; version="0.5.3"; sha256="17gchdijcjhbr2y4glbq9szjh4qmgivzh6p4fllh589da18nzjcr"; depends=[mvtnorm pscl trust]; };
   BayesSummaryStatLM = derive2 { name="BayesSummaryStatLM"; version="2.0"; sha256="1b4h6s3cb8904slyy2pq3dzy3941p87s32zacmpwrnp7yvwxzl3d"; depends=[bit ff mvnfast]; };
   BayesSurvival = derive2 { name="BayesSurvival"; version="0.2.0"; sha256="1kpp0dfcmk86grg13b817py49v071q6p0dh8z22g6x2i8zl1vdfi"; depends=[ggplot2 survival]; };
-  BayesTools = derive2 { name="BayesTools"; version="0.1.3"; sha256="0rbj503kxv0bgb2g05lwbl87xd8a2d6hh2z3pmv8ssd1wlh4s895"; depends=[bridgesampling coda extraDistr ggplot2 Rdpack runjags]; };
+  BayesTools = derive2 { name="BayesTools"; version="0.2.3"; sha256="1h9v47dy1g2xhplg3j24yrqwcfd3k3lrvh29ankv2mmk0mix6asc"; depends=[bridgesampling coda extraDistr ggplot2 mvtnorm Rdpack runjags]; };
   BayesTree = derive2 { name="BayesTree"; version="0.3-1.4"; sha256="0saca1ln582szqzc2c78z24b1lszzhc9hvsin73kb7r2dlg5ciii"; depends=[nnet]; };
   BayesTreePrior = derive2 { name="BayesTreePrior"; version="1.0.1"; sha256="13igmvw1wj8kzfijzsrhdqr52kv4vqrm91i71ay6f7jnkry3spaw"; depends=[]; };
   BayesTwin = derive2 { name="BayesTwin"; version="1.0"; sha256="026blnhihbx9bpd63mxhbp0kpvj0lwbj7mg72alyfr2jnrh1n3lp"; depends=[coda foreign matrixStats rjags]; };
@@ -486,7 +489,7 @@ in with self; {
   BayesianTools = derive2 { name="BayesianTools"; version="0.1.7"; sha256="0330bbnny35h4gsmwg31p3n3i511wrckzmp174ydm55pvsdkhjdg"; depends=[bridgesampling coda DHARMa ellipse emulator gap IDPmisc MASS Matrix msm mvtnorm numDeriv Rcpp tmvtnorm]; };
   Bayesiangammareg = derive2 { name="Bayesiangammareg"; version="0.1.0"; sha256="0b0fqmig7vgmlrq2884q0apfd89nn5k4dj8rqjizkkbw4qpzmylb"; depends=[mvtnorm]; };
   Bayesiantreg = derive2 { name="Bayesiantreg"; version="1.0"; sha256="0m8snwhjskwxdm0a2wsmf1j7d0xxvg4sh0ix64zss71l610wica7"; depends=[MASS Matrix mvtnorm]; };
-  Bayesrel = derive2 { name="Bayesrel"; version="0.7.4"; sha256="1mjfjyvzacbc4gmg69vr6mdkxl9133dl13czy4dvf6phgfwqgz2b"; depends=[coda LaplacesDemon lavaan MASS progress Rcpp RcppArmadillo Rdpack]; };
+  Bayesrel = derive2 { name="Bayesrel"; version="0.7.4.1"; sha256="058sm8kb2y1frwcrkfammb6zqf66jq0rwykgy4qg1i21xr0vaw2d"; depends=[coda LaplacesDemon lavaan MASS progress Rcpp RcppArmadillo Rdpack]; };
   BcDiag = derive2 { name="BcDiag"; version="1.0.10"; sha256="1gyinmx5wn2kk70hiy28ghilkhfirfjbfqdrqq5h3wfb4khnq6pz"; depends=[fabia]; };
   Bchron = derive2 { name="Bchron"; version="4.7.6"; sha256="1s8bx9a5rpcrw0msnjf565crz3d2fykvy5fj1chbqxzjh7qm865w"; depends=[checkmate coda dplyr ggforce ggplot2 ggridges magrittr MASS mclust purrr scales stringr]; };
   BeSS = derive2 { name="BeSS"; version="2.0.3"; sha256="09zxpzcaj13fn38cwd0xk0254aphb3jn1wdwn9hiq9vapfsgn0dx"; depends=[glmnet Matrix Rcpp RcppEigen survival]; };
@@ -498,7 +501,7 @@ in with self; {
   Bestie = derive2 { name="Bestie"; version="0.1.4"; sha256="1w8d1zrxp5v0wlldzj0kmcrdwyn5f2klbdpkhd79hvpf3lpq6h68"; depends=[BiDAG mvtnorm Rcpp]; };
   BetaBit = derive2 { name="BetaBit"; version="1.4"; sha256="11cvl9m20ycc0zsxbdapjflgsiaxx4dzaygjhv948adjfi5fycbn"; depends=[digest]; };
   BetaPASS = derive2 { name="BetaPASS"; version="1.1-1"; sha256="17q1bfmijv38zyaj5fxlylf5zmkqry4ca9wm5km6zpksgsg2kjjq"; depends=[betareg ggplot2 pbapply]; };
-  BetterReg = derive2 { name="BetterReg"; version="0.1.0"; sha256="0v9vw77h469352w0apy3ybwcjq64qdrizlrlmxk8c1x9kc624264"; depends=[car dplyr]; };
+  BetterReg = derive2 { name="BetterReg"; version="0.2.0"; sha256="08qafm8j0bbh6qywyq6dr1j204n9cxrpyy2fh74mbgm3xknazxsc"; depends=[car dplyr]; };
   BeviMed = derive2 { name="BeviMed"; version="5.8"; sha256="12ngw3b05mqsf95svvkk5s8w0fs1yfbpbfk8x9a9v2yva5n65y7a"; depends=[Matrix Rcpp]; };
   BeyondBenford = derive2 { name="BeyondBenford"; version="1.4"; sha256="04jdx35955g44v2is6zxfw1gip7zh3li8divc7iy5hl0jrshfhv3"; depends=[ggplot2]; };
   Bhat = derive2 { name="Bhat"; version="0.9-10"; sha256="1vg4pzrk3y0dk1kbf80mxsbz9ammkysh6bn26maiplmjagbj954v"; depends=[]; };
@@ -512,8 +515,9 @@ in with self; {
   BiasedUrn = derive2 { name="BiasedUrn"; version="1.07"; sha256="13i2lgfnjhlbbm2yxfc2l5hswqw6x03pwba5csjmirv8kpjw4xr3"; depends=[]; };
   BibPlots = derive2 { name="BibPlots"; version="0.0.8"; sha256="0zvbyh8spr0ywj64b2rc8jcq4fgn87858km4mkkh17g30ympg767"; depends=[]; };
   BifactorIndicesCalculator = derive2 { name="BifactorIndicesCalculator"; version="0.2.2"; sha256="1vnwksw0j4lc2knlcmm5748pf4d7r44sn34s1mrv9p50hlnkk85p"; depends=[lavaan mirt mnormt MplusAutomation tidyr]; };
+  BigDataStatMeth = derive2 { name="BigDataStatMeth"; version="0.99.32"; sha256="0iz6pzlhkziwdwv80sy9zcxfvkxxjhqmgn7lk7lv1mkhywqkd9jk"; depends=[beachmat BH data_table Rcpp RcppEigen RcppParallel RCurl rhdf5 Rhdf5lib RSpectra]; };
   BigQuic = derive2 { name="BigQuic"; version="1.1-11"; sha256="1dxzkj26hd05mi02i35k7dknlikjfbsgvjrqwf42k3kjpf501xh4"; depends=[Matrix Rcpp scalreg]; };
-  BigVAR = derive2 { name="BigVAR"; version="1.0.6"; sha256="03d5a61clkngq67mkf2pyjj3k633kxp7g37myfplbxi55bdfmdlz"; depends=[lattice MASS Rcpp RcppArmadillo RcppEigen zoo]; };
+  BigVAR = derive2 { name="BigVAR"; version="1.1.0"; sha256="0a9c9c71ymw498pzz2q5bwywcg9fa3hvjmbcn1flrmpzwr7cv6yx"; depends=[abind lattice MASS Rcpp RcppArmadillo RcppEigen zoo]; };
   BimodalIndex = derive2 { name="BimodalIndex"; version="1.1.9"; sha256="1m1dcj0ryjicaqjlkch7aymsklmvjvn2dvnbssi1cpi54bzn8l7g"; depends=[mclust oompaBase]; };
   BinGSD = derive2 { name="BinGSD"; version="0.0.1"; sha256="0ygr5na7s82xa6vv9f3j6ns5sfhdacyykl1fg422lpkwbss39dnn"; depends=[mvtnorm]; };
   BinMat = derive2 { name="BinMat"; version="0.1.5"; sha256="1brgv0zmprvwx6x670mmxxlk50nh4ds63bip48mlh0p1qv8pm9db"; depends=[ggpubr MASS pvclust tibble]; };
@@ -566,12 +570,13 @@ in with self; {
   Bmix = derive2 { name="Bmix"; version="0.6"; sha256="17swhn2p7jv29fkspacg2v181lkc9yd3xww2fx31xs8hsndcm857"; depends=[mvtnorm]; };
   BoSSA = derive2 { name="BoSSA"; version="3.7"; sha256="0qhcar3grp6l6islbjc27jqvgh37kkdi0nql6plsqwilldv3kis6"; depends=[ape jsonlite phangorn plotrix RSQLite]; };
   BoardGames = derive2 { name="BoardGames"; version="1.0.0"; sha256="1w3ghs29qlnjrd46lvv055snclwwy6a22fgdqszqm377w4favnhm"; depends=[]; };
+  Bodi = derive2 { name="Bodi"; version="0.1.0"; sha256="1z3xamj4qh3g5asrl3kbvcnx3r66mch34d0hlz9vg0498s9fwn6s"; depends=[gbm mgcv opera ranger rpart]; };
   Bolstad = derive2 { name="Bolstad"; version="0.2-41"; sha256="0rrx254wmr4i57h097ahba151chm8l2287qfg01p1lg47znld21h"; depends=[mvtnorm]; };
   Bolstad2 = derive2 { name="Bolstad2"; version="1.0-28"; sha256="08cfadvl9jl9278ilsf8cm2i2a3i8zsa2f3vjzw2nlv85fwi2c7v"; depends=[]; };
   BoltzMM = derive2 { name="BoltzMM"; version="0.1.4"; sha256="17nsjr2y8nniaxd6f13g85gb9rshar72qqp45yh2ygg4zrx1d226"; depends=[BH Rcpp RcppArmadillo]; };
   BonEV = derive2 { name="BonEV"; version="1.0"; sha256="0lmgrg53b0abb5hidyjjmwn7lf2ani84k9fil7g6j6mdajjhh1b7"; depends=[qvalue]; };
   BondValuation = derive2 { name="BondValuation"; version="0.1.0"; sha256="1sgnf5a6rm1br6i82bmp7s044012bwfxa9yb6bjkq8kr83mf7i6v"; depends=[Rcpp timeDate]; };
-  BoneProfileR = derive2 { name="BoneProfileR"; version="2.1"; sha256="1wdwf15x6rz7dciqyyqjlgzgqxas9lzmg3410qhbvcslf6w9gq0y"; depends=[HelpersMG imager knitr rmarkdown shiny]; };
+  BoneProfileR = derive2 { name="BoneProfileR"; version="2.2"; sha256="1x51x27y7jnln9hc49ri0csh0whpwphdfadaf1gpzx7g7q37yfgv"; depends=[HelpersMG imager knitr rmarkdown shiny]; };
   BoolFilter = derive2 { name="BoolFilter"; version="1.0.0"; sha256="14z4fzf8p4wgi939qs6v39a3xizccjcx7j4szsydllpkvxbwggbw"; depends=[BoolNet Rlab]; };
   BoolNet = derive2 { name="BoolNet"; version="2.1.5"; sha256="11fysc39vfk3zb9qklryi8gl42c3hqgzlvci4jj0zkqnm0v9amqk"; depends=[igraph XML]; };
   Boom = derive2 { name="Boom"; version="0.9.7"; sha256="0zw5i6xigpg8jnk4k2w8iqnxlbgk8zzd5dmfmi5wjc153vgssk12"; depends=[MASS]; };
@@ -583,6 +588,7 @@ in with self; {
   Boptbd = derive2 { name="Boptbd"; version="1.0.5"; sha256="1p786avc37yq5g01zh6sqx7b1rvbxrh6gbxsad4bdvr12cjdsss6"; depends=[igraph MASS Matrix]; };
   Boruta = derive2 { name="Boruta"; version="7.0.0"; sha256="0y2w4wb45kfnzrxcrdsiwgal9fsnlr3wad1sqdc70qv8gp921xbg"; depends=[ranger]; };
   BosonSampling = derive2 { name="BosonSampling"; version="0.1.3"; sha256="0dxvjdvzv2b3763x4wrkw02q57l42286w9bg2xhcngmcpdhnkg51"; depends=[Rcpp RcppArmadillo]; };
+  BoutrosLab_plotting_general = derive2 { name="BoutrosLab.plotting.general"; version="7.0.3"; sha256="07vfaxgxnzj3dlv116x32bndzqmdbpc5szpjw73a9km8f2fkkb2k"; depends=[cluster e1071 gridExtra gtable hexbin lattice latticeExtra MASS]; };
   BradleyTerry2 = derive2 { name="BradleyTerry2"; version="1.1-2"; sha256="0vss3ib74cz2zn1afmrvllawghj9z2ay4x1ysvk4rqvjmiia4a2i"; depends=[brglm gtools lme4 qvcalc]; };
   BrailleR = derive2 { name="BrailleR"; version="0.32.1"; sha256="0hnwfn3z9d22jp9xqgz7sz3yqlay863ys9czvd07xyscqpzq973k"; depends=[devtools dplyr extrafont ggplot2 gridGraphics gridSVG hunspell knitr magrittr mathjaxr moments nortest reticulate rlang rmarkdown roloc rolocISCCNBS whisker XML xtable]; };
   BrainCon = derive2 { name="BrainCon"; version="0.1.0"; sha256="10c76l14kdvcyfhph5zsrn4ayh0x454cxbn1v85jamcalp610n69"; depends=[glmnet MASS]; };
@@ -600,7 +606,7 @@ in with self; {
   BurStFin = derive2 { name="BurStFin"; version="1.02"; sha256="16w2s0bg73swdps9r0i8lwvf1najiqyx7w7f91xrsfhmnqkkjzka"; depends=[]; };
   BurStMisc = derive2 { name="BurStMisc"; version="1.1"; sha256="0cyi42zkn2dby162x9f95b3hpqxbzx25s7nahb4p86r60xj3a5c0"; depends=[]; };
   BusinessDuration = derive2 { name="BusinessDuration"; version="0.2.0"; sha256="17923n1r3n8kp7qqzr2dv8ffax355yyc3b9f6mv2hxy6k31hrrb8"; depends=[chron]; };
-  BuyseTest = derive2 { name="BuyseTest"; version="2.3.10"; sha256="19mp6hyj4fdq7gmpd9jfg6rgf7mazbgxzpf9fs258s91pm35vljp"; depends=[data_table doParallel foreach ggplot2 lava prodlim Rcpp RcppArmadillo riskRegression]; };
+  BuyseTest = derive2 { name="BuyseTest"; version="2.3.11"; sha256="1qn3nb8099rr511wrq7mb35hdm25hkyhfk22rmpw9z1md72xg9qr"; depends=[data_table doParallel foreach ggplot2 lava prodlim Rcpp RcppArmadillo riskRegression]; };
   Bvalue = derive2 { name="Bvalue"; version="1.0"; sha256="17zlllzjrcq4grggal3hlg384990n62wnflr2g21fa6hcnglwy7d"; depends=[]; };
   BwQuant = derive2 { name="BwQuant"; version="0.1.0"; sha256="0pna0ppj9hkxpc2mbyy0ss7zrl5y736h5xsfkhmqr0389vmgibrj"; depends=[KernSmooth nleqslv quantreg]; };
   C443 = derive2 { name="C443"; version="3.2.3"; sha256="0zjnwkn17213x2zhflmmrplp6kr8zg04pfynpkwsgmf4rqyfyjvx"; depends=[cluster ggplot2 gridExtra igraph MASS partykit plyr qgraph RColorBrewer reshape2 rpart]; };
@@ -609,14 +615,14 @@ in with self; {
   CADFtest = derive2 { name="CADFtest"; version="0.3-3"; sha256="06bwv728ckalzibxginzfica24w18m4g87i0i064m3q89ghmnlqm"; depends=[dynlm sandwich tseries urca]; };
   CADStat = derive2 { name="CADStat"; version="3.0.8"; sha256="0wdglw1vyd5gz70r9ma0mwshvizv39nb4ahp8pvr70c4qqzsfhc0"; depends=[bio_infer car gdata gmodels JavaGD JGR lattice MASS quantreg rJava rpart XML]; };
   CAISEr = derive2 { name="CAISEr"; version="1.0.16"; sha256="08br6hdpgf9y2fix299diwd8r3q4gylpbzll4knpxq0vi18a3hz3"; depends=[assertthat ggplot2 gridExtra pbmcapply]; };
-  CALANGO = derive2 { name="CALANGO"; version="1.0.8"; sha256="0i9n03km29bnhikk0a4dsh4pdchbynqmcvwzply7y2fgzs9bfwx4"; depends=[ape assertthat BiocManager dendextend DT ggplot2 heatmaply htmltools htmlwidgets knitr nlme pbmcapply pkgdown plotly rmarkdown taxize]; };
+  CALANGO = derive2 { name="CALANGO"; version="1.0.10"; sha256="09syfslac2bhw8dia9c64xkfqsr3j0nr134pq9gvj7jvy5b3dqbr"; depends=[ape assertthat BiocManager dendextend DT ggplot2 heatmaply htmltools htmlwidgets knitr nlme pbmcapply pkgdown plotly rmarkdown taxize]; };
   CALF = derive2 { name="CALF"; version="1.0.17"; sha256="021x1gp0493g6qnfih755c0xcddz77i3p22bgjlx1lpzgqmrgrki"; depends=[data_table ggplot2]; };
   CALIBERrfimpute = derive2 { name="CALIBERrfimpute"; version="1.0-6"; sha256="0ghi6pkv9ki0iz4lkli3hkrsk6xiph2ha2pij6dg4wi7mcjdhsbi"; depends=[mice mvtnorm randomForest]; };
   CAMAN = derive2 { name="CAMAN"; version="0.74"; sha256="0d932fbqzlxlhn7m8zfx7wr02pc7fm8398rym1jh2cdy2fk5im08"; depends=[mvtnorm sp]; };
   CAMML = derive2 { name="CAMML"; version="0.1.1"; sha256="06xszdr3v41qqd2l0s3kdbzwn03054imazndplbihx5a7032gxvj"; depends=[AnnotationDbi dplyr edgeR MASS Matrix org_Hs_eg_db org_Mm_eg_db Seurat SeuratObject VAM]; };
   CANSIM2R = derive2 { name="CANSIM2R"; version="1.14.1"; sha256="1dnzbd9lyqj3w80lx12qxcsbmv8wy6hxknyi5ijp99cfv7kaq1kc"; depends=[downloader Hmisc reshape2]; };
   CARBayes = derive2 { name="CARBayes"; version="5.2.5"; sha256="0lrir2qqpignndvf8xjpyiwh9fc9iw2b0bin5vlxh88krhbkyx9f"; depends=[CARBayesdata coda dplyr GGally leaflet MASS MCMCpack Rcpp rgdal sp spam spdep truncnorm]; };
-  CARBayesST = derive2 { name="CARBayesST"; version="3.2.1"; sha256="0gbn11lmfax6frc70dyl667r4afn36zrjrxxky3rvmry4apqpwl3"; depends=[CARBayesdata coda dplyr GGally ggplot2 gridExtra gtools leaflet MASS matrixStats MCMCpack Rcpp rgdal sp spam spdep truncdist truncnorm]; };
+  CARBayesST = derive2 { name="CARBayesST"; version="3.2.2"; sha256="1xpyk2y1qjaaqvxhbhxbkx97kfddy24cx81my1100v5i8mabfayq"; depends=[CARBayesdata cascsim coda dplyr GGally ggplot2 gridExtra gtools leaflet MASS matrixStats MCMCpack Rcpp rgdal sp spam spdep truncnorm]; };
   CARBayesdata = derive2 { name="CARBayesdata"; version="2.2"; sha256="06pkhmlkp4hl7c6bgarhab6z640h1xvgw86q1ihipbc432an4gvl"; depends=[shapefiles sp]; };
   CARE1 = derive2 { name="CARE1"; version="1.1.0"; sha256="1zwl4zv60mrzlzfgd7n37jjlr0j918a8ji36n94s5xw8wwipiznw"; depends=[]; };
   CARLIT = derive2 { name="CARLIT"; version="1.0"; sha256="04kpjfps4ydf8fj75isqp16g1asdsyf8nszhbfkpw1zxkrmiksyp"; depends=[]; };
@@ -624,10 +630,9 @@ in with self; {
   CARS = derive2 { name="CARS"; version="0.2.2"; sha256="18l2bhfwma24q1zg1y1xmlcmnbzjqmmny3h7s179kslagnh3kmsj"; depends=[np]; };
   CARlasso = derive2 { name="CARlasso"; version="0.1.2"; sha256="05r5n5bh0fpwfigr6czh9pg29zyrw73idfvs9qm8vr3dvcmvc42r"; depends=[coda ggplot2 ggraph igraph MASS Matrix Rcpp RcppArmadillo RcppProgress]; };
   CASMAP = derive2 { name="CASMAP"; version="0.6.1"; sha256="1447d4gflan2093fb68inb2ysx5svb9vhnjc7lnkgpjsiam4p8yy"; depends=[Rcpp]; };
-  CAST = derive2 { name="CAST"; version="0.5.1"; sha256="0ph71nwp6zibmgy324aqqcwx2p2m75560q2nglm6rg8bww9wib6x"; depends=[caret data_table FNN ggplot2 lattice plyr reshape zoo]; };
+  CAST = derive2 { name="CAST"; version="0.6.0"; sha256="1v20cdldfyli3bn0m9dpfz8apapzqvxy03r1hk2pbv65lqpair4f"; depends=[caret data_table FNN ggplot2 lattice plyr reshape zoo]; };
   CATT = derive2 { name="CATT"; version="2.0"; sha256="12xdspl1gbf51snyrl44nn7alfyccdfihibkgvzr66lrby8b8fhg"; depends=[]; };
   CATTexact = derive2 { name="CATTexact"; version="0.1.1"; sha256="07ciln6cfvqya7dwwn6mhd9lk2833hypm4badizgfi2k749d1p00"; depends=[]; };
-  CATkit = derive2 { name="CATkit"; version="3.3.3"; sha256="01q2ssyg0jcjgahaslfgpakjsv2wil654lc6xrg5xbbrkx7ccb90"; depends=[assertr CombMSC Hmisc magic MASS png rtf season signal]; };
   CAinterprTools = derive2 { name="CAinterprTools"; version="1.1.0"; sha256="07rvi91ysqyfwagmip0cnqjahv1n8slicd5hznqf5v3l841xh7p7"; depends=[ca classInt cluster FactoMineR ggplot2 ggrepel Hmisc RcmdrMisc reshape2]; };
   CAvariants = derive2 { name="CAvariants"; version="5.6"; sha256="1rv3r27m43q8z9hiac5fj3kx77j0sfmcgxwcl6mdfgx0jwq7pi3s"; depends=[ggforce ggplot2 ggrepel gridExtra plotly]; };
   CB2 = derive2 { name="CB2"; version="1.3.4"; sha256="0431bd956hmkrhs9x845vjwbzzwzd7n9nfx9y95mv6qv84zd4wv2"; depends=[dplyr ggplot2 glue magrittr metap pheatmap R_utils Rcpp RcppArmadillo readr stringr tibble tidyr]; };
@@ -649,13 +654,13 @@ in with self; {
   CDNmoney = derive2 { name="CDNmoney"; version="2012.4-2"; sha256="1isbvfq0lygs75y1hn3klqms8q7g1xbkcr8fgj75h1c99d4khvm6"; depends=[]; };
   CDROM = derive2 { name="CDROM"; version="1.1"; sha256="0mvhqs4m8jp39x1rk31a1sqqmfq1avcnasgh8bizlyxx62igmi1b"; depends=[]; };
   CDVineCopulaConditional = derive2 { name="CDVineCopulaConditional"; version="0.1.1"; sha256="1wyy324vrwipdsq0p021bj1gdhyxg09g3dkw8wv5v6rfrrs84m9k"; depends=[combinat VineCopula]; };
-  CDatanet = derive2 { name="CDatanet"; version="0.0.1"; sha256="05nh56w18bf1yk2i74ppslvd3307b6pqif7bbjcgm8q6nha2mrfq"; depends=[ddpcr Formula formula_tools Matrix Rcpp RcppArmadillo RcppProgress]; };
+  CDatanet = derive2 { name="CDatanet"; version="1.0.1"; sha256="1ah992z1icmwm04m812fvhdgsjibvbkp4i2gm6fd0v10vr9iczg8"; depends=[ddpcr Formula formula_tools Matrix Rcpp RcppArmadillo RcppDist RcppProgress]; };
   CEC = derive2 { name="CEC"; version="0.10.3"; sha256="0yypiy5xxrlckly4qpnf1wxg4hwza4y4da6y0jz4ldz918vskaci"; depends=[]; };
   CEDA = derive2 { name="CEDA"; version="1.0.2"; sha256="1nsflq7bnrakf564cazskdmba5xfamjyvm0gd5ws51qlxl1ajxv1"; depends=[ggplot2 limma mixtools]; };
   CEDARS = derive2 { name="CEDARS"; version="1.90"; sha256="1fngyc08kvilfd2d75gjg0s6c5zvjywym35sk568yzxnsz89b7yy"; depends=[fastmatch jsonlite mongolite readr shiny udpipe]; };
   CEGO = derive2 { name="CEGO"; version="2.4.2"; sha256="00nc6c1b6ylqlh6hm8lh8nasz7q12pqckdqbf1yq21khki9ldbll"; depends=[DEoptim fastmatch MASS Matrix ParamHelpers quadprog]; };
   CENFA = derive2 { name="CENFA"; version="1.1.1"; sha256="0b1zpazbqynlnmf8k25r5bjmidymskqc96xpmwqkl23xlz1f2x3s"; depends=[doSNOW foreach magrittr pbapply raster Rcpp snow sp]; };
-  CEOdata = derive2 { name="CEOdata"; version="0.2"; sha256="1zc69acy2jvawbv43wg52gnak3klavcr1yzab6rbabav5vk53vhn"; depends=[dplyr haven jsonlite stringr urltools]; };
+  CEOdata = derive2 { name="CEOdata"; version="1.0.3"; sha256="0cj01qlalpkdk3sdb9434dkf5qakixa3pvnc5pyvfapgpx5n7wp7"; depends=[dplyr haven jsonlite stringr urltools]; };
   CEoptim = derive2 { name="CEoptim"; version="1.2"; sha256="0bbjrhl63cbx1rsr5gclbqhjpnjid8ynk2ygaf1chf8z381n7650"; depends=[MASS msm sna]; };
   CFAcoop = derive2 { name="CFAcoop"; version="1.0.0"; sha256="1qnqbqh3p8grp6mxhqrwfm1nf1sxhqa6pjxkpf7vk9nx40g815gn"; depends=[Hmisc]; };
   CFC = derive2 { name="CFC"; version="1.1.2"; sha256="0k0685cgsd0lm7id6h216r4x236xn3nqj4h906qn2i0kvwmx4nda"; depends=[abind doParallel foreach Rcpp RcppArmadillo RcppProgress survival]; };
@@ -664,7 +669,7 @@ in with self; {
   CGE = derive2 { name="CGE"; version="0.3.3"; sha256="0q1fv62159cx9z25488fxf6a6fi1m59hdh60ldypsjwil77q0s3i"; depends=[]; };
   CGGP = derive2 { name="CGGP"; version="1.0.3"; sha256="1g70hjpc33dnr6yw42kjhy9ngba05qzk5mr7md6pqhmbx0ykhr6g"; depends=[Rcpp RcppArmadillo]; };
   CGManalyzer = derive2 { name="CGManalyzer"; version="1.3"; sha256="1wmp5im18s447rjkj891skrm7558xkqlbx43n9hyxiqg49zq1ng9"; depends=[]; };
-  CGNM = derive2 { name="CGNM"; version="0.1.1"; sha256="0i43pqvyz1brzlypmqsiynw997x8rh8im65yvh4zlnh3bjwrvcrs"; depends=[ggplot2]; };
+  CGNM = derive2 { name="CGNM"; version="0.3.1"; sha256="1hls817p0c5lh0zhg93h7gphl1nch44xik5gp10ciabl57zyhr8r"; depends=[ggplot2 MASS]; };
   CGP = derive2 { name="CGP"; version="2.1-1"; sha256="05a6gydlb99yk2jpy2hyg4c30hqyp8dg2i9dmbjc1n5cmgpg3im9"; depends=[]; };
   CGPfunctions = derive2 { name="CGPfunctions"; version="0.6.3"; sha256="12l3ww9wfrk8i0a63wv5h4ayqj6fj5fz5yvkiskvaaida32vds2m"; depends=[BayesFactor DescTools dplyr forcats ggmosaic ggplot2 ggrepel paletteer partykit purrr rlang scales sjstats stringr tidyr]; };
   CHCN = derive2 { name="CHCN"; version="1.5"; sha256="18n8f002w0p0l1s5mrrsyjddn10kdbb6b7jx1v9h1m81ifdbv0xb"; depends=[bitops RCurl]; };
@@ -681,19 +686,19 @@ in with self; {
   CIEE = derive2 { name="CIEE"; version="0.1.1"; sha256="03kq9cp0v41y0r2l9j5imcrsail2xsvlzhhhsrw454d4s9gqdql9"; depends=[survival]; };
   CIFsmry = derive2 { name="CIFsmry"; version="1.0.1.1"; sha256="1m2m2zvg9ghy3bm2sll7jp4xm2vw58kc5xaxd2c9k82771m3a4j0"; depends=[]; };
   CIM = derive2 { name="CIM"; version="1.0.0"; sha256="02l8rspiiv6vj6k0q6wpiazny3f2s4dsivsm7zb9cm90qh1rv2d7"; depends=[]; };
-  CIMTx = derive2 { name="CIMTx"; version="1.1.0"; sha256="0091qdh10nxvzm4xxw0vw6k5pa7pi5mdfi5b9msfqfvzq00gyjfx"; depends=[arm BART cowplot doParallel dplyr foreach ggplot2 magrittr Matching metR mgcv nnet stringr SuperLearner tidyr tmle twang WeightIt]; };
   CINID = derive2 { name="CINID"; version="1.3-0"; sha256="06n5bwjr44rx0m12xradzaca26rvh01mlimbn0gr3jfzkmyj2f1g"; depends=[]; };
-  CINNA = derive2 { name="CINNA"; version="1.1.55"; sha256="0xw3ndjy262ljv6mk43ysb7mf4m02kcb5kzz1gzdxdwhj3v7ylgb"; depends=[centiserve circlize corrplot dendextend factoextra FactoMineR GGally ggplot2 igraph intergraph network pheatmap plyr qdapTools Rtsne sna viridis]; };
+  CINNA = derive2 { name="CINNA"; version="1.2.0"; sha256="0pijsr3ciqi9i5pi3ppc8zz573lzwly0mwglz2xdfkwmwy2bzdqi"; depends=[centiserve circlize corrplot dendextend factoextra FactoMineR GGally ggplot2 igraph intergraph network pheatmap plyr qdapTools Rtsne sna viridis]; };
   CINmetrics = derive2 { name="CINmetrics"; version="0.1.0"; sha256="1csh22b7ap7isnrjak7yp32hasxq8x4j094i9shrnzsz6sxcmc28"; depends=[]; };
   CIS_DGLM = derive2 { name="CIS.DGLM"; version="0.1.0"; sha256="0c7jxfb8gaklf6p83152wb2nszm2p806p3n523xajf4ha368d3kq"; depends=[dglm dplyr ggplot2 RColorBrewer]; };
   CISE = derive2 { name="CISE"; version="0.1.0"; sha256="10mbi4v8dfdc9ngnrrmxpng8fnig5m8nv7799jksbcf6pnj8yv51"; depends=[far gdata glmnet MASS Matrix rARPACK]; };
-  CITAN = derive2 { name="CITAN"; version="2021.11-1"; sha256="15dy0n8yms8c01wp38wnn6541a9gq8q7x4sb76ggm9y4bldj6xj3"; depends=[agop DBI hash RSQLite stringi]; };
+  CITAN = derive2 { name="CITAN"; version="2022.1.1"; sha256="09m9f6s9y7ygbixcymg93vsrqz5jsjp968cjhxnj1v73hzalk168"; depends=[agop DBI RSQLite stringi]; };
   CIplot = derive2 { name="CIplot"; version="1.0"; sha256="0hx3dn7d8hvsh75747d9046iqriy3bjnchph8xllnvlhkrm4di1f"; depends=[MASS multcomp]; };
   CJAMP = derive2 { name="CJAMP"; version="0.1.1"; sha256="0caznbqy5hsp7h0gkdbv966vfpq8z1khvbizi4vpc9mxck1nqc99"; depends=[optimx]; };
   CKAT = derive2 { name="CKAT"; version="0.1.0"; sha256="03vxl91z2mhi1h0xgcwhw63mvj56156zgphm16ijdff63pqxaryr"; depends=[CompQuadForm]; };
   CKLRT = derive2 { name="CKLRT"; version="0.2.3"; sha256="1d8sg3ncns3fpjaghz1h1z9nfrl31v09xijrzzsias8xjrpi191b"; depends=[MASS mgcv nlme Rcpp RcppEigen]; };
   CKMRpop = derive2 { name="CKMRpop"; version="0.1.3"; sha256="0d4sai2h2cfzh4hbg8yh7wqb459j948j3s0m218d3gcippm22jpb"; depends=[dplyr ggforce ggplot2 ggraph igraph magrittr purrr Rcpp readr stringr tibble tidygraph tidyr vroom]; };
   CLA = derive2 { name="CLA"; version="0.96-2"; sha256="0cfa7zm13bin8hx8ki20kaz8fvkwdaiyl0pjghhld8vr5d3289kq"; depends=[]; };
+  CLAST = derive2 { name="CLAST"; version="1.0.0"; sha256="0s90xy9mscfyc9ss84zn771pczbwdrgpfri92h1pdlbs3kw5axp3"; depends=[]; };
   CLME = derive2 { name="CLME"; version="2.0-12"; sha256="161maq22r8wbd6c2dc8b47mh6991vc4iqmjr8g6yqb5gcwca8zhg"; depends=[isotone lme4 MASS nlme openxlsx prettyR shiny stringr]; };
   CLONETv2 = derive2 { name="CLONETv2"; version="2.2.1"; sha256="1axkkagydpxdrz7ypw3x7bavaxk34lzj9bsdn1nah9nfr3cdia6h"; depends=[arules dbscan ggplot2 ggrepel sets]; };
   CLUSTShiny = derive2 { name="CLUSTShiny"; version="0.1.0"; sha256="19mh5g1ylvlab4xjxw7girxk9zkpxxczhbfijf11b592hbw0qxqk"; depends=[cluster dplyr klaR MASS psycho rmarkdown shiny]; };
@@ -712,7 +717,7 @@ in with self; {
   CNOGpro = derive2 { name="CNOGpro"; version="1.1"; sha256="1frsmhfqrlg1vsa06cabqmrzngq4p5gqwyb9qgnsgg81a9ybm6l8"; depends=[seqinr]; };
   CNPS = derive2 { name="CNPS"; version="1.0.0"; sha256="046jd4nh54qaqm85m74nvgj6x83mf8sd76y4dxydy4ydrk4cvz6p"; depends=[]; };
   CNVRG = derive2 { name="CNVRG"; version="1.0.0"; sha256="0xr2c5yc9g8hqw5dy5k2y0pm54sdrrbafsc3cpafpwaf803vdrbk"; depends=[BH Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders tibble vegan]; };
-  CNVScope = derive2 { name="CNVScope"; version="3.6.0"; sha256="1p1kn48ib11f5f7k4c7iy92vplv9csgyabgmxcy3bnv9q20b10an"; depends=[biomaRt data_table doParallel dplyr foreach GenomicInteractions ggplot2 jointseg magrittr Matrix matrixStats numbers OpenImageR plyr RCurl reshape2 rtracklayer shiny stringr tidyr]; };
+  CNVScope = derive2 { name="CNVScope"; version="3.7.2"; sha256="03jkivg9jr2dpkf739cba3dsjf56gwvcpq3nqhp42kmmgn50rpiq"; depends=[biomaRt data_table doParallel dplyr foreach GenomicInteractions ggplot2 Hmisc jointseg magrittr Matrix matrixStats OpenImageR plyr RCurl reshape2 rtracklayer shiny stringr tidyr]; };
   CNprep = derive2 { name="CNprep"; version="2.0"; sha256="08dpjikx3ldqzw2kwb12q0kbw15qzl09srjdfs0sz9si0x6bfxs6"; depends=[mclust rlecuyer]; };
   CNull = derive2 { name="CNull"; version="1.0"; sha256="14hy86zg18hqxi63bfzrpkz70yrzfxp2v2pva5xnrvx9dmlyz820"; depends=[ape Matrix PhyloMeasures Rcpp]; };
   COBRA = derive2 { name="COBRA"; version="0.99.4"; sha256="1r1cw12d7c148pcgcg08bfsr1q1s736kfpyyss6b4d7ny7wgmqy4"; depends=[]; };
@@ -751,6 +756,7 @@ in with self; {
   CSESA = derive2 { name="CSESA"; version="1.2.0"; sha256="0pv6iabq1w22qbhlsbckdvva4n7igpzrjnrahmq83a6wxgvjbf5j"; depends=[Biostrings]; };
   CSFA = derive2 { name="CSFA"; version="1.2.0"; sha256="1nkyhk8qhrrlx8v26yw86l954m4xfcxma4pqbhgw95jvqql5h3li"; depends=[elasticnet fabia FactoMineR pls randomcoloR snowFT]; };
   CSGo = derive2 { name="CSGo"; version="0.6.7"; sha256="19awbblkx0g58gvd43xs1dmcsn588k185njw3fri8xxbn26xp5jy"; depends=[dplyr extrafont furrr future fuzzyjoin ggplot2 httr jsonlite magrittr purrr stringr]; };
+  CSHShydRology = derive2 { name="CSHShydRology"; version="1.2.0"; sha256="0wx17hi99ciys5mrzcqh1ma99hfa5l533637kcf6gbcy270a09aw"; depends=[dplyr fields ggplot2 ggspatial here httr jsonlite Kendall lubridate magrittr plotKML plotrix raster sf sp stringr tidyhydat timeDate whitebox]; };
   CSIndicators = derive2 { name="CSIndicators"; version="0.0.1"; sha256="1d0mdbgg4y9773di8a86c8lss5f29c936pa7qv7vvznyc7mxkqzz"; depends=[ClimProjDiags multiApply s2dv]; };
   CSMES = derive2 { name="CSMES"; version="1.0.0"; sha256="1ddr2b39d7nwan6dqf5xx9h6gzfxxk50r1d9vbpb9hc8a7d15vnp"; depends=[caTools data_table mco ROCR rpart zoo]; };
   CSTE = derive2 { name="CSTE"; version="2.0.0"; sha256="0r38pvd83aw9zrq43malw50vlbnknh3b53x3ydj0wxrk95wsmy46"; depends=[dfoptim fda locpol Rcpp survival]; };
@@ -784,7 +790,7 @@ in with self; {
   CVrisk = derive2 { name="CVrisk"; version="1.1.0"; sha256="0xnpnjncdal2akdnkb52s7r82p2di0rc48h6nswbclkl5xf3snd6"; depends=[]; };
   CaDENCE = derive2 { name="CaDENCE"; version="1.2.5"; sha256="1z3p5y1l67r470x6wrhnyjvw1ndppcm08fpj99x122j7kn6byff2"; depends=[pso]; };
   CaPO4Sim = derive2 { name="CaPO4Sim"; version="0.2.0"; sha256="0s4mqlas41ll656hj1imzqydgwgw002d469z01fjdcs4d6daljw6"; depends=[DT htmltools magrittr plotly purrr rintrojs shiny shinycssloaders shinydashboard shinydashboardPlus shinyjqui shinyjs shinyWidgets visNetwork]; };
-  Cairo = derive2 { name="Cairo"; version="1.5-14"; sha256="0ysc40smkjwk8fmp5dk0q3nbp9xkxzz9pd4z5zkp2mrvrvx52xq6"; depends=[]; };
+  Cairo = derive2 { name="Cairo"; version="1.5-15"; sha256="17g8s80h9kc0a4zpb153sprjm6ndjl3gkpb63aq5xh9ickzv2fmv"; depends=[]; };
   CalSim = derive2 { name="CalSim"; version="0.5.2"; sha256="1ij3xaizq1lpq5vg25i8pz4khm7ab81kzfayp6a914n0jgxvprj7"; depends=[ExactMultinom spatstat spatstat_geom]; };
   Calculator_LR_FNs = derive2 { name="Calculator.LR.FNs"; version="1.3"; sha256="03qg9rnz623dwnp68xhhsh9788s49n6xp0migg1nnjaqhrahlgdd"; depends=[]; };
   CalibratR = derive2 { name="CalibratR"; version="0.1.2"; sha256="1hnmhijckxd35h8mhpzqpglk1ykdih2c5kg17myc7cci5xjk9nfr"; depends=[doParallel fitdistrplus foreach ggplot2 pROC reshape2]; };
@@ -792,6 +798,7 @@ in with self; {
   CallEshotgun = derive2 { name="CallEshotgun"; version="0.2.0"; sha256="09xi0867vi0x244ahg9rrm2rr6f9x7fzrmlifb098akik2pvfn20"; depends=[reticulate]; };
   CamelUp = derive2 { name="CamelUp"; version="2.0.3"; sha256="1d3ywb4bxnn149api6lqry8q9lasng79hzka9ndr5cv38pkbvva9"; depends=[data_table dplyr ggplot2 magrittr Rcpp shiny]; };
   CancerGram = derive2 { name="CancerGram"; version="1.0.0"; sha256="1p612dbn6dxn3nz8m0pzlsbczg3f8gwqk9q0fnxbcdlbll0vf2k0"; depends=[biogram devtools dplyr pbapply ranger shiny stringi]; };
+  Canek = derive2 { name="Canek"; version="0.2.0"; sha256="07f1cs3vd00jkfkm1iz8ciwf6d8vhrbxvp4krmjng9apxjhgamfc"; depends=[bluster FNN fpc igraph irlba matrixStats numbers]; };
   Canopy = derive2 { name="Canopy"; version="1.3.0"; sha256="0979hpphzhf4v71jx0shh3l8nffmpsn9l6f8ip2wxzcyx571i1wd"; depends=[ape fields pheatmap scatterplot3d]; };
   CarletonStats = derive2 { name="CarletonStats"; version="2.0"; sha256="0pgzvw6gf8kjv8ndprwp4wlgdgh5sb75ga8z5syfw57fb05v7ac3"; depends=[]; };
   Carlson = derive2 { name="Carlson"; version="1.0.1"; sha256="1flh1161hx62xsgw0k7rncvwgzgsay5xwihcykyypwbdlccmqhiw"; depends=[]; };
@@ -825,7 +832,7 @@ in with self; {
   CfEstimateQuantiles = derive2 { name="CfEstimateQuantiles"; version="1.0"; sha256="1qf85pnl81r0ym1mmsrhbshwi4h1iv19a2wjnghbylpjaslgxp6i"; depends=[]; };
   ChIPtest = derive2 { name="ChIPtest"; version="1.0"; sha256="1yn5b5s56k2dbhw6damxj18xbaiz180ym7fiq2i3p2gkcgwpddbz"; depends=[]; };
   ChainLadder = derive2 { name="ChainLadder"; version="0.2.15"; sha256="1csi6hbbxnm4ilss2qganimh2sqgk2xb8dxa6fz0bdh0s5f6x79j"; depends=[actuar cplm ggplot2 lattice MASS Matrix statmod systemfit tweedie]; };
-  ChangePointTaylor = derive2 { name="ChangePointTaylor"; version="0.1.1"; sha256="1jfymyqdcyxfgn15y0iff7midkfd69fh3amz201idg6248g1y6n8"; depends=[bench dplyr ggplot2 magrittr purrr Rcpp rlang tidyr]; };
+  ChangePointTaylor = derive2 { name="ChangePointTaylor"; version="0.2"; sha256="0rf3h7l8l6fw2i489ldcqhsf9ppjzpx298p5ciyp9iyc0zcykz38"; depends=[bench dplyr ggplot2 magrittr purrr Rcpp rlang tidyr]; };
   ChangepointTesting = derive2 { name="ChangepointTesting"; version="1.0"; sha256="1nb78b1jpp0wpy9ah2fxkh53hlmb2f82b68msbfhancb8zp2lclv"; depends=[]; };
   ChannelAttribution = derive2 { name="ChannelAttribution"; version="2.0.5"; sha256="09qdj93al6r7pg9s2xvwks7d73bgjsn1k7h8rcdzf245r89l8726"; depends=[Rcpp RcppArmadillo]; };
   ChannelAttributionApp = derive2 { name="ChannelAttributionApp"; version="1.3"; sha256="0n9g8wwvc8p5clypl7z23w8fs6d0c47bblijwd4pjwy26bcb4m8h"; depends=[ChannelAttribution data_table ggplot2 shiny]; };
@@ -833,7 +840,7 @@ in with self; {
   ChaosGame = derive2 { name="ChaosGame"; version="1.1"; sha256="1gwrym3vjcqlj0ih479ipbajypajy9ga9sr3laj7g5zxx3cm4y4c"; depends=[colorRamps ggplot2 gridExtra plot3D RColorBrewer rgl sphereplot]; };
   ChargeTransport = derive2 { name="ChargeTransport"; version="1.0.2"; sha256="0mq06ckp3yyj5g1z2sla79fiqdk2nlbclm618frhqcgmq93h0vha"; depends=[]; };
   CheckDigit = derive2 { name="CheckDigit"; version="0.1-1"; sha256="0091q9f77a0n701n668zaghi6b2k3n2jlb1y91nghijkv32a7d0j"; depends=[]; };
-  ChemoSpec = derive2 { name="ChemoSpec"; version="6.1.2"; sha256="0g09zr1ysafzafs8gjzacrqpgd6vad39i1vsmr3smprp8f4739mq"; depends=[ChemoSpecUtils ggplot2 magrittr patchwork plotly plyr readJDX reshape2]; };
+  ChemoSpec = derive2 { name="ChemoSpec"; version="6.1.3"; sha256="0h2jc0hdyi58hmg64vg7qijs7rp05ssxm4p8h3fv70jr58n94633"; depends=[ChemoSpecUtils ggplot2 magrittr patchwork plotly plyr readJDX reshape2]; };
   ChemoSpec2D = derive2 { name="ChemoSpec2D"; version="0.5.0"; sha256="05k46fn2i0ipn14zignxvykr8018wxql26x2r5b479hbkg1rk5s4"; depends=[ChemoSpecUtils colorspace ggplot2 readJDX]; };
   ChemoSpecUtils = derive2 { name="ChemoSpecUtils"; version="1.0.0"; sha256="15w9v4g7myw0ygd9dvalz900yzgz5j2jnmw4j3zfp04fgm3wgbfq"; depends=[ggplot2 ggrepel magrittr plotly plyr]; };
   ChillModels = derive2 { name="ChillModels"; version="1.0.2"; sha256="06hgg893anh5z8an4l1xl4liz7d0m79n21h116vkdlymayccydbr"; depends=[]; };
@@ -857,6 +864,7 @@ in with self; {
   CleanBSequences = derive2 { name="CleanBSequences"; version="0.4.0"; sha256="12s24v2kfyc32pm34ibw58zzjqhzwlrqrkhl0m70jcqvn50b5r98"; depends=[Biostrings]; };
   ClickClust = derive2 { name="ClickClust"; version="1.1.5"; sha256="0b46f453mffg4ym6yvmh7g3v05mc9gphwfra75j28y1425s87yvw"; depends=[]; };
   ClickClustCont = derive2 { name="ClickClustCont"; version="0.1.7"; sha256="1caymvpwvxq4rirnjm2kwzvqm1pl01rdc3785k8mq4k2m0n6l2rz"; depends=[gtools]; };
+  ClickHouseHTTP = derive2 { name="ClickHouseHTTP"; version="0.1.1"; sha256="19hn4zi5dlgkpqd7wkfg1aln21cks1pc66pb0xs4nr2sp6gmrpg0"; depends=[arrow data_table DBI httr jsonlite]; };
   CliftLRD = derive2 { name="CliftLRD"; version="0.1-1"; sha256="0qsdv568klxg6chgw329jbfjmf6w61hly2vxp90yzdfkca03z2s4"; depends=[CNLTreg liftLRD]; };
   ClimClass = derive2 { name="ClimClass"; version="2.1.0"; sha256="1r836md31z2r5d9xckkbalzbhm4kf5paljv71kxpy53q92k7yi91"; depends=[geosphere ggplot2 reshape2]; };
   ClimInd = derive2 { name="ClimInd"; version="0.1-3"; sha256="0n5kd001nkpks16c3msvn2qvzyrjawa2rqwh8zph2qr5hgpwcpg7"; depends=[chron SPEI weathermetrics]; };
@@ -875,7 +883,7 @@ in with self; {
   ClusVis = derive2 { name="ClusVis"; version="1.2.0"; sha256="06yckdl3gxjia1gjjqpc29lvy4f7qf47fncslng9ggjnks6il145"; depends=[MASS mgcv mvtnorm Rcpp RcppArmadillo Rmixmod VarSelLCM]; };
   ClussCluster = derive2 { name="ClussCluster"; version="0.1.0"; sha256="1436849m2mnm8j7lf653zv8lcvvg2ch8kkks4bvr39kx21wxy8ss"; depends=[ggplot2 reshape2 rlang scales VennDiagram]; };
   ClustAssess = derive2 { name="ClustAssess"; version="0.3.0"; sha256="0b8p5dpb843rv8q1hsc74zhxyn9wjgdxwpwrbq2yx4jmy8v65gzq"; depends=[doParallel dplyr fastcluster foreach ggplot2 igraph irlba magrittr Matrix progress Rcpp reshape2 rlang stringr uwot]; };
-  ClustBlock = derive2 { name="ClustBlock"; version="2.4.0"; sha256="1bl0a32il4ai181q5s2fvmpm4jbqwxjvrrxwkaqxb7dnb846cmv0"; depends=[FactoMineR]; };
+  ClustBlock = derive2 { name="ClustBlock"; version="2.4.1"; sha256="1y1icf9m1ry99fgdwf739jy3ii7n3ilsqxv8xwld9h3hmvajx3fh"; depends=[FactoMineR]; };
   ClustGeo = derive2 { name="ClustGeo"; version="2.1"; sha256="03f7appg9n90ahzjhh5si9iv1vm06im9qmhgfc72fvqrmvqy2alh"; depends=[sp spdep]; };
   ClustImpute = derive2 { name="ClustImpute"; version="0.2.4"; sha256="0ss7zsnamh8ir2wpgy6swxck93yr4dd7g7hvyzc1cv6g3k28fb49"; depends=[ClusterR copula dplyr ggplot2 knitr magrittr rlang tidyr]; };
   ClustMMDD = derive2 { name="ClustMMDD"; version="1.0.4"; sha256="0sblf3crpai53dflhyi27yn6mg0xyy9dxhwsk8j57sq5vr50x686"; depends=[Rcpp]; };
@@ -908,7 +916,6 @@ in with self; {
   ColorNameR = derive2 { name="ColorNameR"; version="0.1.0"; sha256="0gqyph3f6mhwg6zwc5bgfglpmg152a4kd2wrmp9jn18wvg8wd03g"; depends=[dplyr magrittr purrr rlang]; };
   ColorPalette = derive2 { name="ColorPalette"; version="1.0-1"; sha256="1dsj5njikx3qm2lnamqqg4qgwwyr11fwx9s5sdi7dkfx3nmf6dac"; depends=[]; };
   ComICS = derive2 { name="ComICS"; version="1.0.4"; sha256="0brsb7y1bg23sdpxs4j1y3xdgr1q7iinxnnp17rravw72l991xqa"; depends=[glmnet]; };
-  CombMSC = derive2 { name="CombMSC"; version="1.4.2.1"; sha256="1jxf59hs1px271im2dwc1653y9pfp79gwmacafcva224bvh5vi49"; depends=[]; };
   CombinS = derive2 { name="CombinS"; version="1.1-1"; sha256="06g41zbjl54cbhhs8q7l4bbvszclvbxn3m2dqg800d6ghs9vgl6v"; depends=[]; };
   CombinePValue = derive2 { name="CombinePValue"; version="1.0"; sha256="0mlngyz2nq7s39javnnjbb5db93c5sg9daw2szng83mbyfza4hv2"; depends=[]; };
   CombinePortfolio = derive2 { name="CombinePortfolio"; version="0.4"; sha256="0kj96i2ahq7ax1nx66jac8bbdiiyviwnzr4cr4gn0b8y580rdcwi"; depends=[]; };
@@ -932,7 +939,7 @@ in with self; {
   ComparisonSurv = derive2 { name="ComparisonSurv"; version="1.0.9"; sha256="1xvxkj0i59fq05df6szx4k32w2447mxcx3877l2myag4x6i6c74l"; depends=[muhaz survival survRM2 TSHRC]; };
   Compind = derive2 { name="Compind"; version="2.3"; sha256="0im7wpgigkd3nwg6crnp4c3ndd3b6763f0f4v512r9a13hm48ms0"; depends=[Benchmarking boot GPArotation Hmisc lpSolve MASS nonparaeff np psych smaa spdep]; };
   ComplexUpset = derive2 { name="ComplexUpset"; version="1.3.3"; sha256="1sk4v5kc2wkgfaws0hjlp30mngm907r5gz1iglf68j46lfs9jbsv"; depends=[colorspace ggplot2 patchwork scales]; };
-  Compositional = derive2 { name="Compositional"; version="5.4"; sha256="0nh4b6wkydx97sxan3w8fx8i75n5xnl4hmhvcnvzpp7v1gdsx89c"; depends=[codalm Directional doParallel emplik energy FlexDir foreach glmnet MASS mda mixture NlcOptim nnet pchc RANN Rfast Rfast2 sn]; };
+  Compositional = derive2 { name="Compositional"; version="5.5"; sha256="1xn62q4h8m4fgs3hi5s676jrfn7dmfm16wzkcccxr9ssp25vkmbz"; depends=[codalm Directional doParallel emplik energy FlexDir foreach glmnet MASS mda mixture NlcOptim nnet pchc RANN Rfast Rfast2 sn]; };
   CompoundEvents = derive2 { name="CompoundEvents"; version="0.1.0"; sha256="03shw3016xc41a6by8pnpqs7mmnhs0qmg5aqd4hlfcy3dv2w9wkf"; depends=[]; };
   Compounding = derive2 { name="Compounding"; version="1.0.2"; sha256="1xlb3ylwjv70850agir0mx79kcvs43h0n1sm22zcny3509s2r7lf"; depends=[hypergeo]; };
   ConConPiWiFun = derive2 { name="ConConPiWiFun"; version="0.4.6.1"; sha256="1ziy646lbx297kia797xjxa8hyl826x1hiighyjslvnlvrhapx08"; depends=[Rcpp]; };
@@ -941,6 +948,7 @@ in with self; {
   ConSpline = derive2 { name="ConSpline"; version="1.2"; sha256="16r0v0llj0pri69jqxribp8dpzh6yn6acpq20aaky14fyh3i4q7x"; depends=[coneproj]; };
   Conake = derive2 { name="Conake"; version="1.0"; sha256="1rj1rv8r53516jqhwp9xqqwjxh4gx1w47c0bw59f87wiy5pbchpf"; depends=[]; };
   ConcordanceTest = derive2 { name="ConcordanceTest"; version="1.0.0"; sha256="03d780y7wik2j9l4bq50j8c3g4j3zh8wzq4al6zjch9g9krdankz"; depends=[Rglpk]; };
+  CondCopulas = derive2 { name="CondCopulas"; version="0.1.1"; sha256="03jqx5ds81arfgx1w3568a85x0fa7jhp5x3sp28a8in76db08095"; depends=[data_tree glmnet nnet ordinalNet pbapply pcaPP statmod tree VineCopula]; };
   CondIndTests = derive2 { name="CondIndTests"; version="0.1.5"; sha256="0km4z8wnj5msg1pmphk2fccbw1cidsxv174817lwcyii9nf5iwsm"; depends=[caTools kernlab lawstat MASS mgcv mize pracma quantregForest randomForest RPtests]; };
   CondReg = derive2 { name="CondReg"; version="0.20"; sha256="1ffnrjfjcb66i9nyvidkcn4k9pcj4r7xanjwzcxcrj2qm39apkqx"; depends=[]; };
   CondiS = derive2 { name="CondiS"; version="0.1.1"; sha256="16nhqbcmq1swlhbal3q7i11y6kk7r48nxfqgzgbyrqf9qwc7jfpd"; depends=[caret kernlab purrr survival survminer tidyverse]; };
@@ -952,6 +960,7 @@ in with self; {
   Conigrave = derive2 { name="Conigrave"; version="0.4.4"; sha256="02nvk5ya9gr06ai8qnjw0xq6hfbrr91b6lx9gq08dbrnmpbmyvqz"; depends=[dplyr ggplot2 miceadds mitools ppcor stringdist stringr]; };
   ConjointChecks = derive2 { name="ConjointChecks"; version="0.0.9"; sha256="097mhiz8zjmmkiiapr3zfx7v35xirg57nqp1swd72dixaa23nhr1"; depends=[]; };
   ConnMatTools = derive2 { name="ConnMatTools"; version="0.3.5"; sha256="082y4xxnp42xa7db5hnbc9qlvkb50wwb3wzi0my04l55a9s0ril7"; depends=[]; };
+  ConnectednessApproach = derive2 { name="ConnectednessApproach"; version="1.0.0"; sha256="0lzq9x4ykwkhwfzf3lw9r28snmkfzq4zlkwdz3mn7yaglfi636lr"; depends=[frequencyConnectedness glmnet MASS moments progress quantreg rmgarch rugarch urca WeightedPortTest xts zoo]; };
   ConsRank = derive2 { name="ConsRank"; version="2.1.2"; sha256="0vdjp2kawnmwz5rxp1p489l6pq61byyzpbs0w9m4rbal3whn65hf"; depends=[gtools proxy rgl rlist]; };
   ConsRankClass = derive2 { name="ConsRankClass"; version="1.0.1"; sha256="02n6a3affm72vfhsjz90jl8x0qrvxsimlm1ng313s4zla515h8ap"; depends=[ConsRank janitor pracma proxy rlist]; };
   ConsReg = derive2 { name="ConsReg"; version="0.1.0"; sha256="0ck188ahzprzvqdh2q05bcg9b68dw3xiqqb1xirbm4rp5chyr419"; depends=[adaptMCMC data_table DEoptim dfoptim FME forecast GA GenSA ggplot2 MCMCpack Metrics nloptr Rcpp rlang Rsolnp]; };
@@ -959,6 +968,7 @@ in with self; {
   ContourFunctions = derive2 { name="ContourFunctions"; version="0.1.1"; sha256="00p5bdiq8hj95lkr86iwyh50qw0d0d4gs9hhbzcix6lwn8dwqd3s"; depends=[]; };
   ConvergenceClubs = derive2 { name="ConvergenceClubs"; version="2.2.1"; sha256="0mn0lnycz5pi821q52g1njjs2pcmvv8yynr13bh237c8cashk2n3"; depends=[lmtest sandwich]; };
   ConvergenceConcepts = derive2 { name="ConvergenceConcepts"; version="1.2.2"; sha256="1pvcl0bgd4anrbn6wqxsd1s23ycsc7jhrk94yzwx67xx0qs9mmrw"; depends=[lattice tkrplot]; };
+  ConvertPar = derive2 { name="ConvertPar"; version="0.1"; sha256="1czw97ya73dinad0n664045s9918a21kv97bpkal40kg029vnw59"; depends=[mirt neuralnet RWeka]; };
   Convolutioner = derive2 { name="Convolutioner"; version="0.1.0"; sha256="1ria4ii7zdqgrzgdx4c82dj4lg791iwy2y66fv1qyibws0ag3bhq"; depends=[]; };
   CoopGame = derive2 { name="CoopGame"; version="0.2.2"; sha256="0i4yw2nznmcps9s9f592nbs8dvncb0w2bynvsfkp21lzd4pfsp4n"; depends=[geometry gtools rcdd]; };
   CoordinateCleaner = derive2 { name="CoordinateCleaner"; version="2.0-20"; sha256="1n1k97imcg3n8nvl9759nqbzirxs011micx4qj2sf1d0bvnlrzs1"; depends=[dplyr geosphere ggplot2 raster rgbif rgdal rgeos rnaturalearth sp tidyselect]; };
@@ -973,6 +983,7 @@ in with self; {
   CopyDetect = derive2 { name="CopyDetect"; version="1.3"; sha256="1g3bwd805h62x93xvvn67acf9v6vn7s7ghxpvjhwcfdfj7fwzh6l"; depends=[mirt]; };
   CorBin = derive2 { name="CorBin"; version="1.0.0"; sha256="0mjvhj9cw21xjg96fz5bcyfxgwdw367l1942a38by77ylypdfq3y"; depends=[]; };
   CorDiff = derive2 { name="CorDiff"; version="1.0"; sha256="12rgfhygrdq1ign4ybr8g171wxic8zbp83n1xdsnqpj910k5jdr5"; depends=[mcc]; };
+  CorMID = derive2 { name="CorMID"; version="0.1.4"; sha256="1jp3lhs9vyy5s4qfmv8sz5ai8ga9213nq870cb282cgjsryn8x0n"; depends=[plyr Rdisop]; };
   Corbi = derive2 { name="Corbi"; version="0.6-1"; sha256="0ig0rx4llkgqvg2sx6xmzhh9sjgy4qnw22xs84gxgqidi50f2a85"; depends=[CRF igraph MASS Matrix]; };
   CornerstoneR = derive2 { name="CornerstoneR"; version="2.0.2"; sha256="04dvryhcyi7f6bmm4067cn5vmy7kdqi3bys7ln8nnsc0kkdjxhi5"; depends=[checkmate data_table minpack_lm ranger SpatialTools vcd]; };
   CorrBin = derive2 { name="CorrBin"; version="1.6"; sha256="0iwad5qf7hqii02s5f85155c5s7v8ghnac4l6l3c45dshrpapp2m"; depends=[boot combinat dirmult geepack mvtnorm]; };
@@ -1014,7 +1025,7 @@ in with self; {
   CutpointsOEHR = derive2 { name="CutpointsOEHR"; version="0.1.2"; sha256="0r772zb7g10akcfnf2hnyvpvba4px9pgslyns7drmijdsh0ncnvj"; depends=[survival]; };
   Cyclops = derive2 { name="Cyclops"; version="3.1.2"; sha256="13nwcksfxvjz2wh7dr500y0xy69hfl4k0ddsr6m24qh2km8spp6n"; depends=[Andromeda BH bit64 dplyr Matrix Rcpp RcppEigen rlang survival]; };
   CytOpT = derive2 { name="CytOpT"; version="0.9.4"; sha256="008qm2kzclp0sy4ys7y0dsc894qrn7mazz9216w97rs2sn7kcrzx"; depends=[ggplot2 MetBrewer patchwork reshape2 reticulate testthat]; };
-  CytobankAPI = derive2 { name="CytobankAPI"; version="1.4.0"; sha256="19jlpx914sqiqfba9ypylnaiswvbn641wkgzaihbjj1h61jjzihk"; depends=[curl httr jsonlite]; };
+  CytobankAPI = derive2 { name="CytobankAPI"; version="2.0.0"; sha256="1i0ym5a65lvcy662siq6afd5d5iiph1w4nb6zdvywwssg5hwgk6c"; depends=[aws_s3 curl httr jose jsonlite uuid]; };
   CytobankBridgeR = derive2 { name="CytobankBridgeR"; version="1.0.0"; sha256="0m8gxbm3p9gvdszymqx10n5rzb406r4f70a0in798c56mp2rcsl4"; depends=[CytobankAPI]; };
   D2MCS = derive2 { name="D2MCS"; version="1.0.0"; sha256="14c02p9shfhvpafvm10xpy2r5x1h2pqrbj07dnz7pviqndxjp7ma"; depends=[caret devtools dplyr FSelector ggplot2 ggrepel gridExtra infotheo mccr mltools ModelMetrics questionr R6 recipes tictoc varhandle]; };
   D3GB = derive2 { name="D3GB"; version="1.1"; sha256="1r4hxx2qdws7c7hsnswzfh6az8mn720sk8nygilljl2ghnwpq7pa"; depends=[DBI RSQLite]; };
@@ -1037,6 +1048,7 @@ in with self; {
   DBGSA = derive2 { name="DBGSA"; version="1.2"; sha256="04zqh9y3nqcdzs5jn8aaq5idy9zl450ikvl788xs860wlg692qv2"; depends=[fdrtool]; };
   DBI = derive2 { name="DBI"; version="1.1.2"; sha256="0n2gf5flmcrkad7p0pzsnsgwjl5006yi7lyz9lisqxhw8xykgv2n"; depends=[]; };
   DBItest = derive2 { name="DBItest"; version="1.7.2"; sha256="0zx58nq6l21g0sbrmrnmckw0x20i2f6lv81cczh02yrv4r968cmh"; depends=[blob callr DBI desc hms lubridate palmerpenguins R6 rlang testthat vctrs withr]; };
+  DBR = derive2 { name="DBR"; version="1.2.3"; sha256="12prvvx1smii3r4m98yyr53vkkk70l2cswv5777g1mr7wrgfbvya"; depends=[MfUSampler]; };
   DBfit = derive2 { name="DBfit"; version="2.0"; sha256="1b5fy4xya5k31937ccjsq1gj9y39lh1vb48jfc0sr56isrx0c496"; depends=[Rfit]; };
   DBpower = derive2 { name="DBpower"; version="0.1.0"; sha256="04wwhzlc9g6il478ax5yvh74bbb6hs29jyslkiz3k1hi25hlpkrn"; depends=[combinat dplyr GBJ kit magrittr mvtnorm]; };
   DCA = derive2 { name="DCA"; version="2.0"; sha256="1acy33vyf814kr0aj6kdvi9f1qzgynwwzv57ll01gd0iqq36374f"; depends=[coin elasticnet GPArotation locfdr modeest mvtnorm PMA]; };
@@ -1067,18 +1079,18 @@ in with self; {
   DEEPR = derive2 { name="DEEPR"; version="0.1"; sha256="0q8970q3gpjxwxdf2bkhpnqrxpm00w27b20a9sn9vv314rn1n7s8"; depends=[dirmult]; };
   DEEVD = derive2 { name="DEEVD"; version="1.2.3"; sha256="1wa3h0z5sk8zrwblzb8w7hgj9yqw56vqi3vsnpva53qynf42r2n7"; depends=[evd]; };
   DELTD = derive2 { name="DELTD"; version="2.6.7"; sha256="1cghz224pmh06yk00jx956nlkk45p2ri81v1jjhx27xjagp4jzcs"; depends=[]; };
+  DEM = derive2 { name="DEM"; version="0.0.0.1"; sha256="1b90bwk30kjp9kkyj9m4fcj5fxbsarmnqk469f5akp1j9kaa3m88"; depends=[mvtnorm]; };
   DEMOVA = derive2 { name="DEMOVA"; version="1.0"; sha256="09dqhhhihphhdnplmhdq4q5zwc0qvqhirdrxa9x6fr43vwa5zfp4"; depends=[leaps]; };
   DEPONS2R = derive2 { name="DEPONS2R"; version="1.0.3"; sha256="1h7bia4l8myjnwhjp576v6wkr0p63hcgfdmqrxhiam9xwl7kp4ar"; depends=[jsonlite raster rgdal rgeos sp xml2]; };
   DES = derive2 { name="DES"; version="1.0.0"; sha256="16p38i8ykwc8gjw6c9dhdwjjpa1b17n9wqhz3rhkbzjh978pky31"; depends=[]; };
   DESnowball = derive2 { name="DESnowball"; version="1.0"; sha256="012kdnxmzap6afc3ffkcvk1mazlkp286av6g9fwz2wcbf5mh9n1m"; depends=[clue cluster combinat MASS]; };
-  DET = derive2 { name="DET"; version="3.0.1"; sha256="0r2q1r4wc4nhhrr9bllxsp2w6ajja61mh34dyijjsfchx4025ljb"; depends=[doParallel pROC]; };
   DEoptim = derive2 { name="DEoptim"; version="2.2-6"; sha256="1qg2d4d076a99qdjfg0yyq5z1xc1zlwydwry00nj2rx0hdykjqwc"; depends=[]; };
-  DEoptimR = derive2 { name="DEoptimR"; version="1.0-10"; sha256="1m9ag073i7pbxsy74vkj0n4hjn6vmyc4n0k78nmslwwwmjh7nkvp"; depends=[]; };
+  DEoptimR = derive2 { name="DEoptimR"; version="1.0-11"; sha256="0nqn12n5qlyk2zsgh57dvizy5z71xgqrhrcqj6lbzybm9c7v6x0q"; depends=[]; };
   DFA = derive2 { name="DFA"; version="0.9.0"; sha256="0nk8k6xxqbbk1zhq3xsm59azvkj9499vp92pjl9xygasarim90rl"; depends=[]; };
   DFA_CANCOR = derive2 { name="DFA.CANCOR"; version="0.2.3"; sha256="0qxdvxsx13b6i9qd245hsrwbg5kg4lh45kkvhn62404sx20jx7jd"; depends=[BayesFactor MVN]; };
   DFIT = derive2 { name="DFIT"; version="1.1"; sha256="1220ax93b9xwmq1crgl1fnf63gk72jqbra5b5q25wn6ynv1kilkx"; depends=[ggplot2 mirt msm mvtnorm simex]; };
   DGCA = derive2 { name="DGCA"; version="1.0.2"; sha256="0k2a24ycagyxdx54dh9w8km25xhmmmhyyl26g76z4g5gqvcw092k"; depends=[matrixStats WGCNA]; };
-  DGEobj = derive2 { name="DGEobj"; version="1.0.3"; sha256="0n2i6y2vhhypn3sgsysvfpxdfvhb3fq7pz2lv71bnn1fz3lghbsx"; depends=[assertthat GenomicRanges magrittr stringr]; };
+  DGEobj = derive2 { name="DGEobj"; version="1.1.0"; sha256="154p31rgy56nv0awabd32n76axwsk6i99gd5wss5a2ilza5g4iv5"; depends=[assertthat magrittr stringr]; };
   DGEobj_utils = derive2 { name="DGEobj.utils"; version="1.0.4"; sha256="0mad5cph7bszb7xykgsd9gk5d2zb0kwvb4yjrh84zfdnxgw8799w"; depends=[assertthat DGEobj dplyr edgeR limma qvalue stringr sva]; };
   DGLMExtPois = derive2 { name="DGLMExtPois"; version="0.2.0"; sha256="0d0c2pv4srb20ly5i43zy3h1y9yng2lz5djpprhbqxim80lv05wc"; depends=[COMPoissonReg nloptr]; };
   DGM = derive2 { name="DGM"; version="1.7.4"; sha256="1f59spd4bwx4d1gbjaizjxccaslw1fvf8pxa9nrxi07j6kq9mg0h"; depends=[coin data_table ggplot2 Rcpp RcppArmadillo reshape2]; };
@@ -1102,7 +1114,7 @@ in with self; {
   DIconvex = derive2 { name="DIconvex"; version="1.0.0"; sha256="0bnrq9nmryshir6ll43nz20aaqmmw0zjvfml72cpwbvrma8a3qmz"; depends=[lpSolveAPI]; };
   DImodels = derive2 { name="DImodels"; version="1.1"; sha256="0767xanj4dck6hxx392fcavwsjz8d30wymxnabr5v8s7pcsmv18p"; depends=[hnp rootSolve]; };
   DIscBIO = derive2 { name="DIscBIO"; version="1.2.0"; sha256="1m1c9ivblk3sir6lfq0msx2vlrx37dd5v7y6003k6fmsgrfpi9fs"; depends=[AnnotationDbi boot cluster fpc ggplot2 httr igraph impute mclust NetIndices org_Hs_eg_db philentropy png RColorBrewer rpart rpart_plot RWeka SingleCellExperiment statmod TSCAN tsne]; };
-  DJL = derive2 { name="DJL"; version="3.7"; sha256="0j8535gdn5h1rjc357w30sdmarmm9sx9n62fiji191wpk1mm1dmh"; depends=[car lpSolveAPI]; };
+  DJL = derive2 { name="DJL"; version="3.8"; sha256="0ry8zyr86qdb80fd9x2inrpdasfj13k2andm0wapd1k250018js8"; depends=[car lpSolveAPI]; };
   DLASSO = derive2 { name="DLASSO"; version="2.0.2"; sha256="0xdygf6h89d9z4kqb46iqfxgdzq9dmkrxf9ypw78l4d8n9xx2gaa"; depends=[MASS]; };
   DLL = derive2 { name="DLL"; version="1.0.0"; sha256="00xj6r1i4qhv0lq9ky88pw26nkc3ywhl23j9rsh2z5jn4dqpwpcg"; depends=[glmnet locpol MASS SAM]; };
   DLMtool = derive2 { name="DLMtool"; version="6.0.3"; sha256="00gh4di7ngn56v5hy7l5ybj6zg71fxaqyp1chmz22arb7rvj4q08"; depends=[dplyr ggplot2 MSEtool Rcpp]; };
@@ -1115,11 +1127,12 @@ in with self; {
   DMtest = derive2 { name="DMtest"; version="1.0.0"; sha256="1bziiyv63lcbmd79fykjj6b63igbbw0pwiq37k7q9l5vij6jfcj9"; depends=[doParallel foreach matrixStats]; };
   DMwR2 = derive2 { name="DMwR2"; version="0.0.2"; sha256="1vzfbz2k05j8r2hpig3d2grb99rnnh2s1sviii3prcyqicxfh0i9"; depends=[class DBI dplyr quantmod readr rpart xts zoo]; };
   DNAseqtest = derive2 { name="DNAseqtest"; version="1.0"; sha256="1mpmf40vrpw8m75rlqchsnyrz12pgg5bkz7wfca5yy5sbbiwk5pf"; depends=[]; };
-  DNAtools = derive2 { name="DNAtools"; version="0.2-3"; sha256="10j95g9jqr7jk9ph9j3i2yblkmp4v4py8vq70rv7q56cv7dq7z32"; depends=[multicool Rcpp RcppParallel RcppProgress Rsolnp]; };
+  DNAtools = derive2 { name="DNAtools"; version="0.2-4"; sha256="1xcpp5jw5xq6a6ccq8jsd4d7ailv3iv8k7b1bbz531vhy9im2dzs"; depends=[multicool Rcpp RcppParallel RcppProgress Rsolnp]; };
   DNH4 = derive2 { name="DNH4"; version="0.1.12"; sha256="0g3ibacsbsk34b6411j3n3q9dxqq1iqdnisppmmq7s2bp94ab771"; depends=[httr rvest tibble tidyr]; };
   DNLC = derive2 { name="DNLC"; version="1.0.0"; sha256="05410xgpfjsydjmnzry454qcjpws9vhh252q2xq7l0scdj87ly00"; depends=[caTools fdrtool GOstats igraph locfdr mvtnorm spdep]; };
   DNMF = derive2 { name="DNMF"; version="1.3"; sha256="09yp6x6vd44ahklcag96fpjgyphyn45rkqkbwr1n36a2d8vxk9nc"; depends=[doParallel foreach gplots Matrix]; };
   DOBAD = derive2 { name="DOBAD"; version="1.0.6"; sha256="0ifrrfm4yp1416z58qgnak042rgj1xvqby2vvzgrv19z6b3250p3"; depends=[lattice Matrix numDeriv]; };
+  DOEM = derive2 { name="DOEM"; version="0.0.0.1"; sha256="0xfc4wzbh7gp4c8y7141kyycjxy5avjc8wwxzqyvf70l2if7x4id"; depends=[]; };
   DOPE = derive2 { name="DOPE"; version="2.1.0"; sha256="1ccg0sgxvv4c9522f2wynp9j37cnlf4gdaymxgi1jxdlikm3ls5r"; depends=[dplyr magrittr stringr tibble tidytext]; };
   DOS = derive2 { name="DOS"; version="1.0.0"; sha256="0vvkwn4wfvspbk74nb6124hdx9158h6yfksib14xqq7rx7c97ad4"; depends=[MASS]; };
   DOS2 = derive2 { name="DOS2"; version="0.5.2"; sha256="0lcqk2fxfl5pdnxlpppqiqnyc23jyhp1kcxwci8ilagjv4djipmw"; depends=[MASS sensitivity2x2xk sensitivitymult sensitivitymv senstrat]; };
@@ -1141,18 +1154,18 @@ in with self; {
   DRDRtest = derive2 { name="DRDRtest"; version="0.1"; sha256="1vrvwr441w526a80s0r2fwqlllvn05ir8v2152jz2wxrwhnpq1s0"; depends=[KernSmooth SuperLearner]; };
   DREGAR = derive2 { name="DREGAR"; version="0.1.3.0"; sha256="15cplshs85r0z659mc7xmj5db7vc95wxs01c34isc22p8z0a287i"; depends=[msgps]; };
   DRHotNet = derive2 { name="DRHotNet"; version="2.0"; sha256="1hj321qy6jvdicxksnrkzwhdgzjs7pl1bxj6bm0135qjpfmj3v8m"; depends=[maptools PBSmapping raster sp spatstat spatstat_core spatstat_geom spatstat_linnet spdep]; };
-  DRIP = derive2 { name="DRIP"; version="1.6"; sha256="08qyv2xwl3a70jrpmyxq37g0cryzc0ca904znyhzidmjgy13d18i"; depends=[]; };
+  DRIP = derive2 { name="DRIP"; version="1.7"; sha256="1926qmxxmmhbr6hwn4jkm553h5lj84g37rgvjy36kb4b8vpnlkd5"; depends=[]; };
   DRR = derive2 { name="DRR"; version="0.0.4"; sha256="1y70si1gig4l7jx5jiqsqliyywfsvimkx53x3zh1lc3yj2j6bqwk"; depends=[CVST kernlab Matrix]; };
-  DRaWR = derive2 { name="DRaWR"; version="1.0.1"; sha256="1pfdczwzd236c64yw94bgbk0hbl4dhlgjfjwkljmqgqrzsddvgqh"; depends=[Matrix ROCR]; };
+  DRaWR = derive2 { name="DRaWR"; version="1.0.3"; sha256="1pschc911zrcgy6vmh9aylz79qfifxvxrm5gxwah7xv50plpar78"; depends=[Matrix ROCR]; };
   DRomics = derive2 { name="DRomics"; version="2.4-0"; sha256="1ld83nwslbxcd63s1xhkc4380q87wnmgzx3kx5nv978zh9dqc92x"; depends=[DESeq2 ggplot2 limma SummarizedExperiment]; };
   DRviaSPCN = derive2 { name="DRviaSPCN"; version="0.1.2"; sha256="1j6iss2aavrckkr3m50kcw7yrc1wqbpgmd60rw9bgk8vycd1m2iw"; depends=[ChemmineR clusterProfiler GSVA igraph pheatmap rvest xml2]; };
   DSAIDE = derive2 { name="DSAIDE"; version="0.9.3"; sha256="11sz57a0mmhk3lj621wnccmcbbrxp0ipg99phfk3wb927985p0zv"; depends=[adaptivetau deSolve dplyr ggplot2 gridExtra lhs nloptr plotly rlang shiny XML]; };
   DSAIRM = derive2 { name="DSAIRM"; version="0.9.3"; sha256="1igwm6zm987xjyfvwakxa5ckb1chiaykcjcambkxpjyi1b6gg6gf"; depends=[adaptivetau boot deSolve dplyr ggplot2 gridExtra lhs nloptr plotly rlang shiny XML]; };
   DSBayes = derive2 { name="DSBayes"; version="1.1"; sha256="0iv4l11dww45qg8x6xcf82f9rcz8bcb9w1mj7c7ha9glv5sfb25v"; depends=[BB]; };
-  DSI = derive2 { name="DSI"; version="1.3.0"; sha256="0c5phlhkwdx4w1szhn6ym2jc632mhpac417l2axl3a8jx63c1g25"; depends=[progress R6]; };
+  DSI = derive2 { name="DSI"; version="1.4.0"; sha256="0fqvdpnvba2yd08i71dijwh78n5i2rjwqynpm3pa170fsa624rjh"; depends=[progress R6]; };
   DSL = derive2 { name="DSL"; version="0.1-7"; sha256="05wj3zypr2kqfbka930qnwnk2r43pqi13pbs5n6lm8vdq4zjblw4"; depends=[]; };
   DSLite = derive2 { name="DSLite"; version="1.3.0"; sha256="05wm02bwa4kcbg0q95368pnmnm0lpn6abk4ffliygha19d0pgpsf"; depends=[DSI R6]; };
-  DSMolgenisArmadillo = derive2 { name="DSMolgenisArmadillo"; version="1.4.0"; sha256="036ha5m6q2i8s13mdgzs7r35j88z6xk2c8bdwn090akb0fqwq52y"; depends=[base64enc DSI httr MolgenisAuth stringr urltools]; };
+  DSMolgenisArmadillo = derive2 { name="DSMolgenisArmadillo"; version="1.4.1"; sha256="1yf67iw5bqv5a5nhg1546ydmb3mr47nmxynkmn38mdz6p72sc2ic"; depends=[base64enc DSI httr MolgenisAuth stringr urltools]; };
   DSOpal = derive2 { name="DSOpal"; version="1.3.1"; sha256="1f5lh3j7yfxa5rpcfknwqralnn108mg8813k8sclav8f2y3qh9pi"; depends=[DSI opalr]; };
   DSSAT = derive2 { name="DSSAT"; version="0.0.6"; sha256="13h2vslghy0127ycd9s1fynfqxh52vr3zbrryh20r7q0fzlka3fi"; depends=[dplyr glue lubridate purrr readr rlang stringr tidyr]; };
   DSWE = derive2 { name="DSWE"; version="1.5.1"; sha256="129dx5sf938pqpbqbar6zwma58m59if45pp7x6zwvnh2n03gaxy8"; depends=[BayesTree e1071 FNN gss KernSmooth matrixStats mixtools Rcpp RcppArmadillo]; };
@@ -1160,7 +1173,7 @@ in with self; {
   DSpoty = derive2 { name="DSpoty"; version="0.1.0"; sha256="18z8gk3zj7k2szxg9579qy5klrqjw6zsk5x9jmwrv4qhb98fyji6"; depends=[dplyr httr purrr stringr]; };
   DSsim = derive2 { name="DSsim"; version="1.1.5"; sha256="0dr8dc91m7s5c198k9cb26a09f14wb8ihr46c0mr9cg33l2wf3nv"; depends=[fields mgcv mrds rgeos shapefiles sp splancs]; };
   DSviaDRM = derive2 { name="DSviaDRM"; version="1.0"; sha256="1hj2pgnldrpgapwwz1kf4k6mvyzwdvb1i6czd7sbimsx5hafwps8"; depends=[igraph ppcor]; };
-  DT = derive2 { name="DT"; version="0.21"; sha256="1yhlph9h8z78wqjddv598l2xrqpp605d70cxfb69m53hanw4hmzn"; depends=[crosstalk htmltools htmlwidgets jquerylib jsonlite magrittr promises]; };
+  DT = derive2 { name="DT"; version="0.22"; sha256="16ah0h60ygvj49cs6cxxhdxx68cs6v6m35w5r1j5h8nxz171q61z"; depends=[crosstalk htmltools htmlwidgets jquerylib jsonlite magrittr promises]; };
   DTAT = derive2 { name="DTAT"; version="0.3-4"; sha256="1ddmih8cxbgc1p4m0sm8gdbnf0d3ka8z7014zd4aykz75j3pr002"; depends=[data_table dplyr Hmisc jsonlite km_ci pomp r2d3 shiny survival]; };
   DTAXG = derive2 { name="DTAXG"; version="0.1.0"; sha256="1jxa0ix0z35i0xdnjl698j8iqjmp6nz8ckah9bap5ay9rkq0xd7f"; depends=[]; };
   DTAplots = derive2 { name="DTAplots"; version="1.0.2.5"; sha256="1jwfh8j8ahaj2z19g2f70r652j77q4f0b7j91mggsb0dgk449342"; depends=[]; };
@@ -1178,7 +1191,7 @@ in with self; {
   DTWUMI = derive2 { name="DTWUMI"; version="1.0"; sha256="0pybgbfs2yp2ljbs0kra5z70x3llkiwdngp6cadgs3j9rar4vq4q"; depends=[dtw DTWBI e1071 entropy lsa rlist]; };
   DTwrappers = derive2 { name="DTwrappers"; version="0.0.2"; sha256="028n1211h9gmv050xfiw347x59gykb6ndvd371fdf53bbkqirqa4"; depends=[data_table]; };
   DUBStepR = derive2 { name="DUBStepR"; version="1.2.0"; sha256="0kma87hqcng3i0ys9r34kl6af8q1i9avmdv9awf0rdrlqyabnrn1"; depends=[Matrix matrixcalc qlcMatrix RANN Seurat]; };
-  DVHmetrics = derive2 { name="DVHmetrics"; version="0.4.1"; sha256="1c98847b5pgmhcszdnllpg3iq88693xjss2nxgr9dya52x1kbyaj"; depends=[DT ggplot2 KernSmooth reshape2 shiny]; };
+  DVHmetrics = derive2 { name="DVHmetrics"; version="0.4.2"; sha256="0dxbjqiqhzjrv867qhxmqavzklq0j3qjv4qwdacyrq8faz82vhv7"; depends=[DT ggplot2 KernSmooth reshape2 shiny]; };
   DWBmodelUN = derive2 { name="DWBmodelUN"; version="1.0.0"; sha256="1m71fx9l2rq27d2q5hiqxiyljvf5wjcfkcblqw19rpiixrinv4va"; depends=[dygraphs htmltools ncdf4 raster rgdal]; };
   DWDLargeR = derive2 { name="DWDLargeR"; version="0.1-0"; sha256="1bxdvgj38xv2xj98njpyhy12b54nccwnc3v92kkpd3i7nwbw48dy"; depends=[Matrix SparseM]; };
   DWLasso = derive2 { name="DWLasso"; version="1.1"; sha256="1i8j8wjfvg69ldr8ahz1zv3m2wgxd701iph94ad22zs9qwqfg16z"; depends=[glmnet hglasso Matrix]; };
@@ -1190,7 +1203,6 @@ in with self; {
   DarkDiv = derive2 { name="DarkDiv"; version="0.3.0"; sha256="0cjf5rpn4myd21rh04bk2gjk65rjx77mn8mxy4ym704fiycrsj87"; depends=[vegan]; };
   Dasst = derive2 { name="Dasst"; version="0.3.3"; sha256="0nrcvcfzr2y1jc984rpi3fmggns65sphc6nqr9l91h5qvpdcw7cl"; depends=[]; };
   DatAssim = derive2 { name="DatAssim"; version="1.0"; sha256="120gazyyxda9faydv2lyqgvflhqi2fhih1szq0sy5v1gh4xb0hhy"; depends=[Rcpp RcppArmadillo]; };
-  Data2LD = derive2 { name="Data2LD"; version="3.2.1"; sha256="1y6nyysm96q5mlrcl0vkjhq5lr624n2266xpmyl4ck0h1dhjb6bz"; depends=[deSolve fda knitr rmarkdown]; };
   DataClean = derive2 { name="DataClean"; version="1.0"; sha256="0wkafjyp6c2mx7g1bpz2pbxyl5nm2wba2hly8miizv0fdc762za5"; depends=[xlsx XML]; };
   DataCombine = derive2 { name="DataCombine"; version="0.2.21"; sha256="0iwb4726bk0cjhay694dp43b1553yyk9lpxbncs85kz229b26arm"; depends=[data_table dplyr]; };
   DataEditR = derive2 { name="DataEditR"; version="0.1.5"; sha256="0kwjgr6kaai42mhcljjs6i93m966x45gic5jgqsrkgfwjmmgf043"; depends=[bslib htmltools miniUI rhandsontable rstudioapi shiny shinyBS shinyjs]; };
@@ -1286,8 +1298,8 @@ in with self; {
   DiscriMiner = derive2 { name="DiscriMiner"; version="0.1-29"; sha256="1ii8aa4dwfk991qdnpmkva20wvs5fqcna9030c799ybf11qpdass"; depends=[]; };
   Disequilibrium = derive2 { name="Disequilibrium"; version="1.1"; sha256="1jm5n01ih4rnga13058yh939zp2lvjn5pgb6rrwp5fdlk5kqsgb0"; depends=[Formula numDeriv optimr]; };
   DisimForMixed = derive2 { name="DisimForMixed"; version="0.2"; sha256="00mknsalikangr17946877m5fy2jgkgasgl6ng4f2nr44f0q9l6q"; depends=[cluster dplyr]; };
-  DistPlotter = derive2 { name="DistPlotter"; version="0.0.1"; sha256="02260wl216zq69l3acllcx026y3zy2cxyhxgfp7in7wdd4c3jxj2"; depends=[colourpicker dplyr DT extraDistr ggplot2 rio scales shiny shinyalert shinyBS shinyjs shinyWidgets stringi stringr]; };
-  Distance = derive2 { name="Distance"; version="1.0.4"; sha256="14sdkggacwv3dl8wd2vspy9vn1psz8yw2nvs12c2vjkgxa75dgcl"; depends=[dplyr mrds rlang]; };
+  DistPlotter = derive2 { name="DistPlotter"; version="0.0.2"; sha256="0aws4qs6802y42m07ca9m4i0lza282g6kfzx64q652y52md862gk"; depends=[colourpicker dplyr DT extraDistr ggplot2 rio scales shiny shinyalert shinyBS shinyjs shinyWidgets stringi stringr]; };
+  Distance = derive2 { name="Distance"; version="1.0.5"; sha256="1c8xrv163l9i45ndkbvm8kx3wkcjkmrfz3686kr1mz0xpjycny34"; depends=[dplyr mrds rlang]; };
   DistatisR = derive2 { name="DistatisR"; version="1.0.1"; sha256="0myzfki8yrk0nhgdgsqs4wjbqhzmkdil1g005hc7p4lz3gi09bfx"; depends=[car prettyGraphs]; };
   DistributionFitR = derive2 { name="DistributionFitR"; version="0.1"; sha256="0wg43gqsdy1ja0l489k27k9q1w2zq45wzmqnv9wfc734rf8kvlba"; depends=[doParallel foreach stringr]; };
   DistributionOptimization = derive2 { name="DistributionOptimization"; version="1.2.6"; sha256="0pp0f7c9szyx426bnnz4fz4vh5q73m8x896z6pqgx04b6v445361"; depends=[AdaptGauss GA ggplot2 pracma]; };
@@ -1332,7 +1344,7 @@ in with self; {
   DynaRankR = derive2 { name="DynaRankR"; version="1.1.0"; sha256="1fzicainh1dm016cglm2x6j1i2g5r71vgrj0dnsflbxc5v426sqm"; depends=[dplyr rlang]; };
   DynamicDistribution = derive2 { name="DynamicDistribution"; version="1.1"; sha256="1s78hpj2pxjs4vixin1i816qjbn3wk7b8rd2zdjp4d4rbxifcqf5"; depends=[]; };
   DynamicGP = derive2 { name="DynamicGP"; version="1.1-7"; sha256="1fv7lb01qrgpl0a46360s0iqs7wlyqsda4hdm66vfyqr5pygmikv"; depends=[lhs]; };
-  DynareR = derive2 { name="DynareR"; version="0.1.1"; sha256="1b7m9z09ps9idj1arza4ka1silrf8rm3gk154px0z3612ls3a3ir"; depends=[knitr]; };
+  DynareR = derive2 { name="DynareR"; version="0.1.2"; sha256="0n53znw0xfzdfd7kzf2kxph3q5zsybwn003zx21hga5c0xq2hsca"; depends=[knitr]; };
   DysPIA = derive2 { name="DysPIA"; version="1.3"; sha256="0ih8sl89h6xbmmjjsbxcvgp6wqk7f1wqzwkc43k3i5w7fgb0hlpc"; depends=[BiocParallel data_table DysPIAData fastmatch parmigene Rcpp]; };
   DysPIAData = derive2 { name="DysPIAData"; version="0.1.2"; sha256="1i4z9xhnzih7jnj3l1d6wpgfsayb452sh4q99w2npg1iipsjb1vl"; depends=[]; };
   E4tools = derive2 { name="E4tools"; version="0.1.1"; sha256="1kmj1fddybjia9ninhcy75kdmq152zjw7s24chpqr5wsblffr3yx"; depends=[accelerometry anytime BBmisc chron data_table DataCombine doParallel doSNOW foreach ggplot2 hms scales signal]; };
@@ -1366,14 +1378,13 @@ in with self; {
   EESPCA = derive2 { name="EESPCA"; version="0.5.0"; sha256="1vkyds5mpiaccg18i6483zymikadxb7mq4gsqh85r291zvllb7wl"; depends=[MASS PMA rifle]; };
   EFA_MRFA = derive2 { name="EFA.MRFA"; version="1.1.2"; sha256="0p1zkfwjch9y39r7hjccjk7vfbnfwpdak6jfjs1sdpqkjqiw3r86"; depends=[ggplot2 PCovR psych reshape2 scales]; };
   EFA_dimensions = derive2 { name="EFA.dimensions"; version="0.1.7.4"; sha256="0798kmgh1d7k389kgw31qg617vhqqgz3ychw7ji4xqkxjadvm34n"; depends=[EFAtools polycor psych]; };
-  EFAtools = derive2 { name="EFAtools"; version="0.3.1"; sha256="1s0x8vp18yixn1vscmad8bgmp6nvn8zxx8xx435bmdlxml73c8xd"; depends=[checkmate cli crayon dplyr future future_apply ggplot2 GPArotation lavaan magrittr progress progressr psych Rcpp RcppArmadillo rlang stringr tibble tidyr viridisLite]; };
+  EFAtools = derive2 { name="EFAtools"; version="0.4.0"; sha256="15cnwma6xbq1hq28cj22i3gq6rd78saxn3nl1cvarwvrlfh75a2f"; depends=[checkmate cli crayon dplyr future future_apply ggplot2 GPArotation lavaan magrittr progress progressr psych Rcpp RcppArmadillo rlang stringr tibble tidyr viridisLite]; };
   EFAutilities = derive2 { name="EFAutilities"; version="2.1.1"; sha256="0kdwdjv4c9rfy49qs7a4134vwa2sm2pcam17a3xii2dq8mghg1za"; depends=[GPArotation MASS mvtnorm plyr]; };
   EFDR = derive2 { name="EFDR"; version="1.2"; sha256="1k6y2qxfw5py1brh25apmzqm00y3a458x0wrrmdg604g1m9zlkg5"; depends=[copula doParallel dplyr foreach gstat Matrix sp tidyr waveslim]; };
   EFS = derive2 { name="EFS"; version="1.0.3"; sha256="1q8cf8dnxpv5s3lr9145y0wjhak4rz18dzah4xfs5qr4c8nlpl54"; depends=[party pROC randomForest ROCR]; };
   EGAnet = derive2 { name="EGAnet"; version="1.0.0"; sha256="0mr63x5gx8yy9gp19glvqcsdmxbd29mnv4v29kjpfr21ij46h60a"; depends=[dplyr fitdistrplus GGally ggplot2 ggpubr glasso igraph lavaan Matrix network NetworkToolbox qgraph semPlot wTO]; };
   EGRET = derive2 { name="EGRET"; version="3.0.7"; sha256="1fxpcdsq7njf1hjy3a4i0fx0ah9v7jzmdwg4c7009nikyhx5ri6x"; depends=[dataRetrieval fields foreach MASS survival truncnorm]; };
   EGRETci = derive2 { name="EGRETci"; version="2.0.4"; sha256="1g01a03smn5yp261cyk3x310m1mcv4bqyh8y123wam9gpa7dxrp6"; depends=[binom EGRET]; };
-  EHR = derive2 { name="EHR"; version="0.4-4"; sha256="0b42ny3xc936qgbfgibywpmancrbdvkcwwhy55lbqlm8xhzyr6s8"; depends=[data_table lubridate pkdata]; };
   EHRtemporalVariability = derive2 { name="EHRtemporalVariability"; version="1.1.4"; sha256="02izrgl526znn4xs10c5l3gv0b5chmgr376i26nli988cypmf32h"; depends=[dplyr lubridate MASS plotly RColorBrewer scales viridis xts zoo]; };
   EIAdata = derive2 { name="EIAdata"; version="0.1.3"; sha256="0cx8x16jn8pfik7yd6vfqh23fqlfxnfj3ya42h5zbvsbka8rislh"; depends=[httr XML xts zoo]; };
   EILA = derive2 { name="EILA"; version="0.1-2"; sha256="0wxl9k4fa0f7jadw3lvn97iwy7n2d02m8wvm9slnhr2n8r8sx3hb"; depends=[class quantreg]; };
@@ -1388,7 +1399,6 @@ in with self; {
   ELYP = derive2 { name="ELYP"; version="0.7-5"; sha256="1j2vwcs443x3pf4zypyvbkn8fb5if9b9hf1s821jjjpgach573sc"; depends=[survival]; };
   EM_Fuzzy = derive2 { name="EM.Fuzzy"; version="1.0"; sha256="0sz4zkjn6rdzdqmkq6j24bd4sj91y5lan31bldxdfskgz0jpzhbr"; depends=[DISTRIB FuzzyNumbers]; };
   EMAtools = derive2 { name="EMAtools"; version="0.1.4"; sha256="0gx55ddw7dz1lm599i0gj15dlc3m58a8rf223hiykszb5c8bi372"; depends=[anytime DataCombine ggplot2 lmerTest plyr sjstats]; };
-  EMC = derive2 { name="EMC"; version="1.3"; sha256="0sdpxf229z3j67mr9s7z4adzvvphgvynna09xkkpdj21mpml23p6"; depends=[MASS mvtnorm]; };
   EMCluster = derive2 { name="EMCluster"; version="0.2-13"; sha256="0d0zb6bppgbd5kyfzzckxk6w8v4gjvzk6k16xbhvq8gzcs7w4lhf"; depends=[MASS Matrix]; };
   EMD = derive2 { name="EMD"; version="1.5.9"; sha256="0lga27nl7c3h02xrbb2hcwlb9dyli340v0hb3vwwzqrhmr0fl806"; depends=[fields locfit]; };
   EMDANNhybrid = derive2 { name="EMDANNhybrid"; version="0.1.0"; sha256="0mm5zfkrja9pz58psp7b6r1lpixaa9y685xxv9srv9l9cl8d892j"; depends=[EMD forecast nnfor]; };
@@ -1427,6 +1437,7 @@ in with self; {
   ETAS = derive2 { name="ETAS"; version="0.4.9"; sha256="11sv5slr3s6w82ksgbw0qlzi9palznbzprq2n9iiifxz6ff5drvd"; depends=[fields goftest lattice maps Rcpp spatstat_core spatstat_geom spatstat_random]; };
   ETC = derive2 { name="ETC"; version="1.5"; sha256="16ciff8bf2p56941r83y7405sp5pfms63dwjd232ih3mnznjpc0f"; depends=[mvtnorm]; };
   ETLUtils = derive2 { name="ETLUtils"; version="1.5"; sha256="0s0q4f3wzpdd87l3pnzysa8aq7zgz29589xnm65a6xfy9znbpzs3"; depends=[bit ff]; };
+  EVI = derive2 { name="EVI"; version="0.1.1-4"; sha256="1lmcz8k88aahqdjw5nw3pgns9nn1dy30hkm505c1ilaiziwpdi6d"; depends=[cowplot ggplot2]; };
   EValue = derive2 { name="EValue"; version="4.1.3"; sha256="0ip4cyipbs6g0znrdh5zs4xizmqgdznq8riggkgyv06wipgx9a2j"; depends=[boot dplyr ggplot2 metadat metafor MetaUtility]; };
   EW = derive2 { name="EW"; version="1.1"; sha256="0wc3v9qisiikvlp28xhlgsxb92fhkm6vslia6d0vpihyai0p1h1g"; depends=[]; };
   EWGoF = derive2 { name="EWGoF"; version="2.2.2"; sha256="19gd9grjjdv6hilqj41g5qhz7m0ga40q88clwggbp5f0f1yd5sym"; depends=[Rcpp]; };
@@ -1451,7 +1462,7 @@ in with self; {
   EcotoneFinder = derive2 { name="EcotoneFinder"; version="0.2.3"; sha256="1liqjakzg4c5kgjiir8i4fp4ax0737lfwriz277crh9p3jn3dgmh"; depends=[cluster colorspace corrplot e1071 ggplot2 igraph philentropy plyr purrr qgraph reshape rlang Rmisc vegan vegclust withr]; };
   Ecume = derive2 { name="Ecume"; version="0.9.1"; sha256="093yx24hckgwvkdjgir33lkc7hhiv4is8a4a7fdcrp46iszx0b4i"; depends=[caret dplyr e1071 kernlab magrittr pbapply spatstat spatstat_geom transport]; };
   EdSurvey = derive2 { name="EdSurvey"; version="2.7.1"; sha256="0pb2s6vn2skva54q06lh89pbkinvs2kil0sv3fj51yg3h6pzbp93"; depends=[car data_table Dire Formula glm2 haven LaF lfactors lme4 MASS Matrix NAEPirtparams NAEPprimer quantreg readxl tibble wCorr WeMix xtable]; };
-  EffectLiteR = derive2 { name="EffectLiteR"; version="0.4-4"; sha256="17mhp4acj0myr2b54hgbb3wi5j6a6q999nqr9lwcbx3plyrwlljl"; depends=[car foreign ggplot2 lavaan lavaan_survey nnet shiny survey]; };
+  EffectLiteR = derive2 { name="EffectLiteR"; version="0.4-5"; sha256="118qddm19x2qv0zh642vfljlnd0p8lv1kz6k8jh33gf3sgl0rhd4"; depends=[car foreign ggplot2 lavaan lavaan_survey nnet shiny survey]; };
   EffectStars = derive2 { name="EffectStars"; version="1.9-1"; sha256="131w5bdc615gaa2czi4wyc2f96jcg24ahcmggajrvyhxmi6rag5x"; depends=[VGAM]; };
   EffectStars2 = derive2 { name="EffectStars2"; version="0.1-3"; sha256="0yh4krqjh1jb7gjxb9z4f5bzarps0g9jfqbbva782a881dhcdl1x"; depends=[miscTools VGAM]; };
   EffectTreat = derive2 { name="EffectTreat"; version="1.1"; sha256="1kw1vq9y1q3xyiqsk855wjn9jqkzdh6h4xklbl9kvbqsvvhhsgkz"; depends=[]; };
@@ -1460,7 +1471,7 @@ in with self; {
   EgoCor = derive2 { name="EgoCor"; version="0.1.0"; sha256="197wf7v51qf2wc2gks68v3kpkcv0fmrbj3wrksixh1sphbl52rig"; depends=[geoR lme4 Rdpack shiny SpatialTools]; };
   EigenR = derive2 { name="EigenR"; version="1.2.2"; sha256="02cg898hm2byhnbfihg8mnygjsfpyrpq4y3lw2dnrglcj75qr71b"; depends=[Rcpp RcppEigen]; };
   EleChemr = derive2 { name="EleChemr"; version="1.2.0"; sha256="1wr2lkaf56qxsnqi7mgbgzy72lhkr0xlr1w1l9hy1dpmmqcqw7l3"; depends=[ggplot2]; };
-  ElliptCopulas = derive2 { name="ElliptCopulas"; version="0.1.1"; sha256="00cxyn6w9zy993lqyyn9yjvpw7h4wckp63s3apf1jv8b09l0kdn5"; depends=[Matrix pcaPP Runuran]; };
+  ElliptCopulas = derive2 { name="ElliptCopulas"; version="0.1.2"; sha256="0prc83vlzxyzmi0n3y1f5j7r7mc2dzm7gs1q3s7n501y1lgmb11l"; depends=[Matrix pbapply pcaPP Rmpfr Runuran]; };
   EloChoice = derive2 { name="EloChoice"; version="0.29.4"; sha256="1g8ivvnv16c2gniwd9xa9z89bm4rac0nrg3mcg1risgf9yk4rgm5"; depends=[psychotools Rcpp RcppArmadillo Rdpack]; };
   EloOptimized = derive2 { name="EloOptimized"; version="0.3.1"; sha256="09bg1gm8jhjj0r7yzdgi2zlyavrizgiljwh26mpb6ng6p5mkliid"; depends=[BAMMtools dplyr lubridate magrittr reshape2 rlang]; };
   EloRating = derive2 { name="EloRating"; version="0.46.11"; sha256="09nh3ia4s3c9yjhw0f0haqb26fryfc4lf9rgfcbqqzzwgdr1invj"; depends=[network Rcpp RcppArmadillo Rdpack sna zoo]; };
@@ -1515,6 +1526,7 @@ in with self; {
   EuclideanSD = derive2 { name="EuclideanSD"; version="0.1.0"; sha256="1w5s1zkb81v150nvaygvyla2x0vh4c99vd5jw53jcq68sv9hby3i"; depends=[shiny]; };
   EurosarcBayes = derive2 { name="EurosarcBayes"; version="1.1"; sha256="12311s6ibw9q6kykhh689r93r7mwjhwrhkzdpc75grvw6ilgjmpm"; depends=[clinfun data_table plyr shiny VGAM]; };
   EvCombR = derive2 { name="EvCombR"; version="0.1-2"; sha256="1f5idjaza91npf64hvcnpgnr72mpb7y6kf91dp57xy9m14k7jx5g"; depends=[]; };
+  Evacluster = derive2 { name="Evacluster"; version="0.1.0"; sha256="01nxclrp90qhlnxl0yf2srppglic6m3f7pl35h62r6kxic0lrzhs"; depends=[]; };
   EvalEst = derive2 { name="EvalEst"; version="2021.2-1"; sha256="0ws7x0dkzb3h2m801dkzx2as146whm63mcipy4iia90jd9944zir"; depends=[dse setRNG tfplot tframe]; };
   EvaluateCore = derive2 { name="EvaluateCore"; version="0.1.2"; sha256="0yqv5srnbczdx8h3cxvj6hfas0436xc8hz698zi7ypms34r9c1ly"; depends=[agricolae car cluster dplyr entropy ggcorrplot ggplot2 gridExtra kSamples mathjaxr psych Rdpack reshape2 vegan]; };
   EvaluationMeasures = derive2 { name="EvaluationMeasures"; version="1.1.0"; sha256="0b65y4rb650hhlgc18z0sm0danrrawqkazzdl9krl877djrgx87g"; depends=[]; };
@@ -1522,9 +1534,9 @@ in with self; {
   EventDetectGUI = derive2 { name="EventDetectGUI"; version="0.3.0"; sha256="02gwgbp692cfmf933jg1f7h4gghhc1v2cswz7rpcazm8h39mc4wh"; depends=[DT EventDetectR ggplot2 plotly shiny shinyBS shinydashboard shinyjs XML]; };
   EventDetectR = derive2 { name="EventDetectR"; version="0.3.5"; sha256="0wx3bcs8n95fmyc5vnlrwd75bzqqvy6czb9bsbp04g3770c5ja0r"; depends=[forecast ggplot2 gridExtra imputeTS neuralnet]; };
   EventStudy = derive2 { name="EventStudy"; version="0.37"; sha256="1bf7ngwl3gxq3gi2s9z2c4pd0d2gjh9y9vrwzay6x66981sa84h9"; depends=[curl data_table dplyr ggplot2 httr jsonlite magrittr miniUI openxlsx purrr RColorBrewer readr rlang rstudioapi scales shiny stringr testthat tidyquant tidyr]; };
-  EventWinRatios = derive2 { name="EventWinRatios"; version="0.1.0"; sha256="10awz9i110ihq20jn06qmmjyj4xvdvj9lyvf30r9brzrnyjjff3h"; depends=[]; };
+  EventWinRatios = derive2 { name="EventWinRatios"; version="1.0.0"; sha256="1hsq4g7hh71lzxzkmhm15mk3xpxaq75rqhgslf4qif6x7pm0p859"; depends=[]; };
   EvidenceSynthesis = derive2 { name="EvidenceSynthesis"; version="0.2.3"; sha256="1qx8l5fwnwigpz8b25i84h9wnqb6lclv03r251ww7j3gd7mybd76"; depends=[BeastJar coda Cyclops EmpiricalCalibration ggplot2 gridExtra HDInterval meta rJava rlang survival]; };
-  EviewsR = derive2 { name="EviewsR"; version="0.1.0"; sha256="1chg3g1jsdflgby2bksqw2nf27xin4nayqigxkji4zwbspp6m8ai"; depends=[knitr]; };
+  EviewsR = derive2 { name="EviewsR"; version="0.1.1"; sha256="104kn9k3bbzwlp3jn9b7m512i2p6vfzyhcvznn8gbzzsm7dy8jsi"; depends=[knitr magrittr]; };
   EvoRAG = derive2 { name="EvoRAG"; version="2.0"; sha256="0gb269mpl2hbx1cqakv3qicpyrlfb4k8a3a7whhg90masbgmh8f6"; depends=[]; };
   EvolutionaryGames = derive2 { name="EvolutionaryGames"; version="0.1.0"; sha256="1v6xpxk4kbjbmv8vh517rd76gyrd9znpxqdh4jqz8lvdpnpla4wv"; depends=[deSolve geometry ggplot2 interp MASS reshape2 rgl]; };
   Evomorph = derive2 { name="Evomorph"; version="0.9"; sha256="1br2fyggwz2mxpic8sk384xq1lpbpv0j5gf6xyzhkn2n7kfpf6d5"; depends=[geomorph ggplot2 reshape2 stringr]; };
@@ -1568,6 +1580,7 @@ in with self; {
   FAOSTAT = derive2 { name="FAOSTAT"; version="2.2.3"; sha256="12wjcjyjdw8jgla9yqddr3ibi6v47lfdlnyf5s5d8ms3ck6ic8sl"; depends=[classInt data_table ggplot2 labeling MASS plyr RJSONIO XML]; };
   FARDEEP = derive2 { name="FARDEEP"; version="1.0.1"; sha256="0blvjakcpkh9vpxryk7qyaqnija0r375ckv37kjlr34xg8pg9qnm"; depends=[nnls preprocessCore]; };
   FASeg = derive2 { name="FASeg"; version="0.1.9"; sha256="0lazx8dyycyycr8467m9rkxkxhp4r2w737kpkb40y59wncmbvkik"; depends=[]; };
+  FAVAR = derive2 { name="FAVAR"; version="0.1.2"; sha256="0nkvzlcx2glx0m3gzvpqgzimck5b00crddrxy3jjndv00q45h5kd"; depends=[bvartools coda doParallel dplyr foreach ggplot2 magrittr matlab Matrix MCMCpack]; };
   FAdist = derive2 { name="FAdist"; version="2.4"; sha256="166w9i8fgklx12jiq4n7l081znmdi6yvazhlxny4rgqif0z2kr9q"; depends=[]; };
   FAmle = derive2 { name="FAmle"; version="1.3.7"; sha256="1g6jacbphbfqn0kkfgdv0g9v8xnzx70872byy0rxp5g2ags6hj2b"; depends=[mvtnorm]; };
   FAwR = derive2 { name="FAwR"; version="1.1.2"; sha256="1x90wvp0w7fhid7i5160b4fiv4xn5mpvy33zjzy0mvqvp0yp8xf0"; depends=[glpkAPI lattice MASS]; };
@@ -1578,14 +1591,13 @@ in with self; {
   FCO = derive2 { name="FCO"; version="0.7.2"; sha256="1bavlkrd0957lxv3n8wqv83sxddpihrwr91f2sgshwlczksl05kn"; depends=[checkmate data_table lavaan semTools]; };
   FCPS = derive2 { name="FCPS"; version="1.3.0"; sha256="0cz04pjhps7grnvx50gnpmhlp4rvl9xx1dnsabn2pg075y5r5bgk"; depends=[DataVisualizations ggplot2 mclust]; };
   FCSlib = derive2 { name="FCSlib"; version="1.3.0"; sha256="1191ba6dwpakcdnbcq61zm5xq24isxjnn98nmvk67fpf1ycw70w9"; depends=[bitops fields stringr tiff]; };
-  FCVAR = derive2 { name="FCVAR"; version="0.1.1"; sha256="1vnfy3485mm29w0hzkmpr50yc9prmgha9hxxb7k9b9li3pzyhl17"; depends=[fracdist pracma]; };
+  FCVAR = derive2 { name="FCVAR"; version="0.1.2"; sha256="0ci0y3mpwiv234km8fd2qmkfnk0mh8s7vn4ai45pfrm0wwhv3akw"; depends=[fracdist pracma]; };
   FD = derive2 { name="FD"; version="1.0-12"; sha256="0xdpciq14i8rh7v6mw174hip64r7mrzhx7gwri3vp9y7a1380sbi"; depends=[ade4 ape geometry vegan]; };
   FDRSeg = derive2 { name="FDRSeg"; version="1.0-3"; sha256="0dh6m5vlx664kryh56jzi3zxydjwa5217nhbwn6adp0q5qdh6d8a"; depends=[Rcpp stepR]; };
-  FDRestimation = derive2 { name="FDRestimation"; version="1.0.0"; sha256="1m4k71bsfj2sbsnyqi1s9p5wxbvvn24w98lqwms6z4irc0sk6r3g"; depends=[Rdpack]; };
+  FDRestimation = derive2 { name="FDRestimation"; version="1.0.1"; sha256="083w50g8n03l0wigywm90xyp8xjxbsbbicv0a5g2wmbdd70m4nay"; depends=[Rdpack]; };
   FDRreg = derive2 { name="FDRreg"; version="0.1"; sha256="17hppvyncbmyqpi7sin9qsrgffrnx8xjcla2ra6y0sqzam1145y4"; depends=[fda mosaic Rcpp RcppArmadillo]; };
   FDRsampsize = derive2 { name="FDRsampsize"; version="1.0"; sha256="0g8kawzyi9x5yndvh330wzqw6rvcnprwq56ngd0j6z51hvvw8qhw"; depends=[]; };
   FDX = derive2 { name="FDX"; version="1.0.4"; sha256="15qjy216n87ylk8kwjhgz0mwdhgy57xn2l8x38ffgff3n3v0gwcn"; depends=[DiscreteFDR PoissonBinomial pracma Rcpp]; };
-  FDboost = derive2 { name="FDboost"; version="1.0-0"; sha256="1227fda2m8lsq3cndv0xgbgbcfdxhc4fjiyj2dmha1z4sycd7a28"; depends=[gamboostLSS MASS Matrix mboost mgcv stabs zoo]; };
   FEA = derive2 { name="FEA"; version="0.0.1"; sha256="0rg7l5hmaksiz5hg8llwa5kk17by29qvqncyksv16bf8rsjlm732"; depends=[geometry geosphere MASS ptinpoly sp]; };
   FENmlm = derive2 { name="FENmlm"; version="2.4.3"; sha256="1a205a4iv54haixanyzx210lzqg7cnryjvqayvkdj1lhmdql4anw"; depends=[Formula MASS numDeriv Rcpp]; };
   FER = derive2 { name="FER"; version="0.94"; sha256="0319dz0qvk8s9cfngqas3j212bw0f4rzw3gqcd7r7sl0249dla7p"; depends=[statmod]; };
@@ -1604,7 +1616,7 @@ in with self; {
   FIT = derive2 { name="FIT"; version="0.0.6"; sha256="1nkjms9cvigc9sjha1krzhd3nmwsfh8pi0f1plf5k8zpb773zzb2"; depends=[gglasso MASS Rcpp RcppEigen XML]; };
   FITSio = derive2 { name="FITSio"; version="2.1-6"; sha256="1qch6z9r8h95jijjdwsi81majgacl42ryzlkn0m1wifkly9mjjrb"; depends=[]; };
   FKF = derive2 { name="FKF"; version="0.2.3"; sha256="0hw8gfmnx05cajbfiffqsbgq164qaf16qsa7wa133pzkpl6b0f0f"; depends=[]; };
-  FKF_SP = derive2 { name="FKF.SP"; version="0.1.3"; sha256="0pbqpaddk5yhh0lycqncfc029md4if93p07jvnixjn0mrraxj6b5"; depends=[curl mathjaxr Rdpack]; };
+  FKF_SP = derive2 { name="FKF.SP"; version="0.2.0"; sha256="0xnr3k98gvk8svdpdi8vpbdxazg0qd0rfq10s21g2wcjk16xpp0f"; depends=[curl mathjaxr Rdpack]; };
   FKSUM = derive2 { name="FKSUM"; version="1.0.0"; sha256="1a0fk3k5mmkv26lmf14wiaj0hq19m92681a1p5ldnzpqr54w9igz"; depends=[MASS Matrix rARPACK Rcpp RcppArmadillo]; };
   FLAME = derive2 { name="FLAME"; version="2.1.1"; sha256="013kxp6zjw8qzdq3750x109rhbmjn10q32wgxsh7ajiflwhj3f1i"; depends=[glmnet gmp]; };
   FLLat = derive2 { name="FLLat"; version="1.2-1"; sha256="0306bpwp2az4x4m5sv88hlh7vs0y5isfby7lxrn2gjnk76gg6mw1"; depends=[gplots]; };
@@ -1634,7 +1646,7 @@ in with self; {
   FREEtree = derive2 { name="FREEtree"; version="0.1.0"; sha256="1i2liqbcg993snj5vq341mmafzhn1yrwljvx4f3kyzy0pa59k6rn"; depends=[glmertree MASS pre WGCNA]; };
   FREQ = derive2 { name="FREQ"; version="1.0"; sha256="01nra30pbnqdd63pa87lcws3hnhhzybcjvx2jqyxjghn6khz47j0"; depends=[]; };
   FRESA_CAD = derive2 { name="FRESA.CAD"; version="3.3.1"; sha256="1d8ya1pqy1zc9hxp7s211n0wa3n63jgpxh5ngysbh0dn488l8vgg"; depends=[Hmisc miscTools pROC Rcpp RcppArmadillo stringr]; };
-  FRK = derive2 { name="FRK"; version="2.0.4"; sha256="119r0hnmffmlj27v0bwcrq99k4lg5dzws4m2nskddr4v37wpwpv8"; depends=[digest dplyr ggplot2 ggpubr Hmisc Matrix plyr Rcpp RcppEigen reshape2 scales sp spacetime sparseinv statmod TMB]; };
+  FRK = derive2 { name="FRK"; version="2.0.5"; sha256="1khpfyvw2z45jawrbf3c0kf5xgyvrf53xx84j1qfj96q4n76568i"; depends=[digest dplyr ggplot2 ggpubr Hmisc Matrix plyr Rcpp RcppEigen reshape2 scales sp spacetime sparseinv statmod TMB]; };
   FSA = derive2 { name="FSA"; version="0.9.3"; sha256="10ax191r71gny976hgxgs0gz2548sjjaq3hqy7xkzbj2mcmjq41w"; depends=[car dunn_test lmtest plotrix withr]; };
   FSAdata = derive2 { name="FSAdata"; version="0.3.9"; sha256="1ycllz83lmbd93fdrkj0sjg8bygivp60fv768kk0diamjb16xlmq"; depends=[]; };
   FSDAM = derive2 { name="FSDAM"; version="2020.11-18"; sha256="09l7zvmbvmbcr5pxizdhs5fn79r6cl4ic0hsz2bazdymsqv3s3nm"; depends=[kyotil reticulate]; };
@@ -1718,7 +1730,7 @@ in with self; {
   FixSeqMTP = derive2 { name="FixSeqMTP"; version="0.1.2"; sha256="0v1cwq8gapgandm7wiw8p6av6qigydlpmwi6w02p1y7f0hf5ifnp"; depends=[]; };
   FixedPoint = derive2 { name="FixedPoint"; version="0.6.2"; sha256="1jgqc7m3cvyvxlpkvcqqyfmjl8harsb4kl7msk3qd8mn4qjvvyms"; depends=[MASS]; };
   FlexDir = derive2 { name="FlexDir"; version="1.0"; sha256="1gb5alv9jsnw0135g63cy757pxhdw6cgwfm8dpcm8dj9zqg10dkm"; depends=[]; };
-  FlexDotPlot = derive2 { name="FlexDotPlot"; version="0.2.1"; sha256="1h5mxddvxqqbi3mzyk8hblviyw55s6ly6vqqcilznh328wl0qg85"; depends=[bsplus colourpicker dendextend DT FactoMineR ggdendro ggforce ggplot2 gridExtra grImport2 htmltools magrittr reshape2 scales shiny shinydashboard shinyWidgets sisal]; };
+  FlexDotPlot = derive2 { name="FlexDotPlot"; version="0.2.2"; sha256="0526cnbq4a34k96b99x8i1pcdn1a70fvc9lagq7yd7bsq6fv2gvs"; depends=[bsplus colourpicker dendextend DT FactoMineR ggdendro ggforce ggplot2 gridExtra grImport2 htmltools magrittr reshape2 scales shiny shinydashboard shinyWidgets sisal]; };
   FlexGAM = derive2 { name="FlexGAM"; version="0.7.2"; sha256="04xbglg9vli18fd24k1qyvbl7svp70k67ig3jiss96fgkgbi6w7c"; depends=[MASS Matrix mgcv scam]; };
   FlexParamCurve = derive2 { name="FlexParamCurve"; version="1.5-5"; sha256="1404cn3bhcdr3mjhpr072zcyl0wnksarsg2sry5d1scsmrn4xq83"; depends=[nlme]; };
   FlexReg = derive2 { name="FlexReg"; version="1.1"; sha256="0p52qszn5vvci57f4jxynm1kiwdd105cg096ijg6w481v24a0qb3"; depends=[bayesplot BH faraway Formula ggplot2 loo Rcpp RcppEigen rstan rstantools StanHeaders]; };
@@ -1728,7 +1740,6 @@ in with self; {
   FlowScreen = derive2 { name="FlowScreen"; version="1.2.6"; sha256="1s9xyrvfsgrl2zxm2an5qj3rs1qx7v7j8wc83jzl28pkwa5xr351"; depends=[changepoint evir zyp]; };
   FluMoDL = derive2 { name="FluMoDL"; version="0.0.3"; sha256="0vp3w6hpph6svz8940w9yk9c5iv4n9mj94f9si1ks0xjbi948rqd"; depends=[dlnm mvmeta tsModel]; };
   FlyingR = derive2 { name="FlyingR"; version="0.2.0"; sha256="0smishimssanzssndbwh9d276sq8vdldpzb3ww9c4nlwypxjmr8z"; depends=[kableExtra knitr Rcpp rmarkdown]; };
-  FlywayNet = derive2 { name="FlywayNet"; version="0.1.0"; sha256="00sp3m3iv6qifrkk0rncmzidv15b5fj138g0mai95lp280b040va"; depends=[EasyABC igraph modeest Rcpp]; };
   FoReco = derive2 { name="FoReco"; version="0.2.2"; sha256="01ak3dpvsmlvzb2k714scxsaavihfjsi4gwsqyv0hxpq457sd3rr"; depends=[cli corpcor mathjaxr Matrix osqp]; };
   ForIT = derive2 { name="ForIT"; version="1.0"; sha256="0mi2cw09mbc54s8qwcwxin2na1gfyi60cdssy2ncynma7alq3733"; depends=[]; };
   ForImp = derive2 { name="ForImp"; version="1.0.3"; sha256="0ai4i6q233sdsi8xilpbkxjqdf4pxw93clkdkhcxal6q43rnf7vd"; depends=[homals mvtnorm sampling]; };
@@ -1771,7 +1782,7 @@ in with self; {
   FuzzyNumbers_Ext_2 = derive2 { name="FuzzyNumbers.Ext.2"; version="3.2"; sha256="0gldq0bg1p1vmrn35prha44d7lyymz0jzshdyp2c5rx433mny7h5"; depends=[FuzzyNumbers]; };
   FuzzyQ = derive2 { name="FuzzyQ"; version="0.1.0"; sha256="1camdw7rnzf02nqjlmkr7mqpc38dafq9nw8x7pzwi1lh5xwv5dia"; depends=[cluster]; };
   FuzzyR = derive2 { name="FuzzyR"; version="2.3.2"; sha256="0d0zf8diw7m10zfx0r5zg5arhf4a90sva77h6rvfywixldwrnk7s"; depends=[plyr shiny]; };
-  FuzzyResampling = derive2 { name="FuzzyResampling"; version="0.4.1"; sha256="0dli2r4w8s8wx6i3y31lpy181l1awx8qg8gvnn2yhpcija389zjs"; depends=[ttutils]; };
+  FuzzyResampling = derive2 { name="FuzzyResampling"; version="0.4.2"; sha256="0pgfx78xyq37ffaxvyxv4fh6p3dfxkgw2xi5p35hjv1hgsmi17s8"; depends=[]; };
   FuzzySTs = derive2 { name="FuzzySTs"; version="0.2"; sha256="0zs1pyn9apysspxa0glqc96h6npmvvhiqvqpcm0brslz0b6xnilp"; depends=[FuzzyNumbers polynom]; };
   FuzzyStatProb = derive2 { name="FuzzyStatProb"; version="2.0.4"; sha256="1jpqb8xczi1d4g306vrwpi02f9h59aki1pgnckvfmiclr306prpb"; depends=[DEoptim FuzzyNumbers MultinomialCI]; };
   FuzzyStatTra = derive2 { name="FuzzyStatTra"; version="1.0"; sha256="1ijrlnlmq9d5ahgrpzba6kzkaq1zq59zqdgcizybsf9alsswcm00"; depends=[]; };
@@ -1798,7 +1809,6 @@ in with self; {
   GB2 = derive2 { name="GB2"; version="2.1"; sha256="06rcck97pdm1rsb02cy0jd9fknv0mz5jwk364gsaahdk56ddk18a"; depends=[cubature hypergeo laeken numDeriv survey]; };
   GB2group = derive2 { name="GB2group"; version="0.3.0"; sha256="1dbyc7izyggfrsq2gj7rwff5qjyy6bx6ip09xvbj73xqczv8fkcd"; depends=[GB2 ineq minpack_lm numDeriv]; };
   GBJ = derive2 { name="GBJ"; version="0.5.3"; sha256="12lsddkcxz37hn2fvjq158wb1bc6b3hx6wj8q8nj21zpmyl3n2qh"; depends=[BH mvtnorm Rcpp SKAT]; };
-  GBcurves = derive2 { name="GBcurves"; version="0.1.6"; sha256="1agd7nkgahhwcc5p1zybnd6xws0kr0ggk70aznxfn2nijhw7sqwr"; depends=[curl functional httr magrittr readxl rvest xml2 xts]; };
   GCAI_bias = derive2 { name="GCAI.bias"; version="1.0"; sha256="10092mwpmfbcga0n39a0i6g8xxch8xiwg15cckipw6yxjyx0sivc"; depends=[]; };
   GCD = derive2 { name="GCD"; version="4.0.7"; sha256="1259z76hajapzzq75fas2sq19r0wapn1ybghdaqdc6dksifdz6fv"; depends=[raster]; };
   GCPBayes = derive2 { name="GCPBayes"; version="3.1.0"; sha256="1239pr1i9q4sfy7az6jc8sh10xil5m2a70v9sm29ll53vsza73jj"; depends=[arm gdata invgamma MASS mvtnorm postpack Rcpp truncnorm usethis wiqid]; };
@@ -1809,10 +1819,8 @@ in with self; {
   GD = derive2 { name="GD"; version="1.10"; sha256="1sy77yxnwh2n48zahh498v30nl3hivrsmyp0jf3gyyzhxm8z1n5l"; depends=[badger]; };
   GDAdata = derive2 { name="GDAdata"; version="0.93"; sha256="13ks97i289rc4i7gpqrifwbj0m9rx8csjhnfg8mad10qmjwz7p8b"; depends=[]; };
   GDAtools = derive2 { name="GDAtools"; version="1.7.2"; sha256="0rqrc9andckh4nf8s87gwkpw2kgc2jsynsvsy1xlnvfp753d4dxp"; depends=[FactoMineR GGally ggplot2 ggrepel MASS nleqslv nnet RColorBrewer rlang wdm]; };
-  GDELTtools = derive2 { name="GDELTtools"; version="1.5"; sha256="1lhsyf7kd1lnx2dgifmrd89yl95sf9k6ay19dll2p8b9h3vs7hci"; depends=[dplyr plyr TimeWarp]; };
   GDINA = derive2 { name="GDINA"; version="2.8.8"; sha256="1slq1npsq8s8aghnrpm6vvc6kxj4svz0kr2x0akblndrcr25wxjr"; depends=[alabama ggplot2 MASS numDeriv Rcpp RcppArmadillo Rsolnp shiny shinydashboard]; };
-  GDPuc = derive2 { name="GDPuc"; version="0.8.0"; sha256="0nbqhqddz5k3rcwif69pzf7cbkg5ycwvlscx470c9rhzrdffsm16"; depends=[cli crayon dplyr glue lifecycle magrittr rlang tibble tidyselect withr]; };
-  GE = derive2 { name="GE"; version="0.2.6"; sha256="0vxrw08851n6vfqsvr11746l36n8m4sq5qyhgw1yrcj5g4qwnbf9"; depends=[CGE data_tree DiagrammeR]; };
+  GDPuc = derive2 { name="GDPuc"; version="0.9.0"; sha256="02rd1a5nj8gd8daclr2772pw90r8q042mx25gxsxykfsq75snfni"; depends=[cli crayon dplyr glue lifecycle magrittr rlang tibble tidyselect withr]; };
   GEEaSPU = derive2 { name="GEEaSPU"; version="1.0.2"; sha256="02pwjqd94kranc1f69bx9rzk27kchavhvhl9fygjhrr40nwq3pbg"; depends=[gee Rcpp RcppArmadillo]; };
   GEEmediate = derive2 { name="GEEmediate"; version="1.1.3"; sha256="1xprkpjp1pkq4ci1n32d3yy80hx3r4xf2j7f6hv7dvsn4cvdp417"; depends=[gee]; };
   GEInfo = derive2 { name="GEInfo"; version="1.0"; sha256="08ha9w3c64x9ib2fbh4djbhg7y6lykibx93mbm7i3gdvpajqk0jx"; depends=[dplyr glmnet MASS pheatmap rvest]; };
@@ -1854,7 +1862,7 @@ in with self; {
   GISTools = derive2 { name="GISTools"; version="0.7-4"; sha256="06alb5d2k4qj344i9cpgm3lz9m68rkmjqfx5k2hzn7z458xjrlxs"; depends=[maptools MASS RColorBrewer rgeos sp]; };
   GInSARCorW = derive2 { name="GInSARCorW"; version="1.15.6"; sha256="0rpq8ng9skxg6qzhainsc9jkznql6glq65a1bdbrkc6pwx3pc7lc"; depends=[circular raster rgdal rgeos sp]; };
   GIplot = derive2 { name="GIplot"; version="0.1.0"; sha256="1asyd4f76xg84jnwa8kxcw5z6ch3kpy0p7yigmyga94908gylpxj"; depends=[]; };
-  GJRM = derive2 { name="GJRM"; version="0.2-5.1"; sha256="1d3adl7qbjw211samdqwqjbkfq22md6gj9s0n9hapj75f0ydfvai"; depends=[copula distrEx evd gamlss_dist ggplot2 ismev magic matrixStats mgcv mnormt numDeriv psych Rmpfr scam survey survival trust VGAM VineCopula]; };
+  GJRM = derive2 { name="GJRM"; version="0.2-6"; sha256="0yb7bwxj1gar9zj61vbfls5vzyj23bdjrikbx6g2m2c31a8f3azq"; depends=[copula distrEx evd gamlss_dist ggplot2 ismev magic matrixStats mgcv mnormt numDeriv psych Rmpfr scam survey survival trust VGAM VineCopula]; };
   GK2011 = derive2 { name="GK2011"; version="0.1.3"; sha256="13vafhbgcsj485f12qv962y07v3hil3pla51vkl2b030amzy86jv"; depends=[]; };
   GLDEX = derive2 { name="GLDEX"; version="2.0.0.7"; sha256="1w5ahwbnz9xsn3rdxzcxxvc6m5cgq46nln3i5v8vp4imrs8aafb3"; depends=[cluster]; };
   GLDreg = derive2 { name="GLDreg"; version="1.0.7"; sha256="1wjrr4x1k0fz8nx9idb4ysamldypriiypj96b5v028lx38jwsk3l"; depends=[ddst GLDEX]; };
@@ -1866,7 +1874,7 @@ in with self; {
   GLMpack = derive2 { name="GLMpack"; version="0.1.0"; sha256="15bpw42y999ljdw8ka2ysrrm0y73xz37wwi3j67i01wafipq82xy"; depends=[AER censReg effects foreign lme4 lmtest MASS Matrix nnet pBrackets plm pscl sandwich]; };
   GLMsData = derive2 { name="GLMsData"; version="1.0.0"; sha256="12q41zxniblzys20vjrf5skj8cbzlwb92mwk6jvnyd86lc70bsh1"; depends=[]; };
   GLSME = derive2 { name="GLSME"; version="1.0.5"; sha256="18gixzg8b8yql91dhv8xsrcrxdix0kr0qgmiva0hwmyzpsn6rqam"; depends=[corpcor mvtnorm]; };
-  GMAC = derive2 { name="GMAC"; version="3.0"; sha256="0c2cfpr8dik7j5br87hkvswrhqzj5vcna54gw6ffdf1rk9rz9j22"; depends=[]; };
+  GMAC = derive2 { name="GMAC"; version="3.1"; sha256="1vrx6lqnm60g8nk44yhl55q2b7xqchxq3qzfrrf59sjk7whpcy5h"; depends=[]; };
   GMCM = derive2 { name="GMCM"; version="1.4"; sha256="13ds8da7lqkvm1mz75440hmn9smi9pznb8bknmckg8vd3fc70f6x"; depends=[ellipse Rcpp RcppArmadillo]; };
   GMDH = derive2 { name="GMDH"; version="1.6"; sha256="093glyz73246m5f2xb2xgbgi80haj4fanmr325byr99dnf4x35yn"; depends=[MASS]; };
   GMDH2 = derive2 { name="GMDH2"; version="1.6"; sha256="0zc1xvg3f3cdspr1d2lx60n93hhnqrp7653gf27krknf9dmsf5zg"; depends=[e1071 glmnet magrittr MASS nnet plotly randomForest xtable]; };
@@ -1887,7 +1895,7 @@ in with self; {
   GOGANPA = derive2 { name="GOGANPA"; version="1.0"; sha256="1xbir21zvr5hv2y6nndzpsrpmnr7glrc7y6xgcyb856wx46ajan9"; depends=[GANPA WGCNA]; };
   GORCure = derive2 { name="GORCure"; version="2.0"; sha256="1hazin0q74hf16azxa5h08kfj7g1079q77n2fn4fahpfxb8hmvwm"; depends=[ICsurv MASS pracma survival]; };
   GOplot = derive2 { name="GOplot"; version="1.0.2"; sha256="1y8dv0kbzpr9za91njw0x233vx5d13vqml9hmpddcyi9s6va5nix"; depends=[ggdendro ggplot2 gridExtra RColorBrewer]; };
-  GOxploreR = derive2 { name="GOxploreR"; version="1.2.4"; sha256="0s22ff2rhxny5r16aryg0qbznx9k1gzgvag7zmpcp783yj7p0n8w"; depends=[annotate biomaRt dplyr ggplot2 ggraph GO_db gontr igraph network]; };
+  GOxploreR = derive2 { name="GOxploreR"; version="1.2.5"; sha256="00ymwl76hwab1iic0g08zrwx76bfc7myks3nivjim1zxw137l144"; depends=[annotate biomaRt dplyr ggplot2 ggraph GO_db gontr igraph network]; };
   GPArotation = derive2 { name="GPArotation"; version="2014.11-1"; sha256="15jh5qqqwx47ara6glilzha87rnih0hs5fsz0jjqwv6wr1gw26rm"; depends=[]; };
   GPBayes = derive2 { name="GPBayes"; version="0.1.0-3"; sha256="0zihn6489xk5ckah6ax5dmzqsdwhpdfwm1zv8ihrrhk93z5fgzar"; depends=[Rcpp RcppEigen RcppProgress]; };
   GPCMlasso = derive2 { name="GPCMlasso"; version="0.1-5"; sha256="0v4n8m3pcqxjyvli2wag3frzbqxpk9bjl8zkyz6sq2cwypv5wvyv"; depends=[caret cubature ltm mirt mvtnorm Rcpp RcppArmadillo statmod TeachingDemos]; };
@@ -1905,7 +1913,6 @@ in with self; {
   GPfit = derive2 { name="GPfit"; version="1.0-8"; sha256="05mpiyi2vxv0wqp422n1mnxa8msc4daq40cwpnpngbcwqhlgqkby"; depends=[lattice lhs]; };
   GPoM = derive2 { name="GPoM"; version="1.3"; sha256="1c870dfbpswx78n4s1v6zy0l1qknrs9335af0z01v1miyrmi95gd"; depends=[deSolve float rgl]; };
   GPoM_FDLyapu = derive2 { name="GPoM.FDLyapu"; version="1.0"; sha256="1hpgiwh7b50gazp1msjsh2840b91wfrxhl2l45lxg6jr1m34q8pj"; depends=[deSolve GPoM]; };
-  GPrank = derive2 { name="GPrank"; version="0.1.4"; sha256="06j5fk427jkp5lphqlx48vfp4fagnxxnv4iyjcha8nvkswcblwgy"; depends=[gptk matrixStats RColorBrewer tigreBrowserWriter]; };
   GPvam = derive2 { name="GPvam"; version="3.0-7"; sha256="1kpz9v2yvinzchmq4cbb5hshihr7lkgwi5dnyxilg5qalbk7bwbk"; depends=[Matrix numDeriv Rcpp RcppArmadillo]; };
   GPvecchia = derive2 { name="GPvecchia"; version="0.1.3"; sha256="1rabini84r5fvl630wkcikjzll89mamc6pqiilvcmsik5c6ymz3w"; depends=[BH fields FNN GpGp Matrix Rcpp RcppArmadillo sparseinv]; };
   GRANBase = derive2 { name="GRANBase"; version="2.6.20"; sha256="0z9378qimdpxrslib2avimik3xqd41angfg12j8vmcbg7zh3binh"; depends=[covr desc dplyr GRANCore htmlTable jsonlite markdown RCurl sendmailR stringi switchr]; };
@@ -1919,7 +1926,7 @@ in with self; {
   GRPtests = derive2 { name="GRPtests"; version="0.1.2"; sha256="12w0vskf1n31zspk3vjgdlhrjwpsysvwwr0l0vm57j6faqc31i3s"; depends=[glmnet MASS randomForest ranger RPtests]; };
   GRS_test = derive2 { name="GRS.test"; version="1.1"; sha256="1ap9453rj5zan6c3ix7jb1qxhxh42bfv295dgqbgjpdygjdlbm6n"; depends=[]; };
   GRTo = derive2 { name="GRTo"; version="1.3"; sha256="1xkcx2agvrpfnmplgaqx70vz303v8rhwnxdyr4hmdlf4h92lbv8i"; depends=[bootstrap]; };
-  GSA = derive2 { name="GSA"; version="1.03.1"; sha256="05x9wspah1cdznjpncqam1iawsxdiigyl8v2anyhss2k7wwd94p1"; depends=[]; };
+  GSA = derive2 { name="GSA"; version="1.03.2"; sha256="1f1mrxxdbdlnibgav6nsvbpniz2x3km2svc0hf43spb4zicn0z8p"; depends=[]; };
   GSA_UN = derive2 { name="GSA.UN"; version="1.0.0"; sha256="1jj9scv9x32zb24114a4sa43xvjmf3gmq8lnfablldjn7p7yx9cv"; depends=[e1071]; };
   GSAQ = derive2 { name="GSAQ"; version="1.0"; sha256="1p1rab2dlh4h9bfg464nhx708p7kc4q01ifccdh5756lq1qh2kzv"; depends=[]; };
   GSAfisherCombined = derive2 { name="GSAfisherCombined"; version="1.0"; sha256="1xhq5nc3kbz3ml9qkdxm6m0c65fybabfhgqlwii2105jl0ll7qy5"; depends=[]; };
@@ -1933,11 +1940,12 @@ in with self; {
   GSSE = derive2 { name="GSSE"; version="0.1"; sha256="034mmxa6kjq5kgikhb5q75viagz5ck9irrjbxm26zq9099qxm13b"; depends=[Iso zoo]; };
   GSelection = derive2 { name="GSelection"; version="0.1.0"; sha256="052vh1haxlzbh3c5i24nrwphapik1y8ribmh6q4axd447ggc0ff9"; depends=[gdata penalized SAM]; };
   GSparO = derive2 { name="GSparO"; version="1.0"; sha256="0xna2crxqwy8fj0s79rxbdcaz9x912rp1vdwqv1557fsnmfv2yf0"; depends=[ggplot2 ThreeWay]; };
+  GTDL = derive2 { name="GTDL"; version="1.0.0"; sha256="1dryw7d9qnsa3wibk9kgkldwb660arzdw024p62a123v7i932jz0"; depends=[survival]; };
   GUIDE = derive2 { name="GUIDE"; version="1.2.7"; sha256="0klaczmn3jnlzyh45yaqlc897irjfk467f4w03awmflaiwan3h6v"; depends=[rpanel tkrplot]; };
-  GUILDS = derive2 { name="GUILDS"; version="1.4.1"; sha256="1j0nhrd2anxmd35v5xz1y3bq8w757qif7h69r5wh0yphrkcxqn4v"; depends=[pracma Rcpp subplex]; };
+  GUILDS = derive2 { name="GUILDS"; version="1.4.5"; sha256="0pxajjrvihvk4yjr9h7yx85daxsbkapzf9dw6xxhxb1idnyihirm"; depends=[nloptr pracma Rcpp]; };
   GUIProfiler = derive2 { name="GUIProfiler"; version="2.0.1"; sha256="10m4d7f2rhw6cmkrnw3jh4iqlkfphf4v7mpfwzw17laq0ncmsx5r"; depends=[graph MASS Nozzle_R1 proftools Rgraphviz rstudioapi]; };
   GUTS = derive2 { name="GUTS"; version="1.2.3"; sha256="1hmd8i21v81k798la5gdmfah1jqb3v891vxm22s41vvxcz0iw1j0"; depends=[Rcpp]; };
-  GUniFrac = derive2 { name="GUniFrac"; version="1.4"; sha256="1dya9shxcd1xbwhlk1vqpxag2vnwzca2lddcy1kfn8yjrws8slk8"; depends=[ape dirmult foreach ggplot2 ggrepel lmerTest MASS Matrix matrixStats modeest Rcpp rmutil statmod vegan]; };
+  GUniFrac = derive2 { name="GUniFrac"; version="1.5"; sha256="0lkj8mjsrhshgs25wchwjq09yg3m1j9dbs6c4gbqkny870wppmba"; depends=[ape dirmult foreach ggplot2 ggrepel MASS Matrix matrixStats modeest Rcpp rmutil statmod vegan]; };
   GVARX = derive2 { name="GVARX"; version="1.3"; sha256="00iqwkshp1i9338x9khh8hyszad6150qb11jlvky5fm488wcw1y3"; depends=[lmtest lubridate sandwich strucchange tsDyn urca vars xts]; };
   GWASExactHW = derive2 { name="GWASExactHW"; version="1.01"; sha256="19qmk8h7kxmn9kzw0x4xns5p3qqz27xkqq4q6zmh4jzizd0fsl78"; depends=[]; };
   GWASbyCluster = derive2 { name="GWASbyCluster"; version="0.1.7"; sha256="0ivlkxbh8m23vbnjfmhk0vfczd5b8lzy9w4gm1m6jpvdm40kn70x"; depends=[Biobase limma rootSolve snpStats]; };
@@ -1947,7 +1955,7 @@ in with self; {
   GWG = derive2 { name="GWG"; version="1.0"; sha256="1va0cd229dhhi1lmrkpwapcm96hrdmxilrmba02xnl7ikhisw0my"; depends=[]; };
   GWI = derive2 { name="GWI"; version="1.0.2"; sha256="0gwbidvdzk7b1w880baa338h7cikvlzvqmbmdxca4r83jzzwxlj1"; depends=[]; };
   GWLelast = derive2 { name="GWLelast"; version="1.2.2"; sha256="1nm4w5m4ca6npmpvh9nb0cnrbzlyv95nvvhgs3pqcrw4igagm4hj"; depends=[doParallel foreach geosphere glmnet sp spgwr]; };
-  GWPR_light = derive2 { name="GWPR.light"; version="0.1.1"; sha256="130mndfvxq8mr4ml57pr5xp3wv1b6z99f965pw6fnrgwl4hyl584"; depends=[data_table doParallel dplyr foreach GWmodel iterators lmtest plm sp]; };
+  GWPR_light = derive2 { name="GWPR.light"; version="0.2.0"; sha256="1nkli4jiqkrf7gqs2pjmsnq6zm6gg9dij3gmimnynbajfj0ypil7"; depends=[data_table doParallel dplyr foreach GWmodel iterators lmtest plm sp]; };
   GWRM = derive2 { name="GWRM"; version="2.1.0.4"; sha256="13g91bx7b0cf1rnyc6azkvjilvc3kjynb8nclmbh8n3ccm6b0v2r"; depends=[doParallel foreach]; };
   GWSDAT = derive2 { name="GWSDAT"; version="3.1.1"; sha256="0z35ywf33lpbsv0fkdqq5d17nfq1cp0za8pq4lb1ckbkv3w974ls"; depends=[deldir digest geometry Kendall lattice lubridate MASS Matrix officer raster readxl rhandsontable sf shiny shinycssloaders shinydashboard shinyjs sm sp splancs zoo]; };
   GWmodel = derive2 { name="GWmodel"; version="2.2-8"; sha256="18jd18mysf7li6c7ywd5cjkwzcvpprc93z8ycndyh0jmyzdr062v"; depends=[FNN maptools Rcpp RcppArmadillo robustbase sp spacetime spatialreg spdep]; };
@@ -1961,7 +1969,7 @@ in with self; {
   Gammareg = derive2 { name="Gammareg"; version="3.0"; sha256="1wh5k3nazycki0h094m4d0nnign8yksgnrrnrm3yka1s7mqzv781"; depends=[]; };
   GapAnalysis = derive2 { name="GapAnalysis"; version="1.0.2"; sha256="0ky1njrymh102dy7sna2cm5f5gyx4s7k77bnsdal1yndgw7ppqvx"; depends=[data_table fasterize geosphere raster rmarkdown sf sp tmap]; };
   GauPro = derive2 { name="GauPro"; version="0.2.4"; sha256="1fll93r25293xdwv28g9my627f736kawr0ji1vxfc3q275zfy7lg"; depends=[lbfgs R6 Rcpp RcppArmadillo]; };
-  GaussSuppression = derive2 { name="GaussSuppression"; version="0.1.0"; sha256="13k6khwvqgxn2i291gi6bwbdjcjl77scz9f8rsmk07cdn6nfakdn"; depends=[Matrix RegSDC SSBtools]; };
+  GaussSuppression = derive2 { name="GaussSuppression"; version="0.2.0"; sha256="0jbxiygqkkdy44rj25vl61ilqc0h9n6g63hrjlc050dp5lyhs6zd"; depends=[Matrix RegSDC SSBtools]; };
   GaussianHMM1d = derive2 { name="GaussianHMM1d"; version="1.0.1"; sha256="1j1cwh0p7czy2l4qf6nymqcp8kkfaki0j2rj8p99nqn2vgc3vcax"; depends=[doParallel foreach]; };
   GeDS = derive2 { name="GeDS"; version="0.1.3"; sha256="1ddq4hnyl3m3s4cchccxiqphi742ljcm86zqpa01a5nrjbnr87x6"; depends=[Matrix Rcpp Rmpfr]; };
   GeNetIt = derive2 { name="GeNetIt"; version="0.1-4"; sha256="1z9h3prlf5r7ks0ys4wy0i5i3giaplqmngsqwxllsy70jjb9s90h"; depends=[exactextractr nlme raster rgeos sf sp spdep]; };
@@ -1982,7 +1990,7 @@ in with self; {
   GeneF = derive2 { name="GeneF"; version="1.0"; sha256="0bizf47944b2zv9ayxb9rhrqx0ilz2xlvkw7x5vbg7l67y2g2l4d"; depends=[]; };
   GeneNet = derive2 { name="GeneNet"; version="1.2.16"; sha256="1r1khga3nxxjghs4vnbymzp0cwb1q17zw2v3a94qz8fsrirq1sf1"; depends=[corpcor fdrtool longitudinal]; };
   GeneralOaxaca = derive2 { name="GeneralOaxaca"; version="1.0"; sha256="19j5c5xr6mdb6pmih94wbjas4yh0dmsqfggg8clvdxkpwk0h338v"; depends=[boot]; };
-  GeneralisedCovarianceMeasure = derive2 { name="GeneralisedCovarianceMeasure"; version="0.1.0"; sha256="02s1wbsdp5ma4pnmcsdl5dwm156zx12d3n1ypzkc33lxg21ashzj"; depends=[CVST kernlab mgcv xgboost]; };
+  GeneralisedCovarianceMeasure = derive2 { name="GeneralisedCovarianceMeasure"; version="0.2.0"; sha256="0xgxmfcpx3mnmp5hxdy5wiihj693qlksv6jxfb9ba4dy2glzdacf"; depends=[CVST kernlab mgcv xgboost]; };
   GeneralizedHyperbolic = derive2 { name="GeneralizedHyperbolic"; version="0.8-4"; sha256="01gqfvmzfslhxdnigzbl3rd55hk6r0kgd8fm9xjl0kb9vmb735lm"; depends=[DistributionUtils MASS]; };
   GeneralizedUmatrix = derive2 { name="GeneralizedUmatrix"; version="1.2.2"; sha256="055q0rspjw5yin0kia6gcax89cfdmgvgvj1zjh4iswfs48n9xdcj"; depends=[ggplot2 Rcpp RcppArmadillo]; };
   GenericML = derive2 { name="GenericML"; version="0.1.1"; sha256="1jzwvgihl12n4jm37m5b2vz7dvpd7s0f85piaphwdll7bxkpw5pq"; depends=[ggplot2 lmtest mlr3 mlr3learners sandwich splitstackshape]; };
@@ -2011,7 +2019,7 @@ in with self; {
   GetLattesData = derive2 { name="GetLattesData"; version="1.4"; sha256="129hnhmw8aw81whyj3g7npwgmg4fmvsji9h2xfg78nrp0abjxijv"; depends=[curl dplyr readr stringdist stringr XML]; };
   GetQuandlData = derive2 { name="GetQuandlData"; version="0.1.0"; sha256="1g1as4m853ab1wp57rzqm0552g0vm7kxzypibv0xywc85084pnmc"; depends=[dplyr jsonlite memoise purrr readr scales stringr]; };
   GetR = derive2 { name="GetR"; version="0.1"; sha256="1b2wirhz4nhvmf863czwb8z8b42ilsyjjrg9rc4nd9b7nz50bmjg"; depends=[party]; };
-  GetTDData = derive2 { name="GetTDData"; version="1.4.4"; sha256="0hgnwja6z8x9faj8g2kyvdhj5j8qxpgy39863hhqyil71vxmlcrw"; depends=[bizdays curl dplyr readxl rvest stringr tidyr xml2]; };
+  GetTDData = derive2 { name="GetTDData"; version="1.4.5"; sha256="03najzq408sr5vfqnkzc15i0p06w4a25773sr2998h92pihjcqwp"; depends=[bizdays curl dplyr readxl rvest stringr tidyr xml2]; };
   GetoptLong = derive2 { name="GetoptLong"; version="1.0.5"; sha256="00fpm6nd3kqa2ikasxa62jzywi46fvvmx1mdavcp5yrxxn37j8wc"; depends=[crayon GlobalOptions rjson]; };
   Ghat = derive2 { name="Ghat"; version="0.1.0"; sha256="1w5agphnbngc0ldb3gbgh4b8ww956lf31bfyxw2zp56crx4akcxf"; depends=[rrBLUP]; };
   Ghost = derive2 { name="Ghost"; version="0.1.0"; sha256="0anrb1n3f3jnq2p0dgqzw5a0gby2slafv2bybgy5gm3f9fsj831w"; depends=[R6]; };
@@ -2020,7 +2028,7 @@ in with self; {
   GiRaF = derive2 { name="GiRaF"; version="1.0.1"; sha256="1m19jxr6h485v32iqq260cizf30cgrx3pk802r73fbp3ssj7nmvh"; depends=[BH Rcpp RcppArmadillo]; };
   GibbsACOV = derive2 { name="GibbsACOV"; version="1.1"; sha256="1ikcdsf72sn1zgk527zmxw3zjhx0yvkal6dv001cgkv202842kll"; depends=[MASS]; };
   Gifi = derive2 { name="Gifi"; version="0.3-9"; sha256="0rwyj60cldf3k118cnc5px16dc5p5bfxgl0w2m1lh6rsqlmza25a"; depends=[colorspace]; };
-  GillespieSSA = derive2 { name="GillespieSSA"; version="0.6.1"; sha256="0li0jqnbl9rfj8gbspq7fv327fii53rh93ffsxpic7804rmrnbi7"; depends=[]; };
+  GillespieSSA = derive2 { name="GillespieSSA"; version="0.6.2"; sha256="1hk7fnv3gdfvx9q4ssw0jgph59l7h2dgl7lv8pivkm678i53n8zl"; depends=[]; };
   GillespieSSA2 = derive2 { name="GillespieSSA2"; version="0.2.8"; sha256="03ym8qx5yc1a6j9l973lc0rjzs8hiax8fq13j7m1fcb1pvnbvar5"; depends=[assertthat dplyr dynutils Matrix purrr Rcpp RcppXPtrUtils readr rlang stringr tidyr]; };
   Gini = derive2 { name="Gini"; version="0.1.0"; sha256="0858mlh8pwylnnb13y40wscq08gcx1cgwjn88wv5vkim5jn4bigi"; depends=[]; };
   GiniDistance = derive2 { name="GiniDistance"; version="0.1.0"; sha256="0jq1dwpsvh3k25lawvzf9ij72jsspzyqsbnrphz8aqwi1dkm3851"; depends=[energy randomForest Rcpp RcppArmadillo readxl]; };
@@ -2064,7 +2072,7 @@ in with self; {
   GxEScanR = derive2 { name="GxEScanR"; version="2.0.2"; sha256="0k3avad4b2x4sqv8iilx5a8gkybjlipx50mj0la4kl9xv0azshkd"; depends=[prodlim Rcpp RcppArmadillo]; };
   GxM = derive2 { name="GxM"; version="1.1"; sha256="02rv8qb46ylk22iqn9cgh63vkyrg9a8nr1d0d3j5hqhi0wyhc41r"; depends=[minqa nlme Rcpp]; };
   H2x2Factorial = derive2 { name="H2x2Factorial"; version="2.0.0"; sha256="01if0ps43xhcw6q5khdbvjd0yvvhkcj4gvdx538g2kaxzi3lrj1z"; depends=[mvtnorm]; };
-  HAC = derive2 { name="HAC"; version="1.0-8"; sha256="04pp3xanw8bm5i3fpxg2j6h4qrff81087jmid5grgzs1pgd59p1c"; depends=[copula numDeriv]; };
+  HAC = derive2 { name="HAC"; version="1.1-0"; sha256="1k19qrirhzl8qaa4svf7qa90r7gphbbvm9m0977z9gd704n8b62a"; depends=[copula]; };
   HACSim = derive2 { name="HACSim"; version="1.0.5"; sha256="0161h3yhi3bh0jq7x105p3rjlrvl46k4iahfz4k84wsvw3akgk1a"; depends=[ape pegas Rcpp RcppArmadillo]; };
   HAPim = derive2 { name="HAPim"; version="1.3"; sha256="03qy0pxazv3gdq3fck7171ixilb9zi1dwnvc4v7d726g0lvn80pg"; depends=[]; };
   HARModel = derive2 { name="HARModel"; version="1.0"; sha256="17sajqi2g5z69gvnfhkn850jkavi8syhm58xadd2khrm73nvwh2i"; depends=[Rcpp RcppArmadillo sandwich xts zoo]; };
@@ -2074,7 +2082,7 @@ in with self; {
   HBglm = derive2 { name="HBglm"; version="0.1"; sha256="1sral7lh5qw5mn31n8459pk52frgw1bjq0z5ckpsnbc4qf3xxcjn"; depends=[bayesm Formula MfUSampler sns]; };
   HCD = derive2 { name="HCD"; version="0.1"; sha256="158szwhpxwj2dj7sibyh8l92dk9cmy6acapmk8wf5hmfybdpgbsh"; depends=[data_table data_tree dendextend irlba Matrix randnet RSpectra stringr]; };
   HCR = derive2 { name="HCR"; version="0.1.1"; sha256="14s46dyw3ifp3pwwlcwbbl47i6hy2whjj1n65i28am5a33nycgha"; depends=[data_table]; };
-  HCTDesign = derive2 { name="HCTDesign"; version="0.7.0"; sha256="0qg6c8sndyk5jgihfdcgk4syp7rwcd8zkb5ndx3rfzdmyfcyrl31"; depends=[diversitree flexsurv mvtnorm Rdpack survival]; };
+  HCTDesign = derive2 { name="HCTDesign"; version="0.7.1"; sha256="0gwj4z2qwxqzx8b3hnb4bfg1pm78n9g4j5x8gis1rcfrk68sl7d5"; depends=[diversitree flexsurv mvtnorm Rdpack survival]; };
   HCTR = derive2 { name="HCTR"; version="0.1.1"; sha256="1hg8mpallwxpmamk6q8x87w5hlqqwvbahfw5zmr9pisiagbwcsay"; depends=[glmnet harmonicmeanp MASS ncvreg Rdpack]; };
   HCV = derive2 { name="HCV"; version="1.2.0"; sha256="00ry36w2v4h3vkf2jq3djcma23xflr7fx7icy2vzwk9ffnmzvpxd"; depends=[BLSM cluster geometry M3C MASS Matrix rgeos sp]; };
   HCmodelSets = derive2 { name="HCmodelSets"; version="1.1.2"; sha256="05w742g89r0hr90awwjqlszib2jjfly52l9c7ag3n22vg4d1ixw1"; depends=[ggplot2 mvtnorm survival]; };
@@ -2116,7 +2124,7 @@ in with self; {
   HLSM = derive2 { name="HLSM"; version="0.9.0"; sha256="1nvjgv8lbqpig9snnxm3k1qs1r7bf43gw7a3prj9l3kmqdd0i4j3"; depends=[abind coda igraph MASS]; };
   HMB = derive2 { name="HMB"; version="1.1"; sha256="19z3d0b98fyjcnbxh3g6h2g927nv0408sbxjlzalrjlw9mbpzd2b"; depends=[Rcpp RcppArmadillo]; };
   HMDHFDplus = derive2 { name="HMDHFDplus"; version="1.9.13"; sha256="1n507nsqz1blikci56jhp48rdpq38dnadh8warc2jmvwizl22a3b"; depends=[httr RCurl XML]; };
-  HMM = derive2 { name="HMM"; version="1.0"; sha256="0z0hcqfixx1l2a6d3lpy5hmh0n4gjgs0jnck441akpp3vh37glzw"; depends=[]; };
+  HMM = derive2 { name="HMM"; version="1.0.1"; sha256="03b548bnwqpnd7zypb4gvy9chyi5li2hp99a9vrh4qszxg2ihas7"; depends=[]; };
   HMMCont = derive2 { name="HMMCont"; version="1.0"; sha256="1drni4f72x83sprn65wnhw0pv1q8lfkgmxdr9h4rwv1accril85x"; depends=[]; };
   HMMEsolver = derive2 { name="HMMEsolver"; version="0.1.2"; sha256="0msin7rq3npz221mvrw3zcs6bwz439six99iblx5p3hkp1n1ljf3"; depends=[Rcpp RcppArmadillo Rdpack]; };
   HMMcopula = derive2 { name="HMMcopula"; version="1.0.4"; sha256="1gmvav02r3miaq4jx05qjcgzw5qv6w1j77vck5gpps8p38zcp34m"; depends=[copula doParallel foreach matrixcalc mvtnorm]; };
@@ -2146,7 +2154,6 @@ in with self; {
   HW_pval = derive2 { name="HW.pval"; version="1.0"; sha256="14nmyqw2d9cmn64789yc54fmiqanh6n1dizp7vj94h7b0jwq63yy"; depends=[]; };
   HWEBayes = derive2 { name="HWEBayes"; version="1.4"; sha256="1rbffx6pn031a278ps9aqxcaq8yi73s5kf60za143ysbfxv9dphw"; depends=[MCMCpack mvtnorm]; };
   HWEintrinsic = derive2 { name="HWEintrinsic"; version="1.2.2"; sha256="035r5bi7m66g351cmrfmf4cj5qqm4fn5pgy3lzsp3gyp2dv0rkg5"; depends=[]; };
-  HYRISK = derive2 { name="HYRISK"; version="1.2"; sha256="1ngwwzv1pavmscpca3ryzfxzd9rppsh0sm7k4sp2kzc9c0bix4xp"; depends=[kerdiest pbapply reliaR rgenoud sets triangle]; };
   HaDeX = derive2 { name="HaDeX"; version="1.2.2"; sha256="1qj6n03pd5kd5ff5h4v8wmnqxxylsxx1p6i88nahqkah2mzg9jdr"; depends=[data_table dplyr DT ggplot2 gsubfn latex2exp readr readxl reshape2 shiny stringr tidyr]; };
   HadamardR = derive2 { name="HadamardR"; version="1.0.0"; sha256="0nr8m6fchpmlvhyisb61y0fymjjrk2k1sd67r14n87sgn3mafh4a"; depends=[numbers openxlsx]; };
   HadoopStreaming = derive2 { name="HadoopStreaming"; version="0.2"; sha256="1l9msaizjvnsj1jrpghj4g057qifdgg6vbqhfxhn1fiqdqi2056q"; depends=[getopt]; };
@@ -2183,7 +2190,6 @@ in with self; {
   Hmisc = derive2 { name="Hmisc"; version="4.6-0"; sha256="1bd1c8sichyijprfpnqj5g72nmgs9jvi0zyw8v4nsg1kn83fj71c"; depends=[base64enc cluster data_table foreign Formula ggplot2 gridExtra gtable htmlTable htmltools lattice latticeExtra nnet rpart survival viridis]; };
   Hmsc = derive2 { name="Hmsc"; version="3.0-11"; sha256="12h9k73bys6ihgs4wgssn9jlgig0kim8i49nqgd3jnd1i3m9b3ii"; depends=[abind ape BayesLogit coda fields FNN ggplot2 MASS Matrix matrixStats MCMCpack nnet pracma pROC rlang sp statmod truncnorm]; };
   HoRM = derive2 { name="HoRM"; version="0.1.3"; sha256="09dkpzlwkkdn0z8g9fbb7hzxbrrq70x9v1zx254svck2jyk0hx58"; depends=[ggplot2 MASS orthopolynom quantmod rsm]; };
-  Holidays = derive2 { name="Holidays"; version="1.0-7"; sha256="1srfbhlrf0pd6gzhp4hbic555lb7camk084rn1qz2g7fjvyijqiq"; depends=[TimeWarp]; };
   Homeric = derive2 { name="Homeric"; version="0.1-3"; sha256="1vcs8fj39zpz45p7gph0mnx65hgr35na0b79i8llyw7i1h7zqzxr"; depends=[]; };
   HostSwitch = derive2 { name="HostSwitch"; version="0.1.0"; sha256="0l6vi3l21s8b71fqax53k8g0l92lwnq5dw2gjb2yw30110mzs6wn"; depends=[checkmate ggplot2 plyr purrr shiny tippy]; };
   Hotelling = derive2 { name="Hotelling"; version="1.0-8"; sha256="04x2x3anwf4d71dm7x6y08ysk7ygysshc0avisyshbl52x39l8si"; depends=[corpcor]; };
@@ -2242,28 +2248,29 @@ in with self; {
   ICtest = derive2 { name="ICtest"; version="0.3-4"; sha256="130n25xxq0iav5y2anyhjjkpvfs438qxjgrbil7yzpaaifhxrmi2"; depends=[GGally ggplot2 ICS ICSNP JADE png Rcpp RcppArmadillo survey xts zoo]; };
   ICvectorfields = derive2 { name="ICvectorfields"; version="0.1.2"; sha256="0h10ijh00ahk2aawg090sspdyxzln8cwzvrfqyi45p19sbx93503"; depends=[fftwtools Rcpp terra]; };
   IDCard = derive2 { name="IDCard"; version="0.3.0"; sha256="06b5zqmgh4clni3mv6ab2a52r4z34isbz0hd1i61793gps9fkc0y"; depends=[stringr]; };
-  IDConverter = derive2 { name="IDConverter"; version="0.2.0"; sha256="1w0j833wxmfc3sy2jwnvz15bvlgy0zss9m9s7md1jkkvhjbxcvnk"; depends=[data_table httr]; };
+  IDConverter = derive2 { name="IDConverter"; version="0.3.0"; sha256="1gyyh9xr6x99a0226b8xlp5rclnw5lzvjdskrcr0a482v9k7l0ja"; depends=[data_table httr tibble]; };
   IDE = derive2 { name="IDE"; version="0.3.0"; sha256="1m1y7gd8i14kl54qxhjy7bnf2md5vs7bb73k7k92nizv941qn0mn"; depends=[DEoptim dplyr FRK ggplot2 Matrix sp spacetime sparseinv tidyr]; };
   IDF = derive2 { name="IDF"; version="2.1.1"; sha256="045z32zv18hnzddhqk3r7dgql6lavkrjwgsn9lwcjhv1v8j3x6cw"; depends=[evd fastmatch ismev pbapply RcppRoll]; };
   IDPSurvival = derive2 { name="IDPSurvival"; version="1.2"; sha256="0hifs8vw3rxlb5vlxs1433pcv2dh7p0mxpgb2n03d98f20vkdwfw"; depends=[gtools Rsolnp survival]; };
   IDPmisc = derive2 { name="IDPmisc"; version="1.1.20"; sha256="0zy6mxqa8arq0vvhsdcifzm3085c23rnwa1n36fhircph1xwvfdw"; depends=[lattice]; };
   IDSA = derive2 { name="IDSA"; version="2.1"; sha256="0ld2359ksnw9jrjicnqikh5r321mfy2i7vzlhh9phm60k0qf5j98"; depends=[GD ggplot2 kableExtra reshape2]; };
-  IDSL_IPA = derive2 { name="IDSL.IPA"; version="1.3"; sha256="1lmmr43cblxi0652hi6nk08c8yv3s6m1aqyysmk4xh2mhnr8hqpb"; depends=[BiocManager doSNOW foreach ggplot2 gridExtra mzR png Rcpp readxl]; };
-  IDSL_MXP = derive2 { name="IDSL.MXP"; version="1.0"; sha256="09r4s7zkc25cfg0dsli5igv9cpywifgqiysspfs5bah4abv4v7f1"; depends=[base64enc xml2]; };
-  IDSL_UFA = derive2 { name="IDSL.UFA"; version="1.0"; sha256="0digl6s13mnknihpg5zy0b2ak9rmwz40ya9bym10bsam86rx3r93"; depends=[BiocManager doParallel doSNOW foreach GA ggplot2 gridExtra IDSL_IPA mzR Rcpp readxl stringi]; };
-  IDSL_UFAx = derive2 { name="IDSL.UFAx"; version="1.0.1"; sha256="11jc1np6b22qr33rilvb557c0aphvb07601a3hw9zmf8s31xs2dg"; depends=[BiocManager doSNOW foreach IDSL_IPA IDSL_UFA mzR Rcpp RcppAlgos readxl stringr]; };
+  IDSL_IPA = derive2 { name="IDSL.IPA"; version="1.4"; sha256="029xq64mlwjbk3wwcfsjg2hmf7rsgvn2k67ba026sh536h91dxil"; depends=[base64enc doSNOW foreach ggplot2 gridExtra IDSL_MXP png readxl xml2]; };
+  IDSL_MXP = derive2 { name="IDSL.MXP"; version="1.1"; sha256="0gzi42s0nrdp2knf9sh2rkzkdy651czxd1afmfip502jlc5vkxpw"; depends=[base64enc xml2]; };
+  IDSL_SUFA = derive2 { name="IDSL.SUFA"; version="1.0"; sha256="1zxjda4fskgk1w8kmmnx2fvk437hd51f45jncdj4wmrlfsi3hj8x"; depends=[]; };
+  IDSL_UFA = derive2 { name="IDSL.UFA"; version="1.1"; sha256="0fi538nw0c6lwcsimsi9nyf4hq268hdw8nhfdisfmiacbkpk3iw2"; depends=[base64enc doParallel doSNOW foreach GA ggplot2 gridExtra IDSL_IPA IDSL_MXP readxl xml2]; };
+  IDSL_UFAx = derive2 { name="IDSL.UFAx"; version="1.1"; sha256="0nmqb6za16xlm8my5s2mmpvds3jbch4r054dfsgf2jn4wn2ylds4"; depends=[base64enc doSNOW foreach IDSL_IPA IDSL_MXP IDSL_UFA RcppAlgos readxl xml2]; };
   IDSpatialStats = derive2 { name="IDSpatialStats"; version="0.3.12"; sha256="0gkicafnzq8aq9bmbbr9n868sh91dwkhs1dk4wry5vkbfaawfxis"; depends=[doParallel foreach igraph spatstat_core spatstat_geom]; };
   IDetect = derive2 { name="IDetect"; version="0.1.0"; sha256="1q1jwgildhx6sp883ni7vcsa3gj997855v5ky41dyf34kv7hvdl1"; depends=[]; };
   IDmeasurer = derive2 { name="IDmeasurer"; version="1.0.0"; sha256="0n7rziaaxm9dqixmw6rxgq9dwnwdl3dsdnpd9s59k5skdlaxnl5m"; depends=[infotheo lme4 MASS]; };
   IDmining = derive2 { name="IDmining"; version="1.0.7"; sha256="1yv8lclkb1ws2n4yd3l561lqhp25vlw0f6d073yg04pidr2dpg2a"; depends=[data_table doParallel foreach]; };
   IETD = derive2 { name="IETD"; version="1.0.0"; sha256="0avhyw0zcb8vj0nqfy41yq5kcd8yf9rmaawdvfcy5rqwxmi1mw9l"; depends=[doParallel dplyr foreach ggplot2 lubridate Rdpack]; };
-  IFAA = derive2 { name="IFAA"; version="1.0.4"; sha256="0lqppf8sd7b82g8qp0ijwl3jn4idxvgz4zhia6kh936sq27qicx6"; depends=[doParallel expm foreach future glmnet HDCI mathjaxr Matrix picasso qlcMatrix rlecuyer]; };
+  IFAA = derive2 { name="IFAA"; version="1.0.5"; sha256="1qqmdlvgphf9qfxjznrjh60p83vamvnsl7jd3zbm38yfv00n51yd"; depends=[doParallel expm foreach future glmnet HDCI mathjaxr Matrix qlcMatrix rlecuyer]; };
   IFC = derive2 { name="IFC"; version="0.1.2"; sha256="1g5l85mjnf08dxszbybwg5z1k2dwgvhbrls8r37iq45rcb31pmyh"; depends=[DT gridExtra jpeg KernSmooth lattice latticeExtra png Rcpp RcppProgress tiff visNetwork xml2]; };
   IFP = derive2 { name="IFP"; version="0.2.4"; sha256="066wz6bjqcvq22gjg2wcmglp798f87rsc8yhm13p0dic3arb5ph6"; depends=[coda haplo_stats]; };
   IGG = derive2 { name="IGG"; version="1.0"; sha256="1cibb9z18xc1zx1813lk14n6p5am84hm7w0hkrsif4j3p89lrwif"; depends=[GIGrvg glmnet MASS Matrix pscl]; };
   IGP = derive2 { name="IGP"; version="0.2.0"; sha256="1hsyl6cjm84w4f4v0gw4hi5y483r8v78xb3k3h1ixix9ymjqr8y5"; depends=[R6 reticulate]; };
   IGST = derive2 { name="IGST"; version="0.1.0"; sha256="12ycrfsgwakaj3k39k1j4ky58wr7a2ibyz6j9cznvjjv6cgz9zg5"; depends=[BootMRMR e1071]; };
-  IGoRRR = derive2 { name="IGoRRR"; version="0.3.1"; sha256="0vbg3rm0l1fx9s0waj9ginqgyyr781nmj38m78mhxsvbhccqdjr0"; depends=[clipr dplyr feather fst fuzzyjoin ggformula glue haven Hmisc htmltools jsonlite lubridate magrittr mapsf purrr readODS readxl rhandsontable rio shiny shinydashboard shinyFiles shinyWidgets skimr sortable stringr tables tibble tidyr zoo]; };
+  IGoRRR = derive2 { name="IGoRRR"; version="0.3.2"; sha256="1px023pjyjd7z1742xx1w37dhkyprhbkha93snm6s25cmg0jhfrn"; depends=[clipr dplyr feather fst fuzzyjoin ggformula glue haven Hmisc htmltools jsonlite lubridate magrittr mapsf purrr readODS readxl rhandsontable rio shiny shinydashboard shinyFiles shinyWidgets skimr sortable stringr tables tibble tidyr zoo]; };
   IHSEP = derive2 { name="IHSEP"; version="0.2"; sha256="1qb6mn9bsd69pifmphywmj6j71v14wklydw23pbj5980c5hrlwsj"; depends=[lpint Rcpp]; };
   IIVpredictor = derive2 { name="IIVpredictor"; version="0.1.0"; sha256="15361j8b60jj3bh8cjxs39d9bir1aywy9bd254s5w94cakhy0ld5"; depends=[lavaan R2jags]; };
   ILS = derive2 { name="ILS"; version="0.2"; sha256="0lj3ripkaq6jn00lpxjihjhm8g1gbkppmb1y9kkrymphg80k1by7"; depends=[depthTools fda_usc lattice MASS multcomp]; };
@@ -2299,7 +2306,7 @@ in with self; {
   IQCC = derive2 { name="IQCC"; version="0.7"; sha256="1zalpmyywkrnci0jd8irakjhiqmr52zhj1sbxf9pz5c7wks2rdbc"; depends=[MASS miscTools qcc]; };
   IRCcheck = derive2 { name="IRCcheck"; version="1.0.0"; sha256="035sx36qf5hdnc51h8251qwxfm30r8h2v2qs2x161ip4cqghw019"; depends=[corpcor GGMncv glmnet MASS Rdpack]; };
   IRISMustangMetrics = derive2 { name="IRISMustangMetrics"; version="2.4.4"; sha256="0pnqmzzzbyqdg5hy4jjmlw38cpi81gsphfs4bqwbhmx77dp7ib06"; depends=[dplyr IRISSeismic pracma RCurl seismicRoll signal stringr XML]; };
-  IRISSeismic = derive2 { name="IRISSeismic"; version="1.6.3"; sha256="0krq0xxxwl59cp8mn82f9xlincvl6l8r6cq5axfmk99nrzcfdy5g"; depends=[pracma RCurl seismicRoll signal stringr XML]; };
+  IRISSeismic = derive2 { name="IRISSeismic"; version="1.6.4"; sha256="0flx6r6lnrd1gms5yyyv3xdg7zzz6kkbi1wrnlg6pyzpwc63xs1p"; depends=[pracma RCurl seismicRoll signal stringr XML]; };
   IRTBEMM = derive2 { name="IRTBEMM"; version="1.0.7"; sha256="09siwm2shjb8hhk64r66fspzykzr2r0m011pv8qcl9k7g040mxpi"; depends=[]; };
   IRTShiny = derive2 { name="IRTShiny"; version="1.2"; sha256="094ax94y6k5z4vlxfla2w19f57q0z32nwwd5npjbgmnkhvfhhl9v"; depends=[beeswarm CTT ltm psych shiny shinyAce]; };
   IRdisplay = derive2 { name="IRdisplay"; version="1.1"; sha256="0awdiv4rr93y8jb1d64sm1iy37ywyniqm7w98yv6qm0zz47h7sw3"; depends=[repr]; };
@@ -2314,13 +2321,12 @@ in with self; {
   ISOcodes = derive2 { name="ISOcodes"; version="2022.01.10"; sha256="0gy7n5bgxnl4rawry0pg078bkks9lzsbsrwjq8q5cvxl4k3dwpdj"; depends=[]; };
   ISOpureR = derive2 { name="ISOpureR"; version="1.1.3"; sha256="1ydhsh3v6n7prrg0dm7hsg8wx1244g791xnz1sjyhljhm31hgwc0"; depends=[futile_logger Rcpp RcppEigen]; };
   ISOweek = derive2 { name="ISOweek"; version="0.6-2"; sha256="1f1h8pgjaa14cvaj8ldl87b4vslxwvyfj46m0hkylwp73sv3g2mm"; depends=[stringr]; };
-  ISR = derive2 { name="ISR"; version="2021.9.24"; sha256="0y1hggkb3d2nvnadr9qg83lsrzzwdnzywpqjkjf460lrmazki5dq"; depends=[MASS]; };
+  ISR = derive2 { name="ISR"; version="2022.3.28"; sha256="1zmibljal0jq0hvdpgkbpnq5f72jlxhgmzv575m2hqmw7f3mibs2"; depends=[MASS]; };
   ISRaD = derive2 { name="ISRaD"; version="1.7.8"; sha256="119vvxviimnvy6x63hijsgmj8w02ni1g30imv8v39rp17hklr6pc"; depends=[dplyr ggplot2 httr maps raster RCurl readxl tidyr writexl]; };
   ISwR = derive2 { name="ISwR"; version="2.0-8"; sha256="1bay7na68awq68bw82dwhcfxp2d3di2dg33islq0mgrhd4sfdfza"; depends=[]; };
   ITNr = derive2 { name="ITNr"; version="0.6.0"; sha256="0yxn3768819ph49bizprj3arrvz9rzhb45rkcpfivwfwlyf010yy"; depends=[blockmodeling circlize cowplot dplyr fastmatch GGally ggplot2 igraph intergraph maps network networkDynamic plyr RColorBrewer reshape2 sna tnet WDI]; };
   ITRLearn = derive2 { name="ITRLearn"; version="1.0-1"; sha256="03xdbpn3qddcq9krdpnywd3xbzfh2viym2qqx6rcqs7w7bdhhlk6"; depends=[Formula kernlab]; };
   ITRSelect = derive2 { name="ITRSelect"; version="1.0-1"; sha256="0llr4hrlbnb728j5rw7vd3r9qlqf571hrldnm72kicis5di2v5di"; depends=[Formula Matrix ncvreg Rglpk svMisc]; };
-  IUPS = derive2 { name="IUPS"; version="1.0"; sha256="01pv03ink668fi2vxqybli0kgva13gxhqfdxkwz6qk5rnpzwvf5w"; depends=[boot Matching R2jags]; };
   IVYplot = derive2 { name="IVYplot"; version="0.1.0"; sha256="1v739xlim3mcw09cyp4z3cbb25ipkpwm9h378fwy2ycp8lmq32gy"; depends=[plyr]; };
   Iboot = derive2 { name="Iboot"; version="0.1-1"; sha256="1fahh86kgv2axj2qg14n87v888sc0kb567s6zr3fh5zv361phwkq"; depends=[]; };
   IceSat2R = derive2 { name="IceSat2R"; version="1.0.1"; sha256="0xmx6schcg03p1c7v86m8r7yh78gc5dgiqa1v1d3s030r787ds6a"; depends=[data_table doParallel foreach glue httr leafgl leaflet leaflet_extras leafsync lubridate lwgeom magrittr miniUI rnaturalearth rvest sf shiny units]; };
@@ -2333,8 +2339,8 @@ in with self; {
   ImputeRobust = derive2 { name="ImputeRobust"; version="1.3-1"; sha256="1zvwlpffpm4gqysz57clf8jkqr72yjbzx90pdy95la51m0b6cdbd"; depends=[extremevalues gamlss gamlss_dist lattice mice purrr]; };
   InDisc = derive2 { name="InDisc"; version="1.1.0"; sha256="0halx4m503b9d4vk5y0qmx6qyvc6lwjr4ys4xdcj6bnzv8wi8ymw"; depends=[matrixStats psych]; };
   InPosition = derive2 { name="InPosition"; version="0.12.7.1"; sha256="0d9c7dwaa1v0j8p5ff9223fc2gkbmbvyqylma2d8l4x5m92jmkv0"; depends=[ExPosition prettyGraphs]; };
-  InSilicoVA = derive2 { name="InSilicoVA"; version="1.3.4"; sha256="1hdvqa4inl5l6rzy2d9z5xvrnsj1jn75pdw77kr7cbnhjvjpi79f"; depends=[coda ggplot2 InterVA5 rJava]; };
-  IncDTW = derive2 { name="IncDTW"; version="1.1.4.3"; sha256="1zqdb0fqy5bidydgfdrvf8hsza2lzd3db0pf7i1x654gk3g0fwf2"; depends=[data_table ggplot2 Rcpp RcppArmadillo RcppParallel scales]; };
+  InSilicoVA = derive2 { name="InSilicoVA"; version="1.3.5"; sha256="15b8hbiahl92w9xdmfgd62j86japp229026b03m7g0pb7kvgv517"; depends=[coda ggplot2 InterVA5 rJava]; };
+  IncDTW = derive2 { name="IncDTW"; version="1.1.4.4"; sha256="0q8ssv86gbp3v6gznzm5vkc8qhny6ycbh85jg5z4izldpx8a4fq6"; depends=[data_table ggplot2 Rcpp RcppArmadillo RcppParallel scales]; };
   IncomPair = derive2 { name="IncomPair"; version="0.1.0"; sha256="156mc4csbxz976md7ikjd6sqamzsfc8ik9xf1qbhrfl8y7957kbb"; depends=[]; };
   IndTestPP = derive2 { name="IndTestPP"; version="3.0"; sha256="1z48pr8znbk1gdvjfdvszxlzhj7v88p3y7zhi1f0xw75dkfpnwwy"; depends=[]; };
   IndepTest = derive2 { name="IndepTest"; version="0.2.0"; sha256="017jasqsxm5m13rhfy9gxvd8nfib5k5y5c8520p3hcffqrxr683p"; depends=[FNN mvtnorm Rdpack]; };
@@ -2347,7 +2353,7 @@ in with self; {
   InfiniumPurify = derive2 { name="InfiniumPurify"; version="1.3.1"; sha256="0yqah4rwpishas0xyv5a7cn4v18brj33cd7f494g21b9brggafq1"; depends=[matrixStats]; };
   Inflation = derive2 { name="Inflation"; version="0.1.0"; sha256="0ikhsslbg32kr9vcaxq8qwaa7ahiwvq91xwv53550wci2vyzmybp"; depends=[seasonal]; };
   Inflect = derive2 { name="Inflect"; version="1.1.0"; sha256="09904nn33libjv29n74n5nq1hj6ka8a4h3jllwpbxk9hsmnlmf9h"; depends=[data_table ggplot2 optimr plotrix readxl tidyr UpSetR writexl]; };
-  InflectSSP = derive2 { name="InflectSSP"; version="1.4.3"; sha256="1am53sr0yrycwvim2a1qhpyla14cfa6fi8yvgvlgrgx8351v8i1v"; depends=[data_table GGally ggplot2 httr jsonlite network plotrix RColorBrewer readxl svglite tidyr xlsx]; };
+  InflectSSP = derive2 { name="InflectSSP"; version="1.4.4"; sha256="1k12gn6sb76xdaz796b080x1gmyjkz64za5psxnhfbiknrijz45k"; depends=[data_table GGally ggplot2 httr jsonlite network plotrix RColorBrewer readxl svglite tidyr xlsx]; };
   InfoTrad = derive2 { name="InfoTrad"; version="1.2"; sha256="0blfn59w73hjga15sw8plwvn6yq9fj95nxwp018mp1harl8wa5db"; depends=[nloptr]; };
   Information = derive2 { name="Information"; version="0.0.9"; sha256="0pszwzj3r7vdvdsy9w1qz95zxp7y2bsyg36b58mm4qcvcvymd4kn"; depends=[data_table doParallel foreach ggplot2 iterators plyr]; };
   InformationValue = derive2 { name="InformationValue"; version="1.2.3"; sha256="1b5g2wyp7x5cdhmf4325n3q7afa6i352lh80j28c8s4356pr3w9j"; depends=[data_table ggplot2]; };
@@ -2395,9 +2401,11 @@ in with self; {
   JBrowseR = derive2 { name="JBrowseR"; version="0.9.0"; sha256="0wwcz5dzjmss2rdqdfxrxbaj01f9avh7h5clzl9aqvql2g0gllbl"; depends=[cli dplyr htmltools htmlwidgets httpuv ids jsonlite magrittr mime reactR readr stringr]; };
   JCRImpactFactor = derive2 { name="JCRImpactFactor"; version="1.0.0"; sha256="1i7853i8k03nq7ax9rypm9qcl5qgyddblgbfjp3yxi1s3a6bkwk1"; depends=[stringr]; };
   JFE = derive2 { name="JFE"; version="2.5.2"; sha256="15y8l2cdw8g4abwiv1ddxb42kcpajp0azzpbqcj4h95ibr4j61i2"; depends=[caret fPortfolio magrittr tcltk2 xts zoo]; };
+  JFM = derive2 { name="JFM"; version="1.0"; sha256="08655vgfb2ll8hwjsj5lsw4849rahn3blisdqn8bwfhclrwd24xn"; depends=[MASS randomcoloR Rcpp RcppArmadillo rgl RockFab Rvcg]; };
   JGEE = derive2 { name="JGEE"; version="1.1"; sha256="078348n623hlyc3n9yh67vv5acsnxapmbwybvrb1i7kawmqw5msi"; depends=[gee MASS]; };
   JGL = derive2 { name="JGL"; version="2.3.1"; sha256="02p9z32f8j60wnh1szkjr2zfa9zwyw0gqinpsvll4dymf8cjawpw"; depends=[igraph]; };
   JGR = derive2 { name="JGR"; version="1.9-1"; sha256="0zh9v16ymq68xv1canfh0hafizb722632pv7r5xb1fsc230hbcc7"; depends=[JavaGD rJava]; };
+  JLPM = derive2 { name="JLPM"; version="1.0.1"; sha256="0k63vi44vfb0k9nkqyhh3iymrca7p47xf2h4x2c4fi50v6bs3v2l"; depends=[marqLevAlg randtoolbox stringr survival]; };
   JM = derive2 { name="JM"; version="1.5-1"; sha256="1nx4dcd3p8f30kryp09iylnnlrvhx0dbx4f51ag7ij5m4ml80zxc"; depends=[MASS nlme survival]; };
   JMI = derive2 { name="JMI"; version="0.1.0"; sha256="05phkwfb9v4g9jixlvbj6br7sbi64zvrgjwfr0v87ijddkxc9si9"; depends=[Rcpp RcppArmadillo]; };
   JMbayes = derive2 { name="JMbayes"; version="0.8-85"; sha256="0s11jpzflc2zg60g4ffcw23c2f4zz3mzddrc2cl5y43xl2v304lb"; depends=[doParallel foreach Hmisc jagsUI MASS nlme Rcpp RcppArmadillo rstan shiny survival xtable]; };
@@ -2426,7 +2434,7 @@ in with self; {
   JointAI = derive2 { name="JointAI"; version="1.0.3"; sha256="1dg685lpqxs1a2mf584a0l0a6zz6bkp06n3ydvgnvngrclhv18zj"; depends=[coda foreach future MASS mathjaxr mcmcse rjags rlang survival]; };
   JointModel = derive2 { name="JointModel"; version="1.0"; sha256="1zgs5c7saqyqxvxmhw5sxy5w67abq344aid6igw1da05bfy2az6h"; depends=[lme4 statmod survival]; };
   JointNets = derive2 { name="JointNets"; version="2.0.1"; sha256="18n9dsy0w0nh7dznp6gw6g5fhhjhf5y589nb49hri0721kq1h3rb"; depends=[brainR igraph JGL lpSolve MASS misc3d oro_nifti pcaPP rgl shiny]; };
-  Julia = derive2 { name="Julia"; version="1.3.1"; sha256="0wkpz6i29mg3hls4gk09ik6s3dxmn4g8lrgflcjwgkglnwzl9r9v"; depends=[]; };
+  Julia = derive2 { name="Julia"; version="1.3.3"; sha256="0x38wzxh1ca5szh2ffhwp9vfpbnjxkazf3a53qdsa2n0gl921r5z"; depends=[]; };
   JuliaCall = derive2 { name="JuliaCall"; version="0.17.4"; sha256="0ys2sm8yf41zqkvwz9cavkqk8br338w93wq0h8lggfq4q0l85n21"; depends=[knitr Rcpp]; };
   JuliaConnectoR = derive2 { name="JuliaConnectoR"; version="1.1.1"; sha256="0chbax02l1p3qr0skvnxw1b8g7kf6s7sk2f3gj0ddl5kj6ls1p5n"; depends=[]; };
   JumpTest = derive2 { name="JumpTest"; version="1.1"; sha256="0y375m5477nq0ybnjmfnd8hi45d8jmdnprqvw5f70llpd7bcghh0"; depends=[MASS Rcpp RcppEigen]; };
@@ -2448,6 +2456,7 @@ in with self; {
   KMunicate = derive2 { name="KMunicate"; version="0.2.1"; sha256="19bsnixy59jqpj414827l2r65jimf0swxg36bi90s3pr4mvf7snq"; depends=[checkmate cowplot ggplot2 pammtools survival tidyr]; };
   KNNShiny = derive2 { name="KNNShiny"; version="0.1.0"; sha256="16zm8bhdivaap3mvhdx2qn1b1j2iqyarclb0y2qd1n4viwcfm9c1"; depends=[caret dplyr e1071 FNN psycho rhandsontable rmarkdown shiny]; };
   KOBT = derive2 { name="KOBT"; version="0.1.0"; sha256="0dw6s68x95d4z5a6p8bs1368jcxv5jx0wd87js28i2qm3q57ss71"; depends=[glmnet knockoff MASS Rdpack spcov xgboost]; };
+  KODAMA = derive2 { name="KODAMA"; version="1.9"; sha256="1kqfj9r9qvwvgxr8d7p56fk83r5a72jhiirqff7n4bwxmvzbpy74"; depends=[minerva Rcpp RcppArmadillo]; };
   KOGMWU = derive2 { name="KOGMWU"; version="1.2"; sha256="1vz0099gp1r10n7w4p480l8rswdw100sns196d9xin2ibmmd2fx9"; depends=[pheatmap]; };
   KONPsurv = derive2 { name="KONPsurv"; version="1.0.4"; sha256="08z24w04rzydm86z201crcmyw88sg92yqma5hzj0blj0fyqakwmi"; depends=[Rcpp survival]; };
   KPC = derive2 { name="KPC"; version="0.1.1"; sha256="09zhmjv7dskkdkhrk5alxpxiwlgl9n2whfhxf237q5zfyxxa8pm9"; depends=[data_table kernlab mlpack proxy RANN]; };
@@ -2458,14 +2467,14 @@ in with self; {
   KSEAapp = derive2 { name="KSEAapp"; version="0.99.0"; sha256="1gfgpa2d32y6bzvf4ww70sm7niq34sqmyrhi0phlqxshqq9xviqc"; depends=[gplots]; };
   KSPM = derive2 { name="KSPM"; version="0.2.1"; sha256="13fq0d016z6880rr93y918l27fsxd5dxc6gbdnkma5sgsjni5cxh"; depends=[CompQuadForm DEoptim expm]; };
   KScorrect = derive2 { name="KScorrect"; version="1.4.0"; sha256="1khvwc610yp3fd4fn0wcgqpzxg9g7sicjjmwvfcahs8qxn3m5vfa"; depends=[doParallel foreach iterators MASS mclust]; };
-  KSgeneral = derive2 { name="KSgeneral"; version="1.1.0"; sha256="0xfzpgr24801y64y7q3xv5a1ry36ijx0rjwx926zg2hxxgjl00xz"; depends=[dgof MASS Rcpp]; };
+  KSgeneral = derive2 { name="KSgeneral"; version="1.1.1"; sha256="0fxkykvkfdh492pzs7fs8x8qnkrr0v5hmvykr8x94lqhnmsr4axn"; depends=[dgof MASS Rcpp]; };
   KTensorGraphs = derive2 { name="KTensorGraphs"; version="1.1"; sha256="1szl66ix6c6vb0zzyp404psglx3lk125903zc4za0qfzcic7a9p6"; depends=[]; };
   KappaGUI = derive2 { name="KappaGUI"; version="2.0.2"; sha256="0vklny804xpd9r60j4a01j2gak8jizwjw0abf7yvbcalv3zbpb3k"; depends=[irr shiny]; };
   KappaV = derive2 { name="KappaV"; version="0.3"; sha256="13mmfb8ijpgvzfj20andqb662950lp9g25k5b26r5ba65p7nhva7"; depends=[maptools PresenceAbsence rgeos sp]; };
   KarsTS = derive2 { name="KarsTS"; version="2.4.1"; sha256="1km8321a8vzff26g3x2hvdv5ciyk3fdpcn7g1xqbsx96fzxyd22n"; depends=[circular forecast infotheo mgcv missForest MVN nonlinearTseries plot3D rgl stinepack stlplus tcltk2 tseries tseriesChaos zoo]; };
   KbMvtSkew = derive2 { name="KbMvtSkew"; version="1.0.2"; sha256="14g27a0dkj4gpf5l2k96fd3aa21fz8b85lf5a1jxj0qgjmr4kib0"; depends=[]; };
   KenSyn = derive2 { name="KenSyn"; version="0.3"; sha256="0s8sq3caxn4swac81196dp52r9lbmxb3ni45yaxh53f5g34slsi8"; depends=[lme4 metafor nlme]; };
-  Kendall = derive2 { name="Kendall"; version="2.2"; sha256="0z2yr3x2nvdm81w2imb61hxwcbmg14kfb2bxgh3wmkmv3wfjwkwn"; depends=[boot]; };
+  Kendall = derive2 { name="Kendall"; version="2.2.1"; sha256="1xmk95l4i3kj9jn0xh1chi2rj322k29jq14ra5pa7316gwf9vx2m"; depends=[boot]; };
   KernSmooth = derive2 { name="KernSmooth"; version="2.23-20"; sha256="0fgclmzk3ksjsh3j47jqzm3jhqrwn12rkp7f84yr6wr43q2pbsr0"; depends=[]; };
   KernSmoothIRT = derive2 { name="KernSmoothIRT"; version="6.4"; sha256="0qqlmcd04m89pmhrbmxxx4lzzb6sksgrm0j8x7fs5r0sxdqy6rcp"; depends=[plotrix Rcpp rgl]; };
   KernelKnn = derive2 { name="KernelKnn"; version="1.1.4"; sha256="07sjf3ambfih34gm2gkall4h60jy9am8dvakr71wk0lsabih3wqx"; depends=[Rcpp RcppArmadillo]; };
@@ -2477,6 +2486,7 @@ in with self; {
   KnockoffScreen = derive2 { name="KnockoffScreen"; version="0.3.0"; sha256="01r04d9ha9l5pkz3lwdcb5x5qqwk8vil9avnbnfn76wg63mdfhbk"; depends=[bigmemory CompQuadForm data_table irlba Matrix seqminer SPAtest]; };
   KnockoffTrio = derive2 { name="KnockoffTrio"; version="1.0.0"; sha256="1lsaslv4p5f4488rqf8fqydpdykdqifsdf2aa9dg1mx8d1agzcb5"; depends=[]; };
   KnowBR = derive2 { name="KnowBR"; version="2.1"; sha256="0r4df95axsrsr72ksy3sdc37sjjd6fvcpj5si7jag7q7ffs8kzmw"; depends=[fossil mgcv plotrix sp vegan]; };
+  KoboconnectR = derive2 { name="KoboconnectR"; version="1.0.0"; sha256="06z9sijgdaarwmq1dxi0jnrnz3r6b7bi80ly3ac2lqwlr59ha35a"; depends=[curl dplyr httr jsonlite mime openssl R6]; };
   KoulMde = derive2 { name="KoulMde"; version="3.2.1"; sha256="0yx04my2vwjpi4l35h1i5xwqckca8b72divww39y1frcvia33g08"; depends=[expm Rcpp RcppArmadillo]; };
   Kpart = derive2 { name="Kpart"; version="1.2.2"; sha256="02df0pr8a0gm8558gbw9svxf5sybmg27grymy71ar9hjnhw5xlf2"; depends=[leaps]; };
   KraljicMatrix = derive2 { name="KraljicMatrix"; version="0.2.1"; sha256="0yzilmiiyzd2x3v0cnjphf0wdwiblh37kgrvmfrdy49qly48pvi2"; depends=[dplyr ggplot2 magrittr tibble]; };
@@ -2494,6 +2504,7 @@ in with self; {
   LARGB = derive2 { name="LARGB"; version="0.1.0"; sha256="0ksyagp4wy1rm7kll6rgdx2735k6ywlaf08d6yys9cv090rpc8l3"; depends=[dplyr imager]; };
   LARisk = derive2 { name="LARisk"; version="1.0.0"; sha256="13d008v8aypqlx35bf16y7rcfcv5qnbsi8q0zpfcl03rzxmqpb8b"; depends=[dplyr Rcpp]; };
   LAWBL = derive2 { name="LAWBL"; version="1.4.0"; sha256="13drqwyg6avmsn3s2d521x1cvlqg85qv999lwnvnyszvz8grahcr"; depends=[coda MASS]; };
+  LBPG = derive2 { name="LBPG"; version="0.1.2"; sha256="01sky2388ylx960vd5lnj48an2n82fd909cnm11v91kklyvkxxlc"; depends=[gsl]; };
   LBSPR = derive2 { name="LBSPR"; version="0.1.6"; sha256="075wcjhvp90fj37ihrplnrc0vy8wpav5qivkw1rgv00fa8xj7pw0"; depends=[dplyr ggplot2 gridExtra plotrix RColorBrewer Rcpp shiny tidyr]; };
   LCA = derive2 { name="LCA"; version="0.1.1"; sha256="014kih33y8b9nls0pcigw68jbz7vgnq8w1xbwm2d37g1m5y6xlyw"; depends=[]; };
   LCAextend = derive2 { name="LCAextend"; version="1.3"; sha256="1l75y3vkbsmsm3pjd5pwy0hlv6gz5ryxs4pkx9aiyhxz2y9wnhpb"; depends=[boot kinship2 mvtnorm rms]; };
@@ -2524,7 +2535,7 @@ in with self; {
   LGEWIS = derive2 { name="LGEWIS"; version="1.1"; sha256="1i52vp0ghjzmyh4r8h6jpyij7x4skw99xvw017b56m8fg64zy70r"; depends=[CompQuadForm geeM mvtnorm SKAT]; };
   LGRF = derive2 { name="LGRF"; version="1.0"; sha256="1kdx6y55aa9n6v43zfz6jk8amvvxbx79sqm1jx4ihgkpgcdglan7"; depends=[CompQuadForm geepack SKAT]; };
   LHD = derive2 { name="LHD"; version="1.3.3"; sha256="0wqjf0wl0l3kq7i030qjzdavsn75jmghjvzk76b9d22fhk356yh8"; depends=[numbers]; };
-  LIC = derive2 { name="LIC"; version="0.0.1"; sha256="1fmd3sjzzkcpbin9ak72yvv4ibrrwhzqxymmpsppqfv1syk6h6s4"; depends=[]; };
+  LIC = derive2 { name="LIC"; version="0.0.2"; sha256="01wqx3mqq0rz4m0zp07ln6d396fz7xcwm37kn8js26ravyhiipdq"; depends=[]; };
   LICORS = derive2 { name="LICORS"; version="0.2.0"; sha256="0p9y21k1mj1v397jpb5g6jiw7rpzbyfwr4kv2rp3lyxyasy2ykf0"; depends=[fields FNN locfit Matrix mvtnorm RColorBrewer zoo]; };
   LIHKGr = derive2 { name="LIHKGr"; version="0.1.0"; sha256="16yyalsdbaxncgfabsz2q2fixzmwyd62gvnvnxazf4vlypp6xlqz"; depends=[dplyr magrittr purrr R6 raster RSelenium rvest tibble xml2]; };
   LIM = derive2 { name="LIM"; version="1.4.6"; sha256="03x1gnm06bw1wrzc01110bjzd2mvjdzbc2mbrazh22jrmb32w5d8"; depends=[diagram limSolve]; };
@@ -2535,16 +2546,17 @@ in with self; {
   LLSR = derive2 { name="LLSR"; version="0.0.3.1"; sha256="0nci8p3gw35a3ifwrq7r2jih718p2iwmmh3495qnh0fk304y7kbi"; depends=[crayon digest dplyr ggplot2 minpack_lm nleqslv openxlsx rootSolve svDialogs svglite]; };
   LMERConvenienceFunctions = derive2 { name="LMERConvenienceFunctions"; version="3.0"; sha256="0jg889qh5a9wdi01yiw6z7kivs9dzh5dcq39f4zifdpqzglhshzb"; depends=[fields LCFdata lme4 Matrix mgcv]; };
   LMMELSM = derive2 { name="LMMELSM"; version="0.1.0"; sha256="1wrda19629k7fg3rryk9sf16h1w5915cifv7iiqqg64k8w1vwnaj"; depends=[BH Formula loo MASS nlme Rcpp RcppEigen rstan rstantools StanHeaders]; };
-  LMMsolver = derive2 { name="LMMsolver"; version="1.0.0"; sha256="0ri89i5q3026ambm1zk24adi0jf22wb9assklwsqzz2kmh54k282"; depends=[agridat ggplot2 maps Matrix Rcpp sp spam]; };
-  LMMstar = derive2 { name="LMMstar"; version="0.5.2"; sha256="0s5j6lwyh8wswkkgi3d2j0cb3md5x2xk086hr3hjhimbazcr46xr"; depends=[emmeans ggplot2 lava Matrix multcomp nlme numDeriv reshape2 sandwich]; };
+  LMMsolver = derive2 { name="LMMsolver"; version="1.0.1"; sha256="0lak467fhb34xc7k8hfg48zjicf4dgyrgkm59gwph22fdixs6v6f"; depends=[agridat ggplot2 maps Matrix Rcpp sp spam]; };
+  LMMstar = derive2 { name="LMMstar"; version="0.5.4"; sha256="1n92qfg3hixdik95gylbbckc66hajqwsc15k221vrvxwdl56a16q"; depends=[emmeans ggplot2 lava Matrix multcomp nlme numDeriv reshape2 sandwich]; };
   LMN = derive2 { name="LMN"; version="1.1.2"; sha256="17xsf61dnpvbhxwbgqjj9k26xwd9s90vfzv2ymj1i2g5zdd6w9k7"; depends=[Rcpp RcppEigen SuperGauss]; };
-  LMest = derive2 { name="LMest"; version="3.0.2"; sha256="0x80cgd54qw1l4wayxwyyccmajn5i227727wlsgm6s4chnpvispz"; depends=[diagram Formula MASS mclust mix MultiLCIRT mvtnorm scatterplot3d]; };
+  LMest = derive2 { name="LMest"; version="3.0.3"; sha256="1kw59acjq1cax52dq8dqb5nzysil5l3s26i1h89q0smrkirscssx"; depends=[diagram Formula MASS mclust mix MultiLCIRT mvtnorm scatterplot3d]; };
   LMfilteR = derive2 { name="LMfilteR"; version="0.1.3"; sha256="0c27154jghfl83n3sn26pr8mjcybrq02glvnjcx8hllrmz4gmnmi"; depends=[MASS]; };
   LMoFit = derive2 { name="LMoFit"; version="0.1.6"; sha256="10xiaa5h8c0sq9z70yjs29z8jnjyqgybdv33d6s2100h3n46jd31"; depends=[ggplot2 lmom pracma sf]; };
   LNIRT = derive2 { name="LNIRT"; version="0.5.1"; sha256="0w32qvz5mhzg6f8050p57v26amn6d2il2icjfiypf7yi3gsx7w09"; depends=[MASS]; };
   LOGAN = derive2 { name="LOGAN"; version="1.0.0"; sha256="00y8kcykw01gv2g20vmpwkc3qqyafwbiw5pa731xlfnh1b8sn0hi"; depends=[dplyr foreign ggplot2 magrittr modules pander psych rlang stringr]; };
+  LOGANTree = derive2 { name="LOGANTree"; version="0.1.0"; sha256="14faq31by8csmik1jbi1bswvifnv5agipiyzz556j7f3w9cwc0ri"; depends=[caret caretEnsemble dplyr gbm ggplot2 ROCR rpart_plot tibble]; };
   LOGICOIL = derive2 { name="LOGICOIL"; version="0.99.0"; sha256="1wgg7kigzzk5ghjn3hkjf1bb8d6mvjfmkwq64phri5jpxd742ps9"; depends=[nnet]; };
-  LOMAR = derive2 { name="LOMAR"; version="0.2.0"; sha256="1wfkair4zzd58s36mc9gyk7d24cp6y2lrg7qsg0acx3b00wzdjwq"; depends=[aws BH data_table dbscan doParallel EBImage ff FNN foreach pracma proxy RANN Rcpp reshape2 transport]; };
+  LOMAR = derive2 { name="LOMAR"; version="0.2.1"; sha256="0i361yz5h1g9bb5xqq9fq2bb3ylwkshnmqrlhijz9fr9ypm2ywh5"; depends=[aws BH data_table dbscan doParallel EBImage ff FNN foreach pracma proxy RANN Rcpp reshape2 transport]; };
   LOPART = derive2 { name="LOPART"; version="2020.6.29"; sha256="1zxaag5pj3l9rzxhlrkx8q4adlap7wsdysb4y6ijvsmxvv63j22k"; depends=[data_table Rcpp]; };
   LOST = derive2 { name="LOST"; version="2.0.2"; sha256="15ggmvjy2k4j692y9h3anfzmb0hgnx66cbr76grwvcfysdx87ick"; depends=[e1071 gdata geomorph MASS miscTools pcaMethods rgl shapes]; };
   LPBkg = derive2 { name="LPBkg"; version="1.2"; sha256="1pgv6cb7m2j7qnrzybnv6x67a3ry8kpvisqj86rvxzclc9q56fdn"; depends=[Hmisc orthopolynom polynom]; };
@@ -2552,7 +2564,7 @@ in with self; {
   LPDynR = derive2 { name="LPDynR"; version="1.0.2"; sha256="0vlrx4dbv62b89xbmsp24iyn4wiq3695szbli18baf2qj2nbmnym"; depends=[data_table dplyr magrittr raster rgdal virtualspecies]; };
   LPGraph = derive2 { name="LPGraph"; version="2.1"; sha256="1d2kslravi3v9kf6sdabwfpa9s9xxqj3s3d7f7qfcrpfydqixq1q"; depends=[car PMA]; };
   LPKsample = derive2 { name="LPKsample"; version="2.1"; sha256="0ifhx8w9f6sacmnck2g7i7r742i8bwwzf0rgajw3klw2wni9ikqx"; depends=[apcluster igraph LPGraph mclust]; };
-  LPM = derive2 { name="LPM"; version="2.8"; sha256="0a4cf7chjyfwp1s8dfyfgbm2k6nybfmfh4bhz8b8pfj1an68bdr6"; depends=[fracdiff MASS powdist]; };
+  LPM = derive2 { name="LPM"; version="2.9"; sha256="0gmymzq6khcnhzv1qnysrd1rdacynys1v95rq7970w6ai87z9w80"; depends=[fracdiff MASS powdist]; };
   LPRelevance = derive2 { name="LPRelevance"; version="3.2"; sha256="1bbsva41r8wj0hxar334zvwng0zrs0djq6jn74b345ncwz7ssa3h"; depends=[BayesGOF Bolstad2 caret ggplot2 glmnet leaps locfdr MASS polynom reshape2]; };
   LPS = derive2 { name="LPS"; version="1.0.16"; sha256="192iz2gakrddqc4h1y4swj3m3dl03x9mvj3i1dl7jnj18dxik24n"; depends=[]; };
   LPStimeSeries = derive2 { name="LPStimeSeries"; version="1.0-5"; sha256="0jmcy8076w4bzfnxaq2m3s60c1wdmywkwzfyrc19wdm8idf666wh"; depends=[RColorBrewer]; };
@@ -2587,7 +2599,7 @@ in with self; {
   LTPDvar = derive2 { name="LTPDvar"; version="1.2"; sha256="0r9v5g5y9n85jdcvm7zpapm73ism48m3mmybpcmgcs028h2ndv7v"; depends=[]; };
   LTRCforests = derive2 { name="LTRCforests"; version="0.5.5"; sha256="0f0am4wydk4wqiwjzxj2ibdkp5sd47qam4218nn0489knkvas3s7"; depends=[ipred partykit prodlim survival]; };
   LTRCtrees = derive2 { name="LTRCtrees"; version="1.1.1"; sha256="1k16m2fpwn8m4dvm1b82srf3bgkvkwf6kcjpwjgkdappifc7p5m8"; depends=[icenReg Icens interval inum partykit rpart survival]; };
-  LUCIDus = derive2 { name="LUCIDus"; version="2.1.4"; sha256="1df3k5jl57l07f13k854izmxf1vnml54lx1d3zrz3gqvhhzrpl40"; depends=[boot glasso glmnet jsonlite mclust networkD3 nnet]; };
+  LUCIDus = derive2 { name="LUCIDus"; version="2.1.5-1"; sha256="09855qvr8mhc7g8crpjx7pxrkqfqrzd6dy9d0ccffazz6qgbbjfz"; depends=[boot glasso glmnet jsonlite mclust networkD3 nnet progress]; };
   LVGP = derive2 { name="LVGP"; version="2.1.5"; sha256="03sd777s16nv04ikn9b3rj67ad6n4bwi0rycc7wqdnq0dx6xgniy"; depends=[lhs randtoolbox]; };
   LW1949 = derive2 { name="LW1949"; version="1.1.0"; sha256="147ymp7j98ihp1dcz3p5v9ar6h767phjdnga5q5vf1wwa2mxawg7"; depends=[MASS mgcv plotrix]; };
   LWFBrook90R = derive2 { name="LWFBrook90R"; version="0.4.5"; sha256="1mqxay678baxqkmbcknn5bq3bw6fk9nr04ljsbh13wqxz27iw5bj"; depends=[data_table doFuture foreach future iterators progressr vegperiod]; };
@@ -2595,7 +2607,7 @@ in with self; {
   LaF = derive2 { name="LaF"; version="0.8.4"; sha256="1mj010bl4ql0hm33vl0dd08s9dab11y9fa32nsqs6kbb22gjzk6p"; depends=[Rcpp]; };
   LabApplStat = derive2 { name="LabApplStat"; version="1.4.3"; sha256="12brjwd0hazc3s69wjybmfvapslcx87npa647hlrcfjxzg46x9ar"; depends=[emmeans ggplot2 ggraph]; };
   LabRS = derive2 { name="LabRS"; version="0.1.0"; sha256="1a9qafimia83qldsif5wfqx273mvqbx22p5i0hg8n4jvj4vzpy2w"; depends=[knitr]; };
-  LabourMarketAreas = derive2 { name="LabourMarketAreas"; version="3.2.5"; sha256="1fhr677mp7dp18q9yvqycsmyqvqh007y3pc8r500n2axiczjzkqg"; depends=[data_table maptools rgdal rgeos sp spdep]; };
+  LabourMarketAreas = derive2 { name="LabourMarketAreas"; version="3.3"; sha256="1879w9xssymk6shnlb3alkfkw4697nfwx9b0gw7y3qrvvvjwh05j"; depends=[data_table maptools rgdal rgeos sp spdep]; };
   LadR = derive2 { name="LadR"; version="1.0.6"; sha256="14n58y1p14wwxwwrbdqv2kkplma8ficpqx8nd22qp931idijpsji"; depends=[L1pack]; };
   LagSequential = derive2 { name="LagSequential"; version="0.1.1"; sha256="1i8h4acfx21r0kxbg4i0k48kvhwy2abri191wp4b22amhz4vqyyd"; depends=[]; };
   Lahman = derive2 { name="Lahman"; version="9.0-0"; sha256="0q6whyqlxdkm17i6hichnd89y3pnjc0xc5aabdanf1i4lpv5vynr"; depends=[dplyr]; };
@@ -2621,7 +2633,7 @@ in with self; {
   LearnBayes = derive2 { name="LearnBayes"; version="2.15.1"; sha256="0ch54v2zz2yyyk0lvn5rfikdmyz1qh9j1wk3585wl8v58mc0h4cv"; depends=[]; };
   LearnClust = derive2 { name="LearnClust"; version="1.1"; sha256="0r2ns1bnsygc6jhr83v1ylfp8fkn3j76233zk5cwsxrq0grx5iqs"; depends=[magick]; };
   LearnGeom = derive2 { name="LearnGeom"; version="1.5"; sha256="1pnxiwjkdj78p4hkl1lqagmd937q63yncb45fcra28sa9v9psrcs"; depends=[]; };
-  LearnPCA = derive2 { name="LearnPCA"; version="0.1.1"; sha256="0crsgpzha1pqg0iqwqp4bqsbl6cg3x8qqkg1qkdyzkl19f3mdgnq"; depends=[]; };
+  LearnPCA = derive2 { name="LearnPCA"; version="0.1.4"; sha256="17pr3m5ifcb4snza64d0ri3h94ybwn85clx4rvqb0y9735jmgw7w"; depends=[]; };
   LearningRlab = derive2 { name="LearningRlab"; version="2.2"; sha256="15lkcrdfdrip1s4rpsn6kshjzsg1hfryh6lgbiqw9x2h0xvfj4da"; depends=[crayon magick]; };
   LearningStats = derive2 { name="LearningStats"; version="0.1.0"; sha256="0xrrb6jws4zj2nwnn30g338bib49b7j26v52ym7p2variwllz068"; depends=[data_table haven readODS readxl]; };
   LexFindR = derive2 { name="LexFindR"; version="1.0.2"; sha256="16ikw3s034zqgfcp2hiyhv1nq5kp65wpq1d8fclrlqiabilyk7x4"; depends=[]; };
@@ -2650,7 +2662,9 @@ in with self; {
   Lmoments = derive2 { name="Lmoments"; version="1.3-1"; sha256="0pc63bj9a8hzr5m3yssrc4kin39fffwkl8rggs3sagzr12d4i7bw"; depends=[Rcpp RcppArmadillo]; };
   LncFinder = derive2 { name="LncFinder"; version="1.1.5"; sha256="0mb41fjph4svn2amdx6fb2j8pzgll17c0xxwnsan9vjipnmj59hi"; depends=[caret e1071 seqinr]; };
   LncPath = derive2 { name="LncPath"; version="1.1"; sha256="1cpsy681yq96867nr9g75xb0dilb016shqlhxpdn5xyiakrgjl4v"; depends=[igraph]; };
+  LoBrA = derive2 { name="LoBrA"; version="1.0"; sha256="0rsxkli6xhjwy058skgij2cf3n1lcjsaw3pd51i55l2bpwlrmci6"; depends=[lawstat nlme qpdf RColorBrewer]; };
   LocFDRPois = derive2 { name="LocFDRPois"; version="1.0.0"; sha256="0zzdp9wgwr6wn3grimghpj4vq34x37c8bqg8acfzlzih8frqal3r"; depends=[dplyr ggplot2]; };
+  LocKer = derive2 { name="LocKer"; version="1.1"; sha256="034r6215aigb5hdm2a7cs8qw3nikjdjqnqpn1g27p3lxwfp0n3pr"; depends=[fda Matrix psych]; };
   LocalControl = derive2 { name="LocalControl"; version="1.1.2.2"; sha256="1lqcjy5fzz1ndqih5nikidy2zfkn2dn7smbyvdjy47pgcjbzm96a"; depends=[cluster gss lattice Rcpp]; };
   LocalControlStrategy = derive2 { name="LocalControlStrategy"; version="1.3.3"; sha256="05vggk5d0w3f9w5217c9hzy5jhwv24p2g8pcj0l6zxkhic01nbrl"; depends=[cluster lattice]; };
   Lock5Data = derive2 { name="Lock5Data"; version="3.0.0"; sha256="1407vkcdphy5pb4sgy2ms36vjffiwg2l2753gbszm9wv2m0wrnv4"; depends=[]; };
@@ -2672,7 +2686,7 @@ in with self; {
   LowRankQP = derive2 { name="LowRankQP"; version="1.0.4"; sha256="0cg8f42s15vphnifw6gnrhxaj6j5hmgbq8xki5mkwjsizd0ch5na"; depends=[]; };
   LowWAFOMNX = derive2 { name="LowWAFOMNX"; version="1.1.1"; sha256="0f75qsv6pisgvk39yagzfxscnyfsgh63rmhp4gpybpl0pqmjp48x"; depends=[Rcpp RSQLite]; };
   LowWAFOMSobol = derive2 { name="LowWAFOMSobol"; version="1.1.1"; sha256="1ym3i2m1am356di9lcp5nfmxq0np3c4bwsv6bbmf7hg02j7dhwi4"; depends=[Rcpp RSQLite]; };
-  Luminescence = derive2 { name="Luminescence"; version="0.9.18"; sha256="1jv6pdc1i8vwnbq17qvyj0rvjlyr5xdgbgx5z4cib32z2v1xygw6"; depends=[bbmle data_table DEoptim httr lamW matrixStats mclust minpack_lm plotrix Rcpp RcppArmadillo readxl shape XML zoo]; };
+  Luminescence = derive2 { name="Luminescence"; version="0.9.19"; sha256="1hs2sdlvnvy20k03alagq505jgd3756azcdjhgswjbk4bhy4rd8r"; depends=[bbmle data_table DEoptim httr lamW matrixStats mclust minpack_lm plotrix Rcpp RcppArmadillo readxl shape XML zoo]; };
   M2SMF = derive2 { name="M2SMF"; version="2.0"; sha256="160qjrb3mxybvr4z6zra6rzf6scyrb9mplw36gqlfxj418ndnmm1"; depends=[dplyr MASS]; };
   M2SMJF = derive2 { name="M2SMJF"; version="1.0"; sha256="0v4sg5h3h2pjp996jspv206c8cymjpn1fg38ivaw12s7bmx8j409"; depends=[dplyr MASS]; };
   M3 = derive2 { name="M3"; version="0.3"; sha256="1l40alk166lshckqp72k5zmsgm7s5mgyzxlp11l64mgncjwkw2r3"; depends=[mapdata maps ncdf4 rgdal]; };
@@ -2680,14 +2694,14 @@ in with self; {
   MABOUST = derive2 { name="MABOUST"; version="1.0.1"; sha256="044k29nibl5zc32zz2696kbhrz5dafgaikgmjqznsq25p48si453"; depends=[Rcpp RcppArmadillo]; };
   MACER = derive2 { name="MACER"; version="0.1.1"; sha256="006f15s75hnyacc31ni4gf1r4j32hlv5bqmnnl9fkcgf9jxs9hw4"; depends=[ape httr rentrez]; };
   MADPop = derive2 { name="MADPop"; version="1.1.2"; sha256="0hwnkjrc3w9x3gha0y70fidfc587b6gfdhzwzdzrfvxrhsdy05yd"; depends=[BH Rcpp RcppEigen rstan StanHeaders]; };
-  MAFDash = derive2 { name="MAFDash"; version="0.2.0"; sha256="0hb5dqjncb5if15l9215v0p5rkywg7vld1gdbjhgj8xjqjg9mhki"; depends=[bsplus canvasXpress circlize ComplexHeatmap crosstalk data_table dplyr DT ensurer flexdashboard GenomicRanges ggbeeswarm ggplot2 htmltools IRanges knitr maftools pheatmap plotly readr reshape2 rmarkdown TCGAbiolinks tibble tidyr]; };
-  MAGEE = derive2 { name="MAGEE"; version="1.0.2"; sha256="1kmh7hdgk7p5blh9kfid7h3iaa5cjl1m0kfky8fjfnnjsid2f4b7"; depends=[CompQuadForm foreach GMMAT MASS Matrix Rcpp RcppArmadillo SeqArray SeqVarTools]; };
+  MAFDash = derive2 { name="MAFDash"; version="0.2.1"; sha256="11d503sw423ddawj8lapxpm59532nxz4b6wh06fn4kqzh0gq1mbj"; depends=[bsplus canvasXpress circlize ComplexHeatmap crosstalk data_table dplyr DT ensurer flexdashboard GenomicRanges ggbeeswarm ggplot2 htmltools IRanges knitr maftools pheatmap plotly readr reshape2 rmarkdown TCGAbiolinks tibble tidyr]; };
+  MAGEE = derive2 { name="MAGEE"; version="1.1.0"; sha256="18kibsankq9b00vkcc7480g1iahgys9n4lyiykxzqq41s8lm58jc"; depends=[CompQuadForm foreach GMMAT MASS Matrix Rcpp RcppArmadillo SeqArray SeqVarTools]; };
   MAGNAMWAR = derive2 { name="MAGNAMWAR"; version="2.0.4"; sha256="1asr18byrgy6bkpxpmnkczgr3dam6ymf30lw6izq112krc891bg4"; depends=[ape coxme doParallel dplyr foreach iterators lme4 multcomp plyr qqman seqinr survival]; };
   MAINT_Data = derive2 { name="MAINT.Data"; version="2.6.2"; sha256="0c2llzjhrv1jn5zna654bjgyq5q0hqwzfv9kda9mfjf20pfc34my"; depends=[GGally ggplot2 MASS mclust miscTools pcaPP Rcpp RcppArmadillo robustbase rrcov sn withr]; };
   MAKL = derive2 { name="MAKL"; version="1.0.0"; sha256="0x0b7jpx3hiipmy7jgh8dnz1rnbh512g81fv62049c8v6wg47pd7"; depends=[AUC grplasso]; };
   MALDIquant = derive2 { name="MALDIquant"; version="1.21"; sha256="1y1g3819ss06dry70kfhg2syddw71682qmzkcyppfsma6hhghw87"; depends=[]; };
   MALDIquantForeign = derive2 { name="MALDIquantForeign"; version="0.13"; sha256="0xxdvfg9h6vl2g2wlxfmrskn8576rd958mn5jblryyqg9xbanlhr"; depends=[base64enc digest MALDIquant readBrukerFlexData readMzXmlData XML]; };
-  MALDIrppa = derive2 { name="MALDIrppa"; version="1.1.0"; sha256="0463wm7y4xj15f8601ng744gzsn3bj4iczv8bsjyx0asbsxha9fx"; depends=[lattice MALDIquant robustbase signal waveslim]; };
+  MALDIrppa = derive2 { name="MALDIrppa"; version="1.1.0-1"; sha256="1gm5w614r66av6bvfiad5964hsr6hb0c03c90ck9lb251bns98wm"; depends=[lattice MALDIquant robustbase signal waveslim]; };
   MAMS = derive2 { name="MAMS"; version="2.0.0"; sha256="05pnrxziwsgnhy05fac8smxcm65zxi2dl7lar2jakiamd2hxv3c2"; depends=[future future_apply mvtnorm]; };
   MANCIE = derive2 { name="MANCIE"; version="1.4"; sha256="0940xl3z5bca6hcnj2bj341l79wajilxlxzmyz3dlgrz0b3bbdmm"; depends=[]; };
   MANOVA_RM = derive2 { name="MANOVA.RM"; version="0.5.3"; sha256="0gdyd7avdc7jh1hp03wlbqi5krijxrgargkivq97qyk83zf387dx"; depends=[data_table ellipse magic MASS Matrix multcomp plotrix plyr]; };
@@ -2697,8 +2711,7 @@ in with self; {
   MARSANNhybrid = derive2 { name="MARSANNhybrid"; version="0.1.0"; sha256="1xs0gjdjl9c5i1i8ds9s3sq0764267h6gngkbwimfa8miq287idm"; depends=[earth neuralnet]; };
   MARSS = derive2 { name="MARSS"; version="3.11.4"; sha256="10mf1vs51yqqg6s2435j84xbaxvr6wdraha07mqlr2rmprgl5a0r"; depends=[KFAS mvtnorm nlme]; };
   MARSSVRhybrid = derive2 { name="MARSSVRhybrid"; version="0.1.0"; sha256="10b8d75q5hiqf8id1qsvjx379xyx4vphq5r1iwvykjaw4zxbyx65"; depends=[e1071 earth]; };
-  MARX = derive2 { name="MARX"; version="0.2"; sha256="1rc87hz719khl8mclbkfdix499nsc4nyihaaavd73nany7iprm02"; depends=[fBasics matlab metRology stabledist tseries]; };
-  MASS = derive2 { name="MASS"; version="7.3-55"; sha256="191i1iylvh2w2hi99fnm06731lma7z5snpjknfff1m9ziyy9qab5"; depends=[]; };
+  MASS = derive2 { name="MASS"; version="7.3-56"; sha256="11gv5965ba6xr4qsp1945vd39rp0sggzpa103rwj1c5hw0abvnlv"; depends=[]; };
   MASSExtra = derive2 { name="MASSExtra"; version="1.1.2"; sha256="0jzzm3ahn1iisdp632hcn8lnk6hhh699jqfj6v0164qxd6487xvs"; depends=[demoKde MASS]; };
   MASSTIMATE = derive2 { name="MASSTIMATE"; version="2.0-1"; sha256="1dvidwjw4zgflms5njbd9n85g1gbgfg6hk0fb63q5n65iyxxfmyh"; depends=[]; };
   MAT = derive2 { name="MAT"; version="2.2"; sha256="093axw2zp4i3f6s9621zwibcxrracp77xrc0q5q0m4yv3m35x908"; depends=[Rcpp RcppArmadillo]; };
@@ -2726,7 +2739,6 @@ in with self; {
   MCAvariants = derive2 { name="MCAvariants"; version="2.6"; sha256="19wnkk7bknj5yd0s63ssybyzbs7x022wyr444hlinw8b181x57f3"; depends=[ggplot2 ggrepel gridExtra plotly]; };
   MCBackscattering = derive2 { name="MCBackscattering"; version="0.1.1"; sha256="0vvcqjrh8psl480s4q2830rzm2bwy9mmvk9kipp72lzln51qnha6"; depends=[]; };
   MCDA = derive2 { name="MCDA"; version="0.0.21"; sha256="1y37whbmzzghdav10l4w72sv6dzdxfhij7vkq5217ajkn2cm06mg"; depends=[combinat glpkAPI RColorBrewer Rglpk]; };
-  MCDM = derive2 { name="MCDM"; version="1.2"; sha256="0r27y9mqvfnv1m0yi2xdyjr4y1s43d5yav960kz2xa732hrrxw01"; depends=[RankAggreg]; };
   MCI = derive2 { name="MCI"; version="1.3.3"; sha256="1wn8lcr5sq3697nsmly6syb9jv7p99ks0fy933ff5rx54x3rf9hz"; depends=[]; };
   MCID = derive2 { name="MCID"; version="0.1.0"; sha256="034r4qxbqnl9hhkpv9r79p26lzj5qh0379ya43ynyvbbi8b8z3rl"; depends=[]; };
   MCL = derive2 { name="MCL"; version="1.0"; sha256="1w36h4vhd525h57pz6ik3abbsrvxnkcqypl2aj1ijb6wm7nfp4ri"; depends=[expm]; };
@@ -2735,8 +2747,7 @@ in with self; {
   MCMC_qpcr = derive2 { name="MCMC.qpcr"; version="1.2.4"; sha256="0v0d43wnq3swbrcsbg9qmwkmk4s50grd6cik4ng5baj2i6i4hd2n"; depends=[coda ggplot2 MCMCglmm]; };
   MCMC4Extremes = derive2 { name="MCMC4Extremes"; version="1.1"; sha256="06p6xdbja7vrdq4vnhybpkmyf4rkaihcmy9sc81sb0h2wa21vcq0"; depends=[evir]; };
   MCMCglmm = derive2 { name="MCMCglmm"; version="2.33"; sha256="1z6l2lbirjrdvvkd6yp55p6gjlc0bcz79k2yl2i5zvgqk7kp4vdm"; depends=[ape coda corpcor cubature Matrix tensorA]; };
-  MCMChybridGP = derive2 { name="MCMChybridGP"; version="5.4"; sha256="19nbch76g7jf53nrb1lyzr3zd0z6rpz2k86mq1r9aidwwxh81g7p"; depends=[MASS]; };
-  MCMCpack = derive2 { name="MCMCpack"; version="1.6-1"; sha256="1skanp6czfk83s13dnjrb699m9z6a0r59q0f79fv0k560jc8vbrj"; depends=[coda lattice MASS mcmc quantreg]; };
+  MCMCpack = derive2 { name="MCMCpack"; version="1.6-2"; sha256="18nyncvgb75q8flndni99ldr7ynqhillphkj7ydsmfv5w8b0zvqp"; depends=[coda lattice MASS mcmc quantreg]; };
   MCMCprecision = derive2 { name="MCMCprecision"; version="0.4.0"; sha256="0r0qchiv61sk3drrb0rhwsk55gci4w343hd2gsvclrlyb8r9qhaf"; depends=[combinat Matrix Rcpp RcppArmadillo RcppEigen RcppProgress]; };
   MCMCtreeR = derive2 { name="MCMCtreeR"; version="1.1"; sha256="00r6f62h7ryil7qxd25icvkqypjjssjsrz4i5sbqsnw5cdy5al8z"; depends=[ape coda sn]; };
   MCMCvis = derive2 { name="MCMCvis"; version="0.15.5"; sha256="1sh8znwk2s6gx7q6h1ps5yid24ywj2fpng0c7nckrfkywb5h5j14"; depends=[coda colorspace overlapping rstan]; };
@@ -2763,7 +2774,7 @@ in with self; {
   MDplot = derive2 { name="MDplot"; version="1.0.1"; sha256="1xijh18hrkb807nfkdr7g642aspn5psc8nw29q387jl5hly2w8s9"; depends=[gplots gtools MASS RColorBrewer]; };
   MED = derive2 { name="MED"; version="0.1.0"; sha256="0fy0qmxirkdz5kigy2r7l5czjzws0fhjxy13kv1kqh628ldrp109"; depends=[]; };
   MEDITS = derive2 { name="MEDITS"; version="0.1.7"; sha256="0n3llnvpxd4bs1vslhmsahvl9vm0pmbmc94gijss16linpskxxkj"; depends=[ggplot2 hms raster rgdal rgeos sp tibble vegan]; };
-  MEDseq = derive2 { name="MEDseq"; version="1.3.2"; sha256="1632j7mi6r6vlqwq57dzalcz89jj7095ls01zc9d34zyfjl3r055"; depends=[cluster matrixStats nnet seriation stringdist TraMineR WeightedCluster]; };
+  MEDseq = derive2 { name="MEDseq"; version="1.3.3"; sha256="0nz7v95b3fpaacw240bwbm00vp0gvxz0dqi9la504da1rvh9rm71"; depends=[cluster matrixStats nnet seriation stringdist TraMineR WeightedCluster]; };
   MEGENA = derive2 { name="MEGENA"; version="1.3.7"; sha256="0cr10pmj1n831scz5kgaq3nkglr3imwgc62cxng2dvdxr9991g21"; depends=[BH cluster doParallel foreach fpc ggplot2 ggraph ggrepel igraph Matrix Rcpp reshape]; };
   MEMSS = derive2 { name="MEMSS"; version="0.9-3"; sha256="0fq85jrajfwavq2fvsw2x9hknc57wc253zw2vw970f04khfbragd"; depends=[lme4]; };
   MEPDF = derive2 { name="MEPDF"; version="3.0"; sha256="15hbp7g5dsdpvi239jm6jn11fn371ir6la31g0flqkilq6sr1sqd"; depends=[gtools mvtnorm plyr pracma]; };
@@ -2789,6 +2800,7 @@ in with self; {
   MGRASTer = derive2 { name="MGRASTer"; version="0.9"; sha256="0jmf2900r56v60981sabflkhid3yrqd9xd7crb56vgfl1qkva9zp"; depends=[]; };
   MGSDA = derive2 { name="MGSDA"; version="1.6"; sha256="03n7ngfbh87hhgpkjkc1a0zjslr0k9zip1prvbwhyqkfq21zajbr"; depends=[MASS]; };
   MHCtools = derive2 { name="MHCtools"; version="1.4.1"; sha256="1dkinfhiyc4gwpasw7nfvgaf7gby8x33fi5dfj976dcgsaqglj9a"; depends=[mgcv]; };
+  MHDA = derive2 { name="MHDA"; version="1.0"; sha256="1ghhv6ipwap26f0cjgw94ydrrzm6v71mhjpvgl66vsp0hg349zz5"; depends=[]; };
   MHMM = derive2 { name="MHMM"; version="1.0.0"; sha256="0d3djaydw0h7x3vlaghrbgmx024rgv36wfsjhlixzzssb2d6lqzi"; depends=[BH ggplot2 gridExtra Rcpp RcppArmadillo reshape2]; };
   MHTdiscrete = derive2 { name="MHTdiscrete"; version="1.0.1"; sha256="0czpsk4jiwbzd6g2dwssmggsdhwchikmc1skv48d9j4xvglns7yw"; depends=[]; };
   MHTmult = derive2 { name="MHTmult"; version="0.1.0"; sha256="1y3vh2kab6nfkiz4nzdhrpy9h6drk1ibfd2h62hpr3y09z9a2yld"; depends=[]; };
@@ -2826,7 +2838,7 @@ in with self; {
   MLDAShiny2 = derive2 { name="MLDAShiny2"; version="0.1.0"; sha256="1mx8js54mrrf16jriy467dysxpkcsza9fvdmpdbmxr5m3y564sc7"; depends=[caret DiscriMiner dplyr e1071 klaR MASS rhandsontable rmarkdown shiny]; };
   MLDS = derive2 { name="MLDS"; version="0.4.901"; sha256="0zswlng1vksnx1m6ycna2hbqmzzcfpqz1wgy519fr0j87bqxks69"; depends=[MASS]; };
   MLDataR = derive2 { name="MLDataR"; version="0.1.3"; sha256="13jfq4i0dz9nwkzfkc6lx52cni23q4369lmca7vd0jfzffn4zzvv"; depends=[caret ConfusionTableR dplyr ggplot2 OddsPlotty parsnip ranger recipes rsample varhandle workflows]; };
-  MLEcens = derive2 { name="MLEcens"; version="0.1-4"; sha256="0zlmrcjraypscgs2v0w4s4hm7qccsmaz4hjsgqpn0058vx622945"; depends=[]; };
+  MLEcens = derive2 { name="MLEcens"; version="0.1-5"; sha256="0cdl0y44clds4sg8hikhk354a5xrfbyfg8lxrbh1bfg410rkj186"; depends=[]; };
   MLGL = derive2 { name="MLGL"; version="0.6.5"; sha256="1qrqw39hghdlbrs0dkv38awrgwdf8lj95rhb3hixcc6nfb2lkr8j"; depends=[FactoMineR fastcluster gglasso MASS Matrix parallelDist]; };
   MLGdata = derive2 { name="MLGdata"; version="0.1.0"; sha256="0ysvrnx8m903h99wr40zgg1c6d26m9vsh62zjxh8mvndh69ikzid"; depends=[]; };
   MLID = derive2 { name="MLID"; version="1.0.1"; sha256="0ygahmcfbydzic5q3h1ppv5b2ks4lh8mcyfqq27ssmn4g1n6hdvp"; depends=[lme4 nlme]; };
@@ -2835,8 +2847,8 @@ in with self; {
   MLModelSelection = derive2 { name="MLModelSelection"; version="1.0"; sha256="1qfy2rfx2nvkwisl9wwllqsq2qhqzsdmrh90z5zn5qs07d0305wn"; depends=[MASS Rcpp RcppArmadillo RcppDist]; };
   MLMusingR = derive2 { name="MLMusingR"; version="0.1.0"; sha256="1yq5ifp12k1pd59s5m1306934f4f2l9vlhqlfg22vcr7l9pqkw9s"; depends=[lme4 Matrix nlme]; };
   MLPUGS = derive2 { name="MLPUGS"; version="0.2.0"; sha256="1yda37073g640g1qrkjrwa8hbyq6bjlcw3wpznx0bk5h0639bc0s"; depends=[]; };
-  MLVSBM = derive2 { name="MLVSBM"; version="0.2.2"; sha256="0cxjk89i1pjq829168ad30dw73x65ywsc4d6vj6q6wlg746a1izf"; depends=[ape blockmodels cluster magrittr R6]; };
-  MLZ = derive2 { name="MLZ"; version="0.1.3"; sha256="0yj9241k3yk8qy6w2q26gwbj9b9qynv3s3jpyfxixvkc9kji3wc2"; depends=[dplyr ggplot2 gplots RcppEigen reshape2 TMB]; };
+  MLVSBM = derive2 { name="MLVSBM"; version="0.2.3"; sha256="15q4n46rjl4702kr6kzdinhqy0qwi1rmz968rpr3rsk6930vpyn8"; depends=[ape blockmodels cluster magrittr R6]; };
+  MLZ = derive2 { name="MLZ"; version="0.1.4"; sha256="0kvwv13gklilpmqrc939lm1npyvmg8hrxy8m8vfpvrc5jgli49mx"; depends=[dplyr ggplot2 gplots RcppEigen reshape2 TMB]; };
   MLeval = derive2 { name="MLeval"; version="0.3"; sha256="1g2w5lrr7199n4zyaalbp9xdgl858hdg1pqr3rpd7v5fmamawc69"; depends=[ggplot2]; };
   MLmetrics = derive2 { name="MLmetrics"; version="1.1.1"; sha256="061129b36h7xqw4zsznik694n8yy9qq6aaqfhdxkhdv8n5v1nzvp"; depends=[ROCR]; };
   MLpreemption = derive2 { name="MLpreemption"; version="1.0.1"; sha256="0fvrl7ahaiv93sq637yhf18j8bf3w28f0l4b8sjs2ssc5pbg1448"; depends=[]; };
@@ -2859,16 +2871,16 @@ in with self; {
   MNLR = derive2 { name="MNLR"; version="0.1.0"; sha256="0q80232ndp7pkklzqdbga1vf51dmsxaivm4ia4wah32rc2c87fqp"; depends=[caret e1071 nnet rmarkdown shiny]; };
   MNLpred = derive2 { name="MNLpred"; version="0.0.8"; sha256="0wb1a3d5s9hrv3sw8g1vyr9w9gmig4sdj3l339cv5cjfca75swns"; depends=[MASS]; };
   MNM = derive2 { name="MNM"; version="1.0-3"; sha256="16b2yrm2kn943vzrr38qhk6qq20a842xv7iiln4is02csijxw2b3"; depends=[ellipse ICS ICSNP SpatialNP]; };
-  MNP = derive2 { name="MNP"; version="3.1-2"; sha256="1w27vx68k6ysh6vz8957242xwklj8b8hakmdpzra12pph332plbq"; depends=[MASS]; };
+  MNP = derive2 { name="MNP"; version="3.1-3"; sha256="1kaw8kvmi1m4a7k17l6ikp89fksh6l2f53bz1h3n80da259rbhbi"; depends=[MASS]; };
   MNS = derive2 { name="MNS"; version="1.0"; sha256="0if46a6rw0f2d72wnykkaa5z5b1p2c0r43il6cbwbcnnb3zd8acb"; depends=[doParallel glmnet igraph MASS mvtnorm]; };
   MOCCA = derive2 { name="MOCCA"; version="1.4"; sha256="0g70s7hnmrp4sm8gx49vsijj54y4amlcy6axc4k37k4c9g4sdics"; depends=[cclust class clue cluster]; };
   MODISSnow = derive2 { name="MODISSnow"; version="0.1.0.0"; sha256="1p0mil074gapw6v8paw9595rzp85hxrfsc65llh0ljalmacwgx04"; depends=[gdalUtils lubridate raster RCurl]; };
-  MODISTools = derive2 { name="MODISTools"; version="1.1.1"; sha256="0188cffsnpy7nmb0c03i64674xyizx6imkymrwsj3mf9s77wa2v0"; depends=[httr jsonlite memoise raster sf]; };
-  MODIStsp = derive2 { name="MODIStsp"; version="2.0.6"; sha256="1rgms8041f3gk5x97nhr9hzcnc3qim3w12f5hm2q68m54bhjg2mw"; depends=[assertthat bitops data_table gdalUtilities geojsonio httr jsonlite raster sf stringr xml2 xts]; };
+  MODISTools = derive2 { name="MODISTools"; version="1.1.2"; sha256="1br5kpkz3addnndh6740ppkg3xswpdc6fj9x776rswrjmrhazzm7"; depends=[httr jsonlite memoise raster sf]; };
+  MODIStsp = derive2 { name="MODIStsp"; version="2.0.7"; sha256="1qv01v6crffd90qjhm9qlaw6lmphlnhv4x2dk0rqskrqdp8mbiq8"; depends=[assertthat bitops data_table gdalUtilities geojsonio httr jsonlite raster sf stringr xml2 xts]; };
   MOEADr = derive2 { name="MOEADr"; version="1.1.1"; sha256="0aqkqw5ph5rvsgpasc94i264lxapr37gpjhk4rkkynph2gnvq1zx"; depends=[assertthat FNN]; };
   MOLHD = derive2 { name="MOLHD"; version="0.2"; sha256="1lrl24x7iig15jwxigvqm3jdwnxkn948sxmywn6zi2b1a5hqz05k"; depends=[arrangements fields]; };
   MOQA = derive2 { name="MOQA"; version="2.0.0"; sha256="17w4iwf38k0r2fiwqr420hkbbz1a3r89sqwnd2yn300zmaz64hpr"; depends=[gplots psych readr]; };
-  MOSS = derive2 { name="MOSS"; version="0.2.0"; sha256="1sgyjswvr34js96avv5czqil6jlvn53l8wdj28lqicm8m5c9qkwq"; depends=[cluster dbscan Rtsne]; };
+  MOSS = derive2 { name="MOSS"; version="0.2.2"; sha256="0gjsyv74hhjknlnplc8157mmypnfy1yjrs400pz0p4744k5c8c7s"; depends=[cluster dbscan Rtsne]; };
   MOST = derive2 { name="MOST"; version="0.1.0"; sha256="0nmjx5hsn67hdglcqyanq3az76rs15knv8qy28f8paah5s9w24xf"; depends=[]; };
   MOTE = derive2 { name="MOTE"; version="1.0.2"; sha256="17y2l2rmw7fhvknyh5z09i7hd8nhamx12g00rcymp75gqkz9lzc7"; depends=[ez MBESS reshape]; };
   MOrder = derive2 { name="MOrder"; version="0.1"; sha256="1vhy20xyvfc18f04hvlb1jm2n0caaz8ysy13w2rra5i4kjdvz52i"; depends=[]; };
@@ -2877,6 +2889,7 @@ in with self; {
   MPCI = derive2 { name="MPCI"; version="1.0.7"; sha256="1l55q09lliv0y4q1hc0jgzls47wkmsfag6b4iq5y6wrllr5wq7sa"; depends=[]; };
   MPDiR = derive2 { name="MPDiR"; version="0.1-20"; sha256="1mm4mv042jr0n7z5cdaij39zrg2475p83gd3dxq6krz9yq8ii1q3"; depends=[]; };
   MPGE = derive2 { name="MPGE"; version="1.0.0"; sha256="10lzkk8fhpxd1z4yp051q3k36fsvddrwssv7nn03r2bkp6q8rpzb"; depends=[car purrr]; };
+  MPI = derive2 { name="MPI"; version="0.1.0"; sha256="081yhbk3qz5935yz5n1391x3hpj8m0cbj1p81snhb9n8h0agwgv0"; depends=[doParallel dplyr foreach purrr tidyr]; };
   MPINet = derive2 { name="MPINet"; version="1.0"; sha256="1zw3piqhhpagg5qahc2xahxxfdwdk8w94aass1virlpl0f52ik8s"; depends=[BiasedUrn mgcv]; };
   MPLikelihoodWB = derive2 { name="MPLikelihoodWB"; version="1.1"; sha256="0xgj349jkv29ldia4lmsiwnkhrk99aqcrvyiy3si5knmi1jvx9q0"; depends=[MASS survival]; };
   MPN = derive2 { name="MPN"; version="0.3.0"; sha256="0rrigkq5bkarncswv8kgvvwd1vrq5cqnb5vypa9d39q2ksqf8j3d"; depends=[]; };
@@ -2895,7 +2908,6 @@ in with self; {
   MRFcov = derive2 { name="MRFcov"; version="1.0.38"; sha256="1ajpnxx49zpmph21x0q4x9w4fjpi43s8sqm294i0l883khyx6ljg"; depends=[caret dplyr ggplot2 glmnet gridExtra igraph magrittr MASS Matrix mgcv pbapply plyr purrr reshape2 sfsmisc]; };
   MRH = derive2 { name="MRH"; version="2.2"; sha256="1icwlq8js58g9fkiq7fwjg8r97ca47xl3dscnhnga99gkgsfgjwl"; depends=[coda KMsurv survival]; };
   MRHawkes = derive2 { name="MRHawkes"; version="1.0"; sha256="0qhwm708jijv1w6iml18bg7fc2igdcmydwpb9dzpa4gwwads8b78"; depends=[IHSEP]; };
-  MRPC = derive2 { name="MRPC"; version="3.0.0"; sha256="1lqqfffqvzvp7g3phrjcra0n52lcl2xywibh0vizc85fkkp1clbd"; depends=[bnlearn compositions dynamicTreeCut fastcluster GGally graph gtools Hmisc mice network pcalg plyr psych Rgraphviz sna WGCNA]; };
   MRQoL = derive2 { name="MRQoL"; version="1.0"; sha256="0isn4g3jpz7wm99ymrshl6zgkb7iancdzdxl2w98n8fbxsh5z6sw"; depends=[]; };
   MRReg = derive2 { name="MRReg"; version="0.1.4"; sha256="0krk9l46ls74dldilkkdf1b202awnql8r138fkxj4h6n8x3psysw"; depends=[caret igraph]; };
   MRS = derive2 { name="MRS"; version="1.2.4"; sha256="1sksg70zb72ys1b7vi8amjaqarmdh8vf2l1rb0rasrlvrip3z3br"; depends=[igraph Rcpp RcppArmadillo]; };
@@ -2925,14 +2937,13 @@ in with self; {
   MTA = derive2 { name="MTA"; version="0.4.0"; sha256="1vx0m1jf74hsf2lxz7wnns3q3n08vidvp1zmm2j4vxn5yywl3p50"; depends=[igraph sf]; };
   MTAR = derive2 { name="MTAR"; version="0.1.1"; sha256="17r2da1hdvs8qvgar87zdl51jy8w30vczcsi6jrq0rdyi1lld641"; depends=[CompQuadForm MASS Matrix]; };
   MTDrh = derive2 { name="MTDrh"; version="0.1.0"; sha256="0ass3b90nr4i0y7v30hk8xhq3hj9bxaxcsr4f8wfi0lnvzfv6aaa"; depends=[]; };
-  MTE = derive2 { name="MTE"; version="1.0.1"; sha256="0ybzf8fsysxld9d17jh1wggglaa58n5szynnrhif12cifgcrl2dx"; depends=[glmnet quantreg]; };
+  MTE = derive2 { name="MTE"; version="1.0.2"; sha256="11kbh6sphzyn2k279sfpgyvr32hpggh98cz1saszlpsfg9l8xdn0"; depends=[glmnet quantreg rqPen]; };
   MTLR = derive2 { name="MTLR"; version="0.2.1"; sha256="070121qn7vmxmxgvzv7ymhk19j9kxks4xa7qpd8vkc2rp3ara4cp"; depends=[Rcpp RcppArmadillo survival]; };
   MTPS = derive2 { name="MTPS"; version="1.0.1"; sha256="1jdlw943ywmrp64w1qrjqymqjh2jahnq0i5px8af1l3msznj20x4"; depends=[class e1071 glmnet MASS rpart]; };
-  MTS = derive2 { name="MTS"; version="1.1.1"; sha256="0mb7h4h94a2x104ybkg9836k3szdimlcdccwxjc5naarxhdifv60"; depends=[fBasics fGarch mvtnorm Rcpp RcppEigen]; };
   MTSYS = derive2 { name="MTSYS"; version="1.2.0"; sha256="04dkan3hxl3difflskp7d1lw1bvxhg4s28ssy2v4m7z7wbpj3v1m"; depends=[]; };
   MUACz = derive2 { name="MUACz"; version="2.1.0"; sha256="1d771vb2aimr87kyqj7zkmwarmxcxzbh7mvr396pf2zr3h8wi30c"; depends=[dplyr epiDisplay ggplot2]; };
   MUS = derive2 { name="MUS"; version="0.1.6"; sha256="0xid624rz0mvd03iy7ydvmx7gkscvsg4kdbaf2nji54ahai3pmn3"; depends=[]; };
-  MVA = derive2 { name="MVA"; version="1.0-7"; sha256="00vng8z157qn0bj2mcnz31r6mn1a119vja9pzhpdkhkbvvd6ph5v"; depends=[HSAUR2]; };
+  MVA = derive2 { name="MVA"; version="1.0-8"; sha256="1xd75qah05jrljl72gr8xzhfj43mnf821jnjv38gflavkvyn89mv"; depends=[HSAUR2]; };
   MVB = derive2 { name="MVB"; version="1.1"; sha256="0an8b594rknlcz6zxjva6br8f34sgwdi2jil3xh1xzb5fa55dw0f"; depends=[Rcpp RcppArmadillo]; };
   MVLM = derive2 { name="MVLM"; version="0.1.4"; sha256="1zcj405dc4jbiqw6p0fcbam8yc9d6yjpmrx5wjw5zjvig3iqb91k"; depends=[CompQuadForm]; };
   MVN = derive2 { name="MVN"; version="5.9"; sha256="014s07nxq014j5hkbd6iwwqykcw8si5sah57gi3n0wb51sv8ip1k"; depends=[boot car energy MASS moments nortest plyr psych]; };
@@ -2950,7 +2961,7 @@ in with self; {
   MXM = derive2 { name="MXM"; version="1.5.2"; sha256="0h95v74sk0c10i1rvbbl6f98spv86jfz7xji3d3wd1v4zacq3hhz"; depends=[bigmemory coxme doParallel dplyr energy foreach geepack Hmisc knitr lme4 MASS nnet ordinal quantreg relations Rfast Rfast2 survival visNetwork]; };
   MaOEA = derive2 { name="MaOEA"; version="0.6.2"; sha256="0s8jvp7821mb6xff8xwnh78mhz4qfrbk4g7sp4dfnm2ii7ah9c6b"; depends=[e1071 gtools lhs MASS nnet nsga2R pracma randtoolbox reticulate stringr]; };
   MaXact = derive2 { name="MaXact"; version="0.2.1"; sha256="1n7af7kg54jbr09qk2a8gb9cjh25cnxzj2snscpn8sr8cmcrij0i"; depends=[mnormt]; };
-  MachineShop = derive2 { name="MachineShop"; version="3.3.0"; sha256="1xrj6c0bryd2dldh2npaqznzvy4588jx4lplhsgffn07j4z0wz9g"; depends=[abind cli dials foreach ggplot2 kernlab magrittr Matrix nnet party polspline progress recipes rlang rsample Rsolnp survival tibble]; };
+  MachineShop = derive2 { name="MachineShop"; version="3.4.0"; sha256="0zr0gga2h9g7swr8y7lazl4jx9rb2n0dasczjflfka8xfi26dngq"; depends=[abind cli dials foreach ggplot2 kernlab magrittr Matrix nnet party polspline progress recipes rlang rsample Rsolnp survival tibble]; };
   Maeswrap = derive2 { name="Maeswrap"; version="1.7"; sha256="0cnnr5zq7ax1j7dx7ira7iccqppc6qpdjghjarvdb2zj0lf69yyb"; depends=[geometry lattice rgl stringr]; };
   MajKMeans = derive2 { name="MajKMeans"; version="0.1.0"; sha256="1zphrxyx3jd6rnh1y1qnc6bip34kfqk1a5ms4ps39gfngznh482m"; depends=[MASS]; };
   MakefileR = derive2 { name="MakefileR"; version="1.0"; sha256="1pfjic2lsar8ghbb6byr4rqrs30qrgfih092z4rxdpsiwkk3y7l1"; depends=[magrittr]; };
@@ -2962,14 +2973,12 @@ in with self; {
   Map2NCBI = derive2 { name="Map2NCBI"; version="1.4"; sha256="1ssqnm9g5p0nnhdyp9dqbbsz3hw8jzdwy0rv3csp8fxm0f1bi1kb"; depends=[rentrez]; };
   MapGAM = derive2 { name="MapGAM"; version="1.2-5"; sha256="0ardqsa7smx0syh1l591bm6a1rb7kvcyw3rlb3hkfk8rk4k60qmr"; depends=[colorspace gam maptools sp survival]; };
   MapeBay = derive2 { name="MapeBay"; version="0.1.0"; sha256="1w1lpnm8fd5gmv4ggrlmkaaj45wyx3yclx3fb2mdrp7iyg4rx34c"; depends=[BH broom car dplyr DT heplots highcharter htmltools MANOVA_RM moments MultBiplotR MVN mvnormtest nortest purrr Rcpp RcppEigen RcppParallel reshape rstan rstantools shiny shinycssloaders shinydashboard shinydashboardPlus StanHeaders stringr tibble vegan waiter]; };
-  Mapinguari = derive2 { name="Mapinguari"; version="1.0.0"; sha256="1jfqinfr6wkpmkp4jm9ixgawcywm3n1ni03h6zngvx74saz7kd3g"; depends=[dplyr magrittr raster rgdal rlang stringr testthat]; };
   MareyMap = derive2 { name="MareyMap"; version="1.3.6"; sha256="0zbg72vck9p14zk1924407n5ap84qiisqhbq1vr715sw67fwdcxi"; depends=[]; };
   MargCond = derive2 { name="MargCond"; version="1.0.0"; sha256="07qh1lgy8ds11cwlb4rxkl6aiph91zq29sy27b8wwxalycdgjrg8"; depends=[gee lme4 MASS Matrix]; };
   MarginalMediation = derive2 { name="MarginalMediation"; version="0.7.0"; sha256="0jwp8rzv0ghir8k7dfmfrq4rvcqf7xww6va16p3jj2nk3r9hiq0x"; depends=[betareg boot cli crayon furniture magrittr purrr rstudioapi stringr tibble]; };
   MarketMatching = derive2 { name="MarketMatching"; version="1.2.0"; sha256="075maishssvjrx0jfmxcfiv2rlhnm0c4dnp6ija3bn5z80i6z91m"; depends=[Boom bsts CausalImpact doParallel dplyr dtw foreach ggplot2 iterators reshape2 scales tidyr utf8 zoo]; };
   Markovchart = derive2 { name="Markovchart"; version="2.1.4"; sha256="12wbirvz90k6aak3dijn0dq3x8gxz7842n4nrgxkd2d0szysrciq"; depends=[doParallel foreach ggplot2 metR optimParallel]; };
   MarkowitzR = derive2 { name="MarkowitzR"; version="1.0.2"; sha256="0p234zs7lvi83fv02mijrhp7hmr5cklddayb61krhx1h2hn4gzb9"; depends=[gtools matrixcalc]; };
-  MaskJointDensity = derive2 { name="MaskJointDensity"; version="1.0"; sha256="0nxhsz57cw96in0sg5xg7sicv920kcnxr2rikn39y2qk4vrw6r78"; depends=[ks MASS np plyr]; };
   Massign = derive2 { name="Massign"; version="1.1.0"; sha256="09i32lsrx40rxrnb9alfipfrkipy4mza5nr4gcpn2a5h86ak9290"; depends=[]; };
   MasterBayes = derive2 { name="MasterBayes"; version="2.57"; sha256="0f8rc6799nji03slal27gbmprndy3dby0hhsmg2rm9l4ki44vz2y"; depends=[coda genetics gtools kinship2]; };
   MatManlyMix = derive2 { name="MatManlyMix"; version="1.1.1"; sha256="1d2vd5b9lirdybjclxh0nn4mghq64qjj4l8vnj95cni5pfa18a2c"; depends=[]; };
@@ -2979,7 +2988,7 @@ in with self; {
   MatchLinReg = derive2 { name="MatchLinReg"; version="0.7.3"; sha256="1si0zn6vlgyj08841hfjx8an96a8ipnawl4zbalabmpy7r5bfwx8"; depends=[Hmisc Matching]; };
   MatchThem = derive2 { name="MatchThem"; version="1.0.1"; sha256="1g3vzbxrbmgmxlnn6i2i1wdk949i547ywgxcw05na71kc1nvwvfd"; depends=[MatchIt mice rlang survey WeightIt]; };
   Matching = derive2 { name="Matching"; version="4.9-11"; sha256="123np8gwjrbmkl65kj7qfa52i9msnkjyhvj4pwwqh5mkca2clw8w"; depends=[MASS]; };
-  Matrix = derive2 { name="Matrix"; version="1.4-0"; sha256="1xh62bwcly1blpvnagbhjym1qgw87yir3c72ylhvcla05rq67d62"; depends=[lattice]; };
+  Matrix = derive2 { name="Matrix"; version="1.4-1"; sha256="0zigzgx4dv7ydcyppr5ypna9dxi9vzi944pgy07jnj4l3qflzcj2"; depends=[lattice]; };
   Matrix_utils = derive2 { name="Matrix.utils"; version="0.9.8"; sha256="0a5fq1scykqk0kc9j051j6fix6j2dqwz5wbgb0amaxsiywz9vigb"; depends=[grr Matrix]; };
   MatrixCorrelation = derive2 { name="MatrixCorrelation"; version="0.9.5"; sha256="192pmfm8csvs2lf2hxpsj542lrd8b74rg4wzmz3s3m9i98pd0h4d"; depends=[plotrix pracma progress Rcpp RcppArmadillo RSpectra]; };
   MatrixEQTL = derive2 { name="MatrixEQTL"; version="2.3"; sha256="10r6h5bidj44kfbwiml9pkysbikqphfb21ig61qnx0qa12xcl6l8"; depends=[]; };
@@ -2997,7 +3006,7 @@ in with self; {
   MazamaRollUtils = derive2 { name="MazamaRollUtils"; version="0.1.3"; sha256="1433xy64n3wpxg9d0jlwdfp8hlvmq0ndg3fv6kfxq3pasm600jgc"; depends=[Rcpp]; };
   MazamaSpatialPlots = derive2 { name="MazamaSpatialPlots"; version="0.1.2"; sha256="1gkxq6lnvdv24nvc34fmxz4qilzljxcls1lq29a5ag67dffz7kcj"; depends=[dplyr magrittr MazamaCoreUtils MazamaSpatialUtils rlang sf sp tmap]; };
   MazamaSpatialUtils = derive2 { name="MazamaSpatialUtils"; version="0.7.6"; sha256="07qr6cwa29brsp567vjhfv8pkqijxhhz98bxvagrpjj5gbx1179s"; depends=[cleangeo countrycode dplyr magrittr MazamaCoreUtils rgdal rgeos rlang rmapshaper sp stringr]; };
-  MazamaTimeSeries = derive2 { name="MazamaTimeSeries"; version="0.2.2"; sha256="1snx71jcv9q1fw7njfccd0lvgi3mim6sahzcnc6136pblnjs29kg"; depends=[dplyr geodist lubridate magrittr MazamaCoreUtils readr rlang stringr]; };
+  MazamaTimeSeries = derive2 { name="MazamaTimeSeries"; version="0.2.5"; sha256="1wmw38gz1v7iv514nz4lyya7dgk3rwhizz73gjzdfsbjcnwjqg8f"; depends=[dplyr geodist lubridate magrittr MazamaCoreUtils rlang stringr]; };
   Mcomp = derive2 { name="Mcomp"; version="2.8"; sha256="1wz5fr3dhxn4s0qvxm2mzq9dbz3x0vgh6pixjrgk9d4i9w2p7s60"; depends=[forecast ggplot2]; };
   MeTo = derive2 { name="MeTo"; version="0.1.0"; sha256="14hdyh3p3q8yb9w2li2y9pc356jnymsn6n2750zdsrh52b751lpm"; depends=[lubridate]; };
   MedDietCalc = derive2 { name="MedDietCalc"; version="0.1.1"; sha256="11q1yn6l697qa33wqik9y9lji39r6pph109yxkkprg9p80c187xy"; depends=[]; };
@@ -3011,14 +3020,13 @@ in with self; {
   Mercator = derive2 { name="Mercator"; version="1.1.1"; sha256="0jg5dm65smq67k35p8acqd5kdsv7py8plaamagbsc84617r0iaik"; depends=[ClassDiscovery cluster dendextend flexmix igraph KernSmooth kohonen Polychrome Rtsne Thresher umap]; };
   MetABEL = derive2 { name="MetABEL"; version="0.2-0"; sha256="0rqjv85mgswrbbp8b8ip6cdmz0cvfy9lm5mcr8a7h38rzgx3g3i3"; depends=[]; };
   MetAlyzer = derive2 { name="MetAlyzer"; version="0.1.0"; sha256="1mqc2037q71n1k7ncym52vn0cc5ndsxq4r87k492lp1b3i7h1wi3"; depends=[agricolae dplyr openxlsx rlang tibble tidyr]; };
-  MetBrewer = derive2 { name="MetBrewer"; version="0.1.0"; sha256="1wf8bpsj9py69x7k4i18na0rr2d1f3bw3jds94jr13g7m70i6js7"; depends=[]; };
+  MetBrewer = derive2 { name="MetBrewer"; version="0.2.0"; sha256="0x51g5z9cdl043rna9qh4cj16qxahb6ccj9d8rr9d43d860jigp7"; depends=[ggplot2]; };
   MetFns = derive2 { name="MetFns"; version="3.2.2"; sha256="15fd2d0yysibi2x43qv6b8i1pa18l7z4n0zpmrqhsmvqkgy8sla0"; depends=[astroFns lubridate plotrix pracma]; };
   MetGen = derive2 { name="MetGen"; version="0.5"; sha256="00yzaicrpwfnxi5mdzwx1ai721vczkkf2yl50q9wwpxhmfx0xbbh"; depends=[chron glmnet MASS]; };
   MetNorm = derive2 { name="MetNorm"; version="0.1"; sha256="0vfi3k0yp2dz47gwj1n1avs3ji0a2nlrrljz5d0l66zfh4474jb4"; depends=[]; };
   MetProc = derive2 { name="MetProc"; version="1.0.1"; sha256="1z6538pij1rq5wv9s8rjcn0sck15y26asv4vamav8a6s4135ia3q"; depends=[fastcluster gplots]; };
   MetSizeR = derive2 { name="MetSizeR"; version="2.0.0"; sha256="0blfdcd8z6qbaz47q08arb94wh3cp689w7vsc3jvn3cqq7r35byl"; depends=[dplyr ggplot2 MetabolAnalyze Rfast shiny shinythemes vroom]; };
   MetaAnalyser = derive2 { name="MetaAnalyser"; version="0.2.1"; sha256="0k58325nb7svihhpga7kdbryr9bi5470qsb8aa5llpiggs8j7sfz"; depends=[DT ggvis rstudioapi shiny]; };
-  MetaClean = derive2 { name="MetaClean"; version="1.0.0"; sha256="12vgdizggyz6wx08qf34jfhwgpzfrkgq63fvhfgi5gbf1nhma5zz"; depends=[BiocStyle caret fastAdaboost ggplot2 graph kernlab klaR knitr MLmetrics plotrix randomForest reshape2 Rgraphviz rpart xcms]; };
   MetaComp = derive2 { name="MetaComp"; version="1.1.2"; sha256="1yb115qdmf5rxmjl4y7qr0i6668n46scs4yjpfq9bmy3w9i4ji1x"; depends=[Cairo data_table dplyr ggplot2 plyr reshape2]; };
   MetaCycle = derive2 { name="MetaCycle"; version="1.2.0"; sha256="1lh1msrcz70p5jixz5j83pqa3cid21y7m1zvlk872k16awmif00k"; depends=[gnm]; };
   MetaDBparse = derive2 { name="MetaDBparse"; version="2.0.0"; sha256="0ssbjm9x3f7j2blpjdjfcsrp2486g55rwkw7xhlkrw307q6i40gq"; depends=[ChemmineR cmmr data_table DBI enviPat gsubfn Hmisc httr jsonlite KEGGREST pacman pbapply progress R_utils rcdk RCurl Rdisop readxl reshape2 rJava RJSONIO rlist RSQLite rvest SPARQL stringi stringr webchem WikidataQueryServiceR XML xml2 zip]; };
@@ -3035,6 +3043,7 @@ in with self; {
   MetabolAnalyze = derive2 { name="MetabolAnalyze"; version="1.3.1"; sha256="070qws759nczjrfdlh7jpbyjz4z3zm1hzb7vcvfgfks82wwb2ny0"; depends=[ellipse gplots gtools mclust mvtnorm]; };
   MetabolicSurv = derive2 { name="MetabolicSurv"; version="1.1.2"; sha256="1c8i3a3gnbvlkjh0vqmz1igzaf8q87cb55l3kijwi0z23ywrbqch"; depends=[dplyr ggplot2 glmnet matrixStats pls Rdpack rms superpc survival survminer tidyr]; };
   MetabolomicsBasics = derive2 { name="MetabolomicsBasics"; version="1.2"; sha256="0gd93l9rm00x9g6ffppywpbccmhxgl4s4z4ba7al8lpjval9srzw"; depends=[C50 caret e1071 mixOmics pcaMethods plyr rlang ropls rpart]; };
+  MetaculR = derive2 { name="MetaculR"; version="0.2.0"; sha256="1ga93jl0nwwqzl4lnfjm60ivgjl2k0s6nl2zjnw27qzqpdpnrasb"; depends=[dplyr ggplot2 httr jsonlite magrittr progress tidyr verification]; };
   MetaheuristicFPA = derive2 { name="MetaheuristicFPA"; version="1.0"; sha256="096k866mgrdgj55rzvdj080z80hzlj0667mydpz7gjaqdfriw8jg"; depends=[Rcpp RcppArmadillo]; };
   Metatron = derive2 { name="Metatron"; version="0.1-1"; sha256="0apz2k3za19px1bcg4ls0axaljrpxnqhs86b6s862c370sspc1x8"; depends=[lme4 Matrix mpt]; };
   MethComp = derive2 { name="MethComp"; version="1.30.0"; sha256="1vmwb4zw4gm2x0j2nzm2vjfj7x19ws8njr6dcglzjpbbha7nxjp6"; depends=[coda nlme rjags]; };
@@ -3053,11 +3062,10 @@ in with self; {
   MicSim = derive2 { name="MicSim"; version="1.1.0"; sha256="0nkprbb9lgnfzl1bj0k4rkd7v8g35cvhl9bqa91q2lc2rimzfl20"; depends=[chron rlecuyer snowfall]; };
   MicroDatosEs = derive2 { name="MicroDatosEs"; version="0.8.2"; sha256="0k0hmi3ciipizmgjw1i5rrsg34yx21s1msn40vc4qc9s1n4wd8dl"; depends=[readr]; };
   MicroMacroMultilevel = derive2 { name="MicroMacroMultilevel"; version="0.4.0"; sha256="1q5cyqr4hdl1wp2isk6p4p084i83kg6hd406wdp1nj9lv5i0xvgw"; depends=[]; };
-  MicroMoB = derive2 { name="MicroMoB"; version="0.0.11"; sha256="1a3fknakn98k73mkfk81fypznhhr2npd9w34s57yaqj5z3c4i5xj"; depends=[abind extraDistr httpuv jsonlite plumber]; };
+  MicroMoB = derive2 { name="MicroMoB"; version="0.0.12"; sha256="09zr9synk4l17ylhsxxhil7wqnwg85j0bppqx53rc3gjk2v8v6ir"; depends=[abind extraDistr jsonlite]; };
   MicroNiche = derive2 { name="MicroNiche"; version="1.0.0"; sha256="166ci4crkwnnh05rhs5hyrljgm4cdf7gp0ff8kjxjmd60byw80mz"; depends=[ggplot2 reshape2]; };
-  MicroSEC = derive2 { name="MicroSEC"; version="1.1.3"; sha256="1imdxm15f792xw5kc9lhry5jsw739j6y3f2fs64abj22hqxfwypi"; depends=[BiocGenerics Biostrings data_table dplyr GenomeInfoDb GenomicAlignments gtools magrittr openxlsx R_utils Rsamtools stringr tidyr]; };
   MicrobiomeStat = derive2 { name="MicrobiomeStat"; version="1.1"; sha256="1j5sar85a1gksc83pc4ypxwb0c7whxglx069zarphrgqfazcr1m4"; depends=[foreach ggplot2 ggrepel lmerTest MASS Matrix matrixStats modeest phyloseq statmod]; };
-  Microsoft365R = derive2 { name="Microsoft365R"; version="2.3.3"; sha256="17zlkbap7svj7g3jk1jb7582crkfsgh4xka4nmzaj3lzkwwx429k"; depends=[AzureAuth AzureGraph curl httr jsonlite mime R6 vctrs]; };
+  Microsoft365R = derive2 { name="Microsoft365R"; version="2.3.4"; sha256="1vra4g8xgpvy1i6ny1rkvi7xsc0za7i6dsldlbnf6mh5jqi3nhsm"; depends=[AzureAuth AzureGraph curl httr jsonlite mime R6 vctrs]; };
   MinBAR = derive2 { name="MinBAR"; version="1.1.3"; sha256="0d0l7sr99kg6s0pxw10zrnwz699kzqaylawymd7kggc3dag9frbx"; depends=[dismo ecospat geosphere lattice latticeExtra maxnet raster rgdal sp]; };
   MinEDfind = derive2 { name="MinEDfind"; version="0.1.3"; sha256="1y0iv92mp7hf14vrj54qd0yvmjrv52jv3vg25kc5q7pml63njkqa"; depends=[ggplot2 gridExtra Iso]; };
   MindOnStats = derive2 { name="MindOnStats"; version="0.11"; sha256="13995v4n0hfb53w02jk81pl7nazkvqwwv87y1sr99jr9ppzc08mz"; depends=[]; };
@@ -3085,7 +3093,7 @@ in with self; {
   MixtureMissing = derive2 { name="MixtureMissing"; version="1.0.2"; sha256="03ql591891jvhycagkjl5gj83mjlrv5m95kpgkgph8gim71q2di1"; depends=[cluster ContaminatedMixt MASS mnormt mvtnorm rootSolve]; };
   MixtureRegLTIC = derive2 { name="MixtureRegLTIC"; version="1.0.0"; sha256="052gyk4gqv49fa2rxbxnib29f1vjxiw4q8llkfhsv8kw5pw38699"; depends=[]; };
   MoBPS = derive2 { name="MoBPS"; version="1.6.64"; sha256="12czwx362pn0crj047rqb9ambl1fw73k474i7vcxhz53kbw21wj0"; depends=[]; };
-  MoEClust = derive2 { name="MoEClust"; version="1.4.2"; sha256="13bc5ypq95f56mimqgmvvzhbsgm2j6j6bwigk6kx68l2qvzj12vl"; depends=[lattice matrixStats mclust mvnfast nnet vcd]; };
+  MoEClust = derive2 { name="MoEClust"; version="1.5.0"; sha256="1w9xb35xlh0j020fpf7ivji46rbg7fyvqrf7a695rr8da6lpiiif"; depends=[lattice matrixStats mclust mvnfast nnet vcd]; };
   MoLE = derive2 { name="MoLE"; version="1.0.1"; sha256="0bq19vwqjn5hl4mw5imkydbp39gal992vnh2dwrq8bb8cmj3qh91"; depends=[]; };
   MoMPCA = derive2 { name="MoMPCA"; version="1.0.1"; sha256="1snixlq35xbzf005d877i493sf1wm48jqlq9515yl1s6lxmav1n7"; depends=[doParallel dplyr foreach magrittr Matrix slam tm topicmodels]; };
   MoTBFs = derive2 { name="MoTBFs"; version="1.4"; sha256="1b69wzsy0wnzgbk04x363wb1dfnxz610sn8d28cn2akvf7n8na70"; depends=[bnlearn ggm lpSolve Matrix quadprog]; };
@@ -3093,16 +3101,15 @@ in with self; {
   ModStatR = derive2 { name="ModStatR"; version="1.3.1"; sha256="16mfggplpmjz2kspfa99q4gbm4avm306d83n8hiki382094li1ni"; depends=[boot ellipse gsl hypergeo jmuOutlier]; };
   ModTools = derive2 { name="ModTools"; version="0.9.4"; sha256="111rhdw917rynwsh6l6nsma5pjyi3ix9gjy5fx620d6ywcq7b227"; depends=[AER C50 car class DescTools e1071 lattice lmtest MASS naivebayes NeuralNetTools nnet pROC pscl randomForest relaimpo robustbase rpart rpart_plot sandwich survival]; };
   Modalclust = derive2 { name="Modalclust"; version="0.7"; sha256="0ymzdxp6rh6baih1xm6kj8l8jxjclvnmq0gfp38cl8lpskspb26x"; depends=[class mvtnorm zoo]; };
-  ModelGood = derive2 { name="ModelGood"; version="1.0.9"; sha256="1y99a7bgwx167pncxj00lbw3cdjj23fhhzl8r24hwnhxr984kvzl"; depends=[prodlim]; };
   ModelMap = derive2 { name="ModelMap"; version="3.4.0.1"; sha256="1279k5hznxrb6fq4zd1baw1pm5dj5437g5awkgb8kp7ll8raa2ql"; depends=[corrplot fields HandTill2001 mgcv PresenceAbsence randomForest raster rgdal]; };
   ModelMatrixModel = derive2 { name="ModelMatrixModel"; version="0.1.0"; sha256="0w8j32b2yw7x8lr1a9bgs4ylxfsxw8m06q7xpgsiz6sjicspc714"; depends=[Matrix]; };
   ModelMetrics = derive2 { name="ModelMetrics"; version="1.2.2.2"; sha256="0mrlsw4c5y1vdsqynxr2dcvmhh5h37pnd71jw5a5djpbda9g21jy"; depends=[data_table Rcpp]; };
   Modelcharts = derive2 { name="Modelcharts"; version="0.1.0"; sha256="1jy78kyyh4r13px2d5bm7fra5bkcpimzfji0hmydspkfi3qla37x"; depends=[dplyr plotly]; };
   Modeler = derive2 { name="Modeler"; version="3.4.5"; sha256="15gbg5568qj81wp6yy31amb2b7wl1wvlmgpmdp29lvz1p33jx2y1"; depends=[class ClassComparison ClassDiscovery e1071 neuralnet nnet oompaBase randomForest rpart TailRank]; };
-  MolgenisArmadillo = derive2 { name="MolgenisArmadillo"; version="1.0.3"; sha256="0x3mgpfqgrwijaz9i7plhgyz9m7nwwad8njnfa4a3n98mzdzv1mi"; depends=[arrow aws_iam aws_s3 httr MolgenisAuth urltools xml2]; };
-  MolgenisAuth = derive2 { name="MolgenisAuth"; version="0.0.18"; sha256="1qhk0vd9h0wark87ic6vdmdrdxvzvw3192lnmq3ibzb6k9ah2qqm"; depends=[httr urltools]; };
+  MolgenisArmadillo = derive2 { name="MolgenisArmadillo"; version="1.1.3"; sha256="0vs0ay6jfpsaq8v3s2r580v0vsr0g44shszqkiqb6gsgvhkmv6fg"; depends=[arrow aws_iam aws_s3 httr MolgenisAuth urltools xml2]; };
+  MolgenisAuth = derive2 { name="MolgenisAuth"; version="0.0.21"; sha256="0w3634z406gx334yk23spck2ryd2sz9cvd7rgl5lmr4rl06dd5rk"; depends=[httr urltools]; };
   MomTrunc = derive2 { name="MomTrunc"; version="5.97"; sha256="1rgynsx4nh09pzm1klk648xg45xicx03xik1q01nbqhx9m9v9j6d"; depends=[hypergeo mvtnorm Rcpp RcppArmadillo tlrmvnmvt]; };
-  Momocs = derive2 { name="Momocs"; version="1.3.2"; sha256="1rjfq4vp5n8352v9yqaflcrzj3ysanzbacvx0qzj5k50my7grnhg"; depends=[cluster dendextend dplyr geometry geomorph ggplot2 jpeg magrittr MASS progress RColorBrewer rgeos sp tibble vegan]; };
+  Momocs = derive2 { name="Momocs"; version="1.4.0"; sha256="08p2kjgfq7h7pwn4lqsfcy4d7rml6n0s1fb90l0iy1a88brbd3br"; depends=[cluster dendextend dplyr geometry geomorph ggplot2 jpeg magrittr MASS progress RColorBrewer rgeos sp tibble vegan]; };
   Mondrian = derive2 { name="Mondrian"; version="1.1.0"; sha256="1x40cdry6dwixwqx10kv42xr4254kj1f17va186haw9m949xn5gd"; depends=[RColorBrewer]; };
   MonetDB_R = derive2 { name="MonetDB.R"; version="2.0.0"; sha256="0b5flc9l4nshy2fmwxbzcsn7pdivwy3x6kic94ppyyiqzz41h0b1"; depends=[codetools DBI digest testthat]; };
   MonoInc = derive2 { name="MonoInc"; version="1.1"; sha256="14rykw3bfj0vznz0rw4vsg1k4vanfv9cy867vspw966ncl4bw70h"; depends=[compare doParallel foreach iterators sitar]; };
@@ -3114,15 +3121,14 @@ in with self; {
   Morpho = derive2 { name="Morpho"; version="2.9"; sha256="1gsns3ab9x24czl53p15cja9vw881iwnhc0ix50i8vzkx184wsib"; depends=[bezier colorRamps doParallel foreach jsonlite MASS Matrix Rcpp RcppArmadillo rgl Rvcg]; };
   MorphoTools2 = derive2 { name="MorphoTools2"; version="0.9.1.2"; sha256="0ddjk39jz46xnig1b6iv5qdpxmwh76i4axfchghiy17hbpacbdlg"; depends=[ade4 candisc car class ellipse heplots MASS plot3D StatMatch vegan]; };
   MorseGen = derive2 { name="MorseGen"; version="1.2"; sha256="1kq35n00ky70zmxb20g4mwx0hn8c5g1hw3csmd5n6892mbrri8s9"; depends=[]; };
-  MortCast = derive2 { name="MortCast"; version="2.6-1"; sha256="0w7fd5n3wafix4l29svnja0l675pdpj64vgh113mzsn08h3kpwid"; depends=[wpp2017]; };
+  MortCast = derive2 { name="MortCast"; version="2.7-0"; sha256="1hw20wb0sl8q09vv68hid90ma2ml866kglsjf38kqky1whmihfbc"; depends=[wpp2017]; };
   MortalityGaps = derive2 { name="MortalityGaps"; version="1.0.0"; sha256="0nfm8xa7gnshrl8hsvmvr3za8nbppp7f7i5h4ni204w7xwvh8jxc"; depends=[crch forecast MASS pbapply]; };
   MortalityLaws = derive2 { name="MortalityLaws"; version="1.9.3"; sha256="12sfc4lhp01caknpw25gmchh8gv2wjlgpq0lby7iayl9lnsg1x92"; depends=[minpack_lm pbapply RCurl tidyr]; };
   MortalityTables = derive2 { name="MortalityTables"; version="2.0.3"; sha256="0ldj8gq5xpbxkjcvdysrcq7a0xv7caz1rc8v6bpn5hkr866lqnmw"; depends=[ggplot2 pracma scales]; };
-  MplusAutomation = derive2 { name="MplusAutomation"; version="1.0.0"; sha256="0hkz76gmmz1cpsjmz7jscwvdc8aar1g9468b5cr21zyl5slna0cg"; depends=[boot checkmate coda data_table digest fastDummies ggplot2 gsubfn lattice pander plyr rlang texreg xtable]; };
+  MplusAutomation = derive2 { name="MplusAutomation"; version="1.1.0"; sha256="011sd6v0zd5yr842k69fc8fn12lf7vw3v0rqmjwp6b2c8drw1b51"; depends=[boot checkmate coda data_table digest fastDummies ggplot2 gsubfn lattice pander plyr rlang texreg xtable]; };
   MplusTrees = derive2 { name="MplusTrees"; version="0.2.1"; sha256="0bc8663h746wxrb4x1b65k013byfpz80l9mz0090jwa3q710g506"; depends=[MplusAutomation nlme rpart rpart_plot]; };
   Mqrcm = derive2 { name="Mqrcm"; version="1.2"; sha256="1alfv76b90frimihjcq8whzqkwvhnnw2fd92nrfpnfj5dw0b56f5"; depends=[Hmisc pch]; };
   MrSGUIDE = derive2 { name="MrSGUIDE"; version="0.1.2"; sha256="1hd0lvvy12r6kxa64vwnjavyv2f7a9jqgjxgmlw86wwh5g09hvfd"; depends=[BH magrittr Rcpp RcppArmadillo yaml]; };
-  MsdeParEst = derive2 { name="MsdeParEst"; version="1.7"; sha256="1zhi1jr30sl7jpsw37lc3akfzixlhm9k2hjkha1pjy5fmd5lddlx"; depends=[MASS moments mvtnorm sde]; };
   MtreeRing = derive2 { name="MtreeRing"; version="1.4.5"; sha256="1i6ljz950n9fpgci9b5777dg3b88ihhz8jvyw621hg218imswhxz"; depends=[bmp dplR dplyr imager jpeg magick magrittr measuRing png shiny shinydashboard shinyWidgets spatstat_geom tiff]; };
   MuChPoint = derive2 { name="MuChPoint"; version="0.6.1"; sha256="15bqsc7bsjg55qxjwxh58bxbwz61a6wv4xxph994g4020b98l01x"; depends=[capushe Matrix Rcpp shiny]; };
   MuFiCokriging = derive2 { name="MuFiCokriging"; version="1.2"; sha256="09p8wdmlsf21ibqyjigwdipcin3ij0naxcd035hqgfj76v20wiyv"; depends=[DiceKriging]; };
@@ -3167,12 +3173,11 @@ in with self; {
   MulvariateRandomForestVarImp = derive2 { name="MulvariateRandomForestVarImp"; version="0.0.2"; sha256="0gbr44rwwb4nq2s4ix1ckfdjahsfx9sjfbww5wjcm1v68w6bk5ca"; depends=[MASS MultivariateRandomForest]; };
   MvBinary = derive2 { name="MvBinary"; version="1.1"; sha256="1lrrxvphxv4gmlazx67q4bck9373nqylqgkwcjzwb52291a3zyiv"; depends=[mgcv]; };
   My_stepwise = derive2 { name="My.stepwise"; version="0.1.0"; sha256="10wka6kzk8krwdsyjfnn78dfqflq4zg3vjkk0i2ywjm5vap6aqa5"; depends=[car lmtest survival]; };
-  Mychisq = derive2 { name="Mychisq"; version="0.1.2"; sha256="0yf1xgrp5gajla7prb1524586662wnjjjkc1xpyim6zfjkg89rbr"; depends=[]; };
+  Mychisq = derive2 { name="Mychisq"; version="0.1.3"; sha256="0667ldi1qm47cpdr0j7gv7c6f8s5wj7naqcgv9harrsmm4vsr4w6"; depends=[]; };
   N2H4 = derive2 { name="N2H4"; version="0.6.1"; sha256="00bbdy2f4bsb8b4j6n2zhmp7zif79yx14g4f4jylh1050r1y31rk"; depends=[dplyr httr jsonlite lubridate rvest tibble urltools]; };
   N2R = derive2 { name="N2R"; version="1.0.1"; sha256="12bv7xx6j6222qgpv6g61i68017fz0x6fjg9a9k5yhgw3zk05hpk"; depends=[Matrix Rcpp RcppEigen RcppSpdlog]; };
   NACHO = derive2 { name="NACHO"; version="1.1.0"; sha256="0ji9kcfbnsrn6h4p0y0ly5nwyfwh3y01wm80a7syg4mjj0nd4z0g"; depends=[cli crayon dplyr ggbeeswarm ggforce ggplot2 ggrepel knitr magrittr purrr rlang rmarkdown rstudioapi scales sessioninfo shiny shinyWidgets tibble tidyr]; };
   NADA = derive2 { name="NADA"; version="1.6-1.1"; sha256="0jp4mqr77cx7q5lff84s6wb0dwjy9mi0jyhbjc5fsx50bdczc3v7"; depends=[survival]; };
-  NADA2 = derive2 { name="NADA2"; version="1.0.1"; sha256="01x3ylrp3kizq9aa0wyaj4jbyr4si2vi8rc3b8r0bllnsl2ia2ix"; depends=[cenGAM coin EnvStats fitdistrplus Kendall mgcv multcomp NADA perm survival survminer vegan]; };
   NADIA = derive2 { name="NADIA"; version="0.4.1"; sha256="11ijx9zs9r7s83mjhr7j6wrhz03mhwcrfsl4km6izmm36qa2vslm"; depends=[Amelia data_table doParallel foreach glmnet mice missForest missMDA missRanger mlr3 mlr3learners mlr3pipelines paradox softImpute testthat VIM]; };
   NAEPirtparams = derive2 { name="NAEPirtparams"; version="1.0.0"; sha256="0qhfmkhi38z27ky3xbkvra5r6lw3kj9p3xrblm9j2657rj9kxc9j"; depends=[]; };
   NAEPprimer = derive2 { name="NAEPprimer"; version="1.0.1"; sha256="19p1livdnayfcl88f8r9x1vg30x522q8lgx66pfgwpkxjzvrqa2l"; depends=[]; };
@@ -3191,7 +3196,7 @@ in with self; {
   NBShiny = derive2 { name="NBShiny"; version="0.1.0"; sha256="0hcmdhj26hc3c8d5nb6yb7amv0rbdxywima0l0jqkxipx56idlcx"; depends=[caret dplyr e1071 rhandsontable rmarkdown shiny]; };
   NBShiny2 = derive2 { name="NBShiny2"; version="0.1.0"; sha256="0w4f19av8zl220zq3flmlqn86ivikclnsnkd7bc1wafhr12hmygp"; depends=[caret dplyr e1071 rhandsontable rmarkdown shiny]; };
   NBShiny3 = derive2 { name="NBShiny3"; version="0.1.0"; sha256="1p0n4jpzdaqwpidxairwpgc8qrdvr1r7cammpgnzc6a9ar2hcw1g"; depends=[caret dplyr e1071 rhandsontable rmarkdown shiny]; };
-  NCA = derive2 { name="NCA"; version="3.1.1"; sha256="11ky58kydmy9jrw33mzhi65wxd60wn5zvp77ml10zms78v7yvl04"; depends=[doParallel foreach ggplot2 gplots iterators KernSmooth lpSolve plotly quantreg sfa]; };
+  NCA = derive2 { name="NCA"; version="3.2.0"; sha256="0m5w9il4h2annj06rj8zwvjkbz74hwmpr93wyzpdhzw9h6i8917x"; depends=[doParallel foreach ggplot2 gplots iterators KernSmooth lpSolve plotly quantreg]; };
   NCSCopula = derive2 { name="NCSCopula"; version="1.0.1"; sha256="0amxp9daqp9bhz61hrq1dk88ai5xfd5sp3538rf3xwgs6walycr4"; depends=[copula]; };
   NCSampling = derive2 { name="NCSampling"; version="1.0"; sha256="0bv93xffnzvbip86b3pg7apxzh3410mxff77q119m0z7f6vm3fam"; depends=[lattice randomForest yaImpute]; };
   NCmisc = derive2 { name="NCmisc"; version="1.1.6"; sha256="0ycc7b7z26a922hdjq8p4hjljjh09il24h3023k248pcsnbmka1a"; depends=[proftools]; };
@@ -3215,7 +3220,7 @@ in with self; {
   NHSDataDictionaRy = derive2 { name="NHSDataDictionaRy"; version="1.2.5"; sha256="17jvyjxc28bmxadvcjhal4shklh24636zw6hrc7p7m71lbcw86aw"; depends=[dplyr httr magrittr purrr rvest stringr tibble xml2]; };
   NHSRdatasets = derive2 { name="NHSRdatasets"; version="0.3.0"; sha256="1l4zrprnb3fsb2mibq8749a15xbvhn1g5yajbjf7gls81c8f2r7p"; depends=[tibble]; };
   NHSRplotthedots = derive2 { name="NHSRplotthedots"; version="0.1.0"; sha256="1rqryqaxyb3d6kws8mznsnzv19h8nhn1323vkh9zq59la9r3kiai"; depends=[assertthat crayon dplyr ggplot2 NHSRdatasets rlang scales]; };
-  NIMAA = derive2 { name="NIMAA"; version="0.1.0"; sha256="0qi99iwvr8362zm4lxq6vbw5l47r5246zvsa9p1y3ragc7s1qahc"; depends=[bipartite bnstruct crayon dplyr fpc ggplot2 igraph mice missMDA networkD3 plotly purrr RColorBrewer scales skimr softImpute tibble tidyr tidytext visNetwork]; };
+  NIMAA = derive2 { name="NIMAA"; version="0.2.0"; sha256="04zg5s8icsq23ryyscqrm8xsz2j9pgrkgy356wijkqkzlnhbdpib"; depends=[bipartite bnstruct crayon dplyr fpc ggplot2 igraph mice missMDA networkD3 plotly purrr RColorBrewer scales skimr softImpute tibble tidyr tidytext visNetwork]; };
   NIPTeR = derive2 { name="NIPTeR"; version="1.0.2"; sha256="0ll6amqyw33a93xiccihidrnbaqlx1q7kqcd4wks7cvqawd8pgv1"; depends=[Rsamtools S4Vectors sets]; };
   NIRStat = derive2 { name="NIRStat"; version="1.1"; sha256="07l4ca7d9q840iy5a80sqafrlv20534jw65wzxs90j2d0jx4acs9"; depends=[ggplot2 gridExtra mgcv]; };
   NISTnls = derive2 { name="NISTnls"; version="0.9-13"; sha256="03a1c8a5dr5l5x4wbclnsh3vmx3dy7migfdzdx7d7p3s7hj3ibif"; depends=[]; };
@@ -3227,7 +3232,7 @@ in with self; {
   NLRoot = derive2 { name="NLRoot"; version="1.0"; sha256="1x8mcdgqqrhyykr12bv4hl4wbh1zw2qgpnd2yrm68kb92iy95rh4"; depends=[]; };
   NMADiagT = derive2 { name="NMADiagT"; version="0.1.2"; sha256="0fskc3ldfdl17gazpfr2hixy79n7db4c1f5yl1jalhwxiabnxjwp"; depends=[coda ggplot2 imguR ks MASS MCMCpack plotrix Rdpack reshape2 rjags]; };
   NMAoutlier = derive2 { name="NMAoutlier"; version="0.1.18"; sha256="0h0pxjg6ppz9zv7wcv1dka5g0f9wxk3bnwicfpsv1advcam4vmmn"; depends=[ggplot2 gridExtra MASS meta netmeta reshape2]; };
-  NMF = derive2 { name="NMF"; version="0.23.0"; sha256="0ls7q9yc9l1z10jphq5a11wkfgcxc3gm3sfjj376zx3vnc0wl30g"; depends=[Biobase BiocManager cluster colorspace digest doParallel foreach ggplot2 gridBase pkgmaker RColorBrewer registry reshape2 rngtools stringr]; };
+  NMF = derive2 { name="NMF"; version="0.24.0"; sha256="14yxra6in5c1md5nr75y8cdmh9pg0lxqabqflvlhgg1vbg9i2628"; depends=[Biobase BiocManager cluster colorspace digest doParallel foreach ggplot2 gridBase pkgmaker RColorBrewer registry reshape2 rngtools stringr]; };
   NMFN = derive2 { name="NMFN"; version="2.0"; sha256="0n5fxqwyvy4c1lr0glilcz1nmwqdc9krkqgqh3nlyv23djby9np5"; depends=[]; };
   NMI = derive2 { name="NMI"; version="2.0"; sha256="1rxphy9rhy9zhdiz48dvl9m26x6k681lnyn39lqxs0a6jhrxg7y3"; depends=[]; };
   NMMIPW = derive2 { name="NMMIPW"; version="0.1.0"; sha256="13mv6dpmlldqxkxq6kiydsfwyys5w7i8ws80a5l3377i5chdqi2c"; depends=[lava nloptr numDeriv]; };
@@ -3236,7 +3241,7 @@ in with self; {
   NMdata = derive2 { name="NMdata"; version="0.0.11"; sha256="0yzjrx885zq7pnajm3s2nxjcza8pcxbn0ni60bwvr85havcs1wpj"; depends=[data_table]; };
   NMproject = derive2 { name="NMproject"; version="0.6.7"; sha256="0sri85n5i5w56bmbcg3yca3r5lh9j59gwwjidwhvxvxbg6czw6n7"; depends=[crayon diffobj dplyr DT dygraphs git2r htmltools lifecycle magrittr miniUI reshape2 rlang rmarkdown rprojroot rstudioapi shiny stringr tidyr usethis]; };
   NNMIS = derive2 { name="NNMIS"; version="1.0.1"; sha256="1w2i4xlx249p589yqdgbx1ra406ycxw729vbk1lqadbn71m6blaz"; depends=[survival]; };
-  NNS = derive2 { name="NNS"; version="0.8.5"; sha256="0yf0r6zvxydwj883ahvp5mx2pr9qifrkiizd0mnc8w7g6cmw7bm8"; depends=[caret data_table doParallel dtw dynlm meboot Quandl Rfast rgl stringr tdigest tseries zoo]; };
+  NNS = derive2 { name="NNS"; version="0.8.61"; sha256="195hgfm3xn7bywkslzvkkrx3fc0km0kis4zfwjr5b63z93sxf8lg"; depends=[caret data_table doParallel dtw dynlm meboot Quandl Rfast rgl stringr tdigest tseries zoo]; };
   NNTbiomarker = derive2 { name="NNTbiomarker"; version="0.29.11"; sha256="0sqlf7vzhpmq2g98c2qlrcqn3ba4ycfxbczgcjiqqhqsvgkpacc1"; depends=[magrittr mvbutils shiny stringr xtable]; };
   NNbenchmark = derive2 { name="NNbenchmark"; version="3.2.0"; sha256="086smk3xy6p6ianw41h3gx806q7h28v1dg9d3khsrwyyf9gn8xyp"; depends=[pkgload R6]; };
   NO_PING_PONG = derive2 { name="NO.PING.PONG"; version="0.1.4"; sha256="10q5h9kafni3wlnn1gdsgd9a90km5snrjz1nr0ilafmdvw9vg6v1"; depends=[MASS MCMCglmm metafor]; };
@@ -3256,7 +3261,7 @@ in with self; {
   NPS = derive2 { name="NPS"; version="1.1"; sha256="02idja149a2sj97sks4lhsaflpifyxi6n0rjlcq9993f84szfgsi"; depends=[]; };
   NPflow = derive2 { name="NPflow"; version="0.13.3"; sha256="1bgdkm82pmzjv46pkxpvh5ffffmc6q68x5jjl7k330w9vwgx2kf0"; depends=[ellipse fastcluster ggplot2 pheatmap Rcpp RcppArmadillo reshape2 truncnorm]; };
   NRejections = derive2 { name="NRejections"; version="1.2.0"; sha256="0lzj7kyn4s8l306a6xwkgkv1z4dlfsr61i902lvdxv4ln4m6a5kq"; depends=[doParallel foreach matrixcalc mvtnorm StepwiseTest]; };
-  NSAE = derive2 { name="NSAE"; version="0.1.1"; sha256="154jkajbs2l2yl4bbcrzn473i45hm3yr7nzb49hx084pn6h5lqsa"; depends=[rlist]; };
+  NSAE = derive2 { name="NSAE"; version="0.2.1"; sha256="0pf1l8ms3shjgkgvfqx9vx78xjrdabw7j4j0c8krlixwmdf9xcr0"; depends=[rlist]; };
   NSM3 = derive2 { name="NSM3"; version="1.16"; sha256="18wihr8qzdkyd6pwxq8yz2wrj0nh1sh713nflv4jiiczg6d965b8"; depends=[agricolae ash binom BSDA coin combinat fANCOVA gtools Hmisc km_ci MASS metafor nortest np partitions quantreg Rfit SemiPar SuppDists survival waveslim]; };
   NSO1212 = derive2 { name="NSO1212"; version="1.4.0"; sha256="1wxp7rp43gl3xgwln8d1s7b7a5zhz4dlshf9dzgb2ippvjxjqbmc"; depends=[httr jsonlite]; };
   NST = derive2 { name="NST"; version="3.0.6"; sha256="02frl4vpdw14gkgx7g0pi7zl342pkmszh48ggsf3b3qchsj5i1iz"; depends=[ape bigmemory iCAMP permute vegan]; };
@@ -3306,7 +3311,7 @@ in with self; {
   NlcOptim = derive2 { name="NlcOptim"; version="0.6"; sha256="121njnbfww6qijbc9x6prw35glyzm18di01qvvjn62z4kgq4f7vi"; depends=[MASS quadprog]; };
   NlinTS = derive2 { name="NlinTS"; version="1.4.5"; sha256="045gqsy9q64mh10swm9a1bh8jvr41rjks3024cc195lad6jhj441"; depends=[Rcpp Rdpack timeSeries]; };
   Nmisc = derive2 { name="Nmisc"; version="0.3.7"; sha256="1k43cp63h96xv3f28fpvw7p2yh3lv1jbhq9bdp3yk6cg0870vya7"; depends=[dplyr magrittr purrr rappdirs rlang stringr tibble tidyselect]; };
-  Nmix = derive2 { name="Nmix"; version="1.2.1"; sha256="1jjzwcrb41m0jjfcylcgqv53psw88kmm3kq13n5c1s2nl3isk1i8"; depends=[]; };
+  Nmix = derive2 { name="Nmix"; version="2.0.3"; sha256="072n4mmirzkfyd9mslx9mig5y8av0rzv3qvdrii8a3hyxn8i0wbq"; depends=[]; };
   NobBS = derive2 { name="NobBS"; version="0.1.0"; sha256="0i0jyny1c29knpcl4szqwyxvdc3dqjfk5lf2xvwjdx3qas92w03l"; depends=[coda dplyr magrittr rjags]; };
   NoiseFiltersR = derive2 { name="NoiseFiltersR"; version="0.1.0"; sha256="0y90si8f5hsi273g10hw700r72la30hwqlwg59gaq76wqlkm8j0p"; depends=[caret e1071 kknn MASS nnet randomForest rJava rpart RWeka]; };
   NominalLogisticBiplot = derive2 { name="NominalLogisticBiplot"; version="0.2"; sha256="0m9442d9i78x57gdwyl3ckwp1m6j27cam774zkb358dw5nmwxbmz"; depends=[gmodels MASS mirt]; };
@@ -3329,6 +3334,7 @@ in with self; {
   NutrienTrackeR = derive2 { name="NutrienTrackeR"; version="1.2.0"; sha256="0n54kgxcj8w3r3iqdr13kia49b9zgxiki64h90yygpbg32hqdn8b"; depends=[ggplot2 shiny]; };
   OAIHarvester = derive2 { name="OAIHarvester"; version="0.3-3"; sha256="00j5f6kw67qr83cmds9y5rzwiv2sb2b2bfbr5cclpr3wcsw278fs"; depends=[curl xml2]; };
   OBASpatial = derive2 { name="OBASpatial"; version="1.8"; sha256="1xc4qz3i5pphgf17asyiafdnlhv5k88rw0fwkwfh8cz767wip1hw"; depends=[cubature HDInterval invgamma LaplacesDemon modeest mvtnorm truncdist]; };
+  OBIC = derive2 { name="OBIC"; version="2.0.1"; sha256="0yrgnrhxn5nv0gbhzj2psskr12yaygv7bns64al1cgk18dlrsgb0"; depends=[checkmate data_table]; };
   OBMbpkg = derive2 { name="OBMbpkg"; version="1.0.0"; sha256="01wch8wwij3fd0jambk0hpkhlnp4ryrq8qnnr2w1iad9zssjyii5"; depends=[]; };
   OBsMD = derive2 { name="OBsMD"; version="6.1"; sha256="0jvvcx2lc39rdnlbhykam6cf94lbci9zc1vshwfhvygblnmjgrzr"; depends=[]; };
   OCA = derive2 { name="OCA"; version="0.4"; sha256="0ci3c5kfv3v2h7cir1f7f8r2yd0iiz2wcab512nf36mf1y5k666s"; depends=[]; };
@@ -3353,6 +3359,7 @@ in with self; {
   OOR = derive2 { name="OOR"; version="0.1.3"; sha256="13v04rx2q6pbiq7dyd29wvimkr4sbq2f5rnn3a0lcbwr3x35r7h9"; depends=[]; };
   OOS = derive2 { name="OOS"; version="1.0.0"; sha256="0jnj5y26rv0i2561mywcxb7aavmpq16ippq6rblb8jiqjd05nhib"; depends=[caret dplyr forecast furrr future ggplot2 glmnet imputeTS lmtest lubridate magrittr purrr sandwich tidyr vars xts zoo]; };
   OOmisc = derive2 { name="OOmisc"; version="1.2"; sha256="09vaxn5czsgn6wpr27lka40kzd76jzqgqxavf26ms3m9kkdf83g4"; depends=[]; };
+  OPC = derive2 { name="OPC"; version="0.0.1"; sha256="0m7yqk3drj0zz4184bsvzhqzjxl0smfqdkkr7rpg8z3jk8qkvah1"; depends=[MASS]; };
   OPDOE = derive2 { name="OPDOE"; version="1.0-10"; sha256="04z944i4f3i0cjnxh32wf7n2dfyynnvkz4lxdkn90flam2np58yv"; depends=[crossdes gmp mvtnorm nlme orthopolynom polynom]; };
   OPI = derive2 { name="OPI"; version="2.10.1"; sha256="0yzl3s0bkygwh1mg2fshf370k7hr0iw091k1jpwf92fvym1a68ia"; depends=[]; };
   ORCI = derive2 { name="ORCI"; version="1.1"; sha256="0xy5lvz2scz06fphjyhqbdhp4bizmv87a8xykp9dbgx8b4ssnqgz"; depends=[BiasedUrn BlakerCI PropCIs]; };
@@ -3372,7 +3379,6 @@ in with self; {
   OTE = derive2 { name="OTE"; version="1.0.1"; sha256="0jvvrrfhpc5kibbxrd5r4dj97jp5m072fxnkpcyz11gi65db3z4g"; depends=[randomForest]; };
   OTRselect = derive2 { name="OTRselect"; version="1.0"; sha256="1bh14228yz552ngywjf1qyh1isqj4cgiy7n7d4zg8dpqwxr04ykp"; depends=[lars survival]; };
   OTUtable = derive2 { name="OTUtable"; version="1.1.2"; sha256="1sm037ihm12xyp7ns5f0c1psflvm1aj3xnsj5nzh2rsjn35hvd6h"; depends=[]; };
-  OTclust = derive2 { name="OTclust"; version="1.0.4"; sha256="11mr67zp68wzf1dd6vb3f31g8a430im97sdjsb0w4awqpmjdyyrz"; depends=[class ggplot2 magrittr RColorBrewer Rcpp]; };
   OTrecod = derive2 { name="OTrecod"; version="0.1.1"; sha256="0rf50li6pnyi9lkxwlayq3190l85cxfmy3ldx0g6fr32ksfjsgfq"; depends=[dplyr FactoMineR mice missMDA ompr ompr_roi party plyr proxy rdist ROI ROI_plugin_glpk StatMatch vcd]; };
   OUwie = derive2 { name="OUwie"; version="2.6"; sha256="0yh0hnlrimfqajl0qixs0ciiwpl9r38w9y1g9bhgvafj190ikb54"; depends=[ape corpcor geiger igraph interp lhs nloptr numDeriv paleotree phangorn phylolm phytools RColorBrewer]; };
   OVtool = derive2 { name="OVtool"; version="1.0.3"; sha256="1ghfbvnfl092g0kikgjghgf0l1y7ihqykssfvvfi6q6pgzl8kz4y"; depends=[Amelia devtools dplyr EnvStats ggplot2 ggrepel glue magrittr metR progress purrr rlang survey tibble tidyselect twang varhandle]; };
@@ -3486,8 +3492,8 @@ in with self; {
   PCS = derive2 { name="PCS"; version="1.2"; sha256="0488h6s1yz6fwiqf88z2vgckn6i0kwls8cazmpw3wspnaqvl2n4s"; depends=[multtest statmod]; };
   PCSinR = derive2 { name="PCSinR"; version="0.1.0"; sha256="1z8yjryw3c43vc6fxcwiindmyq6r63pc1zr3aybwmys6mv697bb4"; depends=[]; };
   PCovR = derive2 { name="PCovR"; version="2.7.1"; sha256="1lvj3kf4pnvbr7lk3kzvh72akga49zx25b3w7nq24925s129sqx1"; depends=[GPArotation MASS Matrix ThreeWay]; };
-  PDE = derive2 { name="PDE"; version="1.3.0"; sha256="1nz0xrhs2iin2grqvxhp99775q8wrjp7isyr1i415vi936jabs0i"; depends=[tcltk2]; };
-  PDFEstimator = derive2 { name="PDFEstimator"; version="3.1"; sha256="0l9iq7jr266f44laxbhj23ngp5m4fimhxmr4nszajr0j3w14wmrl"; depends=[]; };
+  PDE = derive2 { name="PDE"; version="1.4.0"; sha256="0qizclfaig2a6ybpa1qid2lhzasfb6i30vy6n4mv2765db7h5dkf"; depends=[tcltk2]; };
+  PDFEstimator = derive2 { name="PDFEstimator"; version="3.2.1"; sha256="0a7p32i66lk0z838fcgk8r8l9x2j6hginhsahl5k4hq327h9d6sf"; depends=[]; };
   PDM = derive2 { name="PDM"; version="0.1"; sha256="1pbdy13ji9c6krgh2r1qgrzmf4hdmrdzylsr71n3hh5jq4n9xg8x"; depends=[jpeg]; };
   PDMIF = derive2 { name="PDMIF"; version="0.1.0"; sha256="0mlc31f4z0k5xk1fil0hx5dcbm7afia74kxb7xmnx4jcblidxnd2"; depends=[diagonals ncvreg quantreg]; };
   PDN = derive2 { name="PDN"; version="0.1.0"; sha256="082ydvwcjc2rs7hlakrkgbbm9c419m408a14a9dgfdwm16yif3jd"; depends=[ggplot2 glmnet network survival]; };
@@ -3518,10 +3524,11 @@ in with self; {
   PINSPlus = derive2 { name="PINSPlus"; version="2.0.6"; sha256="0mws1064kwfm3csdzpfn4g2pwjasdmx9nz5x28znxv8hwrlgm2zw"; depends=[cluster doParallel entropy FNN foreach impute irlba matrixStats mclust Rcpp RcppArmadillo RcppParallel]; };
   PIPS = derive2 { name="PIPS"; version="1.0.1"; sha256="1c5v3s6xys9p1q32k6mpsffhi9gwsq951rh12hs76dmak862yspc"; depends=[]; };
   PK = derive2 { name="PK"; version="1.3-5"; sha256="1wzz2qv6h6nc2hcsg4098951i608xbbhc9f9ngamfigh5sbmzbh6"; depends=[]; };
-  PKI = derive2 { name="PKI"; version="0.1-10"; sha256="08h9am4k69x3ayvp8ah42m2k989ii5j1lm9240v60l2dailij48m"; depends=[base64enc]; };
+  PKI = derive2 { name="PKI"; version="0.1-11"; sha256="17czxqilgbh2v1kgjvqcz8m1cbjv4iygi5vn27wh1pyaga6sv8z9"; depends=[base64enc]; };
   PKLMtest = derive2 { name="PKLMtest"; version="1.0.1"; sha256="0i1kxczlhn95jw1w7vw87svqhpq9j6xi4fhy974yjx9xhax171hq"; depends=[ranger]; };
   PKNCA = derive2 { name="PKNCA"; version="0.9.5"; sha256="0grz5akbpb6i2dg8s9v34qr1zw1r8pczqw2amm6ihi8bxr799223"; depends=[digest dplyr nlme purrr rlang tibble tidyr]; };
   PKPDmodels = derive2 { name="PKPDmodels"; version="0.3.2"; sha256="1h893civ77ahbgjnc6kq3l7rszmqmx9dlxwavldigpq3r79vd86k"; depends=[]; };
+  PKPDsim = derive2 { name="PKPDsim"; version="1.1.1"; sha256="0h9rxwjh2cxn3mlpgwy86lrq6y820rhxjyxhjyi4l0k7j6cshlbd"; depends=[BH data_table jsonlite magrittr MASS randtoolbox Rcpp stringr]; };
   PKconverter = derive2 { name="PKconverter"; version="1.5"; sha256="1zk2sjrjhq7n2k2p29r2qc6qdghr3riyjvvawz0g74lidg7hm1ly"; depends=[shiny shinydashboard shinythemes]; };
   PKreport = derive2 { name="PKreport"; version="1.5"; sha256="16hss9migbxpnw5f9gcw1nlvb81iyji00ylx5wd6kdwhz0ids9wj"; depends=[ggplot2 lattice]; };
   PL94171 = derive2 { name="PL94171"; version="1.0.1"; sha256="0x7lymy8fg5r3w21an6ihrnrhsicnl4q382gx7pij9vlb82cy763"; depends=[dplyr httr readr sf stringr tigris withr]; };
@@ -3529,22 +3536,25 @@ in with self; {
   PLIS = derive2 { name="PLIS"; version="1.1"; sha256="0b81s7677wglqvv1b5lx8k2iaks09kz0wrl07245a7j2pk9nxv7p"; depends=[]; };
   PLMIX = derive2 { name="PLMIX"; version="2.1.1"; sha256="05mnzsi7y71cvg50qx8hp4m31gqslldl34k41r1f8npyb6ldpdca"; depends=[abind coda foreach ggmcmc ggplot2 gridExtra gtools label_switching MCMCpack PlackettLuce pmr prefmod radarchart rankdist rcdd Rcpp reshape2 StatRank]; };
   PLNmodels = derive2 { name="PLNmodels"; version="0.11.6"; sha256="1vmcwh81cfkifbirqk2zs8pxn9ng1934q6cw478px9gaqgxfsyaa"; depends=[corrplot dplyr future future_apply ggplot2 glassoFast gridExtra igraph magrittr MASS Matrix nloptr purrr R6 Rcpp RcppArmadillo rlang tidyr]; };
+  PLORN = derive2 { name="PLORN"; version="0.1.1"; sha256="0x6rvg63mqc451rw0hpz1pjafdyxwraqhnj8cgbwjknhm5k4m1bl"; depends=[ggplot2 kernlab]; };
   PLRModels = derive2 { name="PLRModels"; version="1.1"; sha256="0dwnzfw7a1cxz9s00kxf19jmjsc8cy6cc9q2mjqf8z7690wrg7hb"; depends=[]; };
   PLSiMCpp = derive2 { name="PLSiMCpp"; version="1.0.1"; sha256="0dxfv2l2bbg0wfybk6w8p0m5skc9kx7i3ch72j9cvzvza0zqp2ln"; depends=[crayon Rcpp RcppArmadillo]; };
   PLmixed = derive2 { name="PLmixed"; version="0.1.5"; sha256="03ivginsg1zhdxv5bzzmh6mxjz2b6qi8p4cq7sfm5q4llkld46x6"; depends=[lme4 Matrix numDeriv optimx]; };
   PLordprob = derive2 { name="PLordprob"; version="1.1"; sha256="1g23h3121g9csr85falm6vgzbva42wz3skhfr2rxmvlc3ca4afyp"; depends=[mnormt]; };
+  PLreg = derive2 { name="PLreg"; version="0.2.0"; sha256="1639wclggbhq7pm0l350sk6fg6rinfidw4imdg4839wzifh16bjz"; depends=[BBmisc EnvStats Formula gamlss_dist GeneralizedHyperbolic nleqslv VGAM zipfR]; };
   PMA = derive2 { name="PMA"; version="1.2.1"; sha256="1rhiylm3jfarnqdkv7nwg536sgsa30ic80dk9byks9w0wf4mn59s"; depends=[]; };
+  PMAPscore = derive2 { name="PMAPscore"; version="0.1.0"; sha256="1zs1pybq693ffxyasv6vrhmxx6bqfasr61fv6p1v110492z6g8zr"; depends=[clusterProfiler glmnet maftools org_Hs_eg_db pROC survival survminer]; };
   PMCMR = derive2 { name="PMCMR"; version="4.4"; sha256="05n13pp5yff6pzk4ry07crddfaj3jlglrd1vkcnacyd8jpaxkd77"; depends=[]; };
-  PMCMRplus = derive2 { name="PMCMRplus"; version="1.9.3"; sha256="00sgk4c7vpmbfifrsbqd5gh7hwdpm8kymlpnnrdzlhvkymhbmfkn"; depends=[BWStest gmp kSamples MASS multcompView mvtnorm Rmpfr SuppDists]; };
+  PMCMRplus = derive2 { name="PMCMRplus"; version="1.9.4"; sha256="16m1pdrzjq9vnx5v7zv56mz9r1205rkw92883cxaqbvdpds6dhqy"; depends=[BWStest gmp kSamples MASS multcompView mvtnorm Rmpfr SuppDists]; };
   PMwR = derive2 { name="PMwR"; version="0.17-0"; sha256="0p5gsagpk5w8nmpg49y74bj0gzk1qdpw1q9679p9qpwmc7xl3k6n"; depends=[datetimeutils fastmatch NMOF orgutils textutils zoo]; };
   PNADcIBGE = derive2 { name="PNADcIBGE"; version="0.7.0"; sha256="0bjqahrnsgc5i506jcjcin62lgn9zx2hrpflpnqzhshkhinnxnbz"; depends=[dplyr httr magrittr projmgr RCurl readr readxl survey tibble timeDate]; };
-  PNSIBGE = derive2 { name="PNSIBGE"; version="0.1.6"; sha256="0b3qdg3chgx4g40zyisn2an50brdp0yzzwszyi0cz26n9y302fjb"; depends=[dplyr httr magrittr projmgr RCurl readr readxl survey tibble timeDate]; };
+  PNSIBGE = derive2 { name="PNSIBGE"; version="0.1.7"; sha256="0cs0bpb4fdkgznds579q7fblj0jay6wjyfhwpwc4y6z8ai1rhgja"; depends=[dplyr httr magrittr projmgr RCurl readr readxl survey tibble timeDate]; };
   PNWColors = derive2 { name="PNWColors"; version="0.1.0"; sha256="1phplnclkficfv8s6wsyrckk4ixzbayiy5iix6dddg40485l9nyj"; depends=[]; };
   PO_EN = derive2 { name="PO.EN"; version="1.0"; sha256="1b4vcj6dnfji99nlskjvls996cmb1b2s3mfdammi07sdx625pvji"; depends=[glmnet pROC PUlasso Rcpp RcppArmadillo]; };
-  POCRE = derive2 { name="POCRE"; version="0.5.0"; sha256="0aph1lmb0xkzm4l4ah2wrx13d138igf4k4w9wb9lca4vv6m7xzqf"; depends=[EbayesThresh ggplot2 pracma]; };
+  POCRE = derive2 { name="POCRE"; version="0.6.0"; sha256="0kni15dr7qhldn68w51mzg6pyk95dx717qy0f9230hpbg97791hz"; depends=[EbayesThresh ggplot2 pracma]; };
   POD = derive2 { name="POD"; version="1.2.0"; sha256="1xg2xzfmzg2qrwd02xy4fwsfmccigw6lm5266z6w1kxzb7p7bbw0"; depends=[]; };
   POET = derive2 { name="POET"; version="2.0"; sha256="0w3jhj45sxisyrpcsazbrbcsz7rmraw71jjm0zixbcgc4klb98ar"; depends=[]; };
-  POFIBGE = derive2 { name="POFIBGE"; version="0.1.5"; sha256="12isw4z9zy1sd153iwlsdch3ikqknn6cgl0xnmyv9dix8w8b0d2s"; depends=[dplyr httr magrittr projmgr RCurl readr readxl survey tibble timeDate]; };
+  POFIBGE = derive2 { name="POFIBGE"; version="0.1.6"; sha256="0llam63hjf1yi6qc44bpgr6dmc4b8sy0sn8gwcgzz50apsn1glc9"; depends=[dplyr httr magrittr projmgr RCurl readr readxl survey tibble timeDate]; };
   POINT = derive2 { name="POINT"; version="1.1"; sha256="0bkrsvcmm7927d7c56wr804a2wv5c1dn8y8zhf76433ckj45068x"; depends=[CompQuadForm Matrix rARPACK]; };
   POMaSPU = derive2 { name="POMaSPU"; version="1.0.0"; sha256="0jz3jgzdykv0xvfw3ix0hbs32as6dp7p5v8bj5nddknx10d0siya"; depends=[MASS matrixStats Rcpp RcppArmadillo]; };
   POSTm = derive2 { name="POSTm"; version="1.1"; sha256="0ax0ky2xbaymw4fdipxvy1gh5wfnnm8hwxcg6hksasaz366widhm"; depends=[ape CompQuadForm]; };
@@ -3559,7 +3569,7 @@ in with self; {
   PPMR = derive2 { name="PPMR"; version="1.0"; sha256="07fky5xc1dmmn23wwdjm46c86i7q20dv5f2147828v52hhky873g"; depends=[Rcpp RcppArmadillo]; };
   PPQplan = derive2 { name="PPQplan"; version="1.1.0"; sha256="072r7myqsnpyla37q6bj9glwvbygb9g8xkl60q055yzxmfh4rsbr"; depends=[ggplot2 plotly]; };
   PPRL = derive2 { name="PPRL"; version="0.3.6"; sha256="08z7fnvz9wdsdba6n19qxg6n32azka9890w16jj7qpv25bpkqvl1"; depends=[Rcpp settings]; };
-  PPTcirc = derive2 { name="PPTcirc"; version="0.2.1"; sha256="07z5561gkn1wafgp9fj1qkj7mqr0n1pda1v6687gh5s170glnlbw"; depends=[circular progress]; };
+  PPSFS = derive2 { name="PPSFS"; version="0.1.0"; sha256="180brwqcs2qjh01a1qwdy2a8g19scn4mxzc3s6pw8gyl2r3fzxi7"; depends=[brglm2 Rcpp RcppArmadillo]; };
   PPforest = derive2 { name="PPforest"; version="0.1.2"; sha256="049ywkhf7ywrfxsvsyxp10df7jx0a0pvss8nn3nbkj7mblgvbf7k"; depends=[doParallel dplyr magrittr plyr Rcpp RcppArmadillo tidyr]; };
   PPtreeViz = derive2 { name="PPtreeViz"; version="2.0.4"; sha256="008hlgi56p9wydpsb2f1dxi4slml7p417c34lw00hivbl53d6x97"; depends=[ggplot2 gridExtra partykit Rcpp RcppArmadillo]; };
   PQLseq = derive2 { name="PQLseq"; version="1.2.1"; sha256="0lyynzvv7n1igzfrw52021bnxprqcm2hjxmlrsxkx4898ca46g60"; depends=[doParallel foreach Matrix Rcpp RcppArmadillo]; };
@@ -3582,7 +3592,6 @@ in with self; {
   PRP = derive2 { name="PRP"; version="0.1.1"; sha256="1q4idlk2crxsd841b203hkcyp9glqhsg83liddqlxixxih7rkzp1"; depends=[mvtnorm]; };
   PRROC = derive2 { name="PRROC"; version="1.3.1"; sha256="1m28h8pcd78049lz2qixhkcr9h5b3jik3maqzfbvq9y58z71i4a7"; depends=[]; };
   PRSPGx = derive2 { name="PRSPGx"; version="0.1.0"; sha256="068r4krx6y40w9mmjv2z04di9w3ydas3lgpwhjqlnsfq0yjk5ias"; depends=[bdsmatrix bigparallelr bigsnpr bigsparser bigstatsr gglasso GIGrvg glmnet lmtest Matrix MCMCpack mvtnorm propagate SGL]; };
-  PRSim = derive2 { name="PRSim"; version="1.3-1"; sha256="1iq81vdxwd504cqjn243hs8x8ph7yvf06gj4amf7cgg1j6862d35"; depends=[goftest homtest lmomco mev splus2R wavScalogram]; };
   PReMiuM = derive2 { name="PReMiuM"; version="3.2.7"; sha256="108ijvhs48i0sphqvpkxa3bwcsak7098irz5x82zja42h9bz5hwf"; depends=[BH cluster data_table gamlss_dist ggplot2 plotrix Rcpp RcppEigen rgdal spdep]; };
   PResiduals = derive2 { name="PResiduals"; version="1.0-1"; sha256="0mq16cs07hw5c9jj08vpgbb15xvjvz9h0npsbqphiibsb6ca5fwb"; depends=[Formula MASS rms SparseM]; };
   PSAgraphics = derive2 { name="PSAgraphics"; version="2.1.1"; sha256="05c0k94dxddyrhsnhnd4jcv6fxbbv9vdkss2hvlf3m3xc6jbwvh9"; depends=[rpart]; };
@@ -3592,7 +3601,7 @@ in with self; {
   PSIMEX = derive2 { name="PSIMEX"; version="1.1"; sha256="0cndzasvg4y49incyd9nfz8y3z88ywbc7xk0zzjir665pv2xn23b"; depends=[knitr MCMCglmm pedigree plotrix]; };
   PSLM2015 = derive2 { name="PSLM2015"; version="0.2.0"; sha256="1f8kzlqil2ac8a9fbj9fhdni2narh2yaaz044mlx7gsv2ns3ai19"; depends=[dplyr ggplot2 magrittr]; };
   PSPManalysis = derive2 { name="PSPManalysis"; version="0.3.7"; sha256="1l8pik1abfrcid8ffwp3gjl9z5iby6l5xcmv1vcg1cbd96z4rvqn"; depends=[pkgbuild rstudioapi]; };
-  PSS_Health = derive2 { name="PSS.Health"; version="0.3.1"; sha256="0k5726b4hm2cnxg2qr7rdvv5n5bn2jlaxfcy3088k6vbhqz4f8df"; depends=[DT easypower EnvStats epiR ICC_Sample_Size kappaSize longpower plotly powerMediation powerSurvEpi presize pROC pwr pwr2 shiny shinycssloaders shinyFeedback shinyhelper tidyverse writexl]; };
+  PSS_Health = derive2 { name="PSS.Health"; version="0.4.0"; sha256="1vp25ga3pyj81jbxd54dmavaqdxjbib2d5sc9bc2mrbpmqspf5i6"; depends=[DT easypower EnvStats epiR ICC_Sample_Size kappaSize longpower plotly powerMediation powerSurvEpi presize pROC pwr pwr2 shiny shinycssloaders shinyFeedback shinyhelper tidyverse writexl]; };
   PSSIM = derive2 { name="PSSIM"; version="0.1.0"; sha256="144lh31b1c4ycq0wrgf9745q0c8b5sfnmrd0f7vwx95i86bzr3mj"; depends=[]; };
   PSSMCOOL = derive2 { name="PSSMCOOL"; version="0.2.4"; sha256="0iyhs2sas08kjl6hd0y4n4rz4lvvvlrz3w3izl3may6mscykrciy"; depends=[dtt gtools infotheo phonTools]; };
   PST = derive2 { name="PST"; version="0.94"; sha256="0f28zrnlficbi9iil6wbh51k9mghpkz63hw05lpmlpx1yl5nd0a6"; depends=[RColorBrewer TraMineR]; };
@@ -3601,7 +3610,7 @@ in with self; {
   PTAk = derive2 { name="PTAk"; version="1.4-0"; sha256="0hm1xij32wgirj7k7qv162zl5r7aj1iyyhpnlbm9wx1mbw72ccbc"; depends=[tensor]; };
   PTE = derive2 { name="PTE"; version="1.7"; sha256="1azkrij4kfmvp03lnzm88gwgvz8g54jq94j0qg8ynxvyjzrppc98"; depends=[doParallel foreach survival]; };
   PTSR = derive2 { name="PTSR"; version="0.1.2"; sha256="0zwqw8zdp0p05nm64yg658iqfbj26n3v2py8r5m6g1sjispm5whf"; depends=[actuar extraDistr numDeriv SuppDists]; };
-  PTXQC = derive2 { name="PTXQC"; version="1.0.12"; sha256="0k9qvaf2dxfy2lcqnw0zyi17l682rma4c4hhh56m4bycwl2prmv2"; depends=[data_table ggdendro ggplot2 gtable jsonlite kableExtra knitr ontologyIndex plyr R6 R6P RColorBrewer reshape2 rmarkdown seqinr UpSetR xml2 yaml]; };
+  PTXQC = derive2 { name="PTXQC"; version="1.0.13"; sha256="08sknbjlsjj77jv2kbprrgiagnrhjdiv4n33053c36a1lxba7vc3"; depends=[data_table ggdendro ggplot2 gtable htmlTable jsonlite knitr magrittr ontologyIndex plyr R6 R6P RColorBrewer reshape2 rmarkdown seqinr UpSetR xml2 yaml]; };
   PTwins = derive2 { name="PTwins"; version="0.1.1"; sha256="166mc7w52n9d3n72h5jvvhbki87prkils3yigdf57dn9pyixrd66"; depends=[]; };
   PUMP = derive2 { name="PUMP"; version="1.0.0"; sha256="03xy77hq9d375v2hpszbnh700lkb4yfd2xn20lwh0bawx94m7rsy"; depends=[dplyr future ggplot2 ggpubr here magrittr mvtnorm purrr randomizr readr rlang stringr tibble tidyr tidyselect]; };
   PUPAIM = derive2 { name="PUPAIM"; version="0.2.0"; sha256="1ky6f4yhm3hjrfxwk8vfalzzjgkq1922my26w457q8nfng7f2m53"; depends=[Metrics minpack_lm nls2]; };
@@ -3629,7 +3638,6 @@ in with self; {
   PamBinaries = derive2 { name="PamBinaries"; version="1.6.0"; sha256="1vq0s1l8xz7g927x19fw0nqcpk65mjq9s50506d7ib42qhk6xdvb"; depends=[dplyr ggplot2]; };
   PanCanVarSel = derive2 { name="PanCanVarSel"; version="0.0.3"; sha256="06xkzg2kvyr6ivm1z71x2pk20j37h36sx6kf4kmc8q50cq73k9jl"; depends=[Matrix msm mvtnorm smoothmest]; };
   PanJen = derive2 { name="PanJen"; version="1.6"; sha256="18cl9rls98v286kk6lyxxws3w59zpzgmqi5250gdgcf71xy2lhvm"; depends=[mgcv]; };
-  PandemicLP = derive2 { name="PandemicLP"; version="1.1.1"; sha256="0sfj22ssqz3zfwxvqfmx3mkvi07zyq3pgx0y8xz4qdhld8z7jfxs"; depends=[BH covid19br curl dplyr plotly Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders tidyr]; };
   PanelCount = derive2 { name="PanelCount"; version="1.0.9"; sha256="1b6c83qypjc3ylvhh24xm4pjk8w34s24v0i9ddlmg92f1518hlkj"; depends=[Rcpp RcppArmadillo statmod]; };
   PanelMatch = derive2 { name="PanelMatch"; version="2.0.0"; sha256="0974f0jfigybclvbkdp5ma57fjrx8qz7dca3c09klw3xkmlfsxhb"; depends=[CBPS data_table ggplot2 igraph MASS Matrix Rcpp RcppArmadillo RcppEigen]; };
   Paneldata = derive2 { name="Paneldata"; version="1.0"; sha256="00hk340x5d4mnpl3k0hy1nypgj55as2j7y2pgzfk3fpn3zls5zib"; depends=[]; };
@@ -3651,9 +3659,9 @@ in with self; {
   PeakError = derive2 { name="PeakError"; version="2021.7.1"; sha256="0rsh81p0w11zp8rgxx9cm8537gxhf9hx6xizpbflfx60xhr96is5"; depends=[]; };
   PeakSegDP = derive2 { name="PeakSegDP"; version="2017.08.15"; sha256="1ndf4d4ikcyqi0k51kil2jw777z4c1m4pda3dahrjmjyz0jhrhkw"; depends=[]; };
   PeakSegDisk = derive2 { name="PeakSegDisk"; version="2022.2.1"; sha256="1wvsg87frdyi7q58b438n331irlgm7wnfd3rf3ca5m636xz6cnr9"; depends=[data_table]; };
-  PeakSegJoint = derive2 { name="PeakSegJoint"; version="2018.10.3"; sha256="0f0dw6swhhf301j4ci3rs8cmzd39dcjlb0kqxpdh7f00gp3qn7da"; depends=[PeakError penaltyLearning]; };
+  PeakSegJoint = derive2 { name="PeakSegJoint"; version="2022.4.6"; sha256="0y4vlkr5npqk0nrcv9dqy1gdk2h9z7wajiiw9ijmv1fdg5csn6bh"; depends=[PeakError penaltyLearning]; };
   PeakSegOptimal = derive2 { name="PeakSegOptimal"; version="2018.05.25"; sha256="0j39jzy4r0h787vs3klgbpcmb096ds3hzhvv5w3xs53kl0qkypj4"; depends=[penaltyLearning]; };
-  PearsonDS = derive2 { name="PearsonDS"; version="1.2.1"; sha256="094q0vxqkm8r30rhgck3vh44qbaj00liddn23cnl7rglil5y6jrm"; depends=[]; };
+  PearsonDS = derive2 { name="PearsonDS"; version="1.2.2"; sha256="1j1xpay6iqwsb2ghm5k4ba930cliyama4cq7wnjjncr4p0chcfj4"; depends=[]; };
   PearsonICA = derive2 { name="PearsonICA"; version="1.2-5"; sha256="04xi911wzkgsh1ajqamgwgv7wnpgyc20brjcr4jh6gfkfhacjprv"; depends=[]; };
   PedCNV = derive2 { name="PedCNV"; version="0.1"; sha256="09qxcjzwdgzdkbj28rzmfv7k3q2qsiapnvx3m45a835r57h5gynp"; depends=[ggplot2 Rcpp RcppArmadillo]; };
   PeerPerformance = derive2 { name="PeerPerformance"; version="2.2.5"; sha256="0cdv7ndbjxzaayxkrxh99jsyivlipbnipv21d4rmf8j8ssfq74r5"; depends=[lmtest sandwich]; };
@@ -3723,7 +3731,7 @@ in with self; {
   PoissonBinomial = derive2 { name="PoissonBinomial"; version="1.2.4"; sha256="0nx1xqqwsxrfyzrxl3lqmd7d7ljgp6k3z3cw49xbc2z6gbizgm7g"; depends=[Rcpp]; };
   PoissonMultinomial = derive2 { name="PoissonMultinomial"; version="1.0"; sha256="0h8486f5a74yik340ghg6mwb80sj38r02lzjsm0wvv07kb7zq9zp"; depends=[mvtnorm Rcpp RcppArmadillo]; };
   PoissonPCA = derive2 { name="PoissonPCA"; version="1.0.3"; sha256="0hdfnq427cywkpb34nj8kdjrc3yligzqag0729qnhh90si0ad036"; depends=[]; };
-  PolicyPortfolios = derive2 { name="PolicyPortfolios"; version="0.2.2"; sha256="1mfhyy4qyadk389jj6q8livfj45qdwb57wx74cg85jiqd2g19d90"; depends=[dplyr ggplot2 ineq mgcv reshape2 vegan]; };
+  PolicyPortfolios = derive2 { name="PolicyPortfolios"; version="0.3"; sha256="1syycldfzwymymhai0ifli93iv3p8p6xbyk25mvln6zgb43iind1"; depends=[dplyr ggplot2 ineq mgcv reshape2 vegan]; };
   PolyHaplotyper = derive2 { name="PolyHaplotyper"; version="1.0.1"; sha256="1sc1n42h78nyv004ddykvh1ljjczyiv5rl9sgxhi207lql1zd3wa"; depends=[XML]; };
   PolyPatEx = derive2 { name="PolyPatEx"; version="0.9.2"; sha256="1z1hwvsw7b6cz5xfy35a5ldrzb3fhp3swiyz56v1zqblpsaz8n9g"; depends=[gtools]; };
   PolyTrend = derive2 { name="PolyTrend"; version="1.2"; sha256="17n6phkzgaqrlzs8x1l5smnij1gxfklr0zj9pqfy5n8xqnpwssm5"; depends=[]; };
@@ -3751,7 +3759,7 @@ in with self; {
   PowerNormal = derive2 { name="PowerNormal"; version="1.2.0"; sha256="1kryqcjvgwk0l4z3gqxdiz47mha3jw5583jlb9z7ml6v7cam06sm"; depends=[]; };
   PowerTOST = derive2 { name="PowerTOST"; version="1.5-4"; sha256="0k7vbgw0jswynwrammzzlc5radszjyqw9y5h3kh22bzpq4njvl1z"; depends=[cubature mvtnorm TeachingDemos]; };
   PowerUpR = derive2 { name="PowerUpR"; version="1.1.0"; sha256="0bnkngdqhzhsbkzp4cxhgm8rzn83q4vm3fj2gkp7z4qznp37lh3j"; depends=[]; };
-  PracTools = derive2 { name="PracTools"; version="1.2.5"; sha256="1ysp8cwfmr9hihvb59y7gc74gw2a3bgbh57h99xp246i7d12bbhn"; depends=[]; };
+  PracTools = derive2 { name="PracTools"; version="1.2.6"; sha256="0h9drhww2zc5dsp3pfmkjqgz943fx3mvfcl9vqrj2ndj20ni006k"; depends=[]; };
   PracticalEquiDesign = derive2 { name="PracticalEquiDesign"; version="0.0.3"; sha256="0jms5j9vg5g1llwkzjglj6k26wgj16jxdigllra4gjzk0azbgn9q"; depends=[dplyr ggplot2 numDeriv Temporal tidyr]; };
   PreKnitPostHTMLRender = derive2 { name="PreKnitPostHTMLRender"; version="0.1.0"; sha256="1749cd734f4bf0n4068s2m617k6as8h9bwp44mm3la2xy3vjf5g1"; depends=[knitr rmarkdown XML]; };
   PreProcess = derive2 { name="PreProcess"; version="3.1.7"; sha256="1fxzkmrj76mc94xdj7a0nq450021i1jxkigmh5jhrmamkp5581jf"; depends=[oompaBase]; };
@@ -3765,7 +3773,7 @@ in with self; {
   PresenceAbsence = derive2 { name="PresenceAbsence"; version="1.1.10"; sha256="0z4wc0ahqb5n6ikharpamcaim3g3mww0bkyblz61xaq2yzyny9jr"; depends=[]; };
   PressPurt = derive2 { name="PressPurt"; version="1.0.2"; sha256="05kca0rlhlvhgnw3r3p4sh42zwvhrhcjdwz65ykp14jxybfhc8in"; depends=[data_table ggplot2 gridExtra reticulate]; };
   PrevMap = derive2 { name="PrevMap"; version="1.5.4"; sha256="12cw4dmbsnx9c4y5l5k0paqn1wwbxy9ciw46r254n5rd275fhksh"; depends=[lme4 Matrix maxLik numDeriv pdist raster splancs truncnorm]; };
-  PriceIndices = derive2 { name="PriceIndices"; version="0.0.6"; sha256="18ci20z07xx7q1mr007hwn2sx65fmvli9w23brgvbpa1wyhh3lhg"; depends=[caret dplyr ggplot2 lubridate reclin reshape strex stringr xgboost]; };
+  PriceIndices = derive2 { name="PriceIndices"; version="0.0.7"; sha256="0bmzlvlvri0ryhzq40hqbv7cg883jdp0hx0xrfr94hlp1rji2ihj"; depends=[caret dplyr ggplot2 lubridate reclin reshape strex stringr xgboost]; };
   PriorCD = derive2 { name="PriorCD"; version="0.1.0"; sha256="1mb50w2i8sfxjzqd5xnfysn3jnzkkyv6l8algxnp0xpyhcq41pfs"; depends=[dplyr igraph ROCR visNetwork]; };
   PriorGen = derive2 { name="PriorGen"; version="1.1.2"; sha256="0qvdqqdy7wdwwcq95mkgfyf7xf6xlpwdfs3gq299yyv2ba57flnm"; depends=[rootSolve]; };
   PrivateLR = derive2 { name="PrivateLR"; version="1.2-22"; sha256="0d142fa3wk7yadvs8jszajs6hq9m03p0j6h5r4pbw7j0d1l72hgc"; depends=[]; };
@@ -3786,7 +3794,7 @@ in with self; {
   ProcData = derive2 { name="ProcData"; version="0.3.2"; sha256="1a0rbj57rbxf5axfyd1j9j1mh7ara3rlq31lysaprwaymig94mml"; depends=[keras Rcpp]; };
   ProcMod = derive2 { name="ProcMod"; version="1.0.8"; sha256="0rxh135gs9gq9sag1cmvywdgnax7n989gmffbxil71fy49kxpwdg"; depends=[foreach MASS Matrix permute Rdpack]; };
   ProfessR = derive2 { name="ProfessR"; version="2.4-1"; sha256="1wsbx0dsygc1ipzhgs1pd0lhdb0qvp4ydqzwarn6zv27rzf4p3bd"; depends=[RPMG]; };
-  ProfileLikelihood = derive2 { name="ProfileLikelihood"; version="1.1"; sha256="16cdp1nimhg1sd2x0qbffm7clgk54p0838y688z8lnsrjaggmb0x"; depends=[MASS nlme]; };
+  ProfileLikelihood = derive2 { name="ProfileLikelihood"; version="1.2"; sha256="18m4gk7rhfi0wd9hwmqhfa20gr260plvj41iimlqb5y9m2ld1b08"; depends=[MASS nlme]; };
   ProfoundData = derive2 { name="ProfoundData"; version="0.2.1"; sha256="1zqg821pv3i5nf76s7yppnmy13y14pj0l7rjhk50wlxrxdb53ibz"; depends=[DBI RNetCDF RSQLite settings sqldf zoo]; };
   ProjectManagement = derive2 { name="ProjectManagement"; version="1.4.3"; sha256="017f2rp3jnss65jn9pi0fg69frp23h2z127zrxa5wap3wdw5b49i"; depends=[GameTheory igraph kappalab lpSolveAPI plotly triangle]; };
   ProjectTemplate = derive2 { name="ProjectTemplate"; version="0.10.2"; sha256="0r1af5h24nbgr39njchnqd54cw7cyzsw8k1qind8h5af491wmq0h"; depends=[digest tibble]; };
@@ -3815,7 +3823,6 @@ in with self; {
   Q2q = derive2 { name="Q2q"; version="0.1.0"; sha256="1n97axhcq64fg92cbndqw70c8awknjap91bh2h6i5cvd0c80pb85"; depends=[]; };
   Q7 = derive2 { name="Q7"; version="0.1.0"; sha256="09jhqraajvlm7iiri4f7xlllkcx8q5h3sg472ishj47wg5qf2rym"; depends=[magrittr]; };
   QAIG = derive2 { name="QAIG"; version="0.1.7"; sha256="04ygizvplvrzhf1p0vwj75x7k8sl0ym5zbrsvn63y983awih2p6i"; depends=[Formula stringr]; };
-  QBAsyDist = derive2 { name="QBAsyDist"; version="0.1.2"; sha256="1yql29npaq9yz02bv3hqf5m2mhscjms7qqf4vlaxm8s665rxcxad"; depends=[ald Deriv GoFKernel locpol nloptr quantreg scdensity zipfR]; };
   QBMS = derive2 { name="QBMS"; version="0.7.0"; sha256="14mq0l2ih6vchn7q2ssscxyrhrvfic3hnb4qyhd6sfy9a8cs8klm"; depends=[httr jsonlite]; };
   QCA = derive2 { name="QCA"; version="3.15"; sha256="1rijfdslq44w8abamplhj5f0l9jq43jcklcza64rfyxqfavc8mia"; depends=[admisc shiny venn]; };
   QCAcluster = derive2 { name="QCAcluster"; version="0.1.0"; sha256="094p11c9arry793zibr8x3xhpbrym9bfky95nds53g3yliprdd63"; depends=[data_table magrittr plyr purrr QCA rlist stringi testit UpSetR]; };
@@ -3852,9 +3859,10 @@ in with self; {
   QTLRel = derive2 { name="QTLRel"; version="1.9"; sha256="10lydj6zgijk2dxkncp35vrvic1v2s3v1zv44w7xi1i3wb3ifksx"; depends=[gdata lattice]; };
   QTOCen = derive2 { name="QTOCen"; version="0.1.1"; sha256="0wlbxk1rd56k02jf3pfzbx6xx5mmf6sb7gvds0067cvb7m42ghcr"; depends=[MatrixModels quantreg Rdpack rgenoud survival]; };
   QUALYPSO = derive2 { name="QUALYPSO"; version="1.2"; sha256="0hp99hhlv7rijn34ncshpvbnmhbx3f5km7bzr0z7yr7l3j1vx3sc"; depends=[doParallel expm foreach MASS Rfast]; };
-  QWDAP = derive2 { name="QWDAP"; version="1.1.11"; sha256="1kin58d2kaxy1zyzln95xxj8lrjir3zq9gfc2c026sq2pcaqlxkv"; depends=[CORElearn MTS pls progress StepReg]; };
+  QWDAP = derive2 { name="QWDAP"; version="1.1.17"; sha256="1yq2xm5a1im8g65j89d6xqfbknlrpfh9lpm1ggmn5fw8wq4519ni"; depends=[CORElearn pls Rcpp RcppEigen]; };
   QZ = derive2 { name="QZ"; version="0.2-2"; sha256="13s9yp9dz95iar2s8mhyi1sfba4wsdddpjard01665s34cvf1xw9"; depends=[Matrix]; };
   Qapprox = derive2 { name="Qapprox"; version="0.2.0"; sha256="0mv3xfy847lqh95mpccjiw5jjbml7dwrna7i16532sdqcxaq4m02"; depends=[]; };
+  Qest = derive2 { name="Qest"; version="1.0.0"; sha256="02q0j4vynk3hhfg1xfgdvp3piicc4cc1s1i1q710d06r8mmfz1cj"; depends=[matrixStats pch survival]; };
   QoLMiss = derive2 { name="QoLMiss"; version="0.1.0"; sha256="00g1ykwlmc4w0bmzj0jg9ckr2bvkl8qcxd67wdc12alccqqd584v"; depends=[dplyr missMethods survival]; };
   Qtools = derive2 { name="Qtools"; version="1.5.5"; sha256="0kmd5cd299gjw5qbk8yhlzxcwa3ykrr36zcpk773mykyz57q46hb"; depends=[boot glmx gtools MASS Matrix np numDeriv quantreg Rcpp RcppArmadillo]; };
   QuACN = derive2 { name="QuACN"; version="1.8.0"; sha256="1597blp8gqc5djvbgpfzi8wamvy0x50wh5amxj9cy99qa0jlglxi"; depends=[combinat graph igraph RBGL]; };
@@ -3913,9 +3921,9 @@ in with self; {
   RADstackshelpR = derive2 { name="RADstackshelpR"; version="0.1.0"; sha256="0j2vazbji8xqb8xkd9jrpi10iqj30rvkdjfs4snavl9nsbra99yf"; depends=[ggplot2 ggridges gridExtra vcfR]; };
   RAEN = derive2 { name="RAEN"; version="0.2"; sha256="098d990qa987hx2llqwdw2bmi5nmrlda23j1rgmw5nirllk28d30"; depends=[boot doParallel fastcmprsk foreach glmnet lars]; };
   RAINBOWR = derive2 { name="RAINBOWR"; version="0.1.29"; sha256="0g82wi0bffkkb86axsa814dbqhscs9mlgk43j3j375v9kbd4136c"; depends=[ape cluster expm gaston here htmlwidgets MASS Matrix MM4LMM optimx pbmcapply pegas Rcpp RcppEigen Rfast rrBLUP stringr]; };
-  RALSA = derive2 { name="RALSA"; version="1.1.0"; sha256="01c4l18mkk59px11fcdc5hqmbm7ycsq519y89zvlbw22qnawi6l6"; depends=[data_table DT foreign Hmisc openxlsx readr shiny shinydashboard shinyFiles shinyjs stringi stringr]; };
+  RALSA = derive2 { name="RALSA"; version="1.1.5"; sha256="179klpj9birrzks42xixq0jk1mvv6yjshwhk6q7qsixhldvaaiwp"; depends=[data_table DT foreign Hmisc openxlsx readr shiny shinydashboard shinyFiles shinyjs stringi stringr]; };
   RAM = derive2 { name="RAM"; version="1.2.1.7"; sha256="0aalswivpjs1glwf4yh3b79lch3n32fyj5xda55h3v7gzs7p0d7f"; depends=[ade4 ape data_table FD ggmap ggplot2 gplots gridExtra labdsv lattice MASS permute phangorn phytools plyr RColorBrewer reshape reshape2 RgoogleMaps scales vegan VennDiagram]; };
-  RAMClustR = derive2 { name="RAMClustR"; version="1.2.2"; sha256="0v75dxwn1bybjw3zybvz60j01nffl0nzybw5k0a7kqhbcb7cdpqw"; depends=[BiocManager dynamicTreeCut e1071 fastcluster ff ggplot2 gplots httr InterpretMSSpectrum jsonlite MSnbase pcaMethods preprocessCore RCurl stringi stringr webchem xml2]; };
+  RAMClustR = derive2 { name="RAMClustR"; version="1.2.3"; sha256="09s8n9jih38psrdajxllni75lr56lkzyvgkadinys2dcq6f9rh4x"; depends=[BiocManager dynamicTreeCut e1071 fastcluster ff ggplot2 gplots httr InterpretMSSpectrum jsonlite pcaMethods preprocessCore RCurl readxl stringi stringr webchem xml2]; };
   RAMP = derive2 { name="RAMP"; version="2.0.2"; sha256="0836fiycrsxiwdw7srz1rvsf639iqh2rk89gavx4kvn0i0sc8d2x"; depends=[]; };
   RAMpath = derive2 { name="RAMpath"; version="0.4"; sha256="0blixfmgiq22hd356hrp4vbhfkkgh0a58143nhirjx3sav9pxc1v"; depends=[ellipse lavaan MASS]; };
   RANKS = derive2 { name="RANKS"; version="1.0"; sha256="1lvaya9jlqrr9klqznw4fz5h5x0sw191ci74hpymb4gzhhxcbp27"; depends=[graph limma NetPreProc PerfMeas RBGL]; };
@@ -3924,7 +3932,6 @@ in with self; {
   RAPIDR = derive2 { name="RAPIDR"; version="0.1.1"; sha256="14cnw4jjs5anb55zlg1yj6qc9yr51rsamigq2q7h8ypj2ggnna1d"; depends=[Biostrings data_table GenomicAlignments GenomicRanges PropCIs Rsamtools]; };
   RAPTOR = derive2 { name="RAPTOR"; version="1.0.1"; sha256="1bj3xsl83mb8zwap8icywrfdld382fram79b0n14jbk1l87rj9r4"; depends=[mgcv]; };
   RAQSAPI = derive2 { name="RAQSAPI"; version="2.0.3"; sha256="0y9x5s1r5qfxx93wvcpa62s486d6yrrn56ks5wfgpx18jlm39q8d"; depends=[dplyr glue httr jsonlite lifecycle lubridate magrittr purrr rlang stringr tibble]; };
-  RAT = derive2 { name="RAT"; version="0.1.1"; sha256="02cd7lp9dzabmb1ll59xflyhlhhfnzhbdwcn68vrdjmxyppw6crl"; depends=[ggplot2 mapproj wosr]; };
   RATest = derive2 { name="RATest"; version="0.1.9"; sha256="02673wbss90c192rxbzxfsbnirl63k7d8fq989chmjc5z2xjzajj"; depends=[ggplot2 gridExtra quantreg]; };
   RAdwords = derive2 { name="RAdwords"; version="0.1.18"; sha256="1c3m2j2cf1s51p783rdng5ns913bv7rbjc1vpmrmsxg2kf5f6qyq"; depends=[RCurl rjson]; };
   RApiDatetime = derive2 { name="RApiDatetime"; version="0.0.6"; sha256="15j6vb6rm4ykwjachqyyfvjshiilyjqnpj8x6qc93savk04rf279"; depends=[]; };
@@ -3935,7 +3942,7 @@ in with self; {
   RBMRB = derive2 { name="RBMRB"; version="2.1.7"; sha256="09x7zaigflc0d3pbdrvfv1kdklrlzgd4v2ma3dcr96l36n1iqqns"; depends=[data_table ggplot2 httr plotly rjson]; };
   RBNZ = derive2 { name="RBNZ"; version="1.1.0"; sha256="11fdnc2pmw5nq3lswid078l307ln6853a3b9d383msvrkz6yms26"; depends=[httr lubridate readxl rvest xml2]; };
   RBPcurve = derive2 { name="RBPcurve"; version="1.2"; sha256="0zkfvnhm780vid4qqdrx9mnc6jxxrmrnq47pqvk35rm3m4l96782"; depends=[BBmisc checkmate mlr shape TeachingDemos]; };
-  RBaseX = derive2 { name="RBaseX"; version="1.0.0"; sha256="0nj9sc14bc0m0xkdqnc3h7frcn4y0wbdpr6wnd8kvnipcrr3jcrl"; depends=[data_table dplyr httr magrittr openssl pingr R6 RCurl rex stringr tibble]; };
+  RBaseX = derive2 { name="RBaseX"; version="1.1.1"; sha256="03p0c89pcx3inxa4qlyhvf3hm48rfp5j46b0qkszm96yf3g2b01m"; depends=[data_table dplyr httr magrittr openssl pingr R6 RCurl rex stringr tibble]; };
   RBesT = derive2 { name="RBesT"; version="1.6-3"; sha256="0nbqkxsi6di4sd26l9c212sjs2lsvnabwbnf0cx00hmxrxzy0lhl"; depends=[assertthat bayesplot BH checkmate dplyr Formula ggplot2 mvtnorm Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
   RBitmoji = derive2 { name="RBitmoji"; version="0.0.2"; sha256="1v9qj3vmqsvnccsy735nbflmd81183h2flm0f1ckd4kl08r2fr3f"; depends=[getPass httr jsonlite png RCurl]; };
   RBtest = derive2 { name="RBtest"; version="1.1"; sha256="09da721zfj6cw4i9gifn5f0sv3nj0qfjb96c5w9g9gzx55ihssnk"; depends=[mice nnet psych]; };
@@ -3944,11 +3951,11 @@ in with self; {
   RCALI = derive2 { name="RCALI"; version="0.3.1"; sha256="0hc7h55qi8bpmp9rfh1wgxqs28kbs4yqxch2jlgl42vk5383askq"; depends=[splancs]; };
   RCBR = derive2 { name="RCBR"; version="0.5.9"; sha256="1nxaf485jfg1kr80bxwczf27xz5ab7yz61c5l3bg9192jdf432ql"; depends=[Formula Matrix mvtnorm orthopolynom REBayes Rmosek]; };
   RCCPCA = derive2 { name="RCCPCA"; version="0.1.0"; sha256="0nix6d8cxi64qfnsk00rpzq9kf07a5skc8zkvywl2y2aw6wrlvnd"; depends=[]; };
-  RCDT = derive2 { name="RCDT"; version="1.0.0"; sha256="1l72dbgxkkhv4v8mjrz1zsq3jhvan4krgkjbjyd9hd5faj7hhrcy"; depends=[gplots randomcoloR Rcpp RcppArmadillo]; };
+  RCDT = derive2 { name="RCDT"; version="1.1.0"; sha256="1mi8asqvna3aw6ndpg73kb70h5pfn9yrj9al1ydz0p32x8qm3rfh"; depends=[gplots randomcoloR Rcpp RcppArmadillo rgl Rvcg]; };
   RCEIM = derive2 { name="RCEIM"; version="0.3"; sha256="1kil5r88b6lf8vxmswz0wn0hhjxjm8jmlcl5kxjwl6fwjyy2z120"; depends=[]; };
   RCGLS = derive2 { name="RCGLS"; version="1.0.3"; sha256="12mmfs91fmhdxdxr7q16hnjlg7bz2bbkf8chld4cyf8clnflzvsj"; depends=[ncdf4 raster RCurl sp]; };
   RCLabels = derive2 { name="RCLabels"; version="0.1.1"; sha256="1nvjq40labgrrn3lbyvnk9zir0ghgxkqrniddp4w7wffsfz4dj00"; depends=[assertthat Hmisc magrittr purrr]; };
-  RCMinification = derive2 { name="RCMinification"; version="1.0"; sha256="1n8rb5lz0bansggma8gs45xbmmzh98xcsg1vcwwviv2zgq8ww7jf"; depends=[]; };
+  RCMinification = derive2 { name="RCMinification"; version="1.1"; sha256="1lk5n24shq8avg7a088x0l70g1xa9wf3kpyh7qq65np6rh1gnsga"; depends=[]; };
   RCPA3 = derive2 { name="RCPA3"; version="1.1.1"; sha256="0zq700g7gwnf3rw0zd4m4h0rhp10d4ar5fdxwzbkn708c2m4znxg"; depends=[beepr car descr haven Hmisc knitr lmtest survey weights]; };
   RCPmod = derive2 { name="RCPmod"; version="2.190"; sha256="1r24g8fcizyqzgp0da90sxpwalgcsgz2b168j2smpylxraiqb037"; depends=[fishMod glmnet gtools MASS]; };
   RCRnorm = derive2 { name="RCRnorm"; version="0.0.2"; sha256="1mz1jb7mc9c47hbk9flnddny4zir6r2k5qis30iynwqny521l6ln"; depends=[truncnorm]; };
@@ -3962,8 +3969,8 @@ in with self; {
   RClickhouse = derive2 { name="RClickhouse"; version="0.6.3"; sha256="1xvx098amys1816lkb1gdz5wz5lp58dw9bp9f4dlgbzjdl027ns5"; depends=[bit64 DBI dbplyr dplyr Rcpp]; };
   RClimacell = derive2 { name="RClimacell"; version="0.1.4"; sha256="03w2psiix74d2cbaz06bk77pclc6lfjhfdi057rdmw4nv3xv1fqi"; depends=[assertthat dplyr httr lubridate magrittr rlang stringr tibble tidyr tidyselect]; };
   RColetum = derive2 { name="RColetum"; version="0.2.1"; sha256="1hgk9p234m3w49sw2j2rg8c14z3gz1mabvb69b1bxrg7f1mz9slg"; depends=[dplyr httr jsonlite]; };
-  RColorBrewer = derive2 { name="RColorBrewer"; version="1.1-2"; sha256="1pfcl8z1pnsssfaaz9dvdckyfnnc6rcq56dhislbf571hhg7isgk"; depends=[]; };
-  RConics = derive2 { name="RConics"; version="1.0"; sha256="1lwr7hi1102gm8fi9k5ra24s0rjmnkccihhqn3byckqx6y8kq7ds"; depends=[]; };
+  RColorBrewer = derive2 { name="RColorBrewer"; version="1.1-3"; sha256="1h0s0f4vvlk40cagp3qwhd0layzkjcnqkiwjyhwqns257i1gahjg"; depends=[]; };
+  RConics = derive2 { name="RConics"; version="1.1.1"; sha256="0r5sn5kx6r3pjnvrgz7yxpyznb1js2i58vnbsqyzpl7jhcdhpz5x"; depends=[]; };
   RCreliability = derive2 { name="RCreliability"; version="0.1.0"; sha256="083n6ix9yjnv4aafp11qac891gdhk62mhxmwkx9z3i0sxddwdb6r"; depends=[mgcv sandwich]; };
   RCriteo = derive2 { name="RCriteo"; version="1.0.2"; sha256="1vyhnblw9zr5h6c25lf76p9vn95k8vr0hpq1sjkccdwl9yvsyhfy"; depends=[httr plyr RCurl XML]; };
   RCurl = derive2 { name="RCurl"; version="1.98-1.6"; sha256="18nif4phr5vfhri07mnchiym0qfm31ak9nxvb2v9ac84mij6idbc"; depends=[bitops]; };
@@ -3971,7 +3978,7 @@ in with self; {
   RCzechia = derive2 { name="RCzechia"; version="1.9.1"; sha256="1xwzbbap6h02z7jpzrgh0lmrzxssdjh0gr8fk0ivnl8zgfqrfk86"; depends=[curl httr jsonlite magrittr sf]; };
   RDIDQ = derive2 { name="RDIDQ"; version="1.0"; sha256="09gincmxv20srh4h82ld1ifwncaibic9b30i56zhy0w35353pxm2"; depends=[]; };
   RDML = derive2 { name="RDML"; version="1.0"; sha256="13ly1p42njbcygwvkyii8sjqbsywjy5w5g1kd7m8kswi5dsk3qqv"; depends=[checkmate data_table lubridate pipeR R6 readxl rlist stringr xml2]; };
-  RDP = derive2 { name="RDP"; version="0.2.0"; sha256="045jkjzhwsbml95l3spwd2f187pl1rgkaig74v3z97f75mg6ga3d"; depends=[Rcpp]; };
+  RDP = derive2 { name="RDP"; version="0.2.3"; sha256="0fmssv33lxfxk61609dd7865n9w7i6wlap9g5aaa2b0319sbclpd"; depends=[Rcpp]; };
   RDS = derive2 { name="RDS"; version="0.9-3"; sha256="0kcq5ym6l80shzxf9zv2rwb84r0q9qr2cwimcg76r97sfx7c2kp2"; depends=[anytime ergm ggplot2 gridExtra Hmisc igraph isotone network reshape2 scales statnet_common]; };
   RDSTK = derive2 { name="RDSTK"; version="1.1"; sha256="07vfhsyah8vpvgfxfnmp5py1pxf4vvfzy8jk7zp1x2gl6dz2g7hq"; depends=[plyr RCurl rjson]; };
   RDStreeboot = derive2 { name="RDStreeboot"; version="1.0"; sha256="10ry8rna450j389cplvyvgwljxa8lli7licwdin64b1kyzy2cdn7"; depends=[]; };
@@ -3981,7 +3988,7 @@ in with self; {
   RDocumentation = derive2 { name="RDocumentation"; version="0.8.2"; sha256="0qdn3c5xbjyrhk56wfch50xpyyfd4f79hs0v00cqk9iwsnjlwmb5"; depends=[httr proto rjson]; };
   RDota2 = derive2 { name="RDota2"; version="0.1.6"; sha256="0fjsgg4dmzw2xwrf8jxq0f2d7f78bf67bl3ms5qcjk9kskfnymag"; depends=[httr jsonlite]; };
   REAT = derive2 { name="REAT"; version="3.0.3"; sha256="1bnmk74xdxckni6alp5kslsb3w7jlnfwc27mi5y3lry7zrvxi6lk"; depends=[]; };
-  REBayes = derive2 { name="REBayes"; version="2.50"; sha256="0npwm81fdzfj190s8shaxb9dwsg796jh5p59jr84876s7z4d8w0k"; depends=[lattice Matrix reliaR]; };
+  REBayes = derive2 { name="REBayes"; version="2.51"; sha256="0vsi7bwzg7aarjmywi1xhk7ckiyvp2kyyh97jh9i1a8045sg3p18"; depends=[lattice Matrix]; };
   RECA = derive2 { name="RECA"; version="1.7"; sha256="1xikj20flqajpkw4wyynmqd1pafbylzwfrmc8bz9pqgggjjhrqql"; depends=[]; };
   REDCapExporter = derive2 { name="REDCapExporter"; version="0.2.2"; sha256="0w7c1y58vnkbd11ndkcn5s5c54pmvyqhflwgg2q6dc3n671yp9wx"; depends=[curl data_table keyring lubridate]; };
   REDCapR = derive2 { name="REDCapR"; version="1.0.0"; sha256="1x1nrwrlv2xh0p13asj1hxm8jpc623mjf2m3lybj6466jm2qh33m"; depends=[checkmate dplyr httr magrittr readr rlang tibble tidyr]; };
@@ -3995,11 +4002,9 @@ in with self; {
   REREFACT = derive2 { name="REREFACT"; version="1.0"; sha256="0nggva4qfqlcs58df3sgiigw0z75l5kg8c1yh0k5qsvjnhiq19vn"; depends=[combinat gdata Matrix psych]; };
   RESS = derive2 { name="RESS"; version="1.3"; sha256="1vddmifp47ia0sk35rnjpvw6gr9ygygafqczq268h17i1qs6ar22"; depends=[]; };
   REST = derive2 { name="REST"; version="1.0.1"; sha256="16v89z7p9qkg7bsypf9vkrnbmb2n7gw3fqnfzbyxwj496wzxdv1x"; depends=[Rcmdr]; };
-  REdaS = derive2 { name="REdaS"; version="0.9.3"; sha256="09mmcvzgsxvrcq7sq3pw81pxgb1493p8lx8p5hhz8i42vshza6pn"; depends=[]; };
   REddyProc = derive2 { name="REddyProc"; version="1.3.2"; sha256="1irclh991wp1ns2wb9dd88kqd5vg1kd8vk83a7w0kjpf20yqnkvp"; depends=[bigleaf dplyr magrittr purrr Rcpp readr rlang solartime tibble]; };
   REddyProcNCDF = derive2 { name="REddyProcNCDF"; version="1.1.4"; sha256="099f4mzqj7pjlrs8rdjg44mjm0058x3pj2imrfvk892hmlk4r53p"; depends=[REddyProc]; };
   REndo = derive2 { name="REndo"; version="2.4.3"; sha256="1h7ycxwklb9dbb8q0g9cagjl93jhbjc86l25s1imdp1rqfsv8i6c"; depends=[AER corpcor data_table Formula lme4 lmtest Matrix mvtnorm optimx Rcpp RcppEigen]; };
-  RFCCA = derive2 { name="RFCCA"; version="1.0.7"; sha256="0v0himz0zz6f52vvc5h33qiij0101zgihzwak8cw5193xzsfmr4g"; depends=[CCA PMA]; };
   RFGLS = derive2 { name="RFGLS"; version="1.1"; sha256="13ggxj74h5b2hfhjyc50ndxznkvlg18j80m78hkzwh25d3948fsk"; depends=[bdsmatrix Matrix]; };
   RFLPtools = derive2 { name="RFLPtools"; version="2.0"; sha256="07hw0hyyxqy31qakkb410gb3i0g5jvpmigv5cqhxqss2cwzpch0d"; depends=[RColorBrewer]; };
   RFOC = derive2 { name="RFOC"; version="3.4-6"; sha256="0cs5wmpvrlag9aisbfiwkvwcb3skv5z4sawl30krmsq49mzj7yhd"; depends=[GEOmap MASS RPMG RSEIS splancs]; };
@@ -4010,6 +4015,7 @@ in with self; {
   RFpredInterval = derive2 { name="RFpredInterval"; version="1.0.5"; sha256="1ri62dfgwsbgrvjx7qn4mbv1p0mk2ynkrnw9s1klv31p2431rli5"; depends=[data_table data_tree DiagrammeR hdrcde ranger]; };
   RFreak = derive2 { name="RFreak"; version="0.3-0"; sha256="1dmllxb6yjkfkn34f07j2g7w5m63b5d10lh9xsmxyfk23b8l3x0x"; depends=[rJava]; };
   RGA = derive2 { name="RGA"; version="0.4.2"; sha256="0pjizgvrh0gbjlyxlb3v93nhigg8rpq3mziv1qlp6r0s5y7cmpi9"; depends=[httr jsonlite lubridate plyr]; };
+  RGAN = derive2 { name="RGAN"; version="0.1.1"; sha256="0820fvmiw853hfls7mydca9lhwxrrkj49vshp151by9mavwkx413"; depends=[cli torch viridis]; };
   RGBM = derive2 { name="RGBM"; version="1.0-8"; sha256="0xd64g07y808nzs4zvbx6bxdpbj2ndqg6yzc3p0l43pxm4hyxva0"; depends=[doParallel foreach plyr]; };
   RGCCA = derive2 { name="RGCCA"; version="2.1.2"; sha256="0zcxakqnmih0243y5b6r9nmcfanzxd6q344pd5bca5pnm3y43wr0"; depends=[Deriv MASS]; };
   RGE = derive2 { name="RGE"; version="1.0"; sha256="1ild1if10xicfapfcmydz1cgvn5fyydrik8qclb90i95bl9bs4ia"; depends=[coda Matrix MatrixModels]; };
@@ -4048,10 +4054,10 @@ in with self; {
   RImagePalette = derive2 { name="RImagePalette"; version="0.1.1"; sha256="054w8xzsn330qg7piq6ajhji9na2swkkdis2567cy3q099npfl5v"; depends=[ggplot2]; };
   RImpact = derive2 { name="RImpact"; version="1.0"; sha256="010bdq6r2fv4rs78kl1ixnw1di39v90ckh8bblzi0wv4adlbaza4"; depends=[]; };
   RInSp = derive2 { name="RInSp"; version="1.2.4"; sha256="1rfikmrz1y7sx9qwsqh5ifqryf6218n9dbhfmk2w2vl2pdgw4xyr"; depends=[]; };
-  RInside = derive2 { name="RInside"; version="0.2.16"; sha256="03iabanmj5xkgq7r1n1rkmzjf2zz484637nmd1qg61ga53hsvr3s"; depends=[Rcpp]; };
+  RInside = derive2 { name="RInside"; version="0.2.17"; sha256="0j23h8qxqn95d0hqx9wcb52hc8w9qacjnk96lxlsdjrlxr28rqhb"; depends=[Rcpp]; };
   RItools = derive2 { name="RItools"; version="0.1-18"; sha256="0a591xm1nxrlhx3r6yss0ii0rv5gd6nfv4yzbmfzxjjaw3c8aiki"; depends=[abind SparseM survival svd xtable]; };
-  RJDBC = derive2 { name="RJDBC"; version="0.2-8"; sha256="1qfq1vjlxhg3hmb1169zkss7kng74jhjninqkfr3cca8x1fq9593"; depends=[DBI rJava]; };
-  RJDemetra = derive2 { name="RJDemetra"; version="0.1.9"; sha256="0av3yqibyipxvch5p2zv9r82pvpvl406nxd5pkm4pnbjndw09j3s"; depends=[rJava]; };
+  RJDBC = derive2 { name="RJDBC"; version="0.2-10"; sha256="06b2gw76jwmm3lw3knmn6slc6824d4gzry94n96d97ii4fm4gwrp"; depends=[DBI rJava]; };
+  RJDemetra = derive2 { name="RJDemetra"; version="0.2.0"; sha256="1l97zicd0n3kvyjcrfq09wc8wawnfrs59n5nrx6s2dzh3cvyxvxr"; depends=[rJava]; };
   RJSDMX = derive2 { name="RJSDMX"; version="2.3-3"; sha256="02lbg82g4abng5vcn2g8ghvmg69q35my8smnbvd09yvha8hb49ps"; depends=[rJava zoo]; };
   RJSONIO = derive2 { name="RJSONIO"; version="1.3-1.6"; sha256="17x0ayk7daprbc8w2hvb2jl9mfnw4dic9yc3sr5adcjqfzmcklc2"; depends=[]; };
   RJSplot = derive2 { name="RJSplot"; version="2.7"; sha256="02q5isc137nx7qil2p3903xfsjwk54507rs72dfaiy6a8scys5j9"; depends=[]; };
@@ -4066,7 +4072,7 @@ in with self; {
   RKUM = derive2 { name="RKUM"; version="0.1.1"; sha256="1w0v6l61dm7xixnyywsc7xziixz7k9r1ja26zcy77nry5kn6v60q"; depends=[]; };
   RKelly = derive2 { name="RKelly"; version="1.0"; sha256="0mkpc95j67rg2gcj2fc4w8kv4v31cpiyvh660y8kc2fjr5q4aj3l"; depends=[]; };
   RKorAPClient = derive2 { name="RKorAPClient"; version="0.7.2"; sha256="0rgk3bpxpdxqjgkbp75cfyykkzgz9fl8mfz504ng0j3mpj0mzaig"; depends=[broom curl dplyr ggplot2 highcharter httr jsonlite keyring lubridate magrittr PTXQC purrr R_cache stringr tibble tidyr urltools]; };
-  RLRsim = derive2 { name="RLRsim"; version="3.1-6"; sha256="1wkkibr250frsbfq70m9jdrylxb492zibf5w03z6zis98pjffssp"; depends=[lme4 mgcv nlme Rcpp]; };
+  RLRsim = derive2 { name="RLRsim"; version="3.1-8"; sha256="06i4slc7fj8xifq20i1vqfadfw2p81b0kfzga60139hnryz1zpva"; depends=[lme4 mgcv nlme Rcpp]; };
   RLT = derive2 { name="RLT"; version="3.2.4"; sha256="1vycsi213pcy5x9qpvim0nbsx4sk2125bficssv9v154w2xrgvf8"; depends=[]; };
   RLeafAngle = derive2 { name="RLeafAngle"; version="1.0"; sha256="1anks22hn6qpac556p99kilkhc80h572dvcyz3wj1nqffdrhgrh3"; depends=[]; };
   RLogicalOps = derive2 { name="RLogicalOps"; version="0.1"; sha256="1qyn80x3x3bb5wgzyzw6pxs8a6q26yq1fkmkz7f5wywsnrj8hzfj"; depends=[rstackdeque stringr]; };
@@ -4089,7 +4095,7 @@ in with self; {
   RMThreshold = derive2 { name="RMThreshold"; version="1.1"; sha256="0wkc42vcggib002ad6ch43h6avpdgl12szrrrfd2p0wl72cwn5n1"; depends=[Matrix png]; };
   RMTstat = derive2 { name="RMTstat"; version="0.3"; sha256="1nn25q4kmh9kj975sxkrpa97vh5irqrlqhwsfinbck6h6ia4rsw1"; depends=[]; };
   RMVL = derive2 { name="RMVL"; version="0.0.4.4"; sha256="01w649iw62kpyp4a3lyrqcfb8iqcd0v8zwz6aq1cnxhw04hz0c1w"; depends=[]; };
-  RMaCzek = derive2 { name="RMaCzek"; version="1.3.5"; sha256="19hb25rl4fmyyaklj0jlvdh41zg9k2d6hkmm4ixvh8y9dbp675c8"; depends=[GA seriation]; };
+  RMaCzek = derive2 { name="RMaCzek"; version="1.4"; sha256="0qyragblpsc5pw9j0n4563i29fgi7jmv696lk2dp8ms6sba6ns6y"; depends=[GA seriation]; };
   RMallow = derive2 { name="RMallow"; version="1.1"; sha256="1s6a3347739rfc8rrh2773b278gcbp8hf5j5psm61fz7bavy9gcj"; depends=[combinat]; };
   RMariaDB = derive2 { name="RMariaDB"; version="1.2.1"; sha256="032zrwqf2w1cfkm0ryblc4sms2y5cl0fzyp0ijlk7kjld04nl5y9"; depends=[bit64 blob DBI hms lubridate plogr Rcpp rlang]; };
   RMark = derive2 { name="RMark"; version="2.2.7"; sha256="0qxa383cagzqrnfc3izybb4lrg8z1r3nw1j5b7h4wkjwy0k3kczb"; depends=[coda matrixcalc msm]; };
@@ -4100,8 +4106,8 @@ in with self; {
   RMixtCompUtilities = derive2 { name="RMixtCompUtilities"; version="4.1.4"; sha256="1rhdmiap7xm96igclas67dz8naywjkddydbk9m3hp0d0zhgblc5i"; depends=[ggplot2 plotly scales]; };
   RMySQL = derive2 { name="RMySQL"; version="0.10.23"; sha256="05aavyggyjv46awa7ggbxlfcy9707vak5kh7kj0ljdx8zga7xb7l"; depends=[DBI]; };
   RNAseqNet = derive2 { name="RNAseqNet"; version="0.1.4"; sha256="16ab0p0378j4vvcazynffsgx1rq32llf1sz4h4pp5lrx820j6qvx"; depends=[ggplot2 glmnet hot_deck igraph PoiClaClu]; };
+  RNAseqQC = derive2 { name="RNAseqQC"; version="0.1.1"; sha256="1w867y34mxqwnl5svb1i2f07grprvpqijgjf964p2n9l952qsv3p"; depends=[AnnotationFilter AnnotationHub circlize ComplexHeatmap cowplot DESeq2 dplyr ensembldb gghighlight ggplot2 ggpointdensity ggrepel ggsci magrittr matrixStats purrr RColorBrewer stringr SummarizedExperiment tibble tidyr tidyselect vsn]; };
   RNAsmc = derive2 { name="RNAsmc"; version="0.7.0"; sha256="13biayrgs9qb06w3rkwrmplnrm93zlygsfm7chy6jbp15xl3bf0c"; depends=[circlize RRNA]; };
-  RNAstructureModuleMiner = derive2 { name="RNAstructureModuleMiner"; version="0.1.0"; sha256="026r1h4z1jdfww0ay9iixa77ax6b19pgp589bbn77xg1vwjjlbsk"; depends=[RRNA]; };
   RNCBIEUtilsLibs = derive2 { name="RNCBIEUtilsLibs"; version="0.9"; sha256="1h1ywx8wxy6n2rbpmjbqw4c0djz29pbncisd0mlbshj1fw226jba"; depends=[rJava]; };
   RNCEP = derive2 { name="RNCEP"; version="1.0.10"; sha256="19ja7pcp7ajwhqhqw92pdmvxzyjc4kw3943pllpx47s1zvi6dmci"; depends=[abind fields maps RColorBrewer sp tgp]; };
   RND = derive2 { name="RND"; version="1.2"; sha256="1rl5apgw43c841z0lapi9z2jn979dvqh4x1qkqx1ad77zcq87c85"; depends=[]; };
@@ -4191,7 +4197,7 @@ in with self; {
   RRI = derive2 { name="RRI"; version="1.1"; sha256="0msdc5j5vx4snl8r3q5nn0mw2i80jds5pjykhmigcrx6jzg6h6i7"; depends=[Rcpp RcppArmadillo]; };
   RRMLRfMC = derive2 { name="RRMLRfMC"; version="0.4.0"; sha256="0y8gs9rirrcjb89jqxr7rrp89pjal7lzcscnh4kmabhih3f2d729"; depends=[nnet]; };
   RRNA = derive2 { name="RRNA"; version="1.0"; sha256="14rcqh95ygybci8hb8ays8ikb22g3850s9f3sgx3r4f0ky52dcba"; depends=[]; };
-  RRPP = derive2 { name="RRPP"; version="1.2.1"; sha256="0pzm0i250pscgj403s5yfbxn9hyh0kmsrkljf55aa3smycic4hqa"; depends=[ape ggplot2 Matrix]; };
+  RRPP = derive2 { name="RRPP"; version="1.2.3"; sha256="0k2nxbq133hyw9ik6ny9q3rxxpi26qj02phs8zfx8sadz6567vkf"; depends=[ape ggplot2 Matrix]; };
   RRRR = derive2 { name="RRRR"; version="1.1.0"; sha256="0h5r668qn8hp4j4zhxhn4b3lqm138n6kc1c7vf95hmbh4ah6wzf7"; depends=[expm ggplot2 magrittr matrixcalc mvtnorm]; };
   RRTCS = derive2 { name="RRTCS"; version="0.0.4"; sha256="16v6f5yvfq9l1b4h5mr4y0i2k404vdv354yz4k780w79qib7g39p"; depends=[sampling samplingVarEst]; };
   RRate = derive2 { name="RRate"; version="1.0"; sha256="1q3f2gphdf50aijnk5xqfpxcqfd4jq7byb1gpb0vcnaxgi3a9lwm"; depends=[]; };
@@ -4206,15 +4212,15 @@ in with self; {
   RSC = derive2 { name="RSC"; version="2.0.1"; sha256="0qb4sm6mrrphb5986jvgzw7lr9fchhm4r09a3dw9nlxzql5gn4zg"; depends=[doParallel foreach Matrix]; };
   RSCAT = derive2 { name="RSCAT"; version="1.1.3"; sha256="08p4gywh1g13mwcmvp046ybz410jyrzi505rdqr8yirjpk59bw1p"; depends=[ggplot2 gridExtra Metrics rJava shiny shinycssloaders shinyjs]; };
   RSDA = derive2 { name="RSDA"; version="3.0.9"; sha256="12ychaaa1n5gam93f5kpxsvsfc9x07znzzz9nrx8bsvgmq4znqf9"; depends=[dplyr e1071 FactoMineR forcats gbm ggplot2 ggpolypath glmnet kknn labelled magrittr neuralnet nloptr princurve purrr randomcoloR randomForest reshape RJSONIO rlang rpart scales sqldf stringr tibble tidyselect vctrs XML]; };
+  RSDK = derive2 { name="RSDK"; version="1.0.1"; sha256="1qsidmcb432aliwvcn3y14w538nnac1xp50z7a4vh68kqidwhrxp"; depends=[keys shiny shinyWidgets testthat]; };
   RSE = derive2 { name="RSE"; version="1.3"; sha256="1dvmj1zwkbp1dj9r8kcvbd8rpknfwfdqaqc5gfl82bh823w72099"; depends=[]; };
   RSEIS = derive2 { name="RSEIS"; version="4.0-3"; sha256="1kw28k6j7isl46wv1ysbkkccsdx1r55mgj1d6jylw9hpbn1pm7hh"; depends=[RPMG Rwave]; };
   RSGHB = derive2 { name="RSGHB"; version="1.2.2"; sha256="16s9iahbcdqykavm5cq8n76hlpfqlljl17xwh0vrz5ac7z4z3rdz"; depends=[MCMCpack]; };
   RSIP = derive2 { name="RSIP"; version="1.0.0"; sha256="1yddqbnz0av69l53y83m7rnznc42qz66fc3qrispzaajs7p9n8d7"; depends=[ncdf4 raster rasterVis rgdal sp]; };
   RSKC = derive2 { name="RSKC"; version="2.4.2"; sha256="0r9gpwhzscb6rbba3dg13p78pvskahgvsd59biag0shyii3xvwpm"; depends=[flexclust]; };
   RSNNS = derive2 { name="RSNNS"; version="0.4-14"; sha256="081c20dcac8xxb0sp7kwzm4b7h5jrgcxxsfckjbxbda95g5n4qkz"; depends=[Rcpp]; };
-  RSPS = derive2 { name="RSPS"; version="1.0"; sha256="0ynxhgnxsf27qm8r5d9lyd59zksnc3kvx35hy25vff8j3bg7fqgi"; depends=[gridExtra lattice plyr]; };
   RSQL = derive2 { name="RSQL"; version="0.1.4"; sha256="0zda6cgsx1bd3xw2r9flsphbkrgma95qqv5vz70f234y9gkmc6v3"; depends=[DBI knitr lgr R6 RSQLite]; };
-  RSQLite = derive2 { name="RSQLite"; version="2.2.10"; sha256="1a00i24g4d4gvp7qmivpyfm24yfz4w4wsy2kplgfz0i0j0rzzbh6"; depends=[bit64 blob DBI memoise pkgconfig plogr Rcpp]; };
+  RSQLite = derive2 { name="RSQLite"; version="2.2.12"; sha256="12ka9cp591sc3hn5r6z4skbjzm3nfq338wlpjdmw6rz26mmr2c9s"; depends=[bit64 blob DBI memoise pkgconfig plogr Rcpp]; };
   RSSL = derive2 { name="RSSL"; version="0.9.5"; sha256="1h94dhs5yl1i7n153rbmj883iz3hql0b0cr12357nk4nvf36yih8"; depends=[cluster dplyr ggplot2 kernlab MASS Matrix quadprog Rcpp RcppArmadillo reshape2 scales tidyr]; };
   RSSOP = derive2 { name="RSSOP"; version="1.1"; sha256="119xrxpaf68qdb2kj2pbaja6im2nbxsgibb1bnlpnc3fcxkmqcsf"; depends=[]; };
   RSSampling = derive2 { name="RSSampling"; version="1.0"; sha256="0p10l7qmksx4ysz1jb84f9nbqzig8wxhwy33yk8hq29nb5i4c9ik"; depends=[LearnBayes]; };
@@ -4245,7 +4251,7 @@ in with self; {
   RTConnect = derive2 { name="RTConnect"; version="0.1.4"; sha256="1000jmmqzyhl6vh1ii75jdh88s9inaz52gvfwcin2k2zr7bi91ba"; depends=[]; };
   RTD = derive2 { name="RTD"; version="0.4.1"; sha256="0zsv62hx1y9q5a6rd8ri91ff64671b84jr3f88h0q4yni2mribhr"; depends=[dplyr httr jsonlite purrr RcppMsgPack readr urltools uuid]; };
   RTDE = derive2 { name="RTDE"; version="0.2-1"; sha256="1dkv0g760384jmyypffl5kbnsancjx272j91ffpgmg3lmsy8nhqq"; depends=[]; };
-  RTIGER = derive2 { name="RTIGER"; version="0.99.0"; sha256="0g1qccjslf90lsc965klnkdkij16frfk3ig6yjpldh8j2yv66zg3"; depends=[e1071 GenomeInfoDb GenomicRanges ggplot2 IRanges JuliaCall qpdf reshape2 TailRank]; };
+  RTIGER = derive2 { name="RTIGER"; version="1.99.0"; sha256="018y0hs06cpmb2k74xdj0cnlzr9aljbizj5jf9h8frpn9p57d6rv"; depends=[e1071 GenomeInfoDb GenomicRanges ggplot2 IRanges JuliaCall qpdf reshape2 TailRank]; };
   RTL = derive2 { name="RTL"; version="1.0.0"; sha256="19v9npbnr0hp6gk9minil53imjvhqhzzvq3fg3xlg2kdf0d4s87d"; depends=[cli dplyr fabletools feasts ggplot2 glue httr jsonlite lifecycle lubridate magrittr plotly purrr RCurl readr rlang stringr tibble tidyquant tidyr timetk tsibble withr xts zoo]; };
   RTOMO = derive2 { name="RTOMO"; version="1.1-6"; sha256="03jb96ahzgp662vj2v65giv8ss61vad5w26kvq8hg9q06z879jza"; depends=[GEOmap RPMG RSEIS splancs]; };
   RTTWebClient = derive2 { name="RTTWebClient"; version="0.1.3"; sha256="1d4dmw7z90nih9bzajlyqgqvpfmpkxwyhw0w56q396kvw8k644cp"; depends=[base64enc data_table digest httr jsonlite withr]; };
@@ -4260,7 +4266,7 @@ in with self; {
   RVAideMemoire = derive2 { name="RVAideMemoire"; version="0.9-81-2"; sha256="137374nikk2jji1fnx1vnsj1v6n3s9kbif5rcvla0kbg3xn6ndps"; depends=[ade4 boot car FactoMineR lme4 MASS mixOmics nnet pls pspearman vegan]; };
   RVCompare = derive2 { name="RVCompare"; version="0.1.5"; sha256="17ralm3xbzgi1ngblwf6pmpaz7c5vwkfinnpwyxvlrwi8mxi554h"; depends=[ggplot2 pracma Rcpp]; };
   RVFam = derive2 { name="RVFam"; version="1.1"; sha256="0gw8rgq11zndnqmay6y3y5rmmljvwhxzm2pqa90vs5413dnchq92"; depends=[coxme kinship2 lme4 MASS Matrix survival]; };
-  RVIpkg = derive2 { name="RVIpkg"; version="0.2.8"; sha256="0hh3kqzfwbp0qc1v5baixnl3px54dwvljd1r23s8lxlg434pl7fz"; depends=[]; };
+  RVIpkg = derive2 { name="RVIpkg"; version="0.3.0"; sha256="0z045zky4zmv3b46i90x8ww8kgbsz26v5waa08scm5hkpn25hb8k"; depends=[]; };
   RVenn = derive2 { name="RVenn"; version="1.1.0"; sha256="016m00xv59lkwm2is32v5nr4lw5a1ymdnz34r3ffflcv9bfrc6n4"; depends=[ggforce ggplot2 magrittr pheatmap purrr rlang vegan]; };
   RVerbalExpressions = derive2 { name="RVerbalExpressions"; version="0.1.0"; sha256="1p9wmpgqwnz95sr8km8y6kqax8fcz6sqg54wfdx44kiqkf1ybdsp"; depends=[magrittr]; };
   RVideoPoker = derive2 { name="RVideoPoker"; version="0.3"; sha256="06s4dlw0pw8rcq5b31xxqdpdk396rf27mai2vpvmn585vbm1ib7a"; depends=[pixmap rpanel tkrplot]; };
@@ -4278,7 +4284,7 @@ in with self; {
   RWsearch = derive2 { name="RWsearch"; version="5.0.5"; sha256="161fnkl0dzk11wvzj7vz4807pjq33gvnhniw8ms2ipz0vmd0pk7c"; depends=[brew latexpdf networkD3 sig sos XML]; };
   RXKCD = derive2 { name="RXKCD"; version="1.9.2"; sha256="1yk12ic6kdbwc44ppag2yfnga7xjmifkglhvcw93vc3qg469mm15"; depends=[jpeg plyr png RJSONIO]; };
   RXMCDA = derive2 { name="RXMCDA"; version="1.5.5"; sha256="1ci73q8xf3xxqw8b7sk83v5vz2cqgcb4lkx7qi3hd1ff4xkz1fpa"; depends=[kappalab XML]; };
-  RXshrink = derive2 { name="RXshrink"; version="2.0"; sha256="105laxdjnqpkp74675asihcry6ahaihphkbnpxyi6xpskga0k1ka"; depends=[ellipse lars]; };
+  RXshrink = derive2 { name="RXshrink"; version="2.1"; sha256="1qqwmqi39m8pmxghgsnc8x9s2zks97mryzwx9ynd08mcxi3xinvd"; depends=[ellipse lars]; };
   RYandexTranslate = derive2 { name="RYandexTranslate"; version="1.0"; sha256="0qrv5mnnkn5fs7vx6i74z46s0qj9f98km5bizgj00832qyrq8q1s"; depends=[httr jsonlite RCurl]; };
   RYoudaoTranslate = derive2 { name="RYoudaoTranslate"; version="1.0"; sha256="1i3iyqh97vpn02bm66kkmw52ni29js30v18n2aw8pvr88jpdgxm4"; depends=[RCurl rjson]; };
   RZabbix = derive2 { name="RZabbix"; version="0.1.0"; sha256="0c5803chpzvp7dk9pjfx5f0nqynb76ywakz04ah2nw07ypvcyjyr"; depends=[httr jsonlite]; };
@@ -4294,7 +4300,7 @@ in with self; {
   RadTran = derive2 { name="RadTran"; version="1.0"; sha256="1sb8d4y3b37akbxhdavxrkp34zn3ip061b7gzy0ga57pyn76cvpn"; depends=[ReacTran rootSolve]; };
   RadialVisGadgets = derive2 { name="RadialVisGadgets"; version="0.2.0"; sha256="18a2c89jpdaln9cl5y4w161121fld08wm57m40qacsj1vlnkh6j9"; depends=[caret dplyr ggplot2 miniUI r_import rlang shiny shinyjs shinyscreenshot tidyr]; };
   RadioSonde = derive2 { name="RadioSonde"; version="1.4"; sha256="1v9jdpynmb01m3syhas1s08xxlvjawhlvjkyhils2iggi4xw4hiq"; depends=[]; };
-  Radviz = derive2 { name="Radviz"; version="0.9.2"; sha256="1k4bykrs6932n2iz2nngbs2k45ra7nq3rpxw4acpvxwxfciiq3ia"; depends=[dplyr ggplot2 hexbin igraph pracma Rcpp RcppArmadillo rlang]; };
+  Radviz = derive2 { name="Radviz"; version="0.9.3"; sha256="0ayrkax1g7x9jvkl8lni08ydm1lhcwpcbvy1xj9zk3bpd5zpll86"; depends=[dplyr ggplot2 hexbin igraph pracma Rcpp RcppArmadillo rlang]; };
   RagGrid = derive2 { name="RagGrid"; version="0.2.0"; sha256="0crnpd75lyhd0awzqzqy7bzw4ydgxpyhy1ybb1ff4qsnisbjdbba"; depends=[crosstalk htmltools htmlwidgets knitr]; };
   Rage = derive2 { name="Rage"; version="1.2.0"; sha256="10fywfr5iz1cqig7yq9w43kpicbvyl8s1q7zszb1dzsv1gr2y02n"; depends=[DiagrammeR MASS popdemo Rcompadre]; };
   RainfallErosivityFactor = derive2 { name="RainfallErosivityFactor"; version="0.1.0"; sha256="16yrr2bl62m1nr81nzvmdq7s78f7fg50dah5dg5q4j4j7z8qfsqz"; depends=[]; };
@@ -4306,7 +4312,7 @@ in with self; {
   RandVar = derive2 { name="RandVar"; version="1.2.1"; sha256="17c6bx644n604zpggmwx1z3krgd9v7c88il45cf5yhp7zf7cc718"; depends=[distr distrEx startupmsg]; };
   RandomCoefficients = derive2 { name="RandomCoefficients"; version="0.0.2"; sha256="04l0aczrlbkjk0687w2gxs85ia71yy69mgankwkl37ksznh6y81m"; depends=[fourierin ks orthopolynom polynom RCEIM rdetools robustbase sfsmisc snowfall statmod tmvtnorm VGAM]; };
   RandomFields = derive2 { name="RandomFields"; version="3.3.14"; sha256="0c5r7l642cw56km56ijachnqhjh5k0izy03cl14rvbwkpywh09i4"; depends=[RandomFieldsUtils sp]; };
-  RandomFieldsUtils = derive2 { name="RandomFieldsUtils"; version="1.1.0"; sha256="17aa29ll1wminzpdl2lq6m1pc6wcdj5ap1sp5rd516j4xlpn0wpl"; depends=[]; };
+  RandomFieldsUtils = derive2 { name="RandomFieldsUtils"; version="1.2.3"; sha256="0hlyyddafz4ik9m7bknhz6ghnqgli1f7gf6zyhlf94wh0775s9g1"; depends=[]; };
   RandomForestsGLS = derive2 { name="RandomForestsGLS"; version="0.1.3"; sha256="1xqzpfgs6hdkaf99xgrxc4m5k73vpvkhpgb4bw01rhhay08zzv4g"; depends=[BRISC matrixStats pbapply randomForest]; };
   Randomuseragent = derive2 { name="Randomuseragent"; version="0.0.1"; sha256="1ym272z5a2wnprz59db8knszzqglmrdmk77r7cfyzy5jwcqzy4jn"; depends=[]; };
   RanglaPunjab = derive2 { name="RanglaPunjab"; version="2.3.4"; sha256="01j3gww9kil02d44jwlkz6j7lwn2him830bnshkly0s7mgh22pgr"; depends=[jpeg shiny tidyverse]; };
@@ -4343,7 +4349,7 @@ in with self; {
   RcextTools = derive2 { name="RcextTools"; version="0.1.1"; sha256="1rrij4ryspff9mn1c3jlzjprnipak7nzlb488pk0ci0awaccp5ga"; depends=[data_table igraph sqldf visNetwork]; };
   Rcgmin = derive2 { name="Rcgmin"; version="2013-2.21"; sha256="02igq7bdlxwa7ysfiyvqfhcvgm866lrp2z3060z5lmnp6afa0958"; depends=[numDeriv]; };
   RchivalTag = derive2 { name="RchivalTag"; version="0.1.2"; sha256="0285n5mxs643546qhyqkccaq1fkn1hxagrhj2abahskfl53i9rsw"; depends=[dygraphs mapdata maps maptools ncdf4 oceanmap PBSmapping plyr pracma raster readr rgeos sp xts]; };
-  Rchoice = derive2 { name="Rchoice"; version="0.3-3"; sha256="09fssba9wi290i9nd0vxbhz29bgm7rj4aanvxkma2pdk6impcvfq"; depends=[Formula maxLik memisc miscTools msm numDeriv plm plotrix sandwich]; };
+  Rchoice = derive2 { name="Rchoice"; version="0.3-4"; sha256="1995a26zlkgknb9vdh7rsk3ichr948hh9gvhmcfxwb9v9anw2ng8"; depends=[Formula maxLik memisc miscTools msm numDeriv plm plotrix sandwich]; };
   RclusTool = derive2 { name="RclusTool"; version="0.91.3"; sha256="0f6v2p6dg3fq3vzys6hgwmmgyrxfj2kb4wpbywd7f9p5yd9cfd88"; depends=[class cluster conclust corrplot e1071 factoextra FactoMineR ggplot2 jpeg MASS mclust mda mmand nnet png randomForest reshape sp stringi stringr tcltk2 tkrplot]; };
   Rcmdr = derive2 { name="Rcmdr"; version="2.7-2"; sha256="16sx43887zb30j1c8f4xlf4jy5ij8v5kfr3mlsymj99v0i3dq4fs"; depends=[abind car effects lme4 RcmdrMisc relimp tcltk2]; };
   RcmdrMisc = derive2 { name="RcmdrMisc"; version="2.7-2"; sha256="0r5vrnpd6zs2a2cnab15k6143kdwizaivb3dznjb59kv2aawg3w3"; depends=[abind car colorspace e1071 foreign haven Hmisc lattice MASS nortest readstata13 readxl sandwich]; };
@@ -4391,18 +4397,18 @@ in with self; {
   Rcolombos = derive2 { name="Rcolombos"; version="2.0.2"; sha256="0l92icjqqm5fxafqwd09lnmv5x6kvjdg8cphlm37q86nslwr5rkk"; depends=[httr]; };
   Rcompadre = derive2 { name="Rcompadre"; version="1.1.0"; sha256="025r6dq5qs3ri5nkg4mr76jzps2p9y56i8514m97amq8lzrxl8h4"; depends=[popdemo tibble]; };
   Rcplex = derive2 { name="Rcplex"; version="0.3-5"; sha256="10z5akab66d8a3rcs5dbqq1w59hhyn52mq8vpjhcxpzqqc3c7442"; depends=[slam]; };
-  Rcpp = derive2 { name="Rcpp"; version="1.0.8"; sha256="1vkqyqly6lzr1h3szaihmayvpjkzscxp4y258vnw8nh4pjb957w7"; depends=[]; };
+  Rcpp = derive2 { name="Rcpp"; version="1.0.8.3"; sha256="1gzqfn1xjawzig30ama3rldykqpcn6bd8sg684mrfvpmv96bi9cx"; depends=[]; };
   Rcpp11 = derive2 { name="Rcpp11"; version="3.1.2.0.1"; sha256="0vw41plcl7hbi0af3la0sb4x8zqnhxjpjslx8r8cllfamy9dixki"; depends=[]; };
   RcppAPT = derive2 { name="RcppAPT"; version="0.0.8"; sha256="19814v7gi01dqjm7lrrhw4c5ww69zj20qfli4530qzsq7v6rapzp"; depends=[Rcpp]; };
-  RcppAlgos = derive2 { name="RcppAlgos"; version="2.4.3"; sha256="1vclvkd9gikx9n7cvgbf8j9sahmy0wfrgzb1hcpsdj8l6ymjc91k"; depends=[gmp Rcpp RcppThread]; };
+  RcppAlgos = derive2 { name="RcppAlgos"; version="2.5.3"; sha256="1ndibdf3k02bpcgackzviczramzkay9idn071nix3dhs5miq1ai8"; depends=[cpp11 gmp]; };
   RcppAnnoy = derive2 { name="RcppAnnoy"; version="0.0.19"; sha256="12k8ny981dmky5js8yl6bih5r5mq3w43f2f9admhkwqn0n80kcl9"; depends=[Rcpp]; };
-  RcppArmadillo = derive2 { name="RcppArmadillo"; version="0.10.8.1.0"; sha256="1x7mk85rc4pmn17nm63k6rbkarsmghjapznias268545nfpib97g"; depends=[Rcpp]; };
-  RcppBDT = derive2 { name="RcppBDT"; version="0.2.4"; sha256="11xq2lz4n4gyqk4pz8c3zr5ll8jlh1qlbf9rbqd3q6s3qzphpybd"; depends=[BH Rcpp]; };
+  RcppArmadillo = derive2 { name="RcppArmadillo"; version="0.11.0.0.0"; sha256="13blvrlbw8194a96v38hnllnwvyhdw5x9m0dnkyw3xsi3jrhcxin"; depends=[Rcpp]; };
+  RcppBDT = derive2 { name="RcppBDT"; version="0.2.5"; sha256="1yx6rlidcz5yygzk1kvc5b5vclvdkv96v1y3nghj1523nnapbyxy"; depends=[BH Rcpp]; };
   RcppBigIntAlgos = derive2 { name="RcppBigIntAlgos"; version="1.0.1"; sha256="157a14kqcf0q3z01mn4w1194k2l39dd4qmqs0i115p8bvkjc6ncd"; depends=[gmp Rcpp RcppThread]; };
   RcppCCTZ = derive2 { name="RcppCCTZ"; version="0.2.10"; sha256="0jj4w8141xl3yvr4ss8c48kiib5d0rsj7f6csn3hq9viqy71hy1s"; depends=[Rcpp]; };
-  RcppCGAL = derive2 { name="RcppCGAL"; version="5.3.1.1"; sha256="0pxfvcpizvqlixz8547m7wf7haza5ca9bslvg8wwwmnpwrifz4fy"; depends=[Rcpp]; };
-  RcppCNPy = derive2 { name="RcppCNPy"; version="0.2.10"; sha256="175bn75akwgz3vcp0n59kiqqz7q9cwkvih241nj8v810cp4gpmkp"; depends=[Rcpp]; };
-  RcppCWB = derive2 { name="RcppCWB"; version="0.5.1"; sha256="0ly5snza8jryrmnlk3bi8br5mcc4nhnk35r6y2drschzbi60fybk"; depends=[fs Rcpp]; };
+  RcppCGAL = derive2 { name="RcppCGAL"; version="5.4.1"; sha256="1ymnamvnhbx0nbqrlrk8f57py3ccdhirydn1ilvsn6yf1z9bs3sm"; depends=[Rcpp]; };
+  RcppCNPy = derive2 { name="RcppCNPy"; version="0.2.11"; sha256="0m9g37hrx33mmxhhzi6qakgiqh6w0c2s624fkgbny9vcabr3dfsx"; depends=[Rcpp]; };
+  RcppCWB = derive2 { name="RcppCWB"; version="0.5.2"; sha256="0z6xnvd297iklg487s9ymm7pdz7b12bmsmmmvz7r7zj80h4mdfky"; depends=[fs Rcpp]; };
   RcppCensSpatial = derive2 { name="RcppCensSpatial"; version="0.1.0"; sha256="0ckyl88b81l58dkk0s40mcanjqaibi106q6jsrak79as93g1dbh1"; depends=[ggplot2 gridExtra MomTrunc mvtnorm Rcpp RcppArmadillo RcppProgress Rdpack roptim tlrmvnmvt]; };
   RcppClassic = derive2 { name="RcppClassic"; version="0.9.12"; sha256="0v9v34i1c4dkplavdl14kz1k2rnk4hsaiyv6rkc9403z9isvzzr0"; depends=[Rcpp]; };
   RcppClassicExamples = derive2 { name="RcppClassicExamples"; version="0.1.2"; sha256="0dr2104miy7psr73nicfs84652ai0d5liw6wxcwyrx7fmys3p638"; depends=[Rcpp RcppClassic]; };
@@ -4419,7 +4425,7 @@ in with self; {
   RcppFaddeeva = derive2 { name="RcppFaddeeva"; version="0.1.0"; sha256="1rah18sdfmbcxy83i7vc9scrwyr34kn9xljkv9pa31js68gn2jrl"; depends=[knitr Rcpp]; };
   RcppFarmHash = derive2 { name="RcppFarmHash"; version="0.0.2"; sha256="0nkismq7hmp1ahwv4z438zrcj7mqsfmas2yd6av6k2cmkgklqkbk"; depends=[Rcpp]; };
   RcppFastFloat = derive2 { name="RcppFastFloat"; version="0.0.3"; sha256="1926hz4q6qqvz8zpabgvk04a18cm1xaqcf30yjgcrslgaf8l8h0n"; depends=[Rcpp]; };
-  RcppGSL = derive2 { name="RcppGSL"; version="0.3.10"; sha256="0lalz51q31qqy0cr227vc3msi0h47p111lzy4zs93drgl1yhh4l6"; depends=[Rcpp]; };
+  RcppGSL = derive2 { name="RcppGSL"; version="0.3.11"; sha256="1a5dms0axlzgpv1z2bhfrb77497h0ch1yslq0gidj14vr4kfm57h"; depends=[Rcpp]; };
   RcppGetconf = derive2 { name="RcppGetconf"; version="0.0.3"; sha256="1qcnn482h9b8aw798frnkza4bzzpihp0pf4s1mj6zmn2ar01hsl0"; depends=[Rcpp]; };
   RcppGreedySetCover = derive2 { name="RcppGreedySetCover"; version="0.1.0"; sha256="1v84i9gsmvpkmgd4niqnzp58nhrgn2j4rggsrnlh391ikdfrl51x"; depends=[BH data_table Rcpp]; };
   RcppHMM = derive2 { name="RcppHMM"; version="1.2.2"; sha256="0scdzmns1yw2gbarblzd6cbvndlysz54ff17qijiz17ql5cyzly6"; depends=[Rcpp RcppArmadillo]; };
@@ -4437,11 +4443,11 @@ in with self; {
   RcppRoll = derive2 { name="RcppRoll"; version="0.3.0"; sha256="0srzfhzkk42kzrdjnhbb37946jp1p688rgysy6k3i2is8jb21zyb"; depends=[Rcpp]; };
   RcppSMC = derive2 { name="RcppSMC"; version="0.2.6"; sha256="1svpzx4h9baipqnx2793vkjh1lnr92y82whpryqzzm4i7b6zx27i"; depends=[Rcpp RcppArmadillo]; };
   RcppSimdJson = derive2 { name="RcppSimdJson"; version="0.1.7"; sha256="0ajbm7qy3fqlaadpzfhzsaczszlw6l5p31mmr1xd2cb31wszpg9r"; depends=[Rcpp]; };
-  RcppSpdlog = derive2 { name="RcppSpdlog"; version="0.0.7"; sha256="13cn8dm68mhpgimgvk2ybsccs3qjg8c975zdjr8h86vfwyjj4gnv"; depends=[Rcpp]; };
+  RcppSpdlog = derive2 { name="RcppSpdlog"; version="0.0.8"; sha256="1z5fg1i9splph4nfxnra07yjgss9g6g5rcsz492aa0zd8xi7z3za"; depends=[Rcpp]; };
   RcppStreams = derive2 { name="RcppStreams"; version="0.1.3"; sha256="06il7q3afaws57m0fxf04f2p5dvs23l1f7gl78pxwzclacdy3839"; depends=[BH Rcpp]; };
   RcppTN = derive2 { name="RcppTN"; version="0.2-2"; sha256="0m2wc5n1fzxv56s4gqqnygb24dbadgrpgjm4bs4hr6qazgjapymf"; depends=[Rcpp]; };
   RcppTOML = derive2 { name="RcppTOML"; version="0.1.7"; sha256="0h8517ipwqhqkhcfiyqmvsb585g01p0ra0azbpzyxip6pq6g029g"; depends=[Rcpp]; };
-  RcppThread = derive2 { name="RcppThread"; version="2.1.1"; sha256="14i3bphg4gkw1hsd5d2w3sjys6da8ac7lbd470v4m98v4d3d0hcd"; depends=[]; };
+  RcppThread = derive2 { name="RcppThread"; version="2.1.3"; sha256="0iprpidf7q1wlrgr9dwiikb6apqk80pyjcyni56k64nl7lrkszhj"; depends=[]; };
   RcppUUID = derive2 { name="RcppUUID"; version="1.1.1"; sha256="0sxdj5ay90i1bs3wizij31n21ym8l0q0c79959arp1gd303sd8b8"; depends=[BH Rcpp]; };
   RcppXPtrUtils = derive2 { name="RcppXPtrUtils"; version="0.1.1"; sha256="0jh64c46gp99d2nsih14vx34pamc8i7gkmiy2nj94rx3sxq62yh5"; depends=[Rcpp]; };
   RcppXsimd = derive2 { name="RcppXsimd"; version="7.1.6"; sha256="1iwiz4964dw015cbxcanks8xkjan39hfzf8x6bhvf6dqqwkc4bh7"; depends=[Rcpp]; };
@@ -4459,7 +4465,7 @@ in with self; {
   Rdice = derive2 { name="Rdice"; version="1.0.0"; sha256="1xibvm690808p2g3jch7rh1825yrpgln2hjfclgxjwn822qvs4xr"; depends=[data_table]; };
   Rdimtools = derive2 { name="Rdimtools"; version="1.0.9"; sha256="1fb5daizc615g58yai6p4lqczwi8kq6fyyifnyn8izxjdpqh0ivm"; depends=[CVXR maotai MASS mclustcomp RANN Rcpp RcppArmadillo RcppDE RcppDist Rcsdp Rdpack RSpectra]; };
   Rdistance = derive2 { name="Rdistance"; version="2.1.3"; sha256="03wh6y9h5jgfc6xdncpgyz0v7lqavikp3pf5wwfmm2rqfj7yjr8c"; depends=[]; };
-  Rdpack = derive2 { name="Rdpack"; version="2.1.4"; sha256="0r242a352wa7kha0n62ng6ri0qi14hwjknnyjvfcd7mx4qvfwhgv"; depends=[rbibutils]; };
+  Rdpack = derive2 { name="Rdpack"; version="2.3"; sha256="1igpa4hnpiykbdnq57mglby5jsbind6izkkfy81wx4ib6nw1lpn4"; depends=[rbibutils]; };
   Rdroolsjars = derive2 { name="Rdroolsjars"; version="1.0.1"; sha256="1l9bc1bwpj10irr973hzkhr04i1f3g998n8hcl2k2i9kgv1naqmz"; depends=[rJava]; };
   Rdrw = derive2 { name="Rdrw"; version="1.0.2"; sha256="1487r8z6h1y0v6fxkp7qfbh7j96hw8gqbb0fc90m4cxwz0hrqrn2"; depends=[mvtnorm]; };
   Rdsdp = derive2 { name="Rdsdp"; version="1.0.5.1"; sha256="0x5dcgl25i6j2pg6d69rinal0yi8w0jwlfg05bnk9bg9v7i7db67"; depends=[]; };
@@ -4514,18 +4520,17 @@ in with self; {
   ResistorArray = derive2 { name="ResistorArray"; version="1.0-32"; sha256="0zqnl0bbqrj5hn5ywhlqyrlz5ryql88qahlgs9989v4rljcxxlam"; depends=[]; };
   ResourceSelection = derive2 { name="ResourceSelection"; version="0.3-5"; sha256="1vg5fkjfwkganxf0ji70pkp071841hjgr5sjxlaky8mx7n0cy80x"; depends=[MASS Matrix pbapply]; };
   RespirAnalyzer = derive2 { name="RespirAnalyzer"; version="1.0.1"; sha256="0zdgbim5496fpfxi4cgn4fbl70grclii2naizaiabm4cz350hf6y"; depends=[pracma Rcpp signal]; };
-  RestRserve = derive2 { name="RestRserve"; version="0.4.1"; sha256="1486hrzj5q5w4nbrsbqlv7vv20ly01y90qc2vygl5syzwvyjd422"; depends=[checkmate jsonlite mime R6 Rcpp Rserve uuid]; };
+  RestRserve = derive2 { name="RestRserve"; version="1.0.0"; sha256="0qb1x13n2sm0lg52x3289jsln3gw9rawfs1z2372pvr9ydpjsfqb"; depends=[checkmate jsonlite mime R6 Rcpp Rserve uuid]; };
   RevEcoR = derive2 { name="RevEcoR"; version="0.99.3"; sha256="1nym263ynjdir5kxv35jnmki9mshlplq0sk3xnjd4ac6f1cfbfqj"; depends=[gtools igraph magrittr Matrix plyr purrr stringr XML]; };
-  RevGadgets = derive2 { name="RevGadgets"; version="1.0.0"; sha256="0k17flvax4cq9cvl3fsyv5ya0bndikxbzdmk87v5xz3czf31kk81"; depends=[ape deeptime dplyr ggimage gginnards ggplot2 ggplotify ggpp ggthemes ggtree phytools png reshape tibble tidyr tidytree treeio]; };
   ReviewR = derive2 { name="ReviewR"; version="2.3.7"; sha256="133q3jiydf4n2frx4zmapbqgvz1f5bn1wkgsnfaaffxpz5962kxk"; depends=[bigrquery config dashboardthemes DBI dbplyr dplyr DT gargle glue golem httr jsonlite magrittr pkgload purrr redcapAPI REDCapR rlang RPostgres RSQLite shiny shinycssloaders shinydashboard shinydashboardPlus shinyjs shinyWidgets snakecase stringr tibble tidyr]; };
-  Revticulate = derive2 { name="Revticulate"; version="0.3.0"; sha256="0f20kn5nwh7kzq4f91cfwpx0gmxxwyg9rfw4inswnnkcqr7gg6z2"; depends=[ape comprehenr knitr phytools stringi stringr]; };
+  Revticulate = derive2 { name="Revticulate"; version="1.0.0"; sha256="00pz8nnbl7dcbbqw8kdbdai1i3jc941l42nppaa1kxk6i3dci7gs"; depends=[ape comprehenr jsonlite knitr rstudioapi stringr usethis]; };
   Rexperigen = derive2 { name="Rexperigen"; version="0.2.1"; sha256="158ksnd1gvzq7ii0ys2v0wrfnr001hni0i8m77p1fn1arixgmqdw"; depends=[digest jsonlite RCurl]; };
   RfEmpImp = derive2 { name="RfEmpImp"; version="2.1.5"; sha256="1bvjk71rfhpbj2j7raibsb0y3skbv1qba7yl2g00npnkk2zk14xj"; depends=[mice ranger]; };
   Rfacebook = derive2 { name="Rfacebook"; version="0.6.15"; sha256="0hp2mbm0hnyasizszvh5x9hv7z2q633zck1a1gvk36nbxb1shx7c"; depends=[httpuv httr rjson]; };
   Rfast = derive2 { name="Rfast"; version="2.0.6"; sha256="0zxykq021h57mq0n6giqbx8ncjsdly0arhmaj3fcp3yfcxf4ns9l"; depends=[Rcpp RcppArmadillo RcppZiggurat]; };
-  Rfast2 = derive2 { name="Rfast2"; version="0.1.1"; sha256="1sqd5614gw1ag7wjidjv8bxf3qz8lkz7m9gangihgrlf0bm4944h"; depends=[RANN Rcpp RcppArmadillo Rfast]; };
+  Rfast2 = derive2 { name="Rfast2"; version="0.1.3"; sha256="1bqaazgna9vradgs8naqnyv5y1q4fq67hm18k22bcb5vycci3m5k"; depends=[RANN Rcpp RcppArmadillo Rfast]; };
   Rfit = derive2 { name="Rfit"; version="0.24.2"; sha256="1b3pza2xdpifvrcqbdp5r2wy82ws1844bnpna01hqj65xbw2iix8"; depends=[]; };
-  Rfmtool = derive2 { name="Rfmtool"; version="4.1.4"; sha256="0vli7n957vrxs47nq5h4aqd9nwq7alj47q91zqc009rfx7wgx2k5"; depends=[]; };
+  Rfmtool = derive2 { name="Rfmtool"; version="4.1.8"; sha256="1p4b9wgcdvlhfcf1rq15wcx2qjn2hgqp6gv7wx40dziqa8csrlpk"; depends=[]; };
   Rfolding = derive2 { name="Rfolding"; version="1.0"; sha256="15lf73zxr1slin9faj9k0z8qkb1g9nb7h080nfv99gsi2ks68ssg"; depends=[]; };
   Rforestry = derive2 { name="Rforestry"; version="0.9.0.95"; sha256="0m6znm0yir0vlbp4vc517pxvbb81xg85cpgc9b12k5ay65lrzxq5"; depends=[dplyr glmnet onehot Rcpp RcppArmadillo RcppThread visNetwork]; };
   Rfractran = derive2 { name="Rfractran"; version="1.0"; sha256="0cwc069f7rhkxkr5kn0n43mdy8m47gh0q6d5ijwzkhncrijb10cy"; depends=[gmp]; };
@@ -4546,14 +4551,14 @@ in with self; {
   Rirt = derive2 { name="Rirt"; version="0.0.2"; sha256="0npd2g3a4dh5hlj6l06k1pf0j4731ybqqd4mpi4id16nf81cg104"; depends=[ggplot2 Rcpp reshape2]; };
   Risk = derive2 { name="Risk"; version="1.0"; sha256="1i42xcc699syj108mvgklwb30wkf9c9jrg5rmd2ypnqk9mnyg2fg"; depends=[]; };
   RiskPortfolios = derive2 { name="RiskPortfolios"; version="2.1.7"; sha256="07mhn8imn4y8kf50x2g7i55dyksh0sryjkzb09rkf64x49vq7ban"; depends=[MASS nloptr quadprog]; };
-  Rita = derive2 { name="Rita"; version="1.1.0"; sha256="1kpnb8dk81w6gi8wmp1qfjkg9bqzbsniax4hdr6qg921rqaxwack"; depends=[lattice]; };
+  Rita = derive2 { name="Rita"; version="1.2.0"; sha256="0qc969pjs7bn8c7alisqb2pvba22kkvd3lsfqz5wnrpy311s4jxr"; depends=[lattice]; };
   Ritc = derive2 { name="Ritc"; version="1.0.2"; sha256="03smhxjhjfkc9pxhlgg54b6v2jznpmnws8373qpvn9a9ky5bcq2l"; depends=[minpack_lm]; };
   RiverBuilder = derive2 { name="RiverBuilder"; version="0.1.1"; sha256="06cd1m4liv2bsh2sxplq2zl45g9zq8gsgvh14d0zr0pqm8z4dsyw"; depends=[]; };
   RiverLoad = derive2 { name="RiverLoad"; version="1.0.3"; sha256="01nrkj75smnsfrl0x82dif67q9xs15ngksz0p73i7xf6dqprjjcf"; depends=[imputeTS]; };
   Rivivc = derive2 { name="Rivivc"; version="0.9"; sha256="0gl3040pp9nqm4g2ympnx80z64zfnn1hfsxka8ynd2cqhjn3b5i1"; depends=[signal]; };
   RkMetrics = derive2 { name="RkMetrics"; version="1.3"; sha256="1k6vnr1r4h69iznib638z45gd0f8wc4g4h0ji9f0017883g77li1"; depends=[]; };
   Rlab = derive2 { name="Rlab"; version="2.15.1"; sha256="1pb0pj84i1s4ckdmcglqxa8brhjha4y4rfm9x0na15n7d9lzi9ag"; depends=[]; };
-  Rlabkey = derive2 { name="Rlabkey"; version="2.8.3"; sha256="0p6b0vm7kp7fq9cghj92j98zkiwy22dnpbaqcsms25dd08ra49x7"; depends=[httr jsonlite Rcpp]; };
+  Rlabkey = derive2 { name="Rlabkey"; version="2.8.4"; sha256="1k1acj7vzb08syrbagzkvxjfdlygjdjcpxim1qgrl451jby3hh8k"; depends=[httr jsonlite Rcpp]; };
   Rlda = derive2 { name="Rlda"; version="0.2.6"; sha256="0i8n01h9072q339p1kiqhcpwphw0d2x6bsszbhgfqc2b160dk2bl"; depends=[coda doParallel foreach gtools Rcpp RcppArmadillo RcppProgress]; };
   Rlgt = derive2 { name="Rlgt"; version="0.1-3"; sha256="0g610v5rch5s31gc7dy9zx4mcgsdhn82y1pmr2rs14qma0v7x515"; depends=[BH forecast Rcpp RcppEigen rstan rstantools sn StanHeaders]; };
   Rlibeemd = derive2 { name="Rlibeemd"; version="1.4.2"; sha256="0hzsnrz30429pavf7qghknykah9ks4msb96zwa1xgvqb4zd512dg"; depends=[Rcpp]; };
@@ -4561,7 +4566,7 @@ in with self; {
   Rlinsolve = derive2 { name="Rlinsolve"; version="0.3.2"; sha256="1xv500n1480qyakw0isanw1s5ywykhc207hqja4804s5s2m8zfjw"; depends=[Matrix Rcpp RcppArmadillo Rdpack]; };
   Rlof = derive2 { name="Rlof"; version="1.1.2"; sha256="0qhckcnhpzdm0035irip0lngbwxwiaanqf41lkrgkiyapymkfbxg"; depends=[doParallel foreach]; };
   Rmagic = derive2 { name="Rmagic"; version="2.0.3"; sha256="0g2f887v820rjyjzcahfrnjvif8iwbhnfnjpd4ib3d9lps69agx1"; depends=[ggplot2 Matrix reticulate]; };
-  Rmalschains = derive2 { name="Rmalschains"; version="0.2-6"; sha256="1dp0nys320i7pa7c0smz57vj6jk7wjvrnnn90z5w7m6xdb4rm369"; depends=[Rcpp]; };
+  Rmalschains = derive2 { name="Rmalschains"; version="0.2-7"; sha256="02wkq0aqx679ysr5cr1r2h4k2700lppycz4bynalnpmqkvmr6wzs"; depends=[Rcpp]; };
   RmarineHeatWaves = derive2 { name="RmarineHeatWaves"; version="0.17.0"; sha256="09lrrxnkkfnbidnmag1czx2xzssdl09348nkc6pqgq6xz36a3mqc"; depends=[dplyr ggplot2 lazyeval lubridate plyr raster rlang tibble tidyr zoo]; };
   RmecabKo = derive2 { name="RmecabKo"; version="0.1.6.2"; sha256="1i08wlfd14wmvwrsvjyhgzxkwzfp4jiwbzymw8m25pvyjxgi7jmy"; depends=[Rcpp stringr]; };
   Rmisc = derive2 { name="Rmisc"; version="1.5"; sha256="1ijjhfy3v91fspid77rrkc5dkcb2lav37wc3f4k5lwrn24wzy5y8"; depends=[lattice plyr]; };
@@ -4576,7 +4581,7 @@ in with self; {
   Rnmr1D = derive2 { name="Rnmr1D"; version="1.3.0"; sha256="1x06a2bsfpx27pgpxj0dih72pav26g3j0lmh0fa8gjw45jc64f4a"; depends=[base64enc doParallel foreach ggplot2 igraph impute MASS MassSpecWavelet Matrix minqa plotly plyr ptw Rcpp signal speaq XML]; };
   Rnumerai = derive2 { name="Rnumerai"; version="2.1.4"; sha256="0zxpim1wgymdhdyl7dcvc16iic57wmn8qvxicps9kgr8wxgic0p8"; depends=[arrow data_table dplyr ggplot2 httr lubridate purrr tidyr]; };
   Rnvd3 = derive2 { name="Rnvd3"; version="1.0.0"; sha256="13l5vcbcm88jfsc11ijkvr1s8qk8fflclazs4kl1k2wzpnlr6z6a"; depends=[data_table htmltools htmlwidgets jsonlite lazyeval lubridate viridisLite]; };
-  RoBMA = derive2 { name="RoBMA"; version="2.1.2"; sha256="0qp2rs6wvkfprzi3rwb32wfnjvp7fs74a6mxl4bzfwgpv2ai4g33"; depends=[BayesTools bridgesampling callr coda extraDistr ggplot2 psych Rdpack rjags runjags scales]; };
+  RoBMA = derive2 { name="RoBMA"; version="2.2.1"; sha256="0hga8yzvjskislc7kb4dlvkk9cagwpcpxqry74hwix8si2hgsyc8"; depends=[BayesTools bridgesampling callr coda extraDistr ggplot2 mvtnorm psych Rdpack rjags runjags scales]; };
   RobAStBase = derive2 { name="RobAStBase"; version="1.2.1"; sha256="0dn93bcyz9kxbj38sc1wisfa6v0666v9gk6y3zq0ihjkkhkmdwq3"; depends=[distr distrEx distrMod RandVar rrcov startupmsg]; };
   RobAStRDA = derive2 { name="RobAStRDA"; version="1.2.0"; sha256="1s84j5in4av9zbbszv8j2rpigrd9ws9h4hz64jw7xagsj3xb49kz"; depends=[]; };
   RobExtremes = derive2 { name="RobExtremes"; version="1.2.0"; sha256="150p94f0g75g54qcaq4x45lk4sxiyvv1zs4hxkicf46raybvsv89"; depends=[actuar distr distrEx distrMod evd RandVar RobAStBase RobAStRDA robustbase ROptEst startupmsg]; };
@@ -4605,7 +4610,7 @@ in with self; {
   RonFHIR = derive2 { name="RonFHIR"; version="0.4.0"; sha256="1ajpgpp300m0zzqzzwsn8sfy8x751hrr8py9n9xvzjmkgyrh4hhw"; depends=[httr jsonlite R6 stringr]; };
   Rook = derive2 { name="Rook"; version="1.1-1"; sha256="00s9a0kr9rwxvlq433daxjk4ji8m0w60hjdprf502msw9kxfrx00"; depends=[brew]; };
   RootsExtremaInflections = derive2 { name="RootsExtremaInflections"; version="1.2.1"; sha256="0qd6cmzp8fkb75ac79xbh4032vqwax7nk7d6yykpdbn0bnk2kvdi"; depends=[doParallel foreach inflection iterators]; };
-  Ropj = derive2 { name="Ropj"; version="0.3-1"; sha256="1g3rqcj690034swl8f3i9wn80n3k1zha8b3vmygghpvcrj6hm2qf"; depends=[Rcpp]; };
+  Ropj = derive2 { name="Ropj"; version="0.3-2"; sha256="1c9d2paa5b2ym8qn608hyimr3fbns7nxrhk1bms87cgd8a7sqaf0"; depends=[Rcpp]; };
   Rosenbrock = derive2 { name="Rosenbrock"; version="0.1.0"; sha256="0qfdyr66g244jvbnssbnj2b2ng740dr4qmillpnwl4h2hh811syv"; depends=[MASS]; };
   Rothermel = derive2 { name="Rothermel"; version="1.2"; sha256="0zrz2ck3q0vg0wpa4528rjlrfnvlyiy0x1gr5z1aax1by7mdj82s"; depends=[ftsa GA]; };
   RoughSetKnowledgeReduction = derive2 { name="RoughSetKnowledgeReduction"; version="0.1"; sha256="0zn6y2rp78vay9zwijpzhjpyq1gmcsa13m9fcsxkd1p2c8g5rbmf"; depends=[]; };
@@ -4629,7 +4634,7 @@ in with self; {
   Rrdap = derive2 { name="Rrdap"; version="1.0.2"; sha256="1v4q5pgk4ycwi2m807iqz6j2bvsm4x4dvqg5vr5fa8ggfw40xvz7"; depends=[curl rjson stringr]; };
   Rrdrand = derive2 { name="Rrdrand"; version="0.1-16"; sha256="0j9yyvq8r1cgwj3kw1ak6hyazr67f2q0c1m651wdm0wcvm1ajx7f"; depends=[]; };
   RsSimulx = derive2 { name="RsSimulx"; version="2.0.0"; sha256="11ji1fvf6rclzh8yw1d7d4zkfzsyw4jsfwyhxlx9j0kqyr0jz5bc"; depends=[ggplot2 gridExtra]; };
-  Rsagacmd = derive2 { name="Rsagacmd"; version="0.1.2"; sha256="0zj9a63hq8pm592lvf3n62pzn0lfkh02d4v4mkqhgixx7jaxyz2x"; depends=[foreign generics processx raster rgdal rlang rvest sf stars stringr terra tibble]; };
+  Rsagacmd = derive2 { name="Rsagacmd"; version="0.2.0"; sha256="1z92fk7j2n6zzplfc3xlhnaynn2i2cp6cq6hw621fmnf09ccq005"; depends=[foreign generics processx raster rgdal rlang rvest sf stars stringr terra tibble]; };
   Rsampling = derive2 { name="Rsampling"; version="0.1.1"; sha256="14rp3j7iaii4rc3jkbijmbgvlagxxqjkz3vvfwwpxix43rsi8zsk"; depends=[]; };
   Rsconctdply = derive2 { name="Rsconctdply"; version="0.1.3"; sha256="12xc1laxgivv4szp8341pvhmxnzzzzc2s4jhnqsqrbx71lbd9szg"; depends=[dplyr rjson rsconnect]; };
   Rserve = derive2 { name="Rserve"; version="1.8-10"; sha256="0b2x6kqrc23xah6bg7c6ncmq8wkj4z898r2qjwjyinsq965a4qxg"; depends=[]; };
@@ -4658,7 +4663,7 @@ in with self; {
   Rtwalk = derive2 { name="Rtwalk"; version="1.8.0"; sha256="0zxf66lsfq8by40flv34xzd5yy0wa1ah9li1d0h7f0yh9nbwhxl5"; depends=[]; };
   Runiversal = derive2 { name="Runiversal"; version="1.0.2"; sha256="0667mspsjydmxi848c6wsf14gz72bmdj9b3lilma92b7fhqnv7ai"; depends=[]; };
   Runuran = derive2 { name="Runuran"; version="0.35"; sha256="15yndyw3rlxkb1mqq8db5csc6xl1zjyhrgzgx4b7iln59l3dgwfr"; depends=[]; };
-  Rvcg = derive2 { name="Rvcg"; version="0.20.2"; sha256="04kwn7hp1gyw2daxg2vwfalhggj7x3vl03qd9m0wr5nsccjd29cy"; depends=[Rcpp RcppArmadillo RcppEigen]; };
+  Rvcg = derive2 { name="Rvcg"; version="0.21"; sha256="13b3l72ii7ndzmglf48xz1lm7kkpsca2q6148ihgbrpnv9n0w5r1"; depends=[Rcpp RcppArmadillo RcppEigen]; };
   Rvmmin = derive2 { name="Rvmmin"; version="2018-4.17.1"; sha256="0kl1h4mlvb1bngb40r3dhrjkpnh3lsqddis65hbjzm2pzz20l02m"; depends=[optextras]; };
   Rvoterdistance = derive2 { name="Rvoterdistance"; version="1.1"; sha256="16il36hkq1j6gyl5d8bx5khiiv6fy2m8vkhwiaaiqsliw2sspy4j"; depends=[Rcpp]; };
   Rwave = derive2 { name="Rwave"; version="2.6-0"; sha256="1si4iambn5kxagc24gy83hlvv5zgypz6dqxbzk24qxzfwglkhqzb"; depends=[]; };
@@ -4668,7 +4673,7 @@ in with self; {
   Rwordseg = derive2 { name="Rwordseg"; version="0.3-2"; sha256="10jhfalh45rrcm76hwz4b5yl408ndx2wkr0i3q1avx6z6i45d8s6"; depends=[HMM tmcn]; };
   Rwtss = derive2 { name="Rwtss"; version="0.9.1"; sha256="0ihpn96l0bj34ph747q7rfq78sbjjb4hhdjr2a7agc97rrggcr94"; depends=[assertthat dplyr geosphere ggplot2 httr jsonlite lubridate magrittr purrr reshape2 stringr tibble zoo]; };
   RxCEcolInf = derive2 { name="RxCEcolInf"; version="0.1-5"; sha256="01n74xnhz1fdvb63g0lxkzsdp1frspin4a764l358immjivdrx2v"; depends=[coda lattice MASS MCMCpack mvtnorm]; };
-  RxODE = derive2 { name="RxODE"; version="1.1.4"; sha256="108anb3zyyr378qwnsf1mdxsmkl3h333b4fzclr9xc351x0j1rdm"; depends=[assertthat backports BH checkmate cli dparser ggplot2 inline lotri magrittr memoise PreciseSums qs Rcpp RcppArmadillo RcppEigen rex sitmo StanHeaders sys]; };
+  RxODE = derive2 { name="RxODE"; version="1.1.5"; sha256="055g910dwn3v64mqqaidxhk4n6kwfyq3qpvp1grppzz50a0sz2zj"; depends=[assertthat backports BH checkmate cli dparser ggplot2 inline lotri magrittr memoise PreciseSums qs Rcpp RcppArmadillo RcppEigen rex sitmo StanHeaders sys]; };
   RxnSim = derive2 { name="RxnSim"; version="1.0.3"; sha256="0fi4aic2brfbl6rsnnfwqq7l8ygvlmr98w0v749l3djpgn7sfrig"; depends=[data_table fingerprint rcdk rJava]; };
   Ryacas = derive2 { name="Ryacas"; version="1.1.3.1"; sha256="0c258p7ibas4xbq1wh8c1nfqf6r9d0hicrf8mkkyriw4mb6wmzqq"; depends=[magrittr Rcpp]; };
   Ryacas0 = derive2 { name="Ryacas0"; version="0.4.3"; sha256="1qsj6hbydi923bvc8qy1k34nl73xf3fsmr5ww3dw9gzn1kzg2470"; depends=[Rcpp settings xml2]; };
@@ -4677,7 +4682,7 @@ in with self; {
   SACOBRA = derive2 { name="SACOBRA"; version="1.2"; sha256="1v45l56vifkg3v2bfhk3kfg4fn0dfvrjcgy13zzymm8blr7vazi5"; depends=[mgcv R6 testit]; };
   SADEG = derive2 { name="SADEG"; version="1.0.0"; sha256="02ilykbdanx1isbd80c43hqpzkckq6dg40y0rklcnck6v96qky3n"; depends=[]; };
   SADISA = derive2 { name="SADISA"; version="1.2"; sha256="0yn7f360wl5ykys5zln159xh2h8bx7zb5ddwhv1migjlqry506hp"; depends=[DDD pracma]; };
-  SAEval = derive2 { name="SAEval"; version="0.1.1"; sha256="036k13q0746rcshpwzrf33mrwa8c3i4bdh14s53xngzzdfxckxlr"; depends=[car ggplot2 ggspatial lmtest]; };
+  SAEval = derive2 { name="SAEval"; version="0.1.3"; sha256="02zdxk35f49px9z4hdn09x4v0jxyjzb48kk02w112faf86b3gvmb"; depends=[car ggplot2 ggspatial lmtest]; };
   SAFARI = derive2 { name="SAFARI"; version="0.1.0"; sha256="10fmav9dbq5kbgy8gjsp3561vi46bjvkh2wqjs39vx5z8x1ml7i3"; depends=[caTools EBImage lattice png]; };
   SAFD = derive2 { name="SAFD"; version="2.1"; sha256="078ki9wrmcf80bwhx4d56gas79xrc17a0081i13yxvjqn6w7f7jd"; depends=[]; };
   SAGMM = derive2 { name="SAGMM"; version="0.2.4"; sha256="18ig7ncmrfs5cyc28xpbqk9zjhwqfp7gwix7y2v1j4j2wbdc2hzs"; depends=[lowmemtkmeans mclust MixSim Rcpp RcppArmadillo]; };
@@ -4690,7 +4695,7 @@ in with self; {
   SAMTx = derive2 { name="SAMTx"; version="0.3.0"; sha256="18r03w74fcra3c0xa76jnkkms9pjirdmgb2k1dnz7symqf9cvc5l"; depends=[BART]; };
   SAMUR = derive2 { name="SAMUR"; version="0.6"; sha256="0iyv7ljjrgakgdmpylcxk3m3xbm2xwc6lbjvl7sk1pmxvpx3hhhc"; depends=[Matching]; };
   SAMURAI = derive2 { name="SAMURAI"; version="1.2.1"; sha256="02fipbjcsbp2b2957x6183z20icv1yly2pd1747nyww9bmpa7ycm"; depends=[metafor]; };
-  SAMtool = derive2 { name="SAMtool"; version="1.2.5"; sha256="0br63g50x2pldf1xy72ji57ajkzil4jvw118bjarqjkjz68yk2ak"; depends=[corpcor dplyr gplots MSEtool RcppEigen rmarkdown snowfall TMB vars]; };
+  SAMtool = derive2 { name="SAMtool"; version="1.2.6"; sha256="14r6mpcq77xlcj5dzffi5kf9bcdw84jml534049y5kndnipgs7da"; depends=[corpcor dplyr gplots MSEtool RcppEigen rmarkdown snowfall TMB vars]; };
   SAPP = derive2 { name="SAPP"; version="1.0.8"; sha256="1lb148s8rdx1phmx8ihncgb45iqxzracxznys7zyzs8qcf6hm5wq"; depends=[]; };
   SAR = derive2 { name="SAR"; version="1.0.3"; sha256="1cnf0hsq82lzssvz5xs2abvnrjxda0g6mjx70a1j223zdwjqmw64"; depends=[AzureRMR AzureStor dplyr httr jsonlite Matrix R6 Rcpp RcppArmadillo RcppParallel]; };
   SARP_compo = derive2 { name="SARP.compo"; version="0.1.5"; sha256="17pvgc7alv59lxnrz1rj5gdl2lg90jxfwkyn8j802n22r3bmzcsm"; depends=[car igraph]; };
@@ -4698,7 +4703,6 @@ in with self; {
   SAScii = derive2 { name="SAScii"; version="1.0"; sha256="0nq859xmrvpbifk8q1kbx3svg61rqdg8p8gr1pn85fr0j3w7h666"; depends=[]; };
   SASmarkdown = derive2 { name="SASmarkdown"; version="0.4.3"; sha256="0jc21ylflvv4snik13731acxh9zw79s7hpswk58p2wzvavq8k9zn"; depends=[knitr]; };
   SASmixed = derive2 { name="SASmixed"; version="1.0-4"; sha256="0491x4a3fwiy26whclrc19alcdxccn40ghpsgwjkn9sxi8vj5wvm"; depends=[]; };
-  SASxport = derive2 { name="SASxport"; version="1.7.0"; sha256="1na94lxrn8kbhxpiflg14nkdx13rjq9bvvqbxyxh1mq0q7vz7a2l"; depends=[Hmisc stringi]; };
   SAVER = derive2 { name="SAVER"; version="1.1.2"; sha256="1s1kw8idkaj7j90fw4qn9k0wd4vz0sblsk06ry6lm4afcar0p158"; depends=[doParallel foreach glmnet iterators Matrix]; };
   SAutomata = derive2 { name="SAutomata"; version="0.1.0"; sha256="0d9q7bm2f7s4aslml40n43vwcdkc8rnn9ygydccwi4b9a7y23k58"; depends=[]; };
   SBAGM = derive2 { name="SBAGM"; version="0.1.0"; sha256="0vb1679016b0bhz2xlka9wgr2fxwa0447ymfncm1n5fks60rrnnf"; depends=[forecast MSGARCH rugarch]; };
@@ -4750,23 +4754,25 @@ in with self; {
   SDT = derive2 { name="SDT"; version="1.0.0"; sha256="1jwpfd1pnzy9wcl90qv5bgwi19shsw9064dvml9zwbif8yw8dzjj"; depends=[quadprog]; };
   SDaA = derive2 { name="SDaA"; version="0.1-3"; sha256="0z10ba4s9r850fjhnrirj2jgnfj931vwzi3kw9502r5k7941lsx0"; depends=[]; };
   SE_EQ = derive2 { name="SE.EQ"; version="1.0"; sha256="09fqx2rcqpiv072l6gqgfz9pdhas98q4kkkm7m4y28k13q2gicgl"; depends=[MASS]; };
+  SEA = derive2 { name="SEA"; version="2.0.1"; sha256="03iqvs95v2q252dl62z39i0nwg8n44g1p9ljbmb1nx6zq98fd7bw"; depends=[data_table doParallel foreach KScorrect MASS shiny]; };
   SEAGLE = derive2 { name="SEAGLE"; version="1.0.1"; sha256="1j5wjjw7fl2m4h9brg8dyahf1vmn9wgc7jaajaz6z1xqm6fc0d9k"; depends=[CompQuadForm Matrix]; };
   SEAsic = derive2 { name="SEAsic"; version="0.1"; sha256="1mg01sag6n1qldjvmvbasac86s7sbhi4k99kdkav2hdh6n9jg467"; depends=[]; };
   SECFISH = derive2 { name="SECFISH"; version="0.1.7"; sha256="0yd9k6anz9g4psg5kh1bhp0lr1i4y7in1m0mxk4qp14nl1zqy4fy"; depends=[ggplot2 Hmisc optimization]; };
   SECP = derive2 { name="SECP"; version="0.1-4"; sha256="0a4j0ggrbs0jzcph70hc4f5alln4kdn2mrkp3jbh321a6494kwl1"; depends=[SPSL]; };
   SEERaBomb = derive2 { name="SEERaBomb"; version="2019.2"; sha256="0rlah68jbaw4qbqq5rnlrm6m9ckz7igbsay6iq1yvk4gy24p9bfh"; depends=[DBI demography dplyr forcats ggplot2 labelled LaF mgcv openxlsx plyr purrr Rcpp readr reshape2 rgl RSQLite scales stringr survival tibble tidyr WriteXLS]; };
   SEIRfansy = derive2 { name="SEIRfansy"; version="1.1.1"; sha256="0xnyrsv04n22s71v1wajwpccwk78q27fgry9dhxxzw8a6yd082x8"; depends=[arm DescTools dplyr ggplot2 ggpubr knitr magrittr patchwork pbapply rlang scales]; };
-  SEL = derive2 { name="SEL"; version="1.0-2"; sha256="1nrk0fx6ff330abq8askvp0790xnfv00m3sraqcr32hciw6ks421"; depends=[lattice quadprog]; };
+  SEL = derive2 { name="SEL"; version="1.0-3"; sha256="0nkr6m4aq4i0vq19v04lfkjmmjii1dfqsj1mfwagwsw6ain1jarr"; depends=[lattice quadprog]; };
   SELF = derive2 { name="SELF"; version="0.1.1"; sha256="1yafjhxwsanr33dqy7w9x61ghldr29s8k6h68idq6nnfb77ghjyx"; depends=[bnlearn CompareCausalNetworks data_table Rcpp xgboost]; };
   SEMID = derive2 { name="SEMID"; version="0.4.0"; sha256="1888l4m7d944j4cmh6l19fjmrsh6r6xlfwjzpvyanxd769xmyfzc"; depends=[igraph R_methodsS3 R_oo R_utils]; };
-  SEMgraph = derive2 { name="SEMgraph"; version="1.0.5"; sha256="1yr77c46y009h7ra842flvlmi7q1n9bk6ji9wlwkyl62caqn5ksi"; depends=[boot cate corpcor dagitty diffusr flip gdata ggm GGMncv glmnet graph igraph lavaan Matrix pbapply protoclust RcppEigen Rgraphviz]; };
+  SEMgraph = derive2 { name="SEMgraph"; version="1.1.0"; sha256="11r3iqwascq0lwdn2mazanhfljxvqzahqpzzqbska1ww3ywwx5yy"; depends=[boot cate corpcor dagitty diffusr flip gdata ggm GGMncv glmnet graph igraph lavaan leaps Matrix pbapply protoclust RcppEigen Rgraphviz]; };
   SEMrushR = derive2 { name="SEMrushR"; version="0.1.0"; sha256="19prwbh429ra69nz3nx4vzqmb46xssci74rk9mhpnzbi52ycg5gd"; depends=[]; };
   SEMsens = derive2 { name="SEMsens"; version="1.0.2"; sha256="18qcwhn1j9ci6338spwgym9g8590p5nc5sdvnpby3xrs9wv76nqs"; depends=[lavaan]; };
   SETPath = derive2 { name="SETPath"; version="1.0"; sha256="1dpgmki0dhph13h1fd3mbf308746wccgfz5g5gdm7bwbjnmjzd98"; depends=[]; };
   SEchart = derive2 { name="SEchart"; version="0.1"; sha256="19gqcd6xzwg37nzc67p88ip4i0v2f59ds85xfw9qq8lybvdm76k2"; depends=[JM]; };
   SEofM = derive2 { name="SEofM"; version="0.1.0"; sha256="0662f4ayr05h33myxbfal682fxfwpl3a94kv4bzc8hil9bcqcznf"; depends=[]; };
+  SEset = derive2 { name="SEset"; version="1.0.1"; sha256="127z85m95xn46s7lk3sdzrs73mi7pa2smx9r80fnl678f2kyz6lm"; depends=[combinat Matrix Rdpack]; };
   SFS = derive2 { name="SFS"; version="0.1.4"; sha256="1pig64pj30yyfzyv97f74gshw4lnklrx0npp4da3absk6anb3iv7"; depends=[Rcpp RcppArmadillo]; };
-  SFSI = derive2 { name="SFSI"; version="1.0.1"; sha256="1k2bshl8grivzy1rmwlp4f2v994zv83rkw3ia72fa1q85wrwdhab"; depends=[float]; };
+  SFSI = derive2 { name="SFSI"; version="1.1.0"; sha256="13ishxa3482dl1w2j43jkpb4cky95hnrzyjbj2cpk5cn860zvxs1"; depends=[float]; };
   SFtools = derive2 { name="SFtools"; version="0.1.0"; sha256="08k2ywkpk1pzp0qcwm7qx9gnv9hglspl9hrsrrfblagdpkw6rm2x"; depends=[doParallel ff wordspace]; };
   SGB = derive2 { name="SGB"; version="1.0.1"; sha256="0j48fx9bf2k8k3ykp629jfi1jbs23673nz6rg54rvcrrsl6hb9v3"; depends=[alabama Formula MASS numDeriv]; };
   SGL = derive2 { name="SGL"; version="1.3"; sha256="055mx876ydg4kzvcm6rxfkxqz849zgzkzsskvrfgwj9fs1k6ja2v"; depends=[]; };
@@ -4775,7 +4781,7 @@ in with self; {
   SHAPforxgboost = derive2 { name="SHAPforxgboost"; version="0.1.1"; sha256="106nsf02b1w3yshb55lwnyw1rl1a60162v2wk8znjz3b4ln3mqj5"; depends=[BBmisc data_table ggExtra ggforce ggplot2 ggpubr RColorBrewer xgboost]; };
   SHELF = derive2 { name="SHELF"; version="1.8.0"; sha256="05kr2y5wqbpw3ajf5pbhhfyqv7n3zw3kb7ba2j24sr62jlin3avv"; depends=[ggExtra ggplot2 ggridges gridExtra Hmisc MASS rmarkdown scales shiny shinyMatrix tidyr]; };
   SHIP = derive2 { name="SHIP"; version="1.0.2"; sha256="0b83cclibdz1r7sz968nmca4najwgps9wrdlsh4gxrl7fq40k4ln"; depends=[]; };
-  SHT = derive2 { name="SHT"; version="0.1.5"; sha256="1yk2y4j8b07lh34r7cpwq6amw7940x6mwn5s1487lz8j26670xmx"; depends=[fastclime pracma Rcpp RcppArmadillo Rdpack]; };
+  SHT = derive2 { name="SHT"; version="0.1.6"; sha256="1pxw2fbdzczx33w4fgkikxqchwimwc7rxq5bxinf230a94nl4qwr"; depends=[fastclime pracma Rcpp RcppArmadillo Rdpack]; };
   SI = derive2 { name="SI"; version="0.2.0"; sha256="0i6kpaw5yk39skm77nf56ai25clkparz3l8qx0223jrmdqbf97b7"; depends=[]; };
   SIBER = derive2 { name="SIBER"; version="2.1.6"; sha256="1ymr1y2c984nnjkj5nwc1mi4ixdwg8d191nn58i0dvckzm922z80"; depends=[dplyr ggplot2 hdrcde magrittr mnormt purrr rjags spatstat spatstat_geom spatstat_utils tidyr]; };
   SIBERG = derive2 { name="SIBERG"; version="2.0.2"; sha256="0wfx1dpjd09gb736sm2xhrkba26nwnzn5x575h39n2g33jwqqy2r"; depends=[mclust]; };
@@ -4796,9 +4802,8 @@ in with self; {
   SITH = derive2 { name="SITH"; version="1.1.0"; sha256="1626nsbnz4fh49wymxm1cqb0nrfyxhmh9fmdxr62dzj5b53amknc"; depends=[Rcpp scatterplot3d]; };
   SIfEK = derive2 { name="SIfEK"; version="0.1.0"; sha256="037ps6yfy7w6i8vm0b78c8w9kdmw312dl5nc2qz86rfk8kjg7w27"; depends=[MASS numDeriv ramcmc smfsb]; };
   SK = derive2 { name="SK"; version="1.1"; sha256="19yg7yc2k4zz29bh42lw2jpjvkdj33f26xkfs8vz8lpp98yjf2vx"; depends=[FitAR GD MASS RColorBrewer rgeos rtop sp]; };
-  SKAT = derive2 { name="SKAT"; version="2.0.1"; sha256="1iz8s2r295w36m44s2frrz00q4zm78fyzx7kprmnz4kbg3spqqy8"; depends=[Matrix SPAtest]; };
+  SKAT = derive2 { name="SKAT"; version="2.2.4"; sha256="1gq8zy3rrpsx09bgli30cx32k73yn4jzqig250s8rl8aasb9hd1b"; depends=[Matrix RSpectra SPAtest]; };
   SKNN = derive2 { name="SKNN"; version="3.0"; sha256="1zcsyc8x4cfkj5im9hsv091f2hca3y09fra3y0rl19jiwzvpjgy9"; depends=[]; };
-  SLBDD = derive2 { name="SLBDD"; version="0.0.2"; sha256="1ixynzrj6vdxn406zcisrkhf9yr172s80k70dishrainkpw2dk58"; depends=[cluster corpcor fGarch forecast glmnet gsarima imputeTS MASS Matrix matrixcalc MTS rnn TSclust tsoutliers]; };
   SLC = derive2 { name="SLC"; version="0.3"; sha256="0l0y1sjj0glsb7vwla99ijclcgaq2y85bgz1wqm348n4shsmm2rs"; depends=[]; };
   SLDAssay = derive2 { name="SLDAssay"; version="1.8"; sha256="04ykj7s9kpvg5bmf7x16154kfpdy45b7y7hhyh31sxlscv7c5bbp"; depends=[]; };
   SLEMI = derive2 { name="SLEMI"; version="1.0.1"; sha256="07bsy0v8grx1l5837jr8mdab08521kxivhwr59q3s0v6f08683yd"; depends=[caret corrplot doParallel e1071 foreach ggplot2 ggthemes gridExtra Hmisc nnet reshape2 stringr]; };
@@ -4807,7 +4812,7 @@ in with self; {
   SLICER = derive2 { name="SLICER"; version="0.2.0"; sha256="10i0hfl6js26n8xwk9pldzm9vv7hmii6gzj04lhqy0g3njds25kp"; depends=[alphahull igraph lle]; };
   SLIDE = derive2 { name="SLIDE"; version="1.0.0"; sha256="0x4fm29r7icg33k8gw3vqvxib8n9a1xwg484x9yffybips9ka22c"; depends=[]; };
   SLModels = derive2 { name="SLModels"; version="0.1.2"; sha256="1c9r4kd2kfh2cn82kngzcqhdmxc4i7djp436s116gy9xs2gd2042"; depends=[ROCR]; };
-  SLOPE = derive2 { name="SLOPE"; version="0.4.0"; sha256="18lw7csji9n10zk4lhcvy9193sra08pwvh1yrhl33bl17m026nkv"; depends=[foreach lattice Matrix Rcpp RcppArmadillo]; };
+  SLOPE = derive2 { name="SLOPE"; version="0.4.1"; sha256="0v8zjh4vy6s46s5dv71jizg7dad2x97wbr62p6cc5c3cfyl683wk"; depends=[foreach lattice Matrix Rcpp RcppArmadillo]; };
   SLTCA = derive2 { name="SLTCA"; version="0.1.0"; sha256="0pq87fbi79srgjblv40yyj3w1dzf115kfidp8gi564l8xf0qilqg"; depends=[geepack Matrix mvtnorm VGAM]; };
   SMARTAR = derive2 { name="SMARTAR"; version="1.1.0"; sha256="0ymhka4pjlqlnpv47abmc76ggijfw83i3jp9mrspnzcnb4d378xm"; depends=[MASS]; };
   SMARTbayesR = derive2 { name="SMARTbayesR"; version="2.0.0"; sha256="15s6vzxgbskjvgd91q0vb9qxmmsj391bjbw7s51j879cfqd16xg2"; depends=[LaplacesDemon]; };
@@ -4823,7 +4828,7 @@ in with self; {
   SMM = derive2 { name="SMM"; version="1.0.2"; sha256="1g1c7ssdcnzgv6b221ya1xrypg2ksahc7qj1042j8nlx5wg29cld"; depends=[DiscreteWeibull seqinr]; };
   SMMA = derive2 { name="SMMA"; version="1.0.3"; sha256="1nwxp447m1igm7dlxw5kqw472f8470svwx9awjp2d84m66wplinr"; depends=[Rcpp RcppArmadillo]; };
   SMME = derive2 { name="SMME"; version="1.0.1"; sha256="1iklrj9smjmxjjip8v64ph6gisg5821glck26cy7s15pcj5mdbz5"; depends=[Rcpp RcppArmadillo]; };
-  SMMT = derive2 { name="SMMT"; version="1.0.7"; sha256="1jbxz905zaxv19rlw9xs29lnc56nyhcslr322kz2rdx1jk83m28f"; depends=[curl dplyr rvest tibble XML xml2]; };
+  SMMT = derive2 { name="SMMT"; version="1.1.0"; sha256="1zjvdjz75qhfdm4maiq2rw9bzqa2xls15vpr3556iba5aq4hysv7"; depends=[curl dplyr rvest tibble XML xml2]; };
   SMNCensReg = derive2 { name="SMNCensReg"; version="3.0"; sha256="06542jacy74mw6ic0i1ml09pn45sll96bya7dqja6bg9yp0m6bvr"; depends=[Matrix PerformanceAnalytics]; };
   SMPracticals = derive2 { name="SMPracticals"; version="1.4-3"; sha256="0zxq84f9i3b86xx6msb25b61gyj9k09iab2b7wg4d93yas9qzayf"; depends=[ellipse MASS nlme survival]; };
   SMR = derive2 { name="SMR"; version="2.0.1"; sha256="0qy56fmismcjklpf29ic2gi1g8ajdjpxsl0akb9cqzyisyf641ia"; depends=[]; };
@@ -4847,7 +4852,7 @@ in with self; {
   SOMEnv = derive2 { name="SOMEnv"; version="1.1.2"; sha256="03g1c9ip0bmc5zhnzami3f525m9ic6v5gdhaxc8s7f1nxjf2fcdy"; depends=[colourpicker dplyr kohonen openair plyr rlist shiny shinycssloaders shinycustomloader]; };
   SOMbrero = derive2 { name="SOMbrero"; version="1.4-1"; sha256="0b9w8xr067hz2lzvxn7xz3llzhyqynskh08rsx7d73gnm56kdcp2"; depends=[ggplot2 ggwordcloud igraph interp markdown metR scatterplot3d shiny]; };
   SOP = derive2 { name="SOP"; version="1.0"; sha256="1c9haq0ds90rwhvmdicaxhzf7vz2m343491sw9qw7w7fbs4fn9fp"; depends=[MASS]; };
-  SOPC = derive2 { name="SOPC"; version="0.0.1"; sha256="0xji7c2v8rmsdvpk8g35m8bx9lk0cy29yc5f4q8zv8qjxiy9yz7v"; depends=[elasticnet]; };
+  SOPC = derive2 { name="SOPC"; version="0.0.2"; sha256="0j2h0jc3c7nvqgx76ycakm3a3xq95ixzvamwxd1p54kykr7c6wrf"; depends=[elasticnet]; };
   SOPIE = derive2 { name="SOPIE"; version="1.6"; sha256="1q6991l1wldywv685dv1pkd8ma8jlx4inqr6p1fw1xr7ymm8b1q2"; depends=[ADGofTest circular]; };
   SOR = derive2 { name="SOR"; version="0.23.1"; sha256="1accs4bqy080nfmgkdg7bgamdrcwcn01y6nydvvq12w3v8asdvwh"; depends=[Matrix]; };
   SOUP = derive2 { name="SOUP"; version="1.1"; sha256="0k8nlvl4681cz07xjazprcc0jhknfa5hgr7w1qxxmgrp3sprr8r4"; depends=[tensor]; };
@@ -4862,6 +4867,7 @@ in with self; {
   SPCALDA = derive2 { name="SPCALDA"; version="1.0"; sha256="1bmp2zz0favmpyp0ap8a2r1mg1nlan7zg5cj75drdnfpqlsn5vgl"; depends=[MASS]; };
   SPCAvRP = derive2 { name="SPCAvRP"; version="0.4"; sha256="10bvr4lqnim40fihq495a4fy4f33pvfd7gsaqjj9bh6gy0z8y4mi"; depends=[MASS]; };
   SPCDAnalyze = derive2 { name="SPCDAnalyze"; version="0.1.0"; sha256="0zaxlc4dw678s0v22ghv7mc4vqsgkcnmbxh7065w6qj9vm7pg5kz"; depends=[lme4 nlme plyr]; };
+  SPCompute = derive2 { name="SPCompute"; version="1.0.1"; sha256="18hcdwf78ly9nsl2r4sfvg7r9wk6q6rdgd6c5vvna8l0bmcrji6s"; depends=[Matrix]; };
   SPEDInstabR = derive2 { name="SPEDInstabR"; version="1.9"; sha256="0z27h9yl5lyayqa1wqj700kxrgyi1h13bqm3bbq8zml91dyq209c"; depends=[]; };
   SPEI = derive2 { name="SPEI"; version="1.7"; sha256="0lj7d3bbik7q4di5nqc3a1rn94z2y2v9x45r1jjkvgf03frj96qd"; depends=[ggplot2 lmomco]; };
   SPIAssay = derive2 { name="SPIAssay"; version="1.1.0"; sha256="0y02122lj4v95g62w84jmdjdazfz3rch133aid5sgakj2kv68cvh"; depends=[]; };
@@ -4871,8 +4877,8 @@ in with self; {
   SPLICE = derive2 { name="SPLICE"; version="1.1.0"; sha256="1jcw7nikla75aqfbplv2cklq19rfd8naamldvllzy2pjb879vqkk"; depends=[lifecycle SynthETIC zoo]; };
   SPODT = derive2 { name="SPODT"; version="0.9-1"; sha256="01yq429a4s63855bwpn2mqjj2k3cz4187kfpi7n7qqdpdvmxz109"; depends=[rgdal sp tree]; };
   SPORTSCausal = derive2 { name="SPORTSCausal"; version="1.0"; sha256="1ww1wi3kflwj1f5slfv0mfi7gbaj7y8rk1m3n15szpxb9zm8grks"; depends=[CausalImpact keras]; };
-  SPOT = derive2 { name="SPOT"; version="2.5.18"; sha256="1zgcvz78q8hd9bzhayv35rwgwansank1d9yb2qyihy3m0jw6c428"; depends=[DEoptim ggplot2 glmnet laGP MASS nloptr plgp plotly randomForest ranger rgenoud rpart rsm]; };
-  SPOTMisc = derive2 { name="SPOTMisc"; version="1.2.18"; sha256="0k23bpnac9fzkin1fa23kix21jid6ycv3akj7vxhgcx64mslvbkm"; depends=[benchmarkme callr emoa ggsci jsonlite keras mlr plotly RColorBrewer rpart_plot sensitivity SimInf smoof SPOT]; };
+  SPOT = derive2 { name="SPOT"; version="2.8.2"; sha256="1z3hc29lk8vycrnq4kf5gqzglblgyj7ijg4sghk6vfb1apvrndsg"; depends=[DEoptim ggplot2 glmnet laGP MASS nloptr plgp plotly randomForest ranger rgenoud rpart rsm]; };
+  SPOTMisc = derive2 { name="SPOTMisc"; version="1.7.0"; sha256="09gjvw0jvdn5gys41afzkdkyw0rc4lvx2w9l317wrx018l72wva6"; depends=[benchmarkme callr emoa ggsci jsonlite keras magrittr mlr OpenML plotly RColorBrewer reticulate rpart_plot sensitivity smoof SPOT tensorflow tfdatasets]; };
   SPPcomb = derive2 { name="SPPcomb"; version="0.1"; sha256="1kn3pi3c7g7waill1grm382ixbvnc7z8pbgzqd94hxqzgkivhid7"; depends=[nleqslv]; };
   SPREDA = derive2 { name="SPREDA"; version="1.1"; sha256="0fn4p5apjq8zgd3zms2b88ga5wbsv86y59ac5x06w75rf071xglv"; depends=[nlme survival]; };
   SPRT = derive2 { name="SPRT"; version="1.0"; sha256="1r4pfqh8k5avi8qgpk5x1cy8lmkn341yvjvd2r7wqwb3mr242r0v"; depends=[]; };
@@ -4880,7 +4886,7 @@ in with self; {
   SPSP = derive2 { name="SPSP"; version="0.1.1"; sha256="0bzlgjijwp5y6lk9hjqc2p8b1i6mp8jd7j7gsl47whc3lavr1nn8"; depends=[glmnet lars Rcpp]; };
   SPUTNIK = derive2 { name="SPUTNIK"; version="1.4"; sha256="1sspsvll7b03z2ag2iixydcbbjr2glg1n6k7m1lapq4ra77arh7i"; depends=[doSNOW e1071 edgeR foreach ggplot2 imager infotheo irlba reshape spatstat spatstat_core spatstat_data spatstat_geom spatstat_linnet spatstat_sparse spatstat_utils testthat viridis]; };
   SPYvsSPY = derive2 { name="SPYvsSPY"; version="0.1.1"; sha256="1hxc73wwrzqh1r1xr9yd4hy4ma24virg4iv978lfyc9f9n56znp5"; depends=[]; };
-  SPlit = derive2 { name="SPlit"; version="1.1"; sha256="0vxbwclcipf0wz391yp5qb8ndxqxq8pzkf4vz7fszdb70yrqa5b7"; depends=[Rcpp RcppArmadillo]; };
+  SPlit = derive2 { name="SPlit"; version="1.2"; sha256="0n9458sj5sw4k9qd11gvmqmjf9hy1hh0bwx1jzm6r901l1wbp7xi"; depends=[Rcpp RcppArmadillo]; };
   SPmlficmcm = derive2 { name="SPmlficmcm"; version="1.4"; sha256="1acs3560a7h6xx286m40abr9b7i5qihn6wni8flj0biahmsszzx6"; depends=[nleqslv]; };
   SPreg = derive2 { name="SPreg"; version="1.0"; sha256="1702i86qcbnqyi7r5wc2ciyk3l46329kmnrz91jzqq85z8cwgak1"; depends=[sn ucminf]; };
   SQB = derive2 { name="SQB"; version="0.4"; sha256="12ii8xlwd2r77bj76j7l43898ras25z3plhhv106jaklhpcnk23m"; depends=[caret nnet pls rpart]; };
@@ -4889,9 +4895,9 @@ in with self; {
   SQRL = derive2 { name="SQRL"; version="1.0.0"; sha256="1jlyrq42sg8r7fzs5sk0j8rir1mz3ypjy76mk00y8lm789knnzd7"; depends=[RODBC]; };
   SQUAREM = derive2 { name="SQUAREM"; version="2021.1"; sha256="0n1s32l9p4vdm3h5q6g43s0qbpzry08difsh0yay80wrla6f3rb6"; depends=[]; };
   SRCS = derive2 { name="SRCS"; version="1.1"; sha256="13zf3cqs53w68f9zc1fkb9ql84rvzn7g1hbykqrbvss8hjaq8x1r"; depends=[]; };
-  SRS = derive2 { name="SRS"; version="0.2.2"; sha256="1f94imnb12gnl2h815l080l3a1fqz7hz30277pvansyyz3ihvani"; depends=[DT shiny shinybusy shinycssloaders vegan]; };
+  SRS = derive2 { name="SRS"; version="0.2.3"; sha256="0nx1sj91xkwplcmflq9c21zndaa4m21m9iqax86v947k070q48ql"; depends=[DT shiny shinybusy shinycssloaders vegan]; };
   SRTtools = derive2 { name="SRTtools"; version="1.2.0"; sha256="1203i6nqclx0faxyvhdaapmfxy8h95jj83svxriqh1hpava5s1dy"; depends=[magrittr]; };
-  SSBtools = derive2 { name="SSBtools"; version="1.2.2"; sha256="17xs0zdzsl0hy2hhgr8f7sb1cf5nxza4147198cq7lrrwx39flv7"; depends=[MASS Matrix stringr]; };
+  SSBtools = derive2 { name="SSBtools"; version="1.3.0"; sha256="1xis0yb8jp8g333ddrkfjprj4l8hlxkj1fzmglwx4sknklbcq66h"; depends=[MASS Matrix stringr]; };
   SSDL = derive2 { name="SSDL"; version="1.1"; sha256="0m05m00qsjyc69kix124z6nrplqv1yaaag7qxpiizbn664h9hmjb"; depends=[bigstatsr chickn doParallel doRNG foreach glmnet pracma Rcpp RcppArmadillo RcppParallel Rdpack reshape2 rmio]; };
   SSDM = derive2 { name="SSDM"; version="0.2.8"; sha256="19l78dkjk76ababkd7xsfn0fy99khfa4i502q4vllpvch4cjz51c"; depends=[dismo e1071 earth gbm ggplot2 mgcv nnet poibin randomForest raster reshape2 rpart scales shiny shinydashboard shinyFiles sp spThin]; };
   SSDforR = derive2 { name="SSDforR"; version="1.5.23"; sha256="1085fpal55nlix3qhym8kgmnhf8hhy2dpw71r90f4hqsrqdfkwjy"; depends=[MAd MASS metafor psych SingleCaseES TTR]; };
@@ -4922,6 +4928,7 @@ in with self; {
   STI = derive2 { name="STI"; version="0.1"; sha256="1p408y9w2h4ljaq0bsw7vc1xghczjprf558cyg6994m0nv5fh4c4"; depends=[fitdistrplus zoo]; };
   STMedianPolish = derive2 { name="STMedianPolish"; version="0.2"; sha256="0jzgcfhm09cccg2nwbvrmnkah1psbnmg26rc2n7lz26n4b20p3l2"; depends=[gstat maptools nabor reshape2 sp spacetime zoo]; };
   STMotif = derive2 { name="STMotif"; version="2.0.1"; sha256="07725wdm65lxmmivdipxd07yqi3syy7dl10shn4x60ahs0il91nw"; depends=[ggplot2 RColorBrewer reshape2 scales shiny]; };
+  STMr = derive2 { name="STMr"; version="0.1.3"; sha256="0vcfns09x0fcm5hdymp4xg6c33sw3ll66zgjn057652lb1ddyqxq"; depends=[dplyr ggplot2 ggstance magrittr nlme quantreg tidyr]; };
   STOPES = derive2 { name="STOPES"; version="0.1"; sha256="0gv58nf0m67bfqc15c7n4gksqk7h661c9b55qapk210j259b7xbv"; depends=[changepoint glmnet MASS]; };
   STPGA = derive2 { name="STPGA"; version="5.2.1"; sha256="0mwjv9r7x925ljmbwk2fl0xvf2n2hnf5n5z5p5rxr57ywvirqw1b"; depends=[AlgDesign emoa scales scatterplot3d]; };
   STRMPS = derive2 { name="STRMPS"; version="0.5.8"; sha256="0vlmhrna0laqzjpbg4sgnscrli3cly2lc5d69n6iqfl213zsfz78"; depends=[Biostrings dplyr IRanges purrr ShortRead stringr tibble tidyr]; };
@@ -4935,8 +4942,8 @@ in with self; {
   SVN = derive2 { name="SVN"; version="1.0.1"; sha256="0n93lqb1f2s2qvzc8lrcqmr0fhd57xqbi0ymrqqmll31ns679m92"; depends=[data_table igraph memoise]; };
   SWIM = derive2 { name="SWIM"; version="1.0.0"; sha256="1pfrwxn4rha7a68b82lq18x6acyhjy9d8nn2hdwd9hhf576vkvhg"; depends=[ggplot2 Hmisc nleqslv plyr Rdpack reshape2]; };
   SWMPr = derive2 { name="SWMPr"; version="2.4.1"; sha256="1dqhsqigfbfj167mp2h0wfybaymj9zlywh5d3syrrmpr694f9kz5"; depends=[data_table dplyr ggplot2 gridExtra httr lattice maptools oce openair RColorBrewer reshape2 tictoc tidyr XML zoo]; };
-  SWMPrExtension = derive2 { name="SWMPrExtension"; version="2.1.1"; sha256="1d8lpz2ywr50m9w0a53rff26l33vx2a1lbx5hsiiq0mbg4m5r9jc"; depends=[broom dplyr EnvStats flextable ggplot2 ggthemes lubridate magrittr officer purrr RColorBrewer rlang scales sf SWMPr tidyr tidyselect]; };
-  SWTools = derive2 { name="SWTools"; version="0.2.3.0"; sha256="04csm7m9xrs4d5b37yy2hzi35m03rm6kqxmzh8lwqj5qbyd07gdp"; depends=[dplyr forcats ggmap ggplot2 httr hydroTSM jsonlite lubridate magrittr readr reshape2 rlang rmarkdown segmented sf sp stringr tibble tidyr zoo]; };
+  SWMPrExtension = derive2 { name="SWMPrExtension"; version="2.2.0"; sha256="0i4dvsd4g1nah9g3q6wxkrp5xynwmhg2a94msiwxgq0ffg11di1q"; depends=[broom dplyr EnvStats flextable ggimage ggplot2 ggthemes lubridate magrittr officer purrr RColorBrewer rlang scales sf SWMPr tidyr tidyselect]; };
+  SWTools = derive2 { name="SWTools"; version="0.2.3.1"; sha256="19641hnzqzrk35brfsls0ib5c9920h30mizzpfias3jvmijjdj7n"; depends=[dplyr forcats ggmap ggplot2 httr hydroTSM jsonlite lubridate magrittr readr reshape2 rlang rmarkdown segmented sf sp stringr tibble tidyr zoo]; };
   SYNCSA = derive2 { name="SYNCSA"; version="1.3.4"; sha256="0n9za302x638s666xs86zy94qch9wn0rln8xy6x9jymhhq9zn0kj"; depends=[FD permute RcppArmadillo vegan]; };
   SailoR = derive2 { name="SailoR"; version="1.2"; sha256="04qrnps40845ypapf37jg1c1g05nii6iwk4fv1x5xyca963hl5ii"; depends=[]; };
   Sample_Size = derive2 { name="Sample.Size"; version="1.0"; sha256="1vfnb2gg3rax4sxd81xqznfvh300nv45nn7zjsyrdjyg1n3ym7nw"; depends=[]; };
@@ -5008,6 +5015,7 @@ in with self; {
   ShapeSelectForest = derive2 { name="ShapeSelectForest"; version="1.4"; sha256="15ds3024qcvnq3pnbhpyd6hbif26mdzw1srqv44hwsllgzpi7602"; depends=[coneproj raster]; };
   ShapleyValue = derive2 { name="ShapleyValue"; version="0.2.0"; sha256="05ziyvvd81l0lx572in9snndnjdq8y4wkd8bxqs0y979l49yr6fd"; depends=[kableExtra MASS tidyverse]; };
   SharpeR = derive2 { name="SharpeR"; version="1.3.0"; sha256="1xq2m53n2gc706lyd16gccllx2wgwdrqkfpf79jwwdmipqfqnxjx"; depends=[matrixcalc]; };
+  SheetReader = derive2 { name="SheetReader"; version="1.0.1"; sha256="1n3shs0yvy5mxwqkiavldzq739bq96qh8skbcc1pr5iywpq9vxa6"; depends=[Rcpp]; };
   ShellChron = derive2 { name="ShellChron"; version="0.4.0"; sha256="1xb06zszwirn5l63qa9g99q9by58sdqpg8s6kiq70z5qqnlgiq5c"; depends=[dplyr ggplot2 ggpubr magrittr rtop scales tidyr zoo]; };
   ShiftConvolvePoibin = derive2 { name="ShiftConvolvePoibin"; version="1.0.0"; sha256="0pj3vynm8afns2kcwvmramxgbd0s2ksyyc5iha6p4dw2nz4hahc7"; depends=[]; };
   ShiftShareSE = derive2 { name="ShiftShareSE"; version="1.0.1"; sha256="09sm3frapxv1zhxy84wqyaxdk5jx62ijszfa34zlknlgivividfy"; depends=[Formula]; };
@@ -5025,7 +5033,7 @@ in with self; {
   SightabilityModel = derive2 { name="SightabilityModel"; version="1.4.2"; sha256="0hll6cfl0zkxvdbfs7cdmqazinyyrg9vk4px2gb9s1dqix7cyvv5"; depends=[formula_tools Matrix msm plyr survey]; };
   Signac = derive2 { name="Signac"; version="1.6.0"; sha256="1fh0n15snbj3cv1wfzl084188g9xsxxi4j511j3rvji3ik0nbd6z"; depends=[BiocGenerics data_table dplyr fastmatch future future_apply GenomeInfoDb GenomicRanges ggforce ggplot2 ggrepel ggseqlogo IRanges irlba lsa Matrix patchwork pbapply qlcMatrix Rcpp RcppRoll Rsamtools S4Vectors scales Seurat SeuratObject stringi tidyr tidyselect]; };
   SignacX = derive2 { name="SignacX"; version="2.2.5"; sha256="0b38k3lxca985mqwvbbdczkjnn2x79kga05yw995gb6d20cjh96v"; depends=[igraph jsonlite lme4 Matrix neuralnet pbmcapply RColorBrewer RJSONIO Seurat]; };
-  SignifReg = derive2 { name="SignifReg"; version="4.2"; sha256="0bgw6dkn15rlpcqfpbar3nxvcvwd0afa3lss4idnb65kvcyzzljk"; depends=[car]; };
+  SignifReg = derive2 { name="SignifReg"; version="4.3"; sha256="1f57zbc7746jr2hfgri29whw5nb7w8h9nwk2p2n851b1rf7q0mgp"; depends=[car]; };
   Sim_DiffProc = derive2 { name="Sim.DiffProc"; version="4.8"; sha256="16pzcs1g5ihza9a2glnkgd5pxi77l6w34vkn0vxcb78gc6syhbrd"; depends=[Deriv MASS]; };
   Sim_PLFN = derive2 { name="Sim.PLFN"; version="1.0"; sha256="1jmsydhpfv2z9cr99hfy8cairhkkxpwk4wnz1adixwxazkn7qfah"; depends=[DISTRIB FuzzyNumbers]; };
   SimBIID = derive2 { name="SimBIID"; version="0.2.1"; sha256="01gkkgxx5x9pkwsmpmf1rg4i0ls7fl6yv6pcg8gscr51bnxsrwpp"; depends=[coda dplyr ggplot2 mvtnorm purrr RColorBrewer Rcpp RcppArmadillo RcppXPtrUtils tibble tidyr]; };
@@ -5035,7 +5043,7 @@ in with self; {
   SimCorrMix = derive2 { name="SimCorrMix"; version="0.1.1"; sha256="1mx8xkg1nbh4x4xr6m672zyg00s3lky2sy5mz7dfkw40vz2bwi53"; depends=[BB ggplot2 MASS Matrix mvtnorm nleqslv SimMultiCorrData triangle VGAM]; };
   SimDesign = derive2 { name="SimDesign"; version="2.8"; sha256="0pp9bys2g30rmksgiz1icv6g4cd3x214ab9yr3grl5wy77m1ygzf"; depends=[beepr dplyr foreach pbapply RPushbullet sessioninfo]; };
   SimDissolution = derive2 { name="SimDissolution"; version="0.1.0"; sha256="1rdsxykh740h22ln635m0ysm00pdw94vp7qhgify4mcvc46c3632"; depends=[alabama dplyr mvtnorm]; };
-  SimEUCartelLaw = derive2 { name="SimEUCartelLaw"; version="1.0.1"; sha256="1wg9sayk55mp3f2qykvfk0cbqh050vh0n1fhpq4fmlxqll87aml9"; depends=[plot3D plot3Drgl rgl]; };
+  SimEUCartelLaw = derive2 { name="SimEUCartelLaw"; version="1.0.2"; sha256="06ypk5bsbvv5lf55jk7dmp8j820c0ywgvcnlh790zfkjcxyqaa0k"; depends=[plot3D plot3Drgl rgl]; };
   SimEngine = derive2 { name="SimEngine"; version="1.0.0"; sha256="15rdwpbcypymk9s34iwqzqzqcailhsldzq6c2d9b6jgsp81yy7qk"; depends=[data_table dplyr magrittr pbapply rlang]; };
   SimEvolEnzCons = derive2 { name="SimEvolEnzCons"; version="2.0.0"; sha256="0h3j8lp1s3zqb9qgy16gd0rdlbr2g1jqrc4a19zhmix2kygs5012"; depends=[ade4 RColorBrewer rgl scatterplot3d]; };
   SimHaz = derive2 { name="SimHaz"; version="0.1"; sha256="04q4xyc1ki1zr3grm3khfg0kbykjy3j9qpg332l7pxp4j3wa3aw3"; depends=[survival]; };
@@ -5048,16 +5056,16 @@ in with self; {
   SimReg = derive2 { name="SimReg"; version="3.3"; sha256="1liwwbi3zqrcbqx5przdlzhnq7jvyjd6yhaxalhwggzf9zv7w8ci"; depends=[ontologyIndex ontologyPlot ontologySimilarity Rcpp]; };
   SimSCRPiecewise = derive2 { name="SimSCRPiecewise"; version="0.1.1"; sha256="0mhlx9m5db8a40wf275qh59345676m8bpjjmyx1v22f6m9p3b2n4"; depends=[]; };
   SimSeq = derive2 { name="SimSeq"; version="1.4.0"; sha256="068gg484w07qb4wajik2s3z79xfj0jg5l4pz69267dxi5kzd9fas"; depends=[fdrtool]; };
-  SimSurvNMarker = derive2 { name="SimSurvNMarker"; version="0.1.1"; sha256="0jncq5q3ijczpa4h1i74035w36grjy2p8x71gx58v69ab3ca62k6"; depends=[Rcpp RcppArmadillo]; };
-  SimSurvey = derive2 { name="SimSurvey"; version="0.1.4"; sha256="0n3acx279qrw5bxx77b1rpq12hrm26di2csxkhdv8c0mbwv4p2pf"; depends=[data_table doParallel foreach magrittr plotly progress raster rlang sp]; };
+  SimSurvNMarker = derive2 { name="SimSurvNMarker"; version="0.1.2"; sha256="1k62n56mzxv40j0g7631g6r18sgddwsl59wlyi0s5rzwjmiwpbgk"; depends=[Rcpp RcppArmadillo]; };
+  SimSurvey = derive2 { name="SimSurvey"; version="0.1.5"; sha256="1i417kp7lcd7a19bna2y29sirgv30bb3xs8i4a2l6zmbq0kqsgf8"; depends=[data_table doParallel foreach magrittr plotly progress raster rlang sp]; };
   SimTimeVar = derive2 { name="SimTimeVar"; version="1.0.0"; sha256="1x0lkgqwx1vz1gbyvy0hx20n638n30j0dny1iz5vs0cvviq3cdv8"; depends=[car corpcor ICC metafor miscTools mvtnorm plyr psych]; };
-  SimVitD = derive2 { name="SimVitD"; version="1.0.1"; sha256="1rpsvi5pdj4njvbdz1xpq6qhplk07p4qsm4dmbbbkl648674bqb0"; depends=[wBoot]; };
+  SimVitD = derive2 { name="SimVitD"; version="1.0.2"; sha256="1ddzp43bnna6n96h6qkqfis1l7mihf20wcy98cn37ri96zacwly4"; depends=[simpleboot]; };
   SimilaR = derive2 { name="SimilaR"; version="1.0.8"; sha256="1wlxscl94r3gxwsc9yw0y4z5nj28nxilijp0pbzv4z2n4aqc7vy6"; depends=[BH Rcpp stringi]; };
   SimilarityMeasures = derive2 { name="SimilarityMeasures"; version="1.4"; sha256="1w4klcln4hy9vcik9csg7b3b8kk4raxgckwfrhqg089d80xbqsxj"; depends=[]; };
   Simile = derive2 { name="Simile"; version="1.3.3"; sha256="1izyjp18m1inac3svkf59z3lddrv44m7pdkhisgkr987xs8gdch4"; depends=[]; };
   SimplicialCubature = derive2 { name="SimplicialCubature"; version="1.3"; sha256="06dpbawn650lzybd5j4xkygbg5s2nqfz6b4g0skm4z7lsb2d9dhb"; depends=[]; };
   SimplifyStats = derive2 { name="SimplifyStats"; version="2.0.4"; sha256="08775g6fdx09y8pkfq4k8zxbxpwah7yqq5cg30lmxl7zrpmza5hv"; depends=[assertthat broom dplyr moments tibble]; };
-  SimplyAgree = derive2 { name="SimplyAgree"; version="0.0.2"; sha256="1jax36yqr1j9zwbv69x81fyyd5ymy84k9mvvn3qvvngab6daqxlg"; depends=[boot cccrm dplyr emmeans ggplot2 jmvcore lme4 magrittr sjstats stringr tidyr tidyselect]; };
+  SimplyAgree = derive2 { name="SimplyAgree"; version="0.0.3"; sha256="16kii3i7ys4j3v4iw4ma4l87z8wjhnkhqzi03id3mhv8b39b8l4i"; depends=[boot dplyr emmeans ggplot2 jmvcore lme4 magrittr stringr tidyr tidyselect]; };
   SinIW = derive2 { name="SinIW"; version="0.2"; sha256="1z7rcjy0i09a9hjpjj1x8i46lv042l20lvb6b0pnsky2sx3v78pd"; depends=[fdrtool pracma]; };
   SingleCaseES = derive2 { name="SingleCaseES"; version="0.5.0"; sha256="17fvh327cwc809v3zkz3xqb0i1nc954xha60yq6wjc8n33d8qlqy"; depends=[dplyr magrittr purrr rlang tidyr tidyselect]; };
   SiteAdapt = derive2 { name="SiteAdapt"; version="1.1.0"; sha256="1k79j29d92a8m578xj61iavljikksdmjr2vlzwmdvxpa6rp1i2ff"; depends=[ggplot2 ggpubr glmulti hydroGOF hyfo RColorBrewer solaR]; };
@@ -5101,8 +5109,8 @@ in with self; {
   SolveSAPHE = derive2 { name="SolveSAPHE"; version="2.1.0"; sha256="1r42h19l186jry2wxmrp9y1jdcwr7wx4an3nmryc4l33f48idbfr"; depends=[]; };
   SongEvo = derive2 { name="SongEvo"; version="1.0.0"; sha256="0mc5wlf5axbflys6g8b7xg0di3wwkli7q0a9fby6598fq9hbaqpd"; depends=[boot geosphere lattice sp]; };
   SorptionAnalysis = derive2 { name="SorptionAnalysis"; version="0.1.0"; sha256="0drns1ajcga5z56hcgjxld1riwjn7vli8k1ma1xqifpy1qwy7ci6"; depends=[]; };
-  SortedEffects = derive2 { name="SortedEffects"; version="1.6.0"; sha256="1rs7cx81fig4mnnk8bzma36a00qb8sywy2qj228hvjwk3ghpb3bi"; depends=[boot dummies Hmisc pbapply quantreg SparseM]; };
-  SoundShape = derive2 { name="SoundShape"; version="1.1.0"; sha256="0nv04r4anl3mpmdv2bhzpk5fp939pczz606648x9v414ymaa4q89"; depends=[abind geomorph plot3D reshape2 seewave tuneR]; };
+  SortedEffects = derive2 { name="SortedEffects"; version="1.7.0"; sha256="188qlgg3m8f07hbjim65yw3qy6200y0b54imkdqm8mq0f14nmi0f"; depends=[boot Hmisc pbapply quantreg SparseM]; };
+  SoundShape = derive2 { name="SoundShape"; version="1.1.9"; sha256="0akkqxiyw79dbhp3a31nrwd5q7a0204vnyddp5l423x5xj8q2x0g"; depends=[abind geomorph plot3D reshape2 seewave tuneR]; };
   SoundexBR = derive2 { name="SoundexBR"; version="1.2"; sha256="0chc332v3wcz30v70yvdxhvcfdmvf4fj193cn00gl899xfxal89p"; depends=[]; };
   SoupX = derive2 { name="SoupX"; version="1.5.2"; sha256="1zhd2vx4g3kpxpfq996h909k4lybzb79nw1kvhx7073aniq042c3"; depends=[ggplot2 Matrix Seurat]; };
   SourceSet = derive2 { name="SourceSet"; version="0.1.3"; sha256="159kg4pna24yihkghxc2k5f56dqk8aypxcmj1whgnajmgab29ry1"; depends=[graph gRbase gtools igraph plyr progress reshape2 scales]; };
@@ -5132,15 +5140,16 @@ in with self; {
   SpatialBall = derive2 { name="SpatialBall"; version="0.1.0"; sha256="09iy1smfqnb0rd2s9a1wqgscb1plwcwwph6a8215l4zrs6svszv2"; depends=[dplyr ggplot2 hexbin lubridate RColorBrewer]; };
   SpatialEpi = derive2 { name="SpatialEpi"; version="1.2.7"; sha256="0hfspksv9dgi98kcjwa291x8dglskfl4d1cjkd2hqxlf73havpzx"; depends=[maptools MASS Rcpp RcppArmadillo sp spdep]; };
   SpatialExtremes = derive2 { name="SpatialExtremes"; version="2.0-9"; sha256="1mhn1c8n3bmgf0fjyac3wji4790zswzkqliqcv3n8kv9806crb0y"; depends=[fields maps]; };
-  SpatialFloor = derive2 { name="SpatialFloor"; version="1.1.0"; sha256="07mwgcvkkq478l6wxvrdjs9d578x0kgs5xy86lgy5my0xqfcv6y8"; depends=[blocksdesign fields reshape2 taRifx]; };
+  SpatialGEV = derive2 { name="SpatialGEV"; version="1.0.0"; sha256="0g4v84a4c14a2vf7y055j9jgcki7q4182lmmmphrahiqwnjxhm1b"; depends=[evd mvtnorm TMB]; };
   SpatialGraph = derive2 { name="SpatialGraph"; version="1.0-2"; sha256="0cwswa5g3a6ng8qkwi04jz9pma4i0c16m7jpq6z3djzjin0znyk2"; depends=[igraph rgeos shape sp splancs]; };
   SpatialKDE = derive2 { name="SpatialKDE"; version="0.7.0"; sha256="0qmky12886bw2i7lnhcqq9zzyzmbh1670c8l2adqjiz9k0cykmp4"; depends=[dplyr glue magrittr raster Rcpp rlang sf vctrs]; };
   SpatialKWD = derive2 { name="SpatialKWD"; version="0.4.0"; sha256="0nsrf30bl3yc1h1kldv1ah1jjb4qh4hd99rd1nz9q9rqmdp0dcrw"; depends=[Rcpp]; };
   SpatialML = derive2 { name="SpatialML"; version="0.1.3"; sha256="0akip0kkd1jjid12iwmaxkhkvcfzkxmrnrsv0b6nnvpjdl1jb589"; depends=[randomForest]; };
   SpatialNP = derive2 { name="SpatialNP"; version="1.1-5"; sha256="0cxh1f4182mfihq6m82zh2lgafrsiqvgrfxbk66zkjrrbfn8gkcl"; depends=[]; };
+  SpatialPOP = derive2 { name="SpatialPOP"; version="0.1.0"; sha256="0pgd4injkimjp6pid42arhfbavx2i8crkdvqr35bjvf26p7hbvv3"; depends=[MASS numbers qpdf]; };
   SpatialPack = derive2 { name="SpatialPack"; version="0.3-8196"; sha256="0kbv4ddl8zdm5z8vi6cj0x59paf669js9vgm28d74yxrdmjy29wh"; depends=[fastmatrix]; };
   SpatialPosition = derive2 { name="SpatialPosition"; version="2.1.1"; sha256="0p2ii6pwxqrywp7m3hql2js9211vx6jk8lz76cbkzaz1i1g1q90k"; depends=[isoband raster sf sp]; };
-  SpatialRegimes = derive2 { name="SpatialRegimes"; version="0.2"; sha256="01kbfwzq58zcvclrnmb9n5y3n0ki9nr8zbxyyanzqn7xcng8qmnb"; depends=[GWmodel plm quantreg spdep]; };
+  SpatialRegimes = derive2 { name="SpatialRegimes"; version="1.0"; sha256="1y5b30r355bb7z48drng4g2m1ldrcisfg40y6p6idl5ad8flh05j"; depends=[GWmodel plm quantreg spatialreg spdep]; };
   SpatialRoMLE = derive2 { name="SpatialRoMLE"; version="0.1.0"; sha256="1m80vcd27g11v0gxnjz6p4ghljpxdb8jpkns8ry5yzhfvcpf29jc"; depends=[]; };
   SpatialTools = derive2 { name="SpatialTools"; version="1.0.4"; sha256="0jgbrzsx2klvihv65y1ycqyr8awp5kqqz4qwfyfibx3b56lzna1q"; depends=[Rcpp RcppArmadillo spBayes]; };
   SpatialVS = derive2 { name="SpatialVS"; version="1.1"; sha256="1xghfiz9wmmx11ssms7zjy3ggkjmc6kkbdwp3v5wjwpwapafzdk3"; depends=[fields MASS nlme]; };
@@ -5158,7 +5167,7 @@ in with self; {
   Spillover = derive2 { name="Spillover"; version="0.1.0.1"; sha256="0jwhih0jzd6grd9y967k7j5vwv9sd20xqi2270y1cgl64v21bjzm"; depends=[fastSOM vars zoo]; };
   Splinets = derive2 { name="Splinets"; version="1.0.0"; sha256="1fws9svxvn03xgfqmqwr169wgl544zv87yrdi4nl5z32cq5c9yk5"; depends=[]; };
   SplitGLM = derive2 { name="SplitGLM"; version="1.0.2"; sha256="0708jz8j44lw6zs5f6w4v9pf7apd22j15g7lszc8kwlm8xsnnkf6"; depends=[Rcpp RcppArmadillo]; };
-  SplitKnockoff = derive2 { name="SplitKnockoff"; version="1.1"; sha256="090q3hw010rnnqj7qi615h6xlbkaxkrv9gsaxdfwhcffvpfi9anr"; depends=[ggplot2 glmnet latex2exp MASS Matrix mvtnorm RSpectra]; };
+  SplitKnockoff = derive2 { name="SplitKnockoff"; version="1.2"; sha256="1ywh86gkkcc2dddqfgs5w8w9wyjfqmvcr31jga41ddvj5rb8zkhx"; depends=[ggplot2 glmnet latex2exp MASS Matrix mvtnorm RSpectra]; };
   SplitReg = derive2 { name="SplitReg"; version="1.0.2"; sha256="1s012qldrsq8rpfpzf7kyd7631b65zai269x53xcaqn75r5ssh3f"; depends=[Rcpp RcppArmadillo]; };
   SplitSoftening = derive2 { name="SplitSoftening"; version="2.1-0"; sha256="1fgcqax81zpknw642fm9dx1f6dpdgbcf3va0m1bhj6kl98yq7dqd"; depends=[]; };
   SportsAnalytics = derive2 { name="SportsAnalytics"; version="0.2"; sha256="1vb080ak1mfvr6d0q9i3r8hd547ba80bavjdcri0gclqqcjf1ach"; depends=[]; };
@@ -5190,7 +5199,7 @@ in with self; {
   SteinerNet = derive2 { name="SteinerNet"; version="3.1.0"; sha256="03wr746dkwp8vg91y986q0xvgz1y9b5q25g0kig2sx6m75li3yif"; depends=[igraph]; };
   Stem = derive2 { name="Stem"; version="1.0"; sha256="1fr02mi5qyxbqavdh2hg8ggw4nfjh3vs7g0vh834h6y0v53l71r5"; depends=[MASS mvtnorm]; };
   StempCens = derive2 { name="StempCens"; version="1.1.0"; sha256="0jphyikfggx0yj5f5k3fykf3fdv9msppymzpyin1m7xfmfi5cwia"; depends=[distances ggplot2 MCMCglmm mvtnorm Rcpp RcppArmadillo Rdpack tmvtnorm]; };
-  StepBeta = derive2 { name="StepBeta"; version="0.1.0"; sha256="1z19adh5ldcpx3g473f6j5kv2s37wbsrv36g0ss09c87z89zp5wz"; depends=[betareg glue]; };
+  StepBeta = derive2 { name="StepBeta"; version="0.1.1"; sha256="15kk0sfakqmhqsmp5hdwd1l8ppivbgaclfzdci8a9f1yj0bzwcmr"; depends=[betareg glue]; };
   StepReg = derive2 { name="StepReg"; version="1.4.3"; sha256="0c9zxrm5nrxnibrg59gzlz4axnj1c9m6y5wawpak6k41c61q6x2y"; depends=[survival]; };
   StepSignalMargiLike = derive2 { name="StepSignalMargiLike"; version="2.6.0"; sha256="0j85lvs2bljfhf482r31sq3xgk8l73hcw22wgxxp8z8nla38cwf9"; depends=[Rcpp]; };
   SteppedPower = derive2 { name="SteppedPower"; version="0.3.1"; sha256="1iaaih7pwrs9icn0x7zpqicwnbpgb4azsy0dh238aq2ghawx0p2s"; depends=[Matrix plotly Rfast]; };
@@ -5202,7 +5211,7 @@ in with self; {
   Strategy = derive2 { name="Strategy"; version="1.0.1"; sha256="0phja1r0qfvcswvw5w1x6ny86p84wkqb029fdqgw10djdm9xp0f2"; depends=[xts zoo]; };
   StrathE2E2 = derive2 { name="StrathE2E2"; version="3.3.0"; sha256="10y6bagqg1h57c8g7m837qidrf7wdf8r0jcgqwrcgkr1kbxywfg9"; depends=[deSolve NetIndices]; };
   StratifiedBalancing = derive2 { name="StratifiedBalancing"; version="0.3.0"; sha256="0pklnm0q0imdhyzhwyb4i0j441dkk4k6qqlx8d4q2xnl62drqnvv"; depends=[bnlearn plyr]; };
-  StratifiedMedicine = derive2 { name="StratifiedMedicine"; version="1.0.4"; sha256="0143lkzywlaqfwrxd9m72p20rfnavr7cn8a8m96zvgwa68jdwm8l"; depends=[coin dplyr ggparty ggplot2 glmnet mvtnorm partykit ranger survival]; };
+  StratifiedMedicine = derive2 { name="StratifiedMedicine"; version="1.0.5"; sha256="0q1d5jar5x2v9bsrfzv73wirgbkvy16ibzq93qv9b6c4zj3q75r7"; depends=[coin dplyr ggparty ggplot2 glmnet mvtnorm partykit ranger survival]; };
   StratifiedRF = derive2 { name="StratifiedRF"; version="0.2.2"; sha256="0a5djia6xacs17nnr5knr1acwzicrffz73q9nvnhdmihazq8v27d"; depends=[C50 dplyr]; };
   StratifiedSampling = derive2 { name="StratifiedSampling"; version="0.3.0"; sha256="190drdcry26rq63i4lzm5s3x79jjjqsngmxgyxwbfgz8hbqj85jx"; depends=[MASS Matrix proxy Rcpp RcppArmadillo sampling transport]; };
   StratigrapheR = derive2 { name="StratigrapheR"; version="1.2.4"; sha256="00m0ag5va8r7aq6j2766cv4596qbgjgcfljkbq7vm0p4hx78x51x"; depends=[diagram dplyr reshape shiny stringr XML]; };
@@ -5227,7 +5236,7 @@ in with self; {
   SunsVoc = derive2 { name="SunsVoc"; version="0.1.2"; sha256="08qmkssxa75q2c8vl4i0560bazqjw1v00h6yl5zjwrxklws2m57p"; depends=[data_table ddiv dplyr magrittr purrr rlang stringr]; };
   SunterSampling = derive2 { name="SunterSampling"; version="1.0.1"; sha256="0qfld3j8xlpgp7c58zqw6gzm38m4d740lvdj5vmcflfcc6ja98sf"; depends=[]; };
   SupMZ = derive2 { name="SupMZ"; version="0.2.0"; sha256="1n81wqacrpk5x6i1pd1zsjivv2jk41743kg1h7gnp0rb3k58vp7r"; depends=[dplyr magrittr]; };
-  SuperExactTest = derive2 { name="SuperExactTest"; version="1.0.7"; sha256="1ysfsdzbkldcn7hzxhqikf5h2h9747xhfrirqgr8xx8q81wq989s"; depends=[]; };
+  SuperExactTest = derive2 { name="SuperExactTest"; version="1.1.0"; sha256="0i3pk2c2ipnc7mq5w4d4nl2l9pj1ijynm72n4jnlmhrs16ka88i1"; depends=[]; };
   SuperGauss = derive2 { name="SuperGauss"; version="2.0.3"; sha256="174gicpk2jwbzg39m44sxp7506cja9cnn95r287sq7049lrj302a"; depends=[fftw R6 Rcpp RcppEigen]; };
   SuperLearner = derive2 { name="SuperLearner"; version="2.0-28"; sha256="00any24msgflyagy87nznpfjz5g9v15frqda6c679wa8plx26hjz"; depends=[cvAUC gam nnls]; };
   SuperPCA = derive2 { name="SuperPCA"; version="0.4.0"; sha256="0bpcxg9rh3ig5fzml026glws13daf5hiqbvdy7hsriv8y8qlxnfk"; depends=[fBasics glmnet MASS matlab matlabr Matrix matrixStats pracma psych R_matlab RSpectra spls timeSeries]; };
@@ -5281,7 +5290,7 @@ in with self; {
   TCA = derive2 { name="TCA"; version="1.2.1"; sha256="1gyps0m7r44vcbzpbrs3xy2kyb2xsvmfzk1c0aq04s4ndcksplwb"; depends=[config data_table futile_logger gmodels Matrix matrixcalc matrixStats nloptr pbapply pracma quadprog rsvd]; };
   TCGAretriever = derive2 { name="TCGAretriever"; version="1.5"; sha256="1xg1rz2h5jbpdd5axli3ripqxb0bj64yrd4y5nzr8axajiaybkj9"; depends=[httr]; };
   TCIApathfinder = derive2 { name="TCIApathfinder"; version="1.0.6"; sha256="15f3w6vhbqy4xzidxasjnqigxchd3jbr2kpm3gggjnkp7rzsfgaf"; depends=[httr jsonlite]; };
-  TCIU = derive2 { name="TCIU"; version="1.2.0"; sha256="0cyagbvcb8x1bszwq8id75838n53l1kcdah7hhm679j2wm4i487s"; depends=[AnalyzeFMRI cubature doParallel dplyr DT extraDistr fancycut fmri foreach forecast geometry ggplot2 ggpubr gridExtra ICSNP MultiwayRegression plotly pracma RColorBrewer reshape2 rrcov scales spatstat_core spatstat_geom tidyr zoo]; };
+  TDA = derive2 { name="TDA"; version="1.8.7"; sha256="0jppqk7h9nq1ysdgkqbywsc313v9gvmnlrmsvidgdc9sa1qxw6di"; depends=[BH FNN igraph Rcpp RcppEigen scales]; };
   TDAkit = derive2 { name="TDAkit"; version="0.1.2"; sha256="1gvcv3016kjk98qm07i972fi66bcljj1avmagyc8qxs29cq3ngg3"; depends=[energy ggplot2 maotai Rcpp RcppArmadillo Rdpack T4cluster TDAstats]; };
   TDAmapper = derive2 { name="TDAmapper"; version="1.0"; sha256="0cxgr2888v8azgdr3sg4vlcdyivkrxkk6dsp1ahv4frrwvg2z09k"; depends=[]; };
   TDAstats = derive2 { name="TDAstats"; version="0.4.1"; sha256="1zmickqk60vm9rzy67hib835v3c45aqjk441p31vpbvhbiy58nq5"; depends=[ggplot2 Rcpp]; };
@@ -5307,16 +5316,15 @@ in with self; {
   TIGERr = derive2 { name="TIGERr"; version="1.0.0"; sha256="04nnm0adf0sbgv7a2ikaq2a5kb9j1xmdfmssizm49q5j457rrl7d"; depends=[pbapply ppcor randomForest]; };
   TIMP = derive2 { name="TIMP"; version="1.13.2"; sha256="1y1bc6wsd32792apsc6qncxbw5y8ww9xlhy9v49mhwbffgzn6llg"; depends=[colorspace deSolve fields gclus gplots minpack_lm nnls]; };
   TITAN2 = derive2 { name="TITAN2"; version="2.4.1"; sha256="16zf42s1as2xrvyhd0lnv36mgnr5w19xv11pkl0k8imb5bdkhxa2"; depends=[cowplot dplyr ggplot2 ggridges glue purrr snow tibble]; };
-  TInPosition = derive2 { name="TInPosition"; version="0.13.6.1"; sha256="1c0h9zg71whmsjn5rnzv5kdrabl9kqrq627caznvrpa74c7pjks9"; depends=[ExPosition InPosition prettyGraphs TExPosition]; };
-  TLMoments = derive2 { name="TLMoments"; version="0.7.5.2"; sha256="0l9d4yafkkn3qdg9ypy3fiqnzxzv8yzxkq6mh1j28g94s4h6lybh"; depends=[ggplot2 hypergeo lmomco Rcpp]; };
-  TMB = derive2 { name="TMB"; version="1.8.0"; sha256="158spsz8inxhs3dw6cq2wwkkhvgkfjyyz577s89x08yly7layq2l"; depends=[Matrix RcppEigen]; };
+  TLMoments = derive2 { name="TLMoments"; version="0.7.5.3"; sha256="096sr0j4vhlfsaxc565zgw0mjk4sxkl03i7ip3hzcfph1c05yj6h"; depends=[ggplot2 hypergeo lmomco Rcpp]; };
+  TMB = derive2 { name="TMB"; version="1.8.1"; sha256="1hzvvx1g5nkmiqwzihj8nir48k7idbw1jvb14ldjk9rsikgpywdl"; depends=[Matrix RcppEigen]; };
   TMDb = derive2 { name="TMDb"; version="1.1"; sha256="062n9mi2f9g2xxpnymja57xnpl855d8mwyfwci7a8cq4c7w7avj7"; depends=[httr jsonlite stringi]; };
   TMTI = derive2 { name="TMTI"; version="0.1.0"; sha256="16fa512f8hhfsinn57p98yvw58hjymki7xnvrfz9fidkqva0wm1x"; depends=[dplyr]; };
   TNC = derive2 { name="TNC"; version="0.1.0"; sha256="0639wvylmk9mapvmz79ij65g1phv3ylc683awi4pgaf9yfwlmjkn"; depends=[]; };
   TNRS = derive2 { name="TNRS"; version="0.3.0"; sha256="0r4pd8r7whd9hd47isy3hxzkv9ar3i5hqhixaxr691ck1szkj1f2"; depends=[httr jsonlite]; };
   TOC = derive2 { name="TOC"; version="0.0-5"; sha256="0zk6j1yc4gpvkswnfrlyfvqc69wr4q3ys59y7v03fhzwasqj0an2"; depends=[bit raster rgdal]; };
   TOHM = derive2 { name="TOHM"; version="1.4"; sha256="15i9hrvxlnwbs9vrsyrfhnm4xwmi97hss2da0xqs1xj5nmzwymqh"; depends=[EQL igraph Matrix nloptr Rmpfr]; };
-  TOSTER = derive2 { name="TOSTER"; version="0.4.0"; sha256="0zfalngjjg1p4516r60ma03d2ndw2w417p7bp3b9l4cyv5jy5qjv"; depends=[cowplot distributional ggdist ggplot2 jmv jmvcore R6 tidyr]; };
+  TOSTER = derive2 { name="TOSTER"; version="0.4.1"; sha256="1k6m4x5pp06f2nlcqj70gqk0pddwf4l36njkc1rg8zf7fr9x5f3a"; depends=[cowplot distributional ggdist ggplot2 jmvcore R6 tidyr]; };
   TP_idm = derive2 { name="TP.idm"; version="1.5"; sha256="07rxn0mpar3p6blg8fd3kbvdngyz9h9n0r0lcljnfdajfzbysv7h"; depends=[]; };
   TPD = derive2 { name="TPD"; version="1.1.0"; sha256="1ppj6ppi0lhlz079ygjnwx1l5f36bsi8zax23ssr1w6h4csw748m"; depends=[ggplot2 gridExtra ks mvtnorm]; };
   TPEA = derive2 { name="TPEA"; version="3.1.0"; sha256="1yyc3q4dyf4d8m7wi851dnxf3xnvvfnvj28kl8z8py4r4jsb2hfy"; depends=[foreach igraph Matrix MESS RCurl XML]; };
@@ -5334,7 +5342,7 @@ in with self; {
   TSANN = derive2 { name="TSANN"; version="0.1.0"; sha256="1sk9jq6k5qf8k03yhrb2jmazdh8gi2a17pc5m0agcvxiv4lmp5sp"; depends=[forecast gtools]; };
   TSCS = derive2 { name="TSCS"; version="0.1.1"; sha256="0dllaw69rl26hgqac5q66k13gfmnxhn3wf0j8nx5xvi7yclzc3ay"; depends=[ggplot2 rgl tseries]; };
   TSDFGS = derive2 { name="TSDFGS"; version="1.0"; sha256="1wk1j0bzcapp2pknhiichh947xs6dpkrfr2h7s1vqyzb9a0yajif"; depends=[Rcpp RcppEigen]; };
-  TSDT = derive2 { name="TSDT"; version="1.0.0"; sha256="0cscy8g6qab09lgzdpz9s85l7m7v5gnjf0n3h82730xzd50r4za7"; depends=[hash mlbench modeltools party rpart survival survRM2]; };
+  TSDT = derive2 { name="TSDT"; version="1.0.7"; sha256="0h2nwlzq6p11735nhkkqz6r7lpmw98bwy9dpdmvj4wqb7c64p90p"; depends=[hash mlbench modeltools party rpart survival survRM2]; };
   TSE = derive2 { name="TSE"; version="0.1.0"; sha256="0fzdlryb8m9h6q8w0q42wpphmvm439zxk1imqzmskm48r7w6nm7w"; depends=[]; };
   TSEind = derive2 { name="TSEind"; version="0.1.0"; sha256="0xv968a12p9riq5nk82gq1ixglb2077c99i2a5ws6s23xzs1s29h"; depends=[]; };
   TSEntropies = derive2 { name="TSEntropies"; version="0.9"; sha256="1bwb3kyhzc6sxhvpagf4vjmh8ghx44lpc9ms4jwrsrzdhcvnfc7l"; depends=[]; };
@@ -5373,7 +5381,7 @@ in with self; {
   TSsmoothing = derive2 { name="TSsmoothing"; version="0.1.0"; sha256="1m4y6hfw5ghqmvbnha05w6k0abbr08xdcahmh897g68b06vcrjsl"; depends=[ggplot2 gridExtra MASS Matrix]; };
   TSsql = derive2 { name="TSsql"; version="2017.4-1"; sha256="0f71q6gqfx4r3ghsmr572cvkpmf2xf7kipf10ii99z1y23dxmsdn"; depends=[DBI tframe tframePlus TSdbi zoo]; };
   TSstudio = derive2 { name="TSstudio"; version="0.1.6"; sha256="1r45s4xgc9a2rdh225xzmwr7g6qahmjj7v1a6g7haghnhaq6hv4s"; depends=[data_table dplyr forecast forecastHybrid future future_apply lubridate magrittr plotly purrr RColorBrewer reshape2 scales tidyr tsibble viridis xts zoo]; };
-  TT = derive2 { name="TT"; version="0.92"; sha256="0r9cr2jfjxz0sw17whls4m6ilqn5gs1fc9vy2i66abkd95ix73wn"; depends=[data_tree dplyr DT htmlwidgets magrittr purrr]; };
+  TT = derive2 { name="TT"; version="0.98"; sha256="0vnj2lmhn8qk3p8m8kvamp1af71iw3l75ds0mm9c8vinw2z4fzg3"; depends=[data_tree dplyr DT htmlwidgets magrittr purrr]; };
   TTAinterfaceTrendAnalysis = derive2 { name="TTAinterfaceTrendAnalysis"; version="1.5.8"; sha256="14bws9z57prnbb30ivl8zzyqi9hrj0nhm3m5i249rn2kyzw70gw1"; depends=[e1071 multcomp mvtnorm nlme pastecs relimp reshape rkt stlplus tcltk2 zoo]; };
   TTCA = derive2 { name="TTCA"; version="0.1.1"; sha256="16slr4c2nwbchsg6fk5prq22p2v4cjxzk93wd3xggav2lzrf8a5h"; depends=[MASS Matrix quantreg RISmed tcltk2 VennDiagram]; };
   TTR = derive2 { name="TTR"; version="0.24.3"; sha256="11xsmbvmxq2j119j2z58bx1fkkb2xlhmzc35z5fbwr3nchrfz6jd"; depends=[curl xts zoo]; };
@@ -5393,7 +5401,6 @@ in with self; {
   TanB = derive2 { name="TanB"; version="0.1"; sha256="05y9j1a5nzqfpsw48gix5c4ds1cm80liad9wnwmddhbx4fda6p32"; depends=[fdrtool pracma]; };
   TangPoemR = derive2 { name="TangPoemR"; version="0.1.0"; sha256="06w5gg36mx0vdagkhy7rskgjv2d3irr0d3nkjw26vxp25x1py4sf"; depends=[jiebaR]; };
   TapeR = derive2 { name="TapeR"; version="0.5.0"; sha256="161qwwqcq94j3h49k6fn6g146hczpaq6vygai5kwl6i8wpdfzc5a"; depends=[nlme pracma]; };
-  TargomoR = derive2 { name="TargomoR"; version="0.2.0"; sha256="0dzlqv8v36cm5b9hc9am4351nigknq7vr0mki9kzk2979c18if6b"; depends=[geojsonsf httr jsonlite leaflet magrittr sf tibble xml2]; };
   Tariff = derive2 { name="Tariff"; version="1.0.5"; sha256="1mdbc6yyaddkyj617kx93d2737gijh063v8w8jqw4lwmbwyc4a4w"; depends=[]; };
   TauP_R = derive2 { name="TauP.R"; version="1.5"; sha256="02vk9rj8yx4n2pihgk93bs2f9wkpkyfqm2kp7ixj4wpa29a0iq6v"; depends=[]; };
   TauStar = derive2 { name="TauStar"; version="1.1.4"; sha256="06bb6570mqzfbjw2qp4bjl4a1bdpwsvcr0vw2y4l1x444m670ds1"; depends=[Rcpp RcppArmadillo]; };
@@ -5415,10 +5422,10 @@ in with self; {
   TensorComplete = derive2 { name="TensorComplete"; version="0.1.0"; sha256="06lr0blkf5pv1zwlffn7m0xxscjii4jg930nkzrh2k7dnbka6vsx"; depends=[MASS pracma tensorregress]; };
   TensorTest2D = derive2 { name="TensorTest2D"; version="1.1.1"; sha256="1yx1ggsbximbsrwimyg7jblbqr0f75z278f38hg61qjxzf9m4ndk"; depends=[]; };
   Ternary = derive2 { name="Ternary"; version="2.0.0"; sha256="1qkf54h3pg2zjbmhas8b2jxizqd2z626qivdpirjypvzp9243458"; depends=[shiny viridisLite]; };
-  TesiproV = derive2 { name="TesiproV"; version="0.9.1"; sha256="0a2rr2i7skbg5fdwhcz0wqx7y5cdw6kjgxrml27p2r15q3lvz808"; depends=[edfun ggplot2 gridExtra nloptr pracma]; };
+  TesiproV = derive2 { name="TesiproV"; version="0.9.2"; sha256="00igkm0y9v363djhig4ydn3bfadqf6rrrdhkai2pl1w876xk2ydw"; depends=[edfun ggplot2 gridExtra nloptr pracma]; };
   TestCor = derive2 { name="TestCor"; version="0.0.2.2"; sha256="01ndiqi0z672ymm2bid0r0cqz8fqd9268xgmmq74z3agj81l5c5j"; depends=[MASS Rcpp RcppArmadillo]; };
   TestDataImputation = derive2 { name="TestDataImputation"; version="2.3"; sha256="11acpw9vjar6g8n9cifpfs4208j1hqqp15j59mr9pnfwq747hw2z"; depends=[Amelia mice]; };
-  TestDesign = derive2 { name="TestDesign"; version="1.2.7"; sha256="195j5l6axphkwbjdpj26k2fzs7nbj0kb8gw6271jzwb94b2xfgrb"; depends=[crayon foreach logitnorm lpSolve Rcpp RcppArmadillo]; };
+  TestDesign = derive2 { name="TestDesign"; version="1.3.1"; sha256="0qsdsniaw7w2wd7vsfmw5ib86822qdji5r6yyl293dcg7pmrvsa8"; depends=[crayon foreach logitnorm lpSolve Rcpp RcppArmadillo]; };
   TestDimorph = derive2 { name="TestDimorph"; version="0.4.1"; sha256="09r265mmr3bk78pqca30n9bz62p6822mg0nhrfaip2lxhl3bfqcw"; depends=[caret corrplot cutpointr dplyr ggplot2 Morpho multcompView tidyr tmvtnorm truncnorm]; };
   TestFunctions = derive2 { name="TestFunctions"; version="0.2.0"; sha256="018nkz8r6vqahrzq3d588i3ffb1bmd1pdk87j4ivcdsx99mq15sn"; depends=[]; };
   TestGardener = derive2 { name="TestGardener"; version="2.0.0"; sha256="1n38y2b3r0xf44jasga67cg820f1llb52farkv8dnp4v7bzld6zs"; depends=[dplyr fda ggplot2 ggpubr knitr pracma rgl rmarkdown stringr tidyr utf8]; };
@@ -5446,14 +5453,13 @@ in with self; {
   TideTables = derive2 { name="TideTables"; version="0.0.3"; sha256="0xfwikz9f58pw1j5vp45wp44lbr8b8ijlac474nzahq46d411afp"; depends=[chron data_table]; };
   Tides = derive2 { name="Tides"; version="2.1"; sha256="0da3z010ali83qf8mf1znicqv8vvsa5r93mc40ax60ln2w33nlrm"; depends=[]; };
   TidyConsultant = derive2 { name="TidyConsultant"; version="0.1.0"; sha256="1ipv0nx0xmba62c7qjgadpjsr850d9dl0z5zjkh1rj6kfxdgiis2"; depends=[autostats badger framecleaner pacman presenter tidybins validata]; };
-  TidyDensity = derive2 { name="TidyDensity"; version="1.0.0"; sha256="0wzl2jijzga2wc65hjk7v4nlifapc9cg8318jcwiaprndm5gd2cg"; depends=[actuar dplyr ggplot2 magrittr plotly purrr rlang stringr tidyr]; };
+  TidyDensity = derive2 { name="TidyDensity"; version="1.0.1"; sha256="1hfcqp0iqq93k8jhgnzmf5ha4418pbdqys2dpwmpwyc502kxh4wc"; depends=[actuar dplyr ggplot2 magrittr plotly purrr rlang stringr tidyr]; };
   TidyMultiqc = derive2 { name="TidyMultiqc"; version="1.0.2"; sha256="0acgq3npl7l2j3wv9gxlnkajb7sjacnsaxh3p4jrcqvam173bkps"; depends=[assertthat dplyr jsonlite magrittr purrr rlang stringr tibble]; };
   TileManager = derive2 { name="TileManager"; version="0.4.1"; sha256="0pcskdqxxm07j47bw1j4d3jqf64pk0jqwcp5379hnpi6kr7f5gvh"; depends=[APfun raster rgeos sp XML]; };
   TimeProjection = derive2 { name="TimeProjection"; version="0.2.0"; sha256="04yr4cg2khkw9n3y3qk0ni1327k4pxm09zz2xg8mpjdvgi4p9yi3"; depends=[lubridate Matrix timeDate]; };
   TimeSeries_OBeu = derive2 { name="TimeSeries.OBeu"; version="1.2.4"; sha256="0ihigrbdkfbqqjxqfx3y5q8ii8n60301s7190jr50a88l1xzgmh8"; depends=[forecast jsonlite locfit trend tseries]; };
   TimeVTree = derive2 { name="TimeVTree"; version="0.3.1"; sha256="124kg9zcq4b2j4qvg9f6gykbmzf69qjnnw54nv213ip2h4rdkv32"; depends=[survival]; };
-  TimeWarp = derive2 { name="TimeWarp"; version="1.0.15"; sha256="1v6f6d1h9dc8npdy0ph5hhc4jjkzh8kac48lz4ahgngi9n0xwql9"; depends=[]; };
-  Tinflex = derive2 { name="Tinflex"; version="1.8"; sha256="053w4l5j499brlbbh1bc41nj01j1533ixd9vggmvpkzk7zgdsasy"; depends=[]; };
+  Tinflex = derive2 { name="Tinflex"; version="2.1"; sha256="0asvd72rdrk0kkq7d7lynkkmazia4nvj47n4rcqv3cmyd5477gjl"; depends=[]; };
   TipDatingBeast = derive2 { name="TipDatingBeast"; version="1.1-0"; sha256="07lw6jnr76qrxwrwv90hi5ih2xf6g4sz4hfapk5vf1y3ayfskkl0"; depends=[DescTools mclust TeachingDemos]; };
   Tlasso = derive2 { name="Tlasso"; version="1.0.2"; sha256="1svjl2va3vpa1m13wmyy3bpx76xxivalwprzbaavwxf8lgk34wgr"; depends=[expm huge igraph rTensor]; };
   TmCalculator = derive2 { name="TmCalculator"; version="1.0.3"; sha256="1zrsndpdl9bcl1w6szz8rdzadk7jsbd14fajnndliz9fra1ra7xg"; depends=[]; };
@@ -5482,13 +5488,13 @@ in with self; {
   TreeBUGS = derive2 { name="TreeBUGS"; version="1.4.7"; sha256="0cwhgphdk0zndnqx0qcq42zajhwvgs9myg9dmm6dnp0ik0g5syqa"; depends=[coda hypergeo logspline MASS Rcpp RcppArmadillo rjags runjags]; };
   TreeDep = derive2 { name="TreeDep"; version="0.1.3"; sha256="0ja2hp9sxzybac6dqdsns5q1rj12swl240znsnsffg9mkvzhq6rl"; depends=[ggplot2 lubridate]; };
   TreeDiagram = derive2 { name="TreeDiagram"; version="0.1.1"; sha256="03kn9h37wgx300szzxmg21zc5iz3a9v8f2ydzv6dv6rhpa7yn0v5"; depends=[ape cowplot ggplot2 stringr tree]; };
-  TreeDimensionTest = derive2 { name="TreeDimensionTest"; version="0.0.1"; sha256="08r3lj6jryisskgfzv4yaawmghqx3sk8cjmk0rm2q46ajcf2dihd"; depends=[fitdistrplus igraph mlpack nFactors RColorBrewer Rcpp Rdpack]; };
-  TreeDist = derive2 { name="TreeDist"; version="2.3.0"; sha256="1rmd0j8pa7i3q4dqx40gk3kvm0gv8yyrh98ssbslzqsbll84q0y1"; depends=[ape cli colorspace memoise phangorn Rcpp Rdpack shiny shinyjs TreeTools]; };
+  TreeDimensionTest = derive2 { name="TreeDimensionTest"; version="0.0.2"; sha256="1bwvspjvc1cragbsrc05vhwk0zmfj36r9piqbj0vgahpjb4cswn9"; depends=[fitdistrplus igraph mlpack nFactors RColorBrewer Rcpp Rdpack]; };
+  TreeDist = derive2 { name="TreeDist"; version="2.4.0"; sha256="0k1q6abjihksrza5s4b1vzki5pzvjyvkx91ycamqjk4l4gz91xq0"; depends=[ape cli colorspace memoise phangorn Rcpp Rdpack shiny shinyjs TreeTools]; };
   TreePar = derive2 { name="TreePar"; version="3.3"; sha256="1sm518b1b4b1p0n5979qzvi2nacxpp3znbg9n75pf2a8z8wy6p4l"; depends=[ape deSolve Matrix subplex TreeSim]; };
-  TreeSearch = derive2 { name="TreeSearch"; version="1.1.0"; sha256="0fhkfbq3f4m6lm0kw81wwl809lwv6dq8l9k461v76vqvh7xgs7nl"; depends=[ape cli cluster fastmatch future phangorn promises protoclust Rcpp Rdpack Rogue shiny shinyjs TreeDist TreeTools]; };
+  TreeSearch = derive2 { name="TreeSearch"; version="1.1.1"; sha256="1jd7mphdm64dgj73ncksccsx4f3mph9m8sl6lr8yj696yc43xj80"; depends=[ape cli cluster fastmatch future promises protoclust Rcpp Rdpack Rogue shiny shinyjs TreeDist TreeTools]; };
   TreeSim = derive2 { name="TreeSim"; version="2.4"; sha256="0nmzx2723n1f5lr951zz2ih2gnpfim5qzihlayhpf181z1qijv93"; depends=[ape geiger]; };
   TreeSimGM = derive2 { name="TreeSimGM"; version="2.5"; sha256="125c9rim272h0dfyygmmijz8dcnch3g9wy1ngki77dyrmdl77yfx"; depends=[ape TreeSim]; };
-  TreeTools = derive2 { name="TreeTools"; version="1.6.0"; sha256="0a6q2fr9frk38378zvd1njkrwwmw943plxmi337wrdvgaikkg5jj"; depends=[ape bit64 colorspace fastmatch lifecycle R_cache Rcpp Rdpack]; };
+  TreeTools = derive2 { name="TreeTools"; version="1.7.1"; sha256="1ckhhxshvb8kd94p6y797kl0n14n6zf9yss0m9jmn03g24xz9iih"; depends=[ape bit64 colorspace fastmatch lifecycle R_cache Rcpp Rdpack]; };
   TrendInTrend = derive2 { name="TrendInTrend"; version="1.1.3"; sha256="0ijkijyhxhjc7202qssa9wnrmwgv4miv5n8jbml4qqj80kcsbdwp"; depends=[nleqslv pracma pROC rms]; };
   TrendSLR = derive2 { name="TrendSLR"; version="1.0"; sha256="1x8j2dg3m7b22gva33y4s318a41wl60sz93y868z4j65hp13jb5k"; depends=[changepoint forecast imputeTS plyr Rssa tseries zoo]; };
   Trendtwosub = derive2 { name="Trendtwosub"; version="0.0.2"; sha256="12ibxxq58h9w7hlrsxwdirh02casj495rxbfknaggwfx3w30nm56"; depends=[magrittr usethis]; };
@@ -5503,11 +5509,13 @@ in with self; {
   TrueSkillThroughTime = derive2 { name="TrueSkillThroughTime"; version="0.1.0"; sha256="1ak7w10qss1jlf8gy4sri678nqcw6rc79kwr6anqcjxick1000j9"; depends=[hash]; };
   TruncExpFam = derive2 { name="TruncExpFam"; version="1.0.0"; sha256="0059afyfvzliwpw4l1846yxcpqqdy9c2kk0xa0fl5nxh89c2hr7v"; depends=[invgamma rmutil]; };
   TruncatedNormal = derive2 { name="TruncatedNormal"; version="2.2.2"; sha256="05cfn7mdq0hgw97bbb227in9ccjz727sp67xpnpx2r1ajvl6gxdf"; depends=[alabama nleqslv randtoolbox Rcpp RcppArmadillo]; };
+  TrustVDJ = derive2 { name="TrustVDJ"; version="0.1.0"; sha256="154fawx32v2gdvfdyssj04h1y0q2zc2wn4ww4nzaf0nlwbvc2z6v"; depends=[Biostrings data_table rvest]; };
   Tsphere = derive2 { name="Tsphere"; version="1.0"; sha256="0xgxw2hfj40k5s0b54dcmz7savl8wy4midmmgc7lq4pyb8vd58xx"; depends=[glasso rms]; };
   TukeyC = derive2 { name="TukeyC"; version="1.3-4"; sha256="1ly09pll86zkn6m8rc6d66f3d7hf98fiij0psaigq6wdgf5an8ig"; depends=[doBy xtable]; };
   TukeyRegion = derive2 { name="TukeyRegion"; version="0.1.4"; sha256="1zx6gm0s0nardhb3xm3c53pd46kq6grsknpldnjjfhn3029a3nr7"; depends=[bfp BH ddalpha MASS Rcpp rgl Rglpk]; };
   TunePareto = derive2 { name="TunePareto"; version="2.5.1"; sha256="025457qm8blj5jc59qx1wvlcw21b4v9371hlrcf9gkvisksjqvf1"; depends=[]; };
   TurtleGraphics = derive2 { name="TurtleGraphics"; version="1.0-8"; sha256="0h77pj7rs3lrqi1y2dm1cbrmj13mjpq6y5nw8bcq0s2kbnkfw67l"; depends=[]; };
+  Tushare = derive2 { name="Tushare"; version="0.1.4"; sha256="0am3bq62ar5p5nv8gapbvh4ix150pskdrhda48lmcg0ii3l0qh9g"; depends=[data_table forecast httr tidyverse]; };
   Twitmo = derive2 { name="Twitmo"; version="0.1.2"; sha256="0hr2gndrcsd4r4jxyzg1jbjbn1zslv8z5ny3xh42hda93866909d"; depends=[dplyr jsonlite ldatuning LDAvis leaflet magrittr maps plyr quanteda quanteda_textstats readr rlang rtweet stm stopwords stringi stringr tidyr tm topicmodels]; };
   TwitterAutomatedTrading = derive2 { name="TwitterAutomatedTrading"; version="0.1.0"; sha256="1aa6fxxvy0s8al30w19wa2pwzp60zbbdvp5myigv8x26k6w2jwgv"; depends=[curl dplyr jsonlite lubridate magrittr naptime plyr purrr tibble tidytext twitteR]; };
   TwoArmSurvSim = derive2 { name="TwoArmSurvSim"; version="0.2"; sha256="0isb1nmm6hxwn6p52an1axj30ilkr5c8xi86zx2b8acivdz2xr12"; depends=[blockrand dplyr simsurv survival]; };
@@ -5565,9 +5573,8 @@ in with self; {
   VALERIE = derive2 { name="VALERIE"; version="1.1.0"; sha256="15z8234jhh7hv3gijrvy8hap6gdgvm6qll9b00qbji7vyc3dg4pg"; depends=[GenomicAlignments GenomicRanges ggplot2 ggplotify ggpubr IRanges pheatmap plyr Rsamtools scales]; };
   VAM = derive2 { name="VAM"; version="1.0.0"; sha256="04lq8i4zwdc9a4n4hvabdyv4a4cmmqbf534cdnnck7jc0dk5rphr"; depends=[MASS Matrix]; };
   VAR_etp = derive2 { name="VAR.etp"; version="0.7"; sha256="0py5my3ilhcmz44m15hh0d219l9cz7rda4a9gbmf8wh9cgvvj1s3"; depends=[]; };
-  VARDetect = derive2 { name="VARDetect"; version="0.1.5"; sha256="0cj4cc2kys6hblyh88fc64aaz4ln7961y48qkffrmv3367wr1ypj"; depends=[igraph lattice MTS mvtnorm pracma Rcpp RcppArmadillo sparsevar]; };
   VARMER = derive2 { name="VARMER"; version="1.0.0"; sha256="0qym31jpmb2dyrqsk1s6wp1c3b15mf79lrrk46p6hkmdddkxqgnj"; depends=[cluster deldir gstat hydroGOF Metrics pracma raster rgl sf tictoc zoo]; };
-  VARSEDIG = derive2 { name="VARSEDIG"; version="1.9"; sha256="18j73wm22bjvf2y0c09bfmdyx4x2gd0jhfcqhbk1sgsk24zjr63z"; depends=[]; };
+  VARSEDIG = derive2 { name="VARSEDIG"; version="2.1"; sha256="1cxp80i5160c6kx666nl0gxs8ypfmkzxr2gqph5a9v6ibiq801sj"; depends=[]; };
   VARshrink = derive2 { name="VARshrink"; version="0.3.1"; sha256="09hysmxxawcbyfx6bia546aqydryl2r5p3ai7bvl6ghdckw5mnpl"; depends=[ars corpcor MASS mvtnorm strucchange vars]; };
   VARsignR = derive2 { name="VARsignR"; version="0.1.3"; sha256="09mnf9hvsi4wx1c81yq97mzggwk6s7nka7awrws63icjybqjmra9"; depends=[HI minqa mvnfast]; };
   VARtests = derive2 { name="VARtests"; version="2.0.5"; sha256="0gmm2qrrl4v5vx0nhiwq5brvanhybpb2q0zlf4dihramhjjbwyar"; depends=[Rcpp RcppArmadillo sn]; };
@@ -5676,11 +5683,11 @@ in with self; {
   WaverR = derive2 { name="WaverR"; version="1.0"; sha256="084fhzggzm075w6wp2lqd3j0an21idhw8z5l8ynz4y96mpmn204a"; depends=[kimisc MASS]; };
   Wcompo = derive2 { name="Wcompo"; version="1.0"; sha256="1rd7y86q8qi7w9878ng0zdk3zpxnjyzpmrm2mj5lm60hkd72xyrw"; depends=[survival]; };
   WeMix = derive2 { name="WeMix"; version="3.2.1"; sha256="0y7xw7ardij56x4s2ls1vfa8a3pjl14jj5y987p3xx8pca409pp6"; depends=[lme4 Matrix minqa NPflow numDeriv Rmpfr statmod]; };
-  WebAnalytics = derive2 { name="WebAnalytics"; version="0.9.1"; sha256="1nllvrwk7lqdvghfzjvvjihsymn36rphfpfwn3j6mlzq2v2vawra"; depends=[brew digest fs ggplot2 scales testthat xtable]; };
+  WebAnalytics = derive2 { name="WebAnalytics"; version="0.9.4"; sha256="0g8xr9hjr64fq7671k0d824p2gsh57n69aqd64hjf8nhf019y8dv"; depends=[brew data_table digest fs ggplot2 reshape2 scales tinytex uaparserjs xtable]; };
   WebGestaltR = derive2 { name="WebGestaltR"; version="0.4.4"; sha256="1rgf9s80hk35baiknrwgnqnhxssrcxdansgpvpyhqv07bqd472nn"; depends=[apcluster doParallel doRNG dplyr foreach httr igraph jsonlite Rcpp readr rlang svglite whisker]; };
   WebPower = derive2 { name="WebPower"; version="0.6"; sha256="1gw6191v9sgycis3vyjznaaiyhmp0j23h9k8g8adchpyss7017ab"; depends=[lavaan lme4 MASS PearsonDS]; };
   WeibullFit = derive2 { name="WeibullFit"; version="0.1.0"; sha256="1a80gcqbmvb1rz2dr2syy16wn6ixjn6l40gayys9zy8302hky9ir"; depends=[e1071 FAdist glue kSamples mixdist optimx R_methodsS3 R_oo sqldf xtable]; };
-  WeibullR = derive2 { name="WeibullR"; version="1.1.5"; sha256="1dkvdja7zm1v7z9011qms9k84wqywbl7k64jlfrp6fn2k0y6nxgj"; depends=[Rcpp RcppArmadillo]; };
+  WeibullR = derive2 { name="WeibullR"; version="1.1.10"; sha256="0hbqlik5wj9q4ncyvbsyrx0f7lf34wkv31q858plbbj95xmadbd0"; depends=[Rcpp RcppArmadillo]; };
   WeightIt = derive2 { name="WeightIt"; version="0.12.0"; sha256="1x71ifvxl1zn1iaapfz8sscag2h4yim3ycqiink02sy3sfl0hj4n"; depends=[backports cobalt crayon ggplot2]; };
   WeightSVM = derive2 { name="WeightSVM"; version="1.7-9"; sha256="0467rj0qvlyzzpjdxbwwa8gzyalifvjza4pvakbrl7b332v36dwq"; depends=[]; };
   Weighted_Desc_Stat = derive2 { name="Weighted.Desc.Stat"; version="1.0"; sha256="030i12mnwlj976avvk3grrccgprsckmc35dm2ajwdfc9dijhypnj"; depends=[]; };
@@ -5708,12 +5715,12 @@ in with self; {
   WriteXLS = derive2 { name="WriteXLS"; version="6.4.0"; sha256="1dqr98kx930y6mcvb9b39xiwshhs250gkd2vw2v6iil34sl90jv4"; depends=[]; };
   WtTopsis = derive2 { name="WtTopsis"; version="1.0"; sha256="0zwx75rgdyh7pjxjvd5xvxqkfryvhq2csn4sd0py0dgmjxb5p3ja"; depends=[]; };
   WufooR = derive2 { name="WufooR"; version="1.0.1"; sha256="0iq1lc1b22zdvclkr4yivxxf8z5mdxik7lx9r3b38h2qy2rckqb2"; depends=[dplyr httr jsonlite]; };
-  XBRL = derive2 { name="XBRL"; version="0.99.19"; sha256="0l25lfy8vzkgdq7i4bafh8b1246f8p2a6sy7c4kswzz4bnxnrihc"; depends=[Rcpp]; };
+  XBRL = derive2 { name="XBRL"; version="0.99.19.1"; sha256="0mwpk84kp6r7f6fmlby0ka58fj50y592afxzp0wcrzmx65abp7md"; depends=[Rcpp]; };
   XHWE = derive2 { name="XHWE"; version="1.0"; sha256="1ca8y9q3623d0vn91g62nrqf3pkbcbkpclmddw5byd37sdrgsi5l"; depends=[]; };
   XICOR = derive2 { name="XICOR"; version="0.3.3"; sha256="0xhb58bk3r8spd8ah3r7568np27nlrc18cswcsgavaikjpfda9vr"; depends=[psychTools]; };
   XKCDdata = derive2 { name="XKCDdata"; version="0.1.0"; sha256="1lx9frlbc549qrh4d3m79r3l9icfzqkgfgp8raa8x46a2havi0a5"; depends=[assertthat dplyr glue htmltools httr jsonlite magrittr tibble]; };
   XLConnect = derive2 { name="XLConnect"; version="1.0.5"; sha256="1b8nr8mjxi8bq4b2c191n4gpjq1fx2vqblp5kb3zmk18gzsjwp4p"; depends=[rJava]; };
-  XLS = derive2 { name="XLS"; version="0.0.9"; sha256="0c9x1rlh7q0x1m57dg4knbvdhqg3mffnwcd50yr29a4h6dy7jjf9"; depends=[mpoly rlang]; };
+  XLS = derive2 { name="XLS"; version="0.1.0"; sha256="0a4jbfz9x9rn4k5v7qh3r9p7pal4piqg01469237lkq00m3lijy5"; depends=[mpoly]; };
   XML = derive2 { name="XML"; version="3.99-0.9"; sha256="02ba407ddgil4jbjzrbw756hlxzy3mihc5dk1ngcbvsp67gxw5cw"; depends=[]; };
   XML2R = derive2 { name="XML2R"; version="0.0.6"; sha256="0azfh950r2b7ck3n1vzk3mdll7zy844nx3mbk676jxnj8gg7nxk5"; depends=[plyr RCurl XML]; };
   XNomial = derive2 { name="XNomial"; version="1.0.4"; sha256="1mwx302576rmsjllbq2clfxilm3hkyp5bw0wmwqbn0kgv5wpy8z6"; depends=[]; };
@@ -5743,7 +5750,7 @@ in with self; {
   ZRA = derive2 { name="ZRA"; version="0.2"; sha256="1sx1q5yf68hhlb5j1hicpj594rmgajqr25llg7ax416j0m2rnagi"; depends=[dygraphs forecast]; };
   ZVCV = derive2 { name="ZVCV"; version="2.1.1"; sha256="0gc76j9i8fkm2v638nyzzb1qxl4zmapbspkkaffb8gi5qyjja448"; depends=[abind BH dplyr glmnet magrittr mvtnorm Rcpp RcppArmadillo Rlinsolve]; };
   ZeBook = derive2 { name="ZeBook"; version="1.1"; sha256="0v98kbz9njjdx60x9dn8hl8mc6x19i5knjyg2gkwfd667yy1rkl6"; depends=[deSolve triangle]; };
-  Zelig = derive2 { name="Zelig"; version="5.1.7"; sha256="1x1zcmlhbbzxbb0y91ynz50nfhpki913lnmhcpmlds7drcbbirnk"; depends=[AER Amelia coda dplyr Formula geepack jsonlite MASS MatchIt maxLik MCMCpack quantreg sandwich survey survival VGAM]; };
+  ZetaSuite = derive2 { name="ZetaSuite"; version="1.0.0"; sha256="0933ri4dz0nlxkgz0rqvp5yp38fikbdncb8bgviw7zgbfglaisgr"; depends=[dplyr e1071 ggplot2 gridExtra mixtools RColorBrewer reshape2 Rtsne scater]; };
   ZillowR = derive2 { name="ZillowR"; version="0.1.0"; sha256="1wrr58p76ps29fqzzwgfvfibxrvc72p2yzs5kc2rv1yxzzcpyxvb"; depends=[RCurl XML]; };
   ZipRadius = derive2 { name="ZipRadius"; version="1.0.1"; sha256="00q4a2bsajs5ns4vdm289iaj9mczxjn3ssyrnmg2z4wicr2ljizv"; depends=[dplyr geosphere ggplot2 magrittr rlang testthat]; };
   Zseq = derive2 { name="Zseq"; version="0.2.0"; sha256="06dndi2b1q79bmxax11bv0l5ifcz1mhpvbn90y6a6xymrgcq0ivi"; depends=[gmp]; };
@@ -5761,7 +5768,6 @@ in with self; {
   aTSA = derive2 { name="aTSA"; version="3.1.2"; sha256="1p3spas0sxj08hkb8p6k2fy64w86prlw1hbnrqnrklr0hnkg2g54"; depends=[]; };
   aVirtualTwins = derive2 { name="aVirtualTwins"; version="1.0.1"; sha256="1jg19ns3mxfycc11i2c152d83n4kqz3dd6d269sijnxrw80kzjki"; depends=[party randomForest rpart]; };
   aaSEA = derive2 { name="aaSEA"; version="1.1.0"; sha256="0him4r8qyp0xssgrmdxjs45yn4d28h5anv4jyxxbbs9phb0m6j3h"; depends=[Bios2cor DT Hmisc magrittr networkD3 plotly seqinr shiny shinydashboard]; };
-  aba = derive2 { name="aba"; version="0.0.9"; sha256="1qnhnbbd8iir686gc48fld62pd4da39flf2djvvif2bxcvwl8y7a"; depends=[broom dplyr generics ggplot2 glue magrittr purrr rlang stringr tibble tidyr]; };
   abbreviate = derive2 { name="abbreviate"; version="0.1"; sha256="1cvjdbi17qz8gr5898zchm5fyz4n51z66lwps25v8a9mhwab8imi"; depends=[]; };
   abbyyR = derive2 { name="abbyyR"; version="0.5.5"; sha256="1vldnd3dg89aj6a73nhirirqddbfdrnzhb5m3679i60sark8nk6r"; depends=[curl httr plyr progress readr XML]; };
   abc = derive2 { name="abc"; version="2.1"; sha256="0ngzaaz2y2s03fhngvwipmy4kq38xrmyddaz6a6l858rxvadrlhb"; depends=[abc_data locfit MASS nnet quantreg]; };
@@ -5774,12 +5780,12 @@ in with self; {
   abd = derive2 { name="abd"; version="0.2-8"; sha256="191gspqzdv573vaw624ri0f5cm6v4j524bjs74d4a1hn3kn6r9b7"; depends=[lattice mosaic nlme]; };
   abdiv = derive2 { name="abdiv"; version="0.2.0"; sha256="053l94br8sdy30078ssncq5i5zvdxa3m72ymbwbh0cm3zmsljj29"; depends=[ape]; };
   abe = derive2 { name="abe"; version="3.0.1"; sha256="1f19h3xzzmjhvwc1rrb8z0rai3ip03y4gdi2gg9bfr5sg2nfklk6"; depends=[]; };
-  abess = derive2 { name="abess"; version="0.4.0"; sha256="07cmny3mzpkr7j4zqkg2vag7mmzxin257bwnq3vzisa5dvw8mf1w"; depends=[MASS Matrix Rcpp RcppEigen]; };
+  abess = derive2 { name="abess"; version="0.4.5"; sha256="0lv9cggbc33xpc3h6a8nsa72r7217lb4qzwvxmy7kg4f6ny1r0rs"; depends=[MASS Matrix Rcpp RcppEigen]; };
   abf2 = derive2 { name="abf2"; version="0.7-1"; sha256="0d65mc1w4pbiv7xaqzdlw1bfsxf25587rv597hh41vs0j0zlfpxx"; depends=[]; };
   abglasso = derive2 { name="abglasso"; version="0.1.1"; sha256="0h8p912l0202wyr5vjsbzw5mr70m56ab39wv833g6c4c3187479y"; depends=[MASS pracma statmod]; };
   abind = derive2 { name="abind"; version="1.4-5"; sha256="0b1zd8jbnl6l292cr9rb50m09fy3ylxvzkpgi5lfb1nbzddcwfis"; depends=[]; };
   abjutils = derive2 { name="abjutils"; version="0.3.2"; sha256="0lmf4va8qnzwg698i2h4fcwvd6dhsgdkqsfh41aa3wg1flimhsr7"; depends=[dplyr magrittr purrr rlang rstudioapi stringi stringr tidyr]; };
-  abn = derive2 { name="abn"; version="2.6-0"; sha256="0fr5pyc43hly5ry5bbygibbh9mnql7vl4r5qz42d0ry4hahyxa4w"; depends=[doParallel foreach lme4 nnet Rcpp RcppArmadillo Rgraphviz rjags]; };
+  abn = derive2 { name="abn"; version="2.7-0"; sha256="13i2f4lw1rzj89bp31sn03prq1bqj7bsxwdr8z2ql02yqks9phg0"; depends=[doParallel foreach graph lme4 nnet Rcpp RcppArmadillo Rgraphviz rjags]; };
   abnormality = derive2 { name="abnormality"; version="0.1.0"; sha256="1fzfskl9akl06nliy8hkv2a0pznpj8pwcypg3gj5r2nzvr3kan9v"; depends=[MASS Matrix]; };
   abodOutlier = derive2 { name="abodOutlier"; version="0.1"; sha256="1pvhgxmh23br84r0fbmv7g53z2427birdja96a67vqgz18r3fdvj"; depends=[cluster]; };
   abstr = derive2 { name="abstr"; version="0.4.1"; sha256="0ykds1l7bi0h06fjp0d6xshl8ar05n7ccmjbl7hz02l2v7ncfa6v"; depends=[jsonlite lwgeom magrittr od sf tibble tidyr]; };
@@ -5788,11 +5794,11 @@ in with self; {
   abundant = derive2 { name="abundant"; version="1.2"; sha256="15m3ngj5aipjg961yy5kvdg9xlfcpliw30dq6gchzxabhnfzcipd"; depends=[glasso]; };
   academictwitteR = derive2 { name="academictwitteR"; version="0.3.1"; sha256="055n0y8g2ibai5zyvw9cqbi0l1zi792cgf65jhy6mrf7j6lgrzhw"; depends=[dplyr httr jsonlite lubridate magrittr purrr rlang tibble tidyr tidyselect usethis]; };
   acc = derive2 { name="acc"; version="1.3.3"; sha256="1ii2vm47djxbixa75h690q1s2f9m9x6i8nkygik93j6dayr6kr1m"; depends=[circlize DBI ggplot2 iterators mhsmm nleqslv PhysicalActivity plyr R_utils Rcpp RcppArmadillo RSQLite zoo]; };
-  accSDA = derive2 { name="accSDA"; version="1.0.0"; sha256="0sgxy5y8kkc1n35657kifwfjsba7y5m1vbr7rkk5lmbpkzahqm61"; depends=[ggplot2 ggthemes gridExtra MASS rARPACK sparseLDA]; };
+  accSDA = derive2 { name="accSDA"; version="1.1.1"; sha256="104xdz63mnibh6827xm0pfr9zbhbi2a7iw4m1x27xjqi7zqvbky6"; depends=[ggplot2 ggthemes gridExtra MASS]; };
   acca = derive2 { name="acca"; version="0.2"; sha256="0h9dyzd1pbr4rvxqz69vlfmbibcd1n72qqgjvci7fdjjvfq2mc9p"; depends=[ggplot2 plyr]; };
   accelerometry = derive2 { name="accelerometry"; version="3.1.2"; sha256="13xzrwhr4i1nj9c8vrmfdg2rmrc8n446iihcyxmy99sm99hpzyip"; depends=[dvmisc Rcpp]; };
   accelmissing = derive2 { name="accelmissing"; version="1.4"; sha256="1nql9inx6azdzi3z4sfm2vdml2mms6krl8wzlf1dn1c97ahn57fy"; depends=[mice pscl]; };
-  accept = derive2 { name="accept"; version="0.8.3"; sha256="0qn4lm6bk0z2iijwsfbymx1c9y39988fw124ncgmlrgw5kv80b7x"; depends=[dplyr reldist]; };
+  accept = derive2 { name="accept"; version="0.9.0"; sha256="13kx8fbnbpasjklgbq2rf4n73j2s8rvy5v77ywqhfzln24937qgh"; depends=[dplyr reldist]; };
   accrual = derive2 { name="accrual"; version="1.3"; sha256="11clm9s5c5518nmp6hd6pjnp0s28y92b2i2x0xgj4j5g816p4j3z"; depends=[fgui SMPracticals tcltk2]; };
   accucor = derive2 { name="accucor"; version="0.3.0"; sha256="1byhfh9lskgpi8sx6kb7prh88a2jglrjpq206rmh98hqd3r23n5j"; depends=[CHNOSZ dplyr nnls readr readxl rlang stringr tibble writexl]; };
   ace2fastq = derive2 { name="ace2fastq"; version="0.6.0"; sha256="09kk3yyqnr2xp820g0p3aai9a21figigjr9lxkr3zjq2d8gzwfic"; depends=[stringr]; };
@@ -5820,12 +5826,13 @@ in with self; {
   activityCounts = derive2 { name="activityCounts"; version="0.1.2"; sha256="0zgxr2sk3a8kmygfxx1p5hnrfwdkxx7php6jlrhm8wv6052ck8jz"; depends=[lubridate magrittr seewave signal tibble]; };
   activityGCMM = derive2 { name="activityGCMM"; version="1.1.1"; sha256="0r11z61h8fs5dcm3yfr2njbrbh4pv7xlbqx5zngmrknhv407498z"; depends=[circular mclust overlap runjags]; };
   actogrammr = derive2 { name="actogrammr"; version="0.2.3"; sha256="1jzvarmd41yqlrkagzlc8m19n5mn0w0b36fy50lyvgrfsafjfbqa"; depends=[dplyr ggplot2 lubridate readr tidyr]; };
-  actuar = derive2 { name="actuar"; version="3.2-1"; sha256="1avqgkls4xvwgfr6j7g2f7p474rlpi82q5aksw8nzf8wcyp7592f"; depends=[expint]; };
+  actuar = derive2 { name="actuar"; version="3.2-2"; sha256="0dhpaivyga0jwvw1csagbx74biy9jfkw4a8sa871579njxl1x7p1"; depends=[expint]; };
   actuaryr = derive2 { name="actuaryr"; version="1.1.1"; sha256="08dzn565ax2l2hrn2m32k6magjbskybywl0hsgkg11nrjvkznwnx"; depends=[crayon dplyr lubridate magrittr purrr tibble]; };
   acumos = derive2 { name="acumos"; version="0.4-4"; sha256="15i4xbcdk5vxjrgac32zh4439v0vmabnw3jvsmxiipap5frp7rpi"; depends=[httr jsonlite RestRserve RProtoBuf Rserve yaml]; };
   ada = derive2 { name="ada"; version="2.0-5"; sha256="1h3a07czp0w3hrhjcg1fz721y8vsfclzqi3rq8qfzgpfb4h1f06r"; depends=[rpart]; };
   adaHuber = derive2 { name="adaHuber"; version="1.1"; sha256="0giypz04m9anssa2r3hlf95lnj74i3ir48p5j898i2z1gmf8m14w"; depends=[Rcpp RcppArmadillo]; };
   adabag = derive2 { name="adabag"; version="4.2"; sha256="109wrl1pwvmyv2l909hrvk7dg4aa9pv449mvdycp50zwrsw9w0a7"; depends=[caret doParallel foreach rpart]; };
+  adace = derive2 { name="adace"; version="1.0.1"; sha256="1zkvfbvqwxh4k5a0l06khdblm16q7knfcrxfzpmck8053z7kilgr"; depends=[pracma reshape2]; };
   adagio = derive2 { name="adagio"; version="0.8.4"; sha256="0ihv05402iq003m0338f85pnqnlnrmx0pf1mg8cz9sgi5h98mbnl"; depends=[lpSolve]; };
   adamethods = derive2 { name="adamethods"; version="1.2.1"; sha256="150awbd3skb1mqca18bqjykhyycqw8crviw66s6qrcnmcsbk77pj"; depends=[Anthropometry archetypes FNN foreach nnls tolerance univOutl]; };
   adana = derive2 { name="adana"; version="1.1.0"; sha256="0zi3a17rapc1z074k3yzgjv2b6ba6c9d54b1hm0ivvgfd335981f"; depends=[optimx ROI ROI_plugin_optimx]; };
@@ -5837,7 +5844,7 @@ in with self; {
   adaptalint = derive2 { name="adaptalint"; version="0.2.4"; sha256="15qdcvnnbgcps8j5k79354wsc9alswijv8lcafg2i3lghaw536yf"; depends=[dplyr lintr purrr]; };
   adaptiveGPCA = derive2 { name="adaptiveGPCA"; version="0.1.2"; sha256="0bb6hw77dfa66b12xyazlp992gwjb1plylixlmq4cv4yjhnl9n5z"; depends=[ape ggplot2 phyloseq shiny]; };
   adaptivetau = derive2 { name="adaptivetau"; version="2.2-3"; sha256="1jficl4yidix35q8yqs3pcv813wq3pg4hpw4ah4dprvg95bl7wwx"; depends=[]; };
-  adaptsmoFMRI = derive2 { name="adaptsmoFMRI"; version="1.1"; sha256="1h79gh1bd6s2xhwf4whh72wf2cz4di2p8dnlf6192mfg108qc6nw"; depends=[coda Matrix MCMCpack mvtnorm spatstat]; };
+  adaptr = derive2 { name="adaptr"; version="1.0.0"; sha256="1h23jk5z65z70l09l8kznsqznp8v7zjkgwpc9xgy3ghp8izlfnp3"; depends=[]; };
   adass = derive2 { name="adass"; version="1.0.0"; sha256="1g702pg335q9jwgdygb7n364ibad6z27fcd9yfim8gi4fcpjwlkq"; depends=[fda matrixcalc mvtnorm plot3D Rfast SparseM]; };
   add2ggplot = derive2 { name="add2ggplot"; version="0.3.0"; sha256="0c94i1cfp2pvplvxmfvvz2fyj026r1jnax05mrzrc7ppnqzy25y0"; depends=[ggplot2 magick magrittr RColorBrewer zeallot]; };
   addScales = derive2 { name="addScales"; version="1.0-1"; sha256="1bw4ljyyswdhqyir9i6lj0mg9lm6ry4zpqp2h6w2bpk37rvs1w38"; depends=[lattice]; };
@@ -5863,25 +5870,26 @@ in with self; {
   adepro = derive2 { name="adepro"; version="3.2.0"; sha256="0sw42yld4bjgfiqm957ply605zsj66mmwvkzi73hsbkk31w1k5fb"; depends=[audio Cairo dplyr gclus haven jsonlite MASS readr rlang seriation shape shiny shinyBS shinyjs shinyWidgets TeachingDemos tidyr V8]; };
   adept = derive2 { name="adept"; version="1.2"; sha256="1dpfmfnqzci6p7wqwpp8y0cisx11r8kdsqjm85skb512n35m0i3a"; depends=[dplyr dvmisc magrittr pracma]; };
   adeptdata = derive2 { name="adeptdata"; version="1.1"; sha256="0wzavbwc1slyr3wh5jkapghpa748rc86pbw5b4gcxki73r08r7j2"; depends=[]; };
-  adespatial = derive2 { name="adespatial"; version="0.3-14"; sha256="1gxz9jc8br34s7yfkwnbijpnix5gbsr37ihn2xjj6ypdq54pbvx2"; depends=[ade4 adegraphics adephylo lattice MASS shiny sp spdep vegan]; };
+  adespatial = derive2 { name="adespatial"; version="0.3-16"; sha256="08d830c36738v98rn4hn95y01045v2xzyf43cy7aqckapkhdcywq"; depends=[ade4 adegraphics adephylo lattice MASS shiny sp spdep vegan]; };
   adfExplorer = derive2 { name="adfExplorer"; version="0.1.6"; sha256="06sk68580i7jg9lk4jj64ns04y4q6amzsh0k7nxhfdib107yajnp"; depends=[]; };
   adheRenceRX = derive2 { name="adheRenceRX"; version="1.0.0"; sha256="19kimj88dmcc8mq3s4l7pph9jz8p57gbjyn0pn5zkrcjdrwncslm"; depends=[anytime dplyr lubridate purrr Rcpp rlang tidyr]; };
   adhoc = derive2 { name="adhoc"; version="1.1"; sha256="0a59fv9glcqh4zzd0887ndrhlcaylja6vay2ifajp8an29gjk1vv"; depends=[ape pegas polynom]; };
   adimpro = derive2 { name="adimpro"; version="0.9.3"; sha256="0njw38vcdm02sni193nj10mpv7hiklpamrkjlz5bnhjxx9mvf4cl"; depends=[awsMethods]; };
   adiv = derive2 { name="adiv"; version="2.1.1"; sha256="08cvnj62vm2vi73qrv87hxch4fsl5ab8fp5lcm143sp0f9n8daa6"; depends=[ade4 adegraphics adephylo ape cluster FactoMineR lpSolve phylobase phytools rgl]; };
+  adjROC = derive2 { name="adjROC"; version="0.2.0"; sha256="0ipvp7f7asg8pbzbm3rnn8hp20gs3aqispvagddjw1yd39h0zgrk"; depends=[ggplot2 ROCit]; };
   adjSURVCI = derive2 { name="adjSURVCI"; version="1.0"; sha256="0nv6m7ds57d0h44d745s0424ssrgn39ihd294dgrzrpmh8gxhq95"; depends=[Rcpp RcppArmadillo survival]; };
-  adjclust = derive2 { name="adjclust"; version="0.6.3"; sha256="07x9zpq3j47jhf4jaddr98bb07l1l743v3ic4b30kk3rbcrpqp7p"; depends=[capushe Matrix Rcpp RcppArmadillo sparseMatrixStats]; };
+  adjclust = derive2 { name="adjclust"; version="0.6.4"; sha256="186vj67az1r8gqrls8wn18dkx5mjrfj5879rrgvj6na4xl48vx3c"; depends=[capushe Matrix Rcpp RcppArmadillo sparseMatrixStats]; };
   adjustedcranlogs = derive2 { name="adjustedcranlogs"; version="0.1.0"; sha256="08apfvpqvnnalx230p4qf5ckrwm1sgzras4zfrysgym5d4map9ci"; depends=[cranlogs dplyr lubridate rvest xml2]; };
   adklakedata = derive2 { name="adklakedata"; version="0.6.1"; sha256="1lzj3ib4bgfkq5lq12n47pwc52h7k35xbbwj6brwsgx1gd4fx3x6"; depends=[httr rappdirs]; };
-  adlift = derive2 { name="adlift"; version="1.4-1"; sha256="14q7fnhlqvxdhnfjhdhfmadz241srplbm069a7ybbsql21cphpf3"; depends=[EbayesThresh]; };
+  adlift = derive2 { name="adlift"; version="1.4-3"; sha256="1lj99vm014fglw57qc00wzxbx4kzb4ky5iisqd756dfg3k41wa55"; depends=[EbayesThresh]; };
   admiral = derive2 { name="admiral"; version="0.6.3"; sha256="0b40v2y09ia8fhl70i261dmhl18vcn9dy5crr2hb44dnz3rb533c"; depends=[admiral_test assertthat dplyr hms lubridate magrittr purrr rlang stringr tidyr tidyselect]; };
   admiral_test = derive2 { name="admiral.test"; version="0.1.2"; sha256="0p5qv43cbyyxj2i6awkayrfk9rc07h55ck9xpknyd5nf9c08gd1y"; depends=[dplyr magrittr rlang]; };
-  admisc = derive2 { name="admisc"; version="0.25"; sha256="0cf8dy0mi3ynm2ic8jp0qi1samyzashwlzz0l64izqqv2s4hpyzp"; depends=[]; };
-  admix = derive2 { name="admix"; version="0.3.2"; sha256="0si2avjqw6rmv2ndsj1ppmqkafnsjx06m2h4jxfrwf2kxfp2rrn1"; depends=[fdrtool Iso latex2exp MASS orthopolynom pracma Rcpp]; };
+  admisc = derive2 { name="admisc"; version="0.26"; sha256="19zkwyp8gvq8f74midmwld4azx44sbqxqx9mgs726i6dhnls6821"; depends=[]; };
+  admix = derive2 { name="admix"; version="0.4.0"; sha256="1vfga2l6yay4l8q53siibf1ljr77fmcgbddlag414jmv2awckr0c"; depends=[fdrtool Iso latex2exp MASS orthopolynom pracma Rcpp]; };
   admixr = derive2 { name="admixr"; version="0.9.1"; sha256="0wszpzs53cbnha13g2ldpq6z5ndw2v2xgrzadqkjm3hsp6akv4bl"; depends=[dplyr magrittr readr rlang stringr tibble]; };
   admmDensestSubmatrix = derive2 { name="admmDensestSubmatrix"; version="0.1.0"; sha256="1a5lfm10aj6wdjibdnmffn75zvy6x69w8nqcx2i23gxg6v0xlqcl"; depends=[Rdpack]; };
   adnuts = derive2 { name="adnuts"; version="1.1.2"; sha256="0nkciv5sfj3bws6kpgrnaq4ziasibaz44w64mb86zmr8420nyc1q"; depends=[ellipse ggplot2 R2admb rlang rstan snowfall]; };
-  adobeanalyticsr = derive2 { name="adobeanalyticsr"; version="0.3.0"; sha256="1i5bc6lmsynfyhz7kr7zv2nx5ixlnkh6zl5grr2yh0n5g44m19nr"; depends=[assertthat dplyr ggplot2 glue httr jose jsonlite lifecycle lubridate memoise openssl progress purrr R6 rlang scales stringr tibble tidyr vctrs]; };
+  adobeanalyticsr = derive2 { name="adobeanalyticsr"; version="0.3.2"; sha256="0p1c2hya3jqsvfvrx8a3fgs995snmkvxh9gv5qpmk312wm2gwb09"; depends=[assertthat dplyr ggplot2 glue httr jose jsonlite lifecycle lubridate memoise openssl progress purrr R6 rlang scales stringr tibble tidyr vctrs]; };
   adoptr = derive2 { name="adoptr"; version="1.0.0"; sha256="08d2fsqh5vczfr9cc8l554p6f0x85g58i5zg5j2m0chlmcispfk2"; depends=[glue nloptr]; };
   adpss = derive2 { name="adpss"; version="0.1.1"; sha256="0p2gyfc4rxmms8zdsq4hjsh1njfl2s736arq8aq1am2wh1w9k5ch"; depends=[Rcpp]; };
   ads = derive2 { name="ads"; version="1.5-5"; sha256="1i6cv296i5di9irmch9wg6bpxg7s026axspq0mhcwrfyqnw8xnxs"; depends=[ade4 spatstat_geom]; };
@@ -5893,7 +5901,7 @@ in with self; {
   adwordsR = derive2 { name="adwordsR"; version="0.3.1"; sha256="1w5qg4psm8pj89f09pz7in8zkafaimik1n6hx29y55jpmbxbk2gn"; depends=[RCurl rjson]; };
   afc = derive2 { name="afc"; version="1.4.0"; sha256="1iy1wa88kf6zi6x7lbd0jdir653cvzvdraliqpxbac413wwb5gwl"; depends=[]; };
   afdx = derive2 { name="afdx"; version="1.1.1"; sha256="1654vxakdd11b5zhwy1vcv127xk5rifan6fs1k6w1qsk74j4drqv"; depends=[dplyr magrittr maxLik tidyr]; };
-  afex = derive2 { name="afex"; version="1.0-1"; sha256="1k04n6gwk2n8kg0l3yk5j3wrqgkv5f6w04yjpif9y451hx5w7svg"; depends=[car lme4 lmerTest pbkrtest reshape2]; };
+  afex = derive2 { name="afex"; version="1.1-0"; sha256="0h8zqv82dqll19l3p89a2csvgnx8ayb2bajq7b35a8svhj427zax"; depends=[car lme4 lmerTest pbkrtest reshape2]; };
   affinity = derive2 { name="affinity"; version="0.2.5"; sha256="0nfh3g8nifv5773pihgzxh62wa837i2dk1kgf15z28cb5xfj2y8h"; depends=[raster reproj]; };
   affinitymatrix = derive2 { name="affinitymatrix"; version="0.1.0"; sha256="10i7wzl4xiphj5f466ga7c4ha3mkyqn63x1z0jyx50m0b84sggq1"; depends=[expm ggplot2 ggrepel Hmisc MASS]; };
   affluenceIndex = derive2 { name="affluenceIndex"; version="2.1"; sha256="0vcg4gphs0yxdxsgw7kj9r3hvjpfs2z8sjvllvfw9ki3y7jy5jb8"; depends=[spatstat spatstat_geom]; };
@@ -5901,6 +5909,7 @@ in with self; {
   afpt = derive2 { name="afpt"; version="1.1.0.1"; sha256="0cg5cdm9nl1hs6f3j0ljpw4bkqvh3ksyj615b9nnbqs5k28lyds9"; depends=[]; };
   aftgee = derive2 { name="aftgee"; version="1.1.6"; sha256="1sq6d6zkr4whg61phz22gb5zh7wxg2il39w2g5s812i4hiipqj4r"; depends=[BB geepack MASS survival]; };
   afthd = derive2 { name="afthd"; version="1.1.0"; sha256="0gg2cp3sj28f3pi5rqh737hna3imwarwas01jacm0m2h27587k7y"; depends=[glmnet photobiology R2jags rstpm2 survival]; };
+  ag5Tools = derive2 { name="ag5Tools"; version="0.0.1"; sha256="1390acslndzvvhdc6pk9cfvhval1wqgiic353f03qv0rvhxbyzad"; depends=[fs reticulate terra]; };
   agRee = derive2 { name="agRee"; version="0.5-3"; sha256="1wi8jn14kpsj5z49my6fz8j6zxysddxm8svw86cnzsmnbj6mzq7x"; depends=[coda lme4 miscF R2jags]; };
   aggregation = derive2 { name="aggregation"; version="1.0.1"; sha256="0j9g604m2ccc7hcy02539yja9cf3xcbl25gvp838bp4x8w18my46"; depends=[]; };
   aghq = derive2 { name="aghq"; version="0.4.0"; sha256="12zzadx0qfh5wg8092w777c9ymd1m6gq3gwmfp9pf9bn3s31vij3"; depends=[Matrix mvQuad numDeriv polynom rlang]; };
@@ -5940,7 +5949,7 @@ in with self; {
   airr = derive2 { name="airr"; version="1.3.0"; sha256="1lpzd8qz1dr6kkrbc8lnqbknxyamv4y6ahad5w9q5dgwdwn0kpym"; depends=[readr stringi yaml]; };
   airt = derive2 { name="airt"; version="0.2.1"; sha256="1az5fd9zr6lgmcim4v6rzckl9yyw9myvhmzs76n71864gnzkbna4"; depends=[dplyr EstCRM magrittr mirt pracma rlang tibble tidyr]; };
   ajv = derive2 { name="ajv"; version="1.0.0"; sha256="1qd5ncb7rdnnvqfknsvq9nrpxrh0zv3jyh4b91dcvfvhp262vfrm"; depends=[RJSONIO V8 yaml]; };
-  akc = derive2 { name="akc"; version="0.9.6"; sha256="0q2qvr1qq0vmc8hv7ryzw6z2c9vsk78xrx2dzyw0jd4yk0vxiaf7"; depends=[data_table dplyr ggforce ggplot2 ggraph ggwordcloud igraph magrittr rlang stringr textstem tibble tidyfst tidygraph tidytext]; };
+  akc = derive2 { name="akc"; version="0.9.7"; sha256="0wyi7g1s0j366gj33v3rhlv3hdj5rakb6lmhp77l9zn0bbgmq38m"; depends=[data_table dplyr ggforce ggplot2 ggraph ggwordcloud igraph magrittr rlang stringr textstem tibble tidyfst tidygraph tidytext]; };
   akiFlagger = derive2 { name="akiFlagger"; version="0.3.0"; sha256="08z5jvigzvl3af17dd8l6zil0s694i22x0a7xvb3n4fvg6fargz4"; depends=[data_table dplyr shiny zoo]; };
   akima = derive2 { name="akima"; version="0.6-2.3"; sha256="0hvaa2n1r82fd60ksx4n4ia02fbm67fqdijfy2b2xywq8861i6rv"; depends=[sp]; };
   akmbiclust = derive2 { name="akmbiclust"; version="0.1.0"; sha256="19dj12vlry6f3agzrnshx2c4rpa2h7dlx2138r49jjy9sm48pyfw"; depends=[]; };
@@ -5954,6 +5963,7 @@ in with self; {
   aldvmm = derive2 { name="aldvmm"; version="0.8.4"; sha256="1dnmm3driw8ybqd10zlsaink5zh5f0pj2qqxda7y34s9shz7yqh9"; depends=[checkmate numDeriv optimr]; };
   alfr = derive2 { name="alfr"; version="1.2.1"; sha256="1ldq8gvgqjjabn86hdqb6hxch8x4hvr6djv5ly4mx039dipc8jxi"; depends=[httr jsonlite magrittr stringr]; };
   alfred = derive2 { name="alfred"; version="0.2.0"; sha256="1y0s6vn0piq4wnlc6v143va0qkklm67aa653lwgq926nfnjxz6as"; depends=[curl dplyr httr jsonlite lubridate magrittr rlang tibble tidyr]; };
+  algaeClassify = derive2 { name="algaeClassify"; version="1.3.2"; sha256="1ggxyj79ddc3c0q3fn1dbx5rmvq5jqrza9dzswwb9sfpfb8acdfh"; depends=[lubridate]; };
   algo = derive2 { name="algo"; version="0.1.0"; sha256="1g18p8jyj9crkqm16y2im3r9xzqwa36javv4vi1wvsqkg31d81si"; depends=[glue htmltools jsonlite]; };
   algorithmia = derive2 { name="algorithmia"; version="0.3.0"; sha256="1ccmcsyxncyv8k0fjvr5y44amygqi7qx2dy6rsy3a5pw281hllr4"; depends=[base64enc httr rjson]; };
   aliases2entrez = derive2 { name="aliases2entrez"; version="0.1.2"; sha256="11myzwvmagnj35qrrxr35hklzv76c0c4h2zl64y3lzzn5rfii0n6"; depends=[AnnotationDbi doParallel foreach limma org_Hs_eg_db RCurl readr]; };
@@ -5968,7 +5978,7 @@ in with self; {
   alpaca = derive2 { name="alpaca"; version="0.3.3"; sha256="1mpyy9wg2wvznkd9vgzaxyz87py9zmlrlrzrhqbmqiwqh5y99wnq"; depends=[data_table Formula MASS Rcpp RcppArmadillo]; };
   alphaOutlier = derive2 { name="alphaOutlier"; version="1.2.0"; sha256="09yrbv7jsiymw5gzp8p92ki70v1fys2k75x4sb9s7wy3c58wn1cd"; depends=[nleqslv quantreg Rsolnp]; };
   alphabetr = derive2 { name="alphabetr"; version="0.2.2"; sha256="1pmp6zwhgycb38y5jbvrbv2nza7gyjh508vy09ml483c2cysvc1r"; depends=[clue dplyr multicool Rcpp]; };
-  alphahull = derive2 { name="alphahull"; version="2.3"; sha256="0vir69bgydkb3l47kn0fs8x6nkh6vgbhrjsfhf1gnzvwj66iig29"; depends=[ggplot2 R_utils sgeostat spatstat_geom spatstat_random splancs tripack]; };
+  alphahull = derive2 { name="alphahull"; version="2.4"; sha256="1kpip0zb34xi057qn3zzk0fnb3l1zr580i815wljbqwswxvncczj"; depends=[ggplot2 R_utils sgeostat spatstat_geom spatstat_random splancs tripack]; };
   alphashape3d = derive2 { name="alphashape3d"; version="1.3.1"; sha256="0d3rxvsb0yl900dlpr1v5w56z8ci9rbp5dlwx7l2laifyprsns2i"; depends=[geometry rgl]; };
   alphastable = derive2 { name="alphastable"; version="0.2.1"; sha256="01gwrcxlj2jlb8axs5qmrsixk3a8b7044ypyjg6dpdcxfbcf5fvp"; depends=[mvtnorm nlme nnls stabledist]; };
   alphavantager = derive2 { name="alphavantager"; version="0.1.2"; sha256="0c97p8njga4xffvsa0kj0s4y0agjr44y9bnjxs5phm1ldcqjs0yj"; depends=[dplyr glue httr jsonlite purrr readr stringr tibble tidyr timetk]; };
@@ -5978,20 +5988,21 @@ in with self; {
   altair = derive2 { name="altair"; version="4.2.1"; sha256="1132q369yxrfix76xizw22rpbixqbfsf23c3p1m751h536hmx2f6"; depends=[assertthat htmlwidgets magrittr repr reticulate vegawidget]; };
   altfuelr = derive2 { name="altfuelr"; version="0.1.0"; sha256="0k3f4wr9gbn5aig40xg817hrnz2lx8g4adyy18s59fs8dw03v87h"; depends=[dplyr httr jsonlite lubridate magrittr purrr stringr]; };
   altmeta = derive2 { name="altmeta"; version="4.0"; sha256="17cyiydf4n5j64izj7jph2v43h4x9kfd5b0x6m0ik5ci2aw8xzr5"; depends=[coda lme4 Matrix metafor rjags]; };
-  amanida = derive2 { name="amanida"; version="0.2.0"; sha256="164ln3dagmdcbqbgywhgxkq0nbnf83p8hw16bvkdhydhzg82s021"; depends=[dplyr ggplot2 ggrepel kableExtra knitr magrittr readr readxl rmarkdown tibble tidyr tidyverse webchem]; };
+  amanida = derive2 { name="amanida"; version="0.2.3"; sha256="0vi1x43s9xbr6ggx6km342qfqn2yppinsgn50gm73vckvb8672gs"; depends=[dplyr ggplot2 ggrepel kableExtra knitr magrittr readr readxl rmarkdown tibble tidyr tidyverse webchem]; };
   amanpg = derive2 { name="amanpg"; version="0.3.3"; sha256="0hmdc4kiaxa41hvva93dl48c1lbwih24pjpy569n0cg1zq16fc9x"; depends=[]; };
   amap = derive2 { name="amap"; version="0.8-18"; sha256="0zpcb73w413na23f6giml9311jh0j0y766w2fh9i40d2h7bbvyvs"; depends=[]; };
   amapGeocode = derive2 { name="amapGeocode"; version="0.6.0"; sha256="0j04hg2ks7578fiaymj295yll77xm6x5svmxx6m4n0djky8j10n1"; depends=[data_table furrr httr jsonlite magrittr sjmisc xml2]; };
   ambhasGW = derive2 { name="ambhasGW"; version="0.0.2"; sha256="0v517i4whip45pk6bwlwval9pz367pcgzz62b2z22mrwgi6m6bck"; depends=[raster rgdal yaml]; };
   ambient = derive2 { name="ambient"; version="1.0.0"; sha256="0b8nd8g0ydglql2cwi4wmlnv5kyid8q51vz0p08f9m5x73k3z2bd"; depends=[Rcpp rlang]; };
-  ambiorix = derive2 { name="ambiorix"; version="2.0.0"; sha256="106lcrg4pj6zniib5zm8bp2s94lhwr9nmx2lxv684vg145m4pia5"; depends=[assertthat cli fs glue httpuv jsonlite log promises websocket]; };
+  ambiorix = derive2 { name="ambiorix"; version="2.1.0"; sha256="1831i5fv966cghp5xgq71wqzldlajyjj2p4nkhbw007w2dcn0y21"; depends=[assertthat cli fs glue httpuv jsonlite log promises websocket]; };
   amelie = derive2 { name="amelie"; version="0.2.1"; sha256="0f4rfijskrw9nmyzbrbz6yfa9d0a5cxjw8n9c36hc6jvh377i7k7"; depends=[]; };
   amen = derive2 { name="amen"; version="1.4.4"; sha256="00c4dw6s8yxagbgadvcpw4ima89aqjqgpm3460zi97xwq9404f1d"; depends=[]; };
   amerifluxr = derive2 { name="amerifluxr"; version="1.0.0"; sha256="099vv1axgp4jfi9ic4rqsdcv8a5dz1z0zdmdx8r8h474p3jdqm7c"; depends=[heatmaply httr jsonlite memoise RCurl readxl]; };
   amerika = derive2 { name="amerika"; version="0.1.0"; sha256="1c0bi0wrc89d0zv0wzmdvka66mcikgi1w4gn1i22mvg5bivhzaqx"; depends=[]; };
   aml = derive2 { name="aml"; version="0.1-1"; sha256="09xxlxp784wlb561apns3j8f2h9pfk497cy5pk8wr4hhqqv4d3al"; depends=[lars]; };
-  ammiBayes = derive2 { name="ammiBayes"; version="1.0-0"; sha256="1j5zr1yk2qwba1j5kjc48f9jygi6zn6d33m13jarmczn8y6nxf22"; depends=[bayesplot coda distfree_cr Hmisc lattice latticeExtra movMF msm spam]; };
+  ammiBayes = derive2 { name="ammiBayes"; version="1.0-1"; sha256="1m60pg84nhrlhj3kgja766xms2i9dkx0r5vggskfx82mynnlhj9y"; depends=[bayesplot coda distfree_cr Hmisc lattice latticeExtra movMF msm spam]; };
   ammistability = derive2 { name="ammistability"; version="0.1.2"; sha256="0ak20y5iv1cg5y06srdlfk5qp5c463ky41l350shnqpq550azy11"; depends=[agricolae ggcorrplot ggplot2 mathjaxr Rdpack reshape2]; };
+  amp = derive2 { name="amp"; version="1.0.0"; sha256="11132s3bdjcldvpws7yc1w4nifvq0iaavdda2zj0wwmi4rw5xx5c"; depends=[dplyr ggplot2 glmnet MASS rlang SuperLearner tidyr]; };
   ampd = derive2 { name="ampd"; version="0.2"; sha256="0bi8qngd37n60ym516yjcahxc536vdwm60rq5ld32170hww69j7c"; depends=[]; };
   ampir = derive2 { name="ampir"; version="1.1.0"; sha256="0nnsxrnq3m1frrjp3i8bhm67x6xnl0scyb67wxgm5x7b187svhfj"; depends=[caret kernlab Peptides Rcpp]; };
   amt = derive2 { name="amt"; version="0.1.7"; sha256="04sjvb4zvalv22q90n50rdkkj002vr5shhpgxacaac7hy0pgpcyc"; depends=[checkmate circular ctmm dplyr fitdistrplus lubridate magrittr purrr raster Rcpp Rdpack rgeos rlang sf sp survival tibble tidyr]; };
@@ -6015,6 +6026,7 @@ in with self; {
   animaltracker = derive2 { name="animaltracker"; version="0.2.0"; sha256="1zv2nj4wfskz1lxfgw8l4gyrlv418drk8zl4cw55i5na6a39shcv"; depends=[dplyr forcats geosphere ggplot2 httr leaflet leaflet_extras lubridate maptools raster rgdal scales shiny shinyBS shinycssloaders shinyjs shinythemes shinyWidgets sp tibble tidyr zoo]; };
   animation = derive2 { name="animation"; version="2.7"; sha256="0sg4sz5lkn85yzpcg22xkr7921cbnh7g74nlp9imjy7c0hdqyhc8"; depends=[magick]; };
   animint2 = derive2 { name="animint2"; version="2022.1.25"; sha256="0c4pb0wzd84a79lbqwjl87q5d3vainhxr9ifq5k05rxhdizpjwd0"; depends=[digest gtable knitr lazyeval MASS plyr reshape2 RJSONIO scales tibble]; };
+  animl = derive2 { name="animl"; version="1.0.0"; sha256="0rc82y5z1jkd9bfq2dnn50sr2lf6vhs7yyn1fwfn13krczc9zcbp"; depends=[av data_table dplyr exifr imager jpeg keras pbapply reticulate tfdatasets]; };
   anipaths = derive2 { name="anipaths"; version="0.10.1"; sha256="14shy474795mivxvn0vyfgzwabvhxafgjazcwhz2250smjzdhw03"; depends=[animation crawl dplyr ellipse ggmap ggplot2 igraph lubridate magrittr mgcv raster RColorBrewer scales sp stringr tidyr tidyselect]; };
   aniview = derive2 { name="aniview"; version="0.1.0"; sha256="1klakkmdk4xllaxd0pllvxi4396n6rz2idz55niy91mp0fhcjhwf"; depends=[htmltools jsonlite]; };
   anndata = derive2 { name="anndata"; version="0.7.5.3"; sha256="115v7gdilayd18hd519vzkixp2s6rvvrd1inc1i6amn7d0spy8r1"; depends=[assertthat Matrix R6 reticulate]; };
@@ -6031,13 +6043,13 @@ in with self; {
   anthroplus = derive2 { name="anthroplus"; version="0.9.0"; sha256="1wnj2idgdnh2gdw34x40adijf2sxp3k72j45pqqxg4aqc1wrvvv1"; depends=[anthro]; };
   anticlust = derive2 { name="anticlust"; version="0.6.1"; sha256="1f06968i5hpfavcwmcqij0mb13jhp02gbkqiijilyiz2kc8p0nfc"; depends=[Matrix RANN]; };
   antitrust = derive2 { name="antitrust"; version="0.99.25"; sha256="0f4alzr4nmjhxwk3c6mi5vrs2i20dambpc9zfkxf04rxbcw2znvy"; depends=[BB numDeriv]; };
-  antiword = derive2 { name="antiword"; version="1.3"; sha256="034znb0g9wwb8gi1r3z75v3sbb4mh83qrc4y8mbfx5lbgh8zhj6j"; depends=[sys]; };
+  antiword = derive2 { name="antiword"; version="1.3.1"; sha256="123v8zlczwh6fr1v3x7dl3885xlmddq1bqlcxih8zh07w0hlk1k2"; depends=[sys]; };
   anyLib = derive2 { name="anyLib"; version="1.0.5"; sha256="1x9x58hhkkwdskmgdjv94ynh811n9w0752hh4214adl1qpn576vm"; depends=[BiocManager curl devtools httr withr]; };
   anybadger = derive2 { name="anybadger"; version="0.1.0"; sha256="1aa09v5k5nlvhlir8saa5gnrq7cb1djbdc8y85cjgb3skay94hzv"; depends=[config glue magrittr purrr R6]; };
   anyflights = derive2 { name="anyflights"; version="0.3.2"; sha256="0531cqamk8sqb2df3brwyak2rs65mc5r3vsywc6xrr1nlaw62zd6"; depends=[curl dplyr glue httr lubridate progress purrr readr roxygen2 stringr usethis vroom]; };
   anytime = derive2 { name="anytime"; version="0.3.9"; sha256="0jjpqynai5nd7mfy1smb44356f3d5bmpxhs1i9x9jw5c959c35hh"; depends=[BH Rcpp]; };
   ao = derive2 { name="ao"; version="0.2.1"; sha256="17qvqvbhybp2icwna7iwib65mfcjxf1dyx38vahgzasd9w8wrfck"; depends=[ggplot2 optimx R_utils]; };
-  aod = derive2 { name="aod"; version="1.3.1"; sha256="1g03ajhs6bid80i83xn3917abhymzgrydqx86wxxpkqga018hb85"; depends=[]; };
+  aod = derive2 { name="aod"; version="1.3.2"; sha256="0p2i536s0aa54rah1l465g77k2ldn6jm6s25y9vc06mk29xvx1cv"; depends=[]; };
   aods3 = derive2 { name="aods3"; version="0.4-1.1"; sha256="1kdmgzd5nkzm0awdjls6fc8p9hxsph9ha9k1jxbppdi4i6f0i7rv"; depends=[boot lme4]; };
   aof = derive2 { name="aof"; version="0.1.2"; sha256="0552i5wvm04dq8a8y1x36sprc9cbx6k7c3bmsgqxm71dpsxajb0i"; depends=[bcpa]; };
   aoos = derive2 { name="aoos"; version="0.5.0"; sha256="0y92vs27i0mkpjdclqzq4j9g1axkymhi3v8xp1v6hazh35yzjkfj"; depends=[magrittr roxygen2]; };
@@ -6049,7 +6061,7 @@ in with self; {
   apaText = derive2 { name="apaText"; version="0.1.1"; sha256="1r217k60w027i63nbj24b1rm37m4qf7a6iirc941s945babkxcmb"; depends=[dplyr]; };
   apache_sedona = derive2 { name="apache.sedona"; version="1.1.1"; sha256="1bsxyb1303s907w5h7m7wacgsjjgb1y35zvkpmn1ymz0zsfbad4p"; depends=[DBI dbplyr dplyr rlang sparklyr]; };
   apc = derive2 { name="apc"; version="2.0.0"; sha256="0vh6iyxm46k8sfa1xgz0y6m619snnm8s072kml5qgiiw5s7bqnpq"; depends=[AER car ChainLadder ggplot2 ISLR lattice lmtest plm plyr reshape survey]; };
-  apcf = derive2 { name="apcf"; version="0.1.7"; sha256="071gax2w9b0l74vls59y6syg2swiagz5xkab1x2wmmxk16y49l1s"; depends=[Rcpp]; };
+  apcf = derive2 { name="apcf"; version="0.2.0"; sha256="0r107kl7s2zaa5mvm3926ww01k4brh4qn7y729f7l2lnmy3zidx5"; depends=[Rcpp wk]; };
   apcluster = derive2 { name="apcluster"; version="1.4.9"; sha256="0wnbb3kj9m7rfq63xr43jjf6n8jxm1r2wvvx6g0qkss0wvipbb1s"; depends=[Matrix Rcpp]; };
   apdesign = derive2 { name="apdesign"; version="1.0.0"; sha256="041zyd7ih9nnj92jj9vb9ya1ij9lmj1dzx64q74vyiadw1ix5l66"; depends=[Matrix]; };
   ape = derive2 { name="ape"; version="5.6-2"; sha256="0mqjsh7maczd02iwa4fb896q3kgd9jnlilq7y1yz18ch0c54aqlv"; depends=[lattice nlme Rcpp]; };
@@ -6060,14 +6072,14 @@ in with self; {
   aphylo = derive2 { name="aphylo"; version="0.2-1"; sha256="0kvxz5r1z63610k127ji7dangrq7pd0zfgf5yqsvn0v7j4c9c5v5"; depends=[ape coda fmcmc MASS Matrix Rcpp xml2]; };
   apisensr = derive2 { name="apisensr"; version="0.3.0"; sha256="1mis266s4m0hp34m7b7p008dvw7780r8rypgbpk7h5hgd1w5d7m0"; depends=[config episensr ggplot2 ggraph glue golem htmltools igraph rhandsontable rmarkdown shiny shinyjs shinymaterial]; };
   aplore3 = derive2 { name="aplore3"; version="0.9"; sha256="0af6klscsxvh4amp519b6r41bzysf61p040fj4l5706bbya1arhw"; depends=[]; };
-  aplot = derive2 { name="aplot"; version="0.1.2"; sha256="1w09flb6a4fxibfrm1z24pg672r80b7phgc0m7mv3vfw3l84v749"; depends=[ggfun ggplot2 ggplotify magrittr patchwork yulab_utils]; };
+  aplot = derive2 { name="aplot"; version="0.1.3"; sha256="10cqa35bh4lhpnybaalp3d69k392b25ba16dgbngqz0vikzp4czk"; depends=[ggfun ggplot2 ggplotify magrittr patchwork yulab_utils]; };
   aplpack = derive2 { name="aplpack"; version="1.3.5"; sha256="0kv6sbw8832hlfc6164bfvg1ga4hkfw4c7i11dlz7mbhrw2vqm24"; depends=[]; };
   apng = derive2 { name="apng"; version="1.1"; sha256="0g1rs8wdcbqhyjis2r1a4d96jf0486ncnap97yjv08nk574d42wp"; depends=[bitops]; };
   apollo = derive2 { name="apollo"; version="0.2.7"; sha256="05c3wkvpg3n44k9lbrsd0i4l1q554mqfcx7cqph60ngqfbrkvlcg"; depends=[coda Deriv matrixStats maxLik mnormt mvtnorm numDeriv randtoolbox Rcpp RcppArmadillo RcppEigen RSGHB stringr tibble]; };
-  appler = derive2 { name="appler"; version="0.1.2"; sha256="03sivpv12ssn7dzq780rb4fg4nc7da7nlk6cijzq9yadxgv53svm"; depends=[glue httr jsonlite rvest xml2]; };
+  appler = derive2 { name="appler"; version="0.1.3"; sha256="1janvzi3kzxwx9hcmz2csj5f976022dci2rp51dcn88sjca5bjjf"; depends=[glue httr jsonlite rvest xml2]; };
   applicable = derive2 { name="applicable"; version="0.0.1.2"; sha256="0yzfk4ajdx4l3xivf6v9vn7fqvzfma4842cvjixrng83p2v25sdq"; depends=[dplyr ggplot2 glue hardhat Matrix proxyC purrr rlang tibble tidyr tidyselect]; };
   appnn = derive2 { name="appnn"; version="1.0-0"; sha256="0wkpr6lcd68wlzk6n622ab7sd99l837073czn4k56hw8bw9v68j3"; depends=[]; };
-  approxOT = derive2 { name="approxOT"; version="1.0.1"; sha256="0gp2p8biq2c7n3gasvwk72zqs5b623gphqh82n3j6sg9bm0i7r17"; depends=[BH Rcpp RcppCGAL RcppEigen]; };
+  approxOT = derive2 { name="approxOT"; version="1.0.2"; sha256="1j17dcs4nxss81q1d3mf6h7nkzrq202n7pqb7phza085xmjvpksx"; depends=[BH Rcpp RcppCGAL RcppEigen]; };
   approximator = derive2 { name="approximator"; version="1.2-7"; sha256="0smqjdla9mvzy164nsb0pw0sgal3w2wnyhqidp74h0smyczrr1zw"; depends=[emulator mvtnorm]; };
   approxmatch = derive2 { name="approxmatch"; version="2.0"; sha256="1n6v1h4zf1nf8j1a5d0h95v6q8dff39v9061i7zzi9ci3lw04748"; depends=[]; };
   aprean3 = derive2 { name="aprean3"; version="1.0.1"; sha256="17rnq02sncl6rzwyln10200s43b8z1s2j0kdi9kgcb6qr51v12rv"; depends=[]; };
@@ -6098,7 +6110,7 @@ in with self; {
   areaplot = derive2 { name="areaplot"; version="1.2.2"; sha256="0vyhf3662ppcahaw2zrxgpcxcn8fysd6lhl8vgr7cs8kl6fm4x47"; depends=[]; };
   arena2r = derive2 { name="arena2r"; version="1.0.0"; sha256="14zjpglp389pldi436935fz6mgi4jdgfii1m035nsvihrms9gqkh"; depends=[dplyr ggplot2 magrittr purrr rlang shiny shinyBS shinydashboard shinyjs tidyr]; };
   arenar = derive2 { name="arenar"; version="0.2.0"; sha256="08b865v7ringqzm5m4ib4nrmlyqywir6bjj7alzmg06dy7mrl9s7"; depends=[auditor DALEX fairmodels gistr iBreakDown ingredients jsonlite plumber]; };
-  arfima = derive2 { name="arfima"; version="1.7-0"; sha256="0kj8qv6m2fcdw8x735n8fk9cynm0jxi5v9hif0f879sxk6qkxb9y"; depends=[ltsa]; };
+  arfima = derive2 { name="arfima"; version="1.8-0"; sha256="1japb8x9cl8dk66n47md7b8ivh34cx293n7gwbibnn3cfb387i7w"; depends=[ltsa]; };
   argo = derive2 { name="argo"; version="3.0.1"; sha256="1q7gbyk2f8vimwzdmd1mfqyaql2gyawywilwzs6g1716gbk3gd80"; depends=[boot glmnet Matrix XML xtable xts zoo]; };
   argoFloats = derive2 { name="argoFloats"; version="1.0.4"; sha256="0n3c7gs5991fv6ypiagyxb0kzrbv80r7z0kspzbsp8ss04q2ymgc"; depends=[oce]; };
   argon2 = derive2 { name="argon2"; version="0.4-0"; sha256="09hzl0wz0lw2v7g64rdv0lij2hq36zl37a6rmxwvinmjdzijcsyw"; depends=[]; };
@@ -6180,6 +6192,7 @@ in with self; {
   assist = derive2 { name="assist"; version="3.1.7"; sha256="0avxaa3v4gvb5d7fg761f9l5nr8nyqdq6sq408zpyaki6s6q3acf"; depends=[lattice nlme]; };
   assocInd = derive2 { name="assocInd"; version="1.0.1"; sha256="16yzgvlqbapjhvzm5nw8vfrhh8mp9llnhck4bpgmszyrh93z1ha5"; depends=[]; };
   assortnet = derive2 { name="assortnet"; version="0.12"; sha256="1vyzrb8vsi9pcdn6jd83k77bg0q2a3dwdvlnmxnshqiif2pakb8m"; depends=[]; };
+  ast2ast = derive2 { name="ast2ast"; version="0.1"; sha256="146dlj5mdgjbmwkz8qy978350b3khhgdhilzlbwnkl9m0li299cd"; depends=[purrr R6 Rcpp RcppArmadillo RcppXPtrUtils]; };
   asteRisk = derive2 { name="asteRisk"; version="1.4.0"; sha256="0sph8jjayrgq0gl6n8hlhxpi4xv5bk2h2g47xx1jajihgkh88wgm"; depends=[deSolve nanotime onion Rcpp RcppParallel]; };
   aster = derive2 { name="aster"; version="1.1-2"; sha256="0vf1ffkn4a3bz2lgz1gn2hjgp8c2v9ch05d5r1gh2q77zijvry1m"; depends=[trust]; };
   aster2 = derive2 { name="aster2"; version="0.3"; sha256="17d200sg0vn1fj6lb480dhszm70q6ipjldilb3x0jp72hiczakk9"; depends=[Matrix]; };
@@ -6217,8 +6230,8 @@ in with self; {
   audiometry = derive2 { name="audiometry"; version="0.3.0"; sha256="0v6lhkm298xgdny0fhpldfwj8s4ljr21w6y6sv3vvyl87qjgwx8i"; depends=[ggplot2]; };
   audit = derive2 { name="audit"; version="0.1-2"; sha256="0c8b94a5am196sbvmjxya7cg4aq6fcxr8c958fxx3jmy9r4hn6s2"; depends=[]; };
   auditor = derive2 { name="auditor"; version="1.3.3"; sha256="1y6qpbc78yv2w1y9p0mczv69s661i9n2y0x09c5p3hdka7km662w"; depends=[DALEX ggplot2 ggrepel gridExtra hnp scales]; };
-  audrex = derive2 { name="audrex"; version="1.0.1"; sha256="06r9gn3rdqxln197iyajdsx8ikq0m2hik171403y3dxxr5bf8jsf"; depends=[abind fANCOVA ggplot2 imputeTS lubridate modeest moments narray purrr rBayesianOptimization readr scales stringr tictoc xgboost]; };
-  audubon = derive2 { name="audubon"; version="0.1.1"; sha256="14p07cxswgsdsmblwid9m5nmr0qr00cficg50qlb53fal8n1fajq"; depends=[dplyr magrittr memoise purrr readr rlang stringi V8]; };
+  audrex = derive2 { name="audrex"; version="2.0.1"; sha256="1ifijkbqvdjp1si14p80mbqhq7sby8qgzr181agm3da1nkmic3vp"; depends=[fANCOVA ggplot2 imputeTS lubridate Metrics modeest moments narray purrr rBayesianOptimization readr scales stringr tictoc xgboost]; };
+  audubon = derive2 { name="audubon"; version="0.1.2"; sha256="1hy9hc39sxma22y7zfcg6851qnmx3fr7pkbyhmiq52m1ksrnf395"; depends=[dplyr magrittr memoise purrr readr rlang stringi V8]; };
   augSIMEX = derive2 { name="augSIMEX"; version="3.7.4"; sha256="0620yxqi160ar91shl5macn890zpc60c9nqy4w8i6m7sskv6gl3z"; depends=[Formula MASS nleqslv Rcpp]; };
   augmentedRCBD = derive2 { name="augmentedRCBD"; version="0.1.5"; sha256="1bfb1jqakghf1nb3zwzf69cywwxwr1whzvyig8g3qa8ciq5f1h3i"; depends=[dplyr emmeans flextable ggplot2 mathjaxr moments multcomp multcompView officer Rdpack reshape2 stringi]; };
   auk = derive2 { name="auk"; version="0.5.1"; sha256="0mf2rwf7sihmk6mla87gznh0s1rqxpijcjjv035iq3id6c81h03l"; depends=[assertthat countrycode dplyr httr magrittr readr rlang stringi stringr tidyr]; };
@@ -6233,9 +6246,9 @@ in with self; {
   autoFC = derive2 { name="autoFC"; version="0.1.2"; sha256="1hxpmd753qpzlyjivn37m1kij3gpp9x6xyw1x6090h9n4girnya2"; depends=[irrCAC]; };
   autoFRK = derive2 { name="autoFRK"; version="1.4.3"; sha256="1k3h2gsck06dnvrifg9rhxi6b3fwfjrkvg0q2wzb9kdnnzgiwcln"; depends=[fields filehash filehashSQLite filematrix FNN LatticeKrig MASS mgcv Rcpp RcppEigen RcppParallel RSpectra spam]; };
   autoMFA = derive2 { name="autoMFA"; version="1.0.0"; sha256="1sbcl38cq7y7hln1qffk5s71xgg9hs7dlwyvynqf96z2z2421pw4"; depends=[abind expm MASS Matrix pracma Rdpack Rfast usethis]; };
-  autoMrP = derive2 { name="autoMrP"; version="1.0.1"; sha256="1ipqzjd9knpyz2ajxw38z8sbg4w4cgyg6627xlyx8i14wbdgrxmy"; depends=[doParallel doRNG dplyr e1071 EBMAforecast forcats foreach gbm ggplot2 glmmLasso knitr lme4 purrr R_rsp rlang tibble tidyr]; };
+  autoMrP = derive2 { name="autoMrP"; version="1.0.2"; sha256="11r849hglwgbqiq34q7xd3cdli5qrbqh90faj7pdm09sjkk4mn37"; depends=[doParallel doRNG dplyr e1071 EBMAforecast forcats foreach gbm ggplot2 glmmLasso knitr lme4 purrr R_rsp rlang tibble tidyr]; };
   autoRasch = derive2 { name="autoRasch"; version="0.1.5"; sha256="16xwh8v6p3ympn0xljb7d77n04g31gcppv8v39p96yfc9vaxkhsw"; depends=[doParallel foreach lavaan Rcpp RcppArmadillo]; };
-  autoReg = derive2 { name="autoReg"; version="0.1.0"; sha256="1c5b02jxfsjk9byyj5z5491lv7dbzx2hp3kwbjcy0wvpz7wg1gnc"; depends=[boot broom cmprsk dplyr flextable ggplot2 mice moonBook nortest officer patchwork purrr rlang stringr survival tidyr tidyselect]; };
+  autoReg = derive2 { name="autoReg"; version="0.2.6"; sha256="1jgk6gkqz4fm2xznbvxj334b5bc7i2hkpz6jn8k31l3y8c5fzqcz"; depends=[boot broom crayon dplyr flextable ggplot2 maxstat mice moonBook nortest officer pammtools patchwork purrr rlang scales stringr survival tidycmprsk tidyr]; };
   autoTS = derive2 { name="autoTS"; version="0.9.11"; sha256="1mwpazynp5hdc2ccnhvddkajfcd4qam23pvjl9accq1rnxzxkiyv"; depends=[dplyr forecast ggplot2 lubridate magrittr plotly prophet RcppRoll rlang shiny shinycssloaders tidyr]; };
   autocart = derive2 { name="autocart"; version="1.4.5"; sha256="1zgcmrm4dkdnr130hwwka2nwdczgvc3jc9hxrb6nfs8ijb24gl36"; depends=[fields mgcv Rcpp RcppArmadillo RcppParallel]; };
   autocogs = derive2 { name="autocogs"; version="0.1.4"; sha256="0v27l9a0ysj7x9wjka1jl1bq9rmxmzldclcp1w59a6807wjlszhx"; depends=[broom checkmate diptest dplyr ggplot2 hexbin MASS mclust moments progress tibble]; };
@@ -6245,7 +6258,7 @@ in with self; {
   autoimage = derive2 { name="autoimage"; version="2.2.3"; sha256="1jhkd7mbig6wpyc69iynfrj5i62lrwcwqbgjkmq8b9p5raglm1g2"; depends=[colorspace fields ggplot2 mapproj maps MBA]; };
   autokeras = derive2 { name="autokeras"; version="1.0.12"; sha256="0wyqz40fc277z1q1zxdmmjzksnmlh58r27a6hx08h6hmzvng5avy"; depends=[keras reticulate]; };
   automagic = derive2 { name="automagic"; version="0.5.1"; sha256="1mmm6kj6mxrn3s4v8ryszkxr9z7bh9cvhin7xjq111fkwly7wjkq"; depends=[dplyr formatR knitr magrittr purrr remotes yaml]; };
-  automap = derive2 { name="automap"; version="1.0-14"; sha256="1190kbmp0x80x0hyifdbblb4ijq79kvrfn9rkp5k6diig4v30n0w"; depends=[gstat lattice reshape sp]; };
+  automap = derive2 { name="automap"; version="1.0-16"; sha256="0jz0p28gmx9cpzv4cz0xhbml3w1inf2nsd2ynbhmfxg5rm2f7dca"; depends=[ggplot2 gstat lattice maptools reshape sp]; };
   automl = derive2 { name="automl"; version="1.3.2"; sha256="1nrg8q3y6rv69nmnsylg8rps4b4prx46j5a8ljlr24yc34504ck3"; depends=[]; };
   autoplotly = derive2 { name="autoplotly"; version="0.1.4"; sha256="1z577jvadgiz028z7x0786d3qhlkrvv9i34xmllizvg94kxv3bl1"; depends=[ggfortify ggplot2 plotly]; };
   autoshiny = derive2 { name="autoshiny"; version="0.0.2"; sha256="0s06ynnirgsh19x8qq4020piirkhvjqpvz372syygvlal062y6cn"; depends=[shiny]; };
@@ -6281,41 +6294,42 @@ in with self; {
   bReeze = derive2 { name="bReeze"; version="0.4-3"; sha256="17nc6qvw9l6sq8knd1mk193md2y3z1jlcjymqzl389yxj8s0i2il"; depends=[lubridate]; };
   bSims = derive2 { name="bSims"; version="0.3-0"; sha256="055hqa5w4gaqz9mms9yj85wg0pgl6xa568nbjxm4qc75rsy91qg5"; depends=[deldir intrval MASS mefa4 pbapply]; };
   bWGR = derive2 { name="bWGR"; version="2.0"; sha256="16yhy6gnjkgrlj41mszfadzvb83c8l4wa5gvlvzlm7cdrdrp33p0"; depends=[Matrix Rcpp RcppEigen]; };
-  baRcodeR = derive2 { name="baRcodeR"; version="0.1.5"; sha256="1fdywv7mvxx3q8pildsfllmw814f2p71xcwvfmplngv2vgrpzz9w"; depends=[DT miniUI qrcode rstudioapi shiny]; };
+  baRcodeR = derive2 { name="baRcodeR"; version="0.1.7"; sha256="199cdbwphpz6ds19841s32bm2rjd7b6v484bvaskw94z0d8bcn6w"; depends=[DT miniUI qrcode rstudioapi shiny]; };
   baRulho = derive2 { name="baRulho"; version="1.0.6"; sha256="17g3xs0lxdpbbi52x27r00vfdgxdhjblyy939scm3c5z01fhxxnb"; depends=[fftw pbapply seewave tuneR warbleR]; };
   babar = derive2 { name="babar"; version="1.0"; sha256="13j5klrcnd4dwrgdbxlvwcj56l9mzi4j9ga6jj5i04pgdc6vsfx5"; depends=[]; };
   babel = derive2 { name="babel"; version="0.3-0"; sha256="1iwvx69051yhlxbcl6bypvc3mcih0q8bf3i29r3i79356hp12xqa"; depends=[edgeR]; };
-  babelgene = derive2 { name="babelgene"; version="21.4"; sha256="1gk5pm3b3shr1id66a11ywc1b823gbj8yckg24szzfhj8g4ixyf0"; depends=[dplyr rlang]; };
+  babelgene = derive2 { name="babelgene"; version="22.3"; sha256="1735h4s2vahv55pmq65zkgxq8d5x71i1is03rf17dric8yynjjhg"; depends=[dplyr rlang]; };
   babelwhale = derive2 { name="babelwhale"; version="1.0.3"; sha256="0ph825dwvr48fhamy1l5564linz7cj7b9sj511as77f1yqycv4a2"; depends=[crayon dplyr dynutils processx purrr]; };
   babette = derive2 { name="babette"; version="2.3"; sha256="00l04pwv3sizi4daasai3pszp3spzsyj85g4dj9wqpiv51zcpj9a"; depends=[beastier beautier mauricer phangorn remotes stringr testit tracerer xml2]; };
   babsim_hospital = derive2 { name="babsim.hospital"; version="11.8.4"; sha256="0c66w90ndzmnzahv0krzw8qlqdip3821v74v7h5264cg8fgiflc6"; depends=[checkmate curl data_table dplyr ggplot2 golem igraph lubridate markovchain padr plyr rvest scales simmer slider SPOT testthat xml2]; };
   babynames = derive2 { name="babynames"; version="1.0.1"; sha256="1gcpd6lncqwjz05z98ra6hcc8q966l2594ylkg50avndild89n3h"; depends=[tibble]; };
   bacistool = derive2 { name="bacistool"; version="1.0.0"; sha256="1hby2bmxbc8qgjzgkp2flv89lpzzvg3vr7s98989ayjmv4vgmqaf"; depends=[rjags]; };
   backShift = derive2 { name="backShift"; version="0.1.4.3"; sha256="1dhmq51w07vcqlngsb04ip0wqbgqq2xdfdm1w82r082f07ywqb16"; depends=[clue ggplot2 igraph MASS matrixcalc reshape2]; };
-  backbone = derive2 { name="backbone"; version="2.0.0"; sha256="1ypcy4l1iikz500sshf2ikgqlgw2ghya3bqqqashjblwpnby3rc4"; depends=[igraph Matrix network PoissonBinomial Rcpp]; };
+  backbone = derive2 { name="backbone"; version="2.0.3"; sha256="0zri6v4ikfbh6l7lnk3lm5kiak4k01jd0xbpk57i4s2xgp9v1rrp"; depends=[igraph MASS Matrix network PoissonBinomial Rcpp]; };
   backpipe = derive2 { name="backpipe"; version="0.2.3"; sha256="12k2cv9x8h0b002m9c8g4vj5a7chp4b8jqz377ia0diqw89dydpm"; depends=[]; };
   backports = derive2 { name="backports"; version="1.4.1"; sha256="0x144hij0rzhrxdq3k5ph8fk7pdgl1avjca25j4mlpmhzdckqp44"; depends=[]; };
   backtest = derive2 { name="backtest"; version="0.3-4"; sha256="1s0mf247dz2vvyf4m3sp9xiqhv7xcs4rphyg9gdcy73060sah2ad"; depends=[lattice]; };
   bacondecomp = derive2 { name="bacondecomp"; version="0.1.1"; sha256="1sd6pbhmx8vxz5c2cvvadbjy7p15y91gzs3n0ish7h5br1vq8fpm"; depends=[]; };
   bacr = derive2 { name="bacr"; version="1.0.1"; sha256="14zr1v4rihx0ra3x0vsb81vsz0g8gzskkdxkg7nhiz835hp2fiy8"; depends=[MCMCpack]; };
-  badger = derive2 { name="badger"; version="0.1.0"; sha256="09g8183dz58546mcql7fs2px71ycpi2jfw69zca9d96c9py98ryn"; depends=[desc dlstats rvcheck usethis]; };
+  badger = derive2 { name="badger"; version="0.2.0"; sha256="0a7a4i00swqnmc4v0sd8mjr59p8q8vkyy89ifdrygk7qdqykbjg2"; depends=[desc dlstats rvcheck usethis]; };
   bagged_outliertrees = derive2 { name="bagged.outliertrees"; version="1.0.0"; sha256="0fcd54j6vci2yvlb609dck4pwbn54irkdk472cjc965rcw6dz9z7"; depends=[data_table doSNOW dplyr foreach outliertree rlist]; };
   baggedcv = derive2 { name="baggedcv"; version="1.0"; sha256="1rqs4sm6g1anck5s2dxlm1vcmylpphcbs2dpvf1sjki5lrzdq9z4"; depends=[doParallel foreach kedd mclust]; };
   baggingbwsel = derive2 { name="baggingbwsel"; version="1.0"; sha256="0khvkxml4nwkahgl5ijdv0bjgwabmznzq99p71iw26ck808hafkl"; depends=[doParallel foreach kedd mclust misc3d nor1mix Rcpp rgl rpanel sm tkrplot]; };
-  baggr = derive2 { name="baggr"; version="0.6.18"; sha256="0qmsg3w6blpj9nlk0blzlm7l04z4r33gw17r6n52l2wf8x0giirx"; depends=[bayesplot BH crayon forestplot ggplot2 gridExtra Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders testthat]; };
+  baggr = derive2 { name="baggr"; version="0.6.21"; sha256="08f6wn1r3rxdlvchgxkrwpl08qlqqj6arvw4kkncvnb94g83cy4y"; depends=[bayesplot BH crayon forestplot ggplot2 gridExtra Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders testthat]; };
   baguette = derive2 { name="baguette"; version="0.2.0"; sha256="0ik19w7cgbzp4n4f9v1s7sf668m45sqfw4m4ny7mbfjdq53iag28"; depends=[butcher C50 dials dplyr earth furrr generics hardhat magrittr parsnip purrr rlang rpart rsample tibble tidyr withr]; };
   bahc = derive2 { name="bahc"; version="0.3.0"; sha256="0yz0v33fhm38ivhr7bvajk9v7wdmhg9qg7ac8r2qr00rns82m6y3"; depends=[fastcluster matrixStats]; };
   bain = derive2 { name="bain"; version="0.2.8"; sha256="101rlxf1m6nrmzwxxv2w0m2a9s26l39a5nfjnad8gza5rvj7q076"; depends=[lavaan]; };
   baker = derive2 { name="baker"; version="1.0.0"; sha256="166j6b2j3r0apsnvcnfycxhf1kv4nblscmnjdl2xsw5wwrbx677f"; depends=[abind binom coda ggplot2 ggpubr gridExtra lubridate mgcv mvbutils R2jags reshape2 rjags robCompositions shinydashboard shinyFiles]; };
   bama = derive2 { name="bama"; version="1.2"; sha256="1amxls4jl2ys5wkn600xmx0y3d9zhkz2s96vn7h8fnrrv35212yp"; depends=[BH Rcpp RcppArmadillo RcppDist]; };
   bamboo = derive2 { name="bamboo"; version="0.9.25"; sha256="1il8sn8ck36b1m9hazhf6gmr58iqi2hjn0rrpcv1laij0lybrcws"; depends=[rscala]; };
-  bamdit = derive2 { name="bamdit"; version="3.3.2"; sha256="11v9hy8ijbcqhwim0s3y69dz11jvys4vjvfnshj4p5qdz38sji6l"; depends=[ggExtra ggplot2 gridExtra MASS R2jags rjags]; };
+  bambooHR = derive2 { name="bambooHR"; version="0.1.0"; sha256="1m9kzr698lgcilmr5w5zs6q9rgpcdvqiavrhh6c4ar6ii07n274s"; depends=[cli curl dplyr fs glue httr janitor jsonlite lubridate magrittr purrr rlang stringr testthat tibble tidyr withr]; };
+  bamdit = derive2 { name="bamdit"; version="3.4.0"; sha256="0x7dl2f8qg8df07g4k692501rqn3q5zf12npx9zbbbvv7zb23rlf"; depends=[ggExtra ggplot2 gridExtra MASS R2jags rjags]; };
   bamlss = derive2 { name="bamlss"; version="1.1-6"; sha256="0p3hx01209yjgw8cd8s1ns1n502f5dyvi650d58195w88xycvr7c"; depends=[coda colorspace Formula Matrix MBA mgcv mvtnorm sp survival]; };
   bamp = derive2 { name="bamp"; version="2.1.0"; sha256="0d72s0vzy32zcd9sw1zlxc0whh5dpvlk7r9680b9smpzb58ijgfi"; depends=[abind coda]; };
   bandit = derive2 { name="bandit"; version="0.5.0"; sha256="03mv4vbn9g4mqikd9map33gmw2fl9xvb62p7gpxs1240w5r4w3fp"; depends=[boot gam]; };
   bang = derive2 { name="bang"; version="1.0.1"; sha256="0m7p9gzspkyp40ir842ff4b1827w9rh7x49kpp3y4dpi83krqy5a"; depends=[bayesplot rust]; };
   bannerCommenter = derive2 { name="bannerCommenter"; version="1.0.0"; sha256="1i0b3v4n0xylcbrg9i3a28z037m27vjfg61xz2hl99wavn0bsl1j"; depends=[]; };
-  banter = derive2 { name="banter"; version="0.9.4"; sha256="076jjgfw193bzmymqgsgg4fppd2zvwskjw9b3zxzybnydyz7shfi"; depends=[dplyr ggplot2 gridExtra magrittr randomForest rfPermute rlang swfscMisc tibble tidyr]; };
+  banter = derive2 { name="banter"; version="0.9.5"; sha256="07m2k5q2v4c7rdbdrahxab5f8597xk4iadf49asp3jjzdj9haj4x"; depends=[dplyr ggplot2 gridExtra magrittr randomForest rfPermute rlang swfscMisc tibble tidyr]; };
   banxicoR = derive2 { name="banxicoR"; version="0.9.0"; sha256="0vchm2hnqm45fhn8k38rcam4vkazmifcl40390s2r04bgvqr0pnl"; depends=[rvest stringr xml2]; };
   barcode = derive2 { name="barcode"; version="1.1"; sha256="14zh714cwgq80zspvhw88cs5b82gvz4b6yfbshj9b7x0y2961nxd"; depends=[lattice]; };
   bardr = derive2 { name="bardr"; version="0.0.9"; sha256="02499b3j10j7qq3whz9qijfp3amp0s1ji8qk76c53dsnkj8f9hvs"; depends=[]; };
@@ -6331,7 +6345,7 @@ in with self; {
   base64url = derive2 { name="base64url"; version="1.4"; sha256="0n1c2b68vza1dh7sk38v6biiwm72c4jpl79kpdg1bsb0hq9qy18x"; depends=[backports]; };
   baseballDBR = derive2 { name="baseballDBR"; version="0.1.2"; sha256="0w54g1avcqamc12lmvjchlqbqck9jfjccm441k03nsql460mpydq"; depends=[dplyr magrittr rvest xml2]; };
   basecamb = derive2 { name="basecamb"; version="1.1.0"; sha256="02svxz0mlk2r4s0g8lizcwmp9nhbwgp6q3c9p9pmsf1nry4j3lbf"; depends=[assertive_types assertthat dplyr Hmisc mice purrr survival]; };
-  basedosdados = derive2 { name="basedosdados"; version="0.2.0"; sha256="0hv6gv49bcs6fyqvk4kzvh4q33lbbn1mahrqc4vg2da0jr431vmx"; depends=[bigrquery cli DBI dbplyr dotenv dplyr fs glue googleAuthR httr magrittr purrr Rcpp readr rlang scales stringr tibble typed writexl xml2]; };
+  basedosdados = derive2 { name="basedosdados"; version="0.2.1"; sha256="0mbnpz0w7sx4awfkhf6jdnnp1a2zj6q0wamiwqqs86wbdp9mjam2"; depends=[bigrquery cli DBI dbplyr dotenv dplyr fs glue googleAuthR httr magrittr purrr Rcpp readr rlang scales stringr tibble typed writexl xml2]; };
   baseflow = derive2 { name="baseflow"; version="0.13.2"; sha256="02ygx32dfszk66f33wfszkvwi51v8zw2s45y9nlrgfws9rlpzll2"; depends=[airGR]; };
   basefun = derive2 { name="basefun"; version="1.1-2"; sha256="02jrjxkzg5pzw73kzypdazqjrg8azhbv09157j3px3d2331qiy9d"; depends=[Matrix orthopolynom polynom variables]; };
   baseline = derive2 { name="baseline"; version="1.3-1"; sha256="1spmp8z0hrb6db0r52i16524cp9zy1d1hr4y3b3i9q38m1iskpms"; depends=[limSolve SparseM]; };
@@ -6339,7 +6353,6 @@ in with self; {
   basetheme = derive2 { name="basetheme"; version="0.1.2"; sha256="0yck4qc7qd406s7kw95xgnfc0pfvzk3ylhkv6mk6l2wbkfm8ldrb"; depends=[]; };
   basf = derive2 { name="basf"; version="0.2.0"; sha256="0l3y5p51jic3b8h1jclhhma4myll1g3vsxr8rj0dx1bvjfimkryw"; depends=[raster sf tibble]; };
   basicMCMCplots = derive2 { name="basicMCMCplots"; version="0.2.7"; sha256="02lwkbpr9yj5q7l3ing1v47c4ifvwaxn8yyr3b34fral08cgpn9x"; depends=[]; };
-  basicTrendline = derive2 { name="basicTrendline"; version="2.0.5"; sha256="0402nvm3i32sx3m3c7r74iaj22h570v819yiwkraicjpmg55dghi"; depends=[investr scales]; };
   basicspace = derive2 { name="basicspace"; version="0.24"; sha256="1cy226njbax7dcgql89fns4l4w9fq328x3h0vb93l5jk883jgi8h"; depends=[]; };
   basictabler = derive2 { name="basictabler"; version="1.0.2"; sha256="0d5gpvf3la0fky786z74i8q7il1mmb2prg8y9wslg2gbngnkvkvm"; depends=[dplyr htmltools htmlwidgets R6]; };
   basifoR = derive2 { name="basifoR"; version="0.4"; sha256="1clnmb57g7aclgw8ibj92pfixaism0af85w4kn0208nbm75c1kvf"; depends=[curl foreign Hmisc httr measurements RODBC]; };
@@ -6352,6 +6365,7 @@ in with self; {
   batchscr = derive2 { name="batchscr"; version="0.1.0"; sha256="094l2cq7lcdrlsdmsxmbal7srxdg20rxbms46h1sd414wq26d413"; depends=[]; };
   batchtma = derive2 { name="batchtma"; version="0.1.6"; sha256="1ii7iiq6vhfqnhzp5xpl40g2gdmm9c7ib3kg8fbswg99f96hqhbp"; depends=[broom dplyr geepack ggplot2 limma magrittr nnet purrr quantreg rlang stringr tibble tidyr]; };
   batchtools = derive2 { name="batchtools"; version="0.9.15"; sha256="0d2xy77hkzhcnyz8zxcv98i80fx6ripjw4rvyx4ww1d0vjjgqf52"; depends=[backports base64url brew checkmate data_table digest fs progress R6 rappdirs stringi withr]; };
+  bate = derive2 { name="bate"; version="0.1.0"; sha256="1jrf614g5699ygw73pda7dk79ydx57sc8wpq4vg51yy98arhidc2"; depends=[concaveman dplyr ggplot2 latex2exp magrittr purrr tidyselect vtable]; };
   batman = derive2 { name="batman"; version="0.1.0"; sha256="0ccgx506p4iri23k2ikb8jmh04dp08w66785bv52iy8kd359h43f"; depends=[Rcpp]; };
   batteryreduction = derive2 { name="batteryreduction"; version="0.1.1"; sha256="0j838q7063bplkzd50kmnxji80cgysfsq7m1qifv8z7a2zsh8c8g"; depends=[pracma]; };
   bayMDS = derive2 { name="bayMDS"; version="1.6"; sha256="1g4haskms28rn5wpkqn7rgaqpx5n4x3rz48n292l1vknb4mjwm8n"; depends=[ggplot2 ggpubr gridExtra progress Rcpp RcppArmadillo rgl shiny shinythemes]; };
@@ -6362,7 +6376,7 @@ in with self; {
   bayesCT = derive2 { name="bayesCT"; version="0.99.3"; sha256="0ragig1x34syhsnbnd58l2s7g23j7fb0cl9wkasvxq8cicw5hqgn"; depends=[bayesDP dplyr magrittr purrr survival]; };
   bayesDP = derive2 { name="bayesDP"; version="1.3.6"; sha256="0li063187icw96shrbawfa00vkb42m5y38a4j2aahryajjlsva57"; depends=[ggplot2 MCMCpack Rcpp RcppArmadillo survival]; };
   bayesDccGarch = derive2 { name="bayesDccGarch"; version="3.0.3"; sha256="0qgcy70sp3mlcpdkkg3nvxrvwgwy698r19yg31s3qjak17jnp8qn"; depends=[coda numDeriv]; };
-  bayesGAM = derive2 { name="bayesGAM"; version="0.0.1"; sha256="072q3kybnxjwc4s6qlww492cg43cr4zk6midyp5av7y3hnxbmqm8"; depends=[bayesplot BH boot cluster corrplot geometry ggplot2 gridExtra loo MASS mlbench Rcpp RcppEigen RcppParallel rstan rstantools SemiPar StanHeaders]; };
+  bayesGAM = derive2 { name="bayesGAM"; version="0.0.2"; sha256="13zs68d26c66hkm8mfhcygk8rw6sdg4rf4a4az254lf2xvypbh5d"; depends=[bayesplot BH boot cluster corrplot geometry ggplot2 gridExtra loo MASS mlbench Rcpp RcppEigen RcppParallel rstan rstantools SemiPar StanHeaders]; };
   bayesGARCH = derive2 { name="bayesGARCH"; version="2.1.10"; sha256="1jb7jfyxp210pc8myv9lnwb55hy19d39m10kkhs5lyjwc2lv0401"; depends=[coda mvtnorm]; };
   bayesImageS = derive2 { name="bayesImageS"; version="0.6-1"; sha256="0hz6ynvrhsxp097zswdlascza5n27cq4hfaqdc3r8b7crmh7lrim"; depends=[Rcpp RcppArmadillo]; };
   bayesLife = derive2 { name="bayesLife"; version="5.0-3"; sha256="1dlaqp6qd6qi8p8ni3z7adjrsn44njzvngyga4a97crp3jfqpx7k"; depends=[bayesTFR car coda data_table hett wpp2019]; };
@@ -6371,7 +6385,7 @@ in with self; {
   bayesQR = derive2 { name="bayesQR"; version="2.3"; sha256="1c6y7r9h9626ghp68pl5k1g0l95fwd6dp0jfznmhy53qza0ny8z4"; depends=[]; };
   bayesSurv = derive2 { name="bayesSurv"; version="3.3"; sha256="00brysldz0zbjbjs0qnd2mbpc3ipyz7224bnbwlf8d3b6ivw8iwv"; depends=[coda smoothSurv survival]; };
   bayesTFR = derive2 { name="bayesTFR"; version="7.1-1"; sha256="0grkrcgn1x1qaajyamzlp7csmsmmslbjbmajk42m5g7cxxljvylr"; depends=[coda data_table lifecycle MASS mvtnorm wpp2019]; };
-  bayesZIB = derive2 { name="bayesZIB"; version="0.0.2"; sha256="0lwrgzfbp3cjjc462va2vv5s43lp9j9hmydg3g2qs9w92mc7m77d"; depends=[BH ggplot2 Rcpp RcppEigen rstan StanHeaders]; };
+  bayesZIB = derive2 { name="bayesZIB"; version="0.0.3"; sha256="0787k6m66rvqj1y1plykqpphd3sd19jy30k5yd275cywnn04hgvj"; depends=[BH ggplot2 Rcpp RcppEigen rstan rstantools StanHeaders]; };
   bayesammi = derive2 { name="bayesammi"; version="0.1.0"; sha256="1vfcmk47x71c5akj3ppxzb74293pikspknkkv08f8p15v0chk7fs"; depends=[dplyr ggplot2 lme4 magrittr MASS mvtnorm rlang rstiefel scales tibble tidyr tmvtnorm]; };
   bayesanova = derive2 { name="bayesanova"; version="1.5"; sha256="1h2z5r1ikrdi1j0cpzy3qdw28m1i6ddz6006amdnz2r3b0wivffm"; depends=[MCMCpack]; };
   bayesbio = derive2 { name="bayesbio"; version="1.0.0"; sha256="08qa4lzkrcwin7n3kzfqfdlnlqahdmjl1lxpdh29n780cgyjfvs0"; depends=[]; };
@@ -6391,9 +6405,9 @@ in with self; {
   bayesmeta = derive2 { name="bayesmeta"; version="3.0"; sha256="035kjg86sfd3j8g9421id6z208rfmpk63qp0fpssv44zb96wy4wv"; depends=[forestplot metafor mvtnorm numDeriv]; };
   bayesmix = derive2 { name="bayesmix"; version="0.7-5"; sha256="0s1a221vwia92pinja2r5b5abm4dhcrs81m4frqnf0522qh0y75f"; depends=[coda rjags]; };
   bayesmove = derive2 { name="bayesmove"; version="0.2.1"; sha256="1l6i8qh7l53x0133gjc5jvri4vnnfviq9y3mcr1kfa5j84gfnmsf"; depends=[dplyr dygraphs furrr future ggplot2 leaflet lubridate magrittr MCMCpack progress progressr purrr Rcpp RcppArmadillo rlang sf shiny tictoc tidyr]; };
-  bayesnec = derive2 { name="bayesnec"; version="2.0.2"; sha256="1ps00byg0s0wf86w9nq6yhn4ak1ca6gmkafz3bmycr4alxhgjdqr"; depends=[brms dplyr evaluate extraDistr formula_tools ggplot2 loo purrr rlang tidyr tidyselect]; };
+  bayesnec = derive2 { name="bayesnec"; version="2.0.2.3"; sha256="0f3d045crlnnks7mi5fp7lyrpqgsjhyp4c7vf2ghz1346l6vdb2n"; depends=[brms dplyr evaluate extraDistr formula_tools ggplot2 loo purrr rlang tidyr tidyselect]; };
   bayesplay = derive2 { name="bayesplay"; version="0.9.2"; sha256="06i16a36b26p0r635bl37kvk7k083p970154yhkv80p7qc84n4sv"; depends=[gginnards]; };
-  bayesplot = derive2 { name="bayesplot"; version="1.8.1"; sha256="0aman4273i8hy3z0qay1nrsr7v27m4icm1j6f4w59ylix80l5myq"; depends=[dplyr ggplot2 ggridges glue reshape2 rlang tibble tidyselect]; };
+  bayesplot = derive2 { name="bayesplot"; version="1.9.0"; sha256="0hqy597ang53phxnl084hak35ffqz9lw9hygax7370gpkjws908a"; depends=[dplyr ggplot2 ggridges glue posterior reshape2 rlang tibble tidyselect]; };
   bayespref = derive2 { name="bayespref"; version="1.0"; sha256="0gwlzs7qkgmf90np7xv85d27jjqggyhfj00vpya664a2znyjb3jm"; depends=[coda lattice MASS MCMCpack RColorBrewer]; };
   bayesreg = derive2 { name="bayesreg"; version="1.2"; sha256="0yrx7y39xxmm0z4myj6ma24dkkhgcily5baxr6yf9balgvhd5wf4"; depends=[pgdraw]; };
   bayesrules = derive2 { name="bayesrules"; version="0.0.2"; sha256="0a1a1aq91ary985xd0qqc1sgjlyfcrjh7ngzcy4f7j09a7ch3j4b"; depends=[dplyr e1071 ggplot2 groupdata2 janitor magrittr purrr rstanarm]; };
@@ -6412,10 +6426,10 @@ in with self; {
   bbl = derive2 { name="bbl"; version="1.0.0"; sha256="135i619lliy93dvgb7ymrcdh20y2b1j7s0y6awzcs3w0hbyd8j5z"; depends=[pROC RColorBrewer Rcpp]; };
   bbmle = derive2 { name="bbmle"; version="1.0.24"; sha256="1bck8rmink4wsk8pcbnj4d60svxymp29pxbzwj8p9gzsg42c1v81"; depends=[bdsmatrix lattice MASS Matrix mvtnorm numDeriv]; };
   bbo = derive2 { name="bbo"; version="0.2"; sha256="19xrbla3bb3csg3gjjrpkgyr379zfwyh293bcrcd6j8rnm6g4i01"; depends=[]; };
-  bbotk = derive2 { name="bbotk"; version="0.5.1"; sha256="1171vcs96j8f4n0rjsbbiscs4nxgd4209lr9biy99lvhjvjdsfsm"; depends=[checkmate data_table lgr mlr3misc paradox R6]; };
+  bbotk = derive2 { name="bbotk"; version="0.5.2"; sha256="0k1vlh14mfbcgdw2yfhab7shkrqm4d2h6af12mybr9gks26xmw82"; depends=[checkmate data_table lgr mlr3misc paradox R6]; };
   bbreg = derive2 { name="bbreg"; version="2.0.2"; sha256="0mi2834v4cvrhvpnzkb4lgkqq993c3c1yzsxdnmny4p6yxw1q547"; depends=[expint Formula pbapply statmod]; };
   bbricks = derive2 { name="bbricks"; version="0.1.4"; sha256="1hv4hvnns9vgl6c3n7kg3g9mfcp26ksps29hdl5nwi28cgkx80w2"; depends=[]; };
-  bbsBayes = derive2 { name="bbsBayes"; version="2.3.8.2020"; sha256="043wj15w7vb5xzwyrzfzf19n3iccly9mdw75lw176i3wfdnprhfv"; depends=[dplyr geofacet ggplot2 ggrepel jagsUI latticeExtra progress rappdirs rgdal sbtools sf stringr]; };
+  bbsBayes = derive2 { name="bbsBayes"; version="2.4.1"; sha256="1fy4jfx83fjhf350vwafpf0kf2wi482a78sy3dla4k1mkg1l9wwa"; depends=[dplyr geofacet ggplot2 ggrepel jagsUI latticeExtra mgcv progress rappdirs rgdal sbtools sf stringr]; };
   bbw = derive2 { name="bbw"; version="0.1.3"; sha256="1z3an561qh0rfi3jhh1ghsdbg8aimqmf4hpqri2jz39in3p0gwg4"; depends=[car]; };
   bc3net = derive2 { name="bc3net"; version="1.0.4"; sha256="15dghd0v1s71h77iw8b49v5h7wcda5mb4540lfyibsdipbashv2h"; depends=[c3net igraph infotheo lattice Matrix]; };
   bcROCsurface = derive2 { name="bcROCsurface"; version="1.0-5"; sha256="1jj7iag9azmxccc8a45vaxi6lw4jbfzj68wm0zdsggplgvzljn1f"; depends=[boot nnet Rcpp RcppArmadillo rgl]; };
@@ -6471,7 +6485,7 @@ in with self; {
   beezdemand = derive2 { name="beezdemand"; version="0.1.0"; sha256="1i6p36cfvz87k6llpibklmdbjb7vp1v38ijxaqkmv1jzc28sj3cl"; depends=[ggplot2 nlmrt nls2 nlstools reshape2]; };
   befproj = derive2 { name="befproj"; version="0.1.1"; sha256="194kicmfxamy061zx0ljmvrlh8gm56fcmhj1j2qfrihklpab4xhx"; depends=[dplyr]; };
   beginr = derive2 { name="beginr"; version="0.1.7"; sha256="1a1lzjmq0qimm8yrb4n6knh23gyqxgax60n95rih95sg34904d0m"; depends=[cranlogs]; };
-  behaviorchange = derive2 { name="behaviorchange"; version="0.4.3"; sha256="19kdwwzfd1cg9aycd2fnwc5dczrygclgpa6f7bri43lzcrsfbsgy"; depends=[BiasedUrn data_tree DiagrammeR DiagrammeRsvg ggplot2 googlesheets4 gridExtra gtable knitr rmdpartials ufs viridis yum]; };
+  behaviorchange = derive2 { name="behaviorchange"; version="0.5.1"; sha256="09q60hvnsjaq76x2agqgbmmk0wwzmwnmhbr34bdxm90cymbxrw5v"; depends=[BiasedUrn data_tree DiagrammeR DiagrammeRsvg ggplot2 googlesheets4 gridExtra gtable knitr rmdpartials ufs viridis yum]; };
   behavr = derive2 { name="behavr"; version="0.3.2"; sha256="01ny099m2zmvlalwiq3nqkgynnxn1mdspch15lkawwd40q8s9s4p"; depends=[data_table]; };
   belex = derive2 { name="belex"; version="0.1.0"; sha256="1563yngc1lvncmx3h6kgsj1r6k3hvxidh6h9rb7apxs2rq5k32ms"; depends=[XML]; };
   belg = derive2 { name="belg"; version="1.5.0"; sha256="0l2gh5nm37vrfjl1wwa8zhgz67fbral5g9w59npz6swc9xqmxlgp"; depends=[Rcpp RcppArmadillo]; };
@@ -6486,27 +6500,26 @@ in with self; {
   benford_analysis = derive2 { name="benford.analysis"; version="0.1.5"; sha256="0y0c7l2r9s7lg9bw4ndcqwisa5l6a2cpydn1vmz88h3yva0l68cg"; depends=[data_table]; };
   bentcableAR = derive2 { name="bentcableAR"; version="0.3.0"; sha256="1gjrlv94av9955jqhicaiqm36rrgmy0avxn9y7wbp2s1sbg7fyg7"; depends=[]; };
   benthos = derive2 { name="benthos"; version="1.3-6"; sha256="1vywnc6k37gpaq7g59v3qa6619svcmnd8ri5zm5l0ila2s3ccb2c"; depends=[dplyr lazyeval readr]; };
-  berryFunctions = derive2 { name="berryFunctions"; version="1.21.0"; sha256="0pzb9lsbls7jcyaj1vg9cqgdqc8gbjab83xlsbdi8w40zgsv85vf"; depends=[abind]; };
+  berryFunctions = derive2 { name="berryFunctions"; version="1.21.2"; sha256="0gspikfvl0cp6x0a15w3vbqfds2hmc1sb9bi4v3mniwhi2kh8izy"; depends=[abind]; };
   bestNormalize = derive2 { name="bestNormalize"; version="1.8.2"; sha256="0pbyn0ay43jcxssxgvivvfakcwq0y23c2qq6a01656q9lqbv9f1r"; depends=[butcher doParallel doRNG dplyr foreach LambertW nortest purrr recipes tibble]; };
   bestSDP = derive2 { name="bestSDP"; version="0.1.2"; sha256="1rff6jij9wmlpalzilvid8jvj2pczrchx0yrg0vhy00j64zg6jzs"; depends=[dplyr DT ggplot2 readxl rlist shiny shinyBS shinydashboard shinyjs shinythemes shinyWidgets stringr tidyr]; };
   bestglm = derive2 { name="bestglm"; version="0.37.3"; sha256="1zncy958hlwyyxrp6yvq1inq6mpyrbr6cdkf8maijfirr5j8f0ya"; depends=[glmnet grpreg lattice leaps pls]; };
   bestridge = derive2 { name="bestridge"; version="1.0.7"; sha256="10nlk1vrzmgxfia9b3skmg5594ab5s3d64k2awyxybkz2pzz7gb1"; depends=[MASS Matrix pheatmap Rcpp RcppEigen survival]; };
   betaBayes = derive2 { name="betaBayes"; version="1.0"; sha256="15dp5dd0sw613xjkdfqw4iizfdagflp0qwykmng8ml6agwd21s4p"; depends=[betareg coda Rcpp RcppArmadillo]; };
-  betaboost = derive2 { name="betaboost"; version="1.0.1"; sha256="1zdyzxl2kp2i5lkiz280wz4av9wqklbn25zmq6n4yb6a579yjfn8"; depends=[gamboostLSS mboost]; };
   betacal = derive2 { name="betacal"; version="0.1.0"; sha256="19wgpgf9yhckl9qx9v24f4yh055wfalphcxwm7lg68px6ap2pxl9"; depends=[]; };
   betafunctions = derive2 { name="betafunctions"; version="1.6.1"; sha256="051d4fryvcdfbsm087mxqlx247jz671wx5rffsffg828azj2mxh9"; depends=[]; };
   betalink = derive2 { name="betalink"; version="2.2.1"; sha256="1wskr8nh1jzcrnc8fn58lscphsvj5z9p1i1pnpfdjn60mdb09rkp"; depends=[igraph plyr stringr]; };
-  betapart = derive2 { name="betapart"; version="1.5.4"; sha256="1m2rykch2vhh90s08s9s2kmmrxhp9ik32s5zkdw8991cbw2j7n68"; depends=[ape doSNOW fastmatch foreach geometry itertools picante rcdd snow]; };
+  betapart = derive2 { name="betapart"; version="1.5.6"; sha256="08rphgdqxgkih70kqnn7x1hkahl309pa363zbqsdwk0lmfq2azkh"; depends=[ape doSNOW fastmatch foreach geometry itertools picante rcdd snow]; };
   betaper = derive2 { name="betaper"; version="1.1-2"; sha256="0gh5xjimg0wgv626g3y34mvgrji2aylnm89iwadg7d6g4s457ynp"; depends=[vegan]; };
   betareg = derive2 { name="betareg"; version="3.1-4"; sha256="00c1l5ah74vf7ljpja4iwyf9cwcvb1c835hmc98jp2x6jrh9h1ji"; depends=[flexmix Formula lmtest modeltools sandwich]; };
   betategarch = derive2 { name="betategarch"; version="3.3"; sha256="0hqvyps3lwix2fkzk18wrkhxpqhgardvib9sq1ip8gn8sn1dsi8y"; depends=[zoo]; };
   bethel = derive2 { name="bethel"; version="0.2"; sha256="1zlkw672k1c5px47bpa2vk3w2906vkhvifz20h6xm7s51gmm64i0"; depends=[]; };
   bets_covid19 = derive2 { name="bets.covid19"; version="1.0.0"; sha256="1pqa6zpkkcmnm9a4m3676css0fi2lp4ik6mmhfhnsr4v4kv2pq2s"; depends=[rootSolve]; };
   bettermc = derive2 { name="bettermc"; version="1.1.2"; sha256="1g264b21kh5kf0v5qk09gf3ya0amblwnqlpw93h6g0k0dd3vks0h"; depends=[checkmate]; };
-  beyondWhittle = derive2 { name="beyondWhittle"; version="1.1.2"; sha256="0gi2pz591iqkjxg2jnn6igflyakdb4p40yafrw5gxcqa0kfj79h9"; depends=[BH forecast ltsa MASS MTS Rcpp RcppArmadillo]; };
+  beyondWhittle = derive2 { name="beyondWhittle"; version="1.1.3"; sha256="0hx1j6vgq25qk966wkc8pq0y6whxqnp1nglm3d4majqp55iqi1lx"; depends=[BH forecast ltsa MASS Rcpp RcppArmadillo]; };
   bezier = derive2 { name="bezier"; version="1.1.2"; sha256="1vw5128v8h973xwa1fdm9cw2jvrldj87nd55lddlp3qsz3ag4br6"; depends=[]; };
   bfast = derive2 { name="bfast"; version="1.6.1"; sha256="1vjklk7d9b0q7j348aqvspm7rn80bh06hz66r2z1qs9436ppkx5a"; depends=[forecast Rcpp Rdpack strucchangeRcpp zoo]; };
-  bfp = derive2 { name="bfp"; version="0.0-44"; sha256="1lh25g4ac1f1asz4i0mnizbxqzslz6kjlg1d7mcjnp6qn7pkmg20"; depends=[Rcpp]; };
+  bfp = derive2 { name="bfp"; version="0.0-45"; sha256="1vgzf3nxavnydbfcg539xb0kr220yqd053697yhq84j0g2an10xg"; depends=[Rcpp]; };
   bfsMaps = derive2 { name="bfsMaps"; version="0.9.6"; sha256="0k3bwda32j0rfdkzddqf81mpaa1z73cm05xh19psa51vgrbn9gg9"; depends=[DescTools maptools rgdal rgeos rlang sp spdep]; };
   bfsl = derive2 { name="bfsl"; version="0.2.0"; sha256="10z3w1fk4va2ajvpnqp0llgw4a047iaya6xi57if1a7jd7r1jxfh"; depends=[generics]; };
   bfw = derive2 { name="bfw"; version="0.4.2"; sha256="0qgq47axa0r9653d1sjm00fvfx49v28id5sngwyrgkppcngmbg9p"; depends=[circlize coda data_table dplyr ggplot2 magrittr MASS officer plyr png runjags rvg scales]; };
@@ -6525,7 +6538,7 @@ in with self; {
   bib2df = derive2 { name="bib2df"; version="1.1.1"; sha256="0d57883df774qqwpssmly3f1gci32yc5sgwc3x8f2rjih23s1nf6"; depends=[dplyr httr humaniformat stringr]; };
   biblio = derive2 { name="biblio"; version="0.0.6"; sha256="079p0qzmi3sg2ff7ln9lg65lf7r402rldqfpxmfvckhm9s6b29b4"; depends=[stringr yamlme]; };
   bibliometrix = derive2 { name="bibliometrix"; version="3.2.1"; sha256="1iar9v9isn8c445lj5g6wrznsy9xn7xmyik0km5c98hxjsibwfzx"; depends=[bibliometrixData dimensionsR dplyr DT factoextra FactoMineR forcats ggplot2 ggrepel igraph Matrix openxlsx plotly pubmedR RColorBrewer readr readxl rscopus shiny SnowballC stringdist stringr tidyr tidytext]; };
-  bibliometrixData = derive2 { name="bibliometrixData"; version="0.1.0"; sha256="0fdfgqsfiq3iacj4vb3bvx98waqzqxdsn2ds8wq86a30lm055d7n"; depends=[]; };
+  bibliometrixData = derive2 { name="bibliometrixData"; version="0.2.0"; sha256="00x1kcdf60j2d6vyjaq6vvfi185j29r401gbl7mmpqa4qw4cf739"; depends=[]; };
   biblionetwork = derive2 { name="biblionetwork"; version="0.1.0"; sha256="0nhx9bk7r5l0bvj98clnmwf53ihghf48zai4nj6pcgr2rb69fvjj"; depends=[data_table Rdpack]; };
   bibs = derive2 { name="bibs"; version="1.1.1"; sha256="0slxqhcm4fhdmr2dj1c31zs8sgl39267179nbc59jlpb0z77z2d6"; depends=[GIGrvg]; };
   bibtex = derive2 { name="bibtex"; version="0.4.2.3"; sha256="0vdwx6808r73pk15263f33bkqbfmb08d8jkmr4d7h4ml414ikbbv"; depends=[stringr]; };
@@ -6575,7 +6588,7 @@ in with self; {
   billboard = derive2 { name="billboard"; version="0.1.0"; sha256="1z3y8dijhc1381y91n5zq305xzm1gpvs0g4mdpfr7zrblpa8ws39"; depends=[tibble]; };
   billboarder = derive2 { name="billboarder"; version="0.3.1"; sha256="189ngvg84rcwhrivxskmjv3srhadvzr4p1v8pf11axyv2qn01b0x"; depends=[ggplot2 htmltools htmlwidgets jsonlite magrittr rlang scales shiny]; };
   bimetallic = derive2 { name="bimetallic"; version="1.0"; sha256="181qi4dr0zc7x6wziq7jdc1his20jmprfpq3hrfm56fr5n1sj8wl"; depends=[]; };
-  bimets = derive2 { name="bimets"; version="2.0.2"; sha256="0ch83l0g5zalbwxj0682yak99mlfba2i0lnmb44g74dcsism6psg"; depends=[xts zoo]; };
+  bimets = derive2 { name="bimets"; version="2.1.0"; sha256="0lwx2ww0qr8hfwgw1ycazd3scypk0jyv3nqvcfd652992f1n24mq"; depends=[xts zoo]; };
   bimixt = derive2 { name="bimixt"; version="1.0"; sha256="0nhszpzjqy8z3vngl5jdzqxzshnn92wgi0ci5n3n5kzi24xkfrzc"; depends=[pROC]; };
   binGroup = derive2 { name="binGroup"; version="2.2-1"; sha256="0cb7j6b0s3y56mv1967awwri0kv0rf3sr3vwf9gc2zbjggxi9ffp"; depends=[partitions Rdpack]; };
   binGroup2 = derive2 { name="binGroup2"; version="1.1.0"; sha256="1hgz1w0bxbd82rx96s6b63wjczsb1x2l6j526wcnwix36kibv3p3"; depends=[ggplot2 partitions rBeta2009 Rcpp RcppArmadillo Rdpack scales]; };
@@ -6606,7 +6619,7 @@ in with self; {
   binsreg = derive2 { name="binsreg"; version="0.7"; sha256="1qxf5096vzf2j9d7yya0pr1hgxgkxm5llvz5ddyf0hqp22cjcsf7"; depends=[ggplot2 matrixStats quantreg sandwich]; };
   binst = derive2 { name="binst"; version="0.2.1"; sha256="09kzk7n1j9nzgyijwirzk33z6p6hc67zkd05hv1i9qfijy31gci4"; depends=[rpart]; };
   bio_infer = derive2 { name="bio.infer"; version="1.3-6"; sha256="1hs11c9qpdsl1awgk3b34mcsnr8g1xpg3zd9dlrqrz6ppdqkgxmn"; depends=[]; };
-  bio3d = derive2 { name="bio3d"; version="2.4-2"; sha256="1jvcmpzi9knhxq5jsbhg8slm8hnlx2y8smmwwrbnbyd0rmk5fhci"; depends=[Rcpp]; };
+  bio3d = derive2 { name="bio3d"; version="2.4-3"; sha256="0x3apqxbk4lvvcnvvdsyjd9f6qh9f9qgml3ih69hl9ikj06iy0y6"; depends=[Rcpp]; };
   bioC_logs = derive2 { name="bioC.logs"; version="1.2"; sha256="16hbw8mbr3nn1k7hr8ihp4lcvd22jk396kbaw2jjd1gw9lvbhicd"; depends=[]; };
   bioOED = derive2 { name="bioOED"; version="0.2.1"; sha256="0wx58bngpzlrbbcnx8l1lqhsg51y98wcym1238p87drf64x2mj1n"; depends=[bioinactivation corrplot dplyr FME ggplot2 MEIGOR rlang tidyr tidyselect tidyverse]; };
   bioPN = derive2 { name="bioPN"; version="1.2.0"; sha256="0mvqgsfc7d4h6npgg728chyp5jcsf49xhnq8cgjxfzmdayr1fwr8"; depends=[]; };
@@ -6649,7 +6662,7 @@ in with self; {
   bisect = derive2 { name="bisect"; version="0.9.0"; sha256="1dr95gnc9rb3i8603wspf0hznmvk5akk46nyf1bhv88mjz2i5q77"; depends=[]; };
   bisectr = derive2 { name="bisectr"; version="0.1.0"; sha256="1vjsjshvzj66qqzg32rviklqswrb00jyq6vwrywg1hpqhf4kisv7"; depends=[devtools]; };
   bisque = derive2 { name="bisque"; version="1.0.2"; sha256="0zp2r1vg29q2ds34hhyjv9pz761mi0qncx9p4ilwnfd5yj9pmzwq"; depends=[foreach itertools mvQuad Rcpp RcppArmadillo RcppEigen]; };
-  bistablehistory = derive2 { name="bistablehistory"; version="1.1.0"; sha256="1bxhv772vsnpmjsj82k351mm54w9vb29d1nd3daz9pk5j52ilih4"; depends=[BH boot dplyr future glue loo magrittr purrr Rcpp RcppEigen RcppParallel rlang rstan rstantools StanHeaders tibble tidyr]; };
+  bistablehistory = derive2 { name="bistablehistory"; version="1.1.1"; sha256="0lk4kbxrnkr66cnyalzl2m18wwzf4y23r016nl1n52209vviql95"; depends=[BH boot dplyr future glue loo magrittr purrr Rcpp RcppEigen RcppParallel rlang rstan rstantools StanHeaders tibble tidyr]; };
   bit = derive2 { name="bit"; version="4.0.4"; sha256="0s7isadibxp2wr62r5cpbyh9z31sczzfz4j3rm7gxgjfpqgq8174"; depends=[]; };
   bit64 = derive2 { name="bit64"; version="4.0.5"; sha256="0y0m7q1rwam1g88cjx7zyi07mj5dipxd9jkl90f294syx8k6ipr5"; depends=[bit]; };
   bite = derive2 { name="bite"; version="0.3"; sha256="00sph3pdbb9p21s3263ni4by2ivvya1sbjm9wvwx1rwjr4f31jps"; depends=[ape coda MASS phytools sm vioplot xml2]; };
@@ -6658,15 +6671,14 @@ in with self; {
   bitsqueezr = derive2 { name="bitsqueezr"; version="0.1.1"; sha256="0dy180r9cclq46mh0fzc68p5zm9x2z5pa8ajgsk7qycdkyw5v829"; depends=[]; };
   bittermelon = derive2 { name="bittermelon"; version="0.2.1"; sha256="0acgi9x3v508igr5nr86nhxzjpl9m8nmqzg7iq65j6pvlr68n7zx"; depends=[findpython png rappdirs Unicode]; };
   bivgeom = derive2 { name="bivgeom"; version="1.0"; sha256="1cn8k7q011whr4f7zig85dsrkz04614z9ns2ky6k6i16s5n3glxy"; depends=[bbmle copula]; };
-  bivquant = derive2 { name="bivquant"; version="0.1"; sha256="05dn4qik2dvmgqc2613vddh312bqhza1vnf94an75888gxri5h03"; depends=[copula cubature lpSolve MASS mvtnorm regpro]; };
   bivrp = derive2 { name="bivrp"; version="1.2-2"; sha256="0b38nh38vgqjllb1z9627dm86yp0s06ky1g829g8kkz7rffdp2za"; depends=[MASS]; };
   biwavelet = derive2 { name="biwavelet"; version="0.20.21"; sha256="0v7arwmng2i22svj836i57q8by9x5pghjv7d35g7r35wakrm8jyx"; depends=[fields foreach Rcpp]; };
   biwt = derive2 { name="biwt"; version="1.0"; sha256="1mb3x8ky3x8j4n8d859i7byyjyfzq035i674b2dmdca6mn7paa14"; depends=[MASS rrcov]; };
   bizdays = derive2 { name="bizdays"; version="1.0.9"; sha256="1ddl7mnxf5prvcmkdfmfhvxrcv8c7clm21qvmr54gwqf759afh07"; depends=[jsonlite]; };
   bizicount = derive2 { name="bizicount"; version="1.0.0"; sha256="1h11cxl56j5mzdjrsb9x7csxad33xx4rd0sgvz3dbd759nbmi9am"; depends=[DHARMa Formula MASS numDeriv pbivnorm rlang texreg]; };
   bjscrapeR = derive2 { name="bjscrapeR"; version="0.1.0"; sha256="18chbgiwify272iqf0w4vsqh73wbk12d8m2awc5hbnfqblz3phwd"; depends=[dplyr glue readr tibble]; };
-  bkmr = derive2 { name="bkmr"; version="0.2.1"; sha256="0606i94lkici73g86xap142xkgrxk5pjid8c6rybjqqz9vqz48cv"; depends=[dplyr fields magrittr MASS nlme tidyr tmvtnorm truncnorm]; };
-  bkmrhat = derive2 { name="bkmrhat"; version="1.1.2"; sha256="0wd8n9lwrrgs2mdxbhyx3sq5xkc7ifvbcwf260m8jgpblp9nn2yz"; depends=[bkmr coda data_table future rstan]; };
+  bkmr = derive2 { name="bkmr"; version="0.2.2"; sha256="1bzr39a53p1xkq2fi2fphv2rpsml2z25xb1ycs63p3y7qis9zlky"; depends=[dplyr fields magrittr MASS nlme tibble tidyr tmvtnorm truncnorm]; };
+  bkmrhat = derive2 { name="bkmrhat"; version="1.1.3"; sha256="0l575dav5wyia37vm5j1dyljgk0k6l1hwfwsqr2gq3sb0iim4my4"; depends=[bkmr coda data_table future rstan]; };
   blackbox = derive2 { name="blackbox"; version="1.1.32"; sha256="180y19ls0vdk98smhs9hxpcwg3hwpl62d19zdiml38bjlxmr0kav"; depends=[foreach geometry lattice MASS nloptr numDeriv pbapply proxy rcdd Rcpp RcppEigen spaMM]; };
   blaise = derive2 { name="blaise"; version="1.3.8"; sha256="1jvjli349rzyiij80ggb27fsqp0hd1fz2pw93rj6cssgipl911xl"; depends=[dplyr readr stringr tibble]; };
   blandr = derive2 { name="blandr"; version="0.5.1"; sha256="1rqas71hlf000b3z824d8ljshf8bx91bbrzaxxnx5n3chv19w6z6"; depends=[ggplot2 jmvcore knitr R6 rmarkdown stringr]; };
@@ -6687,7 +6699,6 @@ in with self; {
   blob = derive2 { name="blob"; version="1.2.2"; sha256="1yn7f13icaix0apxp4drnciwdn8bx8xmbd129jd7ck4rcly0axj9"; depends=[rlang vctrs]; };
   blockCV = derive2 { name="blockCV"; version="2.1.4"; sha256="1fikskjjq571rzmzmqf72z92qkvjb9wdx598kvd28y1ic0xzrgm6"; depends=[progress raster sf]; };
   blockForest = derive2 { name="blockForest"; version="0.2.4"; sha256="14xggdm34hmdlz3hvvp5layk6mb016yppqf9x9rbia9lmmjbhgfh"; depends=[Matrix Rcpp RcppEigen survival]; };
-  blockRAR = derive2 { name="blockRAR"; version="1.0.2"; sha256="1d9izlcgz85kcz1sh11mcxq96qh0cwv6638jha851h2f4lnc8aa4"; depends=[arm dplyr ldbounds magrittr tibble]; };
   blockcluster = derive2 { name="blockcluster"; version="4.5.1"; sha256="1f152m3fv0aaw2csgqvf1y231f5rjhwrkn69yyx9yb3ff65z49d8"; depends=[Rcpp rtkore]; };
   blocklength = derive2 { name="blocklength"; version="0.1.5"; sha256="06d62hgkf2pphr6h3nba1b5r0izr45bvmrymrzq0lyc7xiwrh6na"; depends=[tseries]; };
   blockmatrix = derive2 { name="blockmatrix"; version="1.0"; sha256="14k69ly4i8pb8z59005kaf5rpv611kk1mk96q6piyn1gz1s6sk6r"; depends=[]; };
@@ -6695,7 +6706,7 @@ in with self; {
   blockmodels = derive2 { name="blockmodels"; version="1.1.5"; sha256="1h2g13yp8xhkw9icl5bi1nkc0qfqkqhlhdqbcsp0246g9amssci9"; depends=[digest Rcpp RcppArmadillo]; };
   blockrand = derive2 { name="blockrand"; version="1.5"; sha256="0bic3b8l7mp2hpwd8k1diwy6a4lj92i7s5k20i2wy8kw0c74jwfh"; depends=[]; };
   blocksdesign = derive2 { name="blocksdesign"; version="4.9"; sha256="1kr3fxs8vgc96clhx5ml11jkwll1rg9gf16xg93q14jpg4hg0j9h"; depends=[plyr PolynomF]; };
-  blogdown = derive2 { name="blogdown"; version="1.8"; sha256="05rzxwap8i7h5ijy04322cyim6kxhdhgq8y8nvp9q9gq3183bmrs"; depends=[bookdown htmltools httpuv jsonlite knitr later rmarkdown servr xfun yaml]; };
+  blogdown = derive2 { name="blogdown"; version="1.9"; sha256="0p6fp56b6kzxmff9grassq7f0pyblrk63gjkwzl482217pb2php9"; depends=[bookdown htmltools httpuv jsonlite knitr later rmarkdown servr xfun yaml]; };
   blorr = derive2 { name="blorr"; version="0.3.0"; sha256="1ynvg6ar7c7p01225q9czy4gxks0p1vw3sx207l7vzqxw20wb1bn"; depends=[car data_table ggplot2 gridExtra lest Rcpp]; };
   blrm = derive2 { name="blrm"; version="1.0-1"; sha256="0p0nmbxil4l89fcryrgsg9mxzb5fyg93p50aqkjy00ms05hwd0hx"; depends=[boot mvtnorm openxlsx reshape2 rjags]; };
   blsR = derive2 { name="blsR"; version="0.2.1"; sha256="0wbcpvgj72fkhv4z1gllf9lkq45mdwwnf8dnmaqwl9i5qnihy1yy"; depends=[dplyr httr jsonlite purrr rlang]; };
@@ -6715,9 +6726,9 @@ in with self; {
   bmscstan = derive2 { name="bmscstan"; version="1.1.0"; sha256="1mr56ry9jzsd2z0zffcysy01bh62cg13hi4swdhdvwmjcsb5gq97"; depends=[bayesplot coda ggplot2 LaplacesDemon logspline rstan]; };
   bnclassify = derive2 { name="bnclassify"; version="0.4.6"; sha256="00akv7mg4mn7kk98r6ja3yx9h822b8hnv1k890i8kwsra3c2qgid"; depends=[assertthat BH entropy matrixStats Rcpp rpart]; };
   bndovb = derive2 { name="bndovb"; version="1.1"; sha256="16mvkvwnx61jrvraagvxf56pvmf5klm8lnkqq4s5y2z92kd0clgp"; depends=[dplyr factormodel MASS nnet np pracma]; };
-  bnlearn = derive2 { name="bnlearn"; version="4.7"; sha256="05r80arqvcmnkw20gffrfc2ypnqf6628c8y3xr8pxw3wkfxdf79f"; depends=[]; };
+  bnlearn = derive2 { name="bnlearn"; version="4.7.1"; sha256="028mgj6l36mypif7821yp2bsa5m1amfpwwd63bz6677plzd30f94"; depends=[]; };
   bnma = derive2 { name="bnma"; version="1.5.0"; sha256="0h7nk28ny4capnji1j5m2kzsc7l8a1z7icx0iak87pk4abzqlzmm"; depends=[coda ggplot2 igraph rjags]; };
-  bnmonitor = derive2 { name="bnmonitor"; version="0.1.1"; sha256="1728i8rsa8dg2svcmy7bs4qwja8p0h7c6hwysjp61g4vm87shzp8"; depends=[bnlearn dplyr ggplot2 gRain gRbase matrixcalc purrr qgraph RColorBrewer reshape2 rlang tidyr]; };
+  bnmonitor = derive2 { name="bnmonitor"; version="0.1.2"; sha256="0lnwwd9bxyflk2sz7gs79ki4ypsmd7pzhysplvj9rjszwk1vlz9p"; depends=[bnlearn dplyr ggplot2 gRain gRbase purrr qgraph RColorBrewer reshape2 rlang tidyr]; };
   bnnSurvival = derive2 { name="bnnSurvival"; version="0.1.5"; sha256="1d9jmfx0id4lmw122zga7hb52vlfdfqn4amhzpsmhyck99rv92j4"; depends=[pec prodlim Rcpp]; };
   bnormnlr = derive2 { name="bnormnlr"; version="1.0"; sha256="0l2r7vqikak47nr6spdzgjzhvmkr9dc61lfnxybmajvcyy6ymqs9"; depends=[mvtnorm numDeriv]; };
   bnpa = derive2 { name="bnpa"; version="0.3.0"; sha256="0qsxk47i7q4d8hbs2xj5k5sf8bqyzhq7rbj4y7w8ljprznlydgl9"; depends=[bnlearn fastDummies lavaan Rgraphviz semPlot xlsx]; };
@@ -6727,16 +6738,18 @@ in with self; {
   bnviewer = derive2 { name="bnviewer"; version="0.1.6"; sha256="036jmypxg2ciiz388f90vm73l9djhpi6gzp1ibn9l0x3d072r7zz"; depends=[assertthat bnlearn caret e1071 igraph shiny visNetwork]; };
   boa = derive2 { name="boa"; version="1.1.8-2"; sha256="04lhqk5qfvaz1jk90glr2yi5vq7cdy0w8m6g2lnzk359l9y41zhp"; depends=[]; };
   bodenmiller = derive2 { name="bodenmiller"; version="0.1.1"; sha256="0rdbk3f95iw4352fl9d81ir503q072chbb4hn1k12sp1wjc3apid"; depends=[]; };
-  bodycomp = derive2 { name="bodycomp"; version="0.1.0"; sha256="1fzw8g1dxvigknx8s6kd05z13p7ak0941y9bqzklgsfm9afiaj4d"; depends=[]; };
+  bodycomp = derive2 { name="bodycomp"; version="1.0.0"; sha256="1hi3x2chs87ba5nh7ka6xjrl5yvwqqcdyj1dg87rpaiipyl8396n"; depends=[]; };
   boilerpipeR = derive2 { name="boilerpipeR"; version="1.3.2"; sha256="1dws84ghc5r6zpnr23qd4l9bkazds8ar723wkrkikjni58vshjf1"; depends=[rJava]; };
   bolasso = derive2 { name="bolasso"; version="0.1.0"; sha256="1radw0h1y1gq0lzfrdh2phnvbrxzlklm7hhbz6x4xpw6vybwbp1j"; depends=[future_apply gamlr ggplot2 glmnet Matrix progressr Rdpack tibble]; };
   bold = derive2 { name="bold"; version="1.2.0"; sha256="0r54ylxgmq9qnh1f36k4hafh80n86ibk4a994f8b1rnb9bq9f5cg"; depends=[crul data_table jsonlite plyr reshape stringr tibble xml2]; };
-  bookdown = derive2 { name="bookdown"; version="0.24"; sha256="1qqvvfbpbd6sin8vpvr3zzlhlyx1i6b98yp77xj5zl220nid5slb"; depends=[htmltools jquerylib knitr rmarkdown tinytex xfun yaml]; };
+  bookdown = derive2 { name="bookdown"; version="0.25"; sha256="0v5nlm3lbm0h5cvd9j2211yqk68rkm416aq8qp6r8klj69xm1bri"; depends=[htmltools jquerylib knitr rmarkdown tinytex xfun yaml]; };
   bookdownplus = derive2 { name="bookdownplus"; version="1.5.8"; sha256="1cdxz5c69cgdk7wxr0xwhzw361rpg7j8xjv9hjf1877qqmhxbrkd"; depends=[bookdown knitr magick xaringan]; };
   boomer = derive2 { name="boomer"; version="0.1.0"; sha256="0nb58msk7ycim15ssjwig9i62x51ydnakq83jg6vcbqjg1a9anry"; depends=[crayon pryr rlang rstudioapi styler withr]; };
+  boostmtree = derive2 { name="boostmtree"; version="1.5.1"; sha256="17na38k052lzjrssvxssllm9fwpnzhr29g9wwcfkbja6rv2pw9p1"; depends=[nlme randomForestSRC]; };
   boot = derive2 { name="boot"; version="1.3-28"; sha256="0cjafhqv1c1mrjjcasqr767vs96wjcc6am9r1icryr8l4zymhwcz"; depends=[]; };
   boot_heterogeneity = derive2 { name="boot.heterogeneity"; version="1.1.5"; sha256="0g4zkvx8krqh54xvjh1a0ybwl3v5bg3l670ycgnps8kkw32w5p1f"; depends=[HSAUR3 knitr metafor pbmcapply rmarkdown]; };
   boot_pval = derive2 { name="boot.pval"; version="0.4"; sha256="05gxpky92f9jhvhv4faj49ql8a9mrfqdgk802i0hdw4lmnn90k7j"; depends=[boot car lme4 Rdpack survival]; };
+  bootCT = derive2 { name="bootCT"; version="1.0"; sha256="0971y4qhzq5vm614yzp20d3570l3kq7q4ryfii650w4gfz1535mg"; depends=[aod ARDL dplyr dynamac fBasics ggfortify gtools matrixcalc pracma Rcpp RcppArmadillo stringr usethis vars]; };
   bootComb = derive2 { name="bootComb"; version="1.1.2"; sha256="0gg07ck2nf0ddqc5nflk5ms16m3c6dlf1a77m58q581mkavj6gyb"; depends=[MASS]; };
   bootES = derive2 { name="bootES"; version="1.2.1"; sha256="16b14bycy3ds09hsxnk738k2xq9qmwcy3kzdqd6rw9w4j7167kf0"; depends=[boot]; };
   bootGOF = derive2 { name="bootGOF"; version="0.1.0"; sha256="11nn4lc9wdx1z35mfpc3zkk1xr0pvvjyvjzpjlq3z4gm0hmniifz"; depends=[checkmate R6]; };
@@ -6762,7 +6775,6 @@ in with self; {
   boussinesq = derive2 { name="boussinesq"; version="1.0.3"; sha256="1j1jarc3j5rby1wvj1raj779c1ka5w68z7v3q8xhzjcaccrjhzxk"; depends=[]; };
   boutliers = derive2 { name="boutliers"; version="1.1-1"; sha256="01dp1w5lxmn6nixajg6dz0qincm0i1in03q7g284v37qnszyimqs"; depends=[metafor]; };
   box = derive2 { name="box"; version="1.1.0"; sha256="13jdghfagpwr0x0yc7zg9hdysb2bzlcpc3fws4inj76v9285hdz5"; depends=[]; };
-  boxcoxmix = derive2 { name="boxcoxmix"; version="0.28"; sha256="12f1lakfy9i1rq70cq0bffpdachsm58rcmbbhgnq1r31g028zrcc"; depends=[npmlreg qicharts statmod]; };
   boxplotdbl = derive2 { name="boxplotdbl"; version="1.3.0"; sha256="1y1b45q69sxbszd83s8ch10z4i55h34ixm8q7yxr7byx3px8y65n"; depends=[]; };
   boxr = derive2 { name="boxr"; version="0.3.6"; sha256="1hdm4p7zx2r566zaiyw06qg3c790gsvylrvav7g9fl4i1x6qgkyk"; depends=[assertthat bit64 digest dplyr fs glue httpuv httr jsonlite lifecycle magrittr mime purrr rio rlang stringr tibble]; };
   bp = derive2 { name="bp"; version="2.0.1"; sha256="0r41ardnxgkwd1ib8krasrhzw5q840xs1qrahh6nq38c4yw2b9yi"; depends=[cowplot dplyr ggplot2 gridExtra gtable lubridate magrittr tibble tidyr tidyselect]; };
@@ -6771,7 +6783,7 @@ in with self; {
   bpa = derive2 { name="bpa"; version="0.1.1"; sha256="0np7q1nasrq4j7ssaipvbjgrsi9n612p9lp96frq1dgix95mcgf0"; depends=[magrittr plyr]; };
   bpbounds = derive2 { name="bpbounds"; version="0.1.4"; sha256="05knl0lmhbc399zwb35r8m1w5jvmwad8rg5m7m633pg7cfijayb9"; depends=[]; };
   bpca = derive2 { name="bpca"; version="1.3-4"; sha256="1b0qigynj35sr5nf9y6hvcr52ydskqwx5wxwb27zawps3iykyjwf"; depends=[rgl scatterplot3d xtable]; };
-  bpcp = derive2 { name="bpcp"; version="1.4"; sha256="0jwz9vrz6ivz70qzgvpvksk94rw5m7vi6yijbg8dj6biq5rq01lv"; depends=[ggplot2 survival]; };
+  bpcp = derive2 { name="bpcp"; version="1.4.2"; sha256="1xgspmknjs7cqh0iw3qgikbxpbl2qscjx9n07ib5s3z8hi282wrn"; depends=[ggplot2 survival]; };
   bpcs = derive2 { name="bpcs"; version="1.0.0"; sha256="0jsy2l1qnzr8098614d6pj7rydf6b9s7kxrkahyzq82ivby9hj5m"; depends=[badger BH coda dplyr ggplot2 gtools HDInterval knitr loo magrittr Rcpp RcppEigen RcppParallel rlang rstan rstantools shinystan StanHeaders stringr tibble tidyr tidyselect]; };
   bpgmm = derive2 { name="bpgmm"; version="1.0.7"; sha256="0abh6jjglims8hjm2fwh0dz2qsgxy0fglxl5fnfgkwc139rsrhgy"; depends=[fabMix gtools label_switching MASS mclust mcmcse mvtnorm pgmm Rcpp RcppArmadillo]; };
   bpnreg = derive2 { name="bpnreg"; version="2.0.2"; sha256="1acf7smlcg8b29ga47wpb23zpfb90iz19fjc5v0zppc8q20lgggl"; depends=[BH haven Rcpp RcppArmadillo]; };
@@ -6797,8 +6809,8 @@ in with self; {
   breakaway = derive2 { name="breakaway"; version="4.7.9"; sha256="149n30lxkyh9qapm9xfarxbrxlp2fkar437ndajryq8m4i39w08i"; depends=[ggplot2 lme4 magrittr MASS phyloseq tibble]; };
   breakfast = derive2 { name="breakfast"; version="2.2"; sha256="1bdzi0czhjwiqid6xz1b10p9wqy051sy5jhxnwzh9bxzh94a79lk"; depends=[ggplot2 plyr Rcpp]; };
   breakpoint = derive2 { name="breakpoint"; version="1.2"; sha256="004vi1qr7iib8ykg6sp7xzv0bb841h4vsz2x0cyrhkdp41frglx9"; depends=[doParallel foreach ggplot2 MASS msm]; };
-  breathtestcore = derive2 { name="breathtestcore"; version="0.8.1"; sha256="1cdv3qc5bydpchw2qz8wgqsc1hjn0q97bsk05gm8s0xfxmkfn3jb"; depends=[assertthat broom dplyr ggfittext ggplot2 MASS multcomp nlme purrr readr readxl signal stringr tibble tidyr xml2]; };
-  breathteststan = derive2 { name="breathteststan"; version="0.8.0"; sha256="1h05yqpsa1r6p0iybwh7rap0n10vr2wj2driq7qyq6wk6y14m8hc"; depends=[BH dplyr purrr Rcpp RcppEigen rstan rstantools StanHeaders stringr tibble tidyr]; };
+  breathtestcore = derive2 { name="breathtestcore"; version="0.8.4"; sha256="01hqcbqifvq38a1ab0q2c02zavnlajaa41ia0r63d2m6plmdpbsf"; depends=[assertthat broom dplyr ggfittext ggplot2 MASS multcomp nlme purrr readr readxl signal stringr tibble tidyr xml2]; };
+  breathteststan = derive2 { name="breathteststan"; version="0.8.4"; sha256="1j6dqjdd1079pyvgclayl1la0qa88irr9wx31viisjjri93n7wm9"; depends=[BH dplyr purrr Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders stringr tidyr]; };
   brew = derive2 { name="brew"; version="1.0-7"; sha256="0vp7d628j6zzxhh6xfw5jlkv7wh6z2l3snbwjgv7jd56vk0mkf1q"; depends=[]; };
   brglm = derive2 { name="brglm"; version="0.7.2"; sha256="08shcz0j1npdn7xkhsvlzs3z4rdwq3g4rk6a4xx8wirqw8n8s2an"; depends=[profileModel]; };
   brglm2 = derive2 { name="brglm2"; version="0.8.2"; sha256="065ldmbagarhipl6hl25rlpcnp7c3h1adadyq2wgx0g09hq5ibjf"; depends=[enrichwith MASS Matrix nnet numDeriv]; };
@@ -6817,13 +6829,13 @@ in with self; {
   brms = derive2 { name="brms"; version="2.16.3"; sha256="1q93z4cf3iy4rs6pgvph6z7hc8q05iwif76hcg8p4kr6nl82nc38"; depends=[abind backports bayesplot bridgesampling coda future ggplot2 glue loo Matrix matrixStats mgcv nleqslv nlme posterior Rcpp rstan rstantools shinystan]; };
   brmsmargins = derive2 { name="brmsmargins"; version="0.1.1"; sha256="17mh539d11920mv5jn20l62md2cpkizlynw01j87pij8hj63ajn3"; depends=[bayestestR brms data_table extraoperators posterior Rcpp RcppArmadillo]; };
   brnn = derive2 { name="brnn"; version="0.9"; sha256="0gyjvrakwd6nbgv94hbxvynsl52w0zswzp8fxl88rppycpgn81j6"; depends=[Formula truncnorm]; };
-  brokenstick = derive2 { name="brokenstick"; version="2.0.0"; sha256="0si4chi6fcp6n8wwvx6mrj9xlrldwhvcrx1kv7xbfd0p7kaz89qh"; depends=[coda dplyr lme4 matrixsampling rlang tidyr]; };
+  brokenstick = derive2 { name="brokenstick"; version="2.1.0"; sha256="0diz6p4y6yima4ykfg7m0rdkbn5j63xy8w65y1cc40pspwbsvd6d"; depends=[coda dplyr lme4 matrixsampling rlang tidyr]; };
   brolgar = derive2 { name="brolgar"; version="0.1.2"; sha256="0xhv76z75zsrvcy606cv8qvz14w5g02gcs2744kv1kflaaics7dx"; depends=[dplyr fabletools ggplot2 glue magrittr purrr rlang tibble tidyr tsibble vctrs]; };
   broman = derive2 { name="broman"; version="0.76"; sha256="1yjalfrfy1hvrcs3ky452mdg2ss8ikascj9yngp5fnfrrljcg9wg"; depends=[ggplot2]; };
   broom = derive2 { name="broom"; version="0.7.12"; sha256="1nbv4a4s8548h2q226xmhyp42higayh95yvllh1rcs264lmw3yh4"; depends=[backports dplyr ellipsis generics ggplot2 glue purrr rlang stringr tibble tidyr]; };
   broom_helpers = derive2 { name="broom.helpers"; version="1.6.0"; sha256="11svlfn80xl8vyrq8vqxrqii5c77kp67drnal9v9l7q1frlnq509"; depends=[broom cli dplyr labelled lifecycle purrr rlang stringr tibble tidyr]; };
-  broom_mixed = derive2 { name="broom.mixed"; version="0.2.7"; sha256="1fh1vxi8n5y30mayk4aa1yis4c064fz5xyrg8m0rl8xgaxakhagz"; depends=[broom coda dplyr nlme purrr stringr tibble tidyr]; };
-  broomExtra = derive2 { name="broomExtra"; version="4.3.0"; sha256="1f2xsq0r0m991y3p6639v16kjwm3im8yys7brzvgmsv04rg29rhq"; depends=[broom broom_mixed dplyr magrittr parameters performance rlang]; };
+  broom_mixed = derive2 { name="broom.mixed"; version="0.2.9.3"; sha256="01l7c1p1gs70jd5875jxvcziagvldvwnhk25hak5ranmxkwi7qqn"; depends=[broom coda dplyr forcats furrr nlme purrr stringr tibble tidyr]; };
+  broomExtra = derive2 { name="broomExtra"; version="4.3.2"; sha256="02ijhqgymm8nv40fy4j6psqkhak3dfwz8i5k0ay3g7aic49lzcbf"; depends=[broom broom_mixed dplyr magrittr parameters performance rlang]; };
   brotli = derive2 { name="brotli"; version="1.2"; sha256="07rgdgxh9bvn0qavpclxmkglwyl6ndqasxcs6j12if698dkn976b"; depends=[]; };
   brr = derive2 { name="brr"; version="1.0.0"; sha256="050ivnqcaxiyypd1sxfpy6ianhzzmvs6c77ga40g3440cvfigkgw"; depends=[gsl hypergeo pander stringr SuppDists TeachingDemos]; };
   brranching = derive2 { name="brranching"; version="0.7.0"; sha256="06jy3qhbr0v4m1j4j8a7fb7ic59sx4zhlsm1yb3g6rdwc00d67wj"; depends=[ape conditionz crul curl phylocomr phytools taxize]; };
@@ -6834,12 +6846,13 @@ in with self; {
   bs4cards = derive2 { name="bs4cards"; version="0.1.1"; sha256="0fhjj3wjhxl263lhlbm5jw9l227a5k9cpannpankr5h8bkn1408h"; depends=[htmltools magrittr rlang]; };
   bsTools = derive2 { name="bsTools"; version="0.1.0"; sha256="08h029gznsw93xirsxc1ib61qpqw1k8qzc0cjha56yr4j8b8qagy"; depends=[html5]; };
   bsam = derive2 { name="bsam"; version="1.1.3"; sha256="1yiplh4wcc711w59ir5hxlp3mmgsnfz01d6203vfgclzsi7ix5m9"; depends=[coda dplyr ggplot2 gridExtra lubridate msm mvtnorm rjags rworldxtra sp tibble]; };
-  bsamGP = derive2 { name="bsamGP"; version="1.2.3"; sha256="1wqs2y9f7fgdvshhzwpjp811h4xhdd1lplpadnpffa2lmyv7vh5s"; depends=[ggplot2 gridExtra MASS]; };
+  bsamGP = derive2 { name="bsamGP"; version="1.2.4"; sha256="1zga3h747fh61n9m88gazc2p2i905cwvwdkql3rh65h26cphvvs6"; depends=[ggplot2 gridExtra MASS]; };
   bsearchtools = derive2 { name="bsearchtools"; version="0.0.61"; sha256="11fqz8kdhqpc3jq34vgv3frzawgsl5y0s83rb2p54yb5yhd3p68w"; depends=[Rcpp]; };
   bsem = derive2 { name="bsem"; version="1.0.0"; sha256="1h4wsib6ppqj8nbvj4pzkm04bzrdkg9l7xfmzzmld9cswai4iw52"; depends=[BH coda DiagrammeR lattice magrittr Rcpp RcppEigen rstan rstantools shiny StanHeaders viridis visNetwork]; };
   bshazard = derive2 { name="bshazard"; version="1.1"; sha256="1kidypyqlilf794mksjvhja8bmnd9hdhz91ywy0mcddgc6wbar4h"; depends=[Epi survival]; };
   bslib = derive2 { name="bslib"; version="0.3.1"; sha256="0jcqklry1nkibz0sydsz5xdsnb4wnrrhvmyr9ji3k45bbipbap2z"; depends=[htmltools jquerylib jsonlite rlang sass]; };
   bspec = derive2 { name="bspec"; version="1.5"; sha256="0jynvir7z4q1vrvhdn6wijdrjfrkk4544nlawabw2fnfxss91a91"; depends=[]; };
+  bspline = derive2 { name="bspline"; version="1.0.2"; sha256="1xrf2gph4pqvsnjd4wcxcr1cmdqwhzadrm12a4ayrk0mgqnxf4ga"; depends=[arrApply nlsic Rcpp RcppArmadillo]; };
   bsplinePsd = derive2 { name="bsplinePsd"; version="0.6.0"; sha256="0f785l02hiq3f7anxqhm09f7lrqgkkqhly7f1x78cxm22hvrqyhg"; depends=[Rcpp]; };
   bsplus = derive2 { name="bsplus"; version="0.1.3"; sha256="1grn2i2xxq5fhkqb7lqsfhbfckr6i3ddy7mikgxz6lifk4rc4mxx"; depends=[glue htmltools jsonlite lubridate magrittr purrr rmarkdown stringr]; };
   bspm = derive2 { name="bspm"; version="0.3.9"; sha256="1r0c0gnj0ps5cs9grwss7jxx5znywi80kng0rsb3dsmacwsfpkk1"; depends=[]; };
@@ -6851,14 +6864,14 @@ in with self; {
   bsts = derive2 { name="bsts"; version="0.9.7"; sha256="00iz1rwi7z02hipmmifzzgflf16b1va3pybxgi8xk3rdwxxvjpal"; depends=[Boom BoomSpikeSlab xts zoo]; };
   bsub = derive2 { name="bsub"; version="1.1.0"; sha256="112hlvg15jlzg3drfzkslaly42vnvsycn9vif0w3iaw5fzsaa954"; depends=[clisymbols crayon digest GetoptLong GlobalOptions]; };
   btb = derive2 { name="btb"; version="0.1.30.3"; sha256="00asbzjgcjd1cm5m1yndbgr60zpvnhbk5b7rhkhc2z1w513bwi8w"; depends=[BH Rcpp RcppArmadillo RcppParallel sf sp]; };
-  btergm = derive2 { name="btergm"; version="1.10.3"; sha256="0y92zgcqzvq8vvv6rwmqja83jjm3q4ilg6ivyzaqsz1wgcvnbwmv"; depends=[boot coda ergm igraph Matrix network ROCR sna speedglm statnet_common]; };
+  btergm = derive2 { name="btergm"; version="1.10.6"; sha256="19iil8dfrxjwm3gmrhlbiacv9fhicng9x37bxf04i53lx6fw7yar"; depends=[boot coda ergm igraph Matrix network ROCR sna speedglm statnet_common]; };
   bubblyr = derive2 { name="bubblyr"; version="0.1.2"; sha256="04agfwk6rmbhlfblfw1irqnv3yrp00zfn4qwy2169b7ypg8r55v2"; depends=[glue htmltools]; };
-  bucky = derive2 { name="bucky"; version="1.0.6"; sha256="01rlx0m6h66y1p9k5llg17qpajjhk2vmhbpwc4i5igf5x5g4clgc"; depends=[lmtest sandwich]; };
+  bucky = derive2 { name="bucky"; version="1.0.7"; sha256="1ymlpmhgvhp7n7y9dbvi6zh73y8jvr09axq4skcliam8ks2xx1pm"; depends=[lmtest sandwich]; };
   buffeRs = derive2 { name="buffeRs"; version="0.31"; sha256="1yr2bg2cyl8sm4g7jrjw9apj5lqhbqscw5mshs8r8niz0fkyq6lg"; depends=[sf]; };
-  buildmer = derive2 { name="buildmer"; version="2.3"; sha256="1marbhayiv00wrhjp2cnsg3p7zkzd6f82x13m7xdlx71zbvc4rfh"; depends=[lme4 mgcv nlme plyr]; };
+  buildmer = derive2 { name="buildmer"; version="2.4"; sha256="0xmdgmbzpvwl1f8yjw1bz9ydmmgn62md50yrhbgmm31j9q92lhm7"; depends=[lme4 mgcv nlme plyr]; };
   buildr = derive2 { name="buildr"; version="0.1.0"; sha256="125s41d2ahww7ngli2mgl5999syjm5q5mxskv6jjrnfv7l6vhm3k"; depends=[glue magrittr readr rstudioapi stringr tibble usethis]; };
   bujar = derive2 { name="bujar"; version="0.2-9"; sha256="1hx9yrry1v3vl14y1wpfp1l3cymyqhnff86sv6b112b9cfjpwmvq"; depends=[bst earth elasticnet gbm mboost mda modeltools mpath rms survival]; };
-  bulkAnalyseR = derive2 { name="bulkAnalyseR"; version="0.1.1"; sha256="18jzx4kv7sbyg834qqsm25k9s5kccljrnp4z9iy43f9kv0afan4i"; depends=[circlize ComplexHeatmap DESeq2 dplyr DT edgeR GENIE3 ggforce ggnewscale ggplot2 ggrastr ggrepel glue gprofiler2 magrittr matrixStats noisyr preprocessCore RColorBrewer rlang scales shiny shinyjqui shinyjs shinythemes shinyWidgets tibble tidyr visNetwork]; };
+  bulkAnalyseR = derive2 { name="bulkAnalyseR"; version="1.0.0"; sha256="1j86qx90rjj1bm6jm107rqs8s1g7cz69302gjip0h6iwd77kmim1"; depends=[circlize ComplexHeatmap DESeq2 dplyr DT edgeR GENIE3 ggforce ggnewscale ggplot2 ggrastr ggrepel glue gprofiler2 magrittr matrixStats noisyr preprocessCore RColorBrewer rlang scales shiny shinyjqui shinyjs shinyLP shinyWidgets stringr tibble tidyr UpSetR visNetwork]; };
   bulletcp = derive2 { name="bulletcp"; version="1.0.0"; sha256="1k7lw8gflih47ncz8hgsj0sxbajnkhz1k7yb7rwbdnzcki3n3jln"; depends=[assertthat dplyr mvtnorm Rdpack]; };
   bulletr = derive2 { name="bulletr"; version="0.1"; sha256="181rnrp62almf08gr41qnrnq8qnbqraqdvj4zixdh8fachsq2imp"; depends=[dplyr ggplot2 plotly plyr reshape2 robustbase smoother xml2 zoo]; };
   bullwhipgame = derive2 { name="bullwhipgame"; version="0.1.0"; sha256="03nwf2v4zhgkxvkghpkbkxz0cnkqcwwl51ykrk25qciakfqkgfws"; depends=[shiny]; };
@@ -6892,7 +6905,7 @@ in with self; {
   c3net = derive2 { name="c3net"; version="1.1.1"; sha256="0m4nvrs41kmlakc6m203zlncqwgj94wns8kzcb31xngjcacmcq42"; depends=[igraph]; };
   cAIC4 = derive2 { name="cAIC4"; version="1.0"; sha256="1qg73g0g029wkzpmp0fgvyfz8p1k3x38yqx0404cpb3dxj4n4hcg"; depends=[lme4 Matrix mgcv mvtnorm nlme RLRsim]; };
   cIRT = derive2 { name="cIRT"; version="1.3.2"; sha256="1iwgxc1jl118j9yjhjix9f7dm75sj82iz7ic58g5625fxzdgnw25"; depends=[Rcpp RcppArmadillo]; };
-  cNORM = derive2 { name="cNORM"; version="2.1.0"; sha256="01iigvxl01h320yppnjlr46j7s2gz2g6yk00kfcr7b5zq8qzil2j"; depends=[lattice latticeExtra leaps]; };
+  cNORM = derive2 { name="cNORM"; version="3.0.0"; sha256="0270lzyhk772k77a6b8hddfc23l3whyl33iypgc7lvgp7c1kxp2g"; depends=[lattice latticeExtra leaps]; };
   cOde = derive2 { name="cOde"; version="1.1.1"; sha256="1h3bp97lqd1jvgnablhxdncmvbf5qwphqbs7xy3r31vpamslz77i"; depends=[]; };
   cPCG = derive2 { name="cPCG"; version="1.0"; sha256="1pfbsv2rcjsryn6nr56a7i4yb7k0m3gdfn4q9l1kpzhmv9lic7m1"; depends=[Rcpp RcppArmadillo]; };
   cPseudoMaRg = derive2 { name="cPseudoMaRg"; version="1.0.1"; sha256="1mf78pilhx4mqv8n0xrdzn9wkvhnb3bs7rill7n588f18bnjp9mh"; depends=[]; };
@@ -6908,7 +6921,7 @@ in with self; {
   cabinets = derive2 { name="cabinets"; version="0.6.0"; sha256="1pypn29v91zqncv5kxinfz0f633qmic7n87rf4amjrq83iiid6md"; depends=[cli crayon fs git2r glue R6 renv rstudioapi stringr]; };
   cabootcrs = derive2 { name="cabootcrs"; version="2.1.0"; sha256="0aqp8ip0s9raz4minhaw7vcn253xld4dgr957wsl2sp2nd8z66rq"; depends=[colorspace lpSolve]; };
   cacIRT = derive2 { name="cacIRT"; version="1.4"; sha256="145j6isqa8yj2nvlqkxagd076zs10ng3n44khi5p4jj77fjc8gh6"; depends=[]; };
-  cache = derive2 { name="cache"; version="0.0.2"; sha256="0ffny3wbba755h6rs842z0hj5wyjhjin3b5lrxg09yqcjz03pll1"; depends=[cli digest here r_assert]; };
+  cache = derive2 { name="cache"; version="0.0.3"; sha256="0ix8z9zxslnycqn75rlz7f059jwfcclpxbas5sihcdmrdavz5ggj"; depends=[cli digest here r_assert]; };
   cachem = derive2 { name="cachem"; version="1.0.6"; sha256="0r0q5w8lsxak46crnkbi739qzys90hlw7cqqqhv99xzkpkvm554s"; depends=[fastmap rlang]; };
   caesar = derive2 { name="caesar"; version="1.1.0"; sha256="17w19m1c4a8x68bfbll71r9d3d34xnqw7lkhvqbnajd0cdm9xpa2"; depends=[binhf]; };
   caffsim = derive2 { name="caffsim"; version="0.2.2"; sha256="00bkgmmqrydpji2pvhcchgl2p8w5ksby4g80i3h76q0bm2325w9h"; depends=[dplyr ggplot2 markdown mgcv shiny tibble tidyr]; };
@@ -6917,6 +6930,7 @@ in with self; {
   calcWOI = derive2 { name="calcWOI"; version="1.0.3"; sha256="1bxsn9b99hnb365qvlzr0ymwavamlyhs5sm9s2fdjh4zv3f32n3l"; depends=[dualtrees LS2W wavethresh]; };
   calculus = derive2 { name="calculus"; version="0.3.3"; sha256="1fhvr0l2mqik3d95v0vanafxmiab147g5a87q956g2i945wc5f22"; depends=[Rcpp]; };
   calendR = derive2 { name="calendR"; version="1.1"; sha256="1gji7ns35swdgg7bzq3vrzi4hnb98c5iw6r1j0k7nn2fdx7kbffp"; depends=[dplyr forcats gggibbous ggimage ggplot2 suncalc]; };
+  calendRio = derive2 { name="calendRio"; version="0.2.0"; sha256="152fb5yaazb2hh99ag1aq675gc5f8xw990w55nkhxqhg6w5p0ln9"; depends=[dplyr forcats gggibbous ggimage ggplot2 suncalc]; };
   calendar = derive2 { name="calendar"; version="0.0.1"; sha256="18ha6vpx2bpk8p08hajiq2d201fbqhzcycp8ks6wrr06fy04z689"; depends=[lubridate tibble]; };
   calibrar = derive2 { name="calibrar"; version="0.2.0"; sha256="1544bc5rhhc6d1mky7ngza00wwh63q07dkbzlwfgyavly8m9cplb"; depends=[cmaes foreach optimx]; };
   calibrate = derive2 { name="calibrate"; version="1.7.7"; sha256="19kgrnsyq67iqv1biyssqi30a6v2836ql20nabpy2m692ns0jfvi"; depends=[MASS]; };
@@ -6925,6 +6939,7 @@ in with self; {
   callr = derive2 { name="callr"; version="3.7.0"; sha256="02inaf3c7b0hikii7p2zwaphrq5myv4in92d9jxd1ilmhla5awnn"; depends=[processx R6]; };
   calmate = derive2 { name="calmate"; version="0.13.0"; sha256="17gfk3am8frj9pqx31pmjswm5nvca9nqbanl0qj4ypsr8wymix7w"; depends=[aroma_core MASS matrixStats R_filesets R_methodsS3 R_oo R_utils]; };
   calpassapi = derive2 { name="calpassapi"; version="0.0.3"; sha256="1vhx5h7ah75cs1mlw25x7hal90m47596kr7fx2pd8fslq7il7p1b"; depends=[digest dplyr httr jsonlite stringr]; };
+  camerondata = derive2 { name="camerondata"; version="1.0.0"; sha256="0nj9dxwklhqyqrqfq88vpi4mdd6gvd3mzi80h8fi7hjzv5pmgqad"; depends=[]; };
   campfin = derive2 { name="campfin"; version="1.0.8"; sha256="06shr4p4g3cwxs1iszpvpk83k2mss6za68fqkv5pjiz44pc89v80"; depends=[dplyr fs ggplot2 glue httr lubridate magrittr purrr readr rlang scales stringdist stringr tibble]; };
   campsis = derive2 { name="campsis"; version="1.2.0"; sha256="1nngm2g2j8q7kfa7pl11zg28mb8m9kyyc3lfxsldydm6vijlckv7"; depends=[assertthat campsismod dplyr ggplot2 MASS plyr purrr rlang tibble tidyr]; };
   campsismod = derive2 { name="campsismod"; version="0.8.0"; sha256="1h919ci4jnwi812grbi4wjl7r86142xvb83hbhjni3yl93k0627s"; depends=[assertthat dplyr magrittr plyr purrr readr]; };
@@ -6963,7 +6978,7 @@ in with self; {
   cardidates = derive2 { name="cardidates"; version="0.4.8"; sha256="1mfd5sgzswhs9rln2bgxx8c54z69xp8l5dfmx7jfh8jl43qkzpjf"; depends=[boot lattice pastecs]; };
   care = derive2 { name="care"; version="1.1.11"; sha256="0897v6acxf1myncd507by8zp7aga77pschyix1m4fzgpc6z35vlm"; depends=[corpcor]; };
   careless = derive2 { name="careless"; version="1.2.1"; sha256="1zlkzrc9fw926knj6w7flv4q0w29k4aichawvprk94rk1bnrvdz5"; depends=[psych]; };
-  caret = derive2 { name="caret"; version="6.0-90"; sha256="1g36m06hp2fxxwv155bwbqlf97xhcia1lmg3axg6d74kgpns8lg8"; depends=[e1071 foreach ggplot2 lattice ModelMetrics nlme plyr pROC recipes reshape2 withr]; };
+  caret = derive2 { name="caret"; version="6.0-91"; sha256="1kbx51cf71z2x19a0jflwnhx5jd9wk9q9203kzdxlqw5izdjvmdz"; depends=[e1071 foreach ggplot2 lattice ModelMetrics nlme plyr pROC recipes reshape2 withr]; };
   caretEnsemble = derive2 { name="caretEnsemble"; version="2.0.1"; sha256="127gqd23xjis62irqviihzk80zydrdplwh65zcmd7ng29ih5wnby"; depends=[caret data_table digest ggplot2 gridExtra lattice pbapply plyr]; };
   caretForecast = derive2 { name="caretForecast"; version="0.0.2"; sha256="1vnmwamgj5g7i2285krwi2m7p4jzvi7zk6bzqbj2jsblhbhdmf0i"; depends=[caret forecast magrittr]; };
   carfima = derive2 { name="carfima"; version="2.0.2"; sha256="1n68jqn42m54xn7jq8qywrpnvggrcsgvgnlqg6nw0pgiplbkynih"; depends=[DEoptim invgamma mvtnorm pracma truncnorm]; };
@@ -6974,11 +6989,11 @@ in with self; {
   carrier = derive2 { name="carrier"; version="0.1.0"; sha256="0bqnwnnjqjk9q0lxq6kkz9s75ss10lfyyywyyi24m8wppxpw1vqc"; depends=[pryr rlang]; };
   cartograflow = derive2 { name="cartograflow"; version="1.0.3"; sha256="09n3pgm70frrx9li1djrwkf4lzcq9c1xjs037vmsb1as0xvd19a1"; depends=[dplyr ggplot2 igraph maptools plotly reshape2 rgeos rlang sf sp]; };
   cartogram = derive2 { name="cartogram"; version="0.2.2"; sha256="0kz8hwdr5n8llkylwaixnb66f4pzaxxniz57spxhqizmi6qay7yd"; depends=[packcircles sf]; };
-  cartogramR = derive2 { name="cartogramR"; version="1.0-5"; sha256="0rw7501p8hrgml3ih4vaqm5rcyzml2anxz0i4kjch20i2wcbl82c"; depends=[data_table sf]; };
+  cartogramR = derive2 { name="cartogramR"; version="1.0-6"; sha256="089bi4lbjh217vpm1v5nb0lr9k4l4rlk8ilnj3mmx5mss11rcahs"; depends=[data_table sf]; };
   cartography = derive2 { name="cartography"; version="3.0.1"; sha256="1ginq160ag0sv5xfiqc5a5vizsqvl3maw61yskwhfnjb2lcgk2yg"; depends=[classInt curl png raster Rcpp rgeos sf slippymath sp]; };
   cartools = derive2 { name="cartools"; version="0.1.0"; sha256="0gc5502373f0c2m2rh6awvyfqrg1wx1f341dm2byk9znba887lgs"; depends=[animation devtools dplyr gapminder ggplot2 knitr rlist rmarkdown roxygen2 sde shiny tidyverse usethis]; };
   carx = derive2 { name="carx"; version="0.7.1"; sha256="1qyqsj6pfzzqyaj6076zvgcimhl4cll6sxfb6aigm02rwfkq5gvh"; depends=[matrixStats mvtnorm nlme tmvtnorm xts zoo]; };
-  casabourse = derive2 { name="casabourse"; version="1.2.0"; sha256="13i8fzcqlld50522x6nlqfpdg9pf1f32l3r98i7c9y38kpf6yg8p"; depends=[gsheet RJSONIO rvest]; };
+  casabourse = derive2 { name="casabourse"; version="1.3.0"; sha256="18ghw0ir3cm1jl06m3nwrj2wvlyn221lf0ja4h2pm4jn40sn8p3x"; depends=[gsheet httr rvest]; };
   cascadess = derive2 { name="cascadess"; version="0.1.0"; sha256="105m5w8rb8bkzmlc5nwb4g0wl8jgvz63jxq665x4jfq0z78qiwgd"; depends=[crayon htmltools magrittr rlang]; };
   cascsim = derive2 { name="cascsim"; version="0.4"; sha256="0n6frnbby1pjpx1z9lzxflmja2mg0dy99c5f7biakpaqi82x5xjb"; depends=[copula fitdistrplus moments R2HTML scatterplot3d]; };
   caseMatch = derive2 { name="caseMatch"; version="1.0.8"; sha256="0bp2g0zzcspa6riinsa3bp1qwiip6z058hn2y5mw0w9xah8a685a"; depends=[]; };
@@ -6989,7 +7004,7 @@ in with self; {
   castor = derive2 { name="castor"; version="1.7.2"; sha256="013mxk7r0p41l15slpjx5q3axhj3bd3cx1slpw1c11hlja6v3shn"; depends=[Matrix naturalsort Rcpp RSpectra]; };
   cat = derive2 { name="cat"; version="0.0-6.5"; sha256="1gv7chqp6kccipkrxjwhsa7yizizsmk4pj8672rgjmpfcc64pqfm"; depends=[]; };
   cat_dt = derive2 { name="cat.dt"; version="0.3.1"; sha256="0qr3azaxs339kfiiyzasc46xz4rb37prdwvdmv0c40cvba6zvapf"; depends=[ggplot2 Matrix Rglpk]; };
-  cat2cat = derive2 { name="cat2cat"; version="0.3.1"; sha256="1gh1vnyzgrfr8i2mkjnk8aaxal9ygbjvg28l76ilkrklzrpw1nqj"; depends=[assertthat dplyr MASS progress rlang tidyr]; };
+  cat2cat = derive2 { name="cat2cat"; version="0.3.3"; sha256="1vdlyawjia6h262q66gjj04a1fzys7c0g273wvbgmhc528v4fhp9"; depends=[assertthat MASS]; };
   catIrt = derive2 { name="catIrt"; version="0.5-0"; sha256="09010z1q96nbnpys6mybspaqy57lvgd2cvwgnfijzgx3kl87pwnl"; depends=[numDeriv]; };
   catR = derive2 { name="catR"; version="3.16"; sha256="1w39dxfzqk065v64qzmfamx8p1njsv13a461s6clagbqmhysmzbx"; depends=[]; };
   catSplit = derive2 { name="catSplit"; version="0.1.0"; sha256="0nifbwczfs5g9xxlmqfwvcaxd940k5xmbdmamwlhvgif7myi6xr4"; depends=[caret data_table dplyr farff OpenML rpart stringr]; };
@@ -7005,28 +7020,28 @@ in with self; {
   catenary = derive2 { name="catenary"; version="1.1.2"; sha256="1n64kq3lkaf00a2mghs67hnxvi4dp6g12pwifyx0bd418wkw9wf3"; depends=[boot broom dplyr ggplot2 tidyverse]; };
   catfun = derive2 { name="catfun"; version="0.1.4"; sha256="1482rll333fvy4h58f15flfs7qrck3vk9bzpdn3hayhnmc7svmma"; depends=[broom cli DescTools epitools Hmisc magrittr rlang]; };
   cati = derive2 { name="cati"; version="0.99.4"; sha256="02g33kkp97kswiyjsd378zpa3fc9rjk2d9f4l1gdh7pzglabsmgl"; depends=[ade4 ape e1071 FD geometry hypervolume nlme rasterVis vegan]; };
-  catlearn = derive2 { name="catlearn"; version="0.8"; sha256="0vk4amvl6l4cxhfcr9z5glyb752vfsizlzqb14jv04am391xl4qd"; depends=[doParallel dplyr foreach Rcpp RcppArmadillo tidyr]; };
+  catlearn = derive2 { name="catlearn"; version="0.9.1"; sha256="0l7ns9dmgl5k9nmywknna9hi8bmvlijds89pppywd7karksr5i66"; depends=[doParallel dplyr foreach Rcpp RcppArmadillo tidyr]; };
   catmap = derive2 { name="catmap"; version="1.6.4"; sha256="18449qh10jxfi8p49gmbnib5y013nfdgdblbs4n0mfs0nnzb10sx"; depends=[forestplot metafor]; };
   catmaply = derive2 { name="catmaply"; version="0.9.0"; sha256="0x2pzvjjhbwnvj8q1882bvqg895nj2airgmcidkixjmbq267vajz"; depends=[dplyr lubridate magrittr plotly rlang tidyverse]; };
   catnet = derive2 { name="catnet"; version="1.15.7"; sha256="015qh9k0jj5plp777j3kl20601qiwadkaqrdb0483h3gwqwy828g"; depends=[]; };
+  cats = derive2 { name="cats"; version="1.0.2"; sha256="0snc5vrf8qm53yd42gskhnpp6lfgfkldgpjj3jbcry0wpbfc0dv0"; depends=[doParallel dplyr epitools forcats foreach ggplot2 mvtnorm openxlsx plotly purrr tidyr zoo]; };
   catseyes = derive2 { name="catseyes"; version="0.2.5"; sha256="11n2kxkqv4hqymkj6lkpcvhq6325q8f5w384xf8zb71jl8vx616l"; depends=[]; };
   catsim = derive2 { name="catsim"; version="0.2.3"; sha256="1gz38xrzbray5ciiimkzdass8bhmiqxh6bcngjm5i8dvafk5gf9g"; depends=[Rcpp testthat]; };
   catspec = derive2 { name="catspec"; version="0.97"; sha256="1crry0vg2ijahkq9msbkqknljx6vnx2m88bmy34p9vb170g9dbs1"; depends=[]; };
   cattonum = derive2 { name="cattonum"; version="0.0.5"; sha256="11h9nh2i2bmd0b562l5avhwpj9ppnfmzd9nsv94cymhwn5h6nmg6"; depends=[dplyr purrr Rcpp rlang tibble tidyselect]; };
   causact = derive2 { name="causact"; version="0.4.1"; sha256="1acg73qaldhccc0k5wc76m4hwgzwyhfsm7721bwk5wns1q5l72vs"; depends=[coda cowplot DiagrammeR dplyr forcats ggplot2 greta htmlwidgets igraph magrittr purrr rlang rstudioapi stringr tidyr]; };
   causal_decomp = derive2 { name="causal.decomp"; version="0.0.1"; sha256="08ccdzb5ssqhzkr3z3b8vz762mwflh33s6rrmsb9srvkk661lly2"; depends=[CBPS MASS nnet PSweight spelling SuppDists]; };
-  causalCmprsk = derive2 { name="causalCmprsk"; version="1.0.3"; sha256="0s1jshh30jmkk2cx29dfhibmfzbpaqk7i0f8wayb204r73a58f8a"; depends=[data_table doParallel foreach inline purrr survival]; };
+  causalOT = derive2 { name="causalOT"; version="0.1"; sha256="0dwrpinlar3jjhia96jw2b336zlpw2z9fac9phk0k8xiwak7d7l2"; depends=[approxOT BH lbfgsb3c loo Matrix matrixStats osqp pbapply R6 Rcpp RcppEigen reticulate RSpectra sandwich]; };
   causalPAF = derive2 { name="causalPAF"; version="1.2.4"; sha256="1ild77iiibzqbyxk3j20dydwmbrjf66r7qhd2ip2b3x9qbqq5wmh"; depends=[checkmate dagitty dplyr forestplot ggdag ggplot2 gridExtra magrittr MASS reshape2 rlist]; };
   causaldata = derive2 { name="causaldata"; version="0.1.3"; sha256="1v5apihm9005j1kf3p1d28v6jaqx87ryc43kjhwd5mvvm10rmflc"; depends=[tibble]; };
   causaldrf = derive2 { name="causaldrf"; version="0.3"; sha256="16gqx8b8alwm8a4lm69qamnqr3bg2qbz0d6q4lyqyrwsk12grid6"; depends=[mgcv survey]; };
   causaleffect = derive2 { name="causaleffect"; version="1.3.13"; sha256="1b238cv24vf91wwgfzb4wdrxx2dywhhsd1hlr7ps0mj4dv8li2xk"; depends=[igraph]; };
-  causaloptim = derive2 { name="causaloptim"; version="0.9.1"; sha256="05491b1q1z9cwwx284liyf30zag6a10m9xf2ibxhmsp5gisndf1p"; depends=[igraph rcdd Rcpp shiny]; };
+  causaloptim = derive2 { name="causaloptim"; version="0.9.2"; sha256="02d5rrs1h80c49664bicqh7il6x1r4wfid9791si7a35jz8gq0h2"; depends=[igraph rcdd Rcpp shiny]; };
   causalsens = derive2 { name="causalsens"; version="0.1.2"; sha256="1xy8nybflbw6hymc15mmz27ic6hcq89wryb8q6d4zi216lwv2nww"; depends=[]; };
   causalweight = derive2 { name="causalweight"; version="1.0.2"; sha256="1l9wxp2p87qqv4fw4phbqicyppr3wcrxs52rxjxzdf11v9awnvjh"; depends=[e1071 fastDummies glmnet hdm LARF mvtnorm np ranger SuperLearner xgboost]; };
-  caviarpd = derive2 { name="caviarpd"; version="0.2.17"; sha256="0wr99wndfr94dlzjxpf0pvc39zfw015srab8bdjpz3wbhcv23jni"; depends=[cluster salso]; };
+  caviarpd = derive2 { name="caviarpd"; version="0.2.28"; sha256="08j739b0dmq6s8gjhzrjrhf5ni4fyygamjsyylrdq6cj6xkgb2m0"; depends=[]; };
   cba = derive2 { name="cba"; version="0.2-21"; sha256="0j2hbp0xlfp28gqgnkcvmb4yp1kc5m2bp5x7pr4m1pz2b1s7h7m6"; depends=[proxy]; };
   cbanalysis = derive2 { name="cbanalysis"; version="0.2.0"; sha256="0h0h8krlb6rckjpcw0jbbr8pcy3jm0cszimbm56l0ca668kiix06"; depends=[]; };
-  cbar = derive2 { name="cbar"; version="0.1.3"; sha256="1jy52qnpjvszdd8xviv3vr00ds6bah73q0mhd4kixf68jafnxd35"; depends=[Boom bsts dplyr ggplot2 magrittr]; };
   cbinom = derive2 { name="cbinom"; version="1.6"; sha256="1vi2kjlss4fmra1h8r6xgk4y66gzpdp61hcyzby2rqji93sib195"; depends=[Rcpp]; };
   cbird = derive2 { name="cbird"; version="1.0"; sha256="0kzylylk46swd7f0j6kjyrcs3plbx9799q9kb8hjxmgh0qcjk2p6"; depends=[]; };
   cblasr = derive2 { name="cblasr"; version="1.0.0"; sha256="1bz8d4124qpja4bvzn6k1swi89cfyrcpwg2nwyj4r8y0m1hbpc71"; depends=[Rcpp]; };
@@ -7059,14 +7074,14 @@ in with self; {
   cd = derive2 { name="cd"; version="0.1.0"; sha256="1zzhkrsidny5h6jvbip2a4i4klqdgw7s1w8h8hkc3mpbxjfr615r"; depends=[]; };
   cdata = derive2 { name="cdata"; version="1.2.0"; sha256="0n1abljjvbmbgi9i8k7vbma92r21w50rz6jys39gq62hy3qr6vzl"; depends=[rqdatatable rquery wrapr]; };
   cdb = derive2 { name="cdb"; version="0.0.1"; sha256="1rdb4lacjcw67apdyiv7cl1xvv9d1mrzck1qk605n6794k7wf2ys"; depends=[bitops]; };
-  cdcatR = derive2 { name="cdcatR"; version="1.0.3"; sha256="12irmnms9w5pkwixi8wzy2abxzrnqv3nsmj87ppw24j16cziy35i"; depends=[cowplot doSNOW foreach GDINA ggplot2 NPCD]; };
+  cdcatR = derive2 { name="cdcatR"; version="1.0.5"; sha256="1gh39xh4060nni9p0gb5c20xkx5la47l3qi4bw036n1nc61s6nk4"; depends=[cdmTools cowplot doSNOW foreach GDINA ggplot2 NPCD]; };
   cdcfluview = derive2 { name="cdcfluview"; version="0.9.4"; sha256="1b8x66vf34hh8r1fdk16kwcmrzw34z64fvaax7ypiihc9xf1askp"; depends=[dplyr httr jsonlite MMWRweek progress purrr readr sf tibble units xml2]; };
   cdcsis = derive2 { name="cdcsis"; version="2.0.3"; sha256="0hv52valyig3zzywm3058c5nxb2n7y3j2vfibxdbfg8414wwapd9"; depends=[ks mvtnorm Rcpp]; };
   cder = derive2 { name="cder"; version="0.2-2"; sha256="0aw2c170sqx2y4iz16avqijahwxlsaz590mxvsx4bicfd8nrcynk"; depends=[curl dplyr glue lubridate readr rlang stringr tibble]; };
-  cdfquantreg = derive2 { name="cdfquantreg"; version="1.2.5"; sha256="04vckffv6iwsz4s3imkij5nvm64p3faakbhr9cmvlx5rs5g8plw4"; depends=[Formula MASS pracma]; };
+  cdfquantreg = derive2 { name="cdfquantreg"; version="1.3.0"; sha256="0dl20a447bdvwgkhkgh2h8ngsvblxidyrsmz5ggb9dhy0msg1hgr"; depends=[Formula MASS pracma]; };
   cdlTools = derive2 { name="cdlTools"; version="0.15"; sha256="1p5d48v6nwlrgqqi0sg98zfhiycjcha6g12a7515xrvp6f5p28jn"; depends=[httr raster]; };
   cdlei = derive2 { name="cdlei"; version="1.0"; sha256="1zsgryrwr1nqhcyizrh67lm953b87ih9l4rvc6i59s4vg2ph1ph1"; depends=[]; };
-  cdmTools = derive2 { name="cdmTools"; version="1.0.0"; sha256="1f131ix3b9np3g81yn172giglrahg9k67c3l7i5kpscfp4qp844z"; depends=[combinat GDINA ggplot2 GPArotation psych sirt]; };
+  cdmTools = derive2 { name="cdmTools"; version="1.0.1"; sha256="0889vc7glb4jfkwaf5jr3kqkyx6qrpjaplgpfdis2bd7xv46y47i"; depends=[combinat GDINA ggplot2 GPArotation NPCD psych sirt]; };
   cdom = derive2 { name="cdom"; version="0.1.0"; sha256="00xqqqhskjlkz8ii7kqyabxk8995w7g9jiz1isyqjpwg8nsa3x28"; depends=[broom ggplot2 minpack_lm tidyr]; };
   cdparcoord = derive2 { name="cdparcoord"; version="1.0.1"; sha256="0ym2ypw4bsvmx9q4vskrq4pdd92y47vs8pay8san40rgzwqr2agb"; depends=[data_table freqparcoord partools plotly]; };
   cdrcR = derive2 { name="cdrcR"; version="0.0.1"; sha256="1z6z27rnqg07i5j09q0xwy9bvwci1vc2vijp6r733diivyhcraiv"; depends=[dplyr httr jsonlite magrittr purrr rjson rlang rlist sf tidyr tidyselect urltools]; };
@@ -7078,9 +7093,9 @@ in with self; {
   celestial = derive2 { name="celestial"; version="1.4.6"; sha256="1gls0qvr8mxz79lsmk76v253f747g0cqys8p8wjmpijs8r0pyr4z"; depends=[NISTunits pracma RANN]; };
   cellOrigins = derive2 { name="cellOrigins"; version="0.1.3"; sha256="0nxhyz9bz0f598wpr10hm1d0zx83450xf9jkrl279v46x8sx36n4"; depends=[iterpc]; };
   cellVolumeDist = derive2 { name="cellVolumeDist"; version="1.3"; sha256="00hq3nbfbnmg2lhrqd0glkh5ld50fv54ll3q6v875d1lgs44sln1"; depends=[gplots minpack_lm]; };
-  cellWise = derive2 { name="cellWise"; version="2.2.5"; sha256="0w0n5l1icyjrz7hk61zmdphx48w6d1ldn8h9br4g6k85m4zq57h6"; depends=[ggplot2 gridExtra matrixStats Rcpp RcppArmadillo reshape2 robustbase rrcov scales svd]; };
+  cellWise = derive2 { name="cellWise"; version="2.2.6"; sha256="06j2m24q5zyickxi769d1r2ndlcq8hrmp8xb5795ppxnc6hbq418"; depends=[ggplot2 gridExtra matrixStats Rcpp RcppArmadillo reshape2 robustbase rrcov scales svd]; };
   cellranger = derive2 { name="cellranger"; version="1.1.0"; sha256="16fgi3annn34c3cxi0pxf62mmmmxi21hp0zzlv7bkfsjqy4g4f2x"; depends=[rematch tibble]; };
-  celltrackR = derive2 { name="celltrackR"; version="0.3.1"; sha256="1mnqaklc3rkx5mm41n99ky11bjs4l0dppapkwfvkyg3a0h0xzsbb"; depends=[ellipse]; };
+  celltrackR = derive2 { name="celltrackR"; version="1.1.0"; sha256="08hbgpwcpf7v8l7qmszhjh0w4f4zjcizrdsxksihxpwdi9r4al3w"; depends=[ellipse pracma]; };
   cem = derive2 { name="cem"; version="1.1.29"; sha256="1awb3y1r18mkvwl0rr41a8zcvbwg8b00k010096asz3qywzaxiql"; depends=[combinat lattice MatchIt nlme randomForest]; };
   cenGAM = derive2 { name="cenGAM"; version="0.5.3"; sha256="0qic2g2bq24k9jimxdk8g7bsmi4br2r6159ipdhh5ym81ji3sf5p"; depends=[mgcv]; };
   cenROC = derive2 { name="cenROC"; version="1.2.0"; sha256="07ja3yyqmb9cs76if32aksgcwki3y6nh13lvn9j0bdgbgqx65f3r"; depends=[condSURV icenReg Rcpp RcppEigen survival]; };
@@ -7101,7 +7116,7 @@ in with self; {
   cepR = derive2 { name="cepR"; version="0.1.2"; sha256="02dj6vyfgc0lsgclbsmzpms1hnnwb3yjdayim7b7vpciym2c8ww3"; depends=[dplyr httr magrittr purrr tibble]; };
   cepiigeodist = derive2 { name="cepiigeodist"; version="0.1"; sha256="0i1i8hyl4bkcyxrrfqs3m9yny33w0i33409f4kx83wfnablc54sv"; depends=[]; };
   cepp = derive2 { name="cepp"; version="1.7"; sha256="01hvm6586xnb1crvk7brqh3dm2j44ia5lrl5swnf6pb682yskbq0"; depends=[randtoolbox trust]; };
-  cepreader = derive2 { name="cepreader"; version="1.2-0"; sha256="0ip1xxs0frcg08fnfxsxr39ldqgb2hmdrzh1lzdrbmr5ja4igf0x"; depends=[Matrix]; };
+  cepreader = derive2 { name="cepreader"; version="1.2-1"; sha256="1aaphyvwi9lf8dl56ssq7fhzhh02fkgp4igi3cbr54b6zyv8nnks"; depends=[Matrix]; };
   ceramic = derive2 { name="ceramic"; version="0.6.0"; sha256="0n0l1b7gb05kqjrh696faq868q3nbwlg34y6wgr0w205kdq6qs17"; depends=[curl dplyr fs glue jpeg magrittr png purrr rappdirs raster reproj rlang slippymath sp spex tibble]; };
   cernn = derive2 { name="cernn"; version="0.1"; sha256="0gz2x20pgsiq85hwkkpg4s1cdlw9plygx0446djc7qsymp469p2w"; depends=[]; };
   cesR = derive2 { name="cesR"; version="0.1.0"; sha256="1sw5is461mrylmd8f9qzps368wilrgy41k6cmig445261zzqkikr"; depends=[dplyr haven labelled readr tidyr]; };
@@ -7135,7 +7150,7 @@ in with self; {
   chameleon = derive2 { name="chameleon"; version="0.2-0"; sha256="1q631l40gdknbv7dzvzgfdi0mx7rs4hlfkimhvf6li6ajmmh3sa5"; depends=[clue ggplot2 umap]; };
   chandwich = derive2 { name="chandwich"; version="1.1.5"; sha256="1i3gg3ib4j33i5f3a6x9k2g8d5ccbdmv2pb2bdhiwwsjy8bfmsvq"; depends=[numDeriv]; };
   changedetection = derive2 { name="changedetection"; version="0.2.0"; sha256="0j8x7qyna7qgjhx56yxav1g3wj3r47zvx2hivybsjis2gqbl82hr"; depends=[glmnet L1pack Rdpack]; };
-  changepoint = derive2 { name="changepoint"; version="2.2.2"; sha256="1jbki95pck10phpxna0b4i79hhl912zqi5ii9mjqb673y64dszkj"; depends=[zoo]; };
+  changepoint = derive2 { name="changepoint"; version="2.2.3"; sha256="1hpdxz9kqgvn5059sj2pmr7bg208ba950aidy256lad5hdjz2mcj"; depends=[zoo]; };
   changepoint_geo = derive2 { name="changepoint.geo"; version="1.0.1"; sha256="1jlixdrq97n6bh09jq3hamlwkqfqbmqs14kr8swx20f8fvfr3fj2"; depends=[changepoint changepoint_np ggplot2 Rdpack]; };
   changepoint_influence = derive2 { name="changepoint.influence"; version="1.0.1"; sha256="03m7vyqy0qdvkrr0cgxc2g019rjkmsc0fwnzkp2gxbbhvwhs4qzd"; depends=[changepoint data_table ggplot2 gridExtra reshape]; };
   changepoint_mv = derive2 { name="changepoint.mv"; version="1.0.2"; sha256="0bji0m4ks2lf9s1rnq58w97ywpgs3m9rpm5p5f70f0kn33yffrix"; depends=[assertive ggplot2 Rcpp Rdpack reshape2 tbart zoo]; };
@@ -7148,7 +7163,6 @@ in with self; {
   chantrics = derive2 { name="chantrics"; version="1.0.0"; sha256="0123mbdr4bkkp8w9w15bg9qxkbpd6nyp602fw690zsy1dyimm78k"; depends=[AER chandwich lmtest progress purrr rlang sandwich]; };
   charlatan = derive2 { name="charlatan"; version="0.4.0"; sha256="0hrc4kdympi05j6gx0x6vy4jb1mvxxi7pcrnpzcp8vxvd6r3wjmq"; depends=[R6 tibble whisker]; };
   chartql = derive2 { name="chartql"; version="0.1.0"; sha256="108csn7q8qrjhiss54f5bliv3av7psq7kfryspajbdb6wm9ciz3p"; depends=[ggplot2 stringr]; };
-  cheatR = derive2 { name="cheatR"; version="1.2.1"; sha256="0ph7bw2b3frmq6z7qb99pds8j81dbx0bxkbhb55mczqa7n0k50hy"; depends=[ngram purrr R_utils textreadr]; };
   cheatsheet = derive2 { name="cheatsheet"; version="0.1.0"; sha256="1vnkpmf2iahgj1j6f5jvjiamvsgsamy4kdnskc70s4584d5m00p7"; depends=[cli crayon fs git2r magrittr purrr rappdirs rstudioapi stringr]; };
   cheb = derive2 { name="cheb"; version="0.3"; sha256="0vqkdx7i40w493vr7xywjypr398rjzdk5g410m1yi95cy1nk4mc7"; depends=[]; };
   chebpol = derive2 { name="chebpol"; version="2.1-2"; sha256="126cgqnl9jy332q0ywg9dr11d4q1aichwwakb1xcrxrqw2j26zzi"; depends=[geometry]; };
@@ -7159,8 +7173,9 @@ in with self; {
   checkpoint = derive2 { name="checkpoint"; version="1.0.2"; sha256="1987vn13b5j914vkzwbn7q1138b0xsjs55x5b2090kjk6kc900x8"; depends=[jsonlite pkgdepends withr yaml]; };
   checkr = derive2 { name="checkr"; version="0.5.0"; sha256="14hkpfbw5ibdwz2jygir2f2bb2qgrj62gn3449n4dif31nswaj2f"; depends=[err]; };
   cheddar = derive2 { name="cheddar"; version="0.1-636"; sha256="1lf39v0p583jgiyb02vx0rgbwzmmhgkfpwjib2fzh9ffbs8bfk66"; depends=[]; };
+  cheem = derive2 { name="cheem"; version="0.2.0"; sha256="0l8mbhl8jhwsikhy2nakdp21zz9k71fanhznjcqlpy7m7aqagp7i"; depends=[data_table DT ggplot2 magrittr plotly Rcpp shiny shinycssloaders shinythemes spinifex]; };
   cheese = derive2 { name="cheese"; version="0.1.1"; sha256="1r4n9li33am0bsyl57kzg1m9g4w0pzbw6garcdp3qk7lwqxy2y26"; depends=[dplyr forcats kableExtra knitr magrittr purrr rlang stringr tibble tidyr tidyselect]; };
-  chemCal = derive2 { name="chemCal"; version="0.2.2"; sha256="1g0wvw929s3m9ga8n5rn1xfknjpfidyz63q9ypva81057jc5iakk"; depends=[]; };
+  chemCal = derive2 { name="chemCal"; version="0.2.3"; sha256="0f0d0ljym745scnfdx0n0jp86g4r51gylcab3h7ykpaizgpah24r"; depends=[]; };
   chemmodlab = derive2 { name="chemmodlab"; version="1.1.0"; sha256="0b7qwysqzvhhyxdvvr6lb65aqwhrh1a2wk3p5xplnfjxpy9gh7lm"; depends=[caret class e1071 elasticnet fingerprint lars MASS MSQC nnet pls pROC randomForest rcdk rpart tree]; };
   chemometrics = derive2 { name="chemometrics"; version="1.4.2"; sha256="0shqns0n964pfwnd0q5sadglrlpgs4g5fbv45fsj9p37l4pq61dp"; depends=[class e1071 lars MASS mclust nnet pcaPP pls robustbase rpart som]; };
   cherry = derive2 { name="cherry"; version="0.6-14"; sha256="03ipvd2ldzk7xsalkgcx0cyp9cp9b8qqjvz8nl0am412j3z9i5wg"; depends=[bitops hommel lpSolve]; };
@@ -7169,7 +7184,6 @@ in with self; {
   chessR = derive2 { name="chessR"; version="1.5.0"; sha256="0ikpr4xaysnjzclj1x9lq8fm7rak2z5y3wn9494dk6lgwmk3hrr6"; depends=[curl dplyr jsonlite lubridate magrittr purrr rlang rvest stringr tidyr xml2]; };
   chest = derive2 { name="chest"; version="0.3.6"; sha256="12n65l4r85cr16c3p2w1krnqnxkvalrpi8xnbzw4y2m0sp42ydgl"; depends=[broom dplyr forestplot ggplot2 MASS speedglm survival tibble]; };
   chi = derive2 { name="chi"; version="0.1"; sha256="1y91mwahj4j2wz0y5k5vdpq7ygq834h8jkn37n74lqnwvv1968rr"; depends=[]; };
-  chi2x3way = derive2 { name="chi2x3way"; version="1.1"; sha256="13qc8sigiw4gcxk8y50q7yfgzbssjyl41fizzjqzcp3p14kpsmzw"; depends=[]; };
   chicane = derive2 { name="chicane"; version="0.1.8"; sha256="0963r5jzyjihidh18ny9nqkim00bys3psdgrxhbah43bbl0kx43r"; depends=[bedr data_table doParallel foreach gamlss gamlss_tr iterators knitr MASS rmarkdown]; };
   chickn = derive2 { name="chickn"; version="1.2.3"; sha256="1d3xl2pigan6vb29nk2ks04dsl5vy16cv9z7miskmhcqcx2wm1qb"; depends=[bigstatsr doParallel doRNG foreach MASS mvnfast nloptr pracma Rcpp RcppArmadillo RcppParallel Rdpack rmio zipfR]; };
   childdevdata = derive2 { name="childdevdata"; version="1.1.0"; sha256="016x6xhqq1mfqlj9m5qv63k639xnqnrf5h6rdcyaa8sxn7nv34zm"; depends=[]; };
@@ -7182,10 +7196,10 @@ in with self; {
   chipPCR = derive2 { name="chipPCR"; version="1.0-2"; sha256="0q30ncnvbipvqbpxrx2yb68i2ybdfl1fbzj3f12dd2wmjjl72q1x"; depends=[lmtest MASS outliers ptw quantreg Rfit robustbase shiny signal]; };
   chirps = derive2 { name="chirps"; version="0.1.4"; sha256="1yj91rvcsfsr2nmvk7qnxwfkbiblm4bdazs2p83g8ax4fwkrp39c"; depends=[httr jsonlite sf terra]; };
   chisq_posthoc_test = derive2 { name="chisq.posthoc.test"; version="0.1.2"; sha256="0lvj3jqhaj1ijjpzvpq3fn3a1y3fgv69pxh91j6k958pn6vmp40i"; depends=[]; };
-  chisquare = derive2 { name="chisquare"; version="0.1"; sha256="000y0wk2gh6yd4bh2n50v6zjr19ims6g7v7a1jc89iccqcgnff43"; depends=[formattable]; };
+  chisquare = derive2 { name="chisquare"; version="0.3"; sha256="1cfarwvzz20f7sxbjhlxzrkg2p9vf51v4m50j96vwdlz4ng4cr5m"; depends=[gt]; };
   chk = derive2 { name="chk"; version="0.8.0"; sha256="10gcv00mgi88vgxr9jrs0ar67crmdcdi4m9g86cm6pg3ly0v097y"; depends=[lifecycle rlang]; };
   chlorpromazineR = derive2 { name="chlorpromazineR"; version="0.2.0"; sha256="0w7v6xk3vyf9dyf9bh5v9516v78yhcdvy7h1140pg2yw8xmfyr0r"; depends=[]; };
-  chngpt = derive2 { name="chngpt"; version="2021.5-12"; sha256="00g724b0w7dd95s2k9x10yi9xz2qfkxrpa98npbfq2w1pb8mgc57"; depends=[boot kyotil lme4 MASS RhpcBLASctl survival]; };
+  chngpt = derive2 { name="chngpt"; version="2022.4-6"; sha256="1jfmbrzafid6xyf658qwwvfxxdzcwj0dwplgn9qclz1rwm634ky6"; depends=[boot kyotil lme4 MASS RhpcBLASctl survival]; };
   choiceDes = derive2 { name="choiceDes"; version="0.9-3"; sha256="1nsc8p4svfc6z7ckffl24c0acnaxi6cnpz7jq03vzn6spxvpjcmw"; depends=[AlgDesign]; };
   cholera = derive2 { name="cholera"; version="0.7.9"; sha256="1d2z41f9vh79dk2ic2rzj4g6sdccm4vfimwq0wc8j2s7bad1gv1g"; depends=[deldir ggplot2 HistData igraph KernSmooth pracma raster RColorBrewer sp threejs TSP viridisLite]; };
   choplump = derive2 { name="choplump"; version="1.0-0.4"; sha256="0fn6m3n81jb7wjdji4v04m53gakjfsj3ksm546xxz5zm7prk237s"; depends=[]; };
@@ -7197,7 +7211,7 @@ in with self; {
   chorrrds = derive2 { name="chorrrds"; version="0.1.9.5"; sha256="045m3hqfk63zlb44s07wflaawzn030fg0nqck4w852m52a0r1z5v"; depends=[dplyr forcats magrittr purrr rlang rvest stringr xml2]; };
   christmas = derive2 { name="christmas"; version="1.1.1"; sha256="0lxz71vbfqngkn4mg0c74ainww3vbzn8f4s5kmnw5bsd2mmwism7"; depends=[animation]; };
   chromer = derive2 { name="chromer"; version="0.1"; sha256="0fzl2ahvzyylrh4247w9yjmwib42q96iyhdlldchj97sld66c817"; depends=[data_table dplyr httr]; };
-  chromoMap = derive2 { name="chromoMap"; version="0.4.1"; sha256="0iiiwxzbq2d3vrzijgw1ahrw1zkk55bvp2g31jjfzzff3xs05h23"; depends=[htmltools htmlwidgets]; };
+  chromoMap = derive2 { name="chromoMap"; version="4.1.1"; sha256="1067h5d6jdbm811n7ayikhqfbcqmxbz5jgp05vf1sbln7qgn9l43"; depends=[htmltools htmlwidgets]; };
   chromseq = derive2 { name="chromseq"; version="0.1.3"; sha256="0m9dnm50iw176ffn6syd3538hxmjhkrxfzaf13210q100wk0lgz2"; depends=[]; };
   chron = derive2 { name="chron"; version="2.3-56"; sha256="0p9zz96jfyf139924hdwkzhr8knkjvx6547ac53rknm3a6wwngl6"; depends=[]; };
   chronicle = derive2 { name="chronicle"; version="0.3"; sha256="0yfrxr93fbxgpxjs1gb56pdx1kk4nn9xvy2csgl1rhzrgbl343m3"; depends=[data_table dplyr DT dygraphs ggplot2 glue knitr magrittr plotly prettydoc purrr readr rlang rmarkdown rmdformats scales skimr viridis zoo]; };
@@ -7260,7 +7274,7 @@ in with self; {
   clean = derive2 { name="clean"; version="2.0.0"; sha256="0zvk3a5yz54g2mn7y1d91z6ljglbyq1hkh4iip1dfyi15chrqv7y"; depends=[cleaner]; };
   cleanNLP = derive2 { name="cleanNLP"; version="3.0.3"; sha256="0bc0ya36yhknqhqc76yf9clgiacyb6zypzirzg6i0213bqw2ihdp"; depends=[Matrix reticulate stringi udpipe]; };
   cleanTS = derive2 { name="cleanTS"; version="0.1.0"; sha256="0axrc6ax2d37mlx2cix9jbk9j2ksa86g074w70lymvl40f0zaz41"; depends=[anomalize data_table gganimate ggplot2 ggtext glue imputeTestbench imputeTS lubridate shiny stringr tibble tibbletime transformr]; };
-  cleancall = derive2 { name="cleancall"; version="0.1.1"; sha256="1gq7bjywgslybfk97k3fxglp6j78a0cklaammccvffs3b94i4zh4"; depends=[]; };
+  cleancall = derive2 { name="cleancall"; version="0.1.2"; sha256="1p2n7zqkg93xvhp6w2l37ifazrfpxv975bnzsd3m0j62l1ywzxax"; depends=[]; };
   cleandata = derive2 { name="cleandata"; version="0.3.0"; sha256="1lm7k25j16p888xvd7rzzd3sb3namzjlpjn22xmmpzlzyl0h7dhk"; depends=[]; };
   cleaner = derive2 { name="cleaner"; version="1.5.3"; sha256="0glrymsfqh3lq9n0xr202i30jm6lqwgcj0r8czy0a3066qh7hjbm"; depends=[backports crayon knitr pillar rlang vctrs]; };
   cleanerR = derive2 { name="cleanerR"; version="0.1.1"; sha256="0rghn8rx7dj5clmc1dqvqwfm9kiva04k9gxsjjga3109l4jcpg63"; depends=[data_table plyr]; };
@@ -7305,7 +7319,7 @@ in with self; {
   clogitL1 = derive2 { name="clogitL1"; version="1.5"; sha256="0y6a6s5l98i0vrj66biwr17g6pzpmm5kfz4c57af0yhv7c4s4was"; depends=[Rcpp]; };
   clogitLasso = derive2 { name="clogitLasso"; version="1.1"; sha256="1j2kscd6d1jham6yqx5rp78x5vfj2faylkxkbcjaqbynlnqbbxd0"; depends=[foreach lassoshooting]; };
   clogitboost = derive2 { name="clogitboost"; version="1.1"; sha256="19wcb7229amlxn6xahxj6pf9rwfm02s7qkxz2yvyhnq95y0clxkm"; depends=[Rcpp]; };
-  clordr = derive2 { name="clordr"; version="1.6.0"; sha256="1w9km87wndr4fssfn7c9g2sy5lnk1ik0sqqwqyas7qc2h48la4di"; depends=[doParallel foreach MASS pbivnorm rootSolve tmvmixnorm ttutils]; };
+  clordr = derive2 { name="clordr"; version="1.7.0"; sha256="0lrws22aijsfdr595g2dfxsvnvbq6bs18glbdc07qkb27kcpvv1p"; depends=[doParallel foreach MASS pbivnorm rootSolve tmvmixnorm]; };
   cloudUtil = derive2 { name="cloudUtil"; version="0.1.12"; sha256="18g946j00anlk20d0fh01w0xyj1kwyy7jhlgz5a85wmp6s2gkz74"; depends=[]; };
   cloudml = derive2 { name="cloudml"; version="0.6.1"; sha256="1j15q9yb2rc4fbjxfh21fiq6is8dnb8nfyi7g8iazgfwb3p9ahpx"; depends=[config jsonlite packrat processx rprojroot rstudioapi tfruns withr yaml]; };
   cloudos = derive2 { name="cloudos"; version="0.3.0"; sha256="1rb82p77ipwvc57h46ph9gy0p6a4sq6mcz1cmq29jhs5by87kr21"; depends=[dplyr ggplot2 httr jsonlite rappdirs tibble tidyr]; };
@@ -7324,7 +7338,7 @@ in with self; {
   clustMD = derive2 { name="clustMD"; version="1.2.1"; sha256="0w4s9dab2mm5x0xibyl6s101c64if945a2cmwin9psd95p76mcny"; depends=[ggplot2 MASS mclust msm mvtnorm reshape2 truncnorm viridis]; };
   clustMixType = derive2 { name="clustMixType"; version="0.2-15"; sha256="1m43xhqc7jcdj1h5nlp0daz99s1nfss7rwwjn7qqf1hvscblyp3s"; depends=[RColorBrewer tibble]; };
   clustcurv = derive2 { name="clustcurv"; version="2.0.1"; sha256="1xkl84pd1a3phl5yfm21yr5c0gbmmg1wk9b0lyl2x8466v5hl53q"; depends=[doParallel doRNG foreach ggfortify ggplot2 Gmedian npregfast RColorBrewer survival]; };
-  cluster = derive2 { name="cluster"; version="2.1.2"; sha256="168l653ygkg21fwrqrf7lsqi5p6jzhgmcvhrwv7lznkdzdhag2jw"; depends=[]; };
+  cluster = derive2 { name="cluster"; version="2.1.3"; sha256="1ab466lniykz2a6kdnrbkk7hwair79xfmy6cqvhc8d6nana7mbd3"; depends=[]; };
   cluster_datasets = derive2 { name="cluster.datasets"; version="1.0-1"; sha256="0i68s9305q08fhynpq24qnlw03gg4hbk4184z3q3ycbi8njpr4il"; depends=[]; };
   clusterCons = derive2 { name="clusterCons"; version="1.2"; sha256="1k1y6cqpb5fyi2mbx2i4jbiwz0fni44lnq0xnv3pl0x3dpscwh6q"; depends=[apcluster cluster lattice RColorBrewer]; };
   clusterCrit = derive2 { name="clusterCrit"; version="1.2.8"; sha256="10pz1bikdbkm2ky3xnagp0qv60whalavp6j39b4p7d75jj5xcxgk"; depends=[]; };
@@ -7351,7 +7365,7 @@ in with self; {
   clv = derive2 { name="clv"; version="0.3-2.2"; sha256="072jn3xh6ii7vfp0gx03k1hiafnla1lkyn5hpj17nmqc0jvzp683"; depends=[class cluster]; };
   cmR = derive2 { name="cmR"; version="1.0.3"; sha256="0ml7ip9zxljpgzksbxd15q890q062nf0q81d272dhiizxvr4a0cn"; depends=[fields Matrix]; };
   cmaRs = derive2 { name="cmaRs"; version="0.1.1"; sha256="0y9p1r58q45adsb60fvdvqn6m0a6ad32vl15fsy9l83r7aimcwci"; depends=[AUC earth Matrix Rmosek Ryacas0 stringr]; };
-  cmaes = derive2 { name="cmaes"; version="1.0-11"; sha256="1hwf49d1m660jdngqak9pqasysmpc4jcgr8m04szwbyzyy6xrm5k"; depends=[]; };
+  cmaes = derive2 { name="cmaes"; version="1.0-12"; sha256="0wk8zkf585ipnxajmibip85cyz7wc5br0cph3cvnacbh7yf2zvay"; depends=[]; };
   cmaesr = derive2 { name="cmaesr"; version="1.0.3"; sha256="03zx2nrw24wmmjjpyh8pswasjjq0amf0g375fm2b3s111dx8fbj9"; depends=[BBmisc checkmate ggplot2 ParamHelpers smoof]; };
   cmcR = derive2 { name="cmcR"; version="0.1.9"; sha256="06pw7lbp85xfnglcc86h1b4ipy1igvf43ihpqm9m67d4jc9r6acs"; depends=[assertthat dplyr ggnewscale ggplot2 imager magrittr purrr quantreg rlang scales stringr tibble tidyr x3ptools zoo]; };
   cmce = derive2 { name="cmce"; version="0.1.0"; sha256="0d52ci906zbd4q43qylcyw93acxh7f20jn3r0k74ynyy47131dnd"; depends=[]; };
@@ -7369,9 +7383,9 @@ in with self; {
   cmpsR = derive2 { name="cmpsR"; version="0.1.0"; sha256="0gxngq2awpignkdwi5cn6gxwk0q2fi3zy55jg5mlkihz2sq9iyyg"; depends=[assertthat dplyr ggplot2 rlang]; };
   cmrutils = derive2 { name="cmrutils"; version="1.3.1"; sha256="0nrq84bkd23lvvg8ls2smkjcnfnydhbcni3n6s8w0579i9xga8dv"; depends=[chron]; };
   cms = derive2 { name="cms"; version="0.1.0"; sha256="0m3cxvw40nyr1jpdkhg5nbms16hkzj0mrx5nl39x1l42cx2hcjrl"; depends=[assertthat dplyr magrittr readr rlang rvest xml2]; };
-  cmsaf = derive2 { name="cmsaf"; version="3.4.0"; sha256="1j5ajahk5vx15ii1zsldm7aikqhlhm3gl7gx6ykx3lxjbanp5hv8"; depends=[cmsafops cmsafvis colorspace colourpicker data_table fields FNN mapproj maps maptools ncdf4 R_utils raster rworldxtra SearchTrees shiny shinyFiles shinyjs shinythemes sp xml2]; };
-  cmsafops = derive2 { name="cmsafops"; version="1.2.3"; sha256="194y5i54vbqlmjmf5dfcq0lxffavnnv9vp9b8cafs2zlh6xyxl4j"; depends=[assertthat fields FNN ncdf4 progress rainfarmr raster SearchTrees sp trend]; };
-  cmsafvis = derive2 { name="cmsafvis"; version="1.1.10"; sha256="0jfb6jvv6jncl5625sskqn6v3aqs4283swg9py71i0jv55bzd0ws"; depends=[animation assertthat cmsafops colorspace countrycode fields gridExtra mapproj maps maptools ncdf4 png progress raster rasterVis RColorBrewer rgdal rworldxtra SearchTrees sp yaml]; };
+  cmsaf = derive2 { name="cmsaf"; version="3.4.2"; sha256="1ynxjqc0h4m738hds7a2p402i482pmqj2ghj31jr0916plyi3din"; depends=[cmsafops cmsafvis colorspace colourpicker data_table fields FNN mapproj maps maptools ncdf4 R_utils raster rworldxtra SearchTrees shiny shinyFiles shinyjs shinythemes shinyWidgets sp xml2]; };
+  cmsafops = derive2 { name="cmsafops"; version="1.2.4"; sha256="16405lqk5q54ngz7fs9fvf8jg0pnx56rk80cnl0mcacrgm8lvnni"; depends=[assertthat fields FNN ncdf4 progress rainfarmr raster SearchTrees sp trend]; };
+  cmsafvis = derive2 { name="cmsafvis"; version="1.1.11"; sha256="152w5acj49xc188b56myzckl6mylb2wwqi99lhhaz6599xhl8rjx"; depends=[animation assertthat cmsafops colorspace countrycode fields gridExtra mapproj maps maptools ncdf4 png progress raster rasterVis RColorBrewer rgdal rworldxtra SearchTrees sp yaml]; };
   cmstatr = derive2 { name="cmstatr"; version="0.9.1"; sha256="18kcrnbi3r8n8d7s8cl55r2n41cv4q4h6g8lf4pdkv06axg3l7ad"; depends=[dplyr generics ggplot2 kSamples MASS purrr rlang tibble]; };
   cmtest = derive2 { name="cmtest"; version="0.1-2"; sha256="1qff6vx0c9sw4xm7fwhck165snrahlmi91na64f7axad14qmp34d"; depends=[Rdpack]; };
   cmvnorm = derive2 { name="cmvnorm"; version="1.0-7"; sha256="0zi4adh3gd8nbcnsn9fqiiqi5pc2jx782vw394gi988vyngqr7cq"; depends=[elliptic emulator]; };
@@ -7395,7 +7409,8 @@ in with self; {
   cocorresp = derive2 { name="cocorresp"; version="0.4-3"; sha256="0lqab8f0l24hdvgnfrvvzpi969f35g5i95mq3vj7kxx0xhhz1z08"; depends=[vegan]; };
   cocron = derive2 { name="cocron"; version="1.0-1"; sha256="0dl14y9v9kndy5gzhhbhq3f31ja724y1hra40givy6bij7h2cj30"; depends=[]; };
   coda = derive2 { name="coda"; version="0.19-4"; sha256="13z5dwfpnyyhpsbpg4xr9g5c1685jhqj90f4x4qkcykr6kykqba2"; depends=[lattice]; };
-  coda_base = derive2 { name="coda.base"; version="0.3.1"; sha256="0rz0hlhww9ja1y40yi4fah468apwp1xcnbbl1qmfggil863l5fqa"; depends=[Rcpp RcppArmadillo]; };
+  coda_base = derive2 { name="coda.base"; version="0.4.1"; sha256="0vxxdc7r55w8n3xcrl7vmm3pylg4k69bxx86y9jrg6343cm8j3q9"; depends=[Rcpp RcppArmadillo]; };
+  coda4microbiome = derive2 { name="coda4microbiome"; version="0.1.1"; sha256="0ckd20wajqj2mxz7l8w12pvc54xys0a9fg0h2qw7kjbhgx5hmi6j"; depends=[corrplot ggplot2 ggpubr glmnet plyr pROC qpdf]; };
   codacore = derive2 { name="codacore"; version="0.0.3"; sha256="1zfzhpax625qpj8s9i91pxljkmszgkxj7n0brz9pd9n84r66vr90"; depends=[gtools keras pROC R6 tensorflow]; };
   codadiags = derive2 { name="codadiags"; version="1.0"; sha256="1x243pn6qnkjyxs31h1hxy8x852r0fc952ww77g40qnrk8qw79xg"; depends=[coda]; };
   codalm = derive2 { name="codalm"; version="0.1.2"; sha256="09q7i96wga55xl8wwkb4i2sisn97wd21zqpmasykpi1aamzysqki"; depends=[future future_apply SQUAREM]; };
@@ -7403,7 +7418,7 @@ in with self; {
   codebook = derive2 { name="codebook"; version="0.9.2"; sha256="0hxyzwpjbvfzad8h2428q94m961mmwvv28nagw2d36qxd10awh16"; depends=[dplyr forcats ggplot2 glue haven htmltools jsonlite knitr labeling labelled likert purrr rlang rmdpartials skimr stringr tibble tidyr tidyselect vctrs]; };
   codebreaker = derive2 { name="codebreaker"; version="0.0.2"; sha256="12gjaziwzzisx4j70z8k17k6i5wdsdyk542yfx04rin4ks829f34"; depends=[beepr cli]; };
   codemeta = derive2 { name="codemeta"; version="0.1.1"; sha256="0pcip5ycgkva5pg20fcc3vsb09dv4j57yqvbf5x8bdsxa5vpg11a"; depends=[desc jsonlite]; };
-  codemetar = derive2 { name="codemetar"; version="0.3.3"; sha256="0aayywmv7c7mrn7g9jymp8h571ai8cmf8zfg7sxmp3rybv3ha17b"; depends=[cli codemeta commonmark crul desc gert gh jsonlite magrittr memoise pingr purrr remotes sessioninfo urltools xml2]; };
+  codemetar = derive2 { name="codemetar"; version="0.3.4"; sha256="0v21g94ncb5yxq6cbiy5ppjij05199b137wrbxpqr6znrjl3sv6q"; depends=[cli codemeta commonmark crul desc gert gh jsonlite magrittr memoise pingr purrr remotes sessioninfo urltools xml2]; };
   codename = derive2 { name="codename"; version="0.4.0"; sha256="196xd326ps6yqb1kr1mckfxpb076p0z4kz15cpa12w2psdwy8ba4"; depends=[]; };
   codep = derive2 { name="codep"; version="0.9-1"; sha256="17jziwm56icswa4ngp51ah8w1ma7ij3cksbdaipk0ikqvb5kinkb"; depends=[]; };
   coder = derive2 { name="coder"; version="0.13.5"; sha256="155rv52rxalnf8yns1p5zh590r6j1q8h38m3fk8xvqx0gyk8fbrz"; depends=[data_table decoder generics tibble]; };
@@ -7475,6 +7490,7 @@ in with self; {
   comFuncs = derive2 { name="comFuncs"; version="0.0.5"; sha256="1n17s28rf6jbii8cffzxylp5dr47x4my7chvf2j1zh4vrkml0n1n"; depends=[rstudioapi shiny]; };
   comat = derive2 { name="comat"; version="0.9.3"; sha256="0igcqvz1sjprxw6qf3wy9awywx9g5xcdkr9sl3vb61jyxxppnagh"; depends=[Rcpp RcppArmadillo]; };
   comato = derive2 { name="comato"; version="1.1"; sha256="0lidwr5vw10655p7q0iqzq3phq5y1i86w3bjdv87cwx3m6333bz6"; depends=[cluster clusterSim gdata igraph lattice Matrix XML]; };
+  combinIT = derive2 { name="combinIT"; version="1.0.0"; sha256="1fya74vck336lszf3hkfgkzawjfbiivlib01xzsylcs9lc374bgm"; depends=[mvtnorm Rcpp RcppArmadillo]; };
   combinat = derive2 { name="combinat"; version="0.0-8"; sha256="1h9hr88gigihc4na7lb5i7rn4az1xa7sb34zvnznaj6pdrmwy4qm"; depends=[]; };
   combinationpvalues = derive2 { name="combinationpvalues"; version="0.1.4"; sha256="0n5dhgss8mrxshfixpc10g1p7l06hcn3fbk7l9sp92ap64kalz6c"; depends=[chi dplyr spatstat_utils]; };
   combinedevents = derive2 { name="combinedevents"; version="0.1.1"; sha256="0fwsxn2ziapax1wy9k57n76z3nxqb22vfbp5r3y6xg3aparxdxpz"; depends=[lubridate magrittr rlang stringr]; };
@@ -7488,13 +7504,13 @@ in with self; {
   commonmark = derive2 { name="commonmark"; version="1.8.0"; sha256="0s765c650id19ygx57bsjsw93fwxywmp50zid671bkxi6wlyf1vx"; depends=[]; };
   commonsMath = derive2 { name="commonsMath"; version="1.2.5"; sha256="1c4lgmggpc22mhwcpy521b2pg8wf4bbjp0a6rbcn0aki90xw9ckk"; depends=[]; };
   communication = derive2 { name="communication"; version="0.1"; sha256="08fkllwwcw2llpg5ivxhqghc88qfg1vdy0ciif3xazhhymb8wavb"; depends=[abind diagram GGally ggplot2 gtable gtools igraph magrittr plyr purrr RColorBrewer Rcpp RcppArmadillo reshape2 scales signal tuneR useful wrassp]; };
-  comorbidity = derive2 { name="comorbidity"; version="1.0.0"; sha256="0cv3gay7mxba8kr19580dv7vyqlacdybxf5a2y96ll43g64w1gyp"; depends=[checkmate data_table stringi]; };
+  comorbidity = derive2 { name="comorbidity"; version="1.0.2"; sha256="1wsiwlh90m8nsb9vrv1pbxpjk5qq51plw34z4dj47mdpbw6lb2ma"; depends=[checkmate data_table stringi]; };
   compHclust = derive2 { name="compHclust"; version="1.0-3"; sha256="0agay7rn5mrw07imz4l547b7m9pfcg3rhz4krfxrvg1q2z2kryvj"; depends=[]; };
   compactr = derive2 { name="compactr"; version="0.1"; sha256="0f2yds6inmx0lixj08ibqyd2i61l2cbg1ckgpb8dl2q7kcyyd6mx"; depends=[]; };
-  comparator = derive2 { name="comparator"; version="0.1.1"; sha256="02j36dm9vg53v224djy6v7jicd1d5sdx148r8qh096zb942wpvp6"; depends=[clue proxy Rcpp]; };
+  comparator = derive2 { name="comparator"; version="0.1.2"; sha256="1mygip50mc3jni1zc6jhjg2mx61sjgdq5w7snqdvv1rycp3fdpb1"; depends=[clue proxy Rcpp]; };
   compare = derive2 { name="compare"; version="0.2-6"; sha256="0k9zms930b5dz9gy8414li21wy0zg9x9vp7301v5cvyfi0g7xzgw"; depends=[]; };
   compareC = derive2 { name="compareC"; version="1.3.1"; sha256="0dachfr23lps2jj1y5gc958k54vskmww84gdgk4amihsdgjsnphg"; depends=[]; };
-  compareDF = derive2 { name="compareDF"; version="2.3.2"; sha256="0s4pwj96cbyrsviaz1yv7pp04xg46b7m6nl2f45gj1zzzg2x571h"; depends=[data_table dplyr htmlTable magrittr openxlsx stringr tibble tidyr]; };
+  compareDF = derive2 { name="compareDF"; version="2.3.3"; sha256="1pzrfjwfpdmcfcxh3rnddwdq3vnfq639cvwhvql1vly84p02f1gi"; depends=[data_table dplyr htmlTable openxlsx rlang stringr tibble tidyr]; };
   compareGroups = derive2 { name="compareGroups"; version="4.5.1"; sha256="0ll770lj2j6nnjdpkij1wadd2nqppkdjcfglfx13kk5r5ldmfyq1"; depends=[chron flextable HardyWeinberg kableExtra knitr officer rmarkdown survival writexl]; };
   compareODM = derive2 { name="compareODM"; version="1.2"; sha256="019hq8j56asjvh4x1p65785mf38xr05j3by0749gl9k9yl8645da"; depends=[XML]; };
   comparer = derive2 { name="comparer"; version="0.2.2"; sha256="1rhx9an7qi9r3cv2zpnb9qw0byg06zabg99v51mal218080r6rvm"; depends=[R6]; };
@@ -7505,7 +7521,7 @@ in with self; {
   competitiontoolbox = derive2 { name="competitiontoolbox"; version="0.7.0"; sha256="0cb298fnivw3hqn99jgxlg7qfjkwy6zs0vgkc3x7vz3alk17p5p1"; depends=[antitrust ggplot2 rhandsontable shiny trade]; };
   completejourney = derive2 { name="completejourney"; version="1.1.0"; sha256="0ysbpmd7rglz3diy2cpcgvmmcnysradb4ddiwix7kbhzrhvhrdrs"; depends=[curl dplyr progress stringr tibble zeallot]; };
   complexNet = derive2 { name="complexNet"; version="0.1.0"; sha256="0jswxr16j7irjbfc5p5vgdaksh3gs8gyx3cwbs0acrpyykxpi5k7"; depends=[]; };
-  complexity = derive2 { name="complexity"; version="1.1.1"; sha256="1lpsvry88jpqfw0wkdlwjzkqjl17f4adjcqvq0dwk483mi54xnfk"; depends=[combinat shiny]; };
+  complexity = derive2 { name="complexity"; version="1.1.2"; sha256="0y1rlz456mny4d0kr8rx26qg5frr3zxsbzm1cc76h475vad4ns28"; depends=[combinat shiny]; };
   complexplus = derive2 { name="complexplus"; version="2.1"; sha256="16w9v7d1ckavqmr86l34frr37pkvdn0iqnb17ssb8xaggns5lgqx"; depends=[expm Matrix]; };
   complmrob = derive2 { name="complmrob"; version="0.7.0"; sha256="0dvkc5y53041agkjz3rl898hkq686pxzr6flf2qx1g3jbza3pk1y"; depends=[boot ggplot2 robustbase scales]; };
   compositions = derive2 { name="compositions"; version="2.0-4"; sha256="1bqg0qqzsf92q0jb7hdjycr54bwv8rk7ajhvxgch5yslyqxpm73v"; depends=[bayesm MASS robustbase tensorA]; };
@@ -7518,7 +7534,7 @@ in with self; {
   con2aqi = derive2 { name="con2aqi"; version="0.1.0"; sha256="1gdd1y6xg26fz199hvryzsnp16qbsz13chqqxyxnkgrai1l72mhf"; depends=[]; };
   con2lki = derive2 { name="con2lki"; version="0.1.0"; sha256="005bk3y7il94h7zlkdjlibm1zm9yplbbzlybdjxmckh67sr6d03x"; depends=[]; };
   conStruct = derive2 { name="conStruct"; version="1.0.4"; sha256="1klhzsxrkbz16dnm3r2qxyq2z02zqrps9kij2jy6241ni9qmnn2f"; depends=[BH caroline doParallel foreach gtools Rcpp RcppEigen rstan rstantools StanHeaders]; };
-  conText = derive2 { name="conText"; version="1.0.0"; sha256="0xf2vy3g7myx3b85vcs7h9plqyy8yhxa1cnldi1jn3x4cmpq5f04"; depends=[dplyr fastDummies ggplot2 Matrix quanteda reshape2 stringr text2vec]; };
+  conText = derive2 { name="conText"; version="1.1.0"; sha256="04zqahx01rqpa6wm4krnr7vfafcxgqblrd911qw7pfwvmjl2w92s"; depends=[dplyr fastDummies ggplot2 Matrix quanteda reshape2 stringr text2vec tidyr]; };
   concatenate = derive2 { name="concatenate"; version="1.0.0"; sha256="1kvsw7vwa3hn97ff7r6z21h5ajs74azwv2dk4pzgyaasnbp778hw"; depends=[]; };
   concatipede = derive2 { name="concatipede"; version="1.0.1"; sha256="1cmc0pcy9di1bxzj4kgbnvv1avd7xd6jzk43kni7fc5fkcq2jj3x"; depends=[ape dplyr igraph magrittr qualV readxl stringdist stringr tibble writexl]; };
   concaveman = derive2 { name="concaveman"; version="1.1.0"; sha256="0b3fx3y60ibb73pqx5591jq1n86242qajfxbz3vzz6rxxspddlcz"; depends=[dplyr jsonlite magrittr sf V8]; };
@@ -7552,8 +7568,9 @@ in with self; {
   conflicted = derive2 { name="conflicted"; version="1.1.0"; sha256="1qg9ar114r98wm0pnf65mss4v2ksq3924rlpm13mqp4s3p6j9yi4"; depends=[memoise rlang]; };
   conflr = derive2 { name="conflr"; version="0.1.1"; sha256="1bjdmvi0n8746g7dxwgzh3fi33sq4bgfr0nd3nqd2caj8ryi2gv9"; depends=[askpass commonmark curl glue httr knitr miniUI purrr R6 rlang rmarkdown rstudioapi shiny stringi xml2]; };
   conformalClassification = derive2 { name="conformalClassification"; version="1.0.0"; sha256="03v6xbgipb97byarqj0d38z9yb2g54mkkw343jxmi2j058z26yw7"; depends=[doParallel foreach mlbench randomForest]; };
-  conformalInference_fd = derive2 { name="conformalInference.fd"; version="1.1.0"; sha256="00qdkp70ncwxqgj847yyak3lgfirjh3m81fapjww588hq34wds1v"; depends=[fda future future_apply ggplot2 gridExtra]; };
-  conformalInference_multi = derive2 { name="conformalInference.multi"; version="1.1.0"; sha256="1bixhwm8jrsrixzk80dp8m0kq85pmqjadj2hwwcqc2amyspcfbs7"; depends=[future future_apply ggplot2 glmnet gridExtra hrbrthemes]; };
+  conformalInference_fd = derive2 { name="conformalInference.fd"; version="1.1.1"; sha256="08r669apkiyjydz9yy9pdiy9rl2wyg50bypvsm9w5i1aryzgmadr"; depends=[fda future future_apply ggnewscale ggplot2 ggpubr scales]; };
+  conformalInference_multi = derive2 { name="conformalInference.multi"; version="1.1.1"; sha256="1xc879ygv9avamy29a6rdfb6pknaz82f3k6392c8a90sgfn3bx3d"; depends=[future future_apply ggplot2 glmnet gridExtra hrbrthemes]; };
+  conformalbayes = derive2 { name="conformalbayes"; version="0.1.0"; sha256="0k54agyg05jh4pjpmamy5dp67a9f1js304f2589h9jvq26yyd9qa"; depends=[cli loo matrixStats rstantools]; };
   confoundr = derive2 { name="confoundr"; version="1.2"; sha256="000vf828qv04pplx8yc8q3mafxf4g0axip6z5zbsj2581yxv9jjh"; depends=[dplyr ggplot2 gridExtra magrittr purrr rlang Rmpfr scales stringr tidyr]; };
   confreq = derive2 { name="confreq"; version="1.5.6-4"; sha256="0mi6panjdvgpxwpylg6s3bhx9679jpqrxsicb14lq1w6c20rg7qj"; depends=[gmp vcd]; };
   conicfit = derive2 { name="conicfit"; version="1.0.4"; sha256="1d704xgiyqmbwfxnsmhqg885x10q8yqxmrk4khqpg3lh696bw97d"; depends=[geigen pracma]; };
@@ -7566,10 +7583,10 @@ in with self; {
   conogive = derive2 { name="conogive"; version="1.0.0"; sha256="0a8v7v0fds0psfnbx9x45way8z1f1xn2ncgbrn5rb6fjq0a1zs4x"; depends=[assertthat checkmate mvtnorm psych]; };
   conos = derive2 { name="conos"; version="1.4.5"; sha256="1c2yn3nsvwwglgxghnrybmkcvdc16gxxbcfqfnp70q4h6nz7f65g"; depends=[abind ComplexHeatmap cowplot dendextend dplyr ggplot2 ggrepel gridExtra igraph irlba leidenAlg magrittr Matrix Matrix_utils N2R R6 Rcpp RcppArmadillo RcppEigen RcppProgress reshape2 rlang Rtsne sccore]; };
   conover_test = derive2 { name="conover.test"; version="1.1.5"; sha256="0f1p10klidk1xic1wd48j9rjh2fb3z6pfjx4y021lglx1w3av68k"; depends=[]; };
-  conquer = derive2 { name="conquer"; version="1.2.2"; sha256="1z07p4xcrxvnicwgga7hqvqzcxavwirw828285i0xlnz54rqhsc8"; depends=[Matrix matrixStats Rcpp RcppArmadillo]; };
-  conquestr = derive2 { name="conquestr"; version="0.8.5"; sha256="1xh09a379g1msib5fvf72llvf2gwqb7ciacw7j7iqrkb2ddpaglk"; depends=[ggplot2 ggrepel Rcpp reshape rlang stringr]; };
+  conquer = derive2 { name="conquer"; version="1.3.0"; sha256="1ynmaf7lgqjb8grsifx5dzy29cd5kz4x3yh0abnl2vxdr4c4wddc"; depends=[Matrix matrixStats Rcpp RcppArmadillo]; };
+  conquestr = derive2 { name="conquestr"; version="0.9.96"; sha256="1p0qbc3l557gwc3ch5d4fjj0p9s91j73dg6jl1syszm026zp6pc9"; depends=[dplyr ggplot2 ggrepel kableExtra magrittr Rcpp rlang stringr tidyr tidyselect]; };
   conserveR = derive2 { name="conserveR"; version="1.0.4"; sha256="05b1pqgbd9sh4lyg9zqjfg4019dqp8xj3k1w31qqdld8m3g5lrd6"; depends=[cowplot GGally ggplot2 ggrepel magrittr network rlang scales sna]; };
-  consolechoice = derive2 { name="consolechoice"; version="1.0.0"; sha256="0f1ac4k3w2qkxhzxqsm9v9wanq27g0fr77g63zy84b38c9zkmgch"; depends=[]; };
+  consolechoice = derive2 { name="consolechoice"; version="1.1.1"; sha256="06xlwrjc9bj8r2ii160mclg56mw9fw2wzms3q68rcb8ril0hqvd3"; depends=[]; };
   consort = derive2 { name="consort"; version="1.0.1"; sha256="16i7hd433f3lfs6saa20m2jk9926r9jaln74333dmx5ld0294q99"; depends=[]; };
   consortr = derive2 { name="consortr"; version="0.9.1"; sha256="1c71wvr7sckrv4k65l71l160z6d9amzyydbi6mf2b79zh9zv8g1g"; depends=[data_table DiagrammeR dplyr magrittr purrr rlang shiny shinydashboard tibble]; };
   constants = derive2 { name="constants"; version="1.0.1"; sha256="11nliijwphqphik95b3xpawpjg7w4s089wdhjci5bw4va4bgd1xm"; depends=[]; };
@@ -7587,7 +7604,7 @@ in with self; {
   contourPlot = derive2 { name="contourPlot"; version="0.2.0"; sha256="0bjwq3p57d6hadln8vwjkh7c9sbb466h3zcq9kpx7kd31z6x8gnz"; depends=[interp RColorBrewer]; };
   contoureR = derive2 { name="contoureR"; version="1.0.5"; sha256="1izq1alkf24zd2sf2ir2adyrkwhdj7n89cv6z0dfh5mfqld5bkdn"; depends=[geometry plyr Rcpp reshape]; };
   contrast = derive2 { name="contrast"; version="0.24.1"; sha256="1119c7p8ly3zb5pxzgridqvmbq5v0jx557qqaa0rbmdr7rih74aq"; depends=[nlme rms sandwich]; };
-  contribution = derive2 { name="contribution"; version="0.2.1"; sha256="1m9bjpmf1ljygjlx3jg8hvnrq6sxx1cscg30dc3phpnj3w55jxln"; depends=[dplyr ggplot2 gh magrittr rlang tidyr]; };
+  contribution = derive2 { name="contribution"; version="0.2.2"; sha256="11v179zikr3lr3zdm53zgz43vydcpg29q58qavxmhg5nl60c6581"; depends=[dplyr ggplot2 gh magrittr rlang tidyr]; };
   control = derive2 { name="control"; version="0.2.5"; sha256="02s8h5kwpzfrivx3ign84gwlybkcs03ibawyxdny9zz5yhb7x3bs"; depends=[expm Matrix pracma signal]; };
   controlTest = derive2 { name="controlTest"; version="1.1.0"; sha256="19r8nvi35ldzgayifskjj706fv76hv6sj68yvggybp27rgyqbjfl"; depends=[survival]; };
   convdistr = derive2 { name="convdistr"; version="1.5.3"; sha256="1cp2qpyl0jxp0lwznlc94mcigfgysyq9xmi1z7ihd7jxd9mk8aw9"; depends=[dplyr extraDistr ggplot2 MASS pryr RColorBrewer SHELF shiny tidyr]; };
@@ -7679,19 +7696,18 @@ in with self; {
   countgmifs = derive2 { name="countgmifs"; version="0.0.2"; sha256="0k6fjg0v9n7vi89wd025gdjh1q3l6nnc5yn8i2bfw0i5vmv8rhi3"; depends=[MASS]; };
   countrycode = derive2 { name="countrycode"; version="1.3.1"; sha256="1hfw0084f82v4xy2lc88iwxlk0c8vaiybvrx6asadh0922y577aj"; depends=[]; };
   countyfloods = derive2 { name="countyfloods"; version="0.1.0"; sha256="0ld8p8dfk9khvwffbn8sad0j3an25s7cvbi6jxljgx4zc6ldh699"; depends=[dataRetrieval dplyr ggplot2 lubridate maps plyr R_utils tidyr]; };
-  countytimezones = derive2 { name="countytimezones"; version="1.0.0"; sha256="0sk22fmz9d3wvlfvjl1xdavvl04q1ywy8ww2gi5am3yiizkf0v9w"; depends=[dplyr lubridate]; };
   covBM = derive2 { name="covBM"; version="0.1.0"; sha256="0ky1lhr8m4hy2ss1nr2xymf6cmj1rr8px8zsxna6bsisf5bq4j4w"; depends=[nlme]; };
   covLCA = derive2 { name="covLCA"; version="1.0"; sha256="15jsjrlaws1cqyrwvh4lzbhxkb11jmgpmddg98nfrzmjpczn2iw3"; depends=[Matrix mlogit poLCA]; };
   covRobust = derive2 { name="covRobust"; version="1.1-3"; sha256="0zcfala4l0j4w0sx5hlw40vxiypans3d7pgkxy25nj0d2m1jkvba"; depends=[]; };
   covTestR = derive2 { name="covTestR"; version="0.1.4"; sha256="0j9kay8lwkhpdyg0fbfars1m58v0i58v1v5sm7m72s7kz8qh2yfs"; depends=[purrr Rcpp RcppArmadillo rlang]; };
   covafillr = derive2 { name="covafillr"; version="0.4.4"; sha256="1vsay0qlqcw3l6xp18rxrkhwsadsv9rpxwpj9f4d3vlr8inkiv4h"; depends=[Rcpp RcppEigen]; };
   covatest = derive2 { name="covatest"; version="1.2.0"; sha256="13kmkgn2xjci694g27ii9q6xqxqgxw4hykzynxqxn0v7i6y96xwz"; depends=[gstat lubridate sp spacetime zoo]; };
-  coveffectsplot = derive2 { name="coveffectsplot"; version="1.0.0"; sha256="0hh7vwz0a0440n8rqn536mg5jw6zrg1gmjzr8i92zipq7llf16jd"; depends=[colourpicker data_table dplyr egg ggplot2 markdown shiny shinyjs shinymeta table1 tidyr]; };
+  coveffectsplot = derive2 { name="coveffectsplot"; version="1.0.1"; sha256="1y1daxfrisxgmca3gvfzd586pq90dyqhz4ay8zlsi1m9cax2kkj5"; depends=[colourpicker data_table dplyr egg ggplot2 markdown shiny shinyjs shinymeta table1 tidyr]; };
   covequal = derive2 { name="covequal"; version="0.1.0"; sha256="1qj6djqf1rnjmnaz1nryj9dc104082w258dzjjp5q18gg1ck8v0c"; depends=[corpcor RMTstat]; };
   covfefe = derive2 { name="covfefe"; version="0.1.0"; sha256="178qc77y4bn04qad3g70wr8y4v0ggyg807w67m8wvhbcxqr8yq7c"; depends=[tokenizers]; };
   covglasso = derive2 { name="covglasso"; version="1.0.3"; sha256="1201z49w7lacf479gp7q2v5lv8vmprppj656zzi5a4yynm7x2sll"; depends=[Rcpp RcppArmadillo]; };
-  covid19_analytics = derive2 { name="covid19.analytics"; version="2.1.1"; sha256="13bzxidnwqdnn7j4737csqjnibyq0vs5iy6yd825m3c9xbj3910s"; depends=[ape collapsibleTree deSolve dplyr DT gplots htmlwidgets pheatmap plotly readxl rentrez shiny shinycssloaders shinydashboard]; };
-  covid19br = derive2 { name="covid19br"; version="0.1.3"; sha256="1lvmqxccqiy9i5wbxf15zdnqnxlhg6v0b01c3zykjhysq1a1gc5k"; depends=[data_table dplyr rlang sf tidyr]; };
+  covid19_analytics = derive2 { name="covid19.analytics"; version="2.1.2"; sha256="0a9gk4s51wjriab2900knwv87j7f926mfgbbn3yvbsyhmgfz3dnm"; depends=[ape collapsibleTree deSolve dplyr DT gplots htmlwidgets pheatmap plotly readxl rentrez shiny shinycssloaders shinydashboard]; };
+  covid19br = derive2 { name="covid19br"; version="0.1.4"; sha256="01hyci2mr1716r9wddd7zjzlm2jb03w9qcisrzmpn4g4mglziy83"; depends=[curl data_table dplyr httr rlang sf tidyr]; };
   covid19dbcand = derive2 { name="covid19dbcand"; version="0.1.1"; sha256="0864xixdxzaj697al0c2gq3nk05q1pn0pc9lc2dyki71g5r67i7h"; depends=[]; };
   covid19france = derive2 { name="covid19france"; version="0.1.0"; sha256="11072mc794l0m84k2b08zhyfvxf6n6ym91i7kkm3cbirxp6bhnqy"; depends=[dplyr glue lubridate magrittr readr stringr tidyr]; };
   covid19india = derive2 { name="covid19india"; version="0.1.4"; sha256="18xjgal49rhwif07irb1ad0qvi6c2p1ya52knx0wspb56fv849z1"; depends=[cli data_table EpiEstim glue gt httr janitor magrittr scales stringr]; };
@@ -7699,7 +7715,7 @@ in with self; {
   covid19sf = derive2 { name="covid19sf"; version="0.1.2"; sha256="0x89j94sg539qc7qd2n2vi8bi1lagqkdc2ss5ld7vj4l78r5zk4l"; depends=[devtools dplyr lubridate magrittr mapview plotly sf]; };
   covid19srilanka = derive2 { name="covid19srilanka"; version="1.0.0"; sha256="05hymg0af5cp1pkp222q539941gqrqidjb6xxyhmhc2996yjlxs2"; depends=[tidyverse]; };
   covid19swiss = derive2 { name="covid19swiss"; version="0.1.0"; sha256="083j4568j7yk7l4qj6097zp0ijq70ycvwvmbfqp3dwazmibamy34"; depends=[devtools]; };
-  covid19us = derive2 { name="covid19us"; version="0.1.7"; sha256="1gy3cbfq89mg0465n4vwqnknnv988i9l2fv6dara8hr1jysic2n3"; depends=[curl dplyr glue httr lubridate magrittr purrr snakecase stringr tibble tidyr]; };
+  covid19us = derive2 { name="covid19us"; version="0.1.8"; sha256="1mq57ak8d14lin3fi3asq5ghkf8ypxi1n0kk8m586az4k25i5r8x"; depends=[curl dplyr glue httr lubridate magrittr purrr snakecase stringr tibble tidyr]; };
   covidcast = derive2 { name="covidcast"; version="0.4.2"; sha256="1lgpkwhyx8pff2p82w5has1jqmj10kniqd1rkhfxr4b1xp21y8z8"; depends=[dplyr ggplot2 httr MMWRweek purrr rlang sf tidyr]; };
   covidprobability = derive2 { name="covidprobability"; version="0.1.0"; sha256="00kiwxhkbq70650azgd6ylh7w7w4h5l8l7rmr2bijlm05xn3g154"; depends=[]; };
   covidregionaldata = derive2 { name="covidregionaldata"; version="0.9.3"; sha256="1pq3il8wzygih419avf3nn5swd0z09mf2n0q361w3n7aa2m20yjf"; depends=[countrycode dplyr httr jsonlite lifecycle lubridate memoise purrr R6 readxl rlang stringr tidyr tidyselect vroom xml2]; };
@@ -7718,7 +7734,7 @@ in with self; {
   coxphSGD = derive2 { name="coxphSGD"; version="0.2.1"; sha256="17ga33v7a89dsygk5yypkz03x7dvjhibnwlvwfvgb2p7djd8w465"; depends=[survival]; };
   coxphf = derive2 { name="coxphf"; version="1.13.1"; sha256="06c83v3lrpzm81aclnl1pyqq2kfflbbmcg911blpr7dgynzk0zk5"; depends=[survival]; };
   coxphw = derive2 { name="coxphw"; version="4.0.2"; sha256="08bfl21608i5jkk993qjpnh36xbfsm2xx22rpff0v6ipalj9vmj2"; depends=[survival]; };
-  coxrobust = derive2 { name="coxrobust"; version="1.0"; sha256="08hp0fz5gfxgs3ipglj6qfr6v63kzxkrzg650bmzabq8dvrxd97q"; depends=[survival]; };
+  coxrobust = derive2 { name="coxrobust"; version="1.0.1"; sha256="1g8z82y12b2lkw4ifxiidmwy3nrvgp2y2cwcahhdg616shwc27sb"; depends=[Rcpp RcppArmadillo survival]; };
   coxrt = derive2 { name="coxrt"; version="1.0.3"; sha256="1xggczjx5psl4m4m83vh4y6swnh3pf9rngnzx3268iznfz1g43h2"; depends=[BB ggplot2 gss inline Rcpp RcppArmadillo survival]; };
   coxsei = derive2 { name="coxsei"; version="0.3"; sha256="1k3xsjwv1ji8n2qry2j93svr8a114mxkdl5y2zwz7mp82dmv0ld6"; depends=[]; };
   cp4p = derive2 { name="cp4p"; version="0.3.6"; sha256="1zddkkj0ynvfck3kw1682wffbxw0d3dc4flmxxp03lclq70fc8bd"; depends=[limma MESS multtest qvalue]; };
@@ -7729,7 +7745,9 @@ in with self; {
   cpi = derive2 { name="cpi"; version="0.1.4"; sha256="1gz92jcl8wg2vp8qhnkn37l2xs8wjdbjvnga22v9n943k9zsk2kh"; depends=[foreach knockoff lgr mlr3]; };
   cpk = derive2 { name="cpk"; version="1.3-1"; sha256="1njmk2w6zbp6j373v5nd1b6b8ni4slgzpf9qxn5wnqlws8801n73"; depends=[]; };
   cplm = derive2 { name="cplm"; version="0.7-9"; sha256="057m61rq2hzb55imj3922zmc9kjxh053k3kgy54a4l0jlxb90lyj"; depends=[biglm coda ggplot2 Matrix minqa nlme reshape2 statmod tweedie]; };
+  cplots = derive2 { name="cplots"; version="0.5-0"; sha256="12nac8hywhsfh2fcv30w36la46hvvp5mwc2rrq34smraig0dq8f3"; depends=[circular]; };
   cpm = derive2 { name="cpm"; version="2.3"; sha256="07zbvc5jkwv76lkzby6r073fxjsqgnrdl2w9lcph577knnip89jx"; depends=[]; };
+  cpop = derive2 { name="cpop"; version="1.0.0"; sha256="08f3a1pcgcdkn7lxvvrlkajjy38i8v5q071gp7vwvvd71146sjih"; depends=[crops ggplot2 mathjaxr pacman Rcpp Rdpack]; };
   cpp11 = derive2 { name="cpp11"; version="0.4.2"; sha256="16cvjfkbc7c0ymdmbcqg9px6pjsqx6qhyfq5frqj739mhazy0g20"; depends=[]; };
   cppRouting = derive2 { name="cppRouting"; version="2.0"; sha256="0yfiyg1clnl85lk5ah8dcchv71drk6r093vpl82xnczyan5z94sr"; depends=[data_table Rcpp RcppParallel RcppProgress]; };
   cpr = derive2 { name="cpr"; version="0.2.3"; sha256="1a2lza1bw74xzrs17a9gr9mnpvnnrykhwd73yqi63wp3k4sm42rb"; depends=[dplyr ggplot2 lazyeval lme4 magrittr plot3D Rcpp RcppArmadillo rgl tibble tidyr]; };
@@ -7754,7 +7772,7 @@ in with self; {
   cranly = derive2 { name="cranly"; version="0.5.4"; sha256="02g3r8y3yj6pajjzzf7akgpjgg6vnv3mp9pqpqcfrrckvmvysm35"; depends=[colorspace countrycode ggplot2 igraph magrittr stringr tm visNetwork wordcloud]; };
   crassmat = derive2 { name="crassmat"; version="0.0.6"; sha256="1c4ii34vh8y5b3z2maby4cafb3n2m9bnxv3762cy0z12mbg7zk1s"; depends=[svMisc]; };
   crawl = derive2 { name="crawl"; version="2.2.1"; sha256="18mr7vp72jj5msj9mbq45jy3f6qhn45azsmkq07i2d30gwdj0c3a"; depends=[dplyr gdistance lubridate magrittr mvtnorm purrr raster Rcpp RcppArmadillo rmapshaper sf shiny sp tibble]; };
-  crayon = derive2 { name="crayon"; version="1.5.0"; sha256="0m3rckps0c8v14h9vqnr81acv0az1jqwlsradcbkb2ndvnpjq4j4"; depends=[]; };
+  crayon = derive2 { name="crayon"; version="1.5.1"; sha256="1yaxwkmvjaillngfafgapakqjl6s86ly3j338f78xs58g0xwf9f0"; depends=[]; };
   crch = derive2 { name="crch"; version="1.0-4"; sha256="18qjvh1lkw1f6rrhnb21f30xxrcq8whbs3x1jgkw6q14rf1483ri"; depends=[Formula ordinal sandwich scoringRules]; };
   crctStepdown = derive2 { name="crctStepdown"; version="0.2.1"; sha256="1v6r0w9wrwa7hwyyhzdybv1mshdw3wxa098mbn48101dhhy75945"; depends=[fastglm ggplot2 ggpubr lme4 Rcpp RcppArmadillo rlang stringr]; };
   credentials = derive2 { name="credentials"; version="1.3.2"; sha256="1f18j3zrq8c9kah57xwahmmljsjg5qphlgamvx507ynvpq8pryig"; depends=[askpass curl jsonlite openssl sys]; };
@@ -7773,7 +7791,7 @@ in with self; {
   crisp = derive2 { name="crisp"; version="1.0.0"; sha256="1gs8jnd9y9pd55w6kwv9mvmg3wd8hjiw3lwx7k242pxccsxklfxq"; depends=[MASS Matrix]; };
   crispRdesignR = derive2 { name="crispRdesignR"; version="1.1.6"; sha256="1h9153iv55qkx9hyf3gs118m99mkzj5mbj6i3jg58chfp0m6jx78"; depends=[BiocGenerics Biostrings DT gbm GenomeInfoDb GenomicRanges IRanges rtracklayer S4Vectors shiny stringr vtreat]; };
   criticality = derive2 { name="criticality"; version="0.9.1"; sha256="1bi2h56bbrbjybawrxjm724i2rcpla0rmlcf5vp3g5qfmcc4cz15"; depends=[bnlearn caret dplyr evd fitdistrplus ggplot2 keras magrittr reticulate scales]; };
-  criticalpath = derive2 { name="criticalpath"; version="0.2.0"; sha256="1bnsmns1zrzfymy1wrbpbs7x1arcc55bqwapvvvjyz3mwxkbi56x"; depends=[dplyr igraph magrittr R6 stringr tibble]; };
+  criticalpath = derive2 { name="criticalpath"; version="0.2.1"; sha256="1b8iwvdlq5czd7p7yy6il3irrcarc23cy26vprycnyjll38lcfjz"; depends=[dplyr igraph magrittr R6 stringr tibble]; };
   critpath = derive2 { name="critpath"; version="0.1.4"; sha256="1jr5ra8gwzcfnap87z4snb5mmfqq2iaas2x54kqqcsb2gsk3gchs"; depends=[DiagrammeR ggplot2 reshape2]; };
   crmPack = derive2 { name="crmPack"; version="1.0.0"; sha256="11zy1ci9d0zjbmc0gws9j9qrnfcqvky1ws9p41wjn0zifcckc5gi"; depends=[GenSA ggplot2 gridExtra MASS mvtnorm rjags]; };
   crmReg = derive2 { name="crmReg"; version="1.0.2"; sha256="0y6xb0sxhsqcmcwbkwvk70snwqhxgzl513ld9dp53cm88qdwaj1r"; depends=[FNN ggplot2 gplots pcaPP plyr robustbase rrcov]; };
@@ -7791,14 +7809,14 @@ in with self; {
   cropgrowdays = derive2 { name="cropgrowdays"; version="0.1.1"; sha256="0jgdfhywnlsz2mxb4skkrxf9fb55qyidd6y6nhb9324jm8d3xl0a"; depends=[dplyr httr lubridate magrittr purrr purrrlyr tibble]; };
   crops = derive2 { name="crops"; version="1.0.1"; sha256="153m0mv0hkc8f5kgaa8374z51g0jaq0s0zjbr19x309w1dd3g83g"; depends=[cowplot ggplot2 magrittr memoise pacman Rdpack reshape sets tibble tidyverse]; };
   crossReg = derive2 { name="crossReg"; version="1.0"; sha256="1866jhfnksv9rk89vw7w4gaxi76bxfjvqxx7cfa8nlrcsmaqd7rf"; depends=[]; };
-  crossdes = derive2 { name="crossdes"; version="1.1-1"; sha256="1d7lv3ibq1rwxx8kc3ia6l9dbz2dxdd5pnf2vhhjmwm448iamcfd"; depends=[AlgDesign gtools]; };
+  crossdes = derive2 { name="crossdes"; version="1.1-2"; sha256="0nc9jd83mm03qpd3r3hfmrf615yvvmib9kk9dh1hgz12pxhffray"; depends=[AlgDesign gtools]; };
   crossmap = derive2 { name="crossmap"; version="0.3.0"; sha256="0dw1sg1by5805l72s5sbldznyp9qph9qrm4sizvqdx74bhb59s1y"; depends=[backports broom dplyr purrr rlang]; };
   crossmatch = derive2 { name="crossmatch"; version="1.3-1"; sha256="082lrv2129mfhwlh99z3g8id3a29s8854skl152bl3ig8pk2gbjz"; depends=[nbpMatching survival]; };
   crossrun = derive2 { name="crossrun"; version="0.1.0"; sha256="0br57nraqhs5f1cpidc8kd31izm82wvhiw9pxcdj9v51l9vifbmx"; depends=[Rmpfr]; };
   crosstable = derive2 { name="crosstable"; version="0.4.1"; sha256="1c3hzmm8s72qsppzh8z3ivf88hlx571jz1pymrzppdikxm9z013h"; depends=[checkmate dplyr flextable forcats glue lifecycle officer purrr rlang stringr tibble tidyr tidyselect]; };
   crosstalk = derive2 { name="crosstalk"; version="1.2.0"; sha256="180y7mhpj17axpadwhh7s0qvrpdnag7g977vk256l96d6nmvlds2"; depends=[htmltools jsonlite lazyeval R6]; };
   crossval = derive2 { name="crossval"; version="1.0.4"; sha256="0vshlyc6w4kfs03n56ylapiqgdyday7068wmfsphj4lhw322s4yp"; depends=[]; };
-  crossvalidationCP = derive2 { name="crossvalidationCP"; version="1.0-1"; sha256="0hxy9c83j8afgf4zg560x21yc4iyb1ykfv6mi1ak5qf5czhnnckf"; depends=[changepoint FDRSeg stepR wbs]; };
+  crossvalidationCP = derive2 { name="crossvalidationCP"; version="1.0-2"; sha256="0gwlpfqk3jsamkdx0sjvn4wmmcrdicgparks298hvi4gjlibp7mc"; depends=[changepoint FDRSeg stepR wbs]; };
   crosswalkr = derive2 { name="crosswalkr"; version="0.2.6"; sha256="1rxd6vy7vdrawmg7zkydl1f2wwklnzgh9dsnxbg966xrr3l9x1n9"; depends=[haven labelled readr readxl tibble]; };
   crossword_r = derive2 { name="crossword.r"; version="0.3.6"; sha256="1s31613s4qxxspka9bhgq3rq8xraf48mwfv6phvz6v06gijh64lr"; depends=[dplyr jsonlite magrittr R6 r6extended stringr]; };
   crov = derive2 { name="crov"; version="0.2.0"; sha256="1i3a5nagzinsla6p3wjyj3x12gyfqs6vapaqxgr3dh6m727jw5i5"; depends=[gtools VGAM]; };
@@ -7808,7 +7826,7 @@ in with self; {
   crrcbcv = derive2 { name="crrcbcv"; version="1.0"; sha256="1rbmhnr7n99i0277d47i62ww6896z1g20v6vr558zmx3gvrs0b6k"; depends=[abind crrSC pracma survival]; };
   crrp = derive2 { name="crrp"; version="1.0"; sha256="1fq54jr6avrli91a4z1hp5img4kghyw1yvjr5xyccsanf9i35x8r"; depends=[cmprsk Matrix survival]; };
   crrstep = derive2 { name="crrstep"; version="2015-2.1"; sha256="03vd97prws9gxc7iv3jfzffvlrzhjh0g6kyvclrf87gdnwifyn1z"; depends=[cmprsk]; };
-  crs = derive2 { name="crs"; version="0.15-33"; sha256="0zzi3l35r4slq5iplgds4pkw4nf5594i5cwp4jrz5rbncw2vp19a"; depends=[boot np quantreg]; };
+  crs = derive2 { name="crs"; version="0.15-34"; sha256="0k4sd1821h4j7hrn3jk66m6n34rj5hp212gj0ff3psxgfmxybxrp"; depends=[boot np quantreg]; };
   crseEventStudy = derive2 { name="crseEventStudy"; version="1.2.2"; sha256="0zqqd1d1k200kah03qvpfiyshs18s5h4j8y9mwr0fbhkfj7xags7"; depends=[sandwich]; };
   crsmeta = derive2 { name="crsmeta"; version="0.3.0"; sha256="19v0bq80cma74jjl0k42pmlpd5jfv6b0hr7j2iq0d47h50pvrd02"; depends=[]; };
   crsnls = derive2 { name="crsnls"; version="0.2"; sha256="0rv0xrdl9ix6bhaf554gma8zf923w47f8j1dkbs8g6xjqjr1c40a"; depends=[]; };
@@ -7817,7 +7835,7 @@ in with self; {
   crsuggest = derive2 { name="crsuggest"; version="0.3.1"; sha256="13h6hfj3bvdb5wzq1f2m5s9crjmg0ijhfh87y1dmyimv76kr31k6"; depends=[dplyr mapview purrr sf units]; };
   crtests = derive2 { name="crtests"; version="0.2.1"; sha256="0z8idz37dgwvi1q2vryldii7fn9yxd32gds77ml76jfplxbkikpd"; depends=[caret plyr stringr]; };
   crul = derive2 { name="crul"; version="1.2.0"; sha256="133g0skz4lifl8hm8pqdryd2m2drbrm6mdfzbbsrw8fg46di86my"; depends=[curl httpcode jsonlite mime R6 urltools]; };
-  crunch = derive2 { name="crunch"; version="1.29.0"; sha256="0isvz222pivdrbl08284xci38mbz6ldhj8bv0lag3h49zi1k02sv"; depends=[abind crayon curl httpcache httr jsonlite]; };
+  crunch = derive2 { name="crunch"; version="1.29.1"; sha256="04zl3zzdv5ab9aa811pb4p6rdgjiia6jhrjm5knw53shzgn2d84y"; depends=[abind crayon curl httpcache httr jsonlite]; };
   crunchy = derive2 { name="crunchy"; version="0.3.3"; sha256="15w72kmizsxkj1wx3nqny6329m2041mxyzi4nxh8l3hfmaisb4qm"; depends=[crunch httpcache miniUI rstudioapi shiny]; };
   cruts = derive2 { name="cruts"; version="1.1"; sha256="1ih6h9qk4yflzars00d61smjqj7s4bfvc2ikp6vlki9f6k012xcx"; depends=[lubridate ncdf4 raster sp stringr]; };
   cry = derive2 { name="cry"; version="0.4.1"; sha256="14wicmlg8vzrqv4wf5xzf37l29ch3cbglbanmgbqdi8p49jpw1cf"; depends=[zoo]; };
@@ -7849,7 +7867,7 @@ in with self; {
   ctf = derive2 { name="ctf"; version="0.1.0"; sha256="1vwqfh1y2if79rkpy6b0ay50fyis7h5rlpvhgikahnmcr2q5l14m"; depends=[iotools jsonlite]; };
   ctgdist = derive2 { name="ctgdist"; version="0.1.0"; sha256="1m3ryppfvd984n5xfphjqhi9i1sigl17v897mqaichj21dzaq62f"; depends=[mirt]; };
   ctgt = derive2 { name="ctgt"; version="2.0"; sha256="0g2ibk9pxay0idj55q0yh4vbdb6l6460r997fnapimn7fgyz6f66"; depends=[BH Rcpp]; };
-  cthist = derive2 { name="cthist"; version="0.1.3"; sha256="03ns8ckacnz3k5dmyzkhg61wrp7syg1igmp96y4nwkl0z9lz3294"; depends=[dplyr httr jsonlite magrittr readr rlang rvest selectr stringr tibble]; };
+  cthist = derive2 { name="cthist"; version="0.1.4"; sha256="1jxzxysyby8jx87hhan3cbihb5vb7269l5dn0i7wycxndp4kxinw"; depends=[dplyr httr jsonlite magrittr readr rlang rvest selectr stringr tibble]; };
   cthreshER = derive2 { name="cthreshER"; version="1.1.0"; sha256="18b66d08dq8pvnixmm4ir4r800b37z5yillaa88l317mdilbci9s"; depends=[Matrix]; };
   ctl = derive2 { name="ctl"; version="1.0.0-7"; sha256="1a01rha6sgv8zmcfjb1c438s9d9bjzdjf2pmyml1m5jmz93q70ds"; depends=[MASS qtl]; };
   ctmcd = derive2 { name="ctmcd"; version="1.4.1"; sha256="01nflgdyb70kh4f8bnxpavr31fz4fh02kgz2nlx3zzblnm2idbcx"; depends=[coda expm numDeriv Rcpp RcppArmadillo]; };
@@ -7858,14 +7876,14 @@ in with self; {
   ctmm = derive2 { name="ctmm"; version="0.6.1"; sha256="1c0pxjm91xcjdhq7mdjgmay9vs8cmk24495sf9g67hfjplf5gzzm"; depends=[Bessel data_table digest expm fasttime Gmedian gsl manipulate MASS numDeriv pbivnorm pracma raster rgdal shape sp statmod]; };
   ctpm = derive2 { name="ctpm"; version="1.0.1"; sha256="1bycdh3mbimmfvv3yb50c8rwcmkbjj0jwnfiynsp2h56y3dmzc1r"; depends=[ape ClusterR ctmm slouch]; };
   ctqr = derive2 { name="ctqr"; version="2.0"; sha256="0srrlgqxpp4a46wqr83zpb3xr49pf70b0n8bv9qp8ffak20d2hpj"; depends=[pch survival]; };
-  ctrdata = derive2 { name="ctrdata"; version="1.8.0"; sha256="15jaxwqhx8fwzsnjgqqxkc6ngd1pqcgn1ffyl1hpwr92p9j7vkf9"; depends=[clipr curl httr jsonlite nodbi rvest stringi xml2]; };
+  ctrdata = derive2 { name="ctrdata"; version="1.9.0"; sha256="0p56zmn9sn38y8pasvmxy4vxfryq1v3qp58j7dibrz8hl325xz3x"; depends=[clipr curl dplyr httr jsonlite lubridate nodbi rvest stringi xml2]; };
   ctrialsgov = derive2 { name="ctrialsgov"; version="0.2.5"; sha256="0hdh1fdfaja8amf7fkvk1c6yif703132bvacq0j9pk5jr97czgpw"; depends=[DBI dplyr ggplot2 htmlwidgets lubridate Matrix plotly purrr rlang stringi tibble]; };
   ctrlGene = derive2 { name="ctrlGene"; version="1.0.1"; sha256="0x7j11v7jj4k1jml6lrnjq79awhrvsm3pig1yxsd337jlfml3ra9"; depends=[psych]; };
-  ctsem = derive2 { name="ctsem"; version="3.5.5"; sha256="1pgyq5s22gxsx2g42li1rcgf68llc8qv7f2y1abz57rm9maq07yz"; depends=[BH cOde data_table Deriv expm ggplot2 MASS Matrix mize mvtnorm pkgbuild plyr Rcpp RcppEigen RcppParallel rstan StanHeaders tibble]; };
+  ctsem = derive2 { name="ctsem"; version="3.6.0"; sha256="08pxrlzqkl0vs3k67m88633g9hiwfyhsxicfyz290b7dj25gmyhq"; depends=[BH cOde data_table Deriv expm ggplot2 MASS Matrix mize mvtnorm pkgbuild plyr Rcpp RcppEigen RcppParallel rstan StanHeaders tibble]; };
   ctsemOMX = derive2 { name="ctsemOMX"; version="1.0.4"; sha256="1sjsm573alsg3dvj58rwknqapcydx77zbs0b8hcf59qbbhfa3djv"; depends=[ctsem Matrix OpenMx plyr]; };
-  ctv = derive2 { name="ctv"; version="0.9-2"; sha256="1fzmsfmcvyhfrqi802s87fxc0x76p7n7azrnybl03kw14vv4k62p"; depends=[]; };
+  ctv = derive2 { name="ctv"; version="0.9-3"; sha256="0rwsiipnxjlj3pq97zh2hnbv1jigys32yl3zdp34x9z2xj3v4kg9"; depends=[]; };
   cuRe = derive2 { name="cuRe"; version="1.0.1"; sha256="0vw2iv9inz8md7lz6f1p456wxjc07kap1mvqf58hixqxbrb23dgi"; depends=[date numDeriv relsurv rstpm2 statmod survival]; };
-  cubature = derive2 { name="cubature"; version="2.0.4.2"; sha256="0kk9lw3s66h0sayza3in8rdj7bmgqn4v5lfckhslarpvj2fxsnv0"; depends=[Rcpp]; };
+  cubature = derive2 { name="cubature"; version="2.0.4.4"; sha256="0sfmcy5xpa40w3qn0jbg7b802wksl5k8glz9jpx77n159wn3nyq8"; depends=[Rcpp]; };
   cubelyr = derive2 { name="cubelyr"; version="1.0.1"; sha256="1g3pvam1fkqh63snibqcfaazvj7lrkfip8w9pjvwdclj0l8382kl"; depends=[dplyr glue pillar purrr rlang tibble tidyselect]; };
   cubeview = derive2 { name="cubeview"; version="0.2.0"; sha256="1352hi2j9x9rx4iy3xvsca86nsh39x1vnymd17f5qc8c3plfm8db"; depends=[base64enc htmltools htmlwidgets lattice raster stars viridisLite]; };
   cubfits = derive2 { name="cubfits"; version="0.1-4"; sha256="1dg60162s77p82v8vig52yl8ar8h0pijps8kqq35v1hvp5a3ny5q"; depends=[coda foreach]; };
@@ -7915,7 +7933,7 @@ in with self; {
   cwbtools = derive2 { name="cwbtools"; version="0.3.4"; sha256="1wj42n6phniwh6ms5xfmfazd8a0lkaf46wzv916i9xzsaf6hzqr7"; depends=[cli curl data_table fs httr jsonlite lifecycle pbapply R6 RcppCWB rstudioapi stringi xml2 zen4R]; };
   cwhmisc = derive2 { name="cwhmisc"; version="6.6"; sha256="1pf365g4f51cfrhlff9mqw2ddvkps0abax17zcn3vw1ba2djalnp"; depends=[lattice]; };
   cwm = derive2 { name="cwm"; version="0.0.3"; sha256="1ln2l12whjhc2gx38hkf3xx26w5vz7m377kv67irh6rrywqqsyxn"; depends=[MASS matlab permute]; };
-  cxhull = derive2 { name="cxhull"; version="0.4.0"; sha256="0hgx4y1svx9dcwjx254hmawyswsv17wn7kg2wwg8hyal9qgmh0wa"; depends=[Morpho rgl Rvcg]; };
+  cxhull = derive2 { name="cxhull"; version="0.5.0"; sha256="18f5x00z95iszbn5fl5qbbblp4fs0db9xs3mzy9s5y8kb52rsaxz"; depends=[Morpho rgl Rvcg]; };
   cxr = derive2 { name="cxr"; version="1.0.0"; sha256="12rx7hna3h84a2xb2ir43xgb3zfmh0fhn5wcdjklk2g94dmwid28"; depends=[mvtnorm optimx]; };
   cxxfunplus = derive2 { name="cxxfunplus"; version="1.0"; sha256="0kyy5shgkn7wikjdqrxlbpfl3zkkv4v1p8a1vv0xkncwarjs4n8d"; depends=[inline]; };
   cycleRtools = derive2 { name="cycleRtools"; version="1.1.1"; sha256="1l7w2lm4s149ndd85v41pkdrdig6l3nmhl14bdx56aw8q57fxmb0"; depends=[Rcpp xml2]; };
@@ -7950,9 +7968,10 @@ in with self; {
   dLagM = derive2 { name="dLagM"; version="1.1.7"; sha256="1i5fwzdscp7wpzbsdvwvak26p0aj0xviisp0aglaa7nrwixx8y0w"; depends=[AER dynlm formula_tools lmtest MASS nardl plyr roll sandwich strucchange wavethresh]; };
   dMod = derive2 { name="dMod"; version="1.0.2"; sha256="1fnv3f5xlng8f3df5hvxncfnnadzwcsdiklrb2g67llf3m06bq74"; depends=[cOde deSolve doParallel dplyr foreach ggplot2 plyr rootSolve stringr]; };
   dPCP = derive2 { name="dPCP"; version="1.0.4"; sha256="1wxni1m9iaak0isc1sl205dnx3v8pzqyj22aj7alzwim6d6a4hjq"; depends=[dbscan e1071 exactci ggplot2 ggpubr raster rlist scales shiny shinyjs stringr]; };
+  dQTG_seq = derive2 { name="dQTG.seq"; version="1.0"; sha256="16c25s5i5spdpdbvfa25s4z47wbyffv8jin5jqb0rnx24rbfcwsh"; depends=[BB data_table doParallel foreach openxlsx qtl stringr writexl]; };
   dSVA = derive2 { name="dSVA"; version="1.0"; sha256="0vy0flyg82x0n9vw6jf9f76qy84sp0wnis91faj37ac5hdv3pvsb"; depends=[sva]; };
   dTBM = derive2 { name="dTBM"; version="2.0"; sha256="14y0x97gb1345ybvpd4rk0bidlzl613lgrl9pa4y197nhdkqdrx0"; depends=[EnvStats tensorregress WeightedCluster]; };
-  daarem = derive2 { name="daarem"; version="0.5"; sha256="167sqp7fnyhwgk7crl3b6m6i8mpn3hmsaqzi4v5ggi48fg19bis7"; depends=[]; };
+  daarem = derive2 { name="daarem"; version="0.7"; sha256="1pm8nj4ffc18njpr87hb988j551zp0s6ysr37nk784ibk4awxf7x"; depends=[]; };
   dabestr = derive2 { name="dabestr"; version="0.3.0"; sha256="0i4k8h46cw5ds1cammxxli8kpc82ill81xw3izi33lja7wl9vmnw"; depends=[boot cowplot dplyr effsize ellipsis forcats ggbeeswarm ggforce ggplot2 magrittr plyr RColorBrewer rlang simpleboot stringr tibble tidyr]; };
   dabr = derive2 { name="dabr"; version="0.0.3"; sha256="1x7vh5s2gd7x62c30hqhs6rbif9jpmfvqzlxlqwc6hc5wqd3x6q6"; depends=[knitr magrittr RMariaDB tibble]; };
   dad = derive2 { name="dad"; version="4.0.0"; sha256="154afqf3xwbdjp9qr3rlz06ln2cnwzafk3p9h73k0h2g5n8yp5b9"; depends=[DescTools e1071 ggplot2]; };
@@ -7966,9 +7985,9 @@ in with self; {
   dagR = derive2 { name="dagR"; version="1.2.0"; sha256="0fkh2cb0sln8sfklcxjr2qf68wjd4gbqkfay0kynvk5jan58f018"; depends=[]; };
   dagirlite = derive2 { name="dagirlite"; version="0.1.0"; sha256="12j5mfxcv32qgx1yklcq8yl2kx4lkxap4biywjrj0sjx6zj60f8l"; depends=[knitr Rdpack]; };
   dagitty = derive2 { name="dagitty"; version="0.3-1"; sha256="1a78g2nr8i7mzzxyb6mfsqqgjyf3s4hwngvyd9vyygzcb79bai3x"; depends=[boot jsonlite MASS V8]; };
-  dagwood = derive2 { name="dagwood"; version="0.1.3"; sha256="1z4a02b7z2wihsxm7p19478p3ix0f7j3kly2x43ib5207fh9m1yb"; depends=[dagitty]; };
+  dagwood = derive2 { name="dagwood"; version="0.1.4"; sha256="1lp6swfmfzv28cfybmvj7czkfljd0sldv2qqi83q0fwcb7kxgdfz"; depends=[dagitty]; };
   daiR = derive2 { name="daiR"; version="0.9.0"; sha256="0kq633jpiagbpsj0190pzpxmz8df6niqc6lwqgrahxfpda798srk"; depends=[base64enc curl fs gargle glue googleCloudStorageR httr jsonlite magick pdftools purrr stringr]; };
-  dail = derive2 { name="dail"; version="1.1"; sha256="1j7czlx8j3cfqh11cc5srm86fn5rky28pdj0is31abp5ff05017q"; depends=[dplyr magrittr readr stopwords stringr tidytext]; };
+  dail = derive2 { name="dail"; version="1.3"; sha256="081cdy1gvrznv3q7prd16hkf2v9a1ran92krhj8yi8f8s3s02nvc"; depends=[dplyr magrittr readr stopwords stringr tidytext]; };
   dalmatian = derive2 { name="dalmatian"; version="1.0.0"; sha256="0hpyg8sl5v87l1hxax9sj863hy9njdyp7hnsaw3cida365p0dswa"; depends=[coda dglm dplyr ggmcmc rlang tidyr]; };
   dam = derive2 { name="dam"; version="0.0.1"; sha256="1b0fi3l8jxgpr9fwvi03giq7wm39msbh0c82ffgkh54a3bbf5blc"; depends=[]; };
   dampack = derive2 { name="dampack"; version="1.0.1"; sha256="0mh3x0xgcipbd9341x3sfapysrd9m8aaakc1f53vwjj31c8vayqc"; depends=[dplyr ellipse ggplot2 ggrepel mgcv reshape2 scales stringr triangle truncnorm]; };
@@ -7981,7 +8000,7 @@ in with self; {
   dapr = derive2 { name="dapr"; version="0.0.3"; sha256="136chxijyxrl5sbiggxf56zga26zqds647z1z2igwn5mdff1wxyb"; depends=[]; };
   daqapo = derive2 { name="daqapo"; version="0.3.1"; sha256="09fmnpp4nl6n1z834dxzs2v56ba9sfb4mrmc1nrrixxhfsxshmb7"; depends=[bupaR dplyr edeaR glue lubridate magrittr miniUI purrr readr rlang shiny stringdist stringr tidyr xesreadR]; };
   darksky = derive2 { name="darksky"; version="1.3.0"; sha256="1740cw5qifgvqa0nafd6lmllxi32n1zm45zlify1yn3h1qdcszhb"; depends=[ggplot2 gridExtra gtable httr plyr]; };
-  dartR = derive2 { name="dartR"; version="1.9.9.1"; sha256="1i2ha796k5xhyzz8q26pygc9hy2ay2b357h50ljfs2rf4np6l0sz"; depends=[adegenet ape crayon devtools dplyr foreach ggplot2 gridExtra HardyWeinberg hierfstat MASS plyr PopGenReport robustbase SNPRelate sp StAMPP stringr tidyr vegan]; };
+  dartR = derive2 { name="dartR"; version="2.0.3"; sha256="144vsl8msadxxm4g198y3c2bmr93mqza47q5yibrfyrw3yy8f3a5"; depends=[adegenet ape crayon data_table dplyr fields foreach ggplot2 gridExtra MASS patchwork plyr PopGenReport raster reshape2 shiny SNPRelate sp StAMPP stringr tidyr vegan]; };
   dash = derive2 { name="dash"; version="0.9.3"; sha256="1wsvhnvh7sxi4gr88k6kycdr6is8akz9qjy70pl3whykyvx4cjq0"; depends=[assertthat base64enc brotli crayon digest fiery glue htmltools jsonlite magrittr mime plotly R6 reqres rlang routr]; };
   dashCoreComponents = derive2 { name="dashCoreComponents"; version="1.10.0"; sha256="11jrlls6k6qlvi81741ga908aw22m05fhhr9jpzli982s611jrwl"; depends=[]; };
   dashHtmlComponents = derive2 { name="dashHtmlComponents"; version="1.0.3"; sha256="01zrwjlhwwajk2lnv7is1r6nril83l65pynx856y9mvnm05xkb7m"; depends=[]; };
@@ -7993,7 +8012,6 @@ in with self; {
   data_table = derive2 { name="data.table"; version="1.14.2"; sha256="0arx5wna0sh0vf5q8rjhh8nqdmnvg2pdpbhljl9l0x4kwm8vjhgp"; depends=[]; };
   data_tree = derive2 { name="data.tree"; version="1.0.0"; sha256="0pizmx2312zsym4m42b97q2184bg3hibvbdrblcga05xln84qrs0"; depends=[R6 stringi]; };
   data_validator = derive2 { name="data.validator"; version="0.1.6"; sha256="1qzgwi9agsli96whzsyx7qxqzc5sixpqrd7z6fh4yrcv1i3li8yr"; depends=[assertr dplyr htmltools htmlwidgets knitr purrr R6 rlang rmarkdown shiny shiny_semantic tibble tidyr]; };
-  data360r = derive2 { name="data360r"; version="1.0.8"; sha256="0g3prfaqy7d5fdla4l31cj87vhzi945g22zr7pi2c2whlk4q4n09"; depends=[curl data_table jsonlite reshape2]; };
   dataCompareR = derive2 { name="dataCompareR"; version="0.1.4"; sha256="1rapnlbi43z4sx4rq3fp8kpqhdj4g02fi3xglldbdp0c59f9vacg"; depends=[dplyr knitr markdown stringi]; };
   dataMaid = derive2 { name="dataMaid"; version="1.4.1"; sha256="06jywq3llwafjnpklqimra456crdi752zxci6z1w0v7p8blf4vjw"; depends=[ggplot2 gridExtra haven htmltools magrittr pander rmarkdown robustbase stringi whoami]; };
   dataMeta = derive2 { name="dataMeta"; version="0.1.1"; sha256="13xxayqxbps07h0xr5b7sb7q30gy5zm7jzzaq4k20fskkjrzhzcm"; depends=[dplyr]; };
@@ -8003,7 +8021,7 @@ in with self; {
   datacleanr = derive2 { name="datacleanr"; version="1.0.3"; sha256="0mrfqm3lgb6sl2j35sfd00gb5121j9wmlff8k0vczr3sgmqz4dg8"; depends=[bslib clipr dplyr DT formatR fs glue htmltools htmlwidgets lubridate magrittr plotly purrr RColorBrewer rlang rstudioapi shiny shinyFiles shinyWidgets summarytools]; };
   datadigest = derive2 { name="datadigest"; version="1.0.2"; sha256="1v4nwflrgjhwkrdlrjnqyq1spv1jkgxn1kmapml0zrvnvwf0r1a1"; depends=[haven Hmisc htmltools htmlwidgets jsonlite miniUI shiny tibble]; };
   datadogr = derive2 { name="datadogr"; version="0.1.2"; sha256="10zbxb9gkymw78ras9y4wrifz7cxh3y630yzjcf9ds2p557vcjzp"; depends=[anytime dplyr glue httr lubridate purrr stringr tibble tidyr]; };
-  dataframeexplorer = derive2 { name="dataframeexplorer"; version="1.0.0"; sha256="1bl24z9hqhrs3k459b5hprwc7j639myvkx0qbfcyv3hmi7mbsd0q"; depends=[data_table dplyr magrittr openxlsx plyr stringr tibble tidyr]; };
+  dataframeexplorer = derive2 { name="dataframeexplorer"; version="1.0.2"; sha256="0g5ajvd81k5pamvn204rxaiw92k20qqffnia1g6z89lp73spxs0s"; depends=[data_table dplyr magrittr openxlsx plyr stringr tibble tidyr]; };
   dataframes2xls = derive2 { name="dataframes2xls"; version="0.4.7"; sha256="10krlv0l5w021z0qd7rj93pzfjjmcjlda4xz4vq470bxbjmn1bss"; depends=[]; };
   datafsm = derive2 { name="datafsm"; version="0.2.4"; sha256="0klhkbwpaqxk2mnxha8b03mpgfxk107ff9d2nx6cky59il3c1825"; depends=[caret GA Rcpp]; };
   datagovindia = derive2 { name="datagovindia"; version="1.0.5"; sha256="1k04k2bz56d3k1nbx8p8pc1x3cxrdmnpgbrgmxl5i1qg3yashj91"; depends=[curl dplyr httr magrittr plyr rlang stringr]; };
@@ -8029,7 +8047,7 @@ in with self; {
   datastepr = derive2 { name="datastepr"; version="0.0.2"; sha256="039yggdj8jdici7hwmkjwgix45lvwjl7rw5h2rfzsm9xaq6vw1z2"; depends=[dplyr lazyeval magrittr R6 tibble]; };
   datastructures = derive2 { name="datastructures"; version="0.2.9"; sha256="0prw24iy1af02g1nzw588dv085bdnl6pzvizpxspmwzj6vrfbaav"; depends=[BH purrr Rcpp]; };
   dataverse = derive2 { name="dataverse"; version="0.3.10"; sha256="0fhxzd83hl2qgif8d5caw893i5w2b951yl7a5dmbj69ihcn0xfrg"; depends=[checkmate httr jsonlite readr xml2]; };
-  datawizard = derive2 { name="datawizard"; version="0.3.0"; sha256="1jmrkfymh66d0n4256hamvrbqipfl3bl05q618z4flmq2byifibs"; depends=[insight]; };
+  datawizard = derive2 { name="datawizard"; version="0.4.0"; sha256="1j26xv1zm7qwp80gy6vlysq3zxdj9r8ivi54b1d6s0ckqkww6gja"; depends=[insight]; };
   date = derive2 { name="date"; version="1.2-39"; sha256="0mwp1619rxqyyyyxk224fh0x6g4rgyvr97q0kj076cxp71b97cdm"; depends=[]; };
   datefixR = derive2 { name="datefixR"; version="0.1.4"; sha256="185lv1dap6xkmyqkv4fjmlmf6w95gm6szi0pps0pfrmcj42ng1fa"; depends=[stringr]; };
   datelife = derive2 { name="datelife"; version="0.6.1"; sha256="0fv478ykka6m5j3d6k7265xp76qc78fr7ms9khx349qbylj67306"; depends=[abind ape BiocManager bold cluster compare geiger httr ips knitcitations paleotree phangorn phylobase phylocomr phytools plyr rotl stringr taxize treebase]; };
@@ -8051,7 +8069,7 @@ in with self; {
   dbEmpLikeNorm = derive2 { name="dbEmpLikeNorm"; version="1.0.0"; sha256="0h5r2mqgallxf9hin64771qqn9ilgk1kpsjsdj2dqfl3m8zg967l"; depends=[dbEmpLikeGOF]; };
   dbMC = derive2 { name="dbMC"; version="1.0.0"; sha256="0gcgn3m10sx0naim206jkw7szl0mr7vbnkn25avvv9f8iy3y9vcv"; depends=[softImpute]; };
   dbWebForms = derive2 { name="dbWebForms"; version="0.1.0"; sha256="0diz5mh4fhwrwqa7jr70vzj2jks7h2n91v2hr1mvvlbc7rzd9yki"; depends=[data_table DBI html5 stringi]; };
-  dbarts = derive2 { name="dbarts"; version="0.9-20"; sha256="0ap9lmkx2z4fgc5b9kws6pgvshkr9ngr1z1qgmivf698h6ayfx8x"; depends=[]; };
+  dbarts = derive2 { name="dbarts"; version="0.9-22"; sha256="02hmqzfk9sgz4vndnpnpcav7wlpy9xna8zdnlwgcj4a84zz2pyk8"; depends=[]; };
   dbcsp = derive2 { name="dbcsp"; version="0.0.2.0"; sha256="1g4f4l20g9ljm53hvq9caz87fsch6ikqqdmaf856bmc2bh6dckca"; depends=[caret geigen ggplot2 MASS Matrix parallelDist plyr TSdist zoo]; };
   dbd = derive2 { name="dbd"; version="0.0-22"; sha256="13qdm0y5dvc107xnv6663gbvmkw77150r073lp1jppf3gs8s587b"; depends=[]; };
   dbflobr = derive2 { name="dbflobr"; version="0.2.1"; sha256="0q736fpz18kq18jr8ga1jxh3vggmd7xws0sda83h95gkfx96pf8p"; depends=[blob chk clisymbols crayon DBI flobr glue rlang RSQLite]; };
@@ -8060,7 +8078,7 @@ in with self; {
   dblcens = derive2 { name="dblcens"; version="1.1.7"; sha256="02639vyaqg7jpxih8cljc8snijb78bb084f4j3ns6byd09xbdwcw"; depends=[]; };
   dblr = derive2 { name="dblr"; version="0.1.0"; sha256="0wzmhmp706mw0pkh81nsb7qzclwyhm6f2mjvpvz043ng5xrxwvvw"; depends=[CatEncoders data_table Metrics xgboost]; };
   dbmss = derive2 { name="dbmss"; version="2.7-8"; sha256="0zh2ipf089pjib3nikhlqpvdfj13h8j5c49fksrk2mmd7rpfrg15"; depends=[cubature ggplot2 Rcpp RcppParallel reshape2 spatstat_core spatstat_geom spatstat_random spatstat_utils tibble]; };
-  dbnR = derive2 { name="dbnR"; version="0.7.1"; sha256="19d6vzsx84xbcmpk57si6pc940m6i8dlaa9163r09i6hndd11rx3"; depends=[bnlearn data_table magrittr R6 Rcpp]; };
+  dbnR = derive2 { name="dbnR"; version="0.7.5"; sha256="00y8n3cn8nrnmsnzgqic7i08xbxdzdk06xdmvvvypjspl0g443pn"; depends=[bnlearn data_table magrittr R6 Rcpp]; };
   dbnlearn = derive2 { name="dbnlearn"; version="0.1.0"; sha256="0kmyiad7v96mnfi24d2pn3dqmk3g82sx348m1vhhqwijfnj53brb"; depends=[bnlearn bnviewer ggplot2]; };
   dbparser = derive2 { name="dbparser"; version="1.2.0"; sha256="06yk6i80xlvrjgi8lpzz82rhhmkbj980vpmpil57acjkfvaznwj6"; depends=[DBI dplyr odbc progress purrr readr RMariaDB RSQLite tibble XML]; };
   dbplot = derive2 { name="dbplot"; version="0.3.3"; sha256="1svizj9hcd417yii8ll9s3mnvdqpa5awy9xl71kbwpfcnpdzqf1r"; depends=[dplyr ggplot2 magrittr purrr rlang]; };
@@ -8082,7 +8100,7 @@ in with self; {
   dcov = derive2 { name="dcov"; version="0.1.1"; sha256="0c3a5dzpizsxlsh723pcd0d7n0mgfc9y35vrfhmskp3c1x639mh3"; depends=[Rcpp RcppArmadillo]; };
   dcurver = derive2 { name="dcurver"; version="0.9.2"; sha256="1v4h480lff1cyjjwb80dksiffh0y4b3s07lq2l2r21rn1l4mav6c"; depends=[Rcpp RcppArmadillo]; };
   dcurves = derive2 { name="dcurves"; version="0.2.0"; sha256="0vm1cg6sr152fg5bgy2inf4x42vkbvw9ahy5b1dda8jgc6s7zr9v"; depends=[broom dplyr ggplot2 glue purrr rlang scales survival tibble]; };
-  ddalpha = derive2 { name="ddalpha"; version="1.3.11"; sha256="1sdnb47r534nh138zk3a6b2mgi74nvshc7p5m304vjs9jlx4l2y3"; depends=[BH class geometry MASS Rcpp robustbase sfsmisc]; };
+  ddalpha = derive2 { name="ddalpha"; version="1.3.13"; sha256="1bjfgb3lbzhjb5wx9hzp90jppq7vnj59bmd2n9ymi8sh1570m9p4"; depends=[BH class geometry MASS Rcpp robustbase sfsmisc]; };
   dde = derive2 { name="dde"; version="1.0.1"; sha256="0qgnxb27a2wnrbfk5v22i985mqhjp4hp05vl1ccsapbxkpf0gqcv"; depends=[ring]; };
   ddi = derive2 { name="ddi"; version="0.1.0"; sha256="0pnkylz7l6brx6i73wys637w811psxhnr39lcmkag41s6jcgabd5"; depends=[]; };
   ddiv = derive2 { name="ddiv"; version="0.1.1"; sha256="0xsn74z78znrm3rnnvdphp89sb0lik564ha3wv6n3ldrfh1van8y"; depends=[MASS qpdf segmented]; };
@@ -8091,8 +8109,8 @@ in with self; {
   ddpcr = derive2 { name="ddpcr"; version="1.15"; sha256="04q2k6kag3qx9g6iarb84ski7s895xdd20zlaw7wmidfv038kmws"; depends=[dplyr DT ggplot2 lazyeval magrittr mixtools plyr readr shiny shinyjs tibble]; };
   ddst = derive2 { name="ddst"; version="1.4"; sha256="1y0immm337adkd2bjx8c5pf02w9wysv3gj26f4qf0jiba0f2wk8n"; depends=[evd orthopolynom]; };
   deBInfer = derive2 { name="deBInfer"; version="0.4.2"; sha256="108vijk71sgsj14hwfv78r4lnn68cybvnpr92zvrvl0d82b7qxfd"; depends=[coda deSolve MASS mvtnorm PBSddesolve plyr RColorBrewer truncdist]; };
-  deGradInfer = derive2 { name="deGradInfer"; version="1.0.1"; sha256="0yczn63fhpirvz1g1kq9q0m04sisflxxgxy70c87jyvrw12nfwss"; depends=[deSolve gdata gptk]; };
-  deSolve = derive2 { name="deSolve"; version="1.30"; sha256="0j7mmg1mimdpql8f4i9dn920ciyyq80a5qnc4fq5xn5lyrx5vxir"; depends=[]; };
+  deBif = derive2 { name="deBif"; version="0.1.0"; sha256="0gws9g08vfh8sdwan4kxhnzw912rpc9bxcmsl2bjkzmpy1ncyrk5"; depends=[deSolve rootSolve rstudioapi shiny shinydashboard shinydashboardPlus shinyjs]; };
+  deSolve = derive2 { name="deSolve"; version="1.31"; sha256="06gsh514msqdmri78969snhgh22d2bzmnkqfgh0s74aprfd93m8r"; depends=[]; };
   deTS = derive2 { name="deTS"; version="1.0"; sha256="08yq7vfcd8fv8qw2w0f1rnj3rzys9kslmkqspmiz6prmzqvj1zf1"; depends=[pheatmap RColorBrewer]; };
   deTestSet = derive2 { name="deTestSet"; version="1.1.7.3"; sha256="0v59cczhwjrk7qgngmiyc7jvx11h808w4s3ww6l83n1ylx81fgll"; depends=[deSolve]; };
   deaR = derive2 { name="deaR"; version="1.2.5"; sha256="1k38j9l6rhw2gkpvz202gsja1jz3p57d8s3iv2nm7ph9000z03p9"; depends=[dplyr ggplot2 gridExtra igraph lpSolve plotly tidyr writexl]; };
@@ -8106,7 +8124,7 @@ in with self; {
   decision = derive2 { name="decision"; version="0.1.0"; sha256="13d0yyg5zp7n3r92l0l1dsffxfph6vacrlzga9rz41l5pja72z6g"; depends=[]; };
   decisionSupport = derive2 { name="decisionSupport"; version="1.110"; sha256="1yqdffrqk18vmna6vv699pa987cd266gihsccs47a2vdhlhgrk2m"; depends=[assertthat chillR dplyr fANCOVA ggplot2 ggstance magrittr msm mvtnorm nleqslv patchwork rriskDistributions stringr tidyr tidyselect]; };
   deckgl = derive2 { name="deckgl"; version="0.2.7"; sha256="0ifv6j0kbwayl60bf1rwd1h7424npqsqsvb44ngg7v0ik4bgbyfx"; depends=[base64enc htmltools htmlwidgets jsonlite magrittr readr tibble yaml]; };
-  declared = derive2 { name="declared"; version="0.11"; sha256="1m882i1hrz3zv4hawnypl06izv9d3bb16mhdyhb419b5nh2vksyg"; depends=[admisc]; };
+  declared = derive2 { name="declared"; version="0.13"; sha256="11wqm1gmzri6ig70vwbfyjix7rkmqdd351b93gw6jlfi1j8rxggi"; depends=[admisc]; };
   decode = derive2 { name="decode"; version="1.2"; sha256="1qp0765gl3pgfdzjwj7icf3zminxxmrlw6gx3vj51y6c2y5ws4as"; depends=[]; };
   decoder = derive2 { name="decoder"; version="1.2.2"; sha256="1jxgd32bn36ldal26wivhdxgjy247l7r4ickacr1p8rrwxvhpk18"; depends=[]; };
   decomposedPSF = derive2 { name="decomposedPSF"; version="0.1.3"; sha256="0p9n0qi21facdp9c4fzs78ap4w1wvpvkv51kgx1gkr949kw8cv4n"; depends=[forecast PSF Rlibeemd tseries]; };
@@ -8133,7 +8151,6 @@ in with self; {
   deepregression = derive2 { name="deepregression"; version="0.1"; sha256="0k062wkhfcnbkg2l09zr56p7fzgxcwllzycmpp4m5swigl6g9z1n"; depends=[dplyr keras magrittr Matrix Metrics mgcv purrr R6 reticulate tensorflow tfprobability tfruns]; };
   deeptime = derive2 { name="deeptime"; version="0.2.1"; sha256="1b0ba304950y2w7x8q5ag66fpfv7c4lpcdglf47yfps5nivkjk4n"; depends=[ggfittext ggforce ggnewscale ggplot2 gridExtra gtable lattice rlang scales]; };
   default = derive2 { name="default"; version="1.0.0"; sha256="0hzxgp9la9kll5cw3m4gd02rii571xsn1v53kz407k7k6rfg5mda"; depends=[]; };
-  define = derive2 { name="define"; version="0.2.9"; sha256="0sq7ryiz1py0yw7g2bncd834zsdiy1y7rck8k4grrx2ips5gv2jy"; depends=[encode Hmisc latexpdf SASxport spec]; };
   deflateBR = derive2 { name="deflateBR"; version="1.1.2"; sha256="17zsy10k12gmffbk7nagi60xj347q0bf7wr885fiylqz2xiy9fl9"; depends=[dplyr httr lubridate]; };
   deformula = derive2 { name="deformula"; version="0.1.1"; sha256="0h85yzl8kvjwrn1mkzyblvknf7gg8kx8y85qnvkwfbr9ik42ngn1"; depends=[]; };
   degreenet = derive2 { name="degreenet"; version="1.3-3"; sha256="07mkj2sdp09624mmb1x3djjypnrzn43qn2j4m93blli51j6zchm3"; depends=[igraph network]; };
@@ -8141,7 +8158,6 @@ in with self; {
   dejaVu = derive2 { name="dejaVu"; version="0.3.0"; sha256="0l30m707zrp05d7hywlx443n02mflxqsampmcblj3fvcbyywc1fd"; depends=[MASS]; };
   delayed = derive2 { name="delayed"; version="0.3.0"; sha256="04f4k683jzb763sb9knb81lw8df56y1378g4i3c1x8m83bvj1mhs"; depends=[assertthat BBmisc data_table future igraph progress R6 rlang rstackdeque uuid visNetwork]; };
   deldir = derive2 { name="deldir"; version="1.0-6"; sha256="1igq0l2knsbhizncgydcsidgkvvlwwlkrifbcdyhnzk0bhrdixkd"; depends=[]; };
-  delt = derive2 { name="delt"; version="0.8.2"; sha256="06g03wy9r2qvly0lnv5fv4k366mhlk56qkvak0xaxy99p1i34kmv"; depends=[denpro]; };
   deltaPlotR = derive2 { name="deltaPlotR"; version="1.6"; sha256="15vjg3viyfrxvvh34p8i7j8p0vpg5628g8198adhi0i2ri3ygz9a"; depends=[MASS]; };
   deltaccd = derive2 { name="deltaccd"; version="1.0.2"; sha256="1iqyycjfmclr9y8gfj61naxwafjgmfwahyrc110qxzb239b501rw"; depends=[data_table doRNG foreach ggplot2 rlang scales statmod]; };
   dematel = derive2 { name="dematel"; version="0.1.0"; sha256="1m84sd46cg7188wnjx09g88xvxdp7i0mdxnynwlqkgcmnwx4bdjw"; depends=[ggplot2 knitr]; };
@@ -8161,10 +8177,9 @@ in with self; {
   denoiSeq = derive2 { name="denoiSeq"; version="0.1.1"; sha256="18w69gxbnazg5k8bzi76slcqxnbfmrndp548zazz8bpxz3jns699"; depends=[]; };
   denoiseR = derive2 { name="denoiseR"; version="1.0.2"; sha256="1q5kxiwfkrf2k0gpidzhl4hyzyjcm33rwlw4dan9nkx1181naw9l"; depends=[FactoMineR irlba Matrix]; };
   denovolyzeR = derive2 { name="denovolyzeR"; version="0.2.0"; sha256="03ya5clzqp12lfhw073ri0pwgxn53a6pvnais317a8bv1yinxspb"; depends=[dplyr reshape2]; };
-  denpro = derive2 { name="denpro"; version="0.9.2"; sha256="19hrpfd44jaavq81dbyj3frris4aflfc8lig0471whv0pc6jci2k"; depends=[]; };
-  densEstBayes = derive2 { name="densEstBayes"; version="1.0-2"; sha256="16fb7vkic9q5p8s4f0f215zmb36fcizqr4r2vm9dxxj9rasrg2f3"; depends=[BH MASS nlme Rcpp RcppArmadillo RcppEigen RcppParallel rstan StanHeaders]; };
+  densEstBayes = derive2 { name="densEstBayes"; version="1.0-2.1"; sha256="1pzmgn65lv91zg1588qhwczy9f2zgciknlc4l072mvh2i7hncw2b"; depends=[BH MASS nlme Rcpp RcppArmadillo RcppEigen RcppParallel rstan rstantools StanHeaders]; };
   denseFLMM = derive2 { name="denseFLMM"; version="0.1.2"; sha256="1lfhd73zvvz6glq41lb2a9x63fjwjfp53zmy9g78fg6gz5lbnbpm"; depends=[MASS Matrix mgcv mvtnorm]; };
-  densitr = derive2 { name="densitr"; version="0.1.0"; sha256="1vqdvfka6wdfxqfy2qcacss0h6wxykmwyijr5blpvlpafjdmngaq"; depends=[changepoint]; };
+  densitr = derive2 { name="densitr"; version="0.2"; sha256="04k98id4y5b6bdzayzignzyha8l693wk3dsla4abfpdf4wpqs17a"; depends=[changepoint]; };
   densityClust = derive2 { name="densityClust"; version="0.3.2"; sha256="05x2fi1zdnkrg2nimf8k904j3lpyw0f7nmk6ax5p7x7a98wb2iqs"; depends=[FNN ggplot2 ggrepel gridExtra RColorBrewer Rcpp Rtsne]; };
   densratio = derive2 { name="densratio"; version="0.2.1"; sha256="0x333kfx5mdzzjsqy37j4bmv9iddlgp3wi4774lx8d159lbr6irp"; depends=[]; };
   denstrip = derive2 { name="denstrip"; version="1.5.4"; sha256="0hzxphj740q6pfa1q42knr7n12bmnawg7b2fs74msxn83dka5cmq"; depends=[lattice]; };
@@ -8177,7 +8192,7 @@ in with self; {
   depth = derive2 { name="depth"; version="2.1-1.1"; sha256="0szy0027nh4ps1z919i740i50app5q7cfyg1fj7pdyl45nbl8k6m"; depends=[abind circular rgl]; };
   depth_plot = derive2 { name="depth.plot"; version="0.1"; sha256="0zjg9iyqmcnkvwc9w2j7lmk3k9nsg6n8m6vq5x44d1bp4g2gr6jv"; depends=[mvtnorm]; };
   depthTools = derive2 { name="depthTools"; version="0.7"; sha256="00pn4ccsg1hjv83xqk4g0g24cz2a87shlbg8kd2dri4dcagzifg0"; depends=[]; };
-  dequer = derive2 { name="dequer"; version="2.0-1"; sha256="04kzlff8xa733qkkx0gacgig7d4l7yvgqmzva0mj8di12byh214p"; depends=[]; };
+  dequer = derive2 { name="dequer"; version="2.0-2"; sha256="0bc1gf5kbp36zxds70l40r4bsa4f1ih11cy7dkxc6yym6hp79789"; depends=[]; };
   derivmkts = derive2 { name="derivmkts"; version="0.2.4"; sha256="1ncqhi6f69jv75dad1l9wsrfxi5m2wizywikkbg7i9qmh42xkh8w"; depends=[mnormt]; };
   desc = derive2 { name="desc"; version="1.4.1"; sha256="0m3g5m0g08k674zh4lq0ihmqiwz8jpsfqrdwfqp5p4ngxi8vp7lg"; depends=[cli R6 rprojroot]; };
   descomponer = derive2 { name="descomponer"; version="1.6"; sha256="1yznb6j850gap1bacvx5dkh4030x38041ll61z6an6h7j71yyc5p"; depends=[]; };
@@ -8187,7 +8202,7 @@ in with self; {
   descriptr = derive2 { name="descriptr"; version="0.5.2"; sha256="1shqcykp8ahgarsam56zv4gcbj0mmfm7jy1i9fgbmy5ddksnific"; depends=[dplyr ggplot2 magrittr rlang scales tibble tidyr]; };
   descstat = derive2 { name="descstat"; version="0.1-2"; sha256="0q463p0bq80c9lhwfv4imbhgx6f1w2jqm3022p5zvycfa9w39rin"; depends=[cli dplyr forcats magrittr purrr rlang tibble tidyr tidyselect]; };
   descstatsr = derive2 { name="descstatsr"; version="0.1.0"; sha256="1pz5lww1dkkqvsq6h0vkch39bj76qffmmag3zlag5in75s4wj0wl"; depends=[moments zoo]; };
-  desctable = derive2 { name="desctable"; version="0.1.9"; sha256="0ixakd5rs9csq7rm6h8id44qkdg2gn0cg6hwdcwvbvshflbg4jxx"; depends=[dplyr DT htmltools pander]; };
+  desctable = derive2 { name="desctable"; version="0.3.0"; sha256="1i0124lnmzdbx468lyqmzbd6disxjifqjy8ss10fl8cin4f868lb"; depends=[dplyr DT htmltools pander rlang tidyr]; };
   deseasonalize = derive2 { name="deseasonalize"; version="1.35"; sha256="1fjsa7g34dckjs6mx9b10m99byxagggm0p9pw2f1vmpjqlasin0l"; depends=[FitAR lattice]; };
   desiR = derive2 { name="desiR"; version="1.2.2"; sha256="149wgg5mbq95wizpc24mwb8qfxjdia4qkz66bnzjgiiyfh6r46wp"; depends=[]; };
   designGG = derive2 { name="designGG"; version="1.1"; sha256="1x043j36llwd7kd4skbpl2smz2ybsxjqf5yd1xwqmardq60gdv2w"; depends=[]; };
@@ -8198,7 +8213,7 @@ in with self; {
   desire = derive2 { name="desire"; version="1.0.7"; sha256="0jmj644nj6ck0gsk7c30af9wbg3asf0pqv1fny98irndqv508kf6"; depends=[loglognorm]; };
   desla = derive2 { name="desla"; version="0.1.0"; sha256="12daspn24131gw1hizd169ijxkc8wvfl2xlicd0pwz85j8bbsa95"; depends=[Rcpp RcppArmadillo RcppProgress Rdpack]; };
   desplot = derive2 { name="desplot"; version="1.9"; sha256="0dg8j3l6x12g4h5hsxwhxvc8i03gwlvm80l03rx3wwqsx070if1y"; depends=[ggplot2 lattice reshape2]; };
-  details = derive2 { name="details"; version="0.2.1"; sha256="03fw3jbf1a34w9c205wwjkqnw6ic1gylsf36qw33mx4ba252s2hy"; depends=[clipr desc httr knitr magrittr png withr xml2]; };
+  details = derive2 { name="details"; version="0.3.0"; sha256="0mygkmfmfp3a2hgql514zyh4rw3v8i4g4cls6rss0fplg4pskwc7"; depends=[clipr desc htmltools httr knitr magrittr png withr xml2]; };
   detect = derive2 { name="detect"; version="0.4-4"; sha256="1gzd98b4kg5rw0kpgznrb1wmr3iavdq5983n6wqx33lga1lqq9d6"; depends=[Formula Matrix pbapply]; };
   detectR = derive2 { name="detectR"; version="0.1.0"; sha256="1l93b8xx6xridwcvs15xgfm7w05p3r233rxpakpii3d71rnbs8cy"; depends=[doParallel foreach glasso lavaan LogConcDEAD signal]; };
   detectRUNS = derive2 { name="detectRUNS"; version="0.9.6"; sha256="0yl1x0jz66hingbl094picsiyrxzxvnz0grq63rva6nwn7pv1c0b"; depends=[data_table ggplot2 gridExtra iterators itertools plyr Rcpp reshape2]; };
@@ -8250,9 +8265,10 @@ in with self; {
   dialectR = derive2 { name="dialectR"; version="1.0"; sha256="11fd2fdxczlcxkk3pwhiw0vb51bndh9qcfp7pqcfj1z7aga52xk0"; depends=[deldir dplyr dtw ggplot2 ggvoronoi Rcpp RcppProgress reticulate sf tibble]; };
   dialr = derive2 { name="dialr"; version="0.4.0"; sha256="1di5b3w1iif8702j5gnkwp55psbgzwb54ccxah3xscy75sg3zmpm"; depends=[dialrjars rJava]; };
   dialrjars = derive2 { name="dialrjars"; version="8.12.42"; sha256="0fn2ic9vllar3wgmgvzx4b2sw5sixzfnjmmk71fnmkii2mfp3s38"; depends=[rJava]; };
-  dials = derive2 { name="dials"; version="0.1.0"; sha256="02i9ddzi7gk5bwg87x8bpazk89mn102awgxzp9yw85dgbafqsydh"; depends=[DiceDesign dplyr glue hardhat lifecycle purrr rlang scales tibble vctrs withr]; };
+  dials = derive2 { name="dials"; version="0.1.1"; sha256="1h695g9vklqn0vd53j9k03s0989xjpjr11h5qhz3a0v6465fwm8a"; depends=[DiceDesign dplyr glue hardhat lifecycle purrr rlang scales tibble vctrs withr]; };
   diaplt = derive2 { name="diaplt"; version="1.3.0"; sha256="1kkqhkv3s8rrpqd05jidjdnqmlnb3s9f8rr34rfqj7k4nh0qzzcz"; depends=[]; };
-  dibble = derive2 { name="dibble"; version="0.1.0"; sha256="1b1z53w6n1ks3iiz1p2rs7ry9w03g5c8vzx4i3zqaqh16shn8p26"; depends=[dplyr pillar rlang tibble tidyselect vctrs]; };
+  diathor = derive2 { name="diathor"; version="0.1.0"; sha256="0nbqjaxb2fzcg9w67nbrszwv9swr1kjmg4dximfc8qdya1kmv8z9"; depends=[data_table ggplot2 purrr stringdist stringr tibble tidyr vegan]; };
+  dibble = derive2 { name="dibble"; version="0.1.1"; sha256="0b7nym468d3c0yfh7zimpj8ip92jk9izs5p395lwpgpscgsybfs1"; depends=[dplyr pillar rlang tibble tidyselect vctrs]; };
   dice = derive2 { name="dice"; version="1.2"; sha256="0gic7lqnsdmwv3dbzwwmcwdfyfqlq8kpr2pciqphd1j2ligzwl3s"; depends=[gtools]; };
   diceR = derive2 { name="diceR"; version="1.1.0"; sha256="01jh69b7x4agw5w2y9dal9g0nbq8s1ff36vcz2xfsjc0vi76irfs"; depends=[abind assertthat class clue clusterCrit clValid dplyr ggplot2 infotheo klaR magrittr mclust NMF purrr RankAggreg Rcpp stringr tidyr yardstick]; };
   dichromat = derive2 { name="dichromat"; version="2.0-0"; sha256="1l8db1nk29ccqg3mkbafvfiw0775iq4gapysf88xq2zp6spiw59i"; depends=[]; };
@@ -8260,11 +8276,12 @@ in with self; {
   dictionaRy = derive2 { name="dictionaRy"; version="0.1.1"; sha256="0j25wn2ghy59y1v02493d4knab06wxrzz8m9g6zxlkqzw1dqgc4f"; depends=[jsonlite tibble]; };
   dictionar6 = derive2 { name="dictionar6"; version="0.1.3"; sha256="1rg958py4pqghkid3830hla7vibvwsjhk75x55lxry5d8dp04m9f"; depends=[ooplah R6]; };
   did = derive2 { name="did"; version="2.1.1"; sha256="004n56wjmd75sm9hy48m6kbmrzk47zgq3lkzz0mdnpq55am40w5z"; depends=[BMisc DRDID generics ggplot2 ggpubr Matrix pbapply tidyr]; };
-  did2s = derive2 { name="did2s"; version="0.4.0"; sha256="0ipp0wk3xx3y0q66469inkw3q9b7x5gdi1bpplng88w0ismkb0di"; depends=[broom cli did didimputation dplyr fixest ggplot2 glue gt magrittr Matrix purrr Rcpp RcppArmadillo rlang rsample staggered stringr tibble tidyr]; };
+  did2s = derive2 { name="did2s"; version="0.6.0"; sha256="0nwqrbrvfhabn4y027akiv1792vkds17g4l5jx3y0j8qpyza6xli"; depends=[boot broom cli data_table did didimputation dplyr fixest ggplot2 glue magrittr Matrix purrr Rcpp RcppArmadillo rlang rsample staggered stringr tibble]; };
   didimputation = derive2 { name="didimputation"; version="0.1.0"; sha256="0bdvhbxy57a5k7cahrhp8dzcskpbanb11497kg5mbw240ilgh6x3"; depends=[broom dplyr fixest glue magrittr Matrix Rcpp RcppArmadillo rlang stringr]; };
   didrooRFM = derive2 { name="didrooRFM"; version="1.0.0"; sha256="12clfnbm56jwldw0afb0nb0argnd97mx7369jiywhxy0p4xqibqq"; depends=[dplyr]; };
   dief = derive2 { name="dief"; version="1.2"; sha256="1i4icdfqvw7imaj1fh392zmzfyz8aqlv9s5naqxm1pm0lqfxl6ca"; depends=[flux fmsb ggplot2 plyr]; };
   dielectric = derive2 { name="dielectric"; version="0.2.3"; sha256="1p1c0w7a67zxp1cb99yinylk5r1v89mmpfybcy94ydydhydbhivk"; depends=[]; };
+  diemr = derive2 { name="diemr"; version="1.0"; sha256="1d6pb2lzr2in1ykqfmjigi771njnjhcrkb4m9rw63r5hrn58by9d"; depends=[zoo]; };
   dietr = derive2 { name="dietr"; version="1.1.3"; sha256="03kb36377vx90f7zsl167pyjcyaw3chs710z0nx1kajjhcsdzgjp"; depends=[rfishbase]; };
   diezeit = derive2 { name="diezeit"; version="0.1-0"; sha256="0rq1k08byvqn99wpql7drnrcxlzcqrcxixh7bczbc8dv1hhsgk9i"; depends=[brew httr jsonlite]; };
   difNLR = derive2 { name="difNLR"; version="1.3.7"; sha256="1fvil2zys3i8raqkmm8s5p6dyxziwcgchxr1m7q69flms6cpg8gv"; depends=[calculus CTT ggplot2 msm nnet plyr reshape2 VGAM]; };
@@ -8290,11 +8307,11 @@ in with self; {
   diffviewer = derive2 { name="diffviewer"; version="0.1.1"; sha256="01phkaaa0zylyi23siwam18i1ggfgq2m66d69lnz9ips1yh12yca"; depends=[htmlwidgets jsonlite]; };
   digest = derive2 { name="digest"; version="0.6.29"; sha256="1ncwc5fwsylwlcp9vhkhszw8m5sifg74apig2m2pf168lha1yb3r"; depends=[]; };
   digitTests = derive2 { name="digitTests"; version="0.1.1"; sha256="1q9ksyzvbaq4n47ww7sq0w0arsy1i11b1zlyyzk0g1ks35jlxgpv"; depends=[]; };
-  digitalDLSorteR = derive2 { name="digitalDLSorteR"; version="0.1.1"; sha256="083ap03wxmzqynk66gswzilrfd8wrdsrkixdasw1w46pssrab79k"; depends=[dplyr edgeR ggplot2 ggpubr gtools keras Matrix Matrix_utils pbapply RColorBrewer reshape2 reticulate rlang S4Vectors SingleCellExperiment splatter SummarizedExperiment tensorflow tidyr zinbwave]; };
+  digitalDLSorteR = derive2 { name="digitalDLSorteR"; version="0.2.0"; sha256="1n12b5i9hqaqri8bw57c0fazln2cfihanfrk1hrdg5b1cd0dc73x"; depends=[dplyr edgeR ggplot2 ggpubr gtools keras Matrix Matrix_utils pbapply RColorBrewer reshape2 reticulate rlang S4Vectors SingleCellExperiment splatter SummarizedExperiment tensorflow tidyr zinbwave]; };
   digitalPCR = derive2 { name="digitalPCR"; version="1.1.0"; sha256="0hwqq84yr1hnvf4bygc5425887dhqjjjyy1ils71iavcal04s8pb"; depends=[]; };
   digitize = derive2 { name="digitize"; version="0.0.4"; sha256="1qw4x4z9vrs79sd9b2daw668nc6nvjl4qhayfqmd87yxa2ydv6x0"; depends=[readbitmap]; };
   dils = derive2 { name="dils"; version="0.8.1"; sha256="1q6ba9j14hzf7xy895mzxc6n9yjgind55jf350iqscwzxf7ynp33"; depends=[igraph Rcpp]; };
-  dimRed = derive2 { name="dimRed"; version="0.2.4"; sha256="1534axd5gcwma3nbglrn0l2an53n3yyya30fqkgb4d8l124ygb7j"; depends=[DRR magrittr]; };
+  dimRed = derive2 { name="dimRed"; version="0.2.5"; sha256="1z8fqdc8mslvfix8ngxs1y2yrvlanp5581hwp2nzldj6mk5kn15b"; depends=[DRR magrittr]; };
   dimensio = derive2 { name="dimensio"; version="0.2.2"; sha256="1340z0ibzmnbxghjw5w2afr6agwyz5kcan5hgibfi08y7axpdx4k"; depends=[ggplot2 rlang]; };
   dimensionsR = derive2 { name="dimensionsR"; version="0.0.3"; sha256="1bic5ynqapz4mh3bcv58r00ip5s04mc8n58yhlkbrnbcqyqaca4f"; depends=[httr jsonlite]; };
   dina = derive2 { name="dina"; version="2.0.0"; sha256="1sq7998xc5qhvd8clc8r32ch7axinh2a2dc7i1w2p148wv130yhd"; depends=[Rcpp RcppArmadillo rgen simcdm]; };
@@ -8302,7 +8319,7 @@ in with self; {
   dineR = derive2 { name="dineR"; version="1.0.1"; sha256="1nnfg4kylb8ivwij1qdn9qv5jciinl4jk4gghfw97jphp4da91pw"; depends=[MASS Matrix progress]; };
   dineq = derive2 { name="dineq"; version="0.1.0"; sha256="1xrhrdc970f7hm9xng9z7xmshnmmz89cn3gmnyabzprx44ccr9sl"; depends=[boot Hmisc]; };
   dint = derive2 { name="dint"; version="2.1.3"; sha256="0nxppn7gx4sjwn7jns5bwbqfid3jkbsx2lxi0rjdkbsawy77fc85"; depends=[]; };
-  dipm = derive2 { name="dipm"; version="1.5"; sha256="1mqannl493mic8qx75qq8147jb6hddsxsk7q8h51zjb3zr6b9hjp"; depends=[ggplot2 partykit survival]; };
+  dipm = derive2 { name="dipm"; version="1.6"; sha256="1c6iismnklc2pjcxqly3m7ni90nhcynhrbbiv8hr1gc9sjmx5x6g"; depends=[ggplot2 partykit survival]; };
   diproperm = derive2 { name="diproperm"; version="0.2.0"; sha256="0qh8zzpbsjfwh8q833n5pchb6dakqdza77ab7vmsidfbzndka11m"; depends=[dplyr DWDLargeR e1071 ggplot2 gridExtra lemon Matrix sampling SparseM usethis]; };
   dipsaus = derive2 { name="dipsaus"; version="0.2.0"; sha256="069l6fv3hxsgsxyg51am2yr6n3vd4kym08f28mn741ik7m1y6yjj"; depends=[base64enc base64url cli digest fastmap future future_apply jsonlite progressr R6 Rcpp RcppParallel rlang rstudioapi shiny startup stringr synchronicity]; };
   diptest = derive2 { name="diptest"; version="0.76-0"; sha256="10629vwn6r2949jjrmj5slbb5v0vnm3w0v8mrl7ws68m2sxmx2jh"; depends=[]; };
@@ -8312,7 +8329,7 @@ in with self; {
   directotree = derive2 { name="directotree"; version="1.0.0"; sha256="1yv703mb3fnvjxr2rrxvb8x869hbbjx4l94qbbsmy0ssknayq60y"; depends=[collapsibleTree data_tree]; };
   dirichletprocess = derive2 { name="dirichletprocess"; version="0.4.0"; sha256="1gspaynxq5czvnpni57swcqqy17lryjlh3cn9x0mghl527rkbpna"; depends=[ggplot2 gtools mvtnorm]; };
   dirmcmc = derive2 { name="dirmcmc"; version="1.3.3"; sha256="117p3jvinmha7a2phcpzq38ig05kcranp15xbxqvv0cgh3c95fjr"; depends=[mcmcse]; };
-  dirmult = derive2 { name="dirmult"; version="0.1.3-4"; sha256="1r9bhw1z0c1cgfv7jc0pvdx3fpnwplkxwz8j8jjvw14zyx803rnz"; depends=[]; };
+  dirmult = derive2 { name="dirmult"; version="0.1.3-5"; sha256="05whzhl81nyag7321hw98xa63r440s9bgj1764346yvm9bvzjqi4"; depends=[]; };
   disaggR = derive2 { name="disaggR"; version="1.0.3.1"; sha256="1nl19kr14i73c165nagb8crhzn8yr18q21f2i7508n90yl61cnfk"; depends=[RColorBrewer]; };
   disaggregation = derive2 { name="disaggregation"; version="0.1.3"; sha256="04wmwwhmcgi1cdr8iyhilsphpzb7r5xs04vhqx5z01y7cgardivx"; depends=[cowplot doParallel dplyr foreach ggplot2 maptools Matrix raster RcppEigen rgdal rgeos sp sparseMVN splancs TMB]; };
   disastr_api = derive2 { name="disastr.api"; version="1.0.5"; sha256="1h5i6pwak16w0gdk8qjz4w9qpffjhzlsrvjkb4acrvgjgrsvz9kp"; depends=[httr jsonlite]; };
@@ -8323,7 +8340,7 @@ in with self; {
   discharge = derive2 { name="discharge"; version="1.0.0"; sha256="1hwsdrbajmpfdc9arb1pjhx2w45dy3zrba9ibcrnpyqhhr4i1c5m"; depends=[boot checkmate CircStats ggplot2 lmom]; };
   disclap = derive2 { name="disclap"; version="1.5.1"; sha256="0qsycr04xz1h90jyzxwagfkc4rkc8mb9srasvhrp7grynjxlbb9f"; depends=[]; };
   disclapmix = derive2 { name="disclapmix"; version="1.7.3"; sha256="0hh20ff3szh9s9r1hdymk73ysn0v5lh2gfzgqpvfvdhcc5z8xjk7"; depends=[cluster disclap MASS Rcpp RcppProgress]; };
-  discnorm = derive2 { name="discnorm"; version="0.1.1"; sha256="0qqnn9dcsd3wxg358mrri91j913alb2hclj3xl305r6b5dmg1g1m"; depends=[arules lavaan MASS pbivnorm sirt]; };
+  discnorm = derive2 { name="discnorm"; version="0.2.0"; sha256="08pgn5lr7qr2i2iyyrpivibd4mr9p5dgg0agbdqgzk5zjchhpk4a"; depends=[arules copula cubature GoFKernel lavaan MASS mnormt pbivnorm sirt]; };
   disco = derive2 { name="disco"; version="0.6"; sha256="1abvhf0yb4mw02j1krjb7q68jpwdnl2narcalf3vkjcbflcp76z3"; depends=[ggplot2 RColorBrewer tmod]; };
   discord = derive2 { name="discord"; version="1.1.0"; sha256="0is9gwj09zj25hklsxgi3k7ypq2qp2yx0vir6wgpnd30wa11zs5h"; depends=[]; };
   discourseGT = derive2 { name="discourseGT"; version="1.1.7"; sha256="1nfc1v39y4af5l4zmp00dhp4bzp10wq107gx5ggrvpq9q2nn4hwd"; depends=[dplyr GGally ggplot2 ggrepel igraph network]; };
@@ -8336,7 +8353,6 @@ in with self; {
   discretization = derive2 { name="discretization"; version="1.0-1"; sha256="00vq2qsssnvgpx7ihbi9wcafpb29rgv01r06fwqf9nmv5hpwqbmp"; depends=[]; };
   discrim = derive2 { name="discrim"; version="0.2.0"; sha256="1w8ji9wj2wm8gvzi3w78dcf6jabjzn32hf2saiz1mybix63rpqxd"; depends=[dials parsnip purrr rlang tibble withr]; };
   disdat = derive2 { name="disdat"; version="1.0-0"; sha256="1q8v40m0vjni3kx0f04qb99adxcx783p9lfixvvq6viz13v1ygcw"; depends=[]; };
-  diseasemapping = derive2 { name="diseasemapping"; version="1.5.1"; sha256="0pqilkl56753j1fxy6mh7nx24n6qg2j5faxyxj6abcm6xrnkhmy9"; depends=[rgeos sp]; };
   diseq = derive2 { name="diseq"; version="0.4.3"; sha256="1dfcgw1qzw2fax5vzw9fjh72hnim2n4d3wa3nd616vx6ydly216l"; depends=[bbmle dplyr Formula magrittr MASS Rcpp RcppGSL RcppParallel rlang systemfit tibble tidyr]; };
   disk_frame = derive2 { name="disk.frame"; version="0.7.2"; sha256="016sxjvbw8j6inwr1y66hck1dzpnjr79v2fiiylcpgdnc39hc0hn"; depends=[arrow benchmarkme bigreadr bit64 crayon data_table dplyr fs fst future future_apply globals glue jsonlite pryr purrr Rcpp rlang stringr]; };
   diskImageR = derive2 { name="diskImageR"; version="1.0.0"; sha256="1r19k5fdjn6vkn11p5df77fnxfqaz3nciiaai0f3pr2bgpfppzka"; depends=[subplex zoo]; };
@@ -8349,7 +8365,7 @@ in with self; {
   disposables = derive2 { name="disposables"; version="1.0.3"; sha256="0q5wacjclspn2fh7z1pg2l67ll51n75wck5h2fdq2vxy3qn3vwis"; depends=[]; };
   dispositionEffect = derive2 { name="dispositionEffect"; version="1.0.0"; sha256="0vx87xylpx3np6afwwylzwp0nb9g8r04ngn8mgr88ycys815fkqw"; depends=[dplyr lubridate magrittr progress purrr rlang]; };
   disprofas = derive2 { name="disprofas"; version="0.1.3"; sha256="16gbd9algrs6pqid8k96p9r9pzfy337jv506alnajvwirs59sldd"; depends=[boot ggplot2]; };
-  disprose = derive2 { name="disprose"; version="0.1.5"; sha256="0drnqpgmisavy9rqk3p0f1safw4fshpjn9lq3vjay4k5s8dg37h7"; depends=[]; };
+  disprose = derive2 { name="disprose"; version="0.1.6"; sha256="0jmn8xjwfr3dhrsmx3lq8kz7lq9pnk95mgr97gi72c86c7rap935"; depends=[]; };
   dissCqN = derive2 { name="dissCqN"; version="0.1.0"; sha256="142f4ggzwdhf2vm9kisayna9a5j17mmy2jckhjrvxh4k5dc3ssf6"; depends=[]; };
   dissUtils = derive2 { name="dissUtils"; version="1.0"; sha256="00fzlmkdfw2s3k824wp2pk3v7cvxnywi1hfp86g4mm95z2qlw9br"; depends=[]; };
   dissever = derive2 { name="dissever"; version="0.2-3"; sha256="1lgs5nmv3lpm4gsryxvcwiwibvvg9flv23q8maisp77x49c18qcp"; depends=[boot caret dplyr foreach magrittr plyr raster sp viridis]; };
@@ -8367,7 +8383,7 @@ in with self; {
   disto = derive2 { name="disto"; version="0.2.0"; sha256="09pafy8y1ifgglqmal32dy34acx06ypsq2bgwsn6fjiqr9kw401j"; depends=[assertthat broom dplyr factoextra fastcluster fastmatch ggplot2 pbapply proxy tidyr]; };
   distory = derive2 { name="distory"; version="1.4.4"; sha256="1ljrs91h4v1h5lb295hjki8bmra2lg3d1bn5x731pnv43pf3ck06"; depends=[ape]; };
   distr = derive2 { name="distr"; version="2.8.0"; sha256="1dyff4m33xmw6hxb3jxzr8vvajg3qz3rfcrfxjxwsswlddfz0zdv"; depends=[MASS sfsmisc startupmsg]; };
-  distr6 = derive2 { name="distr6"; version="1.6.7"; sha256="0drk81lhmfx199pb5vq5chbxcm8774iqyzw605pj6n2jcz09zhq2"; depends=[checkmate data_table param6 R6 Rcpp set6]; };
+  distr6 = derive2 { name="distr6"; version="1.6.9"; sha256="1vl8xg0r0g169xdx6prnfpfr1jnn8mc4daayrzpws4my2dc59dqh"; depends=[checkmate data_table ooplah param6 R6 Rcpp set6]; };
   distrDoc = derive2 { name="distrDoc"; version="2.8.0"; sha256="1iq2gbfbsf3h279yh3fnqsi39gdw15vc6r1g33xcb8kgmmqmvf0p"; depends=[distr distrEx distrMod distrSim distrTeach distrTEst MASS RandVar startupmsg]; };
   distrEllipse = derive2 { name="distrEllipse"; version="2.8.0"; sha256="1ymfa8xpgs8zjp4psiwmll5z0vji496fivxmcavspzxy31cw70wx"; depends=[distr distrEx distrSim mvtnorm setRNG startupmsg]; };
   distrEx = derive2 { name="distrEx"; version="2.8.0"; sha256="1gwhsnlrnzyp2x97d9wfdy5pa9z3q5il934wjv4kxs9wsvkwsr5h"; depends=[distr startupmsg]; };
@@ -8382,7 +8398,7 @@ in with self; {
   distributions3 = derive2 { name="distributions3"; version="0.1.2"; sha256="098da9lyimwrnyxqqnssm87lg8c7nbmcbwbjpwdwvvyq2xjzc0my"; depends=[ellipsis ggplot2 glue]; };
   distributionsrd = derive2 { name="distributionsrd"; version="0.0.6"; sha256="0ykzxcxh5l9l5z3546iqlllryw2xyixz1hiynx19k8bsn8k7dxyp"; depends=[flexmix modeltools Rdpack]; };
   distro = derive2 { name="distro"; version="0.1.0"; sha256="03b8mkjhxxh93675mmj443a83mgfwhkdar7dfbf3agf6aqnadn2g"; depends=[]; };
-  distrom = derive2 { name="distrom"; version="1.0"; sha256="0wylw7yaylf5j8cy8g45jrw91mwx6w0i7vf9ysnj5kxyznq1gl6y"; depends=[gamlr Matrix]; };
+  distrom = derive2 { name="distrom"; version="1.0.1"; sha256="1j8k8cgh5r8av8jf8miq858j66hmkkcdjqhia77iivx97fg9pcjk"; depends=[gamlr Matrix]; };
   distrr = derive2 { name="distrr"; version="0.0.6"; sha256="04lhrc92y6dqnfpqlmynjvn2dndzkknnvwsr5pf73dfpgv7n3s1f"; depends=[dplyr magrittr rlang tidyr]; };
   disttools = derive2 { name="disttools"; version="0.1.8"; sha256="1jm3nqyywdzpbfvk2mffmhp75al1hcvd5l4r21fbd3iz2anll0ma"; depends=[]; };
   dittodb = derive2 { name="dittodb"; version="0.1.3"; sha256="0wkiy3vgqrpmc34hxw30rfgg01d941gxz8fr2h9i9gvddnxnywdc"; depends=[DBI digest glue lifecycle testthat]; };
@@ -8407,15 +8423,15 @@ in with self; {
   dlib = derive2 { name="dlib"; version="1.0.3.1"; sha256="1rchl4f3zj0azz8d4n139daba2gz6vnm60jq45vgc9gphk2mrnnb"; depends=[Rcpp]; };
   dlm = derive2 { name="dlm"; version="1.1-5"; sha256="1aksm66sfa7ipl5xgs4j5giac7q2m744wjl40mva56xn6i674h4r"; depends=[]; };
   dlnm = derive2 { name="dlnm"; version="2.4.7"; sha256="0mbww28n95vnd6wrn1b4mfsdvnyffa8mr6ws4jqmqdc23nydl9p4"; depends=[mgcv nlme tsModel]; };
-  dlookr = derive2 { name="dlookr"; version="0.5.4"; sha256="0qsw9vbzjnfbi9lipph2xyfvldrwjg3mhxxsikmm2kk1m6fmf59x"; depends=[dplyr ggplot2 gridExtra hrbrthemes htmltools kableExtra knitr mice pagedown partykit purrr reactable rlang rmarkdown shiny showtext sysfonts tibble tidyr tidyselect]; };
+  dlookr = derive2 { name="dlookr"; version="0.5.5"; sha256="0p7capcj3q6am54bhxbvb3fxv9iwgyjkx8r7zy1bpb5wpbkbq8ak"; depends=[dplyr ggplot2 gridExtra hrbrthemes htmltools kableExtra knitr mice pagedown partykit purrr reactable rlang rmarkdown shiny showtext sysfonts tibble tidyr tidyselect]; };
   dlr = derive2 { name="dlr"; version="1.0.1"; sha256="13gr8rk8igbypq9mg00pyk2pjczxr1ghkj5287gijxnxch7zdknc"; depends=[digest fs rappdirs rlang]; };
   dlsem = derive2 { name="dlsem"; version="2.4.6"; sha256="1h3bwqqpfjkl41b2mbfhsj0pi9kri0h0i28wiid6arjrmm87nsf8"; depends=[graph Rgraphviz]; };
   dlstats = derive2 { name="dlstats"; version="0.1.4"; sha256="1j415v3kajn269md046b05pwklqwm4rwk2f7q3mwax9yx4m5nc0n"; depends=[ggplot2 jsonlite magrittr RColorBrewer scales]; };
   dm = derive2 { name="dm"; version="0.2.7"; sha256="1fh34vgpr8w1kr7w667mzalg014lm1h82jr3gl1w0s5x93w3qi06"; depends=[backports cli DBI dplyr ellipsis glue igraph lifecycle magrittr memoise pillar purrr rlang tibble tidyr tidyselect vctrs]; };
   dma = derive2 { name="dma"; version="1.4-0"; sha256="003snr09hazszwqnvjrbv8vyz6ihgcfcfhrlshg451dddn920615"; depends=[MASS]; };
-  dmacs = derive2 { name="dmacs"; version="0.1.0"; sha256="1prw6h8sj6fcpajg6xwqhi8v5jfl74mbjdjrdy524miw56fh9h0r"; depends=[lavaan MplusAutomation]; };
   dmai = derive2 { name="dmai"; version="0.4.0"; sha256="0ma89jl0l598sffpikvjj40f2djjcnjq29k6y1bav4dm2g51qgmq"; depends=[dplyr ggplot2 magrittr stringr tibble tidyr]; };
   dmbc = derive2 { name="dmbc"; version="1.0.0"; sha256="0hfcc12v73c0x11jvp0pm2ddm2qd1fdv8667k67r7d1zi0cp2i5g"; depends=[abind bayesplot coda ggplot2 ggrepel MCMCpack modeltools pcaPP Rcpp RcppArmadillo RcppProgress robustbase]; };
+  dmdScheme = derive2 { name="dmdScheme"; version="1.3.1"; sha256="1h7gbgjpwrlz2lhicikkzl9xya5iz4dg019snnkb403nmy8p00kf"; depends=[digest EML knitr magrittr rappdirs readxl rlang rmarkdown stringr writexl xml2 yaml]; };
   dml = derive2 { name="dml"; version="1.1.0"; sha256="0z1dalgxh5nhrac49vh60d5awzjylc8b8mn5fk379c324milm59l"; depends=[lfda MASS]; };
   dmlalg = derive2 { name="dmlalg"; version="1.0.2"; sha256="1ixjpalg3q0wnddrli6v66kky3pxf90sjgiia8jhk4nds0h58a72"; depends=[glmnet lme4 matrixcalc randomForest]; };
   dmm = derive2 { name="dmm"; version="2.1-7"; sha256="0zn7d2lr2vig8q6h5dd5zk7ra1f0mkm6pszl3v06aghcflg63ng3"; depends=[MASS Matrix nadiv pls robustbase]; };
@@ -8430,13 +8446,13 @@ in with self; {
   dnr = derive2 { name="dnr"; version="0.3.5"; sha256="16s06jvwmvhxgvrmfav1xfszjrn7j2cm4jw5xyx6w5lb5434kzcq"; depends=[arm ergm glmnet igraph network sna]; };
   do = derive2 { name="do"; version="2.0.0.0"; sha256="16c6ksdas678k1285vk526ga3qkfb658nq4j5z9safjkyl1d5lrp"; depends=[crayon data_table desc httr openxlsx plyr reshape2 rstudioapi rvest stringr tidyr tidyselect tmcn usethis xml2]; };
   doBy = derive2 { name="doBy"; version="4.6.12"; sha256="1m60ya4cdickqsj0dc90bv4n47df6qg6n82fikxrkl4yhg7yyn1i"; depends=[broom Deriv dplyr ggplot2 magrittr MASS Matrix microbenchmark pbkrtest tibble]; };
-  doFuture = derive2 { name="doFuture"; version="0.12.0"; sha256="1hqzdlgcrc5l6xjwdylsc9iiysi2wx8k1j1vmw3wryj26057c9y4"; depends=[foreach future globals iterators]; };
+  doFuture = derive2 { name="doFuture"; version="0.12.1"; sha256="0fhk32ih9cbwxw3mvkddqjv0dsaw9xk8qjdslfcabvmixhnh3s6m"; depends=[foreach future globals iterators]; };
   doMC = derive2 { name="doMC"; version="1.3.8"; sha256="18qrcvqwm4cclvk8spvyi281y8prwzivj52xmzk1l9a82j2ny65j"; depends=[foreach iterators]; };
   doMIsaul = derive2 { name="doMIsaul"; version="1.0.1"; sha256="17a363gj8hsdpga6b07c4lzrswgf553dfqxacv2jfx0rswxnrsb0"; depends=[aricode arules clusterCrit dplyr ggplot2 Gmedian MASS mice NbClust ncvreg plyr scales survival withr]; };
   doMPI = derive2 { name="doMPI"; version="0.2.2"; sha256="0ahwm17p3gq1yvc8v6sr6sb8z7i6zws8d1pf46qynl0gd4amg938"; depends=[foreach iterators Rmpi]; };
   doParallel = derive2 { name="doParallel"; version="1.0.17"; sha256="1mxbg2qqda1775vb4s26gz27p5n91lljgjmlqxq4sras22njasmr"; depends=[foreach iterators]; };
   doRNG = derive2 { name="doRNG"; version="1.8.2"; sha256="1jff27zzrvd1fd61x2m9468h8xn3s1c9f6wibviy5zdhj5dx9s9k"; depends=[foreach iterators rngtools]; };
-  doRedis = derive2 { name="doRedis"; version="3.0.0"; sha256="05xvan8djif0mkvk32lg20ffrb6x013a5ia1wc1k0g5n4jkg6rs4"; depends=[foreach iterators redux]; };
+  doRedis = derive2 { name="doRedis"; version="3.0.1"; sha256="1i04kpf24aafs2c7qd74ms2q6093in1x75vlpiw3pwprl6cwkb11"; depends=[foreach iterators redux]; };
   doSNOW = derive2 { name="doSNOW"; version="1.0.20"; sha256="1f5v0k2w0b2478p6iqa3hn2lwd1x3rzc348n57nd38ka2vnsnz4i"; depends=[foreach iterators snow]; };
   dobin = derive2 { name="dobin"; version="1.0.2"; sha256="1vhvwdl7a8bf4q64jz8a6afm3smdn3jgxvs17jjlilarpdazl3p5"; depends=[pracma RANN]; };
   dobson = derive2 { name="dobson"; version="0.4"; sha256="0xfn7s3wzrv1md40bdjrnjfiqyxg5c6lrcpnvayjdgrhxq161hhq"; depends=[]; };
@@ -8452,11 +8468,11 @@ in with self; {
   docstring = derive2 { name="docstring"; version="1.0.0"; sha256="19z5frhxbdc5c4vrkckgqbh9mx4d9w1icw8szsw9yadvbg48nlhl"; depends=[roxygen2]; };
   docuSignr = derive2 { name="docuSignr"; version="0.0.3"; sha256="0q90z31svbdnvylfr0yj2f0gahvpi089c1d5llvwqy8qc5p9fbqw"; depends=[httr jsonlite magrittr]; };
   documair = derive2 { name="documair"; version="0.6-0"; sha256="1pphcbx90n9xn8a7gvfrwzfapwqgpbl3gg2grm7chfxgcp7i99i2"; depends=[]; };
-  document = derive2 { name="document"; version="3.3.2"; sha256="1abkgady7viqmip5080hwrl0jv1279xzj7qak0jvs0zhqq2zkn0z"; depends=[callr checkmate desc rcmdcheck roxygen2 rstudioapi withr]; };
+  document = derive2 { name="document"; version="3.3.3"; sha256="1gbfmy4nvnxrfazpi17v33afhpvgkmk54p74dpf4jvl2ria0byn7"; depends=[callr checkmate desc rcmdcheck roxygen2 rstudioapi withr]; };
   documenter = derive2 { name="documenter"; version="0.1.1"; sha256="0y6zrvmb9bhc1ni4v89h9pq5ara8p2v4b35ylasia5s9x1y93mcp"; depends=[htmltools magrittr officer xml2 yaml]; };
   docxtools = derive2 { name="docxtools"; version="0.2.2"; sha256="0ds8qy21x7cq9qmnn6gggzf8kxdphq7nf2mx5gqx829zgkripsfq"; depends=[dplyr ggplot2 lubridate purrr rlang stringr tidyr]; };
   docxtractr = derive2 { name="docxtractr"; version="0.6.5"; sha256="1kki49g0sfhbx2d4swrkv21akws8ayrsd4h3v148xmzdlsrvhhiw"; depends=[dplyr httr magrittr purrr xml2]; };
-  dodgr = derive2 { name="dodgr"; version="0.2.12"; sha256="14xi3zl8ndz7ij7617cz97s2q6v7dc78vbxd1bwyfq58zn71picn"; depends=[callr digest magrittr osmdata Rcpp RcppParallel RcppThread]; };
+  dodgr = derive2 { name="dodgr"; version="0.2.13"; sha256="135f76jlj18lm6fpn1k4vjc1vh8v41ww43rrbqjbm1k4gfgqqah5"; depends=[callr digest fs magrittr osmdata Rcpp RcppParallel RcppThread]; };
   doebioresearch = derive2 { name="doebioresearch"; version="0.1.0"; sha256="1rmvb6pa71frvjszpsjaw3ahm70kyykrq6zfjqk8smgcg397k9pi"; depends=[agricolae]; };
   doex = derive2 { name="doex"; version="1.2"; sha256="1r999z30ipa04pgck0hfalqxihb1bj8sdhlkkhf4plb7maaz3qm3"; depends=[]; };
   dominanceanalysis = derive2 { name="dominanceanalysis"; version="2.0.0"; sha256="0qxldvlgbysy9j17kb0a9p132a04a4j12h4m0r70zv2752fj24c0"; depends=[]; };
@@ -8486,7 +8502,7 @@ in with self; {
   downscaledl = derive2 { name="downscaledl"; version="1.0"; sha256="0lqxngzpxj65b48j5w0n8dg6fp4lgg5zpgxc2wj6d9wh5f97l71b"; depends=[dplyr keras magrittr raster Rcpp RcppArmadillo rgdal rstack sp tensorflow]; };
   downsize = derive2 { name="downsize"; version="0.2.2"; sha256="18b9shd79z0bsdnp0apqqwv6c73j4wnfiv41ywqz761nmxbldxbn"; depends=[magrittr R_utils]; };
   dowser = derive2 { name="dowser"; version="0.1.0"; sha256="1k85m4xm1kkkzk19kxim83i3pbl22mz2lql4cw0ml7wmx0m1pva9"; depends=[alakazam ape Biostrings dplyr ggplot2 ggtree gridExtra markdown phangorn phylotate RColorBrewer rlang shazam stringr tidyr tidyselect]; };
-  dparser = derive2 { name="dparser"; version="1.3.1-4"; sha256="1rjbli5ii5l6cpj3ah6r7cyqzdw0fm2qmr4kkw8cv02zryw0y8za"; depends=[digest]; };
+  dparser = derive2 { name="dparser"; version="1.3.1-5"; sha256="0xb2mjgmhn91jyragxscq6p41wa59119w5m138q523zi1ca8q1jc"; depends=[digest]; };
   dpcc = derive2 { name="dpcc"; version="1.0.0"; sha256="1f4c68bvkwg82k1zanjhqqika2bfjv83mbr2khl5lhvfjwvpi1m0"; depends=[Rcpp]; };
   dpcid = derive2 { name="dpcid"; version="1.0"; sha256="1gx8gyrxvm07mjiasl0b80y0x3crq6gy170v6s817d11jw44n86z"; depends=[]; };
   dplR = derive2 { name="dplR"; version="1.7.2"; sha256="1g57azixwv3c6x60l1kqdnzylf0ayv3s15wi0av2qcca35z3baa1"; depends=[digest lattice Matrix matrixStats plyr png R_utils signal stringi stringr XML]; };
@@ -8530,20 +8546,18 @@ in with self; {
   drord = derive2 { name="drord"; version="1.0.1"; sha256="0xi85s6y78d54qv3cw7q72dz5kcs8cc8nyjyaxr5h6pfpzi2l8i9"; depends=[ggplot2 MASS ordinal VGAM]; };
   drought = derive2 { name="drought"; version="1.1"; sha256="1i064bg7b29agnj2cq5gl61z12xx1a3lkzfg31sly3alzpvciwr9"; depends=[copula corrplot]; };
   drpop = derive2 { name="drpop"; version="0.0.3"; sha256="1gh0w1a59070g9mmck4fp9591vfw23c5nlj3jrkxwarp4vfy1dqp"; depends=[dplyr gam ggplot2 janitor nnet nnls ranger reshape2 stringr SuperLearner tidyr]; };
-  drtmle = derive2 { name="drtmle"; version="1.1.0"; sha256="08a6k0nrg6mqdslwjc71583x52vnax87nbfalk98zczwvrrdwvxa"; depends=[future_apply np SuperLearner]; };
   drugprepr = derive2 { name="drugprepr"; version="0.0.4"; sha256="07401dqw4krqh3rv7y13526n0xjdlaw14gcxwranksjchmqjd3ij"; depends=[DescTools doseminer dplyr purrr rlang sqldf stringr tidyr]; };
   drumr = derive2 { name="drumr"; version="0.1.0"; sha256="09xi3sf424bpq10fq25j209dylfbi1lfd911r44ffadkxzvp5p1s"; depends=[audio stringr]; };
   ds = derive2 { name="ds"; version="4.0"; sha256="1iic5fb27cnhsa83zg28hydrhzc01i9z0711xvk95c3gv7mbfp2p"; depends=[]; };
-  ds4psy = derive2 { name="ds4psy"; version="0.7.0"; sha256="1dyylnx2lsdvsv9cydjp4qm1dgn4lv44afr2hplqyi45jmmzy8mm"; depends=[ggplot2 unikn]; };
+  ds4psy = derive2 { name="ds4psy"; version="0.8.0"; sha256="1yrg25jhqvkar7bvp9qs2rvkn64p3lnz5w2s4gnn543hbj329ba2"; depends=[ggplot2 unikn]; };
   dsa = derive2 { name="dsa"; version="1.0.12"; sha256="16lqqm0lcgpkzkj7d0akamzap85aj4dyj5rs5fkb5b9bjqa5r4c5"; depends=[dygraphs forecast ggplot2 gridExtra htmlwidgets R2HTML reshape2 rJava seastests timeDate tsoutliers xts zoo]; };
   dsample = derive2 { name="dsample"; version="0.91.2.2"; sha256="18c0zxaqwgbn9kmkwlnicwd74ljy2sxj0b9ksif13pdlj3zn57h1"; depends=[MASS]; };
-  dsb = derive2 { name="dsb"; version="0.3.0"; sha256="0b7da10i45vxik2mbxb9bjwkhw62nafh09j8qixx4nc1j5a7dp3f"; depends=[limma magrittr mclust]; };
+  dsb = derive2 { name="dsb"; version="1.0.1"; sha256="1nc4xbc5asz9h7n3x2svd8552bnqz52c972gmy586xyw1vv5c059"; depends=[limma magrittr mclust]; };
   dscore = derive2 { name="dscore"; version="1.4.0"; sha256="0vjrxdgss79pmd8vkarvgqqm465byz17r7r93k5i3923xm02kavr"; depends=[dplyr Rcpp RcppArmadillo stringr tidyr tidyselect]; };
   dse = derive2 { name="dse"; version="2020.2-1"; sha256="170rxrniszs8h59ah4mn4mz8d7kzix4g3vlz4icd8w6bl40c6ykc"; depends=[setRNG tfplot tframe]; };
-  dsims = derive2 { name="dsims"; version="0.2.0"; sha256="1yj6rk6wvxhwzfrbvy5ljsp94pfxrf9vwaccr9gbffg0b3c1badb"; depends=[Distance dssd ggplot2 gridExtra mgcv mrds rgeos rlang rstudioapi sf sp]; };
   dslabs = derive2 { name="dslabs"; version="0.7.4"; sha256="05v51rckpfjz2cbms250sv0q34l0ip841w9ardvs51s2x7r8qypc"; depends=[ggplot2]; };
   dslice = derive2 { name="dslice"; version="1.2.0"; sha256="1k9hxpmr563p8bpd9m991lx5ig366mzk9j1lzldci9pq4jiayin1"; depends=[ggplot2 Rcpp scales]; };
-  dsm = derive2 { name="dsm"; version="2.3.1"; sha256="0flmbypplk99n3b3lkai2lz162w4bnizw2bpdk91db53w2jfp3i9"; depends=[ggplot2 mgcv mrds nlme numDeriv plyr statmod]; };
+  dsm = derive2 { name="dsm"; version="2.3.2"; sha256="1db4z7mchf5zfwz7rhimx727sqzj8yimh7wsw9f4qzyla776ll9i"; depends=[ggplot2 mgcv mrds nlme numDeriv plyr statmod]; };
   dsmisc = derive2 { name="dsmisc"; version="0.3.3"; sha256="19760hcb5154rayhj72r48r7glh2qyaf178zkxplywmsw338kws4"; depends=[Rcpp stringr]; };
   dsos = derive2 { name="dsos"; version="0.1.0"; sha256="00m31l38q6i2m5p9k2x0d6n0b8hyvpgv6b5n8s8069zannqx8fgz"; depends=[data_table ggplot2 isotree ranger scales simctest WeightedROC]; };
   dsrTest = derive2 { name="dsrTest"; version="0.2.1"; sha256="1kljlfi7jf6fa8b5f3wxjsa9rlmzcp4qix3m2qyapz2lqd85mbb7"; depends=[asht exactci loglognorm]; };
@@ -8551,24 +8565,24 @@ in with self; {
   dst = derive2 { name="dst"; version="1.5.1"; sha256="08cw09hf5jx1qfmrqmhm4713gzq21p0ss3nx7qrs92mpsvprq3yc"; depends=[]; };
   dstat = derive2 { name="dstat"; version="1.0.4"; sha256="023jp0xdbg200ww1gnr3fzgjqd82acag0jps7q6j6m27q11psvgz"; depends=[]; };
   dtangle = derive2 { name="dtangle"; version="2.0.9"; sha256="0yg1fbrqixqp93vdw3grvz1la5l2kidgs730qp6yihkp3260cxf3"; depends=[DEoptimR]; };
-  dtgiw = derive2 { name="dtgiw"; version="0.1.0"; sha256="0iamvnf8s19wxs1wddzag4sgg6dhcplgj4gz8z2zalskpx02ss11"; depends=[]; };
+  dtgiw = derive2 { name="dtgiw"; version="1.0.0"; sha256="1902rhfrnmp3550c6sqfrzs7xrrjpym0zpqhfnlffdnn42cp910r"; depends=[]; };
   dti = derive2 { name="dti"; version="1.5.1"; sha256="08da7v7sl88g2jixfplvw9rc5rvlifq3fvyrgh9naa5jsmd8h5ia"; depends=[adimpro aws awsMethods gsl oro_dicom oro_nifti quadprog rgl]; };
   dtp = derive2 { name="dtp"; version="0.1.0"; sha256="0qy8nrbq22bfbajkxq6blkq7583pc5mb392gmqb3c9daxmqn42vb"; depends=[Formula gtools plyr]; };
   dtpcrm = derive2 { name="dtpcrm"; version="0.1.1"; sha256="0k25fm0z3snpx1v2kwd50svgnkjhn5c0hy1gnlw2lif6rjz1fzd9"; depends=[dfcrm diagram]; };
   dtplyr = derive2 { name="dtplyr"; version="1.2.1"; sha256="1wyhhn16mvdj55k2xsh7vy489l7xk4mkz7pjrw16z87awk6yjh16"; depends=[crayon data_table dplyr ellipsis glue lifecycle rlang tibble tidyselect vctrs]; };
-  dtrSurv = derive2 { name="dtrSurv"; version="1.2"; sha256="104hz8nqn02rk2wg15j4qap7r7cq4162agjaflv2dxmyb9zj0cb2"; depends=[survival]; };
+  dtrSurv = derive2 { name="dtrSurv"; version="1.3"; sha256="08d90a8ladwnn7g0chsghwh20p3r285bqsyn3nrdacf83y7lr9k1"; depends=[survival]; };
   dtree = derive2 { name="dtree"; version="0.4.2"; sha256="1cpv0pyf515610djxzfw1c83p3alk5a93clg4x9gk7a7qy4cyhr1"; depends=[caret evtree party partykit rpart]; };
   dtt = derive2 { name="dtt"; version="0.1-2"; sha256="0n8gj5iylfagdbaqirpykb01a9difsy4zl6qq55f0ghvazxqdvmn"; depends=[]; };
   dttr2 = derive2 { name="dttr2"; version="0.4.0"; sha256="1a7fmby2bassj3wnx2wk3c4fzzx63saw3963kfs6pq58cbwpqk09"; depends=[chk hms lifecycle]; };
   dtts = derive2 { name="dtts"; version="0.1.0"; sha256="0jha4fpx7fi9xrw0677i07ip7ydrvyq8g2lfy8g80jkfy6d6pbdd"; depends=[bit64 data_table nanotime Rcpp RcppCCTZ RcppDate]; };
   dtw = derive2 { name="dtw"; version="1.22-3"; sha256="004gm4mzgdzdj807j3bwqsv5lizmnmz5jq514bdjshhkysnzjz6z"; depends=[proxy]; };
   dtwSat = derive2 { name="dtwSat"; version="0.2.7"; sha256="16crcvwj1s45gkg1gl6blll64wf4676qmzrx0kv55sylq0rjlxhf"; depends=[caret data_table dtw ggplot2 lubridate mgcv plyr proxy raster RColorBrewer Rdpack reshape2 rgdal scales sp xtable zoo]; };
-  dtwclust = derive2 { name="dtwclust"; version="5.5.8"; sha256="11kyppfhcw6p9dw8mp1rxj1ba293v0dlcw8r32zz9ji2lmnixv6n"; depends=[clue cluster dplyr dtw flexclust foreach ggplot2 ggrepel Matrix proxy Rcpp RcppArmadillo RcppParallel RcppThread reshape2 RSpectra shiny shinyjs]; };
+  dtwclust = derive2 { name="dtwclust"; version="5.5.9"; sha256="0nd3m1y89pq7chrdzcnf86kiwzb27c8lxg5gy2v50249k6zsbapf"; depends=[clue cluster dplyr dtw flexclust foreach ggplot2 ggrepel Matrix proxy Rcpp RcppArmadillo RcppParallel RcppThread reshape2 RSpectra shiny shinyjs]; };
   dual = derive2 { name="dual"; version="0.0.3"; sha256="1alxh9mj610m7wgr6a97mpzy5ia9vzckhz6wmxyix7xh9mzbn1gw"; depends=[]; };
   dualtrees = derive2 { name="dualtrees"; version="0.1.4"; sha256="05mxwiwnv48jf6ya5qmfc7g2w8wkzhk56k9g0gr2m4cpfab7d5h2"; depends=[]; };
   duawranglr = derive2 { name="duawranglr"; version="0.6.7"; sha256="0hxmvyl81xlp3vv1w7462cjfa9hdz5lki0p5pn0ik7dv5aap3wbq"; depends=[digest dplyr haven readr readxl]; };
   dub = derive2 { name="dub"; version="0.2.0"; sha256="066lzyk44380mf17vx4db4a3a4rs7zl85mj5hjg172khjbqnbixw"; depends=[]; };
-  duckdb = derive2 { name="duckdb"; version="0.3.2-1"; sha256="1z0zpw4aqr21lwsdb9c8rj8nmnd2xh7cbwqiv3mlmrl0xn6jgjxs"; depends=[DBI]; };
+  duckdb = derive2 { name="duckdb"; version="0.3.2-2"; sha256="0scsv5gyz71kdrwdjqjrfrrisn1ai3bm4dr514driw5mmjmq8dac"; depends=[DBI]; };
   duckduckr = derive2 { name="duckduckr"; version="1.0.0"; sha256="1wki8xvqp5hr27iafd9jbryl9faywfkdkpn0pa0afywbic39k2cm"; depends=[crul jsonlite]; };
   dumbbell = derive2 { name="dumbbell"; version="0.1"; sha256="0v0b4wbfskvcnzx10z9v4rf3mq8ccswz63pd6i1z7mggnwv38ps5"; depends=[data_table dplyr ggplot2 rlang rstatix tidyr tidyverse]; };
   dummies = derive2 { name="dummies"; version="1.5.6"; sha256="01f84crqx17xd6xy55qxlvsj3knm8lhw7jl26p2rh2w3y0nvqlbm"; depends=[]; };
@@ -8589,11 +8603,12 @@ in with self; {
   dydea = derive2 { name="dydea"; version="0.1.0"; sha256="15alr3f6wkkpjd5wmcjazi58yc8gwcqr662mjwlfg15r94fzqrlg"; depends=[Chaos01]; };
   dygraphs = derive2 { name="dygraphs"; version="1.1.1.6"; sha256="022j007mzfa9k2n31yg4aizcsf571vv3jip092h23rqj03rk3ly3"; depends=[htmltools htmlwidgets magrittr xts zoo]; };
   dyn = derive2 { name="dyn"; version="0.2-9.6"; sha256="16fqv9k7yxdgybwzafjkyqm16qpgqz13lcjpi6a1nc8xbzlzh0gb"; depends=[zoo]; };
+  dyn_log = derive2 { name="dyn.log"; version="0.4.0"; sha256="0vlzv6zy29qhygm77kww65wpnp77a93ja13vr4p2yyychrjspqx3"; depends=[crayon glue R6 rlang stringr yaml]; };
   dynBiplotGUI = derive2 { name="dynBiplotGUI"; version="1.1.6"; sha256="04026jz4vdyj2a2kry5kk5k84cy4vqqrcn328hxwnwh7r8i7klvn"; depends=[tcltk2]; };
   dynCorr = derive2 { name="dynCorr"; version="1.1.0"; sha256="0l5k764j1zhsqpgp0ndihah63hsk3zv9hviixfmh4h3i0sr0q52p"; depends=[lpridge]; };
   dynRB = derive2 { name="dynRB"; version="0.16"; sha256="07hbfnzyzsg290l6w953v5yh2dbmqr9jb20gnxf8zn7dcggkl6sq"; depends=[corrplot dplyr foreign ggplot2 RColorBrewer reshape2 vegan]; };
   dynaSpec = derive2 { name="dynaSpec"; version="1.0.1"; sha256="0wzfy50602wlsh4sbfjadsr01f3az2lvk5c4px3qmcvv5gybd6w0"; depends=[ari av gganimate ggplot2 magrittr NatureSounds pbapply png scales seewave tuneR viridis]; };
-  dynaTree = derive2 { name="dynaTree"; version="1.2-10"; sha256="1ng672mlv98xnsbd4xq70hxc8j158la4n63y46rw74granaz29ya"; depends=[]; };
+  dynaTree = derive2 { name="dynaTree"; version="1.2-12"; sha256="1cpx73fknlsfph2g9dlqhh76jk7mlxn9dj2i5fwv1l59sx608lzb"; depends=[]; };
   dynamAedes = derive2 { name="dynamAedes"; version="2.0.2"; sha256="0pxj09pz9l2p5g5r31a6jgw283xj12jh3j0x2s63lczj236agl97"; depends=[doParallel drc fields foreach insol raster slam sp]; };
   dynamac = derive2 { name="dynamac"; version="0.1.11"; sha256="0dzw4h128z53vwdpkikhxqil0xjrcjrp1zmz0fy2qhq0n74sdyar"; depends=[lmtest MASS]; };
   dynamic = derive2 { name="dynamic"; version="1.1.0"; sha256="15jxly44rj2x79jvps2ln0hrm1384p56yll9jk96w1vhaf3gbsxm"; depends=[dplyr ggplot2 lavaan magrittr patchwork purrr simstandard stringr tibble tidyr]; };
@@ -8652,7 +8667,7 @@ in with self; {
   easyPSID = derive2 { name="easyPSID"; version="0.1.2"; sha256="0npih5xpf2a5xw2iz68z9ckm8d4cpradzzdn50rdpg4gqvaq7azp"; depends=[foreign LaF stringr]; };
   easyPubMed = derive2 { name="easyPubMed"; version="2.13"; sha256="1wd8idyqz7kgygp34mjp2abx82775ry8l07vsqdlqnc6fdnvg55d"; depends=[]; };
   easySVG = derive2 { name="easySVG"; version="0.1.0"; sha256="03gl5gl0yqgpygd4kna79wrhflbnq3zrz3iq2i8hk9xqd83mszh3"; depends=[]; };
-  easySdcTable = derive2 { name="easySdcTable"; version="1.0.1"; sha256="0xhv812qwwfkv1g3fbz4kl6jxq2dwkgqr7w6ildhm7zlpqk40qaa"; depends=[Matrix sdcTable shiny SSBtools]; };
+  easySdcTable = derive2 { name="easySdcTable"; version="1.0.3"; sha256="05r8g9d7qp4naarpr1ipxk8vx4czg9yz3qkghj8abvkmwww838wn"; depends=[Matrix sdcTable shiny SSBtools]; };
   easyVerification = derive2 { name="easyVerification"; version="0.4.4"; sha256="08mih1arx01vj7cs1jsln644pcvslpyw1rgr6jmv2czr6xd8qb7d"; depends=[pbapply Rcpp SpecsVerification]; };
   easyalluvial = derive2 { name="easyalluvial"; version="0.3.0"; sha256="02l0jy3bwp3qrz6g5iknl2fsfqi6a6wzn8q18k8518xczlsn1gbd"; depends=[dplyr forcats ggalluvial ggplot2 ggridges gridExtra magrittr progress progressr purrr randomForest RColorBrewer recipes rlang stringr tibble tidyr]; };
   easyanova = derive2 { name="easyanova"; version="7.0"; sha256="1zpwh3r1r0n11hgqzph8f2aac44qb6rpnhk73hcblq0f9vs0an55"; depends=[nlme]; };
@@ -8676,20 +8691,20 @@ in with self; {
   ebal = derive2 { name="ebal"; version="0.1-6"; sha256="1cpinmbrgxxv0fzi9qi2inv4hw2lz7iq4b0ggp316rdqqb5bj9r0"; depends=[]; };
   ebci = derive2 { name="ebci"; version="1.0.0"; sha256="00fa2y4ha9nlbjd01qckrrn721s63ja61n5jr4wm7ac6y7xivb2i"; depends=[]; };
   ebdbNet = derive2 { name="ebdbNet"; version="1.2.6"; sha256="1qzwpr76nwvgylqdg7vhrbvh2lb1zrxx3g120yz156hhs4awv4kz"; depends=[igraph]; };
-  ebirdst = derive2 { name="ebirdst"; version="0.3.3"; sha256="05k388rsqjgia9jgnlq799l22zg10kvxs7l4b51kknrpqd5pis8d"; depends=[DBI dplyr fasterize gbm ggplot2 gridExtra jsonlite magrittr mgcv PresenceAbsence rappdirs raster rgdal rlang RSQLite sf stringr tidyr viridisLite xml2]; };
+  ebirdst = derive2 { name="ebirdst"; version="0.3.5"; sha256="0ykc2iqswjihw5hnghjnmgn13ssm5mv772vvzksjxy3sbvjvm9dp"; depends=[DBI dplyr fasterize gbm ggplot2 gridExtra jsonlite magrittr mgcv PresenceAbsence rappdirs raster rgdal rlang RSQLite sf stringr tidyr viridisLite xml2]; };
   ebmc = derive2 { name="ebmc"; version="1.0.1"; sha256="1z6s1blc2b6b13pk2sd6lcczdcldgjh65cnycjcw7d2g2hnxcifh"; depends=[C50 e1071 pROC randomForest rpart smotefamily]; };
   ebmstate = derive2 { name="ebmstate"; version="0.1.3"; sha256="04pg9yqbjrq10ai13c8zm8sy7spnf96ldbbql7qysjl91ljgrqz6"; depends=[HDInterval mstate Rcpp survival]; };
   ebnm = derive2 { name="ebnm"; version="1.0-9"; sha256="0izzfylcmq6zajngjyw85kbr8jys49qcgsadqkj85v2k1hg2jw7q"; depends=[ashr deconvolveR dplyr ggplot2 horseshoe magrittr mixsqp rlang truncnorm trust]; };
   ebreg = derive2 { name="ebreg"; version="0.1.3"; sha256="1xrs9afjd5hkdmhglj3md5i5hm7awlcdlccz3y2lw4c73lx31ywz"; depends=[lars Rdpack]; };
   ec50estimator = derive2 { name="ec50estimator"; version="0.1.0"; sha256="1zg4p1734q2jzifzfi2lf9wz3687s3cdn0yzkiwbc6w49mgdw877"; depends=[dplyr drc magrittr tibble tidyr]; };
-  ecap = derive2 { name="ecap"; version="0.1.2"; sha256="0d260y4phh1a7zlj2lgvdf7xd2z14l9djv7nrwa84pwqqyijc7rl"; depends=[ggplot2 quadprog]; };
   ecb = derive2 { name="ecb"; version="0.4.0"; sha256="0hn1d1hxilwxxmxzzpdcj81d4vy8fbjk1z09kw7j0b2p04wrdlkc"; depends=[curl httr rsdmx xml2]; };
   ecce = derive2 { name="ecce"; version="1.0.9"; sha256="071ahimmwc1bgcwli4c40h7drdg5ldhh0w1ldzxkjc78qyw8s23d"; depends=[purrr RCurl rjson stringr]; };
   ecd = derive2 { name="ecd"; version="0.9.1"; sha256="0d8mf5q6n7k5qj6kxvrb3habl0qmn2rxv814kydkrz2bg0scvm1q"; depends=[digest ggplot2 gridExtra gsl moments optimx polynom RcppFaddeeva Rmpfr RSQLite stabledist xtable xts yaml zoo]; };
   ecdfHT = derive2 { name="ecdfHT"; version="0.1.1"; sha256="1n3n9n86pj8c54l3xvp7knvi0ajbnjmz9pi79p7wfq92a90fqx48"; depends=[rgl]; };
   ecespa = derive2 { name="ecespa"; version="1.1-14"; sha256="07pldcwm1pi117rjl3y05x6kxl5lxs4y5aiwq0jd02mx43zy296c"; depends=[spatstat spatstat_core spatstat_geom spatstat_random]; };
+  ech = derive2 { name="ech"; version="0.1.2.0"; sha256="0xkgbqs6wmfp6a7dih4n850dw6ky596hlpmfrv72lnp77w03pll9"; depends=[assertthat curl dplyr fs geouy glue haven janitor labelled laeken purrr readxl rlang srvyr statar stringr survey tidyr]; };
   echarts4r = derive2 { name="echarts4r"; version="0.4.3"; sha256="1hjjqbc6dvz6bi6lsqlvlkrmzqv1g205cd0f8k0a7lq37hcqsw7s"; depends=[broom corrplot countrycode dplyr htmltools htmlwidgets jsonlite purrr rstudioapi scales shiny]; };
-  echarty = derive2 { name="echarty"; version="1.4.3"; sha256="047vqwspl7x94xlj2726hyma9f61406vq7vm7hk3j94r2zk64vs1"; depends=[dplyr htmltools htmlwidgets jsonlite shiny]; };
+  echarty = derive2 { name="echarty"; version="1.4.5"; sha256="1c6m6di8g5zcv49wivkrr6qxqnikjf0xh06s8r35az00bl95ynqn"; depends=[data_tree dplyr htmltools htmlwidgets jsonlite shiny]; };
   echelon = derive2 { name="echelon"; version="0.1.0"; sha256="0dw15igx8jwgfr1f7p5pspxjiqhqmfp7shdhq8g07f4bj76irzm4"; depends=[]; };
   echo_find = derive2 { name="echo.find"; version="4.0.1"; sha256="1nadqqpxgx2ck16nzjp5ajm6714452qzllg5cq1jpisv1yb31db2"; depends=[boot minpack_lm]; };
   echogram = derive2 { name="echogram"; version="0.1.2"; sha256="0kir7x32fk3fc63kr3b2j0hfkmivs2pwrlxyjvdg7xqc59hjp3ma"; depends=[geosphere readHAC]; };
@@ -8722,7 +8737,7 @@ in with self; {
   ecotraj = derive2 { name="ecotraj"; version="0.0.1"; sha256="0570j338107bxx004wwx76j1x981nh1apgp9x33r4ddz4f589aag"; depends=[circular Kendall MASS Rcpp]; };
   ecoval = derive2 { name="ecoval"; version="1.2.9"; sha256="05a6hyjsbdp4wwhrm5fwjr7fxx4g2nffhp885q0da2jkzd0754f1"; depends=[fs jpeg rivernet utility]; };
   ecp = derive2 { name="ecp"; version="3.1.3"; sha256="0n602jssl6rf596nwm6hbl7s9vdlqi20w8mrhxicj373mw5v22m8"; depends=[Rcpp]; };
-  ecpc = derive2 { name="ecpc"; version="2.0"; sha256="0xw9yd2xsxkia68zvm2pkqm73y3k9gzhnkslwikq39ra1l404r28"; depends=[CVXR gglasso glmnet Matrix multiridge mvtnorm pROC survival]; };
+  ecpc = derive2 { name="ecpc"; version="3.0"; sha256="0v2ib2jknzl1qzh852kzpyy9v0synbhhfhm3p4s8d63p05bnzcqs"; depends=[CVXR gglasso glmnet JOPS Matrix mgcv multiridge mvtnorm pracma pROC quadprog survival]; };
   ecr = derive2 { name="ecr"; version="2.1.0"; sha256="0vvkdxlcqaim9mkgwgdxrx1xhw3lshi1nxfw3kqllq14p3l6xss4"; depends=[BBmisc checkmate ggplot2 parallelMap ParamHelpers reshape2 smoof]; };
   ectotemp = derive2 { name="ectotemp"; version="0.2.0"; sha256="172rij0mmk7dd10lpbsxm4yy7072nz1fh7jfiyqmagzs5hwa31jv"; depends=[dplyr psych]; };
   ed50 = derive2 { name="ed50"; version="0.1.1"; sha256="058p1750ba5hp4rczi26grgwjia2ny1880v1vfp6wxad13r459pq"; depends=[boot]; };
@@ -8734,7 +8749,6 @@ in with self; {
   edcpR = derive2 { name="edcpR"; version="1.0.1"; sha256="02d33cd9pkcjrbl9qipcjzkhrc68j7bybg1hpnsngiz4wmf3bfik"; depends=[]; };
   eddi = derive2 { name="eddi"; version="0.0.1"; sha256="19cgrqdcji509igb6rmlwb75xyyvrh34nv6zyjjfcsc31p5nvf95"; depends=[raster rgdal]; };
   eddington = derive2 { name="eddington"; version="2.1.1"; sha256="0v88v2xmvirnj661jsg2qh7n8afaw71mqks9csnmmz3c16agp7b6"; depends=[Rcpp]; };
-  edeR = derive2 { name="edeR"; version="1.0.0"; sha256="1dg0aqm5c4zyf015hz1hhn3m4lfvybc4gc1s7sp8jcsk46rxz0cc"; depends=[rJava rjson rJython]; };
   edeaR = derive2 { name="edeaR"; version="0.8.6"; sha256="13hzb7m2rb6crxsia3d5szyz59kyd3506j8avbr51a7cps1bqaj0"; depends=[bupaR data_table dplyr forcats ggplot2 ggthemes glue hms lubridate miniUI purrr rlang shiny shinyTime stringr tibble tidyr zoo]; };
   edecob = derive2 { name="edecob"; version="1.0.0"; sha256="1zkrh33wzivfaxqn35x3ciwmm9g98x4wgkzmaflzb12p6c0d4f8w"; depends=[ggplot2 rlang]; };
   edf = derive2 { name="edf"; version="1.0.0"; sha256="14ikm6j0ndxrk7c7lh5mbd2aci46d4j9a30mvcgnxy3kq6046a7b"; depends=[]; };
@@ -8805,26 +8819,26 @@ in with self; {
   eirm = derive2 { name="eirm"; version="0.5"; sha256="0zs45n6xkyi9agrgv36bz2prdcplln66713xjr6sxyip52z9ksbk"; depends=[blme ggeffects ggplot2 lme4 magrittr optimx readxl reshape2 shiny shinycssloaders shinydashboard]; };
   eive = derive2 { name="eive"; version="2.3"; sha256="073hwx944db7zxq6yib6yvciaic11k49zl1iqphippcd5ygkad80"; depends=[Rcpp]; };
   eivtools = derive2 { name="eivtools"; version="0.1-8"; sha256="0ynmrql6dv10m7cwba5mzwlbvp6ab53nzqqvk3ihwyiqzmnnmpk4"; depends=[R2jags]; };
-  eixport = derive2 { name="eixport"; version="0.5.0"; sha256="1k5p9v5jmw5cs31sn69fjdfhh5yyzk85828aljsmsyx1ycibnwmg"; depends=[cptcity data_table ncdf4 raster sf sp]; };
-  eks = derive2 { name="eks"; version="1.0.0"; sha256="1r9f5j2drsc8ladhbhsls29wqsmm4wprfmapas0ba3h2anw75scd"; depends=[dplyr FNN ggplot2 isoband ks mapsf sf]; };
+  eks = derive2 { name="eks"; version="1.0.1"; sha256="0vl5q4n3jk4zx8wgq5cx6x3yrr8ivbm0ha2z0rsicf7c6ky9pmvj"; depends=[dplyr ggplot2 isoband ks mapsf sf]; };
   elaborator = derive2 { name="elaborator"; version="1.1"; sha256="1kq3qqqywpzrk1ichsljvfijhsybmj7s0scmswmwi2crqi67gzp8"; depends=[bsplus dendextend dplyr forcats haven purrr RColorBrewer reshape2 rlang seriation shape shiny shinydashboard shinyWidgets tidyr]; };
   elasdics = derive2 { name="elasdics"; version="0.1.5"; sha256="1q6l32v3y5l1n9g4si6swc3ck1nndn4xsj0hw1q9b4x5dlxvfziv"; depends=[numDeriv]; };
   elasso = derive2 { name="elasso"; version="1.1"; sha256="0nz3vw803dvk4s45zc9swyrkjwna94z84dn4vfj3j17h74a0cij2"; depends=[glmnet SiZer]; };
   elastic = derive2 { name="elastic"; version="1.2.0"; sha256="0k98ziacyxl1pyhyynmswcncqwl0a05sawypncdpdd9xr77nvgi6"; depends=[crul curl jsonlite R6]; };
   elasticIsing = derive2 { name="elasticIsing"; version="0.2"; sha256="1zjgvz7w5j06x2cd1fzjl85di95ah67m1lanw01kic2bvhfwfbn6"; depends=[cvTools glmnet magrittr qgraph reshape2]; };
   elasticnet = derive2 { name="elasticnet"; version="1.3"; sha256="0nxcw06d0cp2mbqzg2fm9yys5xm6xx7bfcfvr0avcs8afkvz29j8"; depends=[lars]; };
+  elbird = derive2 { name="elbird"; version="0.1.3"; sha256="1gf5kf9kq5g70y6is8xsgp8ch63rx58fsdmp3bhs10mgq6fggalp"; depends=[cpp11 dplyr matchr purrr R6 tibble vroom]; };
   elec = derive2 { name="elec"; version="0.1.2.1"; sha256="1gk75y83n6hvv36fp1n6kncln35j6f3ahasnzhc4fp71aq6q6vjf"; depends=[]; };
   elec_strat = derive2 { name="elec.strat"; version="0.1.1"; sha256="09196k5c3jsikh98d33bn70izwcbx0wb5ki9fv1ij0dw9mnv4c3p"; depends=[elec]; };
   elect = derive2 { name="elect"; version="1.2"; sha256="1hjqhmdklspssa75x8xdhv2narqgw80qh259hyfwfgnvva97w2ja"; depends=[msm nnet]; };
   elections = derive2 { name="elections"; version="1.0"; sha256="0ig3pd1dw978g2sg4ynzd3p15nk6hx17pxvbxfi5rm131mjdmjdm"; depends=[]; };
   electionsBR = derive2 { name="electionsBR"; version="0.3.2"; sha256="05wxzfgh0f3n6w8ah32q2v4f67g6w4qri4dv1linmlax77clv9fn"; depends=[data_table dplyr haven magrittr readr]; };
   electivity = derive2 { name="electivity"; version="1.0.2"; sha256="0clxsn9zkpdlq9jgq029ag310ji0hd0l23wfyqh8gkkj0091ip5a"; depends=[]; };
-  electoral = derive2 { name="electoral"; version="0.1.2"; sha256="1kf5ix0bmrh7zwgg87zf10s8pvq32fpqlmyw2dq1kf9gv3s91p04"; depends=[dplyr ineq tibble]; };
+  electoral = derive2 { name="electoral"; version="0.1.3"; sha256="0r15ghnblp5f2g9hpw187clfpj1cgplqyn9mhyvlcmz5ql60glsj"; depends=[dplyr ineq tibble]; };
   elementR = derive2 { name="elementR"; version="1.3.7"; sha256="01xbqargzc0bp1l5rcvxikr95ghj9w7w5byhrjbgwbia6y7zhxa2"; depends=[abind colourpicker devtools EnvStats gdata gnumeric httpuv lmtest outliers R6 reader readODS readxl shiny shinydashboard shinyjs stringr tcltk2 zoo]; };
   elevatr = derive2 { name="elevatr"; version="0.4.2"; sha256="1a5j7hb9fsy9ybrdlywbm552kb2hj6ch1m8kvi2hybm99yw33n81"; depends=[furrr future httr jsonlite progressr purrr raster sf slippymath sp units]; };
   elexr = derive2 { name="elexr"; version="1.0"; sha256="1xmrzlp55z6k3psdg4a3x3rsilvq3k37v9r7ydfn80ahvqjz0fqh"; depends=[]; };
   elfDistr = derive2 { name="elfDistr"; version="1.0.0"; sha256="11h91mwiw2pr0c8zvyzqql275falpiajv784n2rd5xs9azprqdd0"; depends=[Rcpp]; };
-  elfgen = derive2 { name="elfgen"; version="2.2.3"; sha256="00rkhw4h7i1clnfmg6dhc8gz9wwmaaywnc9wrs28h0b8a8lls9nh"; depends=[ggplot2 quantreg RJSONIO scales sqldf stringr testit]; };
+  elfgen = derive2 { name="elfgen"; version="2.2.8"; sha256="19c6xkikiv5nn5ryi8373j3vlkh25jigqky07528zx8nxxfdfdfi"; depends=[curl ggplot2 httr quantreg RJSONIO scales sqldf stringr testit]; };
   elhmc = derive2 { name="elhmc"; version="1.1.0"; sha256="0ngva7rnfj75fq93ycsv929m9ykijp48r7cvd6sfmi0sqsjinax5"; depends=[emplik MASS plyr]; };
   elisr = derive2 { name="elisr"; version="0.1.1"; sha256="1kz07fyffaqgda9rqidxzxz0bxzhyb8pyxpzqsvjsn1i9w98cb5k"; depends=[]; };
   elitism = derive2 { name="elitism"; version="1.0.4"; sha256="0n5g1nd1dd5wc76qa2va1lyxahg9p062l8wdqzq43ah6943pjzgr"; depends=[MASS]; };
@@ -8839,10 +8853,10 @@ in with self; {
   elsa = derive2 { name="elsa"; version="1.1-28"; sha256="01sj2a4yhv5m6qj6ih26zw4yzd8s27lll7yp0yysjjrwz79a0fbq"; depends=[raster sp]; };
   eltr = derive2 { name="eltr"; version="0.1.0"; sha256="0f4sy2hhsbghasl5xcnqlgxqhb503pl73c5vdkgpcm73smrqbpbv"; depends=[data_table]; };
   emIRT = derive2 { name="emIRT"; version="0.0.13"; sha256="1z6yd9m6vggbp42qms2sg0rbxjpg15x9m8gkdz1p3q4aqrc2ncj0"; depends=[pscl Rcpp RcppArmadillo]; };
-  emayili = derive2 { name="emayili"; version="0.7.5"; sha256="1kkcnj7knfiq1pr0yq2sfldvrxjw5j9xg62crsiiwsj0ilnzw6bk"; depends=[base64enc commonmark curl digest dplyr glue htmltools httr logger magrittr mime purrr rmarkdown rvest stringi stringr tidyr urltools xfun xml2]; };
+  emayili = derive2 { name="emayili"; version="0.7.9"; sha256="15a4paw77cn6fx92kxy1k33ahzb338yrppvxpi5idd6bbcwqccja"; depends=[base64enc commonmark curl digest dplyr glue htmltools httr logger magrittr mime purrr rmarkdown rvest stringi stringr tidyr urltools xfun xml2]; };
   emba = derive2 { name="emba"; version="0.1.8"; sha256="1bzp1cplr977w87bm0pvabvgai91a3j51pfjn4lc1ncjbr2v6wl0"; depends=[Ckmeans_1d_dp dplyr igraph purrr readr rje stringr tibble tidyr tidyselect usefun visNetwork]; };
   embed = derive2 { name="embed"; version="0.1.5"; sha256="029ysbfvgb1sb14xs0p6dswcxbpgnhvshhs2hcqbrizysb7c7bj2"; depends=[dplyr generics keras lifecycle purrr recipes rlang rsample tensorflow tibble tidyr uwot withr]; };
-  embryogrowth = derive2 { name="embryogrowth"; version="8.3-4"; sha256="0f2ks472c9nr4k9vr2ig1jr2syklm8yahhlchs8b6af10dz7sf0n"; depends=[deSolve HelpersMG numDeriv optimx]; };
+  embryogrowth = derive2 { name="embryogrowth"; version="8.4"; sha256="0miaw479fv1vrypj9hhr72l45wmd5dh00rm3ay61a8w3viph76kq"; depends=[deSolve HelpersMG numDeriv optimx]; };
   emdbook = derive2 { name="emdbook"; version="1.3.12"; sha256="0ls3zxxlwmdv7zn1v9i1y9zc2sn0hbgmyjvsj7zn3ajsw7wwlih6"; depends=[bbmle coda lattice MASS plyr]; };
   emdi = derive2 { name="emdi"; version="2.1.1"; sha256="1imw4zlx338yfp4kb6ax4z1ni5f6q5mlcvfx7xm05j0nqigjphv9"; depends=[boot formula_tools ggplot2 gridExtra HLMdiag MASS moments MuMIn nlme openxlsx parallelMap readODS reshape2 saeRobust spdep stringr]; };
   emdist = derive2 { name="emdist"; version="0.3-2"; sha256="05mv6xhm15b0mq9kzyiblkb14bdqmjrwl64ghdk66il0w8i7p6nh"; depends=[]; };
@@ -8850,7 +8864,7 @@ in with self; {
   emhawkes = derive2 { name="emhawkes"; version="0.9.5"; sha256="0b6kjwx2lsz5rj8819n71nvvchjpys90ns5n6gcgfwn5afzfdvql"; depends=[maxLik]; };
   emld = derive2 { name="emld"; version="0.5.1"; sha256="0cvnfvzskvpcqzs6fwrpjcqrc6yrfciliy9jj0c9h4iyag0g0b9b"; depends=[jsonld jsonlite xml2 yaml]; };
   emme2 = derive2 { name="emme2"; version="0.9"; sha256="035s4h95ychqb14wib0dqbg4sjy9q01fsryr0ri25g1hsi5f8lpm"; depends=[reshape]; };
-  emmeans = derive2 { name="emmeans"; version="1.7.2"; sha256="1g112yvqvxi83x128hwz4qpifwihlm0y5szg82cdsx3c9cm1rrfk"; depends=[estimability mvtnorm numDeriv xtable]; };
+  emmeans = derive2 { name="emmeans"; version="1.7.3"; sha256="0kbbin3zfxqkm5awq4331fv7y2kfpdhkwrqh91prl7qpf8kscin6"; depends=[estimability mvtnorm numDeriv xtable]; };
   emoa = derive2 { name="emoa"; version="0.5-0.1"; sha256="0rkr4d4fyqxmsrlbzar27z97qkw4cl1dkvfnhbdwpgg9fi1cixmz"; depends=[]; };
   emoji = derive2 { name="emoji"; version="0.2.0"; sha256="06bsz0hsaqa2lzqpyqhsfp07p8ri5frvhiza0s8aali7w3cr2szh"; depends=[glue stringr tibble]; };
   emojifont = derive2 { name="emojifont"; version="0.5.5"; sha256="1hhrwilv36hd9gs1kcl2zsi6519md0h9aixjrm6lfclxvz8r6k1i"; depends=[ggplot2 proto showtext sysfonts]; };
@@ -8861,6 +8875,7 @@ in with self; {
   emplik = derive2 { name="emplik"; version="1.1-1"; sha256="1kw8g8j075bsicdvgkjf4870rfv5c30gvmw6qkkaz3ki22x74w77"; depends=[quantreg]; };
   emplik2 = derive2 { name="emplik2"; version="1.32"; sha256="0d4fzyxa7kynxgx8187vqxnb25kv1m1pkawxdpng6nfaiy76w67m"; depends=[]; };
   ems = derive2 { name="ems"; version="1.3.11"; sha256="0xg4c6yhrnq5pfz94i1ys1bdqfz12h0wcs86fz4nm4pqfdbh41cc"; depends=[boot rms survival]; };
+  emstreeR = derive2 { name="emstreeR"; version="3.0.0"; sha256="1rfgw9inkxg81ky31r51a8fc5nvwalrjp2nkx4p24l5k622fwmjb"; depends=[BBmisc ggplot2 mlpack scatterplot3d]; };
   emuR = derive2 { name="emuR"; version="2.3.0"; sha256="1i133lnjn5yjy26r25xfhny6410lp8jj23jpn54znbyc560w2c9r"; depends=[base64enc cli DBI dplyr httpuv httr jsonlite mime purrr readr rlang RSQLite rstudioapi shiny stringr tibble tidyr uuid V8 wrassp]; };
   emulator = derive2 { name="emulator"; version="1.2-21"; sha256="0iikf6yinkqcgdnxx6v5kzfllhq3ppl75ym48vlcbnvkwv0v4l4v"; depends=[mvtnorm]; };
   enRich = derive2 { name="enRich"; version="3.1"; sha256="0xl9rhz6mflzp1g5d51xz74dsm8qp16jbkflhzrha3vfirn2jh8q"; depends=[]; };
@@ -8890,13 +8905,12 @@ in with self; {
   ensr = derive2 { name="ensr"; version="0.1.0"; sha256="18b81iswvby7k5akbfdyc6a8j1621d4d35hxmgjip5kyvf5cb3p8"; depends=[data_table ggplot2 glmnet]; };
   ensurer = derive2 { name="ensurer"; version="1.1"; sha256="1gbbni73ayzcmzhxb88pz6xx418lqjbp37sdkggbrxcyhsxpdkid"; depends=[]; };
   entcn = derive2 { name="entcn"; version="1.0.0"; sha256="0zwhhjrc24d3hr9494p9ayxlkd0g6jml9raxwv59mpvpprrasdws"; depends=[RYoudaoTranslate stringr]; };
-  entropart = derive2 { name="entropart"; version="1.6-9"; sha256="0xwsascm9m2fxbnb0msv20kbg8xjrn17fggsl7ws8pdq8xg912c8"; depends=[ape EntropyEstimation ggplot2 ggpubr reshape2 tibble vegan]; };
+  entropart = derive2 { name="entropart"; version="1.6-10"; sha256="1wh51ilvgnrzjkljph2f1mwik4m82fn6ryc2jhpbnx12j0h2m3hz"; depends=[ape EntropyEstimation ggplot2 ggpubr reshape2 rlang tibble vegan]; };
   entropy = derive2 { name="entropy"; version="1.3.1"; sha256="1f0j8jsn6pzf4gi5g0akixx6x5vc69ci5f4m2vnwp40frvsqjnkg"; depends=[]; };
   entrymodels = derive2 { name="entrymodels"; version="0.2.1"; sha256="0fz7jzax12pzw47iry4amgg9z4z3z94kig6r5dhcqa84kq02294v"; depends=[dplyr magrittr readr]; };
   envDocument = derive2 { name="envDocument"; version="2.4.1"; sha256="074m7adnasvys28kjdgj9071fi90vsl4yv5zvpxik4crlx098dlw"; depends=[]; };
   envalysis = derive2 { name="envalysis"; version="0.5.1"; sha256="1lvzb8jdbvrigw5va39fsfnkvwrgb9wvarrdllipszqxmnc8g5rk"; depends=[drc ggplot2 lmtest]; };
-  enveomics_R = derive2 { name="enveomics.R"; version="1.8.0"; sha256="00akdhqs7jabk7g33rwmxs92jcr39shy9s456nqxk6x4244d2vb3"; depends=[fitdistrplus investr sn]; };
-  envi = derive2 { name="envi"; version="0.1.11"; sha256="0l5pc5qqgprqkyjv8bmk5yay25bbnrsx3kx6lzcdnhwkvr4izrs8"; depends=[concaveman cvAUC doFuture doRNG fields foreach future iterators pls raster rgeos ROCR sp sparr spatstat_geom spatstat_random]; };
+  envi = derive2 { name="envi"; version="0.1.13"; sha256="0gs6dda7d53vbhjxij27r1nmgq2bc6p9xddryc7sajcajskmz5nb"; depends=[concaveman cvAUC doFuture doRNG fields foreach future iterators pls raster rgeos ROCR sp sparr spatstat_geom]; };
   enviGCMS = derive2 { name="enviGCMS"; version="0.6.6"; sha256="01y3qqh99aclarglpdg8mb9iikzkm1w62mv93m22lm8ami25a372"; depends=[animation BiocParallel data_table mixtools RColorBrewer Rdisop]; };
   enviPat = derive2 { name="enviPat"; version="2.4"; sha256="1gvb7jmwwh4l44b50xmrq3bysr2iv6442yh9pdk6n81g3bgpz1d0"; depends=[]; };
   enviPick = derive2 { name="enviPick"; version="1.5"; sha256="04q6zwqq2ip8b8h2n1jpgx1bzcvi7lazljs0806wiakbc79x232p"; depends=[readMzXmlData shiny]; };
@@ -8916,7 +8930,7 @@ in with self; {
   epcc = derive2 { name="epcc"; version="1.4.7"; sha256="0j4cb17gvwsaacmhvm8qp5chr384kl7gj6089gjrc2hqi6kjr0rx"; depends=[cowplot deSolve formattable ggplot2 httr nls2 proto raster readxl rgdal rlang sp]; };
   eph = derive2 { name="eph"; version="0.4.0"; sha256="0yznfhsp6sgymq02m4g477pnqlmmbdvwv32sidaa2giaf3nr4izj"; depends=[assertthat attempt curl dplyr expss glue htmltools janitor leaflet magrittr purrr questionr readr readxl rlang rvest stringr tibble tidyr tidyverse xml2 zoo]; };
   epiDisplay = derive2 { name="epiDisplay"; version="3.5.0.1"; sha256="08ym6hcbmajzr4rasdb35fxk79vgpzfc16rmcm34f7f3zzz09dyl"; depends=[foreign MASS nnet survival]; };
-  epiR = derive2 { name="epiR"; version="2.0.43"; sha256="0kicviwj3kvak1n58snmr9vz6ir8n624pzv5sdk9cc7kambydldi"; depends=[BiasedUrn lubridate pander sf survival zoo]; };
+  epiR = derive2 { name="epiR"; version="2.0.46"; sha256="15gjykpvpajfrsccvj9f2sknhvfb6nahamab2zyhgpwb5kcggchw"; depends=[BiasedUrn flextable lubridate officer pander sf survival zoo]; };
   epibasix = derive2 { name="epibasix"; version="1.5"; sha256="0ivr51x37cbdryli9b4p4iq9v2c90zwmywrwdmg7ryq5vprvvbp0"; depends=[]; };
   epicontacts = derive2 { name="epicontacts"; version="1.1.2"; sha256="07vnvfqm9vghmrjy3g1x3mz6qsf09qi04xq2nm9n4cgxjmbr0gia"; depends=[colorspace dplyr igraph threejs visNetwork]; };
   epidata = derive2 { name="epidata"; version="0.4.0"; sha256="0v3s1vrf2iqh03rkkwrlz6mhpbsbjxkayrqdx04vrnja4i9ljshk"; depends=[dplyr httr jsonlite purrr readr rvest stringi tidyr tinytest xml2]; };
@@ -8928,8 +8942,7 @@ in with self; {
   epikit = derive2 { name="epikit"; version="0.1.2"; sha256="0b9kc7qr7nkafmak60pyj7hln19w4zp33pk5y48qmfsxgarl6pv3"; depends=[binom dplyr forcats glue rlang scales tibble tidyr tidyselect]; };
   epimdr = derive2 { name="epimdr"; version="0.6-5"; sha256="1nxdlz7gl9vrha9iw92y0s9dmm101gkz0rsqxqg1rdxanr6hs6sh"; depends=[deSolve polspline shiny]; };
   epinet = derive2 { name="epinet"; version="2.1.8"; sha256="10bgq66n99kkz0nhmsz508aypxk57zk19p5l3xrb28n72k4rfgrf"; depends=[network]; };
-  epinetr = derive2 { name="epinetr"; version="0.95"; sha256="1hfsqwf8yf82m18qx4na9vsi653lxl16f6sd0smv9nckw1gdpqw5"; depends=[GA ggplot2 igraph Rcpp RcppAlgos reshape2 vcfR]; };
-  epiphy = derive2 { name="epiphy"; version="0.3.4"; sha256="04wsppjycnrzrml3zxrpr0xdxxas3hj8rskiivx5vfmfjpwipq4r"; depends=[ggplot2 msm pbapply Rcpp transport]; };
+  epinetr = derive2 { name="epinetr"; version="0.96"; sha256="0jg8pwbxlgrk7mqawsrifk724pi5qn0amh6x2fq54a0hmqdpdjns"; depends=[GA ggplot2 igraph Rcpp RcppAlgos reshape2 vcfR]; };
   episcan = derive2 { name="episcan"; version="0.0.1"; sha256="02687f8gpc2czn19lapvazd6mnm8902ay0lhgi3wdrzfhir42m4r"; depends=[]; };
   episensr = derive2 { name="episensr"; version="1.1.0"; sha256="0670h2x8mcd4g7m17k0zascq5yb3llsvpp9qwzghiha0f9ai8xw0"; depends=[actuar boot dagitty ggdag ggplot2 magrittr trapezoid triangle]; };
   episplineDensity = derive2 { name="episplineDensity"; version="0.0-1"; sha256="0nmh97xajnnh54i04yq8fdici4n5xvcbpdbjdbz79483gnils4vn"; depends=[nloptr pracma]; };
@@ -8949,7 +8962,7 @@ in with self; {
   epubr = derive2 { name="epubr"; version="0.6.3"; sha256="1cpsxx02qcj3brr3ddy8dbnaf6wxf42s9y3kx8fq5ki3pmlwry7g"; depends=[dplyr magrittr tibble tidyr xml2 xslt]; };
   epwshiftr = derive2 { name="epwshiftr"; version="0.1.3"; sha256="11vfs2r2fzbdd3r0s8ikafgq9ins06ym73wqxyijz60h75py4ic7"; depends=[checkmate data_table eplusr fst future_apply jsonlite progressr psychrolib rappdirs RNetCDF units]; };
   epxToR = derive2 { name="epxToR"; version="0.4-1"; sha256="00m64ham9fd9dsw37ic2m62fy4pvmwfwmjx8cg6n4rwbgq9q49sg"; depends=[httr XML]; };
-  eq5d = derive2 { name="eq5d"; version="0.10.1"; sha256="00474dmjpifl7xrm2ln5znghyy7sm1r16dqfk49vafnd4wa89wm1"; depends=[]; };
+  eq5d = derive2 { name="eq5d"; version="0.11.0"; sha256="1d6gj0a8vlm68jclnjy85j515rsdpfq32ddqm1ykl8qpbm4p7qvd"; depends=[]; };
   eqs2lavaan = derive2 { name="eqs2lavaan"; version="3.0"; sha256="1lj6jwkfd84h9ldb6l74lrx2pnsl1c0d7mnrcrjkska87djb2nzd"; depends=[lavaan stringr]; };
   equalCovs = derive2 { name="equalCovs"; version="1.0"; sha256="18w7panyd6mhdr3x1iz9fkrw7min22rishs4xhkxgxs3nnyglkrn"; depends=[]; };
   equaltestMI = derive2 { name="equaltestMI"; version="0.6.1"; sha256="09wh4907vf54z3g2a1i1j4m5vkaz97jp3qyrmxbg0bbbq0c68ffg"; depends=[lavaan]; };
@@ -8983,7 +8996,7 @@ in with self; {
   errint = derive2 { name="errint"; version="1.0"; sha256="1ya7fsvwhmgxw87r32m4345n8pw2pbpv026xvml03s1kiam8qwbw"; depends=[rootSolve VGAM]; };
   errorist = derive2 { name="errorist"; version="0.1.0"; sha256="0zq5h2wffn9d3f3blzh736478k91smlvz5hxy55hcjqffpxcp4ah"; depends=[searcher]; };
   errorizer = derive2 { name="errorizer"; version="0.2.1"; sha256="10p7ydm81x2gls0wn692llgj2rxhg4s96rv7gvihmgi5dflraypq"; depends=[]; };
-  errorlocate = derive2 { name="errorlocate"; version="0.9.9"; sha256="1747vv9k276apahvirjmzxdc6zn3zw6zl9gym9aia7v36bm2q5g0"; depends=[lpSolveAPI validate]; };
+  errorlocate = derive2 { name="errorlocate"; version="1.0.0"; sha256="1j2mln5vnibfjxgsj1zagswyf13kw0iabm4xj5qvynyhka9jw0jz"; depends=[lpSolveAPI validate]; };
   errors = derive2 { name="errors"; version="0.3.6"; sha256="1404314glbqnicrwnfzmxxf7l97pgrb2gjkgkwn100p0sj83kjdg"; depends=[]; };
   errum = derive2 { name="errum"; version="0.0.3"; sha256="18frrfnhnmg4fjlpfwj8aklzfwafpwqvagm0aschkqc8mz6wnjbz"; depends=[Rcpp RcppArmadillo]; };
   es_dif = derive2 { name="es.dif"; version="1.0.2"; sha256="1swxg8mdp9jj9f0x0cawhhbx8gmmpsgqlbifx2v04a2vkgdkigqf"; depends=[]; };
@@ -9028,14 +9041,14 @@ in with self; {
   eudract = derive2 { name="eudract"; version="0.10.1"; sha256="0qznnfflmxgx6ic5lfw0vcv1jm6hs7g3srly90vj70adjcb49sbd"; depends=[dplyr httr magrittr tidyr xml2 xslt]; };
   eulerian = derive2 { name="eulerian"; version="1.0"; sha256="0yhpnx9vnfly14vn1c2z009m7yipv0j59j3s826vgpczax6b48m0"; depends=[graph]; };
   eulerr = derive2 { name="eulerr"; version="6.1.1"; sha256="0lldp2319qd08y87f862gx8a77rvikcnkmdl9xgx4glynfs3hk19"; depends=[GenSA polyclip polylabelr Rcpp RcppArmadillo]; };
-  eurlex = derive2 { name="eurlex"; version="0.4.0"; sha256="0pzwpdhkf0mn2fy1b11sjmczjdngvjwb6gpm9wir23qfbhfhc4pj"; depends=[antiword curl dplyr httr magrittr pdftools readr rlang rvest stringr tidyr xml2]; };
+  eurlex = derive2 { name="eurlex"; version="0.4.1"; sha256="05aqq7nk3s68bdjxyy6p9xjxz2acjl5lny7mf3d9y4lf9frp4b2i"; depends=[antiword curl dplyr httr magrittr pdftools readr rlang rvest stringr tidyr xml2]; };
   eurocordexr = derive2 { name="eurocordexr"; version="0.2.2"; sha256="081p9qs09xif2cck0gmmqgzaly1r2p77kla2nhcvjgxgdylbsdkd"; depends=[data_table fs lubridate magrittr ncdf4 ncdf4_helpers PCICt]; };
   europepmc = derive2 { name="europepmc"; version="0.4.1"; sha256="16japbndid34shqg8n0bmjrxn84xmhrylvz832zclcllm6i93fn1"; depends=[dplyr httr jsonlite plyr progress purrr rlang tibble tidyr urltools xml2]; };
   europop = derive2 { name="europop"; version="0.3.1"; sha256="1ym257bxr4a0dmln1j8x3pf87wrryzgqyzhvk61whc6n2bj62x1s"; depends=[]; };
   eurostat = derive2 { name="eurostat"; version="3.7.10"; sha256="05132pid3gjp9qgksvz087vy323dp1s31w46q7a9553kxsqkgkw5"; depends=[broom classInt countrycode curl dplyr httr jsonlite lubridate rappdirs readr RefManageR regions stringi stringr tibble tidyr]; };
   eva = derive2 { name="eva"; version="0.2.6"; sha256="1b5hrwgdbw19c63ywhkvxlz3843c0mgvsxlmab6zv6r2lrrdkf62"; depends=[EnvStats Matrix]; };
   evabic = derive2 { name="evabic"; version="0.0.3"; sha256="0wd5wjsj9gbvbncaa97g1sp0211aq3nn5jc91lvhka6h34wxkcgc"; depends=[]; };
-  evalITR = derive2 { name="evalITR"; version="0.2.2"; sha256="0xdf3jyrsnf2jb28fwf8ydlid1n74ka7mx98jp6fidzcinw4mzmj"; depends=[]; };
+  evalITR = derive2 { name="evalITR"; version="0.3.0"; sha256="16xx6blq51hck04zxvya4iyv9d6i1zkrqyfg10vc0kc3626vnlrn"; depends=[dplyr MASS Matrix quadprog]; };
   evaluate = derive2 { name="evaluate"; version="0.15"; sha256="0pbwj02y2j7r0msa7747ih1p32xm9bcyr8fa7bysfslb199ywnl8"; depends=[]; };
   evclass = derive2 { name="evclass"; version="1.1.1"; sha256="00lbhcgswpv0amz0mb93kx9p91sf0d7zvxfw9i8x1zpmpfd6nhcj"; depends=[FNN]; };
   evclust = derive2 { name="evclust"; version="2.0.2"; sha256="107x61vmkfmy3bmcaywz96qj35bmz4nydd0zn9amm2xnbb37lg31"; depends=[FNN limSolve Matrix mclust plyr quadprog R_utils]; };
@@ -9068,7 +9081,7 @@ in with self; {
   exactLoglinTest = derive2 { name="exactLoglinTest"; version="1.4.2"; sha256="0j146ih9szzks9r45vq1jf47hrwjq081q1nsja5h1gpllks8217h"; depends=[]; };
   exactRankTests = derive2 { name="exactRankTests"; version="0.8-34"; sha256="1i4mwz61mjlh1ai3dww2pjkicx9ww8c4mljnr8xlawh91479lva9"; depends=[]; };
   exactci = derive2 { name="exactci"; version="1.4-2"; sha256="08phqmpj7f6mjbwfnykqmfmg7g9h6ksj3hyryn79d7kwxyh994i7"; depends=[ssanv testthat]; };
-  exactextractr = derive2 { name="exactextractr"; version="0.7.2"; sha256="0n39dqgsfzybi9yvnpnfdyypl8c9fml80jq0wxssik2n47mvbcif"; depends=[raster Rcpp sf]; };
+  exactextractr = derive2 { name="exactextractr"; version="0.8.1"; sha256="11s58vc63r9kah815a18ihb0x2nmnjnpngybw3yr2d6715sz89nc"; depends=[raster Rcpp sf]; };
   exactmeta = derive2 { name="exactmeta"; version="1.0-2"; sha256="1v807ns799qajffky4k18iah0s3qh2ava6sz5i85hwx9dhkz19h4"; depends=[]; };
   exampletestr = derive2 { name="exampletestr"; version="1.6.5"; sha256="144rfi83g79xhw3v5vn4qfqmxixy9pk2ir8dm42qk0jhd9v2awng"; depends=[checkmate fs magrittr ore purrr readr rlang roxygen2 rstudioapi strex stringr styler usethis withr]; };
   exams = derive2 { name="exams"; version="2.3-6"; sha256="1cn0gmaayv857zl7l7zmnblmpx84qkjxqrigrymy578y04qjc4zx"; depends=[]; };
@@ -9076,13 +9089,13 @@ in with self; {
   exams2sakai = derive2 { name="exams2sakai"; version="0.3"; sha256="0lgnk2g4q0vbkvcrhb815lah24rhaknnmsbhhkgbdkl0c5mx1yjg"; depends=[exams glue stringi stringr xml2]; };
   exceedProb = derive2 { name="exceedProb"; version="0.0.1"; sha256="02pb8b0rxygbv6501rcr2hb0bhz1r78k5znav161kk25fb9bxs5v"; depends=[BH Rcpp]; };
   excelR = derive2 { name="excelR"; version="0.4.0"; sha256="1pb4sy54zjv5vrh7gjjv7qlpab74km6mfsmfyl0yhmr0jx01hrw0"; depends=[htmlwidgets jsonlite]; };
-  exceldata = derive2 { name="exceldata"; version="0.1.1"; sha256="03s284pvbvhxzmqbdx00ic4a2xyg3y3hzr1ks913bxacz46g157d"; depends=[dplyr ggplot2 lubridate readxl scales]; };
+  exceldata = derive2 { name="exceldata"; version="0.1.1.2"; sha256="00vc4bc9nxkfzrzafh3fjvkmwglvbcbzbnj5inf5y1zzan4ppf8q"; depends=[dplyr ggplot2 lubridate readxl scales]; };
   excelstrippr = derive2 { name="excelstrippr"; version="0.1.2"; sha256="1ly76qja9b5l3xwfhigm1apd114y2iq5wdl27sd2h1y80n8xxf2v"; depends=[dplyr readxl tidyr]; };
   excerptr = derive2 { name="excerptr"; version="2.0.1"; sha256="0lmcxlpxvldxwqxrprqq39hk5f770ii1x38jm2jbs4n75smp4m21"; depends=[checkmate reticulate]; };
   excessmort = derive2 { name="excessmort"; version="0.6.1"; sha256="0qkj30csq96qg7r8vdl79n31dhz69vh49qz4gpb3r2fr32pn497k"; depends=[dplyr ggplot2 lubridate rlang scales tidyr]; };
   excluder = derive2 { name="excluder"; version="0.3.3"; sha256="080my5aiql9vpgqbr9lwkn4g5mmb20392ddc3rm638dlyphagips"; depends=[cli curl dplyr iptools janitor lubridate magrittr maps rlang stringr tidyr tidyselect]; };
   excursions = derive2 { name="excursions"; version="2.5.2"; sha256="1a0vywxhh0bxjcf8v5gdk1n6cjxrby7750a7qdwhzsgxna3l3gga"; depends=[Matrix sp withr]; };
-  exdex = derive2 { name="exdex"; version="1.0.1"; sha256="15wdi24fq8q4ja4527k1adv6lkzyhylp8nwlsrb91q0sbmmprrqs"; depends=[chandwich Rcpp RcppArmadillo RcppRoll]; };
+  exdex = derive2 { name="exdex"; version="1.1.1"; sha256="0z3an0s2rm5d369jc9p3brwfc6pnakwj247c3gkz1i8izvf64s57"; depends=[chandwich Rcpp RcppArmadillo RcppRoll]; };
   exdqlm = derive2 { name="exdqlm"; version="0.1.2"; sha256="0wkiihdvgf7lyzv02l10spxcn127w1jblz6fbr7yf16mfq0m9mlk"; depends=[brms coda crch dlm FNN GeneralizedHyperbolic HyperbolicDist LaplacesDemon magic tictoc truncnorm]; };
   exif = derive2 { name="exif"; version="0.1.0"; sha256="12phqn5x1x0xs2xczl3064q983dalm261vqpyafhdcndm1y3gwbc"; depends=[Rcpp]; };
   exifr = derive2 { name="exifr"; version="0.3.2"; sha256="0iqm513h7951q3hg8maf2hbprqmsm93cb3mbg3g91qawpx77494c"; depends=[curl jsonlite plyr rappdirs tibble]; };
@@ -9092,11 +9105,11 @@ in with self; {
   expDB = derive2 { name="expDB"; version="0.1.0"; sha256="0h7f9127vrd45lg7k0bkgq3cghxwv2z11p4pak20pakk13g82hj4"; depends=[DBI dplyr lubridate magrittr png readxl reshape2 rlang RSQLite stringr tibble tidyr tidyverse weaana]; };
   expSBM = derive2 { name="expSBM"; version="1.3.5"; sha256="0k8nkwqrcmmhv0x8a2np1rm5cyc9glyvndwdbnp03v0wrg8121sw"; depends=[blockmodels gtools mclust Rcpp RcppArmadillo]; };
   expandFunctions = derive2 { name="expandFunctions"; version="0.1.0"; sha256="0661l4ab0xhjidmh8ycvymhp3wgxafm7nd1c59bfpxhyhz76n1p4"; depends=[glmnet orthopolynom plyr polynom]; };
-  expectreg = derive2 { name="expectreg"; version="0.51"; sha256="0ab9xkfa3wkhrzj7lj6jgdcxzgp1xjsk6ah71f6qd11bafq7j720"; depends=[BayesX colorspace fields Matrix mboost quadprog Rcpp RcppEigen]; };
+  expectreg = derive2 { name="expectreg"; version="0.52"; sha256="1cb2k3ndzxw9sd9znmmd0f2pfpa1lvvvm9vvj3z44b4vcb2lf9vl"; depends=[BayesX colorspace fields Matrix mboost quadprog Rcpp RcppEigen]; };
   experDesign = derive2 { name="experDesign"; version="0.1.0"; sha256="1v2j3jyxyzwkzc3y5n6pzd31yigkfwcmf12df3104m3kn86iq81r"; depends=[]; };
   experiment = derive2 { name="experiment"; version="1.2.0"; sha256="0f8h4pj2y7cd2s1q44q4mrg9cirnpz0bkn4xm04hz1rpjxb4xlv1"; depends=[boot MASS]; };
   experimentr = derive2 { name="experimentr"; version="0.1.0"; sha256="0ji2031r108rzna00zhsh70kfcnhcscz0an0jv0vvj00hrakl0yr"; depends=[]; };
-  expint = derive2 { name="expint"; version="0.1-6"; sha256="0iai25cglcdnf44d2d1fz1xpw4q600my4zq4493fk4cs5673mlf7"; depends=[]; };
+  expint = derive2 { name="expint"; version="0.1-7"; sha256="01d0a7pc4qx7044a0cymnv5ld88r90vdvlqjbnzg9qlfbizdgyvw"; depends=[]; };
   expirest = derive2 { name="expirest"; version="0.1.2"; sha256="1fzgs8pniypgd1ws5dkiylgjdwgxwyrblcnvirmwfzcrgyvbmwfs"; depends=[ggplot2]; };
   explor = derive2 { name="explor"; version="0.3.9"; sha256="0sfpw9lgpr9hyn93jwxhijbfqnj466wc5ilszki2r7ziik3nb79i"; depends=[dplyr DT formatR ggplot2 highr RColorBrewer scatterD3 shiny tidyr]; };
   exploratory = derive2 { name="exploratory"; version="0.3.13"; sha256="164ykw514gfj185ckg3p8jfn7y5al12iab34fqyrkrqpj84gf1qd"; depends=[data_table DT ggplot2 ggridges lemon lm_beta mediation remotes shiny shinydashboard weights]; };
@@ -9108,7 +9121,6 @@ in with self; {
   expperm = derive2 { name="expperm"; version="1.6"; sha256="0cybna0q3qn3slyc4lv5rby4pr0xkwq0h6n7hl1zhsaqv4c2zc5b"; depends=[Rcpp]; };
   expsmooth = derive2 { name="expsmooth"; version="2.3"; sha256="0alqg777g7zzbjbg86f00p2jzzlp4zyswpbif7ndd0zr8xis6zdc"; depends=[forecast]; };
   expss = derive2 { name="expss"; version="0.11.1"; sha256="11g50v3cgr7j1gi9i301lbl58dhjsfhw0x7462fgldwr90k3b94z"; depends=[data_table htmlTable maditr matrixStats]; };
-  expstudy = derive2 { name="expstudy"; version="1.0.0"; sha256="1b66pfx8smrwwrryxa8rmn4gv692hmllqzy968fp7n58qzciv550"; depends=[assertthat checkmate cli data_table dplyr dtplyr glue lifecycle magrittr pillar purrr rlang stringr tibble tidyr tidyselect withr]; };
   exptest = derive2 { name="exptest"; version="1.2"; sha256="0wgjg62rjhnr206hkg5h2923q8dq151wyv54pi369hzy3lp8qrvq"; depends=[]; };
   exreport = derive2 { name="exreport"; version="0.4.1"; sha256="0vj60rchhrc5q6x1kv7b95fcmh2a5qynli2w54rrrw1nx54xm8c2"; depends=[ggplot2 reshape2]; };
   exsic = derive2 { name="exsic"; version="1.1.1"; sha256="1k6nqs9i4iivxnk4nkimp6zvdly274wibkmx9n0wz01gnzxqil0p"; depends=[markdown stringr]; };
@@ -9168,7 +9180,7 @@ in with self; {
   fExpressCertificates = derive2 { name="fExpressCertificates"; version="1.3"; sha256="0dcfwl0ib87p748hvwscm5ii9fhfarqfl3zqxa8kin2n0hrvkdb6"; depends=[fCertificates fExoticOptions fOptions Matrix mvtnorm tmvtnorm]; };
   fExtremes = derive2 { name="fExtremes"; version="3042.82"; sha256="1n0afql4csgsqf7j9x2v8yxncvpknms643l9knm0fqb4pdbaw58c"; depends=[fBasics fGarch timeDate timeSeries]; };
   fGarch = derive2 { name="fGarch"; version="3042.83.2"; sha256="06c6f07bg05cbn7s40ak6ywyja4cfbznazj5my9rcyahjvc6b553"; depends=[fastICA fBasics Matrix timeDate timeSeries]; };
-  fHMM = derive2 { name="fHMM"; version="0.3.0"; sha256="1ahlvb85y9m8025id7m0bx90csq07ikwiadfmqh4y95d2milwya0"; depends=[MASS progress Rcpp RcppArmadillo tseries]; };
+  fHMM = derive2 { name="fHMM"; version="1.0.1"; sha256="0jn102zap2p4naid1li5vwlv713nqcsilik8sgnqfjq662h8ivdl"; depends=[foreach MASS progress Rcpp RcppArmadillo]; };
   fICA = derive2 { name="fICA"; version="1.1-2"; sha256="0dqw3qybnpdnvhfh5inkc4011bzhsxvhpv8zzmkm3q5m6hkc6rlg"; depends=[JADE Rcpp RcppArmadillo]; };
   fImport = derive2 { name="fImport"; version="3042.85"; sha256="0rm4mwhk5ial016vl6dny8s87gd5i9p04akdyg2fndpcqwfmb5lc"; depends=[timeDate timeSeries]; };
   fMRIscrub = derive2 { name="fMRIscrub"; version="0.8.6"; sha256="0ky2a4p06p2c2dgb6wwa4spq4jsn4hvyk8c864c21j8hp6m4yaa9"; depends=[e1071 MASS pesel Rcpp RcppArmadillo robustbase]; };
@@ -9183,7 +9195,7 @@ in with self; {
   fUnitRoots = derive2 { name="fUnitRoots"; version="3042.79"; sha256="1hsv47dm0hx3s04g9h0bjdgi79zbfihnfxxdc2jskqp94yl7azsy"; depends=[fBasics timeDate timeSeries urca]; };
   fabCI = derive2 { name="fabCI"; version="0.2"; sha256="1vga322xpqzsh40n74v8vqiq8zbzrabvg58mp50bcx2ml0dikgnm"; depends=[MASS]; };
   fabMix = derive2 { name="fabMix"; version="5.0"; sha256="1gii3mdii9nw423xxn9mhv1pjbw967wdarn828w04zm9dkdcwm48"; depends=[coda corrplot doParallel foreach ggplot2 label_switching MASS mclust mvtnorm RColorBrewer Rcpp RcppArmadillo]; };
-  fabisearch = derive2 { name="fabisearch"; version="0.0.4.3"; sha256="08wb7r6mzcxfb87nwyicklj43j6vrvdbws7gawxrqfb1x4xi6q30"; depends=[doParallel doRNG foreach NMF pkgmaker reshape2 rgl]; };
+  fabisearch = derive2 { name="fabisearch"; version="0.0.4.4"; sha256="02xpndws34wh6kfk677kmpnhhxyxnwpg6asdfdn3wr44rcr7zk2v"; depends=[doParallel doRNG foreach NMF pkgmaker reshape2 rgl]; };
   fable = derive2 { name="fable"; version="0.3.1"; sha256="185l3gd83nys11k389ha2ssdm9rkw9aackmz2cd2mvlym72rsnq7"; depends=[distributional dplyr fabletools Rcpp rlang tibble tidyr tsibble]; };
   fable_ata = derive2 { name="fable.ata"; version="0.0.3"; sha256="0rjy5kj10sw2i9ghrsz67l40j7niw9mxm14kzg6prnc34200ki0n"; depends=[ATAforecasting distributional dplyr fabletools lubridate rlang tibble tsbox tsibble]; };
   fable_prophet = derive2 { name="fable.prophet"; version="0.1.0"; sha256="12y2k05plg6d6lgqk6617q6z5m6xz33zdsjh56k86h230qqw68rp"; depends=[distributional dplyr fabletools lubridate prophet Rcpp rlang tsibble]; };
@@ -9195,7 +9207,7 @@ in with self; {
   factiv = derive2 { name="factiv"; version="0.1.0"; sha256="1m43kg8mrlnkzs667s4a8c2jkfdgv2pjbwf45vf2w4nlp84camxx"; depends=[Formula generics]; };
   factoextra = derive2 { name="factoextra"; version="1.0.7"; sha256="1allvdjhd3pq8xz30b1cymwcik5iaahghrjrlnn54cwkfhfg0kv2"; depends=[abind cluster dendextend FactoMineR ggplot2 ggpubr ggrepel reshape2 tidyr]; };
   factoptd = derive2 { name="factoptd"; version="1.0.3"; sha256="1ir50im3kr1xhqk4qwrm2h5fq9gqgrwshbamvjlf8n1wnn03mcb6"; depends=[MASS partitions]; };
-  factor_switching = derive2 { name="factor.switching"; version="1.2"; sha256="1va8xah0r7622svybv9r2v0s9wbl15p4lkrbqmaf5p5izijg32xs"; depends=[coda HDInterval lpSolve MCMCpack]; };
+  factor_switching = derive2 { name="factor.switching"; version="1.3"; sha256="1hd2m9yyk9vbpknm7gyhgr6ywv84a1q5w46cspxp92nal784b5x3"; depends=[coda HDInterval lpSolve MCMCpack]; };
   factorEx = derive2 { name="factorEx"; version="1.0.1"; sha256="03dgxxykxgq63cgan5gy5vz4hnwqmg48z2wdv8f69mk9452mg9m2"; depends=[arm doParallel estimatr foreach genlasso igraph mvtnorm pbapply pbmcapply prodlim sandwich stringr]; };
   factorMerger = derive2 { name="factorMerger"; version="0.4.0"; sha256="127k5h1gbbnjr6gxgck2n9glvvwkd69xq7n6gzmrq8gszk8v1x5m"; depends=[agricolae colorRamps dplyr forcats formula_tools ggplot2 ggpubr knitr magrittr MASS mvtnorm proxy reshape2 scales survival]; };
   factorial2x2 = derive2 { name="factorial2x2"; version="0.2.0"; sha256="045887hwknwm92wlrp0jlvxj5aal50vpnc7ddbh7c8smawmrdwfd"; depends=[mvtnorm survival]; };
@@ -9215,7 +9227,7 @@ in with self; {
   fairsubset = derive2 { name="fairsubset"; version="1.0"; sha256="0iw16fs2mb9p14vr34izw3sirbndyy8w07df3scy7gkkcx2nz2bz"; depends=[matrixStats]; };
   faisalconjoint = derive2 { name="faisalconjoint"; version="1.15"; sha256="08sb4za8qyadvigq2z7b0r44qk2lpahpnz9nv16xfjb1zhdkz5w3"; depends=[]; };
   fakeR = derive2 { name="fakeR"; version="1.0"; sha256="0f4ngnd8s34j1327zp3aqnsiw0gfxkp1i24ng20hrmfl13s1qmxp"; depends=[mvtnorm polycor pscl VGAM]; };
-  fakemake = derive2 { name="fakemake"; version="1.10.3"; sha256="027bzqp1knari0a0v9pljzvjsvf0lcgxi4w25lq482b9a1gs36fm"; depends=[fritools igraph MakefileR]; };
+  fakemake = derive2 { name="fakemake"; version="1.10.4"; sha256="04k5dkfw07np0fgpp0n9zzswfnk2qrvv2dzghqb4mwasnlffqz57"; depends=[fritools igraph MakefileR]; };
   falcon = derive2 { name="falcon"; version="0.2"; sha256="09hlvwwj3k3nhcsxijjvv8x74a9m200ayjjplrp4baxvczwyq341"; depends=[]; };
   falconx = derive2 { name="falconx"; version="0.2"; sha256="0648mvbc7ga7vr2xqzyln3dgd11h5s4bqhv3p55mj7smr4qv7hv9"; depends=[]; };
   fam_recrisk = derive2 { name="fam.recrisk"; version="0.1"; sha256="1lyrq7bq7p7ijc2vf545nazw4akncz08548ya1dv3lsc5jmkgfzj"; depends=[]; };
@@ -9223,12 +9235,12 @@ in with self; {
   famSKATRC = derive2 { name="famSKATRC"; version="1.1.0"; sha256="1xbh0by4sjxrmy00v1svcj3lb98p9krpncbhpjbli1jd2p47yk60"; depends=[bdsmatrix CompQuadForm coxme kinship2]; };
   fame = derive2 { name="fame"; version="2.21.1"; sha256="18lzf2vxyzlmd73m9q0si663mjjm66nrf7q1iy0fw73gpvxqr9bf"; depends=[tis]; };
   familial = derive2 { name="familial"; version="1.0.2"; sha256="1pk4l8bgfs6nl8d3w8gksv4szfbqnw6sv0lzh1piyvkpyylfm1i7"; depends=[DepthProc ggplot2 matrixStats]; };
-  familiar = derive2 { name="familiar"; version="1.0.0"; sha256="04shvnx81vppswyj3x4zi4rp0mll8l165ckmv27fsbgf5iija70m"; depends=[data_table rlang rstream stringi survival]; };
+  familiar = derive2 { name="familiar"; version="1.1.0"; sha256="0jcask0qw9gjy0cp7fyvvqqz77rjqrwdgsqzxzivs02i1r8l849m"; depends=[data_table rlang rstream survival]; };
   fanc = derive2 { name="fanc"; version="2.2"; sha256="1gdkxb2ay0lyldjpg4s2fbavjxl4q1bf9q438csqa4vzl5ywv2w8"; depends=[Matrix]; };
   fancycut = derive2 { name="fancycut"; version="0.1.2"; sha256="1xg5qjxf77g10h07x6rvb8c3klc9gbr77bkw352qpas268pkswl2"; depends=[]; };
   fanovaGraph = derive2 { name="fanovaGraph"; version="1.5"; sha256="1hffda52yk24slbgsfdgkpg3vsryfnhlw09r39cbyz483i7xd8d0"; depends=[DiceKriging igraph sensitivity]; };
   fanplot = derive2 { name="fanplot"; version="4.0.0"; sha256="08zd2af26ah1rdkzxi1sv4c4l06jpxd6m38q3xy657k2jm90rkkc"; depends=[]; };
-  fansi = derive2 { name="fansi"; version="1.0.2"; sha256="0mxm06png4lrl5gy5giws5dgig2faryang8y0wcvwfk120pczqni"; depends=[]; };
+  fansi = derive2 { name="fansi"; version="1.0.3"; sha256="0sn0kflgcn2qrrv646pzqylm02cx8l5ws473ppmvla4xihyvi9w6"; depends=[]; };
   faoutlier = derive2 { name="faoutlier"; version="0.7.6"; sha256="0dd8k5s0yv047p10jisqz13nflby4y0dg97r0nbjygzcq1ryx2bs"; depends=[lattice lavaan MASS mirt mvtnorm pbapply sem]; };
   faq = derive2 { name="faq"; version="0.1.1"; sha256="0knajqm9ydsjhn6xymfrcyf2b1kgfbiai8ai2zlm7p4mgfry504h"; depends=[htmlwidgets jsonlite]; };
   far = derive2 { name="far"; version="0.6-5"; sha256="18lj2mgnn9s59ypkr19zzv0sffwpx9mgk975xmpvw4kkl84dykis"; depends=[nlme]; };
@@ -9253,15 +9265,15 @@ in with self; {
   fastM = derive2 { name="fastM"; version="0.0-4"; sha256="1n9a431w0hl4kr3pa32kcyd1d73acz4vb9vhfkckk3099mg46d9m"; depends=[Rcpp RcppArmadillo]; };
   fastNaiveBayes = derive2 { name="fastNaiveBayes"; version="2.2.1"; sha256="04hv4jdhan1vbsixzbifa7hpmc531gv7c2dd1fx5700c2wlkja1n"; depends=[Matrix]; };
   fastOnlineCpt = derive2 { name="fastOnlineCpt"; version="1.0"; sha256="0grkgj8kwqblikgw5pg4vdp41qd9s4cd7dzih3ima31fdw8ssi3c"; depends=[Rdpack]; };
-  fastR2 = derive2 { name="fastR2"; version="1.2.1"; sha256="15mqsdy79zvd4srrszdjp0kh9lfcq3yxp7j5d4xcqbjbwsgy68il"; depends=[dplyr ggplot2 lattice maxLik miscTools mosaic numDeriv]; };
+  fastR2 = derive2 { name="fastR2"; version="1.2.2"; sha256="0s0nff8j0lxby3v8wr388dgry3kais58p8dbygfy15zppcnixkh6"; depends=[dplyr ggplot2 lattice maxLik miscTools mosaic numDeriv]; };
   fastRG = derive2 { name="fastRG"; version="0.3.0"; sha256="1qxbdgn9id9dhavlwf242cr9pk7pwaj93cvv00jaidiq6rlslnq8"; depends=[ellipsis glue igraph magrittr Matrix RSpectra tibble tidygraph]; };
-  fastRhockey = derive2 { name="fastRhockey"; version="0.1.0"; sha256="03md9hvm34q5qgqcaf81ysw62m1f61fv0drpf8k8k3lysfv6pxj1"; depends=[cli data_table dplyr glue httr janitor jsonlite lubridate magrittr progressr purrr Rcpp RcppParallel rlang rvest stringr tibble tidyr]; };
+  fastRhockey = derive2 { name="fastRhockey"; version="0.3.0"; sha256="15iwwgl1mm6y59nz6v0866xw8p1pnnwfg1r5c3pqwina0gmcjxnv"; depends=[cli data_table dplyr glue httr janitor jsonlite lubridate magrittr progressr purrr Rcpp RcppParallel rlang rvest stringr tibble tidyr]; };
   fastSOM = derive2 { name="fastSOM"; version="1.0.1"; sha256="1fzy7lfx1fn9993h0qh6vbwq0w4gfgbdrprmzb1z3aqq6nqvmngm"; depends=[]; };
-  fastText = derive2 { name="fastText"; version="1.0.1"; sha256="0l0pkr3a8qckvzazh6rsz94rab8v96y4wis2my29srkwv4h447bn"; depends=[data_table ggplot2 glue Rcpp]; };
+  fastText = derive2 { name="fastText"; version="1.0.2"; sha256="1dv3ckbik10qqr91rq9i4f37kz74j1zd4kndkd5d71c1lsag0ra4"; depends=[data_table ggplot2 glue Rcpp]; };
   fastTextR = derive2 { name="fastTextR"; version="2.0.0"; sha256="1ggmwsw2qnq8v3s8iaxi8q66c898pc15wfgpsp6h0mc761qih5lf"; depends=[Rcpp slam]; };
   fasta = derive2 { name="fasta"; version="0.1.0"; sha256="0wnppxn3039dj58xm0b66fsyq537bk8k8m56im11xj1iwc3zc6vw"; depends=[]; };
   fastadi = derive2 { name="fastadi"; version="0.1.0"; sha256="0vrsz2vf2rxj2vyv1dcjwy8g7s942j5695lb7jkmdaw6lp3k4gh0"; depends=[ellipsis glue logger LRMF3 Matrix Rcpp RcppArmadillo RSpectra]; };
-  fastai = derive2 { name="fastai"; version="2.1.0"; sha256="1ssmx49c4qzvr4m84s8vwyrg890l2vfglh9rqkf4ljc1x2bkf8z1"; depends=[generics ggplot2 ggpubr glue png reticulate]; };
+  fastai = derive2 { name="fastai"; version="2.2.0"; sha256="19hybrmcrlgawayvl0wxr646dmxmwjap64wdhd023rclby1nsg4c"; depends=[generics ggplot2 ggpubr glue png reticulate]; };
   fastclime = derive2 { name="fastclime"; version="1.4.1"; sha256="0zcir8r11b2hxr9vvkmvxlzmhfcaxbr0wbjy86ysr912mp8fs9i3"; depends=[igraph lattice MASS Matrix]; };
   fastcluster = derive2 { name="fastcluster"; version="1.2.3"; sha256="009amz7i5yndqw2008fgd3p11n4fsb291k2ypg3pip6dw4lr28hz"; depends=[]; };
   fastcmh = derive2 { name="fastcmh"; version="0.2.7"; sha256="0hib3r3pkfdi67bdy4pf1pw6869vq4b3pg1pq1zwpyy76nbnq9vl"; depends=[bindata Rcpp]; };
@@ -9287,7 +9299,7 @@ in with self; {
   fastqq = derive2 { name="fastqq"; version="0.1.2"; sha256="1p5xjwcwsgxyva6y6g9d0m6pvdwih97rassw6n2a85dsl8c4kmfk"; depends=[Rcpp]; };
   fastrmodels = derive2 { name="fastrmodels"; version="1.0.2"; sha256="1333546nk429l6s4icbmx8hmh29wsc252wbmmhsmgb116l4ra9zi"; depends=[xgboost]; };
   fastshap = derive2 { name="fastshap"; version="0.0.7"; sha256="0gxch67i3bj6m8nb94m5hswq058w6n1q9war4dy2qnimlv7cmhdv"; depends=[abind ggplot2 gridExtra matrixStats plyr Rcpp RcppArmadillo tibble]; };
-  fasttime = derive2 { name="fasttime"; version="1.0-2"; sha256="11i4c0zrkvvqsax0az1fvmc0jxfsjyx28434k1qgzhj9g2j9m9cf"; depends=[]; };
+  fasttime = derive2 { name="fasttime"; version="1.1-0"; sha256="00290sxfa6nihahm3s9bslpsmyfm0cpziajmr9mg7grxrzx53ia6"; depends=[]; };
   fastverse = derive2 { name="fastverse"; version="0.2.3"; sha256="1jp9lipx19zihakjp2la8rk4pxks0p8saagp75nr0xq2vdylqg27"; depends=[collapse data_table fst kit magrittr matrixStats]; };
   fat2Lpoly = derive2 { name="fat2Lpoly"; version="1.2.5"; sha256="08bbd17aqmfcacvk283bpf9cp1isf5pgfdciwxn0f7ahdzd81g4s"; depends=[kinship2 multgee]; };
   faux = derive2 { name="faux"; version="1.1.0"; sha256="0cmgsm8c8w5d5zk00j4872x7fby0rdi7lmw0w0ncahlnh72grpjm"; depends=[dplyr ggplot2 jsonlite lme4 rlang truncnorm]; };
@@ -9329,7 +9341,7 @@ in with self; {
   fdasrvf = derive2 { name="fdasrvf"; version="1.9.7"; sha256="06kq9rlszydr55sg17yybwa89qd4d1826jyw4kmx4aligx7ycqq6"; depends=[coda doParallel fields foreach lpSolve Matrix matrixcalc mvtnorm Rcpp RcppArmadillo testthat tolerance viridisLite]; };
   fdatest = derive2 { name="fdatest"; version="2.1"; sha256="0zdnmssir5jz2kbfz4f4xshjfv4pivqx7cbh2arlx6ypkjrjws8n"; depends=[fda]; };
   fdcov = derive2 { name="fdcov"; version="1.1.0"; sha256="0savsgcifcjjqrmbpn6m30gncq5iigqxpb19l710wlx8nm98svjh"; depends=[corrplot matlab]; };
-  fddm = derive2 { name="fddm"; version="0.4-1"; sha256="1mwi4xlklhwmmrw5zyhz37k0kzda2d4md5qjnrhn4q9kp24akljb"; depends=[Rcpp]; };
+  fddm = derive2 { name="fddm"; version="0.5-1"; sha256="1jn2hrl322an64q5m9rq1lifmilbzx65mb3mfhqfg8nvsgrpsffw"; depends=[Rcpp]; };
   fdistr = derive2 { name="fdistr"; version="0.1.0"; sha256="1i9nq4jmszbmwk4m6jfn7rifsn7aay40cj6kz23b9ihj3phqffi8"; depends=[dplyr ggplot2 magrittr usethis]; };
   fdm2id = derive2 { name="fdm2id"; version="0.9.6"; sha256="14bln0vx3qjgqb27dpl0fcd60bk42bha75ki6lkn4w1hrhcd1rr8"; depends=[arules car caret class cluster e1071 FactoMineR flexclust fpc glmnet ibr irr kohonen leaps MASS mclust mda meanShiftR nnet pls questionr randomForest ROCR rpart Rtsne SnowballC stopwords text2vec wordcloud xgboost]; };
   fdq = derive2 { name="fdq"; version="0.12"; sha256="198nsyzv0ni2mjx12wik58c7z5vrc1mfk80k3iv94dz1iq9fprqf"; depends=[data_table Fgmutils ggplot2 randomcoloR sqldf]; };
@@ -9355,7 +9367,7 @@ in with self; {
   fedmatch = derive2 { name="fedmatch"; version="2.0.5"; sha256="1k6gj0aaihxqwvvvic8s5bhjqlxg6m37yj3bk9hbxy1lijv89w8j"; depends=[BH data_table forcats magrittr purrr Rcpp scales SnowballC stringdist stringr]; };
   fedregs = derive2 { name="fedregs"; version="1.0.0"; sha256="171j6r6qxnx9gk9x9gpdyh51ssrgmf7sczc4889qr3qqw15sm4bn"; depends=[dplyr httr magrittr purrr rvest stringi tidyr tidytext xml2]; };
   fedstatAPIr = derive2 { name="fedstatAPIr"; version="0.2.0"; sha256="07pr6c4275jb9dkx2pdrkykqawlxdmp3g6v4v2kzsnrcdlxs0h57"; depends=[dplyr httr jsonlite magrittr readsdmx rlang rvest stringr xml2]; };
-  feisr = derive2 { name="feisr"; version="1.2.0"; sha256="012rspsw1xwl11gdr3nlpdmf24y9d2shwj81iqj1xill3l0mchwc"; depends=[aod dplyr Formula plm Rdpack]; };
+  feisr = derive2 { name="feisr"; version="1.3.0"; sha256="1i89w3n365k4fwgiifb2f68ag11f96rrxqxradrjvbmi7r80md99"; depends=[dplyr Formula plm Rdpack]; };
   fellov = derive2 { name="fellov"; version="0.1"; sha256="0z4b08ykajzwa5852dknqz5qqlmhklbwdq8x5zhyfmwba5zfbjav"; depends=[]; };
   felp = derive2 { name="felp"; version="0.2.3"; sha256="05380225n0l2p8x4yr41frgvfzfl8x5b18v7qn8a4j9afki9y1g5"; depends=[curl prettycode]; };
   fence = derive2 { name="fence"; version="1.0"; sha256="18l3fliww60d9n9hbfdny5vr9mi78krwpjj5sypdsb77d6332h9q"; depends=[fields ggplot2 lme4 MASS sae snow snowfall]; };
@@ -9363,15 +9375,14 @@ in with self; {
   fermicatsR = derive2 { name="fermicatsR"; version="1.4"; sha256="1587f67fypj22rdi1319zq765lcc9z518bzl1jr4lz6c8lrzfm9i"; depends=[]; };
   ferrn = derive2 { name="ferrn"; version="0.0.1"; sha256="1zp18hfnvmdb2w0qj432yj9a3939lad2hqymrmj8y1w3k0razifk"; depends=[dplyr geozoo gganimate ggforce ggplot2 ggrepel magrittr purrr rlang scales stringr tibble tidyr tourr]; };
   ff = derive2 { name="ff"; version="4.0.5"; sha256="0dsh6llfdz04w94xr3yl2b4vkk9g3rwhvfnxcd025v2424krxfls"; depends=[bit]; };
-  ffbase = derive2 { name="ffbase"; version="0.13.3"; sha256="1dp6lblfq2j7r1b4b8ls47jlx8j27n88d5vp8w116lb8pa01zxmk"; depends=[bit fastmatch ff]; };
-  fflr = derive2 { name="fflr"; version="2.0.2"; sha256="057m2lgzfvid4618vlzmxgrw7vg1bff6i0qy8b2khk8dynk8p25v"; depends=[httr jsonlite tibble]; };
-  ffmanova = derive2 { name="ffmanova"; version="1.1.0"; sha256="0019m9vxnh5yxr5k7zflzyhd533a842cjjkcpqyannshnrbfndvy"; depends=[]; };
+  fflr = derive2 { name="fflr"; version="2.0.3"; sha256="15nwbf7n9x065sahhp31rdrramqigki9w67x1xyll86g8ndfwn98"; depends=[httr jsonlite tibble]; };
+  ffmanova = derive2 { name="ffmanova"; version="1.1.1"; sha256="19kdlcslqnwcsdjxx0n86is5cjz21sn8vpylyq8s4i7q7nrlyxwp"; depends=[]; };
   ffmetadata = derive2 { name="ffmetadata"; version="1.0.0"; sha256="0gjv5fl3p0kz28c91l4qf34a2685a24l5841ixdg7wivfs5v9npv"; depends=[httr jsonlite]; };
-  ffp = derive2 { name="ffp"; version="0.2.0"; sha256="1bx9ymd7mmic01wkwaczdxw1y4a7cb8ayl42k743hznqnr8vrpmn"; depends=[assertthat crayon dplyr forcats ggdist ggplot2 lubridate magrittr mvtnorm NlcOptim nloptr purrr rlang scales stringr tibble tidyr vctrs]; };
+  ffp = derive2 { name="ffp"; version="0.2.1"; sha256="1xrxn63znl56glcvk4c1arqm4zzdpxx5wrkn48c8i10ppxswjj3y"; depends=[assertthat crayon dplyr forcats ggdist ggplot2 lubridate magrittr mvtnorm NlcOptim nloptr purrr rlang scales stringr tibble tidyr vctrs]; };
   ffscrapr = derive2 { name="ffscrapr"; version="1.4.7"; sha256="1qfclfvz1xa9mamn9rjmwyrrpsj8cr6ri5040g2gfxjag0by5n21"; depends=[cachem checkmate dplyr glue httr jsonlite lifecycle magrittr memoise nflreadr purrr rappdirs ratelimitr rlang stringr tibble tidyr]; };
   ffsimulator = derive2 { name="ffsimulator"; version="1.2.0"; sha256="134qcvi698ynrf3c1pg4mfd5hf2jv4x5qh1jsldfy1fhmrnaxj81"; depends=[checkmate cli data_table ffscrapr glue magrittr nflreadr Rglpk rlang tidytable]; };
   ffstream = derive2 { name="ffstream"; version="0.1.6"; sha256="036ikhah4y85khgfmvxwsn3vavvw1is8i9k2lw474wxlh4cxa3kd"; depends=[Rcpp]; };
-  fftw = derive2 { name="fftw"; version="1.0-6.1"; sha256="1s16r8qr1w85k5i0wfj4gc3cnwqg3yx2nbk9mcfb3j95jx7jphzz"; depends=[]; };
+  fftw = derive2 { name="fftw"; version="1.0-7"; sha256="07isxi72ppw7p3inn3pmwr2ha51p981iz3diw3rhgqc4gd3677zn"; depends=[]; };
   fftwtools = derive2 { name="fftwtools"; version="0.9-11"; sha256="0zrchp4l0jdbir2gibjf00x225y9giqk80zvqmr2yyvc12lwkw7i"; depends=[]; };
   fgac = derive2 { name="fgac"; version="0.6-1"; sha256="0paddf5a4w0g2i0ay7my0bppwh534d8ghy6csfxl5jj034xjgwkk"; depends=[]; };
   fgdr = derive2 { name="fgdr"; version="1.1.1"; sha256="12rccdh1dmh8azwid8wgkdz8d7lqrdzr5n294j2fawqf4naff2gm"; depends=[data_table jpmesh magrittr purrr raster readr rlang sf stars stringr terra tibble units xml2]; };
@@ -9394,8 +9405,9 @@ in with self; {
   fieldRS = derive2 { name="fieldRS"; version="0.2.3"; sha256="0jr2l5cnrawd6wibmb6r0sngd851z9mbz4mwprnbbqbv3hzzrpm9"; depends=[caret concaveman geosphere ggplot2 raster rgeos sp stringdist vegan]; };
   fields = derive2 { name="fields"; version="13.3"; sha256="1hs4k5a9hh0r5fsrnpnvs6wvf78xpjzj8a2j6643dsz73a5q6ln6"; depends=[maps spam viridis]; };
   fiery = derive2 { name="fiery"; version="1.1.3"; sha256="1rwnmm4n59wdsvb57bj8mx1qhz93jbvfb73sl111nwqazphrhid1"; depends=[assertthat crayon future glue httpuv later R6 reqres stringi uuid]; };
+  fig = derive2 { name="fig"; version="1.0.0"; sha256="1mzvng4r4xmkmbl55pspjk9bcvkri96vkmjaqkjn8nqxv39sy1pr"; depends=[R6]; };
   figpatch = derive2 { name="figpatch"; version="0.1.0.1"; sha256="1chshlyc3ygyvgzyph4mix3a6kvv4w0vbnss58472h0mgl7mgx8v"; depends=[ggplot2 magick patchwork]; };
-  file2meco = derive2 { name="file2meco"; version="0.2.1"; sha256="1m9r7vp766p4lsbzpfzwfp37ylrbnsz63fwnl0h4ykcfqmf9b12m"; depends=[ape dplyr magrittr Matrix microeco R6 rhdf5 tidyr yaml]; };
+  file2meco = derive2 { name="file2meco"; version="0.2.2"; sha256="0j4mcap10b0rplcsh8b8p41vpag2m7y9d7kyw7zn1w01vm0k9y2g"; depends=[ape dplyr magrittr Matrix microeco rhdf5 tidyr yaml]; };
   filearray = derive2 { name="filearray"; version="0.1.3"; sha256="10kpr5c7yq9hk1b6x611vi1pcsis0x1xpi0rs1dqgv310hswa0k5"; depends=[BH digest Rcpp]; };
   filebin = derive2 { name="filebin"; version="0.0.5"; sha256="1k13vwppk3f3acnyz32wrjmr80x0lbdzv0sx74xr87n1kbrrv5fn"; depends=[dplyr httr janitor logger purrr stringi tibble tidyr]; };
   filehash = derive2 { name="filehash"; version="2.4-3"; sha256="1ga17smgjd4qsnf5a7qk0giwhpc5969ylqj520favs1k6b4y557k"; depends=[]; };
@@ -9409,23 +9421,23 @@ in with self; {
   fillr = derive2 { name="fillr"; version="1.0.0"; sha256="1gx1ihp8j90ywmm6mmmfq4jd6apxawk9s5dfw3jq0wm1c290zqpv"; depends=[]; };
   filterNHP = derive2 { name="filterNHP"; version="0.1.2"; sha256="0kk6548nr5786ywa83v8by4c1n7ljh9sy4fshpfqizp49fv9zv22"; depends=[data_tree rclipboard shiny shinyBS shinyjs shinyWidgets]; };
   finalfit = derive2 { name="finalfit"; version="1.0.4"; sha256="1cfyl8w488v8ax15jb4xjddd4r8ilhljhamzk3kjbdy8039l0sa4"; depends=[bdsmatrix boot broom dplyr forcats GGally ggplot2 gridExtra lme4 magrittr mice pillar pROC purrr scales stringr survival tidyr]; };
-  finbif = derive2 { name="finbif"; version="0.6.3"; sha256="0xpa8k66vgglzf860qw0lyyck63lxgi9zvmms0fzr35fxcfcmna3"; depends=[digest httr jsonlite lubridate lutz]; };
+  finbif = derive2 { name="finbif"; version="0.6.4"; sha256="1r2nl6n1d55x49iykzga0wi80zsybd7zmldix5bkc5qkca5xvzk8"; depends=[digest httr jsonlite lubridate lutz]; };
   finch = derive2 { name="finch"; version="0.4.0"; sha256="0q7riaxms460c6z2gb8i0q4pb348bnvry46bjd7pb9mh8fnl1i8b"; depends=[data_table digest EML hoardr xml2]; };
   findInFiles = derive2 { name="findInFiles"; version="0.3.0"; sha256="1cnnx9ky1pd0aj3bf67z75b0dgmdgj90w0yjxlrny42a7iqnyw4n"; depends=[crayon htmlwidgets stringi stringr tibble vctrs]; };
   findInGit = derive2 { name="findInGit"; version="0.1.1"; sha256="1j5mvp34nsczmvp5jx7c9gp20q7aqaxrqm2zvj8aq31rc8mfaxk9"; depends=[crayon htmlwidgets stringr]; };
   findR = derive2 { name="findR"; version="0.2.1"; sha256="1a7cf6kd7i2l4ffr2b17nb9xnpsjhf6fcwpjy06r0qgcapnfp54b"; depends=[pdftools stringr]; };
   findpython = derive2 { name="findpython"; version="1.0.7"; sha256="0jf10jpqla90x03kl3k77gnd255zmw9rvr8d724vb17cqawh9yar"; depends=[]; };
   findviews = derive2 { name="findviews"; version="0.1.3"; sha256="1l1yhw5hvrn0rpkdsch8m69d2q5284jwccvv7r4ia4m0iqjfipj7"; depends=[ggplot2 gridExtra scales shiny]; };
-  finetune = derive2 { name="finetune"; version="0.1.1"; sha256="0yi76ww7m4nfd1b7cd3ixarbjwpzh8g016byz2pvchmz2mb10s6h"; depends=[cli dials dplyr ggplot2 purrr rlang tibble tidyr tidyselect tune vctrs workflows]; };
+  finetune = derive2 { name="finetune"; version="0.2.0"; sha256="07lng61slbrk1n6j4x16d9cr0yq7wsd0df85imcwjvk94yg2j44z"; depends=[cli dials dplyr ggplot2 purrr rlang tibble tidyr tidyselect tune vctrs workflows]; };
   fingerPro = derive2 { name="fingerPro"; version="1.1"; sha256="1a1lj8gyrbgcg8hr03cj2bjzlaafddspri7abc83ys1raqwd4j68"; depends=[car GGally ggplot2 gridExtra klaR MASS plyr Rcmdr Rcpp RcppGSL RcppProgress reshape rgl scales]; };
   fingerprint = derive2 { name="fingerprint"; version="3.5.7"; sha256="04jcwkydjrs31pia6kq8z2n9s54im950q08hs2ay15xjxxkmb8ic"; depends=[]; };
   finiteruinprob = derive2 { name="finiteruinprob"; version="0.6"; sha256="0z4l0crymh58chxniqq70fqmvi6f5jkgvz72vbc7s3l9lrrapgr3"; depends=[numDeriv sdprisk]; };
   finity = derive2 { name="finity"; version="0.1.4.1"; sha256="0xs3vx0vj165hj4dq8ivrdf6fcvj23zhp2ai79rgpyb5rr5ndkvc"; depends=[BH Rcpp RcppArmadillo stabledist]; };
   finnishgrid = derive2 { name="finnishgrid"; version="0.1.0"; sha256="0gndrllz3y7yqrg5vw6ba7dg7hn4w3085rpy7h9hdd8swxqfvlc6"; depends=[httr jsonlite]; };
-  finnts = derive2 { name="finnts"; version="0.1.0"; sha256="1jvyl2c7szl4xwv5kyd3d1cm7cpmfjqlpg42kpvxqf1bvsbrws6n"; depends=[cli Cubist dials doParallel dplyr earth foreach generics glmnet gtools hts kernlab lubridate magrittr modeltime modeltime_gluonts modeltime_resample parsnip plyr purrr recipes rsample rules stringr tibble tidyr tidyselect timetk tune workflows]; };
+  finnts = derive2 { name="finnts"; version="0.1.1"; sha256="0r76p2lfc39cs3rziq2psk3fia3y58daz2a91xadfkahii0hmy2q"; depends=[cli Cubist dials doParallel dplyr earth foreach generics glmnet gtools hts kernlab lubridate magrittr modeltime modeltime_gluonts modeltime_resample parsnip plyr purrr recipes rsample rules stringr tibble tidyr tidyselect timetk tune workflows]; };
   finreportr = derive2 { name="finreportr"; version="1.0.4"; sha256="145idg2c6qmqp29afalnhxxzky08j21dmm05mp3zf63aq9mq41d4"; depends=[curl dplyr httr rvest XBRL xml2]; };
   fipe = derive2 { name="fipe"; version="0.0.1"; sha256="055jav8h4wws76jahm2d5dj49wkvzchh3f2vk5d50pny4dc7smar"; depends=[dplyr forcats furrr future httr jsonlite lubridate magrittr purrr readr stringr tibble tidyr]; };
-  fipio = derive2 { name="fipio"; version="1.1.0"; sha256="1y153096wkihzcwcycf492wbc4mwlmqsm8hyjljx3zddmx2iklvk"; depends=[]; };
+  fipio = derive2 { name="fipio"; version="1.1.1"; sha256="0wvx64nazbv44hdsj3q6mz70m81asmwgxp28sapaaal36l180jfs"; depends=[]; };
   fipp = derive2 { name="fipp"; version="1.0.0"; sha256="0wr3czwsqwa1bpdcjk0r1739vjanxc0fv0vnl3r5lgykrbhw9v3r"; depends=[matrixStats Rcpp RcppArmadillo]; };
   firebase = derive2 { name="firebase"; version="1.0.1"; sha256="0sdv3l13byqn4sfp360scj4260adyvnbvzxkc88zvg3k33fx5hmn"; depends=[base64enc cli htmltools jose jsonlite openssl R6 shiny]; };
   firebehavioR = derive2 { name="firebehavioR"; version="0.1.2"; sha256="10krny60dkpgwjjnriap91qmrnfq1rl5ck4ynf4h6x016bv0m374"; depends=[ggplot2]; };
@@ -9448,7 +9460,7 @@ in with self; {
   fitbitScraper = derive2 { name="fitbitScraper"; version="0.1.8"; sha256="0b4d7xw6inp6l1dkfwyrzxwg4vspp4vzlwrhv14ajxrqz6irj8a0"; depends=[httr jsonlite stringr]; };
   fitbitViz = derive2 { name="fitbitViz"; version="1.0.4"; sha256="1cp5nkaj9ikqcv3yp030id1wklj3jnx002sz2ib0vzza81zyw8bw"; depends=[data_table ggplot2 ggthemes glue hms httr jsonlite leafgl leaflet lubridate magrittr paletteer patchwork raster rayshader rstudioapi scales sf terra varian viridis XML]; };
   fitbitr = derive2 { name="fitbitr"; version="0.2.0"; sha256="1v5mhqdiynla7rmspxp5bg6xjjxac0y3qh2nv82pr3fvzvxrrqz8"; depends=[dplyr httr janitor jsonlite lubridate magrittr purrr rlang tibble tidyr]; };
-  fitdistrplus = derive2 { name="fitdistrplus"; version="1.1-6"; sha256="1glnbcm1gghzgvzpxcfsmn7dp2f9jqyx39n3ydwp9fx38409khhp"; depends=[MASS survival]; };
+  fitdistrplus = derive2 { name="fitdistrplus"; version="1.1-8"; sha256="0nhgjvwya95v6b9khbsgp44lw10xg35w61lmka1v6wq7yh827izk"; depends=[MASS survival]; };
   fitmix = derive2 { name="fitmix"; version="0.1.0"; sha256="1z7jgxz119lkyggmgpykcslv56z1i7pnbp872jkdni77sx94x89c"; depends=[]; };
   fitplc = derive2 { name="fitplc"; version="1.2-3"; sha256="1yg3ch907c4gk7q8hxgwqxgngkmy125j3ni917nkzi7hn59krd1n"; depends=[car nlme]; };
   fitscape = derive2 { name="fitscape"; version="0.1.0"; sha256="0y9x0n61y366f35d594523l3c5sjaf87msxhnlbs2w3g7d53yvfb"; depends=[]; };
@@ -9457,8 +9469,9 @@ in with self; {
   fitzRoy = derive2 { name="fitzRoy"; version="1.1.0"; sha256="1vv1sahxbabmqh3h8p60af8xbjp3irp2nmdd3a1w4nwjpykycrqy"; depends=[cli dplyr glue httr jsonlite lubridate magrittr progress purrr readr rlang rvest stringr tibble tidyr tidyselect xml2]; };
   fivethirtyeight = derive2 { name="fivethirtyeight"; version="0.6.2"; sha256="0nja8zbbkrxrvznyi1c38yzv6djx58ac5y4l1nkf07ph5d9i3k81"; depends=[]; };
   fixedTimeEvents = derive2 { name="fixedTimeEvents"; version="1.0.1"; sha256="18cqbxrs69p60anvii22mhqkwh5y2mxapmznff9g7j1j6h4h62lr"; depends=[]; };
+  fixedincome = derive2 { name="fixedincome"; version="0.0.1"; sha256="02acsrkhh95k4z3y0h7ip41w3snhc74wisx5k0brz6kwqpsqilfx"; depends=[bizdays]; };
   fixerapi = derive2 { name="fixerapi"; version="0.1.6"; sha256="0ikf8dn0l9c9gshp4bph3wasl0bh6lfybinc8n1rvb202231hmgb"; depends=[jsonlite tibble tidyr]; };
-  fixest = derive2 { name="fixest"; version="0.10.3"; sha256="1idc20ih5qmifi0w74zp1ak19qcz4k0718i2210k0b2rc2axl4fm"; depends=[dreamerr nlme numDeriv Rcpp sandwich]; };
+  fixest = derive2 { name="fixest"; version="0.10.4"; sha256="0xwjf61k0sxlgpjmzys0j6mcgvvxidr6k47kqv68yjl46j90s0i0"; depends=[dreamerr nlme numDeriv Rcpp sandwich]; };
   fixtuRes = derive2 { name="fixtuRes"; version="0.1.3"; sha256="1vmdbx1pfk4kcxq5q5hj4v6rz403xw66gpg6zpvrxkpcgkx2dwyz"; depends=[checkmate dplyr glue lubridate purrr R6 rlang stringi yaml]; };
   fizzbuzzR = derive2 { name="fizzbuzzR"; version="0.1.1"; sha256="119gbi9y4n8r52hk9vj7zf795dv9xnk7lnngljjcd7ydnhygwd4h"; depends=[]; };
   flacco = derive2 { name="flacco"; version="1.8"; sha256="15h2q9xgddy7gw6r52c2nk618f3z1mjn4xz9pzdvhm1d3kqggwa4"; depends=[BBmisc checkmate mlr]; };
@@ -9492,7 +9505,8 @@ in with self; {
   flextable = derive2 { name="flextable"; version="0.7.0"; sha256="15vr5lb87712mymsvv01kz9s1fb54sx5kybsa2x547k5g10dbrbm"; depends=[base64enc data_table gdtools htmltools knitr officer rlang rmarkdown uuid xml2]; };
   flifo = derive2 { name="flifo"; version="0.1.5"; sha256="03x66l3ryrjvwbxxd0ncjrb5w9kc7fswmp5psb1cb7r87f395gm3"; depends=[bazar pryr]; };
   flightplot = derive2 { name="flightplot"; version="0.1.0"; sha256="1276lsahr9kdsvp1ismm3b5syvhfr7ifizzd79f8w1h2rjblva8x"; depends=[dplyr geosphere ggplot2 ggrepel magrittr rlang sf tibble]; };
-  flightsbr = derive2 { name="flightsbr"; version="0.1.1"; sha256="0wgiikbz8jm3pgj47jad9mzvdgbp1wbwfr3ps0ncrk11vdw2iqpf"; depends=[data_table httr parzer pbapply rvest]; };
+  flightsbr = derive2 { name="flightsbr"; version="0.1.2"; sha256="15ws4gykms0wqdaabk1lc7cbkfzgblphq16fh85k38lay4fclvh6"; depends=[data_table httr parzer pbapply rvest]; };
+  flimo = derive2 { name="flimo"; version="0.1.1"; sha256="0j15zx1p2nb04hwxa8klmwpqc7gj0g2da8a03z01caf4si5cg5b1"; depends=[ggplot2 gridExtra JuliaConnectoR]; };
   flintyR = derive2 { name="flintyR"; version="0.0.2"; sha256="13bzglcwd4r6q8ix8diy2dljns722k29zbd782fvkxc59ikx7dja"; depends=[assertthat doParallel foreach Rcpp RcppArmadillo testthat]; };
   flip = derive2 { name="flip"; version="2.5.0"; sha256="08x5hwxaxbgc745gblja7gcy0b5wbp7jf90lkha75zl5cc9iyksl"; depends=[cherry e1071 plyr someMTP]; };
   flipbookr = derive2 { name="flipbookr"; version="0.1.0"; sha256="0ls51risk3qn5fagw31i2kibrxk7xk3845a1cccd83sc4c8ilgjx"; depends=[dplyr glue knitr magrittr purrr rmarkdown stringi stringr tibble tidyr]; };
@@ -9501,7 +9515,7 @@ in with self; {
   flippant = derive2 { name="flippant"; version="1.5.3"; sha256="1d1rrmnhbbixkwscw2gqk6pm8jvvgikyrd4hzrpif4qd5xj833dj"; depends=[assertive_base assertive_files assertive_numbers assertive_properties assertive_strings assertive_types data_table ggplot2 magrittr minpack_lm plyr pracma stringi withr]; };
   flipr = derive2 { name="flipr"; version="0.3.1"; sha256="1k6ykmj58c6vv8p1cn2wy9amlyxgrw3vphh97bv0pqqxyhnrlxjm"; depends=[cli dials ggplot2 magrittr optimParallel pbapply purrr R6 Rcpp rgenoud rlang tibble usethis viridisLite withr]; };
   flipscores = derive2 { name="flipscores"; version="1.1.0"; sha256="0pznbv8gq6jx0hd9dq6yjxyz4p75h8x0jznfa02yh4xdzjmamiw6"; depends=[car flip MASS plyr]; };
-  float = derive2 { name="float"; version="0.2-6"; sha256="1bx5yxkb123001v31jjk7h7f0qissmjydvbil5cj3jvmqkayq1a1"; depends=[]; };
+  float = derive2 { name="float"; version="0.3-0"; sha256="0m7bf3548vlgkk1c78jyrgj72ngwg0gsccap2iqinm3l3qrm4zbs"; depends=[]; };
   flobr = derive2 { name="flobr"; version="0.2.2"; sha256="1khl7zld1fwigk20sl5ibacyrbln40pkfqpzpxj6si7m1q6yvv1a"; depends=[blob chk lifecycle]; };
   flock = derive2 { name="flock"; version="0.7"; sha256="1zg93p74icj4bhxnmnssj2xp6vw4yaksyavq03497v33xfpdxss7"; depends=[Rcpp]; };
   flood = derive2 { name="flood"; version="0.1.1"; sha256="0nlmjh2l7dij1aqd70hhj0m550knlin3am14azqkx4pacs1kir3p"; depends=[copula evd magrittr TLMoments]; };
@@ -9546,7 +9560,7 @@ in with self; {
   footBayes = derive2 { name="footBayes"; version="0.1.0"; sha256="1q2xcrrw4x2jdvxr5q3l9lh0sfg3wjw06s9qzil11pb93h5l2ik6"; depends=[arm bayesplot dplyr extraDistr ggplot2 magrittr matrixStats metRology numDeriv reshape2 rstan tidyverse]; };
   footballpenaltiesBL = derive2 { name="footballpenaltiesBL"; version="1.0.0"; sha256="1my67157frp4pxl84sb6dnb7rzp99g59mp9iwwv1s6wc391zfbsp"; depends=[]; };
   footprint = derive2 { name="footprint"; version="0.1"; sha256="00m3jaxiacf9wxa0wg0qxhp6c0prbf2l5c2cid6anz8rc5b6angv"; depends=[airportr dplyr magrittr rlang]; };
-  foqat = derive2 { name="foqat"; version="2.0.1"; sha256="1p607kiw04cq6jrpbmcmpaqilaa2c1mhvqz10fld01mz6k29f7p0"; depends=[dplyr ggnewscale ggplot2 ggplotify gridExtra lmodel2 lubridate magrittr patchwork plyr reshape2 rvest scales stringr xml2]; };
+  foqat = derive2 { name="foqat"; version="2.0.7"; sha256="1hc1ymahch38r9k5i0rfkyv17ybc7pbn69lbnin2gvyq9c9da772"; depends=[dplyr ggnewscale ggplot2 ggplotify gridExtra lmodel2 lubridate magrittr patchwork plyr reshape2 rvest scales stringr xml2]; };
   forImage = derive2 { name="forImage"; version="0.1.0"; sha256="1p8zfndvm7x7pnryphz944hgxcchvc6mwnr6ap15m0i6kwsh0nb4"; depends=[dplyr magrittr reticulate tibble]; };
   forams = derive2 { name="forams"; version="2.0-5"; sha256="1fh3m9896ksv1h7b027yb955bzyv70yafhqvn5crkzalzk3jpb0s"; depends=[vegan]; };
   forcats = derive2 { name="forcats"; version="0.5.1"; sha256="12d2nv2w15085jscgidmjdnr1ryymciflcmal6ldmgp2fkl9dyy4"; depends=[ellipsis magrittr rlang tibble]; };
@@ -9570,19 +9584,20 @@ in with self; {
   forestmangr = derive2 { name="forestmangr"; version="0.9.4"; sha256="1zlp7lnawbfqw60552cwnh280spqj7p2qvn2xwz5y7wly2d7d4fm"; depends=[broom car dplyr FinCal ggdendro ggplot2 ggpmisc ggthemes gridExtra magrittr miniUI minpack_lm plyr purrr rlang scales shiny systemfit tibble tidyr]; };
   forestmodel = derive2 { name="forestmodel"; version="0.6.2"; sha256="0pl9r8j2qd00b9kl585b4k54kic5fvzc56i8cn3hm5yp2hrrwyws"; depends=[broom dplyr ggplot2 rlang tibble]; };
   forestplot = derive2 { name="forestplot"; version="2.0.1"; sha256="0bzwi6ws0qjq1pqiadssynbkxxd4zjp974jfdplmv16fcyszqhyi"; depends=[checkmate magrittr]; };
-  forestploter = derive2 { name="forestploter"; version="0.1.2"; sha256="1vqc1prlzgssc7ywvlgd7c6rysrmb9145fh9akhra6rs1pnrv9pf"; depends=[gridExtra gtable]; };
+  forestploter = derive2 { name="forestploter"; version="0.1.4"; sha256="0ndfdqziqq1759g1kgx8vhpx0dyjafj2k7z48gklp43mwi6m5cj8"; depends=[gridExtra gtable]; };
   forestr = derive2 { name="forestr"; version="2.0.2"; sha256="1kz8f3x2dmsprj2r23gz61fpwg7n14nbjxr16x4cpixvnk427p94"; depends=[dplyr ggplot2 moments plyr tibble tidyr viridis]; };
   forestry = derive2 { name="forestry"; version="0.1.0"; sha256="0q7m0mrig8z2b2z2fng58qlqa6g58xlhfzchil2dvjh6xf3qvsh8"; depends=[data_tree]; };
   foretell = derive2 { name="foretell"; version="0.2.0"; sha256="18vi438n480gizfhnciw67gngvbjnmky19186b1wy75av7fgc1gp"; depends=[nloptr]; };
   forge = derive2 { name="forge"; version="0.2.0"; sha256="0pjfzsc35agkh0zfw2czwajkbsyn6liys5irl5bhz5r1vim3jmwa"; depends=[magrittr rlang]; };
-  formatR = derive2 { name="formatR"; version="1.11"; sha256="0353aj975mj0yjc91z76bbfy86y7d5cvlqqyfr93cdng14nnd0dx"; depends=[]; };
+  formatR = derive2 { name="formatR"; version="1.12"; sha256="12wch1774113nlrc0lihfn5rbh4hln9sg6dv6zc2bvyb8fzyyllb"; depends=[]; };
   formattable = derive2 { name="formattable"; version="0.2.1"; sha256="1vdxi0xmg019qyzjrp8bkjxciz245jcxsrkhfzd44ynqcwi4s3ag"; depends=[htmltools htmlwidgets knitr rmarkdown]; };
+  formatters = derive2 { name="formatters"; version="0.2.0"; sha256="0lsdx90bbcfpkl3kh8lnh3lj8z6jq5z6b69sh29bcgn7720dix81"; depends=[htmltools]; };
   formula_tools = derive2 { name="formula.tools"; version="1.7.1"; sha256="15d3ikfmsh9zszfgfkrxb3jkipl41inm7n6bhs73kwlnklnygq2g"; depends=[operator_tools]; };
   formulaic = derive2 { name="formulaic"; version="0.0.8"; sha256="1nx6a73vw2hjbnqaw8x17ghhljd6z2avxv4arz3c3785pyayhg9k"; depends=[data_table]; };
   formulops = derive2 { name="formulops"; version="0.5.0"; sha256="1mkpv5xjykrhgknq0gh4yg2a3j4xb8q2d6dh0wv8zd9h59hvrzda"; depends=[]; };
   forplo = derive2 { name="forplo"; version="0.1.0"; sha256="15zkzq8vb6ydvic3r2lsna64vqlq12225cpdr7dsrfkn6kqjjzd5"; depends=[]; };
   forrel = derive2 { name="forrel"; version="1.4.1"; sha256="1328cbcnnpy3n8na2brxf2q5i3czkkiajri6zi5yfajwrb2vyg33"; depends=[glue pedmut pedprobr pedtools ribd]; };
-  forsearch = derive2 { name="forsearch"; version="1.0.0"; sha256="047iizf9pfgq292zkhkdwq44ij4kixvxd7d0qqyayckh3c1k9290"; depends=[Cairo ggplot2 Hmisc nlme tibble]; };
+  forsearch = derive2 { name="forsearch"; version="2.2.0"; sha256="10ihwm75q72cgwqsk3i48wjl8z0ay5bn55ys7r5wmsdh9ak0gjzs"; depends=[Cairo ggplot2 Hmisc nlme tibble]; };
   fortunes = derive2 { name="fortunes"; version="1.5-4"; sha256="109ly9kpfn6hy294ava8795wy5z9l1bnl98hhhv8kn9naf4camdg"; depends=[]; };
   forward = derive2 { name="forward"; version="1.0.5"; sha256="0cc0s534s32b9ark2zazwqhgy0zsxb2p63r6503v82784rpqv2yv"; depends=[MASS]; };
   forwards = derive2 { name="forwards"; version="0.1.3"; sha256="07374a1ak5h8q3diqyvsw3q1grqi3679w9sshf1jkhlrj7wn0dmv"; depends=[]; };
@@ -9639,7 +9654,7 @@ in with self; {
   freqdom_fda = derive2 { name="freqdom.fda"; version="0.9.1"; sha256="15wq9s3v441dybc8kglpbv9hdvsr9rjjq4qp4d2ipxglfp0iqj9p"; depends=[fda freqdom mvtnorm]; };
   freqparcoord = derive2 { name="freqparcoord"; version="1.0.1"; sha256="011p8xh0i0x0w5rv5qz5a7fxwdhxd8l2bqi9bxv5almxd0y7ajqx"; depends=[FNN GGally ggplot2 mvtnorm]; };
   freqpcr = derive2 { name="freqpcr"; version="0.4.0"; sha256="04s6yrzxk4v86nhs9mwam1y2lfac73r6i8af9xbbmrlzj61wiia9"; depends=[cubature]; };
-  freqtables = derive2 { name="freqtables"; version="0.1.0"; sha256="0d2yibb8689786icfladxfm51sqng909wigvqmwij9lkqq14rd80"; depends=[dplyr rlang stringr]; };
+  freqtables = derive2 { name="freqtables"; version="0.1.1"; sha256="03xcv08f8xzmrd6msk15vljp2srv59dzzs5ngkw1p2dv917w7dq3"; depends=[dplyr rlang stringr]; };
   frequency = derive2 { name="frequency"; version="0.4.1"; sha256="0sjsc803ysyg2gfzb7z4jb2sikwxs99is2m03k5glfy3ylgphn0d"; depends=[DT ggplot2 gtools knitr rmarkdown]; };
   frequencyConnectedness = derive2 { name="frequencyConnectedness"; version="0.2.3"; sha256="1yzpgflldcdsd5kj0jpyj0vwx25f3l0x344glbrwvlwgdax9dkg8"; depends=[knitr pbapply urca vars]; };
   frequentdirections = derive2 { name="frequentdirections"; version="0.1.0"; sha256="0rmifh221c8z3cqyqg0bfxnih9f64hvv98jz44i6grnlablfwwgw"; depends=[ggplot2]; };
@@ -9647,7 +9662,7 @@ in with self; {
   fresh = derive2 { name="fresh"; version="0.2.0"; sha256="1787mm6w2s5x9scxy7r9cb77rgpmy4ngwkn4z8g3gs48mrab4bd9"; depends=[htmltools rstudioapi sass shiny]; };
   frictionless = derive2 { name="frictionless"; version="1.0.0"; sha256="17an6wxwb9qcj42rsm3311jx1f2d91fpq0d0831xswngc548bmp5"; depends=[assertthat dplyr glue httr jsonlite purrr readr yaml]; };
   friends = derive2 { name="friends"; version="0.1.0"; sha256="164p9g07vq3xs2lgg250yvzca4b0mp81pqbnjfdkzcqh5hmahsan"; depends=[tibble]; };
-  fritools = derive2 { name="fritools"; version="3.2.0"; sha256="1kjzc97ivz95rvhs0jzfvyfvznkcgklc7f9xplbim3yfl07w2hsc"; depends=[]; };
+  fritools = derive2 { name="fritools"; version="3.3.0"; sha256="1qicnsyy5r25n2y307941j85j8x6qdy66awhz72jmyvrnhghmhac"; depends=[]; };
   frm = derive2 { name="frm"; version="1.2.2"; sha256="1dl0vca9r2dams99sc13pfpi0b3yb02x59f4c1jz07zz005c8l23"; depends=[]; };
   frmhet = derive2 { name="frmhet"; version="1.1.3"; sha256="07sgsfhzrci8g1b0gicjfca1mgd8ppfqpkpp4q9bdxnjvdvlf45s"; depends=[]; };
   frmpd = derive2 { name="frmpd"; version="1.1.0"; sha256="0irgqdr0vr8k408lsxcrjkjbjvqvmy5mnjw9c1ghs86isrp5mciz"; depends=[]; };
@@ -9671,7 +9686,7 @@ in with self; {
   fsr = derive2 { name="fsr"; version="1.0.1"; sha256="1h0ljb28nffjjjry93lsvw2i109g0mmjgdd335y7r3zgz1s34x2d"; depends=[dplyr e1071 FuzzyR ggplot2 lwgeom pso rlang sf stringr tibble]; };
   fssemR = derive2 { name="fssemR"; version="0.1.8"; sha256="1rja69b6x5vc302nksh5m6ssp2lx8drv9gjnkv6j9xr3hd2407xi"; depends=[glmnet igraph MASS Matrix mvtnorm qpdf qtl Rcpp RcppEigen stringr]; };
   fst = derive2 { name="fst"; version="0.9.8"; sha256="0r96inwrr960m7wmc80603bw2vvvwab225bh9dq3lalwhy4yiis4"; depends=[fstcore Rcpp]; };
-  fstcore = derive2 { name="fstcore"; version="0.9.8"; sha256="1qicjwsm87wgjm5mxrsgi697fmcfz6wyqcxfgngwxrf8kq4awjsf"; depends=[Rcpp]; };
+  fstcore = derive2 { name="fstcore"; version="0.9.12"; sha256="1a5m68n2dqhi3r8wf5jwg4vjvl550c7wypcf5j0xmkvl836yg1lg"; depends=[Rcpp]; };
   fsthet = derive2 { name="fsthet"; version="1.0.1"; sha256="0z6az1jcvdahgn97r6cpj1s6fn0lvr7j12gcw2r7wbpajrvyl5j6"; depends=[]; };
   ftDK = derive2 { name="ftDK"; version="1.0"; sha256="1xs2rr2afjza97kpym5zkas3k78pilxjlh7lp1gc66banldr71g2"; depends=[dplyr httr pbapply purrr tibble]; };
   ftExtra = derive2 { name="ftExtra"; version="0.3.0"; sha256="1aal3cwdp9gnc0gnigk7789rak3s6i5jav01d9z25gm977683b76"; depends=[dplyr flextable jsonlite magrittr purrr rlang rmarkdown stringr tibble tidyr tidyselect vctrs xfun yaml]; };
@@ -9722,7 +9737,7 @@ in with self; {
   future = derive2 { name="future"; version="1.24.0"; sha256="0xmj17fq9paww796490bmakv6pcvrzk15i8mzhxk1mp9l0mj32vv"; depends=[digest globals listenv parallelly]; };
   future_apply = derive2 { name="future.apply"; version="1.8.1"; sha256="1ix61bfbk43pwnjb0wk8lkfgdsy5zi8svk74gar5nrl90b5w6nqd"; depends=[future globals]; };
   future_batchtools = derive2 { name="future.batchtools"; version="0.10.0"; sha256="1ly98h2g7wpfxp2r8vl1hy7wqqgwgawjagz0m2iczjmcj4ix6avk"; depends=[batchtools future]; };
-  future_callr = derive2 { name="future.callr"; version="0.7.0"; sha256="0y5x2xz29j7aidk3c1iby3dk23gpxmgzp4f5z5bdgd1w0n4jslg4"; depends=[callr future]; };
+  future_callr = derive2 { name="future.callr"; version="0.8.0"; sha256="1nhkmxaaii647gizrxa8zj1iakivml7zrqi4bvvs5yshc7m9slg9"; depends=[callr future]; };
   future_tests = derive2 { name="future.tests"; version="0.3.0"; sha256="1ssr0sd9h10151m5iaad17zqii7d18nnszq2svj0i8izk83xhrik"; depends=[cli crayon future prettyunits sessioninfo]; };
   futureheatwaves = derive2 { name="futureheatwaves"; version="1.0.3"; sha256="122b2z86bzxfch67y6cpq8wj62mw0dgkzbmnpwi247kdx7w5mw1f"; depends=[data_table dplyr ggplot2 ggthemes leaflet Rcpp stringr tidyr]; };
   fuzzr = derive2 { name="fuzzr"; version="0.2.2"; sha256="1cwq7a5j6lzrlz9dw3hsfap988rh1kkgf03yni7c33zl69xp5w77"; depends=[assertthat progress purrr]; };
@@ -9751,11 +9766,10 @@ in with self; {
   gMWT = derive2 { name="gMWT"; version="1.1.1"; sha256="1vbw548fyrf012ry54p3gybdsil8c9llg2r9njhsiy7rb0gz2613"; depends=[clinfun Rcpp RcppArmadillo]; };
   gPdtest = derive2 { name="gPdtest"; version="0.4"; sha256="00dlhnklfg2yp4hp7yjgr2nfswv22c007xq1mxdbkll62zgd94mq"; depends=[]; };
   gProfileR = derive2 { name="gProfileR"; version="0.7.0"; sha256="1h1v0kgpsn04ald2izznh7fr2riwisj5hcgz4k7h3qc931rf0r4k"; depends=[plyr RCurl]; };
-  gRain = derive2 { name="gRain"; version="1.3-6"; sha256="0l95yvv3ig11k71xkvh0ivvkan4hvpmjsa12yg1laaaqiaqzzxnm"; depends=[graph gRbase igraph magrittr Rcpp RcppArmadillo RcppEigen Rgraphviz]; };
+  gRain = derive2 { name="gRain"; version="1.3.9"; sha256="00xqb6jwxqfda7ir218xz944rmzcxsnccc0is00lljlsdfy290wr"; depends=[graph gRbase igraph magrittr Rcpp RcppArmadillo RcppEigen Rgraphviz]; };
   gRapfa = derive2 { name="gRapfa"; version="1.0"; sha256="07yzwzna9pdyzndxk6wwyl6v3gkfc7dvy1ixmdl3d38mcl1ahwyq"; depends=[igraph]; };
-  gRbase = derive2 { name="gRbase"; version="1.8-6.7"; sha256="121kfjydl96gfi3x2fr7qd83ha6lcjn7a0bwlphn1pi1nphwgbxa"; depends=[graph igraph magrittr Matrix RBGL Rcpp RcppArmadillo RcppEigen Rgraphviz]; };
+  gRbase = derive2 { name="gRbase"; version="1.8.7"; sha256="027qk7mcw6jyzkfjx15s5aj36drnbwl88wzh2d72phls08dpxmq1"; depends=[BiocManager graph igraph magrittr Matrix RBGL Rcpp RcppArmadillo RcppEigen Rgraphviz]; };
   gRc = derive2 { name="gRc"; version="0.4.4"; sha256="0p1m816al9djv5fhzgsgrbbbcpx5c5wjxvxwni6gs2cwxbxmdvcp"; depends=[gRbase magrittr MASS Rcpp RcppArmadillo]; };
-  gRim = derive2 { name="gRim"; version="0.2.5"; sha256="0m3lc42r6qd6kps3y7jz11ry4886cc87ld1s1phypna98qjy6gky"; depends=[gRain graph gRbase igraph magrittr Rcpp RcppArmadillo RcppEigen Rgraphviz]; };
   gSEM = derive2 { name="gSEM"; version="0.4.3.4"; sha256="18kh41ibvfflz59gykiq7j2c6a72i8b0w8c2mcprd1nzhnyhvmhy"; depends=[DiagrammeR htmlwidgets knitr MASS]; };
   gSeg = derive2 { name="gSeg"; version="1.0"; sha256="0lixlirisnxk29zlrragi3l8j1abb5cl7zh6vhx7l5hjdvh8ldq9"; depends=[]; };
   gStream = derive2 { name="gStream"; version="0.2.0"; sha256="1f4xnbavm99yhjmaahazigps41mqlfvvl29kf4fs1yjqr531y36b"; depends=[]; };
@@ -9772,15 +9786,15 @@ in with self; {
   galigor = derive2 { name="galigor"; version="0.2.5"; sha256="1lfw1kikf90nv9g0xrb656fbilmxdk64zrzi43wrz7y2y55sd5xv"; depends=[cli crayon dplyr gargle getProxy magrittr purrr rappsflyer rfacebookstat rgoogleads rmytarget rstudioapi rvkstat ryandexdirect rym tibble tidyr]; };
   galts = derive2 { name="galts"; version="1.3.1"; sha256="0jg0yng1kc6s0qdhq8ps38dsxdcrgdcn8dl2dlclw6rcbknb6h4k"; depends=[DEoptim genalg]; };
   galvanizer = derive2 { name="galvanizer"; version="0.5.3"; sha256="1b9431mmgpqyd49b8nlsrlxjq9j9fyj73226bi9jic1p867533kk"; depends=[dplyr httr jsonlite lubridate magrittr rlang tibble tidyjson tidyr tidyselect]; };
-  gam = derive2 { name="gam"; version="1.20"; sha256="1zhy2fp7pxac8xp3z3hndhprj4s5gx3305b627vc78bal1ml3swi"; depends=[foreach]; };
+  gam = derive2 { name="gam"; version="1.20.1"; sha256="1bbxiqfgi7jc9vw1hspw5q41d69nlw2v6k91zqlvmam5pvxcd1sp"; depends=[foreach]; };
   gamCopula = derive2 { name="gamCopula"; version="0.0-7"; sha256="0zi9g2vxkn1hxc2qyyr1x8p1f9w7fc1j5dmm2mmm333gixkkz9nb"; depends=[copula doParallel foreach gsl igraph MASS mgcv numDeriv VineCopula]; };
   gamRR = derive2 { name="gamRR"; version="0.7.0"; sha256="0zn8921a4i1lz5wpdfbd72pqb25r12abyqw7y2w53kfhdzs57f3l"; depends=[boot mgcv]; };
   gamair = derive2 { name="gamair"; version="1.0-2"; sha256="1cjrd576l9md1jb1fc1y6iay5y49i0d8by024qsc7yik6f6mdl13"; depends=[]; };
   gambin = derive2 { name="gambin"; version="2.5.0"; sha256="137z6dxrvf05ss9bqh96bsl8rm6gzpk7kdgnfqh355mn0m5h2zx6"; depends=[doParallel foreach gtools]; };
   gamblers_ruin_gameplay = derive2 { name="gamblers.ruin.gameplay"; version="4.0.5"; sha256="0h5sfjs2lzs3cfx7q0agq68x4hhqmkiqga04c1gvnzwn8k7i8svc"; depends=[gganimate ggplot2 hrbrthemes viridis]; };
-  gamboostLSS = derive2 { name="gamboostLSS"; version="2.0-5"; sha256="1qlcsfv9k9aydv2bdfmbrilxfcmp3nzixnlr59k8idg1f7ph04cl"; depends=[mboost stabs]; };
   gamboostMSM = derive2 { name="gamboostMSM"; version="1.1.87"; sha256="0if0x92lch57ksll8d5i3jzk0kh40593b20c17g3hvc33920c7r0"; depends=[mboost]; };
   gamclass = derive2 { name="gamclass"; version="0.62.3"; sha256="0i2nynl4b46rdl8f2zashcg0dvlhcq9paq8hx5y40xpxm8iljqab"; depends=[lattice latticeExtra randomForest rpart]; };
+  gameR = derive2 { name="gameR"; version="0.0.1"; sha256="15bzap2f80mrqklxlyy97nq452vy88l93bp8h4arqrzvhj7pjyqq"; depends=[]; };
   gameofthrones = derive2 { name="gameofthrones"; version="1.0.2"; sha256="10ns4yl1s8adlf334gl8yararj1fpxbg3gy7h69s554m4h878awk"; depends=[ggplot2 gridExtra MASS]; };
   games = derive2 { name="games"; version="1.1.2"; sha256="01hbbr2hsxi5j9axpdl0jihpd55pa9hacjxmab8p7cixk3xqqqbf"; depends=[Formula MASS maxLik stringr]; };
   gamesGA = derive2 { name="gamesGA"; version="1.1.3.7"; sha256="0km0z2haqgykl01xkzsbkpwibavgqfjygx7cg08ni68gw501689l"; depends=[shiny]; };
@@ -9816,13 +9830,12 @@ in with self; {
   gapfill = derive2 { name="gapfill"; version="0.9.6-1"; sha256="15mrn44v5l4sgxwlyp1rik5mdg7m2s6xxcdigc3sjd1yhxalgw12"; depends=[fields foreach ggplot2 quantreg Rcpp]; };
   gapmap = derive2 { name="gapmap"; version="0.1.0"; sha256="04dz7ns7xsa0q0v7sllaqlhk4mis8gvqzr2a1y4fiiqrk7337gmm"; depends=[ggplot2 reshape2]; };
   gapminder = derive2 { name="gapminder"; version="0.3.0"; sha256="067cra1ca4ngwjx8d1y9pyzwcpsfi1wcal0glzyy6ghd1k6jflpv"; depends=[tibble]; };
-  garchmodels = derive2 { name="garchmodels"; version="0.1.1"; sha256="1nmhsxhfbp7jn85jwnhm4p5kl0jc5n1bjwwwpia774ycr6krazwn"; depends=[dials dplyr magrittr parsnip purrr rlang rmgarch rugarch stringr tibble tidyr]; };
   garchx = derive2 { name="garchx"; version="1.3"; sha256="0fpanzl6nfq6dar5chmqqfndb3w01mcypkhj0ya6v3d77m02b5mf"; depends=[zoo]; };
   gargle = derive2 { name="gargle"; version="1.2.0"; sha256="0fypj70c1fjmvs57birik76wfx8a2fs4gzicbb52k57i6clwlijd"; depends=[cli fs glue httr jsonlite rappdirs rlang rstudioapi withr]; };
   gargoyle = derive2 { name="gargoyle"; version="0.0.1"; sha256="0lsjplfrc047lb3zjfsc8wl47kll7d85v824k7zlr0n34xbbypq7"; depends=[attempt shiny]; };
   garma = derive2 { name="garma"; version="0.9.11"; sha256="05jhac1cm82xjpz1dnwp7xcs58b3lxbzh4wmr4z7hkn5jdh3gsv5"; depends=[BB crayon dfoptim FKF forecast GA ggplot2 lubridate nloptr pracma pso Rsolnp signal tswge zoo]; };
   garray = derive2 { name="garray"; version="1.1.2"; sha256="0s2dgi556x9jnhafvzz4qkxdbq9dm12gsvsqd2g9iy3468fx9flq"; depends=[]; };
-  gaselect = derive2 { name="gaselect"; version="1.0.10"; sha256="14gz6429hap8gj7is0p9qigdzn1zzyqh1dykrpk4wvhqbid8ir73"; depends=[Rcpp RcppArmadillo]; };
+  gaselect = derive2 { name="gaselect"; version="1.0.11"; sha256="18nrvad7qdrwgdi5a13kp2m26jsfdfdrwhv2azkrhfv285ziwd5q"; depends=[Rcpp RcppArmadillo]; };
   gasfluxes = derive2 { name="gasfluxes"; version="0.4-4"; sha256="0gi0zk0h5rw75n6znada0cwa9qzy8higsiiqwgdm3q827j1x8iva"; depends=[AICcmodavg data_table MASS sfsmisc]; };
   gasper = derive2 { name="gasper"; version="1.1.1"; sha256="10kl5d8lm2jvqrfk0qliyb3afmk9bhjm5zvs4g31zpa3icbz9r2p"; depends=[ggplot2 Matrix Rcpp RcppArmadillo RSpectra]; };
   gastempt = derive2 { name="gastempt"; version="0.5.4"; sha256="02b35y0sq0piq5p8k5fviymqyqx1c2k793pm7j79xymmpzf8f52r"; depends=[assertthat BH dplyr ggplot2 nlme Rcpp RcppEigen RcppParallel rstan shiny StanHeaders stringr tibble utf8]; };
@@ -9831,7 +9844,7 @@ in with self; {
   gatepoints = derive2 { name="gatepoints"; version="0.1.4"; sha256="0gwyrkxn4xd79cl60xa312k6nz17mdjdiym65dq7s2384fa80wbm"; depends=[]; };
   gauseR = derive2 { name="gauseR"; version="1.1"; sha256="0jlbaylglyza6hlf62g3z0n349zlzlhx6g4jwdzg8b2sh4c3c9yn"; depends=[deSolve]; };
   gaussDiff = derive2 { name="gaussDiff"; version="1.1"; sha256="0fqjdxp2ibbami75ba16d02dz4rz5sk8mni45di9anydx44g9d45"; depends=[]; };
-  gausscov = derive2 { name="gausscov"; version="0.1.5"; sha256="0628bwazanqp8zkci93nyaa7hqwdwwlbcq4mwmkgf6xkbqmi00z8"; depends=[]; };
+  gausscov = derive2 { name="gausscov"; version="0.1.6"; sha256="1c7v3a3610fgp4s70f5lsianmnxrg8zylm303xwrb0bdpkvn0bvm"; depends=[]; };
   gaussfacts = derive2 { name="gaussfacts"; version="0.0.2"; sha256="095x7k7m7sy1gqkbm6wiqn26252dclz62sbnkv6cjvmbdxajl7m9"; depends=[]; };
   gaussplotR = derive2 { name="gaussplotR"; version="0.2.5"; sha256="0amkgzgh6764ri30210nhbi3wcll3248fmkpclx010dxc3hllfdx"; depends=[ggplot2 metR rgl viridisLite]; };
   gaussquad = derive2 { name="gaussquad"; version="1.0-2"; sha256="0bcvkssmwwngcd4cnv924n9h3c8z1w3x9c9bkwn5jbz9zyv1lfms"; depends=[orthopolynom polynom]; };
@@ -9862,12 +9875,12 @@ in with self; {
   gcookbook = derive2 { name="gcookbook"; version="2.0"; sha256="11g1q187l4j31b6cdzdx5z3s14z3s09l7ynl36pzzn9j19l8cmrc"; depends=[]; };
   gdalUtilities = derive2 { name="gdalUtilities"; version="1.2.0"; sha256="0nxnw9azlml13a6rqhxjrwq8v7fb2pjcb07dp5r2p5bzyzvldm7a"; depends=[sf]; };
   gdalUtils = derive2 { name="gdalUtils"; version="2.0.3.2"; sha256="0krapdy50nd5dvcdflz39dzxpig3zklng3hgxavqg2nvwazalvsc"; depends=[foreach R_utils raster rgdal sp]; };
-  gdalcubes = derive2 { name="gdalcubes"; version="0.6.0"; sha256="05hgnplbps3kk7p19mf7j0a3dlf7061yxi2sq9p9ydaywav0z4ji"; depends=[jsonlite ncdf4 Rcpp]; };
+  gdalcubes = derive2 { name="gdalcubes"; version="0.6.1"; sha256="0hw6q1gc9f23n9fd9h6ljrx3rjyk91x6b5m40c4hyng5xaxwvdhw"; depends=[jsonlite ncdf4 Rcpp]; };
   gdata = derive2 { name="gdata"; version="2.18.0"; sha256="0zwdj7lscgxr8r62ii8hbdh4mb7sa9w4f5nv32zzrxdvymcpya2b"; depends=[gtools]; };
   gde = derive2 { name="gde"; version="0.2.0"; sha256="1xrncdmidzz9dv51bnbcrdh92im0lr97xi4rgb30p5sfxc4axml9"; depends=[data_table dplyr DT ggplot2 httr jsonlite leaflet progress R_utils readr RSQLite shiny shinycssloaders shinyWidgets stringr XML]; };
   gdiff = derive2 { name="gdiff"; version="0.2-2"; sha256="0hg9mf3qyg19wwpiv3lz2z1000jw73s2pwb8y8hjgpv69wwsskfi"; depends=[magick pdftools]; };
   gdistance = derive2 { name="gdistance"; version="1.3-6"; sha256="093a29yb544gxldwxgkyfc9bhmz3by0pknnj1c666i6gz2rbxjic"; depends=[igraph Matrix raster sp]; };
-  gdm = derive2 { name="gdm"; version="1.5.0-1"; sha256="11pf56n8kdmqab88s2xhaz05jj19b5m758f6rfdm7qc01y97s3kb"; depends=[doParallel foreach raster Rcpp reshape2 vegan]; };
+  gdm = derive2 { name="gdm"; version="1.5.0-3"; sha256="1vj38p7l36znha56c9dfm75z8rfpjhpmhzrsp3sqiwpvb650mmk8"; depends=[doParallel foreach pbapply raster Rcpp reshape2 vegan]; };
   gdns = derive2 { name="gdns"; version="0.5.0"; sha256="1bicimkxsyfg9yqaikapwlv8x9xdvsb00fqnfka07i6b63109sxh"; depends=[httr jsonlite magrittr stringi tinytest]; };
   gdpc = derive2 { name="gdpc"; version="1.1.2"; sha256="0g1mnxm78n928g7qjf0w7jzfm27z6mvz5p1rm25mxv7wsif5m6s6"; depends=[doParallel foreach Rcpp RcppArmadillo xts zoo]; };
   gds = derive2 { name="gds"; version="0.1.1"; sha256="0gwq0k80rnbg4ibz6dz8sk6hqaklrdbv4vzv8zyk74am3aqipn20"; depends=[]; };
@@ -9897,7 +9910,7 @@ in with self; {
   genSEIR = derive2 { name="genSEIR"; version="0.1.1"; sha256="02lprxxpf7ll23habq05b6slgbh978k09sqr6myr2jhlax2snxvk"; depends=[ggplot2 minpack_lm nlsr pracma]; };
   genSurv = derive2 { name="genSurv"; version="1.0.4"; sha256="07f6prqpc1mafzb8dyp8xgycrrd548rj9cpn3qz64lh1qjymns3m"; depends=[]; };
   genTS = derive2 { name="genTS"; version="0.1.3"; sha256="1ky8h8yzqfkb91ny9z08gr7irzvjqr1b42k89ahcrmk458hjwgqr"; depends=[shiny]; };
-  genalg = derive2 { name="genalg"; version="0.2.0"; sha256="1wzfamq8k5yhwbdx0wy1w5bks93brj0p890xxc4yqrja4w38ja3s"; depends=[]; };
+  genalg = derive2 { name="genalg"; version="0.2.1"; sha256="1y4qz1s85zpd1r3259gr542arssf2vpd4drhy0wnq5q47ignrvna"; depends=[]; };
   genasis = derive2 { name="genasis"; version="1.0"; sha256="1r0733cc2hss3f8dp19s1ji55yp72mds7p3x1zvvpiks2r7w712p"; depends=[fitdistrplus Kendall]; };
   gencor = derive2 { name="gencor"; version="1.0.0"; sha256="1an1q4bbd5xqyy66wjzalx74iff0iia2sf2f1q9k17vh9zclgz41"; depends=[]; };
   gencve = derive2 { name="gencve"; version="0.3"; sha256="00wbmaffm7mbfv3zl6mb24w1df1a8p24girwdh3a522lw3045iwf"; depends=[C50 class e1071 glmnet lars MASS nnet plus randomForest rpart]; };
@@ -9944,7 +9957,7 @@ in with self; {
   gensphere = derive2 { name="gensphere"; version="1.3"; sha256="0cf1xmwi32x3ga9m5k7a93vdwix84ny7wxb74mddmfvb3m1v4c7g"; depends=[geometry mvmesh rgl SimplicialCubature SphericalCubature]; };
   genstab = derive2 { name="genstab"; version="1.0.0"; sha256="09kg70v8qj8rbqwk0zm3xg54pmrr26l8n1s9x26s8qrsns0dgz0x"; depends=[]; };
   gensvm = derive2 { name="gensvm"; version="0.1.5"; sha256="1r0f3l6df1sn3vx5sjssx8p35lw100q0qz6v1fckdfw04z53g4im"; depends=[]; };
-  geoBayes = derive2 { name="geoBayes"; version="0.7.0"; sha256="0bjr77ifmpf5y560iwzm0sv8mkvz6c4isn78gmdy6m8531b11frh"; depends=[coda optimx sp]; };
+  geoBayes = derive2 { name="geoBayes"; version="0.7.1"; sha256="02ksavydvl9v7fiyxpg0h1s308lc1si29rhpffnqz26jm40bvnvh"; depends=[coda optimx sp]; };
   geoFKF = derive2 { name="geoFKF"; version="0.1.0"; sha256="0fapxfckyhgs1lzaviicnrhmjzdlkxfg2ccn46zcrybqq995g9js"; depends=[numDeriv Rcpp RcppArmadillo]; };
   geoFourierFDA = derive2 { name="geoFourierFDA"; version="0.1.0"; sha256="1a5ggjyfj5ic9h7fqvy3r7s0i6bmbwk95bf7y3vrmmmj0sxdm1mf"; depends=[magrittr orthopolynom Rcpp RcppArmadillo]; };
   geoGAM = derive2 { name="geoGAM"; version="0.1-2"; sha256="0q09pk2npn4hjymklwfrhz2ybmjpcb6kvqkpn9l3a6cdjgk6bkmj"; depends=[grpreg MASS mboost mgcv]; };
@@ -10010,7 +10023,7 @@ in with self; {
   gepaf = derive2 { name="gepaf"; version="0.1.1"; sha256="0n36w40jrq3qkgmhz9wrnhp6fczw7bm96g950sa4nq33872xhfgm"; depends=[bitops]; };
   gerbil = derive2 { name="gerbil"; version="0.1.5"; sha256="1rvf7z7zj04p2faj41fxxjs20bd3ghr6fbzkkapcx48fr4j9skj2"; depends=[DescTools lattice MASS mvtnorm openxlsx pbapply truncnorm]; };
   germinationmetrics = derive2 { name="germinationmetrics"; version="0.1.5"; sha256="1gazx0k4nhb9xsyqi0zxdzg9a0kfvf7g1gka7lgaj2f3bpyk0gd3"; depends=[broom data_table ggplot2 ggrepel mathjaxr minpack_lm plyr Rdpack]; };
-  gert = derive2 { name="gert"; version="1.5.0"; sha256="1bm2fjyh527y6x0dr5cs8h31jgl1fkk09ljzj1h37d0c7f4k1hwz"; depends=[askpass credentials openssl rstudioapi sys zip]; };
+  gert = derive2 { name="gert"; version="1.6.0"; sha256="0r19vi77yyjw5gbhgjibdysjlszlw2095v14f6sv675zpbp0li4c"; depends=[askpass credentials openssl rstudioapi sys zip]; };
   gesca = derive2 { name="gesca"; version="1.0.4"; sha256="1ndn8wgp22pr017x6v7jw8jy4gd06x8110qa860hw8i6pn47wfwv"; depends=[]; };
   gesisdata = derive2 { name="gesisdata"; version="0.1.0"; sha256="02xjpw41gm3778lj01kcwjx0lr1i95a0wlrfvs0r5xlajq13jr67"; depends=[dplyr magrittr rio RSelenium stringr]; };
   gesso = derive2 { name="gesso"; version="1.0.2"; sha256="0i7a927mbll8mlisxb0ic62fvq1wp5v0m69n7zkhcjabkxr7gbn3"; depends=[BH bigmemory dplyr Matrix Rcpp RcppEigen RcppThread]; };
@@ -10028,7 +10041,7 @@ in with self; {
   getlandsat = derive2 { name="getlandsat"; version="0.2.0"; sha256="15450v93lc4i2qda0zlb5vplwbarkmf3f6sb4rlrdpv9vlj85hff"; depends=[crul data_table rappdirs readr tibble xml2]; };
   getmstatistic = derive2 { name="getmstatistic"; version="0.2.2"; sha256="100m5cbwx9anlh1hzjv7d1h1viqsxb0bx0ksc1dsjx3gqrf77q1n"; depends=[ggplot2 gridExtra gtable metafor psych stargazer]; };
   getopt = derive2 { name="getopt"; version="1.20.3"; sha256="0zzmzgwl9a4y3s34600vmih22d6y32294f9bvxrnmffnvkgmy7sk"; depends=[]; };
-  gets = derive2 { name="gets"; version="0.29"; sha256="09y2r1hhq8ih04i0w23dzabxl85d9rc8l4k37lrzzcd22n61gz6s"; depends=[zoo]; };
+  gets = derive2 { name="gets"; version="0.35"; sha256="0hk7x2cvqs71dynvla1r6fs2k1v8laqzf7vc8l4w18im82kvmiis"; depends=[zoo]; };
   getspres = derive2 { name="getspres"; version="0.2.0"; sha256="190y4qrm1wawp0787zhw3g8h9s2smacvvxbs70pxbhysq4bkzcdd"; depends=[colorRamps colorspace dplyr metafor plotrix RColorBrewer]; };
   gettz = derive2 { name="gettz"; version="0.0.4"; sha256="1j83pdny3phfflkdjwiflyfvighn73pysw5bac4hx079dda8k25g"; depends=[]; };
   gexp = derive2 { name="gexp"; version="1.0-1"; sha256="1i3sarsawax1landjbm8gxrcrimwzdgrbybzipqwxdrmlgvxslqk"; depends=[jpeg mvtnorm png]; };
@@ -10042,14 +10055,14 @@ in with self; {
   gfilogisreg = derive2 { name="gfilogisreg"; version="1.0.2"; sha256="1825xaz4xjnhpmfrim6c9sfr50wyvpbmbnzbvvjqrn8d2gwcmim6"; depends=[BH EigenR lazyeval rcdd Rcpp RcppArmadillo roptim spatstat spatstat_geom]; };
   gfoRmula = derive2 { name="gfoRmula"; version="0.3.2"; sha256="1pk1pzwc7zkvz9fjpd6lqymjashd9h5kvxx68v8lqi8ns3c0s477"; depends=[data_table ggplot2 ggpubr nnet progress stringr survival truncnorm truncreg]; };
   gfonts = derive2 { name="gfonts"; version="0.1.3"; sha256="0dbpw93pa3asjddl2f2ih7149mkjfz3kywmz2623mfl0sm1x5g71"; depends=[crayon crul glue htmltools jsonlite shiny]; };
-  gfpop = derive2 { name="gfpop"; version="1.0.3"; sha256="16h0v2jcydn95yb4pkba808hn20darq532yp7djqx1issr1fwqjr"; depends=[Rcpp]; };
+  gfpop = derive2 { name="gfpop"; version="1.1.0"; sha256="0kqvna57q8a1ybzj5svw1k5qvnpd9n7c0jg6gyx1y00si3vazd84"; depends=[Rcpp]; };
   gg_gap = derive2 { name="gg.gap"; version="1.3"; sha256="0m66050ryn31xmsmmikjsssllasvjdmp9yjbwfdwfpwdv106zn9h"; depends=[cowplot ggplot2]; };
   ggBubbles = derive2 { name="ggBubbles"; version="0.1.4"; sha256="116rl8j0s9xwhh9jl5yj9fspkhv2zrirbx9247hhns9ngrdn4i3x"; depends=[dplyr ggplot2]; };
   ggChernoff = derive2 { name="ggChernoff"; version="0.2.0"; sha256="09bh9isvx3hwwvg72fv6z3fvp8dimpbhvbp328z8amq8jjhph4vf"; depends=[ggplot2 scales]; };
   ggDCA = derive2 { name="ggDCA"; version="1.1"; sha256="0jpg7n6nk2jgq668ff0l9zk26zk39abc74f6w5x8gf4zsb8y0zp9"; depends=[base_rms do ggplot2 rms set survival]; };
-  ggDoubleHeat = derive2 { name="ggDoubleHeat"; version="0.1.0"; sha256="106n2r6l4grg0g8w8z5nb4fw33sh62nyssbqmkq1w82xs73529i4"; depends=[ggnewscale ggplot2 rlang]; };
+  ggDoubleHeat = derive2 { name="ggDoubleHeat"; version="0.1.1"; sha256="0s9dpjkphmavvhcrsdjr7i4nq39cp55k43y6jhkx2glc198a73fq"; depends=[ggnewscale ggplot2 rlang]; };
   ggESDA = derive2 { name="ggESDA"; version="0.1.0"; sha256="0j2ix9abzsxdmjklg44ajz69hlhpg9a31rjqrwymrlkdgdswpzvk"; depends=[dplyr ggforce ggplot2 ggpubr ggthemes gridExtra gtools magrittr prodlim R6 rlang RSDA stringr tibble tidyr tidyverse]; };
-  ggExtra = derive2 { name="ggExtra"; version="0.9"; sha256="18mbi6gblqmrsciad1d2c9ngllk6mayaqj43k40hjq9ydqnvjbgj"; depends=[colourpicker ggplot2 gtable miniUI R6 scales shiny shinyjs]; };
+  ggExtra = derive2 { name="ggExtra"; version="0.10.0"; sha256="1rd3qv6ah3zphr1jicjhgxms73vi496mjnxnsrcgl7z8nyxmas6w"; depends=[colourpicker ggplot2 gtable miniUI R6 scales shiny shinyjs]; };
   ggHoriPlot = derive2 { name="ggHoriPlot"; version="1.0.0"; sha256="198l1jzs2wybg8ixq8aacrs3b7g2hpxbi7gajr2z5hyiv7317lrq"; depends=[dplyr ggplot2 glue magrittr stringr tidyr]; };
   ggOceanMaps = derive2 { name="ggOceanMaps"; version="1.2.6"; sha256="1ac3n5fw00w2ganfbzgpinwpzp51qqdw8hv691qmivwxxgkzj2zp"; depends=[dplyr ggplot2 ggspatial raster rgeos sf smoothr sp stars units]; };
   ggPMX = derive2 { name="ggPMX"; version="1.2.6"; sha256="191i2pa41441bdqb3j1hykvh0fqawrsydnpqbzx8z6f71461dzsw"; depends=[assertthat checkmate data_table dplyr GGally ggplot2 gtable knitr magrittr purrr R6 readr rlang rmarkdown scales stringr tibble tidyr yaml zoo]; };
@@ -10078,6 +10091,7 @@ in with self; {
   ggcleveland = derive2 { name="ggcleveland"; version="0.1.0"; sha256="1pl9qhj7p5kflx0ni59hq1k9afqchghg5wig9v1ml5pqrjz70pxa"; depends=[dplyr egg ggplot2 lattice magrittr readr rlang stringr tibble tidyr vctrs]; };
   ggconf = derive2 { name="ggconf"; version="0.1.3"; sha256="0g4xasqhdiqfqahakv6p5npl56f2iakx4bnc9v9zcjr077kdda4n"; depends=[ggplot2 rly]; };
   ggcorrplot = derive2 { name="ggcorrplot"; version="0.1.3"; sha256="0hi9lz121ya1l2lbm7rqlxg6fs6bvxck396dngnidrhl5fvqb41b"; depends=[ggplot2 reshape2]; };
+  ggcorset = derive2 { name="ggcorset"; version="0.1.0"; sha256="19x9qpl2zs0763q9lrsrcl589fh167hz3i19fyf505naanmn37kb"; depends=[dplyr gghalves ggplot2 ggstance]; };
   ggdag = derive2 { name="ggdag"; version="0.2.4"; sha256="18085dxp9fv1l192mgadwlsa114fj370pd8r98q3g5pd1ppw8bip"; depends=[dagitty dplyr forcats ggplot2 ggraph ggrepel igraph magrittr pillar purrr stringr tibble tidygraph]; };
   ggdark = derive2 { name="ggdark"; version="0.2.1"; sha256="1w93g2j4g45x9s841v9zi18lxzda81ipa13fajqc6p9xk8frvgrf"; depends=[ggplot2]; };
   ggdemetra = derive2 { name="ggdemetra"; version="0.2.2"; sha256="1j0nwmv2acyrkpn230jj6yf5nnl40kpqdqaglrnrfqw5rp357krp"; depends=[ggplot2 ggrepel gridExtra RJDemetra]; };
@@ -10098,7 +10112,7 @@ in with self; {
   ggforce = derive2 { name="ggforce"; version="0.3.3"; sha256="0bwzjbjl678xvc2ihm80dwn9pidwafqjdab3k299csys16s3na1a"; depends=[ggplot2 gtable MASS polyclip Rcpp RcppEigen rlang scales tidyselect tweenr withr]; };
   ggformula = derive2 { name="ggformula"; version="0.10.1"; sha256="1ph5jd8svk8hmshi894vmmpq3zwgdmf4yn3gmdlkad68z8jynhsp"; depends=[ggforce ggplot2 ggridges ggstance labelled magrittr mosaicCore rlang scales stringr tibble]; };
   ggfortify = derive2 { name="ggfortify"; version="0.4.14"; sha256="038m74azpy43869ax1yi6wxbl1kr59iaxl8raiikjg749vcx6njw"; depends=[dplyr ggplot2 gridExtra scales stringr tibble tidyr]; };
-  ggfun = derive2 { name="ggfun"; version="0.0.5"; sha256="10spayf5jzmizhs6aassjplrjr9mr6bcww30pyxzyb1djfl41qxi"; depends=[ggplot2 rlang]; };
+  ggfun = derive2 { name="ggfun"; version="0.0.6"; sha256="06si42b60hp8wprs5nbks93qlb9s269k9kw7akcirizwc399x62r"; depends=[ggplot2 rlang]; };
   ggfx = derive2 { name="ggfx"; version="1.0.0"; sha256="1q9ppp88yj6lplj7wxnf18aa7a8f5iz35765bdfhsrkdxlrkny7h"; depends=[ggplot2 gtable magick ragg rlang]; };
   gggap = derive2 { name="gggap"; version="1.0.1"; sha256="1iidxm7qcrg0isw2q27cmjbfb3pkfj5jcg1nj8lgy6xmydw3vrw3"; depends=[cowplot ggplot2]; };
   gggenes = derive2 { name="gggenes"; version="0.4.1"; sha256="1s4knz2g06w46jbi037l9ii0kkxvl7gnljp54s4z36hnswsrv8jk"; depends=[ggfittext ggplot2 rlang]; };
@@ -10122,13 +10136,13 @@ in with self; {
   ggjoy = derive2 { name="ggjoy"; version="0.4.1"; sha256="012md2m0jqfcccb933j423m3ck31v3p0pd41gjxpyg9082y7ixyj"; depends=[ggplot2 ggridges]; };
   gglasso = derive2 { name="gglasso"; version="1.5"; sha256="12l0ac1n54z41yw7c00fm6q2mjmhp9blk4f8vp7q2my2xxwh1fmj"; depends=[]; };
   gglm = derive2 { name="gglm"; version="0.1.0"; sha256="12bqqh9614v0cv45czqh6w0in4hbhwmicvcw8l07zdhrn9aq7y9m"; depends=[ggplot2 patchwork rlang]; };
-  gglogo = derive2 { name="gglogo"; version="0.1.5"; sha256="08wg0svcksdzchp6bdllmsnklxia3d0ygqwzgmqb2sga8nbkf5hl"; depends=[dplyr ggplot2 jpeg knitr magrittr plyr purrr reshape2 rlang tidyr]; };
   ggloop = derive2 { name="ggloop"; version="0.1.0"; sha256="0jpbgb16jfsv557zvishln98y7nd6p1ryp6hxkrkmhp9p35vzvc0"; depends=[assertthat ggplot2 lazyeval magrittr plyr]; };
   gglorenz = derive2 { name="gglorenz"; version="0.0.2"; sha256="1kag8p2chd0sbn8affpxzi4aawpm71ls97dwdgx7mxxfwkdb2q0y"; depends=[ggplot2 ineq]; };
   ggm = derive2 { name="ggm"; version="2.5"; sha256="11wc6k2kj2ydy0dyks5mbvbhxm1r43id87anl1jg6dn0yv4m78di"; depends=[graph igraph]; };
   ggmap = derive2 { name="ggmap"; version="3.0.0"; sha256="13dmzl6z62pzjiffilarkji46vy0sacxa8a7mhrhc3biq3ylzhln"; depends=[bitops digest dplyr ggplot2 glue httr jpeg magrittr plyr png purrr RgoogleMaps rjson scales stringr tibble tidyr]; };
   ggmatplot = derive2 { name="ggmatplot"; version="0.1.1"; sha256="07di071iv2zab8w5l60llb05h9lbrmaam65z5wiy0g27swvnv6i1"; depends=[ggplot2]; };
   ggmcmc = derive2 { name="ggmcmc"; version="1.5.1.1"; sha256="1y6ya2qihm8h6ds84akhmsxn9c8jriw03wakaqzsmi21agz87n21"; depends=[dplyr GGally ggplot2 tidyr]; };
+  ggmice = derive2 { name="ggmice"; version="0.0.1"; sha256="06asqqzjnlx8hl63nfl83l8x1bga59vhn4x2sl8j0v6bmcj0fnqm"; depends=[dplyr ggplot2 magrittr mice purrr rlang stringr tidyr]; };
   ggmix = derive2 { name="ggmix"; version="0.0.2"; sha256="158pzmr4vmy2qxmp3nrabjgkg11mrdvl1skzxgwida2is900f7gf"; depends=[glmnet MASS Matrix]; };
   ggmosaic = derive2 { name="ggmosaic"; version="0.3.3"; sha256="1zm1zfbd0qk6icw65m9hz1hgyqj632ibq3qilidvx5jy7jh8nbpy"; depends=[dplyr ggplot2 ggrepel plotly productplots purrr rlang scales tidyr]; };
   ggmotif = derive2 { name="ggmotif"; version="0.1.1"; sha256="1ny4kladbhidnx3z6sz3vcjlxkhvr9qci1g9b01jrznc8sg1c050"; depends=[ape aplot dplyr ggplot2 ggtree magrittr stringr tidyverse XML]; };
@@ -10136,7 +10150,7 @@ in with self; {
   ggmuller = derive2 { name="ggmuller"; version="0.5.4"; sha256="0y7bm9fm5i8acpy6fa903ca2r9yasky7kg2hicm4xz5ni09jm20x"; depends=[ape dplyr ggplot2]; };
   ggmulti = derive2 { name="ggmulti"; version="1.0.4"; sha256="07kqhfpg7alayfq4a86wq18jzdcmxd99607w1amzidizmwgd54d8"; depends=[dplyr ggplot2 tidyr]; };
   ggnetwork = derive2 { name="ggnetwork"; version="0.5.10"; sha256="0gqdgy5yh700dg0f7xb80hczlnqfisn8l55j7amd1n7fp2x5sr8v"; depends=[ggplot2 ggrepel igraph network sna]; };
-  ggnewscale = derive2 { name="ggnewscale"; version="0.4.6"; sha256="08xqhv6y9m9f2p8q3h0dh7mbpqg3r2i590x2983k69plfa5jxzv3"; depends=[ggplot2]; };
+  ggnewscale = derive2 { name="ggnewscale"; version="0.4.7"; sha256="108a7y6sqqvzyfk247lbmnacfpwdl405rf1b3fa62cgx8ycsq4kb"; depends=[ggplot2]; };
   ggnormalviolin = derive2 { name="ggnormalviolin"; version="0.1.2"; sha256="1gbv2b86nznw5bs05c4ns96b8hsxkhikhcf8syl2qbbafzy8vx6y"; depends=[dplyr ggplot2 magrittr scales]; };
   ggnuplot = derive2 { name="ggnuplot"; version="0.1.0"; sha256="0i09ybmxdjyr15z1a651k3bkbqskri4ipcyjap93020zbfv05r9c"; depends=[ggplot2]; };
   ggokabeito = derive2 { name="ggokabeito"; version="0.1.0"; sha256="07lbzq87zl2yswidp0f90l8szl7y4wwn8psgacyl90wn2gd9mdcp"; depends=[ggplot2]; };
@@ -10173,7 +10187,7 @@ in with self; {
   ggrepel = derive2 { name="ggrepel"; version="0.9.1"; sha256="1z5xyr5f4aryy0v1gzz9m8m4s5fzzwbrf0fxll1nbflr8xnr3yr9"; depends=[ggplot2 Rcpp rlang scales]; };
   ggridges = derive2 { name="ggridges"; version="0.5.3"; sha256="0bmlqy1p6rac90af97ffpdi6php7dblx66l2hcm8ljidgyqzmspm"; depends=[ggplot2 plyr scales withr]; };
   ggrisk = derive2 { name="ggrisk"; version="1.3"; sha256="02df3gcviax747d33v30m97jsazj7zdpjnhypfy38cg70yxidwg9"; depends=[cutoff do egg ggplot2 nomogramFormula reshape2 rms set survival]; };
-  ggroups = derive2 { name="ggroups"; version="2.1.1"; sha256="0qzz3klwvzz5040d5hhzgz7cx7s21m2pdxh8224h7knghrm7d5y6"; depends=[]; };
+  ggroups = derive2 { name="ggroups"; version="2.1.2"; sha256="0fb6awfm4vn67pgmz50fljvp9mfxx1q29pirgv04dya8751srxgi"; depends=[]; };
   ggsci = derive2 { name="ggsci"; version="2.9"; sha256="0g73x6grbka7ahjh6z23m3wrcifp5rdfdiasbl8lq4sp6rplxwaa"; depends=[ggplot2 scales]; };
   ggseas = derive2 { name="ggseas"; version="0.5.4"; sha256="1jpdijwll5l7bg7cmjnklkxffysi9ckzg50rw2a2cd00zwby11q9"; depends=[ggplot2 rlang seasonal zoo]; };
   ggseg = derive2 { name="ggseg"; version="1.6.4"; sha256="0x6vjsdkkrdnxi4a4dzcbadpqmmn0058i980s0a8456hwqlld7s5"; depends=[dplyr ggplot2 sf tidyr vctrs]; };
@@ -10217,7 +10231,7 @@ in with self; {
   gibble = derive2 { name="gibble"; version="0.4.0"; sha256="19il4si7ch5jr7plr8qwv7jrc5kfkxmh5jrcdvbn688gxcnv7bs0"; depends=[dplyr rlang tibble]; };
   gibbs_met = derive2 { name="gibbs.met"; version="1.1-3"; sha256="1yb5n8rkphsnxqn8rv8i54pgycv9p7x1xhinx4l5wzrds3xhf2dc"; depends=[]; };
   gif = derive2 { name="gif"; version="0.1.0"; sha256="119d7q9xs6xpncv1r2w008kld9z07ckyj1kja9b8n2lnlb8532pk"; depends=[MASS Matrix Rcpp RcppEigen]; };
-  gifski = derive2 { name="gifski"; version="1.4.3-1"; sha256="16nlg4d4cqbrh6jvi0nb7hnhmyj1wgzwjyjja135y1kh9jrd4al2"; depends=[]; };
+  gifski = derive2 { name="gifski"; version="1.6.6-1"; sha256="1qfhg19iclsdyb583sf25fh7am951c7q53z1s64r3vv1ivdnn18k"; depends=[]; };
   gifti = derive2 { name="gifti"; version="0.8.0"; sha256="1gb3x4rln9vayjd9fgzb434mm3dwcqgrvlv6rmh4b39mjfm73sly"; depends=[base64enc R_utils xml2]; };
   giftwrap = derive2 { name="giftwrap"; version="0.0.4"; sha256="1zsw529h69x9yaq2csfws4iqn3mm39z34kwzj0b2y850wzbn2dvp"; depends=[namespace processx readr tibble]; };
   gigg = derive2 { name="gigg"; version="0.2.1"; sha256="0qb8w455a8wxc5ljmydq4xag2kbj5yk06an0pd9hd4k48wssg8la"; depends=[BH Rcpp RcppArmadillo]; };
@@ -10228,9 +10242,9 @@ in with self; {
   giphyr = derive2 { name="giphyr"; version="0.2.0"; sha256="0273f7lama8bhaalafs66m6ksp32vx0j6rmh1qr4484i7wkmdfqn"; depends=[dplyr httr miniUI purrr rstudioapi shiny tibble]; };
   giscoR = derive2 { name="giscoR"; version="0.3.1"; sha256="1120ixjcvzm3yk8mfradvp469abpxgna4nwk1v1fa14gkyf6kqzs"; depends=[countrycode geojsonsf rappdirs sf]; };
   gistr = derive2 { name="gistr"; version="0.9.0"; sha256="0ac9ikrdg6i8xvlma0gizvsdva46408lk7hvsgkqirhy2ljy02hp"; depends=[assertthat crul dplyr httr jsonlite knitr magrittr rmarkdown]; };
-  git2r = derive2 { name="git2r"; version="0.29.0"; sha256="13nlrhma6kavvhranb43w3003vadfkyrn2f4l3r63iqavj0s3xzq"; depends=[]; };
-  git2rdata = derive2 { name="git2rdata"; version="0.3.1"; sha256="0nvx6lfp66l44n3xwkj5biirrzwvl52dssfx8jysqjl1kgfrwwh3"; depends=[assertthat git2r yaml]; };
-  git4r = derive2 { name="git4r"; version="0.1.1"; sha256="1z00m1l5gd1r03pnr7jcdzfba3vcak84xv3fbwhw8zcfjghsp3rc"; depends=[diffr git2r]; };
+  git2r = derive2 { name="git2r"; version="0.30.1"; sha256="0h58djc9cim8iskkyhdxllbpf6ycl5zj9g4fp70k57k5qzfi7nc5"; depends=[]; };
+  git2rdata = derive2 { name="git2rdata"; version="0.4.0"; sha256="05hr4ks2rdnjhbd5v865r9h6gnw149n5h6nwilw5xfx00gj86b9d"; depends=[assertthat git2r yaml]; };
+  git4r = derive2 { name="git4r"; version="0.1.2"; sha256="1kfx95y0kp656y8306jz75q4zmd8dswfmrb5jr0wihlhnz182g2h"; depends=[diffr git2r]; };
   gitcreds = derive2 { name="gitcreds"; version="0.1.1"; sha256="1snzn7nxy0rwz0bzjsg6k04c0n811dgn8gn9cmn2v78aj57ayjmi"; depends=[]; };
   gitdown = derive2 { name="gitdown"; version="0.1.6"; sha256="16g4kngal0w0vjrympxmnq16rpxks4wbj35aasvr3p2srgqn86by"; depends=[attempt bookdown dplyr git2r knitr magrittr purrr rmarkdown stringi tidyr]; };
   gitear = derive2 { name="gitear"; version="1.0.0"; sha256="139h19yyi7bpkps2vskdnga43ggpgb9fg8jdr7n8vgadxjamv98p"; depends=[dplyr httr jsonlite magrittr mockery Rcpp stringr tibble tidyr]; };
@@ -10257,7 +10271,7 @@ in with self; {
   gld = derive2 { name="gld"; version="2.6.4"; sha256="08rkv7g6ci969vh9fbyg3lrpfmjhbiwzdhcjs9j6s9bf3gpdmdhd"; depends=[e1071 lmom]; };
   gldrm = derive2 { name="gldrm"; version="1.5"; sha256="1mbdxqjw6sa47kigwrjq1gn6vi36zhg9j2lck144iwa10ms0y9xp"; depends=[]; };
   glinternet = derive2 { name="glinternet"; version="1.0.12"; sha256="0aphdscj0s6kqxlkgqkw2d6snrylz6hiis6307pl8ldh7q5cvm33"; depends=[]; };
-  glinvci = derive2 { name="glinvci"; version="1.1.17"; sha256="0rl7qka0pk57yxyh6rmkgf69czm1b6gz3v1fsm0qaf9dbqcnpnrm"; depends=[ape BB lbfgsb3c numDeriv plyr Rcgmin rlang]; };
+  glinvci = derive2 { name="glinvci"; version="1.1.18"; sha256="0bsyiy3q86xbjgpka8j4fg55a0wjxm9p0vb2a1b88q8bx8zs7w4b"; depends=[ape BB lbfgsb3c numDeriv plyr Rcgmin rlang]; };
   gllm = derive2 { name="gllm"; version="0.37"; sha256="169y3yz947d8qdphqv2a6yrdash6v2h9jfvj2fk7rcpmz0r45kl6"; depends=[]; };
   gllvm = derive2 { name="gllvm"; version="1.3.1"; sha256="1im5q5137jf8cwpydy6p8lip9v43fvgb5hi11ff2wwhc9yw74gyd"; depends=[fishMod MASS Matrix mgcv mvabund RcppEigen statmod TMB]; };
   glm_deploy = derive2 { name="glm.deploy"; version="1.0.4"; sha256="1akklvbhz2pp0sv1hax1jq0s9ajbfv1597z643gh5l9hwizj2h9m"; depends=[Rcpp]; };
@@ -10271,14 +10285,14 @@ in with self; {
   glmertree = derive2 { name="glmertree"; version="0.2-0"; sha256="0lfn6dap38i6cnfy4gdap13aq81h9cm3bip7ci57q9br9b00x7ib"; depends=[Formula lme4 partykit]; };
   glmglrt = derive2 { name="glmglrt"; version="0.2.2"; sha256="1954ywshnqzr7h77wshf63y3zx3ra8mrfabg5dqjhkgv4rsk3h1y"; depends=[MASS parameters]; };
   glmlep = derive2 { name="glmlep"; version="0.2"; sha256="0rq2vxbr732r725pn8qdvppxcrhjhyvlr550svfgy1inq985c1w4"; depends=[]; };
-  glmm = derive2 { name="glmm"; version="1.4.2"; sha256="03jgj3ssza2j2cg6nl4pbbmj57s951mxbas32cg5789zh9hjbygg"; depends=[doParallel foreach itertools Matrix mvtnorm trust]; };
+  glmm = derive2 { name="glmm"; version="1.4.3"; sha256="08fry79s9nbcss6z5pbi7yjjdwyz6aq5xn89hzmpdiynid07x5si"; depends=[doParallel foreach itertools Matrix mvtnorm trust]; };
   glmm_hp = derive2 { name="glmm.hp"; version="0.0-2"; sha256="1fjhrfgpl0xf7v6zls8v1dqm0bqds96mkiqk27bx6iy6wmadlwgk"; depends=[ggplot2 lme4 MuMIn]; };
   glmmEP = derive2 { name="glmmEP"; version="1.0-3.1"; sha256="0fql85m0mxn58jh3mgrcw56bb4dx7amrz39ngqrljwi5pv5i7aj4"; depends=[lme4 matrixcalc]; };
   glmmLasso = derive2 { name="glmmLasso"; version="1.5.1"; sha256="1az9vdnyqyrfn1q7zrn6x4ywx77b0vg65cni45x37b0ybkwpis39"; depends=[Matrix minqa]; };
   glmmML = derive2 { name="glmmML"; version="1.1.1"; sha256="1m2dcw522nd78x7z7la7a4cii3030s0bl4sqxbvkxn1k15jf4pr5"; depends=[]; };
   glmmPen = derive2 { name="glmmPen"; version="1.5.1.8"; sha256="04pxkhklyx26mngg7bwhlrqd3bh1ay1h5ddfacpg5jnigp2rlk84"; depends=[BH bigmemory ggplot2 lme4 MASS Matrix mvtnorm ncvreg Rcpp RcppArmadillo RcppEigen reshape2 rstan rstantools StanHeaders stringr]; };
   glmmSeq = derive2 { name="glmmSeq"; version="0.1.0"; sha256="0mdcwh6vvh4pc64r4jl78dr6x8fwclbbx8s9kf2sj39mm7iqpkqz"; depends=[car gghalves ggplot2 ggpubr lme4 MASS pbapply pbmcapply plotly qvalue]; };
-  glmmTMB = derive2 { name="glmmTMB"; version="1.1.2.3"; sha256="1yfwwz2dhd34vgagg8hi7irkqw8padavbc7337jdiwgk3w01wqsm"; depends=[lme4 Matrix nlme numDeriv RcppEigen TMB]; };
+  glmmTMB = derive2 { name="glmmTMB"; version="1.1.3"; sha256="0xdjc3gx0cj098rrjzlsy9cccxzfvn029xh4ycpya4xjhxsykldr"; depends=[lme4 Matrix nlme numDeriv RcppEigen TMB]; };
   glmmfields = derive2 { name="glmmfields"; version="0.1.4"; sha256="0gnb2s34xz7cjyaa2w2wq7n6c5016a14mc03kalvwdv3f7b98zan"; depends=[assertthat BH broom broom_mixed cluster dplyr forcats ggplot2 loo mvtnorm nlme Rcpp RcppEigen reshape2 rstan rstantools StanHeaders tibble]; };
   glmmsr = derive2 { name="glmmsr"; version="0.2.3"; sha256="1fbg5zji0xjr9q1yc6phsp37nsrj7nfs8yiri0j9s84wzgwjili1"; depends=[BH lme4 Matrix numDeriv R6 Rcpp RcppEigen]; };
   glmnet = derive2 { name="glmnet"; version="4.1-3"; sha256="0nij8v44b5dvp1vc843sfkl9ds83n6g687m2p37q1rdn82m3bg34"; depends=[foreach Matrix Rcpp RcppEigen shape survival]; };
@@ -10289,7 +10303,7 @@ in with self; {
   glmpathcr = derive2 { name="glmpathcr"; version="1.0.8"; sha256="00hbgp1kdbvihqvx03vv6gq32whrkcfq3n32bbj3cda85dnivlwq"; depends=[glmpath]; };
   glmpca = derive2 { name="glmpca"; version="0.2.0"; sha256="02xjf0gg52925hw9nw2j0znfmzfzfwbv0fxjl9d2fy9j63drr2h4"; depends=[MASS]; };
   glmtlp = derive2 { name="glmtlp"; version="2.0.1"; sha256="0ax3jhbib75gzp5a2y4nj80qss4qmn65rra8bsnkmwgcn4qg8xja"; depends=[doParallel foreach ggplot2]; };
-  glmtoolbox = derive2 { name="glmtoolbox"; version="0.1.2"; sha256="1f3kw9w5i8jd9j9xmdq9327dh77xichssw53nsayn9w41n9ky431"; depends=[numDeriv Rfast]; };
+  glmtoolbox = derive2 { name="glmtoolbox"; version="0.1.3"; sha256="0aci1wwhn0s6vsd23ljg8pq0845agv1rc5bk79nzkjyiq883r7c1"; depends=[Formula numDeriv Rfast]; };
   glmtrans = derive2 { name="glmtrans"; version="2.0.0"; sha256="10d9z1rrjnxkw3nmim01ql5yfn1w62sncgclmprznr5kbna49yj3"; depends=[assertthat caret doParallel foreach formatR ggplot2 glmnet]; };
   glmtree = derive2 { name="glmtree"; version="0.2"; sha256="07b7ma38r5cjv6c33q1n2f8xvzn3lj004i8v947pqdhg3fi9wlc6"; depends=[caret dplyr magrittr partykit]; };
   glmulti = derive2 { name="glmulti"; version="1.0.8"; sha256="0zviahj99645s1xs2f9z7rnv95x4rdz7mfwzy3qjfw46yqpfj5cn"; depends=[leaps rJava]; };
@@ -10302,6 +10316,7 @@ in with self; {
   globals = derive2 { name="globals"; version="0.14.0"; sha256="1wrjiiif6rpc268zz79pvpw33si6n6ffgxdnxmmcracwhb5vqg90"; depends=[codetools]; };
   globe = derive2 { name="globe"; version="1.2-0"; sha256="0xa0q5dac0g7xdlr679f3km8nqxlm7gi4msp9fbfivfvy0rmri96"; depends=[]; };
   glogis = derive2 { name="glogis"; version="1.0-1"; sha256="1sbvcg5slvd2c7fasvbj534x36rh11zq3mxv5z0jwpqd6h1xadmd"; depends=[sandwich zoo]; };
+  glottospace = derive2 { name="glottospace"; version="0.0.111"; sha256="0826nx4555ign0yjhcq0s0g2c262bprl9z91v9bs3mc8d4f9x0g2"; depends=[dplyr ggplot2 magrittr purrr readxl rlang rnaturalearth rnaturalearthdata sf tibble tidyr tmap units writexl]; };
   glow = derive2 { name="glow"; version="0.10.1"; sha256="1br29hy5j30k5q4xk1dglxlhqalhm76hnx8xg73v6whcg5j11392"; depends=[ggplot2 R6 Rcpp RcppEigen RcppParallel scales]; };
   glpkAPI = derive2 { name="glpkAPI"; version="1.3.3"; sha256="07bksiqmq2n7ki3f3sxph4v44k7q2b0d88jwjgfxzdn33i65wqyq"; depends=[]; };
   glrt = derive2 { name="glrt"; version="2.0"; sha256="0p2b0digndvnn396ynv56cdg436n3ll7pxkb81rs3dhwbyqyc948"; depends=[survival]; };
@@ -10323,8 +10338,8 @@ in with self; {
   gmm = derive2 { name="gmm"; version="1.6-6"; sha256="16vkb472bjlfccfpl94mz772nbyf76wkwb2shai18jja3fnj3cxi"; depends=[sandwich]; };
   gmnl = derive2 { name="gmnl"; version="1.1-3.2"; sha256="01pviab3gyvjdlv5jy7wzp33909znhpn47kar55bwkm6gm3bdlg8"; depends=[Formula maxLik mlogit msm plotrix truncnorm]; };
   gmodels = derive2 { name="gmodels"; version="2.18.1"; sha256="0s8kd8krqk4kwv2zqxpsfy3w8qdwf5naf4b5l383vidq9sil0qb2"; depends=[gdata MASS]; };
-  gmp = derive2 { name="gmp"; version="0.6-4"; sha256="0vfhz5cpffcrmq011h7jvy1r6d5pbbpkxj8431bhj5x5h25x7sjn"; depends=[]; };
-  gmpoly = derive2 { name="gmpoly"; version="1.0.0"; sha256="0nl5cbp6kk382nd1w7zpb571zyf4jark51xih34bnhy6kyq04xkw"; depends=[gmp mvp purrr]; };
+  gmp = derive2 { name="gmp"; version="0.6-5"; sha256="0llyd1wx606vpgvv7d61m0fv2a5yxsmisd38fhzanbjl2wynzrwa"; depends=[]; };
+  gmpoly = derive2 { name="gmpoly"; version="1.1.0"; sha256="0rlmwlxyg9b8gqyrc7mbqv7x86v9pqj51pd847raq7x1smjnz1kg"; depends=[english gmp mvp purrr]; };
   gms = derive2 { name="gms"; version="0.4.0"; sha256="1m7bhy4vsz6l09pal9ibjlskmbyjmc29hqwjim1x8yansd5bxpzv"; depends=[dplyr rlang stringr yaml]; };
   gmt = derive2 { name="gmt"; version="2.0.2"; sha256="0z5abh0kw97y90nxkkxxg2xgv1avxijf71v88lwhy25jgv8r7b38"; depends=[]; };
   gmvarkit = derive2 { name="gmvarkit"; version="2.0.2"; sha256="0si4a4ds9804rssim7vljv3q7ny54kd1lf9sljisrfilnbj69qsy"; depends=[Brobdingnag gsl mvnfast pbapply]; };
@@ -10336,6 +10351,7 @@ in with self; {
   gnorm = derive2 { name="gnorm"; version="1.0.0"; sha256="17h43qwb07wk5hiif89k6dgn6bbdsqfy2jy3k5blbdhhp3b9jcqp"; depends=[]; };
   gnrprod = derive2 { name="gnrprod"; version="1.0.0"; sha256="0ndrw2ym0f9m593q51lf069nf6fasrwb3psv1qr914jpm6vcp9di"; depends=[data_table]; };
   gnumeric = derive2 { name="gnumeric"; version="0.7-8"; sha256="0iwl00mzsg8h8q67bjp6485idjlmj24362b1rbmkifckss8hrc98"; depends=[XML]; };
+  go2bigq = derive2 { name="go2bigq"; version="1.0"; sha256="007sk6i10phxfmrgn03pa43ixfp1v27nxyvgmhzwrj5l9b532f0d"; depends=[gmp Rmpfr]; };
   goeveg = derive2 { name="goeveg"; version="0.5.1"; sha256="1dg0aw3sfar706jyiy5m5qz3nzs6sy3ljs9jp0p65b0v01rw8sbs"; depends=[fields Hmisc mgcv vegan]; };
   gofCopula = derive2 { name="gofCopula"; version="0.4-1"; sha256="17bdrn8xsqjz64caa5wdigkv798i18gc2f9jiin1bz840bqn1abg"; depends=[copula crayon doSNOW foreach MASS numDeriv progress R_utils SparseGrid VineCopula yarrr]; };
   gofar = derive2 { name="gofar"; version="0.1"; sha256="10c1qgmkdhzxk9m2sd0xxww453y9lf5vjsrbmrbzbln91i6svy8j"; depends=[glmnet magrittr MASS Rcpp RcppArmadillo rrpack]; };
@@ -10365,7 +10381,7 @@ in with self; {
   googlePublicData = derive2 { name="googlePublicData"; version="0.16.1"; sha256="15hyslpqvncg21q581h061rfyg99y8lavqw1x8hzl7xzd49bn9r5"; depends=[readxl XML]; };
   googlePubsubR = derive2 { name="googlePubsubR"; version="0.0.3"; sha256="114yhhqjpg7khgq82y1qdpnm6pbqinlgwh5n1lx6fzsm1ajhl0kv"; depends=[cli googleAuthR magrittr]; };
   googleTagManageR = derive2 { name="googleTagManageR"; version="0.1.6"; sha256="1y2avhgvzrpmpyx341di8ml2pdj10y8sdhn7zwjpxgzrxkmf4xxi"; depends=[assertthat dplyr future googleAuthR httr jsonlite purrr]; };
-  googleVis = derive2 { name="googleVis"; version="0.6.11"; sha256="15vvk08fwqbik3dyq927ccdvmyi4zjc2sxpnpy2g2yysa5n0pjgq"; depends=[jsonlite]; };
+  googleVis = derive2 { name="googleVis"; version="0.6.12"; sha256="1h06qxclyrga45k5w8yryk32bi16q4kzbgpzrn74xkrzg77jg24r"; depends=[jsonlite]; };
   googledrive = derive2 { name="googledrive"; version="2.0.0"; sha256="09jsiknzyfgxd0nzdr3wrrjw24allch2x74h96qg8vh8dad4cp30"; depends=[cli gargle glue httr jsonlite lifecycle magrittr pillar purrr rlang tibble uuid vctrs withr]; };
   googleformr = derive2 { name="googleformr"; version="0.0.3"; sha256="0smykcjyqmk61ws5jk462l8x5hg0h9nwq55q5pqfgcq1j3yfniqh"; depends=[httr rvest xml2]; };
   googlenlp = derive2 { name="googlenlp"; version="0.2.0"; sha256="0d0g18i3im2s5f14k69ym3vwf9a7zkaval3nwrip97xcl6kf4x9h"; depends=[dplyr httr jsonlite purrr readr rlang]; };
@@ -10382,7 +10398,7 @@ in with self; {
   goxygen = derive2 { name="goxygen"; version="1.0.3"; sha256="0825zl16ap0k3jqhrjw4hfsw97ils77jmf4yqq347k3bb8i3dm79"; depends=[citation gms pander stringi yaml]; };
   gpairs = derive2 { name="gpairs"; version="1.3.3"; sha256="08m1ydrr239vnhjbl47mng3i2w9bqmd8fijrwsraq5ysvn826n27"; depends=[barcode colorspace lattice MASS vcd]; };
   gpbStat = derive2 { name="gpbStat"; version="0.3.5"; sha256="1inmh8r02fn48p2f150d3prxlkf61549027vc64a3kyyk5q167ib"; depends=[data_table dplyr magrittr]; };
-  gpboost = derive2 { name="gpboost"; version="0.7.2"; sha256="05khnv1zfp0f8aj4ljkfrlwhqay565imr5ks636sgy6ivsb6c1w0"; depends=[data_table Matrix R6 RJSONIO]; };
+  gpboost = derive2 { name="gpboost"; version="0.7.3.1"; sha256="0cnswydmsjdxxkkhcrjid77jd782xxi2nsf9qi5h5scjgvnwsicv"; depends=[data_table Matrix R6 RJSONIO]; };
   gpclib = derive2 { name="gpclib"; version="1.5-6"; sha256="11jjgg74l8hy9jz4jylhriqnzv8jcf12y1bkx22v29z3fhgkwkps"; depends=[]; };
   gpg = derive2 { name="gpg"; version="1.2.6"; sha256="17rvi3qff2kanqr3g20dzhn48bfh5sv57g0wsamndzcif7rhjhby"; depends=[askpass curl]; };
   gpindex = derive2 { name="gpindex"; version="0.4.2"; sha256="1id5mmdmjw34y80cnjfxgldd83bzfifh0jk4ym4wp7h3dbpqr8n5"; depends=[]; };
@@ -10406,7 +10422,7 @@ in with self; {
   grade = derive2 { name="grade"; version="0.2-1"; sha256="085hfvqn880yk19axdjv3z9jr33kls212vs172a8mzhnkallph1r"; depends=[]; };
   gradeR = derive2 { name="gradeR"; version="1.0.10"; sha256="1ngfrminhsk3155da0vjmvrk66nbnak8p1ns20cw32qayq6wyrr2"; depends=[callr jsonlite testthat]; };
   gradientPickerD3 = derive2 { name="gradientPickerD3"; version="0.1.0.0"; sha256="0b20iqfipr7migwk1fl4lvdf4ghprqivcgmchfshhr8q82hyd1q0"; depends=[htmlwidgets jsonlite shiny]; };
-  grafify = derive2 { name="grafify"; version="2.1.0"; sha256="0l5i27ifm2xxg7vs2wkcwqm60wgvxc397x1wg654qjvh1ggpd1qn"; depends=[broom_mixed car emmeans ggplot2 Hmisc lme4 lmerTest magrittr purrr tidyr]; };
+  grafify = derive2 { name="grafify"; version="2.2.0"; sha256="0c53n92s0gim1ir561jniajy2gb1xdawx873vi87fr98mc0r2rh4"; depends=[car emmeans ggplot2 Hmisc lme4 lmerTest magrittr purrr tidyr]; };
   grainchanger = derive2 { name="grainchanger"; version="0.3.2"; sha256="1anq9gmbf9cjh6f9q2h7f65j220f56rmb59zhp5j2d26bs7dbnz8"; depends=[checkmate furrr raster sf usethis]; };
   grainscape = derive2 { name="grainscape"; version="0.4.3"; sha256="0mc9mgc70ysqal8pjslmr7dzig3d08jcdpba348hmgyh0w9b6s07"; depends=[ggplot2 igraph raster Rcpp rgdal sp]; };
   gramEvol = derive2 { name="gramEvol"; version="2.1-4"; sha256="1am5nlnyawi4lybi10ag4fdhddvbwsdzrmr6f66bzspdpl4s26g9"; depends=[]; };
@@ -10431,7 +10447,7 @@ in with self; {
   graphsim = derive2 { name="graphsim"; version="1.0.2"; sha256="09is0yr17vxr08zb3p240n0aapm63418dzx4ilwq08y8050jqqr7"; depends=[gplots igraph Matrix matrixcalc mvtnorm]; };
   graphx = derive2 { name="graphx"; version="1.0"; sha256="1k7vq0j58yskmaqknpkhccrc5n1hh8p2fsw7419r7k6a2c3syj8a"; depends=[cubature docore jpeg magicaxis MASS plotrix png pracma raster sp]; };
   grates = derive2 { name="grates"; version="0.3.0"; sha256="0ycgh6fzrsjv3n0wzcaybk686lq074krayz5jfx690iqj5fjkjqi"; depends=[clock ellipsis rlang vctrs]; };
-  gratia = derive2 { name="gratia"; version="0.7.0"; sha256="02yg6ab23yvkx0yshybayal6dfjvrq9hligfg5rj0mlvl7dnz3ad"; depends=[dplyr ggplot2 lifecycle mgcv mvnfast nlme patchwork purrr rlang stringr tibble tidyr tidyselect vctrs]; };
+  gratia = derive2 { name="gratia"; version="0.7.2"; sha256="1qj6jnxm12x686qm88vz96y8q5lv8hvwlll6i398agyqaz02nppj"; depends=[dplyr ggplot2 lifecycle mgcv mvnfast nlme patchwork purrr rlang stringr tibble tidyr tidyselect vctrs]; };
   graticule = derive2 { name="graticule"; version="0.1.6"; sha256="0y8cyhlfm8amdb23cvxy508mpd4d64xgnk1xlr37ss2pqrxdhpir"; depends=[geosphere quadmesh raster sp]; };
   gratis = derive2 { name="gratis"; version="1.0.0"; sha256="0dkgbha7ijwvddqxcnfn9gfz29kjzykifbr252qp3qjzkdqw50hi"; depends=[doRNG dplyr foreach forecast GA generics magrittr mvtnorm polynom purrr shiny tibble tsfeatures tsibble]; };
   grattan = derive2 { name="grattan"; version="1.9.0.10"; sha256="09724322yrylq9i38j4vb41p4vvfz14h40gjb7r60kkybzpjvkwn"; depends=[assertthat checkmate data_table fastmatch forecast fy hutils hutilscpp ineq magrittr Rcpp zoo]; };
@@ -10439,31 +10455,30 @@ in with self; {
   gravity = derive2 { name="gravity"; version="1.0"; sha256="1xbdw1gl3vsjfg90bb1pqy4jhp2wd4ss96z2xd3pbgyanf6fkdkf"; depends=[censReg dplyr glm2 lmtest magrittr MASS multiwayvcov purrr Rdpack rlang sandwich survival tibble tidyr]; };
   greatR = derive2 { name="greatR"; version="0.1.0"; sha256="1h1qrgpydh3rqrccr05rp2y2n05k84gjmnp2bj3ffdpflhhp0yiz"; depends=[cli cowplot data_table dplyr ggplot2 ggpubr ggrepel magrittr rlang Rtsne scales stringr viridis]; };
   grec = derive2 { name="grec"; version="1.4.1"; sha256="1vy3idjvayzx9j9pf5bv5bxycjca3w3c4x4lzzbrdi3c97508sa8"; depends=[imagine raster]; };
-  greed = derive2 { name="greed"; version="0.5.1"; sha256="1g33wzcld9gh4x7nhbfb022xjrn2lz8dwf4aqir8ymm0sr6cln87"; depends=[cba future GGally ggplot2 ggpubr listenv Matrix Rcpp RcppArmadillo RSpectra]; };
+  greed = derive2 { name="greed"; version="0.6.0"; sha256="0r580lj9v1g774kq0zaw7kfnfzg0qvi2m17ndqlraiipzjjvhiq7"; depends=[cba cli future ggplot2 gridExtra gtable listenv Matrix Rcpp RcppArmadillo RSpectra]; };
   greekLetters = derive2 { name="greekLetters"; version="0.0.7"; sha256="0r6c4y6dnd3mm5i7y5cy7xz3w2j7qkfkkvxg9ig138has6115gjj"; depends=[assertthat stringr]; };
   greeks = derive2 { name="greeks"; version="0.5.0"; sha256="0nwpw9iqczm4i2asqsh679s5pd2ia7ifdjaz6mdml1gdjkp85zlk"; depends=[dqrng magrittr Rcpp]; };
   greenclust = derive2 { name="greenclust"; version="1.1.0"; sha256="198ix55x8cl5wx09p6ahzy3bvig86mvqf2qywjfilp6b4hnjgk7l"; depends=[]; };
   gregRy = derive2 { name="gregRy"; version="0.1.0"; sha256="1b8c8wwp8r2v51ayy7rbav24wfz75z1pylg0p4vsasaw9p06dlbz"; depends=[dplyr magrittr purrr tidyr]; };
-  gremes = derive2 { name="gremes"; version="0.1.0"; sha256="1ih5303sis2icic1q13gh6h3qbb1fzw0j7pdla75csiffjc77hw7"; depends=[abind copula gRbase gRim igraph mev mvtnorm quadprog]; };
   gremlin = derive2 { name="gremlin"; version="1.0.1"; sha256="1pi1bksxmjmzclppgbqqg93swf4d72d2mr8bsxv7ndcdjr69xd5r"; depends=[Matrix nlme]; };
   gren = derive2 { name="gren"; version="0.0.1"; sha256="1wb5wwdjxi7q36md7xzmbw5lrggcgghkz3pmxipjpxw8kfv804xp"; depends=[glmnet Iso pROC Rcpp RcppArmadillo]; };
   greport = derive2 { name="greport"; version="0.7-2"; sha256="1p5x4sar88ss8n1m0c73arac10mq4ircjad38kbin6l0nk9z1mh2"; depends=[data_table Formula ggplot2 Hmisc lattice latticeExtra rms survival]; };
-  greta = derive2 { name="greta"; version="0.3.1"; sha256="0wy1619drj8ir6r44xcliiirgibksd80gmjx21am2h580k0x0xq2"; depends=[coda future progress R6 reticulate tensorflow]; };
+  greta = derive2 { name="greta"; version="0.4.2"; sha256="1wfb00klhlwmw8c9j3x7m1ip5f56w5xaf1837495xckbzxl6qv54"; depends=[abind callr cli coda future glue parallelly progress R6 reticulate tensorflow yesno]; };
   gretel = derive2 { name="gretel"; version="0.0.1"; sha256="1yyj4aing56f2vy0gshxwb623g9idg8k4701v3s53lqn4m2ybazk"; depends=[Rcpp ResistorArray]; };
   gretlR = derive2 { name="gretlR"; version="0.1.0"; sha256="0lpznicpjlvp5kkhmlfr4as7px545k416i3f54900jnc7xa7fm8p"; depends=[knitr]; };
   grex = derive2 { name="grex"; version="1.9"; sha256="0s6nan76rrmh3yhgvzb7pqdrzx2w9px8ay4v9yiib4bamy9wmhpb"; depends=[]; };
-  greybox = derive2 { name="greybox"; version="1.0.4"; sha256="03k8g5wjn3jvw037ibavppbghc9zbj70w8q45rrv02gy5n5ph5c4"; depends=[generics lamW nloptr pracma Rcpp statmod texreg zoo]; };
+  greybox = derive2 { name="greybox"; version="1.0.5"; sha256="1bq94b5c8l7dhdkmr9makmc19541bdq5mgwlsfsagc4rnf5j5kfv"; depends=[generics nloptr pracma Rcpp statmod texreg zoo]; };
   greyzoneSurv = derive2 { name="greyzoneSurv"; version="1.0"; sha256="115i0d4fy4p4g4vd419hj9f23hi8cbiyfilgpgmag91ilr1xpcdp"; depends=[Hmisc survAUC survival]; };
-  grf = derive2 { name="grf"; version="2.0.2"; sha256="01dmakzwgpkjqqhfvvgj356zklmqkhfprczb1xg2saknayh22gq4"; depends=[DiceKriging lmtest Matrix Rcpp RcppEigen sandwich]; };
+  grf = derive2 { name="grf"; version="2.1.0"; sha256="06dvcv55bhly1y8a9jkwy3srl1ya7ykqqbxy8l9qyxj7h6fgx902"; depends=[DiceKriging lmtest Matrix Rcpp RcppEigen sandwich]; };
   gridBase = derive2 { name="gridBase"; version="0.4-7"; sha256="09jzw4rzwf2y5lcz7b16mb68pn0fqigv34ff7lr6w3yi9k91i1xy"; depends=[]; };
   gridBezier = derive2 { name="gridBezier"; version="1.1-1"; sha256="1n5d6svxblcxpzf79px0qjxsydpwjpnfcagnwk35ljinyd0wv68z"; depends=[]; };
   gridDebug = derive2 { name="gridDebug"; version="0.5-1"; sha256="1x1bbyfbyyn13sw5pvnzns6mq57fyq2fywj8hx5k9rhqclzjqxyr"; depends=[graph gridGraphviz gridSVG]; };
   gridExtra = derive2 { name="gridExtra"; version="2.3"; sha256="0fwfk3cdwxxim7nd55pn7m31bcaqj48y06j7an2k1v1pybk0rdl1"; depends=[gtable]; };
-  gridGeometry = derive2 { name="gridGeometry"; version="0.2-0"; sha256="0y7y1ld03cqpibmjssid6n3n8gf98hi9ngcfbkh6acyzck812bc7"; depends=[polyclip]; };
+  gridGeometry = derive2 { name="gridGeometry"; version="0.3-0"; sha256="0x2b993ffqp8hk0sml6yhmpzy89inv4cjr7f2j60m5jlk55zvx55"; depends=[polyclip]; };
   gridGraphics = derive2 { name="gridGraphics"; version="0.5-1"; sha256="12yswy02j3h5wir7m5jnkhpjmb0sa4snn61vjd68i49qwsa6w219"; depends=[]; };
   gridGraphviz = derive2 { name="gridGraphviz"; version="0.3"; sha256="1jz0d6kc8ci55ffm6dns8bhak9xnaq7mg5mpv3fk53lircn7mwl5"; depends=[graph Rgraphviz]; };
   gridSVG = derive2 { name="gridSVG"; version="1.7-4"; sha256="1jspjn56yrkx98hhs98npzm0k0kwpv8x1hg40kphx5ikhvincxmr"; depends=[jsonlite XML]; };
-  gridpattern = derive2 { name="gridpattern"; version="0.5.1"; sha256="1yql0kwp7rs95w1iqh5qwd5s9bfpzrqqrr2z84z7l7n6yxkgfs9w"; depends=[glue memoise png rlang sf]; };
+  gridpattern = derive2 { name="gridpattern"; version="0.5.3"; sha256="1jd3959dccz79qadlf6adn6ynl6bssb2p955ykwz2yjzjklpc8ip"; depends=[glue memoise png rlang sf]; };
   gridsampler = derive2 { name="gridsampler"; version="0.6"; sha256="0wqpqg9c372sv8zqks6v93gawiyfghw58hn7m8q45dxpqm16ss3k"; depends=[BiasedUrn ggplot2 plyr reshape2 shiny shinyBS shinythemes]; };
   gridtext = derive2 { name="gridtext"; version="0.1.4"; sha256="131kw7nkfwksviwfifd2kk7lyvhxzzzv1nnj8rahkr3dik3akk61"; depends=[jpeg markdown png Rcpp RCurl rlang stringr xml2]; };
   gripp = derive2 { name="gripp"; version="0.2.20"; sha256="0rshipm8rdynl19a4dsvvvlhkd0n4vjfkidwnv5iilc5ini7c4qr"; depends=[GA GenSA usethis]; };
@@ -10509,7 +10524,7 @@ in with self; {
   gscounts = derive2 { name="gscounts"; version="0.1-4"; sha256="1wcna4bcm38ivmys5hv30b72bvn0ja0n30zhwns94n4v2z1d24k4"; depends=[Rcpp]; };
   gset = derive2 { name="gset"; version="1.1.0"; sha256="1gingqw6la8n7mnl47wpz9sicxca4zi2m8p35n6cnihrniibhajc"; depends=[Hmisc MCMCpack mvtnorm]; };
   gsheet = derive2 { name="gsheet"; version="0.4.5"; sha256="0b8q44cqkjfy6vnffm94czq4ag8xfbxik52026ahq95kcf9v2j91"; depends=[httr stringr]; };
-  gsignal = derive2 { name="gsignal"; version="0.3-2"; sha256="1yw3srky82wqwvbjdfdd718ay965qnrwq7lnflzdg1j0f7nxj6iw"; depends=[pracma Rcpp]; };
+  gsignal = derive2 { name="gsignal"; version="0.3-4"; sha256="0sn3v1v800bf9jg2daq4i8hmlabqbqqr5298s2kzdgzvn4hgv72x"; depends=[pracma Rcpp]; };
   gsisdecoder = derive2 { name="gsisdecoder"; version="0.0.1"; sha256="1h7a9j4gsdk8nasfkzfizlarx335ra0j0yz98a2000v2qzm2a5qy"; depends=[Rcpp]; };
   gsl = derive2 { name="gsl"; version="2.1-7.1"; sha256="118rj9kjx9rzlynvhrly19qz3yxg8jzws35971ssgzrp5lwd367f"; depends=[]; };
   gslnls = derive2 { name="gslnls"; version="1.1.1"; sha256="0mgqqw7sicwqvflyq9pdq6jf367ha9f29ik5kbic8zkg3s4xnd55"; depends=[Matrix]; };
@@ -10519,7 +10534,7 @@ in with self; {
   gsrsb = derive2 { name="gsrsb"; version="1.1.1"; sha256="0yjxzc69ihsx5ni6jb4shsvl9vskqlls3gmpckmzx5nsh1l5s5vb"; depends=[ldbounds mvtnorm xtable]; };
   gss = derive2 { name="gss"; version="2.2-3"; sha256="0jr45lkpcndg5nynjsfnxn1wwkh4gkhsgv4hlvw6jn2frw0n8c14"; depends=[]; };
   gstar = derive2 { name="gstar"; version="0.1.0"; sha256="1582f7jcphb32j3wdc345qa5sgm2xyimlc6r5r5jay7ca5ll8c98"; depends=[dplyr ggplot2 reshape2 xts zoo]; };
-  gstat = derive2 { name="gstat"; version="2.0-8"; sha256="1s380qbvygccjhwpk4bmhdhdsbz0h8f6b9ghdalpk4x36n19xjsp"; depends=[FNN lattice sp spacetime zoo]; };
+  gstat = derive2 { name="gstat"; version="2.0-9"; sha256="19m4zcj1qvg6gs8yjr5ijvd6rrv4av5yp5rmhnb88f0m5qn06b0j"; depends=[FNN lattice sp spacetime zoo]; };
   gstsm = derive2 { name="gstsm"; version="0.0.1"; sha256="14vdgrxxgz18l2k9qi4dg2v6xp3cbc3171iayfzyg4d8ay0094dh"; depends=[digest]; };
   gsubfn = derive2 { name="gsubfn"; version="0.7"; sha256="00j6b8b6xsx6v370h220x233rpk6asca78165y3d48jpwvwisdc9"; depends=[proto]; };
   gsw = derive2 { name="gsw"; version="1.0-6"; sha256="1sqxxbghsii5lph4r9j6w752zd95xxi2hwfbz6d7jxsplwyyfz0l"; depends=[]; };
@@ -10530,7 +10545,7 @@ in with self; {
   gtable = derive2 { name="gtable"; version="0.3.0"; sha256="1lyncxf2dqdjgw1071cn9c8zwzkz6sldnd5cgmicf70bc726qf7x"; depends=[]; };
   gtcorr = derive2 { name="gtcorr"; version="0.2-1"; sha256="1n56zmyv58jwr95p453jb86j82pdnq57gfc8m15jndjc9p31zl0m"; depends=[]; };
   gte = derive2 { name="gte"; version="1.2-2"; sha256="1x528iakyjhh4j92cgm6fr49a3rdi4cqy28qhsfr2dwvxzxchl6h"; depends=[survival]; };
-  gtfs2gps = derive2 { name="gtfs2gps"; version="2.0-1"; sha256="10v8b7qs0s5w4api08acjgll8zs1frz4ar02g68gmipwks5d6mvg"; depends=[data_table furrr future gtfsio lwgeom magrittr pbapply progressr Rcpp readr sf sfheaders terra units]; };
+  gtfs2gps = derive2 { name="gtfs2gps"; version="2.0-2"; sha256="1ypmvn1i10rqbcl8nwph44dqnmszj9drfivpj1nf8clszfhqazaw"; depends=[data_table furrr future gtfsio lwgeom magrittr pbapply progressr Rcpp readr sf sfheaders terra units]; };
   gtfsio = derive2 { name="gtfsio"; version="1.0.0"; sha256="05210ii5b754ryk296knqm3sf9yi5xwvcrq6rb9w71njqgvykwcj"; depends=[data_table zip]; };
   gtfsrouter = derive2 { name="gtfsrouter"; version="0.0.5"; sha256="0yxgc4pi0g2wqswvwba0ij263i8b8p6wgsy6hbvklq0gim616shi"; depends=[cli data_table geodist Rcpp]; };
   gtfstools = derive2 { name="gtfstools"; version="1.0.0"; sha256="0qwpnhjl80g0h0samsh8hs3df85ax329aaaxgjzn5b8h6xi31p6z"; depends=[checkmate cpp11 data_table gtfsio sf sfheaders units]; };
@@ -10556,15 +10571,15 @@ in with self; {
   gwaRs = derive2 { name="gwaRs"; version="0.3.0"; sha256="1mjwsf1sbrd88psiz6f74zddv1wvhpxk5nxbfjpdrxs74rkc36fs"; depends=[data_table dplyr ggplot2 ggrepel RColorBrewer scales tidyr]; };
   gwasforest = derive2 { name="gwasforest"; version="1.0.0"; sha256="122fg4pc409lvw4yvrc8ijm6d6j29b4aacd319a16caxkkydgwlb"; depends=[colorspace data_table dplyr ggplot2 ggrepel glue]; };
   gwasrapidd = derive2 { name="gwasrapidd"; version="0.99.12"; sha256="0pn7mdip361s2l3nqmjl0zqmr0g5406cfr1v5l20m2gkacxqfds6"; depends=[assertthat concatenate dplyr glue httr jsonlite lubridate magrittr pingr plyr progress purrr rlang stringr testthat tibble tidyr urltools]; };
-  gwavr = derive2 { name="gwavr"; version="0.1.0"; sha256="04myyx5jll0xiarsdj513rlqg5hci1204kyzfknff874l2qxm2j7"; depends=[dplyr httr jsonlite leaflet leaflet_extras magrittr miniUI nhdplusTools promises purrr scales sf shiny shinyWidgets tidyr units]; };
+  gwavr = derive2 { name="gwavr"; version="0.2.0"; sha256="0wlbyl3r4sxcjyfbymcrynkcaqmqivl4qhh14nxjrg8lji47lad6"; depends=[dplyr elevatr httr jsonlite leaflet leaflet_extras magrittr miniUI nhdplusTools promises purrr scales sf shiny shinyWidgets terra tidyr units whitebox]; };
   gwer = derive2 { name="gwer"; version="3.0"; sha256="0jiq5v37mbn6y7vl5gs8qahb796jrfqj0m54sd38vim8yhhjwfy8"; depends=[assertthat glogis GWmodel maptools Matrix sp spData spdep spgwr]; };
   gwfa = derive2 { name="gwfa"; version="0.0.4"; sha256="0jz82d9lfyd07z0jjlfqzsg7a3vnyz0s1j0rrb5sg9pnvcfjk9qy"; depends=[Rcpp sp]; };
   gwpcormapper = derive2 { name="gwpcormapper"; version="0.1.3"; sha256="0d8skx6rxas5qvhg7ykhymrzd6dawj45421vr66r4wi4hbdfjbzx"; depends=[attempt config corpcor crosstalk dplyr DT geodist glue golem htmltools leaflet pkgload plotly processx Rcpp sf shiny shinydashboard shinyjs viridis]; };
   gwrpvr = derive2 { name="gwrpvr"; version="1.0"; sha256="0x15nv2pfv99c04lgs6q6hgczarld34xc4aqw9bn179m7j02v6m3"; depends=[]; };
   gwrr = derive2 { name="gwrr"; version="0.2-1"; sha256="1fjk217pimnmxsimqp9sn02nr1mwy3hw3vsr95skbfsd6vdda14d"; depends=[fields lars]; };
   gym = derive2 { name="gym"; version="0.1.0"; sha256="0vcwzgawqwjsf65hr1mbjkz3px8zsibfkn42jpsg39n13jpfjq8v"; depends=[httr jsonlite]; };
-  gyro = derive2 { name="gyro"; version="0.1.0"; sha256="0knghb9hb9f1vli860qcaklb4d6pfmzyyx5ffyld7mimwmcwxyns"; depends=[clipr cxhull Morpho purrr rgl rstudioapi Rvcg]; };
-  h2o = derive2 { name="h2o"; version="3.36.0.3"; sha256="0jn1nkh5vgcx6dqzja64fr3qlpn34r7ajgnivqdfqkcjhbj6j8qn"; depends=[jsonlite RCurl]; };
+  gyro = derive2 { name="gyro"; version="0.2.0"; sha256="14x95hmv1k90xr2wgd2d3lwp87m7kq0k6j7qcp322iy1044mq25m"; depends=[clipr cxhull Morpho purrr rgl rstudioapi Rvcg]; };
+  h2o = derive2 { name="h2o"; version="3.36.0.4"; sha256="0510yi5d9ziz0ylg33gxr0wlka7fibr7fijas28dhmksvfj7hc6k"; depends=[jsonlite RCurl]; };
   h2o4gpu = derive2 { name="h2o4gpu"; version="0.3.3"; sha256="004sskj3a1mzjfh86m0rq02z1f3kd6650bzv1d3j8pj0xdmqb86c"; depends=[magrittr reticulate]; };
   h3jsr = derive2 { name="h3jsr"; version="1.2.3"; sha256="0amj7ks83zisy18fgnsy6zx4rg88ldyr0vhanh96dw3fbhhdh7kc"; depends=[geojsonsf sf tidyr V8]; };
   hBayesDM = derive2 { name="hBayesDM"; version="1.1.1"; sha256="16ilkmhyb7lgfd8s2qhjg952gfwkmfg154w4nw306j988a2ivc6h"; depends=[BH data_table ggplot2 loo Rcpp RcppEigen rstan StanHeaders]; };
@@ -10579,7 +10594,7 @@ in with self; {
   hacksig = derive2 { name="hacksig"; version="0.1.2"; sha256="0sc35vyi00r2b3hgn1xw2zffd704adschjwhx0niv5a1l33dxbkp"; depends=[dplyr future_apply rlang tibble tidyr]; };
   hadron = derive2 { name="hadron"; version="3.1.2"; sha256="04qd3lb6im5shf24ss88jkskab1rwn7m2d94x0ybbmfcg3l5dhm0"; depends=[abind boot dplyr R6 Rcpp stringr]; };
   hagis = derive2 { name="hagis"; version="3.1.3"; sha256="1x2vnym7da8kbj3ifi09z9dlqgprh73n03535gankqzd6pd7n1k4"; depends=[data_table ggplot2 pander]; };
-  hakaiApi = derive2 { name="hakaiApi"; version="1.0.0"; sha256="0wk0qmg2g1hj6bsvhr5xys02l32adn1qypv8rdma643qfvlcp46c"; depends=[httr R6 readr tibble]; };
+  hakaiApi = derive2 { name="hakaiApi"; version="1.0.1"; sha256="1587rj6k648w653hwljrvvfi5rmi7ar6rh3p3yi6f08x76nl9017"; depends=[dplyr httr R6 readr tibble]; };
   hal9001 = derive2 { name="hal9001"; version="0.4.3"; sha256="132qnrk6rm2qc5gw17iw61plx1ghnyzi7km8bp36vnqn19x9wj7j"; depends=[assertthat data_table glmnet Matrix origami Rcpp RcppEigen stringr]; };
   haldensify = derive2 { name="haldensify"; version="0.2.3"; sha256="071lgx6j92n40bjlrp3khmnavvkla371rkm1ssx20ig5pkay23pw"; depends=[assertthat data_table dplyr future_apply ggplot2 hal9001 matrixStats origami Rdpack rlang rsample scales tibble]; };
   halfcircle = derive2 { name="halfcircle"; version="0.1.0"; sha256="1gbqbv3cn8w09i3f2ji3qq0snb4fy9243y12agw686fx46dfmhxs"; depends=[scales]; };
@@ -10603,7 +10618,7 @@ in with self; {
   harmony = derive2 { name="harmony"; version="0.1.0"; sha256="0jkj9y4j6ja2d6y5j0akmkkgpppprk65i6bwwhs163g918i8qng0"; depends=[cowplot dplyr ggplot2 irlba Matrix Rcpp RcppArmadillo RcppProgress rlang tibble tidyr]; };
   harrietr = derive2 { name="harrietr"; version="0.2.3"; sha256="0n6vsqysj4ijh06z6nqmj8x1z4w9711dxhbfp8p8fwi0l75pj0cj"; depends=[ape dplyr ggtree lazyeval magrittr rlang tidyr]; };
   harrypotter = derive2 { name="harrypotter"; version="2.1.1"; sha256="1j3sv0rpp4lcrf09j4a3an4lkwi2x1z18iv62fk6c2kpp9b14b8r"; depends=[ggplot2 gridExtra]; };
-  hash = derive2 { name="hash"; version="2.2.6.1"; sha256="0b3fl0rvgwb992knl81vm99lsldg5clvaqjh6mamm6zqmb6dz056"; depends=[]; };
+  hash = derive2 { name="hash"; version="2.2.6.2"; sha256="17scs675a86c34hjbxmwi8kny4yyv97x3515s449zafj2i0ad8vm"; depends=[]; };
   hashids = derive2 { name="hashids"; version="0.9.0"; sha256="0233qly4rb1g4znxm9h9h8gskzrjyav6nd26xkdl7990m5hcbcwh"; depends=[]; };
   hashr = derive2 { name="hashr"; version="0.1.4"; sha256="10rvq4rvg7fds2ylh21lri4wlvj870bncqq7kma7rf89rg5x1jz6"; depends=[]; };
   hasseDiagram = derive2 { name="hasseDiagram"; version="0.2.0"; sha256="1ni4wzj8g6qmpgz1xj62vawkcpm3jr4jqqr1xaxlh5nzbj9fn57h"; depends=[graph Rgraphviz]; };
@@ -10674,7 +10689,7 @@ in with self; {
   hermite = derive2 { name="hermite"; version="1.1.2"; sha256="0j9s7ayvbvmgwybrvf703b72qbn8gskb105pis19ig2sslllzda3"; depends=[maxLik]; };
   hermiter = derive2 { name="hermiter"; version="2.1.0"; sha256="1z9zrmyxx7dgsi0zblp15saw1iz79sc2r9zyirdzqmz010rnm19y"; depends=[BH Rcpp]; };
   hero = derive2 { name="hero"; version="0.4.7"; sha256="129v2pjbxm5aalr5lfx0kh20rhwksnb80pc459pxg0xkwxvy1l3d"; depends=[fields Matrix optimx pbapply rgeos sp]; };
-  hesim = derive2 { name="hesim"; version="0.5.1"; sha256="0w79ka88bafkcs7bjsyl7z2v44cd4xjv3xqyk764jamzfcfhanzq"; depends=[data_table flexsurv ggplot2 MASS msm R6 Rcpp RcppArmadillo survival]; };
+  hesim = derive2 { name="hesim"; version="0.5.2"; sha256="0lhfmqq7s45mfcc21hkdz2hmfpai4jgqs0rx0c55l3zgscdyr9wv"; depends=[data_table flexsurv ggplot2 MASS msm R6 Rcpp RcppArmadillo survival]; };
   hetGP = derive2 { name="hetGP"; version="1.1.4"; sha256="1nm4kkg0jwlp21flviiw187jih4y1s6lqn3j0f2s1h81rh1vvvzf"; depends=[DiceDesign MASS Rcpp]; };
   hetsurr = derive2 { name="hetsurr"; version="1.0"; sha256="1086lqxg6s5a0qxmd29bp3ninr4jzfdp3m6fsn9sfl7bagvrs5wy"; depends=[Rsurrogate]; };
   hett = derive2 { name="hett"; version="0.3-3"; sha256="0i7q28nc67m62vi1ipfg035yqjh691fb1mp33dp1b68g5wjysphh"; depends=[lattice MASS]; };
@@ -10692,8 +10707,9 @@ in with self; {
   hglasso = derive2 { name="hglasso"; version="1.2"; sha256="1qq41ma33wz7qjs5zx72yvngpsiq62z9sd6d5hvvl83brq0fcr4b"; depends=[fields glasso igraph mvtnorm]; };
   hglm = derive2 { name="hglm"; version="2.2-1"; sha256="1lyxkvqzfll1qrz5c2km9ikhq0dm63x39by4vc1nmkd24yza93nc"; depends=[hglm_data MASS Matrix]; };
   hglm_data = derive2 { name="hglm.data"; version="1.0-1"; sha256="0mw1s0kahsh9jmwkxysfy5f7vbld7mpzmdnnww6im5h21jhnczx2"; depends=[MASS Matrix sp]; };
-  hgm = derive2 { name="hgm"; version="1.18"; sha256="0d0s4hkn46cg85wl7nmjn707iw38kjs69p6xz33pzc1yf51l8z7w"; depends=[deSolve]; };
-  hgutils = derive2 { name="hgutils"; version="0.2.7"; sha256="1svxhz80h84wn1fj58p8g3rp553ima1wfdbbkm2cqnihwjxhha62"; depends=[crayon dplyr limSolve magrittr stringr]; };
+  hgm = derive2 { name="hgm"; version="1.20"; sha256="0sfyq81r4yrdw8508jsplkxb8kj1jy8dx9v3h1fvmwx3frrh3vm6"; depends=[deSolve]; };
+  hgnc = derive2 { name="hgnc"; version="0.1.0"; sha256="1gxa7i8q52c93mdmxrkwdz82n6jrmr52hw6jpvymz9h5h44pqanb"; depends=[dplyr hms httr jsonlite lubridate magrittr purrr readr rlang rvest stringr tibble]; };
+  hgutils = derive2 { name="hgutils"; version="0.2.11"; sha256="0l288fqymh2i4dngy909gi8b4c9hdis02gqwyyvy6r8xzisk4m44"; depends=[crayon dplyr limSolve lubridate magrittr stringr usethis]; };
   hhcartr = derive2 { name="hhcartr"; version="1.0.0"; sha256="104xy3ihpi031pyzifnpc0jfq68gsbc12gzv6hp1vjrgy0nqw5l1"; depends=[bookdown captioner checkmate DiagrammeR DiagrammeRsvg ggplot2 hash Matrix rsvg]; };
   hhh4contacts = derive2 { name="hhh4contacts"; version="0.13.1"; sha256="1cqwn09iqgh6131cm4b5j0kx7k5vil0ak42v064g4maayj0yqy7p"; depends=[surveillance]; };
   hhi = derive2 { name="hhi"; version="1.2.0"; sha256="1yl52c3nqdi8v60sr01l0vv8359803dm2i4c9ifazgj3h3a4h0yp"; depends=[ggplot2]; };
@@ -10790,6 +10806,7 @@ in with self; {
   hotspots = derive2 { name="hotspots"; version="1.0.3"; sha256="12v88k3yz1bsxx9p5dx8y54ccqcglwknm2jr7ybygdj2yasjr5l0"; depends=[ineq lattice]; };
   housingData = derive2 { name="housingData"; version="0.3.0"; sha256="0ngfx2vjx705xixzpz0rgx1481cr2szj4yfi5g7ma1hhivddl7d1"; depends=[]; };
   hover = derive2 { name="hover"; version="0.1.1"; sha256="09lpga8a87h6fyg0j3av4xjna300ifsx2ygzwsnvh2l1d70fwf8m"; depends=[htmltools shiny]; };
+  howManyImputations = derive2 { name="howManyImputations"; version="0.2.2"; sha256="10qci2ja1b2wivpvl9xqiv0ksvghdj12zjn2q9nsxszvr809hcpx"; depends=[mice]; };
   howmany = derive2 { name="howmany"; version="0.3-1"; sha256="045ck8qahfg2swbgyf7dpl32ryq1m4sbalhr7m5qdgpm62vz8h7f"; depends=[]; };
   hpa = derive2 { name="hpa"; version="1.2.1"; sha256="0z60j7ydbifwsp2flksgswnw3zrr0gamkng4nrbbsz7zxmagsxml"; depends=[Rcpp RcppArmadillo RcppParallel]; };
   hpackedbubble = derive2 { name="hpackedbubble"; version="0.1.0"; sha256="1br7q4958f1zgvisglsaf41nz2ahnqi3bzazvlfnmk3nq03cb1ri"; depends=[htmlwidgets]; };
@@ -10811,7 +10828,7 @@ in with self; {
   hsm = derive2 { name="hsm"; version="0.2.0"; sha256="066shjikqrrkxpnra4zknax1a0sk5nx9ms1br58vwqqvqq479rym"; depends=[]; };
   hsmm = derive2 { name="hsmm"; version="0.4"; sha256="1fh8c5kfv4brygdq6bfkrhrhkm99mxl4ljb1mhp9nf2bjlla11mc"; depends=[mvtnorm]; };
   hsphase = derive2 { name="hsphase"; version="2.0.2"; sha256="1b62k9sc6604djy37anslvqjpbrj9wsc9mvnfbrnmhqf4g0nnpdq"; depends=[Rcpp RcppArmadillo snowfall]; };
-  hsrecombi = derive2 { name="hsrecombi"; version="0.3.4"; sha256="0ca6672px0y5cibv9hk4hc638rp4d3bhbw0qn81irwwk84yacspv"; depends=[curl data_table dplyr hsphase quadprog Rcpp rlist]; };
+  hsrecombi = derive2 { name="hsrecombi"; version="0.4.2"; sha256="1d2dah63gl8gfzjz9rq9d3d62fqc3q6p0yc81rbx543220q3ll7v"; depends=[curl data_table dplyr hsphase quadprog Rcpp rlist]; };
   hsstan = derive2 { name="hsstan"; version="0.8.1"; sha256="0k7sqwx73zid68ji9l2hfihqdlk3rdpid81pp8g3fmi8dpvrzkms"; depends=[BH ggplot2 loo pROC Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
   htdp = derive2 { name="htdp"; version="0.1.4"; sha256="0w579qp0p544xryb5r08m1nhqf7rmgv9q0lyx6my4av62l70ka5w"; depends=[Rcpp]; };
   htestClust = derive2 { name="htestClust"; version="0.2.1"; sha256="01gcg2ad1fprn6fwzwjcjpvirz9dvrlns9l8rhf5h9j17p6vb1d1"; depends=[bootstrap MASS]; };
@@ -10827,7 +10844,7 @@ in with self; {
   htree = derive2 { name="htree"; version="2.0.0"; sha256="15bi5c2p4aghihp3k12s78447j2x9hbsaq56b5lc8jmd1vf0jdwb"; depends=[]; };
   hts = derive2 { name="hts"; version="6.0.2"; sha256="06mmxdm7a2fb1r4mb2x12b00rnkaxlrmlkv5yizr3yixmn4is9wb"; depends=[forecast Matrix Rcpp RcppEigen SparseM]; };
   htsr = derive2 { name="htsr"; version="1.1.3"; sha256="01id95530g80hn4l94ngi7562iy52pc63s4i7a9glc4h6w3hwl15"; depends=[DBI directlabels dplyr editData ggplot2 lubridate openair purrr raster RColorBrewer readr readxl RODBC RSQLite shiny stringr tibble WriteXLS zoo]; };
-  httk = derive2 { name="httk"; version="2.0.4"; sha256="0akddji209hw82lcvd7k63k4lzcx3jazycw2p1388b36nzm40w79"; depends=[data_table deSolve magrittr msm mvtnorm purrr survey truncnorm]; };
+  httk = derive2 { name="httk"; version="2.1.0"; sha256="0ygx5fvb4pcqmqw89sf0z6ag2k2nkci2glv46dbsyhn85xsxw8ia"; depends=[data_table deSolve magrittr msm mvtnorm purrr Rdpack survey truncnorm]; };
   httpRequest = derive2 { name="httpRequest"; version="0.0.10"; sha256="0f6mksy38p9nklsr44ki7a79df1f28jwn2jfyb6f9kbjzh98746j"; depends=[]; };
   httpcache = derive2 { name="httpcache"; version="1.2.0"; sha256="026sl19301al3sid9hlwq8jz5b0zvh9a4n3cl4niqvc2b57h133r"; depends=[digest httr]; };
   httpcode = derive2 { name="httpcode"; version="0.3.0"; sha256="0xig0rvc81hg7mw0iq9s0an1nw24fg0kfs2p2n6dzhwl9w506fjr"; depends=[]; };
@@ -10839,9 +10856,10 @@ in with self; {
   httpuv = derive2 { name="httpuv"; version="1.6.5"; sha256="0mlilxh2mlrsbbrncla2rg02crr8nnajv649d8whx7ayr8lkdxpm"; depends=[later promises R6 Rcpp]; };
   httr = derive2 { name="httr"; version="1.4.2"; sha256="1y8y1g1dkgv9jafrk1kj6pzxpw95c0rr9lplblfq2byrs1pfsas6"; depends=[curl jsonlite mime openssl R6]; };
   httr2 = derive2 { name="httr2"; version="0.1.1"; sha256="1lkl73wignikdldxbmb8iic55x2l9h3jh2936db4g8jp8xkn3jhd"; depends=[cli curl glue magrittr openssl R6 rappdirs rlang withr]; };
+  hudr = derive2 { name="hudr"; version="1.0.0"; sha256="1ckqydfadldp5l685cfnjwfzyrh7ps6v59ra2q3i22jkvqnl06hb"; depends=[data_table httr janitor magrittr]; };
   hues = derive2 { name="hues"; version="0.2.0"; sha256="062i7yc16nmnp15c1jh4xffw2lpklp36wkn1yvagh186ahnlgffx"; depends=[colorspace]; };
   huge = derive2 { name="huge"; version="1.3.5"; sha256="1sl457a1lndrx98y2j9a2smanawx2iqlhl82iand0g3p5xp8ch4j"; depends=[igraph MASS Matrix Rcpp RcppEigen]; };
-  huito = derive2 { name="huito"; version="0.1.2"; sha256="0pws7si5x3vxqs3lc5pj1i1za1psq85l8l7xhrvasn1zzfgim2q4"; depends=[cowplot dplyr ggplot2 magick pdftools purrr qrcode showtext sysfonts tibble tidyr]; };
+  huito = derive2 { name="huito"; version="0.1.3"; sha256="1wl9j02yf0ybw18id116701vhiyz2l4b3nlwpdkd0hqf841d04va"; depends=[cowplot dplyr ggplot2 magick pdftools purrr qrcode showtext sysfonts tibble tidyr]; };
   humanFormat = derive2 { name="humanFormat"; version="1.0"; sha256="0zwjbl8s5dx5d57sfmq6myc6snximc56zl88h8y1s1jqphyn9sir"; depends=[testthat]; };
   humaniformat = derive2 { name="humaniformat"; version="0.6.0"; sha256="0vaynjzz57pk4y1liag9lpn9jkag2033a6bkn28zzm7ndg3344l6"; depends=[Rcpp]; };
   humanize = derive2 { name="humanize"; version="0.2.0"; sha256="0hhhd640n77s8xaa2gbd9fckdk2yjg68gdb7wjy56a2khzqfssxr"; depends=[assertthat glue lubridate]; };
@@ -10873,15 +10891,17 @@ in with self; {
   hydroTSM = derive2 { name="hydroTSM"; version="0.6-0"; sha256="1msavd2k05apsky88zkk1l3c6y3v95fwhmr6xmwsap70bj25krsv"; depends=[automap e1071 gstat lattice maptools sp xts zoo]; };
   hydroToolkit = derive2 { name="hydroToolkit"; version="0.1.0"; sha256="0bij4365hczvq17wj9hp0570v35m8ili11mp9dzfj3mvhhqrc9p4"; depends=[ggplot2 lubridate plotly readxl reshape2]; };
   hydrogeo = derive2 { name="hydrogeo"; version="0.6-1"; sha256="16m6yvr9yhvb0vdh9pqd6gzf3h9km7gd89y6risjddv6g83469k8"; depends=[]; };
-  hydropeak = derive2 { name="hydropeak"; version="0.1.0"; sha256="1125q56c9nr49nkdf3q2pmi6gwvljdl145sjd8q24v9xi1n3r2g0"; depends=[]; };
+  hydropeak = derive2 { name="hydropeak"; version="0.1.1"; sha256="0hddzvk8bjc31l3qh2pmhxwi8c1zgv3mycw5ki786x4kaym23qiq"; depends=[]; };
+  hydroroute = derive2 { name="hydroroute"; version="0.1.1"; sha256="1a1vlbq5cnvhq5mjk9imvj869xmmhq814zvvfysw7jp63z5gvd47"; depends=[dplyr ggplot2 ggpmisc gridExtra hydropeak lubridate reshape2 scales]; };
   hydroscoper = derive2 { name="hydroscoper"; version="1.4.1"; sha256="0jhvjmhcprjdjg6a54ic2f4kxfanpgwzzrkyyiggmj5jjg9yfhfw"; depends=[jsonlite pingr readr stringi stringr tibble]; };
   hydrostats = derive2 { name="hydrostats"; version="0.2.8"; sha256="1li66w7ak8hmvnmmb4q7nswd4zdd047mbrk4chd1bdya7dhhk644"; depends=[]; };
   hydrotoolbox = derive2 { name="hydrotoolbox"; version="1.0.1"; sha256="0n2qfw1060szqllvc8vhhv8yy69dhs6m6hh5rnymfhm2wg8994a3"; depends=[ggplot2 lubridate magrittr plotly Rcpp readxl reshape2]; };
   hyfo = derive2 { name="hyfo"; version="1.4.3"; sha256="012akh96qwafhgjba1gjwy0r14a6shcsk5b7n1hvw230s07zxd8r"; depends=[data_table ggplot2 lmom maps maptools MASS moments ncdf4 plyr reshape2 rgdal rgeos zoo]; };
   hyper_fit = derive2 { name="hyper.fit"; version="1.1.1"; sha256="1xibiydfkhzsw0yqfc0xfzj4yz8xyxqlvnfpyxg33v5fwp9wap3v"; depends=[LaplacesDemon magicaxis MASS rgl]; };
-  hyper2 = derive2 { name="hyper2"; version="2.0-1"; sha256="0xvmca46sbyajr2glzss59ahh053cg45cgx98zwzjpkqj5l430wh"; depends=[cubature disordR EMC magrittr mathjaxr partitions Rcpp]; };
+  hyper2 = derive2 { name="hyper2"; version="2.0-3"; sha256="022a5bkmf6ygklz5w8k40my6g26m9lp28imnczic0g3bdi0jg2v0"; depends=[alabama calibrator cubature disordR magrittr mathjaxr partitions Rcpp]; };
   hyperSMURF = derive2 { name="hyperSMURF"; version="2.0"; sha256="1aczsph6ax5xfd5rfvsd9bmgaq3j2f5f82fx8whrgbin0hxz19d8"; depends=[randomForest unbalanced]; };
   hyperSpec = derive2 { name="hyperSpec"; version="0.100.0"; sha256="0m0ws6lm5q1555n0qhixj4fqq4bbcf7i7d73pg85z74a3058gk5s"; depends=[dplyr ggplot2 lattice latticeExtra lazyeval testthat xml2]; };
+  hyperbrick = derive2 { name="hyperbrick"; version="1.0"; sha256="1a6l6dlylqm1dxz573rz5zqxn1nk85hcbfdxk0qwkr7z3yzl13c8"; depends=[caTools dfoptim OpenImageR pbapply raster rgdal]; };
   hypercube = derive2 { name="hypercube"; version="0.2.1"; sha256="0m0n64rl5fnhvhfdknrza8a0h5lw8vbgakaqbyfx77ixhwqhjn1l"; depends=[dplyr plotly stringr]; };
   hypergate = derive2 { name="hypergate"; version="0.8.3"; sha256="0h36wi4bdxinv7p9alyb7jv1902vdanxx7yvyaw2dcqkdjlzzj49"; depends=[]; };
   hypergeo = derive2 { name="hypergeo"; version="1.2-13"; sha256="13jdiy216znwhr91iqnh03mvkmyscw439syb3h4i67dd78sphnvd"; depends=[contfrac deSolve elliptic]; };
@@ -10896,9 +10916,10 @@ in with self; {
   hystReet = derive2 { name="hystReet"; version="0.0.2"; sha256="01nrbk48r1hf1yc953yf1pzryzrjjckwdqhb3pbnwfza8q0aqsfq"; depends=[httr jsonlite lubridate]; };
   hysteresis = derive2 { name="hysteresis"; version="2.7"; sha256="1nnfr50nafhimj2j5xpxly3i8xvkwwddz864gklwm9jzdpmv02yh"; depends=[car MASS msm]; };
   hzar = derive2 { name="hzar"; version="0.2-5"; sha256="000l4ki3hvznnhkxc5j422h5ifnsfqalv666j48yby1hsf1lc3kg"; depends=[coda foreach MCMCpack]; };
+  i18n = derive2 { name="i18n"; version="0.1.0"; sha256="1cg7cdm3ja3rz4wrn46gvdifi1yx30lrc6j1c9r5iahmc78hlmgl"; depends=[magrittr]; };
   i2dash = derive2 { name="i2dash"; version="0.2.3"; sha256="0pj4s47nbs67jnnk0dsna59lrn983zzkybbf6hf4s77sikshmwf0"; depends=[assertive_sets assertive_types flexdashboard glue htmltools knitr magrittr rmarkdown stringi stringr xfun ymlthis]; };
   i2extras = derive2 { name="i2extras"; version="0.1.2"; sha256="0h9hy9qbw2lk0pxhrn2gygmcx731r38pj08iyfci5axp8fs0cizs"; depends=[data_table dplyr ellipsis ggplot2 incidence2 rlang tibble tidyr tidyselect trending vctrs]; };
-  iAR = derive2 { name="iAR"; version="0.1.0"; sha256="1ry81qapffry81531l51mbmarvbx6d349s0w49lqlz0vh31hicgw"; depends=[ggplot2 Rdpack]; };
+  iAR = derive2 { name="iAR"; version="1.0"; sha256="1cxqrd2bywifq0k2837p7kn7s9grh6gk940ng0654fzqvy4r5nxs"; depends=[ggplot2 Rcpp RcppArmadillo Rdpack]; };
   iAdapt = derive2 { name="iAdapt"; version="2.0.1"; sha256="050kzacvf19m8s89layqqf0l85db1k4cd3akb16jrv9wjfi9k61v"; depends=[Matrix shiny shinydashboard]; };
   iBATCGH = derive2 { name="iBATCGH"; version="1.3.1"; sha256="0xq4q4kc2f0whrxz1vmi2gca9pxqix2qm4sfkwbch85if2k8l8fj"; depends=[msm Rcpp RcppArmadillo]; };
   iBST = derive2 { name="iBST"; version="1.0"; sha256="02p7lcr1wrf21v4568jc8hmjcijy3fnbv77s8nlhv2s4p0pgzh5x"; depends=[Rcpp rpart survival]; };
@@ -10945,7 +10966,7 @@ in with self; {
   iai = derive2 { name="iai"; version="1.7.0"; sha256="1y3lhzzmyxlqv2izk9zcqh22jsg4n2yh9sgkiqqlp500xaz6h4ah"; depends=[cowplot ggplot2 JuliaCall lifecycle rappdirs rjson rlang stringr]; };
   ialiquor = derive2 { name="ialiquor"; version="0.1.0"; sha256="0nrp75lzb49lhkxspvaq6wx5c48ny6fq9m3r1bz0v5f2fd5ilrdx"; depends=[]; };
   iarm = derive2 { name="iarm"; version="0.4.2"; sha256="0scf1ad87sn4s7ki6hpgk4isy1k3qkdvs18bkwdflsarcx437ms2"; depends=[eRm ggplot2 gridExtra Hmisc PP psychotools vcdExtra]; };
-  ib = derive2 { name="ib"; version="0.1.0"; sha256="1rzgpgmg7bzg60dyxmmprcsri5wdbarqgp4ya5h418hnnmh8hg0n"; depends=[lme4 MASS Matrix Rdpack VGAM]; };
+  ib = derive2 { name="ib"; version="0.2.0"; sha256="10h3b9ncz59rp8j628axnrl7gksjiyg576672dhcyd3ygd4by7p5"; depends=[betareg Formula lme4 MASS Matrix Rdpack VGAM]; };
   ibawds = derive2 { name="ibawds"; version="0.3.2"; sha256="15ra53yswbc189sq5mkip5hcf4c3inzmsg2i7kz0wakvrhc56hd8"; depends=[dplyr dslabs Ecdat ggplot2 kableExtra magrittr rlang scales stringr]; };
   ibb = derive2 { name="ibb"; version="0.0.2"; sha256="11rfrf0ap97rsq0yy23sjahp1bin3j31zdd61p8b5mbp0s0k7ci4"; depends=[dplyr httr jsonlite magrittr rlang tibble tidyselect]; };
   ibd = derive2 { name="ibd"; version="1.5"; sha256="0rxvy4hn4fpbv6y214ggkmgfvzwns5mkanp4h8201rjk3v84mk2r"; depends=[car emmeans lpSolve multcomp]; };
@@ -10972,7 +10993,7 @@ in with self; {
   iccde = derive2 { name="iccde"; version="0.3.2"; sha256="0r7g2ydj3yigm2n3qprj65ydrk0lacba7qnig6l6s14zi4bg9xna"; depends=[]; };
   icd_data = derive2 { name="icd.data"; version="1.0"; sha256="0cynr9327wfg88661w4hali48mb6ghyvlqgybsa38k9bbf57v8aa"; depends=[]; };
   icdGLM = derive2 { name="icdGLM"; version="1.0.0"; sha256="1mh9kwn21n19v4lrmj33ghpna7dl66fx19gi6lcjanmrpzrkwdnz"; depends=[Matrix]; };
-  icdpicr = derive2 { name="icdpicr"; version="1.0.0"; sha256="0vfiw4f3mdh84b485hqvhjxx1bq15ankpzs2gwa3s93q1ykb8c3j"; depends=[stringr]; };
+  icdpicr = derive2 { name="icdpicr"; version="1.0.1"; sha256="099ipcpz1cff7cr572lww34az4wwym8phpbk2ph0545k2fk0c56d"; depends=[stringr]; };
   icecream = derive2 { name="icecream"; version="0.2.0"; sha256="0gqad5sf78ggvdjhiis6x0y69ksrk1wgs4b8nxq51xna5wy5yqgl"; depends=[cli glue pillar purrr rlang]; };
   icenReg = derive2 { name="icenReg"; version="2.0.15"; sha256="1cjlvj4i5bir5769a22w8bb9477h04d8rpxk9ks72jp6zjjkq5qa"; depends=[coda foreach MLEcens Rcpp RcppEigen survival]; };
   icensBKL = derive2 { name="icensBKL"; version="1.2"; sha256="1zzv80jnn8ilnc1gv4nj24l2fl8805rjhqjgkb0xx4y9zhpg1jkp"; depends=[gtools Icens MASS mvtnorm smoothSurv survival TeachingDemos]; };
@@ -10999,12 +11020,11 @@ in with self; {
   idbg = derive2 { name="idbg"; version="1.0"; sha256="1rxmj04hswxybrg7dfib3mjy8v8mdiv13zwbscp2q55z55hhf1m5"; depends=[]; };
   idbr = derive2 { name="idbr"; version="1.0"; sha256="0silsd3ydrrg924klga8dascxjfmi2czw7sz3ap2j7gkgvxcfcpv"; depends=[countrycode dplyr httr jsonlite purrr rnaturalearthdata sf]; };
   ideamdb = derive2 { name="ideamdb"; version="0.0.9"; sha256="1f4dcv6c8ny7pik547f4840vhll26mzfcijnfsiqx31xhn0gsizd"; depends=[dplyr ggplot2 stringr tidyr]; };
-  idefix = derive2 { name="idefix"; version="1.0.1"; sha256="1hqq9w0hssczmy8kvpp438fz0r5wdrxzxpkhrljz50rqazr61asy"; depends=[dplyr MASS mlogit Rcpp RcppArmadillo Rdpack scales shiny tmvtnorm]; };
+  idefix = derive2 { name="idefix"; version="1.0.3"; sha256="0jqjrg0qfzij5bx8r60wpjghsxnszdxgp58ynj10n7q9hc4fhsys"; depends=[dfidx dplyr MASS Rcpp RcppArmadillo Rdpack scales shiny tmvtnorm]; };
   idem = derive2 { name="idem"; version="5.1"; sha256="1i5h0hg76rrxharlfv33kcbwmvkfyfk92wim93dvpkflnbwsmzfl"; depends=[BH mice Rcpp RcppEigen rstan sqldf StanHeaders survival]; };
   idendr0 = derive2 { name="idendr0"; version="1.5.3"; sha256="11c12d166bp2i498d8y6ipg5jhz1xsdsrmnhjqnrqqzp9avvrsjp"; depends=[tkrplot]; };
   ider = derive2 { name="ider"; version="0.1.0"; sha256="021s4fybki7a6mdsr6gkjrzfhaqdcg0m2a6r24y91jklxlxqxmws"; depends=[FNN]; };
   idiogramFISH = derive2 { name="idiogramFISH"; version="2.0.8"; sha256="1m45858da25zwrm74h69a2a5ly4yy0cl12vkkaqrwzn72snsq3c2"; depends=[crayon dplyr plyr rlang tidyr]; };
-  idm = derive2 { name="idm"; version="1.8.2"; sha256="04f0i0kwdxywmj2i184knx5a5v9svx0lbam6wpz49hghg7qpy0w5"; depends=[animation ca corpcor dummies ggplot2 ggrepel]; };
   idmTPreg = derive2 { name="idmTPreg"; version="1.1"; sha256="1329sjb4dnw3yiyg16whbj4l2v0kg8phg1x4ysvyp2kqkmw14yq6"; depends=[doParallel foreach survival]; };
   idmodelr = derive2 { name="idmodelr"; version="0.3.2"; sha256="02hvlmk38rs0iavwz0qa3ryvyw1ixhjf9bksmadlhxl5pd18016j"; depends=[deSolve dplyr furrr future ggplot2 magrittr purrr rlang stringr tibble tidyr viridis]; };
   idr = derive2 { name="idr"; version="1.2"; sha256="05nvgw1xdg670bsjjrxkgd1mrdkciccpw4krn0zcgdf2r21dzgwb"; depends=[]; };
@@ -11026,17 +11046,15 @@ in with self; {
   igcop = derive2 { name="igcop"; version="1.0.1"; sha256="0jl107mdwbldi319qflqjzy8vk02sr4nihky8jl5kcgr6x55qh6z"; depends=[Rcpp rlang vctrs]; };
   iglu = derive2 { name="iglu"; version="3.3.0"; sha256="1p3mwc0ny6d0i09bacdy9xzpn6rj2idx444wypn3rz98nddr665c"; depends=[caTools dplyr ggplot2 ggpubr gridExtra gtable hms lubridate magrittr patchwork plotly scales shiny tibble tidyr zoo]; };
   igoR = derive2 { name="igoR"; version="0.1.3"; sha256="0i1s53pyibxpqdv4269q9riqwr3yvy207hwljx2gbnaf4jqpf5hk"; depends=[]; };
-  igraph = derive2 { name="igraph"; version="1.2.11"; sha256="1ph042yinl8ig2x7laha5j1xr14fky9771l5ha87svhynrg732qw"; depends=[magrittr Matrix pkgconfig]; };
+  igraph = derive2 { name="igraph"; version="1.3.0"; sha256="09dzc8lslljvhj2q46075vxcmlgkvq2qs500zdqyy9g8scq6iqbi"; depends=[magrittr Matrix pkgconfig]; };
   igraphdata = derive2 { name="igraphdata"; version="1.0.1"; sha256="19w5npa4b8c054v94xlr7nmhhg2fhq4m8jbds86skp8zvipl4rkl"; depends=[]; };
   igraphinshiny = derive2 { name="igraphinshiny"; version="0.1"; sha256="1ww5s4jfihzcx4k35lbhzsf54z720xh7b2p5alzk843m6rx77986"; depends=[igraph shiny]; };
   igraphtosonia = derive2 { name="igraphtosonia"; version="1.0"; sha256="0vy9jnpjp68l8s0hi1l57j9p41c543h3iqv16pwl550f38zqp8j6"; depends=[igraph]; };
   igrf = derive2 { name="igrf"; version="1.0"; sha256="1287mx1fpbq9y8jbyb43hlignkqg313rn3kc52pm6b2n77ipkrc6"; depends=[]; };
   iheatmapr = derive2 { name="iheatmapr"; version="0.5.1"; sha256="1pwkwh7ljlpr6zyz6j8knpz3iw60xzkw8amc98x4pc2mw148jvzx"; depends=[fastcluster ggdendro htmlwidgets jsonlite knitr magrittr RColorBrewer scales]; };
-  iheiddown = derive2 { name="iheiddown"; version="0.8.6"; sha256="0w36w875fzxx8parjc6lb9nwvfjs0p2vv1pzd12cb160pgn9y7mc"; depends=[bib2df bookdown crayon dplyr fs gender ggplot2 pdftools purrr readr remotes rlang rmarkdown rstudioapi servr stringr tibble tidytext usethis xaringan]; };
   ihpdr = derive2 { name="ihpdr"; version="1.2.1"; sha256="1qa9ndb5aqbmlqbl0ivh10ddah2rbhsc6928dml20fjgz7lggdww"; depends=[curl dplyr httr lubridate magrittr purrr readxl rlang rvest tidyr xml2]; };
   iilasso = derive2 { name="iilasso"; version="0.0.2"; sha256="043m1n5840459zsknkb54801apb0a2cqfprncmj2wp235rbqj832"; depends=[BH Matrix Rcpp]; };
   ijtiff = derive2 { name="ijtiff"; version="2.2.7"; sha256="187ykflj7b51j2jziqb45bcv9319w67g179505m74kjka897rir4"; depends=[checkmate cli dplyr fs magrittr purrr readr rlang strex stringr withr zeallot]; };
-  ilc = derive2 { name="ilc"; version="1.0"; sha256="0hs0nxv7cd300mfxscgvcjag9f2igispcskfknb7sn7p8qvwr5ki"; depends=[date demography forecast rainbow survival]; };
   imabc = derive2 { name="imabc"; version="1.0.0"; sha256="1p420jlvqqcqdjqp7y4mcjkzimw3qiygph5yrvmm75znax3fkg4z"; depends=[data_table foreach lhs MASS truncnorm]; };
   image_CannyEdges = derive2 { name="image.CannyEdges"; version="0.1.0"; sha256="0c8pvk91xyys6d2i03yy88kylb3jli5jkpq2s069n7p0yl3z7rr1"; depends=[Rcpp]; };
   image_ContourDetector = derive2 { name="image.ContourDetector"; version="0.1.1"; sha256="0h9nq6k99rfmldw1c00k2anlpbjbpm26pp1d7jg2wz334dvlvlij"; depends=[Rcpp sp]; };
@@ -11118,6 +11136,7 @@ in with self; {
   inegiR = derive2 { name="inegiR"; version="3.0.0"; sha256="1rhkdmpz7mxi7ddyygss5rlh3c8hgxhzdk3fnvnlizc1l55cc6c0"; depends=[jsonlite lubridate plyr tibbletime XML zoo]; };
   ineq = derive2 { name="ineq"; version="0.2-13"; sha256="09fsxyrh0j7mwmb5hkhmrzgcy7kf85jxkh7zlwpgqgcsyl1n91z0"; depends=[]; };
   ineqJD = derive2 { name="ineqJD"; version="1.0"; sha256="0anv384jwzn5gkc0jqsl81bkmrjd21br99c5q30xd6ncxavj4s57"; depends=[]; };
+  inet = derive2 { name="inet"; version="0.1.0"; sha256="1kjy2kgi5v29yk6pv776gwdqzkscjh96p3iv1j906vh47zp8wrag"; depends=[glmnet hdi MASS]; };
   infer = derive2 { name="infer"; version="1.0.0"; sha256="1qbpcn7jqbvgwnpiyylj021j8m33p58a204yd1pfkpzd3x2lbsm6"; depends=[broom dplyr generics ggplot2 glue magrittr patchwork purrr rlang tibble tidyr]; };
   inferference = derive2 { name="inferference"; version="1.0.2"; sha256="171h9zhvaza7fklcg07wk9sm8k2fy39k3cdjkzb3vk8p8acd051v"; depends=[Formula lme4 numDeriv]; };
   inferr = derive2 { name="inferr"; version="0.3.1"; sha256="1ma90f31jcd65l5v3wqbx4x61gw3iay1a2hwjsd5aln1ivbgmzsv"; depends=[data_table magrittr Rcpp]; };
@@ -11141,7 +11160,7 @@ in with self; {
   ingredients = derive2 { name="ingredients"; version="2.2.0"; sha256="11bv4l4fn9kr7y2nfzrwnaya8fi9w3nwcm9vzlqb7dva83rkqbsc"; depends=[ggplot2 gridExtra scales]; };
   ini = derive2 { name="ini"; version="0.3.1"; sha256="04yqij344dwm0xqgara8xia42mlmij3i8711qbb5534w05a1l6bv"; depends=[]; };
   injectoR = derive2 { name="injectoR"; version="0.2.4"; sha256="0sa32cspp6y3m04yfmd02kxx55mk7l9jxf4r9pk1a6k3sqnj6fl8"; depends=[]; };
-  inlabru = derive2 { name="inlabru"; version="2.4.0"; sha256="0qf3d5zk8l0gmqh341c7xslyhxyxmx5nlxg4ks1kfjq1sasnrs5f"; depends=[Matrix plyr rgdal rgeos rlang sp withr]; };
+  inlabru = derive2 { name="inlabru"; version="2.5.2"; sha256="007ba3a0mkslvirh4i1a714w0rl7cs6pdhbbjbn7v8hvah78ik7a"; depends=[magrittr Matrix MatrixModels plyr rgdal rgeos rlang sp withr]; };
   inldata = derive2 { name="inldata"; version="1.0.3"; sha256="0iz3dlmaw6p81lj406nq4sg4qvl289mn95by10r3zrikf39l0jq2"; depends=[raster sp]; };
   inline = derive2 { name="inline"; version="0.3.19"; sha256="1mcr9hgq6kkq03n7pkcccxa7vg8jma0q7lfxc5vvkc6snydk1s8f"; depends=[]; };
   inlinedocs = derive2 { name="inlinedocs"; version="2019.12.5"; sha256="11d8cnrzgq95w7hn234rcwrr1mmrv63f69807pnzxizxbgnp7wz3"; depends=[]; };
@@ -11153,9 +11172,9 @@ in with self; {
   inplace = derive2 { name="inplace"; version="0.1.2"; sha256="06jb8xzjqywdww8j2i59c8663dfbrhnvj0lh3xm73j39sig6vh7l"; depends=[Rcpp]; };
   insane = derive2 { name="insane"; version="0.1.0"; sha256="144fq1lys6wy78vnmz1vd4ghs8agraj1hgg0vwlxcnbykmf50i95"; depends=[broom dplyr DT ggbeeswarm ggplot2 ggpubr ggthemes glue patchwork purrr readxl shiny tidyr]; };
   insect = derive2 { name="insect"; version="1.4.2"; sha256="0pbac9il1jrhii0hxvvqjc3phyr2iamxwzanxx5mrkyjh2wsl3jh"; depends=[ape aphid kmer openssl phylogram RANN seqinr xml2]; };
-  insee = derive2 { name="insee"; version="1.1.3"; sha256="103b9aw6afq169k839lydfc904wqrwh1bh2r69wa2s61rpwiinwc"; depends=[crayon dplyr httr openssl purrr rappdirs readsdmx rlang stringr tibble tidyselect xml2]; };
+  insee = derive2 { name="insee"; version="1.1.4"; sha256="0f0vchk6cwy8i1x921sb4nhzkwf81zgjiys041nhmrj3y4dxnxlz"; depends=[crayon dplyr httr openssl purrr rappdirs readsdmx rlang stringr tibble tidyselect xml2]; };
   insiderTrades = derive2 { name="insiderTrades"; version="0.0.1"; sha256="1hz2jmghfihbn1dbrr38zlwa0s44gm84pjhhk0yfrnljg9mqf4qy"; depends=[magrittr RCurl stringr]; };
-  insight = derive2 { name="insight"; version="0.16.0"; sha256="0gcyps0889rys04bj70br5zfvzcqxd55yawykmns17n9hsixfi3r"; depends=[]; };
+  insight = derive2 { name="insight"; version="0.17.0"; sha256="1rxcy8nyg3y50czm3y1x2pibivywcb1bjmvpyqlzg4yy2j84v69p"; depends=[]; };
   insol = derive2 { name="insol"; version="1.2.2"; sha256="166kgxgzbh55y2qqya6c2si22x0v7asi70im054g6xxwc5187kh3"; depends=[raster]; };
   inspectdf = derive2 { name="inspectdf"; version="0.0.11"; sha256="19ainhxgda58cb70gwxki618wln1v1k4iwvnlvy6s7aldry4wgc4"; depends=[dplyr ggfittext ggplot2 magrittr progress Rcpp tibble tidyr]; };
   inspector = derive2 { name="inspector"; version="1.0.3"; sha256="16gc98af6wmwf32fz8zml5v17g5lkiybzyzsqgphx0k19hrbc6kr"; depends=[Rdpack]; };
@@ -11167,7 +11186,7 @@ in with self; {
   intRegGOF = derive2 { name="intRegGOF"; version="0.85-5"; sha256="0xjq8vdlgqlzrvp752gd4qfrpnpapx7k6xzfsvfril8ngvm9a162"; depends=[]; };
   intRinsic = derive2 { name="intRinsic"; version="0.2.0"; sha256="01bgh88f94imqhx63miv0gyjw51sbqidp6p3g0f6p8rl95aqnq6h"; depends=[dplyr FNN ggplot2 knitr MCMCpack pheatmap Rcpp RcppArmadillo reshape2 rlang salso]; };
   intRvals = derive2 { name="intRvals"; version="1.0.0"; sha256="0391raj5wq6issvzqm8bfnv1ap2hh5nfsqi9r1x5ss37fvcq5fjm"; depends=[lme4 plyr]; };
-  intamap = derive2 { name="intamap"; version="1.4-9"; sha256="060sghkqsdrxpa340rvjskh2wafdkffa5q8nlbg1msnsmk639lkn"; depends=[automap doParallel evd foreach gstat MASS mvtnorm rgdal sp]; };
+  intamap = derive2 { name="intamap"; version="1.4-16"; sha256="1spgxz3cvfcfk7n1agmns2q3bd9gl19q7szq8kzjp7zi9bzd6xb6"; depends=[automap doParallel evd foreach gstat MASS MBA mvtnorm rgdal sp]; };
   intccr = derive2 { name="intccr"; version="3.0.3"; sha256="1sg4pda60xx2zqhwckc0nq4b82xxw0jinaw13p671pw9gb4mz38g"; depends=[alabama doParallel foreach MASS]; };
   intcensROC = derive2 { name="intcensROC"; version="0.1.3"; sha256="1raqjc3g9fgyd01iax7hrmkk3nzzfi34a1ywhjrkwv1n9gsc58ns"; depends=[pracma Rcpp RcppEigen]; };
   intdag = derive2 { name="intdag"; version="1.0.1"; sha256="0mb0a1ccc67clfa75b4hl901zdmx7fxw713c4ybx3i5wc2ldl8ph"; depends=[]; };
@@ -11177,7 +11196,7 @@ in with self; {
   intensegRid = derive2 { name="intensegRid"; version="0.1.1"; sha256="15vjf39fx6bkay15nbmqnv5vp8w6xy6fzf1lglqr6506pyaqh8w8"; depends=[dplyr httr jsonlite lubridate magrittr purrr rlang tibble tidyr]; };
   intensity_analysis = derive2 { name="intensity.analysis"; version="0.1.6"; sha256="1ydmn7njqk6i2667zaha8mvfndss4im39czadg1f3z6sndp2lsji"; depends=[diffeR ggplot2 raster reshape2 rgdal]; };
   intensitynet = derive2 { name="intensitynet"; version="1.0.0"; sha256="1mwgz8rp180x7n08clqr0g19f0kxnparv10k98ysxq7shpwqimr1"; depends=[ggplot2 igraph intergraph Matrix sna spatstat_geom spdep viridis]; };
-  interactionR = derive2 { name="interactionR"; version="0.1.3"; sha256="1wckp3vz06ary2ydk22iykp1ck3i0bqhq51d8jyafq2h0rjhkyc8"; depends=[car flextable msm officer]; };
+  interactionR = derive2 { name="interactionR"; version="0.1.5"; sha256="12m4j29x24gjvck71rpsnh7xpaaq77l1shkgzjvklbvqsg5dk24g"; depends=[car flextable msm officer]; };
   interactionRCS = derive2 { name="interactionRCS"; version="0.1.0"; sha256="07yhcgp9jc0fd29drsvdcpg8hw3zafr3njkx4qa5qhp3jsn0m3pm"; depends=[boot mlbench msm pryr pspline rms survival]; };
   interactionTest = derive2 { name="interactionTest"; version="1.2"; sha256="0ycr839l07xahakr4r2jvlmd0fcxfm4qi3g8agnyh24c2kwl3ck2"; depends=[]; };
   interactions = derive2 { name="interactions"; version="1.1.5"; sha256="16lrlj0rc9bkxgmackpvcx8wx9pbsnr55vak6zx022ss820h3ljj"; depends=[cli crayon generics ggplot2 jtools rlang tibble]; };
@@ -11200,7 +11219,7 @@ in with self; {
   intervals = derive2 { name="intervals"; version="0.15.2"; sha256="0mvwfwc03ifb30a3dzbmkv9adwqb8ajxhcw24d8xip8px063plhb"; depends=[]; };
   intervcomp = derive2 { name="intervcomp"; version="0.1.2"; sha256="1l6x1fl84li6is3b92b96q3fbv0rpgqy2lvw9cbi2cq8nh9imnyx"; depends=[]; };
   interventionalDBN = derive2 { name="interventionalDBN"; version="1.2.2"; sha256="0wpp4bfi22ncvl0vdivniwwvcqgnpifpgxb4g5jbyvr0z735cd9w"; depends=[]; };
-  inti = derive2 { name="inti"; version="0.5.4"; sha256="1y6hpxhish3byrd3jlsinhwwfvz4mpcmhbhzxc2fjwyc4a3h36kh"; depends=[agricolae dplyr DT emmeans FactoMineR ggplot2 lme4 purrr shiny stringi stringr tibble tidyr]; };
+  inti = derive2 { name="inti"; version="0.5.5"; sha256="0fwhxmfqa3f796h5r5avgr2ahaagqrbs2kqygj56y07nsy4qbgw7"; depends=[agricolae dplyr DT emmeans FactoMineR ggplot2 lme4 purrr shiny stringi stringr tibble tidyr]; };
   intkrige = derive2 { name="intkrige"; version="1.0.1"; sha256="1p3fn5nzn1iliy025187k590qrsw3z3d47p67gzwwd6h050yrl86"; depends=[gstat raster Rcpp RcppArmadillo Rdpack sp]; };
   intmed = derive2 { name="intmed"; version="0.1.2"; sha256="0amcqzinj35yvb9nfy808bz098dqmnds13z335lgqm6sykriyjpl"; depends=[doParallel dplyr foreach MASS mice stringr tibble]; };
   intrinsicDimension = derive2 { name="intrinsicDimension"; version="1.2.0"; sha256="0cka20ifxx9njnvp18bzhrvmh3cwjnxkc0a23qzi43dahc51ijbc"; depends=[yaImpute]; };
@@ -11215,10 +11234,10 @@ in with self; {
   invLT = derive2 { name="invLT"; version="0.2.1"; sha256="0dcr2cclgzkvsw1lysmjrkwgahas96rjc328yc7a1a56pf62kw2v"; depends=[]; };
   invacost = derive2 { name="invacost"; version="1.1-4"; sha256="0nj1zzlj7n05ajp7c228cgs0vzlniam4d3x804ncy1wl3d920hc9"; depends=[dplyr earth ggplot2 lmtest mgcv quantreg robustbase sandwich scales]; };
   invctr = derive2 { name="invctr"; version="0.1.0"; sha256="0jrbr53kvwrf800z18vz9df9bk7swpd4avnyf59ggz2bc0z2ijwk"; depends=[plyr rlang]; };
-  inventorize = derive2 { name="inventorize"; version="1.0.6"; sha256="01rwqqljmlk5bwnvlx0qy6n67q2swjcxp90fp2wipyvl1f46h3m1"; depends=[dplyr ggplot2 magrittr plotly plyr tidyr]; };
+  inventorize = derive2 { name="inventorize"; version="1.0.9"; sha256="10hywnr3lbv5jbczj8qryvbgr190bglid79hg9rzq07ccsyxmq8c"; depends=[dplyr ggplot2 magrittr plotly plyr tidyr]; };
   inverseRegex = derive2 { name="inverseRegex"; version="0.1.0"; sha256="1wk3ac2rfy0m8442sa2m75s6l3wadx4d4cwas6c8n2xqkrphci87"; depends=[]; };
   invertiforms = derive2 { name="invertiforms"; version="0.1.0"; sha256="131h5dlyj38bis2rk2ji3dpdd45iiavfwb4d6cf0gn8rr7ldkwgl"; depends=[glue Matrix sparseLRMatrix]; };
-  investr = derive2 { name="investr"; version="1.4.0"; sha256="0l47bfwxssfr3maprkpwnmgxnxccl3ch4grc7f968iiqk83mcxw9"; depends=[nlme]; };
+  investr = derive2 { name="investr"; version="1.4.2"; sha256="12hrvi3gi3hwianjnzfir4771kbrfbcy35xmfksp0lxrfxvm61ra"; depends=[nlme]; };
   invgamma = derive2 { name="invgamma"; version="1.1"; sha256="12ga2y4wc9bc5zz6vimvxwgjpsx3ys3209nq63gscbw559ydxa5a"; depends=[]; };
   io = derive2 { name="io"; version="0.3.2"; sha256="1cyl8wvbngdrdkkckng1bs699rjp737j99kbd8r155fjj0370nx4"; depends=[filenamer stringr]; };
   ioanalysis = derive2 { name="ioanalysis"; version="0.3.4"; sha256="0nprfqhwy5j11f5xgzaz8iw991cvgdcdmfca8sdvw8mci0cwkh5m"; depends=[ggplot2 lpSolve plot3D]; };
@@ -11254,6 +11273,7 @@ in with self; {
   ipw = derive2 { name="ipw"; version="1.0-11"; sha256="11a34j6lp329ran2r9kxn8184kfmibkdig74lsy6lj4w4w0d71cm"; depends=[geepack MASS nnet survival]; };
   ipwCoxCSV = derive2 { name="ipwCoxCSV"; version="1.0"; sha256="0avnvf4pnpxnik3iwwglpwkc8h0vsx9v6fxldkbvq7l9bphdbba1"; depends=[survival]; };
   ipwErrorY = derive2 { name="ipwErrorY"; version="2.1"; sha256="14p22mwc120kdlf6r1hfx4kp7nqrz2nl2vpvy45j8rbrc571b6ka"; depends=[nleqslv]; };
+  iq = derive2 { name="iq"; version="1.9.3"; sha256="00pcvrz0wsdc98xh2lb94md76r0x0w4lzf157wncxjba38cz9kg8"; depends=[Rcpp RcppEigen]; };
   iqLearn = derive2 { name="iqLearn"; version="1.5"; sha256="1zn43zvx0mjzh96bm73scacmladamy8jmhxim7hcfq39cfhiw3c8"; depends=[]; };
   irace = derive2 { name="irace"; version="3.4.1"; sha256="1dhlspv1gqg7cm7j95zhl0k2zr0s159krjmxm07k5fp68ax95sky"; depends=[R6]; };
   irboost = derive2 { name="irboost"; version="0.1-1.1"; sha256="03rgcmaahq1mhv15lid41n39wiqn4lrnc4q0rq25q7xg328vc9d5"; depends=[mpath xgboost]; };
@@ -11264,13 +11284,13 @@ in with self; {
   irr = derive2 { name="irr"; version="0.84.1"; sha256="1hs4ylqm51smrmgsph7z9arwkz5px2a320acar324fkjdd3yifp7"; depends=[lpSolve]; };
   irrCAC = derive2 { name="irrCAC"; version="1.0"; sha256="1j9z8vz5zcl51a8qq6maf9sw0dqaknkrai7gp31mzag7b6vwms06"; depends=[]; };
   irrICC = derive2 { name="irrICC"; version="1.0"; sha256="0vi5g97kbyhwxz242d1hpqf11izd3kmlzh3997v07md1llcsp6s3"; depends=[]; };
-  irrNA = derive2 { name="irrNA"; version="0.2.2"; sha256="1l7ln5ahwnjvvd5gmismwfvljkg6vpipgi7hlcdlqlxadl165pry"; depends=[irr]; };
+  irrNA = derive2 { name="irrNA"; version="0.2.3"; sha256="1s50k0vygqh3zcvy5j6h5krv9gfiv8sakmnbf90hpkh0rlirgf88"; depends=[]; };
   irt = derive2 { name="irt"; version="0.2.5"; sha256="13cfmzr7bw5jbcwykvjli5lsnbcr7n8w6nljwsmnsa42fa7f2159"; depends=[Rcpp]; };
   irtDemo = derive2 { name="irtDemo"; version="0.1.4"; sha256="0rpwryybnj7b4bxn0mn1m496y85s2fpqdd78lmdl6jg1ck4j4pb3"; depends=[fGarch shiny]; };
   irtGUI = derive2 { name="irtGUI"; version="0.2"; sha256="1hyabm9wvld1b1gvcn02yyd8j1wrpfmpxkcj505az64lqj4p7yj0"; depends=[irtoys magrittr mirt psych readxl shiny shinycssloaders shinydashboard WrightMap writexl]; };
   irtProb = derive2 { name="irtProb"; version="1.2"; sha256="12wnvbzkh0mx9i3iyh1v2n2f2wjsjj7ad3dgv9xj949x4nbz16j0"; depends=[lattice moments]; };
   irtoys = derive2 { name="irtoys"; version="0.2.1"; sha256="0h6iiaxikhbxhbyksbjnb09qdxinlkwr2v9yzs5wslbni14paq5q"; depends=[ltm sm]; };
-  irtplay = derive2 { name="irtplay"; version="1.6.3"; sha256="026h519ycyvn55c8gih2snwrljnvjwsylkdr5jpapviv8304mdj0"; depends=[dplyr ggplot2 gridExtra Matrix purrr reshape2 rlang statmod tidyr]; };
+  irtplay = derive2 { name="irtplay"; version="1.6.4"; sha256="128xw3ylcirfls4fif8ilnphfhpz9pn7pmg4sl1qrwqdh0xksgk2"; depends=[dplyr ggplot2 gridExtra janitor Matrix purrr reshape2 rlang statmod tidyr]; };
   irtrees = derive2 { name="irtrees"; version="1.0.0"; sha256="003gmnv2d0xsqd54chadkbd8c8kf8fwr4lza86k6qkfs7d3ifkjm"; depends=[DiagrammeR tidyr]; };
   irtreliability = derive2 { name="irtreliability"; version="0.1-1"; sha256="15qs8bvgrwajj5kfd57rd34l1p2805ilyd7w60ngrqc14d6az9d2"; depends=[fastGHQuad ltm mirt]; };
   isa2 = derive2 { name="isa2"; version="0.3.5"; sha256="17vm0906szhrh2k5x694vwcfijbzmd1v3axpszfybc0lgds437cv"; depends=[lattice]; };
@@ -11298,8 +11318,8 @@ in with self; {
   isopat = derive2 { name="isopat"; version="1.0"; sha256="0fznvgycyd35dh7pbq1xhp667gsficlmycn5pcrqcbs89069xr1s"; depends=[]; };
   isotone = derive2 { name="isotone"; version="1.1-0"; sha256="0alk0cma5h3yn4w2nqcahprijsm89b0gby9najbngzi5vnxr6nvn"; depends=[nnls]; };
   isotonic_pen = derive2 { name="isotonic.pen"; version="1.0"; sha256="1lgw15df08f4dhrjjfr0jqkcvxwad92kflj2px526pcxwkj7cj3i"; depends=[coneproj Matrix]; };
-  isotracer = derive2 { name="isotracer"; version="1.1.2"; sha256="1p78p6604hcrnjvahk6q9dqcg6fcqgbqanrc820zxixn34k49v15"; depends=[BH coda data_table dplyr latex2exp magrittr pillar purrr Rcpp RcppEigen rlang rstan StanHeaders tibble tidyr tidyselect]; };
-  isotree = derive2 { name="isotree"; version="0.5.14"; sha256="1bza63nm9sxlr126rilvlvpc43dng0ln4mp40lwb5s8xiv5qai29"; depends=[Rcpp]; };
+  isotracer = derive2 { name="isotracer"; version="1.1.3"; sha256="1lvgpl7i4ggx4b8gvw6cwggjxxn7cdi4xkdnabvi3srbwxw6ri42"; depends=[BH coda data_table dplyr latex2exp magrittr pillar purrr Rcpp RcppEigen rlang rstan StanHeaders tibble tidyr tidyselect]; };
+  isotree = derive2 { name="isotree"; version="0.5.15"; sha256="1w37h5cl7qs3x5750i0i2wgnkm3l8cb9j1krfaw6bycpkjhab5nb"; depends=[Rcpp]; };
   ispd = derive2 { name="ispd"; version="0.2"; sha256="06h4z342d17rkpr2wwck4sq79kprdq6fgqf10jg8cs1f52q6pq0h"; depends=[ibd]; };
   isqg = derive2 { name="isqg"; version="1.3"; sha256="1988bc5n4b5mgxrfl1774vfgaw7rxm9vlaxnkx26phjzhlr1ix9h"; depends=[BH R6 Rcpp Rdpack]; };
   istacr = derive2 { name="istacr"; version="0.1.3"; sha256="14nhd3v8l827mb1fxfhsxklzxbf4316ijp2qkc99qp7ydmxbk0rd"; depends=[curl jsonlite]; };
@@ -11333,16 +11353,17 @@ in with self; {
   ivprobit = derive2 { name="ivprobit"; version="1.1"; sha256="05b5gf5gmi2yrkg61n7w12qlgpnjakd1z8hhqxy6py8hahsf84gm"; depends=[Formula]; };
   ivreg = derive2 { name="ivreg"; version="0.6-1"; sha256="1dv1vmhnf31a2rn02yy9r34jzfwb8k34y15zpsqp8557ylr1s7nm"; depends=[car Formula lmtest MASS]; };
   ivregEX = derive2 { name="ivregEX"; version="1.0"; sha256="0zh3rqvhn8ald6lxv9kywy2v1p0nr9ijv6plhpbxc6k51zzsgyl8"; depends=[AER Formula lmtest sandwich]; };
+  ivs = derive2 { name="ivs"; version="0.1.0"; sha256="1qmgscpp5xni6v9np7r3np79vk2i9w4vn5p5q2hlq3bv8c4lrpp5"; depends=[glue rlang vctrs]; };
   ivsacim = derive2 { name="ivsacim"; version="2.1.0"; sha256="0pldg086kaaqc2wab1m61anabqaf0mffv1hsb8plz1qn2f8gdcp3"; depends=[Rcpp RcppArmadillo]; };
   ivtools = derive2 { name="ivtools"; version="2.3.0"; sha256="1wv0r9dy893hafbbrjcjrphb8dgql71ya4zfbkl5dfp7d4ncfxl0"; depends=[ahaz data_table nleqslv numDeriv Rcpp survival]; };
   ivx = derive2 { name="ivx"; version="1.1.0"; sha256="1dg09aajk9rqmrlwq4xw7qd5ra1z8wjxipy5l85sl1nzii250drq"; depends=[Rcpp RcppArmadillo]; };
-  jSDM = derive2 { name="jSDM"; version="0.2.0"; sha256="13l3xpk7qfwvsq3zbpiq20j6168f4xxric055vf5p1siw0akvsh1"; depends=[coda corrplot doParallel foreach MASS Rcpp RcppArmadillo RcppGSL stringi]; };
+  jSDM = derive2 { name="jSDM"; version="0.2.1"; sha256="0i54gsvs63705cmn7bzna1f5nrnyr40ffbkjk202dl689lp05fb3"; depends=[coda corrplot doParallel foreach MASS Rcpp RcppArmadillo RcppGSL stringi]; };
   jScore = derive2 { name="jScore"; version="0.1.0"; sha256="0hb63l10cwvpvix155d16v35lp1v88lp69f6q1s09njc6qdsg212"; depends=[]; };
   jSonarR = derive2 { name="jSonarR"; version="1.1.1"; sha256="054q3ly471xa64yyz2as6vkr440ip1y8n5wl6s3zbhqy3bqkdqif"; depends=[jsonlite RCurl]; };
   jaatha = derive2 { name="jaatha"; version="3.2.2"; sha256="1if21hlbf0gz6p6f9h21cxdxcqxv3b54wx5zl4hmiaq9i6zrf8rr"; depends=[assertthat R6]; };
   jab_adverse_reactions = derive2 { name="jab.adverse.reactions"; version="1.0.1"; sha256="0z7i6ni1bhih5yxwng1xxf8cgg3bb1il3p32rp5vfz2hfdm68vag"; depends=[]; };
   jaccard = derive2 { name="jaccard"; version="0.1.0"; sha256="1dmla6qc1k8iw2d7zfjqhf13gqd2lpsrj09yh47ljf994fpab936"; depends=[dplyr magrittr qvalue Rcpp]; };
-  jack = derive2 { name="jack"; version="2.0.0"; sha256="1pm2d1k138qfz3rvvh83ybyvgr687y95c352629lyy1j87bsd15g"; depends=[DescTools gmp JuliaConnectoR multicool mvp partitions Ryacas]; };
+  jack = derive2 { name="jack"; version="3.0.0"; sha256="191daxlkkz4494nvnqq6rdk8gkm6ial39cp63dfmkhhd021ay9ld"; depends=[DescTools gmp gmpoly JuliaConnectoR multicool mvp partitions Ryacas]; };
   jackalope = derive2 { name="jackalope"; version="1.1.3"; sha256="1cslrl2cvcpi2kisb2plkz8c3wfxkbkf816nnyb06k4mv3gy4r5d"; depends=[ape R6 Rcpp RcppArmadillo RcppProgress Rhtslib zlibbioc]; };
   jackknifeKME = derive2 { name="jackknifeKME"; version="1.2"; sha256="0c5shl6s46kz7a623gccqk2plrrf2g29nwr6vbny6009pq3jvzam"; depends=[imputeYn]; };
   jackstrap = derive2 { name="jackstrap"; version="0.1.0"; sha256="09y9pgb920lnbzlgm6j188q8lw1air83kx383a2f89zz7hhgg7jr"; depends=[Benchmarking doParallel dplyr fBasics foreach ggplot2 plyr reshape rlang scales tidyr]; };
@@ -11352,13 +11373,12 @@ in with self; {
   jagsUI = derive2 { name="jagsUI"; version="1.5.2"; sha256="1ig2v5k1xjggh694azr96cv80qapq8al7dhsjhvkx0dihp8kgad2"; depends=[coda rjags]; };
   jagstargets = derive2 { name="jagstargets"; version="1.0.1"; sha256="1ps0gmfgsgig793hfbwpwcnfjl8jni87nmx6i3az5k9y08p1i8ra"; depends=[coda digest fst posterior purrr qs R2jags rjags rlang tarchetypes targets tibble withr]; };
   jalcal = derive2 { name="jalcal"; version="0.1.0"; sha256="19smqrhvab8f2xb8pa8x6gmvr0r2lwvqisfahixs7aa8lxi708jw"; depends=[]; };
-  james_analysis = derive2 { name="james.analysis"; version="1.0.1"; sha256="1b2n4ds4ivfk564z87s2rxjl9j0y4drd3cmyv8jqpccmdvx1137d"; depends=[naturalsort rjson]; };
   janeaustenr = derive2 { name="janeaustenr"; version="0.1.5"; sha256="1wyn4qc28a3sval8shmyi2d7s4nl3jh96s8pzq871brxcmrncbwr"; depends=[]; };
   janitor = derive2 { name="janitor"; version="2.1.0"; sha256="09nqm957m2f54y2l30619b58x4i7gxwvr2lwg5kly5xy1ya1a1nn"; depends=[dplyr lifecycle lubridate magrittr purrr rlang snakecase stringi stringr tidyr tidyselect]; };
   jaod = derive2 { name="jaod"; version="0.3.0"; sha256="071j3xqk7gzsic1sk8v0pwmqv6pav0nj9vvbskss3l1gczy80dfr"; depends=[crul jsonlite tibble]; };
   japanmesh = derive2 { name="japanmesh"; version="0.1.1"; sha256="1p6kssz0q2zjx7yd4x7jf56n62nx4g8gmbc8v2din1mgks4rm614"; depends=[dplyr geosphere lifecycle magrittr purrr rlang sf stringr tibble tidyr units vctrs]; };
   japanstat = derive2 { name="japanstat"; version="0.1.0"; sha256="0rd2q23s9r075ns47ccmr8fjvdcv2jncjs9w1c668s597cwkf6lb"; depends=[cli dplyr httr pillar progress purrr rlang stringi stringr tibble tidyr vctrs]; };
-  jarbes = derive2 { name="jarbes"; version="1.7.2"; sha256="0qjnx0m65f6a8r6y5mwplaq518lrsf73k8zbf728v857nbjlhf2l"; depends=[ggExtra ggplot2 gridExtra MASS mcmcplots R2jags rjags]; };
+  jarbes = derive2 { name="jarbes"; version="2.0.0"; sha256="0lx565m9abvai47ndpryxbhpsdnh76sbaf0mixpd58raqnysc26b"; depends=[ggExtra ggplot2 gridExtra MASS mcmcplots R2jags rjags tidyr tidyverse]; };
   jcext = derive2 { name="jcext"; version="0.1.1"; sha256="02zppiyq3gy551zi1g00gam1w4y1wgzn5zi9wrcz8yw915dla0ix"; depends=[ggplot2 maps RColorBrewer rworldmap sp stringr]; };
   jcolors = derive2 { name="jcolors"; version="0.0.4"; sha256="18dmjcrci0z1xy2kglrarzm0idr9g3nhbbw7f1ijls3i0piqdri6"; depends=[ggplot2 scales]; };
   jcp = derive2 { name="jcp"; version="1.2"; sha256="120hhysgnb5992ss2ays7ksyy0xb251lsxgnxihc11h2rqg6wqv8"; depends=[]; };
@@ -11381,10 +11401,10 @@ in with self; {
   jmetrik = derive2 { name="jmetrik"; version="1.1"; sha256="1if1kxx8apgkbxpkjnlj2lpsfnyj2splsg1p3j5vxa7q6wx70f9j"; depends=[]; };
   jmotif = derive2 { name="jmotif"; version="1.1.1"; sha256="0b2qllpfgs6q5fwfhxl5b4xdyzbvnja7ld766akf0xxznxvglkrg"; depends=[Rcpp RcppArmadillo]; };
   jmuOutlier = derive2 { name="jmuOutlier"; version="2.2"; sha256="1vj9n1hsf780f7l0a22kmi3qm84j4dzjybjkh5zwh6bhwfjnjws3"; depends=[]; };
-  jmv = derive2 { name="jmv"; version="2.0"; sha256="0fhjp3ih46r34yiqxbd2kpwp88nhyrqfwh729l14sj3aw142nlbi"; depends=[afex BayesFactor car emmeans GGally ggplot2 ggridges GPArotation jmvcore lavaan MASS multcomp mvnormtest nnet PMCMR psych R6 ROCR vcd vcdExtra]; };
+  jmv = derive2 { name="jmv"; version="2.3.4"; sha256="0mhai7kvc6fpsybpgj6adnbqsg3nlx16zfjdg6lxkhzjdv0s4gpm"; depends=[afex BayesFactor car dplyr emmeans GGally ggplot2 ggrepel ggridges GPArotation jmvcore lavaan magrittr MASS multcomp mvnormtest nnet PMCMR psych R6 ROCR vcd vcdExtra]; };
   jmvReadWrite = derive2 { name="jmvReadWrite"; version="0.3.1"; sha256="0yg6j122x9hcyjw5lfdz6fj4mpj5w8z3cdn9nlfi79yl7ivzf9dm"; depends=[rjson zip]; };
   jmvconnect = derive2 { name="jmvconnect"; version="2.0.0"; sha256="1q412v8z0wbiqab4czabg75w976591lh59gbbhqz1avkas3jjhf2"; depends=[BH evaluate httr jmvcore rappdirs Rcpp]; };
-  jmvcore = derive2 { name="jmvcore"; version="2.2"; sha256="009hkg378vfkzxbz323m7zfmfyh0j742xf4381qb6s81v3wmg4dq"; depends=[base64enc jsonlite R6 rlang stringi]; };
+  jmvcore = derive2 { name="jmvcore"; version="2.3.4"; sha256="1ybc380xnv2z7jszazjzni5n46xlqfbl75yflrrdpy65vxai4kqa"; depends=[base64enc jsonlite R6 rlang stringi]; };
   job = derive2 { name="job"; version="0.3.0"; sha256="0d7pw3q5lqlgmav1vx63y8l6gdav96656bg378wj001rx5gx052h"; depends=[digest rstudioapi]; };
   jocre = derive2 { name="jocre"; version="0.3.3"; sha256="1i9n3r16pq6r4sy3fc1rxpil5ws8v2is0xdxafinvwr1hzkv1gz6"; depends=[boot KernSmooth plyr TSP]; };
   joinXL = derive2 { name="joinXL"; version="1.0.1"; sha256="1l76bckjz5r1kdsh0s10i0gpca12rkfkp14346fn7avdcw73v23i"; depends=[data_table openxlsx R_utils rChoiceDialogs Rcpp readxl rJava timeDate timeSeries]; };
@@ -11406,7 +11426,7 @@ in with self; {
   jpeg = derive2 { name="jpeg"; version="0.1-9"; sha256="0wihj538wdnr71wdldym83qadb4kh68a6rkallwbh2f25r27b881"; depends=[]; };
   jpmesh = derive2 { name="jpmesh"; version="2.1.0"; sha256="0q8adf582h92qwdwgh4dk53s8rixrrh96r8vzy6bwxvizqf0i3y8"; depends=[leaflet magrittr memoise miniUI purrr rlang sf shiny tibble units vctrs]; };
   jpstat = derive2 { name="jpstat"; version="0.2.0"; sha256="051mlyxd3xbik8fw1343xi72smmbaz6lvyn340m745y4jjx48006"; depends=[dplyr httr lubridate navigatr pillar progress purrr rlang stringi stringr tibble tidyr vctrs]; };
-  jqr = derive2 { name="jqr"; version="1.2.2"; sha256="1v3qjqblwn15mlw3cgmrmh78kcckqrj54wnfyfhrfxdsiqi5d0dk"; depends=[lazyeval magrittr]; };
+  jqr = derive2 { name="jqr"; version="1.2.3"; sha256="1a91zcjxdilhqdyr2lipnwc35f90h0wyqlbg0vw9ay7sq6llxgs9"; depends=[lazyeval magrittr]; };
   jquerylib = derive2 { name="jquerylib"; version="0.1.4"; sha256="04a40v4znpj98j7y6009d74a6g9dchj5rr3p08cgz9p3rlfw3g7h"; depends=[htmltools]; };
   jrc = derive2 { name="jrc"; version="0.5.1"; sha256="0lg647nfijj6grlmwkasd6di5h6286dxmw1373k6n5gwym1g1l36"; depends=[httpuv jsonlite mime R_utils R6 stringi stringr]; };
   jrich = derive2 { name="jrich"; version="0.60-35"; sha256="1y486bfqmfg3f22wm0lfk3lh20ljgi8qrgn5jji0f417wh48nf0x"; depends=[ape]; };
@@ -11418,7 +11438,7 @@ in with self; {
   jskm = derive2 { name="jskm"; version="0.4.3"; sha256="04bm4haylhjj5wf09jmpznav7shnlnhag7kxl4yqp3z5572dvj1g"; depends=[ggplot2 gridExtra scales survey survival]; };
   jsmodule = derive2 { name="jsmodule"; version="1.3.0"; sha256="0a8ckml3i792y0ddff34l686f07vl1bqrs6q3gjmqs0hcrwl0lll"; depends=[data_table devEMF DT epiDisplay geepack GGally ggplot2 ggpubr haven Hmisc jskm jstable labelled MatchIt maxstat officer pROC purrr RColorBrewer readr readxl rstudioapi rvg see shiny shinycustomloader shinyWidgets survC1 survey survIDINRI survival timeROC]; };
   json64 = derive2 { name="json64"; version="0.1.3"; sha256="19q8qgf4wnd3np12ajy180klpjy0g2csw5micwb4sl7qfzl6wc7j"; depends=[jsonlite]; };
-  jsonStrings = derive2 { name="jsonStrings"; version="1.0.0"; sha256="1rcgfzcbypmq2fcngl63ik6z13ir1687ya8aww2v8bk56h19pdxa"; depends=[Rcpp]; };
+  jsonStrings = derive2 { name="jsonStrings"; version="2.0.0"; sha256="0ddpi11p9aaqbp29c46hfpc63c5ppq2ma1r3xhfqmflndwqhidaj"; depends=[R6 Rcpp]; };
   jsonify = derive2 { name="jsonify"; version="1.2.1"; sha256="1kpv6whi6bggi0ij7krzfr0fly6c2j9y54fr5ahgcjp36amr34cj"; depends=[rapidjsonr Rcpp]; };
   jsonld = derive2 { name="jsonld"; version="2.2"; sha256="0bplz2s97wl9yp383jazykh5647iw6kbr1zanqai2s0sxp1xbwn8"; depends=[curl jsonlite V8]; };
   jsonlite = derive2 { name="jsonlite"; version="1.8.0"; sha256="0k6dal7gmm19jl5sjsry5gwbnhsbrnn00q3iixig8k6bxgpr463v"; depends=[]; };
@@ -11442,7 +11462,7 @@ in with self; {
   kStatistics = derive2 { name="kStatistics"; version="2.1"; sha256="018xlxcykjfi2kagf7jvavry8l7i146rqbnb4lz7ccc5q44schwd"; depends=[]; };
   kableExtra = derive2 { name="kableExtra"; version="1.3.4"; sha256="1c5vzy95cbz36jwyssr927qicrayifinv861rvnmg4nghb1gl7q9"; depends=[digest glue htmltools knitr magrittr rmarkdown rstudioapi rvest scales stringr svglite viridisLite webshot xml2]; };
   kader = derive2 { name="kader"; version="0.0.8"; sha256="15f2swgngw5rdjdsh5kd55wm2nivlfs8pv4mdn0b75qihwgg1zkk"; depends=[]; };
-  kairos = derive2 { name="kairos"; version="1.0.0"; sha256="1yi2igflvjjyma1kgrnnnkvmz46axz3dil02l7n26l569bhnp0lh"; depends=[arkhe dimensio extraDistr ggplot2 rlang]; };
+  kairos = derive2 { name="kairos"; version="1.0.1"; sha256="0ijvvcs5y61jswjlj56zrpgcv1f1albcnxfzhan00y8ap830xva5"; depends=[arkhe dimensio extraDistr ggplot2 Hmisc rlang]; };
   kamila = derive2 { name="kamila"; version="0.1.2"; sha256="01rwalv2qigxl3j3jyhrdbxlarwf0xdc8xa6c42sgcl6qpna5vn7"; depends=[abind gtools KernSmooth plyr Rcpp]; };
   kangar00 = derive2 { name="kangar00"; version="1.4"; sha256="0cgyxvgk6bxvh77y9vl0p024dya9ffr9fhmwlcxbysbr4p3kyiaj"; depends=[bigmemory biomaRt CompQuadForm data_table igraph KEGGgraph lattice sqldf]; };
   kantorovich = derive2 { name="kantorovich"; version="3.0.0"; sha256="1iwbxj2c1085pc57zkb5lklkd0bvx0i27a94r526zv7bxaf0kgrd"; depends=[CVXR gmp lpSolve rcdd Rglpk slam]; };
@@ -11452,14 +11472,14 @@ in with self; {
   kappalab = derive2 { name="kappalab"; version="0.4-7"; sha256="16bwbwwqmq2w7vy8p3wg0y80wfgc8q5l1ly1mqh51xi240z1qmq0"; depends=[kernlab lpSolve quadprog]; };
   kaps = derive2 { name="kaps"; version="1.0.2"; sha256="0jg4smbq51v88i3815icb284j97iam09pc52rv3izxa57nv9a0gz"; depends=[coin Formula survival]; };
   karaoke = derive2 { name="karaoke"; version="1.0"; sha256="1kx11lijdffhhh8prjgsamshgg2v29b2i129fjqi079waa335352"; depends=[seewave tuneR]; };
-  karel = derive2 { name="karel"; version="0.1.0"; sha256="0ncjzfzm8a6vx2mswvck3j6vnpqhzrjd5gd371xa5cgi0w1figa9"; depends=[dplyr gganimate ggplot2 gifski magrittr purrr tidyr]; };
+  karel = derive2 { name="karel"; version="0.1.1"; sha256="0nvzvd8aq0sipcvn8agjjd2k1wykpgc99nrrk2cxrlvsjbpd2w52"; depends=[dplyr gganimate ggplot2 gifski magrittr purrr tidyr]; };
   katex = derive2 { name="katex"; version="1.4.0"; sha256="0kgz2qck90h9kaxvy40nii03ib02z757bmw8sgacik82hmj0fxx8"; depends=[V8]; };
   kayadata = derive2 { name="kayadata"; version="1.0.0"; sha256="1zmdwds1p430770426lhwhffissb44x27wqh1vbz7z52ma0h7l91"; depends=[dplyr forcats ggplot2 magrittr scales stringr tidyr]; };
   kazaam = derive2 { name="kazaam"; version="0.1-0"; sha256="0j7vysnmiv9sggcxdn3nrgfvyl52pza4kkjnsa0xlb3fzq9qpwlz"; depends=[pbdMPI]; };
   kcirt = derive2 { name="kcirt"; version="0.6.0"; sha256="1gm3c89i5dq7lj8khc12v30j1c0l1gwb4kv24cyy1yw6wg40sjig"; depends=[corpcor mvtnorm snowfall]; };
   kcopula = derive2 { name="kcopula"; version="0.1.0"; sha256="07ddrq4lxp8i6n7c7ac7x9mdg9gfmlh7bv3n34qalwv0a6fa061w"; depends=[pracma]; };
   kcpRS = derive2 { name="kcpRS"; version="1.0.0"; sha256="067j91rhw56kf15h7hxpm9qr6i59fvy5fh9ycfdqcps83wjgx62x"; depends=[doParallel foreach RColorBrewer Rcpp roll]; };
-  kde1d = derive2 { name="kde1d"; version="1.0.3"; sha256="03h5xd0mwpj8gs5bwf6xhlc1kfd99l1l3w79gfrix67i14nnaifn"; depends=[BH randtoolbox Rcpp RcppEigen]; };
+  kde1d = derive2 { name="kde1d"; version="1.0.4"; sha256="0mj5pd353k7bqabiryy6ss2ifq1nfxlsl2vyld6d53z04zjb4khj"; depends=[BH randtoolbox Rcpp RcppEigen]; };
   kdecopula = derive2 { name="kdecopula"; version="0.9.2"; sha256="0g5c12wm3byd4chd8i9mxv599gsf4ip4qghx83j3mmhsmn05zf4y"; depends=[lattice locfit qrng quadprog Rcpp RcppArmadillo]; };
   kdensity = derive2 { name="kdensity"; version="1.1.0"; sha256="07d1p3ysdm66a9sf0gih5xjb3wfab44c3sr8aaraz22s2a9q9b55"; depends=[assertthat EQL univariateML]; };
   kdetrees = derive2 { name="kdetrees"; version="0.1.5"; sha256="1plf2yp2vl3r5znp5j92l6hx1kgj0pzs7ffqgvz2nap5nf1c6rdg"; depends=[ape distory ggplot2]; };
@@ -11476,7 +11496,7 @@ in with self; {
   kerTests = derive2 { name="kerTests"; version="0.1.3"; sha256="0981q4n4wrv62x4b8jccj5hx58n975rls3sn3s0mz7ajhh1xxbi9"; depends=[]; };
   keras = derive2 { name="keras"; version="2.8.0"; sha256="10zvy4lmhb2sbn0gsm12pf95pxj9bmi8241ap1n6170xsld9phcf"; depends=[ellipsis generics glue magrittr R6 reticulate rlang tensorflow tfruns zeallot]; };
   kerasR = derive2 { name="kerasR"; version="0.6.1"; sha256="1yi7710vgcwz0jhishbga41sc6qyk83a0avmq01dvqjsz3cdfsfc"; depends=[reticulate]; };
-  kerastuneR = derive2 { name="kerastuneR"; version="0.1.0.4"; sha256="1xpilrlf0l323aikq1lflc166wr0xffj0psq1pfhlmm51zhv8190"; depends=[crayon data_table dplyr echarts4r keras magick plotly reticulate rjson RJSONIO rstudioapi tensorflow tidyjson]; };
+  kerastuneR = derive2 { name="kerastuneR"; version="0.1.0.5"; sha256="0mnigff937mcy5saamx7r6rp8mghnghnlzv0hancnmccv7rhfnnj"; depends=[crayon data_table dplyr echarts4r keras magick plotly reticulate rjson RJSONIO rstudioapi tensorflow tidyjson]; };
   kerdiest = derive2 { name="kerdiest"; version="1.2"; sha256="16xj2br520ls8vw5qksxq9hqlpxlwmxccfk5balwgk5n2yhjs6r3"; depends=[chron date evir]; };
   kergp = derive2 { name="kergp"; version="0.5.5"; sha256="0qkjjrjgny8jvklgbddx0n1fq2bwr434shdn7xzdp0krxxnh7h64"; depends=[doFuture doParallel lattice MASS nloptr numDeriv Rcpp testthat]; };
   kerndwd = derive2 { name="kerndwd"; version="2.0.3"; sha256="0lvm007wzhyagyafmq47819hn66riwdcpymn56clc1sgch9i933m"; depends=[]; };
@@ -11485,7 +11505,7 @@ in with self; {
   kernelPhil = derive2 { name="kernelPhil"; version="0.1"; sha256="0pzsknb0ibm3v0ibfaklb4g2mx7zrva4m29356cirwd29nmd8bqw"; depends=[benchmarkme directlabels dplyr ggplot2 gridExtra Hmisc pbapply reshape2 rgdal wordspace]; };
   kernelboot = derive2 { name="kernelboot"; version="0.1.7"; sha256="1465n9fasyxwm4xx9vajaf5n355z2qdkfzhpp3a6mkv58pydbjss"; depends=[future future_apply Rcpp]; };
   kernhaz = derive2 { name="kernhaz"; version="0.1.0"; sha256="1cxwjnfyhxfjdbhs21airycs704jic21pdpsbxsx37wkl11cxpai"; depends=[doParallel foreach GA rgl]; };
-  kernlab = derive2 { name="kernlab"; version="0.9-29"; sha256="0vqhndl4zm7pvkfvq0f6i9cbrm7pij6kmdp7d7w39pa100x6knn3"; depends=[]; };
+  kernlab = derive2 { name="kernlab"; version="0.9-30"; sha256="10gfb542nbl1d5pfy6r7gcg3j1ikra9l18r6xjv8lzp5ka1kmz28"; depends=[]; };
   kernplus = derive2 { name="kernplus"; version="0.1.2"; sha256="0z5zpj89nw7cdphg6frmjwqjxsl6g95xsa8zgsxmw2q75wwj1saz"; depends=[circular KernSmooth mixtools]; };
   kernscr = derive2 { name="kernscr"; version="1.0.5"; sha256="1kcj710q8jbc34g6fcv2nk07hpsb81mfx8hvivgxq8x58028gjzs"; depends=[MASS mvtnorm]; };
   kesernetwork = derive2 { name="kesernetwork"; version="0.1.0"; sha256="0q42zry3qgg38aas0cxy7lwpj9mj45crcbs353d1d1is0w1avh09"; depends=[config data_table dplyr DT ggplot2 golem htmltools plotly reactable rintrojs rlang shiny shinyBS shinycssloaders shinydashboard shinydashboardPlus shinyhelper shinyWidgets stringr visNetwork yaml]; };
@@ -11506,7 +11526,7 @@ in with self; {
   khroma = derive2 { name="khroma"; version="1.8.0"; sha256="07z0k3gg5hr61l03xljfmgjsrsbljpb3ha0mhkwgfq85wiwkmnr3"; depends=[]; };
   kibior = derive2 { name="kibior"; version="0.1.1"; sha256="1acrdlqbklhhd69i1gija8r3nsdgcnfvk5ngz7b2ndy2f58w5ynf"; depends=[Biostrings data_table dplyr elastic jsonlite magrittr purrr R6 rio Rsamtools rtracklayer stringr tibble tidyr]; };
   kidney_epi = derive2 { name="kidney.epi"; version="1.2.0"; sha256="1hd6w7kxim5slmmqalf5sfjg8jcvhyzn5g4gf6h0lmaprsfszhja"; depends=[]; };
-  kim = derive2 { name="kim"; version="0.4.21"; sha256="0sn6m3mnf8d8ghdybyrsckvvmj8j5djg41f87ar7m764pm39prhl"; depends=[data_table remotes]; };
+  kim = derive2 { name="kim"; version="0.5.3"; sha256="0097g5a49a324i80li41hlwvkf9y0vfigiwvggvcnq02l3fzzz0r"; depends=[data_table remotes]; };
   kimisc = derive2 { name="kimisc"; version="0.4"; sha256="0nbjspbq9akhmamfdn192p5b6ki7xqhp422ih6v77xsnrhl5m24z"; depends=[memoise plyr pryr]; };
   kin_cohort = derive2 { name="kin.cohort"; version="0.7"; sha256="0wijsjz0piz5j9rm2nr3d5dfpiyba740mbfbkmfll9pz72s58wz8"; depends=[survival]; };
   kindisperse = derive2 { name="kindisperse"; version="0.10.2"; sha256="0f2i2j1mwk6bwsc42xkkf18nyffp1983bbarwvscjj7saibhfpyj"; depends=[dplyr fitdistrplus ggplot2 ggrepel here LaplacesDemon magrittr plotly readr rlang shiny shinythemes stringr tibble tidyselect]; };
@@ -11517,20 +11537,20 @@ in with self; {
   kirby21_fmri = derive2 { name="kirby21.fmri"; version="1.7.0"; sha256="1z2l6bn53mwkll9ki4169lqlz6wcfp29xzdrqyw606j2xrs4wc22"; depends=[kirby21_base]; };
   kirby21_t1 = derive2 { name="kirby21.t1"; version="1.7.0"; sha256="0bv8rrk9jh02h3gill1g2w246j4zv98cjchz7i2c092lvqps8szs"; depends=[kirby21_base]; };
   kissmig = derive2 { name="kissmig"; version="1.0-3"; sha256="1pi1x3gdbqrhr1km1hqj15k8wyrgs697fnxgjgxga1irbn8bi482"; depends=[raster]; };
-  kit = derive2 { name="kit"; version="0.0.10"; sha256="05gsvz95cfmw5pkbdcd2b9pqfjpnq78jhv722hl1x8lx7ivw2mla"; depends=[]; };
+  kit = derive2 { name="kit"; version="0.0.11"; sha256="145kk1kjcg2qlgkbws746vz0bzf0zn0nr7hl6hpsd11260pa1bjh"; depends=[]; };
   kitagawa = derive2 { name="kitagawa"; version="3.1.0"; sha256="190xi88zc3vybpyawayh8m78sgcn951n3axmc2fc67sic458r02s"; depends=[Bessel kelvin psd]; };
   kiwisR = derive2 { name="kiwisR"; version="0.2.0"; sha256="14fzf72swy221jcbiplss9dh7g03idrpbbyvbxp4bcqpxwr6hbsa"; depends=[dplyr httr jsonlite lubridate purrr tibble]; };
   kknn = derive2 { name="kknn"; version="1.3.1"; sha256="1nzkg3dxaiqp87p56wm895qx5xn86hv5hjr73qvl1yiaxiq0x112"; depends=[igraph Matrix]; };
   kko = derive2 { name="kko"; version="1.0.1"; sha256="08mgi7j1kirfnjsj3xi2wgr32cnqb88vxs15gfm6f1gq853xvhch"; depends=[doParallel ExtDist foreach grpreg knockoff]; };
-  klaR = derive2 { name="klaR"; version="0.6-15"; sha256="1bhgkq6spjawy5lsh663rnby4fzrx4k2qwqp4ci4p9pq8g35pzjv"; depends=[combinat MASS questionr]; };
+  klaR = derive2 { name="klaR"; version="1.7-0"; sha256="1641f5xf68424l34ll5vplys6n8is0zk8ncs3dg1pz8rxx854ydl"; depends=[combinat MASS questionr]; };
   klassR = derive2 { name="klassR"; version="0.1.9"; sha256="1drpiwmqyql6q69ldr8ya8sqg1m2jld5j7xs4dghwdpjlbipy6zv"; depends=[httr jsonlite tm]; };
-  klausuR = derive2 { name="klausuR"; version="0.12-13"; sha256="0j05vmdcw0jagixw5b1s4lasv1n7bdlayxdqrnz97iv501pkj2qb"; depends=[psych xtable]; };
+  klausuR = derive2 { name="klausuR"; version="0.12-14"; sha256="1nc84q5jaya4d7bi1m8zwbmyfsxzmv470nq2nj2j8xn5jv6ch4a5"; depends=[psych xtable]; };
   kldtools = derive2 { name="kldtools"; version="1.2"; sha256="1r6j6ddylzxsfmymnf8hp7sm8c2ckr8xrdz75xlkgp4fgay106r2"; depends=[]; };
   klexdatr = derive2 { name="klexdatr"; version="0.1.2"; sha256="141xs03sb0ixhjpr388fwf5h124mqkbj0k1xqw0whdhrm5051qsz"; depends=[sf]; };
   klic = derive2 { name="klic"; version="1.0.4"; sha256="1ggsdq8xcg6hi12rq356myhngx3j475gpwlvpynm1581r4z0lkbk"; depends=[cluster coca Matrix pheatmap RColorBrewer]; };
   klsh = derive2 { name="klsh"; version="0.1.0"; sha256="1r354fd5da6mp7v3048ii09hnghhfwdg6pvmx2ib0cr88ql431sy"; depends=[blink plyr Rcpp SnowballC stringi]; };
   klustR = derive2 { name="klustR"; version="0.1.0"; sha256="1g2q6h3cbm8v3gqz0f6v8bl5na9972k38d94czjfxmx4cv7wfgx8"; depends=[htmlwidgets jsonlite]; };
-  km_ci = derive2 { name="km.ci"; version="0.5-2"; sha256="1l6kw8jppaa1802yc5pbfwwgac56nhwc9p076ivylhms4w7cdf8v"; depends=[survival]; };
+  km_ci = derive2 { name="km.ci"; version="0.5-6"; sha256="18sc9vhbdgks8lhk2nfxkkayh8j4j227hl63fm5p04f7z4wm6wc1"; depends=[survival]; };
   kmc = derive2 { name="kmc"; version="0.2-4"; sha256="0y8bdgdxsz53fiqc2yr39agndxs4zxj7mmplj273map9k0slnnqk"; depends=[emplik Rcpp rootSolve]; };
   kmed = derive2 { name="kmed"; version="0.4.0"; sha256="0lm22wrvv8pfndy1ii1wp54makfp37hism3z9hp700zhpml4nnch"; depends=[ggplot2]; };
   kmer = derive2 { name="kmer"; version="1.1.2"; sha256="0jimn9r0abglwxdl1zqz0lxa99cmj6haydkxjzqfbpx9by80wnww"; depends=[openssl phylogram Rcpp]; };
@@ -11541,7 +11561,7 @@ in with self; {
   kmodR = derive2 { name="kmodR"; version="0.1.0"; sha256="1y1pqrrralklflyb1dw8bslfcyqrw8ryijfbhkwba7ykpxcf9fda"; depends=[]; };
   knitLatex = derive2 { name="knitLatex"; version="0.9.0"; sha256="1igacc2sx8897wmnhh8kngd0fq6zqbi30chy5c8jw60zc38mi3wi"; depends=[knitr]; };
   knitcitations = derive2 { name="knitcitations"; version="1.0.12"; sha256="1c7pl8jh61pv0brqanmyfy6s0ipxn312b2hjypcsjaph6b8mhj2q"; depends=[digest httr RefManageR]; };
-  knitr = derive2 { name="knitr"; version="1.37"; sha256="0qyp78v3hz4qimlc3w4hj5dzp44n2w085ay0l1zvxsxs9142mk9r"; depends=[evaluate highr stringr xfun yaml]; };
+  knitr = derive2 { name="knitr"; version="1.38"; sha256="1bg7nmd2bvfd2gscp4nly4a2c05bpgzq536bmmf93vaf860yhf6i"; depends=[evaluate highr stringr xfun yaml]; };
   knitrBootstrap = derive2 { name="knitrBootstrap"; version="1.0.2"; sha256="1aj60j7f0gcs120fdrnfbnb7vk7lfn1phil0mghg6a5zldz4cqs3"; depends=[knitr markdown rmarkdown]; };
   knitrProgressBar = derive2 { name="knitrProgressBar"; version="1.1.0"; sha256="18v5jrscfrin3mcs63bpj0q1drxk3zkhlbw93sqh0qrq04d4x02v"; depends=[R_oo R6]; };
   knitrdata = derive2 { name="knitrdata"; version="0.6.1"; sha256="1am79r4rkrw7vjmyzc0cq4p52l2ypdw99rfhrvdsaq11yllx08mx"; depends=[knitr xfun]; };
@@ -11556,7 +11576,7 @@ in with self; {
   koRpus_lang_en = derive2 { name="koRpus.lang.en"; version="0.1-4"; sha256="1faj065wjj7a68i57y7zmrrj4ckp01gvq8qknf6a56idi8kzr732"; depends=[koRpus sylly_en]; };
   kofdata = derive2 { name="kofdata"; version="0.1.5"; sha256="0l0fiamhx4qqqpfafjf8ksnj37q2ynj45b025vvy4q6y286i0w7j"; depends=[httr jsonlite xts zoo]; };
   kofnGA = derive2 { name="kofnGA"; version="1.3"; sha256="0w0881ydnqdah04sifi25ypzxdwnsiqxfq1xam4yhr670bdak1vm"; depends=[bigmemory]; };
-  kohonen = derive2 { name="kohonen"; version="3.0.10"; sha256="1ck7j13x701g67bx81x7plszz804jfhl1yg42krcj9x88vm5cscr"; depends=[Rcpp]; };
+  kohonen = derive2 { name="kohonen"; version="3.0.11"; sha256="1bk3j0n8w4fhffv89rgyn4n21c0wcx6lr8jv4wbagpxprl585381"; depends=[Rcpp]; };
   kokudosuuchi = derive2 { name="kokudosuuchi"; version="1.0.0"; sha256="0h4r7bd9989pahx34lc2i5h1f8nipir941l7sahhgz28lskfkc3h"; depends=[glue rlang sf stringr tibble]; };
   komaletter = derive2 { name="komaletter"; version="0.4.2"; sha256="1cll8cb69gyxl5mg04jibxf7szh38xrqksjkcswbgjcqidp6yxi2"; depends=[rmarkdown]; };
   konfound = derive2 { name="konfound"; version="0.4.0"; sha256="14d8a1ngrf24gbxfg8c8h4svjvsjc3gflcnzxza17xv2rcgzygnr"; depends=[broom broom_mixed crayon dplyr ggplot2 mice purrr rlang tibble tidyr]; };
@@ -11577,7 +11597,7 @@ in with self; {
   ksrlive = derive2 { name="ksrlive"; version="1.0"; sha256="1zd3ggzgjks0jay69s5m7ihbd7v7zha6ssj2m9ahnyp00ghpk83j"; depends=[tightClust]; };
   kst = derive2 { name="kst"; version="0.5-2"; sha256="0xkmwr4222h4r5dzmfgr0zk8gx7bplm865p5snw2q6h46rbfsasv"; depends=[proxy relations sets]; };
   kstIO = derive2 { name="kstIO"; version="0.3-0"; sha256="0pmgb7n4gvslzc6qhqga39593k45vimj1y774bfsxhsacsb1ad9l"; depends=[kstMatrix MASS pks relations sets stringr]; };
-  kstMatrix = derive2 { name="kstMatrix"; version="0.1-2"; sha256="1z5gs0x80dq549mba2sy1nfhsphrpkrydalj2jiwqb7fmwqknm3r"; depends=[]; };
+  kstMatrix = derive2 { name="kstMatrix"; version="0.1-3"; sha256="1yqf902gf9dgqkcr9hg8yw70ng2jqj66v969j0hnmiw28mnjkn5w"; depends=[igraph]; };
   ktaucenters = derive2 { name="ktaucenters"; version="0.1.0"; sha256="15ddjr4c90b5hc4977gk35zb2kswrcvai3xighy7qj6g9lgiszgf"; depends=[dbscan dplyr GSE MASS]; };
   ktsolve = derive2 { name="ktsolve"; version="1.3"; sha256="0brxqb60m1lyqhsmds1c3c6cmbcxlzk2nwvi0fhkc8ziwzlfmd09"; depends=[BB nleqslv]; };
   kuiper_2samp = derive2 { name="kuiper.2samp"; version="1.0"; sha256="0gcgayh7qdic9zprdvs6r8qvpqs467zrm0qzp2acb7alcp01jhpi"; depends=[]; };
@@ -11585,17 +11605,15 @@ in with self; {
   kutils = derive2 { name="kutils"; version="1.70"; sha256="06jk66wbq3jmdf2jdhqns6r3yk36l2x7c907x977zv80sqxa1l37"; depends=[foreign openxlsx plyr RUnit xtable]; };
   kvh = derive2 { name="kvh"; version="1.4.2"; sha256="0lx7p2rgvcjgg99chcan0qb9hafx226sqvdb1g1xpkdwvzbyxci8"; depends=[Rcpp]; };
   kwb_hantush = derive2 { name="kwb.hantush"; version="0.3.0"; sha256="1rlm7i95yw66asgkag93phig2y9lic4xl2fv3cbnr3v751f6a59m"; depends=[hydroGOF lattice]; };
-  kyotil = derive2 { name="kyotil"; version="2021.5-14"; sha256="1wimyjh78w3bimijr8ym0642kdag4zryildyx3v1p37cjy8788b9"; depends=[]; };
+  kyotil = derive2 { name="kyotil"; version="2022.4-5"; sha256="0q5dwqnar79g9y8xwwydvyx2y677vnhpryb94flwxwl87926y6zl"; depends=[]; };
   kza = derive2 { name="kza"; version="4.1.0.1"; sha256="1vx7wc8iwmr9d6ff2kcy6y3nyfj6jfzv4hxkv1fsas0rbjgfick4"; depends=[]; };
-  kzfs = derive2 { name="kzfs"; version="1.5.0.2"; sha256="0x0fc807p0pwsjkhjq51ymwr9nhs6cb0m82029cz8bbn3yf6cymq"; depends=[digest kzft]; };
-  kzft = derive2 { name="kzft"; version="0.17"; sha256="1y6almhs1x21cr4bbf5fj3mnhp65ivzs869660cyg70sva853sv7"; depends=[polynom]; };
   kzs = derive2 { name="kzs"; version="1.4"; sha256="1srffwfg0ps8zx0c6hs2rc2y2p01qjl5g1ypqsbhq88vkcppx1w9"; depends=[lattice]; };
   l0ara = derive2 { name="l0ara"; version="0.1.6"; sha256="1cv48rbq080z7zx32hmlkpq7mi5axr09a1hyv3knl1vb9gql4qjq"; depends=[Rcpp RcppArmadillo]; };
   l1ball = derive2 { name="l1ball"; version="0.1.0"; sha256="1ryq1vfkwg465kgxbb2wf8df7qa85yr8lbx3a58j0az8dqkyzqix"; depends=[VGAM]; };
   l1kdeconv = derive2 { name="l1kdeconv"; version="1.2.0"; sha256="1mk92sz9nsmxsn7yplhfcz07k022lrr61114ckrmm0x8hfd89zj8"; depends=[ggplot2 mixtools]; };
   l1spectral = derive2 { name="l1spectral"; version="0.99.6"; sha256="19q30g67pf2gx2h6s3il87n910f011lih3lh9321pkh4idl4awnb"; depends=[aricode caret cvTools dplyr ggplot2 glmnet igraph Matrix Rcpp RcppArmadillo]; };
   l2boost = derive2 { name="l2boost"; version="1.0.3"; sha256="1ma11x5wb2iqh10wdlwbwdvgzm4qxp94c5pxgvnmwqzmjgngirdh"; depends=[MASS]; };
-  laGP = derive2 { name="laGP"; version="1.5-5"; sha256="1a269cy9qmjldb5hv1nl9naq1rr35z37xjpp4kannj6p560fm476"; depends=[tgp]; };
+  laGP = derive2 { name="laGP"; version="1.5-6"; sha256="01x0xkbbnh5kii34gqq7agp5cw7ydxzbkkrxz45hfnpkcppds4wp"; depends=[tgp]; };
   labdsv = derive2 { name="labdsv"; version="2.0-1"; sha256="099rzl9hy70rmb5fg0vx26mlhr4ra2s0hl3jgv22s8hqpvlmakas"; depends=[cluster MASS mgcv Rtsne]; };
   label_switching = derive2 { name="label.switching"; version="1.8"; sha256="0xwwhn249aibip12yxjwlrpyqj6zvc95zc7n9jf2vjjpashyc3yk"; depends=[combinat lpSolve]; };
   labelVector = derive2 { name="labelVector"; version="0.1.2"; sha256="06pqkgn852min2mqhjkia6qqdwkp8cz32lbxzp3a2b8bcggbijn4"; depends=[]; };
@@ -11631,19 +11649,20 @@ in with self; {
   landscapemetrics = derive2 { name="landscapemetrics"; version="1.5.4"; sha256="1qsm0h6lcg4a7s6g1am305rcxbrrf2hb6ypd29g5k7kj80fwg1rl"; depends=[cli ggplot2 raster Rcpp RcppArmadillo sp tibble]; };
   landscapetools = derive2 { name="landscapetools"; version="0.5.0"; sha256="11zp6r414nkj8vhsbryzhkxmpal2bva8msaxf1v69xax70ilxyf1"; depends=[ggplot2 raster Rcpp tibble]; };
   landsepi = derive2 { name="landsepi"; version="1.1.2"; sha256="18mgscfc21rl4fdsrhw06ydrd29w2wwfn69lm3cvw4illb2vn64r"; depends=[DBI doParallel fields foreach Matrix mvtnorm Rcpp RSQLite sf sp splancs testthat]; };
+  langevitour = derive2 { name="langevitour"; version="0.2"; sha256="0bzaskhx68x1vbxinsn8fi7y0332wikaig4ia44scbyywm4vhc5y"; depends=[htmlwidgets]; };
   languageR = derive2 { name="languageR"; version="1.5.0"; sha256="1iipnr2b4hd2w718prbh075j56m5xnchlcb2vg26m16qpydp6afn"; depends=[]; };
   languagelayeR = derive2 { name="languagelayeR"; version="1.2.4"; sha256="1q82shdcdd84nr6bnfwgyyb81z8dycvj1i3vhwvdg710s15rgiyk"; depends=[attempt curl httr jsonlite]; };
   languageserver = derive2 { name="languageserver"; version="0.3.12"; sha256="0dmsjnn84r3wlzrf91xwxcwi4y9vcrwiymz14ixw0jc0kys185a3"; depends=[callr collections fs jsonlite lintr R6 roxygen2 stringi styler xml2 xmlparsedata]; };
   languageserversetup = derive2 { name="languageserversetup"; version="0.1.2"; sha256="05i8kcp1zpbkrqpq5vxxvxk9p7phyngxl0q6v76va0i7qnmy1v7a"; depends=[]; };
   lans2r = derive2 { name="lans2r"; version="1.1.0"; sha256="0svqaz1j8vhfnm31bfp4gqshdj73wmljva4kxcv2qajmcdiqbd2s"; depends=[dplyr ggplot2 R_matlab reshape2 rlang tidyr]; };
   lar = derive2 { name="lar"; version="0.1-2"; sha256="0qda0y4ag10kg83wxs3z754kc8c1dg2rwciy64klk7an4ln43i5b"; depends=[data_table treemap xlsx]; };
-  lares = derive2 { name="lares"; version="5.1.0"; sha256="0g85csp1f2yc8jwlzanjivp6s3jx44w4p3ippcarq6s7nrz9p228"; depends=[dplyr ggplot2 h2o httr jsonlite lubridate magrittr openxlsx patchwork pROC rlang rpart rpart_plot rvest stringr tidyr yaml]; };
+  lares = derive2 { name="lares"; version="5.1.2"; sha256="1s24wkh88lln4h93acpldjahf1d57n6zl1szvq7ihynylb03h6xd"; depends=[dplyr ggplot2 h2o httr jsonlite lubridate openxlsx patchwork pROC rlang rpart rpart_plot rvest stringr tidyr yaml]; };
   largeList = derive2 { name="largeList"; version="0.3.1"; sha256="0csijzlxajj0rh24w5n7fs6ss301zr6zfv5khyq4a9g437bwhc2i"; depends=[]; };
   lars = derive2 { name="lars"; version="1.2"; sha256="0blj44wqrx6lmym1m9v6wkz8zxzbjax2zl6swgdczci0ixb5nx34"; depends=[]; };
   lasso2 = derive2 { name="lasso2"; version="1.2-22"; sha256="1l87djh539m444p5nl9975dd3v5nc7j8af9rj4xr54h5d0mbcbjv"; depends=[]; };
   lassopv = derive2 { name="lassopv"; version="0.2.0"; sha256="0yawnjw063jypk3riy9xab9cmliv6c9dnabi18670khd3gzb2r9z"; depends=[lars]; };
   lassoscore = derive2 { name="lassoscore"; version="0.6"; sha256="1i3i07da8sw9w47rcflhylz8zxvzkyycbc1a4gf6hbcpp21rqd7d"; depends=[glasso glmnet Matrix]; };
-  lassoshooting = derive2 { name="lassoshooting"; version="0.1.5-1"; sha256="0ixjw8akplcfbzwyry9p4bhbcm128yghz2bjf9yr8np6qrn5ym22"; depends=[]; };
+  lassoshooting = derive2 { name="lassoshooting"; version="0.1.5-1.1"; sha256="1hc05irjwcw54hdrdbwsxfr5b0qq7dysvybzm04jyixqs5b2m8wx"; depends=[]; };
   latdiag = derive2 { name="latdiag"; version="0.3"; sha256="13wk8vhiwr9drcx5f4wlgbin6hc83zv54yr4h3qhjagm3hxcxbw0"; depends=[Rdpack]; };
   latentcor = derive2 { name="latentcor"; version="1.2.0"; sha256="1kqsiaz84cln6l6ajzn2grrc6bch7pfsrr39l2jvkmcnp8n5cimi"; depends=[chebpol fMultivar ggplot2 heatmaply MASS Matrix mnormt pcaPP plotly]; };
   latentgraph = derive2 { name="latentgraph"; version="1.1"; sha256="11h7nrd81licvdikiwwfkz4x9i7drz09w5ns672b7fw0pj4qqgsr"; depends=[glmnet MASS pracma Rcpp RcppArmadillo]; };
@@ -11659,7 +11678,7 @@ in with self; {
   latticeExtra = derive2 { name="latticeExtra"; version="0.6-29"; sha256="04fzwcqs594rk5qp98yilh3kdh3sw4xf8wld5rp94ggpaqfw7bbc"; depends=[jpeg lattice png RColorBrewer]; };
   lava = derive2 { name="lava"; version="1.6.10"; sha256="0bi3c1aqwlq7jbz4raz6vga4r264w7lldi0i62xjlbl7hnlgi23s"; depends=[future_apply numDeriv progressr SQUAREM survival]; };
   lavaSearch2 = derive2 { name="lavaSearch2"; version="1.5.6"; sha256="0m5dwfmpcmicrpasx2raac2zylss416bxxgb3mg3abpll89iw9fx"; depends=[doParallel ggplot2 lava MASS Matrix multcomp mvtnorm nlme Rcpp RcppArmadillo reshape2 sandwich]; };
-  lavaan = derive2 { name="lavaan"; version="0.6-10"; sha256="0dwc8rgrzyrrb0ivx297ln2qbrsxbpn6mdf7laiffhspdpml8sad"; depends=[MASS mnormt numDeriv pbivnorm]; };
+  lavaan = derive2 { name="lavaan"; version="0.6-11"; sha256="026k32paf51lpy6zxm9m81zg9szx14j37dxdip6nba334jw97h9c"; depends=[MASS mnormt numDeriv pbivnorm]; };
   lavaan_shiny = derive2 { name="lavaan.shiny"; version="1.2"; sha256="0qgswdpxb5af0l3v70sg0jrgsdwr88gz6zzwbk3pw5x6qnvnwb6r"; depends=[lavaan psych semPlot shiny shinyAce]; };
   lavaan_survey = derive2 { name="lavaan.survey"; version="1.1.3.1"; sha256="133hpy8s00y6jzwwzl9brdh70w26jycdm3n1c6bcryghwh3ai4xr"; depends=[lavaan MASS survey]; };
   lavaanPlot = derive2 { name="lavaanPlot"; version="0.6.2"; sha256="03icyydr6sv4jkdfdjchsdrscr9lz9q74x5q17cx2iw3383j6lz5"; depends=[DiagrammeR lavaan magrittr stringr]; };
@@ -11667,7 +11686,7 @@ in with self; {
   lawstat = derive2 { name="lawstat"; version="3.4"; sha256="1zrx5lsqfxlqjr68iz9hqghsla4m25hn5lyf8jwhw5229sw0n7a1"; depends=[Kendall mvtnorm Rdpack]; };
   lax = derive2 { name="lax"; version="1.2.0"; sha256="0v05088a3hfmb2m6mzc6m7nibiq4qs5j052pnigyqkadf8mcyvjq"; depends=[chandwich numDeriv revdbayes sandwich]; };
   layer = derive2 { name="layer"; version="0.0.1"; sha256="0mmijkk4ppbmhlp6ah88a9v3iwdd9j6yw7ff8kk7p1iw63qkiyxi"; depends=[dplyr ggnewscale ggplot2 raster scico sf stars]; };
-  lazy = derive2 { name="lazy"; version="1.2-16"; sha256="1psh3sng1pm23pjwy7iszb21ys7d29ry34ymvpgxj6zdhywwi5n7"; depends=[]; };
+  lazy = derive2 { name="lazy"; version="1.2-17"; sha256="0w1kkkwx1cw619zgd2c913wihwbxicl0lv78wwpp2832mhb15gr7"; depends=[]; };
   lazyData = derive2 { name="lazyData"; version="1.1.0"; sha256="0mbmmx6dh8ph4lrx1b4gxbwz3jwxv4nqi0xvfzpzrm3bwbsjc634"; depends=[]; };
   lazyWeave = derive2 { name="lazyWeave"; version="3.0.2"; sha256="1a7l0rgkp3xq2s6bikciq778fwyr282baa6jk9ip4a71s931p2ag"; depends=[Hmisc labelVector]; };
   lazyarray = derive2 { name="lazyarray"; version="1.1.0"; sha256="1bj1a8ab2479cl3d15h9f1fr1hh5d1p3sxpq8y84yzw0rrsxcldd"; depends=[fstcore R6 Rcpp yaml]; };
@@ -11686,6 +11705,7 @@ in with self; {
   lbreg = derive2 { name="lbreg"; version="1.3"; sha256="1z9vixf6sl0k9lizngc3859lk32srkk1d8y133sl6s37ppmqb4s2"; depends=[MASS]; };
   lcars = derive2 { name="lcars"; version="0.3.7"; sha256="1hjlcl57aazcm5hgjiwmi116rk13z2gr65mpgcvyc0p9xih8bvdf"; depends=[ggplot2 shiny trekcolors]; };
   lcc = derive2 { name="lcc"; version="1.1.3"; sha256="0hbv0nv421ldk10b4qr8dq7ww4w1342sl3s8gw0slfigxbbxv4bh"; depends=[doRNG doSNOW foreach ggplot2 hnp nlme]; };
+  lcda = derive2 { name="lcda"; version="0.3.1"; sha256="0zd0692qspya0ynh5722pbn9mpyf48474pm10dzg4qhl3k4rmmsh"; depends=[poLCA]; };
   lchemix = derive2 { name="lchemix"; version="0.1.0"; sha256="1g2w57fi6kvsyir14hnxh0v6xwjdnbisafvjxvn1g6a4h55dg9i0"; depends=[MCMCpack mvtnorm]; };
   lclGWAS = derive2 { name="lclGWAS"; version="1.0.3"; sha256="03b6ijqvyirv96hc3dsqf4f0zzqlmq5451mcb14d2mw3s6xy1vmq"; depends=[BH Rcpp]; };
   lcmm = derive2 { name="lcmm"; version="1.9.5"; sha256="0c88hy8bqkf2h8a6q06l5sk294g68hkwniv3dv6c4nf9dazvzi7n"; depends=[mvtnorm nlme randtoolbox survival]; };
@@ -11715,7 +11735,7 @@ in with self; {
   leafem = derive2 { name="leafem"; version="0.1.6"; sha256="0ml110rva6ca8ycy0mrivq3wsj0dvyi5f62i92948r7mk6kf0l6a"; depends=[base64enc geojsonsf htmltools htmlwidgets leaflet png raster sf]; };
   leafgl = derive2 { name="leafgl"; version="0.1.1"; sha256="042jps6zh4xr0xj19a7fbgrcb6q6gsw2q5f191lyskr8iajdrz1h"; depends=[geojsonsf htmltools jsonify leaflet sf]; };
   leaflegend = derive2 { name="leaflegend"; version="0.6.1"; sha256="1wby363xbl8kc47pn5057gl812kazyi892067928ikyxq81lxqgl"; depends=[base64enc htmltools htmlwidgets leaflet]; };
-  leaflet = derive2 { name="leaflet"; version="2.1.0"; sha256="0i2ziy3zmya3i0v4ma0b1ymw4mds7di0xjirs452n20z8l31lhhs"; depends=[base64enc crosstalk htmltools htmlwidgets leaflet_providers magrittr markdown png raster RColorBrewer scales sp viridis]; };
+  leaflet = derive2 { name="leaflet"; version="2.1.1"; sha256="0xsng9n08i1w7qj4hbi706m6d8jm9ixrnwq5xac2s3csfm1s1xij"; depends=[base64enc crosstalk htmltools htmlwidgets leaflet_providers magrittr markdown png raster RColorBrewer scales sp viridis]; };
   leaflet_esri = derive2 { name="leaflet.esri"; version="1.0.0"; sha256="01bwzxh2rdhpvvazaxsji8axl765q1ix1fdxla6i61nvqkpw3dz1"; depends=[htmltools leaflet leaflet_extras]; };
   leaflet_extras = derive2 { name="leaflet.extras"; version="1.0.0"; sha256="0li7651cwlz7sg04xdrmvhkrf0n6amaydck7gqz0wkb6wq8hcyzw"; depends=[htmltools htmlwidgets leaflet magrittr stringr]; };
   leaflet_extras2 = derive2 { name="leaflet.extras2"; version="1.1.0"; sha256="138d2ajma3fkz7nsh50z4gw5zaflas39gsy7k5l120hxr7nmzgfk"; depends=[htmltools leaflet magrittr]; };
@@ -11743,7 +11763,7 @@ in with self; {
   ledger = derive2 { name="ledger"; version="2.0.9"; sha256="0ynr1g7vfkabl78zjnshyxixk45g28bi9h1p4zjfl83009yhqjwx"; depends=[dplyr rlang stringr tibble tidyr tidyselect]; };
   leem = derive2 { name="leem"; version="0.1.0"; sha256="1sm9v3m95fbg3apvv3jjf47qxn8v6ipdsm1103dqk4zngmsz4xia"; depends=[tkrplot]; };
   leerSIECyL = derive2 { name="leerSIECyL"; version="1.0.2"; sha256="1zx28gpnys9mmhq7wwljfnq92wj1h1vxgqiirnfmn36z942nvmxl"; depends=[RCurl]; };
-  lefko3 = derive2 { name="lefko3"; version="5.0.1"; sha256="1mf507kxl4g6jyvnvn5g8f8h3p18napgrbnvkmpnda8b564960m2"; depends=[BH glmmTMB lme4 MASS MuMIn pscl Rcpp RcppArmadillo SparseM VGAM]; };
+  lefko3 = derive2 { name="lefko3"; version="5.1.0"; sha256="0lyfaar4azmmsw0xv5bkbv111yfwk5gp9x278waliklw8hk5wyyp"; depends=[BH glmmTMB lme4 MASS MuMIn pscl Rcpp RcppArmadillo SparseM VGAM]; };
   legco = derive2 { name="legco"; version="0.1.4"; sha256="0fd1d2zf510lyrwclsy57d8lgqprk6p8c6ghxglgm6gbx9d2yrgg"; depends=[dplyr httr jsonlite]; };
   legion = derive2 { name="legion"; version="0.1.1"; sha256="11gh281hf3nqzd3lbiqdp7y2qbpb933p92ix92hyg3rqai1fd0hb"; depends=[generics greybox nloptr Rcpp RcppArmadillo smooth zoo]; };
   legislatoR = derive2 { name="legislatoR"; version="1.0"; sha256="1553hpb2cmv3hw6v4c7qwgg8n18jwx101yaqnmaaiv8gfyh6j43m"; depends=[curl dplyr]; };
@@ -11751,16 +11771,16 @@ in with self; {
   lehdr = derive2 { name="lehdr"; version="1.0.1"; sha256="0hg5a4w37wi6bqks2298ajsj8q6y3lvbx80wwg5364vnv7na3308"; depends=[dplyr glue httr rappdirs readr rlang stringr]; };
   leiden = derive2 { name="leiden"; version="0.3.9"; sha256="03gaxpcab3a1av5lk8r5ll1s858gvyx5ndknci1sia96w1v44xc1"; depends=[igraph Matrix reticulate]; };
   leidenAlg = derive2 { name="leidenAlg"; version="1.0.2"; sha256="04n2sfz2s6jvls9i6x5ka5nday2ah6j2npwksh1dqwjib8dsqnsf"; depends=[igraph Matrix Matrix_utils Rcpp RcppArmadillo RcppEigen sccore]; };
-  leidenbase = derive2 { name="leidenbase"; version="0.1.8"; sha256="0i8s9glgqffqiiriwcvmv6zlm83wbgkwwsd6wdkw7b7ladyzmhlf"; depends=[igraph]; };
+  leidenbase = derive2 { name="leidenbase"; version="0.1.11"; sha256="1ahjbpr6snxp5x4ik3lpspzgw7l7y9abpswsl0mkvx4jq5dw69rn"; depends=[igraph]; };
   leiv = derive2 { name="leiv"; version="2.0-7"; sha256="15ay50886xx9k298npyksfpva8pck7fhqa40h9n3d7fzvqm5h1jp"; depends=[]; };
-  lemna = derive2 { name="lemna"; version="0.9.1"; sha256="0aamkqcjw8n9mly8a7m1s1wfi6j5mx2kbbxfn9vbb21b9pqi2jl5"; depends=[deSolve ggplot2 gridExtra]; };
+  lemna = derive2 { name="lemna"; version="0.9.2"; sha256="0pmhapdps9hxkixs3qiq6gipsm7r7f3xvz8iazzkia3lr02f653f"; depends=[deSolve ggplot2 gridExtra]; };
   lemon = derive2 { name="lemon"; version="0.4.5"; sha256="1y3ljidhqdakxlya2npj2w0az820g8kw6gl1cfm4f0cxvzgd1ly4"; depends=[ggplot2 gridExtra gtable knitr lattice plyr rlang scales]; };
   lenses = derive2 { name="lenses"; version="0.0.3"; sha256="08akwzlc5gk2rxbh9xp67n5ahdcld60932ascczjv0accrkxizhk"; depends=[magrittr rlang tidyselect]; };
   leontief = derive2 { name="leontief"; version="0.2"; sha256="1gy23047c6gci9m83yrb662d5685x1kky6m94w68swms59gdc6yp"; depends=[Rcpp RcppArmadillo]; };
   leprechaun = derive2 { name="leprechaun"; version="1.0.0"; sha256="1y30s519502bqabzsf1njf3zzqlbmr4sbmsm57ci1r6dv4miijkh"; depends=[cli fs jsonlite roxygen2 usethis]; };
   leri = derive2 { name="leri"; version="0.0.1"; sha256="1309v58xdw3p6y2wpnl64vgsds5kvfiary2a3fa041kz23jzbp3c"; depends=[ncdf4 raster]; };
   lero_lero = derive2 { name="lero.lero"; version="0.2"; sha256="03ll7jzcay0swwpmxyf0y9k2h8mxx4p5v3ggm9dgdz4j99934l70"; depends=[]; };
-  lessR = derive2 { name="lessR"; version="4.1.6"; sha256="0b62cyvq40fx0kd829c58nwmpz2p0qdvqrc9ndynalrph6l183kx"; depends=[colorspace ellipse knitr lattice latticeExtra leaps openxlsx robustbase shiny viridisLite]; };
+  lessR = derive2 { name="lessR"; version="4.1.7"; sha256="14sfjfcxrr3x5fi5h2pacxs108zja5ywgb377fxgbrh2blygd6bs"; depends=[colorspace ellipse knitr lattice latticeExtra leaps openxlsx robustbase shiny viridisLite]; };
   lest = derive2 { name="lest"; version="1.1.0"; sha256="1d69kvdl31crv4ik8bwylq3s3f4skzrjc4x49c79w443g64n2jp9"; depends=[]; };
   lestat = derive2 { name="lestat"; version="1.9"; sha256="1skxymdf3ncmdbskh7711xxgwsmwxfxnl52gcgw06jscx6s6wrsd"; depends=[MASS]; };
   letsR = derive2 { name="letsR"; version="4.0"; sha256="07l1wgwnkqnvh47ssg62vj88vgml52n0934w00pjxdk90kk3c5zs"; depends=[fields geosphere maps maptools raster rgdal rgeos sp XML]; };
@@ -11784,7 +11804,7 @@ in with self; {
   lgrdata = derive2 { name="lgrdata"; version="0.1.1"; sha256="0h1crdhqfp6hzx30lp0w015scf2566hhrl2i7mkxy868rkl3aig9"; depends=[]; };
   lgtdl = derive2 { name="lgtdl"; version="1.1.5"; sha256="1sixq56d2px36q0xq3kl0zwj2yzm3q8fhgqjvmajcdd5jl8l7130"; depends=[]; };
   lhmixr = derive2 { name="lhmixr"; version="0.1.0"; sha256="1c4ydgq1z2y0xk8xqdsim6xvgxdbl3gglfk5kcr9k4m01arvv0rf"; depends=[]; };
-  lhs = derive2 { name="lhs"; version="1.1.4"; sha256="1dim6pw2vjvsk269dff5bzpnyh9rp4qa9gj8y61bd31384q5c92c"; depends=[Rcpp]; };
+  lhs = derive2 { name="lhs"; version="1.1.5"; sha256="0fb3bc3s5pbwg92qkjbg7v8ah36wm6qs05vf098hwjakr7f6yg3s"; depends=[Rcpp]; };
   liGP = derive2 { name="liGP"; version="1.0.1"; sha256="01yhrzx67gz7j201mkv1aracrvjh4hxkrc7jn48cfwz0dp1lznws"; depends=[doParallel foreach hetGP laGP]; };
   liayson = derive2 { name="liayson"; version="1.0.4"; sha256="0xxl2l24km563n649kxzr15q0f6ks7l5yab3ig229s50i6sbn8nd"; depends=[ape arules biomaRt distances e1071 gplots matlab phangorn plyr proxy RColorBrewer]; };
   libbib = derive2 { name="libbib"; version="1.6.2"; sha256="1d6d4fc9bpj8lkkblqcccdcsf21136vdr38kzy91259z3525gvcg"; depends=[curl data_table pbapply stringr xml2]; };
@@ -11819,7 +11839,7 @@ in with self; {
   limSolve = derive2 { name="limSolve"; version="1.5.6"; sha256="1829rd2cnd8qj80z9a7sgc7gx4sf3kvl5g6d2a0lqqw30f9sjzmr"; depends=[lpSolve MASS quadprog]; };
   lime = derive2 { name="lime"; version="0.5.2"; sha256="03b88s82f0386c44j3z74dwp9f765wx9n1ahrjpy0s2j0pfa5z09"; depends=[assertthat ggplot2 glmnet gower Matrix Rcpp RcppEigen stringi]; };
   liminal = derive2 { name="liminal"; version="0.1.2"; sha256="1ka16fm0gzhpydlk5pjf1vjcb7ygx1d3iv4z8cs6ywzrq4bb5r61"; depends=[dplyr jsonlite matrixStats miniUI rlang shiny tourr vegawidget]; };
-  limonaid = derive2 { name="limonaid"; version="0.1.1"; sha256="0zch942aqxznxs1fghnxxxi5j700xfxnj2xn968nmnlnvayp8hhs"; depends=[httr jsonlite R6]; };
+  limonaid = derive2 { name="limonaid"; version="0.1.3"; sha256="0z9nqnxmdy7wjv16rfk2lzvy1p4x77g9fwdjg4cfl4gdzpr3389r"; depends=[httr jsonlite R6]; };
   limorhyde = derive2 { name="limorhyde"; version="1.0.1"; sha256="0ksz8chs5v7qss5yf24zcpszi6v0ylbn98zaxy7mz62qfx5i441g"; depends=[pbs]; };
   limorhyde2 = derive2 { name="limorhyde2"; version="0.0.7"; sha256="06w3yf391gzaz0rssbl8jp3n9jmywwkmaxbf8mqxds5zy94f4bry"; depends=[abind ashr checkmate data_table DESeq2 foreach HDInterval iterators limma mashr pbs zeallot]; };
   lin_eval = derive2 { name="lin.eval"; version="0.1.2"; sha256="05saxzzwh3gs6a4ii63n5kjm06p399xkyrjnqvn9f164322p7pwb"; depends=[broom]; };
@@ -11888,13 +11908,14 @@ in with self; {
   lmSubsets = derive2 { name="lmSubsets"; version="0.5-2"; sha256="1afdpcp3qiiprzc47cbckf49jd3f8ip81441ghgx0kfx54d1m305"; depends=[]; };
   lmboot = derive2 { name="lmboot"; version="0.0.1"; sha256="1v7a3vlv0187mpg3y3pj7f3pbk1v5n6amw732chy10vdw5nmfkwd"; depends=[evd]; };
   lmds = derive2 { name="lmds"; version="0.1.0"; sha256="130azb0nc2wwxv0qi8v5s4rd02p9lc92zwn634pv7b8awbw81i65"; depends=[assertthat dynutils irlba Matrix]; };
-  lme4 = derive2 { name="lme4"; version="1.1-28"; sha256="03nw76bfyas6cdm9chyxqm5ks6r0qklf2fdy7h4pqrqss325x1fi"; depends=[boot lattice MASS Matrix minqa nlme nloptr Rcpp RcppEigen]; };
+  lme4 = derive2 { name="lme4"; version="1.1-29"; sha256="09p836an3pap7vdbhf1zkl0a7wc63ax2dc8mjrd6lw64ikj7vnc3"; depends=[boot lattice MASS Matrix minqa nlme nloptr Rcpp RcppEigen]; };
   lmeInfo = derive2 { name="lmeInfo"; version="0.1.3"; sha256="1y75dv90jj8jzz4z4iixbv7ipbdx9f7wrjbjj46a8wjiidj1l5zw"; depends=[nlme]; };
   lmeNB = derive2 { name="lmeNB"; version="1.3"; sha256="03khn9wgjbz34sx0p5b9wd3mhbknw8qyvyd5pvllmjipnir63d3q"; depends=[lmeNBBayes numDeriv statmod]; };
   lmeNBBayes = derive2 { name="lmeNBBayes"; version="1.3.1"; sha256="13shfsh9x6151xy8gicb25sind90imrwclnmfj96b76p5dvhzabm"; depends=[]; };
   lmeSplines = derive2 { name="lmeSplines"; version="1.1-10"; sha256="0fy6hspk7rqqkzv0czvvs8r4ishvs7zsf4ykvia65nj26w7yhyia"; depends=[nlme]; };
   lmec = derive2 { name="lmec"; version="1.0"; sha256="09shj01h2dl5lh7ch0wayr7qyhlmk0prv3p1vfgy91sn0wpbqlxr"; depends=[mvtnorm]; };
   lmerTest = derive2 { name="lmerTest"; version="3.1-3"; sha256="1zd8gqjkazhxgpnnr484xwsq30p62fq8592nzyc171zjyplpbaim"; depends=[ggplot2 lme4 MASS numDeriv]; };
+  lmeresampler = derive2 { name="lmeresampler"; version="0.2.1"; sha256="052b249zz9p79197qaaig9ynn5jph8kr945l4kk2vkj8h1j60sy8"; depends=[dplyr forcats ggdist ggplot2 HLMdiag magrittr Matrix nlmeU purrr statmod tidyr]; };
   lmf = derive2 { name="lmf"; version="1.2"; sha256="1xqlqmjl7wf5b2s2a1k1ara21v74b3wvwl4mhbj9dkdb0jcrgfva"; depends=[]; };
   lmls = derive2 { name="lmls"; version="0.1.0"; sha256="0gv7mawdpcqvvf3f61aa1l0yi32z9bs41i36ggn1nwga837g33k3"; depends=[generics]; };
   lmm = derive2 { name="lmm"; version="1.3"; sha256="13b5rvdbzljir1fn4zxv2lshbga64vwzn6884izif9v5dkd5b29j"; depends=[]; };
@@ -11907,7 +11928,7 @@ in with self; {
   lmomco = derive2 { name="lmomco"; version="2.3.7"; sha256="1pxk3hpmihhzyy3yawmi7d6fq0zfxliz8lwsbr9jr1kahhhbw982"; depends=[goftest Lmoments MASS]; };
   lmreg = derive2 { name="lmreg"; version="1.2"; sha256="02a4nqqcfkjlq21mpk8abd4lj4ib2nps3ndf7zgmzygkd1z0df18"; depends=[MASS]; };
   lmridge = derive2 { name="lmridge"; version="1.2.1"; sha256="1wxgsrigyjh22aa4m1z5qs4ac168g1g1g1jnj154490znfqdqip0"; depends=[]; };
-  lmtest = derive2 { name="lmtest"; version="0.9-39"; sha256="126l0y7j2iy6g1w4zii1qkfcjq6wrnc3w2li0bz376smpryddy3i"; depends=[zoo]; };
+  lmtest = derive2 { name="lmtest"; version="0.9-40"; sha256="15yr2kx08wy085bnziqmj1p6hf9mg3qp2a8465jk2df6di6hsh34"; depends=[zoo]; };
   lmtp = derive2 { name="lmtp"; version="1.0.0"; sha256="04lmbb5j3ndjjdpb2yih0lxijzah6p45hv2jiva1l49p9jxwxw0i"; depends=[cli data_table future generics nnls origami progressr R6 SuperLearner]; };
   lmvar = derive2 { name="lmvar"; version="1.5.2"; sha256="0wrny8yzk5y4mzpri6xv5wibbnbaxm0195lcbk5jrl5l5gs99bn6"; depends=[Matrix matrixcalc maxLik]; };
   lmviz = derive2 { name="lmviz"; version="0.2.0"; sha256="0sl2k02m5bxkb4jg8y666ln0xxhr4dhsfz9hlp55p9smlhycl5s2"; depends=[car lmtest MASS mgcv rgl scatterplot3d shiny shinyjs]; };
@@ -11983,17 +12004,16 @@ in with self; {
   longmixr = derive2 { name="longmixr"; version="1.0.0"; sha256="03hh1zrpxqnal4j7rmlllzdhhmrvbdnvdr7rd955hlnkr9946p6c"; depends=[checkmate ConsensusClusterPlus flexmix StatMatch]; };
   longpower = derive2 { name="longpower"; version="1.0.23"; sha256="0fxs3zaciyydl3w0a4d5pi8bbr8yhmh17wi0n39j073pacvzmqf6"; depends=[lme4 nlme]; };
   longurl = derive2 { name="longurl"; version="0.3.3"; sha256="16r6gzyfy7aq8sqdzvc6wqinfp0yj46bsz4yg8n3jf0jdyx0zrc8"; depends=[httr]; };
-  loo = derive2 { name="loo"; version="2.4.1"; sha256="0l2v8zpashqbnck3qx5lp1gqjcfphzky8mxyw5gfk9wk99mzn8dw"; depends=[checkmate matrixStats]; };
+  loo = derive2 { name="loo"; version="2.5.1"; sha256="1wa5hxk7lkr88mway6b7xd5arrkkl2ldl9rf0v1nqwp8lia2ysl6"; depends=[checkmate matrixStats]; };
   lookout = derive2 { name="lookout"; version="0.1.0"; sha256="16pny894diircf7w8b7kmmjpp8j864dj9iivh1n41aafjml4xk8g"; depends=[evd ggplot2 RANN TDAstats tidyr]; };
   lookup = derive2 { name="lookup"; version="1.0"; sha256="0ncmj1df64088qv0g2c0wd8n43qmi15358mz289hakg6z4h0dmyi"; depends=[]; };
   lookupTable = derive2 { name="lookupTable"; version="0.1"; sha256="0ipy0glrad2gfr75kd8p3999xnfw4pgpbg6p064qa8ljqg0n1s49"; depends=[data_table dplyr]; };
-  loon = derive2 { name="loon"; version="1.3.9"; sha256="1phvfgbv4wnrr3m2lbs5iaqsh9m69kf4wcvzvvnf5a23y3gpvw3d"; depends=[gridExtra]; };
+  loon = derive2 { name="loon"; version="1.4.0"; sha256="0sgvzq06qk7id7h1hr0pa8hc02zp4r25ys3ifv7q9119c618q9an"; depends=[gridExtra]; };
   loon_data = derive2 { name="loon.data"; version="0.1.3"; sha256="0sdld3yggjadykqaljf0p4cymy2c47yaxjphc6jwyragzpv4awzw"; depends=[]; };
   loon_ggplot = derive2 { name="loon.ggplot"; version="1.3.1"; sha256="19g90mfin902d5ywi5ivkhga0jwm7l7lswfs08slq3fmn1ibzpsv"; depends=[ggmulti ggplot2 gridExtra loon patchwork rlang scales]; };
   loon_shiny = derive2 { name="loon.shiny"; version="1.0.2"; sha256="00h10jlwxbanwp9mwfjy66nx49d5258qb3m2s9asvkky6g2sghax"; depends=[base64enc colourpicker gridExtra loon loon_ggplot shiny]; };
   loon_tourr = derive2 { name="loon.tourr"; version="0.1.3"; sha256="1vdxqdsr89gzvsw9gx001rw416586lqyq0rp3g55n1lh6h9cy19d"; depends=[loon loon_ggplot MASS tibble tourr]; };
   loop = derive2 { name="loop"; version="1.1"; sha256="1gr257fm92rfh1sdhsb4hy0fzwjkwvwm3v85302gzn02f86qr5dm"; depends=[MASS]; };
-  loose_rock = derive2 { name="loose.rock"; version="1.2.0"; sha256="13p3mp8m2in3cbcwgj42hgzrwxmgalc2v0z3r1zn1n77iqjvcd7r"; depends=[digest dplyr futile_options ggplot2 httr MASS reshape2]; };
   lordif = derive2 { name="lordif"; version="0.3-3"; sha256="1yby9fvzdi1dzvzp6d6h144k1p9nfacd8l5bd66dmhnc8sp2nlx5"; depends=[mirt rms]; };
   lorec = derive2 { name="lorec"; version="0.6.1"; sha256="0mgypd8awixh1lzbh5559br4k7vi3pfmwniqhgh68wc06sc6bn65"; depends=[]; };
   lorentz = derive2 { name="lorentz"; version="1.0-5"; sha256="1py2s4x6vnlyyf5fnwbhws00dmf5qyzmx8wza337w3nzxkr6ns6b"; depends=[emulator magic magrittr tensor]; };
@@ -12007,15 +12027,15 @@ in with self; {
   lpbrim = derive2 { name="lpbrim"; version="1.0.0"; sha256="1cbkzl23vgs9hf83ggkcnkmxvvj8867k5b9vhfdrznpqyqv1f2gp"; depends=[Matrix plyr RColorBrewer]; };
   lpc = derive2 { name="lpc"; version="1.0.2.1"; sha256="1g1dzm7pcrbrdk1dmhbdhj58j69dzar41al3i8q4gysf3adqzsvv"; depends=[]; };
   lpdensity = derive2 { name="lpdensity"; version="2.3"; sha256="06wa6ngfzlicx8g336b2034r54zflfjlrfllr0wkf87sq84x936i"; depends=[ggplot2 MASS]; };
-  lphom = derive2 { name="lphom"; version="0.3.0-14"; sha256="02s3a7a8n1c17c0rcq6knz3xddmfg41iahq2hpgqsm6d9502hybz"; depends=[lpSolve Rsymphony]; };
+  lphom = derive2 { name="lphom"; version="0.3.1-1"; sha256="18scyg2rd30haawmnlxrkxvg6d8w9qqs7vj9cxvkg9flalsd8isg"; depends=[lpSolve]; };
   lpint = derive2 { name="lpint"; version="2.0"; sha256="0p1np8wlfbax0c7ysc5fs9dai8s00h1v0gan89dbd6bx06307w2r"; depends=[]; };
   lpirfs = derive2 { name="lpirfs"; version="0.2.0"; sha256="1jn2faqj7szsfc0bicgym493y4cyncbg93rmcc3yv59b0rbxhc8m"; depends=[doParallel dplyr foreach ggplot2 ggpubr gridExtra lmtest plm Rcpp RcppArmadillo sandwich]; };
   lpl = derive2 { name="lpl"; version="0.11"; sha256="11w2cr5n72p4wds5dm039rdinhvxjfqvrmisksfpf47jddjxhm42"; depends=[MASS survival]; };
   lpme = derive2 { name="lpme"; version="1.1.2"; sha256="1b0w5ji8hjayni1sh5id193cmanf6n11p16fijkxln4sv4lks4aw"; depends=[decon flexmix locpol Rcpp RcppArmadillo]; };
   lpmodeler = derive2 { name="lpmodeler"; version="0.2-1"; sha256="17k67l03dkjx61p4hwswghjm6awk0zx173x9xafxrfd8jrgsf6kf"; depends=[slam]; };
   lpridge = derive2 { name="lpridge"; version="1.0-8"; sha256="0jk4l95z9rcdqkc8lpp4sf1mg2dqj67rhqw1iafrxy5lx4jfaqqx"; depends=[]; };
-  lqmm = derive2 { name="lqmm"; version="1.5.6"; sha256="1s0x95c3gqznw9snr7fm2k41n6h6ay9rsk3bp88jcna1yn3f525i"; depends=[nlme SparseGrid]; };
-  lqr = derive2 { name="lqr"; version="4.0"; sha256="1hv8zvpivmp55gsyk9wzhix4swkx5pp6h1kbiz5749irhfx7kpx0"; depends=[MomTrunc numDeriv quantreg spatstat_geom]; };
+  lqmm = derive2 { name="lqmm"; version="1.5.8"; sha256="1ywiyq6k8fb1ffild1r0rglwc6a5sv1kqfqam28337bbxppdxv8i"; depends=[nlme SparseGrid]; };
+  lqr = derive2 { name="lqr"; version="4.1"; sha256="10hylgr21jbcghwqhqw804d21vgagifmws5jv7siiadgs6f8kvwg"; depends=[MomTrunc numDeriv quantreg spatstat_geom]; };
   lrd = derive2 { name="lrd"; version="0.1.0"; sha256="08g7i6y2isq2vq53byxh58908na4jghka20dznk19lc5mcfpkw97"; depends=[knitr]; };
   lrequire = derive2 { name="lrequire"; version="0.1.3"; sha256="03c8h9v2xhlv7bj5jv117a27gaqaly2kdxs9zyihsm9yh9rg3d79"; depends=[]; };
   lrgs = derive2 { name="lrgs"; version="0.5.4"; sha256="0mf6wqlv21z68w81hvpmhgngvdsklf3x2678d9c9lxfmqmpv4a7y"; depends=[mvtnorm]; };
@@ -12049,7 +12069,7 @@ in with self; {
   ltsbase = derive2 { name="ltsbase"; version="1.0.1"; sha256="16p5ln9ak3h7h0icv5jfi0a3fbw5wdqs3si69sjbn8f5qs2hz7yp"; depends=[MASS robustbase]; };
   ltsk = derive2 { name="ltsk"; version="1.0.8"; sha256="1ykgz5cas924kmq9ak2j8vhr7gg9s458qarqkmyg9wdfj1srqi7p"; depends=[fields gstat sp]; };
   ltsspca = derive2 { name="ltsspca"; version="0.1.0"; sha256="0hgl2zd8y01z8mhnqg1hlv1l7klpwhwk7q8b99pw9vgnh1f2gnfs"; depends=[pracma Rcpp RcppArmadillo]; };
-  ltxsparklines = derive2 { name="ltxsparklines"; version="1.1.2"; sha256="1jnygg7wm2768lrrzball8rn8f60xy4nc3a18h4d32jpnbhifj13"; depends=[]; };
+  ltxsparklines = derive2 { name="ltxsparklines"; version="1.1.3"; sha256="0f2ycgjdw9z9m730wh3k362aq71mwmxhnsxhcjxhj8c4lknr50br"; depends=[]; };
   lubridate = derive2 { name="lubridate"; version="1.8.0"; sha256="199b00cql07gf3rf4hh5ba34amnk0ai40zhx73dq1mpkn7ynxml7"; depends=[cpp11 generics]; };
   luca = derive2 { name="luca"; version="1.0-6"; sha256="0zrxrwpk7iblpysd4fbh50s5bmvd5l1bzbd8rdyk06wby6bcs1rk"; depends=[genetics survival]; };
   lucas = derive2 { name="lucas"; version="1.0"; sha256="1ws35f2pq2y7nnik40nj4qpz1d499gfc5isr1409pwy6r5knb78q"; depends=[DBI plyr rpostgis RPostgreSQL]; };
@@ -12104,7 +12124,7 @@ in with self; {
   mada = derive2 { name="mada"; version="0.5.10"; sha256="1hllv371dm307nkpld0aszjyxfgnajr7gb9zwh40pyzw4q4a2rqb"; depends=[ellipse mvmeta mvtnorm]; };
   maddison = derive2 { name="maddison"; version="0.1"; sha256="1ji51wnj0ybjd30b4bwn5npyswrmcfrbxcmdlngwzvca1knh8g1c"; depends=[]; };
   madgrad = derive2 { name="madgrad"; version="0.1.0"; sha256="0cxf1b57cl7qwax60wv4jvcac762ara2i18nb1fcjp954mwgwnlb"; depends=[rlang torch]; };
-  maditr = derive2 { name="maditr"; version="0.8.2"; sha256="1nmg5pgz4pyck5f66dcrd4hb6v1fg45w4ki9sriz375iskv3as7h"; depends=[data_table magrittr]; };
+  maditr = derive2 { name="maditr"; version="0.8.3"; sha256="108y240b92z5nrjp9rq5baaxncfv1g114garfv87vnwnz7bsd8c7"; depends=[data_table magrittr]; };
   madness = derive2 { name="madness"; version="0.2.7"; sha256="0vcpydqnpmg9rvvzyjyqvd3qgs42n8cr9cafai51989v2w2bcf85"; depends=[expm Matrix matrixcalc]; };
   madr = derive2 { name="madr"; version="1.0.0"; sha256="0lzg75kphz4a0w6n0jbsq87g72jvrbkyas4j813mryq2nv4lmsl4"; depends=[]; };
   madrat = derive2 { name="madrat"; version="2.3.2"; sha256="06gd77r8h7c3sqcq2iapqvsjj41x7qj1gqv2rp0y50g00cg2625d"; depends=[digest igraph magclass Matrix stringi withr yaml]; };
@@ -12120,7 +12140,7 @@ in with self; {
   magickGUI = derive2 { name="magickGUI"; version="1.3.0"; sha256="114l5mga9x3vn9qqydyq1v75gqldh4p6m4i8ak0xw3v7p6wsf8gn"; depends=[magick]; };
   magmaR = derive2 { name="magmaR"; version="1.0.2"; sha256="19jnzggjqnlv3gnc3zjfmphkwjy1y5xp6bgc2nnr6mwfs4rfxscn"; depends=[crul jsonlite]; };
   magree = derive2 { name="magree"; version="1.1"; sha256="0q0v1mx4k1hry0l21611z9jx967l89xpjddvw2v1v9c3kl11kfi6"; depends=[]; };
-  magrittr = derive2 { name="magrittr"; version="2.0.2"; sha256="19k3q76qlri459iyyfgn9gl0w9lnv9v604yhpbc94nx71l6zvrkv"; depends=[]; };
+  magrittr = derive2 { name="magrittr"; version="2.0.3"; sha256="1ljmrrm36y31db5z4cl863ap8k3jcaxk0qzy3f0cn6iag4zzigx2"; depends=[]; };
   maic = derive2 { name="maic"; version="0.1.3"; sha256="1s6rq3v0dk0fm1csq0w8bb52kldaimmsgprmcjj1il6pr2936d3a"; depends=[Hmisc matrixStats weights]; };
   maicChecks = derive2 { name="maicChecks"; version="0.1.2"; sha256="1c2n8avrhx0lvw9hi5slymm49lzf37hbkqzkqy230aikgmpv0cpa"; depends=[data_table ggplot2 lpSolve quadprog tidyr]; };
   mail = derive2 { name="mail"; version="1.0"; sha256="1m89cvw5ba4d87kp2dj3f8bvd6sgj9k56prqmw761q919xwprgw6"; depends=[]; };
@@ -12131,7 +12151,7 @@ in with self; {
   makeFlow = derive2 { name="makeFlow"; version="1.0.2"; sha256="0r7a0klgx144rnks0fhjflnf8vfyyx2544n86nnxkp6cdvw0b4pw"; depends=[dplyr RColorBrewer]; };
   makeProject = derive2 { name="makeProject"; version="1.0"; sha256="09q8xa5j4s5spgzzr3y06l3xis93lqxlx0q66s2nczrhd8nrz3ca"; depends=[]; };
   makedummies = derive2 { name="makedummies"; version="1.2.1"; sha256="062rvijhy2dybpgxzp44cg46bfyb8lp9yasv3mhskhf3yg717sqp"; depends=[tibble]; };
-  makemyprior = derive2 { name="makemyprior"; version="1.0.1"; sha256="0lal0nklw0f9340gdrl2icp9qvcnjasx07a04zr3iw2rgaq5r48c"; depends=[ggplot2 MASS Matrix rlang shiny shinyBS shinyjs visNetwork]; };
+  makemyprior = derive2 { name="makemyprior"; version="1.1.0"; sha256="1h5v1n6b318j36w1c225wq8rdvr3dwsy421x43z0ff9ixidhylbv"; depends=[ggplot2 MASS Matrix rlang shiny shinyBS shinyjs visNetwork]; };
   makepipe = derive2 { name="makepipe"; version="0.1.0"; sha256="087lp7s70nx1zfs3mw4jk43miw4sc0gfd5faxqpnkgbpx01iaa51"; depends=[cli R6 visNetwork]; };
   maketools = derive2 { name="maketools"; version="1.2.2"; sha256="1p98vg5404np5fbiqajznmiqah8lyfv2xf741wjfm2jqkki9nk40"; depends=[sys]; };
   malan = derive2 { name="malan"; version="1.0.2"; sha256="0qwf0r2gwpb93gzvyp8vaw7j6rhghr6nbrfp8xw876n5j5b9jhj3"; depends=[dplyr igraph magrittr Rcpp RcppArmadillo RcppProgress tibble tidygraph]; };
@@ -12149,6 +12169,7 @@ in with self; {
   manifestoR = derive2 { name="manifestoR"; version="1.5.0"; sha256="0b4x4ampzmxcmlcyvl683rwynzwjg1cyx5zpamgy8027fh376zcp"; depends=[base64enc dplyr DT functional htmltools htmlwidgets httr jsonlite magrittr NLP psych purrr readr tibble tidyselect tm zoo]; };
   manipulate = derive2 { name="manipulate"; version="1.0.1"; sha256="1klknqdfppi5lf6zbda3r2aqzsghabcsaxmvd3vw3cy3aa984zky"; depends=[]; };
   manipulateWidget = derive2 { name="manipulateWidget"; version="0.11.1"; sha256="1dpgzmiv08afm57yxr017b014lfn9h3pa4w65prk5k3dgn6p4wsv"; depends=[base64enc codetools htmltools htmlwidgets knitr miniUI shiny shinyjs webshot]; };
+  manydata = derive2 { name="manydata"; version="0.7.3"; sha256="1f4slfi36j5ydlw431z196g7yf9m52izjpgyrhi6f271bdb76bi0"; depends=[covr dplyr ggplot2 httr jsonlite lubridate messydates pkgdown progress purrr remotes rlang roxygen2 stringr tibble usethis]; };
   manymodelr = derive2 { name="manymodelr"; version="0.3.7"; sha256="0kc4y9i21qkcg0pkwlas2mm06s54s70w5ybw4215qjwiy6xax268"; depends=[caret dplyr e1071 ggplot2 lme4 Metrics]; };
   maotai = derive2 { name="maotai"; version="0.2.4"; sha256="178gsci0sdlqzdi18cnc7qvs008w5db50hd9ayzlvabsc0dk19z2"; depends=[cluster dbscan fastcluster labdsv Matrix RANN Rcpp RcppArmadillo RcppDist Rdpack RSpectra Rtsne shapes]; };
   mapReasy = derive2 { name="mapReasy"; version="1.0"; sha256="13va0z967ckwxnnianki5aj66km0x6r37nj4mz9qd3b0bps4g2kj"; depends=[Hmisc rgdal sp]; };
@@ -12165,6 +12186,7 @@ in with self; {
   mapedit = derive2 { name="mapedit"; version="0.6.0"; sha256="1ix0sjsqb6646xyi73am9ic97plw9y9p4pl8mrkpzvqzm0pxdhxx"; depends=[dplyr htmltools htmlwidgets jsonlite leafem leaflet leaflet_extras leafpm mapview miniUI raster scales sf shiny sp]; };
   mapfit = derive2 { name="mapfit"; version="0.9.7"; sha256="16a318bz3my27qj0xzf40g0q4bh9alg2bm6c8jbwgswf1paq1xmx"; depends=[Matrix]; };
   mapi = derive2 { name="mapi"; version="1.0.5"; sha256="1yljvapzkb43i2sbqsmn5aqp95hm8gjkz8m41x1chwyfddrzjsbw"; depends=[data_table pbapply Rcpp sf]; };
+  maple = derive2 { name="maple"; version="0.99.5"; sha256="1cg7grvnrfzdqghlfv5bsii6ips3mykgaw85vx0z9jafhdfpd32f"; depends=[dbarts dplyr ggalluvial ggplot2 plotly rlang Seurat shiny spruce]; };
   mapmisc = derive2 { name="mapmisc"; version="1.8.0"; sha256="0xp2ns6j8craz74jw4gjjhzkfbbihcy8d9dg1i08hiws743kzd8s"; depends=[raster sp]; };
   mapping = derive2 { name="mapping"; version="1.3"; sha256="1in4fjdiass73fdh3y937c600bdbv8gwjzxb5wj07wkc76jxb5ba"; depends=[cartography curl dplyr geojsonio ggplot2 htmltools httr jsonlite leaflet leafpop leafsync mapview rgdal s2 sf stringi stringr tmap tmaptools viridisLite]; };
   mappings = derive2 { name="mappings"; version="0.1"; sha256="1f7m6nbdzdcxsk4m8rh8fzrck8pzxl2lgfz5c6wramwmp8rxczzb"; depends=[]; };
@@ -12183,15 +12205,15 @@ in with self; {
   maptiles = derive2 { name="maptiles"; version="0.3.0"; sha256="025n9fpl55n9wnslpjqr4z5y0q4mn68dplb3fm7wyn968kw7sbig"; depends=[curl png sf slippymath terra]; };
   maptools = derive2 { name="maptools"; version="1.1-3"; sha256="0ixvh4qbdjjl19ghgbb2r26yksya977q1yzs4yn5wshwm0763xph"; depends=[foreign lattice sp]; };
   maptpx = derive2 { name="maptpx"; version="1.9-7"; sha256="0f85i3vwr5rvz261z6j7x15gsahxrq4qqddfb0qyhypgihvwh857"; depends=[slam]; };
-  maptree = derive2 { name="maptree"; version="1.4-7"; sha256="1k7v84wvy6wz6g0dyiwvd3lvf78rlfidk60ll4fz7chvr2nrqdp4"; depends=[cluster rpart]; };
+  maptree = derive2 { name="maptree"; version="1.4-8"; sha256="1x35nk4fi2b62krcvcv187n5sbqrgvw4pbm7r19ps3jlanpi5ksm"; depends=[cluster rpart]; };
   mapview = derive2 { name="mapview"; version="2.10.0"; sha256="1amscd7h5c26r8w6bp68a855vy7y8h84z7dvcc8vz6jbcln915xm"; depends=[base64enc htmltools htmlwidgets lattice leafem leaflet leafpop png raster satellite scales servr sf sp webshot]; };
   mar1s = derive2 { name="mar1s"; version="2.1.1"; sha256="1ljkvgxrramfx1rnp2rg6516mjxaa6s96amrnmqymnyjz7wlf37l"; depends=[cmrutils fda zoo]; };
   march = derive2 { name="march"; version="3.3.2"; sha256="1qdjajb5mkq2r7p224kbxhf01s75hry5c5hx1cnsb48dfzd2s5xg"; depends=[]; };
   marcher = derive2 { name="marcher"; version="0.0-2"; sha256="0hcxbfrwniih4kvx5sxhlffz1pc87kf52v8hvaf193rhhdykis5q"; depends=[magrittr Matrix minpack_lm mvtnorm numDeriv plyr RColorBrewer scales zoo]; };
   marelac = derive2 { name="marelac"; version="2.1.10"; sha256="08phsghzvi0z78pkb5lkamni83fsw0bqfri99j6bjf6y14aygif9"; depends=[seacarb shape]; };
   marg = derive2 { name="marg"; version="1.2-2.1"; sha256="1r6rl7dhvm8dghm7pm4hfw3924qja65hczl6d47v9ixnv4rxyzr9"; depends=[statmod survival]; };
-  margaret = derive2 { name="margaret"; version="0.1.1"; sha256="0qbbbc3ca8ps6b2k3i3rbhz5yr2szrwypqhrjqlhs893nybh3nlq"; depends=[devtools dplyr igraph lubridate purrr readr rlang rvest scholar SnowballC stringi stringr tibble tidyr tidytext tidyverse treemapify usethis widyr writexl]; };
-  marginaleffects = derive2 { name="marginaleffects"; version="0.3.4"; sha256="0ph91ga6jfdsm480kcmyjlrxf44qxcaywq2fqdaw3md0m1hkkxrl"; depends=[checkmate generics insight]; };
+  margaret = derive2 { name="margaret"; version="0.1.2"; sha256="0sjwz6310s1mph5n414h32ckhh2301glyr5pf7fhvz1rgzfc743c"; depends=[devtools dplyr igraph lubridate purrr readr rlang rvest scholar SnowballC stringi stringr tibble tidyr tidytext tidyverse treemapify usethis widyr writexl]; };
+  marginaleffects = derive2 { name="marginaleffects"; version="0.4.1"; sha256="1q35bzsr5h4j850dlhn624f3pwa1x88m1ch7c5p9j7cp4a5vzyf9"; depends=[checkmate generics insight]; };
   marginalizedRisk = derive2 { name="marginalizedRisk"; version="2021.2-4"; sha256="0kagl9xghq9nsh9qvx165j1a5plh08zxhb6nm8j402mnl8pq7a4z"; depends=[]; };
   margins = derive2 { name="margins"; version="0.3.26"; sha256="0sx5xjbzz1rjz8bklfna3171s53xsh123x4bh0kmwp006v8rv309"; depends=[data_table MASS prediction]; };
   marima = derive2 { name="marima"; version="2.2"; sha256="03nvh93r4052li84yjqzc106gwh1542q9s192s980gs6sgy8scm6"; depends=[]; };
@@ -12213,10 +12235,12 @@ in with self; {
   maskRangeR = derive2 { name="maskRangeR"; version="1.0"; sha256="12g9cx7l2bwl3wzka11p73r6w47h4nma3rdlhm9kq1a69ig5cm68"; depends=[dismo dplyr e1071 gdalUtils lubridate magrittr maptools raster rgdal sp tidyverse virtualspecies]; };
   mason = derive2 { name="mason"; version="0.3.0"; sha256="1x5wiagb1sy5gkp0xkbr1jzhrjg1c2bqdh4hy6igwcnws2cbhxyr"; depends=[broom dplyr magrittr purrr rlang tibble tidyr tidyselect]; };
   masscor = derive2 { name="masscor"; version="0.0.7.1"; sha256="1153gx648csmzc2znf7l84f134qzp238hqj2s60r9najk1pczgf6"; depends=[metRology]; };
+  massiveGST = derive2 { name="massiveGST"; version="1.0"; sha256="1mq3w2sx3ifydcs3yx96jm769n1i58qkw7hbw3kam01g1f2f4ys3"; depends=[formattable igraph msigdbr visNetwork WriteXLS]; };
   mastif = derive2 { name="mastif"; version="1.0.1"; sha256="1jw7dz4qxyj848qm7lwg0klcw028260nizdi5gdwf7wd5a2nis9c"; depends=[corrplot RANN Rcpp RcppArmadillo repmis xtable]; };
   matR = derive2 { name="matR"; version="0.9.1"; sha256="1qw2vqmpq7gc3dmr9r000ccjj7xa0h82waxnvryz3l17ggryyjjm"; depends=[BIOM_utils MGRASTer]; };
   matahari = derive2 { name="matahari"; version="0.1.3"; sha256="03mhn4qh1vcz2hr0mxp6gijwgrzvbpfb8dq7lqhchbk5gq5g3fnh"; depends=[clipr jsonlite purrr readr rlang rstudioapi tibble]; };
-  match2C = derive2 { name="match2C"; version="1.2.2"; sha256="0sacmxq9igvkn4qq1fzynbyiq13jj92k2gx42bbfnm4g8gjlhpch"; depends=[ggplot2 mvnfast rcbalance Rcpp]; };
+  match2C = derive2 { name="match2C"; version="1.2.3"; sha256="1ccmva0qgks2r6ya39vvrk1dx8ixmqiy3p0iz8hxcg5qin2pfzgi"; depends=[ggplot2 mvnfast rcbalance Rcpp]; };
+  matchMulti = derive2 { name="matchMulti"; version="1.1.10"; sha256="1cbxgqx36f19lccd9qjrq3zq3ghqbfjb5pim40k2aykpqp6wmqba"; depends=[coin dplyr Hmisc MASS mvtnorm plyr rcbsubset rlang sandwich tidyr weights]; };
   matchbook = derive2 { name="matchbook"; version="1.0.7"; sha256="0xfqg8z2zkn215kqmjjkqdwrgsk7cn4jdpxfgd6razhcbvflg48j"; depends=[]; };
   matchingMarkets = derive2 { name="matchingMarkets"; version="1.0-2"; sha256="1jj5hzxiivqinkpddmkqdxgi83jm6blann9wgv4g8prn3lvp0i85"; depends=[lattice lpSolve partitions Rcpp RcppArmadillo RcppProgress rJava]; };
   matchingR = derive2 { name="matchingR"; version="1.3.3"; sha256="1wr1faaixn5scx2c8g2jfvfm489k0ah9isza67gz0db8knja9nig"; depends=[Rcpp RcppArmadillo]; };
@@ -12225,14 +12249,14 @@ in with self; {
   matconv = derive2 { name="matconv"; version="0.4.2"; sha256="1iyy344p3fsfx3gw9kzr0x9zhsplba22fpzl1mhk10wvf99xiwb3"; depends=[]; };
   materialmodifier = derive2 { name="materialmodifier"; version="1.1.0"; sha256="116d8pppibi4kfd4jx4pc80n036lj86fprjnakkv4m890nkbznjr"; depends=[downloader imager jpeg magrittr moments png readbitmap stringr]; };
   mathjaxr = derive2 { name="mathjaxr"; version="1.6-0"; sha256="0yf1sfkb2kjsplipl2v4k2gp20li9xzsynclg228sy0v243pdi7c"; depends=[]; };
-  mathpix = derive2 { name="mathpix"; version="0.4.0"; sha256="0wwagf8v7awgiyi8vrfay5m2pbl1czn62g5bkg037wwy0c68n8va"; depends=[base64enc httr magick purrr rstudioapi texPreview]; };
+  mathpix = derive2 { name="mathpix"; version="0.5.0"; sha256="0imd2rxzh3zndl3laa1fx3m90zr97l02y42s7dhi6b0g2m2lirz4"; depends=[base64enc httr magick purrr rstudioapi texPreview]; };
   matie = derive2 { name="matie"; version="1.2"; sha256="1ymx49cyvz63imqw5n48grilphiqvvdirwsrv82p7jgxdyav2xv0"; depends=[cba dfoptim gplots igraph mvtnorm seriation]; };
   matlab = derive2 { name="matlab"; version="1.0.2"; sha256="0m21k2vzbc5d3c93p2hk4208xyd2av2slg55q5j1ibjidiryqgd2"; depends=[]; };
   matlab2r = derive2 { name="matlab2r"; version="1.0.0"; sha256="0sg0llilxf3xfv4d9wskp6zh4b00sv7cf1xdc56icwj78sz2d7pk"; depends=[]; };
   matlabr = derive2 { name="matlabr"; version="1.5.2"; sha256="1ba6cajnzldb1gmn7rf0b198h6mdh58r3frm0z0cmvbinspwz3x7"; depends=[stringr]; };
   matlib = derive2 { name="matlib"; version="0.9.5"; sha256="0m03zygd43r0z7cldiwsc91p1xyni6pdvwm8pz4jcg5bmqasfg0w"; depends=[car MASS rgl xtable]; };
   matman = derive2 { name="matman"; version="1.1.3"; sha256="0mwxxqqlg6yydc06hrjqk5ly686s21w5i5z40axxwkmpzyz84sqv"; depends=[data_table dplyr DT forecast lubridate parsedate plotly shiny shinydashboard shinyWidgets tidyr tidyselect]; };
-  matpow = derive2 { name="matpow"; version="0.1.1"; sha256="1a6q21ba16qfdpykmjwgmrb1kkvvyx48qg8cbgpdmch0vhibcgcp"; depends=[]; };
+  matpow = derive2 { name="matpow"; version="0.1.2"; sha256="1gjrq9bs94xqyms6sfyxp00f0x2gv4dfqcsz29ficzgl4iapns95"; depends=[]; };
   matricks = derive2 { name="matricks"; version="0.8.2"; sha256="0ik61jxd4hpw149dbbmis3wsfsim60mw9d0qjwh047qfg6sm1vsc"; depends=[ggplot2 Rcpp reshape2 rlang]; };
   matrixLaplacian = derive2 { name="matrixLaplacian"; version="1.0"; sha256="1ixqdv3sz3sc79wn3vqhlq79j7x7cvl878m5hgvbcg6klfvlmmci"; depends=[scatterplot3d]; };
   matrixNormal = derive2 { name="matrixNormal"; version="0.1.0"; sha256="1n85ibx4r7xzm4yz954cg7qm9isma920bxfy6fmj58g4bms30skw"; depends=[mvtnorm]; };
@@ -12245,7 +12269,7 @@ in with self; {
   matrixpls = derive2 { name="matrixpls"; version="1.0.13"; sha256="0m9gqq5waicj3znlsyz50cj6w1x6rkvfwknavhxid8r4p9h891ak"; depends=[assertive lavaan MASS matrixcalc psych]; };
   matrixprofiler = derive2 { name="matrixprofiler"; version="0.1.7"; sha256="0jicclzjil9yqlapzji23wm916aprv1fyad1qrn6ip7kap3m2kln"; depends=[checkmate Rcpp RcppParallel RcppProgress RcppThread]; };
   matrixsampling = derive2 { name="matrixsampling"; version="2.0.0"; sha256="05dbn7rj07jx1hj7i6k3akf11hysxg6v32kav9fvsqmiy2zkippa"; depends=[keep]; };
-  matsbyname = derive2 { name="matsbyname"; version="0.4.25"; sha256="1rqha59w4kf10byz0p41r7iaw8zwhcg06jhm94na3mcxxbd9jqjk"; depends=[assertthat dplyr Hmisc magrittr purrr rlang stringi tibble]; };
+  matsbyname = derive2 { name="matsbyname"; version="0.5.0"; sha256="1k1hzwhbj2ajk3qxddx328hhzm69dxw7b67rhp4ifdnwymbics4b"; depends=[assertthat dplyr lifecycle magrittr purrr RCLabels rlang tibble]; };
   matsindf = derive2 { name="matsindf"; version="0.3.10"; sha256="13ja1sm1p4xmfc6nmiqw33gpiqpxy7ni2g4njx9b3f4vc8rn1kyx"; depends=[dplyr magrittr matsbyname purrr rlang tibble tidyr]; };
   matuR = derive2 { name="matuR"; version="0.0.1.0"; sha256="01nxs4czzs1kcxk63nwr2gnvffmlnx3yfllrhi8khdkj498s6sx1"; depends=[dplyr ggplot2 ggrepel lubridate magrittr tidyr]; };
   mau = derive2 { name="mau"; version="0.1.2"; sha256="1wgiai8f1kbjh9hfwv4m0kavd44ib5xb33p8m16zpawnw14m7sj5"; depends=[data_table ggplot2 gtools igraph RColorBrewer Rdpack stringr]; };
@@ -12260,7 +12284,7 @@ in with self; {
   maxnet = derive2 { name="maxnet"; version="0.1.4"; sha256="05l24dksdgb43dpi4py4qkh8j9ynrnsglydy3gph1b61ygnfa8gx"; depends=[glmnet]; };
   maxnodf = derive2 { name="maxnodf"; version="1.0.0"; sha256="1czhy3177bb4a5rxi2s4j3c9xn9f0b2pbkdka1dzw6ga389wdwb3"; depends=[Rcpp]; };
   maxstat = derive2 { name="maxstat"; version="0.7-25"; sha256="114z1rwxwvk05ijjhdppzm148n1h192fp0w12ky10zkrhf6kphbg"; depends=[exactRankTests mvtnorm]; };
-  maybe = derive2 { name="maybe"; version="0.2.0"; sha256="1nr7ivz9d5rpkxha89na8wgy7ds2v1n3pmjzxq5qdpfjfaphp84z"; depends=[]; };
+  maybe = derive2 { name="maybe"; version="0.2.1"; sha256="07h8q656yjp58zl9xzks6jh77yhzszc3kggmlnj737ldla4d06n0"; depends=[magrittr]; };
   mazeGen = derive2 { name="mazeGen"; version="0.1.3"; sha256="192xygg3l4rpqp49sgd5hpp4h3f8wjhyldn0l8abxhsks7jd2kfb"; depends=[igraph]; };
   mazealls = derive2 { name="mazealls"; version="0.2.0"; sha256="14j6syw1zkgs4cnmxzqpm6klmgvck2gg97wkzmy9al6n0biy8gmb"; depends=[TurtleGraphics]; };
   mazeinda = derive2 { name="mazeinda"; version="0.0.1"; sha256="0ns4ib73y4fghf7p1wg0a05js4mqr66dpp49p1h039pqrb0f1vwd"; depends=[foreach]; };
@@ -12317,6 +12341,7 @@ in with self; {
   mcmcse = derive2 { name="mcmcse"; version="1.5-0"; sha256="0qvlkv7j35h2lxdzhbsbsrf1cgsbgf4in7lxgwmx7vs85k10v0ja"; depends=[ellipse fftwtools Rcpp RcppArmadillo testthat]; };
   mco = derive2 { name="mco"; version="1.15.6"; sha256="10h5d2lw6ybyva44nn5wml6v3ljpnv9m1b2lh36vg2cwrdwy5sqp"; depends=[]; };
   mcompanion = derive2 { name="mcompanion"; version="0.5-3"; sha256="0051agyzbhrsxi9wpfpqcq98h7y25627s2czf30qxcq80m7xbhj0"; depends=[gbutils MASS Matrix Rdpack]; };
+  mcount = derive2 { name="mcount"; version="1.0.0"; sha256="1l42d4xd2xyvgzvc8sj59qsnpfn2k8x57dqv4bx9yschm25hspdd"; depends=[bbmle]; };
   mcp = derive2 { name="mcp"; version="0.3.2"; sha256="0vqn0lb7nc5hp2ls2h17ybldxrqj6l1hd4pk5pr4d22yyidlvx96"; depends=[bayesplot coda dplyr future future_apply ggplot2 loo magrittr patchwork rjags rlang stringr tibble tidybayes tidyr tidyselect]; };
   mcparallelDo = derive2 { name="mcparallelDo"; version="1.1.0"; sha256="1ivh0d4f7ks6xwcjywk62h1zhr7h5bbhzpisky7973wi4g8vipbn"; depends=[checkmate R_utils R6]; };
   mcprofile = derive2 { name="mcprofile"; version="1.0-1"; sha256="118n3pxzjm4j9y09d1n2hw7pm0b8b0m8mnm5v9kq76vignklh75l"; depends=[ggplot2 mvtnorm quadprog]; };
@@ -12351,14 +12376,14 @@ in with self; {
   mdw = derive2 { name="mdw"; version="2020.6-17"; sha256="0jjajgb1w3vx7vqn2z90xq39hvbcrrd2ky8p31g5absqwwm7lwpa"; depends=[kyotil MASS Matrix]; };
   meanShiftR = derive2 { name="meanShiftR"; version="0.56"; sha256="1bn75r5mf3pr1mr8384w175yabw75cynxlz2xh1gl2nar86k4m0x"; depends=[]; };
   meanr = derive2 { name="meanr"; version="0.1-4"; sha256="1k5ygyxa5ixynvh1nfkgm4x9w0wk637m1jnrvkjhyq3jaqwwi859"; depends=[]; };
-  meantables = derive2 { name="meantables"; version="0.1.0"; sha256="1007w4vjb472v15ny1h8dxdzxhddk4z5s5n77ayvcbwpc8nlzmk7"; depends=[dplyr rlang tibble]; };
+  meantables = derive2 { name="meantables"; version="0.1.2"; sha256="1lg1a9dccb5xhbnmmgwkncj9w3g1zndh0ddjmascxhvzp9ckdvhg"; depends=[dplyr rlang stringr tibble]; };
   measuRing = derive2 { name="measuRing"; version="0.5"; sha256="0yblqkv5444y75jkb6d0zs728i6vybm294h7b5622pwfjqlfhnh2"; depends=[dplR pastecs png tiff]; };
   measurementProtocol = derive2 { name="measurementProtocol"; version="0.1.0"; sha256="0vyfkrlinwq2930xqwp1hb8g7g3q7h7yg6y0c8gkwgscrxswifhg"; depends=[assertthat cli httr jsonlite rappdirs]; };
   measurements = derive2 { name="measurements"; version="1.4.0"; sha256="1kihavs9vgxwqjm9z1zjjngkmcwfsv8dg7nn9nrv5r06k5hv8bz6"; depends=[]; };
   measures = derive2 { name="measures"; version="0.3"; sha256="0325hhncg9fhq28cfl1hk6rhcmzzcngsmnkmbn9ri3b4hwqlafal"; depends=[]; };
   meboot = derive2 { name="meboot"; version="1.4-9.2"; sha256="0si2gmldkc5wjxaqqn9wmbvb7h6rkynbj11fjmgj4sdyv398x3jw"; depends=[dynlm hdrcde nlme tdigest]; };
   mecor = derive2 { name="mecor"; version="1.0.0"; sha256="0jcqf6d7x16hs0mrnkawlkl9idd2g5zb6l6mqdavkdx43fhk38j4"; depends=[lme4 lmerTest numDeriv]; };
-  medExtractR = derive2 { name="medExtractR"; version="0.3"; sha256="13ai3m8dqbl62f6smy8xlslyrhlkkgcy2xkhswi230sj60b58anh"; depends=[stringi stringr]; };
+  medExtractR = derive2 { name="medExtractR"; version="0.4"; sha256="0wm3phmyn3ja8snpmnmagk11c44k8jxhc6by9zcmn0cqzf78h2mk"; depends=[stringi stringr]; };
   mederrRank = derive2 { name="mederrRank"; version="0.0.8"; sha256="1fvvik3bhjm6c0mhi2ma915986k2nj3lr2839k5hfrr7dg3lw3f4"; depends=[BB numDeriv]; };
   medfate = derive2 { name="medfate"; version="2.3.7"; sha256="1mxfvaamswm9zw1jbs9p94h0krrdw4xma4j8wa2w453pyikcpcxk"; depends=[ggplot2 meteoland Rcpp shiny]; };
   medflex = derive2 { name="medflex"; version="0.6-7"; sha256="171vp0wmmmbz42xcwjy065vhvig49s4ac2hzawfww2mvpfj0g0fj"; depends=[boot car Matrix multcomp sandwich]; };
@@ -12371,7 +12396,6 @@ in with self; {
   medicare = derive2 { name="medicare"; version="0.2.1"; sha256="00a1gml2khzisdavnaip6ap4bw45b17nbl9cqb1mqrm4y0p9gm16"; depends=[]; };
   meditate = derive2 { name="meditate"; version="0.1.3"; sha256="02mgnbxlvi73zpnghlcx89jvri8144cf0bzq0hrbhh2nq2c1sdjg"; depends=[audio checkmate deldir wesanderson]; };
   meditations = derive2 { name="meditations"; version="1.0.1"; sha256="0wnx3zadpngfch0sb0ifqvsmzl613639f1yazwsgvhk29mycx4ss"; depends=[]; };
-  medmod = derive2 { name="medmod"; version="1.0.0"; sha256="1f7bzdcjnbz9izlfblxcaa85qxx8kzn62qgjd3qlb7jl7mdy5q54"; depends=[ggplot2 jmvcore lavaan R6]; };
   medrxivr = derive2 { name="medrxivr"; version="0.0.5"; sha256="19gakl39n2jch84sv35jkk4g2c0k4h3ch3l3hz1w5p94mn2jlgqr"; depends=[bib2df curl data_table dplyr httr jsonlite lubridate progress purrr rlang stringr tibble vroom]; };
   meerva = derive2 { name="meerva"; version="0.2-2"; sha256="1q1q6ydn1zwv8vif14qs2zgijhrdrnpx1ibd5afp2lb6yn8qd61i"; depends=[dplyr ggplot2 matrixcalc mvtnorm survival tidyr]; };
   meetupapi = derive2 { name="meetupapi"; version="0.1.0"; sha256="1iaxpfzgn478np9cjwz0zalfy1p7jwabnwpfv31svw052i8bs9yl"; depends=[dplyr httr magrittr purrr]; };
@@ -12379,7 +12403,7 @@ in with self; {
   mefa4 = derive2 { name="mefa4"; version="0.3-8"; sha256="09y8mhmcd82gz582lskvy0yx6vh6jjyxmh7i35041knqcjyp6lpc"; depends=[Matrix]; };
   meifly = derive2 { name="meifly"; version="0.3"; sha256="1x3lhy7fmasss0rq60z5qp74ni32sahw62s8cnp2j431sp95pczc"; depends=[leaps MASS plyr]; };
   mekko = derive2 { name="mekko"; version="0.1.0"; sha256="09y50k4r4mnx351a5zhkqg9s2xyl3d149dhmfy2z6hzm5yg2ajyi"; depends=[ggplot2]; };
-  melt = derive2 { name="melt"; version="1.3.0"; sha256="1fxzffz1rwlmp58i4a00707flnzch1kyhm9izvsqykwqx4rqdbca"; depends=[Rcpp RcppEigen RcppProgress]; };
+  melt = derive2 { name="melt"; version="1.4.0"; sha256="0ffcdbrwk3008720iv589l01wgkzp49djv7vmj5bmpi96bdi3vy8"; depends=[Rcpp RcppEigen RcppProgress]; };
   meltr = derive2 { name="meltr"; version="1.0.0"; sha256="0pcpgwk7if9f441z0vwh9g0ydhzkv3h4db433snkk5g4rfikx3ad"; depends=[cli cpp11 R6 rlang tibble]; };
   meltt = derive2 { name="meltt"; version="0.4.2"; sha256="0pj4z5nlb3ngx50r25d80z275rcf571imapq83yg0djp5lwzml0c"; depends=[dplyr ggplot2 leaflet plyr Rcpp RcppArmadillo reticulate shiny shinyjs tibble tidyr]; };
   mem = derive2 { name="mem"; version="2.16"; sha256="16xm9hai1aqhrbpxln6az4qbwz3kk2izmq39nzpzjc3ardpq1ljr"; depends=[boot dplyr EnvStats ggplot2 mclust purrr RColorBrewer RcppRoll sm tidyr]; };
@@ -12397,7 +12421,7 @@ in with self; {
   memor = derive2 { name="memor"; version="0.2.3"; sha256="1b3rjh121in7gi6khbhh2d1r0998a24ifcg6hpv8cdksl6lhm330"; depends=[knitr rmarkdown yaml]; };
   memoria = derive2 { name="memoria"; version="1.0.0"; sha256="05nx6xkgf1mkn1ajjizwp66xhn7ddbvgdnmkdbcl4s7sq456vczw"; depends=[cowplot ggplot2 HH ranger stringr tidyr viridis viridisLite zoo]; };
   memuse = derive2 { name="memuse"; version="4.2-1"; sha256="1wvwnjaaiv2647561z2b55dss35033ildx4kk8hzxfzgsjmdpsgm"; depends=[]; };
-  merDeriv = derive2 { name="merDeriv"; version="0.2-3"; sha256="0f8g3n4hpkf58sryvirdjyjq0x06yqzhdkp9wp4cfwkfz7aawjsh"; depends=[lavaan lme4 lmeInfo Matrix nonnest2 numDeriv sandwich]; };
+  merDeriv = derive2 { name="merDeriv"; version="0.2-4"; sha256="1piswi4l7ri3251shmanhygipmsw8zg701jqd0am1s76kj16l9cc"; depends=[lavaan lme4 Matrix nonnest2 numDeriv sandwich]; };
   merTools = derive2 { name="merTools"; version="0.5.2"; sha256="1ka9aa3fgs1kqfqhi1sz6v6g5mbbbzxyb7c0n8s981g8d04vsi00"; depends=[abind arm blme broom_mixed dplyr foreach ggplot2 lme4 mvtnorm shiny]; };
   mergeTrees = derive2 { name="mergeTrees"; version="0.1.3"; sha256="17aqgfd1ky5zq6i9s1djvdqjdd8lzkblf0cdw82i9mpzfhcz1fav"; depends=[Rcpp]; };
   mergedblocks = derive2 { name="mergedblocks"; version="1.1.0"; sha256="0hgfyb99hdph4rx32072v40j3z56bwl8lvpxqmms783b997alaml"; depends=[randomizeR]; };
@@ -12433,8 +12457,8 @@ in with self; {
   metacom = derive2 { name="metacom"; version="1.5.3"; sha256="0c0gzn28cl2sl52wx2n36jm9c18d9s3yqjyx88kgbmd9069z1nvk"; depends=[vegan]; };
   metaconfoundr = derive2 { name="metaconfoundr"; version="0.1.0"; sha256="13b0xbfm90g14grvpffnj7xhkgymzcayq1hh2vi0q1ah8bl8z504"; depends=[dplyr ellipsis forcats ggplot2 glue magrittr purrr rlang shiny stringr tibble tidyr tidyselect]; };
   metacor = derive2 { name="metacor"; version="1.0-2.1"; sha256="0y3z7jbhw5c2dbn9fx9wlw1311irjc2xvnm5hnaixbbj53qz24n0"; depends=[gsl rmeta]; };
-  metacore = derive2 { name="metacore"; version="0.0.3"; sha256="19q88g9vcqwp5p42x6agsxhwmvlqgprdq3ydqvv9c41yp03bqypq"; depends=[dplyr magrittr purrr R6 readxl rlang stringr tibble tidyr tidyselect XML]; };
-  metadat = derive2 { name="metadat"; version="1.0-0"; sha256="172bvdkmjvxx5cylb4wxbrhnmlzrc3ipfq7343ggypqln975lczd"; depends=[mathjaxr]; };
+  metacore = derive2 { name="metacore"; version="0.0.4"; sha256="0yrhvzpaspskmmkl5hbifj2rqf1ilwx7paill4yggi1j84kmgvai"; depends=[dplyr magrittr purrr R6 readxl rlang stringr tibble tidyr tidyselect XML]; };
+  metadat = derive2 { name="metadat"; version="1.2-0"; sha256="1f7mb3pw5d0akr09jjva06ay223izhpzbr21bapnw99x1kiybk7h"; depends=[mathjaxr]; };
   metadynminer = derive2 { name="metadynminer"; version="0.1.6"; sha256="0zg08lwnimnmfwac0d5kg8yhsl88gmn029dra18phy1jzkfnsx34"; depends=[Rcpp]; };
   metadynminer3d = derive2 { name="metadynminer3d"; version="0.0.1"; sha256="0riqr2hhk4h0rm7m4njb2dd2f24jff7lzf9chh83sq4q3wldgpz5"; depends=[metadynminer misc3d Rcpp rgl]; };
   metafolio = derive2 { name="metafolio"; version="0.1.0"; sha256="18s78lljwnn3j0l3mqc0svszcb3c8yzyzlpnimndbiq9yxagxnnf"; depends=[colorspace MASS plyr Rcpp RcppArmadillo]; };
@@ -12460,7 +12484,7 @@ in with self; {
   metapost = derive2 { name="metapost"; version="1.0-6"; sha256="098f7sifg814mc4sb1nb4d6dlr1xms5hwyp08ksxg0i4ayf9jf3c"; depends=[gridBezier]; };
   metapower = derive2 { name="metapower"; version="0.2.2"; sha256="1r6mmdxxi83isjjyfzblwpzfgqdmfhbqmq49zm2b4jd0zvc0lfcx"; depends=[cowplot dplyr ggplot2 knitr magrittr rlang testthat tidyr]; };
   metaprotr = derive2 { name="metaprotr"; version="1.2.2"; sha256="1iz5aqd8ha0h19sa58s7xd4h26lbqp68dxy93pxnx9bj3bv615b3"; depends=[ade4 dendextend dplyr ggforce ggrepel reshape2 stringr tidyverse]; };
-  metarep = derive2 { name="metarep"; version="1.0.1"; sha256="0jnxx11jxj63ry0bkjlh9g2x2pr2qi24nql99iibz2ckbx8344p3"; depends=[meta]; };
+  metarep = derive2 { name="metarep"; version="1.1"; sha256="0430nc3bqznrbf4gr37jfpihyx6psip9mlcxrx2lwfajfijy46w4"; depends=[meta]; };
   metasens = derive2 { name="metasens"; version="1.0-1"; sha256="10ii6q1f9064j3jm9rm1ffm2mzpjlqnqhhvpp27s27i6r9jbma3w"; depends=[meta]; };
   metatest = derive2 { name="metatest"; version="1.0-5"; sha256="1h3dcs1m7606b3a41yw2lak3lrqmsbpnx67qv24wvq003apz1sfd"; depends=[]; };
   metathis = derive2 { name="metathis"; version="1.1.1"; sha256="0vac4sjlbz1cpdx0yc6q52mj174xay5j81cl5f4z2q9in0jy8f8b"; depends=[htmltools knitr magrittr purrr]; };
@@ -12479,6 +12503,7 @@ in with self; {
   methcon5 = derive2 { name="methcon5"; version="0.1.0"; sha256="08xsi6j65izxqcrlh37f2d7m3pwna1v6zvdv96mqylsjqgqmbk5x"; depends=[dplyr magrittr purrr rlang]; };
   metools = derive2 { name="metools"; version="1.0.0"; sha256="05l49ifx2nnlbdxh2qhdb0islf95fc67720rm5in7mrlida4khnq"; depends=[ggplot2 lubridate scales stringr tibble tidyr]; };
   metricsgraphics = derive2 { name="metricsgraphics"; version="0.9.0"; sha256="1zbx82b34y0rr4w7rzvyc1nzk95w6cdkg0j1kkshbmkvplq6v9i4"; depends=[htmltools htmlwidgets magrittr]; };
+  metrix = derive2 { name="metrix"; version="1.0.0"; sha256="121g2vflwrrix1jjx26g4jxd6chdw6wghyp2adyvky45zckc9zi7"; depends=[Matrix stringr vegan]; };
   metro = derive2 { name="metro"; version="0.9.1"; sha256="0agmwvbwhpn5nzzkyz20pspbv6i80i636fhf9sqydgl1fskknrf2"; depends=[geodist hms httr jsonlite tibble]; };
   metropolis = derive2 { name="metropolis"; version="0.1.8"; sha256="031fcy0v13bvy7gg26988fvpqdsfndx2rynkhb1jvirnrf0fngy4"; depends=[coda]; };
   mets = derive2 { name="mets"; version="1.2.9"; sha256="1daah4wkn428gdlah5f96jyjs3z9c3sz8h7g9lil8p3i9q3crb2z"; depends=[lava mvtnorm numDeriv Rcpp RcppArmadillo survival timereg]; };
@@ -12497,7 +12522,7 @@ in with self; {
   mgarchBEKK = derive2 { name="mgarchBEKK"; version="0.0.2"; sha256="1k4c34srnckbh5kchzmm44l91ma9sw0gi4y225igs3cl79212q9c"; depends=[mvtnorm tseries]; };
   mgc = derive2 { name="mgc"; version="2.0.2"; sha256="1l9qs4nz1rn56qp569nh26yz3c7i4zh3r43c209zh7kvizpagx0i"; depends=[abind boot energy MASS raster]; };
   mgcViz = derive2 { name="mgcViz"; version="0.1.9"; sha256="09n18ypjdwcca38i2v636ijgnzwalv7wh55z82a0pfrbzabiynn1"; depends=[gamm4 GGally ggplot2 gridExtra KernSmooth matrixStats mgcv miniUI plyr qgam shiny viridis]; };
-  mgcv = derive2 { name="mgcv"; version="1.8-39"; sha256="15h1k9qyn8s8xy4x2361mj42vdq8ml5xskzqpkc45zj1a3gss6w4"; depends=[Matrix nlme]; };
+  mgcv = derive2 { name="mgcv"; version="1.8-40"; sha256="19g4lzxjw931s68ni7ii81jwi25sf19qs8nlw8r94crvdhk2grnv"; depends=[Matrix nlme]; };
   mgee2 = derive2 { name="mgee2"; version="0.2"; sha256="1bhjajcjvm8brc92v6ij378i0d3vniip77m4pz7n02sgswj0w61a"; depends=[ggplot2 MASS]; };
   mglasso = derive2 { name="mglasso"; version="0.1.1"; sha256="0h5npy9innq8dxyp1aq0agffrp29zrzfrcs8bzy43a60bhsil55l"; depends=[corpcor gridExtra Matrix R_utils reticulate]; };
   mglmn = derive2 { name="mglmn"; version="0.1.0"; sha256="1g642hhs28q6x34xgrfrmmsb2jsn9zy4jxad0x5ai3px48zzdb4r"; depends=[mvabund snowfall]; };
@@ -12512,7 +12537,7 @@ in with self; {
   mhtboot = derive2 { name="mhtboot"; version="1.3.3"; sha256="1z0p8ny9lpnrshgas7cad2lv7j0blw0n6ihiimw600n70h73jwrn"; depends=[ggplot2 reshape2]; };
   mhurdle = derive2 { name="mhurdle"; version="1.3-0"; sha256="1in07zk29z5fhrg75wl1fwbrsny4ihjnrqyh2kz1bd448p10f295"; depends=[Formula generics margins maxLik numDeriv prediction Rdpack survival truncreg]; };
   mi = derive2 { name="mi"; version="1.0"; sha256="1h47k5mpbvhid83277dvvj2di493bgzz9iarpyv3r30y219l7x1l"; depends=[arm Matrix]; };
-  mi4p = derive2 { name="mi4p"; version="0.7"; sha256="1j877yp06jx0ygj26w9g3vffjsva89119g5dn57pfdy6slziamx0"; depends=[DAPAR emmeans foreach imp4p impute limma mice stringr]; };
+  mi4p = derive2 { name="mi4p"; version="0.9"; sha256="08b2518a5jnvc2k8czfbkidl9rygkmkfzm1a64qlxnzr05m6v3l0"; depends=[emmeans foreach imp4p impute limma mice stringr]; };
   miCoPTCM = derive2 { name="miCoPTCM"; version="1.1"; sha256="0bmb06rb53fq8ylcvz693akmz7nkjj50c6ypxsjbfp4crllpi5v9"; depends=[distr MASS nleqslv survival]; };
   miLineage = derive2 { name="miLineage"; version="2.1"; sha256="0660vk44ywmj0q2cw7pa2z1r039ncw693dnz7zlgc0ipwak3b0ry"; depends=[data_table geepack MASS]; };
   miRNAss = derive2 { name="miRNAss"; version="1.5"; sha256="0j4yvd0j7r98m2msllszlzkzrx67a2z4xpx00zpq90hbr5jykxc4"; depends=[CORElearn Matrix Rcpp RSpectra]; };
@@ -12528,9 +12553,9 @@ in with self; {
   micEconSNQP = derive2 { name="micEconSNQP"; version="0.6-8"; sha256="183hg4iap97is8cdaqxmnj9z8yybvpfnhg2kf85nfy1nl7b30xl2"; depends=[MASS miscTools systemfit]; };
   micar = derive2 { name="micar"; version="1.1.2"; sha256="1zx2x6r4m0ihwhjd2n4rmk9da7p9bpadk65h7mbb0rgvwrspkzf8"; depends=[httr jsonlite]; };
   mice = derive2 { name="mice"; version="3.14.0"; sha256="01fnfrr7adp29s5kic95r9q0rdznkz2pjmziyimnrqzyicyvfyzq"; depends=[broom cpp11 dplyr generics lattice Rcpp rlang tidyr withr]; };
-  miceFast = derive2 { name="miceFast"; version="0.7.1"; sha256="1vlm19b9q6539c9rqa852kkva1j3cfwbxy2y9x8khb8pqk1w0bb7"; depends=[assertthat data_table dplyr ggplot2 magrittr Rcpp RcppArmadillo tidyr UpSetR]; };
+  miceFast = derive2 { name="miceFast"; version="0.8.1"; sha256="01nxjh395wb1cs6h5drm9xy3ahxb4cybx7xhdjv6g5jqjv4229m6"; depends=[data_table Rcpp RcppArmadillo]; };
   miceRanger = derive2 { name="miceRanger"; version="1.5.0"; sha256="0xm8fcvjf6pcfyyk1gnwfdac44q6b33i5byja9lqxy7vygbxmgxd"; depends=[corrplot crayon data_table DescTools FNN foreach ggplot2 ggpubr ranger]; };
-  miceadds = derive2 { name="miceadds"; version="3.11-6"; sha256="1xh977xralyivmi57c11rpbbbx24dhzwfnjq4m55ikzv2b40678j"; depends=[mice mitools Rcpp RcppArmadillo]; };
+  miceadds = derive2 { name="miceadds"; version="3.12-26"; sha256="1j9wqiq21w1bb9srzdp933i4h64svw743mrr3p2wrv6b70849pkz"; depends=[mice mitools Rcpp RcppArmadillo]; };
   miceafter = derive2 { name="miceafter"; version="0.1.0"; sha256="0wiljd1dm1h7frhkf304i5sc8w5af9f6jhz3cd8f0r13n3z1r6yi"; depends=[car dplyr magrittr mice mitml mitools pROC purrr rlang rms stringr survival tibble tidyr]; };
   micemd = derive2 { name="micemd"; version="1.8.0"; sha256="1vds5199bv3lgpn3qzra6gakvabyz6a83p55xjxgs9zk9chgf9yw"; depends=[abind digest jomo lme4 MASS Matrix mice mvmeta mvtnorm nlme]; };
   michelRodange = derive2 { name="michelRodange"; version="1.0.0"; sha256="1pykqb9hmpvn77k0vhfh36iyhamz9h5kpswq3ql31h9nknfy3ixi"; depends=[magrittr]; };
@@ -12544,7 +12569,7 @@ in with self; {
   microclass = derive2 { name="microclass"; version="1.2"; sha256="0q6mn1hbi6nk29x2x5a1wcdqp06mjggbrpglk5i8pp4gkqlzhl8q"; depends=[dplyr microcontax microseq Rcpp RcppEigen RcppParallel rlang stringr tibble]; };
   microcontax = derive2 { name="microcontax"; version="1.2"; sha256="004g979hyg0asbah7hxr445fidil4ibw1b8pqpjdbgmpm1qgvw7y"; depends=[microseq]; };
   microdemic = derive2 { name="microdemic"; version="0.6.0"; sha256="1w4zh0vagnar95l5b8cgmcvp8q7vk2iba5g8d8g2ywynqiqcx5fc"; depends=[crul data_table httpcode jsonlite tibble]; };
-  microeco = derive2 { name="microeco"; version="0.6.5"; sha256="1syvssymnqzc8yvghc24ccb1gj490ly7mq1sgslvipvgd060jsid"; depends=[ape data_table dplyr ggplot2 magrittr R6 RColorBrewer reshape2 rlang scales tibble vegan]; };
+  microeco = derive2 { name="microeco"; version="0.7.1"; sha256="1z3j6q855ms5sq7f732m7b3xgxrag00n5msp88i3dvy0wpv9cbga"; depends=[ape data_table dplyr ggplot2 magrittr R6 RColorBrewer reshape2 rlang scales tibble vegan]; };
   microhaplot = derive2 { name="microhaplot"; version="1.0.1"; sha256="0g15g7d19yz11nn2g0h8h2m8k1cvmpryz72pnalgv5yi58md5l5i"; depends=[dplyr DT ggiraph ggplot2 gtools magrittr scales shiny shinyBS shinyWidgets tidyr]; };
   micromap = derive2 { name="micromap"; version="1.9.5"; sha256="18y8m63k9l4dir8w1qbbi1g86506yajvi6qs0j1588575lak1l62"; depends=[ggplot2 maptools RColorBrewer rgdal sf sp]; };
   micromapST = derive2 { name="micromapST"; version="1.1.1"; sha256="15ch132x3wnpf7rmy25nah7iyfxfk90p7lvavqjhrnavhjsfxbxx"; depends=[labeling RColorBrewer stringr]; };
@@ -12553,7 +12578,7 @@ in with self; {
   microsamplingDesign = derive2 { name="microsamplingDesign"; version="1.0.8"; sha256="0swaqvzqbmlk9j2gr8z7x7xrkr38xndprg9k66whzcigxfh8nhiz"; depends=[abind deSolve devtools ggplot2 gridExtra gtools knitr MASS matrixcalc matrixStats plyr Rcpp RcppArmadillo readr reshape2 shiny stringr]; };
   microseq = derive2 { name="microseq"; version="2.1.5"; sha256="1asdy0njy5xcykd88jxa8s5hkrh6kab566h3nf9i93yw1i6kmwip"; depends=[data_table dplyr Rcpp rlang stringr tibble]; };
   microservices = derive2 { name="microservices"; version="0.1.2"; sha256="18inmqwdb2cz0i0q9rh7mm3bi0hg193kkipbzhgk0bk8i8gkdy84"; depends=[config desc dplyr glue purrr withr]; };
-  microsimulation = derive2 { name="microsimulation"; version="1.3.6"; sha256="0qpsjw1mfmz0rgkgvv2r36jfsb2k9smxw4sxd32fwafaiqh1fcb6"; depends=[ascii BH Rcpp]; };
+  microsimulation = derive2 { name="microsimulation"; version="1.3.7"; sha256="0cyhxkaqsryi0qg94kj129g8kww84qah2bxy78v83kvgc29ilwjm"; depends=[ascii BH Rcpp]; };
   microsynth = derive2 { name="microsynth"; version="2.0.31"; sha256="0wmrp9igylzp4qbvdr13r2rxfkcq9xwg8gw29j1g6kcqyq4aflds"; depends=[boot kernlab LowRankQP nleqslv pracma survey]; };
   midas = derive2 { name="midas"; version="1.0.1"; sha256="1alqxk23651jnkg0xn4rpvk71z5rhvx3y0wjrgkw2qw95s7jjn72"; depends=[shiny xml2]; };
   midas2 = derive2 { name="midas2"; version="0.1.0"; sha256="0k670ppbw12s4wgliiqgc5fr0sajr5axlkwa5i54hrappkh1vlb4"; depends=[coda MCMCpack R2jags]; };
@@ -12563,7 +12588,7 @@ in with self; {
   midrangeMCP = derive2 { name="midrangeMCP"; version="3.1.1"; sha256="1yfwyglyxxk4i914m8n148cjydlcg7r16zl8acb1w8h963svirk9"; depends=[SMR writexl xtable]; };
   mifa = derive2 { name="mifa"; version="0.2.0"; sha256="1rj3ba746f8759gird0vpvyb4fl0z2ihccpiv3qkr3sc64wgplln"; depends=[checkmate dplyr mice]; };
   migest = derive2 { name="migest"; version="2.0.2"; sha256="14gfslx3fpqw8170qkwf1155q3936m8kmwdqc8vqyli5nafbjf9w"; depends=[circlize dplyr forcats magrittr matrixStats migration_indices purrr stringr tibble tidyr]; };
-  migraph = derive2 { name="migraph"; version="0.8.13"; sha256="0k0fdhnk0kpm2wd5yrf1djc16anf6inwrzxipwwwrqpwvr7zqny9"; depends=[concaveman dplyr ggdendro ggforce ggplot2 ggraph gridExtra igraph magrittr network oaqc purrr RColorBrewer readxl rlang sna stringr tibble tidygraph tidyr]; };
+  migraph = derive2 { name="migraph"; version="0.9.2"; sha256="1829lya4hl3fnfs69vzqxnshlqazhl8ri2s9w5aq9hd9ly7rbq28"; depends=[concaveman dplyr furrr future generics ggdendro ggforce ggplot2 ggraph igraph network oaqc patchwork purrr rlang sna stringr tibble tidygraph tidyr]; };
   migrate = derive2 { name="migrate"; version="0.4.0"; sha256="0yf0c7gcn2q8sx0havhqaxk6z69bagfd58drpbqkkpsp62bnq875"; depends=[dplyr magrittr rlang tibble tidyr]; };
   migration_indices = derive2 { name="migration.indices"; version="0.3.0"; sha256="0h0yjcj70wzpgrv3wl1f2h2wangh1klsllq0i0935plgzw736mwd"; depends=[calibrate]; };
   migui = derive2 { name="migui"; version="1.1"; sha256="1qchjsc7ff2b6s9w6ncj9knjv6pyp90jd4jxljn2rr1ix1gc45za"; depends=[arm gWidgets2 mi]; };
@@ -12575,8 +12600,8 @@ in with self; {
   mimi = derive2 { name="mimi"; version="0.2.0"; sha256="1ig34qd37my74nmlv3jcfrj7cnd55alxpf2flf2sssk2ws1y56xh"; depends=[data_table doParallel FactoMineR foreach glmnet rARPACK softImpute]; };
   mimsy = derive2 { name="mimsy"; version="0.6.2"; sha256="01dy1fryrgq07jdfnxcnks97h0gq632dvqk7hnfs0f5fnx0k0vvf"; depends=[dplyr lubridate magrittr openxlsx]; };
   minMSE = derive2 { name="minMSE"; version="0.5.1"; sha256="1fj6njqdc6zn73n2q60x01znwn6xlprjldwy5c13d8rd1n5shccm"; depends=[MASS Rcpp]; };
-  minSNPs = derive2 { name="minSNPs"; version="0.0.1"; sha256="0kj3kalr11c4jab9b5w0i2w2z0dsdmm22szgfzyrc3y2w6jdhvjw"; depends=[BiocParallel]; };
-  mind = derive2 { name="mind"; version="0.1.5"; sha256="104cya2g0fw4cg1ihmznhhwwrbmwbbck9zfwgr5snmmhs4q244dy"; depends=[data_table dplyr JWileymisc MASS Matrix qdap tm]; };
+  minSNPs = derive2 { name="minSNPs"; version="0.0.2"; sha256="1wnhyqvhv17bghzy6ci0imxvnnga392h92kiqkhklbrg2aw1wipq"; depends=[BiocParallel]; };
+  mind = derive2 { name="mind"; version="0.1.6"; sha256="1rcifsjsh2snas3phkr19gvydknkgx0panh8wdb82q8p3v0pmyv5"; depends=[data_table dplyr JWileymisc MASS Matrix qdap tm]; };
   mindr = derive2 { name="mindr"; version="1.3.2"; sha256="0nv3wripimpbi8zf1h8fkj80ibrzava36kcai9f1gl8frincafr9"; depends=[htmlwidgets knitr]; };
   mineCitrus = derive2 { name="mineCitrus"; version="1.0.0"; sha256="031nfhrsc5rlqls3vyrk18lx0pd4ssdk96cmfr4ifaciz0rgv8h2"; depends=[ggplot2]; };
   minerva = derive2 { name="minerva"; version="1.5.10"; sha256="03srkii3rmx40lyr050bnrxil6w0hfv5pr64k339m66ciwyka9ig"; depends=[Rcpp RcppArmadillo]; };
@@ -12597,8 +12622,8 @@ in with self; {
   minxent = derive2 { name="minxent"; version="0.01"; sha256="1a0kak4ff1mnpvc9arr3sihp4adialnxxyaacdgmwpw61wgcir7h"; depends=[]; };
   mipfp = derive2 { name="mipfp"; version="3.2.1"; sha256="1gxazpg81vj5dywpb6jb29188jw28qil6pfygawa7znnjn3k5ca6"; depends=[cmm numDeriv Rsolnp]; };
   mipplot = derive2 { name="mipplot"; version="0.3.1"; sha256="126arvxq6gmaiwk3n3p0slnb1mhs3qf993m4lx95nlmnv612ag66"; depends=[data_table dplyr ggplot2 readr readxl reshape reshape2 rlang shiny shiny_i18n shinyalert shinyWidgets showtext showtextdb stringr tidyr]; };
-  mirai = derive2 { name="mirai"; version="0.1.0"; sha256="014mqn9f25hgzrvyh46axhgak8h945asdslyflf99w0pdl6xl22x"; depends=[nanonext]; };
-  mirt = derive2 { name="mirt"; version="1.35.1"; sha256="0gmssa6cx2rdphq6v5d3jhxrjkhc4sngsp7bj3szaj3xkd4px2vq"; depends=[dcurver Deriv GPArotation gridExtra lattice Matrix mgcv Rcpp RcppArmadillo vegan]; };
+  mirai = derive2 { name="mirai"; version="0.2.0"; sha256="0an1i3gymgiyhhfkzfhxnmdib2pna8wgjsgxvsp3a1lv0lhs7k58"; depends=[nanonext]; };
+  mirt = derive2 { name="mirt"; version="1.36.1"; sha256="1fw5w6yv70nfb38w3059fcclgmsddmvx99w4baca6jarxgsa05aj"; depends=[dcurver Deriv GPArotation gridExtra lattice Matrix mgcv pbapply Rcpp RcppArmadillo vegan]; };
   mirtCAT = derive2 { name="mirtCAT"; version="1.12"; sha256="0pi6xwvia0njkmdpvr8bbp7ha05rcazw3qbva9gf518ffwvda9gy"; depends=[lattice lpSolve markdown mirt pbapply Rcpp RcppArmadillo shiny]; };
   mirtjml = derive2 { name="mirtjml"; version="1.4.0"; sha256="1zvm8acywpzi87lz0hpxmr8c9kyqkbx0490q3vlwxd90ffcdp9ml"; depends=[GPArotation Rcpp RcppArmadillo]; };
   mirtsvd = derive2 { name="mirtsvd"; version="1.0"; sha256="0c06dpg0jr15hmk03s96fyp2rb6z4svihjzfs316nkl3dd03ami1"; depends=[GPArotation mirtjml]; };
@@ -12613,7 +12638,7 @@ in with self; {
   miscset = derive2 { name="miscset"; version="1.1.0"; sha256="1gwi7jnqdf2fa8yk8gmcc7dcv72bbdl7yj3yccj3r5jjk41vdp91"; depends=[data_table devtools ggplot2 gridExtra Rcpp xtable]; };
   mise = derive2 { name="mise"; version="0.1.0"; sha256="1ydbm76w3y0p5h82shxjblwlzbrmzwx0bgq9w2axjwz2nx8jfw0a"; depends=[]; };
   miselect = derive2 { name="miselect"; version="0.9.0"; sha256="0dfqni7r5zwdvwmrmvqhycmxhazivz6vnz2ccjy0hyfad29g0v7s"; depends=[]; };
-  mispitools = derive2 { name="mispitools"; version="0.1.9"; sha256="1p9w742jsp7dx104s29z5hk2c61m48kg52db7vifj5m85l5g0i5b"; depends=[DirichletReg dplyr forrel highcharter pedtools plotly tidyr tidyverse]; };
+  mispitools = derive2 { name="mispitools"; version="0.2.1"; sha256="139wd1nqw4baivnmz3xh50h3k52bqs8nn8gpgda0cw8r82d5w7ws"; depends=[DirichletReg dplyr forrel highcharter pedtools plotly purrr tidyr tidyverse]; };
   mispr = derive2 { name="mispr"; version="1.0.0"; sha256="166piax3f7di8h0i07fbdx45lxz1p47j378v6yl6zdc3525adpjx"; depends=[e1071 MASS penalized]; };
   misreport = derive2 { name="misreport"; version="0.1.1"; sha256="1f78zcw4cg51mjvflhwd64hip2gj8x9ng1mhh4w43yv3x8hmbd6h"; depends=[mvtnorm numDeriv VGAM]; };
   missCompare = derive2 { name="missCompare"; version="1.0.3"; sha256="03j69xw54d076znx19dplw4xznvgky90hxh3wgypg0g5pjg63y53"; depends=[Amelia data_table dplyr ggdendro ggplot2 Hmisc ltm magrittr MASS Matrix mi mice missForest missMDA pcaMethods plyr rlang tidyr VIM]; };
@@ -12671,7 +12696,7 @@ in with self; {
   mize = derive2 { name="mize"; version="0.2.4"; sha256="1dfhldxsm1il9avfxvaiir9r878dp7swyc9c8ilm6llx208sd5d5"; depends=[]; };
   mizer = derive2 { name="mizer"; version="2.3.0.1"; sha256="1v82ydz6y5vh72q82mxwprymvil7cv6l8lj5y44llkixvhl1ib15"; depends=[assertthat deSolve dplyr ggplot2 ggrepel lifecycle lubridate plotly plyr progress Rcpp reshape2 rlang]; };
   mkde = derive2 { name="mkde"; version="0.1"; sha256="04v84arpnmjrkk88ffphnhkz32x7y0dypk75jfmbbgcgv59xlglv"; depends=[raster Rcpp sp]; };
-  mkin = derive2 { name="mkin"; version="1.0.5"; sha256="1nxdzll5v8551sgq0whqs2270lzvw923rl0kxvxbcwnsz27z26da"; depends=[deSolve inline lmtest nlme numDeriv pkgbuild purrr R6]; };
+  mkin = derive2 { name="mkin"; version="1.1.0"; sha256="0ifi0gg64ckzxn09yg1yyd380acr1kpk2vr0jc1zkg6b32ls13q9"; depends=[deSolve inline lmtest nlme numDeriv pkgbuild purrr R6 saemix]; };
   mknapsack = derive2 { name="mknapsack"; version="0.1.0"; sha256="1kzmx7d512681a4hjirfgcd7a8rvndb4da66p16gms5nnxzsby9c"; depends=[assertthat data_table lpSolve]; };
   mkssd = derive2 { name="mkssd"; version="1.2"; sha256="1vgg5azr4qydqb6xbdbff9256bwz7gl3k3hpn7998rm9jhdmynnd"; depends=[]; };
   mlVAR = derive2 { name="mlVAR"; version="0.5"; sha256="11mn7gaqlmw01gvg7psqkkr5bgv4iclv0590av4xzbvq8496f5g2"; depends=[abind arm clusterGeneration corpcor dplyr graphicalVAR lme4 MplusAutomation mvtnorm plyr qgraph rlang]; };
@@ -12682,7 +12707,7 @@ in with self; {
   mldr_datasets = derive2 { name="mldr.datasets"; version="0.4.2"; sha256="0zyfv8xy5yik0k3j0kf9r43xrvj528qzdb1v74sfi24vim6k6503"; depends=[]; };
   mle_tools = derive2 { name="mle.tools"; version="1.0.0"; sha256="02yndj1if31zr9y805mq5km5n8jz4w9jz1bmaz9nnqsqimrnigrb"; depends=[]; };
   mlearning = derive2 { name="mlearning"; version="1.0-0"; sha256="0r8xfaxw83s2r27b8x5qd0k4r5ayxpkafzn9b1a0jvsr87i6520r"; depends=[class e1071 ipred MASS nnet randomForest]; };
-  mlegp = derive2 { name="mlegp"; version="3.1.8"; sha256="1sbdk3pybzhv2jycl56s6m86pp3qbfh8q0kmhn153130b84dzhga"; depends=[]; };
+  mlegp = derive2 { name="mlegp"; version="3.1.9"; sha256="1cs0l04axp6f6f6m4h4kw8z4pasxgp5la3xib04wxzb2l4bnsab3"; depends=[]; };
   mlergm = derive2 { name="mlergm"; version="0.8"; sha256="0bpdljmbn4lfm263jcsp0hrknixn49m7hqsx0jjk3pfwhgjlajh8"; depends=[cowplot ergm GGally ggplot2 lpSolve Matrix network plyr reshape2 sna stringr]; };
   mleur = derive2 { name="mleur"; version="1.0-6"; sha256="0mddphq3b6y2jaafaa9y41842kcaqdl3dh7j4pva55q2vcjcclj7"; depends=[fGarch lattice stabledist urca]; };
   mlf = derive2 { name="mlf"; version="1.2.1"; sha256="09ihnibpknpp26hdlbxyr99yz7z0n8qpsjs5aq3zngng0yh3wdn9"; depends=[]; };
@@ -12695,7 +12720,6 @@ in with self; {
   mlmi = derive2 { name="mlmi"; version="1.1.1"; sha256="0ksx5qih54ww983ycs08hhr50ms2c2k6pk07mrcwdgli7irzc2cc"; depends=[cat gsl MASS Matrix mix nlme norm]; };
   mlmm_gwas = derive2 { name="mlmm.gwas"; version="1.0.6"; sha256="14xp8k7sww1skyw5l2006gpaw2c6yrri5nmfx4yav4vqdlhcj2k1"; depends=[coxme Matrix multcomp multcompView sommer]; };
   mlmmm = derive2 { name="mlmmm"; version="0.3-1.2"; sha256="1m5ziiqs3ll1xjm1yf7x4sdc910jypn3kjnbadf95xxkvqmfrsqq"; depends=[]; };
-  mlmts = derive2 { name="mlmts"; version="1.0.0"; sha256="0vgrwcbhj4a3vlf9bddzfnicc6bsq0q2ryilq7kdv4yn58d5ggxx"; depends=[AID caret ClusterR complexplus DescTools dtw e1071 evolqg fda_usc forecast freqdom geigen ggplot2 MASS Matrix MTS multiwave pracma pspline psych quantspec ranger Rdpack Rfast TSA TSclust TSdist tseries tseriesChaos tsfeatures waveslim]; };
   mlogit = derive2 { name="mlogit"; version="1.1-1"; sha256="0hyi6gi03n895iydrfr1ba2ifbsd6lyjyhkq62d95ghhniysjgkg"; depends=[dfidx Formula lmtest MASS Rdpack statmod zoo]; };
   mlogitBMA = derive2 { name="mlogitBMA"; version="0.1-6"; sha256="1wl8ljh6rr1wx7dxmd1rq5wjbpz3426z8dpg7pkf1x9wr94a2q25"; depends=[abind BMA maxLik]; };
   mlpack = derive2 { name="mlpack"; version="3.4.2.1"; sha256="0fqpajcmqn9rijzjg7qj0zd2lik4xmhp5dmhbm3mdc9ssdg0axbr"; depends=[BH Rcpp RcppArmadillo RcppEnsmallen]; };
@@ -12703,8 +12727,8 @@ in with self; {
   mlr = derive2 { name="mlr"; version="2.19.0"; sha256="04v1br59ykzhzaiybjyyknbrc7ai5nl5l106b7482r49afscjj8i"; depends=[backports BBmisc checkmate data_table ggplot2 parallelMap ParamHelpers stringi survival XML]; };
   mlr3 = derive2 { name="mlr3"; version="0.13.3"; sha256="010kl51zsgpc0qv63g1fg9kiw9m0wzqskcr14f1j8b9zi1lwi0bf"; depends=[backports checkmate data_table evaluate future future_apply lgr mlbench mlr3measures mlr3misc palmerpenguins paradox parallelly R6 uuid]; };
   mlr3benchmark = derive2 { name="mlr3benchmark"; version="0.1.3"; sha256="0j56l8yi1c0sa3fsychrvv42rpip2d300yccps0bj636c5r7na64"; depends=[checkmate data_table ggplot2 mlr3misc R6]; };
-  mlr3cluster = derive2 { name="mlr3cluster"; version="0.1.2"; sha256="15sbxpp3lawh30dh3hznig12xp68p83p4rz6si6b6jjddcgsw3rq"; depends=[backports checkmate clue clusterCrit data_table mlr3 mlr3misc paradox R6]; };
-  mlr3data = derive2 { name="mlr3data"; version="0.5.0"; sha256="1bck1rsnp4a9bkzyjrdxn1n12lkgkj0gwiwxrf9maj0l8x3kfpyw"; depends=[]; };
+  mlr3cluster = derive2 { name="mlr3cluster"; version="0.1.3"; sha256="034kbgkiysl66087ayy2mhk4xpigxz0i850msifb2ybd1wirvhcn"; depends=[backports checkmate clue clusterCrit data_table mlr3 mlr3misc paradox R6]; };
+  mlr3data = derive2 { name="mlr3data"; version="0.6.0"; sha256="093rxpsdljk44cbg6x6ypmgvcb5v80kl92mzw1fdzsycgpp6k5xc"; depends=[]; };
   mlr3db = derive2 { name="mlr3db"; version="0.4.2"; sha256="17gahnzhraixxxmyinsh1pnrsfqy5kznw5ynfcwyrzpbinx4drih"; depends=[backports checkmate data_table mlr3 mlr3misc R6]; };
   mlr3filters = derive2 { name="mlr3filters"; version="0.5.0"; sha256="14qq42rj8r6304yb54bs4fjld202zqf2lwd0vrz8ak6sn6jn7dbs"; depends=[backports checkmate data_table mlr3 mlr3misc paradox R6]; };
   mlr3fselect = derive2 { name="mlr3fselect"; version="0.6.1"; sha256="064rc35ij833pwcwg0xx600j8vbv762irr4cld7x356ijprd51ys"; depends=[bbotk checkmate data_table lgr mlr3 mlr3misc mlr3pipelines paradox R6]; };
@@ -12718,16 +12742,16 @@ in with self; {
   mlr3shiny = derive2 { name="mlr3shiny"; version="0.2.0"; sha256="0s581aqi3a3kg35db0gnsmmg62zwl5bij4vbszjhc63i3xg0ayiz"; depends=[data_table DT e1071 mlr3 mlr3learners mlr3measures plyr purrr ranger readxl shiny shinyalert shinydashboard shinyjs shinythemes shinyWidgets stringr]; };
   mlr3spatial = derive2 { name="mlr3spatial"; version="0.1.2"; sha256="1iwbrr9bmwk3bdf7qycn8kpfyqb6n8cracrjj2cafb3xj2r5vimn"; depends=[checkmate data_table lgr mlr3 mlr3misc R6 terra]; };
   mlr3spatiotempcv = derive2 { name="mlr3spatiotempcv"; version="1.0.1"; sha256="1fws2jqjbjkbcww1nkl6pvj1gzwb3b52q8fykwf7mivgqf93ipzf"; depends=[checkmate data_table ggplot2 mlr3 mlr3misc paradox R6]; };
-  mlr3tuning = derive2 { name="mlr3tuning"; version="0.12.1"; sha256="0qly6bsfazqcf0a7c2a6k3wghczm8v1fxw9pxa76gpw51x2j2ld0"; depends=[bbotk checkmate data_table lgr mlr3 mlr3misc paradox R6]; };
+  mlr3tuning = derive2 { name="mlr3tuning"; version="0.13.0"; sha256="0czlpi8bshn8cjq7pa1cyy7lpv35g4hv2nbyhc59zrcykzfv8afm"; depends=[bbotk checkmate data_table lgr mlr3 mlr3misc paradox R6]; };
   mlr3tuningspaces = derive2 { name="mlr3tuningspaces"; version="0.1.1"; sha256="14hsm00n3nk7x6521kccakkj0hpmw3c3yjl7dh6hjhggg9p6xkz9"; depends=[checkmate data_table mlr3 mlr3misc mlr3tuning paradox R6]; };
   mlr3verse = derive2 { name="mlr3verse"; version="0.2.4"; sha256="02bmdvkh76qzimkrkaqkmjxpzx1sds3wkawp8d62a3dqd5225f9s"; depends=[bbotk data_table mlr3 mlr3cluster mlr3data mlr3filters mlr3fselect mlr3hyperband mlr3learners mlr3misc mlr3pipelines mlr3proba mlr3tuning mlr3tuningspaces mlr3viz paradox]; };
-  mlr3viz = derive2 { name="mlr3viz"; version="0.5.7"; sha256="1agl6s6i9l7mk8mrvmnz7csqsc77dwjnymlrqcy5vxddr2nfc47l"; depends=[checkmate data_table ggplot2 mlr3misc]; };
+  mlr3viz = derive2 { name="mlr3viz"; version="0.5.8"; sha256="1hcxy1941ijv487lnrm8q9ixl545m2agqlv0x0sk213g8cpk57gb"; depends=[checkmate data_table ggplot2 mlr3misc scales viridis]; };
   mlrCPO = derive2 { name="mlrCPO"; version="0.3.7-3"; sha256="0vq163ca446l2sb3jbn8wmvj26zsrpz52b1w7d8xgb0jjf2jhp91"; depends=[backports BBmisc checkmate mlr ParamHelpers stringi]; };
   mlrMBO = derive2 { name="mlrMBO"; version="1.1.5"; sha256="1f2ryd0mrlnnwxgwiria2sxqkb09kskfqjzsh32cbxh6ml4d3fbs"; depends=[backports BBmisc checkmate data_table lhs mlr parallelMap ParamHelpers smoof]; };
   mlrintermbo = derive2 { name="mlrintermbo"; version="0.5.0"; sha256="1nyaqf6vkckdh7jb27iwv5dnvrh4bp0kkc5jzbqkyi8af11phg1l"; depends=[backports bbotk callr checkmate data_table lhs mlr3misc mlr3tuning paradox R6]; };
   mlsbm = derive2 { name="mlsbm"; version="0.99.2"; sha256="1p6fflhjbbyzx51hb77aak1kdabjrmzd7b47vdcanhb0vd263aby"; depends=[Rcpp RcppArmadillo]; };
   mlsjunkgen = derive2 { name="mlsjunkgen"; version="0.1.2"; sha256="1icsssgi5xf420ajagr9nw0wgbxpfm7dsd5b7s77vyh5hsfzm1z3"; depends=[]; };
-  mlt = derive2 { name="mlt"; version="1.4-0"; sha256="1xb3rmps998sfzlkkrk6k0q1b7gj01q1p4hr5anax66xhcj0529p"; depends=[alabama basefun BB coneproj Matrix numDeriv sandwich survival variables]; };
+  mlt = derive2 { name="mlt"; version="1.4-1"; sha256="0bv1mvvjkyrhp00iry91lmz09rjz0dbrgpvg2m9pnx0vy4nbq1q8"; depends=[alabama basefun BB coneproj Matrix numDeriv sandwich survival variables]; };
   mlt_docreg = derive2 { name="mlt.docreg"; version="1.1-3"; sha256="1ndx570ds8xagcp8d8adx64c2pv71kx3f7d640v638afjlcfc7h9"; depends=[eha flexsurv lattice mlt multcomp np numDeriv survival truncreg]; };
   mltest = derive2 { name="mltest"; version="1.0.1"; sha256="14gyssfph088v936mpywmd4y8z9vdv0zk8638vlg23j8cf5j4al2"; depends=[]; };
   mltools = derive2 { name="mltools"; version="0.3.5"; sha256="045v28w7vz1zjxim8vfc6ncvg2mavr1q332x0hzlqpfzrk7gz4vh"; depends=[data_table Matrix]; };
@@ -12766,7 +12790,7 @@ in with self; {
   mobr = derive2 { name="mobr"; version="2.0.2"; sha256="0dvsarxkjcjn3f40qkx5pdjpvq7hr6l5nvdz6adxlr1sdbadfcws"; depends=[dplyr egg geosphere ggplot2 pbapply plotrix purrr rlang scales tibble tidyr vctrs]; };
   moc = derive2 { name="moc"; version="2.0"; sha256="0fgp8dg9qf7aw1qawmszlxs4bcccqmd87y4kkzdqggm807c2k5gh"; depends=[]; };
   mockery = derive2 { name="mockery"; version="0.4.3"; sha256="0sj77m9vgn4bzb8c8nq93xb9lm8ih8rcb7sfccripraibibg3jcz"; depends=[testthat]; };
-  mockr = derive2 { name="mockr"; version="0.1"; sha256="0340v6189ivlzzriwk7yhf3v2k651x05fd1xrqfxxjgwhysaqj6z"; depends=[lazyeval]; };
+  mockr = derive2 { name="mockr"; version="0.2.0"; sha256="0qxpyyg25ampjd6fjbhylzjfy15qng6w32yc17q5a2y6fz1scsy0"; depends=[rlang withr]; };
   mockthat = derive2 { name="mockthat"; version="0.2.6"; sha256="12srlafk3ykzhrw65s1qzw3l566j285hi28rzrcpbgyr12720raa"; depends=[]; };
   mod = derive2 { name="mod"; version="0.1.3"; sha256="0z5a6ps2m0cbw0n9kn44767m5jnbf1dl077i2p40fipv8xali9fb"; depends=[]; };
   mod09nrt = derive2 { name="mod09nrt"; version="0.14"; sha256="1wn1y33bj9r712l0f063j5gcl423anjzmvgfy0ddihcrbpz4l7a0"; depends=[]; };
@@ -12783,7 +12807,7 @@ in with self; {
   modelObj = derive2 { name="modelObj"; version="4.1"; sha256="0afws8vd7qj9m2ikj0ph1vp2rgr3v979hp3qjapgmln1cwglchlw"; depends=[]; };
   modelROC = derive2 { name="modelROC"; version="1.0"; sha256="0iyx7c98ym7dy6pfssj7474h9wjpzjwy0fyc5bnqyi1lmjgd508k"; depends=[do ggplot2 ROCit survivalROC tmcn]; };
   modelStudio = derive2 { name="modelStudio"; version="3.1.0"; sha256="0hd3x5jnj3s4b0hahxzjxfclhr92adf1xhs7hgc1k8bm9ngnqqxm"; depends=[DALEX digest iBreakDown ingredients jsonlite progress r2d3]; };
-  modelbased = derive2 { name="modelbased"; version="0.7.2"; sha256="1akwp565ab26w32v3s1w1xi3baw5mrp46jjjv347w6nbbb7c1w4f"; depends=[bayestestR datawizard effectsize insight parameters performance]; };
+  modelbased = derive2 { name="modelbased"; version="0.8.0"; sha256="0gw7q0gh035kaax9qjp3i71mjhpiwyk6899v24f9v36lmzbrqb1a"; depends=[bayestestR datawizard effectsize insight parameters performance]; };
   modelc = derive2 { name="modelc"; version="1.0.0.0"; sha256="0xz1zgv5yyvq0yfnhm1kvb4wvlyn4ccd0lkwji55vq8hndvjvk98"; depends=[]; };
   modeldata = derive2 { name="modeldata"; version="0.1.1"; sha256="0jgrwf9k8p9j3ywg3yv2wzwsx3snlwm3dd9vfqwhlr7j63jg3cm4"; depends=[]; };
   modeldb = derive2 { name="modeldb"; version="0.2.2"; sha256="14s8xh05qxv414xcnww1b3s0jqwnjb3l1dqf7q1qbw33ilwcmsfb"; depends=[dplyr ggplot2 progress purrr rlang tibble tidypredict]; };
@@ -12794,7 +12818,7 @@ in with self; {
   modelr = derive2 { name="modelr"; version="0.1.8"; sha256="1i31nff7bqibk6r4hhd4j1vzwbyaf8493v0bjaagn36njmysfnw2"; depends=[broom magrittr purrr rlang tibble tidyr tidyselect vctrs]; };
   modelsummary = derive2 { name="modelsummary"; version="0.9.6"; sha256="1nzahrqqfkc7zbksmlpyvnp7izpcyvck7nhg3nmr6q5paxm1g0f6"; depends=[broom checkmate generics glue insight kableExtra parameters performance rlang tables]; };
   modeltests = derive2 { name="modeltests"; version="0.1.4"; sha256="0ii5sh8yz5yvf0gq41ia55dvbg8x9042x82j52ck6haxa0w8zpfy"; depends=[dplyr generics purrr testthat tibble]; };
-  modeltime = derive2 { name="modeltime"; version="1.1.1"; sha256="1m888hbnwvxmvbf4mk219vhiq2fglc6545j26hc1m73bfaxg73dv"; depends=[cli dials doParallel dplyr forcats foreach forecast ggplot2 glue gt hardhat janitor magrittr parsnip plotly prophet purrr reactable rlang scales StanHeaders stringr tibble tidyr timetk workflows xgboost yardstick]; };
+  modeltime = derive2 { name="modeltime"; version="1.2.0"; sha256="0xy5srnxmpn7xkzyal90pa49bvpmlyvps9g7rfh914nnciwn6ikn"; depends=[cli dials doParallel dplyr forcats foreach forecast ggplot2 glue gt hardhat janitor magrittr parsnip plotly prophet purrr reactable rlang scales StanHeaders stringr tibble tidyr timetk workflows xgboost yardstick]; };
   modeltime_ensemble = derive2 { name="modeltime.ensemble"; version="1.0.0"; sha256="01mi6pkjn97c77kyddz6xsyz11kchkdqy6672p8r96h0wy7530a1"; depends=[cli doParallel dplyr foreach generics glue magrittr modeltime modeltime_resample parsnip purrr recipes rlang rsample stringr tibble tictoc tidyr timetk tune workflows yardstick]; };
   modeltime_gluonts = derive2 { name="modeltime.gluonts"; version="0.1.0"; sha256="1nivqpdyr2s6q70bixna0a18gbhrf1r20vm0gj8b51idjignwpp7"; depends=[dplyr forcats fs glue magrittr modeltime parsnip purrr reticulate rlang stringr tibble tidyr timetk]; };
   modeltime_h2o = derive2 { name="modeltime.h2o"; version="0.1.1"; sha256="0rg7ha1zy0a1fbwrljsglfnfgkl747hjga8xajlzyrczhrmh4vnk"; depends=[dplyr fs glue h2o magrittr modeltime parsnip purrr rlang stringr tibble tidyr timetk]; };
@@ -12824,15 +12848,16 @@ in with self; {
   molaR = derive2 { name="molaR"; version="4.5"; sha256="1mfb05cfg0jh60yxnmwhja6m38185r58kbz2ak0ikgaqd9lls07s"; depends=[alphahull rgl Rvcg]; };
   molic = derive2 { name="molic"; version="2.0.3"; sha256="1qgb63wl5726mypv0f07wcf3aznl93vh045ghx66hiqj3kzfir2b"; depends=[doParallel ess foreach ggplot2 ggridges Rcpp]; };
   molnet = derive2 { name="molnet"; version="0.1.0"; sha256="1ha1jyh3mmbv2zgr2zrrjmslwd1gyy04hvqjk4d3ap2kna35wlgk"; depends=[dplyr igraph magrittr readr Rfast rlang stringr tibble tidyr WGCNA]; };
-  mombf = derive2 { name="mombf"; version="3.0.7"; sha256="07z6y1w87svifvx6fz5z08mfgz2hasyzkcw6kkysjb1n11pynvp5"; depends=[mclust mgcv mvtnorm ncvreg Rcpp RcppArmadillo survival]; };
+  mombf = derive2 { name="mombf"; version="3.1.3"; sha256="0za335manvaiv904246bwvw4m52pf6sfahxrha8kpsjcvzq8140m"; depends=[glmnet mclust mgcv mvtnorm ncvreg pracma Rcpp RcppArmadillo sgd survival]; };
   momentchi2 = derive2 { name="momentchi2"; version="0.1.5"; sha256="1fv0jmwws4mkl9dsaybfpj29ncvqx2idsijgwz2qjblcg309a6k9"; depends=[]; };
   momentfit = derive2 { name="momentfit"; version="0.2"; sha256="1xh3w3bwr2k4a79vma5cmz0l995nwbih0j7sgv3bjqdv4fn463d1"; depends=[sandwich]; };
   moments = derive2 { name="moments"; version="0.14"; sha256="0f9y58w1hxcz4bqivirx25ywlmc80gbi6dfx5cnhkpdg1pk82fra"; depends=[]; };
   momentuHMM = derive2 { name="momentuHMM"; version="1.5.4"; sha256="1hcgrc7nhccn5bw7mgxahhbc6i3dc607g1109b5ahv94yq2ghj09"; depends=[Brobdingnag CircStats crawl doParallel doRNG foreach MASS mvtnorm numDeriv Rcpp RcppArmadillo rlang sp]; };
   momr = derive2 { name="momr"; version="1.1"; sha256="091vzaw8dm29q89lg2iys25rbg2aslgdn9sk06x038nngxdrn95r"; depends=[gplots Hmisc nortest]; };
   monaco = derive2 { name="monaco"; version="0.2.1"; sha256="1wwfwxv8064icdi6fhyrp3mrpv37x0cnnwdb5k1b88jfzb7j1hb6"; depends=[htmltools htmlwidgets rstudioapi shiny]; };
+  monashtipr = derive2 { name="monashtipr"; version="0.1.0"; sha256="050xa9ghhf5xy76vndry7rhqn3hn0lhz6wjwz9vxk6mcfy5j2wq5"; depends=[glue httr lifecycle magrittr purrr rlang rvest xml2]; };
   mondate = derive2 { name="mondate"; version="0.10.02"; sha256="18nsqldj1vvv882nh2dyilqvz1jbhqkz3q69cpjq1xfcj0z88qxz"; depends=[]; };
-  mongolite = derive2 { name="mongolite"; version="2.4.1"; sha256="0y5g55nkmvgc5wd6lld1435g0szr0niphlnc96fm9pla4f6c4c0a"; depends=[jsonlite mime openssl]; };
+  mongolite = derive2 { name="mongolite"; version="2.5.0"; sha256="1xy7ln2jgkb7mskcqa1l06pm66m3cm4n34ylmpq6jqsjla4b7drl"; depends=[jsonlite mime openssl]; };
   mongopipe = derive2 { name="mongopipe"; version="0.1.1"; sha256="081l6d1kwh30wq5kwz9dd2a9221x9139x1xbvfiqixwv0g9sjjy0"; depends=[jsonlite magrittr rlang]; };
   monitoR = derive2 { name="monitoR"; version="1.0.7"; sha256="1h1g0m1j13mz37xxwck4s7a0bfqvi0nrzfw60j7bkzaah8zxcc9n"; depends=[tuneR]; };
   monmlp = derive2 { name="monmlp"; version="1.1.5"; sha256="19cx60csm8mnf6ksg64vlhi8wi1c7bmv9l55y9zmaljblr0kmzxf"; depends=[optimx]; };
@@ -12841,15 +12866,16 @@ in with self; {
   monobinShiny = derive2 { name="monobinShiny"; version="0.1.0"; sha256="1ix376j39fby5571irf8i5bmz8i7nnvfzbvs5cv0k42dcgq93m0g"; depends=[dplyr DT monobin shiny shinydashboard shinyjs]; };
   monochromeR = derive2 { name="monochromeR"; version="0.1.0"; sha256="1zm5d4ipjlkvlhcqnq2cl5amv85n3iflb34915n12rjs68hbcjmd"; depends=[scales]; };
   monographaR = derive2 { name="monographaR"; version="1.2.1"; sha256="09fkcw13h7dx7j5vyp48fk6yzv9n64568zf2zvmm2c008jw3gkbm"; depends=[circular maptools png raster rmarkdown sp]; };
-  monomvn = derive2 { name="monomvn"; version="1.9-13"; sha256="1hm5qf28bh0q7f4zcjqx1qxw3l8hzkx349c1y3nwyfg7436vff6a"; depends=[lars MASS mvtnorm pls quadprog]; };
+  monomvn = derive2 { name="monomvn"; version="1.9-15"; sha256="1i2nj50wxw1i93sk3aljl2ahic7n2mwlnvmx25jkjks60pplr6gr"; depends=[lars MASS mvtnorm pls quadprog]; };
   monoreg = derive2 { name="monoreg"; version="2.0"; sha256="059y5rj74b2rgkqmqqa4v74ih6knydj3kb2hr7hz4xj36cg01x54"; depends=[]; };
   monotone = derive2 { name="monotone"; version="0.1.0"; sha256="1091xqa88gdp64b65610mfcknyz29kb980iqbvwnmlk12csszr1w"; depends=[]; };
   monotonicity = derive2 { name="monotonicity"; version="1.3.1"; sha256="0bb6sl8yykry25a86qfggi36ggr1xrxcqsnzp6rb6na228hbwa2z"; depends=[lmtest MASS sandwich]; };
   monreg = derive2 { name="monreg"; version="0.1.4"; sha256="15qgfhbd8ny05rjd1nn33ynh4i7m7wcy8az53jraghlk760bymwg"; depends=[]; };
-  moodleR = derive2 { name="moodleR"; version="0.3.2"; sha256="0c2p4p6payaq0r2mcw1kxhz5hg9aklbfny6j3ssjk0b05ngca5dv"; depends=[anytime cli config DBI dplyr ggplot2 ggwordcloud glue here lifecycle rlang RMariaDB RSQLite scales stringr tidytext]; };
+  moodleR = derive2 { name="moodleR"; version="1.0.0"; sha256="19lw8zpf1pd57nnv1mnp1d5dnw0gp1hspl4lpra4s9rc51vg1agg"; depends=[anytime cli config DBI dplyr ggplot2 ggwordcloud glue lifecycle rlang RMariaDB RPostgres RSQLite scales stringr tidytext usethis]; };
   moonBook = derive2 { name="moonBook"; version="0.3.1"; sha256="1ml4vvm0mvrprpyi0l50aw38brx18bk2qny4gybmkvlbakalz9bx"; depends=[crayon magrittr nortest sjmisc stringr survival]; };
   mopac = derive2 { name="mopac"; version="0.1.0"; sha256="07ljy6rwicyrv20l7zyxq2lb7qqfpl5mpv834m2n5c4air7sy23m"; depends=[]; };
   mopsocd = derive2 { name="mopsocd"; version="0.5.1"; sha256="10hssnm1afqmxa9kw6ifqnz3p3yyjrmxgi98zlj31a5g4nis8wb1"; depends=[]; };
+  moranajp = derive2 { name="moranajp"; version="0.9.3"; sha256="0kq9rns7pkm26w4530is52l60mcj3ry2hnwd2n4kjfx4s2bm80yn"; depends=[dplyr magrittr purrr rlang stringr tibble tidyr]; };
   moreparty = derive2 { name="moreparty"; version="0.2.1"; sha256="0p30skq5x3rz3xbp2izq44v5c0byw7cw2han6bardah7xniz3w2d"; depends=[foreach ggplot2 iml MASS measures party partykit pdp plyr rlang varImp vip]; };
   morgenstemning = derive2 { name="morgenstemning"; version="1.0"; sha256="17y90cf8ajmkfwla0hm4jgkbkd1mxnym63ph2468sfxkhn0r3v88"; depends=[]; };
   morph = derive2 { name="morph"; version="1.0.0"; sha256="1xaca0da8fcymbjiqxxdp7z13283xd93crxv74401dqpbqv0vai3"; depends=[igraph reshape2 rgl stringr]; };
@@ -12882,7 +12908,7 @@ in with self; {
   moveHMM = derive2 { name="moveHMM"; version="1.7"; sha256="031msh427hgjyr37imalr7smd79yqscw9xq5rjrixxc2w5qly9jj"; depends=[boot CircStats geosphere ggmap ggplot2 MASS numDeriv Rcpp RcppArmadillo sp]; };
   moveVis = derive2 { name="moveVis"; version="0.10.5"; sha256="1lj22yr6v3vg795r72gkbhyabycppxbjsaldqiqgckhkdfh3lziw"; depends=[av cowplot curl ggplot2 gifski lubridate lwgeom magick magrittr move pbapply raster sf slippymath]; };
   moveWindSpeed = derive2 { name="moveWindSpeed"; version="0.2.3"; sha256="14a2iymn4j831xlh42z5qxmhnh7xpp5bxasgpkhnb3v0b5ldyilh"; depends=[move Rcpp]; };
-  movecost = derive2 { name="movecost"; version="1.5"; sha256="0f80gpzghxnq80sl17zzpi3xj4gxgfiyx5jh1j01bngq1iy7m0r1"; depends=[chron elevatr gdistance maptools raster rgdal rgeos sp spatstat_geom]; };
+  movecost = derive2 { name="movecost"; version="1.6"; sha256="05hq7k6axhz5vvy3hpw85w27bmm0s720nqzy43q529pc8mxp5vww"; depends=[chron elevatr gdistance maptools raster rgdal rgeos sp spatstat_geom]; };
   mozzie = derive2 { name="mozzie"; version="0.1.0"; sha256="09dwrv4r0hi19gzi1vpif3q4wlbny9h22430g1hhv0wkqs86mhmw"; depends=[]; };
   mp = derive2 { name="mp"; version="0.4.1"; sha256="0awvwqwb25q47j14b450k1k5mh2yzwhn7gizjv5j7lyiamk30iwq"; depends=[Rcpp RcppArmadillo]; };
   mpath = derive2 { name="mpath"; version="0.4-2.22"; sha256="0i4vyli3sr1lzrj0ayzsq55cpsv0xrwn216lgzmfyjr5n8r9aw7r"; depends=[bst doParallel foreach glmnet MASS numDeriv pamr pscl WeightSVM]; };
@@ -12891,34 +12917,34 @@ in with self; {
   mpcv = derive2 { name="mpcv"; version="1.1"; sha256="0vwycspiw9saj811f6alkbijivy7szpahf35bxn2rpn2bdhbn21i"; depends=[lpSolve]; };
   mpe = derive2 { name="mpe"; version="1.0"; sha256="17bgdbg1zrf78djd3mwycidwibxvsis7pwkrcynvghcc8l2zfci9"; depends=[mvtnorm]; };
   mplot = derive2 { name="mplot"; version="1.0.6"; sha256="15cmwk4lphxy5p3azy9lwhij76127h9g4g1j1sv59mbqvrqid0sk"; depends=[bestglm doParallel doRNG dplyr foreach ggplot2 glmnet googleVis leaps magrittr plyr reshape2 scales shiny shinydashboard tidyr]; };
-  mpm = derive2 { name="mpm"; version="1.0-22"; sha256="0wijw8v0wmbfrda5564cmnp788qmlkk21yn5cp5qk8aprm9l1fnk"; depends=[KernSmooth MASS]; };
+  mpm = derive2 { name="mpm"; version="1.0-23"; sha256="1jpv2ddmw7aarqbbyfys1yb840arw33319wnny3v2hk84hldmayj"; depends=[KernSmooth MASS]; };
   mpmcorrelogram = derive2 { name="mpmcorrelogram"; version="0.1-4"; sha256="0gv9xswrfvndcjal0csab1w2cnl4rg8pznyxbz84b0qr95jg81ag"; depends=[vegan]; };
-  mpmi = derive2 { name="mpmi"; version="0.43.1"; sha256="1lz7928vz52hs8dad9rj34hnkv8y0yj4mfiydwkrqvsl8avwc4qk"; depends=[KernSmooth]; };
+  mpmi = derive2 { name="mpmi"; version="0.43.2"; sha256="1adfsrnigd46k7xm2brhq7afrh1x1i7s4mzn8iq2dnqikb8pl7pl"; depends=[KernSmooth]; };
   mpoly = derive2 { name="mpoly"; version="1.1.1"; sha256="10is69ks22ka1cqw3xk0fvy4z3b2drm8lanqwj178qrzj7ipf7i0"; depends=[ggplot2 orthopolynom partitions plyr polynom stringi stringr tidyr]; };
   mppR = derive2 { name="mppR"; version="1.3.0"; sha256="12fjb8q3yhhpsdb0wiv6bamw6a4igv2as9vqq6ac1gab454b9fxn"; depends=[ggplot2 igraph qtl]; };
   mppa = derive2 { name="mppa"; version="1.0"; sha256="06v6vq2nfh4b407x2gyvcp5wbdrcnk3m8y58akapi66lj8xplcx4"; depends=[]; };
   mpr = derive2 { name="mpr"; version="1.0.6"; sha256="155cjdcyvxnmqxx3zg2dvzk7av2jcn67lj2vdpd2ahbznax76ghk"; depends=[survival]; };
-  mpspline2 = derive2 { name="mpspline2"; version="0.1.3"; sha256="0yadvnfsj1c9mm28v6501510dhcg77nzcvky32zmhaa21gwszcij"; depends=[]; };
-  mpt = derive2 { name="mpt"; version="0.7-0"; sha256="1nwc3szl5g5cd39z7ydr91bvvg58gb7r5zbjbylp93yx3pr7bsjh"; depends=[]; };
+  mpspline2 = derive2 { name="mpspline2"; version="0.1.6"; sha256="1zh53lxsy895lljxlyhas5xb9ln5q772h26yil7ydq6zlh4w8vr0"; depends=[]; };
+  mpt = derive2 { name="mpt"; version="0.8-0"; sha256="02m92dn9y5q4ql7ydn01nn5irm82kknd2dqc0bcnxsn7kdbglnid"; depends=[]; };
   mptools = derive2 { name="mptools"; version="1.0.1"; sha256="1g4fbfwxv9hir0jn22nh9854blgkh0b5jan3lv0888izj4isa1hc"; depends=[animation lattice latticeExtra raster rasterVis sp viridis zoo]; };
   mr_raps = derive2 { name="mr.raps"; version="0.2"; sha256="069vyvsdgc5m7n2fd0h7jrllz789zvsxka7h5wiy36dc7lagd6f8"; depends=[nortest]; };
-  mrMLM = derive2 { name="mrMLM"; version="4.0.2"; sha256="0v2vmzylaqk836xqpyjy5cccnpsacyy2b334cay3pdlr8qdmrqky"; depends=[coin data_table doParallel foreach lars ncvreg Rcpp RcppEigen sampling sbl]; };
+  mrMLM = derive2 { name="mrMLM"; version="5.0.1"; sha256="0z2vwvpc7yrxza3jy3x3mj7d3n10bfbq72rcsnrjrz2jkcbkwb8g"; depends=[BEDMatrix coin data_table doParallel foreach lars ncvreg Rcpp RcppEigen sampling sbl]; };
   mrMLM_GUI = derive2 { name="mrMLM.GUI"; version="4.0.2"; sha256="0ywxaw164czfgbnqfkh5zw06006clisbc780w2h4z71wfvj56dsi"; depends=[bigmemory coin data_table doParallel foreach lars mrMLM ncvreg Rcpp RcppEigen sampling sbl shiny shinyjs]; };
   mra = derive2 { name="mra"; version="2.16.11"; sha256="0268msdy4cs2ifpagmwiabi6aav54ckn214ai18aqv2h97hmixw0"; depends=[]; };
   mratios = derive2 { name="mratios"; version="1.4.2"; sha256="18pi0dks0qmw0gv76yqm4gvxdqrcvr25j1vb8k4mkp5p35kzkzff"; depends=[multcomp mvtnorm survival survPresmooth]; };
   mrbayes = derive2 { name="mrbayes"; version="0.5.1"; sha256="11n3d18di01vmwqs5a0i1h8839aammzbcavi1jk58bmrwb3l771j"; depends=[BH plyr Rcpp RcppEigen rstan rstantools StanHeaders]; };
   mrbin = derive2 { name="mrbin"; version="1.6.3"; sha256="0w9m1mmvp6m3zhkxdr7fj96z143kq0qnc6kpg2ixn1sl4nzdfx0c"; depends=[]; };
   mrbsizeR = derive2 { name="mrbsizeR"; version="1.2.1.1"; sha256="0v06sd5sh7ghlr8lgrv6l4glmv7chj3951pw4ssxrly4hz2rh6i0"; depends=[fields maps Rcpp]; };
-  mrds = derive2 { name="mrds"; version="2.2.5"; sha256="1659nzdykl4mgfgyniwnwrn1a0m6wiz7c02ygwpm90bnz8f4g5y2"; depends=[mgcv numDeriv optimx Rsolnp]; };
+  mrds = derive2 { name="mrds"; version="2.2.6"; sha256="1xk8dr48gh3dqb1zx4ijd7z8dgkfs7lvp50y9irqdxax35cjd6f2"; depends=[mgcv numDeriv optimx Rsolnp]; };
   mreg = derive2 { name="mreg"; version="1.1"; sha256="06la0yy2yys161jhlzlcm5lcv0664wm6sa8gjdnpd1s1nx52jkqf"; depends=[]; };
   mregions = derive2 { name="mregions"; version="0.1.6"; sha256="0ix77hqcllhcpldchlnvciiflm6ysylynnnqvczpf8vx7gwa3lrk"; depends=[data_table httr jsonlite rappdirs sp tibble wellknown xml2]; };
   mrf = derive2 { name="mrf"; version="0.1.6"; sha256="0jqpx0ng0l8f7y941awpi82yqbv8ir0sixiw6zdkqpj82d9a7j9m"; depends=[DEoptim forecast limSolve monmlp nnfor]; };
   mrf2d = derive2 { name="mrf2d"; version="1.0"; sha256="0fmxn178bkw77iz51bnjxala9xmhs44km57m8msvlw0k69sddyif"; depends=[dplyr ggplot2 Rcpp RcppArmadillo Rdpack tidyr]; };
   mrfDepth = derive2 { name="mrfDepth"; version="1.0.13"; sha256="177331j30n707mcl1ghxjc53xjs9qsal15kccc71b0rabkjdq2wv"; depends=[abind geometry ggplot2 matrixStats Rcpp RcppArmadillo RcppEigen reshape2]; };
   mrfse = derive2 { name="mrfse"; version="0.2"; sha256="1dx21m54jsprlngj20q1bgvbw1bbm0sm8i01xanj68bx796ng14j"; depends=[]; };
-  mrgsim_parallel = derive2 { name="mrgsim.parallel"; version="0.2.0"; sha256="1qdaaa4zklsn9bwlkv654y5m2r9hj6rviv3ag5ibqk0d1h1l9kzk"; depends=[callr dplyr fst future future_apply mrgsolve]; };
+  mrgsim_parallel = derive2 { name="mrgsim.parallel"; version="0.2.1"; sha256="074c47fkwy5n9x89dswi3ybnck1f0rlbyad6by32jyslw8bz76ln"; depends=[callr dplyr fst future future_apply mrgsolve]; };
   mrgsim_sa = derive2 { name="mrgsim.sa"; version="0.1.0"; sha256="199m6ygwnw6fbld5fqsw1j5jz9x6l1ayrpsc0r51q4fr7nmmpfj2"; depends=[assertthat dplyr ggplot2 mrgsolve patchwork purrr rlang tibble tidyr tidyselect withr]; };
-  mrgsolve = derive2 { name="mrgsolve"; version="1.0.0"; sha256="0k8cac0sslzs3d5nl55713dxbv3009fvzssyz7mli7s5hn0yyx3c"; depends=[BH dplyr glue lifecycle magrittr Rcpp RcppArmadillo rlang tibble tidyselect]; };
+  mrgsolve = derive2 { name="mrgsolve"; version="1.0.3"; sha256="0xy35ihbzw51cdy3yqpg2v6dlah7rsriblf081f3m8abprys0r5i"; depends=[BH dplyr glue lifecycle magrittr Rcpp RcppArmadillo rlang tibble tidyselect]; };
   mri = derive2 { name="mri"; version="1.0.1"; sha256="1dssq556kid6c3djp0s6v853cranv2wjs2c9521l5ykg5g33hfmv"; depends=[]; };
   mritc = derive2 { name="mritc"; version="0.5-2"; sha256="07b1b2k1ka43ikj2mhwnazw3ig7w10bf759fimxpksvk5k6wanx2"; depends=[lattice misc3d oro_nifti]; };
   mro = derive2 { name="mro"; version="0.1.1"; sha256="00gc2hd8q5hb2xrswclcqqw1gxl83zmpma6bhsggg3kppsw1dpjv"; depends=[MASS matrixcalc]; };
@@ -12931,6 +12957,8 @@ in with self; {
   msaR = derive2 { name="msaR"; version="0.6.0"; sha256="12d6vql85d1mzcy889z7pbmldcwwmzijimcr9frm12ahmka81byx"; depends=[ape htmlwidgets]; };
   msae = derive2 { name="msae"; version="0.1.4"; sha256="06i5qysar9g7q18wy9h39qn5xw89794kbd58y8bah4bs3j5c5m47"; depends=[magic]; };
   msaeDB = derive2 { name="msaeDB"; version="0.2.1"; sha256="0ccvg41d28qjbknhsamw95nq8fdibmz03pwblddkqywfl5yarii3"; depends=[magic MASS]; };
+  msaeHB = derive2 { name="msaeHB"; version="0.1.0"; sha256="1grmkr146csyim1lpgingjnp4km3sqlpzihln9cpkqaqhvl8rycj"; depends=[coda rjags]; };
+  msaeOB = derive2 { name="msaeOB"; version="0.1.0"; sha256="05m6r5jk21l9d2j546h7vf8caic83nm0y55zfamr94z4q221486x"; depends=[abind magic MASS Matrix]; };
   msaeRB = derive2 { name="msaeRB"; version="0.2.1"; sha256="0mpyirvaflmp6gc35kbz1rw5ydxxdgfji3j9c8hjrjqz6759birb"; depends=[abind magic MASS Matrix]; };
   msaenet = derive2 { name="msaenet"; version="3.1"; sha256="067p97z54dwhxy0w4ihi8dddcbvglh8ssynbh29fl9jyxfwjr1ms"; depends=[foreach glmnet Matrix mvtnorm ncvreg survival]; };
   msap = derive2 { name="msap"; version="1.1.8"; sha256="0z5lm782jjb9w1h5vgz8bmxjdcrq9zb3xp1w5cb479jjc7krlgg3"; depends=[ade4 ape]; };
@@ -12949,7 +12977,7 @@ in with self; {
   msgr = derive2 { name="msgr"; version="1.1.2"; sha256="15s3d77xqczjydgcfx4jlsq408hgsm8yzqk5248v58vm6zy36mh0"; depends=[purrr rlang]; };
   mshap = derive2 { name="mshap"; version="0.1.0"; sha256="1q01q1w5wsiynabsvd5vl5jffiyxrmyj4ad6b07zhja0ff6b2n9j"; depends=[dplyr forcats ggbeeswarm ggplot2 magrittr purrr rlang stringr tidyr tidyselect]; };
   msig = derive2 { name="msig"; version="1.0"; sha256="0gqd0kqlzhvp9widgjxbi5rz75bx0rkbnwbagjmzfv49f8g7yh46"; depends=[crayon do dplyr httr jsonlite kableExtra plyr rvest set sqldf stringr tmcn xml2]; };
-  msigdbr = derive2 { name="msigdbr"; version="7.4.1"; sha256="103m52av68pkjfh8f81qh6j3cs1mj1lg831ciwybr34cax767jr1"; depends=[babelgene dplyr magrittr rlang tibble tidyselect]; };
+  msigdbr = derive2 { name="msigdbr"; version="7.5.1"; sha256="1jna9bkq0a7r6f8nhxziyiw75kfhsyh1rv7sx5d4551mvxxlhc6w"; depends=[babelgene dplyr magrittr rlang tibble tidyselect]; };
   msir = derive2 { name="msir"; version="1.3.3"; sha256="1wm83m3cqd6llxb9p2jwim0wb81v84pgdmgcznygzaaq6kbn3n84"; depends=[mclust]; };
   msltrend = derive2 { name="msltrend"; version="1.0"; sha256="1rwy77ijf3hzq2zp47cijwvqcq34rdlfxwhrd9l56bvmlmzr1dqx"; depends=[changepoint forecast plyr Rssa tseries zoo]; };
   msm = derive2 { name="msm"; version="1.6.9"; sha256="08vhazswyxr3y1zb9y60mbg3bappzlizxml8s08p65mh82xxkz5f"; depends=[expm mvtnorm survival]; };
@@ -12985,7 +13013,6 @@ in with self; {
   muir = derive2 { name="muir"; version="0.1.0"; sha256="0h3qaqf549v40ms7c851sspaxzidmdpcj89ycdmfp94b2q3bmz98"; depends=[DiagrammeR dplyr stringr]; };
   mully = derive2 { name="mully"; version="2.1.34"; sha256="1f9yc64hq5c2v473cayg9s66g4k5gf6znj5i3qhcp1l9266y88kp"; depends=[igraph randomcoloR rgl shape]; };
   mulset = derive2 { name="mulset"; version="1.0.0"; sha256="0pigiy6hfiqh6x4zx6zqn3ykk36s3abzzyb67jdlf4jzc5zhrl9g"; depends=[digest gtools]; };
-  multDM = derive2 { name="multDM"; version="1.1.3"; sha256="16bvr62lxmrq79z856iigwz5cjhk327x4hhd0cg3adgabqcz04yp"; depends=[MTS]; };
   multIntTestFunc = derive2 { name="multIntTestFunc"; version="0.1.1"; sha256="1psbjgg0dqd4nbmyja1mx4v1w0jqqhc67p7wqf1ipm93llv8sv6f"; depends=[gsl pracma]; };
   multbxxc = derive2 { name="multbxxc"; version="1.0.1"; sha256="1ip5awjc2ljpy6nsr4y42x0yg4n7lyaxp9kzfjvwp41k9lriz4gm"; depends=[Rcpp RcppArmadillo rmumps]; };
   multcomp = derive2 { name="multcomp"; version="1.4-18"; sha256="01i8gjppyxl3xph1dw0kags8qbb7r06j91kk3lkqn5gzrxjmwyhh"; depends=[codetools mvtnorm sandwich survival TH_data]; };
@@ -13018,7 +13045,6 @@ in with self; {
   multidplyr = derive2 { name="multidplyr"; version="0.1.1"; sha256="1cc8p9l6nn6n3dvivqyn8pwj0wn2vz40jcbb38zkg109a4c06jbb"; depends=[callr crayon dplyr magrittr qs R6 rlang tibble tidyselect vctrs]; };
   multifamm = derive2 { name="multifamm"; version="0.1.1"; sha256="09s6hnyi5x48yp97499zai7b959ylkk17zbbc6d8a71ynvfas8ir"; depends=[data_table funData MFPCA mgcv sparseFLMM zoo]; };
   multifear = derive2 { name="multifear"; version="0.1.2"; sha256="15nxyb17qzwld3ngw5k60nsr5nnam09jc1ky87rvsvslj6f3v696"; depends=[BayesFactor bayestestR bootstrap broom dplyr effectsize effsize esc ez forestplot ggplot2 nlme purrr reshape2 stringr tibble]; };
-  multifluo = derive2 { name="multifluo"; version="1.1"; sha256="1hnh1gj6lfnh2fn0v064bszydgsr6p9f7p8yxyw5rdxfrxymiw09"; depends=[agricolae ellipse imager]; };
   multifwf = derive2 { name="multifwf"; version="0.2.2"; sha256="1l6z3pzz6g6w1spp1f918jh6w0jm93qyc882rj8jhn1198d2s8nd"; depends=[]; };
   multigraph = derive2 { name="multigraph"; version="0.96"; sha256="1vk57cgmm7nigv6zmd9amwm3gddfpadkjr9blhckfla25n54h7r8"; depends=[multiplex]; };
   multigraphr = derive2 { name="multigraphr"; version="0.1.0"; sha256="018kwpphwkpm07by7pvrwp5wvrasnpaxbs67pdrbfxzc139d15q9"; depends=[]; };
@@ -13027,11 +13053,11 @@ in with self; {
   multilevel = derive2 { name="multilevel"; version="2.7"; sha256="0ds7q3q2ncldb4iik24xisyxyyv1yv8l1yz7zd7cy036bna1yp5i"; depends=[MASS nlme]; };
   multilevelPSA = derive2 { name="multilevelPSA"; version="1.2.5"; sha256="0926jaicdxk846vyfphb2hyg3zan3wal44x1bwamws0zf4flc4hj"; depends=[ggplot2 MASS party plyr PSAgraphics psych reshape xtable]; };
   multilevelTools = derive2 { name="multilevelTools"; version="0.1.1"; sha256="01fzx7j0mkb4fr7axv34184w6w5nfsdcr51nscci1mi5b2805x1s"; depends=[cowplot data_table extraoperators ggplot2 JWileymisc lavaan lme4 lmerTest nlme zoo]; };
+  multilevelmod = derive2 { name="multilevelmod"; version="0.1.0"; sha256="1nqm072rsgdpwrad50k4ry1vjq5749x6a2nmfvmh4nds1zhrja6m"; depends=[dplyr lme4 parsnip purrr rlang tibble withr]; };
   multilinguer = derive2 { name="multilinguer"; version="0.2.2"; sha256="1i8c3sz6h42nca13ycjkmsmjbg8lj1xhkvyga97lp2wgkrrywpwb"; depends=[askpass rappdirs sys usethis]; };
   multimark = derive2 { name="multimark"; version="2.1.4"; sha256="1x194h1jzxm3va933vqqk0qdg7pgrc5hqwdd1bwh0sjavygwanqz"; depends=[Brobdingnag coda Matrix mvtnorm prodlim raster RMark sp statmod]; };
   multimode = derive2 { name="multimode"; version="1.5"; sha256="0qxb67qss2pmid0wiwblqng5qmihqchdhbkyjklgj20pvbjz1wjm"; depends=[diptest ks rootSolve]; };
   multimorbidity = derive2 { name="multimorbidity"; version="0.5.0"; sha256="1x4869pqckldx6g4zhawjbin03glkxzfszb4qiq7yy2xi444jkl0"; depends=[devtools dplyr lubridate magrittr rlang sqldf stringr tidyr tidyselect tidyverse]; };
-  multinbmod = derive2 { name="multinbmod"; version="1.0"; sha256="1c4jyzlcjkqdafj9b6hrqp6zs33q6qnp3wb3d7ldlij7ns9fhg71"; depends=[]; };
   multinet = derive2 { name="multinet"; version="4.0.1"; sha256="0j4hdw47vf5rkd4vqr6bs5740h17kvw7208a434q0ms2vlmm40cg"; depends=[igraph RColorBrewer Rcpp]; };
   multinets = derive2 { name="multinets"; version="0.2.2"; sha256="1i5jsq1xy0g0l5d1z3hz4gj6inj4rhd6lf2s5xzd5k8ccp5aba8c"; depends=[igraph Rcpp]; };
   multinma = derive2 { name="multinma"; version="0.4.2"; sha256="128p2a20kcdkqv9zq4i9hiy9fyqasmrfz162yz00fmyxkp50g63a"; depends=[bayesplot BH copula dplyr forcats ggdist ggplot2 ggraph glue igraph Matrix purrr randtoolbox Rcpp RcppEigen RcppParallel Rdpack rlang rstan rstantools StanHeaders stringr tibble tidyr truncdist]; };
@@ -13054,6 +13080,7 @@ in with self; {
   multivariance = derive2 { name="multivariance"; version="2.4.1"; sha256="1jbv1rhdy6jgvyhwz25hry3xmnxfsl8pwf0j4rj9r8rg6ik8rv1w"; depends=[igraph microbenchmark Rcpp]; };
   multivator = derive2 { name="multivator"; version="1.1-10"; sha256="1a469mhskkk2gx0j14f38fn0wdbfygl3psb0mnp7ckznhmh4w2lg"; depends=[emulator mathjaxr mvtnorm]; };
   multiverse = derive2 { name="multiverse"; version="0.5.0"; sha256="1mffmcbc5l4753dj7h9h82gf76xbigrbb5lbwjr5ycpcyzcpsldk"; depends=[berryFunctions collections dplyr evaluate formatR knitr magrittr purrr R6 rlang rstudioapi tibble tidyr tidyselect]; };
+  multiversion = derive2 { name="multiversion"; version="0.3.6"; sha256="1gcr4p2kwyyi1skkq1b5ian0flfviyrhh14i66jajyc2qdxfqfic"; depends=[]; };
   multiviewtest = derive2 { name="multiviewtest"; version="2.0.1"; sha256="1jnb9l9nqnciczgxy9k7fq66rycbq0gr4sjdc2ck274jisj5bbaq"; depends=[doParallel foreach irlba Matrix matrixStats mclust randnet]; };
   multiwave = derive2 { name="multiwave"; version="1.4"; sha256="19581kjcyw86cnzhvhhpn997fixm811ggmvb8jkb3dsxg8vp60jc"; depends=[]; };
   multiway = derive2 { name="multiway"; version="1.0-6"; sha256="1y9cykarr2aysdrnyab5aklsrc5id5b58881q03lcb5kc385v3gv"; depends=[CMLS]; };
@@ -13087,11 +13114,10 @@ in with self; {
   mvShapiroTest = derive2 { name="mvShapiroTest"; version="1.0"; sha256="0zcv5l28gwipkmymk12l4wcj9v047pr8k8q5avljdrs2a37f74v1"; depends=[]; };
   mvabund = derive2 { name="mvabund"; version="4.2.1"; sha256="01kss9dx4an1ir5zs46jypvhj8sdc8wcs00i1223ai09av4lcsgd"; depends=[MASS Rcpp RcppGSL statmod tweedie]; };
   mvbutils = derive2 { name="mvbutils"; version="2.8.232"; sha256="0awd0jy492ha321c20kmmgl20kqphdmrmswakc0rq6h8z9d55kdg"; depends=[]; };
-  mvc = derive2 { name="mvc"; version="1.3"; sha256="0kmh6vp7c2y9jf71f4a29b0fxcl0h7m4p8wig4dk3fi7alhjf7ym"; depends=[]; };
-  mvcluster = derive2 { name="mvcluster"; version="1.0"; sha256="0yfl31scdgsiljvpv1yxc5bwwzr6kbhpjwqh2kql7xf0m0hc1pr4"; depends=[Rcpp RcppArmadillo]; };
+  mvc = derive2 { name="mvc"; version="1.3"; sha256="0kmh6vp7c2y9jf71f4a29b0fxcl0h7m4p8wig4dk3fi7alhjf7ym"; depends=[rattle]; };
   mvctm = derive2 { name="mvctm"; version="1.2"; sha256="0810bmk748cvbls4djspqvkk65j605djqicqg4rkwy2a799l3rgc"; depends=[Formula MNM nlme quantreg Rfit SpatialNP]; };
   mvdalab = derive2 { name="mvdalab"; version="1.6"; sha256="0i4hhm9bkp13j8cy6fspdn619d00jh615njwr49rwzgjyj418k6l"; depends=[car dummies ggplot2 MASS moments penalized plyr reshape2 sn]; };
-  mvgb = derive2 { name="mvgb"; version="0.0.1"; sha256="0rp9z6zp2nl09aq1xxq08h23zb5pidxjq0byryf3vy72ldq7y72c"; depends=[mvtnorm]; };
+  mvgb = derive2 { name="mvgb"; version="0.0.2"; sha256="06sk2izii94zcq0gjgrw71bam9scyvs745riaaxg2a88yzc3sl2h"; depends=[]; };
   mvglmmRank = derive2 { name="mvglmmRank"; version="1.2-2"; sha256="00zxqby8syb959fqgw9i7b0yamgjwddq32jlin6qmnzys5bg1556"; depends=[MASS Matrix numDeriv]; };
   mvinfluence = derive2 { name="mvinfluence"; version="0.8-3"; sha256="0nygsldkm61ny5ljcc1r667rywj239j4x59ssi81cb2005kkjgm5"; depends=[car heplots]; };
   mvmesh = derive2 { name="mvmesh"; version="1.6"; sha256="1y6p7xp9fv0xswjdc6py1xqlx1ys1iyr559s9wkyja4hzcpya2my"; depends=[abind geometry rcdd rgl SimplicialCubature]; };
@@ -13106,6 +13132,7 @@ in with self; {
   mvord = derive2 { name="mvord"; version="1.1.1"; sha256="0flqdsjigv8c6ygiih17kp22yrbs2wqydadqi5ij145a6r8bpkml"; depends=[BB dfoptim MASS Matrix minqa mnormt numDeriv optimx pbivnorm ucminf]; };
   mvoutlier = derive2 { name="mvoutlier"; version="2.1.1"; sha256="1ll6zsy8svcsb3h60p0z2zpbgn919j9w0mamsdvvzi87dyy4hars"; depends=[robustbase sgeostat]; };
   mvp = derive2 { name="mvp"; version="1.0-12"; sha256="135v24hjg9zgnl6k27jvcgxflqhjrmdkp3p2nda3izfvlvxijr0h"; depends=[digest disordR magic magrittr mpoly partitions Rcpp]; };
+  mvpd = derive2 { name="mvpd"; version="0.0.2"; sha256="0xrrsq3b96cgcapam62nz80xm6hfmi2z9gbjbwww0mki0rvfscha"; depends=[cubature libstableR Matrix matrixStats mvtnorm stabledist]; };
   mvprpb = derive2 { name="mvprpb"; version="1.0.4"; sha256="1kcjynz9s7vrvcgjb9sbqv7g50yiymbpkpg6ci34wznd33f7nrxm"; depends=[]; };
   mvrsquared = derive2 { name="mvrsquared"; version="0.1.2"; sha256="1x9ck55b5fiakvbn2nr3h75ksawjaijm2bg1xqavncl3cvlfqahl"; depends=[Matrix Rcpp RcppArmadillo RcppThread]; };
   mvrtn = derive2 { name="mvrtn"; version="1.0"; sha256="0k0k76wk5zq0cjydncsrb60rdhmb58mlf7zhclhaqmli1cy697k8"; depends=[]; };
@@ -13113,7 +13140,6 @@ in with self; {
   mvtnorm = derive2 { name="mvtnorm"; version="1.1-3"; sha256="0j14q2bkc14v35s5k03sw44zsssrd2qjljlwzj014qxs74hk0kpz"; depends=[]; };
   mvtsplot = derive2 { name="mvtsplot"; version="1.0-1"; sha256="0g5grrha77rsnkfasw5pxnpmkl7vgb728ms8apyg8xnbmgilg9vv"; depends=[RColorBrewer]; };
   mwTensor = derive2 { name="mwTensor"; version="0.99.5"; sha256="11zn2g1gxl1x6ci3wqkr7a37jwc4rdcbgdagy5gf3jgkmmr5an3w"; depends=[ccTensor ica igraph MASS nnTensor rTensor]; };
-  mwa = derive2 { name="mwa"; version="0.4.3"; sha256="100d3c1070ir64iv848kws5fna141gcq5p66ip873cr632a042qs"; depends=[cem MASS rJava]; };
   mwcsr = derive2 { name="mwcsr"; version="0.1.2"; sha256="1s7l3id3yashmscdd1kdcw1i4agpd6z12c7wxj18h3g2c82s7ad6"; depends=[igraph Rcpp]; };
   mwshiny = derive2 { name="mwshiny"; version="2.1.0"; sha256="0c1a0d9qnaszffhzanmk31mdxqi7j3rn6bk7a3dwg4bq1da3rlgl"; depends=[htmltools shiny]; };
   mxkssd = derive2 { name="mxkssd"; version="1.2"; sha256="19zz5y5gz84a7qicaj3v2j6l558vr6w8lcy67b3kmkq64mnnirda"; depends=[]; };
@@ -13148,7 +13174,7 @@ in with self; {
   nametagger = derive2 { name="nametagger"; version="0.1.1"; sha256="17g8y7x83p1pkgj5hgildndchxsp70va25h93p7r1yjllm56zqv8"; depends=[Rcpp]; };
   nandb = derive2 { name="nandb"; version="2.1.0"; sha256="1rbn4nibjzvwpccpmqn84w9a167f1avyl18kjlapy5dhafvixgbz"; depends=[assertthat autothresholdr BBmisc checkmate detrendr dplyr filesstrings ggplot2 glue ijtiff magrittr purrr Rcpp reshape2 rlang stringr viridis withr]; };
   naniar = derive2 { name="naniar"; version="0.6.1"; sha256="0l3l2x85v3srilww483kpgp4zlwixyml257b0cqly8kcpwawlinm"; depends=[dplyr forcats ggplot2 glue magrittr norm purrr rlang tibble tidyr UpSetR viridis visdat]; };
-  nanonext = derive2 { name="nanonext"; version="0.2.0"; sha256="04r119v74i1wymhdyjjcdybjvd7i5fhx8n8zq233iq7rrszcr8cd"; depends=[]; };
+  nanonext = derive2 { name="nanonext"; version="0.3.0"; sha256="1hs0rw9lz4yry39pcq4fp9h5kqk0apqhgwahc2ww3gkhshwkck60"; depends=[]; };
   nanop = derive2 { name="nanop"; version="2.0-6"; sha256="007gdc93pk0vpfmsw7zgfma2k1045n2cxwwsyy276smy0ys9fdhp"; depends=[distrEx rgl]; };
   nanostringr = derive2 { name="nanostringr"; version="0.2.0"; sha256="13rcc33zfqlx8m5bmr5hh87gp0g5wlg2cwlj1683kw9adj2y3fdf"; depends=[assertthat ccaPP dplyr epiR magrittr purrr rlang]; };
   nanotime = derive2 { name="nanotime"; version="0.3.6"; sha256="1pv8hlw76n7qqrmw9lirjgg0zlp7ffy367ndca3sra8wn5f1lxfz"; depends=[bit64 Rcpp RcppCCTZ RcppDate zoo]; };
@@ -13159,7 +13185,7 @@ in with self; {
   nasapower = derive2 { name="nasapower"; version="4.0.6"; sha256="0pz0v4waipd52saq92fws1xlh3fcal1q4dpcdspnp78n6z3nsxjc"; depends=[crul jsonlite lubridate readr tibble]; };
   nasaweather = derive2 { name="nasaweather"; version="0.1"; sha256="05pqrsf2vmkzc7l4jvvqbi8wf9f46854y73q2gilag62s85vm9xb"; depends=[]; };
   naspaclust = derive2 { name="naspaclust"; version="0.2.1"; sha256="1p4ilv2z5140h4kdix2w1v32vz1n8v33wq0fhc8n8mi7baknhd1i"; depends=[beepr rdist Rdpack stabledist]; };
-  nat = derive2 { name="nat"; version="1.8.18"; sha256="0sbyd16109nbi20fk4fwjz0p9hva8pbn370a60wjwjgn9jd90b90"; depends=[digest filehash igraph nabor nat_utils plyr rgl yaml]; };
+  nat = derive2 { name="nat"; version="1.8.19"; sha256="10w7y7n8kx34z6p0nhar60n9cjp9y69kh77zi9izkmafx0m9qn64"; depends=[digest filehash igraph nabor nat_utils plyr rgl yaml]; };
   nat_nblast = derive2 { name="nat.nblast"; version="1.6.5"; sha256="0fp01rrvz7n84sdmfhi0wzd9mvg7wi682l4qg5dj82cm98v80l3p"; depends=[dendroextras nabor nat plyr rgl spam]; };
   nat_templatebrains = derive2 { name="nat.templatebrains"; version="1.0"; sha256="0bjib2brsq389b1rlznhwd81y9awk9qz57s4z5ai45gnsc7cfcgw"; depends=[digest igraph memoise nat rappdirs rgl]; };
   nat_utils = derive2 { name="nat.utils"; version="0.5.1"; sha256="12g87ar795xfbz7wljksb24x9hqvcirjr50y4mbpx1427r0l7clv"; depends=[]; };
@@ -13175,7 +13201,7 @@ in with self; {
   nbTransmission = derive2 { name="nbTransmission"; version="1.1.2"; sha256="0vaj2zfyvm2vm1ly1419ysxxrqkv73802n96ifajknh1pair31zk"; depends=[caret dplyr lubridate poisbinom rlang tidyr]; };
   nbapalettes = derive2 { name="nbapalettes"; version="0.1.0"; sha256="1wrh2qcm90fcybhcc8wvs2s4a4z8y3mrhc28dvrkwynqwzsbalzs"; depends=[dplyr]; };
   nbconvertR = derive2 { name="nbconvertR"; version="1.3.2"; sha256="0yhmz177r1miain65vspclahhz8cg7638ldbpsw8ylgf7a60l0sg"; depends=[]; };
-  nberwp = derive2 { name="nberwp"; version="1.1.0"; sha256="0wy3n8p16l7x2hf35k3r7apxm72k38nmc407vh883jg5fci41ljn"; depends=[]; };
+  nberwp = derive2 { name="nberwp"; version="1.2.0"; sha256="0v1y51rmm0h3w0v5y97wprhdhyc14r4iprdpkmdh8q9ajj1ds1c0"; depends=[]; };
   nbfar = derive2 { name="nbfar"; version="0.1"; sha256="1gr9q83ff950x2lcyv9apsnjah4kpi8805mci9m0s3gvr7llpjq4"; depends=[glmnet magrittr MASS mpath Rcpp RcppArmadillo RcppParallel rrpack]; };
   nbody = derive2 { name="nbody"; version="1.31"; sha256="0a5lqpbmb4gqb4mgp9hqc2fz92x9aaiqfqas1xxry7jvjngby30n"; depends=[magicaxis Rcpp]; };
   nbpMatching = derive2 { name="nbpMatching"; version="1.5.1"; sha256="0f90k9vq05gkc0sgywb98frig63df0ih4z41dq7m2inx1zk5rqns"; depends=[Hmisc MASS]; };
@@ -13207,6 +13233,7 @@ in with self; {
   needs = derive2 { name="needs"; version="0.0.3"; sha256="16dkjpijz3rz7kd5ggxsdg55iwd42nll1vk6g5ix4xdbqrx6cp9x"; depends=[]; };
   needy = derive2 { name="needy"; version="0.2"; sha256="1ixgpnwrg6ph1n5vy91qhl1mqirli9586nzkmfvzjrhdvrm0j5l0"; depends=[]; };
   negenes = derive2 { name="negenes"; version="1.0-12"; sha256="0b82822vl86gni0pv5f6pjfzmks35i7q2rqkhgyb9z9c677g991q"; depends=[]; };
+  negligible = derive2 { name="negligible"; version="0.1.0"; sha256="183rcrv7b33qglhqm2bl2whzwiwh6rikw9vsj03lgqjvjaa22s5h"; depends=[DescTools dplyr ggplot2 lavaan nptest WRS2]; };
   neighbr = derive2 { name="neighbr"; version="1.0.3"; sha256="1rmglfjmx6bfd4w1cpx4rvp7hy2vqvcamy854h5dq0l3kwk4pjcm"; depends=[]; };
   neldermead = derive2 { name="neldermead"; version="1.0-12"; sha256="0ws2knrq3b3icv6fzimypzwvzvqf0sayi2ndhacn6lk4snms5pm3"; depends=[optimbase optimsimplex]; };
   neo2R = derive2 { name="neo2R"; version="2.1.0"; sha256="1fhi74d4730pxrmv1p2gz8ylvnilxn4l837nha6ndyhy00xfgkk6"; depends=[base64enc jsonlite RCurl]; };
@@ -13216,7 +13243,7 @@ in with self; {
   neonstore = derive2 { name="neonstore"; version="0.4.4"; sha256="0fhjm6513kd4y3lry8dwcwk13ns92yk5h3san7ww2ahhdhy4hx9c"; depends=[DBI duckdb httr progress R_utils thor vroom zip]; };
   neotoma = derive2 { name="neotoma"; version="1.7.4"; sha256="1fknzp7qg5l5lkfvqfld0x67zj3xmi8vivsg70m47mbpcs92hmcf"; depends=[analogue dplyr httr jsonlite leaflet plyr reshape2 xml2]; };
   nephro = derive2 { name="nephro"; version="1.2"; sha256="1izmzx8lah322xzb42asfnrvr2c9yqd0zf7fmrhwd3p4rr1rqa7d"; depends=[]; };
-  neptune = derive2 { name="neptune"; version="0.2.1"; sha256="1lnrhld77rq3s01fx4168a9ixmyxinpc32m0yyvzz5wk7bkx928s"; depends=[ggplot2 htmlwidgets plotly reticulate rstudioapi this_path]; };
+  neptune = derive2 { name="neptune"; version="0.2.2"; sha256="01ac0ph4jh6lcv5502xbzhka537bwiszvkyb06q18ls0b5pcgrar"; depends=[ggplot2 htmlwidgets plotly reticulate rstudioapi this_path]; };
   nesRdata = derive2 { name="nesRdata"; version="0.3.1"; sha256="1lxvg11g8nizfn8sghirq2749fs9i4w1wiaz3v1djqbkzqcqfrcj"; depends=[dataone dplyr purrr rappdirs readr]; };
   nestfs = derive2 { name="nestfs"; version="1.0.1"; sha256="1y10plfiyv5ws4xpmwgvm77kp07525zv02rza08xm8qhyq4f64zc"; depends=[dgof pROC]; };
   nestr = derive2 { name="nestr"; version="0.1.2"; sha256="0qgd1sl6x5y70r3l4vf0qqynlrkdyq7mmpb8mwjn7f1hjnym1gaj"; depends=[magrittr rlang tidyselect vctrs]; };
@@ -13235,7 +13262,7 @@ in with self; {
   netgwas = derive2 { name="netgwas"; version="1.13"; sha256="156axkl61z0s3zm8plkcc3s46x0881mqnk94azl3p0nphblhmhcv"; depends=[glasso huge igraph MASS Matrix qtl RBGL tmvtnorm]; };
   netie = derive2 { name="netie"; version="1.0"; sha256="0ja59rfg576z8rbv073aaab32qazlrqhvyvxpssibwsvbfcrhklm"; depends=[]; };
   netjack = derive2 { name="netjack"; version="1.2.0"; sha256="060ygb0kxi0gx1ya38cmf5hhyy6jkwq5519azdqhq5i324cwzzm7"; depends=[brainGraph ggplot2 igraph Rdpack]; };
-  netmap = derive2 { name="netmap"; version="0.1.0"; sha256="07rrfvqmlp8srxam70ajwdwdm5bk49zhngsl1yzh8an303la6rfc"; depends=[ggnetwork igraph network rlang sf sna]; };
+  netmap = derive2 { name="netmap"; version="0.1.1"; sha256="0cqfxpn3pcbh56a26azxzm896g1m0z289870gb79n5nz69wm7dci"; depends=[ggnetwork igraph network rlang sf sna]; };
   netmeta = derive2 { name="netmeta"; version="2.1-0"; sha256="0m0jv0cmg6dkyssw4qk19fqqdqqdsrdq9q0sj8fdi9rr41kmvakx"; depends=[ggplot2 magic MASS meta metafor]; };
   netmhc2pan = derive2 { name="netmhc2pan"; version="1.3.1"; sha256="0q98rar7iglwxmf1274wrjcr7kp544ayrjhd286x68jmf51cqyrg"; depends=[assertive devtools dplyr rappdirs readr seqinr stringr testit tibble]; };
   netplot = derive2 { name="netplot"; version="0.1-1"; sha256="11s6gcxcwbnd5x3sb4ryi4ks1bsbf7ylgc0yrygv58ipisxb2780"; depends=[igraph network sna]; };
@@ -13249,12 +13276,13 @@ in with self; {
   network = derive2 { name="network"; version="1.17.1"; sha256="19q563v5xfkbmr0ws9nhqx4wrxkf9jsck51rqc8mm2gq2h03lg7w"; depends=[magrittr statnet_common tibble]; };
   networkABC = derive2 { name="networkABC"; version="0.8-0"; sha256="1vbabnkc8yvrxzrnaxj2v92620q1922hbcqbf1z3lmar5dbkql7f"; depends=[network RColorBrewer sna]; };
   networkD3 = derive2 { name="networkD3"; version="0.4"; sha256="02wxki67drppgfka1is1ykg1f2rxf0x0657c0crj7ipfy62jbf1k"; depends=[htmlwidgets igraph magrittr]; };
-  networkDynamic = derive2 { name="networkDynamic"; version="0.11.0"; sha256="1lns4wnmkr0g4nnp9lbrzcgibvpm6rhgpbcligh24p77vjnwl8da"; depends=[network statnet_common]; };
+  networkDynamic = derive2 { name="networkDynamic"; version="0.11.1"; sha256="0zvkqafv28shv8zv7vsirq2wyrlq0fz45r715358iwgd7zxc9fvv"; depends=[network statnet_common]; };
   networkDynamicData = derive2 { name="networkDynamicData"; version="0.2.1"; sha256="176al8jp0gha6yzhyn5flmyackmmdnh1h8sasqrdcmba7ha7cya6"; depends=[network networkDynamic]; };
   networkGen = derive2 { name="networkGen"; version="0.1.1"; sha256="1vnh5dajiaf47kx1sxyp744mlk3yvl4sxj380i3b3ic1wlgyd2h1"; depends=[igraph mgcv]; };
   networkR = derive2 { name="networkR"; version="0.1.2"; sha256="07dq3syk0hr1kc2mqd70g0ih09hamd7rxxms60dyvnpm8978c1wz"; depends=[data_table fastmatch Matrix Rcpp RcppArmadillo]; };
   networkTomography = derive2 { name="networkTomography"; version="0.3"; sha256="1hd7av231zz0d2f9ql5p6c95k7dj62hp0shdfshmyfjh8900amw7"; depends=[coda igraph KFAS limSolve plyr Rglpk]; };
   networkreporting = derive2 { name="networkreporting"; version="0.1.1"; sha256="1ssbz8lw4mlwcblwfbyffvayvb2gmihq4qlz5q9222fn4aa3raxd"; depends=[dplyr functional ggplot2 lazyeval plyr reshape2 stringr surveybootstrap]; };
+  networkscaleup = derive2 { name="networkscaleup"; version="0.1-1"; sha256="02ywmmj95xlgdavs81m0gbzyfwf9ac2wrbfwq2kcxgc0la4aimvc"; depends=[BH LaplacesDemon Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
   networksis = derive2 { name="networksis"; version="2.1-3"; sha256="1kvil3qs7xd94ak9jgvj1nss55gjg0y7d35zmass9h1hjkcrq7bg"; depends=[network]; };
   networktools = derive2 { name="networktools"; version="1.4.0"; sha256="0lc8cfz7sydqi43qvv35vync38ml4gsc79dq5yyqzs5my3lbj5df"; depends=[cocor eigenmodel ggplot2 gridExtra igraph IsingFit NetworkComparisonTest nnet psych qgraph R_utils RColorBrewer reshape2 smacof wordcloud]; };
   networktree = derive2 { name="networktree"; version="1.0.1"; sha256="0hkrqpx7b6sxalw1qyrncck70mx6p5gr57mf558l5mlqi52v7hg0"; depends=[Formula gridBase Matrix mvtnorm partykit qgraph reshape2]; };
@@ -13277,16 +13305,16 @@ in with self; {
   newscatcheR = derive2 { name="newscatcheR"; version="0.1.0"; sha256="0rm91dfzfjhi51gk65gvq2z7aywg6y8ay3hrjnp6frlmyvh661sp"; depends=[tidyRSS]; };
   newsmap = derive2 { name="newsmap"; version="0.7.4"; sha256="1k7jbfz3hrpy8z3zfn0gcm9fzmfiaf3qkx1m89c5q072zpdpiajn"; depends=[Matrix quanteda quanteda_textstats stringi]; };
   newsmd = derive2 { name="newsmd"; version="0.4.0"; sha256="1pzsblkvs374nc6795llm9lbqj5z410g1mgr3q4fgpm0398zmsrv"; depends=[R6]; };
-  nfer = derive2 { name="nfer"; version="1.0.1"; sha256="1dbvadpfgwanfdc9kvm620r5nj7l9kvbbhfcg80z5jbdn38jgh3r"; depends=[]; };
+  nfer = derive2 { name="nfer"; version="1.1.0"; sha256="0kl7yks8m7ylm3vlmffjy1fgjchf4pym49jgpnq9jbkysvvbxpb0"; depends=[]; };
   nfl4th = derive2 { name="nfl4th"; version="1.0.1"; sha256="11hk9446ckhg46dzkbvd12n6k02m6qx265spwqdm23xpncamjlkk"; depends=[dplyr glue httr janitor jsonlite magrittr mgcv nflfastR nflreadr purrr stringr tibble tidyr tidyselect xgboost]; };
   nflfastR = derive2 { name="nflfastR"; version="4.3.0"; sha256="1vg27m51q01m6rypaksr5dw7qg3i638dypm31v5gimbdkjmgs2j7"; depends=[cli curl dplyr fastrmodels furrr future glue janitor lifecycle mgcv nflreadr progressr rlang stringr tibble tidyr tidyselect xgboost]; };
-  nflplotR = derive2 { name="nflplotR"; version="1.0.0"; sha256="0jcj3jv7qsjn7nxs9rycqc039rcx69nznfv2adg4xv4ybw0s1q6s"; depends=[cli ggplot2 magick magrittr nflreadr rlang scales]; };
-  nflreadr = derive2 { name="nflreadr"; version="1.1.3"; sha256="1wif90lngvpzj36s7r1frchi50qksbsjscy156n740x2f3by9zjx"; depends=[cachem cli curl data_table glue memoise qs rappdirs Rcpp RcppParallel rlang]; };
+  nflplotR = derive2 { name="nflplotR"; version="1.0.1"; sha256="139cbhwb6g82sq479rpl12fy3hvl7j5klkqp4mgnhpx8xmangmka"; depends=[cli ggplot2 magick magrittr nflreadr rlang scales]; };
+  nflreadr = derive2 { name="nflreadr"; version="1.2.0"; sha256="0drhc747m4fjvlkjzih1mw8c2vsr882lfg3747lzi4a0whc4rif5"; depends=[cachem cli curl data_table glue memoise qs rappdirs Rcpp RcppParallel rlang]; };
   nflseedR = derive2 { name="nflseedR"; version="1.0.2"; sha256="061jd3mr06mxs5riwlph3a1hsk5jypws71jy9jzhhqnijdy96bki"; depends=[cli crayon curl dplyr furrr future glue gsubfn magrittr progressr purrr readr rlang tibble tidyr]; };
   nflverse = derive2 { name="nflverse"; version="1.0.1"; sha256="1miacjvfl3968m54d6b5qgs7y3w6qw49nw96qxdwb2175gwhbl51"; depends=[cli crayon magrittr nfl4th nflfastR nflplotR nflreadr nflseedR rlang rstudioapi]; };
-  nftbart = derive2 { name="nftbart"; version="1.2"; sha256="18yca2qg6d2960yvnplf70a7kd61qhmp42rd3alhg901a8py6qk5"; depends=[nnet Rcpp survival]; };
+  nftbart = derive2 { name="nftbart"; version="1.3"; sha256="0mg1ysl1mpb3l6j5sbvy3ln2abjrsqig5bqb716sham6p12szlip"; depends=[nnet Rcpp survival]; };
   ngboostForecast = derive2 { name="ngboostForecast"; version="0.0.2"; sha256="1jh3acr2asc8ih7kv05z4n7ialvvbkg61w01n9avvvgjw9ifsf4x"; depends=[dplyr forecast magrittr R6 reticulate]; };
-  ngram = derive2 { name="ngram"; version="3.2.0"; sha256="1g57md4s73qpxzqxr8sgzvbkx3y4zmw4hfq6zsysnw4h2dbqxm1l"; depends=[]; };
+  ngram = derive2 { name="ngram"; version="3.2.1"; sha256="1zjp5gn82b733a0glqrpvm1rqmqk0apni9fbm0jszbnc3y9h478z"; depends=[]; };
   ngramr = derive2 { name="ngramr"; version="1.7.5"; sha256="1zs6ninvhz6lavxnp59105wy0n0j839ps6yaaz21s42xk11lfp1k"; depends=[cli dplyr ggplot2 httr lifecycle RCurl rjson rlang scales stringr textutils tibble tidyr xml2]; };
   ngramrr = derive2 { name="ngramrr"; version="0.2.0"; sha256="1p8s4p3h27g647rxx9qjfad5dzbngjbmvhw4gz0jbsmfqrsf72by"; depends=[tau tm]; };
   ngspatial = derive2 { name="ngspatial"; version="1.2-2"; sha256="09hdvmbna4m62zv18k5kj9718wzw7p43wnal2j6aa0m5sd2rx9rz"; depends=[batchmeans Rcpp RcppArmadillo]; };
@@ -13328,11 +13356,11 @@ in with self; {
   nleqslv = derive2 { name="nleqslv"; version="3.3.2"; sha256="1v9znvncyigw9r25wx2ma0b7ib179b488dl0qsrhp5zrcz7mcjgm"; depends=[]; };
   nlirms = derive2 { name="nlirms"; version="3.4.4"; sha256="1njyfip377a0f6hf9y32s077b4jv4h8ydbjgnl68yfypxbfn2xyx"; depends=[gridExtra gtable]; };
   nlist = derive2 { name="nlist"; version="0.3.3"; sha256="1wq7bp834c7cl37wbrgd9ars3mm0s5c3l3fxlrry728a27c27f9h"; depends=[abind chk coda extras generics lifecycle purrr term tibble universals]; };
-  nlme = derive2 { name="nlme"; version="3.1-155"; sha256="0kzzpl63l298yy18x62ypgbhdw61fgm30lc4nlhjjhjj5220yfcz"; depends=[lattice]; };
+  nlme = derive2 { name="nlme"; version="3.1-157"; sha256="0v6rw6d7mk1szi5bgs5m91k76hgwcb7r704xaypvlv6bkmra5wnx"; depends=[lattice]; };
   nlmeODE = derive2 { name="nlmeODE"; version="1.1"; sha256="1zp1p98mzbfxidl87yrj2i9m21zlfp622dfnmyg8f2pyijhhn0y2"; depends=[deSolve lattice nlme]; };
   nlmeU = derive2 { name="nlmeU"; version="0.70-3"; sha256="05kxymgybziiijpb17bhcd9aq4awmp5km67l2py9ypakivi0hc6l"; depends=[nlme]; };
   nlmeVPC = derive2 { name="nlmeVPC"; version="2.2"; sha256="0dkj0l0rkml6nydg3k04dzcp17sn59p3hnaqmnqa0arbzv0rsq8i"; depends=[dplyr ggplot2 Hmisc magrittr optimx plyr quantreg Rcpp RcppArmadillo tidyr timeDate]; };
-  nlmixr = derive2 { name="nlmixr"; version="2.0.6"; sha256="18vlqny31im7402h10y7hqq31bki8rxj0x2z0wazk865prpab5k9"; depends=[backports BH brew dparser fastGHQuad ggplot2 lbfgsb3c magrittr Matrix minqa n1qn1 nlme Rcpp RcppArmadillo RcppEigen rex RxODE StanHeaders symengine]; };
+  nlmixr = derive2 { name="nlmixr"; version="2.0.7"; sha256="1fqshr8y9rrkbnvcrpk0m12gimd1m0lrc2cl8x1x78hnhfs4dvlb"; depends=[backports BH brew dparser fastGHQuad ggplot2 lbfgsb3c magrittr Matrix minqa n1qn1 nlme Rcpp RcppArmadillo RcppEigen rex RxODE StanHeaders symengine]; };
   nlmm = derive2 { name="nlmm"; version="1.0.1"; sha256="0q5vz4xqdb510i26zbcq4djcribn7h477akh8f56nzjgq231vhcq"; depends=[BH HI lqmm MASS Matrix mvtnorm nlme numDeriv Qtools Rcpp RcppArmadillo statmod]; };
   nlmrt = derive2 { name="nlmrt"; version="2016.3.2"; sha256="1g0qq0a933ay65gkp04qgn2wqk6vw79pj2a228c2ski4rcmkjxyn"; depends=[]; };
   nlnet = derive2 { name="nlnet"; version="1.4"; sha256="13lv4b6chsjrhimny3wc1y9ljgbxmm1byj4j04n4vj8icn87gyfd"; depends=[coin e1071 earth fdrtool igraph randomForest ROCR TSP]; };
@@ -13355,7 +13383,7 @@ in with self; {
   nlstac = derive2 { name="nlstac"; version="0.1.0"; sha256="0ag9zzzcadgwa43j16ff30r7g8jfihkwi76shv43igp52a11jr72"; depends=[Deriv doParallel foreach stringr]; };
   nlstools = derive2 { name="nlstools"; version="2.0-0"; sha256="07givljg4ynp56613bnyh5a6cf41h6ihsrwp073zwnxr0l9c5gqf"; depends=[]; };
   nlt = derive2 { name="nlt"; version="2.2-1"; sha256="10wf00qzf28dxjfvv12wsqxlfn6xz15wk8njrzgsgm9px1g6s21f"; depends=[adlift EbayesThresh]; };
-  nltm = derive2 { name="nltm"; version="1.4.2"; sha256="02f3rn5l1hfvjpymy7vljmh6iq9w1w96016kx75qw563zwhmp5kx"; depends=[survival]; };
+  nltm = derive2 { name="nltm"; version="1.4.3"; sha256="0k4bydc9d5k9dd1yzrk9glj54drlqqd8p2ggx75jhyw5shyl6471"; depends=[survival]; };
   nlts = derive2 { name="nlts"; version="1.0-2"; sha256="0s49qjwavl9ns2746nn4zy4h4dh0njfcvznm3qd61qhs7np9w1db"; depends=[acepack locfit]; };
   nmaINLA = derive2 { name="nmaINLA"; version="1.1.0"; sha256="1qjb5n1qr89rv2a5ay2p74cs3i6swkn8wllklgn57fnahb9pcrgi"; depends=[]; };
   nmadb = derive2 { name="nmadb"; version="1.2.0"; sha256="17r5vc57ilhy6cfcqpfyp9nzzjaa5gc8qkgfn3y8sppqh1g1mi40"; depends=[devtools jsonlite RCurl readxl]; };
@@ -13406,7 +13434,7 @@ in with self; {
   noncomplyR = derive2 { name="noncomplyR"; version="1.0"; sha256="1a9m6r9cizw42nmy24jdsrsbllg5z84fs8b239axnh1fxzskg2qy"; depends=[MCMCpack]; };
   nonet = derive2 { name="nonet"; version="0.4.0"; sha256="1043vplj8libbzll172h82dfwnz2lsdba5na2g9liryg8p08h4v8"; depends=[caret dplyr e1071 ggplot2 glmnet pROC purrr randomForest rlang rlist tidyverse]; };
   nonlinearICP = derive2 { name="nonlinearICP"; version="0.1.2.1"; sha256="1m9a1f0yrbjl0nx2l7r76pyi78b2bxj8v4jx92yga91f975mw6np"; depends=[caTools CondIndTests data_tree randomForest]; };
-  nonlinearTseries = derive2 { name="nonlinearTseries"; version="0.2.11"; sha256="0p7lf6zs8wicfsh85wrbgngqa6a9dfkajz82ng98s2n6y0bdrxhs"; depends=[lifecycle Matrix Rcpp RcppArmadillo tseries zoo]; };
+  nonlinearTseries = derive2 { name="nonlinearTseries"; version="0.2.12"; sha256="0fdyr7a5pac40wrrn6frj0q8pn03dic5a2rls3zr85yj48mimyfs"; depends=[lifecycle Matrix Rcpp RcppArmadillo tseries zoo]; };
   nonmem2R = derive2 { name="nonmem2R"; version="0.2.3"; sha256="1x8mq0wwzn3px41pjbzwmpd8wjfq581lwq4nkiva7pf1xzjpk923"; depends=[ggplot2 gridExtra lattice latticeExtra MASS mvtnorm reshape2 splines2]; };
   nonmemica = derive2 { name="nonmemica"; version="0.9.7"; sha256="12760lvbifzakzq7wjzqavqicrp2pzyq333glmafm9v73lx97pa7"; depends=[csv dplyr encode lazyeval magrittr metaplot rlang spec tidyr xml2]; };
   nonneg_cg = derive2 { name="nonneg.cg"; version="0.1.6-1"; sha256="1ppwv5yad8v7qhjr4z5p5vl51ry3sxqbmg0ynkx11j67byggn6xf"; depends=[Rcpp]; };
@@ -13420,7 +13448,7 @@ in with self; {
   nord = derive2 { name="nord"; version="1.0.0"; sha256="1gisqca85vzbqq5hs5bgqjgrjyksxj176x97kv9vv6mwll8kijl9"; depends=[ggplot2]; };
   nordklimdata1 = derive2 { name="nordklimdata1"; version="1.2"; sha256="0c2hbh3qy8nrs275lxpzfgqsfgwp81m4kv0layvnjj09fcybm54x"; depends=[]; };
   norgeo = derive2 { name="norgeo"; version="2.1.0"; sha256="1qvcv63pwbsprxaw3nb5qbsr7fwphf62c7fgd5lvjbnnwgqbmnx8"; depends=[data_table DBI httr jsonlite magrittr odbc progressr RSQLite vcr writexl]; };
-  norm = derive2 { name="norm"; version="1.0-9.5"; sha256="01j1h412yfjx5r4dd0w8rhlf55997spgb6zd6pawy19rgw0byp1h"; depends=[]; };
+  norm = derive2 { name="norm"; version="1.0-10.0"; sha256="1iqcsa7mj9ahnkbsri0cf2wlhh2bv86vwsh3iwihh42cywd7k123"; depends=[]; };
   norm2 = derive2 { name="norm2"; version="2.0.4"; sha256="0ahz6x59k00pqalzjc3ajiby1ysmarjssga9amwh9vd6vmzzyfb7"; depends=[]; };
   normalp = derive2 { name="normalp"; version="0.7.2"; sha256="0fqpz6v9v3xjmyh7mh2yvkjdn3v4d0nk93x7s0gj28kazl7137kz"; depends=[]; };
   normalr = derive2 { name="normalr"; version="1.0.0"; sha256="1ahrg188vbhnrnwag0zi6lcb3g0y1mbz06sl3j1wyllq5l918cc7"; depends=[magrittr MASS purrr rlang shiny]; };
@@ -13467,7 +13495,7 @@ in with self; {
   nppbib = derive2 { name="nppbib"; version="1.2-0"; sha256="1nn6wf89jhr3gy4rcd6px0cd5b1bsr7pbaxng4adba8n3yrss7vs"; depends=[]; };
   npphen = derive2 { name="npphen"; version="1.1.1"; sha256="0xfsi6y4233gwslrh86chfpc71fdp5pfh4v9c9qcjqaib9hxvixn"; depends=[ks lubridate raster rgdal snow]; };
   nprcgenekeepr = derive2 { name="nprcgenekeepr"; version="1.0.5"; sha256="1j6pfc694yf1m42a0fhlbh5wdbmgs61fswbw7083h69d2sr2zq05"; depends=[anytime futile_logger htmlTable lubridate Matrix plotrix readxl Rlabkey rlang shiny stringi WriteXLS]; };
-  npreg = derive2 { name="npreg"; version="1.0-7"; sha256="1gr3nbzwa88favbfg9s3053s0jybblfbmhllfjc1a6p32s2p3yax"; depends=[]; };
+  npreg = derive2 { name="npreg"; version="1.0-8"; sha256="10f8idrpwlid4zdzn6ydffzyblbcqg08bkjlpi1msfcgkrg8m9xh"; depends=[]; };
   npregderiv = derive2 { name="npregderiv"; version="1.0"; sha256="1k873cs3rs15l13z8017n4anacandx7di6yk1zlamcc5p3vlh59n"; depends=[]; };
   npregfast = derive2 { name="npregfast"; version="1.5.1"; sha256="0s9ci3nybzwykrgi9z2rqp6l15mqbxf759ks0clvkbm7wxv3whk5"; depends=[doParallel foreach ggplot2 mgcv sfsmisc shiny shinyjs wesanderson]; };
   nprobust = derive2 { name="nprobust"; version="0.4.0"; sha256="1vry64r3xms6xls6bqq918prjyhs5svhl2yjvq0jxycaaqw2sgyp"; depends=[ggplot2 Rcpp RcppArmadillo]; };
@@ -13529,7 +13557,7 @@ in with self; {
   obAnalytics = derive2 { name="obAnalytics"; version="0.1.1"; sha256="1l4ld120qk0adycmvqrkzada10kb7z03lj2njzqagmacl1z8598f"; depends=[ggplot2 reshape2 zoo]; };
   obfuscatoR = derive2 { name="obfuscatoR"; version="0.2.1"; sha256="1pnlbfsp5fjvhwn2yl495v38g1wjg5l4ry79i1a2jznq2l91hn4p"; depends=[crayon matrixStats readr Rfast stringr tibble]; };
   objectProperties = derive2 { name="objectProperties"; version="0.6.7"; sha256="1gsxbps528kmg5md9q26yfjz7p50h0k81dpfwklvsh6x0mwmranb"; depends=[objectSignals]; };
-  objectSignals = derive2 { name="objectSignals"; version="0.10.2"; sha256="1rcgfq1i3nz2q93vv4l069f3mli1c6fd5dhhhw1p7cc4sy81008w"; depends=[]; };
+  objectSignals = derive2 { name="objectSignals"; version="0.10.3"; sha256="087hknxhw3zqxrzdazbqw9zxi01dvrzcgm6k1i7r231vvvm6nxid"; depends=[]; };
   objectremover = derive2 { name="objectremover"; version="0.8.1"; sha256="0qywigwb6r5lzvw8ylgriwignk4ayfkvfnmc6cb1yxsg0hrc4hiv"; depends=[miniUI shiny]; };
   obliqueRF = derive2 { name="obliqueRF"; version="0.3"; sha256="1bwlgv820mmpc6vg26bsdlfy2p78586i3y42hkzbw3z1fmwq3pz5"; depends=[e1071 mda pls ROCR]; };
   obliqueRSF = derive2 { name="obliqueRSF"; version="0.1.1"; sha256="1picy19mrgycfxpng5qqk7q5im3m2apx8w4jxmkslpmgg1c5q2ly"; depends=[data_table dplyr ggplot2 ggthemes glmnet missForest pec prodlim purrr Rcpp RcppArmadillo rlang scales survival tidyr]; };
@@ -13537,20 +13565,20 @@ in with self; {
   obsSens = derive2 { name="obsSens"; version="1.3"; sha256="1vfm1mzsycwkqa39vf3fcdv1s6adps9hw1rxlvl8v9kq746hcabw"; depends=[]; };
   observer = derive2 { name="observer"; version="0.1.2"; sha256="1027827k57qb4xppx0xxxffd1s3n7pz754irdx3v1v3piix8xi8m"; depends=[bazar bit dplyr lazyeval magrittr tibble]; };
   occ = derive2 { name="occ"; version="1.1"; sha256="1aka29qqwbd494kvi15yyyqkb9hks4ky2gcvykxhx2drm2fnsn4g"; depends=[]; };
-  occCite = derive2 { name="occCite"; version="0.5.2"; sha256="0v0zjnjxd2swj5m1vaclajfrf9jgqyvpnfkzzcg7hjl6f870b368"; depends=[bib2df BIEN curl DBI dplyr ggplot2 htmltools httr leaflet lubridate RColorBrewer rgbif rlang RPostgreSQL stringr taxize tidyr viridis waffle]; };
+  occCite = derive2 { name="occCite"; version="0.5.4"; sha256="1widn654zjdypsr7lc1gi9p9ad16yrj32m00nqnzcrq176g4f4pa"; depends=[bib2df BIEN curl DBI dplyr ggplot2 htmltools httr leaflet lubridate RColorBrewer rgbif rlang RPostgreSQL stringr taxize tidyr viridis waffle]; };
   occupancy = derive2 { name="occupancy"; version="1.2"; sha256="0j50vg1405n1hp72xqsq1hp3gdbfx5yq9w1zdv6dzjc6vjhbx00d"; depends=[matrixStats]; };
   ocd = derive2 { name="ocd"; version="1.1"; sha256="06pyc352pvn85k76z9797gwk0ksbb3snvh6krysp68k3lcygq872"; depends=[]; };
-  oce = derive2 { name="oce"; version="1.6-1"; sha256="1w0pbhki3z9qwaq6qgq3l4wr77yhs6xpd5fxpckw9ciwbj62v4ci"; depends=[gsw Rcpp]; };
-  oceanic = derive2 { name="oceanic"; version="0.1.2"; sha256="15pnq3sf1h75np3xjvi3yap76z4jcpj1djm6i6cn16dbdx5p9cv3"; depends=[broom ggplot2 maps rgdal rgeos sf sp spData]; };
+  oce = derive2 { name="oce"; version="1.7-2"; sha256="0gdjq5iplccnqp90jhcn0dsji5cvxcgba7yq55x9f6pinvbcn9nv"; depends=[gsw Rcpp]; };
+  oceanic = derive2 { name="oceanic"; version="0.1.3"; sha256="1bvi7v09b62x81bphpls99s8qjczzn8xxvv3frjjl56vzbrqi4j1"; depends=[broom ggplot2 maps rgdal rgeos sf sp spData]; };
   oceanis = derive2 { name="oceanis"; version="1.8.4"; sha256="0m0mhab74wnd9hm0im47c14m5mzsrvs61d07vikd8f1sly36h943"; depends=[classInt dplyr DT ggplot2 leaflet leaflet_extras lwgeom mapview sf shiny shinyBS shinyjs shinythemes stringr zip]; };
   oceanmap = derive2 { name="oceanmap"; version="0.1.1"; sha256="06h4yxqcn3rjr3m2n82w128z110a4k5rg6msrbd0gcqksxc4vd2v"; depends=[abind extrafont fields lubridate mapdata maps maptools ncdf4 plotrix raster sp]; };
   oceanwaves = derive2 { name="oceanwaves"; version="0.2.0"; sha256="1v4gj4ippv1l3r77z2ic19x5zi5lpsh5wihaqay3264zhpb3kv9a"; depends=[bspec ggplot2 signal]; };
-  ocedata = derive2 { name="ocedata"; version="0.1.8"; sha256="01m2pflk3zgqbqmv34w7mh8bs1lbpagdmhvhzji2j6p1fysvhqr1"; depends=[testthat]; };
+  ocedata = derive2 { name="ocedata"; version="0.2.0"; sha256="1jn3plrwy7d4i2iw6zglsqpzm04m0rxl26v91v682ych2hypb7sc"; depends=[]; };
   ockc = derive2 { name="ockc"; version="1.0"; sha256="0chzrs3ipa2518r4d35z4fxffgq12p1mwj0hzkxw19gdgq6aa8s7"; depends=[flexclust modeltools]; };
   oclust = derive2 { name="oclust"; version="0.1.0"; sha256="005ml6vhi9rw6js2v4f1dc2ci8kcd7iwrkgbs4c1qxc836ygq0yx"; depends=[entropy mclust]; };
   ocomposition = derive2 { name="ocomposition"; version="1.1"; sha256="0fk8ia95yjlvyvmjw7qg72piqa40kcqq9wlb3flc6a81pys1ycb5"; depends=[bayesm coda]; };
   ocp = derive2 { name="ocp"; version="0.1.1"; sha256="0q52s8j3z3xwnma3sxx6019qxid66bf0a43w4g8xjagplwps57dx"; depends=[]; };
-  ocs4R = derive2 { name="ocs4R"; version="0.2-2"; sha256="1b2f05yrxj3j6f6bvj3aqsv6szp5c6i5cwkfjbsrj1ncny2f53zj"; depends=[curl httr jsonlite keyring openssl R6 XML]; };
+  ocs4R = derive2 { name="ocs4R"; version="0.2-3"; sha256="09zl9jl1kzvyq0wccp41j32pr3as93qh250iaawhwkpcswjpyl89"; depends=[curl httr jsonlite keyring openssl R6 XML]; };
   od = derive2 { name="od"; version="0.3.1"; sha256="1fbx0w10wmd9f99kdigx4k21d8bsa8dfjzm9ibbf14z2908899ag"; depends=[sfheaders]; };
   odbc = derive2 { name="odbc"; version="1.3.3"; sha256="1a5npspq91ksqp99nxicmdrm1703jk0gd9x6gl12i2rqf4qvwgwa"; depends=[bit64 blob DBI hms Rcpp rlang]; };
   odds_converter = derive2 { name="odds.converter"; version="1.4.8"; sha256="09s8pg55gpsxmrbimzg5rsr1n07la93781sar6vab5p9zn9zxgx4"; depends=[]; };
@@ -13567,7 +13595,7 @@ in with self; {
   oenb = derive2 { name="oenb"; version="0.0.2"; sha256="1jgxw7ycx2lcdzglg9nix8k08fs4r6i5jdsjzrd6w1dg6smsinl5"; depends=[dplyr XML]; };
   ofGEM = derive2 { name="ofGEM"; version="1.0"; sha256="0xdkl8k12an9pdy6i5nay4m2iakrwsp0lr3zl8gphii75j0ywz7k"; depends=[CompQuadForm forestplot MASS]; };
   officedown = derive2 { name="officedown"; version="0.2.4"; sha256="0h2zd7dzg63chakxsdb9n1w3sz684p63r6g1fphh4jcdmsbs5z2n"; depends=[knitr memoise officer rlang rmarkdown rvg uuid xml2 yaml]; };
-  officer = derive2 { name="officer"; version="0.4.1"; sha256="1gfx299zr4q2264q37994pirv5bd5isn1cszccz603ij3q40wajr"; depends=[R6 uuid xml2 zip]; };
+  officer = derive2 { name="officer"; version="0.4.2"; sha256="0qmn62srh9zicgizyblanirbdva7f09g967yb86kfrn05ckh5y10"; depends=[R6 uuid xml2 zip]; };
   offlineChange = derive2 { name="offlineChange"; version="0.0.4"; sha256="005afrm4ki4zz3zkgrf8c1v9gf5cjhc5g50mjkqya3r8npaccwq2"; depends=[Rcpp]; };
   oglmx = derive2 { name="oglmx"; version="3.0.0.0"; sha256="13axmhbqhv4kkcdsdmp9r7p0d0kyqlsaqgyyllbkxlxb4hfz79b6"; depends=[maxLik]; };
   ohenery = derive2 { name="ohenery"; version="0.1.1"; sha256="0i7cc110c30y7dm86srh2xkikkmlr28mvy0kkjxywxmiwnrsmzjq"; depends=[dplyr magrittr maxLik Rcpp]; };
@@ -13577,6 +13605,7 @@ in with self; {
   ojsr = derive2 { name="ojsr"; version="0.1.2"; sha256="0nwdws9kqnya9qjc939b7ksrf7ri6d25zzcdxhyhabirhnrqdg7m"; depends=[dplyr magrittr purrr rlang rvest tidyr urltools xml2]; };
   okmesonet = derive2 { name="okmesonet"; version="0.1.5"; sha256="1kzyzmg702ayzphn9jsk64m51mlnz37ylxiwq5gsr23vaiida680"; depends=[plyr]; };
   olctools = derive2 { name="olctools"; version="0.3.0"; sha256="1gbchwynvmryarz32f24v56kj57h7x6nrrm878fkjkpq140cqwzz"; depends=[Rcpp]; };
+  ollg = derive2 { name="ollg"; version="1.0.0"; sha256="1xjfn3hlmmx65kphchhxqa9fx6qmkiyx24lp19si1y3v92wdv2i9"; depends=[]; };
   ollggamma = derive2 { name="ollggamma"; version="1.0.2"; sha256="1990hr9gww636xr4gkvc816hd0pc78nw3ypbzflkh5g3pmsn7bc2"; depends=[]; };
   olr = derive2 { name="olr"; version="1.1"; sha256="1l6m2gbglh8idy4k2q23qgfb7in1a6pnwiji1gbygfan6paw4xza"; depends=[plyr]; };
   olsrr = derive2 { name="olsrr"; version="0.5.3"; sha256="0rh1jb0z0ypspzcp4vbpzjz960yj76myk2j4zb1vi9gnnj3clw8y"; depends=[car data_table ggplot2 goftest gridExtra nortest Rcpp]; };
@@ -13605,11 +13634,10 @@ in with self; {
   onepass = derive2 { name="onepass"; version="0.1.2"; sha256="1r8wk00aqc0sc7l6mmy1k4hkijfikynysrx5vvahbd6mlcdb3bmp"; depends=[jsonlite]; };
   onewaytests = derive2 { name="onewaytests"; version="2.6"; sha256="05q2ir65x9pvsiim4l029hjhm12niiqjgk5rsx47i6vx23ffg8ir"; depends=[car ggplot2 moments nortest]; };
   onion = derive2 { name="onion"; version="1.5-0"; sha256="07q5wwphb6jsk7ya7hgsf5782yalvhyc7h43hsd9rg4rhpmy8in9"; depends=[emulator]; };
-  onlineBcp = derive2 { name="onlineBcp"; version="0.1.4"; sha256="0605hzmx42nd2ln4zv4kkhms6g8ffln3g4lnbpm93isgcxfxm3wg"; depends=[VIM]; };
+  onlineBcp = derive2 { name="onlineBcp"; version="0.1.5"; sha256="0sgc77wy6q7fgrvpn5izphg0wyfylp03mb5b1j8wwf6kpspf409q"; depends=[VIM]; };
   onlineCOV = derive2 { name="onlineCOV"; version="1.3"; sha256="04ikvsd76f6xhja7djyv433m88lfj2vf0y9qi6x1s4i9kh8xkbz9"; depends=[]; };
   onlinePCA = derive2 { name="onlinePCA"; version="1.3.1"; sha256="08qivsfnwz5vp089lv9czsaz3nfi42kn9yhgzf27dji18y2xscic"; depends=[Rcpp RcppArmadillo RSpectra]; };
   onlineVAR = derive2 { name="onlineVAR"; version="0.1-1"; sha256="01z2d91mbdjvwwiqjq1dbqp50jbc9v6d7nw4gs7d1abhsqyiqa13"; depends=[lattice]; };
-  onlineforecast = derive2 { name="onlineforecast"; version="1.0.0"; sha256="191rqfz9y6hpgb21k38v3051pv9w4hm35kyg2znv864c5s7bk5ma"; depends=[digest pbs R6 Rcpp RcppArmadillo]; };
   onlineretail = derive2 { name="onlineretail"; version="0.1.2"; sha256="0lid3g4v51c664304cxgjm209qxv88hqglv89frmj4afc0y6k7sc"; depends=[]; };
   onls = derive2 { name="onls"; version="0.1-1"; sha256="0m7pnlzkqwzi6jncjzxzfvznipd4wg03zd9fc0ymwm9jvhm4p14g"; depends=[minpack_lm]; };
   onnx = derive2 { name="onnx"; version="0.0.3"; sha256="1s0swrcff9v9ffbjkraahmb398gh2jrca2wf5k6gs8037frnl8wd"; depends=[reticulate]; };
@@ -13625,7 +13653,7 @@ in with self; {
   ooplah = derive2 { name="ooplah"; version="0.2.0"; sha256="1p74jh9g62yicrw0lhpbn0diqi2myl24z28kpd2b3mglyffadr0b"; depends=[R6]; };
   oops = derive2 { name="oops"; version="0.2.0"; sha256="0xg69riqphvsqqa953v4mlcakvl0invf29678nrljibg31n4wak5"; depends=[]; };
   opGMMassessment = derive2 { name="opGMMassessment"; version="0.3"; sha256="1y6g65y6r3l0p7dbw70w8lbp4c888llwd7ak9wliwin0a54y13lz"; depends=[AdaptGauss caTools cluster ClusterR DataVisualizations DistributionOptimization doParallel dplyr foreach ggplot2 mclust mixAK mixtools multimode NbClust rlang]; };
-  opa = derive2 { name="opa"; version="0.2.0"; sha256="05jqqqrrzv6mmhk78zjyryjy5lh693ywg1rnaanmxzbjmwikinrs"; depends=[assertthat combinat ggplot2 Rcpp]; };
+  opa = derive2 { name="opa"; version="0.3.6"; sha256="1xybfpb2dzh00a38jq5b81ajqyjp3nnjnlmxnlqgmp4vcy7q3ysn"; depends=[cpp11 ggplot2 Rcpp]; };
   opalr = derive2 { name="opalr"; version="3.0.2"; sha256="0nwa77l4d4zz3jxmfgm8h8k823lvcvjzbk3i6ahscrhzw2ky2phc"; depends=[httr jsonlite labelled mime progress]; };
   opdisDownsampling = derive2 { name="opdisDownsampling"; version="0.8.1"; sha256="18y2p13q9ib5siml00ycjq395saqpnn0wa0jf2936v48ji4kjjzp"; depends=[benchmarkme caTools doParallel foreach memuse pracma twosamples]; };
   openCR = derive2 { name="openCR"; version="2.2.2"; sha256="1w3lrlc4w60fv026sbvmdki2jvg45m8mlbidwyd749vm93i3w6cs"; depends=[abind BH MASS nlme plyr Rcpp RcppParallel secr stringr]; };
@@ -13635,9 +13663,9 @@ in with self; {
   openNLPdata = derive2 { name="openNLPdata"; version="1.5.3-4"; sha256="0j45rh9qki8r5wavaysrfsvb3wc3x8jjicqff2yi0r34j58xvlv8"; depends=[rJava]; };
   openSTARS = derive2 { name="openSTARS"; version="1.2.3"; sha256="1xpba5bagq16n1k94izshdizqyx99mad1nx2w77ljznmx5qrpqa6"; depends=[data_table progress raster rgdal rgrass7 sp SSN]; };
   openSkies = derive2 { name="openSkies"; version="1.1.6"; sha256="03nlbmxp36z82myrbamwl1zngsnfxfw80niisapv53n605p4lrg1"; depends=[cluster dbscan ggmap ggplot2 httr magick R6 ssh xml2]; };
-  openVA = derive2 { name="openVA"; version="1.0.13"; sha256="1hps67qlimhrjk3ymmr0jgqac8z6vilqgrchqp6z7vydqirfyp5l"; depends=[cli crayon ggplot2 InSilicoVA InterVA4 InterVA5 Tariff]; };
+  openVA = derive2 { name="openVA"; version="1.0.14"; sha256="05pz9kyfc3z7g0zkjp9mckrimba9bf8krzfj3phy5skwrb5fm2sf"; depends=[cli crayon ggplot2 InSilicoVA InterVA4 InterVA5 Tariff]; };
   openadds = derive2 { name="openadds"; version="0.2.0"; sha256="1jb8zd3rpxfkjkg895iab6m4cfi53p5vy3nnpjkgq7ym6499qjcv"; depends=[crul dplyr jsonlite maptools rappdirs readr tibble xml2]; };
-  openair = derive2 { name="openair"; version="2.8-6"; sha256="1h3klcg6gjr6q2pgcd317zyw9rpj4ngmkii0azcvrkpmqpbdkzrp"; depends=[cluster dplyr hexbin lattice latticeExtra lubridate mapproj MASS mgcv purrr Rcpp readr rlang tidyr]; };
+  openair = derive2 { name="openair"; version="2.9-1"; sha256="0323f3lhwnv8ibbdjyn5y0c8p18d0dwrwrsxrvixsxdzkb641j2f"; depends=[cluster dplyr hexbin lattice latticeExtra lubridate mapproj MASS mgcv purrr Rcpp readr tidyr]; };
   openbankeR = derive2 { name="openbankeR"; version="0.1.1"; sha256="04jh3nnp53dzbk96dcz0xi67jqmp66mzbj81cy8mhhd2rl5ry9cj"; depends=[dplyr glue httpcode httr jsonlite magrittr tidyr]; };
   openblender = derive2 { name="openblender"; version="0.5.81"; sha256="01akixxj04kgrxhv04icrivfpnipnpg9j62i3y19q3jkl9846lh1"; depends=[httr jsonlite]; };
   opencage = derive2 { name="opencage"; version="0.2.2"; sha256="1sjkpp6cj6ivd68p6ql6vwgdvy0fwfkjv84wgwgb4i7f4mnxgnff"; depends=[crul dplyr jsonlite lifecycle memoise progress purrr ratelimitr rlang tibble tidyr withr]; };
@@ -13649,7 +13677,7 @@ in with self; {
   openintro = derive2 { name="openintro"; version="2.3.0"; sha256="0iknd0sk28qwm09zcs1dqqwlq28ph00swp75rbp6sfl0ypcnm7m5"; depends=[airports cherryblossom ggplot2 readr rmarkdown tibble usdata]; };
   openmetrics = derive2 { name="openmetrics"; version="0.3.0"; sha256="0bcljsirlkxn0h87j2g2jb6spcik84h7nms06mcj40ckx188yr82"; depends=[R6]; };
   openssl = derive2 { name="openssl"; version="2.0.0"; sha256="0jsnzxa72bfxsdai25xyklmmrraaf9yv2nmqmf0bgzrkbzkgsa7b"; depends=[askpass]; };
-  opentimsr = derive2 { name="opentimsr"; version="1.0.12"; sha256="1anxp7lk7dya68lqsy4fs5wf1baaridir1v1qwdlspc7wr0xb9yh"; depends=[DBI Rcpp RSQLite]; };
+  opentimsr = derive2 { name="opentimsr"; version="1.0.13"; sha256="0m4xp70cq4h76r4qk7krn5p9w3xv44z5lrkpys7kbvxr38g5y0il"; depends=[DBI Rcpp RSQLite]; };
   opentraj = derive2 { name="opentraj"; version="1.0"; sha256="13nqal96199l8vkgmkvl542ksnappkscb6rbdmdapxyi977qrgxk"; depends=[doParallel foreach maptools openair plyr raster reshape rgdal sp]; };
   opentripplanner = derive2 { name="opentripplanner"; version="0.4.0"; sha256="1q0szrbgcjzc7ny08gilv2q0v1x81i626mzsahkii79qqb7capr1"; depends=[checkmate curl data_table geodist googlePolylines lubridate pbapply rjson sf sfheaders]; };
   openxlsx = derive2 { name="openxlsx"; version="4.2.5"; sha256="0695b265g7jwiqk5c3vmmfkvagx82bkpwhvqzhqaqmmn34l6vl35"; depends=[Rcpp stringi zip]; };
@@ -13693,13 +13721,13 @@ in with self; {
   optionstrat = derive2 { name="optionstrat"; version="1.4.1"; sha256="0vidaf888zdls5yxy7637fqg6r39l3rxw9bhn16s4xmag7kawljv"; depends=[]; };
   optiscale = derive2 { name="optiscale"; version="1.2.2"; sha256="1ay2lfk4isv0gir5diwxlx4ml5bv5qyqbwm34py85fp6bh92987r"; depends=[lattice]; };
   optistock = derive2 { name="optistock"; version="0.0.1"; sha256="1nyz64bfi4s10i4mq7crdkn3b3zqr674vfxkdd3kphjqk0wmiv1j"; depends=[]; };
+  optmatch = derive2 { name="optmatch"; version="0.10.0"; sha256="1wx9xxp91dpnhxslmdphfjrcchp8ykwxksnd4vbyzcpg5y8bcraz"; depends=[Rcpp rlemon survey survival]; };
   optparse = derive2 { name="optparse"; version="1.7.1"; sha256="1rqz0y4r94y3mwbb9kyz97cjqpnprka96qbncvbnbmgg2d630kij"; depends=[getopt]; };
   optpart = derive2 { name="optpart"; version="3.0-3"; sha256="18h659gbgzflq81lcchc058xjgljkmhpsjkh51ylygwrv1qjrz2i"; depends=[cluster labdsv MASS plotrix]; };
   optrcdmaeAT = derive2 { name="optrcdmaeAT"; version="1.0.0"; sha256="16g4612mwyfsckn6l71fbrjnnjv4yvnac1cccbrn3k8jh07qgb1h"; depends=[igraph MASS Matrix]; };
   optrees = derive2 { name="optrees"; version="1.0"; sha256="1zqpjii8dsfs98n58qpif81ckvyxkr0661svhlbgzi19xb2vszqs"; depends=[igraph]; };
   optweight = derive2 { name="optweight"; version="0.2.5"; sha256="1mfk9sp47flqq7i762wip5191j8m0q9kbyxs4a7f0pd76qwf67q2"; depends=[ggplot2 Matrix osqp]; };
   opusminer = derive2 { name="opusminer"; version="0.1-1"; sha256="1vw6pbk1iiaxmfws95wmwf56p3afk10s5c3x9f0lliamckpyzkck"; depends=[arules Matrix Rcpp]; };
-  orQA = derive2 { name="orQA"; version="0.2.1"; sha256="0vivjrpcbql42y078gi91kfpfdpv73j23jkiv8fpazzwzdi8ydqq"; depends=[genefilter gtools nlme Rcpp]; };
   ora = derive2 { name="ora"; version="2.0-1"; sha256="0albxqma220rnrpfdq3z9cawr83q1a0zzczbbcy4nijjm4mswphy"; depends=[DBI ROracle]; };
   orca = derive2 { name="orca"; version="1.1-1"; sha256="1wd5nh2vh6j1rp78hbw17qipi67f0wimrbkiarak8f7k5pfiy1zn"; depends=[]; };
   orclus = derive2 { name="orclus"; version="0.2-6"; sha256="0d78mn2vl2yxlvdswyxkxp9zg59b8cvfksz9m56kddn79aps1ikl"; depends=[]; };
@@ -13719,9 +13747,10 @@ in with self; {
   ordinalCont = derive2 { name="ordinalCont"; version="2.0.2"; sha256="1azwcr1si3b8dxf2y59d3rxw4msfq79khzg7zgqd0kbzyka4ygl8"; depends=[boot Deriv]; };
   ordinalForest = derive2 { name="ordinalForest"; version="2.4-2"; sha256="0s5isf8z6rrksl4jv1aizffxy3bcl726qjpj5j6z7642wkdkpygi"; depends=[combinat nnet Rcpp verification]; };
   ordinalLBM = derive2 { name="ordinalLBM"; version="1.0"; sha256="1sfzkm3f9s5nbalakgk5v919wr7hdlr5p280rw2p8dy4wxr3xk3s"; depends=[RColorBrewer reshape2]; };
-  ordinalNet = derive2 { name="ordinalNet"; version="2.11"; sha256="1xqrg5aglpm20ddi4ywhkcndi06fw3xxkfffqiapjs4bjayqfjji"; depends=[]; };
+  ordinalNet = derive2 { name="ordinalNet"; version="2.12"; sha256="0ijgxp1lh4hbgks0p5041f5s6kpfrlm6f7hdz2nm3dn1rhq6bwvi"; depends=[]; };
   ordinalRR = derive2 { name="ordinalRR"; version="1.1"; sha256="1sfkq8gryyls22208ympw5scgb4jkd27pyc1qklw4x7cz9wfnfbp"; depends=[rjags]; };
-  ordinalgmifs = derive2 { name="ordinalgmifs"; version="1.0.6"; sha256="0axpndyyns649mwifq8f16l8n8x9nic8cv8l71ljyr2gwlm0nqz0"; depends=[survival]; };
+  ordinalbayes = derive2 { name="ordinalbayes"; version="0.1.1"; sha256="13f9rv6gndjr18rfk60rmginzam1xjsssjn45l6hhl6y3gglsyzh"; depends=[coda dclone DESeq2 devtools runjags SummarizedExperiment]; };
+  ordinalgmifs = derive2 { name="ordinalgmifs"; version="1.0.7"; sha256="0c1a4ziyh6jcqnblvc97gpv7bqyhd56gmxxyn1jascpvs2xxq2qy"; depends=[survival]; };
   ordinalpattern = derive2 { name="ordinalpattern"; version="0.2.0"; sha256="0nf7323wd8wm4qxlhr6cvm1l87rwfdr5c4qivhncy0m2n5vknc1c"; depends=[gtools mvtnorm]; };
   ore = derive2 { name="ore"; version="1.7.1.1"; sha256="0rs5r5h11x4l4nsbl4xqzbl4ahajd5374fq05abcmfjnjr9j64w5"; depends=[]; };
   oreo = derive2 { name="oreo"; version="1.0"; sha256="1qzv6fjana5fx45msqasqfniiancsch6j8r1llh1xyg2wjhqdj23"; depends=[fftwtools ggplot2 gridExtra openxlsx pracma scales spectral]; };
@@ -13750,7 +13779,7 @@ in with self; {
   osd = derive2 { name="osd"; version="0.1"; sha256="1py9p15nrcydr8w9ilxkxabiz9zlqnls8xn9avjkxd8x6602jx6p"; depends=[JADE nnls]; };
   osfr = derive2 { name="osfr"; version="0.2.8"; sha256="1yzi8k6ddr8kfgsliigbwzaiqapqa65ismbvxn30ny6raa4rf2xx"; depends=[crul fs httr jsonlite memoise purrr rlang stringi tibble]; };
   oshka = derive2 { name="oshka"; version="0.1.2"; sha256="02hglpq5lknq93zbcf219lhnhppzgygkhxqixb15f89rxf9fczgs"; depends=[]; };
-  oskeyring = derive2 { name="oskeyring"; version="0.1.2"; sha256="1hwrgxsqd4s3wqvkgnga10382jva7l648jnaaff8pcb70hv4m0xg"; depends=[]; };
+  oskeyring = derive2 { name="oskeyring"; version="0.1.3"; sha256="0337ighx4q1c0lq2nawhfgd9rp3cp81hwrzg2n02qh886zkpp1qv"; depends=[]; };
   osmar = derive2 { name="osmar"; version="1.1-7"; sha256="0q6d8nw7d580bnx66mjc282dx45zw9srczz90b520hjcli4w3i3r"; depends=[geosphere RCurl XML]; };
   osmdata = derive2 { name="osmdata"; version="0.1.9"; sha256="01w6ikqv4cl5x6zs4pzx4fgrdcgia53c9gqwd52f5pmg088pj1x9"; depends=[curl httr jsonlite lubridate magrittr Rcpp reproj rvest sp tibble xml2]; };
   osmextract = derive2 { name="osmextract"; version="0.4.0"; sha256="027mwp909xa2i32ibgig6kqazwy8kqyyqyjiyaqhpajm17kfb011"; depends=[httr jsonlite sf]; };
@@ -13767,7 +13796,7 @@ in with self; {
   otpr = derive2 { name="otpr"; version="0.5.1"; sha256="1wh5rmwwwdf1wkb18ayx6zcnhwf80zziznk64jg1974g8crgdxsb"; depends=[checkmate dplyr geojsonsf httr janitor jsonlite rlang rrapply sf urltools]; };
   otrimle = derive2 { name="otrimle"; version="2.0"; sha256="0rca8ln9cyikfpsf1af550cfx2zx110c8jxv64xf8dnnd09s9h7b"; depends=[doParallel foreach mclust mvtnorm robustbase]; };
   otsad = derive2 { name="otsad"; version="0.2.0"; sha256="1jb6raxm70aywbgs7bdyw8vccy1nj924f4hkpjrlgnvzmy0hyhvs"; depends=[ggplot2 plotly reticulate sigmoid]; };
-  ottr = derive2 { name="ottr"; version="1.1.3"; sha256="1sdr03sid4kix00ip0ipirr9qswxpj40mbhg17hzlj7gvjka77ka"; depends=[jsonlite pryr R6 testthat yaml zip]; };
+  ottr = derive2 { name="ottr"; version="1.1.4"; sha256="09irwppgcz97933dgxyc6z9k60j3a9n3idh009rq8bfk6rk7krss"; depends=[jsonlite pryr R6 testthat yaml zip]; };
   ottrpal = derive2 { name="ottrpal"; version="1.0.1"; sha256="02y917r48mqkga27f8019cdbx4mh45dr8l9s2ai1anxgvccnb4yi"; depends=[bookdown curl dplyr fs glue httr knitr magrittr purrr R_utils readr rmarkdown rprojroot rvest stringr xml2 yaml]; };
   otuSummary = derive2 { name="otuSummary"; version="0.1.1"; sha256="04l667qmp7wqkbdsk87j92gf89s13090kzs8cjlmxsp6i69r34z2"; depends=[reshape2 vegan]; };
   otvPlots = derive2 { name="otvPlots"; version="0.2.1"; sha256="0fjx0kl9y77mazwy7lg4mxc9sg8ysvvbl4h3k6bvfpnjm5x62hff"; depends=[data_table ggplot2 gridExtra Hmisc moments quantreg scales stringi]; };
@@ -13777,12 +13806,11 @@ in with self; {
   outbreaks = derive2 { name="outbreaks"; version="1.9.0"; sha256="0x6r4rzcvd1rp8j4brq9c0zl2xsl5jfi18dny20an7aqk310p11v"; depends=[]; };
   outcomerate = derive2 { name="outcomerate"; version="1.0.1"; sha256="07mwml7r98qjgvrp938sqf7klyspz110583j0zwb72j69n4whmrj"; depends=[Rdpack]; };
   outlierensembles = derive2 { name="outlierensembles"; version="0.1.0"; sha256="0m2iaf3rbpwvyrjz6qglbrinmz676hnbqqm6vc38zb3k3cjcllaq"; depends=[airt apcluster EstCRM psych]; };
-  outliers = derive2 { name="outliers"; version="0.14"; sha256="0vcqfqmmv4yblyp3s6bd25r49pxb7hjzipiic5a82924nqfqzkmn"; depends=[]; };
+  outliers = derive2 { name="outliers"; version="0.15"; sha256="1yrmwvjjb0a6sbx940k9svf23cykcxz8rrwcgyic7lpgzbrdfcfc"; depends=[]; };
   outliertree = derive2 { name="outliertree"; version="1.8.1"; sha256="00fa8f4m48gig97hk7709r0x9c7v7jncryd4x4py0f9hd18vv4ix"; depends=[Rcereal Rcpp]; };
   outreg = derive2 { name="outreg"; version="0.2.2"; sha256="04f1x7mxq4swbd7bfwjjgx4838jm6qj4piaighmhcscwrdkxa1cp"; depends=[magrittr reshape2 sandwich stringr tidyr]; };
   outsider = derive2 { name="outsider"; version="0.1.1"; sha256="082yygvjs31clz8b3p59gkc26249gqp8hl1071gm6zi4vi2ng43x"; depends=[crayon curl jsonlite outsider_base remotes tibble yaml]; };
   outsider_base = derive2 { name="outsider.base"; version="0.1.4"; sha256="1wlr3a14a330r9p4lahdmgs4hbgfsp05rsbzr30djwpv21bfl03a"; depends=[callr cli crayon devtools pkgload sys tibble yaml]; };
-  ouxy = derive2 { name="ouxy"; version="2.1"; sha256="0mdjxg7wm68882hbwl0gg15dld6f90xyf0s6hk2z90r34bvyky0i"; depends=[abc adephylo ape coda EasyABC geiger maps MCMCpack nlme phytools Sim_DiffProc TreeSim]; };
   overdisp = derive2 { name="overdisp"; version="0.1.1"; sha256="0gncmirpiqyxsgpsdrv875i6a9bagpz76vcbqxsaql537m1fd99r"; depends=[]; };
   overlap = derive2 { name="overlap"; version="0.3.4"; sha256="1arxprhz035ab78ks88n6scwnlwmnb97mlac5gsx90ipb6gkgcyk"; depends=[]; };
   overlapping = derive2 { name="overlapping"; version="1.7"; sha256="1r54h4vn9nxhljhqrmzrrzaghbqzagcbnq64s86cy78kyq576xs2"; depends=[ggplot2 testthat]; };
@@ -13791,12 +13819,11 @@ in with self; {
   overviewR = derive2 { name="overviewR"; version="0.0.7"; sha256="1y8iqgyhppl2w9z59azi3h1kgzrw5a1zqw09zyjp0ghlvpjbn9cn"; depends=[dplyr ggplot2 tibble]; };
   owd = derive2 { name="owd"; version="1.0.6"; sha256="08f1zzlnkfdzm5rlw14qm6yvn68j2yas21zjsy31pc59rh3lzkyh"; depends=[]; };
   owdbr = derive2 { name="owdbr"; version="1.0.1.1"; sha256="0q4654zr5aw04sssy7127vafry72b7p3d8i44fqvqg3055awin0i"; depends=[data_table dplyr httr jsonlite magrittr tibble]; };
-  owidR = derive2 { name="owidR"; version="1.2.0"; sha256="0c0i0sbnzg61sx9nbc7srahkypk1fwysvbnrhp6j3vbd1rf6jqfk"; depends=[curl dplyr forcats ggplot2 ggrepel htmltools httr jsonlite leaflet magrittr purrr readr rlang rvest scales sf stringr xml2]; };
+  owidR = derive2 { name="owidR"; version="1.2.1"; sha256="0y77n42gr7i0w9d8flchr3dv55g7yb9xmbxffmfkqx2f7fszf8dz"; depends=[curl dplyr forcats ggplot2 ggrepel htmltools httr jsonlite leaflet magrittr purrr readr rlang rvest scales sf stringr xml2]; };
   owmr = derive2 { name="owmr"; version="0.8.2"; sha256="0qlb5aw6n06yf8y2gd2fjp8kp3w0xgqh3fka7rxqndgvaqmin1a6"; depends=[httr jsonlite magrittr plyr tibble tidyr]; };
   ows4R = derive2 { name="ows4R"; version="0.2-1"; sha256="19mm328slb2d8i0qg6nzifah276x637gcivrad24iz8zwn0msdc4"; depends=[geometa httr keyring openssl R6 rgdal sf XML]; };
   ox = derive2 { name="ox"; version="0.1.0"; sha256="0j0va301bmppvmk6paqaqqaw85h8yf92i3pz7i59f2j8q9im82rx"; depends=[]; };
   oxcAAR = derive2 { name="oxcAAR"; version="1.1.1"; sha256="1szifw978qr7v8n178jhg4ap2jwvfnwjl2izbbiydwx8q1fyj2q4"; depends=[jsonlite stringi stringr]; };
-  oxcgrt = derive2 { name="oxcgrt"; version="0.1.0"; sha256="006kdggqdy7nkllln5p7fsapmmn5wlampyw2ifc4ls9jbz0p5h16"; depends=[countrycode dplyr jsonlite magrittr stringr tibble tidyr]; };
   oysteR = derive2 { name="oysteR"; version="0.1.1"; sha256="11zg959h9104hh8wid4003s8c4z9xhmicj39cc5vq1j8g1g7ilr7"; depends=[cli dplyr glue httr jsonlite purrr rjson rlang stringr tibble tidyr yaml]; };
   oz = derive2 { name="oz"; version="1.0-21"; sha256="0p4r8qbpv7q6vad940540pd3lk79pyfj41h2cn22hsy1j0va1qbv"; depends=[]; };
   ozmaps = derive2 { name="ozmaps"; version="0.4.5"; sha256="0sqxaiw1mdcg81228g7k7r6fla6d7hfk9ax2z6pws8457xbvrzka"; depends=[oz sf tibble]; };
@@ -13823,7 +13850,7 @@ in with self; {
   packMBPLSDA = derive2 { name="packMBPLSDA"; version="0.8.0"; sha256="0jn47zhcfssa2rwjh8jc2zc93g766pslxx8vjm0bsnzyzjl2yqb9"; depends=[ade4 DiscriMiner doParallel FactoMineR foreach MASS pROC]; };
   packS4 = derive2 { name="packS4"; version="0.9.3"; sha256="0kkh4lfdbr2ydyfpymwrdkms1d4mj8430p6vxvj5wrgl4vh85gwd"; depends=[codetools]; };
   packageDiff = derive2 { name="packageDiff"; version="0.1"; sha256="0qxgx2ac0x7p9j9clj7hgjahf7xwzcjkcw0d2n6w0r9c4g0mw9w2"; depends=[diffr htmlwidgets]; };
-  packageRank = derive2 { name="packageRank"; version="0.5.0"; sha256="1w5vfz10wjf5h95czi93lbkw4hd486sfg6fxq245fk5r7cpbkpx1"; depends=[cranlogs data_table ggplot2 memoise pkgsearch R_utils RCurl rversions sugrrants]; };
+  packageRank = derive2 { name="packageRank"; version="0.6.0"; sha256="09yaz2zqsyhnd2iinliayh4djwg2517sh0w6cbdnblkm7wlxg5nw"; depends=[cranlogs data_table ggplot2 memoise pkgsearch R_utils RCurl rversions sugrrants]; };
   packagefinder = derive2 { name="packagefinder"; version="0.3.2"; sha256="1jskq7w26bjpam1hvyjcmmw08wz2qfzbyhxi5cdkfiiwqy15xkc1"; depends=[clipr crayon formattable htmlTable httr jsonlite lubridate pander reactable rstudioapi shiny shinybusy shinyjs stringr textutils tidyr]; };
   packager = derive2 { name="packager"; version="1.14.0"; sha256="1fbwdq2x23l72lwwl1vrw4pdslwqp1dnp0ajpflnpq8yrv44sd7s"; depends=[callr checkmate codetools crayon cyclocomp desc fakemake fritools fs gert httr pkgbuild pkgload rcmdcheck remotes rhub rprojroot tinytest whisker whoami]; };
   packagetrackr = derive2 { name="packagetrackr"; version="0.1.1"; sha256="0xjq27j7bd7lps0vp9gdinxn19wl10k2cp9wb2xjih7p6l0wd57g"; depends=[dplyr httr magrittr rappdirs]; };
@@ -13833,7 +13860,7 @@ in with self; {
   pacman = derive2 { name="pacman"; version="0.5.1"; sha256="0z7gngd6h83cpjhq1vg75wvzhdjbgjh7gj5d4zvvi9gd2lmagjcy"; depends=[remotes]; };
   paco = derive2 { name="paco"; version="0.4.2"; sha256="0p02fdc5f7d7sbdvxill8jln76p1ndiw95k6s9j41slfriq647vd"; depends=[ape plyr vegan]; };
   pacotest = derive2 { name="pacotest"; version="0.4.1"; sha256="1ry0lwzphgivmlc8swhk6l26q4ca6x36rm8r7vvjb64y0fvayqk5"; depends=[ggplot2 gridExtra numDeriv Rcpp RcppArmadillo VineCopula]; };
-  pacs = derive2 { name="pacs"; version="0.4.3"; sha256="1pa5s69rgxv7z3jyxxkd835pf76zjz24h3hdpqqnxr11mipvv256"; depends=[curl jsonlite memoise renv stringi xml2]; };
+  pacs = derive2 { name="pacs"; version="0.4.4"; sha256="0kw8pdlxrq9z356pdgamyzkh61dg6hva4gjg2c26xan2y56bwbm4"; depends=[curl jsonlite memoise stringi xml2]; };
   pacviz = derive2 { name="pacviz"; version="1.0.1"; sha256="0afh10zf32lk6gh42y6mjfgdw2blhjavhbq2n3s8h62w9blfad5g"; depends=[circlize e1071 plotrix]; };
   padr = derive2 { name="padr"; version="0.6.0"; sha256="1l8i40vqpy033j8nc8fqp9ymn378bhyy4hkj8xhk94npv7jibqkk"; depends=[dplyr lubridate Rcpp rlang]; };
   paf = derive2 { name="paf"; version="1.0"; sha256="0wrqn67jfrjjxwcrkka6dljgi3mdk00vfjkzzcv2v7c97gx1zvwn"; depends=[survival]; };
@@ -13880,7 +13907,7 @@ in with self; {
   pampe = derive2 { name="pampe"; version="1.1.2"; sha256="092n04nrp886kd163v32f5vhp9r7gnayxzqb6pj57ilm5w1yrcsk"; depends=[leaps]; };
   pamr = derive2 { name="pamr"; version="1.56.1"; sha256="0ycpgkk23y3zzkb42n2skcyl35ps1n7jmyzfj7pbxr3f6gr2grfh"; depends=[cluster survival]; };
   pan = derive2 { name="pan"; version="1.6"; sha256="1dk3jjj826p7xrz10qz04vyc068xnypg7bp0pj4c32z3da0xzh5d"; depends=[]; };
-  pander = derive2 { name="pander"; version="0.6.4"; sha256="1knjcr50xxns3w3kh15myjpsizn4d7fdqx071a4yj90imif07qjh"; depends=[digest Rcpp]; };
+  pander = derive2 { name="pander"; version="0.6.5"; sha256="144zkq5w7v6fpzk3x40i0baybbp0y6x2ckh4b9qljryas9mhgp9a"; depends=[digest Rcpp]; };
   pandocfilters = derive2 { name="pandocfilters"; version="0.1-4"; sha256="1nlnvnvq3zwzpf6hnf8akl0w25kr7hrbr98rw5vgncxw35314xdp"; depends=[jsonlite]; };
   panelView = derive2 { name="panelView"; version="1.1.9"; sha256="1qrlw4n5sw1mdchgn6p2f2zijmmm87nq5ffdgg4m1gyzkd40qfw8"; depends=[ggplot2 gridExtra]; };
   panelWranglR = derive2 { name="panelWranglR"; version="1.2.13"; sha256="0zj0m08518zi6xsa7qik61ys1qqa2lqiar4l7acclkw58w5zrmbc"; depends=[caret data_table Hmisc]; };
@@ -13901,10 +13928,10 @@ in with self; {
   parallelML = derive2 { name="parallelML"; version="1.2"; sha256="05j0rb81i8342m8drwgmgi1w30q96yf501d83cdq4zhjbchphbl1"; depends=[doParallel foreach]; };
   parallelMap = derive2 { name="parallelMap"; version="1.5.1"; sha256="1qg7zpz5sd9jp8wzjqahkhipwj1jn192llwg06q4gv9mlcsac261"; depends=[BBmisc checkmate]; };
   parallelPlot = derive2 { name="parallelPlot"; version="0.1.0"; sha256="1zppgd0dwxfryv6wfl6k7jrny1yqb5q4f8phnnmzz9ydlv7xyv32"; depends=[htmlwidgets]; };
-  parallelly = derive2 { name="parallelly"; version="1.30.0"; sha256="0fwzkzw9vjblwk5rg56yl8qfn7irnbpm70405lmj7awvf35q1c5a"; depends=[]; };
+  parallelly = derive2 { name="parallelly"; version="1.31.0"; sha256="0kjwxgxnlpjbxpr1dyzk3nyx9fwa6vwqr22bvsxz56xwxnirzdxx"; depends=[]; };
   param6 = derive2 { name="param6"; version="0.2.4"; sha256="0h4r2l670zvsbq0cakbm7f5yc0ghaf40kby80q3ql8lwgfnay1jd"; depends=[checkmate data_table dictionar6 R6 set6]; };
   paramGUI = derive2 { name="paramGUI"; version="2.1.4"; sha256="0k2wkl99ji3w7xmd9k7zzvrr3dbf3237q7lxm527dnrq331pmxmi"; depends=[colorspace fields shiny shinydashboard TIMP]; };
-  parameters = derive2 { name="parameters"; version="0.16.0"; sha256="1i295d5nqjr3pvp9vz59wiasrxy9n78q518phcd15sxcjzcj0l27"; depends=[bayestestR datawizard insight]; };
+  parameters = derive2 { name="parameters"; version="0.17.0"; sha256="0wrhs3rhr62441cghg4nsrlp6r41nf7x5nclzz71v5c0rfn8jh79"; depends=[bayestestR datawizard insight]; };
   paramhetero = derive2 { name="paramhetero"; version="0.2.0"; sha256="16gvs8328bnqvhx47f0xwnmbmlakxmp4ivnjxk2b13z6qjs70ij4"; depends=[ggplot2 ggpubr lme4 survey]; };
   paramlink = derive2 { name="paramlink"; version="1.1-4"; sha256="1dwm7kv1a9d07hpk3l6mih6qbq9ga7idqlyqs0impxnd83lwp093"; depends=[assertthat kinship2 maxLik]; };
   paramlink2 = derive2 { name="paramlink2"; version="1.0.3"; sha256="0ypn0fdrphblw64sdnfmyf9q4zbakqvl4xzr451phvhx52n1gb73"; depends=[pedprobr pedtools]; };
@@ -13923,10 +13950,11 @@ in with self; {
   paropt = derive2 { name="paropt"; version="0.2.1"; sha256="0a9xd340lqmj32vzwbnrxqa3cklprpikr8f8d8xfj8n1cyw39jwl"; depends=[Rcpp RcppArmadillo]; };
   parqr = derive2 { name="parqr"; version="0.1.0"; sha256="11956dvv46sgpmbv429c24wxdhfqvc07jxc1i4yymyz1l8wgr3yb"; depends=[arrow magrittr purrr]; };
   parseRPDR = derive2 { name="parseRPDR"; version="0.2.1"; sha256="1k4153bhf623xla6b174as4n8fh8ic0wnw8psxwa2vj3q3nifwbx"; depends=[bigmemory data_table doParallel foreach readr reticulate stringr]; };
-  parsec = derive2 { name="parsec"; version="1.2.5"; sha256="1qd9gyb6zkahql74x9nds72fmx0i5cyg9kank929cz5iziqf85y5"; depends=[igraph netrankr]; };
+  parsec = derive2 { name="parsec"; version="1.2.6"; sha256="04irxvzk47cy7bpbzz4a12b5m4ar6y4a060j8ydll4ckjia9nyj0"; depends=[igraph netrankr]; };
   parsedate = derive2 { name="parsedate"; version="1.3.0"; sha256="1c2cpsvma3fkx6zp191bpfvf5rmpsr13g8rzqk6ycyb0n7b9k4qy"; depends=[]; };
+  parsel = derive2 { name="parsel"; version="0.1.1"; sha256="0v1rrp04nsjbq9nf2xx3fcy8iap2f3s6fgbyk1zblbbfpfi3pyav"; depends=[lubridate purrr RSelenium]; };
   parsermd = derive2 { name="parsermd"; version="0.1.2"; sha256="15fy5vgzbrxq1yj4bgd0q1n5gjwvfh6s03ar5mj3hpp5mz6qmsdg"; depends=[BH checkmate cli dplyr lifecycle magrittr pillar purrr Rcpp readr rlang rmarkdown tibble tidyr tidyselect withr yaml]; };
-  parsnip = derive2 { name="parsnip"; version="0.2.0"; sha256="0g213c91lzwq9hd22yxkj3igqw04czncnbc4jddnpghp4gpfn1kn"; depends=[cli dplyr generics ggplot2 globals glue hardhat lifecycle magrittr prettyunits purrr rlang tibble tidyr vctrs withr]; };
+  parsnip = derive2 { name="parsnip"; version="0.2.1"; sha256="195i4j38mljv9193yx8lmh65h85yhc52y9vc1mk8zvxi52ks1yln"; depends=[cli dplyr generics ggplot2 globals glue hardhat lifecycle magrittr prettyunits purrr rlang tibble tidyr vctrs withr]; };
   partDSA = derive2 { name="partDSA"; version="0.9.14"; sha256="1kp0cdsdjiay349jz22iqfzvspny8s343cfan8xahgf931k9h8p6"; depends=[survival]; };
   partR2 = derive2 { name="partR2"; version="0.9.1"; sha256="06ky0hhrq0mcsn9rwrzvwn0rrjj0l8rxs0hqp10668gdq5hjk8bn"; depends=[dplyr ggplot2 lme4 magrittr pbapply purrr rlang tibble tidyr]; };
   partialOR = derive2 { name="partialOR"; version="0.9"; sha256="02vbvln8lswysaafpxq5rxb6crp7yhlc13i42kybv8fr10jaagjj"; depends=[nnet]; };
@@ -13979,7 +14007,7 @@ in with self; {
   paws = derive2 { name="paws"; version="0.1.12"; sha256="0kn1z045r106fwqcaz52hb02bhrcblh479cajfjiq480s1iljcw6"; depends=[paws_analytics paws_application_integration paws_compute paws_cost_management paws_customer_engagement paws_database paws_developer_tools paws_end_user_computing paws_machine_learning paws_management paws_networking paws_security_identity paws_storage]; };
   paws_analytics = derive2 { name="paws.analytics"; version="0.1.12"; sha256="04gnaxmj21l312xkrsd9bisi0bz9h6h5fyhwlqylcxi077z1yb2g"; depends=[paws_common]; };
   paws_application_integration = derive2 { name="paws.application.integration"; version="0.1.12"; sha256="0llyd9hc679pad1ih0rcc38q5xxpzinhwrl8cvrkgsjgbc3agq42"; depends=[paws_common]; };
-  paws_common = derive2 { name="paws.common"; version="0.3.16"; sha256="0mdbnbjprghiwz4i9abh62l5q6mncz3iq76wxvj7ncinf89kd83w"; depends=[base64enc digest httr jsonlite xml2]; };
+  paws_common = derive2 { name="paws.common"; version="0.3.17"; sha256="1dg18hwnrjd6m1vjcxfs2vm1zxciivf4vzhq0z76dmmiqz2yjm28"; depends=[base64enc digest httr jsonlite xml2]; };
   paws_compute = derive2 { name="paws.compute"; version="0.1.12"; sha256="1km6fng6il5fcjlrbbndahsw2dr2ql83hwac9wlpd67zm3wy9lky"; depends=[paws_common]; };
   paws_cost_management = derive2 { name="paws.cost.management"; version="0.1.12"; sha256="0in4f8ygw5g2v6vl3lz2y0v51llglh8b1ymbd04d54xxlgn83knh"; depends=[paws_common]; };
   paws_customer_engagement = derive2 { name="paws.customer.engagement"; version="0.1.12"; sha256="0ac6hzn4ilfjhzdmc9x80999fl18cz16mky31qd3y09m93w2xkdj"; depends=[paws_common]; };
@@ -14015,7 +14043,7 @@ in with self; {
   pcaPP = derive2 { name="pcaPP"; version="1.9-74"; sha256="1dlrz5plb8b89vr3j6sn9jwryyhcwflqkiilxkybbr379m1pp0sh"; depends=[mvtnorm]; };
   pcadapt = derive2 { name="pcadapt"; version="4.3.3"; sha256="01wvcflfsnlsq23vq03n870fxsab3ab29k26nqlqxw82lbvx99s3"; depends=[bigutilsr data_table ggplot2 magrittr mmapcharr Rcpp rmio RSpectra]; };
   pcal = derive2 { name="pcal"; version="1.0.0"; sha256="07119k5f4h9jc48bicl4q5i7bdrkha3rz22r6g44c8ilnkvjhw6j"; depends=[Rdpack]; };
-  pcalg = derive2 { name="pcalg"; version="2.7-5"; sha256="136w94s0pi5llyfkh7vdff94yl3x6ajbnzb112fd485wr60f7d5x"; depends=[abind bdsmatrix BH clue corpcor fastICA ggm graph igraph RBGL Rcpp RcppArmadillo robustbase sfsmisc vcd]; };
+  pcalg = derive2 { name="pcalg"; version="2.7-6"; sha256="0c84dl15dy2v19m7603walsd9zmnalwz56729jd23kfw6yh0mglk"; depends=[abind bdsmatrix BH clue corpcor fastICA ggm graph igraph RBGL Rcpp RcppArmadillo robustbase sfsmisc vcd]; };
   pcalls = derive2 { name="pcalls"; version="1.0"; sha256="1vdgvrzfv69p3p5zc9i6gxq53f36s0mia4idzrbsda661f1bhmxk"; depends=[]; };
   pcatsAPIclientR = derive2 { name="pcatsAPIclientR"; version="1.0.0"; sha256="07klw04zq3q18d13grmgjl4fywby7bazxm28v25snrim33n2ybhp"; depends=[httr jsonlite testthat]; };
   pccc = derive2 { name="pccc"; version="1.0.5"; sha256="0jh8yadks76ip9jmgvld9nycdm74f5gllkyhfmnrir8vi6xwvbad"; depends=[dplyr Rcpp]; };
@@ -14054,17 +14082,17 @@ in with self; {
   pdqr = derive2 { name="pdqr"; version="0.3.0"; sha256="0agkxl23h57smq292l5b0wdi2ixxg6l0fi74sans5hljmyg2zqns"; depends=[]; };
   pds3 = derive2 { name="pds3"; version="0.5.0"; sha256="1hipi4ygk30khrrslxq3m9qdichazhrl34k444shs7gi6wjx9ilr"; depends=[rly]; };
   pdxTrees = derive2 { name="pdxTrees"; version="0.4.0"; sha256="0cw1zrkawc2wnbd2pif8732kl92qvklxvx6hnikx3siz22psvbl8"; depends=[dplyr magrittr rlang]; };
-  pdynmc = derive2 { name="pdynmc"; version="0.9.6"; sha256="0347p0s4zx3y4yp2rzn4zz4lkj32skll2n2wrnb7yxsnhwf94a7f"; depends=[data_table MASS Matrix optimx qlcMatrix Rdpack]; };
+  pdynmc = derive2 { name="pdynmc"; version="0.9.7"; sha256="17gra5w2s2qb73bb509n4xlhwcvk7jwv9hw38ww41qv1g0v436lz"; depends=[data_table MASS Matrix optimx qlcMatrix Rdpack]; };
   peRiodiCS = derive2 { name="peRiodiCS"; version="0.5.0"; sha256="1366gmn6qfciwcjsfnbl3hfa16ffn11g00fm0kv74ilvm3nnawk3"; depends=[Hmisc rms]; };
   peRspective = derive2 { name="peRspective"; version="0.1.1"; sha256="1dca7592h9yp8lfj866hjzg0d48c84v2kd9l5bsvkw935wwxwg2w"; depends=[crayon dplyr glue httr jsonlite magrittr purrr rlang rlist stringr tibble]; };
-  peacesciencer = derive2 { name="peacesciencer"; version="0.7.0"; sha256="1z7h22rigw7r8njvwhjg7cn7blayn9vm7wrng1fmzk85j50nj37s"; depends=[bib2df dplyr geosphere lifecycle magrittr rlang stevemisc stringr tidyr]; };
+  peacesciencer = derive2 { name="peacesciencer"; version="1.0.0"; sha256="00b1a1qg17klg5pcf86yb8j5g2chcrhbs0lvkqnjv7h0ycx9kwbl"; depends=[dplyr geosphere lifecycle magrittr rlang stevemisc stringr tidyr]; };
   peacots = derive2 { name="peacots"; version="1.3"; sha256="128qpz06b0giz80lp9yq9l6pxcjglfr97yickg7z64vzzl2jilmq"; depends=[]; };
   peakPick = derive2 { name="peakPick"; version="0.11"; sha256="1zf7ff9arm4hkdxrfhb0p8p7npd51icy773g2raaqsfys825xwhm"; depends=[matrixStats]; };
   peakRAM = derive2 { name="peakRAM"; version="1.0.2"; sha256="0mj7f8jqkfky61xag2km0svbgvfmif3c1d8ccav6pv1963cg3cvv"; depends=[]; };
   pearson7 = derive2 { name="pearson7"; version="1.0-3"; sha256="0vdhhds1lngaff7dkx4b1az3syqw8b22w2jskcrw0m49wp1dbbha"; depends=[]; };
   pec = derive2 { name="pec"; version="2022.03.06"; sha256="1v43k2l46dz1myas9afyd5cp9a9rw7l71i7k4z8pwlw6aydispnm"; depends=[foreach lava prodlim riskRegression rms survival timereg]; };
   pecora = derive2 { name="pecora"; version="0.1.1"; sha256="0l66brd5d24hn279ck785jy4qnxiv9lc3d1czh4f3l25d0hj99xi"; depends=[matrixStats Rcpp RcppArmadillo]; };
-  pedSimulate = derive2 { name="pedSimulate"; version="1.3.1"; sha256="0rbk8w742i8s9avn9xn8290nkd2mb9aa7p8vzya1dk72x7l51y7b"; depends=[]; };
+  pedSimulate = derive2 { name="pedSimulate"; version="1.3.2"; sha256="0v1swbilc2pmcf86z1g42yjr4lmb9zwda2kv4pap27prk4n224b9"; depends=[]; };
   pedalfast_data = derive2 { name="pedalfast.data"; version="1.0.0"; sha256="02s6igrybcfs8nyxr50iiwclhrwnq3x2x5w886imrlp2wbkf13m4"; depends=[]; };
   pedbuildr = derive2 { name="pedbuildr"; version="0.2.1"; sha256="19yzfg5jms2qnww4p8npmk9815hrgqsbd49h8pi62yy9kjqnccai"; depends=[forrel glue pedprobr pedtools]; };
   pedgene = derive2 { name="pedgene"; version="3.3"; sha256="0y6kr5ad4fmxljsj0czs9h1dkz63wvqiira9ibgsf0707xb0vh7f"; depends=[CompQuadForm kinship2 Matrix survey]; };
@@ -14076,7 +14104,7 @@ in with self; {
   pedprobr = derive2 { name="pedprobr"; version="0.6.1"; sha256="0rz5i03d75nlli8m186b4a1yy3yx54cvm8hvp603ziglp2b5mf2y"; depends=[pedmut pedtools]; };
   pedquant = derive2 { name="pedquant"; version="0.1.8"; sha256="0rzpnsf6d509f4wkkdcrsw7rfdlvg12mr25ha3dy6a47nqscxlhp"; depends=[curl data_table ggplot2 gridExtra httr jsonlite PerformanceAnalytics plotly readr readxl rvest scales stringi TTR webdriver xml2 zoo]; };
   pedsuite = derive2 { name="pedsuite"; version="1.1.0"; sha256="19vbfn8dy7a4hrrv8zsja721lchng55gvc26xlkzx5dl96d2xp9w"; depends=[dvir forrel ibdsim2 paramlink2 pedbuildr pedmut pedprobr pedtools ribd segregatr verbalisr]; };
-  pedtools = derive2 { name="pedtools"; version="1.1.0"; sha256="0cm2arhn81dl4w26rc701f8b7ldz1r1ad7g7lnw67lq2irnfkgfg"; depends=[kinship2]; };
+  pedtools = derive2 { name="pedtools"; version="1.2.0"; sha256="0yyia6s3dzyrwm9gpmcnfgz6js9hr9x7fvxzqcxgzh6i0kp8p2ng"; depends=[kinship2]; };
   peermodels = derive2 { name="peermodels"; version="0.10.3"; sha256="116xn5w7rwm9q0m7bj4z29l4hspj2nqdcxzir9dqpdqmf7z58v67"; depends=[curl httr httr2 jsonlite stringr]; };
   pegas = derive2 { name="pegas"; version="1.1"; sha256="0ngd0laqbs139ji9hm9kwsm9rm56agw2yyfcplxgqva936l93fl7"; depends=[ape]; };
   pema = derive2 { name="pema"; version="0.1.0"; sha256="0z56r7jjigyw3lxf2bvzhfb3a7bs79pj4w7r9qg231z30sf4m1fz"; depends=[BH Rcpp RcppEigen RcppParallel rstan rstantools sn StanHeaders]; };
@@ -14088,9 +14116,8 @@ in with self; {
   penalized = derive2 { name="penalized"; version="0.9-51"; sha256="1zcrwa93mc27qj3g4ayc2k895r6g8q0g6qb2azmvj7wqk750va7a"; depends=[Rcpp RcppArmadillo survival]; };
   penalizedLDA = derive2 { name="penalizedLDA"; version="1.1"; sha256="1bw5wiixmmg1vr3v0d59vh67f0gy2rvr30bi58skvrkb25qcjq6l"; depends=[flsa]; };
   penalizedSVM = derive2 { name="penalizedSVM"; version="1.1.2"; sha256="03zw95bc6svbnzak9x72s3b8l9gh581mxn2di1fl89gxlh864amd"; depends=[corpcor e1071 lhs MASS mlegp statmod tgp]; };
-  penalizedclr = derive2 { name="penalizedclr"; version="0.1.0"; sha256="0ka27azfdj4wa1p628b99pkrfjy1x8yjyd3d5g2v8mbsfg3j3bwg"; depends=[clogitL1 penalized survival tidyverse]; };
   penaltyLearning = derive2 { name="penaltyLearning"; version="2020.5.13"; sha256="0297rp5zn6d0axl44i3baq2vqvhrx6s8irrysvqdcx1rkishf4j0"; depends=[data_table ggplot2]; };
-  pencal = derive2 { name="pencal"; version="1.0.2"; sha256="1p9s9d8awc3v1g4qkigpp76gmicmhy7mia8vnfpinwmvik6bazim"; depends=[doParallel dplyr foreach glmnet lcmm magic MASS Matrix nlme survcomp survival survivalROC]; };
+  pencal = derive2 { name="pencal"; version="1.1.0"; sha256="0v9b341cmvjrj424a94sy4ghvpdkjj7pbyv7ipj10wr425chhw4w"; depends=[doParallel dplyr foreach glmnet lcmm magic MASS Matrix nlme survcomp survival survivalROC]; };
   pencopulaCond = derive2 { name="pencopulaCond"; version="0.2"; sha256="18hjjxnd0l2ms20ddqkghfbd4as5kq2rgwqzpz4y38k6nw76x511"; depends=[doParallel fda foreach igraph lattice latticeExtra pacotest quadprog TSP]; };
   pendensity = derive2 { name="pendensity"; version="0.2.13"; sha256="1wcsib7m2161nqqrmgdvrj7lr8zq6njc9xr935hwfh3qbbgkmfjb"; depends=[fda lattice]; };
   penfa = derive2 { name="penfa"; version="0.1.1"; sha256="1r8lq4kvlwlk7q0mdzkrdm9sx7lqq4l27jfxa1zcfh50sk1qlam2"; depends=[GJRM MASS mgcv trust]; };
@@ -14108,7 +14135,7 @@ in with self; {
   perccalc = derive2 { name="perccalc"; version="1.0.5"; sha256="14557k7khc3l5m0vlam0fvbsb6p78v9gfcnx5ksxcvrab28xj7p3"; depends=[multcomp tibble]; };
   percentiles = derive2 { name="percentiles"; version="0.2.2"; sha256="08gzl2qq0856nj20bdxl3r0a7p5f4cjmvxkaqkjvq4n275ghvskq"; depends=[assertive_types assertthat dplyr R6]; };
   perfectphyloR = derive2 { name="perfectphyloR"; version="0.2.1"; sha256="1i1h5k2aqaqygd8gzq2bmz266mjzdi2mfikkz6hzmhi2il8708w9"; depends=[ape phytools Rcpp RcppArmadillo]; };
-  performance = derive2 { name="performance"; version="0.8.0"; sha256="1xjjnhqmwfflm5yfgjhycjn0fj0manvsvkk2ppifn0373bajp5n2"; depends=[bayestestR datawizard insight]; };
+  performance = derive2 { name="performance"; version="0.9.0"; sha256="1znr4i1pjv6z3lj6qrma2i3l94rz1z29w92mrxxfy3ch0s71crww"; depends=[bayestestR datawizard insight]; };
   performanceEstimation = derive2 { name="performanceEstimation"; version="1.1.0"; sha256="08jx2zl6xh0rp54xa70gb717wbfdzfrx9b47i3b3ly41qaf85vrc"; depends=[dplyr ggplot2 parallelMap tidyr]; };
   pergola = derive2 { name="pergola"; version="1.0"; sha256="1650ipp2b455xdkznwm7bnxvimad7nbyr9i1lg2vdh64j1qfh7gl"; depends=[seriation]; };
   periscope = derive2 { name="periscope"; version="1.0.1"; sha256="06rhi77a7561a0k99sn9h0pxfgar4s8iyg2mligyig2z8j66dcqb"; depends=[DT fresh ggplot2 lubridate shiny shinyBS shinydashboard writexl yaml]; };
@@ -14189,15 +14216,16 @@ in with self; {
   phonfieldwork = derive2 { name="phonfieldwork"; version="0.0.11"; sha256="0a5qnl1r8g0h1nsp22awp6hy0lkdi6adc729grpz8mbniz4vdlkc"; depends=[phonTools rmarkdown tuneR uchardet xml2]; };
   phonics = derive2 { name="phonics"; version="1.3.10"; sha256="1g4gmfz190xaj800gawl79fzhmgimssa31kqzw8a70scp5psz3fw"; depends=[BH data_table Rcpp]; };
   phosphoricons = derive2 { name="phosphoricons"; version="0.1.1"; sha256="0krb1gl5h6k6m289f0hjizrx6ysmv21z9a4h7k6fip0r26fjili6"; depends=[htmltools]; };
-  photobiology = derive2 { name="photobiology"; version="0.10.9"; sha256="0fjiwp6hpb1fgzv4qfmljrnarvrnwsdy0rqz735mrizxdn1qigqg"; depends=[dplyr lubridate plyr polynom rlang splus2R stringr tibble tidyr zoo]; };
+  photobiology = derive2 { name="photobiology"; version="0.10.10"; sha256="14bagnhh955a5nhm5ywrwzpbf7afabm7pycmkxay2jidj1hj8xm8"; depends=[dplyr lubridate plyr polynom rlang splus2R stringr tibble tidyr zoo]; };
   photobiologyFilters = derive2 { name="photobiologyFilters"; version="0.5.2"; sha256="0n987klwyj06xikmvg9cvsjzrxll1d7p358jw4ls0j46byki98s5"; depends=[photobiology]; };
   photobiologyInOut = derive2 { name="photobiologyInOut"; version="0.4.23"; sha256="1g73pjh7yqbdn8sd8r3w19l67yvmxyxd2zwsvywvdh1jj2cn6s7h"; depends=[anytime colorSpec dplyr lazyeval lubridate photobiology readr readxl stringr tibble tidyr]; };
   photobiologyLEDs = derive2 { name="photobiologyLEDs"; version="0.4.3-1"; sha256="0inhl6ba1fzkak4752m60hkm6fzapzyz5kchvz18yv33dmm13v1c"; depends=[photobiology]; };
-  photobiologyLamps = derive2 { name="photobiologyLamps"; version="0.4.3"; sha256="1df7ngcyrmvhab80w1ggyv1p9srsvwr9f6pm8yl7hvkpkv6jbdsk"; depends=[photobiology]; };
+  photobiologyLamps = derive2 { name="photobiologyLamps"; version="0.5.0"; sha256="1gz8giflh5mjam5bivv161vi8fk9ckailbz8fszv5azyn937jc7q"; depends=[photobiology]; };
   photobiologyPlants = derive2 { name="photobiologyPlants"; version="0.4.2"; sha256="0ab5ks72mb5x03xc0ww9fcl0h13ja8402b1s670lqmmhyvp6fj3s"; depends=[photobiology photobiologyWavebands]; };
   photobiologySensors = derive2 { name="photobiologySensors"; version="0.5.0"; sha256="122cfy6nsxngd8hnbq5frkgnzrb9fxw83l7mfwk0wy6gx7zsfx5s"; depends=[photobiology]; };
   photobiologySun = derive2 { name="photobiologySun"; version="0.4.1"; sha256="15wp8q29m5c4qplind9098ikxmm1r60lw8cm0pa48lmh33638ia3"; depends=[photobiology]; };
   photobiologyWavebands = derive2 { name="photobiologyWavebands"; version="0.4.5"; sha256="0lvj5birzzjrkcikg515zgxa2gd06bsbr5i575y9ppxw7kbyqga9"; depends=[photobiology]; };
+  phreeqc = derive2 { name="phreeqc"; version="3.7.4"; sha256="1xhpbi76y87phss10zlxpcz3fm3md3y4lh2cvypnx5ccxfdzflyl"; depends=[]; };
   phuassess = derive2 { name="phuassess"; version="1.1"; sha256="0jplj9gih32dllx2hw5aqvc9b94sbrbv66s3a5r8mdbpjh93rhng"; depends=[]; };
   phyclust = derive2 { name="phyclust"; version="0.1-30"; sha256="0fy9q95vmlm9idpax7alhpfwn30gflnc9md72g91jypyxkx5nr7p"; depends=[ape]; };
   phyext2 = derive2 { name="phyext2"; version="0.0.4"; sha256="0j871kgqm9fll0vdgh071z77ib51y8pxxm0ssjszljvvpx1mb8rb"; depends=[ape phylobase]; };
@@ -14221,15 +14249,16 @@ in with self; {
   phyr = derive2 { name="phyr"; version="1.1.0"; sha256="0jvjxvxx2nz9ra9vp00bmm3dxr2am4zs8cvxij8w4jjyskznxc96"; depends=[ape dplyr gridExtra latticeExtra lme4 Matrix mvtnorm nloptr Rcpp RcppArmadillo tidyr]; };
   phyreg = derive2 { name="phyreg"; version="1.0.2"; sha256="0m1psq79zl7h8791pl8g6i0ybda7vgddza8r9mwqhg4sw1q4bzcp"; depends=[]; };
   physiology = derive2 { name="physiology"; version="1.2.1"; sha256="1z7xymwgj7bqn0yvcz3q8pvwhpr5vx5qd0x8sayal1vgpqc0nccb"; depends=[Rcpp]; };
-  phytools = derive2 { name="phytools"; version="1.0-1"; sha256="1j0s7ai3mmhsc94m4gka11mnw9ryvrhnf7s8298i21a2xhsmvgxp"; depends=[ape clusterGeneration coda combinat expm maps MASS mnormt nlme numDeriv phangorn plotrix scatterplot3d]; };
+  phytools = derive2 { name="phytools"; version="1.0-3"; sha256="0zdkh8v6wyn576gdxiknls0ysks9pr1fwkj9q5j548z8mb3axqmz"; depends=[ape clusterGeneration coda combinat expm maps MASS mnormt nlme numDeriv phangorn plotrix scatterplot3d]; };
   phytotools = derive2 { name="phytotools"; version="1.0"; sha256="049znviv2vvzv23biy1l28axm7bc7biwmq4bnn0cnjqgkk48ysz3"; depends=[FME insol]; };
   piRF = derive2 { name="piRF"; version="0.1.0"; sha256="04k09ylc6hqw57dlv7sfnisn1167dr550y1j9xl7prvlf3jksg06"; depends=[Rdpack]; };
   piar = derive2 { name="piar"; version="0.3.2"; sha256="1z78cf0zqxfdx4lqip17v3c7jdkq1g8db8231az8bv527n2gqh8p"; depends=[gpindex]; };
   picante = derive2 { name="picante"; version="1.8.2"; sha256="19savjzj44b7ifdxcp02ynj22z4n4ikq2aipc74ljzy3yykmqmjn"; depends=[ape nlme vegan]; };
   picasso = derive2 { name="picasso"; version="1.3.1"; sha256="1z7zm88wjp7fia7054l7i55f152iddrjj9wbcpcskhc8s6kfg53c"; depends=[MASS Matrix]; };
+  picker = derive2 { name="picker"; version="0.2.6"; sha256="1n7h1lvrivy7czzhisd9p3g187ivcyhzyjj7ahkimyb296gy8z1b"; depends=[htmlwidgets]; };
   pid = derive2 { name="pid"; version="0.50"; sha256="05s3xqf95d4avh7gkr49jsm8jzacbv694c3wgppkkc40zip6vkc7"; depends=[DoE_base FrF2 FrF2_catlg128 ggplot2 png]; };
   piecemaker = derive2 { name="piecemaker"; version="1.0.1"; sha256="1i9k88i0rqsbf2564ims69x1pind1xgvljaf9smnnjpi77442jiw"; depends=[rlang stringi stringr]; };
-  piecepackr = derive2 { name="piecepackr"; version="1.10.1"; sha256="189dqwh7kkgcvw2j8bqqff2r9si6i89avip0zdm1h941akc66kdv"; depends=[gridGeometry grImport2 jpeg png purrr R6 rlang stringr tibble]; };
+  piecepackr = derive2 { name="piecepackr"; version="1.10.3"; sha256="1idlmg05988y834a9af0rz2wsris541ipvx2lxh8f6vsw0gx0pix"; depends=[gridGeometry grImport2 jpeg png purrr R6 rlang stringr tibble]; };
   piecewiseSEM = derive2 { name="piecewiseSEM"; version="2.1.2"; sha256="1qxwc1drx26p4cgymrfjmg5i7ypl7gddv40virkpmc0qaag9pq36"; depends=[car DiagrammeR emmeans igraph lme4 MASS multcomp nlme]; };
   piggyback = derive2 { name="piggyback"; version="0.1.1"; sha256="1d448hkk772d21ix1l1cgq2a0spyjnppyrn1myjcv3dcrfxndn83"; depends=[clisymbols crayon fs gh httr jsonlite lubridate memoise]; };
   pillar = derive2 { name="pillar"; version="1.7.0"; sha256="1fqk18vc9ashf12gdqkdi6n1nj5lh324vwhgiib3b2fcb2bghhbq"; depends=[cli crayon ellipsis fansi glue lifecycle rlang utf8 vctrs]; };
@@ -14280,7 +14309,7 @@ in with self; {
   pkglite = derive2 { name="pkglite"; version="0.2.0"; sha256="1qjym8kkbmzdz46xn6a4ir8b07ws30s3m7zdrgh98nf0vrv9bkj8"; depends=[cli magrittr remotes]; };
   pkgload = derive2 { name="pkgload"; version="1.2.4"; sha256="03yr9mswx9nij27bp21q6c533zx310xwzhwm52dwr7554k42p4fn"; depends=[cli crayon desc rlang rprojroot rstudioapi withr]; };
   pkgmaker = derive2 { name="pkgmaker"; version="0.32.2"; sha256="14ggsd24n5g5rvn0wl4w90ipxzmywqikh28llj89q6kpxwnv4iff"; depends=[assertthat codetools digest registry stringr withr xtable]; };
-  pkgndep = derive2 { name="pkgndep"; version="1.1.1"; sha256="0dr5b3ibhvj29f9yvi0v3k41ac6krf85ghxswwr6p4m9vsblmdfx"; depends=[BiocManager BiocVersion brew ComplexHeatmap GetoptLong GlobalOptions hash]; };
+  pkgndep = derive2 { name="pkgndep"; version="1.1.3"; sha256="0p3lrmp5z0rmwsqn7wxj6xzcn07h6d1xdvsv1b0wb8rjnna56nqz"; depends=[BiocManager BiocVersion brew ComplexHeatmap GetoptLong GlobalOptions hash]; };
   pkgnet = derive2 { name="pkgnet"; version="0.4.2"; sha256="0y1b5psn680agsnyiy8yr5m5pzb1y6wsa7gms43nwgj6jjmmvgvv"; depends=[assertthat covr data_table DT futile_logger glue igraph knitr magrittr R6 rlang rmarkdown visNetwork]; };
   pkgnews = derive2 { name="pkgnews"; version="0.0.2"; sha256="0kqyy1fchpcyclxh6gly23pkfcf5b3hpsq1bhj4ykzbl4bc002h2"; depends=[]; };
   pkgsearch = derive2 { name="pkgsearch"; version="3.1.0"; sha256="1xr4k7x3qhny9qpn9sr2img6hakp3k2qy85l1hsirnz7kjk4dgbn"; depends=[curl jsonlite parsedate prettyunits]; };
@@ -14294,7 +14323,7 @@ in with self; {
   placer = derive2 { name="placer"; version="0.1.3"; sha256="0d7b6mkyyrcjn1pqxlj9mjis6vzks986i7vhc8ffkp8hz8sc7271"; depends=[]; };
   places = derive2 { name="places"; version="0.1.1"; sha256="08w6z5gbsskcbi5j1rml9mi9qdab6w2q58vz80h6xc6bh6mr0fab"; depends=[data_table dplyr geosphere googleway hms rgdal rlang sp stringr tidyr]; };
   plainview = derive2 { name="plainview"; version="0.1.1"; sha256="095y0cjp7g0h1kdbiwh1k2mj0ap8vm54nx8mf84ckamzc1jnmlfk"; depends=[gdalUtils htmltools htmlwidgets lattice png raster viridisLite]; };
-  plan = derive2 { name="plan"; version="0.4-3"; sha256="0j3mvcy97r7adcs7q6z0w9ng74jcfwii1xp8kcl2cwbzs2fd425r"; depends=[]; };
+  plan = derive2 { name="plan"; version="0.4-4"; sha256="0xpl1hrq0cs1bi8wn1bb1d4lmb6g1dfzp8wlwa9g2bc12yw5q8hg"; depends=[]; };
   planar = derive2 { name="planar"; version="1.6"; sha256="0x5xdb2afpc1w8s217hy765mz938kg5b5j7vzqzhlsh2dzdjccpj"; depends=[cubature dielectric ggplot2 plyr Rcpp RcppArmadillo reshape2 statmod]; };
   planets = derive2 { name="planets"; version="0.1.0"; sha256="01zh7lgaykr9p186yy0vksn2pmc69b3xxh78w7z6wclvqjb7zh1p"; depends=[]; };
   plantecophys = derive2 { name="plantecophys"; version="1.4-6"; sha256="1qf9a38n8nvvz8dvqra9mdsmkbkhxymjrin0wfis8g1ndf1f406c"; depends=[]; };
@@ -14308,17 +14337,16 @@ in with self; {
   pleio = derive2 { name="pleio"; version="1.6"; sha256="0av1sl0fdn2ia7ddalbvidhcnsvs36iq618s1bknjw29y5yyq020"; depends=[Matrix rms]; };
   pleiotest = derive2 { name="pleiotest"; version="1.0.0"; sha256="05mgz42wn1y7q8ffgvak22r3k40q9rv1qvpal8yycp83p7hdzg7v"; depends=[RColorBrewer Rcpp RcppArmadillo]; };
   plfMA = derive2 { name="plfMA"; version="2.0"; sha256="14v3q4sv3inax3b1sp0i4scrz70ca9yphzikhx0z9dh2w5mggq0k"; depends=[gWidgets2 gWidgets2tcltk limma RColorBrewer tkrplot]; };
-  plfm = derive2 { name="plfm"; version="2.2.3"; sha256="18knb9bc6nvr87c60m1mjr7088r71ba3sq9hkh9j4drhl08dqwf7"; depends=[abind sfsmisc]; };
-  plgp = derive2 { name="plgp"; version="1.1-7"; sha256="02g6saabrsd8pra0szbwcbilf6w5ywg2gxqb5zdvbxds2vw36hn0"; depends=[mvtnorm tgp]; };
+  plfm = derive2 { name="plfm"; version="2.2.5"; sha256="0vcr1abzslsds0w4y2gyrrlbmqmxi5007km5fbj1xq2mrwjmngpp"; depends=[abind sfsmisc]; };
+  plgp = derive2 { name="plgp"; version="1.1-9"; sha256="1wndhk4i2zngpvq85dgpwn80p5av7ksfap21wq95vf3zgmzy5x2a"; depends=[mvtnorm tgp]; };
   pliman = derive2 { name="pliman"; version="1.1.0"; sha256="0w7r5xf3n4w455wbbpwjfwzf6ia0p02v9gb23c4h1dg2v4ma4s02"; depends=[lattice]; };
   plink = derive2 { name="plink"; version="1.5-1"; sha256="0rn2i9i8af9aq0xgxhpcdchs2952lq2d2sg8x3js0zi3vcml76k0"; depends=[lattice MASS statmod]; };
   plinkFile = derive2 { name="plinkFile"; version="0.1.0"; sha256="0803hp822v9rqh4h437q2nmab19yamc4dbyi6iimm67ykp0d5xss"; depends=[]; };
   plinkQC = derive2 { name="plinkQC"; version="0.3.4"; sha256="0l5gf7wf33fhzby0n2qzph02v7an2gj2dji1i129hxsxqnynx7dy"; depends=[cowplot data_table dplyr ggforce ggplot2 ggrepel igraph optparse R_utils sys UpSetR]; };
   plm = derive2 { name="plm"; version="2.6-1"; sha256="1sanrpphdj6pc9f0xcixm19kkr0nl04zhywf7hklmadby4372318"; depends=[bdsmatrix collapse Formula lattice lmtest MASS maxLik nlme Rdpack sandwich zoo]; };
-  plmm = derive2 { name="plmm"; version="0.1-1"; sha256="1dfxd1mqqjy2mf7qc6mh4wx5ya9q8fkqgrf01apisb66xxx5zya7"; depends=[Formula nlme sm]; };
   pln = derive2 { name="pln"; version="0.2-2"; sha256="03jjmfr1dwz6p652y917g9rv2alyam9ws6xh9ig02d3w78b0rsv9"; depends=[]; };
   plogr = derive2 { name="plogr"; version="0.2.0"; sha256="0a8dhzlna79ggyhfr0nncgh15a9n6r0dsz664pz0ah323wpblqqf"; depends=[]; };
-  plot_matrix = derive2 { name="plot.matrix"; version="1.6.1"; sha256="0nw2irc7bl7pdpc8nj2yqvc942f1znsj9rn34nya611x1kgjffl7"; depends=[]; };
+  plot_matrix = derive2 { name="plot.matrix"; version="1.6.2"; sha256="1fsgzjcllrdlf55ww7dhyx1iaa59y2a6f1b1591j8m8in1fh7n6n"; depends=[]; };
   plot3D = derive2 { name="plot3D"; version="1.4"; sha256="1h59zlsyzbjylaziwavppl9bjmnba4iiq34772y3dys6fqclajnh"; depends=[misc3d]; };
   plot3Drgl = derive2 { name="plot3Drgl"; version="1.0.2"; sha256="15m48rzs96mgsnlf77823z2c58gry6hab00xg40myfba8j8li1xa"; depends=[plot3D rgl]; };
   plot3logit = derive2 { name="plot3logit"; version="3.1.0"; sha256="0iwhaly6lzpfaanyy1qayl6faihw5rkcnh21czdr1g0f9rjimyrb"; depends=[dplyr ellipse forcats generics ggplot2 ggtern lifecycle magrittr purrr Rdpack stringr Ternary tibble tidyr tidyselect]; };
@@ -14368,7 +14396,7 @@ in with self; {
   plus = derive2 { name="plus"; version="1.0"; sha256="1l7lvnq7vahj8m7knmr4q3wj00ar7iq89j45a2dqn2bh0qyj68ls"; depends=[]; };
   pluscode = derive2 { name="pluscode"; version="0.1.0"; sha256="1j9yr5j6mb346a5dn7v9bsppgnxdj1ryimlla4a08rv7bjyq5i6q"; depends=[httr jsonlite]; };
   plusser = derive2 { name="plusser"; version="0.4-0"; sha256="1g100dh8cvn9q09j0jbkw4xmwjdp1lm4651369975fm99nrlp1j9"; depends=[lubridate plyr RCurl RJSONIO]; };
-  plyr = derive2 { name="plyr"; version="1.8.6"; sha256="11sjjdn146w95s1vsfmmgdls082cbnm1slv98xvyjhsl2mpx4mga"; depends=[Rcpp]; };
+  plyr = derive2 { name="plyr"; version="1.8.7"; sha256="0zz88q055c38b9xqzfg1mwm7ikxzlyx3pnk16sfa8dbh2pqxm7vx"; depends=[Rcpp]; };
   pmc = derive2 { name="pmc"; version="1.0.4"; sha256="0y2h6r8dx721n0wwbc3i5j50j694kxanc4vxwr07939145bvpfac"; depends=[dplyr geiger ggplot2 ouch tidyr]; };
   pmcgd = derive2 { name="pmcgd"; version="1.1"; sha256="1pybzvyjmzpcnxrjsas06diy3x83i1r5491s6ccyr63l56hs55d5"; depends=[mixture mnormt]; };
   pmclust = derive2 { name="pmclust"; version="0.2-1"; sha256="0wldf0bj406qxmlc7hsbamiak7qcwf8ixng9dfkswh511m3p05jd"; depends=[MASS pbdMPI]; };
@@ -14380,22 +14408,22 @@ in with self; {
   pmml = derive2 { name="pmml"; version="2.5.2"; sha256="1faad5yqyh6dx40056w74vlyw4wxjgh41jv8b2vf2gh26laf22kk"; depends=[stringr XML]; };
   pmmlTransformations = derive2 { name="pmmlTransformations"; version="1.3.3"; sha256="0315kb5x04pidpzr04yaxyynp0mz4ilzp7vkspq4agjkds5hyc88"; depends=[]; };
   pmparser = derive2 { name="pmparser"; version="1.0.4"; sha256="0qf71w6m6cgmx2isizadihjxildqrxygm8vm906fb13ydxslj1xq"; depends=[data_table DBI foreach glue iterators jsonlite R_utils RCurl withr xml2]; };
-  pmpp = derive2 { name="pmpp"; version="0.1.1"; sha256="1srmkih6zsyf8yf1f045xy1afcz0if6nf1ncslgrq6rgm7330lkw"; depends=[data_table dplyr ggplot2 magrittr MASS Matrix minqa moments plm pracma]; };
   pmr = derive2 { name="pmr"; version="1.2.5"; sha256="0dq97dfjmgxlhr3a2n20vyyzfmamcicw878hdxpw31lw02xs6yls"; depends=[]; };
   pmsampsize = derive2 { name="pmsampsize"; version="1.1.2"; sha256="0msbkjpzssgkc4ndx9s1rb8mgg07bx7fdlq48j5s8ak8n1gwdkyk"; depends=[]; };
   pmultinom = derive2 { name="pmultinom"; version="1.0.0"; sha256="0p2amb3y4jl24r21fii1qpmdbn5pfgywrx8k7x1jxpg49rk7k0rp"; depends=[fftw]; };
   pmwg = derive2 { name="pmwg"; version="0.2.0"; sha256="1f1r66ml24ys7nx5558c189a4gcaqkr16y87dmi4ravick9l5yfi"; depends=[checkmate coda condMVNorm MASS MCMCpack mvtnorm]; };
-  pmxTools = derive2 { name="pmxTools"; version="1.2.1"; sha256="0r5y09ab6k31d7fbd5pn8lzaafq1ix2lrjci1bsvg0wwcxmdipw6"; depends=[chron data_tree DiagrammeR dplyr ggplot2 ggrepel gridExtra magrittr MASS stringr xml2]; };
+  pmxTools = derive2 { name="pmxTools"; version="1.2.3"; sha256="09hnkzxwbj025an5kn91sw1sanxlcnmsi9wz8545fkcna78384zk"; depends=[chron data_tree DiagrammeR dplyr ggdist gghalves ggplot2 ggrepel gridExtra magrittr MASS stringr tibble xml2]; };
+  pmxpartab = derive2 { name="pmxpartab"; version="0.5.0"; sha256="13r4xy0jvxdwjz3gic67fzgq87v18vs7df1ggd3hq89h6f28fxar"; depends=[data_table htmltools knitr table1]; };
   png = derive2 { name="png"; version="0.1-7"; sha256="0g2mcp55lvvpx4kd3mn225mpbxqcq73wy5qx8b4lyf04iybgysg2"; depends=[]; };
   pnmtrem = derive2 { name="pnmtrem"; version="1.3"; sha256="0053gg368sdpcw2qzydpq0c5v2cxdlwgf5k68cbw0yx41csjgvz0"; depends=[MASS]; };
-  poLCA = derive2 { name="poLCA"; version="1.4.1"; sha256="0bknnndcxsnlq6z9k1vbhqiib1mlzlx4badz85kc7a3xbrdrfs9f"; depends=[MASS scatterplot3d]; };
+  poLCA = derive2 { name="poLCA"; version="1.6.0"; sha256="1yg1iapmkpxdajnf1a8qn9b6namfka7a0jjh943h3zx9pdmc9b7h"; depends=[MASS scatterplot3d]; };
   pocketapi = derive2 { name="pocketapi"; version="0.1"; sha256="0n4fyx4ldm14zy3pz7gygwhahi3p25misvxlmy8l9kqqr51fg26a"; depends=[dplyr glue httr jsonlite magrittr purrr tibble usethis]; };
   pocrm = derive2 { name="pocrm"; version="0.13"; sha256="0d4iggxjbl95fz872q9v1wr30nga39sdd5dvwa2zrrm73ak81cz3"; depends=[dfcrm nnet]; };
   podcleaner = derive2 { name="podcleaner"; version="0.1.2"; sha256="1r8mvf8bw329n3ifi2dyy4220nbij2rgkvq1xlqzynxf8qadxbrl"; depends=[dplyr fuzzyjoin magrittr progress purrr readr rlang stringi stringr tibble tidyr]; };
   poems = derive2 { name="poems"; version="1.0.2"; sha256="194448cyzn6qqkikpgxi1n1m98i6dfiwg0016n34ssqpf3vvc6a1"; depends=[abc doParallel foreach gdistance geosphere lhs metRology R6 raster trend]; };
   pogit = derive2 { name="pogit"; version="1.2.0"; sha256="1kap1cpfp0k2vm7w4kjfja37n9z3j7ppiwvsdxl6bgpkf7kcnkp2"; depends=[ggplot2 logistf plyr]; };
   poibin = derive2 { name="poibin"; version="1.5"; sha256="1sxryvwwz6ldsnkzdy56p8c895s5yvpcai9ndyjv1x5q3l05wf9v"; depends=[]; };
-  poilog = derive2 { name="poilog"; version="0.4"; sha256="0bg03rd5rn4rbdpiv87i8lamhs5m7n7cj8qf48wpnirg6jpdxggs"; depends=[]; };
+  poilog = derive2 { name="poilog"; version="0.4.1"; sha256="17rq2p251bvzrimac3c5lshlzmwz9in5rl2qq27paz6qa1p429mi"; depends=[]; };
   pointRes = derive2 { name="pointRes"; version="2.0.0"; sha256="17rrdcpvd8v95g5vmbyq5gjpcc3rfbq3m6ajzc56fcizcqd4xx52"; depends=[DescTools dplR ggplot2 plyr TripleR]; };
   pointblank = derive2 { name="pointblank"; version="0.10.0"; sha256="0890ss04kvj3p8sj0nlrw9lnb2iy3hdg5lcni5sq2in8kxk59228"; depends=[base64enc blastula cli DBI dbplyr digest dplyr fs glue gt htmltools knitr magrittr rlang scales testthat tibble tidyr tidyselect yaml]; };
   pointdensityP = derive2 { name="pointdensityP"; version="0.3.5"; sha256="0n7p3b77m47avbr7n85knf31m9rlp43mdl3748ysj6wvxvhnivx4"; depends=[data_table]; };
@@ -14412,7 +14440,7 @@ in with self; {
   poistweedie = derive2 { name="poistweedie"; version="1.0.1"; sha256="0236cz8fn3la7df8mk1la8hmr0zzjc1majnq8p0c8grma833j6kp"; depends=[]; };
   poker = derive2 { name="poker"; version="0.8.8"; sha256="14ik77440z22k4kwq0p1fn7adzi0p8mh8j8hd7ayinvrab4b5r85"; depends=[]; };
   polaroid = derive2 { name="polaroid"; version="0.0.1"; sha256="0m3jbiz4n7mgbbdkd28m6dqsclyjcgshpxd6ws8df7zchx7fch07"; depends=[argonDash argonR colourpicker ggplot2 hexSticker png shiny shinyWidgets]; };
-  policytree = derive2 { name="policytree"; version="1.1.1"; sha256="0xk3l5cy46br73g8m1gm3dbim72asq0wfsa50mnchkhk42rxv6a3"; depends=[BH grf Rcpp]; };
+  policytree = derive2 { name="policytree"; version="1.2.0"; sha256="0ixw6b1zy4h51dzhmrfsghnqxm3mw221v5armsxnc88xpw2rac93"; depends=[BH grf Rcpp]; };
   polimetrics = derive2 { name="polimetrics"; version="1.2.1.14"; sha256="0zzqzcfmvb6a9lav5sdgzhx4637r068q3kyjqk1ykdjg2d7s7lrv"; depends=[car dplyr formula_tools ggplot2 gplots MASS purrr rlang rstatix stringr tidyverse]; };
   poliscidata = derive2 { name="poliscidata"; version="2.3.0"; sha256="1ywfhksc6gcc2xk5lp6s8nn4wib92sv7p3wq92dzabf75q6mscix"; depends=[abind car descr gplots Hmisc plotrix plyr survey weights xtable]; };
   polished = derive2 { name="polished"; version="0.6.1"; sha256="08n8pf1gqd2fyar9mawlvakg9nj715nx4vfnm8ywzb88gmkr64fg"; depends=[automagic digest dplyr DT htmltools httr jose jsonlite lubridate purrr rlang rmarkdown shiny shinycssloaders shinydashboard shinyFeedback shinyjs shinyWidgets stringr tibble tidyr uuid yaml]; };
@@ -14439,14 +14467,14 @@ in with self; {
   polypharmacy = derive2 { name="polypharmacy"; version="1.0.0"; sha256="1rimhy7z5xglkxfp3yh4vqm5g075n8g09nl4a8nxxf6cyl504gcv"; depends=[data_table doParallel foreach itertools lubridate stringr]; };
   polypoly = derive2 { name="polypoly"; version="0.0.2"; sha256="00c1hrnf575awvh0rlsnf6nkgi9p3fnqhd1knamkgb4icwi5s46d"; depends=[ggplot2 reshape2 rlang tibble]; };
   polyqtlR = derive2 { name="polyqtlR"; version="0.0.9"; sha256="0j879bvks6ldx53yfmac94p5n4p79pyq29ljdzbvajmxq5b57vf8"; depends=[abind doParallel foreach Hmisc knitr nlme RColorBrewer Rcpp RcppArmadillo reshape2]; };
-  polyreg = derive2 { name="polyreg"; version="0.7.0"; sha256="1vsg1ldhvdq8pmw16qiv62c5l52mh6ccjcz3i3v06150ma953gcn"; depends=[dummies nnet]; };
+  polyreg = derive2 { name="polyreg"; version="0.8.0"; sha256="0fh4yp9b35ag6snz6l85xmn0pc18qn0jggzsyk12g05dfb6r6qvw"; depends=[nnet]; };
   polysat = derive2 { name="polysat"; version="1.7-6"; sha256="0h2yqbr0mzv8lk24cd3q242prcz009q8vkvwm9iklpkw49zh8hq5"; depends=[Rcpp]; };
   polywog = derive2 { name="polywog"; version="0.4-1"; sha256="02qk1cyvkd77mwlvhj1zzzi0bmy7qxz29j2v730wp7rz4w7h5x5n"; depends=[foreach Formula glmnet iterators Matrix miscTools ncvreg Rcpp stringr]; };
   pom = derive2 { name="pom"; version="1.1"; sha256="02jv19apn0kmp1ric2cxajlaad2fmsz4nm4izd2c3691vzas7l83"; depends=[matrixcalc]; };
   pomcheckr = derive2 { name="pomcheckr"; version="0.1.1"; sha256="0fm2v388ya7v4vrb5rvilghlf49d15jlwz0isf95ldr81a55m9ij"; depends=[assertthat dplyr ggplot2 magrittr rlang stringr tidyr]; };
-  pomdp = derive2 { name="pomdp"; version="1.0.0"; sha256="1wj84qj7xssnw0a9985nr529i93z827b1js5i8mdsgxp8fdl1dgd"; depends=[igraph pomdpSolve]; };
+  pomdp = derive2 { name="pomdp"; version="1.0.1"; sha256="1nrww68lfczfjbcvbj6rc3llqmwl3mfg6cip09vy726yyqw2d6jb"; depends=[igraph pomdpSolve]; };
   pomdpSolve = derive2 { name="pomdpSolve"; version="1.0.0"; sha256="0iqpp1y8gz3ihifgln7b5xmwjrvripmkkwg6mr4938yqv7103mz1"; depends=[]; };
-  pomodoro = derive2 { name="pomodoro"; version="3.3.0"; sha256="170lvp27gyn189kcpn7nmnkfq2pj6i1ihxqjnf37h7m74msn64si"; depends=[caret dplyr gbm ipred pROC randomForest readr tibble]; };
+  pomodoro = derive2 { name="pomodoro"; version="3.8.0"; sha256="1y7a6097jlrrgqkxhb43n5nahf4m814inhmkm1495w0k5q1zmraf"; depends=[caret gbm ipred pROC randomForest tibble]; };
   pomp = derive2 { name="pomp"; version="4.1"; sha256="1yv29iqzzqdfr34z98x0l8j3s3c45jhaqvb83njv996g11wxbkw4"; depends=[coda deSolve digest magrittr mvtnorm plyr reshape2]; };
   pompom = derive2 { name="pompom"; version="0.2.1"; sha256="09jy4lrb2p71yk604ndfhqfz6znlc3bq72k42f0d1i1a8g3by8h6"; depends=[ggplot2 lavaan qgraph reshape2]; };
   pooh = derive2 { name="pooh"; version="0.3-2"; sha256="0qwa5j91aypasvsf4xcfbl6lz7llawdr38jiflzmfak2ad72rv7j"; depends=[]; };
@@ -14457,6 +14485,8 @@ in with self; {
   poolr = derive2 { name="poolr"; version="1.1-1"; sha256="1y8bish2s96b42xsld0x1nrjz9dzqhdr2w95vdpfymq7mg05d1ry"; depends=[mathjaxr]; };
   poorman = derive2 { name="poorman"; version="0.2.5"; sha256="05h7rjgri0b5a1jd0388p7lqvvg0y8z6g42f9bxc80jg1z730axr"; depends=[]; };
   pop = derive2 { name="pop"; version="0.1"; sha256="0hbxdrkasb69x7ipddvyrzl5vvc7dd6rzj1vy7v3chg3rzgq89cj"; depends=[igraph MASS]; };
+  pop_lion = derive2 { name="pop.lion"; version="1.0"; sha256="00si6jvm9whl7p0j21bfkqm79wxxflk9dg3171hjlvz5dxq6ypga"; depends=[abind]; };
+  pop_wolf = derive2 { name="pop.wolf"; version="1.0"; sha256="113l9skpggjxjpwxibfp611z2gnjikfqh6kmj6in52sn9q4yqv83"; depends=[abind]; };
   popEpi = derive2 { name="popEpi"; version="0.4.9"; sha256="1a79n3rry85qa52cn7zbhwbsyjgw7b72l97pw3p9sf2lgvacvxr1"; depends=[data_table Epi survival]; };
   popKorn = derive2 { name="popKorn"; version="0.3-0"; sha256="1zcl6ms7ghbcjyjgfg35h37ma8nspg15rk2ik82yalqlzxjf7kxw"; depends=[boot]; };
   popPCR = derive2 { name="popPCR"; version="0.1.1.1"; sha256="03ppgjmdp3rivlgqs7aq082j4rzndf9fw5aq8mzci7fvjkj7whc4"; depends=[mvtnorm]; };
@@ -14472,6 +14502,7 @@ in with self; {
   popsom = derive2 { name="popsom"; version="6.0"; sha256="1zjg55fs4j36rp75k0961pndjqd4w085lc7v83nprjpc7jnx45g6"; depends=[fields ggplot2 hash]; };
   poptrend = derive2 { name="poptrend"; version="0.1.0"; sha256="0hypxpb18azg6q1mqrphbx3x262h9ybwhlkb8fyd6vr7jjb5wn3h"; depends=[mgcv]; };
   populR = derive2 { name="populR"; version="0.1.4"; sha256="18va6wfqp3p2vmmiiasv3qnxdi4sbg2kl0s6a1i1qq6qpb7nq2y2"; depends=[Metrics rlang sf]; };
+  population = derive2 { name="population"; version="0.3"; sha256="00kagbz4pr4c5z6cb5w4y9nlbjzaa2awc45z2cvrivng76376br3"; depends=[abind]; };
   populationPDXdesign = derive2 { name="populationPDXdesign"; version="1.0.3"; sha256="0p73ddv3j1s1vs4j3axnsf39n626qjv0w1qlq9p7km4s6729bhgv"; depends=[devtools ggplot2 plyr roxygen2 shiny shinycssloaders]; };
   porridge = derive2 { name="porridge"; version="0.3.0"; sha256="0vv6qs937mgiaarwyjfs5g7lzw3sx630lslxldx9gcgkp2n5sd1h"; depends=[MASS Matrix mvtnorm Rcpp RcppArmadillo]; };
   portalr = derive2 { name="portalr"; version="0.3.9"; sha256="08f5pq6b0248p3akgw50y22dsmyzcnx5sjl58xqlyp3w1p57a3hd"; depends=[clipr clisymbols crayon dplyr forecast httr lubridate lunar magrittr rlang tidyr tidyselect zoo]; };
@@ -14523,6 +14554,7 @@ in with self; {
   ppmHR = derive2 { name="ppmHR"; version="1.0"; sha256="1fc9rrk3ir3dq5d518ih67dvknhz1ln6668wy2mzsdndaysgm12g"; depends=[nleqslv]; };
   ppmSuite = derive2 { name="ppmSuite"; version="0.2.1"; sha256="0mghp75lx63wyy5cx5npayidrvpqn6yalaw9xnbm5df9vdfdllaf"; depends=[]; };
   ppmf = derive2 { name="ppmf"; version="0.1.3"; sha256="0xphk27frlcr87jwjbgwf77c8bhv0nswmffj9ny2vd1b176bi9xn"; depends=[censable dplyr magrittr readr rlang stringr tibble tidyr zip]; };
+  ppmlasso = derive2 { name="ppmlasso"; version="1.2"; sha256="0pdafk8f8z92v4rs0n78sj9gy80l2nr9n91y2icbchgh8fa1hi1m"; depends=[data_table lattice plyr spatstat spatstat_core spatstat_geom]; };
   pps = derive2 { name="pps"; version="1.0"; sha256="0k06rkzdx07qcndqym44q6xyawdd253i3kbyqlmlavadsizp657g"; depends=[]; };
   ppsbm = derive2 { name="ppsbm"; version="0.2.2"; sha256="0y4whxv14jqx7mqxj7n427vpbxb5rkwj8xvx0mj4knnwy9v437z4"; depends=[clue gtools Rfast]; };
   ppseq = derive2 { name="ppseq"; version="0.1.1"; sha256="0r1si156d806l35241fy85cr98j2mmsmc63nwilhr2px9272r75b"; depends=[dplyr furrr future ggplot2 patchwork plotly purrr tibble tidyr]; };
@@ -14534,17 +14566,16 @@ in with self; {
   pracma = derive2 { name="pracma"; version="2.3.8"; sha256="0r17siivm37k4gp253v9mlg5m7cwqp85h9kk2hbp2wkf81ad80i3"; depends=[]; };
   prais = derive2 { name="prais"; version="1.1.2"; sha256="16h3771lr6vn0g92bfpdq7r3wpdkspbhmrl5948p4isc5qxy2cgx"; depends=[lmtest pcse sandwich]; };
   praise = derive2 { name="praise"; version="1.0.0"; sha256="1gfyypnvmih97p2r0php9qa39grzqpsdbq5g0fdsbpq5zms5w0sw"; depends=[]; };
-  praktikum = derive2 { name="praktikum"; version="0.1"; sha256="0kkydgglvqw371fxh46fi86fmdndhwq1n8qj0ynbh2gz1cn86aw1"; depends=[]; };
   praznik = derive2 { name="praznik"; version="10.0.0"; sha256="199g6wgda6m8ym9kg3qbx42c21bigg9bxkga950k2hdm3f1xa62g"; depends=[]; };
   prcbench = derive2 { name="prcbench"; version="1.0.2"; sha256="0ilann11cfmbw7xj7j6y6j5y0hlfjf7wvfbq2hfvlxi87hijh3ka"; depends=[assertthat ggplot2 gridExtra memoise precrec PRROC R6 ROCR]; };
   prclust = derive2 { name="prclust"; version="1.3"; sha256="0p0sf8248aigs99py8mpzz743jnrf7n1nv5shag15arxz9yx7zn3"; depends=[Rcpp]; };
   prcr = derive2 { name="prcr"; version="0.2.1"; sha256="0k5vl14akqf8qvak6h7a19qxn4wzpyxq7lyvdhxfh8l4gs4ca2l6"; depends=[class dplyr forcats ggplot2 irr lpSolve magrittr purrr tibble tidyr]; };
-  pre = derive2 { name="pre"; version="1.0.2"; sha256="1j2jcq51gkqzy1ip4inf9j3z1p9cr134vjf6mfpq4331hp493hql"; depends=[earth Formula glmnet Matrix MatrixModels partykit rpart stringr survival]; };
+  pre = derive2 { name="pre"; version="1.0.4"; sha256="12imjk191f38y5sr3n344wpg0r03nrhh7s4dbxgzq63as9x9snrr"; depends=[earth Formula glmnet Matrix MatrixModels partykit rpart stringr survival]; };
   precintcon = derive2 { name="precintcon"; version="2.3.0"; sha256="1sf0mfqa77aqhbx3hg8pv582ibmfnv6vigqcd3xqsbq7nigy2ms9"; depends=[ggplot2 scales]; };
   precisePlacement = derive2 { name="precisePlacement"; version="0.1.0"; sha256="1w48k4kv3xm8br7dgbpx2rcdxjh0g0aw8xa1snqy0ig8a992804b"; depends=[]; };
   precisely = derive2 { name="precisely"; version="0.1.2"; sha256="1zzg2fgf58gjq081rklqjf8wxz8mf7rc3vyhbji3j3n6j0x125n4"; depends=[dplyr ggplot2 magrittr purrr rlang shiny shinycssloaders shinythemes tidyr]; };
   precommit = derive2 { name="precommit"; version="0.2.2"; sha256="12fq44s16qjbjr6n1cj0z7w3a01bqs5grpnd1mx2sph33xizcmal"; depends=[cli fs here magrittr purrr R_cache rlang rprojroot rstudioapi withr yaml]; };
-  precrec = derive2 { name="precrec"; version="0.12.8"; sha256="0kwn902z32qcnkffjm6dqnaxagx31xjdcak50clbgrway2pcdjrm"; depends=[assertthat data_table ggplot2 gridExtra Rcpp withr]; };
+  precrec = derive2 { name="precrec"; version="0.12.9"; sha256="1dfz2rqx2ww2l5r40ahg0qdj3rjrwiwh427mw7j5ynhpcj21j2qm"; depends=[assertthat data_table ggplot2 gridExtra Rcpp withr]; };
   predReliability = derive2 { name="predReliability"; version="0.1.0"; sha256="18s9ijg3fcg6qb0y6pnwngmv69ajm93z0xjdzkq3fp5bxk1qylyb"; depends=[cluster rpart]; };
   predfairness = derive2 { name="predfairness"; version="0.1.0"; sha256="0b9d6a2rk6vw4y5hnh721gmirnm419yynbfg7arjb96558l282kd"; depends=[]; };
   predhy = derive2 { name="predhy"; version="1.2.0"; sha256="0iwlv9j0xpsl2xkvy7yb1irjg67d8xq13bzgjj8i4rqqhv12ap57"; depends=[BGLR doParallel foreach glmnet pls randomForest xgboost]; };
@@ -14554,6 +14585,7 @@ in with self; {
   predictmeans = derive2 { name="predictmeans"; version="1.0.6"; sha256="1mg37vd5nlfvv3mx6hrdmxj0aavm9wy1j70117hp4sasvlvsccdi"; depends=[ggplot2 lme4 lmeInfo Matrix nlme pbkrtest plyr]; };
   predictoR = derive2 { name="predictoR"; version="2.0.5"; sha256="0h0dn8xwl0i1z95frk37zmivjrvadl5g0skirfavpk9fd8s0fvg6"; depends=[colourpicker config DT echarts4r glmnet golem htmltools rlang rpart rpart_plot shiny shinyAce shinycustomloader shinydashboard shinydashboardPlus shinyjs traineR xgboost xtable]; };
   predictrace = derive2 { name="predictrace"; version="2.0.0"; sha256="1bk1l9gai4hyck72h81znsm1dzqwm5wddbz0bm9g5igs6zkar2ka"; depends=[dplyr]; };
+  predieval = derive2 { name="predieval"; version="0.1.0"; sha256="1883dv3sdrf0dy55k5mlaaycr73xr86ly23x58rci2xhm3g4lpy7"; depends=[ggplot2 Hmisc MASS Matching]; };
   predint = derive2 { name="predint"; version="1.0.0"; sha256="043nsjvn88dhwvp5snbhmh64m8iy22ws4l474mbkm3rb488i9is9"; depends=[dplyr lme4]; };
   predkmeans = derive2 { name="predkmeans"; version="0.1.1"; sha256="0352c50zlyzn8fczrkinayllj9jp978njjl7dazzkzypx0p20va5"; depends=[e1071 maxLik mgcv Rcpp RcppArmadillo]; };
   predtools = derive2 { name="predtools"; version="0.0.2"; sha256="1bp0pvpd6s190q9kylvkcfh61jblbsla4d7rmnqv2rhza71mdfkj"; depends=[dplyr ggplot2 magrittr pROC RConics Rcpp]; };
@@ -14592,11 +14624,12 @@ in with self; {
   prewas = derive2 { name="prewas"; version="1.1.1"; sha256="16dpwpks0sqfq7pdhbpipb8hnm2viic2dnz1g7v86ar51z8db4xk"; depends=[ape future future_apply phangorn vcfR]; };
   priceR = derive2 { name="priceR"; version="0.1.6"; sha256="1c2yxjrd9v5i76hc5dn0hc6k2shy9cs32mvhr579w7n990ksjw23"; depends=[curl dplyr gsubfn jsonlite lubridate purrr stringi stringr]; };
   pricesensitivitymeter = derive2 { name="pricesensitivitymeter"; version="1.2.2"; sha256="0clbc1p809rjgqilv548ck7pfbyajkp2i47vxx8yrrdgkx824gpn"; depends=[ggplot2 rlang survey]; };
+  prider = derive2 { name="prider"; version="1.0.4"; sha256="0sinaav8vwdd9aqgpnclah6kyw0r7afr39kz1ms9w8r6sya62q5g"; depends=[blaster dplyr gplots magrittr purrr Rcpp stringr tibble tidyr]; };
   prim = derive2 { name="prim"; version="1.0.20"; sha256="0z07ddpz6r3sbi5141n9a0snzcc26rdlxiivfnacs8zavs1sk73x"; depends=[plot3D scales]; };
   primePCA = derive2 { name="primePCA"; version="1.2"; sha256="0w3w50x17q7gwji19m6dx5vq46h8p62alf3axd10mycl609jlbcb"; depends=[MASS Matrix softImpute]; };
   primefactr = derive2 { name="primefactr"; version="0.1.1"; sha256="11hi75jwjxrl9p5m8yjwjb20pc9y9vkhi8sjrnisdq2hm53m483w"; depends=[]; };
   primer = derive2 { name="primer"; version="1.2.0"; sha256="0qs4bzh80a6058v3s25z0w64wqpscgcciqbyqdifixl51z2qadf4"; depends=[deSolve ggplot2 tidyr]; };
-  primerTree = derive2 { name="primerTree"; version="1.0.5"; sha256="1ymj4y0a8pd0r15bsqilm03b2n0a633ibzzp2h0qkv880xqbikz4"; depends=[ape directlabels foreach ggplot2 gridExtra httr lubridate plyr RCurl reshape2 scales stringr XML]; };
+  primerTree = derive2 { name="primerTree"; version="1.0.6"; sha256="1w2xmmpqsp8plwsacfknkjkgs4x1fksrks614jwlg6fll4zxh42n"; depends=[ape directlabels foreach ggplot2 gridExtra httr lubridate plyr reshape2 scales stringr XML]; };
   primes = derive2 { name="primes"; version="1.1.0"; sha256="0dy0pir88mblcm8g8mrgxs6fynayqgkcr4g40ghqincwzjd97xlv"; depends=[Rcpp]; };
   princurve = derive2 { name="princurve"; version="2.1.6"; sha256="0wzk329bxljkzz57y220lsfckpsn45w348m6dcxh29zbj0ik65h2"; depends=[Rcpp]; };
   prinsimp = derive2 { name="prinsimp"; version="0.8-8"; sha256="074a27ml0x0m23hlznv6qz6wvfqkv08qxh3v1sbkl9nxrc7ak4vn"; depends=[]; };
@@ -14627,7 +14660,7 @@ in with self; {
   processcheckR = derive2 { name="processcheckR"; version="0.1.3"; sha256="14d8148zcnyh9ycqy5nyszrafq3mgck87w80kx2apg52gkdaq18g"; depends=[bupaR dplyr edeaR glue rlang stringr]; };
   processmapR = derive2 { name="processmapR"; version="0.3.4"; sha256="0kq940j8frmbal1nqxwv7wshkyv7y3vhax6zr0ngkf18xv73y76z"; depends=[BH bupaR data_table DiagrammeR dplyr edeaR forcats ggplot2 ggthemes glue hms htmltools miniUI plotly purrr RColorBrewer Rcpp rlang scales shiny stringr tidyr]; };
   processmonitR = derive2 { name="processmonitR"; version="0.1.0"; sha256="1ckr438yifpsh095j6bb65dq3rdm7cfm8k7qsjmcqwjkww4j74z8"; depends=[bupaR dplyr edeaR ggplot2 magrittr miniUI shiny]; };
-  processx = derive2 { name="processx"; version="3.5.2"; sha256="0azw8sx6nv6pp8m8jrwq01b9na2swrnznn7dwrhn07268w82svzd"; depends=[ps R6]; };
+  processx = derive2 { name="processx"; version="3.5.3"; sha256="0ail3w8n5g1ibdamgpxcfpla18kqkilmppiasm7ms67cavx2k5k7"; depends=[ps R6]; };
   procmaps = derive2 { name="procmaps"; version="0.0.4"; sha256="0mxg478fw068ngn01hdrjcdc0v3wn4szk7x60a10i2c68fnyqf2k"; depends=[]; };
   prodest = derive2 { name="prodest"; version="1.0.1"; sha256="16nqgd9wrjfxymwbxrnlak54cagbv3fxgbql0w5bxnmyrbbqy509"; depends=[AER DEoptim dplyr Matrix Rsolnp]; };
   prodigenr = derive2 { name="prodigenr"; version="0.6.1"; sha256="1skjznwi6yipdcfbby1jzl8ng42hbn5zb9z31yxrp0ljhx1g0y70"; depends=[cli fs rlang rmarkdown rprojroot whisker withr]; };
@@ -14641,7 +14674,7 @@ in with self; {
   profileModel = derive2 { name="profileModel"; version="0.6.1"; sha256="01m5nb8cmq0aq555pxk2a99182si65hhmn68yn9nal2j3zl2bp4i"; depends=[]; };
   profileR = derive2 { name="profileR"; version="0.3-5"; sha256="0fgc7585a7194c67irafjnx8g2j6mn3qhcfn76c6dh28clp20qp9"; depends=[ggplot2 lavaan RColorBrewer reshape]; };
   profmem = derive2 { name="profmem"; version="0.6.0"; sha256="0gg6ja0ifwn9jj42rw1gnyil55sl9r2y5rjb6yjcvqwd5arajp3l"; depends=[]; };
-  profoc = derive2 { name="profoc"; version="0.9.1"; sha256="033c036ck273zxg0k7qjcvgxm5k05gjxrvnqvyw7hh9g4lgh8824"; depends=[abind Matrix Rcpp RcppArmadillo RcppProgress splines2]; };
+  profoc = derive2 { name="profoc"; version="0.9.2"; sha256="1fygf5hn8wqbv4xpg4cqxfa1a887bhjx2y5iv84rfvzsb6h9ac7r"; depends=[abind Matrix Rcpp RcppArmadillo RcppProgress splines2]; };
   profr = derive2 { name="profr"; version="0.3.3"; sha256="00bv1q0qn46nz4zjfs0l2yfh3hk71rajlp2rrlwg442z11k79ap9"; depends=[plyr stringr]; };
   proftools = derive2 { name="proftools"; version="0.99-3"; sha256="095pxyyv6k818qwcjygbz1h24k0xkqi1agns8cqh2m5g64aynd70"; depends=[]; };
   profvis = derive2 { name="profvis"; version="0.3.7"; sha256="1f86m426pcf90l29hf4hkirzf8f38dihk52bxbdq2gvrrdili5s3"; depends=[htmlwidgets stringr]; };
@@ -14653,7 +14686,7 @@ in with self; {
   projections = derive2 { name="projections"; version="0.5.4"; sha256="1c7fm2f3fx0905afw3nrbv6vv0a0awpml1rl2kaxnijjgqcxa6dg"; depends=[ggplot2 incidence]; };
   projects = derive2 { name="projects"; version="2.1.3"; sha256="0ljrhswr5sfq051x0aicl9yvwakw9d9drgrmcz9d8qhgw1if0mky"; depends=[dplyr fs lubridate magrittr purrr readr rlang rstudioapi sessioninfo stringr tibble vctrs zip]; };
   projmgr = derive2 { name="projmgr"; version="0.1.0"; sha256="1iysxcl6awvp7zbm04zyq4d9659fcz3sy711jnycsxhsk8hsvmc2"; depends=[gh magrittr]; };
-  projpred = derive2 { name="projpred"; version="2.0.2"; sha256="0nx514mrfh3gv854pr71w5x3zgdnn0kinf5nh7z90q3h7ysry2mg"; depends=[dplyr gamm4 ggplot2 lme4 loo magrittr MASS mgcv optimx Rcpp RcppArmadillo rngtools rstantools tidyverse]; };
+  projpred = derive2 { name="projpred"; version="2.1.1"; sha256="170pskvcsyk22xl4q8mklx8nw29miqzb42wajcab7bki8ap1ix46"; depends=[dplyr gamm4 ggplot2 lme4 loo magrittr mgcv mvtnorm Rcpp RcppArmadillo rlang rstantools]; };
   prome = derive2 { name="prome"; version="0.0.0.8"; sha256="1c9jzpapjyfhpxvjw59p7ch99la00c7nhmvdmsxc4fwi0wcj9pb1"; depends=[BH Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
   promethee123 = derive2 { name="promethee123"; version="0.1.0"; sha256="0s1wkcrvm32dpqg9ahn10kni1xv3ll7akqz4y6yn1d36km81bf21"; depends=[cowplot ggplot2]; };
   promises = derive2 { name="promises"; version="1.2.0.1"; sha256="1dy4cbqw17awh4q8m7cy3anaj0n9iynabfzflb1g94cyj0bq4fld"; depends=[later magrittr R6 Rcpp rlang]; };
@@ -14668,8 +14701,8 @@ in with self; {
   prophet = derive2 { name="prophet"; version="1.0"; sha256="06mryavky9xj54ig4scqjgpx7i56nwhs53g0zqsbs9f6qxja7gll"; depends=[BH dplyr dygraphs extraDistr ggplot2 lubridate Rcpp RcppEigen RcppParallel rlang rstan rstantools scales StanHeaders tidyr xts]; };
   proportion = derive2 { name="proportion"; version="2.0.0"; sha256="0a71f6hz6blb7550m9x0di84vp51yjhnn952301rwlrh3axf6dbr"; depends=[ggplot2 TeachingDemos]; };
   propr = derive2 { name="propr"; version="4.2.6"; sha256="16ghgzpwz6q9zlaa0pc8wqv0wpz81c75n7zwjyr1lv9y19qwlkfg"; depends=[fastcluster ggplot2 igraph Rcpp]; };
-  prospectr = derive2 { name="prospectr"; version="0.2.3"; sha256="1c2p9dy6h6w31v1hviqjr3kkzzzd303s64qhywcjp0ymjvbzlprp"; depends=[foreach iterators lifecycle mathjaxr Rcpp RcppArmadillo]; };
-  protViz = derive2 { name="protViz"; version="0.7.0"; sha256="0l1pmfr9kmc90rl5s9b0141451rxrjmiiasp3lsvl2x3ps0smqaj"; depends=[Rcpp]; };
+  prospectr = derive2 { name="prospectr"; version="0.2.4"; sha256="0hxsm0k5f9gydc9i5952dy3viknai5bi1irkzdvxvcp10wl4piic"; depends=[foreach iterators lifecycle mathjaxr Rcpp RcppArmadillo]; };
+  protViz = derive2 { name="protViz"; version="0.7.3"; sha256="0f6jwzcqi0w37hvg3i5dlk0c3anpkqh54ibf94vaf17r8sykr4nw"; depends=[Rcpp]; };
   protag = derive2 { name="protag"; version="1.0.0"; sha256="1iaw2w1d7hdvlg5vplpqc49wq08dgmm0ifvp2v0ggqb8invvdnw8"; depends=[dplyr ggplot2 RColorBrewer]; };
   protein8k = derive2 { name="protein8k"; version="0.0.1"; sha256="11qj4sadhcsp1kk5kjmvzj2jnd3srsm5mp0q9h9khp1ps6dk35yw"; depends=[dplyr ggplot2 gridExtra lattice magick pryr rjson rlang shiny]; };
   proteomicdesign = derive2 { name="proteomicdesign"; version="2.0"; sha256="01s47pgwxy4xx10f3qmbfv59gbaj0qw017kpkpsn33s8w7ad63r0"; depends=[MASS]; };
@@ -14677,7 +14710,7 @@ in with self; {
   proteus = derive2 { name="proteus"; version="1.0.0"; sha256="0kasp1mmhzh8rkvxxcq44wcn9fg6q85wr3albxwi0cav0kkxhkzh"; depends=[abind actuar bizdays dplyr fANCOVA ggplot2 imputeTS lubridate modeest moments narray purrr readr scales stringr tictoc torch VGAM]; };
   proto = derive2 { name="proto"; version="1.0.0"; sha256="1l843p8vckjckdhgv37ngv47fga5jzy0n00pmipvp05nnaixk54j"; depends=[]; };
   protoclass = derive2 { name="protoclass"; version="1.0"; sha256="17d2m6r1shgb47v8mwdg1a7f5h29m5l7f5m0nsmv0xc90s9cpvk8"; depends=[class]; };
-  protoclust = derive2 { name="protoclust"; version="1.6.3"; sha256="1jwfzlxyi2mx3mry2xr2glc6fm6a9jc8fhsdzjbb4zgx7vx2vpqv"; depends=[]; };
+  protoclust = derive2 { name="protoclust"; version="1.6.4"; sha256="0cbl9jxdc2j4z5viczl70zcd9z83qlipvkqi5f2bpypyvi2s0xs1"; depends=[]; };
   protolite = derive2 { name="protolite"; version="2.1.1"; sha256="0g1r3lzmvx1w44qzqzdvxfn21zmz11srlp6cr76kd7pd5wzjv82p"; depends=[jsonlite Rcpp]; };
   proton = derive2 { name="proton"; version="1.0"; sha256="1mgaw54is8l6ac1rf8s70rj7kv9xgsfdrlvjz01ggfwg7c6pyr3s"; depends=[digest]; };
   prototest = derive2 { name="prototest"; version="1.2"; sha256="07g58hq2qdpczqhjsv6dq1bya9rs958r103n91icw5yc19bvyhi2"; depends=[glmnet intervals MASS Rcpp RcppArmadillo]; };
@@ -14688,7 +14721,6 @@ in with self; {
   provExplainR = derive2 { name="provExplainR"; version="1.1"; sha256="1jgxmpzgigpbdqh3r8gy6h0akv11ssl494h2jscdyb8zpjmc92fg"; depends=[diffobj digest dplyr provParseR stringr]; };
   provGraphR = derive2 { name="provGraphR"; version="1.0"; sha256="0s2hj8j3rjig37wpjlr2fgw2klwr6a26mxrnk1lq5d9262x6v3aa"; depends=[igraph Matrix provParseR]; };
   provParseR = derive2 { name="provParseR"; version="0.3"; sha256="0cmyb6da9l0822xrzni19r1ha6zzya385hk2ym9rmchvb34lax53"; depends=[jsonlite]; };
-  provSummarizeR = derive2 { name="provSummarizeR"; version="1.4.2"; sha256="1pfnrvgqzpdhrsyh0y75idwj13zgcdj7ql6frpjmc0f5cggv7q1q"; depends=[dplyr provParseR]; };
   provTraceR = derive2 { name="provTraceR"; version="1.0"; sha256="19iillyh5zw64mmr6ik4ci1n2p651xqzxa4iq5bwa70imbzyy5ip"; depends=[provParseR]; };
   provViz = derive2 { name="provViz"; version="1.0.8"; sha256="0zdfvr9mj2d7h20ahq2fksqqjg6isbhhf4kwg2brxb5fcb9462a4"; depends=[]; };
   provenance = derive2 { name="provenance"; version="3.3"; sha256="0kdpv1gjvgv9nxfsarm1z042xas9d4n2smhrqccs450a2mhb5fxr"; depends=[IsoplotR MASS]; };
@@ -14733,9 +14765,9 @@ in with self; {
   pstest = derive2 { name="pstest"; version="0.1.3.900"; sha256="1rhd4vgqpr9yq0pc3xql3nfgl30v20ldywapp9n967ky2dja4k0z"; depends=[glmx MASS]; };
   psy = derive2 { name="psy"; version="1.1"; sha256="027whr670w65pf8f7x0vfk9wmadl6nn2idyi6z971069lf01wdlk"; depends=[]; };
   psycModel = derive2 { name="psycModel"; version="0.3.2"; sha256="0yb826sc8xajbai7x6p0ryvas3jizn3n8j0y7blykb4vhvcabq3x"; depends=[dplyr ggplot2 glue insight lavaan lifecycle lme4 lmerTest parameters patchwork performance psych rlang stringr tibble tidyr]; };
-  psych = derive2 { name="psych"; version="2.1.9"; sha256="032h33i2qlwsw2iq82nri5y8hs7d593w40aghcvnibpi2wxf0x8l"; depends=[lattice mnormt nlme]; };
+  psych = derive2 { name="psych"; version="2.2.3"; sha256="0fi7gcaxcb1mdyfpgjm03sxz3qgp1s0hnrgx8pyswni5skb903pn"; depends=[lattice mnormt nlme]; };
   psychReport = derive2 { name="psychReport"; version="3.0.1"; sha256="0mii4n24dfc8rh6jz81sil2wn9ml6vdaqn5m8caf3glv9k0v812c"; depends=[broom cli dplyr ez xtable]; };
-  psychTools = derive2 { name="psychTools"; version="2.1.12"; sha256="0fqxlggbhi5g016vyiby8g42ll0080fig15p689cas2ydwn5zklk"; depends=[foreign psych]; };
+  psychTools = derive2 { name="psychTools"; version="2.2.3"; sha256="055wj4vx3aybraf7b9picpylawim2681bcgb6ad85gs07s1xin87"; depends=[foreign psych]; };
   psychmeta = derive2 { name="psychmeta"; version="2.6.2"; sha256="0yacf2d2svb95a95cxa37szxpags156kwmn5knpfyn4hgbwp390g"; depends=[boot curl dplyr ggplot2 mathjaxr metafor progress purrr rlang tibble tidyr]; };
   psycho = derive2 { name="psycho"; version="0.6.1"; sha256="1a3qccr9jwrbwkfbrvckkhhk9qygrc5n4mq80kpzx0zy5bylxi0a"; depends=[bayestestR dplyr effectsize ggplot2 insight parameters scales stringr]; };
   psychomix = derive2 { name="psychomix"; version="1.1-8"; sha256="0lfhfcmrk65gkr1yp317b515vmadbcf0vjcnc76d07yp6yfkz5qw"; depends=[flexmix Formula lattice modeltools psychotools]; };
@@ -14744,7 +14776,7 @@ in with self; {
   psychotree = derive2 { name="psychotree"; version="0.15-4"; sha256="0ni8ajl0hzl4spm71c0myhv16an00j0brb4gyzg2fgkqs6rm34l2"; depends=[Formula partykit psychotools]; };
   psychrolib = derive2 { name="psychrolib"; version="2.5.2"; sha256="0d43zhpl5ik90hqpdy62x7rwmxag3z1mdrn3cl1whr04rmymhk20"; depends=[Rcpp]; };
   psychtm = derive2 { name="psychtm"; version="2021.1.0"; sha256="1qx3ks23wyi7c53p05jq2w18qz0kym0j43japz9sgj6zyh0c5649"; depends=[coda label_switching Rcpp RcppArmadillo RcppProgress rlang tibble]; };
-  psymetadata = derive2 { name="psymetadata"; version="1.0.0"; sha256="16xcjxa8h7x58ssvdmiy1byxxmppmxjgf9m5xacm6w1nyw062jd5"; depends=[Rdpack]; };
+  psymetadata = derive2 { name="psymetadata"; version="1.0.1"; sha256="1m1b1fhiv31hjc7iy20c065w25mgzmsbp0vlh2vlzrlqmfw0qpwv"; depends=[Rdpack]; };
   psymonitor = derive2 { name="psymonitor"; version="0.0.2"; sha256="09288w2bk5jhnbyj516jqn5qb33yqqg5kqbg6ylqk7anlq2yg2sl"; depends=[doParallel foreach magrittr]; };
   psyntur = derive2 { name="psyntur"; version="0.1.0"; sha256="0dh7vdj3ynsxibcf0wmh5h4yknijg78azjzlma25glihpgd2nbbw"; depends=[dplyr effsize ez fastDummies formula_tools GGally ggplot2 ggthemes magrittr plyr psych purrr rlang tidyr tidyselect]; };
   psyphy = derive2 { name="psyphy"; version="0.2-3"; sha256="1cf134l5j7ggclr08jb5vrj4jv4gq9s1b3njj0ic4263xg8wvv6n"; depends=[]; };
@@ -14753,7 +14785,7 @@ in with self; {
   ptf = derive2 { name="ptf"; version="0.0.1"; sha256="1s9nzn823z2capil83vcfs7frg8f6bpygx8aw1zz4sacnhvryr52"; depends=[Matrix plyr rARPACK Rcpp RcppArmadillo]; };
   ptinpoly = derive2 { name="ptinpoly"; version="2.8"; sha256="126chp92ha48agx5i819bzdij79zbgj32msijvaid3zhxjx7qy1j"; depends=[misc3d]; };
   ptm = derive2 { name="ptm"; version="0.2.5"; sha256="0q3j081fhs0pin8zx6m280hc000cdf9dmbmilyf88c0ryd1cx5bb"; depends=[bio3d Biostrings curl httr igraph jsonlite muscle RCurl seqinr xml2]; };
-  ptmixed = derive2 { name="ptmixed"; version="1.1.1"; sha256="12yjm73grs14gzwnh61qp0vzbikmwfl1f26s9xfclsp6g61k3rzg"; depends=[aod GLMMadaptive lme4 matrixcalc moments mvtnorm numDeriv tweeDEseq]; };
+  ptmixed = derive2 { name="ptmixed"; version="1.1.2"; sha256="0q17xxxl0kd2k5qj2b9srfmhrbjzk0bkb6a1biasaq2inzgy29jn"; depends=[GLMMadaptive lme4 matrixcalc moments mvtnorm numDeriv tweeDEseq]; };
   pts2polys = derive2 { name="pts2polys"; version="0.1.3"; sha256="0rmgryv0vds20npvaqvvwrhrx0grfcz9qwdy2w3bx945r0chhw39"; depends=[Rcpp]; };
   ptspotter = derive2 { name="ptspotter"; version="1.0.1"; sha256="1yppjmsxx01n9x0a0bbqsaxjixvrzyjq3112p94igg2xpp6h6cvl"; depends=[beepr log4r pryr stringr this_path]; };
   ptsuite = derive2 { name="ptsuite"; version="1.0.0"; sha256="1df273p8v6zvhy2jj6imhjigwj77grx6sxqmg0sidxwqny5d1d9c"; depends=[Rcpp]; };
@@ -14762,7 +14794,7 @@ in with self; {
   ptwikiwords = derive2 { name="ptwikiwords"; version="0.0.3"; sha256="129dad1vy52sf97dqrkwa49vjhv2kvs4pmd5zvq8pxd51hqm6wy9"; depends=[]; };
   ptycho = derive2 { name="ptycho"; version="1.1-4"; sha256="1llk3rpk0lf80vwvs23d6dqhgyic3a6sfjc393csj69hh01nrdvc"; depends=[coda plyr reshape2]; };
   pubchunks = derive2 { name="pubchunks"; version="0.3.0"; sha256="14jzl0ra0d68s246a9jhfgp1wyy9g7d0rzahvl97crkklld1crvx"; depends=[data_table rcrossref xml2]; };
-  pubh = derive2 { name="pubh"; version="1.2.5"; sha256="0gqiqrj1w4arwlfvwllghdq5p85yl0aqabfij54wgvgs34nfmqjb"; depends=[car dplyr emmeans Epi epiR epitools ggformula ggplot2 gtsummary Hmisc huxtable lmtest magrittr moonBook sandwich sjlabelled sjmisc sjPlot survival tibble tidyselect]; };
+  pubh = derive2 { name="pubh"; version="1.2.7"; sha256="0l87x8mnjssvbcwsm48gsn2mmidkhk7gzy5x2v6qrcxcxw32pm68"; depends=[car dplyr emmeans Epi epiR epitools ggformula ggplot2 gtsummary Hmisc huxtable lmtest magrittr moonBook sandwich sjlabelled sjmisc sjPlot survival tibble tidyselect]; };
   publipha = derive2 { name="publipha"; version="0.1.1"; sha256="0ssmkz4bbrp5yvqb2da0i6shzm59ydw2sqkmqkid039782sibjch"; depends=[BH loo Rcpp RcppEigen rstan rstantools StanHeaders truncnorm]; };
   pubmed_mineR = derive2 { name="pubmed.mineR"; version="1.0.19"; sha256="0yh4gjhh7nw5vh3ksay2z5pgskmasbagzbgb3bfxch9b6arv6kgc"; depends=[boot R2HTML RCurl RJSONIO XML]; };
   pubmedR = derive2 { name="pubmedR"; version="0.0.3"; sha256="153br94iqayrvvgzrzx0r3ilcrmnznfdnzk8yaii01s8i1g1wxcd"; depends=[rentrez XML]; };
@@ -14772,13 +14804,13 @@ in with self; {
   pulsar = derive2 { name="pulsar"; version="0.3.7"; sha256="0gafp8mcp34c1j93sixy3413c32vn0xy8vhxm0b8v2mznbizgjbq"; depends=[Matrix]; };
   pulseTD = derive2 { name="pulseTD"; version="0.1.0"; sha256="0sdnswinpnm0vvplrh5gl9gx4p03dx175mqxzg5r52rkzd3rfbsr"; depends=[AnnotationDbi Biobase GenomicAlignments GenomicFeatures ggplot2 Rsamtools S4Vectors SummarizedExperiment]; };
   pumilioR = derive2 { name="pumilioR"; version="1.3.1"; sha256="1791r5lkr6hafd2rz9f9nfy5vc03c4833f292khvd2cg43sb0bfc"; depends=[RCurl XML]; };
-  puniform = derive2 { name="puniform"; version="0.2.4"; sha256="0v2977y9cwjx74xk0ig745g09wn7nrcsrg4f6v315sglsm18iaa8"; depends=[ADGofTest metafor Rcpp RcppArmadillo]; };
+  puniform = derive2 { name="puniform"; version="0.2.5"; sha256="1zw8qbqnyhyvzrw6izrqgnmbawcqg2jdhcb8lxs1rd8y7cn4v4wj"; depends=[ADGofTest metafor Rcpp RcppArmadillo]; };
   pureseqtmr = derive2 { name="pureseqtmr"; version="1.2"; sha256="1c2pcci3s949hi8hh0h03mr3m6qw3kvihfglwavx578kjm2qw0xz"; depends=[ggplot2 plyr rappdirs stringr tibble]; };
   purge = derive2 { name="purge"; version="0.2.1"; sha256="1faf8mkaxsnj63wnig5rs50hd3j6vzaj0xkdz8kn0j7y2vvshp9p"; depends=[]; };
   purgeR = derive2 { name="purgeR"; version="1.4"; sha256="0awcpk061q4bmfxk920n6dmba79s18mrwvzdd4zdfl5fqsb7iydb"; depends=[doSNOW foreach progress Rcpp RcppProgress]; };
   purging = derive2 { name="purging"; version="1.0.0"; sha256="1b8f87jn6wyh4fp6b1660bd484wcf7xiajdg9dz2594aj1r94qsr"; depends=[MASS]; };
   purrr = derive2 { name="purrr"; version="0.3.4"; sha256="1cj091rsjdj2xz16qhynyw72gh5cyhznifcfbrbygndfr4xwksr3"; depends=[magrittr rlang]; };
-  purrrlyr = derive2 { name="purrrlyr"; version="0.0.7"; sha256="03472xz0q30vjg45xv24zkd9b1w8ggi33vchxrimfnppdiqi3x0m"; depends=[BH dplyr magrittr purrr Rcpp]; };
+  purrrlyr = derive2 { name="purrrlyr"; version="0.0.8"; sha256="0ql08dka07wi1cxjcn12pxj00j0cm112074l7byj9vmi3rlqynh8"; depends=[dplyr magrittr purrr Rcpp]; };
   pushbar = derive2 { name="pushbar"; version="0.1.0"; sha256="1gxarv6x32y6ssrhsq3pyihzcvpnnj7bg0jf2cpcr99da78n1d9b"; depends=[jsonlite shiny]; };
   pushoverr = derive2 { name="pushoverr"; version="1.1.0"; sha256="05ma76jhk00m9872f7gb0vwmk2q3l79r1ddaf1slbhgd57l1avk2"; depends=[checkmate cli glue httr rlang]; };
   puzzle = derive2 { name="puzzle"; version="0.0.1"; sha256="073n074irsvn4w1jy5xmr6l24a209kn0ypvf1d2zn3p6yd93wzss"; depends=[dplyr kableExtra lubridate plyr readr readxl reshape reshape2 sqldf tidyverse]; };
@@ -14792,7 +14824,7 @@ in with self; {
   pvsR = derive2 { name="pvsR"; version="0.3"; sha256="1ijmqlcsc8z0aphdd3j37ci8yqsy50wnr2fwn7h8fxbyd12ax2nj"; depends=[httr nnet XML]; };
   pwr = derive2 { name="pwr"; version="1.3-0"; sha256="1kfzy73v3z6ipc3kdfkcjrp4b4p5k54nwk796gqi36srm93hgc2v"; depends=[]; };
   pwr2 = derive2 { name="pwr2"; version="1.0"; sha256="0zfv7z5yymw310r1sqm8ivsc2pv6dgk2k4b1axmm92gsaj53cn7p"; depends=[]; };
-  pwr2ppl = derive2 { name="pwr2ppl"; version="0.3.0"; sha256="0ffwsldx9xplf2lqzi0m5a0715437c4g3352r8408n1p53lj2scd"; depends=[afex broom car dplyr ez lavaan lmtest MASS MBESS nlme phia quantreg semTools tidyr]; };
+  pwr2ppl = derive2 { name="pwr2ppl"; version="0.4.0"; sha256="03gk36g8rbkf0cj47pkx8m30n2vncmq8x1qk2389vz4crplmc6pr"; depends=[afex broom car dplyr ez lavaan lmPerm lmtest MASS MBESS nlme phia pls quantreg semTools tidyr]; };
   pwrAB = derive2 { name="pwrAB"; version="0.1.0"; sha256="0ifyw40m9gsijw3vm9qb8qk4yydmdixfdpdp45x2hk93j8v61jm1"; depends=[]; };
   pwrFDR = derive2 { name="pwrFDR"; version="2.8.9"; sha256="16qlxwhljhf878a7jif2kjj7hvga01bgr8zb6bh555yacxxh4yiz"; depends=[]; };
   pwrRasch = derive2 { name="pwrRasch"; version="0.1-2"; sha256="13fr4yfk8aky1vv36pllx673l4lg9q7i661vbyn2zabyizd2rw3b"; depends=[]; };
@@ -14801,7 +14833,7 @@ in with self; {
   pwt8 = derive2 { name="pwt8"; version="8.1-1"; sha256="1iig0x90ilzh3hdki0h33qgrra8r94rw4bk1x8y7i6c1may8y0v6"; depends=[]; };
   pwt9 = derive2 { name="pwt9"; version="9.1-0"; sha256="0m2df89lali9945avcv4gdjpxch9in7vdd042nx0q8nv0alb4ijd"; depends=[]; };
   pxR = derive2 { name="pxR"; version="0.42.4"; sha256="1r0ffr5wxf67i1jh67v06vcmifw4hhhasd4aivic94bkvq4sqmn5"; depends=[plyr reshape2 RJSONIO stringr]; };
-  pxweb = derive2 { name="pxweb"; version="0.12.0"; sha256="0xg20yxc2fl31rqs92m4slc1b0q7vwpqnjv6hh0v4bybgw02qvr1"; depends=[checkmate httr jsonlite]; };
+  pxweb = derive2 { name="pxweb"; version="0.13.1"; sha256="076747aj3rr8r3hn9lki66xl2flqylxqhqp9iyx120rjp9bfzmbr"; depends=[checkmate httr jsonlite]; };
   pyMTurkR = derive2 { name="pyMTurkR"; version="1.1.5"; sha256="1b1cbvjbnvw2h8l3lbm0ma80zgpm212wzfhyyr6dr115k237xy89"; depends=[curl reticulate XML]; };
   pycno = derive2 { name="pycno"; version="1.2"; sha256="0ha5css95xb98dq6qk98gnp1al32gy6w5fkz74255vs4hmkwfzw2"; depends=[maptools rgeos sp]; };
   pyinit = derive2 { name="pyinit"; version="1.1.2"; sha256="0i5l9rm8gkkabsqxkl0gvrpsbz7im0lk0axz1c0m0lq2vlrw9jsq"; depends=[robustbase]; };
@@ -14825,7 +14857,7 @@ in with self; {
   qcc = derive2 { name="qcc"; version="2.7"; sha256="0lc26w7p3d023lfr8v6v75m2vwqg9vi9pdipap19l4vbdq29l4zz"; depends=[MASS]; };
   qccrs = derive2 { name="qccrs"; version="0.1.0"; sha256="0lwrmf2809zzdj5f25bb1psh57ibyw90ra41fy2i9vjmgph9wgiq"; depends=[dplyr magrittr purrr tibble]; };
   qch = derive2 { name="qch"; version="1.0.0"; sha256="1kizr319kjr6xsgz7n0dhgp8rxr4j1x4bcr5cnifkp6z2zh92vka"; depends=[ks mclust]; };
-  qcpm = derive2 { name="qcpm"; version="0.1"; sha256="08y02wdmnjlv5r1li3dm2g9hzbl0jm7krb4q5r9q4nf4fvbsm50m"; depends=[broom cSEM quantreg]; };
+  qcpm = derive2 { name="qcpm"; version="0.2"; sha256="0k440xi951v6jaknwz0x0rwkin1r034l2i93cchlglf0r9a0l8yc"; depends=[broom cSEM quantreg]; };
   qcr = derive2 { name="qcr"; version="1.4"; sha256="14nilw60p2kcabh9w5k8bvdjqx4lm5lj79qiigg3i372byq5gb7r"; depends=[fda_usc MASS mvtnorm qcc]; };
   qcv = derive2 { name="qcv"; version="1.0"; sha256="0hf02l9c1cpzs02mfn9swfc8l635qsvh6xrhj21g19h5rxaf8jwg"; depends=[]; };
   qdap = derive2 { name="qdap"; version="2.4.3"; sha256="1fadzq7afavxfhcd8q6xy3g8d7jwy24zz1da2ig9bd8vrk5zjmnx"; depends=[chron dplyr gender ggplot2 gridExtra igraph NLP openNLP openxlsx plotrix qdapDictionaries qdapRegex qdapTools RColorBrewer RCurl reshape2 scales stringdist tidyr tm venneuler wordcloud XML]; };
@@ -14836,7 +14868,7 @@ in with self; {
   qfasar = derive2 { name="qfasar"; version="1.2.1"; sha256="14370bmq4qx5j02va13wz52m2lgl4vb992p9587z9v2sxl1v4jjg"; depends=[Rsolnp]; };
   qgam = derive2 { name="qgam"; version="1.3.4"; sha256="1jyamamdffaks89rspyhmg18b4iik0nb1j0vgqzvfnm890514cvn"; depends=[doParallel mgcv plyr shiny]; };
   qgcomp = derive2 { name="qgcomp"; version="2.8.6"; sha256="00wfslhj7hm5qgpbz8zg4a3dwrbvnn0g6m0vcq56mjvfinnip8aw"; depends=[arm future future_apply generics ggplot2 gridExtra pscl survival tibble]; };
-  qgcompint = derive2 { name="qgcompint"; version="0.6.6"; sha256="13r0nzxwz9w5papxiqkxjw594qljpqqxw1wkrhj2n68ykvbvl1n7"; depends=[arm future future_apply ggplot2 gridExtra qgcomp survival]; };
+  qgcompint = derive2 { name="qgcompint"; version="0.7.0"; sha256="0v2b7rr6m5mx3wyclbryxlcdly1a2vj8z0ywsyq4vvj66g2aa0yk"; depends=[arm future future_apply ggplot2 gridExtra qgcomp survival]; };
   qgg = derive2 { name="qgg"; version="1.0.4"; sha256="1xyviy73jl76bpv5izlkgf171qrypgv2wm5mi3s06cb7md8psrkb"; depends=[data_table MASS MCMCpack statmod]; };
   qgraph = derive2 { name="qgraph"; version="1.9.2"; sha256="0r225b7rnsv6wz41ij0msmqr1xy0iqxh9dbsvjixbi1hvgv91wds"; depends=[abind colorspace corpcor fdrtool ggplot2 glasso gtools Hmisc igraph jpeg lavaan Matrix pbapply plyr png psych Rcpp reshape2]; };
   qgshiny = derive2 { name="qgshiny"; version="0.1.0"; sha256="0ydhwg4abn8n9pwnjnwf1n1k854zw31z8f2splzdm5j279lsjg3r"; depends=[rmarkdown shiny]; };
@@ -14858,8 +14890,8 @@ in with self; {
   qpcR = derive2 { name="qpcR"; version="1.4-1"; sha256="1r01q7jv3w59yx1gc0qw91rq7rvdhqsi8y57sqqkmwyqfw2x2vsv"; depends=[MASS Matrix minpack_lm rgl robustbase]; };
   qpdf = derive2 { name="qpdf"; version="1.1"; sha256="03lnfncw8qd1fwfyqh1mjvnsjr3b63wxbah0wp5g7z7gba90dwbi"; depends=[askpass curl Rcpp]; };
   qpmadr = derive2 { name="qpmadr"; version="1.1.0-0"; sha256="0krv3zhr42z2mkkbn2bkglzfxbf06dmd9vnnc3rcyhm1r85n4fbq"; depends=[checkmate Rcpp RcppEigen]; };
-  qqboxplot = derive2 { name="qqboxplot"; version="0.1.0"; sha256="0807ww7cvc84hmwrwp2q5gy6v0qd01mwhj537403iy9z4z3wsvhv"; depends=[ggplot2]; };
-  qqconf = derive2 { name="qqconf"; version="1.2.1"; sha256="195m60wy065yfp3x18hkxn6sr75igg9bcq0rgn8qcfyz4hc2pmgf"; depends=[distr dplyr ggplot2 magrittr MASS Rcpp rlang robustbase]; };
+  qqboxplot = derive2 { name="qqboxplot"; version="0.2.0"; sha256="0v83kjkq674ql55d9dfyw4bgybbqyvqivphn925a7wl9zqi1b3lh"; depends=[ggplot2]; };
+  qqconf = derive2 { name="qqconf"; version="1.2.3"; sha256="0qnfzq2zb776kmvbwmyj9di4nlzx7dg0nz4097hfcllfx9160nwv"; depends=[dplyr magrittr MASS Rcpp rlang robustbase]; };
   qqman = derive2 { name="qqman"; version="0.1.8"; sha256="1a6qp5wv9bvwjchfw8x4jh48hkynlnfr21a8vqgnswldvwbq7njq"; depends=[calibrate]; };
   qqplotr = derive2 { name="qqplotr"; version="0.0.5"; sha256="1ija4ik3bc404yjm5pw4y32krs1gxn6jd05pqmc0ajawydvr4w1r"; depends=[dplyr ggplot2 MASS robustbase]; };
   qqr = derive2 { name="qqr"; version="0.0.1"; sha256="1vi4nbm356vahm4hnvy686nysbn4n63p9cjd4i9dm73lhsf9ilmn"; depends=[dplyr rvest stringr tidyverse xml2]; };
@@ -14916,12 +14948,12 @@ in with self; {
   qualtRics = derive2 { name="qualtRics"; version="3.1.5"; sha256="11gb9ri3c5553fl9im8m26p16c8araxl4lyqk66b352cx41cf4x9"; depends=[assertthat dplyr glue httr jsonlite lifecycle lubridate purrr readr rlang sjlabelled stringr tibble tidyr]; };
   qualvar = derive2 { name="qualvar"; version="0.2.0"; sha256="1c7b7lcyq2l46sslk185r6xfh5fb35z9qihrhnh294sw1k52bffa"; depends=[]; };
   qualypsoss = derive2 { name="qualypsoss"; version="1.0.0"; sha256="1pvf9b9yw8317wnh1x1jkmwl4cl0r9q7npfw0xzgbs8mfpl9j2ah"; depends=[doParallel foreach MASS mvtnorm]; };
+  quantCurves = derive2 { name="quantCurves"; version="1.0.0"; sha256="0z00agd4q157cjkc4gwyfw3kka043wcf5j7yzn8cqm281fqh1jny"; depends=[KernSmooth locpol np quantreg quantregGrowth]; };
   quantable = derive2 { name="quantable"; version="0.3.6"; sha256="15q4phc2j7aihl8f4qzpdwxcvshq2cfzkfcxc8k4qypsxk9a00sb"; depends=[caret dplyr e1071 ggplot2 ggrepel gplots Matrix plyr pROC RColorBrewer readr reshape2 rlang scales stringr tibble tidyr]; };
   quantdates = derive2 { name="quantdates"; version="1.0"; sha256="1hyds8rwr1yg740aq4w5fqjrwdf3dl4phf8mj8qsgbb7i0wbbf3q"; depends=[lubridate]; };
-  quantdr = derive2 { name="quantdr"; version="1.2.0"; sha256="03dhcb5p9kkyl6qvpxbsjlrnjq0970xcr62j15jyhi878llzqk2n"; depends=[dr KernSmooth MTS mvtnorm quantreg]; };
   quanteda = derive2 { name="quanteda"; version="3.2.1"; sha256="102wlx6481fskgdr5wv467n29f666q0qg9kjm0ivqfg9xsbvza12"; depends=[fastmatch magrittr Matrix Rcpp RcppArmadillo RcppParallel SnowballC stopwords stringi xml2 yaml]; };
   quanteda_textmodels = derive2 { name="quanteda.textmodels"; version="0.9.4"; sha256="0r2nls93nriw97z0rmmpn2bb8c3jr571hv5slqj68p7ibr06rh1h"; depends=[glmnet LiblineaR Matrix quanteda Rcpp RcppArmadillo RcppParallel RSpectra SparseM stringi]; };
-  quanteda_textplots = derive2 { name="quanteda.textplots"; version="0.94"; sha256="1as7mpy3ihja5d9nw7c30w0yhaklpmn41bgw2cvpic2rbp5828fa"; depends=[extrafont ggplot2 ggrepel igraph Matrix network quanteda RColorBrewer Rcpp sna stringi]; };
+  quanteda_textplots = derive2 { name="quanteda.textplots"; version="0.94.1"; sha256="0h17dp3p26fm4i60yi4ncijwc2lazklnls8q1v2vkk76726l67w4"; depends=[extrafont ggplot2 ggrepel igraph Matrix network quanteda RColorBrewer Rcpp sna stringi]; };
   quanteda_textstats = derive2 { name="quanteda.textstats"; version="0.95"; sha256="100125n2l3mhj0clbwpy3cbb84mwf83ix2c67sy8lmmh71vxz2rk"; depends=[Matrix nsyllable proxyC quanteda Rcpp RcppArmadillo RcppParallel stringi]; };
   quantification = derive2 { name="quantification"; version="0.2.0"; sha256="116cp88q9cmizxc2a8lsysa1vwyp1y86457fx5qkq5dcm4g721g8"; depends=[car]; };
   quantileDA = derive2 { name="quantileDA"; version="1.1"; sha256="0jbklxsy33j7clcw97qq4ijwkrb94v2m11gjcfa38vplfxm9913q"; depends=[]; };
@@ -14936,7 +14968,7 @@ in with self; {
   quantregGrowth = derive2 { name="quantregGrowth"; version="1.4-0"; sha256="0fw8kdgnlvb9c0xnankmzlpk9qnk52rqrrby32a02mz2f93ddh7k"; depends=[quantreg]; };
   quantregRanger = derive2 { name="quantregRanger"; version="1.0"; sha256="1a9q2prr790bpw6s0y5ni5ppd3vqkjr0v4nqp6ywcj5n3sk69pvx"; depends=[ranger Rcpp]; };
   quantspec = derive2 { name="quantspec"; version="1.2-3"; sha256="0ifwq2jmvxhpijz9yd9hffkff6ixcliaqkp9ispp9k1b8icwi8zn"; depends=[abind quantreg Rcpp snowfall zoo]; };
-  quarks = derive2 { name="quarks"; version="1.0.11"; sha256="0zky5gxp9y457b833g3smc9hd875lc1kdnn94p0ykw3lcj9202pd"; depends=[rugarch]; };
+  quarks = derive2 { name="quarks"; version="1.1.0"; sha256="1qms919w0y4p8lk8srk1ccnmn6i44jpyz32arqazjiap229h3kfy"; depends=[progress rugarch smoots]; };
   quarrint = derive2 { name="quarrint"; version="1.0.0"; sha256="13fdmmrgn23xd9vpywmcl7pf729gmcxjfl1wxs30axsbp4h1s6rk"; depends=[neuralnet]; };
   quarto = derive2 { name="quarto"; version="1.1"; sha256="1j32kahfkca0kz2akah6jg2n1f04ck4y6irjv77s7ar61m5an054"; depends=[jsonlite later processx rmarkdown rstudioapi yaml]; };
   queryparser = derive2 { name="queryparser"; version="0.3.1"; sha256="1pz66f3wxvvv42l5hib7hbpy14s8a13gn0n57vf6v5zdnz423kdr"; depends=[]; };
@@ -14945,11 +14977,11 @@ in with self; {
   queuecomputer = derive2 { name="queuecomputer"; version="1.1.0"; sha256="1lzc0hfva8dpz2q5g0abjc2avyqdffi8g1qi5h6mvx8qn5kx7bmw"; depends=[dplyr Rcpp RcppArmadillo tidyr]; };
   queueing = derive2 { name="queueing"; version="0.2.12"; sha256="0hw1ykm24cjpfwh7ac7fjf7mhc59mq8wy2g07aacpy5ibwi8bbsf"; depends=[]; };
   quhomology = derive2 { name="quhomology"; version="1.1.1"; sha256="0wiih00zk4682wy1r4nyifh76h5bnvl3f785wjzmrwylnfy951l3"; depends=[MASS numbers]; };
-  quickNmix = derive2 { name="quickNmix"; version="1.0.3"; sha256="02qirbhggz2749k07ylqfdybzfly11r8pkylzz90zyndz5089r4j"; depends=[doParallel foreach]; };
+  quickNmix = derive2 { name="quickNmix"; version="1.1.1"; sha256="01gnvnpfxry354qf772m187mfvjigqngjpi1k9y1g5nvlv7a4d62"; depends=[doParallel foreach optimParallel]; };
   quickPlot = derive2 { name="quickPlot"; version="0.1.6"; sha256="0mffialxdim8f5s0bw9bb7p8dbrfdgq1wqih441x27lnmrvhlsa8"; depends=[backports data_table fpCompare ggplot2 gridBase igraph raster RColorBrewer rgdal rgeos sp]; };
   quickReg = derive2 { name="quickReg"; version="1.5.0"; sha256="1l1v3k8albxlaz18l2b2x2ryifq4pbdq6n4q7555hnfcik9rqmw5"; depends=[dplyr ggplot2 nortest psych rlang survival]; };
   quickblock = derive2 { name="quickblock"; version="0.2.0"; sha256="0ij4ivpnkjzdixbq7pg4g1xkb031qawadr22qhzp0q210qhmhc0m"; depends=[distances scclust]; };
-  quickcheck = derive2 { name="quickcheck"; version="0.1.0"; sha256="005xv322bsmjkrfwsj21j3pci868yac9wbgzxnwl4bmcf81ri09v"; depends=[data_table hedgehog hms purrr testthat tibble]; };
+  quickcheck = derive2 { name="quickcheck"; version="0.1.2"; sha256="060pas64vzgqr038d1ab36h69z6rk6xaqf6kydwcs2phhir67zyc"; depends=[data_table hedgehog hms magrittr purrr testthat tibble]; };
   quickerstats = derive2 { name="quickerstats"; version="0.0.1"; sha256="0jlczz042701p6j4m60k425m9x3q88m27mmf62ngz80dylcl2fdx"; depends=[curl httr readr tibble]; };
   quickmapr = derive2 { name="quickmapr"; version="0.3.0"; sha256="0962qm8ak0wpqld8nrb8rvvb78743zfrfsq2xrwdlql681j2nv8c"; depends=[httr raster rgdal rgeos sf sp]; };
   quickmatch = derive2 { name="quickmatch"; version="0.2.1"; sha256="1qfslhjlbjpzigz8n6b7w41g8pwdiwri091ivd5igp1xy5pv8a3w"; depends=[distances sandwich scclust]; };
@@ -14985,7 +15017,7 @@ in with self; {
   r2r = derive2 { name="r2r"; version="0.1.1"; sha256="0vp0ak88m3ssca8b8kxf9w6qkxsdy0qs6cngrr9gqvbrnx0gh9j6"; depends=[digest rlang]; };
   r2rtf = derive2 { name="r2rtf"; version="0.3.3"; sha256="1a6hbx9cjak2fv5khhq0k4j583qn24sbs5bykz86z530rbwbrc8y"; depends=[]; };
   r2shortcode = derive2 { name="r2shortcode"; version="0.1"; sha256="03djy8m146k31xgvwcbrd1nzwj4wdlvvwzgviv80kskgr6ld9jrj"; depends=[magrittr stringr]; };
-  r2spss = derive2 { name="r2spss"; version="0.3.0"; sha256="1an0h4zpy0hjnwn6pihchfmbvkzjqd3vdzqnl1hxvs053z5i9549"; depends=[car ggplot2 scales]; };
+  r2spss = derive2 { name="r2spss"; version="0.3.1"; sha256="0vc0sk80fsabj4ialfpygzbwdl4a263gqyrqlrf817hm95mvb9vh"; depends=[car ggplot2 scales]; };
   r2sundials = derive2 { name="r2sundials"; version="5.0.0-10"; sha256="1hv5wq6lxrv57pszxky4xiwhjhjlzxa4fh0flrrmrrk89dygkx9v"; depends=[Rcpp RcppArmadillo rmumps]; };
   r2symbols = derive2 { name="r2symbols"; version="0.1"; sha256="1i4sd015dgkv5i89d0cphp3jmn4jn4wqfazklfglysf85b2cm4iw"; depends=[]; };
   r3PG = derive2 { name="r3PG"; version="0.1.3"; sha256="188vjzjya3qxi2xgzxxvf6ys97yxgdbjivwc54f4as37k2ad7l6p"; depends=[]; };
@@ -15004,7 +15036,6 @@ in with self; {
   rAmCharts = derive2 { name="rAmCharts"; version="2.1.13"; sha256="1c9gz7jmkh8gfaq8lmcb66kavdldnlc3x1mc1c72di8zxcpgzprc"; depends=[data_table htmltools htmlwidgets knitr pipeR yaml zoo]; };
   rAmCharts4 = derive2 { name="rAmCharts4"; version="1.5.0"; sha256="0z7dq8nhivrf3lhwv0zwyjnalnbl23qw02fg0ml883ns9rdi78rz"; depends=[base64enc htmltools htmlwidgets jsonlite lubridate minpack_lm reactR shiny stringr xml2]; };
   rAverage = derive2 { name="rAverage"; version="0.5-8"; sha256="09yap3qv02k5nidi6a4png9xa5yy7cb8hg8s2dq99wnc88s42d26"; depends=[]; };
-  rAvis = derive2 { name="rAvis"; version="0.1.4"; sha256="0svplnrn8rrr59v04nr1pz7d5r4dr1kdl0bd3kg8c3azxv47mxbp"; depends=[gdata maptools raster RCurl rgdal scales scrapeR sp stringr XML]; };
   rBDAT = derive2 { name="rBDAT"; version="0.9.8"; sha256="0a64y43fadn5i1pgd6z5mvs1v3v0k0x8wrl5yf7xgw50n0zajfi7"; depends=[]; };
   rBMF = derive2 { name="rBMF"; version="1.1"; sha256="16yg1k7vv88q421nk1a70626c7c54bwnb3x7kiyxv2c0ha00f3g8"; depends=[Matrix Rcpp]; };
   rBayesianOptimization = derive2 { name="rBayesianOptimization"; version="1.2.0"; sha256="0gwdzv4wl4n940ph23yhjh0s192k9visvivww5k1kmy2b1j88cva"; depends=[data_table foreach GPfit magrittr]; };
@@ -15013,6 +15044,7 @@ in with self; {
   rCAT = derive2 { name="rCAT"; version="0.1.6"; sha256="09jyjjbhpm44wrism3zgg56m01yimlcm3xks8g0cq36lsrclcigp"; depends=[pracma rgdal sp]; };
   rCBA = derive2 { name="rCBA"; version="0.4.3"; sha256="10rc08gwsf15f4lci8bbgwpwj8n7k1m23hxk633v68g9amla5nvx"; depends=[arules R_utils rJava TunePareto]; };
   rCMA = derive2 { name="rCMA"; version="1.1"; sha256="0dswshg80hbgcib5x9w791sh71q5s4435q8sm9dh170v4ngbax0w"; depends=[]; };
+  rCNV = derive2 { name="rCNV"; version="1.0.0"; sha256="1lrnwrxy0qila1y64bmfvid51p46scnrbasqndmmcisd43schd6f"; depends=[colorspace data_table qgraph R_utils]; };
   rCRM = derive2 { name="rCRM"; version="0.1.1"; sha256="03p2v1wb7hsvfhdcgawaz8vd2i8kh30dj8mjydlaywxyks6i5caz"; depends=[Rcpp RcppEigen]; };
   rChoiceDialogs = derive2 { name="rChoiceDialogs"; version="1.0.6"; sha256="0lp8amdalirpsba44aa3r31xnhmi36qb9qf8f8gdxxbarpgprsbi"; depends=[rJava]; };
   rClinicalCodes = derive2 { name="rClinicalCodes"; version="1.0.1"; sha256="1p4p8r2n0k8h9xdzbngb95rshjp3376f5lsx228biqmswhpkhvlf"; depends=[RCurl rjson stringr tm XML]; };
@@ -15022,9 +15054,9 @@ in with self; {
   rDataPipeline = derive2 { name="rDataPipeline"; version="0.54.1"; sha256="0i0vb7gsjshh1wn0lksdma51xdyn6qw54j02cb0xmzcg896gl2p9"; depends=[assertthat cli configr dplyr git2r httr jsonlite openssl R6 rhdf5 semver usethis yaml]; };
   rDecode = derive2 { name="rDecode"; version="0.1.0"; sha256="1d0rrhycw9anhvx6czz7axkzhzqprdgi9sqfglmc962zf1x3hmn2"; depends=[]; };
   rDppDiversity = derive2 { name="rDppDiversity"; version="0.0.2"; sha256="0833v5wkamqipfxpsdxz040q6vlgg9qqpwiaivvh8ar5sci10v88"; depends=[Rcpp]; };
-  rEDM = derive2 { name="rEDM"; version="1.10.2"; sha256="1cg4g47q6vl231279zmaq6w743gcxj05xa9kf47wf3hzp01lhl1r"; depends=[Rcpp RcppThread]; };
+  rEDM = derive2 { name="rEDM"; version="1.10.3"; sha256="0ygjw7ci44bki98annci69mrzpp6ssgqg3sg6qpcipf90md72b2g"; depends=[Rcpp RcppThread]; };
   rEMM = derive2 { name="rEMM"; version="1.1.0"; sha256="18bpskhrafj0b5rnzisrsk5x5gifqn7dpawcsgdrg7rbnz7y1wzr"; depends=[cluster clusterGeneration igraph MASS proxy]; };
-  rENA = derive2 { name="rENA"; version="0.2.3"; sha256="067xpw1mgb2y15ld4qc6mnf4b9k7nw8am9qz4ms980wyfp4ffjmj"; depends=[concatenate data_table doParallel foreach magrittr plotly R6 Rcpp RcppArmadillo scales]; };
+  rENA = derive2 { name="rENA"; version="0.2.4"; sha256="0yfmdfw45azyzcy7rf5xsannrlranbxpgfsb52rl6vvd681p4r4x"; depends=[concatenate data_table doParallel foreach magrittr plotly R6 Rcpp RcppArmadillo scales]; };
   rFDSN = derive2 { name="rFDSN"; version="0.0.0"; sha256="1ffiqpdzy4ipy2aci22zkih4373ifkjkpvsrza8awhyf9fwqwdsl"; depends=[XML]; };
   rFIA = derive2 { name="rFIA"; version="1.0.0"; sha256="13c50hn8fna9f5zwxp3nzpzvgv8aw5a5pxkpw6600yhmg1nmrwgp"; depends=[bit64 data_table dplyr dtplyr ggplot2 rlang sf stringr tidyr tidyselect]; };
   rFSA = derive2 { name="rFSA"; version="0.9.6"; sha256="1fxd194iq8jnlsnj76mjq2f6db7ln641qwfsf5v63kx3qqhn8x5s"; depends=[hash rPref tibble tidyr]; };
@@ -15041,9 +15073,9 @@ in with self; {
   rIsing = derive2 { name="rIsing"; version="0.1.0"; sha256="1208lwfk9j8gghj8xf6i8v6s18h89ydqsd4jq3r88n403yzbzzck"; depends=[data_table Rcpp RcppEigen]; };
   rJPSGCS = derive2 { name="rJPSGCS"; version="0.2-10"; sha256="0a00s10yp22fkvk67dkq43sbphcqla65x9j4qpv076bmdchn7arw"; depends=[chopsticks rJava]; };
   rJava = derive2 { name="rJava"; version="1.0-6"; sha256="1ijqhvnb8ab38cp9pwdf7zq7xqqlm6x94gkrab2dd98p6d4x1472"; depends=[]; };
-  rJython = derive2 { name="rJython"; version="0.0-4"; sha256="13fpcw37cca738v9idqgi3gv9avfkfwfacxj54p2c4wyg46ghnah"; depends=[rJava rjson]; };
   rKIN = derive2 { name="rKIN"; version="0.1"; sha256="1j6fdi5h869q4d1hq6ha6qyhisa0zk2qmhjrc4ahl9991d680dyn"; depends=[ggplot2 maptools MASS rgeos sp]; };
   rKOMICS = derive2 { name="rKOMICS"; version="1.1"; sha256="0zs7a75hgrj4ajbbxn0kmc2871rakyizhwdn7ryha8bgig4ld3cs"; depends=[ape circlize ComplexHeatmap dplyr factoextra FactoMineR ggplot2 ggpubr magrittr reshape2 stringr]; };
+  rKolada = derive2 { name="rKolada"; version="0.2.1"; sha256="1c1ci6dn3yqgp7qm1fih8dlq67dpbc1wlxhzcrzs0zzign47vgvd"; depends=[dplyr glue httr jsonlite magrittr purrr rlang stringr tibble tidyr urltools]; };
   rLDCP = derive2 { name="rLDCP"; version="1.0.2"; sha256="0k7zc1xyqmcl7070hhpqw1d2k1ij6bd4wjym8cw263pds2n7nx21"; depends=[XML]; };
   rLFT = derive2 { name="rLFT"; version="1.0.1"; sha256="0d86z5ckhkavgr2xi9pk7pw8ss3whrssa7na43kj0pirax9cys4z"; depends=[Rcpp sf]; };
   rLTP = derive2 { name="rLTP"; version="0.1.4"; sha256="04w432m03xwh0szshsrfw5h7wy43q4lj8z0y07k8w6gsf27cy5bx"; depends=[RCurl]; };
@@ -15072,7 +15104,7 @@ in with self; {
   rSAFE = derive2 { name="rSAFE"; version="0.1.3"; sha256="0vhphn56y2yxll3437mb3zaayhhy4dxk0wxxy7lk6qgxw4xlbk04"; depends=[DALEX dendextend ggplot2 ggpubr ingredients sets]; };
   rSCA = derive2 { name="rSCA"; version="3.1"; sha256="0dhd5325x05cbnw34mlipndw5xnncl9kj7kppb2s5bx2gllcdqqd"; depends=[]; };
   rSEA = derive2 { name="rSEA"; version="2.1.1"; sha256="18108ds65ykxygbw1s4i5rb1ngzwymv1x3dhcv1lcwkmqplnaar9"; depends=[ggplot2 hommel]; };
-  rSFA = derive2 { name="rSFA"; version="1.04"; sha256="0gd6ji1ynbb04rfv8jfdmp7dqnyz8pxcl5636fypd9a81fggl0gs"; depends=[MASS]; };
+  rSFA = derive2 { name="rSFA"; version="1.5"; sha256="17jabv64rgaxs5kx579vjrhcw2k08c6ah6a11cswl8v9h0vjjz8i"; depends=[MASS]; };
   rSHAPE = derive2 { name="rSHAPE"; version="0.3.2"; sha256="0z6dizsxlkmaymbd24b1m1i8kmndcf21nxxnyfzq6gvdii7bal4h"; depends=[abind DBI doParallel evd foreach RSQLite sn VGAM]; };
   rSPARCS = derive2 { name="rSPARCS"; version="0.1.0"; sha256="0k46nhkdn68c7h7bbbdfwl02bldi1m3m62zbp20kh8np9bxy1rnk"; depends=[data_table geosphere plyr raster sp spatialEco tigris]; };
   rSPDE = derive2 { name="rSPDE"; version="1.1.1"; sha256="0zji1d292nr8bj149vdk0v48jcg6w56cbxr5xhfm7s5b999qrqxf"; depends=[Matrix]; };
@@ -15080,7 +15112,7 @@ in with self; {
   rStrava = derive2 { name="rStrava"; version="1.1.4"; sha256="00y400znkwyr6y33wiz0jikpa31a60hdcmsi9x3724zwjh28vynj"; depends=[bitops dplyr geosphere ggplot2 ggrepel googleway httpuv httr magrittr plyr purrr RCurl rvest tibble tidyr V8 XML xml2]; };
   rTG = derive2 { name="rTG"; version="1.0.0"; sha256="1v2wj2cv26hk5s7vm2l75lqgki28ivhkd0b8kspxw2c56cm82r70"; depends=[brnn dplyr ggplot2 knitr magrittr mgcv]; };
   rTLS = derive2 { name="rTLS"; version="0.2.5.2"; sha256="10fkd8ylj9xwvgwnirjw4n6c4vl8y5x8q4mq2zmwlpjryknx82kv"; depends=[alphashape3d boot data_table doSNOW foreach Rcpp RcppArmadillo RcppHNSW RcppProgress rgeos rgl sp]; };
-  rTRNG = derive2 { name="rTRNG"; version="4.23.1-1"; sha256="0jlkr57afkg6axkdk020rd3nybx1qzwvy1hjgfw8fwvm79x0kpr7"; depends=[Rcpp RcppParallel]; };
+  rTRNG = derive2 { name="rTRNG"; version="4.23.1-2"; sha256="0rba3dxy97r75mxfn8rxrk2081my79la2m5m9h5ms2z5px07llqd"; depends=[Rcpp RcppParallel]; };
   rTableICC = derive2 { name="rTableICC"; version="1.0.7"; sha256="1z896675kmm9p5dnmcnsz2205ynf05laqcxvlc9y0g5i0x8rf8v6"; depends=[aster partitions]; };
   rTensor = derive2 { name="rTensor"; version="1.4.8"; sha256="1ks4rwaish24sg5gc2jkfdqfq6h8gh9f3wdxk3dxjgpwjqwijz8f"; depends=[]; };
   rTephra = derive2 { name="rTephra"; version="0.1"; sha256="045f2sp2j4hiwa9k1vs6cxr59x1yr34jq1z2crasxflsxbwa3xz8"; depends=[]; };
@@ -15157,7 +15189,7 @@ in with self; {
   rangeModelMetadata = derive2 { name="rangeModelMetadata"; version="0.1.4"; sha256="102z7ysbw0i1mbnwg0v3h0i094ksw91q84a53qyxndq4m6f557aj"; depends=[dplyr jsonlite MASS raster rgbif rgdal rgeos shiny sp spatstat spocc spThin]; };
   rangemap = derive2 { name="rangemap"; version="0.1.18"; sha256="17ycliswmsrc1rvyxj2ik2rs7f061dvam6ck0pm6myj52m2xg781"; depends=[concaveman dplyr maps maptools raster rgdal rgeos rgl rnaturalearthdata scales sf sp spatial]; };
   ranger = derive2 { name="ranger"; version="0.13.1"; sha256="02idcc6zbdz4wsi1mcwh7qyhmlbwvnzxwkdvvppxw7n2rh54z4v0"; depends=[Matrix Rcpp RcppEigen]; };
-  rankFD = derive2 { name="rankFD"; version="0.1.0"; sha256="1qqdqbyr0kgjn83prfg5b5f5qsfs0gxxadzkxzd76s0yhryps6mm"; depends=[coin lattice MASS multcomp mvtnorm]; };
+  rankFD = derive2 { name="rankFD"; version="0.1.1"; sha256="0p8kkscjnfssz58gp2kvpvw206vhqi6m1rknzs35l5ajck3gqzrm"; depends=[coin lattice MASS multcomp mvtnorm]; };
   rankUncertainty = derive2 { name="rankUncertainty"; version="1.0.2.0"; sha256="0w9b3vdlx2kjviz4790lrmbzb8i1lrckiy1jxzl9kxycp1kjqkwa"; depends=[cpp11 magrittr Rcpp]; };
   rankdifferencetest = derive2 { name="rankdifferencetest"; version="2021-11-25"; sha256="11isc6fjaicyibnbc315036wp7m670ja6kg4xq5s2x72k076v55f"; depends=[coin modeltools Rdpack]; };
   rankdist = derive2 { name="rankdist"; version="1.1.4"; sha256="1xqrkss8d5vv3blqpvrvdczsygphbx259hy9j7w9b2ahssw8cjr5"; depends=[hash optimx permute Rcpp]; };
@@ -15171,7 +15203,7 @@ in with self; {
   rapidxmlr = derive2 { name="rapidxmlr"; version="0.1.0"; sha256="14pa08yp8xmbqk8wwinz1xsphx75xq6vg8zgzcxc5zgmcf0ja5if"; depends=[]; };
   rappdirs = derive2 { name="rappdirs"; version="0.3.3"; sha256="1161i3jgjvzjv4p8qbz9r976fnggkcrw3mlj4yd1h2svnijrz5a9"; depends=[]; };
   rapport = derive2 { name="rapport"; version="1.1"; sha256="14cbi3yag91lnr1yrbk8ra6j615z5a6h136dj3r6v628qahrhmsg"; depends=[pander rapportools stringr yaml]; };
-  rapportools = derive2 { name="rapportools"; version="1.0"; sha256="1sgv4sc737i12arh5dc3263kjsz3dzg06qihfmrqyax94mv2d01b"; depends=[pander plyr reshape]; };
+  rapportools = derive2 { name="rapportools"; version="1.1"; sha256="0qr86idng12g6hdd764j0wmli700v7rjhw7jdjxj0ka8xm5v7ymm"; depends=[MASS pander plyr reshape2]; };
   rappsflyer = derive2 { name="rappsflyer"; version="0.2.0"; sha256="1n0h4iqnzb5xr531b6nvqsjx4mpsg1gp85av2b9gqg0wrbzzizm7"; depends=[dplyr httr lgr retry stringr tidyr]; };
   rapsimng = derive2 { name="rapsimng"; version="0.3.0"; sha256="1zykznmb6qipkj8yxkf33vrvyqhsp0ajk34hnz7js1zvy5n8rd5l"; depends=[dplyr jsonlite magrittr rlang tibble tidyr]; };
   raptr = derive2 { name="raptr"; version="0.1.7"; sha256="1gm99nnvn3b9xz6216masv7ji8j8vrkprzprkba5y1h22gzwxd3n"; depends=[adehabitatHR assertthat BH boot doParallel ggplot2 hypervolume ks Matrix mvtnorm PBSmapping plyr RandomFields raster RColorBrewer Rcpp RcppEigen rgdal rgeos RgoogleMaps scales shape sp]; };
@@ -15189,11 +15221,12 @@ in with self; {
   rasterList = derive2 { name="rasterList"; version="0.5.8"; sha256="0q7apglxzpah04463z07cpkzyd6l6dbbdhm601brzh6yk75z20vh"; depends=[raster]; };
   rasterVis = derive2 { name="rasterVis"; version="0.51.2"; sha256="0kgg6cm7xjqya2d46w0i1i1wjpkb8f99lyqy7rgwa7l9xmwzj5n1"; depends=[hexbin lattice latticeExtra raster RColorBrewer sp terra viridisLite zoo]; };
   rasterbc = derive2 { name="rasterbc"; version="1.0.1"; sha256="17knrhvy2qkdz5bvhnllfkv8w4cm5gjjninwh66pk1xfrqkd4skg"; depends=[sf terra]; };
-  rasterdiv = derive2 { name="rasterdiv"; version="0.2-5"; sha256="1jprhbfih2w3wh9ywmnm42yhsyivqacycgzv9hckb2r49d87zlsv"; depends=[foreach progress proxy raster svMisc terra]; };
+  rasterdiv = derive2 { name="rasterdiv"; version="0.2-5.2"; sha256="18ywr1xmhyybg1ip5vi9hz9ms5zxfm49z5qprc3wwvxvssva5zg3"; depends=[foreach progress proxy raster svMisc terra]; };
   rasterize = derive2 { name="rasterize"; version="0.1"; sha256="18nrhmq1qmi05rkyr86xsyc8nz0fbdpf2d45h62bbfzbfynqd4qy"; depends=[png]; };
   rasterly = derive2 { name="rasterly"; version="0.2.0"; sha256="1fv0ayh8r78qss7ikcwnj0i5x8iyz4c3icsfb554zji9bw30x7qr"; depends=[data_table ggplot2 magrittr plotly Rcpp rlang]; };
   rasterpdf = derive2 { name="rasterpdf"; version="0.1.1"; sha256="0zi54nifbb4dzb29i8rskynblw3z42vzaykwbq30ia5zs9q1bvm5"; depends=[png]; };
   rasterpic = derive2 { name="rasterpic"; version="0.2.0"; sha256="0vlas1b9la6sp3qkcg831lkfa2n9ms2gq7s0k2wk4lqxmrpq0q66"; depends=[png sf terra]; };
+  ratdat = derive2 { name="ratdat"; version="1.0.0"; sha256="1d4ivllasg1yd3i95rsxl3hkyij5r9a3j83scv3ghx6bx7w79aj4"; depends=[]; };
   ratelimitr = derive2 { name="ratelimitr"; version="0.4.1"; sha256="06x759jxr5zcnvg9q120n5bpipkb16piw15kxrpk7i918mby889b"; depends=[assertthat]; };
   ratematrix = derive2 { name="ratematrix"; version="1.2.3"; sha256="0bnwwkmjsxlv4qkkwq93d7nrqb7pyyd70ffpm98xsxfy1ygdxjqq"; depends=[ape coda corpcor ellipse geiger MASS mvMORPH phylolm Rcpp RcppArmadillo readr]; };
   rater = derive2 { name="rater"; version="1.2.0"; sha256="1y4hhcnxdlw17w0ihv108p3rkwwdis7i7vc0rp7l6pfz7an8pw8r"; depends=[BH ggplot2 loo Rcpp RcppEigen RcppParallel rlang rstan rstantools StanHeaders]; };
@@ -15202,6 +15235,7 @@ in with self; {
   ratesci = derive2 { name="ratesci"; version="0.4-0"; sha256="1imraj95vcwz3i6r767zwckjqs1vp7bfww9d792l5nvwi5zyddp4"; depends=[]; };
   rationalfun = derive2 { name="rationalfun"; version="0.1-1"; sha256="0xabnqgzl8qdc4x9547mmkr1rm78p3fysdvk6jhjdi8cp2p6kcjh"; depends=[polynom]; };
   ratios = derive2 { name="ratios"; version="1.2.0"; sha256="16q9v2lhgklvdp3hi9x3afdldznfpwg775p80m2g5074q2dzjpgg"; depends=[data_table stringr]; };
+  rattle = derive2 { name="rattle"; version="5.5.1"; sha256="1nhknpdy2a3szcbylg9cq1c1g9ds5y3m35dbbi6rh8r85777qviy"; depends=[bitops dplyr ggplot2 magrittr rpart_plot stringi stringr tibble tidyr XML]; };
   raveio = derive2 { name="raveio"; version="0.0.5"; sha256="0c17f9cgh453d22lxa2ds5q6si27chk55cyzlmp1klipx4mfq3jp"; depends=[callr data_table dipsaus edfReader filearray fst glue hdf5r ini jsonlite R_matlab R6 remotes stringr targets threeBrain yaml]; };
   ravelRy = derive2 { name="ravelRy"; version="0.1.0"; sha256="07mywv57rw2b309i2qisbpx1x3sb3z6n2b5gia9bdmb2m4hhpdai"; depends=[dplyr httr jsonlite purrr tibble tidyr]; };
   raven_rdf = derive2 { name="raven.rdf"; version="0.2.0"; sha256="12jy3md6d1qwzkks5iljn4h0iv5lj3n39ll7r3fvrxjwh7afvw7r"; depends=[]; };
@@ -15210,15 +15244,17 @@ in with self; {
   rawKS = derive2 { name="rawKS"; version="0.1.0"; sha256="1yiw9imhgij49qbm9hk6psb73zngqmxxwnaxq144ydwb7fbk6j0z"; depends=[dplyr ggplot2 magrittr ROCR tidyr]; };
   raws_profile = derive2 { name="raws.profile"; version="0.1.0"; sha256="04f7wk7x9j3rb6nn3zqss9vw0h9a4vpcjyilc2vqy0fm2by41xkg"; depends=[stringr tibble withr]; };
   rayimage = derive2 { name="rayimage"; version="0.6.2"; sha256="1zhs4whbxvn8gn0ddxpd8qgnv2f75nlvrz6x5y0ac516bgrapz5z"; depends=[jpeg magrittr png progress Rcpp RcppArmadillo]; };
+  raymolecule = derive2 { name="raymolecule"; version="0.5.0"; sha256="1dykcm72pqskwfvmvnp0cccg2hlpjcqxhidfq993l1kf2cc0i747"; depends=[httr magrittr PeriodicTable rayrender rayvertex]; };
   rayrender = derive2 { name="rayrender"; version="0.23.6"; sha256="05pnj42mqrpkxr59fmap0j9s66aaf6hjsbgmnw4gnaal6x9xxijm"; depends=[decido magrittr png progress purrr raster rayimage Rcpp RcppThread spacefillr tibble]; };
   rayshader = derive2 { name="rayshader"; version="0.24.10"; sha256="1wdqbbk8f0vxha0awgfv4c8n7yndy2k1q6f3rkr3f5j84wwqfjbx"; depends=[doParallel foreach magrittr png progress raster rayimage Rcpp RcppArmadillo rgl scales terrainmeshr]; };
   raytracing = derive2 { name="raytracing"; version="0.1.0"; sha256="052j053l4104pk7cbkkqrj3kkiip9lv2lf0xl2xsray62n6p07m4"; depends=[ncdf4 sf units]; };
   rayvertex = derive2 { name="rayvertex"; version="0.3.3"; sha256="1xigdspf3jybk48i60141kjk34vig9drl7sdn1pi5zsh3pi4w5rx"; depends=[digest magrittr png rayimage Rcpp RcppThread spacefillr]; };
   rbace = derive2 { name="rbace"; version="0.2.2"; sha256="04jcbrcp0l1v2q8hhwr5w72spdja8r0fw71v68kx39yigy7m1sgp"; depends=[crul data_table tibble xml2]; };
-  rbacon = derive2 { name="rbacon"; version="2.5.7"; sha256="14j84bkgmxigzj5nk909b89ails7mzys8wk92gvcywv2p9yhwk6b"; depends=[coda IntCal Rcpp]; };
+  rbacon = derive2 { name="rbacon"; version="2.5.8"; sha256="10i3kbk8wssh2v7ry37bswf1wxsvg5nxdw4ap58fxcn7wsblzjrk"; depends=[coda IntCal Rcpp]; };
   rbart = derive2 { name="rbart"; version="1.0"; sha256="1byfm1ycw9nfhdblqklyn8pxn6b9q5fa3inbgfpynqpsid97ig35"; depends=[Rcpp]; };
-  rbcb = derive2 { name="rbcb"; version="0.1.9"; sha256="1vhdbrci803365ik5y6mbpa9wjg7ixz6vbxw78v31irrnn814ish"; depends=[httr jsonlite tibble xml2 xts]; };
+  rbcb = derive2 { name="rbcb"; version="0.1.10"; sha256="0qqrb5kvin1ansy3dswdfib2952dlbl7x1zlig3j2mfqcgwn9450"; depends=[httr jsonlite tibble xml2 xts]; };
   rbch = derive2 { name="rbch"; version="0.1-1"; sha256="0n2s5qfgjvg7vv65myz6dcmmaf37z883z1sw4hryngz2z6w4zz5q"; depends=[gmp httr openssl rjson]; };
+  rbedrock = derive2 { name="rbedrock"; version="0.2.0"; sha256="1hzd0p5nzfshackwlmlzffrpzxrp2mnhk6izb8r605lrxp7laf4v"; depends=[bit64 digest dplyr fs magrittr purrr R6 rappdirs readr rlang stringr tibble tidyr vctrs]; };
   rbefdata = derive2 { name="rbefdata"; version="0.3.5"; sha256="12mcqz0pqgwfw5fmma0gwddj4zk0hpwmrsb74dvzqvgcvpfjnv98"; depends=[RColorBrewer RCurl rjson rtematres wordcloud XML]; };
   rbenchmark = derive2 { name="rbenchmark"; version="1.0.0"; sha256="010fn3qwnk2k411cbqyvra1d12c3bhhl3spzm8kxffmirj4p2al9"; depends=[]; };
   rbenvo = derive2 { name="rbenvo"; version="1.0.5"; sha256="0clg2cxyi60yz2mdp95v0hd5gqhk8h2xgmx68852jcpbjf76xasa"; depends=[dplyr forcats ggplot2 lme4 lubridate magrittr Matrix purrr rlang sf stringr tidyr]; };
@@ -15229,18 +15265,17 @@ in with self; {
   rbibutils = derive2 { name="rbibutils"; version="2.2.7"; sha256="1iamdbww3hvxy0bbywc307kyhiczx0bvfhw7nngsm33balcng7kw"; depends=[]; };
   rbin = derive2 { name="rbin"; version="0.2.0"; sha256="18g6s4m0yc1bzrymk8km553kcwi4vj16b6mxw2lmv48z7243iq87"; depends=[data_table ggplot2]; };
   rbioacc = derive2 { name="rbioacc"; version="1.1-0"; sha256="0lmkfr0s90hi06llsa0v4jbcx0jd1dx3qq9h6kb67ws0q6h9y028"; depends=[BH GGally ggmcmc ggplot2 loo Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders stringr zoo]; };
-  rbioapi = derive2 { name="rbioapi"; version="0.7.4"; sha256="1w3mahdrqk76g5ygyabvb8kypycwp91k5njwsqhzyfgj2yr67qkn"; depends=[httr jsonlite]; };
+  rbioapi = derive2 { name="rbioapi"; version="0.7.6"; sha256="13wa5642pkndffydklaw81p3avqscw3m82qy65pmfyhlx6d7cj26"; depends=[httr jsonlite]; };
   rbiom = derive2 { name="rbiom"; version="1.0.3"; sha256="13nma1s3p4bzh8mvikrnmkqyyrx9axvxavq6fyk2w0j804w1qzcg"; depends=[magrittr openxlsx plyr R_utils Rcpp RcppParallel rjson rlang slam]; };
   rbiouml = derive2 { name="rbiouml"; version="1.11"; sha256="1g1q6xc8x8y71ji75c5fl35sxxss964xmhcqlriybb5zc38m1dh0"; depends=[RCurl RJSONIO]; };
   rbison = derive2 { name="rbison"; version="1.0.0"; sha256="0g586hsqci4amci10zjq6xpjvxfjr6rv5i63vp85v3z6bkwfamwr"; depends=[crul data_table dplyr ggplot2 jsonlite mapproj plyr sp tibble]; };
   rbit = derive2 { name="rbit"; version="1.0.0"; sha256="09ywr711gv0vgfims2vfcxk3rnd0iadzlksil0q9159yarapfc59"; depends=[R6]; };
   rbitcoinchartsapi = derive2 { name="rbitcoinchartsapi"; version="1.0.4"; sha256="0r272jvjh3rzch8dmn4s0a5n5k6dsir7pr4qswzfvafqjdiwjajz"; depends=[RCurl RJSONIO]; };
   rblt = derive2 { name="rblt"; version="0.2.4.5"; sha256="1pfg8sgm532czz3lhpx7dmg5zik3bc0p4vdq9s0qk5zgq7nnm9sj"; depends=[data_table dygraphs hdf5r shiny xts]; };
-  rbmi = derive2 { name="rbmi"; version="1.1.1"; sha256="09d40aqdzri0364k54zwd5ixh7n7bf16nfjb3jb8bcjcpzqsywsr"; depends=[assertthat BH glmmTMB Matrix R6 Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
-  rbmn = derive2 { name="rbmn"; version="0.9-4"; sha256="039scbjzigj9ks62l8yagfpr3bpslvxg1nqv22pyw8jay8i6993g"; depends=[MASS]; };
+  rbmi = derive2 { name="rbmi"; version="1.1.3"; sha256="1j90s4mjw0vk9jwp3nr25ig72kbsrn0kgdp31gvxyphymllzc2a1"; depends=[assertthat BH glmmTMB Matrix R6 Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
+  rbmn = derive2 { name="rbmn"; version="0.9-5"; sha256="087i0snzfk5ng944pvy3cqnbib270p0sdmmxk9lp4ab6hi0f7618"; depends=[MASS]; };
   rbokeh = derive2 { name="rbokeh"; version="0.5.2"; sha256="1h2fpzqf17pw9d09r1g1iyxsj5qma4fsk8vnar7f1z4fjyypvi6q"; depends=[digest gistr hexbin htmlwidgets jsonlite lazyeval magrittr maps pryr scales]; };
   rbooster = derive2 { name="rbooster"; version="1.1.0"; sha256="0v524hjp3im94hbf6kbmi4xhqnak135mmpmq1sni1c97dqal2hqy"; depends=[earth Hmisc rpart]; };
-  rbounds = derive2 { name="rbounds"; version="2.1"; sha256="1h334bc37r1vbwz1b08jazsdrf6qgzpzkil9axnq5q04jf4rixs3"; depends=[Matching]; };
   rbridge = derive2 { name="rbridge"; version="1.0.2"; sha256="0m4c61rdrhq1jw3rwq2ld29g5dchbk4sfpnq0wmwbvzhdjq76plc"; depends=[dplyr Matrix Rcpp RcppArmadillo]; };
   rbscCI = derive2 { name="rbscCI"; version="0.1.0"; sha256="12r1f4yy5hx0sx1q77yzq3wxhbx8zgj9d1jfpa1hagvwcyd8bdxb"; depends=[BH Rcpp]; };
   rbtc = derive2 { name="rbtc"; version="0.1-6"; sha256="1z5p1jn5b0hzwcbdpiwj224h45x01bbsgkskllir5j13l416561p"; depends=[gmp httr openssl rjson]; };
@@ -15254,8 +15289,9 @@ in with self; {
   rcanvec = derive2 { name="rcanvec"; version="0.2.1"; sha256="0gsk2cfiysxjw2lrnpl2l524lvhh9nhnyyh79n8p7vykyqj711yn"; depends=[rgdal sp]; };
   rcarbon = derive2 { name="rcarbon"; version="1.4.3"; sha256="18yxliq6bxrrkd6xhlrxbbh017lclsfkvmgq662zy58a6wfjmqxh"; depends=[doSNOW foreach iterators knitr snow sp spatstat spatstat_core spatstat_geom spatstat_linnet]; };
   rcartocolor = derive2 { name="rcartocolor"; version="2.0.0"; sha256="08ljaag2mnhz2671zvwji1sp003z94lz30vjidmybm9fp8piqw5g"; depends=[ggplot2 scales]; };
-  rcbalance = derive2 { name="rcbalance"; version="1.8.6"; sha256="140zibpamk9x2xj3ni9p9kgbhxv7rpszlfrvp72854604502zbia"; depends=[MASS plyr]; };
+  rcbalance = derive2 { name="rcbalance"; version="1.8.8"; sha256="1kxy3nv9f3qk5azp8d6khd7skk9m4704mdimgzabrndrlb5ihyw8"; depends=[MASS plyr rlemon]; };
   rcbayes = derive2 { name="rcbayes"; version="0.2.0"; sha256="1qwbpx9snqgaz7gshvyhq9ylsf59grjhx56f7cnq25h2f76km9cc"; depends=[BH dplyr magrittr Rcpp RcppEigen RcppParallel Rdpack rlang rstan rstantools shiny shinythemes StanHeaders tibble tidybayes]; };
+  rcbsubset = derive2 { name="rcbsubset"; version="1.1.7"; sha256="0k4jgjwq0mxpxs43010j5ija8hqzwcdqljzxdymji5ndcd2gvwig"; depends=[MASS plyr rcbalance rlemon]; };
   rcc = derive2 { name="rcc"; version="1.0.0"; sha256="0a77d54c9qahhsjzpa0436ddsj4j44013r7rbxm0fjz04c0d2921"; depends=[]; };
   rccdates = derive2 { name="rccdates"; version="1.0.0"; sha256="1f87qlw62am2qy1zzrz91vmsn8axhld44gak61xa7046675hm98s"; depends=[rccmisc]; };
   rccmisc = derive2 { name="rccmisc"; version="0.3.7"; sha256="171s2ll759xjdnx0z24ih5ix2vcp4qnmf1nf107gij6wv8k450ab"; depends=[dplyr]; };
@@ -15264,7 +15300,7 @@ in with self; {
   rcdk = derive2 { name="rcdk"; version="3.6.0"; sha256="0v3i1402hrlp3sap3ryjd63gac8wbcwj7lfa3smk1agqy659glcx"; depends=[fingerprint iterators itertools png rcdklibs rJava]; };
   rcdklibs = derive2 { name="rcdklibs"; version="2.3"; sha256="16ijvzsc1irpz1z2xd82i2saafsvpn0x5lr54c5gx9bfb35gacyp"; depends=[rJava]; };
   rchallenge = derive2 { name="rchallenge"; version="1.3.4"; sha256="0i402p6ccjn10ix5nln30pab5nd78hg5q4ivvgc4i99nx7aq0xpx"; depends=[knitr rmarkdown]; };
-  rcheology = derive2 { name="rcheology"; version="4.1.2.0"; sha256="0vsjcg83jvvmwggqh073325wsar6dfa7diikkvq3k0jlfwkcrs4n"; depends=[]; };
+  rcheology = derive2 { name="rcheology"; version="4.1.3.0"; sha256="10ybq2m62grn6m1nag7i5da2xb725z1jqd9ky7hcxmlv0n286m5q"; depends=[]; };
   rchess = derive2 { name="rchess"; version="0.1"; sha256="0qnvvvwcl02rmqra9m7qnhy40cbavswbq6i0jm47x6njmr1gpfhy"; depends=[assertthat dplyr ggplot2 htmlwidgets plyr R6 V8]; };
   rchie = derive2 { name="rchie"; version="1.0.2"; sha256="1m89mwq5f81yr2vc3wvnxkpm04bad11sx5fllcd3yy8ilghmbfp6"; depends=[jsonlite V8]; };
   rcites = derive2 { name="rcites"; version="1.2.0"; sha256="1lyahgpjskzqlmjnz14kkkrl30by1nzzi02wsf0rfskbdhmwc5in"; depends=[cli curl httr jsonlite]; };
@@ -15273,8 +15309,8 @@ in with self; {
   rcmdcheck = derive2 { name="rcmdcheck"; version="1.4.0"; sha256="1l696byn3kjq2xvz4wxybzaj6ink85h4lz3a35v2132ba5yyzm5v"; depends=[callr cli curl desc digest pkgbuild prettyunits R6 rprojroot sessioninfo withr xopen]; };
   rco = derive2 { name="rco"; version="1.0.2"; sha256="1ch7ak802ri4jr10jqvhvdi6q9fhyhql15ja395xfv6j81d5cmia"; depends=[]; };
   rcolors = derive2 { name="rcolors"; version="0.1.0"; sha256="19lkwd1wdwq9if957qjgrz9mq6s8x49dig8snivhw9ksffcfy4xp"; depends=[magrittr]; };
-  rcompanion = derive2 { name="rcompanion"; version="2.4.13"; sha256="0y5d4z903fj7z326y9alnnlr0hcmxspccv2swra8a4j927csr764"; depends=[boot coin DescTools lmtest multcompView nortest plyr]; };
-  rcompendium = derive2 { name="rcompendium"; version="0.5.1"; sha256="0zg7051c4wg1jbdf7hshswy53y24x8h8myhshvg9z2pg8mvd8sir"; depends=[clisymbols crayon devtools gert gh gtools rmarkdown rstudioapi stringr usethis xfun]; };
+  rcompanion = derive2 { name="rcompanion"; version="2.4.15"; sha256="1pb2ypc2i1dcvs4i099lzh9jz1ly2i33vw98vw7g1kxmgg5kjy9l"; depends=[boot coin DescTools lmtest multcompView nortest plyr]; };
+  rcompendium = derive2 { name="rcompendium"; version="1.0"; sha256="1j6hxf6hdvi90qhlzra0jkgyn7a3q4skj594b7lxg5mfkzs7zr2j"; depends=[clisymbols crayon devtools gert gh gtools renv rmarkdown rstudioapi stringr usethis xfun]; };
   rconfig = derive2 { name="rconfig"; version="0.1.1"; sha256="0jcwfhbqh4sb8y5wd8l05xz0y7nn28dhfkb2r40jbp6ycrvw8mpp"; depends=[jsonlite yaml]; };
   rcoreoa = derive2 { name="rcoreoa"; version="0.4.0"; sha256="0q5dprz0ag04w265bk7isd2lr61nahf223qza47m0izd9nyi9h8a"; depends=[crul hoardr jsonlite pdftools]; };
   rcorpora = derive2 { name="rcorpora"; version="2.0.0"; sha256="1b8xa81mn3afadz77576vda9b0d99f1k096drxrpqd989g993aqy"; depends=[jsonlite]; };
@@ -15284,7 +15320,7 @@ in with self; {
   rcrypt = derive2 { name="rcrypt"; version="0.1.1"; sha256="002r5wr0bmqbj014iz8wacj883j6gqcxc786m6p9a7zdrjpx2pqi"; depends=[]; };
   rct3 = derive2 { name="rct3"; version="1.0.4"; sha256="1xm5kni2mnpzby8basmwbm1abg615i4mlf6fn9jr5il94q1bdgly"; depends=[]; };
   rcube = derive2 { name="rcube"; version="0.5"; sha256="1162y7fs3fsbb5jj66g9kvxxhggprlifrabqbb9lqm8rrdwhz3r9"; depends=[magrittr]; };
-  rdacca_hp = derive2 { name="rdacca.hp"; version="1.0-7"; sha256="0ww67wa3rjy0p2dgqr4h69sy9jb7ipmrmycx902491jya0gwsw2a"; depends=[ggplot2 vegan]; };
+  rdacca_hp = derive2 { name="rdacca.hp"; version="1.0-8"; sha256="0fmb8gigihf82gdz4yijfchwcw6s1jz91kfpjp0y6cs412lmq4ga"; depends=[ggplot2 vegan]; };
   rdatacite = derive2 { name="rdatacite"; version="0.5.2"; sha256="07zbxr89fxx9nlp5w7n60rjm3prck08h0fjrq0pnpkbnnkx9cv9a"; depends=[crul jsonlite tibble]; };
   rdbnomics = derive2 { name="rdbnomics"; version="0.6.4"; sha256="1h32wxjykz9y3k48rx31cvy485gsx8ix3194r2zgxlwdza3rl3lb"; depends=[curl data_table jsonlite]; };
   rdd = derive2 { name="rdd"; version="0.57"; sha256="1lpkzcjd18x51wzr4d1prdjfsw5978z6zap65psfs02nszy69nqp"; depends=[AER Formula lmtest sandwich]; };
@@ -15311,14 +15347,13 @@ in with self; {
   rdrobust = derive2 { name="rdrobust"; version="1.0.8"; sha256="04z7a5499cc8q61wi2zc370l1r6ymipfd8zk7k93692c6lx3yygz"; depends=[ggplot2 MASS]; };
   rdrop2 = derive2 { name="rdrop2"; version="0.8.2.1"; sha256="02rhcq1vn349ddjkqamxb0wjb3z3m4wzkvin1mprcz4fzrjxgbdr"; depends=[assertive digest dplyr httr jsonlite magrittr purrr]; };
   rdryad = derive2 { name="rdryad"; version="1.0.0"; sha256="00f1qwsbwg5jggm5b83nhk1lxyw272rv2kg77bcwqvlf3074c3mz"; depends=[crul curl hoardr jsonlite mime tibble zip]; };
-  rdtLite = derive2 { name="rdtLite"; version="1.3"; sha256="1njn6x2k03qxmb96d5sl7jz0xq5wabbixn9xy55ypw8g1k0cgmd1"; depends=[curl digest gtools jsonlite knitr provSummarizeR provViz rlang rmarkdown sessioninfo stringi XML]; };
   rdwd = derive2 { name="rdwd"; version="1.5.0"; sha256="1x63zarcyc1rapg46h0vlym3v2kbd6ql2vza9jqly371p5g8l1ci"; depends=[berryFunctions pbapply]; };
   rdwplus = derive2 { name="rdwplus"; version="0.1.0"; sha256="1y4dnm2bb0w6pim4h79mv2km88s78vhsn5fhs7z45m0564hgk0x2"; depends=[raster rgrass7]; };
-  re2 = derive2 { name="re2"; version="0.1.1"; sha256="0hjdm96qgbrb6lvgyadl30af93zvvni0rwqhialj8swp341qlvw2"; depends=[Rcpp]; };
+  re2 = derive2 { name="re2"; version="0.1.2"; sha256="13cxq6zw66b0wqwv19kkgn8z9kx1p9x1z1fv9cgn1iq7v1br8gm4"; depends=[Rcpp]; };
   reReg = derive2 { name="reReg"; version="1.4.2"; sha256="1w0h1dsy3hl66fghjcbgc4nh9k1dkga4d53qb5iyd35a5pwpv41v"; depends=[BB dfoptim directlabels ggplot2 MASS nleqslv optimx Rcpp RcppArmadillo reda rootSolve scam SQUAREM survival]; };
   reactR = derive2 { name="reactR"; version="0.4.4"; sha256="15c0ij3xglsdavkpzgnkbyl5yb39jrn6zhlrdjiwp1m9cnrqzf2w"; depends=[htmltools]; };
   reactable = derive2 { name="reactable"; version="0.2.3"; sha256="17wl75cblm0rgq3chl96vj7wmbcmszss1zjppfccz1hcimfmlrpx"; depends=[digest htmltools htmlwidgets jsonlite reactR]; };
-  reactablefmtr = derive2 { name="reactablefmtr"; version="1.0.0"; sha256="0c058ar826zfw7g9vdlgfc9sra3sxp1n6m1ijfgrfm04whk2sz50"; depends=[dplyr htmltools htmlwidgets reactable shiny stringr]; };
+  reactablefmtr = derive2 { name="reactablefmtr"; version="2.0.0"; sha256="1r864j8ma1sas2fglw5hdkhf3lxrkri7mf2k5j8cpq7398kgzp94"; depends=[dplyr htmltools htmlwidgets magrittr purrr reactable sass shiny stringr tippy webshot]; };
   reactlog = derive2 { name="reactlog"; version="1.1.0"; sha256="0vngy7fixiighhaa0db8xfr6962jmrfn3675qrn3hj7rfh7siagz"; depends=[jsonlite]; };
   read_dbc = derive2 { name="read.dbc"; version="1.0.5"; sha256="1vrvxkcrk3iw5am9rsadxzf0wsr7z2mdpa5wb0v9jbhda710b4yf"; depends=[foreign]; };
   read_gb = derive2 { name="read.gb"; version="2.2"; sha256="1ym285y6ii71lz3c68imvcdpw24jdxbdxzq9ia533dy5himclrg7"; depends=[rentrez]; };
@@ -15350,7 +15385,7 @@ in with self; {
   readtextgrid = derive2 { name="readtextgrid"; version="0.1.1"; sha256="03qrbmlpbjwx4ia0ydv6m9lwzalsas9pdhds82mg5f8ir0cd0qi6"; depends=[magrittr plyr purrr readr stringr tibble]; };
   readthat = derive2 { name="readthat"; version="0.0.1"; sha256="04vnpvfa8in3gxi6nv3si59hr8hj17wq3a5n8rnpiaczg46qr1dr"; depends=[curl Rcpp]; };
   readwritesqlite = derive2 { name="readwritesqlite"; version="0.1.2"; sha256="1nnakxj4jsh8wcwzciksa2s1pxjwa407lzmjy4fk82f68ir9jh51"; depends=[chk DBI hms lifecycle RSQLite tibble]; };
-  readxl = derive2 { name="readxl"; version="1.3.1"; sha256="15mambxr8c7k2ikdfsl1w3vxvm54dsnk0cl1qvks6iig7rql3d14"; depends=[cellranger progress Rcpp tibble]; };
+  readxl = derive2 { name="readxl"; version="1.4.0"; sha256="1xwi4k5si48hwkgfc59icfmp9dzlvfri59k5fsgn96zp9713k4mb"; depends=[cellranger cpp11 progress tibble]; };
   readxlsb = derive2 { name="readxlsb"; version="0.1.4"; sha256="1qnfijspx8zwsmr1i6qb7vgaxazmvshq5mcxn79y0r2spszq419i"; depends=[cellranger Rcpp xml2]; };
   realtest = derive2 { name="realtest"; version="0.2.1"; sha256="0868ng2vg91c3wsx6c13k7cii2519k1algs8a6pgf4r01jvja5pz"; depends=[]; };
   rearrr = derive2 { name="rearrr"; version="0.3.0"; sha256="0cha5klizm1qppvw512j86papnbc5g0k6yyq2bifw831dqb6k9pb"; depends=[checkmate dplyr lifecycle plyr purrr R6 rlang tibble]; };
@@ -15415,20 +15450,20 @@ in with self; {
   regexPipes = derive2 { name="regexPipes"; version="0.0.1"; sha256="1hk0rhvmgzcyf5cyl8hjznl3ll25kpasqikfr6nxd6ian2slvmmb"; depends=[]; };
   regexSelect = derive2 { name="regexSelect"; version="1.0.0"; sha256="0xnb9qa8l63ang4r40ky4qhlrs5mbzvmj98dgij26j3mq1ys1pa7"; depends=[shiny shinyjs]; };
   regexTestR = derive2 { name="regexTestR"; version="0.1.3"; sha256="0nnp2xlrrywpi1lmj8ymsjgiqvq8777hhdgcwjq549m7whfw6lsg"; depends=[config data_table DT golem htmltools pkgload processx purrr RColorBrewer rvest shiny shinyBS shinythemes stringr tidyr xml2]; };
-  regfilter = derive2 { name="regfilter"; version="1.0.1"; sha256="19dp0219a789qjxc0flg14bwp297g3kcy5p65m9qsw72658pxw3z"; depends=[e1071 FNN gbm modelr nnet randomForest rpart]; };
+  regfilter = derive2 { name="regfilter"; version="1.0.2"; sha256="0b0msgx2ffcbd8aijxknwb54ha38dqbvgzwsggf4v7mlpqga1qm0"; depends=[e1071 FNN gbm modelr nnet randomForest rpart]; };
   reghelper = derive2 { name="reghelper"; version="1.1.0"; sha256="16mj3v9rn9krx4a8xnb2l01wnk17hgn0pkmkvqh4baby9a479hv7"; depends=[ggplot2 lme4 MASS nlme]; };
-  regional = derive2 { name="regional"; version="0.3.0"; sha256="1x97jjpn08q0w3xw1r6k8dvildcl16zzwxwrwmbdhavqmcvf0lp8"; depends=[philentropy terra]; };
+  regional = derive2 { name="regional"; version="0.3.3"; sha256="0gwm3lqmils8dpv0g0919caqifa90lv3vrjqcky33i7jd18c20g2"; depends=[philentropy terra]; };
   regioncode = derive2 { name="regioncode"; version="0.1.1"; sha256="1h5qbpcfgl86g0cy5nz9vvwzqsp335lqhl4djil3k3mab38k778d"; depends=[dplyr knitr pinyin textshaping]; };
   regions = derive2 { name="regions"; version="0.1.8"; sha256="16i0w1my9zfwh0p9qvc3vcid0r6rb6gbvvrx03vbg81l6cxrglr4"; depends=[assertthat countrycode dplyr glue here magrittr purrr readxl rlang stringr tibble tidyr tidyselect]; };
   registr = derive2 { name="registr"; version="1.0.0"; sha256="1ysj2ab69w6g71d1kpcwyq0py71w6h7lfhk4nzgn2dhh6k8whwbn"; depends=[dplyr ggplot2 gridExtra magrittr Rcpp RcppArmadillo tidyr]; };
   registry = derive2 { name="registry"; version="0.5-1"; sha256="1k3j6dx350awamr0dwwgkhfs46vsnj4nf08iw5byq0x7n3nkdsnz"; depends=[]; };
   reglogit = derive2 { name="reglogit"; version="1.2-6"; sha256="1nnn8n5sqhbd3nzmwnpmcsmaxxxaqwbna7xm7q9vk4cqz9cm9b9s"; depends=[boot Matrix mvtnorm]; };
   regmed = derive2 { name="regmed"; version="2.0.4"; sha256="19cc0nx4463jny9cw5smb95crb3makspysfx06h82amhyqjyzw60"; depends=[glasso igraph knitr lavaan Rcpp RcppArmadillo]; };
-  regmedint = derive2 { name="regmedint"; version="0.2.1"; sha256="0z6yq0r0mq028z09zayfmsyyjjcnh9cg75xwckcxk0xbgs1qk1yx"; depends=[assertthat Deriv MASS Matrix sandwich survival]; };
+  regmedint = derive2 { name="regmedint"; version="1.0.0"; sha256="1rysxdci13r08y79fyd5h5idl2ip4i7b8v4x6n2rlc0vwi5wc61a"; depends=[assertthat Deriv MASS Matrix sandwich survival]; };
   regnet = derive2 { name="regnet"; version="0.4.0"; sha256="0qb7sp464fyxn0bslkapjni3pzk7l6fdgabfbzja08flsr63r4mh"; depends=[glmnet Rcpp RcppArmadillo]; };
-  rego = derive2 { name="rego"; version="1.3.4"; sha256="1dqirk3wk3xps612av54d1f0h3ddh1an9bnxqyb9vbbpml9fw18a"; depends=[Rcpp]; };
+  rego = derive2 { name="rego"; version="1.3.5"; sha256="02zlllxral9ar4nwyfjijzkymkch8vlnv0pfjp8lns8dzd3h1rvn"; depends=[Rcpp]; };
   regplot = derive2 { name="regplot"; version="1.1"; sha256="048w0hnd2y8k27msjhw2g4ygck6i09698qk24sz7563z82gvj52w"; depends=[beanplot lme4 sm survival vioplot]; };
-  regpro = derive2 { name="regpro"; version="0.1.1"; sha256="02axbq63hsqwg3q2ixr0lpsdai9q6wj57s5k1343q9m0pw90vr73"; depends=[denpro]; };
+  regport = derive2 { name="regport"; version="0.2.0"; sha256="1qj4wf02ycvdb9gqgvfn19k2cqxy1mjdl9yy80vfm4m561ldpfr5"; depends=[broom_helpers data_table dplyr forestploter glue parameters R6 rlang survival]; };
   regrap = derive2 { name="regrap"; version="1.0.1"; sha256="0yrxhlam7jmxwk1v53kllv6ja1m938symfvqp84xb278r3wb1wv7"; depends=[mvtnorm]; };
   regress = derive2 { name="regress"; version="1.3-21"; sha256="0mkf1dyg0r09ifdvmc3g6b0q0h819j0kfh1cb33r1vsr8yfjvgbz"; depends=[]; };
   regressoR = derive2 { name="regressoR"; version="2.0.1"; sha256="0h5f085vpmvjzrr3wiq7gvj0cma41szikmp8iaczhc04cdj6k18b"; depends=[DT e1071 echarts4r gbm glmnet golem htmltools kknn neuralnet pls randomForest rlang rpart rpart_plot shiny shinyAce shinycustomloader shinydashboard shinydashboardPlus shinyjs]; };
@@ -15437,7 +15472,7 @@ in with self; {
   regspec = derive2 { name="regspec"; version="2.4"; sha256="18i6k2wqaddrc0dz7v8x3s9205dcfwanqhpnxa9hkpyqzbb17pd3"; depends=[]; };
   regsubseq = derive2 { name="regsubseq"; version="0.12"; sha256="0879r4r8kpr8jd6a3fa9cifm7cv0sqzz8z1alkm1b2fr1625md3g"; depends=[]; };
   regtomean = derive2 { name="regtomean"; version="1.0"; sha256="1w5i75iwwc2w2nzw9yap86njhq9jz0pc9cn39ivxdam4a9693jjz"; depends=[effsize formattable mefa plotrix plyr sjlabelled sjmisc sjPlot]; };
-  regtools = derive2 { name="regtools"; version="1.1.0"; sha256="1kia4h4bwjjfq7jm57ihdgspbqfn683ssbzngp5r069ki931h3nb"; depends=[dummies FNN mvtnorm sandwich]; };
+  regtools = derive2 { name="regtools"; version="1.7.0"; sha256="00g50dcfy93rgy9a2l24rsjgwk1575gxhpg9dy5r9928nwwd6lx9"; depends=[car data_table FNN glmnet gtools MASS mvtnorm polyreg R_utils rje sandwich text2vec]; };
   regweight = derive2 { name="regweight"; version="1.0.2"; sha256="1ziqii9xlp86n6ga99glwnh2kf6pkm8m326yra40yf2w3h180pbm"; depends=[checkmate dplyr ggplot2 glue gt lpdensity rlang scales tidyr tidyselect]; };
   rehh = derive2 { name="rehh"; version="3.2.2"; sha256="1kgabmg0vq8psdhkfcpdv3iy8gj5hmqzhb8bs8rld49nhnnbqs2x"; depends=[rehh_data]; };
   rehh_data = derive2 { name="rehh.data"; version="1.0.0"; sha256="1jkvwmnnmfa7iyvrabgcfzw3vfzx0dlgq47s6yf4zayi437v4di0"; depends=[]; };
@@ -15448,14 +15483,13 @@ in with self; {
   relSim = derive2 { name="relSim"; version="0.3-1"; sha256="1d6yihapfyjlfw87l370wyfyby7ivvykx04qljffdv3hi801gn7f"; depends=[multicool Rcpp rvest stringr xml2 xtable]; };
   relaimpo = derive2 { name="relaimpo"; version="2.2-6"; sha256="1v2zvakzrnc89dshhpkrikfwa7l786sk5vnz4khil5f53biahm4r"; depends=[boot corpcor MASS mitools survey]; };
   relatable = derive2 { name="relatable"; version="1.0.0"; sha256="0147gin6dn76gg7gassar64f0w2gny1sh0k60v7914qhb4sj4s7i"; depends=[compare]; };
-  relations = derive2 { name="relations"; version="0.6-11"; sha256="1nsl042djnd7l61ckv3pwndqwxjcwvnvpni6d52dxc982gm8sims"; depends=[cluster sets slam]; };
+  relations = derive2 { name="relations"; version="0.6-12"; sha256="18qqlw04crg3f17hzcwyl2sy4y1ffd4r4vf758nzv0bhhivb99aq"; depends=[cluster sets slam]; };
   relaxo = derive2 { name="relaxo"; version="0.1-2"; sha256="1rzmq7q3j271s6qwwrmwidv0vxcjpgjhyiqgr6fkczkai2lbnd8x"; depends=[lars]; };
   reldist = derive2 { name="reldist"; version="1.7-0"; sha256="0i04d6w3r6fzm4bykz6lnnh6dngmd61v5wlpli70r3fzdzhi7fji"; depends=[densEstBayes Hmisc mgcv]; };
   relen = derive2 { name="relen"; version="1.0.1"; sha256="0br7c3j30a1yc61pyinmk5lvk8zw9rivd0z2096g6crgmbzix8ml"; depends=[]; };
   relevance = derive2 { name="relevance"; version="1.3"; sha256="185fb5vjq1l6q1yz4qyvm2qli1xpp3wc4d1s17y28daljmdijlw8"; depends=[]; };
   relevent = derive2 { name="relevent"; version="1.1"; sha256="10wy6qbg91bq8cs5fas50nnfw80rpsgr8bqpfbsxcmsh43ilpgg9"; depends=[coda sna trust]; };
   relgam = derive2 { name="relgam"; version="1.0"; sha256="0bfsk2pc3vdk8wgdfpz80x0f9p0z37sq114swqn6z11p298hwf2x"; depends=[foreach glmnet]; };
-  reliaR = derive2 { name="reliaR"; version="0.01"; sha256="000nafjp386nzd0n57hshmjzippiha6s6c4nfrcwl059dzmi088i"; depends=[]; };
   reliabilitydiag = derive2 { name="reliabilitydiag"; version="0.2.0"; sha256="0qgvyjc512gwr0rbgxkkf9ipvxfl9y07215f1pdk15xhzkk94m53"; depends=[bde dplyr ggExtra ggplot2 magrittr purrr rlang tibble tidyr vctrs]; };
   relimp = derive2 { name="relimp"; version="1.0-5"; sha256="0ydn82g8xdqzhf34187080bbpcpw1zdjbj2i3dv1d6d35vvprb5c"; depends=[]; };
   relliptical = derive2 { name="relliptical"; version="1.1.0"; sha256="0qarn0gyr1zkr1y9hdy0xmlrx12cp9sfn1fglgprfbymbjr36ncc"; depends=[FuzzyNumbers_Ext_2 matrixcalc Rcpp RcppArmadillo Rdpack Ryacas0]; };
@@ -15467,6 +15501,7 @@ in with self; {
   rematch2 = derive2 { name="rematch2"; version="2.1.2"; sha256="1fzpz8vhghw8ygwg6rsvfy3783pqk7ch029i5851lwypkplvz77y"; depends=[tibble]; };
   remedy = derive2 { name="remedy"; version="0.1.0"; sha256="1lsa5az9jwy4ngjmfzcb7qj4wm8phsgajlnp5kwa4nav0g1dhb4s"; depends=[knitr rematch2 rstudioapi]; };
   remindR = derive2 { name="remindR"; version="0.0.1"; sha256="0b27v2qm3z8l9vcng8f0rkphjidxkw5n017ysflx180qjizqq632"; depends=[assertthat]; };
+  remiod = derive2 { name="remiod"; version="1.0.0"; sha256="05xqc52rxjr1smfh26j6dwnc5i4n4al93jrq9wy85jdxkjx2y3h5"; depends=[coda data_table doFuture foreach future ggplot2 JointAI mathjaxr Matrix mcmcse ordinal progressr reshape2 rjags survival]; };
   remote = derive2 { name="remote"; version="1.2.1"; sha256="1ihzjxbvas7396cwsi9am4pl94naxa9dnhbnh8k0l5p4a50mk33w"; depends=[gridExtra latticeExtra mapdata raster Rcpp scales]; };
   remoter = derive2 { name="remoter"; version="0.4-0"; sha256="1a7m63l8phv5jnazvdqdrqkaqjwqzaac5y4jm2jn0ypy4n8jvkfl"; depends=[argon2 getPass pbdZMQ png]; };
   remotes = derive2 { name="remotes"; version="2.4.2"; sha256="05m5dgv0nba5vhjbdkd8z5lbhpfxgkw31j58am7vz1d44igqgvzj"; depends=[]; };
@@ -15488,12 +15523,12 @@ in with self; {
   repmis = derive2 { name="repmis"; version="0.5"; sha256="0z5mjbsl24yjbl0aawr35grcal44rf2xbwv1hy7bdkms94ix79b5"; depends=[data_table digest httr plyr R_cache]; };
   repmod = derive2 { name="repmod"; version="0.1.7"; sha256="1rpmvxfw2m3bisi5g90sdfm8wmwg2gv9rzblq9kl70kvrs8pj1qs"; depends=[boot flextable lme4 lmerTest officer xtable]; };
   repo = derive2 { name="repo"; version="2.1.5"; sha256="13gdka37kbs4mp16pf65bh28f0dkyalrcrdik6lc67jw8r9h94f9"; depends=[digest]; };
-  repoRter_nih = derive2 { name="repoRter.nih"; version="0.1.0"; sha256="0kdjg0hmhw4h5gwmzxr44xrr1lkij3p75729mwbqxqfdgn784ajx"; depends=[assertthat crayon dplyr httr janitor jsonlite lubridate magrittr purrr tibble]; };
+  repoRter_nih = derive2 { name="repoRter.nih"; version="0.1.1"; sha256="1qxcrn0npn5a257bxc06b06icckm2fcrwapv3xazkpc7dw6c1fqn"; depends=[assertthat crayon dplyr httr janitor jsonlite lubridate magrittr purrr tibble]; };
   repolr = derive2 { name="repolr"; version="3.4"; sha256="13kmy09c7lk8p1mkdss0krcsfb6d7zcnqpwnl38zkanvh8q3fqhm"; depends=[Matrix Rcpp RcppArmadillo]; };
   report = derive2 { name="report"; version="0.5.1"; sha256="1x293zjg4zfkcrgl6dsa6jn0igpxr12ic7jlb4ps79221ygga873"; depends=[bayestestR datawizard effectsize insight parameters performance]; };
   reportROC = derive2 { name="reportROC"; version="3.5"; sha256="1f3vdxz45bhks1pm3b41pmh8g8vr2czfr1pn4ddy4kgw5h1x3n8n"; depends=[pROC]; };
   reportReg = derive2 { name="reportReg"; version="0.3.0"; sha256="0qwrpn61x69hmgln5fpc58dqfa3pba0lgjjyj0f3fh96wc9jyhq1"; depends=[nlme]; };
-  reporter = derive2 { name="reporter"; version="1.2.9"; sha256="0aiv4wqv633jiazyf157dwi1bp6qgv6vnsnsral02cp9sm53cpq9"; depends=[crayon fmtr jpeg stringi]; };
+  reporter = derive2 { name="reporter"; version="1.3.1"; sha256="1cq36gw14jhnaxgnbwz311rhb8da1aj8q7iajyk2rzsivjwxvnyk"; depends=[crayon fmtr jpeg stringi withr zip]; };
   reportfactory = derive2 { name="reportfactory"; version="0.4.0"; sha256="0mkk9gyd3l6m33mkc6w3fmgrzc6na03kwxxwgn0zb83bjpmyyl1z"; depends=[callr fs knitr rmarkdown rprojroot rstudioapi yaml]; };
   reportr = derive2 { name="reportr"; version="1.3.0"; sha256="0zynplxqvbmf23cm2rsz3wz2jx6mv55z94mn1k44ny3lx625cnpw"; depends=[ore]; };
   reporttools = derive2 { name="reporttools"; version="1.1.3"; sha256="0sx89qb66lczmzcsybxac4razcncf2xcxr0vfkvb3f8jqc7xwcik"; depends=[xtable]; };
@@ -15521,11 +15556,11 @@ in with self; {
   resevol = derive2 { name="resevol"; version="0.2.0.9"; sha256="01w95ylmgyj75shljkmkmh0pb1gl7ys413fay4qbzll1z01rng1w"; depends=[]; };
   reshape = derive2 { name="reshape"; version="0.8.8"; sha256="0s6i0sqxg1vldxs6miv8mi0zydxbqzgpmzfiwkj8y7jix3yrfmad"; depends=[plyr]; };
   reshape2 = derive2 { name="reshape2"; version="1.4.4"; sha256="1n0jrajpvc8hjkh9z4g8bwq63qy5vy5cgl2pzjardyih4ngcz3fq"; depends=[plyr Rcpp stringr]; };
-  resourcer = derive2 { name="resourcer"; version="1.1.1"; sha256="0zjr12fxjlw9zwa5n3l7r2m6vrksvczdzyhq3aj3hzqbm148z1cq"; depends=[httr R6]; };
-  respR = derive2 { name="respR"; version="2.0.0"; sha256="19pyhplwmghm9qcz6b99nvsr6g3wnilr03ssf1cakh0q8km3x4as"; depends=[assertthat broom cowplot data_table dplyr ggplot2 glue gridExtra lubridate magrittr marelac purrr readxl roll segmented stringr xml2]; };
+  resourcer = derive2 { name="resourcer"; version="1.2.0"; sha256="1ybmhs9f8qh6vmlvc4lnyklqjd23qhgflxaak1j17k0jf1a317n9"; depends=[httr R6]; };
+  respR = derive2 { name="respR"; version="2.0.2"; sha256="0670hy7gg8bbjkjqcvchm83jr57725r8szix66mqggwx0xwjcxj0"; depends=[data_table dplyr glue lubridate magrittr marelac purrr readxl roll segmented stringr xml2]; };
   respirometry = derive2 { name="respirometry"; version="1.3.0"; sha256="1ffhkvf8a8zhkysghd636k47bl7k5bdwkkg4m0pr1zlxpfrif82c"; depends=[birk lubridate marelac measurements minpack_lm PKNCA seacarb segmented]; };
   responsePatterns = derive2 { name="responsePatterns"; version="0.1.0"; sha256="0iyx35kq82w18v8c7lfz7x31c2cgywn4xh8hg0ad3gsdygadq8hq"; depends=[]; };
-  restatapi = derive2 { name="restatapi"; version="0.12.8"; sha256="10x6zik6szvkmjzasv6dpa363jwim1jim9z27jc3x29kd3nw79hl"; depends=[data_table rjson xml2]; };
+  restatapi = derive2 { name="restatapi"; version="0.13.1"; sha256="1v19laafks48cfjccr4pk429xhp46asxndg3idk3zr5qm0hd91hv"; depends=[data_table rjson xml2]; };
   restaurant = derive2 { name="restaurant"; version="0.1.0"; sha256="1dr9nw5xkll1wnra2xi8dg2yiv85nibdg1i9lsn44v7cgr9vb32j"; depends=[]; };
   restfulr = derive2 { name="restfulr"; version="0.0.13"; sha256="1dk45mzrr6ka92yjz7hfhkj12kpx1wg4szv1h1mg80mgga4ganbv"; depends=[RCurl rjson S4Vectors XML yaml]; };
   restimizeapi = derive2 { name="restimizeapi"; version="1.0.0"; sha256="1ss6fng5pmqg6cafc256g9ddz8f660c68ysxfan6mn4gdaigz7lb"; depends=[RCurl RJSONIO]; };
@@ -15553,7 +15588,7 @@ in with self; {
   reverseR = derive2 { name="reverseR"; version="0.1"; sha256="0pzk97q1zs5g1v4ngqd6bkwwxcp89j890nycpc99ipycbgm2r9yw"; depends=[DT knitr markdown shiny]; };
   revgeo = derive2 { name="revgeo"; version="0.15"; sha256="1ns7d1817475lriss6wwgvdm6lj760p40yxqaifla13c2xb73a55"; depends=[RCurl RJSONIO]; };
   revpref = derive2 { name="revpref"; version="0.1.0"; sha256="07gbwrwmnq5b48fgdb7m2j8ygz60qm5m23ai7g7yidwk2fayq7ym"; depends=[gtools]; };
-  revss = derive2 { name="revss"; version="1.0.3"; sha256="08gikvz2cqr9na51r3fhi7ncyrsh8hf2wxi185zjjg7vbdiww6h8"; depends=[]; };
+  revss = derive2 { name="revss"; version="1.0.4"; sha256="0z08kpvc6qi6qklj2dzidm8c9r8v9k28g583smkxiq8ldh405bzm"; depends=[]; };
   revtools = derive2 { name="revtools"; version="0.4.1"; sha256="0nms7rwpdzf3xq2incraxppha4c830gcygpbnhwjs92c836hh2f0"; depends=[ade4 modeltools ngram plotly shiny shinydashboard slam SnowballC stringdist tm topicmodels viridisLite]; };
   revulyticsR = derive2 { name="revulyticsR"; version="0.0.3"; sha256="0dz9c26qwasgpp6a5fqh1rgq0hp9dhsrcm1h2hbp0cisri8iwsjf"; depends=[dplyr httr jsonlite magrittr purrr tibble tidyr tidyselect]; };
   reweight = derive2 { name="reweight"; version="1.2.1"; sha256="0fv7q1zb3f4vplg3b5ykb1ydwbzmiajgd1ihrxl732ll8rkkfa4v"; depends=[]; };
@@ -15561,7 +15596,7 @@ in with self; {
   rex = derive2 { name="rex"; version="1.2.1"; sha256="1mmzlc3j7xa0rbjxa369f4sr0iw3gq58g8fmjjxbsjvfq14ychmg"; depends=[lazyeval]; };
   rexpokit = derive2 { name="rexpokit"; version="0.26.6.7"; sha256="13zrr5qj96vh50mknlc2pl7gq1kx5ahwk3n9ij4xr67734x3mx1r"; depends=[Rcpp]; };
   rextendr = derive2 { name="rextendr"; version="0.2.0"; sha256="0d5nkdphdlyyd9qi3dam16ag89b0h6n38q91pkp71n9xhb4ffrx8"; depends=[brio callr cli desc dplyr glue pkgbuild pkgload purrr rlang rprojroot stringi tibble withr]; };
-  rfPermute = derive2 { name="rfPermute"; version="2.5"; sha256="0h7p11cfgdl050qldpns8766y8yqp6wvpdpd15xb07z4cgzbymf7"; depends=[abind dplyr ggplot2 gridExtra magrittr plyr randomForest rlang scales swfscMisc tibble tidyr]; };
+  rfPermute = derive2 { name="rfPermute"; version="2.5.1"; sha256="156vaxkjs5959bh4fh65zqfy8p7ag66abizx6n3wj6q078048jvj"; depends=[abind dplyr ggplot2 gridExtra magrittr randomForest rlang scales swfscMisc tibble tidyr]; };
   rfUtilities = derive2 { name="rfUtilities"; version="2.1-5"; sha256="1anwvmxn3xrc1aqxl75rzlk4wby8l54rmkp0bgi8dgbz2l223xr0"; depends=[cluster randomForest]; };
   rfVarImpOOB = derive2 { name="rfVarImpOOB"; version="1.0.1"; sha256="16ivcnnzrgqzfzcbdyi10rwn8r8r0yyxyfpx25lxafb6pj3kxpvf"; depends=[binaryLogic dplyr ggplot2 ggpubr magrittr prob randomForest titanic]; };
   rfacebookstat = derive2 { name="rfacebookstat"; version="2.5.0"; sha256="02l6iwb8nb4pc24ghczkjxh6icbr1s951hrpj021k5z624rmz9d8"; depends=[dplyr httr jsonlite pbapply purrr stringr tidyr tidyselect]; };
@@ -15580,12 +15615,13 @@ in with self; {
   rfoaas = derive2 { name="rfoaas"; version="2.1.0"; sha256="0w6m3lvfb60a2zfvyc0ksnfllb2ndy45b301vk9f3nr27lxdz6dm"; depends=[httr]; };
   rfordummies = derive2 { name="rfordummies"; version="0.1.6"; sha256="01xv6ds3h8gvi1wi5hgy3r1dhi0767mcgsnshvhva3bnvf1a8398"; depends=[]; };
   rforensicbatwing = derive2 { name="rforensicbatwing"; version="1.3.1"; sha256="1i521h2nmlkhcxfxqir8jfjv0llwr6cz0ck5w6hzplk48044bn16"; depends=[Rcpp]; };
+  rfvimptest = derive2 { name="rfvimptest"; version="0.1.1"; sha256="15r98l3js5y6sjwr47hgp3sl0844a552l8r99kz6dvzk81ppya2d"; depends=[party permimp ranger]; };
   rfviz = derive2 { name="rfviz"; version="1.0.1"; sha256="1pxr9bsqg27vgbngj89hhjq0gyzgdlg69rz6kzvvd8gclg42wisv"; depends=[loon randomForest]; };
   rgabriel = derive2 { name="rgabriel"; version="0.7"; sha256="1c6awfppm1gqg7rm3551k6wyhqvjpyidqikjisg2p2kkhmyfkyzx"; depends=[]; };
-  rgbif = derive2 { name="rgbif"; version="3.7.0"; sha256="03av5xzf13jnrmwg1jgdixvqb991v1z6kw9wvjihhvc842mbd44b"; depends=[conditionz crul data_table ggplot2 jsonlite lazyeval magrittr oai R6 tibble wellknown whisker xml2]; };
-  rgdal = derive2 { name="rgdal"; version="1.5-28"; sha256="18k1w8cb77h4mw1m5b21r0fng40arb1md24fyriv83ccz8n46m3z"; depends=[sp]; };
+  rgbif = derive2 { name="rgbif"; version="3.7.1"; sha256="1yd0vwcg2jci9iqkddq16xshm1a4ay9rcf3bkkrasly7ny3larz7"; depends=[conditionz crul data_table ggplot2 jsonlite lazyeval magrittr oai R6 tibble wellknown whisker xml2]; };
+  rgdal = derive2 { name="rgdal"; version="1.5-29"; sha256="0b8lvllqc12i4ilicsy5c6fzbjakl331h9f2mp2n3n9hw8f0m729"; depends=[sp]; };
   rgdax = derive2 { name="rgdax"; version="1.2.1"; sha256="01hpyyhb6jcw9w0q9h4ghgh4cbba27mfl9zdv4vv4ppakvl80czl"; depends=[digest httr jsonlite plyr RCurl]; };
-  rgee = derive2 { name="rgee"; version="1.1.2"; sha256="0r0mr2gqj75dkga552xfikiiy76h14js8qh29swin3f23xr9dwz0"; depends=[cli crayon jsonlite leafem leaflet magrittr processx R6 reticulate rstudioapi]; };
+  rgee = derive2 { name="rgee"; version="1.1.3"; sha256="17y4n4vk4lzibxwcp94fhcnp21hllas1ab8bjdidk4hq5qxql96v"; depends=[cli crayon jsonlite leafem leaflet magrittr processx R6 reticulate rstudioapi]; };
   rgen = derive2 { name="rgen"; version="0.0.1"; sha256="0gl82v09q1ha58wd1014s46wzkx1yf348bc7jkl6s4qdc6c4vsb8"; depends=[]; };
   rgenius = derive2 { name="rgenius"; version="0.1.0"; sha256="1gpglnhicyv16ym224wzaw52w9xr63slm75wvidl3z14izzyy7ga"; depends=[doParallel dplyr foreach httr purrr rvest stringr tibble]; };
   rgenoud = derive2 { name="rgenoud"; version="5.8-3.0"; sha256="0p93wf6ghgz2nifxbscb6bhahh5jd2ba7nh1c2mb6fmbxnsi3swv"; depends=[]; };
@@ -15616,6 +15652,7 @@ in with self; {
   rhcoclust = derive2 { name="rhcoclust"; version="1.1.0"; sha256="1d9a29h4h6z04vjjdfi0sx7wpl8iw5zg2ymjpjlppzbbzzq2l8n2"; depends=[fields igraph]; };
   rheroicons = derive2 { name="rheroicons"; version="0.3.2"; sha256="16rvsqlwp9j2v3zaqp37pwdjdj9ail21i4vicxq07c11x7r567gx"; depends=[htmltools shiny stringr]; };
   rhierbaps = derive2 { name="rhierbaps"; version="1.1.3"; sha256="0i4sr2wwzzl8vki5zihnd8v4ia2kji09cmf4ld07b6k099g5xprr"; depends=[ape ggplot2 matrixStats patchwork purrr]; };
+  rhino = derive2 { name="rhino"; version="0.6.4"; sha256="1ar50lrkmf93krxl7a9rcyn42bbi5y8k595d8b88p0m84ccb9dc0"; depends=[box cli fs glue lintr logger purrr renv sass shiny styler testthat withr yaml]; };
   rhli = derive2 { name="rhli"; version="0.0.2"; sha256="1mb6bizqkg7zd8nc5a81fw7d0y0vcv6zh6y28k9vikqmc5l1n21q"; depends=[]; };
   rhmc = derive2 { name="rhmc"; version="1.0.0"; sha256="1m79f1hx404y0k8lk3n6jnzhr6wwrk83xiym68sq1zvj0wjqiqmw"; depends=[]; };
   rhnerm = derive2 { name="rhnerm"; version="1.1"; sha256="1fkh2pr4kzvqvagdyjlyab7p591s913104gyq05q170gmvlpmiww"; depends=[]; };
@@ -15655,9 +15692,9 @@ in with self; {
   riskParityPortfolio = derive2 { name="riskParityPortfolio"; version="0.2.2"; sha256="1n2z1vhslrip209j79wm03wmwqdcnbm939sir2wfs5h2cfv126xk"; depends=[alabama Matrix nloptr quadprog Rcpp RcppEigen]; };
   riskPredictClustData = derive2 { name="riskPredictClustData"; version="0.2.6"; sha256="0mvy9299pg374gvvqs9lmj2j0f3bzyy279kjpz7jq35hkgz5wif3"; depends=[gee Hmisc MASS mvtnorm]; };
   riskR = derive2 { name="riskR"; version="1.1"; sha256="1qadfyb07idfw0bs006kb3917rzda83di6jmsr22941gv78z1wyv"; depends=[]; };
-  riskRegression = derive2 { name="riskRegression"; version="2021.10.10"; sha256="1fhkn9qz7h95qzb2fcai0smy4vsvj7f7538g5jk0pa7wqr8z6wc4"; depends=[cmprsk data_table doParallel foreach ggplot2 lattice lava mets mvtnorm plotrix prodlim Publish ranger Rcpp RcppArmadillo rms survival timereg]; };
+  riskRegression = derive2 { name="riskRegression"; version="2022.03.22"; sha256="0ix0h91a9zsw3cl4pg14mmkzq71f2g9r4wakpixy0fp7bfj6c6jf"; depends=[cmprsk data_table doParallel foreach ggplot2 lattice lava mets mvtnorm plotrix prodlim Publish ranger Rcpp RcppArmadillo rms survival timereg]; };
   riskSimul = derive2 { name="riskSimul"; version="0.1"; sha256="0s2a1mn6g11m96gqscb916caj2aykcs3rkacpqcdnlyzryk1gsnb"; depends=[Runuran]; };
-  riskclustr = derive2 { name="riskclustr"; version="0.3"; sha256="13fl00g0hzcl4vqvl8zl4m5bpp14948yvd4i4dbdrg1h8ym30ir5"; depends=[aod Matrix mlogit stringr]; };
+  riskclustr = derive2 { name="riskclustr"; version="0.4.0"; sha256="1b5pjnfz6n716fn1va4kl4y3jzf48sm0i2xaxw0225vmmvq06d9g"; depends=[Matrix mlogit stringr]; };
   riskmetric = derive2 { name="riskmetric"; version="0.1.2"; sha256="004a888y0srvaazq90l3v1q11qfl927h87420fs03zklkq27bvr1"; depends=[backports BiocManager covr cranlogs curl devtools httr memoise pillar pkgload tibble urltools vctrs xml2]; };
   risksetROC = derive2 { name="risksetROC"; version="1.0.4"; sha256="1fh0jf8v536qzf1v3awx3f73wykzicli4r54yg1z926ccqb4h80l"; depends=[MASS survival]; };
   riskyr = derive2 { name="riskyr"; version="0.3.0"; sha256="07fm3gmjydby3mxivwr3rbg6q7fbjlnggfk26sfiqb2wl08dmx6j"; depends=[]; };
@@ -15678,7 +15715,7 @@ in with self; {
   rjpdmp = derive2 { name="rjpdmp"; version="2.0.0"; sha256="0r0r58zrwab4zxhgbfhh4qk6vbbza00m8h73mz70f5kqp786i9wy"; depends=[data_table Rcpp RcppArmadillo]; };
   rjqpd = derive2 { name="rjqpd"; version="0.2.3"; sha256="14vbp9s2859h4n3m3bq830nvxvk58h3mvvdnb27qsalbcfwd94v5"; depends=[]; };
   rjson = derive2 { name="rjson"; version="0.2.21"; sha256="1qm27r1w677zg31gsiln60hcciszbymkw78cnaq7s36cbk9mcawq"; depends=[]; };
-  rjstat = derive2 { name="rjstat"; version="0.4.1"; sha256="0kqnl4wizmain70ady982aldhscf24870shvf3sviknplshhgk8j"; depends=[checkmate jsonlite]; };
+  rjstat = derive2 { name="rjstat"; version="0.4.2"; sha256="0j79svby5zzg63pks5667jvky0m5csyyrb863lpba4aprd80pig0"; depends=[checkmate jsonlite]; };
   rjwsacruncher = derive2 { name="rjwsacruncher"; version="0.1.2"; sha256="0kqr2pd3smqxx0h35k8mf7wamdqpqrncjhmvbiap8bwbkhm4sqhb"; depends=[XML]; };
   rkafka = derive2 { name="rkafka"; version="1.3"; sha256="1h6f7wgz8qgh76p9w9vzcvcaa1piwnrx331gm1wxa1m31xs466jd"; depends=[rJava rkafkajars RUnit]; };
   rkafkajars = derive2 { name="rkafkajars"; version="1.2"; sha256="1z1rn02ymzaq3v3pz206wlm78y591xa9780fwf77i4vfq2k9pxrz"; depends=[rJava RUnit]; };
@@ -15687,13 +15724,14 @@ in with self; {
   rkt = derive2 { name="rkt"; version="1.6"; sha256="1sqij8ivjrrb1lii3jwvgsx9zqv47ib1lhrh6zvvh5a67didwrih"; depends=[]; };
   rkvo = derive2 { name="rkvo"; version="0.1"; sha256="0ci8jqf9nc8hb063nckxdnp0nlyr4ghby356lxm00anw44jlmw8v"; depends=[Rcpp]; };
   rlang = derive2 { name="rlang"; version="1.0.2"; sha256="1k6pzl2x80pycpllvd8n1k62h5cfdwc0hsdwvbicrcxhdwz7rs4d"; depends=[]; };
-  rlas = derive2 { name="rlas"; version="1.5.2"; sha256="0ib7nd9fbqyw0bs0p0lh67ml1zfl70h45iyasqv2wvwrmsrh4hy9"; depends=[BH data_table Rcpp]; };
+  rlas = derive2 { name="rlas"; version="1.5.3"; sha256="02wnlncfgk9chm63q07csw38lzxir7hlwvlprnhkmdgmyas8yh1g"; depends=[BH data_table Rcpp]; };
   rlc = derive2 { name="rlc"; version="0.4.1"; sha256="1znx2749m9af3jq3avxf50amkhzvimr5ybwmk4g9vhwka86c3vqk"; depends=[hwriter jrc jsonlite plyr R6 stringr]; };
   rlcv = derive2 { name="rlcv"; version="1.0.0"; sha256="00fz949jabbzci22yjlhc7bh4j2h44llplcrgsrbi3h97lrg7hc0"; depends=[statmod]; };
   rld = derive2 { name="rld"; version="1.0"; sha256="1glv4q25z14hcwifwg623h77p4awpsn3nk843pnph4sb3p5qbmn3"; depends=[emdbook MASS survival]; };
   rle = derive2 { name="rle"; version="0.9.2"; sha256="0sagl0jggg40lihzy7pfq4593rfvc3b3f7g6ggi85s7n18qvwg40"; depends=[]; };
   rleafmap = derive2 { name="rleafmap"; version="0.2"; sha256="1i2qczipg7lr6fl35lcl896r54jia7libxx83darrfzc1hd9sdcq"; depends=[knitr raster sp]; };
   rlecuyer = derive2 { name="rlecuyer"; version="0.3-5"; sha256="09mniai7v8gapr6hd3zm8sm3vi1zcyhgym389904ykb2yx7l68s7"; depends=[]; };
+  rlemon = derive2 { name="rlemon"; version="0.1.0"; sha256="15m3bijs80jn5w6jdaxivj8ix7d5zfwshxlxip9walkzqp963jzm"; depends=[Rcpp]; };
   rless = derive2 { name="rless"; version="0.1.1"; sha256="0ham8kf2hbswrcnc5i5b3svywdwq3kwp9n66n4k9sllahl4x9jdn"; depends=[V8]; };
   rlfsm = derive2 { name="rlfsm"; version="1.1.1"; sha256="0pv6136b1b5q46q75msjc6bzzx1wcq23313kv1b3bvpwpiyw52gn"; depends=[doParallel foreach ggplot2 plyr Rcpp Rdpack reshape2 stabledist]; };
   rliger = derive2 { name="rliger"; version="1.0.0"; sha256="1gqdwmy073sg48id015q02bx20xsqyc6jpbw4nym3c09cqz681dr"; depends=[cowplot doParallel dplyr FNN foreach ggplot2 ggrepel hdf5r ica irlba Matrix mclust patchwork plyr psych RANN Rcpp RcppArmadillo RcppEigen RcppProgress riverplot rlang Rtsne uwot]; };
@@ -15711,7 +15749,7 @@ in with self; {
   rmapzen = derive2 { name="rmapzen"; version="0.4.3"; sha256="1n44l4sj6s78nr3hqidabkyg9pradk9c1mqfvzhanj2nrfdrwnqj"; depends=[assertthat digest dplyr geojsonio httr jsonlite maps maptools purrr rgdal sf sp tibble tidyr]; };
   rmarchingcubes = derive2 { name="rmarchingcubes"; version="0.1.3"; sha256="0cdmy728irmbd40xsc2k4r2g8am7s72ks7cw465fa92ml2xa6iq8"; depends=[Rcpp RcppArmadillo]; };
   rmargint = derive2 { name="rmargint"; version="2.0.2"; sha256="0irq5114dd8pngl6k13r2rrsivijiqfldm6mby0q5a9wrj2vmwc9"; depends=[]; };
-  rmarkdown = derive2 { name="rmarkdown"; version="2.12"; sha256="1476b2wl60p3bq4llf6jzpj7c02fp6v04l2865v3qj32m3nskay3"; depends=[bslib evaluate htmltools jquerylib jsonlite knitr stringr tinytex xfun yaml]; };
+  rmarkdown = derive2 { name="rmarkdown"; version="2.13"; sha256="0i07p3dxxv2s2a4xmyhc3qxmwg86vakniq5jjjclmcq2sahvw5vj"; depends=[bslib evaluate htmltools jquerylib jsonlite knitr stringr tinytex xfun yaml]; };
   rmatio = derive2 { name="rmatio"; version="0.16.0"; sha256="1ar8736x5ww4cky4qp8fxlwa7p00yycs31ryrqsmbwhwvg2ddlkk"; depends=[Matrix]; };
   rmcfs = derive2 { name="rmcfs"; version="1.3.5"; sha256="0rbq2b9fw1x44v7ifxp8qgp4yciinw2sw9mqp4ms5jsxznpi2pi6"; depends=[data_table dplyr ggplot2 gridExtra igraph reshape2 rJava stringi yaml]; };
   rmcorr = derive2 { name="rmcorr"; version="0.4.5"; sha256="018d3rfh2688yqkarcmxqqfbmmzcmj6q3hwinns4kj6xnnlmv1xr"; depends=[psych RColorBrewer]; };
@@ -15740,21 +15778,21 @@ in with self; {
   rmsfact = derive2 { name="rmsfact"; version="0.0.3"; sha256="05s23rfs9prr2ia3h4h9y614xhv91lbgppgf3mrrssxkwz220kd5"; depends=[]; };
   rmsfuns = derive2 { name="rmsfuns"; version="1.0.0.1"; sha256="18bpj7xh3kc7pl6ivi3cripam26bsaf9r9099cjf22qndvy18hb6"; depends=[dplyr magrittr PerformanceAnalytics purrr readr tbl2xts xts zoo]; };
   rmt = derive2 { name="rmt"; version="1.0"; sha256="165cqnwqr0dx7b8dgq7xlfk4j55p9l6dr5b2rzyvfy5l23k4kckn"; depends=[]; };
-  rmumps = derive2 { name="rmumps"; version="5.2.1-14"; sha256="1bl3wap6qjdryyrxqv85qnb9dv7xkx56c5y8qsaj2979748gwjjj"; depends=[Rcpp]; };
+  rmumps = derive2 { name="rmumps"; version="5.2.1-15"; sha256="0krclpdxls4wcymfamds176grlf2mbhap5dp5xcg4i8lfvh5lbkn"; depends=[Rcpp]; };
   rmutil = derive2 { name="rmutil"; version="1.1.9"; sha256="0g1kf2bf8f34r9qw5x4810kxg6lkml5nh2lnmdmwnkrrb10cqs1s"; depends=[]; };
   rmweather = derive2 { name="rmweather"; version="0.1.51"; sha256="0qd49lr12hc39dwg348b021aqxw57pfcb9xxhp51fvnw6gw6bgqd"; depends=[dplyr ggplot2 lubridate magrittr pdp purrr ranger stringr strucchange tibble viridis]; };
   rmytarget = derive2 { name="rmytarget"; version="2.4.0"; sha256="1csl5b76r706gzvzhqgg4pdznbdl4i3b0srazwa7xdfc6zbrzljp"; depends=[dplyr httr lubridate purrr stringr tidyr]; };
-  rnassqs = derive2 { name="rnassqs"; version="0.5.0"; sha256="1mbkv32zidax9i6km93bbi3m7xpnsy805cz4ikdrid84qg94an09"; depends=[httr jsonlite]; };
+  rnassqs = derive2 { name="rnassqs"; version="0.6.1"; sha256="00daka4pgvmipqq3151jj35fsicpfc06mnim8mm5jx5cyqcvilf7"; depends=[httr jsonlite]; };
   rnaturalearth = derive2 { name="rnaturalearth"; version="0.1.0"; sha256="193b31a7n9jhc607mhwxbpx5gr0fpj3qasm9dbi6kcc7vac3ilgm"; depends=[sf sp]; };
   rnaturalearthdata = derive2 { name="rnaturalearthdata"; version="0.1.0"; sha256="1z32j5lz2lb8xgpkr73majw22k0b49iazj6jjc7j4w9k4zxxa102"; depends=[sp]; };
   rnbp = derive2 { name="rnbp"; version="0.2.1"; sha256="0vphfxb262jryvvs48l21q3vxqicj51az0li38axg1mslshw0y4g"; depends=[curl httr jsonlite]; };
-  rncl = derive2 { name="rncl"; version="0.8.4"; sha256="0ss9jqrvv7bhvl5j74cjrp8r866d9dlavrbbfscwz3mhkgfx06bb"; depends=[progress Rcpp]; };
+  rncl = derive2 { name="rncl"; version="0.8.6"; sha256="1ywgwqn82z8h6zpcxxq4hgngdpfa6dj0lr7bfq4cwfml9z075jgw"; depends=[progress Rcpp]; };
   rneos = derive2 { name="rneos"; version="0.4-0"; sha256="07b3vb0h36ilwb8iylgppl8wpi84f583frmscpj236s1aihqwrmx"; depends=[RCurl XML]; };
   rngSetSeed = derive2 { name="rngSetSeed"; version="0.3-2"; sha256="00mqjjkhbnvxqkf1kz16gipsf98q62vmhx9v8140qs7c4ljbhc3a"; depends=[]; };
   rngWELL = derive2 { name="rngWELL"; version="0.10-7"; sha256="0f1dxxaimfb0fww8ym9ciqf6q760ai46wxldl37m5mfpd57ca00c"; depends=[]; };
   rngtools = derive2 { name="rngtools"; version="1.5.2"; sha256="0kd7x214cqw7hzpmk1iqy1bn7j6x0ady0yz2hsdbclbq9k57d33z"; depends=[digest]; };
   rngwell19937 = derive2 { name="rngwell19937"; version="0.6-0"; sha256="0m6icqf7nckdxxvmqvwfkrpjs10hc7l8xisc65q8iqpnpwl5p2f6"; depends=[]; };
-  rnmamod = derive2 { name="rnmamod"; version="0.1.0"; sha256="1ayl5cry7lxdf1zscdrxdf50y78scr4qdkghdki6srkx2r645wx0"; depends=[coda dplyr fdrtool gemtc ggfittext ggplot2 ggpubr ggrepel knitr MASS mcmcplots netmeta pcnetmeta R2jags reshape2 scales writexl]; };
+  rnmamod = derive2 { name="rnmamod"; version="0.2.0"; sha256="0dncj3dldb4d1j5m1dypk9lyg5jb2m2fi1k7p9sl52a6bfadcbb4"; depends=[coda dplyr fdrtool gemtc ggfittext ggplot2 ggpubr ggrepel knitr MASS mcmcplots netmeta pcnetmeta R2jags reshape2 scales writexl]; };
   rnn = derive2 { name="rnn"; version="1.5.0"; sha256="109h3zfpyl3jir27vq1v6z5b3ffjszxvdygq6l787apl5n3j8par"; depends=[shiny sigmoid]; };
   rnoaa = derive2 { name="rnoaa"; version="1.3.8"; sha256="12mrvvq93535pk9g52h0sl5wdlw0wpqdchghi24fjdr62r44p5sp"; depends=[crul data_table dplyr geonames ggplot2 gridExtra hoardr isdparser jsonlite lubridate scales tibble tidyr tidyselect XML xml2]; };
   rnpn = derive2 { name="rnpn"; version="1.2.4"; sha256="0lq9c5in0pf3km6zvfnn71wbh34lk3hgav0b9waspmzsgki8fvl1"; depends=[curl data_table httr jsonlite magrittr plyr raster rgdal sp tibble XML]; };
@@ -15767,14 +15805,13 @@ in with self; {
   robber = derive2 { name="robber"; version="0.2.2"; sha256="053yiwjlsg7z9p5l60wddm1wf5wni54a28yp6x4hbfkgaazvby02"; depends=[blockmodels ggplot2 GREMLINS igraph magrittr pammtools partitions purrr]; };
   robcbi = derive2 { name="robcbi"; version="1.1-3"; sha256="0rj732qdd0wd9d9pxldnsw5rif5d7wz327iydvxcf5x8lgvk42jd"; depends=[robeth]; };
   robcor = derive2 { name="robcor"; version="0.1-6"; sha256="1hw8simv93jq8a5y79hblhqz157wr8q9dzgm0xhvvv5nkzyqkpzf"; depends=[]; };
-  robcp = derive2 { name="robcp"; version="0.3.3"; sha256="0mdg61k76dz5a7wggdlq8cfym8bvzl5ybm7hhc8kvyllmmvvb1y9"; depends=[Rcpp]; };
+  robcp = derive2 { name="robcp"; version="0.3.5"; sha256="06jr9abvy238ajymwwja5z8x6sjrjxd660w07sallq3wxly4k9mi"; depends=[Rcpp]; };
   roben = derive2 { name="roben"; version="0.1.0"; sha256="18k0h1y2xhvdssg28b9s4whn3kcbdgkz55dp1y3rrczw8xrm54mm"; depends=[glmnet Rcpp RcppArmadillo]; };
   robeth = derive2 { name="robeth"; version="2.7-6"; sha256="1x0hzgq7jwl83wwmy581ia8009v0j95aksnr5ywpflnqm76rj6v2"; depends=[]; };
   robets = derive2 { name="robets"; version="1.4"; sha256="0lvzfpv6569pjysblhadd05sglx0qvyr9wipb9cpiya4a1992n61"; depends=[forecast Rcpp]; };
   robfilter = derive2 { name="robfilter"; version="4.1.2"; sha256="0mvpaf6g694b7175bl3yr6lxbwla4pwp7g4y34qb4klgl5n3nw03"; depends=[lattice MASS robustbase]; };
-  robin = derive2 { name="robin"; version="1.1.0"; sha256="11z09g4nzswdqhx5w0vmx1gmxkh0k451hr50avcny6q1r7hykjk6"; depends=[DescTools fdatest ggplot2 gprege gridExtra igraph networkD3 qpdf]; };
   robis = derive2 { name="robis"; version="2.8.2"; sha256="0nlvp9w9j2kyv0rrsjkzr3sj77ciz8ink3yr615sjc69iqic34aw"; depends=[curl data_table dplyr ggplot2 httpcache httr jsonlite leaflet mapedit purrr rlang sf stringr tibble tidyr tidyselect xml2]; };
-  robmed = derive2 { name="robmed"; version="0.10.0"; sha256="020l67zrijcmbfp4nd0hbip1sb5yxhjmjhjk9b5vbk4mz3iqvf4m"; depends=[boot ggplot2 quantreg robustbase sn]; };
+  robmed = derive2 { name="robmed"; version="0.10.1"; sha256="0cs7wy19iqn0d5rfjrv3wpjh46gvvpad4ckmz4hz8g0knhq96zdj"; depends=[boot ggplot2 quantreg robustbase sn]; };
   robmixglm = derive2 { name="robmixglm"; version="1.2-2"; sha256="117dhnnj55hihpzim45dw3cjm4ma6w21d8j77fybyri2bmpvlypa"; depends=[actuar bbmle boot doParallel doRNG fastGHQuad foreach MASS numDeriv Rcpp VGAM]; };
   robnptests = derive2 { name="robnptests"; version="1.0.0"; sha256="0bk3ngwav3r00lf2lb8hq2h578mkfc48gcm845lyxyn7i87vglgg"; depends=[checkmate gtools Rdpack robustbase statmod]; };
   robomit = derive2 { name="robomit"; version="1.0.6"; sha256="1yma6m4bxy3hikc9kx7mslqgq1fpi4my7qij9pz77ag836r9hcxm"; depends=[broom dplyr ggplot2 plm tibble tidyr]; };
@@ -15794,12 +15831,12 @@ in with self; {
   robustHD = derive2 { name="robustHD"; version="0.7.2"; sha256="19nq86wy08gpb07snwadymxwfdg4qkp2a8bhnpymwfqd0lzjyq43"; depends=[ggplot2 MASS perry Rcpp RcppArmadillo robustbase]; };
   robustX = derive2 { name="robustX"; version="1.2-5"; sha256="1l8ap69aljr3d28512d15hf53bxzfdk6q4ab59z63nr053rfxa4f"; depends=[robustbase]; };
   robustarima = derive2 { name="robustarima"; version="0.2.6"; sha256="137x9w3fq523bw2wix7bwc255mq7kvqa047chcnb2prihn9d6as7"; depends=[splusTimeDate splusTimeSeries]; };
-  robustbase = derive2 { name="robustbase"; version="0.93-9"; sha256="0i9wf4aq8zpn2np6z2rjja21ks9n740dgkiv0qfwdzk3ah3vapyp"; depends=[DEoptimR]; };
+  robustbase = derive2 { name="robustbase"; version="0.95-0"; sha256="094pxwp78bmqyn6vncyzrazqxnn8abqsbzhlcq44avfz8qffmyjw"; depends=[DEoptimR]; };
   robustcov = derive2 { name="robustcov"; version="0.1"; sha256="1bgvf9h727aqfb11q976y2ybp3mpghkyd29waypyfp95csp3cf26"; depends=[caret glasso Rcpp RcppArmadillo]; };
   robustfa = derive2 { name="robustfa"; version="1.0-5"; sha256="04nk5ipml54snsmiqf5sbhx490i46gnhs7yibf4wscrsj1bh2mqy"; depends=[rrcov]; };
   robustgam = derive2 { name="robustgam"; version="0.1.7"; sha256="0s1z7jylj757g91najbyi1aiqnssd207jfm9yhias746540qp3kw"; depends=[mgcv Rcpp RcppArmadillo robustbase]; };
   robustlm = derive2 { name="robustlm"; version="0.1.0"; sha256="17l2kr9dc3z02b2jswfxal13md4xfpz4sqjfg6kyg6ilab1cfd06"; depends=[MASS matrixStats]; };
-  robustlmm = derive2 { name="robustlmm"; version="2.5-0"; sha256="0y15w5vd16nfvs3mmvp496hhvgajfgnpgz6vl3vp5yhs1q2xkynk"; depends=[cubature fastGHQuad ggplot2 lattice lme4 Matrix nlme Rcpp RcppEigen robustbase xtable]; };
+  robustlmm = derive2 { name="robustlmm"; version="2.5-1"; sha256="1zb2lxnc46ki1ib8q2p8i8xlzzqg4sm3h067rwq2mm6r9sx0qsc7"; depends=[cubature fastGHQuad ggplot2 lattice lme4 Matrix nlme Rcpp RcppEigen robustbase xtable]; };
   robustrank = derive2 { name="robustrank"; version="2019.9-10"; sha256="1xikknrmnh95wpvyljdl7v510ddi1g7a88aw3l630s789nq5i02h"; depends=[kyotil]; };
   robustrao = derive2 { name="robustrao"; version="1.0-5"; sha256="1r8v9qjx70s8swh09imq9kzdxg0qhnmk00zrg939mig9b12mw1p6"; depends=[doParallel foreach gmp igraph iterpc quadprog]; };
   robustreg = derive2 { name="robustreg"; version="0.1-11"; sha256="08c6dyzki68hzl006s12bkjiirlw2n2isirjh8b79sd6zjrjlh72"; depends=[Matrix Rcpp RcppArmadillo]; };
@@ -15882,7 +15919,7 @@ in with self; {
   rpinterest = derive2 { name="rpinterest"; version="0.3.1"; sha256="0kkf73byhgzqxw85wda3nh7qsq81pc035vi6z3fhnvb9ssszwakc"; depends=[httr magrittr rjson]; };
   rpivotTable = derive2 { name="rpivotTable"; version="0.3.0"; sha256="0ndhsw4nnz6wf0v8dh4sz8867m01jjkzw6aq7f490z1ypa3d9fv5"; depends=[htmlwidgets]; };
   rplos = derive2 { name="rplos"; version="1.0.0"; sha256="0gl336cqy96npkkh9g6gsaqyyk1sn93xbybv09lm8xih36qlr0b0"; depends=[crul dplyr ggplot2 jsonlite lubridate plyr reshape2 solrium whisker]; };
-  rplotengine = derive2 { name="rplotengine"; version="1.0-7"; sha256="1bbciq84l0h6g4qajlcqg3v66g2rspflv6k7x5h5qzwlcb4p4dps"; depends=[xtable]; };
+  rplotengine = derive2 { name="rplotengine"; version="1.0-8"; sha256="0ihpfd4fz2r1vxr2priziywc7lm8bxwgg504b66hvr179m5w880y"; depends=[xtable]; };
   rpls = derive2 { name="rpls"; version="0.6.0"; sha256="0r3y63pi4d7hfzs53d9w23ymmk86gvm85v0dx7n1gicha5nn1mk8"; depends=[pcaPP robustbase]; };
   rplum = derive2 { name="rplum"; version="0.2.2"; sha256="119gs1g45gl985nrvps438z4zhzwqqv6yvqzddvpz8zhsbfzgpa7"; depends=[coda rbacon Rcpp]; };
   rpmodel = derive2 { name="rpmodel"; version="1.2.0"; sha256="131kzag51r1fpa63xzj77b9hh4b1723lc424ch8dhbrcdrnjh730"; depends=[]; };
@@ -15896,18 +15933,19 @@ in with self; {
   rprev = derive2 { name="rprev"; version="1.0.5"; sha256="0494z0049rxahs4ndjlclzfc65k304a1m01cdlhjg4rz1gc1vrr8"; depends=[data_table dplyr ggplot2 lazyeval lubridate magrittr survival tidyr]; };
   rprime = derive2 { name="rprime"; version="0.1.2"; sha256="1h54vclc800pir3vxqcq4cmmxy9fcar1fydqmba2dzpj8dvlad7v"; depends=[assertthat plyr stringi stringr]; };
   rprintf = derive2 { name="rprintf"; version="0.2.1"; sha256="0rwqpln0igxb4m6d6jyp7h3shfb8sbp0kj7cgkffjp88hn9qm4h3"; depends=[stringi]; };
-  rprojroot = derive2 { name="rprojroot"; version="2.0.2"; sha256="07wy07yhms8zln9qb0iwx69dq08h4lrdi8kavjcplfxcskq638az"; depends=[]; };
+  rprojroot = derive2 { name="rprojroot"; version="2.0.3"; sha256="15zq606s544wmbvk5dw13xq0sspr9dsxyxlvzvn0r48f8x3l4q2h"; depends=[]; };
   rprojtree = derive2 { name="rprojtree"; version="1.0.0"; sha256="0414srpgx2jgf8jaznpin131hiih17avx45vggf812b3xcicm11b"; depends=[dplyr jsonlite magrittr rjson]; };
   rpsftm = derive2 { name="rpsftm"; version="1.2.7"; sha256="0ncf9ci39pd7p048cgvhl6phhk975xwyjm4aqs1b4hjy1nml4iz2"; depends=[ggplot2 survival]; };
   rptR = derive2 { name="rptR"; version="0.9.22"; sha256="0vvjc6qiq71d5wckl77z606q1fp43mgrfzp1bxcab96n5whb2r9k"; depends=[lme4 pbapply]; };
   rpubs = derive2 { name="rpubs"; version="0.2.2"; sha256="18cnzhcvm7gx4k01ysqay53smrf8xqlbaszq41mny5c7qqh1fvpz"; depends=[rvest xml2]; };
   rpymat = derive2 { name="rpymat"; version="0.1.2"; sha256="1wq60xspjfzmpax79x6sd3bwa3m63mfklpdv7x797p1d0v636lhy"; depends=[fastmap glue IRkernel jsonlite rappdirs reticulate rstudioapi]; };
-  rqPen = derive2 { name="rqPen"; version="2.2.2"; sha256="077kdvfdyp5h8630k8jigbz8mfyby8vkjiqxpqv0wfi6cqcjlaf2"; depends=[quantreg regpro]; };
+  rqPen = derive2 { name="rqPen"; version="2.3"; sha256="0qp4c420jcph4hxy8hq890hl524g82gkbgchjxh118jfjqkz7yli"; depends=[quantreg]; };
   rqdatatable = derive2 { name="rqdatatable"; version="1.3.1"; sha256="1ml83gw9m9945qws2pi0x3bzm1jn4rh8n7zwivbir685hfprbhvn"; depends=[data_table rquery wrapr]; };
   rquery = derive2 { name="rquery"; version="1.4.9"; sha256="12m80vr2sxm2ivvd1a27jy6vh9xvk5z4irlkaxm1f0sxi462brra"; depends=[wrapr]; };
   rr = derive2 { name="rr"; version="1.4"; sha256="1c2h6ibjfwrjfqh1if3c90pdh0g2rf3p71j4p9w23xbbrx2l80pl"; depends=[arm coda magic MASS]; };
   rr2 = derive2 { name="rr2"; version="1.0.2"; sha256="099vjg91ni2bnxlra18pvgsvzrl28zrj639cdjrh3wkpqv99d04q"; depends=[ape lme4 Matrix nlme phylolm]; };
   rrBLUP = derive2 { name="rrBLUP"; version="4.6.1"; sha256="1ny48ra25rzx3k69pmzpd31ka2zhqyqiq1v7ann862j3ris0w8z9"; depends=[]; };
+  rrMixture = derive2 { name="rrMixture"; version="0.1-1"; sha256="0k7rc1d1nx4w1hcv8rx6kpjh846mblx6787z94ki1vv1dwflb6zr"; depends=[gtools MASS Matrix matrixcalc Rcpp RcppArmadillo]; };
   rrapply = derive2 { name="rrapply"; version="1.2.4"; sha256="06kdkclvcxyw5hsy18azz7345140079r134dksyb6wv94aiplzkm"; depends=[]; };
   rrat = derive2 { name="rrat"; version="1.0.0"; sha256="1j1jd32pgggn5cqv66l63sw5p4hblgpznf33wd0zdbfapwy8rx4r"; depends=[quantreg]; };
   rrcov = derive2 { name="rrcov"; version="1.6-2"; sha256="18x8y2b9n2plpn4086nkjk9c27p7gb78kbrv5pj9r8fb0idl5rn5"; depends=[lattice mvtnorm pcaPP robustbase]; };
@@ -15916,7 +15954,6 @@ in with self; {
   rrcovNA = derive2 { name="rrcovNA"; version="0.4-15"; sha256="0r60chxm7bpc6sis60rp8k8xchwfrfa3lrfaidvv22ipx2q0psp7"; depends=[cluster lattice norm robustbase rrcov]; };
   rrd = derive2 { name="rrd"; version="0.2.4"; sha256="05njzrgd5p39zmyqxgnb2x9q3c7669fsv76vspdv9i9n804z5d5d"; depends=[assertthat tibble]; };
   rrecsys = derive2 { name="rrecsys"; version="0.9.7.3.1"; sha256="1qnjriv1xq4gjjhzz8jxrbk88mw5xddl2l2i4bmfhnxhi51d2rk3"; depends=[ggplot2 knitr MASS Rcpp registry]; };
-  rredis = derive2 { name="rredis"; version="1.7.0"; sha256="0wzamwpmx20did8xj8x9dllri2ps83viyqjic18ari7i4h1bpixv"; depends=[]; };
   rredlist = derive2 { name="rredlist"; version="0.7.0"; sha256="1w77cnfrybmqnadsmfkpjv5m49kkr7yc6kcqq165lmj3bijnprnj"; depends=[crul jsonlite]; };
   rrefine = derive2 { name="rrefine"; version="2.0.0"; sha256="1plv6ykhcpp8d111gkkh8zx9zjrkxqpvg6vcbcy2234yd6wd0wky"; depends=[httr jsonlite readr]; };
   rreg = derive2 { name="rreg"; version="0.2.1"; sha256="05c2yj58zn43zkmqp4iyblsixsq76hsjkchffl5rkqynvgxi0qzi"; depends=[directlabels ggplot2]; };
@@ -15925,10 +15962,10 @@ in with self; {
   rriskDistributions = derive2 { name="rriskDistributions"; version="2.1.2"; sha256="1d9dwgw8la8wwq9cdnl7qibkzbdl4cj0qvf05x7w13ip973dwpaq"; depends=[eha mc2d msm tkrplot]; };
   rroad = derive2 { name="rroad"; version="0.0.5"; sha256="09q5r9wq3vm5wy5aigx9wffv7m0njlp3sma1djm6cp7hhwgss0nj"; depends=[]; };
   rromeo = derive2 { name="rromeo"; version="0.1.1"; sha256="1jjk5b41qg22a0zpjha2p2mfcb5q00gicqlxhkahjbj49q0c3mn9"; depends=[httr xml2]; };
-  rrpack = derive2 { name="rrpack"; version="0.1-11"; sha256="1bchha6dbkgc1raiks22cjmqzsias0c0frz8il67napkgmwlqk6d"; depends=[ggplot2 glmnet lassoshooting MASS Rcpp RcppArmadillo]; };
+  rrpack = derive2 { name="rrpack"; version="0.1-12"; sha256="0wh5habgsw0nk8igmswvs5j8bqr6bpj6yvpvyfi16sqvqyyp59a6"; depends=[ggplot2 glmnet MASS Rcpp RcppArmadillo]; };
   rrr = derive2 { name="rrr"; version="1.0.0"; sha256="0sv6k70mv325yjm8yjy4dw8cqc0xc071iiv94fk1l1yfz0n67prz"; depends=[dplyr GGally ggplot2 magrittr MASS plotly Rcpp]; };
   rrscale = derive2 { name="rrscale"; version="1.0"; sha256="1s8ziwh95410i9p176xbsk9k6ccyihi2mqa5gaigcqrkb3dzyy08"; depends=[abind DEoptim nloptr]; };
-  rrtable = derive2 { name="rrtable"; version="0.2.1"; sha256="1hblrxn7vixcp32j3cij0xrkzvk31agi9dqgxrimcrzs7gjcd1j5"; depends=[devEMF editData flextable ggplot2 ggpubr magrittr moonBook officer purrr readr rlang rmarkdown rvg shiny shinyWidgets stringr ztable]; };
+  rrtable = derive2 { name="rrtable"; version="0.3.0"; sha256="1y1hfscnw466azxk1c2kpa486xn8561zl5inv7yk5q8926ls2zc3"; depends=[devEMF editData flextable ggplot2 ggpubr magrittr moonBook officer purrr readr rlang rmarkdown rvg shiny shinyWidgets stringr ztable]; };
   rrum = derive2 { name="rrum"; version="0.2.0"; sha256="0w0f2n14if2b8x7n6v8y8q2vghd8j7xm1xhpxnvy3z50flinwgm7"; depends=[Rcpp RcppArmadillo rgen simcdm]; };
   rsae = derive2 { name="rsae"; version="0.1-5"; sha256="1f3ry3jwa6vg2vq2npx2pzzvfwadz8m48hjrqjk860nfjrymwgx5"; depends=[]; };
   rsample = derive2 { name="rsample"; version="0.1.1"; sha256="01xwhj4zfvxbv9cjb6mbz3aphxqc3cnjjx1xy2yx2wd94fbka42z"; depends=[dplyr ellipsis furrr generics lifecycle purrr rlang slider tibble tidyr tidyselect vctrs]; };
@@ -15941,7 +15978,7 @@ in with self; {
   rsconnect = derive2 { name="rsconnect"; version="0.8.25"; sha256="1kyr4v7vds2yw3xmkk2yr56ylz1h95944brylwvwmwj5yxvm419w"; depends=[curl digest jsonlite openssl packrat rstudioapi yaml]; };
   rscontract = derive2 { name="rscontract"; version="0.1.2"; sha256="0gn0xcvg9nj6m97g4si6bgmgaj6hxpicz8yig7n84jnczh6w510x"; depends=[]; };
   rscopus = derive2 { name="rscopus"; version="0.6.6"; sha256="0kl6rv0j2396b8izvy0lp1f588il6w3yhq6d4swv8x8z14rsgcpw"; depends=[dplyr glue httr jsonlite plyr tidyr]; };
-  rscorecard = derive2 { name="rscorecard"; version="0.21.0"; sha256="0jf7pan0v50sg8nz72c5rp3pi34b0r75j7laq9idqsfcgsp0flaj"; depends=[dplyr httr jsonlite lazyeval magrittr purrr tidyr tidyselect]; };
+  rscorecard = derive2 { name="rscorecard"; version="0.22.0"; sha256="1srhpbp9mm6ig60rdkv696vm49j0fcqvhfg8d3x6zs3a0ipnz6wb"; depends=[dplyr httr jsonlite lazyeval magrittr purrr tidyr tidyselect]; };
   rsdNE = derive2 { name="rsdNE"; version="1.0.0"; sha256="1faa6m2y4i6dqzgzj8glfcf5j438m3qqxcz1rgk7w20x3g24ddyx"; depends=[]; };
   rsdepth = derive2 { name="rsdepth"; version="0.1-5"; sha256="064jbb6gnx0sm41w3sbi6mvsbzsfkjqfici6frk8sfm9ybvm591j"; depends=[]; };
   rsdmx = derive2 { name="rsdmx"; version="0.6"; sha256="1sw8pp2j22rs1nlsyphyqbhywgplan9qmrs5wm9wvrn5g26k4bg9"; depends=[httr plyr R6 XML]; };
@@ -15950,17 +15987,16 @@ in with self; {
   rsetse = derive2 { name="rsetse"; version="0.5.0"; sha256="095f37a48l9dhz5s3zri6y1kv74x150wrrxinrh177mi3m63shgr"; depends=[dplyr igraph magrittr Matrix minpack_lm purrr rlang tibble]; };
   rsf = derive2 { name="rsf"; version="0.2.2"; sha256="016q6yly2vl6q9mkff2krri2rmzsm9gc9gippd8l38h5c8ri6cdl"; depends=[bookdown knitr magrittr rlang usethis yaml ymlthis]; };
   rshift = derive2 { name="rshift"; version="2.1.1"; sha256="1ihliavs1qsvp732mpbbdp1psr663j3csmg18j74fi26g3ny5kny"; depends=[dplyr ggplot2 magrittr tibble zoo]; };
-  rsimsum = derive2 { name="rsimsum"; version="0.11.1"; sha256="0i09xx2pzvcabk8bnc0gg99vm2kknwdy0r9d7skqgz3xcbkm3yyn"; depends=[checkmate generics ggplot2 ggridges knitr lifecycle rlang scales]; };
+  rsimsum = derive2 { name="rsimsum"; version="0.11.2"; sha256="00iq65z4fd23vj6znwpbg2m3risba8pwh4qk5z8fz929a9zjxc2h"; depends=[checkmate generics ggplot2 ggridges knitr lifecycle rlang scales]; };
   rsinaica = derive2 { name="rsinaica"; version="0.6.1"; sha256="1ba19b2fgnnl50qp6hgjppgxbadghq68qap9f0m51k2k3ijgfiwn"; depends=[dplyr httr jsonlite lubridate stringr]; };
   rskey = derive2 { name="rskey"; version="0.4.4"; sha256="1la3apypp1kk425r753vqwm3nk9zmynp9gix6db0ckkssw0fjxpw"; depends=[berryFunctions rstudioapi]; };
   rsleep = derive2 { name="rsleep"; version="1.0.4"; sha256="0rb9dpy1ks04mqb0aismkj0zg9sigyrbgb6j0rl9cw2npp0jz7vg"; depends=[edfReader ggplot2 jsonlite phonTools psd signal]; };
   rslp = derive2 { name="rslp"; version="0.2.0"; sha256="186k1gngirqhvhii4ysq77wjf5gf75c7gya73minb0pfg9fn16l7"; depends=[magrittr plyr stringi stringr tokenizers]; };
   rslurm = derive2 { name="rslurm"; version="0.6.1"; sha256="19451icfh7snjbbmpzpr1hrdf52q8ijv0ag1di3y55r2la3jxxcf"; depends=[whisker]; };
   rsm = derive2 { name="rsm"; version="2.10.3"; sha256="1dcjsn3wa7rqdpixh37vjgk3z5siwlyn70qffp49m3awn258hwpg"; depends=[estimability]; };
-  rsmatrix = derive2 { name="rsmatrix"; version="0.2.1"; sha256="02l7hcbwjilcpmgxi2gs9hcf75kb7g2m2b31rmwd2kvhdn2w4s3q"; depends=[Matrix]; };
+  rsmatrix = derive2 { name="rsmatrix"; version="0.2.3"; sha256="0ry9xs49w7si14gasj05rzhkiqnd7x89hq72l63r5gyr1g67rwc6"; depends=[Matrix]; };
   rsnps = derive2 { name="rsnps"; version="0.5.0.0"; sha256="1pnf3j2hdgx4is1387ysrrg3izq1jyn2p00ia5hhdzkkfl1pbqcr"; depends=[crul data_table httr jsonlite plyr stringr]; };
-  rsoi = derive2 { name="rsoi"; version="0.5.4"; sha256="1gchznfshp91i3if8077qph26flxzwa2xrw3q488ah50725d63hw"; depends=[curl memoise]; };
-  rsolr = derive2 { name="rsolr"; version="0.0.11"; sha256="0h82x9ihzgw9l1ksn1l5w7x3vgyy6zlbdbvg9a4pa1iinhlf87ic"; depends=[BiocGenerics graph RCurl restfulr rjson S4Vectors XML]; };
+  rsoi = derive2 { name="rsoi"; version="0.5.5"; sha256="13afk5rf2gdnikd36x00513kafkcfh0q9hqzsn331fqggxr1nfyi"; depends=[curl memoise]; };
   rspa = derive2 { name="rspa"; version="0.2.5"; sha256="0jvrr3jaw66zqi5pal9dycpac24dn9v7lf2m63q01wmd8m3mlnv9"; depends=[lintools validate]; };
   rsparkling = derive2 { name="rsparkling"; version="0.2.19"; sha256="1rb43lslhlg8jpniirzch8gnl86x6d3shcfp9fpxm0qd3fqrlm6z"; depends=[h2o sparklyr]; };
   rsparse = derive2 { name="rsparse"; version="0.5.0"; sha256="0d05h47j29zipyxbkv9cwzv2dzj894z6hh9dqfhwswwjbv6ciwpq"; depends=[data_table float lgr Matrix MatrixExtra Rcpp RcppArmadillo RhpcBLASctl]; };
@@ -15996,7 +16032,7 @@ in with self; {
   rt = derive2 { name="rt"; version="1.1.0"; sha256="1wwx3pjwsqvar25cddc4090vcngir81a7n9yiv4q8i47h58xmc2g"; depends=[httr stringr]; };
   rt_test = derive2 { name="rt.test"; version="1.18.7.9"; sha256="0ywkdjvfzmrmmsfkz4jbhwzbzv7wivx80xy8wr92dch1862h6ias"; depends=[]; };
   rt3 = derive2 { name="rt3"; version="0.1.2"; sha256="1fqbymkz4csavkxrs26glzrh0kw3qy9x5smgddgda9a1dxh9ljkm"; depends=[]; };
-  rtables = derive2 { name="rtables"; version="0.4.0"; sha256="1bnrrgybbnpiivdlwihvp5j9rr5fz39vqwl5w8vqvxg1pcjr6qaq"; depends=[htmltools magrittr]; };
+  rtables = derive2 { name="rtables"; version="0.5.0"; sha256="0qlcgygrbaamp9pa43lx416pb4xyfzvzmc39i4c5wvcdrl7167v5"; depends=[formatters htmltools magrittr]; };
   rtape = derive2 { name="rtape"; version="2.2"; sha256="0q7rs7pc1k1kayr734lvh367j5qig2nnq5mgak1wbpimhl7z3wm7"; depends=[]; };
   rtdists = derive2 { name="rtdists"; version="0.11-5"; sha256="1v8yhyvliw3dm3ciwxxaa9spfw05wp334l7gmvgv20mab2kjxkwp"; depends=[evd gsl msm Rcpp]; };
   rtematres = derive2 { name="rtematres"; version="0.2"; sha256="1d0vrprvnlk4hl2dbc6px9xn9kx9d1qvlqxd798hzda6qg5wwvf2"; depends=[gdata plyr RCurl XML]; };
@@ -16017,11 +16053,12 @@ in with self; {
   rtodoist = derive2 { name="rtodoist"; version="0.1.0"; sha256="12lh14ps4snlyykhc65nvn8ipic8is8ssmgcx73snmifhrzxgdyb"; depends=[digest dplyr getPass glue httr keyring magrittr purrr]; };
   rtop = derive2 { name="rtop"; version="0.5-14"; sha256="1wwllckginnzisapbklpsizy47db24r83xahq4qsd8zhqvv9yj33"; depends=[gstat sp]; };
   rtrek = derive2 { name="rtrek"; version="0.3.3"; sha256="1lnjwslx1l0vgysw3m1s83h246grplmv4mdk4m6ym83mrdmkzvhi"; depends=[downloader dplyr ggplot2 jpeg jsonlite magrittr memoise purrr rvest tibble tidyr xml2]; };
-  rtrend = derive2 { name="rtrend"; version="0.1.2"; sha256="01d2538qjgs9nng7gmb8y9a0wsxg6gm3p9z1m15sap1g5wl3z6fs"; depends=[boot fftwtools ggplot2 magrittr matrixStats Rcpp RcppArmadillo]; };
+  rtrend = derive2 { name="rtrend"; version="0.1.3"; sha256="0figwgxbb1ir7qc4f0138xgj6lry1v6jpq03dyfnp5xsqq3z22yg"; depends=[boot fftwtools ggplot2 magrittr matrixStats plyr Rcpp RcppArmadillo terra]; };
   rtrends = derive2 { name="rtrends"; version="0.1.0"; sha256="04xdggf36m294drb9z8khdjr6fgsg4bwkb4mmbbvqfzjpq4mq4y1"; depends=[dplyr lubridate tidyr]; };
   rtrim = derive2 { name="rtrim"; version="2.1.1"; sha256="1l2ijkm4p3nd7n4q1b4y9pdyafgyf76zizpi7hhzw1rr9zkxhff2"; depends=[]; };
   rtry = derive2 { name="rtry"; version="1.0.0"; sha256="1sac82z2jk5cp7cr3m6l07b6rk0ims0bsm3pvmk870v014brkim4"; depends=[curl data_table dplyr jsonlite tidyr]; };
   rts = derive2 { name="rts"; version="1.1-3"; sha256="1lnfqmi49lmk7zhmgyl1z9hlfxh3gg373wj81x7vw9964564r4wg"; depends=[raster RCurl sp terra xts zoo]; };
+  rts2 = derive2 { name="rts2"; version="0.3"; sha256="19h3smwmgpapp47iv1p16mx7ar19zrhpjyzlmv4bq3qsgbw8qjm9"; depends=[BH lubridate R6 Rcpp RcppEigen RcppParallel rstan rstantools sf StanHeaders]; };
   rtsVis = derive2 { name="rtsVis"; version="0.0.3"; sha256="0j48p4cdkd3dwc5bxv8kmmqj38yaq4rz0wp47kx21msbajcw5m3m"; depends=[assertthat dplyr forcats ggplot2 magrittr moveVis pbapply raster RStoolbox sf sp tidyr]; };
   rtsdata = derive2 { name="rtsdata"; version="0.1.3"; sha256="0ylw8m0wf6jvjl3zirns6qk71lwsrljnvz5dn1ngvp7c1x7y1wn9"; depends=[anytime brotli curl data_table mongolite Quandl quantmod xts zoo]; };
   rtson = derive2 { name="rtson"; version="1.3"; sha256="1gwvk7nmq9bz90jy1zh7lhr735iw804pmwxykdpaigcsnxk7zx03"; depends=[R6]; };
@@ -16036,7 +16073,7 @@ in with self; {
   ruimtehol = derive2 { name="ruimtehol"; version="0.3"; sha256="1qscaj28xrrqccav0y82mn5nzkc8zfgmx2axg7bxrrhqaibfpy5j"; depends=[BH Rcpp]; };
   ruin = derive2 { name="ruin"; version="0.1.1"; sha256="124xs1c2mjfy6z0bp83rwkqw2y73g77xwn3q4yd2xw0v2frnpvpz"; depends=[ggplot2]; };
   ruler = derive2 { name="ruler"; version="0.2.4"; sha256="159k7453jb37zgjg9rcgz566mz2827dpfq5gm40r6zgkia4z3apx"; depends=[dplyr keyholder magrittr rlang tibble tidyr]; };
-  rules = derive2 { name="rules"; version="0.1.2"; sha256="1mmwlrybkv2xq49rwfv2d60wzl6hiq9jdyy9blw24vlvbyp0c42p"; depends=[dials dplyr generics modeldata parsnip purrr rlang stringr tibble tidyr]; };
+  rules = derive2 { name="rules"; version="0.2.0"; sha256="181ixpmay2w47dn4ali3mamkwy6mcb6ybrx6cdw5npk73davzdwa"; depends=[dials dplyr generics modeldata parsnip purrr rlang stringr tibble tidyr]; };
   rumidas = derive2 { name="rumidas"; version="0.1.1"; sha256="1hnkjj689kn7sx5gvjrh1x3n5pickb9d0adb5n0grjq4j5ympbns"; depends=[highfrequency lubridate maxLik Rdpack roll tseries xts zoo]; };
   runcharter = derive2 { name="runcharter"; version="0.2.0"; sha256="0n4jkgvlbpafjks22fjackazp246c7skphirjsrzkrg169qwdin0"; depends=[data_table ggplot2 magrittr zoo]; };
   runes = derive2 { name="runes"; version="0.1.0"; sha256="1s2vhwya434q70j4aq4qbds8wivscc5cyldr5pch7p41nqj0j7aw"; depends=[]; };
@@ -16061,7 +16098,7 @@ in with self; {
   rvest = derive2 { name="rvest"; version="1.0.2"; sha256="1905vxgnj3q09l1wf6rwxpbpydznp06nbkrclnc05j2415z4gfw9"; depends=[httr lifecycle magrittr rlang selectr tibble xml2]; };
   rvg = derive2 { name="rvg"; version="0.2.5"; sha256="1i0alsr9ahl54gwszvaqz5qgiqs85wwzs5d31z97x315sk3n994j"; depends=[gdtools officer Rcpp rlang xml2]; };
   rviewgraph = derive2 { name="rviewgraph"; version="1.4.1"; sha256="0j6g9qwxf4bzv9lr7fkgmk60cqid8kmck1x9kjf8il89qahbvsfs"; depends=[rJava]; };
-  rvinecopulib = derive2 { name="rvinecopulib"; version="0.6.1.1.1"; sha256="1k881xrxiwg097rxvmb6z85paqsw7q2n1fg6vl51mfsffy4d57vp"; depends=[assertthat BH kde1d lattice Rcpp RcppEigen RcppThread wdm]; };
+  rvinecopulib = derive2 { name="rvinecopulib"; version="0.6.1.1.3"; sha256="08mzp1slfpi7r51z8d3q6mqblmklhc8a8ajw90z3iljc3d28j891"; depends=[assertthat BH kde1d lattice Rcpp RcppEigen RcppThread wdm]; };
   rvkstat = derive2 { name="rvkstat"; version="3.2.0"; sha256="0nk6bx04jnm55k5323w1n4zg7qgds6c53fvdz329kqfsrmpj4wgq"; depends=[dplyr httr jsonlite lgr stringr tidyr]; };
   rvmethod = derive2 { name="rvmethod"; version="0.1.2"; sha256="1g2d5pvz5s1sj2kalxaz7nb8874m4113ly809zbimngi1lhg8zi1"; depends=[assertthat locfit]; };
   rwa = derive2 { name="rwa"; version="0.0.3"; sha256="11irb6ayr1a1rbmhc9zqwyb1vjfc0fq7imji0lfa30zplwgf1mqh"; depends=[dplyr ggplot2 magrittr tidyr]; };
@@ -16089,7 +16126,7 @@ in with self; {
   s2 = derive2 { name="s2"; version="1.0.7"; sha256="0gwydn6wdl675ydkcckrci6ylcx30qn8nfhmrp4qx4r9mv3c2410"; depends=[Rcpp wk]; };
   s20x = derive2 { name="s20x"; version="3.1-31"; sha256="0gnp703blgawfymd6nxz98w8g7sabagrnk3qc3d3cxj887w83gih"; depends=[]; };
   s2dv = derive2 { name="s2dv"; version="1.1.0"; sha256="1sx7zmd0m0ny3jm7m5r1x327pw0qn8j0ny02yv6ki7kpbh6mk0pw"; depends=[abind bigmemory ClimProjDiags easyNCDF mapproj maps multiApply NbClust ncdf4 plyr SpecsVerification]; };
-  s2dverification = derive2 { name="s2dverification"; version="2.10.1"; sha256="06syzn04da3dka1j936hiqqnpif56mb9q2s42bfv95467zvvf3pg"; depends=[abind bigmemory GEOmap geomapdata mapproj maps NbClust ncdf4 plyr SpecsVerification]; };
+  s2dverification = derive2 { name="s2dverification"; version="2.10.2"; sha256="02i2xfrxyia570v7v4kyqcwznw732pijxwf0r6rhgag7ndmnivj7"; depends=[abind bigmemory GEOmap geomapdata mapproj maps NbClust ncdf4 plyr SpecsVerification]; };
   s2net = derive2 { name="s2net"; version="1.0.1"; sha256="1f6lc8azx8lax7jc5ggzirwnp5d9ka2plimfkg70vx783xf56zaw"; depends=[MASS Rcpp RcppArmadillo]; };
   s4vd = derive2 { name="s4vd"; version="1.1-1"; sha256="1rp3z42nxmrvb942h3c5cl544lngzx7nrnnr4zjw7dq495bym7yp"; depends=[biclust foreach irlba]; };
   sAIC = derive2 { name="sAIC"; version="1.0"; sha256="1ih63cfs98kb61gwbmrx2yq7iacb5qa1qrh1a264041qd27r5pj5"; depends=[]; };
@@ -16102,6 +16139,8 @@ in with self; {
   sGMRFmix = derive2 { name="sGMRFmix"; version="0.3.0"; sha256="183i3159k2cxpanm09zcy2y1vvjd6185gjjf81c3284prw3aky2c"; depends=[ggplot2 glasso mvtnorm tidyr zoo]; };
   sNPLS = derive2 { name="sNPLS"; version="1.0.27"; sha256="0h05crdmwmzax4pwmyxb2z1dagyqb3kybpxc064y1kl8m84kcyvv"; depends=[clickR future future_apply ggplot2 ggrepel ks MASS Matrix pbapply]; };
   sRDA = derive2 { name="sRDA"; version="1.0.0"; sha256="0g11smn4adm3b79m9w7wzcragxggkf8rrrsgj2yzdhm1d7zzjwbk"; depends=[doParallel elasticnet foreach Matrix mvtnorm]; };
+  sRNAGenetic = derive2 { name="sRNAGenetic"; version="0.1.0"; sha256="1cvk40rkbxvr8jhwfqkgdfy150mi56y976pjp2w34rnghry6ql8z"; depends=[DESeq2 futile_logger ggplot2 ggsci plyr VennDiagram]; };
+  sRdpData = derive2 { name="sRdpData"; version="0.1.0"; sha256="0zflpc44q6bj9rr8yhv5h7ksgmxrsvv28vfpvqbn3yd46hn1fdj7"; depends=[dplyr magrittr rlang tibble]; };
   sSDR = derive2 { name="sSDR"; version="1.2.0"; sha256="1fqsglqzsbzdvcdnwwf7mg6x20zfpw66x63r6avac3w1pz3n7kvx"; depends=[MASS Matrix]; };
   sValues = derive2 { name="sValues"; version="0.1.6"; sha256="0830f4w6jgpiysk0vz0bxaxwa8m3k94fgj9l3qb42r3jjf9cdn29"; depends=[ggplot2 reshape2]; };
   saasCNV = derive2 { name="saasCNV"; version="0.3.4"; sha256="12h5vrl55sb4wmx0hzib5iax8p0q2qzk19h15r0asfkh9l7qz94l"; depends=[DNAcopy RANN]; };
@@ -16115,12 +16154,16 @@ in with self; {
   sae = derive2 { name="sae"; version="1.3"; sha256="1ncrlzgnga9pfa2j8x1y6axl2665rp08aff98zrim6gq6n6yap8z"; depends=[lme4 MASS]; };
   saeBest = derive2 { name="saeBest"; version="0.1.0"; sha256="0s68w9cikhpac1kdlm1pphvnks1izacs5s87d7r380c3lkgkzd76"; depends=[sae]; };
   saeHB = derive2 { name="saeHB"; version="0.2.0"; sha256="0ahll2jqn7bxd0l629n8zj80y37acspy2m6vhjbg96206i49mnr5"; depends=[CARBayesdata coda MASS nimble rjags stringr]; };
+  saeHB_ME = derive2 { name="saeHB.ME"; version="1.0"; sha256="0wvh31lhl79fapp96kz6vaa0a8lg3j472vw1gjcjmbvijp9ywywr"; depends=[coda rjags stringr]; };
+  saeHB_ZIB = derive2 { name="saeHB.ZIB"; version="0.1.0"; sha256="0jb3pk99315mybvhm1y2jk62jgdnjln0c86z3g362r1nr718hdn7"; depends=[coda rjags stringr]; };
+  saeHB_gpois = derive2 { name="saeHB.gpois"; version="0.1.0"; sha256="131flxcc8mjqix2gnby66gdjnzncgbciqriqzwz18brq85amignc"; depends=[coda rjags stringr]; };
   saeHB_hnb = derive2 { name="saeHB.hnb"; version="0.1.0"; sha256="00sms01xb290h555v5ngp5vnaancq165mcvli8dmni0mfdx5i7p3"; depends=[coda rjags stringr]; };
   saeHB_panel = derive2 { name="saeHB.panel"; version="0.1.0"; sha256="1nj237lpypz9vpamic4qm17x0p36yqdy8mmgy778c1dhmpvmwrfs"; depends=[coda rjags stringr]; };
   saeHB_spatial = derive2 { name="saeHB.spatial"; version="0.1.0"; sha256="0fqc3c5y4rwfpgfbwfsrdhqlwjbal28wi9djm1vlncr8phkzfpln"; depends=[coda rjags stringr]; };
   saeHB_twofold = derive2 { name="saeHB.twofold"; version="0.1.0"; sha256="0jmabk649lfsrjx4an0a8x5kpb4agfw9gqjilsf1pmqvq725a9bv"; depends=[coda data_table rjags stringr]; };
   saeHB_zinb = derive2 { name="saeHB.zinb"; version="0.1.0"; sha256="1gqb6xwfyz171md058m0kva2pj6hir09p784jwch2i1m9mvzinma"; depends=[coda rjags stringr]; };
   saeME = derive2 { name="saeME"; version="1.2.4"; sha256="02yf5rf2kavwl3icfnsjg0kxmifrcc7v4j5jsfrfa8ssfbwcivhn"; depends=[ClusterR dplyr expm MASS]; };
+  saeMSPE = derive2 { name="saeMSPE"; version="1.0"; sha256="1xx9z1daghyx366h0mz9wikbkwiq8zbd2k1sm86jc45xjz5zwlrc"; depends=[Matrix Rcpp RcppArmadillo smallarea]; };
   saeRobust = derive2 { name="saeRobust"; version="0.2.0"; sha256="1bdfrsm59xwkga0kxl3r5n83mhhkyzj7gplrgx26gyflashyd1zc"; depends=[aoos assertthat ggplot2 magrittr MASS Matrix memoise modules pbapply Rcpp RcppArmadillo spdep]; };
   saeSim = derive2 { name="saeSim"; version="0.11.0"; sha256="0s0zcls4j3cx7wbvi0l3q4c3b0f9x9i2wcqnz4gzwyqik6pcfaic"; depends=[dplyr functional ggplot2 MASS parallelMap spdep tibble]; };
   saeeb = derive2 { name="saeeb"; version="0.1.0"; sha256="04vjxmnqcgqcamgjd9qq1dbx0msm40mnn94jjy9pzvsj2gsbws39"; depends=[COUNT MASS]; };
@@ -16128,10 +16171,11 @@ in with self; {
   saemix = derive2 { name="saemix"; version="3.0"; sha256="17ax2cvlk69y8f00xgbdibycxng45kx175b518sdlkrm49pdxm7h"; depends=[ggplot2 gridExtra npde rlang]; };
   saery = derive2 { name="saery"; version="1.0"; sha256="09x1v627llqbpiwkh1wr0z7gsndfdrjzag2hprhq1adbzh05k47z"; depends=[]; };
   safeBinaryRegression = derive2 { name="safeBinaryRegression"; version="0.1-3"; sha256="1g68r6pp5l41rbgyfqgcha1gpsisnl0ybdmdqr4ylr43f61dpgvd"; depends=[lpSolveAPI]; };
+  safedata = derive2 { name="safedata"; version="1.1.0"; sha256="0ifdf9i2r4w9y6c08fmg91znckpfmwm3xmxlc576mcgwballkx4f"; depends=[chron curl httr igraph jsonlite readxl sf]; };
   safejoin = derive2 { name="safejoin"; version="0.1.0"; sha256="0qvra505g7cay3nhq6yqrddb7sw3kx50y8jhgvxi47rxdc3alzba"; depends=[dplyr glue]; };
   safer = derive2 { name="safer"; version="0.2.1"; sha256="1lmhaj9y0hi4ybxfkllxl99vsagcg73sy4kkcmlvn3bs69jky1r9"; depends=[assertthat base64enc sodium]; };
   safestats = derive2 { name="safestats"; version="0.8.6"; sha256="1rn3hawh6jn8dszdjr80l15g83n52agch2j3znzb0jmg7qkxd383"; depends=[BiasedUrn boot dplyr hypergeo purrr rlang survival]; };
-  safetyCharts = derive2 { name="safetyCharts"; version="0.2.0"; sha256="1gdrl7wmxlvnk8wghrjv3cnvdsmx79f1s0j51yb4q94dxprssajh"; depends=[dplyr DT forcats ggplot2 huxtable kableExtra knitr pharmaRTF RColorBrewer rlang shiny stringr Tendril Tplyr]; };
+  safetyCharts = derive2 { name="safetyCharts"; version="0.3.0"; sha256="1riyd2rb799rr0j95s3wd45rwq8syfm0xllpihycpak0f56vg1s8"; depends=[dplyr DT forcats ggplot2 htmlwidgets huxtable jsonlite pharmaRTF plotly purrr RColorBrewer rlang shiny stringr Tendril Tplyr]; };
   safetyData = derive2 { name="safetyData"; version="1.0.0"; sha256="1spa1wh1z8cqsz8vrkj3abny0xs3qp8d80dla8d031d70hvfkdjc"; depends=[]; };
   safetyGraphics = derive2 { name="safetyGraphics"; version="2.0.0"; sha256="1y1qj8vhq3z3g4ij2qkc5cpwc5zknmjnp3kpkbcr9cywjrdpa5pq"; depends=[datamods dplyr DT htmlwidgets jsonlite magrittr purrr rclipboard rlang safetyCharts safetyData shiny shinyjs sortable stringr yaml]; };
   sageR = derive2 { name="sageR"; version="0.3.0"; sha256="093qxwbkf8cqc3zjad232987qq2155faj8w2qplwxzvg881f0yi0"; depends=[ggplot2]; };
@@ -16171,7 +16215,7 @@ in with self; {
   sankeywheel = derive2 { name="sankeywheel"; version="0.1.0"; sha256="1sigj4jz13qj4s8vxk0dl2xsddqgyfxabj8yggkasawm7pryvbyy"; depends=[htmlwidgets]; };
   sanon = derive2 { name="sanon"; version="1.6"; sha256="0h3l1dzgkddvb3vzg7pcgwrgidphy73jys2h49v84nbfvqr6l85z"; depends=[]; };
   santaR = derive2 { name="santaR"; version="1.0"; sha256="10g4z951mpxw9d21s5f6zwfch5xs9vx812fb0wyrbw9s8drmlbkh"; depends=[doParallel foreach ggplot2 gridExtra iterators pcaMethods plyr reshape2 shiny shinythemes]; };
-  santoku = derive2 { name="santoku"; version="0.6.0"; sha256="1kwyc9c8fhfxr6kh9wkrw1ywqx5hjrp0dfvl97qzcly0g28432fs"; depends=[assertthat lifecycle Rcpp vctrs]; };
+  santoku = derive2 { name="santoku"; version="0.7.0"; sha256="0li58ilaya2gkrxghl0zvbvp4hadlxvl6azn9ggxn9340chyn8b8"; depends=[assertthat glue lifecycle Rcpp rlang vctrs]; };
   sanzo = derive2 { name="sanzo"; version="0.1.0"; sha256="1fqsx2mgjsy6vjvsp2avi2i5cw7cjs2p53l1z6hb3bzid3067s87"; depends=[]; };
   saotd = derive2 { name="saotd"; version="0.3.0"; sha256="11ql731w3rc4spmd2ii52r49sxymxkf7wj2ngdvb8pcs4idar059"; depends=[dplyr ggplot2 ggraph igraph ldatuning lubridate magrittr reshape2 rtweet scales stringr tidyr tidytext topicmodels widyr]; };
   sapevom = derive2 { name="sapevom"; version="0.2.0"; sha256="0vq4rx85pdjc0wjxjf7wj8j5qs3cb20hwhlc2ypbgrlw7zkcp1z4"; depends=[]; };
@@ -16184,10 +16228,10 @@ in with self; {
   sars = derive2 { name="sars"; version="1.3.5"; sha256="07jaagf3q8x4iwjh1avy5vzv9y62ipnjd43acbw0hizh983qlq3r"; depends=[AICcmodavg cli crayon doParallel foreach nortest numDeriv]; };
   sarsop = derive2 { name="sarsop"; version="0.6.9"; sha256="1rjpgicgy9vfi9q2vldrbbakybmazal5gh79p2kysnzhcr76v3z5"; depends=[BH digest Matrix processx xml2]; };
   sas7bdat = derive2 { name="sas7bdat"; version="0.5"; sha256="0qxlapb6wdhzpwlmzlhscy3av7va3h6gkzsppn4sx5q960310an3"; depends=[]; };
-  sasLM = derive2 { name="sasLM"; version="0.6.6"; sha256="04gmh6sakxl2dgslyfqm7pixyjngvnkhw1xpp9n67fv62rjs8vai"; depends=[mvtnorm]; };
+  sasLM = derive2 { name="sasLM"; version="0.8.0"; sha256="0g06jqlsc54h50bqjvxi3vbg00ksdaxxfrir5mnnf35qlgcbsszr"; depends=[mvtnorm]; };
   sasMap = derive2 { name="sasMap"; version="1.0.0"; sha256="11vhhxhakqm1gsb3p4s4966sapmrqfyw79zfppbx5lnqi3xr0ngn"; depends=[readr stringi stringr]; };
   sasfunclust = derive2 { name="sasfunclust"; version="1.0.0"; sha256="1ba7g3rxyq5h806na6bsdvh6mw6hydgcf3740qkfd4d5fx7m0mq4"; depends=[fda MASS Matrix matrixcalc mclust Rcpp RcppArmadillo]; };
-  sass = derive2 { name="sass"; version="0.4.0"; sha256="0axw358bbk3vxsqg3wq0bz3xigasa6af8fxvi2ga8hli4cawl1kx"; depends=[fs htmltools R6 rappdirs rlang]; };
+  sass = derive2 { name="sass"; version="0.4.1"; sha256="1fq8wqnxmx10lg0dh4qzmxdkhd22fjh8vhassapxb1chsimwn3w5"; depends=[fs htmltools R6 rappdirs rlang]; };
   sassy = derive2 { name="sassy"; version="1.0.7"; sha256="0z65pvvw4hcw605hp7vpr99vmmf7isk2fxvxxa9ahfk1jig62hcc"; depends=[fmtr libr logr reporter]; };
   sate = derive2 { name="sate"; version="1.1.0"; sha256="0d1b0gp5abh5g7a25ff40xdnncrl2afjnlcc56dbhqkk43gjah17"; depends=[MASS]; };
   satellite = derive2 { name="satellite"; version="1.0.4"; sha256="0z6wh0nmzxgizd8rzafkq8hkxx9s8lkaqins68697284lxvrbrwr"; depends=[plyr raster Rcpp terra]; };
@@ -16210,17 +16254,17 @@ in with self; {
   sbtools = derive2 { name="sbtools"; version="1.1.17"; sha256="1i6jf0av3r413nh6kyhd2kxljaqbr401cnx5a33jb10vixsr56c7"; depends=[curl httr jsonlite stringr]; };
   sbw = derive2 { name="sbw"; version="1.1.5"; sha256="10ks912f4xiy0i484vf24w5zz9n7kxlcy77ikz95p8vr5zlqkvgc"; depends=[MASS Matrix quadprog slam spatstat_geom]; };
   scBio = derive2 { name="scBio"; version="0.1.6"; sha256="1bpizxm9fbxd4sfapi1ayfg5csacb4dvqbvappd79jkq4mrsk12q"; depends=[doSNOW fields foreach LiblineaR limma raster sp]; };
-  scCAN = derive2 { name="scCAN"; version="1.0.1"; sha256="08rrx3bk1w4lx886lvgc37xblq5hd68jrhg66yp5w16va5a97bqr"; depends=[FNN markdown purrr scDHA]; };
+  scCAN = derive2 { name="scCAN"; version="1.0.4"; sha256="1w509y629xpqd748k7rghv8plav0jyyigfcf3n2c1m2a6qhh338x"; depends=[FNN purrr scDHA]; };
   scCATCH = derive2 { name="scCATCH"; version="3.0"; sha256="0hq65zz8mm71i7hnpfafwmwr5vcf58m62lqqliifjbpl8rgc73yj"; depends=[crayon Matrix progress reshape2]; };
   scDHA = derive2 { name="scDHA"; version="1.1.2"; sha256="02iwkbh83h1xdckj30xg1azspq2v6sjrzpjgm6d1n14afgafv8x9"; depends=[cluster clusterCrit doParallel foreach igraph Matrix matrixStats Rcpp RcppAnnoy RcppArmadillo RcppParallel RhpcBLASctl torch uwot]; };
   scDIFtest = derive2 { name="scDIFtest"; version="0.1.1"; sha256="1hq68g7zf7372cach2qfc7l1l8gh5aqkp66k0cxjnrhmvvb1qcax"; depends=[mirt sandwich strucchange zoo]; };
   scDiffCom = derive2 { name="scDiffCom"; version="0.1.0"; sha256="1xgrsfrh06n8hzyqv3j99kjk6l85khg099vjdsf7kx9f5p92iixd"; depends=[data_table DelayedArray future future_apply magrittr Seurat]; };
   scINSIGHT = derive2 { name="scINSIGHT"; version="0.1.3"; sha256="0hffigfi41crib98kazax4m6g70qdbcnhd4ycs432c4nlafbsdfm"; depends=[igraph RANN Rcpp RcppArmadillo stringr]; };
-  scITD = derive2 { name="scITD"; version="1.0.1"; sha256="0x20yiwafalsfgxcmbia05vrfp7bpvwkgxgrdrxjpzhs07q527wk"; depends=[circlize ComplexHeatmap dplyr edgeR fgsea ggplot2 ggpubr ica Matrix mgcv msigdbr NMF RColorBrewer Rcpp RcppArmadillo RcppProgress reshape2 Rmisc rTensor sccore sva]; };
+  scITD = derive2 { name="scITD"; version="1.0.2"; sha256="0z6b0naz44am9z6mw03k5b550j19xgaxqyklhc57ns0lfv0l506k"; depends=[circlize ComplexHeatmap dplyr edgeR fgsea ggplot2 ggpubr ica Matrix mgcv msigdbr NMF RColorBrewer Rcpp RcppArmadillo RcppProgress reshape2 Rmisc rTensor sccore sva]; };
   scImmuneGraph = derive2 { name="scImmuneGraph"; version="1.1.3"; sha256="0mvajasskcl4v0bjwzvkqjdicxb0329nxk93ich7qr37wfcp2n1n"; depends=[BiocStyle cowplot dplyr easypackages forcats ggplot2 gtools plyr purrr RColorBrewer readr scales stringr tibble tidyr tidyverse]; };
   scLink = derive2 { name="scLink"; version="1.0.1"; sha256="0gcwx8kfik1lv949r9d9rqqnvrfkr4bj5cj2i9h1r7l1b76kna74"; depends=[glasso]; };
   scMappR = derive2 { name="scMappR"; version="1.0.9"; sha256="1b2jrbqy9dcvv9ng7mz8xxggqc5iy4n0h59xksin3m9gvpvsc0sw"; depends=[ADAPTS downloader ggplot2 gProfileR gprofiler2 GSVA limSolve pbapply pcaMethods pheatmap reshape Seurat]; };
-  scModels = derive2 { name="scModels"; version="1.0.2"; sha256="02nn8nv77fgmskx5zsa34ij9lzq9jiv8w2vmw5863v55khzvfs53"; depends=[gamlss_dist Rcpp]; };
+  scModels = derive2 { name="scModels"; version="1.0.3"; sha256="0wc7mif6q7li7qqsxc7s5s2jgg4ahwf348xzb5zpr2nhbcb5s4x6"; depends=[gamlss_dist Rcpp]; };
   scPOP = derive2 { name="scPOP"; version="0.1.0"; sha256="0bi9dmqj9cd8f09qmfl3d65922xn3j3jipxi6615jbk6bz67kkh9"; depends=[cluster Matrix RANN Rcpp RcppArmadillo]; };
   scRNAstat = derive2 { name="scRNAstat"; version="0.1.1"; sha256="0yv5np7jafmygg77bwisrha5y2rdb1va906ngzs4zc8mvxr0dvlm"; depends=[clustree dplyr ggplot2 magrittr Matrix patchwork Seurat stringr]; };
   scRNAtools = derive2 { name="scRNAtools"; version="1.0"; sha256="0x0lniqhq6q87y08kkkyvmk1g5b8i73hm3h86ba8rcv0v0n7ap9a"; depends=[ALL ConsensusClusterPlus corrplot edgeR foreach ggplot2 ggthemes Hmisc igraph lattice limma PerformanceAnalytics plyr reshape2 Rmisc Rtsne scatterplot3d survival TPEA]; };
@@ -16230,15 +16274,16 @@ in with self; {
   scUtils = derive2 { name="scUtils"; version="0.1.0"; sha256="09c4vwrjj4r0nfcwb8q0a243m0v5wa3qisdlcy7ik58gyxp02zv8"; depends=[assertthat dplyr ggplot2 Matrix scales viridis viridisLite]; };
   scaRabee = derive2 { name="scaRabee"; version="1.1-4"; sha256="1p9828ymdm79b91z2fc2r5wy6i4hr1mx8fva6lr154c82ba3569z"; depends=[deSolve lattice neldermead optimbase optimsimplex]; };
   scaffolder = derive2 { name="scaffolder"; version="0.0.1"; sha256="1va1mlhqv5qn0hm81ypdir9llr68222qxjp3jink69zpaskfbdib"; depends=[reticulate]; };
-  scagnostics = derive2 { name="scagnostics"; version="0.2-4.1"; sha256="1azg1xlid63l9mcyns9yyl3a3hykbl0sl0h5jhyvzjzahfyanq53"; depends=[rJava]; };
+  scagnostics = derive2 { name="scagnostics"; version="0.2-6"; sha256="0b5fkzhvr1js3l7s9wl12jspyklxm6ri6cn6brf949gfl4bjnnq9"; depends=[rJava]; };
   scaleAlign = derive2 { name="scaleAlign"; version="1.0.0.0"; sha256="0340biwz0md6sxq5iq5wiz6q8kcrll80429f1ab9zz88k3fya2s6"; depends=[]; };
   scaleboot = derive2 { name="scaleboot"; version="1.0-1"; sha256="1q0bs5f1vgja5gj3id1ny6raja8ljgd8dk50fs1wn90f6080afy7"; depends=[mvtnorm pvclust]; };
   scales = derive2 { name="scales"; version="1.1.1"; sha256="019ps0njjc0rzrjygqiyn8b9vp0c3c0jd56h1yi19wzi49jvdcj0"; depends=[farver labeling lifecycle munsell R6 RColorBrewer viridisLite]; };
   scalpel = derive2 { name="scalpel"; version="1.0.3"; sha256="0c8k99i5v2ki2bmcjjr6rfk7y1ds7jlykdwgn5x2zvzpdw7p4vlw"; depends=[gam igraph Matrix protoclust R_matlab]; };
   scalreg = derive2 { name="scalreg"; version="1.0.1"; sha256="0kfcgl9cpp6g1qx23s1yrjzn0hi74vmrw567vy9wpsmhk04a5bkx"; depends=[lars]; };
   scam = derive2 { name="scam"; version="1.2-12"; sha256="0jlgx2v3jm8yk3gc7sk4mnlahd1cnarbakj2353qhw0k492gir8c"; depends=[Matrix mgcv]; };
-  scan = derive2 { name="scan"; version="0.53"; sha256="1j5wldd62lf1f73vdhsk1pklnq10di2m2wj4jwjy8vn7gcxianqj"; depends=[car kableExtra knitr magrittr mblm meta nlme readxl]; };
+  scan = derive2 { name="scan"; version="0.54.1"; sha256="1v9d2ji7glgmjmb9df6hrdg3bzx6zdd69d5ly5k3sjfldhp3762m"; depends=[car kableExtra knitr magrittr mblm meta nlme readxl yaml]; };
   scape = derive2 { name="scape"; version="2.3.3"; sha256="1jb5c335qsbrpsgngs8c1qlibyb7zvvx6mwydfhm1plx4pkcq0n1"; depends=[coda Hmisc lattice]; };
+  scapesClassification = derive2 { name="scapesClassification"; version="1.0.0"; sha256="0kwl9mbzcmn5qzqbzabf2igbhwbf5m1b1wa8rhm8mfv2qz7psyf2"; depends=[terra]; };
   scar = derive2 { name="scar"; version="0.2-1"; sha256="04x42414qxrz8c7xrnmpr00r46png2jy5giwicdx6gx8jwrkzhzs"; depends=[]; };
   scatr = derive2 { name="scatr"; version="1.0.1"; sha256="1c2z722i7d7qflh4mzb8kkix5i22wph98kwz2p98x2mhaml8802d"; depends=[cowplot ggplot2 ggridges ggstance jmvcore R6]; };
   scatterD3 = derive2 { name="scatterD3"; version="1.0.1"; sha256="187jq1y5va5npsmpkfyi6mhgynq956590q4z8v1ibadsrcldw34m"; depends=[digest ellipse htmlwidgets]; };
@@ -16260,7 +16305,7 @@ in with self; {
   scholar = derive2 { name="scholar"; version="0.2.2"; sha256="1irigcws62sz1ai3ci80cdgwgisnra8kylqb2hxx3h62ddlpzhg7"; depends=[dplyr ggplot2 ggraph httr R_cache rvest stringr tidygraph xml2]; };
   schoolmath = derive2 { name="schoolmath"; version="0.4"; sha256="06gcmm294d0bs5whvknrq48sk7li961lzy4bcncjg052zbbpn67x"; depends=[]; };
   schrute = derive2 { name="schrute"; version="0.2.2"; sha256="1j1bb7inhxq355kvqmp45zgxz41d3rpbh2rxk9wkahsbiy0cdybn"; depends=[dplyr ggplot2 magrittr stringi stringr tibble tidyr tidytext]; };
-  schtools = derive2 { name="schtools"; version="0.1.0"; sha256="02qlncaddbyvm38ja480qd92gqbs06wxb49902g81mc918gmxqf6"; depends=[dplyr formatR rlang tidyr]; };
+  schtools = derive2 { name="schtools"; version="0.1.1"; sha256="16s64jw4i18y0mzcp4q39diqbynxddcmnmxingsrh5v3qbk2am5q"; depends=[dplyr formatR rlang tidyr]; };
   schumaker = derive2 { name="schumaker"; version="1.2.1"; sha256="15i39lzkd1qggd35sp39vy922y3y1n9drjkidz7asniv1miali6j"; depends=[]; };
   scico = derive2 { name="scico"; version="1.3.0"; sha256="08grfbjd5s0vdw76ni37yjl2242rr8i2jy72sgpwgra282hpnji3"; depends=[scales]; };
   scientoText = derive2 { name="scientoText"; version="0.1"; sha256="0f18hg9s50lbbgl0fqjv45yhynpnsxj8wwm07g126snzr68gbd21"; depends=[stringr tm]; };
@@ -16279,11 +16324,11 @@ in with self; {
   scoringTools = derive2 { name="scoringTools"; version="0.1.2"; sha256="11bxmpqiqqkjyvmyxlnzz7j64jmy1pjw06128vvydmqhjxxyawjh"; depends=[discretization dplyr magrittr sqldf]; };
   scoringutils = derive2 { name="scoringutils"; version="0.1.7.2"; sha256="1njdvy6fzw20xb13mpdqczvap88jfxxnid31nmrkq9yzjdigjv2c"; depends=[data_table forcats ggplot2 goftest scoringRules]; };
   scout = derive2 { name="scout"; version="1.0.4"; sha256="0vr497g7g1xhf75cwjbjsns2fvdzy86iibbf5w0g2xylw82s4lh2"; depends=[glasso]; };
-  scpi = derive2 { name="scpi"; version="0.1"; sha256="06h8sqqhrja8m9ps8snwzm3zyp6iysdki9n47sv4xw0dixj7v5mp"; depends=[abind CVXR doRNG doSNOW dplyr ECOSolveR fastDummies foreach ggplot2 magrittr Matrix nloptr purrr Qtools rlang stringr tibble tidyr]; };
+  scpi = derive2 { name="scpi"; version="0.2.1"; sha256="043ifc7s7zaw1v1c52613jl9rasb32ia3l2njhf1gixdvah334di"; depends=[abind CVXR doRNG doSNOW dplyr ECOSolveR fastDummies foreach ggplot2 magrittr Matrix nloptr purrr Qtools rlang stringr tibble tidyr]; };
   scpm = derive2 { name="scpm"; version="2.0.0"; sha256="1ib46m3i50annp90n2ih4qdxabxik4ngg9j0a5hgspsvk1i4hrvp"; depends=[interp lattice MASS Matrix mvtnorm RandomFields rgl]; };
   scqe = derive2 { name="scqe"; version="1.0.0"; sha256="1113zbc2jyq03fh8l1h6yidf25hh5dcqrk6wkk9flqwnbrvfkwrr"; depends=[AER ggplot2]; };
+  scquantum = derive2 { name="scquantum"; version="1.0.0"; sha256="0v263qxf3qp7hra3l8fyw8a625z9ym2h2zg5b9lsysdiznbi9bww"; depends=[]; };
   scraEP = derive2 { name="scraEP"; version="1.2"; sha256="1qkfd4bp3sd3xrh9bdaqwmmvx7f9rvjcch6hi2p387ky04ywwqn4"; depends=[data_table rvest XML xml2]; };
-  scrapeR = derive2 { name="scrapeR"; version="0.1.6"; sha256="1rqgqpn9rc43rh356z9gb51pjhdczr9a9mgv0i078nniq156rmlb"; depends=[RCurl XML]; };
   scrappy = derive2 { name="scrappy"; version="0.0.1"; sha256="0dckq2pdqabnv5cinfqgbrjxp55x4z81lp8xh4yhyb2cnz9gdsqy"; depends=[magrittr rvest xml2]; };
   scrime = derive2 { name="scrime"; version="1.3.5"; sha256="0y2mh9fsffjf3i15bafpasa17z99c1s75r8g6h4hgcwfgpjx75sx"; depends=[]; };
   scriptName = derive2 { name="scriptName"; version="1.0.1"; sha256="1rd3qj7c7pg454a5mxhr64g4kp15cqf5lf8lbsh9x88llvkjci5v"; depends=[purrr rlang]; };
@@ -16305,9 +16350,9 @@ in with self; {
   sdamr = derive2 { name="sdamr"; version="0.1.0"; sha256="19mgdipp2fwv0c8g5fc02j4vdnc6v4x0204570swv8mkb2r2acqy"; depends=[car dplyr ggplot2]; };
   sdat = derive2 { name="sdat"; version="1.1"; sha256="1mxijw2yfblqjvqqb2xrzhfn9c872i1q9ggw24xicvr2fk4lvjw6"; depends=[]; };
   sdcHierarchies = derive2 { name="sdcHierarchies"; version="0.19.2"; sha256="198bk08qz5xr07pkc9yj3n9rzgv5ssijhg9fwhhrg35rf7jni1s8"; depends=[cli data_table jsonlite Rcpp rlang shiny shinyjs shinythemes shinyTree]; };
-  sdcLog = derive2 { name="sdcLog"; version="0.4.0"; sha256="0rph0jha8x5mqzcpad3px89ppqbxccsx896mhpxw9pxrpk82aiig"; depends=[broom checkmate crayon data_table mathjaxr]; };
+  sdcLog = derive2 { name="sdcLog"; version="0.5.0"; sha256="0ssjgpfg3z8j9s47nmiw6a5jcsi4pppdxidvzm3sryjz4klallwg"; depends=[broom checkmate cli data_table mathjaxr]; };
   sdcMicro = derive2 { name="sdcMicro"; version="5.6.1"; sha256="12maw34ibsa2fpdxy4ww8nbsllfvcjvf5idg4m4z0fjsbmd7li51"; depends=[car carData cluster data_table DT e1071 ggplot2 haven knitr MASS prettydoc Rcpp rhandsontable rmarkdown robustbase shiny shinyBS VIM xtable]; };
-  sdcSpatial = derive2 { name="sdcSpatial"; version="0.1.1"; sha256="1szv2nb758k3x5scxml2ns11fi99rlmd11r3fhzy3dgylf0m0xnm"; depends=[raster]; };
+  sdcSpatial = derive2 { name="sdcSpatial"; version="0.5.2"; sha256="0bnq63akzngvf6r9csg11cb98mhwd8ybrqrk4v2i0iiln70sf7b6"; depends=[raster]; };
   sdcTable = derive2 { name="sdcTable"; version="0.32.2"; sha256="0xp27akglxakqakq3a1415an9446sz0caajjmhh9pwk3mzxh2n3q"; depends=[data_table glpkAPI knitr lpSolveAPI progress Rcpp Rglpk rlang sdcHierarchies slam stringr]; };
   sdcTarget = derive2 { name="sdcTarget"; version="0.9-11"; sha256="18cf276mh1sv16xn0dn8par4zg8k7y8710byxiih6db4i616fjpi"; depends=[doParallel foreach magic tuple]; };
   sde = derive2 { name="sde"; version="2.0.15"; sha256="0gxyhq9lafd62y68h7fd746a3jz3jdsm0shgwm2ylmp4a2f5cdmm"; depends=[fda MASS zoo]; };
@@ -16328,7 +16373,7 @@ in with self; {
   searchConsoleR = derive2 { name="searchConsoleR"; version="0.4.0"; sha256="1ffg5359pbwylw265wbahwl3hy1b0qqv4al71v5r8lgfircibn0j"; depends=[googleAuthR stringr]; };
   searcher = derive2 { name="searcher"; version="0.0.6"; sha256="03q9nq5zkj344swq3ppliz6dhwaddls8xv633s6brccmrcgdaivm"; depends=[]; };
   seas = derive2 { name="seas"; version="0.5-2"; sha256="0hn4d5dc01zyycd7l3vj1sx6bq668n7fzffw9ypaa5l20fizs0ay"; depends=[MASS]; };
-  season = derive2 { name="season"; version="0.3.14"; sha256="1hdn0ji631ga0wadd4w0vph0s59dpcq1q36g0aii07jd0mc1wifv"; depends=[ggplot2 MASS survival]; };
+  season = derive2 { name="season"; version="0.3.15"; sha256="0f63ichlnj49g0ni9560avr4415iyj5061pixkjmqj83y7bbsz22"; depends=[ggplot2 MASS survival]; };
   seasonal = derive2 { name="seasonal"; version="1.8.4"; sha256="1mqlck752d9hmzmkmjw9qq7g9kkrwbzglsm7sx0xc03qbm5zxd3k"; depends=[x13binary]; };
   seasonalclumped = derive2 { name="seasonalclumped"; version="0.3.2"; sha256="0a9ryds9l00dw6pr9s6r6fzrby53zz63idjywh127a4ga48jwnq3"; depends=[ggplot2 gridExtra magrittr TTR]; };
   seasonalityPlot = derive2 { name="seasonalityPlot"; version="0.99.3"; sha256="12z15qlvyj9rrljzqbhgh384x53qqylwmzias4bhx0k3hq2qvsrj"; depends=[dygraphs htmltools magrittr plotrix quantmod zoo]; };
@@ -16343,11 +16388,12 @@ in with self; {
   secsse = derive2 { name="secsse"; version="2.1.7"; sha256="0cad1flym8bhra11chc16ylfa3i0nhi9jyy6r4nacwh6qpbbavjg"; depends=[ape apTreeshape DDD deSolve doParallel foreach geiger phylobase]; };
   secuTrialR = derive2 { name="secuTrialR"; version="1.0.9"; sha256="0g84jrh42kx3w1m6spw80rwx7vzjf7x1qabqap4h6ayrczacxq4r"; depends=[dplyr haven lubridate magrittr purrr readr readxl rlang stringr tibble tidyr]; };
   secure = derive2 { name="secure"; version="0.6"; sha256="1i0csl90w4qvhpnrxwrdhxzlmjw7hn30py36r41cd28igycz2bw3"; depends=[MASS Rcpp RcppArmadillo]; };
-  see = derive2 { name="see"; version="0.6.9"; sha256="0r42dm3zwjszfn6sga6ljgczaksgnn4n92y7bm3qysvcfnywvqq4"; depends=[bayestestR datawizard effectsize ggplot2 insight parameters]; };
+  sedproxy = derive2 { name="sedproxy"; version="0.7.3"; sha256="176wyi8jvk15r4k7hdax2ad37rsbhr54jlsj0y7p8ayhk1vd89am"; depends=[dplyr ggplot2 mvtnorm readr rlang shiny tidyr]; };
+  see = derive2 { name="see"; version="0.7.0"; sha256="1f3i5mplxbpfpwxy4qggxyiv2vqxxbzld0w08w66173f99rfblf7"; depends=[bayestestR datawizard effectsize ggplot2 insight parameters]; };
   seeclickfixr = derive2 { name="seeclickfixr"; version="1.1.0"; sha256="1agsqq2msrqrssffc6liyjjs6nqm90xy2inlcjbkdac5dhinjc4n"; depends=[jsonlite RCurl]; };
   seecolor = derive2 { name="seecolor"; version="0.1.0"; sha256="1ijxyys8pwlm99ynmv86cgn8pzz1ivaxzh3rq1akzv17nz93jv61"; depends=[crayon dplyr fansi ggplot2 magrittr purrr rstudioapi stringr]; };
   seedCCA = derive2 { name="seedCCA"; version="3.0"; sha256="076pkv083dp71m6ifjzx9spfwmc1625r9d72spf0vhf8pwwsha4v"; depends=[CCA corpcor]; };
-  seededlda = derive2 { name="seededlda"; version="0.8.0"; sha256="1wl7j2p1hfk1y9c05bq49n6zfcnkmijdp03c16ay7dhjqrhkwad6"; depends=[Matrix quanteda Rcpp RcppArmadillo RcppParallel]; };
+  seededlda = derive2 { name="seededlda"; version="0.8.1"; sha256="13hjc2yw0mkmsk50q31746c29gaiz3asi8k1ld76l1ziy2dsp9ji"; depends=[Matrix proxyC quanteda Rcpp RcppArmadillo RcppParallel]; };
   seedr = derive2 { name="seedr"; version="0.3.0"; sha256="15drbc0iplb97a2sym6jnrwij7ak5qckcw98n3m65x45apjwdmhq"; depends=[binom data_table]; };
   seedreg = derive2 { name="seedreg"; version="1.0.2"; sha256="16nr2hkwc0vfkd76ky592r1ymlmpakvxsmammih3fii9d4l8mlab"; depends=[boot car crayon drc emmeans ggplot2 hnp multcomp multcompView stringr]; };
   seeds = derive2 { name="seeds"; version="0.9.1"; sha256="0adk7y5ripg78bwkdgnlfwq9w9h6mlpdrikgbnn5z8az2qahc0in"; depends=[callr coda Deriv deSolve dplyr ggplot2 Hmisc MASS matrixStats mvtnorm pracma R_utils Ryacas statmod tidyr]; };
@@ -16359,9 +16405,9 @@ in with self; {
   segclust2d = derive2 { name="segclust2d"; version="0.3.0"; sha256="0gzxm4dgkfh80vyxl5xxhjr26s5hnzn85dmcvavfihbhqin6nj1s"; depends=[cli dplyr ggplot2 magrittr plyr RColorBrewer Rcpp RcppArmadillo reshape2 rlang scales zoo]; };
   segmag = derive2 { name="segmag"; version="1.2.4"; sha256="1i717xg1z7s35pkwzywgjf9wx7zj9xksv0k87h7p1q62y073qbqm"; depends=[plyr Rcpp]; };
   segmenTier = derive2 { name="segmenTier"; version="0.1.2"; sha256="01xbcddinjbkbqkwq2lnsxd3gw8fxys58p498dc2lw8psz3g2wgc"; depends=[Rcpp]; };
-  segmented = derive2 { name="segmented"; version="1.4-0"; sha256="0xn28gyqzmyz0kv352rkkznbj806arxj2am5a9gqsn1qzv9l0s9h"; depends=[MASS]; };
+  segmented = derive2 { name="segmented"; version="1.4-1"; sha256="1aagn2v48ncwxx79h601nlalbgc40fc81nqaw6nbncqkqm0zaxi3"; depends=[MASS]; };
   segmentr = derive2 { name="segmentr"; version="0.2.0"; sha256="0q5kxxiw0akpk7w2a2l9zp7v4pvqblzdvrld5fjyl5f6h8hsb40z"; depends=[foreach glue Rcpp]; };
-  segmetric = derive2 { name="segmetric"; version="0.1.0"; sha256="19hpfxi5n7azri8bnlddil46252q61cg5pbfd307v5px96fw39xd"; depends=[magrittr sf units]; };
+  segmetric = derive2 { name="segmetric"; version="0.2.0"; sha256="1nirb5gnbs3vw74fmpapng0bqqwrz5a6c59apkg8s8x0vqxwhfvx"; depends=[magrittr sf units]; };
   segregation = derive2 { name="segregation"; version="0.6.0"; sha256="0yajbbrbrkk6blb6r5y5fwvfz0j8kbc8fr91kb4f53j1afcbbhbx"; depends=[data_table]; };
   segregatr = derive2 { name="segregatr"; version="0.2.0"; sha256="02hdwbahcym98f20nnxnn94xsrl4x6gzz26wrg2nhj2cq20fl4s4"; depends=[pedprobr pedtools]; };
   sehrnett = derive2 { name="sehrnett"; version="0.0.3"; sha256="09h30j390wnkglzq5c7ihladzmv2i439r27p3np2c850a69m0izp"; depends=[DBI dplyr magrittr purrr RSQLite tibble]; };
@@ -16379,10 +16425,8 @@ in with self; {
   seleniumPipes = derive2 { name="seleniumPipes"; version="0.3.7"; sha256="1krpzh2gy3yl07c2n1d8q21xjc2qcv5ac1kv7212710bxkdyfad6"; depends=[httr jsonlite magrittr whisker xml2]; };
   selfea = derive2 { name="selfea"; version="1.0.1"; sha256="0zyxbd5vg8nhigill3ndcvavzbb9sbh5bz6yrdsvzy8i5gzpspvx"; depends=[ggplot2 MASS plyr pwr]; };
   selfingTree = derive2 { name="selfingTree"; version="0.2"; sha256="18ylxmg2ms4ccgm4ahzfl65x614wiq5id7zazjjz5y75h8gs7gzj"; depends=[foreach]; };
-  selfmade = derive2 { name="selfmade"; version="0.1"; sha256="0d3v202dqr3c2564g6w7k27mhy1nxx7ngpiai7yxq2s88wa7cydi"; depends=[lme4 Matrix mgcv]; };
-  sem = derive2 { name="sem"; version="3.1-13"; sha256="0r9g4j0w6q4qy9jl9gkjkihml4109ymg3y6zmhyg806q19qryx07"; depends=[boot MASS mi]; };
+  sem = derive2 { name="sem"; version="3.1-14"; sha256="18m54hjl3w57n4ygnkcy80w0dc9dz1zvavjqh9sl6nqs52f9m246"; depends=[boot MASS mi]; };
   semEff = derive2 { name="semEff"; version="0.6.0"; sha256="0w919y49kl2vq9psnjn03cwwp99myip5cbvm6jmkkjiikx8iikh0"; depends=[boot gsl lme4]; };
-  semPLS = derive2 { name="semPLS"; version="1.0-10"; sha256="0q5linjyv5npkw4grx3vq58iq2q1grf06ikivhkg8w7rvb7pqn6b"; depends=[lattice]; };
   semPlot = derive2 { name="semPlot"; version="1.1.5"; sha256="0d7v9yqc9nhx3hdrp444w1ah66zai3lg5y778m85r7ngh1prxlvc"; depends=[colorspace corpcor igraph lavaan lisrelToR OpenMx plyr qgraph rockchalk sem XML]; };
   semPower = derive2 { name="semPower"; version="1.2.0"; sha256="1y3j6b3ab19fqxzqrrssjcj7f0za0vkwq97s7qs6hwj9yfsg1nas"; depends=[]; };
   semTable = derive2 { name="semTable"; version="1.8"; sha256="0qr420rnz59q8arf6x05iy1zyh7pv31ldi2rsw1j2a00fbpp4ndf"; depends=[kutils lavaan plyr stationery xtable]; };
@@ -16392,6 +16436,7 @@ in with self; {
   semdrw = derive2 { name="semdrw"; version="0.1.0"; sha256="16hm1ifgspnxnlf3rfg5ylmql2fq91ig8nc5953ggyhfrjwbqx15"; depends=[dplyr lavaan psych semPlot semTools shiny shinyAce]; };
   semds = derive2 { name="semds"; version="0.9-6"; sha256="10kvcmcy6qa2r5sram6azqgzl528rghfxgw2f2bq2fvhhq127dzq"; depends=[minpack_lm pracma]; };
   semiArtificial = derive2 { name="semiArtificial"; version="2.4.1"; sha256="0zsn3r5n7n3dsa02i194lr6ail7mizq9xp8x3kc5k17z4ckcfysd"; depends=[cluster CORElearn flexclust fpc ks logspline MASS mcclust nnet robustbase RSNNS StatMatch timeDate]; };
+  semicmprskcoxmsm = derive2 { name="semicmprskcoxmsm"; version="0.1.0"; sha256="0bc79j78lp2znck706v15gr8q4zlq92zy4z452jmkh8hkb746qf7"; depends=[fastGHQuad ggplot2 Rcpp survival twang]; };
   seminr = derive2 { name="seminr"; version="2.3.0"; sha256="0p7k2dvld5yfx5x5m97531b6kzkbhxbv308vkb7cakc1kwacj8sa"; depends=[DiagrammeR DiagrammeRsvg glue knitr lavaan rmarkdown testthat webp]; };
   semmcmc = derive2 { name="semmcmc"; version="0.0.6"; sha256="13asqiw3zazh9k3p39582a0bzm00gmagls2w76kvpygilj4r5391"; depends=[MASS msm]; };
   semnar = derive2 { name="semnar"; version="0.7.1"; sha256="0g6l4377i9wdwbcrdhdmsph68bd6qwc5mjlw824mpxn0ggg6vx72"; depends=[jsonlite leaflet lubridate magrittr urlshorteneR]; };
@@ -16421,9 +16466,10 @@ in with self; {
   sensory = derive2 { name="sensory"; version="1.1"; sha256="1zd0ajrymxi6gygcq9fqgwgy0g6c3cqz53x0k5m0ihbmh11rc7s7"; depends=[gtools MASS Matrix]; };
   senstrat = derive2 { name="senstrat"; version="1.0.3"; sha256="0j6mb55v5ivqvk8nn8fjlzrbdgj6csa58yc6gy1g07m7gk2qz2np"; depends=[BiasedUrn MASS]; };
   sentencepiece = derive2 { name="sentencepiece"; version="0.2.1"; sha256="0mwmgnkmahlik8nl14pkzi351jv9c00iylj7f5h6wkjbrizkdd34"; depends=[Rcpp]; };
-  sentiment_ai = derive2 { name="sentiment.ai"; version="0.1.0"; sha256="1i7lihj66wgl1fciqm3kii3plflicjrrpzv8q899wcmky2whfgmf"; depends=[data_table jsonlite reticulate roperators tensorflow tfhub xgboost]; };
+  sentiment_ai = derive2 { name="sentiment.ai"; version="0.1.1"; sha256="1wz34m5imzfwzf1ywidgb1xscsvf9nhri3w3wa2d8r7bk0nvlfjs"; depends=[data_table jsonlite reticulate roperators tensorflow tfhub xgboost]; };
   sentimentr = derive2 { name="sentimentr"; version="2.9.0"; sha256="0i0lg2fl079wjv30lpqcxhx62miqakb9kzwwhrr4c18kl0bxbaav"; depends=[data_table ggplot2 lexicon stringi syuzhet textclean textshape]; };
   sentometrics = derive2 { name="sentometrics"; version="1.0.0"; sha256="06qvwfgshr70n1qgf2zqjvycwwrak8d5hfyn3v5k2qzkfaxkihmm"; depends=[caret data_table foreach ggplot2 glmnet ISOweek quanteda Rcpp RcppArmadillo RcppParallel RcppRoll stringi]; };
+  sentopics = derive2 { name="sentopics"; version="0.6.2"; sha256="1ix6rcjrp151dkqyqvbf3fg93h7g9714dlgr2q2r00sqpa5xjsdn"; depends=[data_table doFuture doRNG foreach future quanteda Rcpp RcppArmadillo RcppHungarian RcppProgress]; };
   sentryR = derive2 { name="sentryR"; version="1.1.0"; sha256="0kz81dbxg4zyns829cjhjm2g88pxzaaxdk7c8qabvl0zgqys2chy"; depends=[httr jsonlite stringr tibble uuid]; };
   separationplot = derive2 { name="separationplot"; version="1.3"; sha256="0ggyr4asp86hvdp4bwdkljz9b2gzdxm2y9nbz2srlgh3m4hlz2cs"; depends=[foreign Hmisc MASS RColorBrewer]; };
   seplyr = derive2 { name="seplyr"; version="1.0.4"; sha256="09lv2jic2dhwl2pra56kf7087inbjg9b5461dyy2a31h5ji68j08"; depends=[dplyr rlang tidyr wrapr]; };
@@ -16446,7 +16492,7 @@ in with self; {
   sequenza = derive2 { name="sequenza"; version="3.0.0"; sha256="13l16lacdcf7fn96yj3xqxap0l19ma9ppkxxx5qk9f5abbvdk303"; depends=[copynumber iotools pbapply readr seqminer squash]; };
   sergeant = derive2 { name="sergeant"; version="0.9.1"; sha256="0mgrrlny1qfddznyc34awh8vkbjnyskbyqrxszdhsm2c5wgp2nwh"; depends=[bit64 DBI dbplyr dplyr htmltools httr jsonlite magrittr purrr readr scales stringi tibble]; };
   serial = derive2 { name="serial"; version="3.0"; sha256="1y1gj0lcdn5apiv6c6arks6pqhsbvnrfym6n2izjarx2c27ijrjj"; depends=[]; };
-  seriation = derive2 { name="seriation"; version="1.3.3"; sha256="1f6hxbrixqaj4vh4svff5pz9ny9h10snrrigk2r9c59amhkgih80"; depends=[cluster colorspace gclus MASS qap registry TSP]; };
+  seriation = derive2 { name="seriation"; version="1.3.5"; sha256="0dlj0mqpg585m6i7yn0h878i8ag6pyqph98xkk42i2nvghpy01gr"; depends=[cluster colorspace gclus MASS qap registry TSP]; };
   serieslcb = derive2 { name="serieslcb"; version="0.4.0"; sha256="1ip4k2xzg06hwsni62ai1whs1zzhwlf94507inpfpqz3jmmafrhq"; depends=[gplots shiny]; };
   seroincidence = derive2 { name="seroincidence"; version="2.0.0"; sha256="0sam4y7w6prswz0izkm1a9v2k5rv7z22g1ajy15n9xix9aml5ms4"; depends=[]; };
   serp = derive2 { name="serp"; version="0.2.4"; sha256="0hd25rxknj636ssy2289xjvq5fflp2p561yb9w0siqihfc7cfjpc"; depends=[crayon ordinal]; };
@@ -16459,7 +16505,7 @@ in with self; {
   sessioninfo = derive2 { name="sessioninfo"; version="1.2.2"; sha256="1jy7n37qnrb4fgzmn8s8yf7kv29yw27x8zklwf8qdb2kgj2q6qpm"; depends=[cli]; };
   set = derive2 { name="set"; version="1.2"; sha256="0f36dp9k0nxp1amsd7ybwgbv0vxvgd1kns7cbfsbsh0kljxyplzp"; depends=[do]; };
   set6 = derive2 { name="set6"; version="0.2.4"; sha256="06swz60p73a7m7rvsv1545hsr2chkk2w2hmnfwkwfz4hrbdxm709"; depends=[checkmate ooplah R6 Rcpp]; };
-  setRNG = derive2 { name="setRNG"; version="2013.9-1"; sha256="02198cikj769yc32v8m2qrv5c01l2fxmx61l77m5ysm0hab3j6hs"; depends=[]; };
+  setRNG = derive2 { name="setRNG"; version="2022.4-1"; sha256="09089vr5x8snwxh38kdhgpjl3jl7zrk056f6f9a2jg5lsrmnxh31"; depends=[]; };
   sets = derive2 { name="sets"; version="1.0-21"; sha256="1h1a03b1850kh5hd3gxbspx2nxqxvk2gb0wm0s60b70qb6zg0csp"; depends=[]; };
   setter = derive2 { name="setter"; version="0.0-1"; sha256="10fwrx8yysp99rrkbnn3rbz79vyzr2h3p7zxxlqapw1k2lllp0r5"; depends=[assertive_base]; };
   settings = derive2 { name="settings"; version="0.2.7"; sha256="1i9ij5k8p2v9gxr48vas8hj337mbyx9c4ywv9bbdwkz6kzah46k5"; depends=[]; };
@@ -16478,8 +16524,9 @@ in with self; {
   sfinx = derive2 { name="sfinx"; version="1.7.99"; sha256="14v47y00qwvc2s0vzjw19hwn85nzj8lna539c75qq6zkn6kir6va"; depends=[]; };
   sfnetworks = derive2 { name="sfnetworks"; version="0.5.5"; sha256="17lj828ds16v6splx84s8vykvinm3iz0whmx34cr08b7aadw0yqf"; depends=[crayon dplyr igraph lwgeom rlang sf sfheaders tibble tidygraph units]; };
   sfo = derive2 { name="sfo"; version="0.1.1"; sha256="0ja0kyrr6vqwk9fj1hq9bvfkak2vgav0hlqpgn4sa9h9j1s8r4js"; depends=[]; };
-  sfsmisc = derive2 { name="sfsmisc"; version="1.1-12"; sha256="10h76pgzcxv1y5pkmba9607lvjrsyq62sq63s2n7ry7z5151h4lv"; depends=[]; };
+  sfsmisc = derive2 { name="sfsmisc"; version="1.1-13"; sha256="0622yf4fl1b1zm988dfwdrhq7pg0rllhm8wz1pqdmp72glsi05x8"; depends=[]; };
   sft = derive2 { name="sft"; version="2.2-1"; sha256="0fxz64ba58n6ghfqsgq64n1c7qkvi8c3lsa86732mil9w71yxw33"; depends=[fda SuppDists]; };
+  sftime = derive2 { name="sftime"; version="0.2-0"; sha256="1ymi60ag8kqb3293bdcvb83zwsgrz000ylifjvlpzzmh1xsisanq"; depends=[sf]; };
   sftrack = derive2 { name="sftrack"; version="0.5.3"; sha256="1dj21n7iqv334va40p4v3rxh87qbpwgq0062f67kpa3jd16xzkmk"; depends=[sf]; };
   sgPLS = derive2 { name="sgPLS"; version="1.7"; sha256="1jk2j1zn5vq82rcjflnk7g6y2q0v5jl14k804dmigqg013gbykql"; depends=[mixOmics mvtnorm]; };
   sgat = derive2 { name="sgat"; version="0.9"; sha256="14sniq5yfh7xmbnd8d0ighw97352qjgfdg587a6hxafisx9is61p"; depends=[data_table dplyr plyr qdapRegex RCurl RSelenium stringr]; };
@@ -16527,7 +16574,7 @@ in with self; {
   shiny_info = derive2 { name="shiny.info"; version="0.2.0"; sha256="162wvb02z5h1y7xgsyl6wv88zlfmbm1jlnz48f56fyybs54baw41"; depends=[git2r glue shiny]; };
   shiny_pwa = derive2 { name="shiny.pwa"; version="0.2.1"; sha256="120wqqy7fh7nm2bib3dq02a92jb3lykkl7qayiw6bnax8sdr18yw"; depends=[htmltools readr shiny urltools]; };
   shiny_react = derive2 { name="shiny.react"; version="0.2.3"; sha256="19k1rvq47s56cipxqbalgzmhwdxw3ic5bd9qqnvsw75ynbhpa959"; depends=[glue htmltools jsonlite logger rlang shiny]; };
-  shiny_reglog = derive2 { name="shiny.reglog"; version="0.4.1"; sha256="1azhcz2ffrc82f9yfqfivb9m2alanl4wx1i8q8pyympqw09gg5zy"; depends=[DBI dplyr googlesheets4 lubridate R6 RSQLite scrypt shiny]; };
+  shiny_reglog = derive2 { name="shiny.reglog"; version="0.5.0"; sha256="1c0gr5rq2hrxy1zll2g131hz1xkd2yrd2l9pzfqyzb8lr6rvkbh6"; depends=[dplyr lifecycle lubridate R6 scrypt shiny shinyjs stringi uuid]; };
   shiny_router = derive2 { name="shiny.router"; version="0.2.2"; sha256="1jxk1hxi42kyi5dahszhl9nzppa99svk1vhwf2d15apfrg2d6ivc"; depends=[htmltools magrittr shiny]; };
   shiny_semantic = derive2 { name="shiny.semantic"; version="0.4.3"; sha256="124bxgbbzx4xkzxqzr16brqdm12ra0pvx1qhqkvp8alvjm0s54vg"; depends=[glue htmltools htmlwidgets jsonlite magrittr purrr R6 shiny]; };
   shiny_worker = derive2 { name="shiny.worker"; version="0.0.1"; sha256="1l30dx46s3q1x9nd42r6dracd3lqkjk80r9jyjqy8lmdsq48300i"; depends=[future R6 shiny]; };
@@ -16592,7 +16639,7 @@ in with self; {
   shinymeta = derive2 { name="shinymeta"; version="0.2.0.3"; sha256="1lizg5sjg0f2axr9vk8z4w43lbyim83gd4dzx91dygknv3kgyp89"; depends=[callr fastmap fs htmltools rlang shiny sourcetools styler]; };
   shinymodels = derive2 { name="shinymodels"; version="0.1.0"; sha256="177c8ksv17ywyrdyxfr872hc1ajr0l3b9ra8as9q36qcpzl24v7i"; depends=[dplyr DT generics ggplot2 glue htmltools magrittr parsnip plotly purrr rlang scales shiny shinydashboard tidyr tidyselect tune yardstick]; };
   shinyobjects = derive2 { name="shinyobjects"; version="0.2.0"; sha256="0fg5gyssia2fqar635vrqgfwpfrk4pqachsgg10y13ljp09lcdm3"; depends=[dplyr glue knitr magrittr pander purrr readr rlang rstudioapi shiny stringr styler tibble tidyr]; };
-  shinypanel = derive2 { name="shinypanel"; version="0.1.4"; sha256="0hdfpjfhyqj7ym3bwg5xmhnawl98q7mfl2wj950ysajqi88l91pr"; depends=[htmltools jsonlite shiny shinyBS shinyjs]; };
+  shinypanel = derive2 { name="shinypanel"; version="0.1.5"; sha256="003sp6x78mwjf5hl8m4gqwyxlg3zilli6932l7k82s1hbaksar1j"; depends=[htmltools jsonlite shiny shinyBS shinyjs]; };
   shinypanels = derive2 { name="shinypanels"; version="0.5.0"; sha256="1rslz9wl3gx11dm6il77j4k5swxvcfy5mf0zffbs4zk8xjgpzzj6"; depends=[glue htmltools shiny shinyjs]; };
   shinypivottabler = derive2 { name="shinypivottabler"; version="1.0"; sha256="04mdzd0j9y1w0iifpgd870haj5b9q8sdmkj4lws0svhkli3ym097"; depends=[colourpicker htmltools openxlsx pivottabler shiny]; };
   shinyr = derive2 { name="shinyr"; version="0.3.0"; sha256="1r4xpb5x0711jbh4v8wkfhgg3s7l1sxqr6i90wsh0k0q3501fs2i"; depends=[caret corrplot dplyr e1071 knitr nnet plotly randomForest RColorBrewer shiny shinydashboard tm wordcloud]; };
@@ -16641,11 +16688,12 @@ in with self; {
   sigclust = derive2 { name="sigclust"; version="1.1.0"; sha256="0151v7lr4n4yyn93j0s06gzc9jh9xhdgvfw6kvpfy24jl6wdii7g"; depends=[]; };
   sigmaNet = derive2 { name="sigmaNet"; version="1.1.0"; sha256="1i0xikwad9kiyrqxi1klkc4h4hyqfkxr388sw4mrx9pswfpbv3xr"; depends=[htmlwidgets igraph jsonlite RColorBrewer]; };
   sigmajs = derive2 { name="sigmajs"; version="0.1.5"; sha256="1d26llpgnj687b8rwgbyhw88zakp334n4a9gabf72qwrg4awm1v5"; depends=[crosstalk dplyr htmltools htmlwidgets igraph jsonlite magrittr purrr scales shiny]; };
-  sigminer = derive2 { name="sigminer"; version="2.1.2"; sha256="1h5wxch6r01bdz7l64alag9f4l8jfx19ym36bj0l9450f8wizncj"; depends=[cli cowplot data_table dplyr furrr future ggplot2 ggpubr maftools magrittr NMF purrr Rcpp rlang tidyr]; };
+  sigminer = derive2 { name="sigminer"; version="2.1.3"; sha256="0zgdrja8iv8i0rknz925z7zb6qxfmfijw28j523rai6kw4hqzvnf"; depends=[cli cowplot data_table dplyr furrr future ggplot2 ggpubr maftools magrittr NMF purrr Rcpp rlang tidyr]; };
   sigmoid = derive2 { name="sigmoid"; version="0.3.0"; sha256="1sa6nmip3fizdk3r47pvx0h3qldn267arpmid0wa1pb7k5j2g682"; depends=[]; };
   signal = derive2 { name="signal"; version="0.7-7"; sha256="0qaf39vfmhn3d0bdjqd805ayfkaj48dkmf5dqd47bpk7dp21b837"; depends=[MASS]; };
   signalHsmm = derive2 { name="signalHsmm"; version="1.5"; sha256="1d4v6cbvcbi8pb5zmn58s01h3jb0kv7yr7qvcnx4p2v82knvhik7"; depends=[Rcpp seqinr shiny]; };
   signed_backbones = derive2 { name="signed.backbones"; version="0.91.5"; sha256="0xk8sncblzihqzqfpaq7158slvrb6ww3dc4v5di1m2bqwhykncwi"; depends=[reshape2]; };
+  signibox = derive2 { name="signibox"; version="1.0"; sha256="0yjdpcyjdlmr6brb3a21wcs5rxryvjsnkhl8v73g2cygbhqba8rr"; depends=[]; };
   signmedian_test = derive2 { name="signmedian.test"; version="1.5.1"; sha256="05n7a4h2bibv2r64cqschzhjnm204m2lm1yrwxvx17cwdp847hkm"; depends=[]; };
   signnet = derive2 { name="signnet"; version="0.8.0"; sha256="0iymm9crvppb7yrp163y5i605bl1mdw7bxzgr5s4zflhzf1njv4s"; depends=[igraph Matrix Rcpp RcppArmadillo]; };
   signs = derive2 { name="signs"; version="0.1.2"; sha256="0dzf5pydvs93rvj6idw9l2asv1bxwz20df7qis2db84hfww2kc6m"; depends=[rlang scales]; };
@@ -16683,7 +16731,7 @@ in with self; {
   simglm = derive2 { name="simglm"; version="0.8.9"; sha256="0spvr8bmdqg97y1qklr8c6svgwsdwa5haar4sbsnvpnrq5fb2baw"; depends=[broom dplyr future_apply purrr rlang]; };
   simgof = derive2 { name="simgof"; version="1.0.2"; sha256="05d7im59i193f266kqy4lr37dw3v20j9niizhj9w8z1qlfqfqsrk"; depends=[ddst]; };
   simhelpers = derive2 { name="simhelpers"; version="0.1.1"; sha256="0hnqvymmyimh6244r8a8qmmsb799pgj6j6yvgdnhvjmss8ymif9d"; depends=[dplyr furrr future magrittr purrr Rdpack rlang rstudioapi tibble tidyr]; };
-  simlandr = derive2 { name="simlandr"; version="0.1.2"; sha256="1f1r22a7w8xqkgavnb6g06if29vf1905d3h32ww9zzxz65g3a9qa"; depends=[bigmemory digest dplyr forcats gganimate ggplot2 htmlwidgets ks magrittr MASS plotly purrr rlang scales tibble]; };
+  simlandr = derive2 { name="simlandr"; version="0.2.0"; sha256="009kvq86q78l265xvpqn3nbbf20rnbqflng15zxcb4bg1490x3xb"; depends=[bigmemory digest dplyr forcats gganimate ggplot2 htmlwidgets ks lifecycle magrittr MASS plotly progress purrr rlang scales tibble]; };
   simmer = derive2 { name="simmer"; version="4.4.4"; sha256="1rk6c4i6w3z3zhv2yr2lzhcr10araxxcycn556pncqp4f0ycb2l8"; depends=[BH codetools magrittr Rcpp]; };
   simmer_bricks = derive2 { name="simmer.bricks"; version="0.2.1"; sha256="1s73mfmpjz91n932kjk50aai5j3p1sjibq73yxrjdhlyhiy4d8lp"; depends=[simmer]; };
   simmer_plot = derive2 { name="simmer.plot"; version="0.1.17"; sha256="15bg7y21kgzvgzwzxpdwq9pay92ms2dkg9a1lpqlg5dx892rfr7n"; depends=[DiagrammeR dplyr ggplot2 scales simmer tidyr]; };
@@ -16713,7 +16761,7 @@ in with self; {
   simrec = derive2 { name="simrec"; version="1.0.0"; sha256="17zzbzgdisp5qh0vlbmkjf6a3axnpwj2kw03wymfbb3z557pbxlr"; depends=[]; };
   simrel = derive2 { name="simrel"; version="2.1.0"; sha256="1knn8kw9m232agm4b3b0fc132frv5i7k8gxvmrcb1pnz62gsmg04"; depends=[FrF2 ggplot2 gridExtra jsonlite magrittr miniUI purrr reshape2 rlang rstudioapi scales sfsmisc shiny testthat tibble tidyr]; };
   sims = derive2 { name="sims"; version="0.0.3"; sha256="0wsq8plbrmk4xrs8i3g3pqwp2xkhfh1pffva1bwyx44l1r5imzs2"; depends=[chk future_apply nlist yesno]; };
-  simsalapar = derive2 { name="simsalapar"; version="1.0-10"; sha256="1q7kh44xl7q48vpqbyrp85my6x97l4fqq36bry8vg3k5riihirzf"; depends=[colorspace gridBase sfsmisc]; };
+  simsalapar = derive2 { name="simsalapar"; version="1.0-11"; sha256="1vf97q42vicmz5w6szzhiw73sc3c7rqwxs1nv7ybp13fvvg52p24"; depends=[colorspace gridBase sfsmisc]; };
   simsem = derive2 { name="simsem"; version="0.5-16"; sha256="0scjb308pb8ivy5blbk1wj9d1yxcqknhvh95a3728crfq2xcqnh0"; depends=[lavaan]; };
   simsl = derive2 { name="simsl"; version="0.2.1"; sha256="12dc9lcy11g1yynycvcqm62npq0v13bg6fnykb5m9ijwga4x51il"; depends=[mgcv]; };
   simstandard = derive2 { name="simstandard"; version="0.6.3"; sha256="1l1vny3csrr7krfpn25rzysmwjfv6mclf51y3mq02cimcwq9fzcy"; depends=[lavaan magrittr mvtnorm purrr rlang tibble]; };
@@ -16728,7 +16776,7 @@ in with self; {
   sinaplot = derive2 { name="sinaplot"; version="1.1.0"; sha256="0zfq6l8wjvdj7rndsfyh0a2xjlxmn2ij1q50hg3xjfpwrjxcsck8"; depends=[plyr]; };
   sinar = derive2 { name="sinar"; version="0.1.0"; sha256="0dywgqmvbrsygyvnln2mc5p6gaxvphr5byx7hkf0nkil54f2jzdf"; depends=[MASS numDeriv]; };
   sindyr = derive2 { name="sindyr"; version="0.2.3"; sha256="0dk7zwj5hdr7fcxhdj9klml11sciyaj0v59dfgvnhhkxndwwdbrr"; depends=[arrangements crqa igraph matrixStats plot3D pracma]; };
-  sinew = derive2 { name="sinew"; version="0.3.8"; sha256="1ggx7wgmgnsv69nnc55mg9g7rzjv5m23sygz7x8q68pybmjr7fc1"; depends=[cli crayon miniUI rematch2 rstudioapi shiny sos stringi yaml]; };
+  sinew = derive2 { name="sinew"; version="0.4.0"; sha256="14ccm7i3zkjmj077b9ba2557n4v77k7646vylnrd22f20dzr52ba"; depends=[cli crayon rematch2 rstudioapi sos stringi yaml]; };
   singcar = derive2 { name="singcar"; version="0.1.3"; sha256="17f80cqkgcyvmaavpqia9z54h3yf5as3v294fsc09l3zshzvbzg6"; depends=[CholWishart MASS withr]; };
   singleCellHaystack = derive2 { name="singleCellHaystack"; version="0.3.4"; sha256="08s31z15v4px3sfm2q2ips64qknahw04xhh6d5nmlsl65wbd143x"; depends=[ggplot2 Matrix reshape2]; };
   sinib = derive2 { name="sinib"; version="1.0.0"; sha256="08x2a5hn41vcsai3r36w1kgzka4ks53pkp6dxn90bsqh40ydb0db"; depends=[]; };
@@ -16741,8 +16789,8 @@ in with self; {
   sisVIVE = derive2 { name="sisVIVE"; version="1.4"; sha256="1vh53irxgk8ahw52cdqbbm89dvmzyf54izg4lm8a3v92k5p6nzwz"; depends=[lars]; };
   sisal = derive2 { name="sisal"; version="0.48"; sha256="1fh35ndra58dryw222ng7ys3gx1izyk5789k30lyd4n8wqy6sjjd"; depends=[boot digest lattice mgcv R_matlab R_methodsS3]; };
   sisireg = derive2 { name="sisireg"; version="1.0.0"; sha256="1gijdz5rllflrh7ndjm245ix8ngpqp5nhqjfpqsdyllwixlkchmv"; depends=[raster zoo]; };
-  sismonr = derive2 { name="sismonr"; version="2.1.0"; sha256="1v4vfz6zc4f70fay8r9vaxj62pcp8gqnh4aczbqpym9874330vi9"; depends=[dplyr ggplot2 ggpubr igraph jsonlite magrittr rlang scales stringr tictoc tidyr truncnorm XR XRJulia]; };
   sistec = derive2 { name="sistec"; version="0.2.0"; sha256="0y43anin9vybiivf3jrxg19i9z4smmhhjvp52gci6icpn839kr8x"; depends=[dplyr openxlsx rlang shiny stringi stringr]; };
+  sistmr = derive2 { name="sistmr"; version="0.1.1"; sha256="08kajkb0ypbzcyxs9wv6mdz51r7zj01k2ahskidhlqww80rd407r"; depends=[BlandAltmanLeh dplyr ggbeeswarm ggplot2 ggrepel rlang scales]; };
   sitar = derive2 { name="sitar"; version="1.2.0"; sha256="1dwj3xpi89i5pygw1rx38yi4spdis5bfivkjvwa1xnjcamw64ygg"; depends=[dplyr forcats ggplot2 glue magrittr nlme purrr rlang rsample tibble tidyr]; };
   siteymlgen = derive2 { name="siteymlgen"; version="1.0.0"; sha256="1176fnf39ars5cdjvy5w2k6b92qv51hy86s71sl8ghr0lwdq9f59"; depends=[data_table dplyr lubridate magrittr purrr rlist rmarkdown stringr yaml ymlthis]; };
   sitmo = derive2 { name="sitmo"; version="2.0.2"; sha256="1hm89zi38ldgbskyx1cn7gm87yqy7zrxli8q05a36y1ndvazi3j4"; depends=[Rcpp]; };
@@ -16752,7 +16800,7 @@ in with self; {
   sivs = derive2 { name="sivs"; version="0.2.5"; sha256="16w1yixb2wfgprnfm408l11nz9j28by7sz82x17rzmjb6p3n1jw5"; depends=[doParallel foreach glmnet pROC varhandle]; };
   sizeMat = derive2 { name="sizeMat"; version="1.1.2"; sha256="1vbndadsn80ddrg471vp1qxf0gan38w6dkjk1p2npvfb47wdjj2h"; depends=[MASS matrixStats MCMCpack]; };
   sjPlot = derive2 { name="sjPlot"; version="2.8.10"; sha256="1rnwhh271xj8xgvvlpqw9ain56mfz37fvl7f6jq9nzx9jxx95bjd"; depends=[bayestestR datawizard dplyr effectsize ggeffects ggplot2 insight knitr MASS parameters performance purrr rlang scales sjlabelled sjmisc sjstats tidyr]; };
-  sjSDM = derive2 { name="sjSDM"; version="1.0.0"; sha256="1jswpi6m0yhq5vf9s6mxg36fi9ig8cs8zbm6yj56khyi3q159lw8"; depends=[abind checkmate cli crayon ggplot2 mathjaxr Metrics mgcv mvtnorm reticulate rstudioapi Ternary]; };
+  sjSDM = derive2 { name="sjSDM"; version="1.0.1"; sha256="0ifr1pz8mcs91k621hiqvs9ianvblh1c8ml30gvb74yhjw6a9p50"; depends=[abind checkmate cli crayon ggplot2 ggtern mathjaxr Metrics mgcv mvtnorm reticulate rstudioapi Ternary]; };
   sjdbc = derive2 { name="sjdbc"; version="1.6.1"; sha256="0cz5qc5lsipd3nlkzj8j03xmpzxp52c3q5av8pr7fm3vsdclawfk"; depends=[rJava]; };
   sjlabelled = derive2 { name="sjlabelled"; version="1.1.8"; sha256="17gskxr43rgbg7syla3b78g2qgksq2kj07iad4139xycqxblxya0"; depends=[insight]; };
   sjmisc = derive2 { name="sjmisc"; version="2.8.9"; sha256="1gzkq95ckxr0vhrzggflzli9hs7zr8c0yym9zn1wf74yrr0mgc3q"; depends=[dplyr insight magrittr purrr rlang sjlabelled tidyselect]; };
@@ -16831,7 +16879,7 @@ in with self; {
   smog = derive2 { name="smog"; version="2.1.0"; sha256="1mnnvp6crjwwiym16q4hmn9zwna1gblwqjlan4x9zyvgp1j70k26"; depends=[doParallel dplyr foreach ggplot2 magrittr Rcpp RcppArmadillo Rdpack rmarkdown tidyr]; };
   smoke = derive2 { name="smoke"; version="2.0.0"; sha256="1jdl5swg66vqryd40rrqpsnkczmsiaf5x6vlfv774vbnrc6q2v2g"; depends=[Rdpack]; };
   smoof = derive2 { name="smoof"; version="1.6.0.2"; sha256="14zwrsyhbrwggwiaq8vxps8cgkp6glb14b2cp2ph1ppa0abvlbfq"; depends=[BBmisc checkmate ggplot2 mco ParamHelpers plot3D plotly RColorBrewer Rcpp RcppArmadillo RJSONIO]; };
-  smooth = derive2 { name="smooth"; version="3.1.5"; sha256="0xqb1dj24vwcfnjyfn599y0yfimd4g6d9a7g4bs7wlqfh7zzmd0y"; depends=[greybox MASS nloptr pracma Rcpp RcppArmadillo statmod zoo]; };
+  smooth = derive2 { name="smooth"; version="3.1.6"; sha256="0gkzplb5my4xiyf7jwq3cd1hzvjrpjy20zkvx003cxi4qn4vv93c"; depends=[generics greybox MASS nloptr pracma Rcpp RcppArmadillo statmod zoo]; };
   smoothAPC = derive2 { name="smoothAPC"; version="0.3"; sha256="11f34qqdm8m0hmy9jf29q439slchvmqgdfrmak7vcdhfnjcylr5r"; depends=[colorspace lmtest quantreg rgl SparseM]; };
   smoothHR = derive2 { name="smoothHR"; version="1.0.3"; sha256="0kqj27vsxdiy0fjn0h94lhzw7hjm6qqnzcvhz15iyssl2d2hzxvg"; depends=[survival]; };
   smoothROCtime = derive2 { name="smoothROCtime"; version="0.1.0"; sha256="03iihjxb5xdaf74cm9cajqqjli754mdmv5v1y4hla9vv23017ca1"; depends=[ks]; };
@@ -16882,6 +16930,8 @@ in with self; {
   social = derive2 { name="social"; version="1.0"; sha256="0ny81bhj80rlwwa6cgbkdz2rxz6bp0f3nvjr1sqxr4s8l8rnf4ic"; depends=[Rcpp]; };
   socialh = derive2 { name="socialh"; version="0.1.0"; sha256="03ms1plsrs7lhxh4fb2kwrhayly4f53q61czzycjmbfp83fg1xmj"; depends=[data_table dplyr magrittr]; };
   socialmixr = derive2 { name="socialmixr"; version="0.1.8"; sha256="0zhinhjv1ablhdyz41a1ii1s3mzqg8f2ns7xcjnlwa9fx364x5a2"; depends=[countrycode curl data_table httr jsonlite lubridate oai stringr wpp2015 XML]; };
+  socialranking = derive2 { name="socialranking"; version="0.1.0"; sha256="15s7b41z2gd54wp2y5gcfmrrvzjwdddnwhfd72qxhxnjgwnq62v3"; depends=[mathjaxr Rdpack relations rlang sets]; };
+  socialrisk = derive2 { name="socialrisk"; version="0.5.0"; sha256="049ambqpq50c20x1z0rjzi77i9n3mq5rbhsvfkwflq61i9j8mai9"; depends=[devtools dplyr magrittr rlang stringr tidyr tidyselect tidyverse]; };
   sociome = derive2 { name="sociome"; version="2.1.0"; sha256="0dh20mx3jbyy2bkrdz1w0sihdfhpfvc5p0i0x9q0azcpln51rv5k"; depends=[censusapi dplyr magrittr mice psych purrr rlang stringr tidycensus tidyr]; };
   socviz = derive2 { name="socviz"; version="1.2"; sha256="1294xwy26vshmaiw3pkx3f90j8g6fv64gygv88b7lnz6fhai1nq5"; depends=[dplyr fs magrittr rlang tibble]; };
   sodavis = derive2 { name="sodavis"; version="1.2"; sha256="1jf5sml51qxlpgv5b1rvyig4dm4ijw2hpnk85zf790jp22xm64jw"; depends=[MASS mvtnorm nnet]; };
@@ -16889,7 +16939,7 @@ in with self; {
   sofa = derive2 { name="sofa"; version="0.4.0"; sha256="1w78f8pnx4vh6znpwwcy9k4j795zji4bv88mi6ihdv09ar7if7yv"; depends=[crul jsonlite mime R6]; };
   softImpute = derive2 { name="softImpute"; version="1.4-1"; sha256="1v2a4d688ij5zcvkzpra9yx40xckdfnllnfnyq2450zf3n1kjk7a"; depends=[Matrix]; };
   softclassval = derive2 { name="softclassval"; version="1.0-20160527"; sha256="1f5qj5sajy3dg0mgss6f9w6v5a2prcypld9jcv457bd4n4a409kr"; depends=[arrayhelpers svUnit]; };
-  soilDB = derive2 { name="soilDB"; version="2.6.13"; sha256="1g8bk4pwahhhj809py4k13vb3kbvw04iwy8f17gag2fhi8s58sp0"; depends=[aqp curl data_table DBI raster sp xml2]; };
+  soilDB = derive2 { name="soilDB"; version="2.6.14"; sha256="1pgz6vwap5p1wasyqx8k93pwrmgg8n66h4rz6asdfk172fxs0j62"; depends=[aqp curl data_table DBI raster sp xml2]; };
   soilassessment = derive2 { name="soilassessment"; version="0.2.3"; sha256="0fcjw6zl6cvk94hyhqqra6xpnrh8s7wr9va4yknlv5rf0km2vgd2"; depends=[arm caret Cubist deSolve e1071 FuzzyAHP googledrive Hmisc kernlab nnet png qrnn quantregForest randomForest ranger raster rgdal rpart soiltexture sp]; };
   soilhypfit = derive2 { name="soilhypfit"; version="0.1-5"; sha256="07hk7p2gr8an1r295dyj1hpp23103x9qjpscrhlz917p5nr9ix4d"; depends=[mgcv nloptr quadprog Rmpfr snowfall SoilHyP]; };
   soilphysics = derive2 { name="soilphysics"; version="4.1"; sha256="1kq92vq45knfag49yvphpcjwp29g2hp0xayhdq8lr20sis7h1y72"; depends=[boot fields MASS shiny shinydashboard]; };
@@ -16922,7 +16972,7 @@ in with self; {
   sorocs = derive2 { name="sorocs"; version="0.1.0"; sha256="0gy23rldhnlz6jmf9rdzl4mmfkn5gjcavq2jfcz6dgjafl3v9vgl"; depends=[MASS MCMCpack mvtnorm]; };
   sortable = derive2 { name="sortable"; version="0.4.5"; sha256="1ibycrk9n5pcd6dqc02g52m6b9aanmsjnm0dgwb8l20x0hwnfzd3"; depends=[assertthat ellipsis htmltools htmlwidgets jsonlite learnr rlang shiny]; };
   sorvi = derive2 { name="sorvi"; version="0.7.26"; sha256="19lfrc4bdiljs437w3a2bpf7abnkv0934dh929bbj2w1w8rzghjn"; depends=[dplyr ggplot2 RColorBrewer reshape2]; };
-  sos = derive2 { name="sos"; version="2.1-0"; sha256="14wbq7vkzn4bjx3zpg29vn1n6wz9117rn2lwxi9dj45kzccp7a94"; depends=[brew]; };
+  sos = derive2 { name="sos"; version="2.1-4"; sha256="0qa8plmdn4rky4i5gvgm4gny8nfvcd0hql7c5vlpwr4i2x1gid9p"; depends=[brew]; };
   sotkanet = derive2 { name="sotkanet"; version="0.9.79"; sha256="1d6g09rf7irk3d8hkm6ahp8zl6lj24jnipwvzr0njx2sqi3fwd4f"; depends=[curl httr jsonlite]; };
   sotu = derive2 { name="sotu"; version="1.0.2"; sha256="0aqwkawaydsm91hz13msjg1a5llg7xmv6hxmfmsaganrl7iaym3c"; depends=[]; };
   sound = derive2 { name="sound"; version="1.4.5"; sha256="1kbbb614d0fmj9l0yjiwf5yqnl7sby4xklp7qwp6rwjvq9bnm0ab"; depends=[]; };
@@ -16943,34 +16993,35 @@ in with self; {
   spData = derive2 { name="spData"; version="2.0.1"; sha256="1z4hp5ivwzyvl8mkp98j2ng1cl1xksqbjxv85vdlqfqjwpia6df6"; depends=[raster sp]; };
   spDates = derive2 { name="spDates"; version="1.0"; sha256="0bf9bwi26h26ms0lczk1dld3cwgnx49y6g56sqwrkagn7w6blsrn"; depends=[data_table dplyr gdistance ggplot2 gstat magrittr raster rcarbon rlang smatr sp viridisLite]; };
   spFSR = derive2 { name="spFSR"; version="1.0.0"; sha256="0094plnjlyhnnjqw3i4an5q95bw6hjy1gzc7zr6wy77faivqsbms"; depends=[class ggplot2 mlbench mlr parallelMap tictoc]; };
+  spFW = derive2 { name="spFW"; version="0.1.0"; sha256="1d00a01mnwc7lcnqgz2dfglhwqwhh9vm4yd904zq3s26zv4qapyf"; depends=[Rcpp RcppArmadillo]; };
   spGARCH = derive2 { name="spGARCH"; version="0.2.2"; sha256="1wrmk2ybgysvibfy8vvp7pyqda5apqp0jxjfp3hlb416fza52966"; depends=[Matrix nleqslv Rcpp RcppEigen Rsolnp spdep truncnorm]; };
   spMC = derive2 { name="spMC"; version="0.3.11"; sha256="06lfc4hk5kn1f1fak0ckpnad0c5b0yxb20cnm0j0hyxpv0qbxhj1"; depends=[]; };
   spMaps = derive2 { name="spMaps"; version="0.4.0"; sha256="0n9693aam7gsclfhijq7cy61l0w4mm5vf3rjaz5w0jrz77lrkprh"; depends=[raster rgeos sp]; };
-  spNNGP = derive2 { name="spNNGP"; version="0.1.6"; sha256="12ys92r2xpmnhy6hw8sldcz0y28gnxpwnj6sm5jc1lfyz7k1ww6f"; depends=[coda Formula RANN]; };
-  spNetwork = derive2 { name="spNetwork"; version="0.2.1"; sha256="0hmg68v5a7d1ixwj9nvh7kd948r7kspar6nd3yp02mgj495ps1z8"; depends=[BH cubature data_table future_apply ggplot2 igraph maptools progressr raster Rcpp RcppArmadillo RcppProgress Rdpack rgeos SearchTrees sp spdep]; };
-  spOccupancy = derive2 { name="spOccupancy"; version="0.2.1"; sha256="12fpi7ijk1qlhdq280r352aqlymmkis1nbfjbqqr9kkrl141zi56"; depends=[abind coda doParallel foreach lme4 RANN spBayes]; };
+  spNNGP = derive2 { name="spNNGP"; version="0.1.7"; sha256="05pvjfckwindvaq96b4kmyavfkk93988xcizlqmkp9f3vqvxrr69"; depends=[coda Formula RANN]; };
+  spOccupancy = derive2 { name="spOccupancy"; version="0.3.0"; sha256="1lk1ipawlxxb4hm4r6zjnzjsdx6v1zhlqk4j77abxsb561517g9b"; depends=[abind coda doParallel foreach lme4 RANN spBayes]; };
   spRingsteen = derive2 { name="spRingsteen"; version="0.0.1"; sha256="0dhrwnns06jqzqbc5mc7bjgs98xkcq591nm6scayxm34mqs3k47m"; depends=[]; };
   spTDyn = derive2 { name="spTDyn"; version="2.0.1"; sha256="1wprn2adw4l5pkwkfzdpcr07jxgycx9kaf8w8mfv27nka5hacgqx"; depends=[coda sp spacetime spTimer]; };
   spThin = derive2 { name="spThin"; version="0.2.0"; sha256="0j10j1cbbwp3baqm3b59rxlnd643mkx1mirlxpnr1ad2g7xpm69f"; depends=[fields knitr spam]; };
   spTimer = derive2 { name="spTimer"; version="3.3.1"; sha256="0lf39n32ifsmbcf35h0g60xniw72mlrzvzax3k6kz5c5k1wszlba"; depends=[coda extraDistr sp spacetime]; };
-  spaMM = derive2 { name="spaMM"; version="3.10.0"; sha256="0wlavsaf2k3qxj2n4c9c2y9x110i43yqn4140qk9d0vx397yfvsd"; depends=[boot crayon gmp MASS Matrix minqa nlme nloptr pbapply proxy Rcpp RcppEigen ROI]; };
+  spaMM = derive2 { name="spaMM"; version="3.11.3"; sha256="1f3w2rixv6fflbinnjhla48kcggqxq93ljrn14kwzs27bfq08d25"; depends=[boot crayon geometry gmp MASS Matrix minqa nlme nloptr pbapply proxy Rcpp RcppEigen ROI]; };
   spaa = derive2 { name="spaa"; version="0.2.2"; sha256="163iipz1knxx1lzby9a3n1f014yqkf25z1wpwwy4gbx7sia499d5"; depends=[]; };
   space = derive2 { name="space"; version="0.1-1.1"; sha256="09dpksbda4lg5hax47a9h9shjmggza6583slvdj0fldblykpyxck"; depends=[]; };
   spaceNet = derive2 { name="spaceNet"; version="1.2"; sha256="1s2672icxs0qvdhl52xhllgvh1i9mjfrn5j3icyw6h61ljbnhy11"; depends=[MASS mclust permute RcppTN Rfast sna vegan]; };
   spacefillr = derive2 { name="spacefillr"; version="0.3.0"; sha256="0c4yasc1zizjmhd2ciyz86lg76fsrxvl19yjkb2fmkda9rmnc0bf"; depends=[Rcpp]; };
-  spacejamr = derive2 { name="spacejamr"; version="0.2"; sha256="1hyf4wmwfjlw3qh3rw3wq94slybrpm2zmmcfgy7gqcycmfddrg8w"; depends=[crsuggest dplyr ggplot2 ggraph ggthemes igraph magrittr sf spatstat_geom spatstat_random]; };
+  spacejamr = derive2 { name="spacejamr"; version="0.2.1"; sha256="05rprsgnihhz3xhh7p9mkn4scpi318kvrkkrrw9j645d6bwfms5l"; depends=[crsuggest dplyr ggplot2 ggraph ggthemes igraph magrittr sf spatstat_geom spatstat_random]; };
   spacesRGB = derive2 { name="spacesRGB"; version="1.4-0"; sha256="1py93g7wglszcrkm09y0am2iia972q0jbgwb2wmickw3xsgip8p5"; depends=[]; };
-  spacesXYZ = derive2 { name="spacesXYZ"; version="1.1-1"; sha256="1jxwhpnfbqa2nz86l8sdxxj3qmasw1wmbii7wr8sqp2819jr5lnd"; depends=[]; };
+  spacesXYZ = derive2 { name="spacesXYZ"; version="1.2-1"; sha256="02czblryvr8072q0gbm121cl2x2hir582khxrd2qyv05pv36kz3d"; depends=[]; };
   spacetime = derive2 { name="spacetime"; version="1.2-6"; sha256="10fxs37bky52wr3ba4vzwy7nxych9004139n377gz2cmxl36dm4g"; depends=[intervals lattice sp xts zoo]; };
   spacey = derive2 { name="spacey"; version="0.1.1"; sha256="1p8kx3d08q9kz1wb286m3d8ckwkhfm5n42m65m4w5gz5kpfx0xfz"; depends=[httr jsonlite magrittr png raster rayshader rgdal]; };
   spacyr = derive2 { name="spacyr"; version="1.2.1"; sha256="1b2ccgwsiqkvp7w37x8k7699c676q16vfrybkrfvyczyhki4s6nw"; depends=[data_table reticulate]; };
   spaero = derive2 { name="spaero"; version="0.6.0"; sha256="0xigwi6w21y2fwicml0s2gylwnwp2qvrqskr0v8rd3bn01hg9ja3"; depends=[]; };
+  spagmix = derive2 { name="spagmix"; version="0.3-5"; sha256="0rjdsg1pl8vpbcyyiqaqgc10h3i0q8xqivpawfaw43ybz15csnzl"; depends=[abind mvtnorm RandomFields sparr spatstat spatstat_core spatstat_geom spatstat_linnet spatstat_random]; };
   spam = derive2 { name="spam"; version="2.8-0"; sha256="1ann2a2ifr3z983fcg1c0pkgmbxz6a0ym5q1dmq1r382bd1pg0fr"; depends=[dotCall64]; };
   spam64 = derive2 { name="spam64"; version="2.8-0"; sha256="105h8j1ps2g79csbhwfchfdfxhqbbs793pxk3hqln57p6nap74i6"; depends=[]; };
   spamtree = derive2 { name="spamtree"; version="0.2.2"; sha256="1z1dyv6cvcdilqyfpzgl3zr0jmzjn2sznrvypvxx7c8i6qfq8nd0"; depends=[dplyr FNN magrittr Rcpp RcppArmadillo rlang tibble]; };
   spanel = derive2 { name="spanel"; version="0.1"; sha256="1riyvvfij277mclgik41gyi01qv0k466wyk2wbqqhlvrlj79yzsc"; depends=[]; };
   spanish = derive2 { name="spanish"; version="0.4.2"; sha256="15drc11lh0qxpww50p0smi8qxfbln82bx0yd74jqf71irhk5jxyp"; depends=[magrittr xml2]; };
-  spant = derive2 { name="spant"; version="1.19.0"; sha256="12cnf8s4xzw4qvhc3i10mch2pck9rini5qkvjg19264p4rwh0xpd"; depends=[abind expm fields foreach irlba jsonlite magrittr minpack_lm mmand nloptr numDeriv plyr pracma ptw RNifti RNiftyReg signal smoother stringr]; };
+  spant = derive2 { name="spant"; version="1.20.0"; sha256="0bsq3fnhsl9cpvh0z9jv2f3fg2336av12ngc2wisn74bw5r32kwy"; depends=[abind expm fields irlba jsonlite magrittr minpack_lm mmand nloptr numDeriv plyr pracma ptw RNifti RNiftyReg signal smoother stringr]; };
   sparcl = derive2 { name="sparcl"; version="1.0.4"; sha256="138krflvfdlx4hlh90mswds51i8aw2vv00gm5lgkfsvxj4w324jg"; depends=[]; };
   spark_sas7bdat = derive2 { name="spark.sas7bdat"; version="1.4"; sha256="1s1hd6hvjxnfb3w10v93pggijmm2h4rcsf7ckl34j2sw9bvv7zka"; depends=[sparklyr]; };
   sparkavro = derive2 { name="sparkavro"; version="0.3.0"; sha256="0g6ac9msfbx8f8j8rj0hvlxjsn317zyam207q7i8kf0hshs1r58f"; depends=[DBI dplyr sparklyr]; };
@@ -16999,7 +17050,6 @@ in with self; {
   sparseMatEst = derive2 { name="sparseMatEst"; version="1.0.0"; sha256="06y061zl6id7cfw3cqzvwykzlijmala8hj61i04mgc491ngybimv"; depends=[glasso]; };
   sparseSEM = derive2 { name="sparseSEM"; version="2.5"; sha256="0ig8apsi94kvbcq3i8nzmywbdizlss7c6r9bppcyl9lxgikc3cds"; depends=[]; };
   sparseSVM = derive2 { name="sparseSVM"; version="1.1-6"; sha256="0b0qiikjyyh9qfd4jl69zqnlp7adxq63mwsxvgwvyc0pv5ccg8i0"; depends=[]; };
-  sparsebn = derive2 { name="sparsebn"; version="0.1.2"; sha256="1b1601n3nmxck6a27xqxpsa79p4xnz7yyzdfqiddn9zd2b4v9wc5"; depends=[ccdrAlgorithm discretecdAlgorithm sparsebnUtils]; };
   sparsebnUtils = derive2 { name="sparsebnUtils"; version="0.0.8"; sha256="1x1phd33r3ci72sbm0pkmigwbi4x59pdz8n5919119mkxdf740vs"; depends=[Matrix nnet]; };
   sparsediscrim = derive2 { name="sparsediscrim"; version="0.3.0"; sha256="1fzvki3az1y5bz6d7lygv3hjbzn17gq8g2s7xqmldlpq1v4dhjar"; depends=[bdsmatrix corpcor dplyr ggplot2 mvtnorm rlang]; };
   sparsegl = derive2 { name="sparsegl"; version="0.3.0"; sha256="0aiaspl9sybyg7sa9pzmnrbjdvxplsmzip0v5imrmqvjszrkbrf8"; depends=[assertthat dotCall64 ggplot2 magrittr Matrix rlang RSpectra tidyr]; };
@@ -17013,7 +17063,7 @@ in with self; {
   sparsevar = derive2 { name="sparsevar"; version="0.1.0"; sha256="1kcy6bm04mccky529nryy5l001bv71hx304ysiabl4myakw0rwy7"; depends=[corpcor doParallel ggplot2 glmnet Matrix mvtnorm ncvreg picasso reshape2]; };
   sparsevb = derive2 { name="sparsevb"; version="0.1.0"; sha256="1cigq8hwymrrkiy3iyrxsjjbj228ahrd7mq9lqar4jlb925jzqx4"; depends=[glmnet Rcpp RcppArmadillo RcppEnsmallen selectiveInference]; };
   sparsio = derive2 { name="sparsio"; version="1.0.1"; sha256="181kzs9x3h497c7shfalbzrjz05bkj7mmjh9nyphxyi2jjrr6y1q"; depends=[Matrix Rcpp]; };
-  sparta = derive2 { name="sparta"; version="0.8.3"; sha256="0p5a7h278f7lfikp7rayjzjngich3zi8dhn4an5qkkz1jbl2wic6"; depends=[Rcpp RcppArmadillo]; };
+  sparta = derive2 { name="sparta"; version="0.8.3.1"; sha256="1rgg9x2p5qwah1ndfsrxd736igjlj2p2k8fc413zpiix0s66nr16"; depends=[Rcpp RcppArmadillo]; };
   spass = derive2 { name="spass"; version="1.3"; sha256="1c148z0i3d185hnf54xmgppjrblv3b2s3sm0lmj78gvav04mj5s4"; depends=[geepack MASS multcomp mvtnorm Rcpp]; };
   spatPomp = derive2 { name="spatPomp"; version="0.29.0.0"; sha256="1d3k5m2rlpn1hgpjxb9qx4hz3bl96ch8hmc06lj9jd6awdspdvf5"; depends=[abind dplyr foreach magrittr pomp rlang stringr tidyr]; };
   spatgraphs = derive2 { name="spatgraphs"; version="3.2-2"; sha256="09bbcqgmbg6a65mnxivr4pghsanj22x1j0l4hq8bzpwgbas7byhy"; depends=[Matrix Rcpp]; };
@@ -17029,30 +17079,30 @@ in with self; {
   spatialreg = derive2 { name="spatialreg"; version="1.2-1"; sha256="10d0gd21s84r7d5i1h62zavb40ws9c6vikrk8qjii25a66rvch2c"; depends=[boot coda expm gmodels LearnBayes MASS Matrix nlme sf spData spdep]; };
   spatialrisk = derive2 { name="spatialrisk"; version="0.7.0"; sha256="0mqi8jrz1msk2aaza67vfp9s21f372mhvbivwxy56fxrl7vp975v"; depends=[classInt colourvalues data_table dplyr fs GenSA geohashTools ggplot2 leafem leafgl leaflet lubridate Rcpp RcppProgress sf tmap units viridis]; };
   spatialsample = derive2 { name="spatialsample"; version="0.1.0"; sha256="0w57pl09pamx8mmrwyj2hixxqp9cf0xg06gvsrrg4abjbkj0i1pr"; depends=[dplyr purrr rlang rsample tibble tidyselect vctrs]; };
-  spatialwarnings = derive2 { name="spatialwarnings"; version="3.0.2"; sha256="1yng9sxhqm04vliwz4jifqsqhvg1nk0icb6j21kp4cfwz81q2s2a"; depends=[future future_apply ggplot2 gsl plyr Rcpp RcppArmadillo segmented]; };
+  spatialwarnings = derive2 { name="spatialwarnings"; version="3.0.3"; sha256="03a0gb8v6028v6q5w3iap8fn9nkb2rpnabqgzmr2dyxnpfgr9dn3"; depends=[future future_apply ggplot2 gsl plyr Rcpp RcppArmadillo segmented]; };
   spatialwidget = derive2 { name="spatialwidget"; version="0.2.3"; sha256="0j0v0cyqndlg9p7g03gp1br9b2i3p50abzpw67k3cawm96a87crj"; depends=[BH colourvalues geojsonsf geometries jsonify rapidjsonr Rcpp sfheaders]; };
   spatsoc = derive2 { name="spatsoc"; version="0.1.16"; sha256="1pyw6606kwskgcfnzvgzvy8n4i9s3mmn1789d1lhk04h14r33fns"; depends=[adehabitatHR data_table igraph rgeos sp]; };
-  spatstat = derive2 { name="spatstat"; version="2.3-3"; sha256="0skk377fw448gvdk6jkcviqbqdjn2vdz19vfk8aiilxax4xba1hr"; depends=[spatstat_core spatstat_data spatstat_geom spatstat_linnet spatstat_random spatstat_utils]; };
+  spatstat = derive2 { name="spatstat"; version="2.3-4"; sha256="1nlrp7660y68axlm4pczc5rxbdhbbac1ylh69azr4swj1gbzi82f"; depends=[spatstat_core spatstat_data spatstat_geom spatstat_linnet spatstat_random spatstat_utils]; };
   spatstat_Knet = derive2 { name="spatstat.Knet"; version="2.0-1"; sha256="1mxynbk5sclf94fbrf6vicc48hwmdpxhyxylcmpmlqji4nhs97vx"; depends=[Matrix spatstat spatstat_core spatstat_data spatstat_geom spatstat_linnet spatstat_random spatstat_sparse spatstat_utils]; };
-  spatstat_core = derive2 { name="spatstat.core"; version="2.4-0"; sha256="1dx6fh6l3bqxqfaczm9gxx1sirmdpx8biag462pj9wjqmw9m4j35"; depends=[abind goftest Matrix mgcv nlme rpart spatstat_data spatstat_geom spatstat_random spatstat_sparse spatstat_utils tensor]; };
-  spatstat_data = derive2 { name="spatstat.data"; version="2.1-2"; sha256="1r8s4xl25xr71h4g5qqi5y370h2ik3kz5fb4qyml2b6dwsl1ildv"; depends=[Matrix spatstat_utils]; };
-  spatstat_geom = derive2 { name="spatstat.geom"; version="2.3-2"; sha256="0aihimb4r6hmk3g7764d3b43a0znf9bzmc96i1lkqq9hwabj7151"; depends=[deldir polyclip spatstat_data spatstat_utils]; };
+  spatstat_core = derive2 { name="spatstat.core"; version="2.4-2"; sha256="0bhdxyw212yf9y9nsvbz4yy08ka3wr3hkjqpag0ys2s1p22c51b9"; depends=[abind goftest Matrix mgcv nlme rpart spatstat_data spatstat_geom spatstat_random spatstat_sparse spatstat_utils tensor]; };
+  spatstat_data = derive2 { name="spatstat.data"; version="2.1-4"; sha256="0bq9randa3lgkh2q932iss5cxazq743q6p8asiqqf0yi32b003jq"; depends=[Matrix spatstat_utils]; };
+  spatstat_geom = derive2 { name="spatstat.geom"; version="2.4-0"; sha256="0rwysq9a0ylbsr53q5kfh7wjk5mcdji211sc3s8gwzz8ki09mf1j"; depends=[deldir polyclip spatstat_data spatstat_utils]; };
   spatstat_gui = derive2 { name="spatstat.gui"; version="2.0-1"; sha256="1snvy4q0w4yn24n2yxyqvdi70i70zpqa7q13cm38d9135hm35cgk"; depends=[rpanel spatstat spatstat_core spatstat_data spatstat_geom spatstat_linnet spatstat_random spatstat_utils]; };
   spatstat_linnet = derive2 { name="spatstat.linnet"; version="2.3-2"; sha256="0y1py6x0xbw4ad3pjwcspi4ysgfh61f5fd79787zzgyyh2va8y4w"; depends=[Matrix spatstat_core spatstat_data spatstat_geom spatstat_random spatstat_sparse spatstat_utils]; };
-  spatstat_local = derive2 { name="spatstat.local"; version="4.1-4"; sha256="07hmjxrq7k3z43l4f0a141alcg787xhqgl8skk405s1g29xzpnyc"; depends=[spatstat spatstat_core spatstat_data spatstat_geom spatstat_random spatstat_sparse spatstat_utils tensor]; };
-  spatstat_random = derive2 { name="spatstat.random"; version="2.1-0"; sha256="0ggzl64iqf7b6n81ga66wb01sm4rmzrbimv2pmgy047mjnqsnpq4"; depends=[spatstat_data spatstat_geom spatstat_utils]; };
+  spatstat_local = derive2 { name="spatstat.local"; version="4.1-5"; sha256="0iq2xppfxp9aa3878z3l4q13qqzn3hg5v7cfv8z8m1mzmnw1r1y8"; depends=[spatstat spatstat_core spatstat_data spatstat_geom spatstat_random spatstat_sparse spatstat_utils tensor]; };
+  spatstat_random = derive2 { name="spatstat.random"; version="2.2-0"; sha256="0kb01s8k67ydcfqcnz3i55vpiksihh4xsg0w2p2bclxxkpdvpw25"; depends=[spatstat_data spatstat_geom spatstat_utils]; };
   spatstat_sparse = derive2 { name="spatstat.sparse"; version="2.1-0"; sha256="148fxbxss569w73xaqpzwpz9rfjdgznh2ngf06gvm33631222680"; depends=[abind Matrix spatstat_utils tensor]; };
   spatstat_utils = derive2 { name="spatstat.utils"; version="2.3-0"; sha256="06nvn2ffyrskhzaavsy6lmdp0m8askkrp1fnwrhjsj01lbjnq2az"; depends=[]; };
   spatsurv = derive2 { name="spatsurv"; version="1.7"; sha256="01666mp43p0cv0hsn3wbv5vbb4gyjk506spff9ps119bcpqnwqjr"; depends=[fields iterators lubridate Matrix RandomFields raster RColorBrewer rgeos sp spatstat spatstat_core spatstat_geom spatstat_random stringr survival]; };
   spbabel = derive2 { name="spbabel"; version="0.5.5"; sha256="0yfkz28nfvl3rm0bxljb3y19zhnx7pabxy81d835pbfmjq5vvp51"; depends=[dplyr rlang sp tibble]; };
-  spc = derive2 { name="spc"; version="0.6.5"; sha256="1s9f67m3a52mzk5s6hh9jv80m721s0z43x2qj2d4ski2jwqw0iyr"; depends=[]; };
+  spc = derive2 { name="spc"; version="0.6.6"; sha256="0crgbpxf3sqbw48fs8fji4z7dd1sc9nkwxm4frf7rgx3aix71cxk"; depends=[]; };
   spc4sts = derive2 { name="spc4sts"; version="0.5.5"; sha256="14398a65fpdjlr39lwivin551m31mcr5hx47fx2dx7sklq8kr2bg"; depends=[gridExtra LS2Wstat rpart]; };
   spcadjust = derive2 { name="spcadjust"; version="1.1"; sha256="016i3zaaq800x4niz4fixa57nfj1m10sz5xskff4vq4v9fjn2sl0"; depends=[]; };
   spcosa = derive2 { name="spcosa"; version="0.4-0"; sha256="0aszpwhf4ww6kb7r75i17kf6mqy9cx021b0w5dzd6185p57g6sxv"; depends=[ggplot2 rJava sp]; };
   spcov = derive2 { name="spcov"; version="1.01"; sha256="1brmy64wbk56bwz9va7mc86a0ajbfy09qpjafyq2jv7gm7a35ph5"; depends=[]; };
   spcr = derive2 { name="spcr"; version="2.1"; sha256="08lpcj49sj0bc2vz54wigdb9dqn182c11q31n3sdkc41spgk0s7a"; depends=[]; };
   spd = derive2 { name="spd"; version="2.0-1"; sha256="00zxh4ri47b61jkcjf5idl9hhlfld6rhczsnhmjsax59884f2i8m"; depends=[KernSmooth]; };
-  spdep = derive2 { name="spdep"; version="1.2-2"; sha256="08sya6vy7s87h337g2fanncw6xx9y9z8nxpqalbdxv9vpsc6zx4l"; depends=[boot deldir e1071 s2 sf sp spData units]; };
+  spdep = derive2 { name="spdep"; version="1.2-3"; sha256="0qd7qjblx49gp07pcf4qb2f93ab3p126pa77g6mq4z3jaa510hak"; depends=[boot deldir e1071 s2 sf sp spData units]; };
   spdownscale = derive2 { name="spdownscale"; version="0.1.0"; sha256="0pl560km9629iwy13h7359ab7ixzs09hg986kvk0xbnc348srb86"; depends=[]; };
   spdplyr = derive2 { name="spdplyr"; version="0.4.0"; sha256="0lijp78wgrky103137vfk3k4s051qppd6jq6s065k9i7y1azbpc1"; depends=[dplyr rlang sp spbabel tibble]; };
   spduration = derive2 { name="spduration"; version="0.17.1"; sha256="1hsz4hcw85f1rj2pd8ppzsd1r8fh4yf6axc11yf2hd287ghzzxzy"; depends=[corpcor forecast MASS plyr Rcpp RcppArmadillo separationplot xtable]; };
@@ -17063,24 +17113,22 @@ in with self; {
   spec = derive2 { name="spec"; version="0.1.7"; sha256="0zgs9yki11wysvjnx88gl8iv0mcsbrasg29sbasp0855x5l8cg8k"; depends=[csv encode magrittr]; };
   speccalt = derive2 { name="speccalt"; version="0.1.1"; sha256="0j7rbidmmx78vgwsqvqjbjjh92fnkf2sdx0q79xlpjl2dph7d6l6"; depends=[]; };
   specklestar = derive2 { name="specklestar"; version="0.0.1.7"; sha256="04vm989yi31vqnf5rs6cdyikm4jzfd9njxh0ls3dvjrg19ipsnmn"; depends=[Rcpp]; };
-  specmine = derive2 { name="specmine"; version="3.1.6"; sha256="0ik3nsb9mrja6709fwsf97f9qbf7lmmyc2zqrm7398h3mibf64l7"; depends=[baseline caret compare e1071 ellipse genefilter GGally ggplot2 impute imputeTS MASS Metrics mrbin narray pcaPP plotly pls RColorBrewer readJDX speaq specmine_datasets]; };
-  specmine_datasets = derive2 { name="specmine.datasets"; version="0.0.2"; sha256="0amqb4qy5ac1jc4g95sf4678ll3xhscyrcxq6pgh8imfyk1ifrmx"; depends=[xcms]; };
   specr = derive2 { name="specr"; version="0.2.1"; sha256="17bc7f644g40zsfxv3sw542piqgg09w3m3q14jgrifc8sw0ljvdf"; depends=[broom cowplot dplyr ggplot2 ggraph glue igraph lme4 magrittr purrr rlang tibble tidyr]; };
   specs = derive2 { name="specs"; version="0.1.1"; sha256="0x5s7aikj5x1dgxygizh2mcni74hy6dm7084h1pqqbh5ans00c6n"; depends=[Rcpp RcppArmadillo]; };
   spectacles = derive2 { name="spectacles"; version="0.5-3"; sha256="0fwj4407dwpvbjhjqwfxb455698ifyramwyddw4jrzgaf11vc4ii"; depends=[baseline epiR ggplot2 plyr reshape2 signal stringr]; };
-  spectator = derive2 { name="spectator"; version="0.1.0"; sha256="1s18yzqmh67c3xdsi2vw9fl8p3nkgdf5xfkkf0f8ljqvhn19v3rm"; depends=[geojsonsf httr sf]; };
+  spectator = derive2 { name="spectator"; version="0.1.1"; sha256="0c3rk4nh3fdk49mazsbzqdq0wa0pznib567b0h915hv5i8kdsl5q"; depends=[geojsonsf httr sf]; };
   spectr = derive2 { name="spectr"; version="1.0.1"; sha256="1jbadg9n42qrbw1v6hqrdp5pzy2nn1kvqi4xscxdxvc6c33i7zr4"; depends=[data_table foreach lomb]; };
   spectral = derive2 { name="spectral"; version="2.0"; sha256="116gn41nvlw7jmr6qx9pl8hckg2pzgzx49kql52j5xqf39sgyx9p"; depends=[lattice pbapply rasterImage RhpcBLASctl]; };
   spectralAnalysis = derive2 { name="spectralAnalysis"; version="3.12.0"; sha256="0mz01hx86qi65k6vzz9k1j9q7gi10dh14cqvrlfy93f3kmi52q0x"; depends=[baseline BiocGenerics data_table ggplot2 hNMF jsonlite magrittr NMF nnls plotly plyr RColorBrewer signal viridis]; };
   spectralGP = derive2 { name="spectralGP"; version="1.3.3"; sha256="1jf09nsil4r90vdj7n1k6ma9dzzx3bwv0fa7svil9pxrd2zlbkbs"; depends=[]; };
-  spectralGraphTopology = derive2 { name="spectralGraphTopology"; version="0.2.0"; sha256="02j374zsz4ba8ldy52x43rih1p77b56cv5xlbycj5wmkzny2gzx1"; depends=[MASS Matrix progress Rcpp RcppArmadillo RcppEigen rlist]; };
+  spectralGraphTopology = derive2 { name="spectralGraphTopology"; version="0.2.3"; sha256="09nsszm2f6q8kz84kn7ihhb627q186jwpvr6fm633l8app4ilf2x"; depends=[MASS Matrix progress Rcpp RcppArmadillo RcppEigen rlist]; };
   spectre = derive2 { name="spectre"; version="1.0.2"; sha256="1n5z7970pzhavdf7qhxsb7gzz8dsrwa1pwyxf8n6sxvmdbk8v2z1"; depends=[ggplot2 Rcpp RcppProgress testthat]; };
   spectrolab = derive2 { name="spectrolab"; version="0.0.16"; sha256="0qfzkf8dm5r5sbadipcqvfs1965l365g9000rgl9713v9lmshmy6"; depends=[RColorBrewer shiny shinyjs]; };
   sped = derive2 { name="sped"; version="0.2-1"; sha256="05igpk8szdcs6kjhpmd9dmjvqdg199pz3hi0rwkhdjglxivvjzjn"; depends=[pooh]; };
   speech = derive2 { name="speech"; version="0.1.4"; sha256="17j4hwfqsazakkdxdrx87dfpmdsh51mms31sm3hpnzh4j7ijcg86"; depends=[dplyr lubridate magrittr pdftools purrr rvest stringr tibble tidyr tm]; };
-  speechbr = derive2 { name="speechbr"; version="1.0.0"; sha256="0nifv74rh4qla3cd92bnjn77n39fyxvxb4hlix3lk096c0qxgp7s"; depends=[abjutils dplyr glue httr janitor lubridate magrittr purrr rlang rvest stringr tibble tidyr xml2]; };
+  speechbr = derive2 { name="speechbr"; version="2.0.0"; sha256="0jf0zj64hm1zxbpcry1iff3nddf2wl315whzcbzj8936qfam92p5"; depends=[abjutils dplyr glue httptest httr janitor lubridate magrittr purrr rlang rvest stringr tibble tidyr xml2]; };
   speedglm = derive2 { name="speedglm"; version="0.3-4"; sha256="1kj662nfkfhvx37jrbvxd4dyjclz5cm3xh50z7s5rbzapiyxn4hs"; depends=[MASS Matrix]; };
-  speedycode = derive2 { name="speedycode"; version="0.2.0"; sha256="1fz8a6z77r17rld1qqiq3hsk65fpjz8f6czcfqsc8y2fxm0jy602"; depends=[dplyr purrr stringr]; };
+  speedycode = derive2 { name="speedycode"; version="0.3.0"; sha256="0k9pnrmv5zmiyia1js3va2gx7nwbg2b35jl4r1lm2hwl3c901jfw"; depends=[dplyr purrr stringr]; };
   spef = derive2 { name="spef"; version="1.0.9"; sha256="115lmv2a21ws1mj22v1fbk72mqn3siqmw3frbg4nci96lnyr7qh6"; depends=[BB ggplot2 nleqslv plyr sm SQUAREM survival]; };
   speff2trial = derive2 { name="speff2trial"; version="1.0.4"; sha256="0dj5mh2sdp6j4ijgv14hjr39rasab8g83lx1d9y50av11yhbf2pw"; depends=[leaps survival]; };
   spellcheckr = derive2 { name="spellcheckr"; version="0.1.2"; sha256="09snc1ymzr4njnr3w502b84dqwjjd414higjxqi48jvh27br5k1l"; depends=[data_table dplyr stringr]; };
@@ -17089,13 +17137,13 @@ in with self; {
   sperich = derive2 { name="sperich"; version="1.5-8"; sha256="0v4mnv9nl0dvmmfx10w03k02pwjjnip9526m3j1kpgn6c4wk1h93"; depends=[foreach rgdal sp]; };
   sperrorest = derive2 { name="sperrorest"; version="3.0.4"; sha256="169bv07vwlbn2ihw0f8hx10qrfdww9lqb2j8wgrkh1xnkskz13hv"; depends=[dplyr future future_apply ROCR stringr]; };
   spex = derive2 { name="spex"; version="0.7.1"; sha256="0lsmh1sywd4si0v10aix44hybwph3gan8w8cxz956dcgkz60p41v"; depends=[crsmeta quadmesh raster reproj sp]; };
-  spfda = derive2 { name="spfda"; version="0.9.0"; sha256="156vs1f75x0wbf65fwzkhlbda649sryf58xixi7gbfjzn873w111"; depends=[mathjaxr]; };
+  spfda = derive2 { name="spfda"; version="0.9.1"; sha256="094j68gyy5yw7d2mn3n864h6vf8nd76x9ypfzc1liggnw7qs0fdl"; depends=[mathjaxr]; };
   spfilteR = derive2 { name="spfilteR"; version="1.1.4"; sha256="0cxc7zrzwr07wk7yv26li6fwmbv3q57vdamzalfrj1npszzkg1s7"; depends=[]; };
   spflow = derive2 { name="spflow"; version="0.1.0"; sha256="0a5nirccwcc2z4dn3gxdlhdjz7sxv1r23clawy0kwn4ggdkmphp1"; depends=[coda Matrix Rdpack RSpectra]; };
   spftir = derive2 { name="spftir"; version="0.1.0"; sha256="07vw8igy698jx671cj6hmf6ll9xvaq81fb6la7j95pqbd6jl284z"; depends=[pracma]; };
   spgrass6 = derive2 { name="spgrass6"; version="0.8-9"; sha256="05xvdhisad0d7c69mvahzg6pvgvmb6dph50r34981palykic7qhn"; depends=[sp XML]; };
   spgs = derive2 { name="spgs"; version="1.0-3"; sha256="0a7zqih8q4imi49in8d2j9wa82savp7d2g4xy4wlwblwf6f2ggsh"; depends=[]; };
-  spgwr = derive2 { name="spgwr"; version="0.6-34"; sha256="1zmd7zp1h98y0xnxacym29b8kcp79yrsss1c49b5rfnml9ksdaqx"; depends=[sp spData]; };
+  spgwr = derive2 { name="spgwr"; version="0.6-35"; sha256="0kcamk33qm3irrp3i7lggxgzk8ldl415a905lxvapv2zaa0cfb2w"; depends=[sp spData]; };
   spherepc = derive2 { name="spherepc"; version="0.1.7"; sha256="0y05ylyxzawgjlivaxs513mfjjfmw6fm98b83sq76n8yw56pr9ny"; depends=[geosphere rgl sphereplot]; };
   sphereplot = derive2 { name="sphereplot"; version="1.5"; sha256="1i1p20h95cgw5wqp9bwfs9nygm4dxzsggz08ncjs1xrsvhhq9air"; depends=[rgl]; };
   sphet = derive2 { name="sphet"; version="2.0"; sha256="1qr4n4kbmc58qmr8niqq3mnwv18x9q2f24c1kg67asf7n3pnmy77"; depends=[coda Matrix mvtnorm nlme sf sp spatialreg spData spdep stringr]; };
@@ -17109,13 +17157,14 @@ in with self; {
   spikeslab = derive2 { name="spikeslab"; version="1.1.5"; sha256="0dzkipbrpwki6fyk4hqlql3yhadwmclgbrx00bxahrmlaz1vjzh2"; depends=[lars randomForest]; };
   spinBayes = derive2 { name="spinBayes"; version="0.1.0"; sha256="1qgqxxk4n17wj3q07irm2qj6lwc5188iwwbdkf588hvfy86lwpj8"; depends=[glmnet MASS Rcpp RcppArmadillo]; };
   spind = derive2 { name="spind"; version="2.2.1"; sha256="1yasqy086h4dv348krisc024mic0dvdsncqys95l85924djlfipp"; depends=[gee geepack ggplot2 lattice MASS RColorBrewer rje rlang splancs stringr waveslim]; };
-  spinifex = derive2 { name="spinifex"; version="0.3.5"; sha256="08sj1crngk28d9b1qayxffwgg16imcqk8mpnp7fsjfrjih68a7sw"; depends=[gganimate ggplot2 magrittr plotly Rdimtools shiny tourr transformr]; };
+  spinifex = derive2 { name="spinifex"; version="0.3.6"; sha256="09agdcvdq6cmg7nvr1p9njvixnqmn134wn6kc9v7hiqpiy8s7ldx"; depends=[gganimate ggplot2 magrittr plotly Rdimtools shiny tourr transformr]; };
   spinyReg = derive2 { name="spinyReg"; version="0.1-0"; sha256="0kbg7rncrrl5xdsaw9vj909x97mfp77mjnvghczplmnwmmanyn72"; depends=[]; };
   spiralize = derive2 { name="spiralize"; version="1.0.5"; sha256="0m0809b34l8mp0czpcq144hw5p10g35lsb8z7l8ls2kclb8xjcs8"; depends=[circlize GetoptLong GlobalOptions lubridate]; };
   spiritR = derive2 { name="spiritR"; version="0.1.1"; sha256="1fjr63rl9hwqxzgm4lkb9v74cxxpi4lrlcgjixdm7zgccm8ihdvh"; depends=[httr magrittr xml2]; };
   splancs = derive2 { name="splancs"; version="2.01-42"; sha256="1aph5rns5kzad1vc6y7khs3y8ysf51fgssmskmi0pqi18mvg82lc"; depends=[sp]; };
   splash = derive2 { name="splash"; version="1.0.1"; sha256="0f5ap8gi1nqxq8qbi3dz52hlizln1wxfrx5k06bagvxh8za8a08v"; depends=[]; };
   splashr = derive2 { name="splashr"; version="0.6.0"; sha256="0l57w5gwr0p2049z1201nlqsy23h37gsybd1lj3vycxz43ir7213"; depends=[curl dplyr formatR HARtools httr jsonlite lubridate magick openssl purrr scales stevedore stringi xml2]; };
+  spldv = derive2 { name="spldv"; version="0.1.0"; sha256="061qs6kqd41kfby2x2kj019plhlk82pf5lah4zyjpn74kaalg7ax"; depends=[car Formula MASS Matrix maxLik memisc numDeriv sphet]; };
   splines2 = derive2 { name="splines2"; version="0.4.5"; sha256="0vgwgrkrkl2j6pcr98gylm3q60aiqdj9n9ndpj6szzn3ygjr0j9q"; depends=[Rcpp RcppArmadillo]; };
   splinetree = derive2 { name="splinetree"; version="0.2.0"; sha256="0gqb3kwca42crrx6fj42ryl5pkxvankhp1chdlvi5lgg8mzmqsnl"; depends=[ggplot2 mclust mosaic nlme rpart treeClust]; };
   splitFeas = derive2 { name="splitFeas"; version="0.1.0"; sha256="1cfiis32h5kkp8r1mndmj4xss9gw96vdzk7q68q3jhbwqiaxp9rp"; depends=[corpcor matrixStats]; };
@@ -17134,8 +17183,9 @@ in with self; {
   splusTimeSeries = derive2 { name="splusTimeSeries"; version="1.5.2"; sha256="0z064svaggqajqv8bni4763llkhm2s3s45krvs4w8k8all0h7rxa"; depends=[splusTimeDate]; };
   spm = derive2 { name="spm"; version="1.2.1"; sha256="0gr6dc5xcz4y84iibkfi3gi84yij5vvazi1yrwd54jblf3fx32jr"; depends=[biomod2 gbm gstat psy randomForest ranger sp]; };
   spm12r = derive2 { name="spm12r"; version="2.8.3"; sha256="04bv4x7p2vv9n8zi5axpkcj13h6q08lc6qyd1czvxrpdmzsp40yb"; depends=[git2r matlabr neurobase oro_nifti R_utils]; };
-  spm2 = derive2 { name="spm2"; version="1.1.0"; sha256="0aw6b4j0b452hf3vi47id3r4qnmngzzfa9cdh09rammj3mvmqb4i"; depends=[e1071 gbm glmnet gstat MASS nlme psy randomForest ranger sp spm]; };
+  spm2 = derive2 { name="spm2"; version="1.1.2"; sha256="1cf5j5gi4h8v5sjlbj279h5la8nscn3n3p3prmci9258593xgkjq"; depends=[e1071 fields gbm glmnet gstat MASS nlme psy randomForest ranger sp spm]; };
   spmoran = derive2 { name="spmoran"; version="0.2.2.2"; sha256="1qfv6h3d7wgg3dwdq0vfhi7134y4qywkac4njxgmaic7cx0hifqi"; depends=[doParallel fields FNN foreach ggplot2 Matrix rARPACK RColorBrewer sp spdep vegan]; };
+  spnaf = derive2 { name="spnaf"; version="0.1.0"; sha256="1iqbyvcgxq6m189mzajd0l1p489cplf7k9v7apv4cj929jqxvvkg"; depends=[dplyr magrittr rmarkdown sf spdep tidyr tmap]; };
   spnet = derive2 { name="spnet"; version="0.9.1-0"; sha256="1fy0fpgz2k985brfqyza1l49y0w2j9z308n542pgmkzqsnsdscpw"; depends=[shape sp]; };
   spnn = derive2 { name="spnn"; version="1.2.1"; sha256="1yj89j7nynfyw1ikm6q5kdwdgiiwxx0aa6kgnri5wfnb4l0356l7"; depends=[MASS Rcpp RcppArmadillo]; };
   spocc = derive2 { name="spocc"; version="1.2.0"; sha256="114xlwd9200ysgkcwxgjc5awj50j4k4v1lgbdjzs7gv9bvdlbb2b"; depends=[crul data_table jsonlite lubridate rbison rebird rgbif ridigbio rvertnet tibble wellknown whisker]; };
@@ -17151,10 +17201,10 @@ in with self; {
   spotifyr = derive2 { name="spotifyr"; version="2.2.3"; sha256="1gpi7d40rdx4dvx5699xj5zisz48arwni18sszvp8phvhgqbj0lh"; depends=[assertthat dplyr genius ggridges httr janitor jsonlite lubridate magrittr purrr readr rlang rvest stringr tibble tidyr xml2]; };
   spotoroo = derive2 { name="spotoroo"; version="0.1.2"; sha256="04zmb0smljr0yszhd789mqm5ds3l71k5cfd9v173d04r5vv8z77a"; depends=[cli dplyr geodist ggbeeswarm ggExtra ggplot2 ggrepel patchwork progress]; };
   spp = derive2 { name="spp"; version="1.16.0"; sha256="08zxxgyp0h6733b08jmml7k4rhfd3mi5dda3jrzid0s184y0z29w"; depends=[BH caTools Rcpp Rsamtools]; };
-  spqdep = derive2 { name="spqdep"; version="0.1.0"; sha256="00scaafr0r8a0qf5nirv0gi6wsjlz6kk6nmb3rk5fd3x5k9p6ck1"; depends=[bookdown broom dplyr ggplot2 gridExtra gt gtools igraph lwgeom magrittr Matrix purrr rsample sf sp spatialreg spdep tidyr]; };
+  spqdep = derive2 { name="spqdep"; version="0.1.2"; sha256="0q2sp76kgrmw2w033m9i69vx0shziazr31akjmighcy1pdz3b695"; depends=[broom dplyr ggplot2 gridExtra gt gtools igraph lwgeom magrittr Matrix purrr rgeoda rsample sf sp spatialreg spdep tidyr]; };
   spray = derive2 { name="spray"; version="1.0-19"; sha256="1x9zn1hw7ndl28c49bka1bqay9wrjvc66d3bs7v7bj53zqmgkac3"; depends=[disordR magic mathjaxr partitions Rcpp]; };
   spreadr = derive2 { name="spreadr"; version="0.2.0"; sha256="180dvr39i1glc0jllsnnglwrxh133q20v7px2fmdi7229pr175id"; depends=[assertthat extrafont ggplot2 igraph Matrix Rcpp]; };
-  spreval = derive2 { name="spreval"; version="1.0.0"; sha256="0949ms3d2r94vbsqyfma4vfavf0gdq58xs7nkirgrfxjd1a65vfm"; depends=[interp timeDate]; };
+  spreval = derive2 { name="spreval"; version="1.1.0"; sha256="1zapfld0d6yyxqvijkb243zqin9xwqhmnznd2nnd4cp0rq3106zf"; depends=[interp timeDate]; };
   sprex = derive2 { name="sprex"; version="1.4.1"; sha256="14idml4mipd4wyza7hqf49ww4dparmwaps35hxm8jg5h0w1pgh7j"; depends=[swfscMisc]; };
   springer = derive2 { name="springer"; version="0.1.5"; sha256="197zmn90zrqv9g0kzwnzs14g1sh3cx2hnp5x92dfp96xcb650dz1"; depends=[MASS Rcpp RcppArmadillo]; };
   springpheno = derive2 { name="springpheno"; version="0.5.0"; sha256="16pa56k1pbazv3vx5lhzc8n3pazrfh1q4bi7116bbvsdgpp9vs8g"; depends=[]; };
@@ -17186,7 +17236,7 @@ in with self; {
   squant = derive2 { name="squant"; version="1.1.4"; sha256="1z4qi1svv6186gj3nh4z3hvjd54i7grj6ckgdyk4dmyn7zh8fw5w"; depends=[ggplot2 glmnet survival]; };
   squash = derive2 { name="squash"; version="1.0.9"; sha256="1x66iamj5pir6l9aqx4x7xylxxjpjrw8vcix9rbhfd0y0y2iqf7z"; depends=[]; };
   squashinformr = derive2 { name="squashinformr"; version="0.2.5"; sha256="1403h52il9kyf16cm44lvib8sgdq0njrqsci8ng5ngryg2h2lacc"; depends=[dplyr Hmisc janitor lubridate naniar plyr polite rlang rvest stringr tibble tidyr]; };
-  squeezy = derive2 { name="squeezy"; version="1.0"; sha256="0ihlgdnfissi0kaw7gwiihrp7kw5447kbwnb7rb1l2jacs60v41n"; depends=[glmnet Matrix multiridge mvtnorm]; };
+  squeezy = derive2 { name="squeezy"; version="1.1"; sha256="1xj3jvyb6k09z6p4ifpf9zp3ngbr36qwxi16iz3jgldkhaw9a0wy"; depends=[glmnet Matrix multiridge mvtnorm]; };
   squid = derive2 { name="squid"; version="0.2.1"; sha256="1zpm787ifzrhww32ghi57ii37p9dssq7q7gbai9iqass78z90y2j"; depends=[arm brms data_table ggplot2 lme4 MASS plotly shiny shinyMatrix]; };
   sra = derive2 { name="sra"; version="0.1.3"; sha256="0bdxgsz177szfqmvffidgkhl0lrdd7c1nzdvh7ijx99zmi5ww71n"; depends=[]; };
   srcr = derive2 { name="srcr"; version="1.1.0"; sha256="1cv4j27w9lssllih0lg172x1p001sk13p9hg39579lx6rpb9l75q"; depends=[DBI dplyr jsonlite]; };
@@ -17203,7 +17253,7 @@ in with self; {
   sscor = derive2 { name="sscor"; version="0.2"; sha256="1kcrr90cxg6k4qkc3pidhkwf4dsnlgbxczxigr2afwpd9cpf104c"; depends=[mvtnorm pcaPP robustbase]; };
   ssd = derive2 { name="ssd"; version="0.3"; sha256="1z61n9m6vn0ijawyz924ak0zfl9z13jsb4k4575b7c424ci2p6gy"; depends=[]; };
   ssddata = derive2 { name="ssddata"; version="1.0.0"; sha256="0njcnjcgdghwrbjcbiq4yfn7nq9h4dvylrqh57c6vx35yqc4g375"; depends=[chk dplyr Rdpack]; };
-  ssdtools = derive2 { name="ssdtools"; version="0.3.7"; sha256="1mxkbf7skxg073nmy195c78fh8mimxnycnlx921y3pb9vrplsn2a"; depends=[abind actuar chk fitdistrplus ggplot2 lifecycle Rcpp scales tibble VGAM]; };
+  ssdtools = derive2 { name="ssdtools"; version="1.0.0"; sha256="0ndndfmqczm2bghaymflgmr57rqqvwnj18v7r6vv5czafh391nbh"; depends=[abind chk doFuture foreach furrr generics ggplot2 goftest lifecycle plyr purrr Rcpp scales ssddata stringr tibble TMB universals VGAM]; };
   sse = derive2 { name="sse"; version="0.7-17"; sha256="0aqpi70rgmh2kmf11z2cvyl8c9klv8jm81pcpkzjrw3pbpgkqizf"; depends=[lattice]; };
   ssev = derive2 { name="ssev"; version="0.1.0"; sha256="1iw07gw9vhg073s5kkxh5f1si6p998rc1i2zglnpk5c3pi3l55wp"; depends=[MESS pwr]; };
   ssfa = derive2 { name="ssfa"; version="1.2"; sha256="14v10lbv3wlrnz3b2i8i56rj5rr257qvwa8w9j6xqswllb80132r"; depends=[Matrix maxLik sp spatialreg spdep]; };
@@ -17231,13 +17281,13 @@ in with self; {
   st = derive2 { name="st"; version="1.2.7"; sha256="0j29k9fg8659yw1jwmcakiic51rin1dj1fmvpapy2wmz4c3pr0fp"; depends=[corpcor fdrtool sda]; };
   stR = derive2 { name="stR"; version="0.5"; sha256="1nlb2d8a11kxiipv96sfmmcq185051vmdiwjjqayln143gvhzp7w"; depends=[foreach forecast Matrix quantreg SparseM]; };
   sta = derive2 { name="sta"; version="0.1.5"; sha256="0q9pplx4ifndvbh2bfa96vjbcaaqdj6bq57kwlzhavq6hjq7d56v"; depends=[doParallel foreach geoTS iterators mapview raster RColorBrewer rgdal trend]; };
-  staRdom = derive2 { name="staRdom"; version="1.1.23"; sha256="0gsix1dxk4gn2iq0zqbm7fyzxxnyzbgdlcbk11lqirx9x0xmwj80"; depends=[cdom data_table doParallel dplyr drc eemR foreach GGally ggplot2 gtools matrixStats MBA multiway pracma R_matlab readr stringr tibble tidyr viridisLite zoo]; };
-  stabiliser = derive2 { name="stabiliser"; version="0.1.2"; sha256="0vpmq1g4vmg02nydkg4q6li00zwvxwm0bad0prhn4kfnlzhkk864"; depends=[bigstep broom caret dplyr ggplot2 glmnet knitr ncvreg purrr rsample stringr tibble tidyr]; };
+  staRdom = derive2 { name="staRdom"; version="1.1.25"; sha256="0cxcl9crw9cvbfzjwwqmxbcsq4q5zbwkb5warkkga6250nra0vkc"; depends=[cdom data_table doParallel dplyr drc eemR foreach GGally ggplot2 gtools matrixStats MBA multiway pracma R_matlab readr stringr tibble tidyr viridisLite zoo]; };
+  stabiliser = derive2 { name="stabiliser"; version="1.0.1"; sha256="1cikls4ynwrzhkfvy85kb6yqns8h5f166ylh30y91lkfay39jank"; depends=[bigstep broom caret dplyr ggplot2 glmnet knitr ncvreg purrr rsample stringr tibble tidyr]; };
   stability = derive2 { name="stability"; version="0.5.0"; sha256="0mz7ikfhpfbdcp72klq7fi4zfmx2w18gz46yhwywcc4dyi277m11"; depends=[dplyr ggfortify ggplot2 lme4 magrittr matrixStats reshape2 rlang scales tibble tidyr]; };
   stable = derive2 { name="stable"; version="1.1.6"; sha256="194xsa291v5f0jya1c3aigbclg8cci427ffpb8brxamm6n57hf12"; depends=[rmutil]; };
   stableGR = derive2 { name="stableGR"; version="1.1"; sha256="1fbbghqkd6vpnlnzgc6fsdpvlc7lw6nxwy5whdg7zgxkwqvqj8n3"; depends=[mcmcse mvtnorm]; };
   stabledist = derive2 { name="stabledist"; version="0.7-1"; sha256="0scar396wiq6wkbkvwp4qrxqc1m075y56p37i6iry5rw796p1i86"; depends=[]; };
-  stablelearner = derive2 { name="stablelearner"; version="0.1-3"; sha256="0h2xqm9g4zx72r6r0a7if1kyrqrjr8hs1pi07h294hbg8l7yvhxb"; depends=[e1071 MASS party partykit randomForest ranger]; };
+  stablelearner = derive2 { name="stablelearner"; version="0.1-4"; sha256="0w0b0h25lzdmzly5q8z6fhk8cz24k9radjika857qczmy7vdafd0"; depends=[e1071 MASS party partykit randomForest ranger]; };
   stablespec = derive2 { name="stablespec"; version="0.3.0"; sha256="0m143cq0baj2lyakhr31mqk2lg78jzpdlpv2bhwz6bzzip7mqi22"; depends=[foreach ggm graph matrixcalc nsga2R polycor Rgraphviz sem]; };
   stabm = derive2 { name="stabm"; version="1.2.1"; sha256="0x8dbafwfpi3r5rzqn34257g9vz4b01gijxvvfch1dn13pm4vcmr"; depends=[checkmate Matrix]; };
   stabreg = derive2 { name="stabreg"; version="0.1.2"; sha256="1jrxyv0d33vd9vdlj1cv1a2qdz8iqgr726f54dgazwsz3cpyy2ia"; depends=[numDeriv]; };
@@ -17249,7 +17299,7 @@ in with self; {
   stagedtrees = derive2 { name="stagedtrees"; version="2.2.0"; sha256="01qb8pw0al3b3b6smcapd61i81p6xw3hh1x8i6dsb73pdvpbfyxj"; depends=[]; };
   staggered = derive2 { name="staggered"; version="1.1"; sha256="0z9358qbgn637j8iz5qwr4nyrlvi9w85l325vxpc61mcwksx5ip8"; depends=[coop dplyr magrittr MASS purrr Rcpp RcppEigen reshape2 tidyr]; };
   stampr = derive2 { name="stampr"; version="0.2"; sha256="10mc71kgnw5712q2gvzd4bmjaw1879r7s599hfsjap21idqb2k2m"; depends=[deldir maptools raster rgdal rgeos sp spdep]; };
-  stan4bart = derive2 { name="stan4bart"; version="0.0-2"; sha256="0262z83rqwf38z2qrvngdz6wmnrz48w4ijv7wg81w1b1lp807y5s"; depends=[BH dbarts Matrix Rcpp RcppEigen RcppParallel]; };
+  stan4bart = derive2 { name="stan4bart"; version="0.0-3"; sha256="1zg008h391fxwqjbq2g41ma0cq1p867xr7gcli7mhw5i4qlkk20d"; depends=[BH dbarts Matrix Rcpp RcppEigen RcppParallel]; };
   standardize = derive2 { name="standardize"; version="0.2.2"; sha256="008nz9vf08qxwdsn373yzpmsw5lhbm6mpm6dlwyys58wq0bdvh28"; depends=[lme4 MASS stringr]; };
   standartox = derive2 { name="standartox"; version="0.0.1"; sha256="1b5w66x4v8hfxzp3ahw97my6m0rcn22iv5nhgm2wzdq0if0cq8py"; depends=[curl data_table fst httr jsonlite]; };
   stapler = derive2 { name="stapler"; version="0.7.1"; sha256="1bzhahn72fzm2bjpis76hphv8whnkp2jq8bm1qldadhng4z1nsak"; depends=[matrixStats RNifti]; };
@@ -17270,6 +17320,7 @@ in with self; {
   starvz = derive2 { name="starvz"; version="0.7.1"; sha256="0j22605vh0fpf17l78i3x9q5xia9qx841sg7hxhcjybn7vfkafsj"; depends=[arrow BH data_tree dplyr ggplot2 gtools lpSolve magrittr patchwork purrr RColorBrewer Rcpp readr rlang stringr tibble tidyr yaml zoo]; };
   starwarsdb = derive2 { name="starwarsdb"; version="0.1.2"; sha256="00n9qqw4lbfk698qgvw8i42sy3dv5i5fiiqma3zks4rr9yspkldq"; depends=[DBI duckdb magrittr tibble]; };
   stat_extend = derive2 { name="stat.extend"; version="0.2.1"; sha256="1qwjqnjds733xvxhby604yqvwlj1rkr3411diwzhbgwp89rhy11r"; depends=[sets]; };
+  statBasics = derive2 { name="statBasics"; version="0.1.0"; sha256="0s5ywkzfj54hfvd7pyhgjgf1vgj7crbqsmjix6rzj2iy4431q6zh"; depends=[stringr tibble]; };
   statGraph = derive2 { name="statGraph"; version="0.5.0"; sha256="0fd7jsngd8gihivnir3y58961kvbdd5g1m5gm1da91984qs7r9q1"; depends=[cluster doParallel foreach igraph MASS rARPACK]; };
   statVisual = derive2 { name="statVisual"; version="1.2.1"; sha256="1cc9p9g8lzn0lgh793r977yhqbk89l74m443gnznjlfml69bfb21"; depends=[Biobase dplyr factoextra forestplot gbm GGally ggdendro ggfortify ggplot2 ggrepel glmnet gridExtra knitr limma magrittr pheatmap pROC pvca randomForest RColorBrewer reshape2 rmarkdown rpart_plot tibble tidyverse]; };
   statar = derive2 { name="statar"; version="0.7.3"; sha256="17zg1g0ndsysrqj0alpx0sgmc69d3jkqr543l8m758mnm9bw83c9"; depends=[data_table dplyr ggplot2 lazyeval matrixStats rlang stringr tidyselect]; };
@@ -17283,6 +17334,7 @@ in with self; {
   statgenGxE = derive2 { name="statgenGxE"; version="1.0.4"; sha256="12v9a1lg12pmhzk28c929j1vhhh5x9gzb6ia9izvji2zjx2yigk4"; depends=[emmeans ggplot2 gridExtra knitr lme4 statgenSTA xtable]; };
   statgenHTP = derive2 { name="statgenHTP"; version="1.0.5"; sha256="1lclxc4al3h7z5cbjhmm6p1hr22gysz16hlvfams37czbc2prlha"; depends=[animation factoextra ggforce ggnewscale ggplot2 gridExtra locfit lubridate reshape2 scales SpATS]; };
   statgenIBD = derive2 { name="statgenIBD"; version="1.0.4"; sha256="1hjixzzxwvi6a9dz8n3xrz1zy9r7wzf54gp9m76pfbdnhjga3hgk"; depends=[ggplot2 Rcpp RcppArmadillo]; };
+  statgenMPP = derive2 { name="statgenMPP"; version="1.0.0"; sha256="0rnlskn7xjd4sx2yg7fxr9vi09wbkz93dlvn67p5vp8a7ai5vca9"; depends=[data_table ggplot2 gridExtra LMMsolver scales statgenGWAS statgenIBD]; };
   statgenSTA = derive2 { name="statgenSTA"; version="1.0.8"; sha256="1734gqcrwkxl3672pf147qh5n8lid4zk81zfanhqi6z83syw5ha5"; depends=[emmeans ggplot2 ggrepel gridExtra knitr lme4 mapproj maps qtl scales SpATS xtable]; };
   stationaRy = derive2 { name="stationaRy"; version="0.5.1"; sha256="1620fdlybn3hr96yngnp802imr9b7n90835lyyd86r2wn6psdzvl"; depends=[downloader dplyr lubridate lutz magrittr progress readr stringr tidyr]; };
   stationery = derive2 { name="stationery"; version="1.0"; sha256="07kwlmambjv7njgpw1dhsm2zrv1lk6xj2k6a6psysjllrf5zz8ga"; depends=[knitr kutils rmarkdown]; };
@@ -17297,10 +17349,10 @@ in with self; {
   statpsych = derive2 { name="statpsych"; version="1.0.0"; sha256="0rakzsbafhp5xps9bbb4pljv4c49ij1rwz64z0q5jjglc95kw55s"; depends=[mathjaxr Rdpack]; };
   statquotes = derive2 { name="statquotes"; version="0.2.6"; sha256="04pk4fqq6hjpn15f2xp7hy25vhw5z1qj3v79sq6smzak1vz92zsa"; depends=[stringr tidytext wordcloud]; };
   stats19 = derive2 { name="stats19"; version="2.0.0"; sha256="0minav2ab9xa9xq5mardjcijaxhs3v1izxmy15v5zf04lhvz4f03"; depends=[readr sf]; };
-  statsExpressions = derive2 { name="statsExpressions"; version="1.3.0"; sha256="0kml7q4nhnirh8na12mfqgg0ka4vl2333piabw94hx4rjhajwxll"; depends=[BayesFactor correlation datawizard dplyr effectsize glue insight magrittr parameters performance rlang tibble tidyr WRS2 zeallot]; };
+  statsExpressions = derive2 { name="statsExpressions"; version="1.3.1"; sha256="1w13gvd18cgwv886r8h9zp21a5vvlq6g0sqr4frcnw1i14j54a00"; depends=[BayesFactor correlation datawizard dplyr effectsize glue insight magrittr parameters performance rlang tibble tidyr WRS2 zeallot]; };
   statsearchanalyticsr = derive2 { name="statsearchanalyticsr"; version="0.1.4"; sha256="0m2zv5sgv7w9yk6q7rwx8x2zy6xx5w0d6c9vynddr08pn4mdqjhs"; depends=[glue httr jsonlite lubridate purrr stringr tibble tidyr]; };
   statsr = derive2 { name="statsr"; version="0.3.0"; sha256="138yjifz8q3dqcm3wbzn4sxdydwnqvwkz0h20r8ls3pijqh6fc2y"; depends=[BayesFactor broom cubature dplyr ggplot2 gridExtra knitr rmarkdown shiny tibble tidyr]; };
-  statswalesr = derive2 { name="statswalesr"; version="0.1.4"; sha256="1q1825aiaq5mfcfdw8fy22w738cn0x2ifij7p3p276x0sl1cbrdm"; depends=[curl dplyr httr jsonlite rlang]; };
+  statswalesr = derive2 { name="statswalesr"; version="0.2.0"; sha256="03h0gq8ag51my5z8mw78rhbkksfpa7af8my6lb468wrcfv69k0gl"; depends=[curl dplyr httr jsonlite rlang]; };
   stcos = derive2 { name="stcos"; version="0.3.0"; sha256="0niy8inajs0vafbh47w5rajlp3bvgi9yakhyabjdrqhkjzs79lpx"; depends=[dplyr Matrix Rcpp RcppArmadillo sf]; };
   stcov = derive2 { name="stcov"; version="0.1.0"; sha256="166w929sgd7nanw1zjhzwv50hd5vqhgsrgxnsga4dzrcvndalw70"; depends=[]; };
   stdReg = derive2 { name="stdReg"; version="3.4.1"; sha256="0x4awgbja70mdpbavgkg9mpnrxxc0qpsnl8i3rj9hs4vwbdkalr8"; depends=[data_table drgee numDeriv survival]; };
@@ -17314,15 +17366,16 @@ in with self; {
   stepPenal = derive2 { name="stepPenal"; version="0.2"; sha256="08gizl6c606ibbv7x2rdvfw37rghkrprwszha79yngkzpajw8gql"; depends=[caret dfoptim glmnet mvtnorm pROC]; };
   stepPlr = derive2 { name="stepPlr"; version="0.93"; sha256="1i54nyz8z5vq3mzfh6h2vd1q0hsdazc4mhrj9ad0zdvn0qnz61lv"; depends=[]; };
   stepR = derive2 { name="stepR"; version="2.1-1"; sha256="0mz88d7214g59nvr40c4gf4grq9skjqqlfgydbdzmc4l315nr4zv"; depends=[digest lowpassFilter R_cache Rcpp]; };
-  stepSplitReg = derive2 { name="stepSplitReg"; version="1.0.0"; sha256="0glsc11ylh4bqhw0p8sdf6r171lzb522skcnfg9vwxn4sm9s93zm"; depends=[nnls Rcpp RcppArmadillo SplitGLM]; };
+  stepSplitReg = derive2 { name="stepSplitReg"; version="1.0.1"; sha256="1xp9xrshb1fa76vjk970a0wss3zpsggb4skqklqa7zq87wcq4ly2"; depends=[nnls Rcpp RcppArmadillo SplitGLM]; };
+  stepdownfdp = derive2 { name="stepdownfdp"; version="1.0.0"; sha256="1yqzxn4d52ih03f0mpvb9dw9pn9jfbgnyay1pfhh112zml5h6i3m"; depends=[pracma]; };
   stepgbm = derive2 { name="stepgbm"; version="1.0.0"; sha256="1psjnxc7dadbm1405wm3vgsf9m2pn8bm82rn9md3cxhp33jqh1bx"; depends=[gbm spm steprf]; };
   stepjglm = derive2 { name="stepjglm"; version="0.0.1"; sha256="0xsb0wg7ka4ska2jkzaic7kqdzj2fkhpf5sxr3a116f2najj9ax2"; depends=[rsq]; };
   stepp = derive2 { name="stepp"; version="3.2.2"; sha256="1iyj1f9gzn44xllhm9y1j0ynfz4q48d2l8ic4mjvzc3p4z8cnpmz"; depends=[car rstudioapi scales survival]; };
   steprf = derive2 { name="steprf"; version="1.0.0"; sha256="0v3bh8rc5pxwfv9dfpv4fmi816fayhjca14wz30b54d3zjvbjxqk"; depends=[psy randomForest spm spm2]; };
   steps = derive2 { name="steps"; version="1.2.1"; sha256="04n5m7a5yp3karhiwgcl6fzfp85iad2xymdwp1kyqbagx2acyrka"; depends=[future future_apply memuse raster rasterVis Rcpp viridisLite]; };
-  stevedata = derive2 { name="stevedata"; version="0.6.0"; sha256="1xhgj4g40qpj32n0n6ls5vs6ynl8ns54k1nrynd67gisdk236aq8"; depends=[]; };
+  stevedata = derive2 { name="stevedata"; version="0.7.0"; sha256="1shi1abzf4vkz790f6b4720g28hh6kzsi40mdw7gp9xwr97a1dyz"; depends=[]; };
   stevedore = derive2 { name="stevedore"; version="0.9.4"; sha256="0qf7qid8sv3agzci7kvgh204h3p6bk60bh45zri987j2qqjjxiiy"; depends=[crayon curl jsonlite yaml]; };
-  stevemisc = derive2 { name="stevemisc"; version="1.3.0"; sha256="0dkmq6510r36pihj2g8c4iya5j3sbsnq9gp5i72dqj9fwsx242ca"; depends=[arm broom_mixed dplyr forcats ggplot2 httr labelled lme4 magrittr purrr rlang rmarkdown stringr tibble tidyr]; };
+  stevemisc = derive2 { name="stevemisc"; version="1.4.0"; sha256="009fl8j1wmi4r907bimha3is0vpicn6rcfdzajnvm98rwrx9cp55"; depends=[arm bib2df dplyr forcats ggplot2 httr labelled lme4 magrittr purrr rlang rmarkdown stringr tibble tidyr]; };
   stevetemplates = derive2 { name="stevetemplates"; version="0.7.0"; sha256="1cbxh71c7ffxb22zs5yb33h62ipmnp2a9x2i6sdlhix6vr358705"; depends=[rmarkdown]; };
   stfit = derive2 { name="stfit"; version="0.99.8"; sha256="0js09v04ik5m3d9iz9waq0yigvg2g6n75m4zm5dc0nz3yr1irb88"; depends=[abind doParallel fda foreach Matrix raster rasterVis RColorBrewer Rcpp]; };
   stickr = derive2 { name="stickr"; version="0.3.1"; sha256="0krz123vz4bdcdi4p27r637pgz4rcj6kmyiqdf5x69riddvfxx8r"; depends=[base64enc fs gh stringr]; };
@@ -17348,7 +17401,7 @@ in with self; {
   stochvol = derive2 { name="stochvol"; version="3.2.0"; sha256="1ix8x3gmm5advdxk0rd0p26x3487qmw6pv4mi628vjqpmvnv42fr"; depends=[coda Rcpp RcppArmadillo]; };
   stochvolTMB = derive2 { name="stochvolTMB"; version="0.2.0"; sha256="07m3qz8j1sw37lrxzmbkbifd3nsdvd2blbca8vr1aq5bbafr1g1b"; depends=[data_table ggplot2 MASS RcppEigen sn TMB]; };
   stockR = derive2 { name="stockR"; version="1.0.74"; sha256="002i0bhyskwyjjczfa752ghn19hvqhdyzdfkpvci3hb66rh94x65"; depends=[gtools RColorBrewer]; };
-  stockfish = derive2 { name="stockfish"; version="0.1.3"; sha256="0f98xi81kjahvqhmq7hjbrg54kdff5j4q2dq8wj41l13pzi81sac"; depends=[processx R6]; };
+  stockfish = derive2 { name="stockfish"; version="1.0.0"; sha256="1il3na3d96k34vj62pvxrs2ah3a9ly8ww3gi3nr0459piw4wd611"; depends=[processx R6]; };
   stocks = derive2 { name="stocks"; version="1.1.4"; sha256="0b6rl7pfkgzbpwnv7zzkr36hs5f1zb60d16ijslf7g9m25vvcyg6"; depends=[dvmisc Hmisc lubridate quantmod rbenchmark RColorBrewer Rcpp TTR zoo]; };
   stoichcalc = derive2 { name="stoichcalc"; version="1.1-3"; sha256="0z9fnapibfp070jxg27k74fdxpgszl07xiqfj448dkydpg8ydkrb"; depends=[]; };
   stokes = derive2 { name="stokes"; version="1.1-1"; sha256="1hykdsmslvwbhm75k7q1l2xmr0dhldvq08np64gm8rgbfy4p4vpg"; depends=[disordR mathjaxr partitions permutations spray]; };
@@ -17358,16 +17411,18 @@ in with self; {
   stosim = derive2 { name="stosim"; version="0.0.14"; sha256="10k8j7manskjsrjc1l44yhy682b1qh0k2jx3cs5k69j2z42mnhmk"; depends=[Rcpp]; };
   stplanr = derive2 { name="stplanr"; version="0.8.7"; sha256="11a0cak6vf5snfpbbv0rbhcjryyd694d6vz1gyshxzwi6wgglhq0"; depends=[curl data_table dplyr geosphere httr jsonlite lwgeom magrittr maptools nabor pbapply raster Rcpp RcppArmadillo rgeos rlang sf sfheaders sp stringr]; };
   stpm = derive2 { name="stpm"; version="1.7.10"; sha256="0y9rpqjn33gdqjvag4kb6dr00w80paspgj9ic25brclfv1zmzbhf"; depends=[MASS nloptr Rcpp RcppArmadillo sas7bdat survival]; };
+  stpp = derive2 { name="stpp"; version="2.0-6"; sha256="0ii799kqn8ydgi4bqs292fff7my5fdbrvwnizqphbk7k8xf4w5vx"; depends=[ggplot2 gridExtra KernSmooth plot3D rgl rpanel spatstat_core spatstat_geom spatstat_random splancs]; };
+  stppSim = derive2 { name="stppSim"; version="1.2.3"; sha256="188vdx21sbss5v9941f03n93am3qq6mavq51vwshcm5ncdddhmmg"; depends=[chron cowplot data_table dplyr geosphere ggplot2 gstat ks leaflet lubridate magrittr raster rgdal sf SiMRiv sp sparr spatstat_geom splancs stringr terra tibble tidyr]; };
   str2str = derive2 { name="str2str"; version="0.2.1"; sha256="180m261hr0qr3mnm8hbvjbw3q44cr1kfrnq97fvkpypigdycd9z4"; depends=[abind checkmate plyr reshape]; };
   strand = derive2 { name="strand"; version="0.2.0"; sha256="0gd9nnbdilvk4bszg77bxilan6qpg1np7c38w1b7j5sr3r30y5in"; depends=[arrow dplyr ggplot2 lubridate Matrix R6 Rglpk rlang tibble tidyr yaml]; };
   strap = derive2 { name="strap"; version="1.4"; sha256="0gdvx02w0dv1cq9bb2yvap00lsssklfnqw0mwsgblcy2j6fln7b0"; depends=[ape geoscale]; };
   strat = derive2 { name="strat"; version="0.1"; sha256="1axxrp750kjzcgxjdqfscjmryv1mkv4l23zk8k23z8l4ymhd2f5w"; depends=[Hmisc Rcpp RcppArmadillo]; };
   stratEst = derive2 { name="stratEst"; version="1.1.4"; sha256="1g764h17sh499p0a5ixs61q8l1hssvi7v4c34i90rdf81l72i0mg"; depends=[Rcpp RcppArmadillo]; };
   stratallo = derive2 { name="stratallo"; version="0.1.0"; sha256="0i8vqhf70x25p9z8amka2aaij7r28d83sp0nijim4n225bdfj6sk"; depends=[]; };
-  stratamatch = derive2 { name="stratamatch"; version="0.1.8"; sha256="04shi4qyzqa2xpmwv8jr273575sdn0jkirilqvdj1hhxkb212zks"; depends=[dplyr Hmisc magrittr rlang survival]; };
+  stratamatch = derive2 { name="stratamatch"; version="0.1.9"; sha256="1z395355kac0wd4f0m1ijh851m046ra8h1wam04if4qp00ychajp"; depends=[dplyr Hmisc magrittr rlang survival]; };
   stratbr = derive2 { name="stratbr"; version="1.2"; sha256="15vkymmc61yz9szhfhc5663hfyqvh499ahwhr9mv1lhv5bikk0kb"; depends=[Rglpk snowfall stratification]; };
   strategicplayers = derive2 { name="strategicplayers"; version="1.0"; sha256="19vijrlzawd701vvk9ig7yhzbirh39dxxcwfz8ywwvxxiaky5x55"; depends=[sna]; };
-  stratification = derive2 { name="stratification"; version="2.2-6"; sha256="1jlks3g8wpqlpci6v0ryyv93agiabdiklmk6ij0pc5icrfiynbhw"; depends=[]; };
+  stratification = derive2 { name="stratification"; version="2.2-7"; sha256="0vsra08lbq2nabd9lizakgpvn5lrp0lc961jvpns59l0b4wvdqab"; depends=[]; };
   stratifyR = derive2 { name="stratifyR"; version="1.0-3"; sha256="1kbpsyhx081rqr7q7gyjw377zlvvravsslpnykl2d16nap0rg0sq"; depends=[actuar fitdistrplus mc2d triangle zipfR]; };
   stratvns = derive2 { name="stratvns"; version="1.1"; sha256="01s3p9mml04pqfd7fydkmqdk0qf5jmzz3b3q3x5vavlma6fv8nwi"; depends=[MultAlloc partitions purrr]; };
   straweib = derive2 { name="straweib"; version="1.1"; sha256="0hi59p580yg6rj72grq4jx6grv7lmpi2cimp0rbxhkjpj6i1hav9"; depends=[]; };
@@ -17403,7 +17458,7 @@ in with self; {
   stubthat = derive2 { name="stubthat"; version="1.2.1"; sha256="130naxzvswcyadwcgldvwnxxdxbfwx5vljac7901vn3ahjp75d8z"; depends=[testthat]; };
   studentlife = derive2 { name="studentlife"; version="1.1.0"; sha256="1xvlcwg7ckxsm5hb5ax8r3hzdqnx61ax59ini5xc5jrsmir13g67"; depends=[crayon dplyr ggplot2 jsonlite purrr R_utils readr skimr tibble tidyr visdat]; };
   studyStrap = derive2 { name="studyStrap"; version="1.0.0"; sha256="0lvzqnq40j0xn74qrj0pqhr8zz34mbhfd7dg8bnadscsvj5ffm4c"; depends=[caret CCA dplyr MatrixCorrelation nnls pls tibble tidyverse]; };
-  styler = derive2 { name="styler"; version="1.6.2"; sha256="0p7p2mh4f469drfn5z4wc4xrg06mpnm9wkw76fghclf8m9vcqbx6"; depends=[backports cli glue magrittr purrr R_cache rematch2 rlang rprojroot tibble withr xfun]; };
+  styler = derive2 { name="styler"; version="1.7.0"; sha256="1ki260ga0jrmayhdlx2sl788yp5kkmi4wyl32nmvvyb55sng6j9y"; depends=[cli magrittr purrr R_cache rematch2 rlang rprojroot tibble withr]; };
   stylest = derive2 { name="stylest"; version="0.2.0"; sha256="1c036zsn1gi5vhsz37p56wz1bcr3pwdp2k62j7ikmrrnkcv2w9kz"; depends=[corpus Matrix]; };
   stylo = derive2 { name="stylo"; version="0.7.4"; sha256="0vjfpz4bpdrsax7a0gsj9cwddbsayb4n5fr5xskz63lfrjg2ppcb"; depends=[ape class e1071 lattice pamr tcltk2 tsne]; };
   suRtex = derive2 { name="suRtex"; version="0.9"; sha256="0xcy3x1079v10bn3n3y6lxignb9n3h57w4hhrvzi5y14x05jjyda"; depends=[]; };
@@ -17412,7 +17467,6 @@ in with self; {
   subformula = derive2 { name="subformula"; version="0.1.0"; sha256="0nsl0nzj79z6aib12b5qijyab0yxlljfssiq9p8xgcgbxy4a7syy"; depends=[]; };
   subgroup = derive2 { name="subgroup"; version="1.1"; sha256="1n3qw7vih1rngmp4fwjbs050ngby840frj28i8x7d7aa52ha2syf"; depends=[]; };
   subgxe = derive2 { name="subgxe"; version="0.9.0"; sha256="0faww87ncylqixb640hc2axvn4i50d2r2ggngmd7s9wazbb6sd55"; depends=[]; };
-  sublime = derive2 { name="sublime"; version="1.3"; sha256="0455fppc68azxknxjvxci4kjpcj6c1jkp9adbxqrn3qnnywaj5v2"; depends=[AnalyzeFMRI downloader oro_nifti]; };
   submax = derive2 { name="submax"; version="1.1.1"; sha256="0b9x55gqzw20smr3hx9izvyr0i8zv0h03hadn4c7ks7w8ga5i0kj"; depends=[mvtnorm sensitivityfull]; };
   subniche = derive2 { name="subniche"; version="1.4"; sha256="10j7wz4hyqvpi7iqq7m6jb13g0wr7k59rkxyyhfkmcq1vgm2cpdx"; depends=[ade4 polyclip siar wordcloud]; };
   subplex = derive2 { name="subplex"; version="1.7"; sha256="11zqzydbj6ivgvlw1gv1r2yxra7misbc622g575p2vckhjjg9v6m"; depends=[]; };
@@ -17422,6 +17476,7 @@ in with self; {
   subselect = derive2 { name="subselect"; version="0.15.2"; sha256="0ggpm5bq4ncx4302855s8x1nj0afjizmi81cg6b7xc7rvpirw0fq"; depends=[corpcor ISwR MASS]; };
   subsemble = derive2 { name="subsemble"; version="0.1.0"; sha256="125msb0krcdj6jbdvzdl75179ajakb1l0xal45bp38am8w62a6zz"; depends=[SuperLearner]; };
   subspace = derive2 { name="subspace"; version="1.0.4"; sha256="0p2j0lnwj3ym1v4xla6r97zjikb8alnibdc690xn9c0z21hmv43v"; depends=[colorspace ggvis rJava stringr]; };
+  subtee = derive2 { name="subtee"; version="1.0.1"; sha256="090k3p1j9fj7qk121qb488vzfgzxnvqp7z60jhcyy8l47aazf5g0"; depends=[ggplot2 httr MASS matrixStats survival]; };
   subtype = derive2 { name="subtype"; version="1.0"; sha256="1094q46j0njkkqv09slliclp3jf8hkg4147hmisggy433xwd19xh"; depends=[penalized ROCR]; };
   sudachir = derive2 { name="sudachir"; version="0.1.0"; sha256="09ry00c3yhrz8fiyxdxgj9r3x7kldsl6fv35mmi5ysc2549kbcfb"; depends=[cli dplyr glue magrittr purrr reticulate rlang tibble tidyselect]; };
   suddengains = derive2 { name="suddengains"; version="0.4.4"; sha256="160jna9imnpy91f6pa881w6wlrwy59db0nijrn1sf5ym1cmh5gz5"; depends=[dplyr forcats ggplot2 ggrepel magrittr naniar patchwork psych readr rlang scales stringr tibble tidyr]; };
@@ -17429,8 +17484,8 @@ in with self; {
   sudokuAlt = derive2 { name="sudokuAlt"; version="0.2-1"; sha256="1y3li64xqag2ia8dg7q49jmlb1awl92rz6xa9zsbf0s9jman9wj9"; depends=[magrittr]; };
   sugarbag = derive2 { name="sugarbag"; version="0.1.3"; sha256="05j2b9vbhpkfr3xkam9wgm0w4k8blnm1ssf9cd6l5f1y2rrqizsv"; depends=[dplyr geosphere lwgeom progress purrr rlang rmapshaper sf tibble tidyr utf8]; };
   sugrrants = derive2 { name="sugrrants"; version="0.2.8"; sha256="08cs74afpkvjh32hlrwbl8sdsi3p0ga4ziw32r9pihs28a060fam"; depends=[dplyr ggplot2 gtable lubridate rlang]; };
-  sumFREGAT = derive2 { name="sumFREGAT"; version="1.2.3"; sha256="191jb3jc0k6ja12955w7r6s0hl6wmwvax9knrb1hd2i5wxaq556i"; depends=[GBJ Matrix seqminer]; };
-  sumR = derive2 { name="sumR"; version="0.4.4"; sha256="1cpb59yml038ki2kga3hc1fi4l2d1qa0h0kw0f1bq4vjhjab7wf2"; depends=[matrixStats]; };
+  sumFREGAT = derive2 { name="sumFREGAT"; version="1.2.4"; sha256="1yaqjsbijnlm7k9ylikwvfrhhdsd3465k4mhr9kq7yr98g2dlq85"; depends=[GBJ Matrix seqminer]; };
+  sumR = derive2 { name="sumR"; version="0.4.6"; sha256="1wj5w4kyfpqss2mvxlmpyqyh1l4v5zg6c1x2k6lkhr29qi97lf99"; depends=[matrixStats]; };
   sumSome = derive2 { name="sumSome"; version="1.1.0"; sha256="1a70kxvp9d9hn38jnvgk934vwbz4bjb6k4kcngp6rp9gv9h2bh2r"; depends=[ARIbrain pARI Rcpp RNifti]; };
   summariser = derive2 { name="summariser"; version="2.3.0"; sha256="0zliqy8dlcr2yy4ky8k68qn256xvpla8fcv7via19y40bmla37ic"; depends=[dplyr]; };
   summarytools = derive2 { name="summarytools"; version="1.0.0"; sha256="04qcysfywljnqkcz2b7kzpy0xv3ykkvvb14vnda63z1wvmadyhkn"; depends=[base64enc checkmate dplyr htmltools lubridate magick matrixStats pander pryr rapportools tibble tidyr]; };
@@ -17480,7 +17535,7 @@ in with self; {
   survJamda = derive2 { name="survJamda"; version="1.1.4"; sha256="14ly1g548ysm8jgsyrhj12zmd6i2lca7rsgby3jbwikyqyk1mx5q"; depends=[ecodist survcomp survival survivalROC survJamda_data]; };
   survJamda_data = derive2 { name="survJamda.data"; version="1.0.2"; sha256="0a010v2ar48i5m0jiqjvdyqm93ckfgfmcmym9a02h0rclnizd75r"; depends=[]; };
   survMS = derive2 { name="survMS"; version="0.0.1"; sha256="0313pwf0l6wq9l4qjj1al9ybzm79kdxwzdrw6k0af706rxfzzha0"; depends=[ggplot2]; };
-  survMisc = derive2 { name="survMisc"; version="0.5.5"; sha256="00nvvl8gz4477ab24rd0xvfksm8msv8h021b9ld5c9cizc41n2bm"; depends=[data_table ggplot2 gridExtra km_ci KMsurv knitr survival xtable zoo]; };
+  survMisc = derive2 { name="survMisc"; version="0.5.6"; sha256="014cf7sfndmib9jmj0p3h67sr750k2pvw7m865zwdpvlqddi44fr"; depends=[data_table ggplot2 gridExtra km_ci KMsurv knitr survival xtable zoo]; };
   survParamSim = derive2 { name="survParamSim"; version="0.1.5"; sha256="0jk4dwxm2q0sckjx3njadjhpk4hym817xn2r555cl1vd1x9xpqjy"; depends=[broom dplyr forcats ggplot2 lifecycle magrittr mvtnorm purrr rlang survival tibble tidyr]; };
   survPen = derive2 { name="survPen"; version="1.5.2"; sha256="1mmz7bbl1l0pkpgi8jqfdpq33yqa6c2442g3q7cqlyy1s7p1dcd9"; depends=[Rcpp RcppEigen statmod]; };
   survPresmooth = derive2 { name="survPresmooth"; version="1.1-11"; sha256="1rgz4g4irm6kg1ysb1sz9jar5i7l87blfhlhcmsg5bjbw0ih5xbn"; depends=[]; };
@@ -17490,11 +17545,11 @@ in with self; {
   survSNP = derive2 { name="survSNP"; version="0.25"; sha256="0awj4vh7sdal873bkp7f0ff4r87idgdn5cby405flvivlxv83i9z"; depends=[foreach lattice Rcpp survival xtable]; };
   survSens = derive2 { name="survSens"; version="0.1.0"; sha256="1s4s5l31yps93s2zdxpidkdg8kmmwj6vb3zfndmnxvc07arwhvbv"; depends=[directlabels ggplot2 survival]; };
   survSpearman = derive2 { name="survSpearman"; version="1.0.0"; sha256="06xric3fwv2rdrbapsawrg288s2sflzrbx1a4yc7lzxzxbsbs619"; depends=[]; };
-  surveil = derive2 { name="surveil"; version="0.1.1"; sha256="135y4qdkwpb8dv63bybspdynfr0d3sqz0ayjm82nhy3flah2v5ka"; depends=[BH dplyr ggdist ggplot2 gridExtra Rcpp RcppEigen RcppParallel rlang rstan rstantools scales StanHeaders tidybayes tidyr]; };
+  surveil = derive2 { name="surveil"; version="0.2.0"; sha256="0lnib5ds8s34klgps4kn367hl6bwv4gz5py9l3difz43wwhk78j1"; depends=[BH dplyr ggdist ggplot2 gridExtra Rcpp RcppEigen RcppParallel rlang rstan rstantools scales StanHeaders tidybayes tidyr]; };
   surveillance = derive2 { name="surveillance"; version="1.20.0"; sha256="0dbqr43fhg5zdh6wzw6licq6c5qqab710gw5ag45l8j1z3q06x8i"; depends=[MASS Matrix nlme polyCub Rcpp sp spatstat_geom xtable]; };
   survexp_fr = derive2 { name="survexp.fr"; version="1.0"; sha256="12rjpnih0xld4dg5gl7gwxdxmrdmyzsymm7j05v98ynldd1jkjl8"; depends=[survival]; };
   survey = derive2 { name="survey"; version="4.1-1"; sha256="0ljsszybzri531q6xab04r6zq11vchfs7y0snjzk57m3g0b9ms05"; depends=[lattice Matrix minqa mitools numDeriv survival]; };
-  surveyCV = derive2 { name="surveyCV"; version="0.1.1"; sha256="03pyxav8z223qplsi9srmaf156zgdy3814k5krgskb86bhi0881d"; depends=[magrittr survey]; };
+  surveyCV = derive2 { name="surveyCV"; version="0.2.0"; sha256="183ybmfin4xmpsmssw7hskj1rgwpabpa616bzxlir27kygyrswbz"; depends=[magrittr survey]; };
   surveybootstrap = derive2 { name="surveybootstrap"; version="0.0.1"; sha256="13rp6gj1dgdzcjbi2403pldygp1dyqx8zj0r1nvyghpi06x5gpb7"; depends=[dplyr functional plyr Rcpp RcppArmadillo stringr]; };
   surveydata = derive2 { name="surveydata"; version="0.2.6"; sha256="1z72l9dzdhg2r7wd284wa569f4bcnqhz6lha1lch1am7g2i3633d"; depends=[assertthat dplyr DT ggplot2 magrittr purrr rlang scales tidyr]; };
   surveyeditor = derive2 { name="surveyeditor"; version="1.0"; sha256="073219bcn1hlxl9ql6gncfvgn0m37pz5sb7h94nq6lf35dymq5zq"; depends=[]; };
@@ -17508,8 +17563,9 @@ in with self; {
   survivalAnalysis = derive2 { name="survivalAnalysis"; version="0.3.0"; sha256="0s4cihmjhg94zcbvr7c1pxdjyc0rpbqlw1gni5xkdhqp4lnqmygf"; depends=[cowplot dplyr forcats ggplot2 gridExtra magrittr purrr rlang scales stringr survival survminer tibble tidyr tidytidbits]; };
   survivalMPL = derive2 { name="survivalMPL"; version="0.2-1"; sha256="1rskhawhpkzi3laq452kgr1740p6998z7c7p95f2023ymkdm4rxv"; depends=[MASS survival]; };
   survivalMPLdc = derive2 { name="survivalMPLdc"; version="0.1.1"; sha256="1wqlzpwm1p7nq19l3d7c93zv6fnn0b1w24kak9zwsgyhar3f5lv9"; depends=[copula matrixcalc splines2 survival]; };
+  survivalREC = derive2 { name="survivalREC"; version="1.0"; sha256="1c4qvk2qd5ffn4kfkglwn3iyisnd2y0hzzn92c57vb94d4h057hx"; depends=[KernSmooth survival]; };
   survivalROC = derive2 { name="survivalROC"; version="1.0.3"; sha256="0wnd65ff5w679hxa1zrpfrx9qg47q21pjxppsga6m3h4iq1yfj8l"; depends=[]; };
-  survivalmodels = derive2 { name="survivalmodels"; version="0.1.11"; sha256="0las1appms4j2g7c31yxm49z1aq2ahjgczilh4m3yy0xg5nckyr1"; depends=[Rcpp]; };
+  survivalmodels = derive2 { name="survivalmodels"; version="0.1.13"; sha256="0d5bfmvfwf3i1iim5cjrqq5vlja92znpzv1csrk488rb582zaza7"; depends=[Rcpp]; };
   survivalsvm = derive2 { name="survivalsvm"; version="0.0.5"; sha256="1b4hrdrqq1z0kfn8vpdwg54388m25df2s6w9i574x3mkxkmkjkga"; depends=[Hmisc kernlab Matrix pracma quadprog survival]; };
   survivoR = derive2 { name="survivoR"; version="0.9.12"; sha256="0mda9zjag453m60c2njzjpifz88q09vjkys0xds8vsdzmi70vjvv"; depends=[dplyr ggplot2 magrittr stringr tidyr]; };
   survminer = derive2 { name="survminer"; version="0.4.9"; sha256="0byh0wxdbjfwdrzsnqv4xlmnik6lj0vkkzfxy7lssk8dv5zmj7nz"; depends=[broom dplyr ggplot2 ggpubr ggtext gridExtra magrittr maxstat purrr rlang scales survival survMisc tibble tidyr]; };
@@ -17531,7 +17587,7 @@ in with self; {
   svUnit = derive2 { name="svUnit"; version="1.0.6"; sha256="08nmlbdrmmz04ira30721l99i74w07w2avdr4pypswf2sq1nqgi6"; depends=[]; };
   svWidgets = derive2 { name="svWidgets"; version="0.9-45"; sha256="08cpsy4abypjnv33arsgxk5i0gpdvdzj60wa1b22ca1n7d35mc80"; depends=[svMisc]; };
   svars = derive2 { name="svars"; version="1.3.9"; sha256="1i9wnfrgr9x6qfqhl9bc4wiz4wxmzjfcmg7wvy3zjrfszmibaf78"; depends=[clue copula DEoptim expm ggplot2 pbapply Rcpp RcppArmadillo reshape2 steadyICA strucchange vars zoo]; };
-  svd = derive2 { name="svd"; version="0.5"; sha256="18bi42pgml9i8jflfk29ws0bfblkj3f69z9p9mkd0m8kcx4d8hnh"; depends=[]; };
+  svd = derive2 { name="svd"; version="0.5.1"; sha256="04x1dbcwxs5f61m195l0lv65b38fw9mnh8l672pgiyvvfm8bdp6l"; depends=[]; };
   svdvisual = derive2 { name="svdvisual"; version="1.1"; sha256="02mzh2cy4jzb62fd4m1iyq499fzwar99p12pyanbdnmqlx206mc2"; depends=[lattice]; };
   svenssonm = derive2 { name="svenssonm"; version="0.1.0"; sha256="0pvay9vfrcafaq270pq6glp2b74zdfgldksl13cwdb0wk7qx7731"; depends=[]; };
   svgPanZoom = derive2 { name="svgPanZoom"; version="0.3.4"; sha256="1iglgwbyxf5q4716h9ba2cfmxh1qq16zwy54krnawg4580v8ydh2"; depends=[htmlwidgets]; };
@@ -17541,6 +17597,7 @@ in with self; {
   svmpath = derive2 { name="svmpath"; version="0.970"; sha256="19b5hfqqsh072l5mbkafm5pjd6qhyj20qd2vq6zl5jjmc45r72w1"; depends=[kernlab]; };
   svmplus = derive2 { name="svmplus"; version="1.0.1"; sha256="08cfywrbaxyacqd3l75lysb23ahqbs80959iqkjbb125aafmhvni"; depends=[MASS Matrix quadprog]; };
   svplots = derive2 { name="svplots"; version="0.1.0"; sha256="0fa3mnsdaz85dy7rr6w454z516simj1zrf08sfbm05rp6jr3c7ws"; depends=[ggplot2]; };
+  svrep = derive2 { name="svrep"; version="0.1.0"; sha256="0v15c57lkriqg50iyiwmmv47fw1q9kf1fswcmsff5d95x3zgydhh"; depends=[survey]; };
   svrpath = derive2 { name="svrpath"; version="0.1.2"; sha256="18h40555jmqpbsnhlwkvc5fl7d0r2bgscdv8amjvhjxmx9y952a2"; depends=[quadprog svmpath]; };
   svs = derive2 { name="svs"; version="3.0.0"; sha256="1jn3dbaqpgydkwf9y7hq97nva26vvrpl9zmw2bw4ky1qgzgz1ypb"; depends=[gtools Matrix]; };
   svyVGAM = derive2 { name="svyVGAM"; version="1.0"; sha256="1dq6rmk3sqpgm7q1chsvwjhc2lfsrgd4isgpxc907w5waqk91n16"; depends=[survey VGAM]; };
@@ -17576,7 +17633,7 @@ in with self; {
   sybilDynFBA = derive2 { name="sybilDynFBA"; version="1.0.2"; sha256="0351qlvyynygjf43q93gkqzzaff3v6gynvbks1ix1mank3afn226"; depends=[sybil]; };
   sybilccFBA = derive2 { name="sybilccFBA"; version="3.0.1"; sha256="1y94d6ajf0l492nrd8wsz3b6x724zcyhipasgyx65nx3sgha6yp8"; depends=[Matrix sybil]; };
   sybilcycleFreeFlux = derive2 { name="sybilcycleFreeFlux"; version="2.0.2"; sha256="0s8yqzn7llzby5v1p7is7qv0m8dzwf14r3m32slf898nxrs131xr"; depends=[MASS Matrix sybil]; };
-  sylcount = derive2 { name="sylcount"; version="0.2-3"; sha256="0ljikwlzscgwbza7z634zn726zv9bxa4j931sx8r6z01gfv3z94j"; depends=[]; };
+  sylcount = derive2 { name="sylcount"; version="0.2-4"; sha256="1qwxag92bpyi5sjr4373divw5zfgzvj2ji99ilcssnqwi46c4w77"; depends=[]; };
   syllabifyr = derive2 { name="syllabifyr"; version="0.1.1"; sha256="1z61afxx2bm37hxvv1fl3x7ibhkp3h1ivl3k9prqzsaw4j592vfx"; depends=[dplyr purrr stringr tibble tidyr]; };
   sylly = derive2 { name="sylly"; version="0.1-6"; sha256="0f03k9d15fkym14y94jb7rkh228blc76jlm7pk229b44hcbh3mmm"; depends=[]; };
   sylly_en = derive2 { name="sylly.en"; version="0.1-3"; sha256="0jw48qin172vv7skcpvcpi9wzgav5l9afzb09hhgcxvivbz6dl93"; depends=[sylly]; };
@@ -17603,7 +17660,7 @@ in with self; {
   synthesisr = derive2 { name="synthesisr"; version="0.3.0"; sha256="0b50d5hfkscggn2f6h8wyljkar08r8cbc0a4l12f809w5hdnjc63"; depends=[stringdist]; };
   synthpop = derive2 { name="synthpop"; version="1.7-0"; sha256="17f2fc4l5733zqrmxvwq9yklraxxxp37810fsnj9lb8sq4cl70rn"; depends=[classInt foreign ggplot2 lattice MASS mipfp nnet party plyr polspline proto randomForest ranger rpart stringr survival]; };
   sys = derive2 { name="sys"; version="3.4"; sha256="11q4zmx62w44p1j34frwmrsp23mc7l4n354i0zyziw92yax8zy0p"; depends=[]; };
-  sysfonts = derive2 { name="sysfonts"; version="0.8.5"; sha256="1fhf0x5sqx3mv72j9d0clkq1qzqiqxbxn1h808f7ccf0mb04v43y"; depends=[]; };
+  sysfonts = derive2 { name="sysfonts"; version="0.8.8"; sha256="1fq5dn4l09sgrbznfz9cakf4vgc3761zwicvqaazh0s8mzbaicpn"; depends=[]; };
   sysid = derive2 { name="sysid"; version="1.0.4"; sha256="0fr9gf5yjin3zvz850z4r4pqc1r4mwx8d46sl64i4csdm9qnqagy"; depends=[bitops ggplot2 polynom reshape2 signal tframe zoo]; };
   syslognet = derive2 { name="syslognet"; version="0.1.2.1"; sha256="0nwni2mn7w43pfasqa2dwy1l6r0ymlkwlsyd5q47fajdr8v1ir0q"; depends=[]; };
   systemfit = derive2 { name="systemfit"; version="1.1-24"; sha256="180ah91i98gjswpbkkdjgnc2c9rz3pl5bw035iks92nd5vl6w5wz"; depends=[car lmtest MASS Matrix sandwich]; };
@@ -17615,13 +17672,12 @@ in with self; {
   tRnslate = derive2 { name="tRnslate"; version="0.0.3"; sha256="0sm0cqxylsxmnhqs1c8w81d6q2sj7nmm86mds59kiyspy9m67sbc"; depends=[]; };
   tRophicPosition = derive2 { name="tRophicPosition"; version="0.7.7"; sha256="1j06rc5s6jpz8i116m98ygc75sx6lk8jd9gw6fb8q342mbbmqh8h"; depends=[coda data_table ggplot2 gridExtra hdrcde MCMCglmm plyr rjags]; };
   tTOlr = derive2 { name="tTOlr"; version="0.2"; sha256="1fk33vp6y65mls1iczjf63wzj1rl1knbdcbd4rnqqfdcqhibb3p3"; depends=[lattice latticeExtra]; };
-  taRifx = derive2 { name="taRifx"; version="1.0.6.2"; sha256="05cvjsi65fvy9hg2v3fldzwn1yd2kfirl3ffg9yfajm903dk3l49"; depends=[plyr reshape2]; };
   tab = derive2 { name="tab"; version="5.1.1"; sha256="1kg8c1safi9klkx2mdkmsf5dn9piy4jljwd4ma7g4jz2rwl4jzhv"; depends=[dplyr kableExtra knitr MASS survey]; };
   tabbycat = derive2 { name="tabbycat"; version="0.17.0"; sha256="1q18vnk4jyql46vjj6bhn2sa65yswg1hw8mbrwv7602dfk09p74x"; depends=[dplyr janitor magrittr purrr rlang stringr tibble tidyr]; };
   taber = derive2 { name="taber"; version="0.1.2"; sha256="0cib8fsib4q8nf18vcpailvkplf57cm8fshb09clxm3zcp8j9c17"; depends=[dplyr magrittr]; };
   tabit = derive2 { name="tabit"; version="0.2.1"; sha256="0jy95jpbzj4rgaxmm6ki9wr0cl1w13pygq3yavdccjr82mayfpvc"; depends=[]; };
   tablaxlsx = derive2 { name="tablaxlsx"; version="1.2.4"; sha256="19yg8m264f1hjsi8b7zxjpbvlaz2jrxj2bd9nv95g52dvlysg4nk"; depends=[openxlsx]; };
-  table_express = derive2 { name="table.express"; version="0.3.3"; sha256="1p8qq00b6nwcfzqi7mm1bg9w1iwmaqq1imh5p032ji76jxhnm3x1"; depends=[data_table dplyr magrittr R6 rlang tidyselect]; };
+  table_express = derive2 { name="table.express"; version="0.4.0"; sha256="1jmpab9lnvnry6i0k9hhvb30hswf6670bvjbr2ir3s2ffj819yw1"; depends=[data_table dplyr magrittr R6 rlang tidyselect]; };
   table_glue = derive2 { name="table.glue"; version="0.0.2"; sha256="01yskmc604jdy6givddm0nhr9ylf7p68v2xz1p2mqylhws1lszph"; depends=[glue stringi]; };
   table1 = derive2 { name="table1"; version="1.4.2"; sha256="1cw85nj6w9fk66wjbyz08ya6g027cfj3brb0sx7ar0n7zyc8rhb4"; depends=[Formula htmltools knitr yaml]; };
   table1xls = derive2 { name="table1xls"; version="0.4.0"; sha256="0ixbshbp9hkcg12hj32vgb5bp0pj4rbc3i6g1xdg2zhqp7zanics"; depends=[XLConnect]; };
@@ -17651,6 +17707,7 @@ in with self; {
   tactile = derive2 { name="tactile"; version="0.2.0"; sha256="0jjfbsadxbf9s6vzi82rw5qa6hdc8iz4jci9xpbzwrjkb90dzd08"; depends=[gridExtra lattice latticeExtra MASS RColorBrewer]; };
   tagcloud = derive2 { name="tagcloud"; version="0.6"; sha256="04zrh029n8pjlxlr6pdd7xhqqhavbrj3fhvhj6ygzlvi2jslxnwl"; depends=[RColorBrewer Rcpp]; };
   tailDepFun = derive2 { name="tailDepFun"; version="1.0.1"; sha256="0rrjg4ky3pjbfwppmnwyijvlzq3c3nf33rl0w4vly52v1ramp5c6"; depends=[copula cubature mvtnorm SpatialExtremes]; };
+  tailTransform = derive2 { name="tailTransform"; version="1.0.4"; sha256="0nflrzq5m1jwf91lavwwzl6ja4qswva1z4gpdbm3q5iscg1hbwp7"; depends=[]; };
   tailloss = derive2 { name="tailloss"; version="1.0"; sha256="0lmjgjs6d94b70i10vx66fyvlxm5swwqbcjsnqa3lmldzz6m4jc1"; depends=[MASS]; };
   taipan = derive2 { name="taipan"; version="0.1.2"; sha256="192sy5pgq74vs31p7jfn6svdzf9mk9ybppzhp1rlki1bagmm5f1r"; depends=[shiny]; };
   takos = derive2 { name="takos"; version="0.2.0"; sha256="09w9lkqhxdb26fvrsb8n16601kqpr2smplipx3lj6cdgbyhb1hqz"; depends=[baseline broom colorRamps data_table deSolve devEMF MASS minpack_lm pracma segmented sfsmisc smoother]; };
@@ -17660,22 +17717,22 @@ in with self; {
   tangram_pipe = derive2 { name="tangram.pipe"; version="1.1.0"; sha256="08whj66nf3idqvjnzgni5iqyqakbdwvrapdixx0zff7q8qbkar8z"; depends=[dplyr]; };
   tapkee = derive2 { name="tapkee"; version="1.2"; sha256="1xgz2cv5jb1hdnl8y8zs4x6p1dk1vv8zbs4wfsj61gpfyf9gkh4f"; depends=[]; };
   tapnet = derive2 { name="tapnet"; version="0.3"; sha256="1fjg98m19iwbzijs5b5l4ssrbx1shv1hmgn1166cbni9y76m44sh"; depends=[ape bipartite MPSEM phytools vegan]; };
-  tarchetypes = derive2 { name="tarchetypes"; version="0.4.1"; sha256="1js09qap4a63m7ldfk8lxj438p5fjy893zqck7vvzmv6zyzxhlg6"; depends=[digest dplyr fs rlang targets tibble tidyselect vctrs withr]; };
+  tarchetypes = derive2 { name="tarchetypes"; version="0.5.0"; sha256="0xqbally2ayr1n2wsc8w985i4j0wfqpndhhdcrpn7hayc9gk4crd"; depends=[digest dplyr fs rlang targets tibble tidyselect vctrs withr]; };
   targeted = derive2 { name="targeted"; version="0.2.0"; sha256="0xcw2xcvp4yz37djl2m7fwr61hfrarbrr05rcnbqkjs3y4q5p99g"; depends=[data_table digest futile_logger future_apply lava optimx progressr Rcpp RcppArmadillo]; };
-  targets = derive2 { name="targets"; version="0.10.0"; sha256="1c9llj6iwry6mj92sy1hqk9kkyyxwa60zr20vj4hivlfff1s2h88"; depends=[base64url callr cli codetools data_table digest igraph knitr R6 rlang tibble tidyselect vctrs withr yaml]; };
+  targets = derive2 { name="targets"; version="0.11.0"; sha256="0dwx34sq0m6pmi2kn47yidrjdgsy43ykvzz3zsvh1yz9jh19w7q8"; depends=[base64url callr cli codetools data_table digest igraph knitr R6 rlang tibble tidyselect vctrs withr yaml]; };
   tashu = derive2 { name="tashu"; version="0.1.1"; sha256="0rirjalridr79a7j3qz80l2vp6m8paqr97ac241b58756k7nr5j7"; depends=[dplyr drat ggplot2 lubridate plyr randomForest RColorBrewer reshape2]; };
   tastypie = derive2 { name="tastypie"; version="0.1.0"; sha256="15ivl0rvnp1j09axk0jaf1wip5cjbnvfmx0crhqqd5y27mfa2hzd"; depends=[dplyr fmsb ggplot2 packcircles RColorBrewer scales shadowtext tibble]; };
   tatest = derive2 { name="tatest"; version="1.0"; sha256="1yd9pdpdhxwpllnj5wxa7ly29qiw8qywx9lx0w3nizczlx35fgjy"; depends=[]; };
   tatoo = derive2 { name="tatoo"; version="1.1.1"; sha256="0w9rm6cnc1mpfyklb8njzjwph2c38niinzxiflrqjqfdp7nd8281"; depends=[assertthat colt crayon data_table magrittr openxlsx stringi withr]; };
   tau = derive2 { name="tau"; version="0.0-24"; sha256="1q8pd7m6rd0899c44plxns5yydifhsccyb51glgw07ni5v4rz3gh"; depends=[]; };
   tauturri = derive2 { name="tauturri"; version="0.3.0"; sha256="014301f5mzy6vblqzb61bxjv46kdynmmrxjpxyvk01w1k8wkwfcn"; depends=[httr magrittr plyr purrr tibble]; };
-  taxa = derive2 { name="taxa"; version="0.4.0"; sha256="1clvq69z68xidv5m1s8vmavh8l6bv6dpb9iln7axb5jbj0iqx1xj"; depends=[cli crayon dplyr jsonlite knitr lazyeval magrittr pillar R6 rlang stringr tibble tidyr vctrs viridisLite]; };
+  taxa = derive2 { name="taxa"; version="0.4.1"; sha256="0k55rn64iz6zbmvkrmx01i716k0vzqqi4ahaw63dfvk3n10gx4zy"; depends=[cli crayon dplyr magrittr pillar rlang stringr tibble vctrs viridisLite]; };
   taxadb = derive2 { name="taxadb"; version="0.1.4"; sha256="00cbbma9wahm6ka75kzpfqgns0cr2z2ri6bpp919icwkvi5rpbmr"; depends=[arkdb contentid curl DBI dbplyr dplyr duckdb jsonlite magrittr progress R_utils rappdirs readr rlang stringi tibble]; };
   taxalight = derive2 { name="taxalight"; version="0.1.5"; sha256="035jzz1dk1icxs9mbd6q091ljf1lalr0wwbcz6a90avwyqphjjx3"; depends=[contentid thor]; };
   taxize = derive2 { name="taxize"; version="0.9.99"; sha256="0738fzckbwkgf21vranxhcfjq487rp3kjdnz2gfvdd1dm21jfp8s"; depends=[ape bold cli conditionz crayon crul data_table foreach jsonlite natserv phangorn R6 ritis rotl rredlist tibble wikitaxa worrms xml2 zoo]; };
   taxizedb = derive2 { name="taxizedb"; version="0.3.0"; sha256="1d7wz6df624263myq4rlvr3mhzhhhdglrrs7f44j201z4f536a2z"; depends=[curl DBI dbplyr dplyr hoardr magrittr readr rlang RSQLite tibble]; };
   taxlist = derive2 { name="taxlist"; version="0.2.2"; sha256="0xdl7aw3ifn4v2wclk38iyayy9r71cx5diir1m4pws986qfdddb4"; depends=[foreign stringdist taxa taxize vegdata]; };
-  taxonbridge = derive2 { name="taxonbridge"; version="1.0.4"; sha256="18n87w3nf3qb5f1ci0bcq7mji14mxh5cx6klb6qw4g8qzr35cznk"; depends=[dplyr ggplot2 purrr rje vroom withr]; };
+  taxonbridge = derive2 { name="taxonbridge"; version="1.0.5"; sha256="0s9w4p76s1ijrg19pr2y2hixqp6blgxkin569gz3wwny0ibq3b2i"; depends=[dplyr ggplot2 purrr rje vroom withr]; };
   taxonomizr = derive2 { name="taxonomizr"; version="0.8.0"; sha256="0i1xn5x8c555hdlnfbhpga4vzn1l6kcqjgcw472y8yg0n7s2birx"; depends=[curl data_table R_utils RSQLite]; };
   taxotools = derive2 { name="taxotools"; version="0.0.79"; sha256="1q69dh1ifa7mc8y3bdgvvg97s9prflh6mczqr4clxnsysd3xhafs"; depends=[plyr sqldf stringdist stringr taxize wikitaxa]; };
   tayloRswift = derive2 { name="tayloRswift"; version="0.1.0"; sha256="1gr179hzqxih49v214dqawfhsbsahhyj1lbj77vqv00zq1siigpl"; depends=[]; };
@@ -17738,8 +17795,9 @@ in with self; {
   terra = derive2 { name="terra"; version="1.5-21"; sha256="0gzl0ka19jjw0dmaghjk2sgwi78kkz4w3rlfkym62rdarhlfj7h9"; depends=[Rcpp]; };
   terrainmeshr = derive2 { name="terrainmeshr"; version="0.1.0"; sha256="1xab6wzq2izzdvsss1rlgp5m3cn45naxhymq6cglipj0fd792jbr"; depends=[Rcpp]; };
   terrainr = derive2 { name="terrainr"; version="0.6.1"; sha256="0xxvd536zgnmgb6p9fvkxaga4mqgb7qzd69xp8zm77a380j8dk05"; depends=[base64enc ggplot2 httr magick png raster rgdal sf units]; };
-  tessellation = derive2 { name="tessellation"; version="2.0.0"; sha256="1pgjaisykyh0096ilfxhp5hlh6p82lsi0p184jfig84afcihn9p8"; depends=[cxhull english hash interp R6 randomcoloR rgl Rvcg scales sets]; };
+  tessellation = derive2 { name="tessellation"; version="2.1.0"; sha256="0pbdf18pz1j18x7lsz306x87p0d339a0y1nacynsqly0706g1s3d"; depends=[cxhull english hash interp R6 randomcoloR rgl Rvcg scales sets]; };
   tesseract = derive2 { name="tesseract"; version="5.0.0"; sha256="1xdwjm3bing15ljdicl20g88ymmd0bbjmlbah5hzvws5b656iicn"; depends=[curl digest pdftools rappdirs Rcpp]; };
+  test2norm = derive2 { name="test2norm"; version="0.2.1"; sha256="1llzvdggjvc72qwkv9iiqxx7prj3hnr9bqpwsib4qmfpmmxsif37"; depends=[mfp]; };
   testDriveR = derive2 { name="testDriveR"; version="0.5.1"; sha256="0wjdqvsyv33fsg1lljp9m0bhz38mpfgpgickgj4zdspc9x6lbnv6"; depends=[]; };
   testarguments = derive2 { name="testarguments"; version="0.0.1"; sha256="1x77z0pljfi6z4bs6db3zsjbpyypsd3jbd0ykh4pq07595phh8x5"; depends=[dplyr ggplot2 magrittr plyr reshape2]; };
   testassay = derive2 { name="testassay"; version="0.1.1"; sha256="1gc35s5an0cpvadwx4bswy5lzcp01az3gnkjhvph6sm3pi3xjxm7"; depends=[]; };
@@ -17749,14 +17807,14 @@ in with self; {
   tester = derive2 { name="tester"; version="0.1.7"; sha256="1x5m43abk3x3fvb2yrb1xwa7rb4jxl8wjrnkyd899ii1kh8lbimr"; depends=[]; };
   testforDEP = derive2 { name="testforDEP"; version="0.2.0"; sha256="1mgzhj8b35r5cm4bl0nnyxj0h7rwd28d17qvgvaky2kvm2r83cf9"; depends=[Hmisc minerva Rcpp]; };
   testit = derive2 { name="testit"; version="0.13"; sha256="104dcxdmzgj340mwk4lpw1y6j1xc4rv4a2v09ckx3nvbmdl73m4h"; depends=[]; };
-  testthat = derive2 { name="testthat"; version="3.1.2"; sha256="0ndnmv3gbhlsyqya382wqfkkhlrgpdjmh7mymsv6ja52ihbachgd"; depends=[brio callr cli crayon desc digest ellipsis evaluate jsonlite lifecycle magrittr pkgload praise processx ps R6 rlang waldo withr]; };
+  testthat = derive2 { name="testthat"; version="3.1.3"; sha256="0c7whxl6zwapqzdplwplvhs73w9blb419h2mdl21pwmqjhzjaq68"; depends=[brio callr cli crayon desc digest ellipsis evaluate jsonlite lifecycle magrittr pkgload praise processx ps R6 rlang waldo withr]; };
   testthis = derive2 { name="testthis"; version="1.1.1"; sha256="0csragn695698dpkr9d3md0g81bzpy5mybd0jik669q9cs8sdzh2"; depends=[assertthat devtools fs magrittr pkgload rprojroot stringi testthat usethis]; };
   testtwice = derive2 { name="testtwice"; version="1.0.3"; sha256="06fr13ww2wqk753p0cnl1ldn3nqrvdfnz0lgkpldcn0xwiwjh2x2"; depends=[mvtnorm]; };
   tetraclasse = derive2 { name="tetraclasse"; version="0.1.21"; sha256="1cl2cah0xi6x3rvvdy56iszai6rkbxc1w3x13v0l1z1nryff7c6a"; depends=[dplyr FactoMineR ggplot2 ggrepel magrittr reshape2 tibble tidyr]; };
   tetragon = derive2 { name="tetragon"; version="1.0.0"; sha256="17n6g262f19bvxh0i35xcpf9qbdzaff80vvmx8vsijjiniw2hrbq"; depends=[abind ggplot2 greybox imputeTS lubridate modeest moments narray philentropy purrr readr scales stringr tictoc]; };
-  texPreview = derive2 { name="texPreview"; version="1.5"; sha256="11njmn29qq50iff30in9i0yfi6ypnpqsx3317smr9fiw3hgda3c5"; depends=[base64enc details fs htmltools knitr lifecycle magick magrittr rematch2 rstudioapi svgPanZoom whisker xml2]; };
+  texPreview = derive2 { name="texPreview"; version="2.0.0"; sha256="0lw9yvpw5id9ix5kzv5zw0rlw6098hpjrzx00l0cn37vljmqqg0p"; depends=[base64enc details fs htmltools knitr magick rematch2 rstudioapi svgPanZoom tinytex whisker xml2]; };
   texmex = derive2 { name="texmex"; version="2.4.8"; sha256="115x7j2kvifzsrmh8zy6xymm1p01sxk4c26zdmi0p51bsgvs46ih"; depends=[ggplot2 mvtnorm Rcpp]; };
-  texreg = derive2 { name="texreg"; version="1.38.5"; sha256="1d0syszvxhxiplwsbq12s6rw4lrrbn4w3mmljs7vkw8p4gd8fp78"; depends=[httr]; };
+  texreg = derive2 { name="texreg"; version="1.38.6"; sha256="1z8j9whybvzjcrvivk3jhh8clfrbwdb7ss6mhqp0dlhbq2vn7gb8"; depends=[httr]; };
   text = derive2 { name="text"; version="0.9.50"; sha256="0s81j3kbrzxcfbwxnk5hbdqlb3pjmlxjswjy8pj7s13h5gnsm1bw"; depends=[cowplot dplyr furrr future ggplot2 ggrepel magrittr overlapping parsnip purrr recipes reticulate rlang rsample stringi tibble tidyr tune workflows yardstick]; };
   text_alignment = derive2 { name="text.alignment"; version="0.1.2"; sha256="0qjnzdm7savn2jqmm23cd3rszyihnhb5rfnygc36ccfd15vav79j"; depends=[Rcpp]; };
   text2map = derive2 { name="text2map"; version="0.1.3"; sha256="0p8knb450rz79531cb9kkc4rlns3p7qrq212jss2jcwxfnl640dv"; depends=[doParallel dplyr fastmatch foreach igraph kit magrittr Matrix mlpack qgraph rlang stringi stringr text2vec tibble]; };
@@ -17779,7 +17837,7 @@ in with self; {
   textplot = derive2 { name="textplot"; version="0.2.1"; sha256="10nxh9axhy6kyp6f3rz7smq08yl35ydx9jx47bs7i0bmcl2kwxvl"; depends=[data_table lattice Matrix]; };
   textrank = derive2 { name="textrank"; version="0.3.1"; sha256="0a777wchiax0y8jprvz5xw8h1xh7yvad0wrqhkgbqy5p3cvlcih6"; depends=[data_table digest igraph]; };
   textreadr = derive2 { name="textreadr"; version="1.2.0"; sha256="163ziizi3r00gamdl7wiwy5qsmb4sxlkw64qfij0b4jcr7p1ncqg"; depends=[antiword curl data_table pdftools readxl rvest striprtf textshape xml2]; };
-  textrecipes = derive2 { name="textrecipes"; version="0.4.1"; sha256="0wdkfh9591pfi4n0xj38kny5jbb43csdgcjiag3xh3zdmyhaz8li"; depends=[dplyr generics magrittr Matrix purrr Rcpp recipes rlang SnowballC tibble tidyr tokenizers vctrs]; };
+  textrecipes = derive2 { name="textrecipes"; version="0.5.1"; sha256="1bc6wm4y4dg11g30rv67s4wya0kmvmp2pxxzv4aakhlb7badcbpr"; depends=[dplyr generics glue lifecycle magrittr Matrix purrr Rcpp recipes rlang SnowballC tibble tidyr tokenizers vctrs]; };
   textreg = derive2 { name="textreg"; version="0.1.5"; sha256="0h44z5hyndnvzd9axix7gpmhbdx347dfgxw9r8w38kyw6dklbjy6"; depends=[NLP Rcpp tm]; };
   textreuse = derive2 { name="textreuse"; version="0.1.5"; sha256="1mva0f6pk0kpfw0vf90qw3a25f1i3imdhk2s7hxyzans0z2237jd"; depends=[assertthat BH digest dplyr NLP Rcpp RcppProgress stringr tibble tidyr]; };
   textshape = derive2 { name="textshape"; version="1.7.3"; sha256="0k9injxykgj2qprc7dygd7gafvcbh3r9x84qzaa1al21pk0dz7ds"; depends=[data_table slam stringi]; };
@@ -17799,27 +17857,27 @@ in with self; {
   tfplot = derive2 { name="tfplot"; version="2021.6-1"; sha256="0w0m9d2lvjl96vxwvks2v086y4gqiv2n0d50j2yrngys9p2nrlxc"; depends=[tframe]; };
   tfprobability = derive2 { name="tfprobability"; version="0.15.0"; sha256="0xsszigx805kwr5df4gnyxkng4sq9h0wjxa8lh2nvh4v24s4pgxj"; depends=[keras magrittr reticulate tensorflow]; };
   tframe = derive2 { name="tframe"; version="2015.12-1.1"; sha256="1yff22jzh1mp73zbz2mav6z8m42lylfjhb8dgxj4337fv3if3i13"; depends=[]; };
-  tframePlus = derive2 { name="tframePlus"; version="2016.7-1"; sha256="12xi2xw4pr78n3cppfknpxmjp2263pb4kqj9v412yxwp82rgb6yk"; depends=[tframe timeSeries]; };
+  tframePlus = derive2 { name="tframePlus"; version="2022.3-1"; sha256="1axrvfigdmwmas0q3qlmk4m7jybqcssjgmyww2knp8jw7kp212vy"; depends=[tframe timeSeries]; };
   tfruns = derive2 { name="tfruns"; version="1.5.0"; sha256="04lfckg1if3kfwcl4s4fcc9aw04crwk4m1qr55ag22j2x2jlb2l9"; depends=[base64enc config jsonlite magrittr reticulate rlang rstudioapi tidyselect whisker yaml]; };
   tfse = derive2 { name="tfse"; version="0.5.0"; sha256="05q75xsiy955xwgchagk7l7725y6mylp5lj5284xm7y2xh197zp3"; depends=[dapr magrittr]; };
   tgamtheme = derive2 { name="tgamtheme"; version="0.1.0"; sha256="1igv6vl3vqqx8pbvj5qr21cjphpizq3b5sjss359bhw2gy747npl"; depends=[ggplot2]; };
   tgcd = derive2 { name="tgcd"; version="2.5"; sha256="1zsmard9vai0m4gz5mf5b9qqv6i7h5xhv1mbs2sc0kcznk28jirn"; depends=[]; };
   tggd = derive2 { name="tggd"; version="0.1.1"; sha256="1izar1b3w148vp2r8gv3vpwfndib8ilxcjxgbfzbxn7q5mr73mwa"; depends=[gsl]; };
-  tgp = derive2 { name="tgp"; version="2.4-17"; sha256="0hl9nv2nayhq9jiy6lrgn702lb95allqiq8v221rj9pzxpc1230c"; depends=[maptree]; };
+  tgp = derive2 { name="tgp"; version="2.4-18"; sha256="1hwpjmij2a10d410bqkmj06ri109yr5zcc27r2m8x3zyd2wmb2qi"; depends=[maptree]; };
   tgram = derive2 { name="tgram"; version="0.2-3"; sha256="0vlnry8drq3fqfy8dk50pcwcx9dj657kx6s19fs2b6acigkr4g7w"; depends=[zoo]; };
   tgstat = derive2 { name="tgstat"; version="2.3.16"; sha256="12apvcpdwfng0sp2v80xvpk7ynbadi2lvbfk14hlcsvw8h3rb268"; depends=[]; };
   tgver = derive2 { name="tgver"; version="0.2.0"; sha256="0p8pm47kpajwhhk3a96rl2nfj69qqvbw5qwp1in3qv11wxv4cbyj"; depends=[callr geojsonsf plumber]; };
   thankr = derive2 { name="thankr"; version="1.0.0"; sha256="089ikp85d5ia6a1qzmw8dkgcmz628cibmwfzcpk7m3ii8acxq91w"; depends=[]; };
   theiaR = derive2 { name="theiaR"; version="0.4.0"; sha256="07m532r67cil2ya2w9lfhycrm8n0ga0r3x7jwbp5jbd83hw4l1p6"; depends=[askpass httr R6 raster XML]; };
   thematic = derive2 { name="thematic"; version="0.1.2.1"; sha256="1hr9373256n1rya3l2z2sqwfifypsh6wrs2s27aqchh9sm0blkmy"; depends=[farver ggplot2 rappdirs rlang rstudioapi scales]; };
-  themis = derive2 { name="themis"; version="0.1.4"; sha256="0zc7djygyiy1sjgvbznb6nqcglfnbybxaz5frphns92m7smqy0l9"; depends=[dplyr generics purrr RANN recipes rlang ROSE tibble unbalanced withr]; };
+  themis = derive2 { name="themis"; version="0.2.0"; sha256="0sliczk31584qcxhmyaczg2r497zk8w9mki4v00ndjw36jz37x54"; depends=[dplyr generics glue gower lifecycle purrr RANN recipes rlang ROSE tibble unbalanced withr]; };
   thermocouple = derive2 { name="thermocouple"; version="1.0.2"; sha256="1rlvhw3i83iq1vibli84gj67d98whvgkxafwpmisva1m4s1bmij4"; depends=[]; };
   thestats = derive2 { name="thestats"; version="0.1.0"; sha256="15y6ibw7i4nrm8990yirqf64gl1x4l7lj3ajk19vi6ccxw82x2gl"; depends=[dplyr]; };
   thewitcher = derive2 { name="thewitcher"; version="1.0.1"; sha256="140f0insb5gqrfdaq5cnzj6bl0akbif57jnyy7ai3rb2rwy9n2nv"; depends=[dplyr ggplot2 gridExtra magrittr MASS readr tidyverse usethis]; };
   thgenetics = derive2 { name="thgenetics"; version="0.4-2"; sha256="1314gry3xs9v4jy13g08q16qy4ax3s0bc7d74gi0wbpkgdrk3lql"; depends=[]; };
   thief = derive2 { name="thief"; version="0.3"; sha256="12ymkkisg5p0g1gmvlczhp4dc7mirjg55fqqmz2d90673vlg6rfq"; depends=[forecast ggplot2 hts]; };
   thinkr = derive2 { name="thinkr"; version="0.15"; sha256="17mfw067advk8vxlz8x0w0vww3718zp2fcs00sca8ivlh8yh9fcg"; depends=[assertthat crayon devtools dplyr ggplot2 lazyeval lubridate magrittr officer purrr readr rvg stringi stringr tidyr]; };
-  this_path = derive2 { name="this.path"; version="0.5.0"; sha256="0fcmdkwrg4gmss2q2xkwrlr6wy5v0qzqzb5l890adihmqvlhb8ra"; depends=[]; };
+  this_path = derive2 { name="this.path"; version="0.5.1"; sha256="0fmhi1ijnxcka7pb63azzga3iv4k5zkb7dnc9f2adphmnq4lqv70"; depends=[]; };
   thor = derive2 { name="thor"; version="1.1.2"; sha256="0r4kgzbydjb7z0j808g5zdkx5wmbqncqg453bqm4ylafpj5z79kv"; depends=[R6 storr]; };
   thorn = derive2 { name="thorn"; version="0.2.0"; sha256="0sybjqwv9al5khkhhc7khbgr7n2vy6aggarh9n75mxpa8hn7j2qr"; depends=[htmlwidgets]; };
   thredds = derive2 { name="thredds"; version="0.1-1"; sha256="1ssx9sm55ycdny36nlydxqylfr0d51hyj3rgsmnk5d8wyhivnxb9"; depends=[httr magrittr R6 rlang xml2]; };
@@ -17831,7 +17889,6 @@ in with self; {
   threg = derive2 { name="threg"; version="1.0.3"; sha256="1ja0w4hhdkw3b1cipbpw8ym27k5lh2m7gibd74mj6gij7rpixrnb"; depends=[Formula survival]; };
   thregI = derive2 { name="thregI"; version="1.0.4"; sha256="0zddd32fnfi98zwq08akkvhkg3c66sj3jii6ap8p1m9a0wg2k2k3"; depends=[Formula survival]; };
   threshr = derive2 { name="threshr"; version="1.0.3"; sha256="1vs2jfvh1pjzyfz1s4w92sw13yz2nhc28gc3iyqz8a82rrdm4mdq"; depends=[revdbayes rust]; };
-  thriftr = derive2 { name="thriftr"; version="1.1.5"; sha256="1s8fn0imja6gh5bb0h2g1pmvkwk5v0dmpml9yvcd5dhz9lxy6vdj"; depends=[R6 rly stringi]; };
   thsls = derive2 { name="thsls"; version="0.1"; sha256="18z7apskydkg7iqrs2hgnzby578qsvyd73wx8v4z3aa338lssdi7"; depends=[Formula]; };
   thunder = derive2 { name="thunder"; version="0.3.0"; sha256="0lzaab5acgy4s7qkq10l0yfdgrsya74757a025j205jin4m49hai"; depends=[aiRthermo climate dplyr Rcpp]; };
   thurstonianIRT = derive2 { name="thurstonianIRT"; version="0.12.1"; sha256="1qac1kg441x6fx3nxlhj1w1q7b3isivw6hzy7np3g1ics3kxpw8b"; depends=[BH dplyr knitr lavaan magrittr MplusAutomation mvtnorm Rcpp RcppEigen RcppParallel rlang rstan rstantools StanHeaders tibble tidyr]; };
@@ -17847,7 +17904,7 @@ in with self; {
   tidyLPA = derive2 { name="tidyLPA"; version="1.1.0"; sha256="1lyd8cx90j49bm65330i57jyimiid75c2pvnzk7dcp6mbmglvimz"; depends=[dplyr ggplot2 gtable mclust mix MplusAutomation tibble]; };
   tidyREDCap = derive2 { name="tidyREDCap"; version="0.2.2"; sha256="15xbkcfikzlglhh2y54rbpknbhzm6h9bq72f4h3g8bmfr44vy72g"; depends=[dplyr janitor magrittr purrr rlang stringr tibble tidyr]; };
   tidyRSS = derive2 { name="tidyRSS"; version="2.0.4"; sha256="0djkdjgs64f00pcs5gc8vmijyjsfb5sm0p64bybhs1y0kb3wlnl3"; depends=[anytime dplyr glue httr jsonlite magrittr purrr rlang tibble tidyselect vctrs xml2]; };
-  tidySEM = derive2 { name="tidySEM"; version="0.2.1"; sha256="1vq7dfqb2396lw49wa5mjn60nvha6hv9ziknh14b4cj1qh85pz7x"; depends=[ggplot2 gtable igraph lavaan MplusAutomation OpenMx psych]; };
+  tidySEM = derive2 { name="tidySEM"; version="0.2.2"; sha256="0wbd3jf63j26qcnraqc94mz62cvkc8wqp7ww09m1kd83ik8mlca7"; depends=[blavaan ggplot2 gtable igraph lavaan MplusAutomation OpenMx psych]; };
   tidyUSDA = derive2 { name="tidyUSDA"; version="0.3.3"; sha256="1aqcvqc64qb8dbpmiw4cl06k0fh34fz5svzhjdgzrywl5qan3br3"; depends=[crayon dplyr fuzzyjoin ggplot2 httr jsonlite magrittr purrr sf tigris]; };
   tidybayes = derive2 { name="tidybayes"; version="3.0.2"; sha256="00672xhg8a8r4sk36sm827bb435r1hchkphl1jpnkld8vbdhvpd2"; depends=[arrayhelpers coda dplyr ggdist ggplot2 magrittr posterior rlang tibble tidyr tidyselect vctrs withr]; };
   tidybins = derive2 { name="tidybins"; version="0.1.0"; sha256="1kwwz0y1anlf1l8yl80xyiggdi8alsh0drb1529rijfk2jxlljg9"; depends=[badger ClusterR dplyr framecleaner ggplot2 janitor lubridate magrittr OneR purrr rlang rlist scales strex stringr tibble tidyselect xgboost]; };
@@ -17861,7 +17918,7 @@ in with self; {
   tidycwl = derive2 { name="tidycwl"; version="1.0.6"; sha256="1i2z5dxrqz1l3366fmmgc4pfqnhm91nlc0m4y8mvzwgsgmf6dkxp"; depends=[dplyr htmlwidgets jsonlite magrittr visNetwork webshot yaml]; };
   tidydatatutor = derive2 { name="tidydatatutor"; version="0.1.0"; sha256="0d7qr1j5ag6ikzq89xc7w9pvsbcp14r0x8ra9v4svx59bg31n94q"; depends=[clipr knitr rstudioapi]; };
   tidydice = derive2 { name="tidydice"; version="0.1.1"; sha256="1iagm3avd0ncnd2jrx1mgri96gcv3bs7vbn2qdq44idv222k9igd"; depends=[assertthat dplyr ggplot2 magrittr purrr tibble]; };
-  tidydr = derive2 { name="tidydr"; version="0.0.3"; sha256="1sdh0grqccn1l2i4ji5q1yc5iz4vyzdfmd6qy5ypsza6bnkpgg1d"; depends=[ggplot2 rlang]; };
+  tidydr = derive2 { name="tidydr"; version="0.0.4"; sha256="0ws4z5ldz7wyhxn7h5gf8j4p3srvr5dfr6xxrf1rymx1iz9pd6sv"; depends=[ggplot2 rlang]; };
   tidyestimate = derive2 { name="tidyestimate"; version="1.1.0"; sha256="0cwk6clah4sapbmfl5vvcv6di39azxb07z73pypnqx4gd32kk5q7"; depends=[dplyr ggplot2 ggrepel glue rlang]; };
   tidyfast = derive2 { name="tidyfast"; version="0.2.1"; sha256="1bfs2wma705nx1lpndq75ama5dr9kkg8hwpklb20csnccnfrlvf6"; depends=[data_table Rcpp]; };
   tidyfst = derive2 { name="tidyfst"; version="1.6.0"; sha256="1x7aiypcwx9vdfpwgfza86xdk545kf038mc9gl84kga4binic4pl"; depends=[data_table fst stringr]; };
@@ -17871,14 +17928,14 @@ in with self; {
   tidygenomics = derive2 { name="tidygenomics"; version="0.1.2"; sha256="1cnwmmmzp9kg4k7iy2kgb22bdllpnz257pv1ahy3l11zy6bl48fc"; depends=[dplyr fuzzyjoin IRanges purrr Rcpp rlang tidyr]; };
   tidygeoRSS = derive2 { name="tidygeoRSS"; version="0.0.1"; sha256="0bppkwbxmm8ps1cnrhzxkzm2pbi3s5bfiwx8fcrp31x81jl61w1x"; depends=[anytime dplyr httr jsonlite magrittr purrr rlang sf strex stringr tidyRSS xml2]; };
   tidygeocoder = derive2 { name="tidygeocoder"; version="1.0.5"; sha256="1ffj8ka5miv3jnds7fdrkcqdc3m2w1ab724z9m10biky213skqka"; depends=[dplyr httr jsonlite lifecycle progress tibble]; };
-  tidygraph = derive2 { name="tidygraph"; version="1.2.0"; sha256="17qjns33zcj82jcsl7bn7i4zxcm7ric50zyf7agi0i01zi16qz85"; depends=[dplyr igraph magrittr pillar R6 Rcpp rlang tibble tidyr]; };
-  tidyhydat = derive2 { name="tidyhydat"; version="0.5.4"; sha256="0pkh6pd8rvjlang5zf15c2ca465shi46ks3mbzyymdy5sdj63hdf"; depends=[cli crayon DBI dbplyr dplyr httr lubridate rappdirs readr rlang RSQLite tidyr]; };
+  tidygraph = derive2 { name="tidygraph"; version="1.2.1"; sha256="0dmdff3bkg53xn0c51xd6k2d9c7l250x1lhl5z3libf533dw5g9g"; depends=[cli cpp11 dplyr igraph magrittr pillar R6 rlang tibble tidyr]; };
+  tidyhydat = derive2 { name="tidyhydat"; version="0.5.5"; sha256="1lb74v4p31rk7nrk5lldjb0iqizqvkia0gsqlvwkysh7xs1hpig9"; depends=[cli crayon DBI dbplyr dplyr httr lubridate rappdirs readr rlang RSQLite tidyr]; };
   tidyjson = derive2 { name="tidyjson"; version="0.3.1"; sha256="1rx5ncp20j9mhcziyqb0vgfq9061qylgvfwz27dsyz58r8fygwnq"; depends=[assertthat dplyr jsonlite magrittr purrr rlang tibble tidyr]; };
   tidylab = derive2 { name="tidylab"; version="4.1.1"; sha256="052wgx4dfbr806b9r0cfblkwaf1qnrlf5ngm1c029ggss3br7ki4"; depends=[cli crayon decorators dplyr microservices purrr rstudioapi tibble usethat]; };
   tidylda = derive2 { name="tidylda"; version="0.0.2"; sha256="1zwy94gpr43dc6ld3rjmr5rkapmxji6kd3p363zl03wn5qf3wbws"; depends=[dplyr generics gtools Matrix mvrsquared Rcpp RcppArmadillo RcppProgress RcppThread rlang stringr tibble tidyr tidytext]; };
-  tidylo = derive2 { name="tidylo"; version="0.1.0"; sha256="135aw7zqgxz7l3zgskhzy72lgm1xwl50566s0s45dq7h6ah0vi5d"; depends=[dplyr rlang]; };
+  tidylo = derive2 { name="tidylo"; version="0.2.0"; sha256="07xnbycwrqg3cmbxx76drbjd0mx4s23vf3kihlc9rj4ajjx48z8r"; depends=[dplyr rlang]; };
   tidylog = derive2 { name="tidylog"; version="1.0.2"; sha256="076am30ayc16wm3bilznxqzd5806yi7dx5m9yv4w7q90i7imsqk7"; depends=[clisymbols dplyr glue tidyr]; };
-  tidymodels = derive2 { name="tidymodels"; version="0.1.4"; sha256="18krycdn0h1i8swrq6bgj8qnb200rr0pqhr6maq3h1jc66x0y7nd"; depends=[broom cli conflicted dials dplyr ggplot2 hardhat infer modeldata parsnip purrr recipes rlang rsample rstudioapi tibble tidyr tune workflows workflowsets yardstick]; };
+  tidymodels = derive2 { name="tidymodels"; version="0.2.0"; sha256="1xkv4s4kn7k9137svb39zrm5302gxpxyp1jv5bb6z0xrvj5wwa4i"; depends=[broom cli conflicted dials dplyr ggplot2 hardhat infer modeldata parsnip purrr recipes rlang rsample rstudioapi tibble tidyr tune workflows workflowsets yardstick]; };
   tidymv = derive2 { name="tidymv"; version="3.3.0"; sha256="0r192jiwfj6pk41jpap8gfk0irjkx2877qiqxi1hm196hns6hpjg"; depends=[dplyr ggplot2 magrittr mgcv rlang tibble tidyr]; };
   tidync = derive2 { name="tidync"; version="0.2.4"; sha256="1nm3021m3xnn4xkprkxd9sj9bwvfbwhrdhfdkfhsc9azqy3rgg9f"; depends=[dplyr forcats magrittr ncdf4 ncmeta purrr rlang RNetCDF tibble tidyr]; };
   tidyndr = derive2 { name="tidyndr"; version="0.2.0"; sha256="1c4g57zp50mfrsh8lac4iava37fx39i2yrjfrb1m0j22grsczfml"; depends=[dplyr forcats janitor lubridate magrittr purrr rlang stringr tibble tidyr tidyselect vroom]; };
@@ -17899,16 +17956,16 @@ in with self; {
   tidystopwords = derive2 { name="tidystopwords"; version="0.9.1"; sha256="00kak679ddwdgvqmjs5312w9k8sapc1n7dxipgqqfjqw2xy0h1jh"; depends=[dplyr]; };
   tidystringdist = derive2 { name="tidystringdist"; version="0.1.4"; sha256="1srxh5gyspcghzvnmpyq36ky608ipf71vv0s1jg01mgf2i5pdkf4"; depends=[attempt rlang stringdist tibble]; };
   tidysynth = derive2 { name="tidysynth"; version="0.1.0"; sha256="0rckvp51gp22bjcwcszdhhn51bzjivwndnvjcf67h1vmyqa3zjkj"; depends=[dplyr forcats ggplot2 kernlab LowRankQP magrittr optimx rgenoud rlang tibble tidyr]; };
-  tidytable = derive2 { name="tidytable"; version="0.7.0"; sha256="14acqg5wvyfndl85fjgnwkyjwvyyvdk0z2884w5gxvc4aj0xy2g3"; depends=[data_table glue lifecycle magrittr pillar rlang tidyselect vctrs]; };
+  tidytable = derive2 { name="tidytable"; version="0.7.1"; sha256="175b484w1iz1ppqlpffbz96xpwa723w8gq1hnj67f3qggwbf5yzs"; depends=[data_table glue lifecycle magrittr pillar rlang tidyselect vctrs]; };
   tidytext = derive2 { name="tidytext"; version="0.3.2"; sha256="0as7lscjl6ywk85almmb4f71vxmgkfds46g52ryggkg2isksvq3g"; depends=[dplyr generics hunspell janeaustenr lifecycle Matrix purrr rlang stringr tibble tokenizers vctrs]; };
-  tidytidbits = derive2 { name="tidytidbits"; version="0.3.1"; sha256="0fqqmisp339ynr5p5qs2dzshx031kggp7c70zm2w1v932xpalsrz"; depends=[dplyr extrafont forcats magrittr purrr rlang stringr tibble tidyr tidyselect]; };
+  tidytidbits = derive2 { name="tidytidbits"; version="0.3.2"; sha256="1zbm165bimjag7azhy77zlzqilygybqxz35q4r3d7hi7p6m96w78"; depends=[dplyr extrafont forcats magrittr purrr rlang stringr tibble tidyr tidyselect]; };
   tidytransit = derive2 { name="tidytransit"; version="1.3.0"; sha256="1n7c4iblxa1yifh51x4767k61qp99r6r4pchcyvz4bq7jbvclf18"; depends=[checkmate data_table digest dplyr geodist gtfsio hms httr rlang sf]; };
   tidytreatment = derive2 { name="tidytreatment"; version="0.2.2"; sha256="04z3afharkqyjk5kk097kpqlrmvq5220bsdlzmbzwl5k56vgxgxx"; depends=[dplyr purrr readr rlang tidybayes tidyr]; };
   tidytree = derive2 { name="tidytree"; version="0.3.9"; sha256="1prfv2jy6z4zp4gyi9krzbysipsbnjrkxcccflm4nwsd9i7mshqj"; depends=[ape dplyr lazyeval magrittr pillar rlang tibble tidyr tidyselect yulab_utils]; };
   tidytuesdayR = derive2 { name="tidytuesdayR"; version="1.0.2"; sha256="00xlbmgg8779ypqcrdgn56lyklqknhh3pmqfc49f84xa5hrkyjfs"; depends=[httr jsonlite lubridate magrittr purrr readr readxl rstudioapi rvest usethis xml2]; };
   tidyverse = derive2 { name="tidyverse"; version="1.3.1"; sha256="0ck6xmsw5p168jmw2fqv79fzfnw5jckfra7mfii261j6kl89bkw3"; depends=[broom cli crayon dbplyr dplyr dtplyr forcats ggplot2 googledrive googlesheets4 haven hms httr jsonlite lubridate magrittr modelr pillar purrr readr readxl reprex rlang rstudioapi rvest stringr tibble tidyr xml2]; };
-  tidyvpc = derive2 { name="tidyvpc"; version="1.2.0"; sha256="1xih8gdc44ddi5kqx8kq9i3pz21hddha87fpb58wjfr5hsaw18sy"; depends=[classInt data_table fastDummies ggplot2 magrittr mgcv quantreg rlang]; };
-  tidywikidatar = derive2 { name="tidywikidatar"; version="0.5.0"; sha256="0gbvb5vbxjccs9ac5xjbslqg7h5y2cw71d69q44jc7i1iqwckzys"; depends=[DBI dplyr fs glue jsonlite magrittr pool progress purrr rlang RSQLite stringr tibble tidyr usethis WikidataQueryServiceR WikidataR]; };
+  tidyvpc = derive2 { name="tidyvpc"; version="1.3.0"; sha256="1in9wsgibf3srba6bzfz3b7hpwhmj5xblzydr612w7wp898zclpz"; depends=[classInt data_table fastDummies ggplot2 magrittr mgcv quantreg rlang]; };
+  tidywikidatar = derive2 { name="tidywikidatar"; version="0.5.1"; sha256="02zj4142pg1072dwjrfnmnpvy6jff55sr2pz5b72j5l7ldnk28fy"; depends=[DBI dplyr fs glue jsonlite magrittr pool progress purrr rlang RSQLite stringr tibble tidyr usethis WikidataQueryServiceR WikidataR WikipediR]; };
   tidyxl = derive2 { name="tidyxl"; version="1.0.7"; sha256="1wg8h5fd2hd8ilshrbcs99q18p15687dx8j51v5pyd30pg5cab7b"; depends=[piton Rcpp]; };
   tiff = derive2 { name="tiff"; version="0.1-11"; sha256="0xgc7vyndxxahfhc2qqzmwi56bnfyl0pn72l820jz5sd24aymhxq"; depends=[]; };
   tiger = derive2 { name="tiger"; version="0.2.3.1"; sha256="0xr56c46b956yiwkili6vp8rhk885pcmfyd3j0rr4h8sz085md6n"; depends=[e1071 hexbin klaR lattice qualV som]; };
@@ -17919,11 +17976,13 @@ in with self; {
   tigreBrowserWriter = derive2 { name="tigreBrowserWriter"; version="0.1.5"; sha256="0izgx1khci6qc6pz85dxj75kzxvpr30l0vhcv9476jrcbwqs4k8m"; depends=[DBI RSQLite]; };
   tigris = derive2 { name="tigris"; version="1.6"; sha256="0q8niaa5l4xh2qfp243321ybqxg7s974wvifr4fdwnjgyjxgn57s"; depends=[dplyr httr magrittr maptools rappdirs rgdal sf sp stringr uuid]; };
   tikzDevice = derive2 { name="tikzDevice"; version="0.12.3.1"; sha256="040yz6wi05151m9nal97symv66a133kk0a8c1h6nz058zk081vav"; depends=[filehash png]; };
-  tiledb = derive2 { name="tiledb"; version="0.11.0"; sha256="1lgagf8ix8bnl6g7qp0lzaz4xd6wlp9xa02rqyxb30bk0g022ik7"; depends=[nanotime Rcpp]; };
+  tiledb = derive2 { name="tiledb"; version="0.11.1"; sha256="1gyghz21d3v13129a1d3klpswir0j2j7al0rg6x2x5k81g3ijclg"; depends=[nanotime Rcpp]; };
   tilegramsR = derive2 { name="tilegramsR"; version="0.2.0"; sha256="11cnyvlghg8z7lr9ahzsjpyjrqnxqs77wdcydqvavrsqj745xvi2"; depends=[sf sp]; };
   tilemaps = derive2 { name="tilemaps"; version="0.2.0"; sha256="06pwwlndb7nvw2b0h0fak3vnpbi11mxsby43qm9ng3k3sqwrqjz2"; depends=[clue ggplot2 igraph lwgeom sf smoothr]; };
   tiler = derive2 { name="tiler"; version="0.2.5"; sha256="02sxc70s8v5b5lf1fpv1ig1hmpkamsmzbgpk6zds504gh9kz7qxy"; depends=[png raster rgdal sp]; };
   tilting = derive2 { name="tilting"; version="1.1.1"; sha256="0srvxjv3sg35n7f8pam45ny1z1dxwqjkrz9d91hf67a3fi34f5gk"; depends=[mvtnorm]; };
+  timbeR = derive2 { name="timbeR"; version="2.0.0"; sha256="1w3msacp58qsl9jsaaw9985kjdrzl8513lmr5wp6afl8xpc0yqwq"; depends=[cowplot dplyr ggplot2 lazyeval magrittr miniUI shiny tibble tidyr]; };
+  timbr = derive2 { name="timbr"; version="0.1.0"; sha256="13v6manmaclpjc04rx0ddhcawfh9b8lbvb7hhzsry1v34ffpj64k"; depends=[dplyr memoise pillar purrr rlang tibble tidygraph tidyselect vctrs]; };
   timeDate = derive2 { name="timeDate"; version="3043.102"; sha256="0wvl5pq261rvbgly7vilk3x3m9xk3ly6il1i5scwdf6srl1vlz1p"; depends=[]; };
   timeR = derive2 { name="timeR"; version="1.2.0"; sha256="0lkx2ilbzq29w1c9ssya4f0za0sj7y30y9ml4v3zc21c1la0b6vi"; depends=[lubridate R6]; };
   timeROC = derive2 { name="timeROC"; version="0.4"; sha256="1qxijg7hazc8bifwj2254ig2p3cbrp9p0bsyhhh3aikf1rg113v1"; depends=[mvtnorm pec]; };
@@ -17939,8 +17998,8 @@ in with self; {
   timeperiodsR = derive2 { name="timeperiodsR"; version="0.6.2"; sha256="09vwp04j7n176xs1lbdmbyi557byx6fdvqyjay1785hkb9ivws5q"; depends=[lubridate]; };
   timereg = derive2 { name="timereg"; version="2.0.1"; sha256="1mrqy54jwgfygjlm7hvlx42c631is1nc1q6jd3chw2cx3pi9lhiq"; depends=[lava numDeriv survival]; };
   timesboot = derive2 { name="timesboot"; version="1.0"; sha256="1ixmcigi1bf42np93md8d3w464papg9hp85v0c3hg3vl4nsm2bji"; depends=[boot]; };
-  timeseriesdb = derive2 { name="timeseriesdb"; version="0.4.1"; sha256="1ghb3lg63fs9zx34l5qczv39mdccnmqzlc74l1zhb8qmsg8sm1g2"; depends=[data_table DBI jsonlite openxlsx RPostgreSQL shiny xtable xts zoo]; };
-  timetk = derive2 { name="timetk"; version="2.7.0"; sha256="173vg1mq5557fn39h36kqladc6b0bp22kmfv5pwi9lcgyc47sd2a"; depends=[anytime assertthat dplyr forcats forecast generics ggplot2 hms lubridate padr plotly purrr readr recipes rlang rsample slider stringi stringr tibble tidyr tidyselect timeDate tsfeatures xts zoo]; };
+  timeseriesdb = derive2 { name="timeseriesdb"; version="1.0.0-1.1.2"; sha256="17j1nxpgbfbzmfc6zrgcw68ri9ncslic9qdkxkdpfr2gi1w61bpc"; depends=[data_table DBI jsonlite RPostgres xts]; };
+  timetk = derive2 { name="timetk"; version="2.8.0"; sha256="0jwa3qllninjsq5xx7rhls72w1955a3ysscaq80vby7fjij80pwb"; depends=[anytime assertthat dplyr forcats forecast generics ggplot2 hms lubridate padr plotly purrr readr recipes rlang rsample slider stringi stringr tibble tidyr tidyselect timeDate tsfeatures xts zoo]; };
   timetools = derive2 { name="timetools"; version="1.14"; sha256="13jchgd9fc8hxj74wm1kg4rwcng4yxblkq04i33djsqghgb5f9mj"; depends=[]; };
   timetree = derive2 { name="timetree"; version="1.0"; sha256="1fpdp6mkwm67svqvkfflvqxn52y2041zl09rxrms28ybbd5f84c0"; depends=[phangorn XML]; };
   timevis = derive2 { name="timevis"; version="2.0.0"; sha256="07padnd90s8s62sfcmg5l6b64md1cl4cfsxp5xm92nrlz82ksbbs"; depends=[htmltools htmlwidgets jsonlite lubridate magrittr rmarkdown shiny]; };
@@ -17956,7 +18015,7 @@ in with self; {
   tinyscholar = derive2 { name="tinyscholar"; version="0.1.4"; sha256="0lj5ax3m5kr18qf9xmrh6iyy00bp59wwi3ss96ynsyiajmndsajf"; depends=[curl dplyr ggplot2 gt jsonlite magrittr purrr R_utils rlang rvest stringr xml2]; };
   tinyspotifyr = derive2 { name="tinyspotifyr"; version="0.2.2"; sha256="19nicp1ml73lylja2np52rcc070maxm9286fjm7bfx3zsblxmakc"; depends=[httr jsonlite]; };
   tinytest = derive2 { name="tinytest"; version="1.3.1"; sha256="1mq31f7bzcz5bkgzl9khm1i80axfzra7gcjqxd2yqb4wrw1m3x4s"; depends=[]; };
-  tinytex = derive2 { name="tinytex"; version="0.37"; sha256="1na8g4z1crq0ia9ba17d0qxaif47jij2z3y14xlxjv7x243k6krg"; depends=[xfun]; };
+  tinytex = derive2 { name="tinytex"; version="0.38"; sha256="11hww4x4q44xg559gplmjc6hmzmap0w249nnzyw5dy2ys30bbhga"; depends=[xfun]; };
   tipa = derive2 { name="tipa"; version="1.0.5"; sha256="1mdjpbdbgd5n22l7fc0bfansh536ib1bgjaxzrl8g534cjxdnhgl"; depends=[optimr]; };
   tipitaka = derive2 { name="tipitaka"; version="0.1.2"; sha256="0xf64bpzwywwjm0135c7zjn4ha0h1zj36rj2d4h8dskiq9z90xqi"; depends=[cpp11 dplyr magrittr stringi stringr]; };
   tippy = derive2 { name="tippy"; version="0.1.0"; sha256="00c9v07ax7l0x5wpx3ca8hqvdqs3p62d58igp51rsbh9x1ylgjcn"; depends=[htmltools htmlwidgets jsonlite shiny]; };
@@ -17986,7 +18045,7 @@ in with self; {
   tm1r = derive2 { name="tm1r"; version="1.1.8"; sha256="15w703rd7mfm32b62yv9mpms2fjq9ifmc1n460vsrpqz1dkiavb9"; depends=[httr jsonlite]; };
   tmap = derive2 { name="tmap"; version="3.3-3"; sha256="012y50hbz2f87mwcmd9lp9ikcplvkz51g4fmanw3swlc1zpqxrb0"; depends=[abind classInt htmltools htmlwidgets leafem leaflet leafsync RColorBrewer rlang sf stars tmaptools units viridisLite widgetframe]; };
   tmaptools = derive2 { name="tmaptools"; version="3.1-1"; sha256="0bal3czrdr93qig8s5cf5szld5vjbbks67rismfhlkmlgw6wp2gx"; depends=[dichromat lwgeom magrittr RColorBrewer sf stars units viridisLite XML]; };
-  tmbstan = derive2 { name="tmbstan"; version="1.0.3"; sha256="0y05albvggavhdijymwhw2ffg07jnvspppysmbz984c1my98zw4l"; depends=[BH Rcpp RcppEigen RcppParallel rstan StanHeaders TMB]; };
+  tmbstan = derive2 { name="tmbstan"; version="1.0.4"; sha256="1amjsvj7m7vyyhbppklw15n6xd02d2qjhswwzh543kc2f2hy79l4"; depends=[BH Rcpp RcppEigen RcppParallel rstan StanHeaders TMB]; };
   tmcn = derive2 { name="tmcn"; version="0.2-13"; sha256="0rf8mz6kdm83pm85kzfyzb8kd3iwaxv5bgphjpxlnq6z32m9yds7"; depends=[]; };
   tmle = derive2 { name="tmle"; version="1.5.0.2"; sha256="1m1zz48cp8agxswgrwvvzdh50kyyc84hw328nyhbbnfkx19c6wj7"; depends=[glmnet SuperLearner]; };
   tmle_npvi = derive2 { name="tmle.npvi"; version="0.10.0"; sha256="00jav1ql3lv18wh9msxnjvz36z2ds44fdi6lrp1pfphh1in4vdcl"; depends=[geometry MASS Matrix R_methodsS3 R_oo R_utils]; };
@@ -17997,7 +18056,7 @@ in with self; {
   tmt = derive2 { name="tmt"; version="0.3.0-20"; sha256="1i4y01mbj9qkd4svgmhc18q47yd44jrqv4lsyk69rk1nr09d83lv"; depends=[ggplot2 Rcpp]; };
   tmvmixnorm = derive2 { name="tmvmixnorm"; version="1.1.1"; sha256="0i1g3598d43azyy1bsrvkjybqa5cd991fpmfqi5wv5703zaha2fj"; depends=[MASS]; };
   tmvnsim = derive2 { name="tmvnsim"; version="1.0-2"; sha256="03xsvsg9bqvgl98ywid3h91mmlhax5s6wvmypp3hq91vmc5kvxlp"; depends=[]; };
-  tmvtnorm = derive2 { name="tmvtnorm"; version="1.4-10"; sha256="1w3kmpx25l7rb80vpclqq4pbbv12qgysyqxjq3lp55l9nklkb7qs"; depends=[gmm Matrix mvtnorm]; };
+  tmvtnorm = derive2 { name="tmvtnorm"; version="1.5"; sha256="1zk0ak71wlk9d0lkwn6q28sdz4y2k7sgx021vdprlcg4vimn0yhw"; depends=[gmm Matrix mvtnorm]; };
   tmvtnsim = derive2 { name="tmvtnsim"; version="0.1.1"; sha256="1gf5gqb333q82cbdw3lfjmxnn8z7qds73xmc8dqm06zcqsfmdbv3"; depends=[Rcpp RcppArmadillo]; };
   tnet = derive2 { name="tnet"; version="3.0.16"; sha256="0922y9zb64zazl2irwfxxbghkgcwi2q57gylpiaxgmj4q6lc62l9"; depends=[igraph survival]; };
   toOrdinal = derive2 { name="toOrdinal"; version="1.3-0.0"; sha256="1zfx91024dyafkfyjsm2829qsqkz57g6p5v47lp2x0ykrwpdbm37"; depends=[crayon testthat]; };
@@ -18031,6 +18090,7 @@ in with self; {
   torchvisionlib = derive2 { name="torchvisionlib"; version="0.1.0"; sha256="0kiix21gqpjw4qhz9xwpmlygjy66qxjdk3ja3dbrc1gz3x132drl"; depends=[glue Rcpp rlang torch]; };
   tornado = derive2 { name="tornado"; version="0.1.1"; sha256="12wvcc5p5fk6b1w3qhahjad5k0m34f744jszaid8hnrbbfysp8na"; depends=[assertthat ggplot2 gridExtra scales survival]; };
   tosca = derive2 { name="tosca"; version="0.3-2"; sha256="1z8svczy93lpdj7n1gk9jz8jgzkjsf886ldlkgq1mfi1j6m8557y"; depends=[data_table htmltools lda lubridate quanteda RColorBrewer stringr tm WikipediR]; };
+  toscmask = derive2 { name="toscmask"; version="1.2.3"; sha256="1inryfbci03klv4rlkzf20f3a0sc187lxybd4yn1dimz6f5z71ni"; depends=[]; };
   toscutil = derive2 { name="toscutil"; version="2.1.0"; sha256="1ciyfxm3kbgvfqasv90i9ldrbvmkk0ryp310a1f44iih8rpvb2g6"; depends=[]; };
   tosls = derive2 { name="tosls"; version="1.0"; sha256="03nqwahap504yvcksvxdhykplbzmf5wdwgpzm7svn8bymdc472v2"; depends=[Formula]; };
   tosr = derive2 { name="tosr"; version="0.1.1"; sha256="1hif33q73pbzgrs92ffkfiisxgxk35fyf37bvxb5kccrpwly9zih"; depends=[bibliometrix CINNA dplyr igraph magrittr rebus rlang stringr tibble tidyr]; };
@@ -18043,7 +18103,7 @@ in with self; {
   toxtestD = derive2 { name="toxtestD"; version="2.0"; sha256="0b7hmpfhwg626r8il12shni0kw94cqnbj49y4vfh8gn98x1s6m48"; depends=[]; };
   tpAUC = derive2 { name="tpAUC"; version="2.1.1"; sha256="0wix9qwcidj7xfqhh7bmrpnadd9qlkvg3515gaamdxkjbz2kyydc"; depends=[pROC]; };
   tpfp = derive2 { name="tpfp"; version="0.0.1"; sha256="0vm5qssaanvi0sck2hj1qgjra89a42i6nvzbva5z0aj2hkd5h4vh"; depends=[knitr readxl xlsx]; };
-  tpn = derive2 { name="tpn"; version="1.1"; sha256="062kim1wljg3pjzj1www8jljfpz35sylqykbp8w899srr3qmv22c"; depends=[pracma skewMLRM]; };
+  tpn = derive2 { name="tpn"; version="1.2"; sha256="1sf2zx3arwf5aix56kb8bj6hx60shpz3jy51mfifxrjy7jcrfrn8"; depends=[moments pracma skewMLRM VGAM]; };
   tpr = derive2 { name="tpr"; version="0.3-2"; sha256="0v2s35yjislzaw924r1mk7jqzs0bxx6kyd3g1sc9rxlflvlbp15y"; depends=[lgtdl]; };
   tracer = derive2 { name="tracer"; version="1.0.0"; sha256="1jdh4ljcz7d0w2y5miggqkvv397jdx7fn108hbjw93af2gnh698q"; depends=[clisymbols crayon prettycode]; };
   tracerer = derive2 { name="tracerer"; version="2.2.2"; sha256="0932074lzkzprn8rr8f59ywhgn33fwvbnkxnxg97k29gapx49iyb"; depends=[jsonlite Rcpp testit]; };
@@ -18055,15 +18115,14 @@ in with self; {
   trackdown = derive2 { name="trackdown"; version="1.1.1"; sha256="1l8mqdfpdf25vyibxqcqhyip6aqllb9riz2v6w4k1rfc8b9dl07f"; depends=[cli googledrive rmarkdown]; };
   trackeR = derive2 { name="trackeR"; version="1.5.2"; sha256="1f3giz6naxxyicgy9v0391ang43srwhy9zbiv4zmlc8i9v05b57i"; depends=[fda foreach ggmap ggplot2 ggridges gridExtra gtable jsonlite leaflet raster RSQLite scam sp xml2 zoo]; };
   trackeRapp = derive2 { name="trackeRapp"; version="1.2"; sha256="1y6n9hgzybz5860qpzj9rdb9yl4k6b9h13d91fqn3qarpnx9n5qr"; depends=[changepoint colorspace DT foreach mapdeck mgcv plotly sf shiny shinydashboard shinyjs shinyWidgets trackeR V8 zoo]; };
-  trackr = derive2 { name="trackr"; version="0.10.7"; sha256="0h7ihymdvfvnnyxfxjwshslrxngh3i2ksqvhxynrp46m20mwjavd"; depends=[CodeDepends fastdigest ggplot2 gridGraphics histry htmltools lattice miniUI RJSONIO rlang rmarkdown roprov rsolr shiny]; };
   trackter = derive2 { name="trackter"; version="0.1.1"; sha256="11rk53w0y9p0az6ydiq3vy50j1pj4p4cml5dqabrpcgfz4icjkrs"; depends=[data_table dplyr EBImage features ggplot2 jpeg Momocs pastecs plyr raster zoo]; };
   tractor_base = derive2 { name="tractor.base"; version="3.3.3.1"; sha256="0w5jw7pf77npkgig7667yikpbwv4dfk1dcq63qm88l409ga2f95p"; depends=[ore reportr RNifti shades]; };
   trade = derive2 { name="trade"; version="0.8.0"; sha256="1ly8mb1gm40v72lwk29l3g55f2clrcmvn5vgfijfnc4nq37j1h0j"; depends=[antitrust]; };
-  tradepolicy = derive2 { name="tradepolicy"; version="0.5.0"; sha256="1rjyx6mwqxgjprzll9908jgvl0q9dr8axjy6dp4fsxq2pvlnnz8m"; depends=[broom cli crayon dplyr ggplot2 lmtest magrittr msm purrr rstudioapi sandwich tibble tidyr]; };
+  tradepolicy = derive2 { name="tradepolicy"; version="0.6.0"; sha256="1hpynl8klfsid7s8ksz7flzd7jblxx8vz0di9hcw5ppvihgh0jki"; depends=[broom cli crayon dplyr fixest ggplot2 magrittr msm purrr rstudioapi sandwich tibble tidyr]; };
   tradestatistics = derive2 { name="tradestatistics"; version="3.0.2"; sha256="18v9iq588fp1w8p72an51dargqa7vcgaln8wiz9d2a0sjhq0gxxk"; depends=[crul data_table digest jsonlite memoise]; };
   trafo = derive2 { name="trafo"; version="1.0.1"; sha256="0gq3snjpkw0ncny7pkfi686qkgdhd8id73jxjk3chhqf5mzrrsbc"; depends=[FNN lmtest moments pryr]; };
   trainR = derive2 { name="trainR"; version="0.0.1"; sha256="0wmxhw8yxkxpw08jma3r0zy7dhsrkbh5wjvd3izp5gf9dn9533cd"; depends=[dplyr glue lubridate magrittr purrr RCurl stringr tibble tidyr usethis xml2]; };
-  traineR = derive2 { name="traineR"; version="1.6.2"; sha256="1q6r7q6k0rsx21bxp2vp4rnrjnslngwbv55kmrlmzn4mw61xh33q"; depends=[ada adabag dplyr dummies e1071 ggplot2 glmnet glue kknn MASS neuralnet nnet randomForest ROCR rpart scales stringr xgboost]; };
+  traineR = derive2 { name="traineR"; version="1.6.3"; sha256="0yky04b4skj28q8jdz7f3lphfmibly89q2xbqmlr2cp1d2qiw6h4"; depends=[ada adabag dplyr dummies e1071 ggplot2 glmnet glue kknn MASS neuralnet nnet randomForest ROCR rpart scales stringr xgboost]; };
   traipse = derive2 { name="traipse"; version="0.2.5"; sha256="1gqpqnf9pi5s90m0h9i1zl9k9g38npnhq3hhzz0kjga979jdqkyw"; depends=[geodist geosphere magrittr]; };
   traitdataform = derive2 { name="traitdataform"; version="0.6.7"; sha256="1p5m480k8da4k091jiryqry0zwg8kw3s1cvvpgqjmjkz3v11dxsd"; depends=[curl data_table getPass plyr RCurl reshape2 suppdata taxize units XML]; };
   traits = derive2 { name="traits"; version="0.5.0"; sha256="04s2523wkbjqxpwllvcy7ikyfri5gldgnynjswsxdy0k945wacvz"; depends=[crul data_table hoardr httr jsonlite readr rvest taxize tibble xml2]; };
@@ -18071,14 +18130,14 @@ in with self; {
   trajeR = derive2 { name="trajeR"; version="0.9.0.5"; sha256="1zy3hg1m1a5dpx494mlb72vfpng5892dcginv6rwxc2c1ggv6z86"; depends=[capushe MASS minpack_lm numDeriv Rcpp RcppArmadillo ucminf]; };
   trajectories = derive2 { name="trajectories"; version="0.2-3"; sha256="1k1fyjyng9mi3k5v6bpbv3vkqr7c9zjp4yiyynb3rjxqpn1fxx7k"; depends=[lattice sp spacetime zoo]; };
   trajr = derive2 { name="trajr"; version="1.4.0"; sha256="092hx27b6d0vy1pvmga1z3b245aa9gn9aw3hszbhhkkic5zfpgbq"; depends=[plotrix signal]; };
-  tram = derive2 { name="tram"; version="0.6-4"; sha256="04vv1ydmcjc6rffl35a898jlc9lgvqrjnbc06k4krr0igq2s39ya"; depends=[basefun Formula Matrix mlt multcomp sandwich survival variables]; };
+  tram = derive2 { name="tram"; version="0.7-0"; sha256="00414wq7lnnhv90av673ag0jsgwfx4rbfj8m9aqac0v7pnk12qsh"; depends=[basefun Formula Matrix mlt multcomp sandwich survival variables]; };
   tramME = derive2 { name="tramME"; version="0.1.3"; sha256="0gqvk15xk2wl12vlmshj9sz0qvih03wrbs700hkd1ifjlm2kjlnl"; depends=[alabama basefun coneproj lme4 MASS Matrix mlt mvtnorm nlme numDeriv RcppEigen TMB tram variables]; };
   tramnet = derive2 { name="tramnet"; version="0.0-6"; sha256="034ij8ir5v31n22pig7v6qizmyhpar1mklifvcskg0ydmpy7qkj4"; depends=[basefun CVXR lhs mlr mlrMBO mlt ParamHelpers sandwich smoof tram]; };
   trampoline = derive2 { name="trampoline"; version="0.1.1"; sha256="05inq5j8gvnpww6z21dzc57vilsm4gx3m274fpsamp54q85mi68s"; depends=[coro fastmap rlang]; };
   tranSurv = derive2 { name="tranSurv"; version="1.2.2"; sha256="17rvzjcn76z5niw1jappiadbkf66a9x0m7p3251lgb7qrnvpx3gk"; depends=[rootSolve SQUAREM survival truncSP]; };
   transcribeR = derive2 { name="transcribeR"; version="0.0.0"; sha256="0y2kxg2da71i962fhsjxsr2ic3b31fmffhj3gg97b0nykfpcviib"; depends=[httr]; };
   transfR = derive2 { name="transfR"; version="0.1.1"; sha256="1pdacv0w5rf7vn6pbyydrjj1v6w8m36v1jaghb28xv3gn27308iy"; depends=[doParallel foreach Rdpack sf stars units]; };
-  transforEmotion = derive2 { name="transforEmotion"; version="0.0.1"; sha256="1f4gv78dfbjyr42z908qc92giavhsbm05430c5adyicfpxwnpil7"; depends=[pbapply reticulate]; };
+  transforEmotion = derive2 { name="transforEmotion"; version="0.1.0"; sha256="1mzbv1hj78nhm61liqwca9s5pa4rm027zzg4r5g52z7ks9ca0z0c"; depends=[dplyr LSAfun osfr pbapply remotes reticulate]; };
   transformmos = derive2 { name="transformmos"; version="0.1.0"; sha256="1hsp399cj6cnsysb4hm4ra075qm2fxkjhyq16m3nai51fvzkak0p"; depends=[]; };
   transformr = derive2 { name="transformr"; version="0.1.3"; sha256="1dn6h8i7vli2zv4408djyg74j9fv9sjrqf75hx9dh7qnj352wf69"; depends=[lpSolve Rcpp rlang sf tweenr]; };
   translateR = derive2 { name="translateR"; version="1.0"; sha256="11kh9hjpsj5rfmzybnh345n1gzb0pdksrjp04nzlv948yc0mg5gm"; depends=[httr RCurl RJSONIO textcat]; };
@@ -18109,7 +18168,6 @@ in with self; {
   treemap = derive2 { name="treemap"; version="2.4-3"; sha256="1fg8gygw38x7msn32barx2irvcv8flm6wqvipnbj1qkh9w89y3q4"; depends=[colorspace data_table ggplot2 gridBase igraph RColorBrewer shiny]; };
   treemapify = derive2 { name="treemapify"; version="2.5.5"; sha256="0g6bwchyn13iksv8vyc4d0c7n1zpy26x1bd6vkrm8ail98y2ia2m"; depends=[ggfittext ggplot2]; };
   treenomial = derive2 { name="treenomial"; version="1.1.3"; sha256="1cw17dnayh5pgcgh5wghskq3i0zc7ww8kb8flyqyqrb4za2w47b6"; depends=[ape Rcpp RcppArmadillo RcppThread]; };
-  treeperm = derive2 { name="treeperm"; version="1.6"; sha256="0mz7p9khrsq4dbkijymfvlwr01y4fvs0x6si4x5xid16s2zsnmm4"; depends=[]; };
   treeplyr = derive2 { name="treeplyr"; version="0.1.10"; sha256="0k5hblnpbs8h2812blc6crx1j9w9r7lzkz3fraxkn4gdfpfi5100"; depends=[ape dplyr geiger lazyeval phytools Rcpp]; };
   treespace = derive2 { name="treespace"; version="1.1.4.1"; sha256="177n1h4yjvfmdsyy4anwi1gfxcxxvhdlyqagn74ni3pi6mxvjp4s"; depends=[ade4 adegenet adegraphics adephylo ape combinat distory fields htmlwidgets MASS phangorn phytools Rcpp rgl RLumShiny scatterD3 shiny shinyBS]; };
   treestartr = derive2 { name="treestartr"; version="0.1.0"; sha256="05rxy9lmb77ng4266871sd881mlp4rd5qalvsd7ps2x2j4plaqf4"; depends=[ape phytools]; };
@@ -18133,7 +18191,6 @@ in with self; {
   tribe = derive2 { name="tribe"; version="0.1.8"; sha256="01z1b9k3j4xi5fp9pkpr991yr7x8vk8vysipy7iwdmdr7xg4w4p0"; depends=[dplyr lazyeval magrittr rlang rstudioapi]; };
   tricolore = derive2 { name="tricolore"; version="1.2.2"; sha256="0pxahddc3dah4n4xk4i0dkiwvh4wf03gcx8q3nfrsk07zzap1zh1"; depends=[assertthat ggplot2 ggtern shiny]; };
   triebeard = derive2 { name="triebeard"; version="0.3.0"; sha256="1hqyz57gph02c9fdc07lxz113bbklif3g18sw8jan6pakhhdc7dz"; depends=[Rcpp]; };
-  triggerstrategy = derive2 { name="triggerstrategy"; version="1.1.0"; sha256="1gly2brw0glcnx8is4mrlrbxgnma57vpfid5lkpz2wdakwn7y2by"; depends=[GA gsrsb ldbounds mvtnorm nleqslv]; };
   trigpoints = derive2 { name="trigpoints"; version="1.0.0"; sha256="1hckjh2gb0fvd2c8x6mj0idpk3im7b831y7mbli1hqhry6qqdw15"; depends=[sf tibble]; };
   trimTrees = derive2 { name="trimTrees"; version="1.2"; sha256="0v75xf5186dy76332x4w7vdwcz7zpqga8mxrb5all2miq2v45fi8"; depends=[mlbench randomForest]; };
   trimcluster = derive2 { name="trimcluster"; version="0.1-5"; sha256="12siv8yx8dcavsz8jk96lwscbj257ar8jpaxksl2zb06987g4fcj"; depends=[]; };
@@ -18152,7 +18209,7 @@ in with self; {
   tropAlgebra = derive2 { name="tropAlgebra"; version="0.1.1"; sha256="1idvhxhw2f6z8iq0nfdj6jmzy8913vid84rvln6rx2dkzw3s9wnl"; depends=[]; };
   tropicalSparse = derive2 { name="tropicalSparse"; version="0.1.0"; sha256="1ay6i3pzz5lpvznxqln31mijp86p6z0df7rvp0gm4lxvn294m7f8"; depends=[]; };
   trotter = derive2 { name="trotter"; version="0.6"; sha256="0i8r2f2klkkfnjm7jhvga3gx6m7r97pd73d88004jzlm9ficspgy"; depends=[]; };
-  trtf = derive2 { name="trtf"; version="0.3-9"; sha256="0zbad1hpy4glwql0q5l5wn1s5lwpxdh7isxypn5nzwq83vpvcw2y"; depends=[Formula libcoin mlt partykit sandwich variables]; };
+  trtf = derive2 { name="trtf"; version="0.4-0"; sha256="1475qlhbgi56fr3nwqkmspqxbfrqxcr1wk1mbm9mj2ph9zlrxphw"; depends=[Formula libcoin mlt partykit sandwich tram variables]; };
   truelies = derive2 { name="truelies"; version="0.2.0"; sha256="1qxzw7x7xgp9x6klnq6jv0fl8al2l24br2sd59r5gq076gkqc47k"; depends=[hdrcde]; };
   trueskill = derive2 { name="trueskill"; version="0.1"; sha256="0mqvm64fcsxjlh789lqdk6l28q31yhh6jjirwjlgbpxxb90c5107"; depends=[]; };
   truh = derive2 { name="truh"; version="1.0.0"; sha256="0acsyzm6rpmzyq8pg33c631hi4xir49gqxbpshcrr6i2v3q6k14j"; depends=[cluster doParallel foreach fpc iterators Rfast]; };
@@ -18184,7 +18241,7 @@ in with self; {
   tsdisagg2 = derive2 { name="tsdisagg2"; version="0.1.0"; sha256="1vjypf9d4rdprpgxfsgpccn412kvar59v341ridq2hcdp7hfb70s"; depends=[]; };
   tsensembler = derive2 { name="tsensembler"; version="0.1.0"; sha256="0amb3dn96hdgy5a0j6s43mf82cdjwbz8dhz3yrjlr07nknxzirzi"; depends=[Cubist doParallel earth foreach gbm glmnet kernlab monmlp pls ranger RcppRoll softImpute xgboost xts zoo]; };
   tsentiment = derive2 { name="tsentiment"; version="1.0.4"; sha256="173m4ry58rz5cgffrwzxd9wr22w2ziny82zzby958w6vpyysdsc0"; depends=[dplyr ggplot2 httr progress reshape2 stringi syuzhet tibble tidytext wordcloud wordcloud2]; };
-  tseries = derive2 { name="tseries"; version="0.10-49"; sha256="1fhldj95d16cwygw8xg0kvr4xk569mpzprdvahlsf4hzykc2dgs5"; depends=[quadprog quantmod zoo]; };
+  tseries = derive2 { name="tseries"; version="0.10-50"; sha256="16654v691jqpgiisz442h9znlxgj96c9gvhk3pgmm48bfsxs6iqw"; depends=[quadprog quantmod zoo]; };
   tseriesChaos = derive2 { name="tseriesChaos"; version="0.1-13.1"; sha256="0qfrrzd0h8n9zp7wj5fl88wkiv22fs5zy8x509g316j0avm5zjr3"; depends=[deSolve]; };
   tseriesEntropy = derive2 { name="tseriesEntropy"; version="0.6-0"; sha256="04clfkpkiy5p5nxcq59c7f4v1llj1d95lvck23h1px50lvb993fv"; depends=[cubature ks]; };
   tsfeatures = derive2 { name="tsfeatures"; version="1.0.2"; sha256="1zi7p7gdd9bg6rpdin88rq9qi43cpk663xmvffa7d5p1w45831kd"; depends=[forecast fracdiff furrr future purrr RcppRoll tibble tseries urca]; };
@@ -18199,13 +18256,14 @@ in with self; {
   tsintermittent = derive2 { name="tsintermittent"; version="1.9"; sha256="1mrb6yrsjwj6j40n97sgg42ddvwhjnaiq9k7ka249bbq01gf2975"; depends=[MAPA]; };
   tsmp = derive2 { name="tsmp"; version="0.4.14"; sha256="1ahqdizygbs49xbgn35fdb5drxwyx2z9ima4fm83aqwaan7wrrja"; depends=[audio checkmate doSNOW foreach magrittr progress Rcpp RcppParallel RJSONIO]; };
   tsna = derive2 { name="tsna"; version="0.3.5"; sha256="0rgzdf60j8ahi0zgypkj7wd7y7ghrkymc48kjfyz9w3ksmrzgqjf"; depends=[network networkDynamic statnet_common]; };
-  tsne = derive2 { name="tsne"; version="0.1-3"; sha256="0s8cv2pndkddq62rzlgzgfdjp1vjv5hz5i5957sllnb97vbzbzb6"; depends=[]; };
+  tsne = derive2 { name="tsne"; version="0.1-3.1"; sha256="126q6ha25wx9mdsfngzkyp8j2fj81ri1knjdq1iyvwx3q1dwdaql"; depends=[]; };
   tsoutliers = derive2 { name="tsoutliers"; version="0.6-8"; sha256="02qd7ky416yp2l4cfl2yl7ckr2aidkps9cxkk03r9r7c5247c6zh"; depends=[forecast]; };
   tspmeta = derive2 { name="tspmeta"; version="1.2"; sha256="028jbbd0pwpbjq4r6jcc1h0p7c4djcb9d2mvgzw1rmpphaxjvrkd"; depends=[BBmisc checkmate fpc ggplot2 MASS splancs stringr TSP vegan]; };
   tsqn = derive2 { name="tsqn"; version="1.0.0"; sha256="1iv1wwa6a9824dbgfk5a609szppc3a8j250z74hb8csjvwwx9qq9"; depends=[fracdiff MASS robustbase]; };
   tsriadditive = derive2 { name="tsriadditive"; version="1.0.0"; sha256="1zk97vz5ag6j0r8w3b5kgl2cx628jmdy73spmwmsw7x5yc24901d"; depends=[survival]; };
   tsrobprep = derive2 { name="tsrobprep"; version="0.3.2"; sha256="0y7h8kh721r859b7y5vxh4q7dmjlx50qcc6pib204x3hhzv1yyrc"; depends=[glmnet MASS Matrix mclust quantreg Rdpack textTinyR zoo]; };
   tssim = derive2 { name="tssim"; version="0.1.7"; sha256="154snb0npy8zbkspp475nv9rvv1ls6rbgxz3jr152j79vsiis3ng"; depends=[dsa timeDate tsbox xts zoo]; };
+  tstools = derive2 { name="tstools"; version="0.4.1"; sha256="0jvagd64zqaqqch78y7pdxmds5mfyy53qafs8fqzd0d0rzjsks0j"; depends=[data_table jsonlite xts yaml zoo]; };
   tsutils = derive2 { name="tsutils"; version="0.9.2"; sha256="0gp8f0a9dn3h4lv38xiw04j832igwhfralzc5vd74r952x7b6hbx"; depends=[forecast MAPA plotrix RColorBrewer]; };
   tsviz = derive2 { name="tsviz"; version="0.1.0"; sha256="099ga750kr9hrkd8vaxhz6h4gha6zfr9jzqwrmgms2h2h1a7jxr7"; depends=[dplyr forecast ggplot2 lubridate magrittr miniUI plotly shiny shinyhelper]; };
   tsvr = derive2 { name="tsvr"; version="1.0.2"; sha256="1h8yjnw7f8w6m19jh3a518vkzjcmbhl3lk15d1jyhy8p4ajzzjdx"; depends=[]; };
@@ -18217,11 +18275,11 @@ in with self; {
   ttbbeer = derive2 { name="ttbbeer"; version="1.1.0"; sha256="1azffcizm3460kxvrxxkilc6qxspyi247x8drrw5ywfichwhmdhc"; depends=[]; };
   ttcg = derive2 { name="ttcg"; version="1.0.1"; sha256="1kha6jp89r8qx5rycwlcl1dprw33j71yng03k9l7q3b7d4lz4bg5"; depends=[numDeriv]; };
   ttdo = derive2 { name="ttdo"; version="0.0.8"; sha256="184rfmrd4y63j8i62w8cy7d6cqgvlhj8h6zgjzsvad9l6pq2hmb3"; depends=[diffobj tinytest]; };
-  tth = derive2 { name="tth"; version="4.12-0"; sha256="0bwn8xxswkilv0gagh54fiw90pvjzpz6w6ky4prc3mm070plqf4b"; depends=[]; };
+  tth = derive2 { name="tth"; version="4.12-0-1"; sha256="0sdk519sx8h2l0ggddkwlnh9llrx4fzmvwzdjrbi2bg8zv2y30x1"; depends=[]; };
   ttservice = derive2 { name="ttservice"; version="0.1.2"; sha256="0wsdbxhvxh93qj69mdjfbymsa5y0q1ngj12wvlymcsnayifa420w"; depends=[]; };
   ttt = derive2 { name="ttt"; version="1.0"; sha256="12bjhp78162v5y64qxfccaqxgwdqhmd3iwjda6pi7j6zqmy9p0gm"; depends=[Formula htmltools knitr]; };
   tttplot = derive2 { name="tttplot"; version="1.1.1"; sha256="0rmgp1888y07w0h8kwq1azpr6bysjq4pyjf6ygpra75jj4563wx9"; depends=[]; };
-  ttutils = derive2 { name="ttutils"; version="1.0-1"; sha256="18mk30070mcplybg320vjbk9v5flxnbqi5gx0yyr1z6ymjmnrxbc"; depends=[]; };
+  ttutils = derive2 { name="ttutils"; version="1.0-1.1"; sha256="01lmnlyj6pn2r73hhr57r9c83h3pw9x506h4dj09wmlgrzv4w30a"; depends=[]; };
   ttwa = derive2 { name="ttwa"; version="0.8.5.1"; sha256="1lhypcwssq0dspizvln3w4dg16ad6mz8cj4w34c5vsrayqid7fyn"; depends=[data_table]; };
   tuber = derive2 { name="tuber"; version="0.9.9"; sha256="1nnjwn3c0rr90jvkwlh9xs5vc2nl6qzjj958hbddfrkny0w88mnp"; depends=[dplyr httr jsonlite plyr purrr]; };
   tubern = derive2 { name="tubern"; version="0.1.0"; sha256="0wpn4aig6r1kpncrgrqra4kr0f07rdq7z4p2k0h28f7kww6l52vv"; depends=[httr jsonlite]; };
@@ -18232,8 +18290,8 @@ in with self; {
   tukeytrend = derive2 { name="tukeytrend"; version="0.7"; sha256="15j7g0drb92rpxq7d0jl9h0hxpi9pbgpvfcxaicrcgypxap3721q"; depends=[lme4 Matrix mgcv multcomp nlme pbkrtest]; };
   tumblR = derive2 { name="tumblR"; version="1.2"; sha256="1qili2c9wb6hpjjf7m0gyvdymzls5w4pghjkyi3sbp0q7ayhbh12"; depends=[httr RCurl RJSONIO stringr]; };
   tumgr = derive2 { name="tumgr"; version="0.0.4"; sha256="1ylfmrsg177g75l2scjpgw6v4dpz62r7cy89pql9zd5zqy167xqj"; depends=[minpack_lm]; };
-  tune = derive2 { name="tune"; version="0.1.6"; sha256="1356w98ljiay8fwa7narr7j5hfbvi69gy03gr7kqiwnfglyksrza"; depends=[cli dials dplyr foreach generics ggplot2 glue GPfit hardhat lifecycle parsnip purrr recipes rlang rsample tibble tidyr vctrs withr workflows yardstick]; };
-  tuneR = derive2 { name="tuneR"; version="1.3.3.1"; sha256="12nixpqrc5gp7p2clr7ia6jwb0jq2i3brlxiwlp00ixmnm5g1jyd"; depends=[signal]; };
+  tune = derive2 { name="tune"; version="0.2.0"; sha256="05gxlsaqv6sjk11r5g4nkdd6hlb3bnfmc29cx4vln1blha37jx4i"; depends=[cli dials dplyr foreach generics ggplot2 glue GPfit hardhat lifecycle parsnip purrr recipes rlang rsample tibble tidyr vctrs withr workflows yardstick]; };
+  tuneR = derive2 { name="tuneR"; version="1.4.0"; sha256="1sd0drxzbdy71bh35fccg9ajhpdhdpy0m9nja2lw82p1pzhyl7jn"; depends=[signal]; };
   tuneRanger = derive2 { name="tuneRanger"; version="0.5"; sha256="1xf78q8f7sq6w2jjwcw8vz88bmbp8yivydmqygjag58abnhd0356"; depends=[BBmisc DiceKriging lhs lubridate mlr mlrMBO ParamHelpers ranger smoof]; };
   tuple = derive2 { name="tuple"; version="0.4-02"; sha256="0fm8fsdfiwknjpc20ivi5m5b19r9scdxhzij70l8qi3ixw1f0rnk"; depends=[]; };
   turboEM = derive2 { name="turboEM"; version="2021.1"; sha256="17j308qla2680k0j8cf2c4v1jlsm21z93zglncmw3n0isa7cwjly"; depends=[doParallel foreach iterators numDeriv quantreg]; };
@@ -18247,7 +18305,7 @@ in with self; {
   tvgeom = derive2 { name="tvgeom"; version="1.0.1"; sha256="1lr2vqgj5jfhzavwd43wcchhbicmf4dqjvyf66rvnjkw3jaig8dm"; depends=[]; };
   tvm = derive2 { name="tvm"; version="0.5.0"; sha256="1disznln4xgkr9q6sj978nadbwg43xv28fq3r3zyy6icg4x9h6gs"; depends=[ggplot2 reshape2 scales]; };
   tvmediation = derive2 { name="tvmediation"; version="1.0.0"; sha256="16djg3ibn1i68lzwby8242qa90347iq1i9ha4nyzacaf7mjd4ysl"; depends=[dplyr ggplot2 kedd locpol]; };
-  tvthemes = derive2 { name="tvthemes"; version="1.1.1"; sha256="0j24hhpjab1220bmspd6a0pa2295gpyyrcxs1rxjnsr5vgn90fcq"; depends=[extrafont ggplot2 glue magick scales]; };
+  tvthemes = derive2 { name="tvthemes"; version="1.3.0"; sha256="1xpj6jxiqynz8vs5lfymf5hlywm8zpgcycxnlhpvl9g6wfn80ysw"; depends=[extrafont ggplot2 magick scales]; };
   twang = derive2 { name="twang"; version="2.5"; sha256="1raczkxbkikwx9gi4p8nzgazqxa41ilpqvfjc07nwkvyqlkmadgw"; depends=[data_table gbm ggplot2 lattice latticeExtra MatrixModels survey xgboost xtable]; };
   twangContinuous = derive2 { name="twangContinuous"; version="1.0.0"; sha256="0bn1i9nid97irn820591ml3556bbmg6pw2qhm9k9vqgnqmnhcfnq"; depends=[gbm lattice Rcpp survey xtable]; };
   twangMediation = derive2 { name="twangMediation"; version="1.1"; sha256="16np2zapvm31cglqck35n1v8jpnm24xrdya66jpwnkci51dsfxci"; depends=[gbm lattice latticeExtra survey twang]; };
@@ -18275,7 +18333,7 @@ in with self; {
   typed = derive2 { name="typed"; version="0.0.1"; sha256="096rzsxjdycf55jx33cxk1284rzb2vcxvp298y4q6v9x0w36php3"; depends=[waldo]; };
   typehint = derive2 { name="typehint"; version="0.1.2"; sha256="1n37qgphzf7lckrgfc8w3fq82zrjcvadx034qx8hrmbh4dynsl2s"; depends=[crayon rlist stringr]; };
   types = derive2 { name="types"; version="1.0.0"; sha256="01shcin8wjbhbmzl979fj3008xqxssw90g3bjg42cnjxkmnaql59"; depends=[]; };
-  tzdb = derive2 { name="tzdb"; version="0.2.0"; sha256="1afmav7s29fb5cd920h6vrzg9cvc4jsidfalxpvhlh1b8mfr0df3"; depends=[cpp11]; };
+  tzdb = derive2 { name="tzdb"; version="0.3.0"; sha256="0f3h4zaf9f4l371k6nc1mq6z2f9aj1vaf2inni8jnsds3zng16b0"; depends=[cpp11]; };
   tzupdater = derive2 { name="tzupdater"; version="0.1.2"; sha256="0s1simvn76m569iq24qb3w6xli0202cjf1jr3a4qy58fs4sda2kv"; depends=[]; };
   u5mr = derive2 { name="u5mr"; version="0.1.1"; sha256="16znlmxanhg1m6fq28z62jv033fxgr4njzz50hgskprvgvx8svkj"; depends=[lifecycle]; };
   uCAREChemSuiteCLI = derive2 { name="uCAREChemSuiteCLI"; version="0.2.0"; sha256="1nccgkxv57inhgvgmhwm4fr8cp28sj8n83za5gam9xx1f42mzsqk"; depends=[ChemmineR usethis]; };
@@ -18291,22 +18349,22 @@ in with self; {
   uclust = derive2 { name="uclust"; version="1.0.0"; sha256="10i78fc81sy635mi8nn1gmryvcbqq7f99ws6byqlnhwyw79qmvb1"; depends=[dendextend robcor]; };
   ucminf = derive2 { name="ucminf"; version="1.1-4"; sha256="01vggwg1w71k98qs6fhb0x1843vi322mf4g3hbclks94kcpkisx2"; depends=[]; };
   udapi = derive2 { name="udapi"; version="0.1.3"; sha256="0qyn6fdh8ia913hn2dl0x99xsm20ps8zm52snswlyb00prinm668"; depends=[curl httr]; };
-  udpipe = derive2 { name="udpipe"; version="0.8.8"; sha256="0bjl3l652lmq6yyhpc4nyhqgjb0drzk4ppmx4i9m0rrwrf997d9b"; depends=[data_table Matrix Rcpp]; };
-  udunits2 = derive2 { name="udunits2"; version="0.13.2"; sha256="0sarkw5ciafiaq1haam8d8w0cmai63wrw2m4rcbjfa5k0648j07f"; depends=[]; };
-  ufRisk = derive2 { name="ufRisk"; version="1.0.3"; sha256="0gqc5faf96pj8pgwddvcbgbp52sai9mscaxp20gx2xgx7zp66l89"; depends=[esemifar fracdiff rugarch smoots]; };
+  udpipe = derive2 { name="udpipe"; version="0.8.9"; sha256="1pdxfr3523imyygm26zhisy3x0a8ay6wd4ndda93ic0lqxb5lapd"; depends=[data_table Matrix Rcpp]; };
+  udunits2 = derive2 { name="udunits2"; version="0.13.2.1"; sha256="00prsy8m41v1camcsz94d7gm8qab2mdnwl3x0dyhz4r49b02jm4z"; depends=[]; };
+  ufRisk = derive2 { name="ufRisk"; version="1.0.4"; sha256="1syyi3in97xllm0mx62v05ahnhpmb708hh2q5qbj0yfkrs69c2z1"; depends=[esemifar fracdiff rugarch smoots]; };
   ufs = derive2 { name="ufs"; version="0.5.2"; sha256="1lqnib0pizx97isqbr4v2r4qp7fph6znbd5arbjnxmlh2wblfbsl"; depends=[digest diptest dplyr ggplot2 ggrepel ggridges gridExtra gtable htmltools kableExtra knitr pander plyr pwr rmdpartials scales SuppDists]; };
   ugatsdb = derive2 { name="ugatsdb"; version="0.2.2"; sha256="0f5fgys80b5nlj5f8jadh5jpylhhb5hsknrsspfac5amncmb0yyv"; depends=[collapse data_table DBI RMySQL writexl]; };
   ugomquantreg = derive2 { name="ugomquantreg"; version="1.0.0"; sha256="1a5vc1qgy3kp1by5bp296w980lkxcghzzxibhap2jg06jnzjfcq8"; depends=[gamlss gamlss_dist pracma Rcpp]; };
   ui = derive2 { name="ui"; version="0.1.1"; sha256="15hcdzaj75ip6j7yglx8rqhp4y3yf3aw5cpbjgk1mjr4cya7lvzi"; depends=[Matrix maxLik mvtnorm numDeriv]; };
   uiucthemes = derive2 { name="uiucthemes"; version="0.3.1"; sha256="1faggg8hiqw4pblq5r3m9wi3x5m6kbjq0flf88mqa993v9rpdrf6"; depends=[rmarkdown xaringan]; };
   uk2us = derive2 { name="uk2us"; version="0.1.0"; sha256="1iskjfifksx9gh94zwh4kk7l984804fidzg4j1k2ww9a4j63rk19"; depends=[]; };
-  ukbabynames = derive2 { name="ukbabynames"; version="0.2.0"; sha256="1yggm3cv32bbshkmqvzd6pdgclk7w329dd1ghslicllaj98cni8k"; depends=[]; };
+  ukbabynames = derive2 { name="ukbabynames"; version="0.3.0"; sha256="1akmg1sj5438nsbjp2xqlrkgsw772j1a1shnn1jqh25d1q3lb0nz"; depends=[]; };
   ukbtools = derive2 { name="ukbtools"; version="0.11.3"; sha256="1j5p9ypn3s781582all64kvywih1ry0lqsh1zirr35g7r46fy783"; depends=[data_table doParallel dplyr foreach ggplot2 magrittr purrr readr scales stringr tibble tidyr XML]; };
   ukgasapi = derive2 { name="ukgasapi"; version="0.21"; sha256="1acl04bm8f2hgi26mpmzcwp44yv9zxarzw4r4k20b367k8g9rh8a"; depends=[httr XML]; };
   uklr = derive2 { name="uklr"; version="1.0.2"; sha256="1x5lfzb0a64k84dscdj61kcibww8mizf9w62anmb207f8dggj7lg"; depends=[curl httr jsonlite tibble]; };
   ukpolice = derive2 { name="ukpolice"; version="0.2.2"; sha256="1dwwixhiarlpdss7rhiamzcsl1k2yphgmjzh7wn2my4vxj06817l"; depends=[httr jsonlite purrr snakecase tibble]; };
   ulid = derive2 { name="ulid"; version="0.3.0"; sha256="0xxkqrnlz3pkb3s1gacfzqav54w97gc0w8rh0fn1qy5rkmg2bplv"; depends=[Rcpp]; };
-  umap = derive2 { name="umap"; version="0.2.7.0"; sha256="191vpy84s0bar06y9z1qx43x2kc4qp7lmrcmd0cvz2pnzq722jab"; depends=[openssl Rcpp reticulate RSpectra]; };
+  umap = derive2 { name="umap"; version="0.2.8.0"; sha256="0aiarnzc8gl932gi8fxd9f9rshaiwh9vj570l135fkiaja3q2wap"; depends=[Matrix openssl Rcpp reticulate RSpectra]; };
   umiAnalyzer = derive2 { name="umiAnalyzer"; version="1.0.0"; sha256="147x48mr9mj0njwbz39876795rninvk89zm9immkppdm4s5g1ghf"; depends=[BiocManager dplyr DT forcats ggplot2 gridExtra magrittr pheatmap plotly readr Rsamtools scales shiny shinydashboard shinyFiles shinyWidgets stringr tibble tidyr viridis]; };
   ump = derive2 { name="ump"; version="0.5-8"; sha256="1sg226caq9y41cwl7wr5s9z3bpq2j5p6rj6fy2pasbzimgzw0byx"; depends=[]; };
   umx = derive2 { name="umx"; version="4.10.50"; sha256="11mhry3hv7fhs5lwgww3g6200knw3fgah42j08glk81k9braswzm"; depends=[cowplot DiagrammeR DiagrammeRsvg ggplot2 kableExtra knitr lavaan MASS Matrix MuMIn mvtnorm nlme OpenMx polycor R2HTML RCurl rsvg scales tibble xtable]; };
@@ -18324,15 +18382,15 @@ in with self; {
   uniah = derive2 { name="uniah"; version="1.0"; sha256="19zwy33gwa749i81mi9h05k8k3l4xbbln3k6q70fa7ic5lqbbdzj"; depends=[ahaz Iso survival]; };
   unifDAG = derive2 { name="unifDAG"; version="1.0.3"; sha256="052qjrnj04imhj6i62k8jdx9rs8r70n0qrmd2z45x4fimn5py6j5"; depends=[gmp graph]; };
   unifed = derive2 { name="unifed"; version="1.1.6"; sha256="0wy2hasgkzw08l50qq30wb62i1q4skc3zccipv8pm911qlldk3sr"; depends=[]; };
-  uniformly = derive2 { name="uniformly"; version="0.1.0"; sha256="0n3s0x05v4d79jn51nwj06gm074rgy269f57y2q5z0bkwyp6yc7n"; depends=[pgnorm]; };
+  uniformly = derive2 { name="uniformly"; version="0.2.0"; sha256="1xfwnklzmz72kp5qsb5zh3p6lwngpiaw5b4drjd41h9xvxdb3dyd"; depends=[pgnorm]; };
   uniftest = derive2 { name="uniftest"; version="1.1"; sha256="0a37m7l3lc6rznx10w9h9krnn5paim2i2wvw47ckwag7bv0d4pm4"; depends=[orthopolynom]; };
   unikn = derive2 { name="unikn"; version="0.4.0"; sha256="0pqkb48rsjl9zny0y1plcnfvzaaqy2cwpgii2pdhh4rfg2ps2n4l"; depends=[ggplot2]; };
   unine = derive2 { name="unine"; version="0.2.0"; sha256="051dk8fss19h4d9815a7994krr1s3n5q0pxq9gir6zns0vvn05pw"; depends=[Rcpp]; };
   uniqtag = derive2 { name="uniqtag"; version="1.0"; sha256="025q71mzdv3n1jw1fa37bbw8116msnfzcia01p1864si04ch5358"; depends=[]; };
   unisensR = derive2 { name="unisensR"; version="0.3.3"; sha256="1pqfb8i3rj64l9hh1bn9mm78wlfqphgrlp7zrydznqy88f4jwgvy"; depends=[hexView vroom XML]; };
-  uniset = derive2 { name="uniset"; version="0.2.1"; sha256="1l7a3qv7sa1kbk5r2qxbc0b69s80l0a56g93x1fv6lyx33ghkfb6"; depends=[easycsv]; };
+  uniset = derive2 { name="uniset"; version="0.3.1"; sha256="1lpwsx1l6x186aj7wl5kvfmc5mp4g95p5h69alg8dn1sns84zqjs"; depends=[easycsv]; };
   unitedR = derive2 { name="unitedR"; version="0.4"; sha256="0h4i814awb8419693jz3x5cyhs2x6y5flmz339bg6ivmg13d9h3s"; depends=[plyr]; };
-  unitizer = derive2 { name="unitizer"; version="1.4.17"; sha256="1fyqsqnqm0jk31qd2kny2pi7j5z0a4w9lyxnpmg98bc0zi3w6fbq"; depends=[crayon diffobj]; };
+  unitizer = derive2 { name="unitizer"; version="1.4.18"; sha256="1higz77mxyci56h3z5pizkbyqdbkf65lfxf8zm36gi1h04czxrnr"; depends=[crayon diffobj]; };
   units = derive2 { name="units"; version="0.8-0"; sha256="06mjprqi06xprj6185k5cmrrdl025x0pd1r6a4x3s74ciq9zwilw"; depends=[Rcpp]; };
   unittest = derive2 { name="unittest"; version="1.4-0"; sha256="1wyiikccnkw8fzrjrb2a80lw2xyiii4zb0hrbzfszy2bd6prqxx4"; depends=[]; };
   univOutl = derive2 { name="univOutl"; version="0.3"; sha256="1hhpxrpmp2wbrynx9xjndnp2sccirgky2x6ksd6yk6phmk0rbzjp"; depends=[Hmisc robustbase]; };
@@ -18393,7 +18451,7 @@ in with self; {
   utilsIPEA = derive2 { name="utilsIPEA"; version="0.0.6"; sha256="07avc0j6qkzqmznbydn0zdg743g7g7kn2bcx5n03m3wg0fqyggr7"; depends=[data_table dplyr RCurl stringdist stringr]; };
   utiml = derive2 { name="utiml"; version="0.1.7"; sha256="16l64scyipj7plwyv6whv3h040sgvzxx43jhjxyhrcdci4pqwh94"; depends=[mldr ROCR]; };
   utr_annotation = derive2 { name="utr.annotation"; version="1.0.4"; sha256="0lldkd5fw86qxngjfvigmkdzynz0712wsk9p51xliqlavivvnpny"; depends=[AnnotationFilter AnnotationHub BiocGenerics biomaRt Biostrings data_table doParallel dplyr ensembldb foreach GenomicFeatures GenomicRanges IRanges keras readr rtracklayer stringr tidyr vcfR xml2]; };
-  uuid = derive2 { name="uuid"; version="1.0-3"; sha256="0il35jnci537r8zkinyiy5jp5q530p85ln6dswpj884zclrlcvj5"; depends=[]; };
+  uuid = derive2 { name="uuid"; version="1.0-4"; sha256="08j3ylf49l9qslhlcxvix3mqw6hh8kxainnklv0qmwmwj6q6i5i8"; depends=[]; };
   uwedragon = derive2 { name="uwedragon"; version="0.1.0"; sha256="00rrklym9ms74ad58cbn4xkibp8k5d12kcrnb68x7b27grvgfnqf"; depends=[gtools]; };
   uwo4419 = derive2 { name="uwo4419"; version="0.3.0"; sha256="0hk5qhyarjxz7ngj5ak37vx0rak6xv0hfb4sdrsbci3kv5fqijv7"; depends=[DescTools dplyr ggplot2 gmodels haven magrittr psych RColorBrewer rio tibble tidyr]; };
   uwot = derive2 { name="uwot"; version="0.1.11"; sha256="06ylzxmdh8jipbrzgqaiivd2lnqmbcva41cyvc0iyals6vqr1ksg"; depends=[dqrng FNN irlba Matrix Rcpp RcppAnnoy RcppProgress RSpectra]; };
@@ -18409,7 +18467,7 @@ in with self; {
   valhallr = derive2 { name="valhallr"; version="0.1.0"; sha256="1lgdcvbk5g8xq9b18aqfq434cvdcshl3b6s28sx4r3jb8fxkia26"; depends=[Cairo dplyr geojsonio ggplot2 ggspatial htmltools httr jsonlite leaflet magrittr purrr rlang sf stringr tibble tidyr]; };
   validann = derive2 { name="validann"; version="1.2.1"; sha256="00c0hkjiv8n7mksx6sknb4xkkivxr1ml31k697csv4imwrk09dy5"; depends=[moments]; };
   validata = derive2 { name="validata"; version="0.1.0"; sha256="01ghnkkhqgjllpwdvphcqymps7jq3wd919rplk092iiwwq1mpb9m"; depends=[badger BBmisc data_table dplyr framecleaner gtools janitor listviewer magrittr purrr rlang rlist scales stringr tibble tidyr tidyselect]; };
-  validate = derive2 { name="validate"; version="1.1.0"; sha256="0n9h8l0ylpygn1aza0j5dlabvdshc1flsn4p0m064wvpvx3vx5hi"; depends=[settings yaml]; };
+  validate = derive2 { name="validate"; version="1.1.1"; sha256="0bbrlc5lfis3ksg4fsd8ldwzr9lqh45w51g83vys9l3zhmmxcagb"; depends=[settings yaml]; };
   validateRS = derive2 { name="validateRS"; version="1.0.0"; sha256="1ivw9ddr6z2wrsqvhbn87p5pikhkxlz8p45pb5nq13dvs359vkww"; depends=[data_table reshape2 triangle truncnorm]; };
   validatedb = derive2 { name="validatedb"; version="0.1.4"; sha256="0lq0d0hcszd2jgip9m5j07lgbc279nxryz5drzv2qaap357ic9l1"; depends=[dbplyr dplyr validate]; };
   validatetools = derive2 { name="validatetools"; version="0.5.0"; sha256="10wardp2c70zx5ii940sjql3xh5p3vqxv4ayyifhhlr8vzvr5cj0"; depends=[lpSolveAPI validate]; };
@@ -18446,7 +18504,6 @@ in with self; {
   variosig = derive2 { name="variosig"; version="0.3-1"; sha256="09cxigii0sj78yqd18p4mm9jjqvd1k2cgjy43pxpmqdhia0q2pmv"; depends=[gstat sp testthat]; };
   varitas = derive2 { name="varitas"; version="0.0.2"; sha256="16y0fcisdf4pypwqshy9c45v57axa25k8cpp1pr2ij95zycs3g1k"; depends=[assertthat doParallel dplyr foreach magrittr openxlsx stringr tidyr VennDiagram yaml]; };
   varjmcm = derive2 { name="varjmcm"; version="0.1.1"; sha256="1xgy3n57pxhv6wrsw9h4dranxbw6hdpm1f9ra3kwlzrpz5c3289x"; depends=[expm jmcm MASS Matrix]; };
-  varrank = derive2 { name="varrank"; version="0.4"; sha256="03zyv1cgrdnj7gzrp1ag0sqpxikrlsj3gg4x78gp1wxqwzq7aizx"; depends=[FNN]; };
   vars = derive2 { name="vars"; version="1.5-6"; sha256="1ggkmds5ibww61mkc50bzh75py4n2g9bd6wqb3nvfw9zn58k7znx"; depends=[lmtest MASS sandwich strucchange urca]; };
   varsExplore = derive2 { name="varsExplore"; version="0.3.0"; sha256="0d18wqq7fbs5ljdphsdgqmv8ab0wrzzykjhf4lqksi7n78s1fa2r"; depends=[dplyr DT glue magrittr purrr rio rstudioapi stringr tidyr]; };
   varycoef = derive2 { name="varycoef"; version="0.3.1"; sha256="0vhv2rraq6iqhqhjp5vdml1ppyr2xrqd97vgk4h0izk4v8r0l69k"; depends=[glmnet lhs mlr mlrMBO optimParallel ParamHelpers pbapply RandomFields smoof sp spam]; };
@@ -18464,11 +18521,11 @@ in with self; {
   vcpen = derive2 { name="vcpen"; version="1.9"; sha256="0gg5ln9r7i8rh91pf7789fic4aah22jc259qyg606bax2w57qmi5"; depends=[knitr Rcpp RcppArmadillo]; };
   vcr = derive2 { name="vcr"; version="1.0.2"; sha256="0d7g67adnjhhaikz61nc3ivl8pzyvsk8ah0a34d8wgxknfva29sb"; depends=[base64enc cpp11 crul httr R6 rprojroot urltools webmockr yaml]; };
   vcrpart = derive2 { name="vcrpart"; version="1.0-4"; sha256="1mg87jpdih33lalxhfcxbri439d4cgi7hqdrnvijr7qabjmnc7p4"; depends=[formula_tools nlme numDeriv partykit rpart sandwich strucchange ucminf zoo]; };
-  vctrs = derive2 { name="vctrs"; version="0.3.8"; sha256="1c8v5lmap6iq4jpi7p3w05hsv2dq7rjg057pvnfyc5d1xmsqnkkz"; depends=[ellipsis glue rlang]; };
+  vctrs = derive2 { name="vctrs"; version="0.4.0"; sha256="0bslr22jnnwxx45s1a19az6saqf2svi8vkjf64pnpc6rma4ygpl9"; depends=[cli glue rlang]; };
   vcvComp = derive2 { name="vcvComp"; version="1.0.2"; sha256="0mip0v8gv358aadc3b4913dcz27kscx3dv15nwns20pan5jvyhv2"; depends=[]; };
   vdar = derive2 { name="vdar"; version="0.1.3-2"; sha256="061ahwf8gyjqs5j9mkqnpn7899mivn4qbygnnzihmv065xj5vpd9"; depends=[compositions]; };
   vdg = derive2 { name="vdg"; version="1.2.1"; sha256="1jxqwg7k8ibzzdx8axhn2dx27j60qj0dlmczbfalll841ggigb45"; depends=[ggplot2 gridExtra proxy quantreg]; };
-  vdiffr = derive2 { name="vdiffr"; version="1.0.2"; sha256="1zjwjw8lqqnx7cxj2aik5rn1g67zsyf0bq08yfwwmsi7v2x6ly3x"; depends=[cpp11 diffobj glue htmltools lifecycle rlang testthat xml2]; };
+  vdiffr = derive2 { name="vdiffr"; version="1.0.4"; sha256="1z8nn8yh6jfzb9r7ylmigwh1p30lrclqm6khmp323qqphzmzfdwy"; depends=[cpp11 diffobj glue htmltools lifecycle rlang testthat xml2]; };
   vdra = derive2 { name="vdra"; version="1.0.0"; sha256="1ldl3wm55a5ywc5398lzky6l6x5a9djxwrqnrd570fg4iq6d30l1"; depends=[]; };
   vec2dtransf = derive2 { name="vec2dtransf"; version="1.1"; sha256="029xynay9f9rn0syphh2rhd3szv50ib4r0h0xfhhvbbb37h5dc9s"; depends=[sp]; };
   veccompare = derive2 { name="veccompare"; version="0.1.0"; sha256="03nyyxvhhwfxxg5w6qflk7q234ipbhj9fd4abcp50sxz3diabch1"; depends=[corrplot gtools pander purrr qgraph reshape2 VennDiagram]; };
@@ -18487,13 +18544,13 @@ in with self; {
   vembedr = derive2 { name="vembedr"; version="0.1.5"; sha256="1hmwgrp9vj7qwmsvnvgry8h707kj53wp5chpxqsbgxi9jryabpc0"; depends=[assertthat glue htmltools httr lifecycle magrittr stringr]; };
   venn = derive2 { name="venn"; version="1.10"; sha256="1r31z6s384mcrjqxm9818mvc7v23ir26wcix5lc831fwihajlhk5"; depends=[admisc]; };
   vennLasso = derive2 { name="vennLasso"; version="0.1.6"; sha256="0maydvx0qhdn5alqzqxjn485y9hw9qdr1xvgkmgwnjq59vni6d31"; depends=[foreach igraph MASS Matrix Rcpp RcppEigen RcppNumerical survival VennDiagram visNetwork]; };
-  venneuler = derive2 { name="venneuler"; version="1.1-0"; sha256="10fviqv9vr7zkmqm6iy2l9bjxglf2ljb7sx423vi4s9vffcxjp17"; depends=[rJava]; };
+  venneuler = derive2 { name="venneuler"; version="1.1-3"; sha256="0znr5l41mpappv2agji4nxr42vydhd35jbmjwzwapgahff2arlr1"; depends=[rJava]; };
   vennplot = derive2 { name="vennplot"; version="1.0"; sha256="0x59awa1zsjwk5qb1jzv6d2mn2fm4aq1lq8zlbnf1da0h4837yab"; depends=[Rcpp rgl stringr]; };
   verbalisr = derive2 { name="verbalisr"; version="0.4.0"; sha256="17zq2qc361kmd32pfzqgxpgw2z4z1iq831cq85fffdc3nvl3wwx4"; depends=[pedtools ribd]; };
   verhoeff = derive2 { name="verhoeff"; version="0.4.0"; sha256="0kpxpl5s5342ajg22cwb7y9ks240drp37q1g67n19krdy6ih14kz"; depends=[]; };
   verification = derive2 { name="verification"; version="1.42"; sha256="0pdqvg7cm9gam49lhc2xy42w788hh2zd06apydc95q2gj95xnaiw"; depends=[boot CircStats dtw fields MASS]; };
   versions = derive2 { name="versions"; version="0.3"; sha256="0zm49j785dgv7fyr1yl9q5f0dsk8hhpim5q5bpkgrkzv7pwjribd"; depends=[]; };
-  versionsort = derive2 { name="versionsort"; version="1.0.0"; sha256="0inyzs6y4dsxwyfpwl90rqx11dyc3j3n4347zyqvyqp5icg7x5m0"; depends=[]; };
+  versionsort = derive2 { name="versionsort"; version="1.1.0"; sha256="00r0h2iqlfq0nidqbhx4fv29rlppfx43jv2n2zp38lpx5vbqjhnj"; depends=[]; };
   vertexenum = derive2 { name="vertexenum"; version="1.0.2"; sha256="16ywz3z1kzhb3knhhi2i5igm3djdaaxyyrw69wkc5saa7ayhdb4y"; depends=[numbers]; };
   vesselr = derive2 { name="vesselr"; version="0.2.1"; sha256="1wzprnpiv04gxhqgki36gp1a0xj9l3mchllphwkfsdja4axq3prk"; depends=[oro_nifti pbapply pbmcapply]; };
   vetiver = derive2 { name="vetiver"; version="0.1.3"; sha256="1yn4vhnkgqqgzkbg2qjpf8n3pm2xdx2p8plxb4y1xffbpzsspjan"; depends=[butcher cli curl generics glue hardhat httr jsonlite lifecycle pins plumber purrr rapidoc readr renv rlang tibble vctrs withr]; };
@@ -18512,7 +18569,7 @@ in with self; {
   vimp = derive2 { name="vimp"; version="2.2.5"; sha256="13461pcvyc6rad1rf2ymmkyzcwjxw7g4fs8qd51baljhjnjmifv0"; depends=[boot data_table dplyr magrittr MASS rlang ROCR SuperLearner tibble]; };
   vimpclust = derive2 { name="vimpclust"; version="0.1.0"; sha256="0ly7piz7q88sh2g7zq5b2pqph9467b4fclgq9amm0m7xc8vrv4f9"; depends=[ggplot2 mclust PCAmixdata Polychrome rlang]; };
   vindecodr = derive2 { name="vindecodr"; version="0.1.1"; sha256="0yvchdf90l8lkzyba5wrpma6vjcgf19li159s8s79y8sgp5pyx7p"; depends=[httr]; };
-  vinereg = derive2 { name="vinereg"; version="0.8.1"; sha256="0aqf6phgbs74zzjylkya9mj6ak9h53jji037p5m225wgm11nlq50"; depends=[assertthat BH kde1d Rcpp RcppEigen RcppThread rvinecopulib wdm]; };
+  vinereg = derive2 { name="vinereg"; version="0.8.3"; sha256="0d1ibrhjsbjaaz2cd9lg76cjplkys716i689khzaiv4sgbjhwdh1"; depends=[assertthat BH kde1d Rcpp RcppEigen RcppThread rvinecopulib wdm]; };
   vines = derive2 { name="vines"; version="1.1.5"; sha256="057d2fdh03cq9kh4vz94arqscahmz14xbr2g59l0vn205lnyilf1"; depends=[ADGofTest copula cubature TSP]; };
   violinplotter = derive2 { name="violinplotter"; version="3.0.0"; sha256="02hyc85bmpc4lzpy4yay73gz4v00wns1ghkkf9sljl3kdgybmyi2"; depends=[]; };
   vioplot = derive2 { name="vioplot"; version="0.3.7"; sha256="1dmdasp3jldc41233z6r08w3j76vyyp9m3jrj7n4ahk48yd5siq6"; depends=[sm zoo]; };
@@ -18529,7 +18586,7 @@ in with self; {
   visStatistics = derive2 { name="visStatistics"; version="0.1.1"; sha256="0lp6sf2wrjjp1zh77yhlgr9sfpls54z0bny0l36v98ik4qykky0f"; depends=[Cairo multcompView nortest vcd]; };
   visTree = derive2 { name="visTree"; version="0.8.1"; sha256="1l07zfr2hagjpdxfw5290wa3ki4bl7iqxrrhda0d1bp3wmwfz0ai"; depends=[colorspace partykit rpart]; };
   visa = derive2 { name="visa"; version="0.1.0"; sha256="1mx7nbbpxs4fdp781a75qvffa42dx2n6anslbfs9bnprmvzmljqr"; depends=[ggplot2 ggpmisc Matrix RColorBrewer reshape2]; };
-  visachartR = derive2 { name="visachartR"; version="2.0.1"; sha256="0kwj8dq6r3rbv3s01dpgnw44ngpchx4rxmykmwff949yck691952"; depends=[htmlwidgets]; };
+  visachartR = derive2 { name="visachartR"; version="2.1.0"; sha256="0csm0gb4f76g1c7c55f5hlgz04svxk4mz1scczayhxfi8j3wm1yw"; depends=[htmlwidgets]; };
   visae = derive2 { name="visae"; version="0.2.0"; sha256="0ycwb380z8nb646w7w42952lwvdi8prmph7yv1lraswvp4wjfx3p"; depends=[ca dplyr DT ggplot2 ggrepel magrittr rlang shiny shinyjs tidyr]; };
   viscomplexr = derive2 { name="viscomplexr"; version="1.1.1"; sha256="1b45yi5xv4vq52pfa064ll3ghxgkwpbknzq94gg60vcvb7spd0if"; depends=[doParallel foreach plotrix Rcpp Rdpack scales]; };
   visdat = derive2 { name="visdat"; version="0.5.3"; sha256="1ikqp29nncbw1xlwyb9dqqgcdk9q0bs3wxhnhnjpb11vcjv7cz2j"; depends=[dplyr ggplot2 glue magrittr purrr readr tibble tidyr]; };
@@ -18540,7 +18597,7 @@ in with self; {
   visualFields = derive2 { name="visualFields"; version="1.0.1"; sha256="1z62xappwjdv9f7ql5spydkb626rdj3hvpvzy3d71fwm0y3qwki3"; depends=[boot combinat deldir dplyr DT gtools Hmisc htmlTable oro_dicom plotrix polyclip pracma rlang shiny shinyjs XML]; };
   visualize = derive2 { name="visualize"; version="4.4.0"; sha256="1k3jpvj1yysxc4g1a1w3m1y91104aqxqv8jh9qdd23gwy7a29525"; depends=[]; };
   visualpred = derive2 { name="visualpred"; version="0.1.0"; sha256="19jq9h9kiv4vbzqz8zrv5gqb1bprq5jy7mcxvdwpfnna2rja6q4z"; depends=[data_table dplyr e1071 FactoMineR gbm ggplot2 ggrepel magrittr MASS MBA mltools nnet pROC randomForest]; };
-  visvow = derive2 { name="visvow"; version="1.3.3"; sha256="01mpiyc893sx8zhx6ddzhdqcgsssz516s4wm0sfkh5fpaz6h1mn5"; depends=[Cairo DT formattable ggdendro ggplot2 ggrepel MASS PBSmapping plot3D plyr pracma psych Rdpack readxl Rtsne shiny shinyBS shinybusy splitstackshape svglite tidyr tikzDevice WriteXLS]; };
+  visvow = derive2 { name="visvow"; version="1.3.4"; sha256="0amqmkjf6iiif80bpafdx5mgj6qklr935wazr3wiq2wsvpirkdck"; depends=[Cairo DT formattable ggdendro ggplot2 ggrepel MASS PBSmapping plot3D plyr pracma psych Rdpack readxl Rtsne shiny shinyBS shinybusy splitstackshape svglite tidyr tikzDevice WriteXLS]; };
   visxhclust = derive2 { name="visxhclust"; version="1.0.0"; sha256="09849fmsm62adf39qk3np787g7v3vbg5yncs20qrclgv6iam3w51"; depends=[bsplus circlize cluster clusterCrit ComplexHeatmap dendextend dplyr DT dunn_test fastcluster ggplot2 kableExtra knitr patchwork RColorBrewer readr shiny shinycssloaders shinyhelper tidyr]; };
   vita = derive2 { name="vita"; version="1.0.0"; sha256="114p2lzcr8rn68f0z4kmjdnragqlmi18axda9ma4sbqh8mrmjs9v"; depends=[randomForest Rcpp]; };
   vitae = derive2 { name="vitae"; version="0.5.1"; sha256="0j35azyrrnr1nvw76axqa0bvs6nsp7pw9gwkyfqnp6383r5hlg4i"; depends=[dplyr glue jsonlite knitr pillar rlang rmarkdown tibble vctrs xfun yaml]; };
@@ -18552,7 +18609,6 @@ in with self; {
   vlad = derive2 { name="vlad"; version="0.2.2"; sha256="0c3zfjm5nj7iisfnl822sk8wdszv6hcsaf51sn7aqnlp579hq2jk"; depends=[BH checkmate dplyr magrittr Rcpp RcppArmadillo tidyr]; };
   vlda = derive2 { name="vlda"; version="1.1.5"; sha256="17xn8qqh043dm05ib3h4l1qx07wxncf5d06x9l1wl6jbkvnsm2nq"; depends=[dplyr ggiraph ggplot2 ggrepel ggsci]; };
   vmd = derive2 { name="vmd"; version="0.1.0"; sha256="17c06a9l6i90ivpvf3rgv6yrsqv36qmywmmy92y5b81zqhgmh907"; depends=[ggplot2 magrittr R6 Rcpp reshape2 scales]; };
-  vmdTDNN = derive2 { name="vmdTDNN"; version="0.1.0"; sha256="1vxlqfcdkwajz9r6rmz48x87csl6d7dqshabhgwnvgvy206jh3b7"; depends=[forecast nnfor vmd]; };
   vmeasur = derive2 { name="vmeasur"; version="0.1.4"; sha256="17rqr8zpfnq3f0d3yi9w09wvrbq79g4w7rkqf4l2wyd8ic5npwb0"; depends=[av crayon doFuture dplyr foreach future ggplot2 ggpubr imager magrittr pdftools pracma progressr purrr readr rlang scales stringr svDialogs tidyr]; };
   vmr = derive2 { name="vmr"; version="0.0.3"; sha256="1qxcbmf71xwlmi5wyjs3a86ywjd0cj6f86kyq5bpw4ykn797kciw"; depends=[curl jsonlite]; };
   vntrs = derive2 { name="vntrs"; version="0.1.0"; sha256="0ffjjzcs7i4zli7bn83gkgi0q7dmgyxrhv9l3gdambma9hsig45c"; depends=[trust]; };
@@ -18560,10 +18616,10 @@ in with self; {
   volcano3D = derive2 { name="volcano3D"; version="1.2.0"; sha256="10wfvqz7jf92rzhg8ys55mgv31rn2b85lji813jg2wm4k94g95cm"; depends=[ggplot2 ggpubr ggrepel plotly]; };
   volesti = derive2 { name="volesti"; version="1.1.2-2"; sha256="1814y7n0jwbc98nznrzl6apgg15whb32phb9m3lvrcx5h9xv3la1"; depends=[BH Rcpp RcppEigen]; };
   volleystat = derive2 { name="volleystat"; version="0.2.0"; sha256="0n1r0bvvmba21cs3qgpnw9jxpgl2n82fhxa40sa1w2gav5rch5i6"; depends=[]; };
+  voluModel = derive2 { name="voluModel"; version="0.1.3"; sha256="0967q6h6k9383pj86366w2hb1jf3g2i5xp44x62ms193nb7ycrc7"; depends=[dismo dplyr fields ggplot2 ggtext latticeExtra rangeBuilder raster rgeos sp terra viridisLite]; };
   voronoiTreemap = derive2 { name="voronoiTreemap"; version="0.2.0"; sha256="1wvnqdrvba4ss4f3k8gzb720irdq2brv2aaq16ywifv8fnjf02r3"; depends=[data_tree DT htmlwidgets rlang shiny shinyjs]; };
-  vortexR = derive2 { name="vortexR"; version="1.1.7"; sha256="06i2rqbc3h2kv8jjrdlrg03xrzb3yiyzpnv2rvlkjcnn46f84bgf"; depends=[betareg data_table GGally ggplot2 glmulti gtools irr plyr R_utils stringr vortexRdata]; };
   vortexRdata = derive2 { name="vortexRdata"; version="1.0.5"; sha256="0b47q3aslz4110a1bfaa103i098y2ngzrjh01rwasq3gd6xbif9n"; depends=[]; };
-  voson_tcn = derive2 { name="voson.tcn"; version="0.2.4"; sha256="18h51krjjnvgplgyxyjhm32q602la9ip1wsf37vs41vv591k8ylv"; depends=[dplyr httr jsonlite magrittr openssl rlang stringr tibble tidyr]; };
+  voson_tcn = derive2 { name="voson.tcn"; version="0.3.3"; sha256="1gn715r450akpnzg4gb2d9kkrscazy0mx0719gmpfp8bwrjxln5h"; depends=[dplyr httr jsonlite magrittr openssl rlang stringr tibble tidyr]; };
   vosonSML = derive2 { name="vosonSML"; version="0.29.13"; sha256="0xajffifapn0sfnp39p8iv6hdxindzi7vywcwhla9h2hmvraad6w"; depends=[data_table dplyr Hmisc httpuv httr igraph jsonlite lubridate magrittr purrr RCurl rlang rtweet stringr textutils tibble]; };
   vote = derive2 { name="vote"; version="2.3-2"; sha256="12kvz83ncansrsvw4mrws6fafn9fy6c0nvqvknrzl08kv290c9dr"; depends=[data_table fields formattable knitr]; };
   voteogram = derive2 { name="voteogram"; version="0.3.1"; sha256="12xv0c3g4vr23c8adkk8z7m7sx31w5mjvdg9h4qbvaimb99p2r7z"; depends=[dplyr ggplot2 jsonlite scales]; };
@@ -18593,7 +18649,6 @@ in with self; {
   vudc = derive2 { name="vudc"; version="1.1"; sha256="0zxz6n3ixa3xjzcinky8ymqjx9w8y8z65mz8d84dl00mxzkmkz4h"; depends=[]; };
   vueR = derive2 { name="vueR"; version="0.5.3"; sha256="0am4iwgadi9c9f7zm5zx3nrzyhy7w1qgp9rkyypzwb6bicjjb9cz"; depends=[htmltools htmlwidgets]; };
   vwline = derive2 { name="vwline"; version="0.2-2"; sha256="1hilr996xn5wh8kfyab55w2i1c02a8x909h4ahag5q6s7603qng5"; depends=[gridBezier polyclip]; };
-  wBoot = derive2 { name="wBoot"; version="1.0.3"; sha256="08qgkkv6jvqmxq5gvfp7jbrc3k8mxajfww7k8a3p8888aq411p7q"; depends=[boot simpleboot]; };
   wCorr = derive2 { name="wCorr"; version="1.9.5"; sha256="10mnrs5ymc3ms1z5vs0h05rjq1642n3asvm77x7lxq9qwx67s3vn"; depends=[minqa mnormt Rcpp RcppArmadillo]; };
   wINEQ = derive2 { name="wINEQ"; version="1.0.1"; sha256="0vsi930gp7w2ddqfy7dw82w89v7vrrv8x5zg9j8bhiz4kaf53153"; depends=[dplyr sampling]; };
   wISAM = derive2 { name="wISAM"; version="0.2.8"; sha256="0c5ic98ihpzkycsj9wg0127civm4w1rmkkw6zsjp8sfn20cl8a8z"; depends=[MASS]; };
@@ -18608,7 +18663,7 @@ in with self; {
   waiter = derive2 { name="waiter"; version="0.2.5"; sha256="0ya92qr25ssfkzn888b7rr8rn0304f3gz4h4pnc2a95rknbmxhls"; depends=[htmltools R6 shiny]; };
   wakefield = derive2 { name="wakefield"; version="0.3.6"; sha256="1rssh6v8m6fim2pvm4cjw8cbni77bv5qp0rwi6vwdl3jhi5zws7n"; depends=[chron dplyr ggplot2 stringi]; };
   wal = derive2 { name="wal"; version="0.1.0"; sha256="0n81c2i2wzmy33kk1k4zjjgv1irh8xqw05clif8n86qr4m0a01sv"; depends=[freesurferformats imager jpeg png spacesXYZ]; };
-  waldo = derive2 { name="waldo"; version="0.3.1"; sha256="16q1xjbl9g04l1r1x3nid9hmz1sa35q6j33bigdzh4y4zcd8qb7c"; depends=[cli diffobj fansi glue rematch2 rlang tibble]; };
+  waldo = derive2 { name="waldo"; version="0.4.0"; sha256="1aky28rn70l24s0sygl36267cf7hjzhchagsz26abfxwr7p8kvjp"; depends=[cli diffobj fansi glue rematch2 rlang tibble]; };
   walker = derive2 { name="walker"; version="1.0.4"; sha256="0qfvzg6wchl3933f2zahzl665badyj12161h0rz8a92rji004p8i"; depends=[bayesplot BH coda dplyr ggplot2 Hmisc KFAS loo Rcpp RcppArmadillo RcppEigen RcppParallel rlang rstan rstantools StanHeaders]; };
   walkscoreAPI = derive2 { name="walkscoreAPI"; version="1.2"; sha256="1c2gfkl5yl3mkviah8s8zjnqk6lnzma1yilxgfxckdh5wywi39fx"; depends=[]; };
   wallace = derive2 { name="wallace"; version="1.1.3"; sha256="0q9nppyiijzbmdi6dvgnh8l8i1vassqcl5wc7bv08hidxbkw3pqs"; depends=[dismo dplyr DT ecospat ENMeval jsonlite leaflet leaflet_extras magrittr raster RColorBrewer rgdal rgeos rmarkdown shiny shinyjs sp spocc spThin zip]; };
@@ -18636,7 +18691,7 @@ in with self; {
   wavelets = derive2 { name="wavelets"; version="0.3-0.2"; sha256="07706rsjdmzj46ib2kfm5lfk4bnm2wfw7rby0ixs6x0myyzxdl92"; depends=[]; };
   wavemulcor = derive2 { name="wavemulcor"; version="3.1.2"; sha256="0a9qhcgf0l3zpwq8m476py94wb4rasy6a8xj302y6kwg3gvh1smm"; depends=[plot3D RColorBrewer waveslim]; };
   waver = derive2 { name="waver"; version="0.2.1"; sha256="1kl14cd96fwrqvk35sqbgi8bf31gc2ccxxy5d1v46scwyqkb0g5l"; depends=[geosphere rgdal rgeos sp]; };
-  waves = derive2 { name="waves"; version="0.2.3"; sha256="0k79mdvr08hbncxr7920blfkjn2pwrsi6qbcqk4bafs8s9c361bq"; depends=[caret dplyr ggplot2 lifecycle magrittr pls prospectr randomForest readr rlang scales spectacles stringr tibble tidyr tidyselect]; };
+  waves = derive2 { name="waves"; version="0.2.4"; sha256="128q1l0ishdgpa33zh77xpi79nvziix8swq1rwyawnznl9ybs29w"; depends=[caret dplyr ggplot2 lifecycle magrittr pls prospectr randomForest readr rlang scales spectacles stringr tibble tidyr tidyselect]; };
   waveslim = derive2 { name="waveslim"; version="1.8.2"; sha256="0ibivnhz0l06sss5rrrcvyiwg3qpbyk3qn4vx4pp90kj09x4yg0k"; depends=[]; };
   wavethresh = derive2 { name="wavethresh"; version="4.6.8"; sha256="1nz74bm7pgck1i9c28svxnic8wkwkm5dhc8bhrxiih5wxb36kcwk"; depends=[MASS]; };
   waydown = derive2 { name="waydown"; version="1.1.0"; sha256="1yjx9cd8h8rsi44s7dcqrvfmsbjhw7vkg2z7bl4knsgbki0c978g"; depends=[Matrix numDeriv]; };
@@ -18647,11 +18702,12 @@ in with self; {
   wbsts = derive2 { name="wbsts"; version="2.1"; sha256="07h3wqmb9ya878fwdj49r0npks0pnd3jlnzri1cmf27c691hwka4"; depends=[mvtnorm Rcpp wavelets]; };
   wcde = derive2 { name="wcde"; version="0.0.3"; sha256="0nj3p2wbx2canpn1wfm6jw8p5ymwfyihvyy8hm9svmw5xk10kir8"; depends=[countrycode dplyr forcats magrittr progress purrr readr stringr tibble tidyr]; };
   wcep = derive2 { name="wcep"; version="1.0.0"; sha256="1hpakygvh3b64i5hwkriwq5g8vnvghvgdj0jn9m59j43050k32cy"; depends=[coin dplyr progress tidyr]; };
-  wdm = derive2 { name="wdm"; version="0.2.2"; sha256="1pidlfp67x3wnmkp0qgna4vz29qx09xsy7gfbqzrjqkdi7q1dihi"; depends=[Rcpp]; };
+  wdm = derive2 { name="wdm"; version="0.2.3"; sha256="0fsr5kskg71bwhc5zzhalm29cc7z9p9y8wdmgz2bisgry3v880az"; depends=[Rcpp]; };
   wdman = derive2 { name="wdman"; version="0.2.5"; sha256="1yf41lsrr9dbf5n4f5hv9mlmzl736fhnp9gxkm2g9apws6gsig02"; depends=[assertthat binman processx semver yaml]; };
+  wdnr_gis = derive2 { name="wdnr.gis"; version="0.1.3"; sha256="03y3mglyw6qqj1c87lj7y87zg5jx6bjbjbnxjb7s4hpibh4mqhgj"; depends=[arcpullr dplyr ggplot2 httr jsonlite rlang sf]; };
   wdpar = derive2 { name="wdpar"; version="1.3.2"; sha256="0fgypgv6dl22ni90m7g2fsw56b8ml9pvxrqkwkzmxnlb8hmg0r1k"; depends=[assertthat cli countrycode curl httr lwgeom progress rappdirs RSelenium sf sp tibble wdman xml2]; };
   weaana = derive2 { name="weaana"; version="0.1.1"; sha256="1wjvn78fkgc28ag1idy7h6sm0rvl57wbqdbxgbl3g5xv844vh8ls"; depends=[dplyr lubridate magrittr reshape2 rlang settings tibble]; };
-  weakARMA = derive2 { name="weakARMA"; version="1.0.2"; sha256="1i4hkjjx35jkvg7jbiv1szmlnj1nx1s77sa7361407i7wmf41xkf"; depends=[CompQuadForm MASS matrixStats vars]; };
+  weakARMA = derive2 { name="weakARMA"; version="1.0.3"; sha256="16dzyw7jiyqv9hd94dff9lxhqv9rwib1xs1km0xfqcy6xa2jhw8w"; depends=[CompQuadForm MASS matrixStats vars]; };
   wearables = derive2 { name="wearables"; version="0.8.1"; sha256="0fjf43cgna1mg4mgg98kqhhl88yfhrr57rln2z6xm6d6bj73q5zn"; depends=[dplyr futile_logger ggplot2 kernlab lubridate magrittr padr R_utils RHRV signal varian waveslim xts]; };
   weathermetrics = derive2 { name="weathermetrics"; version="1.2.2"; sha256="1hjhgsy3v8328hv4czxxz7kp68sxc10sy10f3dv5j8f6pka6qlsp"; depends=[]; };
   weatherr = derive2 { name="weatherr"; version="0.1.3"; sha256="14w7kkja3a1zmdc7l084iprx1czqgdfjzjc29wdlwzmaiq02c4d3"; depends=[ggmap lubridate RJSONIO XML]; };
@@ -18703,7 +18759,7 @@ in with self; {
   whereport = derive2 { name="whereport"; version="0.1"; sha256="1gdqzr2hrnpxbwl7cfps4m3xja8wkgwfs50i2nailybympvdnxm4"; depends=[dplyr]; };
   whippr = derive2 { name="whippr"; version="0.1.0"; sha256="1anrbrb9bp9kll70wjc1861incmjp85w1cw7y9r7pah26ajvxm80"; depends=[broom cli dplyr ggplot2 glue lubridate magrittr minpack_lm nlstools patchwork pillar purrr readxl rlang stringr tibble tidyr usethis zoo]; };
   whisker = derive2 { name="whisker"; version="0.4"; sha256="1a7vz0dk95xfjvi38wbpw8vmf5qn3g8p490msz2rw0piwidmk1ks"; depends=[]; };
-  whitebox = derive2 { name="whitebox"; version="2.1.0"; sha256="17g2kq21bmgq3ywhld14gxrns5l1ghahdi4vim849ybi703x37xn"; depends=[]; };
+  whitebox = derive2 { name="whitebox"; version="2.1.2"; sha256="1lf4w36wl2s5hcgbc718yln204dqnvhbkr5w05i56mfpazrw18cg"; depends=[]; };
   whitechapelR = derive2 { name="whitechapelR"; version="0.3.0"; sha256="0mnq5m59mw8w5g1p0h2xzlz738j397b3444km59bm5yln3j0nsbi"; depends=[igraph plyr]; };
   whitening = derive2 { name="whitening"; version="1.3.0"; sha256="13c06sk4n2821pskqi8vk61khyhswddcir9qr8zy15czn5id3i1j"; depends=[corpcor]; };
   whitestrap = derive2 { name="whitestrap"; version="0.0.1"; sha256="1jcnxqxvkhyz9j6jay5834ncv5fxb9qiyyyj3b8al75mqknmn8ra"; depends=[]; };
@@ -18716,6 +18772,7 @@ in with self; {
   widyr = derive2 { name="widyr"; version="0.1.4"; sha256="1adshr1x03ww7dgxzfgy38hi3ggv4rpar2ib35j4dr3s4lyjbdwg"; depends=[broom dplyr gapminder Matrix purrr reshape2 rlang tibble tidyr tidytext]; };
   wiesbaden = derive2 { name="wiesbaden"; version="1.2.5"; sha256="04xr757lhcfafcc8xfcbqrg982ifig50lx1khw718kzydf7xwr7w"; depends=[httr jsonlite keyring readr stringi stringr xml2]; };
   wig = derive2 { name="wig"; version="0.1.0"; sha256="0gj8sxd5903h0rizd260ffskarywkvf87ck4ixf8gb1z1vgqf8i4"; depends=[dplyr magrittr stringr tibble]; };
+  wikiTools = derive2 { name="wikiTools"; version="0.0.6"; sha256="1h0xi7vw2vzmarxfx0gdy895sh53mz4gj4zwrpynwc9d8cppx50q"; depends=[httr jsonlite ratelimitr WikidataQueryServiceR WikidataR]; };
   wikibooks = derive2 { name="wikibooks"; version="0.2"; sha256="178lhri1b8if2j7y7l9kqgyvmkn4z0bxp5l4dmm97x3pav98c7ks"; depends=[]; };
   wikifacts = derive2 { name="wikifacts"; version="0.4.2"; sha256="1fw1chha6mcrmv1f9rjg01g84bgzkgf1h76l926brjs5gsn4i414"; depends=[magrittr rvest xml2]; };
   wikilake = derive2 { name="wikilake"; version="0.6.0"; sha256="1zz5v6kfg5blpz9kl6pz4z9xqs8xpcklncq4k8996hjn4a8mpvyz"; depends=[dplyr maps rvest selectr sp stringi stringr tidyr units WikipediR xml2]; };
@@ -18729,7 +18786,7 @@ in with self; {
   wildviz = derive2 { name="wildviz"; version="0.1.2"; sha256="03vhacaxp5fahq5afcf1q0qvmndpqc6a63pnins7h3p8ryvlpx14"; depends=[DBI dplyr ggplot2 ggthemes httr jsonlite lubridate plotly purrr rnoaa RSQLite shiny shinythemes tibble tidyr]; };
   wilson = derive2 { name="wilson"; version="2.4.2"; sha256="050hi6rigs024is1ry0yymqapgqfhzpp0ghk5ya028k71k22lksx"; depends=[circlize colourpicker ComplexHeatmap data_table DESeq2 DT factoextra FactoMineR ggplot2 ggrepel gplots heatmaply log4r openssl plotly plyr R6 RColorBrewer reshape rintrojs rje rjson RJSONIO scales shiny shinycssloaders shinydashboard shinyjs shinyWidgets viridis zip]; };
   winRatioAnalysis = derive2 { name="winRatioAnalysis"; version="0.1.0"; sha256="1msvc06bfzw9clinxbvr5fdw38dff0c0xii46182nwnk5kj0libr"; depends=[data_table JM Matrix MLEcens mvtnorm nlme plyr pssm survival]; };
-  winch = derive2 { name="winch"; version="0.0.7"; sha256="0h9xf4qpc1xk04q92dn4n1pjvlwz2sxg0rcv6nkwyp9qj67m6h88"; depends=[procmaps]; };
+  winch = derive2 { name="winch"; version="0.0.8"; sha256="0qpk9a40gv88wl1y5qa7fpvwjqnlm6jx2rh50r3fipdilchhzg0f"; depends=[procmaps]; };
   windex = derive2 { name="windex"; version="2.0.3"; sha256="063lhxpa8gwkaxa5p61dac239s6b11mv53d8dcah5h1q04inshm0"; depends=[ape geiger phangorn scatterplot3d]; };
   windsoraiR = derive2 { name="windsoraiR"; version="0.1.2"; sha256="1smd3zw5ra1fba6mds3diadcmbw59jlvmrvfzzi4fss91wv50jql"; depends=[jsonlite]; };
   winfapReader = derive2 { name="winfapReader"; version="0.1-3"; sha256="1g5z9kg5ws9cdixky2y0c7dw3f7lmh3ykjxrh3jjmkm75gzgs7p0"; depends=[lubridate]; };
@@ -18769,10 +18826,9 @@ in with self; {
   wordspace = derive2 { name="wordspace"; version="0.2-7"; sha256="0hrjv5mag7gwl4wj7np248sdyns5i623wl37b11hlgalhbmlypyf"; depends=[cluster iotools MASS Matrix Rcpp sparsesvd]; };
   workboots = derive2 { name="workboots"; version="0.1.0"; sha256="17j4vz58i645br6pb8b75kk9jib44vs2zjgfc3slj3g39my7n01b"; depends=[assertthat dplyr generics purrr rlang rsample tibble tidyr vip workflows]; };
   workflowr = derive2 { name="workflowr"; version="1.7.0"; sha256="0j1ahxm7xjla1xa38dc8ykn1j5a4yw1p8ivjk3k3va25kam25cp3"; depends=[callr fs getPass git2r glue httpuv httr knitr rmarkdown rprojroot rstudioapi stringr whisker xfun yaml]; };
-  workflows = derive2 { name="workflows"; version="0.2.4"; sha256="1sxrgza922p137z41jcj2iwk19lxzwh6kp4kz7h9kw0b8rvfqwab"; depends=[cli ellipsis generics glue hardhat lifecycle parsnip rlang tidyselect vctrs]; };
-  workflowsets = derive2 { name="workflowsets"; version="0.1.0"; sha256="0596hb17mshpag3vjy2wl6fi2mdw54i9gc5za10vzy8vpkigb9jy"; depends=[cli dplyr generics ggplot2 hardhat lifecycle prettyunits purrr rlang rsample tibble tidyr tune vctrs withr workflows]; };
+  workflows = derive2 { name="workflows"; version="0.2.6"; sha256="0xhc1j25fjipw8hvcpdbvfm640kp0flwvifj5f7g4n6b3wb8cm6a"; depends=[cli generics glue hardhat lifecycle parsnip rlang tidyselect vctrs]; };
+  workflowsets = derive2 { name="workflowsets"; version="0.2.1"; sha256="0q42nhnw0mbivadcfb07v71fp39x8fcnjipvn5l5yhjzc56cfxi8"; depends=[cli dplyr generics ggplot2 hardhat lifecycle prettyunits purrr rlang rsample tibble tidyr tune vctrs withr workflows]; };
   workloopR = derive2 { name="workloopR"; version="1.1.4"; sha256="1gynlvmqxyibql5j3db9dwvc0jsc9jqzpy3d3gp43d5lcl11mcmq"; depends=[pracma signal]; };
-  worldfootballR = derive2 { name="worldfootballR"; version="0.4.10"; sha256="01fdrz94wys8kkpz6sdrj3iwi00jqkmycb7f6zcg6k1hhyizfqx6"; depends=[dplyr glue janitor jsonlite lubridate magrittr progress purrr qdapRegex readr rlang rvest stringi stringr tidyr withr xml2]; };
   worldmet = derive2 { name="worldmet"; version="0.9.5"; sha256="03dc93b6akah0pf36h0327jb65slsb3bypyv57cnkyxwyvni6w4s"; depends=[doParallel dplyr foreach leaflet openair purrr readr tidyr]; };
   worms = derive2 { name="worms"; version="0.2.2"; sha256="183chjdi5qvsmdznvc9igcxaz769a37rwh5nzgvf5zf012a85wir"; depends=[httr plyr]; };
   worrms = derive2 { name="worrms"; version="0.4.2"; sha256="1gpbyplfpcrapmci8axarrjjijsgh2dmhnsn79g1lhrafvm2ichs"; depends=[crul data_table jsonlite tibble]; };
@@ -18788,8 +18844,8 @@ in with self; {
   wppExplorer = derive2 { name="wppExplorer"; version="2.3-4"; sha256="1pbmjg6y543aih8mxf9njfwpm090virhgqf8w0a5yx0jdfjwmz04"; depends=[DT ggplot2 googleVis Hmisc plyr reshape2 shiny shinyjs shinythemes wpp2019]; };
   wql = derive2 { name="wql"; version="0.4.9"; sha256="0m16l807mhcjkbqhlzhc24pw4hl78fjyykiszlg337x3qs803fg2"; depends=[ggplot2 reshape2 zoo]; };
   wqs = derive2 { name="wqs"; version="0.0.1"; sha256="14qaa9g9v4nqrv897laflib3wwhflyfaf9wpllmbi5xfv9223rcg"; depends=[glm2 Rsolnp]; };
-  wrGraph = derive2 { name="wrGraph"; version="1.3.0"; sha256="1zw9c3dl5lwksggvxsch1a9brzy7a5m6yi513h4fxf31njpc5s7g"; depends=[lattice RColorBrewer wrMisc]; };
-  wrMisc = derive2 { name="wrMisc"; version="1.8.1"; sha256="0bhdrjq2b26jvzgg5fchp1mvlr7rvqyx1imdgz25k853hk915cl2"; depends=[MASS]; };
+  wrGraph = derive2 { name="wrGraph"; version="1.3.1"; sha256="128qhrv2zkl8hl906gf7snqkl4gic41brawcy3a6aq8c4j1dxjvm"; depends=[lattice RColorBrewer wrMisc]; };
+  wrMisc = derive2 { name="wrMisc"; version="1.9.0"; sha256="07zf6jp62fdw5lj5r4zl17d26bc11q9qlsn0ljav6gyddsywd0p6"; depends=[MASS]; };
   wrProteo = derive2 { name="wrProteo"; version="1.6.0"; sha256="0iq75zdip51aw8y37ckah1mddm69cp0lds2cj0xaavrdbaarww49"; depends=[knitr limma wrMisc]; };
   wrTopDownFrag = derive2 { name="wrTopDownFrag"; version="1.0.2"; sha256="1rdg6rzjz2h514i3c8z89mvj2j3h1s7rr5fry2mq3xvrwrgd3738"; depends=[wrMisc wrProteo]; };
   wrangle = derive2 { name="wrangle"; version="0.5.7"; sha256="0gap15hinsgfjrxajr9kvs0rp76gl5kk2dqs92s9mfyh10kxxqpa"; depends=[dplyr magrittr rlang tidyr]; };
@@ -18804,12 +18860,11 @@ in with self; {
   wsjplot = derive2 { name="wsjplot"; version="0.1.0"; sha256="1vgf823j3ychdnvg4nq59ah4rkv5lpwbg0r7sijir2b18sgxsrbi"; depends=[dplyr ggplot2 magrittr scales stringr]; };
   wskm = derive2 { name="wskm"; version="1.4.40"; sha256="0x5nc3bwqawx0k95v088dsx83dm7lw5lkryjvq6bl57bgrcn7n0l"; depends=[fpc lattice latticeExtra]; };
   wsprv = derive2 { name="wsprv"; version="0.1.0"; sha256="0l2c2zv6ypqqynaj9fxdwgwb0drm27zylbk9irhxxm2bp55s2pdy"; depends=[glmnet mnormt]; };
-  wsrf = derive2 { name="wsrf"; version="1.7.22"; sha256="1azpy98k7z0ag9xnq1myxb67b6bdl1z0iyn0qrrsrn92025pqy8q"; depends=[Rcpp]; };
+  wsrf = derive2 { name="wsrf"; version="1.7.27"; sha256="1pw4z6a91yyx0j2wnf4y29smdxan1ws0l2jgvqckfqmx5y101czk"; depends=[Rcpp]; };
   wsyn = derive2 { name="wsyn"; version="1.0.4"; sha256="0wq07n69l52rs0ddl1r3ml5jh5nflsg9mddvc3dxjdpd00mgbxnl"; depends=[fields MASS]; };
   wtest = derive2 { name="wtest"; version="3.2"; sha256="063ax9mbb2dy33l1cl533mjzpvhf2akw3613pklfjg6bhprlniz7"; depends=[]; };
   wux = derive2 { name="wux"; version="2.2-1"; sha256="0iw0kf0wfspnpc83v7gxhcakmp0z34cccnm0jn9c2za9ay9l2swv"; depends=[abind class corpcor fields gdata Hmisc ncdf4 reshape rgdal rgeos rworldmap sp stringr]; };
   wv = derive2 { name="wv"; version="0.1.1"; sha256="06xf3c97pjhln1v31waj8rmp4r0y2kp6v2x10pbpvi8m0nf5zfs1"; depends=[coda Rcpp RcppArmadillo simts]; };
-  wvtool = derive2 { name="wvtool"; version="1.0"; sha256="0x9awj6g5lzqp2lhwgh9ib7jmfdzyhwazrjvw1vwacqqfhbz8qxv"; depends=[]; };
   wwntests = derive2 { name="wwntests"; version="1.0.1"; sha256="1algk2f55dg526zjw2ycfx2dq13m3lvfs75444iyp8fvq7j3wbcs"; depends=[ftsa MASS rainbow sde]; };
   wyz_code_metaTesting = derive2 { name="wyz.code.metaTesting"; version="1.1.21"; sha256="1033kz6zhbhd09dh40gp03dfy2kf9zskqh942i06jx1z2dvx3vvi"; depends=[crayon data_table tidyr wyz_code_offensiveProgramming]; };
   wyz_code_offensiveProgramming = derive2 { name="wyz.code.offensiveProgramming"; version="1.1.23"; sha256="1cxzh5yp6y2r5n6qkhb4g4dkbyw7mdnsfh883bhksk527ra4qaln"; depends=[crayon data_table R6 stringr tidyr]; };
@@ -18822,7 +18877,7 @@ in with self; {
   xLLiM = derive2 { name="xLLiM"; version="2.2"; sha256="0gmy3jy1nf0fixgwcgfhrwcd85ran5ic7srzcx46akad828a4znq"; depends=[abind capushe corpcor e1071 glmnet igraph MASS Matrix mda progress randomForest]; };
   xROI = derive2 { name="xROI"; version="0.9.20"; sha256="0xa12qsw5xbbfqyv60apr4f9gx7q6rad4ywayvw8l2zla2wnhq5h"; depends=[colourpicker data_table jpeg lubridate moments raster RCurl rgdal rjson shiny shinyjs sp stringr tiff]; };
   xSub = derive2 { name="xSub"; version="3.0.1"; sha256="0c3jc801pn85wm17jj911spryg6p3gq19im1506zkv8lqwsy1nab"; depends=[countrycode haven RCurl]; };
-  xVA = derive2 { name="xVA"; version="0.8.5"; sha256="1scn7acp69k80q9ksygj7ns9937yim8iwhpi54ygm28h20jnfllr"; depends=[SACCR Trading]; };
+  xVA = derive2 { name="xVA"; version="1.0"; sha256="00kk3i77xhx05mwh919kd9lckdwihinhlw90syj9ka5xlhdrd3qa"; depends=[SACCR Trading]; };
   xaringan = derive2 { name="xaringan"; version="0.23"; sha256="010k6xhblyanjf0hr4k24m26sb547jizng0nidrb2d4q1m9v1wdm"; depends=[htmltools knitr rmarkdown servr xfun]; };
   xaringanthemer = derive2 { name="xaringanthemer"; version="0.4.1"; sha256="05gkk9ll5whfvhbd8x3p180qzqcz6krz2s26lfbrp2y7srpx9jr4"; depends=[colorspace glue purrr whisker]; };
   xbreed = derive2 { name="xbreed"; version="1.0.1.1"; sha256="032i04ginyf9dyabfkygnhrkq7lqdvvyw7s41vjimy2kvjrnkkkx"; depends=[BGLR]; };
@@ -18859,7 +18914,7 @@ in with self; {
   xpose4 = derive2 { name="xpose4"; version="4.7.1"; sha256="0y2ws8cq2waiikxw2y34s3qinaq5f832k5nglif3avd8gp2fpn3q"; depends=[dplyr gam Hmisc lattice lazyeval readr survival tibble]; };
   xptr = derive2 { name="xptr"; version="1.1.3"; sha256="0352vs8dz61hgpwnf3r9r9haz3adg2wk9qxzrv313p1fcyfjz91v"; depends=[]; };
   xray = derive2 { name="xray"; version="0.2"; sha256="1ibj92ljlj8a5rmbrci691yhpd4kwrfyl944nzl2dcbf58l01dzq"; depends=[dplyr foreach ggplot2 lubridate scales]; };
-  xrf = derive2 { name="xrf"; version="0.2.0"; sha256="0hzplp2rbsbnmqpvf7ycjzbyf59iabzsppf13xwypdjxyr7f910l"; depends=[dplyr fuzzyjoin glmnet Matrix rlang xgboost]; };
+  xrf = derive2 { name="xrf"; version="0.2.1"; sha256="1p7mpjllm09hs3pp5cjcrgndqjh1q19wp5316hx76grjdhlmqbh5"; depends=[dplyr fuzzyjoin glmnet Matrix rlang xgboost]; };
   xrnet = derive2 { name="xrnet"; version="0.1.7"; sha256="136aadrvsdg9hizjg4q12h56ih0s3w88j3jpfb54ajgdmqw3pldi"; depends=[BH bigmemory foreach Rcpp RcppEigen]; };
   xslt = derive2 { name="xslt"; version="1.4.3"; sha256="1yxiadygkm5l92ywy482h1k1igl3fw6lwizhfv27swhxjcmjl47s"; depends=[Rcpp xml2]; };
   xsp = derive2 { name="xsp"; version="0.1.2"; sha256="1jbmxa234v52qji8sz4bkg24c2n65b0zh9py1wyyfzw9n1wx5w0r"; depends=[ggplot2 reshape2]; };
@@ -18890,7 +18945,6 @@ in with self; {
   yarrr = derive2 { name="yarrr"; version="0.1.5"; sha256="1258bj7x4icaxfabnnd3fgwydnqbzxkih7zw0sdlwdax3q8fw5c5"; depends=[BayesFactor circlize jpeg]; };
   yasp = derive2 { name="yasp"; version="0.2.0"; sha256="0fza8h9y1wmarsmjcvw4r970d6j4ii795pd2h4xh9nlsirv50adi"; depends=[]; };
   yatah = derive2 { name="yatah"; version="0.1.0"; sha256="0ayy0h399g3csn106vvq6j4h6w0sgzw33b7gj1hk05nc8hdzrmna"; depends=[ape purrr stringr]; };
-  ycinterextra = derive2 { name="ycinterextra"; version="0.1"; sha256="0hr37izbbmxqkjy6a7q8vcn0vs8an1ck9y8xfjpl5z0rygi8xc1v"; depends=[mcGlobaloptim]; };
   yesno = derive2 { name="yesno"; version="0.1.2"; sha256="1n9v8m1wkk9p2ahl7d1khbffxmshv68q1v44v04y4v1k6qjvm0i2"; depends=[]; };
   yhat = derive2 { name="yhat"; version="2.0-3"; sha256="00cbzj2bvr2pfspycqyf7jrdqyfg63zx25b6r9k3khafvn0ch7h1"; depends=[boot miscTools plotrix yacca]; };
   yhatr = derive2 { name="yhatr"; version="0.15.1"; sha256="18g2cr1kjxnfw6cwzl62ynppfv1zz732kbx18zq8918l85kx6wbw"; depends=[httr jsonlite stringr]; };
@@ -18899,7 +18953,7 @@ in with self; {
   ymd = derive2 { name="ymd"; version="0.0.1"; sha256="02cd7y28s406yzvax2d47xwrsqyd8mhhb879ywjqfj6lvwf3jvkd"; depends=[]; };
   ymlthis = derive2 { name="ymlthis"; version="0.1.5"; sha256="02flsiqzpasyvskzlygllmrc1vbd4cv6yx4cdfiqrcq1806kdrf2"; depends=[crayon fs glue magrittr miniUI purrr rlang rmarkdown rstudioapi shiny shinyBS stringr usethis whoami withr yaml]; };
   yonder = derive2 { name="yonder"; version="0.2.0"; sha256="1ilzn17w6skd0dhwxyrgnfzyazafp8hsi8q6pfxz6k16cd668mc0"; depends=[htmltools magrittr shiny]; };
-  yorkr = derive2 { name="yorkr"; version="0.0.31"; sha256="0fsj7j3qlf9q708hd9fq2yqsxsyaxr8gd93crq48nnirw3q9nshn"; depends=[dplyr ggplot2 gridExtra reshape2 rpart_plot yaml]; };
+  yorkr = derive2 { name="yorkr"; version="0.0.32"; sha256="15zbbvnjig2czyrnfjfmcgglw4g3k3qj9lnhddk79a4xd9v5ky50"; depends=[dplyr ggplot2 gridExtra reshape2 rpart_plot yaml]; };
   youngSwimmers = derive2 { name="youngSwimmers"; version="0.0.1"; sha256="02ih66ad8v5qkgyszllkh9319sfd6fqcci4zrvbjr1dfwlwa2ri1"; depends=[data_table lifecycle]; };
   youtubecaption = derive2 { name="youtubecaption"; version="1.0.0"; sha256="15cafl7b03xrql2y2ayy6ajf6v764wym3xqs4pbzlf6ncy8qwl5r"; depends=[dplyr magrittr purrr reticulate stringr tibble writexl]; };
   yowie = derive2 { name="yowie"; version="0.1.0"; sha256="1sm3dg4sirvlb17ciwldvnc1zzfgwxm38x1k2n99nwa6sygn1nrw"; depends=[tsibble]; };
@@ -18910,12 +18964,12 @@ in with self; {
   yulab_utils = derive2 { name="yulab.utils"; version="0.0.4"; sha256="1bj93gnj7j4b7dgkbr5v22rsbwfcw5dvipl5irmidaakvrihd19q"; depends=[]; };
   yum = derive2 { name="yum"; version="0.1.0"; sha256="1k9q34n1pzv4c7hp7cd4yhm8v1qv41an8vfh65n4byvyzipxp85y"; depends=[yaml]; };
   yummlyr = derive2 { name="yummlyr"; version="0.1.1"; sha256="0xrk6g58laksz92d8mxck923sk4j92g55szrkxk123wjp5kg9vx6"; depends=[httr jsonlite]; };
-  zCompositions = derive2 { name="zCompositions"; version="1.4.0"; sha256="032kgr5k36d0ffmdg984xx6pl4sq3m9gsiz96qc8p631m05ps3d0"; depends=[MASS NADA truncnorm]; };
+  zCompositions = derive2 { name="zCompositions"; version="1.4.0-1"; sha256="1rrhja9iaq123r2gqw1bzrn1ri0s3z4wzq8p0sfcr1yb6pv13vik"; depends=[MASS NADA truncnorm]; };
   zTree = derive2 { name="zTree"; version="1.0.7"; sha256="005zk6wpchpss6865ki35yawgf668pn70163ah97rnfkhfaswm6y"; depends=[plyr]; };
   zalpha = derive2 { name="zalpha"; version="0.3.0"; sha256="04hi5lxgcqzmkbqppp5fv8x7wdgap3bgr8b8pv4pvavzh73jlmxs"; depends=[]; };
   zbank = derive2 { name="zbank"; version="0.1.0"; sha256="0vzvlri3sncvbz2cdg8wzlpskm1lq9ji0jrfy5cx4ib19m6gxhpc"; depends=[crul jsonlite tibble]; };
   zcurve = derive2 { name="zcurve"; version="2.1.2"; sha256="0j5adicqvdbvqq70163ibv09qaxzhdrphh4xgjvipvw9akmmcy0j"; depends=[evmix nleqslv Rcpp Rdpack]; };
-  zdeskR = derive2 { name="zdeskR"; version="0.1.1"; sha256="0fqayn2g7903qs51x4ymy0aq36bwrgvp1k2701cd02zvnxy91l3j"; depends=[dplyr httr jsonlite magrittr plyr purrr tidyr]; };
+  zdeskR = derive2 { name="zdeskR"; version="0.2.0"; sha256="0kbdkxly20ai3nfwwqj04gncbg1g3sh9gy323hsif919wpid8qzg"; depends=[dplyr httr jsonlite magrittr plyr purrr tidyr]; };
   zeallot = derive2 { name="zeallot"; version="0.1.0"; sha256="1sd1igcfnv27pa3bqxlbyxchi562h7grnjg1l7wxx3bwr49i57s3"; depends=[]; };
   zebu = derive2 { name="zebu"; version="0.1.3.0"; sha256="1rlcrvhic110h8r0mqwhkzq8w566jfymxpcwv63bvs7fd8j98vsv"; depends=[foreach ggplot2 iterators plyr reshape2]; };
   zeitgebr = derive2 { name="zeitgebr"; version="0.3.5"; sha256="1h2zx3ah1xdyyag40ragrv7gvpnlzqmappbnjp971dn9khqdxfqs"; depends=[behavr data_table lomb pracma WaveletComp]; };
@@ -18929,7 +18983,7 @@ in with self; {
   zic = derive2 { name="zic"; version="0.9.1"; sha256="1vd64ljigf6iwgzlgdxgj65nlwir176h7ddznddpaz2abh6n6zwp"; depends=[coda Rcpp RcppArmadillo]; };
   zip = derive2 { name="zip"; version="2.2.0"; sha256="1n5ryjdj3i16b4mdp29wapgaklz3yzas5k8ffx7q6fa0jry9i5cz"; depends=[]; };
   zipR = derive2 { name="zipR"; version="0.1.1"; sha256="1aaw3dslhsw3zgxvkc1v60vsk44x64i4qmjwx0gq4f7dad1rbiqp"; depends=[]; };
-  zipangu = derive2 { name="zipangu"; version="0.2.3"; sha256="03msi9jz3wld83ny8za93mpnb1d856wi9ls08apih23x4272y8g2"; depends=[arabic2kansuji dplyr lifecycle lubridate magrittr purrr rlang stringi stringr tibble]; };
+  zipangu = derive2 { name="zipangu"; version="0.3.0"; sha256="0s4ym8amaj5wbh28a5bra2rcrywabwim6k7r155mxxf2mvd47kik"; depends=[arabic2kansuji dplyr lifecycle lubridate magrittr memoise purrr rlang stringi stringr tibble]; };
   zipcodeR = derive2 { name="zipcodeR"; version="0.3.3"; sha256="16g8y5k9ya528d62xmh2v6kh47pgjapsxsfmf9pqsnph6fd9rf6a"; depends=[curl DBI dplyr httr jsonlite raster rlang RSQLite stringr tidycensus tidyr]; };
   zipfR = derive2 { name="zipfR"; version="0.6-70"; sha256="15ng7rj7qbgxajx8jb9kv04xmbidg9wwzxr2xaskmlaxrxlqac8c"; depends=[]; };
   zipfextR = derive2 { name="zipfextR"; version="1.0.2"; sha256="03rlvvw7rfbhsbwd5njmgkkkrxq1lgjdydmpkn6h1hi97pc0gbhh"; depends=[copula tolerance VGAM]; };
@@ -18958,9 +19012,11 @@ in with self; {
   zzlite = derive2 { name="zzlite"; version="0.1.2"; sha256="0vi1slx2s4r5zf82lazqv0c3m12xq73wlgsbz6af4y00h0bkr3ps"; depends=[httr jsonlite]; };
   ACSNMineR = derive2 { name="ACSNMineR"; version="0.16.8.25"; sha256="0gh604s8qall6zfjlwcg2ilxjvz08dplf9k5g47idhv43scm748l"; depends=[ggplot2 gridExtra scales]; broken = true; };
   AMORE = derive2 { name="AMORE"; version="0.2-16"; sha256="0vw6hhykg1r6xxja6d4zb2y00x7pfkmhcq9xkidz8p4arinb7xnl"; depends=[]; broken = true; };
+  ANTs = derive2 { name="ANTs"; version="0.0.15"; sha256="04iiajq8fi40zzjjg98h75slm848zcrazzg16ll4cnqd8wsd9d3n"; depends=[gtools Kendall lme4 Rcpp RcppArmadillo RcppEigen rstudioapi]; broken = true; };
   AWAPer = derive2 { name="AWAPer"; version="0.1.46"; sha256="02n662wvd8qwshfmj9qfff730qs6ls82hkdsphw05jj6llddi4k5"; depends=[chron Evapotranspiration maptools ncdf4 raster sp xts zoo]; broken = true; };
   AlphaVantageClient = derive2 { name="AlphaVantageClient"; version="0.0.1"; sha256="095m850v945lw7i3qd812p28srdb5hdk9h52zf6bkr166zai1ni0"; depends=[httr xts]; broken = true; };
   AnDE = derive2 { name="AnDE"; version="1.0"; sha256="1yil8ab50wvlqmdla9kmfba8vfgy5r694r6igb58s6vnmld78yf2"; depends=[discretization foreign functional stringr]; broken = true; };
+  AnalyzeFMRI = derive2 { name="AnalyzeFMRI"; version="1.1-24"; sha256="0qkhw6bik6s82h4yb5bashqjl8wfxarivvz6r5ffn9cgrvlwyahd"; depends=[fastICA R_matlab]; broken = true; };
   AnimalAPD = derive2 { name="AnimalAPD"; version="1.0.0"; sha256="1csa6disrg11hpxg4zw0jay15srw9lsgbhl1xgl7hpdr3nqsv3s7"; depends=[activityGCMM brms circular ggplot2 gridExtra loo overlap]; broken = true; };
   AnnotLists = derive2 { name="AnnotLists"; version="1.2"; sha256="1g2khb2ggniwg2zcjamsm3bxyrl2zabvk540b5vyy9am9k83m1g9"; depends=[]; broken = true; };
   BALD = derive2 { name="BALD"; version="1.0.0-3"; sha256="1azyqami07g3ax60j0ws3d1qha65k0svn2v5c9pisni0qch5xql0"; depends=[lattice logspline rjags]; broken = true; };
@@ -18968,40 +19024,53 @@ in with self; {
   BCT = derive2 { name="BCT"; version="1.1"; sha256="058iir5mhgc7zy1nha8g6299ya9jvg1skxj3flgn3b97snjx5qky"; depends=[igraph Rcpp stringr]; broken = true; };
   BIS = derive2 { name="BIS"; version="0.2.1"; sha256="0mngmchgc46wc9a7ksyqrvj6k46nm4ih7x69k3xijfia9bgkym0v"; depends=[dplyr readr rvest tidyr xml2]; broken = true; };
   BNN = derive2 { name="BNN"; version="1.0.2"; sha256="13h9xqfdqnc9d8brx1xlmvb4nrkpwncwjz98y7i3wijih85wkikd"; depends=[mvtnorm]; broken = true; };
+  BayesBEKK = derive2 { name="BayesBEKK"; version="0.1.0"; sha256="0fykcmf54820krwy7q573gmlcrx96i94knx7rgzc83i287lnpnfg"; depends=[coda MTS mvtnorm]; broken = true; };
   BayesValidate = derive2 { name="BayesValidate"; version="0.0"; sha256="1gli65avpkb90asx92l1yjbwaxcsyb920idyjwgd2sl2b3l657ly"; depends=[]; broken = true; };
-  BigDataStatMeth = derive2 { name="BigDataStatMeth"; version="0.99.14"; sha256="05mmi12wn0xis4vwjn9zi3gcpxm9jmp7kpfazxsasbwgvrdd9k3q"; depends=[beachmat BH data_table Rcpp RcppEigen RcppParallel RCurl rhdf5 Rhdf5lib RSpectra]; broken = true; };
   BigTSP = derive2 { name="BigTSP"; version="1.0"; sha256="1jdpa8rcnrhzn0hilb422pdxprdljrzpgr4f26668c1vv0kd6k4v"; depends=[gbm glmnet randomForest tree]; broken = true; };
   BioMedR = derive2 { name="BioMedR"; version="1.2.1"; sha256="0l3nmnqv0gzkbby4fhajbba910zpnbyckvxwds353pn54g9pcry7"; depends=[Biostrings ChemmineR fmcsR GOSemSim MASS org_Hs_eg_db pls randomForest rcdk RCurl rjson]; broken = true; };
-  BoutrosLab_plotting_general = derive2 { name="BoutrosLab.plotting.general"; version="6.0.3"; sha256="0sirpdp7k28wwn5k5wyc0ib6abb5b1qpjrrk3m168x5yg1s2hqkf"; depends=[cluster e1071 gridExtra gtable hexbin lattice latticeExtra MASS]; broken = true; };
+  CATkit = derive2 { name="CATkit"; version="3.3.3"; sha256="01q2ssyg0jcjgahaslfgpakjsv2wil654lc6xrg5xbbrkx7ccb90"; depends=[assertr CombMSC Hmisc magic MASS png rtf season signal]; broken = true; };
   CCpop = derive2 { name="CCpop"; version="1.0"; sha256="10kgw3b98r0kn74w89znq6skgk8b3ldil6yb0hn5rlcf6lazjzca"; depends=[nloptr]; broken = true; };
   CDSeq = derive2 { name="CDSeq"; version="1.0.8"; sha256="06pjp9hn9ziz4wgkaj0r0zzw69r7635j10rmnl331abc4mchpazy"; depends=[Biobase clue dirmult doParallel dplyr foreach ggplot2 ggpubr gplots iterators magrittr MASS Matrix matrixStats qlcMatrix Rcpp RcppArmadillo RcppThread rlang Seurat]; broken = true; };
+  CIMTx = derive2 { name="CIMTx"; version="1.1.0"; sha256="0091qdh10nxvzm4xxw0vw6k5pa7pi5mdfi5b9msfqfvzq00gyjfx"; depends=[arm BART cowplot doParallel dplyr foreach ggplot2 magrittr Matching metR mgcv nnet stringr SuperLearner tidyr tmle twang WeightIt]; broken = true; };
   CLSOCP = derive2 { name="CLSOCP"; version="1.0"; sha256="0rkwq9rl2ph4h5zwb2i3yphjyzxmh6b6k23a8gcczycx6xdq4yhw"; depends=[Matrix]; broken = true; };
   ChoiceModelR = derive2 { name="ChoiceModelR"; version="1.2"; sha256="0dkp3354gvrn44010s8fjbmkpgn1hpl4xbfs5xslql8sk8rw0n2c"; depends=[]; broken = true; };
   ClimDown = derive2 { name="ClimDown"; version="1.0.8"; sha256="0qcag9jwvhi9yss55wy5jxabrvym9hljn1fs5gfkzjs5hiwv3gxv"; depends=[abind fields foreach ncdf4 PCICt seas udunits2]; broken = true; };
+  CombMSC = derive2 { name="CombMSC"; version="1.4.2.1"; sha256="1jxf59hs1px271im2dwc1653y9pfp79gwmacafcva224bvh5vi49"; depends=[]; broken = true; };
   ConfoundedMeta = derive2 { name="ConfoundedMeta"; version="1.3.0"; sha256="17l6dfff2v0a4p022qclrmkzi78ga9adkgxgrgk9imz0n9m9424d"; depends=[ggplot2 metafor]; broken = true; };
   CreditMetrics = derive2 { name="CreditMetrics"; version="0.0-2"; sha256="16g3xw8r6axqwqv2f0bbqmwicgyx7nwzff59dz967iqna1wh3spi"; depends=[]; broken = true; };
   CytobankAPIstats = derive2 { name="CytobankAPIstats"; version="2.0"; sha256="0xczcgaxd8dv6fd1j5c8y4il852lq8859d1y16sxs8a3gqn9fbz2"; depends=[CytobankAPI pheatmap shiny shinyFiles xlsx]; broken = true; };
+  DET = derive2 { name="DET"; version="3.0.1"; sha256="0r2q1r4wc4nhhrr9bllxsp2w6ajja61mh34dyijjsfchx4025ljb"; depends=[doParallel pROC]; broken = true; };
   DStree = derive2 { name="DStree"; version="1.0"; sha256="14wba25ylmsyrndh007kl377dv4r34wr1555yxl6kyxrs4yg3jir"; depends=[Ecdat pec Rcpp rpart rpart_plot survival]; broken = true; };
+  Data2LD = derive2 { name="Data2LD"; version="3.2.1"; sha256="1y6nyysm96q5mlrcl0vkjhq5lr624n2266xpmyl4ck0h1dhjb6bz"; depends=[deSolve fda knitr rmarkdown]; broken = true; };
   DataEntry = derive2 { name="DataEntry"; version="0.9-3"; sha256="0gfsg7wfwy88x7y1dwpgwi6fkizjnhrzj0a5ij70y4a4sjmyiy55"; depends=[digest gWidgets2 gWidgets2RGtk2 RGtk2]; broken = true; };
   DeducerSpatial = derive2 { name="DeducerSpatial"; version="0.7"; sha256="0133qk3yjcifyha7c4pqr5s0hmbci72bzgil2r0sxjmrljs3q727"; depends=[Deducer Hmisc JavaGD maptools OpenStreetMap rgdal scales sp UScensus2010]; broken = true; };
   DengueRT = derive2 { name="DengueRT"; version="1.0.1"; sha256="11qfg4l6y3j8qh4dcsz13xjjj1n0q71c9a3c180nm5lgqv0nwb81"; depends=[drc ggplot2 nlme]; broken = true; };
   DiPs = derive2 { name="DiPs"; version="0.6.2"; sha256="13n50wakvh7ny342xl007k1dfbwmgzg8kxvgcpfblaypqn48q09f"; depends=[liqueueR mvnfast plyr]; broken = true; };
   DominoPredictionLogging = derive2 { name="DominoPredictionLogging"; version="0.1.0"; sha256="1qzh8inzqk1s6cw9bsl7hazdf6cbfr11zs22723wl4xs31inp1lg"; depends=[lgr rjson uuid]; broken = true; };
   DrInsight = derive2 { name="DrInsight"; version="0.1.2"; sha256="1zz9i4aj0ijqfgp30wv0bvrgx2n003dysqg0pm13f7hni27819ff"; depends=[igraph qusage]; broken = true; };
+  EHR = derive2 { name="EHR"; version="0.4-5"; sha256="0pxwk5kcj2aap8sj0k1rgsf25hsg1wn9m2wbm2yriscjp70k7rd1"; depends=[data_table lubridate pkdata]; broken = true; };
   EL = derive2 { name="EL"; version="1.0"; sha256="13r7vjy2608h8jph8kwy69rnkg98b2v69117nrl728r3ayc46a18"; depends=[]; broken = true; };
+  EMC = derive2 { name="EMC"; version="1.3"; sha256="0sdpxf229z3j67mr9s7z4adzvvphgvynna09xkkpdj21mpml23p6"; depends=[MASS mvtnorm]; broken = true; };
   EasyHTMLReport = derive2 { name="EasyHTMLReport"; version="0.1.1"; sha256="1hgg8i7py7bx48cldyc7yydf0bggmbj3fx3kwiv9jh1x5wyh929z"; depends=[base64enc ggplot2 knitr markdown reshape2 scales xtable]; broken = true; };
   Eunomia = derive2 { name="Eunomia"; version="1.0.1"; sha256="06a42qsf3nx1pbynikkdvmbhh1rmgnfmiggdn86b3a0ij6cq0p2r"; depends=[DatabaseConnector RSQLite SqlRender]; broken = true; };
-  FAVAR = derive2 { name="FAVAR"; version="0.1.0"; sha256="04ajrq5wii4mccnaxn3wsn7kdfd2pydxaygk6dnbhc6610xs8bc5"; depends=[bvartools coda doParallel dplyr foreach ggplot2 magrittr matlab Matrix MCMCpack]; broken = true; };
+  FDboost = derive2 { name="FDboost"; version="1.0-0"; sha256="1227fda2m8lsq3cndv0xgbgbcfdxhc4fjiyj2dmha1z4sycd7a28"; depends=[gamboostLSS MASS Matrix mboost mgcv stabs zoo]; broken = true; };
   FitARMA = derive2 { name="FitARMA"; version="1.6.1"; sha256="02di0pkz6hh92glpn3li6z9azkcqa64ja8zfpy0mkh1l97mw6jsv"; depends=[FitAR]; broken = true; };
+  FlywayNet = derive2 { name="FlywayNet"; version="0.1.0"; sha256="00sp3m3iv6qifrkk0rncmzidv15b5fj138g0mai95lp280b040va"; depends=[EasyABC igraph modeest Rcpp]; broken = true; };
   FunCluster = derive2 { name="FunCluster"; version="1.09"; sha256="0i73asn1w4s6ydf2ddn5wpr0mwbbxzgmaly1pslarzkx71wk03fz"; depends=[cluster Hmisc]; broken = true; };
+  GBcurves = derive2 { name="GBcurves"; version="0.1.6"; sha256="1agd7nkgahhwcc5p1zybnd6xws0kr0ggk70aznxfn2nijhw7sqwr"; depends=[curl functional httr magrittr readxl rvest xml2 xts]; broken = true; };
+  GDELTtools = derive2 { name="GDELTtools"; version="1.5"; sha256="1lhsyf7kd1lnx2dgifmrd89yl95sf9k6ay19dll2p8b9h3vs7hci"; depends=[dplyr plyr TimeWarp]; broken = true; };
+  GE = derive2 { name="GE"; version="0.2.6"; sha256="0vxrw08851n6vfqsvr11746l36n8m4sq5qyhgw1yrcj5g4qwnbf9"; depends=[CGE data_tree DiagrammeR]; broken = true; };
   GGEBiplotGUI = derive2 { name="GGEBiplotGUI"; version="1.0-9"; sha256="0nd0ky3m1avy82z48g7hcysq0y0agxjxdn0g624dkm2w99avxw3j"; depends=[rgl tkrplot]; broken = true; };
   GHap = derive2 { name="GHap"; version="2.0.0"; sha256="0br9civfdlksn5xmyrvz2y0knikcd2i175kddxjdqmiyyayckc8w"; depends=[class data_table e1071 lme4 Matrix]; broken = true; };
+  GPrank = derive2 { name="GPrank"; version="0.1.4"; sha256="06j5fk427jkp5lphqlx48vfp4fagnxxnv4iyjcha8nvkswcblwgy"; depends=[gptk matrixStats RColorBrewer tigreBrowserWriter]; broken = true; };
   GeneBook = derive2 { name="GeneBook"; version="1.0"; sha256="1cg8zyr7rbshj3shhzkrxs910dsz4brhh51jvn2qzipzd8dbvxiv"; depends=[dplyr repmis stringr svDialogs]; broken = true; };
   GeoLight = derive2 { name="GeoLight"; version="2.0.0"; sha256="1i49hyj3f5rcw0s6j2csnfwc6mnp5zn44vxjnk05wdkpw6dpvx5i"; depends=[changepoint fields maps MASS]; broken = true; };
   HRM_curve = derive2 { name="HRM.curve"; version="0.0.1"; sha256="0p3kvldpz347c0cdjkrdm0x2nfj85hm5cp59lirqhq77hf1zfnd5"; depends=[]; broken = true; };
   HSAR = derive2 { name="HSAR"; version="0.5.1"; sha256="03ryscvgiiwjcqk6gy3251nqqk43x508kz3ibw35hi84m2s7fsxj"; depends=[Rcpp RcppArmadillo spatialreg spdep]; broken = true; };
+  HYRISK = derive2 { name="HYRISK"; version="1.2"; sha256="1ngwwzv1pavmscpca3ryzfxzd9rppsh0sm7k4sp2kzc9c0bix4xp"; depends=[kerdiest pbapply reliaR rgenoud sets triangle]; broken = true; };
   HierO = derive2 { name="HierO"; version="0.2"; sha256="1lqj5grjly4kzxl7wb192aagz2kdvpnjdan2kcg5yxwvg1xcvwv1"; depends=[bitops RCurl rneos tcltk2 XML]; broken = true; };
   HierPorfolios = derive2 { name="HierPorfolios"; version="0.1.0"; sha256="0lx10lnslal689ykp7idvngc074yhfx3mkddyrax91djnqsc8aq4"; depends=[cluster fastcluster RiskPortfolios]; broken = true; };
+  Holidays = derive2 { name="Holidays"; version="1.0-7"; sha256="1srfbhlrf0pd6gzhp4hbic555lb7camk084rn1qz2g7fjvyijqiq"; depends=[TimeWarp]; broken = true; };
   HybridMC = derive2 { name="HybridMC"; version="0.2"; sha256="1wgzfyk0scwq9s2sdmc91fj7r4d7zlgwgnj6mdiia8w88ja8kzqy"; depends=[coda]; broken = true; };
   ICSsmoothing = derive2 { name="ICSsmoothing"; version="1.2.5"; sha256="08m8p6y5zk54ha3wp5x9xbx6f2xkkqx232hsan1f1s8k9j3q5avd"; depends=[ggplot2 polynom]; broken = true; };
   IMAGE = derive2 { name="IMAGE"; version="1.0"; sha256="0xgrja7qhklcmbm0zz5xg94gw5kl05nk3v77l7vxq2d5sk0435g3"; depends=[doParallel foreach Matrix Rcpp RcppArmadillo]; broken = true; };
@@ -19011,11 +19080,11 @@ in with self; {
   IRSF = derive2 { name="IRSF"; version="1.0.3"; sha256="1cq196z2i4by7dfij6w849a49d8dzzcdk5a68nxvmvwq3xskywam"; depends=[abind randomForestSRC survival]; broken = true; };
   ISEtools = derive2 { name="ISEtools"; version="3.1.1.1"; sha256="00d6znqz2mfmyi9ijgrg2pwl4lnvvsy00ysa7a7vjq7ip8qvcjfq"; depends=[coda Xmisc]; broken = true; };
   ISR3 = derive2 { name="ISR3"; version="0.98"; sha256="0mmpdl9ndlj9i0k3zl7ja0g7y9pm67igw925ld5qnz7a36plygxs"; depends=[]; broken = true; };
+  IUPS = derive2 { name="IUPS"; version="1.0"; sha256="01pv03ink668fi2vxqybli0kgva13gxhqfdxkwz6qk5rnpzwvf5w"; depends=[boot Matching R2jags]; broken = true; };
   IceCast = derive2 { name="IceCast"; version="2.1.0"; sha256="0h3z68lfjw5s51601m17m2gvn12vkwj5gzc70dqzfjmxdkgv3p28"; depends=[coda maptools MASS ncdf4 raster Rcpp RcppArmadillo rgeos sp]; broken = true; };
   IgorR = derive2 { name="IgorR"; version="0.8.1"; sha256="1lkiz3gxj8i1xbr5jp69z21rpk7kz3a68h29inp1qa7zi7gikmgx"; depends=[bitops]; broken = true; };
   Interpol_T = derive2 { name="Interpol.T"; version="2.1.1"; sha256="1fbsl1ypkc65y6c0p32gpi2a2aal8jg02mclz7ri57hf4c1k09gz"; depends=[chron date]; broken = true; };
   JMcmprsk = derive2 { name="JMcmprsk"; version="0.9.10"; sha256="1hkylfrr2036vgkxfs98szm3883bmyvvyr0f3a8xygccf3pn28xc"; depends=[dplyr MASS pracma Rcpp reshape2 statmod]; broken = true; };
-  KODAMA = derive2 { name="KODAMA"; version="1.8"; sha256="0i1lwjzxjpm9yng763hkbi88q13i9bhcwwin6b3lkif34r4c3n8y"; depends=[minerva Rcpp RcppArmadillo]; broken = true; };
   KernelICA = derive2 { name="KernelICA"; version="0.1.0"; sha256="1yq7w24qq23c81a9y0jn36iw7zjbxsj3b3p1rq6yl0lanzda9bsr"; depends=[ICtest inline JADE ManifoldOptim Rcpp RcppArmadillo RcppEigen]; broken = true; };
   Knoema = derive2 { name="Knoema"; version="0.1.19"; sha256="16izh1viaqxvhgfxy2g6b9hhvm1n6nbjsj2xd45qwdibl3ly8d0f"; depends=[base64enc digest httr jsonlite lubridate xts zoo]; broken = true; };
   KnowGRRF = derive2 { name="KnowGRRF"; version="1.0"; sha256="0nk0baibd184rsg23jx1wg4c2fcaqf8ww7822xrs3w5ym6vwd0rs"; depends=[MASS PRROC randomForest RRF]; broken = true; };
@@ -19025,21 +19094,34 @@ in with self; {
   LIHNPSD = derive2 { name="LIHNPSD"; version="0.2.1"; sha256="08ils29vvaq6abkgxbh028vwjw6l6h10cirbnwr65s458zvh4xqv"; depends=[BB Bolstad2 moments optimx Rmpfr sn]; broken = true; };
   LogitNet = derive2 { name="LogitNet"; version="0.1-1"; sha256="08xi5rpbqkc1b3qj24blv3l0r68wcqbsbjcqxiypm75f3c2irc4i"; depends=[]; broken = true; };
   MAPLES = derive2 { name="MAPLES"; version="1.0"; sha256="0hzsh7z1k7qazpxjqbm9842zgdpl51irg7yfd119a7b2sd3a8li9"; depends=[mgcv]; broken = true; };
+  MARX = derive2 { name="MARX"; version="0.2"; sha256="1rc87hz719khl8mclbkfdix499nsc4nyihaaavd73nany7iprm02"; depends=[fBasics matlab metRology stabledist tseries]; broken = true; };
   MAc = derive2 { name="MAc"; version="1.1.1"; sha256="1dawqmziffaz8wgcqzwc0yifdq65abgn24vafkrwa9850048c26f"; depends=[]; broken = true; };
+  MCDM = derive2 { name="MCDM"; version="1.2"; sha256="0r27y9mqvfnv1m0yi2xdyjr4y1s43d5yav960kz2xa732hrrxw01"; depends=[RankAggreg]; broken = true; };
+  MCMChybridGP = derive2 { name="MCMChybridGP"; version="5.4"; sha256="19nbch76g7jf53nrb1lyzr3zd0z6rpz2k86mq1r9aidwwxh81g7p"; depends=[MASS]; broken = true; };
   MHTcop = derive2 { name="MHTcop"; version="0.1.1"; sha256="1mr8y8brsi37b5qx3fqm0bj90dgknzzwhxfmvyd9kxbxh19whgxq"; depends=[copula matrixStats MCMCpack mvtnorm stabledist]; broken = true; };
   MLPA = derive2 { name="MLPA"; version="1.10.0"; sha256="1w8vhvs8ri8iyh068g59chz3mn0wapa4jr1wmhjlzwa2c651q2cx"; depends=[]; broken = true; };
   MLRShiny = derive2 { name="MLRShiny"; version="0.1.0"; sha256="06zcyz8l4754sjbcql3jd3nq1d2lgj92p5h2bh708z52mww71isw"; depends=[corrgram dplyr forecast psych QuantPsyc shiny shinyAce]; broken = true; };
   MLRShiny2 = derive2 { name="MLRShiny2"; version="0.1.0"; sha256="1ygamp0ldz1i0w2xyi205rpd1gd5asw61l36z06j41ghdyiz1lww"; depends=[corrgram dplyr forecast psych QuantPsyc shiny shinyAce]; broken = true; };
   MRMR = derive2 { name="MRMR"; version="0.1.4"; sha256="0dgbhlynaaka7mdzl6igwgcdzvy6cm2y8mbxaf9pfla8w3z8y0lq"; depends=[ggplot2 lmtest lubridate plyr reshape2]; broken = true; };
+  MRPC = derive2 { name="MRPC"; version="3.0.0"; sha256="1lqqfffqvzvp7g3phrjcra0n52lcl2xywibh0vizc85fkkp1clbd"; depends=[bnlearn compositions dynamicTreeCut fastcluster GGally graph gtools Hmisc mice network pcalg plyr psych Rgraphviz sna WGCNA]; broken = true; };
+  MTS = derive2 { name="MTS"; version="1.1.1"; sha256="0mb7h4h94a2x104ybkg9836k3szdimlcdccwxjc5naarxhdifv60"; depends=[fBasics fGarch mvtnorm Rcpp RcppEigen]; broken = true; };
   MVT = derive2 { name="MVT"; version="0.3"; sha256="0vinlv3d5daf8q7pd9xgs51nxz2njgdba5750vygmv883srlzi9d"; depends=[]; broken = true; };
+  Mapinguari = derive2 { name="Mapinguari"; version="1.0.0"; sha256="1jfqinfr6wkpmkp4jm9ixgawcywm3n1ni03h6zngvx74saz7kd3g"; depends=[dplyr magrittr raster rgdal rlang stringr testthat]; broken = true; };
+  MaskJointDensity = derive2 { name="MaskJointDensity"; version="1.0"; sha256="0nxhsz57cw96in0sg5xg7sicv920kcnxr2rikn39y2qk4vrw6r78"; depends=[ks MASS np plyr]; broken = true; };
   MedOr = derive2 { name="MedOr"; version="0.1"; sha256="1rwc14s16lnzgb78ac2017hv9pss7zw7nw3y7vrvq1qx4fgiw6f8"; depends=[]; broken = true; };
+  MetaClean = derive2 { name="MetaClean"; version="1.0.0"; sha256="12vgdizggyz6wx08qf34jfhwgpzfrkgq63fvhfgi5gbf1nhma5zz"; depends=[BiocStyle caret fastAdaboost ggplot2 graph kernlab klaR knitr MLmetrics plotrix randomForest reshape2 Rgraphviz rpart xcms]; broken = true; };
   MetaboLouise = derive2 { name="MetaboLouise"; version="1.0.0"; sha256="1agcp520in0wpxv3x2jvvmv61hasazdymnvjhzl66nwv8lifl98z"; depends=[igraph]; broken = true; };
   Meth27QC = derive2 { name="Meth27QC"; version="1.1"; sha256="0ad30svs2kjzmmyvcm0jmv64iyq7slp1x1xl35h2rv1b6zbd4658"; depends=[gplots]; broken = true; };
+  MicroSEC = derive2 { name="MicroSEC"; version="1.1.3"; sha256="1imdxm15f792xw5kc9lhry5jsw739j6y3f2fs64abj22hqxfwypi"; depends=[BiocGenerics Biostrings data_table dplyr GenomeInfoDb GenomicAlignments gtools magrittr openxlsx R_utils Rsamtools stringr tidyr]; broken = true; };
+  ModelGood = derive2 { name="ModelGood"; version="1.0.9"; sha256="1y99a7bgwx167pncxj00lbw3cdjj23fhhzl8r24hwnhxr984kvzl"; depends=[prodlim]; broken = true; };
+  MsdeParEst = derive2 { name="MsdeParEst"; version="1.7"; sha256="1zhi1jr30sl7jpsw37lc3akfzixlhm9k2hjkha1pjy5fmd5lddlx"; depends=[MASS moments mvtnorm sde]; broken = true; };
   Myrrix = derive2 { name="Myrrix"; version="1.2"; sha256="05x2h4ppjhfm0wlpwyp8ycjg59qj3gv0yqdilxrzb1lkrzln92xb"; depends=[Myrrixjars rJava]; broken = true; };
   Myrrixjars = derive2 { name="Myrrixjars"; version="1.0-2"; sha256="1hhfg83z5kl6l250z3lippx3qc68k1wj1qlfzd6m66rgmk699gyl"; depends=[rJava]; broken = true; };
+  NADA2 = derive2 { name="NADA2"; version="1.0.1"; sha256="01x3ylrp3kizq9aa0wyaj4jbyr4si2vi8rc3b8r0bllnsl2ia2ix"; depends=[cenGAM coin EnvStats fitdistrplus Kendall mgcv multcomp NADA perm survival survminer vegan]; broken = true; };
   NLMR = derive2 { name="NLMR"; version="1.1"; sha256="1m08nm71wbam6d8nj8akwqrm6nq5bvm3v76kdlasdgs7v36xzri6"; depends=[checkmate dplyr fasterize igraph RandomFields raster Rcpp sf spatstat_core spatstat_geom tibble]; broken = true; };
   NPMVCP = derive2 { name="NPMVCP"; version="1.1"; sha256="13jpm46abwziq8859jhl6hg1znk3ws1q7g4vlr2jyri3qa6h22dd"; depends=[]; broken = true; };
   NetData = derive2 { name="NetData"; version="0.3"; sha256="1jf05zwy0c6gmm7kvxlwvai61bz4wpsw7cl0h4i21ipzn1rqxmqj"; depends=[]; broken = true; };
+  OTclust = derive2 { name="OTclust"; version="1.0.4"; sha256="11mr67zp68wzf1dd6vb3f31g8a430im97sdjsb0w4awqpmjdyyrz"; depends=[class ggplot2 magrittr RColorBrewer Rcpp]; broken = true; };
   OligoSpecificitySystem = derive2 { name="OligoSpecificitySystem"; version="1.3"; sha256="17mspf1ph2ybv046zckykfdcbrsiz40hrs6ib5mpwkfnrvsp1w7l"; depends=[tkrplot]; broken = true; };
   Omisc = derive2 { name="Omisc"; version="0.1.4"; sha256="1f6aakywjabq0xds5yl70ivr1jmw26zry2m65xszfp8p5mp45c7g"; depends=[copula MASS psych]; broken = true; };
   OpenMPController = derive2 { name="OpenMPController"; version="0.2-5"; sha256="00hs8v47pr2d726z8izkfrgmayw147hdm16rr9rw1zs3ad216zjj"; depends=[]; broken = true; };
@@ -19047,43 +19129,54 @@ in with self; {
   PANDA = derive2 { name="PANDA"; version="0.9.9"; sha256="1sf3c49v4mb3mz2imqlqdbh1iab7bc2pxpi8bmgj2jld133555ip"; depends=[cluster GO_db]; broken = true; };
   PCObw = derive2 { name="PCObw"; version="0.0.0"; sha256="1mz9fpd8k0fs14gvs9bhzrpydz200fsg52njaw2nr08184q78r4y"; depends=[Rcpp RcppEigen]; broken = true; };
   POPdemog = derive2 { name="POPdemog"; version="1.0.3"; sha256="0j83c853ligmw8ag4pb0vj46sfn2w2ynh4wvgkabzs688hxxni8r"; depends=[]; broken = true; };
+  PPTcirc = derive2 { name="PPTcirc"; version="0.2.1"; sha256="07z5561gkn1wafgp9fj1qkj7mqr0n1pda1v6687gh5s170glnlbw"; depends=[circular progress]; broken = true; };
   PROTOLIDAR = derive2 { name="PROTOLIDAR"; version="0.1"; sha256="0bz3071b0wlcvh40vl3dyiiixk5avsj6kjjnvlvx264i5g08rij4"; depends=[]; broken = true; };
+  PRSim = derive2 { name="PRSim"; version="1.4-1"; sha256="15vj8d61vax6nr25wxbwsj48l8zmam6av943fbis2h6gw5cm4rbf"; depends=[goftest homtest lmomco mev splus2R wavScalogram]; broken = true; };
   PVplr = derive2 { name="PVplr"; version="0.1.0"; sha256="1ssmdhq2qczk6n50f8jj4j3nym7jj9bshfc1f29lccvmp7wxdp9a"; depends=[broom cluster dplyr ggplot2 magrittr minpack_lm purrr rlang segmented stlplus tidyr]; broken = true; };
+  PandemicLP = derive2 { name="PandemicLP"; version="1.3.0"; sha256="12mhzzp5qjdg4krwa7z51lbcyxnp9lyp3jb16bcchmy3ggd1m3cx"; depends=[BH covid19br curl dplyr plotly Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders tidyr]; broken = true; };
   ParallelTree = derive2 { name="ParallelTree"; version="0.1.3"; sha256="1h53qwhc63fglm452b3by7f3g6f3hyqwkmwmbdqdb9rv3j4gvnvg"; depends=[ggplot2]; broken = true; };
   PatternClass = derive2 { name="PatternClass"; version="2.0.1"; sha256="1xwlk6shms38nqxad3d15254wgnkfzy7jyf5w9bbm96kg05mndbz"; depends=[landscapemetrics raster]; broken = true; };
   Plasmode = derive2 { name="Plasmode"; version="0.1.0"; sha256="1qcni9zdckhsnw616jn7rdfd09kbl5wd4hljdja0w73jz1wd1z14"; depends=[arm epiDisplay foreign gbm glm2 lattice latticeExtra lme4 MASS Matrix mgcv nlme nnet RColorBrewer survey survival twang xtable]; broken = true; };
   PoissonSeq = derive2 { name="PoissonSeq"; version="1.1.2"; sha256="1hhx0gv06cp6hm6h36mqy411qn9x15y45crpzbyf8crfs85c6gbg"; depends=[combinat]; broken = true; };
   PopGenKit = derive2 { name="PopGenKit"; version="1.0"; sha256="0l4mbm0cyppgvcw2cbimrv29aiciyj00k8wfwcj5zr8sh7fgfhs4"; depends=[]; broken = true; };
   PoweR = derive2 { name="PoweR"; version="1.0.7"; sha256="040wc7hxa8y6bm1rs7ip2skdxmmwksxkyb6xzqgdjp8m7a25fppb"; depends=[Rcpp RcppArmadillo]; broken = true; };
+  QBAsyDist = derive2 { name="QBAsyDist"; version="0.1.2"; sha256="1yql29npaq9yz02bv3hqf5m2mhscjms7qqf4vlaxm8s665rxcxad"; depends=[ald Deriv GoFKernel locpol nloptr quantreg scdensity zipfR]; broken = true; };
   QuantPsyc = derive2 { name="QuantPsyc"; version="1.5"; sha256="1i9bh88r8zxndzjqsj14qw64gnvm5a9kvhjhzk3qsrvl3qzjgh93"; depends=[boot MASS]; broken = true; };
   QuantumClone = derive2 { name="QuantumClone"; version="1.0.0.6"; sha256="1520jgkzp8g7gv7ggqhvlrdnpdyhygqjgsd1my5jq30afdqj6qmp"; depends=[DEoptim doParallel foreach fpc ggplot2 gridExtra NbClust optimx]; broken = true; };
+  RAT = derive2 { name="RAT"; version="0.2.0"; sha256="1sc1bmkk9lba1d7jxrw7wy5lcikixalwibsk7mpgv3x30m8mkc55"; depends=[ggplot2 mapproj wosr]; broken = true; };
   RAhrefs = derive2 { name="RAhrefs"; version="0.1.4"; sha256="0yd7jbv2x711dnhbvwjjg7qhg8h8bh5564amsv9bkqw661i042m3"; depends=[assertthat httr jsonlite testthat]; broken = true; };
   RBestMatch = derive2 { name="RBestMatch"; version="0.1.1"; sha256="1nx1dnhlqi4gad1yw6h91av911wv6dap252hza98dgjysv46spya"; depends=[DiPs mvnfast plyr]; broken = true; };
   RCSL = derive2 { name="RCSL"; version="0.99.95"; sha256="1ngzbhrc74ljhidsf7a17k4hyx0igv2srgbf822gm2wawzsmp0y2"; depends=[ggplot2 igraph mclust NbClust pracma RcppAnnoy Rtsne SingleCellExperiment umap]; broken = true; };
   RClone = derive2 { name="RClone"; version="1.0.3"; sha256="1zcb7s88qkpcbkhvawggsckzs5d9s9l9kr2c2njrr86ymq7lgwdj"; depends=[]; broken = true; };
   RDFTensor = derive2 { name="RDFTensor"; version="1.3"; sha256="1kfhhn0lb1r61bkgxn7rv1smgk8b7vxbc8y97hdmg5argiywc65i"; depends=[doParallel foreach Matrix pracma]; broken = true; };
+  REdaS = derive2 { name="REdaS"; version="0.9.3"; sha256="09mmcvzgsxvrcq7sq3pw81pxgb1493p8lx8p5hhz8i42vshza6pn"; depends=[]; broken = true; };
+  RFCCA = derive2 { name="RFCCA"; version="1.0.7"; sha256="0v0himz0zz6f52vvc5h33qiij0101zgihzwak8cw5193xzsfmr4g"; depends=[CCA PMA]; broken = true; };
   RGCxGC = derive2 { name="RGCxGC"; version="1.1-2"; sha256="03ihqra8q50a98adgxrx8l7js963f41kg2fy3lxzh9zma4gzj62q"; depends=[colorRamps mixOmics ptw Rdpack RNetCDF]; broken = true; };
   RGtk2 = derive2 { name="RGtk2"; version="2.20.36.2"; sha256="1m3a3h3yxmr2qpcdyxrwxrdplvhb4rprvd8cnmfwk3zkazd69f9n"; depends=[]; broken = true; };
   RM2 = derive2 { name="RM2"; version="0.0"; sha256="1v57nhwg8jrpv4zi22fhrphw0p0haynq13pg9k992sb0c72dx70a"; depends=[msm]; broken = true; };
+  RNAstructureModuleMiner = derive2 { name="RNAstructureModuleMiner"; version="0.1.0"; sha256="026r1h4z1jdfww0ay9iixa77ax6b19pgp589bbn77xg1vwjjlbsk"; depends=[RRNA]; broken = true; };
   RNRCS = derive2 { name="RNRCS"; version="0.2.5"; sha256="19q78l8mh4701vqvr36vqc87n39s5ivzhiy5lvnxbd4dgibk1jr2"; depends=[ggplot2 magrittr rvest xml2]; broken = true; };
   ROI_plugin_clp = derive2 { name="ROI.plugin.clp"; version="0.4"; sha256="0fzrb4q2mcf3j4d4j8r354n6fyv2rik0ypp01l54zbm8s2r29bwb"; depends=[Matrix ROI slam]; broken = true; };
   RPCLR = derive2 { name="RPCLR"; version="1.0"; sha256="03kpyszsjb656lfwx2yszv0a9ygxs1x1dla6mpkhcnqw00684fab"; depends=[MASS survival]; broken = true; };
   RSCABS = derive2 { name="RSCABS"; version="0.9.5"; sha256="193wbf1v18xv098i6abpglb239788d9gjzqbn8p3aai0la6y1pk3"; depends=[gWidgets2 gWidgets2RGtk2 R2HTML RGtk2]; broken = true; };
+  RSPS = derive2 { name="RSPS"; version="1.0"; sha256="0ynxhgnxsf27qm8r5d9lyd59zksnc3kvx35hy25vff8j3bg7fqgi"; depends=[gridExtra lattice plyr]; broken = true; };
   RcmdrPlugin_FuzzyClust = derive2 { name="RcmdrPlugin.FuzzyClust"; version="1.1"; sha256="1lg6k3h4n45s6wjkl3ycwfngfr2i6mkhirifhbazsvv297bg0iba"; depends=[clue doParallel foreach ggplot2 iterators MASS Rcmdr reshape2 tcltk2 tkrplot]; broken = true; };
   RcppMLPACK = derive2 { name="RcppMLPACK"; version="1.0.10-7"; sha256="07vh1wyp2rxhfrb4vi5njchrby99bynd88na8qjxcnbypkgsrhbl"; depends=[BH Rcpp RcppArmadillo]; broken = true; };
   RefFreeEWAS = derive2 { name="RefFreeEWAS"; version="2.2"; sha256="1aya34iz5v3xfpj86x9ab998m7fdwl138ly007mgdayacvqi4a6y"; depends=[quadprog]; broken = true; };
   Reliability = derive2 { name="Reliability"; version="0.0-2"; sha256="12zsicgbjqih3grbs62pw37x8wlkmnyc7g0yz6bqnfb4ym2yb7fg"; depends=[]; broken = true; };
+  RevGadgets = derive2 { name="RevGadgets"; version="1.0.0"; sha256="0k17flvax4cq9cvl3fsyv5ya0bndikxbzdmk87v5xz3czf31kk81"; depends=[ape deeptime dplyr ggimage gginnards ggplot2 ggplotify ggpp ggthemes ggtree phytools png reshape tibble tidyr tidytree treeio]; broken = true; };
   Rhpc = derive2 { name="Rhpc"; version="0.21-247"; sha256="0r4zikqzkcyyvywxq1s8jcq6h559mxilkmzpnl79781hh537jvii"; depends=[]; broken = true; };
   RichR = derive2 { name="RichR"; version="1.0.0"; sha256="0z0ri90jqdmw0vwxd1b4wr9if5cgm1gqpf6g9p1fdvncf4sdi9by"; depends=[magrittr metap plyr reshape2]; broken = true; };
   Rwinsteps = derive2 { name="Rwinsteps"; version="1.0-1.1"; sha256="0kaxhaa65k1hkhl4kqfxyyk6v967xncrdr5hy8b808zlbqriankc"; depends=[]; broken = true; };
   SASPECT = derive2 { name="SASPECT"; version="0.1-1"; sha256="1d3yqxg76h9y485pl5mvlx6ls1076f80b320yvx4zxmqq9yxmaba"; depends=[]; broken = true; };
+  SASxport = derive2 { name="SASxport"; version="1.7.0"; sha256="1na94lxrn8kbhxpiflg14nkdx13rjq9bvvqbxyxh1mq0q7vz7a2l"; depends=[Hmisc stringi]; broken = true; };
   SAVE = derive2 { name="SAVE"; version="1.0"; sha256="1m9rrga8x00hlvn0c1jcz6yz14pdm6h3dq14905mq49sw63c7zll"; depends=[coda DiceKriging]; broken = true; };
   SDraw = derive2 { name="SDraw"; version="2.1.13"; sha256="1kx8kfga3zspfdgf9vq2lclszrhf3bfwkfhwqri64kn8fdr34jsq"; depends=[covr deldir rgeos sp spsurvey]; broken = true; };
-  SEA = derive2 { name="SEA"; version="2.0"; sha256="1pw1509qjjqz63a8biwakdxqgln7kjviacqrjvp1323vf55bi4fs"; depends=[data_table doParallel foreach kolmim KScorrect MASS shiny]; broken = true; };
   SEAA = derive2 { name="SEAA"; version="0.9.6"; sha256="0f1j8pq3a0liyjxjlc91v8nm5y0fr8fq7qlhdayvkf1fx96srqs2"; depends=[clusterProfiler ggforce ggplot2 ggpubr ggrepel gridExtra org_Hs_eg_db org_Mm_eg_db reshape2 Rsubread tidyr]; broken = true; };
   SEMModComp = derive2 { name="SEMModComp"; version="1.0"; sha256="1za67470f13z8jsy3z588c7iiiz993d3vjqrb8v9fann2r6sf1md"; depends=[mvtnorm]; broken = true; };
   SII = derive2 { name="SII"; version="1.0.3.1"; sha256="1xvk04b7725ksfd7h4p7px5zanbf6s7xlmjpb7w0nvbi6km2f7ri"; depends=[]; broken = true; };
   SIMMS = derive2 { name="SIMMS"; version="1.3.1"; sha256="0kgaky1hpvvbs2hbzaili9h9pv34c5drfh0d1rc8vf9099xw8575"; depends=[doParallel foreach glmnet MASS randomForestSRC survival]; broken = true; };
+  SLBDD = derive2 { name="SLBDD"; version="0.0.3"; sha256="0dvrrvxm1wfr1wpl0r5mkpm8wavkc9hf1mg6gxgb9sshphcn0pg3"; depends=[cluster corpcor fGarch forecast glmnet gsarima imputeTS MASS Matrix matrixcalc MTS rnn TSclust tsoutliers]; broken = true; };
   SMC = derive2 { name="SMC"; version="1.1"; sha256="1r4ajgi785lmpnlxrba0n6phmk1f0mb6b5yqk6hx8gng2w8ggclz"; depends=[]; broken = true; };
   SPECIES = derive2 { name="SPECIES"; version="1.0"; sha256="0p45llf2wjr467bqr4pbljfank9zz3fm42yl3i0r3jbkxgz0rjf0"; depends=[]; broken = true; };
   SampleSizeProportions = derive2 { name="SampleSizeProportions"; version="1.0"; sha256="0mvkvx3nni0l8ys68sq3h2zlbjvksdcdzxqlf03k0ca5bbcmdf9l"; depends=[]; broken = true; };
@@ -19091,26 +19184,32 @@ in with self; {
   Simpsons = derive2 { name="Simpsons"; version="0.1.0"; sha256="1pm6wga1yxc35zgz72plzq23d3l4bbzfdvhszdxmkn1pkk64h8ms"; depends=[mclust]; broken = true; };
   SoftRandomForest = derive2 { name="SoftRandomForest"; version="0.1.0"; sha256="1k439hcp53yg6f2x4bgafsri4jjgpva97dphzsdk5icfs5d38bh8"; depends=[boot]; broken = true; };
   SpatialEpiApp = derive2 { name="SpatialEpiApp"; version="0.3"; sha256="0svnnzqshk08s58ishy8xhqch44mb5svgfphkvpgysdd68dgaysr"; depends=[dplyr dygraphs ggplot2 htmlwidgets knitr leaflet mapproj maptools RColorBrewer rgdal rgeos rmarkdown shiny shinyjs SpatialEpi spdep xts]; broken = true; };
+  SpatialFloor = derive2 { name="SpatialFloor"; version="1.1.0"; sha256="07mwgcvkkq478l6wxvrdjs9d578x0kgs5xy86lgy5my0xqfcv6y8"; depends=[blocksdesign fields reshape2 taRifx]; broken = true; };
   StatCharrms = derive2 { name="StatCharrms"; version="0.90.96"; sha256="1451aj1476qjpmxhpbgd8g55i7rp2msml64xsiy25h7x9g6d9w05"; depends=[cairoDevice car clinfun coxme gWidgets2 gWidgets2RGtk2 lattice multcomp nlme R2HTML RGtk2 RSCABS survival]; broken = true; };
   SurvGSD = derive2 { name="SurvGSD"; version="1.0.0"; sha256="0aa5zaf9akkqkxs8iqwnm93sfwakhhhs3qfafbk0vrwmb5yvzzm1"; depends=[flexsurv ldbounds mnormt]; broken = true; };
   Survgini = derive2 { name="Survgini"; version="1.0"; sha256="1gxkdv2j1njbgnwb52vyhz7p2lrcg3hp6sry3kyhp4wkvf6gnhxi"; depends=[survival]; broken = true; };
   SyNet = derive2 { name="SyNet"; version="2.0"; sha256="0mb9dscddkvmkf7l3bbcy4dlfmrvvy588vxdqy5dr783bpa5dkiw"; depends=[tkrplot]; broken = true; };
-  TDA = derive2 { name="TDA"; version="1.8.5"; sha256="16dpbgwkp58ibjck3yjziv5p852vn8qxv4v77z17r18909a0j8lp"; depends=[BH FNN igraph Rcpp RcppEigen scales]; broken = true; };
+  TCIU = derive2 { name="TCIU"; version="1.2.0"; sha256="0cyagbvcb8x1bszwq8id75838n53l1kcdah7hhm679j2wm4i487s"; depends=[AnalyzeFMRI cubature doParallel dplyr DT extraDistr fancycut fmri foreach forecast geometry ggplot2 ggpubr gridExtra ICSNP MultiwayRegression plotly pracma RColorBrewer reshape2 rrcov scales spatstat_core spatstat_geom tidyr zoo]; broken = true; };
+  TInPosition = derive2 { name="TInPosition"; version="0.13.6.1"; sha256="1c0h9zg71whmsjn5rnzv5kdrabl9kqrq627caznvrpa74c7pjks9"; depends=[ExPosition InPosition prettyGraphs TExPosition]; broken = true; };
   TKCat = derive2 { name="TKCat"; version="0.7.1"; sha256="19iv6srfmvl30mnwxzxwzm5d6fmpgyan490fkszqhq7jjzjhbgg7"; depends=[base64enc DBI dplyr DT future getPass htmltools jsonlite jsonvalidate magrittr markdown promises RClickhouse readr ReDaMoR rlang shiny shinydashboard tidyselect uuid visNetwork xml2]; broken = true; };
   TLBC = derive2 { name="TLBC"; version="1.0"; sha256="08w187akbhfbz6nrrf7avf02lrhgj7bbrjmim9gkh4wlbjhzvw67"; depends=[caret HMM randomForest signal stringr]; broken = true; };
+  TargomoR = derive2 { name="TargomoR"; version="0.2.0"; sha256="0dzlqv8v36cm5b9hc9am4351nigknq7vr0mki9kzk2979c18if6b"; depends=[geojsonsf httr jsonlite leaflet magrittr sf tibble xml2]; broken = true; };
+  TimeWarp = derive2 { name="TimeWarp"; version="1.0.15"; sha256="1v6f6d1h9dc8npdy0ph5hhc4jjkzh8kac48lz4ahgngi9n0xwql9"; depends=[]; broken = true; };
   TrafficBDE = derive2 { name="TrafficBDE"; version="0.1.0"; sha256="1lnh9lbjxaradivnd1dkd2szggjh2r4v7klpyxb862dxsmdxxrqw"; depends=[caret data_table dplyr lubridate neuralnet RCurl zoo]; broken = true; };
-  Tushare = derive2 { name="Tushare"; version="0.1.3"; sha256="12aabkwlifc82yiym3yijpfpjhmhfwpw8mz4fb11qm6n4igr1yhg"; depends=[data_table forecast httr tidyverse]; broken = true; };
   UNF = derive2 { name="UNF"; version="2.0.7"; sha256="1i7aj9w90c1bn581l820iasxhs4ibs7xwbhid7gdkz9f87cz568r"; depends=[base64enc digest]; broken = true; };
   UncertainInterval = derive2 { name="UncertainInterval"; version="0.7.0"; sha256="1lywwjkbmlbxhp2ahmsw2f47i0p848cky7xx1lxrg5ydfzq9kzl5"; depends=[car MASS nloptr psych reshape2 shiny zoo]; broken = true; };
+  VARDetect = derive2 { name="VARDetect"; version="0.1.5"; sha256="0cj4cc2kys6hblyh88fc64aaz4ln7961y48qkffrmv3367wr1ypj"; depends=[igraph lattice MTS mvtnorm pracma Rcpp RcppArmadillo sparsevar]; broken = true; };
   VNM = derive2 { name="VNM"; version="7.1"; sha256="19qglcibb7r6jjz0n0piklwfv3hi4jphd6vmyfbm0ccjjkmn5nin"; depends=[Rcpp]; broken = true; };
   XPolaris = derive2 { name="XPolaris"; version="1.0.2"; sha256="1l05svscgkv9bzkawi2kp9zhchrhxxma3271b828j34pkrnnmq5m"; depends=[curl dplyr ggplot2 httr magrittr purrr raster sf tidyr]; broken = true; };
+  Zelig = derive2 { name="Zelig"; version="5.1.7"; sha256="1x1zcmlhbbzxbb0y91ynz50nfhpki913lnmhcpmlds7drcbbirnk"; depends=[AER Amelia coda dplyr Formula geepack jsonlite MASS MatchIt maxLik MCMCpack quantreg sandwich survey survival VGAM]; broken = true; };
   aRbs = derive2 { name="aRbs"; version="0.1.3"; sha256="19s4x2w036xllrsarapmp8rvyxcsky82k4h9mfr2rbhdfid6h1f3"; depends=[crayon data_table dlstats dplyr DT ggplot2 lubridate progress purrr rvest shiny shinyBS shinycssloaders shinydashboard stringr xml2]; broken = true; };
+  aba = derive2 { name="aba"; version="0.0.9"; sha256="1qnhnbbd8iir686gc48fld62pd4da39flf2djvvif2bxcvwl8y7a"; depends=[broom dplyr generics ggplot2 glue magrittr purrr rlang stringr tibble tidyr]; broken = true; };
   abcdeFBA = derive2 { name="abcdeFBA"; version="0.4"; sha256="1rxjripy8v6bxi25vdfjnbk24zkmf752qbl73cin6nvnqflwxkx4"; depends=[corrplot lattice rgl Rglpk]; broken = true; };
   abmR = derive2 { name="abmR"; version="1.0.4"; sha256="1sz27ym4lfzsf8413p3zdq51gcn9lp3bbgjgah0wfas4v3yyfsp4"; depends=[geosphere ggplot2 googledrive gstat gtsummary kableExtra purrr raster rgdal rgeos rnaturalearth rnaturalearthdata sf sp swfscMisc table1 tmap]; broken = true; };
+  adaptsmoFMRI = derive2 { name="adaptsmoFMRI"; version="1.1"; sha256="1h79gh1bd6s2xhwf4whh72wf2cz4di2p8dnlf6192mfg108qc6nw"; depends=[coda Matrix MCMCpack mvtnorm spatstat]; broken = true; };
   adoption = derive2 { name="adoption"; version="0.6.4"; sha256="1xjkvj1ys2xmjgswqfsrry27zyqcc9hk9khl0j4s72gcc8az8sz6"; depends=[quadprog RandomFieldsUtils tkrplot]; broken = true; };
   aemo = derive2 { name="aemo"; version="0.3.0"; sha256="108scwyf0dyvn969cks3ikbj2pf2g4dw051asahx26pl0ggw7ijw"; depends=[assertthat dplyr lubridate stringr]; broken = true; };
   agroclim = derive2 { name="agroclim"; version="0.1.0"; sha256="16cyqplzmwziqwkicix0sr06zhc0yx615iv3hda0cxbdyf2rllk3"; depends=[abind cowplot easyNCDF ggforce ggplot2 ggpubr gtable multiApply ncdf4 plyr raster reshape sp zoo]; broken = true; };
-  algaeClassify = derive2 { name="algaeClassify"; version="1.2.0"; sha256="1sna5rij2ngpgqfz5cviqdbyr43xph8cbjc4vnm238n72zgg7cb6"; depends=[httr lubridate plyr RCurl rvest taxize XML xml2]; broken = true; };
   amber = derive2 { name="amber"; version="1.0.3"; sha256="0kc7g5rb0wrs1id1k0qay56063gpffwvcll38983b1l3k215mxiv"; depends=[classInt doParallel foreach Hmisc latex2exp ncdf4 raster rgdal rgeos scico sp viridis xtable]; broken = true; };
   anchors = derive2 { name="anchors"; version="3.0-8"; sha256="12gd2526y7s2a8i6b9xma2c3sc6zxnwzl6sn8b50hbxizwr8d34j"; depends=[MASS rgenoud]; broken = true; };
   anominate = derive2 { name="anominate"; version="0.6"; sha256="01p2qkqf88bzhwywyass5r8dwg2ycflmkbzmsps7fzy0kv3xyb02"; depends=[coda MCMCpack pscl wnominate]; broken = true; };
@@ -19124,26 +19223,34 @@ in with self; {
   automultinomial = derive2 { name="automultinomial"; version="2.0.0"; sha256="04rjg3xjlhnkchzvdxqm762z5abm81s5b9czgzmli30zh07bf3fd"; depends=[igraph Matrix numDeriv]; broken = true; };
   badgecreatr = derive2 { name="badgecreatr"; version="0.2.0"; sha256="0mdixklaxky5gs8zm99ky280vxxlbq1mxnaarq6x0d1cb71bzv4l"; depends=[git2r]; broken = true; };
   bapred = derive2 { name="bapred"; version="1.0"; sha256="08kvc4cc984jv08ikwbja8zxidrcdiwi5w88hlqakbm8yc6hzssa"; depends=[affy affyPLM Biobase FNN fuzzyRankTests glmnet lme4 MASS mnormt sva]; broken = true; };
+  basicTrendline = derive2 { name="basicTrendline"; version="2.0.5"; sha256="0402nvm3i32sx3m3c7r74iaj22h570v819yiwkraicjpmg55dghi"; depends=[investr scales]; broken = true; };
   batchr = derive2 { name="batchr"; version="0.0.2"; sha256="0fkrv6dlyla7bbl00f16lypnz5idyjz9kdqslgbx3pnfwx5hngwx"; depends=[chk cli furrr hms hmstimer yesno]; broken = true; };
   bayesmodels = derive2 { name="bayesmodels"; version="0.1.1"; sha256="1m9428fzirpfzypd2zdcqhjv2cm05s3qmlxj4ymz6i1dg32svqzr"; depends=[BASS bayesforecast brms bsts cli crayon dials dplyr magrittr modeltime parsnip purrr rlang Rlgt rstan rstudioapi tibble timetk workflows]; broken = true; };
   bcc = derive2 { name="bcc"; version="1.3.1"; sha256="0ac0wasdifd0v47r9sxrsix5hv7masiphn6dyxpqdrd11z7iimgz"; depends=[qcc]; broken = true; };
+  betaboost = derive2 { name="betaboost"; version="1.0.1"; sha256="1zdyzxl2kp2i5lkiz280wz4av9wqklbn25zmq6n4yb6a579yjfn8"; depends=[gamboostLSS mboost]; broken = true; };
   betafam = derive2 { name="betafam"; version="1.0"; sha256="1nf5509alqnr5qpva36f1wb7rdnc084p170h91jv89xvzsidqxca"; depends=[]; broken = true; };
   bigmatch = derive2 { name="bigmatch"; version="0.6.2"; sha256="16nmc0n78gzk8x8jhxdilj47gjqqv46sgiivccn5zkv08k1h3jj2"; depends=[liqueueR mvnfast plyr rcbalance]; broken = true; };
   binnednp = derive2 { name="binnednp"; version="0.4.0"; sha256="1qswrr982x5hy2vl2fc603j98cjli9l40zzvvjy2l91p8xxrc5dn"; depends=[doParallel fitdistrplus foreach kedd mclust nor1mix Rcpp Rdpack]; broken = true; };
   binomialMix = derive2 { name="binomialMix"; version="1.0.1"; sha256="1ak3h0lgjmrv9miwn7fl6jvcp8xdld53swjz71q67q999s42np0m"; depends=[dplyr gmp lubridate MASS rlang Rmpfr stringr]; broken = true; };
+  bivquant = derive2 { name="bivquant"; version="0.1"; sha256="05dn4qik2dvmgqc2613vddh312bqhza1vnf94an75888gxri5h03"; depends=[copula cubature lpSolve MASS mvtnorm regpro]; broken = true; };
+  blockRAR = derive2 { name="blockRAR"; version="1.0.2"; sha256="1d9izlcgz85kcz1sh11mcxq96qh0cwv6638jha851h2f4lnc8aa4"; depends=[arm dplyr ldbounds magrittr tibble]; broken = true; };
   blockTools = derive2 { name="blockTools"; version="0.6-3"; sha256="0023p0msfmp8swq4f5aff40m976np7y051x8hjizzw91hrfa4w2n"; depends=[MASS tibble]; broken = true; };
   bmd = derive2 { name="bmd"; version="0.5"; sha256="0d4wxyymycb416sdn272292l70s1h2m5kv568vakx3rbvb8y6agy"; depends=[drc]; broken = true; };
   bmeta = derive2 { name="bmeta"; version="0.1.2"; sha256="19pm60xpmlanngq4nbibp0n5m98xw24b2xghz92ly31i3mkg2n68"; depends=[forestplot R2jags]; broken = true; };
   bnpmr = derive2 { name="bnpmr"; version="1.2"; sha256="0vpqhs1h2mphn9w5yngb7lxvmzrhn7mkj7ca6hykhhg48s2ra98g"; depends=[]; broken = true; };
-  boostmtree = derive2 { name="boostmtree"; version="1.5.0"; sha256="18w5h8m6g4aszffyn0ixhzn2bgbrwrrcq2k54b70vbw00xqxmg1q"; depends=[nlme randomForestSRC]; broken = true; };
   boostr = derive2 { name="boostr"; version="1.0.0"; sha256="123ag8m042i1dhd4i5pqayqxbkfdj4z0kq2fyhxfy92a7550gib2"; depends=[foreach iterators stringr]; broken = true; };
   bootsPLS = derive2 { name="bootsPLS"; version="1.1.2"; sha256="19ikz3l0qds25hgcxvhsvqy6jyshcdvnxw6774ifl9ylngxvlfh0"; depends=[mixOmics]; broken = true; };
+  boxcoxmix = derive2 { name="boxcoxmix"; version="0.28"; sha256="12f1lakfy9i1rq70cq0bffpdachsm58rcmbbhgnq1r31g028zrcc"; depends=[npmlreg qicharts statmod]; broken = true; };
   brunnermunzel = derive2 { name="brunnermunzel"; version="1.4.1"; sha256="1lba5cpiray65zg1pv3xv6yl1xg78rqlwxkcmhgizlh1rhpd430p"; depends=[]; broken = true; };
   cairoDevice = derive2 { name="cairoDevice"; version="2.28.2.1"; sha256="040gd6cyaabdi0lhfdba4isqjihj28hdxm7mc129nl863pxkx6qm"; depends=[]; broken = true; };
   caliver = derive2 { name="caliver"; version="2.0.0"; sha256="04qa3zrk70c8ak70djfh23jyfxs8293s8wzkk6cs0nyrknhaxzzj"; depends=[ggplot2 lubridate ncdf4 raster rworldmap]; broken = true; };
   caschrono = derive2 { name="caschrono"; version="2.2"; sha256="0lbf7j6p5gzm4kk8sgzcmxwwzg59wp6g6l38m04609lpcsvxkd52"; depends=[Hmisc zoo]; broken = true; };
   catchr = derive2 { name="catchr"; version="0.2.31"; sha256="0mj3cgv2d217hcmyr8x0i83wysxhixgly5y1fs6jb1x09gs1cwnd"; depends=[purrr rlang]; broken = true; };
+  causalCmprsk = derive2 { name="causalCmprsk"; version="1.0.3"; sha256="0s1jshh30jmkk2cx29dfhibmfzbpaqk7i0f8wayb204r73a58f8a"; depends=[data_table doParallel foreach inline purrr survival]; broken = true; };
+  cbar = derive2 { name="cbar"; version="0.1.3"; sha256="1jy52qnpjvszdd8xviv3vr00ds6bah73q0mhd4kixf68jafnxd35"; depends=[Boom bsts dplyr ggplot2 magrittr]; broken = true; };
   cecs = derive2 { name="cecs"; version="0.2.4"; sha256="1fm1yrb8kd7f97kgsp5wfp02fspzvndki2aqsfcwb0rlrlckflzf"; depends=[cec2013 stringr]; broken = true; };
+  cheatR = derive2 { name="cheatR"; version="1.2.1"; sha256="0ph7bw2b3frmq6z7qb99pds8j81dbx0bxkbhb55mczqa7n0k50hy"; depends=[ngram purrr R_utils textreadr]; broken = true; };
+  chi2x3way = derive2 { name="chi2x3way"; version="1.1"; sha256="13qc8sigiw4gcxk8y50q7yfgzbssjyl41fizzjqzcp3p14kpsmzw"; depends=[]; broken = true; };
   cin = derive2 { name="cin"; version="0.1"; sha256="1pwvy5nh5nrnysfqrzllb9fcrpddqg02c7iw3w9fij2h8s2v6kq5"; depends=[]; broken = true; };
   circglmbayes = derive2 { name="circglmbayes"; version="1.3.0"; sha256="0i5aacr7vqznm3rhlznc02xjzjkjliadxhhvsmf8wb2cvivz0wir"; depends=[BH coda ggplot2 Rcpp RcppArmadillo reshape2 shiny]; broken = true; };
   clpAPI = derive2 { name="clpAPI"; version="1.3.1"; sha256="0hjpdbmwaww5fznqkkg9jli5y8f8zyd7crn0imdb0xxypmnp7zgf"; depends=[]; broken = true; };
@@ -19151,36 +19258,49 @@ in with self; {
   connections = derive2 { name="connections"; version="0.1.1"; sha256="08fbyzyp26nh1a46p0zi3q0wzgl0cd9bjp4lhw2bwv1bv7yayamp"; depends=[DBI dbplyr dplyr pins rscontract uuid]; broken = true; };
   contextual = derive2 { name="contextual"; version="0.9.8.4"; sha256="0lww36nymg2cla83jdvl7a42cwn0il20apciz0ddplq8rw2i0a91"; depends=[data_table doParallel foreach Formula iterators itertools R_devices R6 rjson]; broken = true; };
   coreheat = derive2 { name="coreheat"; version="0.2.2"; sha256="1mahnd6k7whd7nj9ax1fhpm17j35i6prww06qx691l8dfn954ld9"; depends=[Biobase convertid heatmapFlex WGCNA]; broken = true; };
+  countytimezones = derive2 { name="countytimezones"; version="1.0.0"; sha256="0sk22fmz9d3wvlfvjl1xdavvl04q1ywy8ww2gi5am3yiizkf0v9w"; depends=[dplyr lubridate]; broken = true; };
   cplexAPI = derive2 { name="cplexAPI"; version="1.4.0"; sha256="00h2zir1ffzjiglfyq8bsfmgq9z155jr0k0fxv8fsbfyw2x9dg10"; depends=[]; broken = true; };
   crantastic = derive2 { name="crantastic"; version="0.1"; sha256="0y2w9g100llnyw2qwjrib17k2r2q9yws77mf6999c93r8ygzn4f5"; depends=[]; broken = true; };
   csSAM = derive2 { name="csSAM"; version="1.2.4"; sha256="1ms8w4v5m9cxs9amqyljc2hr1178cz6pbhmv7iiq9yj1ijnl4r1x"; depends=[]; broken = true; };
   cuml = derive2 { name="cuml"; version="0.2.1"; sha256="1dmk1gvvzkwfra63qslax9cgqjbsiqam5wcjl955wpb0wdqpa54k"; depends=[ellipsis hardhat magrittr parsnip Rcpp rlang]; broken = true; };
   darts = derive2 { name="darts"; version="1.0"; sha256="07i5349s335jaags352mdx8chf47ay41q7b0mh2xjwn2h9kzgqib"; depends=[]; broken = true; };
+  data360r = derive2 { name="data360r"; version="1.0.8"; sha256="0g3prfaqy7d5fdla4l31cj87vhzi945g22zr7pi2c2whlk4q4n09"; depends=[curl data_table jsonlite reshape2]; broken = true; };
   datamap = derive2 { name="datamap"; version="0.1-1"; sha256="0qm4zb9ldg4wz1a7paj5ilr1dhyagq81rk9l2v43hmkv52sssgkv"; depends=[DBI]; broken = true; };
   datapackage_r = derive2 { name="datapackage.r"; version="1.3.5"; sha256="01xx8alj3niznkrn3y2w9j1g60zn1fq0a2clf4r5p2pjyr2rqgy3"; depends=[config future httr iterators jsonlite jsonvalidate purrr R_utils R6 readr rlist stringr tableschema_r urltools V8]; broken = true; };
   datazoom_amazonia = derive2 { name="datazoom.amazonia"; version="0.2.0"; sha256="0l24blbscai47rj9s8a0znd5q4mayddp639107r8dib466ykrz3g"; depends=[data_table dplyr geobr googledrive Hmisc janitor labelled lubridate magrittr purrr RCurl readr readxl sf sidrar stringi stringr tibble tidyr XML]; broken = true; };
   dcortools = derive2 { name="dcortools"; version="0.1.2"; sha256="0p4qbah5jnb6jraka8bg6cks3namrz66bya2iz98q2adarqd517h"; depends=[ggplot2 Hmisc pheatmap Rcpp RcppArmadillo RcppEigen Rdpack Rfast]; broken = true; };
   dcv = derive2 { name="dcv"; version="0.1.1"; sha256="12c716x8dnxnqksibpmyysqp2axggvy9dpd55s9bhnsvqvi6dshj"; depends=[lmtest]; broken = true; };
+  deGradInfer = derive2 { name="deGradInfer"; version="1.0.1"; sha256="0yczn63fhpirvz1g1kq9q0m04sisflxxgxy70c87jyvrw12nfwss"; depends=[deSolve gdata gptk]; broken = true; };
+  define = derive2 { name="define"; version="0.2.9"; sha256="0sq7ryiz1py0yw7g2bncd834zsdiy1y7rck8k4grrx2ips5gv2jy"; depends=[encode Hmisc latexpdf SASxport spec]; broken = true; };
+  delt = derive2 { name="delt"; version="0.8.2"; sha256="06g03wy9r2qvly0lnv5fv4k366mhlk56qkvak0xaxy99p1i34kmv"; depends=[denpro]; broken = true; };
   deltar = derive2 { name="deltar"; version="1.0.0"; sha256="1ki89ysz4qlq5z094ybg3aqfcb6g633ccvpj1cg6nri9z5qjwpm1"; depends=[Bchron]; broken = true; };
-  diathor = derive2 { name="diathor"; version="0.0.9"; sha256="1p6y89vi37a8i3fwnj7rb0hdggk6qrxnsrw0sbpajzkwv1jvyal0"; depends=[algaeClassify data_table ggplot2 purrr stringdist stringr tibble tidyr vegan]; broken = true; };
+  denpro = derive2 { name="denpro"; version="0.9.2"; sha256="19hrpfd44jaavq81dbyj3frris4aflfc8lig0471whv0pc6jci2k"; depends=[]; broken = true; };
   diffman = derive2 { name="diffman"; version="0.1.1"; sha256="08b4kqxfg8pmyl2xg8flb581s9wnkdcy5rrmrxp8a89y265qmirx"; depends=[data_table dplyr igraph Matrix progress Rcpp sf tidyverse]; broken = true; };
+  diseasemapping = derive2 { name="diseasemapping"; version="1.5.1"; sha256="0pqilkl56753j1fxy6mh7nx24n6qg2j5faxyxj6abcm6xrnkhmy9"; depends=[rgeos sp]; broken = true; };
+  dmacs = derive2 { name="dmacs"; version="0.1.0"; sha256="1prw6h8sj6fcpajg6xwqhi8v5jfl74mbjdjrdy524miw56fh9h0r"; depends=[lavaan MplusAutomation]; broken = true; };
   dpa = derive2 { name="dpa"; version="1.0-3"; sha256="0dmwi68riddi1q4b10c12wx6n7pqfmv30ix5x72zpdbgm72v343h"; depends=[igraph sem]; broken = true; };
+  drtmle = derive2 { name="drtmle"; version="1.1.0"; sha256="08a6k0nrg6mqdslwjc71583x52vnax87nbfalk98zczwvrrdwvxa"; depends=[future_apply np SuperLearner]; broken = true; };
+  dsims = derive2 { name="dsims"; version="0.2.2"; sha256="1fmffmiz8k9gqybv2wmq33ds5fgl2lc7nrhi02i0nxwhjqw42da5"; depends=[Distance dssd ggplot2 gridExtra mgcv mrds rgeos rlang rstudioapi sf sp]; broken = true; };
   dynamicGraph = derive2 { name="dynamicGraph"; version="0.2.2.6"; sha256="1xnsp8mr3is4yyn0pyrvqhl893gdx2y1zv8d2d55aah2xbfk0fjj"; depends=[ggm]; broken = true; };
   dynatopmodel = derive2 { name="dynatopmodel"; version="1.2.1"; sha256="0lpfhj69bvagqzzg2kjqvn9xx8f93ii34flrrns20z3bxla6gds9"; depends=[deSolve lubridate maptools raster rgdal rgeos sp topmodel xts zoo]; broken = true; };
   eBsc = derive2 { name="eBsc"; version="4.13"; sha256="0n4v07462kxcsyjdy0cjbkn48ryzfnrvj28gxpsxwzn2sddfpl86"; depends=[Brobdingnag MASS Matrix nlme Rcpp RcppArmadillo]; broken = true; };
-  ech = derive2 { name="ech"; version="0.1.1.2"; sha256="1mw68dkm6n6zj27rmyw33gaha1nly1srr6v1d5iib72b1gwnik8l"; depends=[assertthat curl dplyr fs geouy glue haven janitor labelled laeken purrr readxl rlang srvyr statar stringr survey tidyr]; broken = true; };
+  ecap = derive2 { name="ecap"; version="0.1.2"; sha256="0d260y4phh1a7zlj2lgvdf7xd2z14l9djv7nrwa84pwqqyijc7rl"; depends=[ggplot2 quadprog]; broken = true; };
   edbuildr = derive2 { name="edbuildr"; version="0.3.0"; sha256="19fsk8qkxyzncn614fy6hmmxpv1dikqghs101hbzd0g0a511xk8f"; depends=[dplyr magrittr openxlsx scales stringr tidyselect]; broken = true; };
+  edeR = derive2 { name="edeR"; version="1.0.0"; sha256="1dg0aqm5c4zyf015hz1hhn3m4lfvybc4gc1s7sp8jcsk46rxz0cc"; depends=[rJava rjson rJython]; broken = true; };
   efts = derive2 { name="efts"; version="0.9-0"; sha256="1cdn37sij3q73z9gal6x3nnnds55whfj5ywyww119hx092xcb2h4"; depends=[lubridate magrittr ncdf4 plyr stringr udunits2 xts]; broken = true; };
   egcm = derive2 { name="egcm"; version="1.0.12"; sha256="0nssf5six1j7z6fss7478zdbsfx60myzw833m7nsnaf1r8n4ixaf"; depends=[ggplot2 MASS pracma quantmod tseries urca xts zoo]; broken = true; };
+  eixport = derive2 { name="eixport"; version="0.5.0"; sha256="1k5p9v5jmw5cs31sn69fjdfhh5yyzk85828aljsmsyx1ycibnwmg"; depends=[cptcity data_table ncdf4 raster sf sp]; broken = true; };
   emma = derive2 { name="emma"; version="0.1-0"; sha256="0psd8lrbcqla8mkhp0wlassaaimgwlmqy5yv2wwcq59mc5k1v27f"; depends=[clusterSim earth]; broken = true; };
-  emstreeR = derive2 { name="emstreeR"; version="2.2.2"; sha256="0lchkkn6s265xnk25bprijlc6nl62nwcp0l9nwplyw7q492ysg0q"; depends=[BBmisc BH ggplot2 Rcpp RcppArmadillo RcppMLPACK scatterplot3d]; broken = true; };
   endogMNP = derive2 { name="endogMNP"; version="0.2-1"; sha256="0maxcp321ngbxrg0i23nlwhj849v771xahh53367x928ss4f8v7i"; depends=[]; broken = true; };
+  enveomics_R = derive2 { name="enveomics.R"; version="1.8.0"; sha256="00akdhqs7jabk7g33rwmxs92jcr39shy9s456nqxk6x4244d2vb3"; depends=[fitdistrplus investr sn]; broken = true; };
   epiGWAS = derive2 { name="epiGWAS"; version="1.0.2"; sha256="0jqblfmz02za3b2pgi15379bzgh98yv5kyv8kh0lkzhrmpgph2zj"; depends=[DescTools glmnet matrixStats SNPknock]; broken = true; };
+  epiphy = derive2 { name="epiphy"; version="0.3.4"; sha256="04wsppjycnrzrml3zxrpr0xdxxas3hj8rskiivx5vfmfjpwipq4r"; depends=[ggplot2 msm pbapply Rcpp transport]; broken = true; };
   eqtl = derive2 { name="eqtl"; version="1.1-7"; sha256="0xfr8344irhzyxs9flnqn4avk3iv1scqhzac5c2ppmzqhb398azr"; depends=[qtl]; broken = true; };
   evaluator = derive2 { name="evaluator"; version="0.4.3"; sha256="1gccymjb1ad3xw3kmqafchazv9rid6v6c3h8w96ai5b2jh8zlgwk"; depends=[cli crayon dplyr extrafont ggplot2 magrittr mc2d purrr readr readxl rlang rstudioapi scales stringi tibble tidyr vctrs viridis]; broken = true; };
   eventstudies = derive2 { name="eventstudies"; version="1.2.2"; sha256="01vpd0gnxaibxn3nq6618rxlwapm86idz86n0wj5kfz4a9kj7lsx"; depends=[boot sandwich testthat xts zoo]; broken = true; };
   expands = derive2 { name="expands"; version="2.1.3"; sha256="00zb57gmpj86c7rvpqywpn4c5wl51immps935n3hd2fyk73vqljh"; depends=[ape commonsMath flexclust flexmix gplots matlab moments NbClust plyr RColorBrewer rJava]; broken = true; };
   expert = derive2 { name="expert"; version="1.0-0"; sha256="0y9vcigvzhymalpv31b9nvmr86z1dz7x29yj838vks0dsv23rgrf"; depends=[]; broken = true; };
+  expstudy = derive2 { name="expstudy"; version="1.0.0"; sha256="1b66pfx8smrwwrryxa8rmn4gv692hmllqzy968fp7n58qzciv550"; depends=[assertthat checkmate cli data_table dplyr dtplyr glue lifecycle magrittr pillar purrr rlang stringr tibble tidyr tidyselect withr]; broken = true; };
   facilitation = derive2 { name="facilitation"; version="0.5.2"; sha256="0gyqa3njyynvdhfziq33xqc7cjhszii67mk8809ncvh6abkdx1hw"; depends=[animation Matrix Rcpp]; broken = true; };
   factorQR = derive2 { name="factorQR"; version="0.1-4"; sha256="1vl01fm5qfyhnqbl5y86vkr50b8cv07vzlqs3v6smqaqq6yp4lv4"; depends=[lattice]; broken = true; };
   factualR = derive2 { name="factualR"; version="0.5"; sha256="1wz8ibcmilcx62yy29nd2i1pdmjf7fm0g9i5s58gdn8cjlhnw1jl"; depends=[RCurl RJSONIO]; broken = true; };
@@ -19188,6 +19308,7 @@ in with self; {
   fctbases = derive2 { name="fctbases"; version="1.1.0"; sha256="1jf6ngdph45l105cib13lghan7d68hsjqdr8wsjz2kls8il6kz9s"; depends=[Rcpp RcppArmadillo]; broken = true; };
   fdacluster = derive2 { name="fdacluster"; version="0.1.0"; sha256="17vk3v8saf3xqab8h92k88l2xfwa3mb0x40p1mdgywgg23nvk3mm"; depends=[dplyr ggplot2 magrittr nloptr purrr Rcpp RcppArmadillo tibble tidyr]; broken = true; };
   feedeR = derive2 { name="feedeR"; version="0.0.10"; sha256="1p64c7ibwn6k5k3vsjxrcjr84czild7g8bqw0yv4axk52vk5jfkx"; depends=[digest dplyr lubridate readr stringr tibble xml2]; broken = true; };
+  ffbase = derive2 { name="ffbase"; version="0.13.3"; sha256="1dp6lblfq2j7r1b4b8ls47jlx8j27n88d5vp8w116lb8pa01zxmk"; depends=[bit fastmatch ff]; broken = true; };
   fidap = derive2 { name="fidap"; version="0.0.3"; sha256="0zq07395qx59xxb3cj5axhpkwnad2h88qbm3aan43q5cip9wi2bx"; depends=[httr jsonlite]; broken = true; };
   fisheyeR = derive2 { name="fisheyeR"; version="0.9"; sha256="1w6va7gakqq2q8hsvdszpn8s2ysdfc648bk5p5v3wbl5s403bci8"; depends=[tkrplot]; broken = true; };
   fishflux = derive2 { name="fishflux"; version="0.0.1.5"; sha256="0ni3r37s6dvj3mmr04fnr7fird4x2wxdxq9vxzabcgmx9f4ydfiz"; depends=[BH curl dplyr fishualize ggplot2 httr plyr Rcpp RcppEigen RcppParallel rfishbase rstan rstantools StanHeaders tidybayes tidyr]; broken = true; };
@@ -19200,7 +19321,10 @@ in with self; {
   ftnonpar = derive2 { name="ftnonpar"; version="0.1-88"; sha256="0df9zxwjpfc939ccnm1iipwhpf76b34v0x74nsi1mm1g927dfl0i"; depends=[]; broken = true; };
   fulltext = derive2 { name="fulltext"; version="2.0"; sha256="104wkas9azyb2drfaz1hrgbx2ilbb0k2mb8411l10rsbkqva099f"; depends=[aRxiv crul data_table digest fauxpas hoardr jsonlite magrittr microdemic pdftools rcrossref rentrez rplos storr tibble xml2]; broken = true; };
   fuzzyFDR = derive2 { name="fuzzyFDR"; version="1.0"; sha256="0zd8i9did0d9gp42xjmwrccm32glabvvy08kl8phhwb1yaq53h7w"; depends=[]; broken = true; };
+  gRim = derive2 { name="gRim"; version="0.2.7"; sha256="05w8dj69yc3lxdlfcmpr9yjdh33xv2vmjzlplf4kgdwmdjr2b9gf"; depends=[gRain graph gRbase igraph magrittr Rcpp RcppArmadillo RcppEigen Rgraphviz]; broken = true; };
   gWidgets2RGtk2 = derive2 { name="gWidgets2RGtk2"; version="1.0-7"; sha256="14c933j0wj3lb5da75zxg3w3mfqh0nqk8rczbi4dnqd8sna6jks9"; depends=[gWidgets2 memoise RGtk2]; broken = true; };
+  gamboostLSS = derive2 { name="gamboostLSS"; version="2.0-5"; sha256="1qlcsfv9k9aydv2bdfmbrilxfcmp3nzixnlr59k8idg1f7ph04cl"; depends=[mboost stabs]; broken = true; };
+  garchmodels = derive2 { name="garchmodels"; version="0.1.1"; sha256="1nmhsxhfbp7jn85jwnhm4p5kl0jc5n1bjwwwpia774ycr6krazwn"; depends=[dials dplyr magrittr parsnip purrr rlang rmgarch rugarch stringr tibble tidyr]; broken = true; };
   gdmp = derive2 { name="gdmp"; version="0.2.0"; sha256="0fy8x9l6swrb78apwq9d9msz2y8dkfd2fkyp1pkmzxwdb85lmcdm"; depends=[]; broken = true; };
   geneNetBP = derive2 { name="geneNetBP"; version="2.0.1"; sha256="0sp1chyln5k2zsq7cdhvrqxwr2nhrll1pdl1l5g6fd4gjl2m1nwk"; depends=[bnlearn ggm gRain graph igraph Rgraphviz scales]; broken = true; };
   geobr = derive2 { name="geobr"; version="1.6.5"; sha256="08kl0215q524dq5scx2cm11a7m65xh0wzryl71grrlbqm5000pjj"; depends=[curl data_table httr sf]; broken = true; };
@@ -19208,9 +19332,11 @@ in with self; {
   gfmR = derive2 { name="gfmR"; version="1.1-0"; sha256="0qzzbcra1fnbp0h31b1as20yhmqmi7p62xrhikj64an9avg9b277"; depends=[faraway nnet]; broken = true; };
   ggRandomForests = derive2 { name="ggRandomForests"; version="2.0.1"; sha256="0f8m0j79d8wbac14zk1s8812rz6vgf04bz1iqq8p4d3sxwnvaj7q"; depends=[ggplot2 randomForest randomForestSRC survival tidyr]; broken = true; };
   ggguitar = derive2 { name="ggguitar"; version="0.1.1"; sha256="1lmfs54h91gzcxin37v4flkywbq3fs648mm1h9ak03xlj5nagzsi"; depends=[dplyr ggplot2 gridExtra lazyeval readr tibble]; broken = true; };
+  gglogo = derive2 { name="gglogo"; version="0.1.5"; sha256="08wg0svcksdzchp6bdllmsnklxia3d0ygqwzgmqb2sga8nbkf5hl"; depends=[dplyr ggplot2 jpeg knitr magrittr plyr purrr reshape2 rlang tidyr]; broken = true; };
   glacierSMBM = derive2 { name="glacierSMBM"; version="0.1"; sha256="0117fzz2b1lccs0kkwz59w2yysi72j54yvz7373pz11w7rjds84f"; depends=[raster sp udunits2]; broken = true; };
   googlesheets = derive2 { name="googlesheets"; version="0.3.0"; sha256="11q07nxys72wkxx9mawmjyf20gvwvrb7h3gpa73h6lgh2vgrwnv8"; depends=[cellranger dplyr httr jsonlite purrr readr stringr tibble tidyr xml2]; broken = true; };
   graphscan = derive2 { name="graphscan"; version="1.1.1"; sha256="1dgjb0grdymhimdgwnddjcivgy2i9r1i1nni4v9mx0447skcahk9"; depends=[ape rgl snowfall sp]; broken = true; };
+  gremes = derive2 { name="gremes"; version="0.1.0"; sha256="1ih5303sis2icic1q13gh6h3qbb1fzw0j7pdla75csiffjc77hw7"; depends=[abind copula gRbase gRim igraph mev mvtnorm quadprog]; broken = true; };
   grouped = derive2 { name="grouped"; version="0.6-0"; sha256="1glxgacpwk7yjbkwg5ci6bmb2il6hf5zhydwi5bbq6hc032m9976"; depends=[MASS]; broken = true; };
   gsbm = derive2 { name="gsbm"; version="0.2.1"; sha256="16j4g0wl9phmx85dbrzxsdjcv0nnipgj214fvbz9m6n66khr5pkp"; depends=[doParallel foreach Matrix RSpectra softImpute]; broken = true; };
   guf = derive2 { name="guf"; version="1.0.2"; sha256="1dfmja2da211pcid4hr7x9q0sgz37756rpykm1ax862avdl8hsmc"; depends=[]; broken = true; };
@@ -19228,7 +19354,10 @@ in with self; {
   ic50 = derive2 { name="ic50"; version="1.4.2"; sha256="1a5ddmbdfr3ls132fvalbkh4yaawv9k58rgpy54s5qddrm6aas2s"; depends=[]; broken = true; };
   identity = derive2 { name="identity"; version="0.2-1"; sha256="1j5wb5cj5j49in2g6r1shdm4ri4cfzj22hpqazvcmq4dm291sdi9"; depends=[]; broken = true; };
   ideq = derive2 { name="ideq"; version="0.1.4"; sha256="06xk9ghvh3fb79lbkmbqsk07xj06qaigiw41rzbi3bji3fjq1prw"; depends=[matrixcalc mvtnorm pdist Rcpp RcppArmadillo rgen]; broken = true; };
+  idm = derive2 { name="idm"; version="1.8.2"; sha256="04f0i0kwdxywmj2i184knx5a5v9svx0lbam6wpz49hghg7qpy0w5"; depends=[animation ca corpcor dummies ggplot2 ggrepel]; broken = true; };
   ifultools = derive2 { name="ifultools"; version="2.0-23"; sha256="16a7rbvlym3bnfm93ikr5kl0l86ppk0s41fva6idvcx765g3fqkk"; depends=[MASS splus2R]; broken = true; };
+  iheiddown = derive2 { name="iheiddown"; version="0.8.6"; sha256="0w36w875fzxx8parjc6lb9nwvfjs0p2vv1pzd12cb160pgn9y7mc"; depends=[bib2df bookdown crayon dplyr fs gender ggplot2 pdftools purrr readr remotes rlang rmarkdown rstudioapi servr stringr tibble tidytext usethis xaringan]; broken = true; };
+  ilc = derive2 { name="ilc"; version="1.0"; sha256="0hs0nxv7cd300mfxscgvcjag9f2igispcskfknb7sn7p8qvwr5ki"; depends=[date demography forecast rainbow survival]; broken = true; };
   imputePSF = derive2 { name="imputePSF"; version="0.1.0"; sha256="0xfd2mybg0cbi3n35j28s4xq4iwr5rq4mqwgdqml7l2rlzidcwc8"; depends=[PSF]; broken = true; };
   inTrees = derive2 { name="inTrees"; version="1.2"; sha256="1mwn2ijkyw0y9xcgrr56wxd2326ikarlsi79l59dplvlx2iwbi6c"; depends=[arules data_table gbm RRF xgboost xtable]; broken = true; };
   incadata = derive2 { name="incadata"; version="0.9.1"; sha256="0987zazkp3cxvk88i3yqb70s2i1cg108vc8wyhh2867s3rqdrpgh"; depends=[decoder rvest sweidnumbr xml2]; broken = true; };
@@ -19236,33 +19365,34 @@ in with self; {
   interacCircos = derive2 { name="interacCircos"; version="1.0.0"; sha256="1waj0saavvaw2qzhbwcj1k0a2dnmq7zbkdnmb93xj6j1lhfjhbdy"; depends=[htmlwidgets jsonlite plyr RColorBrewer]; broken = true; };
   ipmisc = derive2 { name="ipmisc"; version="6.0.2"; sha256="1dn815p2k1v371pv5fra6541zwc1hyjzxlx11m8pgfcyrfgmicyk"; depends=[dplyr magrittr rlang tibble tidyr zeallot]; broken = true; };
   ipptoolbox = derive2 { name="ipptoolbox"; version="1.2"; sha256="0scbny4crgr23qcp0vgsxhwmj5g5q5c1c4mb5mmb5njyvc34s01l"; depends=[AlgDesign copula evd kolmim triangle]; broken = true; };
-  iq = derive2 { name="iq"; version="1.9.1"; sha256="1n4hdkw37364ilc8v3bffmnwd7r8cpysn7jssf9h9jxh9pyd612y"; depends=[]; broken = true; };
   isoreader = derive2 { name="isoreader"; version="1.3.2"; sha256="0d0h57imbis7g58gdn7j0pwmc1s71b8ymqwqkg3byagd0yhrxf0w"; depends=[dplyr future glue lubridate magrittr progress purrr R_utils readr rlang stringr tibble tidyr tidyselect UNF vctrs]; broken = true; };
   itemanalysis = derive2 { name="itemanalysis"; version="1.0"; sha256="1ksbd69mca45jlr2gpars87cf4jfm5rx6sz009sv6a83x831x5rq"; depends=[car ggplot2 polycor]; broken = true; };
+  james_analysis = derive2 { name="james.analysis"; version="1.0.1"; sha256="1b2n4ds4ivfk564z87s2rxjl9j0y4drd3cmyv8jqpccmdvx1137d"; depends=[naturalsort rjson]; broken = true; };
   jdx = derive2 { name="jdx"; version="0.1.4"; sha256="0jqf0nkdyv9g4rifzlkls0n64fdcma2yphwl478772jlgfmxm2jb"; depends=[rJava]; broken = true; };
   joineRmeta = derive2 { name="joineRmeta"; version="0.1.2"; sha256="0lkj3rry8kvdcl3dxrkvnql8rl3fsgc4lk5qdifhl41aws2q7ccs"; depends=[ggplot2 gridExtra gtools JM joineR lme4 MASS Matrix meta msm statmod survival]; broken = true; };
   jsr223 = derive2 { name="jsr223"; version="0.3.4"; sha256="0rir9v0qhnbl2rgkx1qz2ydj68ba9ccbdzsg6y1acczdhpl03j51"; depends=[curl jdx R6 rJava]; broken = true; };
   kmcudaR = derive2 { name="kmcudaR"; version="1.1.0"; sha256="16dkv9ag5375zc23nqakbg7v6knxvh1pips9rjsls0d7rw2bg1bs"; depends=[Rcpp RcppEigen]; broken = true; };
   kolmim = derive2 { name="kolmim"; version="1.0"; sha256="0g1i0cazi4nhfwdd3ywqrar1sn7bw77w38qjii045w5vqg05srkp"; depends=[]; broken = true; };
+  kzfs = derive2 { name="kzfs"; version="1.5.0.2"; sha256="0x0fc807p0pwsjkhjq51ymwr9nhs6cb0m82029cz8bbn3yf6cymq"; depends=[digest kzft]; broken = true; };
+  kzft = derive2 { name="kzft"; version="0.17"; sha256="1y6almhs1x21cr4bbf5fj3mnhp65ivzs869660cyg70sva853sv7"; depends=[polynom]; broken = true; };
   laercio = derive2 { name="laercio"; version="1.0-1"; sha256="0la6fxv5k9zq4pyn8dxjiayx3vs9ksm9c6qg4mnyr9vs12z53imm"; depends=[]; broken = true; };
   lass0 = derive2 { name="lass0"; version="1.1.0"; sha256="01fafgyhi3fw8ldjw2gf0z9w1si7il3ailwm197fxmw4wqgys9fl"; depends=[doRNG foreach ismev lpSolve]; broken = true; };
   lba = derive2 { name="lba"; version="2.4.4"; sha256="0izqndm992zv3sg8v5lpnxbdbxhpxl6hq3bf6xgq3pnw8vl3f6nb"; depends=[alabama MASS plotrix rgl scatterplot3d]; broken = true; };
-  lcda = derive2 { name="lcda"; version="0.3"; sha256="1ximsyn6qw2gfn7b1hdpbjs6h6nk7hrignlii0np1lbf0k8l4xxl"; depends=[poLCA]; broken = true; };
   libproj = derive2 { name="libproj"; version="8.1.0-1"; sha256="16mavs0kpbn1lskfgyzgw5ns270kdvvh2991c8w26cyl23zrcys6"; depends=[cpp11 rappdirs]; broken = true; };
   likeLTD = derive2 { name="likeLTD"; version="6.3.0"; sha256="1mjf4667xd9pf2684d7vqaj54l5s9pgljn4vkfp32wzbfknq6y8r"; depends=[DEoptim gdata ggplot2 gtools rtf]; broken = true; };
   limitplot = derive2 { name="limitplot"; version="1.2"; sha256="0wj1xalm80fa5pvjwh2zf5hpvxa3r1hnkh2z9z285wkbrcl0qfl2"; depends=[]; broken = true; };
   lisp = derive2 { name="lisp"; version="0.1"; sha256="025sq46277q9i21189cbmx5dnrh5wfshc5k6la1wjilhr1iqf6nj"; depends=[]; broken = true; };
   lmSupport = derive2 { name="lmSupport"; version="2.9.13"; sha256="0ln5c91mbxkymgnv2nw5m3nrm5bwckpikgb9x1qhmjc55m98wkb8"; depends=[AICcmodavg car gplots gvlma lme4 pbkrtest psych pwr]; broken = true; };
   lmem_qtler = derive2 { name="lmem.qtler"; version="0.1.1"; sha256="0qbllj66y294n1m8dsyrnwyvzscbzg8mb2dmjyghcrfaz925vkin"; depends=[lattice lme4 pastecs qtl stringr]; broken = true; };
-  lmeresampler = derive2 { name="lmeresampler"; version="0.2.0"; sha256="1qjxv3vrgw183hvya2k4qidnnx9w64lcksjm6v727kcigl3x9h1f"; depends=[catchr dplyr forcats ggdist ggplot2 HLMdiag magrittr Matrix nlmeU purrr statmod]; broken = true; };
   lmfor = derive2 { name="lmfor"; version="1.5"; sha256="1r301ajcp9ag23n0nw1rgwg8ss5cvinwqargbdg0jpqbhdrgaq7y"; depends=[magic nlme spatstat]; broken = true; };
+  loose_rock = derive2 { name="loose.rock"; version="1.2.0"; sha256="13p3mp8m2in3cbcwgj42hgzrwxmgalc2v0z3r1zn1n77iqjvcd7r"; depends=[digest dplyr futile_options ggplot2 httr MASS reshape2]; broken = true; };
   maGUI = derive2 { name="maGUI"; version="3.0"; sha256="1ak2sa6y766v5zh54bf7j9hklmkia40nsdchyw834ybb9ijjyjsm"; depends=[Biobase gWidgets2 gWidgets2RGtk2 impute limma Rgraphviz RGtk2 ssize]; broken = true; };
   machQA = derive2 { name="machQA"; version="0.1.4"; sha256="1rdrjy9sxql2c9y691a1jrmgsv7m1ihsschixxb6wc7aahf7mav6"; depends=[machina plyr]; broken = true; };
   machina = derive2 { name="machina"; version="0.1.6"; sha256="009mzqb5jgnilj9b5ldmm5600008bljlqacm8jjxvqsfnfdfg8zv"; depends=[DT httr jsonlite lubridate rhandsontable xts]; broken = true; };
-  matchMulti = derive2 { name="matchMulti"; version="1.1.9"; sha256="0357bgwf6xcq19f1xfxv26gk6drq806jknjq4h32rldqn0sfab0p"; depends=[coin dplyr Hmisc MASS mvtnorm plyr rcbsubset rlang sandwich tidyr weights]; broken = true; };
   mcmcabn = derive2 { name="mcmcabn"; version="0.4"; sha256="0ym7ngai8pv9xalh1s53p8f96s8xpc05zi6ryih2rjv449ib06kq"; depends=[abn coda cowplot ggplot2 ggpubr gRbase]; broken = true; };
   mcsm = derive2 { name="mcsm"; version="1.0"; sha256="13sx7s3ywis5n4a70ld2szld9fb8jkfsc82dy6iskhy17vy8pml0"; depends=[coda MASS]; broken = true; };
   meaRtools = derive2 { name="meaRtools"; version="1.0.4"; sha256="1nxyvdq4670696mhg0svxxlvk9hnr8szai8b18pw6754kmw1bjvn"; depends=[emdist ggplot2 gridExtra gtools lattice plyr Rcpp reshape2]; broken = true; };
+  medmod = derive2 { name="medmod"; version="1.0.0"; sha256="1f7bzdcjnbz9izlfblxcaa85qxx8kzn62qgjd3qlb7jl7mdy5q54"; depends=[ggplot2 jmvcore lavaan R6]; broken = true; };
   met = derive2 { name="met"; version="0.1.0"; sha256="0714103xzc4n178307czxmcv7ygjiigjr9b6xnj240ljp7qmln19"; depends=[DiPs]; broken = true; };
   miceMNAR = derive2 { name="miceMNAR"; version="1.0.2"; sha256="1s607icaf3c25mn8xdi3zkzmm8m7qd9a6vjdlz5j7ig2gc9f2y2d"; depends=[GJRM mice mvtnorm pbivnorm sampleSelection]; broken = true; };
   microclustr = derive2 { name="microclustr"; version="0.1.0"; sha256="04xn8p4wgmxq1jbxawq0rhx6l7y1kddlbdfid8zsi4x4arkz7hvp"; depends=[Rcpp]; broken = true; };
@@ -19273,6 +19403,7 @@ in with self; {
   mlbstatsR = derive2 { name="mlbstatsR"; version="0.1.0.3"; sha256="0rcjfbi383rdk2fyrw47ni0jrzp7yj2sr8xzxvk3gmh321i3pn5d"; depends=[dplyr ggplot2 ggtext glue httr janitor jsonlite purrr rvest stringr tibble tidyr xml2]; broken = true; };
   mleap = derive2 { name="mleap"; version="1.1.0"; sha256="0s15srbnk8fs5vj12gdszpg6g563q17v42fng2rydkgi4q7m2vj6"; depends=[digest fs jsonlite purrr rJava sparklyr tibble]; broken = true; };
   mlgt = derive2 { name="mlgt"; version="0.16"; sha256="1nvdq6mvgr39ikkf73aggsb6pmbw132injj8fdkr8hgcmwm6lgd9"; depends=[seqinr]; broken = true; };
+  mlmts = derive2 { name="mlmts"; version="1.0.0"; sha256="0vgrwcbhj4a3vlf9bddzfnicc6bsq0q2ryilq7kdv4yn58d5ggxx"; depends=[AID caret ClusterR complexplus DescTools dtw e1071 evolqg fda_usc forecast freqdom geigen ggplot2 MASS Matrix MTS multiwave pracma pspline psych quantspec ranger Rdpack Rfast TSA TSclust TSdist tseries tseriesChaos tsfeatures waveslim]; broken = true; };
   mmpca = derive2 { name="mmpca"; version="2.0.1"; sha256="05vir7hjv5dccfcizyn5n6qxx2p53111if16l44a7ifg5k599xj9"; depends=[digest gsl Rcpp RcppEigen]; broken = true; };
   mnlogit = derive2 { name="mnlogit"; version="1.2.6"; sha256="0dfwpkl8g7ap5xr48smiv8vdbamd2r1liy9nwpsn0kcsr9cj65n9"; depends=[Formula lmtest mlogit]; broken = true; };
   mobsim = derive2 { name="mobsim"; version="0.2.0"; sha256="0an8j5kj0cs1bjz9kwzwc54hm0zaiz5rsaw78ihldw0mx5n175gn"; depends=[Rcpp sads vegan]; broken = true; };
@@ -19280,8 +19411,13 @@ in with self; {
   mosaic_find = derive2 { name="mosaic.find"; version="0.1.2"; sha256="1fzgksh8sp701qjfrvjl2bg967qjkjpilxsfkrazhw71cgmzjgjl"; depends=[minpack_lm]; broken = true; };
   mpa = derive2 { name="mpa"; version="0.7.3"; sha256="0mhnsbgr77fkn957zfiw8skyvgd084rja1y4wk5zf08q5xjs2zvn"; depends=[network]; broken = true; };
   mssqlR = derive2 { name="mssqlR"; version="1.0.0"; sha256="0qdnm7cx9cg14vfcnkmcjqr1jpxsw8xlrbnxldvzz44mzv2n878l"; depends=[magrittr RODBC]; broken = true; };
+  multDM = derive2 { name="multDM"; version="1.1.3"; sha256="16bvr62lxmrq79z856iigwz5cjhk327x4hhd0cg3adgabqcz04yp"; depends=[MTS]; broken = true; };
   multdyn = derive2 { name="multdyn"; version="1.6"; sha256="06yab2lmxp7lc7zjk8n194mn5vza0yjbp276iair3ry35my4h3v8"; depends=[data_table ggplot2 Rcpp RcppArmadillo reshape2]; broken = true; };
+  multifluo = derive2 { name="multifluo"; version="1.1"; sha256="1hnh1gj6lfnh2fn0v064bszydgsr6p9f7p8yxyw5rdxfrxymiw09"; depends=[agricolae ellipse imager]; broken = true; };
+  multinbmod = derive2 { name="multinbmod"; version="1.0"; sha256="1c4jyzlcjkqdafj9b6hrqp6zs33q6qnp3wb3d7ldlij7ns9fhg71"; depends=[]; broken = true; };
+  mvcluster = derive2 { name="mvcluster"; version="1.0"; sha256="0yfl31scdgsiljvpv1yxc5bwwzr6kbhpjwqh2kql7xf0m0hc1pr4"; depends=[Rcpp RcppArmadillo]; broken = true; };
   mvst = derive2 { name="mvst"; version="1.1.0"; sha256="03q0kdychsmn4wcn50b6dqhxn4f2mjvrr5rac942xdv75w8qklc9"; depends=[MCMCpack mnormt mvtnorm]; broken = true; };
+  mwa = derive2 { name="mwa"; version="0.4.3"; sha256="100d3c1070ir64iv848kws5fna141gcq5p66ip873cr632a042qs"; depends=[cem MASS rJava]; broken = true; };
   mwaved = derive2 { name="mwaved"; version="1.1.8"; sha256="092sqd9harx289bgghw9x495llzhab0vkgkjka5jhi4ad1rfk3vh"; depends=[Rcpp shiny]; broken = true; };
   nCal = derive2 { name="nCal"; version="2021.9-12"; sha256="133dpy2rp8sabwdlk0wjxs9rzixzcja73im94qaw26z5xsnaydhf"; depends=[drc gdata gWidgets2 kyotil]; broken = true; };
   namer = derive2 { name="namer"; version="0.1.5"; sha256="1687x6rc46bp2bmqkixzry5cc7lxjqwjk8ngrbg2fk7mzb4pwvnq"; depends=[dplyr fs glue magrittr purrr rstudioapi tibble]; broken = true; };
@@ -19290,8 +19426,11 @@ in with self; {
   nontargetData = derive2 { name="nontargetData"; version="1.1"; sha256="07cdbpmn64sg4jfhljdcx503d55azyz58x7nkji044z3jmdryzqw"; depends=[]; broken = true; };
   ntwk = derive2 { name="ntwk"; version="1.0.0"; sha256="1c12c3pq992f02z3ikx17zv2djq9d9ly232ha0j5jswsksqzx024"; depends=[assertthat copCAR ghyp Matrix mvtnorm pracma zoo]; broken = true; };
   oc = derive2 { name="oc"; version="1.2"; sha256="0cw1gvz6gk8j718zmywqp03h9cnzn132nwbv45gr00xg2s9h7dk7"; depends=[pscl]; broken = true; };
+  onlineforecast = derive2 { name="onlineforecast"; version="1.0.0"; sha256="191rqfz9y6hpgb21k38v3051pv9w4hm35kyg2znv864c5s7bk5ma"; depends=[digest pbs R6 Rcpp RcppArmadillo]; broken = true; };
   optband = derive2 { name="optband"; version="0.2.1"; sha256="1rv4r7h7x3xipav917cz9bcr6nqjzbinfrqxv8mcls9gdl9ha3y9"; depends=[LambertW]; broken = true; };
-  optmatch = derive2 { name="optmatch"; version="0.9-17"; sha256="1q55dchgdv05s3q6x0k8ybzmfcvzxsf893gvhs2cgijxrfgvgyv0"; depends=[digest Rcpp survey survival]; broken = true; };
+  orQA = derive2 { name="orQA"; version="0.2.1"; sha256="0vivjrpcbql42y078gi91kfpfdpv73j23jkiv8fpazzwzdi8ydqq"; depends=[genefilter gtools nlme Rcpp]; broken = true; };
+  ouxy = derive2 { name="ouxy"; version="2.1"; sha256="0mdjxg7wm68882hbwl0gg15dld6f90xyf0s6hk2z90r34bvyky0i"; depends=[abc adephylo ape coda EasyABC geiger maps MCMCpack nlme phytools Sim_DiffProc TreeSim]; broken = true; };
+  oxcgrt = derive2 { name="oxcgrt"; version="0.1.0"; sha256="006kdggqdy7nkllln5p7fsapmmn5wlampyw2ifc4ls9jbz0p5h16"; depends=[countrycode dplyr jsonlite magrittr stringr tibble tidyr]; broken = true; };
   packClassic = derive2 { name="packClassic"; version="0.5.2"; sha256="04a1sg9vx3r0sq54q9kj0kpahp6my246jy3bivgy09g5fjk0dmkj"; depends=[]; broken = true; };
   pairheatmap = derive2 { name="pairheatmap"; version="1.0.1"; sha256="1awmqr5n9gbqxadkblpxwcjl9hm73019bwwfwy1f006jpn050d6l"; depends=[]; broken = true; };
   pairwiseComparisons = derive2 { name="pairwiseComparisons"; version="3.1.6"; sha256="0aiq8gr33pr5lia6cf6ak7zy5z81am5j5a0py0a2m9ljgmsgmn4s"; depends=[BayesFactor dplyr insight ipmisc parameters PMCMRplus purrr rlang WRS2]; broken = true; };
@@ -19302,49 +19441,60 @@ in with self; {
   pbdPROF = derive2 { name="pbdPROF"; version="0.4-0"; sha256="174jwrkvw5qz1430y6id01w1czlw45j1yw8a8dyw36knrmvmdz10"; depends=[]; broken = true; };
   pbdRPC = derive2 { name="pbdRPC"; version="0.2-1"; sha256="1pz71zfs9qw96dj3h5mrm734vbbi4drlv9hrw91dbzm3a7jsxg4q"; depends=[]; broken = true; };
   pedometrics = derive2 { name="pedometrics"; version="0.7.0"; sha256="0rqldc67yrcg16i5q9wrmfmh3lw3qrfdxwdb4mxkjxx18v4fv737"; depends=[lattice latticeExtra Rcpp]; broken = true; };
+  penalizedclr = derive2 { name="penalizedclr"; version="0.1.0"; sha256="0ka27azfdj4wa1p628b99pkrfjy1x8yjyd3d5g2v8mbsfg3j3bwg"; depends=[clogitL1 penalized survival tidyverse]; broken = true; };
   permGPU = derive2 { name="permGPU"; version="0.15"; sha256="1bxydc5dw7ka45k6ban35d5xb1dw9yq9480qns8b39cc0x3acmhc"; depends=[Biobase foreach RUnit survival]; broken = true; };
   photosynthesis = derive2 { name="photosynthesis"; version="2.0.1"; sha256="0drbic4sdx841pzcqvi0gkny7qrnzixlc0wsr6m0llh7pfyl99s6"; depends=[checkmate crayon dplyr furrr future ggplot2 glue gunit magrittr minpack_lm nlme pkgnet purrr rlang stringr tealeaves tidyselect units]; broken = true; };
-  phreeqc = derive2 { name="phreeqc"; version="3.6.3"; sha256="0z20gj1kqhnbvx33sswz5ivj7nk2p4hia4gr2npscs94nc50b5j4"; depends=[]; broken = true; };
   physx = derive2 { name="physx"; version="1.0"; sha256="1b6bx08jzfg4pxicawkn013bqrvqkp19pigxl3iwjrqclvi8mx73"; depends=[celestial cubature data_table docore MASS pracma Rcpp]; broken = true; };
+  plmm = derive2 { name="plmm"; version="0.1-1"; sha256="1dfxd1mqqjy2mf7qc6mh4wx5ya9q8fkqgrf01apisb66xxx5zya7"; depends=[Formula nlme sm]; broken = true; };
   pm4py = derive2 { name="pm4py"; version="1.2.7"; sha256="11xbsmsc9pxd98fy28l3nxzhb6c2pwvh1gmm34jnqn0rjbpb2n9i"; depends=[bupaR petrinetR purrr reticulate stringr]; broken = true; };
   pmdplyr = derive2 { name="pmdplyr"; version="0.3.3"; sha256="1grnqqydi84hnig1522lv4xbh9ds32wnq7sha7jn1q4186wlz1qa"; depends=[dplyr lubridate magrittr pillar rlang tibble tidyr tidyselect vctrs]; broken = true; };
+  pmpp = derive2 { name="pmpp"; version="0.1.1"; sha256="1srmkih6zsyf8yf1f045xy1afcz0if6nf1ncslgrq6rgm7330lkw"; depends=[data_table dplyr ggplot2 magrittr MASS Matrix minqa moments plm pracma]; broken = true; };
   pnn = derive2 { name="pnn"; version="1.0.1"; sha256="1s6ib60sbdas4720hrsr5lsszsa474kfblqcalsb56c84gkl42ka"; depends=[]; broken = true; };
   podr = derive2 { name="podr"; version="0.0.5"; sha256="135nq0dw1x6ngf6mxy3yds3xsxhaf5rnv1cmhavlrklhdfygc0a4"; depends=[assertthat DBI dplyr lubridate magrittr odbc plogr RPostgres rstudioapi shiny stringr tibble]; broken = true; };
   polyPK = derive2 { name="polyPK"; version="3.1.0"; sha256="0cb83sq8iz4swr73vwhh8n4k62p6321nsy1sz5fba0wiicycxf55"; depends=[circlize corrplot gplots Hmisc impute imputeLCMD mixOmics pcaMethods pkr plyr ropls sqldf xlsx]; broken = true; };
   polyglot = derive2 { name="polyglot"; version="0.3.0"; sha256="1mmmdqaq882qys41lmm009ncg9s9h5x1q8psv0v3pwpar0d7vgff"; depends=[magick pins]; broken = true; };
   pragma = derive2 { name="pragma"; version="0.1.3"; sha256="1n30a346pph4d8cj4p4qx2l6fnwhkxa8yxdisx47pix376ljpjfx"; depends=[]; broken = true; };
+  praktikum = derive2 { name="praktikum"; version="0.1"; sha256="0kkydgglvqw371fxh46fi86fmdndhwq1n8qj0ynbh2gz1cn86aw1"; depends=[]; broken = true; };
   predmixcor = derive2 { name="predmixcor"; version="1.1-1"; sha256="0v99as0dzn0lqnbbzycq9j885rgsa1cy4qgbya37bbjd01b3pykd"; depends=[]; broken = true; };
-  prider = derive2 { name="prider"; version="1.0.2"; sha256="0a7n4b2a0p91q8llgn14czfxvi588v62x5azl7nndvjdk6g4cmmy"; depends=[blaster dplyr gplots magrittr purrr Rcpp stringr tibble tidyr]; broken = true; };
+  provSummarizeR = derive2 { name="provSummarizeR"; version="1.4.2"; sha256="1pfnrvgqzpdhrsyh0y75idwj13zgcdj7ql6frpjmc0f5cggv7q1q"; depends=[dplyr provParseR]; broken = true; };
   psychometric = derive2 { name="psychometric"; version="2.2"; sha256="1b7cx6icixh8k3bv60fqxjjks23qn09vlcimqfv2x3m3nkf8p1s9"; depends=[multilevel nlme]; broken = true; };
   psyosphere = derive2 { name="psyosphere"; version="0.1.6"; sha256="1hcas3jk2n11lyw1ysmci0sysxf7qg9h2msqqg7q9nqp5gbf90np"; depends=[geosphere ggplot2 Hmisc lubridate plyr rgdal RgoogleMaps sp]; broken = true; };
   qoma_smuggler = derive2 { name="qoma.smuggler"; version="0.0.1"; sha256="03p9i0kr6i3adpb9lcszcmdr9p26nfy7f8hw2sbydazglaw4hscr"; depends=[lubridate rhli tibble]; broken = true; };
+  quantdr = derive2 { name="quantdr"; version="1.2.1"; sha256="04m75lv8fsz78bvq65rgxmrqgr3bdwmhbqy6ddi1h5av8c131qrq"; depends=[dr KernSmooth mvtnorm quantreg]; broken = true; };
+  rAvis = derive2 { name="rAvis"; version="0.1.4"; sha256="0svplnrn8rrr59v04nr1pz7d5r4dr1kdl0bd3kg8c3azxv47mxbp"; depends=[gdata maptools raster RCurl rgdal scales scrapeR sp stringr XML]; broken = true; };
   rDotNet = derive2 { name="rDotNet"; version="0.9.1"; sha256="18cd5373pdfi1x958llb4cgjqdi1fb7h7m5nkdwcd4xw9hxhinzd"; depends=[Rcpp testthat]; broken = true; };
   rGEDI = derive2 { name="rGEDI"; version="0.1.11"; sha256="0fkvy4p82jyfbbfymkfbrdyh13hk6a6wghk2myb64p5nhz8kv7iz"; depends=[bit64 curl data_table fs getPass ggplot2 hdf5r jsonlite lazyeval raster RColorBrewer rgdal rgeos sp]; broken = true; };
-  rKolada = derive2 { name="rKolada"; version="0.2.0"; sha256="0ikyjzg8xbzyah37dpfwq2slssz956irm4dj8b7zv6x9qxi09gj9"; depends=[dplyr glue httr jsonlite magrittr purrr rlang stringr tibble tidyr urltools]; broken = true; };
+  rJython = derive2 { name="rJython"; version="0.0-4"; sha256="13fpcw37cca738v9idqgi3gv9avfkfwfacxj54p2c4wyg46ghnah"; depends=[rJava rjson]; broken = true; };
   rModeling = derive2 { name="rModeling"; version="0.0.3"; sha256="0xrjxayp59f31wwcqqkzs5my2j2lpbv1f4pp709fmqxz02vbdzhv"; depends=[caret e1071 MASS]; broken = true; };
   radix = derive2 { name="radix"; version="0.6"; sha256="0290n0yax8649srdjbq4439h0d9f6jsmxayyhp86igcnszcxilnb"; depends=[base64enc bookdown digest downloader htmltools jsonlite knitr lubridate mime png progress rmarkdown rprojroot rstudioapi stringr whisker xfun xml2 yaml]; broken = true; };
   randaes = derive2 { name="randaes"; version="0.3"; sha256="14803argy0xdd8mpn4v67gbp90qi2is4x6na9zw7i9pm504xji1x"; depends=[]; broken = true; };
   randomsearch = derive2 { name="randomsearch"; version="0.2.0"; sha256="0ywr4ms66p5nmq8bzy04gbvmpp0nhfyf8rvynhr2c4alqva9x3yi"; depends=[checkmate fs parallelMap ParamHelpers smoof]; broken = true; };
-  rattle = derive2 { name="rattle"; version="5.4.0"; sha256="1cg26k491f78yqwis07djad8b3f9ndqwqylbh5sh66l2j9bdpmz5"; depends=[bitops dplyr ggplot2 magrittr rpart_plot stringi stringr tibble tidyr XML]; broken = true; };
   rattle_data = derive2 { name="rattle.data"; version="1.0.2"; sha256="0cnmyzvy23jc4vz521c3jg0w4165waycvy5014l5773fy19zq75c"; depends=[]; broken = true; };
   rawr = derive2 { name="rawr"; version="0.1.3"; sha256="0k0x1pmxs73j6dmjg33n4hhwjwzpnhzbmmmjza6kw7hj6lfmipx4"; depends=[clipr dplyr jsonlite rvest stringr xml2]; broken = true; };
-  rbedrock = derive2 { name="rbedrock"; version="0.1.1"; sha256="0vh6pg1lg2764zjhciswznvq7ccrd71855bmdadlj6cc1gv0fphq"; depends=[bit64 digest dplyr fs magrittr purrr R6 rappdirs readr rlang stringr tibble tidyr vctrs]; broken = true; };
-  rcbsubset = derive2 { name="rcbsubset"; version="1.1.6"; sha256="0ks94x34fw7rcvbccli6b0rlvdj3asfy6h4rm19nb022r9dax86f"; depends=[MASS plyr rcbalance]; broken = true; };
+  rbounds = derive2 { name="rbounds"; version="2.1"; sha256="1h334bc37r1vbwz1b08jazsdrf6qgzpzkil9axnq5q04jf4rixs3"; depends=[Matching]; broken = true; };
   rcol = derive2 { name="rcol"; version="0.2.0"; sha256="1ypn5fiwhyvfnmjs2davqqhxf5pjg7f0101v40bqrv4jz563h5n1"; depends=[crul data_table glue jsonlite tibble]; broken = true; };
   rdaemon = derive2 { name="rdaemon"; version="1.0.6"; sha256="1qr6v7kgk9nd5qp96667x51331xmpp1yz1r190dgd1fqigw735s5"; depends=[base64enc futile_logger Rcpp]; broken = true; };
   rdataretriever = derive2 { name="rdataretriever"; version="3.0.0"; sha256="1a01lrzn7gcxid01r0l8nnbpbryvs07z9nf43l1143w2n9bvgn24"; depends=[reticulate semver]; broken = true; };
+  rdtLite = derive2 { name="rdtLite"; version="1.3"; sha256="1njn6x2k03qxmb96d5sl7jz0xq5wabbixn9xy55ypw8g1k0cgmd1"; depends=[curl digest gtools jsonlite knitr provSummarizeR provViz rlang rmarkdown sessioninfo stringi XML]; broken = true; };
+  regpro = derive2 { name="regpro"; version="0.1.1"; sha256="02axbq63hsqwg3q2ixr0lpsdai9q6wj57s5k1343q9m0pw90vr73"; depends=[denpro]; broken = true; };
   rela = derive2 { name="rela"; version="4.1"; sha256="00ksm7zh1mpd2d5c5d823id3sxj0h3x0ccg6a40fadibvr1ay3ny"; depends=[]; broken = true; };
+  reliaR = derive2 { name="reliaR"; version="0.01"; sha256="000nafjp386nzd0n57hshmjzippiha6s6c4nfrcwl059dzmi088i"; depends=[]; broken = true; };
   retrocombinator = derive2 { name="retrocombinator"; version="1.0.0"; sha256="0ci5cm9ml2gsn0n0scaahpfi8kyn6i0s3fb4mn7m9s83c0ls6xgv"; depends=[dplyr ggplot2 magrittr Rcpp rlang]; broken = true; };
   rgho = derive2 { name="rgho"; version="2.0.2"; sha256="02p7xnfczbnvbm60hhfyywwg8iwsakk1gm29xsj9vq3ldxdjxbbv"; depends=[curl dplyr httr jsonlite lazyeval magrittr memoise readr rlang tibble tidyr]; broken = true; };
   rijkspalette = derive2 { name="rijkspalette"; version="1.0.2"; sha256="00726q8s36si08ghd9sgi7ikadcj11xqwhgv8f3cml6lvwz7ppzz"; depends=[crayon imager jsonlite]; broken = true; };
   rnetcarto = derive2 { name="rnetcarto"; version="0.2.4"; sha256="0fk5rym6zp049bl1f7bkl2231mjh3pgnxn0nhvmzpsah08rh4rr6"; depends=[]; broken = true; };
+  robin = derive2 { name="robin"; version="1.1.0"; sha256="11z09g4nzswdqhx5w0vmx1gmxkh0k451hr50avcny6q1r7hykjk6"; depends=[DescTools fdatest ggplot2 gprege gridExtra igraph networkD3 qpdf]; broken = true; };
   rpsychi = derive2 { name="rpsychi"; version="0.8"; sha256="1h40kbqvvwwjkz5hrclj6j22zhav3yyfbbhqahs1whwjkksnam4w"; depends=[gtools]; broken = true; };
-  safedata = derive2 { name="safedata"; version="1.0.9"; sha256="0xcpgh4898rqdnnxx21vyxc8aqlwg26aywr591sllasrv1jzsmrc"; depends=[chron curl igraph jsonlite readxl sf]; broken = true; };
+  rredis = derive2 { name="rredis"; version="1.7.0"; sha256="0wzamwpmx20did8xj8x9dllri2ps83viyqjic18ari7i4h1bpixv"; depends=[]; broken = true; };
+  rsolr = derive2 { name="rsolr"; version="0.0.11"; sha256="0h82x9ihzgw9l1ksn1l5w7x3vgyy6zlbdbvg9a4pa1iinhlf87ic"; depends=[BiocGenerics graph RCurl restfulr rjson S4Vectors XML]; broken = true; };
   salbm = derive2 { name="salbm"; version="1.0"; sha256="06nizpphyn5q292b2kbsjax0ljw3340n655qwiyp8lvi2zcnl6jy"; depends=[randomForestSRC]; broken = true; };
   salem = derive2 { name="salem"; version="0.2.0"; sha256="1pk27d57bmds0jvnvwai2scjy798lb7w6lb84yxl4ccgyn1ldh45"; depends=[]; broken = true; };
   sapa = derive2 { name="sapa"; version="2.0-3"; sha256="0kj681rd4c2lvqr926lb6f4qwp281x5274dg6vbk8pf5y7s0qlpc"; depends=[ifultools splus2R]; broken = true; };
+  scrapeR = derive2 { name="scrapeR"; version="0.1.6"; sha256="1rqgqpn9rc43rh356z9gb51pjhdczr9a9mgv0i078nniq156rmlb"; depends=[RCurl XML]; broken = true; };
   scriptests = derive2 { name="scriptests"; version="1.0-16"; sha256="11l145gvzkxqwbzw976rq94krly1p4lahqw051dwaacarq4hnrdg"; depends=[]; broken = true; };
   seedwater = derive2 { name="seedwater"; version="2.0"; sha256="1q6q612245hqqx89jzlp77f73vj2baxi0bghd9l8kpjz4ydh6rv8"; depends=[rpanel]; broken = true; };
+  selfmade = derive2 { name="selfmade"; version="0.1"; sha256="0d3v202dqr3c2564g6w7k27mhy1nxx7ngpiai7yxq2s88wa7cydi"; depends=[lme4 Matrix mgcv]; broken = true; };
+  semPLS = derive2 { name="semPLS"; version="1.0-10"; sha256="0q5linjyv5npkw4grx3vq58iq2q1grf06ikivhkg8w7rvb7pqn6b"; depends=[lattice]; broken = true; };
   sensR = derive2 { name="sensR"; version="1.5-2"; sha256="073za0z6dawba2nd45hs20m0143kckxn3iglkyqz9vdfqwyv7wlq"; depends=[MASS multcomp numDeriv]; broken = true; };
   sequoia = derive2 { name="sequoia"; version="2.3.5"; sha256="1n0c24g5zl0l63nsaywwjfqsjn0ql2ckd3iqmc381qngijnckc17"; depends=[plyr]; broken = true; };
   shinyypr = derive2 { name="shinyypr"; version="0.0.2"; sha256="1k6jsw6gnpwk90hkpa9grki0b68cab57vbd0h6ldjqr11giwcz8z"; depends=[bsplus chk dplyr DT ggplot2 lifecycle magrittr purrr readr shiny shinyjs waiter ypr]; broken = true; };
@@ -19352,13 +19502,17 @@ in with self; {
   simLife = derive2 { name="simLife"; version="0.5.2"; sha256="1dhrjszfgxr0j4dkc2bwykyj515ji5rkb572nmnyjgkyi652j01v"; depends=[splancs]; broken = true; };
   simba = derive2 { name="simba"; version="0.3-5"; sha256="14kqxqavacckl5s1518iiwzrmlgbxz1lxy33y8c9qq7xaln41g9h"; depends=[vegan]; broken = true; };
   simfinR = derive2 { name="simfinR"; version="0.2.3"; sha256="1swlgwmd5frz72i3vjv7am8s6vr6i7mv76j7hxffk3l7xmq7y53s"; depends=[crayon digest dplyr jsonlite lubridate magrittr memoise purrr]; broken = true; };
+  sismonr = derive2 { name="sismonr"; version="2.1.0"; sha256="1v4vfz6zc4f70fay8r9vaxj62pcp8gqnh4aczbqpym9874330vi9"; depends=[dplyr ggplot2 ggpubr igraph jsonlite magrittr rlang scales stringr tictoc tidyr truncnorm XR XRJulia]; broken = true; };
   slga = derive2 { name="slga"; version="1.2.0"; sha256="0n96vqczpzc51ln2nraxz0846amasfbm541sy0wf0dsng283mh13"; depends=[httr raster s2 sf xml2]; broken = true; };
   smartR = derive2 { name="smartR"; version="0.62.3"; sha256="0ardb4arhr7qmr30b3ahf7hkwlys9i420bm8h2688phahgfkk0y8"; depends=[caret chron cluster foreign ggplot2 ggrepel ggthemes gridExtra gstat gsubfn gWidgets2 gWidgets2RGtk2 igraph jpeg jsonlite lattice mapdata mapproj maps maptools marmap mtsdi nnls PBSmapping plyr R6 RColorBrewer reshape2 rgdal rgeos rjags ROCR rpart scales shape sp spdep sqldf vegan]; broken = true; };
   sobir = derive2 { name="sobir"; version="0.1.2"; sha256="0di9mk1c1jf8yr7jpmfm19w2w3p9lz1mkgrv3bmfyab83aghvbfp"; depends=[DescTools devtools dplyr ggplot2 raster rlang scales sp statmod stringr tidyr usethis]; broken = true; };
   spANOVA = derive2 { name="spANOVA"; version="0.99.3"; sha256="0w817zwbk6amh3n3j8wzjr15qqhfbk9s23c77b27iwcc5akdgbix"; depends=[ape car DT geoR gtools knitr MASS Matrix multcomp multcompView mvtnorm rmarkdown ScottKnott shiny shinyBS shinycssloaders shinythemes spatialreg spdep xtable]; broken = true; };
-  spagmix = derive2 { name="spagmix"; version="0.3-4"; sha256="032dmz8cx4j5vl229gi1xkncc1wggfrf1a24qqwl2bzxrdfp27rw"; depends=[abind mvtnorm RandomFields sparr spatstat spatstat_core spatstat_geom spatstat_linnet]; broken = true; };
+  spNetwork = derive2 { name="spNetwork"; version="0.2.1"; sha256="0hmg68v5a7d1ixwj9nvh7kd948r7kspar6nd3yp02mgj495ps1z8"; depends=[BH cubature data_table future_apply ggplot2 igraph maptools progressr raster Rcpp RcppArmadillo RcppProgress Rdpack rgeos SearchTrees sp spdep]; broken = true; };
+  sparsebn = derive2 { name="sparsebn"; version="0.1.2"; sha256="1b1601n3nmxck6a27xqxpsa79p4xnz7yyzdfqiddn9zd2b4v9wc5"; depends=[ccdrAlgorithm discretecdAlgorithm sparsebnUtils]; broken = true; };
   spate = derive2 { name="spate"; version="1.7"; sha256="1cr5jjrycfj9larsqgzfakk4qgfz8m5djg4ddzk6s3lg2iw06y43"; depends=[mvtnorm truncnorm]; broken = true; };
   spe = derive2 { name="spe"; version="1.1.2"; sha256="0xyx42n3gcsgqmy80nc9la6p6gq07anpzx0afwffyx9fv20fvys0"; depends=[]; broken = true; };
+  specmine = derive2 { name="specmine"; version="3.1.6"; sha256="0ik3nsb9mrja6709fwsf97f9qbf7lmmyc2zqrm7398h3mibf64l7"; depends=[baseline caret compare e1071 ellipse genefilter GGally ggplot2 impute imputeTS MASS Metrics mrbin narray pcaPP plotly pls RColorBrewer readJDX speaq specmine_datasets]; broken = true; };
+  specmine_datasets = derive2 { name="specmine.datasets"; version="0.0.2"; sha256="0amqb4qy5ac1jc4g95sf4678ll3xhscyrcxq6pgh8imfyk1ifrmx"; depends=[xcms]; broken = true; };
   spfrontier = derive2 { name="spfrontier"; version="0.2.5"; sha256="1vnvwcjbhvbmyn5rp4760amzy8k3y156q629fjymw9rw6zy45pbf"; depends=[ezsim moments mvtnorm numDeriv optimx spdep tmvtnorm]; broken = true; };
   spiders = derive2 { name="spiders"; version="1.2"; sha256="1qklm178bgkgpvrjf024jphsdh9can8300sf0702l4h0rk2daqbq"; depends=[plyr]; broken = true; };
   spsann = derive2 { name="spsann"; version="2.2.0"; sha256="00nlrwk50ch128brzvfxld0pcpq1syks9rvwdrcf1i2pcxnva7d0"; depends=[pedometrics Rcpp sp SpatialTools]; broken = true; };
@@ -19366,22 +19520,26 @@ in with self; {
   stacomiR = derive2 { name="stacomiR"; version="0.6.0"; sha256="0mcq7lcwcz9s18vdd7762dfr2fyb5fqvnv0b5ljp7kdbr3ia977y"; depends=[dplyr ggplot2 Hmisc intervals lattice lubridate magrittr mgcv pool RColorBrewer reshape2 rlang RPostgres stacomirtools stringr withr xtable]; broken = true; };
   stam = derive2 { name="stam"; version="0.0-1"; sha256="1x1j45fir64kffny0nssb2hwn4rcp8gd2cjv6fw4yy0l4d0xi5iv"; depends=[np sp]; broken = true; };
   stanette = derive2 { name="stanette"; version="2.21.2"; sha256="1266555964cymrgrmfzjk2x12hpyjvd18c8q0lx92wdssnqzhhzr"; depends=[BH brew coda ggplot2 gridExtra inline lattice loo pkgbuild Rcpp RcppEigen RcppParallel StanHeaders V8 withr]; broken = true; };
-  stpp = derive2 { name="stpp"; version="2.0-5"; sha256="1p7dxzfhi5pvva956nyypl7dfdgq3m0cara73hai87qzc342xcf0"; depends=[ggplot2 gridExtra KernSmooth plot3D rgl rpanel spatstat_core spatstat_geom splancs]; broken = true; };
+  sublime = derive2 { name="sublime"; version="1.3"; sha256="0455fppc68azxknxjvxci4kjpcj6c1jkp9adbxqrn3qnnywaj5v2"; depends=[AnalyzeFMRI downloader oro_nifti]; broken = true; };
   subscreen = derive2 { name="subscreen"; version="3.0.5"; sha256="0786p2n1a4xjsxnd31w2b079ggdzx9pgn14d5vbngrc6mgjm9hk8"; depends=[bsplus colourpicker data_table dplyr DT jsonlite plyr purrr randomForestSRC shiny shinyjs shinyWidgets]; broken = true; };
-  subtee = derive2 { name="subtee"; version="1.0.0"; sha256="09ah1n3whdycygbi1a6pwgm5jqs1srd565p3ihkk5ygp4gl2r3z9"; depends=[ggplot2 MASS matrixStats survival]; broken = true; };
   survRatio = derive2 { name="survRatio"; version="0.1"; sha256="1xrqin3q3b7r8ga4i71ci97rsm4lj5ffd0720n7s563jkpnpyb9l"; depends=[ggplot2 ggpubr gridExtra survival]; broken = true; };
   survxai = derive2 { name="survxai"; version="0.2.2"; sha256="09ig561754kjzpay2hy3n62zlk0bgwkjy8vnslrr428r8m1lj0qr"; depends=[breakDown ggplot2 pec prodlim scales survival survminer]; broken = true; };
+  svines = derive2 { name="svines"; version="0.1.3"; sha256="0zpbf6xcl7sxmmmz5v4xgg70y5dijvdl0qqhlaipwv21w0mvzhxk"; depends=[assertthat BH fGarch Rcpp RcppEigen RcppThread rvinecopulib univariateML wdm]; broken = true; };
   swissdd = derive2 { name="swissdd"; version="1.1.4"; sha256="0ad260b4sfism5q1jxjazg6q33283ncld1m7gfdrps3xg1kyfirs"; depends=[dplyr ggplot2 httr jsonlite lubridate purrr RCurl sf stringr tibble tidyr]; broken = true; };
+  taRifx = derive2 { name="taRifx"; version="1.0.6.2"; sha256="05cvjsi65fvy9hg2v3fldzwn1yd2kfirl3ffg9yfajm903dk3l49"; depends=[plyr reshape2]; broken = true; };
   tabulizer = derive2 { name="tabulizer"; version="0.2.2"; sha256="0zd5cfqwgirqchw1mvziscxvzl8pb1y6rbfywkn9i9pxfydkm5vi"; depends=[png rJava tabulizerjars]; broken = true; };
   tabulizerjars = derive2 { name="tabulizerjars"; version="1.0.1"; sha256="005n2gyzzmq8h0mpj8xs6ri6llzwag7nqzpm4vnzp81vwy8kmf92"; depends=[rJava]; broken = true; };
-  test2norm = derive2 { name="test2norm"; version="0.2.0"; sha256="02dmskqnxinfdxxq5s969p37fps0wpiz6mrcnx03f03a3gzqljl0"; depends=[mfp]; broken = true; };
   thectar = derive2 { name="thectar"; version="1.0.0"; sha256="1qh0qzg0ybb38kzm56xxlvhm201pdjm16aky5f1fdflcsszgy8mx"; depends=[proxy smacof]; broken = true; };
   themetagenomics = derive2 { name="themetagenomics"; version="1.0.2"; sha256="14i81cd9cyzhi3j2d9ygwlairkimhx8ffvva3pg3xwwvpywb6mla"; depends=[ggplot2 lda lme4 Matrix plotly Rcpp rstan scales shiny stm]; broken = true; };
   thickmatch = derive2 { name="thickmatch"; version="0.3.1"; sha256="0q7wpilbk8jm3q7m5hb114jpbv4ri1745v9sbdf222l6ymds6pia"; depends=[DiPs MASS plyr rcbalance]; broken = true; };
+  thriftr = derive2 { name="thriftr"; version="1.1.5"; sha256="1s8fn0imja6gh5bb0h2g1pmvkwk5v0dmpml9yvcd5dhz9lxy6vdj"; depends=[R6 rly stringi]; broken = true; };
   tidyMicro = derive2 { name="tidyMicro"; version="1.47"; sha256="02pc6rh0l7xdrqhihi53zp17x0walc0mpm70spm7yrwzkbc486lv"; depends=[ade4 broom car cowplot dplyr Evomorph factoextra ggplot2 ggrepel gridExtra latex2exp lme4 lsr magrittr MASS Matrix plotly plyr png purrr rlang scales scatterplot3d shapes stringr ThreeWay tibble tidyr tidyverse vegan VGAM]; broken = true; };
   tipom = derive2 { name="tipom"; version="1.0.2-1"; sha256="1gdfv0g5dw742j6ycmi0baqh6xcchp3yf2n1g8vn7jmqgz5mlhdr"; depends=[]; broken = true; };
   tlsh = derive2 { name="tlsh"; version="0.1.0"; sha256="0106y17cr3hq09ahy3rxhxqzgc0655w2jr0s3iyr8zvxsdv5ahb5"; depends=[bit64 blink igraph plyr]; broken = true; };
+  trackr = derive2 { name="trackr"; version="0.10.7"; sha256="0h7ihymdvfvnnyxfxjwshslrxngh3i2ksqvhxynrp46m20mwjavd"; depends=[CodeDepends fastdigest ggplot2 gridGraphics histry htmltools lattice miniUI RJSONIO rlang rmarkdown roprov rsolr shiny]; broken = true; };
   translate = derive2 { name="translate"; version="0.1.2"; sha256="1w0xrg1xxwfdanlammmixf06hwq700ssbjlc3cfigl50p87dbc5x"; depends=[functional lisp RCurl RJSONIO]; broken = true; };
+  treeperm = derive2 { name="treeperm"; version="1.6"; sha256="0mz7p9khrsq4dbkijymfvlwr01y4fvs0x6si4x5xid16s2zsnmm4"; depends=[]; broken = true; };
+  triggerstrategy = derive2 { name="triggerstrategy"; version="1.1.0"; sha256="1gly2brw0glcnx8is4mrlrbxgnma57vpfid5lkpz2wdakwn7y2by"; depends=[GA gsrsb ldbounds mvtnorm nleqslv]; broken = true; };
   turfR = derive2 { name="turfR"; version="0.8-7"; sha256="007jmkppfv1x4zzvvd65fhg5k15ybjhsya2zfjgwm77wm34y81ca"; depends=[dplyr]; broken = true; };
   uFTIR = derive2 { name="uFTIR"; version="0.1.4"; sha256="1blgwn6i0dadmr7vml6rbniv103mgr9hgx2dwgcxbagfyv00ah24"; depends=[raster Rcpp RcppArmadillo sp]; broken = true; };
   unfoldr = derive2 { name="unfoldr"; version="0.7.1"; sha256="1khas7d04g4y2kwldnsja5xk1n5mys2s66pln3l0gqlsbk67na12"; depends=[]; broken = true; };
@@ -19389,18 +19547,24 @@ in with self; {
   uplifteval = derive2 { name="uplifteval"; version="0.1.0"; sha256="1gnn40c47rpx40j210bz6fb48d70p6spv3drr8hd5b3vzfz6686c"; depends=[dplyr ggplot2 gridExtra whisker]; broken = true; };
   usethis2 = derive2 { name="usethis2"; version="0.2.0"; sha256="0ljvfgwg73y71yvyz2pp4c1rzgiqk1x7kmgswxa1ay05zwdgyi0x"; depends=[microservices purrr usethis withr]; broken = true; };
   valuer = derive2 { name="valuer"; version="1.1.2"; sha256="0mbwzsvy34ppngyxdzpd9w1r4f00cik4maqab9kpiflrrv9xdp78"; depends=[ggplot2 orthopolynom R6 Rcpp RcppEigen timeDate yuima]; broken = true; };
+  varrank = derive2 { name="varrank"; version="0.4"; sha256="03zyv1cgrdnj7gzrp1ag0sqpxikrlsj3gg4x78gp1wxqwzq7aizx"; depends=[FNN]; broken = true; };
   viewshed3d = derive2 { name="viewshed3d"; version="4.0.0"; sha256="039xx39w3k3hckf0qci7j1364s47vja5s18siqjh6c5yy1w8q737"; depends=[data_table hyper_fit lidR nabor pkgcond plotrix pracma raster rgl sp viridis]; broken = true; };
   viopoints = derive2 { name="viopoints"; version="0.2-1"; sha256="0cpbkkzm1rxch8gnvlmmzy8g521f5ang3nhlcnin419gha0w6avf"; depends=[]; broken = true; };
+  vmdTDNN = derive2 { name="vmdTDNN"; version="0.1.0"; sha256="1vxlqfcdkwajz9r6rmz48x87csl6d7dqshabhgwnvgvy206jh3b7"; depends=[forecast nnfor vmd]; broken = true; };
   vmsbase = derive2 { name="vmsbase"; version="2.2.1"; sha256="1xxn0vm9r8kiix6whlc12r0wanf6acrl9a86h44nwm019xfmlfyp"; depends=[AMORE cairoDevice chron cluster DBI ecodist fields foreign ggmap ggplot2 gmt gsubfn gWidgets2 gWidgets2RGtk2 intervals mapdata maps maptools marmap outliers PBSmapping plotrix R6 RSQLite sp sqldf VennDiagram]; broken = true; };
+  vortexR = derive2 { name="vortexR"; version="1.1.7"; sha256="06i2rqbc3h2kv8jjrdlrg03xrzb3yiyzpnv2rvlkjcnn46f84bgf"; depends=[betareg data_table GGally ggplot2 glmulti gtools irr plyr R_utils stringr vortexRdata]; broken = true; };
   vwr = derive2 { name="vwr"; version="0.3.0"; sha256="1h790vjcdfngs1siwldvqz8jrxpkajl3266lzadfnmchfan1x7xv"; depends=[lattice latticeExtra stringdist]; broken = true; };
+  wBoot = derive2 { name="wBoot"; version="1.0.3"; sha256="08qgkkv6jvqmxq5gvfp7jbrc3k8mxajfww7k8a3p8888aq411p7q"; depends=[boot simpleboot]; broken = true; };
   wSVM = derive2 { name="wSVM"; version="0.1-7"; sha256="0c7rblzgagwfb8mmddkc0nd0f9rv6kapw8znpwapv3fv0j2qzq7h"; depends=[MASS quadprog]; broken = true; };
   water = derive2 { name="water"; version="0.8"; sha256="0qglf922dlgi41jzz3sivq7ckmzl8axqjfg4klcgnddycmm3ha5j"; depends=[raster rgdal sp]; broken = true; };
-  wdnr_gis = derive2 { name="wdnr.gis"; version="0.1.2"; sha256="03z9qayrv34lgajvwg77b0h7z65r04wzlkaazpdfxq9wk027g3a9"; depends=[arcpullr dplyr ggplot2 httr jsonlite rlang sf]; broken = true; };
   weathercan = derive2 { name="weathercan"; version="0.6.2"; sha256="1mr926rymacx1f8k79pwhcyl5xcymq77l4dxaa2ddlrx5cmyh5cv"; depends=[dplyr httr lubridate memoise purrr rappdirs readr rlang rvest stringi stringr tidyr tidyselect xml2]; broken = true; };
   wflo = derive2 { name="wflo"; version="1.6"; sha256="04qxm1vvmgxbpj1wwj7n48klhsprkj774jnj4qfhqza33mhymydb"; depends=[emstreeR plotrix progress raster rgdal sp]; broken = true; };
   windAC = derive2 { name="windAC"; version="1.2.6"; sha256="0yx0jiz3c4slv366sic01k8l460idh4n6a797biy7wyrp6jj241x"; depends=[mvtnorm sf]; broken = true; };
+  worldfootballR = derive2 { name="worldfootballR"; version="0.5.1"; sha256="1nyxjp4hx0ds32ixc1sbh96v2yppvakz680g3v3b8xd7lrh11xa7"; depends=[dplyr glue janitor jsonlite lubridate magrittr progress purrr qdapRegex readr rlang rvest stringi stringr tibble tidyr withr xml2]; broken = true; };
+  wvtool = derive2 { name="wvtool"; version="1.0"; sha256="0x9awj6g5lzqp2lhwgh9ib7jmfdzyhwazrjvw1vwacqqfhbz8qxv"; depends=[]; broken = true; };
   x12GUI = derive2 { name="x12GUI"; version="0.13.0"; sha256="1mga7g9gwb3nv2qs27lz4n9rp6j3svads28hql88sxaif6is3nk1"; depends=[cairoDevice Hmisc lattice RGtk2 stringr x12]; broken = true; };
   xgobi = derive2 { name="xgobi"; version="1.2-15"; sha256="03ym5mm16rb1bdwrymr393r3xgprp0ign45ryym3g0x2zi8dy557"; depends=[]; broken = true; };
   xlsimple = derive2 { name="xlsimple"; version="1.0.5"; sha256="1snamzq6yljiqakqd6492ylznr9kfl8w0lnaayfn14fk3w03skck"; depends=[XLConnect]; broken = true; };
+  ycinterextra = derive2 { name="ycinterextra"; version="0.1"; sha256="0hr37izbbmxqkjy6a7q8vcn0vs8an1ck9y8xfjpl5z0rygi8xc1v"; depends=[mcGlobaloptim]; broken = true; };
   zGPS_AO = derive2 { name="zGPS.AO"; version="0.1.0"; sha256="18dqssnj4gch1yg0qvrj4j2ry95sy6a9z8yz2zi8nzhhsj8dz1qq"; depends=[doParallel doRNG dplyr foreach ggplot2 hrbrthemes MASS plotly pscl questionr viridis]; broken = true; };
 }
diff --git a/pkgs/development/ruby-modules/bundler-app/default.nix b/pkgs/development/ruby-modules/bundler-app/default.nix
index 03bf7275cc719..e3c430cc923bd 100644
--- a/pkgs/development/ruby-modules/bundler-app/default.nix
+++ b/pkgs/development/ruby-modules/bundler-app/default.nix
@@ -57,7 +57,7 @@ in
                                 "--set BUNDLE_FROZEN 1 "+
                                 "--set GEM_HOME ${basicEnv}/${ruby.gemPath} "+
                                 "--set GEM_PATH ${basicEnv}/${ruby.gemPath} "+
-                                "--run \"cd $srcdir\";\n") scripts)}
+                                "--chdir \"$srcdir\";\n") scripts)}
 
     ${lib.optionalString installManpages ''
     for section in {1..9}; do
diff --git a/pkgs/development/ruby-modules/with-packages/Gemfile b/pkgs/development/ruby-modules/with-packages/Gemfile
index ca8e09704a11c..0b886ee1b1426 100644
--- a/pkgs/development/ruby-modules/with-packages/Gemfile
+++ b/pkgs/development/ruby-modules/with-packages/Gemfile
@@ -93,6 +93,7 @@ source 'https://rubygems.org' do
   gem 'nokogiri'
   gem 'opus-ruby'
   gem 'ovirt-engine-sdk'
+  gem 'pandocomatic'
   gem 'pango'
   gem 'patron'
   gem 'pcaprub'
diff --git a/pkgs/development/tools/amazon-qldb-shell/default.nix b/pkgs/development/tools/amazon-qldb-shell/default.nix
index 6f6ef1ca8af79..d017c213415c6 100644
--- a/pkgs/development/tools/amazon-qldb-shell/default.nix
+++ b/pkgs/development/tools/amazon-qldb-shell/default.nix
@@ -4,7 +4,7 @@
 , fetchFromGitHub
 , llvmPackages
 , rustPlatform
-, testVersion
+, testers
 }:
 
 let
@@ -27,7 +27,7 @@ let
 
     LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
 
-    passthru.tests.version = testVersion { inherit package; };
+    passthru.tests.version = testers.testVersion { inherit package; };
 
     meta = with lib; {
       description = "An interface to send PartiQL statements to Amazon Quantum Ledger Database (QLDB)";
diff --git a/pkgs/development/tools/ammonite/default.nix b/pkgs/development/tools/ammonite/default.nix
index 080a8362ba70b..efeaf9df50750 100644
--- a/pkgs/development/tools/ammonite/default.nix
+++ b/pkgs/development/tools/ammonite/default.nix
@@ -9,7 +9,7 @@ let
   common = { scalaVersion, sha256 }:
     stdenv.mkDerivation rec {
       pname = "ammonite";
-      version = "2.5.2";
+      version = "2.5.3";
 
       src = fetchurl {
         url =
@@ -83,10 +83,10 @@ let
 in {
   ammonite_2_12 = common {
     scalaVersion = "2.12";
-    sha256 = "sha256-vj0Ze+Tn8jgq1mIVZWq2q768vW6fNXHB28gMcB9bWHU=";
+    sha256 = "sha256-Iov55ohFjcGhur5UEng7aAZJPVua1H/JaKKW6OKS6Zg=";
   };
   ammonite_2_13 = common {
     scalaVersion = "2.13";
-    sha256 = "sha256-ZuPyZFD3/VRP/GegcKqXZm3bveQB/Xr5E39eQktDCJI=";
+    sha256 = "sha256-dzUhKUQDHrYZ4WyCk4z4CTxb6vK05qfApR/WPOwhA5s=";
   };
 }
diff --git a/pkgs/development/tools/analysis/actionlint/default.nix b/pkgs/development/tools/analysis/actionlint/default.nix
index 71a9a95d2fca8..2380c5bd113c1 100644
--- a/pkgs/development/tools/analysis/actionlint/default.nix
+++ b/pkgs/development/tools/analysis/actionlint/default.nix
@@ -10,7 +10,7 @@
 
 buildGoModule rec {
   pname = "actionlint";
-  version = "1.6.10";
+  version = "1.6.12";
 
   subPackages = [ "cmd/actionlint" ];
 
@@ -18,10 +18,10 @@ buildGoModule rec {
     owner = "rhysd";
     repo = "actionlint";
     rev = "v${version}";
-    sha256 = "sha256-RFsNJiCeSAeEWOUnfBpeIZKoS2mlXazYMQd1M6yFLGU=";
+    sha256 = "sha256-nFHf+X7Onf06o3G77mrfszfrWGq65y3VJffkuAxXk50=";
   };
 
-  vendorSha256 = "sha256-CxNER8aQftMG14M+x6bPwcXgUZRkUDYZtFg1cPxxg+I=";
+  vendorSha256 = "sha256-nG0u5hZ/YRn+yUoEGTBo6ZdOp0e+sH6Jl9F+QhpfYAU=";
 
   nativeBuildInputs = [ makeWrapper ronn installShellFiles ];
 
diff --git a/pkgs/development/tools/analysis/binlore/default.nix b/pkgs/development/tools/analysis/binlore/default.nix
index ac46bd4c41851..e6d529b0684a3 100644
--- a/pkgs/development/tools/analysis/binlore/default.nix
+++ b/pkgs/development/tools/analysis/binlore/default.nix
@@ -30,8 +30,8 @@ let
   src = fetchFromGitHub {
     owner = "abathur";
     repo = "binlore";
-    rev = "v0.1.4";
-    hash = "sha256-+N0Bqyaj/mAwrcgFtUI8czmKo3VW6J8ZRxaPEghp7QM=";
+    rev = "v0.2.0";
+    hash = "sha256-bBJky7Km+mieHTqoMz3mda3KaKxr9ipYpfQqn/4w8J0=";
   };
   /*
   binlore has one one more yallbacks responsible for
@@ -57,11 +57,11 @@ let
     #   since this form will make it easier to pilot other
     #   uses of binlore.
     callback = lore: drv: overrides: ''
-      if [[ -d "${drv}/bin" ]]; then
+      if [[ -d "${drv}/bin" ]] || [[ -d "${drv}/lib" ]] || [[ -d "${drv}/libexec" ]]; then
         echo generating binlore for $drv by running:
-        echo "${yara}/bin/yara ${lore.rules} ${drv}/bin | ${yallback}/bin/yallback ${lore.yallback}"
+        echo "${yara}/bin/yara --scan-list --recursive ${lore.rules} <(printf '%s\n' ${drv}/{bin,lib,libexec}) | ${yallback}/bin/yallback ${lore.yallback}"
       else
-        echo "failed to generate binlore for $drv (${drv}/bin doesn't exist)"
+        echo "failed to generate binlore for $drv (none of ${drv}/{bin,lib,libexec} exist)"
       fi
     '' +
     /*
@@ -83,18 +83,19 @@ let
         fi
         ((i--)) || true # don't break build
       done # || true # don't break build
-      if [[ -d "${drv}/bin" ]]; then
-        ${yara}/bin/yara ${lore.rules} ${drv}/bin | ${yallback}/bin/yallback ${lore.yallback} "$filter"
+      if [[ -d "${drv}/bin" ]] || [[ -d "${drv}/lib" ]] || [[ -d "${drv}/libexec" ]]; then
+        ${yara}/bin/yara --scan-list --recursive ${lore.rules} <(printf '%s\n' ${drv}/{bin,lib,libexec}) | ${yallback}/bin/yallback ${lore.yallback} "$filter"
       fi
     '';
   };
   overrides = (src + /overrides);
 
 in rec {
-  collect = { lore ? loreDef, drvs }: (runCommand "more-binlore" { } ''
+  collect = { lore ? loreDef, drvs, strip ? [ ] }: (runCommand "more-binlore" { } ''
     mkdir $out
     for lorefile in ${toString lore.types}; do
-      cat ${lib.concatMapStrings (x: x + "/$lorefile ") (map (make lore) (map lib.getBin drvs))} > $out/$lorefile
+      cat ${lib.concatMapStrings (x: x + "/$lorefile ") (map (make lore) (map lib.getBin (builtins.filter lib.isDerivation drvs)))} > $out/$lorefile
+      substituteInPlace $out/$lorefile ${lib.concatMapStrings (x: "--replace '${x}/' '' ") strip}
     done
   '');
   # TODO: echo for debug, can be removed at some point
diff --git a/pkgs/development/tools/analysis/checkov/default.nix b/pkgs/development/tools/analysis/checkov/default.nix
index 8cda4a0b21280..9b1472f53b417 100644
--- a/pkgs/development/tools/analysis/checkov/default.nix
+++ b/pkgs/development/tools/analysis/checkov/default.nix
@@ -32,13 +32,13 @@ with py.pkgs;
 
 buildPythonApplication rec {
   pname = "checkov";
-  version = "2.0.988";
+  version = "2.0.1084";
 
   src = fetchFromGitHub {
     owner = "bridgecrewio";
     repo = pname;
     rev = version;
-    hash = "sha256-0/SL20N5d/oqWdyvVMZ+pzpPbehrYepaPi8P8SS8DSA=";
+    hash = "sha256-bzmXLqjtl742UcjBpYQdtiTKO6Oe/x7lGoJZh+uJzUo=";
   };
 
   nativeBuildInputs = with py.pkgs; [
@@ -94,7 +94,8 @@ buildPythonApplication rec {
   postPatch = ''
     substituteInPlace setup.py \
       --replace "cyclonedx-python-lib>=0.11.0,<1.0.0" "cyclonedx-python-lib>=0.11.0" \
-      --replace "prettytable>=3.0.0" "prettytable"
+      --replace "prettytable>=3.0.0" "prettytable" \
+      --replace "pycep-parser==0.3.4" "pycep-parser"
   '';
 
   preCheck = ''
@@ -114,6 +115,8 @@ buildPythonApplication rec {
     "test_skipped_check_exists"
     # AssertionError: 0 not greater than 0
     "test_skip_mapping_default"
+    # Test is failing
+    "test_SQLServerAuditingEnabled"
   ];
 
   disabledTestPaths = [
diff --git a/pkgs/development/tools/analysis/checkstyle/default.nix b/pkgs/development/tools/analysis/checkstyle/default.nix
index 6c135beea4582..8d84eed32b100 100644
--- a/pkgs/development/tools/analysis/checkstyle/default.nix
+++ b/pkgs/development/tools/analysis/checkstyle/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
-  version = "9.3";
+  version = "10.1";
   pname = "checkstyle";
 
   src = fetchurl {
     url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar";
-    sha256 = "sha256-Aq0zB+RgWafE+K9sX2H0d7xf2RDlavsUXEWQTJXSE6w=";
+    sha256 = "sha256-raVTkfJou6mLgjZd4vriPOAeM+mrlWf3lo9kFstMpT8=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/analysis/coan/default.nix b/pkgs/development/tools/analysis/coan/default.nix
index 3ef6c2b845902..b7261705545ce 100644
--- a/pkgs/development/tools/analysis/coan/default.nix
+++ b/pkgs/development/tools/analysis/coan/default.nix
@@ -11,6 +11,10 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ perl ];
 
+  NIX_CFLAGS_COMPILE = [
+    "-std=c++11"
+  ];
+
   enableParallelBuilding = true;
 
   postInstall = ''
diff --git a/pkgs/development/tools/analysis/codeql/default.nix b/pkgs/development/tools/analysis/codeql/default.nix
index a6a95e74e4a18..2584965499ea8 100644
--- a/pkgs/development/tools/analysis/codeql/default.nix
+++ b/pkgs/development/tools/analysis/codeql/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "codeql";
-  version = "2.8.1";
+  version = "2.8.2";
 
   dontConfigure = true;
   dontBuild = true;
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   src = fetchzip {
     url = "https://github.com/github/codeql-cli-binaries/releases/download/v${version}/codeql.zip";
-    sha256 = "sha256-zZoK5x+nE8AVZWDSMmsVPFuXNnAHBPyu9+1GgSwN19c=";
+    sha256 = "sha256-F0tr4oQPgusLVCP5jSCYxl/xHbZLrVXd2FFYSJY3PPs=";
   };
 
   nativeBuildInputs = [
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
     description = "Semantic code analysis engine";
     homepage = "https://codeql.github.com";
     maintainers = [ maintainers.dump_stack ];
+    platforms = [ "x86_64-linux" ];
     license = licenses.unfree;
   };
 }
diff --git a/pkgs/development/tools/analysis/cppcheck/default.nix b/pkgs/development/tools/analysis/cppcheck/default.nix
index 993f5dbe7e91e..f4b3804f02a1b 100644
--- a/pkgs/development/tools/analysis/cppcheck/default.nix
+++ b/pkgs/development/tools/analysis/cppcheck/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cppcheck";
-  version = "2.7.4";
+  version = "2.7.5";
 
   src = fetchFromGitHub {
     owner = "danmar";
     repo = "cppcheck";
     rev = version;
-    sha256 = "sha256-bMDH3TRAdDoI1AaHTpIl4P/yk9wsV0ReNh6bMmCsKys=";
+    sha256 = "sha256-GRhQXGldirIhUBI4CucDTTxuZhG0XW0qp1FjYXhVS0o=";
   };
 
   buildInputs = [ pcre
diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix
index 2d97b64b11e80..2325ab03c96b0 100644
--- a/pkgs/development/tools/analysis/flow/default.nix
+++ b/pkgs/development/tools/analysis/flow/default.nix
@@ -2,15 +2,17 @@
 
 stdenv.mkDerivation rec {
   pname = "flow";
-  version = "0.174.1";
+  version = "0.176.3";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "flow";
     rev = "v${version}";
-    sha256 = "sha256-lfj6KyB9QYvUy4Ybo8f30omAg4K/jT5MEERJPm0aJ7U=";
+    sha256 = "sha256-ZjWIaZ4XT7v66ozjQu+ld0Tz2gVjQFUD6JoL1nW/DmE=";
   };
 
+  makeFlags = [ "FLOW_RELEASE=1" ];
+
   installPhase = ''
     install -Dm755 bin/flow $out/bin/flow
     install -Dm644 resources/shell/bash-completion $out/share/bash-completion/completions/flow
diff --git a/pkgs/development/tools/analysis/oclgrind/default.nix b/pkgs/development/tools/analysis/oclgrind/default.nix
index 3752fa8e251db..9e8d1da4d36a6 100644
--- a/pkgs/development/tools/analysis/oclgrind/default.nix
+++ b/pkgs/development/tools/analysis/oclgrind/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, llvmPackages, readline, python2 }:
+{ lib, stdenv, fetchFromGitHub, cmake, llvmPackages, readline, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "oclgrind";
@@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ llvmPackages.llvm llvmPackages.clang-unwrapped readline python2 ];
+  checkInputs = [ python3 ];
+  buildInputs = [ llvmPackages.llvm llvmPackages.clang-unwrapped readline ];
 
   cmakeFlags = [
     "-DCLANG_ROOT=${llvmPackages.clang-unwrapped}"
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix
index d5d393ee96eb6..6bb7d2545c0f8 100644
--- a/pkgs/development/tools/analysis/radare2/default.nix
+++ b/pkgs/development/tools/analysis/radare2/default.nix
@@ -44,13 +44,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "radare2";
-  version = "5.6.4";
+  version = "5.6.8";
 
   src = fetchFromGitHub {
     owner = "radare";
     repo = "radare2";
     rev = version;
-    sha256 = "sha256-rqGlp9fHTF1z8A+DROYfzHXi5xfLMdUWzssGN5uHQmE=";
+    sha256 = "0fpz63dfac1i6wwf5wp3v1vs3r5yzh05g95m5vidx56h0g4dcp44";
   };
 
   preBuild = ''
diff --git a/pkgs/development/tools/analysis/rr/default.nix b/pkgs/development/tools/analysis/rr/default.nix
index bda6f7e4e3c53..a667de3d5cb78 100644
--- a/pkgs/development/tools/analysis/rr/default.nix
+++ b/pkgs/development/tools/analysis/rr/default.nix
@@ -1,6 +1,6 @@
-{ lib, gcc9Stdenv, fetchFromGitHub, cmake, libpfm, zlib, pkg-config, python3Packages, which, procps, gdb, capnproto }:
+{ lib, stdenv, fetchFromGitHub, cmake, libpfm, zlib, pkg-config, python3Packages, which, procps, gdb, capnproto }:
 
-gcc9Stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   version = "5.5.0";
   pname = "rr";
 
@@ -17,9 +17,15 @@ gcc9Stdenv.mkDerivation rec {
     patchShebangs .
   '';
 
-  # TODO: remove this preConfigure hook after 5.2.0 since it is fixed upstream
-  # see https://github.com/mozilla/rr/issues/2269
-  preConfigure = ''substituteInPlace CMakeLists.txt --replace "std=c++11" "std=c++14"'';
+  # With LTO enabled, linking fails with the following message:
+  #
+  # src/AddressSpace.cc:1666: undefined reference to `rr_syscall_addr'
+  # ld.bfd: bin/rr: hidden symbol `rr_syscall_addr' isn't defined
+  # ld.bfd: final link failed: bad value
+  # collect2: error: ld returned 1 exit status
+  #
+  # See also https://github.com/NixOS/nixpkgs/pull/110846
+  preConfigure = ''substituteInPlace CMakeLists.txt --replace "-flto" ""'';
 
   nativeBuildInputs = [ cmake pkg-config which ];
   buildInputs = [
diff --git a/pkgs/development/tools/analysis/tfsec/default.nix b/pkgs/development/tools/analysis/tfsec/default.nix
index bea9e09855255..097fd30ea9a81 100644
--- a/pkgs/development/tools/analysis/tfsec/default.nix
+++ b/pkgs/development/tools/analysis/tfsec/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "tfsec";
-  version = "1.15.4";
+  version = "1.18.0";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-IYmS3Q2WWkOYISx0jI8yggArk0fhl3WQWrsc+Zfg8gU=";
+    sha256 = "sha256-lQo3rhPjKZV9XuuKYxd3jXqSiElj+O0DdERtmsMZMEw=";
   };
 
   ldflags = [
@@ -21,7 +21,7 @@ buildGoModule rec {
     # "-extldflags '-fno-PIC -static'"
   ];
 
-  vendorSha256 = "sha256-dF7x3oA2q4IuoXn8tcQAdRKWooeLoeBsQ1sAhOGwwM8=";
+  vendorSha256 = "sha256-n93ZP6sIyL5Q9UeDRXxm8KleDfUf2wd6JcTgSPtBGWg=";
 
   subPackages = [
     "cmd/tfsec"
diff --git a/pkgs/development/tools/apksigcopier/default.nix b/pkgs/development/tools/apksigcopier/default.nix
index cc23081473af6..f8747398c2229 100644
--- a/pkgs/development/tools/apksigcopier/default.nix
+++ b/pkgs/development/tools/apksigcopier/default.nix
@@ -1,10 +1,10 @@
 { lib
+, apksigner
+, bash
 , fetchFromGitHub
-, python3
 , installShellFiles
-, bash
 , pandoc
-, apksigner
+, python3
 }:
 
 python3.pkgs.buildPythonApplication rec {
@@ -18,33 +18,48 @@ python3.pkgs.buildPythonApplication rec {
     sha256 = "07ldq3q1x2lpb15q5s5i1pbg89sn6ah45amskm9pndqlh16z9k2x";
   };
 
-  nativeBuildInputs = [ installShellFiles pandoc ];
-  propagatedBuildInputs = with python3.pkgs; [ click ];
-  checkInputs = with python3.pkgs; [ flake8 mypy pylint ];
-  makeWrapperArgs = [ "--prefix" "PATH" ":" "${lib.makeBinPath [ apksigner ]}" ];
+  nativeBuildInputs = [
+    installShellFiles
+    pandoc
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    click
+  ];
+
+  makeWrapperArgs = [
+    "--prefix"
+    "PATH"
+    ":"
+    "${lib.makeBinPath [ apksigner ]}"
+  ];
 
   postPatch = ''
     substituteInPlace Makefile \
-      --replace /bin/bash ${bash}/bin/bash \
-      --replace 'apksigcopier --version' '${python3.interpreter} apksigcopier --version'
+      --replace /bin/bash ${bash}/bin/bash
   '';
 
   postBuild = ''
     make ${pname}.1
   '';
 
-  checkPhase = ''
-    make test
-  '';
-
   postInstall = ''
     installManPage ${pname}.1
   '';
 
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/apksigcopier --version | grep "${version}"
+    runHook postInstallCheck
+  '';
+
   meta = with lib; {
-    description = "Copy/extract/patch android apk signatures & compare apks";
+    description = "Copy/extract/patch android apk signatures & compare APKs";
     longDescription = ''
-      apksigcopier is a tool for copying android APK signatures from a signed APK to an unsigned one (in order to verify reproducible builds).
+      apksigcopier is a tool for copying android APK signatures from a signed
+      APK to an unsigned one (in order to verify reproducible builds).
       It can also be used to compare two APKs with different signatures.
       Its command-line tool offers four operations:
 
@@ -55,6 +70,6 @@ python3.pkgs.buildPythonApplication rec {
     '';
     homepage = "https://github.com/obfusk/apksigcopier";
     license = with licenses; [ gpl3Plus ];
-    maintainers = [ maintainers.obfusk ];
+    maintainers = with maintainers; [ obfusk ];
   };
 }
diff --git a/pkgs/development/tools/appthreat-depscan/default.nix b/pkgs/development/tools/appthreat-depscan/default.nix
index e93dfe845436e..5973b25decd62 100644
--- a/pkgs/development/tools/appthreat-depscan/default.nix
+++ b/pkgs/development/tools/appthreat-depscan/default.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "appthreat-depscan";
-  version = "2.1.2";
+  version = "2.1.3";
 
   src = fetchFromGitHub {
     owner = "AppThreat";
     repo = "dep-scan";
-    rev = "v${version}";
-    hash = "sha256-hRmTx0qs/QnDLl4KhGbKw5Mucq4wQCaCIkeObrZlJSI=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-6ifpPNBcqaNGVQjZQ3G48QuwTRRn4zL3awa06yOeveU=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/development/tools/asmfmt/default.nix b/pkgs/development/tools/asmfmt/default.nix
index dca74fa76b738..81f7aa764f27c 100644
--- a/pkgs/development/tools/asmfmt/default.nix
+++ b/pkgs/development/tools/asmfmt/default.nix
@@ -5,7 +5,7 @@
 
 buildGoPackage rec {
   pname = "asmfmt";
-  version = "1.2.3";
+  version = "1.3.2";
 
   goPackagePath = "github.com/klauspost/asmfmt";
 
@@ -13,7 +13,7 @@ buildGoPackage rec {
     owner = "klauspost";
     repo = "asmfmt";
     rev = "v${version}";
-    sha256 = "0f2cgwxs2b2kpq5348h8hjkcqc40p8ajapzpcy9ia2fsmsn2a2s4";
+    sha256 = "sha256-YxIVqPGsqxvOY0Qz4Jw5FuO9IbplCICjChosnHrSCgc=";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/development/tools/azcopy/default.nix b/pkgs/development/tools/azcopy/default.nix
index 27d1c866725ab..47a7bf723f027 100644
--- a/pkgs/development/tools/azcopy/default.nix
+++ b/pkgs/development/tools/azcopy/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "azure-storage-azcopy";
-  version = "10.13.0";
+  version = "10.14.1";
 
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "azure-storage-azcopy";
     rev = "v${version}";
-    sha256 = "sha256-L5gfS2hwk1uaWEygn+liupdANL9qizHAjxNz25KBwaY=";
+    sha256 = "sha256-UPn6pBttes5wq1RByE89QfE2OSUixYW4LOnFgfuAY3w=";
   };
 
   subPackages = [ "." ];
 
-  vendorSha256 = "sha256-ePEpc18Y99Moe/aj8n1+no6D70vZoIEjC023Uup98Uo=";
+  vendorSha256 = "sha256-9ThsJySzsyS0eX/0BlAAvtaeJpPYCP0cN1YgIShYrKw=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/azure-functions-core-tools/default.nix b/pkgs/development/tools/azure-functions-core-tools/default.nix
index 55720d2831103..d201c64f08341 100644
--- a/pkgs/development/tools/azure-functions-core-tools/default.nix
+++ b/pkgs/development/tools/azure-functions-core-tools/default.nix
@@ -11,7 +11,6 @@
 , libuuid
 , dotnetbuildhelpers
 , dotnetCorePackages
-, coreclr
 , openssl
 }:
 
diff --git a/pkgs/development/tools/bacon/default.nix b/pkgs/development/tools/bacon/default.nix
index 093a37e2b96d9..76478114df495 100644
--- a/pkgs/development/tools/bacon/default.nix
+++ b/pkgs/development/tools/bacon/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bacon";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "Canop";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-aOxwM9ur0E/biLOzhDyTCWYBwdbpsTQ49aCfkFea5ck=";
+    sha256 = "sha256-SlyJSBgFRLMQX68QGSTtffYL7mRROR+AF/Kix6f4miQ=";
   };
 
-  cargoSha256 = "sha256-AUoLwryuEdUdWasaHuap6qff8DRi90iq/v4afyG9beo=";
+  cargoSha256 = "sha256-TIENdbXpMWdsnyTIHCMpa0KJnzJPlrDZoKoAdjBw2uM=";
 
   buildInputs = lib.optional stdenv.isDarwin CoreServices;
 
diff --git a/pkgs/development/tools/bazel-gazelle/default.nix b/pkgs/development/tools/bazel-gazelle/default.nix
index 3d46a77108c70..0a6796185fbc3 100644
--- a/pkgs/development/tools/bazel-gazelle/default.nix
+++ b/pkgs/development/tools/bazel-gazelle/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     '';
     license = licenses.asl20;
     maintainers = with maintainers; [ kalbasit ];
+    mainProgram = "gazelle";
   };
 }
diff --git a/pkgs/development/tools/bazel-kazel/default.nix b/pkgs/development/tools/bazel-kazel/default.nix
index b3f58262b1dd5..9f51a44fbb8f0 100644
--- a/pkgs/development/tools/bazel-kazel/default.nix
+++ b/pkgs/development/tools/bazel-kazel/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/kubernetes/repo-infra";
     license = licenses.asl20;
     maintainers = with maintainers; [ kalbasit ];
+    mainProgram = "kazel";
   };
 }
diff --git a/pkgs/development/tools/bingo/bingo_version.patch b/pkgs/development/tools/bingo/bingo_version.patch
new file mode 100644
index 0000000000000..a3d85df6a9ce1
--- /dev/null
+++ b/pkgs/development/tools/bingo/bingo_version.patch
@@ -0,0 +1,13 @@
+diff --git a/pkg/version/version.go b/pkg/version/version.go
+index 30f8f30..11c12a0 100644
+--- a/pkg/version/version.go
++++ b/pkg/version/version.go
+@@ -6,7 +6,7 @@ package version
+ import "github.com/Masterminds/semver"
+ 
+ // Version returns 'bingo' version.
+-const Version = "v0.6"
++const Version = "v0.6.0"
+ 
+ var (
+ 	Go114 = semver.MustParse("1.14")
diff --git a/pkgs/development/tools/bingo/default.nix b/pkgs/development/tools/bingo/default.nix
index 8fe1dbaa4bea2..1b4ddd41c0e38 100644
--- a/pkgs/development/tools/bingo/default.nix
+++ b/pkgs/development/tools/bingo/default.nix
@@ -1,21 +1,23 @@
-{ lib, buildGoModule, fetchFromGitHub, testVersion, bingo }:
+{ lib, buildGoModule, fetchFromGitHub, testers, bingo }:
 
 buildGoModule rec {
   pname = "bingo";
-  version = "0.5.2";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "bwplotka";
     repo = "bingo";
     rev = "v${version}";
-    sha256 = "sha256-4D8YaA/AH1gIp5iwD7WEAdBl73sqwHpfOe7bnxVcRcw=";
+    sha256 = "sha256-t2nkY+mwek2NcbCwCkI3Mc1ULEJIjatBjChBdnKFAg8=";
   };
 
-  vendorSha256 = "sha256-xrz9FpwZd+FboVVTWSqGHRguGwrwE9cSFEEtulzbfDQ=";
+  vendorSha256 = "sha256-TCbwIHDg2YaLIscCoGPRBv5G3YSJ+qn/koOjPh+KKRY=";
 
   patches = [
     # Do not execute `go` command when invoking `bingo version`.
     ./version_go.patch
+    # Specific to v0.6.0. `v0.6` -> `v0.6.0`
+    ./bingo_version.patch
   ];
 
   postPatch = ''
@@ -26,7 +28,7 @@ buildGoModule rec {
 
   ldflags = [ "-s" "-w" ];
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = bingo;
     command = "bingo version";
     version = "v${version}";
diff --git a/pkgs/development/tools/buf/default.nix b/pkgs/development/tools/buf/default.nix
index 0f7904fe9bbbc..746233fb0dee9 100644
--- a/pkgs/development/tools/buf/default.nix
+++ b/pkgs/development/tools/buf/default.nix
@@ -3,23 +3,23 @@
 , fetchFromGitHub
 , protobuf
 , git
-, testVersion
+, testers
 , buf
 , installShellFiles
 }:
 
 buildGoModule rec {
   pname = "buf";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "bufbuild";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-rOT7HuvbJFRyBOmCNmx5Vic4zckYgS+1BB0PcpwD9OQ=";
+    sha256 = "sha256-cKb9pZYEsO1thgtl/8XFJHpNrO6P3OR8Lox/Gf9ccYk=";
   };
 
-  vendorSha256 = "sha256-qIWZYsl1hFV4Ts27WSyjQAQ+jWjtLLG+A+yS0Ms7hfI=";
+  vendorSha256 = "sha256-zXLvKEdiIFnmwWQBgbJHCEBe2i7FobgeUOnA3LvHl8w=";
 
   patches = [
     # Skip a test that requires networking to be available to work.
@@ -70,7 +70,7 @@ buildGoModule rec {
     runHook postInstall
   '';
 
-  passthru.tests.version = testVersion { package = buf; };
+  passthru.tests.version = testers.testVersion { package = buf; };
 
   meta = with lib; {
     homepage = "https://buf.build";
diff --git a/pkgs/development/tools/build-managers/apache-maven/default.nix b/pkgs/development/tools/build-managers/apache-maven/default.nix
index 3cc3f374045f1..001d0edf49ac7 100644
--- a/pkgs/development/tools/build-managers/apache-maven/default.nix
+++ b/pkgs/development/tools/build-managers/apache-maven/default.nix
@@ -4,13 +4,13 @@ assert jdk != null;
 
 stdenv.mkDerivation rec {
   pname = "apache-maven";
-  version = "3.8.4";
+  version = "3.8.5";
 
   builder = ./builder.sh;
 
   src = fetchurl {
     url = "mirror://apache/maven/maven-3/${version}/binaries/${pname}-${version}-bin.tar.gz";
-    sha256 = "sha256-LNycUZQnuyD9wlvvWpBjt5Dkq9kw57FLTp9IY9b58Tw=";
+    sha256 = "sha256-iOMHAPMqP2Dg0o0PEqNSXSm3wgxy0TAVPfW11tiQxnM=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix b/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
index a133526514f78..f519ce5233efe 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "bazel-remote";
-  version = "2.3.6";
+  version = "2.3.7";
 
   src = fetchFromGitHub {
     owner = "buchgr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-geb7uHCBvhmqyaDr8wK9sQUcHT3xVgSclovFDpHhIiw=";
+    sha256 = "sha256-5VxPCfartTRYCmjwNrH7SM0o7IQ4+Tq8Q2IM8hFWyVc=";
   };
 
   vendorSha256 = "sha256-wXgW7HigMIeUZAcZpm5TH9thfCHmpz+M42toWHgwIYo=";
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix
index 0ecf6300eb233..91131bc02c63c 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix
@@ -112,7 +112,8 @@ let
 
     src = srcDepsSet."java_tools_javac11_${system}-v4.0.zip";
 
-    nativeBuildInputs = [ autoPatchelfHook unzip ];
+    nativeBuildInputs = [ unzip ]
+      ++ lib.optional stdenv.isLinux autoPatchelfHook;
     buildInputs = [ gcc-unwrapped ];
 
     sourceRoot = ".";
@@ -278,12 +279,7 @@ stdenv'.mkDerivation rec {
       # fixed-output hashes of the fetch phase need to be spot-checked manually
       downstream = recurseIntoAttrs ({
         inherit bazel-watcher;
-      }
-          # dm-sonnet is only packaged for linux
-      // (lib.optionalAttrs stdenv.isLinux {
-          # TODO(timokau) dm-sonnet is broken currently
-          # dm-sonnet-linux = python3.pkgs.dm-sonnet;
-      }));
+      });
     };
 
   # update the list of workspace dependencies
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix
index 3adf52ec905ea..f9bcab19fe025 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix
@@ -112,7 +112,8 @@ let
 
     src = srcDepsSet."java_tools_javac11_${system}-v6.1.zip";
 
-    nativeBuildInputs = [ autoPatchelfHook unzip ];
+    nativeBuildInputs = [ unzip ]
+      ++ lib.optional stdenv.isLinux autoPatchelfHook;
     buildInputs = [ gcc-unwrapped ];
 
     sourceRoot = ".";
@@ -279,12 +280,7 @@ stdenv'.mkDerivation rec {
       # fixed-output hashes of the fetch phase need to be spot-checked manually
       downstream = recurseIntoAttrs ({
         inherit bazel-watcher;
-      }
-          # dm-sonnet is only packaged for linux
-      // (lib.optionalAttrs stdenv.isLinux {
-          # TODO(timokau) dm-sonnet is broken currently
-          # dm-sonnet-linux = python3.pkgs.dm-sonnet;
-      }));
+      });
     };
 
   # update the list of workspace dependencies
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
index 3c71c8cc08919..69a61a7188603 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
@@ -117,7 +117,8 @@ let
 
     src = srcDepsSet."java_tools_javac11_${system}-v10.0.zip";
 
-    nativeBuildInputs = [ autoPatchelfHook unzip ];
+    nativeBuildInputs = [ unzip ]
+      ++ lib.optional stdenv.isLinux autoPatchelfHook;
     buildInputs = [ gcc-unwrapped ];
 
     sourceRoot = ".";
@@ -185,6 +186,8 @@ stdenv.mkDerivation rec {
     # we accept this fact because xcode_locator is only a short-lived process used during the build.
     ./no-arc.patch
 
+    ./gcc11.patch
+
     # --experimental_strict_action_env (which may one day become the default
     # see bazelbuild/bazel#2574) hardcodes the default
     # action environment to a non hermetic value (e.g. "/usr/local/bin").
@@ -300,12 +303,7 @@ stdenv.mkDerivation rec {
       # fixed-output hashes of the fetch phase need to be spot-checked manually
       downstream = recurseIntoAttrs ({
         inherit bazel-watcher;
-      }
-          # dm-sonnet is only packaged for linux
-      // (lib.optionalAttrs stdenv.isLinux {
-          # TODO(timokau) dm-sonnet is broken currently
-          # dm-sonnet-linux = python3.pkgs.dm-sonnet;
-      }));
+      });
     };
 
   # update the list of workspace dependencies
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_3/gcc11.patch b/pkgs/development/tools/build-managers/bazel/bazel_3/gcc11.patch
new file mode 100644
index 0000000000000..450bcd114776a
--- /dev/null
+++ b/pkgs/development/tools/build-managers/bazel/bazel_3/gcc11.patch
@@ -0,0 +1,24 @@
+diff --git a/third_party/ijar/mapped_file_unix.cc b/third_party/ijar/mapped_file_unix.cc
+index 6e3a908..030e9ca 100644
+--- a/third_party/ijar/mapped_file_unix.cc
++++ b/third_party/ijar/mapped_file_unix.cc
+@@ -19,6 +19,7 @@
+ #include <sys/mman.h>
+ 
+ #include <algorithm>
++#include <limits>
+ 
+ #include "third_party/ijar/mapped_file.h"
+ 
+diff --git a/third_party/ijar/zlib_client.h b/third_party/ijar/zlib_client.h
+index ed66163..c4b051e 100644
+--- a/third_party/ijar/zlib_client.h
++++ b/third_party/ijar/zlib_client.h
+@@ -16,6 +16,7 @@
+ #define THIRD_PARTY_IJAR_ZLIB_CLIENT_H_
+ 
+ #include <limits.h>
++#include <limits>
+ 
+ #include "third_party/ijar/common.h"
+ 
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
index 72c971d1334d0..03006fe6fbeec 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
@@ -142,7 +142,8 @@ let
 
     src = srcDepsSet."java_tools_javac11_${system}-v10.6.zip";
 
-    nativeBuildInputs = [ autoPatchelfHook unzip ];
+    nativeBuildInputs = [ unzip ]
+      ++ lib.optional stdenv.isLinux autoPatchelfHook;
     buildInputs = [ gcc-unwrapped ];
 
     sourceRoot = ".";
@@ -337,12 +338,7 @@ stdenv.mkDerivation rec {
       # fixed-output hashes of the fetch phase need to be spot-checked manually
       downstream = recurseIntoAttrs ({
         inherit bazel-watcher;
-      }
-          # dm-sonnet is only packaged for linux
-      // (lib.optionalAttrs stdenv.isLinux {
-          # TODO(timokau) dm-sonnet is broken currently
-          # dm-sonnet-linux = python3.pkgs.dm-sonnet;
-      }));
+      });
     };
 
   src_for_updater = stdenv.mkDerivation rec {
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_5/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_5/default.nix
index 8770174ab26ca..253fe8a67dd10 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_5/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_5/default.nix
@@ -26,12 +26,12 @@
 }:
 
 let
-  version = "5.0.0";
+  version = "5.1.1";
   sourceRoot = ".";
 
   src = fetchurl {
     url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
-    sha256 = "By3WLSN9vBHgusAuEY2MLbTQujugnxoOseKkYPuEGds=";
+    sha256 = "f107wdNEaSskAPN2X9S1wLY26056insXkjCVx7VqT3g=";
   };
 
   # Update with `eval $(nix-build -A bazel.updater)`,
@@ -300,12 +300,7 @@ stdenv.mkDerivation rec {
       # fixed-output hashes of the fetch phase need to be spot-checked manually
       downstream = recurseIntoAttrs ({
         inherit bazel-watcher;
-      }
-          # dm-sonnet is only packaged for linux
-      // (lib.optionalAttrs stdenv.isLinux {
-          # TODO(timokau) dm-sonnet is broken currently
-          # dm-sonnet-linux = python3.pkgs.dm-sonnet;
-      }));
+      });
     };
 
   src_for_updater = stdenv.mkDerivation rec {
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_5/src-deps.json b/pkgs/development/tools/build-managers/bazel/bazel_5/src-deps.json
index ff010d01aa086..5282e9efc3c11 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_5/src-deps.json
+++ b/pkgs/development/tools/build-managers/bazel/bazel_5/src-deps.json
@@ -15,6 +15,14 @@
             "https://github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz"
         ]
     },
+    "20211102.0.tar.gz": {
+        "name": "20211102.0.tar.gz",
+        "sha256": "dcf71b9cba8dc0ca9940c4b316a0c796be8fab42b070bb6b7cab62b48f0e66c4",
+        "urls": [
+            "https://mirror.bazel.build/github.com/abseil/abseil-cpp/archive/refs/tags/20211102.0.tar.gz",
+            "https://github.com/abseil/abseil-cpp/archive/refs/tags/20211102.0.tar.gz"
+        ]
+    },
     "2de300726a1ba2de9a468468dc5ff9ed17a3215f.tar.gz": {
         "name": "2de300726a1ba2de9a468468dc5ff9ed17a3215f.tar.gz",
         "sha256": "6a5f67874af66b239b709c572ac1a5a00fdb1b29beaf13c3e6f79b1ba10dc7c4",
@@ -47,14 +55,6 @@
             "https://github.com/bazelbuild/rules_proto/archive/7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz"
         ]
     },
-    "997aaf3a28308eba1b9156aa35ab7bca9688e9f6.tar.gz": {
-        "name": "997aaf3a28308eba1b9156aa35ab7bca9688e9f6.tar.gz",
-        "sha256": "35f22ef5cb286f09954b7cc4c85b5a3f6221c9d4df6b8c4a1e9d399555b366ee",
-        "urls": [
-            "https://mirror.bazel.build/github.com/abseil/abseil-cpp/archive/997aaf3a28308eba1b9156aa35ab7bca9688e9f6.tar.gz",
-            "https://github.com/abseil/abseil-cpp/archive/997aaf3a28308eba1b9156aa35ab7bca9688e9f6.tar.gz"
-        ]
-    },
     "aecba11114cf1fac5497aeb844b6966106de3eb6.tar.gz": {
         "name": "aecba11114cf1fac5497aeb844b6966106de3eb6.tar.gz",
         "sha256": "9f385e146410a8150b6f4cb1a57eab7ec806ced48d427554b1e754877ff26c3e",
@@ -282,7 +282,8 @@
             "-p1"
         ],
         "patches": [
-            "//third_party/grpc:grpc_1.41.0.patch"
+            "//third_party/grpc:grpc_1.41.0.patch",
+            "//third_party/grpc:grpc_1.41.0.win_arm64.patch"
         ],
         "sha256": "e5fb30aae1fa1cffa4ce00aa0bbfab908c0b899fcf0bbc30e268367d660d8656",
         "strip_prefix": "grpc-1.41.0",
@@ -292,14 +293,14 @@
         ]
     },
     "com_google_absl": {
-        "generator_function": "grpc_deps",
+        "generator_function": "dist_http_archive",
         "generator_name": "com_google_absl",
         "name": "com_google_absl",
-        "sha256": "35f22ef5cb286f09954b7cc4c85b5a3f6221c9d4df6b8c4a1e9d399555b366ee",
-        "strip_prefix": "abseil-cpp-997aaf3a28308eba1b9156aa35ab7bca9688e9f6",
+        "sha256": "dcf71b9cba8dc0ca9940c4b316a0c796be8fab42b070bb6b7cab62b48f0e66c4",
+        "strip_prefix": "abseil-cpp-20211102.0",
         "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/abseil/abseil-cpp/archive/997aaf3a28308eba1b9156aa35ab7bca9688e9f6.tar.gz",
-            "https://github.com/abseil/abseil-cpp/archive/997aaf3a28308eba1b9156aa35ab7bca9688e9f6.tar.gz"
+            "https://mirror.bazel.build/github.com/abseil/abseil-cpp/archive/refs/tags/20211102.0.tar.gz",
+            "https://github.com/abseil/abseil-cpp/archive/refs/tags/20211102.0.tar.gz"
         ]
     },
     "com_google_googleapis": {
@@ -772,6 +773,13 @@
             "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-4.2.1.tar"
         ]
     },
+    "microsoft-jdk-11.0.13.8.1-windows-aarch64.zip": {
+        "name": "microsoft-jdk-11.0.13.8.1-windows-aarch64.zip",
+        "sha256": "b8a28e6e767d90acf793ea6f5bed0bb595ba0ba5ebdf8b99f395266161e53ec2",
+        "urls": [
+            "https://mirror.bazel.build/aka.ms/download-jdk/microsoft-jdk-11.0.13.8.1-windows-aarch64.zip"
+        ]
+    },
     "opencensus_proto": {
         "generator_function": "grpc_deps",
         "generator_name": "opencensus_proto",
@@ -820,6 +828,15 @@
             "https://mirror.bazel.build/openjdk/azul-zulu11.50.19-ca-jdk11.0.12/zulu11.50.19-ca-jdk11.0.12-win_x64.zip"
         ]
     },
+    "openjdk11_windows_arm64_archive": {
+        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+        "name": "openjdk11_windows_arm64_archive",
+        "sha256": "b8a28e6e767d90acf793ea6f5bed0bb595ba0ba5ebdf8b99f395266161e53ec2",
+        "strip_prefix": "jdk-11.0.13+8",
+        "urls": [
+            "https://mirror.bazel.build/aka.ms/download-jdk/microsoft-jdk-11.0.13.8.1-windows-aarch64.zip"
+        ]
+    },
     "openjdk15_darwin_aarch64_archive": {
         "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
         "name": "openjdk15_darwin_aarch64_archive",
@@ -940,6 +957,18 @@
             "https://cdn.azul.com/zulu/bin/zulu17.28.13-ca-jdk17.0.0-win_x64.zip"
         ]
     },
+    "openjdk17_windows_arm64_archive": {
+        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+        "generator_function": "dist_http_archive",
+        "generator_name": "openjdk17_windows_arm64_archive",
+        "name": "openjdk17_windows_arm64_archive",
+        "sha256": "811d7e7591bac4f081dfb00ba6bd15b6fc5969e1f89f0f327ef75147027c3877",
+        "strip_prefix": "zulu17.30.15-ca-jdk17.0.1-win_aarch64",
+        "urls": [
+            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip",
+            "https://cdn.azul.com/zulu/bin/zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip"
+        ]
+    },
     "openjdk_linux": {
         "downloaded_file_path": "zulu-linux.tar.gz",
         "name": "openjdk_linux",
@@ -1063,6 +1092,14 @@
             "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689080.zip"
         ]
     },
+    "openjdk_win_arm64_vanilla": {
+        "downloaded_file_path": "zulu-win-arm64.zip",
+        "name": "openjdk_win_arm64_vanilla",
+        "sha256": "811d7e7591bac4f081dfb00ba6bd15b6fc5969e1f89f0f327ef75147027c3877",
+        "urls": [
+            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip"
+        ]
+    },
     "openjdk_win_minimal": {
         "downloaded_file_path": "zulu-win-minimal.zip",
         "name": "openjdk_win_minimal",
@@ -1472,6 +1509,25 @@
             "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
         ]
     },
+    "remotejdk11_win_arm64_for_testing": {
+        "build_file": "@local_jdk//:BUILD.bazel",
+        "generator_function": "dist_http_archive",
+        "generator_name": "remotejdk11_win_arm64_for_testing",
+        "name": "remotejdk11_win_arm64_for_testing",
+        "patch_cmds": [
+            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+            "echo >> BUILD.bazel",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "b8a28e6e767d90acf793ea6f5bed0bb595ba0ba5ebdf8b99f395266161e53ec2",
+        "strip_prefix": "jdk-11.0.13+8",
+        "urls": [
+            "https://mirror.bazel.build/aka.ms/download-jdk/microsoft-jdk-11.0.13.8.1-windows-aarch64.zip"
+        ]
+    },
     "remotejdk11_win_for_testing": {
         "build_file": "@local_jdk//:BUILD.bazel",
         "name": "remotejdk11_win_for_testing",
@@ -1768,6 +1824,26 @@
             "https://cdn.azul.com/zulu/bin/zulu17.28.13-ca-jdk17.0.0-macosx_x64.tar.gz"
         ]
     },
+    "remotejdk17_win_arm64_for_testing": {
+        "build_file": "@local_jdk//:BUILD.bazel",
+        "generator_function": "dist_http_archive",
+        "generator_name": "remotejdk17_win_arm64_for_testing",
+        "name": "remotejdk17_win_arm64_for_testing",
+        "patch_cmds": [
+            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+            "echo >> BUILD.bazel",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "811d7e7591bac4f081dfb00ba6bd15b6fc5969e1f89f0f327ef75147027c3877",
+        "strip_prefix": "zulu17.30.15-ca-jdk17.0.1-win_aarch64",
+        "urls": [
+            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip",
+            "https://cdn.azul.com/zulu/bin/zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip"
+        ]
+    },
     "remotejdk17_win_for_testing": {
         "build_file": "@local_jdk//:BUILD.bazel",
         "name": "remotejdk17_win_for_testing",
@@ -1986,5 +2062,13 @@
         "urls": [
             "https://mirror.bazel.build/openjdk/azul-zulu11.50.19-ca-jdk11.0.12/zulu11.50.19-ca-jdk11.0.12-win_x64.zip"
         ]
+    },
+    "zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip": {
+        "name": "zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip",
+        "sha256": "811d7e7591bac4f081dfb00ba6bd15b6fc5969e1f89f0f327ef75147027c3877",
+        "urls": [
+            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip",
+            "https://cdn.azul.com/zulu/bin/zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip"
+        ]
     }
 }
diff --git a/pkgs/development/tools/build-managers/bazel/buildtools/default.nix b/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
index b0375db8c65ca..cd313a5bc50bf 100644
--- a/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "bazel-buildtools";
-  version = "5.0.1";
+  version = "5.1.0";
 
   src = fetchFromGitHub {
     owner = "bazelbuild";
     repo = "buildtools";
     rev = version;
-    sha256 = "sha256-AIOfudFxr1obuxABEN0ggainci/EjbBrdgr2cjVu2Io=";
+    sha256 = "sha256-PNIqsP5p+OdYH0JgOmjqvge9zVOrAcNg0FMflXFJHwQ=";
   };
 
-  vendorSha256 = "sha256-buMkRxVLlS2LBJGaGWeR41BsmE/0vgDS8s1VcRYN0fA=";
+  vendorSha256 = "sha256-9WUjQhXWkpSEJj9Xq+9rOe3I1VZ7nqMTnX7DPl+rxsU=";
 
   preBuild = ''
     rm -r warn/docs
diff --git a/pkgs/development/tools/build-managers/bloop/default.nix b/pkgs/development/tools/build-managers/bloop/default.nix
index 11b25bec3816d..0649b0c86c6db 100644
--- a/pkgs/development/tools/build-managers/bloop/default.nix
+++ b/pkgs/development/tools/build-managers/bloop/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   bloop-coursier-channel = fetchurl {
     url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bloop-coursier.json";
-    sha256 = "bf3uHuGfmJukf0Qeudv8ZXz/9Uql/qsmvPS0XBb7oTQ=";
+    sha256 = "VbvBAz7mXhgQtbrlB6uCSmZXLcdYaROJRSREbazAReo=";
   };
 
   bloop-bash = fetchurl {
@@ -60,13 +60,14 @@ stdenv.mkDerivation rec {
 
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash = if stdenv.isLinux && stdenv.isx86_64 then "sha256-jqcecAM51qEDmTim2VBNm8IO8wQmwU19R57Zk4pxwSA="
-    else if stdenv.isDarwin && stdenv.isx86_64 then "sha256-WJytRIbsygi4zoIVfkJmzWyFe2p8mQuT4DDO5KDKopY="
+    outputHash = if stdenv.isLinux && stdenv.isx86_64 then "sha256-AiF/ih15Jd0WuDP/0vU0vdaSo3FGjWXos+hNVBayFz4="
+    else if stdenv.isDarwin && stdenv.isx86_64 then "sha256-LD23YpcNhWfioGDMqb1plqLy87ZHzT0zvIyc4O4WP5g="
     else throw "unsupported platform";
   };
 
   dontUnpack = true;
-  nativeBuildInputs = [ autoPatchelfHook installShellFiles makeWrapper ];
+  nativeBuildInputs = [ installShellFiles makeWrapper ]
+    ++ lib.optional stdenv.isLinux autoPatchelfHook;
   buildInputs = [ stdenv.cc.cc.lib zlib ];
   propagatedBuildInputs = [ jre ];
 
diff --git a/pkgs/development/tools/build-managers/build2/default.nix b/pkgs/development/tools/build-managers/build2/default.nix
index 7af0089117a4a..7b64c14e2ec32 100644
--- a/pkgs/development/tools/build-managers/build2/default.nix
+++ b/pkgs/development/tools/build-managers/build2/default.nix
@@ -94,5 +94,6 @@ stdenv.mkDerivation rec {
     changelog = "https://git.build2.org/cgit/build2/tree/NEWS";
     platforms = platforms.all;
     maintainers = with maintainers; [ hiro98 r-burns ];
+    mainProgram = "b";
   };
 }
diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix
index 47abc7ec767b6..cf2fe926ddb08 100644
--- a/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/pkgs/development/tools/build-managers/cmake/default.nix
@@ -17,11 +17,11 @@ stdenv.mkDerivation rec {
     + lib.optionalString isBootstrap "-boot"
     + lib.optionalString useNcurses "-cursesUI"
     + lib.optionalString withQt5 "-qt5UI";
-  version = "3.22.2";
+  version = "3.22.3";
 
   src = fetchurl {
     url = "https://cmake.org/files/v${lib.versions.majorMinor version}/cmake-${version}.tar.gz";
-    sha256 = "sha256-PBxHi5ZQsQfUUsW9VFxy4vrU43wJuJoZhLmi9G32rO0=";
+    sha256 = "sha256-n4RpFm+UVTtpeKFu4pIn7Emi61zrYIJ13sQNiuDRtaA=";
   };
 
   patches = [
diff --git a/pkgs/development/tools/build-managers/conan/default.nix b/pkgs/development/tools/build-managers/conan/default.nix
index e4a616f9995e3..78e54028cc9cd 100644
--- a/pkgs/development/tools/build-managers/conan/default.nix
+++ b/pkgs/development/tools/build-managers/conan/default.nix
@@ -32,34 +32,25 @@ let newPython = python3.override {
         "test_ec_verify_should_return_false_if_signature_invalid"
       ];
     });
-    # conan needs jinja2<3
-    jinja2 = super.jinja2.overridePythonAttrs (oldAttrs: rec {
-      version = "2.11.3";
+    distro = super.distro.overridePythonAttrs (oldAttrs: rec {
+      version = "1.5.0";
       src = oldAttrs.src.override {
         inherit version;
-        sha256 = "a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6";
-      };
-    });
-    # old jinja2 needs old markupsafe
-    markupsafe = super.markupsafe.overridePythonAttrs (oldAttrs: rec {
-      version = "1.1.1";
-      src = oldAttrs.src.override {
-        inherit version;
-        sha256 = "29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b";
+        sha256 = "14nz51cqlnxmgfqqilxyvjwwa5xfivdvlm0d0b1qzgcgwdm7an0f";
       };
     });
   };
 };
 
 in newPython.pkgs.buildPythonApplication rec {
-  version = "1.43.1";
+  version = "1.47.0";
   pname = "conan";
 
   src = fetchFromGitHub {
     owner = "conan-io";
     repo = "conan";
     rev = version;
-    sha256 = "0jwi7smgy2d9m49igijqr2p4ncw5nksjbijj8fzjvf1lgxgnyjhr";
+    sha256 = "1zs2xb22rsy5fsc0fd7c95vrx1mfz7vasyg1lqkzyfimvn5zah6n";
   };
 
   propagatedBuildInputs = with newPython.pkgs; [
diff --git a/pkgs/development/tools/build-managers/go-mk/default.nix b/pkgs/development/tools/build-managers/go-mk/default.nix
index f543d60da9572..2fff2f67edbf2 100644
--- a/pkgs/development/tools/build-managers/go-mk/default.nix
+++ b/pkgs/development/tools/build-managers/go-mk/default.nix
@@ -26,6 +26,7 @@ buildGoPackage rec {
     '';
     license = licenses.bsd2;
     maintainers = with maintainers; [ AndersonTorres ];
+    mainProgram = "mk";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/build-managers/meson/default.nix b/pkgs/development/tools/build-managers/meson/default.nix
index 8744407fb96d8..d8c92bc82d6ef 100644
--- a/pkgs/development/tools/build-managers/meson/default.nix
+++ b/pkgs/development/tools/build-managers/meson/default.nix
@@ -10,11 +10,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "meson";
-  version = "0.60.3";
+  version = "0.61.2";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    hash = "sha256-h8pfqTWKAYZFKTkr1k4CcVjrlK/KfHdmsYZu8n7MuY4=";
+    hash = "sha256-AjOn+NlZB5MY9gUrCTnCf2il3oa6YB8lye5oaftfWIk=";
   };
 
   patches = [
@@ -58,10 +58,6 @@ python3.pkgs.buildPythonApplication rec {
     # unsandboxed non-NixOS builds, see:
     # https://github.com/NixOS/nixpkgs/issues/86131#issuecomment-711051774
     ./boost-Do-not-add-system-paths-on-nix.patch
-
-    # Meson tries to update ld.so.cache which breaks when the target architecture
-    # differs from the build host's.
-    ./do-not-update-ldconfig-cache.patch
   ] ++ lib.optionals withDarwinFrameworksGtkDocPatch [
     # Fix building gtkdoc for GLib
     # https://github.com/mesonbuild/meson/pull/10186
diff --git a/pkgs/development/tools/build-managers/meson/do-not-update-ldconfig-cache.patch b/pkgs/development/tools/build-managers/meson/do-not-update-ldconfig-cache.patch
deleted file mode 100644
index 884023aaa7eb4..0000000000000
--- a/pkgs/development/tools/build-managers/meson/do-not-update-ldconfig-cache.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/mesonbuild/minstall.py b/mesonbuild/minstall.py
-index cb87faf5c..878ec4cd6 100644
---- a/mesonbuild/minstall.py
-+++ b/mesonbuild/minstall.py
-@@ -551,7 +551,6 @@ class Installer:
-                 self.install_emptydir(d, dm, destdir, fullprefix)
-                 self.install_data(d, dm, destdir, fullprefix)
-                 self.restore_selinux_contexts(destdir)
--                self.apply_ldconfig(dm, destdir)
-                 self.run_install_script(d, destdir, fullprefix)
-                 if not self.did_install_something:
-                     self.log('Nothing to install.')
diff --git a/pkgs/development/tools/build-managers/meson/fix-gtkdoc-when-using-multiple-apple-frameworks.patch b/pkgs/development/tools/build-managers/meson/fix-gtkdoc-when-using-multiple-apple-frameworks.patch
index eb6d9718bcb21..6c237e92dd11c 100644
--- a/pkgs/development/tools/build-managers/meson/fix-gtkdoc-when-using-multiple-apple-frameworks.patch
+++ b/pkgs/development/tools/build-managers/meson/fix-gtkdoc-when-using-multiple-apple-frameworks.patch
@@ -1,4 +1,4 @@
-From 0a008a6c7ecee19f35c8b7ab17b1470d0d1a8a15 Mon Sep 17 00:00:00 2001
+From b8ba462ae72e0818898357464263ec84722f6d4c Mon Sep 17 00:00:00 2001
 From: Jan Tojnar <jtojnar@gmail.com>
 Date: Sat, 26 Mar 2022 02:26:27 +0100
 Subject: [PATCH] gnome: Fix gtkdoc when using multiple Apple frameworks
@@ -11,13 +11,16 @@ Picked from https://github.com/mesonbuild/meson/pull/10186
 Also pick https://github.com/mesonbuild/meson/commit/68e684d51f1e469e0d9f4b499ffda15146cad98a when resolving conflict.
 
 diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
-index 7113f28d2..d3269b53f 100644
+index 214f97ac3..0521b2605 100644
 --- a/mesonbuild/modules/gnome.py
 +++ b/mesonbuild/modules/gnome.py
-@@ -384,13 +384,14 @@ class GnomeModule(ExtensionModule):
-     def _get_link_args(self, state, lib, depends, include_rpath=False,
-                        use_gir_args=False):
-         link_command = []
+@@ -593,15 +593,16 @@ class GnomeModule(ExtensionModule):
+                        lib: T.Union[build.SharedLibrary, build.StaticLibrary],
+                        depends: T.List[build.BuildTarget],
+                        include_rpath: bool = False,
+-                       use_gir_args: bool = False) -> T.List[str]:
++                       use_gir_args: bool = False) -> T.Tuple[T.List[str], T.List[T.Union[build.BuildTarget, 'build.GeneratedTypes', 'FileOrString']]]:
+         link_command: T.List[str] = []
 +        new_depends = list(depends)
          # Construct link args
          if isinstance(lib, build.SharedLibrary):
@@ -30,42 +33,36 @@ index 7113f28d2..d3269b53f 100644
              # Needed for the following binutils bug:
              # https://github.com/mesonbuild/meson/issues/1911
              # However, g-ir-scanner does not understand -Wl,-rpath
-@@ -404,18 +405,24 @@ class GnomeModule(ExtensionModule):
+@@ -615,19 +616,19 @@ class GnomeModule(ExtensionModule):
              link_command.append('--extra-library=' + lib.name)
          else:
              link_command.append('-l' + lib.name)
 -        return link_command
--
--    def _get_dependencies_flags(self, deps, state, depends, include_rpath=False,
--                                use_gir_args=False, separate_nodedup=False):
--        cflags = OrderedSet()
--        internal_ldflags = OrderedSet()
--        external_ldflags = OrderedSet()
 +        return link_command, new_depends
-+
+ 
+-    def _get_dependencies_flags(
 +    def _get_dependencies_flags_raw(
-+            self, deps,
-+            state,
-+            depends,
-+            include_rpath: bool = False,
-+            use_gir_args: bool = False,
-+            ) -> T.Tuple[OrderedSet[str], OrderedSet[T.Union[str, T.Tuple[str, str]]], OrderedSet[T.Union[str, T.Tuple[str, str]]], OrderedSet[str],
-+                         T.List]:
-+        cflags: OrderedSet[str] = OrderedSet()
+             self, deps: T.Sequence[T.Union['Dependency', build.SharedLibrary, build.StaticLibrary]],
+-            state: 'ModuleState', depends: T.List[build.BuildTarget], include_rpath: bool = False,
+-            use_gir_args: bool = False, separate_nodedup: bool = False
+-            ) -> T.Tuple[OrderedSet[str], OrderedSet[str], OrderedSet[str], T.Optional[T.List[str]], OrderedSet[str]]:
++            state: 'ModuleState', depends: T.List[build.BuildTarget], include_rpath: bool,
++            use_gir_args: bool
++            ) -> T.Tuple[OrderedSet[str], OrderedSet[T.Union[str, T.Tuple[str, str]]], OrderedSet[T.Union[str, T.Tuple[str, str]]], T.Optional[T.List[str]], OrderedSet[str],
++                         T.List[T.Union[build.BuildTarget, 'build.GeneratedTypes', 'FileOrString']]]:
+         cflags: OrderedSet[str] = OrderedSet()
+-        internal_ldflags: OrderedSet[str] = OrderedSet()
+-        external_ldflags: OrderedSet[str] = OrderedSet()
          # External linker flags that can't be de-duped reliably because they
 -        # require two args in order, such as -framework AVFoundation
--        external_ldflags_nodedup = []
--        gi_includes = OrderedSet()
+-        external_ldflags_nodedup: T.List[str] = []
 +        # require two args in order, such as -framework AVFoundation will be stored as a tuple.
 +        internal_ldflags: OrderedSet[T.Union[str, T.Tuple[str, str]]] = OrderedSet()
 +        external_ldflags: OrderedSet[T.Union[str, T.Tuple[str, str]]] = OrderedSet()
-+        gi_includes: OrderedSet[str] = OrderedSet()
+         gi_includes: OrderedSet[str] = OrderedSet()
          deps = mesonlib.listify(deps)
-+        depends = list(depends)
  
-         for dep in deps:
-             if isinstance(dep, Dependency):
-@@ -427,21 +434,20 @@ class GnomeModule(ExtensionModule):
+@@ -642,21 +643,20 @@ class GnomeModule(ExtensionModule):
                  cflags.update(state.get_include_args(dep.include_directories))
                  for lib in dep.libraries:
                      if isinstance(lib, build.SharedLibrary):
@@ -95,21 +92,21 @@ index 7113f28d2..d3269b53f 100644
                  for source in dep.sources:
                      if isinstance(source, GirTarget):
                          gi_includes.update([os.path.join(state.environment.get_build_dir(),
-@@ -469,7 +475,7 @@ class GnomeModule(ExtensionModule):
+@@ -684,7 +684,7 @@ class GnomeModule(ExtensionModule):
                      # If it's a framework arg, slurp the framework name too
                      # to preserve the order of arguments
-                     if lib == '-framework':
--                        external_ldflags_nodedup += [lib, next(ldflags)]
-+                        external_ldflags.update([(lib, next(ldflags))])
+                     if flag == '-framework':
+-                        external_ldflags_nodedup += [flag, next(ldflags)]
++                        external_ldflags.update([(flag, next(ldflags))])
                      else:
-                         external_ldflags.update([lib])
+                         external_ldflags.update([flag])
              elif isinstance(dep, (build.StaticLibrary, build.SharedLibrary)):
-@@ -480,21 +486,43 @@ class GnomeModule(ExtensionModule):
+@@ -695,21 +695,41 @@ class GnomeModule(ExtensionModule):
                  continue
  
          if use_gir_args and self._gir_has_option('--extra-library'):
--            def fix_ldflags(ldflags):
--                fixed_ldflags = OrderedSet()
+-            def fix_ldflags(ldflags: T.Iterable[str]) -> OrderedSet[str]:
+-                fixed_ldflags: OrderedSet[str] = OrderedSet()
 +            def fix_ldflags(ldflags: T.Iterable[T.Union[str, T.Tuple[str, str]]]) -> OrderedSet[T.Union[str, T.Tuple[str, str]]]:
 +                fixed_ldflags: OrderedSet[T.Union[str, T.Tuple[str, str]]] = OrderedSet()
                  for ldflag in ldflags:
@@ -122,19 +119,17 @@ index 7113f28d2..d3269b53f 100644
              external_ldflags = fix_ldflags(external_ldflags)
 -        if not separate_nodedup:
 -            external_ldflags.update(external_ldflags_nodedup)
--            return cflags, internal_ldflags, external_ldflags, gi_includes
+-            return cflags, internal_ldflags, external_ldflags, None, gi_includes
 -        else:
 -            return cflags, internal_ldflags, external_ldflags, external_ldflags_nodedup, gi_includes
 +        return cflags, internal_ldflags, external_ldflags, gi_includes, depends
 +
 +    def _get_dependencies_flags(
-+            self, deps,
-+            state,
-+            depends,
-+            include_rpath: bool = False,
-+            use_gir_args: bool = False,
++            self, deps: T.Sequence[T.Union['Dependency', build.SharedLibrary, build.StaticLibrary]],
++            state: 'ModuleState', depends: T.List[build.BuildTarget], include_rpath: bool = False,
++            use_gir_args: bool = False
 +            ) -> T.Tuple[OrderedSet[str], T.List[str], T.List[str], OrderedSet[str],
-+                         T.List]:
++                         T.List[T.Union[build.BuildTarget, 'build.GeneratedTypes', 'FileOrString']]]:
 +
 +        cflags, internal_ldflags_raw, external_ldflags_raw, gi_includes, depends = self._get_dependencies_flags_raw(deps, state, depends, include_rpath, use_gir_args)
 +        internal_ldflags: T.List[str] = []
@@ -153,24 +148,15 @@ index 7113f28d2..d3269b53f 100644
 +                external_ldflags.extend(ldflag)
  
 +        return cflags, internal_ldflags, external_ldflags, gi_includes, depends
-     def _unwrap_gir_target(self, girtarget, state):
+     def _unwrap_gir_target(self, girtarget: T.Union[build.Executable, build.StaticLibrary, build.SharedLibrary], state: 'ModuleState'
+                            ) -> T.Union[build.Executable, build.StaticLibrary, build.SharedLibrary]:
          if not isinstance(girtarget, (build.Executable, build.SharedLibrary,
-                                       build.StaticLibrary)):
-@@ -875,7 +903,7 @@ class GnomeModule(ExtensionModule):
+@@ -1056,7 +1076,7 @@ class GnomeModule(ExtensionModule):
          # ldflags will be misinterpreted by gir scanner (showing
          # spurious dependencies) but building GStreamer fails if they
          # are not used here.
--        dep_cflags, dep_internal_ldflags, dep_external_ldflags, gi_includes = \
+-        dep_cflags, dep_internal_ldflags, dep_external_ldflags, _, gi_includes = \
 +        dep_cflags, dep_internal_ldflags, dep_external_ldflags, gi_includes, depends = \
              self._get_dependencies_flags(deps, state, depends, use_gir_args=True)
          scan_cflags = []
          scan_cflags += list(self._get_scanner_cflags(cflags))
-@@ -1170,7 +1198,7 @@ class GnomeModule(ExtensionModule):
-         deps = extract_as_list(kwargs, 'dependencies')
-         cflags = []
-         cflags.extend(mesonlib.stringlistify(kwargs.pop('c_args', [])))
--        deps_cflags, internal_ldflags, external_ldflags, gi_includes = \
-+        deps_cflags, internal_ldflags, external_ldflags, gi_includes, depends = \
-             self._get_dependencies_flags(deps, state, depends, include_rpath=True)
-         inc_dirs = mesonlib.extract_as_list(kwargs, 'include_directories')
-         for incd in inc_dirs:
diff --git a/pkgs/development/tools/build-managers/meson/fix-rpath.patch b/pkgs/development/tools/build-managers/meson/fix-rpath.patch
index d34b6c4c43457..29bec7903ca98 100644
--- a/pkgs/development/tools/build-managers/meson/fix-rpath.patch
+++ b/pkgs/development/tools/build-managers/meson/fix-rpath.patch
@@ -1,9 +1,9 @@
 --- a/mesonbuild/backend/backends.py
 +++ b/mesonbuild/backend/backends.py
-@@ -456,6 +456,21 @@ class Backend:
-                 args.extend(self.environment.coredata.get_external_link_args(target.for_machine, lang))
-             except Exception:
-                 pass
+@@ -723,6 +723,21 @@
+     @staticmethod
+     def get_rpath_dirs_from_link_args(args: T.List[str]) -> T.Set[str]:
+         dirs: T.Set[str] = set()
 +
 +        nix_ldflags = os.environ.get('NIX_LDFLAGS', '').split()
 +        next_is_path = False
diff --git a/pkgs/development/tools/build-managers/mill/default.nix b/pkgs/development/tools/build-managers/mill/default.nix
index 21209638c85cc..c7d8ebcd8a357 100644
--- a/pkgs/development/tools/build-managers/mill/default.nix
+++ b/pkgs/development/tools/build-managers/mill/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mill";
-  version = "0.10.2";
+  version = "0.10.3";
 
   src = fetchurl {
     url = "https://github.com/com-lihaoyi/mill/releases/download/${version}/${version}-assembly";
-    hash = "sha256-lx5saJdGsMS7DLaUngoauzFS1UG4QYvrELEvTjIa1oQ=";
+    hash = "sha256-pTQigt8sG+4AzDc3Fav/Qn27CNH0lIHuQ3QMA5uMdqI=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/build-managers/qbs/default.nix b/pkgs/development/tools/build-managers/qbs/default.nix
index e09aeea75a321..14d9f146651a1 100644
--- a/pkgs/development/tools/build-managers/qbs/default.nix
+++ b/pkgs/development/tools/build-managers/qbs/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   pname = "qbs";
 
-  version = "1.21.0";
+  version = "1.22.0";
 
   src = fetchFromGitHub {
     owner = "qbs";
     repo = "qbs";
     rev = "v${version}";
-    sha256 = "sha256-jlJ7bk+lKBUs+jB6MTMe2Qxhf7BA7s5M9Xa2Dnx2UJs=";
+    sha256 = "sha256-gFPcT/TNsKEUNzkJVaXHCGNmhQ0dV1/NYgQQInYrcNI=";
   };
 
   nativeBuildInputs = [ qmake ];
diff --git a/pkgs/development/tools/build-managers/rebar3/default.nix b/pkgs/development/tools/build-managers/rebar3/default.nix
index 3ec37b89fd39d..c7b6f72ac8ec0 100644
--- a/pkgs/development/tools/build-managers/rebar3/default.nix
+++ b/pkgs/development/tools/build-managers/rebar3/default.nix
@@ -81,7 +81,7 @@ let
           (rebar3WithPlugins { globalPlugins = [rebar3-nix]; })
         ]
       }
-      latest=$(list-git-tags --url=https://github.com/${owner}/${pname}.git | sed -n '/[\d\.]\+/p' | sort -V | tail -1)
+      latest=$(list-git-tags | sed -n '/[\d\.]\+/p' | sort -V | tail -1)
       if [ "$latest" != "${version}" ]; then
         nixpkgs="$(git rev-parse --show-toplevel)"
         nix_path="$nixpkgs/pkgs/development/tools/build-managers/rebar3"
diff --git a/pkgs/development/tools/build-managers/samurai/default.nix b/pkgs/development/tools/build-managers/samurai/default.nix
index cd058bfc26329..b13762d63b169 100644
--- a/pkgs/development/tools/build-managers/samurai/default.nix
+++ b/pkgs/development/tools/build-managers/samurai/default.nix
@@ -1,4 +1,8 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+}:
 
 stdenv.mkDerivation rec {
   pname = "samurai";
@@ -8,17 +12,21 @@ stdenv.mkDerivation rec {
     owner = "michaelforney";
     repo = pname;
     rev = version;
-    sha256 = "sha256-RPY3MFlnSDBZ5LOkdWnMiR/CZIBdqIFo9uLU+SAKPBI=";
+    hash = "sha256-RPY3MFlnSDBZ5LOkdWnMiR/CZIBdqIFo9uLU+SAKPBI=";
   };
 
   makeFlags = [ "DESTDIR=" "PREFIX=${placeholder "out"}" ];
 
   patches = [
+    # NULL pointer dereference in writefile() in util.c; remove this at the next
+    # release
     (fetchpatch {
       name = "CVE-2021-30218.patch";
       url = "https://github.com/michaelforney/samurai/commit/e84b6d99c85043fa1ba54851ee500540ec206918.patch";
       sha256 = "sha256-hyndwj6st4rwOJ35Iu0qL12dR5E6CBvsulvR27PYKMw=";
     })
+    # NULL pointer dereference in printstatus() in build.c; remove this at the
+    # next release
     (fetchpatch {
       name = "CVE-2021-30219.patch";
       url = "https://github.com/michaelforney/samurai/commit/d2af3bc375e2a77139c3a28d6128c60cd8d08655.patch";
@@ -27,10 +35,24 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "ninja-compatible build tool written in C";
     homepage = "https://github.com/michaelforney/samurai";
+    description = "ninja-compatible build tool written in C";
+    longDescription = ''
+      samurai is a ninja-compatible build tool with a focus on simplicity,
+      speed, and portability.
+
+      It is written in C99, requires various POSIX.1-2008 interfaces, and
+      nowadays implements ninja build language through version 1.9.0 except for
+      Microsoft (R) Visual C++ (TM) dependency handling (deps = msvc).
+
+      It is feature-complete (but not bug-compatible) and supports most of the
+      same options as ninja, using the same format for .ninja_log and
+      .ninja_deps as the original ninja tool, currently version 5 and 4
+      respectively.
+    '';
     license = with licenses; [ mit asl20 ]; # see LICENSE
-    maintainers = with maintainers; [ dtzWill ];
+    maintainers = with maintainers; [ dtzWill AndersonTorres ];
+    platforms = platforms.all;
   };
 }
 
diff --git a/pkgs/development/tools/build-managers/scala-cli/default.nix b/pkgs/development/tools/build-managers/scala-cli/default.nix
index c045944b77374..abeaf0d4cf18c 100644
--- a/pkgs/development/tools/build-managers/scala-cli/default.nix
+++ b/pkgs/development/tools/build-managers/scala-cli/default.nix
@@ -1,22 +1,23 @@
 { stdenv, coreutils, lib, installShellFiles, zlib, autoPatchelfHook, fetchurl }:
 
 let
-  version = "0.1.2";
+  version = "0.1.4";
   assets = {
     x86_64-darwin = {
       asset = "scala-cli-x86_64-apple-darwin.gz";
-      sha256 = "10453af2kz10k9vmcgdwpk10z36cnblnj6l09wkqngxwx9vxbf9q";
+      sha256 = "19bsfkp398rx3f9lnjzhp8pcs77n075v17rpm4hsmrpsz1hih5xy";
     };
     x86_64-linux = {
       asset = "scala-cli-x86_64-pc-linux.gz";
-      sha256 = "0720c4s717hcssp4b3x295rhgac4ifjr95zn45bm1n70jr3xqzyj";
+      sha256 = "0rggf6v32rw3s82a1apz2b8nyiv8rd0lvw1bajl2s7jhlq8l7lc9";
     };
   };
 in
 stdenv.mkDerivation {
   pname = "scala-cli";
   inherit version;
-  nativeBuildInputs = [ autoPatchelfHook installShellFiles ];
+  nativeBuildInputs = [ installShellFiles ]
+    ++ lib.optional stdenv.isLinux autoPatchelfHook;
   buildInputs = [ coreutils zlib stdenv.cc.cc ];
   src =
     let
@@ -42,9 +43,9 @@ stdenv.mkDerivation {
   # We need to call autopatchelf before generating completions
   dontAutoPatchelf = true;
 
-  postFixup = ''
+  postFixup = lib.optionalString stdenv.isLinux ''
     autoPatchelf $out
-
+  '' + ''
     # hack to ensure the completion function looks right
     # as $0 is used to generate the compdef directive
     PATH="$out/bin:$PATH"
diff --git a/pkgs/development/tools/build-managers/tup/setup-hook.sh b/pkgs/development/tools/build-managers/tup/setup-hook.sh
index b7962c80d4692..6116e207ac43b 100644
--- a/pkgs/development/tools/build-managers/tup/setup-hook.sh
+++ b/pkgs/development/tools/build-managers/tup/setup-hook.sh
@@ -19,7 +19,7 @@ tupConfigurePhase() {
     echo "${tupConfig-}" >> tup.config
 
     tup init
-    tup generate tupBuild.sh
+    tup generate --verbose tupBuild.sh
 
     runHook postConfigure
 }
@@ -33,7 +33,7 @@ tupBuildPhase() {
     runHook preBuild
 
     pushd .
-    . tupBuild.sh
+    ./tupBuild.sh
     popd
 
     runHook postBuild
diff --git a/pkgs/development/tools/build-managers/wafHook/setup-hook.sh b/pkgs/development/tools/build-managers/wafHook/setup-hook.sh
index 6cea8fcc2ea84..e2f6714a32d42 100644
--- a/pkgs/development/tools/build-managers/wafHook/setup-hook.sh
+++ b/pkgs/development/tools/build-managers/wafHook/setup-hook.sh
@@ -10,6 +10,10 @@ wafConfigurePhase() {
         wafConfigureFlags="${prefixKey:---prefix=}$prefix $wafConfigureFlags"
     fi
 
+    if [ -n "${PKG_CONFIG}" ]; then
+      export PKGCONFIG="${PKG_CONFIG}"
+    fi
+
     local flagsArray=(
         "${flagsArray[@]}"
         $wafConfigureFlags "${wafConfigureFlagsArray[@]}"
diff --git a/pkgs/development/tools/buildkit/default.nix b/pkgs/development/tools/buildkit/default.nix
index df644935cf16b..9244a80672ed8 100644
--- a/pkgs/development/tools/buildkit/default.nix
+++ b/pkgs/development/tools/buildkit/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "buildkit";
-  version = "0.10.0";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "moby";
     repo = "buildkit";
     rev = "v${version}";
-    sha256 = "sha256-Pdnu0zG1LteAob0YUuG/XDh2pfBj5UO2GrkWFlMZeGY=";
+    sha256 = "sha256-qMSXz4ZJ0po+Qi/K3Q/51MgHBO4tOa+DHw6Ok0yYc+k=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/development/tools/buildpack/default.nix b/pkgs/development/tools/buildpack/default.nix
index d607f7af00c35..2fc1a18c1ff87 100644
--- a/pkgs/development/tools/buildpack/default.nix
+++ b/pkgs/development/tools/buildpack/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "pack";
-  version = "0.24.0";
+  version = "0.24.1";
 
   src = fetchFromGitHub {
     owner = "buildpacks";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-nlSJwo2YjbOOKofZwXdWB3fxRUNTeSUcT6jN987SB3o=";
+    sha256 = "sha256-zwvZ99SLeYQDSzrEy2eYPMyFh9B6LWZT3tY92EOrXnU=";
   };
 
   vendorSha256 = "sha256-4uMd0KaV5xrxuJ9yqpxbD3YTNaBHsH2d/IRtYRyN5+0=";
diff --git a/pkgs/development/tools/ccloud-cli/default.nix b/pkgs/development/tools/ccloud-cli/default.nix
index 5814ab90e6d90..2a3d1de41a11a 100644
--- a/pkgs/development/tools/ccloud-cli/default.nix
+++ b/pkgs/development/tools/ccloud-cli/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
       sha256 = "0936hipcl37w4mzzsnjlz4q1z4j9094i4irigzqwg14gdbs7p11s";
     });
 
-  nativeBuildInputs = [ autoPatchelfHook ];
+  nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ];
 
   dontStrip = stdenv.isDarwin;
 
diff --git a/pkgs/development/tools/checkmate/default.nix b/pkgs/development/tools/checkmate/default.nix
index bcb115e409b7a..6ca90b28f4e7b 100644
--- a/pkgs/development/tools/checkmate/default.nix
+++ b/pkgs/development/tools/checkmate/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "checkmate";
-  version = "0.5.8";
+  version = "0.5.9";
 
   src = fetchFromGitHub {
     owner = "adedayo";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-nzhzeXy70UQ1HP3/PCBnUPhrjg7CnKURMCH0iJ099E0=";
+    sha256 = "sha256-V7b8NEKzS4wDIhFJkAve94Tl3tzYtnbG01GzyRj8yfA=";
   };
 
   vendorSha256 = "sha256-uQRAVbLnzY+E3glMJ3AvmbtmwD2LkuqCh2mUpqZbmaA=";
diff --git a/pkgs/development/tools/clj-kondo/default.nix b/pkgs/development/tools/clj-kondo/default.nix
index 0a369bd5f034e..5db37b60d10f1 100644
--- a/pkgs/development/tools/clj-kondo/default.nix
+++ b/pkgs/development/tools/clj-kondo/default.nix
@@ -2,11 +2,11 @@
 
 buildGraalvmNativeImage rec {
   pname = "clj-kondo";
-  version = "2022.03.09";
+  version = "2022.04.23";
 
   src = fetchurl {
     url = "https://github.com/clj-kondo/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
-    sha256 = "sha256-gPn3wORb30I/zTXUdxUxMesKFJx6ES7jEjUYuC/DAVI=";
+    sha256 = "sha256-TFDaIpsR1Q0510HZl31bB9jh9D3K0LspCARiE7QKLx0=";
   };
 
   extraNativeImageBuildArgs = [
diff --git a/pkgs/development/tools/clog-cli/default.nix b/pkgs/development/tools/clog-cli/default.nix
index 395cd7979d615..feedbd2ab2619 100644
--- a/pkgs/development/tools/clog-cli/default.nix
+++ b/pkgs/development/tools/clog-cli/default.nix
@@ -21,5 +21,6 @@ buildRustPackage rec {
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
     maintainers = [lib.maintainers.nthorne];
+    mainProgram = "clog";
   };
 }
diff --git a/pkgs/development/tools/compile-daemon/default.nix b/pkgs/development/tools/compile-daemon/default.nix
index a12fb4424e8e4..79f5a4478882e 100644
--- a/pkgs/development/tools/compile-daemon/default.nix
+++ b/pkgs/development/tools/compile-daemon/default.nix
@@ -20,6 +20,7 @@ buildGoPackage rec {
     description = "Very simple compile daemon for Go";
     license = licenses.bsd2;
     maintainers = with maintainers; [ ];
+    mainProgram = "CompileDaemon";
     inherit (src.meta) homepage;
   };
 }
diff --git a/pkgs/development/tools/confluent-cli/default.nix b/pkgs/development/tools/confluent-cli/default.nix
index 9664a75703a27..059a3272038fe 100644
--- a/pkgs/development/tools/confluent-cli/default.nix
+++ b/pkgs/development/tools/confluent-cli/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
       sha256 = "1wvy7x56cc7imycf0d83mxcqzdvv56cc0zbp913xgghjn9dl2z7a";
     });
 
-  nativeBuildInputs = [ autoPatchelfHook ];
+  nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ];
 
   dontStrip = stdenv.isDarwin;
 
diff --git a/pkgs/development/tools/conftest/default.nix b/pkgs/development/tools/conftest/default.nix
index f200cd742d904..fa4f9ea438433 100644
--- a/pkgs/development/tools/conftest/default.nix
+++ b/pkgs/development/tools/conftest/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "conftest";
-  version = "0.30.0";
+  version = "0.31.0";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "conftest";
     rev = "v${version}";
-    sha256 = "sha256-8/eZz5ejw5bahCYwz825HI+oZ6D1odeTpMIJh0TcGMY=";
+    sha256 = "sha256-p3EzJLq+LH8G8P7x6+47XWn8ckFeW2O7xhQGoRQDOOQ=";
   };
-  vendorSha256 = "sha256-wvOtBK3lRK7XwgeClywowgrZLohltSTGdoB+j3NRmkE=";
+  vendorSha256 = "sha256-WFR0DtOz4dteRWWaqjTIiyTpBTnH6qKivH9t+gRWsvg=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/development/tools/container-linux-config-transpiler/default.nix b/pkgs/development/tools/container-linux-config-transpiler/default.nix
deleted file mode 100644
index 5b2a7fddeb459..0000000000000
--- a/pkgs/development/tools/container-linux-config-transpiler/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ lib, fetchFromGitHub, buildGoPackage }:
-
-with lib;
-
-buildGoPackage rec {
-  pname = "ct";
-  version = "0.9.0";
-
-  goPackagePath = "github.com/coreos/container-linux-config-transpiler";
-
-  src = fetchFromGitHub {
-    owner = "coreos";
-    repo = "container-linux-config-transpiler";
-    rev = "v${version}";
-    sha256="1w6nvgrl5qp3ci9igflk9dlk3020psv5m4f3p57f3qcx9vrcl4lw";
-  };
-
-  ldflags = [
-    "-X ${goPackagePath}/internal/version.Raw=v${version}"
-  ];
-
-  postInstall = ''
-    mv $out/bin/{internal,ct}
-    rm $out/bin/tools
-  '';
-
-  meta = {
-    description = "Convert a Container Linux Config into Ignition";
-    license = licenses.asl20;
-    homepage = "https://github.com/coreos/container-linux-config-transpiler";
-    maintainers = with maintainers; [elijahcaine];
-    platforms = with platforms; unix;
-  };
-}
diff --git a/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix b/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix
index 32be3e432389f..43ed263477bdb 100644
--- a/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix
+++ b/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix
@@ -3,16 +3,16 @@
   nixosTests }:
 buildGoModule rec {
   pname = "buildkite-agent";
-  version = "3.34.1";
+  version = "3.35.2";
 
   src = fetchFromGitHub {
     owner = "buildkite";
     repo = "agent";
     rev = "v${version}";
-    sha256 = "sha256-OxZcMPJx83hBQOe4Pc8ERhO9QOc4euVVs+OMbPjA4U0=";
+    sha256 = "sha256-BpfWeSEX4N77yXfWKpH7KWKsncdOYquxF+L+g13DdiA=";
   };
 
-  vendorSha256 = "sha256-n3XRxpEKjHf7L7fcGscWTVKBtot9waZbLoS9cG0kHfI=";
+  vendorSha256 = "sha256-E51LBpNN/N3wH1LMxv/+nnwpQAxHhyDW2jgVIDkNeQ4=";
 
   postPatch = ''
     substituteInPlace bootstrap/shell/shell.go --replace /bin/bash ${bash}/bin/bash
@@ -46,7 +46,7 @@ buildGoModule rec {
     '';
     homepage = "https://buildkite.com/docs/agent";
     license = licenses.mit;
-    maintainers = with maintainers; [ pawelpacana zimbatm rvl ];
+    maintainers = with maintainers; [ pawelpacana zimbatm rvl techknowlogick ];
     platforms = with platforms; unix ++ darwin;
   };
 }
diff --git a/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix b/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
index 4604cca7cfc82..0b51be5d6728d 100644
--- a/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
+++ b/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     homepage = "https://github.com/buildkite/cli";
     license = licenses.mit;
     maintainers = with maintainers; [ groodt ];
+    mainProgram = "bk";
   };
 }
diff --git a/pkgs/development/tools/continuous-integration/dagger/default.nix b/pkgs/development/tools/continuous-integration/dagger/default.nix
new file mode 100644
index 0000000000000..2cecbce2f4c86
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/dagger/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "dagger";
+  version = "0.2.7";
+
+  src = fetchFromGitHub {
+    owner = "dagger";
+    repo = "dagger";
+    rev = "v${version}";
+    sha256 = "sha256-sy4z/kyHUn9OSkB1uYQsmr/T5ij/0HfTrr0sIyIUGTE=";
+  };
+
+  vendorSha256 = "sha256-l2Ydj7snWQa7L1uVQxBqtj9DsrH+ayUhlsiwDJSeOWk=";
+
+  subPackages = [
+    "cmd/dagger"
+  ];
+
+  ldflags = [ "-s" "-w" "-X go.dagger.io/dagger/version.Revision=${version}" ];
+
+  meta = with lib; {
+    description = "A portable devkit for CICD pipelines";
+    homepage = "https://dagger.io";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ jfroche ];
+  };
+}
diff --git a/pkgs/development/tools/continuous-integration/github-runner/default.nix b/pkgs/development/tools/continuous-integration/github-runner/default.nix
index f53ebd645d05d..aa20eae8f19d2 100644
--- a/pkgs/development/tools/continuous-integration/github-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/github-runner/default.nix
@@ -13,13 +13,16 @@
 , linkFarmFromDrvs
 , lttng-ust
 , makeWrapper
-, nodejs-12_x
 , nodejs-16_x
 , openssl
 , stdenv
 , zlib
 , writeShellApplication
 , nuget-to-nix
+# Keeping this option until upstream removes support for EoL Node.js 12 entirely
+# Also refer to: https://github.com/actions/runner/pull/1716
+, withNode12 ? false
+, nodejs-12_x
 }:
 let
   nugetSource = linkFarmFromDrvs "nuget-packages" (
@@ -43,13 +46,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "github-runner";
-  version = "2.289.2";
+  version = "2.290.1";
 
   src = fetchFromGitHub {
     owner = "actions";
     repo = "runner";
     rev = "v${version}";
-    hash = "sha256-yISJ/qGJ+tGnJOqpTUe+rkG4UGzTZ5tIXix6wuDKXO0=";
+    hash = "sha256-YUV66yiUdS2/ORZS7a7coqyzoXM/tnK0egEeXWLPNl0=";
   };
 
   nativeBuildInputs = [
@@ -187,15 +190,17 @@ stdenv.mkDerivation rec {
     ++ lib.optionals (stdenv.hostPlatform.system == "aarch64-linux") [
       # "JavaScript Actions in Alpine containers are only supported on x64 Linux runners. Detected Linux Arm64"
       "GitHub.Runner.Common.Tests.Worker.StepHostL0.DetermineNodeRuntimeVersionInAlpineContainerAsync"
+    ]
+    ++ lib.optionals (!withNode12) [
+      "GitHub.Runner.Common.Tests.ProcessExtensionL0.SuccessReadProcessEnv"
     ];
-
   checkInputs = [ git ];
 
   checkPhase = ''
     runHook preCheck
 
     mkdir -p _layout/externals
-    ln -s ${nodejs-12_x} _layout/externals/node12
+    ${lib.optionalString withNode12 "ln -s ${nodejs-12_x} _layout/externals/node12"}
     ln -s ${nodejs-16_x} _layout/externals/node16
 
     printf 'Disabled tests:\n%s\n' '${lib.concatMapStringsSep "\n" (x: " - ${x}") disabledTests}'
@@ -244,7 +249,7 @@ stdenv.mkDerivation rec {
     # externals/node{12,16}. As opposed to the official releases, we don't
     # link the Alpine Node flavors.
     mkdir -p $out/externals
-    ln -s ${nodejs-12_x} $out/externals/node12
+    ${lib.optionalString withNode12 "ln -s ${nodejs-12_x} $out/externals/node12"}
     ln -s ${nodejs-16_x} $out/externals/node16
 
     # Install Nodejs scripts called from workflows
diff --git a/pkgs/development/tools/continuous-integration/github-runner/deps.nix b/pkgs/development/tools/continuous-integration/github-runner/deps.nix
index 0db944207322e..b8997dee2c286 100644
--- a/pkgs/development/tools/continuous-integration/github-runner/deps.nix
+++ b/pkgs/development/tools/continuous-integration/github-runner/deps.nix
@@ -1,16 +1,16 @@
 { fetchNuGet }: [
   (fetchNuGet { pname = "Castle.Core"; version = "4.4.0"; sha256 = "0rpcbmyhckvlvp6vbzpj03c1gqz56ixc6f15vgmxmyf1g40c24pf"; })
   (fetchNuGet { pname = "Microsoft.AspNet.WebApi.Client"; version = "5.2.4"; sha256 = "00fkczf69z2rwarcd8kjjdp47517a0ca6lggn72qbilsp03a5scj"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.3"; sha256 = "1jpw4s862j4aa7b7wchi03gxcy02j6hhpbsfbcayiyx6ry788i15"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.3"; sha256 = "0rrrfgkr7rzhlnsnajvzb1ijkybp99d992bqxy9pbawmq7d60bdk"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.4"; sha256 = "0s1hkanhfv7virdynxxx28kp3w596iiplvi0jqv3dsr63gl0m0m7"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.4"; sha256 = "1fvv5ri32pbl43628zqnim6fbv6hjxf66p0v793xdh57dzkdyh0j"; })
   (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.0.0"; sha256 = "18gdbsqf6i79ld4ikqr4jhx9ndsggm865b5xj1xmnmgg12ydp19a"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
   (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "5.2.1"; sha256 = "1gpka9jm2gl6f07pcwzwvaxw9xq1a19i9fskn0qs921c5grhlp3g"; })
   (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "5.2.1"; sha256 = "03v6145vr1winq8xxfikydicds4f10qmy1ybyz2gfimnzzx51w00"; })
   (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.0.0"; sha256 = "0bknyf5kig5icwjxls7pcn51x2b2qf91dz9qv67fl70v6cczaz2r"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.3"; sha256 = "1swbrmpsayy99ycwaq68dx9ydd5h3qv9brwig6ryff1xfn1llndq"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.3"; sha256 = "0gjj6p2nnxzhyrmmmwiyrll782famhll9lbgj8cji1i93amxq1pb"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.3"; sha256 = "0f04srx6q0jk81a60n956hz32fdngzp0xmdb2x7gyl77gsq8yijj"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.4"; sha256 = "0g1vw0wr88zlfpdg2gz8c0mriasci1kzvjia4nj19j7b0zaga7f0"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.4"; sha256 = "09i8ca56szmvyp1xlddyv3124rrcar8vgsq3pmprcylfdjarck6x"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.4"; sha256 = "1gibwhplbanv6bz3l71w8vhzlgqsh21bms30dbf1n60v7p02fl3h"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1-rc2-24027"; sha256 = "1a0w5fv8slfr4q7m3mh78lb9awdwyz4zv3bb73vybkyq1f6z7lx8"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index f2989545f5c4a..1fbb42442503b 100644
--- a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
@@ -1,7 +1,7 @@
 { lib, buildGoModule, fetchFromGitLab, fetchurl }:
 
 let
-  version = "14.9.1";
+  version = "14.10.0";
 in
 buildGoModule rec {
   inherit version;
@@ -20,7 +20,7 @@ buildGoModule rec {
     owner = "gitlab-org";
     repo = "gitlab-runner";
     rev = "v${version}";
-    sha256 = "1h6fyhbc154fr6a8brva3clirgvga6sal6ikylf9mbkxbh7d9rcn";
+    sha256 = "033b68hwqk5hn2by4hk1z7v6p08d505grl9hrx72p4wpyk18c80l";
   };
 
   patches = [
diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix
index 9c87c5f08f4cd..5c95c99814df4 100644
--- a/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jenkins";
-  version = "2.332.1";
+  version = "2.332.2";
 
   src = fetchurl {
     url = "http://get.jenkins.io/war-stable/${version}/jenkins.war";
-    sha256 = "0xrrqdwfz19mr4wl4sdzk0qnq9rjdh65vd1386qsn6a4axwv652s";
+    sha256 = "0z0igaq29nsxbkdzqfgrh10206a7ndsvz79bj8078hq8hqvl3an7";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/coursier/default.nix b/pkgs/development/tools/coursier/default.nix
index c7450f738a1e8..5f2e919e22fd3 100644
--- a/pkgs/development/tools/coursier/default.nix
+++ b/pkgs/development/tools/coursier/default.nix
@@ -2,7 +2,7 @@
 , coreutils, git, gnused, nix, nixfmt }:
 
 let
-  version = "2.1.0-M1";
+  version = "2.1.0-M5";
 
   zshCompletion = fetchurl {
     url =
@@ -19,7 +19,7 @@ in stdenv.mkDerivation rec {
   src = fetchurl {
     url =
       "https://github.com/coursier/coursier/releases/download/v${version}/coursier";
-    sha256 = "sha256-JeqWzAkSSqhdbgkse1uSA3k4bupepWuvx6GUtBfodcg=";
+    sha256 = "sha256-mp341H7bvf3Lwt66GKk3afoCtXuBnD97dYrZNx/jkYI=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/dapr/cli/default.nix b/pkgs/development/tools/dapr/cli/default.nix
index 59e04455c2a48..96b86719e6c8c 100644
--- a/pkgs/development/tools/dapr/cli/default.nix
+++ b/pkgs/development/tools/dapr/cli/default.nix
@@ -1,23 +1,30 @@
-{ buildGoModule, fetchFromGitHub, lib }:
+{ buildGoModule, fetchFromGitHub, installShellFiles, lib }:
 
 buildGoModule rec {
-  pname = "dapr";
-  version = "1.1.0";
-
-  vendorSha256 = "0fng5a1pvpbwil79xapdalzgkgc9dwsdxs6bznjfwnkyd1vvw6fm";
+  pname = "dapr-cli";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
-    sha256 = "0x2mvlzlmcik6ys6xp722px9l4lj9ssyxb06bzxd7yj7m1wwcwp9";
-
     owner = "dapr";
     repo = "cli";
     rev = "v${version}";
+    sha256 = "sha256-+P1oXG+uvnFDGis5pz9VUQ4n1C7mjuetXz1OtN7IIrg=";
   };
 
-  doCheck = false;
+  vendorSha256 = "sha256-EvOyOy7DFQtFavOC9eBUZRJsj3pNdx7jumVmZ/THdaM=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
 
   postInstall = ''
     mv $out/bin/cli $out/bin/dapr
+
+    installShellCompletion --cmd dapr \
+      --bash <($out/bin/dapr completion bash) \
+      --zsh <($out/bin/dapr completion zsh)
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/tools/database/beekeeper-studio/default.nix b/pkgs/development/tools/database/beekeeper-studio/default.nix
index c00c2e99a14e7..c112fc3f773fe 100644
--- a/pkgs/development/tools/database/beekeeper-studio/default.nix
+++ b/pkgs/development/tools/database/beekeeper-studio/default.nix
@@ -2,19 +2,20 @@
 
 let
   pname = "beekeeper-studio";
-  version = "3.1.0";
+  version = "3.3.8";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v${version}/Beekeeper-Studio-${version}.AppImage";
-    name="${pname}-${version}.AppImage";
-    sha512 = "sha512:1zv4fclac94fzzhgqmjgc5pllxcxajjx6yjf3zblj53cc7m4sp4ydjx3wh4db57j75x8vh7xc3q1xpq6q3sj1dafnap0j0icfi6wznk";
+    name = "${pname}-${version}.AppImage";
+    sha512 = "sha512-riBKlvOzBovJhXUf7YX6SJKshxwGiQR0jyWHfJRkq9+WMspPkpXg4sJMXziARHaa6durXZtqCfzQ08HrfqA4Qg==";
   };
 
   appimageContents = appimageTools.extractType2 {
     inherit name src;
   };
-in appimageTools.wrapType2 {
+in
+appimageTools.wrapType2 {
   inherit name src;
 
   multiPkgs = null; # no 32bit needed
diff --git a/pkgs/development/tools/database/clickhouse-backup/default.nix b/pkgs/development/tools/database/clickhouse-backup/default.nix
index fdc15a9256dda..a55ed8a3b6504 100644
--- a/pkgs/development/tools/database/clickhouse-backup/default.nix
+++ b/pkgs/development/tools/database/clickhouse-backup/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "clickhouse-backup";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "AlexAkulov";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-M9fJFdwNyNOolXFknzEPG7pNDVrqKv/WOQZUHmr8B84=";
+    sha256 = "sha256-dpVFDLDEqqW1u1afb3klpdqwOptudbjUfoFhFBc85Pg=";
   };
 
-  vendorSha256 = "sha256-d6h0LK4zbrfkUum7FXHIP+hqBx5A0mQmvW5GOi+EMVQ=";
+  vendorSha256 = "sha256-wj4N146iqj/YwyBI0XdrvBp1tqeK43Yq4kSpN594hRs=";
 
   postConfigure = ''
     export CGO_ENABLED=0
diff --git a/pkgs/development/tools/database/indradb/default.nix b/pkgs/development/tools/database/indradb/default.nix
index f577963e8f4b8..eefb0a32525ff 100644
--- a/pkgs/development/tools/database/indradb/default.nix
+++ b/pkgs/development/tools/database/indradb/default.nix
@@ -3,6 +3,7 @@
 , lib
 , rustPlatform
 , rustfmt
+, protobuf
 }:
 let
   src = fetchFromGitHub {
@@ -30,7 +31,9 @@ in
 
     buildAndTestSubdir = "server";
 
-    nativeBuildInputs = [ rustfmt ];
+    PROTOC = "${protobuf}/bin/protoc";
+
+    nativeBuildInputs = [ rustfmt rustPlatform.bindgenHook ];
 
     # test rely on libindradb and it can't be found
     # failure at https://github.com/indradb/indradb/blob/master/server/tests/plugins.rs#L63
@@ -44,7 +47,9 @@ in
 
     cargoSha256 = "sha256-pxan6W/CEsOxv8DbbytEBuIqxWn/C4qT4ze/RnvESOM=";
 
-    nativeBuildInputs = [ rustfmt ];
+    PROTOC = "${protobuf}/bin/protoc";
+
+    nativeBuildInputs = [ rustfmt rustPlatform.bindgenHook ];
 
     buildAndTestSubdir = "client";
   };
diff --git a/pkgs/development/tools/database/liquibase/default.nix b/pkgs/development/tools/database/liquibase/default.nix
index 06f4c947b2056..87a66f9bdab79 100644
--- a/pkgs/development/tools/database/liquibase/default.nix
+++ b/pkgs/development/tools/database/liquibase/default.nix
@@ -10,11 +10,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "liquibase";
-  version = "4.8.0";
+  version = "4.9.0";
 
   src = fetchurl {
     url = "https://github.com/liquibase/liquibase/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-dGK26S9wd+GFiGXEA9UvDc4b1m0DsfrpB4FcEIJf6zM=";
+    sha256 = "sha256-1InRJzHqikm6Jd7z54TW6JFn3FO0LtStehWNaC+rdw8=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/database/litecli/default.nix b/pkgs/development/tools/database/litecli/default.nix
index b2a96ab0dc53e..a1c35c88ee806 100644
--- a/pkgs/development/tools/database/litecli/default.nix
+++ b/pkgs/development/tools/database/litecli/default.nix
@@ -4,12 +4,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "litecli";
-  version = "1.6.0";
+  version = "1.8.0";
   disabled = python3Packages.pythonOlder "3.4";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "sha256-TSdOFHW007syOEg4gwvEqDiJkrfLgRmqjP/H/6oBZ/k=";
+    sha256 = "sha256-AvaSdHlwRlw7rN/o8GjcXZbyXVsrEh+XF37wVTBEED4=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/development/tools/database/pg_checksums/default.nix b/pkgs/development/tools/database/pg_checksums/default.nix
index b7883bd1bf010..b2d8b3fc05bdb 100644
--- a/pkgs/development/tools/database/pg_checksums/default.nix
+++ b/pkgs/development/tools/database/pg_checksums/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
     description = "Activate/deactivate/verify checksums in offline PostgreSQL clusters";
     homepage = "https://github.com/credativ/pg_checksums";
     maintainers = [ maintainers.marsam ];
+    mainProgram = "pg_checksums_ext";
     platforms = postgresql.meta.platforms;
     license = licenses.postgresql;
   };
diff --git a/pkgs/development/tools/database/pgcli/default.nix b/pkgs/development/tools/database/pgcli/default.nix
index e8f053679c326..40c2048128876 100644
--- a/pkgs/development/tools/database/pgcli/default.nix
+++ b/pkgs/development/tools/database/pgcli/default.nix
@@ -5,7 +5,6 @@
 , cli-helpers
 , click
 , configobj
-, humanize
 , prompt-toolkit
 , psycopg2
 , pygments
@@ -15,25 +14,23 @@
 , keyring
 , pendulum
 , pytestCheckHook
+, sshtunnel
 , mock
 }:
 
 buildPythonApplication rec {
   pname = "pgcli";
-  version = "3.3.1";
-
-  disabled = !isPy3k;
+  version = "3.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-/MyeVcpopK0Ih6z6KZGvs7ivk/PM6a2iSeatiYeZM6E=";
+    sha256 = "sha256-8DkwGH4n1g32WMqKBPtgHsXXR2xzXysVQsat7Fysj+I=";
   };
 
   propagatedBuildInputs = [
     cli-helpers
     click
     configobj
-    humanize
     prompt-toolkit
     psycopg2
     pygments
@@ -42,6 +39,7 @@ buildPythonApplication rec {
     setproctitle
     keyring
     pendulum
+    sshtunnel
   ];
 
   checkInputs = [ pytestCheckHook mock ];
diff --git a/pkgs/development/tools/database/prisma-engines/default.nix b/pkgs/development/tools/database/prisma-engines/default.nix
index 015b60d9ccf0b..73af1bde5ea2c 100644
--- a/pkgs/development/tools/database/prisma-engines/default.nix
+++ b/pkgs/development/tools/database/prisma-engines/default.nix
@@ -8,21 +8,24 @@
 , stdenv
 }:
 
+# Updating this package will force an update for nodePackages.prisma. The
+# version of prisma-engines and nodePackages.prisma must be the same for them to
+# function correctly.
 rustPlatform.buildRustPackage rec {
   pname = "prisma-engines";
-  version = "3.11.0";
+  version = "3.12.0";
 
   src = fetchFromGitHub {
     owner = "prisma";
     repo = "prisma-engines";
     rev = version;
-    sha256 = "sha256-z7ebwidY+p350XaGeyohoSHWc2DhfzpRxsRDLON1BuA=";
+    sha256 = "sha256-lIHE63XIPutvTS2cid0+tuo+JMSKMGuSUcnFv1mCRrM=";
   };
 
   # Use system openssl.
   OPENSSL_NO_VENDOR = 1;
 
-  cargoSha256 = "sha256-PQdLoNJL9szPzPtFRznWS0lngTvtWK+Ko2rp4JWH9dQ=";
+  cargoSha256 = "sha256-SkI+GLHknC+CGhGo7KiZahBxMp/JCIukTe2C0mMTdjY=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/database/sqldeveloper/default.nix b/pkgs/development/tools/database/sqldeveloper/default.nix
index da43a4daf7d12..655156c176c6b 100644
--- a/pkgs/development/tools/database/sqldeveloper/default.nix
+++ b/pkgs/development/tools/database/sqldeveloper/default.nix
@@ -62,7 +62,7 @@ in
 
     makeWrapper $out/libexec/sqldeveloper/bin/sqldeveloper $out/bin/sqldeveloper \
       --set JAVA_HOME ${jdk.home} \
-      --run "cd $out/libexec/sqldeveloper/bin"
+      --chdir "$out/libexec/sqldeveloper/bin"
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/tools/database/sqlfluff/default.nix b/pkgs/development/tools/database/sqlfluff/default.nix
index cc6757e239a7d..79c31c1937fe7 100644
--- a/pkgs/development/tools/database/sqlfluff/default.nix
+++ b/pkgs/development/tools/database/sqlfluff/default.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "sqlfluff";
-  version = "0.11.2";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    rev = version;
-    hash = "sha256-iEjfp6QXMIk/ehq0Ypa8JXv3/u40w39NHz7HhC1KBms=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-UFvrtLVHGlWUlvA7KLDgaCydE/UoxtYV+8RqLblOdns=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/development/tools/database/termdbms/default.nix b/pkgs/development/tools/database/termdbms/default.nix
index b045669ef9022..a8c56c51dbc56 100644
--- a/pkgs/development/tools/database/termdbms/default.nix
+++ b/pkgs/development/tools/database/termdbms/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     description = "A TUI for viewing and editing database files";
     license = licenses.mit;
     maintainers = with maintainers; [ izorkin ];
+    mainProgram = "sqlite3-viewer";
   };
 }
diff --git a/pkgs/development/tools/deadcode/default.nix b/pkgs/development/tools/deadcode/default.nix
index 014acc89e1f7d..c5074cd037768 100644
--- a/pkgs/development/tools/deadcode/default.nix
+++ b/pkgs/development/tools/deadcode/default.nix
@@ -11,7 +11,7 @@ buildGoPackage rec {
   rev = "210d2dc333e90c7e3eedf4f2242507a8e83ed4ab";
 
   goPackagePath = "github.com/tsenart/deadcode";
-  excludedPackages = "\\(cmd/fillswitch/test-fixtures\\)";
+  excludedPackages = "cmd/fillswitch/test-fixtures";
 
   src = fetchFromGitHub {
     inherit rev;
diff --git a/pkgs/development/tools/deadnix/default.nix b/pkgs/development/tools/deadnix/default.nix
index 34fb92973bc62..3de058fb70c32 100644
--- a/pkgs/development/tools/deadnix/default.nix
+++ b/pkgs/development/tools/deadnix/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "deadnix";
-  version = "0.1.3";
+  version = "0.1.5";
 
   src = fetchFromGitHub {
     owner = "astro";
     repo = "deadnix";
     rev = "v${version}";
-    sha256 = "0ddnxmcr9fncgrqg1vvqcbx49c3lccdpb40h9rvzyldzy9xynzi7";
+    sha256 = "1fyagp6m6adwfcisi1zvs5dflcvrmpx4q1fr8pqzb93zv4m3ar84";
   };
 
-  cargoSha256 = "19vgjv70vxgxssrxvdjwfl16bwdbdrpb2wzb3fg9vlz4fhbj2lv9";
+  cargoSha256 = "102akpvs2hvf5hl9rh5cspxzqly68wk7qhx0g1zhfp1ka58gnr4p";
 
   meta = with lib; {
     description = "Find and remove unused code in .nix source files";
diff --git a/pkgs/development/tools/delve/default.nix b/pkgs/development/tools/delve/default.nix
index 478ef3b6fc685..7ad5472f5b6d1 100644
--- a/pkgs/development/tools/delve/default.nix
+++ b/pkgs/development/tools/delve/default.nix
@@ -1,12 +1,9 @@
-{ lib, buildGoPackage, fetchFromGitHub, makeWrapper }:
+{ lib, buildGoModule, fetchFromGitHub, makeWrapper }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "delve";
   version = "1.8.2";
 
-  goPackagePath = "github.com/go-delve/delve";
-  excludedPackages = "\\(_fixtures\\|scripts\\|service/test\\)";
-
   src = fetchFromGitHub {
     owner = "go-delve";
     repo = "delve";
@@ -14,10 +11,14 @@ buildGoPackage rec {
     sha256 = "sha256-rW3uKf5T+ZCjZxVuSFWWXw0mhAW9Y9L83xtU98JTuik=";
   };
 
+  vendorSha256 = null;
+
   subPackages = [ "cmd/dlv" ];
 
   nativeBuildInputs = [ makeWrapper ];
 
+  checkFlags = [ "-short" ];
+
   postInstall = ''
     # fortify source breaks build since delve compiles with -O0
     wrapProgram $out/bin/dlv \
diff --git a/pkgs/development/tools/doctl/default.nix b/pkgs/development/tools/doctl/default.nix
index d7667538e8e56..9c428347d8f1f 100644
--- a/pkgs/development/tools/doctl/default.nix
+++ b/pkgs/development/tools/doctl/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "doctl";
-  version = "1.71.1";
+  version = "1.72.0";
 
   vendorSha256 = null;
 
@@ -31,7 +31,7 @@ buildGoModule rec {
     owner = "digitalocean";
     repo = "doctl";
     rev = "v${version}";
-    sha256 = "sha256-Y6YabrpM1WcNGp5ksvq3SBuAS6KEUVzEfxsPmBDS+Io=";
+    sha256 = "sha256-+8uGh7cvNndBBLdTfbYDxfn7Z+4LPPgqeseLcR1P468=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/documentation/doxygen/default.nix b/pkgs/development/tools/documentation/doxygen/default.nix
index a4a70dabd69dc..5a0807974edec 100644
--- a/pkgs/development/tools/documentation/doxygen/default.nix
+++ b/pkgs/development/tools/documentation/doxygen/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "doxygen";
-  version = "1.8.20";
+  version = "1.9.3";
 
   src = fetchFromGitHub {
     owner = "doxygen";
     repo = "doxygen";
     rev = "Release_${lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "17chvi3i80rj4750smpizf562xjzd2xcv5rfyh997pyvc1zbq5rh";
+    sha256 = "1xfsv31ffrv03qhxlscav0r5mdi3qz4654ib9cq35rvmxfj999bw";
   };
 
   nativeBuildInputs = [
@@ -30,19 +30,20 @@ stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE =
     lib.optionalString stdenv.isDarwin "-mmacosx-version-min=10.9";
 
-  enableParallelBuilding = false;
-
   meta = {
     license = lib.licenses.gpl2Plus;
-    homepage = "http://doxygen.nl/";
+    homepage = "https://www.doxygen.nl/";
+    changelog = "https://www.doxygen.nl/manual/changelog.html";
     description = "Source code documentation generator tool";
 
     longDescription = ''
-      Doxygen is a documentation system for C++, C, Java, Objective-C,
-      Python, IDL (CORBA and Microsoft flavors), Fortran, VHDL, PHP,
-      C\#, and to some extent D.  It can generate an on-line
-      documentation browser (in HTML) and/or an off-line reference
-      manual (in LaTeX) from a set of documented source files.
+      Doxygen is the de facto standard tool for generating documentation from
+      annotated C++ sources, but it also supports other popular programming
+      languages such as C, Objective-C, C#, PHP, Java, Python, IDL (Corba,
+      Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL and to some extent
+      D. It can generate an on-line documentation browser (in HTML) and/or an
+      off-line reference manual (in LaTeX) from a set of documented source
+      files.
     '';
 
     platforms = if qt5 != null then lib.platforms.linux else lib.platforms.unix;
diff --git a/pkgs/development/tools/dprint/default.nix b/pkgs/development/tools/dprint/default.nix
index f2bd4bb1b2a2a..20646fa696d58 100644
--- a/pkgs/development/tools/dprint/default.nix
+++ b/pkgs/development/tools/dprint/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dprint";
-  version = "0.22.2";
+  version = "0.26.0";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-iYqQABXd3Vra+U7cfGKBEyTXfQGwHxFSxEoDyCfKk5Y=";
+    sha256 = "sha256-s8M7xQTADPVRGM3Cu2jmNrdMWBRKNLWsRlXnnB+FHH4=";
   };
 
-  cargoSha256 = "sha256-QMOS8Pn3RwZZRtKqp077ihh91Q4VPe8alrtQ6dYIXmA=";
+  cargoSha256 = "sha256-UaD85fCWWYyDNF/HiWDRVpQD0snhiQtEWfIq7GSoZts=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
diff --git a/pkgs/development/tools/easyjson/default.nix b/pkgs/development/tools/easyjson/default.nix
index 75bfc1d4c14f9..270d63ed2a76e 100644
--- a/pkgs/development/tools/easyjson/default.nix
+++ b/pkgs/development/tools/easyjson/default.nix
@@ -1,21 +1,22 @@
 { lib, buildGoPackage, fetchFromGitHub }:
 
-buildGoPackage {
+buildGoPackage rec {
   pname = "easyjson";
-  version = "unstable-2019-06-26";
+  version = "0.7.7";
   goPackagePath = "github.com/mailru/easyjson";
+  goDeps = ./deps.nix;
 
   src = fetchFromGitHub {
     owner = "mailru";
     repo = "easyjson";
-    rev = "b2ccc519800e761ac8000b95e5d57c80a897ff9e";
-    sha256 = "0q85h383mhbkcjm2vqm72bi8n2252fv3c56q3lclzb8n2crnjcdk";
+    rev = "v${version}";
+    sha256 = "0clifkvvy8f45rv3cdyv58dglzagyvfcqb63wl6rij30c5j2pzc1";
   };
 
   meta = with lib; {
     homepage = "https://github.com/mailru/easyjson";
     description = "Fast JSON serializer for golang";
     license = licenses.mit;
-    maintainers = with maintainers; [ chiiruno ];
+    maintainers = with maintainers; [ Madouura ];
   };
 }
diff --git a/pkgs/development/tools/easyjson/deps.nix b/pkgs/development/tools/easyjson/deps.nix
new file mode 100644
index 0000000000000..d5d7e1f15bc9b
--- /dev/null
+++ b/pkgs/development/tools/easyjson/deps.nix
@@ -0,0 +1,11 @@
+[
+  {
+    goPackagePath = "github.com/josharian/intern";
+    fetch = {
+      type = "git";
+      url = "https://github.com/josharian/intern";
+      rev = "8e6ff32b3e7c0b018c43953085fe2ac330fe9acd";
+      sha256 = "1za48ppvwd5vg8vv25ldmwz1biwpb3p6qhf8vazhsfdg9m07951c";
+    };
+  }
+]
diff --git a/pkgs/development/tools/efm-langserver/default.nix b/pkgs/development/tools/efm-langserver/default.nix
index a030a271b487f..788c4edc9a86f 100644
--- a/pkgs/development/tools/efm-langserver/default.nix
+++ b/pkgs/development/tools/efm-langserver/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "efm-langserver";
-  version = "0.0.42";
+  version = "0.0.44";
 
   src = fetchFromGitHub {
     owner = "mattn";
     repo = "efm-langserver";
     rev = "v${version}";
-    sha256 = "sha256-1IAPtqIozp9Wp3L95mmhFuWvWvCDuTh1VsCVaJSzyfk=";
+    sha256 = "sha256-+yN08MAoFaixvt2EexhRNucG6I4v2FdHf44XlYIwzhA=";
   };
 
   vendorSha256 = "sha256-KABezphT5/o3XWSFNe2OvfawFR8uwsGMnjsI9xh378Q=";
diff --git a/pkgs/development/tools/electron/default.nix b/pkgs/development/tools/electron/default.nix
index 0ed800eb7c631..1eb6144b4c3be 100644
--- a/pkgs/development/tools/electron/default.nix
+++ b/pkgs/development/tools/electron/default.nix
@@ -23,7 +23,7 @@ let
 in
 rec {
 
-  electron = electron_17;
+  electron = electron_18;
 
   electron_9 = mkElectron "9.4.4" {
     x86_64-linux = "781d6ca834d415c71078e1c2c198faba926d6fce19e31448bbf4450869135450";
@@ -83,33 +83,43 @@ rec {
     headers = "181b2agnf4b5s81p2rdnd6wkw9c2ri4cv1x0wwf7rj60axvzvydm";
   };
 
-  electron_15 = mkElectron "15.5.1" {
-    armv7l-linux = "222e9ad3210cf538c45f938b5b1a5d901b36fb6ec09461446e4ab4ea6ee9bc1b";
-    aarch64-linux = "16a0053036a9f6ba947445c85bacda720975a23a910e78cab8dce1bf8ad2acf7";
-    x86_64-linux = "99867ef0eef53f214ef4c8a4ec0223890d9c38b73fd6bf4fb49a9e400dff5726";
-    i686-linux = "6d65c900c77b9e259932b20978d78a56bb04fad590f29a5935d8a31f5e0891db";
-    x86_64-darwin = "54e6312d5e06e16eab78d86ddb01553864b66f608d017c7a1c4a0a318be32081";
-    aarch64-darwin = "6472bea7f38f38c20a8c87e6daf70ca0d00b7c29b1641eeda6c8d45f9e60784b";
-    headers = "0dgxyndsyhk5m9m8iiy2h3vg1gz1xg5nj75537apsh9mdiizsfhk";
+  electron_15 = mkElectron "15.5.2" {
+    armv7l-linux = "da434095fd7cc17d85ebca5eab3510ec7ff73ace4edc933fe2f27a716ca711c0";
+    aarch64-linux = "bcec3f962c7acefc8690680a19df9d83721db7e5db55c7b7a8946365139457a6";
+    x86_64-linux = "a4a95888c313dbe279f5f9d9dfd99f56a2a1b6b905fb6cba3b284322fe19a530";
+    i686-linux = "0fd1dd9027bfdbc573fd39e163b6b3f8c07e8ac1586a554e65e7324e7fa7ea35";
+    x86_64-darwin = "688cc1d501d32afa5efe1883be42446b61f404d4a5e84bd9815254b5437c869b";
+    aarch64-darwin = "b43237d7612ada2f2dccaf6e13fa70ba938dc48f1e2f895558949dd372171db7";
+    headers = "0jbxazkjkm8g8b8d0ini2l4q9z7885mz5vyj74lf85lqdfqzgzc0";
   };
 
-  electron_16 = mkElectron "16.2.1" {
-    armv7l-linux = "d55daeffed60cfd0c2de4ea8cab102ec5957dbd0cd863add881080e891b02334";
-    aarch64-linux = "6446c665a1c6d7648dbeae94a669423b4c6768bafa96f0d3f8072b8c5d5a949e";
-    x86_64-linux = "7b27a8531a8ef60fa27dd119422a81a710e09f7d8cb01777f1fe7b7ab67e3ac4";
-    i686-linux = "eb7e0c8113af80f0e4edbae35d2cca718c1e98966da87041304fa6afb2d3e4c0";
-    x86_64-darwin = "0386e3318d4b5cfabccc226ca88bd9946669901f381e3817d1d414b1356e472c";
-    aarch64-darwin = "280660c0333702de9d95bcf9a21d3db8d148bef2a5946bb57d20b9e5f2aadb96";
-    headers = "121wrzy81h9m12y83mb0xs9jbm5l4w31f831lmb4wmkkg54bvcwj";
+  electron_16 = mkElectron "16.2.3" {
+    armv7l-linux = "9b442b17349dcec08e6efadecf9d338a7f4b2955635fed2a78374af850ceee5d";
+    aarch64-linux = "eec581d162b494a7bcba4b0221f3beac9f359b48fb8612c83ce6ad7ac63094cd";
+    x86_64-linux = "2c032baff08b40f106dfcd86e7b63c6275f13e64d26b8c301af704563edf8600";
+    i686-linux = "227e9f5670a2d92a814eeda41c7ef4efd8fc6150bee659e0f322a8d2481ecdec";
+    x86_64-darwin = "3a51ad480d4085a822b0526018805e64fe82f93b954abe500eaebb3c81c80d45";
+    aarch64-darwin = "38c736c336abf8747040f22542d6a0bd785b5a10f6ba01d71335cc5f77a3d0b5";
+    headers = "1a9kb89iigwmahjwq14i74rr6gj21gmpc106pg0il73c50khaxpz";
   };
 
-  electron_17 = mkElectron "17.3.1" {
-    armv7l-linux = "ad7864f9a580b3fd8865480caa6cccbaefa5d7e5fdbe455700ab711b0adf2228";
-    aarch64-linux = "e0f03aff5339e4dab85cbc970568ca31599ee0f032d1e766c23deea7d96654b0";
-    x86_64-linux = "59d13b1d060523d1098e6e1e5bf7c6f2494b713321541f863dc459a42d2c40a8";
-    i686-linux = "6d31d5117f4508bc7e0f9ecb6423d266b47fb5f074b0dfa8ddcfc2298c764151";
-    x86_64-darwin = "c70a6e906ae7ce02552f1722022147f2416f27de0f98b88a0b7b1a09e341426f";
-    aarch64-darwin = "76a9c8cbfa578c7e6678e6ccab2417374d1b3d3d81c6cac5ceea0aa058c12a8f";
-    headers = "11k5sw7wk0fjjdlhcvbkwpffslngm9ns8l4c7rxa4qx8n1six9sf";
+  electron_17 = mkElectron "17.4.1" {
+    armv7l-linux = "d1329468cb21039fb5b503fc813381f9be4d43422383b44f859b450be0e4200c";
+    aarch64-linux = "70d29bca5f884753341a11b0445ccf159c0f43dfae16eb60c53946582c3128b0";
+    x86_64-linux = "f9437a86947c418d92eabea14b268dcc4a5dde74cc6927530c1e9195e4aeddf8";
+    i686-linux = "436f44d778acc41a4a07cc4ee23ab861e2c4d72e4b1335e3c4ccfd4855deb594";
+    x86_64-darwin = "0357bcf841bc246d01df8b838fa5de9856bd48f4fa6b2b4f3053ba3db492e54b";
+    aarch64-darwin = "827f6ecb7bc4d4ed88eb22e1b02615465ad13ace918d294c873a67a34c207dcf";
+    headers = "064qnwv6gqn502r1cv7vi6ahvgyxcqq7mv0rmk2bxfpkr5x6hgmh";
+  };
+
+  electron_18 = mkElectron "18.1.0" {
+    armv7l-linux = "c2296f3f68938aab4cef07b747d2dd28973625b6717163b9c51fbcf1509fd8ff";
+    aarch64-linux = "13bd4998d0d86ccf4cb87d11f9581d5a6063b4585fc4828e130054527dfb9179";
+    x86_64-linux = "7f95069d58e6843e6ae2b8f02619d4dcef7db4c35bd6e90b903268d83b939fba";
+    i686-linux = "e952d06b3828695636de522e3af8140543ecbe02d7351dd002b0ffb9e2a09705";
+    x86_64-darwin = "24dd64a66b820c9553c5e5570907da6c98e808d33fac98072b9c2a8f1659cb14";
+    aarch64-darwin = "97adf13306c9b3b304d3e9ddf68f5f7fb9b79c9a1342114e3671182f3cc9e808";
+    headers = "0gl30q2igr9c8sjlhyj5w57dm5navpkas5hnz9yl7sasbx66v10v";
   };
 }
diff --git a/pkgs/development/tools/electron/generic.nix b/pkgs/development/tools/electron/generic.nix
index 7fefe186c1089..05d9facf60be0 100644
--- a/pkgs/development/tools/electron/generic.nix
+++ b/pkgs/development/tools/electron/generic.nix
@@ -62,10 +62,10 @@ let
 
   electronLibPath = with lib; makeLibraryPath (
     [ libuuid at-spi2-atk at-spi2-core libappindicator-gtk3 ]
-    ++ optionals (! versionOlder version "9.0.0") [ libdrm mesa ]
-    ++ optionals (! versionOlder version "11.0.0") [ libxkbcommon ]
-    ++ optionals (! versionOlder version "12.0.0") [ libxshmfence ]
-    ++ optionals (! versionOlder version "17.0.0") [ libglvnd ]
+    ++ optionals (versionAtLeast version "9.0.0") [ libdrm mesa ]
+    ++ optionals (versionAtLeast version "11.0.0") [ libxkbcommon ]
+    ++ optionals (versionAtLeast version "12.0.0") [ libxshmfence ]
+    ++ optionals (versionAtLeast version "17.0.0") [ libglvnd ]
   );
 
   linux = {
@@ -92,7 +92,8 @@ let
       patchelf \
         --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
         --set-rpath "${atomEnv.libPath}:${electronLibPath}:$out/lib/electron" \
-        $out/lib/electron/electron
+        $out/lib/electron/electron \
+        ${lib.optionalString (lib.versionAtLeast version "15.0.0") "$out/lib/electron/chrome_crashpad_handler" }
 
       wrapProgram $out/lib/electron/electron \
         --prefix LD_PRELOAD : ${lib.makeLibraryPath [ libXScrnSaver ]}/libXss.so.1 \
diff --git a/pkgs/development/tools/errcheck/default.nix b/pkgs/development/tools/errcheck/default.nix
index a387c14c0a5c9..eb8fd99f9e5a1 100644
--- a/pkgs/development/tools/errcheck/default.nix
+++ b/pkgs/development/tools/errcheck/default.nix
@@ -2,22 +2,23 @@
 
 buildGoModule rec {
   pname = "errcheck";
-  version = "1.6.0";
+  version = "unstable-2022-03-26";
 
   src = fetchFromGitHub {
     owner = "kisielk";
     repo = "errcheck";
-    rev = "v${version}";
-    sha256 = "sha256-Przf2c2jFNdkUq7IOUD7ChXHiSayAz4xTsNzajycYZ0=";
+    rev = "e62617a91f7bd1abab2cbe7f28966188dd85eee0";
+    sha256 = "sha256-RoPv6Odh8l9DF1S50pNEomLtI4uTDNjveOXZd4S52c0=";
   };
 
-  vendorSha256 = "sha256-rluaBdW+w2zPThELlBwX/6LXDgc2aIk/ucbrsrABpVc=";
+  vendorSha256 = "sha256-fDugaI9Fh0L27yKSFNXyjYLMMDe6CRgE6kVLiJ3+Kyw=";
+
+  subPackages = [ "." ];
 
   meta = with lib; {
-    description = "Program for checking for unchecked errors in go programs";
+    description = "Checks for unchecked errors in go programs";
     homepage = "https://github.com/kisielk/errcheck";
     license = licenses.mit;
     maintainers = with maintainers; [ kalbasit ];
-    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/tools/esbuild/default.nix b/pkgs/development/tools/esbuild/default.nix
index 8844af40f4d11..1af15e82110e6 100644
--- a/pkgs/development/tools/esbuild/default.nix
+++ b/pkgs/development/tools/esbuild/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "esbuild";
-  version = "0.14.29";
+  version = "0.14.38";
 
   src = fetchFromGitHub {
     owner = "evanw";
     repo = "esbuild";
     rev = "v${version}";
-    sha256 = "sha256-v16wKi+CphROS9s3PdzzuRoh3gLfSUgincyTp38WKxQ=";
+    sha256 = "sha256-rvMi1oC7qGidvi4zrm9KCMMntu6LJGVOGN6VmU2ivQE=";
   };
 
   vendorSha256 = "sha256-QPkBR+FscUc3jOvH7olcGUhM6OW4vxawmNJuRQxPuGs=";
diff --git a/pkgs/development/tools/evans/default.nix b/pkgs/development/tools/evans/default.nix
index 95e0839f46b35..82238d65d4ac8 100644
--- a/pkgs/development/tools/evans/default.nix
+++ b/pkgs/development/tools/evans/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "evans";
-  version = "0.10.3";
+  version = "0.10.5";
 
   src = fetchFromGitHub {
     owner = "ktr0731";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4KHJodqmx03uQ+HJBWmKbIBvkLh80N4fHnYL4GLciNc=";
+    sha256 = "sha256-3gl4m0zTe8y4KLMAy3I7YD4Q7gLrRf3QsJap2IGX9Tk=";
   };
 
   subPackages = [ "." ];
 
-  vendorSha256 = "sha256-to75gON3Kl0GHgVhhrW8I6GWOg9/KrUts3rwDLAfFnM=";
+  vendorSha256 = "sha256-BYOrby7tlQJ0ZjZHCeDWzsCv7jBfwX9RX1weLfEz+cU=";
 
   meta = with lib; {
     description = "More expressive universal gRPC client";
diff --git a/pkgs/development/tools/faas-cli/default.nix b/pkgs/development/tools/faas-cli/default.nix
index 58e048b4f5fe3..8486014883649 100644
--- a/pkgs/development/tools/faas-cli/default.nix
+++ b/pkgs/development/tools/faas-cli/default.nix
@@ -9,13 +9,13 @@ let
 in
 buildGoModule rec {
   pname = "faas-cli";
-  version = "0.14.3";
+  version = "0.14.4";
 
   src = fetchFromGitHub {
     owner = "openfaas";
     repo = "faas-cli";
     rev = version;
-    sha256 = "sha256-1aflQXfW/y31Dk0OZW77qNQKEwkhi6p8ZBfTUyRDbdo=";
+    sha256 = "sha256-hpQn1lEJP0FmU1jhmXDgV/11RbMdEqblLPIrTQLKLOc=";
   };
 
   CGO_ENABLED = 0;
@@ -35,6 +35,6 @@ buildGoModule rec {
     homepage = "https://github.com/openfaas/faas-cli";
     description = "Official CLI for OpenFaaS ";
     license = licenses.mit;
-    maintainers = with maintainers; [ welteki ];
+    maintainers = with maintainers; [ welteki techknowlogick ];
   };
 }
diff --git a/pkgs/development/tools/fdroidserver/default.nix b/pkgs/development/tools/fdroidserver/default.nix
index 328860385596e..9bbe61648526f 100644
--- a/pkgs/development/tools/fdroidserver/default.nix
+++ b/pkgs/development/tools/fdroidserver/default.nix
@@ -5,14 +5,14 @@
 }:
 
 python.pkgs.buildPythonApplication rec {
-  version = "2.0.3";
+  version = "2.1";
   pname = "fdroidserver";
 
   src = fetchFromGitLab {
     owner = "fdroid";
     repo = "fdroidserver";
     rev = version;
-    sha256 = "sha256-/tX45t/DsWd0/R9VJJsqNjoOkgGIvqvq05YaVp0pLf0=";
+    sha256 = "0xmmjj7f05p4q8xbbkxqns2vvk2rsvb9n43vjdv0wbydmgpa34k7";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/flyway/default.nix b/pkgs/development/tools/flyway/default.nix
index 0e1d18d2eb1ca..3f3a2b190eb52 100644
--- a/pkgs/development/tools/flyway/default.nix
+++ b/pkgs/development/tools/flyway/default.nix
@@ -1,10 +1,10 @@
 { lib, stdenv, fetchurl, jre_headless, makeWrapper }:
 stdenv.mkDerivation rec{
   pname = "flyway";
-  version = "7.13.0";
+  version = "8.5.9";
   src = fetchurl {
     url = "mirror://maven/org/flywaydb/flyway-commandline/${version}/flyway-commandline-${version}.tar.gz";
-    sha256 = "sha256-rZUVxswJdCFKwuXlzko+t+ZO1plRgH2VcZFJ5kkiM2s=";
+    sha256 = "sha256-AOfCYWjn8XyyFdz6BbYOysEE1TADfIk8CyPBHsQJTDE=";
   };
   nativeBuildInputs = [ makeWrapper ];
   dontBuild = true;
diff --git a/pkgs/development/tools/fq/default.nix b/pkgs/development/tools/fq/default.nix
index ad8c43195c9d2..add4e21be89da 100644
--- a/pkgs/development/tools/fq/default.nix
+++ b/pkgs/development/tools/fq/default.nix
@@ -2,7 +2,7 @@
 , buildGoModule
 , fetchFromGitHub
 , fq
-, testVersion
+, testers
 }:
 
 buildGoModule rec {
@@ -26,7 +26,7 @@ buildGoModule rec {
 
   subPackages = [ "." ];
 
-  passthru.tests = testVersion { package = fq; };
+  passthru.tests = testers.testVersion { package = fq; };
 
   meta = with lib; {
     description = "jq for binary formats";
diff --git a/pkgs/development/tools/gauge/default.nix b/pkgs/development/tools/gauge/default.nix
index 1048ca1944117..4a300df0577cc 100644
--- a/pkgs/development/tools/gauge/default.nix
+++ b/pkgs/development/tools/gauge/default.nix
@@ -4,7 +4,7 @@ buildGoModule rec {
   pname = "gauge";
   version = "1.4.3";
 
-  excludedPackages = ''\(build\|man\)'';
+  excludedPackages = [ "build" "man" ];
 
   src = fetchFromGitHub {
     owner = "getgauge";
diff --git a/pkgs/development/tools/ginkgo/default.nix b/pkgs/development/tools/ginkgo/default.nix
index 6719d71039211..9985d43da2f7c 100644
--- a/pkgs/development/tools/ginkgo/default.nix
+++ b/pkgs/development/tools/ginkgo/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
 
   # integration tests expect more file changes
   # types tests are missing CodeLocation
-  excludedPackages = "\\(integration\\|types\\)";
+  excludedPackages = [ "integration" "types" ];
 
   meta = with lib; {
     homepage = "https://onsi.github.io/ginkgo/";
diff --git a/pkgs/development/tools/git-series/default.nix b/pkgs/development/tools/git-series/default.nix
index 752cefad3c275..31d1c635512c4 100644
--- a/pkgs/development/tools/git-series/default.nix
+++ b/pkgs/development/tools/git-series/default.nix
@@ -1,54 +1,36 @@
-{ lib, fetchFromGitHub, fetchpatch, rustPlatform
-, openssl, cmake, perl, pkg-config, zlib, curl, libgit2, libssh2
+{ lib, rustPlatform, fetchFromGitHub
+, pkg-config, openssl, zlib, curl, libgit2, libssh2
 }:
 
-with rustPlatform;
-
-buildRustPackage rec {
-  version = "0.9.1";
+rustPlatform.buildRustPackage rec {
   pname = "git-series";
+  version = "unstable-2019-10-15";
 
   src = fetchFromGitHub {
     owner = "git-series";
     repo = "git-series";
-    rev = version;
-    sha256 = "07mgq5h6r1gf3jflbv2khcz32bdazw7z1s8xcsafdarnm13ps014";
+    rev = "c570a015e15214be46a7fd06ba08526622738e20";
+    sha256 = "1i0m2b7ma6xvkg95k57gaj1wpc1rfvka6h8jr5hglxmqqbz6cb6w";
   };
 
-  cargoSha256 = "0870f4rd98fbmyl8524ivfg3xf4qpzb1x68q1idnl47mmf68pyx8";
-
-  cargoPatches = [
-    (fetchpatch {
-      url = "https://github.com/Mic92/git-series/commit/3aa30a47d74ebf90b444dccdf8c153f07f119483.patch";
-      sha256 = "06v8br9skvy75kcw2zgbswxyk82sqzc8smkbqpzmivxlc2i9rnh0";
-    })
-    # Update Cargo.lock to allow using OpenSSL 1.1
-    (fetchpatch {
-      url = "https://github.com/edef1c/git-series/commit/11fe70ffcc18200e5f2a159c36aab070e8ff4228.patch";
-      sha256 = "0clwllf9mrhq86dhzyyhkw1q2ggpgqpw7s05dvp3gj9zhfsyya4s";
-    })
-    # Cargo.lock: Update url, which fixes incompatibility with NLL
-    (fetchpatch {
-      url = "https://github.com/edef1c/git-series/commit/27ff2ecf2d615dae1113709eca0e43596de12ac4.patch";
-      sha256 = "1byjbdcx56nd0bbwz078bl340rk334mb34cvaa58h76byvhpkw10";
-    })
-  ];
+  cargoSha256 = "1hmx14z3098c98achgii0jkcm4474iw762rmib77amcsxj73zzdh";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ openssl zlib curl libgit2 libssh2 ];
 
   LIBGIT2_SYS_USE_PKG_CONFIG = true;
   LIBSSH2_SYS_USE_PKG_CONFIG = true;
-  nativeBuildInputs = [ cmake pkg-config perl ];
-  buildInputs = [ openssl zlib curl libgit2 libssh2 ];
 
-  postBuild = ''
+  postInstall = ''
     install -D "$src/git-series.1" "$out/man/man1/git-series.1"
   '';
 
   meta = with lib; {
     description = "A tool to help with formatting git patches for review on mailing lists";
     longDescription = ''
-          git series tracks changes to a patch series over time. git
-          series also tracks a cover letter for the patch series,
-          formats the series for email, and prepares pull requests.
+      git series tracks changes to a patch series over time. git
+      series also tracks a cover letter for the patch series,
+      formats the series for email, and prepares pull requests.
     '';
     homepage = "https://github.com/git-series/git-series";
 
diff --git a/pkgs/development/tools/global-platform-pro/default.nix b/pkgs/development/tools/global-platform-pro/default.nix
index 4d80010f71eab..97748e9e78e9d 100644
--- a/pkgs/development/tools/global-platform-pro/default.nix
+++ b/pkgs/development/tools/global-platform-pro/default.nix
@@ -63,6 +63,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/martinpaljak/GlobalPlatformPro";
     license = with licenses; [ lgpl3 ];
     maintainers = with maintainers; [ ekleog ];
+    mainProgram = "gp";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/go-containerregistry/default.nix b/pkgs/development/tools/go-containerregistry/default.nix
index 4aefc02e152bc..d0f02795ce34e 100644
--- a/pkgs/development/tools/go-containerregistry/default.nix
+++ b/pkgs/development/tools/go-containerregistry/default.nix
@@ -4,13 +4,13 @@ let bins = [ "crane" "gcrane" ]; in
 
 buildGoModule rec {
   pname = "go-containerregistry";
-  version = "0.6.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0sk3g1i4w8sh40y1ffa61ap7jsscdvnhvh09k8nznydi465csbmq";
+    sha256 = "sha256-TbMx+DVIYzhQ50f7sDXfhQnT/U6U+G9GTUbtYSu4/KI=";
   };
   vendorSha256 = null;
 
diff --git a/pkgs/development/tools/go-migrate/default.nix b/pkgs/development/tools/go-migrate/default.nix
index ed2d508017a09..2b7b70e36c48d 100644
--- a/pkgs/development/tools/go-migrate/default.nix
+++ b/pkgs/development/tools/go-migrate/default.nix
@@ -15,11 +15,13 @@ buildGoModule rec {
 
   subPackages = [ "cmd/migrate" ];
 
+  tags = [ "postgres" "mysql" "redshift" "cassandra" "spanner" "cockroachdb" "clickhouse" "mongodb" "sqlserver" "firebird" "neo4j" "pgx" ];
+
   meta = with lib; {
-    homepage    = "https://github.com/golang-migrate/migrate";
+    homepage = "https://github.com/golang-migrate/migrate";
     description = "Database migrations. CLI and Golang library";
     maintainers = with maintainers; [ offline ];
-    license     = licenses.mit;
+    license = licenses.mit;
     mainProgram = "migrate";
   };
 }
diff --git a/pkgs/development/tools/go-minimock/default.nix b/pkgs/development/tools/go-minimock/default.nix
index e2146eb5769f8..230840807a0a8 100644
--- a/pkgs/development/tools/go-minimock/default.nix
+++ b/pkgs/development/tools/go-minimock/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     description = "A golang mock generator from interfaces";
     license = licenses.mit;
     maintainers = with maintainers; [ svrana ];
+    mainProgram = "minimock";
   };
 }
diff --git a/pkgs/development/tools/go-mockery/default.nix b/pkgs/development/tools/go-mockery/default.nix
index 7563146afa9b5..b1673ecfe1e36 100644
--- a/pkgs/development/tools/go-mockery/default.nix
+++ b/pkgs/development/tools/go-mockery/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
     homepage = "https://github.com/vektra/mockery";
     description = "A mock code autogenerator for Golang";
     maintainers = with maintainers; [ fbrs ];
+    mainProgram = "mockery";
     license = licenses.bsd3;
   };
 }
diff --git a/pkgs/development/tools/go-motion/default.nix b/pkgs/development/tools/go-motion/default.nix
index 9ece650f0cb29..5004afc28e359 100644
--- a/pkgs/development/tools/go-motion/default.nix
+++ b/pkgs/development/tools/go-motion/default.nix
@@ -9,7 +9,6 @@ buildGoPackage rec {
   rev = "218875ebe23806e7af82f3b5b14bb3355534f679";
 
   goPackagePath = "github.com/fatih/motion";
-  excludedPackages = "testdata";
 
   src = fetchFromGitHub {
     inherit rev;
diff --git a/pkgs/development/tools/go-protobuf/default.nix b/pkgs/development/tools/go-protobuf/default.nix
index 72dabc3b93806..00e62c87cb328 100644
--- a/pkgs/development/tools/go-protobuf/default.nix
+++ b/pkgs/development/tools/go-protobuf/default.nix
@@ -13,8 +13,6 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-CcJjFMslSUiZMM0LLMM3BR53YMxyWk8m7hxjMI9tduE=";
 
-  doCheck = false;
-
   meta = with lib; {
     homepage    = "https://github.com/golang/protobuf";
     description = " Go bindings for protocol buffer";
diff --git a/pkgs/development/tools/go-swagger/default.nix b/pkgs/development/tools/go-swagger/default.nix
index f966833224436..f438584a29215 100644
--- a/pkgs/development/tools/go-swagger/default.nix
+++ b/pkgs/development/tools/go-swagger/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     homepage = "https://github.com/go-swagger/go-swagger";
     license = licenses.asl20;
     maintainers = with maintainers; [ kalbasit ];
+    mainProgram = "swagger";
   };
 }
diff --git a/pkgs/development/tools/go-task/default.nix b/pkgs/development/tools/go-task/default.nix
index d6e5855d992c0..ff8a8174fd750 100644
--- a/pkgs/development/tools/go-task/default.nix
+++ b/pkgs/development/tools/go-task/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "go-task";
-  version = "3.11.0";
+  version = "3.12.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "task";
     rev = "v${version}";
-    sha256 = "sha256-KHeZ0UH7qa+fii+sT7q9ri3DpLOKqQZqCAKQYn4l5M8=";
+    sha256 = "sha256-FArt9w4nZJW/Kql3Y2rr/IVz+SnWCS2lzNMWF6TN0Bg=";
   };
 
-  vendorSha256 = "sha256-u+LeH9GijquBeYlA3f2GcyoSP/S7BtBqb8C9OgEA9fY=";
+  vendorSha256 = "sha256-73DtLYyq3sltzv4VtZMlZaSbP9zA9RZw2wgXVkzwrso=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/gocode-gomod/default.nix b/pkgs/development/tools/gocode-gomod/default.nix
index fca346b78c429..c07d38b607335 100644
--- a/pkgs/development/tools/gocode-gomod/default.nix
+++ b/pkgs/development/tools/gocode-gomod/default.nix
@@ -9,8 +9,6 @@ buildGoModule rec {
   # standard packages.
   allowGoReference = true;
 
-  excludedPackages = "internal/suggest/testdata";
-
   src = fetchFromGitHub {
     owner = "stamblerre";
     repo = "gocode";
diff --git a/pkgs/development/tools/gocode/default.nix b/pkgs/development/tools/gocode/default.nix
index be9f70da9341f..687b69cf20278 100644
--- a/pkgs/development/tools/gocode/default.nix
+++ b/pkgs/development/tools/gocode/default.nix
@@ -6,7 +6,6 @@ buildGoPackage rec {
   rev = "4acdcbdea79de6b3dee1c637eca5cbea0fdbe37c";
 
   goPackagePath = "github.com/mdempsky/gocode";
-  excludedPackages = "internal/suggest/testdata";
 
   # we must allow references to the original `go` package,
   # because `gocode` needs to dig into $GOROOT to provide completions for the
diff --git a/pkgs/development/tools/godot/default.nix b/pkgs/development/tools/godot/default.nix
index 1860b864fd52c..1bf38bbacf368 100644
--- a/pkgs/development/tools/godot/default.nix
+++ b/pkgs/development/tools/godot/default.nix
@@ -31,13 +31,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "godot";
-  version = "3.4.2";
+  version = "3.4.4";
 
   src = fetchFromGitHub {
     owner = "godotengine";
     repo = "godot";
     rev = "${version}-stable";
-    sha256 = "sha256-RVXBFTHiI2yAkXWlHNa/jL8svQgqtsml6RuykhL1qa4=";
+    sha256 = "sha256-3AESLzqozi7Fc80u8Ml3ergZMkIhHy4tNlRe/3FsE6k=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/tools/gofumpt/default.nix b/pkgs/development/tools/gofumpt/default.nix
index 9c8f5e20b7e50..9030a185d5666 100644
--- a/pkgs/development/tools/gofumpt/default.nix
+++ b/pkgs/development/tools/gofumpt/default.nix
@@ -13,8 +13,6 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-Il1E1yOejLEdKRRMqelGeJbHRjx4qFymf7N98BEdFzg=";
 
-  doCheck = false;
-
   meta = with lib; {
     description = "A stricter gofmt";
     homepage = "https://github.com/mvdan/gofumpt";
diff --git a/pkgs/development/tools/gogetdoc/default.nix b/pkgs/development/tools/gogetdoc/default.nix
index 2a111a8d1ab34..6f7c189ea9d2e 100644
--- a/pkgs/development/tools/gogetdoc/default.nix
+++ b/pkgs/development/tools/gogetdoc/default.nix
@@ -12,8 +12,6 @@ buildGoModule rec {
 
   doCheck = false;
 
-  excludedPackages = "\\(testdata\\)";
-
   src = fetchFromGitHub {
     inherit rev;
 
diff --git a/pkgs/development/tools/gojq/default.nix b/pkgs/development/tools/gojq/default.nix
new file mode 100644
index 0000000000000..08fe68e3a0a1f
--- /dev/null
+++ b/pkgs/development/tools/gojq/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildGoModule, fetchFromGitHub, testers, gojq }:
+
+buildGoModule rec {
+  pname = "gojq";
+  version = "0.12.7";
+
+  src = fetchFromGitHub {
+    owner = "itchyny";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-aQZLuwMFnggtwHZaE6KGBKJSbtmAz+Cs1RqLgvIsO24=";
+  };
+
+  vendorSha256 = "sha256-b7TQywIOxzFnUNwgxGFR3W++QGHYUROBG7P/lTRmhGc=";
+
+  ldflags = [ "-s" "-w" ];
+
+  passthru.tests.version = testers.testVersion {
+    package = gojq;
+  };
+
+  meta = with lib; {
+    description = "Pure Go implementation of jq";
+    homepage = "https://github.com/itchyny/gojq";
+    license = licenses.mit;
+    maintainers = with maintainers; [ aaronjheng ];
+  };
+}
diff --git a/pkgs/development/tools/golint/default.nix b/pkgs/development/tools/golint/default.nix
index 3187f793127ee..4a835067ac81c 100644
--- a/pkgs/development/tools/golint/default.nix
+++ b/pkgs/development/tools/golint/default.nix
@@ -1,24 +1,27 @@
 { lib, buildGoModule, fetchgit }:
 
 buildGoModule rec {
-  pname = "lint";
-  version = "20201208-${lib.strings.substring 0 7 rev}";
-  rev = "83fdc39ff7b56453e3793356bcff3070b9b96445";
-
-  excludedPackages = "testdata";
+  pname = "golint";
+  version = "unstable-2020-12-08";
 
   # we must allow references to the original `go` package, as golint uses
   # compiler go/build package to load the packages it's linting.
   allowGoReference = true;
 
   src = fetchgit {
-    inherit rev;
     url = "https://go.googlesource.com/lint";
+    rev = "83fdc39ff7b56453e3793356bcff3070b9b96445";
     sha256 = "sha256-g4Z9PREOxGoN7n/XhutawsITBznJlbz6StXeDYvOQ1c=";
   };
 
   vendorSha256 = "sha256-dPadFoymYu2Uw2AXZfbaBfxsN8IWMuK1TrcknHco3Bo=";
 
+  # tests no longer work:
+  # found packages pkg (4.go) and foo (blank-import-lib.go) in /build/lint-6edffad/testdata
+  # testdata/errorf-custom.go:9:2: cannot find package "." in:
+  #         /build/lint-6edffad/vendor/github.com/pkg/errors
+  doCheck = false;
+
   meta = with lib; {
     homepage = "https://golang.org";
     description = "Linter for Go source code";
diff --git a/pkgs/development/tools/gomplate/default.nix b/pkgs/development/tools/gomplate/default.nix
index 10f853a65237f..087c4fcf3c334 100644
--- a/pkgs/development/tools/gomplate/default.nix
+++ b/pkgs/development/tools/gomplate/default.nix
@@ -2,21 +2,26 @@
 
 buildGoModule rec {
   pname = "gomplate";
-  version = "3.9.0";
+  version = "3.10.0";
   owner = "hairyhenderson";
   rev = "v${version}";
 
   src = fetchFromGitHub {
     inherit owner rev;
     repo = pname;
-    sha256 = "sha256-liy8cqn+hWoTOHchCY1LLu23tNvz7eGA+AN0d0APjC4=";
+    sha256 = "0dbi9saxbwcvypxc0s656ln9zq2vysx8dhrcz488nmy6rcpqiiah";
   };
 
-  vendorSha256 = "sha256-Ph9z/Tom7O7V7yZ/On+etty+Bl653HiY/J3d3yfweeQ=";
+  vendorSha256 = "0rvki8ghlbbaqgnjfsbs1jswj08jfzmnz9ilynv2c6kfkx9zs108";
 
-  # some tests require network access
   postPatch = ''
-    rm net/net_test.go
+    # some tests require network access
+    rm net/net_test.go \
+      internal/tests/integration/datasources_blob_test.go \
+      internal/tests/integration/datasources_git_test.go
+    # some tests rely on external tools we'd rather not depend on
+    rm internal/tests/integration/datasources_consul_test.go \
+      internal/tests/integration/datasources_vault*_test.go
   '';
 
   ldflags = [
diff --git a/pkgs/development/tools/gopls/default.nix b/pkgs/development/tools/gopls/default.nix
index 069cd2b37fe3c..bc94c6a6ae607 100644
--- a/pkgs/development/tools/gopls/default.nix
+++ b/pkgs/development/tools/gopls/default.nix
@@ -1,18 +1,18 @@
-{ lib, buildGo118Module, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGo118Module rec {
+buildGoModule rec {
   pname = "gopls";
-  version = "0.8.1";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     owner = "golang";
     repo = "tools";
     rev = "gopls/v${version}";
-    sha256 = "sha256-ypuZQt6iF1QRk/FsoTKnJlb5CWIEkvK7r37t4rSxhmU=";
+    sha256 = "sha256-X5U06TEkf1vfCyV95wkg2qVd7I+8S8UPBgwacG0q85U=";
   };
 
   modRoot = "gopls";
-  vendorSha256 = "sha256-SY08322wuJl8F790oXGmYo82Yadi14kDpoVGCGVMF0c=";
+  vendorSha256 = "sha256-p6biMwicaG5peIu6dp+Pzun8TeNWmgW2QpLIZWqnalg=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/gotestsum/default.nix b/pkgs/development/tools/gotestsum/default.nix
index 5ab7497c9a225..1f62c61297d98 100644
--- a/pkgs/development/tools/gotestsum/default.nix
+++ b/pkgs/development/tools/gotestsum/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gotestsum";
-  version = "1.7.0";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "gotestyourself";
     repo = "gotestsum";
     rev = "v${version}";
-    sha256 = "sha256-nZaVi39dOytJTM69xpl+d9XoUt+yHdndPgY2ggfNeMQ=";
+    sha256 = "sha256-6GEkuVa6RCMv0FsTYXhhscVe3Ya78qwbj7Im9AL0fOo=";
   };
 
   vendorSha256 = "sha256-wP5y8Ec6eSe+rdMEQQdX0fFTQ0HWuiyBRHxGlraZd+o=";
diff --git a/pkgs/development/tools/gotools/default.nix b/pkgs/development/tools/gotools/default.nix
index ea79baa96a703..9ea238233c361 100644
--- a/pkgs/development/tools/gotools/default.nix
+++ b/pkgs/development/tools/gotools/default.nix
@@ -38,9 +38,7 @@ buildGoModule rec {
     export GOTOOLDIR=$out/bin
   '';
 
-  excludedPackages = "\\("
-    + lib.concatStringsSep "\\|" ([ "testdata" "vet" "cover" ])
-    + "\\)";
+  excludedPackages = [ "vet" "cover" ];
 
   # Set GOTOOLDIR for derivations adding this to buildInputs
   postInstall = ''
diff --git a/pkgs/development/tools/govers/default.nix b/pkgs/development/tools/govers/default.nix
index 5e2d89cfd5df7..eb234c82fc088 100644
--- a/pkgs/development/tools/govers/default.nix
+++ b/pkgs/development/tools/govers/default.nix
@@ -1,16 +1,16 @@
-{ lib, buildGoPackage, fetchgit }:
+{ lib, buildGoPackage, fetchFromGitHub }:
 
 buildGoPackage rec {
   pname = "govers";
-  version = "20160623-${lib.strings.substring 0 7 rev}";
-  rev = "77fd787551fc5e7ae30696e009e334d52d2d3a43";
+  version = "unstable-2016-06-23";
 
   goPackagePath = "github.com/rogpeppe/govers";
 
-  src = fetchgit {
-    inherit rev;
-    url = "https://github.com/rogpeppe/govers";
-    sha256 = "12w83vyi8mgn48fwdm2js693qcydimxapg8rk0yf01w0ab03r5wn";
+  src = fetchFromGitHub {
+    owner = "rogpeppe";
+    repo = "govers";
+    rev = "77fd787551fc5e7ae30696e009e334d52d2d3a43";
+    sha256 = "sha256-lpc8wFKAB+A8mBm9q3qNzTM8ktFS1MYdIvZVFP0eiIs=";
   };
 
   dontRenameImports = true;
diff --git a/pkgs/development/tools/gron/default.nix b/pkgs/development/tools/gron/default.nix
index a5247a3f80da3..3dbcf0fdc20ea 100644
--- a/pkgs/development/tools/gron/default.nix
+++ b/pkgs/development/tools/gron/default.nix
@@ -1,25 +1,17 @@
-{ lib, buildGoModule, fetchFromGitHub, fetchpatch }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "gron";
-  version = "0.6.1";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "tomnomnom";
     repo = "gron";
     rev = "v${version}";
-    sha256 = "0qmzawkhg0qn9kxxrssbdjni2khvamhrcklv3yxc0ljmh77mh61m";
+    sha256 = "sha256-ZkAfAQsaFX7npyDcBDFS4Xa8kOMVH6yGfxGD7c0iQ+o=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "fix-inconsistent-vendoring.patch";
-      url = "https://github.com/tomnomnom/gron/pull/85/commits/d549a6cb68ed0e0ec7cc81d8275353acfe218725.patch";
-      sha256 = "1461v4f7w6q75l3988br0g1ynfhzsh34z38pd2w8fp57vrgkcfi5";
-    })
-  ];
-
-  vendorSha256 = "sha256-Evn5R/LzripRgG0zOVP/DJrtjwNRwgKapsRdtZaZhlU=";
+  vendorSha256 = "sha256-K/QAG9mCIHe7PQhex3TntlGYAK9l0bESWk616N97dBs=";
 
   meta = with lib; {
     description = "Make JSON greppable!";
diff --git a/pkgs/development/tools/haskell/hyper-haskell/server.nix b/pkgs/development/tools/haskell/hyper-haskell/server.nix
index b8e5aa281eaab..ca272eb362627 100644
--- a/pkgs/development/tools/haskell/hyper-haskell/server.nix
+++ b/pkgs/development/tools/haskell/hyper-haskell/server.nix
@@ -1,4 +1,4 @@
-{ stdenv, ghcWithPackages, makeWrapper, packages }:
+{ stdenv, ghcWithPackages, makeWrapper, packages, lib }:
 
 let
 hyperHaskellEnv = ghcWithPackages (self: [ self.hyper-haskell-server ] ++ packages self);
@@ -19,4 +19,11 @@ in stdenv.mkDerivation {
   # trivial derivation
   preferLocalBuild = true;
   allowSubstitutes = false;
+
+  meta = {
+    # Marked as broken because the underlying
+    # haskellPackages.hyper-haskell-server is marked as broken.
+    hydraPlatforms = lib.platforms.none;
+    broken = true;
+  };
 }
diff --git a/pkgs/development/tools/hcloud/default.nix b/pkgs/development/tools/hcloud/default.nix
index 0e9474e4f390e..e311a4b8107cd 100644
--- a/pkgs/development/tools/hcloud/default.nix
+++ b/pkgs/development/tools/hcloud/default.nix
@@ -2,22 +2,23 @@
 
 buildGoModule rec {
   pname = "hcloud";
-  version = "1.29.0";
+  version = "1.29.5";
 
   src = fetchFromGitHub {
     owner = "hetznercloud";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-B5L4vK5JkcYHqdyxAsP+tBcA6PtM2Gd4JwtW5nMuIXQ=";
+    sha256 = "sha256-a+AXWr/60VFdNk+UkDYRXo5ib8LvaCVpjNi1GFrRVho=";
   };
 
-  nativeBuildInputs = [ installShellFiles ];
-
-  vendorSha256 = "sha256-3YU6vAIzTzkEwyMPH4QSUuQ1PQlrWnfRRCA1fHMny48=";
+  vendorSha256 = "sha256-iJnjmfP9BcT+OXotbS2+OSWGxQaMXwdlR1WTi04FesM=";
 
-  doCheck = false;
+  ldflags = [
+    "-s" "-w"
+    "-X github.com/hetznercloud/cli/internal/version.Version=${version}"
+  ];
 
-  ldflags = [ "-s" "-w" "-X github.com/hetznercloud/cli/cli.Version=${version}" ];
+  nativeBuildInputs = [ installShellFiles ];
 
   postInstall = ''
     for shell in bash zsh; do
diff --git a/pkgs/development/tools/hjson-go/default.nix b/pkgs/development/tools/hjson-go/default.nix
index ce6da30d3b581..3b2dc50152167 100644
--- a/pkgs/development/tools/hjson-go/default.nix
+++ b/pkgs/development/tools/hjson-go/default.nix
@@ -17,6 +17,7 @@ buildGoPackage rec {
     src.meta // {
       description = "Utility to convert JSON to and from HJSON";
       maintainers = with maintainers; [ ehmry ];
+      mainProgram = "hjson-cli";
       license = licenses.mit;
     };
 }
diff --git a/pkgs/development/tools/htmltest/default.nix b/pkgs/development/tools/htmltest/default.nix
index 06e92e3639f92..aac3096a722c0 100644
--- a/pkgs/development/tools/htmltest/default.nix
+++ b/pkgs/development/tools/htmltest/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "htmltest";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "wjdp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lj+bR27huswHemF8M+G69PblqnQQUWsg4jtLfz89yVY=";
+    sha256 = "sha256-Om3jnaHFEq8XJZhGolPax2NH7PFqtqMG5Rd7JTBdGf8=";
   };
 
   vendorSha256 = "0zx3ii9crick647kslzwg4d39li6jds938f9j9dp287rhrlzjfbm";
diff --git a/pkgs/development/tools/impl/default.nix b/pkgs/development/tools/impl/default.nix
index 15c1361abd223..e5792d3137dd6 100644
--- a/pkgs/development/tools/impl/default.nix
+++ b/pkgs/development/tools/impl/default.nix
@@ -2,25 +2,25 @@
 
 buildGoModule rec {
   pname = "impl";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "josharian";
     repo = "impl";
     rev = "v${version}";
-    sha256 = "0l21fkcgiaaf6ka91dmz8hx0l3nbp0kqi8p25kij1s5zb796z0dy";
+    sha256 = "sha256-OztQR1NusP7/FTm5kmuSSi1AC47DJFki7vVlPQIl6+8=";
   };
 
-  vendorSha256 = "0xkalwy02w62px01jdwwr3vwwsh50f22dsxf8lrrwmw6k0rq57zv";
+  vendorSha256 = "sha256-+5+CM5iGV54zRa7rJoQDBWrO98icNxlAv8JwATynanY=";
 
-  # go: cannot find GOROOT directory: go
-  doCheck = false;
+  preCheck = ''
+    export GOROOT="$(go env GOROOT)"
+  '';
 
   meta = with lib; {
     description = "Generate method stubs for implementing an interface";
     homepage = "https://github.com/josharian/impl";
     license = licenses.mit;
     maintainers = with maintainers; [ kalbasit ];
-    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/tools/ineffassign/default.nix b/pkgs/development/tools/ineffassign/default.nix
index 2158095775239..111048b562f39 100644
--- a/pkgs/development/tools/ineffassign/default.nix
+++ b/pkgs/development/tools/ineffassign/default.nix
@@ -9,7 +9,6 @@ buildGoPackage rec {
   rev = "1003c8bd00dc2869cb5ca5282e6ce33834fed514";
 
   goPackagePath = "github.com/gordonklaus/ineffassign";
-  excludedPackages = "testdata";
 
   src = fetchFromGitHub {
     inherit rev;
diff --git a/pkgs/development/tools/interfacer/default.nix b/pkgs/development/tools/interfacer/default.nix
deleted file mode 100644
index 4358ee244896f..0000000000000
--- a/pkgs/development/tools/interfacer/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ buildGoPackage
-, lib
-, fetchFromGitHub
-}:
-
-buildGoPackage rec {
-  pname = "interfacer-unstable";
-  version = "2018-08-31";
-  rev = "c20040233aedb03da82d460eca6130fcd91c629a";
-
-  goPackagePath = "mvdan.cc/interfacer";
-  excludedPackages = "check/testdata";
-
-  src = fetchFromGitHub {
-    inherit rev;
-
-    owner = "mvdan";
-    repo = "interfacer";
-    sha256 = "0cx4m74mvn200360pmsqxx4z0apk9fcknwwqh8r94zd3jfv4akq2";
-  };
-
-  goDeps = ./deps.nix;
-
-  meta = with lib; {
-    description = "A linter that suggests interface types";
-    homepage = "https://github.com/mvdan/interfacer";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ kalbasit ];
-    platforms = platforms.linux ++ platforms.darwin;
-  };
-}
diff --git a/pkgs/development/tools/interfacer/deps.nix b/pkgs/development/tools/interfacer/deps.nix
deleted file mode 100644
index 6810950878be5..0000000000000
--- a/pkgs/development/tools/interfacer/deps.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/kisielk/gotool";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kisielk/gotool";
-      rev = "80517062f582ea3340cd4baf70e86d539ae7d84d";
-      sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "96e9e165b75e735822645eff82850b08c377be36";
-      sha256 = "1zj9ck5sg9b0pphxybmvxf64hhcap7v7j37fx3v5aknf18crjjdg";
-    };
-  }
-  {
-    goPackagePath = "mvdan.cc/lint";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mvdan/lint";
-      rev = "adc824a0674b99099789b6188a058d485eaf61c0";
-      sha256 = "17mi2rvkg9kzv1shxcyawzcj4jj3v738d1j82fp4yygx859yvr8r";
-    };
-  }
-]
diff --git a/pkgs/development/tools/jl/default.nix b/pkgs/development/tools/jl/default.nix
index 15347432f70e9..bc41263e96f5e 100644
--- a/pkgs/development/tools/jl/default.nix
+++ b/pkgs/development/tools/jl/default.nix
@@ -34,4 +34,10 @@ mkDerivation rec {
   description = "Functional sed for JSON";
   maintainers = with lib.maintainers; [ fgaz ];
   homepage = "https://github.com/chrisdone/jl";
+
+  # jl needs to be updated to work with aeson-2.0.
+  # As far as I can tell, there is unfortunately no where to report issues upstream
+  # for us to be able to track when upstream adds aeson-2.0 support.
+  hydraPlatforms = lib.platforms.none;
+  broken = true;
 }
diff --git a/pkgs/development/tools/jql/default.nix b/pkgs/development/tools/jql/default.nix
index 0154df2c7fc0b..ba3635260125e 100644
--- a/pkgs/development/tools/jql/default.nix
+++ b/pkgs/development/tools/jql/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jql";
-  version = "3.2.0";
+  version = "3.2.4";
 
   src = fetchFromGitHub {
     owner = "yamafaktory";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-U++yypq9M1C6Sh9rv3rmn/qwTXWdPFDBpjFS6eoS2L4=";
+    sha256 = "sha256-wokdlmczClYwVskBDpKQyka1GiLf4JvRiooK+qo7Tv4=";
   };
 
-  cargoSha256 = "sha256-uyD+QBDfnZa3nfZcUAqruYqJ9nVAa5+XOPONds0ysXU=";
+  cargoSha256 = "sha256-6L78LxxzqkjP9k71WmZhkhNVdKLXUwSYioKynaETTaA=";
 
   meta = with lib; {
     description = "A JSON Query Language CLI tool built with Rust";
diff --git a/pkgs/development/tools/jsonnet-bundler/default.nix b/pkgs/development/tools/jsonnet-bundler/default.nix
index 87da63f0f354f..813c936cba3a8 100644
--- a/pkgs/development/tools/jsonnet-bundler/default.nix
+++ b/pkgs/development/tools/jsonnet-bundler/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/jsonnet-bundler/jsonnet-bundler";
     license = licenses.asl20;
     maintainers = with maintainers; [ preisschild ];
+    mainProgram = "jb";
   };
 }
diff --git a/pkgs/development/tools/konstraint/default.nix b/pkgs/development/tools/konstraint/default.nix
index d83f6db701a85..0c36636992a2e 100644
--- a/pkgs/development/tools/konstraint/default.nix
+++ b/pkgs/development/tools/konstraint/default.nix
@@ -1,22 +1,39 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "konstraint";
-  version = "0.18.0";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = "plexsystems";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-UHdmC6UoDxl/GfvUOmuBctPpxIYljOurnm1J3eEPFHA=";
+    sha256 = "sha256-BoH/lT+kYiwOtW82mmhhLZY3Xk2pRZHmNrEKJzPiG54=";
   };
-  vendorSha256 = "sha256-UssvmmZhq+SO3cPpZi3Diji7tIxrpyhqNIBajqzRjh8=";
+  vendorSha256 = "sha256-G6WigkkKZj/k+kYlKItSfnoXN8UZ60lFEkZcQaI9J5c=";
 
   # Exclude go within .github folder
   excludedPackages = ".github";
 
+  nativeBuildInputs = [ installShellFiles ];
+
   ldflags = [ "-s" "-w" "-X github.com/plexsystems/konstraint/internal/commands.version=${version}" ];
 
+  postInstall = ''
+    installShellCompletion --cmd konstraint \
+      --bash <($out/bin/konstraint completion bash) \
+      --fish <($out/bin/konstraint completion fish) \
+      --zsh <($out/bin/konstraint completion zsh)
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/konstraint --help
+    $out/bin/konstraint --version | grep "${version}"
+    runHook postInstallCheck
+  '';
+
   meta = with lib; {
     homepage = "https://github.com/plexsystems/konstraint";
     changelog = "https://github.com/plexsystems/konstraint/releases/tag/v${version}";
diff --git a/pkgs/development/tools/kotlin-language-server/default.nix b/pkgs/development/tools/kotlin-language-server/default.nix
index 144c159f36378..802763fc67ab1 100644
--- a/pkgs/development/tools/kotlin-language-server/default.nix
+++ b/pkgs/development/tools/kotlin-language-server/default.nix
@@ -1,11 +1,11 @@
-{ lib, stdenv, fetchurl, unzip, openjdk11, gradle }:
+{ lib, stdenv, fetchzip, openjdk11, gradle, makeWrapper, maven }:
 
 stdenv.mkDerivation rec {
   pname = "kotlin-language-server";
-  version = "1.2.0";
-  src = fetchurl {
+  version = "1.3.0";
+  src = fetchzip {
     url = "https://github.com/fwcd/kotlin-language-server/releases/download/${version}/server.zip";
-    sha256 = "sha256-GXr+sOGa09qeQrfaJYRPsoHULwfMst8tTr4y2cv752k=";
+    hash = "sha256-nqrZoSntomNLUMTni/yoiVhDOJFSFmZeGze8IJhITu0=";
   };
 
   dontBuild = true;
@@ -17,14 +17,19 @@ stdenv.mkDerivation rec {
     cp -r bin/* $out/bin
   '';
 
-  nativeBuildInputs = [ unzip gradle ];
+  nativeBuildInputs = [ gradle makeWrapper ];
   buildInputs = [ openjdk11 gradle ];
 
+  postFixup = ''
+    wrapProgram "$out/bin/kotlin-language-server" --set JAVA_HOME ${openjdk11} --prefix PATH : ${lib.strings.makeBinPath [ openjdk11 maven ] }
+  '';
+
   meta = {
     description = "kotlin language server";
     longDescription = ''
       About Kotlin code completion, linting and more for any editor/IDE
       using the Language Server Protocol Topics'';
+    maintainers = with lib.maintainers; [ vtuan10 ];
     homepage = "https://github.com/fwcd/kotlin-language-server";
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/tools/ktlint/default.nix b/pkgs/development/tools/ktlint/default.nix
index ad41cf6e4af7a..0f75662d70763 100644
--- a/pkgs/development/tools/ktlint/default.nix
+++ b/pkgs/development/tools/ktlint/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ktlint";
-  version = "0.45.1";
+  version = "0.45.2";
 
   src = fetchurl {
     url = "https://github.com/pinterest/ktlint/releases/download/${version}/ktlint";
-    sha256 = "sha256-fEMLZ8lV1RNFlf5ApfJOG9jI8JumpgP673+XSOWgsKI=";
+    sha256 = "sha256-iUkeqGXTabOc+sotz2Czitvc10mF9eAXDAu3MDQAATU=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/kube-aws/default.nix b/pkgs/development/tools/kube-aws/default.nix
deleted file mode 100644
index e095755df1103..0000000000000
--- a/pkgs/development/tools/kube-aws/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ lib, fetchFromGitHub, buildGoPackage }:
-
-with lib;
-
-buildGoPackage rec {
-  pname = "kube-aws";
-  version = "0.9.4";
-
-  goPackagePath = "github.com/coreos/kube-aws";
-
-  src = fetchFromGitHub {
-    owner = "coreos";
-    repo = "kube-aws";
-    rev = "v${version}";
-    sha256 = "11h14fsnflbx76rmpp0fxahbxi2qgcamgyxy9s4rmw83j2m8csxp";
-  };
-
-  preBuild = ''(
-    cd go/src/${goPackagePath}
-    go generate ./core/controlplane/config
-    go generate ./core/nodepool/config
-    go generate ./core/root/config
-  )'';
-
-  ldflags = [
-    "-X github.com/coreos/kube-aws/core/controlplane/cluster.VERSION=v${version}"
-  ];
-
-  meta = {
-    description = "Tool for deploying kubernetes on aws using coreos";
-    license = licenses.asl20;
-    homepage = "https://github.com/coreos/coreos-kubernetes";
-    maintainers = with maintainers; [offline];
-    platforms = with platforms; unix;
-  };
-}
diff --git a/pkgs/development/tools/kube-linter/default.nix b/pkgs/development/tools/kube-linter/default.nix
index d234e458c1846..e982cbfed173f 100644
--- a/pkgs/development/tools/kube-linter/default.nix
+++ b/pkgs/development/tools/kube-linter/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub, testVersion, kube-linter }:
+{ lib, buildGoModule, fetchFromGitHub, testers, kube-linter }:
 
 buildGoModule rec {
   pname = "kube-linter";
@@ -17,7 +17,7 @@ buildGoModule rec {
     "-s" "-w" "-X golang.stackrox.io/kube-linter/internal/version.version=${version}"
   ];
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = kube-linter;
     command = "kube-linter version";
   };
diff --git a/pkgs/development/tools/kubectx/default.nix b/pkgs/development/tools/kubectx/default.nix
index 8ddd7685dcfb9..1de22705ebdad 100644
--- a/pkgs/development/tools/kubectx/default.nix
+++ b/pkgs/development/tools/kubectx/default.nix
@@ -13,8 +13,6 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-4sQaqC0BOsDfWH3cHy2EMQNMq6qiAcbV+RwxCdcSxsg=";
 
-  doCheck = false;
-
   nativeBuildInputs = [ installShellFiles ];
 
   postInstall = ''
diff --git a/pkgs/development/tools/kustomize/default.nix b/pkgs/development/tools/kustomize/default.nix
index dcaafe676e9a3..49bf3f35ad879 100644
--- a/pkgs/development/tools/kustomize/default.nix
+++ b/pkgs/development/tools/kustomize/default.nix
@@ -1,31 +1,36 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "kustomize";
-  version = "4.5.3";
-  # rev is the commit of the tag, mainly for kustomize version command output
-  rev = "b2d65ddc98e09187a8e38adc27c30bab078c1dbf";
+  version = "4.5.4";
 
   ldflags = let t = "sigs.k8s.io/kustomize/api/provenance"; in
     [
       "-s"
       "-X ${t}.version=${version}"
-      "-X ${t}.gitCommit=${rev}"
+      "-X ${t}.gitCommit=${src.rev}"
     ];
 
   src = fetchFromGitHub {
     owner = "kubernetes-sigs";
     repo = pname;
     rev = "kustomize/v${version}";
-    sha256 = "sha256-sy429uTTYvjnweZlsuolBamcggRXmaR8uxD043GUIQE=";
+    sha256 = "sha256-7Ode+ONgWJRNSbIpvIjhuT+oVvZgJfByFqS/iSUhcXw=";
   };
 
-  doCheck = true;
-
   # avoid finding test and development commands
-  sourceRoot = "source/kustomize";
+  modRoot = "kustomize";
+
+  vendorSha256 = "sha256-beIbeY/+k2NgotGw5zQFkYuqMKlwctoxuToZfiFlCm4=";
+
+  nativeBuildInputs = [ installShellFiles ];
 
-  vendorSha256 = "sha256-5kMMSr+YyuoASgW+qzkyO4CcDHFFANcsAZTUqHX5nGk=";
+  postInstall = ''
+    installShellCompletion --cmd kustomize \
+      --bash <($out/bin/kustomize completion bash) \
+      --fish <($out/bin/kustomize completion fish) \
+      --zsh <($out/bin/kustomize completion zsh)
+  '';
 
   meta = with lib; {
     description = "Customization of kubernetes YAML configurations";
diff --git a/pkgs/development/tools/metal-cli/default.nix b/pkgs/development/tools/metal-cli/default.nix
index a52a2a141c39a..f2194ecc428d2 100644
--- a/pkgs/development/tools/metal-cli/default.nix
+++ b/pkgs/development/tools/metal-cli/default.nix
@@ -2,27 +2,34 @@
 
 buildGoModule rec {
   pname = "metal-cli";
-  version = "0.7.3";
+  version = "0.7.4";
 
   src = fetchFromGitHub {
     owner = "equinix";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-PsTQuEbo1ReWwZV4D14mEGsU99j49kleiL/6Xyk+g9s=";
+    sha256 = "sha256-muhHBUb5Ttj4n6fJzIJMqics5rKupeSBZAd4JxZUe64=";
   };
 
+  vendorSha256 = "sha256-F8d5i9jvjY11Pv6w0ZXI3jr0Wix++B/w9oRTuJGpQfE=";
+
   ldflags = [
+    "-s" "-w"
     "-X github.com/equinix/metal-cli/cmd.Version=${version}"
   ];
 
-  vendorSha256 = "sha256-F8d5i9jvjY11Pv6w0ZXI3jr0Wix++B/w9oRTuJGpQfE=";
-
   doCheck = false;
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+      $out/bin/metal --version | grep ${version}
+  '';
+
   meta = with lib; {
     description = "Official Equinix Metal CLI";
     homepage = "https://github.com/equinix/metal-cli/";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne nshalman ];
+    mainProgram = "metal";
   };
 }
diff --git a/pkgs/development/tools/minizinc/default.nix b/pkgs/development/tools/minizinc/default.nix
index 131c899dcfb9a..b74add360be72 100644
--- a/pkgs/development/tools/minizinc/default.nix
+++ b/pkgs/development/tools/minizinc/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, cmake, flex, bison }:
 stdenv.mkDerivation rec {
   pname = "minizinc";
-  version = "2.6.1";
+  version = "2.6.2";
 
   nativeBuildInputs = [ cmake flex bison ];
 
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     owner = "MiniZinc";
     repo = "libminizinc";
     rev = version;
-    sha256 = "sha256-JCR2wvtMNyHBIIqrH5eBc0CIOVyo8mnPUZXtwjJt3sw=";
+    sha256 = "sha256-0yOZZJMDMmIBCJ2ZU3AfGvFSANqHNFN+UHYMI0nogOQ=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/misc/acr/default.nix b/pkgs/development/tools/misc/acr/default.nix
new file mode 100644
index 0000000000000..47a980caddfb9
--- /dev/null
+++ b/pkgs/development/tools/misc/acr/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "acr";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "radareorg";
+    repo = "acr";
+    rev = version;
+    hash = "sha256-ma4KhwGFlLCfRQvQ11OdyovgGbKQUBo6qVRrE7V2pNo=";
+  };
+
+  preConfigure = ''
+    chmod +x ./autogen.sh && ./autogen.sh
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/radareorg/acr/";
+    description = "Pure shell autoconf replacement";
+    longDescription = ''
+      ACR tries to replace autoconf functionality generating a full-compatible
+      'configure' script (runtime flags). But using shell-script instead of
+      m4. This means that ACR is faster, smaller and easy to use.
+    '';
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = with platforms; all;
+  };
+}
diff --git a/pkgs/development/tools/misc/binutils/0001-Revert-libtool.m4-fix-nm-BSD-flag-detection.patch b/pkgs/development/tools/misc/binutils/0001-Revert-libtool.m4-fix-nm-BSD-flag-detection.patch
new file mode 100644
index 0000000000000..f9c6e88d97b45
--- /dev/null
+++ b/pkgs/development/tools/misc/binutils/0001-Revert-libtool.m4-fix-nm-BSD-flag-detection.patch
@@ -0,0 +1,137 @@
+From beca4a2c25ee86e4020f8b8bddc4d8e0ed3430b3 Mon Sep 17 00:00:00 2001
+From: Andrew Childs <andrew.childs@bibo.com.ph>
+Date: Tue, 22 Feb 2022 11:28:04 +0900
+Subject: [PATCH] Revert "libtool.m4: fix nm BSD flag detection"
+
+This reverts commit bef9ef8ca0f941d743c77cc55b5fe7985990b2a7.
+---
+ ChangeLog  |  9 ------
+ libtool.m4 | 88 ++++++++++++++++++++++++++----------------------------
+ 2 files changed, 43 insertions(+), 54 deletions(-)
+
+diff --git a/ChangeLog b/ChangeLog
+index 18e8b6835da..c12f07403c3 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -375,15 +375,6 @@
+ 
+ 	* src-release.sh (GDB_SUPPPORT_DIRS): Add libbacktrace.
+ 
+-2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
+-
+-	PR libctf/27967
+-	* libtool.m4 (LT_PATH_NM): Try BSDization flags with a user-provided
+-	NM, if there is one.  Run nm on itself, not on /dev/null, to avoid
+-	errors from nms that refuse to work on non-regular files.  Remove
+-	other workarounds for this problem.  Strip out blank lines from the
+-	nm output.
+-
+ 2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
+ 
+ 	PR libctf/27967
+diff --git a/libtool.m4 b/libtool.m4
+index a216bb14e99..7a711249304 100644
+--- a/libtool.m4
++++ b/libtool.m4
+@@ -3200,55 +3200,53 @@ _LT_DECL([], [file_magic_cmd], [1],
+ 
+ # LT_PATH_NM
+ # ----------
+-# find the pathname to a BSD- or MS-compatible name lister, and any flags
+-# needed to make it compatible
++# find the pathname to a BSD- or MS-compatible name lister
+ AC_DEFUN([LT_PATH_NM],
+ [AC_REQUIRE([AC_PROG_CC])dnl
+ AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
+ [if test -n "$NM"; then
+-   # Let the user override the nm to test.
+-   lt_nm_to_check="$NM"
+- else
+-   lt_nm_to_check="${ac_tool_prefix}nm"
+-   if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+-     lt_nm_to_check="$lt_nm_to_check nm"
+-   fi
+- fi
+- for lt_tmp_nm in $lt_nm_to_check; do
+-   lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+-   for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+-     IFS="$lt_save_ifs"
+-     test -z "$ac_dir" && ac_dir=.
+-     case "$lt_tmp_nm" in
+-     */*|*\\*) tmp_nm="$lt_tmp_nm";;
+-     *) tmp_nm="$ac_dir/$lt_tmp_nm";;
+-     esac
+-     if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+-       # Check to see if the nm accepts a BSD-compat flag.
+-       # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+-       #   nm: unknown option "B" ignored
+-       case `"$tmp_nm" -B "$tmp_nm" 2>&1 | grep -v '^ *$' | sed '1q'` in
+-       *$tmp_nm*) lt_cv_path_NM="$tmp_nm -B"
+-	 break
+-	 ;;
+-       *)
+-	 case `"$tmp_nm" -p "$tmp_nm" 2>&1 | grep -v '^ *$' | sed '1q'` in
+-	 *$tmp_nm*)
+-	   lt_cv_path_NM="$tmp_nm -p"
+-	   break
+-	   ;;
+-	 *)
+-	   lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+-	   continue # so that we can try to find one that supports BSD flags
+-	   ;;
+-	 esac
+-	 ;;
+-       esac
+-     fi
+-   done
+-   IFS="$lt_save_ifs"
+- done
+- : ${lt_cv_path_NM=no}])
++  # Let the user override the test.
++  lt_cv_path_NM="$NM"
++else
++  lt_nm_to_check="${ac_tool_prefix}nm"
++  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
++    lt_nm_to_check="$lt_nm_to_check nm"
++  fi
++  for lt_tmp_nm in $lt_nm_to_check; do
++    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
++    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
++      IFS="$lt_save_ifs"
++      test -z "$ac_dir" && ac_dir=.
++      tmp_nm="$ac_dir/$lt_tmp_nm"
++      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
++	# Check to see if the nm accepts a BSD-compat flag.
++	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
++	#   nm: unknown option "B" ignored
++	# Tru64's nm complains that /dev/null is an invalid object file
++	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
++	*/dev/null* | *'Invalid file or object type'*)
++	  lt_cv_path_NM="$tmp_nm -B"
++	  break
++	  ;;
++	*)
++	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
++	  */dev/null*)
++	    lt_cv_path_NM="$tmp_nm -p"
++	    break
++	    ;;
++	  *)
++	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
++	    continue # so that we can try to find one that supports BSD flags
++	    ;;
++	  esac
++	  ;;
++	esac
++      fi
++    done
++    IFS="$lt_save_ifs"
++  done
++  : ${lt_cv_path_NM=no}
++fi])
+ if test "$lt_cv_path_NM" != "no"; then
+   NM="$lt_cv_path_NM"
+ else
+-- 
+2.34.1
+
diff --git a/pkgs/development/tools/misc/binutils/0001-libtool.m4-update-macos-version-detection-block.patch b/pkgs/development/tools/misc/binutils/0001-libtool.m4-update-macos-version-detection-block.patch
new file mode 100644
index 0000000000000..e601be3a33082
--- /dev/null
+++ b/pkgs/development/tools/misc/binutils/0001-libtool.m4-update-macos-version-detection-block.patch
@@ -0,0 +1,47 @@
+From 33a8dc728eb5da3e1d3439c96810d1f6b2660b89 Mon Sep 17 00:00:00 2001
+From: Andrew Childs <andrew.childs@bibo.com.ph>
+Date: Tue, 22 Feb 2022 12:24:46 +0900
+Subject: [PATCH] libtool.m4: update macos version detection block
+
+Includes upstream change
+9e8c882517082fe5755f2524d23efb02f1522490
+---
+ libtool.m4 | 21 ++++++++-------------
+ 1 file changed, 8 insertions(+), 13 deletions(-)
+
+diff --git a/libtool.m4 b/libtool.m4
+index 7a711249304..f452efb4300 100644
+--- a/libtool.m4
++++ b/libtool.m4
+@@ -996,20 +996,15 @@ _LT_EOF
+     ])
+     case $host_os in
+     rhapsody* | darwin1.[[012]])
+-      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
++      _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
+     darwin1.*)
+-      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+-    darwin*) # darwin 5.x on
+-      # if running on 10.5 or later, the deployment target defaults
+-      # to the OS version, if on x86, and 10.4, the deployment
+-      # target defaults to 10.4. Don't you love it?
+-      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+-	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+-	10.[[012]][[,.]]*)
+-	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+-	10.*)
+-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
++      _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
++    darwin*)
++      case $MACOSX_DEPLOYMENT_TARGET,$host in
++        10.[[012]],*|,*powerpc*-darwin[[5-8]]*)
++          _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
++        *)
++          _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+       esac
+     ;;
+   esac
+-- 
+2.34.1
+
diff --git a/pkgs/development/tools/misc/binutils/CVE-2020-35448.patch b/pkgs/development/tools/misc/binutils/CVE-2020-35448.patch
deleted file mode 100644
index 2eba7b51849f5..0000000000000
--- a/pkgs/development/tools/misc/binutils/CVE-2020-35448.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 8642dafaef21aa6747cec01df1977e9c52eb4679 Mon Sep 17 00:00:00 2001
-From: Alan Modra <amodra@gmail.com>
-Date: Fri, 4 Sep 2020 19:19:18 +0930
-Subject: [PATCH] PR26574, heap buffer overflow in
- _bfd_elf_slurp_secondary_reloc_section
-
-A horribly fuzzed object with section headers inside the ELF header.
-Disallow that, and crazy reloc sizes.
-
-	PR 26574
-	* elfcode.h (elf_object_p): Sanity check section header offset.
-	* elf.c (_bfd_elf_slurp_secondary_reloc_section): Sanity check
-	sh_entsize.
----
- bfd/elf.c     | 4 +++-
- bfd/elfcode.h | 8 ++++----
- 3 files changed, 14 insertions(+), 5 deletions(-)
-
-diff --git a/bfd/elf.c b/bfd/elf.c
-index ac2095f787d..5a02f8dc309 100644
---- a/bfd/elf.c
-+++ b/bfd/elf.c
-@@ -12576,7 +12576,9 @@ _bfd_elf_slurp_secondary_reloc_section (bfd *      abfd,
-       Elf_Internal_Shdr * hdr = & elf_section_data (relsec)->this_hdr;
- 
-       if (hdr->sh_type == SHT_SECONDARY_RELOC
--	  && hdr->sh_info == (unsigned) elf_section_data (sec)->this_idx)
-+	  && hdr->sh_info == (unsigned) elf_section_data (sec)->this_idx
-+	  && (hdr->sh_entsize == ebd->s->sizeof_rel
-+	      || hdr->sh_entsize == ebd->s->sizeof_rela))
- 	{
- 	  bfd_byte * native_relocs;
- 	  bfd_byte * native_reloc;
-diff --git a/bfd/elfcode.h b/bfd/elfcode.h
-index 2ed2f135c34..606ff64fd4d 100644
---- a/bfd/elfcode.h
-+++ b/bfd/elfcode.h
-@@ -571,7 +571,7 @@ elf_object_p (bfd *abfd)
- 
-   /* If this is a relocatable file and there is no section header
-      table, then we're hosed.  */
--  if (i_ehdrp->e_shoff == 0 && i_ehdrp->e_type == ET_REL)
-+  if (i_ehdrp->e_shoff < sizeof (x_ehdr) && i_ehdrp->e_type == ET_REL)
-     goto got_wrong_format_error;
- 
-   /* As a simple sanity check, verify that what BFD thinks is the
-@@ -581,7 +581,7 @@ elf_object_p (bfd *abfd)
-     goto got_wrong_format_error;
- 
-   /* Further sanity check.  */
--  if (i_ehdrp->e_shoff == 0 && i_ehdrp->e_shnum != 0)
-+  if (i_ehdrp->e_shoff < sizeof (x_ehdr) && i_ehdrp->e_shnum != 0)
-     goto got_wrong_format_error;
- 
-   ebd = get_elf_backend_data (abfd);
-@@ -618,7 +618,7 @@ elf_object_p (bfd *abfd)
-       && ebd->elf_osabi != ELFOSABI_NONE)
-     goto got_wrong_format_error;
- 
--  if (i_ehdrp->e_shoff != 0)
-+  if (i_ehdrp->e_shoff >= sizeof (x_ehdr))
-     {
-       file_ptr where = (file_ptr) i_ehdrp->e_shoff;
- 
-@@ -819,7 +819,7 @@ elf_object_p (bfd *abfd)
- 	}
-     }
- 
--  if (i_ehdrp->e_shstrndx != 0 && i_ehdrp->e_shoff != 0)
-+  if (i_ehdrp->e_shstrndx != 0 && i_ehdrp->e_shoff >= sizeof (x_ehdr))
-     {
-       unsigned int num_sec;
- 
--- 
-2.27.0
-
-
diff --git a/pkgs/development/tools/misc/binutils/CVE-2021-3487.patch b/pkgs/development/tools/misc/binutils/CVE-2021-3487.patch
deleted file mode 100644
index 004271bd45abe..0000000000000
--- a/pkgs/development/tools/misc/binutils/CVE-2021-3487.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From: Nick Clifton <nickc@redhat.com>
-Date: Thu, 26 Nov 2020 17:08:33 +0000 (+0000)
-Subject: Prevent a memory allocation failure when parsing corrupt DWARF debug sections.
-X-Git-Tag: binutils-2_36~485
-X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=647cebce12a6b0a26960220caff96ff38978cf24;hp=239ca5e497dda2c151009d664d500086a5c2173a
-
-Prevent a memory allocation failure when parsing corrupt DWARF debug sections.
-
-	PR 26946
-	* dwarf2.c (read_section): Check for debug sections with excessive
-	sizes.
----
-
-diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
-index 977bf43a6a1..8bbfc81d3e7 100644
---- a/bfd/dwarf2.c
-+++ b/bfd/dwarf2.c
-@@ -531,22 +531,24 @@ read_section (bfd *	      abfd,
- 	      bfd_byte **     section_buffer,
- 	      bfd_size_type * section_size)
- {
--  asection *msec;
-   const char *section_name = sec->uncompressed_name;
-   bfd_byte *contents = *section_buffer;
--  bfd_size_type amt;
- 
-   /* The section may have already been read.  */
-   if (contents == NULL)
-     {
-+      bfd_size_type amt;
-+      asection *msec;
-+      ufile_ptr filesize;
-+
-       msec = bfd_get_section_by_name (abfd, section_name);
--      if (! msec)
-+      if (msec == NULL)
- 	{
- 	  section_name = sec->compressed_name;
- 	  if (section_name != NULL)
- 	    msec = bfd_get_section_by_name (abfd, section_name);
- 	}
--      if (! msec)
-+      if (msec == NULL)
- 	{
- 	  _bfd_error_handler (_("DWARF error: can't find %s section."),
- 			      sec->uncompressed_name);
-@@ -554,12 +556,23 @@ read_section (bfd *	      abfd,
- 	  return FALSE;
- 	}
- 
--      *section_size = msec->rawsize ? msec->rawsize : msec->size;
-+      amt = bfd_get_section_limit_octets (abfd, msec);
-+      filesize = bfd_get_file_size (abfd);
-+      if (amt >= filesize)
-+	{
-+	  /* PR 26946 */
-+	  _bfd_error_handler (_("DWARF error: section %s is larger than its filesize! (0x%lx vs 0x%lx)"),
-+			      section_name, (long) amt, (long) filesize);
-+	  bfd_set_error (bfd_error_bad_value);
-+	  return FALSE;
-+	}
-+      *section_size = amt;
-       /* Paranoia - alloc one extra so that we can make sure a string
- 	 section is NUL terminated.  */
--      amt = *section_size + 1;
-+      amt += 1;
-       if (amt == 0)
- 	{
-+	  /* Paranoia - this should never happen.  */
- 	  bfd_set_error (bfd_error_no_memory);
- 	  return FALSE;
- 	}
-
diff --git a/pkgs/development/tools/misc/binutils/CVE-2021-45078.patch b/pkgs/development/tools/misc/binutils/CVE-2021-45078.patch
deleted file mode 100644
index af1c95fac8066..0000000000000
--- a/pkgs/development/tools/misc/binutils/CVE-2021-45078.patch
+++ /dev/null
@@ -1,239 +0,0 @@
-based on upstream https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=161e87d12167b1e36193385485c1f6ce92f74f02;hp=d5c94731766bf4f276146fd29c1df8eebc2aaf69
-
-adapted by ris to apply to 2.35.2 (simply capitalizing booleans)
-
-diff --git a/binutils/stabs.c b/binutils/stabs.c
-index 274bfb0e7fa..83ee3ea5fa4 100644
---- a/binutils/stabs.c
-+++ b/binutils/stabs.c
-@@ -202,7 +202,7 @@ static debug_type stab_find_type (void *, struct stab_handle *, const int *);
- static bool stab_record_type
-   (void *, struct stab_handle *, const int *, debug_type);
- static debug_type stab_xcoff_builtin_type
--  (void *, struct stab_handle *, int);
-+  (void *, struct stab_handle *, unsigned int);
- static debug_type stab_find_tagged_type
-   (void *, struct stab_handle *, const char *, int, enum debug_type_kind);
- static debug_type *stab_demangle_argtypes
-@@ -3496,166 +3496,167 @@ stab_record_type (void *dhandle ATTRIBUTE_UNUSED, struct stab_handle *info,
- 
- static debug_type
- stab_xcoff_builtin_type (void *dhandle, struct stab_handle *info,
--			 int typenum)
-+			 unsigned int typenum)
- {
-   debug_type rettype;
-   const char *name;
- 
--  if (typenum >= 0 || typenum < -XCOFF_TYPE_COUNT)
-+  typenum = -typenum - 1;
-+  if (typenum >= XCOFF_TYPE_COUNT)
-     {
--      fprintf (stderr, _("Unrecognized XCOFF type %d\n"), typenum);
-+      fprintf (stderr, _("Unrecognized XCOFF type %d\n"), -typenum - 1);
-       return DEBUG_TYPE_NULL;
-     }
--  if (info->xcoff_types[-typenum] != NULL)
--    return info->xcoff_types[-typenum];
-+  if (info->xcoff_types[typenum] != NULL)
-+    return info->xcoff_types[typenum];
- 
--  switch (-typenum)
-+  switch (typenum)
-     {
--    case 1:
-+    case 0:
-       /* The size of this and all the other types are fixed, defined
- 	 by the debugging format.  */
-       name = "int";
-       rettype = debug_make_int_type (dhandle, 4, FALSE);
-       break;
--    case 2:
-+    case 1:
-       name = "char";
-       rettype = debug_make_int_type (dhandle, 1, FALSE);
-       break;
--    case 3:
-+    case 2:
-       name = "short";
-       rettype = debug_make_int_type (dhandle, 2, FALSE);
-       break;
--    case 4:
-+    case 3:
-       name = "long";
-       rettype = debug_make_int_type (dhandle, 4, FALSE);
-       break;
--    case 5:
-+    case 4:
-       name = "unsigned char";
-       rettype = debug_make_int_type (dhandle, 1, TRUE);
-       break;
--    case 6:
-+    case 5:
-       name = "signed char";
-       rettype = debug_make_int_type (dhandle, 1, FALSE);
-       break;
--    case 7:
-+    case 6:
-       name = "unsigned short";
-       rettype = debug_make_int_type (dhandle, 2, TRUE);
-       break;
--    case 8:
-+    case 7:
-       name = "unsigned int";
-       rettype = debug_make_int_type (dhandle, 4, TRUE);
-       break;
--    case 9:
-+    case 8:
-       name = "unsigned";
-       rettype = debug_make_int_type (dhandle, 4, TRUE);
-       break;
--    case 10:
-+    case 9:
-       name = "unsigned long";
-       rettype = debug_make_int_type (dhandle, 4, TRUE);
-       break;
--    case 11:
-+    case 10:
-       name = "void";
-       rettype = debug_make_void_type (dhandle);
-       break;
--    case 12:
-+    case 11:
-       /* IEEE single precision (32 bit).  */
-       name = "float";
-       rettype = debug_make_float_type (dhandle, 4);
-       break;
--    case 13:
-+    case 12:
-       /* IEEE double precision (64 bit).  */
-       name = "double";
-       rettype = debug_make_float_type (dhandle, 8);
-       break;
--    case 14:
-+    case 13:
-       /* This is an IEEE double on the RS/6000, and different machines
- 	 with different sizes for "long double" should use different
- 	 negative type numbers.  See stabs.texinfo.  */
-       name = "long double";
-       rettype = debug_make_float_type (dhandle, 8);
-       break;
--    case 15:
-+    case 14:
-       name = "integer";
-       rettype = debug_make_int_type (dhandle, 4, FALSE);
-       break;
--    case 16:
-+    case 15:
-       name = "boolean";
-       rettype = debug_make_bool_type (dhandle, 4);
-       break;
--    case 17:
-+    case 16:
-       name = "short real";
-       rettype = debug_make_float_type (dhandle, 4);
-       break;
--    case 18:
-+    case 17:
-       name = "real";
-       rettype = debug_make_float_type (dhandle, 8);
-       break;
--    case 19:
-+    case 18:
-       /* FIXME */
-       name = "stringptr";
-       rettype = NULL;
-       break;
--    case 20:
-+    case 19:
-       /* FIXME */
-       name = "character";
-       rettype = debug_make_int_type (dhandle, 1, TRUE);
-       break;
--    case 21:
-+    case 20:
-       name = "logical*1";
-       rettype = debug_make_bool_type (dhandle, 1);
-       break;
--    case 22:
-+    case 21:
-       name = "logical*2";
-       rettype = debug_make_bool_type (dhandle, 2);
-       break;
--    case 23:
-+    case 22:
-       name = "logical*4";
-       rettype = debug_make_bool_type (dhandle, 4);
-       break;
--    case 24:
-+    case 23:
-       name = "logical";
-       rettype = debug_make_bool_type (dhandle, 4);
-       break;
--    case 25:
-+    case 24:
-       /* Complex type consisting of two IEEE single precision values.  */
-       name = "complex";
-       rettype = debug_make_complex_type (dhandle, 8);
-       break;
--    case 26:
-+    case 25:
-       /* Complex type consisting of two IEEE double precision values.  */
-       name = "double complex";
-       rettype = debug_make_complex_type (dhandle, 16);
-       break;
--    case 27:
-+    case 26:
-       name = "integer*1";
-       rettype = debug_make_int_type (dhandle, 1, FALSE);
-       break;
--    case 28:
-+    case 27:
-       name = "integer*2";
-       rettype = debug_make_int_type (dhandle, 2, FALSE);
-       break;
--    case 29:
-+    case 28:
-       name = "integer*4";
-       rettype = debug_make_int_type (dhandle, 4, FALSE);
-       break;
--    case 30:
-+    case 29:
-       /* FIXME */
-       name = "wchar";
-       rettype = debug_make_int_type (dhandle, 2, FALSE);
-       break;
--    case 31:
-+    case 30:
-       name = "long long";
-       rettype = debug_make_int_type (dhandle, 8, FALSE);
-       break;
--    case 32:
-+    case 31:
-       name = "unsigned long long";
-       rettype = debug_make_int_type (dhandle, 8, TRUE);
-       break;
--    case 33:
-+    case 32:
-       name = "logical*8";
-       rettype = debug_make_bool_type (dhandle, 8);
-       break;
--    case 34:
-+    case 33:
-       name = "integer*8";
-       rettype = debug_make_int_type (dhandle, 8, FALSE);
-       break;
-@@ -3664,9 +3665,7 @@ stab_xcoff_builtin_type (void *dhandle, struct stab_handle *info,
-     }
- 
-   rettype = debug_name_type (dhandle, name, rettype);
--
--  info->xcoff_types[-typenum] = rettype;
--
-+  info->xcoff_types[typenum] = rettype;
-   return rettype;
- }
- 
--- 
-2.27.0
-
diff --git a/pkgs/development/tools/misc/binutils/bfd-elf-Dont-read-non-existing-secondary-relocs.patch b/pkgs/development/tools/misc/binutils/bfd-elf-Dont-read-non-existing-secondary-relocs.patch
deleted file mode 100644
index c166066c9803c..0000000000000
--- a/pkgs/development/tools/misc/binutils/bfd-elf-Dont-read-non-existing-secondary-relocs.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=blobdiff_plain;f=bfd%2Felf.c;h=af62aadc3d446cd5b1f0201b207c90c22e7809b1;hp=36733e080dd9d9be28b576b246aaf5bd8c8569c7;hb=84fd26d8209e99fc3a432dd0b09b6c053de1ce65;hpb=abe2a28aaa7a2bfd0f3061c72a98eb898976b721
-
-diff --git a/bfd/elf.c b/bfd/elf.c
-index 36733e080dd..af62aadc3d4 100644
---- a/bfd/elf.c
-+++ b/bfd/elf.c
-@@ -2454,6 +2454,8 @@ bfd_section_from_shdr (bfd *abfd, unsigned int shindex)
- 		     "for section %pA found - ignoring"),
- 		   abfd, name, target_sect);
- 	      }
-+	    else
-+	      esdt->has_secondary_relocs = TRUE;
- 	    goto success;
- 	  }
- 
-@@ -12587,6 +12589,9 @@ _bfd_elf_slurp_secondary_reloc_section (bfd *       abfd,
- #endif
-     r_sym = elf32_r_sym;
-   
-+  if (!elf_section_data (sec)->has_secondary_relocs)
-+    return TRUE;
-+
-   /* Discover if there are any secondary reloc sections
-      associated with SEC.  */
-   for (relsec = abfd->sections; relsec != NULL; relsec = relsec->next)
-
diff --git a/pkgs/development/tools/misc/binutils/build-components-separately.patch b/pkgs/development/tools/misc/binutils/build-components-separately.patch
index 38fa4934a28a6..0b4162d848803 100644
--- a/pkgs/development/tools/misc/binutils/build-components-separately.patch
+++ b/pkgs/development/tools/misc/binutils/build-components-separately.patch
@@ -1,8 +1,8 @@
 diff --git a/bfd/configure.ac b/bfd/configure.ac
-index c5bfbd5d..45ad4c26 100644
+index fec067b2135..377e1f5443f 100644
 --- a/bfd/configure.ac
 +++ b/bfd/configure.ac
-@@ -278,31 +278,19 @@ AC_CACHE_CHECK(linker --as-needed support, bfd_cv_ld_as_needed,
+@@ -292,30 +292,16 @@ AC_CACHE_CHECK(linker --as-needed support, bfd_cv_ld_as_needed,
  
  LT_LIB_M
  
@@ -21,24 +21,22 @@ index c5bfbd5d..45ad4c26 100644
 -  if test -n "$x"; then
 -    SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty"
 -  fi
+-fi
 -
+ SHARED_LIBADD="$SHARED_LIBADD $LIBINTL"
+ 
+-if test "$enable_shared" = "yes"; then
    case "${host}" in
    # More hacks to build DLLs on Windows.
    *-*-cygwin*)
      SHARED_LDFLAGS="-no-undefined"
--    SHARED_LIBADD="-L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin -lkernel32"
-+    SHARED_LIBADD="-liberty -lintl -lcygwin -lkernel32"
-   ;;
- 
-   # Use built-in libintl on macOS, since it is not provided by libc.
-   *-*-darwin*)
--    SHARED_LIBADD="-L`pwd`/../libiberty/pic -L`pwd`/../intl -liberty -lintl"
-+    SHARED_LIBADD="-liberty -lintl"
+-    SHARED_LIBADD="-L`pwd`/../libiberty -liberty $SHARED_LIBADD -lcygwin -lkernel32"
++    SHARED_LIBADD="-liberty $SHARED_LIBADD -lcygwin -lkernel32"
    ;;
    esac
  
 diff --git a/opcodes/Makefile.am b/opcodes/Makefile.am
-index 4f06074a..6836c589 100644
+index 0e04b4c05c4..848a02662e7 100644
 --- a/opcodes/Makefile.am
 +++ b/opcodes/Makefile.am
 @@ -51,7 +51,7 @@ libopcodes_la_LDFLAGS += -rpath $(rpath_bfdlibdir)
@@ -50,7 +48,7 @@ index 4f06074a..6836c589 100644
  
  BUILD_LIBS = @BUILD_LIBS@
  BUILD_LIB_DEPS = @BUILD_LIB_DEPS@
-@@ -301,7 +301,7 @@ OFILES = @BFD_MACHINES@
+@@ -303,7 +303,7 @@ OFILES = @BFD_MACHINES@
  # development.sh is used to determine -Werror default.
  CONFIG_STATUS_DEPENDENCIES = $(BFDDIR)/development.sh
  
@@ -59,10 +57,7 @@ index 4f06074a..6836c589 100644
  
  disassemble.lo: disassemble.c
  if am__fastdepCC
-@@ -322,12 +322,21 @@ libopcodes_la_SOURCES =  dis-buf.c disassemble.c dis-init.c
- # old version of libbfd, or to pick up libbfd for the wrong architecture
- # if host != build. So for building with shared libraries we use a
- # hardcoded path to libbfd.so instead of relying on the entries in libbfd.la.
+@@ -327,9 +327,18 @@ libopcodes_la_SOURCES =  dis-buf.c disassemble.c dis-init.c
 -libopcodes_la_DEPENDENCIES = $(OFILES) @SHARED_DEPENDENCIES@
 +libopcodes_la_DEPENDENCIES = $(OFILES) @SHARED_DEPENDENCIES@ libtool-soversion
  libopcodes_la_LIBADD = $(OFILES) @SHARED_LIBADD@
@@ -84,18 +79,19 @@ index 4f06074a..6836c589 100644
  # the build directory so that we don't have to convert all the
  # programs that use libopcodes.a simultaneously.  This is a hack which
 diff --git a/opcodes/configure.ac b/opcodes/configure.ac
-index 00be9c88..6e589ae4 100644
+index e564f067334..5da62a3d58b 100644
 --- a/opcodes/configure.ac
 +++ b/opcodes/configure.ac
-@@ -86,6 +86,7 @@ AC_PROG_INSTALL
+@@ -98,6 +98,8 @@ BFD_64_BIT
+ AC_SUBST(HDEFINES)
+ AC_PROG_INSTALL
  
- AC_CHECK_HEADERS(string.h strings.h stdlib.h limits.h)
- ACX_HEADER_STRING
 +GCC_HEADER_STDINT(bfd_stdint.h)
- 
++
  AC_CHECK_DECLS([basename, stpcpy])
  
-@@ -137,61 +138,27 @@ AC_CACHE_CHECK(linker --as-needed support, bfd_cv_ld_as_needed,
+ # Check if sigsetjmp is available.  Using AC_CHECK_FUNCS won't do
+@@ -148,44 +150,21 @@ AC_CACHE_CHECK(linker --as-needed support, bfd_cv_ld_as_needed,
  
  LT_LIB_M
  
@@ -122,7 +118,7 @@ index 00be9c88..6e589ae4 100644
 -SHARED_LIBADD=
 +SHARED_LIBADD=-liberty
  SHARED_DEPENDENCIES=
- if test "$enable_shared" = "yes"; then
+-if test "$enable_shared" = "yes"; then
 -# When building a shared libopcodes, link against the pic version of libiberty
 -# so that apps that use libopcodes won't need libiberty just to satisfy any
 -# libopcodes references.
@@ -131,32 +127,27 @@ index 00be9c88..6e589ae4 100644
  # Note that linking against libbfd as we do here, which is itself linked
  # against libiberty, may not satisfy all the libopcodes libiberty references
  # since libbfd may not pull in the entirety of libiberty.
+ # Also, jam libintl into the right place in all of this: after libiberty,
+ # which uses it, but before -lcygwin, which it uses.
 -changequote(,)dnl
 -  x=`sed -n -e 's/^[ 	]*PICFLAG[ 	]*=[ 	]*//p' < ../libiberty/Makefile | sed -n '$p'`
 -changequote([,])dnl
 -  if test -n "$x"; then
 -    SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty"
 -  fi
--
+-fi
+ 
+ SHARED_LIBADD="$SHARED_LIBADD $LIBINTL"
+ 
+@@ -193,11 +172,10 @@ if test "$enable_shared" = "yes"; then
    case "${host}" in
      *-*-cygwin*)
        SHARED_LDFLAGS="-no-undefined"
--      SHARED_LIBADD="-L`pwd`/../bfd -lbfd -L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin"
-+      SHARED_LIBADD="-lbfd -liberty -lintl -lcygwin"
+-      SHARED_LIBADD="-L`pwd`/../bfd -lbfd -L`pwd`/../libiberty -liberty $SHARED_LIBADD"
++      SHARED_LIBADD="-lbfd -liberty $SHARED_LIBADD"
        ;;
--   *-*-darwin*)
--     SHARED_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.dylib ${SHARED_LIBADD}"
--     SHARED_DEPENDENCIES="../bfd/libbfd.la"
--     ;;
      *)
--      case "$host_vendor" in
--        hp)
--          SHARED_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.sl ${SHARED_LIBADD}"
--	  ;;
--	*)
--          SHARED_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.so ${SHARED_LIBADD}"
--	  ;;
--      esac
+-      SHARED_LIBADD="../bfd/libbfd.la ${SHARED_LIBADD}"
 -      SHARED_DEPENDENCIES="../bfd/libbfd.la"
 +      SHARED_LIBADD="-lbfd ${SHARED_LIBADD}"
        ;;
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index 8d759457fa111..93b018b0d8b09 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -2,64 +2,78 @@ let
   execFormatIsELF = platform: platform.parsed.kernel.execFormat.name == "elf";
 in
 
-{ stdenv, lib, buildPackages
-, fetchFromGitHub, fetchurl, zlib, autoreconfHook, gettext
-# Enabling all targets increases output size to a multiple.
-, withAllTargets ? false, libbfd, libopcodes
-, enableShared ? !stdenv.hostPlatform.isStatic
-, noSysDirs
-, gold ? execFormatIsELF stdenv.targetPlatform
-, bison ? null
+{ stdenv
+, autoreconfHook
+, autoconf269, automake, libtool
+, bison
+, buildPackages
+, fetchFromGitHub
+, fetchurl
 , flex
-, texinfo
+, gettext
+, lib
+, noSysDirs
 , perl
+, substitute
+, texinfo
+, zlib
+
+, enableGold ? execFormatIsELF stdenv.targetPlatform
+, enableShared ? !stdenv.hostPlatform.isStatic
+  # WARN: Enabling all targets increases output size to a multiple.
+, withAllTargets ? false, libbfd, libopcodes
 }:
 
-# configure silently disables ld.gold if it's unsupported,
-# so we need to make sure that intent matches result ourselves.
-assert gold -> execFormatIsELF stdenv.targetPlatform;
+# WARN: configure silently disables ld.gold if it's unsupported, so we need to
+# make sure that intent matches result ourselves.
+assert enableGold -> execFormatIsELF stdenv.targetPlatform;
 
-# Note: this package is used for bootstrapping fetchurl, and thus
-# cannot use fetchpatch! All mutable patches (generated by GitHub or
-# cgit) that are needed here should be included directly in Nixpkgs as
-# files.
 
 let
-  reuseLibs = enableShared && withAllTargets;
-
-  version = "2.35.2";
-  basename = "binutils";
-  # The targetPrefix prepended to binary names to allow multiple binuntils on the
-  # PATH to both be usable.
-  targetPrefix = lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
-                  "${stdenv.targetPlatform.config}-";
-  vc4-binutils-src = fetchFromGitHub {
-    owner = "itszor";
-    repo = "binutils-vc4";
-    rev = "708acc851880dbeda1dd18aca4fd0a95b2573b36";
-    sha256 = "1kdrz6fki55lm15rwwamn74fnqpy0zlafsida2zymk76n3656c63";
+  inherit (stdenv) buildPlatform hostPlatform targetPlatform;
+
+  version = "2.38";
+
+  srcs = {
+    normal = fetchurl {
+      url = "mirror://gnu/binutils/binutils-${version}.tar.bz2";
+      sha256 = "sha256-Bw7HHPB3pqWOC5WfBaCaNQFTeMLYpR6Q866r/jBZDvg=";
+    };
+    vc4-none = fetchFromGitHub {
+      owner = "itszor";
+      repo = "binutils-vc4";
+      rev = "708acc851880dbeda1dd18aca4fd0a95b2573b36";
+      sha256 = "1kdrz6fki55lm15rwwamn74fnqpy0zlafsida2zymk76n3656c63";
+    };
   };
-  # HACK to ensure that we preserve source from bootstrap binutils to not rebuild LLVM
-  normal-src = stdenv.__bootPackages.binutils-unwrapped.src or (fetchurl {
-    url = "mirror://gnu/binutils/${basename}-${version}.tar.bz2";
-    sha256 = "sha256-z6dkTb7PRZHhNutAfBwdoWV4vSsD8MLorNzroZS7nWE=";
-  });
+
+  #INFO: The targetPrefix prepended to binary names to allow multiple binuntils
+  # on the PATH to both be usable.
+  targetPrefix = lib.optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-";
 in
 
 stdenv.mkDerivation {
-  pname = targetPrefix + basename;
+  pname = targetPrefix + "binutils";
   inherit version;
 
-  src = if stdenv.targetPlatform.isVc4 then vc4-binutils-src else normal-src;
+  # HACK: Ensure that we preserve source from bootstrap binutils to not rebuild LLVM
+  src = stdenv.__bootPackages.binutils-unwrapped.src
+    or srcs.${targetPlatform.system}
+    or srcs.normal;
 
+  # WARN: this package is used for bootstrapping fetchurl, and thus cannot use
+  # fetchpatch! All mutable patches (generated by GitHub or cgit) that are
+  # needed here should be included directly in Nixpkgs as files.
   patches = [
     # Make binutils output deterministic by default.
     ./deterministic.patch
 
-    # Help bfd choose between elf32-littlearm, elf32-littlearm-symbian, and
-    # elf32-littlearm-vxworks in favor of the first.
-    # https://github.com/NixOS/nixpkgs/pull/30484#issuecomment-345472766
-    ./disambiguate-arm-targets.patch
+
+    # Breaks nm BSD flag detection
+    ./0001-Revert-libtool.m4-fix-nm-BSD-flag-detection.patch
+
+    # Required for newer macos versions
+    ./0001-libtool.m4-update-macos-version-detection-block.patch
 
     # For some reason bfd ld doesn't search DT_RPATH when cross-compiling. It's
     # not clear why this behavior was decided upon but it has the unfortunate
@@ -68,34 +82,24 @@ stdenv.mkDerivation {
     # override this behavior, forcing ld to search DT_RPATH even when
     # cross-compiling.
     ./always-search-rpath.patch
-
-    # Fix quadratic slowdown in `strip` performance.
-    # See #129467 and https://sourceware.org/bugzilla/show_bug.cgi?id=28058
-    # Remove when we're on binutils > 2.36.1.
-    # The patch is downloaded from
-    #     https://sourceware.org/git/?p=binutils-gdb.git;a=blobdiff_plain;f=bfd/elf.c;h=af62aadc3d446cd5b1f0201b207c90c22e7809b1;hp=36733e080dd9d9be28b576b246aaf5bd8c8569c7;hb=84fd26d8209e99fc3a432dd0b09b6c053de1ce65;hpb=abe2a28aaa7a2bfd0f3061c72a98eb898976b721
-    # which is the 2.36 backport (using `TRUE` instead of `true` of binutils master commit:
-    #     https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=956ea65cd707707c0f725930214cbc781367a831
-    ./bfd-elf-Dont-read-non-existing-secondary-relocs.patch
-
-    # Fix building plv8’s v8.
-    # https://github.com/NixOS/nixpkgs/issues/134190
-    # Obtained from: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=586e30940e640f67bd55bd72e1d1355a4faf8079
-    ./gold-Update-GNU_PROPERTY_X86_XXX-macros.patch
-
-    ./CVE-2020-35448.patch
-    ./CVE-2021-3487.patch
-    ./CVE-2021-45078.patch
-  ] ++ lib.optional stdenv.targetPlatform.isiOS ./support-ios.patch
-    ++ # This patch was suggested by Nick Clifton to fix
-       # https://sourceware.org/bugzilla/show_bug.cgi?id=16177
-       # It can be removed when that 7-year-old bug is closed.
-       # This binutils bug causes GHC to emit broken binaries on armv7, and
-       # indeed GHC will refuse to compile with a binutils suffering from it. See
-       # this comment for more information:
-       # https://gitlab.haskell.org/ghc/ghc/issues/4210#note_78333
-       lib.optional (stdenv.targetPlatform.isAarch32 && stdenv.hostPlatform.system != stdenv.targetPlatform.system) ./R_ARM_COPY.patch
-    ++ lib.optional stdenv.targetPlatform.isWindows ./windres-locate-gcc.patch;
+  ]
+  ++ lib.optional targetPlatform.isiOS ./support-ios.patch
+  # This patch was suggested by Nick Clifton to fix
+  # https://sourceware.org/bugzilla/show_bug.cgi?id=16177
+  # It can be removed when that 7-year-old bug is closed.
+  # This binutils bug causes GHC to emit broken binaries on armv7, and indeed
+  # GHC will refuse to compile with a binutils suffering from it. See this
+  # comment for more information:
+  # https://gitlab.haskell.org/ghc/ghc/issues/4210#note_78333
+  ++ lib.optional (targetPlatform.isAarch32 && hostPlatform.system != targetPlatform.system) ./R_ARM_COPY.patch
+  ++ lib.optional stdenv.targetPlatform.isWindows ./windres-locate-gcc.patch
+  ++ lib.optional stdenv.targetPlatform.isMips64n64
+     # this patch is from debian:
+     # https://sources.debian.org/data/main/b/binutils/2.38-3/debian/patches/mips64-default-n64.diff
+     (if stdenv.targetPlatform.isMusl
+      then substitute { src = ./mips64-default-n64.patch; replacements = [ "--replace" "gnuabi64" "muslabi64" ]; }
+      else ./mips64-default-n64.patch)
+  ;
 
   outputs = [ "out" "info" "man" ];
 
@@ -104,14 +108,26 @@ stdenv.mkDerivation {
     bison
     perl
     texinfo
-  ] ++ (lib.optionals stdenv.targetPlatform.isiOS [
-    autoreconfHook
-  ]) ++ lib.optionals stdenv.targetPlatform.isVc4 [ flex ];
+  ]
+  ++ lib.optionals targetPlatform.isiOS [ autoreconfHook ]
+  ++ lib.optionals buildPlatform.isDarwin [ autoconf269 automake gettext libtool ]
+  ++ lib.optionals targetPlatform.isVc4 [ flex ]
+  ;
+
   buildInputs = [ zlib gettext ];
 
   inherit noSysDirs;
 
-  preConfigure = ''
+  preConfigure = (lib.optionalString buildPlatform.isDarwin ''
+    for i in */configure.ac; do
+      pushd "$(dirname "$i")"
+      echo "Running autoreconf in $PWD"
+      # autoreconf doesn't work, don't know why
+      # autoreconf ''${autoreconfFlags:---install --force --verbose}
+      autoconf
+      popd
+    done
+  '') + ''
     # Clear the default library search path.
     if test "$noSysDirs" = "1"; then
         echo 'NATIVE_LIB_DIRS=' >> ld/configure.tgt
@@ -126,7 +142,8 @@ stdenv.mkDerivation {
 
   # As binutils takes part in the stdenv building, we don't want references
   # to the bootstrap-tools libgcc (as uses to happen on arm/mips)
-  NIX_CFLAGS_COMPILE = if stdenv.hostPlatform.isDarwin
+  NIX_CFLAGS_COMPILE =
+    if hostPlatform.isDarwin
     then "-Wno-string-plus-int -Wno-deprecated-declarations"
     else "-static-libgcc";
 
@@ -134,11 +151,7 @@ stdenv.mkDerivation {
 
   configurePlatforms = [ "build" "host" "target" ];
 
-  configureFlags =
-    (if enableShared then [ "--enable-shared" "--disable-static" ]
-                     else [ "--disable-shared" "--enable-static" ])
-  ++ lib.optional withAllTargets "--enable-targets=all"
-  ++ [
+  configureFlags = [
     "--enable-64-bit-bfd"
     "--with-system-zlib"
 
@@ -151,35 +164,40 @@ stdenv.mkDerivation {
     # RUNPATH can be overriden using LD_LIBRARY_PATH at runtime.
     "--enable-new-dtags"
 
-    # force target prefix. Some versions of binutils will make it empty
-    # if `--host` and `--target` are too close, even if Nixpkgs thinks
-    # the platforms are different (e.g. because not all the info makes
-    # the `config`). Other versions of binutils will always prefix if
-    # `--target` is passed, even if `--host` and `--target` are the same.
-    # The easiest thing for us to do is not leave it to chance, and force
-    # the program prefix to be what we want it to be.
+    # force target prefix. Some versions of binutils will make it empty if
+    # `--host` and `--target` are too close, even if Nixpkgs thinks the
+    # platforms are different (e.g. because not all the info makes the
+    # `config`). Other versions of binutils will always prefix if `--target` is
+    # passed, even if `--host` and `--target` are the same. The easiest thing
+    # for us to do is not leave it to chance, and force the program prefix to be
+    # what we want it to be.
     "--program-prefix=${targetPrefix}"
-  ] ++ lib.optionals gold [
-    "--enable-gold"
-    "--enable-plugins"
-  ];
-
-  doCheck = false; # fails
-
-  postFixup = lib.optionalString reuseLibs ''
+  ]
+  ++ lib.optionals withAllTargets [ "--enable-targets=all" ]
+  ++ lib.optionals enableGold [ "--enable-gold" "--enable-plugins" ]
+  ++ (if enableShared
+      then [ "--enable-shared" "--disable-static" ]
+      else [ "--disable-shared" "--enable-static" ])
+  ;
+
+  # Fails
+  doCheck = false;
+
+  postFixup = lib.optionalString (enableShared && withAllTargets) ''
     rm "$out"/lib/lib{bfd,opcodes}-${version}.so
     ln -s '${lib.getLib libbfd}/lib/libbfd-${version}.so' "$out/lib/"
     ln -s '${lib.getLib libopcodes}/lib/libopcodes-${version}.so' "$out/lib/"
   '';
 
-  # else fails with "./sanity.sh: line 36: $out/bin/size: not found"
-  doInstallCheck = stdenv.buildPlatform == stdenv.hostPlatform && stdenv.hostPlatform == stdenv.targetPlatform;
+  # INFO: Otherwise it fails with:
+  # `./sanity.sh: line 36: $out/bin/size: not found`
+  doInstallCheck = (buildPlatform == hostPlatform) && (hostPlatform == targetPlatform);
 
   enableParallelBuilding = true;
 
   passthru = {
     inherit targetPrefix;
-    hasGold = gold;
+    hasGold = enableGold;
     isGNU = true;
   };
 
@@ -193,11 +211,11 @@ stdenv.mkDerivation {
     '';
     homepage = "https://www.gnu.org/software/binutils/";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ ericson2314 ];
+    maintainers = with maintainers; [ ericson2314 lovesegfault ];
     platforms = platforms.unix;
 
-    /* Give binutils a lower priority than gcc-wrapper to prevent a
-       collision due to the ld/as wrappers/symlinks in the latter. */
+    # INFO: Give binutils a lower priority than gcc-wrapper to prevent a
+    # collision due to the ld/as wrappers/symlinks in the latter.
     priority = 10;
   };
 }
diff --git a/pkgs/development/tools/misc/binutils/disambiguate-arm-targets.patch b/pkgs/development/tools/misc/binutils/disambiguate-arm-targets.patch
deleted file mode 100644
index abbfa73da05dc..0000000000000
--- a/pkgs/development/tools/misc/binutils/disambiguate-arm-targets.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
-index 9f956d3..f5b61f1 100644
---- a/bfd/elf32-arm.c
-+++ b/bfd/elf32-arm.c
-@@ -19585,7 +19585,10 @@ elf32_arm_vxworks_final_write_processing (bfd *abfd, bfd_boolean linker)
- #undef  ELF_MAXPAGESIZE
- #define ELF_MAXPAGESIZE			0x1000
- 
-+/* Prioritize elf32-*arm (priority 1) over elf32-*arm-vxworks (priority 2) */
-+#define elf_match_priority 2
- #include "elf32-target.h"
-+#undef  elf_match_priority
- 
- 
- /* Merge backend specific data from an object file to the output
-@@ -19974,4 +19977,7 @@ elf32_arm_symbian_plt_sym_val (bfd_vma i, const asection *plt,
- #undef  ELF_MAXPAGESIZE
- #define ELF_MAXPAGESIZE			0x8000
- 
-+/* Prioritize elf32-*arm (priority 1) over elf32-*arm-symbian (priority 2) */
-+#define elf_match_priority 2
- #include "elf32-target.h"
-+#undef  elf_match_priority
diff --git a/pkgs/development/tools/misc/binutils/gold-Update-GNU_PROPERTY_X86_XXX-macros.patch b/pkgs/development/tools/misc/binutils/gold-Update-GNU_PROPERTY_X86_XXX-macros.patch
deleted file mode 100644
index c4eef87a0c8d7..0000000000000
--- a/pkgs/development/tools/misc/binutils/gold-Update-GNU_PROPERTY_X86_XXX-macros.patch
+++ /dev/null
@@ -1,292 +0,0 @@
-From 586e30940e640f67bd55bd72e1d1355a4faf8079 Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Tue, 13 Oct 2020 05:20:49 -0700
-Subject: [PATCH] gold: Update GNU_PROPERTY_X86_XXX macros
-
-This patch updates GNU_PROPERTY_X86_XXX macros for gold:
-
-1. GNU_PROPERTY_X86_UINT32_AND_XXX: A 4-byte unsigned integer property.
-A bit is set if it is set in all relocatable inputs:
-
- #define GNU_PROPERTY_X86_UINT32_AND_LO      0xc0000002
- #define GNU_PROPERTY_X86_UINT32_AND_HI      0xc0007fff
-
-2. GNU_PROPERTY_X86_UINT32_OR_XXX: A 4-byte unsigned integer property.
-A bit is set if it is set in any relocatable inputs:
-
- #define GNU_PROPERTY_X86_UINT32_OR_LO    0xc0008000
- #define GNU_PROPERTY_X86_UINT32_OR_HI    0xc000ffff
-
-3. GNU_PROPERTY_X86_UINT32_OR_AND_XXX: A 4-byte unsigned integer property.
-A bit is set if it is set in any relocatable inputs and the property is
-present in all relocatable inputs:
-
- #define GNU_PROPERTY_X86_UINT32_OR_AND_LO   0xc0010000
- #define GNU_PROPERTY_X86_UINT32_OR_AND_HI   0xc0017fff
-
-4. GNU_PROPERTY_X86_FEATURE_2_NEEDED, GNU_PROPERTY_X86_FEATURE_2_USED
-and GNU_PROPERTY_X86_FEATURE_2_XXX bits.
-
-GNU_PROPERTY_X86_FEATURE_1_AND is unchanged.  GNU_PROPERTY_X86_ISA_1_USED
-and GNU_PROPERTY_X86_ISA_1_NEEDED are updated to better support targeted
-processors since GNU_PROPERTY_X86_ISA_1_?86 aren't isn't very useful.
-A new set of GNU_PROPERTY_X86_ISA_1_XXX bits are defined.  The previous
-GNU_PROPERTY_X86_ISA_1_XXX macros are deprecated and renamed to
-GNU_PROPERTY_X86_COMPAT_ISA_1_XXX and GNU_PROPERTY_X86_COMPAT_2_ISA_1_XXX.
-
-elfcpp/
-
-	* elfcpp.h (GNU_PROPERTY_X86_ISA_1_USED): Renamed to ...
-	(GNU_PROPERTY_X86_COMPAT_ISA_1_USED): This.
-	(GNU_PROPERTY_X86_ISA_1_NEEDED): Renamed to ...
-	(GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED): This.
-	(GNU_PROPERTY_X86_UINT32_AND_LO): New.
-	(GNU_PROPERTY_X86_UINT32_AND_HI): Likewise.
-	(GNU_PROPERTY_X86_UINT32_OR_LO): Likewise.
-	(GNU_PROPERTY_X86_UINT32_OR_HI): Likewise.
-	(GNU_PROPERTY_X86_UINT32_OR_AND_LO): Likewise.
-	(GNU_PROPERTY_X86_UINT32_OR_AND_HI): Likewise.
-	(GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED): New.
-	(GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED): Likewise.
-	(GNU_PROPERTY_X86_FEATURE_1_AND): Updated to
-	(GNU_PROPERTY_X86_UINT32_AND_LO + 0).
-	(GNU_PROPERTY_X86_ISA_1_NEEDED): New.  Defined to
-	GNU_PROPERTY_X86_UINT32_OR_LO + 2.
-	(GNU_PROPERTY_X86_FEATURE_2_NEEDED): New.  Defined to
-	(GNU_PROPERTY_X86_UINT32_OR_LO + 1).
-	(GNU_PROPERTY_X86_ISA_1_USED): New.  Defined to
-	GNU_PROPERTY_X86_UINT32_OR_AND_LO + 2.
-	(GNU_PROPERTY_X86_FEATURE_2_USED): New.  Defined to
-	(GNU_PROPERTY_X86_UINT32_OR_AND_LO + 1).
-
-gold/
-
-	* x86_64.cc (Target_x86_64::Target_x86_64): Initialize
-	feature_2_used_, feature_2_needed_ and object_feature_2_used_.
-	(Target_x86_64::feature_2_used_): New data member.
-	(Target_x86_64::feature_2_needed_): Likewise.
-	(Target_x86_64::object_isa_1_used_): Likewise.
-	(Target_x86_64::record_gnu_property): Support
-	GNU_PROPERTY_X86_COMPAT_ISA_1_USED,
-	GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED,
-	GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED,
-	GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED,
-	GNU_PROPERTY_X86_FEATURE_2_USED and
-	GNU_PROPERTY_X86_FEATURE_2_NEEDED.
-	(Target_x86_64::merge_gnu_properties): Merge FEATURE_2_USED bits.
-	Initialize object_feature_2_used_.
-	(Target_x86_64::do_finalize_gnu_properties): Support
-	GNU_PROPERTY_X86_FEATURE_2_USED and
-	GNU_PROPERTY_X86_FEATURE_2_NEEDED.
-	* testsuite/gnu_property_a.S (GNU_PROPERTY_X86_ISA_1_USED): Set
-	to 0xc0010002.
-	(GNU_PROPERTY_X86_ISA_1_NEEDED): Set to 0xc0008002.
-	* testsuite/gnu_property_b.S (GNU_PROPERTY_X86_ISA_1_USED): Set
-	to 0xc0010002.
-	(GNU_PROPERTY_X86_ISA_1_NEEDED): Set to 0xc0008002.
-	* testsuite/gnu_property_c.S (GNU_PROPERTY_X86_ISA_1_USED): Set
-	to 0xc0010002.
-	(GNU_PROPERTY_X86_ISA_1_NEEDED): Set to 0xc0008002.
-	* testsuite/gnu_property_test.sh: Updated.
----
- elfcpp/ChangeLog                    | [omitted]
- elfcpp/elfcpp.h                     | 18 ++++++++++++---
- gold/ChangeLog                      | [omitted]
- gold/testsuite/gnu_property_a.S     |  4 ++--
- gold/testsuite/gnu_property_b.S     |  4 ++--
- gold/testsuite/gnu_property_c.S     |  4 ++--
- gold/testsuite/gnu_property_test.sh |  4 ++--
- gold/x86_64.cc                      | 34 +++++++++++++++++++++++++++--
- 8 files changed, 110 insertions(+), 13 deletions(-)
-
-diff --git a/elfcpp/elfcpp.h b/elfcpp/elfcpp.h
-index 65d803c00e2..4b6ff94a654 100644
---- a/elfcpp/elfcpp.h
-+++ b/elfcpp/elfcpp.h
-@@ -1013,9 +1013,21 @@ enum
-   GNU_PROPERTY_STACK_SIZE = 1,
-   GNU_PROPERTY_NO_COPY_ON_PROTECTED = 2,
-   GNU_PROPERTY_LOPROC = 0xc0000000,
--  GNU_PROPERTY_X86_ISA_1_USED = 0xc0000000,
--  GNU_PROPERTY_X86_ISA_1_NEEDED = 0xc0000001,
--  GNU_PROPERTY_X86_FEATURE_1_AND = 0xc0000002,
-+  GNU_PROPERTY_X86_COMPAT_ISA_1_USED = 0xc0000000,
-+  GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED = 0xc0000001,
-+  GNU_PROPERTY_X86_UINT32_AND_LO = 0xc0000002,
-+  GNU_PROPERTY_X86_UINT32_AND_HI = 0xc0007fff,
-+  GNU_PROPERTY_X86_UINT32_OR_LO = 0xc0008000,
-+  GNU_PROPERTY_X86_UINT32_OR_HI = 0xc000ffff,
-+  GNU_PROPERTY_X86_UINT32_OR_AND_LO = 0xc0010000,
-+  GNU_PROPERTY_X86_UINT32_OR_AND_HI = 0xc0017fff,
-+  GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED = GNU_PROPERTY_X86_UINT32_OR_LO + 0,
-+  GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED = GNU_PROPERTY_X86_UINT32_OR_AND_LO + 0,
-+  GNU_PROPERTY_X86_FEATURE_1_AND = GNU_PROPERTY_X86_UINT32_AND_LO + 0,
-+  GNU_PROPERTY_X86_ISA_1_NEEDED = GNU_PROPERTY_X86_UINT32_OR_LO + 2,
-+  GNU_PROPERTY_X86_FEATURE_2_NEEDED = GNU_PROPERTY_X86_UINT32_OR_LO + 1,
-+  GNU_PROPERTY_X86_ISA_1_USED = GNU_PROPERTY_X86_UINT32_OR_AND_LO + 2,
-+  GNU_PROPERTY_X86_FEATURE_2_USED = GNU_PROPERTY_X86_UINT32_OR_AND_LO + 1,
-   GNU_PROPERTY_HIPROC = 0xdfffffff,
-   GNU_PROPERTY_LOUSER = 0xe0000000,
-   GNU_PROPERTY_HIUSER = 0xffffffff
-diff --git a/gold/testsuite/gnu_property_a.S b/gold/testsuite/gnu_property_a.S
-index 463bc8e52fe..5fbbbc9c4bb 100644
---- a/gold/testsuite/gnu_property_a.S
-+++ b/gold/testsuite/gnu_property_a.S
-@@ -1,8 +1,8 @@
- #define NT_GNU_PROPERTY_TYPE_0 5
- 
- #define GNU_PROPERTY_STACK_SIZE 1
--#define GNU_PROPERTY_X86_ISA_1_USED 0xc0000000
--#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0000001
-+#define GNU_PROPERTY_X86_ISA_1_USED 0xc0010002
-+#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0008002
- #define GNU_PROPERTY_X86_FEATURE_1_AND 0xc0000002
- 
- #if __SIZEOF_PTRDIFF_T__  == 8
-diff --git a/gold/testsuite/gnu_property_b.S b/gold/testsuite/gnu_property_b.S
-index 0c0c038ead1..7028f73d7ab 100644
---- a/gold/testsuite/gnu_property_b.S
-+++ b/gold/testsuite/gnu_property_b.S
-@@ -2,8 +2,8 @@
- 
- #define GNU_PROPERTY_STACK_SIZE 1
- #define GNU_PROPERTY_NO_COPY_ON_PROTECTED 2
--#define GNU_PROPERTY_X86_ISA_1_USED 0xc0000000
--#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0000001
-+#define GNU_PROPERTY_X86_ISA_1_USED 0xc0010002
-+#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0008002
- #define GNU_PROPERTY_X86_FEATURE_1_AND 0xc0000002
- 
- #if __SIZEOF_PTRDIFF_T__  == 8
-diff --git a/gold/testsuite/gnu_property_c.S b/gold/testsuite/gnu_property_c.S
-index ace159a9a9d..c8cbd8bce28 100644
---- a/gold/testsuite/gnu_property_c.S
-+++ b/gold/testsuite/gnu_property_c.S
-@@ -2,8 +2,8 @@
- 
- #define GNU_PROPERTY_STACK_SIZE 1
- #define GNU_PROPERTY_NO_COPY_ON_PROTECTED 2
--#define GNU_PROPERTY_X86_ISA_1_USED 0xc0000000
--#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0000001
-+#define GNU_PROPERTY_X86_ISA_1_USED 0xc0010002
-+#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0008002
- #define GNU_PROPERTY_X86_FEATURE_1_AND 0xc0000002
- 
- #if __SIZEOF_PTRDIFF_T__  == 8
-diff --git a/gold/testsuite/gnu_property_test.sh b/gold/testsuite/gnu_property_test.sh
-index 1806d3474cc..a4096005b78 100755
---- a/gold/testsuite/gnu_property_test.sh
-+++ b/gold/testsuite/gnu_property_test.sh
-@@ -77,8 +77,8 @@ check_count gnu_property_test.stdout "^  NOTE" 2
- 
- check gnu_property_test.stdout "stack size: 0x111100"
- check gnu_property_test.stdout "no copy on protected"
--check gnu_property_test.stdout "x86 ISA used: i486, SSE2, SSE4_2, AVX512CD"
--check gnu_property_test.stdout "x86 ISA needed: i486, SSE2, SSE4_2, AVX512CD"
-+check gnu_property_test.stdout "x86 ISA used: x86-64-v2, <unknown: 10>, <unknown: 100>, <unknown: 1000>"
-+check gnu_property_test.stdout "x86 ISA needed: x86-64-v2, <unknown: 10>, <unknown: 100>, <unknown: 1000>"
- check gnu_property_test.stdout "x86 feature: IBT"
- 
- exit 0
-diff --git a/gold/x86_64.cc b/gold/x86_64.cc
-index 9cb2cf0a322..378bac16f78 100644
---- a/gold/x86_64.cc
-+++ b/gold/x86_64.cc
-@@ -706,8 +706,9 @@ class Target_x86_64 : public Sized_target<size, false>
-       rela_irelative_(NULL), copy_relocs_(elfcpp::R_X86_64_COPY),
-       got_mod_index_offset_(-1U), tlsdesc_reloc_info_(),
-       tls_base_symbol_defined_(false), isa_1_used_(0), isa_1_needed_(0),
--      feature_1_(0), object_isa_1_used_(0), object_feature_1_(0),
--      seen_first_object_(false)
-+      feature_1_(0), feature_2_used_(0), feature_2_needed_(0),
-+      object_isa_1_used_(0), object_feature_1_(0),
-+      object_feature_2_used_(0), seen_first_object_(false)
-   { }
- 
-   // Hook for a new output section.
-@@ -1382,6 +1383,8 @@ class Target_x86_64 : public Sized_target<size, false>
-   uint32_t isa_1_used_;
-   uint32_t isa_1_needed_;
-   uint32_t feature_1_;
-+  uint32_t feature_2_used_;
-+  uint32_t feature_2_needed_;
-   // Target-specific properties from the current object.
-   // These bits get ORed into ISA_1_USED_ after all properties for the object
-   // have been processed. But if either is all zeroes (as when the property
-@@ -1391,6 +1394,7 @@ class Target_x86_64 : public Sized_target<size, false>
-   // These bits get ANDed into FEATURE_1_ after all properties for the object
-   // have been processed.
-   uint32_t object_feature_1_;
-+  uint32_t object_feature_2_used_;
-   // Whether we have seen our first object, for use in initializing FEATURE_1_.
-   bool seen_first_object_;
- };
-@@ -1594,9 +1598,15 @@ Target_x86_64<size>::record_gnu_property(
- 
-   switch (pr_type)
-     {
-+    case elfcpp::GNU_PROPERTY_X86_COMPAT_ISA_1_USED:
-+    case elfcpp::GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED:
-+    case elfcpp::GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED:
-+    case elfcpp::GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED:
-     case elfcpp::GNU_PROPERTY_X86_ISA_1_USED:
-     case elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED:
-     case elfcpp::GNU_PROPERTY_X86_FEATURE_1_AND:
-+    case elfcpp::GNU_PROPERTY_X86_FEATURE_2_USED:
-+    case elfcpp::GNU_PROPERTY_X86_FEATURE_2_NEEDED:
-       if (pr_datasz != 4)
- 	{
- 	  gold_warning(_("%s: corrupt .note.gnu.property section "
-@@ -1625,6 +1635,12 @@ Target_x86_64<size>::record_gnu_property(
-       // If we see multiple feature props in one object, OR them together.
-       this->object_feature_1_ |= val;
-       break;
-+    case elfcpp::GNU_PROPERTY_X86_FEATURE_2_USED:
-+      this->object_feature_2_used_ |= val;
-+      break;
-+    case elfcpp::GNU_PROPERTY_X86_FEATURE_2_NEEDED:
-+      this->feature_2_needed_ |= val;
-+      break;
-     }
- }
- 
-@@ -1642,15 +1658,23 @@ Target_x86_64<size>::merge_gnu_properties(const Object*)
-       else if (this->isa_1_used_ != 0)
- 	this->isa_1_used_ |= this->object_isa_1_used_;
-       this->feature_1_ &= this->object_feature_1_;
-+      // If any object is missing the FEATURE_2_USED property, we must
-+      // omit it from the output file.
-+      if (this->object_feature_2_used_ == 0)
-+	this->feature_2_used_ = 0;
-+      else if (this->feature_2_used_ != 0)
-+	this->feature_2_used_ |= this->object_feature_2_used_;
-     }
-   else
-     {
-       this->isa_1_used_ = this->object_isa_1_used_;
-       this->feature_1_ = this->object_feature_1_;
-+      this->feature_2_used_ = this->object_feature_2_used_;
-       this->seen_first_object_ = true;
-     }
-   this->object_isa_1_used_ = 0;
-   this->object_feature_1_ = 0;
-+  this->object_feature_2_used_ = 0;
- }
- 
- static inline void
-@@ -1676,6 +1700,12 @@ Target_x86_64<size>::do_finalize_gnu_properties(Layout* layout) const
-   if (this->feature_1_ != 0)
-     add_property(layout, elfcpp::GNU_PROPERTY_X86_FEATURE_1_AND,
- 		 this->feature_1_);
-+  if (this->feature_2_used_ != 0)
-+    add_property(layout, elfcpp::GNU_PROPERTY_X86_FEATURE_2_USED,
-+		 this->feature_2_used_);
-+  if (this->feature_2_needed_ != 0)
-+    add_property(layout, elfcpp::GNU_PROPERTY_X86_FEATURE_2_NEEDED,
-+		 this->feature_2_needed_);
- }
- 
- // Write the first three reserved words of the .got.plt section.
--- 
-2.27.0
-
diff --git a/pkgs/development/tools/misc/binutils/mips64-default-n64.patch b/pkgs/development/tools/misc/binutils/mips64-default-n64.patch
new file mode 100644
index 0000000000000..00581279f85e5
--- /dev/null
+++ b/pkgs/development/tools/misc/binutils/mips64-default-n64.patch
@@ -0,0 +1,82 @@
+--- a/bfd/config.bfd
++++ b/bfd/config.bfd
+@@ -927,11 +927,21 @@ case "${targ}" in
+     targ_defvec=mips_elf32_be_vec
+     targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
+     ;;
+-  mips64*el-*-linux*)
++  mips*64*el-*-linux*-gnuabi64)
++    targ_defvec=mips_elf64_trad_le_vec
++    targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec"
++    want64=true
++    ;;
++  mips*64*-*-linux*-gnuabi64)
++    targ_defvec=mips_elf64_trad_be_vec
++    targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec"
++    want64=true
++    ;;
++  mips*64*el-*-linux*)
+     targ_defvec=mips_elf32_ntrad_le_vec
+     targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec"
+     ;;
+-  mips64*-*-linux*)
++  mips*64*-*-linux*)
+     targ_defvec=mips_elf32_ntrad_be_vec
+     targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
+     ;;
+--- a/binutils/testsuite/binutils-all/mips/mips-note-2-n32.d
++++ b/binutils/testsuite/binutils-all/mips/mips-note-2-n32.d
+@@ -1,4 +1,5 @@
+ #PROG: objcopy
++#as: -n32
+ #readelf: --notes --wide
+ #objcopy: --merge-notes
+ #name: MIPS merge notes section (n32)
+--- a/gas/configure
++++ b/gas/configure
+@@ -12167,6 +12167,9 @@ _ACEOF
+ 	esac
+ 	# Decide which ABI to target by default.
+ 	case ${target} in
++	  mips*64*-linux-gnuabi64)
++	    mips_default_abi=N64_ABI
++	    ;;
+ 	  mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \
+ 	  | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*)
+ 	    mips_default_abi=N32_ABI
+--- a/gas/configure.ac
++++ b/gas/configure.ac
+@@ -384,6 +384,9 @@ changequote([,])dnl
+ 	esac
+ 	# Decide which ABI to target by default.
+ 	case ${target} in
++	  mips*64*-linux-gnuabi64)
++	    mips_default_abi=N64_ABI
++	    ;;
+ 	  mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \
+ 	  | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*)
+ 	    mips_default_abi=N32_ABI
+--- a/ld/configure.tgt
++++ b/ld/configure.tgt
+@@ -543,11 +543,19 @@ mips*-*-vxworks*)	targ_emul=elf32ebmipvx
+ 			;;
+ mips*-*-windiss)	targ_emul=elf32mipswindiss
+ 			;;
+-mips64*el-*-linux-*)	targ_emul=elf32ltsmipn32
++mips*64*el-*-linux-gnuabi64)	targ_emul=elf64ltsmip
++			targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32ltsmip elf32btsmip elf64btsmip"
++			targ_extra_libpath=$targ_extra_emuls
++			;;
++mips*64*el-*-linux-*)	targ_emul=elf32ltsmipn32
+ 			targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
+ 			targ_extra_libpath=$targ_extra_emuls
+ 			;;
+-mips64*-*-linux-*)	targ_emul=elf32btsmipn32
++mips*64*-*-linux-gnuabi64)	targ_emul=elf64btsmip
++			targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip"
++			targ_extra_libpath=$targ_extra_emuls
++			;;
++mips*64*-*-linux-*)	targ_emul=elf32btsmipn32
+ 			targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
+ 			targ_extra_libpath=$targ_extra_emuls
+ 			;;
diff --git a/pkgs/development/tools/misc/blackfire/default.nix b/pkgs/development/tools/misc/blackfire/default.nix
index 6f82e0731088d..16ea9bfabd477 100644
--- a/pkgs/development/tools/misc/blackfire/default.nix
+++ b/pkgs/development/tools/misc/blackfire/default.nix
@@ -2,56 +2,96 @@
 , lib
 , fetchurl
 , dpkg
-, autoPatchelfHook
 , writeShellScript
 , curl
 , jq
 , common-updater-scripts
 }:
 
+let
+  version = "2.8.0";
+
+  sources = {
+    "x86_64-linux" = fetchurl {
+      url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_amd64.deb";
+      sha256 = "0bgd4hnpaxrqw0s0y2qiak8lbskfi2cqp147vj1kbhvm8834hwhg";
+    };
+    "i686-linux" = fetchurl {
+      url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_i386.deb";
+      sha256 = "06lf642m4imz8xvwipflmvjy1ih7k8bx8jpay0xawvilh14pqz8f";
+    };
+    "aarch64-linux" = fetchurl {
+      url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_arm64.deb";
+      sha256 = "0rddafjgdnj3na96x83paq5z14grj46v4iv38qbkvmdllrj26a0a";
+    };
+    "aarch64-darwin" = fetchurl {
+      url = "https://packages.blackfire.io/blackfire/${version}/blackfire-darwin_arm64.pkg.tar.gz";
+      sha256 = "YWiZnYdsW7dyQ0IeKeC1U00ZIdJRnzs9keeQTEU2ozA=";
+    };
+    "x86_64-darwin" = fetchurl {
+      url = "https://packages.blackfire.io/blackfire/${version}/blackfire-darwin_amd64.pkg.tar.gz";
+      sha256 = "391b0d239b11095bb8515cb60ee95f02d5862fcb509724081f314819967206b6";
+    };
+  };
+in
 stdenv.mkDerivation rec {
   pname = "blackfire";
-  version = "2.5.2";
+  inherit version;
 
-  src = fetchurl {
-    url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_amd64.deb";
-    sha256 = "1RO5yabSNpIz5lWXngMOZ1S2vtnLEkXIj1ZoIinRrQ0=";
-  };
+  src = sources.${stdenv.hostPlatform.system};
 
-  nativeBuildInputs = [
-    dpkg
-    autoPatchelfHook
-  ];
+  nativeBuildInputs = lib.optionals stdenv.isLinux [ dpkg ];
 
   dontUnpack = true;
 
   installPhase = ''
     runHook preInstall
 
-    dpkg-deb -x $src $out
-    mv $out/usr/* $out
-    rmdir $out/usr
+    if ${ lib.boolToString stdenv.isLinux }
+    then
+      dpkg-deb -x $src $out
+      mv $out/usr/* $out
+      rmdir $out/usr
+
+      # Fix ExecStart path and replace deprecated directory creation method,
+      # use dynamic user.
+      substituteInPlace "$out/lib/systemd/system/blackfire-agent.service" \
+        --replace '/usr/' "$out/" \
+        --replace 'ExecStartPre=/bin/mkdir -p /var/run/blackfire' 'RuntimeDirectory=blackfire' \
+        --replace 'ExecStartPre=/bin/chown blackfire: /var/run/blackfire' "" \
+        --replace 'User=blackfire' 'DynamicUser=yes' \
+        --replace 'PermissionsStartOnly=true' ""
 
-    # Fix ExecStart path and replace deprecated directory creation method,
-    # use dynamic user.
-    substituteInPlace "$out/lib/systemd/system/blackfire-agent.service" \
-      --replace '/usr/' "$out/" \
-      --replace 'ExecStartPre=/bin/mkdir -p /var/run/blackfire' 'RuntimeDirectory=blackfire' \
-      --replace 'ExecStartPre=/bin/chown blackfire: /var/run/blackfire' "" \
-      --replace 'User=blackfire' 'DynamicUser=yes' \
-      --replace 'PermissionsStartOnly=true' ""
+      # Modernize socket path.
+      substituteInPlace "$out/etc/blackfire/agent" \
+        --replace '/var/run' '/run'
+    else
+      mkdir $out
 
-    # Modernize socket path.
-    substituteInPlace "$out/etc/blackfire/agent" \
-      --replace '/var/run' '/run'
+      tar -zxvf $src
+
+      mv etc $out
+      mv usr/* $out
+    fi
 
     runHook postInstall
   '';
 
   passthru = {
     updateScript = writeShellScript "update-${pname}" ''
+      set -o errexit
       export PATH="${lib.makeBinPath [ curl jq common-updater-scripts ]}"
-      update-source-version "$UPDATE_NIX_ATTR_PATH" "$(curl https://blackfire.io/api/v1/releases | jq .cli --raw-output)"
+      NEW_VERSION=$(curl -s https://blackfire.io/api/v1/releases | jq .cli --raw-output)
+
+      if [[ "${version}" = "$NEW_VERSION" ]]; then
+          echo "The new version same as the old version."
+          exit 0
+      fi
+
+      for platform in ${lib.concatStringsSep " " meta.platforms}; do
+        update-source-version "blackfire" "0" "${lib.fakeSha256}" "--system=$platform"
+        update-source-version "blackfire" "$NEW_VERSION" "--system=$platform" --ignore-same-hash
+      done
     '';
   };
 
@@ -59,7 +99,7 @@ stdenv.mkDerivation rec {
     description = "Blackfire Profiler agent and client";
     homepage = "https://blackfire.io/";
     license = licenses.unfree;
-    maintainers = with maintainers; [ jtojnar ];
-    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ jtojnar shyim ];
+    platforms = [ "x86_64-linux" "aarch64-linux" "i686-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/pkgs/development/tools/misc/circleci-cli/default.nix b/pkgs/development/tools/misc/circleci-cli/default.nix
index 5184f22aecdc5..19984886207c7 100644
--- a/pkgs/development/tools/misc/circleci-cli/default.nix
+++ b/pkgs/development/tools/misc/circleci-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "circleci-cli";
-  version = "0.1.16947";
+  version = "0.1.17142";
 
   src = fetchFromGitHub {
     owner = "CircleCI-Public";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-RGkC1XhrssrX4IBh1OrzEowvbPPUK7jXZxxa+FEV/WE=";
+    sha256 = "sha256-69GGJfnOHry+N3hKZapKz6eFSerqIHt4wRAhm/q/SOQ=";
   };
 
   vendorSha256 = "sha256-7u2y1yBVpXf+D19tslD4s3B1KmABl4OWNzzLaBNL/2U=";
diff --git a/pkgs/development/tools/misc/clojure-lsp/default.nix b/pkgs/development/tools/misc/clojure-lsp/default.nix
index 307bcd273a40e..4dc63d54f145e 100644
--- a/pkgs/development/tools/misc/clojure-lsp/default.nix
+++ b/pkgs/development/tools/misc/clojure-lsp/default.nix
@@ -2,18 +2,18 @@
 
 buildGraalvmNativeImage rec {
   pname = "clojure-lsp";
-  version = "2022.03.31-20.00.20";
+  version = "2022.04.18-00.59.32";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-UQA/BXf6hTTxZ504e1faPdS8mKYS8WrY5L/zgaGCxpU=";
+    sha256 = "sha256-14EsJIKYl8TWbDqM9PyVrbs/4EssqXp0EK70RrFz+RE=";
   };
 
   jar = fetchurl {
     url = "https://github.com/clojure-lsp/clojure-lsp/releases/download/${version}/clojure-lsp-standalone.jar";
-    sha256 = "e66689326c39ae74f0e8d9f5a8229c7ebebe010849870a47faf88e81cbaa37e0";
+    sha256 = "d78094b015bd9e671eea2eb89ca0bb3ec58d39802ad1bfdf875b50e1cdd4995e";
   };
 
   extraNativeImageBuildArgs = [
diff --git a/pkgs/development/tools/misc/devspace/default.nix b/pkgs/development/tools/misc/devspace/default.nix
new file mode 100644
index 0000000000000..df59686b2b97a
--- /dev/null
+++ b/pkgs/development/tools/misc/devspace/default.nix
@@ -0,0 +1,37 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "devspace";
+  version = "5.18.4";
+
+  src = fetchFromGitHub {
+    owner = "loft-sh";
+    repo = "devspace";
+    rev = "v${version}";
+    sha256 = "0s5117cgxgrxfki5drvg6d22dvrjffa03bi644zdl1p631r599r1";
+  };
+
+  vendorSha256 = null;
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.version=${version}"
+  ];
+
+  # Check are disable since they requiered a working K8S cluster
+  # TODO: add a nixosTest to be able to perform the package check
+  doCheck = false;
+
+  meta = with lib; {
+    description = "DevSpace is an open-source developer tool for Kubernetes that lets you develop and deploy cloud-native software faster";
+    homepage = "https://devspace.sh/";
+    changelog = "https://github.com/loft-sh/devspace/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ darkonion0 ];
+  };
+}
diff --git a/pkgs/development/tools/misc/gef/default.nix b/pkgs/development/tools/misc/gef/default.nix
index 0352ebc7cf327..b09cc795d8c08 100644
--- a/pkgs/development/tools/misc/gef/default.nix
+++ b/pkgs/development/tools/misc/gef/default.nix
@@ -4,6 +4,7 @@
 , makeWrapper
 , gdb
 , python3
+, bintools-unwrapped
 , file
 , ps
 , git
@@ -39,7 +40,12 @@ in stdenv.mkDerivation rec {
     makeWrapper ${gdb}/bin/gdb $out/bin/gef \
       --add-flags "-q -x $out/share/gef/gef.py" \
       --set NIX_PYTHONPATH ${pythonPath} \
-      --prefix PATH : ${lib.makeBinPath [ python3 file ps ]}
+      --prefix PATH : ${lib.makeBinPath [
+        python3
+        bintools-unwrapped # for readelf
+        file
+        ps
+      ]}
   '';
 
   checkInputs = [
diff --git a/pkgs/development/tools/misc/go-license-detector/default.nix b/pkgs/development/tools/misc/go-license-detector/default.nix
index 91c6518bc26d4..11e7547afc4c5 100644
--- a/pkgs/development/tools/misc/go-license-detector/default.nix
+++ b/pkgs/development/tools/misc/go-license-detector/default.nix
@@ -1,24 +1,25 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, git }:
 
 buildGoModule rec {
   pname = "go-license-detector";
-  version = "3.1.0";
+  version = "4.3.0";
 
   src = fetchFromGitHub {
-    owner = "src-d";
+    owner = "go-enry";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0ln1z3y9q5igf9djkxw05ql2hb1ijcvvz0mrbwz11cdv9xrsa4z4";
+    sha256 = "sha256-MubQpxpUCPDBVsEz4NmY8MFEoECXQtzAaZJ89vv5bDc=";
   };
 
-  vendorSha256 = "0gan5l7vsq0hixxcymhhs8p07v92w60r0lhgvrr9a99nic12vmia";
+  vendorSha256 = "sha256-a9yCnGg+4f+UoHbGG8a47z2duBD3qXcAzPKnE4PQsvM=";
 
-  doCheck = false;
+  checkInputs = [ git ];
 
   meta = with lib; {
     description = "Reliable project licenses detector";
-    homepage = "https://github.com/src-d/go-license-detector";
+    homepage = "https://github.com/go-enry/go-license-detector";
     license = licenses.asl20;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "license-detector";
   };
 }
diff --git a/pkgs/development/tools/misc/grcov/default.nix b/pkgs/development/tools/misc/grcov/default.nix
index 04ed4a1046b77..2ca092fa659d8 100644
--- a/pkgs/development/tools/misc/grcov/default.nix
+++ b/pkgs/development/tools/misc/grcov/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "grcov";
-  version = "0.8.8";
+  version = "0.8.9";
 
   src = fetchFromGitHub {
     owner = "mozilla";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-OITtZdI9d5zQVI02s5gJF9lWCjZZgE7YZRfFROU040o=";
+    sha256 = "sha256-VSjKZoK/o05kYX5mRCnaS6r/+4dZep9Bp9Im1Zw7piM=";
   };
 
-  cargoSha256 = "sha256-AZVkS/huEsA1wdVB/xUGCCjY5AWJxaU1DD/OlEURw/c=";
+  cargoSha256 = "sha256-7I0BizeDbikpog0YG/X8vwoO4PGE1qYzRTWTr0RUQws=";
 
   # tests do not find grcov path correctly
   checkFlags = let
diff --git a/pkgs/development/tools/misc/libtool/libtool2-macos11.patch b/pkgs/development/tools/misc/libtool/libtool2-macos11.patch
deleted file mode 100644
index 1552ae7a949f3..0000000000000
--- a/pkgs/development/tools/misc/libtool/libtool2-macos11.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
----
- m4/libtool.m4 | 13 ++++---------
- 1 file changed, 4 insertions(+), 9 deletions(-)
-
-diff --git a/m4/libtool.m4 b/m4/libtool.m4
-index f2d1f398..b971e8e7 100644
---- a/m4/libtool.m4
-+++ b/m4/libtool.m4
-@@ -1067,16 +1067,11 @@ _LT_EOF
-       _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
-     darwin1.*)
-       _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
--    darwin*) # darwin 5.x on
--      # if running on 10.5 or later, the deployment target defaults
--      # to the OS version, if on x86, and 10.4, the deployment
--      # target defaults to 10.4. Don't you love it?
--      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
--	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
--	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
--	10.[[012]][[,.]]*)
-+    darwin*)
-+      case ${MACOSX_DEPLOYMENT_TARGET},$host in
-+	10.[[012]],*|,*powerpc*)
- 	  _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
--	10.*)
-+	*)
- 	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
-       esac
-     ;;
--- 
-2.24.3 (Apple Git-128)
diff --git a/pkgs/development/tools/misc/libtool/libtool2.nix b/pkgs/development/tools/misc/libtool/libtool2.nix
index 44e4c8665c839..3d15752fc0a63 100644
--- a/pkgs/development/tools/misc/libtool/libtool2.nix
+++ b/pkgs/development/tools/misc/libtool/libtool2.nix
@@ -1,4 +1,6 @@
 { lib, stdenv, fetchurl, fetchpatch, autoconf, automake, m4, perl, help2man
+, runtimeShell
+, file
 }:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
@@ -8,20 +10,18 @@
 
 stdenv.mkDerivation rec {
   pname = "libtool";
-  version = "2.4.6";
+  version = "2.4.7";
 
   src = fetchurl {
     url = "mirror://gnu/libtool/${pname}-${version}.tar.gz";
-    sha256 = "1qq61k6lp1fp75xs398yzi6wvbx232l7xbyn3p13cnh27mflvgg3";
+    sha256 = "sha256-BOlsJATqcMWQxUbrpCAqThJyLGQAFsErmy8c49SB6ag=";
   };
 
   outputs = [ "out" "lib" ];
 
-  patches = [
-    # Suport macOS version 11.0
-    # https://lists.gnu.org/archive/html/libtool-patches/2020-06/msg00001.html
-    ./libtool2-macos11.patch
-  ];
+  # FILECMD was added in libtool 2.4.7; previous versions hardwired `/usr/bin/file`
+  #   https://lists.gnu.org/archive/html/autotools-announce/2022-03/msg00000.html
+  FILECMD = "${file}/bin/file";
 
   # Normally we'd use autoreconfHook, but that includes libtoolize.
   postPatch = ''
@@ -34,10 +34,18 @@ stdenv.mkDerivation rec {
     automake
     autoconf
     popd
+  '' +
+  # libtool commit da2e352735722917bf0786284411262195a6a3f6 changed
+  # the shebang from `/bin/sh` (which is a special sandbox exception)
+  # to `/usr/bin/env sh`, meaning that we now need to patch shebangs
+  # in libtoolize and ltmain.sh since `dontPatchShebangs` is set:
+  ''
+    substituteInPlace libtoolize.in       --replace '#! /usr/bin/env sh' '#!${runtimeShell}'
+    substituteInPlace build-aux/ltmain.in --replace '#! /usr/bin/env sh' '#!${runtimeShell}'
   '';
 
-  nativeBuildInputs = [ perl help2man m4 ] ++ [ autoconf automake ];
-  propagatedBuildInputs = [ m4 ];
+  nativeBuildInputs = [ autoconf automake help2man m4 perl ];
+  propagatedBuildInputs = [ m4 file ];
 
   # Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the
   # "fixed" path in generated files!
diff --git a/pkgs/development/tools/misc/nix-bisect/default.nix b/pkgs/development/tools/misc/nix-bisect/default.nix
new file mode 100644
index 0000000000000..23efce44cff80
--- /dev/null
+++ b/pkgs/development/tools/misc/nix-bisect/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, fetchpatch
+, fetchFromGitHub
+, python3
+}:
+
+let
+  pname = "nix-bisect";
+  version = "0.4.1";
+in
+python3.pkgs.buildPythonApplication {
+  inherit pname version;
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "timokau";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-01vj35mMakqKi5zbMIPQ+R8xdkOWbzpnigd3/SU+svw=";
+  };
+
+  patches = [
+    (fetchpatch {
+      # Fixes compatibility with recent nix versions
+      url = "https://github.com/timokau/nix-bisect/commit/01eefe174b740cb90e48b06d67d5582d51786b96.patch";
+      hash = "sha256-Gls/NtHH7LujdEgLbcIRZ12KsJDrasXIMcHeeBVns4A=";
+    })
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    appdirs
+    numpy
+    pexpect
+  ];
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Bisect nix builds";
+    homepage = "https://github.com/timokau/nix-bisect";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix b/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix
index 63f42ffe07cc9..9041d1f8c589e 100644
--- a/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix
+++ b/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/NXPmicro/mfgtools";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bmilanov jraygauthier ];
+    mainProgram = "uuu";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/misc/patchelf/0.13.nix b/pkgs/development/tools/misc/patchelf/0.13.nix
new file mode 100644
index 0000000000000..0111a4b065c47
--- /dev/null
+++ b/pkgs/development/tools/misc/patchelf/0.13.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, patchelf }:
+
+# Note: this package is used for bootstrapping fetchurl, and thus
+# cannot use fetchpatch! All mutable patches (generated by GitHub or
+# cgit) that are needed here should be included directly in Nixpkgs as
+# files.
+
+stdenv.mkDerivation rec {
+  pname = "patchelf";
+  version = "0.13.1";
+
+  src = fetchurl {
+    url = "https://github.com/NixOS/${pname}/releases/download/${version}/${pname}-${version}.tar.bz2";
+    sha256 = "sha256-OeiuzNdJXVTfCU0rSnwIAQ/3d3A2+q8k8o4Hd30VmOI=";
+  };
+
+  setupHook = [ ./setup-hook.sh ];
+
+  # fails 8 out of 24 tests, problems when loading libc.so.6
+  doCheck = stdenv.name == "stdenv-linux";
+
+  inherit (patchelf) meta;
+}
diff --git a/pkgs/development/tools/misc/patchelf/default.nix b/pkgs/development/tools/misc/patchelf/default.nix
index dcb4d2362c8e0..03e3d003ad1e8 100644
--- a/pkgs/development/tools/misc/patchelf/default.nix
+++ b/pkgs/development/tools/misc/patchelf/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "patchelf";
-  version = "0.14.3";
+  version = "0.14.5";
 
   src = fetchurl {
     url = "https://github.com/NixOS/${pname}/releases/download/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-oBfsPSFSoZ/ZacDYez+LQ+MqZuT/q9yHZ6VgYrmuwnA=";
+    sha256 = "sha256-uaRvKYkyLrifpPYjfiCDbFe0VapDoyVF6gk7Qx2YL1w=";
   };
 
   setupHook = [ ./setup-hook.sh ];
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/NixOS/patchelf";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     description = "A small utility to modify the dynamic linker and RPATH of ELF executables";
     maintainers = [ maintainers.eelco ];
     platforms = platforms.all;
diff --git a/pkgs/development/tools/misc/patchelf/unstable.nix b/pkgs/development/tools/misc/patchelf/unstable.nix
index e62805867504e..350424747e883 100644
--- a/pkgs/development/tools/misc/patchelf/unstable.nix
+++ b/pkgs/development/tools/misc/patchelf/unstable.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchurl, autoreconfHook, fetchFromGitHub }:
+{ lib, stdenv, fetchurl, autoreconfHook, fetchFromGitHub, unstableGitUpdater }:
 
 stdenv.mkDerivation rec {
   pname = "patchelf";
-  version = "2021-11-16";
+  version = "unstable-2022-02-21";
 
   src = fetchFromGitHub {
     owner = "NixOS";
     repo = "patchelf";
-    rev = "a174cf3006baf31e0e9eaa62bc9adead93af63f7";
-    sha256 = "sha256-cKZ4DE70R5XiIqfnIVAl2s7a1bJxaaPpuCmxs3pxFRU=";
+    rev = "a35054504293f9ff64539850d1ed0bfd2f5399f2";
+    sha256 = "sha256-/hD/abmzWSkDhAWPLHiLQQ9cwJF8oFDuovNzRqs3Bho=";
   };
 
   # Drop test that fails on musl (?)
@@ -24,6 +24,12 @@ stdenv.mkDerivation rec {
 
   doCheck = !stdenv.isDarwin;
 
+  passthru = {
+    updateScript = unstableGitUpdater {
+      url = "https://github.com/NixOS/patchelf.git";
+    };
+  };
+
   meta = with lib; {
     homepage = "https://github.com/NixOS/patchelf";
     license = licenses.gpl3;
diff --git a/pkgs/development/tools/misc/pkgconf/default.nix b/pkgs/development/tools/misc/pkgconf/default.nix
index e3e0de4e7f16f..8db8a709bb6e0 100644
--- a/pkgs/development/tools/misc/pkgconf/default.nix
+++ b/pkgs/development/tools/misc/pkgconf/default.nix
@@ -1,31 +1,35 @@
-{ lib, stdenv, fetchurl, removeReferencesTo }:
+{ lib
+, stdenv
+, fetchurl
+, removeReferencesTo
+}:
 
 stdenv.mkDerivation rec {
   pname = "pkgconf";
   version = "1.8.0";
 
-  nativeBuildInputs = [ removeReferencesTo ];
+  src = fetchurl {
+    url = "https://distfiles.dereferenced.org/${pname}/${pname}-${version}.tar.xz";
+    hash = "sha256-75x+YYIrfLg1bm6eHcpY2VVvMgDXisqzXkNH6dTCu68=";
+  };
 
   outputs = [ "out" "lib" "dev" "man" "doc" ];
 
-  enableParallelBuilding = true;
+  nativeBuildInputs = [ removeReferencesTo ];
 
-  src = fetchurl {
-    url = "https://distfiles.dereferenced.org/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-75x+YYIrfLg1bm6eHcpY2VVvMgDXisqzXkNH6dTCu68=";
-  };
+  enableParallelBuilding = true;
 
-  # Debian has outputs like these too:
-  # https://packages.debian.org/source/buster/pkgconf, so take it this
-  # reference removing is safe.
+  # Debian has outputs like these too
+  # (https://packages.debian.org/source/bullseye/pkgconf), so it is safe to
+  # remove those references
   postFixup = ''
     remove-references-to \
+      -t "${placeholder "out"}" \
+      "${placeholder "lib"}"/lib/*
+    remove-references-to \
       -t "${placeholder "dev"}" \
       "${placeholder "lib"}"/lib/* \
       "${placeholder "out"}"/bin/*
-    remove-references-to \
-      -t "${placeholder "out"}" \
-      "${placeholder "lib"}"/lib/*
   ''
   # Move back share/aclocal. Yes, this normally goes in the dev output for good
   # reason, but in this case the dev output is for the `libpkgconf` library,
@@ -37,10 +41,19 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
+    homepage = "https://github.com/pkgconf/pkgconf";
     description = "Package compiler and linker metadata toolkit";
-    homepage = "https://git.dereferenced.org/pkgconf/pkgconf";
-    platforms = platforms.all;
+    longDescription = ''
+      pkgconf is a program which helps to configure compiler and linker flags
+      for development libraries. It is similar to pkg-config from
+      freedesktop.org.
+
+      libpkgconf is a library which provides access to most of pkgconf's
+      functionality, to allow other tooling such as compilers and IDEs to
+      discover and use libraries configured by pkgconf.
+    '';
     license = licenses.isc;
-    maintainers = with maintainers; [ zaninime ];
+    maintainers = with maintainers; [ zaninime AndersonTorres ];
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/misc/saleae-logic-2/default.nix b/pkgs/development/tools/misc/saleae-logic-2/default.nix
index 242d76174ce9d..f90f6b067b7ea 100644
--- a/pkgs/development/tools/misc/saleae-logic-2/default.nix
+++ b/pkgs/development/tools/misc/saleae-logic-2/default.nix
@@ -1,10 +1,10 @@
 { lib, fetchurl, makeDesktopItem, appimageTools, gtk3 }:
 let
   name = "saleae-logic-2";
-  version = "2.3.45";
+  version = "2.3.50";
   src = fetchurl {
     url = "https://downloads.saleae.com/logic2/Logic-${version}-master.AppImage";
-    sha256 = "sha256-kX8jMCUkz7B0muxsEwEttEX+DA2P+6swdZJGHyo7ScA=";
+    sha256 = "sha256-jkdFdgiSP2ssrUajl85FA4E21Qi6BUgrjKFdlBYyG7c=";
   };
   desktopItem = makeDesktopItem {
     inherit name;
@@ -70,6 +70,6 @@ appimageTools.wrapType2 {
     description = "Software for Saleae logic analyzers";
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
-    maintainers = [ maintainers.j-hui ];
+    maintainers = with maintainers; [ j-hui newam ];
   };
 }
diff --git a/pkgs/development/tools/misc/sccache/default.nix b/pkgs/development/tools/misc/sccache/default.nix
index d2833ce9da62a..a8f7f63d0222a 100644
--- a/pkgs/development/tools/misc/sccache/default.nix
+++ b/pkgs/development/tools/misc/sccache/default.nix
@@ -16,7 +16,8 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin Security;
 
-  buildFeatures = lib.optionals (!stdenv.isDarwin) [ "dist-client" "dist-server" ];
+  # sccache-dist is only supported on x86_64 Linux machines.
+  buildFeatures = lib.optionals (stdenv.system == "x86_64-linux") [ "dist-client" "dist-server" ];
 
   # Tests fail because of client server setup which is not possible inside the pure environment,
   # see https://github.com/mozilla/sccache/issues/460
diff --git a/pkgs/development/tools/misc/semver-tool/default.nix b/pkgs/development/tools/misc/semver-tool/default.nix
index 407185a474b9e..434fba18c5921 100644
--- a/pkgs/development/tools/misc/semver-tool/default.nix
+++ b/pkgs/development/tools/misc/semver-tool/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = [ maintainers.qyliss ];
+    mainProgram = "semver";
   };
 }
diff --git a/pkgs/development/tools/misc/texinfo/6.8.nix b/pkgs/development/tools/misc/texinfo/6.8.nix
index 11435bf329f66..992f695bc92ca 100644
--- a/pkgs/development/tools/misc/texinfo/6.8.nix
+++ b/pkgs/development/tools/misc/texinfo/6.8.nix
@@ -1,4 +1,8 @@
 import ./common.nix {
   version = "6.8";
   sha256 = "1i7yb7mrp3inz25zbzv2pllr4y7d58v818f1as7iz8mw53nm7dwf";
+  patches = [
+    # glibc 2.34 compat
+    ./fix-glibc-2.34.patch
+  ];
 }
diff --git a/pkgs/development/tools/misc/texinfo/common.nix b/pkgs/development/tools/misc/texinfo/common.nix
index b379df09a4b06..26732657eb9f5 100644
--- a/pkgs/development/tools/misc/texinfo/common.nix
+++ b/pkgs/development/tools/misc/texinfo/common.nix
@@ -1,4 +1,4 @@
-{ version, sha256 }:
+{ version, sha256, patches ? [] }:
 
 { lib, stdenv, buildPackages, fetchurl, perl, xz, gettext
 
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
     inherit sha256;
   };
 
-  patches = optional crossBuildTools ./cross-tools-flags.patch;
+  patches = patches ++ optional crossBuildTools ./cross-tools-flags.patch;
 
   # ncurses is required to build `makedoc'
   # this feature is introduced by the ./cross-tools-flags.patch
diff --git a/pkgs/development/tools/misc/texinfo/fix-glibc-2.34.patch b/pkgs/development/tools/misc/texinfo/fix-glibc-2.34.patch
new file mode 100644
index 0000000000000..60f2e63b7ce03
--- /dev/null
+++ b/pkgs/development/tools/misc/texinfo/fix-glibc-2.34.patch
@@ -0,0 +1,186 @@
+
+Patch by Vitezslav Crhonek <vcrhonek@redhat.com>
+Source: https://src.fedoraproject.org/rpms/texinfo/c/9b2cca4817fa4bd8d520fed05e9560fc7183dcdf?branch=rawhide
+
+diff -up texinfo-6.8/gnulib/lib/cdefs.h.orig texinfo-6.8/gnulib/lib/cdefs.h
+--- texinfo-6.8/gnulib/lib/cdefs.h.orig	2021-03-11 19:57:53.000000000 +0100
++++ texinfo-6.8/gnulib/lib/cdefs.h	2021-07-19 12:26:46.985176475 +0200
+@@ -321,15 +321,15 @@
+ 
+ /* The nonnull function attribute marks pointer parameters that
+    must not be NULL.  */
+-#ifndef __attribute_nonnull__
++#ifndef __nonnull
+ # if __GNUC_PREREQ (3,3) || __glibc_has_attribute (__nonnull__)
+-#  define __attribute_nonnull__(params) __attribute__ ((__nonnull__ params))
++#  define __nonnull(params) __attribute__ ((__nonnull__ params))
+ # else
+-#  define __attribute_nonnull__(params)
++#  define __nonnull(params)
+ # endif
+-#endif
+-#ifndef __nonnull
+-# define __nonnull(params) __attribute_nonnull__ (params)
++#elif !defined __GLIBC__
++# undef __nonnull
++# define __nonnull(params) _GL_ATTRIBUTE_NONNULL (params)
+ #endif
+ 
+ /* If fortification mode, we warn about unused results of certain
+diff -up texinfo-6.8/gnulib/lib/libc-config.h.orig texinfo-6.8/gnulib/lib/libc-config.h
+--- texinfo-6.8/gnulib/lib/libc-config.h.orig	2021-03-11 19:57:54.000000000 +0100
++++ texinfo-6.8/gnulib/lib/libc-config.h	2021-07-19 12:27:58.810590975 +0200
+@@ -33,9 +33,9 @@
+ #include <config.h>
+ 
+ /* On glibc this includes <features.h> and <sys/cdefs.h> and #defines
+-   _FEATURES_H, __WORDSIZE, and __set_errno.  On FreeBSD 11 and
+-   DragonFlyBSD 5.9 it includes <sys/cdefs.h> which defines __nonnull.
+-   Elsewhere it is harmless.  */
++   _FEATURES_H, __WORDSIZE, and __set_errno.  On FreeBSD 11 it
++   includes <sys/cdefs.h> which defines __nonnull.  Elsewhere it
++   is harmless.  */
+ #include <errno.h>
+ 
+ /* From glibc <errno.h>.  */
+diff -up texinfo-6.8/gnulib/lib/malloc/dynarray-skeleton.c.orig texinfo-6.8/gnulib/lib/malloc/dynarray-skeleton.c
+--- texinfo-6.8/gnulib/lib/malloc/dynarray-skeleton.c.orig	2021-03-11 19:57:54.000000000 +0100
++++ texinfo-6.8/gnulib/lib/malloc/dynarray-skeleton.c	2021-07-19 12:24:46.878419397 +0200
+@@ -192,7 +192,7 @@ DYNARRAY_NAME (free__array__) (struct DY
+ 
+ /* Initialize a dynamic array object.  This must be called before any
+    use of the object.  */
+-__attribute_nonnull__ ((1))
++__nonnull ((1))
+ static void
+ DYNARRAY_NAME (init) (struct DYNARRAY_STRUCT *list)
+ {
+@@ -202,7 +202,7 @@ DYNARRAY_NAME (init) (struct DYNARRAY_ST
+ }
+ 
+ /* Deallocate the dynamic array and its elements.  */
+-__attribute_maybe_unused__ __attribute_nonnull__ ((1))
++__attribute_maybe_unused__ __nonnull ((1))
+ static void
+ DYNARRAY_FREE (struct DYNARRAY_STRUCT *list)
+ {
+@@ -213,7 +213,7 @@ DYNARRAY_FREE (struct DYNARRAY_STRUCT *l
+ }
+ 
+ /* Return true if the dynamic array is in an error state.  */
+-__attribute_nonnull__ ((1))
++__nonnull ((1))
+ static inline bool
+ DYNARRAY_NAME (has_failed) (const struct DYNARRAY_STRUCT *list)
+ {
+@@ -222,7 +222,7 @@ DYNARRAY_NAME (has_failed) (const struct
+ 
+ /* Mark the dynamic array as failed.  All elements are deallocated as
+    a side effect.  */
+-__attribute_nonnull__ ((1))
++__nonnull ((1))
+ static void
+ DYNARRAY_NAME (mark_failed) (struct DYNARRAY_STRUCT *list)
+ {
+@@ -236,7 +236,7 @@ DYNARRAY_NAME (mark_failed) (struct DYNA
+ 
+ /* Return the number of elements which have been added to the dynamic
+    array.  */
+-__attribute_nonnull__ ((1))
++__nonnull ((1))
+ static inline size_t
+ DYNARRAY_NAME (size) (const struct DYNARRAY_STRUCT *list)
+ {
+@@ -245,7 +245,7 @@ DYNARRAY_NAME (size) (const struct DYNAR
+ 
+ /* Return a pointer to the array element at INDEX.  Terminate the
+    process if INDEX is out of bounds.  */
+-__attribute_nonnull__ ((1))
++__nonnull ((1))
+ static inline DYNARRAY_ELEMENT *
+ DYNARRAY_NAME (at) (struct DYNARRAY_STRUCT *list, size_t index)
+ {
+@@ -257,7 +257,7 @@ DYNARRAY_NAME (at) (struct DYNARRAY_STRU
+ /* Return a pointer to the first array element, if any.  For a
+    zero-length array, the pointer can be NULL even though the dynamic
+    array has not entered the failure state.  */
+-__attribute_nonnull__ ((1))
++__nonnull ((1))
+ static inline DYNARRAY_ELEMENT *
+ DYNARRAY_NAME (begin) (struct DYNARRAY_STRUCT *list)
+ {
+@@ -267,7 +267,7 @@ DYNARRAY_NAME (begin) (struct DYNARRAY_S
+ /* Return a pointer one element past the last array element.  For a
+    zero-length array, the pointer can be NULL even though the dynamic
+    array has not entered the failure state.  */
+-__attribute_nonnull__ ((1))
++__nonnull ((1))
+ static inline DYNARRAY_ELEMENT *
+ DYNARRAY_NAME (end) (struct DYNARRAY_STRUCT *list)
+ {
+@@ -294,7 +294,7 @@ DYNARRAY_NAME (add__) (struct DYNARRAY_S
+ /* Add ITEM at the end of the array, enlarging it by one element.
+    Mark *LIST as failed if the dynamic array allocation size cannot be
+    increased.  */
+-__attribute_nonnull__ ((1))
++__nonnull ((1))
+ static inline void
+ DYNARRAY_NAME (add) (struct DYNARRAY_STRUCT *list, DYNARRAY_ELEMENT item)
+ {
+@@ -348,8 +348,7 @@ DYNARRAY_NAME (emplace__) (struct DYNARR
+ /* Allocate a place for a new element in *LIST and return a pointer to
+    it.  The pointer can be NULL if the dynamic array cannot be
+    enlarged due to a memory allocation failure.  */
+-__attribute_maybe_unused__ __attribute_warn_unused_result__
+-__attribute_nonnull__ ((1))
++__attribute_maybe_unused__ __attribute_warn_unused_result__ __nonnull ((1))
+ static
+ /* Avoid inlining with the larger initialization code.  */
+ #if !(defined (DYNARRAY_ELEMENT_INIT) || defined (DYNARRAY_ELEMENT_FREE))
+@@ -373,7 +372,7 @@ DYNARRAY_NAME (emplace) (struct DYNARRAY
+    existing size, new elements are added (which can be initialized).
+    Otherwise, the list is truncated, and elements are freed.  Return
+    false on memory allocation failure (and mark *LIST as failed).  */
+-__attribute_maybe_unused__ __attribute_nonnull__ ((1))
++__attribute_maybe_unused__ __nonnull ((1))
+ static bool
+ DYNARRAY_NAME (resize) (struct DYNARRAY_STRUCT *list, size_t size)
+ {
+@@ -418,7 +417,7 @@ DYNARRAY_NAME (resize) (struct DYNARRAY_
+ }
+ 
+ /* Remove the last element of LIST if it is present.  */
+-__attribute_maybe_unused__ __attribute_nonnull__ ((1))
++__attribute_maybe_unused__ __nonnull ((1))
+ static void
+ DYNARRAY_NAME (remove_last) (struct DYNARRAY_STRUCT *list)
+ {
+@@ -435,7 +434,7 @@ DYNARRAY_NAME (remove_last) (struct DYNA
+ 
+ /* Remove all elements from the list.  The elements are freed, but the
+    list itself is not.  */
+-__attribute_maybe_unused__ __attribute_nonnull__ ((1))
++__attribute_maybe_unused__ __nonnull ((1))
+ static void
+ DYNARRAY_NAME (clear) (struct DYNARRAY_STRUCT *list)
+ {
+@@ -453,8 +452,7 @@ DYNARRAY_NAME (clear) (struct DYNARRAY_S
+    stored in *RESULT if LIST refers to an empty list.  On success, the
+    pointer in *RESULT is heap-allocated and must be deallocated using
+    free.  */
+-__attribute_maybe_unused__ __attribute_warn_unused_result__
+-__attribute_nonnull__ ((1, 2))
++__attribute_maybe_unused__ __attribute_warn_unused_result__ __nonnull ((1, 2))
+ static bool
+ DYNARRAY_NAME (finalize) (struct DYNARRAY_STRUCT *list,
+                           DYNARRAY_FINAL_TYPE *result)
+@@ -485,8 +483,7 @@ DYNARRAY_NAME (finalize) (struct DYNARRA
+    have a sentinel at the end).  If LENGTHP is not NULL, the array
+    length is written to *LENGTHP.  *LIST is re-initialized and can be
+    reused.  */
+-__attribute_maybe_unused__ __attribute_warn_unused_result__
+-__attribute_nonnull__ ((1))
++__attribute_maybe_unused__ __attribute_warn_unused_result__ __nonnull ((1))
+ static DYNARRAY_ELEMENT *
+ DYNARRAY_NAME (finalize) (struct DYNARRAY_STRUCT *list, size_t *lengthp)
+ {
diff --git a/pkgs/development/tools/mockgen/default.nix b/pkgs/development/tools/mockgen/default.nix
index af3e21afc914b..56615d9b70047 100644
--- a/pkgs/development/tools/mockgen/default.nix
+++ b/pkgs/development/tools/mockgen/default.nix
@@ -1,19 +1,24 @@
-{ buildGoModule, lib, fetchFromGitHub }:
+{ buildGoModule, fetchFromGitHub, lib }:
+
 buildGoModule rec {
   pname = "mockgen";
   version = "1.6.0";
+
   src = fetchFromGitHub {
     owner = "golang";
     repo = "mock";
     rev = "v${version}";
     sha256 = "sha256-5Kp7oTmd8kqUN+rzm9cLqp9nb3jZdQyltGGQDiRSWcE=";
   };
-  vendorSha256 = "sha256-5gkrn+OxbNN8J1lbgbxM8jACtKA7t07sbfJ7gVJWpJM=";
 
-  doCheck = false;
+  vendorSha256 = "sha256-5gkrn+OxbNN8J1lbgbxM8jACtKA7t07sbfJ7gVJWpJM=";
 
   subPackages = [ "mockgen" ];
 
+  preCheck = ''
+    export GOROOT="$(go env GOROOT)"
+  '';
+
   meta = with lib; {
     description = "GoMock is a mocking framework for the Go programming language";
     homepage = "https://github.com/golang/mock";
diff --git a/pkgs/development/tools/mold/default.nix b/pkgs/development/tools/mold/default.nix
index db1c13da2f987..3a3563b2481c1 100644
--- a/pkgs/development/tools/mold/default.nix
+++ b/pkgs/development/tools/mold/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mold";
-  version = "1.1.1";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "rui314";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+uPVt3w3A25JFyENxqhAcjZMRzSowi2uHwGjkeQP8Og=";
+    sha256 = "sha256-KmFNe22XltSrxlINOH/3w79P1CGHwPkxKVyKMD5OcCc=";
   };
 
   buildInputs = [ zlib openssl ];
@@ -41,6 +41,8 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/rui314/mold";
     license = lib.licenses.agpl3Plus;
     maintainers = with maintainers; [ nitsky ];
-    broken = stdenv.isAarch64;
+    platforms = platforms.unix;
+    # error: aligned deallocation function of type 'void (void *, std::align_val_t) noexcept' is only available on macOS 10.14 or newer
+    broken = stdenv.isAarch64 || stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/tools/mysql-shell/default.nix b/pkgs/development/tools/mysql-shell/default.nix
new file mode 100644
index 0000000000000..caa790e9fd497
--- /dev/null
+++ b/pkgs/development/tools/mysql-shell/default.nix
@@ -0,0 +1,155 @@
+{ lib
+, stdenv
+, pkg-config
+, cmake
+, fetchurl
+, git
+, bison
+, openssl
+, protobuf
+, curl
+, zlib
+, libssh
+, zstd
+, lz4
+, boost
+, readline
+, libtirpc
+, rpcsvc-proto
+, libedit
+, libevent
+, icu
+, re2
+, ncurses
+, libfido2
+, v8
+, python3
+, cyrus_sasl
+, openldap
+, numactl
+, cctools
+, CoreServices
+, developer_cmds
+, DarwinTools
+, testVersion
+, mysql-shell
+}:
+
+let
+  pythonDeps = [
+    python3.pkgs.certifi
+    python3.pkgs.paramiko
+  ];
+  site = ''
+
+    import sys; sys.path.extend([${lib.concatStringsSep ", " (map (x: ''"${x}/${python3.sitePackages}"'') pythonDeps)}])
+  '';
+in
+stdenv.mkDerivation rec{
+  pname = "mysql-shell";
+  version = "8.0.28";
+
+  srcs = [
+    (fetchurl {
+      url = "https://cdn.mysql.com//Downloads/MySQL-Shell/mysql-shell-${version}-src.tar.gz";
+      sha256 = "sha256-xm2sepVgI0MPs25vu+BcRQeksaVhHcQlymreN1myu6c=";
+    })
+    (fetchurl {
+      url = "https://dev.mysql.com/get/Downloads/MySQL-${lib.versions.majorMinor version}/mysql-${version}.tar.gz";
+      sha256 = "sha256-2Gk2nrbeTyuy2407Mbe3OWjjVuX/xDVPS5ZlirHkiyI=";
+    })
+  ];
+
+  sourceRoot = "mysql-shell-${version}-src";
+
+  postPatch = ''
+    patch ../mysql-${version}/cmake/fido2.cmake ${./fido2.cmake.patch}
+
+    substituteInPlace ../mysql-${version}/cmake/libutils.cmake --replace /usr/bin/libtool libtool
+    substituteInPlace ../mysql-${version}/cmake/os/Darwin.cmake --replace /usr/bin/libtool libtool
+
+    substituteInPlace cmake/libutils.cmake --replace /usr/bin/libtool libtool
+
+    # For python dependencies
+    echo '${site}' >> python/packages/mysqlsh/__init__.py
+  '';
+
+  nativeBuildInputs = [
+    pkg-config
+    cmake
+    git
+    bison
+  ] ++ lib.optionals (!stdenv.isDarwin) [ rpcsvc-proto ];
+
+  buildInputs = [
+    boost
+    curl
+    libedit
+    libssh
+    lz4
+    openssl
+    protobuf
+    readline
+    zlib
+    zstd
+    libevent
+    icu
+    re2
+    ncurses
+    libfido2
+    cyrus_sasl
+    openldap
+    v8
+  ] ++ pythonDeps ++ lib.optionals stdenv.isLinux [
+    numactl
+    libtirpc
+  ] ++ lib.optionals stdenv.isDarwin [
+    cctools
+    CoreServices
+    developer_cmds
+    DarwinTools
+  ];
+
+  preConfigure = ''
+    # Build MySQL
+    cmake -DWITH_BOOST=system \
+      -DWITH_SYSTEM_LIBS=ON \
+      -DWITH_ROUTER=OFF \
+      -DWITH_UNIT_TESTS=OFF \
+      -DFORCE_UNSUPPORTED_COMPILER=1 \
+      -S ../mysql-${version} -B ../mysql-${version}/build
+
+    cmake --build ../mysql-${version}/build --parallel ''${NIX_BUILD_CORES:-1} --target mysqlclient mysqlxclient
+
+    # Get libv8_monolith
+    mkdir -p ../v8/lib
+    ln -s ${v8}/lib/libv8.a ../v8/lib/libv8_monolith.a
+  '';
+
+  cmakeFlags = [
+    "-DMYSQL_SOURCE_DIR=../mysql-${version}"
+    "-DMYSQL_BUILD_DIR=../mysql-${version}/build"
+    "-DMYSQL_CONFIG_EXECUTABLE=../../mysql-${version}/build/scripts/mysql_config"
+    "-DWITH_ZSTD=system"
+    "-DWITH_LZ4=system"
+    "-DWITH_ZLIB=system"
+    "-DWITH_PROTOBUF=${protobuf}"
+    "-DHAVE_V8=1"
+    "-DV8_INCLUDE_DIR=${v8}/include"
+    "-DV8_LIB_DIR=../v8/lib"
+    "-DHAVE_PYTHON=1"
+  ];
+
+  CXXFLAGS = [
+    "-DV8_COMPRESS_POINTERS=1"
+    "-DV8_31BIT_SMIS_ON_64BIT_ARCH=1"
+  ];
+
+  meta = with lib; {
+    homepage = "https://dev.mysql.com/doc/mysql-shell/${lib.versions.majorMinor version}/en/";
+    description = "A new command line scriptable shell for MySQL";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ aaronjheng ];
+    mainProgram = "mysqlsh";
+  };
+}
diff --git a/pkgs/development/tools/mysql-shell/fido2.cmake.patch b/pkgs/development/tools/mysql-shell/fido2.cmake.patch
new file mode 100644
index 0000000000000..df6005cca1a7b
--- /dev/null
+++ b/pkgs/development/tools/mysql-shell/fido2.cmake.patch
@@ -0,0 +1,25 @@
+diff --git a/cmake/fido2.cmake b/cmake/fido2.cmake
+index c20e6e75c0d..f2d5cbd8430 100644
+--- a/cmake/fido2.cmake
++++ b/cmake/fido2.cmake
+@@ -30,19 +30,8 @@ MACRO(FIND_FIDO_VERSION)
+   IF(WITH_FIDO STREQUAL "bundled")
+     SET(FIDO_VERSION "1.7.0")
+   ELSE()
+-    # This does not set any version information:
+-    # PKG_CHECK_MODULES(SYSTEM_FIDO fido2)
+-
+     MYSQL_CHECK_PKGCONFIG()
+-    EXECUTE_PROCESS(
+-      COMMAND ${MY_PKG_CONFIG_EXECUTABLE} --modversion libfido2
+-      OUTPUT_VARIABLE MY_FIDO_MODVERSION
+-      OUTPUT_STRIP_TRAILING_WHITESPACE
+-      RESULT_VARIABLE MY_MODVERSION_RESULT
+-      )
+-    IF(MY_MODVERSION_RESULT EQUAL 0)
+-      SET(FIDO_VERSION ${MY_FIDO_MODVERSION})
+-    ENDIF()
++    PKG_CHECK_MODULES(FIDO libfido2)
+   ENDIF()
+   MESSAGE(STATUS "FIDO_VERSION (${WITH_FIDO}) is ${FIDO_VERSION}")
+ ENDMACRO(FIND_FIDO_VERSION)
diff --git a/pkgs/development/tools/neil/default.nix b/pkgs/development/tools/neil/default.nix
index 643ca8773cb72..c0d1ec44f9e69 100644
--- a/pkgs/development/tools/neil/default.nix
+++ b/pkgs/development/tools/neil/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "neil";
-  version = "0.0.13";
+  version = "0.0.23";
 
   src = fetchFromGitHub {
     owner = "babashka";
     repo = "neil";
     rev = "v${version}";
-    sha256 = "0jiyl0d39d8kk5bpangwxiy90vqipj4lgp8x84rh4z5m53knjpkd";
+    sha256 = "0fx34gkhkklzq3hzk1cj2l4rgqrq9vif5y8b0nx9gg4136yj85cg";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/nsis/default.nix b/pkgs/development/tools/nsis/default.nix
index 4820d8bb4b7db..48651435d371b 100644
--- a/pkgs/development/tools/nsis/default.nix
+++ b/pkgs/development/tools/nsis/default.nix
@@ -70,5 +70,6 @@ stdenv.mkDerivation rec {
     license = licenses.zlib;
     platforms = platforms.unix;
     maintainers = with maintainers; [ pombeirp ];
+    mainProgram = "makensis";
   };
 }
diff --git a/pkgs/development/tools/ocaml/cppo/ocamlbuild.nix b/pkgs/development/tools/ocaml/cppo/ocamlbuild.nix
index 633dc6bc7bf68..d0627480ea1c1 100644
--- a/pkgs/development/tools/ocaml/cppo/ocamlbuild.nix
+++ b/pkgs/development/tools/ocaml/cppo/ocamlbuild.nix
@@ -1,6 +1,6 @@
 { lib, buildDunePackage, cppo, ocamlbuild }:
 
-if !lib.versionAtLeast (lib.getVersion cppo) "1.6"
+if lib.versionOlder (lib.getVersion cppo) "1.6"
 then cppo
 else
 
diff --git a/pkgs/development/tools/ocaml/dune/1.nix b/pkgs/development/tools/ocaml/dune/1.nix
index 74deb9d2fa556..d6d3863afab8f 100644
--- a/pkgs/development/tools/ocaml/dune/1.nix
+++ b/pkgs/development/tools/ocaml/dune/1.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchurl, ocaml, findlib, ncurses }:
 
-if !lib.versionAtLeast ocaml.version "4.02"
+if lib.versionOlder ocaml.version "4.02"
 || lib.versionAtLeast ocaml.version "4.12"
 then throw "dune 1 is not available for OCaml ${ocaml.version}"
 else
diff --git a/pkgs/development/tools/ocaml/dune/3.nix b/pkgs/development/tools/ocaml/dune/3.nix
index f6f45944a816d..de661948b9c30 100644
--- a/pkgs/development/tools/ocaml/dune/3.nix
+++ b/pkgs/development/tools/ocaml/dune/3.nix
@@ -6,11 +6,11 @@ else
 
 stdenv.mkDerivation rec {
   pname = "dune";
-  version = "3.0.3";
+  version = "3.1.1";
 
   src = fetchurl {
     url = "https://github.com/ocaml/dune/releases/download/${version}/fiber-${version}.tbz";
-    sha256 = "sha256-1QRJmhZY8Nmcrvv/1zhvLjHUbOynMWcVf+RobEHlcy8=";
+    sha256 = "sha256-AkhEVKsbmYhAx4c1CexrIwHrkmYsEy749fT1abNaa2A=";
   };
 
   nativeBuildInputs = [ ocaml findlib ];
diff --git a/pkgs/development/tools/ocaml/findlib/default.nix b/pkgs/development/tools/ocaml/findlib/default.nix
index e7abf32eae5ff..44d9782f3ce51 100644
--- a/pkgs/development/tools/ocaml/findlib/default.nix
+++ b/pkgs/development/tools/ocaml/findlib/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ocaml-findlib";
-  version = "1.9.1";
+  version = "1.9.3";
 
   src = fetchurl {
     url = "http://download.camlcity.org/download/findlib-${version}.tar.gz";
-    sha256 = "sha256-K0K4vVRIjWTEvzy3BUtLN70wwdwSvUMeoeTXrYqYD+I=";
+    sha256 = "sha256:0hfcwamcvinmww59b5i4yxbf0kxyzkp5qv3d1c7ybn9q52vgq463";
   };
 
   nativeBuildInputs = [m4 ocaml];
diff --git a/pkgs/development/tools/ocaml/findlib/install_topfind.patch b/pkgs/development/tools/ocaml/findlib/install_topfind.patch
index dbdb0edd6cb18..e961b3059065c 100644
--- a/pkgs/development/tools/ocaml/findlib/install_topfind.patch
+++ b/pkgs/development/tools/ocaml/findlib/install_topfind.patch
@@ -6,7 +6,7 @@
  	mkdir -p "$(prefix)$(OCAMLFIND_BIN)"
 -	test $(INSTALL_TOPFIND) -eq 0 || cp topfind "$(prefix)$(OCAML_CORE_STDLIB)"
 +	test $(INSTALL_TOPFIND) -eq 0 || cp topfind "$(prefix)$(OCAML_SITELIB)"
-	files=`$(SH) $(TOP)/tools/collect_files $(TOP)/Makefile.config findlib.cmi findlib.mli findlib.cma findlib.cmxa findlib$(LIB_SUFFIX) findlib.cmxs topfind.cmi topfind.mli fl_package_base.mli fl_package_base.cmi fl_metascanner.mli fl_metascanner.cmi fl_metatoken.cmi findlib_top.cma findlib_top.cmxa findlib_top$(LIB_SUFFIX) findlib_top.cmxs findlib_dynload.cma findlib_dynload.cmxa findlib_dynload$(LIB_SUFFIX) findlib_dynload.cmxs fl_dynload.mli fl_dynload.cmi META` && \
-	cp $$files "$(prefix)$(OCAML_SITELIB)/$(NAME)"
-	f="ocamlfind$(EXEC_SUFFIX)"; { test -f ocamlfind_opt$(EXEC_SUFFIX) && f="ocamlfind_opt$(EXEC_SUFFIX)"; }; \
+ 	files=`$(SH) $(TOP)/tools/collect_files $(TOP)/Makefile.config \
+ 	findlib.cmi findlib.mli findlib.cma findlib.cmxa findlib$(LIB_SUFFIX) findlib.cmxs \
+ 	findlib_config.cmi findlib_config.ml topfind.cmi topfind.mli \
 
diff --git a/pkgs/development/tools/ocaml/merlin/4.x.nix b/pkgs/development/tools/ocaml/merlin/4.x.nix
index 2d030b2d15601..635273bcfd25a 100644
--- a/pkgs/development/tools/ocaml/merlin/4.x.nix
+++ b/pkgs/development/tools/ocaml/merlin/4.x.nix
@@ -48,7 +48,7 @@ buildDunePackage {
       dot_merlin_reader = "${dot-merlin-reader}/bin/dot-merlin-reader";
       dune = "${dune_2}/bin/dune";
     })
-  ] ++ lib.optional (!lib.versionAtLeast ocaml.version "4.12")
+  ] ++ lib.optional (lib.versionOlder ocaml.version "4.12")
     # This fixes the test-suite on macOS
     # See https://github.com/ocaml/merlin/pull/1399
     # Fixed in 4.4 for OCaml ≥ 4.12
diff --git a/pkgs/development/tools/ocaml/opaline/default.nix b/pkgs/development/tools/ocaml/opaline/default.nix
index d9ba33bb473e6..b6bc9c9b9f6f7 100644
--- a/pkgs/development/tools/ocaml/opaline/default.nix
+++ b/pkgs/development/tools/ocaml/opaline/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, ocamlPackages }:
 
 stdenv.mkDerivation rec {
-  version = "0.3.2";
+  version = "0.3.3";
   pname = "opaline";
 
   src = fetchFromGitHub {
     owner = "jaapb";
     repo = "opaline";
     rev = "v${version}";
-    sha256 = "1aj1fdqymq3pnr39h47hn3kxk5v9pnwx0jap1z2jzh78x970z21m";
+    sha256 = "sha256-6htaiFIcRMUYWn0U7zTNfCyDaTgDEvPch2q57qzvND4=";
   };
 
   nativeBuildInputs = with ocamlPackages; [ ocaml findlib ocamlbuild ];
diff --git a/pkgs/development/tools/ocaml/utop/default.nix b/pkgs/development/tools/ocaml/utop/default.nix
index 3e5471db5ae00..08abbc1c9f216 100644
--- a/pkgs/development/tools/ocaml/utop/default.nix
+++ b/pkgs/development/tools/ocaml/utop/default.nix
@@ -4,7 +4,7 @@
 
 buildDunePackage rec {
   pname = "utop";
-  version = "2.9.0";
+  version = "2.9.1";
 
   useDune2 = true;
 
@@ -12,7 +12,7 @@ buildDunePackage rec {
 
   src = fetchurl {
     url = "https://github.com/ocaml-community/utop/releases/download/${version}/utop-${version}.tbz";
-    sha256 = "sha256:17jd61bc6pva5wqmnc9xq70ysyjplrzf1p25sq1s7wgrfq2vlyyd";
+    sha256 = "sha256-6TQxLYN/qjTABZuK6rp+daCSNWyJIXzB8q2QpZeBwaY=";
   };
 
   nativeBuildInputs = [ makeWrapper cppo ];
diff --git a/pkgs/development/tools/omnisharp-roslyn/create-deps.sh b/pkgs/development/tools/omnisharp-roslyn/create-deps.sh
index 46cbb06951b06..c1b5da1247333 100755
--- a/pkgs/development/tools/omnisharp-roslyn/create-deps.sh
+++ b/pkgs/development/tools/omnisharp-roslyn/create-deps.sh
@@ -1,13 +1,19 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -I nixpkgs=../../../../.. -i bash -p dotnet-sdk_6 jq xmlstarlet curl
+#!nix-shell -I nixpkgs=../../../.. -i bash -p dotnet-sdk_6 jq xmlstarlet curl
 set -euo pipefail
 
 cat << EOL
 { fetchurl }: [
 EOL
 
+# enter a temporary directory containing the source code, copied from the derivation
+srcdir="$(mktemp -d)"
+cp -r "$(nix-build -A omnisharp-roslyn.src ../../../..)"/. "$srcdir"
+rm -f "$srcdir"/global.json
+
+pushd $srcdir >&2
+
 tmpdir="$(mktemp -d -p "$(pwd)")" # must be under source root
-trap 'rm -rf "$tmpdir"' EXIT
 
 mapfile -t repos < <(
     xmlstarlet sel -t -v 'configuration/packageSources/add/@value' -n NuGet.Config |
@@ -20,7 +26,7 @@ mapfile -t repos < <(
 
 dotnet msbuild -t:restore -p:Configuration=Release -p:RestorePackagesPath="$tmpdir" \
         -p:RestoreNoCache=true -p:RestoreForce=true \
-        src/OmniSharp.Stdio.Driver/OmniSharp.Stdio.Driver.csproj >&2
+        "$srcdir/src/OmniSharp.Stdio.Driver/OmniSharp.Stdio.Driver.csproj" >&2
 
 cd "$tmpdir"
 for package in *
@@ -64,3 +70,5 @@ cd ..
 cat << EOL
 ]
 EOL
+
+popd >&2
diff --git a/pkgs/development/tools/omnisharp-roslyn/default.nix b/pkgs/development/tools/omnisharp-roslyn/default.nix
index a3f3c7ce4403d..a76e57ad4265b 100644
--- a/pkgs/development/tools/omnisharp-roslyn/default.nix
+++ b/pkgs/development/tools/omnisharp-roslyn/default.nix
@@ -64,13 +64,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "omnisharp-roslyn";
-  version = "1.38.1";
+  version = "1.38.2";
 
   src = fetchFromGitHub {
     owner = "OmniSharp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "At8yfp5SDwPSoJM/WdQEBM4EG8q2SlHvp8qZIc9ftlE=";
+    sha256 = "7XJIdotfffu8xo+S6xlc1zcK3oY9QIg1CJhCNJh5co0=";
   };
 
   nativeBuildInputs = [ makeWrapper dotnet-sdk ];
@@ -95,6 +95,11 @@ in stdenv.mkDerivation rec {
   installPhase = ''
     mkdir -p $out/bin
     cp -r bin/Release/OmniSharp.Stdio.Driver/net6.0 $out/src
+
+    # Delete files to mimick hacks in https://github.com/OmniSharp/omnisharp-roslyn/blob/bdc14ca/build.cake#L594
+    rm $out/src/NuGet.*.dll
+    rm $out/src/System.Configuration.ConfigurationManager.dll
+
     makeWrapper $out/src/OmniSharp $out/bin/omnisharp \
       --prefix DOTNET_ROOT : ${dotnet-sdk} \
       --suffix PATH : ${dotnet-sdk}/bin
@@ -106,6 +111,7 @@ in stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.mit;
     maintainers = with maintainers; [ tesq0 ericdallo corngood ];
+    mainProgram = "omnisharp";
   };
 
 }
diff --git a/pkgs/development/tools/omnisharp-roslyn/deps.nix b/pkgs/development/tools/omnisharp-roslyn/deps.nix
index 2744a81f75805..653194f5c8594 100644
--- a/pkgs/development/tools/omnisharp-roslyn/deps.nix
+++ b/pkgs/development/tools/omnisharp-roslyn/deps.nix
@@ -65,26 +65,26 @@
   }
   {
     pname = "microsoft.aspnetcore.app.runtime.win-arm64";
-    version = "6.0.3";
+    version = "6.0.4";
     src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.app.runtime.win-arm64/6.0.3/microsoft.aspnetcore.app.runtime.win-arm64.6.0.3.nupkg";
-      sha256 = "0wxnwqg43hd1hk07j1wqhfrwbjm5ly7bsy9z2jgy9zf8lya4qs9a";
+      url = "https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.app.runtime.win-arm64/6.0.4/microsoft.aspnetcore.app.runtime.win-arm64.6.0.4.nupkg";
+      sha256 = "1sn2jlqzyiszrxscd3ah7sfvv065xc3vjky34qy81wdmyvxwhkba";
     };
   }
   {
     pname = "microsoft.aspnetcore.app.runtime.win-x64";
-    version = "6.0.3";
+    version = "6.0.4";
     src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.app.runtime.win-x64/6.0.3/microsoft.aspnetcore.app.runtime.win-x64.6.0.3.nupkg";
-      sha256 = "11kv50kll3iq88kn40f5v5qlq8mydv6y6xz2cbzjw4aadd44njwq";
+      url = "https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.app.runtime.win-x64/6.0.4/microsoft.aspnetcore.app.runtime.win-x64.6.0.4.nupkg";
+      sha256 = "1sqv7vhkm4j11rl7mfvs4mmmclcdps2n4pf31ck2mcx54nr4d2kj";
     };
   }
   {
     pname = "microsoft.aspnetcore.app.runtime.win-x86";
-    version = "6.0.3";
+    version = "6.0.4";
     src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.app.runtime.win-x86/6.0.3/microsoft.aspnetcore.app.runtime.win-x86.6.0.3.nupkg";
-      sha256 = "1c1qx840hwcp6a26dbx10f24pw9kzlvr15w3s1pakldygng5skwm";
+      url = "https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.app.runtime.win-x86/6.0.4/microsoft.aspnetcore.app.runtime.win-x86.6.0.4.nupkg";
+      sha256 = "0v7bpbl7bif1qlkdc0p10l69amf4vpzdd8bgz2455h6zxwjc1hy4";
     };
   }
   {
@@ -177,82 +177,90 @@
   }
   {
     pname = "microsoft.codeanalysis.common";
-    version = "4.2.0-1.22074.8";
+    version = "4.2.0-3.22169.1";
     src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.common/4.2.0-1.22074.8/microsoft.codeanalysis.common.4.2.0-1.22074.8.nupkg";
-      sha256 = "113232x2s787mm0bfvw0iiy5gl2wxs9jw6yrsxah2h7mg8q0s1h8";
+      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.common/4.2.0-3.22169.1/microsoft.codeanalysis.common.4.2.0-3.22169.1.nupkg";
+      sha256 = "0505svp6y5nbmkh22gz6g4bcxxsmbpc9jy08h8lz5z4i3bikl30b";
     };
   }
   {
     pname = "microsoft.codeanalysis.csharp";
-    version = "4.2.0-1.22074.8";
+    version = "4.2.0-3.22169.1";
     src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.csharp/4.2.0-1.22074.8/microsoft.codeanalysis.csharp.4.2.0-1.22074.8.nupkg";
-      sha256 = "017cljjhqyjxdp66f1l1pwxdi2qbfkbabih41frp93n0ips4qzkb";
+      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.csharp/4.2.0-3.22169.1/microsoft.codeanalysis.csharp.4.2.0-3.22169.1.nupkg";
+      sha256 = "1shvi06n4n2yxvmjzvvx5h9zcc1jwqjfcxr2lbagdcq9bmnvlikw";
     };
   }
   {
     pname = "microsoft.codeanalysis.csharp.features";
-    version = "4.2.0-1.22074.8";
+    version = "4.2.0-3.22169.1";
     src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.csharp.features/4.2.0-1.22074.8/microsoft.codeanalysis.csharp.features.4.2.0-1.22074.8.nupkg";
-      sha256 = "04x7jdvlrg4syc3w3j2l3rz9icd6p64km3caaa93pb53k1wmhqb0";
+      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.csharp.features/4.2.0-3.22169.1/microsoft.codeanalysis.csharp.features.4.2.0-3.22169.1.nupkg";
+      sha256 = "1aq1qqdvq06h6247m3hpgzkgwpj3a48jl5b98hp4aj9kb5wkmnil";
     };
   }
   {
     pname = "microsoft.codeanalysis.csharp.scripting";
-    version = "4.2.0-1.22074.8";
+    version = "4.2.0-3.22169.1";
     src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.csharp.scripting/4.2.0-1.22074.8/microsoft.codeanalysis.csharp.scripting.4.2.0-1.22074.8.nupkg";
-      sha256 = "1lbgxqwi07wfy1xsvqkd4lsw0rmbjkdnwzmzpzaa2lf9k07p9n3h";
+      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.csharp.scripting/4.2.0-3.22169.1/microsoft.codeanalysis.csharp.scripting.4.2.0-3.22169.1.nupkg";
+      sha256 = "0nhng62lfn4r300g2z3vp4qw51w8vzb5gl3wkd77p9lx2n1ma7n2";
     };
   }
   {
     pname = "microsoft.codeanalysis.csharp.workspaces";
-    version = "4.2.0-1.22074.8";
+    version = "4.2.0-3.22169.1";
     src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.csharp.workspaces/4.2.0-1.22074.8/microsoft.codeanalysis.csharp.workspaces.4.2.0-1.22074.8.nupkg";
-      sha256 = "0jq0g8yi105vap8ssxir86ysmpj61gqh6lgfg2k0y1q67swganlw";
+      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.csharp.workspaces/4.2.0-3.22169.1/microsoft.codeanalysis.csharp.workspaces.4.2.0-3.22169.1.nupkg";
+      sha256 = "16vsx5yb3fmyx1nqnbsd5iy46v7s0gf8aikxl12yy7ajdd4mapxj";
+    };
+  }
+  {
+    pname = "microsoft.codeanalysis.elfie";
+    version = "1.0.0-rc14";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/microsoft.codeanalysis.elfie/1.0.0-rc14/microsoft.codeanalysis.elfie.1.0.0-rc14.nupkg";
+      sha256 = "0774fkq08a3h0yn22glfcvwzrwc0ll7dh71k0p1mg7m3biyy8a2f";
     };
   }
   {
     pname = "microsoft.codeanalysis.externalaccess.omnisharp";
-    version = "4.2.0-1.22074.8";
+    version = "4.2.0-3.22169.1";
     src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.externalaccess.omnisharp/4.2.0-1.22074.8/microsoft.codeanalysis.externalaccess.omnisharp.4.2.0-1.22074.8.nupkg";
-      sha256 = "0wbbdqvzy0viz4vy6w1vpzjr7gpirkmvz5lcfvcvxv5ygjvxxi2w";
+      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.externalaccess.omnisharp/4.2.0-3.22169.1/microsoft.codeanalysis.externalaccess.omnisharp.4.2.0-3.22169.1.nupkg";
+      sha256 = "02c7m8gy3jkbvn8dcrzc00ngg80xq90cfa1yspk4y4pdcjf6mrbc";
     };
   }
   {
     pname = "microsoft.codeanalysis.externalaccess.omnisharp.csharp";
-    version = "4.2.0-1.22074.8";
+    version = "4.2.0-3.22169.1";
     src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.externalaccess.omnisharp.csharp/4.2.0-1.22074.8/microsoft.codeanalysis.externalaccess.omnisharp.csharp.4.2.0-1.22074.8.nupkg";
-      sha256 = "0k5lr898hywfcbkfyiz60c28ccd1dka9l07b3c6ccmbpc68ras1w";
+      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.externalaccess.omnisharp.csharp/4.2.0-3.22169.1/microsoft.codeanalysis.externalaccess.omnisharp.csharp.4.2.0-3.22169.1.nupkg";
+      sha256 = "1wj6r0ara77fibvxh8s518isgwxwcd41c0iw7fmvz2pd94l16hgz";
     };
   }
   {
     pname = "microsoft.codeanalysis.features";
-    version = "4.2.0-1.22074.8";
+    version = "4.2.0-3.22169.1";
     src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.features/4.2.0-1.22074.8/microsoft.codeanalysis.features.4.2.0-1.22074.8.nupkg";
-      sha256 = "1h0wsw4zg0f36ib3hjcc9y2y8jhaazwy17j2jv17363abbc3pf3l";
+      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.features/4.2.0-3.22169.1/microsoft.codeanalysis.features.4.2.0-3.22169.1.nupkg";
+      sha256 = "1xpsjsxm7hnl9wzfp0nz9prv72jgf0r9ljqynab3gaipsdaswddk";
     };
   }
   {
     pname = "microsoft.codeanalysis.scripting.common";
-    version = "4.2.0-1.22074.8";
+    version = "4.2.0-3.22169.1";
     src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.scripting.common/4.2.0-1.22074.8/microsoft.codeanalysis.scripting.common.4.2.0-1.22074.8.nupkg";
-      sha256 = "06xzv4jlmz1q9v5r6d2ak734wwskld66maqp763nq3h62nhrxyxg";
+      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.scripting.common/4.2.0-3.22169.1/microsoft.codeanalysis.scripting.common.4.2.0-3.22169.1.nupkg";
+      sha256 = "0w0z3njcbq6n0a24xvxcp461898zlkwqs6p1gdpnpxks5vvgah12";
     };
   }
   {
     pname = "microsoft.codeanalysis.workspaces.common";
-    version = "4.2.0-1.22074.8";
+    version = "4.2.0-3.22169.1";
     src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.workspaces.common/4.2.0-1.22074.8/microsoft.codeanalysis.workspaces.common.4.2.0-1.22074.8.nupkg";
-      sha256 = "09fivivc5s2p7iy5939gizs7kyvhn647sgjz55dbhmla5z774l80";
+      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.workspaces.common/4.2.0-3.22169.1/microsoft.codeanalysis.workspaces.common.4.2.0-3.22169.1.nupkg";
+      sha256 = "0psy2ifls96mif6kvr242v1s1zmawdljwmcxaj20rl3m7v0nlwmd";
     };
   }
   {
@@ -273,10 +281,10 @@
   }
   {
     pname = "microsoft.diasymreader";
-    version = "1.4.0-beta2-21528-02";
+    version = "1.4.0";
     src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.diasymreader/1.4.0-beta2-21528-02/microsoft.diasymreader.1.4.0-beta2-21528-02.nupkg";
-      sha256 = "14yfqjfmibyzipy0rdvknvy19brydac9llzrzj82wv6kwb8ap5x2";
+      url = "https://api.nuget.org/v3-flatcontainer/microsoft.diasymreader/1.4.0/microsoft.diasymreader.1.4.0.nupkg";
+      sha256 = "0li9shnm941jza40kqfkbbys77mrr55nvi9h3maq9fipq4qwx92d";
     };
   }
   {
@@ -544,59 +552,51 @@
     };
   }
   {
-    pname = "microsoft.net.stringtools";
-    version = "1.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.net.stringtools/1.0.0/microsoft.net.stringtools.1.0.0.nupkg";
-      sha256 = "06yakiyzgss399giivfx6xdrnfxqfsvy5fzm90scjanvandv0sdj";
-    };
-  }
-  {
     pname = "microsoft.netcore.app.host.win-arm64";
-    version = "6.0.3";
+    version = "6.0.4";
     src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.host.win-arm64/6.0.3/microsoft.netcore.app.host.win-arm64.6.0.3.nupkg";
-      sha256 = "1dhdr3ccaag3yb803qswkm1zvvwc9q6m3d9nvxvb5f8m94rsbhka";
+      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.host.win-arm64/6.0.4/microsoft.netcore.app.host.win-arm64.6.0.4.nupkg";
+      sha256 = "1bnfb4yxdandddr36j5gkpaqym5pm971rp7gc8nkp3xmff4fnmc0";
     };
   }
   {
     pname = "microsoft.netcore.app.host.win-x64";
-    version = "6.0.3";
+    version = "6.0.4";
     src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.host.win-x64/6.0.3/microsoft.netcore.app.host.win-x64.6.0.3.nupkg";
-      sha256 = "1y428glba68s76icjzfl1v3p61pcz7rd78wybhabs8zq8w9cp2pj";
+      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.host.win-x64/6.0.4/microsoft.netcore.app.host.win-x64.6.0.4.nupkg";
+      sha256 = "1qasm6j25lmcc4xn7f7s3jli1pypz1kfnj7j9dkjlx9mc8r356zp";
     };
   }
   {
     pname = "microsoft.netcore.app.host.win-x86";
-    version = "6.0.3";
+    version = "6.0.4";
     src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.host.win-x86/6.0.3/microsoft.netcore.app.host.win-x86.6.0.3.nupkg";
-      sha256 = "0byyxiv8253zgymn0vwz8zxyasmhdwj891gxg3ydgnc2qf23f16g";
+      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.host.win-x86/6.0.4/microsoft.netcore.app.host.win-x86.6.0.4.nupkg";
+      sha256 = "16chkjf2fc2d4bd7wccxkgb5n44dpb6admchmg8mx3mlg0n24bwa";
     };
   }
   {
     pname = "microsoft.netcore.app.runtime.win-arm64";
-    version = "6.0.3";
+    version = "6.0.4";
     src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.runtime.win-arm64/6.0.3/microsoft.netcore.app.runtime.win-arm64.6.0.3.nupkg";
-      sha256 = "022kld62v6npxx27mvllg3nv7rpw142q49zwgprzvrxgnn5zszq1";
+      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.runtime.win-arm64/6.0.4/microsoft.netcore.app.runtime.win-arm64.6.0.4.nupkg";
+      sha256 = "1jcfajqq6i06w8a9n2r92f326x3v7avkiv31nsldzjdn1ikiwfzj";
     };
   }
   {
     pname = "microsoft.netcore.app.runtime.win-x64";
-    version = "6.0.3";
+    version = "6.0.4";
     src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.runtime.win-x64/6.0.3/microsoft.netcore.app.runtime.win-x64.6.0.3.nupkg";
-      sha256 = "1rjkzs2013razi2xs943q62ys1jh8blhjcnj75qkvirf859d11qw";
+      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.runtime.win-x64/6.0.4/microsoft.netcore.app.runtime.win-x64.6.0.4.nupkg";
+      sha256 = "1x4ysack9n57h8w1ybfyczkf3w6jsgz7ila0czm2011w4sjnyqj0";
     };
   }
   {
     pname = "microsoft.netcore.app.runtime.win-x86";
-    version = "6.0.3";
+    version = "6.0.4";
     src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.runtime.win-x86/6.0.3/microsoft.netcore.app.runtime.win-x86.6.0.3.nupkg";
-      sha256 = "0gsk9939f6vrqbgc7cw8g8q9c7669rkfwwlyhiq13piqmj2kni6g";
+      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.runtime.win-x86/6.0.4/microsoft.netcore.app.runtime.win-x86.6.0.4.nupkg";
+      sha256 = "1ha2w6zh0l1kl36rxy9g38xcq8awhyqiiwi9gbr9kmxig5i5fxfa";
     };
   }
   {
@@ -625,14 +625,6 @@
   }
   {
     pname = "microsoft.netcore.platforms";
-    version = "2.1.2";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.platforms/2.1.2/microsoft.netcore.platforms.2.1.2.nupkg";
-      sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141";
-    };
-  }
-  {
-    pname = "microsoft.netcore.platforms";
     version = "3.0.0";
     src = fetchurl {
       url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.platforms/3.0.0/microsoft.netcore.platforms.3.0.0.nupkg";
@@ -680,6 +672,14 @@
     };
   }
   {
+    pname = "microsoft.net.stringtools";
+    version = "1.0.0";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/microsoft.net.stringtools/1.0.0/microsoft.net.stringtools.1.0.0.nupkg";
+      sha256 = "06yakiyzgss399giivfx6xdrnfxqfsvy5fzm90scjanvandv0sdj";
+    };
+  }
+  {
     pname = "microsoft.sourcelink.common";
     version = "1.0.0";
     src = fetchurl {
@@ -712,6 +712,14 @@
     };
   }
   {
+    pname = "microsoft.visualstudio.remotecontrol";
+    version = "16.3.44";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/microsoft.visualstudio.remotecontrol/16.3.44/microsoft.visualstudio.remotecontrol.16.3.44.nupkg";
+      sha256 = "0kjvxpx45vvaxqm6k632gqi0zaw7w5m4h8wgmsaj15r4ihl49c3a";
+    };
+  }
+  {
     pname = "microsoft.visualstudio.sdk.embedinteroptypes";
     version = "15.0.12";
     src = fetchurl {
@@ -752,6 +760,14 @@
     };
   }
   {
+    pname = "microsoft.visualstudio.utilities.internal";
+    version = "16.3.36";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/microsoft.visualstudio.utilities.internal/16.3.36/microsoft.visualstudio.utilities.internal.16.3.36.nupkg";
+      sha256 = "1sg4vjm7735rkvxdmsb7wvjqrxy4gcvhhczv5dhpjayg7885k8cx";
+    };
+  }
+  {
     pname = "microsoft.visualstudio.validation";
     version = "15.5.31";
     src = fetchurl {
@@ -777,6 +793,14 @@
   }
   {
     pname = "microsoft.win32.registry";
+    version = "4.5.0";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/microsoft.win32.registry/4.5.0/microsoft.win32.registry.4.5.0.nupkg";
+      sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q";
+    };
+  }
+  {
+    pname = "microsoft.win32.registry";
     version = "4.6.0";
     src = fetchurl {
       url = "https://api.nuget.org/v3-flatcontainer/microsoft.win32.registry/4.6.0/microsoft.win32.registry.4.6.0.nupkg";
@@ -1312,6 +1336,38 @@
     };
   }
   {
+    pname = "runtime.win10-arm64.runtime.native.system.io.compression";
+    version = "4.3.0";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/runtime.win10-arm64.runtime.native.system.io.compression/4.3.0/runtime.win10-arm64.runtime.native.system.io.compression.4.3.0.nupkg";
+      sha256 = "1jrmrmqscn8cn2n3piar8n85gfsra7vlai23w9ldzprh0y4dw3v1";
+    };
+  }
+  {
+    pname = "runtime.win7.system.private.uri";
+    version = "4.3.0";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/runtime.win7.system.private.uri/4.3.0/runtime.win7.system.private.uri.4.3.0.nupkg";
+      sha256 = "0bxkcmklp556dc43bra8ngc8wymcbbflcydi0xwq0j22gm66xf2m";
+    };
+  }
+  {
+    pname = "runtime.win7-x64.runtime.native.system.io.compression";
+    version = "4.3.0";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/runtime.win7-x64.runtime.native.system.io.compression/4.3.0/runtime.win7-x64.runtime.native.system.io.compression.4.3.0.nupkg";
+      sha256 = "1dmbmksnxg12fk2p0k7rzy16448mddr2sfrnqs0rhhrzl0z22zi5";
+    };
+  }
+  {
+    pname = "runtime.win7-x86.runtime.native.system.io.compression";
+    version = "4.3.0";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/runtime.win7-x86.runtime.native.system.io.compression/4.3.0/runtime.win7-x86.runtime.native.system.io.compression.4.3.0.nupkg";
+      sha256 = "08ppln62lcq3bz2kyxqyvh98payd5a7w8fzmb53mznkcfv32n55b";
+    };
+  }
+  {
     pname = "runtime.win.microsoft.win32.primitives";
     version = "4.3.0";
     src = fetchurl {
@@ -1368,75 +1424,43 @@
     };
   }
   {
-    pname = "runtime.win10-arm64.runtime.native.system.io.compression";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.win10-arm64.runtime.native.system.io.compression/4.3.0/runtime.win10-arm64.runtime.native.system.io.compression.4.3.0.nupkg";
-      sha256 = "1jrmrmqscn8cn2n3piar8n85gfsra7vlai23w9ldzprh0y4dw3v1";
-    };
-  }
-  {
-    pname = "runtime.win7-x64.runtime.native.system.io.compression";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.win7-x64.runtime.native.system.io.compression/4.3.0/runtime.win7-x64.runtime.native.system.io.compression.4.3.0.nupkg";
-      sha256 = "1dmbmksnxg12fk2p0k7rzy16448mddr2sfrnqs0rhhrzl0z22zi5";
-    };
-  }
-  {
-    pname = "runtime.win7-x86.runtime.native.system.io.compression";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.win7-x86.runtime.native.system.io.compression/4.3.0/runtime.win7-x86.runtime.native.system.io.compression.4.3.0.nupkg";
-      sha256 = "08ppln62lcq3bz2kyxqyvh98payd5a7w8fzmb53mznkcfv32n55b";
-    };
-  }
-  {
-    pname = "runtime.win7.system.private.uri";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.win7.system.private.uri/4.3.0/runtime.win7.system.private.uri.4.3.0.nupkg";
-      sha256 = "0bxkcmklp556dc43bra8ngc8wymcbbflcydi0xwq0j22gm66xf2m";
-    };
-  }
-  {
     pname = "sqlitepclraw.bundle_green";
-    version = "2.0.4";
+    version = "2.0.7";
     src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/sqlitepclraw.bundle_green/2.0.4/sqlitepclraw.bundle_green.2.0.4.nupkg";
-      sha256 = "1197ynpm4fl6il9vi0mi1s1pmw3rk3j0a05kwrxpqlfgp7iwhc22";
+      url = "https://api.nuget.org/v3-flatcontainer/sqlitepclraw.bundle_green/2.0.7/sqlitepclraw.bundle_green.2.0.7.nupkg";
+      sha256 = "083saqlwx1hbhy0rv7vi973aw7jv8q53fcxlrprx1wgxdwnbi5ni";
     };
   }
   {
     pname = "sqlitepclraw.core";
-    version = "2.0.4";
+    version = "2.0.7";
     src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/sqlitepclraw.core/2.0.4/sqlitepclraw.core.2.0.4.nupkg";
-      sha256 = "0lb5vwfl1hd24xzzdaj2p4k2hv2k0i3mgdri6fjj0ssb37mcyir1";
+      url = "https://api.nuget.org/v3-flatcontainer/sqlitepclraw.core/2.0.7/sqlitepclraw.core.2.0.7.nupkg";
+      sha256 = "0b25qz3h1aarza2b74alsl9v6czns3y61i8p10yqgd9djk1b1byj";
     };
   }
   {
     pname = "sqlitepclraw.lib.e_sqlite3";
-    version = "2.0.4";
+    version = "2.0.7";
     src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/sqlitepclraw.lib.e_sqlite3/2.0.4/sqlitepclraw.lib.e_sqlite3.2.0.4.nupkg";
-      sha256 = "0kmx1w5qllmwxldr8338qxwmpfzc6g2lmyrah7wfaxd3mvfzky5c";
+      url = "https://api.nuget.org/v3-flatcontainer/sqlitepclraw.lib.e_sqlite3/2.0.7/sqlitepclraw.lib.e_sqlite3.2.0.7.nupkg";
+      sha256 = "0wkrzcpc9vcd27gwj6w537i1i5i3h5zsips8b9v9ngk003n50mia";
     };
   }
   {
     pname = "sqlitepclraw.provider.dynamic_cdecl";
-    version = "2.0.4";
+    version = "2.0.7";
     src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/sqlitepclraw.provider.dynamic_cdecl/2.0.4/sqlitepclraw.provider.dynamic_cdecl.2.0.4.nupkg";
-      sha256 = "084r98kilpm0q1aw41idq8slncpd7cz65g0m1wr0p8d12x8z5g6j";
+      url = "https://api.nuget.org/v3-flatcontainer/sqlitepclraw.provider.dynamic_cdecl/2.0.7/sqlitepclraw.provider.dynamic_cdecl.2.0.7.nupkg";
+      sha256 = "1kmyf4v4157n2194j17ijf62xnqiapxhg4aka851zx0hzlxm7ygp";
     };
   }
   {
     pname = "sqlitepclraw.provider.e_sqlite3";
-    version = "2.0.4";
+    version = "2.0.7";
     src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/sqlitepclraw.provider.e_sqlite3/2.0.4/sqlitepclraw.provider.e_sqlite3.2.0.4.nupkg";
-      sha256 = "1vm8w8xvqi11sihdz5s6y4w7ghq4pp5f2ksixdhlbycvs6m4h7i7";
+      url = "https://api.nuget.org/v3-flatcontainer/sqlitepclraw.provider.e_sqlite3/2.0.7/sqlitepclraw.provider.e_sqlite3.2.0.7.nupkg";
+      sha256 = "1davv3fqd05353d7dl7wm2sg58fyy59b29pk58w1vf7m33580grj";
     };
   }
   {
@@ -1552,6 +1576,14 @@
     };
   }
   {
+    pname = "system.composition";
+    version = "6.0.0";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/system.composition/6.0.0/system.composition.6.0.0.nupkg";
+      sha256 = "1p7hysns39cc24af6dwd4m48bqjsrr3clvi4aws152mh2fgyg50z";
+    };
+  }
+  {
     pname = "system.composition.attributedmodel";
     version = "1.0.31";
     src = fetchurl {
@@ -1560,6 +1592,14 @@
     };
   }
   {
+    pname = "system.composition.attributedmodel";
+    version = "6.0.0";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/system.composition.attributedmodel/6.0.0/system.composition.attributedmodel.6.0.0.nupkg";
+      sha256 = "1mqrblb0l65hw39d0hnspqcv85didpn4wbiwhfgj4784wzqx2w6k";
+    };
+  }
+  {
     pname = "system.composition.convention";
     version = "1.0.31";
     src = fetchurl {
@@ -1568,6 +1608,14 @@
     };
   }
   {
+    pname = "system.composition.convention";
+    version = "6.0.0";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/system.composition.convention/6.0.0/system.composition.convention.6.0.0.nupkg";
+      sha256 = "02km3yb94p1c4s7liyhkmda0g71zm1rc8ijsfmy4bnlkq15xjw3b";
+    };
+  }
+  {
     pname = "system.composition.hosting";
     version = "1.0.31";
     src = fetchurl {
@@ -1576,6 +1624,14 @@
     };
   }
   {
+    pname = "system.composition.hosting";
+    version = "6.0.0";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/system.composition.hosting/6.0.0/system.composition.hosting.6.0.0.nupkg";
+      sha256 = "0big5nk8c44rxp6cfykhk7rxvn2cgwa99w6c3v2a36adc3lj36ky";
+    };
+  }
+  {
     pname = "system.composition.runtime";
     version = "1.0.31";
     src = fetchurl {
@@ -1584,6 +1640,14 @@
     };
   }
   {
+    pname = "system.composition.runtime";
+    version = "6.0.0";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/system.composition.runtime/6.0.0/system.composition.runtime.6.0.0.nupkg";
+      sha256 = "0vq5ik63yii1784gsa2f2kx9w6xllmm8b8rk0arid1jqdj1nyrlw";
+    };
+  }
+  {
     pname = "system.composition.typedparts";
     version = "1.0.31";
     src = fetchurl {
@@ -1592,6 +1656,22 @@
     };
   }
   {
+    pname = "system.composition.typedparts";
+    version = "6.0.0";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/system.composition.typedparts/6.0.0/system.composition.typedparts.6.0.0.nupkg";
+      sha256 = "0y9pq3y60nyrpfy51f576a0qjjdh61mcv8vnik32pm4bz56h9q72";
+    };
+  }
+  {
+    pname = "system.configuration.configurationmanager";
+    version = "4.5.0";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/system.configuration.configurationmanager/4.5.0/system.configuration.configurationmanager.4.5.0.nupkg";
+      sha256 = "1frpy24mn6q7hgwayj98kkx89z861f5dmia4j6zc0a2ydgx8x02c";
+    };
+  }
+  {
     pname = "system.configuration.configurationmanager";
     version = "4.7.0";
     src = fetchurl {
@@ -1608,6 +1688,14 @@
     };
   }
   {
+    pname = "system.data.datasetextensions";
+    version = "4.5.0";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/system.data.datasetextensions/4.5.0/system.data.datasetextensions.4.5.0.nupkg";
+      sha256 = "0gk9diqx388qjmbhljsx64b5i0p9cwcaibd4h7f8x901pz84x6ma";
+    };
+  }
+  {
     pname = "system.diagnostics.debug";
     version = "4.0.11";
     src = fetchurl {
@@ -1776,6 +1864,14 @@
     };
   }
   {
+    pname = "system.io.filesystem.accesscontrol";
+    version = "4.5.0";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/system.io.filesystem.accesscontrol/4.5.0/system.io.filesystem.accesscontrol.4.5.0.nupkg";
+      sha256 = "1gq4s8w7ds1sp8f9wqzf8nrzal40q5cd2w4pkf4fscrl2ih3hkkj";
+    };
+  }
+  {
     pname = "system.io.filesystem.primitives";
     version = "4.0.1";
     src = fetchurl {
@@ -1801,10 +1897,10 @@
   }
   {
     pname = "system.io.pipelines";
-    version = "5.0.1";
+    version = "6.0.1";
     src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.io.pipelines/5.0.1/system.io.pipelines.5.0.1.nupkg";
-      sha256 = "1zvfcd2l1d5qxifsqd0cjyv57nr61a9ac2ca5jinyqmj32wgjd6v";
+      url = "https://api.nuget.org/v3-flatcontainer/system.io.pipelines/6.0.1/system.io.pipelines.6.0.1.nupkg";
+      sha256 = "0b6zvhhfdxx0wx3bzyvxbq0mk8l5lbjak5124sn0gkif5jb388w4";
     };
   }
   {
@@ -1841,6 +1937,14 @@
   }
   {
     pname = "system.memory";
+    version = "4.5.0";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/system.memory/4.5.0/system.memory.4.5.0.nupkg";
+      sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30";
+    };
+  }
+  {
+    pname = "system.memory";
     version = "4.5.3";
     src = fetchurl {
       url = "https://api.nuget.org/v3-flatcontainer/system.memory/4.5.3/system.memory.4.5.3.nupkg";
@@ -2137,6 +2241,14 @@
   }
   {
     pname = "system.runtime.compilerservices.unsafe";
+    version = "4.5.0";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/system.runtime.compilerservices.unsafe/4.5.0/system.runtime.compilerservices.unsafe.4.5.0.nupkg";
+      sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43";
+    };
+  }
+  {
+    pname = "system.runtime.compilerservices.unsafe";
     version = "4.5.2";
     src = fetchurl {
       url = "https://api.nuget.org/v3-flatcontainer/system.runtime.compilerservices.unsafe/4.5.2/system.runtime.compilerservices.unsafe.4.5.2.nupkg";
@@ -2401,6 +2513,14 @@
   }
   {
     pname = "system.security.cryptography.protecteddata";
+    version = "4.5.0";
+    src = fetchurl {
+      url = "https://api.nuget.org/v3-flatcontainer/system.security.cryptography.protecteddata/4.5.0/system.security.cryptography.protecteddata.4.5.0.nupkg";
+      sha256 = "11qlc8q6b7xlspayv07718ibzvlj6ddqqxkvcbxv5b24d5kzbrb7";
+    };
+  }
+  {
+    pname = "system.security.cryptography.protecteddata";
     version = "4.7.0";
     src = fetchurl {
       url = "https://api.nuget.org/v3-flatcontainer/system.security.cryptography.protecteddata/4.7.0/system.security.cryptography.protecteddata.4.7.0.nupkg";
@@ -2505,10 +2625,10 @@
   }
   {
     pname = "system.text.encoding.codepages";
-    version = "4.5.1";
+    version = "6.0.0";
     src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.text.encoding.codepages/4.5.1/system.text.encoding.codepages.4.5.1.nupkg";
-      sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w";
+      url = "https://api.nuget.org/v3-flatcontainer/system.text.encoding.codepages/6.0.0/system.text.encoding.codepages.6.0.0.nupkg";
+      sha256 = "0gm2kiz2ndm9xyzxgi0jhazgwslcs427waxgfa30m7yqll1kcrww";
     };
   }
   {
diff --git a/pkgs/development/tools/packet-sd/default.nix b/pkgs/development/tools/packet-sd/default.nix
index f01d87be6e468..f8caeb7f684d1 100644
--- a/pkgs/development/tools/packet-sd/default.nix
+++ b/pkgs/development/tools/packet-sd/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = [ ];
+    mainProgram = "prometheus-packet-sd";
   };
 }
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix b/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
index b7ae694c9181b..c5820018bb6b2 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
@@ -70,6 +70,7 @@
   tree-sitter-ruby = lib.importJSON ./tree-sitter-ruby.json;
   tree-sitter-rust = lib.importJSON ./tree-sitter-rust.json;
   tree-sitter-scala = lib.importJSON ./tree-sitter-scala.json;
+  tree-sitter-scheme = lib.importJSON ./tree-sitter-scheme.json;
   tree-sitter-scss = lib.importJSON ./tree-sitter-scss.json;
   tree-sitter-sparql = lib.importJSON ./tree-sitter-sparql.json;
   tree-sitter-supercollider = lib.importJSON ./tree-sitter-supercollider.json;
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
index 487f3a27e0725..e2cfb0944dd34 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-c-sharp",
-  "rev": "352a4630c81a7a5cbd3bc67327743bd8d38f2dd2",
-  "date": "2022-01-03T12:31:17+00:00",
-  "path": "/nix/store/c7k10h98vzqag0rsywm0p71jaz57880x-tree-sitter-c-sharp",
-  "sha256": "198n5i9bvks0mmbqgzjgrhv6hy1afnx806jnap10241iyd817jbf",
+  "rev": "5b6ae1f88e741b9ed738891ad1362fb9f2041671",
+  "date": "2022-03-23T15:50:46-04:00",
+  "path": "/nix/store/n5kjbimssqrwz7h99gq83935432dpm5s-tree-sitter-c-sharp",
+  "sha256": "1yp1lyzay7hxlgca2r5yigpdy80vli4f48k2bm3h2rpa99fczmrb",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-clojure.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-clojure.json
index 4527f8d000e84..292b7c032666f 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-clojure.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-clojure.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/sogaiu/tree-sitter-clojure",
-  "rev": "1b24766fe9feacb8f5006233fe5c2ebd0ba31eff",
-  "date": "2022-02-19T08:24:15+09:00",
-  "path": "/nix/store/1vxhbw0dxg95z8rbs1b96nrcjvhrhb52-tree-sitter-clojure",
-  "sha256": "0sqi825gyjndn3v00kvk9scw6s5q0lr3ig6v49sccqc2addnr6di",
+  "rev": "879f0e726295807d917d576fcf9e1e432c4c20fc",
+  "date": "2022-04-11T22:46:47+09:00",
+  "path": "/nix/store/19bcj8f61w958njvksnqzm5r5s8szzz2-tree-sitter-clojure",
+  "sha256": "16g7s819gjgdc4wlp7rnvyv5i5dqa1yawxs8l4ggnz8n8acqza9n",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-comment.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-comment.json
index 56e0ad099ce3c..bc6b7d9391638 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-comment.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-comment.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/stsewd/tree-sitter-comment",
-  "rev": "6975eb268f42df2afc313f96c0693e284685dba7",
-  "date": "2022-01-22T20:58:19-05:00",
-  "path": "/nix/store/nl4whdipy7a4g3ds2yv3c0qr7z4pifwn-tree-sitter-comment",
-  "sha256": "009krarzs9qykd8fas67gychjzcbgj8j0jm9h0963dlxs4hyay73",
+  "rev": "a37ca370310ac6f89b6e0ebf2b86b2219780494e",
+  "date": "2022-03-28T20:21:33-05:00",
+  "path": "/nix/store/nbf4bgxb7a15mwbi6lsfn7gbq8x1s3c1-tree-sitter-comment",
+  "sha256": "0y0wqzgrwwg09ipfs6i3bcxm5hbvs938g2ksnygcbgqdwgd5h8f2",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-devicetree.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-devicetree.json
index 4b301bb0f5773..6bb7fd3421550 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-devicetree.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-devicetree.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/joelspadin/tree-sitter-devicetree",
-  "rev": "fa70098cd70393f84785f85cdc6a45299b59cd5b",
-  "date": "2021-03-28T12:08:53-05:00",
-  "path": "/nix/store/6nqsmnd75vwbvkj764vg5slkmjzkmdd9-tree-sitter-devicetree",
-  "sha256": "0mr3q2l7js6csb1fp8xjysikj26l94p3mmsiik4qwnw5kg694yam",
+  "rev": "877adbfa0174d25894c40fa75ad52d4515a36368",
+  "date": "2022-03-23T18:25:46-05:00",
+  "path": "/nix/store/q0rqqm39h4dh17nlrr10kbfcqbdfk5kl-tree-sitter-devicetree",
+  "sha256": "1ds7pa4x1yd54xa2mba37vp8lbi8n4l975lps0249x8xw35r0jrl",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elixir.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elixir.json
index c6257a25b157b..2f673c7172cea 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elixir.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elixir.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/elixir-lang/tree-sitter-elixir",
-  "rev": "b4027d7cfc96935b50878bdf9faf80bd64ac73cf",
-  "date": "2022-03-04T15:40:04+00:00",
-  "path": "/nix/store/h3qh2s4q51bnq66p1v067g1fb8bd1743-tree-sitter-elixir",
-  "sha256": "1pf2n1j8j5w7mrh81yzvha1gh4w3vffngikj04kzd5gkx9asf3x6",
+  "rev": "ec1c4cac1b2f0290c53511a72fbab17c47815d2b",
+  "date": "2022-04-18T23:16:26+02:00",
+  "path": "/nix/store/2jmkl3lxq6cy0cg4wjf3hgjciw0xsm0y-tree-sitter-elixir",
+  "sha256": "0xiprldyfqpx5fil1b1kbnpj57n7j15j3m8dhibhif7azbd1z1y3",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
index 49a04edbc37bb..ca9760bb7e268 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-go",
-  "rev": "07d722831382a043b16547b6d9202f3da07f3cb3",
-  "date": "2022-03-22T15:34:30+01:00",
-  "path": "/nix/store/9ay5gjwnip3jcmi096sw5fyi1kxqg1pk-tree-sitter-go",
-  "sha256": "0rc1p5jab08v1r81gzaz5xmxmbspl5i5zxba9immzax8ahzhhaxn",
+  "rev": "c8fed1f0847a65a04a4b8cb7655f5f416e0742ca",
+  "date": "2022-03-29T10:06:48+02:00",
+  "path": "/nix/store/f9vy5q9p3rf2dcp7zdw9708j138ibi36-tree-sitter-go",
+  "sha256": "0yi8h1q39hsdxp9053by9xkl53wn229fhwjrrzml7k8y95qgnsyd",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gomod.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gomod.json
index 2b8fe79a3d245..9ae45f8991011 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gomod.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gomod.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/camdencheek/tree-sitter-go-mod",
-  "rev": "3cbcb572109ea0bc476a292208722c326c9e6c3a",
-  "date": "2021-12-16T14:44:10-07:00",
-  "path": "/nix/store/jxc3lqcxagfvlk7l62fg8z98mjrn7pgz-tree-sitter-go-mod",
-  "sha256": "0csrvmpvihwmw3772j4lkj49myqqp0f7imi7c11h9x9szz3lc8x8",
+  "rev": "e8f51f8e4363a3d9a427e8f63f4c1bbc5ef5d8d0",
+  "date": "2022-04-05T11:00:59-06:00",
+  "path": "/nix/store/4a0idwqi76n4g809inrkv88nv68dgc0i-tree-sitter-go-mod",
+  "sha256": "09rkqwdwhsm41nrz73rqbajap4bc0spjcld9k9fr8xmlmqa67j2b",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-heex.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-heex.json
index 654a89b5979b1..1a067f18d14c2 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-heex.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-heex.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/connorlay/tree-sitter-heex",
-  "rev": "592e22292a367312c35e13de7fdb888f029981d6",
-  "date": "2022-01-30T14:04:04-08:00",
-  "path": "/nix/store/21n6sqyvkfd0q5ass9nj2wgicm9ljmgv-tree-sitter-heex",
-  "sha256": "1k4nhlbbn7lqrjmkz8rr81rsrfkl9qfwm9q7qd2b18ygzr52payh",
+  "rev": "57e46b4b002d5fb5c1f2706fe42380e544ecab5f",
+  "date": "2022-04-17T10:39:01-07:00",
+  "path": "/nix/store/afmvzkh237ikn0b9fw51crzhyk4ys1d2-tree-sitter-heex",
+  "sha256": "0gfxqph5j3n3dlpnyw85lrwhgjh4zm7mdrnf0qyv0f2basayfabm",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json
index 664e31613c5d3..42bd6f10771ad 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-java",
-  "rev": "881b84fe7078651af5077cc4cea4c85f9fddde3b",
-  "date": "2022-03-21T10:50:51+01:00",
-  "path": "/nix/store/ii1dwsg972sbllim6vrmjbcaw9fcy2b1-tree-sitter-java",
-  "sha256": "0kvqqrx669fyaxm55l0p5vbswf9bfknl0brsr6llyzdz81dl0vk4",
+  "rev": "e7cb801ef57f74db5c4ebe14df74de852bb451b5",
+  "date": "2022-04-16T15:36:51+02:00",
+  "path": "/nix/store/55br93464adchwwjwdqjai8ppykwh098-tree-sitter-java",
+  "sha256": "0w27xk9j7mm9gr5aiwcv6cgfvzfnps0l9b09mwfqxhndh7j96vfn",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json.json
index 13e67533f401f..397ee48ff77c3 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-json",
-  "rev": "203e239408d642be83edde8988d6e7b20a19f0e8",
-  "date": "2021-08-18T10:35:07-07:00",
-  "path": "/nix/store/yqbmn17vs2lxqg5wa8b269fcsd5wr4bv-tree-sitter-json",
-  "sha256": "08igb9ylfdsjasyn0p9j4sqpp0i2x1qcdzacbmsag02jmkyi6s7f",
+  "rev": "137e1ce6a02698fc246cdb9c6b886ed1de9a1ed8",
+  "date": "2022-04-21T11:20:07-07:00",
+  "path": "/nix/store/5f0z08shhb8d03ab4zlaq9ss4dim6k9f-tree-sitter-json",
+  "sha256": "1amiaiizd4mvmnbwqbr8lmisi9831di8r8xck9wyi5sfj3nd8hai",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-julia.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-julia.json
index 9f093a4d4e376..087e491a03407 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-julia.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-julia.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-julia",
-  "rev": "12ea597262125fc22fd2e91aa953ac69b19c26ca",
-  "date": "2021-05-03T17:44:45-07:00",
-  "path": "/nix/store/lbz23r698hn7cha09qq0dbfay7dh74gg-tree-sitter-julia",
-  "sha256": "0rmd7k3rv567psxrlqv17gvckijs19xs6mxni045rpayxmk441sk",
+  "rev": "1e8fe0b3988e7cf56530837fd3a870089ddc7684",
+  "date": "2022-04-15T13:59:51-07:00",
+  "path": "/nix/store/9li8yqbvf95jksbv6myzha9bpmwq6xsg-tree-sitter-julia",
+  "sha256": "0jwwx7ipdw7lq53zn5j72w5n4schjnmfv5fb3lii1nj60fqahrp7",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-latex.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-latex.json
index 739e6006c2757..5b7e511efb19a 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-latex.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-latex.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/latex-lsp/tree-sitter-latex",
-  "rev": "b71e4928a63a6d75bc1670004a5b5a98c850a149",
-  "date": "2022-03-16T20:19:11+01:00",
-  "path": "/nix/store/gzpihd6k8cqsl0facz7kfgn2dh294fxw-tree-sitter-latex",
-  "sha256": "1z2ywj57fpxaym6bv5ixvc01h8szazbhzmzzw960f49mlrima3n6",
+  "rev": "8c5d90e78fa58ee6acab465ffa9a53e8b7b2c69c",
+  "date": "2022-04-23T15:10:18+02:00",
+  "path": "/nix/store/qpc37mjsl75qnmyzbkw6azphwzfdr9n9-tree-sitter-latex",
+  "sha256": "1xq5g34g9sqshhpprakc4k5lrlgg1n8vb7d7nfrx4ilrz5s0kks1",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ledger.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ledger.json
index a75a617649121..879893ca4bd28 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ledger.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ledger.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/cbarrete/tree-sitter-ledger",
-  "rev": "0cdeb0e51411a3ba5493662952c3039de08939ca",
-  "date": "2021-09-06T18:36:51-04:00",
-  "path": "/nix/store/8gh6lfvqczb6n6ncnmszvk3kj527m75w-tree-sitter-ledger",
-  "sha256": "1z0r2aphijzq6j67gb2lx2qr3fi2qpiz2x9dwkjvppdb4ch7ga7m",
+  "rev": "1050a25df55a62878102d10e524b5184b316b7ad",
+  "date": "2022-04-01T08:21:18-04:00",
+  "path": "/nix/store/hfhxv3k8kxpg7m31xzrf56lbaa4ips65-tree-sitter-ledger",
+  "sha256": "0qivr9wjab8m1ha4zisznijpw4x3phv0q0nh8lnsx7bjbz6f7xfx",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-llvm.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-llvm.json
index caa2f13a358ce..1ed8397bd17a1 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-llvm.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-llvm.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/benwilliamgraham/tree-sitter-llvm",
-  "rev": "3b213925b9c4f42c1acfe2e10bfbb438d9c6834d",
-  "date": "2021-12-27T14:02:51-05:00",
-  "path": "/nix/store/hjg9z82l3iqyjw0s9lf1kkm31p5wlv3d-tree-sitter-llvm",
-  "sha256": "0ymrdcajji11852c158w67mgcsycphwj9mh777q3n4jn8pp37y8j",
+  "rev": "e9948edc41e9e5869af99dddb2b5ff5cc5581af6",
+  "date": "2022-03-31T23:27:40-04:00",
+  "path": "/nix/store/8nkhzala4wscfip1g0skh1cxvmp3gp8l-tree-sitter-llvm",
+  "sha256": "0d579ylhi3hgzm5wbahs6hci1rhv7q1x6wsav9dbzv1y6np2dfrk",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-lua.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-lua.json
index a11ac648fed2a..52ade503e8a9c 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-lua.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-lua.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/MunifTanjim/tree-sitter-lua",
-  "rev": "547184a6cfcc900fcac4a2a56538fa8bcdb293e6",
-  "date": "2022-01-28T20:44:16+06:00",
-  "path": "/nix/store/gvq91asqk6911bci8xxx5wjbp2p3c2lk-tree-sitter-lua",
-  "sha256": "04z182d591r3jlw0yx29m0hhzw4b14f8m85rz2bw959p0yghs88k",
+  "rev": "2b4ffd5a5ffd0c6b4c84f0d9e003050a70db2a37",
+  "date": "2022-04-08T22:29:43+06:00",
+  "path": "/nix/store/gj2bbwc3105djyl3l5b0hjr1y1jg7262-tree-sitter-lua",
+  "sha256": "1l383clymmzk0q9b21kcgnmpww4hsh938yd3z9djpkhagadpqpjs",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-markdown.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-markdown.json
index 5da2dc0585e76..a60bf1dffc6b6 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-markdown.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-markdown.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/MDeiml/tree-sitter-markdown",
-  "rev": "b49b2da50864171eff56acc8ba067c3540a3991f",
-  "date": "2022-02-26T15:22:17+01:00",
-  "path": "/nix/store/vllxsz0nvlw6z9y6s199l5z8f5dlhcpv-tree-sitter-markdown",
-  "sha256": "1adypmkfsf6pgahba588d8l6ib59209rb2fkyk2dv0d3va76pr8x",
+  "rev": "d24196f9b3e5af6fcb2ec2a0b6cbc5c06f58b85e",
+  "date": "2022-03-30T11:47:57+02:00",
+  "path": "/nix/store/rdac46kl274bdd18bdrdh33s71sin7xd-tree-sitter-markdown",
+  "sha256": "07i3zwjla74s61w39fqfmb5a61dw6xlgfagh70p1rpvyrpxsywds",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-org-nvim.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-org-nvim.json
index 67e75cd60ee2f..c9b0ce8fcbb31 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-org-nvim.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-org-nvim.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/milisims/tree-sitter-org",
-  "rev": "1c3eb533a9cf6800067357b59e03ac3f91fc3a54",
-  "date": "2022-02-05T14:19:52-05:00",
-  "path": "/nix/store/n51rx6d005iibpvb1bb2d7az1l6p6vlq-tree-sitter-org",
-  "sha256": "06xkhhdlkikvxadp7wnk8riz51mjq9ks1jchdy9x3fmq6bj72y1p",
+  "rev": "fab7af32a2719091df5b222f98099c566859de78",
+  "date": "2022-04-07T16:00:06-04:00",
+  "path": "/nix/store/b17cvbkdvv7d3dzbi58lgrqsnhvh79d8-tree-sitter-org",
+  "sha256": "0jz69wm1ay84zkslbcp4l906ay7l4jd3bi1k1ivclpx493pg8ia7",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
index 856d6bbb7e5c5..c1bc94c210a1a 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-php",
-  "rev": "0ce134234214427b6aeb2735e93a307881c6cd6f",
-  "date": "2022-01-31T19:53:17+01:00",
-  "path": "/nix/store/kdddnbbsik9wvnjh1wnbyzzr1x8v64ps-tree-sitter-php",
-  "sha256": "0gg3p1zpwfhf0qz0isnca0zi5zkxs5j5bmjix99dv3rkw911vk17",
+  "rev": "3c17a28da38afac41332d3ce79bbd8951867f346",
+  "date": "2022-03-29T09:09:35-07:00",
+  "path": "/nix/store/7dmygp3gi9ch00mf59d7g2l8k6f2pl81-tree-sitter-php",
+  "sha256": "06xc4y67pl96h1gfh9zg4yxdgqj5mv7md28m78gix8sk1h011irq",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-prisma.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-prisma.json
index ad0fbd525ed85..9688a1d2b7c70 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-prisma.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-prisma.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/victorhqc/tree-sitter-prisma",
-  "rev": "bf0833cbedb2c5b39250f5ba900f1239a16c6749",
-  "date": "2022-03-18T18:56:29+01:00",
-  "path": "/nix/store/9pq2l5b34xvi3v6i9zq1qxh3r2ilg2qs-tree-sitter-prisma",
-  "sha256": "0idgrra41w4v3sa4sb0p3ba7k6sxfw74px4fkpprddjqjdnsrl50",
+  "rev": "0ac307e4be0409d4327082ddc737ed432a49dfc3",
+  "date": "2022-04-20T10:52:00+02:00",
+  "path": "/nix/store/24vp6k2ijg832c95hx2x0j8x4i6pxffz-tree-sitter-prisma",
+  "sha256": "13rcwlkxv9dns7mgxrb34vzhq32c854bna6gsyczvs6vishm6i9l",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-r.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-r.json
index f77e929225336..a5797af4139b3 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-r.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-r.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/r-lib/tree-sitter-r",
-  "rev": "c19e54de252d5573cc2a762a030957074526fe99",
-  "date": "2022-01-27T09:41:27-05:00",
-  "path": "/nix/store/b2h3khs1x0j4j2fvs2sbkx1dp3d8fx4g-tree-sitter-r",
-  "sha256": "1zan8dhjpxrn7vy7mvbc85hcdd5lls3vzpk6nchvn3j0i1ach85h",
+  "rev": "cc04302e1bff76fa02e129f332f44636813b0c3c",
+  "date": "2022-03-28T10:31:51-04:00",
+  "path": "/nix/store/0s6513shwiiqq26ma0alx16f9w0sg2yp-tree-sitter-r",
+  "sha256": "0adq1qng3ghb4wvglplj73q8c95hzpfiqb2q8bqnms81i7p2xma7",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json
index 09559a4a7a22b..bf15e656e914f 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-scala",
-  "rev": "0a3dd53a7fc4b352a538397d054380aaa28be54c",
-  "date": "2021-10-10T10:34:22-07:00",
-  "path": "/nix/store/mys098cdap3mdp6x4qwlk7b9v84998b0-tree-sitter-scala",
-  "sha256": "1lwyipn5b36fskr8cm60qjblj2chf8336zkqbsifq49z1lj0wvpi",
+  "rev": "ec6047f531e7d4c13787d4ff208b94a84de34165",
+  "date": "2022-03-27T09:48:17+02:00",
+  "path": "/nix/store/70sghy226gl3s1b2p0zjhplb6zjy777g-tree-sitter-scala",
+  "sha256": "0yjl8hwdm1pkihfgfbg19z5j0v3cp64a2pa59maws1i231fm5bsw",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scheme.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scheme.json
new file mode 100644
index 0000000000000..88e5e784c05cd
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scheme.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/6cdh/tree-sitter-scheme",
+  "rev": "aee42e302f36045cdc671223ce10a069203fd604",
+  "date": "2022-04-21T11:07:14+08:00",
+  "path": "/nix/store/jviqv18g5yszjcqmv48rpml6z4q4ccv8-tree-sitter-scheme",
+  "sha256": "1piw1g5w29jxhwrvivpmdkyr2vbi8fpj2idzk8bwvplzbb6hfr7x",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-supercollider.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-supercollider.json
index 24f5776294976..22a0fa2394897 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-supercollider.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-supercollider.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/madskjeldgaard/tree-sitter-supercollider",
-  "rev": "0f0e5b5a96dd3e048a9c3db648ed969c44068bff",
-  "date": "2022-02-01T13:46:31+01:00",
-  "path": "/nix/store/5rzm6vnqvpwxwakrjyy93hg0glfvcx93-tree-sitter-supercollider",
-  "sha256": "0nxl43j7ddsddqcq56p921h1r5jkx8v49zxjzr6mcj6y1ljzndm2",
+  "rev": "90c6d9f777d2b8c4ce497c48b5f270a44bcf3ea0",
+  "date": "2022-04-14T11:41:40+02:00",
+  "path": "/nix/store/hzdm20x9fpc8bqd6bphq1akbdmdcpq7s-tree-sitter-supercollider",
+  "sha256": "1g0q32crsnzxnwh5bjfjm0dkxpnvdj76idjc8s4ba7hinwa8jpv0",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-svelte.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-svelte.json
index 0052b3f8e718c..30052fe6407a0 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-svelte.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-svelte.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/Himujjal/tree-sitter-svelte",
-  "rev": "98274d94ec33e994e8354d9ddfdef58cca471294",
-  "date": "2021-10-28T16:53:33+05:30",
-  "path": "/nix/store/q3dapi6k6zdnnr0lki2ic9l6cbxdi2rq-tree-sitter-svelte",
-  "sha256": "1kav0h755sa1j9j930kjrykb17aih017mbi0a97ncjjrlc6nyak5",
+  "rev": "84c90ee15f851e1541c25c86e8a4338f5b4d5af2",
+  "date": "2022-04-13T11:35:15+05:30",
+  "path": "/nix/store/2miakcpw7xgg2pcwdbcg0kl2djijcfbj-tree-sitter-svelte",
+  "sha256": "0hidafgzbnksyigksab8731jdnvj1vqn7fv0jxsc1yfrwrmai6ls",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-toml.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-toml.json
index ae182486506a6..34eb4ffe03a1a 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-toml.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-toml.json
@@ -1,9 +1,9 @@
 {
-  "url": "https://github.com/ikatyang/tree-sitter-toml",
-  "rev": "8bd2056818b21860e3d756b5a58c4f6e05fb744e",
-  "date": "2021-05-11T12:47:32+08:00",
-  "path": "/nix/store/isgpadcxmgkb14w9yg67pb8lx7wlfhnn-tree-sitter-toml",
-  "sha256": "0yasw5fp4mq6vzrdwlc3dxlss8a94bsffv4mzrfp0b3iw0s1dlyg",
+  "url": "https://github.com/tree-sitter/tree-sitter-toml",
+  "rev": "342d9be207c2dba869b9967124c679b5e6fd0ebe",
+  "date": "2022-04-21T16:26:30-07:00",
+  "path": "/nix/store/is4vnj1s94455s9msasbn7px7jjfr0ai-tree-sitter-toml",
+  "sha256": "00pigsc947qc2p6g21iki6xy4h497arq53fp2fjgiw50bqmknrsp",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json
index fc04fd069e4f0..44477aa24d3c8 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-typescript",
-  "rev": "e8e8e8dc2745840b036421b4e43286750443cb13",
-  "date": "2022-01-10T13:42:45-08:00",
-  "path": "/nix/store/zl36qsk7pd9pcawfsy368axax97d83wz-tree-sitter-typescript",
-  "sha256": "1z1v7fjgp418qsp0xkycfpvc8vm4a2ai5kx10xif1dvjpfgcj1qq",
+  "rev": "8e9dba7bd7cf089838a036a98be94db53ba2d0a9",
+  "date": "2022-04-13T09:44:02-07:00",
+  "path": "/nix/store/188d0ki07nhmihrl2b868vmb9rd4hf4q-tree-sitter-typescript",
+  "sha256": "010nnihmaw1a1l9mzjd1nmrb0z6j2h3pr872dzpdq7ajg0j3j1wl",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-vim.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-vim.json
index f4aaecb7bdf3a..b9a3184e942e3 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-vim.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-vim.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/vigoux/tree-sitter-viml",
-  "rev": "c9d70082af14988842eb071c6c0b07e8d1d993ac",
-  "date": "2022-03-21T17:11:25+01:00",
-  "path": "/nix/store/z1bjg25frb0sq7kr0s3sp6jnz888p900-tree-sitter-viml",
-  "sha256": "05mf8i5ni0kp4g1gdpgwjxi2d86hna2ijp9k7c1gy9j33hsq9i8g",
+  "rev": "5268e0ec901e33ad7142ee31b580269a94fba042",
+  "date": "2022-04-16T20:12:40+02:00",
+  "path": "/nix/store/rw6cjm4vj4yihlfmrxa2vc81lr3x59rn-tree-sitter-viml",
+  "sha256": "0vga1bivzkr00brzvv309hx7sqvg7y2kf6vx0s8hv9r56x6nm54s",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-zig.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-zig.json
index a9de3692209e1..0ad82155c77af 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-zig.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-zig.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/maxxnino/tree-sitter-zig",
-  "rev": "42e93d02ca945094699e2dc4de785bbaf8f740ec",
-  "date": "2022-02-11T10:40:42+09:00",
-  "path": "/nix/store/2yv27si133zqb93bm9gia0ymib9q2y75-tree-sitter-zig",
-  "sha256": "14p02b04v67cvkvj7apipsmkmvv3jnhykm0qrrmqqxnkprac31im",
+  "rev": "4cff36421dae9c05388b86cd64d2bab4b9ed6676",
+  "date": "2022-04-02T10:33:48+07:00",
+  "path": "/nix/store/ripw74y32a8nzsr9n30jfhh16wjxlxvb-tree-sitter-zig",
+  "sha256": "0k9z0f6vfj1pfz3qkscb41wz2nzjp0xpz9mvm6264q655rq73dlc",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/update.nix b/pkgs/development/tools/parsing/tree-sitter/update.nix
index 961a5e96e0b59..57bf5c0a13c19 100644
--- a/pkgs/development/tools/parsing/tree-sitter/update.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/update.nix
@@ -42,6 +42,7 @@ let
     "tree-sitter-ql"
     "tree-sitter-embedded-template"
     "tree-sitter-tsq"
+    "tree-sitter-toml"
   ];
   knownTreeSitterOrgGrammarReposJson = jsonFile "known-tree-sitter-org-grammar-repos" knownTreeSitterOrgGrammarRepos;
 
@@ -136,10 +137,6 @@ let
       orga = "ikatyang";
       repo = "tree-sitter-yaml";
     };
-    "tree-sitter-toml" = {
-      orga = "ikatyang";
-      repo = "tree-sitter-toml";
-    };
     "tree-sitter-zig" = {
       orga = "maxxnino";
       repo = "tree-sitter-zig";
@@ -312,6 +309,10 @@ let
       orga = "MichaHoffmann";
       repo = "tree-sitter-hcl";
     };
+    "tree-sitter-scheme" = {
+      orga = "6cdh";
+      repo = "tree-sitter-scheme";
+    };
   };
 
   allGrammars =
diff --git a/pkgs/development/tools/phantomjs2/default.nix b/pkgs/development/tools/phantomjs2/default.nix
index d9e4ec1fb199e..5093553824d82 100644
--- a/pkgs/development/tools/phantomjs2/default.nix
+++ b/pkgs/development/tools/phantomjs2/default.nix
@@ -25,11 +25,10 @@ in stdenv.mkDerivation rec {
     sha256 = "1zsbpk1sgh9a16f1a5nx3qvk77ibjn812wqkxqck8n6fia85m5iq";
   };
 
-  nativeBuildInputs = [ qmake ];
+  nativeBuildInputs = [ qmake makeWrapper ];
   buildInputs = [
     bison flex fontconfig freetype gperf icu openssl
     libjpeg libpng perl python2 ruby sqlite qtwebkit qtbase
-    makeWrapper
   ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
     AGL ApplicationServices AppKit Cocoa OpenGL
     darwin.libobjc fakeClang cups
diff --git a/pkgs/development/tools/pigeon/default.nix b/pkgs/development/tools/pigeon/default.nix
index ae54353305932..b94a9f4bfc369 100644
--- a/pkgs/development/tools/pigeon/default.nix
+++ b/pkgs/development/tools/pigeon/default.nix
@@ -1,18 +1,24 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-buildGoPackage {
-  pname = "pigeon";
-  version = "20190810-f3db42a662";
+{ lib, buildGoModule, fetchFromGitHub }:
 
-  goPackagePath = "github.com/mna/pigeon";
-  goDeps = ./deps.nix;
+buildGoModule rec {
+  pname = "pigeon";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "mna";
     repo = "pigeon";
-    rev = "f3db42a662eded7550fc7cd11605d05311dfa30f";
-    sha256 = "1n0zqidwbqqfslrirpbqw14ylgiry6ggcp9ll4h8rf1chqwk6dhv";
+    rev = "v${version}";
+    sha256 = "sha256-0Cp/OnFvVZj9UZgl3F5MCzemBaHI4smGWU46VQnhLOg=";
   };
 
+  vendorSha256 = "sha256-07zoQL4mLPSERBkZ3sz35Av7zdZsjTyGR8zbA86EEjU=";
+
+  proxyVendor = true;
+
+  subPackages = [ "." ];
+
+  doCheck = false;
+
   meta = {
     homepage = "https://github.com/mna/pigeon";
     description = "A PEG parser generator for Go";
diff --git a/pkgs/development/tools/pigeon/deps.nix b/pkgs/development/tools/pigeon/deps.nix
deleted file mode 100644
index d836dc43c7cde..0000000000000
--- a/pkgs/development/tools/pigeon/deps.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "c2843e01d9a2";
-      sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "3b0461eec859";
-      sha256 = "0l00c8l0a8xnv6qdpwfzxxsr58jggacgzdrwiprrfx2xqm37b6d5";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev = "112230192c58";
-      sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "d0b11bdaac8a";
-      sha256 = "18yfsmw622l7gc5sqriv5qmck6903vvhivpzp8i3xfy3z33dybdl";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "v0.3.0";
-      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "b29f5f60c37a";
-      sha256 = "118rvb59hc1fykbmif4008rbxw1p0dblc8dxkq96yaapd6p0vbpn";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/xerrors";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/xerrors";
-      rev = "a985d3407aa7";
-      sha256 = "00wzr5w8aadipgc3rkk8f11i41znskfj9ix5nhhaxyg7isrslgcj";
-    };
-  }
-]
diff --git a/pkgs/development/tools/pipenv/default.nix b/pkgs/development/tools/pipenv/default.nix
index c177d18f1369a..e0d73d7f8f075 100644
--- a/pkgs/development/tools/pipenv/default.nix
+++ b/pkgs/development/tools/pipenv/default.nix
@@ -19,11 +19,11 @@ let
 
 in buildPythonApplication rec {
   pname = "pipenv";
-  version = "2022.3.28";
+  version = "2022.4.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-TnquYtrXZ5zoG1TMNFG+GfssRp4mkzWzaxQTL+XO7LM=";
+    sha256 = "sha256-U1Yr9p2eUjj5mh4hAcNWdGscCu+l3OubioSlo+IB3g0=";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/development/tools/protoc-gen-doc/default.nix b/pkgs/development/tools/protoc-gen-doc/default.nix
index 4774d1a11d5c9..50badf258b081 100644
--- a/pkgs/development/tools/protoc-gen-doc/default.nix
+++ b/pkgs/development/tools/protoc-gen-doc/default.nix
@@ -1,19 +1,17 @@
 { buildGoModule, fetchFromGitHub, lib }:
 
 buildGoModule rec {
-  pname = "protoc-gen-doc-unstable";
-  version = "1.5.0";
+  pname = "protoc-gen-doc";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "pseudomuto";
     repo = "protoc-gen-doc";
     rev = "v${version}";
-    sha256 = "1bpb5wv76p0sjffh5d1frbygp3q1p07sdh5c8pznl5bdh5pd7zxq";
+    sha256 = "sha256-19CN62AwqQGq5Gb5kQqVYhs+LKsJ9K2L0VAakwzPD5Y=";
   };
 
-  vendorSha256 = "08pk9nxsl28dw3qmrlb7vsm8xbdzmx98qwkxgg93ykrhzx235k1b";
-
-  doCheck = false;
+  vendorSha256 = "sha256-K0rZBERSKob5ubZW28QpbcPhgFKOOASkd9UyC9f8gyQ=";
 
   meta = with lib; {
     description = "Documentation generator plugin for Google Protocol Buffers";
diff --git a/pkgs/development/tools/protoc-gen-twirp/default.nix b/pkgs/development/tools/protoc-gen-twirp/default.nix
index 663fa37b62c9e..2288d3ff15f7a 100644
--- a/pkgs/development/tools/protoc-gen-twirp/default.nix
+++ b/pkgs/development/tools/protoc-gen-twirp/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "protoc-gen-twirp";
-  version = "8.1.1";
+  version = "8.1.2";
 
   src = fetchFromGitHub {
     owner = "twitchtv";
     repo = "twirp";
     rev = "v${version}";
-    sha256 = "sha256-PnL7jgxAx/Xk/wajtQ+Q1G9KLes2NVANF2YmBcGFqe0=";
+    sha256 = "sha256-Nxh10jldRcNelfrLAbJanRN+YiK8uPHBw9fV1Uchbyg=";
   };
 
   goPackagePath = "github.com/twitchtv/twirp";
diff --git a/pkgs/development/tools/pur/default.nix b/pkgs/development/tools/pur/default.nix
index 359f3519acd63..fc6a46cbc0a87 100644
--- a/pkgs/development/tools/pur/default.nix
+++ b/pkgs/development/tools/pur/default.nix
@@ -3,34 +3,23 @@
 , fetchFromGitHub
 }:
 
-let
-  py = python3.override {
-    packageOverrides = self: super: {
-      # newest version doesn't support click >8.0 https://github.com/alanhamlett/pip-update-requirements/issues/38
-      # Use click 7
-      click = self.callPackage ../../../development/python2-modules/click/default.nix { };
-    };
-  };
-  inherit (py.pkgs) buildPythonApplication click pytestCheckHook;
-in
-
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "pur";
-  version = "5.4.2";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner = "alanhamlett";
     repo = "pip-update-requirements";
     rev = version;
-    sha256 = "sha256-coJO9AYm0Qx0arMf/e+pZFG/VxK6bnxxXRgw7x7V2hY=";
+    hash = "sha256-EcyDEXDgjicCRThXC+co/PwTjAxkRXVG1++JZtsSjZo=";
   };
 
   propagatedBuildInputs = [
-    click
+    python3.pkgs.click
   ];
 
   checkInputs = [
-    pytestCheckHook
+    python3.pkgs.pytestCheckHook
   ];
 
   pythonImportsCheck = [ "pur" ];
diff --git a/pkgs/development/tools/pydb/default.nix b/pkgs/development/tools/pydb/default.nix
deleted file mode 100644
index 5380bb6860853..0000000000000
--- a/pkgs/development/tools/pydb/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, stdenv, fetchurl, python2, emacs }:
-
-stdenv.mkDerivation rec {
-  pname = "pydb";
-  version = "1.26";
-
-  src = fetchurl {
-    url =  "mirror://sourceforge/sourceforge/bashdb/${pname}-${version}.tar.bz2";
-    sha256 = "1wlkz1hd5d4gkzhkjkzcm650c1lchj28hj36jx96mklglm41h4q1";
-  };
-
-  buildInputs = [ python2 emacs /* emacs is optional */ ];
-
-  preConfigure = ''
-    p="$(toPythonPath $out)"
-    configureFlags="$configureFlags --with-python=${python2.interpreter} --with-site-packages=$p"
-  '';
-
-  meta = {
-    description = "Python debugger with GDB-like commands and Emacs bindings";
-    homepage = "http://bashdb.sourceforge.net/pydb/";
-    license = lib.licenses.gpl3;
-    platforms = lib.platforms.all;
-  };
-}
diff --git a/pkgs/development/tools/quick-lint-js/default.nix b/pkgs/development/tools/quick-lint-js/default.nix
index 82a31ea52b102..43a7fa494ba47 100644
--- a/pkgs/development/tools/quick-lint-js/default.nix
+++ b/pkgs/development/tools/quick-lint-js/default.nix
@@ -1,19 +1,24 @@
-{ cmake, fetchFromGitHub, lib, ninja, stdenv }:
+{ cmake, fetchFromGitHub, lib, ninja, stdenv, testers, quick-lint-js }:
+
 
 stdenv.mkDerivation rec {
   pname = "quick-lint-js";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "quick-lint";
     repo = "quick-lint-js";
     rev = version;
-    sha256 = "1ay59pmprcswip6zzbqfy5g2rdv4lgmps8vrxay4l9w6xn9lg03v";
+    sha256 = "122z6wnmf5lk6pvwj5065470kvkbb8jqc32x0nw6103fnak5cyih";
   };
 
   nativeBuildInputs = [ cmake ninja ];
   doCheck = true;
 
+  passthru.tests = {
+    version = testers.testVersion { package = quick-lint-js; };
+  };
+
   meta = with lib; {
     description = "Find bugs in Javascript programs";
     homepage = "https://quick-lint-js.com";
diff --git a/pkgs/development/tools/quicktemplate/default.nix b/pkgs/development/tools/quicktemplate/default.nix
index 4fe51d3e04636..2086464d7b3ad 100644
--- a/pkgs/development/tools/quicktemplate/default.nix
+++ b/pkgs/development/tools/quicktemplate/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "quicktemplate";
-  version = "1.6.3";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "valyala";
     repo = "quicktemplate";
     rev = "v${version}";
-    sha256 = "mQhrQcKRDtcXha7FIwCIUwWfoPGIJ5YLbA4HdatIdn8=";
+    sha256 = "0xzsvhpllmzmyfg8sj1dpp02826j1plmyrdvqbwryzhf2ci33nqr";
   };
 
   vendorSha256 = null;
@@ -17,6 +17,7 @@ buildGoModule rec {
     homepage = "https://github.com/valyala/quicktemplate";
     description = "Fast, powerful, yet easy to use template engine for Go";
     license = licenses.mit;
-    maintainers = with maintainers; [ chiiruno ];
+    maintainers = with maintainers; [ Madouura ];
+    mainProgram = "qtc";
   };
 }
diff --git a/pkgs/development/tools/rbspy/default.nix b/pkgs/development/tools/rbspy/default.nix
new file mode 100644
index 0000000000000..32c10a1bf5d1b
--- /dev/null
+++ b/pkgs/development/tools/rbspy/default.nix
@@ -0,0 +1,25 @@
+{rustPlatform, fetchFromGitHub, lib}:
+rustPlatform.buildRustPackage rec {
+  pname = "rbspy";
+  version = "0.11.1";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-9BeQHwwnirK5Wquj6Tal8yCU/NXZGaPjXZe3cy5m98s=";
+  };
+
+  cargoSha256 = "sha256-DHdfv6210wAkL9vXxLr76ejFWU/eV/q3lmgsYa5Rn54=";
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://rbspy.github.io/";
+    description = ''
+      A Sampling CPU Profiler for Ruby.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ viraptor ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/reftools/default.nix b/pkgs/development/tools/reftools/default.nix
index a31108f338120..0e8371e4a0155 100644
--- a/pkgs/development/tools/reftools/default.nix
+++ b/pkgs/development/tools/reftools/default.nix
@@ -12,7 +12,7 @@ buildGoModule rec {
 
   doCheck = false;
 
-  excludedPackages = "\\(cmd/fillswitch/test-fixtures\\)";
+  excludedPackages = "cmd/fillswitch/test-fixtures";
 
   src = fetchFromGitHub {
     inherit rev;
diff --git a/pkgs/development/tools/regclient/default.nix b/pkgs/development/tools/regclient/default.nix
index f54e6ca26a87c..e046b5b0029fa 100644
--- a/pkgs/development/tools/regclient/default.nix
+++ b/pkgs/development/tools/regclient/default.nix
@@ -4,16 +4,16 @@ let bins = [ "regbot" "regctl" "regsync" ]; in
 
 buildGoModule rec {
   pname = "regclient";
-  version = "0.3.10";
+  version = "0.4.0";
   tag = "v${version}";
 
   src = fetchFromGitHub {
     owner = "regclient";
     repo = "regclient";
     rev = tag;
-    sha256 = "sha256-3nYVhKHNz0V0j6JlZ5Dm5TFWA2kmUhshNVUym/QWSyM=";
+    sha256 = "sha256-AaSl++/i00YAvmvaUSEwLLpItYACtmWEFTuUngl7rkI=";
   };
-  vendorSha256 = "sha256-rj4sQ8Ci2KMayJNXn+KVihOiZehk233l48Ps0yjOOE4=";
+  vendorSha256 = "sha256-qpZ3RsBOkWqLCDK11vBGkAZJBC7T8hmpmm4ccGeWBus=";
 
   outputs = [ "out" ] ++ bins;
 
diff --git a/pkgs/development/tools/richgo/default.nix b/pkgs/development/tools/richgo/default.nix
index 6cc063386ac7f..26393000cdd5b 100644
--- a/pkgs/development/tools/richgo/default.nix
+++ b/pkgs/development/tools/richgo/default.nix
@@ -13,10 +13,6 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-O63QEo0/+m9cYktMg4+RloLuUfAlCG0eGkxpHPFg/Cw=";
 
-  doCheck = false;
-
-  subPackages = [ "." ];
-
   meta = with lib; {
     description = "Enrich `go test` outputs with text decorations";
     homepage = "https://github.com/kyoh86/richgo";
diff --git a/pkgs/development/tools/ronn/Gemfile b/pkgs/development/tools/ronn/Gemfile
index 64f1df743abc2..0643ca6ddfdf9 100644
--- a/pkgs/development/tools/ronn/Gemfile
+++ b/pkgs/development/tools/ronn/Gemfile
@@ -1,3 +1,3 @@
 source "https://rubygems.org"
 
-gem "ronn"
+gem "ronn-ng"
diff --git a/pkgs/development/tools/ronn/Gemfile.lock b/pkgs/development/tools/ronn/Gemfile.lock
index ff71ebd7a01c2..a7f76ffd78764 100644
--- a/pkgs/development/tools/ronn/Gemfile.lock
+++ b/pkgs/development/tools/ronn/Gemfile.lock
@@ -1,19 +1,25 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    hpricot (0.8.6)
-    mustache (1.0.3)
-    rdiscount (2.2.0.1)
-    ronn (0.7.3)
-      hpricot (>= 0.8.2)
-      mustache (>= 0.7.0)
-      rdiscount (>= 1.5.8)
+    kramdown (2.3.2)
+      rexml
+    mini_portile2 (2.8.0)
+    mustache (0.99.8)
+    nokogiri (1.13.4)
+      mini_portile2 (~> 2.8.0)
+      racc (~> 1.4)
+    racc (1.6.0)
+    rexml (3.2.5)
+    ronn-ng (0.9.1)
+      kramdown (~> 2.1)
+      mustache (~> 0.7, >= 0.7.0)
+      nokogiri (~> 1.9, >= 1.9.0)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  ronn
+  ronn-ng
 
 BUNDLED WITH
-   2.1.4
+   2.3.9
diff --git a/pkgs/development/tools/ronn/default.nix b/pkgs/development/tools/ronn/default.nix
index 4d06db77a6924..c3f0d26318480 100644
--- a/pkgs/development/tools/ronn/default.nix
+++ b/pkgs/development/tools/ronn/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "ronn";
-  version = env.gems.ronn.version;
+  version = env.gems.ronn-ng.version;
 
   env = bundlerEnv {
     name = "ronn-gems";
@@ -11,12 +11,18 @@ stdenv.mkDerivation rec {
 
   dontUnpack = true;
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [
+    makeWrapper
+  ];
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/bin
     makeWrapper ${env}/bin/ronn $out/bin/ronn \
       --set PATH ${groff}/bin
+
+    runHook postInstall
   '';
 
   passthru.updateScript = bundlerUpdateScript "ronn";
@@ -25,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "markdown-based tool for building manpages";
-    homepage = "https://rtomayko.github.io/ronn/";
+    homepage = "https://github.com/apjanke/ronn-ng";
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm nicknovitski ];
     platforms = env.ruby.meta.platforms;
diff --git a/pkgs/development/tools/ronn/gemset.nix b/pkgs/development/tools/ronn/gemset.nix
index 534741a699381..04703a84a3615 100644
--- a/pkgs/development/tools/ronn/gemset.nix
+++ b/pkgs/development/tools/ronn/gemset.nix
@@ -1,34 +1,75 @@
 {
-  hpricot = {
+  kramdown = {
+    dependencies = ["rexml"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jn8x9ch79gqmnzgyz78kppavjh5lqx0y0r6frykga2b86rz9s6z";
+      sha256 = "0757lqaq593z8hzdv98nai73ag384dkk7jgj3mcq2r6ix7130ifb";
       type = "gem";
     };
-    version = "0.8.6";
+    version = "2.3.2";
+  };
+  mini_portile2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rapl1sfmfi3bfr68da4ca16yhc0pp93vjwkj7y3rdqrzy3b41hy";
+      type = "gem";
+    };
+    version = "2.8.0";
   };
   mustache = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g5hplm0k06vwxwqzwn1mq5bd02yp0h3rym4zwzw26aqi7drcsl2";
+      type = "gem";
+    };
+    version = "0.99.8";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2" "racc"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g43ii497cwdqhfnaxfl500bq5yfc5hfv5df1lvf6wcjnd708ihd";
+      type = "gem";
+    };
+    version = "1.13.4";
+  };
+  racc = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1v4pdvgvs8gw0zbh5sy3l308amlsjg8sdfrkml0g0m0wwj4x7naf";
+      sha256 = "0la56m0z26j3mfn1a9lf2l03qx1xifanndf9p3vx1azf6sqy7v9d";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "1.6.0";
   };
-  rdiscount = {
+  rexml = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1arvk3k06prxasq1djbj065ixar4zl171340g7wr1ww4gj9makx3";
+      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
       type = "gem";
     };
-    version = "2.2.0.1";
+    version = "3.2.5";
   };
-  ronn = {
+  ronn-ng = {
+    dependencies = ["kramdown" "mustache" "nokogiri"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07plsxxfx5bxdk72ii9za6km0ziqlq8jh3bicr4774dalga6zpw2";
+      sha256 = "1slxfg57cabmh98fw507z4ka6lwq1pvbrqwppflxw6700pi8ykfh";
       type = "gem";
     };
-    version = "0.7.3";
+    version = "0.9.1";
   };
 }
diff --git a/pkgs/development/tools/rover/default.nix b/pkgs/development/tools/rover/default.nix
index 7232089ee9979..5144ecb38e888 100644
--- a/pkgs/development/tools/rover/default.nix
+++ b/pkgs/development/tools/rover/default.nix
@@ -3,26 +3,20 @@
 , fetchFromGitHub
 , perl
 , rustPlatform
-, librusty_v8 ? callPackage ./librusty_v8.nix { }
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "rover";
-  version = "0.4.8";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "apollographql";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9o2bGa9vxN7EprKgsy9TI7AFmwjo1OT1pDyiLierTq0=";
+    sha256 = "sha256-wBHMND/xpm9o7pkWMUj9lEtEkzy3mX+E4Dt7qDn6auY=";
   };
 
-  cargoSha256 = "sha256-4oNuyZ1xNK2jP9QFEcthCjEQRyvFykd5N0j5KCXrzVY=";
-
-  # The v8 package will try to download a `librusty_v8.a` release at build time
-  # to our read-only filesystem. To avoid this we pre-download the file and
-  # export it via RUSTY_V8_ARCHIVE
-  RUSTY_V8_ARCHIVE = librusty_v8;
+  cargoSha256 = "sha256-n0R2MdAYGsOsYt4x1N1KdGvBZYTALyhSzCGW29bnFU4=";
 
   nativeBuildInputs = [
     perl
diff --git a/pkgs/development/tools/rover/librusty_v8.nix b/pkgs/development/tools/rover/librusty_v8.nix
deleted file mode 100644
index 3dcb1f95acdd3..0000000000000
--- a/pkgs/development/tools/rover/librusty_v8.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ rust, stdenv, fetchurl }:
-
-let
-  arch = rust.toRustTarget stdenv.hostPlatform;
-  fetch_librusty_v8 = args: fetchurl {
-    name = "librusty_v8-${args.version}";
-    url = "https://github.com/denoland/rusty_v8/releases/download/v${args.version}/librusty_v8_release_${arch}.a";
-    sha256 = args.shas.${stdenv.hostPlatform.system};
-    meta = { inherit (args) version; };
-  };
-in
-fetch_librusty_v8 {
-  version = "0.38.1";
-  shas = {
-    x86_64-linux = "sha256-vRkb5ZrIOYSKa84UbsJD+Oua0wve7f1Yf3kMg/kkYSY=";
-  };
-}
diff --git a/pkgs/development/tools/rover/schema/etag.id b/pkgs/development/tools/rover/schema/etag.id
index 369872c3115eb..a8b9f0cece3ef 100644
--- a/pkgs/development/tools/rover/schema/etag.id
+++ b/pkgs/development/tools/rover/schema/etag.id
@@ -1 +1 @@
-1bdcf8916afc3cea660add457724dddd70154904f4e360e15da27fa7d5c43cd0
+2694c7b893d44c9ad8f5d7161116deb9985a6bd05e8e0cdcd7379947430e6f89
diff --git a/pkgs/development/tools/rover/schema/schema.graphql b/pkgs/development/tools/rover/schema/schema.graphql
index 58198f7e181d5..b20b21a91e419 100644
--- a/pkgs/development/tools/rover/schema/schema.graphql
+++ b/pkgs/development/tools/rover/schema/schema.graphql
@@ -7,7 +7,7 @@ argument is used for bandwidth reduction, and should be the size of the image as
 application. Apollo's media server will downscale larger images to at least the requested size,
 but this will not happen for third-party media servers.""" avatarUrl(size:Int!=40):String billingInfo:BillingInfo companyUrl:String currentBillingMonth:BillingMonth currentPlan:BillingPlan!currentPlanV2:BillingPlanV2!currentSubscription:BillingSubscription currentSubscriptionV2:BillingSubscriptionV2 experimentalFeatures:AccountExperimentalFeatures!expiredTrialSubscription:BillingSubscription expiredTrialSubscriptionV2:BillingSubscriptionV2 graphIDAvailable(id:ID!):Boolean!hasBeenOnTrial:Boolean!hasBeenOnTrialV2:Boolean!"""Globally unique identifier, which isn't guaranteed stable (can be changed by administrators).""" id:ID!"""Internal immutable identifier for the account. Only visible to Apollo admins (because it really
 shouldn't be used in normal client apps).""" internalID:ID!invitations(includeAccepted:Boolean!=false):[AccountInvitation!]invoices:[Invoice!]invoicesV2:[InvoiceV2!]!isOnExpiredTrial:Boolean!isOnTrial:Boolean!legacyIsOnTrial:Boolean!memberships:[AccountMembership!]"""Name of the organization, which can change over time and isn't unique.""" name:String!provisionedAt:Timestamp recurlyEmail:String """Returns a different registry related stats pertaining to this account.""" registryStatsWindow(from:Timestamp!resolution:Resolution to:Timestamp):RegistryStatsWindow requests(from:Timestamp!to:Timestamp!):Long requestsInCurrentBillingPeriod:Long roles:AccountRoles """How many seats would be included in your next bill, as best estimated today""" seatCountForNextBill:Int seats:Seats secondaryIDs:[ID!]!"""Graphs belonging to this organization.""" services(includeDeleted:Boolean):[Service!]!"""If non-null, this organization tracks its members through an upstream, eg PingOne;
-invitations are not possible on SSO-synchronized account.""" sso:OrganizationSSO state:AccountState """A list of reusable invitations for the organization.""" staticInvitations:[OrganizationInviteLink!]stats(from:Timestamp!"""Granularity of buckets. Defaults to the entire range (aggregate all data into a single durationBucket) when null.""" resolution:Resolution """Defaults to the current time when null.""" to:Timestamp):AccountStatsWindow!@deprecated(reason:"use Account.statsWindow instead")statsWindow(from:Timestamp!"""Granularity of buckets. Defaults to the entire range (aggregate all data into a single durationBucket) when null.""" resolution:Resolution """Defaults to the current time when null.""" to:Timestamp):AccountStatsWindow subscriptions:[BillingSubscription!]subscriptionsV2:[BillingSubscriptionV2!]!"""Gets a ticket for this org, by id""" ticket(id:ID!):ZendeskTicket """List of Zendesk tickets submitted for this org""" tickets:[ZendeskTicket!]}"""Columns of AccountBillingUsageStats.""" enum AccountBillingUsageStatsColumn{OPERATION_COUNT OPERATION_COUNT_PROVIDED_EXPLICITLY SCHEMA_TAG SERVICE_ID TIMESTAMP}type AccountBillingUsageStatsDimensions{operationCountProvidedExplicitly:String schemaTag:String serviceId:ID}"""Filter for data in AccountBillingUsageStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountBillingUsageStatsFilter{and:[AccountBillingUsageStatsFilter!]in:AccountBillingUsageStatsFilterIn not:AccountBillingUsageStatsFilter """Selects rows whose operationCountProvidedExplicitly dimension equals the given value if not null. To query for the null value, use {in: {operationCountProvidedExplicitly: [null]}} instead.""" operationCountProvidedExplicitly:String or:[AccountBillingUsageStatsFilter!]"""Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountBillingUsageStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountBillingUsageStatsFilterIn{"""Selects rows whose operationCountProvidedExplicitly dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationCountProvidedExplicitly:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountBillingUsageStatsMetrics{operationCount:Long!}input AccountBillingUsageStatsOrderBySpec{column:AccountBillingUsageStatsColumn!direction:Ordering!}type AccountBillingUsageStatsRecord{"""Dimensions of AccountBillingUsageStats that can be grouped by.""" groupBy:AccountBillingUsageStatsDimensions!"""Metrics of AccountBillingUsageStats that can be aggregated over.""" metrics:AccountBillingUsageStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type AccountChecksStatsMetrics{totalFailedChecks:Long!totalSuccessfulChecks:Long!}type AccountChecksStatsRecord{id:ID!metrics:AccountChecksStatsMetrics!timestamp:Timestamp!}"""Columns of AccountEdgeServerInfos.""" enum AccountEdgeServerInfosColumn{BOOT_ID EXECUTABLE_SCHEMA_ID LIBRARY_VERSION PLATFORM RUNTIME_VERSION SCHEMA_TAG SERVER_ID SERVICE_ID TIMESTAMP USER_VERSION}type AccountEdgeServerInfosDimensions{bootId:ID executableSchemaId:ID libraryVersion:String platform:String runtimeVersion:String schemaTag:String serverId:ID serviceId:ID userVersion:String}"""Filter for data in AccountEdgeServerInfos. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountEdgeServerInfosFilter{and:[AccountEdgeServerInfosFilter!]"""Selects rows whose bootId dimension equals the given value if not null. To query for the null value, use {in: {bootId: [null]}} instead.""" bootId:ID """Selects rows whose executableSchemaId dimension equals the given value if not null. To query for the null value, use {in: {executableSchemaId: [null]}} instead.""" executableSchemaId:ID in:AccountEdgeServerInfosFilterIn """Selects rows whose libraryVersion dimension equals the given value if not null. To query for the null value, use {in: {libraryVersion: [null]}} instead.""" libraryVersion:String not:AccountEdgeServerInfosFilter or:[AccountEdgeServerInfosFilter!]"""Selects rows whose platform dimension equals the given value if not null. To query for the null value, use {in: {platform: [null]}} instead.""" platform:String """Selects rows whose runtimeVersion dimension equals the given value if not null. To query for the null value, use {in: {runtimeVersion: [null]}} instead.""" runtimeVersion:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serverId dimension equals the given value if not null. To query for the null value, use {in: {serverId: [null]}} instead.""" serverId:ID """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID """Selects rows whose userVersion dimension equals the given value if not null. To query for the null value, use {in: {userVersion: [null]}} instead.""" userVersion:String}"""Filter for data in AccountEdgeServerInfos. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountEdgeServerInfosFilterIn{"""Selects rows whose bootId dimension is in the given list. A null value in the list means a row with null for that dimension.""" bootId:[ID]"""Selects rows whose executableSchemaId dimension is in the given list. A null value in the list means a row with null for that dimension.""" executableSchemaId:[ID]"""Selects rows whose libraryVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" libraryVersion:[String]"""Selects rows whose platform dimension is in the given list. A null value in the list means a row with null for that dimension.""" platform:[String]"""Selects rows whose runtimeVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" runtimeVersion:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serverId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serverId:[ID]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]"""Selects rows whose userVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" userVersion:[String]}input AccountEdgeServerInfosOrderBySpec{column:AccountEdgeServerInfosColumn!direction:Ordering!}type AccountEdgeServerInfosRecord{"""Dimensions of AccountEdgeServerInfos that can be grouped by.""" groupBy:AccountEdgeServerInfosDimensions!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of AccountErrorStats.""" enum AccountErrorStatsColumn{CLIENT_NAME CLIENT_VERSION ERRORS_COUNT PATH QUERY_ID QUERY_NAME REQUESTS_WITH_ERRORS_COUNT SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP}type AccountErrorStatsDimensions{clientName:String clientVersion:String path:String queryId:ID queryName:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in AccountErrorStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountErrorStatsFilter{and:[AccountErrorStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String in:AccountErrorStatsFilterIn not:AccountErrorStatsFilter or:[AccountErrorStatsFilter!]"""Selects rows whose path dimension equals the given value if not null. To query for the null value, use {in: {path: [null]}} instead.""" path:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountErrorStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountErrorStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose path dimension is in the given list. A null value in the list means a row with null for that dimension.""" path:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountErrorStatsMetrics{errorsCount:Long!requestsWithErrorsCount:Long!}input AccountErrorStatsOrderBySpec{column:AccountErrorStatsColumn!direction:Ordering!}type AccountErrorStatsRecord{"""Dimensions of AccountErrorStats that can be grouped by.""" groupBy:AccountErrorStatsDimensions!"""Metrics of AccountErrorStats that can be aggregated over.""" metrics:AccountErrorStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type AccountExperimentalFeatures{auditLogs:Boolean!championDashboard:Boolean!derivedLaunches:Boolean!federation2Preview:Boolean!preRequestPreview:Boolean!publicVariants:Boolean!variantHomepage:Boolean!webhooksPreview:Boolean!}"""Columns of AccountFieldLatencies.""" enum AccountFieldLatenciesColumn{FIELD_HISTOGRAM FIELD_NAME PARENT_TYPE SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP}type AccountFieldLatenciesDimensions{field:String fieldName:String parentType:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in AccountFieldLatencies. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountFieldLatenciesFilter{and:[AccountFieldLatenciesFilter!]"""Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:AccountFieldLatenciesFilterIn not:AccountFieldLatenciesFilter or:[AccountFieldLatenciesFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountFieldLatencies. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountFieldLatenciesFilterIn{"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountFieldLatenciesMetrics{fieldHistogram:DurationHistogram!}input AccountFieldLatenciesOrderBySpec{column:AccountFieldLatenciesColumn!direction:Ordering!}type AccountFieldLatenciesRecord{"""Dimensions of AccountFieldLatencies that can be grouped by.""" groupBy:AccountFieldLatenciesDimensions!"""Metrics of AccountFieldLatencies that can be aggregated over.""" metrics:AccountFieldLatenciesMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of AccountFieldUsage.""" enum AccountFieldUsageColumn{CLIENT_NAME CLIENT_VERSION ESTIMATED_EXECUTION_COUNT EXECUTION_COUNT FIELD_NAME PARENT_TYPE QUERY_ID QUERY_NAME REFERENCING_OPERATION_COUNT SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP}type AccountFieldUsageDimensions{clientName:String clientVersion:String fieldName:String parentType:String queryId:ID queryName:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in AccountFieldUsage. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountFieldUsageFilter{and:[AccountFieldUsageFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:AccountFieldUsageFilterIn not:AccountFieldUsageFilter or:[AccountFieldUsageFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountFieldUsage. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountFieldUsageFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountFieldUsageMetrics{estimatedExecutionCount:Long!executionCount:Long!referencingOperationCount:Long!}input AccountFieldUsageOrderBySpec{column:AccountFieldUsageColumn!direction:Ordering!}type AccountFieldUsageRecord{"""Dimensions of AccountFieldUsage that can be grouped by.""" groupBy:AccountFieldUsageDimensions!"""Metrics of AccountFieldUsage that can be aggregated over.""" metrics:AccountFieldUsageMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type AccountInvitation{"""An accepted invitation cannot be used anymore""" acceptedAt:Timestamp """Who accepted the invitation""" acceptedBy:User """Time the invitation was created""" createdAt:Timestamp!"""Who created the invitation""" createdBy:User email:String!id:ID!"""Last time we sent an email for the invitation""" lastSentAt:Timestamp """Access role for the invitee""" role:UserPermission!}type AccountMembership{account:Account!createdAt:Timestamp!"""If this membership is a free seat (based on role)""" free:Boolean permission:UserPermission!user:User!}type AccountMutation{auditExport(id:String!):AuditLogExportMutation """Cancel a pending change from an annual team subscription to a monthly team subscription when the current period expires.""" cancelConvertAnnualTeamSubscriptionToMonthlyAtNextPeriod:Account """Cancel account subscriptions, subscriptions will remain active until the end of the paid period""" cancelSubscriptions:Account """Changes an annual team subscription to a monthly team subscription when the current period expires.""" convertAnnualTeamSubscriptionToMonthlyAtNextPeriod:Account """Changes a monthly team subscription to an annual team subscription.""" convertMonthlyTeamSubscriptionToAnnual:Account createStaticInvitation(role:UserPermission!):OrganizationInviteLink """Delete the account's avatar. Requires Account.canUpdateAvatar to be true.""" deleteAvatar:AvatarDeleteError """Acknowledge that a trial has expired and return to community""" dismissExpiredTrial:Account """Apollo admins only: extend an ongoing trial""" extendTrial(to:Timestamp!):Account """Hard delete an account and all associated services""" hardDelete:Void """Send an invitation to join the account by E-mail""" invite(email:String!role:UserPermission):AccountInvitation """Reactivate a canceled current subscription""" reactivateCurrentSubscription:Account """Refresh billing information from third-party billing service""" refreshBilling:Void """Delete an invitation""" removeInvitation(id:ID):Void """Remove a member of the account""" removeMember(id:ID!):Account requestAuditExport(actors:[ActorInput!]from:Timestamp!graphIds:[String!]to:Timestamp!):Account """Send a new E-mail for an existing invitation""" resendInvitation(id:ID):AccountInvitation revokeStaticInvitation(token:String!):OrganizationInviteLink """Apollo admins only: set the billing plan to an arbitrary plan""" setPlan(id:ID!):Void """Start a new team subscription with the given billing period""" startTeamSubscription(billingPeriod:BillingPeriod!):Account """Start a team trial""" startTrial:Account """This is called by the form shown to users after they cancel their team subscription.""" submitTeamCancellationFeedback(feedback:String!):Void """Apollo admins only: terminate any ongoing subscriptions in the account, without refunds""" terminateSubscriptions:Account """Update the billing address for a Recurly token""" updateBillingAddress(billingAddress:BillingAddressInput!):Account """Update the billing information from a Recurly token""" updateBillingInfo(token:String!):Void updateCompanyUrl(companyUrl:String):Account """Set the E-mail address of the account, used notably for billing""" updateEmail(email:String!):Void """Update the account ID""" updateID(id:ID!):Account """Update the company name""" updateName(name:String!):Void """Apollo admins only: enable or disable an account for PingOne SSO login""" updatePingOneSSOIDPID(idpid:String):Account """Updates the role assigned to new SSO users.""" updateSSODefaultRole(role:UserPermission!):OrganizationSSO """A (currently) internal to Apollo mutation to update a user's role within an organization""" updateUserPermission(permission:UserPermission!userID:ID!):User}"""Columns of AccountOperationCheckStats.""" enum AccountOperationCheckStatsColumn{CACHED_REQUESTS_COUNT CLIENT_NAME CLIENT_VERSION QUERY_ID QUERY_NAME SCHEMA_TAG SERVICE_ID TIMESTAMP UNCACHED_REQUESTS_COUNT}type AccountOperationCheckStatsDimensions{clientName:String clientVersion:String queryId:ID queryName:String schemaTag:String serviceId:ID}"""Filter for data in AccountOperationCheckStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountOperationCheckStatsFilter{and:[AccountOperationCheckStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String in:AccountOperationCheckStatsFilterIn not:AccountOperationCheckStatsFilter or:[AccountOperationCheckStatsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountOperationCheckStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountOperationCheckStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountOperationCheckStatsMetrics{cachedRequestsCount:Long!uncachedRequestsCount:Long!}input AccountOperationCheckStatsOrderBySpec{column:AccountOperationCheckStatsColumn!direction:Ordering!}type AccountOperationCheckStatsRecord{"""Dimensions of AccountOperationCheckStats that can be grouped by.""" groupBy:AccountOperationCheckStatsDimensions!"""Metrics of AccountOperationCheckStats that can be aggregated over.""" metrics:AccountOperationCheckStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type AccountPublishesStatsMetrics{totalPublishes:Long!}type AccountPublishesStatsRecord{id:ID!metrics:AccountPublishesStatsMetrics!timestamp:Timestamp!}"""Columns of AccountQueryStats.""" enum AccountQueryStatsColumn{CACHED_HISTOGRAM CACHED_REQUESTS_COUNT CACHE_TTL_HISTOGRAM CLIENT_NAME CLIENT_VERSION FORBIDDEN_OPERATION_COUNT FROM_ENGINEPROXY QUERY_ID QUERY_NAME REGISTERED_OPERATION_COUNT REQUESTS_WITH_ERRORS_COUNT SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP UNCACHED_HISTOGRAM UNCACHED_REQUESTS_COUNT}type AccountQueryStatsDimensions{clientName:String clientVersion:String fromEngineproxy:String queryId:ID queryName:String querySignature:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in AccountQueryStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountQueryStatsFilter{and:[AccountQueryStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose fromEngineproxy dimension equals the given value if not null. To query for the null value, use {in: {fromEngineproxy: [null]}} instead.""" fromEngineproxy:String in:AccountQueryStatsFilterIn not:AccountQueryStatsFilter or:[AccountQueryStatsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountQueryStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountQueryStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose fromEngineproxy dimension is in the given list. A null value in the list means a row with null for that dimension.""" fromEngineproxy:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountQueryStatsMetrics{cacheTtlHistogram:DurationHistogram!cachedHistogram:DurationHistogram!cachedRequestsCount:Long!forbiddenOperationCount:Long!registeredOperationCount:Long!requestsWithErrorsCount:Long!totalLatencyHistogram:DurationHistogram!totalRequestCount:Long!uncachedHistogram:DurationHistogram!uncachedRequestsCount:Long!}input AccountQueryStatsOrderBySpec{column:AccountQueryStatsColumn!direction:Ordering!}type AccountQueryStatsRecord{"""Dimensions of AccountQueryStats that can be grouped by.""" groupBy:AccountQueryStatsDimensions!"""Metrics of AccountQueryStats that can be aggregated over.""" metrics:AccountQueryStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type AccountRoles{canAudit:Boolean!canCreateDevGraph:Boolean!canCreateService:Boolean!canDelete:Boolean!canDownloadInvoice:Boolean!@deprecated(reason:"Use canQueryBillingInfo instead")canManageMembers:Boolean!canQuery:Boolean!canQueryAudit:Boolean!canQueryBillingInfo:Boolean!canQueryInvoices:Boolean!@deprecated(reason:"Use canQueryBillingInfo instead")canQueryMembers:Boolean!canQueryStats:Boolean!canReadTickets:Boolean!canRemoveMembers:Boolean!canSetConstrainedPlan:Boolean!canUpdateBillingInfo:Boolean!canUpdateMetadata:Boolean!}enum AccountState{ACTIVE CLOSED UNKNOWN UNPROVISIONED}"""A time window with a specified granularity over a given account.""" type AccountStatsWindow{billingUsageStats("""Filter to select what rows to return.""" filter:AccountBillingUsageStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountBillingUsageStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountBillingUsageStatsOrderBySpec!]):[AccountBillingUsageStatsRecord!]!edgeServerInfos("""Filter to select what rows to return.""" filter:AccountEdgeServerInfosFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountEdgeServerInfos by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountEdgeServerInfosOrderBySpec!]):[AccountEdgeServerInfosRecord!]!errorStats("""Filter to select what rows to return.""" filter:AccountErrorStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountErrorStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountErrorStatsOrderBySpec!]):[AccountErrorStatsRecord!]!fieldLatencies("""Filter to select what rows to return.""" filter:AccountFieldLatenciesFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountFieldLatencies by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountFieldLatenciesOrderBySpec!]):[AccountFieldLatenciesRecord!]!fieldUsage("""Filter to select what rows to return.""" filter:AccountFieldUsageFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountFieldUsage by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountFieldUsageOrderBySpec!]):[AccountFieldUsageRecord!]!operationCheckStats("""Filter to select what rows to return.""" filter:AccountOperationCheckStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountOperationCheckStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountOperationCheckStatsOrderBySpec!]):[AccountOperationCheckStatsRecord!]!queryStats("""Filter to select what rows to return.""" filter:AccountQueryStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountQueryStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountQueryStatsOrderBySpec!]):[AccountQueryStatsRecord!]!"""From field rounded down to the nearest resolution.""" roundedDownFrom:Timestamp!"""To field rounded up to the nearest resolution.""" roundedUpTo:Timestamp!tracePathErrorsRefs("""Filter to select what rows to return.""" filter:AccountTracePathErrorsRefsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountTracePathErrorsRefs by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountTracePathErrorsRefsOrderBySpec!]):[AccountTracePathErrorsRefsRecord!]!traceRefs("""Filter to select what rows to return.""" filter:AccountTraceRefsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountTraceRefs by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountTraceRefsOrderBySpec!]):[AccountTraceRefsRecord!]!}"""Columns of AccountTracePathErrorsRefs.""" enum AccountTracePathErrorsRefsColumn{CLIENT_NAME CLIENT_VERSION DURATION_BUCKET ERRORS_COUNT_IN_PATH ERRORS_COUNT_IN_TRACE ERROR_MESSAGE PATH QUERY_ID QUERY_NAME SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP TRACE_HTTP_STATUS_CODE TRACE_ID TRACE_SIZE_BYTES TRACE_STARTS_AT}type AccountTracePathErrorsRefsDimensions{clientName:String clientVersion:String durationBucket:Int errorMessage:String path:String queryId:ID queryName:String schemaHash:String schemaTag:String serviceId:ID traceHttpStatusCode:Int traceId:ID traceStartsAt:Timestamp}"""Filter for data in AccountTracePathErrorsRefs. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountTracePathErrorsRefsFilter{and:[AccountTracePathErrorsRefsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose durationBucket dimension equals the given value if not null. To query for the null value, use {in: {durationBucket: [null]}} instead.""" durationBucket:Int """Selects rows whose errorMessage dimension equals the given value if not null. To query for the null value, use {in: {errorMessage: [null]}} instead.""" errorMessage:String in:AccountTracePathErrorsRefsFilterIn not:AccountTracePathErrorsRefsFilter or:[AccountTracePathErrorsRefsFilter!]"""Selects rows whose path dimension equals the given value if not null. To query for the null value, use {in: {path: [null]}} instead.""" path:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID """Selects rows whose traceHttpStatusCode dimension equals the given value if not null. To query for the null value, use {in: {traceHttpStatusCode: [null]}} instead.""" traceHttpStatusCode:Int """Selects rows whose traceId dimension equals the given value if not null. To query for the null value, use {in: {traceId: [null]}} instead.""" traceId:ID}"""Filter for data in AccountTracePathErrorsRefs. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountTracePathErrorsRefsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose durationBucket dimension is in the given list. A null value in the list means a row with null for that dimension.""" durationBucket:[Int]"""Selects rows whose errorMessage dimension is in the given list. A null value in the list means a row with null for that dimension.""" errorMessage:[String]"""Selects rows whose path dimension is in the given list. A null value in the list means a row with null for that dimension.""" path:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]"""Selects rows whose traceHttpStatusCode dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceHttpStatusCode:[Int]"""Selects rows whose traceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceId:[ID]}type AccountTracePathErrorsRefsMetrics{errorsCountInPath:Long!errorsCountInTrace:Long!traceSizeBytes:Long!}input AccountTracePathErrorsRefsOrderBySpec{column:AccountTracePathErrorsRefsColumn!direction:Ordering!}type AccountTracePathErrorsRefsRecord{"""Dimensions of AccountTracePathErrorsRefs that can be grouped by.""" groupBy:AccountTracePathErrorsRefsDimensions!"""Metrics of AccountTracePathErrorsRefs that can be aggregated over.""" metrics:AccountTracePathErrorsRefsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of AccountTraceRefs.""" enum AccountTraceRefsColumn{CLIENT_NAME CLIENT_VERSION DURATION_BUCKET DURATION_NS QUERY_ID QUERY_NAME SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP TRACE_ID TRACE_SIZE_BYTES}type AccountTraceRefsDimensions{clientName:String clientVersion:String durationBucket:Int queryId:ID queryName:String querySignature:String schemaHash:String schemaTag:String serviceId:ID traceId:ID}"""Filter for data in AccountTraceRefs. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountTraceRefsFilter{and:[AccountTraceRefsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose durationBucket dimension equals the given value if not null. To query for the null value, use {in: {durationBucket: [null]}} instead.""" durationBucket:Int in:AccountTraceRefsFilterIn not:AccountTraceRefsFilter or:[AccountTraceRefsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID """Selects rows whose traceId dimension equals the given value if not null. To query for the null value, use {in: {traceId: [null]}} instead.""" traceId:ID}"""Filter for data in AccountTraceRefs. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountTraceRefsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose durationBucket dimension is in the given list. A null value in the list means a row with null for that dimension.""" durationBucket:[Int]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]"""Selects rows whose traceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceId:[ID]}type AccountTraceRefsMetrics{durationNs:Long!traceSizeBytes:Long!}input AccountTraceRefsOrderBySpec{column:AccountTraceRefsColumn!direction:Ordering!}type AccountTraceRefsRecord{"""Dimensions of AccountTraceRefs that can be grouped by.""" groupBy:AccountTraceRefsDimensions!"""Metrics of AccountTraceRefs that can be aggregated over.""" metrics:AccountTraceRefsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""An actor (view of Identity) that performed an action within Studio.""" type Actor{actorId:ID!type:ActorType!}input ActorInput{actorId:ID!type:ActorType!}enum ActorType{ANONYMOUS_USER BACKFILL CRON GRAPH INTERNAL_IDENTITY SYNCHRONIZATION SYSTEM USER}union AddOperationCollectionEntryResult=OperationCollectionEntry|PermissionError|ValidationError union AddOperationCollectionToVariantResult=GraphVariant|InvalidTarget|PermissionError|ValidationError type AffectedClient{"""ID, often the name, of the client set by the user and reported alongside metrics""" clientReferenceId:ID@deprecated(reason:"Unsupported.")"""version of the client set by the user and reported alongside metrics""" clientVersion:String@deprecated(reason:"Unsupported.")}type AffectedQuery{"""If the operation would be approved if the check ran again. Returns null if queried from SchemaDiff.changes.affectedQueries.alreadyApproved""" alreadyApproved:Boolean """If the operation would be ignored if the check ran again""" alreadyIgnored:Boolean """List of changes affecting this query. Returns null if queried from SchemaDiff.changes.affectedQueries.changes""" changes:[ChangeOnOperation!]"""Name to display to the user for the operation""" displayName:String id:ID!"""Determines if this query validates against the proposed schema""" isValid:Boolean """Whether this operation was ignored and its severity was downgraded for that reason""" markedAsIgnored:Boolean """Whether the changes were marked as safe and its severity was downgraded for that reason""" markedAsSafe:Boolean """Name provided for the operation, which can be empty string if it is an anonymous operation""" name:String """First 128 characters of query signature for display""" signature:String}interface ApiKey{id:ID!keyName:String token:String!}type ApiKeyProvision{apiKey:ApiKey!created:Boolean!}type AuditLogExport{actors:[Identity!]bigqueryTriggeredAt:Timestamp completedAt:Timestamp createdAt:Timestamp!exportedFiles:[String!]from:Timestamp!graphs:[Service!]id:ID!requester:User status:AuditStatus!to:Timestamp!}type AuditLogExportMutation{cancel:Account delete:Account}enum AuditStatus{CANCELLED COMPLETED EXPIRED FAILED IN_PROGRESS QUEUED}type AvatarDeleteError{clientMessage:String!code:AvatarDeleteErrorCode!serverMessage:String!}enum AvatarDeleteErrorCode{SSO_USERS_CANNOT_DELETE_SELF_AVATAR}type AvatarUploadError{clientMessage:String!code:AvatarUploadErrorCode!serverMessage:String!}enum AvatarUploadErrorCode{SSO_USERS_CANNOT_UPLOAD_SELF_AVATAR}union AvatarUploadResult=AvatarUploadError|MediaUploadInfo type BillingAddress{address1:String address2:String city:String country:String state:String zip:String}"""Billing address inpnut""" input BillingAddressInput{address1:String!address2:String city:String!country:String!state:String!zip:String!}type BillingInfo{address:BillingAddress!cardType:String firstName:String lastFour:Int lastName:String month:Int vatNumber:String year:Int}enum BillingModel{REQUEST_BASED SEAT_BASED}type BillingMonth{end:Timestamp!requests:Long!start:Timestamp!}enum BillingPeriod{MONTHLY QUARTERLY SEMI_ANNUALLY YEARLY}type BillingPlan{addons:[BillingPlanAddon!]!billingModel:BillingModel!billingPeriod:BillingPeriod capabilities:BillingPlanCapabilities!description:String id:ID!isTrial:Boolean!kind:BillingPlanKind!name:String!"""The price of every seat""" pricePerSeatInUsdCents:Int """The price of subscribing to this plan with a quantity of 1 (currently always the case)""" pricePerUnitInUsdCents:Int!"""Whether the plan is accessible by all users in QueryRoot.allPlans, QueryRoot.plan, or AccountMutation.setPlan""" public:Boolean!tier:BillingPlanTier!}type BillingPlanAddon{id:ID!pricePerUnitInUsdCents:Int!}type BillingPlanAddonV2{id:ID!pricePerUnitInUsdCents:Int!}type BillingPlanCapabilities{clients:Boolean!contracts:Boolean!datadog:Boolean!errors:Boolean!federation:Boolean!launches:Boolean!maxAuditInDays:Int!maxRangeInDays:Int maxRequestsPerMonth:Long metrics:Boolean!notifications:Boolean!operationRegistry:Boolean!ranges:[String!]!schemaValidation:Boolean!traces:Boolean!userRoles:Boolean!webhooks:Boolean!}enum BillingPlanKind{COMMUNITY ENTERPRISE_INTERNAL ENTERPRISE_PAID ENTERPRISE_PILOT TEAM_PAID TEAM_TRIAL}enum BillingPlanKindV2{COMMUNITY ENTERPRISE_INTERNAL ENTERPRISE_PAID ENTERPRISE_PILOT TEAM_PAID TEAM_TRIAL UNKNOWN}enum BillingPlanTier{COMMUNITY ENTERPRISE TEAM}enum BillingPlanTierV2{COMMUNITY ENTERPRISE TEAM UNKNOWN}type BillingPlanV2{addons:[BillingPlanAddonV2!]!billingModel:BillingModel!billingPeriod:BillingPeriod clients:Boolean!contracts:Boolean!datadog:Boolean!description:String errors:Boolean!federation:Boolean!id:ID!isTrial:Boolean!kind:BillingPlanKindV2!launches:Boolean!maxAuditInDays:Int!maxRangeInDays:Int maxRequestsPerMonth:Long metrics:Boolean!name:String!notifications:Boolean!operationRegistry:Boolean!"""The price of every seat""" pricePerSeatInUsdCents:Int """The price of subscribing to this plan with a quantity of 1 (currently always the case)""" pricePerUnitInUsdCents:Int!"""Whether the plan is accessible by all users in QueryRoot.allPlans, QueryRoot.plan, or AccountMutation.setPlan""" public:Boolean!ranges:[String!]!schemaValidation:Boolean!tier:BillingPlanTierV2!traces:Boolean!userRoles:Boolean!webhooks:Boolean!}type BillingSubscription{activatedAt:Timestamp!addons:[BillingSubscriptionAddon!]!autoRenew:Boolean!"""The price of the subscription when ignoring add-ons (such as seats), ie quantity * pricePerUnitInUsdCents""" basePriceInUsdCents:Long!canceledAt:Timestamp currentPeriodEndsAt:Timestamp!currentPeriodStartedAt:Timestamp!expiresAt:Timestamp plan:BillingPlan!"""The price of every seat""" pricePerSeatInUsdCents:Int """The price of every unit in the subscription (hence multiplied by quantity to get to the basePriceInUsdCents)""" pricePerUnitInUsdCents:Int!quantity:Int!"""Total price of the subscription when it next renews, including add-ons (such as seats)""" renewalTotalPriceInUsdCents:Long!state:SubscriptionState!"""Total price of the subscription, including add-ons (such as seats)""" totalPriceInUsdCents:Long!"""When this subscription's trial period expires (if it is a trial). Not the same as the
+invitations are not possible on SSO-synchronized account.""" sso:OrganizationSSO state:AccountState """A list of reusable invitations for the organization.""" staticInvitations:[OrganizationInviteLink!]stats(from:Timestamp!"""Granularity of buckets. Defaults to the entire range (aggregate all data into a single durationBucket) when null.""" resolution:Resolution """Defaults to the current time when null.""" to:Timestamp):AccountStatsWindow!@deprecated(reason:"use Account.statsWindow instead")statsWindow(from:Timestamp!"""Granularity of buckets. Defaults to the entire range (aggregate all data into a single durationBucket) when null.""" resolution:Resolution """Defaults to the current time when null.""" to:Timestamp):AccountStatsWindow subscriptions:[BillingSubscription!]subscriptionsV2:[BillingSubscriptionV2!]!"""Gets a ticket for this org, by id""" ticket(id:ID!):ZendeskTicket """List of Zendesk tickets submitted for this org""" tickets:[ZendeskTicket!]}"""Columns of AccountBillingUsageStats.""" enum AccountBillingUsageStatsColumn{OPERATION_COUNT OPERATION_COUNT_PROVIDED_EXPLICITLY SCHEMA_TAG SERVICE_ID TIMESTAMP}type AccountBillingUsageStatsDimensions{operationCountProvidedExplicitly:String schemaTag:String serviceId:ID}"""Filter for data in AccountBillingUsageStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountBillingUsageStatsFilter{and:[AccountBillingUsageStatsFilter!]in:AccountBillingUsageStatsFilterIn not:AccountBillingUsageStatsFilter """Selects rows whose operationCountProvidedExplicitly dimension equals the given value if not null. To query for the null value, use {in: {operationCountProvidedExplicitly: [null]}} instead.""" operationCountProvidedExplicitly:String or:[AccountBillingUsageStatsFilter!]"""Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountBillingUsageStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountBillingUsageStatsFilterIn{"""Selects rows whose operationCountProvidedExplicitly dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationCountProvidedExplicitly:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountBillingUsageStatsMetrics{operationCount:Long!}input AccountBillingUsageStatsOrderBySpec{column:AccountBillingUsageStatsColumn!direction:Ordering!}type AccountBillingUsageStatsRecord{"""Dimensions of AccountBillingUsageStats that can be grouped by.""" groupBy:AccountBillingUsageStatsDimensions!"""Metrics of AccountBillingUsageStats that can be aggregated over.""" metrics:AccountBillingUsageStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type AccountChecksStatsMetrics{totalFailedChecks:Long!totalSuccessfulChecks:Long!}type AccountChecksStatsRecord{id:ID!metrics:AccountChecksStatsMetrics!timestamp:Timestamp!}"""Columns of AccountEdgeServerInfos.""" enum AccountEdgeServerInfosColumn{BOOT_ID EXECUTABLE_SCHEMA_ID LIBRARY_VERSION PLATFORM RUNTIME_VERSION SCHEMA_TAG SERVER_ID SERVICE_ID TIMESTAMP USER_VERSION}type AccountEdgeServerInfosDimensions{bootId:ID executableSchemaId:ID libraryVersion:String platform:String runtimeVersion:String schemaTag:String serverId:ID serviceId:ID userVersion:String}"""Filter for data in AccountEdgeServerInfos. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountEdgeServerInfosFilter{and:[AccountEdgeServerInfosFilter!]"""Selects rows whose bootId dimension equals the given value if not null. To query for the null value, use {in: {bootId: [null]}} instead.""" bootId:ID """Selects rows whose executableSchemaId dimension equals the given value if not null. To query for the null value, use {in: {executableSchemaId: [null]}} instead.""" executableSchemaId:ID in:AccountEdgeServerInfosFilterIn """Selects rows whose libraryVersion dimension equals the given value if not null. To query for the null value, use {in: {libraryVersion: [null]}} instead.""" libraryVersion:String not:AccountEdgeServerInfosFilter or:[AccountEdgeServerInfosFilter!]"""Selects rows whose platform dimension equals the given value if not null. To query for the null value, use {in: {platform: [null]}} instead.""" platform:String """Selects rows whose runtimeVersion dimension equals the given value if not null. To query for the null value, use {in: {runtimeVersion: [null]}} instead.""" runtimeVersion:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serverId dimension equals the given value if not null. To query for the null value, use {in: {serverId: [null]}} instead.""" serverId:ID """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID """Selects rows whose userVersion dimension equals the given value if not null. To query for the null value, use {in: {userVersion: [null]}} instead.""" userVersion:String}"""Filter for data in AccountEdgeServerInfos. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountEdgeServerInfosFilterIn{"""Selects rows whose bootId dimension is in the given list. A null value in the list means a row with null for that dimension.""" bootId:[ID]"""Selects rows whose executableSchemaId dimension is in the given list. A null value in the list means a row with null for that dimension.""" executableSchemaId:[ID]"""Selects rows whose libraryVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" libraryVersion:[String]"""Selects rows whose platform dimension is in the given list. A null value in the list means a row with null for that dimension.""" platform:[String]"""Selects rows whose runtimeVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" runtimeVersion:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serverId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serverId:[ID]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]"""Selects rows whose userVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" userVersion:[String]}input AccountEdgeServerInfosOrderBySpec{column:AccountEdgeServerInfosColumn!direction:Ordering!}type AccountEdgeServerInfosRecord{"""Dimensions of AccountEdgeServerInfos that can be grouped by.""" groupBy:AccountEdgeServerInfosDimensions!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of AccountErrorStats.""" enum AccountErrorStatsColumn{CLIENT_NAME CLIENT_VERSION ERRORS_COUNT PATH QUERY_ID QUERY_NAME REQUESTS_WITH_ERRORS_COUNT SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP}type AccountErrorStatsDimensions{clientName:String clientVersion:String path:String queryId:ID queryName:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in AccountErrorStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountErrorStatsFilter{and:[AccountErrorStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String in:AccountErrorStatsFilterIn not:AccountErrorStatsFilter or:[AccountErrorStatsFilter!]"""Selects rows whose path dimension equals the given value if not null. To query for the null value, use {in: {path: [null]}} instead.""" path:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountErrorStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountErrorStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose path dimension is in the given list. A null value in the list means a row with null for that dimension.""" path:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountErrorStatsMetrics{errorsCount:Long!requestsWithErrorsCount:Long!}input AccountErrorStatsOrderBySpec{column:AccountErrorStatsColumn!direction:Ordering!}type AccountErrorStatsRecord{"""Dimensions of AccountErrorStats that can be grouped by.""" groupBy:AccountErrorStatsDimensions!"""Metrics of AccountErrorStats that can be aggregated over.""" metrics:AccountErrorStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type AccountExperimentalFeatures{auditLogs:Boolean!championDashboard:Boolean!federation2Preview:Boolean!preRequestPreview:Boolean!publicVariants:Boolean!variantHomepage:Boolean!webhooksPreview:Boolean!}"""Columns of AccountFieldExecutions.""" enum AccountFieldExecutionsColumn{ESTIMATED_EXECUTION_COUNT FIELD_NAME OBSERVED_EXECUTION_COUNT PARENT_TYPE REFERENCING_OPERATION_COUNT SCHEMA_TAG SERVICE_ID TIMESTAMP}type AccountFieldExecutionsDimensions{fieldName:String parentType:String schemaTag:String serviceId:ID}"""Filter for data in AccountFieldExecutions. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountFieldExecutionsFilter{and:[AccountFieldExecutionsFilter!]"""Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:AccountFieldExecutionsFilterIn not:AccountFieldExecutionsFilter or:[AccountFieldExecutionsFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountFieldExecutions. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountFieldExecutionsFilterIn{"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountFieldExecutionsMetrics{estimatedExecutionCount:Long!observedExecutionCount:Long!referencingOperationCount:Long!}input AccountFieldExecutionsOrderBySpec{column:AccountFieldExecutionsColumn!direction:Ordering!}type AccountFieldExecutionsRecord{"""Dimensions of AccountFieldExecutions that can be grouped by.""" groupBy:AccountFieldExecutionsDimensions!"""Metrics of AccountFieldExecutions that can be aggregated over.""" metrics:AccountFieldExecutionsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of AccountFieldLatencies.""" enum AccountFieldLatenciesColumn{FIELD_HISTOGRAM FIELD_NAME PARENT_TYPE SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP}type AccountFieldLatenciesDimensions{field:String fieldName:String parentType:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in AccountFieldLatencies. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountFieldLatenciesFilter{and:[AccountFieldLatenciesFilter!]"""Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:AccountFieldLatenciesFilterIn not:AccountFieldLatenciesFilter or:[AccountFieldLatenciesFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountFieldLatencies. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountFieldLatenciesFilterIn{"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountFieldLatenciesMetrics{fieldHistogram:DurationHistogram!}input AccountFieldLatenciesOrderBySpec{column:AccountFieldLatenciesColumn!direction:Ordering!}type AccountFieldLatenciesRecord{"""Dimensions of AccountFieldLatencies that can be grouped by.""" groupBy:AccountFieldLatenciesDimensions!"""Metrics of AccountFieldLatencies that can be aggregated over.""" metrics:AccountFieldLatenciesMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of AccountFieldRequestsByClientVersion.""" enum AccountFieldRequestsByClientVersionColumn{CLIENT_NAME CLIENT_VERSION ESTIMATED_EXECUTION_COUNT FIELD_NAME OBSERVED_EXECUTION_COUNT PARENT_TYPE REFERENCING_OPERATION_COUNT SCHEMA_TAG SERVICE_ID TIMESTAMP}type AccountFieldRequestsByClientVersionDimensions{clientName:String clientVersion:String fieldName:String parentType:String schemaTag:String serviceId:ID}"""Filter for data in AccountFieldRequestsByClientVersion. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountFieldRequestsByClientVersionFilter{and:[AccountFieldRequestsByClientVersionFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:AccountFieldRequestsByClientVersionFilterIn not:AccountFieldRequestsByClientVersionFilter or:[AccountFieldRequestsByClientVersionFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountFieldRequestsByClientVersion. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountFieldRequestsByClientVersionFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountFieldRequestsByClientVersionMetrics{estimatedExecutionCount:Long!observedExecutionCount:Long!referencingOperationCount:Long!}input AccountFieldRequestsByClientVersionOrderBySpec{column:AccountFieldRequestsByClientVersionColumn!direction:Ordering!}type AccountFieldRequestsByClientVersionRecord{"""Dimensions of AccountFieldRequestsByClientVersion that can be grouped by.""" groupBy:AccountFieldRequestsByClientVersionDimensions!"""Metrics of AccountFieldRequestsByClientVersion that can be aggregated over.""" metrics:AccountFieldRequestsByClientVersionMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of AccountFieldUsage.""" enum AccountFieldUsageColumn{CLIENT_NAME CLIENT_VERSION ESTIMATED_EXECUTION_COUNT EXECUTION_COUNT FIELD_NAME PARENT_TYPE QUERY_ID QUERY_NAME REFERENCING_OPERATION_COUNT SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP}type AccountFieldUsageDimensions{clientName:String clientVersion:String fieldName:String parentType:String queryId:ID queryName:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in AccountFieldUsage. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountFieldUsageFilter{and:[AccountFieldUsageFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:AccountFieldUsageFilterIn not:AccountFieldUsageFilter or:[AccountFieldUsageFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountFieldUsage. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountFieldUsageFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountFieldUsageMetrics{estimatedExecutionCount:Long!executionCount:Long!referencingOperationCount:Long!}input AccountFieldUsageOrderBySpec{column:AccountFieldUsageColumn!direction:Ordering!}type AccountFieldUsageRecord{"""Dimensions of AccountFieldUsage that can be grouped by.""" groupBy:AccountFieldUsageDimensions!"""Metrics of AccountFieldUsage that can be aggregated over.""" metrics:AccountFieldUsageMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type AccountInvitation{"""An accepted invitation cannot be used anymore""" acceptedAt:Timestamp """Who accepted the invitation""" acceptedBy:User """Time the invitation was created""" createdAt:Timestamp!"""Who created the invitation""" createdBy:User email:String!id:ID!"""Last time we sent an email for the invitation""" lastSentAt:Timestamp """Access role for the invitee""" role:UserPermission!}type AccountMembership{account:Account!createdAt:Timestamp!"""If this membership is a free seat (based on role)""" free:Boolean permission:UserPermission!user:User!}type AccountMutation{auditExport(id:String!):AuditLogExportMutation """Cancel a pending change from an annual team subscription to a monthly team subscription when the current period expires.""" cancelConvertAnnualTeamSubscriptionToMonthlyAtNextPeriod:Account """Cancel account subscriptions, subscriptions will remain active until the end of the paid period""" cancelSubscriptions:Account """Changes an annual team subscription to a monthly team subscription when the current period expires.""" convertAnnualTeamSubscriptionToMonthlyAtNextPeriod:Account """Changes a monthly team subscription to an annual team subscription.""" convertMonthlyTeamSubscriptionToAnnual:Account createStaticInvitation(role:UserPermission!):OrganizationInviteLink """Delete the account's avatar. Requires Account.canUpdateAvatar to be true.""" deleteAvatar:AvatarDeleteError """Acknowledge that a trial has expired and return to community""" dismissExpiredTrial:Account """Apollo admins only: extend an ongoing trial""" extendTrial(to:Timestamp!):Account """Hard delete an account and all associated services""" hardDelete:Void """Send an invitation to join the account by E-mail""" invite(email:String!role:UserPermission):AccountInvitation """Reactivate a canceled current subscription""" reactivateCurrentSubscription:Account """Refresh billing information from third-party billing service""" refreshBilling:Void """Delete an invitation""" removeInvitation(id:ID):Void """Remove a member of the account""" removeMember(id:ID!):Account requestAuditExport(actors:[ActorInput!]from:Timestamp!graphIds:[String!]to:Timestamp!):Account """Send a new E-mail for an existing invitation""" resendInvitation(id:ID):AccountInvitation revokeStaticInvitation(token:String!):OrganizationInviteLink """Apollo admins only: set the billing plan to an arbitrary plan""" setPlan(id:ID!):Void """Start a new team subscription with the given billing period""" startTeamSubscription(billingPeriod:BillingPeriod!):Account """Start a team trial""" startTrial:Account """This is called by the form shown to users after they cancel their team subscription.""" submitTeamCancellationFeedback(feedback:String!):Void """Apollo admins only: terminate any ongoing subscriptions in the account, without refunds""" terminateSubscriptions:Account """Update the billing address for a Recurly token""" updateBillingAddress(billingAddress:BillingAddressInput!):Account """Update the billing information from a Recurly token""" updateBillingInfo(token:String!):Void updateCompanyUrl(companyUrl:String):Account """Set the E-mail address of the account, used notably for billing""" updateEmail(email:String!):Void """Update the account ID""" updateID(id:ID!):Account """Update the company name""" updateName(name:String!):Void """Apollo admins only: enable or disable an account for PingOne SSO login""" updatePingOneSSOIDPID(idpid:String):Account """Updates the role assigned to new SSO users.""" updateSSODefaultRole(role:UserPermission!):OrganizationSSO """A (currently) internal to Apollo mutation to update a user's role within an organization""" updateUserPermission(permission:UserPermission!userID:ID!):User}"""Columns of AccountOperationCheckStats.""" enum AccountOperationCheckStatsColumn{CACHED_REQUESTS_COUNT CLIENT_NAME CLIENT_VERSION QUERY_ID QUERY_NAME SCHEMA_TAG SERVICE_ID TIMESTAMP UNCACHED_REQUESTS_COUNT}type AccountOperationCheckStatsDimensions{clientName:String clientVersion:String queryId:ID queryName:String schemaTag:String serviceId:ID}"""Filter for data in AccountOperationCheckStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountOperationCheckStatsFilter{and:[AccountOperationCheckStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String in:AccountOperationCheckStatsFilterIn not:AccountOperationCheckStatsFilter or:[AccountOperationCheckStatsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountOperationCheckStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountOperationCheckStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountOperationCheckStatsMetrics{cachedRequestsCount:Long!uncachedRequestsCount:Long!}input AccountOperationCheckStatsOrderBySpec{column:AccountOperationCheckStatsColumn!direction:Ordering!}type AccountOperationCheckStatsRecord{"""Dimensions of AccountOperationCheckStats that can be grouped by.""" groupBy:AccountOperationCheckStatsDimensions!"""Metrics of AccountOperationCheckStats that can be aggregated over.""" metrics:AccountOperationCheckStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type AccountPublishesStatsMetrics{totalPublishes:Long!}type AccountPublishesStatsRecord{id:ID!metrics:AccountPublishesStatsMetrics!timestamp:Timestamp!}"""Columns of AccountQueryStats.""" enum AccountQueryStatsColumn{CACHED_HISTOGRAM CACHED_REQUESTS_COUNT CACHE_TTL_HISTOGRAM CLIENT_NAME CLIENT_VERSION FORBIDDEN_OPERATION_COUNT FROM_ENGINEPROXY QUERY_ID QUERY_NAME REGISTERED_OPERATION_COUNT REQUESTS_WITH_ERRORS_COUNT SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP UNCACHED_HISTOGRAM UNCACHED_REQUESTS_COUNT}type AccountQueryStatsDimensions{clientName:String clientVersion:String fromEngineproxy:String queryId:ID queryName:String querySignature:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in AccountQueryStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountQueryStatsFilter{and:[AccountQueryStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose fromEngineproxy dimension equals the given value if not null. To query for the null value, use {in: {fromEngineproxy: [null]}} instead.""" fromEngineproxy:String in:AccountQueryStatsFilterIn not:AccountQueryStatsFilter or:[AccountQueryStatsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountQueryStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountQueryStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose fromEngineproxy dimension is in the given list. A null value in the list means a row with null for that dimension.""" fromEngineproxy:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountQueryStatsMetrics{cacheTtlHistogram:DurationHistogram!cachedHistogram:DurationHistogram!cachedRequestsCount:Long!forbiddenOperationCount:Long!registeredOperationCount:Long!requestsWithErrorsCount:Long!totalLatencyHistogram:DurationHistogram!totalRequestCount:Long!uncachedHistogram:DurationHistogram!uncachedRequestsCount:Long!}input AccountQueryStatsOrderBySpec{column:AccountQueryStatsColumn!direction:Ordering!}type AccountQueryStatsRecord{"""Dimensions of AccountQueryStats that can be grouped by.""" groupBy:AccountQueryStatsDimensions!"""Metrics of AccountQueryStats that can be aggregated over.""" metrics:AccountQueryStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type AccountRoles{canAudit:Boolean!canCreateDevGraph:Boolean!canCreateService:Boolean!canDelete:Boolean!canDownloadInvoice:Boolean!@deprecated(reason:"Use canQueryBillingInfo instead")canManageMembers:Boolean!canQuery:Boolean!canQueryAudit:Boolean!canQueryBillingInfo:Boolean!canQueryInvoices:Boolean!@deprecated(reason:"Use canQueryBillingInfo instead")canQueryMembers:Boolean!canQueryStats:Boolean!canReadTickets:Boolean!canRemoveMembers:Boolean!canSetConstrainedPlan:Boolean!canUpdateBillingInfo:Boolean!canUpdateMetadata:Boolean!}enum AccountState{ACTIVE CLOSED UNKNOWN UNPROVISIONED}"""A time window with a specified granularity over a given account.""" type AccountStatsWindow{billingUsageStats("""Filter to select what rows to return.""" filter:AccountBillingUsageStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountBillingUsageStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountBillingUsageStatsOrderBySpec!]):[AccountBillingUsageStatsRecord!]!edgeServerInfos("""Filter to select what rows to return.""" filter:AccountEdgeServerInfosFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountEdgeServerInfos by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountEdgeServerInfosOrderBySpec!]):[AccountEdgeServerInfosRecord!]!errorStats("""Filter to select what rows to return.""" filter:AccountErrorStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountErrorStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountErrorStatsOrderBySpec!]):[AccountErrorStatsRecord!]!fieldExecutions("""Filter to select what rows to return.""" filter:AccountFieldExecutionsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountFieldExecutions by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountFieldExecutionsOrderBySpec!]):[AccountFieldExecutionsRecord!]!fieldLatencies("""Filter to select what rows to return.""" filter:AccountFieldLatenciesFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountFieldLatencies by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountFieldLatenciesOrderBySpec!]):[AccountFieldLatenciesRecord!]!fieldRequestsByClientVersion("""Filter to select what rows to return.""" filter:AccountFieldRequestsByClientVersionFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountFieldRequestsByClientVersion by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountFieldRequestsByClientVersionOrderBySpec!]):[AccountFieldRequestsByClientVersionRecord!]!fieldUsage("""Filter to select what rows to return.""" filter:AccountFieldUsageFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountFieldUsage by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountFieldUsageOrderBySpec!]):[AccountFieldUsageRecord!]!operationCheckStats("""Filter to select what rows to return.""" filter:AccountOperationCheckStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountOperationCheckStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountOperationCheckStatsOrderBySpec!]):[AccountOperationCheckStatsRecord!]!queryStats("""Filter to select what rows to return.""" filter:AccountQueryStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountQueryStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountQueryStatsOrderBySpec!]):[AccountQueryStatsRecord!]!"""From field rounded down to the nearest resolution.""" roundedDownFrom:Timestamp!"""To field rounded up to the nearest resolution.""" roundedUpTo:Timestamp!tracePathErrorsRefs("""Filter to select what rows to return.""" filter:AccountTracePathErrorsRefsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountTracePathErrorsRefs by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountTracePathErrorsRefsOrderBySpec!]):[AccountTracePathErrorsRefsRecord!]!traceRefs("""Filter to select what rows to return.""" filter:AccountTraceRefsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountTraceRefs by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountTraceRefsOrderBySpec!]):[AccountTraceRefsRecord!]!}"""Columns of AccountTracePathErrorsRefs.""" enum AccountTracePathErrorsRefsColumn{CLIENT_NAME CLIENT_VERSION DURATION_BUCKET ERRORS_COUNT_IN_PATH ERRORS_COUNT_IN_TRACE ERROR_MESSAGE PATH QUERY_ID QUERY_NAME SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP TRACE_HTTP_STATUS_CODE TRACE_ID TRACE_SIZE_BYTES TRACE_STARTS_AT}type AccountTracePathErrorsRefsDimensions{clientName:String clientVersion:String durationBucket:Int errorMessage:String path:String queryId:ID queryName:String schemaHash:String schemaTag:String serviceId:ID traceHttpStatusCode:Int traceId:ID traceStartsAt:Timestamp}"""Filter for data in AccountTracePathErrorsRefs. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountTracePathErrorsRefsFilter{and:[AccountTracePathErrorsRefsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose durationBucket dimension equals the given value if not null. To query for the null value, use {in: {durationBucket: [null]}} instead.""" durationBucket:Int """Selects rows whose errorMessage dimension equals the given value if not null. To query for the null value, use {in: {errorMessage: [null]}} instead.""" errorMessage:String in:AccountTracePathErrorsRefsFilterIn not:AccountTracePathErrorsRefsFilter or:[AccountTracePathErrorsRefsFilter!]"""Selects rows whose path dimension equals the given value if not null. To query for the null value, use {in: {path: [null]}} instead.""" path:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID """Selects rows whose traceHttpStatusCode dimension equals the given value if not null. To query for the null value, use {in: {traceHttpStatusCode: [null]}} instead.""" traceHttpStatusCode:Int """Selects rows whose traceId dimension equals the given value if not null. To query for the null value, use {in: {traceId: [null]}} instead.""" traceId:ID}"""Filter for data in AccountTracePathErrorsRefs. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountTracePathErrorsRefsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose durationBucket dimension is in the given list. A null value in the list means a row with null for that dimension.""" durationBucket:[Int]"""Selects rows whose errorMessage dimension is in the given list. A null value in the list means a row with null for that dimension.""" errorMessage:[String]"""Selects rows whose path dimension is in the given list. A null value in the list means a row with null for that dimension.""" path:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]"""Selects rows whose traceHttpStatusCode dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceHttpStatusCode:[Int]"""Selects rows whose traceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceId:[ID]}type AccountTracePathErrorsRefsMetrics{errorsCountInPath:Long!errorsCountInTrace:Long!traceSizeBytes:Long!}input AccountTracePathErrorsRefsOrderBySpec{column:AccountTracePathErrorsRefsColumn!direction:Ordering!}type AccountTracePathErrorsRefsRecord{"""Dimensions of AccountTracePathErrorsRefs that can be grouped by.""" groupBy:AccountTracePathErrorsRefsDimensions!"""Metrics of AccountTracePathErrorsRefs that can be aggregated over.""" metrics:AccountTracePathErrorsRefsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of AccountTraceRefs.""" enum AccountTraceRefsColumn{CLIENT_NAME CLIENT_VERSION DURATION_BUCKET DURATION_NS QUERY_ID QUERY_NAME SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP TRACE_ID TRACE_SIZE_BYTES}type AccountTraceRefsDimensions{clientName:String clientVersion:String durationBucket:Int queryId:ID queryName:String querySignature:String schemaHash:String schemaTag:String serviceId:ID traceId:ID}"""Filter for data in AccountTraceRefs. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountTraceRefsFilter{and:[AccountTraceRefsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose durationBucket dimension equals the given value if not null. To query for the null value, use {in: {durationBucket: [null]}} instead.""" durationBucket:Int in:AccountTraceRefsFilterIn not:AccountTraceRefsFilter or:[AccountTraceRefsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID """Selects rows whose traceId dimension equals the given value if not null. To query for the null value, use {in: {traceId: [null]}} instead.""" traceId:ID}"""Filter for data in AccountTraceRefs. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountTraceRefsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose durationBucket dimension is in the given list. A null value in the list means a row with null for that dimension.""" durationBucket:[Int]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]"""Selects rows whose traceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceId:[ID]}type AccountTraceRefsMetrics{durationNs:Long!traceSizeBytes:Long!}input AccountTraceRefsOrderBySpec{column:AccountTraceRefsColumn!direction:Ordering!}type AccountTraceRefsRecord{"""Dimensions of AccountTraceRefs that can be grouped by.""" groupBy:AccountTraceRefsDimensions!"""Metrics of AccountTraceRefs that can be aggregated over.""" metrics:AccountTraceRefsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""An actor (view of Identity) that performed an action within Studio.""" type Actor{actorId:ID!type:ActorType!}input ActorInput{actorId:ID!type:ActorType!}enum ActorType{ANONYMOUS_USER BACKFILL CRON GRAPH INTERNAL_IDENTITY SYNCHRONIZATION SYSTEM USER}union AddOperationCollectionEntryResult=OperationCollectionEntry|PermissionError|ValidationError union AddOperationCollectionToVariantResult=GraphVariant|InvalidTarget|PermissionError|ValidationError type AffectedClient{"""ID, often the name, of the client set by the user and reported alongside metrics""" clientReferenceId:ID@deprecated(reason:"Unsupported.")"""version of the client set by the user and reported alongside metrics""" clientVersion:String@deprecated(reason:"Unsupported.")}type AffectedQuery{"""If the operation would be approved if the check ran again. Returns null if queried from SchemaDiff.changes.affectedQueries.alreadyApproved""" alreadyApproved:Boolean """If the operation would be ignored if the check ran again""" alreadyIgnored:Boolean """List of changes affecting this query. Returns null if queried from SchemaDiff.changes.affectedQueries.changes""" changes:[ChangeOnOperation!]"""Name to display to the user for the operation""" displayName:String id:ID!"""Determines if this query validates against the proposed schema""" isValid:Boolean """Whether this operation was ignored and its severity was downgraded for that reason""" markedAsIgnored:Boolean """Whether the changes were marked as safe and its severity was downgraded for that reason""" markedAsSafe:Boolean """Name provided for the operation, which can be empty string if it is an anonymous operation""" name:String """First 128 characters of query signature for display""" signature:String}interface ApiKey{id:ID!keyName:String token:String!}type ApiKeyProvision{apiKey:ApiKey!created:Boolean!}type AuditLogExport{actors:[Identity!]bigqueryTriggeredAt:Timestamp completedAt:Timestamp createdAt:Timestamp!exportedFiles:[String!]from:Timestamp!graphs:[Service!]id:ID!requester:User status:AuditStatus!to:Timestamp!}type AuditLogExportMutation{cancel:Account delete:Account}enum AuditStatus{CANCELLED COMPLETED EXPIRED FAILED IN_PROGRESS QUEUED}type AvatarDeleteError{clientMessage:String!code:AvatarDeleteErrorCode!serverMessage:String!}enum AvatarDeleteErrorCode{SSO_USERS_CANNOT_DELETE_SELF_AVATAR}type AvatarUploadError{clientMessage:String!code:AvatarUploadErrorCode!serverMessage:String!}enum AvatarUploadErrorCode{SSO_USERS_CANNOT_UPLOAD_SELF_AVATAR}union AvatarUploadResult=AvatarUploadError|MediaUploadInfo type BillingAddress{address1:String address2:String city:String country:String state:String zip:String}"""Billing address inpnut""" input BillingAddressInput{address1:String!address2:String city:String!country:String!state:String!zip:String!}type BillingInfo{address:BillingAddress!cardType:String firstName:String lastFour:Int lastName:String month:Int vatNumber:String year:Int}enum BillingModel{REQUEST_BASED SEAT_BASED}type BillingMonth{end:Timestamp!requests:Long!start:Timestamp!}enum BillingPeriod{MONTHLY QUARTERLY SEMI_ANNUALLY YEARLY}type BillingPlan{addons:[BillingPlanAddon!]!billingModel:BillingModel!billingPeriod:BillingPeriod capabilities:BillingPlanCapabilities!description:String id:ID!isTrial:Boolean!kind:BillingPlanKind!name:String!"""The price of every seat""" pricePerSeatInUsdCents:Int """The price of subscribing to this plan with a quantity of 1 (currently always the case)""" pricePerUnitInUsdCents:Int!"""Whether the plan is accessible by all users in QueryRoot.allPlans, QueryRoot.plan, or AccountMutation.setPlan""" public:Boolean!tier:BillingPlanTier!}type BillingPlanAddon{id:ID!pricePerUnitInUsdCents:Int!}type BillingPlanAddonV2{id:ID!pricePerUnitInUsdCents:Int!}type BillingPlanCapabilities{clients:Boolean!contracts:Boolean!datadog:Boolean!errors:Boolean!federation:Boolean!launches:Boolean!maxAuditInDays:Int!maxRangeInDays:Int maxRequestsPerMonth:Long metrics:Boolean!notifications:Boolean!operationRegistry:Boolean!ranges:[String!]!schemaValidation:Boolean!traces:Boolean!userRoles:Boolean!webhooks:Boolean!}enum BillingPlanKind{COMMUNITY ENTERPRISE_INTERNAL ENTERPRISE_PAID ENTERPRISE_PILOT TEAM_PAID TEAM_TRIAL}enum BillingPlanKindV2{COMMUNITY ENTERPRISE_INTERNAL ENTERPRISE_PAID ENTERPRISE_PILOT TEAM_PAID TEAM_TRIAL UNKNOWN}enum BillingPlanTier{COMMUNITY ENTERPRISE TEAM}enum BillingPlanTierV2{COMMUNITY ENTERPRISE TEAM UNKNOWN}type BillingPlanV2{addons:[BillingPlanAddonV2!]!billingModel:BillingModel!billingPeriod:BillingPeriod clients:Boolean!contracts:Boolean!datadog:Boolean!description:String errors:Boolean!federation:Boolean!id:ID!isTrial:Boolean!kind:BillingPlanKindV2!launches:Boolean!maxAuditInDays:Int!maxRangeInDays:Int maxRequestsPerMonth:Long metrics:Boolean!name:String!notifications:Boolean!operationRegistry:Boolean!"""The price of every seat""" pricePerSeatInUsdCents:Int """The price of subscribing to this plan with a quantity of 1 (currently always the case)""" pricePerUnitInUsdCents:Int!"""Whether the plan is accessible by all users in QueryRoot.allPlans, QueryRoot.plan, or AccountMutation.setPlan""" public:Boolean!ranges:[String!]!schemaValidation:Boolean!tier:BillingPlanTierV2!traces:Boolean!userRoles:Boolean!webhooks:Boolean!}type BillingSubscription{activatedAt:Timestamp!addons:[BillingSubscriptionAddon!]!autoRenew:Boolean!"""The price of the subscription when ignoring add-ons (such as seats), ie quantity * pricePerUnitInUsdCents""" basePriceInUsdCents:Long!canceledAt:Timestamp currentPeriodEndsAt:Timestamp!currentPeriodStartedAt:Timestamp!expiresAt:Timestamp plan:BillingPlan!"""The price of every seat""" pricePerSeatInUsdCents:Int """The price of every unit in the subscription (hence multiplied by quantity to get to the basePriceInUsdCents)""" pricePerUnitInUsdCents:Int!quantity:Int!"""Total price of the subscription when it next renews, including add-ons (such as seats)""" renewalTotalPriceInUsdCents:Long!state:SubscriptionState!"""Total price of the subscription, including add-ons (such as seats)""" totalPriceInUsdCents:Long!"""When this subscription's trial period expires (if it is a trial). Not the same as the
 subscription's Recurly expiration).""" trialExpiresAt:Timestamp uuid:ID!}type BillingSubscriptionAddon{id:ID!pricePerUnitInUsdCents:Int!quantity:Int!}type BillingSubscriptionAddonV2{id:ID!pricePerUnitInUsdCents:Int!quantity:Int!}type BillingSubscriptionV2{"""The price of every unit in the subscription (hence multiplied by quantity to get to the basePriceInUsdCents)""" activatedAt:Timestamp!addons:[BillingSubscriptionAddonV2!]!autoRenew:Boolean!canceledAt:Timestamp currentPeriodEndsAt:Timestamp!currentPeriodStartedAt:Timestamp!expiresAt:Timestamp plan:BillingPlanV2!"""The price of every seat""" pricePerSeatInUsdCents:Int quantity:Int!state:SubscriptionStateV2!"""When this subscription's trial period expires (if it is a trial). Not the same as the
 subscription's Recurly expiration).""" trialExpiresAt:Timestamp uuid:ID!}"""Columns of BillingUsageStats.""" enum BillingUsageStatsColumn{ACCOUNT_ID OPERATION_COUNT OPERATION_COUNT_PROVIDED_EXPLICITLY SCHEMA_TAG SERVICE_ID TIMESTAMP}type BillingUsageStatsDimensions{accountId:ID operationCountProvidedExplicitly:String schemaTag:String serviceId:ID}"""Filter for data in BillingUsageStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input BillingUsageStatsFilter{"""Selects rows whose accountId dimension equals the given value if not null. To query for the null value, use {in: {accountId: [null]}} instead.""" accountId:ID and:[BillingUsageStatsFilter!]in:BillingUsageStatsFilterIn not:BillingUsageStatsFilter """Selects rows whose operationCountProvidedExplicitly dimension equals the given value if not null. To query for the null value, use {in: {operationCountProvidedExplicitly: [null]}} instead.""" operationCountProvidedExplicitly:String or:[BillingUsageStatsFilter!]"""Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in BillingUsageStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input BillingUsageStatsFilterIn{"""Selects rows whose accountId dimension is in the given list. A null value in the list means a row with null for that dimension.""" accountId:[ID]"""Selects rows whose operationCountProvidedExplicitly dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationCountProvidedExplicitly:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type BillingUsageStatsMetrics{operationCount:Long!}input BillingUsageStatsOrderBySpec{column:BillingUsageStatsColumn!direction:Ordering!}type BillingUsageStatsRecord{"""Dimensions of BillingUsageStats that can be grouped by.""" groupBy:BillingUsageStatsDimensions!"""Metrics of BillingUsageStats that can be aggregated over.""" metrics:BillingUsageStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""A blob (base64'ed in JSON & GraphQL)""" scalar Blob type Build{input:BuildInput!result:BuildResult}type BuildError{code:String locations:[SourceLocation!]!message:String!}type BuildFailure{errorMessages:[BuildError!]!}union BuildInput=CompositionBuildInput|FilterBuildInput union BuildResult=BuildFailure|BuildSuccess type BuildSuccess{coreSchema:CoreSchema!}enum CacheScope{PRIVATE PUBLIC UNKNOWN UNRECOGNIZED}"""A specific change to a definition in your schema.""" type Change{affectedQueries:[AffectedQuery!]"""Target arg of change made.""" argNode:NamedIntrospectionArg """Indication of the category of the change (e.g. addition, removal, edit).""" category:ChangeCategory!"""Node related to the top level node that was changed, such as a field in an object,
 a value in an enum or the object of an interface.""" childNode:NamedIntrospectionValue """Indication of the kind of target and action of the change, e.g. 'TYPE_REMOVED'.""" code:String!"""Human-readable description of the change.""" description:String!"""Top level node affected by the change.""" parentNode:NamedIntrospectionType """Severity of the change, either failure or warning.""" severity:ChangeSeverity!"""Indication of the success of the overall change, either failure, warning, or notice.""" type:ChangeType!@deprecated(reason:"use severity instead")}"""Defines a set of categories that a schema change
@@ -26,13 +26,13 @@ ancestor) was added/removed.""" type ChangeSummary{"""Counts for changes to fiel
 and all aspects of enums, unions, and scalars.""" type:TypeChangeSummaryCounts!}enum ChangeType{FAILURE NOTICE}type ChangelogLaunchResult{createdAt:Timestamp!schemaTagID:ID!}"""Destination for notifications""" interface Channel{id:ID!name:String!subscriptions:[ChannelSubscription!]!}interface ChannelSubscription{channels:[Channel!]!enabled:Boolean!id:ID!variant:String}type CheckConfiguration{"""Time when check configuration was created""" createdAt:Timestamp!"""Clients to ignore during validation""" excludedClients:[ClientFilter!]!"""Operation names to ignore during validation""" excludedOperationNames:[OperationNameFilter]"""Operations to ignore during validation""" excludedOperations:[ExcludedOperation!]!"""Graph that this check configuration belongs to""" graphID:ID!"""ID of the check configuration""" id:ID!"""Default configuration to include operations on the base variant.""" includeBaseVariant:Boolean!"""Variant overrides for validation""" includedVariants:[String!]!"""Minimum number of requests within the window for an operation to be considered.""" operationCountThreshold:Int!"""Number of requests within the window for an operation to be considered, relative to
 total request count. Expected values are between 0 and 0.05 (minimum 5% of
 total request volume)""" operationCountThresholdPercentage:Float!"""Only check operations from the last <timeRangeSeconds> seconds.
-The default is 7 days (604,800 seconds).""" timeRangeSeconds:Long!"""Time when check configuration was last updated""" updatedAt:Timestamp!"""Identity of the last user to update the check configuration""" updatedBy:Identity}"""Filter options available when listing checks.""" input CheckFilterInput{authors:[String!]branches:[String!]status:CheckFilterInputStatusOption subgraphs:[String!]}"""Options for filtering CheckWorkflows by status""" enum CheckFilterInputStatusOption{FAILED PASSED PENDING}"""The result of performing a subgraph check, including all steps.""" type CheckPartialSchemaResult{"""Overall result of the check. This will be null if composition validation was unsuccessful.""" checkSchemaResult:CheckSchemaResult """Result of compostion run as part of the overall subgraph check.""" compositionValidationResult:CompositionValidationResult!"""If any modifications were detected in the composed core schema""" coreSchemaModified:Boolean!"""Check workflow associated with the overall subgraph check.""" workflow:CheckWorkflow}type CheckSchemaResult{"""Schema diff and affected operations generated by the schema check""" diffToPrevious:SchemaDiff!"""ID of the operations check that was created""" operationsCheckID:ID!"""Generated url to view schema diff in Engine""" targetUrl:String """Workflow associated with this check result""" workflow:CheckWorkflow}type CheckWorkflow{"""The variant provided as a base to check against.  Only the differences from the
+The default is 7 days (604,800 seconds).""" timeRangeSeconds:Long!"""Time when check configuration was last updated""" updatedAt:Timestamp!"""Identity of the last user to update the check configuration""" updatedBy:Identity}"""Filter options available when listing checks.""" input CheckFilterInput{authors:[String!]branches:[String!]status:CheckFilterInputStatusOption subgraphs:[String!]}"""Options for filtering CheckWorkflows by status""" enum CheckFilterInputStatusOption{FAILED PASSED PENDING}"""The result of performing a subgraph check, including all steps.""" type CheckPartialSchemaResult{"""Overall result of the check. This will be null if composition validation was unsuccessful.""" checkSchemaResult:CheckSchemaResult """Result of compostion run as part of the overall subgraph check.""" compositionValidationResult:CompositionValidationResult!"""Whether any modifications were detected in the composed core schema.""" coreSchemaModified:Boolean!"""Check workflow associated with the overall subgraph check.""" workflow:CheckWorkflow}type CheckSchemaResult{"""Schema diff and affected operations generated by the schema check""" diffToPrevious:SchemaDiff!"""ID of the operations check that was created""" operationsCheckID:ID!"""Generated url to view schema diff in Engine""" targetUrl:String """Workflow associated with this check result""" workflow:CheckWorkflow}type CheckWorkflow{"""The variant provided as a base to check against.  Only the differences from the
 base schema will be tested in operations checks.""" baseVariant:GraphVariant completedAt:Timestamp createdAt:Timestamp!"""Contextual parameters supplied by the runtime environment where the check was run.""" gitContext:GitContext id:ID!"""The name of the implementing service that was responsible for triggering the validation.""" implementingServiceName:String """If this check is triggered for an sdl fetched using introspection, this is the endpoint where that schema was being served.""" introspectionEndpoint:String """Only true if the check was triggered from Sandbox Checks page.""" isSandboxCheck:Boolean!"""If this check was created by rerunning, the original check that was rerun.""" rerunOf:CheckWorkflow """Checks created by re-running this check, most recent first.""" reruns(limit:Int!=20):[CheckWorkflow!]startedAt:Timestamp """Overall status of the workflow, based on the underlying task statuses.""" status:CheckWorkflowStatus!"""The set of check tasks associated with this workflow, e.g. OperationsCheck, GraphComposition, etc.""" tasks:[CheckWorkflowTask!]!"""Identity of the user who ran this check""" triggeredBy:Identity """Configuration of validation at the time the check was run.""" validationConfig:SchemaDiffValidationConfig}type CheckWorkflowMutation{"""Re-run a check workflow using the current configuration. A new workflow is created and returned.""" rerun:CheckWorkflowRerunResult}type CheckWorkflowRerunResult{"""Check workflow created by re-running.""" result:CheckWorkflow """Check workflow that was rerun.""" source:CheckWorkflow}enum CheckWorkflowStatus{FAILED PASSED PENDING}interface CheckWorkflowTask{completedAt:Timestamp createdAt:Timestamp!id:ID!status:CheckWorkflowTaskStatus!"""The workflow that this task belongs to.""" workflow:CheckWorkflow!}enum CheckWorkflowTaskStatus{BLOCKED FAILED PASSED PENDING}"""Client filter configuration for a graph.""" type ClientFilter{"""name of the client set by the user and reported alongside metrics""" name:String """version of the client set by the user and reported alongside metrics""" version:String}"""Options to filter by client reference ID, client name, and client version.
 If passing client version, make sure to either provide a client reference ID or client name.""" input ClientFilterInput{"""name of the client set by the user and reported alongside metrics""" name:String """version of the client set by the user and reported alongside metrics""" version:String}"""Filter options to exclude by client reference ID, client name, and client version.""" input ClientInfoFilter{name:String """Ignored""" referenceID:ID version:String}"""Filter options to exclude clients. Used as an output type for SchemaDiffValidationConfig.""" type ClientInfoFilterOutput{name:String version:String}enum ComparisonOperator{EQUALS GREATER_THAN GREATER_THAN_OR_EQUAL_TO LESS_THAN LESS_THAN_OR_EQUAL_TO NOT_EQUALS UNRECOGNIZED}"""The result of composition run in the cloud, upon an attempted subgraph deletion.""" type CompositionAndRemoveResult{"""The produced composition config. Will be null if there are any errors""" compositionConfig:CompositionConfig """Whether the removed implementing service existed.""" didExist:Boolean!"""  List of errors during composition. Errors mean that Apollo was unable to compose the
   graph variant's subgraphs into a GraphQL schema. If present, gateways / routers
 are not updated.""" errors:[SchemaCompositionError]!"""ID that points to the results of composition.""" graphCompositionID:String!"""List of subgraphs that are included in this composition.""" subgraphConfigs:[SubgraphConfig!]!"""Whether the gateway/router was updated via Uplink, or would have been for dry runs.""" updatedGateway:Boolean!}"""The result of composition run in the cloud, upon attempted publish of a subgraph.""" type CompositionAndUpsertResult{"""The produced composition config, or null if there are any errors.""" compositionConfig:CompositionConfig """List of errors during composition. Errors mean that Apollo was unable to compose the
 graph variant's subgraphs into a supergraph schema. If present, gateways / routers
-are not updated.""" errors:[SchemaCompositionError]!"""ID that points to the results of composition.""" graphCompositionID:String!"""Copy text for the launch result of a publish.""" launchCliCopy:String """Link to corresponding launches page on Studio if avaliable.""" launchUrl:String """List of subgraphs that are included in this composition.""" subgraphConfigs:[SubgraphConfig!]!"""Whether the gateway/router was updated via Uplink, or would have been for dry runs.""" updatedGateway:Boolean!"""Whether a subgraph was created as part of this mutation.""" wasCreated:Boolean!"""Whether an implementingService was updated as part of this mutation""" wasUpdated:Boolean!}type CompositionBuildInput{subgraphs:[Subgraph!]!version:String}type CompositionCheckTask implements CheckWorkflowTask{completedAt:Timestamp createdAt:Timestamp!id:ID!"""The result of the composition.""" result:CompositionResult status:CheckWorkflowTaskStatus!workflow:CheckWorkflow!}"""Composition configuration exposed to the gateway.""" type CompositionConfig{"""List of GCS links for implementing services that comprise a composed graph. Is empty if tag/inaccessible is enabled.""" implementingServiceLocations:[ImplementingServiceLocation!]!@deprecated(reason:"Soon we will stop writing to GCS locations")"""Hash of the API schema.""" schemaHash:String!}"""The result of composition run in the cloud.""" type CompositionPublishResult implements CompositionResult{"""The produced composition config. Will be null if there are any errors""" compositionConfig:CompositionConfig """Supergraph SDL generated by composition (this is not the CSDL, that is a deprecated format).""" csdl:GraphQLDocument@deprecated(reason:"Use supergraphSdl instead")"""List of errors during composition. Errors mean that Apollo was unable to compose the
+are not updated.""" errors:[SchemaCompositionError]!"""ID that points to the results of composition.""" graphCompositionID:String!"""Copy text for the launch result of a publish.""" launchCliCopy:String """Link to corresponding launches page on Studio if available.""" launchUrl:String """List of subgraphs that are included in this composition.""" subgraphConfigs:[SubgraphConfig!]!"""Whether the gateway/router was updated via Uplink, or would have been for dry runs.""" updatedGateway:Boolean!"""Whether a subgraph was created as part of this mutation.""" wasCreated:Boolean!"""Whether an implementingService was updated as part of this mutation""" wasUpdated:Boolean!}type CompositionBuildInput{subgraphs:[Subgraph!]!version:String}type CompositionCheckTask implements CheckWorkflowTask{completedAt:Timestamp createdAt:Timestamp!id:ID!"""The result of the composition.""" result:CompositionResult status:CheckWorkflowTaskStatus!workflow:CheckWorkflow!}"""Composition configuration exposed to the gateway.""" type CompositionConfig{"""List of GCS links for implementing services that comprise a composed graph. Is empty if tag/inaccessible is enabled.""" implementingServiceLocations:[ImplementingServiceLocation!]!@deprecated(reason:"Soon we will stop writing to GCS locations")"""Hash of the API schema.""" schemaHash:String!}"""The result of composition run in the cloud.""" type CompositionPublishResult implements CompositionResult{"""The produced composition config. Will be null if there are any errors""" compositionConfig:CompositionConfig """Supergraph SDL generated by composition (this is not the CSDL, that is a deprecated format).""" csdl:GraphQLDocument@deprecated(reason:"Use supergraphSdl instead")"""List of errors during composition. Errors mean that Apollo was unable to compose the
 graph variant's subgraphs into a supergraph schema. If present, gateways / routers
 are not updated.""" errors:[SchemaCompositionError!]!"""ID for a particular composition.""" graphCompositionID:ID!"""List of subgraphs that are included in this composition.""" subgraphConfigs:[SubgraphConfig!]!"""Supergraph SDL generated by composition.""" supergraphSdl:GraphQLDocument """Whether the gateway/router was updated via Uplink, or would have been for dry runs.""" updatedGateway:Boolean!webhookNotificationBody:String}"""Result of a composition, often as the result of a subgraph check or subgraph publish.
 See implementations for more details.""" interface CompositionResult{"""Supergraph SDL generated by composition (this is not the cSDL, a deprecated format).""" csdl:GraphQLDocument@deprecated(reason:"Use supergraphSdl instead")"""List of errors during composition. Errors mean that Apollo was unable to compose the
@@ -41,12 +41,12 @@ are not updated.""" errors:[SchemaCompositionError!]!"""Globally unique identifi
 in running composition. Will be null if any errors are encountered. Also may contain a schema hash if
 one could be computed, which can be used for schema validation.""" compositionValidationDetails:CompositionValidationDetails """Supergraph SDL generated by composition (this is not the CSDL, that is a deprecated format).""" csdl:GraphQLDocument@deprecated(reason:"Use supergraphSdl instead")"""List of errors during composition. Errors mean that Apollo was unable to compose the
 graph variant's subgraphs into a supergraph schema. If present, gateways / routers
-are not updated.""" errors:[SchemaCompositionError!]!"""ID that points to the results of this composition.""" graphCompositionID:ID!"""The implementing service that was responsible for triggering the validation""" proposedImplementingService:FederatedImplementingServicePartialSchema!"""List of subgraphs that are included in this composition.""" subgraphConfigs:[SubgraphConfig!]!"""Supergraph schema document generated by composition.""" supergraphSdl:GraphQLDocument """If created as part of a check workflow, the associated workflow task.""" workflowTask:CompositionCheckTask}type ContractPreview{result:ContractPreviewResult!upstreamLaunch:Launch!}type ContractPreviewErrors{errors:[String!]!failedAt:ContractVariantFailedStep!}union ContractPreviewResult=ContractPreviewErrors|ContractPreviewSuccess type ContractPreviewSuccess{apiDocument:String!coreDocument:String!fieldCount:Int!typeCount:Int!}enum ContractVariantFailedStep{ADD_DIRECTIVE_DEFINITIONS_IF_NOT_PRESENT DIRECTIVE_DEFINITION_LOCATION_AUGMENTING EMPTY_OBJECT_AND_INTERFACE_MASKING EMPTY_UNION_MASKING INPUT_VALIDATION PARSING PARSING_TAG_DIRECTIVES PARTIAL_INTERFACE_MASKING SCHEMA_RETRIEVAL TAG_INHERITING TAG_MATCHING TO_API_SCHEMA TO_FILTER_SCHEMA UNKNOWN VERSION_CHECK}type ContractVariantPreviewErrors{errorMessages:[String!]!failedStep:ContractVariantFailedStep!}union ContractVariantPreviewResult=ContractVariantPreviewErrors|ContractVariantPreviewSuccess type ContractVariantPreviewSuccess{baseApiSchema:String!baseCoreSchema:String!contractApiSchema:String!contractCoreSchema:String!}type ContractVariantUpsertErrors{errorMessages:[String!]!}union ContractVariantUpsertResult=ContractVariantUpsertErrors|ContractVariantUpsertSuccess type ContractVariantUpsertSuccess{contractVariant:GraphVariant!}type CoreSchema{apiDocument:GraphQLDocument!coreDocument:GraphQLDocument!coreHash:String!fieldCount:Int!typeCount:Int!}union CreateOperationCollectionResult=OperationCollection|PermissionError|ValidationError type CronExecution{completedAt:Timestamp failure:String id:ID!job:CronJob!resolvedAt:Timestamp resolvedBy:Actor schedule:String!startedAt:Timestamp!}type CronJob{group:String!name:String!recentExecutions(n:Int):[CronExecution!]!}enum DatadogApiRegion{EU EU1 US US1 US1FED US3 US5}type DatadogMetricsConfig{apiKey:String!apiRegion:DatadogApiRegion!enabled:Boolean!legacyMetricNames:Boolean!}union DeleteOperationCollectionResult=DeleteOperationCollectionSuccess|PermissionError type DeleteOperationCollectionSuccess{sandboxOwner:User variants:[GraphVariant!]!}"""The result of attempting to delete a graph variant.""" type DeleteSchemaTagResult{"""WHether a variant was deleted or not.""" deleted:Boolean!}enum DeletionTargetType{ACCOUNT USER}"""Support for a single directive on a graph variant""" type DirectiveSupportStatus{"""whether the directive is supported on the current graph variant""" enabled:Boolean!"""name of the directive""" name:String!}union DuplicateOperationCollectionResult=OperationCollection|PermissionError|ValidationError type DurationHistogram{averageDurationMs:Float buckets:[DurationHistogramBucket!]!durationMs("""Percentile (between 0 and 1)""" percentile:Float!):Float """Counts per durationBucket, where sequences of zeroes are replaced with the negative of their size""" sparseBuckets:[Long!]!totalCount:Long!totalDurationMs:Float!}type DurationHistogramBucket{count:Long!index:Int!rangeBeginMs:Float!rangeEndMs:Float!}input EdgeServerInfo{"""A randomly generated UUID, immutable for the lifetime of the edge server runtime.""" bootId:String!"""A unique identifier for the executable GraphQL served by the edge server. length must be <= 64 characters.""" executableSchemaId:String!"""The graph variant, defaults to 'current'""" graphVariant:String!="current" """The version of the edge server reporting agent, e.g. apollo-server-2.8, graphql-java-3.1, etc. length must be <= 256 characters.""" libraryVersion:String """The infra environment in which this edge server is running, e.g. localhost, Kubernetes, AWS Lambda, Google CloudRun, AWS ECS, etc. length must be <= 256 characters.""" platform:String """The runtime in which the edge server is running, e.g. node 12.03, zulu8.46.0.19-ca-jdk8.0.252-macosx_x64, etc. length must be <= 256 characters.""" runtimeVersion:String """If available, an identifier for the edge server instance, such that when restarting this instance it will have the same serverId, with a different bootId. For example, in Kubernetes this might be the pod name. Length must be <= 256 characters.""" serverId:String """An identifier used to distinguish the version (from the user's perspective) of the edge server's code itself. For instance, the git sha of the server's repository or the docker sha of the associated image this server runs with. Length must be <= 256 characters.""" userVersion:String}"""Columns of EdgeServerInfos.""" enum EdgeServerInfosColumn{BOOT_ID EXECUTABLE_SCHEMA_ID LIBRARY_VERSION PLATFORM RUNTIME_VERSION SCHEMA_TAG SERVER_ID SERVICE_ID TIMESTAMP USER_VERSION}type EdgeServerInfosDimensions{bootId:ID executableSchemaId:ID libraryVersion:String platform:String runtimeVersion:String schemaTag:String serverId:ID serviceId:ID userVersion:String}"""Filter for data in EdgeServerInfos. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input EdgeServerInfosFilter{and:[EdgeServerInfosFilter!]"""Selects rows whose bootId dimension equals the given value if not null. To query for the null value, use {in: {bootId: [null]}} instead.""" bootId:ID """Selects rows whose executableSchemaId dimension equals the given value if not null. To query for the null value, use {in: {executableSchemaId: [null]}} instead.""" executableSchemaId:ID in:EdgeServerInfosFilterIn """Selects rows whose libraryVersion dimension equals the given value if not null. To query for the null value, use {in: {libraryVersion: [null]}} instead.""" libraryVersion:String not:EdgeServerInfosFilter or:[EdgeServerInfosFilter!]"""Selects rows whose platform dimension equals the given value if not null. To query for the null value, use {in: {platform: [null]}} instead.""" platform:String """Selects rows whose runtimeVersion dimension equals the given value if not null. To query for the null value, use {in: {runtimeVersion: [null]}} instead.""" runtimeVersion:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serverId dimension equals the given value if not null. To query for the null value, use {in: {serverId: [null]}} instead.""" serverId:ID """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID """Selects rows whose userVersion dimension equals the given value if not null. To query for the null value, use {in: {userVersion: [null]}} instead.""" userVersion:String}"""Filter for data in EdgeServerInfos. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input EdgeServerInfosFilterIn{"""Selects rows whose bootId dimension is in the given list. A null value in the list means a row with null for that dimension.""" bootId:[ID]"""Selects rows whose executableSchemaId dimension is in the given list. A null value in the list means a row with null for that dimension.""" executableSchemaId:[ID]"""Selects rows whose libraryVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" libraryVersion:[String]"""Selects rows whose platform dimension is in the given list. A null value in the list means a row with null for that dimension.""" platform:[String]"""Selects rows whose runtimeVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" runtimeVersion:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serverId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serverId:[ID]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]"""Selects rows whose userVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" userVersion:[String]}input EdgeServerInfosOrderBySpec{column:EdgeServerInfosColumn!direction:Ordering!}type EdgeServerInfosRecord{"""Dimensions of EdgeServerInfos that can be grouped by.""" groupBy:EdgeServerInfosDimensions!"""Starting segment timestamp.""" timestamp:Timestamp!}enum EmailCategory{EDUCATIONAL}type EmailPreferences{email:String!subscriptions:[EmailCategory!]!unsubscribedFromAll:Boolean!}interface Error{message:String!}"""Columns of ErrorStats.""" enum ErrorStatsColumn{ACCOUNT_ID CLIENT_NAME CLIENT_VERSION ERRORS_COUNT PATH QUERY_ID QUERY_NAME REQUESTS_WITH_ERRORS_COUNT SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP}type ErrorStatsDimensions{accountId:ID clientName:String clientVersion:String path:String queryId:ID queryName:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in ErrorStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ErrorStatsFilter{"""Selects rows whose accountId dimension equals the given value if not null. To query for the null value, use {in: {accountId: [null]}} instead.""" accountId:ID and:[ErrorStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String in:ErrorStatsFilterIn not:ErrorStatsFilter or:[ErrorStatsFilter!]"""Selects rows whose path dimension equals the given value if not null. To query for the null value, use {in: {path: [null]}} instead.""" path:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in ErrorStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ErrorStatsFilterIn{"""Selects rows whose accountId dimension is in the given list. A null value in the list means a row with null for that dimension.""" accountId:[ID]"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose path dimension is in the given list. A null value in the list means a row with null for that dimension.""" path:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type ErrorStatsMetrics{errorsCount:Long!requestsWithErrorsCount:Long!}input ErrorStatsOrderBySpec{column:ErrorStatsColumn!direction:Ordering!}type ErrorStatsRecord{"""Dimensions of ErrorStats that can be grouped by.""" groupBy:ErrorStatsDimensions!"""Metrics of ErrorStats that can be aggregated over.""" metrics:ErrorStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}""" Input parameters for run explorer operation event.""" enum EventEnum{CLICK_CHECK_LIST CLICK_GO_TO_GRAPH_SETTINGS RUN_EXPLORER_OPERATION}"""Excluded operation for a graph.""" type ExcludedOperation{"""Operation ID to exclude from schema check.""" ID:ID!}"""Option to filter by operation ID.""" input ExcludedOperationInput{"""Operation ID to exclude from schema check.""" ID:ID!}type FeatureIntros{devGraph:Boolean!federatedGraph:Boolean!freeConsumerSeats:Boolean!}"""Feature Intros Input Type""" input FeatureIntrosInput{devGraph:Boolean federatedGraph:Boolean freeConsumerSeats:Boolean}"""Subgraph. Federated graph variants that are managed by Apollo Studio are composed of subgraphs.
+are not updated.""" errors:[SchemaCompositionError!]!"""ID that points to the results of this composition.""" graphCompositionID:ID!"""The implementing service that was responsible for triggering the validation""" proposedImplementingService:FederatedImplementingServicePartialSchema!"""List of subgraphs that are included in this composition.""" subgraphConfigs:[SubgraphConfig!]!"""Supergraph schema document generated by composition.""" supergraphSdl:GraphQLDocument """If created as part of a check workflow, the associated workflow task.""" workflowTask:CompositionCheckTask}type ContractPreview{result:ContractPreviewResult!upstreamLaunch:Launch!}type ContractPreviewErrors{errors:[String!]!failedAt:ContractVariantFailedStep!}union ContractPreviewResult=ContractPreviewErrors|ContractPreviewSuccess type ContractPreviewSuccess{apiDocument:String!coreDocument:String!fieldCount:Int!typeCount:Int!}enum ContractVariantFailedStep{ADD_DIRECTIVE_DEFINITIONS_IF_NOT_PRESENT DIRECTIVE_DEFINITION_LOCATION_AUGMENTING EMPTY_ENUM_MASKING EMPTY_INPUT_OBJECT_MASKING EMPTY_OBJECT_AND_INTERFACE_FIELD_MASKING EMPTY_OBJECT_AND_INTERFACE_MASKING EMPTY_UNION_MASKING INPUT_VALIDATION PARSING PARSING_TAG_DIRECTIVES PARTIAL_INTERFACE_MASKING SCHEMA_RETRIEVAL TAG_INHERITING TAG_MATCHING TO_API_SCHEMA TO_FILTER_SCHEMA UNKNOWN VERSION_CHECK}type ContractVariantPreviewErrors{errorMessages:[String!]!failedStep:ContractVariantFailedStep!}union ContractVariantPreviewResult=ContractVariantPreviewErrors|ContractVariantPreviewSuccess type ContractVariantPreviewSuccess{baseApiSchema:String!baseCoreSchema:String!contractApiSchema:String!contractCoreSchema:String!}type ContractVariantUpsertErrors{errorMessages:[String!]!}union ContractVariantUpsertResult=ContractVariantUpsertErrors|ContractVariantUpsertSuccess type ContractVariantUpsertSuccess{contractVariant:GraphVariant!}type CoreSchema{apiDocument:GraphQLDocument!coreDocument:GraphQLDocument!coreHash:String!fieldCount:Int!tags:[String!]!typeCount:Int!}union CreateOperationCollectionResult=OperationCollection|PermissionError|ValidationError type CronExecution{completedAt:Timestamp failure:String id:ID!job:CronJob!resolvedAt:Timestamp resolvedBy:Actor schedule:String!startedAt:Timestamp!}type CronJob{group:String!name:String!recentExecutions(n:Int):[CronExecution!]!}enum DatadogApiRegion{EU EU1 US US1 US1FED US3 US5}type DatadogMetricsConfig{apiKey:String!apiRegion:DatadogApiRegion!enabled:Boolean!legacyMetricNames:Boolean!}union DeleteOperationCollectionResult=DeleteOperationCollectionSuccess|PermissionError type DeleteOperationCollectionSuccess{sandboxOwner:User variants:[GraphVariant!]!}"""The result of attempting to delete a graph variant.""" type DeleteSchemaTagResult{"""WHether a variant was deleted or not.""" deleted:Boolean!}enum DeletionTargetType{ACCOUNT USER}"""Support for a single directive on a graph variant""" type DirectiveSupportStatus{"""whether the directive is supported on the current graph variant""" enabled:Boolean!"""name of the directive""" name:String!}union DuplicateOperationCollectionResult=OperationCollection|PermissionError|ValidationError type DurationHistogram{averageDurationMs:Float buckets:[DurationHistogramBucket!]!durationMs("""Percentile (between 0 and 1)""" percentile:Float!):Float """Counts per durationBucket, where sequences of zeroes are replaced with the negative of their size""" sparseBuckets:[Long!]!totalCount:Long!totalDurationMs:Float!}type DurationHistogramBucket{count:Long!index:Int!rangeBeginMs:Float!rangeEndMs:Float!}input EdgeServerInfo{"""A randomly generated UUID, immutable for the lifetime of the edge server runtime.""" bootId:String!"""A unique identifier for the executable GraphQL served by the edge server. length must be <= 64 characters.""" executableSchemaId:String!"""The graph variant, defaults to 'current'""" graphVariant:String!="current" """The version of the edge server reporting agent, e.g. apollo-server-2.8, graphql-java-3.1, etc. length must be <= 256 characters.""" libraryVersion:String """The infra environment in which this edge server is running, e.g. localhost, Kubernetes, AWS Lambda, Google CloudRun, AWS ECS, etc. length must be <= 256 characters.""" platform:String """The runtime in which the edge server is running, e.g. node 12.03, zulu8.46.0.19-ca-jdk8.0.252-macosx_x64, etc. length must be <= 256 characters.""" runtimeVersion:String """If available, an identifier for the edge server instance, such that when restarting this instance it will have the same serverId, with a different bootId. For example, in Kubernetes this might be the pod name. Length must be <= 256 characters.""" serverId:String """An identifier used to distinguish the version (from the user's perspective) of the edge server's code itself. For instance, the git sha of the server's repository or the docker sha of the associated image this server runs with. Length must be <= 256 characters.""" userVersion:String}"""Columns of EdgeServerInfos.""" enum EdgeServerInfosColumn{BOOT_ID EXECUTABLE_SCHEMA_ID LIBRARY_VERSION PLATFORM RUNTIME_VERSION SCHEMA_TAG SERVER_ID SERVICE_ID TIMESTAMP USER_VERSION}type EdgeServerInfosDimensions{bootId:ID executableSchemaId:ID libraryVersion:String platform:String runtimeVersion:String schemaTag:String serverId:ID serviceId:ID userVersion:String}"""Filter for data in EdgeServerInfos. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input EdgeServerInfosFilter{and:[EdgeServerInfosFilter!]"""Selects rows whose bootId dimension equals the given value if not null. To query for the null value, use {in: {bootId: [null]}} instead.""" bootId:ID """Selects rows whose executableSchemaId dimension equals the given value if not null. To query for the null value, use {in: {executableSchemaId: [null]}} instead.""" executableSchemaId:ID in:EdgeServerInfosFilterIn """Selects rows whose libraryVersion dimension equals the given value if not null. To query for the null value, use {in: {libraryVersion: [null]}} instead.""" libraryVersion:String not:EdgeServerInfosFilter or:[EdgeServerInfosFilter!]"""Selects rows whose platform dimension equals the given value if not null. To query for the null value, use {in: {platform: [null]}} instead.""" platform:String """Selects rows whose runtimeVersion dimension equals the given value if not null. To query for the null value, use {in: {runtimeVersion: [null]}} instead.""" runtimeVersion:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serverId dimension equals the given value if not null. To query for the null value, use {in: {serverId: [null]}} instead.""" serverId:ID """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID """Selects rows whose userVersion dimension equals the given value if not null. To query for the null value, use {in: {userVersion: [null]}} instead.""" userVersion:String}"""Filter for data in EdgeServerInfos. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input EdgeServerInfosFilterIn{"""Selects rows whose bootId dimension is in the given list. A null value in the list means a row with null for that dimension.""" bootId:[ID]"""Selects rows whose executableSchemaId dimension is in the given list. A null value in the list means a row with null for that dimension.""" executableSchemaId:[ID]"""Selects rows whose libraryVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" libraryVersion:[String]"""Selects rows whose platform dimension is in the given list. A null value in the list means a row with null for that dimension.""" platform:[String]"""Selects rows whose runtimeVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" runtimeVersion:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serverId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serverId:[ID]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]"""Selects rows whose userVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" userVersion:[String]}input EdgeServerInfosOrderBySpec{column:EdgeServerInfosColumn!direction:Ordering!}type EdgeServerInfosRecord{"""Dimensions of EdgeServerInfos that can be grouped by.""" groupBy:EdgeServerInfosDimensions!"""Starting segment timestamp.""" timestamp:Timestamp!}enum EmailCategory{EDUCATIONAL}type EmailPreferences{email:String!subscriptions:[EmailCategory!]!unsubscribedFromAll:Boolean!}interface Error{message:String!}"""Columns of ErrorStats.""" enum ErrorStatsColumn{ACCOUNT_ID CLIENT_NAME CLIENT_VERSION ERRORS_COUNT PATH QUERY_ID QUERY_NAME REQUESTS_WITH_ERRORS_COUNT SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP}type ErrorStatsDimensions{accountId:ID clientName:String clientVersion:String path:String queryId:ID queryName:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in ErrorStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ErrorStatsFilter{"""Selects rows whose accountId dimension equals the given value if not null. To query for the null value, use {in: {accountId: [null]}} instead.""" accountId:ID and:[ErrorStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String in:ErrorStatsFilterIn not:ErrorStatsFilter or:[ErrorStatsFilter!]"""Selects rows whose path dimension equals the given value if not null. To query for the null value, use {in: {path: [null]}} instead.""" path:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in ErrorStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ErrorStatsFilterIn{"""Selects rows whose accountId dimension is in the given list. A null value in the list means a row with null for that dimension.""" accountId:[ID]"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose path dimension is in the given list. A null value in the list means a row with null for that dimension.""" path:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type ErrorStatsMetrics{errorsCount:Long!requestsWithErrorsCount:Long!}input ErrorStatsOrderBySpec{column:ErrorStatsColumn!direction:Ordering!}type ErrorStatsRecord{"""Dimensions of ErrorStats that can be grouped by.""" groupBy:ErrorStatsDimensions!"""Metrics of ErrorStats that can be aggregated over.""" metrics:ErrorStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}""" Input parameters for run explorer operation event.""" enum EventEnum{CLICK_CHECK_LIST CLICK_GO_TO_GRAPH_SETTINGS RUN_EXPLORER_OPERATION}"""Excluded operation for a graph.""" type ExcludedOperation{"""Operation ID to exclude from schema check.""" ID:ID!}"""Option to filter by operation ID.""" input ExcludedOperationInput{"""Operation ID to exclude from schema check.""" ID:ID!}type FeatureIntros{devGraph:Boolean!federatedGraph:Boolean!freeConsumerSeats:Boolean!}"""Feature Intros Input Type""" input FeatureIntrosInput{devGraph:Boolean federatedGraph:Boolean freeConsumerSeats:Boolean}"""Subgraph. Federated graph variants that are managed by Apollo Studio are composed of subgraphs.
 See https://www.apollographql.com/docs/federation/managed-federation/overview/ for more information.""" type FederatedImplementingService{"""The subgraph schema actively published, used for composition for the graph variant this subgraph belongs to.""" activePartialSchema:PartialSchema!"""Timestamp of when this subgraph was created.""" createdAt:Timestamp!"""The ID of the graph this subgraph belongs to.""" graphID:String!"""Which variant of a graph this subgraph belongs to.""" graphVariant:String!"""Name of the subgraph.""" name:String!"""The particular version/edition of a subgraph, entered by users. Typically a Git SHA or docker image ID.""" revision:String!"""Timestamp for when this subgraph was updated.""" updatedAt:Timestamp!"""URL of the subgraph's GraphQL endpoint.""" url:String}"""A minimal representation of a federated implementing service, using only a name and partial schema SDL""" type FederatedImplementingServicePartialSchema{"""The name of the implementing service""" name:String!"""The partial schema of the implementing service""" sdl:String!}"""Container for a list of subgraphs composing a graph.""" type FederatedImplementingServices{"""The list of underlying subgraphs.""" services:[FederatedImplementingService!]!}"""Counts of changes at the field level, including objects, interfaces, and input fields.""" type FieldChangeSummaryCounts{"""Number of changes that are additions of fields to object, interface, and input types.""" additions:Int!"""Number of changes that are field edits. This includes fields changing type and any field
 deprecation and description changes, but also includes any argument changes and any input object
-field changes.""" edits:Int!"""Number of changes that are removals of fields from object, interface, and input types.""" removals:Int!}"""Columns of FieldLatencies.""" enum FieldLatenciesColumn{FIELD_HISTOGRAM FIELD_NAME PARENT_TYPE SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP}type FieldLatenciesDimensions{field:String fieldName:String parentType:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in FieldLatencies. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input FieldLatenciesFilter{and:[FieldLatenciesFilter!]"""Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:FieldLatenciesFilterIn not:FieldLatenciesFilter or:[FieldLatenciesFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in FieldLatencies. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input FieldLatenciesFilterIn{"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type FieldLatenciesMetrics{fieldHistogram:DurationHistogram!}input FieldLatenciesOrderBySpec{column:FieldLatenciesColumn!direction:Ordering!}type FieldLatenciesRecord{"""Dimensions of FieldLatencies that can be grouped by.""" groupBy:FieldLatenciesDimensions!"""Metrics of FieldLatencies that can be aggregated over.""" metrics:FieldLatenciesMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of FieldUsage.""" enum FieldUsageColumn{CLIENT_NAME CLIENT_VERSION ESTIMATED_EXECUTION_COUNT EXECUTION_COUNT FIELD_NAME PARENT_TYPE QUERY_ID QUERY_NAME REFERENCING_OPERATION_COUNT SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP}type FieldUsageDimensions{clientName:String clientVersion:String fieldName:String parentType:String queryId:ID queryName:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in FieldUsage. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input FieldUsageFilter{and:[FieldUsageFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:FieldUsageFilterIn not:FieldUsageFilter or:[FieldUsageFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in FieldUsage. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input FieldUsageFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type FieldUsageMetrics{estimatedExecutionCount:Long!executionCount:Long!referencingOperationCount:Long!}input FieldUsageOrderBySpec{column:FieldUsageColumn!direction:Ordering!}type FieldUsageRecord{"""Dimensions of FieldUsage that can be grouped by.""" groupBy:FieldUsageDimensions!"""Metrics of FieldUsage that can be aggregated over.""" metrics:FieldUsageMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type FilterBuildInput{filterConfig:FilterConfig!schemaHash:String!}type FilterConfig{exclude:[String!]!include:[String!]!}input FilterConfigInput{exclude:[String!]!include:[String!]!}type GitContext{branch:String commit:ID commitUrl:String committer:String message:String remoteHost:GitRemoteHost remoteUrl:String}"""This is stored with a schema when it is uploaded""" input GitContextInput{branch:String commit:ID committer:String message:String remoteUrl:String}enum GitRemoteHost{BITBUCKET GITHUB GITLAB}type GlobalExperimentalFeatures{operationsCollections:Boolean!sandboxesFullRelease:Boolean!sandboxesPreview:Boolean!sandboxesSchemaChecksPage:Boolean!sandboxesSchemaDiffPage:Boolean!subgraphsInSandbox:Boolean!}type GraphApiKey implements ApiKey{createdAt:Timestamp!createdBy:Identity id:ID!keyName:String role:UserPermission!token:String!}"""A union of all combinations that can comprise the implementingServices for a Service""" union GraphImplementors=FederatedImplementingServices|NonFederatedImplementingService scalar GraphQLDocument """A variant of a graph, often corresponding to an environment where a graph runs (e.g. staging).
-See https://www.apollographql.com/docs/studio/org/graphs/ for more details.""" type GraphVariant{"""As new schema tags keep getting published, activeSchemaPublish refers to the latest.""" activeSchemaPublish:SchemaTag """The version of composition currently in use, if applicable""" compositionVersion:String """Filter configuration used to create the contract schema""" contractFilterConfig:FilterConfig """Preview a Contract schema built from this source variant.""" contractPreview(filters:FilterConfigInput!):ContractPreview!"""Explorer setting for default headers for a graph""" defaultHeaders:String derivedVariantCount:Int!"""Graph the variant belongs to.""" graph:Service!"""Graph ID of the variant. Prefer using graph { id } when feasible.""" graphId:String!"""If the variant has managed subgraphs.""" hasManagedSubgraphs:Boolean """Global identifier for the graph variant, in the form `graph@variant`.""" id:ID!"""Represents whether this variant is a Contract.""" isContract:Boolean!"""Is this variant one of the current user's favorite variants?""" isFavoriteOfCurrentUser:Boolean!"""If the variant has managed subgraphs.""" isFederated:Boolean@deprecated(reason:"Replaced by hasManagedSubgraphs")"""If the variant is protected""" isProtected:Boolean!isPublic:Boolean!"""Represents whether this variant should be listed in the public variants directory. This can only be true if the variant is also public.""" isPubliclyListed:Boolean!"""Represents whether Apollo has verified the authenticity of this public variant. This can only be true if the variant is also public.""" isVerified:Boolean!"""Latest approved launch for the variant, and what is served through Uplink.""" latestApprovedLaunch:Launch """Latest launch for the variant, whether successful or not.""" latestLaunch:Launch """Latest publication for the variant.""" latestPublication:SchemaTag launch(id:ID!):Launch launchHistory(limit:Int!=100):[Launch!]!links:[LinkInfo!]"""Name of the variant, like `variant`.""" name:String!operationCollections:[OperationCollection!]!"""Which permissions the current user has for interacting with this variant""" permissions:GraphVariantPermissions!"""Generate a federated operation plan for a given operation""" plan(document:GraphQLDocument!operationName:String):QueryPlan """Explorer setting for preflight script to run before the actual GraphQL operations is run.""" preflightScript:String readme:Readme """Registry stats for this particular graph variant""" registryStatsWindow(from:Timestamp!resolution:Resolution to:Timestamp):RegistryStatsWindow """The total number of requests for this variant in the last 24 hours""" requestsInLastDay:Long """If the graphql endpoint is set up to accept cookies.""" sendCookies:Boolean sourceVariant:GraphVariant """List of subgraphs that comprise a variant, null if not federated.
-Set includeDeleted to see deleted subgraphs.""" subgraphs(includeDeleted:Boolean!=false):[FederatedImplementingService!]"""URL where subscription operations can be executed.""" subscriptionUrl:String """A list of supported directives""" supportedDirectives:[DirectiveSupportStatus!]"""URL where non-subscription operations can be executed.""" url:String """The last instant that usage information (e.g. operation stat, client stats) was reported for this variant""" usageLastReportedAt:Timestamp}"""Result of looking up a variant by ref""" union GraphVariantLookup=GraphVariant|InvalidRefFormat """Modifies a variant of a graph, also called a schema tag in parts of our product.""" type GraphVariantMutation{addLinkToVariant(title:String type:LinkInfoType!url:String!):GraphVariant!configureComposition(enableTagAndInaccessible:Boolean version:String):GraphVariant enableTagAndInaccessible(enabled:Boolean!):GraphVariant@deprecated(reason:"Use configureComposition instead")"""Graph ID of the variant""" graphId:String!"""Global identifier for the graph variant, in the form `graph@variant`.""" id:ID!"""Name of the variant, like `variant`.""" name:String!relaunch:RelaunchResult!removeLinkFromVariant(linkInfoId:ID!):GraphVariant!setIsFavoriteOfCurrentUser(favorite:Boolean!):GraphVariant!updateDefaultHeaders(defaultHeaders:String):GraphVariant updateIsProtected(isProtected:Boolean!):GraphVariant updatePreflightScript(preflightScript:String):GraphVariant updateSendCookies(sendCookies:Boolean!):GraphVariant updateSubscriptionURL(subscriptionUrl:String):GraphVariant updateURL(url:String):GraphVariant updateVariantIsPublic(isPublic:Boolean!):GraphVariant updateVariantIsPubliclyListed(isPubliclyListed:Boolean!):GraphVariant updateVariantIsVerified(isVerified:Boolean!):GraphVariant updateVariantReadme(readme:String!):GraphVariant}"""A map from permission String to boolean that the currently authenticated user is allowed for a particular graph variant.""" type GraphVariantPermissions{canCreateCollectionInVariant:Boolean!"""Whether the currently authenticated user is permitted to manage/update the build configuration (e.g. build pipeline version) for this variant.""" canManageBuildConfig:Boolean!"""Whether the currently authenticated user is permitted to update variant-level settings for the Schema Explorer.""" canManageExplorerSettings:Boolean!"""Whether the currently authenticated user is permitted to publish schemas to this variant.""" canPushSchemas:Boolean!"""Whether the currently authenticated user is permitted to view details regarding the build configuration (e.g. build pipeline version) for this variant.""" canQueryBuildConfig:Boolean!"""Whether the currently authenticated user is permitted to download schemas associated to this variant.""" canQuerySchemas:Boolean!canShareCollectionInVariant:Boolean!canUpdateVariantLinkInfo:Boolean!"""Whether the currently authenticated user is permitted to update the README for this variant.""" canUpdateVariantReadme:Boolean!variantId:ID!}enum HTTPMethod{CONNECT DELETE GET HEAD OPTIONS PATCH POST PUT TRACE UNKNOWN UNRECOGNIZED}input HistoricQueryParameters{"""A list of clients to filter out during validation.""" excludedClients:[ClientInfoFilter!]=null """A list of operation names to filter out during validation.""" excludedOperationNames:[OperationNameFilterInput!]=null from:Timestamp="-86400" """A list of operation IDs to filter out during validation.""" ignoredOperations:[ID!]=null """A list of variants to include in the validation. If no variants are provided
+field changes.""" edits:Int!"""Number of changes that are removals of fields from object, interface, and input types.""" removals:Int!}"""Columns of FieldExecutions.""" enum FieldExecutionsColumn{ESTIMATED_EXECUTION_COUNT FIELD_NAME OBSERVED_EXECUTION_COUNT PARENT_TYPE REFERENCING_OPERATION_COUNT SCHEMA_TAG SERVICE_ID TIMESTAMP}type FieldExecutionsDimensions{fieldName:String parentType:String schemaTag:String serviceId:ID}"""Filter for data in FieldExecutions. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input FieldExecutionsFilter{and:[FieldExecutionsFilter!]"""Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:FieldExecutionsFilterIn not:FieldExecutionsFilter or:[FieldExecutionsFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in FieldExecutions. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input FieldExecutionsFilterIn{"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type FieldExecutionsMetrics{estimatedExecutionCount:Long!observedExecutionCount:Long!referencingOperationCount:Long!}input FieldExecutionsOrderBySpec{column:FieldExecutionsColumn!direction:Ordering!}type FieldExecutionsRecord{"""Dimensions of FieldExecutions that can be grouped by.""" groupBy:FieldExecutionsDimensions!"""Metrics of FieldExecutions that can be aggregated over.""" metrics:FieldExecutionsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of FieldLatencies.""" enum FieldLatenciesColumn{FIELD_HISTOGRAM FIELD_NAME PARENT_TYPE SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP}type FieldLatenciesDimensions{field:String fieldName:String parentType:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in FieldLatencies. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input FieldLatenciesFilter{and:[FieldLatenciesFilter!]"""Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:FieldLatenciesFilterIn not:FieldLatenciesFilter or:[FieldLatenciesFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in FieldLatencies. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input FieldLatenciesFilterIn{"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type FieldLatenciesMetrics{fieldHistogram:DurationHistogram!}input FieldLatenciesOrderBySpec{column:FieldLatenciesColumn!direction:Ordering!}type FieldLatenciesRecord{"""Dimensions of FieldLatencies that can be grouped by.""" groupBy:FieldLatenciesDimensions!"""Metrics of FieldLatencies that can be aggregated over.""" metrics:FieldLatenciesMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of FieldRequestsByClientVersion.""" enum FieldRequestsByClientVersionColumn{CLIENT_NAME CLIENT_VERSION ESTIMATED_EXECUTION_COUNT FIELD_NAME OBSERVED_EXECUTION_COUNT PARENT_TYPE REFERENCING_OPERATION_COUNT SCHEMA_TAG SERVICE_ID TIMESTAMP}type FieldRequestsByClientVersionDimensions{clientName:String clientVersion:String fieldName:String parentType:String schemaTag:String serviceId:ID}"""Filter for data in FieldRequestsByClientVersion. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input FieldRequestsByClientVersionFilter{and:[FieldRequestsByClientVersionFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:FieldRequestsByClientVersionFilterIn not:FieldRequestsByClientVersionFilter or:[FieldRequestsByClientVersionFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in FieldRequestsByClientVersion. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input FieldRequestsByClientVersionFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type FieldRequestsByClientVersionMetrics{estimatedExecutionCount:Long!observedExecutionCount:Long!referencingOperationCount:Long!}input FieldRequestsByClientVersionOrderBySpec{column:FieldRequestsByClientVersionColumn!direction:Ordering!}type FieldRequestsByClientVersionRecord{"""Dimensions of FieldRequestsByClientVersion that can be grouped by.""" groupBy:FieldRequestsByClientVersionDimensions!"""Metrics of FieldRequestsByClientVersion that can be aggregated over.""" metrics:FieldRequestsByClientVersionMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of FieldUsage.""" enum FieldUsageColumn{CLIENT_NAME CLIENT_VERSION ESTIMATED_EXECUTION_COUNT EXECUTION_COUNT FIELD_NAME PARENT_TYPE QUERY_ID QUERY_NAME REFERENCING_OPERATION_COUNT SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP}type FieldUsageDimensions{clientName:String clientVersion:String fieldName:String parentType:String queryId:ID queryName:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in FieldUsage. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input FieldUsageFilter{and:[FieldUsageFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:FieldUsageFilterIn not:FieldUsageFilter or:[FieldUsageFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in FieldUsage. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input FieldUsageFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type FieldUsageMetrics{estimatedExecutionCount:Long!executionCount:Long!referencingOperationCount:Long!}input FieldUsageOrderBySpec{column:FieldUsageColumn!direction:Ordering!}type FieldUsageRecord{"""Dimensions of FieldUsage that can be grouped by.""" groupBy:FieldUsageDimensions!"""Metrics of FieldUsage that can be aggregated over.""" metrics:FieldUsageMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type FilterBuildInput{filterConfig:FilterConfig!schemaHash:String!}type FilterConfig{exclude:[String!]!include:[String!]!}input FilterConfigInput{exclude:[String!]!include:[String!]!}type GitContext{branch:String commit:ID commitUrl:String committer:String message:String remoteHost:GitRemoteHost remoteUrl:String}"""This is stored with a schema when it is uploaded""" input GitContextInput{branch:String commit:ID committer:String message:String remoteUrl:String}enum GitRemoteHost{BITBUCKET GITHUB GITLAB}type GlobalExperimentalFeatures{operationsCollections:Boolean!sandboxesFullRelease:Boolean!sandboxesPreview:Boolean!sandboxesSchemaChecksPage:Boolean!sandboxesSchemaDiffPage:Boolean!subgraphsInSandbox:Boolean!}type GraphApiKey implements ApiKey{createdAt:Timestamp!createdBy:Identity id:ID!keyName:String role:UserPermission!token:String!}"""A union of all combinations that can comprise the implementingServices for a Service""" union GraphImplementors=FederatedImplementingServices|NonFederatedImplementingService scalar GraphQLDocument """A variant of a graph, often corresponding to an environment where a graph runs (e.g. staging).
+See https://www.apollographql.com/docs/studio/org/graphs/ for more details.""" type GraphVariant{"""As new schema tags keep getting published, activeSchemaPublish refers to the latest.""" activeSchemaPublish:SchemaTag """The version of composition currently in use, if applicable""" compositionVersion:String """Filter configuration used to create the contract schema""" contractFilterConfig:FilterConfig """Preview a Contract schema built from this source variant.""" contractPreview(filters:FilterConfigInput!):ContractPreview!defaultHeaders:String@deprecated(reason:"Use sharedHeaders instead")derivedVariantCount:Int!"""Graph the variant belongs to.""" graph:Service!"""Graph ID of the variant. Prefer using graph { id } when feasible.""" graphId:String!"""If the variant has managed subgraphs.""" hasManagedSubgraphs:Boolean """Global identifier for the graph variant, in the form `graph@variant`.""" id:ID!"""Represents whether this variant is a Contract.""" isContract:Boolean!"""Is this variant one of the current user's favorite variants?""" isFavoriteOfCurrentUser:Boolean!"""If the variant has managed subgraphs.""" isFederated:Boolean@deprecated(reason:"Replaced by hasManagedSubgraphs")"""If the variant is protected""" isProtected:Boolean!isPublic:Boolean!"""Represents whether this variant should be listed in the public variants directory. This can only be true if the variant is also public.""" isPubliclyListed:Boolean!"""Represents whether Apollo has verified the authenticity of this public variant. This can only be true if the variant is also public.""" isVerified:Boolean!"""Latest approved launch for the variant, and what is served through Uplink.""" latestApprovedLaunch:Launch """Latest launch for the variant, whether successful or not.""" latestLaunch:Launch """Latest publication for the variant.""" latestPublication:SchemaTag launch(id:ID!):Launch launchHistory(limit:Int!=100):[Launch!]!links:[LinkInfo!]"""Name of the variant, like `variant`.""" name:String!operationCollections:[OperationCollection!]!"""Which permissions the current user has for interacting with this variant""" permissions:GraphVariantPermissions!"""Generate a federated operation plan for a given operation""" plan(document:GraphQLDocument!operationName:String):QueryPlan """Explorer setting for preflight script to run before the actual GraphQL operations is run.""" preflightScript:String readme:Readme """Registry stats for this particular graph variant""" registryStatsWindow(from:Timestamp!resolution:Resolution to:Timestamp):RegistryStatsWindow """The total number of requests for this variant in the last 24 hours""" requestsInLastDay:Long """If the graphql endpoint is set up to accept cookies.""" sendCookies:Boolean """Explorer setting for shared headers for a graph""" sharedHeaders:String sourceVariant:GraphVariant """Subgraph of a given name, null if non-existent.""" subgraph(name:ID!):FederatedImplementingService """List of subgraphs that comprise a variant, null if not federated.
+Set includeDeleted to see deleted subgraphs.""" subgraphs(includeDeleted:Boolean!=false):[FederatedImplementingService!]"""URL where subscription operations can be executed.""" subscriptionUrl:String """A list of supported directives""" supportedDirectives:[DirectiveSupportStatus!]"""URL where non-subscription operations can be executed.""" url:String """The last instant that usage information (e.g. operation stat, client stats) was reported for this variant""" usageLastReportedAt:Timestamp}"""Result of looking up a variant by ref""" union GraphVariantLookup=GraphVariant|InvalidRefFormat """Modifies a variant of a graph, also called a schema tag in parts of our product.""" type GraphVariantMutation{addLinkToVariant(title:String type:LinkInfoType!url:String!):GraphVariant!configureComposition(enableTagAndInaccessible:Boolean version:String):GraphVariant """Delete the variant.""" delete:DeleteSchemaTagResult!enableTagAndInaccessible(enabled:Boolean!):GraphVariant@deprecated(reason:"Use configureComposition instead")"""Graph ID of the variant""" graphId:String!"""Global identifier for the graph variant, in the form `graph@variant`.""" id:ID!"""Name of the variant, like `variant`.""" name:String!relaunch:RelaunchResult!removeLinkFromVariant(linkInfoId:ID!):GraphVariant!setIsFavoriteOfCurrentUser(favorite:Boolean!):GraphVariant!updateDefaultHeaders(defaultHeaders:String):GraphVariant@deprecated(reason:"Use updateSharedHeaders instead")updateIsProtected(isProtected:Boolean!):GraphVariant updatePreflightScript(preflightScript:String):GraphVariant updateSendCookies(sendCookies:Boolean!):GraphVariant updateSharedHeaders(sharedHeaders:String):GraphVariant updateSubscriptionURL(subscriptionUrl:String):GraphVariant updateURL(url:String):GraphVariant updateVariantIsPublic(isPublic:Boolean!):GraphVariant updateVariantIsPubliclyListed(isPubliclyListed:Boolean!):GraphVariant updateVariantIsVerified(isVerified:Boolean!):GraphVariant updateVariantReadme(readme:String!):GraphVariant}"""A map from permission String to boolean that the currently authenticated user is allowed for a particular graph variant.""" type GraphVariantPermissions{canCreateCollectionInVariant:Boolean!"""Whether the currently authenticated user is permitted to manage/update the build configuration (e.g. build pipeline version) for this variant.""" canManageBuildConfig:Boolean!"""Whether the currently authenticated user is permitted to update variant-level settings for the Schema Explorer.""" canManageExplorerSettings:Boolean!"""Whether the currently authenticated user is permitted to publish schemas to this variant.""" canPushSchemas:Boolean!"""Whether the currently authenticated user is permitted to view details regarding the build configuration (e.g. build pipeline version) for this variant.""" canQueryBuildConfig:Boolean!"""Whether the currently authenticated user is permitted to download schemas associated to this variant.""" canQuerySchemas:Boolean!canShareCollectionInVariant:Boolean!canUpdateVariantLinkInfo:Boolean!"""Whether the currently authenticated user is permitted to update the README for this variant.""" canUpdateVariantReadme:Boolean!variantId:ID!}enum HTTPMethod{CONNECT DELETE GET HEAD OPTIONS PATCH POST PUT TRACE UNKNOWN UNRECOGNIZED}input HistoricQueryParameters{"""A list of clients to filter out during validation.""" excludedClients:[ClientInfoFilter!]=null """A list of operation names to filter out during validation.""" excludedOperationNames:[OperationNameFilterInput!]=null from:Timestamp="-86400" """A list of operation IDs to filter out during validation.""" ignoredOperations:[ID!]=null """A list of variants to include in the validation. If no variants are provided
 then this defaults to the "current" variant along with the base variant. The
 base variant indicates the schema that generates diff and marks the metrics that
 are checked for broken queries. We union this base variant with the untagged values('',
@@ -54,10 +54,10 @@ same as null inside of `in`, and 'current') in this metrics fetch. This strategy
 supports users who have not tagged their metrics or schema.""" includedVariants:[String!]=null """Minimum number of requests within the window for a query to be considered.""" queryCountThreshold:Int=1 """Number of requests within the window for a query to be considered, relative to
 total request count. Expected values are between 0 and 0.05 (minimum 5% of total
 request volume)""" queryCountThresholdPercentage:Float=0 to:Timestamp="-0"}"""An identity (e.g. Anonymous, a specific User) within Apollo Studio. See implementations.""" interface Identity{"""A view of the identity as an Actor type.""" asActor:Actor!"""An identifier for a given identity, unique within the context of the identity type.""" id:ID!"""A human-readable name for the identity in question.""" name:String!}"""An actor's identity and info about the client they used to perform the action""" type IdentityAndClientInfo{"""Client name provided when the actor performed the action""" clientName:String """Client version provided when the actor performed the action""" clientVersion:String """Identity info about the actor""" identity:Identity}union IdentityMutation=ServiceMutation|UserMutation type IgnoreOperationsInChecksResult{graph:Service!}"""The location of the implementing service config file in storage""" type ImplementingServiceLocation{"""The name of the implementing service""" name:String!"""The path in storage to access the implementing service config file""" path:String!}type InternalAdminUser{role:InternalMdgAdminRole!userID:String!}type InternalIdentity implements Identity{accounts:[Account!]!asActor:Actor!email:String id:ID!name:String!}enum InternalMdgAdminRole{INTERNAL_MDG_READ_ONLY INTERNAL_MDG_SALES INTERNAL_MDG_SUPER_ADMIN INTERNAL_MDG_SUPPORT}type IntrospectionDirective{args:[IntrospectionInputValue!]!description:String locations:[IntrospectionDirectiveLocation!]!name:String!}input IntrospectionDirectiveInput{args:[IntrospectionInputValueInput!]!description:String isRepeatable:Boolean locations:[IntrospectionDirectiveLocation!]!name:String!}"""__DirectiveLocation introspection type""" enum IntrospectionDirectiveLocation{"""Location adjacent to an argument definition.""" ARGUMENT_DEFINITION """Location adjacent to an enum definition.""" ENUM """Location adjacent to an enum value definition.""" ENUM_VALUE """Location adjacent to a field.""" FIELD """Location adjacent to a field definition.""" FIELD_DEFINITION """Location adjacent to a fragment definition.""" FRAGMENT_DEFINITION """Location adjacent to a fragment spread.""" FRAGMENT_SPREAD """Location adjacent to an inline fragment.""" INLINE_FRAGMENT """Location adjacent to an input object field definition.""" INPUT_FIELD_DEFINITION """Location adjacent to an input object type definition.""" INPUT_OBJECT """Location adjacent to an interface definition.""" INTERFACE """Location adjacent to a mutation operation.""" MUTATION """Location adjacent to an object type definition.""" OBJECT """Location adjacent to a query operation.""" QUERY """Location adjacent to a scalar definition.""" SCALAR """Location adjacent to a schema definition.""" SCHEMA """Location adjacent to a subscription operation.""" SUBSCRIPTION """Location adjacent to a union definition.""" UNION """Location adjacent to a variable definition.""" VARIABLE_DEFINITION}"""Values associated with introspection result for an enum value""" type IntrospectionEnumValue{depreactionReason:String@deprecated(reason:"Use deprecationReason instead")deprecationReason:String description:String isDeprecated:Boolean!name:String!}"""__EnumValue introspection type""" input IntrospectionEnumValueInput{deprecationReason:String description:String isDeprecated:Boolean!name:String!}"""Values associated with introspection result for field""" type IntrospectionField{args:[IntrospectionInputValue!]!deprecationReason:String description:String isDeprecated:Boolean!name:String!type:IntrospectionType!}"""__Field introspection type""" input IntrospectionFieldInput{args:[IntrospectionInputValueInput!]!deprecationReason:String description:String isDeprecated:Boolean!name:String!type:IntrospectionTypeInput!}"""Values associated with introspection result for an input field""" type IntrospectionInputValue{defaultValue:String description:String name:String!type:IntrospectionType!}"""__Value introspection type""" input IntrospectionInputValueInput{defaultValue:String deprecationReason:String description:String isDeprecated:Boolean name:String!type:IntrospectionTypeInput!}type IntrospectionSchema{directives:[IntrospectionDirective!]!mutationType:IntrospectionType queryType:IntrospectionType!subscriptionType:IntrospectionType types(filter:TypeFilterConfig={includeAbstractTypes:true includeBuiltInTypes:true includeIntrospectionTypes:true}):[IntrospectionType!]!}"""__Schema introspection type""" input IntrospectionSchemaInput{description:String directives:[IntrospectionDirectiveInput!]!mutationType:IntrospectionTypeRefInput queryType:IntrospectionTypeRefInput!subscriptionType:IntrospectionTypeRefInput types:[IntrospectionTypeInput!]}"""Object containing all possible values for an introspectionType""" type IntrospectionType{"""the base kind of the type this references, ignoring lists and nullability""" baseKind:IntrospectionTypeKind description:String enumValues(includeDeprecated:Boolean=false):[IntrospectionEnumValue!]fields:[IntrospectionField!]inputFields:[IntrospectionInputValue!]interfaces:[IntrospectionType!]kind:IntrospectionTypeKind name:String ofType:IntrospectionType possibleTypes:[IntrospectionType!]"""printed representation of type, including nested nullability and list ofTypes""" printed:String!}"""__Type introspection type""" input IntrospectionTypeInput{description:String enumValues:[IntrospectionEnumValueInput!]fields:[IntrospectionFieldInput!]inputFields:[IntrospectionInputValueInput!]interfaces:[IntrospectionTypeInput!]kind:IntrospectionTypeKind!name:String ofType:IntrospectionTypeInput possibleTypes:[IntrospectionTypeInput!]specifiedByUrl:String}enum IntrospectionTypeKind{"""Indicates this type is an enum. 'enumValues' is a valid field.""" ENUM """Indicates this type is an input object. 'inputFields' is a valid field.""" INPUT_OBJECT """Indicates this type is an interface. 'fields' and 'possibleTypes' are valid
-fields""" INTERFACE """Indicates this type is a list. 'ofType' is a valid field.""" LIST """Indicates this type is a non-null. 'ofType' is a valid field.""" NON_NULL """Indicates this type is an object. 'fields' and 'interfaces' are valid fields.""" OBJECT """Indicates this type is a scalar.""" SCALAR """Indicates this type is a union. 'possibleTypes' is a valid field.""" UNION}"""Shallow __Type introspection type""" input IntrospectionTypeRefInput{kind:String name:String!}type InvalidOperation{errors:[OperationValidationError!]signature:ID!}"""Type returned by reference lookup when the reference was invalid""" type InvalidRefFormat implements Error{message:String!}type InvalidTarget implements Error{message:String!}type Invoice{closedAt:Timestamp collectionMethod:String createdAt:Timestamp!invoiceNumber:Int!state:InvoiceState!totalInCents:Int!updatedAt:Timestamp!uuid:ID!}enum InvoiceState{COLLECTED FAILED OPEN PAST_DUE UNKNOWN}enum InvoiceStateV2{COLLECTED FAILED OPEN PAST_DUE UNKNOWN}type InvoiceV2{closedAt:Timestamp collectionMethod:String createdAt:Timestamp!invoiceNumber:Int!state:InvoiceStateV2!totalInCents:Int!updatedAt:Timestamp!uuid:ID!}type Launch{approvedAt:Timestamp build:Build buildInput:BuildInput!completedAt:Timestamp createdAt:Timestamp!downstreamLaunches:[Launch!]!graphId:String!graphVariant:String!id:ID!isAvailable:Boolean isCompleted:Boolean isPublished:Boolean isTarget:Boolean latestSequenceStep:LaunchSequenceStep publication:SchemaTag results:[LaunchResult!]!schemaTag:SchemaTag sequence:[LaunchSequenceStep!]!shortenedID:String!status:LaunchStatus!subgraphChanges:[SubgraphChange!]supersededAt:Timestamp supersededBy:Launch upstreamLaunch:Launch}"""more result types will be supported in the future""" union LaunchResult=ChangelogLaunchResult type LaunchSequenceBuildStep{completedAt:Timestamp startedAt:Timestamp}type LaunchSequenceCheckStep{completedAt:Timestamp startedAt:Timestamp}type LaunchSequenceCompletedStep{completedAt:Timestamp}type LaunchSequenceInitiatedStep{startedAt:Timestamp}type LaunchSequencePublishStep{completedAt:Timestamp startedAt:Timestamp}union LaunchSequenceStep=LaunchSequenceBuildStep|LaunchSequenceCheckStep|LaunchSequenceCompletedStep|LaunchSequenceInitiatedStep|LaunchSequencePublishStep|LaunchSequenceSupersededStep type LaunchSequenceSupersededStep{completedAt:Timestamp}enum LaunchStatus{LAUNCH_COMPLETED LAUNCH_FAILED LAUNCH_INITIATED}type LinkInfo{createdAt:Timestamp!id:ID!title:String type:LinkInfoType!url:String!}enum LinkInfoType{DEVELOPER_PORTAL OTHER REPOSITORY}"""Long type""" scalar Long type MarkChangesForOperationAsSafeResult{"""Nice to have for the frontend since the Apollo cache is already watching for AffectedQuery to update.
+fields""" INTERFACE """Indicates this type is a list. 'ofType' is a valid field.""" LIST """Indicates this type is a non-null. 'ofType' is a valid field.""" NON_NULL """Indicates this type is an object. 'fields' and 'interfaces' are valid fields.""" OBJECT """Indicates this type is a scalar.""" SCALAR """Indicates this type is a union. 'possibleTypes' is a valid field.""" UNION}"""Shallow __Type introspection type""" input IntrospectionTypeRefInput{kind:String name:String!}type InvalidOperation{errors:[OperationValidationError!]signature:ID!}"""Type returned by reference lookup when the reference was invalid""" type InvalidRefFormat implements Error{message:String!}type InvalidTarget implements Error{message:String!}type Invoice{closedAt:Timestamp collectionMethod:String createdAt:Timestamp!invoiceNumber:Int!state:InvoiceState!totalInCents:Int!updatedAt:Timestamp!uuid:ID!}enum InvoiceState{COLLECTED FAILED OPEN PAST_DUE UNKNOWN}enum InvoiceStateV2{COLLECTED FAILED OPEN PAST_DUE UNKNOWN}type InvoiceV2{closedAt:Timestamp collectionMethod:String createdAt:Timestamp!invoiceNumber:Int!state:InvoiceStateV2!totalInCents:Int!updatedAt:Timestamp!uuid:ID!}"""A Launch represents the complete process of making a set of updates to your deployed graph.""" type Launch{"""The time at which this launch was approved.""" approvedAt:Timestamp """The build for the variant being launched. Is non-null once the build is initiated.""" build:Build """Set of items that will be passed to the build.""" buildInput:BuildInput!"""The time at which this launch completed.""" completedAt:Timestamp """The time at which this launch initiated.""" createdAt:Timestamp!"""Contract launches that were triggered by this launch.""" downstreamLaunches:[Launch!]!"""The ID of the graph that this launch was initiated for.""" graphId:String!"""The name of the variant that this launch was initiated for.""" graphVariant:String!"""Unique identifier for this launch.""" id:ID!isAvailable:Boolean """Whether the launch completed.""" isCompleted:Boolean """Whether the launch was published.""" isPublished:Boolean isTarget:Boolean """Returns the most recent launch sequence step.""" latestSequenceStep:LaunchSequenceStep """A specific publication of a graph variant pertaining to this launch.""" publication:SchemaTag """The outcome of the launch.""" results:[LaunchResult!]!schemaTag:SchemaTag """This represents a sequence in the Launch. Returns a list of sequence steps that represents points of time in the launch.""" sequence:[LaunchSequenceStep!]!"""A shortened version of Launch.id. Contains the first 8 characters of the ID.""" shortenedID:String!"""The status of the launch.""" status:LaunchStatus!"""Changes that were made to the subgraphs for this launch.""" subgraphChanges:[SubgraphChange!]"""The time at which this launch was superseded by another launch.""" supersededAt:Timestamp """Represents the launch that caused this launch to not continue/publish.""" supersededBy:Launch """Upstream launch represents the launch of the source variant.""" upstreamLaunch:Launch}"""more result types will be supported in the future""" union LaunchResult=ChangelogLaunchResult type LaunchSequenceBuildStep{completedAt:Timestamp startedAt:Timestamp}type LaunchSequenceCheckStep{completedAt:Timestamp startedAt:Timestamp}type LaunchSequenceCompletedStep{completedAt:Timestamp}type LaunchSequenceInitiatedStep{startedAt:Timestamp}type LaunchSequencePublishStep{completedAt:Timestamp startedAt:Timestamp}union LaunchSequenceStep=LaunchSequenceBuildStep|LaunchSequenceCheckStep|LaunchSequenceCompletedStep|LaunchSequenceInitiatedStep|LaunchSequencePublishStep|LaunchSequenceSupersededStep type LaunchSequenceSupersededStep{completedAt:Timestamp}enum LaunchStatus{LAUNCH_COMPLETED LAUNCH_FAILED LAUNCH_INITIATED}type LinkInfo{createdAt:Timestamp!id:ID!title:String type:LinkInfoType!url:String!}enum LinkInfoType{DEVELOPER_PORTAL OTHER REPOSITORY}"""Long type""" scalar Long type MarkChangesForOperationAsSafeResult{"""Nice to have for the frontend since the Apollo cache is already watching for AffectedQuery to update.
 This might return null if no behavior changes were found for the affected operation ID.
 This is a weird situation that should never happen.""" affectedOperation:AffectedQuery message:String!success:Boolean!}type MediaUploadInfo{csrfToken:String!maxContentLength:Int!url:String!}union MoveOperationCollectionEntryResult=InvalidTarget|MoveOperationCollectionEntrySuccess|PermissionError type MoveOperationCollectionEntrySuccess{operation:OperationCollectionEntry!originCollection:OperationCollection!targetCollection:OperationCollection!}type Mutation{account(id:ID!):AccountMutation """Creates an operation collection for the given variantRefs, or make a sandbox collection without variantRefs.""" createOperationCollection(description:String editRoles:[UserPermission!]isSandbox:Boolean!isShared:Boolean!name:String!variantRefs:[ID!]):CreateOperationCollectionResult!"""Finalize a password reset with a token included in the E-mail link,
-returns the corresponding login email when successful""" finalizePasswordReset(newPassword:String!resetToken:String!):String """Mutation a graph.""" graph(id:ID!):ServiceMutation """Join an account with a token""" joinAccount(accountId:ID!joinToken:String!):Account me:IdentityMutation newAccount(companyUrl:String id:ID!):Account newService(accountId:ID!description:String hiddenFromUninvitedNonAdminAccountMembers:Boolean!=false id:ID!isDev:Boolean!=false name:String title:String):Service operationCollection(id:ID!):OperationCollectionMutation """Refresh all plans from third-party billing service""" plansRefreshBilling:Void """Report a running GraphQL server's schema.""" reportSchema("""Only sent if previously requested i.e. received ReportSchemaResult with withCoreSchema = true. This is a GraphQL schema document as a string. Note that for a GraphQL server with a core schema, this should be the core schema, not the API schema.""" coreSchema:String """Information about server and its schema.""" report:SchemaReport!):ReportSchemaResult """Ask for a user's password to be reset by E-mail""" resetPassword(email:String!):Void resolveAllInternalCronExecutions(group:String name:String):Void resolveInternalCronExecution(id:ID!):CronExecution service(id:ID!):ServiceMutation """Set the subscriptions for a given email""" setSubscriptions(email:String!subscriptions:[EmailCategory!]!token:String!):EmailPreferences """Set the studio settings for the current user""" setUserSettings(newSettings:UserSettingsInput):UserSettings signUp(email:String!fullName:String!password:String!referrer:String trackingGoogleClientId:String trackingMarketoClientId:String userSegment:UserSegment utmCampaign:String utmMedium:String utmSource:String):User """This is called by the form shown to users after they delete their user or organization account.""" submitPostDeletionFeedback(feedback:String!targetIdentifier:ID!targetType:DeletionTargetType!):Void """Mutation for basic engagement tracking in studio""" track(event:EventEnum!graphID:String!graphVariant:String!="current"):Void """Rover session tracking. Reserved to https://rover.apollo.dev/telemetry (https://github.com/apollographql/orbiter).""" trackRoverSession(anonymousId:ID!arguments:[RoverArgumentInput!]!ci:String command:String!cwdHash:SHA256!os:String!remoteUrlHash:SHA256!sessionId:ID!version:String!):Void """Unsubscribe a given email from all emails""" unsubscribeFromAll(email:String!token:String!):EmailPreferences user(id:ID!):UserMutation}type NamedIntrospectionArg{description:String name:String}type NamedIntrospectionArgNoDescription{name:String}"""The shared fields for a named introspection type. Currently this is returned for the
+returns the corresponding login email when successful""" finalizePasswordReset(newPassword:String!resetToken:String!):String """Mutation a graph.""" graph(id:ID!):ServiceMutation """Join an account with a token""" joinAccount(accountId:ID!joinToken:String!):Account me:IdentityMutation newAccount(companyUrl:String id:ID!):Account newService(accountId:ID!description:String hiddenFromUninvitedNonAdminAccountMembers:Boolean!=false id:ID!isDev:Boolean!=false name:String onboardingArchitecture:OnboardingArchitecture title:String):Service operationCollection(id:ID!):OperationCollectionMutation """Report a running GraphQL server's schema.""" reportSchema("""Only sent if previously requested i.e. received ReportSchemaResult with withCoreSchema = true. This is a GraphQL schema document as a string. Note that for a GraphQL server with a core schema, this should be the core schema, not the API schema.""" coreSchema:String """Information about server and its schema.""" report:SchemaReport!):ReportSchemaResult """Ask for a user's password to be reset by E-mail""" resetPassword(email:String!):Void resolveAllInternalCronExecutions(group:String name:String):Void resolveInternalCronExecution(id:ID!):CronExecution service(id:ID!):ServiceMutation """Set the subscriptions for a given email""" setSubscriptions(email:String!subscriptions:[EmailCategory!]!token:String!):EmailPreferences """Set the studio settings for the current user""" setUserSettings(newSettings:UserSettingsInput):UserSettings signUp(email:String!fullName:String!password:String!referrer:String trackingGoogleClientId:String trackingMarketoClientId:String userSegment:UserSegment utmCampaign:String utmMedium:String utmSource:String):User """This is called by the form shown to users after they delete their user or organization account.""" submitPostDeletionFeedback(feedback:String!targetIdentifier:ID!targetType:DeletionTargetType!):Void """Mutation for basic engagement tracking in studio""" track(event:EventEnum!graphID:String!graphVariant:String!="current"):Void """Rover session tracking. Reserved to https://rover.apollo.dev/telemetry (https://github.com/apollographql/orbiter).""" trackRoverSession(anonymousId:ID!arguments:[RoverArgumentInput!]!ci:String command:String!cwdHash:SHA256!os:String!remoteUrlHash:SHA256 sessionId:ID!version:String!):Void """Unsubscribe a given email from all emails""" unsubscribeFromAll(email:String!token:String!):EmailPreferences user(id:ID!):UserMutation}type NamedIntrospectionArg{description:String name:String}type NamedIntrospectionArgNoDescription{name:String}"""The shared fields for a named introspection type. Currently this is returned for the
 top level value affected by a change. In the future, we may update this
 type to be an interface, which is extended by the more specific types:
 scalar, object, input object, union, interface, and enum
@@ -68,8 +68,8 @@ as input fields, objects in interfaces, enum values. In the future, this
 value could become an interface to allow fields specific to the types
 returned.""" type NamedIntrospectionValue{description:String name:String printedType:String}type NamedIntrospectionValueNoDescription{name:String printedType:String}"""A non-federated service for a monolithic graph.""" type NonFederatedImplementingService{"""Timestamp of when this implementing service was created.""" createdAt:Timestamp!"""Identifies which graph this non-implementing service belongs to.
 Formerly known as "service_id".""" graphID:String!"""Specifies which variant of a graph this implementing service belongs to".
-Formerly known as "tag".""" graphVariant:String!}type NotFoundError implements Error{message:String!}"""Arbitrary JSON object""" scalar Object type OdysseyCertification{certificationId:String!earnedAt:Timestamp!id:ID!owner:OdysseyCertificationOwner}type OdysseyCertificationOwner{fullName:String!id:ID!}type OdysseyCourse{completedAt:Timestamp enrolledAt:Timestamp id:ID!}input OdysseyCourseInput{completedAt:Timestamp courseId:String!}type OdysseyTask{completedAt:Timestamp id:ID!value:String}input OdysseyTaskInput{completedAt:Timestamp taskId:String!value:String}type Operation{id:ID!name:String signature:String truncated:Boolean!}type OperationAcceptedChange{acceptedAt:Timestamp!acceptedBy:Identity!change:StoredApprovedChange!checkID:ID!graphID:ID!id:ID!operationID:String!}"""Columns of OperationCheckStats.""" enum OperationCheckStatsColumn{CACHED_REQUESTS_COUNT CLIENT_NAME CLIENT_VERSION QUERY_ID QUERY_NAME SCHEMA_TAG SERVICE_ID TIMESTAMP UNCACHED_REQUESTS_COUNT}type OperationCheckStatsDimensions{clientName:String clientVersion:String queryId:ID queryName:String schemaTag:String serviceId:ID}"""Filter for data in OperationCheckStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input OperationCheckStatsFilter{and:[OperationCheckStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String in:OperationCheckStatsFilterIn not:OperationCheckStatsFilter or:[OperationCheckStatsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in OperationCheckStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input OperationCheckStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type OperationCheckStatsMetrics{cachedRequestsCount:Long!uncachedRequestsCount:Long!}input OperationCheckStatsOrderBySpec{column:OperationCheckStatsColumn!direction:Ordering!}type OperationCheckStatsRecord{"""Dimensions of OperationCheckStats that can be grouped by.""" groupBy:OperationCheckStatsDimensions!"""Metrics of OperationCheckStats that can be aggregated over.""" metrics:OperationCheckStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type OperationCollection{createdAt:Timestamp!createdBy:Identity description:String """If a user has any of these roles, they will be able to edit this
-collection. This will be null if and only if \`isShared\` is false""" editRoles:[UserPermission!]id:ID!isFavorite:Boolean!isSandbox:Boolean!isShared:Boolean!lastUpdatedAt:Timestamp!lastUpdatedBy:Identity name:String!operation(id:ID!):OperationCollectionEntryResult operations:[OperationCollectionEntry!]!""" Permissions the current user has for this collection""" permissions:OperationCollectionPermissions!variants:[GraphVariant!]!}type OperationCollectionEntry{collection:OperationCollection!createdAt:Timestamp!createdBy:Identity currentOperationRevision:OperationCollectionEntryState!id:ID!lastUpdatedAt:Timestamp!lastUpdatedBy:Identity name:String!orderingIndex:String!}type OperationCollectionEntryMutation{moveToCollection(collectionId:ID!lowerOrderingBound:String upperOrderingBound:String):MoveOperationCollectionEntryResult!reorderEntry(lowerOrderingBound:String upperOrderingBound:String):UpdateOperationCollectionResult updateName(name:String!):UpdateOperationCollectionEntryResult updateValues(operationInput:OperationCollectionEntryStateInput!):UpdateOperationCollectionEntryResult}union OperationCollectionEntryMutationResult=NotFoundError|OperationCollectionEntryMutation|PermissionError union OperationCollectionEntryResult=NotFoundError|OperationCollectionEntry type OperationCollectionEntryState{body:String!createdAt:Timestamp!createdBy:Identity headers:[OperationHeader!]variables:String}input OperationCollectionEntryStateInput{body:String!headers:[OperationHeaderInput!]""" I'm assuming this is non null""" variables:String}type OperationCollectionMutation{addOperation(name:String!operationInput:OperationCollectionEntryStateInput!):AddOperationCollectionEntryResult addToVariant(variantRef:ID!):AddOperationCollectionToVariantResult!@deprecated(reason:"Will throw NotImplemented")delete:DeleteOperationCollectionResult deleteOperation(id:ID!):RemoveOperationCollectionEntryResult duplicateCollection(description:String isSandbox:Boolean!isShared:Boolean!name:String!variantRef:ID):DuplicateOperationCollectionResult!operation(id:ID!):OperationCollectionEntryMutationResult removeFromVariant(variantRef:ID!):RemoveOperationCollectionFromVariantResult!@deprecated(reason:"Will throw NotImplemented")updateDescription(description:String):UpdateOperationCollectionResult updateEditRoles(editRoles:[UserPermission!]!):UpdateOperationCollectionResult updateIsFavorite(isFavorite:Boolean!):UpdateOperationCollectionResult updateIsShared(isShared:Boolean!):UpdateOperationCollectionResult updateName(name:String!):UpdateOperationCollectionResult}type OperationCollectionPermissions{canEditOperations:Boolean!canManage:Boolean!canReadOperations:Boolean!}union OperationCollectionResult=NotFoundError|OperationCollection|PermissionError type OperationDocument{"""Operation document body""" body:String!"""Operation name""" name:String}input OperationDocumentInput{"""Operation document body""" body:String!"""Operation name""" name:String}type OperationHeader{name:String!value:String!}input OperationHeaderInput{name:String!value:String!}"""Operation name filter configuration for a graph.""" type OperationNameFilter{"""name of the operation by the user and reported alongside metrics""" name:String!}"""Options to filter by operation name.""" input OperationNameFilterInput{"""name of the operation set by the user and reported alongside metrics""" name:String!}type OperationValidationError{message:String!}type OperationsCheckResult{"""Operations affected by all changes in diff""" affectedQueries:[AffectedQuery!]"""Summary/counts for all changes in diff""" changeSummary:ChangeSummary!"""List of schema changes with associated affected clients and operations""" changes:[Change!]!"""Indication of the success of the change, either failure, warning, or notice.""" checkSeverity:ChangeSeverity!"""The variant that was used as a base to check against""" checkedVariant:GraphVariant!createdAt:Timestamp!id:ID!"""Number of affected query operations that are neither marked as SAFE or IGNORED""" numberOfAffectedOperations:Int!"""Number of operations that were validated during schema diff""" numberOfCheckedOperations:Int!workflowTask:OperationsCheckTask!}type OperationsCheckTask implements CheckWorkflowTask{completedAt:Timestamp createdAt:Timestamp!id:ID!"""The result of the check.""" result:OperationsCheckResult status:CheckWorkflowTaskStatus!workflow:CheckWorkflow!}enum Ordering{ASCENDING DESCENDING}"""A reusable invite link for an organization.""" type OrganizationInviteLink{createdAt:Timestamp!"""A joinToken that can be passed to Mutation.joinAccount to join the organization.""" joinToken:String!"""The role that the user will receive if they join the organization with this link.""" role:UserPermission!}type OrganizationSSO{defaultRole:UserPermission!idpid:ID!provider:OrganizationSSOProvider!}enum OrganizationSSOProvider{PINGONE}"""PagerDuty notification channel""" type PagerDutyChannel implements Channel{id:ID!name:String!routingKey:String!subscriptions:[ChannelSubscription!]!}"""PagerDuty notification channel parameters""" input PagerDutyChannelInput{name:String routingKey:String!}"""Schema for a subgraph with associated metadata""" type PartialSchema{"""Timestamp for when the partial schema was created""" createdAt:Timestamp!"""If this sdl is currently actively composed in the gateway, this is true""" isLive:Boolean!"""The GraphQL document for a subgraph schema.""" sdl:String!"""The path of deep storage to find the raw enriched partial schema file""" sdlPath:String!}"""Input for registering a partial schema to an implementing service.
+Formerly known as "tag".""" graphVariant:String!}type NotFoundError implements Error{message:String!}"""Arbitrary JSON object""" scalar Object type OdysseyAttempt{completedAt:Timestamp id:ID!responses:[OdysseyResponse!]!startedAt:Timestamp!testId:String!}type OdysseyCertification{certificationId:String!earnedAt:Timestamp!id:ID!owner:OdysseyCertificationOwner}type OdysseyCertificationOwner{fullName:String!id:ID!}type OdysseyCourse{completedAt:Timestamp enrolledAt:Timestamp id:ID!}input OdysseyCourseInput{completedAt:Timestamp courseId:String!}type OdysseyResponse{correct:Boolean!id:ID!questionId:String!values:[OdysseyValue!]!}input OdysseyResponseInput{attemptId:ID!correct:Boolean!questionId:String!values:[String!]!}type OdysseyTask{completedAt:Timestamp id:ID!value:String}input OdysseyTaskInput{completedAt:Timestamp taskId:String!value:String}type OdysseyValue{id:ID!value:String!}enum OnboardingArchitecture{MONOLITH SUPERGRAPH}type Operation{id:ID!name:String signature:String truncated:Boolean!}type OperationAcceptedChange{acceptedAt:Timestamp!acceptedBy:Identity!change:StoredApprovedChange!checkID:ID!graphID:ID!id:ID!operationID:String!}"""Columns of OperationCheckStats.""" enum OperationCheckStatsColumn{CACHED_REQUESTS_COUNT CLIENT_NAME CLIENT_VERSION QUERY_ID QUERY_NAME SCHEMA_TAG SERVICE_ID TIMESTAMP UNCACHED_REQUESTS_COUNT}type OperationCheckStatsDimensions{clientName:String clientVersion:String queryId:ID queryName:String schemaTag:String serviceId:ID}"""Filter for data in OperationCheckStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input OperationCheckStatsFilter{and:[OperationCheckStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String in:OperationCheckStatsFilterIn not:OperationCheckStatsFilter or:[OperationCheckStatsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in OperationCheckStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input OperationCheckStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type OperationCheckStatsMetrics{cachedRequestsCount:Long!uncachedRequestsCount:Long!}input OperationCheckStatsOrderBySpec{column:OperationCheckStatsColumn!direction:Ordering!}type OperationCheckStatsRecord{"""Dimensions of OperationCheckStats that can be grouped by.""" groupBy:OperationCheckStatsDimensions!"""Metrics of OperationCheckStats that can be aggregated over.""" metrics:OperationCheckStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type OperationCollection{createdAt:Timestamp!createdBy:Identity description:String """If a user has any of these roles, they will be able to edit this
+collection. This will be null if and only if \`isShared\` is false""" editRoles:[UserPermission!]@deprecated(reason:"deprecated in favour of minEditRole")id:ID!isFavorite:Boolean!isSandbox:Boolean!isShared:Boolean!lastUpdatedAt:Timestamp!lastUpdatedBy:Identity minEditRole:UserPermission name:String!operation(id:ID!):OperationCollectionEntryResult operations:[OperationCollectionEntry!]!""" Permissions the current user has for this collection""" permissions:OperationCollectionPermissions!variants:[GraphVariant!]!}type OperationCollectionEntry{collection:OperationCollection!createdAt:Timestamp!createdBy:Identity currentOperationRevision:OperationCollectionEntryState!id:ID!lastUpdatedAt:Timestamp!lastUpdatedBy:Identity name:String!orderingIndex:String!}type OperationCollectionEntryMutation{moveToCollection(collectionId:ID!lowerOrderingBound:String upperOrderingBound:String):MoveOperationCollectionEntryResult!reorderEntry(lowerOrderingBound:String upperOrderingBound:String):UpdateOperationCollectionResult updateName(name:String!):UpdateOperationCollectionEntryResult updateValues(operationInput:OperationCollectionEntryStateInput!):UpdateOperationCollectionEntryResult}union OperationCollectionEntryMutationResult=NotFoundError|OperationCollectionEntryMutation|PermissionError union OperationCollectionEntryResult=NotFoundError|OperationCollectionEntry type OperationCollectionEntryState{body:String!createdAt:Timestamp!createdBy:Identity headers:[OperationHeader!]variables:String}input OperationCollectionEntryStateInput{body:String!headers:[OperationHeaderInput!]""" I'm assuming this is non null""" variables:String}type OperationCollectionMutation{addOperation(name:String!operationInput:OperationCollectionEntryStateInput!):AddOperationCollectionEntryResult addToVariant(variantRef:ID!):AddOperationCollectionToVariantResult!@deprecated(reason:"Will throw NotImplemented")delete:DeleteOperationCollectionResult deleteOperation(id:ID!):RemoveOperationCollectionEntryResult duplicateCollection(description:String isSandbox:Boolean!isShared:Boolean!name:String!variantRef:ID):DuplicateOperationCollectionResult!operation(id:ID!):OperationCollectionEntryMutationResult removeFromVariant(variantRef:ID!):RemoveOperationCollectionFromVariantResult!@deprecated(reason:"Will throw NotImplemented")setMinEditRole(editRole:UserPermission):UpdateOperationCollectionResult updateDescription(description:String):UpdateOperationCollectionResult updateEditRoles(editRoles:[UserPermission!]!):UpdateOperationCollectionResult@deprecated(reason:"Deprecated in favour of setMinEditRole")updateIsFavorite(isFavorite:Boolean!):UpdateOperationCollectionResult updateIsShared(isShared:Boolean!):UpdateOperationCollectionResult updateName(name:String!):UpdateOperationCollectionResult}type OperationCollectionPermissions{canEditOperations:Boolean!canManage:Boolean!canReadOperations:Boolean!}union OperationCollectionResult=NotFoundError|OperationCollection|PermissionError type OperationDocument{"""Operation document body""" body:String!"""Operation name""" name:String}input OperationDocumentInput{"""Operation document body""" body:String!"""Operation name""" name:String}type OperationHeader{name:String!value:String!}input OperationHeaderInput{name:String!value:String!}"""Operation name filter configuration for a graph.""" type OperationNameFilter{"""name of the operation by the user and reported alongside metrics""" name:String!}"""Options to filter by operation name.""" input OperationNameFilterInput{"""name of the operation set by the user and reported alongside metrics""" name:String!}type OperationValidationError{message:String!}type OperationsCheckResult{"""Operations affected by all changes in diff""" affectedQueries:[AffectedQuery!]"""Summary/counts for all changes in diff""" changeSummary:ChangeSummary!"""List of schema changes with associated affected clients and operations""" changes:[Change!]!"""Indication of the success of the change, either failure, warning, or notice.""" checkSeverity:ChangeSeverity!"""The variant that was used as a base to check against""" checkedVariant:GraphVariant!createdAt:Timestamp!id:ID!"""Number of affected query operations that are neither marked as SAFE or IGNORED""" numberOfAffectedOperations:Int!"""Number of operations that were validated during schema diff""" numberOfCheckedOperations:Int!workflowTask:OperationsCheckTask!}type OperationsCheckTask implements CheckWorkflowTask{completedAt:Timestamp createdAt:Timestamp!id:ID!"""The result of the check.""" result:OperationsCheckResult status:CheckWorkflowTaskStatus!workflow:CheckWorkflow!}enum Ordering{ASCENDING DESCENDING}"""A reusable invite link for an organization.""" type OrganizationInviteLink{createdAt:Timestamp!"""A joinToken that can be passed to Mutation.joinAccount to join the organization.""" joinToken:String!"""The role that the user will receive if they join the organization with this link.""" role:UserPermission!}type OrganizationSSO{defaultRole:UserPermission!idpid:ID!provider:OrganizationSSOProvider!}enum OrganizationSSOProvider{PINGONE}"""PagerDuty notification channel""" type PagerDutyChannel implements Channel{id:ID!name:String!routingKey:String!subscriptions:[ChannelSubscription!]!}"""PagerDuty notification channel parameters""" input PagerDutyChannelInput{name:String routingKey:String!}"""Schema for a subgraph with associated metadata""" type PartialSchema{"""Timestamp for when the partial schema was created""" createdAt:Timestamp!"""If this sdl is currently actively composed in the gateway, this is true""" isLive:Boolean!"""The GraphQL document for a subgraph schema.""" sdl:String!"""The path of deep storage to find the raw enriched partial schema file""" sdlPath:String!}"""Input for registering a partial schema to an implementing service.
 One of the fields must be specified (validated server-side).
 
 If a new partialSchemaSDL is passed in, this operation will store it before
@@ -79,7 +79,7 @@ If both the sdl and hash are specified, an error will be thrown if the provided
 hash doesn't match our hash of the sdl contents. If the sdl field is specified,
 the hash does not need to be and will be computed server-side.""" input PartialSchemaInput{"""Hash of the partial schema to associate; error is thrown if only the hash is
 specified and the hash has not been seen before""" hash:String """Contents of the partial schema in SDL syntax, but may reference types
-that aren't defined in this document""" sdl:String}type PermissionError implements Error{message:String!}type PromoteSchemaError{code:PromoteSchemaErrorCode!message:String!}enum PromoteSchemaErrorCode{CANNOT_PROMOTE_SCHEMA_FOR_FEDERATED_GRAPH}type PromoteSchemaResponse{code:PromoteSchemaResponseCode!tag:SchemaTag!}enum PromoteSchemaResponseCode{NO_CHANGES_DETECTED PROMOTION_SUCCESS}union PromoteSchemaResponseOrError=PromoteSchemaError|PromoteSchemaResponse type Protobuf{json:String!object:Object!raw:Blob!text:String!}type Query{"""Account by ID""" account(id:ID!):Account """Retrieve account by billing provider identifier""" accountByBillingCode(id:ID!):Account """Whether an account ID is available for mutation{newAccount(id:)}""" accountIDAvailable(id:ID!):Boolean!"""All accounts""" allAccounts(search:String tier:BillingPlanTier):[Account!]"""All available plans""" allPlans:[BillingPlan!]!allPublicVariants:[GraphVariant!]"""All services""" allServices(search:String):[Service!]"""All timezones with their offsets from UTC""" allTimezoneOffsets:[TimezoneOffset!]!"""All users""" allUsers(search:String):[User!]"""Look up a plan by ID""" billingPlan(id:ID):BillingPlanV2 """All available plans""" billingPlans:[BillingPlanV2!]!"""If this is true, the user is an Apollo administrator who can ignore restrictions based purely on billing plan.""" canBypassPlanRestrictions:Boolean!diffSchemas(baseSchema:String!nextSchema:String!):[Change!]!"""Get the unsubscribe settings for a given email.""" emailPreferences(email:String!token:String!):EmailPreferences experimentalFeatures:GlobalExperimentalFeatures!"""Address of the Studio frontend.""" frontendUrlRoot:String!"""Access a graph by ID.""" graph(id:ID!):Service internalActiveCronJobs:[CronJob!]!internalAdminUsers:[InternalAdminUser!]internalUnresolvedCronExecutionFailures:[CronExecution!]!"""User or graph querying the API, null if not authenticated.""" me:Identity odysseyCertification(id:ID!):OdysseyCertification operationCollection(id:ID!):OperationCollectionResult!operationCollectionEntries(collectionEntryIds:[ID!]!):[OperationCollectionEntry!]!"""Access an organization by ID.""" organization(id:ID!):Account """Look up a plan by ID""" plan(id:ID):BillingPlan """A list of public variants that have been selected to be shown on our Graph Directory.""" publiclyListedVariants:[GraphVariant!]"""Service by ID""" service(id:ID!):Service """Query statistics across all services. For admins only; normal users must go through AccountsStatsWindow or ServiceStatsWindow.""" stats(from:Timestamp!"""Granularity of buckets. Defaults to the entire range (aggregate all data into a single durationBucket) when null.""" resolution:Resolution """Defaults to the current time when null.""" to:Timestamp):StatsWindow!"""Get the studio settings for the current user""" studioSettings:UserSettings """The plan started by AccountMutation.startTeamSubscription""" teamBillingPlan(billingPeriod:BillingPeriod!):BillingPlanV2!"""The plan started by AccountMutation.startTeamSubscription""" teamPlan(billingPeriod:BillingPeriod!):BillingPlan!"""Schema transformation for the Apollo platform API. Renames types. Internal to Apollo.""" transformSchemaForPlatformApi(baseSchema:GraphQLDocument!):GraphQLDocument """The plan started by AccountMutation.startTrial""" trialBillingPlan:BillingPlanV2!"""The plan started by AccountMutation.startTrial""" trialPlan:BillingPlan!"""User by ID""" user(id:ID!):User """Access a variant by reference of the form `graphID@variantName`, or `graphID` for the default `current` variant.
+that aren't defined in this document""" sdl:String}type PermissionError implements Error{message:String!}type PromoteSchemaError{code:PromoteSchemaErrorCode!message:String!}enum PromoteSchemaErrorCode{CANNOT_PROMOTE_SCHEMA_FOR_FEDERATED_GRAPH}type PromoteSchemaResponse{code:PromoteSchemaResponseCode!tag:SchemaTag!}enum PromoteSchemaResponseCode{NO_CHANGES_DETECTED PROMOTION_SUCCESS}union PromoteSchemaResponseOrError=PromoteSchemaError|PromoteSchemaResponse type Protobuf{json:String!object:Object!raw:Blob!text:String!}type Query{"""Account by ID""" account(id:ID!):Account """Retrieve account by billing provider identifier""" accountByBillingCode(id:ID!):Account """Retrieve account by internal id""" accountByInternalID(id:ID!):Account """Whether an account ID is available for mutation{newAccount(id:)}""" accountIDAvailable(id:ID!):Boolean!"""All accounts""" allAccounts(search:String tier:BillingPlanTier):[Account!]"""All available plans""" allPlans:[BillingPlan!]!allPublicVariants:[GraphVariant!]"""All services""" allServices(search:String):[Service!]"""All timezones with their offsets from UTC""" allTimezoneOffsets:[TimezoneOffset!]!"""All users""" allUsers(search:String):[User!]"""Look up a plan by ID""" billingPlan(id:ID):BillingPlanV2 """All available plans""" billingPlans:[BillingPlanV2!]!"""If this is true, the user is an Apollo administrator who can ignore restrictions based purely on billing plan.""" canBypassPlanRestrictions:Boolean!diffSchemas(baseSchema:String!nextSchema:String!):[Change!]!"""Get the unsubscribe settings for a given email.""" emailPreferences(email:String!token:String!):EmailPreferences experimentalFeatures:GlobalExperimentalFeatures!"""Address of the Studio frontend.""" frontendUrlRoot:String!"""Access a graph by ID.""" graph(id:ID!):Service internalActiveCronJobs:[CronJob!]!internalAdminUsers:[InternalAdminUser!]internalUnresolvedCronExecutionFailures:[CronExecution!]!"""User or graph querying the API, null if not authenticated.""" me:Identity odysseyCertification(id:ID!):OdysseyCertification operationCollection(id:ID!):OperationCollectionResult!operationCollectionEntries(collectionEntryIds:[ID!]!):[OperationCollectionEntry!]!"""Access an organization by ID.""" organization(id:ID!):Account """Look up a plan by ID""" plan(id:ID):BillingPlan """A list of public variants that have been selected to be shown on our Graph Directory.""" publiclyListedVariants:[GraphVariant!]"""Service by ID""" service(id:ID!):Service """Query statistics across all services. For admins only; normal users must go through AccountsStatsWindow or ServiceStatsWindow.""" stats(from:Timestamp!"""Granularity of buckets. Defaults to the entire range (aggregate all data into a single durationBucket) when null.""" resolution:Resolution """Defaults to the current time when null.""" to:Timestamp):StatsWindow!"""Get the studio settings for the current user""" studioSettings:UserSettings """The plan started by AccountMutation.startTeamSubscription""" teamBillingPlan(billingPeriod:BillingPeriod!):BillingPlanV2!"""The plan started by AccountMutation.startTeamSubscription""" teamPlan(billingPeriod:BillingPeriod!):BillingPlan!"""Schema transformation for the Apollo platform API. Renames types. Internal to Apollo.""" transformSchemaForPlatformApi(baseSchema:GraphQLDocument!):GraphQLDocument """The plan started by AccountMutation.startTrial""" trialBillingPlan:BillingPlanV2!"""The plan started by AccountMutation.startTrial""" trialPlan:BillingPlan!"""User by ID""" user(id:ID!):User """Access a variant by reference of the form `graphID@variantName`, or `graphID` for the default `current` variant.
 Returns null when the graph or variant do not exist, or when the graph cannot be accessed.
 Note that we can return more types implementing Error in the future.""" variant(ref:ID!):GraphVariantLookup}"""query documents to validate against""" input QueryDocumentInput{document:String}type QueryPlan{json:String!object:Object!text:String!}"""Columns of QueryStats.""" enum QueryStatsColumn{ACCOUNT_ID CACHED_HISTOGRAM CACHED_REQUESTS_COUNT CACHE_TTL_HISTOGRAM CLIENT_NAME CLIENT_VERSION FORBIDDEN_OPERATION_COUNT FROM_ENGINEPROXY QUERY_ID QUERY_NAME REGISTERED_OPERATION_COUNT REQUESTS_WITH_ERRORS_COUNT SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP UNCACHED_HISTOGRAM UNCACHED_REQUESTS_COUNT}type QueryStatsDimensions{accountId:ID clientName:String clientVersion:String fromEngineproxy:String queryId:ID queryName:String querySignature:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in QueryStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input QueryStatsFilter{"""Selects rows whose accountId dimension equals the given value if not null. To query for the null value, use {in: {accountId: [null]}} instead.""" accountId:ID and:[QueryStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose fromEngineproxy dimension equals the given value if not null. To query for the null value, use {in: {fromEngineproxy: [null]}} instead.""" fromEngineproxy:String in:QueryStatsFilterIn not:QueryStatsFilter or:[QueryStatsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in QueryStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input QueryStatsFilterIn{"""Selects rows whose accountId dimension is in the given list. A null value in the list means a row with null for that dimension.""" accountId:[ID]"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose fromEngineproxy dimension is in the given list. A null value in the list means a row with null for that dimension.""" fromEngineproxy:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type QueryStatsMetrics{cacheTtlHistogram:DurationHistogram!cachedHistogram:DurationHistogram!cachedRequestsCount:Long!forbiddenOperationCount:Long!registeredOperationCount:Long!requestsWithErrorsCount:Long!totalLatencyHistogram:DurationHistogram!totalRequestCount:Long!uncachedHistogram:DurationHistogram!uncachedRequestsCount:Long!}input QueryStatsOrderBySpec{column:QueryStatsColumn!direction:Ordering!}type QueryStatsRecord{"""Dimensions of QueryStats that can be grouped by.""" groupBy:QueryStatsDimensions!"""Metrics of QueryStats that can be aggregated over.""" metrics:QueryStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Query Trigger""" type QueryTrigger implements ChannelSubscription{channels:[Channel!]!comparisonOperator:ComparisonOperator!enabled:Boolean!excludedOperationNames:[String!]!id:ID!metric:QueryTriggerMetric!operationNames:[String!]!percentile:Float scope:QueryTriggerScope!serviceId:String!state:QueryTriggerState!threshold:Float!variant:String window:QueryTriggerWindow!}"""Query trigger""" input QueryTriggerInput{channelIds:[String!]comparisonOperator:ComparisonOperator!enabled:Boolean excludedOperationNames:[String!]metric:QueryTriggerMetric!operationNames:[String!]percentile:Float scope:QueryTriggerScope threshold:Float!variant:String window:QueryTriggerWindow!}enum QueryTriggerMetric{"""Number of requests within the window that resulted in an error. Ignores `percentile`.""" ERROR_COUNT """Number of error requests divided by total number of requests. Ignores `percentile`.""" ERROR_PERCENTAGE """Number of requests within the window. Ignores `percentile`.""" REQUEST_COUNT """Request latency in ms. Requires `percentile`.""" REQUEST_SERVICE_TIME}enum QueryTriggerScope{ALL ANY UNRECOGNIZED}"""Query trigger state""" type QueryTriggerState{evaluatedAt:Timestamp!lastTriggeredAt:Timestamp operations:[QueryTriggerStateOperation!]!triggered:Boolean!}type QueryTriggerStateOperation{count:Long!operation:String!triggered:Boolean!value:Float!}enum QueryTriggerWindow{FIFTEEN_MINUTES FIVE_MINUTES ONE_MINUTE UNRECOGNIZED}"""The documentation for a graph variant, as display in Studio.""" type Readme{"""Content of the document.""" content:String!id:ID!"""Last time the document was updated.""" lastUpdatedAt:Timestamp!"""Identity of who updated the document last.""" lastUpdatedBy:Identity}type RegisterOperationsMutationResponse{invalidOperations:[InvalidOperation!]newOperations:[RegisteredOperation!]registrationSuccess:Boolean!}input RegisteredClientIdentityInput{identifier:String!name:String!version:String}type RegisteredOperation{signature:ID!}input RegisteredOperationInput{document:String metadata:RegisteredOperationMetadataInput signature:ID!}input RegisteredOperationMetadataInput{"""This will be used to link existing records in Engine to a new ID.""" engineSignature:String}type RegistryApiKey{keyName:String token:String!}type RegistryStatsWindow{schemaCheckStats:[AccountChecksStatsRecord!]!schemaPublishStats:[AccountPublishesStatsRecord!]!}type RegistrySubscription implements ChannelSubscription{channel:Channel channels:[Channel!]!@deprecated(reason:"Use channels list instead")createdAt:Timestamp!enabled:Boolean!id:ID!lastUpdatedAt:Timestamp!options:SubscriptionOptions!variant:String}type RelaunchComplete{latestLaunch:Launch!updated:Boolean!}type RelaunchError{message:String!}union RelaunchResult=RelaunchComplete|RelaunchError union RemoveOperationCollectionEntryResult=OperationCollection|PermissionError union RemoveOperationCollectionFromVariantResult=GraphVariant|NotFoundError|PermissionError|ValidationError union ReorderOperationCollectionResult=OperationCollection|PermissionError type ReportSchemaError implements ReportSchemaResult{code:ReportSchemaErrorCode!inSeconds:Int!message:String!withCoreSchema:Boolean!}enum ReportSchemaErrorCode{BOOT_ID_IS_NOT_VALID_UUID BOOT_ID_IS_REQUIRED CORE_SCHEMA_HASH_IS_NOT_SCHEMA_SHA256 CORE_SCHEMA_HASH_IS_REQUIRED CORE_SCHEMA_HASH_IS_TOO_LONG EXECUTABLE_SCHEMA_ID_IS_NOT_SCHEMA_SHA256 EXECUTABLE_SCHEMA_ID_IS_REQUIRED EXECUTABLE_SCHEMA_ID_IS_TOO_LONG GRAPH_REF_INVALID_FORMAT GRAPH_REF_IS_REQUIRED GRAPH_VARIANT_DOES_NOT_MATCH_REGEX GRAPH_VARIANT_IS_REQUIRED LIBRARY_VERSION_IS_TOO_LONG PLATFORM_IS_TOO_LONG RUNTIME_VERSION_IS_TOO_LONG SCHEMA_IS_NOT_PARSABLE SCHEMA_IS_NOT_VALID SERVER_ID_IS_TOO_LONG USER_VERSION_IS_TOO_LONG}type ReportSchemaResponse implements ReportSchemaResult{inSeconds:Int!withCoreSchema:Boolean!}interface ReportSchemaResult{inSeconds:Int!withCoreSchema:Boolean!}type ReportServerInfoError implements ReportServerInfoResult{code:ReportSchemaErrorCode!inSeconds:Int!message:String!withExecutableSchema:Boolean!}type ReportServerInfoResponse implements ReportServerInfoResult{inSeconds:Int!withExecutableSchema:Boolean!}interface ReportServerInfoResult{inSeconds:Int!withExecutableSchema:Boolean!}enum Resolution{R1D R1H R1M R5M R6H R15M}enum ResponseHints{NONE SAMPLE_RESPONSES SUBGRAPHS TIMINGS TRACE_TIMINGS}type RoleOverride{graph:Service!lastUpdatedAt:Timestamp!role:UserPermission!user:User!}input RoverArgumentInput{key:String!value:Object}"""SHA-256 hash, represented in lowercase hexadecimal""" scalar SHA256 type ScheduledSummary implements ChannelSubscription{channel:Channel@deprecated(reason:"Use channels list instead")channels:[Channel!]!enabled:Boolean!id:ID!timezone:String!variant:String!}"""A GraphQL schema document, which may optionally map back to context with which the schema was ingested.""" type Schema{createTemporaryURL(expiresInSeconds:Int!=86400):TemporaryURL """The timestamp of initial ingestion of a schema to a graph.""" createdAt:Timestamp!"""The raw GraphQL document for the schema in question""" document:GraphQLDocument!"""The number of fields; this includes user defined fields only, excluding built-in types and fields""" fieldCount:Int!gitContext:GitContext """The hex representation of the SHA256 of the GraphQL document.""" hash:ID!introspection:IntrospectionSchema!"""The number of types; this includes user defined types only, excluding built-in types""" typeCount:Int!}"""Represents an error from running schema composition on a list of subgraph definitions.""" type SchemaCompositionError{"""A machine-readable error code.""" code:String """Affected locations.""" locations:[SourceLocation]!"""A human-readable locations.""" message:String!}"""The difference between two schemas, as usually computed during a schema check.""" type SchemaDiff{"""Clients affected by all changes in the diff.""" affectedClients:[AffectedClient!]@deprecated(reason:"Unsupported.")"""Operations affected by all changes in the diff.""" affectedQueries:[AffectedQuery!]"""Numeric summary of all changes in the diff.""" changeSummary:ChangeSummary!"""List of schema changes with associated affected clients and operations.""" changes:[Change!]!"""Number of affected query operations that are neither marked as safe or ignored.""" numberOfAffectedOperations:Int!"""Number of operations that were validated during the check.""" numberOfCheckedOperations:Int """Indication of the success of the change; either failure, warning, or notice.""" severity:ChangeSeverity!"""The tag against which this diff was created""" tag:String type:ChangeType!@deprecated(reason:"use severity instead")"""Configuration of validation""" validationConfig:SchemaDiffValidationConfig}type SchemaDiffValidationConfig{"""Clients to ignore during validation.""" excludedClients:[ClientInfoFilterOutput!]"""Operation names to ignore during validation.""" excludedOperationNames:[OperationNameFilter]"""delta in seconds from current time that determines the start of the window
 for reported metrics included in a schema diff. A day window from the present
@@ -112,12 +112,12 @@ application. Apollo's media server will downscale larger images to at least the
 but this will not happen for third-party media servers.""" avatarUrl(size:Int!=40):String """Get available notification endpoints""" channels(channelIds:[ID!]):[Channel!]"""Get check configuration for this graph.""" checkConfiguration:CheckConfiguration """Get a check workflow for this graph by its ID""" checkWorkflow(id:ID!):CheckWorkflow """Get check workflows for this graph ordered by creation time, most recent first.""" checkWorkflows(filter:CheckFilterInput limit:Int!=100):[CheckWorkflow!]!"""List of options available for filtering checks for this graph by author.
 If a filter is passed, constrains results to match the filter.""" checksAuthorOptions(filter:CheckFilterInput):[String!]!"""List of options available for filtering checks for this graph by branch.
 If a filter is passed, constrains results to match the filter.""" checksBranchOptions(filter:CheckFilterInput):[String!]!"""List of options available for filtering checks for this graph by subgraph name.
-If a filter is passed, constrains results to match the filter.""" checksSubgraphOptions(filter:CheckFilterInput):[String!]!"""Given a graphCompositionID, return the results of composition. This can represent either a validation or a publish.""" compositionResultById(id:ID!):CompositionResult createdAt:Timestamp!createdBy:Identity datadogMetricsConfig:DatadogMetricsConfig deletedAt:Timestamp description:String devGraphOwner:User """Get a GraphQL document by hash""" document(hash:SHA256):GraphQLDocument """When this is true, this graph will be hidden from non-admin members of the org who haven't been explicitly assigned a
+If a filter is passed, constrains results to match the filter.""" checksSubgraphOptions(filter:CheckFilterInput):[String!]!"""Given a graphCompositionID, return the results of composition. This can represent either a validation or a publish.""" compositionResultById(id:ID!):CompositionResult createdAt:Timestamp!createdBy:Identity datadogMetricsConfig:DatadogMetricsConfig defaultBuildPipelineTrack:String deletedAt:Timestamp description:String devGraphOwner:User """Get a GraphQL document by hash""" document(hash:SHA256):GraphQLDocument """When this is true, this graph will be hidden from non-admin members of the org who haven't been explicitly assigned a
 role on this graph.""" hiddenFromUninvitedNonAdminAccountMembers:Boolean!"""Globally unique identifier for this graph.""" id:ID!"""List of subgraphs that comprise a graph. A non-federated graph should have a single implementing service.
-Set includeDeleted to see deleted subgraphs.""" implementingServices(graphVariant:String!includeDeleted:Boolean):GraphImplementors lastReportedAt(graphVariant:String):Timestamp """Current identity, null if not authenticated.""" me:Identity """The composition result that was most recently published to a graph variant.""" mostRecentCompositionPublish(graphVariant:String!):CompositionPublishResult """Permissions of the current user in this graph.""" myRole:UserPermission """Name of this graph. Note that this field is deprecated.""" name:String!@deprecated(reason:"Use Service.title")operation(id:ID!):Operation """Gets the operations and their approved changes for this graph, checkID, and operationID.""" operationsAcceptedChanges(checkID:ID!operationID:String!):[OperationAcceptedChange!]!"""Get an operations check result for a specific check ID""" operationsCheck(checkID:ID!):OperationsCheckResult """Get query triggers for a given variant. If variant is null all the triggers for this service will be gotten.""" queryTriggers(graphVariant:String operationNames:[String!]):[QueryTrigger!]readme:Readme """Registry specific stats for this graph.""" registryStatsWindow(from:Timestamp!resolution:Resolution to:Timestamp):RegistryStatsWindow """Whether registry subscriptions (with any options) are enabled. If variant is not passed, returns true if configuration is present for any variant""" registrySubscriptionsEnabled(graphVariant:String):Boolean!@deprecated(reason:"This field will be removed")reportingEnabled:Boolean!"""The list of members that can access this graph, accounting for graph role overrides""" roleOverrides:[RoleOverride!]"""Which permissions the current user has for interacting with this graph""" roles:ServiceRoles scheduledSummaries:[ScheduledSummary!]!"""Get a schema by hash or current tag""" schema(hash:ID tag:String):Schema """The current publish associated to a given variant (with 'tag' as the variant name).""" schemaTag(tag:String!):SchemaTag schemaTagById(id:ID!):SchemaTag """Get schema tags, with optional filtering to a set of tags. Always sorted by creation
+Set includeDeleted to see deleted subgraphs.""" implementingServices(graphVariant:String!includeDeleted:Boolean):GraphImplementors lastReportedAt(graphVariant:String):Timestamp """Current identity, null if not authenticated.""" me:Identity """The composition result that was most recently published to a graph variant.""" mostRecentCompositionPublish(graphVariant:String!):CompositionPublishResult """Permissions of the current user in this graph.""" myRole:UserPermission """Name of this graph. Note that this field is deprecated.""" name:String!@deprecated(reason:"Use Service.title")onboardingArchitecture:OnboardingArchitecture operation(id:ID!):Operation """Gets the operations and their approved changes for this graph, checkID, and operationID.""" operationsAcceptedChanges(checkID:ID!operationID:String!):[OperationAcceptedChange!]!"""Get an operations check result for a specific check ID""" operationsCheck(checkID:ID!):OperationsCheckResult """Get query triggers for a given variant. If variant is null all the triggers for this service will be gotten.""" queryTriggers(graphVariant:String operationNames:[String!]):[QueryTrigger!]readme:Readme """Registry specific stats for this graph.""" registryStatsWindow(from:Timestamp!resolution:Resolution to:Timestamp):RegistryStatsWindow """Whether registry subscriptions (with any options) are enabled. If variant is not passed, returns true if configuration is present for any variant""" registrySubscriptionsEnabled(graphVariant:String):Boolean!@deprecated(reason:"This field will be removed")reportingEnabled:Boolean!"""The list of members that can access this graph, accounting for graph role overrides""" roleOverrides:[RoleOverride!]"""Which permissions the current user has for interacting with this graph""" roles:ServiceRoles scheduledSummaries:[ScheduledSummary!]!"""Get a schema by hash or current tag""" schema(hash:ID tag:String):Schema """The current publish associated to a given variant (with 'tag' as the variant name).""" schemaTag(tag:String!):SchemaTag schemaTagById(id:ID!):SchemaTag """Get schema tags, with optional filtering to a set of tags. Always sorted by creation
 date in reverse chronological order.""" schemaTags(tags:[String!]):[SchemaTag!]stats(from:Timestamp!"""Granularity of buckets. Defaults to the entire range (aggregate all data into a single durationBucket) when null.""" resolution:Resolution """Defaults to the current time when null.""" to:Timestamp):ServiceStatsWindow!@deprecated(reason:"use Service.statsWindow instead")statsWindow(from:Timestamp!"""Granularity of buckets. Defaults to the entire range (aggregate all data into a single durationBucket) when null.""" resolution:Resolution """Defaults to the current time when null.""" to:Timestamp):ServiceStatsWindow """Generate a test schema publish notification body""" testSchemaPublishBody(variant:String!):String!"""Name of this graph.""" title:String!trace(id:ID!):Trace traceStorageEnabled:Boolean!"""A particular variant often representing a live traffic environment (such as "dev", "staging", or "prod").
 Each variant can represent a specific URL or destination to query at, analytics, and its own schema history.
-Pass in a name to get a specific variant. Use `Graph.variants` to get a list of variants.""" variant(name:String!):GraphVariant """The list of variants that exist for this graph""" variants:[GraphVariant!]!}"""Columns of ServiceBillingUsageStats.""" enum ServiceBillingUsageStatsColumn{OPERATION_COUNT OPERATION_COUNT_PROVIDED_EXPLICITLY SCHEMA_TAG TIMESTAMP}type ServiceBillingUsageStatsDimensions{operationCountProvidedExplicitly:String schemaTag:String}"""Filter for data in ServiceBillingUsageStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceBillingUsageStatsFilter{and:[ServiceBillingUsageStatsFilter!]in:ServiceBillingUsageStatsFilterIn not:ServiceBillingUsageStatsFilter """Selects rows whose operationCountProvidedExplicitly dimension equals the given value if not null. To query for the null value, use {in: {operationCountProvidedExplicitly: [null]}} instead.""" operationCountProvidedExplicitly:String or:[ServiceBillingUsageStatsFilter!]"""Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceBillingUsageStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceBillingUsageStatsFilterIn{"""Selects rows whose operationCountProvidedExplicitly dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationCountProvidedExplicitly:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceBillingUsageStatsMetrics{operationCount:Long!}input ServiceBillingUsageStatsOrderBySpec{column:ServiceBillingUsageStatsColumn!direction:Ordering!}type ServiceBillingUsageStatsRecord{"""Dimensions of ServiceBillingUsageStats that can be grouped by.""" groupBy:ServiceBillingUsageStatsDimensions!"""Metrics of ServiceBillingUsageStats that can be aggregated over.""" metrics:ServiceBillingUsageStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceEdgeServerInfos.""" enum ServiceEdgeServerInfosColumn{BOOT_ID EXECUTABLE_SCHEMA_ID LIBRARY_VERSION PLATFORM RUNTIME_VERSION SCHEMA_TAG SERVER_ID TIMESTAMP USER_VERSION}type ServiceEdgeServerInfosDimensions{bootId:ID executableSchemaId:ID libraryVersion:String platform:String runtimeVersion:String schemaTag:String serverId:ID userVersion:String}"""Filter for data in ServiceEdgeServerInfos. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceEdgeServerInfosFilter{and:[ServiceEdgeServerInfosFilter!]"""Selects rows whose bootId dimension equals the given value if not null. To query for the null value, use {in: {bootId: [null]}} instead.""" bootId:ID """Selects rows whose executableSchemaId dimension equals the given value if not null. To query for the null value, use {in: {executableSchemaId: [null]}} instead.""" executableSchemaId:ID in:ServiceEdgeServerInfosFilterIn """Selects rows whose libraryVersion dimension equals the given value if not null. To query for the null value, use {in: {libraryVersion: [null]}} instead.""" libraryVersion:String not:ServiceEdgeServerInfosFilter or:[ServiceEdgeServerInfosFilter!]"""Selects rows whose platform dimension equals the given value if not null. To query for the null value, use {in: {platform: [null]}} instead.""" platform:String """Selects rows whose runtimeVersion dimension equals the given value if not null. To query for the null value, use {in: {runtimeVersion: [null]}} instead.""" runtimeVersion:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serverId dimension equals the given value if not null. To query for the null value, use {in: {serverId: [null]}} instead.""" serverId:ID """Selects rows whose userVersion dimension equals the given value if not null. To query for the null value, use {in: {userVersion: [null]}} instead.""" userVersion:String}"""Filter for data in ServiceEdgeServerInfos. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceEdgeServerInfosFilterIn{"""Selects rows whose bootId dimension is in the given list. A null value in the list means a row with null for that dimension.""" bootId:[ID]"""Selects rows whose executableSchemaId dimension is in the given list. A null value in the list means a row with null for that dimension.""" executableSchemaId:[ID]"""Selects rows whose libraryVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" libraryVersion:[String]"""Selects rows whose platform dimension is in the given list. A null value in the list means a row with null for that dimension.""" platform:[String]"""Selects rows whose runtimeVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" runtimeVersion:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serverId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serverId:[ID]"""Selects rows whose userVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" userVersion:[String]}input ServiceEdgeServerInfosOrderBySpec{column:ServiceEdgeServerInfosColumn!direction:Ordering!}type ServiceEdgeServerInfosRecord{"""Dimensions of ServiceEdgeServerInfos that can be grouped by.""" groupBy:ServiceEdgeServerInfosDimensions!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceErrorStats.""" enum ServiceErrorStatsColumn{CLIENT_NAME CLIENT_VERSION ERRORS_COUNT PATH QUERY_ID QUERY_NAME REQUESTS_WITH_ERRORS_COUNT SCHEMA_HASH SCHEMA_TAG TIMESTAMP}type ServiceErrorStatsDimensions{clientName:String clientVersion:String path:String queryId:ID queryName:String schemaHash:String schemaTag:String}"""Filter for data in ServiceErrorStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceErrorStatsFilter{and:[ServiceErrorStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String in:ServiceErrorStatsFilterIn not:ServiceErrorStatsFilter or:[ServiceErrorStatsFilter!]"""Selects rows whose path dimension equals the given value if not null. To query for the null value, use {in: {path: [null]}} instead.""" path:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceErrorStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceErrorStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose path dimension is in the given list. A null value in the list means a row with null for that dimension.""" path:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceErrorStatsMetrics{errorsCount:Long!requestsWithErrorsCount:Long!}input ServiceErrorStatsOrderBySpec{column:ServiceErrorStatsColumn!direction:Ordering!}type ServiceErrorStatsRecord{"""Dimensions of ServiceErrorStats that can be grouped by.""" groupBy:ServiceErrorStatsDimensions!"""Metrics of ServiceErrorStats that can be aggregated over.""" metrics:ServiceErrorStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceFieldLatencies.""" enum ServiceFieldLatenciesColumn{FIELD_HISTOGRAM FIELD_NAME PARENT_TYPE SCHEMA_HASH SCHEMA_TAG TIMESTAMP}type ServiceFieldLatenciesDimensions{field:String fieldName:String parentType:String schemaHash:String schemaTag:String}"""Filter for data in ServiceFieldLatencies. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceFieldLatenciesFilter{and:[ServiceFieldLatenciesFilter!]"""Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:ServiceFieldLatenciesFilterIn not:ServiceFieldLatenciesFilter or:[ServiceFieldLatenciesFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceFieldLatencies. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceFieldLatenciesFilterIn{"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceFieldLatenciesMetrics{fieldHistogram:DurationHistogram!}input ServiceFieldLatenciesOrderBySpec{column:ServiceFieldLatenciesColumn!direction:Ordering!}type ServiceFieldLatenciesRecord{"""Dimensions of ServiceFieldLatencies that can be grouped by.""" groupBy:ServiceFieldLatenciesDimensions!"""Metrics of ServiceFieldLatencies that can be aggregated over.""" metrics:ServiceFieldLatenciesMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceFieldUsage.""" enum ServiceFieldUsageColumn{CLIENT_NAME CLIENT_VERSION ESTIMATED_EXECUTION_COUNT EXECUTION_COUNT FIELD_NAME PARENT_TYPE QUERY_ID QUERY_NAME REFERENCING_OPERATION_COUNT SCHEMA_HASH SCHEMA_TAG TIMESTAMP}type ServiceFieldUsageDimensions{clientName:String clientVersion:String fieldName:String parentType:String queryId:ID queryName:String schemaHash:String schemaTag:String}"""Filter for data in ServiceFieldUsage. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceFieldUsageFilter{and:[ServiceFieldUsageFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:ServiceFieldUsageFilterIn not:ServiceFieldUsageFilter or:[ServiceFieldUsageFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceFieldUsage. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceFieldUsageFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceFieldUsageMetrics{estimatedExecutionCount:Long!executionCount:Long!referencingOperationCount:Long!}input ServiceFieldUsageOrderBySpec{column:ServiceFieldUsageColumn!direction:Ordering!}type ServiceFieldUsageRecord{"""Dimensions of ServiceFieldUsage that can be grouped by.""" groupBy:ServiceFieldUsageDimensions!"""Metrics of ServiceFieldUsage that can be aggregated over.""" metrics:ServiceFieldUsageMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Mutations to a graph.""" type ServiceMutation{"""Check a proposed subgraph schema change.
+Pass in a name to get a specific variant. Use `Graph.variants` to get a list of variants.""" variant(name:String!):GraphVariant """The list of variants that exist for this graph""" variants:[GraphVariant!]!}"""Columns of ServiceBillingUsageStats.""" enum ServiceBillingUsageStatsColumn{OPERATION_COUNT OPERATION_COUNT_PROVIDED_EXPLICITLY SCHEMA_TAG TIMESTAMP}type ServiceBillingUsageStatsDimensions{operationCountProvidedExplicitly:String schemaTag:String}"""Filter for data in ServiceBillingUsageStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceBillingUsageStatsFilter{and:[ServiceBillingUsageStatsFilter!]in:ServiceBillingUsageStatsFilterIn not:ServiceBillingUsageStatsFilter """Selects rows whose operationCountProvidedExplicitly dimension equals the given value if not null. To query for the null value, use {in: {operationCountProvidedExplicitly: [null]}} instead.""" operationCountProvidedExplicitly:String or:[ServiceBillingUsageStatsFilter!]"""Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceBillingUsageStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceBillingUsageStatsFilterIn{"""Selects rows whose operationCountProvidedExplicitly dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationCountProvidedExplicitly:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceBillingUsageStatsMetrics{operationCount:Long!}input ServiceBillingUsageStatsOrderBySpec{column:ServiceBillingUsageStatsColumn!direction:Ordering!}type ServiceBillingUsageStatsRecord{"""Dimensions of ServiceBillingUsageStats that can be grouped by.""" groupBy:ServiceBillingUsageStatsDimensions!"""Metrics of ServiceBillingUsageStats that can be aggregated over.""" metrics:ServiceBillingUsageStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceEdgeServerInfos.""" enum ServiceEdgeServerInfosColumn{BOOT_ID EXECUTABLE_SCHEMA_ID LIBRARY_VERSION PLATFORM RUNTIME_VERSION SCHEMA_TAG SERVER_ID TIMESTAMP USER_VERSION}type ServiceEdgeServerInfosDimensions{bootId:ID executableSchemaId:ID libraryVersion:String platform:String runtimeVersion:String schemaTag:String serverId:ID userVersion:String}"""Filter for data in ServiceEdgeServerInfos. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceEdgeServerInfosFilter{and:[ServiceEdgeServerInfosFilter!]"""Selects rows whose bootId dimension equals the given value if not null. To query for the null value, use {in: {bootId: [null]}} instead.""" bootId:ID """Selects rows whose executableSchemaId dimension equals the given value if not null. To query for the null value, use {in: {executableSchemaId: [null]}} instead.""" executableSchemaId:ID in:ServiceEdgeServerInfosFilterIn """Selects rows whose libraryVersion dimension equals the given value if not null. To query for the null value, use {in: {libraryVersion: [null]}} instead.""" libraryVersion:String not:ServiceEdgeServerInfosFilter or:[ServiceEdgeServerInfosFilter!]"""Selects rows whose platform dimension equals the given value if not null. To query for the null value, use {in: {platform: [null]}} instead.""" platform:String """Selects rows whose runtimeVersion dimension equals the given value if not null. To query for the null value, use {in: {runtimeVersion: [null]}} instead.""" runtimeVersion:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serverId dimension equals the given value if not null. To query for the null value, use {in: {serverId: [null]}} instead.""" serverId:ID """Selects rows whose userVersion dimension equals the given value if not null. To query for the null value, use {in: {userVersion: [null]}} instead.""" userVersion:String}"""Filter for data in ServiceEdgeServerInfos. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceEdgeServerInfosFilterIn{"""Selects rows whose bootId dimension is in the given list. A null value in the list means a row with null for that dimension.""" bootId:[ID]"""Selects rows whose executableSchemaId dimension is in the given list. A null value in the list means a row with null for that dimension.""" executableSchemaId:[ID]"""Selects rows whose libraryVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" libraryVersion:[String]"""Selects rows whose platform dimension is in the given list. A null value in the list means a row with null for that dimension.""" platform:[String]"""Selects rows whose runtimeVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" runtimeVersion:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serverId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serverId:[ID]"""Selects rows whose userVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" userVersion:[String]}input ServiceEdgeServerInfosOrderBySpec{column:ServiceEdgeServerInfosColumn!direction:Ordering!}type ServiceEdgeServerInfosRecord{"""Dimensions of ServiceEdgeServerInfos that can be grouped by.""" groupBy:ServiceEdgeServerInfosDimensions!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceErrorStats.""" enum ServiceErrorStatsColumn{CLIENT_NAME CLIENT_VERSION ERRORS_COUNT PATH QUERY_ID QUERY_NAME REQUESTS_WITH_ERRORS_COUNT SCHEMA_HASH SCHEMA_TAG TIMESTAMP}type ServiceErrorStatsDimensions{clientName:String clientVersion:String path:String queryId:ID queryName:String schemaHash:String schemaTag:String}"""Filter for data in ServiceErrorStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceErrorStatsFilter{and:[ServiceErrorStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String in:ServiceErrorStatsFilterIn not:ServiceErrorStatsFilter or:[ServiceErrorStatsFilter!]"""Selects rows whose path dimension equals the given value if not null. To query for the null value, use {in: {path: [null]}} instead.""" path:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceErrorStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceErrorStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose path dimension is in the given list. A null value in the list means a row with null for that dimension.""" path:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceErrorStatsMetrics{errorsCount:Long!requestsWithErrorsCount:Long!}input ServiceErrorStatsOrderBySpec{column:ServiceErrorStatsColumn!direction:Ordering!}type ServiceErrorStatsRecord{"""Dimensions of ServiceErrorStats that can be grouped by.""" groupBy:ServiceErrorStatsDimensions!"""Metrics of ServiceErrorStats that can be aggregated over.""" metrics:ServiceErrorStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceFieldExecutions.""" enum ServiceFieldExecutionsColumn{ESTIMATED_EXECUTION_COUNT FIELD_NAME OBSERVED_EXECUTION_COUNT PARENT_TYPE REFERENCING_OPERATION_COUNT SCHEMA_TAG TIMESTAMP}type ServiceFieldExecutionsDimensions{fieldName:String parentType:String schemaTag:String}"""Filter for data in ServiceFieldExecutions. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceFieldExecutionsFilter{and:[ServiceFieldExecutionsFilter!]"""Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:ServiceFieldExecutionsFilterIn not:ServiceFieldExecutionsFilter or:[ServiceFieldExecutionsFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceFieldExecutions. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceFieldExecutionsFilterIn{"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceFieldExecutionsMetrics{estimatedExecutionCount:Long!observedExecutionCount:Long!referencingOperationCount:Long!}input ServiceFieldExecutionsOrderBySpec{column:ServiceFieldExecutionsColumn!direction:Ordering!}type ServiceFieldExecutionsRecord{"""Dimensions of ServiceFieldExecutions that can be grouped by.""" groupBy:ServiceFieldExecutionsDimensions!"""Metrics of ServiceFieldExecutions that can be aggregated over.""" metrics:ServiceFieldExecutionsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceFieldLatencies.""" enum ServiceFieldLatenciesColumn{FIELD_HISTOGRAM FIELD_NAME PARENT_TYPE SCHEMA_HASH SCHEMA_TAG TIMESTAMP}type ServiceFieldLatenciesDimensions{field:String fieldName:String parentType:String schemaHash:String schemaTag:String}"""Filter for data in ServiceFieldLatencies. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceFieldLatenciesFilter{and:[ServiceFieldLatenciesFilter!]"""Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:ServiceFieldLatenciesFilterIn not:ServiceFieldLatenciesFilter or:[ServiceFieldLatenciesFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceFieldLatencies. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceFieldLatenciesFilterIn{"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceFieldLatenciesMetrics{fieldHistogram:DurationHistogram!}input ServiceFieldLatenciesOrderBySpec{column:ServiceFieldLatenciesColumn!direction:Ordering!}type ServiceFieldLatenciesRecord{"""Dimensions of ServiceFieldLatencies that can be grouped by.""" groupBy:ServiceFieldLatenciesDimensions!"""Metrics of ServiceFieldLatencies that can be aggregated over.""" metrics:ServiceFieldLatenciesMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceFieldRequestsByClientVersion.""" enum ServiceFieldRequestsByClientVersionColumn{CLIENT_NAME CLIENT_VERSION ESTIMATED_EXECUTION_COUNT FIELD_NAME OBSERVED_EXECUTION_COUNT PARENT_TYPE REFERENCING_OPERATION_COUNT SCHEMA_TAG TIMESTAMP}type ServiceFieldRequestsByClientVersionDimensions{clientName:String clientVersion:String fieldName:String parentType:String schemaTag:String}"""Filter for data in ServiceFieldRequestsByClientVersion. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceFieldRequestsByClientVersionFilter{and:[ServiceFieldRequestsByClientVersionFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:ServiceFieldRequestsByClientVersionFilterIn not:ServiceFieldRequestsByClientVersionFilter or:[ServiceFieldRequestsByClientVersionFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceFieldRequestsByClientVersion. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceFieldRequestsByClientVersionFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceFieldRequestsByClientVersionMetrics{estimatedExecutionCount:Long!observedExecutionCount:Long!referencingOperationCount:Long!}input ServiceFieldRequestsByClientVersionOrderBySpec{column:ServiceFieldRequestsByClientVersionColumn!direction:Ordering!}type ServiceFieldRequestsByClientVersionRecord{"""Dimensions of ServiceFieldRequestsByClientVersion that can be grouped by.""" groupBy:ServiceFieldRequestsByClientVersionDimensions!"""Metrics of ServiceFieldRequestsByClientVersion that can be aggregated over.""" metrics:ServiceFieldRequestsByClientVersionMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceFieldUsage.""" enum ServiceFieldUsageColumn{CLIENT_NAME CLIENT_VERSION ESTIMATED_EXECUTION_COUNT EXECUTION_COUNT FIELD_NAME PARENT_TYPE QUERY_ID QUERY_NAME REFERENCING_OPERATION_COUNT SCHEMA_HASH SCHEMA_TAG TIMESTAMP}type ServiceFieldUsageDimensions{clientName:String clientVersion:String fieldName:String parentType:String queryId:ID queryName:String schemaHash:String schemaTag:String}"""Filter for data in ServiceFieldUsage. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceFieldUsageFilter{and:[ServiceFieldUsageFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:ServiceFieldUsageFilterIn not:ServiceFieldUsageFilter or:[ServiceFieldUsageFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceFieldUsage. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceFieldUsageFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceFieldUsageMetrics{estimatedExecutionCount:Long!executionCount:Long!referencingOperationCount:Long!}input ServiceFieldUsageOrderBySpec{column:ServiceFieldUsageColumn!direction:Ordering!}type ServiceFieldUsageRecord{"""Dimensions of ServiceFieldUsage that can be grouped by.""" groupBy:ServiceFieldUsageDimensions!"""Metrics of ServiceFieldUsage that can be aggregated over.""" metrics:ServiceFieldUsageMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Mutations to a graph.""" type ServiceMutation{"""Check a proposed subgraph schema change.
 If the proposal composes successfully, perform a usage check for the resulting schema.""" checkPartialSchema("""Deprecated and ignored.""" frontend:String gitContext:GitContextInput """Specifies which variant of a graph this mutation operates on.""" graphVariant:String!historicParameters:HistoricQueryParameters """Name of the implementing service to validate the partial schema against""" implementingServiceName:String!"""If this check is triggered for an sdl fetched using introspection, this is the endpoint where that schema was being served.""" introspectionEndpoint:String isSandboxCheck:Boolean!=false """The partial schema to validate against an implementing service""" partialSchema:PartialSchemaInput!"""Whether to use the maximum retention for historical validation. This only takes
 effect if historicParameters is null.""" useMaximumRetention:Boolean):CheckPartialSchemaResult!"""Checks a proposed schema against the schema that has been published to
 a particular variant, using metrics corresponding to `historicParameters`.
@@ -131,10 +131,10 @@ changes affecting it will be tracked,
 but won't affect the outcome of the check.
 Returns true if the operation is newly ignored,
 false if it already was.""" ignoreOperationsInChecks(ids:[ID!]!):IgnoreOperationsInChecksResult """Mark the changeset that affects an operation in a given check instance as safe.
-Note that only operations marked as behavior changes are allowed to be marked as safe.""" markChangesForOperationAsSafe("""ID of the schema check.""" checkID:ID!"""ID of the operation to accept changes for.""" operationID:ID!):MarkChangesForOperationAsSafeResult!newKey(keyName:String role:UserPermission!=GRAPH_ADMIN):GraphApiKey!"""Adds an override to the given users permission for this graph""" overrideUserPermission(permission:UserPermission userID:ID!):Service """Returns a preview of the Core and API schema contracts derived from a source variant and a set of filter configurations""" previewContractVariant(filterConfig:FilterConfigInput!sourceVariant:String!):ContractVariantPreviewResult!@deprecated(reason:"use GraphVariant.contractPreview instead")"""Promote the schema with the given SHA-256 hash to active for the given variant/tag.""" promoteSchema(graphVariant:String!historicParameters:HistoricQueryParameters overrideComposedSchema:Boolean!=false sha256:SHA256!):PromoteSchemaResponseOrError!"""Publish to a subgraph. If composition is successful, this will update running routers.""" publishSubgraph(activePartialSchema:PartialSchemaInput!gitContext:GitContextInput graphVariant:String!name:String!revision:String!url:String):CompositionAndUpsertResult registerOperationsWithResponse(clientIdentity:RegisteredClientIdentityInput gitContext:GitContextInput """Specifies which variant of a graph these operations belong to.
+Note that only operations marked as behavior changes are allowed to be marked as safe.""" markChangesForOperationAsSafe("""ID of the schema check.""" checkID:ID!"""ID of the operation to accept changes for.""" operationID:ID!):MarkChangesForOperationAsSafeResult!newKey(keyName:String role:UserPermission!=GRAPH_ADMIN):GraphApiKey!"""Adds an override to the given users permission for this graph""" overrideUserPermission(permission:UserPermission userID:ID!):Service """Promote the schema with the given SHA-256 hash to active for the given variant/tag.""" promoteSchema(graphVariant:String!historicParameters:HistoricQueryParameters overrideComposedSchema:Boolean!=false sha256:SHA256!):PromoteSchemaResponseOrError!"""Publish to a subgraph. If composition is successful, this will update running routers.""" publishSubgraph(activePartialSchema:PartialSchemaInput!gitContext:GitContextInput graphVariant:String!name:String!revision:String!url:String):CompositionAndUpsertResult registerOperationsWithResponse(clientIdentity:RegisteredClientIdentityInput gitContext:GitContextInput """Specifies which variant of a graph these operations belong to.
 Formerly known as "tag"
 Defaults to "current"
-""" graphVariant:String!="current" manifestVersion:Int operations:[RegisteredOperationInput!]!):RegisterOperationsMutationResponse """Removes a subgraph. If composition is successful, this will update running routers.""" removeImplementingServiceAndTriggerComposition("""Do not remove the service, but recompose without it and report any errors.""" dryRun:Boolean!=false graphVariant:String!name:String!):CompositionAndRemoveResult!removeKey("""API key ID""" id:ID):Void renameKey(id:ID!newKeyName:String):GraphApiKey reportServerInfo("""Only sent if previously requested i.e. received ReportServerInfoResult with withExecutableSchema = true. An executable schema is a schema document that describes the full GraphQL schema that an external client could execute queries against. This must be a valid GraphQL schema document, as per the GraphQL specification: https://spec.graphql.org/""" executableSchema:String """Information about the edge server, see descriptions for individual fields.""" info:EdgeServerInfo!):ReportServerInfoResult@deprecated(reason:"use Mutation.reportSchema instead")service:Service!"""Store a given schema document. This schema will be attached to the graph but
+""" graphVariant:String!="current" manifestVersion:Int operations:[RegisteredOperationInput!]!):RegisterOperationsMutationResponse """Removes a subgraph. If composition is successful, this will update running routers.""" removeImplementingServiceAndTriggerComposition("""Do not remove the service, but recompose without it and report any errors.""" dryRun:Boolean!=false graphVariant:String!name:String!):CompositionAndRemoveResult!removeKey("""API key ID""" id:ID):Void renameKey(id:ID!newKeyName:String):GraphApiKey reportServerInfo("""Only sent if previously requested i.e. received ReportServerInfoResult with withExecutableSchema = true. An executable schema is a schema document that describes the full GraphQL schema that an external client could execute queries against. This must be a valid GraphQL schema document, as per the GraphQL specification: https://spec.graphql.org/""" executableSchema:String """Information about the edge server, see descriptions for individual fields.""" info:EdgeServerInfo!):ReportServerInfoResult@deprecated(reason:"use Mutation.reportSchema instead")service:Service!setDefaultBuildPipelineTrack(version:String!):String """Store a given schema document. This schema will be attached to the graph but
 not be associated with any variant. On success, returns the schema hash.""" storeSchemaDocument(schemaDocument:String!):StoreSchemaResponseOrError!"""Test Slack notification channel""" testSlackChannel(id:ID!notification:SlackNotificationInput!):Void testSubscriptionForChannel(channelID:ID!subscriptionID:ID!):String!transfer(to:String!):Service triggerRepublish(graphVariant:String!):Void undelete:Service """Revert the effects of ignoreOperation.
 Returns true if the operation is no longer ignored,
 false if it wasn't.""" unignoreOperationsInChecks(ids:[ID!]!):UnignoreOperationsInChecksResult """Unmark changes for an operation as safe.""" unmarkChangesForOperationAsSafe("""ID of the schema check.""" checkID:ID!"""ID of the operation to unmark changes for.""" operationID:ID!):MarkChangesForOperationAsSafeResult!"""Update schema check configuration for a graph.""" updateCheckConfiguration("""Clients to ignore during validation.""" excludedClients:[ClientFilterInput!]"""Operation names to ignore during validation.""" excludedOperationNames:[OperationNameFilterInput!]"""Operations to ignore during validation.""" excludedOperations:[ExcludedOperationInput!]"""Default configuration to include operations on the base variant.""" includeBaseVariant:Boolean """Variant overrides for validation.""" includedVariants:[String!]"""Minimum number of requests within the window for a query to be considered.""" operationCountThreshold:Int """Number of requests within the window for a query to be considered, relative to
@@ -143,13 +143,13 @@ total request volume)""" operationCountThresholdPercentage:Float """Only check o
 Run composition with the Implementing Service's partial schema replaced with the one provided
 in the mutation's input. Store the composed schema, return the hash of the composed schema,
 and any warnings and errors pertaining to composition.
-This mutation will not run validation against operations.""" validatePartialSchemaOfImplementingServiceAgainstGraph(graphVariant:String!implementingServiceName:String!partialSchema:PartialSchemaInput!):CompositionValidationResult!"""Make changes to a graph variant.""" variant(name:String!):GraphVariantMutation}"""Columns of ServiceOperationCheckStats.""" enum ServiceOperationCheckStatsColumn{CACHED_REQUESTS_COUNT CLIENT_NAME CLIENT_VERSION QUERY_ID QUERY_NAME SCHEMA_TAG TIMESTAMP UNCACHED_REQUESTS_COUNT}type ServiceOperationCheckStatsDimensions{clientName:String clientVersion:String queryId:ID queryName:String schemaTag:String}"""Filter for data in ServiceOperationCheckStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceOperationCheckStatsFilter{and:[ServiceOperationCheckStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String in:ServiceOperationCheckStatsFilterIn not:ServiceOperationCheckStatsFilter or:[ServiceOperationCheckStatsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceOperationCheckStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceOperationCheckStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceOperationCheckStatsMetrics{cachedRequestsCount:Long!uncachedRequestsCount:Long!}input ServiceOperationCheckStatsOrderBySpec{column:ServiceOperationCheckStatsColumn!direction:Ordering!}type ServiceOperationCheckStatsRecord{"""Dimensions of ServiceOperationCheckStats that can be grouped by.""" groupBy:ServiceOperationCheckStatsDimensions!"""Metrics of ServiceOperationCheckStats that can be aggregated over.""" metrics:ServiceOperationCheckStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceQueryStats.""" enum ServiceQueryStatsColumn{CACHED_HISTOGRAM CACHED_REQUESTS_COUNT CACHE_TTL_HISTOGRAM CLIENT_NAME CLIENT_VERSION FORBIDDEN_OPERATION_COUNT FROM_ENGINEPROXY QUERY_ID QUERY_NAME REGISTERED_OPERATION_COUNT REQUESTS_WITH_ERRORS_COUNT SCHEMA_HASH SCHEMA_TAG TIMESTAMP UNCACHED_HISTOGRAM UNCACHED_REQUESTS_COUNT}type ServiceQueryStatsDimensions{clientName:String clientVersion:String fromEngineproxy:String queryId:ID queryName:String querySignature:String schemaHash:String schemaTag:String}"""Filter for data in ServiceQueryStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceQueryStatsFilter{and:[ServiceQueryStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose fromEngineproxy dimension equals the given value if not null. To query for the null value, use {in: {fromEngineproxy: [null]}} instead.""" fromEngineproxy:String in:ServiceQueryStatsFilterIn not:ServiceQueryStatsFilter or:[ServiceQueryStatsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceQueryStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceQueryStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose fromEngineproxy dimension is in the given list. A null value in the list means a row with null for that dimension.""" fromEngineproxy:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceQueryStatsMetrics{cacheTtlHistogram:DurationHistogram!cachedHistogram:DurationHistogram!cachedRequestsCount:Long!forbiddenOperationCount:Long!registeredOperationCount:Long!requestsWithErrorsCount:Long!totalLatencyHistogram:DurationHistogram!totalRequestCount:Long!uncachedHistogram:DurationHistogram!uncachedRequestsCount:Long!}input ServiceQueryStatsOrderBySpec{column:ServiceQueryStatsColumn!direction:Ordering!}type ServiceQueryStatsRecord{"""Dimensions of ServiceQueryStats that can be grouped by.""" groupBy:ServiceQueryStatsDimensions!"""Metrics of ServiceQueryStats that can be aggregated over.""" metrics:ServiceQueryStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""A map from role (permission) String to boolean that the current user is allowed for a particular graph.""" type ServiceRoles{"""Whether the currently authenticated user is permitted to perform schema checks (i.e. run `rover (sub)graph check`).""" canCheckSchemas:Boolean!"""Whether the currently authenticated user is permitted to create new graph variants.""" canCreateVariants:Boolean!"""Whether the currently authenticated user is permitted to delete the graph in question""" canDelete:Boolean!"""Whether the currently authenticated user is permitted to manage user access to the graph in question.""" canManageAccess:Boolean!"""Whether the currently authenticated user is permitted to manage the build configuration (e.g. build pipeline version).""" canManageBuildConfig:Boolean!"""Whether the currently authenticated user is permitted to manage 3rd party integrations (e.g. Datadog forwarding).""" canManageIntegrations:Boolean!"""Whether the currently authenticated user is permitted to manage graph-level API keys.""" canManageKeys:Boolean!"""Whether the currently authenticated user is permitted to perform basic administration (e.g. set to public) over variants.""" canManageVariants:Boolean!"""Whether the currently authenticated user is permitted to view details about the build configuration (e.g. build pipeline version).""" canQueryBuildConfig:Boolean!"""Whether the currently authenticated user is permitted to view details of the check configuration for this graph.""" canQueryCheckConfiguration:Boolean!canQueryDeletedImplementingServices:Boolean!"""Whether the currently authenticated user is permitted to view which subgraphs the graph is composed of.""" canQueryImplementingServices:Boolean!canQueryIntegrations:Boolean!canQueryPrivateInfo:Boolean!canQueryPublicInfo:Boolean!canQueryReadmeAuthor:Boolean!canQueryRoleOverrides:Boolean!"""Whether the currently authenticated user is permitted to download schemas owned by this graph.""" canQuerySchemas:Boolean!canQueryStats:Boolean!canQueryTokens:Boolean!canQueryTraces:Boolean!"""Whether the currently authenticated user is permitted to register operations (i.e. `apollo client:push`) for this graph.""" canRegisterOperations:Boolean!canStoreSchemasWithoutVariant:Boolean!canUndelete:Boolean!canUpdateAvatar:Boolean!canUpdateDescription:Boolean!canUpdateTitle:Boolean!canVisualizeStats:Boolean!@deprecated(reason:"Replaced with canQueryTraces and canQueryStats")"""Whether the currently authenticated user is permitted to make updates to the check configuration for this graph.""" canWriteCheckConfiguration:Boolean!canWriteTraces:Boolean!@deprecated(reason:"Never worked, not replaced")}"""A time window with a specified granularity over a given service.""" type ServiceStatsWindow{billingUsageStats("""Filter to select what rows to return.""" filter:ServiceBillingUsageStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceBillingUsageStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceBillingUsageStatsOrderBySpec!]):[ServiceBillingUsageStatsRecord!]!edgeServerInfos("""Filter to select what rows to return.""" filter:ServiceEdgeServerInfosFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceEdgeServerInfos by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceEdgeServerInfosOrderBySpec!]):[ServiceEdgeServerInfosRecord!]!errorStats("""Filter to select what rows to return.""" filter:ServiceErrorStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceErrorStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceErrorStatsOrderBySpec!]):[ServiceErrorStatsRecord!]!fieldLatencies("""Filter to select what rows to return.""" filter:ServiceFieldLatenciesFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceFieldLatencies by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceFieldLatenciesOrderBySpec!]):[ServiceFieldLatenciesRecord!]!fieldStats("""Filter to select what rows to return.""" filter:ServiceFieldLatenciesFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceFieldLatencies by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceFieldLatenciesOrderBySpec!]):[ServiceFieldLatenciesRecord!]!fieldUsage("""Filter to select what rows to return.""" filter:ServiceFieldUsageFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceFieldUsage by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceFieldUsageOrderBySpec!]):[ServiceFieldUsageRecord!]!operationCheckStats("""Filter to select what rows to return.""" filter:ServiceOperationCheckStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceOperationCheckStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceOperationCheckStatsOrderBySpec!]):[ServiceOperationCheckStatsRecord!]!queryStats("""Filter to select what rows to return.""" filter:ServiceQueryStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceQueryStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceQueryStatsOrderBySpec!]):[ServiceQueryStatsRecord!]!"""From field rounded down to the nearest resolution.""" roundedDownFrom:Timestamp!"""To field rounded up to the nearest resolution.""" roundedUpTo:Timestamp!tracePathErrorsRefs("""Filter to select what rows to return.""" filter:ServiceTracePathErrorsRefsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceTracePathErrorsRefs by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceTracePathErrorsRefsOrderBySpec!]):[ServiceTracePathErrorsRefsRecord!]!traceRefs("""Filter to select what rows to return.""" filter:ServiceTraceRefsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceTraceRefs by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceTraceRefsOrderBySpec!]):[ServiceTraceRefsRecord!]!}"""Columns of ServiceTracePathErrorsRefs.""" enum ServiceTracePathErrorsRefsColumn{CLIENT_NAME CLIENT_VERSION DURATION_BUCKET ERRORS_COUNT_IN_PATH ERRORS_COUNT_IN_TRACE ERROR_MESSAGE PATH QUERY_ID QUERY_NAME SCHEMA_HASH SCHEMA_TAG TIMESTAMP TRACE_HTTP_STATUS_CODE TRACE_ID TRACE_SIZE_BYTES TRACE_STARTS_AT}type ServiceTracePathErrorsRefsDimensions{clientName:String clientVersion:String durationBucket:Int errorMessage:String path:String queryId:ID queryName:String schemaHash:String schemaTag:String traceHttpStatusCode:Int traceId:ID traceStartsAt:Timestamp}"""Filter for data in ServiceTracePathErrorsRefs. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceTracePathErrorsRefsFilter{and:[ServiceTracePathErrorsRefsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose durationBucket dimension equals the given value if not null. To query for the null value, use {in: {durationBucket: [null]}} instead.""" durationBucket:Int """Selects rows whose errorMessage dimension equals the given value if not null. To query for the null value, use {in: {errorMessage: [null]}} instead.""" errorMessage:String in:ServiceTracePathErrorsRefsFilterIn not:ServiceTracePathErrorsRefsFilter or:[ServiceTracePathErrorsRefsFilter!]"""Selects rows whose path dimension equals the given value if not null. To query for the null value, use {in: {path: [null]}} instead.""" path:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose traceHttpStatusCode dimension equals the given value if not null. To query for the null value, use {in: {traceHttpStatusCode: [null]}} instead.""" traceHttpStatusCode:Int """Selects rows whose traceId dimension equals the given value if not null. To query for the null value, use {in: {traceId: [null]}} instead.""" traceId:ID}"""Filter for data in ServiceTracePathErrorsRefs. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceTracePathErrorsRefsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose durationBucket dimension is in the given list. A null value in the list means a row with null for that dimension.""" durationBucket:[Int]"""Selects rows whose errorMessage dimension is in the given list. A null value in the list means a row with null for that dimension.""" errorMessage:[String]"""Selects rows whose path dimension is in the given list. A null value in the list means a row with null for that dimension.""" path:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose traceHttpStatusCode dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceHttpStatusCode:[Int]"""Selects rows whose traceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceId:[ID]}type ServiceTracePathErrorsRefsMetrics{errorsCountInPath:Long!errorsCountInTrace:Long!traceSizeBytes:Long!}input ServiceTracePathErrorsRefsOrderBySpec{column:ServiceTracePathErrorsRefsColumn!direction:Ordering!}type ServiceTracePathErrorsRefsRecord{"""Dimensions of ServiceTracePathErrorsRefs that can be grouped by.""" groupBy:ServiceTracePathErrorsRefsDimensions!"""Metrics of ServiceTracePathErrorsRefs that can be aggregated over.""" metrics:ServiceTracePathErrorsRefsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceTraceRefs.""" enum ServiceTraceRefsColumn{CLIENT_NAME CLIENT_VERSION DURATION_BUCKET DURATION_NS QUERY_ID QUERY_NAME SCHEMA_HASH SCHEMA_TAG TIMESTAMP TRACE_ID TRACE_SIZE_BYTES}type ServiceTraceRefsDimensions{clientName:String clientVersion:String durationBucket:Int queryId:ID queryName:String querySignature:String schemaHash:String schemaTag:String traceId:ID}"""Filter for data in ServiceTraceRefs. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceTraceRefsFilter{and:[ServiceTraceRefsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose durationBucket dimension equals the given value if not null. To query for the null value, use {in: {durationBucket: [null]}} instead.""" durationBucket:Int in:ServiceTraceRefsFilterIn not:ServiceTraceRefsFilter or:[ServiceTraceRefsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose traceId dimension equals the given value if not null. To query for the null value, use {in: {traceId: [null]}} instead.""" traceId:ID}"""Filter for data in ServiceTraceRefs. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceTraceRefsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose durationBucket dimension is in the given list. A null value in the list means a row with null for that dimension.""" durationBucket:[Int]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose traceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceId:[ID]}type ServiceTraceRefsMetrics{durationNs:Long!traceSizeBytes:Long!}input ServiceTraceRefsOrderBySpec{column:ServiceTraceRefsColumn!direction:Ordering!}type ServiceTraceRefsRecord{"""Dimensions of ServiceTraceRefs that can be grouped by.""" groupBy:ServiceTraceRefsDimensions!"""Metrics of ServiceTraceRefs that can be aggregated over.""" metrics:ServiceTraceRefsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Slack notification channel""" type SlackChannel implements Channel{id:ID!name:String!subscriptions:[ChannelSubscription!]!url:String!}"""Slack notification channel parameters""" input SlackChannelInput{name:String url:String!}input SlackNotificationField{key:String!value:String!}"""Slack notification message""" input SlackNotificationInput{color:String fallback:String!fields:[SlackNotificationField!]iconUrl:String text:String timestamp:Timestamp title:String titleLink:String username:String}type SourceLocation{column:Int!line:Int!}"""A time window with a specified granularity.""" type StatsWindow{billingUsageStats("""Filter to select what rows to return.""" filter:BillingUsageStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order BillingUsageStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[BillingUsageStatsOrderBySpec!]):[BillingUsageStatsRecord!]!edgeServerInfos("""Filter to select what rows to return.""" filter:EdgeServerInfosFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order EdgeServerInfos by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[EdgeServerInfosOrderBySpec!]):[EdgeServerInfosRecord!]!errorStats("""Filter to select what rows to return.""" filter:ErrorStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ErrorStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ErrorStatsOrderBySpec!]):[ErrorStatsRecord!]!fieldLatencies("""Filter to select what rows to return.""" filter:FieldLatenciesFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order FieldLatencies by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[FieldLatenciesOrderBySpec!]):[FieldLatenciesRecord!]!fieldUsage("""Filter to select what rows to return.""" filter:FieldUsageFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order FieldUsage by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[FieldUsageOrderBySpec!]):[FieldUsageRecord!]!operationCheckStats("""Filter to select what rows to return.""" filter:OperationCheckStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order OperationCheckStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[OperationCheckStatsOrderBySpec!]):[OperationCheckStatsRecord!]!queryStats("""Filter to select what rows to return.""" filter:QueryStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order QueryStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[QueryStatsOrderBySpec!]):[QueryStatsRecord!]!"""From field rounded down to the nearest resolution.""" roundedDownFrom:Timestamp!"""To field rounded up to the nearest resolution.""" roundedUpTo:Timestamp!tracePathErrorsRefs("""Filter to select what rows to return.""" filter:TracePathErrorsRefsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order TracePathErrorsRefs by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[TracePathErrorsRefsOrderBySpec!]):[TracePathErrorsRefsRecord!]!traceRefs("""Filter to select what rows to return.""" filter:TraceRefsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order TraceRefs by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[TraceRefsOrderBySpec!]):[TraceRefsRecord!]!}type StoreSchemaError{code:StoreSchemaErrorCode!message:String!}enum StoreSchemaErrorCode{SCHEMA_IS_NOT_PARSABLE SCHEMA_IS_NOT_VALID}type StoreSchemaResponse{sha256:SHA256!}union StoreSchemaResponseOrError=StoreSchemaError|StoreSchemaResponse type StoredApprovedChange{argNode:NamedIntrospectionArgNoDescription childNode:NamedIntrospectionValueNoDescription code:ChangeCode!parentNode:NamedIntrospectionTypeNoDescription}scalar StringOrInt type StringToString{key:String!value:String!}input StringToStringInput{key:String!value:String!}type Subgraph{hash:String!name:String!routingURL:String!}type SubgraphChange{name:ID!type:SubgraphChangeType!}enum SubgraphChangeType{ADDITION DELETION MODIFICATION}type SubgraphConfig{id:ID!name:String!schemaHash:String!sdl:String!url:String!}type SubscriptionOptions{"""Enables notifications for schema updates""" schemaUpdates:Boolean!}input SubscriptionOptionsInput{"""Enables notifications for schema updates""" schemaUpdates:Boolean!}enum SubscriptionState{ACTIVE CANCELED EXPIRED FUTURE PAST_DUE PAUSED PENDING UNKNOWN}enum SubscriptionStateV2{ACTIVE CANCELED EXPIRED FUTURE PAST_DUE PAUSED PENDING UNKNOWN}type TemporaryURL{url:String!}enum ThemeName{DARK LIGHT}enum TicketPriority{P0 P1 P2 P3}enum TicketStatus{CLOSED HOLD NEW OPEN PENDING SOLVED}"""ISO 8601, extended format with nanoseconds, Zulu (or '[+-]seconds' for times relative to now)""" scalar Timestamp type TimezoneOffset{minutesOffsetFromUTC:Int!zoneID:String!}"""Counts of changes.""" type TotalChangeSummaryCounts{"""Number of changes that are additions. This includes adding types, adding fields to object, input
+This mutation will not run validation against operations.""" validatePartialSchemaOfImplementingServiceAgainstGraph(graphVariant:String!implementingServiceName:String!partialSchema:PartialSchemaInput!):CompositionValidationResult!"""Make changes to a graph variant.""" variant(name:String!):GraphVariantMutation}"""Columns of ServiceOperationCheckStats.""" enum ServiceOperationCheckStatsColumn{CACHED_REQUESTS_COUNT CLIENT_NAME CLIENT_VERSION QUERY_ID QUERY_NAME SCHEMA_TAG TIMESTAMP UNCACHED_REQUESTS_COUNT}type ServiceOperationCheckStatsDimensions{clientName:String clientVersion:String queryId:ID queryName:String schemaTag:String}"""Filter for data in ServiceOperationCheckStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceOperationCheckStatsFilter{and:[ServiceOperationCheckStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String in:ServiceOperationCheckStatsFilterIn not:ServiceOperationCheckStatsFilter or:[ServiceOperationCheckStatsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceOperationCheckStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceOperationCheckStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceOperationCheckStatsMetrics{cachedRequestsCount:Long!uncachedRequestsCount:Long!}input ServiceOperationCheckStatsOrderBySpec{column:ServiceOperationCheckStatsColumn!direction:Ordering!}type ServiceOperationCheckStatsRecord{"""Dimensions of ServiceOperationCheckStats that can be grouped by.""" groupBy:ServiceOperationCheckStatsDimensions!"""Metrics of ServiceOperationCheckStats that can be aggregated over.""" metrics:ServiceOperationCheckStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceQueryStats.""" enum ServiceQueryStatsColumn{CACHED_HISTOGRAM CACHED_REQUESTS_COUNT CACHE_TTL_HISTOGRAM CLIENT_NAME CLIENT_VERSION FORBIDDEN_OPERATION_COUNT FROM_ENGINEPROXY QUERY_ID QUERY_NAME REGISTERED_OPERATION_COUNT REQUESTS_WITH_ERRORS_COUNT SCHEMA_HASH SCHEMA_TAG TIMESTAMP UNCACHED_HISTOGRAM UNCACHED_REQUESTS_COUNT}type ServiceQueryStatsDimensions{clientName:String clientVersion:String fromEngineproxy:String queryId:ID queryName:String querySignature:String schemaHash:String schemaTag:String}"""Filter for data in ServiceQueryStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceQueryStatsFilter{and:[ServiceQueryStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose fromEngineproxy dimension equals the given value if not null. To query for the null value, use {in: {fromEngineproxy: [null]}} instead.""" fromEngineproxy:String in:ServiceQueryStatsFilterIn not:ServiceQueryStatsFilter or:[ServiceQueryStatsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceQueryStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceQueryStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose fromEngineproxy dimension is in the given list. A null value in the list means a row with null for that dimension.""" fromEngineproxy:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceQueryStatsMetrics{cacheTtlHistogram:DurationHistogram!cachedHistogram:DurationHistogram!cachedRequestsCount:Long!forbiddenOperationCount:Long!registeredOperationCount:Long!requestsWithErrorsCount:Long!totalLatencyHistogram:DurationHistogram!totalRequestCount:Long!uncachedHistogram:DurationHistogram!uncachedRequestsCount:Long!}input ServiceQueryStatsOrderBySpec{column:ServiceQueryStatsColumn!direction:Ordering!}type ServiceQueryStatsRecord{"""Dimensions of ServiceQueryStats that can be grouped by.""" groupBy:ServiceQueryStatsDimensions!"""Metrics of ServiceQueryStats that can be aggregated over.""" metrics:ServiceQueryStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""A map from role (permission) String to boolean that the current user is allowed for a particular graph.""" type ServiceRoles{"""Whether the currently authenticated user is permitted to perform schema checks (i.e. run `rover (sub)graph check`).""" canCheckSchemas:Boolean!"""Whether the currently authenticated user is permitted to create new graph variants.""" canCreateVariants:Boolean!"""Whether the currently authenticated user is permitted to delete the graph in question""" canDelete:Boolean!"""Whether the currently authenticated user is permitted to manage user access to the graph in question.""" canManageAccess:Boolean!"""Whether the currently authenticated user is permitted to manage the build configuration (e.g. build pipeline version).""" canManageBuildConfig:Boolean!"""Whether the currently authenticated user is permitted to manage 3rd party integrations (e.g. Datadog forwarding).""" canManageIntegrations:Boolean!"""Whether the currently authenticated user is permitted to manage graph-level API keys.""" canManageKeys:Boolean!"""Whether the currently authenticated user is permitted to perform basic administration (e.g. set to public) over variants.""" canManageVariants:Boolean!"""Whether the currently authenticated user is permitted to view details about the build configuration (e.g. build pipeline version).""" canQueryBuildConfig:Boolean!"""Whether the currently authenticated user is permitted to view details of the check configuration for this graph.""" canQueryCheckConfiguration:Boolean!canQueryDeletedImplementingServices:Boolean!"""Whether the currently authenticated user is permitted to view which subgraphs the graph is composed of.""" canQueryImplementingServices:Boolean!canQueryIntegrations:Boolean!canQueryPrivateInfo:Boolean!canQueryPublicInfo:Boolean!canQueryReadmeAuthor:Boolean!canQueryRoleOverrides:Boolean!"""Whether the currently authenticated user is permitted to download schemas owned by this graph.""" canQuerySchemas:Boolean!canQueryStats:Boolean!canQueryTokens:Boolean!canQueryTraces:Boolean!"""Whether the currently authenticated user is permitted to register operations (i.e. `apollo client:push`) for this graph.""" canRegisterOperations:Boolean!canStoreSchemasWithoutVariant:Boolean!canUndelete:Boolean!canUpdateAvatar:Boolean!canUpdateDescription:Boolean!canUpdateTitle:Boolean!canVisualizeStats:Boolean!@deprecated(reason:"Replaced with canQueryTraces and canQueryStats")"""Whether the currently authenticated user is permitted to make updates to the check configuration for this graph.""" canWriteCheckConfiguration:Boolean!canWriteTraces:Boolean!@deprecated(reason:"Never worked, not replaced")}"""A time window with a specified granularity over a given service.""" type ServiceStatsWindow{billingUsageStats("""Filter to select what rows to return.""" filter:ServiceBillingUsageStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceBillingUsageStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceBillingUsageStatsOrderBySpec!]):[ServiceBillingUsageStatsRecord!]!edgeServerInfos("""Filter to select what rows to return.""" filter:ServiceEdgeServerInfosFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceEdgeServerInfos by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceEdgeServerInfosOrderBySpec!]):[ServiceEdgeServerInfosRecord!]!errorStats("""Filter to select what rows to return.""" filter:ServiceErrorStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceErrorStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceErrorStatsOrderBySpec!]):[ServiceErrorStatsRecord!]!fieldExecutions("""Filter to select what rows to return.""" filter:ServiceFieldExecutionsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceFieldExecutions by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceFieldExecutionsOrderBySpec!]):[ServiceFieldExecutionsRecord!]!fieldLatencies("""Filter to select what rows to return.""" filter:ServiceFieldLatenciesFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceFieldLatencies by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceFieldLatenciesOrderBySpec!]):[ServiceFieldLatenciesRecord!]!fieldRequestsByClientVersion("""Filter to select what rows to return.""" filter:ServiceFieldRequestsByClientVersionFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceFieldRequestsByClientVersion by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceFieldRequestsByClientVersionOrderBySpec!]):[ServiceFieldRequestsByClientVersionRecord!]!fieldStats("""Filter to select what rows to return.""" filter:ServiceFieldLatenciesFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceFieldLatencies by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceFieldLatenciesOrderBySpec!]):[ServiceFieldLatenciesRecord!]!fieldUsage("""Filter to select what rows to return.""" filter:ServiceFieldUsageFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceFieldUsage by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceFieldUsageOrderBySpec!]):[ServiceFieldUsageRecord!]!operationCheckStats("""Filter to select what rows to return.""" filter:ServiceOperationCheckStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceOperationCheckStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceOperationCheckStatsOrderBySpec!]):[ServiceOperationCheckStatsRecord!]!queryStats("""Filter to select what rows to return.""" filter:ServiceQueryStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceQueryStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceQueryStatsOrderBySpec!]):[ServiceQueryStatsRecord!]!"""From field rounded down to the nearest resolution.""" roundedDownFrom:Timestamp!"""To field rounded up to the nearest resolution.""" roundedUpTo:Timestamp!tracePathErrorsRefs("""Filter to select what rows to return.""" filter:ServiceTracePathErrorsRefsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceTracePathErrorsRefs by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceTracePathErrorsRefsOrderBySpec!]):[ServiceTracePathErrorsRefsRecord!]!traceRefs("""Filter to select what rows to return.""" filter:ServiceTraceRefsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceTraceRefs by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceTraceRefsOrderBySpec!]):[ServiceTraceRefsRecord!]!}"""Columns of ServiceTracePathErrorsRefs.""" enum ServiceTracePathErrorsRefsColumn{CLIENT_NAME CLIENT_VERSION DURATION_BUCKET ERRORS_COUNT_IN_PATH ERRORS_COUNT_IN_TRACE ERROR_MESSAGE PATH QUERY_ID QUERY_NAME SCHEMA_HASH SCHEMA_TAG TIMESTAMP TRACE_HTTP_STATUS_CODE TRACE_ID TRACE_SIZE_BYTES TRACE_STARTS_AT}type ServiceTracePathErrorsRefsDimensions{clientName:String clientVersion:String durationBucket:Int errorMessage:String path:String queryId:ID queryName:String schemaHash:String schemaTag:String traceHttpStatusCode:Int traceId:ID traceStartsAt:Timestamp}"""Filter for data in ServiceTracePathErrorsRefs. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceTracePathErrorsRefsFilter{and:[ServiceTracePathErrorsRefsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose durationBucket dimension equals the given value if not null. To query for the null value, use {in: {durationBucket: [null]}} instead.""" durationBucket:Int """Selects rows whose errorMessage dimension equals the given value if not null. To query for the null value, use {in: {errorMessage: [null]}} instead.""" errorMessage:String in:ServiceTracePathErrorsRefsFilterIn not:ServiceTracePathErrorsRefsFilter or:[ServiceTracePathErrorsRefsFilter!]"""Selects rows whose path dimension equals the given value if not null. To query for the null value, use {in: {path: [null]}} instead.""" path:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose traceHttpStatusCode dimension equals the given value if not null. To query for the null value, use {in: {traceHttpStatusCode: [null]}} instead.""" traceHttpStatusCode:Int """Selects rows whose traceId dimension equals the given value if not null. To query for the null value, use {in: {traceId: [null]}} instead.""" traceId:ID}"""Filter for data in ServiceTracePathErrorsRefs. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceTracePathErrorsRefsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose durationBucket dimension is in the given list. A null value in the list means a row with null for that dimension.""" durationBucket:[Int]"""Selects rows whose errorMessage dimension is in the given list. A null value in the list means a row with null for that dimension.""" errorMessage:[String]"""Selects rows whose path dimension is in the given list. A null value in the list means a row with null for that dimension.""" path:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose traceHttpStatusCode dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceHttpStatusCode:[Int]"""Selects rows whose traceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceId:[ID]}type ServiceTracePathErrorsRefsMetrics{errorsCountInPath:Long!errorsCountInTrace:Long!traceSizeBytes:Long!}input ServiceTracePathErrorsRefsOrderBySpec{column:ServiceTracePathErrorsRefsColumn!direction:Ordering!}type ServiceTracePathErrorsRefsRecord{"""Dimensions of ServiceTracePathErrorsRefs that can be grouped by.""" groupBy:ServiceTracePathErrorsRefsDimensions!"""Metrics of ServiceTracePathErrorsRefs that can be aggregated over.""" metrics:ServiceTracePathErrorsRefsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceTraceRefs.""" enum ServiceTraceRefsColumn{CLIENT_NAME CLIENT_VERSION DURATION_BUCKET DURATION_NS QUERY_ID QUERY_NAME SCHEMA_HASH SCHEMA_TAG TIMESTAMP TRACE_ID TRACE_SIZE_BYTES}type ServiceTraceRefsDimensions{clientName:String clientVersion:String durationBucket:Int queryId:ID queryName:String querySignature:String schemaHash:String schemaTag:String traceId:ID}"""Filter for data in ServiceTraceRefs. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceTraceRefsFilter{and:[ServiceTraceRefsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose durationBucket dimension equals the given value if not null. To query for the null value, use {in: {durationBucket: [null]}} instead.""" durationBucket:Int in:ServiceTraceRefsFilterIn not:ServiceTraceRefsFilter or:[ServiceTraceRefsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose traceId dimension equals the given value if not null. To query for the null value, use {in: {traceId: [null]}} instead.""" traceId:ID}"""Filter for data in ServiceTraceRefs. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceTraceRefsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose durationBucket dimension is in the given list. A null value in the list means a row with null for that dimension.""" durationBucket:[Int]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose traceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceId:[ID]}type ServiceTraceRefsMetrics{durationNs:Long!traceSizeBytes:Long!}input ServiceTraceRefsOrderBySpec{column:ServiceTraceRefsColumn!direction:Ordering!}type ServiceTraceRefsRecord{"""Dimensions of ServiceTraceRefs that can be grouped by.""" groupBy:ServiceTraceRefsDimensions!"""Metrics of ServiceTraceRefs that can be aggregated over.""" metrics:ServiceTraceRefsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Slack notification channel""" type SlackChannel implements Channel{id:ID!name:String!subscriptions:[ChannelSubscription!]!url:String!}"""Slack notification channel parameters""" input SlackChannelInput{name:String url:String!}input SlackNotificationField{key:String!value:String!}"""Slack notification message""" input SlackNotificationInput{color:String fallback:String!fields:[SlackNotificationField!]iconUrl:String text:String timestamp:Timestamp title:String titleLink:String username:String}type SourceLocation{column:Int!line:Int!}"""A time window with a specified granularity.""" type StatsWindow{billingUsageStats("""Filter to select what rows to return.""" filter:BillingUsageStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order BillingUsageStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[BillingUsageStatsOrderBySpec!]):[BillingUsageStatsRecord!]!edgeServerInfos("""Filter to select what rows to return.""" filter:EdgeServerInfosFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order EdgeServerInfos by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[EdgeServerInfosOrderBySpec!]):[EdgeServerInfosRecord!]!errorStats("""Filter to select what rows to return.""" filter:ErrorStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ErrorStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ErrorStatsOrderBySpec!]):[ErrorStatsRecord!]!fieldExecutions("""Filter to select what rows to return.""" filter:FieldExecutionsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order FieldExecutions by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[FieldExecutionsOrderBySpec!]):[FieldExecutionsRecord!]!fieldLatencies("""Filter to select what rows to return.""" filter:FieldLatenciesFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order FieldLatencies by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[FieldLatenciesOrderBySpec!]):[FieldLatenciesRecord!]!fieldRequestsByClientVersion("""Filter to select what rows to return.""" filter:FieldRequestsByClientVersionFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order FieldRequestsByClientVersion by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[FieldRequestsByClientVersionOrderBySpec!]):[FieldRequestsByClientVersionRecord!]!fieldUsage("""Filter to select what rows to return.""" filter:FieldUsageFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order FieldUsage by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[FieldUsageOrderBySpec!]):[FieldUsageRecord!]!operationCheckStats("""Filter to select what rows to return.""" filter:OperationCheckStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order OperationCheckStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[OperationCheckStatsOrderBySpec!]):[OperationCheckStatsRecord!]!queryStats("""Filter to select what rows to return.""" filter:QueryStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order QueryStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[QueryStatsOrderBySpec!]):[QueryStatsRecord!]!"""From field rounded down to the nearest resolution.""" roundedDownFrom:Timestamp!"""To field rounded up to the nearest resolution.""" roundedUpTo:Timestamp!tracePathErrorsRefs("""Filter to select what rows to return.""" filter:TracePathErrorsRefsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order TracePathErrorsRefs by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[TracePathErrorsRefsOrderBySpec!]):[TracePathErrorsRefsRecord!]!traceRefs("""Filter to select what rows to return.""" filter:TraceRefsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order TraceRefs by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[TraceRefsOrderBySpec!]):[TraceRefsRecord!]!}type StoreSchemaError{code:StoreSchemaErrorCode!message:String!}enum StoreSchemaErrorCode{SCHEMA_IS_NOT_PARSABLE SCHEMA_IS_NOT_VALID}type StoreSchemaResponse{sha256:SHA256!}union StoreSchemaResponseOrError=StoreSchemaError|StoreSchemaResponse type StoredApprovedChange{argNode:NamedIntrospectionArgNoDescription childNode:NamedIntrospectionValueNoDescription code:ChangeCode!parentNode:NamedIntrospectionTypeNoDescription}scalar StringOrInt type StringToString{key:String!value:String!}input StringToStringInput{key:String!value:String!}type Subgraph{hash:String!name:String!routingURL:String!}type SubgraphChange{name:ID!type:SubgraphChangeType!}enum SubgraphChangeType{ADDITION DELETION MODIFICATION}type SubgraphConfig{id:ID!name:String!schemaHash:String!sdl:String!url:String!}type SubscriptionOptions{"""Enables notifications for schema updates""" schemaUpdates:Boolean!}input SubscriptionOptionsInput{"""Enables notifications for schema updates""" schemaUpdates:Boolean!}enum SubscriptionState{ACTIVE CANCELED EXPIRED FUTURE PAST_DUE PAUSED PENDING UNKNOWN}enum SubscriptionStateV2{ACTIVE CANCELED EXPIRED FUTURE PAST_DUE PAUSED PENDING UNKNOWN}type TemporaryURL{url:String!}enum ThemeName{DARK LIGHT}enum TicketPriority{P0 P1 P2 P3}enum TicketStatus{CLOSED HOLD NEW OPEN PENDING SOLVED}"""ISO 8601, extended format with nanoseconds, Zulu (or '[+-]seconds' for times relative to now)""" scalar Timestamp type TimezoneOffset{minutesOffsetFromUTC:Int!zoneID:String!}"""Counts of changes.""" type TotalChangeSummaryCounts{"""Number of changes that are additions. This includes adding types, adding fields to object, input
 object, and interface types, adding values to enums, adding members to interfaces and unions, and
 adding arguments.""" additions:Int!"""Number of changes that are new usages of the @deprecated directive.""" deprecations:Int!"""Number of changes that are edits. This includes types changing kind, fields and arguments
 changing type, arguments changing default value, and any description changes. This also includes
 edits to @deprecated reason strings.""" edits:Int!"""Number of changes that are removals. This includes removing types, removing fields from object,
 input object, and interface types, removing values from enums, removing members from interfaces
-and unions, and removing arguments. This also includes removing @deprecated usages.""" removals:Int!}type Trace{cacheMaxAgeMs:Float cacheScope:CacheScope clientName:String clientVersion:String durationMs:Float!endTime:Timestamp!http:TraceHTTP id:ID!operationName:String protobuf:Protobuf!root:TraceNode!signature:String!startTime:Timestamp!variablesJSON:[StringToString!]!}type TraceError{json:String!locations:[TraceSourceLocation!]!message:String!timestamp:Timestamp}type TraceHTTP{host:String method:HTTPMethod!path:String protocol:String requestHeaders:[StringToString!]!responseHeaders:[StringToString!]!secure:Boolean!statusCode:Int!}type TraceNode{cacheMaxAgeMs:Float cacheScope:CacheScope children:[TraceNode!]!childrenIds:[ID!]!descendants:[TraceNode!]!descendantsIds:[ID!]!endTime:Timestamp!errors:[TraceError!]!id:ID!key:StringOrInt originalFieldName:String parent:ID!parentId:ID path:[String!]!startTime:Timestamp!type:String}"""Columns of TracePathErrorsRefs.""" enum TracePathErrorsRefsColumn{CLIENT_NAME CLIENT_VERSION DURATION_BUCKET ERRORS_COUNT_IN_PATH ERRORS_COUNT_IN_TRACE ERROR_MESSAGE PATH QUERY_ID QUERY_NAME SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP TRACE_HTTP_STATUS_CODE TRACE_ID TRACE_SIZE_BYTES TRACE_STARTS_AT}type TracePathErrorsRefsDimensions{clientName:String clientVersion:String durationBucket:Int errorMessage:String """If metrics were collected from a federated service, this field will be prefixed with `service:<SERVICE_NAME>.`""" path:String queryId:ID queryName:String schemaHash:String schemaTag:String serviceId:ID traceHttpStatusCode:Int traceId:ID traceStartsAt:Timestamp}"""Filter for data in TracePathErrorsRefs. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input TracePathErrorsRefsFilter{and:[TracePathErrorsRefsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose durationBucket dimension equals the given value if not null. To query for the null value, use {in: {durationBucket: [null]}} instead.""" durationBucket:Int """Selects rows whose errorMessage dimension equals the given value if not null. To query for the null value, use {in: {errorMessage: [null]}} instead.""" errorMessage:String in:TracePathErrorsRefsFilterIn not:TracePathErrorsRefsFilter or:[TracePathErrorsRefsFilter!]"""Selects rows whose path dimension equals the given value if not null. To query for the null value, use {in: {path: [null]}} instead.""" path:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID """Selects rows whose traceHttpStatusCode dimension equals the given value if not null. To query for the null value, use {in: {traceHttpStatusCode: [null]}} instead.""" traceHttpStatusCode:Int """Selects rows whose traceId dimension equals the given value if not null. To query for the null value, use {in: {traceId: [null]}} instead.""" traceId:ID}"""Filter for data in TracePathErrorsRefs. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input TracePathErrorsRefsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose durationBucket dimension is in the given list. A null value in the list means a row with null for that dimension.""" durationBucket:[Int]"""Selects rows whose errorMessage dimension is in the given list. A null value in the list means a row with null for that dimension.""" errorMessage:[String]"""Selects rows whose path dimension is in the given list. A null value in the list means a row with null for that dimension.""" path:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]"""Selects rows whose traceHttpStatusCode dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceHttpStatusCode:[Int]"""Selects rows whose traceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceId:[ID]}type TracePathErrorsRefsMetrics{errorsCountInPath:Long!errorsCountInTrace:Long!traceSizeBytes:Long!}input TracePathErrorsRefsOrderBySpec{column:TracePathErrorsRefsColumn!direction:Ordering!}type TracePathErrorsRefsRecord{"""Dimensions of TracePathErrorsRefs that can be grouped by.""" groupBy:TracePathErrorsRefsDimensions!"""Metrics of TracePathErrorsRefs that can be aggregated over.""" metrics:TracePathErrorsRefsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of TraceRefs.""" enum TraceRefsColumn{CLIENT_NAME CLIENT_VERSION DURATION_BUCKET DURATION_NS QUERY_ID QUERY_NAME SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP TRACE_ID TRACE_SIZE_BYTES}type TraceRefsDimensions{clientName:String clientVersion:String durationBucket:Int queryId:ID queryName:String querySignature:String schemaHash:String schemaTag:String serviceId:ID traceId:ID}"""Filter for data in TraceRefs. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input TraceRefsFilter{and:[TraceRefsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose durationBucket dimension equals the given value if not null. To query for the null value, use {in: {durationBucket: [null]}} instead.""" durationBucket:Int in:TraceRefsFilterIn not:TraceRefsFilter or:[TraceRefsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID """Selects rows whose traceId dimension equals the given value if not null. To query for the null value, use {in: {traceId: [null]}} instead.""" traceId:ID}"""Filter for data in TraceRefs. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input TraceRefsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose durationBucket dimension is in the given list. A null value in the list means a row with null for that dimension.""" durationBucket:[Int]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]"""Selects rows whose traceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceId:[ID]}type TraceRefsMetrics{durationNs:Long!traceSizeBytes:Long!}input TraceRefsOrderBySpec{column:TraceRefsColumn!direction:Ordering!}type TraceRefsRecord{"""Dimensions of TraceRefs that can be grouped by.""" groupBy:TraceRefsDimensions!"""Metrics of TraceRefs that can be aggregated over.""" metrics:TraceRefsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type TraceSourceLocation{column:Int!line:Int!}"""Counts of changes at the type level, including interfaces, unions, enums, scalars, input objects, etc.""" type TypeChangeSummaryCounts{"""Number of changes that are additions of types.""" additions:Int!"""Number of changes that are edits. This includes types changing kind and any type description
+and unions, and removing arguments. This also includes removing @deprecated usages.""" removals:Int!}type Trace{cacheMaxAgeMs:Float cacheScope:CacheScope clientName:String clientVersion:String durationMs:Float!endTime:Timestamp!http:TraceHTTP id:ID!operationName:String protobuf:Protobuf!root:TraceNode!signature:String!startTime:Timestamp!unexecutedOperationBody:String unexecutedOperationName:String variablesJSON:[StringToString!]!}type TraceError{json:String!locations:[TraceSourceLocation!]!message:String!timestamp:Timestamp}type TraceHTTP{host:String method:HTTPMethod!path:String protocol:String requestHeaders:[StringToString!]!responseHeaders:[StringToString!]!secure:Boolean!statusCode:Int!}type TraceNode{cacheMaxAgeMs:Float cacheScope:CacheScope children:[TraceNode!]!childrenIds:[ID!]!descendants:[TraceNode!]!descendantsIds:[ID!]!endTime:Timestamp!errors:[TraceError!]!id:ID!key:StringOrInt originalFieldName:String parent:ID!parentId:ID path:[String!]!startTime:Timestamp!type:String}"""Columns of TracePathErrorsRefs.""" enum TracePathErrorsRefsColumn{CLIENT_NAME CLIENT_VERSION DURATION_BUCKET ERRORS_COUNT_IN_PATH ERRORS_COUNT_IN_TRACE ERROR_MESSAGE PATH QUERY_ID QUERY_NAME SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP TRACE_HTTP_STATUS_CODE TRACE_ID TRACE_SIZE_BYTES TRACE_STARTS_AT}type TracePathErrorsRefsDimensions{clientName:String clientVersion:String durationBucket:Int errorMessage:String """If metrics were collected from a federated service, this field will be prefixed with `service:<SERVICE_NAME>.`""" path:String queryId:ID queryName:String schemaHash:String schemaTag:String serviceId:ID traceHttpStatusCode:Int traceId:ID traceStartsAt:Timestamp}"""Filter for data in TracePathErrorsRefs. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input TracePathErrorsRefsFilter{and:[TracePathErrorsRefsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose durationBucket dimension equals the given value if not null. To query for the null value, use {in: {durationBucket: [null]}} instead.""" durationBucket:Int """Selects rows whose errorMessage dimension equals the given value if not null. To query for the null value, use {in: {errorMessage: [null]}} instead.""" errorMessage:String in:TracePathErrorsRefsFilterIn not:TracePathErrorsRefsFilter or:[TracePathErrorsRefsFilter!]"""Selects rows whose path dimension equals the given value if not null. To query for the null value, use {in: {path: [null]}} instead.""" path:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID """Selects rows whose traceHttpStatusCode dimension equals the given value if not null. To query for the null value, use {in: {traceHttpStatusCode: [null]}} instead.""" traceHttpStatusCode:Int """Selects rows whose traceId dimension equals the given value if not null. To query for the null value, use {in: {traceId: [null]}} instead.""" traceId:ID}"""Filter for data in TracePathErrorsRefs. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input TracePathErrorsRefsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose durationBucket dimension is in the given list. A null value in the list means a row with null for that dimension.""" durationBucket:[Int]"""Selects rows whose errorMessage dimension is in the given list. A null value in the list means a row with null for that dimension.""" errorMessage:[String]"""Selects rows whose path dimension is in the given list. A null value in the list means a row with null for that dimension.""" path:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]"""Selects rows whose traceHttpStatusCode dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceHttpStatusCode:[Int]"""Selects rows whose traceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceId:[ID]}type TracePathErrorsRefsMetrics{errorsCountInPath:Long!errorsCountInTrace:Long!traceSizeBytes:Long!}input TracePathErrorsRefsOrderBySpec{column:TracePathErrorsRefsColumn!direction:Ordering!}type TracePathErrorsRefsRecord{"""Dimensions of TracePathErrorsRefs that can be grouped by.""" groupBy:TracePathErrorsRefsDimensions!"""Metrics of TracePathErrorsRefs that can be aggregated over.""" metrics:TracePathErrorsRefsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of TraceRefs.""" enum TraceRefsColumn{CLIENT_NAME CLIENT_VERSION DURATION_BUCKET DURATION_NS QUERY_ID QUERY_NAME SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP TRACE_ID TRACE_SIZE_BYTES}type TraceRefsDimensions{clientName:String clientVersion:String durationBucket:Int queryId:ID queryName:String querySignature:String schemaHash:String schemaTag:String serviceId:ID traceId:ID}"""Filter for data in TraceRefs. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input TraceRefsFilter{and:[TraceRefsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose durationBucket dimension equals the given value if not null. To query for the null value, use {in: {durationBucket: [null]}} instead.""" durationBucket:Int in:TraceRefsFilterIn not:TraceRefsFilter or:[TraceRefsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID """Selects rows whose traceId dimension equals the given value if not null. To query for the null value, use {in: {traceId: [null]}} instead.""" traceId:ID}"""Filter for data in TraceRefs. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input TraceRefsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose durationBucket dimension is in the given list. A null value in the list means a row with null for that dimension.""" durationBucket:[Int]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]"""Selects rows whose traceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceId:[ID]}type TraceRefsMetrics{durationNs:Long!traceSizeBytes:Long!}input TraceRefsOrderBySpec{column:TraceRefsColumn!direction:Ordering!}type TraceRefsRecord{"""Dimensions of TraceRefs that can be grouped by.""" groupBy:TraceRefsDimensions!"""Metrics of TraceRefs that can be aggregated over.""" metrics:TraceRefsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type TraceSourceLocation{column:Int!line:Int!}"""Counts of changes at the type level, including interfaces, unions, enums, scalars, input objects, etc.""" type TypeChangeSummaryCounts{"""Number of changes that are additions of types.""" additions:Int!"""Number of changes that are edits. This includes types changing kind and any type description
 changes, but also includes adding/removing values from enums, adding/removing members from
 interfaces and unions, and any enum value deprecation and description changes.""" edits:Int!"""Number of changes that are removals of types.""" removals:Int!}"""the TypeFilterConfig is used to isolate
 types, and subsequent fields, through
@@ -164,9 +164,9 @@ MediaUploadInfo.csrfToken.""" avatarUpload:AvatarUploadResult """Get an image UR
 argument is used for bandwidth reduction, and should be the size of the image as displayed in the
 application. Apollo's media server will downscale larger images to at least the requested size,
 but this will not happen for third-party media servers.""" avatarUrl(size:Int!=40):String betaFeaturesOn:Boolean!canUpdateAvatar:Boolean!canUpdateEmail:Boolean!canUpdateFullName:Boolean!createdAt:Timestamp!email:String emailModifiedAt:Timestamp emailVerified:Boolean!experimentalFeatures:UserExperimentalFeatures!featureIntros:FeatureIntros fullName:String!"""The user's GitHub username, if they log in via GitHub. May be null even for GitHub users in some edge cases.""" githubUsername:String """The unique identifier for a user.""" id:ID!"""This role is reserved exclusively for internal MDG employees, and it controls what access they may have to other
-organizations. Only admins are allowed to see this field.""" internalAdminRole:InternalMdgAdminRole """Last time any API token from this user was used against AGM services""" lastAuthenticatedAt:Timestamp logoutAfterIdleMs:Int """Which organizations a user belongs to.""" memberships:[UserMembership!]!"""The name (first and last) of a user.""" name:String!odysseyCertifications:[OdysseyCertification!]odysseyCourses:[OdysseyCourse!]odysseyHasEarlyAccess:Boolean!odysseyHasRequestedEarlyAccess:Boolean!odysseyTasks:[OdysseyTask!]sandboxOperationCollections:[OperationCollection!]!synchronized:Boolean!"""List of Zendesk tickets this user has submitted""" tickets:[ZendeskTicket!]type:UserType!}type UserApiKey implements ApiKey{id:ID!keyName:String token:String!}type UserExperimentalFeatures{exampleFeature:Boolean!}"""An organization a given user belongs to.""" type UserMembership{"""The organization a user is a member of.""" account:Account!"""When the user joined the organization.""" createdAt:Timestamp!"""What level of access a use has to an organization.""" permission:UserPermission!"""The user that is a member of an organization.""" user:User!}type UserMutation{acceptPrivacyPolicy:Void """Change the user's password""" changePassword(newPassword:String!previousPassword:String!):Void createOdysseyCertification(certificationId:String!):OdysseyCertification createOdysseyCourses(courses:[OdysseyCourseInput!]!):[OdysseyCourse!]createOdysseyTasks(tasks:[OdysseyTaskInput!]!):[OdysseyTask!]"""Delete the user's avatar. Requires User.canUpdateAvatar to be true.""" deleteAvatar:AvatarDeleteError """Hard deletes the associated user. Throws an error otherwise with reason included.""" hardDelete:Void """Create a new API key for this user. Must take in a name for this key.""" newKey(keyName:String!):UserApiKey!"""Create a new API key for this user if there are no current API keys.
-If an API key already exists, this will return one at random and not create a new one.""" provisionKey(keyName:String!="add-a-name"):ApiKeyProvision """Refresh information about the user from its upstream service (eg list of organizations from GitHub)""" refresh:User """Removes the given key from this user. Can be used to remove either a web cookie or a user API key.""" removeKey(id:ID!):Void """Renames the given key to the new key name.""" renameKey(id:ID!newKeyName:String):UserApiKey resendVerificationEmail:Void setOdysseyCourse(course:OdysseyCourseInput!):OdysseyCourse setOdysseyTask(task:OdysseyTaskInput!):OdysseyTask """Submit a zendesk ticket for this user""" submitZendeskTicket(collaborators:[String!]email:String!ticket:ZendeskTicketInput!):ZendeskTicket """Update information about a user; all arguments are optional""" update(email:String fullName:String referrer:String trackingGoogleClientId:String trackingMarketoClientId:String userSegment:UserSegment utmCampaign:String utmMedium:String utmSource:String):User """Updates this users' preference concerning opting into beta features.""" updateBetaFeaturesOn(betaFeaturesOn:Boolean!):User """Update the status of a feature for this. For example, if you want to hide an introductory popup.""" updateFeatureIntros(newFeatureIntros:FeatureIntrosInput):User """Update user to have the given internal mdg admin role.
+organizations. Only admins are allowed to see this field.""" internalAdminRole:InternalMdgAdminRole """Last time any API token from this user was used against AGM services""" lastAuthenticatedAt:Timestamp logoutAfterIdleMs:Int """Which organizations a user belongs to.""" memberships:[UserMembership!]!"""The name (first and last) of a user.""" name:String!odysseyAttempt(id:ID!):OdysseyAttempt odysseyAttempts:[OdysseyAttempt!]!odysseyCertifications:[OdysseyCertification!]odysseyCourses:[OdysseyCourse!]odysseyHasEarlyAccess:Boolean!odysseyHasRequestedEarlyAccess:Boolean!odysseyTasks:[OdysseyTask!]sandboxOperationCollections:[OperationCollection!]!synchronized:Boolean!"""List of Zendesk tickets this user has submitted""" tickets:[ZendeskTicket!]type:UserType!}type UserApiKey implements ApiKey{id:ID!keyName:String token:String!}type UserExperimentalFeatures{exampleFeature:Boolean!}"""An organization a given user belongs to.""" type UserMembership{"""The organization a user is a member of.""" account:Account!"""When the user joined the organization.""" createdAt:Timestamp!"""What level of access a use has to an organization.""" permission:UserPermission!"""The user that is a member of an organization.""" user:User!}type UserMutation{acceptPrivacyPolicy:Void """Change the user's password""" changePassword(newPassword:String!previousPassword:String!):Void createOdysseyAttempt(testId:String!):OdysseyAttempt createOdysseyCertification(certificationId:String!):OdysseyCertification createOdysseyCourses(courses:[OdysseyCourseInput!]!):[OdysseyCourse!]createOdysseyTasks(tasks:[OdysseyTaskInput!]!):[OdysseyTask!]"""Delete the user's avatar. Requires User.canUpdateAvatar to be true.""" deleteAvatar:AvatarDeleteError """Hard deletes the associated user. Throws an error otherwise with reason included.""" hardDelete:Void """Create a new API key for this user. Must take in a name for this key.""" newKey(keyName:String!):UserApiKey!"""Create a new API key for this user if there are no current API keys.
+If an API key already exists, this will return one at random and not create a new one.""" provisionKey(keyName:String!="add-a-name"):ApiKeyProvision """Refresh information about the user from its upstream service (eg list of organizations from GitHub)""" refresh:User """Removes the given key from this user. Can be used to remove either a web cookie or a user API key.""" removeKey(id:ID!):Void """Renames the given key to the new key name.""" renameKey(id:ID!newKeyName:String):UserApiKey resendVerificationEmail:Void setOdysseyCourse(course:OdysseyCourseInput!):OdysseyCourse setOdysseyResponse(response:OdysseyResponseInput!):OdysseyResponse setOdysseyTask(task:OdysseyTaskInput!):OdysseyTask """Submit a zendesk ticket for this user""" submitZendeskTicket(collaborators:[String!]email:String!ticket:ZendeskTicketInput!):ZendeskTicket """Update information about a user; all arguments are optional""" update(email:String fullName:String referrer:String trackingGoogleClientId:String trackingMarketoClientId:String userSegment:UserSegment utmCampaign:String utmMedium:String utmSource:String):User """Updates this users' preference concerning opting into beta features.""" updateBetaFeaturesOn(betaFeaturesOn:Boolean!):User """Update the status of a feature for this. For example, if you want to hide an introductory popup.""" updateFeatureIntros(newFeatureIntros:FeatureIntrosInput):User updateOdysseyAttempt(completedAt:Timestamp id:ID!):OdysseyAttempt """Update user to have the given internal mdg admin role.
 It is necessary to be an MDG_INTERNAL_SUPER_ADMIN to perform update.
 Additionally, upserting a null value explicitly revokes this user's
-admin status.""" updateRole(newRole:InternalMdgAdminRole):User user:User!verifyEmail(token:String!):User}enum UserPermission{BILLING_MANAGER CONSUMER CONTRIBUTOR GRAPH_ADMIN LEGACY_GRAPH_KEY OBSERVER ORG_ADMIN}enum UserSegment{JOIN_MY_TEAM LOCAL_DEVELOPMENT NOT_SPECIFIED PRODUCTION_GRAPHS SANDBOX SANDBOX_OPERATION_COLLECTIONS TRY_TEAM}type UserSettings{appNavCollapsed:Boolean!autoManageVariables:Boolean!id:String!mockingResponses:Boolean!preflightScriptEnabled:Boolean!responseHints:ResponseHints!tableMode:Boolean!themeName:ThemeName!}"""Explorer user settings input""" input UserSettingsInput{appNavCollapsed:Boolean autoManageVariables:Boolean mockingResponses:Boolean preflightScriptEnabled:Boolean responseHints:ResponseHints tableMode:Boolean themeName:ThemeName}enum UserType{APOLLO GITHUB SSO}type ValidateOperationsResult{validationResults:[ValidationResult!]!}type ValidationError implements Error{message:String!}enum ValidationErrorCode{DEPRECATED_FIELD INVALID_OPERATION NON_PARSEABLE_DOCUMENT}enum ValidationErrorType{FAILURE INVALID WARNING}"""Represents a single validation error, with information relating to the error
+admin status.""" updateRole(newRole:InternalMdgAdminRole):User user:User!verifyEmail(token:String!):User}enum UserPermission{BILLING_MANAGER CONSUMER CONTRIBUTOR DOCUMENTER GRAPH_ADMIN LEGACY_GRAPH_KEY OBSERVER ORG_ADMIN}enum UserSegment{JOIN_MY_TEAM LOCAL_DEVELOPMENT NOT_SPECIFIED PRODUCTION_GRAPHS SANDBOX SANDBOX_OPERATION_COLLECTIONS TRY_TEAM}type UserSettings{appNavCollapsed:Boolean!autoManageVariables:Boolean!id:String!mockingResponses:Boolean!preflightScriptEnabled:Boolean!responseHints:ResponseHints!tableMode:Boolean!themeName:ThemeName!}"""Explorer user settings input""" input UserSettingsInput{appNavCollapsed:Boolean autoManageVariables:Boolean mockingResponses:Boolean preflightScriptEnabled:Boolean responseHints:ResponseHints tableMode:Boolean themeName:ThemeName}enum UserType{APOLLO GITHUB SSO}type ValidateOperationsResult{validationResults:[ValidationResult!]!}type ValidationError implements Error{message:String!}enum ValidationErrorCode{DEPRECATED_FIELD INVALID_OPERATION NON_PARSEABLE_DOCUMENT}enum ValidationErrorType{FAILURE INVALID WARNING}"""Represents a single validation error, with information relating to the error
 and its respective operation""" type ValidationResult{"""The validation result's error code""" code:ValidationErrorCode!"""Description of the validation error""" description:String!"""The operation related to this validation result""" operation:OperationDocument!"""The type of validation error thrown - warning, failure, or invalid.""" type:ValidationErrorType!}"""Always null""" scalar Void """Webhook notification channel""" type WebhookChannel implements Channel{id:ID!name:String!secretToken:String subscriptions:[ChannelSubscription!]!url:String!}"""PagerDuty notification channel parameters""" input WebhookChannelInput{name:String secretToken:String url:String!}type ZendeskTicket{createdAt:Timestamp!description:String!graph:Service id:Int!organization:Account priority:TicketPriority!status:TicketStatus subject:String!user:User}"""Zendesk ticket input""" input ZendeskTicketInput{description:String!graphId:String organizationId:String priority:TicketPriority!subject:String!}
diff --git a/pkgs/development/tools/rover/update.sh b/pkgs/development/tools/rover/update.sh
index 50a9945884b71..fbf6fba989c47 100755
--- a/pkgs/development/tools/rover/update.sh
+++ b/pkgs/development/tools/rover/update.sh
@@ -26,17 +26,6 @@ rover_tar_url="https://github.com/apollographql/rover/archive/refs/tags/${rover_
 # Convert hash to SRI representation
 rover_sri_hash=$(nix hash to-sri --type sha256 "$rover_hash")
 
-# Identify librusty version and hash
-librusty_version=$(
-    sed --quiet '/^name = "v8"$/{n;p}' "${repo}/Cargo.lock" \
-        | grep --only-matching --perl-regexp '^version = "\K[^"]+'
-)
-librusty_arch=x86_64-unknown-linux-gnu
-librusty_url="https://github.com/denoland/rusty_v8/releases/download/v${librusty_version}/librusty_v8_release_${librusty_arch}.a"
-echo "Fetching librusty"
-librusty_hash=$(nix-prefetch-url "$librusty_url" --type sha256)
-librusty_sri_hash=$(nix hash to-sri --type sha256 "$librusty_hash")
-
 # Update rover version.
 sed --in-place \
     "s|version = \"[0-9.]*\"|version = \"$rover_version\"|" \
@@ -61,16 +50,6 @@ sed --in-place \
     "s|cargoSha256 = \".*\"|cargoSha256 = \"$cargoSha256\"|" \
     "$dirname/default.nix"
 
-# Update librusty version
-sed --in-place \
-    "s|version = \"[0-9.]*\"|version = \"$librusty_version\"|" \
-    "$dirname/librusty_v8.nix"
-
-# Update librusty hash
-sed --in-place \
-    "s|x86_64-linux = \"[^\"]*\"|x86_64-linux = \"$librusty_sri_hash\"|" \
-    "$dirname/librusty_v8.nix"
-
 # Update apollo api schema info
 response="$(mktemp)"
 schemaUrl=https://graphql.api.apollographql.com/api/schema
diff --git a/pkgs/development/tools/rust/bindgen/unwrapped.nix b/pkgs/development/tools/rust/bindgen/unwrapped.nix
index 65ce8e20bc0ef..f77e2feb4ff37 100644
--- a/pkgs/development/tools/rust/bindgen/unwrapped.nix
+++ b/pkgs/development/tools/rust/bindgen/unwrapped.nix
@@ -1,9 +1,11 @@
-{ lib, fetchFromGitHub, rustPlatform, clang, rustfmt, writeTextFile
+{ lib, fetchFromGitHub, rustPlatform, clang, rustfmt
 , runtimeShell
 , bash
 }:
-
-rustPlatform.buildRustPackage rec {
+let
+  # bindgen hardcodes rustfmt outputs that use nightly features
+  rustfmt-nightly = rustfmt.override { asNightly = true; };
+in rustPlatform.buildRustPackage rec {
   pname = "rust-bindgen-unwrapped";
   version = "0.59.2";
 
@@ -25,23 +27,10 @@ rustPlatform.buildRustPackage rec {
   '';
 
   doCheck = true;
-  checkInputs =
-    let fakeRustup = writeTextFile {
-      name = "fake-rustup";
-      executable = true;
-      destination = "/bin/rustup";
-      text = ''
-        #!${runtimeShell}
-        shift
-        shift
-        exec "$@"
-      '';
-    };
-  in [
-    rustfmt
-    fakeRustup # the test suite insists in calling `rustup run nightly rustfmt`
-    clang
-  ];
+  checkInputs = [ clang ];
+
+  RUSTFMT = "${rustfmt-nightly}/bin/rustfmt";
+
   preCheck = ''
     # for the ci folder, notably
     patchShebangs .
diff --git a/pkgs/development/tools/rust/cargo-deny/default.nix b/pkgs/development/tools/rust/cargo-deny/default.nix
index 78e7fa7b4c8d6..8c05a5fc9a035 100644
--- a/pkgs/development/tools/rust/cargo-deny/default.nix
+++ b/pkgs/development/tools/rust/cargo-deny/default.nix
@@ -11,19 +11,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deny";
-  version = "0.11.3";
+  version = "0.11.4";
 
   src = fetchFromGitHub {
     owner = "EmbarkStudios";
     repo = pname;
     rev = version;
-    sha256 = "sha256-QpYwH9ZmD/muCGtL+9wzz4UKRyHWaga7vrjNjKz4uVQ=";
+    sha256 = "sha256-lwVoV+zxJfmWvlt14FFmxPCdKCoojVvRVGS1rq1QF44=";
   };
 
   # enable pkg-config feature of zstd
   cargoPatches = [ ./zstd-pkg-config.patch ];
 
-  cargoSha256 = "sha256-DFGCjA0AENYDs5EnQ3WDkbCEw14ndjOh7qx2ZFgNGH0=";
+  cargoSha256 = "sha256-I+kpHaCxuNzq8+GdqQEuSdE4aD+/lBccUrSf+XW2OKE=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/rust/cargo-depgraph/default.nix b/pkgs/development/tools/rust/cargo-depgraph/default.nix
index ab45d053477c8..3ec0c110a69d8 100644
--- a/pkgs/development/tools/rust/cargo-depgraph/default.nix
+++ b/pkgs/development/tools/rust/cargo-depgraph/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-depgraph";
-  version = "1.2.2";
+  version = "1.2.4";
 
   src = fetchFromSourcehut {
     owner = "~jplatte";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Zt60F43hhFSj9zfAkEbgRqODvBRmzn04dHMijbz+uX0=";
+    sha256 = "sha256-EbAV2VM73K0KiEKcy9kkK1TQHFQ1jRmKG3Tn9GAsWIk=";
   };
 
-  cargoSha256 = "sha256-mMXIiAfYBqOS3z4735T9dB9TEo7Ph2JCNq0QfyetxJg=";
+  cargoSha256 = "sha256-AAZlAYhl62c8nFvFtwwGniGbQqXu2vHTO4++O1VJ4LM=";
 
   meta = with lib; {
     description = "Create dependency graphs for cargo projects using `cargo metadata` and graphviz";
diff --git a/pkgs/development/tools/rust/cargo-diet/default.nix b/pkgs/development/tools/rust/cargo-diet/default.nix
index 471b7454684a8..a809e02fe313a 100644
--- a/pkgs/development/tools/rust/cargo-diet/default.nix
+++ b/pkgs/development/tools/rust/cargo-diet/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-diet";
-  version = "1.2.3";
+  version = "1.2.4";
 
   src = fetchFromGitHub {
     owner = "the-lean-crate";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-R40cggAdNbd8/+fG87PYHIbmgIsrhEwQ9ocB4p22bL4=";
+    sha256 = "sha256-olF+F2y7F3ZpyluyslRDlfRKkWmE+zJ01bXyzy9x5EQ=";
   };
 
-  cargoSha256 = "sha256-lgCP5P7X9B4sTND+p8repZB63c64o1QuozJoz6KQXiE=";
+  cargoSha256 = "sha256-ayi7Px1A8XzswlGnm31YWF7+8+lBChBaVJFwozSAimw=";
 
   meta = with lib; {
     description = "Help computing optimal include directives for your Cargo.toml manifest";
diff --git a/pkgs/development/tools/rust/cargo-flash/default.nix b/pkgs/development/tools/rust/cargo-flash/default.nix
index 0f90f48004395..49e9bbaceb5bb 100644
--- a/pkgs/development/tools/rust/cargo-flash/default.nix
+++ b/pkgs/development/tools/rust/cargo-flash/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-flash";
-  version = "0.12.0";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
     owner = "probe-rs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0s49q8x0iscy9rgn9zgymyg39cqm251a99m341znjn55lap3pdl8";
+    sha256 = "sha256-bd0TY8bdpLHLCdDQgJeJvqjAcSF67+LGSNx8yafYbys=";
   };
 
-  cargoSha256 = "0rb4s5bwjs7hri636r2viva96a6z9qjv9if6i220j9yglrvi7c8i";
+  cargoSha256 = "sha256-bx2N8zP7BmqU6oM/7Nf2i9S1uNWItReQMD59vtG1RKE=";
 
   nativeBuildInputs = [ pkg-config rustfmt ];
   buildInputs = [ libusb1 ] ++ lib.optionals stdenv.isDarwin [ AppKit ];
diff --git a/pkgs/development/tools/rust/cargo-nextest/default.nix b/pkgs/development/tools/rust/cargo-nextest/default.nix
index ed0c8c870096d..2c00f12f11123 100644
--- a/pkgs/development/tools/rust/cargo-nextest/default.nix
+++ b/pkgs/development/tools/rust/cargo-nextest/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-nextest";
-  version = "0.9.12";
+  version = "0.9.14";
 
   src = fetchFromGitHub {
     owner = "nextest-rs";
     repo = "nextest";
     rev = "cargo-nextest-${version}";
-    sha256 = "sha256-E3/AgzLvjlMfbmvAOYx4V1/1wSLKlFo61tGv79ow7XY=";
+    sha256 = "sha256-g2kgMMmztURik/aSgP76vG+yI3vSqX9k836ACtLviFk=";
   };
 
-  cargoSha256 = "sha256-zrYmZG3VAneanHaNoG3txv7LbKCYvqIf60g1W7CmPG8=";
+  cargoSha256 = "sha256-1TJ96ilHX+LGkrMLXIK4rAebVxNQpRTYo9RnPE6BmmU=";
 
   cargoTestFlags = [ # TODO: investigate some more why these tests fail in nix
     "--"
diff --git a/pkgs/development/tools/rust/cargo-rr/default.nix b/pkgs/development/tools/rust/cargo-rr/default.nix
index f2099a855ccbf..473a25e090203 100644
--- a/pkgs/development/tools/rust/cargo-rr/default.nix
+++ b/pkgs/development/tools/rust/cargo-rr/default.nix
@@ -1,7 +1,7 @@
 { lib
 , rustPlatform
 , fetchFromGitHub
-, genericUpdater
+, gitUpdater
 , common-updater-scripts
 , makeWrapper
 , rr
@@ -9,21 +9,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-rr";
-  version = "0.1.3";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "danielzfranklin";
     repo = pname;
-    rev = version;
-    sha256 = "01m8fdz9as2fxnzs9csvbc76qxzbb98a66dh7w4a5q855v38g0zy";
+    rev = "v${version}";
+    sha256 = "sha256-lQS+bp1u79iO8WGrkZSFEuonr1eYjxIQYhUvM/kBao4";
   };
 
-  cargoSha256 = "0fjs76n6bbbv83s213h2dgsszgxy4hbjsclyk9m81b3bfbmmb9sa";
+  cargoSha256 = "sha256-PdKqWMxTtBJbNqITs3IjNcpijXy6MHitEY4jDp4jZro=";
 
   passthru = {
-    updateScript = genericUpdater {
+    updateScript = gitUpdater {
       inherit pname version;
-      versionLister = "${common-updater-scripts}/bin/list-git-tags ${src.meta.homepage}";
+      rev-prefix = "v";
     };
   };
 
diff --git a/pkgs/development/tools/rust/cargo-tally/default.nix b/pkgs/development/tools/rust/cargo-tally/default.nix
index 808cda01fe54b..278782436781c 100644
--- a/pkgs/development/tools/rust/cargo-tally/default.nix
+++ b/pkgs/development/tools/rust/cargo-tally/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-tally";
-  version = "1.0.2";
+  version = "1.0.4";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-m5NLI0C7ett5Fmvs9t1vl2W6h7mjCtEFBc1AzYg9JfY=";
+    sha256 = "sha256-GUH/qWAC1vBLVV3K/qjkABH1agkyJEuhZGds+8UP1kQ=";
   };
 
-  cargoSha256 = "sha256-AxjQUyxX5lLFPdEdETvZLHbgMYg/xOo7bcqn1TiDKsE=";
+  cargoSha256 = "sha256-qvWJvkNG7rPHvv2hqJrOyZOqqAhRvgWdrkgr/Tefnps=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     DiskArbitration
diff --git a/pkgs/development/tools/rust/cbindgen/default.nix b/pkgs/development/tools/rust/cbindgen/default.nix
index 6e8f67bd0a544..a4f02023bb059 100644
--- a/pkgs/development/tools/rust/cbindgen/default.nix
+++ b/pkgs/development/tools/rust/cbindgen/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-cbindgen";
-  version = "0.20.0";
+  version = "0.21.0";
 
   src = fetchFromGitHub {
     owner = "eqrion";
     repo = "cbindgen";
     rev = "v${version}";
-    sha256 = "sha256-BLiAFYkqVJSpeNPW7UF2PpAttd6ADGeQ9yneiVfNi4g=";
+    sha256 = "sha256-WvCGAjFxjaql/y35QfHyHvwbEL4pKtlc3JO2NecqQCM=";
   };
 
-  cargoSha256 = "sha256-P58qANcl0mYqJDP1QnSx560y8BLH+ePTZ+uHuix89R4=";
+  cargoSha256 = "sha256-Kl2/u+ttPn1k7f3+XRCord4u+c4QZ80/Okb40XeyeIk=";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
diff --git a/pkgs/development/tools/rust/duckscript/default.nix b/pkgs/development/tools/rust/duckscript/default.nix
index aabb8b94c8109..d8bae34c9c396 100644
--- a/pkgs/development/tools/rust/duckscript/default.nix
+++ b/pkgs/development/tools/rust/duckscript/default.nix
@@ -32,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/sagiegurari/duckscript";
     license = licenses.asl20;
     maintainers = with maintainers; [ mkg20001 ];
+    mainProgram = "duck";
   };
 }
diff --git a/pkgs/development/tools/rust/racer/default.nix b/pkgs/development/tools/rust/racer/default.nix
index f6717b36b203b..3fd4f76838454 100644
--- a/pkgs/development/tools/rust/racer/default.nix
+++ b/pkgs/development/tools/rust/racer/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "racer";
-  version = "2.1.48";
+  version = "2.2.1";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-lat5s9+AMFI3VXiWqjLESZrtq3IwOZhlt+5BhYoonfA=";
+    sha256 = "sha256-uAVtJwOyhe1lPz+MUUFCgHJPVGuIk/lNUkQWiNdOZ5Y=";
   };
 
-  cargoSha256 = "sha256-jGsvCmrPGVzWdx7V3J4bBK+SF2o+icORmVKuwqYxdh4=";
+  cargoSha256 = "sha256-U2mI1y6t8CwxW/iPcPzxAafu61GNm/XLCKVGuyybV/4=";
 
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = lib.optional stdenv.isDarwin Security;
@@ -32,6 +32,10 @@ rustPlatform.buildRustPackage rec {
     "--skip test_resolve_global_path_in_modules"
   ];
 
+  # [2022-04-06] Its test suite contains two function calls with the
+  # wrong number of arguments, breaking its build.
+  doCheck = false;
+
   doInstallCheck = true;
   installCheckPhase = ''
     $out/bin/racer --version
@@ -42,7 +46,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/racer-rust/racer";
     license = licenses.mit;
     maintainers = with maintainers; [ jagajaga ];
-    # error[E0199]: implementing the trait `Step` is not unsafe
-    broken = true;
   };
 }
diff --git a/pkgs/development/tools/rust/rust-analyzer/default.nix b/pkgs/development/tools/rust/rust-analyzer/default.nix
index f155fdbaf7885..92d731c79b558 100644
--- a/pkgs/development/tools/rust/rust-analyzer/default.nix
+++ b/pkgs/development/tools/rust/rust-analyzer/default.nix
@@ -11,14 +11,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-analyzer-unwrapped";
-  version = "2022-03-07";
-  cargoSha256 = "sha256-geMzdo5frW5VkuTwBHKHXCTJZrHDUIRSTs2kkCfA5Vc=";
+  version = "2022-04-11";
+  cargoSha256 = "sha256-pc8S+5g67vN9170ABiHGe1t4Go0F63UiOeLd71USYCI=";
 
   src = fetchFromGitHub {
     owner = "rust-analyzer";
     repo = "rust-analyzer";
     rev = version;
-    sha256 = "sha256-/qKh4utesAjlyG8A3hEmSx+HBgh48Uje6ZRtUGz5f0g=";
+    sha256 = "sha256-miMIrDawSS1zXh6EuX03x5ACM2NTabksssSyutSNpjY=";
   };
 
   patches = [
diff --git a/pkgs/development/tools/selenium/chromedriver/default.nix b/pkgs/development/tools/selenium/chromedriver/default.nix
index a75488a229dff..66a73b1c1e98f 100644
--- a/pkgs/development/tools/selenium/chromedriver/default.nix
+++ b/pkgs/development/tools/selenium/chromedriver/default.nix
@@ -2,7 +2,7 @@
 , cairo, fontconfig, freetype, gdk-pixbuf, glib
 , glibc, gtk2, libX11, nspr, nss, pango
 , libxcb, libXi, libXrender, libXext, dbus
-, testVersion, chromedriver
+, testers, chromedriver
 }:
 
 let
@@ -56,7 +56,7 @@ in stdenv.mkDerivation rec {
     wrapProgram "$out/bin/chromedriver" --prefix LD_LIBRARY_PATH : "${libs}"
   '';
 
-  passthru.tests.version = testVersion { package = chromedriver; };
+  passthru.tests.version = testers.testVersion { package = chromedriver; };
 
   meta = with lib; {
     homepage = "https://chromedriver.chromium.org/";
diff --git a/pkgs/development/tools/sentry-cli/default.nix b/pkgs/development/tools/sentry-cli/default.nix
index 2fb0f1ebbebac..0ba8e3b3d31a6 100644
--- a/pkgs/development/tools/sentry-cli/default.nix
+++ b/pkgs/development/tools/sentry-cli/default.nix
@@ -9,13 +9,13 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "sentry-cli";
-  version = "1.74.2";
+  version = "1.74.3";
 
   src = fetchFromGitHub {
     owner = "getsentry";
     repo = "sentry-cli";
     rev = version;
-    sha256 = "sha256-1A/c5HiXtT6xUTxVInv9DbbCsqpu8iCJ7I0A9wFeaQ0=";
+    sha256 = "sha256-savbS/1j6PJqmkk6c+XMOUEkrLZNU2p0YbN8rHfz2po=";
   };
   doCheck = false;
 
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
   nativeBuildInputs = [ pkg-config ];
 
-  cargoSha256 = "sha256-z++t+Zt40az11z/xhobvvbbSNUBpnMzqlRzoOuYgY2U=";
+  cargoSha256 = "sha256-7B8cmrDYufhlIMv2r6TSD+C8NLE2Juewgy4XYYr+QKs=";
 
   meta = with lib; {
     homepage = "https://docs.sentry.io/cli/";
diff --git a/pkgs/development/tools/skaffold/default.nix b/pkgs/development/tools/skaffold/default.nix
index 4f286cb22d779..460b1a139b7ee 100644
--- a/pkgs/development/tools/skaffold/default.nix
+++ b/pkgs/development/tools/skaffold/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "skaffold";
-  version = "1.37.0";
+  version = "1.38.0";
 
   src = fetchFromGitHub {
     owner = "GoogleContainerTools";
     repo = "skaffold";
     rev = "v${version}";
-    sha256 = "sha256-mS+q+WOdEMMHjoqoIlDOqkoaRRLlou7FbMjC436k96A=";
+    sha256 = "sha256-Sy8DpCZEFps6Z4x57ESofNm2EZsPUCHzLz1icl1MOVE=";
   };
 
-  vendorSha256 = "sha256-LiNnTAI7iJkWL657eBw5OsCdvgWE2ZFZ3e+8vJtMhoE=";
+  vendorSha256 = "sha256-RA2KgUjYB3y6sOQdnLSZjr52VosZSaRrVU0BXZvjB1M=";
 
   subPackages = ["cmd/skaffold"];
 
diff --git a/pkgs/development/tools/skopeo/default.nix b/pkgs/development/tools/skopeo/default.nix
index 6618c0248514e..c25a27e6d957b 100644
--- a/pkgs/development/tools/skopeo/default.nix
+++ b/pkgs/development/tools/skopeo/default.nix
@@ -10,6 +10,7 @@
 , installShellFiles
 , makeWrapper
 , fuse-overlayfs
+, dockerTools
 }:
 
 buildGoModule rec {
@@ -53,6 +54,10 @@ buildGoModule rec {
     runHook postInstall
   '';
 
+  passthru.tests = {
+    inherit (dockerTools.examples) testNixFromDockerHub;
+  };
+
   meta = with lib; {
     description = "A command line utility for various operations on container images and image repositories";
     homepage = "https://github.com/containers/skopeo";
diff --git a/pkgs/development/tools/sq/default.nix b/pkgs/development/tools/sq/default.nix
index 4141fd59733ca..0be6e6c7bb6e0 100644
--- a/pkgs/development/tools/sq/default.nix
+++ b/pkgs/development/tools/sq/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles, testVersion, sq }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles, testers, sq }:
 buildGoModule rec {
   pname = "sq";
   version = "0.15.4";
@@ -29,7 +29,7 @@ buildGoModule rec {
   '';
 
   passthru.tests = {
-    version = testVersion { package = sq; };
+    version = testers.testVersion { package = sq; };
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/stagit/default.nix b/pkgs/development/tools/stagit/default.nix
index 3b47823b9b439..7ac62a9e78526 100644
--- a/pkgs/development/tools/stagit/default.nix
+++ b/pkgs/development/tools/stagit/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "stagit";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchgit {
     url = "git://git.codemadness.org/stagit";
     rev = version;
-    sha256 = "sha256-4QSKW89RyK/PpGE+lOHFiMTI82pdspfObnzd0rcgQkg=";
+    sha256 = "sha256-wnXvK1OYd6FxJuZai5a0Mvz4gWpjlhLgGrcKlvn2lbs=";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/development/tools/statik/default.nix b/pkgs/development/tools/statik/default.nix
index 48ceea24b70c1..6befb42c24d3c 100644
--- a/pkgs/development/tools/statik/default.nix
+++ b/pkgs/development/tools/statik/default.nix
@@ -24,6 +24,6 @@ buildGoModule rec {
     homepage = "https://github.com/rakyll/statik";
     description = "Embed files into a Go executable ";
     license = licenses.asl20;
-    maintainers = with maintainers; [ chiiruno ];
+    maintainers = with maintainers; [ Madouura ];
   };
 }
diff --git a/pkgs/development/tools/stylua/default.nix b/pkgs/development/tools/stylua/default.nix
index 729c0c191885d..60fd43d09cd36 100644
--- a/pkgs/development/tools/stylua/default.nix
+++ b/pkgs/development/tools/stylua/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "stylua";
-  version = "0.13.0";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "johnnymorganz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Ecv6am4JT4cJKAApieOWQZG3XZkeCpmLrs6K7+4c8xA=";
+    sha256 = "sha256-0Pl8SogCSZcboLHVAI45JqCLojAqIWBFuoZAK4gTzrs=";
   };
 
-  cargoSha256 = "sha256-r09fTZTmOZQCI3qIWcnQnhUXYLVK8pF5y0y/dQl88CI=";
+  cargoSha256 = "sha256-VFgA5kOwUJG0GgKU4AUYCB/psAPM2GdTz5oRFgkrNi8=";
 
   buildFeatures = lib.optional lua52Support "lua52"
     ++ lib.optional luauSupport "luau";
diff --git a/pkgs/development/tools/sumneko-lua-language-server/default.nix b/pkgs/development/tools/sumneko-lua-language-server/default.nix
index 88fa62903dd8f..f49ee01deafa0 100644
--- a/pkgs/development/tools/sumneko-lua-language-server/default.nix
+++ b/pkgs/development/tools/sumneko-lua-language-server/default.nix
@@ -4,13 +4,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "sumneko-lua-language-server";
-  version = "2.6.7";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "sumneko";
     repo = "lua-language-server";
     rev = version;
-    sha256 = "sha256-m9vtopRjxT9Re8pDdzfFUpg3zYAFE8zqFemgaNAbsvM=";
+    sha256 = "sha256-P0ga7uXwxkihpuLdjT1VNbuspbYpOh3+U60u1Blppo4=";
     fetchSubmodules = true;
   };
 
@@ -24,6 +24,13 @@ stdenv.mkDerivation rec {
     darwin.apple_sdk.frameworks.Foundation
   ];
 
+  # Disable cwd support on darwin, because it requires macOS>=10.15
+  preConfigure = lib.optionalString stdenv.isDarwin ''
+    for file in 3rd/bee.lua/bee/subprocess/subprocess_posix.cpp 3rd/luamake/3rd/bee.lua/bee/subprocess/subprocess_posix.cpp; do
+      substituteInPlace $file --replace '#define SUPPORT_CWD 1' ""
+    done
+  '';
+
   preBuild = ''
     cd 3rd/luamake
   ''
@@ -73,10 +80,10 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Lua Language Server coded by Lua ";
+    description = "Lua Language Server coded by Lua";
     homepage = "https://github.com/sumneko/lua-language-server";
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ sei40kr ];
     platforms = platforms.linux ++ platforms.darwin;
     mainProgram = "lua-language-server";
   };
diff --git a/pkgs/development/tools/symfony-cli/default.nix b/pkgs/development/tools/symfony-cli/default.nix
index be288d1e1c749..7444470d890cd 100644
--- a/pkgs/development/tools/symfony-cli/default.nix
+++ b/pkgs/development/tools/symfony-cli/default.nix
@@ -12,6 +12,10 @@ buildGoModule rec {
     sha256 = "sha256-xYNq5hnkk6OIsnDHhN/vh1LNuP7isTNgtTY2WUwC8x4=";
   };
 
+  postInstall = ''
+    mv $out/bin/symfony-cli $out/bin/symfony
+  '';
+
   # Tests requires network access
   doCheck = false;
 
diff --git a/pkgs/development/tools/toluapp/default.nix b/pkgs/development/tools/toluapp/default.nix
index 5f938547cdd87..c21fc474fe291 100644
--- a/pkgs/development/tools/toluapp/default.nix
+++ b/pkgs/development/tools/toluapp/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.codenix.com/~tolua/";
     license = licenses.mit;
     maintainers = with maintainers; [ vrthra ];
+    mainProgram = "tolua++";
     platforms = with platforms; unix;
   };
 }
diff --git a/pkgs/development/tools/tracy/default.nix b/pkgs/development/tools/tracy/default.nix
index 55114c518e577..fa0f472463c3d 100644
--- a/pkgs/development/tools/tracy/default.nix
+++ b/pkgs/development/tools/tracy/default.nix
@@ -4,13 +4,13 @@ let
   disableLTO = stdenv.cc.isClang && stdenv.isDarwin;  # workaround issue #19098
 in stdenv.mkDerivation rec {
   pname = "tracy";
-  version = "0.7.8";
+  version = "0.8";
 
   src = fetchFromGitHub {
     owner = "wolfpld";
     repo = "tracy";
     rev = "v${version}";
-    sha256 = "sha256-hOeanY170vvn5W68cCDRUFApia/PW3ymPIgdWx3gwVw=";
+    sha256 = "sha256-wsb2pOF8Y+cFHHSkDSJngTyWeLKCtFNK/mm+usyo+0k=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/tools/udis86/default.nix b/pkgs/development/tools/udis86/default.nix
index aec41c7c97a69..37408035ff933 100644
--- a/pkgs/development/tools/udis86/default.nix
+++ b/pkgs/development/tools/udis86/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
     homepage = "http://udis86.sourceforge.net";
     license = licenses.bsd2;
     maintainers = with maintainers; [ timor ];
+    mainProgram = "udcli";
     description = ''
       Easy-to-use, minimalistic x86 disassembler library (libudis86)
     '';
diff --git a/pkgs/development/tools/vultr-cli/default.nix b/pkgs/development/tools/vultr-cli/default.nix
index 6e839617034d3..6e80c62b78171 100644
--- a/pkgs/development/tools/vultr-cli/default.nix
+++ b/pkgs/development/tools/vultr-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "vultr-cli";
-  version = "2.12.1";
+  version = "2.12.2";
 
   src = fetchFromGitHub {
     owner = "vultr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-jcZiCZn6AbrjEhMkJQloLhZmfnxqlZxu5TXqH+dDN0s=";
+    sha256 = "sha256-ylSzPfBTIFZXLLxj/LHkzTNqpDZvT43UKIiG4y/aQJQ=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/development/tools/wabt/default.nix b/pkgs/development/tools/wabt/default.nix
index d049d9946363d..27e702881282f 100644
--- a/pkgs/development/tools/wabt/default.nix
+++ b/pkgs/development/tools/wabt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wabt";
-  version = "1.0.27";
+  version = "1.0.28";
 
   src = fetchFromGitHub {
     owner = "WebAssembly";
     repo = "wabt";
     rev = version;
-    sha256 = "sha256-13et9+yoxoITOO9EEyLMNhG4VCj0jd+JhOlw0DxvwOg=";
+    sha256 = "sha256-nNR2r8jiS0XKru6IdSeTDeCp1izO0xORiupJRa+fhHY=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/tools/winpdb/default.nix b/pkgs/development/tools/winpdb/default.nix
deleted file mode 100644
index 8f8d03db950b1..0000000000000
--- a/pkgs/development/tools/winpdb/default.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{ lib, fetchurl, python2Packages, makeDesktopItem }:
-
-python2Packages.buildPythonApplication rec {
-  pname = "winpdb";
-  version = "1.4.8";
-  namePrefix = "";
-
-  src = fetchurl {
-    url = "https://winpdb.googlecode.com/files/${pname}-${version}.tar.gz";
-    sha256 = "0vkpd24r40j928vc04c721innv0168sbllg97v4zw10adm24d8fs";
-  };
-
-  propagatedBuildInputs = [ python2Packages.wxPython ];
-
-  desktopItem = makeDesktopItem {
-    name = "winpdb";
-    exec = "winpdb";
-    icon = "winpdb";
-    comment = "Platform independend Python debugger";
-    desktopName = "Winpdb";
-    genericName = "Python Debugger";
-    categories = [ "Development" "Debugger" ];
-  };
-
-  # Don't call gnome-terminal with "--disable-factory" flag, which is
-  # unsupported since GNOME >= 3.10. Apparently, debian also does this fix:
-  # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=757718
-  postPatch = ''
-    sed -i "s/--disable-factory//" rpdb2.py
-  '';
-
-  postInstall = ''
-    mkdir -p "$out"/share/applications
-    cp "$desktopItem"/share/applications/* "$out"/share/applications/
-
-    mkdir -p "$out"/share/icons
-    cp artwork/winpdb-icon.svg "$out"/share/icons/winpdb.svg
-  '';
-
-  # no tests
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Platform independent Python debugger";
-    longDescription = ''
-      Winpdb is a platform independent GPL Python debugger with support for
-      multiple threads, namespace modification, embedded debugging, encrypted
-      communication and is up to 20 times faster than pdb.
-    '';
-    homepage = "http://winpdb.org/";
-    license = licenses.gpl2Plus;
-    platforms = platforms.all;
-    maintainers = [ maintainers.bjornfor ];
-  };
-}
diff --git a/pkgs/development/tools/wp4nix/default.nix b/pkgs/development/tools/wp4nix/default.nix
new file mode 100644
index 0000000000000..967459e91b749
--- /dev/null
+++ b/pkgs/development/tools/wp4nix/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildGoModule, fetchFromGitLab, nix, subversion }:
+
+buildGoModule rec {
+  pname = "wp4nix";
+  version = "1.0.0";
+
+  src = fetchFromGitLab {
+    domain = "git.helsinki.tools";
+    owner = "helsinki-systems";
+    repo = "wp4nix";
+    rev = "v${version}";
+    sha256 = "sha256-WJteeFUMr684yZEtUP13MqRjJ1UAeo48AzOPdLEE65w=";
+  };
+
+  vendorSha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
+
+  postPatch = ''
+    substituteInPlace main.go --replace nix-hash ${nix}/bin/nix-hash
+    substituteInPlace svn.go --replace '"svn"' '"${subversion}/bin/svn"'
+  '';
+
+  meta = with lib; {
+    description = "Packaging helper for Wordpress themes and plugins";
+    homepage = "https://git.helsinki.tools/helsinki-systems/wp4nix";
+    license = licenses.mit;
+    maintainers = with maintainers; [ onny ];
+    platforms = platforms.linux;
+  };
+}
+
diff --git a/pkgs/development/tools/yarn/default.nix b/pkgs/development/tools/yarn/default.nix
index 0e39a714ccda6..d934eadcdf8a1 100644
--- a/pkgs/development/tools/yarn/default.nix
+++ b/pkgs/development/tools/yarn/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, nodejs, fetchzip, testVersion, yarn }:
+{ lib, stdenv, nodejs, fetchzip, testers, yarn }:
 
 stdenv.mkDerivation rec {
   pname = "yarn";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     ln -s $out/libexec/yarn/bin/yarn.js $out/bin/yarnpkg
   '';
 
-  passthru.tests = testVersion { package = yarn; };
+  passthru.tests = testers.testVersion { package = yarn; };
 
   meta = with lib; {
     homepage = "https://yarnpkg.com/";
diff --git a/pkgs/development/tools/yq-go/default.nix b/pkgs/development/tools/yq-go/default.nix
index 9f31ce6f94349..9dd9f832ccd92 100644
--- a/pkgs/development/tools/yq-go/default.nix
+++ b/pkgs/development/tools/yq-go/default.nix
@@ -2,19 +2,17 @@
 
 buildGoModule rec {
   pname = "yq-go";
-  version = "4.24.2";
+  version = "4.24.5";
 
   src = fetchFromGitHub {
     owner = "mikefarah";
     repo = "yq";
     rev = "v${version}";
-    sha256 = "sha256-KuaIGIDXdL0d+Wxy2O78XTSBo+2oIrcizfd2jyXghXc=";
+    sha256 = "sha256-3rO0BFx/hduERTQ3j90EWUtYTROD63RHwW/U4U+oAfw=";
   };
 
   vendorSha256 = "sha256-R40zU0jOc/eIFVDsWG3+4o51iro7Sd7jwtyH/fpWVZs=";
 
-  doCheck = false;
-
   nativeBuildInputs = [ installShellFiles ];
 
   postInstall = ''
diff --git a/pkgs/development/web/cypress/default.nix b/pkgs/development/web/cypress/default.nix
index 3d58b865126aa..0a726d18b1b4e 100644
--- a/pkgs/development/web/cypress/default.nix
+++ b/pkgs/development/web/cypress/default.nix
@@ -16,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cypress";
-  version = "9.5.3";
+  version = "9.5.4";
 
   src = fetchzip {
     url = "https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip";
-    sha256 = "qK1TvAGiTVmEQ4MpqICDSP9swnpAcE6iGkGJOrPQ1bI=";
+    sha256 = "F4BSIA3ImXwmmki8/FK0t08Gf5S8KMpXNNBIPPJQNsM=";
   };
 
   # don't remove runtime deps
diff --git a/pkgs/development/web/deno/default.nix b/pkgs/development/web/deno/default.nix
index fa2fe98f76cc1..d61b7433bdf24 100644
--- a/pkgs/development/web/deno/default.nix
+++ b/pkgs/development/web/deno/default.nix
@@ -2,7 +2,6 @@
 , lib
 , callPackage
 , fetchFromGitHub
-, rust
 , rustPlatform
 , installShellFiles
 , libiconv
@@ -17,15 +16,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "deno";
-  version = "1.19.1";
+  version = "1.21.0";
 
   src = fetchFromGitHub {
     owner = "denoland";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-BqwiconG5hn5RPV+hlKu6e6+GjZA4Im/dD+no3IduYw=";
+    sha256 = "sha256-Sv9Keb+6vc6Lr+H/gAi9/4bmBO18gv9bqAjBIpOrtnk=";
   };
-  cargoSha256 = "sha256-q/5AezLQgN7WdGsbHoxX5riJMlxw3cTFhVs5OvCeI5U=";
+  cargoSha256 = "sha256-EykIg8rU2VBag+3834SwMYkz9ZR6brOo/0NXXvrGqsU=";
+
+  postPatch = ''
+    # upstream uses lld on aarch64-darwin for faster builds
+    # within nix lld looks for CoreFoundation rather than CoreFoundation.tbd and fails
+    substituteInPlace .cargo/config --replace '"-C", "link-arg=-fuse-ld=lld"' ""
+  '';
 
   # Install completions post-install
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/development/web/deno/librusty_v8.nix b/pkgs/development/web/deno/librusty_v8.nix
index a1ea206fabdcb..e1a9b0de75367 100644
--- a/pkgs/development/web/deno/librusty_v8.nix
+++ b/pkgs/development/web/deno/librusty_v8.nix
@@ -11,11 +11,11 @@ let
   };
 in
 fetch_librusty_v8 {
-  version = "0.40.0";
+  version = "0.42.0";
   shas = {
-    x86_64-linux = "sha256-VHkopvK6f5lxdFLBywHe0Z+su2g5hgBsLcTxrwFgq0Y=";
-    aarch64-linux = "sha256-awWjziqqUDAl9fcLADUjytLFds1y93y5gZoOtvReL9w=";
-    x86_64-darwin = "sha256-WlRnGiJK3iFgTjNzr25rvmmiPAICPRLaD5hbys7MoJA=";
-    aarch64-darwin = "sha256-zblcAQVwnLQWh85wajg8CalqxycSR+4WGoSC2dnX7jA=";
+    x86_64-linux = "sha256-p8wC2r9+PKEabaHj0NF059TBSKOpE+rtZkqk1SXINzQ=";
+    aarch64-linux = "sha256-1mQQ5XmR+WcYW6BGfnUdsG4yzhwIal80Y5fWw4XAJ3g=";
+    x86_64-darwin = "sha256-a5Mu33gXn2X02WRdtO1hb9JRctmFTiCaLNhScz2D0J8=";
+    aarch64-darwin = "sha256-THEFn8nQDktXJlY1zpi2760KAS2eKEQ9O3Y+yqI2OYw=";
   };
 }
diff --git a/pkgs/development/web/flyctl/default.nix b/pkgs/development/web/flyctl/default.nix
index f70faf37fac96..87b6ddfa923eb 100644
--- a/pkgs/development/web/flyctl/default.nix
+++ b/pkgs/development/web/flyctl/default.nix
@@ -2,29 +2,42 @@
 
 buildGoModule rec {
   pname = "flyctl";
-  version = "0.0.310";
+  version = "0.0.323";
 
   src = fetchFromGitHub {
     owner = "superfly";
     repo = "flyctl";
     rev = "v${version}";
-    sha256 = "sha256-69yyH4og7FGS3+M72YhlrwjatucfGliHYcMpPi1ddjA=";
+    sha256 = "sha256-7mPZ4p7fb49Lc+sx7/jEw+oFdFaYtEJcSzFS5haC6NM=";
   };
 
-  preBuild = ''
-    go generate ./...
-  '';
+  vendorSha256 = "sha256-dTeFeDdT44k1HxIEuvTU/A8xAa1VhVv4ZFbvg1PagPw=";
 
   subPackages = [ "." ];
 
-  vendorSha256 = "sha256-2goglOmcUud9KT5accn/AMe4xEgRN2Ep1qMfQHtlI+Q=";
+  ldflags = [
+    "-s" "-w"
+    "-X github.com/superfly/flyctl/flyctl.Commit=${src.rev}"
+    "-X github.com/superfly/flyctl/flyctl.BuildDate=1970-01-01T00:00:00+0000"
+    "-X github.com/superfly/flyctl/flyctl.Environment=production"
+    "-X github.com/superfly/flyctl/flyctl.Version=${version}"
+  ];
 
-  doCheck = false;
+  preBuild = ''
+    go generate ./...
+  '';
+
+  preCheck = ''
+    HOME=$(mktemp -d)
+  '';
 
-  ldflags = [ "-s" "-w" "-X github.com/superfly/flyctl/flyctl.Version=${version}" "-X github.com/superfly/flyctl/flyctl.Commit=${src.rev}" "-X github.com/superfly/flyctl/flyctl.BuildDate=1970-01-01T00:00:00+0000" "-X github.com/superfly/flyctl/flyctl.Environment=production" ];
+  postCheck = ''
+    go test ./... -ldflags="-X 'github.com/superfly/flyctl/internal/buildinfo.buildDate=1970-01-01T00:00:00+0000'"
+  '';
 
   meta = with lib; {
     description = "Command line tools for fly.io services";
+    downloadPage = "https://github.com/superfly/flyctl";
     homepage = "https://fly.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ aaronjanse jsierles ];
diff --git a/pkgs/development/web/kcgi/default.nix b/pkgs/development/web/kcgi/default.nix
index 95765be46fded..f00d40044d041 100644
--- a/pkgs/development/web/kcgi/default.nix
+++ b/pkgs/development/web/kcgi/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     platforms = platforms.all;
     maintainers = [ maintainers.leenaars ];
+    mainProgram = "kfcgi";
   };
 }
diff --git a/pkgs/development/web/minify/default.nix b/pkgs/development/web/minify/default.nix
index 94997b93f81d2..13589bb0f621f 100644
--- a/pkgs/development/web/minify/default.nix
+++ b/pkgs/development/web/minify/default.nix
@@ -2,18 +2,16 @@
 
 buildGoModule rec {
   pname = "minify";
-  version = "2.10.0";
+  version = "2.11.1";
 
   src = fetchFromGitHub {
     owner = "tdewolff";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4wF9bRLrGQftw54b+HrsoJOGsTRTNYVDEMsKsFqnHGY=";
+    sha256 = "sha256-qna2u+Y4eRGLNvRKDbL/VQud1pn8b1wWzbKQM1p0Yws=";
   };
 
-  vendorSha256 = "sha256-4aoDQKMhczy1u4Eq567aMrFVIBW2L8OgNCqsgmUN6CI=";
-
-  doCheck = false;
+  vendorSha256 = "sha256-stj3fOaPM70kF6vTX/DEs4qFq/O0Vq0TFw0J/3L5NmA=";
 
   ldflags = [ "-s" "-w" "-X main.Version=${version}" ];
 
@@ -21,5 +19,6 @@ buildGoModule rec {
     description = "Minifiers for web formats";
     license = licenses.mit;
     homepage = "https://go.tacodewolff.nl/minify";
+    downloadPage = "https://github.com/tdewolff/minify";
   };
 }
diff --git a/pkgs/development/web/nodejs/nodejs.nix b/pkgs/development/web/nodejs/nodejs.nix
index 1e05850884c7a..7f8178838677c 100644
--- a/pkgs/development/web/nodejs/nodejs.nix
+++ b/pkgs/development/web/nodejs/nodejs.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, openssl, python, zlib, libuv, util-linux, http-parser
-, pkg-config, which
+, pkg-config, which, buildPackages
 # for `.pkgs` attribute
 , callPackage
 # Updater dependencies
@@ -50,6 +50,10 @@ let
       inherit sha256;
     };
 
+    CC_host = "cc";
+    CXX_host = "c++";
+    depsBuildBuild = [ buildPackages.stdenv.cc openssl libuv zlib ];
+
     buildInputs = optionals stdenv.isDarwin [ CoreServices ApplicationServices ]
       ++ [ zlib libuv openssl http-parser icu ];
 
@@ -69,12 +73,23 @@ let
       "--cross-compiling"
       "--without-intl"
       "--without-snapshot"
+      "--dest-cpu=${let platform = stdenv.hostPlatform; in
+                    if      platform.isAarch32 then "arm"
+                    else if platform.isAarch64 then "arm64"
+                    else if platform.isMips32 && platform.isLittleEndian then "mipsel"
+                    else if platform.isMips32 && !platform.isLittleEndian then "mips"
+                    else if platform.isMips64 && platform.isLittleEndian then "mips64el"
+                    else if platform.isPower && platform.is32bit then "ppc"
+                    else if platform.isPower && platform.is64bit then "ppc64"
+                    else if platform.isx86_64 then "x86_64"
+                    else if platform.isx86_32 then "x86"
+                    else if platform.isS390 && platform.is64bit then "s390x"
+                    else if platform.isRiscV && platform.is64bit then "riscv64"
+                    else throw "unsupported cpu ${stdenv.hostPlatform.uname.processor}"}"
     ]) ++ (optionals (isCross && isAarch32 && hasAttr "fpu" gcc) [
       "--with-arm-fpu=${gcc.fpu}"
     ]) ++ (optionals (isCross && isAarch32 && hasAttr "float-abi" gcc) [
       "--with-arm-float-abi=${gcc.float-abi}"
-    ]) ++ (optionals (isCross && isAarch32) [
-      "--dest-cpu=arm"
     ]) ++ extraConfigFlags;
 
     configurePlatforms = [];
@@ -121,7 +136,7 @@ let
 
       ${optionalString (enableNpm && stdenv.hostPlatform == stdenv.buildPlatform) ''
         mkdir -p $out/share/bash-completion/completions/
-        $out/bin/npm completion > $out/share/bash-completion/completions/npm
+        $out/bin/npm completion > $out/share/bash-completion/completions/npm || :
         for dir in "$out/lib/node_modules/npm/man/"*; do
           mkdir -p $out/share/man/$(basename "$dir")
           for page in "$dir"/*; do
diff --git a/pkgs/development/web/nodejs/v12.nix b/pkgs/development/web/nodejs/v12.nix
index e2db169bad376..ea7c211163e2b 100644
--- a/pkgs/development/web/nodejs/v12.nix
+++ b/pkgs/development/web/nodejs/v12.nix
@@ -8,7 +8,7 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "12.22.11";
-    sha256 = "sha256-XoHaJv1bH4lxRIOrqmjj2jBFI+QzTHjEm/p6A+541vE=";
+    version = "12.22.12";
+    sha256 = "1whl0zi6fs9ay33bhcn2kh9xynran05iipahg1zzr6sv97wbfhmw";
     patches = lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff;
   }
diff --git a/pkgs/development/web/nodejs/v17.nix b/pkgs/development/web/nodejs/v17.nix
index 1c4dcc02a9713..3fbaf223f303f 100644
--- a/pkgs/development/web/nodejs/v17.nix
+++ b/pkgs/development/web/nodejs/v17.nix
@@ -7,8 +7,8 @@ let
 in
 buildNodejs {
   inherit enableNpm;
-  version = "17.8.0";
-  sha256 = "0jsf6sv42rzpizvil7g1gf9bskh8lx0gcxg0yzpr4hk7mx7i90br";
+  version = "17.9.0";
+  sha256 = "1q1rr9kvlk9rd35x3x206iy894hq2ywyhqxbb6grak6wcvdgcnan";
   patches = [
     ./disable-darwin-v8-system-instrumentation.patch
   ];
diff --git a/pkgs/development/web/nodejs/v18.nix b/pkgs/development/web/nodejs/v18.nix
new file mode 100644
index 0000000000000..562989d2fd313
--- /dev/null
+++ b/pkgs/development/web/nodejs/v18.nix
@@ -0,0 +1,15 @@
+{ callPackage, python3, enableNpm ? true }:
+
+let
+  buildNodejs = callPackage ./nodejs.nix {
+    python = python3;
+  };
+in
+buildNodejs {
+  inherit enableNpm;
+  version = "18.0.0";
+  sha256 = "sha256-NE0OZUC1JMaal5/1w+eM2nJU/XLANpmSa+sLhVi4znU=";
+  patches = [
+    ./disable-darwin-v8-system-instrumentation.patch
+  ];
+}
diff --git a/pkgs/games/airstrike/default.nix b/pkgs/games/airstrike/default.nix
index 12b485764a5b1..8441ac7a2feef 100644
--- a/pkgs/games/airstrike/default.nix
+++ b/pkgs/games/airstrike/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     cp -r data airstrikerc $out/share
 
     wrapProgram $out/bin/airstrike \
-      --run "cd $out/share"
+      --chdir "$out/share"
   '';
 
   meta = with lib; {
diff --git a/pkgs/games/assaultcube/default.nix b/pkgs/games/assaultcube/default.nix
index 1013be2694e93..7164e66feebf4 100644
--- a/pkgs/games/assaultcube/default.nix
+++ b/pkgs/games/assaultcube/default.nix
@@ -1,42 +1,67 @@
-{ fetchFromGitHub, lib, stdenv, makeDesktopItem, openal, pkg-config, libogg,
-  libvorbis, SDL, SDL_image, makeWrapper, zlib, file,
-  client ? true, server ? true }:
-
-with lib;
+{ lib
+, stdenv
+, fetchFromGitHub
+, makeDesktopItem
+, copyDesktopItems
+, openal
+, pkg-config
+, libogg
+, libvorbis
+, SDL2
+, SDL2_image
+, makeWrapper
+, zlib
+, file
+, client ? true, server ? true
+}:
 
 stdenv.mkDerivation rec {
-
-  # master branch has legacy (1.2.0.2) protocol 1201 and gcc 6 fix.
   pname = "assaultcube";
-  version = "unstable-2018-05-20";
+  version = "1.3.0.2";
 
   src = fetchFromGitHub {
     owner = "assaultcube";
     repo  = "AC";
-    rev = "f58ea22b46b5013a520520670434b3c235212371";
-    sha256 = "1vfn3d55vmmipdykrcfvgk6dddi9y95vlclsliirm7jdp20f15hd";
+    rev = "v${version}";
+    sha256 = "0qv339zw9q5q1y7bghca03gw7z4v89sl4lbr6h3b7siy08mcwiz9";
   };
 
-  nativeBuildInputs = [ makeWrapper pkg-config ];
-
-  buildInputs = [ file zlib ] ++ optionals client [ openal SDL SDL_image libogg libvorbis ];
-
-  targets = (optionalString server "server") + (optionalString client " client");
+  nativeBuildInputs = [
+    makeWrapper
+    pkg-config
+    copyDesktopItems
+  ];
+
+  buildInputs = [
+    file
+    zlib
+  ] ++ lib.optionals client [
+    openal
+    SDL2
+    SDL2_image
+    libogg
+    libvorbis
+  ];
+
+  targets = (lib.optionalString server "server") + (lib.optionalString client " client");
   makeFlags = [ "-C source/src" "CXX=${stdenv.cc.targetPrefix}c++" targets ];
 
-  desktop = makeDesktopItem {
-    name = "AssaultCube";
-    desktopName = "AssaultCube";
-    comment = "A multiplayer, first-person shooter game, based on the CUBE engine. Fast, arcade gameplay.";
-    genericName = "First-person shooter";
-    categories = [ "Game" "ActionGame" "Shooter" ];
-    icon = "assaultcube.png";
-    exec = pname;
-  };
+  desktopItems = [
+    (makeDesktopItem {
+      name = pname;
+      desktopName = "AssaultCube";
+      comment = "A multiplayer, first-person shooter game, based on the CUBE engine. Fast, arcade gameplay.";
+      genericName = "First-person shooter";
+      categories = [ "Game" "ActionGame" "Shooter" ];
+      icon = "assaultcube";
+      exec = pname;
+    })
+  ];
 
   gamedatadir = "/share/games/${pname}";
 
   installPhase = ''
+    runHook preInstall
 
     bindir=$out/bin
 
@@ -47,26 +72,27 @@ stdenv.mkDerivation rec {
     if (test -e source/src/ac_client) then
       cp source/src/ac_client $bindir
       mkdir -p $out/share/applications
-      cp ${desktop}/share/applications/* $out/share/applications
       install -Dpm644 packages/misc/icon.png $out/share/icons/assaultcube.png
       install -Dpm644 packages/misc/icon.png $out/share/pixmaps/assaultcube.png
 
       makeWrapper $out/bin/ac_client $out/bin/${pname} \
-        --run "cd $out/$gamedatadir" --add-flags "--home=\$HOME/.assaultcube/v1.2next --init"
+        --chdir "$out/$gamedatadir" --add-flags "--home=\$HOME/.assaultcube/v1.2next --init"
     fi
 
     if (test -e source/src/ac_server) then
       cp source/src/ac_server $bindir
       makeWrapper $out/bin/ac_server $out/bin/${pname}-server \
-        --run "cd $out/$gamedatadir" --add-flags "-Cconfig/servercmdline.txt"
+        --chdir "$out/$gamedatadir" --add-flags "-Cconfig/servercmdline.txt"
     fi
-    '';
 
-  meta = {
+    runHook postInstall
+  '';
+
+  meta = with lib; {
     description = "Fast and fun first-person-shooter based on the Cube fps";
     homepage = "https://assault.cubers.net";
-    maintainers = [ ];
     platforms = platforms.linux; # should work on darwin with a little effort.
-    license = lib.licenses.unfree;
+    license = licenses.unfree;
+    maintainers = with maintainers; [ darkonion0 ];
   };
 }
diff --git a/pkgs/games/bugdom/default.nix b/pkgs/games/bugdom/default.nix
new file mode 100644
index 0000000000000..c5170c9845cca
--- /dev/null
+++ b/pkgs/games/bugdom/default.nix
@@ -0,0 +1,66 @@
+{ lib, stdenv, fetchFromGitHub, SDL2, IOKit, Foundation, cmake, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "bugdom";
+  version = "1.3.1";
+
+  src = fetchFromGitHub {
+    owner = "jorio";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256:1371inw11rzfrxmc3v4gv5axp56bxjbcr0mhqm4x839401bfq5mf";
+    fetchSubmodules = true;
+  };
+
+  postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
+    # Expects SDL2.framework in specific location, which we don't have
+    # Passing this in cmakeFlags doesn't work because the path is hard-coded for Darwin
+    substituteInPlace cmake/FindSDL2.cmake \
+      --replace 'set(SDL2_LIBRARIES' 'set(SDL2_LIBRARIES "${SDL2}/lib/libSDL2.dylib") #'
+  '';
+
+  buildInputs = [
+    SDL2
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
+    IOKit
+    Foundation
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    makeWrapper
+  ];
+
+  cmakeFlags = lib.optionals stdenv.hostPlatform.isDarwin [
+    "-DCMAKE_OSX_ARCHITECTURES=${stdenv.hostPlatform.darwinArch}"
+    # Expects SDL2.framework in specific location, which we don't have
+    "-DSDL2_INCLUDE_DIRS=${SDL2.dev}/include/SDL2"
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+  '' + (if stdenv.hostPlatform.isDarwin then ''
+    mkdir -p $out/{bin,Applications}
+    mv {,$out/Applications/}Bugdom.app
+    ln -s $out/{Applications/Bugdom.app/Contents/MacOS,bin}/Bugdom
+  '' else ''
+    mkdir -p $out/share/bugdom
+    mv Data $out/share/bugdom
+    install -Dm755 {.,$out/bin}/Bugdom
+    wrapProgram $out/bin/Bugdom --run "cd $out/share/bugdom"
+  '') + ''
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A port of Bugdom, a 1999 Macintosh game by Pangea Software, for modern operating systems";
+    homepage = "https://github.com/jorio/Bugdom";
+    license = with licenses; [
+      cc-by-sa-40
+    ];
+    maintainers = with maintainers; [ lux ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/games/bzflag/default.nix b/pkgs/games/bzflag/default.nix
index 35a481fb2f42c..6715c1b362507 100644
--- a/pkgs/games/bzflag/default.nix
+++ b/pkgs/games/bzflag/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bzflag";
-  version = "2.4.22";
+  version = "2.4.24";
 
   src = fetchurl {
     url = "https://download.bzflag.org/${pname}/source/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-nmRlMwK2V72LX5b+EVCp/4Ch1Tptfoo1E4xrGwIAak0=";
+    sha256 = "sha256-X4Exvrf8i6UeMjoG7NfY6rkVN8NCzoehE+XrbqmM48Q=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/games/cataclysm-dda/common.nix b/pkgs/games/cataclysm-dda/common.nix
index 1701d84e8df7a..af20169a6e088 100644
--- a/pkgs/games/cataclysm-dda/common.nix
+++ b/pkgs/games/cataclysm-dda/common.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation {
   '';
 
   makeFlags = [
-    "PREFIX=$(out)" "LANGUAGES=all"
+    "PREFIX=$(out)" "LANGUAGES=all" "RUNTESTS=0"
     (if useXdgDir then "USE_XDG_DIR=1" else "USE_HOME_DIR=1")
   ] ++ optionals (!debug) [
     "RELEASE=1"
diff --git a/pkgs/games/ddnet/default.nix b/pkgs/games/ddnet/default.nix
index 1663e17b14d29..54335279fedab 100644
--- a/pkgs/games/ddnet/default.nix
+++ b/pkgs/games/ddnet/default.nix
@@ -16,17 +16,23 @@
 , SDL2
 , sqlite
 , wavpack
+, ffmpeg
+, x264
+, vulkan-headers
+, vulkan-loader
+, glslang
+, spirv-tools
 }:
 
 stdenv.mkDerivation rec {
   pname = "ddnet";
-  version = "15.9.1";
+  version = "16.0.3";
 
   src = fetchFromGitHub {
     owner = "ddnet";
     repo = pname;
     rev = version;
-    sha256 = "sha256-QGtXI4Dbua5LBXSvB17tnSTGEvCCoopvg1XKBuDIEoQ=";
+    sha256 = "sha256-9hjVAtnn+dTBNCu6E90CtjGTAStmVTsQFm2UYq68xcM=";
   };
 
   nativeBuildInputs = [ cmake ninja pkg-config ];
@@ -44,6 +50,12 @@ stdenv.mkDerivation rec {
     SDL2
     sqlite
     wavpack
+    ffmpeg
+    x264
+    vulkan-loader
+    vulkan-headers
+    glslang
+    spirv-tools
   ];
 
   cmakeFlags = [
diff --git a/pkgs/games/deliantra/deliantra-arch.nix b/pkgs/games/deliantra/arch.nix
index 2201ca2d1f5fb..2201ca2d1f5fb 100644
--- a/pkgs/games/deliantra/deliantra-arch.nix
+++ b/pkgs/games/deliantra/arch.nix
diff --git a/pkgs/games/deliantra/deliantra-data.nix b/pkgs/games/deliantra/data.nix
index 31ed7d0f0118d..31ed7d0f0118d 100644
--- a/pkgs/games/deliantra/deliantra-data.nix
+++ b/pkgs/games/deliantra/data.nix
diff --git a/pkgs/games/deliantra/default.nix b/pkgs/games/deliantra/default.nix
deleted file mode 100644
index 76a06c9601875..0000000000000
--- a/pkgs/games/deliantra/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-pkgs:
-
-let
-  callPackage = pkgs.callPackage;
-in {
-  deliantra-server = callPackage ./deliantra-server.nix {};
-  deliantra-arch = callPackage ./deliantra-arch.nix {};
-  deliantra-maps = callPackage ./deliantra-maps.nix {};
-  deliantra-data = callPackage ./deliantra-data.nix {};
-}
diff --git a/pkgs/games/deliantra/deliantra-maps.nix b/pkgs/games/deliantra/maps.nix
index 1f87178102a0c..1f87178102a0c 100644
--- a/pkgs/games/deliantra/deliantra-maps.nix
+++ b/pkgs/games/deliantra/maps.nix
diff --git a/pkgs/games/deliantra/deliantra-server.nix b/pkgs/games/deliantra/server.nix
index e333b7a472f5e..4185a46120e5a 100644
--- a/pkgs/games/deliantra/deliantra-server.nix
+++ b/pkgs/games/deliantra/server.nix
@@ -23,16 +23,20 @@ stdenv.mkDerivation rec {
     autoconf perl gperf optipng pngnq rsync imagemagick
     pkg-config makeWrapper
   ];
+
   propagatedBuildInputs = perl-deps;
+
   buildInputs = [
     blitz boost glib
   ];
 
   hardeningDisable = [ "format" ];
+
   patches = [
     ./0001-abs.patch
     ./0002-datadir.patch
   ];
+
   postFixup = ''
     wrapProgram $out/bin/cfutil --prefix PERL5LIB : $PERL5LIB
     wrapProgram $out/bin/deliantra-server --prefix PERL5LIB : $PERL5LIB
diff --git a/pkgs/games/devilutionx/default.nix b/pkgs/games/devilutionx/default.nix
index ac76ab5ad1897..c7943b24c95e9 100644
--- a/pkgs/games/devilutionx/default.nix
+++ b/pkgs/games/devilutionx/default.nix
@@ -3,11 +3,13 @@
 , fetchFromGitHub
 , fetchpatch
 , fetchurl
-, fetchzip
+, bzip2
 , cmake
 , pkg-config
 , gettext
+, libsodium
 , SDL2
+, SDL_audiolib
 , SDL2_image
 , fmt
 , libpng
@@ -16,40 +18,56 @@
 
 let
   # TODO: submit a PR upstream to allow system copies of these libraries where possible
+
+  # fork with patches, far behind upstream
   asio = fetchurl {
     url = "https://github.com/diasurgical/asio/archive/ebeff99f539da23d27c2e8d4bdbc1ee011968644.tar.gz";
     sha256 = "0vhb4cig40mm0a98i74grpmfkcmby8zxg6vqa38dpryxpgvp5fw8";
   };
 
-  SDL_audiolib = fetchurl {
-    url = "https://github.com/realnc/SDL_audiolib/archive/aa79660eba4467a44f9dcaecf26b0f0a000abfd7.tar.gz";
-    sha256 = "0z4rizncp6gqsy72b3709zc9fr915wgcwnlx1fhhy7mrczsly630";
+  # fork with patches, upstream seems to be dead
+  libmpq = fetchurl {
+    url = "https://github.com/diasurgical/libmpq/archive/0f10bd1600f406b13932bf5351ba713361262184.tar.gz";
+    sha256 = "sha256-7hc/Xtsg8WJIJljLydS7hLZA9lEEHWhsCteyrxK68qE=";
+  };
+
+  # not "real" package with pkg-config or cmake file, just collection of source files
+  libsmackerdec = fetchurl {
+    url = "https://github.com/diasurgical/libsmackerdec/archive/2997ee0e41e91bb723003bc09234be553b190e38.tar.gz";
+    sha256 = "sha256-QMDcIZQ94i4VPVanmSxiGkKgxWx82DP4uE+Q5I2nU+o=";
+  };
+
+  # fork with patches, far behind upstream
+  libzt = fetchFromGitHub {
+    owner = "diasurgical";
+    repo = "libzt";
+    fetchSubmodules = true;
+    rev = "a34ba7f1cc2e41b05badd25d1b01fdc5fd2f4e02";
+    sha256 = "sha256-tyIPt+7OTi5W+5X/ixQP1puOKdhrqRZtpwXlWFBFpc8=";
   };
 
-  simpleini = fetchzip {
-    url = "https://github.com/brofield/simpleini/archive/7bca74f6535a37846162383e52071f380c99a43a.zip";
-    sha256 = "07kf1jjbc9v04hsysa6v2wh1m9csf5qz0b1wmlkf9sj00kf47zj7";
+  # missing pkg-config and/or cmake file
+  simpleini = fetchurl {
+    url = "https://github.com/brofield/simpleini/archive/9b3ed7ec815997bc8c5b9edf140d6bde653e1458.tar.gz";
+    sha256 = "sha256-93kuyp8/ew7okW/6ThJMtLMZsR1YSeFcXu9Y65ELBFE==";
   };
 in
 
 stdenv.mkDerivation rec {
   pname = "devilutionx";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "diasurgical";
     repo = "devilutionX";
     rev = version;
-    sha256 = "0acrkqi0pr3cbr5i1a1vfrnxv1n3xmql5d86bm2gywvpdb94xads";
+    sha256 = "sha256-uuIPTdgGpHA8j1M8b+kfnBuiJ5mdS9rckvEfn2h7lmo=";
   };
 
   patches = [
-    # allow building with system SDL2_image instead of vendored version
-    # this patch can be removed on the next release of devilutionx
-    # see https://github.com/diasurgical/devilutionX/pull/3386
     (fetchpatch {
-      url = "https://github.com/diasurgical/devilutionX/commit/41ff03e94c02477bffb2d62764e8624c0e06854d.patch";
-      sha256 = "1lrnb9d0dcdyd78rix5rl4p8kkwbnl91llr9fgb86ysm3q58qkvj";
+      url = "https://github.com/diasurgical/devilutionX/commit/03b22352fc9e1ecb88b20a053c90c04a50717267.patch";
+      sha256 = "sha256-5aAwi1NV8P+nLLbEEnlwLGNQCQBb0nQkIVe5tR5Shsw=";
     })
   ];
 
@@ -57,16 +75,18 @@ stdenv.mkDerivation rec {
     substituteInPlace Source/init.cpp --replace "/usr/share/diasurgical/devilutionx/" "${placeholder "out"}/share/diasurgical/devilutionx/"
 
     # download dependencies ahead of time
-    substituteInPlace 3rdParty/asio/CMakeLists.txt --replace "https://github.com/diasurgical/asio/archive/ebeff99f539da23d27c2e8d4bdbc1ee011968644.tar.gz" "${asio}"
-    substituteInPlace 3rdParty/SDL_audiolib/CMakeLists.txt --replace "https://github.com/realnc/SDL_audiolib/archive/aa79660eba4467a44f9dcaecf26b0f0a000abfd7.tar.gz" "${SDL_audiolib}"
-    substituteInPlace 3rdParty/simpleini/CMakeLists.txt --replace "https://github.com/brofield/simpleini/archive/7bca74f6535a37846162383e52071f380c99a43a.zip" "${simpleini}"
+    substituteInPlace 3rdParty/asio/CMakeLists.txt --replace "${asio.url}" "${asio}"
+    substituteInPlace 3rdParty/libmpq/CMakeLists.txt --replace "${libmpq.url}" "${libmpq}"
+    substituteInPlace 3rdParty/libsmackerdec/CMakeLists.txt --replace "${libsmackerdec.url}" "${libsmackerdec}"
+    substituteInPlace 3rdParty/libzt/CMakeLists.txt \
+      --replace "GIT_REPOSITORY https://github.com/diasurgical/libzt.git" "" \
+      --replace "GIT_TAG ${libzt.rev}" "SOURCE_DIR ${libzt}"
+    substituteInPlace 3rdParty/simpleini/CMakeLists.txt --replace "${simpleini.url}" "${simpleini}"
   '';
 
   cmakeFlags = [
     "-DBINARY_RELEASE=ON"
     "-DVERSION_NUM=${version}"
-    "-DPACKET_ENCRYPTION=OFF" # FIXME: build with libsodium
-    "-DDISABLE_ZERO_TIER=ON" # FIXME: build with libzt
   ];
 
   nativeBuildInputs = [
@@ -77,9 +97,12 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    bzip2
     fmt
     libpng
+    libsodium
     SDL2
+    SDL_audiolib
     SDL2_image
   ];
 
diff --git a/pkgs/games/domination/default.nix b/pkgs/games/domination/default.nix
index b7eae5e5acd63..8ef45b8501982 100644
--- a/pkgs/games/domination/default.nix
+++ b/pkgs/games/domination/default.nix
@@ -63,10 +63,10 @@ in stdenv.mkDerivation {
     # Reimplement the two launchers mentioned in Unix_shortcutSpec.xml with makeWrapper
     mkdir -p $out/bin
     makeWrapper ${jre}/bin/java $out/bin/domination \
-      --run "cd $out/share/domination" \
+      --chdir "$out/share/domination" \
       --add-flags "-jar $out/share/domination/Domination.jar"
     makeWrapper ${jre}/bin/java $out/bin/domination-map-editor \
-      --run "cd $out/share/domination" \
+      --chdir "$out/share/domination" \
       --add-flags "-cp $out/share/domination/Domination.jar net.yura.domination.ui.swinggui.SwingGUIFrame"
 
     install -Dm644 \
diff --git a/pkgs/games/enigma/default.nix b/pkgs/games/enigma/default.nix
index 131bd00e1857c..247d7b9dee196 100644
--- a/pkgs/games/enigma/default.nix
+++ b/pkgs/games/enigma/default.nix
@@ -1,20 +1,33 @@
-{ lib, stdenv, fetchurl, makeWrapper, pkg-config, gettext, imagemagick, curl, libpng, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, xercesc, xdg-utils, hicolor-icon-theme }:
+{ lib, stdenv, fetchurl, fetchpatch, makeWrapper, pkg-config, gettext, imagemagick, curl, libpng, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, xercesc, xdg-utils, hicolor-icon-theme }:
 stdenv.mkDerivation rec {
   pname = "enigma";
-  version = "1.30-alpha";
+  version = "1.30";
 
   src = fetchurl {
-    url = "https://github.com/Enigma-Game/Enigma/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1zyk3j43gzfr1lhc6g13j7qai5f33fv5xm5735nnznaqvaz17949";
+    url = "https://github.com/Enigma-Game/Enigma/releases/download/${version}/Enigma-${version}-src.tar.gz";
+    sha256 = "rmS5H7wrEJcAcdDXjtW07enuOGjeLm6VaVRvxYQ3+K8=";
   };
 
+  patches = [
+    # fix format string security warning (turned into error)
+    (fetchpatch {
+      url = "https://github.com/Enigma-Game/Enigma/pull/70/commits/d25051eb6228c885e779a9674f8ee3979da30663.patch";
+      sha256 = "L5C4NCZDDUKji9Tg4geKaiw3CkSY6rCoawqGKqR4dFM=";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config gettext makeWrapper imagemagick ];
   buildInputs = [ SDL2 SDL2_image SDL2_mixer SDL2_ttf libpng xercesc curl xdg-utils ];
 
-  # For some reason (might be related to the alpha status), some includes
-  # which are required by lib-src/enigma-core are not picked up by the
-  # configure script. Hence we add them manually.
-  CPPFLAGS = "-I${SDL2.dev}/include/SDL2 -I${SDL2_ttf}/include/SDL2 -I${SDL2_image}/include/SDL2 -I${SDL2_mixer}/include/SDL2";
+  # The configure script of enigma uses pkg-config to determine the header
+  # directories of SDL2. However, pkg-config only returns the path to the core
+  # SDL2 library, not to the additional libraries SDL2_ttf, SDL2_image and
+  # SDL2_mixer. In contrast, sdl2-config does return the correct list of paths.
+  # We don't use configureFlags here so that the shell can correctly carry
+  # out the interpolation.
+  preConfigure = ''
+    export SDL_CFLAGS=$(sdl2-config --cflags)
+  '';
 
   postInstall = ''
     rm -r $out/include
diff --git a/pkgs/games/fheroes2/default.nix b/pkgs/games/fheroes2/default.nix
index 10d7a23aca4e0..ff3537cfae995 100644
--- a/pkgs/games/fheroes2/default.nix
+++ b/pkgs/games/fheroes2/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fheroes2";
-  version = "0.9.13";
+  version = "0.9.14";
 
   src = fetchFromGitHub {
     owner = "ihhub";
     repo = "fheroes2";
     rev = version;
-    sha256 = "sha256-+VAgS7NR/D0HD/Fy7idSUTMJPp2ctpirMpcFooo+bEg=";
+    sha256 = "sha256-M5sUEOKU7KSenAAE7dUI8algB5XsbQQ1s3sDflZLsiA=";
   };
 
   buildInputs = [ gettext libpng SDL2 SDL2_image SDL2_mixer SDL2_ttf zlib ];
diff --git a/pkgs/games/flare/default.nix b/pkgs/games/flare/default.nix
index 3567a5886055d..c849b879ea32e 100644
--- a/pkgs/games/flare/default.nix
+++ b/pkgs/games/flare/default.nix
@@ -11,7 +11,7 @@ buildEnv {
   nativeBuildInputs = [ makeWrapper ];
   postBuild = ''
     mkdir -p $out/bin
-    makeWrapper $out/games/flare $out/bin/flare --run "cd $out/share/games/flare"
+    makeWrapper $out/games/flare $out/bin/flare --chdir "$out/share/games/flare"
   '';
 
   meta = with lib; {
diff --git a/pkgs/games/frogatto/data.nix b/pkgs/games/frogatto/data.nix
index 3ca955a09c39d..00e43582f6e1f 100644
--- a/pkgs/games/frogatto/data.nix
+++ b/pkgs/games/frogatto/data.nix
@@ -2,14 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "frogatto-data";
-  version = "unstable-2021-05-24";
+  version = "unstable-2022-04-13";
 
   src = fetchFromGitHub {
     owner = "frogatto";
     repo = "frogatto";
-    # master branch as of 2021-11-29
-    rev = "82d3dafa0cfeaad016a427bdbc729eb9509748f1";
-    sha256 = "0fmwn584xl0vafcsh72b4xnryfqyjxk5zhmymg5i8rzp6h03n8xq";
+    rev = "655493961c4ad57ba9cccdc24d23a2ded294b5f2";
+    sha256 = "0irn7p61cs8nm7dxsx84b2c3wryf2h12k2kclywdhy6xmh53w8k1";
   };
 
   installPhase = ''
diff --git a/pkgs/games/frogatto/default.nix b/pkgs/games/frogatto/default.nix
index f987992858da9..fa6b46e0751fb 100644
--- a/pkgs/games/frogatto/default.nix
+++ b/pkgs/games/frogatto/default.nix
@@ -30,7 +30,7 @@ in buildEnv {
 
   postBuild = ''
     wrapProgram $out/bin/frogatto \
-      --run "cd $out/share/frogatto"
+      --chdir "$out/share/frogatto"
   '';
 
   meta = with lib; {
diff --git a/pkgs/games/frogatto/engine.nix b/pkgs/games/frogatto/engine.nix
index 9e8ee6fe8dd86..b848c414b7a3c 100644
--- a/pkgs/games/frogatto/engine.nix
+++ b/pkgs/games/frogatto/engine.nix
@@ -1,18 +1,25 @@
-{ lib, stdenv, fetchFromGitHub, which
+{ lib, stdenv, fetchFromGitHub, fetchurl, which
 , boost, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf
 , glew, zlib, icu, pkg-config, cairo, libvpx }:
 
 stdenv.mkDerivation {
   pname = "anura-engine";
-  version = "unstable-2021-11-23";
+  version = "unstable-2022-04-09";
 
   src = fetchFromGitHub {
     owner = "anura-engine";
     repo = "anura";
-    rev = "816425df31624066e2815e26a25b1c5d3d355cb4";
-    sha256 = "1k7fnfgz003gcbyygv4aakhkkz3w3z9nyz7dlwz01xa6122zqyir";
+    rev = "5ac7f6fe63114274f0da7dad4c1ed673651e6424";
+    sha256 = "1yrcbvzgxdvn893qk1qcpb53pjns366fdls5qjal7lhq71kkfc67";
     fetchSubmodules = true;
   };
+  patches = [
+    # https://github.com/anura-engine/anura/issues/321
+    (fetchurl {
+      url = "https://github.com/anura-engine/anura/commit/627d08fb5254b5c66d315f1706089905c2704059.patch";
+      sha256 = "052m58qb3lg0hnxacpnjz2sz89dk0x6b5qi2q9bkzkvg38f237rr";
+    })
+  ];
 
   nativeBuildInputs = [
     which pkg-config
diff --git a/pkgs/games/heroic/default.nix b/pkgs/games/heroic/default.nix
index c0416d0dd7e8a..565bb87f7e01d 100644
--- a/pkgs/games/heroic/default.nix
+++ b/pkgs/games/heroic/default.nix
@@ -2,11 +2,11 @@
 
 let
   pname = "heroic";
-  version = "2.2.1";
+  version = "2.2.6";
   name = "${pname}-${version}";
   src = fetchurl {
     url = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases/download/v${version}/Heroic-${version}.AppImage";
-    sha256 = "sha256-zzxf3eM1fUWTVtzzABcwlmptNuCVQafvotnbOiCzu0c=";
+    sha256 = "sha256-kL30/G4DpDPwGN7PvbWest7TcgL4Rd1c2OM4nRCT3bg=";
   };
   appimageContents = appimageTools.extractType2 { inherit name src; };
 
diff --git a/pkgs/games/iortcw/default.nix b/pkgs/games/iortcw/default.nix
index 8af3dfe31f68a..9da055acc2184 100644
--- a/pkgs/games/iortcw/default.nix
+++ b/pkgs/games/iortcw/default.nix
@@ -17,7 +17,7 @@ in buildEnv {
   # so we can launch sp from mp game and vice versa
   postBuild = ''
     for i in `find -L $out/opt/iortcw -maxdepth 1 -type f -executable`; do
-      makeWrapper $i $out/bin/`basename $i` --run "cd $out/opt/iortcw"
+      makeWrapper $i $out/bin/`basename $i` --chdir "$out/opt/iortcw"
     done
   '';
 
diff --git a/pkgs/games/iortcw/sp.nix b/pkgs/games/iortcw/sp.nix
index fa6f73a177b20..d9faa177c17da 100644
--- a/pkgs/games/iortcw/sp.nix
+++ b/pkgs/games/iortcw/sp.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     for i in `find $out/opt/iortcw -maxdepth 1 -type f -executable`; do
-      makeWrapper $i $out/bin/`basename $i` --run "cd $out/opt/iortcw"
+      makeWrapper $i $out/bin/`basename $i` --chdir "$out/opt/iortcw"
     done
   '';
 
diff --git a/pkgs/games/kabeljau/default.nix b/pkgs/games/kabeljau/default.nix
new file mode 100644
index 0000000000000..e4f77df3dfe89
--- /dev/null
+++ b/pkgs/games/kabeljau/default.nix
@@ -0,0 +1,38 @@
+{ stdenvNoCC, lib, fetchFromGitea, bash, dialog, makeWrapper }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "kabeljau";
+  version = "1.0.1";
+
+  src = fetchFromGitea {
+    domain = "codeberg.org";
+    owner = "papojari";
+    repo = "kabeljau";
+    rev = "v${version}";
+    sha256 = "sha256-LOvr5fgSUTXnYhbVmynCCjo0W098jKWQnFULtIprE3M=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  postPatch = ''
+    patchShebangs --host ${pname}
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    cp ${pname}.sh $out/bin/${pname}
+    wrapProgram $out/bin/${pname} --suffix PATH : ${
+      lib.makeBinPath [ dialog ]
+    }
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Survive as a stray cat in an ncurses game";
+    homepage = "https://codeberg.org/papojari/kabeljau";
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ papojari ];
+  };
+}
diff --git a/pkgs/games/katago/default.nix b/pkgs/games/katago/default.nix
index 3265f3d63382f..a3d7ed5cba9df 100644
--- a/pkgs/games/katago/default.nix
+++ b/pkgs/games/katago/default.nix
@@ -1,8 +1,7 @@
 { stdenv
 , boost
 , cmake
-, cudatoolkit
-, cudnn
+, cudaPackages
 , eigen
 , fetchFromGitHub
 , gperftools
@@ -52,7 +51,8 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals (!enableGPU) [
     eigen
   ] ++ lib.optionals (enableGPU && enableCuda) [
-    cudnn
+    cudaPackages.cudnn
+    cudaPackages.cudatoolkit
     mesa.drivers
   ] ++ lib.optionals (enableGPU && !enableCuda) [
     opencl-headers
@@ -86,7 +86,7 @@ stdenv.mkDerivation rec {
   preConfigure = ''
     cd cpp/
   '' + lib.optionalString enableCuda ''
-    export CUDA_PATH="${cudatoolkit}"
+    export CUDA_PATH="${cudaPackages.cudatoolkit}"
     export EXTRA_LDFLAGS="-L/run/opengl-driver/lib"
   '';
 
diff --git a/pkgs/games/koules/default.nix b/pkgs/games/koules/default.nix
new file mode 100644
index 0000000000000..e2c7c55cbb702
--- /dev/null
+++ b/pkgs/games/koules/default.nix
@@ -0,0 +1,76 @@
+{ stdenv
+, lib
+, fetchurl
+, fetchzip
+, makeDesktopItem
+, copyDesktopItems
+, imake
+, gccmakedep
+, libX11
+, libXext
+, installShellFiles
+}:
+
+let
+  debian-extras = fetchzip {
+    url = "mirror://debian/pool/main/k/koules/koules_1.4-27.debian.tar.xz";
+    sha256 = "0bq1rr6vxqmx2k0dhyrqnwwfiw4h2ycbj576v66vwr0jaq5plil3";
+  };
+in
+
+stdenv.mkDerivation rec {
+  pname = "koules";
+  version = "1.4";
+
+  src = fetchurl {
+    url = "https://www.ucw.cz/~hubicka/koules/packages/${pname}${version}-src.tar.gz";
+    sha256 = "06x2wkpns14kii9fxmxbmj5lma371qj00hgl7fc5kggfmzz96vy3";
+  };
+
+  nativeBuildInputs = [ imake gccmakedep installShellFiles copyDesktopItems ];
+  buildInputs = [ libX11 libXext ];
+
+  # Debian maintains lots of patches for koules. Let's include all of them.
+  prePatch = ''
+    patches="$patches $(cat ${debian-extras}/patches/series | sed 's|^|${debian-extras}/patches/|')"
+  '';
+
+  postPatch = ''
+    # We do not want to depend on that particular font to be available in the
+    # xserver, hence substitute it by a font which is always available
+    sed -ie 's:-schumacher-clean-bold-r-normal--8-80-75-75-c-80-\*iso\*:fixed:' xlib/init.c
+  '';
+
+  preBuild = ''
+    cp xkoules.6 xkoules.man  # else "make" will not succeed
+    sed -ie "s:^SOUNDDIR\s*=.*:SOUNDDIR=$out/lib:" Makefile
+    sed -ie "s:^KOULESDIR\s*=.*:KOULESDIR=$out:" Makefile
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 xkoules $out/bin/xkoules
+    install -Dm755 koules.sndsrv.linux $out/lib/koules.sndsrv.linux
+    install -m644 sounds/* $out/lib/
+    install -Dm644 Koules.xpm $out/share/pixmaps/koules.xpm
+    installManPage xkoules.6
+    runHook postInstall
+  '';
+
+  desktopItems = [ (makeDesktopItem {
+    desktopName = "Koules";
+    name = "koules";
+    exec = "xkoules";
+    icon = "koules";
+    comment = "Push your enemies away, but stay away from obstacles";
+    categories = [ "Game" "ArcadeGame" ];
+  }) ];
+
+  meta = with lib; {
+    description = "Fast arcade game based on the fundamental law of body attraction";
+    homepage = "https://www.ucw.cz/~hubicka/koules/English/";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.iblech ];
+  };
+}
diff --git a/pkgs/games/lgames/barrage/default.nix b/pkgs/games/lgames/barrage/default.nix
new file mode 100644
index 0000000000000..70f97b591001b
--- /dev/null
+++ b/pkgs/games/lgames/barrage/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, stdenv
+, fetchurl
+, SDL
+, SDL_mixer
+}:
+
+stdenv.mkDerivation rec {
+  pname = "barrage";
+  version = "1.0.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/lgames/${pname}-${version}.tar.gz";
+    hash = "sha256-p4iXq2qM9tU9QJO7irriBN36OiLFyrnnYiDkmH3naQQ=";
+  };
+
+  buildInputs = [
+    SDL
+    SDL_mixer
+  ];
+
+  hardeningDisable = [ "format" ];
+
+  meta = with lib; {
+    homepage = "https://lgames.sourceforge.io/Barrage/";
+    description = "A destructive action game";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    inherit (SDL.meta) platforms;
+  };
+}
diff --git a/pkgs/games/lbreakout2/default.nix b/pkgs/games/lgames/lbreakout2/default.nix
index 818cd31fa59a0..4645baf062441 100644
--- a/pkgs/games/lbreakout2/default.nix
+++ b/pkgs/games/lgames/lbreakout2/default.nix
@@ -1,19 +1,34 @@
-{ lib, stdenv, fetchurl, SDL, SDL_mixer, zlib, libpng, libintl }:
+{ lib
+, stdenv
+, fetchurl
+, SDL
+, SDL_mixer
+, libintl
+, libpng
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "lbreakout2";
   version = "2.6.5";
-  buildInputs = [ SDL SDL_mixer zlib libpng libintl ];
 
   src = fetchurl {
     url = "mirror://sourceforge/lgames/${pname}-${version}.tar.gz";
     sha256 = "0vwdlyvh7c4y80q5vp7fyfpzbqk9lq3w8pvavi139njkalbxc14i";
   };
 
+  buildInputs = [
+    SDL
+    SDL_mixer
+    libintl
+    libpng
+    zlib
+  ];
+
   meta = with lib; {
-    description = "Breakout clone from the LGames series";
     homepage = "http://lgames.sourceforge.net/LBreakout2/";
-    license = licenses.gpl2;
+    description = "Breakout clone from the LGames series";
+    license = licenses.gpl2Plus;
     maintainers = [ maintainers.ciil ];
     platforms = platforms.unix;
     hydraPlatforms = lib.platforms.linux; # sdl-config times out on darwin
diff --git a/pkgs/games/lgames/lbreakouthd/default.nix b/pkgs/games/lgames/lbreakouthd/default.nix
new file mode 100644
index 0000000000000..4a6e2c31bbf6b
--- /dev/null
+++ b/pkgs/games/lgames/lbreakouthd/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, stdenv
+, fetchurl
+, SDL2
+, SDL2_image
+, SDL2_mixer
+, SDL2_ttf
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lbreakouthd";
+  version = "1.0.9";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/lgames/${pname}-${version}.tar.gz";
+    hash = "sha256-MHwK4jeDfZSS4jh///jW0/q4ntM4IuB0fQ8Bsaq0d0s=";
+  };
+
+  buildInputs = [
+    SDL2
+    SDL2_image
+    SDL2_mixer
+    SDL2_ttf
+  ];
+
+  hardeningDisable = [ "format" ];
+
+  meta = with lib; {
+    homepage = "https://lgames.sourceforge.io/LBreakoutHD/";
+    description = "A widescreen Breakout clone";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    inherit (SDL2.meta) platforms;
+  };
+}
diff --git a/pkgs/games/lgames/lpairs2/default.nix b/pkgs/games/lgames/lpairs2/default.nix
new file mode 100644
index 0000000000000..4011dd9a29486
--- /dev/null
+++ b/pkgs/games/lgames/lpairs2/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenv
+, fetchurl
+, SDL2
+, SDL2_image
+, SDL2_mixer
+, SDL2_ttf
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lpairs2";
+  version = "2.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/lgames/${pname}-${version}.tar.gz";
+    hash = "sha256-35KYDnPWOjNPu9wz9AWvSBAo1tdVDo7I2TNxtxE5RRg=";
+  };
+
+  buildInputs = [
+    SDL2
+    SDL2_image
+    SDL2_mixer
+    SDL2_ttf
+  ];
+
+  meta = with lib; {
+    homepage = "http://lgames.sourceforge.net/LPairs/";
+    description = "Matching the pairs - a typical Memory Game";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/games/lgames/ltris/default.nix b/pkgs/games/lgames/ltris/default.nix
new file mode 100644
index 0000000000000..acf0f64d8c2bf
--- /dev/null
+++ b/pkgs/games/lgames/ltris/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchurl, SDL, SDL_mixer }:
+
+stdenv.mkDerivation rec {
+  pname = "ltris";
+  version = "1.2.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/lgames/${pname}-${version}.tar.gz";
+    hash = "sha256-1ut7MBAjJ4YE2SkqkvL9L1ED7kEqdaEm0lUOLsI2j4M=";
+  };
+
+  buildInputs = [
+    SDL
+    SDL_mixer
+  ];
+
+  hardeningDisable = [ "format" ];
+
+  meta = with lib; {
+    homepage = "https://lgames.sourceforge.io/LTris/";
+    description = "Tetris clone from the LGames series";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ AndersonTorres ciil ];
+    inherit (SDL.meta) platforms;
+  };
+}
diff --git a/pkgs/games/lgogdownloader/default.nix b/pkgs/games/lgogdownloader/default.nix
index 0c40d537fcec9..ab029e055aa9c 100644
--- a/pkgs/games/lgogdownloader/default.nix
+++ b/pkgs/games/lgogdownloader/default.nix
@@ -11,7 +11,7 @@
 , rhash
 , tinyxml-2
 , help2man
-, testVersion
+, testers
 , lgogdownloader
 }:
 
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru.tests = {
-    version = testVersion { package = lgogdownloader; };
+    version = testers.testVersion { package = lgogdownloader; };
   };
 
   meta = with lib; {
diff --git a/pkgs/games/liberal-crime-squad/default.nix b/pkgs/games/liberal-crime-squad/default.nix
index d8048b01d21e3..f46bd3b50a388 100644
--- a/pkgs/games/liberal-crime-squad/default.nix
+++ b/pkgs/games/liberal-crime-squad/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation {
     '';
     homepage = "https://github.com/Kamal-Sadek/Liberal-Crime-Squad";
     maintainers = [ maintainers.rardiol ];
+    mainProgram = "crimesquad";
     license = licenses.gpl2;
     platforms = platforms.all;
   };
diff --git a/pkgs/games/ltris/default.nix b/pkgs/games/ltris/default.nix
deleted file mode 100644
index d128f6c6c0178..0000000000000
--- a/pkgs/games/ltris/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ lib, stdenv, fetchurl, SDL, SDL_mixer }:
-
-stdenv.mkDerivation rec {
-  pname = "ltris";
-  version = "1.0.19";
-  buildInputs = [ SDL SDL_mixer ];
-
-  src = fetchurl {
-    url = "mirror://sourceforge/lgames/${pname}-${version}.tar.gz";
-    sha256 = "1895wv1fqklrj4apkz47rnkcfhfav7zjknskw6p0886j35vrwslg";
-  };
-
-  patchPhase = "patch -p0 < ${./gcc5_compliance.diff}";
-
-  meta = with lib; {
-    description = "Tetris clone from the LGames series";
-    homepage = "http://lgames.sourceforge.net/LBreakout2/";
-    license = licenses.gpl2;
-    maintainers = [ maintainers.ciil ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/games/ltris/gcc5_compliance.diff b/pkgs/games/ltris/gcc5_compliance.diff
deleted file mode 100644
index bf53fcf8467b3..0000000000000
--- a/pkgs/games/ltris/gcc5_compliance.diff
+++ /dev/null
@@ -1,299 +0,0 @@
-Index: ChangeLog
-===================================================================
---- ChangeLog	(revision 163)
-+++ ChangeLog	(revision 164)
-@@ -1,3 +1,5 @@
-+- removed all inline keywords to work with GCC 5 (2015/05/16 MS)
-+
- 1.0.19:
- - removed link to lib math as not needed (2013/10/29 MS)
- - reset key states when unpausing to prevent unwanted movement (2013/10/29 MS)
-Index: src/bowl.c
-===================================================================
---- src/bowl.c	(revision 163)
-+++ src/bowl.c	(revision 164)
-@@ -333,7 +333,7 @@
- Set a tile contents and pixel contents.
- ====================================================================
- */
--inline void bowl_set_tile( Bowl *bowl, int x, int y, int tile_id )
-+void bowl_set_tile( Bowl *bowl, int x, int y, int tile_id )
- {
-     int i, j = y * bowl->block_size;
-     bowl->contents[x][y] = tile_id;
-Index: src/sdl.c
-===================================================================
---- src/sdl.c	(revision 163)
-+++ src/sdl.c	(revision 164)
-@@ -244,7 +244,7 @@
- #endif
- 
- /* return full path of bitmap */
--inline void get_full_bmp_path( char *full_path, char *file_name )
-+void get_full_bmp_path( char *full_path, char *file_name )
- {
-     sprintf(full_path,  "%s/gfx/%s", SRC_DIR, file_name );
- }
-@@ -330,7 +330,7 @@
- /*
-     lock surface
- */
--inline void lock_surf(SDL_Surface *sur)
-+void lock_surf(SDL_Surface *sur)
- {
-     if (SDL_MUSTLOCK(sur))
-         SDL_LockSurface(sur);
-@@ -339,7 +339,7 @@
- /*
-     unlock surface
- */
--inline void unlock_surf(SDL_Surface *sur)
-+void unlock_surf(SDL_Surface *sur)
- {
-     if (SDL_MUSTLOCK(sur))
-         SDL_UnlockSurface(sur);
-@@ -666,7 +666,7 @@
- /*
-     lock font surface
- */
--inline void lock_font(Font *fnt)
-+void lock_font(Font *fnt)
- {
-     if (SDL_MUSTLOCK(fnt->pic))
-         SDL_LockSurface(fnt->pic);
-@@ -675,7 +675,7 @@
- /*
-     unlock font surface
- */
--inline void unlock_font(Font *fnt)
-+void unlock_font(Font *fnt)
- {
-     if (SDL_MUSTLOCK(fnt->pic))
-         SDL_UnlockSurface(fnt->pic);
-@@ -905,7 +905,7 @@
- /*
-     update rectangle (0,0,0,0)->fullscreen
- */
--inline void refresh_screen(int x, int y, int w, int h)
-+void refresh_screen(int x, int y, int w, int h)
- {
-     SDL_UpdateRect(sdl.screen, x, y, w, h);
- }
-@@ -1055,7 +1055,7 @@
- /*
-     lock surface
- */
--inline void lock_screen()
-+void lock_screen()
- {
-     if (SDL_MUSTLOCK(sdl.screen))
-         SDL_LockSurface(sdl.screen);
-@@ -1064,7 +1064,7 @@
- /*
-     unlock surface
- */
--inline void unlock_screen()
-+void unlock_screen()
- {
-     if (SDL_MUSTLOCK(sdl.screen))
-         SDL_UnlockSurface(sdl.screen);
-@@ -1073,7 +1073,7 @@
- /*
-     flip hardware screens (double buffer)
- */
--inline void flip_screen()
-+void flip_screen()
- {
-     SDL_Flip(sdl.screen);
- }
-@@ -1132,7 +1132,7 @@
- /*
-     get milliseconds since last call
- */
--inline int get_time()
-+int get_time()
- {
-     int ms;
-     cur_time = SDL_GetTicks();
-@@ -1148,7 +1148,7 @@
- /*
-     reset timer
- */
--inline void reset_timer()
-+void reset_timer()
- {
-     last_time = SDL_GetTicks();
- }
-Index: src/sdl.h
-===================================================================
---- src/sdl.h	(revision 163)
-+++ src/sdl.h	(revision 164)
-@@ -41,8 +41,8 @@
- SDL_Surface* load_surf(char *fname, int f);
- SDL_Surface* create_surf(int w, int h, int f);
- void free_surf( SDL_Surface **surf );
--inline void lock_surf(SDL_Surface *sur);
--inline void unlock_surf(SDL_Surface *sur);
-+void lock_surf(SDL_Surface *sur);
-+void unlock_surf(SDL_Surface *sur);
- void blit_surf(void);
- void alpha_blit_surf(int alpha);
- void fill_surf(int c);
-@@ -86,8 +86,8 @@
- Font* load_fixed_font(char *fname, int off, int len, int w);
- void free_font(Font **sfnt);
- int  write_text(Font *sfnt, SDL_Surface *dest, int x, int y, char *str, int alpha);
--inline void lock_font(Font *sfnt);
--inline void unlock_font(Font *sfnt);
-+void lock_font(Font *sfnt);
-+void unlock_font(Font *sfnt);
- SDL_Rect last_write_rect(Font *fnt);
- int  text_width(Font *fnt, char *str);
- 
-@@ -132,14 +132,14 @@
- char** get_mode_names( int *count );
- int  set_video_mode( Video_Mode mode );
- void hardware_cap();
--inline void refresh_screen( int x, int y, int w, int h );
-+void refresh_screen( int x, int y, int w, int h );
- void refresh_rects();
- void add_refresh_rect(int x, int y, int w, int h);
- int  wait_for_key();
- void wait_for_click();
--inline void lock_screen();
--inline void unlock_screen();
--inline void flip_screen();
-+void lock_screen();
-+void unlock_screen();
-+void flip_screen();
- void fade_screen( int type, int ms );
- void take_screenshot( int i );
- 
-@@ -148,8 +148,8 @@
- SDL_Cursor* create_cursor( int width, int height, int hot_x, int hot_y, char *source );
- 
- /* timer */
--inline int get_time();
--inline void reset_timer();
-+int get_time();
-+void reset_timer();
- 
- #ifdef __cplusplus
- };
-Index: src/tools.c
-===================================================================
---- src/tools.c	(revision 163)
-+++ src/tools.c	(revision 164)
-@@ -23,7 +23,7 @@
- #include "ltris.h"
- 
- /* compares to strings and returns true if their first strlen(str1) chars are equal */
--inline int strequal( char *str1, char *str2 )
-+int strequal( char *str1, char *str2 )
- {
-     if ( strlen( str1 ) != strlen( str2 ) ) return 0;
-     return ( !strncmp( str1, str2, strlen( str1 ) ) );
-@@ -30,7 +30,7 @@
- }
- 
- /* set delay to ms milliseconds */
--inline void delay_set( Delay *delay, int ms )
-+void delay_set( Delay *delay, int ms )
- {
-     delay->limit = ms;
-     delay->cur = 0;
-@@ -37,13 +37,13 @@
- }
- 
- /* reset delay ( cur = 0 )*/
--inline void delay_reset( Delay *delay )
-+void delay_reset( Delay *delay )
- {
-     delay->cur = 0;
- }
- 
- /* check if times out and reset */
--inline int delay_timed_out( Delay *delay, int ms )
-+int delay_timed_out( Delay *delay, int ms )
- {
-     delay->cur += ms;
-     if ( delay->cur >= delay->limit ) {
-@@ -56,12 +56,12 @@
- }
- 
- /* set timer so that we have a time out next call of delay_timed_out() */
--inline void delay_force_time_out( Delay *delay )
-+void delay_force_time_out( Delay *delay )
- {
-     delay->cur = delay->limit;
- }
- 
--inline void goto_tile( int *x, int *y, int d )
-+void goto_tile( int *x, int *y, int d )
- {
-     /*  0 -up, clockwise, 5 - left up */
-     switch ( d ) {
-@@ -326,24 +326,24 @@
- the target value until reached when counter_update() is called.
- ====================================================================
- */
--inline void counter_set( Counter *counter, double value )
-+void counter_set( Counter *counter, double value )
- {
-     counter->value = value;
-     counter->approach = value;
- }
--inline void counter_add( Counter *counter, double add )
-+void counter_add( Counter *counter, double add )
- {
-     counter->value += add;
- }
--inline double counter_get_approach( Counter counter )
-+double counter_get_approach( Counter counter )
- {
-     return counter.approach;
- }
--inline double counter_get( Counter counter )
-+double counter_get( Counter counter )
- {
-     return counter.value;
- }
--inline void counter_update( Counter *counter, int ms )
-+void counter_update( Counter *counter, int ms )
- {
-     double change;
-     if ( counter->approach == counter->value ) return;
-Index: src/tools.h
-===================================================================
---- src/tools.h	(revision 163)
-+++ src/tools.h	(revision 164)
-@@ -33,7 +33,7 @@
- #define VEC_DIST( vec1, vec2 ) ( sqrt( ( vec1.x - vec2.x ) * ( vec1.x - vec2.x ) + ( vec1.y - vec2.y ) * ( vec1.y - vec2.y ) ) )
- 
- /* compares to strings and returns true if their first strlen(str1) chars are equal */
--inline int strequal( char *str1, char *str2 );
-+int strequal( char *str1, char *str2 );
- 
- /* delete lines */
- void delete_lines( char **lines, int line_number );
-@@ -45,16 +45,16 @@
- } Delay;
- 
- /* set delay to ms milliseconds */
--inline void delay_set( Delay *delay, int ms );
-+void delay_set( Delay *delay, int ms );
- 
- /* reset delay ( cur = 0 )*/
--inline void delay_reset( Delay *delay );
-+void delay_reset( Delay *delay );
- 
- /* check if time's out ( add ms milliseconds )and reset */
--inline int delay_timed_out( Delay *delay, int ms );
-+int delay_timed_out( Delay *delay, int ms );
- 
- /* set timer so that we have a time out next call of delay_timed_out() */
--inline void delay_force_time_out( Delay *delay );
-+void delay_force_time_out( Delay *delay );
- 
- /* return distance betwteen to map positions */
- int get_dist( int x1, int y1, int x2, int y2 );
diff --git a/pkgs/games/mindustry/default.nix b/pkgs/games/mindustry/default.nix
index 82df3710c5770..2572cd60c4a45 100644
--- a/pkgs/games/mindustry/default.nix
+++ b/pkgs/games/mindustry/default.nix
@@ -13,6 +13,7 @@
 , stb
 , ant
 , alsa-lib
+, alsa-plugins
 , glew
 
 # Make the build version easily overridable.
@@ -180,7 +181,8 @@ stdenv.mkDerivation rec {
     install -Dm644 desktop/build/libs/Mindustry.jar $out/share/mindustry.jar
     mkdir -p $out/bin
     makeWrapper ${jdk}/bin/java $out/bin/mindustry \
-      --add-flags "-jar $out/share/mindustry.jar"
+      --add-flags "-jar $out/share/mindustry.jar" \
+      --set ALSA_PLUGIN_DIR ${alsa-plugins}/lib/alsa-lib/
     install -Dm644 core/assets/icons/icon_64.png $out/share/icons/hicolor/64x64/apps/mindustry.png
   '' + optionalString enableServer ''
     install -Dm644 server/build/libs/server-release.jar $out/share/mindustry-server.jar
diff --git a/pkgs/games/minecraft/default.nix b/pkgs/games/minecraft/default.nix
index 08104310faa3d..dc4cd9087fc2c 100644
--- a/pkgs/games/minecraft/default.nix
+++ b/pkgs/games/minecraft/default.nix
@@ -139,7 +139,7 @@ stdenv.mkDerivation rec {
       --prefix LD_LIBRARY_PATH : ${envLibPath} \
       --prefix PATH : ${lib.makeBinPath [ jre ]} \
       --set JAVA_HOME ${lib.getBin jre} \
-      --run "cd /tmp" \
+      --chdir /tmp \
       "''${gappsWrapperArgs[@]}"
   '';
 
diff --git a/pkgs/games/mudlet/default.nix b/pkgs/games/mudlet/default.nix
index 46ae45b2202b3..f4ca916aa4997 100644
--- a/pkgs/games/mudlet/default.nix
+++ b/pkgs/games/mudlet/default.nix
@@ -85,7 +85,7 @@ stdenv.mkDerivation rec {
       --set LUA_CPATH "${luaEnv}/lib/lua/${lua.luaversion}/?.so" \
       --prefix LUA_PATH : "$NIX_LUA_PATH" \
       --prefix LD_LIBRARY_PATH : "${libsForQt5.qtkeychain}/lib/" \
-      --run "cd $out";
+      --chdir "$out";
 
     runHook postInstall
   '';
diff --git a/pkgs/games/nanosaur/default.nix b/pkgs/games/nanosaur/default.nix
index 75e47fa179b9b..0d5ea528a92da 100644
--- a/pkgs/games/nanosaur/default.nix
+++ b/pkgs/games/nanosaur/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     mv build $out
-    makeWrapper $out/Nanosaur $out/bin/Nanosaur --run "cd $out"
+    makeWrapper $out/Nanosaur $out/bin/Nanosaur --chdir "$out"
   '';
 
   meta = with lib; {
diff --git a/pkgs/games/nethack/default.nix b/pkgs/games/nethack/default.nix
index 2b29bddad93ca..f6de3d57c1304 100644
--- a/pkgs/games/nethack/default.nix
+++ b/pkgs/games/nethack/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, coreutils, ncurses, gzip, flex, bison
+{ stdenv, lib, fetchurl, coreutils, ncurses, gzip, flex, bison, fetchpatch
 , less
 , buildPackages
 , x11Mode ? false, qtMode ? false, libXaw, libXext, libXpm, bdftopcf, mkfontdir, pkg-config, qt5
@@ -24,6 +24,15 @@ in stdenv.mkDerivation rec {
          else if qtMode then "nethack-qt"
          else "nethack";
 
+  patches = [
+    # Don't unset `__warn_unused_result__`, breaks on glibc-2.34
+    (fetchpatch {
+      url = "https://github.com/NetHack/NetHack/commit/81d73ce417dda6a98e2e918e06922e68b67c53f7.patch";
+      sha256 = "sha256-PX9XtJTEE3K1yg/IwIzEIT+EZWi02gU+9msrsG9ZWQY=";
+      revert = true;
+    })
+  ];
+
   src = fetchurl {
     url = "https://nethack.org/download/${version}/nethack-${lib.replaceStrings ["."] [""] version}-src.tgz";
     sha256 = "1liyckjp34j354qnxc1zn9730lh1p2dabrg1hap24z6xnqx0rpng";
diff --git a/pkgs/games/openjk/default.nix b/pkgs/games/openjk/default.nix
index d2844809eea87..092f442669a69 100644
--- a/pkgs/games/openjk/default.nix
+++ b/pkgs/games/openjk/default.nix
@@ -19,15 +19,24 @@ let
     genericName = "Jedi Academy";
     categories = [ "Game" ];
   };
+  josp = makeDesktopItem rec {
+    name = "josp";
+    exec = name;
+    icon = "OpenJK_Icon_128";
+    comment = "Open Source Jedi Outcast game released by Raven Software";
+    desktopName = "Jedi Outcast (Single Player)";
+    genericName = "Jedi Outcast";
+    categories = [ "Game" ];
+  };
 in stdenv.mkDerivation {
   pname = "OpenJK";
-  version = "2020-07-03";
+  version = "unstable-2022-01-30";
 
   src = fetchFromGitHub {
     owner = "JACoders";
     repo = "OpenJK";
-    rev = "0a336ce4dffe6505e3f754b59732402a1db95752";
-    sha256 = "1xagbz42hi3ivs208mnay2dbgh90pmwwbar2p1yfhj3zl3cghcs8";
+    rev = "235fb9e1a9c4537a603b2e54e444327d20d198a3";
+    sha256 = "sha256-DqP6wnu5sE7lQJGEdsEPOc6FIaJjqxt5ANKZ5eiabC4=";
   };
 
   dontAddPrefix = true;
@@ -35,22 +44,39 @@ in stdenv.mkDerivation {
   nativeBuildInputs = [ makeWrapper cmake ];
   buildInputs = [ libjpeg zlib libpng libGL SDL2 ];
 
+  outputs = [ "out" "openjo" "openja" ];
+
   # move from $out/JediAcademy to $out/opt/JediAcademy
   preConfigure = ''
     cmakeFlagsArray=("-DCMAKE_INSTALL_PREFIX=$out/opt")
   '';
+  cmakeFlags = ["-DBuildJK2SPEngine:BOOL=ON"
+                "-DBuildJK2SPGame:BOOL=ON"
+                "-DBuildJK2SPRdVanilla:BOOL=ON"];
 
   postInstall = ''
-    mkdir -p $out/bin $out/share/applications $out/share/icons/hicolor/128x128/apps
-    prefix=$out/opt/JediAcademy
+    mkdir -p $out/bin $openja/bin $openjo/bin
+    mkdir -p $openja/share/applications $openjo/share/applications
+    mkdir -p $openja/share/icons/hicolor/128x128/apps $openjo/share/icons/hicolor/128x128/apps
+    mkdir -p $openja/opt $openjo/opt
+    mv $out/opt/JediAcademy $openja/opt/
+    mv $out/opt/JediOutcast $openjo/opt/
+    jaPrefix=$openja/opt/JediAcademy
+    joPrefix=$openjo/opt/JediOutcast
 
-    makeWrapper $prefix/openjk.* $out/bin/jamp --run "cd $prefix"
-    makeWrapper $prefix/openjk_sp.* $out/bin/jasp --run "cd $prefix"
-    makeWrapper $prefix/openjkded.* $out/bin/openjkded --run "cd $prefix"
+    makeWrapper $jaPrefix/openjk.* $openja/bin/jamp --chdir "$jaPrefix"
+    makeWrapper $jaPrefix/openjk_sp.* $openja/bin/jasp --chdir "$jaPrefix"
+    makeWrapper $jaPrefix/openjkded.* $openja/bin/openjkded --chdir "$jaPrefix"
+    makeWrapper $joPrefix/openjo_sp.* $openjo/bin/josp --chdir "$joPrefix"
 
-    cp $src/shared/icons/OpenJK_Icon_128.png $out/share/icons/hicolor/128x128/apps
-    ln -s ${jamp}/share/applications/* $out/share/applications
-    ln -s ${jasp}/share/applications/* $out/share/applications
+    cp $src/shared/icons/OpenJK_Icon_128.png $openjo/share/icons/hicolor/128x128/apps
+    cp $src/shared/icons/OpenJK_Icon_128.png $openja/share/icons/hicolor/128x128/apps
+    ln -s ${jamp}/share/applications/* $openja/share/applications
+    ln -s ${jasp}/share/applications/* $openja/share/applications
+    ln -s ${josp}/share/applications/* $openjo/share/applications
+    ln -s $openja/bin/* $out/bin
+    ln -s $openjo/bin/* $out/bin
+    rm -rf $out/opt
   '';
 
   meta = with lib; {
@@ -58,6 +84,6 @@ in stdenv.mkDerivation {
     homepage = "https://github.com/JACoders/OpenJK";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ tgunnoe ];
   };
 }
diff --git a/pkgs/games/openmw/default.nix b/pkgs/games/openmw/default.nix
index edc8147a2b77b..8746d3172ac83 100644
--- a/pkgs/games/openmw/default.nix
+++ b/pkgs/games/openmw/default.nix
@@ -83,5 +83,10 @@ mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ abbradar marius851000 ];
     platforms = platforms.linux;
+
+    # 2021-10-13, doesn't compile with glibc-2.34, maintainers prefer a fix on glibc's end.
+    # Can be marked as un-broken as soon as https://gitlab.com/OpenMW/openmw/-/merge_requests/1239
+    # is resolved and a patch is appliable here.
+    broken = true;
   };
 }
diff --git a/pkgs/games/openmw/tes3mp.nix b/pkgs/games/openmw/tes3mp.nix
index 37ad603d7cf53..b92c31663fc60 100644
--- a/pkgs/games/openmw/tes3mp.nix
+++ b/pkgs/games/openmw/tes3mp.nix
@@ -131,11 +131,11 @@ symlinkJoin rec {
     dir=\''${XDG_CONFIG_HOME:-\$HOME/.config}/openmw
 
     makeWrapper ${unwrapped}/libexec/tes3mp-browser $out/bin/tes3mp-browser \
-      --run "cd $out/bin"
+      --chdir "$out/bin"
 
     makeWrapper ${unwrapped}/libexec/tes3mp-server $out/bin/tes3mp-server \
       --run "mkdir -p $dir" \
       --run "${crudini}/bin/crudini --merge $dir/${cfgFile.name} < ${cfgFile}" \
-      --run "cd $out/bin"
+      --chdir "$out/bin"
   '';
 }
diff --git a/pkgs/games/openra/common.nix b/pkgs/games/openra/common.nix
index 01bd44ee244ab..67060f9ef3883 100644
--- a/pkgs/games/openra/common.nix
+++ b/pkgs/games/openra/common.nix
@@ -34,7 +34,7 @@ in {
       --set TERM xterm
 
     makeWrapper $out/lib/openra${openraSuffix}/launch-game.sh $(mkdirp $out/bin)/openra${openraSuffix} \
-      --run "cd $out/lib/openra${openraSuffix}"
+      --chdir "$out/lib/openra${openraSuffix}"
   '';
 
   packageAttrs = {
diff --git a/pkgs/games/openrct2/default.nix b/pkgs/games/openrct2/default.nix
index 4e07148761b7a..41c3ccac1f9f9 100644
--- a/pkgs/games/openrct2/default.nix
+++ b/pkgs/games/openrct2/default.nix
@@ -5,32 +5,32 @@
 }:
 
 let
-  openrct2-version = "0.3.5.1";
+  openrct2-version = "0.4.0";
 
   # Those versions MUST match the pinned versions within the CMakeLists.txt
   # file. The REPLAYS repository from the CMakeLists.txt is not necessary.
-  objects-version = "1.0.21";
-  title-sequences-version = "0.1.2c";
+  objects-version = "1.2.7";
+  title-sequences-version = "0.4.0";
 
   openrct2-src = fetchFromGitHub {
     owner = "OpenRCT2";
     repo = "OpenRCT2";
     rev = "v${openrct2-version}";
-    sha256 = "01v9nsabqjq8hjmyshcp7f5liagfq8sxx9i3yqqab7zk4iixag1h";
+    sha256 = "sha256-4MDOLOPsKzk1vb1o/G90/NTyYJWBSrGRX6ZJETbBIaI=";
   };
 
   objects-src = fetchFromGitHub {
     owner = "OpenRCT2";
     repo = "objects";
     rev = "v${objects-version}";
-    sha256 = "0r2vp2y67jc1mpfl4j83sx5khvvaddx7xs26ppkigmr2d1xpxgr7";
+    sha256 = "sha256-R4+rEdGdvYwFrkm/S3+zXmU+UDam51dI/pWKmFXNrbE=";
   };
 
   title-sequences-src = fetchFromGitHub {
     owner = "OpenRCT2";
     repo = "title-sequences";
     rev = "v${title-sequences-version}";
-    sha256 = "1qdrm4q75bznmgdrpjdaiqvbf3q4vwbkkmls45izxvyg1djrpsdf";
+    sha256 = "sha256-anqCZkhYoaxPu3MYCYSsFFngOmPp2wnx2MGb0hj6W5U=";
   };
 in
 stdenv.mkDerivation {
diff --git a/pkgs/games/opensupaplex/default.nix b/pkgs/games/opensupaplex/default.nix
index d3f8155f546c5..dc5d9aae690ce 100644
--- a/pkgs/games/opensupaplex/default.nix
+++ b/pkgs/games/opensupaplex/default.nix
@@ -4,7 +4,7 @@
 , fetchurl
 , makeDesktopItem
 , copyDesktopItems
-, testVersion
+, testers
 , opensupaplex
 , SDL2
 , SDL2_mixer
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = opensupaplex;
     command = "opensupaplex --help";
     version = "v${version}";
diff --git a/pkgs/games/osu-lazer/default.nix b/pkgs/games/osu-lazer/default.nix
index 2b1a2f044fa0f..bb006abad574c 100644
--- a/pkgs/games/osu-lazer/default.nix
+++ b/pkgs/games/osu-lazer/default.nix
@@ -9,22 +9,26 @@
 , SDL2
 , lttng-ust
 , numactl
+, dotnetCorePackages
 }:
 
 buildDotnetModule rec {
   pname = "osu-lazer";
-  version = "2022.205.0";
+  version = "2022.409.0";
 
   src = fetchFromGitHub {
     owner = "ppy";
     repo = "osu";
     rev = version;
-    sha256 = "sha256-CzXgj3990qWOwIjhbU8vO29nDO/7HrGDtsc67VIenPI=";
+    sha256 = "sha256-qG9797SA0iMq9IF5SzQLgnhoUd2FKSAVXUPem1LQc1M=";
   };
 
   projectFile = "osu.Desktop/osu.Desktop.csproj";
   nugetDeps = ./deps.nix;
 
+  dotnet-sdk = dotnetCorePackages.sdk_6_0;
+  dotnet-runtime = dotnetCorePackages.runtime_6_0;
+
   nativeBuildInputs = [ copyDesktopItems ];
 
   preConfigure = ''
diff --git a/pkgs/games/osu-lazer/deps.nix b/pkgs/games/osu-lazer/deps.nix
index 6ff9f6dfaf802..2ceafca07b015 100644
--- a/pkgs/games/osu-lazer/deps.nix
+++ b/pkgs/games/osu-lazer/deps.nix
@@ -1,150 +1,136 @@
 { fetchNuGet }: [
-  (fetchNuGet { pname = "AutoMapper"; version = "11.0.0"; sha256 = "1ni9mmrqfbspwf7xz6by5415ci5zhg15z3f7596qqpmbn8bqg7wq"; })
-  (fetchNuGet { pname = "DeltaCompressionDotNet"; version = "2.0.0.0"; sha256 = "0zhj7m3zaf9wcg51385in9qg1xgkvp8yyzgq3r5k4sagm7y68aqy"; })
-  (fetchNuGet { pname = "DiffPlex"; version = "1.7.0"; sha256 = "09a8hkbx99iwikfl8war629945yv7i8llj9480dbc4kyp6qqlr00"; })
+  (fetchNuGet { pname = "AutoMapper"; version = "11.0.1"; sha256 = "1z1x5c1dkwk6142km5q6jglhpq9x82alwjjy5a72c8qnq9ppdfg3"; })
+  (fetchNuGet { pname = "Clowd.Squirrel"; version = "2.8.28-pre"; sha256 = "0l4saz51pz8iwsbqj1c3zlf22hiab4vl671rby97kkfbjwv9ra4s"; })
+  (fetchNuGet { pname = "DiffPlex"; version = "1.7.1"; sha256 = "1q78r70pirgb7j5wkh454ws237lihh0fig212cpbj02cz53c2h6j"; })
   (fetchNuGet { pname = "DiscordRichPresence"; version = "1.0.175"; sha256 = "180sax976327d70qbinv07f65g3w2zbw80n49hckg8wd4rw209vd"; })
   (fetchNuGet { pname = "FFmpeg.AutoGen"; version = "4.3.0.1"; sha256 = "0n6x57mnnvcjnrs8zyvy07h5zm4bcfy9gh4n4bvd9fx5ys4pxkvv"; })
   (fetchNuGet { pname = "Fody"; version = "6.6.0"; sha256 = "0cx708ah61cxmvpaq040mhqwrv937rvlmskwihg1w118729k9yv0"; })
   (fetchNuGet { pname = "HidSharpCore"; version = "1.2.1.1"; sha256 = "1zkndglmz0s8rblfhnqcvv90rkq2i7lf4bc380g7z8h1avf2ikll"; })
-  (fetchNuGet { pname = "HtmlAgilityPack"; version = "1.11.40"; sha256 = "0k1cpkfgz4v5qigvmmvlk8lv2a731kqkmx6acf3rzr8rlj3cfnc4"; })
-  (fetchNuGet { pname = "Humanizer"; version = "2.13.14"; sha256 = "155g2700x6sbym2jd4dshm4rf3jjr8flx6w9xnw28zrrv7r2rdy8"; })
-  (fetchNuGet { pname = "Humanizer.Core"; version = "2.13.14"; sha256 = "1ni4mcyhcs46ih9b8c8l3xq3iai56rdlcw0afwhji3hxwbxqbk7i"; })
-  (fetchNuGet { pname = "Humanizer.Core"; version = "2.2.0"; sha256 = "08mzg65y9d3zvq16rsmpapcdan71ggq2mpks6k777h3wlm2sh3p5"; })
-  (fetchNuGet { pname = "Humanizer.Core.af"; version = "2.13.14"; sha256 = "0w7n9qfxlqayw2dwgajqjks5b2qxcy2853v5h0rbaq5r5yb84874"; })
-  (fetchNuGet { pname = "Humanizer.Core.ar"; version = "2.13.14"; sha256 = "1nxdh3hg9hkvi7q0ffaflb738kkdl0kmpry9jxdkkvg4mhrmfs2i"; })
-  (fetchNuGet { pname = "Humanizer.Core.az"; version = "2.13.14"; sha256 = "1rjhpbzy49rrf0mypkf7ksjlmx6iywdbra1caj1mr970gfm1j4zb"; })
-  (fetchNuGet { pname = "Humanizer.Core.bg"; version = "2.13.14"; sha256 = "101zwkys4w7dwwa7dzsc10gdrk6bnfmm3hqc09a4jvxj2p8i6hds"; })
-  (fetchNuGet { pname = "Humanizer.Core.bn-BD"; version = "2.13.14"; sha256 = "1d0flbhk4f0kc1dqzgqnimlp3gcj490qchrbl4yb4ilmsyaws0gm"; })
-  (fetchNuGet { pname = "Humanizer.Core.cs"; version = "2.13.14"; sha256 = "11hfxdpncbrbj9d779b24hw43sfpbjynmkxlv636sg532j5vd58g"; })
-  (fetchNuGet { pname = "Humanizer.Core.da"; version = "2.13.14"; sha256 = "0bfl1zx6x58i75l57k8xfky264hh2ziv068yx9w0zshil0d74iw5"; })
-  (fetchNuGet { pname = "Humanizer.Core.de"; version = "2.13.14"; sha256 = "1bhhmp9rza2p4j5zs11sk2xvrbbvckr1v8d97aramqzqmv4x20pd"; })
-  (fetchNuGet { pname = "Humanizer.Core.el"; version = "2.13.14"; sha256 = "1kym97876jspj72y9fhpc2y1jn3j12y5l95222r53mbrrpwz1m6p"; })
-  (fetchNuGet { pname = "Humanizer.Core.es"; version = "2.13.14"; sha256 = "0v5fmy7cjdk3bs13pi09v3g7sbmdnvijn0w8gnif0krmg2rdm2z7"; })
-  (fetchNuGet { pname = "Humanizer.Core.fa"; version = "2.13.14"; sha256 = "12m3d0cr9qa0f7sx58rqw835awi01j0frvbp1q796s6amlvhrcyc"; })
-  (fetchNuGet { pname = "Humanizer.Core.fi-FI"; version = "2.13.14"; sha256 = "0j8gl6kajazjw64xpf4ws5v6hv5dz43gnm0vcnfm5l2kizd87wxh"; })
-  (fetchNuGet { pname = "Humanizer.Core.fr"; version = "2.13.14"; sha256 = "053jcc9rdxxnwiccqmcxnvq40a4fm6h6lr0mlqdxjdfdj07s29i9"; })
-  (fetchNuGet { pname = "Humanizer.Core.fr-BE"; version = "2.13.14"; sha256 = "00xff7shwclns2v8mknwnh2y6ycfa9zj7ssgrkdyqa9k8ppq26dh"; })
-  (fetchNuGet { pname = "Humanizer.Core.he"; version = "2.13.14"; sha256 = "10qhxb6fin6w595f7h7nnfvvh5xi0vmca9ynsggq74rpjzgmvyzr"; })
-  (fetchNuGet { pname = "Humanizer.Core.hr"; version = "2.13.14"; sha256 = "1xgd3had8gsfy4l5835vn9ngr5i5ys38mggzmm4s6j1id49920g4"; })
-  (fetchNuGet { pname = "Humanizer.Core.hu"; version = "2.13.14"; sha256 = "0gfrkjp9c38c671d8rc468hphkixarjzss754rqsk4j5x1p13wml"; })
-  (fetchNuGet { pname = "Humanizer.Core.hy"; version = "2.13.14"; sha256 = "01691rwvrh6spks5jc1vcg961p1awy34ynkaxqlhr5d49dw5qgdd"; })
-  (fetchNuGet { pname = "Humanizer.Core.id"; version = "2.13.14"; sha256 = "177vbbn8q0xl2cdak4xyk38w4w8c1y2vlq9i2fm7va4x6awdyxjk"; })
-  (fetchNuGet { pname = "Humanizer.Core.is"; version = "2.13.14"; sha256 = "08d8zknnxlvbshlvlnj1m954ddf7khw1n24pphsa9i0brww9wxfv"; })
-  (fetchNuGet { pname = "Humanizer.Core.it"; version = "2.13.14"; sha256 = "0873ijf8cxm7skwp622ddnh8pdl30nlrwmil89icf67z3flis60d"; })
-  (fetchNuGet { pname = "Humanizer.Core.ja"; version = "2.13.14"; sha256 = "1bshhkiv57010zij7pcmm1709n0y4pk3kp9xx7ar3gnra3jmm6za"; })
-  (fetchNuGet { pname = "Humanizer.Core.ko-KR"; version = "2.13.14"; sha256 = "0rhq6471pjaypnh4k08y124i7sa6cj3i71v2frv66qpynl6hi0y0"; })
-  (fetchNuGet { pname = "Humanizer.Core.ku"; version = "2.13.14"; sha256 = "1ircd4lw3ryl3zzdv85wpk8by44rzhn4ln85ycml2b6a21arq1rw"; })
-  (fetchNuGet { pname = "Humanizer.Core.lv"; version = "2.13.14"; sha256 = "0y7m6zvns8wr0sy5ksjb51wrypgplfdwprz96xw1ajmdj4fjh9sr"; })
-  (fetchNuGet { pname = "Humanizer.Core.ms-MY"; version = "2.13.14"; sha256 = "1cpnjjgybh9dp9snq3r6wm3l4zy1ssjyb64bayjnd8770lpvyfjs"; })
-  (fetchNuGet { pname = "Humanizer.Core.mt"; version = "2.13.14"; sha256 = "0n5zjsq71nvxnhghsk321cqrwz7kf1jzfcq4vhsksyv7q9na74ak"; })
-  (fetchNuGet { pname = "Humanizer.Core.nb"; version = "2.13.14"; sha256 = "07b1fj3ac2wcj7ql1gc7vaa4q4dmyd0prj7bxr52z04ar3nxjlsc"; })
-  (fetchNuGet { pname = "Humanizer.Core.nb-NO"; version = "2.13.14"; sha256 = "0v1vljlzjlslj5y3c5xd2pbp1g29ghjd02s0z2bri5zk9zcgysvq"; })
-  (fetchNuGet { pname = "Humanizer.Core.nl"; version = "2.13.14"; sha256 = "15imi9m1lvfrx0fvfmlx74p8y59na2rkgdrbfyy3dvgvd74b9k5v"; })
-  (fetchNuGet { pname = "Humanizer.Core.pl"; version = "2.13.14"; sha256 = "06ix2xilgi7w7306hs4v41ai6jwank384cyz0885b53dic5kgq7r"; })
-  (fetchNuGet { pname = "Humanizer.Core.pt"; version = "2.13.14"; sha256 = "1qd1w1xrxap7nwmfl9yjx6z71r03p53kw8y4dnjn7xdn85xc7z4b"; })
-  (fetchNuGet { pname = "Humanizer.Core.ro"; version = "2.13.14"; sha256 = "1qifvw6y6g7014q0s8xaprsk79bqlgg0rmvbyn21qalc0ayab97v"; })
-  (fetchNuGet { pname = "Humanizer.Core.ru"; version = "2.13.14"; sha256 = "0wg4p84m9r6slbz9gxrjnidc1j7xfmwncpp14x3f86a37791rz61"; })
-  (fetchNuGet { pname = "Humanizer.Core.sk"; version = "2.13.14"; sha256 = "1qm0nsbw3z9n011fnnhyhzgpxyz41f01dxl13bs8mjzy0f1v3gvj"; })
-  (fetchNuGet { pname = "Humanizer.Core.sl"; version = "2.13.14"; sha256 = "1fhkjyxjk9icj705qysk8yc11hpdml2cjcxm7mfdv5z2f93sa4hz"; })
-  (fetchNuGet { pname = "Humanizer.Core.sr"; version = "2.13.14"; sha256 = "02f15q3i9npvvxwjyp14rxd8rlhd9qricrah3cmc8lw9fca26bb4"; })
-  (fetchNuGet { pname = "Humanizer.Core.sr-Latn"; version = "2.13.14"; sha256 = "0mnycpjl51cd4nz9kwijr66zrgxqjbcsp5jqgr660l4bq16yxjad"; })
-  (fetchNuGet { pname = "Humanizer.Core.sv"; version = "2.13.14"; sha256 = "13vdyrg1jp2al96w08vfkw5yjdqdnp7pksxz907i89w6cp9wbfvm"; })
-  (fetchNuGet { pname = "Humanizer.Core.th-TH"; version = "2.13.14"; sha256 = "0ganp6zjjj07lcpy9h88q2441f1lfv3a7mgncrqw36bliv37pr8m"; })
-  (fetchNuGet { pname = "Humanizer.Core.tr"; version = "2.13.14"; sha256 = "1sgfzh9dabdhhk5i97c0d13rz5yghcp2qpjidqsizpi2k8h8rl0r"; })
-  (fetchNuGet { pname = "Humanizer.Core.uk"; version = "2.13.14"; sha256 = "1ns33byx9p6fv6gffdxly3fm3wvjl6ndscribwr37134pa6nvqc9"; })
-  (fetchNuGet { pname = "Humanizer.Core.uz-Cyrl-UZ"; version = "2.13.14"; sha256 = "1qm27qz989nwnkpg26phi60qqahivssx906znwkldml2h2rz8k0g"; })
-  (fetchNuGet { pname = "Humanizer.Core.uz-Latn-UZ"; version = "2.13.14"; sha256 = "1hd2d7js8cng50ir56l8lhc9qc1rwzjvqrv98ly9ggnv8n63iiws"; })
-  (fetchNuGet { pname = "Humanizer.Core.vi"; version = "2.13.14"; sha256 = "0xh33ml7aspslj4gnbd7anjvp3463djhcc51bh2ji67rbw1an6rw"; })
-  (fetchNuGet { pname = "Humanizer.Core.zh-CN"; version = "2.13.14"; sha256 = "062wgs0qnhvikvfz37jmqw6sx7xwzs24ncl89paq3640id32aivd"; })
-  (fetchNuGet { pname = "Humanizer.Core.zh-Hans"; version = "2.13.14"; sha256 = "0s01h733ihxjg64bznjvnij76lflqfcmwznjwmd8p2axmn8688s0"; })
-  (fetchNuGet { pname = "Humanizer.Core.zh-Hant"; version = "2.13.14"; sha256 = "07xsdx8j1rhp712kwy8jx9ang6f9zljqrvaggf0ssj5zqbliz93p"; })
+  (fetchNuGet { pname = "HtmlAgilityPack"; version = "1.11.42"; sha256 = "0cvnc1qdfcjbqkh335bv4wp44zisb4hc69lq3zphiyzqfrjisnyb"; })
+  (fetchNuGet { pname = "Humanizer"; version = "2.14.1"; sha256 = "18cycx9gvbc3735chdi2r583x73m2fkz1ws03yi3g640j9zv00fp"; })
+  (fetchNuGet { pname = "Humanizer.Core"; version = "2.14.1"; sha256 = "1ai7hgr0qwd7xlqfd92immddyi41j3ag91h3594yzfsgsy6yhyqi"; })
+  (fetchNuGet { pname = "Humanizer.Core"; version = "2.8.26"; sha256 = "1v8xd12yms4qq1md4vh6faxicmqrvahqdd7sdkyzrphab9v44nsm"; })
+  (fetchNuGet { pname = "Humanizer.Core.af"; version = "2.14.1"; sha256 = "197lsky6chbmrixgsg6dvxbdbbpis0an8mn6vnwjcydhncis087h"; })
+  (fetchNuGet { pname = "Humanizer.Core.ar"; version = "2.14.1"; sha256 = "03rz12mxrjv5afm1hn4rrpimkkb8wdzp17634dcq10fhpbwhy6i5"; })
+  (fetchNuGet { pname = "Humanizer.Core.az"; version = "2.14.1"; sha256 = "138kdhy86afy5n72wy12qlb25q4034z73lz5nbibmkixxdnj9g5r"; })
+  (fetchNuGet { pname = "Humanizer.Core.bg"; version = "2.14.1"; sha256 = "0scwzrvv8332prijkbp4y11n172smjb4sf7ygia6bi3ibhzq7zjy"; })
+  (fetchNuGet { pname = "Humanizer.Core.bn-BD"; version = "2.14.1"; sha256 = "1322kn7ym46mslh32sgwkv07l3jkkx7cw5wjphql2ziphxw536p8"; })
+  (fetchNuGet { pname = "Humanizer.Core.cs"; version = "2.14.1"; sha256 = "1zl3vsdd2pw3nm05qpnr6c75y7gacgaghg9sj07ksvsjmklgqqih"; })
+  (fetchNuGet { pname = "Humanizer.Core.da"; version = "2.14.1"; sha256 = "10rmrvzwp212fpxv0sdq8f0sjymccsdn71k99f845kz0js83r70s"; })
+  (fetchNuGet { pname = "Humanizer.Core.de"; version = "2.14.1"; sha256 = "0j7kld0jdiqwin83arais9gzjj85mpshmxls64yi58qhl7qjzk0j"; })
+  (fetchNuGet { pname = "Humanizer.Core.el"; version = "2.14.1"; sha256 = "143q1321qh5506wwvcpy0fj7hpbd9i1k75247mqs2my05x9vc8n0"; })
+  (fetchNuGet { pname = "Humanizer.Core.es"; version = "2.14.1"; sha256 = "011kscy671mgyx412h55b0x9a1ngmdsgqzqq1w0l10xhf90y4hc8"; })
+  (fetchNuGet { pname = "Humanizer.Core.fa"; version = "2.14.1"; sha256 = "184dxwkf251c27h7gg9y5zciixgcwy1cmdrs0bqrph7gg69kp6yq"; })
+  (fetchNuGet { pname = "Humanizer.Core.fi-FI"; version = "2.14.1"; sha256 = "144jlnlipr3pnbcyhbgrd2lxibx8vy00lp2zn60ihxppgbisircc"; })
+  (fetchNuGet { pname = "Humanizer.Core.fr"; version = "2.14.1"; sha256 = "0klnfy8n659sp8zngd87gy7qakd56dwr1axjjzk0zph1zvww09jq"; })
+  (fetchNuGet { pname = "Humanizer.Core.fr-BE"; version = "2.14.1"; sha256 = "0b70illi4m58xvlqwcvar0smh6292zadzk2r8c25ryijh6d5a9qv"; })
+  (fetchNuGet { pname = "Humanizer.Core.he"; version = "2.14.1"; sha256 = "08xkiv88qqd1b0frpalb2npq9rvz2q1yz48k6dikrjvy6amggirh"; })
+  (fetchNuGet { pname = "Humanizer.Core.hr"; version = "2.14.1"; sha256 = "12djmwxfg03018j2bqq5ikwkllyma8k7zmvpw61vxs7cv4izc6wh"; })
+  (fetchNuGet { pname = "Humanizer.Core.hu"; version = "2.14.1"; sha256 = "0lw13p9b2kbqf96lif5kx59axxiahd617h154iswjfka9kxdw65x"; })
+  (fetchNuGet { pname = "Humanizer.Core.hy"; version = "2.14.1"; sha256 = "1bgm0yabhvsv70amzmkvf3mls32lvd7yyr59yxf3xc96msqczgjh"; })
+  (fetchNuGet { pname = "Humanizer.Core.id"; version = "2.14.1"; sha256 = "1w0bnyac46f2321l09ckb6vz66s1bxl27skfww1iwrmf03i7m2cw"; })
+  (fetchNuGet { pname = "Humanizer.Core.is"; version = "2.14.1"; sha256 = "10w1fprlhxm1qy3rh0qf6z86ahrv8fcza3wrsx55idlmar1x9jyz"; })
+  (fetchNuGet { pname = "Humanizer.Core.it"; version = "2.14.1"; sha256 = "1msrmih8cp7r4yj7r85kr0l5h4yln80450mivliy1x322dav8xz2"; })
+  (fetchNuGet { pname = "Humanizer.Core.ja"; version = "2.14.1"; sha256 = "04ry6z0v85y4y5vzbqlbxppfdm04i02dxbxaaykbps09rwqaa250"; })
+  (fetchNuGet { pname = "Humanizer.Core.ko-KR"; version = "2.14.1"; sha256 = "156641v0ilrpbzprscvbzfha57pri4y1i66n9v056nc8bm10ggbg"; })
+  (fetchNuGet { pname = "Humanizer.Core.ku"; version = "2.14.1"; sha256 = "1scz21vgclbm1xhaw89f0v8s0vx46yv8yk3ij0nr6shsncgq9f7h"; })
+  (fetchNuGet { pname = "Humanizer.Core.lv"; version = "2.14.1"; sha256 = "1909dsbxiv2sgj6myfhn8lbbmvkp2hjahj0knawypyq3jw9sq86g"; })
+  (fetchNuGet { pname = "Humanizer.Core.ms-MY"; version = "2.14.1"; sha256 = "1dmjrxb0kb297ycr8xf7ni3l7y4wdqrdhqbhy8xnm8dx90nmj9x5"; })
+  (fetchNuGet { pname = "Humanizer.Core.mt"; version = "2.14.1"; sha256 = "0b183r1apzfa1hasimp2f27yfjkfp87nfbd8qdyrqdigw6nzcics"; })
+  (fetchNuGet { pname = "Humanizer.Core.nb"; version = "2.14.1"; sha256 = "12rd75f83lv6z12b5hbwnarv3dkk29pvc836jpg2mzffm0g0kxj2"; })
+  (fetchNuGet { pname = "Humanizer.Core.nb-NO"; version = "2.14.1"; sha256 = "1n033yfw44sjf99mv51c53wggjdffz8b9wv7gwm3q7i6g7ck4vv1"; })
+  (fetchNuGet { pname = "Humanizer.Core.nl"; version = "2.14.1"; sha256 = "0q4231by40bsr6mjy93n0zs365pz6da32pwkxcz1cc2hfdlkn0vd"; })
+  (fetchNuGet { pname = "Humanizer.Core.pl"; version = "2.14.1"; sha256 = "0h2wbwrlcmjk8b2mryyd8rbb1qmripvg0zyg61gg0hifiqfg3cr2"; })
+  (fetchNuGet { pname = "Humanizer.Core.pt"; version = "2.14.1"; sha256 = "0pg260zvyhqz8h1c96px1vs9q5ywvd0j2ixsq21mj96dj7bl5fay"; })
+  (fetchNuGet { pname = "Humanizer.Core.ro"; version = "2.14.1"; sha256 = "04mr28bjcb9hs0wmpb4nk2v178i0fjr0ymc78dv9bbqkmrzfsmcn"; })
+  (fetchNuGet { pname = "Humanizer.Core.ru"; version = "2.14.1"; sha256 = "060abvk7mrgawipjgw0h4hrvizby7acmj58w2g35fv54g43isgcl"; })
+  (fetchNuGet { pname = "Humanizer.Core.sk"; version = "2.14.1"; sha256 = "182xiqf71kiqp42b8yqrag6z57wzqraqi10bnhx0crrc1gxq8v0j"; })
+  (fetchNuGet { pname = "Humanizer.Core.sl"; version = "2.14.1"; sha256 = "12ygvzyqa0km7a0wz42zssq8qqakvghh96x1ng7qvwcrna3v2rdi"; })
+  (fetchNuGet { pname = "Humanizer.Core.sr"; version = "2.14.1"; sha256 = "1ggj15qksyr16rilq2w76x38bxp6a6z75b30c9b7w5ni88nkgc7x"; })
+  (fetchNuGet { pname = "Humanizer.Core.sr-Latn"; version = "2.14.1"; sha256 = "0lwr0gnashirny8lgaw0qnbb7x0qrjg8fs11594x8l7li3mahzz3"; })
+  (fetchNuGet { pname = "Humanizer.Core.sv"; version = "2.14.1"; sha256 = "1c7yx59haikdqx7k7vqll6223jjmikgwbl3dzmrcs3laywgfnmgn"; })
+  (fetchNuGet { pname = "Humanizer.Core.th-TH"; version = "2.14.1"; sha256 = "0kyyi5wc23i2lcag3zvrhga9gsnba3ahl4kdlaqvvg2jhdfarl4m"; })
+  (fetchNuGet { pname = "Humanizer.Core.tr"; version = "2.14.1"; sha256 = "0rdvp0an263b2nj3c5v11hvdwgmj86ljf2m1h3g1x28pygbcx6am"; })
+  (fetchNuGet { pname = "Humanizer.Core.uk"; version = "2.14.1"; sha256 = "0a2p6mhh0ajn0y7x98zbfasln1l04iiknd50sgf3svna99wybnxd"; })
+  (fetchNuGet { pname = "Humanizer.Core.uz-Cyrl-UZ"; version = "2.14.1"; sha256 = "1jfzfgnk6wz5na2md800vq0djm6z194x618yvwxbnk2c7wikbjj2"; })
+  (fetchNuGet { pname = "Humanizer.Core.uz-Latn-UZ"; version = "2.14.1"; sha256 = "0vimhw500rq60naxfari8qm6gjmjm8h9j6c04k67fs447djy8ndi"; })
+  (fetchNuGet { pname = "Humanizer.Core.vi"; version = "2.14.1"; sha256 = "1yr0l73cy2qypkssmmjwfbbqgdplam62dqnzk9vx6x47dzpys077"; })
+  (fetchNuGet { pname = "Humanizer.Core.zh-CN"; version = "2.14.1"; sha256 = "1k6nnawd016xpwgzdzy84z1lcv2vc1cygcksw19wbgd8dharyyk7"; })
+  (fetchNuGet { pname = "Humanizer.Core.zh-Hans"; version = "2.14.1"; sha256 = "0zn99311zfn602phxyskfjq9vly0w5712z6fly8r4q0h94qa8c85"; })
+  (fetchNuGet { pname = "Humanizer.Core.zh-Hant"; version = "2.14.1"; sha256 = "0qxjnbdj645l5sd6y3100yyrq1jy5misswg6xcch06x8jv7zaw1p"; })
   (fetchNuGet { pname = "JetBrains.Annotations"; version = "2021.3.0"; sha256 = "01ssylllbwpana2w3iybi533zlvcsbhzjc8kr0g4kg307kjbfn8v"; })
+  (fetchNuGet { pname = "managed-midi"; version = "1.9.14"; sha256 = "025jh146zy98699y4civ7nxlkx312lwkl4sr8pha626q7q1kg89h"; })
   (fetchNuGet { pname = "ManagedBass"; version = "3.1.0"; sha256 = "0p4kzpq86h00z7rwzmwxyk1yg627mm5376ssjv1wgqgls0dl7gkh"; })
   (fetchNuGet { pname = "ManagedBass.Fx"; version = "3.1.0"; sha256 = "130rrf6sb64dcq58mr1gigma3pzr7hg5mxn5fbryg375x3vphbs8"; })
   (fetchNuGet { pname = "ManagedBass.Mix"; version = "3.1.0"; sha256 = "1ppxczh1i67k5xicr0q4n0k7zdzghs99wwkcpjmh726hkdsshnib"; })
-  (fetchNuGet { pname = "managed-midi"; version = "1.9.14"; sha256 = "025jh146zy98699y4civ7nxlkx312lwkl4sr8pha626q7q1kg89h"; })
   (fetchNuGet { pname = "Markdig"; version = "0.23.0"; sha256 = "1bwn885w7balwncmr764vidyyp9bixqlq6r3lhsapj8ykrpxxa70"; })
   (fetchNuGet { pname = "MessagePack"; version = "2.3.85"; sha256 = "0n7kv4i6knhv1dd35cv45sfpidsiy9albfdmbrdschykd1mzxmiy"; })
   (fetchNuGet { pname = "MessagePack.Annotations"; version = "2.3.85"; sha256 = "0axjgy9r533bw00lflnc6acjyza76mf2x1nn6fw7qacvak9rqxm3"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "5.0.12"; sha256 = "1asph5v7kgmscfgsyv9gg7cwvg52gnm6m0ldm2m4pfkpsxqyp2mi"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.Connections.Abstractions"; version = "5.0.11"; sha256 = "0x6c6m8s4mq1j21sys8j1xp8sqvy5n3shcpcm0yyx4r2ld2cpdkr"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Connections.Client"; version = "5.0.11"; sha256 = "1b60rhlbn8s4c39nl2kb1xfq0m3kzy407hdvz2s5r9qc8y9p55ps"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Connections.Common"; version = "5.0.11"; sha256 = "1rq6lildicnz6ngrf1m46ynya0hbn0hzazdqp6c3lkmkw3pgd8wp"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Features"; version = "5.0.11"; sha256 = "0n09fldmy60ggffznfwzr99hfpa0p9qxq4hp2zy4j94cmqkqm1pg"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Client"; version = "5.0.11"; sha256 = "1iyxkr2lks5xfay4h70z94dnjm5dpbygyyi9krrx1lin1na235ly"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Client.Core"; version = "5.0.11"; sha256 = "13hpp6sq0ad56v1l09gq4mnmj5y1f9lykd2x12hjrdpk3g7gqdix"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Common"; version = "5.0.11"; sha256 = "1vsskslaz7428f13q0hjf81hvfxip9wsc53z5j37ysk9qmixlnyd"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Protocols.Json"; version = "5.0.11"; sha256 = "0vdr2n9lfjybkv0m21lhpnxv0shlyfnyffv32vziiglhssdza15g"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Protocols.MessagePack"; version = "5.0.11"; sha256 = "0w60z54wxv1nndv7mz9rqswdh8k4rxmgihnxkirp4gr0idr7ln7j"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson"; version = "5.0.11"; sha256 = "1qrmrkdrzm4bn5zq6a1dk88rpb6pajcs6jh23h43yny68y80jcnr"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.4"; sha256 = "1fvv5ri32pbl43628zqnim6fbv6hjxf66p0v793xdh57dzkdyh0j"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Connections.Abstractions"; version = "6.0.3"; sha256 = "0mc84qjsbsi7m1yx42w4zh8bdkqyqlvvx9iw80g4wsbrflkq5pwi"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Connections.Client"; version = "6.0.3"; sha256 = "1vadkmcxj2nv01mg8027z0ywxk2fddyj5aqflanslbfclsz4779i"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Connections.Common"; version = "6.0.3"; sha256 = "11a5w8p0nkfyp21aafpmrf0lvjpbg2p4yqay4dxbjg0w99w2kwq6"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Client"; version = "6.0.3"; sha256 = "00kga3smvhc3a1hvv174wk3av6pn83diyrq8hz4fgww4qazzq2h9"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Client.Core"; version = "6.0.3"; sha256 = "02bsa301vznnysc8slapanwnzs382fc0hasvb6p053llayw7j3if"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Common"; version = "6.0.3"; sha256 = "11s22x9gr6yv705cb9pbgkak8vm9vgarr7y062vrnm0ys1spw5pf"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Protocols.Json"; version = "6.0.3"; sha256 = "0h0wqfd6m8qjx0x0pyikisglqhzswpr1lz0mv4y6lj0mkq88ndc8"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Protocols.MessagePack"; version = "6.0.3"; sha256 = "0rg93blnrg4aja1xsys3y90qrd3i11ljhsdpbmxl5jiimy2ldqml"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson"; version = "6.0.3"; sha256 = "135yyj40z3azacl2zrrciy7n3dhc5y98jacv9lpv4am0ik9lgv72"; })
   (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "1.0.0"; sha256 = "00dx5armvkqjxvkldz3invdlck9nj7w21dlsr2aqp1rqbyrbsbbh"; })
   (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "5.0.0"; sha256 = "0cp5jbax2mf6xr3dqiljzlwi05fv6n9a35z337s92jcljiq674kf"; })
-  (fetchNuGet { pname = "Microsoft.Build.Framework"; version = "16.5.0"; sha256 = "1xgr02r7s9i6s70n237hss4yi9zicssia3zd2ny6s8vyxb7jpdyb"; })
-  (fetchNuGet { pname = "Microsoft.Build.Locator"; version = "1.4.1"; sha256 = "0j119rri7a401rca67cxdyrn3rprzdl1b2wrblqc23xsff1xvlrx"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.2"; sha256 = "162vb5894zxps0cf5n9gc08an7gwybzz87allx3lsszvllr9ldx4"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "6.0.0"; sha256 = "15gqy2m14fdlvy1g59207h5kisznm355kbw010gy19vh47z8gpz3"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.BannedApiAnalyzers"; version = "3.3.3"; sha256 = "1z6x0d8lpcfjr3sxy25493i17vvcg5bsay6c03qan6mnj5aqzw2k"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.11.0"; sha256 = "0pwidgg4ifm7cirdy3hf61dyvg6lk4vgb6q7lyb4y0h0b6mvkrcl"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "3.11.0"; sha256 = "1h16b7dsp1mq7d7picyfhkssqr6xiyywi5x1fd4jwclyrvanyl81"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Workspaces"; version = "3.11.0"; sha256 = "16myshcix4a37c4vlig4gi9jnhb6p6py171xgn6b0ab6wz020r71"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.NetAnalyzers"; version = "5.0.3"; sha256 = "1l0zg9wl8yapjq9g2d979zhsmdkr8kfybmxnl7kvgkgldf114fbg"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Workspaces.Common"; version = "3.11.0"; sha256 = "07iaqjdhp55cw3y159i3h4j30l9s69gn5q6rv08bkizv8yk7yhls"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Workspaces.MSBuild"; version = "3.11.0"; sha256 = "0jmcjx37b3649b16kisg9pjmz3m86pba9b1p1y0vlq1r4hyzvn3m"; })
-  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.5.0"; sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
-  (fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "2.2.6"; sha256 = "0fx8698k71vzr8pdc6q8bsbzg6r8a42s4hkzmiyv13ibmyb5q68k"; })
+  (fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "5.0.14"; sha256 = "0zh5g6275sx0zrlyqxymcw9rd78ygisc4wqzvrq5gkh557nrqr0n"; })
   (fetchNuGet { pname = "Microsoft.Diagnostics.NETCore.Client"; version = "0.2.61701"; sha256 = "1ic1607jj4ln8dbibf1fz5v9svk9x2kqlgvhndc6ijaqnbc4wcr1"; })
   (fetchNuGet { pname = "Microsoft.Diagnostics.Runtime"; version = "2.0.161401"; sha256 = "02qcm8nv1ch07g8b0i60ynrjn33b8y5ivyk4rxal3vd9zfi6pvwi"; })
-  (fetchNuGet { pname = "Microsoft.DotNet.PlatformAbstractions"; version = "2.1.0"; sha256 = "1qydvyyinj3b5mraazjal3n2k7jqhn05b6n1a2f3qjkqkxi63dmy"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore"; version = "2.2.6"; sha256 = "18j2cr50wsikwv7gy3vrjvmpdxckvv537qma8afdpr3yn2klayh5"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Abstractions"; version = "2.2.6"; sha256 = "1dyxb5ibx24frlgbqy7zch0falq9p1189zvlbxgl94m0hvpml5j3"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Analyzers"; version = "2.2.6"; sha256 = "10f2lxxmh0xrdjvnam31fqfnjkaick23mpfvahj3ca5l07bph0rc"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Design"; version = "2.2.6"; sha256 = "0kjjkh1yfb56wnkmciqzfn9vymqfjap364y5amia0lmqmhfz8g7f"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Relational"; version = "2.2.6"; sha256 = "0c0z4mrqldjfslyxywb2ydk8hn9ybhkvz6lxx3idrfalq3ni5f1z"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite"; version = "2.2.6"; sha256 = "0z8k5ns841imaqha5abb1ka0rsfzy90k6qkrvix11sp6k9i7lsam"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite.Core"; version = "2.2.6"; sha256 = "0jzqw4672mzxjvzas09sl0zyzzayfgkv003a7bw5g2gjyiphf630"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Caching.Abstractions"; version = "2.2.0"; sha256 = "0hhxc5dp52faha1bdqw0k426zicsv6x1kfqi30m9agr0b2hixj52"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Caching.Memory"; version = "2.2.0"; sha256 = "0bzrsn5vas86w66bd04xilnlb21nx4l6lz7d3acvy6y8ir2vb5dv"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "2.2.0"; sha256 = "02250qrs3jqqbggfvd0mkim82817f79x6jh8fx2i7r58d0m66qkl"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "2.2.0"; sha256 = "1fv5277hyhfqmc0gqszyqb1ilwnijm8kc9606yia6hwr8pxyg674"; })
+  (fetchNuGet { pname = "Microsoft.DotNet.PlatformAbstractions"; version = "3.1.6"; sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore"; version = "5.0.14"; sha256 = "0r2a2lk11g2qx6s1nns3jnxhpifg60qs4lqz6qfcjfg24nw2lp2b"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Abstractions"; version = "5.0.14"; sha256 = "1sbv1bysybbn5s7kzmxy0rc4khwxj598ajdgz533d6vj66y7v4f2"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Analyzers"; version = "5.0.14"; sha256 = "0vfc5dv1bc1ghv87rpq581jxy4vyfscdw943jrb0gbgcsbbbkw5s"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Design"; version = "5.0.14"; sha256 = "0lbbj3lixrplq01kgg5i7siayh7jqrld0cmmylhkgncj45jkk4d5"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Relational"; version = "5.0.14"; sha256 = "08008jsk46a6lvz2jjj5rjp6g69r1d4zfdwnff9z1nyi99hnsm5h"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite"; version = "5.0.14"; sha256 = "0x02b0x7gwgq2dymkxcw8qs6fcaxbkv3xckqfhc0amsi6ygcia8f"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite.Core"; version = "5.0.14"; sha256 = "0ps8f58nw0xl3mh49a772fc38nsiv7jicg8rbr70rdpls02i3biq"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Caching.Abstractions"; version = "5.0.0"; sha256 = "0j83zapqhgqb4v5f6kn891km095pfhvsqha357a86ccclmv2czvb"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Caching.Memory"; version = "5.0.0"; sha256 = "0l8spndl3kvccjlay202msm31iy5iig0i9ddbsdy92wbcjr97lca"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "5.0.0"; sha256 = "0fqxkc9pjxkqylsdf26s9q21ciyk56h1w33pz3v1v4wcv8yv1v6k"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "2.2.0"; sha256 = "10qyjdkymdmag3r807kvbnwag4j3nz65i4cwikbd77jjvz92ya3j"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "2.2.0"; sha256 = "0lvv45rvq1xbf47lz818rjydc776zk8mf7svpzh1dml4qwlx9zck"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "6.0.0"; sha256 = "0w6wwxv12nbc3sghvr68847wc9skkdgsicrz3fx4chgng1i3xy0j"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "5.0.2"; sha256 = "0db6d1b076nfqfn5mhy63l3gkfn5kr29hwcrx81ldr7y062r1b9y"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "6.0.0"; sha256 = "1wlhb2vygzfdjbdzy7waxblmrx0q3pdcqvpapnpmq9fcx5m8r6w1"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "6.0.0-rc.1.21451.13"; sha256 = "0r6945jq7c2f1wjifq514zvngicndjqfnsjya6hqw0yzah0jr56c"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.2.0"; sha256 = "1jyzfdr9651h3x6pxwhpfbb9mysfh8f8z1jvy4g117h9790r9zx5"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "5.0.0"; sha256 = "17cz6s80va0ch0a6nqa1wbbbp3p8sqxb96lj4qcw67ivkp2yxiyj"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "6.0.0"; sha256 = "1vi67fw7q99gj7jd64gnnfr4d2c0ijpva7g9prps48ja6g91x6a9"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "6.0.0-rc.1.21451.13"; sha256 = "11dg16x6g0gssb143qpghxz1s41himvhr7yhjwxs9hacx4ij2dm1"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "2.1.0"; sha256 = "0dl4qhjgifm6v3jsfzvzkvddyic77ggp9fq49ah661v45gk6ilgd"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "2.2.0"; sha256 = "0bx3ljyvvcbikradq2h583rl72h8bxdz33aghk026cxzpv2mm3wm"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "5.0.0"; sha256 = "1mma1zxi0b40972cwfvkj9y0w9r7vjbi74784jzcb22pric00k5x"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Features"; version = "6.0.3"; sha256 = "0y7ja54mhqgwyimnzx6hnv0jcg06if0a5a78qh2n4djp1q8iqjpp"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "5.0.0"; sha256 = "1qa1l18q2jh9azya8gv1p8anzcdirjzd9dxxisb4911i9m1648i3"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "2.2.0"; sha256 = "02w7hp6jicr7cl5p456k2cmrjvvhm6spg5kxnlncw3b72358m5wl"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "6.0.0"; sha256 = "0fd9jii3y3irfcwlsiww1y9npjgabzarh33rn566wpcz24lijszi"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "5.0.0"; sha256 = "1yza38675dbv1qqnnhqm23alv2bbaqxp0pb7zinjmw8j2mr5r6wc"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "6.0.0"; sha256 = "0b75fmins171zi6bfdcq1kcvyrirs8n91mknjnxy4c3ygi1rrnj0"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "6.0.1"; sha256 = "17w4x7iakwpn7crg4yk5qkkv5gkx0lfl6anwwhb1554pwak5cwdz"; })
   (fetchNuGet { pname = "Microsoft.Extensions.ObjectPool"; version = "5.0.11"; sha256 = "0i7li76gmk6hml12aig4cvyvja9mgl16qr8pkwvx5vm6lc9a3nn4"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "2.2.0"; sha256 = "1b20yh03fg4nmmi3vlf6gf13vrdkmklshfzl3ijygcs4c2hly6v0"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "5.0.0"; sha256 = "1rdmgpg770x8qwaaa6ryc27zh93p697fcyvn5vkxp0wimlhqkbay"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "2.2.0"; sha256 = "0znah6arbcqari49ymigg3wiy2hgdifz8zsq8vdc3ynnf45r7h0c"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "6.0.0"; sha256 = "008pnk2p50i594ahz308v81a41mbjz9mwcarqhmrjpl2d20c868g"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "5.0.0"; sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "5.0.1"; sha256 = "01ar5ba2sal9wnpa1xnnikhgb37vzhg2cspz45wf760jflpai2vv"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "5.0.12"; sha256 = "1fdbrjrmjd31y1amp0inlmki9w3fwzv8nz41pqmc943g3cpmyg9f"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "6.0.0"; sha256 = "1kjiw6s4yfz9gm7mx3wkhp06ghnbs95icj9hi505shz9rjrg42q2"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.4"; sha256 = "1gibwhplbanv6bz3l71w8vhzlgqsh21bms30dbf1n60v7p02fl3h"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.1.2"; sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "3.1.0"; sha256 = "04cc2wl90p7g9zscnxgyj55vzl7srrrjwadl2dxgicfb2x2499ca"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "5.0.0"; sha256 = "0z3qyv7qal5irvabc8lmkh58zsl42mrzd1i0sssvzhv4q4kl3cg6"; })
-  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.0.1"; sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
   (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.5.0"; sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q"; })
   (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
   (fetchNuGet { pname = "MongoDB.Bson"; version = "2.11.3"; sha256 = "0fn900i51rwgk3ywpcp4dsf7c9v5glch7hia9l9w8aj8s10qjf1r"; })
-  (fetchNuGet { pname = "Mono.Cecil"; version = "0.9.6.1"; sha256 = "1fr7969h5q611l5227xw6nvv5rzap76vbpk0wg9hxbcxk3hn7szf"; })
   (fetchNuGet { pname = "Mono.Posix.NETStandard"; version = "1.0.0"; sha256 = "0xlja36hwpjm837haq15mjh2prcf68lyrmn72nvgpz8qnf9vappw"; })
-  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.0"; sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k"; })
   (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
   (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.0"; sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy"; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "12.0.2"; sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
-  (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
   (fetchNuGet { pname = "NuGet.Common"; version = "5.11.0"; sha256 = "1amf6scr5mcjdvd1fflag6i4qjwmydq5qwp6g3f099n901zq0dr3"; })
   (fetchNuGet { pname = "NuGet.Configuration"; version = "5.11.0"; sha256 = "1s9pbrh7xy9jz7npz0sahdsj1cw8gfx1fwf3knv0ms1n0c9bk53l"; })
   (fetchNuGet { pname = "NuGet.DependencyResolver.Core"; version = "5.11.0"; sha256 = "0yllxfv8lx1b7zj114mpxw03186q5ynsdvza6llp3wypxp367inr"; })
@@ -159,26 +145,38 @@
   (fetchNuGet { pname = "OpenTabletDriver.Configurations"; version = "0.6.0.2"; sha256 = "18q6gjayqrwk6n1kf359z94z8zyb3yz4hr1dpgglk51sq6wi2z84"; })
   (fetchNuGet { pname = "OpenTabletDriver.Native"; version = "0.6.0.2"; sha256 = "12hf4v8j8asc9wlywpykajb8yrzx10w6h11qbykckmrfxvz8pc0a"; })
   (fetchNuGet { pname = "OpenTabletDriver.Plugin"; version = "0.6.0.2"; sha256 = "0z2n5jysw06zp2cxmfqddbg3g88jdm1irr2hv04q8valq0plaq5c"; })
-  (fetchNuGet { pname = "ppy.LocalisationAnalyser"; version = "2021.1210.0"; sha256 = "0dn6fc31yllr5nizylvkfl2b603b5m9694nsn5mmkh8w43h0rkbq"; })
-  (fetchNuGet { pname = "ppy.osu.Framework"; version = "2022.204.0"; sha256 = "1dwg45k1qhxj4mhxw49djmab800yi7z7qnvl8ipicli4lg9k5lvf"; })
-  (fetchNuGet { pname = "ppy.osu.Framework.NativeLibs"; version = "2021.1221.0"; sha256 = "1ffxp4nsgbqw1f6nypirmc0a3h203qikbmxm2x8w3kgcfga5dx3k"; })
-  (fetchNuGet { pname = "ppy.osu.Game.Resources"; version = "2022.204.0"; sha256 = "1v4kfphjbkcxswx11c7xh93jwpsyvnskc0zia91d5bp5d11y3z32"; })
+  (fetchNuGet { pname = "ppy.LocalisationAnalyser"; version = "2022.320.0"; sha256 = "1sjam1mskkcilngrbjah74j1nwjgb9vr2j09sj6ip2hic216hzcf"; })
+  (fetchNuGet { pname = "ppy.osu.Framework"; version = "2022.408.0"; sha256 = "1nkgsd14dwdq9xkx7c6c4fd6zfxwbrfk9cddp33s31xs6sppxn9c"; })
+  (fetchNuGet { pname = "ppy.osu.Framework.NativeLibs"; version = "2022.222.0"; sha256 = "13qkpkrqxvd6xz676f9wzzjwm7d6iq1h24x7d1q4bab0q4wfqj5c"; })
+  (fetchNuGet { pname = "ppy.osu.Game.Resources"; version = "2022.407.0"; sha256 = "0mnjfradvs49awfgn84nc5iqwaai08q7i8zm0clphf5dj8dx5w1v"; })
   (fetchNuGet { pname = "ppy.osuTK.NS20"; version = "1.0.187"; sha256 = "0ididsxn3005dvs0hvx7bz2xzjsfpa8kmnyfqq4c2ybjxlx15gkw"; })
   (fetchNuGet { pname = "ppy.SDL2-CS"; version = "1.0.501-alpha"; sha256 = "03ixv0nhszsyyf0bvyd25nkyn3c3cndzbxnva19lagvf0l9gnvjg"; })
-  (fetchNuGet { pname = "ppy.squirrel.windows"; version = "1.9.0.5"; sha256 = "0nmhrg3q6izapfpwdslq80fqkvjj12ad9r94pd0nr2xx1zw0x1zl"; })
-  (fetchNuGet { pname = "Realm"; version = "10.8.0"; sha256 = "1ixpms8x9z5ia9yiqvhmgdlcrjvqrhbqnr8b9z6mlxwcms1z2f45"; })
-  (fetchNuGet { pname = "Realm.Fody"; version = "10.8.0"; sha256 = "0hj3cqan96y01k5qgs0knkqzg3rlr2794az68xqffd2vqphvqvqq"; })
+  (fetchNuGet { pname = "Realm"; version = "10.10.0"; sha256 = "0dgcirbrn0idxmrnl9rw8mi3irkxz75cqnxbxwnb8m34jv2g8gfy"; })
+  (fetchNuGet { pname = "Realm.Fody"; version = "10.10.0"; sha256 = "1sip0q0qiscf77qqm32a1hiwkn67c31yljkajwnxkp35dhz78140"; })
   (fetchNuGet { pname = "Remotion.Linq"; version = "2.2.0"; sha256 = "1y46ni0xswmmiryp8sydjgryafwn458dr91f9xn653w73kdyk4xf"; })
+  (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
+  (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
+  (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
+  (fetchNuGet { pname = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; })
+  (fetchNuGet { pname = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201"; })
+  (fetchNuGet { pname = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"; })
+  (fetchNuGet { pname = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime"; version = "4.3.0"; sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"; })
+  (fetchNuGet { pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; })
+  (fetchNuGet { pname = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; })
+  (fetchNuGet { pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; })
+  (fetchNuGet { pname = "runtime.any.System.Threading.Timer"; version = "4.3.0"; sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086"; })
   (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
   (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
   (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
-  (fetchNuGet { pname = "runtime.native.System"; version = "4.0.0"; sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf"; })
   (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
-  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.1.0"; sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk"; })
   (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
-  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.0.1"; sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6"; })
   (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
-  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography"; version = "4.0.0"; sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9"; })
   (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
   (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
   (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
@@ -189,92 +187,73 @@
   (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
   (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
   (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
-  (fetchNuGet { pname = "Sentry"; version = "3.13.0"; sha256 = "0wnivy7rhzghr94pdczv7kw72y1hv5kp6hw0fkmw1nfgnsh4qjfm"; })
-  (fetchNuGet { pname = "SharpCompress"; version = "0.17.1"; sha256 = "1ffiacghbcnr3fkgvdcad7b1nky54nhmmn2sm43sks9zm8grvva4"; })
+  (fetchNuGet { pname = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; })
+  (fetchNuGet { pname = "runtime.unix.System.Console"; version = "4.3.0"; sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80"; })
+  (fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; })
+  (fetchNuGet { pname = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; })
+  (fetchNuGet { pname = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4"; })
+  (fetchNuGet { pname = "runtime.unix.System.Net.Sockets"; version = "4.3.0"; sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12"; })
+  (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
+  (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
+  (fetchNuGet { pname = "Sentry"; version = "3.14.1"; sha256 = "1cpmh00k5dii61i3x7f6zln7077k0cscdcxg5izw6zq250vxxhyh"; })
   (fetchNuGet { pname = "SharpCompress"; version = "0.30.1"; sha256 = "1hib2hxjrlikwsczym1qn2slaapgjw8qzd8gmid8bryaz8hv044h"; })
   (fetchNuGet { pname = "SharpFNT"; version = "2.0.0"; sha256 = "1bgacgh9hbck0qvji6frbb50sdiqfdng2fvvfgfw8b9qaql91mx0"; })
-  (fetchNuGet { pname = "SixLabors.ImageSharp"; version = "1.0.4"; sha256 = "0fmgn414my76gjgp89qlc210a0lqvnvkvk2fcwnpwxdhqpfvyilr"; })
-  (fetchNuGet { pname = "Splat"; version = "1.6.2"; sha256 = "154w9q0z8697rcpqs4x233crx5ap1z4pl4xc21hsd3csbhw13ykf"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.bundle_green"; version = "1.1.12"; sha256 = "0jbyd25ag15fyn9nawjikv0v5ylk2zh5pxgr6gm4kpbpqys86sq9"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "1.1.12"; sha256 = "03gflsn2wl6v0a8zvh6y5xdhx0xxmfrn6jfldiy829x3fx74zgdl"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3.linux"; version = "1.1.12"; sha256 = "10mlq914d3zggdjf4bv27w6jx0gqqjf6f91y5ri6pbvaqyhi28h5"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3.osx"; version = "1.1.12"; sha256 = "1hixg6n9sqllfrcihj145lh1l38inv827808difvazd4zr3mi0z1"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3.v110_xp"; version = "1.1.12"; sha256 = "107sivk5p38dg1kyvqrxgp67dj89s8l6brf9l52k6s4vrn4hrrk7"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlite3.netstandard11"; version = "1.1.12"; sha256 = "0qr2d7ka6f5c7bybdhiyq7nl90c9575szmi0nfpknd9c0w024if4"; })
-  (fetchNuGet { pname = "StbiSharp"; version = "1.0.13"; sha256 = "0yaspwlh4x93d7xnqj5w5pxlwzlv9lixvksyvdh176krfa4mjw3q"; })
-  (fetchNuGet { pname = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
+  (fetchNuGet { pname = "SixLabors.ImageSharp"; version = "2.1.0"; sha256 = "0lmj3qs39v5jcf2rjwav43nqnc7g6sd4l226l2jw85nidzmpvkwr"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.bundle_e_sqlite3"; version = "2.0.4"; sha256 = "1l3vbkwismsx5jcy3d5bj4bzh8bni8bk2gq4lqplz82pz5phjpxm"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.0.4"; sha256 = "0lb5vwfl1hd24xzzdaj2p4k2hv2k0i3mgdri6fjj0ssb37mcyir1"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.0.4"; sha256 = "0kmx1w5qllmwxldr8338qxwmpfzc6g2lmyrah7wfaxd3mvfzky5c"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.provider.dynamic_cdecl"; version = "2.0.4"; sha256 = "084r98kilpm0q1aw41idq8slncpd7cz65g0m1wr0p8d12x8z5g6j"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlite3"; version = "2.0.4"; sha256 = "1vm8w8xvqi11sihdz5s6y4w7ghq4pp5f2ksixdhlbycvs6m4h7i7"; })
+  (fetchNuGet { pname = "StbiSharp"; version = "1.1.0"; sha256 = "0wbw20m7nyhxj32k153l668sxigamlwig0qpz8l8d0jqz35vizm0"; })
   (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
-  (fetchNuGet { pname = "System.Buffers"; version = "4.0.0"; sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr"; })
   (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
   (fetchNuGet { pname = "System.Buffers"; version = "4.4.0"; sha256 = "183f8063w8zqn99pv0ni0nnwh7fgx46qzxamwnans55hhs2l0g19"; })
   (fetchNuGet { pname = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; })
   (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
   (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
-  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; })
   (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.5.0"; sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.7.1"; sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
-  (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; })
   (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "5.0.0"; sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j"; })
-  (fetchNuGet { pname = "System.Composition"; version = "1.0.31"; sha256 = "0aa27jz73qb0xm6dyxv22qhfrmyyqjyn2dvvsd9asi82lcdh9i61"; })
-  (fetchNuGet { pname = "System.Composition.AttributedModel"; version = "1.0.31"; sha256 = "1ipyb86hvw754kmk47vjmzyilvj5hymg9nqabz70sbgsz1fygrdv"; })
-  (fetchNuGet { pname = "System.Composition.Convention"; version = "1.0.31"; sha256 = "00gqcdrql7vhynxh4xq0s9j5nw27kghmn2n773v7lhzjh3ash18r"; })
-  (fetchNuGet { pname = "System.Composition.Hosting"; version = "1.0.31"; sha256 = "1f1bnk3j7ndx9r7zpzibmrhw78clys1pspl20j2dhnmkiwhl23vy"; })
-  (fetchNuGet { pname = "System.Composition.Runtime"; version = "1.0.31"; sha256 = "1shfybfzsn4g6aim4pggb5ha31g0fz2kkk0519c4vj6m166g39ws"; })
-  (fetchNuGet { pname = "System.Composition.TypedParts"; version = "1.0.31"; sha256 = "1m4j19zx50lbbdx1xxbgpsd1dai2r3kzkyapw47kdvkb89qjkl63"; })
-  (fetchNuGet { pname = "System.Console"; version = "4.0.0"; sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf"; })
   (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
   (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
   (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
-  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.0.0"; sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m"; })
   (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
-  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.5.0"; sha256 = "1y8m0p3127nak5yspapfnz25qc9x53gqpvwr3hdpsvrcd2r1pgyj"; })
-  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "5.0.0"; sha256 = "0phd2qizshjvglhzws1jd0cq4m54gscz4ychzr3x6wbgl4vvfrga"; })
-  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "5.0.1"; sha256 = "0mzw44wsm87vpslb9sn7rirxynpq9m3b00l7gl0q71m8shfh66qs"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "6.0.0"; sha256 = "0rrihs9lnb1h6x4h0hn6kgfnh58qq7hx8qq99gh6fayx4dcnx3s5"; })
   (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
-  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.1.0"; sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; })
   (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
-  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
   (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.3.0"; sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; })
   (fetchNuGet { pname = "System.Formats.Asn1"; version = "5.0.0"; sha256 = "1axc8z0839yvqi2cb63l73l6d9j6wd20lsbdymwddz9hvrsgfwpn"; })
   (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
   (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
-  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.0.1"; sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh"; })
   (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
-  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.0.1"; sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc"; })
   (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
-  (fetchNuGet { pname = "System.Interactive.Async"; version = "3.2.0"; sha256 = "0y5r5y7dlccjpgg17rjrrzi3jya4ysyydamxs33qckkv4jb3534d"; })
   (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
   (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
-  (fetchNuGet { pname = "System.IO.Compression"; version = "4.1.0"; sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji"; })
   (fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
-  (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.0.1"; sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82"; })
   (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
-  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
   (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
-  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
   (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
-  (fetchNuGet { pname = "System.IO.Packaging"; version = "5.0.0"; sha256 = "08l85pi8jy65las973szqdnir2awxp0r16h21c0bgrz19gxhs11n"; })
-  (fetchNuGet { pname = "System.IO.Pipelines"; version = "5.0.1"; sha256 = "1zvfcd2l1d5qxifsqd0cjyv57nr61a9ac2ca5jinyqmj32wgjd6v"; })
+  (fetchNuGet { pname = "System.IO.Packaging"; version = "6.0.0"; sha256 = "112nq0k2jc4vh71rifqqmpjxkaanxfapk7g8947jkfgq3lmfmaac"; })
+  (fetchNuGet { pname = "System.IO.Pipelines"; version = "6.0.2"; sha256 = "0faql0cpxgpm5rwygg5j08q13602i6brvsx9f9m4sv2ysadmk0gf"; })
   (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
   (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
   (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
   (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
   (fetchNuGet { pname = "System.Linq.Queryable"; version = "4.0.1"; sha256 = "11jn9k34g245yyf260gr3ldzvaqa9477w2c5nhb1p8vjx4xm3qaw"; })
-  (fetchNuGet { pname = "System.Memory"; version = "4.5.1"; sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c"; })
   (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
   (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
-  (fetchNuGet { pname = "System.Net.Http"; version = "4.1.0"; sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb"; })
   (fetchNuGet { pname = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
-  (fetchNuGet { pname = "System.Net.Primitives"; version = "4.0.11"; sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r"; })
+  (fetchNuGet { pname = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
   (fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
-  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.1.0"; sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls"; })
   (fetchNuGet { pname = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
   (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.4.0"; sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba"; })
   (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
   (fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
   (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
+  (fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
   (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
   (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
   (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
@@ -297,68 +276,57 @@
   (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
   (fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
   (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
-  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.1"; sha256 = "1xcrjx5fwg284qdnxyi2d0lzdm5q4frlpkp0nf6vvkx1kdz2prrf"; })
   (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; })
   (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.3"; sha256 = "1afi6s2r1mh1kygbjmfba6l4f87pi5sg13p4a48idqafli94qxln"; })
   (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; })
   (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0"; sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc"; })
   (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0-rc.1.21451.13"; sha256 = "0v5bc80p35jj5b5xdgsn5r1v4w68gqz0sahi214rprrrlr3sl206"; })
   (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
   (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
-  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
   (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
-  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
   (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
-  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.0.0"; sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6"; })
   (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
-  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.0.1"; sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn"; })
   (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
-  (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "4.5.0"; sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0"; })
   (fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.2.0"; sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85"; })
+  (fetchNuGet { pname = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; })
   (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.2.0"; sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc"; })
   (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
   (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "5.0.0"; sha256 = "06hkx2za8jifpslkh491dfwzm5dxrsyxzj5lsc0achb6yzg4zqlw"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.0.0"; sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q"; })
   (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.0.0"; sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4"; })
   (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.0.0"; sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q"; })
   (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
   (fetchNuGet { pname = "System.Security.Cryptography.Pkcs"; version = "5.0.0"; sha256 = "0hb2mndac3xrw3786bsjxjfh19bwnr991qib54k6wsqjhjyyvbwj"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.0.0"; sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh"; })
   (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
   (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "4.4.0"; sha256 = "1q8ljvqhasyynp94a1d7jknk946m20lkwy2c3wa8zw2pc517fbj6"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.1.0"; sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh"; })
   (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
+  (fetchNuGet { pname = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.5.0"; sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86"; })
   (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
   (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
   (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
-  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.5.1"; sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"; })
   (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "5.0.0"; sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; })
-  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
   (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
+  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "5.0.0"; sha256 = "144pgy65jc3bkar7d4fg1c0rq6qmkx68gj9k1ldk97558w22v1r1"; })
   (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "5.0.1"; sha256 = "00yg63qnp94q2qryxxggzigi276bibb8b3b96gcvsyrxy7b703n9"; })
-  (fetchNuGet { pname = "System.Text.Json"; version = "4.7.0"; sha256 = "0fp3xrysccm5dkaac4yb51d793vywxks978kkl5x4db9gw29rfdr"; })
+  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "6.0.0"; sha256 = "06n9ql3fmhpjl32g3492sj181zjml5dlcc5l76xq2h38c4f87sai"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "5.0.0"; sha256 = "1gpgl18z6qrgmqrikgh99xkjwzb1didrjp77bch7nrlra21gr4ks"; })
   (fetchNuGet { pname = "System.Text.Json"; version = "5.0.2"; sha256 = "0vd0wd29cdhgcjngl9sw391sn2s8xm974y15zvym0whsdgjwiqfx"; })
-  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "6.0.2"; sha256 = "1lz6gx1r4if8sbx6yp9h0mi0g9ffr40x0cg518l0z2aiqgil3fk0"; })
   (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
   (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
   (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
-  (fetchNuGet { pname = "System.Threading.Channels"; version = "5.0.0"; sha256 = "11z28x3cawry60l5phkqrvavm0mshz84n4c79hrz0p65lq8jpxgs"; })
+  (fetchNuGet { pname = "System.Threading.Channels"; version = "6.0.0"; sha256 = "1qbyi7yymqc56frqy7awvcqc1m7x3xrpx87a37dgb3mbrjg9hlcj"; })
   (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
   (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
-  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.3"; sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
-  (fetchNuGet { pname = "System.Threading.Thread"; version = "4.0.0"; sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc"; })
-  (fetchNuGet { pname = "System.Threading.Timer"; version = "4.0.1"; sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6"; })
+  (fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
   (fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
-  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
   (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
-  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
   (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
   (fetchNuGet { pname = "TagLibSharp"; version = "2.2.0"; sha256 = "0jb0f84p4jd59ha36spyk9q08g6fjap3xywq32rcs2xwzhhqiq0y"; })
 ]
diff --git a/pkgs/games/osu-lazer/osu.runtimeconfig.json b/pkgs/games/osu-lazer/osu.runtimeconfig.json
index a1a197b1b6710..4148c494fbc73 100644
--- a/pkgs/games/osu-lazer/osu.runtimeconfig.json
+++ b/pkgs/games/osu-lazer/osu.runtimeconfig.json
@@ -1,9 +1,9 @@
 {
   "runtimeOptions": {
-    "tfm": "net5.0",
+    "tfm": "net6.0",
     "framework": {
       "name": "Microsoft.NETCore.App",
-      "version": "5.0.0"
+      "version": "6.0.0"
     }
   }
 }
diff --git a/pkgs/games/osu-lazer/update.sh b/pkgs/games/osu-lazer/update.sh
index 21f9eb80f4520..ae130e187ccf0 100755
--- a/pkgs/games/osu-lazer/update.sh
+++ b/pkgs/games/osu-lazer/update.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -p curl jq common-updater-scripts nuget-to-nix dotnet-sdk_5
+#!nix-shell -I nixpkgs=../../../. -i bash -p curl jq common-updater-scripts nuget-to-nix dotnet-sdk
 set -eo pipefail
 cd "$(dirname "${BASH_SOURCE[0]}")"
 
@@ -13,7 +13,11 @@ if [[ "$new_version" == "$old_version" ]]; then
 fi
 
 cd ../../..
-update-source-version osu-lazer "$new_version"
+
+if [[ "$1" != "--deps-only" ]]; then
+    update-source-version osu-lazer "$new_version"
+fi
+
 store_src="$(nix-build . -A osu-lazer.src --no-out-link)"
 src="$(mktemp -d /tmp/osu-src.XXX)"
 echo "Temp src dir: $src"
@@ -26,6 +30,7 @@ export DOTNET_NOLOGO=1
 export DOTNET_CLI_TELEMETRY_OPTOUT=1
 
 mkdir ./nuget_tmp.packages
+dotnet --info
 dotnet restore osu.Desktop --packages ./nuget_tmp.packages --runtime linux-x64
 
 nuget-to-nix ./nuget_tmp.packages > "$deps_file"
diff --git a/pkgs/games/otto-matic/default.nix b/pkgs/games/otto-matic/default.nix
index e213deabe8593..5dd7f98e4569f 100644
--- a/pkgs/games/otto-matic/default.nix
+++ b/pkgs/games/otto-matic/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     mkdir -p $out/share/OttoMatic
     mv Data $out/share/OttoMatic
     install -Dm755 {.,$out/bin}/OttoMatic
-    wrapProgram $out/bin/OttoMatic --run "cd $out/share/OttoMatic"
+    wrapProgram $out/bin/OttoMatic --chdir "$out/share/OttoMatic"
 
     runHook postInstall
   '';
diff --git a/pkgs/games/papermc/default.nix b/pkgs/games/papermc/default.nix
index 09dbfb6c3c83a..52bd5c00d4392 100644
--- a/pkgs/games/papermc/default.nix
+++ b/pkgs/games/papermc/default.nix
@@ -32,5 +32,6 @@ in stdenv.mkDerivation {
     license     = lib.licenses.gpl3Only;
     platforms   = lib.platforms.unix;
     maintainers = with lib.maintainers; [ aaronjanse neonfuz ];
+    mainProgram = "minecraft-server";
   };
 }
diff --git a/pkgs/games/polymc/default.nix b/pkgs/games/polymc/default.nix
index 57d6a0c9faaef..4c5c8f6b7808b 100644
--- a/pkgs/games/polymc/default.nix
+++ b/pkgs/games/polymc/default.nix
@@ -18,18 +18,18 @@
 
 mkDerivation rec {
   pname = "polymc";
-  version = "1.1.1";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "PolyMC";
     repo = "PolyMC";
     rev = version;
-    sha256 = "sha256-virXfnjCzuR2cJoyzapIopT9B+Yi1neff2ZqfOvsmxY=";
+    sha256 = "sha256-pnMmmeIKAaX+z1YzzowotjaG/HKdiqcz2tJ5eGRR77I=";
     fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ cmake file makeWrapper ];
-  buildInputs = [ qtbase jdk8 zlib ];
+  buildInputs = [ qtbase jdk zlib ];
 
   postPatch = ''
     # hardcode jdk paths
diff --git a/pkgs/games/prboom-plus/default.nix b/pkgs/games/prboom-plus/default.nix
new file mode 100644
index 0000000000000..a249a4585bd8c
--- /dev/null
+++ b/pkgs/games/prboom-plus/default.nix
@@ -0,0 +1,62 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, SDL2
+, SDL2_mixer
+, SDL2_image
+, SDL2_net
+, fluidsynth
+, soundfont-fluid
+, portmidi
+, dumb
+, libvorbis
+, libmad
+, pcre
+}:
+
+stdenv.mkDerivation rec {
+  pname = "prboom-plus";
+  version = "2.6.2";
+
+  src = fetchFromGitHub {
+    owner = "coelckers";
+    repo = "prboom-plus";
+    rev = "v${version}";
+    sha256 = "iK70PMRLJiZHcK1jCQ2s88LgEMbcfG2pXjwCDVG7zUM=";
+  };
+
+  sourceRoot = "source/prboom2";
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  buildInputs = [
+    SDL2
+    SDL2_mixer
+    SDL2_image
+    SDL2_net
+    fluidsynth
+    portmidi
+    dumb
+    libvorbis
+    libmad
+    pcre
+  ];
+
+  # Fixes impure path to soundfont
+  prePatch = ''
+    substituteInPlace src/m_misc.c --replace \
+      "/usr/share/sounds/sf3/default-GM.sf3" \
+      "${soundfont-fluid}/share/soundfonts/FluidR3_GM2-2.sf2"
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/coelckers/prboom-plus";
+    description = "An advanced, Vanilla-compatible Doom engine based on PrBoom";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.ashley ];
+  };
+}
diff --git a/pkgs/games/prboom/default.nix b/pkgs/games/prboom/default.nix
deleted file mode 100644
index 8adc9645b7ae2..0000000000000
--- a/pkgs/games/prboom/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib, stdenv, fetchurl, SDL, SDL_mixer, SDL_net
-, libGLU ? null
-, libGL ? null
-, useOpenGL ? stdenv.hostPlatform == stdenv.buildPlatform
-}:
-
-assert useOpenGL -> libGL != null && libGLU != null;
-
-stdenv.mkDerivation rec {
-  pname = "prboom";
-  version = "2.5.0";
-  src = fetchurl {
-    url = "mirror://sourceforge/prboom/prboom-${version}.tar.gz";
-    sha256 = "1bjb04q8dk232956k30qlpq6q0hxb904yh1nflr87jcc1x3iqv12";
-  };
-
-  buildInputs = [ SDL SDL_mixer SDL_net ]
-    ++ lib.optionals useOpenGL [ libGL libGLU ];
-
-  doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
-
-  configureFlags = [
-    (lib.enableFeature useOpenGL "gl")
-    (lib.enableFeature doCheck "sdltest")
-  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-    "--disable-cpu-opt"
-    "--without-x"
-    "ac_cv_type_uid_t=yes"
-    "ac_cv_type_gid_t=yes"
-  ];
-
-  postInstall = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
-    mv $out/games/ $out/bin
-  '';
-}
diff --git a/pkgs/games/purpur/default.nix b/pkgs/games/purpur/default.nix
index b12c54449a488..4f08010b45555 100644
--- a/pkgs/games/purpur/default.nix
+++ b/pkgs/games/purpur/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ jyooru ];
+    mainProgram = "minecraft-server";
   };
 }
diff --git a/pkgs/games/quake3/quake3e/default.nix b/pkgs/games/quake3/quake3e/default.nix
index 7a1da6f6398c0..2346e6022d94f 100644
--- a/pkgs/games/quake3/quake3e/default.nix
+++ b/pkgs/games/quake3/quake3e/default.nix
@@ -1,31 +1,44 @@
-{ lib, stdenv, curl, libGL, libX11, libXxf86dga, alsa-lib, libXrandr, libXxf86vm, libXext, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub, makeWrapper
+, curl, libGL, libX11, libXxf86dga, alsa-lib, libXrandr, libXxf86vm, libXext, SDL2, glibc
+}:
 
 stdenv.mkDerivation rec {
   pname = "Quake3e";
-  version = "2020-04-04";
+  version = "2022-04-01-dev";
 
   src = fetchFromGitHub {
     owner = "ec-";
     repo = pname;
-    rev = version;
-    sha256 = "1jvk8qd0mi0x8lslknhkfd8h6ridwca34c6qahsbmmpcgsvdv16s";
+    rev = "c6cec00b858aa5955eb1d6eb65b9bfd41fd869cb";
+    sha256 = "0qd13fndbhgkkmhxbprpzmj2l2v9ihacxagpdqi9sg9nrzvahr9h";
   };
 
-  buildInputs = [ curl libGL libX11 libXxf86dga alsa-lib libXrandr libXxf86vm libXext ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ curl libGL libX11 libXxf86dga alsa-lib libXrandr libXxf86vm libXext SDL2 glibc ];
+  NIX_CFLAGS_COMPILE = "-I${SDL2.dev}/include/SDL2";
   enableParallelBuilding = true;
 
   postPatch = ''
     sed -i -e 's#OpenGLLib = dlopen( dllname#OpenGLLib = dlopen( "${libGL}/lib/libGL.so"#' code/unix/linux_qgl.c
+    sed -i -e 's#Sys_LoadLibrary( "libpthread.so.0" )#Sys_LoadLibrary( "${glibc}/lib/libpthread.so.0" )#' code/unix/linux_snd.c
     sed -i -e 's#Sys_LoadLibrary( "libasound.so.2" )#Sys_LoadLibrary( "${alsa-lib}/lib/libasound.so.2" )#' code/unix/linux_snd.c
+    sed -i -e 's#Sys_LoadLibrary( "libXxf86dga.so.1" )#Sys_LoadLibrary( "${libXxf86dga}/lib/libXxf86dga.so.1" )#' code/unix/x11_dga.c
     sed -i -e 's#Sys_LoadLibrary( "libXrandr.so.2" )#Sys_LoadLibrary( "${libXrandr}/lib/libXrandr.so.2" )#' code/unix/x11_randr.c
     sed -i -e 's#Sys_LoadLibrary( "libXxf86vm.so.1" )#Sys_LoadLibrary( "${libXxf86vm}/lib/libXxf86vm.so.1" )#' code/unix/x11_randr.c
-    sed -i -e 's#Sys_LoadLibrary( "libXxf86dga.so.1" )#Sys_LoadLibrary( "${libXxf86dga}/lib/libXxf86dga.so.1" )#' code/unix/x11_dga.c
+    sed -i -e 's#Sys_LoadLibrary( "libXxf86vm.so.1" )#Sys_LoadLibrary( "${libXxf86vm}/lib/libXxf86vm.so.1" )#' code/unix/x11_vidmode.c
     sed -i -e 's#"libcurl.so.4"#"${curl.out}/lib/libcurl.so.4"#' code/client/cl_curl.h
   '';
 
+  # Default value for `USE_SDL` changed (from 0 to 1) in 5f8ce6d (2020-12-26)
+  # Setting `USE_SDL=0` in `makeFlags` doesn't work
+  preConfigure = ''
+    sed -i 's/USE_SDL *= 1/USE_SDL = 0/' Makefile
+  '';
+
   installPhase = ''
-    mkdir -p $out/bin
-    cp build/*/*x64 $out/bin
+    make install DESTDIR=$out/lib
+    makeWrapper $out/lib/quake3e.x64 $out/bin/quake3e
+    makeWrapper $out/lib/quake3e.ded.x64 $out/bin/quake3e.ded
   '';
 
   meta = with lib; {
diff --git a/pkgs/games/quakespasm/default.nix b/pkgs/games/quakespasm/default.nix
index 137b86f57b6bf..e67363fdc3cc1 100644
--- a/pkgs/games/quakespasm/default.nix
+++ b/pkgs/games/quakespasm/default.nix
@@ -94,5 +94,6 @@ stdenv.mkDerivation rec {
 
     platforms = platforms.unix;
     maintainers = with maintainers; [ mikroskeem m3tti ];
+    mainProgram = "quake";
   };
 }
diff --git a/pkgs/games/rare/default.nix b/pkgs/games/rare/default.nix
index 9bf3aca754223..93a6296f67594 100644
--- a/pkgs/games/rare/default.nix
+++ b/pkgs/games/rare/default.nix
@@ -3,12 +3,12 @@
 
 buildPythonApplication rec {
   pname = "rare";
-  version = "1.8.8";
+  version = "1.8.9";
 
   src = fetchPypi {
     inherit version;
     pname = "Rare";
-    sha256 = "sha256-00CtvBqSrT9yJUHZ5529VrIQtCOYkHRc8+rJHmrTSpg=";
+    sha256 = "sha256-UEvGwWjr4FCsvyFz6Db3VnhVS6MS3FYzYSucumzOoEA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/games/rili/default.nix b/pkgs/games/rili/default.nix
index a0082d28d506b..3a87fc0523c7b 100644
--- a/pkgs/games/rili/default.nix
+++ b/pkgs/games/rili/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, SDL_mixer, SDL, autoreconfHook }:
+{ lib, stdenv, fetchurl, fetchpatch, SDL_mixer, SDL, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "ri_li";
@@ -9,7 +9,17 @@ stdenv.mkDerivation rec {
     sha256 = "f71ccc20c37c601358d963e087ac0d524de8c68e96df09c3aac1ae65edd38dbd";
   };
 
-  patches = [ ./moderinze_cpp.patch ];
+  patches = [
+    ./moderinze_cpp.patch
+
+    # Build fix for gcc-11 pending upstream inclusion:
+    #  https://sourceforge.net/p/ri-li/bugs/2/
+    (fetchpatch {
+      name = "gcc-11.patch";
+      url = "https://sourceforge.net/p/ri-li/bugs/2/attachment/0001-Fix-build-on-gcc-11.patch";
+      sha256 = "01il9lm3amwp3b435ka9q63p0jwlzajwnbshyazx6n9vcnrr17yw";
+    })
+  ];
 
   CPPFLAGS = "-I${SDL.dev}/include -I${SDL.dev}/include/SDL -I${SDL_mixer}/include";
 
diff --git a/pkgs/games/runelite/default.nix b/pkgs/games/runelite/default.nix
index d342d543e2fca..39ff9c137dfb8 100644
--- a/pkgs/games/runelite/default.nix
+++ b/pkgs/games/runelite/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
 
     # RuneLite looks for `.so` files in $PWD/natives, so ensure that we set the PWD to the right place
     makeWrapper ${jre}/bin/java $out/bin/runelite \
-      --run "cd $out" \
+      --chdir "$out" \
       --prefix LD_LIBRARY_PATH : "${xorg.libXxf86vm}/lib" \
       --add-flags "-jar $out/share/runelite/RuneLite.jar"
   '';
diff --git a/pkgs/games/runescape-launcher/default.nix b/pkgs/games/runescape-launcher/default.nix
index 8b678d792fcbf..3208aa3b46122 100644
--- a/pkgs/games/runescape-launcher/default.nix
+++ b/pkgs/games/runescape-launcher/default.nix
@@ -10,9 +10,11 @@ let
     pname = "runescape-launcher";
     version = "2.2.9";
 
+    # Packages: https://content.runescape.com/downloads/ubuntu/dists/trusty/non-free/binary-amd64/Packages
+    # upstream is https://content.runescape.com/downloads/ubuntu/pool/non-free/r/${pname}/${pname}_${version}_amd64.deb
     src = fetchurl {
-      url = "https://content.runescape.com/downloads/ubuntu/pool/non-free/r/${pname}/${pname}_${version}_amd64.deb";
-      sha256 = "0r5v1pwh0aas31b1d3pkrc8lqmqz9b4fml2b4kxmg5xzp677h271";
+      url = "https://archive.org/download/${pname}_${version}_amd64/${pname}_${version}_amd64.deb";
+      sha256 = "1zilpxh8k8baylbl9nqq9kgjiv2xzw4lizbgcmzky5rhmych8n4g";
     };
 
     nativeBuildInputs = [
@@ -76,7 +78,7 @@ let
       description = "Launcher for RuneScape 3, the current main RuneScape";
       homepage = "https://www.runescape.com/";
       license = licenses.unfree;
-      maintainers = with lib.maintainers; [ grburst ];
+      maintainers = with maintainers; [ grburst ];
       platforms = [ "x86_64-linux" ];
     };
   };
@@ -89,15 +91,23 @@ in
   * FHS simulates a classic linux shell
   */
   buildFHSUserEnv {
-   name = "RuneScape";
-   targetPkgs = pkgs: [
-     runescape
-     dpkg glibc gcc-unwrapped
-     libSM libXxf86vm libX11 glib pango cairo gtk2-x11 zlib openssl
-     libpulseaudio
-     xorg.libX11
-     SDL2 xorg_sys_opengl libGL
-   ];
-   multiPkgs = pkgs: [ libGL ];
-   runScript = "runescape-launcher";
-}
+    name = "RuneScape";
+    targetPkgs = pkgs: [
+      runescape
+      dpkg glibc gcc-unwrapped
+      libSM libXxf86vm libX11 glib pango cairo gtk2-x11 zlib openssl
+      libpulseaudio
+      xorg.libX11
+      SDL2 xorg_sys_opengl libGL
+    ];
+    multiPkgs = pkgs: [ libGL ];
+    runScript = "runescape-launcher";
+
+    meta = with lib; {
+      description = "RuneScape Game Client (NXT) - Launcher for RuneScape 3";
+      homepage = "https://www.runescape.com/";
+      license = licenses.unfree;
+      maintainers = with maintainers; [ grburst ];
+      platforms = [ "x86_64-linux" ];
+    };
+  }
diff --git a/pkgs/games/sauerbraten/default.nix b/pkgs/games/sauerbraten/default.nix
index 1d2e39d4164ec..934c590138d9e 100644
--- a/pkgs/games/sauerbraten/default.nix
+++ b/pkgs/games/sauerbraten/default.nix
@@ -56,9 +56,9 @@ stdenv.mkDerivation rec {
     ln -s $out/share/sauerbraten/cube.png $out/share/icon/sauerbraten.png
 
     makeWrapper $out/share/sauerbraten/sauer_server $out/bin/sauerbraten_server \
-      --run "cd $out/share/sauerbraten"
+      --chdir "$out/share/sauerbraten"
     makeWrapper $out/share/sauerbraten/sauer_client $out/bin/sauerbraten_client \
-      --run "cd $out/share/sauerbraten" \
+      --chdir "$out/share/sauerbraten" \
       --add-flags "-q\''${HOME}/.config/sauerbraten"
 
     runHook postInstall
diff --git a/pkgs/games/starsector/default.nix b/pkgs/games/starsector/default.nix
index 95fb3988f28e7..efba43e92dd4f 100644
--- a/pkgs/games/starsector/default.nix
+++ b/pkgs/games/starsector/default.nix
@@ -57,7 +57,8 @@ stdenv.mkDerivation rec {
     wrapProgram $out/starsector.sh \
       --prefix PATH : ${lib.makeBinPath [ openjdk ]} \
       --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath buildInputs} \
-      --run 'mkdir -p ''${XDG_DATA_HOME:-~/.local/share}/starsector; cd '"$out"
+      --run 'mkdir -p ''${XDG_DATA_HOME:-~/.local/share}/starsector' \
+      --chdir "$out"
     ln -s $out/starsector.sh $out/bin/starsector
 
     runHook postInstall
diff --git a/pkgs/games/steam/fhsenv.nix b/pkgs/games/steam/fhsenv.nix
index c5fba68b22a10..d18accd0d546a 100644
--- a/pkgs/games/steam/fhsenv.nix
+++ b/pkgs/games/steam/fhsenv.nix
@@ -206,12 +206,6 @@ in buildFHSUserEnv rec {
   ++ steamPackages.steam-runtime-wrapped.overridePkgs
   ++ extraLibraries pkgs;
 
-  extraBuildCommands = ''
-    ln -s /usr/lib/libbz2.so usr/lib/libbz2.so.1.0
-  '' + lib.optionalString (steam-runtime-wrapped-i686 != null) ''
-    ln -s /usr/lib32/libbz2.so usr/lib32/libbz2.so.1.0
-  '';
-
   extraInstallCommands = ''
     mkdir -p $out/share/applications
     ln -s ${steam}/share/icons $out/share
@@ -269,7 +263,7 @@ in buildFHSUserEnv rec {
     name = "steam-run";
 
     targetPkgs = commonTargetPkgs;
-    inherit multiPkgs extraBuildCommands profile extraInstallCommands;
+    inherit multiPkgs profile extraInstallCommands;
 
     inherit unshareIpc unsharePid;
 
diff --git a/pkgs/games/tintin/default.nix b/pkgs/games/tintin/default.nix
index 2388158a36acd..aac7cf8f6ab40 100644
--- a/pkgs/games/tintin/default.nix
+++ b/pkgs/games/tintin/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
     homepage    = "http://tintin.sourceforge.net";
     license     = licenses.gpl2;
     maintainers = with maintainers; [ lovek323 ];
+    mainProgram = "tt++";
     platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/games/tome4/default.nix b/pkgs/games/tome4/default.nix
index 70fbebe084c78..1f148feb9320a 100644
--- a/pkgs/games/tome4/default.nix
+++ b/pkgs/games/tome4/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
     install -Dm755 t-engine $dir/t-engine
     cp -r bootstrap game $dir
     makeWrapper $dir/t-engine $out/bin/${pname} \
-      --run "cd $dir"
+      --chdir "$dir"
 
     install -Dm755 ${desktop}/share/applications/${pname}.desktop $out/share/applications/${pname}.desktop
     substituteInPlace $out/share/applications/${pname}.desktop \
diff --git a/pkgs/games/unciv/default.nix b/pkgs/games/unciv/default.nix
index 50db51b4e89e8..e8b5d748b932c 100644
--- a/pkgs/games/unciv/default.nix
+++ b/pkgs/games/unciv/default.nix
@@ -25,11 +25,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "unciv";
-  version = "3.19.12";
+  version = "3.19.14";
 
   src = fetchurl {
     url = "https://github.com/yairm210/Unciv/releases/download/${version}/Unciv.jar";
-    sha256 = "sha256-PALrOyaUYXyNH+QdE8oy1TM5U4SZjw1N0NJ2BKiqjtU=";
+    sha256 = "sha256-Q0OiXjqZ6RmQg3Ob6k4NjaHsc+K50a0bAGBaaaUcP3I=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/games/ut2004/wrapper.nix b/pkgs/games/ut2004/wrapper.nix
index bf344372933d4..cc5b0e400bc18 100644
--- a/pkgs/games/ut2004/wrapper.nix
+++ b/pkgs/games/ut2004/wrapper.nix
@@ -38,7 +38,7 @@ in runCommand "ut2004" {
   for i in ${game}/System/*-bin; do
     name="$(basename "$i")"
     makeWrapper $i $out/bin/''${name%-bin} \
-      --run "cd ${game}/System"
+      --chdir "${game}/System"
   done
 
   mkdir -p $out/share/applications
diff --git a/pkgs/games/warsow/default.nix b/pkgs/games/warsow/default.nix
index 81c467dd9db74..007b124ba58ce 100644
--- a/pkgs/games/warsow/default.nix
+++ b/pkgs/games/warsow/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
     mkdir -p $out/bin
     for i in ${warsow-engine}/bin/*; do
-      makeWrapper "$i" "$out/bin/$(basename "$i")" --run "cd $out/share/warsow"
+      makeWrapper "$i" "$out/bin/$(basename "$i")" --chdir "$out/share/warsow"
     done
   '';
 
diff --git a/pkgs/games/warzone2100/default.nix b/pkgs/games/warzone2100/default.nix
index a44f965b0e557..2df306d686f23 100644
--- a/pkgs/games/warzone2100/default.nix
+++ b/pkgs/games/warzone2100/default.nix
@@ -26,7 +26,7 @@
 , vulkan-loader
 , shaderc
 
-, testVersion
+, testers
 , warzone2100
 
 , withVideos ? false
@@ -104,7 +104,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru.tests = {
-    version = testVersion {
+    version = testers.testVersion {
       package = warzone2100;
       # The command always exits with code 1
       command = "(warzone2100 --version || [ $? -eq 1 ])";
diff --git a/pkgs/games/xconq/default.nix b/pkgs/games/xconq/default.nix
index 10a959a676b49..2d28090c595ce 100644
--- a/pkgs/games/xconq/default.nix
+++ b/pkgs/games/xconq/default.nix
@@ -19,6 +19,8 @@ stdenv.mkDerivation rec {
     "--with-tkconfig=${tk}/lib"
   ];
 
+  CXXFLAGS = " --std=c++11 ";
+
   hardeningDisable = [ "format" ];
 
   patchPhase = ''
diff --git a/pkgs/games/xonotic/default.nix b/pkgs/games/xonotic/default.nix
index 46b0b594d724b..208608f0c15b4 100644
--- a/pkgs/games/xonotic/default.nix
+++ b/pkgs/games/xonotic/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchzip, makeWrapper, runCommand, makeDesktopItem
+{ lib, stdenv, fetchurl, fetchpatch, fetchzip, makeWrapper, runCommand, makeDesktopItem
 , xonotic-data, copyDesktopItems
 , # required for both
   unzip, libjpeg, zlib, libvorbis, curl
@@ -64,6 +64,15 @@ let
       sha256 = "0axxw04fyz6jlfqd0kp7hdrqa0li31sx1pbipf2j5qp9wvqicsay";
     };
 
+    patches = [
+      # Fix to make darkplaces compile under GCC 11
+      (fetchpatch {
+        name = "fix-darkplaces-gcc11";
+        url = "https://gitlab.com/xonotic/darkplaces/-/commit/5e9e998c1759bc0085c3273fc39f9ea6f72a7dc8.patch";
+        sha256 = "sha256-s0JettSg0AYr8V2mXKJ2QU125bBcX1BAu/yDciTWC5o=";
+      })
+    ];
+
     nativeBuildInputs = [ unzip ];
     buildInputs = [ libjpeg zlib libvorbis curl gmp ]
       ++ lib.optional withGLX [ libX11.dev libGLU.dev libGL.dev libXpm.dev libXext.dev libXxf86vm.dev alsa-lib.dev ]
diff --git a/pkgs/games/zod/default.nix b/pkgs/games/zod/default.nix
index 6bf24ed6cb9fa..ad576b4642436 100644
--- a/pkgs/games/zod/default.nix
+++ b/pkgs/games/zod/default.nix
@@ -44,7 +44,7 @@ let
     installPhase = ''
       mkdir -p $out/bin
       install -m755 zod $out/bin/
-      wrapProgram $out/bin/zod --run "cd ${zod_assets}/usr/lib/commander-zod"
+      wrapProgram $out/bin/zod --chdir "${zod_assets}/usr/lib/commander-zod"
     '';
   };
   zod_map_editor = stdenv.mkDerivation {
@@ -56,7 +56,7 @@ let
     installPhase = ''
       mkdir -p $out/bin
       install -m755 zod_map_editor $out/bin
-      wrapProgram $out/bin/zod_map_editor --run "cd ${zod_assets}/usr/lib/commander-zod"
+      wrapProgram $out/bin/zod_map_editor --chdir "${zod_assets}/usr/lib/commander-zod"
     '';
   };
   zod_launcher = stdenv.mkDerivation {
diff --git a/pkgs/misc/acpilight/default.nix b/pkgs/misc/acpilight/default.nix
index d6fead938a457..91bb878291318 100644
--- a/pkgs/misc/acpilight/default.nix
+++ b/pkgs/misc/acpilight/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ smakarov ];
     platforms = platforms.linux;
+    mainProgram = "xbacklight";
   };
 }
diff --git a/pkgs/misc/drivers/argononed/default.nix b/pkgs/misc/drivers/argononed/default.nix
new file mode 100644
index 0000000000000..5fa28c17c529a
--- /dev/null
+++ b/pkgs/misc/drivers/argononed/default.nix
@@ -0,0 +1,48 @@
+{ lib, stdenv, fetchFromGitLab, dtc, installShellFiles }:
+
+stdenv.mkDerivation rec {
+  pname = "argononed";
+  version = "unstable-2022-03-26";
+
+  src = fetchFromGitLab {
+    owner = "DarkElvenAngel";
+    repo = pname;
+    rev = "97c4fa07fc2c09ffc3bd86e0f6319d50fa639578";
+    sha256 = "sha256-5/xUYbprRiwD+FN8V2cUpHxnTbBkEsFG2wfsEXrCrgQ=";
+  };
+
+  patches = [ ./fix-hardcoded-reboot-poweroff-paths.patch ];
+
+  postPatch = ''
+    patchShebangs configure
+  '';
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  buildInputs = [ dtc ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 build/argononed $out/bin/argononed
+    install -Dm755 build/argonone-cli $out/bin/argonone-cli
+    install -Dm755 build/argonone-shutdown $out/lib/systemd/system-shutdown/argonone-shutdown
+    install -Dm644 build/argonone.dtbo $out/boot/overlays/argonone.dtbo
+
+    install -Dm644 OS/_common/argononed.service $out/lib/systemd/system/argononed.service
+    install -Dm644 OS/_common/argononed.logrotate $out/etc/logrotate.d/argononed
+    install -Dm644 LICENSE $out/share/argononed/LICENSE
+
+    installShellCompletion --bash --name argonone-cli OS/_common/argonone-cli-complete.bash
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://gitlab.com/DarkElvenAngel/argononed";
+    description = "A replacement daemon for the Argon One Raspberry Pi case";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.misterio77 ];
+  };
+}
diff --git a/pkgs/misc/drivers/argononed/fix-hardcoded-reboot-poweroff-paths.patch b/pkgs/misc/drivers/argononed/fix-hardcoded-reboot-poweroff-paths.patch
new file mode 100644
index 0000000000000..88bcb6ddd25e4
--- /dev/null
+++ b/pkgs/misc/drivers/argononed/fix-hardcoded-reboot-poweroff-paths.patch
@@ -0,0 +1,18 @@
+--- a/src/argononed.c
++++ b/src/argononed.c
+@@ -783,13 +783,13 @@
+     {
+         log_message(LOG_DEBUG, "EXEC REBOOT");
+         sync();
+-        system("/sbin/reboot");
++        system("/run/current-system/sw/bin/reboot");
+     }
+     if (count >= 39 && count <= 41)
+     {
+         log_message(LOG_DEBUG, "EXEC SHUTDOWN");
+         sync();
+-        system("/sbin/poweroff");
++        system("/run/current-system/sw/bin/poweroff");
+     }
+ #else
+     log_message(LOG_INFO,"Daemon Ready");
diff --git a/pkgs/misc/dumb/default.nix b/pkgs/misc/dumb/default.nix
index 9b733e00f69c8..2a554d99b287f 100644
--- a/pkgs/misc/dumb/default.nix
+++ b/pkgs/misc/dumb/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/kode54/dumb";
     description = "Module/tracker based music format parser and player library";
     license = licenses.free;  # Derivative of GPL
-    maintainers = with maintainers; [ chiiruno ];
+    maintainers = with maintainers; [ Madouura ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix
index e80ad8a839fb4..327cf2862346c 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -29,11 +29,11 @@ let
 
 in
 stdenv.mkDerivation rec {
-  pname = "ghostscript";
+  pname = "ghostscript${lib.optionalString (x11Support) "-with-X"}";
   version = "9.55.0";
 
   src = fetchurl {
-    url = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9${lib.versions.minor version}${lib.versions.patch version}/${pname}-${version}.tar.xz";
+    url = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9${lib.versions.minor version}${lib.versions.patch version}/ghostscript-${version}.tar.xz";
     sha512 = "27g72152mlwlalg232jxdhaf3ykgmqwi2pccbkwfygql1h9iz40plfbwbs1n0fkvm4zwzg5r9cr8g7w2dxih4jldiidv7rflxdy1is2";
   };
 
diff --git a/pkgs/misc/jackaudio/default.nix b/pkgs/misc/jackaudio/default.nix
index 92574231549e2..2f7ffeb89f32a 100644
--- a/pkgs/misc/jackaudio/default.nix
+++ b/pkgs/misc/jackaudio/default.nix
@@ -48,8 +48,6 @@ stdenv.mkDerivation rec {
         --replace /bin/bash ${bash}/bin/bash
   '';
 
-  PKGCONFIG = "${stdenv.cc.targetPrefix}pkg-config";
-
   dontAddWafCrossFlags = "true";
   wafConfigureFlags = [
     "--classic"
diff --git a/pkgs/misc/lguf-brightness/default.nix b/pkgs/misc/lguf-brightness/default.nix
index efdc8e151482b..0bb288c217630 100644
--- a/pkgs/misc/lguf-brightness/default.nix
+++ b/pkgs/misc/lguf-brightness/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/periklis/lguf-brightness";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ periklis ];
+    mainProgram = "lguf_brightness";
     platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/pkgs/misc/platformsh/default.nix b/pkgs/misc/platformsh/default.nix
new file mode 100644
index 0000000000000..e2bb1f3367a9e
--- /dev/null
+++ b/pkgs/misc/platformsh/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, makeWrapper, writeShellScript, lib, php, curl, jq, common-updater-scripts }:
+
+let
+  pname = "platformsh";
+  version = "v3.78.0";
+in
+stdenv.mkDerivation {
+  inherit pname version;
+
+  src = fetchurl {
+    url = "https://github.com/platformsh/platformsh-cli/releases/download/${version}/platform.phar";
+    sha256 = "sha256-2EasMsZIwplkl1S5PH0Y3gRymAIdpiFgVc3pNPiFg1o=";
+  };
+
+  dontUnpack = true;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    install -D $src $out/libexec/platformsh/platform.phar
+    makeWrapper ${php}/bin/php $out/bin/platform \
+      --add-flags "$out/libexec/platformsh/platform.phar"
+    runHook postInstall
+  '';
+
+  passthru = {
+      updateScript = writeShellScript "update-${pname}" ''
+        set -o errexit
+        export PATH="${lib.makeBinPath [ curl jq common-updater-scripts ]}"
+        NEW_VERSION=$(curl -s https://api.github.com/repos/platformsh/platformsh-cli/releases/latest | jq .tag_name --raw-output)
+
+        if [[ "${version}" = "$NEW_VERSION" ]]; then
+            echo "The new version same as the old version."
+            exit 0
+        fi
+
+        update-source-version "platformsh" "$NEW_VERSION"
+      '';
+    };
+
+  meta = with lib; {
+    description = "The unified tool for managing your Platform.sh services from the command line.";
+    license = licenses.mit;
+    homepage = "https://github.com/platformsh/platformsh-cli";
+    maintainers = with maintainers; [ shyim ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/misc/rich-cli/default.nix b/pkgs/misc/rich-cli/default.nix
new file mode 100644
index 0000000000000..e2970bd30bae4
--- /dev/null
+++ b/pkgs/misc/rich-cli/default.nix
@@ -0,0 +1,32 @@
+{ lib, python3 }:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "rich-cli";
+  version = "1.5.1";
+
+  src = python3.pkgs.fetchPypi {
+    inherit pname version;
+    sha256 = "18qpdaw4drkwq71xikngwaarkjxhfc0nrb1zm36rw31b8dz0ij2k";
+  };
+
+  format = "pyproject";
+
+  nativeBuildInputs = [ python3.pkgs.poetry-core ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    rich
+    click
+    requests
+    textual
+    rich-rst
+  ];
+
+  buildInputs = [ python3 ];
+
+  meta = with lib; {
+    homepage = "https://github.com/Textualize/rich-cli";
+    description = "Command Line Interface to Rich";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jyooru ];
+  };
+}
diff --git a/pkgs/misc/scimark/default.nix b/pkgs/misc/scimark/default.nix
index 7558c676ba52c..5726556e687fe 100644
--- a/pkgs/misc/scimark/default.nix
+++ b/pkgs/misc/scimark/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
     description = "Scientific and numerical computing benchmark (ANSI C version)";
     license = licenses.publicDomain;
     maintainers = with maintainers; [ AndersonTorres ];
+    mainProgram = "scimark4";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/misc/sndio/default.nix b/pkgs/misc/sndio/default.nix
index 786c3c3a40a48..7b5774d8054cb 100644
--- a/pkgs/misc/sndio/default.nix
+++ b/pkgs/misc/sndio/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.sndio.org";
     description = "Small audio and MIDI framework part of the OpenBSD project";
     license = licenses.isc;
-    maintainers = with maintainers; [ chiiruno ];
+    maintainers = with maintainers; [ Madouura ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/misc/tmux-plugins/default.nix b/pkgs/misc/tmux-plugins/default.nix
index 8c39ab3f207f3..7de74f405b41d 100644
--- a/pkgs/misc/tmux-plugins/default.nix
+++ b/pkgs/misc/tmux-plugins/default.nix
@@ -556,6 +556,10 @@ in rec {
     };
   };
 
+  tmux-thumbs = pkgs.callPackage ./tmux-thumbs {
+    inherit mkTmuxPlugin;
+  };
+
   urlview = mkTmuxPlugin {
     pluginName = "urlview";
     version = "unstable-2016-01-06";
diff --git a/pkgs/misc/tmux-plugins/tmux-thumbs/default.nix b/pkgs/misc/tmux-plugins/tmux-thumbs/default.nix
new file mode 100644
index 0000000000000..f55a2dbe7b60f
--- /dev/null
+++ b/pkgs/misc/tmux-plugins/tmux-thumbs/default.nix
@@ -0,0 +1,29 @@
+{ lib, mkTmuxPlugin, fetchFromGitHub, thumbs, substituteAll }:
+
+mkTmuxPlugin rec {
+  pluginName = "tmux-thumbs";
+  version = "0.7.1";
+  rtpFilePath = "tmux-thumbs.tmux";
+
+  src = fetchFromGitHub {
+    owner = "fcsonline";
+    repo = pluginName;
+    rev = version;
+    sha256 = "sha256-PH1nscmVhxJFupS7dlbOb+qEwG/Pa/2P6XFIbR/cfaQ=";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./fix.patch;
+      tmuxThumbsDir = "${thumbs}/bin";
+    })
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/fcsonline/tmux-thumbs";
+    description = "A lightning fast version of tmux-fingers written in Rust for copy pasting with vimium/vimperator like hints.";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ ghostbuster91 ];
+  };
+}
diff --git a/pkgs/misc/tmux-plugins/tmux-thumbs/fix.patch b/pkgs/misc/tmux-plugins/tmux-thumbs/fix.patch
new file mode 100644
index 0000000000000..326696ebc40a2
--- /dev/null
+++ b/pkgs/misc/tmux-plugins/tmux-thumbs/fix.patch
@@ -0,0 +1,45 @@
+diff --git a/tmux-thumbs.sh b/tmux-thumbs.sh
+index 34dd528..8c05d54 100755
+--- a/tmux-thumbs.sh
++++ b/tmux-thumbs.sh
+@@ -1,22 +1,8 @@
+ #!/usr/bin/env bash
+ set -Eeu -o pipefail
+ 
+-VERSION=$(grep 'version =' Cargo.toml | grep -oe "[0-9]\+.[0-9]\+.[0-9]\+")
+-
+ # Setup env variables to be compatible with compiled and bundled installations
+ CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+-RELEASE_DIR="${CURRENT_DIR}/target/release"
+-
+-THUMBS_BINARY="${RELEASE_DIR}/thumbs"
+-TMUX_THUMBS_BINARY="${RELEASE_DIR}/tmux-thumbs"
+-
+-if [ ! -f "$THUMBS_BINARY" ]; then
+-  tmux split-window "cd ${CURRENT_DIR} && bash ./tmux-thumbs-install.sh"
+-  exit
+-elif [[ $(${THUMBS_BINARY} --version) != "thumbs ${VERSION}"  ]]; then
+-  tmux split-window "cd ${CURRENT_DIR} && bash ./tmux-thumbs-install.sh update"
+-  exit
+-fi
+ 
+ function get-opt-value() {
+   tmux show -vg "@thumbs-${1}" 2> /dev/null
+@@ -36,7 +22,7 @@ function get-opt-arg() {
+   fi
+ }
+ 
+-PARAMS=(--dir "${CURRENT_DIR}")
++PARAMS=(--dir @tmuxThumbsDir@)
+ 
+ function add-param() {
+   local type opt arg
+@@ -51,4 +37,4 @@ add-param upcase-command string
+ add-param multi-command  string
+ add-param osc52          boolean
+ 
+-"${TMUX_THUMBS_BINARY}" "${PARAMS[@]}" || true
++@tmuxThumbsDir@/tmux-thumbs "${PARAMS[@]}" || true
+
+
+
diff --git a/pkgs/misc/wiki-tui/default.nix b/pkgs/misc/wiki-tui/default.nix
index 4ff3262d27a5f..1c954de3822e3 100644
--- a/pkgs/misc/wiki-tui/default.nix
+++ b/pkgs/misc/wiki-tui/default.nix
@@ -2,25 +2,28 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wiki-tui";
-  version = "0.4.5";
+  version = "0.4.7";
 
   src = fetchFromGitHub {
     owner = "Builditluc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-IMNHsmL1L+zfGxfdTxJ4HBGiQOzWmYVE0P3ZInbMVl0=";
+    sha256 = "sha256-qoj5rg0YeBWQuU/HU84wOSG9y9p4Q1DFbqsh61mYnUc=";
   };
 
   buildInputs = [ ncurses openssl ] ++ lib.optional stdenv.isDarwin Security;
 
   nativeBuildInputs = [ pkg-config ];
 
-  cargoSha256 = "sha256-Q8Xl6L41cDeDN370owAAL9xZhdyUuDKrPlZxG3eg87c=";
+  cargoSha256 = "sha256-btSWvlObvn08cAWVMM4R0aciYz8swRFZjX+WDhALj3M=";
+
+  # Tests fail with this error: `found argument --test-threads which was not expected`
+  doCheck = false;
 
   meta = with lib; {
     description = "A simple and easy to use Wikipedia Text User Interface";
     homepage = "https://github.com/builditluc/wiki-tui";
     license = licenses.mit;
-    maintainers = with maintainers; [ lom ];
+    maintainers = with maintainers; [ lom builditluc ];
   };
 }
diff --git a/pkgs/os-specific/darwin/apple-sdk-11.0/frameworks.nix b/pkgs/os-specific/darwin/apple-sdk-11.0/frameworks.nix
index 96c0475c087ec..e9121b0211641 100644
--- a/pkgs/os-specific/darwin/apple-sdk-11.0/frameworks.nix
+++ b/pkgs/os-specific/darwin/apple-sdk-11.0/frameworks.nix
@@ -89,6 +89,8 @@
   IOBluetooth                      = { inherit CoreBluetooth IOKit; };
   IOBluetoothUI                    = { inherit IOBluetooth; };
   IOKit                            = {};
+  # `IOSurface` should depend on `Libsystem` (in place of `xpc`) but this currently causes build
+  # issues due to incompatibility issues between `Libsystem` and `libcxx`.
   IOSurface                        = { inherit IOKit xpc; };
   IOUSBHost                        = {};
   IdentityLookup                   = {};
diff --git a/pkgs/os-specific/darwin/apple-sdk/frameworks.nix b/pkgs/os-specific/darwin/apple-sdk/frameworks.nix
index d3b00e6a6a683..0c70d9bc258f2 100644
--- a/pkgs/os-specific/darwin/apple-sdk/frameworks.nix
+++ b/pkgs/os-specific/darwin/apple-sdk/frameworks.nix
@@ -1,4 +1,4 @@
-# Current as of 10.9
+# Current as of 10.12
 # Epic weird knot-tying happening here.
 # TODO: clean up the process for generating this and include it
 
diff --git a/pkgs/os-specific/darwin/kwm/default.nix b/pkgs/os-specific/darwin/kwm/default.nix
index 273ea7345d9da..c210f9e8c65dd 100644
--- a/pkgs/os-specific/darwin/kwm/default.nix
+++ b/pkgs/os-specific/darwin/kwm/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
     downloadPage = "https://github.com/koekeishiya/kwm/releases";
     platforms = platforms.darwin;
     maintainers = with maintainers; [ lnl7 ];
+    mainProgram = "kwmc";
     license = licenses.mit;
   };
 }
diff --git a/pkgs/os-specific/darwin/mas/default.nix b/pkgs/os-specific/darwin/mas/default.nix
index 907d21853273f..33a3114c3d6e4 100644
--- a/pkgs/os-specific/darwin/mas/default.nix
+++ b/pkgs/os-specific/darwin/mas/default.nix
@@ -1,38 +1,41 @@
 { lib
-, stdenv
+, stdenvNoCC
 , fetchurl
-, libarchive
-, p7zip
+, installShellFiles
+, testVersion
+, mas
 }:
 
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
   pname = "mas";
-  version = "1.8.2";
+  version = "1.8.6";
 
   src = fetchurl {
-    url = "https://github.com/mas-cli/mas/releases/download/v${version}/mas.pkg";
-    sha256 = "HlLQKBVIYKanS6kjkbYdabBi1T0irxE6fNd2H6mDKe4=";
+    # Use the tarball until https://github.com/mas-cli/mas/issues/452 is fixed.
+    # Even though it looks like an OS/arch specific build it is actually a universal binary.
+    url = "https://github.com/mas-cli/mas/releases/download/v${version}/mas-${version}.monterey.bottle.tar.gz";
+    sha256 = "0q4skdhymgn5xrwafyisfshx327faia682yv83mf68r61m2jl10d";
   };
 
-  nativeBuildInputs = [ libarchive p7zip ];
-
-  unpackPhase = ''
-    7z x $src
-    bsdtar -xf Payload~
-  '';
-
-  dontBuild = true;
+  nativeBuildInputs = [ installShellFiles ];
 
   installPhase = ''
-    mkdir -p $out
-    cp -r ./usr/local/bin $out
+    install -D './${version}/bin/mas' "$out/bin/mas"
+    installShellCompletion --cmd mas --bash './${version}/etc/bash_completion.d/mas'
   '';
 
+  passthru.tests = {
+    version = testVersion {
+      package = mas;
+      command = "mas version";
+    };
+  };
+
   meta = with lib; {
     description = "Mac App Store command line interface";
     homepage = "https://github.com/mas-cli/mas";
     license = licenses.mit;
-    maintainers = with maintainers; [ zachcoyle ];
-    platforms = platforms.darwin;
+    maintainers = with maintainers; [ steinybot zachcoyle ];
+    platforms = [ "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/pkgs/os-specific/darwin/moltenvk/default.nix b/pkgs/os-specific/darwin/moltenvk/default.nix
index dc7f3f58fd3a8..b2bc7e376b5e0 100644
--- a/pkgs/os-specific/darwin/moltenvk/default.nix
+++ b/pkgs/os-specific/darwin/moltenvk/default.nix
@@ -29,7 +29,7 @@ let
 in
 stdenvNoCC.mkDerivation rec {
   pname = "MoltenVK";
-  version = "1.1.8";
+  version = "1.1.9";
 
   buildInputs = [
     AppKit
@@ -51,8 +51,8 @@ stdenvNoCC.mkDerivation rec {
       src = fetchFromGitHub {
         owner = "KhronosGroup";
         repo = "glslang";
-        rev = "90d4bd05cd77ef5782a6779a0fe3d084440dc80d";
-        hash = "sha256-Q0sk4bPj/skPat1n4GJyuXAlZqpfEn4Td8Bm2IBNUqE=";
+        rev = "9bb8cfffb0eed010e07132282c41d73064a7a609";
+        hash = "sha256-YLn/Mxuk6mXPGtBBgfwky5Nl1TCAW6i2g+AZLzqVz+A=";
       };
     })).override {
       inherit (passthru) spirv-headers spirv-tools;
@@ -64,27 +64,24 @@ stdenvNoCC.mkDerivation rec {
       src = fetchFromGitHub {
         owner = "KhronosGroup";
         repo = "SPIRV-Cross";
-        rev = "131278458ea8eebe6a6e9c476fbcf71278726e1a";
-        hash = "sha256-LrRYDFGv3Zxfy4qRNLwM2OOa8jbcq0ttPxDamCH21xU=";
+        rev = "0d4ce028bf8b8a94d325dc1e1c20446153ba19c4";
+        hash = "sha256-OluTxOEfDIGMdrXhvIifjpMgZBvyh9ofLKxKt0dX5ZU=";
       };
     });
     spirv-headers = spirv-headers.overrideAttrs (_: {
       src = fetchFromGitHub {
         owner = "KhronosGroup";
         repo = "spirv-headers";
-        rev = "b42ba6d92faf6b4938e6f22ddd186dbdacc98d78";
-        hash = "sha256-ks9JCj5rj+Xu++7z5RiHDkU3/sFXhcScw8dATfB/ot0";
+        rev = "4995a2f2723c401eb0ea3e10c81298906bf1422b";
+        hash = "sha256-LkIrTFWYvZffLVJJW3152um5LTEsMJEDEsIhBAdhBlk=";
       };
     });
     spirv-tools = (spirv-tools.overrideAttrs (old: {
       src = fetchFromGitHub {
         owner = "KhronosGroup";
         repo = "spirv-tools";
-        rev = "45dd184c790d6bfc78a5a74a10c37e888b1823fa";
-        hash = "sha256-DSqZlwfNTbN4fyIrVBKltm5U2U4GthW3L+Ksw4lSVG8=";
-      };
-      meta = old.meta // {
-        platforms = old.meta.platforms ++ lib.platforms.darwin;
+        rev = "eed5c76a57bb965f2e1b56d1dc40b50910b5ec1d";
+        hash = "sha256-2Mr3HbhRslLpRfwHascl7e/UoPijhrij9Bjg3aCiqBM=";
       };
     })).override {
       inherit (passthru) spirv-headers;
@@ -93,11 +90,8 @@ stdenvNoCC.mkDerivation rec {
       src = fetchFromGitHub {
         owner = "KhronosGroup";
         repo = "Vulkan-Headers";
-        rev = "1dace16d8044758d32736eb59802d171970e9448";
-        hash = "sha256-C6YgxWcinI3QumcWmoJaiTAf0u6jSDc8sCIarn2t04k";
-      };
-      meta = old.meta // {
-        platforms = old.meta.platforms ++ lib.platforms.darwin;
+        rev = "76f00ef6cbb1886eb1162d1fa39bee8b51e22ee8";
+        hash = "sha256-FqrcFHsUS8e4ZgZpxVc8nNZWdNltniFmMjyyWVoNc7w=";
       };
     });
   };
@@ -106,7 +100,7 @@ stdenvNoCC.mkDerivation rec {
     owner = "KhronosGroup";
     repo = "MoltenVK";
     rev = "v${version}";
-    hash = "sha256-IfTBtA2fM7YN4qaSDUTfsiCXzn+omSV6oroL1ivKiVA=";
+    hash = "sha256-5ie1IGzZqaYbciFnrBJ1/9V0LEuz7JsEOFXXkG3hJzg=";
   };
 
   patches = [
diff --git a/pkgs/os-specific/linux/anbox/kmod.nix b/pkgs/os-specific/linux/anbox/kmod.nix
index 9ce65cd87261c..553712d21a7fe 100644
--- a/pkgs/os-specific/linux/anbox/kmod.nix
+++ b/pkgs/os-specific/linux/anbox/kmod.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation {
     homepage = "https://github.com/anbox/anbox-modules";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
-    broken = kernel.kernelOlder "4.4" || kernel.kernelAtLeast "5.5";
+    broken = kernel.kernelAtLeast "5.5";
     maintainers = with maintainers; [ edwtjo ];
   };
 }
diff --git a/pkgs/os-specific/linux/apfs/default.nix b/pkgs/os-specific/linux/apfs/default.nix
index 98fd83ed5d518..eedaa9ef96872 100644
--- a/pkgs/os-specific/linux/apfs/default.nix
+++ b/pkgs/os-specific/linux/apfs/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation {
   pname = "apfs";
-  version = "unstable-2021-09-21-${kernel.version}";
+  version = "unstable-2022-02-03-${kernel.version}";
 
   src = fetchFromGitHub {
     owner = "linux-apfs";
     repo = "linux-apfs-rw";
-    rev = "362c4e32ab585b9234a26aa3e49f29b605612a31";
-    sha256 = "sha256-Y8/PGPLirNrICF+Bum60v/DBPa1xpox5VBvt64myZzs=";
+    rev = "a0d6a4dca69b6eab3cabaaee4d4284807828a266";
+    sha256 = "sha256-3T1BNc6g3SDTxb0VrronLUIp/CWbwnzXTsc8Qk5c4jY=";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/pkgs/os-specific/linux/apparmor/default.nix b/pkgs/os-specific/linux/apparmor/default.nix
index 5c1cf272e0e79..a7afd83862457 100644
--- a/pkgs/os-specific/linux/apparmor/default.nix
+++ b/pkgs/os-specific/linux/apparmor/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, fetchpatch, makeWrapper, autoreconfHook
+{ stdenv, lib, fetchFromGitLab, fetchpatch, makeWrapper, autoreconfHook
 , pkg-config, which
 , flex, bison
 , linuxHeaders ? stdenv.cc.libc.linuxHeaders
@@ -21,7 +21,7 @@
 }:
 
 let
-  apparmor-version = "3.0.3";
+  apparmor-version = "3.0.4";
 
   apparmor-meta = component: with lib; {
     homepage = "https://apparmor.net/";
@@ -31,9 +31,11 @@ let
     platforms = platforms.linux;
   };
 
-  apparmor-sources = fetchurl {
-    url = "https://launchpad.net/apparmor/${lib.versions.majorMinor apparmor-version}/${apparmor-version}/+download/apparmor-${apparmor-version}.tar.gz";
-    sha256 = "0nasq8pdmzkrf856yg1v8z5hcs0nn6gw2qr60ab0a7j9ixfv0g8m";
+  apparmor-sources = fetchFromGitLab {
+    owner = "apparmor";
+    repo = "apparmor";
+    rev = "v${apparmor-version}";
+    sha256 = "1a217j28rgfq4lsmpn0wv1xgmdr9ba8iysv9i6q477kj6z77zrb9";
   };
 
   aa-teardown = writeShellScript "aa-teardown" ''
@@ -48,8 +50,9 @@ let
     substituteInPlace ./common/Make.rules \
       --replace "/usr/bin/pod2man" "${buildPackages.perl}/bin/pod2man" \
       --replace "/usr/bin/pod2html" "${buildPackages.perl}/bin/pod2html" \
-      --replace "/usr/include/linux/capability.h" "${linuxHeaders}/include/linux/capability.h" \
       --replace "/usr/share/man" "share/man"
+    substituteInPlace ./utils/Makefile \
+      --replace "/usr/include/linux/capability.h" "${linuxHeaders}/include/linux/capability.h"
   '';
 
   patches = lib.optionals stdenv.hostPlatform.isMusl [
@@ -60,6 +63,8 @@ let
     })
   ];
 
+  python = python3.withPackages (ps: with ps; [ setuptools ]);
+
   # Set to `true` after the next FIXME gets fixed or this gets some
   # common derivation infra. Too much copy-paste to fix one by one.
   doCheck = false;
@@ -86,19 +91,16 @@ let
       ncurses
       which
       perl
-    ] ++ lib.optional withPython python3;
+    ] ++ lib.optional withPython python;
 
     buildInputs = lib.optional withPerl perl
-      ++ lib.optional withPython python3;
+      ++ lib.optional withPython python;
 
     # required to build apparmor-parser
     dontDisableStatic = true;
 
     prePatch = prePatchCommon + ''
       substituteInPlace ./libraries/libapparmor/swig/perl/Makefile.am --replace install_vendor install_site
-      substituteInPlace ./libraries/libapparmor/swig/perl/Makefile.in --replace install_vendor install_site
-      substituteInPlace ./libraries/libapparmor/src/Makefile.am --replace "/usr/include/netinet/in.h" "${lib.getDev stdenv.cc.libc}/include/netinet/in.h"
-      substituteInPlace ./libraries/libapparmor/src/Makefile.in --replace "/usr/include/netinet/in.h" "${lib.getDev stdenv.cc.libc}/include/netinet/in.h"
     '';
     inherit patches;
 
@@ -132,12 +134,12 @@ let
 
     strictDeps = true;
 
-    nativeBuildInputs = [ makeWrapper which python3 ];
+    nativeBuildInputs = [ makeWrapper which python ];
 
     buildInputs = [
       bash
       perl
-      python3
+      python
       libapparmor
       libapparmor.python
     ];
@@ -159,7 +161,7 @@ let
     postInstall = ''
       sed -i $out/bin/aa-unconfined -e "/my_env\['PATH'\]/d"
       for prog in aa-audit aa-autodep aa-cleanprof aa-complain aa-disable aa-enforce aa-genprof aa-logprof aa-mergeprof aa-unconfined ; do
-        wrapProgram $out/bin/$prog --prefix PYTHONPATH : "$out/lib/${python3.libPrefix}/site-packages:$PYTHONPATH"
+        wrapProgram $out/bin/$prog --prefix PYTHONPATH : "$out/lib/${python.sitePackages}:$PYTHONPATH"
       done
 
       substituteInPlace $out/bin/aa-notify \
diff --git a/pkgs/os-specific/linux/audit/default.nix b/pkgs/os-specific/linux/audit/default.nix
index e9762f44dcdca..6d14a3293fca4 100644
--- a/pkgs/os-specific/linux/audit/default.nix
+++ b/pkgs/os-specific/linux/audit/default.nix
@@ -69,6 +69,13 @@ stdenv.mkDerivation rec {
       sha256 = "0qjq41ridyamajz9v9nyplgq7f8nn3fxw375s9sa5a0igsrx9pm0";
       excludes = [ "ChangeLog" ];
     })
+    # Fix pending upstream inclusion for linux-headers-5.17 support:
+    #  https://github.com/linux-audit/audit-userspace/pull/253
+    (fetchpatch {
+      name = "ignore-flexible-array.patch";
+      url = "https://github.com/linux-audit/audit-userspace/commit/beed138222421a2eb4212d83cb889404bd7efc49.patch";
+      sha256 = "1hf02zaxv6x0wmn4ca9fj48y2shks7vfna43i1zz58xw9jq7sza0";
+    })
   ];
 
   postPatch = ''
diff --git a/pkgs/os-specific/linux/autofs/default.nix b/pkgs/os-specific/linux/autofs/default.nix
index 7b29f5a0e5cfe..5e552301fe48e 100644
--- a/pkgs/os-specific/linux/autofs/default.nix
+++ b/pkgs/os-specific/linux/autofs/default.nix
@@ -1,5 +1,7 @@
 { lib, stdenv, fetchurl, flex, bison, linuxHeaders, libtirpc, mount, umount, nfs-utils, e2fsprogs
-, libxml2, libkrb5, kmod, openldap, sssd, cyrus_sasl, openssl, rpcsvc-proto }:
+, libxml2, libkrb5, kmod, openldap, sssd, cyrus_sasl, openssl, rpcsvc-proto
+, fetchpatch
+}:
 
 stdenv.mkDerivation rec {
   version = "5.1.6";
@@ -10,6 +12,15 @@ stdenv.mkDerivation rec {
     sha256 = "1vya21mb4izj3khcr3flibv7xc15vvx2v0rjfk5yd31qnzcy7pnx";
   };
 
+  patches = [
+    # glibc 2.34 compat
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/autofs/raw/cc745af5e42396d540d5b3b92fae486e232bf6bd/f/autofs-5.1.7-use-default-stack-size-for-threads.patch";
+      sha256 = "sha256-6ETDFbW7EhHR03xFWF+6OJBgn9NX3WW3bGhTNGodaOc=";
+      excludes = [ "CHANGELOG" ];
+    })
+  ];
+
   preConfigure = ''
     configureFlags="--enable-force-shutdown --enable-ignore-busy --with-path=$PATH"
     export sssldir="${sssd}/lib/sssd/modules"
diff --git a/pkgs/os-specific/linux/batman-adv/default.nix b/pkgs/os-specific/linux/batman-adv/default.nix
index 123c42e839712..79dc48a6ea9c9 100644
--- a/pkgs/os-specific/linux/batman-adv/default.nix
+++ b/pkgs/os-specific/linux/batman-adv/default.nix
@@ -1,4 +1,9 @@
-{ lib, stdenv, fetchurl, kernel }:
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, kernel
+}:
 
 let cfg = import ./version.nix; in
 
@@ -11,6 +16,19 @@ stdenv.mkDerivation rec {
     sha256 = cfg.sha256.${pname};
   };
 
+  patches = [
+    #  batman-adv: make mc_forwarding atomic
+    (fetchpatch {
+      url = "https://git.open-mesh.org/batman-adv.git/blobdiff_plain/c142c00f6b1a2ad5f5d74202fb1249e6a6575407..56db7c0540e733a1f063ccd6bab1b537a80857eb:/net/batman-adv/multicast.c";
+      hash = "sha256-2zXg8mZ3/iK9E/kyn+wHSrlLq87HuK72xuXojQ9KjkI=";
+    })
+    #  batman-adv: compat: Add atomic mc_fowarding support for stable kernels
+    (fetchpatch {
+      url = "https://git.open-mesh.org/batman-adv.git/blobdiff_plain/f07a0c37ab278fb6a9e95cad89429b1282f1ab59..350adcaec82fbaa358a2406343b6130ac8dad126:/net/batman-adv/multicast.c";
+      hash = "sha256-r/Xp5bmDo9GVfAF6bn2Xq+cOq5ddQe+D5s/h37uI6bM=";
+    })
+  ];
+
   nativeBuildInputs = kernel.moduleBuildDependencies;
   makeFlags = kernel.makeFlags ++ [
     "KERNELPATH=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
diff --git a/pkgs/os-specific/linux/batman-adv/version.nix b/pkgs/os-specific/linux/batman-adv/version.nix
index 048318e3e33a1..12a7f26a336ef 100644
--- a/pkgs/os-specific/linux/batman-adv/version.nix
+++ b/pkgs/os-specific/linux/batman-adv/version.nix
@@ -1,9 +1,9 @@
 {
-  version = "2021.4";
+  version = "2022.0";
 
   sha256 = {
-    batman-adv = "06zbyf8s7njn6wdm1fdq3kl8kx1vx4spxkgiy7dx0pq4c3qs5xyg";
-    alfred = "15fbw80ix95zy8i4c6acm1631vxlz2hakjv4zv5wig74bp2bcyac";
-    batctl = "1ryqz90av2p5pgmmpi1afmycd18zhpwz1i4f7r0s359jis86xndn";
+    batman-adv = "sha256-STOHBbwgdwmshNdmaI5wJXEAnIJ8CjIHiOpR+4h3FKo=";
+    alfred = "sha256-q7odrGHsz81jKeczHQVV/syTd2D7NsbPVc5sHXUc/Zg=";
+    batctl = "sha256-iTlm+aLWpQch3hJM5i2l096cIOBVdspIK8VwTMWm9z0=";
   };
 }
diff --git a/pkgs/os-specific/linux/bluez/default.nix b/pkgs/os-specific/linux/bluez/default.nix
index ab9b7055fdda4..1f6fb31d93db7 100644
--- a/pkgs/os-specific/linux/bluez/default.nix
+++ b/pkgs/os-specific/linux/bluez/default.nix
@@ -22,11 +22,11 @@
   ];
 in stdenv.mkDerivation rec {
   pname = "bluez";
-  version = "5.63";
+  version = "5.64";
 
   src = fetchurl {
     url = "mirror://kernel/linux/bluetooth/${pname}-${version}.tar.xz";
-    sha256 = "sha256-k0nhHoFguz1yCDXScSUNinQk02kPUonm22/gfMZsbXY=";
+    sha256 = "sha256-rkN+ZbazBwwZi8WwEJ/pzeueqjhzgOIHL53mX+ih3jQ=";
   };
 
   buildInputs = [
diff --git a/pkgs/os-specific/linux/broadcom-sta/default.nix b/pkgs/os-specific/linux/broadcom-sta/default.nix
index 5d86c2311f1fa..b15c61488cbb0 100644
--- a/pkgs/os-specific/linux/broadcom-sta/default.nix
+++ b/pkgs/os-specific/linux/broadcom-sta/default.nix
@@ -39,6 +39,8 @@ stdenv.mkDerivation {
     ./linux-5.6.patch
     # source: https://gist.github.com/joanbm/5c640ac074d27fd1d82c74a5b67a1290
     ./linux-5.9.patch
+    # source: https://github.com/archlinux/svntogit-community/blob/5ec5b248976f84fcd7e3d7fae49ee91289912d12/trunk/012-linux517.patch
+    ./linux-5.17.patch
     ./null-pointer-fix.patch
     ./gcc.patch
   ];
diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-5.17.patch b/pkgs/os-specific/linux/broadcom-sta/linux-5.17.patch
new file mode 100644
index 0000000000000..74847cb6bb407
--- /dev/null
+++ b/pkgs/os-specific/linux/broadcom-sta/linux-5.17.patch
@@ -0,0 +1,39 @@
+diff -u -r a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
+--- a/src/wl/sys/wl_linux.c	2022-03-23 00:35:42.930416350 +0000
++++ b/src/wl/sys/wl_linux.c	2022-03-23 00:40:12.903771013 +0000
+@@ -2980,7 +2980,11 @@
+ 	else
+ 		dev->type = ARPHRD_IEEE80211_RADIOTAP;
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 17, 0)
+ 	bcopy(wl->dev->dev_addr, dev->dev_addr, ETHER_ADDR_LEN);
++#else
++	eth_hw_addr_set(wl->dev, dev->dev_addr);
++#endif
+ 
+ #if defined(WL_USE_NETDEV_OPS)
+ 	dev->netdev_ops = &wl_netdev_monitor_ops;
+@@ -3261,7 +3265,11 @@
+ static ssize_t
+ wl_proc_read(struct file *filp, char __user *buffer, size_t length, loff_t *offp)
+ {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 17, 0)
+ 	wl_info_t * wl = PDE_DATA(file_inode(filp));
++#else
++	wl_info_t * wl = pde_data(file_inode(filp));
++#endif
+ #endif
+ 	int bcmerror, len;
+ 	int to_user = 0;
+@@ -3318,7 +3326,11 @@
+ static ssize_t
+ wl_proc_write(struct file *filp, const char __user *buff, size_t length, loff_t *offp)
+ {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 17, 0)
+ 	wl_info_t * wl = PDE_DATA(file_inode(filp));
++#else
++	wl_info_t * wl = pde_data(file_inode(filp));
++#endif
+ #endif
+ 	int from_user = 0;
+ 	int bcmerror;
diff --git a/pkgs/os-specific/linux/busybox/default.nix b/pkgs/os-specific/linux/busybox/default.nix
index 7aaedb5b1acdc..636a07edddfd8 100644
--- a/pkgs/os-specific/linux/busybox/default.nix
+++ b/pkgs/os-specific/linux/busybox/default.nix
@@ -50,14 +50,14 @@ in
 
 stdenv.mkDerivation rec {
   pname = "busybox";
-  version = "1.34.1";
+  version = "1.35.0";
 
   # Note to whoever is updating busybox: please verify that:
   # nix-build pkgs/stdenv/linux/make-bootstrap-tools.nix -A test
   # still builds after the update.
   src = fetchurl {
     url = "https://busybox.net/downloads/${pname}-${version}.tar.bz2";
-    sha256 = "0jfm9fik7nv4w21zqdg830pddgkdjmplmna9yjn9ck1lwn4vsps1";
+    sha256 = "sha256-+u6yRMNaNIozT0pZ5EYm7ocPsHtohNaMEK6LwZ+DppQ=";
   };
 
   hardeningDisable = [ "format" "pie" ]
@@ -65,6 +65,16 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./busybox-in-store.patch
+    (fetchurl {
+      name = "CVE-2022-28391.patch";
+      url = "https://git.alpinelinux.org/aports/plain/main/busybox/0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch?id=ed92963eb55bbc8d938097b9ccb3e221a94653f4";
+      sha256 = "sha256-yviw1GV+t9tbHbY7YNxEqPi7xEreiXVqbeRyf8c6Awo=";
+    })
+    (fetchurl {
+      name = "CVE-2022-28391.patch";
+      url = "https://git.alpinelinux.org/aports/plain/main/busybox/0002-nslookup-sanitize-all-printed-strings-with-printable.patch?id=ed92963eb55bbc8d938097b9ccb3e221a94653f4";
+      sha256 = "sha256-vl1wPbsHtXY9naajjnTicQ7Uj3N+EQ8pRNnrdsiow+w=";
+    })
   ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ./clang-cross.patch;
 
   separateDebugInfo = true;
diff --git a/pkgs/os-specific/linux/conky/default.nix b/pkgs/os-specific/linux/conky/default.nix
index 9bd8890e71348..87f5bb052f488 100644
--- a/pkgs/os-specific/linux/conky/default.nix
+++ b/pkgs/os-specific/linux/conky/default.nix
@@ -1,7 +1,7 @@
 { config, lib, stdenv, fetchFromGitHub, pkg-config, cmake
 
 # dependencies
-, glib, libXinerama
+, glib, libXinerama, catch2
 
 # optional features without extra dependencies
 , mpdSupport          ? true
@@ -85,6 +85,8 @@ stdenv.mkDerivation rec {
     sed -i 's/ Example: .*$//' doc/config_settings.xml
 
     substituteInPlace cmake/Conky.cmake --replace "# set(RELEASE true)" "set(RELEASE true)"
+
+    cp ${catch2}/include/catch2/catch.hpp tests/catch2/catch.hpp
   '';
 
   NIX_LDFLAGS = "-lgcc_s";
@@ -133,6 +135,8 @@ stdenv.mkDerivation rec {
   # src/conky.cc:137:23: fatal error: defconfig.h: No such file or directory
   enableParallelBuilding = false;
 
+  doCheck = true;
+
   meta = with lib; {
     homepage = "http://conky.sourceforge.net/";
     description = "Advanced, highly configurable system monitor based on torsmo";
diff --git a/pkgs/os-specific/linux/cryptsetup/default.nix b/pkgs/os-specific/linux/cryptsetup/default.nix
index a9bd508d16ecd..be819802394e5 100644
--- a/pkgs/os-specific/linux/cryptsetup/default.nix
+++ b/pkgs/os-specific/linux/cryptsetup/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   pname = "cryptsetup";
   version = "2.4.3";
 
-  outputs = [ "out" "dev" "man" ];
+  outputs = [ "bin" "out" "dev" "man" ];
   separateDebugInfo = true;
 
   src = fetchurl {
@@ -31,6 +31,12 @@ stdenv.mkDerivation rec {
     "--enable-cryptsetup-reencrypt"
     "--with-crypto_backend=openssl"
     "--disable-ssh-token"
+  ] ++ lib.optionals stdenv.hostPlatform.isStatic [
+    "--disable-external-tokens"
+    # We have to override this even though we're removing token
+    # support, because the path still gets included in the binary even
+    # though it isn't used.
+    "--with-luks2-external-tokens-path=/"
   ];
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/os-specific/linux/digimend/default.nix b/pkgs/os-specific/linux/digimend/default.nix
index e26509d3a7cb4..b0ae7cc85088d 100644
--- a/pkgs/os-specific/linux/digimend/default.nix
+++ b/pkgs/os-specific/linux/digimend/default.nix
@@ -1,7 +1,5 @@
 { lib, stdenv, fetchFromGitHub, fetchpatch, kernel }:
 
-assert lib.versionAtLeast kernel.version "3.5";
-
 stdenv.mkDerivation rec {
   pname = "digimend";
   version = "unstable-2019-06-18";
diff --git a/pkgs/os-specific/linux/displaylink/default.nix b/pkgs/os-specific/linux/displaylink/default.nix
index e7e572ce18e14..1823613a58a48 100644
--- a/pkgs/os-specific/linux/displaylink/default.nix
+++ b/pkgs/os-specific/linux/displaylink/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
       --set-rpath ${libPath} \
       $out/bin/DisplayLinkManager
     wrapProgram $out/bin/DisplayLinkManager \
-      --run "cd $out/lib/displaylink"
+      --chdir "$out/lib/displaylink"
 
     # We introduce a dependency on the source file so that it need not be redownloaded everytime
     echo $src >> "$out/share/workspace_dependencies.pin"
diff --git a/pkgs/os-specific/linux/ell/default.nix b/pkgs/os-specific/linux/ell/default.nix
index aa8e3f15aab27..d79201cc4cd18 100644
--- a/pkgs/os-specific/linux/ell/default.nix
+++ b/pkgs/os-specific/linux/ell/default.nix
@@ -7,14 +7,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ell";
-  version = "0.46";
+  version = "0.49";
 
   outputs = [ "out" "dev" ];
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/libs/ell/ell.git";
     rev = version;
-    sha256 = "sha256-Am1PNFFfSzII4Iaeq0wgfuVHSeMDjiDzYkNQWlnEHJY=";
+    sha256 = "sha256-/5ivelqRDvJuPVJqMs27VJUIq7/Dw6ROt/cmjSo309s=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/os-specific/linux/ena/default.nix b/pkgs/os-specific/linux/ena/default.nix
index 5873a2fe2c1d4..9f2f8682078d7 100644
--- a/pkgs/os-specific/linux/ena/default.nix
+++ b/pkgs/os-specific/linux/ena/default.nix
@@ -42,6 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = [ maintainers.eelco ];
     platforms = platforms.linux;
-    broken = kernel.kernelOlder "4.5" || kernel.kernelAtLeast "5.15";
+    broken = kernel.kernelAtLeast "5.15";
   };
 }
diff --git a/pkgs/os-specific/linux/facetimehd/default.nix b/pkgs/os-specific/linux/facetimehd/default.nix
index 163001638cda7..27bbfcc67671d 100644
--- a/pkgs/os-specific/linux/facetimehd/default.nix
+++ b/pkgs/os-specific/linux/facetimehd/default.nix
@@ -1,9 +1,9 @@
 { stdenv, lib, fetchFromGitHub, kernel }:
 
-# facetimehd is not supported for kernels older than 3.19";
-assert lib.versionAtLeast kernel.version "3.19";
+stdenv.mkDerivation rec {
+  name = "facetimehd-${version}-${kernel.version}";
+  version = "unstable-2020-04-16";
 
-let
   # Note: When updating this revision:
   # 1. Also update pkgs/os-specific/linux/firmware/facetimehd-firmware/
   # 2. Test the module and firmware change via:
@@ -14,29 +14,11 @@ let
   #    e. see if the module loads back (apps using the camera won't
   #       recover and will have to be restarted) and the camera
   #       still works.
-  srcParams = if (lib.versionAtLeast kernel.version "4.8") then
-    { # Use mainline branch
-      version = "unstable-2020-04-16";
-      rev = "82626d4892eeb9eb704538bf0dc49a00725ff451";
-      sha256 = "118z6vjvhhcwvs4n3sgwwdagys9w718b8nkh6l9ic93732vv7cqx";
-    }
-  else
-    { # Use master branch (broken on 4.8)
-      version = "unstable-2016-05-02";
-      rev = "5a7083bd98b38ef3bd223f7ee531d58f4fb0fe7c";
-      sha256 = "0d455kajvn5xav9iilqy7s1qvsy4yb8vzjjxx7bvcgp7aj9ljvdp";
-    }
-  ;
-in
-
-stdenv.mkDerivation rec {
-  name = "facetimehd-${version}-${kernel.version}";
-  version = srcParams.version;
-
   src = fetchFromGitHub {
     owner = "patjak";
     repo = "bcwc_pcie";
-    inherit (srcParams) rev sha256;
+    rev = "82626d4892eeb9eb704538bf0dc49a00725ff451";
+    sha256 = "118z6vjvhhcwvs4n3sgwwdagys9w718b8nkh6l9ic93732vv7cqx";
   };
 
   preConfigure = ''
diff --git a/pkgs/os-specific/linux/firmware/fwupd/default.nix b/pkgs/os-specific/linux/firmware/fwupd/default.nix
index 272bd6dbe8fc0..12a99b7231377 100644
--- a/pkgs/os-specific/linux/firmware/fwupd/default.nix
+++ b/pkgs/os-specific/linux/firmware/fwupd/default.nix
@@ -116,7 +116,7 @@ let
 
   self = stdenv.mkDerivation rec {
     pname = "fwupd";
-    version = "1.7.6";
+    version = "1.7.7";
 
     # libfwupd goes to lib
     # daemon, plug-ins and libfwupdplugin go to out
@@ -125,7 +125,7 @@ let
 
     src = fetchurl {
       url = "https://people.freedesktop.org/~hughsient/releases/fwupd-${version}.tar.xz";
-      sha256 = "sha256-fr4VFKy2iNJknOzDktuSkJTaPwPPyYqcD6zKuwhJEvo=";
+      sha256 = "sha256-QUmU06zfZ0qQ9wotoW2k4XalrRH+Y25qs/DhpJ4GKWk=";
     };
 
     patches = [
@@ -153,13 +153,6 @@ let
 
       # EFI capsule is located in fwupd-efi now.
       ./efi-app-path.patch
-
-      # Drop hard-coded FHS path
-      # https://github.com/fwupd/fwupd/issues/4360
-      (fetchpatch {
-        url = "https://github.com/fwupd/fwupd/commit/14cc2e7ee471b66ee2ef54741f4bec1f92204620.patch";
-        sha256 = "47682oqE66Y6QKPtN2mYpnb2+TIJFqBgsgx60LmC3FM=";
-      })
     ];
 
     nativeBuildInputs = [
@@ -323,7 +316,6 @@ let
     passthru = {
       filesInstalledToEtc = [
         "fwupd/daemon.conf"
-        "fwupd/msr.conf"
         "fwupd/remotes.d/lvfs-testing.conf"
         "fwupd/remotes.d/lvfs.conf"
         "fwupd/remotes.d/vendor.conf"
@@ -341,6 +333,8 @@ let
         "fwupd/remotes.d/dell-esrt.conf"
       ] ++ lib.optionals haveRedfish [
         "fwupd/redfish.conf"
+      ] ++ lib.optionals haveMSR [
+        "fwupd/msr.conf"
       ];
 
       # DisabledPlugins key in fwupd/daemon.conf
diff --git a/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix b/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix
index 4ade35845ecbf..72ae31c4b2dc6 100644
--- a/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix
+++ b/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation {
   pname = "raspberrypi-wireless-firmware";
-  version = "2021-11-02";
+  version = "2021-12-06";
 
   srcs = [
     (fetchFromGitHub {
@@ -10,14 +10,14 @@ stdenv.mkDerivation {
       owner = "RPi-Distro";
       repo = "bluez-firmware";
       rev = "e7fd166981ab4bb9a36c2d1500205a078a35714d";
-      sha256 = "1dkg8mzn7n4afi50ibrda2s33nw2qj52jjjdv9w560q601gms47b";
+      hash = "sha256-6xBdXwAGA1N42k1KKYrEgtsxtFAtrwhKdIrYY39Fb7Y=";
     })
     (fetchFromGitHub {
       name = "firmware-nonfree";
       owner = "RPi-Distro";
       repo = "firmware-nonfree";
-      rev = "54ffdd6e2ea6055d46656b78e148fe7def3ec9d8";
-      sha256 = "4WTrs/tUyOugufRrrh0qsEmhPclQD64ypYysxsnOyS8=";
+      rev = "99d5c588e95ec9c9b86d7e88d3cf85b4f729d2bc";
+      hash = "sha256-xg6fYQvg7t2ikyLI8/XfpiNaNTf7CNFQlAzpTldTz10=";
     })
   ];
 
@@ -44,7 +44,7 @@ stdenv.mkDerivation {
 
   outputHashMode = "recursive";
   outputHashAlgo = "sha256";
-  outputHash = "l+7VOq7CV5QA8/FWjMBGDcxq8Qe7NFf6E2Y42htZEgE=";
+  outputHash = "sha256-Fw8EC1jzszWg9rNH01oaOIHnSYDuF6ov6ulmIAPuNz4=";
 
   meta = with lib; {
     description = "Firmware for builtin Wifi/Bluetooth devices in the Raspberry Pi 3+ and Zero W";
diff --git a/pkgs/os-specific/linux/firmware/raspberrypi/default.nix b/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
index 7f0eef05dc4ee..9181a94dcb66a 100644
--- a/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
+++ b/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenvNoCC, fetchurl, unzip }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
 stdenvNoCC.mkDerivation rec {
   # NOTE: this should be updated with linux_rpi
   pname = "raspberrypi-firmware";
-  version = "1.20220118";
+  version = "1.20220331";
 
-  src = fetchurl {
-    url = "https://github.com/raspberrypi/firmware/archive/${version}.zip";
-    sha256 = "sha256-98rbwKIuB7vb4MWbFCr7TYsvJB0HzPdH8Tw0+bktK/M=";
+  src = fetchFromGitHub {
+    owner = "raspberrypi";
+    repo = "firmware";
+    rev = version;
+    hash = "sha256-TxlpHPEJAtVJTtDghuJpx2mLjEPiKkcAr7S9Cd/cocE=";
   };
 
-  nativeBuildInputs = [ unzip ];
-
   installPhase = ''
     mkdir -p $out/share/raspberrypi/
     mv boot "$out/share/raspberrypi/"
@@ -26,5 +26,6 @@ stdenvNoCC.mkDerivation rec {
     homepage = "https://github.com/raspberrypi/firmware";
     license = licenses.unfreeRedistributableFirmware; # See https://github.com/raspberrypi/firmware/blob/master/boot/LICENCE.broadcom
     maintainers = with maintainers; [ dezgeg ];
+    broken = stdenvNoCC.isDarwin; # Hash mismatch on source, mystery.
   };
 }
diff --git a/pkgs/os-specific/linux/firmware/sof-firmware/default.nix b/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
index 841e73cfc8bae..7192fbac47851 100644
--- a/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
+++ b/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
@@ -5,13 +5,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "sof-firmware";
-  version = "2.0";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "thesofproject";
     repo = "sof-bin";
     rev = "v${version}";
-    sha256 = "sha256-pDxNcDe/l1foFYuHB0w3YZidKIeH6h0IuwRmMzeMteE=";
+    sha256 = "sha256-/OYYfIJWMT+rBBhSCtHaSWvwRMlReEQ5y4FuMfk5zUg=";
   };
 
   dontFixup = true; # binaries must not be stripped or patchelfed
diff --git a/pkgs/os-specific/linux/fuse/common.nix b/pkgs/os-specific/linux/fuse/common.nix
index 7b9b35614a459..ac4deb19f51ce 100644
--- a/pkgs/os-specific/linux/fuse/common.nix
+++ b/pkgs/os-specific/linux/fuse/common.nix
@@ -31,7 +31,13 @@ in stdenv.mkDerivation rec {
       })
     ++ (if isFuse3
       then [ ./fuse3-install.patch ./fuse3-Do-not-set-FUSERMOUNT_DIR.patch ]
-      else [ ./fuse2-Do-not-set-FUSERMOUNT_DIR.patch ]);
+      else [
+        ./fuse2-Do-not-set-FUSERMOUNT_DIR.patch
+        (fetchpatch {
+          url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/fuse/files/fuse-2.9.9-closefrom-glibc-2-34.patch?id=8a970396fca7aca2d5a761b8e7a8242f1eef14c9";
+          sha256 = "sha256-ELYBW/wxRcSMssv7ejCObrpsJHtOPJcGq33B9yHQII4=";
+        })
+      ]);
 
   nativeBuildInputs = if isFuse3
     then [ meson ninja pkg-config ]
diff --git a/pkgs/os-specific/linux/iproute/default.nix b/pkgs/os-specific/linux/iproute/default.nix
index 74003ff83b831..64c54306333a3 100644
--- a/pkgs/os-specific/linux/iproute/default.nix
+++ b/pkgs/os-specific/linux/iproute/default.nix
@@ -1,15 +1,16 @@
 { lib, stdenv, fetchurl, fetchpatch
 , buildPackages, bison, flex, pkg-config
 , db, iptables, libelf, libmnl
+, gitUpdater
 }:
 
 stdenv.mkDerivation rec {
   pname = "iproute2";
-  version = "5.14.0";
+  version = "5.17.0";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/net/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1m4ifnxq7lxnm95l5354z8dk3xj6w9isxmbz53266drgln2sf3r1";
+    sha256 = "bjhPG0LHXhqdqsV4Zto33P+QkJC6huslpudk2niTZg4=";
   };
 
   patches = [
@@ -48,6 +49,13 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = gitUpdater {
+    inherit pname version;
+    # No nicer place to find latest release.
+    url = "https://git.kernel.org/pub/scm/network/iproute2/iproute2.git";
+    rev-prefix = "v";
+  };
+
   meta = with lib; {
     homepage = "https://wiki.linuxfoundation.org/networking/iproute2";
     description = "A collection of utilities for controlling TCP/IP networking and traffic control in Linux";
diff --git a/pkgs/os-specific/linux/iwd/default.nix b/pkgs/os-specific/linux/iwd/default.nix
index 72ecaffe5f50f..bc5811942a591 100644
--- a/pkgs/os-specific/linux/iwd/default.nix
+++ b/pkgs/os-specific/linux/iwd/default.nix
@@ -12,12 +12,12 @@
 
 stdenv.mkDerivation rec {
   pname = "iwd";
-  version = "1.20";
+  version = "1.26";
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/network/wireless/iwd.git";
     rev = version;
-    sha256 = "sha256-GcqmMqrZSgvSrsY8FJbPynNWTzSi5A6kmyq+xJ+2i3Y=";
+    sha256 = "sha256-+BciYfb9++u9Ux4AdvPFFIFVq8j+TVoTLKqxzmn5p3o=";
   };
 
   outputs = [ "out" "man" "doc" ]
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
   postUnpack = ''
     mkdir -p iwd/ell
     ln -s ${ell.src}/ell/useful.h iwd/ell/useful.h
+    ln -s ${ell.src}/ell/asn1-private.h iwd/ell/asn1-private.h
     patchShebangs .
   '';
 
diff --git a/pkgs/os-specific/linux/kbd/default.nix b/pkgs/os-specific/linux/kbd/default.nix
index 23a523b15d727..4c89d8c821972 100644
--- a/pkgs/os-specific/linux/kbd/default.nix
+++ b/pkgs/os-specific/linux/kbd/default.nix
@@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
   passthru.tests = {
     inherit (nixosTests) keymap kbd-setfont-decompress kbd-update-search-paths-patch;
   };
+  passthru.gzip = gzip;
 
   meta = with lib; {
     homepage = "https://kbd-project.org/";
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 153b41194b859..fdf54d302bf20 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -448,6 +448,9 @@ let
       NLS_CODEPAGE_437 = module; # VFAT default for the codepage= mount option
       NLS_ISO8859_1    = module; # VFAT default for the iocharset= mount option
 
+      # Needed to use the installation iso image. Not included in all defconfigs (e.g. arm64)
+      ISO9660_FS = module;
+
       DEVTMPFS = yes;
 
       UNICODE = whenAtLeast "5.2" yes; # Casefolding support for filesystems
@@ -906,6 +909,11 @@ let
       ANDROID_BINDER_IPC =     { optional = true; tristate = whenAtLeast "5.0" "y";};
       ANDROID_BINDERFS =       { optional = true; tristate = whenAtLeast "5.0" "y";};
       ANDROID_BINDER_DEVICES = { optional = true; freeform = whenAtLeast "5.0" "binder,hwbinder,vndbinder";};
+
+      TASKSTATS = yes;
+      TASK_DELAY_ACCT = yes;
+      TASK_XACCT = yes;
+      TASK_IO_ACCOUNTING = yes;
     } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "aarch64-linux") {
       # Enable CPU/memory hotplug support
       # Allows you to dynamically add & remove CPUs/memory to a VM client running NixOS without requiring a reboot
diff --git a/pkgs/os-specific/linux/kernel/generate-config.pl b/pkgs/os-specific/linux/kernel/generate-config.pl
index df807188f14f9..7e12ca5d96a95 100644
--- a/pkgs/os-specific/linux/kernel/generate-config.pl
+++ b/pkgs/os-specific/linux/kernel/generate-config.pl
@@ -81,7 +81,7 @@ sub runConfig {
                 my $question = $1; my $name = $2; my $alts = $3;
                 my $answer = "";
                 # Build everything as a module if possible.
-                $answer = "m" if $autoModules && $alts =~ /\/m/ && !($preferBuiltin && $alts =~ /Y/);
+                $answer = "m" if $autoModules && $alts =~ qr{\A(\w/)+m/(\w/)*\?\z} && !($preferBuiltin && $alts =~ /Y/);
                 $answer = $answers{$name} if defined $answers{$name};
                 print STDERR "QUESTION: $question, NAME: $name, ALTS: $alts, ANSWER: $answer\n" if $debug;
                 print OUT "$answer\n";
diff --git a/pkgs/os-specific/linux/kernel/gpio-utils.nix b/pkgs/os-specific/linux/kernel/gpio-utils.nix
index 9c7386f61c1d2..40e282bbf541d 100644
--- a/pkgs/os-specific/linux/kernel/gpio-utils.nix
+++ b/pkgs/os-specific/linux/kernel/gpio-utils.nix
@@ -2,8 +2,6 @@
 
 with lib;
 
-assert versionAtLeast linux.version "4.6";
-
 stdenv.mkDerivation {
   pname = "gpio-utils";
   version = linux.version;
diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix
index 0683e7d6ad4d0..edf274aa85cbe 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "4.14.274";
+  version = "4.14.275";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1bbz1w5l7im7dspq6g6iy5vahsxcaa1b2ykrw49m3pw8rf7m6hib";
+    sha256 = "1yaq5qhl694ygx17x998syg79yx72l3n9vzfkyf0g3idzdh9j2hh";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix
index ad58c3ef64138..5786079a47dea 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,12 +1,12 @@
 { buildPackages, fetchurl, perl, buildLinux, nixosTests, stdenv, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.9.309";
+  version = "4.9.310";
   extraMeta.branch = "4.9";
   extraMeta.broken = stdenv.isAarch64;
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "05468rk4hlz9ag1zb7shngn5rl42npw7haqbi5mpaa0yksl5asp8";
+    sha256 = "17d3isb1i52v8360vspnywjpsy9vvkc54k5kwdddj0plawvxklw5";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.10.nix b/pkgs/os-specific/linux/kernel/linux-5.10.nix
index 7b5c9cba1444f..f13ec02408e35 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.10.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.10.109";
+  version = "5.10.111";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "1p0k46isy2wzzms801lrnb59f1nb9mhywjj7fnkrwrj9nbn25yqq";
+    sha256 = "06mbl327bin8pv1073f7x37np3whklbvnh8lwn8wx4jmfvcb6c8q";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.15.nix b/pkgs/os-specific/linux/kernel/linux-5.15.nix
index dab27c119aa57..2286dd9ef75a1 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.15.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.15.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.15.32";
+  version = "5.15.34";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -15,6 +15,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "11nz2w6hgwy6va6sxf4ic1s4kv24zbpssgjxsq6n321h4bxcsqql";
+    sha256 = "0sfviwwp7qy8b5h15lg84dyskih4l082l9gs6yrqj3rg762lcld7";
   };
 } // (args.argsOverride or { }))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.16.nix b/pkgs/os-specific/linux/kernel/linux-5.16.nix
index 4dcb71c4f5cdd..e68e76597e3e7 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.16.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.16.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.16.18";
+  version = "5.16.20";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "096f80m2czj8khvil7s037pqdf1s6pklqn5d9419jqkz7v70piry";
+    sha256 = "09dz8zp8cxvsc5amrswqqrkxd3i92ay2samlcspalaw6iz40s1nq";
   };
 } // (args.argsOverride or { }))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.17.nix b/pkgs/os-specific/linux/kernel/linux-5.17.nix
index edd5339e103db..ae1ac1400d9e9 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.17.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.17.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.17.1";
+  version = "5.17.3";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "092cx18va108lb27kxx2b00ma3l9g22nmkk81034apx26bacbmbw";
+    sha256 = "0b0nb807r2pwrifc7yk0p9q6cm472ahggfaix6yiqzmqcvisil1j";
   };
 } // (args.argsOverride or { }))
diff --git a/pkgs/os-specific/linux/kernel/linux-rpi.nix b/pkgs/os-specific/linux/kernel/linux-rpi.nix
index 99b966ac5cdea..8654bc432ceb3 100644
--- a/pkgs/os-specific/linux/kernel/linux-rpi.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rpi.nix
@@ -2,9 +2,8 @@
 
 let
   # NOTE: raspberrypifw & raspberryPiWirelessFirmware should be updated with this
-  modDirVersion = "5.10.92";
-  tag = "1.20220118";
-  rev = "650082a559a570d6c9d2739ecc62843d6f951059";
+  modDirVersion = "5.15.32";
+  tag = "1.20220331";
 in
 lib.overrideDerivation (buildLinux (args // {
   version = "${modDirVersion}-${tag}";
@@ -13,8 +12,8 @@ lib.overrideDerivation (buildLinux (args // {
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "linux";
-    inherit rev;
-    sha256 = "sha256-OSDx9dzqm8JnLUvdiv1aKqhRz80uWqfjXLd7m6ycXME=";
+    rev = tag;
+    hash = "sha256-dJtOXe4yvZz/iu0Ly5F9/E/2GbpTJF/9ZMU3rC1nKMw=";
   };
 
   defconfig = {
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
index cf0744bce6818..7162fe8ac198e 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "5.10.106-rt64"; # updated by ./update-rt.sh
+  version = "5.10.109-rt65"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
@@ -18,14 +18,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
-    sha256 = "0yjrlghcxw3lhd6nc2m4zy4gk536w3a3w6mxdsml690fqz4531n6";
+    sha256 = "1p0k46isy2wzzms801lrnb59f1nb9mhywjj7fnkrwrj9nbn25yqq";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "0z5gyi1vyjyd05vyccmk9yfgvm5v1lc8vbfywahx495xzpp9i8xb";
+      sha256 = "0w7bs5kmwvbyfy5js218ys42s8i51m8v0mbkfhiynlpm3iph357q";
     };
   }; in [ rt-patch ] ++ kernelPatches;
 
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
index 747563e3c01f9..bb404fc59e982 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "5.4.182-rt71"; # updated by ./update-rt.sh
+  version = "5.4.188-rt73"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
@@ -14,14 +14,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
-    sha256 = "03gly4ivsdahixmshi021al48ycsalx30vsxr3iyj47hchgj1wdj";
+    sha256 = "1g7xf2jx1hx580f42yirfgv9v0f9f88wzxxx0wiwx7wcqbyqpg4z";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "1lxj63v37bhdgynr8ffyd5g8vp5a79dnzi6fng7jsjapfriywzqh";
+      sha256 = "17qx5xrchgss7zxg9lg91mqh0v3irx355003g7rj12h8y5r16l58";
     };
   }; in [ rt-patch ] ++ kernelPatches;
 
diff --git a/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix b/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
index e86f6fced569a..327da3e0f3449 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
@@ -1,9 +1,9 @@
 { lib
 , fetchpatch
 , kernel
-, date ? "2022-03-21"
-, commit ? "c38b7167aa5f3b1b91dcc93ade57f30e95064590"
-, diffHash ? "04lgwnng7p2rlz9sxn74n22750kh524xwfws3agqs12pcrvfsm0j"
+, date ? "2022-04-08"
+, commit ? "6ddf061e68560a2bb263b126af7e894a6c1afb5f"
+, diffHash ? "1nkrr1cxavw0rqxlyiz7pf9igvqay0d5kk7194v9ph3fcp9rz5kc"
 , kernelPatches # must always be defined in bcachefs' all-packages.nix entry because it's also a top-level attribute supplied by callPackage
 , argsOverride ? {}
 , ...
diff --git a/pkgs/os-specific/linux/kernel/linux-xanmod.nix b/pkgs/os-specific/linux/kernel/linux-xanmod.nix
deleted file mode 100644
index b170ec044b05e..0000000000000
--- a/pkgs/os-specific/linux/kernel/linux-xanmod.nix
+++ /dev/null
@@ -1,68 +0,0 @@
-{ lib, stdenv, buildLinux, fetchFromGitHub, ... } @ args:
-
-let
-  version = "5.15.27";
-  release = "1";
-  suffix = "xanmod${release}-tt";
-in
-buildLinux (args // rec {
-  inherit version;
-  modDirVersion = "${version}-${suffix}";
-
-  src = fetchFromGitHub {
-    owner = "xanmod";
-    repo = "linux";
-    rev = modDirVersion;
-    sha256 = "sha256-ycUvTXDKnffxs8FKZJurX2bDr85gMQlSIFD0nST2Q98=";
-  };
-
-  structuredExtraConfig = with lib.kernel; {
-    # removed options
-    CFS_BANDWIDTH = lib.mkForce (option no);
-    RT_GROUP_SCHED = lib.mkForce (option no);
-    SCHED_AUTOGROUP = lib.mkForce (option no);
-
-    # AMD P-state driver
-    X86_AMD_PSTATE = yes;
-
-    # Linux RNG framework
-    LRNG = yes;
-
-    # Paragon's NTFS3 driver
-    NTFS3_FS = module;
-    NTFS3_LZX_XPRESS = yes;
-    NTFS3_FS_POSIX_ACL = yes;
-
-    # Preemptive Full Tickless Kernel at 500Hz
-    SCHED_CORE = lib.mkForce (option no);
-    PREEMPT_VOLUNTARY = lib.mkForce no;
-    PREEMPT = lib.mkForce yes;
-    NO_HZ_FULL = yes;
-    HZ_500 = yes;
-
-    # Google's BBRv2 TCP congestion Control
-    TCP_CONG_BBR2 = yes;
-    DEFAULT_BBR2 = yes;
-
-    # FQ-PIE Packet Scheduling
-    NET_SCH_DEFAULT = yes;
-    DEFAULT_FQ_PIE = yes;
-
-    # Graysky's additional CPU optimizations
-    CC_OPTIMIZE_FOR_PERFORMANCE_O3 = yes;
-
-    # Futex WAIT_MULTIPLE implementation for Wine / Proton Fsync.
-    FUTEX = yes;
-    FUTEX_PI = yes;
-
-    # WineSync driver for fast kernel-backed Wine
-    WINESYNC = module;
-  };
-
-  extraMeta = {
-    branch = "5.15-tt";
-    maintainers = with lib.maintainers; [ fortuneteller2k lovesegfault ];
-    description = "Built with custom settings and new features built to provide a stable, responsive and smooth desktop experience";
-    broken = stdenv.isAarch64;
-  };
-} // (args.argsOverride or { }))
diff --git a/pkgs/os-specific/linux/kernel/linux-zen.nix b/pkgs/os-specific/linux/kernel/linux-zen.nix
index 0e6cc394a5497..0d9d34588a9e8 100644
--- a/pkgs/os-specific/linux/kernel/linux-zen.nix
+++ b/pkgs/os-specific/linux/kernel/linux-zen.nix
@@ -2,7 +2,7 @@
 
 let
   # having the full version string here makes it easier to update
-  modDirVersion = "5.17.0-zen1";
+  modDirVersion = "5.17.2-zen3";
   parts = lib.splitString "-" modDirVersion;
   version = lib.elemAt parts 0;
   suffix = lib.elemAt parts 1;
@@ -20,7 +20,7 @@ buildLinux (args // {
     owner = "zen-kernel";
     repo = "zen-kernel";
     inherit rev;
-    sha256 = "sha256-8DCcO2oPnwXjjm3PW7vNZKbB3S7XsEB/svAMhbPRJIo=";
+    sha256 = "sha256-q6Cc3wQHDXzyt2hx3+CS8N74myC6ra/Y+8IHQxTkoLo=";
   };
 
   structuredExtraConfig = with lib.kernel; {
diff --git a/pkgs/os-specific/linux/kernel/perf.nix b/pkgs/os-specific/linux/kernel/perf.nix
index 6d1763a0d0fd1..0183e9ffa3fdd 100644
--- a/pkgs/os-specific/linux/kernel/perf.nix
+++ b/pkgs/os-specific/linux/kernel/perf.nix
@@ -9,8 +9,6 @@
 
 with lib;
 
-assert versionAtLeast kernel.version "3.12";
-
 stdenv.mkDerivation {
   pname = "perf-linux";
   version = kernel.version;
diff --git a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix
new file mode 100644
index 0000000000000..8464b9ad25f82
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix
@@ -0,0 +1,81 @@
+{ lib, stdenv, fetchFromGitHub, buildLinux, ... } @ args:
+
+let
+  stableVariant = {
+    version = "5.15.34";
+    suffix = "xanmod1";
+    hash = "sha256-sfrcaFhrdvupygXvajGyl6ruuBu+vFsAKjLyINyV3pw=";
+  };
+
+  edgeVariant = {
+    version = "5.17.2";
+    suffix = "xanmod1";
+    hash = "sha256-DK6yFZewqmr/BXFW5tqKXtWb1OLfqokZRQLOQxvBg6Q=";
+  };
+
+  xanmodKernelFor = { version, suffix, hash }: buildLinux (args // rec {
+    inherit version;
+    modDirVersion = "${version}-${suffix}";
+
+    src = fetchFromGitHub {
+      owner = "xanmod";
+      repo = "linux";
+      rev = modDirVersion;
+      inherit hash;
+    };
+
+    structuredExtraConfig = with lib.kernel; {
+      # removed options
+      CFS_BANDWIDTH = lib.mkForce (option no);
+      RT_GROUP_SCHED = lib.mkForce (option no);
+      SCHED_AUTOGROUP = lib.mkForce (option no);
+
+      # AMD P-state driver
+      X86_AMD_PSTATE = yes;
+
+      # Linux RNG framework
+      LRNG = yes;
+
+      # Paragon's NTFS3 driver
+      NTFS3_FS = module;
+      NTFS3_LZX_XPRESS = yes;
+      NTFS3_FS_POSIX_ACL = yes;
+
+      # Preemptive Full Tickless Kernel at 500Hz
+      SCHED_CORE = lib.mkForce (option no);
+      PREEMPT_VOLUNTARY = lib.mkForce no;
+      PREEMPT = lib.mkForce yes;
+      NO_HZ_FULL = yes;
+      HZ_500 = yes;
+
+      # Google's BBRv2 TCP congestion Control
+      TCP_CONG_BBR2 = yes;
+      DEFAULT_BBR2 = yes;
+
+      # FQ-PIE Packet Scheduling
+      NET_SCH_DEFAULT = yes;
+      DEFAULT_FQ_PIE = yes;
+
+      # Graysky's additional CPU optimizations
+      CC_OPTIMIZE_FOR_PERFORMANCE_O3 = yes;
+
+      # Futex WAIT_MULTIPLE implementation for Wine / Proton Fsync.
+      FUTEX = yes;
+      FUTEX_PI = yes;
+
+      # WineSync driver for fast kernel-backed Wine
+      WINESYNC = module;
+    };
+
+    extraMeta = {
+      branch = lib.versions.majorMinor version;
+      maintainers = with lib.maintainers; [ fortuneteller2k lovesegfault ];
+      description = "Built with custom settings and new features built to provide a stable, responsive and smooth desktop experience";
+      broken = stdenv.isAarch64;
+    };
+  } // (args.argsOverride or { }));
+in
+{
+  stable = xanmodKernelFor stableVariant;
+  edge = xanmodKernelFor edgeVariant;
+}
diff --git a/pkgs/os-specific/linux/keyutils/default.nix b/pkgs/os-specific/linux/keyutils/default.nix
index f307bd56d1cff..88410654f3b3a 100644
--- a/pkgs/os-specific/linux/keyutils/default.nix
+++ b/pkgs/os-specific/linux/keyutils/default.nix
@@ -15,11 +15,6 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
-    (fetchurl {
-      # improve reproducibility
-      url = "https://salsa.debian.org/debian/keyutils/raw/4cecffcb8e2a2aa4ef41777ed40e4e4bcfb2e5bf/debian/patches/Make-build-reproducible.patch";
-      sha256 = "0wnvbjfrbk7rghd032z684l7vk7mhy3bd41zvhkrhgp3cd5id0bm";
-    })
     ./conf-symlink.patch
     # This patch solves a duplicate symbol error when building with a clang stdenv
     # Before removing this patch, please ensure the package still builds by running eg.
@@ -29,9 +24,16 @@ stdenv.mkDerivation rec {
 
   makeFlags = lib.optionals stdenv.hostPlatform.isStatic "NO_SOLIB=1";
 
-  BUILDDATE = "1970-01-01";
   outputs = [ "out" "lib" "dev" ];
 
+  postPatch = ''
+    # https://github.com/archlinux/svntogit-packages/blob/packages/keyutils/trunk/reproducible.patch
+    substituteInPlace Makefile \
+      --replace \
+        'VCPPFLAGS	:= -DPKGBUILD="\"$(shell date -u +%F)\""' \
+        'VCPPFLAGS	:= -DPKGBUILD="\"$(date -ud "@$SOURCE_DATE_EPOCH" +%F)\""'
+  '';
+
   enableParallelBuilding = true;
 
   installFlags = [
diff --git a/pkgs/os-specific/linux/kmod/default.nix b/pkgs/os-specific/linux/kmod/default.nix
index a1a1906ba9cea..0411bae2060c7 100644
--- a/pkgs/os-specific/linux/kmod/default.nix
+++ b/pkgs/os-specific/linux/kmod/default.nix
@@ -16,6 +16,8 @@ in stdenv.mkDerivation rec {
     sha256 = "0am54mi5rk72g5q7k6l6f36gw3r9vwgjmyna43ywcjhqmakyx00b";
   };
 
+  outputs = [ "out" "dev" "lib" ];
+
   nativeBuildInputs = [ autoreconfHook pkg-config libxslt ];
   buildInputs = [ xz zstd ] ++ lib.optional stdenv.isDarwin elf-header;
 
diff --git a/pkgs/os-specific/linux/kvdo/default.nix b/pkgs/os-specific/linux/kvdo/default.nix
new file mode 100644
index 0000000000000..74895e11bd5aa
--- /dev/null
+++ b/pkgs/os-specific/linux/kvdo/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, lib, fetchFromGitHub, vdo, kernel }:
+
+stdenv.mkDerivation rec {
+  inherit (vdo) version;
+  pname = "kvdo";
+
+  src = fetchFromGitHub {
+    owner = "dm-vdo";
+    repo = "kvdo";
+    rev = version;
+    sha256 = "1xl7dwcqx00w1gbpb6vlkn8nchyfj1fsc8c06vgda0sgxp7qs5gn";
+  };
+
+  dontConfigure = true;
+  enableParallelBuilding = true;
+
+  KSRC = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
+  INSTALL_MOD_PATH = placeholder "out";
+
+  preBuild = ''
+    makeFlags="$makeFlags -C ${KSRC} M=$(pwd)"
+'';
+  installTargets = [ "modules_install" ];
+
+  meta = with lib; {
+    inherit (vdo.meta) license maintainers;
+    homepage = "https://github.com/dm-vdo/kvdo";
+    description = "A pair of kernel modules which provide pools of deduplicated and/or compressed block storage";
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/ledger-udev-rules/default.nix b/pkgs/os-specific/linux/ledger-udev-rules/default.nix
index 7b23719c791c3..3a6bf9e5d51c0 100644
--- a/pkgs/os-specific/linux/ledger-udev-rules/default.nix
+++ b/pkgs/os-specific/linux/ledger-udev-rules/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "ledger-udev-rules";
-  version = "unstable-2019-05-30";
+  version = "unstable-2021-09-10";
 
   src = fetchFromGitHub {
     owner = "LedgerHQ";
     repo = "udev-rules";
-    rev = "765b7fdf57b20fd9326cedf48ee52e905024ab4f";
-    sha256 = "10a42al020zpkx918y6b1l9az45vk3921b2l1mx87w3m0ad9qvif";
+    rev = "2776324af6df36c2af4d2e8e92a1c98c281117c9";
+    sha256 = "sha256-yTYI81PXMc32lMfI5uhD14nP20zAI7ZF33V1LRDWg2Y=";
   };
 
   dontBuild = true;
diff --git a/pkgs/os-specific/linux/libbpf/default.nix b/pkgs/os-specific/linux/libbpf/default.nix
index 8e6b9fa0663a3..cb2f4611fde06 100644
--- a/pkgs/os-specific/linux/libbpf/default.nix
+++ b/pkgs/os-specific/linux/libbpf/default.nix
@@ -8,8 +8,6 @@
 , nixosTests
 }:
 
-with builtins;
-
 stdenv.mkDerivation rec {
   pname = "libbpf";
   version = "0.7.0";
diff --git a/pkgs/os-specific/linux/libcap/default.nix b/pkgs/os-specific/linux/libcap/default.nix
index 2f12d2fea38c8..1fa887dd2a3ce 100644
--- a/pkgs/os-specific/linux/libcap/default.nix
+++ b/pkgs/os-specific/linux/libcap/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, buildPackages, fetchurl, attr, perl, runtimeShell
+{ stdenv, lib, buildPackages, fetchurl, attr, runtimeShell
 , usePam ? !isStatic, pam ? null
 , isStatic ? stdenv.hostPlatform.isStatic
 }:
@@ -7,18 +7,17 @@ assert usePam -> pam != null;
 
 stdenv.mkDerivation rec {
   pname = "libcap";
-  version = "2.49";
+  version = "2.63";
 
   src = fetchurl {
     url = "mirror://kernel/linux/libs/security/linux-privs/libcap2/${pname}-${version}.tar.xz";
-    sha256 = "sha256-6YvE2TZFCC7Hh3MLD9GnErOIgkZcUFd33hfDOIMe4YE=";
+    sha256 = "sha256-DGN7j0T8fYYneH6c9X8VrAbB3cy1PkH+7FSWvjRm938=";
   };
 
   outputs = [ "out" "dev" "lib" "man" "doc" ]
     ++ lib.optional usePam "pam";
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
-  nativeBuildInputs = [ perl ];
 
   buildInputs = lib.optional usePam pam;
 
@@ -29,9 +28,12 @@ stdenv.mkDerivation rec {
     "PAM_CAP=${if usePam then "yes" else "no"}"
     "BUILD_CC=$(CC_FOR_BUILD)"
     "CC:=$(CC)"
+    "CROSS_COMPILE=${stdenv.cc.targetPrefix}"
   ] ++ lib.optional isStatic "SHARED=no";
 
-  prePatch = ''
+  postPatch = ''
+    patchShebangs ./progs/mkcapshdoc.sh
+
     # use full path to bash
     substituteInPlace progs/capsh.c --replace "/bin/bash" "${runtimeShell}"
 
diff --git a/pkgs/os-specific/linux/linux-wifi-hotspot/default.nix b/pkgs/os-specific/linux/linux-wifi-hotspot/default.nix
new file mode 100644
index 0000000000000..a29fe923f60d0
--- /dev/null
+++ b/pkgs/os-specific/linux/linux-wifi-hotspot/default.nix
@@ -0,0 +1,79 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, which
+, pkg-config
+, glib
+, gtk3
+, iw
+, makeWrapper
+, qrencode
+, hostapd
+, getopt
+, dnsmasq
+, iproute2
+, flock
+, iptables
+, gawk }:
+
+stdenv.mkDerivation rec {
+  pname = "linux-wifi-hotspot";
+  version = "4.4.0";
+
+  src = fetchFromGitHub {
+    owner = "lakinduakash";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-XCgYWOX7QSdANG6DqYk0yZZqnvZGDl3GaF9KtYRmpJ0=";
+  };
+
+  nativeBuildInputs = [
+    which
+    pkg-config
+    makeWrapper
+    qrencode
+    hostapd
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+  ];
+
+  outputs = [ "out" ];
+
+  postPatch = ''
+    substituteInPlace ./src/scripts/Makefile \
+      --replace "etc" "$out/etc"
+    substituteInPlace ./src/scripts/wihotspot \
+      --replace "/usr" "$out"
+  '';
+
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/create_ap \
+      --prefix PATH : ${lib.makeBinPath [
+          hostapd getopt iw which dnsmasq iproute2 flock iptables gawk
+        ]}
+
+    wrapProgram $out/bin/wihotspot-gui \
+      --prefix PATH : ${lib.makeBinPath [ iw ]} \
+      --prefix PATH : "${placeholder "out"}/bin"
+
+    wrapProgram $out/bin/wihotspot \
+      --prefix PATH : ${lib.makeBinPath [ iw ]} \
+      --prefix PATH : "${placeholder "out"}/bin"
+  '';
+
+  meta = with lib; {
+    description = "Feature-rich wifi hotspot creator for Linux which provides both GUI and command-line interface";
+    homepage = "https://github.com/lakinduakash/linux-wifi-hotspot";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ onny ];
+    platforms = platforms.unix;
+  };
+
+}
diff --git a/pkgs/os-specific/linux/lvm2/common.nix b/pkgs/os-specific/linux/lvm2/common.nix
index 07e8c9cb02da2..4cb86bf3d8b93 100644
--- a/pkgs/os-specific/linux/lvm2/common.nix
+++ b/pkgs/os-specific/linux/lvm2/common.nix
@@ -4,13 +4,19 @@
 , fetchpatch
 , fetchurl
 , pkg-config
-, util-linux
+, coreutils
 , libuuid
 , libaio
+, substituteAll
 , enableCmdlib ? false
 , enableDmeventd ? false
-, udevSupport ? !stdenv.hostPlatform.isStatic, udev ? null
+, udevSupport ? !stdenv.hostPlatform.isStatic, udev
 , onlyLib ? stdenv.hostPlatform.isStatic
+  # Otherwise we have a infinity recursion during static compilation
+, enableUtilLinux ? !stdenv.hostPlatform.isStatic, util-linux
+, enableVDO ? false, vdo
+, enableMdadm ? false, mdadm
+, enableMultipath ? false, multipath-tools
 , nixosTests
 }:
 
@@ -18,7 +24,7 @@
 assert enableDmeventd -> enableCmdlib;
 
 stdenv.mkDerivation rec {
-  pname = "lvm2" + lib.optionalString enableDmeventd "-with-dmeventd";
+  pname = "lvm2" + lib.optionalString enableDmeventd "-with-dmeventd" + lib.optionalString enableVDO "-with-vdo";
   inherit version;
 
   src = fetchurl {
@@ -33,6 +39,8 @@ stdenv.mkDerivation rec {
     udev
   ] ++ lib.optionals (!onlyLib) [
     libuuid
+  ] ++ lib.optionals enableVDO [
+    vdo
   ];
 
   configureFlags = [
@@ -58,6 +66,8 @@ stdenv.mkDerivation rec {
     "--enable-udev_sync"
   ] ++ lib.optionals stdenv.hostPlatform.isStatic [
     "--enable-static_link"
+  ] ++  lib.optionals enableVDO [
+    "--enable-vdo"
   ];
 
   preConfigure = ''
@@ -77,13 +87,29 @@ stdenv.mkDerivation rec {
     substituteInPlace make.tmpl.in --replace "@systemdsystemunitdir@" "$out/lib/systemd/system"
   '' + lib.optionalString (lib.versionAtLeast version "2.03") ''
     substituteInPlace libdm/make.tmpl.in --replace "@systemdsystemunitdir@" "$out/lib/systemd/system"
+
+    substituteInPlace scripts/blk_availability_systemd_red_hat.service.in \
+      --replace '/usr/bin/true' '${coreutils}/bin/true'
   '';
 
   postConfigure = ''
     sed -i 's|^#define LVM_CONFIGURE_LINE.*$|#define LVM_CONFIGURE_LINE "<removed>"|g' ./include/configure.h
   '';
 
-  patches = lib.optionals (lib.versionOlder version "2.03.15") [
+  patches = lib.optionals (lib.versionAtLeast version "2.03.15") [
+    # fixes paths to and checks for tools
+    # TODO: needs backport to LVM 2.02 used by static/musl
+    (substituteAll (let
+      optionalTool = cond: pkg: if cond then pkg else "/run/current-system/sw";
+    in {
+      src = ./fix-blkdeactivate.patch;
+      inherit coreutils;
+      util_linux = optionalTool enableUtilLinux util-linux;
+      mdadm = optionalTool enableMdadm mdadm;
+      multipath_tools = optionalTool enableMultipath multipath-tools;
+      vdo = optionalTool enableVDO vdo;
+    }))
+  ] ++ lib.optionals (lib.versionOlder version "2.03.15") [
     # Musl fixes from Alpine.
     ./fix-stdio-usage.patch
     (fetchpatch {
diff --git a/pkgs/os-specific/linux/lvm2/fix-blkdeactivate.patch b/pkgs/os-specific/linux/lvm2/fix-blkdeactivate.patch
new file mode 100644
index 0000000000000..db8cfaeae9e3a
--- /dev/null
+++ b/pkgs/os-specific/linux/lvm2/fix-blkdeactivate.patch
@@ -0,0 +1,51 @@
+diff --git a/scripts/blkdeactivate.sh.in b/scripts/blkdeactivate.sh.in
+index 7c517b87b..e51a33778 100644
+--- a/scripts/blkdeactivate.sh.in
++++ b/scripts/blkdeactivate.sh.in
+@@ -34,11 +34,11 @@ TOOL=blkdeactivate
+ DEV_DIR="/dev"
+ SYS_BLK_DIR="/sys/block"
+ 
+-MDADM="/sbin/mdadm"
+-MOUNTPOINT="/bin/mountpoint"
+-MPATHD="/sbin/multipathd"
+-UMOUNT="/bin/umount"
+-VDO="/bin/vdo"
++MDADM="@mdadm@/bin/mdadm"
++MOUNTPOINT="@util_linux@/bin/mountpoint"
++MPATHD="@multipath_tools@/bin/multipathd"
++UMOUNT="@util_linux@/bin/umount"
++VDO="@vdo@/bin/vdo"
+ 
+ sbindir="@SBINDIR@"
+ DMSETUP="$sbindir/dmsetup"
+@@ -48,7 +48,7 @@ if "$UMOUNT" --help | grep -- "--all-targets" >"$DEV_DIR/null"; then
+ 	UMOUNT_OPTS="--all-targets "
+ else
+ 	UMOUNT_OPTS=""
+-	FINDMNT="/bin/findmnt -r --noheadings -u -o TARGET"
++	FINDMNT="@util_linux@/bin/findmnt -r --noheadings -u -o TARGET"
+ 	FINDMNT_READ="read -r mnt"
+ fi
+ DMSETUP_OPTS=""
+@@ -57,10 +57,10 @@ MDADM_OPTS=""
+ MPATHD_OPTS=""
+ VDO_OPTS=""
+ 
+-LSBLK="/bin/lsblk -r --noheadings -o TYPE,KNAME,NAME,MOUNTPOINT"
++LSBLK="@util_linux@/bin/lsblk -r --noheadings -o TYPE,KNAME,NAME,MOUNTPOINT"
+ LSBLK_VARS="local devtype local kname local name local mnt"
+ LSBLK_READ="read -r devtype kname name mnt"
+-SORT_MNT="/bin/sort -r -u -k 4"
++SORT_MNT="@coreutils@/bin/sort -r -u -k 4"
+ 
+ # Do not show tool errors by default (only done/skipping summary
+ # message provided by this script) and no verbose mode by default.
+@@ -102,6 +102,7 @@ declare -A SKIP_VG_LIST=()
+ # (list is an associative array!)
+ #
+ declare -A SKIP_UMOUNT_LIST=(["/"]=1 \
++                             ["/nix"]=1 ["/nix/store"]=1 \
+                              ["/lib"]=1 ["/lib64"]=1 \
+                              ["/bin"]=1 ["/sbin"]=1 \
+                              ["/var"]=1 ["/var/log"]=1 \
diff --git a/pkgs/os-specific/linux/mbpfan/default.nix b/pkgs/os-specific/linux/mbpfan/default.nix
index 675d9417a01af..26c3d07364ce2 100644
--- a/pkgs/os-specific/linux/mbpfan/default.nix
+++ b/pkgs/os-specific/linux/mbpfan/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "mbpfan";
-  version = "2.2.1";
+  version = "2.3.0";
   src = fetchFromGitHub {
     owner = "dgraziotin";
     repo = "mbpfan";
     rev = "v${version}";
-    sha256 = "0gc9ypxi55vxs77nx8ihhh9zk7fr9v0m0zfm76q7x0bi6jz11mbr";
+    sha256 = "sha256-jIYg9b0c/7mMRS5WF+mOH6t9SCWEP32lsdbCgpWpg24=";
   };
   installPhase = ''
     mkdir -p $out/bin $out/etc
diff --git a/pkgs/os-specific/linux/microcode/amd.nix b/pkgs/os-specific/linux/microcode/amd.nix
index 0f3d0f18186a0..051ad131be93c 100644
--- a/pkgs/os-specific/linux/microcode/amd.nix
+++ b/pkgs/os-specific/linux/microcode/amd.nix
@@ -12,13 +12,14 @@ stdenv.mkDerivation {
 
   buildPhase = ''
     mkdir -p kernel/x86/microcode
-    find ${linux-firmware}/lib/firmware/amd-ucode -name \*.bin \
-      -exec sh -c 'cat {} >> kernel/x86/microcode/AuthenticAMD.bin' \;
+    find ${linux-firmware}/lib/firmware/amd-ucode -name \*.bin -print0 | sort -z |\
+      xargs -0 -I{} sh -c 'cat {} >> kernel/x86/microcode/AuthenticAMD.bin'
   '';
 
   installPhase = ''
     mkdir -p $out
-    echo kernel/x86/microcode/AuthenticAMD.bin | bsdcpio -o -H newc -R 0:0 > $out/amd-ucode.img
+    touch -d @$SOURCE_DATE_EPOCH kernel/x86/microcode/AuthenticAMD.bin
+    echo kernel/x86/microcode/AuthenticAMD.bin | bsdtar --uid 0 --gid 0 -cnf - -T - | bsdtar --null -cf - --format=newc @- > $out/amd-ucode.img
   '';
 
   meta = with lib; {
diff --git a/pkgs/os-specific/linux/microcode/intel.nix b/pkgs/os-specific/linux/microcode/intel.nix
index 923047ead11ad..f239cb307c74c 100644
--- a/pkgs/os-specific/linux/microcode/intel.nix
+++ b/pkgs/os-specific/linux/microcode/intel.nix
@@ -18,7 +18,8 @@ stdenv.mkDerivation rec {
 
     mkdir -p $out kernel/x86/microcode
     iucode_tool -w kernel/x86/microcode/GenuineIntel.bin intel-ucode/
-    echo kernel/x86/microcode/GenuineIntel.bin | bsdcpio -o -H newc -R 0:0 > $out/intel-ucode.img
+    touch -d @$SOURCE_DATE_EPOCH kernel/x86/microcode/GenuineIntel.bin
+    echo kernel/x86/microcode/GenuineIntel.bin | bsdtar --uid 0 --gid 0 -cnf - -T - | bsdtar --null -cf - --format=newc @- > $out/intel-ucode.img
 
     runHook postInstall
   '';
diff --git a/pkgs/os-specific/linux/musl/default.nix b/pkgs/os-specific/linux/musl/default.nix
index f19c7ea7a44ba..fb0d19115da38 100644
--- a/pkgs/os-specific/linux/musl/default.nix
+++ b/pkgs/os-specific/linux/musl/default.nix
@@ -40,11 +40,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "musl";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchurl {
     url    = "https://musl.libc.org/releases/${pname}-${version}.tar.gz";
-    sha256 = "1p8r6bac64y98ln0wzmnixysckq3crca69ys7p16sy9d04i975lv";
+    sha256 = "sha256-fVsLYGJSHkYn4JnkydyCSNMqMChelZt+7Kp4DPjP1KQ=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/os-specific/linux/nftables/default.nix b/pkgs/os-specific/linux/nftables/default.nix
index 0b6291226bc84..8485a868d8a59 100644
--- a/pkgs/os-specific/linux/nftables/default.nix
+++ b/pkgs/os-specific/linux/nftables/default.nix
@@ -1,7 +1,8 @@
 { lib, stdenv, fetchurl, pkg-config, bison, file, flex
 , asciidoc, libxslt, findXMLCatalogs, docbook_xml_dtd_45, docbook_xsl
 , libmnl, libnftnl, libpcap
-, gmp, jansson, readline
+, gmp, jansson, libedit
+, autoreconfHook, fetchpatch
 , withDebugSymbols ? false
 , withPython ? false , python3
 , withXtables ? true , iptables
@@ -10,22 +11,23 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "1.0.1";
+  version = "1.0.2";
   pname = "nftables";
 
   src = fetchurl {
     url = "https://netfilter.org/projects/nftables/files/${pname}-${version}.tar.bz2";
-    sha256 = "08x4xw0s5sap3q7jfr91v7mrkxrydi4dvsckw85ims0qb1ibmviw";
+    sha256 = "00jcjn1pl7qyqpg8pd4yhlkys7wbj4vkzgg73n27nmplzips6a0b";
   };
 
   nativeBuildInputs = [
+    autoreconfHook
     pkg-config bison file flex
     asciidoc docbook_xml_dtd_45 docbook_xsl findXMLCatalogs libxslt
   ];
 
   buildInputs = [
     libmnl libnftnl libpcap
-    gmp jansson readline
+    gmp jansson libedit
   ] ++ optional withXtables iptables
     ++ optional withPython python3;
 
@@ -33,9 +35,17 @@ stdenv.mkDerivation rec {
     substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file
   '';
 
+  patches = [
+    # fix build after 1.0.2 release, drop when updating to a newer release
+    (fetchpatch {
+      url = "https://git.netfilter.org/nftables/patch/?id=18a08fb7f0443f8bde83393bd6f69e23a04246b3";
+      sha256 = "03dzhd7fhg0d20ly4rffk4ra7wlxp731892dhp8zw67jwhys9ywz";
+    })
+  ];
+
   configureFlags = [
     "--with-json"
-    "--with-cli=readline"  # TODO: maybe switch to editline
+    "--with-cli=editline"
   ] ++ optional (!withDebugSymbols) "--disable-debug"
     ++ optional (!withPython) "--disable-python"
     ++ optional withPython "--enable-python"
diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix
index a5695dc981f85..100ca403f621b 100644
--- a/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -3,8 +3,8 @@
 let
   generic = args: let
     imported = import ./generic.nix args;
-  in if ((!lib.versionOlder args.version "391")
-    && stdenv.hostPlatform.system != "x86_64-linux") then null
+  in if lib.versionAtLeast args.version "391"
+    && stdenv.hostPlatform.system != "x86_64-linux" then null
   else callPackage imported {
     lib32 = (pkgsi686Linux.callPackage imported {
       libsOnly = true;
@@ -39,12 +39,12 @@ rec {
   # Vulkan developer beta driver
   # See here for more information: https://developer.nvidia.com/vulkan-driver
   vulkan_beta = generic rec {
-    version = "455.46.04";
-    persistencedVersion = "455.45.01";
-    settingsVersion = "455.45.01";
-    sha256_64bit = "1iv42w3x1vc00bgn6y4w1hnfsvnh6bvj3vcrq8hw47760sqwa4xa";
-    settingsSha256 = "09v86y2c8xas9ql0bqr7vrjxx3if6javccwjzyly11dzffm02h7g";
-    persistencedSha256 = "13s4b73il0lq2hs81q03176n16mng737bfsp3bxnxgnrv3whrayz";
+    version = "470.62.13";
+    persistencedVersion = "470.86";
+    settingsVersion = "470.86";
+    sha256_64bit = "sha256-itBFNPMy+Nn0g8V8qdkRb+ELHj57GRso1lXhPHUxKVI=";
+    settingsSha256 = "sha256-fq6RlD6g3uylvvTjE4MmaQwxPJYU0u6IMfpPVzks0tI=";
+    persistencedSha256 = "sha256-eHvauvh8Wd+b8DK6B3ZWNjoWGztupWrR8iog9ok58io=";
     url = "https://developer.nvidia.com/vulkan-beta-${lib.concatStrings (lib.splitString "." version)}-linux";
   };
 
diff --git a/pkgs/os-specific/linux/nvidia-x11/generic.nix b/pkgs/os-specific/linux/nvidia-x11/generic.nix
index c7e062534a4d4..bc867d8b82b9e 100644
--- a/pkgs/os-specific/linux/nvidia-x11/generic.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/generic.nix
@@ -33,7 +33,7 @@ with lib;
 
 assert !libsOnly -> kernel != null;
 assert versionOlder version "391" -> sha256_32bit != null;
-assert ! versionOlder version "391" -> stdenv.hostPlatform.system == "x86_64-linux";
+assert versionAtLeast version "391" -> stdenv.hostPlatform.system == "x86_64-linux";
 
 let
   nameSuffix = optionalString (!libsOnly) "-${kernel.version}";
diff --git a/pkgs/os-specific/linux/pam_u2f/default.nix b/pkgs/os-specific/linux/pam_u2f/default.nix
index 5e4b190c7a32e..1b95067bab5e6 100644
--- a/pkgs/os-specific/linux/pam_u2f/default.nix
+++ b/pkgs/os-specific/linux/pam_u2f/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.unix;
     maintainers = with maintainers; [ philandstuff ];
+    mainProgram = "pamu2fcfg";
   };
 }
diff --git a/pkgs/os-specific/linux/pam_usb/default.nix b/pkgs/os-specific/linux/pam_usb/default.nix
index 0091accd57a7a..ebd45246ae8d1 100644
--- a/pkgs/os-specific/linux/pam_usb/default.nix
+++ b/pkgs/os-specific/linux/pam_usb/default.nix
@@ -41,8 +41,12 @@ stdenv.mkDerivation rec {
     sha256 = "1g1w0s9d8mfld8abrn405ll5grv3xgs0b0hsganrz6qafdq9j7q1";
   };
 
-  buildInputs = [
+  nativeBuildInputs = [
     makeWrapper
+    pkg-config
+  ];
+
+  buildInputs = [
     # pam_usb dependencies
     dbus libxml2 pam pmount pkg-config
     # pam_usb's tools dependencies
diff --git a/pkgs/os-specific/linux/pam_ussh/default.nix b/pkgs/os-specific/linux/pam_ussh/default.nix
new file mode 100644
index 0000000000000..889c8bc6f57cf
--- /dev/null
+++ b/pkgs/os-specific/linux/pam_ussh/default.nix
@@ -0,0 +1,67 @@
+{ buildGoModule
+, fetchFromGitHub
+, pam
+, lib
+, nixosTests
+}:
+
+buildGoModule rec {
+  pname = "pam_ussh";
+  version = "unstable-20210615";
+
+  src = fetchFromGitHub {
+    owner = "uber";
+    repo = "pam-ussh";
+    rev = "e9524bda90ba19d3b9eb24f49cb63a6a56a19193";  # HEAD as of 2022-03-13
+    sha256 = "0nb9hpqbghgi3zvq41kabydzyc6ffaaw9b4jkc5jrwn1klpw1xk8";
+  };
+
+  prePatch = ''
+    cp ${./go.mod} go.mod
+  '';
+  overrideModAttrs = (_: {
+    inherit prePatch;
+  });
+
+  vendorSha256 = "0hjifc3kbwmx7kjn858vi05cwwra6q19cqjfd94k726pwhk37qkw";
+
+  buildInputs = [
+    pam
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    if [ -z "$enableParallelBuilding" ]; then
+      export NIX_BUILD_CORES=1
+    fi
+    go build -buildmode=c-shared -o pam_ussh.so -v -p $NIX_BUILD_CORES .
+
+    runHook postBuild
+  '';
+  checkPhase = ''
+    runHook preCheck
+
+    go test -v -p $NIX_BUILD_CORES .
+
+    runHook postCheck
+  '';
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/lib/security
+    cp pam_ussh.so $out/lib/security
+
+    runHook postInstall
+  '';
+
+  passthru.tests = { inherit (nixosTests) pam-ussh; };
+
+  meta = with lib; {
+    homepage = "https://github.com/uber/pam-ussh";
+    description = "PAM module to authenticate using SSH certificates";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ lukegb ];
+  };
+}
diff --git a/pkgs/os-specific/linux/pam_ussh/go.mod b/pkgs/os-specific/linux/pam_ussh/go.mod
new file mode 100644
index 0000000000000..9adc453560a43
--- /dev/null
+++ b/pkgs/os-specific/linux/pam_ussh/go.mod
@@ -0,0 +1,15 @@
+module github.com/uber/pam-ussh
+
+go 1.17
+
+require (
+	github.com/stretchr/testify v1.7.0
+	golang.org/x/crypto v0.0.0-20220313003712-b769efc7c000
+)
+
+require (
+	github.com/davecgh/go-spew v1.1.0 // indirect
+	github.com/pmezard/go-difflib v1.0.0 // indirect
+	golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 // indirect
+	gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect
+)
diff --git a/pkgs/os-specific/linux/pipework/default.nix b/pkgs/os-specific/linux/pipework/default.nix
index 33192392888ae..ea274377ced97 100644
--- a/pkgs/os-specific/linux/pipework/default.nix
+++ b/pkgs/os-specific/linux/pipework/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper
-, bridge-utils, iproute2, lxc, openvswitch, docker, busybox, dhcpcd, dhcp
+, bridge-utils, iproute2, lxc, openvswitch, docker, busybox, dhcpcd
 }:
 
 stdenv.mkDerivation {
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
   installPhase = ''
     install -D pipework $out/bin/pipework
     wrapProgram $out/bin/pipework --prefix PATH : \
-      ${lib.makeBinPath [ bridge-utils iproute2 lxc openvswitch docker busybox dhcpcd dhcp ]};
+      ${lib.makeBinPath [ bridge-utils iproute2 lxc openvswitch docker busybox dhcpcd ]};
   '';
   meta = with lib; {
     description = "Software-Defined Networking tools for LXC";
diff --git a/pkgs/os-specific/linux/ply/default.nix b/pkgs/os-specific/linux/ply/default.nix
index 916aa39eee22d..dbd8925a5cb33 100644
--- a/pkgs/os-specific/linux/ply/default.nix
+++ b/pkgs/os-specific/linux/ply/default.nix
@@ -35,6 +35,5 @@ stdenv.mkDerivation rec {
     homepage = "https://wkz.github.io/ply/";
     license = [ licenses.gpl2Only ];
     maintainers = with maintainers; [ mic92 mbbx6spp ];
-    broken = lib.versionOlder kernel.version "4.0";
   };
 }
diff --git a/pkgs/os-specific/linux/plymouth/default.nix b/pkgs/os-specific/linux/plymouth/default.nix
index 62950b0852580..4e755a28db8bd 100644
--- a/pkgs/os-specific/linux/plymouth/default.nix
+++ b/pkgs/os-specific/linux/plymouth/default.nix
@@ -96,7 +96,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.freedesktop.org/wiki/Software/Plymouth/";
     description = "Boot splash and boot logger";
     license = licenses.gpl2Plus;
-    maintainers = [ maintainers.goibhniu teams.gnome.members ];
+    maintainers = [ maintainers.goibhniu ] ++ teams.gnome.members;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/pscircle/default.nix b/pkgs/os-specific/linux/pscircle/default.nix
index ef7dbc55a9ab9..a293790cc97cc 100644
--- a/pkgs/os-specific/linux/pscircle/default.nix
+++ b/pkgs/os-specific/linux/pscircle/default.nix
@@ -11,11 +11,14 @@ stdenv.mkDerivation rec {
     sha256 = "1sm99423hh90kr4wdjqi9sdrrpk65j2vz2hzj65zcxfxyr6khjci";
   };
 
+  nativeBuildInputs = [
+    meson
+    pkg-config
+    ninja
+  ];
+
   buildInputs = [
-      meson
-      pkg-config
-      cairo
-      ninja
+    cairo
   ];
 
   meta = with lib; {
diff --git a/pkgs/os-specific/linux/rasdaemon/default.nix b/pkgs/os-specific/linux/rasdaemon/default.nix
index 22ca59bff536a..cccd91fff8e16 100644
--- a/pkgs/os-specific/linux/rasdaemon/default.nix
+++ b/pkgs/os-specific/linux/rasdaemon/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rasdaemon";
-  version = "0.6.7";
+  version = "0.6.8";
 
   src = fetchFromGitHub {
     owner = "mchehab";
     repo = "rasdaemon";
     rev = "v${version}";
-    sha256 = "sha256-vyUDwqDe+HD4mka6smdQuVSM5U9uMv/TrfHkyqVJMIo=";
+    sha256 = "sha256-gcwoc9lIJyqUiCSAHf1U8geLG58CxzjMFYFl8moaA2Q=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix b/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix
index c68d40583968e..c2ce195faf1c7 100644
--- a/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix
+++ b/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix
@@ -3,18 +3,13 @@
 }:
 stdenvNoCC.mkDerivation rec {
   pname = "raspberrypi-eeprom";
-  version = "2021.12.02";
-  # From 3fdf703f3f7bbe57eacceada3b558031229a34b0 Mon Sep 17 00:00:00 2001
-  # From: Peter Harper <peter.harper@raspberrypi.com>
-  # Date: Mon, 13 Dec 2021 11:56:11 +0000
-  # Subject: [PATCH] 2021-12-02: Promote the 2021-12-02 beta release to LATEST/STABLE
-  commit = "3fdf703f3f7bbe57eacceada3b558031229a34b0";
+  version = "unstable-2022-03-10";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "rpi-eeprom";
-    rev = commit;
-    sha256 = "sha256-JTL2ziOkT0tnOrOS08ttNtxj3qegsacP73xZBVur7xM=";
+    rev = "e8927007e3800db3a72100ee6cd38b0d9b687c16";
+    hash = "sha256-/hn6l5gheh6E3zoANwU1SXYgdry2IjOT9Muw2jkrtCU=";
   };
 
   buildInputs = [ python3 ];
diff --git a/pkgs/os-specific/linux/rdma-core/default.nix b/pkgs/os-specific/linux/rdma-core/default.nix
index d9f6196d931da..44308d8a89d75 100644
--- a/pkgs/os-specific/linux/rdma-core/default.nix
+++ b/pkgs/os-specific/linux/rdma-core/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rdma-core";
-  version = "39.1";
+  version = "40.0";
 
   src = fetchFromGitHub {
     owner = "linux-rdma";
     repo = "rdma-core";
     rev = "v${version}";
-    sha256 = "19jfrb0jv050abxswzh34nx2zr8if3rb2k5a7n5ydvi3x9r8827w";
+    sha256 = "0pcpbri50y5gzrmdqx90wngfd6cfas3m7zlfhz9lqr583fp08vfw";
   };
 
   strictDeps = true;
@@ -23,12 +23,6 @@ stdenv.mkDerivation rec {
     "-DCMAKE_INSTALL_SHAREDSTATEDIR=/var/lib"
   ];
 
-  patches = [
-    # this has been fixed in master. As soon as it gets into a release, this
-    # patch won't apply anymore and can be removed.
-    ./pkg-config-template.patch
-  ];
-
   postPatch = ''
     substituteInPlace srp_daemon/srp_daemon.sh.in \
       --replace /bin/rm rm
diff --git a/pkgs/os-specific/linux/rdma-core/pkg-config-template.patch b/pkgs/os-specific/linux/rdma-core/pkg-config-template.patch
deleted file mode 100644
index 22898bc75282e..0000000000000
--- a/pkgs/os-specific/linux/rdma-core/pkg-config-template.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -ru source/buildlib/template.pc.in source-fixed/buildlib/template.pc.in
---- source/buildlib/template.pc.in	1970-01-01 01:00:01.000000000 +0100
-+++ source-fixed/buildlib/template.pc.in	2022-03-30 22:29:12.988625941 +0200
-@@ -1,7 +1,6 @@
--prefix=@CMAKE_INSTALL_PREFIX@
--exec_prefix=${prefix}
--libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
--includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
-+exec_prefix=@CMAKE_INSTALL_PREFIX@
-+libdir=@CMAKE_INSTALL_LIBDIR@
-+includedir=@CMAKE_INSTALL_INCLUDEDIR@
- 
- Name: lib@PC_LIB_NAME@
- Description: RDMA Core Userspace Library
diff --git a/pkgs/os-specific/linux/rtl8723bs/default.nix b/pkgs/os-specific/linux/rtl8723bs/default.nix
index a862b35171604..b6ab883ca7511 100644
--- a/pkgs/os-specific/linux/rtl8723bs/default.nix
+++ b/pkgs/os-specific/linux/rtl8723bs/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/hadess/rtl8723bs";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
-    broken = (! versionOlder kernel.version "4.12"); # Now in kernel staging drivers
+    broken = versionAtLeast kernel.version "4.12"; # Now in kernel staging drivers
     maintainers = with maintainers; [ elitak ];
   };
 }
diff --git a/pkgs/os-specific/linux/sasutils/default.nix b/pkgs/os-specific/linux/sasutils/default.nix
new file mode 100644
index 0000000000000..4298e003a00f3
--- /dev/null
+++ b/pkgs/os-specific/linux/sasutils/default.nix
@@ -0,0 +1,22 @@
+{ lib, python3Packages, fetchFromGitHub, sg3_utils }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "sasutils";
+  version = "0.3.12";
+
+  src = fetchFromGitHub {
+    owner = "stanford-rc";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0kh5pcc2shdmrvqqi2y1zamzsfvk56pqgwqgqhjfz4r6yfpm04wl";
+  };
+
+  propagatedBuildInputs = [ sg3_utils ];
+
+  meta = with lib; {
+    homepage = "https://github.com/stanford-rc/sasutils";
+    description = "A set of command-line tools to ease the administration of Serial Attached SCSI (SAS) fabrics";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ aij ];
+  };
+}
diff --git a/pkgs/os-specific/linux/sch_cake/default.nix b/pkgs/os-specific/linux/sch_cake/default.nix
index facf690a9bd41..f93713344efb0 100644
--- a/pkgs/os-specific/linux/sch_cake/default.nix
+++ b/pkgs/os-specific/linux/sch_cake/default.nix
@@ -1,7 +1,5 @@
 { stdenv, lib, fetchFromGitHub, kernel }:
 
-assert lib.versionAtLeast kernel.version "4.4";
-
 stdenv.mkDerivation {
   pname = "sch_cake";
   version = "unstable-2017-07-16";
@@ -31,6 +29,6 @@ stdenv.mkDerivation {
     license = with licenses; [ bsd3 gpl2 ];
     maintainers = with maintainers; [ fpletz ];
     platforms = platforms.linux;
-    broken = !lib.versionOlder kernel.version "4.13";
+    broken = lib.versionAtLeast kernel.version "4.13";
   };
 }
diff --git a/pkgs/os-specific/linux/sgx/psw/default.nix b/pkgs/os-specific/linux/sgx/psw/default.nix
index b418d5c18225c..f6564f1560c1e 100644
--- a/pkgs/os-specific/linux/sgx/psw/default.nix
+++ b/pkgs/os-specific/linux/sgx/psw/default.nix
@@ -135,7 +135,7 @@ stdenv.mkDerivation rec {
     mkdir $out/bin
     makeWrapper $out/aesm/aesm_service $out/bin/aesm_service \
       --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ protobuf ]}:$out/aesm \
-      --run "cd $out/aesm"
+      --chdir "$out/aesm"
 
     # Make sure we didn't forget to handle any files
     rmdir $sgxPswDir || (echo "Error: The directory $installDir still contains unhandled files: $(ls -A $installDir)" >&2 && exit 1)
diff --git a/pkgs/os-specific/linux/sgx/samples/default.nix b/pkgs/os-specific/linux/sgx/samples/default.nix
index f9c5ae4505450..2afd62de75d49 100644
--- a/pkgs/os-specific/linux/sgx/samples/default.nix
+++ b/pkgs/os-specific/linux/sgx/samples/default.nix
@@ -41,7 +41,7 @@ let
       install *.so $out/lib
 
       wrapProgram "$out/bin/app" \
-        --run "cd $out/lib" \
+        --chdir "$out/lib" \
         ${lib.optionalString (!isSimulation)
         ''--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ sgx-psw ]}"''}
 
@@ -76,7 +76,7 @@ in
 
       for bin in $out/bin/*; do
         wrapProgram $bin \
-          --run "cd $out/lib" \
+          --chdir "$out/lib" \
           ${lib.optionalString (!isSimulation)
           ''--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ sgx-psw ]}"''}
       done
diff --git a/pkgs/os-specific/linux/shadow/default.nix b/pkgs/os-specific/linux/shadow/default.nix
index 2e4ae1649ea86..5537f9f6aacb0 100644
--- a/pkgs/os-specific/linux/shadow/default.nix
+++ b/pkgs/os-specific/linux/shadow/default.nix
@@ -19,13 +19,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "shadow";
-  version = "4.8.1";
+  version = "4.11.1";
 
   src = fetchFromGitHub {
     owner = "shadow-maint";
     repo = "shadow";
-    rev = version;
-    sha256 = "13407r6qwss00504qy740jghb2dzd561la7dhp47rg8w3g8jarpn";
+    rev = "v${version}";
+    sha256 = "sha256-PxLX5V0t18JftT5wT41krNv18Ew7Kz3MfZkOi/80ODA=";
   };
 
   buildInputs = lib.optional (pam != null && stdenv.isLinux) pam;
diff --git a/pkgs/os-specific/linux/speedometer/default.nix b/pkgs/os-specific/linux/speedometer/default.nix
deleted file mode 100644
index 2802fddf8ce55..0000000000000
--- a/pkgs/os-specific/linux/speedometer/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, fetchurl, python2Packages }:
-
-python2Packages.buildPythonApplication rec {
-  pname = "speedometer";
-  version = "2.8";
-
-  src = fetchurl {
-    url = "https://excess.org/speedometer/speedometer-${version}.tar.gz";
-    sha256 = "060bikv3gwr203jbdmvawsfhc0yq0bg1m42dk8czx1nqvwvgv6fm";
-  };
-
-  propagatedBuildInputs = [ python2Packages.urwid ];
-
-  postPatch = ''
-    sed -i "/'entry_points': {/d" setup.py
-    sed -i "/'console_scripts': \['speedometer = speedometer:console'\],},/d" setup.py
-  '';
-
-  meta = with lib; {
-    description = "Measure and display the rate of data across a network connection or data being stored in a file";
-    homepage = "https://excess.org/speedometer/";
-    license = licenses.lgpl21Plus;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ Baughn ];
-  };
-}
diff --git a/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch b/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch
index a87c59558e01c..404b0d2ee6f30 100644
--- a/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch
+++ b/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch
@@ -1,4 +1,4 @@
-From 93b2d29de784c68d1b4d70d7f214b19432aec6a8 Mon Sep 17 00:00:00 2001
+From 8622539fe2ce67934ed2e60626a2303ef8191e40 Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Tue, 8 Jan 2013 15:46:30 +0100
 Subject: [PATCH 01/19] Start device units for uninitialised encrypted devices
@@ -28,5 +28,5 @@ index 25b8a590a6..d18999ea87 100644
  SUBSYSTEM=="block", ENV{ID_PART_GPT_AUTO_ROOT}=="1", ENV{ID_FS_TYPE}!="crypto_LUKS", SYMLINK+="gpt-auto-root"
  SUBSYSTEM=="block", ENV{ID_PART_GPT_AUTO_ROOT}=="1", ENV{ID_FS_TYPE}=="crypto_LUKS", SYMLINK+="gpt-auto-root-luks"
 -- 
-2.33.1
+2.34.0
 
diff --git a/pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch b/pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch
index e9fedd239f473..d37ace3250c23 100644
--- a/pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch
+++ b/pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch
@@ -1,4 +1,4 @@
-From 41edb381df0326e216b3c569d2cd5764591267d9 Mon Sep 17 00:00:00 2001
+From a845786195182c376b72a85433e278c35243676d Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Fri, 12 Apr 2013 13:16:57 +0200
 Subject: [PATCH 02/19] Don't try to unmount /nix or /nix/store
@@ -25,10 +25,10 @@ index f683f05981..5a04c2c2a6 100644
                          "/etc"))
                  return true;
 diff --git a/src/shutdown/umount.c b/src/shutdown/umount.c
-index 1f945b7875..6df9d383ba 100644
+index f5a2cb20c1..51608d24c0 100644
 --- a/src/shutdown/umount.c
 +++ b/src/shutdown/umount.c
-@@ -508,6 +508,8 @@ static int delete_md(MountPoint *m) {
+@@ -502,6 +502,8 @@ static int delete_md(MountPoint *m) {
  
  static bool nonunmountable_path(const char *path) {
          return path_equal(path, "/")
@@ -38,5 +38,5 @@ index 1f945b7875..6df9d383ba 100644
                  || path_equal(path, "/usr")
  #endif
 -- 
-2.33.1
+2.34.0
 
diff --git a/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch b/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch
index 217629f7d6ac7..56c6238b81f26 100644
--- a/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch
+++ b/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch
@@ -1,4 +1,4 @@
-From 43620479f6bfbbc4c3eed28947e0676c817acb7c Mon Sep 17 00:00:00 2001
+From d33f3461fa2202ef9b0d6cdf2137c510c59fb052 Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Wed, 16 Apr 2014 10:59:28 +0200
 Subject: [PATCH 03/19] Fix NixOS containers
@@ -10,10 +10,10 @@ container, so checking early whether it exists will fail.
  1 file changed, 2 insertions(+)
 
 diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
-index 575b9da447..438ca294db 100644
+index 8f17ab8810..197e5aa252 100644
 --- a/src/nspawn/nspawn.c
 +++ b/src/nspawn/nspawn.c
-@@ -5590,6 +5590,7 @@ static int run(int argc, char *argv[]) {
+@@ -5625,6 +5625,7 @@ static int run(int argc, char *argv[]) {
                                  goto finish;
                          }
                  } else {
@@ -21,7 +21,7 @@ index 575b9da447..438ca294db 100644
                          const char *p, *q;
  
                          if (arg_pivot_root_new)
-@@ -5604,6 +5605,7 @@ static int run(int argc, char *argv[]) {
+@@ -5639,6 +5640,7 @@ static int run(int argc, char *argv[]) {
                                  r = -EINVAL;
                                  goto finish;
                          }
@@ -30,5 +30,5 @@ index 575b9da447..438ca294db 100644
  
          } else {
 -- 
-2.33.1
+2.34.0
 
diff --git a/pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch b/pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch
index f7b768af515f2..36d0ee0cde24f 100644
--- a/pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch
+++ b/pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch
@@ -1,4 +1,4 @@
-From a08ed6697974d7f7dabe60d42bbc9e31a10f7e23 Mon Sep 17 00:00:00 2001
+From 8fd5968163f3a1cb5f196d934756ba08ccaa5b1e Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Thu, 1 May 2014 14:10:10 +0200
 Subject: [PATCH 04/19] Look for fsck in the right place
@@ -8,7 +8,7 @@ Subject: [PATCH 04/19] Look for fsck in the right place
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/fsck/fsck.c b/src/fsck/fsck.c
-index cd7adfaeb9..68cebdd158 100644
+index 745d01ff50..dd4eef45c3 100644
 --- a/src/fsck/fsck.c
 +++ b/src/fsck/fsck.c
 @@ -368,7 +368,7 @@ static int run(int argc, char *argv[]) {
@@ -21,5 +21,5 @@ index cd7adfaeb9..68cebdd158 100644
                  cmdline[i++] = "-T";
  
 -- 
-2.33.1
+2.34.0
 
diff --git a/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch b/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch
index 7ebf07d0a82b7..6acac84a9d28b 100644
--- a/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch
+++ b/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch
@@ -1,4 +1,4 @@
-From ddcfae6de8c460903c5db8c536ffeb5771e976f8 Mon Sep 17 00:00:00 2001
+From 90d1a90d3147e9c8db5caec8befabda270e755d4 Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Fri, 19 Dec 2014 14:46:17 +0100
 Subject: [PATCH 05/19] Add some NixOS-specific unit directories
@@ -14,10 +14,10 @@ Also, remove /usr and /lib as these don't exist on NixOS.
  2 files changed, 6 insertions(+), 19 deletions(-)
 
 diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c
-index 05eb17d66c..1cd141d012 100644
+index 6fb8c40e7a..142ecdecec 100644
 --- a/src/basic/path-lookup.c
 +++ b/src/basic/path-lookup.c
-@@ -91,11 +91,7 @@ int xdg_user_data_dir(char **ret, const char *suffix) {
+@@ -92,11 +92,7 @@ int xdg_user_data_dir(char **ret, const char *suffix) {
  }
  
  static const char* const user_data_unit_paths[] = {
@@ -29,7 +29,7 @@ index 05eb17d66c..1cd141d012 100644
          NULL
  };
  
-@@ -613,15 +609,13 @@ int lookup_paths_init(
+@@ -614,15 +610,13 @@ int lookup_paths_init(
                                          persistent_config,
                                          SYSTEM_CONFIG_UNIT_DIR,
                                          "/etc/systemd/system",
@@ -46,7 +46,7 @@ index 05eb17d66c..1cd141d012 100644
                                          STRV_IFNOTNULL(generator_late));
                          break;
  
-@@ -637,14 +631,11 @@ int lookup_paths_init(
+@@ -638,14 +632,11 @@ int lookup_paths_init(
                                          persistent_config,
                                          USER_CONFIG_UNIT_DIR,
                                          "/etc/systemd/user",
@@ -62,7 +62,7 @@ index 05eb17d66c..1cd141d012 100644
                                          STRV_IFNOTNULL(generator_late));
                          break;
  
-@@ -794,7 +785,6 @@ char **generator_binary_paths(UnitFileScope scope) {
+@@ -795,7 +786,6 @@ char **generator_binary_paths(UnitFileScope scope) {
                  case UNIT_FILE_SYSTEM:
                          add = strv_new("/run/systemd/system-generators",
                                         "/etc/systemd/system-generators",
@@ -70,7 +70,7 @@ index 05eb17d66c..1cd141d012 100644
                                         SYSTEM_GENERATOR_DIR);
                          break;
  
-@@ -802,7 +792,6 @@ char **generator_binary_paths(UnitFileScope scope) {
+@@ -803,7 +793,6 @@ char **generator_binary_paths(UnitFileScope scope) {
                  case UNIT_FILE_USER:
                          add = strv_new("/run/systemd/user-generators",
                                         "/etc/systemd/user-generators",
@@ -78,7 +78,7 @@ index 05eb17d66c..1cd141d012 100644
                                         USER_GENERATOR_DIR);
                          break;
  
-@@ -841,12 +830,10 @@ char **env_generator_binary_paths(bool is_system) {
+@@ -842,12 +831,10 @@ char **env_generator_binary_paths(bool is_system) {
                  if (is_system)
                          add = strv_new("/run/systemd/system-environment-generators",
                                          "/etc/systemd/system-environment-generators",
@@ -122,5 +122,5 @@ index fc0f8c34fa..162432e77f 100644
  
  systemd_sleep_dir=${root_prefix}/lib/systemd/system-sleep
 -- 
-2.33.1
+2.34.0
 
diff --git a/pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch b/pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch
index 0c09107c5ef22..438d841bb1c7a 100644
--- a/pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch
+++ b/pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch
@@ -1,4 +1,4 @@
-From b39b8871bcaa07280d6b0cf2226b1a3be31232b8 Mon Sep 17 00:00:00 2001
+From 213279752124dc4a57a4189df9b5b2e96feaa0b3 Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Mon, 11 May 2015 15:39:38 +0200
 Subject: [PATCH 06/19] Get rid of a useless message in user sessions
@@ -13,10 +13,10 @@ in containers.
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/src/core/manager.c b/src/core/manager.c
-index 34891a8754..b9b4789720 100644
+index 9368a1dfa1..5b0bdb1bc7 100644
 --- a/src/core/manager.c
 +++ b/src/core/manager.c
-@@ -1375,7 +1375,8 @@ static unsigned manager_dispatch_stop_when_bound_queue(Manager *m) {
+@@ -1408,7 +1408,8 @@ static unsigned manager_dispatch_stop_when_bound_queue(Manager *m) {
                  if (!unit_is_bound_by_inactive(u, &culprit))
                          continue;
  
@@ -27,5 +27,5 @@ index 34891a8754..b9b4789720 100644
                  /* If stopping a unit fails continuously we might enter a stop loop here, hence stop acting on the
                   * service being unnecessary after a while. */
 -- 
-2.33.1
+2.34.0
 
diff --git a/pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch b/pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch
index d7649b5e44a76..a93488afbf92a 100644
--- a/pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch
+++ b/pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch
@@ -1,4 +1,4 @@
-From 566208aea81057789218b959f4d0e898eec54fc9 Mon Sep 17 00:00:00 2001
+From 14474d5e116609ce4fac60d779b08fa3eab840c3 Mon Sep 17 00:00:00 2001
 From: Gabriel Ebner <gebner@gebner.org>
 Date: Sun, 6 Dec 2015 14:26:36 +0100
 Subject: [PATCH 07/19] hostnamed, localed, timedated: disable methods that
@@ -11,10 +11,10 @@ Subject: [PATCH 07/19] hostnamed, localed, timedated: disable methods that
  3 files changed, 25 insertions(+)
 
 diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c
-index 36702f2fb0..669257ea2f 100644
+index b20a93ad81..6292fca4fc 100644
 --- a/src/hostname/hostnamed.c
 +++ b/src/hostname/hostnamed.c
-@@ -797,6 +797,9 @@ static int method_set_static_hostname(sd_bus_message *m, void *userdata, sd_bus_
+@@ -813,6 +813,9 @@ static int method_set_static_hostname(sd_bus_message *m, void *userdata, sd_bus_
          if (r < 0)
                  return r;
  
@@ -24,7 +24,7 @@ index 36702f2fb0..669257ea2f 100644
          name = empty_to_null(name);
  
          context_read_etc_hostname(c);
-@@ -860,6 +863,9 @@ static int set_machine_info(Context *c, sd_bus_message *m, int prop, sd_bus_mess
+@@ -876,6 +879,9 @@ static int set_machine_info(Context *c, sd_bus_message *m, int prop, sd_bus_mess
          if (r < 0)
                  return r;
  
@@ -104,5 +104,5 @@ index 66b454269d..0a8fe25d0f 100644
          if (r < 0)
                  return r;
 -- 
-2.33.1
+2.34.0
 
diff --git a/pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch b/pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch
index f938b553c9f52..e1bc44a148ea0 100644
--- a/pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch
+++ b/pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch
@@ -1,4 +1,4 @@
-From 3b9983969de2a86929768f6362ed41c20dd13bd3 Mon Sep 17 00:00:00 2001
+From d668df39728c992ec0c691ef6e76664e7121f5bd Mon Sep 17 00:00:00 2001
 From: Nikolay Amiantov <ab@fmap.me>
 Date: Thu, 7 Jul 2016 02:47:13 +0300
 Subject: [PATCH 08/19] Fix hwdb paths
@@ -24,5 +24,5 @@ index 5ddc2211e6..ee621eec46 100644
 +        "/etc/udev/hwdb.bin\0"
 +
 -- 
-2.33.1
+2.34.0
 
diff --git a/pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch b/pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
index 87cf1afc7d22b..68d40980ab169 100644
--- a/pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
+++ b/pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
@@ -1,4 +1,4 @@
-From b5966b6abb9696798618367cab33d1fed317734f Mon Sep 17 00:00:00 2001
+From dd59ce5f1bbdafb0b92f8aeacc68b000ec347a61 Mon Sep 17 00:00:00 2001
 From: Nikolay Amiantov <ab@fmap.me>
 Date: Tue, 11 Oct 2016 13:12:08 +0300
 Subject: [PATCH 09/19] Change /usr/share/zoneinfo to /etc/zoneinfo
@@ -35,10 +35,10 @@ index e486474c44..5f373d0723 100644
      <literal>Etc/UTC</literal>. The resulting link should lead to the
      corresponding binary
 diff --git a/src/basic/time-util.c b/src/basic/time-util.c
-index 5d162e8ffe..1bec83e555 100644
+index b659d6905d..660b1c6fed 100644
 --- a/src/basic/time-util.c
 +++ b/src/basic/time-util.c
-@@ -1269,7 +1269,7 @@ static int get_timezones_from_zone1970_tab(char ***ret) {
+@@ -1267,7 +1267,7 @@ static int get_timezones_from_zone1970_tab(char ***ret) {
  
          assert(ret);
  
@@ -47,7 +47,7 @@ index 5d162e8ffe..1bec83e555 100644
          if (!f)
                  return -errno;
  
-@@ -1308,7 +1308,7 @@ static int get_timezones_from_tzdata_zi(char ***ret) {
+@@ -1306,7 +1306,7 @@ static int get_timezones_from_tzdata_zi(char ***ret) {
          _cleanup_strv_free_ char **zones = NULL;
          int r;
  
@@ -56,7 +56,7 @@ index 5d162e8ffe..1bec83e555 100644
          if (!f)
                  return -errno;
  
-@@ -1421,7 +1421,7 @@ int verify_timezone(const char *name, int log_level) {
+@@ -1419,7 +1419,7 @@ int verify_timezone(const char *name, int log_level) {
          if (p - name >= PATH_MAX)
                  return -ENAMETOOLONG;
  
@@ -65,7 +65,7 @@ index 5d162e8ffe..1bec83e555 100644
  
          fd = open(t, O_RDONLY|O_CLOEXEC);
          if (fd < 0)
-@@ -1512,7 +1512,7 @@ int get_timezone(char **ret) {
+@@ -1510,7 +1510,7 @@ int get_timezone(char **ret) {
          if (r < 0)
                  return r; /* returns EINVAL if not a symlink */
  
@@ -75,10 +75,10 @@ index 5d162e8ffe..1bec83e555 100644
                  return -EINVAL;
  
 diff --git a/src/firstboot/firstboot.c b/src/firstboot/firstboot.c
-index 2cb4f80d5d..ebeaeac52f 100644
+index d28a416e5d..c7c215731d 100644
 --- a/src/firstboot/firstboot.c
 +++ b/src/firstboot/firstboot.c
-@@ -491,7 +491,7 @@ static int process_timezone(void) {
+@@ -494,7 +494,7 @@ static int process_timezone(void) {
          if (isempty(arg_timezone))
                  return 0;
  
@@ -88,10 +88,10 @@ index 2cb4f80d5d..ebeaeac52f 100644
          (void) mkdir_parents(etc_localtime, 0755);
          if (symlink(e, etc_localtime) < 0)
 diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
-index 438ca294db..98bd110d92 100644
+index 197e5aa252..c674fa61d5 100644
 --- a/src/nspawn/nspawn.c
 +++ b/src/nspawn/nspawn.c
-@@ -1887,8 +1887,8 @@ int userns_mkdir(const char *root, const char *path, mode_t mode, uid_t uid, gid
+@@ -1899,8 +1899,8 @@ int userns_mkdir(const char *root, const char *path, mode_t mode, uid_t uid, gid
  static const char *timezone_from_path(const char *path) {
          return PATH_STARTSWITH_SET(
                          path,
@@ -137,5 +137,5 @@ index 0a8fe25d0f..2f02b9a520 100644
                          return -ENOMEM;
  
 -- 
-2.33.1
+2.34.0
 
diff --git a/pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch b/pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch
index 6e36bbdc34065..f2514de6c6629 100644
--- a/pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch
+++ b/pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch
@@ -1,4 +1,4 @@
-From f4e9304560ad42eeb8d42be583cc55eb2e5b4bb1 Mon Sep 17 00:00:00 2001
+From a93da270bed88972f4d60a1fa08f24e00712d7fb Mon Sep 17 00:00:00 2001
 From: Imuli <i@imu.li>
 Date: Wed, 19 Oct 2016 08:46:47 -0400
 Subject: [PATCH 10/19] localectl: use /etc/X11/xkb for list-x11-*
@@ -10,10 +10,10 @@ NixOS has an option to link the xkb data files to /etc/X11, but not to
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/locale/localectl.c b/src/locale/localectl.c
-index 548ac8eb2c..5e372f1566 100644
+index b5624209dc..4ab7adfdb6 100644
 --- a/src/locale/localectl.c
 +++ b/src/locale/localectl.c
-@@ -280,7 +280,7 @@ static int list_x11_keymaps(int argc, char **argv, void *userdata) {
+@@ -279,7 +279,7 @@ static int list_x11_keymaps(int argc, char **argv, void *userdata) {
          } state = NONE, look_for;
          int r;
  
@@ -23,5 +23,5 @@ index 548ac8eb2c..5e372f1566 100644
                  return log_error_errno(errno, "Failed to open keyboard mapping list. %m");
  
 -- 
-2.33.1
+2.34.0
 
diff --git a/pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch b/pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch
index 5aa22d988952d..c21a1bda41226 100644
--- a/pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch
+++ b/pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch
@@ -1,4 +1,4 @@
-From 43a363f30b6012d600cfb62a3851c4ac7af4d1d5 Mon Sep 17 00:00:00 2001
+From 3bc3462165cd72de93a1c71f03e6c4150726b159 Mon Sep 17 00:00:00 2001
 From: Franz Pletz <fpletz@fnordicwalking.de>
 Date: Sun, 11 Feb 2018 04:37:44 +0100
 Subject: [PATCH 11/19] build: don't create statedir and don't touch prefixdir
@@ -8,12 +8,12 @@ Subject: [PATCH 11/19] build: don't create statedir and don't touch prefixdir
  1 file changed, 3 deletions(-)
 
 diff --git a/meson.build b/meson.build
-index 5bdfd9753d..5bf6afc7b7 100644
+index c0cbadecb1..8266bf57de 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -3539,9 +3539,6 @@ install_data('LICENSE.GPL2',
-              'docs/GVARIANT-SERIALIZATION.md',
-              install_dir : docdir)
+@@ -3729,9 +3729,6 @@ install_data('LICENSE.GPL2',
+ install_subdir('LICENSES',
+                install_dir : docdir)
  
 -meson.add_install_script('sh', '-c', mkdir_p.format(systemdstatedir))
 -meson.add_install_script('sh', '-c', 'touch $DESTDIR@0@'.format(prefixdir))
@@ -22,5 +22,5 @@ index 5bdfd9753d..5bf6afc7b7 100644
  
  # Ensure that changes to the docs/ directory do not break the
 -- 
-2.33.1
+2.34.0
 
diff --git a/pkgs/os-specific/linux/systemd/0012-inherit-systemd-environment-when-calling-generators.patch b/pkgs/os-specific/linux/systemd/0012-inherit-systemd-environment-when-calling-generators.patch
index a2bdfcf8ec3fd..5f27e41752328 100644
--- a/pkgs/os-specific/linux/systemd/0012-inherit-systemd-environment-when-calling-generators.patch
+++ b/pkgs/os-specific/linux/systemd/0012-inherit-systemd-environment-when-calling-generators.patch
@@ -1,4 +1,4 @@
-From 7ea935a5ac4f31106ce9347227d4eb59b77b02cd Mon Sep 17 00:00:00 2001
+From 85f0ad0cb7b4f0cfd482c9611f9cbc2dacbba33a Mon Sep 17 00:00:00 2001
 From: Andreas Rammhold <andreas@rammhold.de>
 Date: Fri, 2 Nov 2018 21:15:42 +0100
 Subject: [PATCH 12/19] inherit systemd environment when calling generators.
@@ -16,10 +16,10 @@ executables that are being called from managers.
  1 file changed, 9 insertions(+), 4 deletions(-)
 
 diff --git a/src/core/manager.c b/src/core/manager.c
-index b9b4789720..79239afe4a 100644
+index 5b0bdb1bc7..1538a5200a 100644
 --- a/src/core/manager.c
 +++ b/src/core/manager.c
-@@ -4149,10 +4149,15 @@ static int manager_run_generators(Manager *m) {
+@@ -3653,10 +3653,15 @@ static int manager_run_generators(Manager *m) {
          argv[4] = NULL;
  
          RUN_WITH_UMASK(0022)
@@ -40,5 +40,5 @@ index b9b4789720..79239afe4a 100644
  
  finish:
 -- 
-2.33.1
+2.34.0
 
diff --git a/pkgs/os-specific/linux/systemd/0013-add-rootprefix-to-lookup-dir-paths.patch b/pkgs/os-specific/linux/systemd/0013-add-rootprefix-to-lookup-dir-paths.patch
index 20372a5dbad58..d008cf2821c7a 100644
--- a/pkgs/os-specific/linux/systemd/0013-add-rootprefix-to-lookup-dir-paths.patch
+++ b/pkgs/os-specific/linux/systemd/0013-add-rootprefix-to-lookup-dir-paths.patch
@@ -1,4 +1,4 @@
-From eb93778af78a127e8e20d6ed7fd9f91fd22dc7c9 Mon Sep 17 00:00:00 2001
+From b30d2273d3ce1480b0c4c27c25211f84e04172e9 Mon Sep 17 00:00:00 2001
 From: Andreas Rammhold <andreas@rammhold.de>
 Date: Thu, 9 May 2019 11:15:22 +0200
 Subject: [PATCH 13/19] add rootprefix to lookup dir paths
@@ -12,7 +12,7 @@ files that I might have missed.
  1 file changed, 4 insertions(+), 2 deletions(-)
 
 diff --git a/src/basic/def.h b/src/basic/def.h
-index 2e60abb4f1..732ec51d36 100644
+index eccee3d3fa..e94a2c8bd0 100644
 --- a/src/basic/def.h
 +++ b/src/basic/def.h
 @@ -39,13 +39,15 @@
@@ -34,5 +34,5 @@ index 2e60abb4f1..732ec51d36 100644
  #define CONF_PATHS(n)                           \
          CONF_PATHS_USR(n)                       \
 -- 
-2.33.1
+2.34.0
 
diff --git a/pkgs/os-specific/linux/systemd/0014-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch b/pkgs/os-specific/linux/systemd/0014-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch
index a22566eb4cc30..49c6651c0edff 100644
--- a/pkgs/os-specific/linux/systemd/0014-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch
+++ b/pkgs/os-specific/linux/systemd/0014-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch
@@ -1,4 +1,4 @@
-From 1d623def80a3532ac1445499c9d4673e21ae8195 Mon Sep 17 00:00:00 2001
+From 76da27ff77e5db07e502d4d8d26286d69c3f0319 Mon Sep 17 00:00:00 2001
 From: Nikolay Amiantov <ab@fmap.me>
 Date: Thu, 25 Jul 2019 20:45:55 +0300
 Subject: [PATCH 14/19] systemd-shutdown: execute scripts in
@@ -10,12 +10,12 @@ This is needed for NixOS to use such scripts as systemd directory is immutable.
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/shutdown/shutdown.c b/src/shutdown/shutdown.c
-index a98cfc4d8a..b0b34edda7 100644
+index 7ad9930677..fdb03a2e1a 100644
 --- a/src/shutdown/shutdown.c
 +++ b/src/shutdown/shutdown.c
-@@ -312,7 +312,7 @@ int main(int argc, char *argv[]) {
+@@ -335,7 +335,7 @@ int main(int argc, char *argv[]) {
          _cleanup_free_ char *cgroup = NULL;
-         char *arguments[3], *watchdog_device;
+         char *arguments[3];
          int cmd, r, umount_log_level = LOG_INFO;
 -        static const char* const dirs[] = {SYSTEM_SHUTDOWN_PATH, NULL};
 +        static const char* const dirs[] = {SYSTEM_SHUTDOWN_PATH, "/etc/systemd/system-shutdown", NULL};
@@ -23,5 +23,5 @@ index a98cfc4d8a..b0b34edda7 100644
          /* The log target defaults to console, but the original systemd process will pass its log target in through a
           * command line argument, which will override this default. Also, ensure we'll never log to the journal or
 -- 
-2.33.1
+2.34.0
 
diff --git a/pkgs/os-specific/linux/systemd/0015-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch b/pkgs/os-specific/linux/systemd/0015-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
index 1a21d1005ee04..78d77c0058229 100644
--- a/pkgs/os-specific/linux/systemd/0015-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
+++ b/pkgs/os-specific/linux/systemd/0015-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
@@ -1,4 +1,4 @@
-From 5a96c4a98be971d84a12ae04e42bc3cb889d5191 Mon Sep 17 00:00:00 2001
+From 47c651f97acae814d4ff679ae04d78d4532cbca6 Mon Sep 17 00:00:00 2001
 From: Nikolay Amiantov <ab@fmap.me>
 Date: Thu, 25 Jul 2019 20:46:58 +0300
 Subject: [PATCH 15/19] systemd-sleep: execute scripts in
@@ -10,7 +10,7 @@ This is needed for NixOS to use such scripts as systemd directory is immutable.
  1 file changed, 1 insertion(+)
 
 diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c
-index a3aeb24633..0ed6a34d79 100644
+index 7064f3a905..b60ced9d9b 100644
 --- a/src/sleep/sleep.c
 +++ b/src/sleep/sleep.c
 @@ -182,6 +182,7 @@ static int execute(
@@ -22,5 +22,5 @@ index a3aeb24633..0ed6a34d79 100644
          };
  
 -- 
-2.33.1
+2.34.0
 
diff --git a/pkgs/os-specific/linux/systemd/0016-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch b/pkgs/os-specific/linux/systemd/0016-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch
index 12624cb5548fc..3c1643e0f1ab8 100644
--- a/pkgs/os-specific/linux/systemd/0016-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch
+++ b/pkgs/os-specific/linux/systemd/0016-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch
@@ -1,32 +1,27 @@
-From 775a2a8940c07f4af33a2a11bfa17e0257b427cb Mon Sep 17 00:00:00 2001
+From df0fec7ac2f33bcca60ba9a2396af33397ba42cc Mon Sep 17 00:00:00 2001
 From: Florian Klink <flokli@flokli.de>
 Date: Sat, 7 Mar 2020 22:40:27 +0100
 Subject: [PATCH 16/19] kmod-static-nodes.service: Update ConditionFileNotEmpty
 
-kmod loads modules from not only /lib/modules but also from
-/run/booted-system/kernel-modules/lib/modules and
-/run/current-system/kernel-modules/lib/module
-
-Co-authored-by: Arian van Putten <arian.vanputten@gmail.com>
+On NixOS, kernel modules of the currently booted systems are located at
+/run/booted-system/kernel-modules/lib/modules/%v/, not /lib/modules/%v/.
 ---
- units/kmod-static-nodes.service.in | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
+ units/kmod-static-nodes.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/units/kmod-static-nodes.service.in b/units/kmod-static-nodes.service.in
-index 777e82d16b..9a5e05a1cc 100644
+index 777e82d16b..b6abc2bba0 100644
 --- a/units/kmod-static-nodes.service.in
 +++ b/units/kmod-static-nodes.service.in
-@@ -12,7 +12,9 @@ Description=Create List of Static Device Nodes
+@@ -12,7 +12,7 @@ Description=Create List of Static Device Nodes
  DefaultDependencies=no
  Before=sysinit.target systemd-tmpfiles-setup-dev.service
  ConditionCapability=CAP_SYS_MODULE
 -ConditionFileNotEmpty=/lib/modules/%v/modules.devname
-+ConditionFileNotEmpty=|/lib/modules/%v/modules.devname
-+ConditionFileNotEmpty=|/run/booted-system/kernel-modules/lib/modules/%v/modules.devname
-+ConditionFileNotEmpty=|/run/current-system/kernel-modules/lib/modules/%v/modules.devname
++ConditionFileNotEmpty=/run/booted-system/kernel-modules/lib/modules/%v/modules.devname
  
  [Service]
  Type=oneshot
 -- 
-2.33.1
+2.34.0
 
diff --git a/pkgs/os-specific/linux/systemd/0017-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch b/pkgs/os-specific/linux/systemd/0017-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
index 52b74284fe26d..882690ad9140f 100644
--- a/pkgs/os-specific/linux/systemd/0017-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
+++ b/pkgs/os-specific/linux/systemd/0017-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
@@ -1,4 +1,4 @@
-From 6ddb2011b379f3232374327517af874b68c434b5 Mon Sep 17 00:00:00 2001
+From f21722ac0f51b0b59a5c030af3db5fe4e6397f7c Mon Sep 17 00:00:00 2001
 From: Florian Klink <flokli@flokli.de>
 Date: Sun, 8 Mar 2020 01:05:54 +0100
 Subject: [PATCH 17/19] path-util.h: add placeholder for DEFAULT_PATH_NORMAL
@@ -10,7 +10,7 @@ systemd itself uses extensively.
  1 file changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/src/basic/path-util.h b/src/basic/path-util.h
-index 26e7362d1f..a8f8a863ec 100644
+index 518f3340bf..18e826ea0b 100644
 --- a/src/basic/path-util.h
 +++ b/src/basic/path-util.h
 @@ -24,11 +24,11 @@
@@ -29,5 +29,5 @@ index 26e7362d1f..a8f8a863ec 100644
  #if HAVE_SPLIT_USR
  #  define DEFAULT_PATH DEFAULT_PATH_SPLIT_USR
 -- 
-2.33.1
+2.34.0
 
diff --git a/pkgs/os-specific/linux/systemd/0018-pkg-config-derive-prefix-from-prefix.patch b/pkgs/os-specific/linux/systemd/0018-pkg-config-derive-prefix-from-prefix.patch
index 58eb7f96e642c..e602bef9c3d7f 100644
--- a/pkgs/os-specific/linux/systemd/0018-pkg-config-derive-prefix-from-prefix.patch
+++ b/pkgs/os-specific/linux/systemd/0018-pkg-config-derive-prefix-from-prefix.patch
@@ -1,4 +1,4 @@
-From 50f2ada6cbfafa75b628410e8834f29581854e6f Mon Sep 17 00:00:00 2001
+From 968bd0c7bc058a4b05b6457f9ff20d02b70c9852 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
 Date: Sun, 6 Dec 2020 08:34:19 +0100
 Subject: [PATCH 18/19] pkg-config: derive prefix from --prefix
@@ -29,5 +29,5 @@ index 162432e77f..2fc20daf03 100644
  rootprefix=${root_prefix}
  sysconf_dir={{SYSCONF_DIR}}
 -- 
-2.33.1
+2.34.0
 
diff --git a/pkgs/os-specific/linux/systemd/0019-core-handle-lookup-paths-being-symlinks.patch b/pkgs/os-specific/linux/systemd/0019-core-handle-lookup-paths-being-symlinks.patch
index 54e5c32aeb446..916f95e194ac6 100644
--- a/pkgs/os-specific/linux/systemd/0019-core-handle-lookup-paths-being-symlinks.patch
+++ b/pkgs/os-specific/linux/systemd/0019-core-handle-lookup-paths-being-symlinks.patch
@@ -1,4 +1,4 @@
-From 2ab388cf0be320879e668a6206cb15d002b55f98 Mon Sep 17 00:00:00 2001
+From 169fc6f270ff3e3903a7a31550c964152f9751ec Mon Sep 17 00:00:00 2001
 From: Andreas Rammhold <andreas@rammhold.de>
 Date: Wed, 18 Aug 2021 19:10:08 +0200
 Subject: [PATCH 19/19] core: handle lookup paths being symlinks
@@ -15,10 +15,10 @@ directory itself is already a symlink.
  1 file changed, 31 insertions(+), 2 deletions(-)
 
 diff --git a/src/basic/unit-file.c b/src/basic/unit-file.c
-index 0d58b1c4fe..7314f1245f 100644
+index 30c632dfce..6179100126 100644
 --- a/src/basic/unit-file.c
 +++ b/src/basic/unit-file.c
-@@ -254,6 +254,7 @@ int unit_file_build_name_map(
+@@ -255,6 +255,7 @@ int unit_file_build_name_map(
  
          _cleanup_hashmap_free_ Hashmap *ids = NULL, *names = NULL;
          _cleanup_set_free_free_ Set *paths = NULL;
@@ -26,7 +26,7 @@ index 0d58b1c4fe..7314f1245f 100644
          uint64_t timestamp_hash;
          char **dir;
          int r;
-@@ -273,6 +274,34 @@ int unit_file_build_name_map(
+@@ -274,6 +275,34 @@ int unit_file_build_name_map(
                          return log_oom();
          }
  
@@ -59,9 +59,9 @@ index 0d58b1c4fe..7314f1245f 100644
 +        }
 +
          STRV_FOREACH(dir, (char**) lp->search_path) {
-                 struct dirent *de;
                  _cleanup_closedir_ DIR *d = NULL;
-@@ -351,11 +380,11 @@ int unit_file_build_name_map(
+ 
+@@ -386,11 +415,11 @@ int unit_file_build_name_map(
                                          continue;
                                  }
  
@@ -76,5 +76,5 @@ index 0d58b1c4fe..7314f1245f 100644
                                          log_debug("%s: linked unit file: %s → %s",
                                                    __func__, filename, simplified);
 -- 
-2.33.1
+2.34.0
 
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index 4cbed9b7cbf10..e130abbf27ff3 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -15,6 +15,8 @@
 , gperf
 , getent
 , glibcLocales
+
+  # glib is only used during tests (test-bus-gvariant, test-bus-marshal)
 , glib
 , substituteAll
 , gettext
@@ -29,7 +31,6 @@
   # Optional dependencies
 , pam
 , cryptsetup
-, lvm2
 , audit
 , acl
 , lz4
@@ -61,8 +62,10 @@
 , kexec-tools
 , bashInteractive
 , libmicrohttpd
+, libfido2
+, p11-kit
 
-  # the (optional) BPF feature requires bpftool, libbpf, clang and llmv-strip to be avilable during build time.
+  # the (optional) BPF feature requires bpftool, libbpf, clang and llvm-strip to be available during build time.
   # Only libbpf should be a runtime dependency.
 , bpftools
 , libbpf
@@ -97,8 +100,8 @@
 , withTimesyncd ? true
 , withTpm2Tss ? !stdenv.hostPlatform.isMusl
 , withUserDb ? !stdenv.hostPlatform.isMusl
-, libfido2
-, p11-kit
+  # tests assume too much system access for them to be feasible for us right now
+, withTests ? false
 
   # name argument
 , pname ? "systemd"
@@ -123,7 +126,14 @@ assert withHomed -> withCryptsetup;
 assert withCryptsetup -> (cryptsetup != null);
 let
   wantCurl = withRemote || withImportd;
-  version = "249.7";
+  wantGcrypt = withResolved || withImportd;
+  version = "250.4";
+
+  # Bump this variable on every (major) version change. See below (in the meson options list) for why.
+  # command:
+  #  $ curl -s https://api.github.com/repos/systemd/systemd/releases/latest | \
+  #     jq '.created_at|strptime("%Y-%m-%dT%H:%M:%SZ")|mktime'
+  releaseTimestamp = "1640290180";
 in
 stdenv.mkDerivation {
   inherit pname version;
@@ -134,12 +144,12 @@ stdenv.mkDerivation {
     owner = "systemd";
     repo = "systemd-stable";
     rev = "v${version}";
-    sha256 = "sha256-y33/BvvI+JyhsvuT1Cbm6J2Z72j71oXgLw6X9NwCMPE=";
+    sha256 = "sha256-AdzPh7dGVrGbbjL9+PqytQOpRzNDUUEftmKZAbFH3L4=";
   };
 
-  # If these need to be regenerated, `git am path/to/00*.patch` them into a
-  # systemd worktree, rebase to the more recent systemd version, and export the
-  # patches again via `git -c format.signoff=false format-patch v${version}`.
+  # On major changes, or when otherwise required, you *must* reformat the patches,
+  # `git am path/to/00*.patch` them into a systemd worktree, rebase to the more recent
+  # systemd version, and export the patches again via `git -c format.signoff=false format-patch v${version}`.
   # Use `find . -name "*.patch" | sort` to get an up-to-date listing of all patches
   patches = [
     ./0001-Start-device-units-for-uninitialised-encrypted-devic.patch
@@ -166,42 +176,44 @@ stdenv.mkDerivation {
     # systemd. With the below patch we mitigate that effect by special casing
     # all our root unit dirs if they are symlinks. This does exactly what we
     # need (AFAICT).
-    # See https://github.com/systemd/systemd/pull/20479 for upsteam discussion.
+    # See https://github.com/systemd/systemd/pull/20479 for upstream discussion.
     ./0019-core-handle-lookup-paths-being-symlinks.patch
-  ] ++ lib.optional stdenv.hostPlatform.isMusl (let
-    oe-core = fetchzip {
-      url = "https://git.openembedded.org/openembedded-core/snapshot/openembedded-core-14c6e5a4b72d0e4665279158a0740dd1dc21f72f.tar.bz2";
-      sha256 = "1jixya4czkr5p5rdcw3d6ips8zzr82dvnanvzvgjh67730scflya";
-    };
-    musl-patches = oe-core + "/meta/recipes-core/systemd/systemd";
-  in [
-    (musl-patches + "/0002-don-t-use-glibc-specific-qsort_r.patch")
-    (musl-patches + "/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch")
-    (musl-patches + "/0004-add-fallback-parse_printf_format-implementation.patch")
-    (musl-patches + "/0005-src-basic-missing.h-check-for-missing-strndupa.patch")
-    (musl-patches + "/0006-Include-netinet-if_ether.h.patch")
-    (musl-patches + "/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch")
-    (musl-patches + "/0008-add-missing-FTW_-macros-for-musl.patch")
-    (musl-patches + "/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch")
-    (musl-patches + "/0010-Use-uintmax_t-for-handling-rlim_t.patch")
-    (musl-patches + "/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch")
-    (musl-patches + "/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch")
-    (musl-patches + "/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch")
-    (musl-patches + "/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch")
-    (musl-patches + "/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch")
-    (musl-patches + "/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch")
-    (musl-patches + "/0017-missing_type.h-add-__compar_d_fn_t-definition.patch")
-    (musl-patches + "/0018-avoid-redefinition-of-prctl_mm_map-structure.patch")
-    (musl-patches + "/0019-Handle-missing-LOCK_EX.patch")
-    (musl-patches + "/0021-test-json.c-define-M_PIl.patch")
-    (musl-patches + "/0022-do-not-disable-buffer-in-writing-files.patch")
-    (musl-patches + "/0025-Handle-__cpu_mask-usage.patch")
-    (musl-patches + "/0026-Handle-missing-gshadow.patch")
-    (musl-patches + "/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch")
-
-    # Being discussed upstream: https://lists.openembedded.org/g/openembedded-core/topic/86411771#157056
-    ./musl.diff
-  ]);
+  ] ++ lib.optional stdenv.hostPlatform.isMusl (
+    let
+      oe-core = fetchzip {
+        url = "https://git.openembedded.org/openembedded-core/snapshot/openembedded-core-7e35a575ef09a85e625a81e0b4d80b020e3e3a92.tar.bz2";
+        sha256 = "0dvz4685nk0y7nnq3sr2q8ab3wfx0bi8ilwcgn0h6kagwcnav2n8";
+      };
+      musl-patches = oe-core + "/meta/recipes-core/systemd/systemd";
+    in
+    [
+      (musl-patches + "/0002-don-t-use-glibc-specific-qsort_r.patch")
+      (musl-patches + "/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch")
+      (musl-patches + "/0004-add-fallback-parse_printf_format-implementation.patch")
+      (musl-patches + "/0005-src-basic-missing.h-check-for-missing-strndupa.patch")
+      (musl-patches + "/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch")
+      (musl-patches + "/0008-add-missing-FTW_-macros-for-musl.patch")
+      (musl-patches + "/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch")
+      (musl-patches + "/0010-Use-uintmax_t-for-handling-rlim_t.patch")
+      (musl-patches + "/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch")
+      (musl-patches + "/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch")
+      (musl-patches + "/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch")
+      (musl-patches + "/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch")
+      (musl-patches + "/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch")
+      (musl-patches + "/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch")
+      (musl-patches + "/0017-missing_type.h-add-__compar_d_fn_t-definition.patch")
+      (musl-patches + "/0018-avoid-redefinition-of-prctl_mm_map-structure.patch")
+      (musl-patches + "/0019-Handle-missing-LOCK_EX.patch")
+      (musl-patches + "/0021-test-json.c-define-M_PIl.patch")
+      (musl-patches + "/0022-do-not-disable-buffer-in-writing-files.patch")
+      (musl-patches + "/0025-Handle-__cpu_mask-usage.patch")
+      (musl-patches + "/0026-Handle-missing-gshadow.patch")
+      (musl-patches + "/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch")
+      (musl-patches + "/0001-pass-correct-parameters-to-getdents64.patch")
+      (musl-patches + "/0002-Add-sys-stat.h-for-S_IFDIR.patch")
+      (musl-patches + "/0001-Adjust-for-musl-headers.patch")
+    ]
+  );
 
   postPatch = ''
     substituteInPlace src/basic/path-util.h --replace "@defaultPathNormal@" "${placeholder "out"}/bin/"
@@ -211,7 +223,7 @@ stdenv.mkDerivation {
       "find_program('${stdenv.cc.bintools.targetPrefix}objcopy'"
   '' + (
     let
-      # The folllowing patches references to dynamic libraries to ensure that
+      # The following patches references to dynamic libraries to ensure that
       # all the features that are implemented via dlopen(3) are available (or
       # explicitly deactivated) by pointing dlopen to the absolute store path
       # instead of relying on the linkers runtime lookup code.
@@ -267,7 +279,7 @@ stdenv.mkDerivation {
           { name = "libidn.so.12"; pkg = null; }
           { name = "libidn.so.11"; pkg = null; }
 
-          # journalctl --grep requires libpcre so lets provide it
+          # journalctl --grep requires libpcre so let's provide it
           { name = "libpcre2-8.so.0"; pkg = pcre2; }
 
           # Support for TPM2 in systemd-cryptsetup, systemd-repart and systemd-cryptenroll
@@ -276,6 +288,10 @@ stdenv.mkDerivation {
           { name = "libtss2-mu.so.0"; pkg = opt withTpm2Tss tpm2-tss; }
           { name = "libtss2-tcti-"; pkg = opt withTpm2Tss tpm2-tss; }
           { name = "libfido2.so.1"; pkg = opt withFido2 libfido2; }
+
+          # inspect-elf support
+          { name = "libelf.so.1"; pkg = opt withCoredump elfutils; }
+          { name = "libdw.so.1"; pkg = opt withCoredump elfutils; }
         ];
 
       patchDlOpen = dl:
@@ -294,7 +310,7 @@ stdenv.mkDerivation {
             # exceptional case, details:
             # https://github.com/systemd/systemd-stable/blob/v249-stable/src/shared/tpm2-util.c#L157
             if ! [[ "${library}" =~ .*libtss2-tcti-$ ]]; then
-              echo 'The shared library `${library}` does not exist but was given as subtitute for `${dl.name}`'
+              echo 'The shared library `${library}` does not exist but was given as substitute for `${dl.name}`'
               exit 1
             fi
           fi
@@ -318,8 +334,8 @@ stdenv.mkDerivation {
     fi
   ''
   # Finally patch shebangs that might need patching.
-  # Should no longer be necessary with v250.
-  # https://github.com/systemd/systemd/pull/19638
+  # Should no longer be necessary with v251.
+  # https://github.com/systemd/systemd/pull/21749
   + ''
     patchShebangs .
   '';
@@ -356,16 +372,16 @@ stdenv.mkDerivation {
     [
       acl
       audit
-      glib
       kmod
       libcap
-      libgcrypt
       libidn2
       libuuid
       linuxHeaders
       pam
     ]
 
+    ++ lib.optional wantGcrypt libgcrypt
+    ++ lib.optional withTests glib
     ++ lib.optional withApparmor libapparmor
     ++ lib.optional wantCurl (lib.getDev curl)
     ++ lib.optionals withCompression [ bzip2 lz4 xz zstd ]
@@ -389,6 +405,14 @@ stdenv.mkDerivation {
 
   mesonFlags = [
     "-Dversion-tag=${version}"
+    # We bump this variable on every (major) version change to ensure
+    # that we have known-good value for a timestamp that is in the (not so distant) past.
+    # This serves as a lower bound for valid system timestamps during startup. Systemd will
+    # reset the system timestamp if this date is +- 15 years from the system time.
+    # See the systemd v250 release notes for further details:
+    # https://github.com/systemd/systemd/blob/60e930fc3e6eb8a36fbc184773119eb8d2f30364/NEWS#L258-L266
+    "-Dtime-epoch=${releaseTimestamp}"
+
     "-Ddbuspolicydir=${placeholder "out"}/share/dbus-1/system.d"
     "-Ddbussessionservicedir=${placeholder "out"}/share/dbus-1/services"
     "-Ddbussystemservicedir=${placeholder "out"}/share/dbus-1/system-services"
@@ -400,11 +424,11 @@ stdenv.mkDerivation {
     "-Dsetfont-path=${kbd}/bin/setfont"
     "-Dtty-gid=3" # tty in NixOS has gid 3
     "-Ddebug-shell=${bashInteractive}/bin/bash"
-    "-Dglib=${lib.boolToString (glib != null)}"
+    "-Dglib=${lib.boolToString withTests}"
     # while we do not run tests we should also not build them. Removes about 600 targets
     "-Dtests=false"
     "-Danalyze=${lib.boolToString withAnalyze}"
-    "-Dgcrypt=${lib.boolToString (libgcrypt != null)}"
+    "-Dgcrypt=${lib.boolToString wantGcrypt}"
     "-Dimportd=${lib.boolToString withImportd}"
     "-Dlz4=${lib.boolToString withCompression}"
     "-Dhomed=${lib.boolToString withHomed}"
@@ -435,7 +459,11 @@ stdenv.mkDerivation {
     "-Dsmack=true"
     "-Db_pie=true"
     "-Dinstall-sysconfdir=false"
-    "-Defi-ld=${stdenv.cc.bintools.targetPrefix}ld"
+    "-Dsbat-distro=nixos"
+    "-Dsbat-distro-summary=NixOS"
+    "-Dsbat-distro-url=https://nixos.org/"
+    "-Dsbat-distro-pkgname=${pname}"
+    "-Dsbat-distro-version=${version}"
     /*
       As of now, systemd doesn't allow runtime configuration of these values. So
       the settings in /etc/login.defs have no effect on it. Many people think this
@@ -448,7 +476,6 @@ stdenv.mkDerivation {
     */
     "-Dsystem-uid-max=999"
     "-Dsystem-gid-max=999"
-    # "-Dtime-epoch=1"
 
     "-Dsysvinit-path="
     "-Dsysvrcnd-path="
@@ -487,57 +514,96 @@ stdenv.mkDerivation {
     "-Dutmp=false"
     "-Didn=false"
   ];
+  preConfigure =
+    let
+      # A list of all the runtime binaries that the systemd exectuables, tests and libraries are referencing in their source code, scripts and unit files.
+      # As soon as a dependency isn't required anymore we should remove it from the list. The `where` attribute for each of the replacement patterns must be exhaustive. If another (unhandled) case is found in the source code the build fails with an error message.
+      binaryReplacements = [
+        { search = "/usr/bin/getent"; replacement = "${getent}/bin/getent"; where = [ "src/nspawn/nspawn-setuid.c" ]; }
+
+        {
+          search = "/sbin/mkswap";
+          replacement = "${lib.getBin util-linux}/sbin/mkswap";
+          where = [
+            "man/systemd-makefs@.service.xml"
+          ];
+        }
+        { search = "/sbin/swapon"; replacement = "${lib.getBin util-linux}/sbin/swapon"; where = [ "src/core/swap.c" "src/basic/unit-def.h" ]; }
+        { search = "/sbin/swapoff"; replacement = "${lib.getBin util-linux}/sbin/swapoff"; where = [ "src/core/swap.c" ]; }
+        {
+          search = "/bin/echo";
+          replacement = "${coreutils}/bin/echo";
+          where = [
+            "man/systemd-analyze.xml"
+            "man/systemd.service.xml"
+            "src/analyze/test-verify.c"
+            "src/test/test-env-file.c"
+            "src/test/test-fileio.c"
+          ];
+        }
+        {
+          search = "/bin/cat";
+          replacement = "${coreutils}/bin/cat";
+          where = [ "test/create-busybox-container" "test/test-execute/exec-noexecpaths-simple.service" "src/journal/cat.c" ];
+        }
+        { search = "/sbin/modprobe"; replacement = "${lib.getBin kmod}/sbin/modprobe"; where = [ "units/modprobe@.service" ]; }
+        {
+          search = "/usr/lib/systemd/systemd-fsck";
+          replacement = "$out/lib/systemd/systemd-fsck";
+          where = [
+            "man/systemd-fsck@.service.xml"
+          ];
+        }
+      ] ++ lib.optionals withImportd [
+        {
+          search = "\"gpg\"";
+          replacement = "\\\"${gnupg}/bin/gpg\\\"";
+          where = [ "src/import/pull-common.c" ];
+        }
+        {
+          search = "\"tar\"";
+          replacement = "\\\"${gnutar}/bin/tar\\\"";
+          where = [
+            "src/import/export-tar.c"
+            "src/import/export.c"
+            "src/import/import-common.c"
+            "src/import/import-tar.c"
+            "src/import/import.c"
+            "src/import/importd.c"
+            "src/import/pull-tar.c"
+            "src/import/pull.c"
+          ];
+        }
+      ];
+
+      # { replacement, search, where } -> List[str]
+      mkSubstitute = { replacement, search, where }:
+        map (path: "substituteInPlace ${path} --replace '${search}' \"${replacement}\"") where;
+      mkEnsureSubstituted = { replacement, search, where }:
+        ''
+          if [[ $(grep -r '${search}' | grep -v "${replacement}" | grep -Ev 'NEWS|^test/' | wc -l) -gt 0 ]]; then
+            echo "Not all references to '${search}' have been replaced. Found the following matches:"
+            grep '${search}' -r | grep -v "${replacement}" | grep -Ev 'NEWS|^test/'
+            exit 1
+          fi
+        '';
 
-  preConfigure = ''
-    mesonFlagsArray+=(-Dntp-servers="0.nixos.pool.ntp.org 1.nixos.pool.ntp.org 2.nixos.pool.ntp.org 3.nixos.pool.ntp.org")
-    export LC_ALL="en_US.UTF-8";
-    # FIXME: patch this in systemd properly (and send upstream).
-    # already fixed in f00929ad622c978f8ad83590a15a765b4beecac9: (u)mount
-    for i in \
-      src/core/mount.c \
-      src/core/swap.c \
-      src/cryptsetup/cryptsetup-generator.c \
-      src/journal/cat.c \
-      src/nspawn/nspawn.c \
-      src/remount-fs/remount-fs.c \
-      src/shared/generator.c \
-      src/shutdown/shutdown.c \
-      units/emergency.service.in \
-      units/modprobe@.service \
-      units/rescue.service.in \
-      units/systemd-logind.service.in \
-      units/systemd-nspawn@.service.in; \
-    do
-      test -e $i
-      substituteInPlace $i \
-        --replace /usr/bin/getent ${getent}/bin/getent \
-        --replace /sbin/mkswap ${lib.getBin util-linux}/sbin/mkswap \
-        --replace /sbin/swapon ${lib.getBin util-linux}/sbin/swapon \
-        --replace /sbin/swapoff ${lib.getBin util-linux}/sbin/swapoff \
-        --replace /bin/echo ${coreutils}/bin/echo \
-        --replace /bin/cat ${coreutils}/bin/cat \
-        --replace /sbin/sulogin ${lib.getBin util-linux}/sbin/sulogin \
-        --replace /sbin/modprobe ${lib.getBin kmod}/sbin/modprobe \
-        --replace /usr/lib/systemd/systemd-fsck $out/lib/systemd/systemd-fsck \
-        --replace /bin/plymouth /run/current-system/sw/bin/plymouth # To avoid dependency
-    done
+    in
+    ''
+      mesonFlagsArray+=(-Dntp-servers="0.nixos.pool.ntp.org 1.nixos.pool.ntp.org 2.nixos.pool.ntp.org 3.nixos.pool.ntp.org")
+      export LC_ALL="en_US.UTF-8";
 
-    for dir in tools src/resolve test src/test src/shared; do
-      patchShebangs $dir
-    done
+      ${lib.concatStringsSep "\n" (lib.flatten (map mkSubstitute binaryReplacements))}
+      ${lib.concatMapStringsSep "\n" mkEnsureSubstituted binaryReplacements}
 
-    # absolute paths to gpg & tar
-    substituteInPlace src/import/pull-common.c \
-      --replace '"gpg"' '"${gnupg}/bin/gpg"'
-    for file in src/import/{{export,import,pull}-tar,import-common}.c; do
-      substituteInPlace $file \
-        --replace '"tar"' '"${gnutar}/bin/tar"'
-    done
 
+      for dir in tools src/resolve test src/test src/shared; do
+        patchShebangs $dir
+      done
 
-    substituteInPlace src/libsystemd/sd-journal/catalog.c \
-      --replace /usr/lib/systemd/catalog/ $out/lib/systemd/catalog/
-  '';
+      substituteInPlace src/libsystemd/sd-journal/catalog.c \
+        --replace /usr/lib/systemd/catalog/ $out/lib/systemd/catalog/
+    '';
 
   # These defines are overridden by CFLAGS and would trigger annoying
   # warning messages
@@ -545,7 +611,7 @@ stdenv.mkDerivation {
     substituteInPlace config.h \
       --replace "POLKIT_AGENT_BINARY_PATH" "_POLKIT_AGENT_BINARY_PATH" \
       --replace "SYSTEMD_BINARY_PATH" "_SYSTEMD_BINARY_PATH" \
-      --replace "SYSTEMD_CGROUP_AGENT_PATH" "_SYSTEMD_CGROUP_AGENT_PATH"
+      --replace "SYSTEMD_CGROUP_AGENTS_PATH" "_SYSTEMD_CGROUP_AGENT_PATH"
   '';
 
   NIX_CFLAGS_COMPILE = toString ([
@@ -557,8 +623,8 @@ stdenv.mkDerivation {
     # Set the release_agent on /sys/fs/cgroup/systemd to the
     # currently running systemd (/run/current-system/systemd) so
     # that we don't use an obsolete/garbage-collected release agent.
-    "-USYSTEMD_CGROUP_AGENT_PATH"
-    "-DSYSTEMD_CGROUP_AGENT_PATH=\"/run/current-system/systemd/lib/systemd/systemd-cgroups-agent\""
+    "-USYSTEMD_CGROUP_AGENTS_PATH"
+    "-DSYSTEMD_CGROUP_AGENTS_PATH=\"/run/current-system/systemd/lib/systemd/systemd-cgroups-agent\""
 
     "-USYSTEMD_BINARY_PATH"
     "-DSYSTEMD_BINARY_PATH=\"/run/current-system/systemd/lib/systemd/systemd\""
@@ -575,6 +641,12 @@ stdenv.mkDerivation {
   '';
 
   postInstall = ''
+    # sysinit.target: Don't depend on
+    # systemd-tmpfiles-setup.service. This interferes with NixOps's
+    # send-keys feature (since sshd.service depends indirectly on
+    # sysinit.target).
+    mv $out/lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup-dev.service $out/lib/systemd/system/multi-user.target.wants/
+
     mkdir -p $out/example/systemd
     mv $out/lib/{modules-load.d,binfmt.d,sysctl.d,tmpfiles.d} $out/example
     mv $out/lib/systemd/{system,user} $out/example/systemd
@@ -603,7 +675,7 @@ stdenv.mkDerivation {
     # runtime; otherwise we can't and we need to reboot.
     interfaceVersion = 2;
 
-    inherit withCryptsetup util-linux;
+    inherit withCryptsetup util-linux kmod kbd;
 
     tests = {
       inherit (nixosTests) switchTest;
diff --git a/pkgs/os-specific/linux/systemd/musl.diff b/pkgs/os-specific/linux/systemd/musl.diff
deleted file mode 100644
index cab135dd8fc53..0000000000000
--- a/pkgs/os-specific/linux/systemd/musl.diff
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/shared/mount-setup.c b/src/shared/mount-setup.c
-index ef3527e..cc1ba23 100644
---- a/src/shared/mount-setup.c
-+++ b/src/shared/mount-setup.c
-@@ -32,6 +32,7 @@
- #include "strv.h"
- #include "user-util.h"
- #include "virt.h"
-+#include "missing_type.h"
- 
- typedef enum MountMode {
-         MNT_NONE           = 0,
diff --git a/pkgs/os-specific/linux/tiscamera/default.nix b/pkgs/os-specific/linux/tiscamera/default.nix
index 38bc7c3eaff31..1182aead36bed 100644
--- a/pkgs/os-specific/linux/tiscamera/default.nix
+++ b/pkgs/os-specific/linux/tiscamera/default.nix
@@ -17,6 +17,7 @@
 , python3Packages
 , libuuid
 , wrapGAppsHook
+, catch2
 }:
 
 stdenv.mkDerivation rec {
@@ -30,6 +31,10 @@ stdenv.mkDerivation rec {
     sha256 = "0hpy9yhc4mn6w8gvzwif703smmcys0j2jqbz2xfghqxcyb0ykplj";
   };
 
+  postPatch = ''
+    cp ${catch2}/include/catch2/catch.hpp external/catch/catch.hpp
+  '';
+
   nativeBuildInputs = [
     cmake
     pkg-config
diff --git a/pkgs/os-specific/linux/udisks/2-default.nix b/pkgs/os-specific/linux/udisks/2-default.nix
index 427e19ac92151..5aff6e9697058 100644
--- a/pkgs/os-specific/linux/udisks/2-default.nix
+++ b/pkgs/os-specific/linux/udisks/2-default.nix
@@ -1,8 +1,9 @@
-{ lib, stdenv, fetchFromGitHub, substituteAll, libtool, pkg-config, gettext, gnused
+{ lib, stdenv, fetchFromGitHub, substituteAll, pkg-config, gnused, autoreconfHook
 , gtk-doc, acl, systemd, glib, libatasmart, polkit, coreutils, bash, which
 , expat, libxslt, docbook_xsl, util-linux, mdadm, libgudev, libblockdev, parted
-, gobject-introspection, docbook_xml_dtd_412, docbook_xml_dtd_43, autoconf, automake
+, gobject-introspection, docbook_xml_dtd_412, docbook_xml_dtd_43
 , xfsprogs, f2fs-tools, dosfstools, e2fsprogs, btrfs-progs, exfat, nilfs-utils, ntfs3g
+, nixosTests
 }:
 
 stdenv.mkDerivation rec {
@@ -41,8 +42,11 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  strictDeps = true;
+  # pkg-config had to be in both to find gtk-doc and gobject-introspection
+  depsBuildBuild = [ pkg-config ];
   nativeBuildInputs = [
-    autoconf automake pkg-config libtool gettext which gobject-introspection
+    autoreconfHook which gobject-introspection pkg-config
     gtk-doc libxslt docbook_xml_dtd_412 docbook_xml_dtd_43 docbook_xsl
   ];
 
@@ -60,6 +64,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     (lib.enableFeature (stdenv.buildPlatform == stdenv.hostPlatform) "gtk-doc")
+    "--sysconfdir=/etc"
     "--localstatedir=/var"
     "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
     "--with-udevdir=$(out)/lib/udev"
@@ -71,10 +76,16 @@ stdenv.mkDerivation rec {
     "INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0"
   ];
 
+  installFlags = [
+    "sysconfdir=${placeholder "out"}/etc"
+  ];
+
   enableParallelBuilding = true;
 
   doCheck = true;
 
+  passthru.tests.vm = nixosTests.udisks2;
+
   meta = with lib; {
     description = "A daemon, tools and libraries to access and manipulate disks, storage devices and technologies";
     homepage = "https://www.freedesktop.org/wiki/Software/udisks/";
diff --git a/pkgs/os-specific/linux/unscd/0001-adjust-socket-paths-for-nixos.patch b/pkgs/os-specific/linux/unscd/0001-adjust-socket-paths-for-nixos.patch
new file mode 100644
index 0000000000000..941b5c90a6240
--- /dev/null
+++ b/pkgs/os-specific/linux/unscd/0001-adjust-socket-paths-for-nixos.patch
@@ -0,0 +1,41 @@
+From 9d76d183a97cb667a1ab6d95af69d6db745215df Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <milan@petabyte.dev>
+Date: Tue, 1 Jun 2021 16:55:45 +0200
+Subject: [PATCH] adjust socket paths for nixos
+
+The original unscd would crash, because it is not allowed to create its
+legacy socket at /var/run/.nscd_socket.
+
+This socket is only required for very old glibc versions, but removing it
+is currently non-trivial, so we just move it somewhere, where it is
+allowed to be created. A patch has been submitted upstream to make this
+hack unnecessary.
+
+Also change /var/run to /run, since we shouldn't be using /var/run
+anymore.
+---
+ nscd.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/nscd.c b/nscd.c
+index a71e474..0cd7106 100644
+--- a/nscd.c
++++ b/nscd.c
+@@ -2100,10 +2100,10 @@ static void main_loop(void)
+ ** Initialization
+ */
+ 
+-#define NSCD_PIDFILE    "/var/run/nscd/nscd.pid"
+-#define NSCD_DIR        "/var/run/nscd"
+-#define NSCD_SOCKET     "/var/run/nscd/socket"
+-#define NSCD_SOCKET_OLD "/var/run/.nscd_socket"
++#define NSCD_PIDFILE    "/run/nscd/nscd.pid"
++#define NSCD_DIR        "/run/nscd"
++#define NSCD_SOCKET     "/run/nscd/socket"
++#define NSCD_SOCKET_OLD "/run/nscd/socket_legacy"
+ 
+ static smallint wrote_pidfile;
+ 
+-- 
+2.31.1
+
diff --git a/pkgs/os-specific/linux/unscd/default.nix b/pkgs/os-specific/linux/unscd/default.nix
new file mode 100644
index 0000000000000..1f974029b0174
--- /dev/null
+++ b/pkgs/os-specific/linux/unscd/default.nix
@@ -0,0 +1,76 @@
+{ fetchurl, fetchpatch, stdenv, systemd, lib }:
+
+stdenv.mkDerivation rec {
+  pname = "unscd";
+  version = "0.54";
+
+  src = fetchurl {
+    url = "https://busybox.net/~vda/unscd/nscd-${version}.c";
+    sha256 = "0iv4iwgs3sjnqnwd7dpcw6s7i4ar9q89vgsms32clx14fdqjrqch";
+  };
+
+  unpackPhase = ''
+    runHook preUnpack
+    cp $src nscd.c
+    chmod u+w nscd.c
+    runHook postUnpack
+  '';
+
+  patches = [
+    # Patches from Debian that have not (yet) been included upstream, but are useful to us
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/u/${pname}/${version}-1/debian/patches/change_invalidate_request_info_output";
+      sha256 = "17whakazpisiq9nnw3zybaf7v3lqkww7n6jkx0igxv4z2r3mby6l";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/u/${pname}/${version}-1/debian/patches/support_large_numbers_in_config";
+      sha256 = "0jrqb4cwclwirpqfb6cvnmiff3sm2jhxnjwxa7h0wx78sg0y3bpp";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/u/${pname}/${version}-1/debian/patches/no_debug_on_invalidate";
+      sha256 = "0znwzb522zgikb0mm7awzpvvmy0wf5z7l3jgjlkdpgj0scxgz86w";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/u/${pname}/${version}-1/debian/patches/notify_systemd_about_successful_startup";
+      sha256 = "1ipwmbfwm65yisy74nig9960vxpjx683l3skgxfgssfx1jb9z2mc";
+    })
+
+    # The original unscd would crash, because it is not allowed to create its
+    # legacy socket at /var/run/.nscd_socket.
+    # This socket is only required for very old glibc versions, but removing it
+    # is currently non-trivial, so we just move it somewhere, where it is
+    # allowed to be created. A patch has been submitted upstream to make this
+    # hack unnecessary.
+    # Also change /var/run to /run, since we shouldn't be using /var/run
+    # anymore.
+    # See also: http://lists.busybox.net/pipermail/busybox/2021-June/088866.html
+    ./0001-adjust-socket-paths-for-nixos.patch
+  ];
+
+  buildInputs = [ systemd ];
+
+  buildPhase = ''
+    runHook preBuild
+    gcc -Wall \
+      -Wl,--sort-section -Wl,alignment \
+      -Wl,--sort-common \
+      -fomit-frame-pointer \
+      -lsystemd \
+      -o nscd nscd.c
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 -t $out/bin nscd
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://busybox.net/~vda/unscd/";
+    description = "Less buggy replacement for the glibc name service cache daemon";
+    license = licenses.gpl2Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ petabyteboy ];
+  };
+}
diff --git a/pkgs/os-specific/linux/upower/default.nix b/pkgs/os-specific/linux/upower/default.nix
index aff9125c236de..f083184a1145c 100644
--- a/pkgs/os-specific/linux/upower/default.nix
+++ b/pkgs/os-specific/linux/upower/default.nix
@@ -18,13 +18,15 @@
 , systemd
 , useIMobileDevice ? true
 , libimobiledevice
+, withDocs ? (stdenv.buildPlatform == stdenv.hostPlatform)
 }:
 
 stdenv.mkDerivation rec {
   pname = "upower";
   version = "0.99.17";
 
-  outputs = [ "out" "dev" "devdoc" ];
+  outputs = [ "out" "dev" ]
+    ++ lib.optionals withDocs [ "devdoc" ];
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
@@ -34,6 +36,12 @@ stdenv.mkDerivation rec {
     sha256 = "xvvqzGxgkuGcvnO12jnLURNJUoSlnMw2g/mnII+i6Bs=";
   };
 
+  strictDeps = true;
+
+  depsBuildBuild = [
+    pkg-config
+  ];
+
   nativeBuildInputs = [
     meson
     ninja
@@ -66,6 +74,8 @@ stdenv.mkDerivation rec {
     "-Dos_backend=linux"
     "-Dsystemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
     "-Dudevrulesdir=${placeholder "out"}/lib/udev/rules.d"
+    "-Dintrospection=${if (stdenv.buildPlatform == stdenv.hostPlatform) then "auto" else "disabled"}"
+    "-Dgtk-doc=${lib.boolToString withDocs}"
   ];
 
   doCheck = false; # fails with "env: './linux/integration-test': No such file or directory"
diff --git a/pkgs/os-specific/linux/usbrelay/daemon.nix b/pkgs/os-specific/linux/usbrelay/daemon.nix
new file mode 100644
index 0000000000000..5f8d23e5201d2
--- /dev/null
+++ b/pkgs/os-specific/linux/usbrelay/daemon.nix
@@ -0,0 +1,36 @@
+{ stdenv, usbrelay, python3 }:
+let
+  python = python3.withPackages (ps: with ps; [ usbrelay-py paho-mqtt ]);
+in
+# This is a separate derivation, not just an additional output of
+# usbrelay, because otherwise, we have a cyclic dependency between
+# usbrelay (default.nix) and the python module (python.nix).
+stdenv.mkDerivation rec {
+  pname = "usbrelayd";
+
+  inherit (usbrelay) src version;
+
+  postPatch = ''
+    substituteInPlace 'usbrelayd.service' \
+      --replace '/usr/bin/python3' "${python}/bin/python3" \
+      --replace '/usr/sbin/usbrelayd' "$out/bin/usbrelayd"
+  '';
+
+  buildInputs = [ python ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall;
+    install -m 644 -D usbrelayd $out/bin/usbrelayd
+    install -m 644 -D usbrelayd.service $out/lib/systemd/system/usbrelayd.service
+    install -m 644 -D 50-usbrelay.rules $out/lib/udev/rules.d/50-usbrelay.rules
+    runHook postInstall
+  '';
+  # TODO for later releases: install -D usbrelayd.conf $out/etc/usbrelayd.conf # include this as an example
+
+  meta = {
+    description = "USB Relay MQTT service";
+    inherit (usbrelay.meta) homepage license maintainers platforms;
+  };
+}
diff --git a/pkgs/os-specific/linux/usbrelay/default.nix b/pkgs/os-specific/linux/usbrelay/default.nix
new file mode 100644
index 0000000000000..ebbb1dd79228e
--- /dev/null
+++ b/pkgs/os-specific/linux/usbrelay/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, lib, fetchFromGitHub, hidapi }:
+stdenv.mkDerivation rec {
+  pname = "usbrelay";
+  version = "0.9";
+
+  src = fetchFromGitHub {
+    owner = "darrylb123";
+    repo = "usbrelay";
+    rev = version;
+    sha256 = "sha256-bxME4r5W5bZKxMZ/Svi1EenqHKVWIjU6iiKaM8U6lmA=";
+  };
+
+  buildInputs = [
+    hidapi
+  ];
+
+  makeFlags = [
+    "DIR_VERSION=${version}"
+    "PREFIX=${placeholder "out"}"
+  ];
+
+  meta = with lib; {
+    description = "Tool to control USB HID relays";
+    homepage = "https://github.com/darrylb123/usbrelay";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ wentasah ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/usbrelay/python.nix b/pkgs/os-specific/linux/usbrelay/python.nix
new file mode 100644
index 0000000000000..02d5ac284eda9
--- /dev/null
+++ b/pkgs/os-specific/linux/usbrelay/python.nix
@@ -0,0 +1,12 @@
+{ buildPythonPackage, usbrelay }:
+
+buildPythonPackage rec {
+  pname = "usbrelay_py";
+  inherit (usbrelay) version src;
+
+  buildInputs = [ usbrelay ];
+
+  pythonImportsCheck = [ "usbrelay_py" ];
+
+  inherit (usbrelay) meta;
+}
diff --git a/pkgs/os-specific/linux/usbrelay/test.nix b/pkgs/os-specific/linux/usbrelay/test.nix
new file mode 100644
index 0000000000000..dc5847558a691
--- /dev/null
+++ b/pkgs/os-specific/linux/usbrelay/test.nix
@@ -0,0 +1,63 @@
+# NixOS test for usbrelayd
+#
+# It is not stored in nixos/tests directory, because it requires the
+# USB relay connected to the host computer and as such, it cannot be
+# run automatically.
+#
+# Run this test as:
+#
+#     nix-build test.nix -A driverInteractive && ./result/bin/nixos-test-driver --no-interactive
+#
+# The interactive driver is required because the default
+# (non-interactive) driver uses qemu without support for passing USB
+# devices to the guest (see
+# https://discourse.nixos.org/t/hardware-dependent-nixos-tests/18564
+# for discussion of other alternatives).
+
+import ../../../../nixos/tests/make-test-python.nix ({ pkgs, ... }: {
+  name = "usbrelayd";
+
+  nodes.machine = {
+    virtualisation.qemu.options = [
+      "-device qemu-xhci"
+      "-device usb-host,vendorid=0x16c0,productid=0x05df"
+    ];
+    services.usbrelayd.enable = true;
+    systemd.services.usbrelayd = {
+      after = [ "mosquitto.service" ];
+    };
+    services.mosquitto = {
+      enable = true;
+      listeners = [{
+        acl = [ "pattern readwrite #" ];
+        omitPasswordAuth = true;
+        settings.allow_anonymous = true;
+      }];
+    };
+    environment.systemPackages = [
+      pkgs.usbrelay
+      pkgs.mosquitto
+    ];
+    documentation.nixos.enable = false; # building nixos manual takes long time
+  };
+
+  testScript = ''
+    if os.waitstatus_to_exitcode(os.system("lsusb -d 16c0:05df")) != 0:
+        print("No USB relay detected, skipping test")
+        import sys
+        sys.exit(2)
+    machine.start()
+    # usbrelayd is started by udev when an relay is detected
+    machine.wait_for_unit("usbrelayd.service")
+
+    stdout = machine.succeed("usbrelay")
+    relay_id = stdout.split(sep="_")[0]
+    assert relay_id != ""
+    import time
+    time.sleep(1)
+    machine.succeed(f"mosquitto_pub -h localhost -t cmnd/{relay_id}/1 -m ON")
+    time.sleep(1)
+    machine.succeed(f"mosquitto_pub -h localhost -t cmnd/{relay_id}/1 -m OFF")
+    print("Did you see the relay switching on and off?")
+  '';
+})
diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix
index bedd2417e7ead..3efb3914b85e5 100644
--- a/pkgs/os-specific/linux/util-linux/default.nix
+++ b/pkgs/os-specific/linux/util-linux/default.nix
@@ -1,14 +1,17 @@
 { lib, stdenv, fetchurl, pkg-config, zlib, shadow, libcap_ng
-, ncurses ? null, pam, systemd ? null
+, ncursesSupport ? true
+, ncurses, pam
+, systemdSupport ? stdenv.isLinux
+, systemd
 , nlsSupport ? true
 }:
 
 stdenv.mkDerivation rec {
-  pname = "util-linux";
+  pname = "util-linux" + lib.optionalString (!nlsSupport && !ncursesSupport && !systemdSupport) "-minimal";
   version = "2.37.4";
 
   src = fetchurl {
-    url = "mirror://kernel/linux/utils/util-linux/v${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    url = "mirror://kernel/linux/utils/util-linux/v${lib.versions.majorMinor version}/util-linux-${version}.tar.xz";
     sha256 = "sha256-Y05pFq2RM2bDU2tkaOeER2lUm5mnsr+AMU3nirVlW4M=";
   };
 
@@ -40,9 +43,9 @@ stdenv.mkDerivation rec {
     "--disable-makeinstall-setuid" "--disable-makeinstall-chown"
     "--disable-su" # provided by shadow
     (lib.enableFeature nlsSupport "nls")
-    (lib.withFeature (ncurses != null) "ncursesw")
-    (lib.withFeature (systemd != null) "systemd")
-    (lib.withFeatureAs (systemd != null)
+    (lib.withFeature ncursesSupport "ncursesw")
+    (lib.withFeature systemdSupport "systemd")
+    (lib.withFeatureAs systemdSupport
        "systemdsystemunitdir" "${placeholder "bin"}/lib/systemd/system/")
     "SYSCONFSTATICDIR=${placeholder "lib"}/lib"
   ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
@@ -56,9 +59,9 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs =
-    [ zlib pam libcap_ng ]
-    ++ lib.filter (p: p != null) [ ncurses systemd ];
+  buildInputs = [ zlib pam libcap_ng ]
+    ++ lib.optionals ncursesSupport [ ncurses ]
+    ++ lib.optionals systemdSupport [ systemd ];
 
   doCheck = false; # "For development purpose only. Don't execute on production system!"
 
diff --git a/pkgs/os-specific/linux/vdo/default.nix b/pkgs/os-specific/linux/vdo/default.nix
new file mode 100644
index 0000000000000..1904445d4c2c5
--- /dev/null
+++ b/pkgs/os-specific/linux/vdo/default.nix
@@ -0,0 +1,64 @@
+{ lib, stdenv
+, fetchFromGitHub
+, installShellFiles
+, libuuid
+, lvm2_dmeventd  # <libdevmapper-event.h>
+, zlib
+, python3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "vdo";
+  version = "8.1.1.360";  # kvdo uses this!
+
+  src = fetchFromGitHub {
+    owner = "dm-vdo";
+    repo = pname;
+    rev = version;
+    sha256 = "1zp8aaw0diramnlx5z96jcpbm6x0r204xf1vwq6k21rzcazczkwv";
+  };
+
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
+  buildInputs = [
+    libuuid
+    lvm2_dmeventd
+    zlib
+    python3.pkgs.wrapPython
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pyyaml
+  ];
+
+  pythonPath = propagatedBuildInputs;
+
+  makeFlags = [
+    "DESTDIR=${placeholder "out"}"
+    "INSTALLOWNER="
+    # all of these paths are relative to DESTDIR and have defaults that don't work for us
+    "bindir=/bin"
+    "defaultdocdir=/share/doc"
+    "mandir=/share/man"
+    "python3_sitelib=${python3.sitePackages}"
+  ];
+
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    installShellCompletion --bash $out/bash_completion.d/*
+    rm -r $out/bash_completion.d
+
+    wrapPythonPrograms
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/dm-vdo/vdo";
+    description = "A set of userspace tools for managing pools of deduplicated and/or compressed block storage";
+    platforms = platforms.linux;
+    license = with licenses; [ gpl2Plus ];
+    maintainers = with maintainers; [ ajs124 ];
+  };
+}
diff --git a/pkgs/os-specific/linux/wireguard/default.nix b/pkgs/os-specific/linux/wireguard/default.nix
index 32389d27369c4..a47fb30c1b396 100644
--- a/pkgs/os-specific/linux/wireguard/default.nix
+++ b/pkgs/os-specific/linux/wireguard/default.nix
@@ -1,17 +1,15 @@
 { lib, stdenv, fetchzip, kernel, perl, wireguard-tools, bc }:
 
-# module requires Linux >= 3.10 https://www.wireguard.io/install/#kernel-requirements
-assert lib.versionAtLeast kernel.version "3.10";
 # wireguard upstreamed since 5.6 https://lists.zx2c4.com/pipermail/wireguard/2019-December/004704.html
 assert lib.versionOlder kernel.version "5.6";
 
 stdenv.mkDerivation rec {
   pname = "wireguard";
-  version = "1.0.20210606";
+  version = "1.0.20211208";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/wireguard-linux-compat/snapshot/wireguard-linux-compat-${version}.tar.xz";
-    sha256 = "sha256-ha7x6+41oPRRhuRwEb1ojRWLF1dlEMoJtqXrzRKQ408=";
+    sha256 = "sha256-MHC4ojhRD8IGwTUE8oEew8IVof9hQCC7CPgVQIBfBRQ=";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/pkgs/os-specific/linux/wpa_supplicant/default.nix b/pkgs/os-specific/linux/wpa_supplicant/default.nix
index 925ec71d3fa1f..1d58d47cf6635 100644
--- a/pkgs/os-specific/linux/wpa_supplicant/default.nix
+++ b/pkgs/os-specific/linux/wpa_supplicant/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, openssl, pkg-config, libnl
 , nixosTests, wpa_supplicant_gui
-, withDbus ? true, dbus
+, dbusSupport ? true, dbus
 , withReadline ? true, readline
 , withPcsclite ? true, pcsclite
 , readOnlyModeSSIDs ? false
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
     CONFIG_EAP_AKA=y
     CONFIG_EAP_AKA_PRIME=y
     CONFIG_PCSC=y
-  '' + optionalString withDbus ''
+  '' + optionalString dbusSupport ''
     CONFIG_CTRL_IFACE_DBUS=y
     CONFIG_CTRL_IFACE_DBUS_NEW=y
     CONFIG_CTRL_IFACE_DBUS_INTRO=y
@@ -93,7 +93,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [ openssl libnl ]
-    ++ optional withDbus dbus
+    ++ optional dbusSupport dbus
     ++ optional withReadline readline
     ++ optional withPcsclite pcsclite;
 
diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix
index 6747d511694bb..5a5fd2d19a8a2 100644
--- a/pkgs/os-specific/linux/zfs/default.nix
+++ b/pkgs/os-specific/linux/zfs/default.nix
@@ -216,7 +216,7 @@ in {
   # to be adapted
   zfsStable = common {
     # check the release notes for compatible kernels
-    kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.18";
+    kernelCompatible = kernel.kernelOlder "5.18";
     latestCompatibleLinuxPackages = linuxPackages_5_17;
 
     # this package should point to the latest release.
@@ -227,7 +227,7 @@ in {
 
   zfsUnstable = common {
     # check the release notes for compatible kernels
-    kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.18";
+    kernelCompatible = kernel.kernelOlder "5.18";
     latestCompatibleLinuxPackages = linuxPackages_5_17;
 
     # this package should point to a version / git revision compatible with the latest kernel release
diff --git a/pkgs/pkgs-lib/formats/java-properties/default.nix b/pkgs/pkgs-lib/formats/java-properties/default.nix
index 6ac56bff4bf65..d3a4761f0f803 100644
--- a/pkgs/pkgs-lib/formats/java-properties/default.nix
+++ b/pkgs/pkgs-lib/formats/java-properties/default.nix
@@ -1,6 +1,10 @@
 { lib, pkgs }:
+let
+  inherit (lib) types;
+  inherit (types) attrsOf oneOf coercedTo str bool int float package;
+in
 {
-  javaProperties = { comment ? "Generated with Nix" }: {
+  javaProperties = { comment ? "Generated with Nix", boolToString ? lib.boolToString }: {
 
     # Design note:
     # A nested representation of inevitably leads to bad UX:
@@ -25,7 +29,21 @@
     # We _can_ choose to support hierarchical config files
     # via nested attrsets, but the module author should
     # make sure that problem (2) does not occur.
-    type = lib.types.attrsOf lib.types.str;
+    type = let
+      elemType =
+        oneOf ([
+          # `package` isn't generalized to `path` because path values
+          # are ambiguous. Are they host path strings (toString /foo/bar)
+          # or should they be added to the store? ("${/foo/bar}")
+          # The user must decide.
+          (coercedTo package toString str)
+
+          (coercedTo bool boolToString str)
+          (coercedTo int toString str)
+          (coercedTo float toString str)
+        ])
+        // { description = "string, package, bool, int or float"; };
+      in attrsOf elemType;
 
     generate = name: value:
       pkgs.runCommandLocal name
diff --git a/pkgs/pkgs-lib/formats/java-properties/test/default.nix b/pkgs/pkgs-lib/formats/java-properties/test/default.nix
index 4b3845c102966..4a51179d1c86d 100644
--- a/pkgs/pkgs-lib/formats/java-properties/test/default.nix
+++ b/pkgs/pkgs-lib/formats/java-properties/test/default.nix
@@ -5,6 +5,12 @@
 , lib
 , stdenv
 }:
+
+# This test primarily tests correct escaping.
+# See also testJavaProperties in
+# pkgs/pkgs-lib/tests/formats.nix, which tests
+# type coercions and is a bit easier to read.
+
 let
   inherit (lib) concatStrings attrValues mapAttrs;
 
@@ -71,7 +77,8 @@ stdenv.mkDerivation {
   src = lib.sourceByRegex ./. [
     ".*\.java"
   ];
-  LANG = "C.UTF-8";
+  # On Linux, this can be C.UTF-8, but darwin + zulu requires en_US.UTF-8
+  LANG = "en_US.UTF-8";
   buildPhase = ''
     javac Main.java
   '';
diff --git a/pkgs/pkgs-lib/tests/formats.nix b/pkgs/pkgs-lib/tests/formats.nix
index 99b88d36ec3c3..dba7f981cbd9a 100644
--- a/pkgs/pkgs-lib/tests/formats.nix
+++ b/pkgs/pkgs-lib/tests/formats.nix
@@ -18,8 +18,11 @@ let
       }) [ def ]);
     in formatSet.generate "test-format-file" config;
 
-  runBuildTest = name: { drv, expected }: pkgs.runCommand name {} ''
-    if diff -u '${builtins.toFile "expected" expected}' '${drv}'; then
+  runBuildTest = name: { drv, expected }: pkgs.runCommand name {
+    passAsFile = ["expected"];
+    inherit expected drv;
+  } ''
+    if diff -u "$expectedPath" "$drv"; then
       touch "$out"
     else
       echo
@@ -166,18 +169,26 @@ in runBuildTests {
       [attrs]
       foo = "foo"
 
-      [level1]
-      [level1.level2]
       [level1.level2.level3]
       level4 = "deep"
     '';
   };
 
-  # See also java-properties/default.nix for more complete tests
+  # This test is responsible for
+  #   1. testing type coercions
+  #   2. providing a more readable example test
+  # Whereas java-properties/default.nix tests the low level escaping, etc.
   testJavaProperties = {
     drv = evalFormat formats.javaProperties {} {
+      floaty = 3.1415;
+      tautologies = true;
+      contradictions = false;
       foo = "bar";
-      "1" = "2";
+      # # Disallowed at eval time, because it's ambiguous:
+      # # add to store or convert to string?
+      # root = /root;
+      "1" = 2;
+      package = pkgs.hello;
       "ütf 8" = "dûh";
       # NB: Some editors (vscode) show this _whole_ line in right-to-left order
       "الجبر" = "أكثر من مجرد أرقام";
@@ -186,7 +197,11 @@ in runBuildTests {
       # Generated with Nix
 
       1 = 2
+      contradictions = false
+      floaty = 3.141500
       foo = bar
+      package = ${pkgs.hello}
+      tautologies = true
       \u00fctf\ 8 = d\u00fbh
       \u0627\u0644\u062c\u0628\u0631 = \u0623\u0643\u062b\u0631 \u0645\u0646 \u0645\u062c\u0631\u062f \u0623\u0631\u0642\u0627\u0645
     '';
diff --git a/pkgs/servers/adguardhome/bins.nix b/pkgs/servers/adguardhome/bins.nix
index 1c2f0621b5d04..96b2e9491febc 100644
--- a/pkgs/servers/adguardhome/bins.nix
+++ b/pkgs/servers/adguardhome/bins.nix
@@ -1,19 +1,19 @@
 { fetchurl, fetchzip }:
 {
 "x86_64-darwin" = fetchzip {
-  sha256 = "sha256-bTbjkBHOjcI78+jyJJ1JGe/WrmTxXi5RRB1yQO2zuYw=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.5/AdGuardHome_darwin_amd64.zip";
+  sha256 = "sha256-vUOdHDyvVg+8GhctW925WfjONi7TnPRfVfXmehOweB4=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.6/AdGuardHome_darwin_amd64.zip";
 };
 "i686-linux" = fetchurl {
-  sha256 = "sha256-wdzj7P+Hhm65i5hY4l2Ty486W473coZyZnCbzx9Poro=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.5/AdGuardHome_linux_386.tar.gz";
+  sha256 = "sha256-A6IsDRbRHyU0+IUKkrudKvlKiJkVNNs12MrKQ6RlpMQ=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.6/AdGuardHome_linux_386.tar.gz";
 };
 "x86_64-linux" = fetchurl {
-  sha256 = "sha256-sZQe8rNYD0gBSpNeXS+4hbqoT5nUFbkQSI3c6VuQOC8=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.5/AdGuardHome_linux_amd64.tar.gz";
+  sha256 = "sha256-nPcqAk0m1e9izkylBuNcatHESgvSewR+MKmVdz+HBec=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.6/AdGuardHome_linux_amd64.tar.gz";
 };
 "aarch64-linux" = fetchurl {
-  sha256 = "sha256-9JsGzFf03en2ClrodglREsYqrwr6j/vypsfEVaMzCTI=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.5/AdGuardHome_linux_arm64.tar.gz";
+  sha256 = "sha256-ITkZdVU03FG9AUAMgD6nlCyioPJX357wB9m1jYdPlS4=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.6/AdGuardHome_linux_arm64.tar.gz";
 };
 }
diff --git a/pkgs/servers/adguardhome/default.nix b/pkgs/servers/adguardhome/default.nix
index 03d2b2ec96660..8b0c743856de3 100644
--- a/pkgs/servers/adguardhome/default.nix
+++ b/pkgs/servers/adguardhome/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "adguardhome";
-  version = "0.107.5";
+  version = "0.107.6";
 
   src = (import ./bins.nix { inherit fetchurl fetchzip; }).${stdenv.hostPlatform.system};
 
diff --git a/pkgs/servers/amqp/rabbitmq-server/default.nix b/pkgs/servers/amqp/rabbitmq-server/default.nix
index 37e6f1fd24305..c59d53897fcb4 100644
--- a/pkgs/servers/amqp/rabbitmq-server/default.nix
+++ b/pkgs/servers/amqp/rabbitmq-server/default.nix
@@ -3,7 +3,7 @@
 , fetchurl
 , erlang
 , elixir
-, python2
+, python3
 , libxml2
 , libxslt
 , xmlto
@@ -35,8 +35,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-c6GpB6CSCHiU9hTC9FkxyTc1UpNWxx5iP3y2dbTUfS0=";
   };
 
-  nativeBuildInputs = [ unzip xmlto docbook_xml_dtd_45 docbook_xsl zip rsync ];
-  buildInputs = [ erlang elixir python2 libxml2 libxslt glibcLocales ]
+  nativeBuildInputs = [ unzip xmlto docbook_xml_dtd_45 docbook_xsl zip rsync python3 ];
+  buildInputs = [ erlang elixir libxml2 libxslt glibcLocales ]
     ++ lib.optionals stdenv.isDarwin [ AppKit Carbon Cocoa ];
 
   outputs = [ "out" "man" "doc" ];
diff --git a/pkgs/servers/asterisk/default.nix b/pkgs/servers/asterisk/default.nix
index dddc7f42d884f..eb8560a98b354 100644
--- a/pkgs/servers/asterisk/default.nix
+++ b/pkgs/servers/asterisk/default.nix
@@ -1,8 +1,10 @@
-{ stdenv, lib, fetchurl, fetchsvn,
+{ stdenv, lib, fetchurl, fetchsvn, fetchFromGitHub,
   jansson, libedit, libxml2, libxslt, ncurses, openssl, sqlite,
   util-linux, dmidecode, libuuid, newt,
-  lua, speex,
-  srtp, wget, curl, iksemel, pkg-config
+  lua, speex, libopus, opusfile, libogg,
+  srtp, wget, curl, iksemel, pkg-config,
+  autoconf, libtool, automake,
+  withOpus ? true,
 }:
 
 let
@@ -13,8 +15,9 @@ let
     buildInputs = [ jansson libedit libxml2 libxslt ncurses openssl sqlite
                     dmidecode libuuid newt
                     lua speex
-                    srtp wget curl iksemel ];
-    nativeBuildInputs = [ util-linux pkg-config ];
+                    srtp wget curl iksemel ]
+                  ++ lib.optionals withOpus [ libopus opusfile libogg ];
+    nativeBuildInputs = [ util-linux pkg-config autoconf libtool automake ];
 
     patches = [
       # We want the Makefile to install the default /var skeleton
@@ -22,7 +25,7 @@ let
       # This patch changes the runtime behavior to look for state
       # directories in /var rather than ${out}/var.
       ./runtime-vardirs.patch
-    ];
+    ] ++ lib.optional withOpus "${asterisk-opus}/asterisk.patch";
 
     postPatch = ''
       echo "PJPROJECT_CONFIG_OPTS += --prefix=$out" >> third-party/pjproject/Makefile.rules
@@ -49,6 +52,12 @@ let
       ${lib.optionalString (externals ? "addons/mp3") "bash contrib/scripts/get_mp3_source.sh || true"}
 
       chmod -w externals_cache
+      ${lib.optionalString withOpus ''
+        cp ${asterisk-opus}/include/asterisk/* ./include/asterisk
+        cp ${asterisk-opus}/codecs/* ./codecs
+        cp ${asterisk-opus}/formats/* ./formats
+      ''}
+      ./bootstrap.sh
     '';
 
     configureFlags = [
@@ -63,6 +72,10 @@ let
       ${lib.optionalString (externals ? "addons/mp3") ''
         substituteInPlace menuselect.makeopts --replace 'format_mp3 ' ""
       ''}
+      ${lib.optionalString withOpus ''
+        substituteInPlace menuselect.makeopts --replace 'codec_opus_open_source ' ""
+        substituteInPlace menuselect.makeopts --replace 'format_ogg_opus_open_source ' ""
+      ''}
     '';
 
     postInstall = ''
@@ -90,6 +103,14 @@ let
     sha256 = "1s9idx2miwk178sa731ig9r4fzx4gy1q8xazfqyd7q4lfd70s1cy";
   };
 
+  asterisk-opus = fetchFromGitHub {
+    owner = "traud";
+    repo = "asterisk-opus";
+    # No releases, points to master as of 2022-04-06
+    rev = "a959f072d3f364be983dd27e6e250b038aaef747";
+    sha256 = "sha256-CASlTvTahOg9D5jccF/IN10LP/U8rRy9BFCSaHGQfCw=";
+  };
+
   # auto-generated by update.py
   versions = lib.mapAttrs (_: {version, sha256}: common {
     inherit version sha256;
@@ -100,17 +121,16 @@ let
   }) (lib.importJSON ./versions.json);
 
 in {
-  # Supported releases (as of 2020-10-26).
+  # Supported releases (as of 2022-04-05).
   # Source: https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions
   # Exact version can be found at https://www.asterisk.org/downloads/asterisk/all-asterisk-versions/
   #
   # Series  Type       Rel. Date   Sec. Fixes  EOL
-  # 13.x    LTS        2014-10-24  2020-10-24  2021-10-24
   # 16.x    LTS        2018-10-09  2022-10-09  2023-10-09
-  # 17.x    Standard   2019-10-28  2020-10-28  2021-10-28
   # 18.x    LTS        2020-10-20  2024-10-20  2025-10-20
+  # 19.x    Standard   2021-11-02  2022-11-02  2023-11-02
   asterisk-lts = versions.asterisk_18;
-  asterisk-stable = versions.asterisk_18;
-  asterisk = versions.asterisk_18;
+  asterisk-stable = versions.asterisk_19;
+  asterisk = versions.asterisk_19;
 
 } // versions
diff --git a/pkgs/servers/asterisk/versions.json b/pkgs/servers/asterisk/versions.json
index 93d2539993de0..f11f5547c3ef8 100644
--- a/pkgs/servers/asterisk/versions.json
+++ b/pkgs/servers/asterisk/versions.json
@@ -1,18 +1,14 @@
 {
-  "asterisk_13": {
-    "sha256": "478040705f5819259bb1d22cb4e27970092a5bfdb691d27d321c26235eea4bb3",
-    "version": "13.38.3"
-  },
   "asterisk_16": {
-    "sha256": "c34fc38287cea533c0d0a34959112119e47d12d8ea6ac11bdddf9265afda6d11",
-    "version": "16.19.1"
-  },
-  "asterisk_17": {
-    "sha256": "cc0d6b9ef1512d4e279b80ca8bf78032d69fe6e92492c95c22c44023d6c111fa",
-    "version": "17.9.4"
+    "sha256": "379c5529b9957c28734192999543486a0b0b24f6671b2e02e77cc809774e7ba9",
+    "version": "16.25.1"
   },
   "asterisk_18": {
-    "sha256": "e7d78716a0deeadf24b7d537cd24c11c2d9a096265eefc9470565c4da0fc54c7",
-    "version": "18.5.1"
+    "sha256": "9db0e94e005a91a5433fc11173247065a5c40c9a7ca946577908f65d130b888e",
+    "version": "18.11.1"
+  },
+  "asterisk_19": {
+    "sha256": "3e1fa31ef1de7813365dd8b98ef93744ff87902255472814d0232b955c794706",
+    "version": "19.3.1"
   }
 }
diff --git a/pkgs/servers/atlassian/bamboo.nix b/pkgs/servers/atlassian/bamboo.nix
index a60d41d41c1f1..33c8aceeb2655 100644
--- a/pkgs/servers/atlassian/bamboo.nix
+++ b/pkgs/servers/atlassian/bamboo.nix
@@ -5,11 +5,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "atlassian-bamboo";
-  version = "8.1.3";
+  version = "8.1.4";
 
   src = fetchurl {
     url = "https://product-downloads.atlassian.com/software/bamboo/downloads/atlassian-bamboo-${version}.tar.gz";
-    sha256 = "sha256-M406audmwCS4SRPj8oYxZ+tBpt9bGoOsA3+9WwdZ1fw=";
+    sha256 = "sha256-v30Q3yGKkpHQFitOcH764SE6KuCdUJWn50buY7pb/Ng=";
   };
 
   buildPhase = ''
diff --git a/pkgs/servers/atlassian/confluence.nix b/pkgs/servers/atlassian/confluence.nix
index f580abc187819..6dfe291746b09 100644
--- a/pkgs/servers/atlassian/confluence.nix
+++ b/pkgs/servers/atlassian/confluence.nix
@@ -8,11 +8,11 @@ assert withMysql -> (mysql_jdbc != null);
 
 stdenvNoCC.mkDerivation rec {
   pname = "atlassian-confluence";
-  version = "7.14.1";
+  version = "7.17.1";
 
   src = fetchurl {
     url = "https://product-downloads.atlassian.com/software/confluence/downloads/${pname}-${version}.tar.gz";
-    sha256 = "1lcwdjby18xr54i408kncfhlizf18xcrnhfgsvhx5m02arid7mk7";
+    sha256 = "sha256-TFtWuJR/t3MMbs8Gd818ByOnMtiT4QxbcpgBxYXzFYY=";
   };
 
   buildPhase = ''
@@ -44,6 +44,6 @@ stdenvNoCC.mkDerivation rec {
     description = "Team collaboration software written in Java and mainly used in corporate environments";
     homepage = "https://www.atlassian.com/software/confluence";
     license = licenses.unfree;
-    maintainers = with maintainers; [ fpletz globin willibutz ciil ];
+    maintainers = with maintainers; [ fpletz globin willibutz ciil techknowlogick ];
   };
 }
diff --git a/pkgs/servers/atlassian/jira.nix b/pkgs/servers/atlassian/jira.nix
index 7880c529c7337..e9d38a41c0297 100644
--- a/pkgs/servers/atlassian/jira.nix
+++ b/pkgs/servers/atlassian/jira.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "atlassian-jira";
-  version = "8.22.0";
+  version = "8.22.2";
 
   src = fetchurl {
     url = "https://product-downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-${version}.tar.gz";
-    sha256 = "sha256-swEq8g/A1Ok1P7JtceUDId7kG0GRtBPGblY09xt81Ys=";
+    sha256 = "sha256-j9JUIK4GOdY9rMLPZcWbjWUh/s2ZkoVEQBNAIqHhdYI=";
   };
 
   buildPhase = ''
@@ -41,6 +41,6 @@ stdenv.mkDerivation rec {
     description = "Proprietary issue tracking product, also providing project management functions";
     homepage = "https://www.atlassian.com/software/jira";
     license = licenses.unfree;
-    maintainers = with maintainers; [ fpletz globin ciil megheaiulian ];
+    maintainers = with maintainers; [ fpletz globin ciil megheaiulian techknowlogick ];
   };
 }
diff --git a/pkgs/servers/caddy/default.nix b/pkgs/servers/caddy/default.nix
index 46ce2a94a6b39..711c65f66176c 100644
--- a/pkgs/servers/caddy/default.nix
+++ b/pkgs/servers/caddy/default.nix
@@ -1,6 +1,6 @@
 { lib, buildGoModule, fetchFromGitHub, nixosTests }:
 let
-  version = "2.4.6";
+  version = "2.5.0";
   dist = fetchFromGitHub {
     owner = "caddyserver";
     repo = "dist";
@@ -18,10 +18,10 @@ buildGoModule {
     owner = "caddyserver";
     repo = "caddy";
     rev = "v${version}";
-    sha256 = "sha256-xNCxzoNpXkj8WF9+kYJfO18ux8/OhxygkGjA49+Q4vY=";
+    sha256 = "sha256-V9iIz/93n6EBJZ9v3MDKD6FivtplRFN9a/e0o7YX0/w=";
   };
 
-  vendorSha256 = "sha256-NomgHqIiugSISbEtvIbJDn5GRn6Dn72adLPkAvLbUQU=";
+  vendorSha256 = "sha256-xu3klc9yb4Ws8fvXRV286IDhi/zQVN1PKCiFKb8VJBo=";
 
   postInstall = ''
     install -Dm644 ${dist}/init/caddy.service ${dist}/init/caddy-api.service -t $out/lib/systemd/system
@@ -36,6 +36,6 @@ buildGoModule {
     homepage = "https://caddyserver.com";
     description = "Fast, cross-platform HTTP/2 web server with automatic HTTPS";
     license = licenses.asl20;
-    maintainers = with maintainers; [ Br1ght0ne ];
+    maintainers = with maintainers; [ Br1ght0ne techknowlogick ];
   };
 }
diff --git a/pkgs/servers/calibre-web/default.nix b/pkgs/servers/calibre-web/default.nix
index 308654039983f..e170d761115b5 100644
--- a/pkgs/servers/calibre-web/default.nix
+++ b/pkgs/servers/calibre-web/default.nix
@@ -53,8 +53,10 @@ python3.pkgs.buildPythonApplication rec {
 
     substituteInPlace setup.cfg \
       --replace "cps = calibreweb:main" "calibre-web = calibreweb:main" \
+      --replace "Flask>=1.0.2,<2.1.0" "Flask>=1.0.2" \
+      --replace "Flask-Login>=0.3.2,<0.5.1" "Flask-Login>=0.3.2" \
       --replace "flask-wtf>=0.14.2,<0.16.0" "flask-wtf>=0.14.2" \
-      --replace "lxml>=3.8.0,<4.7.0" "lxml>=3.8.0" \
+      --replace "lxml>=3.8.0,<4.8.0" "lxml>=3.8.0" \
       --replace "PyPDF3>=1.0.0,<1.0.4" "PyPDF3>=1.0.0" \
       --replace "requests>=2.11.1,<2.25.0" "requests" \
       --replace "unidecode>=0.04.19,<1.3.0" "unidecode>=0.04.19"
diff --git a/pkgs/servers/computing/slurm/default.nix b/pkgs/servers/computing/slurm/default.nix
index 1179e86351a45..de0ac56478a60 100644
--- a/pkgs/servers/computing/slurm/default.nix
+++ b/pkgs/servers/computing/slurm/default.nix
@@ -9,7 +9,7 @@
 
 stdenv.mkDerivation rec {
   pname = "slurm";
-  version = "21.08.6.1";
+  version = "21.08.7.1";
 
   # N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
   # because the latter does not keep older releases.
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     repo = "slurm";
     # The release tags use - instead of .
     rev = "${pname}-${builtins.replaceStrings ["."] ["-"] version}";
-    sha256 = "1pdj2nxxky2g9j0y5h6f7fvpypbh0a4g76z90115yr770yf4g2hz";
+    sha256 = "1rhhfiwpfrg3mpdpvmdl3qz20ydi5m88dfv9hhwqm95sldqb6qw1";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/servers/confluent-platform/default.nix b/pkgs/servers/confluent-platform/default.nix
index fe60516b3e589..438b877bb271e 100644
--- a/pkgs/servers/confluent-platform/default.nix
+++ b/pkgs/servers/confluent-platform/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "confluent-platform";
-  version = "7.0.1";
+  version = "7.1.0";
 
   src = fetchurl {
     url = "https://packages.confluent.io/archive/${lib.versions.majorMinor version}/confluent-${version}.tar.gz";
-    sha256 = "Q0/A/3M2tn530/+o1RpcgNsPKFQq6YJQnhgysRlpVfU=";
+    sha256 = "sha256-uoJQQZxUGniMLJk/BwwiNnpgYFcqJ+27GFQLEpsFxCw=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/consul/default.nix b/pkgs/servers/consul/default.nix
index 240769bfe093c..2c9382ddb9f7a 100644
--- a/pkgs/servers/consul/default.nix
+++ b/pkgs/servers/consul/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "consul";
-  version = "1.11.4";
+  version = "1.12.0";
   rev = "v${version}";
 
   # Note: Currently only release tags are supported, because they have the Consul UI
@@ -17,7 +17,7 @@ buildGoModule rec {
     owner = "hashicorp";
     repo = pname;
     inherit rev;
-    sha256 = "sha256-dQwJ3HzzYxolGrjgHXBElDZO65uXJKEv8UH5sYZ4swc=";
+    sha256 = "sha256-O47s9eNZsqg0zpgoK2S4JvuOEqqVWvx8YmbQTvCw0Co=";
   };
 
   passthru.tests.consul = nixosTests.consul;
@@ -26,7 +26,7 @@ buildGoModule rec {
   # has a split module structure in one repo
   subPackages = ["." "connect/certgen"];
 
-  vendorSha256 = "sha256-VB7agtH6V7mJU689bFXuhi82qqzGxY16vFOPFBd/DQc=";
+  vendorSha256 = "sha256-NRFGt8YA179C/OvyMGXYaZMUH685pJfdGB0AhMrCixs=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/dendrite/default.nix b/pkgs/servers/dendrite/default.nix
index c17c301421fda..82c6d4ba3e6e2 100644
--- a/pkgs/servers/dendrite/default.nix
+++ b/pkgs/servers/dendrite/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "matrix-dendrite";
-  version = "0.7.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "dendrite";
     rev = "v${version}";
-    sha256 = "sha256-R0xGsngNk8osBh3vRUeYxmEgbbNa+wKOihRjOU40D48=";
+    sha256 = "sha256-cEqedl6iVt/HZEh1zeEcqby8gfJEcqIDEQnPewyErMI=";
   };
 
-  vendorSha256 = "sha256-0Y/RVRWZ0osU/kEcf+Y8TH8K2rmxFmQSqMMNHoRIugo=";
+  vendorSha256 = "sha256-nQx+PyjRvECeIerZ9jq7YMTSS8LfohY7NgK8DklREQQ=";
 
   passthru.tests = {
     inherit (nixosTests) dendrite;
diff --git a/pkgs/servers/dex/default.nix b/pkgs/servers/dex/default.nix
index c93f7316301b0..92cf4cd66588c 100644
--- a/pkgs/servers/dex/default.nix
+++ b/pkgs/servers/dex/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "dex";
-  version = "2.31.0";
+  version = "2.31.1";
 
   src = fetchFromGitHub {
     owner = "dexidp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-tr7rs2ymHpMEtNwvLhgEzp94wO/k/oY814NS0N4ONsg=";
+    sha256 = "sha256-4BmZpN3k1qDYLdkXm4AX73bX5hBiyLv0nVKYVwD/HCM=";
   };
 
   vendorSha256 = "sha256-l+/qjYokg5zHAFkKxtkdX49HqVW6kfz7OHqs6SRKDYg=";
diff --git a/pkgs/servers/dgraph/default.nix b/pkgs/servers/dgraph/default.nix
index 3aa7b074848ea..723316e50b010 100644
--- a/pkgs/servers/dgraph/default.nix
+++ b/pkgs/servers/dgraph/default.nix
@@ -1,30 +1,37 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles, jemalloc, nodejs }:
 
 buildGoModule rec {
   pname = "dgraph";
-  version = "20.07.3";
+  version = "21.12.0";
 
   src = fetchFromGitHub {
     owner = "dgraph-io";
     repo = "dgraph";
     rev = "v${version}";
-    sha256 = "sha256-yuKXcxewt64T0ToDPid37WUEhwLu+yt4tjhDQobj/Ls=";
+    sha256 = "sha256-OYDWr+wJEIP7raIHsXSjvuFr2ENJOllufO5ff6lxoR4=";
   };
 
-  vendorSha256 = "sha256-2Ub0qdEaVSHHE5K0bNSXJFukGeSSXNpIBoUldF8jGpI=";
+  vendorSha256 = "sha256-YtU3Yeq/lNeq7cOB+KvHbvlH9g40WuJk1ovHxCQMG60=";
 
   doCheck = false;
 
+  ldflags = [
+    "-X github.com/dgraph-io/dgraph/x.dgraphVersion=${version}-oss"
+  ];
+
+  tags = [
+    "oss"
+  ];
+
   nativeBuildInputs = [ installShellFiles ];
 
-  # see licensing
-  buildPhase = ''
-    make oss BUILD_VERSION=${version}
-  '';
+  # todo those dependencies are required in the makefile, but verify how they are used
+  # actually
+  buildInputs = [ jemalloc nodejs ];
 
-  installPhase = ''
-    install dgraph/dgraph -Dt $out/bin
+  subPackages = [ "dgraph" ];
 
+  postInstall = ''
     for shell in bash zsh; do
       $out/bin/dgraph completion $shell > dgraph.$shell
       installShellCompletion dgraph.$shell
diff --git a/pkgs/servers/dns/doh-proxy/default.nix b/pkgs/servers/dns/doh-proxy/default.nix
deleted file mode 100644
index 8128ec6f04d47..0000000000000
--- a/pkgs/servers/dns/doh-proxy/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ lib, python3Packages }:
-
-with python3Packages;
-buildPythonApplication rec {
-  pname = "doh-proxy";
-  version = "0.0.9";
-
-  src = python3Packages.fetchPypi {
-    inherit pname version;
-    sha256 = "1fxzxipzdvk75yrcr78mpdz8lwpisba67lk4jcwxdnkv6997dwfp";
-  };
-
-  nativeBuildInputs = [ pytest-runner flake8];
-
-  propagatedBuildInputs = [
-    aioh2
-    dnspython
-    aiohttp-remotes
-  ];
-
-  checkInputs = [
-    asynctest
-    unittest-data-provider
-    pytest
-    pytest-cov
-    pytest-aiohttp
-  ];
-
-  # attempts to resolve address
-  checkPhase = ''
-    pytest -k 'not servers'
-  '';
-
-  meta = with lib; {
-    homepage = "https://facebookexperimental.github.io/doh-proxy/";
-    description = "A proof of concept DNS-Over-HTTPS proxy";
-    license = licenses.bsd3;
-    maintainers = [ maintainers.qyliss ];
-  };
-}
diff --git a/pkgs/servers/dns/pdns-recursor/default.nix b/pkgs/servers/dns/pdns-recursor/default.nix
index 7b3b81ace2779..d244b2920ba89 100644
--- a/pkgs/servers/dns/pdns-recursor/default.nix
+++ b/pkgs/servers/dns/pdns-recursor/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pdns-recursor";
-  version = "4.6.1";
+  version = "4.6.2";
 
   src = fetchurl {
     url = "https://downloads.powerdns.com/releases/pdns-recursor-${version}.tar.bz2";
-    sha256 = "1sqwasqxz4svn5rckrwr05gzk7qzdhzzzjr1l2l7xa44if8011bv";
+    sha256 = "sha256-2mSYUHOf3XuvLfZFrMl3UszTkJc7VrjiUXHqew0lrSA=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/servers/dns/pdns/default.nix b/pkgs/servers/dns/pdns/default.nix
index ff057b48bd54e..0cec5f6e7446f 100644
--- a/pkgs/servers/dns/pdns/default.nix
+++ b/pkgs/servers/dns/pdns/default.nix
@@ -20,6 +20,11 @@ stdenv.mkDerivation rec {
     libyamlcpp libsodium curl unixODBC openssl systemd lmdb tinycdb
   ];
 
+  # Configure phase requires 64-bit time_t even on 32-bit platforms.
+  NIX_CFLAGS_COMPILE = lib.optionals stdenv.hostPlatform.is32bit [
+    "-D_TIME_BITS=64" "-D_FILE_OFFSET_BITS=64"
+  ];
+
   configureFlags = [
     "--disable-silent-rules"
     "--enable-dns-over-tls"
diff --git a/pkgs/servers/documize-community/default.nix b/pkgs/servers/documize-community/default.nix
index 036ea5fbee7df..66ba25f8bf4ba 100644
--- a/pkgs/servers/documize-community/default.nix
+++ b/pkgs/servers/documize-community/default.nix
@@ -34,6 +34,7 @@ buildGoModule rec {
     description = "Open source Confluence alternative for internal & external docs built with Golang + EmberJS";
     license = licenses.agpl3;
     maintainers = with maintainers; [ ma27 elseym ];
+    mainProgram = "documize";
     homepage = "https://www.documize.com/";
   };
 }
diff --git a/pkgs/servers/echoip/default.nix b/pkgs/servers/echoip/default.nix
index 745cf96df46ad..840d7a2d4e6af 100644
--- a/pkgs/servers/echoip/default.nix
+++ b/pkgs/servers/echoip/default.nix
@@ -13,8 +13,6 @@ buildGoModule {
 
   vendorSha256 = "0vvs717pl5gzggxpbn2vkyxmpiw5zjdfnpbh8i81xidbqvlnm22h";
 
-  doCheck = false;
-
   outputs = [ "out" "index" ];
 
   postInstall = ''
diff --git a/pkgs/servers/firebird/default.nix b/pkgs/servers/firebird/default.nix
index 5348862ed6d5f..6f5d22462fb6b 100644
--- a/pkgs/servers/firebird/default.nix
+++ b/pkgs/servers/firebird/default.nix
@@ -5,6 +5,7 @@ let base = {
 
   meta = with lib; {
     description = "SQL relational database management system";
+    downloadPage = "https://github.com/FirebirdSQL/firebird/";
     homepage = "https://firebirdsql.org/";
     changelog = "https://github.com/FirebirdSQL/firebird/blob/master/CHANGELOG.md";
     license = [ "IDPL" "Interbase-1.0" ];
@@ -54,13 +55,13 @@ let base = {
   });
 
   firebird_3 = stdenv.mkDerivation (base // rec {
-    version = "3.0.8";
+    version = "3.0.9";
 
     src = fetchFromGitHub {
       owner = "FirebirdSQL";
       repo = "firebird";
       rev = "v${version}";
-      sha256 = "sha256-l1V3CGxTybPY8pl6WhsExqdWJLiYsOv5BCrU/iD+I7k=";
+      sha256 = "0axgw4zzb7f7yszr8s7svnspv3mgyvpbkb0b3w6c70fnj10hw21c";
     };
 
     buildInputs = base.buildInputs ++ [ zlib libtommath ];
diff --git a/pkgs/servers/foundationdb/vsmake.nix b/pkgs/servers/foundationdb/vsmake.nix
index 52807fc062012..776e724c9c66a 100644
--- a/pkgs/servers/foundationdb/vsmake.nix
+++ b/pkgs/servers/foundationdb/vsmake.nix
@@ -84,7 +84,7 @@ let
         makeFlags = [ "all" "fdb_java" "fdb_python" ]
           # Don't compile FDBLibTLS if we don't need it in 6.0 or later;
           # it gets statically linked in
-          ++ lib.optional (!lib.versionAtLeast version "6.0") [ "fdb_c" ]
+          ++ lib.optional (lib.versionOlder version "6.0") [ "fdb_c" ]
           # Needed environment overrides
           ++ [ "KVRELEASE=1"
                "NOSTRIP=1"
@@ -100,7 +100,7 @@ let
         installPhase = ''
           mkdir -vp $out/{bin,libexec/plugins} $lib/{lib,share/java} $dev/include/foundationdb
 
-        '' + lib.optionalString (!lib.versionAtLeast version "6.0") ''
+        '' + lib.optionalString (lib.versionOlder version "6.0") ''
           # we only copy the TLS library on < 6.0, since it's compiled-in otherwise
           cp -v ./lib/libFDBLibTLS.so $out/libexec/plugins/FDBLibTLS.so
         '' + ''
diff --git a/pkgs/servers/ftp/kamid/default.nix b/pkgs/servers/ftp/kamid/default.nix
new file mode 100644
index 0000000000000..160ad87144b45
--- /dev/null
+++ b/pkgs/servers/ftp/kamid/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, lib
+, pkg-config
+, libevent
+, libressl
+, libbsd
+, fetchurl
+, readline
+}:
+
+stdenv.mkDerivation rec {
+  pname = "kamid";
+  version = "0.1";
+
+  src = fetchurl {
+    url = "https://github.com/omar-polo/kamid/releases/download/${version}/${pname}-${version}.tar.gz";
+    sha256 = "16gi82dgaxwy8fgg05hbam796pk51i6xlyrx8qhghi7ikxr5jd19";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    libevent
+    libressl
+    readline
+    libbsd
+  ];
+
+  meta = with lib; {
+    description = "A FREE, easy-to-use and portable implementation of a 9p file server daemon for UNIX-like systems";
+    homepage = "https://kamid.omarpolo.com";
+    license = licenses.isc;
+    maintainers = with maintainers; [ heph2 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/gemini/gmid/default.nix b/pkgs/servers/gemini/gmid/default.nix
index b6ccbd1de7049..3f4a440746ce4 100644
--- a/pkgs/servers/gemini/gmid/default.nix
+++ b/pkgs/servers/gemini/gmid/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, bison, which, libressl, libevent }:
+{ lib, stdenv, fetchFromGitHub, bison, libressl, libevent }:
 
 stdenv.mkDerivation rec {
   pname = "gmid";
-  version = "1.8.1";
+  version = "1.8.3";
 
   src = fetchFromGitHub {
     owner = "omar-polo";
     repo = pname;
     rev = version;
-    hash = "sha256-XNif164C5b5sVsZW7sy0id4qM/mJzg3RhoHbwJuJqDk=";
+    hash = "sha256-vghoPsyGspPn22Kl61qiaALS2R243JSuS80uKFBHc9k=";
   };
 
-  nativeBuildInputs = [ bison which ];
+  nativeBuildInputs = [ bison ];
 
   buildInputs = [ libressl libevent ];
 
diff --git a/pkgs/servers/gerbera/default.nix b/pkgs/servers/gerbera/default.nix
index afad6e90dc203..55a5024297ec2 100644
--- a/pkgs/servers/gerbera/default.nix
+++ b/pkgs/servers/gerbera/default.nix
@@ -65,13 +65,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "gerbera";
-  version = "1.9.2";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     repo = "gerbera";
     owner = "gerbera";
     rev = "v${version}";
-    sha256 = "sha256-uLHiGuBXYafpY1/Q4qWFt1CTHKW7vqq0o/zqIEbEZqs=";
+    sha256 = "sha256-z/w0/iuZ0GIYmDWUmqK+1l3GNNFWhkZCWqXhvjgLjgY=";
   };
 
   postPatch = lib.optionalString enableMysql ''
diff --git a/pkgs/servers/gortr/default.nix b/pkgs/servers/gortr/default.nix
index 721570c5c0ae4..44057033bd593 100644
--- a/pkgs/servers/gortr/default.nix
+++ b/pkgs/servers/gortr/default.nix
@@ -10,9 +10,8 @@ buildGoModule rec {
     rev = "v${version}";
     sha256 = "10dq42d3hb6a3ln3x1rag1lqzhwqb66xn4q8k4igjkn5my81nr6q";
   };
-  vendorSha256 = "1nwrzbpqycr4ixk8a90pgaxcwakv5nlfnql6hmcc518qrva198wp";
 
-  doCheck = false;
+  vendorSha256 = "1nwrzbpqycr4ixk8a90pgaxcwakv5nlfnql6hmcc518qrva198wp";
 
   meta = with lib; {
     description = "The RPKI-to-Router server used at Cloudflare";
diff --git a/pkgs/servers/grocy/default.nix b/pkgs/servers/grocy/default.nix
index bcdd3c97c2a06..059f325adaa20 100644
--- a/pkgs/servers/grocy/default.nix
+++ b/pkgs/servers/grocy/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "grocy";
-  version = "3.2.0";
+  version = "3.3.0";
 
   src = fetchurl {
     url = "https://github.com/grocy/grocy/releases/download/v${version}/grocy_${version}.zip";
-    sha256 = "sha256-UPawutm5MllPYdru+Rpk8UYfHDNcrNYaq4qMbZksouI=";
+    sha256 = "sha256-y0l0V+cTIfZYtyV8l6kdFW9UzJWb7eQMEocaPo7TLbg=";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/servers/haste-server/default.nix b/pkgs/servers/haste-server/default.nix
new file mode 100644
index 0000000000000..80f06bf4fa43f
--- /dev/null
+++ b/pkgs/servers/haste-server/default.nix
@@ -0,0 +1,62 @@
+{ lib
+, nixosTests
+, stdenv
+, fetchFromGitHub
+, makeWrapper
+, nodejs
+, pkgs
+}:
+
+stdenv.mkDerivation rec {
+  pname = "haste-server";
+  version = "72863858338a57d54eb9dee55530e90ebbc22453";
+
+  src = fetchFromGitHub {
+    owner = "toptal";
+    repo = "haste-server";
+    rev = version;
+    hash = "sha256-MoEqpfihI3ZqSTHOxFbGziDv8khgq2Nd44YuKYDGflc=";
+  };
+
+  nativeBuildInputs = [
+    nodejs
+    makeWrapper
+  ];
+
+  installPhase =
+    let
+      nodeDependencies = ((import ./node-composition.nix {
+        inherit pkgs nodejs;
+        inherit (stdenv.hostPlatform) system;
+      }).nodeDependencies.override (old: {
+        # access to path '/nix/store/...-source' is forbidden in restricted mode
+        src = src;
+        dontNpmInstall = true;
+      }));
+    in
+    ''
+      runHook postInstall
+
+      mkdir -p $out/share
+      cp -ra . $out/share/haste-server
+      ln -s ${nodeDependencies}/lib/node_modules $out/share/haste-server/node_modules
+      makeWrapper ${nodejs}/bin/node $out/bin/haste-server \
+        --add-flags $out/share/haste-server/server.js
+
+      runHook postBuild
+    '';
+
+  passthru = {
+    tests = {
+      inherit (nixosTests) haste-server;
+    };
+    updateScript = ./update.sh;
+  };
+
+  meta = with lib; {
+    description = "open source pastebin written in node.js";
+    homepage = "https://www.toptal.com/developers/hastebin/about.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mkg20001 ];
+  };
+}
diff --git a/pkgs/servers/haste-server/node-composition.nix b/pkgs/servers/haste-server/node-composition.nix
new file mode 100644
index 0000000000000..7b8937a3647cc
--- /dev/null
+++ b/pkgs/servers/haste-server/node-composition.nix
@@ -0,0 +1,17 @@
+# This file has been generated by node2nix 1.9.0. Do not edit!
+
+{pkgs ? import <nixpkgs> {
+    inherit system;
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-14_x"}:
+
+let
+  nodeEnv = import ./node-env.nix {
+    inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
+    inherit pkgs nodejs;
+    libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
+  };
+in
+import ./node-deps.nix {
+  inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
+  inherit nodeEnv;
+}
diff --git a/pkgs/servers/haste-server/node-deps.nix b/pkgs/servers/haste-server/node-deps.nix
new file mode 100644
index 0000000000000..fbb33a90c73fc
--- /dev/null
+++ b/pkgs/servers/haste-server/node-deps.nix
@@ -0,0 +1,1551 @@
+# This file has been generated by node2nix 1.9.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}:
+
+let
+  sources = {
+    "@ungap/promise-all-settled-1.1.2" = {
+      name = "_at_ungap_slash_promise-all-settled";
+      packageName = "@ungap/promise-all-settled";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz";
+        sha512 = "sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==";
+      };
+    };
+    "ansi-colors-4.1.1" = {
+      name = "ansi-colors";
+      packageName = "ansi-colors";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz";
+        sha512 = "JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==";
+      };
+    };
+    "ansi-regex-3.0.1" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz";
+        sha512 = "+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==";
+      };
+    };
+    "ansi-regex-5.0.1" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz";
+        sha512 = "quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==";
+      };
+    };
+    "ansi-styles-4.3.0" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz";
+        sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
+      };
+    };
+    "anymatch-3.1.2" = {
+      name = "anymatch";
+      packageName = "anymatch";
+      version = "3.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz";
+        sha512 = "P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==";
+      };
+    };
+    "argparse-2.0.1" = {
+      name = "argparse";
+      packageName = "argparse";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz";
+        sha512 = "8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==";
+      };
+    };
+    "async-1.0.0" = {
+      name = "async";
+      packageName = "async";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-1.0.0.tgz";
+        sha1 = "f8fc04ca3a13784ade9e1641af98578cfbd647a9";
+      };
+    };
+    "async-cache-1.1.0" = {
+      name = "async-cache";
+      packageName = "async-cache";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async-cache/-/async-cache-1.1.0.tgz";
+        sha1 = "4a9a5a89d065ec5d8e5254bd9ee96ba76c532b5a";
+      };
+    };
+    "balanced-match-1.0.2" = {
+      name = "balanced-match";
+      packageName = "balanced-match";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz";
+        sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==";
+      };
+    };
+    "base64-js-1.5.1" = {
+      name = "base64-js";
+      packageName = "base64-js";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz";
+        sha512 = "AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==";
+      };
+    };
+    "binary-extensions-2.2.0" = {
+      name = "binary-extensions";
+      packageName = "binary-extensions";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz";
+        sha512 = "jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==";
+      };
+    };
+    "bl-4.1.0" = {
+      name = "bl";
+      packageName = "bl";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz";
+        sha512 = "1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==";
+      };
+    };
+    "brace-expansion-1.1.11" = {
+      name = "brace-expansion";
+      packageName = "brace-expansion";
+      version = "1.1.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
+        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+      };
+    };
+    "braces-3.0.2" = {
+      name = "braces";
+      packageName = "braces";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz";
+        sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==";
+      };
+    };
+    "browser-stdout-1.3.1" = {
+      name = "browser-stdout";
+      packageName = "browser-stdout";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz";
+        sha512 = "qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==";
+      };
+    };
+    "buffer-5.7.1" = {
+      name = "buffer";
+      packageName = "buffer";
+      version = "5.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz";
+        sha512 = "EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==";
+      };
+    };
+    "buffer-writer-2.0.0" = {
+      name = "buffer-writer";
+      packageName = "buffer-writer";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz";
+        sha512 = "a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==";
+      };
+    };
+    "busboy-0.2.4" = {
+      name = "busboy";
+      packageName = "busboy";
+      version = "0.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/busboy/-/busboy-0.2.4.tgz";
+        sha1 = "1977e96e1ee884649651ebdf548ca900758ba7f3";
+      };
+    };
+    "camelcase-6.3.0" = {
+      name = "camelcase";
+      packageName = "camelcase";
+      version = "6.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz";
+        sha512 = "Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==";
+      };
+    };
+    "chalk-4.1.2" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz";
+        sha512 = "oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==";
+      };
+    };
+    "chokidar-3.5.1" = {
+      name = "chokidar";
+      packageName = "chokidar";
+      version = "3.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz";
+        sha512 = "9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==";
+      };
+    };
+    "cliui-7.0.4" = {
+      name = "cliui";
+      packageName = "cliui";
+      version = "7.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz";
+        sha512 = "OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==";
+      };
+    };
+    "color-convert-2.0.1" = {
+      name = "color-convert";
+      packageName = "color-convert";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz";
+        sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
+      };
+    };
+    "color-name-1.1.4" = {
+      name = "color-name";
+      packageName = "color-name";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz";
+        sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
+      };
+    };
+    "colors-1.0.3" = {
+      name = "colors";
+      packageName = "colors";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz";
+        sha1 = "0433f44d809680fdeb60ed260f1b0c262e82a40b";
+      };
+    };
+    "commander-2.11.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "2.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz";
+        sha512 = "b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==";
+      };
+    };
+    "concat-map-0.0.1" = {
+      name = "concat-map";
+      packageName = "concat-map";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
+        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+      };
+    };
+    "connect-3.7.0" = {
+      name = "connect";
+      packageName = "connect";
+      version = "3.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz";
+        sha512 = "ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==";
+      };
+    };
+    "connect-ratelimit-0.0.7" = {
+      name = "connect-ratelimit";
+      packageName = "connect-ratelimit";
+      version = "0.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/connect-ratelimit/-/connect-ratelimit-0.0.7.tgz";
+        sha1 = "e6e09c950649e849499cab1870a415a07f731568";
+      };
+    };
+    "connect-route-0.1.5" = {
+      name = "connect-route";
+      packageName = "connect-route";
+      version = "0.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/connect-route/-/connect-route-0.1.5.tgz";
+        sha1 = "e3c218319d2e88a8a9ae0b0e0fe09a729c39744a";
+      };
+    };
+    "core-util-is-1.0.3" = {
+      name = "core-util-is";
+      packageName = "core-util-is";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz";
+        sha512 = "ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==";
+      };
+    };
+    "cycle-1.0.3" = {
+      name = "cycle";
+      packageName = "cycle";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz";
+        sha1 = "21e80b2be8580f98b468f379430662b046c34ad2";
+      };
+    };
+    "debug-2.6.9" = {
+      name = "debug";
+      packageName = "debug";
+      version = "2.6.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
+        sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
+      };
+    };
+    "debug-4.3.1" = {
+      name = "debug";
+      packageName = "debug";
+      version = "4.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz";
+        sha512 = "doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==";
+      };
+    };
+    "decamelize-4.0.0" = {
+      name = "decamelize";
+      packageName = "decamelize";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz";
+        sha512 = "9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==";
+      };
+    };
+    "dicer-0.2.3" = {
+      name = "dicer";
+      packageName = "dicer";
+      version = "0.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dicer/-/dicer-0.2.3.tgz";
+        sha1 = "f00281189a55c2351ef80490a4fe9fb2c59c4939";
+      };
+    };
+    "diff-5.0.0" = {
+      name = "diff";
+      packageName = "diff";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz";
+        sha512 = "/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==";
+      };
+    };
+    "ee-first-1.1.1" = {
+      name = "ee-first";
+      packageName = "ee-first";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
+        sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+      };
+    };
+    "emoji-regex-8.0.0" = {
+      name = "emoji-regex";
+      packageName = "emoji-regex";
+      version = "8.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz";
+        sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==";
+      };
+    };
+    "encodeurl-1.0.2" = {
+      name = "encodeurl";
+      packageName = "encodeurl";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz";
+        sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+      };
+    };
+    "escalade-3.1.1" = {
+      name = "escalade";
+      packageName = "escalade";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz";
+        sha512 = "k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==";
+      };
+    };
+    "escape-html-1.0.3" = {
+      name = "escape-html";
+      packageName = "escape-html";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";
+        sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+      };
+    };
+    "escape-string-regexp-4.0.0" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
+        sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==";
+      };
+    };
+    "eyes-0.1.8" = {
+      name = "eyes";
+      packageName = "eyes";
+      version = "0.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz";
+        sha1 = "62cf120234c683785d902348a800ef3e0cc20bc0";
+      };
+    };
+    "fd-0.0.3" = {
+      name = "fd";
+      packageName = "fd";
+      version = "0.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fd/-/fd-0.0.3.tgz";
+        sha512 = "iAHrIslQb3U68OcMSP0kkNWabp7sSN6d2TBSb2JO3gcLJVDd4owr/hKM4SFJovFOUeeXeItjYgouEDTMWiVAnA==";
+      };
+    };
+    "fill-range-7.0.1" = {
+      name = "fill-range";
+      packageName = "fill-range";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz";
+        sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==";
+      };
+    };
+    "finalhandler-1.1.2" = {
+      name = "finalhandler";
+      packageName = "finalhandler";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz";
+        sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
+      };
+    };
+    "find-up-5.0.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz";
+        sha512 = "78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==";
+      };
+    };
+    "flat-5.0.2" = {
+      name = "flat";
+      packageName = "flat";
+      version = "5.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz";
+        sha512 = "b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==";
+      };
+    };
+    "fs.realpath-1.0.0" = {
+      name = "fs.realpath";
+      packageName = "fs.realpath";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
+        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+      };
+    };
+    "fsevents-2.3.2" = {
+      name = "fsevents";
+      packageName = "fsevents";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz";
+        sha512 = "xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==";
+      };
+    };
+    "get-caller-file-2.0.5" = {
+      name = "get-caller-file";
+      packageName = "get-caller-file";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz";
+        sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
+      };
+    };
+    "glob-7.1.6" = {
+      name = "glob";
+      packageName = "glob";
+      version = "7.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
+        sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
+      };
+    };
+    "glob-parent-5.1.2" = {
+      name = "glob-parent";
+      packageName = "glob-parent";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz";
+        sha512 = "AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==";
+      };
+    };
+    "graceful-fs-4.2.10" = {
+      name = "graceful-fs";
+      packageName = "graceful-fs";
+      version = "4.2.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz";
+        sha512 = "9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==";
+      };
+    };
+    "growl-1.10.5" = {
+      name = "growl";
+      packageName = "growl";
+      version = "1.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz";
+        sha512 = "qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==";
+      };
+    };
+    "has-flag-4.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz";
+        sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
+      };
+    };
+    "he-1.2.0" = {
+      name = "he";
+      packageName = "he";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz";
+        sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
+      };
+    };
+    "ieee754-1.2.1" = {
+      name = "ieee754";
+      packageName = "ieee754";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz";
+        sha512 = "dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==";
+      };
+    };
+    "inflight-1.0.6" = {
+      name = "inflight";
+      packageName = "inflight";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
+        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+      };
+    };
+    "inherits-2.0.4" = {
+      name = "inherits";
+      packageName = "inherits";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
+        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
+      };
+    };
+    "is-binary-path-2.1.0" = {
+      name = "is-binary-path";
+      packageName = "is-binary-path";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz";
+        sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==";
+      };
+    };
+    "is-extglob-2.1.1" = {
+      name = "is-extglob";
+      packageName = "is-extglob";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz";
+        sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+      };
+    };
+    "is-fullwidth-code-point-2.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+        sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+      };
+    };
+    "is-fullwidth-code-point-3.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
+        sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
+      };
+    };
+    "is-glob-4.0.3" = {
+      name = "is-glob";
+      packageName = "is-glob";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz";
+        sha512 = "xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==";
+      };
+    };
+    "is-number-7.0.0" = {
+      name = "is-number";
+      packageName = "is-number";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz";
+        sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
+      };
+    };
+    "is-plain-obj-2.1.0" = {
+      name = "is-plain-obj";
+      packageName = "is-plain-obj";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz";
+        sha512 = "YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==";
+      };
+    };
+    "isarray-0.0.1" = {
+      name = "isarray";
+      packageName = "isarray";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz";
+        sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+      };
+    };
+    "isexe-2.0.0" = {
+      name = "isexe";
+      packageName = "isexe";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz";
+        sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+      };
+    };
+    "isstream-0.1.2" = {
+      name = "isstream";
+      packageName = "isstream";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz";
+        sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+      };
+    };
+    "js-yaml-4.0.0" = {
+      name = "js-yaml";
+      packageName = "js-yaml";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz";
+        sha512 = "pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==";
+      };
+    };
+    "locate-path-6.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz";
+        sha512 = "iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==";
+      };
+    };
+    "log-symbols-4.0.0" = {
+      name = "log-symbols";
+      packageName = "log-symbols";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz";
+        sha512 = "FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==";
+      };
+    };
+    "lru-cache-4.1.5" = {
+      name = "lru-cache";
+      packageName = "lru-cache";
+      version = "4.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz";
+        sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==";
+      };
+    };
+    "mime-2.6.0" = {
+      name = "mime";
+      packageName = "mime";
+      version = "2.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz";
+        sha512 = "USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==";
+      };
+    };
+    "minimatch-3.0.4" = {
+      name = "minimatch";
+      packageName = "minimatch";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
+        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+      };
+    };
+    "mocha-8.4.0" = {
+      name = "mocha";
+      packageName = "mocha";
+      version = "8.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz";
+        sha512 = "hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==";
+      };
+    };
+    "ms-2.0.0" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
+        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+      };
+    };
+    "ms-2.1.2" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
+        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
+      };
+    };
+    "ms-2.1.3" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz";
+        sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==";
+      };
+    };
+    "nanoid-3.1.20" = {
+      name = "nanoid";
+      packageName = "nanoid";
+      version = "3.1.20";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz";
+        sha512 = "a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==";
+      };
+    };
+    "negotiator-0.6.3" = {
+      name = "negotiator";
+      packageName = "negotiator";
+      version = "0.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz";
+        sha512 = "+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==";
+      };
+    };
+    "normalize-path-3.0.0" = {
+      name = "normalize-path";
+      packageName = "normalize-path";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz";
+        sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
+      };
+    };
+    "on-finished-2.3.0" = {
+      name = "on-finished";
+      packageName = "on-finished";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";
+        sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+      };
+    };
+    "once-1.4.0" = {
+      name = "once";
+      packageName = "once";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
+        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+      };
+    };
+    "p-limit-3.1.0" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz";
+        sha512 = "TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==";
+      };
+    };
+    "p-locate-5.0.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz";
+        sha512 = "LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==";
+      };
+    };
+    "packet-reader-1.0.0" = {
+      name = "packet-reader";
+      packageName = "packet-reader";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz";
+        sha512 = "HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==";
+      };
+    };
+    "parseurl-1.3.3" = {
+      name = "parseurl";
+      packageName = "parseurl";
+      version = "1.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
+        sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
+      };
+    };
+    "path-exists-4.0.0" = {
+      name = "path-exists";
+      packageName = "path-exists";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz";
+        sha512 = "ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==";
+      };
+    };
+    "path-is-absolute-1.0.1" = {
+      name = "path-is-absolute";
+      packageName = "path-is-absolute";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+      };
+    };
+    "pg-8.7.3" = {
+      name = "pg";
+      packageName = "pg";
+      version = "8.7.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz";
+        sha512 = "HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==";
+      };
+    };
+    "pg-connection-string-2.5.0" = {
+      name = "pg-connection-string";
+      packageName = "pg-connection-string";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz";
+        sha512 = "r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==";
+      };
+    };
+    "pg-int8-1.0.1" = {
+      name = "pg-int8";
+      packageName = "pg-int8";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz";
+        sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==";
+      };
+    };
+    "pg-pool-3.5.1" = {
+      name = "pg-pool";
+      packageName = "pg-pool";
+      version = "3.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.1.tgz";
+        sha512 = "6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ==";
+      };
+    };
+    "pg-protocol-1.5.0" = {
+      name = "pg-protocol";
+      packageName = "pg-protocol";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz";
+        sha512 = "muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==";
+      };
+    };
+    "pg-types-2.2.0" = {
+      name = "pg-types";
+      packageName = "pg-types";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz";
+        sha512 = "qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==";
+      };
+    };
+    "pgpass-1.0.5" = {
+      name = "pgpass";
+      packageName = "pgpass";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz";
+        sha512 = "FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==";
+      };
+    };
+    "picomatch-2.3.1" = {
+      name = "picomatch";
+      packageName = "picomatch";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz";
+        sha512 = "JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==";
+      };
+    };
+    "postgres-array-2.0.0" = {
+      name = "postgres-array";
+      packageName = "postgres-array";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz";
+        sha512 = "VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==";
+      };
+    };
+    "postgres-bytea-1.0.0" = {
+      name = "postgres-bytea";
+      packageName = "postgres-bytea";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz";
+        sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35";
+      };
+    };
+    "postgres-date-1.0.7" = {
+      name = "postgres-date";
+      packageName = "postgres-date";
+      version = "1.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz";
+        sha512 = "suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==";
+      };
+    };
+    "postgres-interval-1.2.0" = {
+      name = "postgres-interval";
+      packageName = "postgres-interval";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz";
+        sha512 = "9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==";
+      };
+    };
+    "pseudomap-1.0.2" = {
+      name = "pseudomap";
+      packageName = "pseudomap";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz";
+        sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+      };
+    };
+    "randombytes-2.1.0" = {
+      name = "randombytes";
+      packageName = "randombytes";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz";
+        sha512 = "vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==";
+      };
+    };
+    "readable-stream-1.1.14" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "1.1.14";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz";
+        sha1 = "7cf4c54ef648e3813084c636dd2079e166c081d9";
+      };
+    };
+    "readable-stream-3.6.0" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
+        sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
+      };
+    };
+    "readdirp-3.5.0" = {
+      name = "readdirp";
+      packageName = "readdirp";
+      version = "3.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz";
+        sha512 = "cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==";
+      };
+    };
+    "redis-0.8.1" = {
+      name = "redis";
+      packageName = "redis";
+      version = "0.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/redis/-/redis-0.8.1.tgz";
+        sha1 = "159f2130599a2f719e44b03f0b4b7612f992fcb2";
+      };
+    };
+    "redis-url-0.1.0" = {
+      name = "redis-url";
+      packageName = "redis-url";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/redis-url/-/redis-url-0.1.0.tgz";
+        sha1 = "4da5e5b181b6c0cad6e1a55c7f50a8e6ee7779bb";
+      };
+    };
+    "require-directory-2.1.1" = {
+      name = "require-directory";
+      packageName = "require-directory";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz";
+        sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+      };
+    };
+    "safe-buffer-5.2.1" = {
+      name = "safe-buffer";
+      packageName = "safe-buffer";
+      version = "5.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
+        sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
+      };
+    };
+    "serialize-javascript-5.0.1" = {
+      name = "serialize-javascript";
+      packageName = "serialize-javascript";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz";
+        sha512 = "SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==";
+      };
+    };
+    "source-map-0.6.1" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz";
+        sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
+      };
+    };
+    "split2-4.1.0" = {
+      name = "split2";
+      packageName = "split2";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz";
+        sha512 = "VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==";
+      };
+    };
+    "st-2.0.0" = {
+      name = "st";
+      packageName = "st";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/st/-/st-2.0.0.tgz";
+        sha512 = "drN+aGYnrZPNYIymmNwIY7LXYJ8MqsqXj4fMRue3FOgGMdGjSX10fhJ3qx0sVQPhcWxhEaN4U/eWM4O4dbYNAw==";
+      };
+    };
+    "stack-trace-0.0.10" = {
+      name = "stack-trace";
+      packageName = "stack-trace";
+      version = "0.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz";
+        sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0";
+      };
+    };
+    "statuses-1.5.0" = {
+      name = "statuses";
+      packageName = "statuses";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz";
+        sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+      };
+    };
+    "streamsearch-0.1.2" = {
+      name = "streamsearch";
+      packageName = "streamsearch";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz";
+        sha1 = "808b9d0e56fc273d809ba57338e929919a1a9f1a";
+      };
+    };
+    "string-width-2.1.1" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz";
+        sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==";
+      };
+    };
+    "string-width-4.2.3" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "4.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz";
+        sha512 = "wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==";
+      };
+    };
+    "string_decoder-0.10.31" = {
+      name = "string_decoder";
+      packageName = "string_decoder";
+      version = "0.10.31";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
+        sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+      };
+    };
+    "string_decoder-1.3.0" = {
+      name = "string_decoder";
+      packageName = "string_decoder";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz";
+        sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==";
+      };
+    };
+    "strip-ansi-4.0.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz";
+        sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+      };
+    };
+    "strip-ansi-6.0.1" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz";
+        sha512 = "Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==";
+      };
+    };
+    "strip-json-comments-3.1.1" = {
+      name = "strip-json-comments";
+      packageName = "strip-json-comments";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
+        sha512 = "6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==";
+      };
+    };
+    "supports-color-7.2.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
+        sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
+      };
+    };
+    "supports-color-8.1.1" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "8.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz";
+        sha512 = "MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==";
+      };
+    };
+    "to-regex-range-5.0.1" = {
+      name = "to-regex-range";
+      packageName = "to-regex-range";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz";
+        sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==";
+      };
+    };
+    "uglify-js-3.1.6" = {
+      name = "uglify-js";
+      packageName = "uglify-js";
+      version = "3.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.1.6.tgz";
+        sha512 = "/rseyxEKEVMBo8279lqpoJgD6C/i/CIi+9TJDvWmb+Xo6mqMKwjA8Io3IMHlcXQzj99feR6zrN8m3wqqvm/nYA==";
+      };
+    };
+    "unpipe-1.0.0" = {
+      name = "unpipe";
+      packageName = "unpipe";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz";
+        sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+      };
+    };
+    "util-deprecate-1.0.2" = {
+      name = "util-deprecate";
+      packageName = "util-deprecate";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+      };
+    };
+    "utils-merge-1.0.1" = {
+      name = "utils-merge";
+      packageName = "utils-merge";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz";
+        sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+      };
+    };
+    "which-2.0.2" = {
+      name = "which";
+      packageName = "which";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which/-/which-2.0.2.tgz";
+        sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==";
+      };
+    };
+    "wide-align-1.1.3" = {
+      name = "wide-align";
+      packageName = "wide-align";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
+        sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
+      };
+    };
+    "winston-2.4.5" = {
+      name = "winston";
+      packageName = "winston";
+      version = "2.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz";
+        sha512 = "TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==";
+      };
+    };
+    "workerpool-6.1.0" = {
+      name = "workerpool";
+      packageName = "workerpool";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz";
+        sha512 = "toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==";
+      };
+    };
+    "wrap-ansi-7.0.0" = {
+      name = "wrap-ansi";
+      packageName = "wrap-ansi";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz";
+        sha512 = "YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==";
+      };
+    };
+    "wrappy-1.0.2" = {
+      name = "wrappy";
+      packageName = "wrappy";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
+        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+      };
+    };
+    "xtend-4.0.2" = {
+      name = "xtend";
+      packageName = "xtend";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz";
+        sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
+      };
+    };
+    "y18n-5.0.8" = {
+      name = "y18n";
+      packageName = "y18n";
+      version = "5.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz";
+        sha512 = "0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==";
+      };
+    };
+    "yallist-2.1.2" = {
+      name = "yallist";
+      packageName = "yallist";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz";
+        sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+      };
+    };
+    "yargs-16.2.0" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "16.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz";
+        sha512 = "D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==";
+      };
+    };
+    "yargs-parser-20.2.4" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "20.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz";
+        sha512 = "WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==";
+      };
+    };
+    "yargs-unparser-2.0.0" = {
+      name = "yargs-unparser";
+      packageName = "yargs-unparser";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz";
+        sha512 = "7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==";
+      };
+    };
+    "yocto-queue-0.1.0" = {
+      name = "yocto-queue";
+      packageName = "yocto-queue";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz";
+        sha512 = "rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==";
+      };
+    };
+  };
+  args = {
+    name = "haste";
+    packageName = "haste";
+    version = "0.1.0";
+    src = ../../../../../../../../../nix/store/jmii2np1kr78g0pnyf2y8wvj09nc1pr0-source;
+    dependencies = [
+      sources."@ungap/promise-all-settled-1.1.2"
+      sources."ansi-colors-4.1.1"
+      sources."ansi-regex-3.0.1"
+      sources."ansi-styles-4.3.0"
+      sources."anymatch-3.1.2"
+      sources."argparse-2.0.1"
+      sources."async-1.0.0"
+      sources."async-cache-1.1.0"
+      sources."balanced-match-1.0.2"
+      sources."base64-js-1.5.1"
+      sources."binary-extensions-2.2.0"
+      (sources."bl-4.1.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+          sources."string_decoder-1.3.0"
+        ];
+      })
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."browser-stdout-1.3.1"
+      sources."buffer-5.7.1"
+      sources."buffer-writer-2.0.0"
+      sources."busboy-0.2.4"
+      sources."camelcase-6.3.0"
+      (sources."chalk-4.1.2" // {
+        dependencies = [
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."chokidar-3.5.1"
+      (sources."cliui-7.0.4" // {
+        dependencies = [
+          sources."ansi-regex-5.0.1"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+        ];
+      })
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."colors-1.0.3"
+      sources."commander-2.11.0"
+      sources."concat-map-0.0.1"
+      sources."connect-3.7.0"
+      sources."connect-ratelimit-0.0.7"
+      sources."connect-route-0.1.5"
+      sources."core-util-is-1.0.3"
+      sources."cycle-1.0.3"
+      sources."debug-2.6.9"
+      sources."decamelize-4.0.0"
+      sources."dicer-0.2.3"
+      sources."diff-5.0.0"
+      sources."ee-first-1.1.1"
+      sources."emoji-regex-8.0.0"
+      sources."encodeurl-1.0.2"
+      sources."escalade-3.1.1"
+      sources."escape-html-1.0.3"
+      sources."escape-string-regexp-4.0.0"
+      sources."eyes-0.1.8"
+      sources."fd-0.0.3"
+      sources."fill-range-7.0.1"
+      sources."finalhandler-1.1.2"
+      sources."find-up-5.0.0"
+      sources."flat-5.0.2"
+      sources."fs.realpath-1.0.0"
+      sources."fsevents-2.3.2"
+      sources."get-caller-file-2.0.5"
+      sources."glob-7.1.6"
+      sources."glob-parent-5.1.2"
+      sources."graceful-fs-4.2.10"
+      sources."growl-1.10.5"
+      sources."has-flag-4.0.0"
+      sources."he-1.2.0"
+      sources."ieee754-1.2.1"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."is-binary-path-2.1.0"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-glob-4.0.3"
+      sources."is-number-7.0.0"
+      sources."is-plain-obj-2.1.0"
+      sources."isarray-0.0.1"
+      sources."isexe-2.0.0"
+      sources."isstream-0.1.2"
+      sources."js-yaml-4.0.0"
+      sources."locate-path-6.0.0"
+      sources."log-symbols-4.0.0"
+      sources."lru-cache-4.1.5"
+      sources."mime-2.6.0"
+      sources."minimatch-3.0.4"
+      (sources."mocha-8.4.0" // {
+        dependencies = [
+          (sources."debug-4.3.1" // {
+            dependencies = [
+              sources."ms-2.1.2"
+            ];
+          })
+          sources."ms-2.1.3"
+        ];
+      })
+      sources."ms-2.0.0"
+      sources."nanoid-3.1.20"
+      sources."negotiator-0.6.3"
+      sources."normalize-path-3.0.0"
+      sources."on-finished-2.3.0"
+      sources."once-1.4.0"
+      sources."p-limit-3.1.0"
+      sources."p-locate-5.0.0"
+      sources."packet-reader-1.0.0"
+      sources."parseurl-1.3.3"
+      sources."path-exists-4.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."pg-8.7.3"
+      sources."pg-connection-string-2.5.0"
+      sources."pg-int8-1.0.1"
+      sources."pg-pool-3.5.1"
+      sources."pg-protocol-1.5.0"
+      sources."pg-types-2.2.0"
+      sources."pgpass-1.0.5"
+      sources."picomatch-2.3.1"
+      sources."postgres-array-2.0.0"
+      sources."postgres-bytea-1.0.0"
+      sources."postgres-date-1.0.7"
+      sources."postgres-interval-1.2.0"
+      sources."pseudomap-1.0.2"
+      sources."randombytes-2.1.0"
+      sources."readable-stream-1.1.14"
+      sources."readdirp-3.5.0"
+      sources."redis-0.8.1"
+      sources."redis-url-0.1.0"
+      sources."require-directory-2.1.1"
+      sources."safe-buffer-5.2.1"
+      sources."serialize-javascript-5.0.1"
+      sources."source-map-0.6.1"
+      sources."split2-4.1.0"
+      sources."st-2.0.0"
+      sources."stack-trace-0.0.10"
+      sources."statuses-1.5.0"
+      sources."streamsearch-0.1.2"
+      sources."string-width-2.1.1"
+      sources."string_decoder-0.10.31"
+      sources."strip-ansi-4.0.0"
+      sources."strip-json-comments-3.1.1"
+      sources."supports-color-8.1.1"
+      sources."to-regex-range-5.0.1"
+      sources."uglify-js-3.1.6"
+      sources."unpipe-1.0.0"
+      sources."util-deprecate-1.0.2"
+      sources."utils-merge-1.0.1"
+      sources."which-2.0.2"
+      sources."wide-align-1.1.3"
+      sources."winston-2.4.5"
+      sources."workerpool-6.1.0"
+      (sources."wrap-ansi-7.0.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.1"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      sources."xtend-4.0.2"
+      sources."y18n-5.0.8"
+      sources."yallist-2.1.2"
+      (sources."yargs-16.2.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.1"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+        ];
+      })
+      sources."yargs-parser-20.2.4"
+      sources."yargs-unparser-2.0.0"
+      sources."yocto-queue-0.1.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Private Pastebin Server";
+    };
+    production = false;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+in
+{
+  args = args;
+  sources = sources;
+  tarball = nodeEnv.buildNodeSourceDist args;
+  package = nodeEnv.buildNodePackage args;
+  shell = nodeEnv.buildNodeShell args;
+  nodeDependencies = nodeEnv.buildNodeDependencies (lib.overrideExisting args {
+    src = stdenv.mkDerivation {
+      name = args.name + "-package-json";
+      src = nix-gitignore.gitignoreSourcePure [
+        "*"
+        "!package.json"
+        "!package-lock.json"
+      ] args.src;
+      dontBuild = true;
+      installPhase = "mkdir -p $out; cp -r ./* $out;";
+    };
+  });
+}
diff --git a/pkgs/servers/haste-server/node-env.nix b/pkgs/servers/haste-server/node-env.nix
new file mode 100644
index 0000000000000..5f055785791ba
--- /dev/null
+++ b/pkgs/servers/haste-server/node-env.nix
@@ -0,0 +1,588 @@
+# This file originates from node2nix
+
+{lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile, writeShellScript}:
+
+let
+  # Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master
+  utillinux = if pkgs ? utillinux then pkgs.utillinux else pkgs.util-linux;
+
+  python = if nodejs ? python then nodejs.python else python2;
+
+  # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
+  tarWrapper = runCommand "tarWrapper" {} ''
+    mkdir -p $out/bin
+
+    cat > $out/bin/tar <<EOF
+    #! ${stdenv.shell} -e
+    $(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore
+    EOF
+
+    chmod +x $out/bin/tar
+  '';
+
+  # Function that generates a TGZ file from a NPM project
+  buildNodeSourceDist =
+    { name, version, src, ... }:
+
+    stdenv.mkDerivation {
+      name = "node-tarball-${name}-${version}";
+      inherit src;
+      buildInputs = [ nodejs ];
+      buildPhase = ''
+        export HOME=$TMPDIR
+        tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts)
+      '';
+      installPhase = ''
+        mkdir -p $out/tarballs
+        mv $tgzFile $out/tarballs
+        mkdir -p $out/nix-support
+        echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products
+      '';
+    };
+
+  # Common shell logic
+  installPackage = writeShellScript "install-package" ''
+    installPackage() {
+      local packageName=$1 src=$2
+
+      local strippedName
+
+      local DIR=$PWD
+      cd $TMPDIR
+
+      unpackFile $src
+
+      # Make the base dir in which the target dependency resides first
+      mkdir -p "$(dirname "$DIR/$packageName")"
+
+      if [ -f "$src" ]
+      then
+          # Figure out what directory has been unpacked
+          packageDir="$(find . -maxdepth 1 -type d | tail -1)"
+
+          # Restore write permissions to make building work
+          find "$packageDir" -type d -exec chmod u+x {} \;
+          chmod -R u+w "$packageDir"
+
+          # Move the extracted tarball into the output folder
+          mv "$packageDir" "$DIR/$packageName"
+      elif [ -d "$src" ]
+      then
+          # Get a stripped name (without hash) of the source directory.
+          # On old nixpkgs it's already set internally.
+          if [ -z "$strippedName" ]
+          then
+              strippedName="$(stripHash $src)"
+          fi
+
+          # Restore write permissions to make building work
+          chmod -R u+w "$strippedName"
+
+          # Move the extracted directory into the output folder
+          mv "$strippedName" "$DIR/$packageName"
+      fi
+
+      # Change to the package directory to install dependencies
+      cd "$DIR/$packageName"
+    }
+  '';
+
+  # Bundle the dependencies of the package
+  #
+  # Only include dependencies if they don't exist. They may also be bundled in the package.
+  includeDependencies = {dependencies}:
+    lib.optionalString (dependencies != []) (
+      ''
+        mkdir -p node_modules
+        cd node_modules
+      ''
+      + (lib.concatMapStrings (dependency:
+        ''
+          if [ ! -e "${dependency.name}" ]; then
+              ${composePackage dependency}
+          fi
+        ''
+      ) dependencies)
+      + ''
+        cd ..
+      ''
+    );
+
+  # Recursively composes the dependencies of a package
+  composePackage = { name, packageName, src, dependencies ? [], ... }@args:
+    builtins.addErrorContext "while evaluating node package '${packageName}'" ''
+      installPackage "${packageName}" "${src}"
+      ${includeDependencies { inherit dependencies; }}
+      cd ..
+      ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+    '';
+
+  pinpointDependencies = {dependencies, production}:
+    let
+      pinpointDependenciesFromPackageJSON = writeTextFile {
+        name = "pinpointDependencies.js";
+        text = ''
+          var fs = require('fs');
+          var path = require('path');
+
+          function resolveDependencyVersion(location, name) {
+              if(location == process.env['NIX_STORE']) {
+                  return null;
+              } else {
+                  var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json");
+
+                  if(fs.existsSync(dependencyPackageJSON)) {
+                      var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON));
+
+                      if(dependencyPackageObj.name == name) {
+                          return dependencyPackageObj.version;
+                      }
+                  } else {
+                      return resolveDependencyVersion(path.resolve(location, ".."), name);
+                  }
+              }
+          }
+
+          function replaceDependencies(dependencies) {
+              if(typeof dependencies == "object" && dependencies !== null) {
+                  for(var dependency in dependencies) {
+                      var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency);
+
+                      if(resolvedVersion === null) {
+                          process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n");
+                      } else {
+                          dependencies[dependency] = resolvedVersion;
+                      }
+                  }
+              }
+          }
+
+          /* Read the package.json configuration */
+          var packageObj = JSON.parse(fs.readFileSync('./package.json'));
+
+          /* Pinpoint all dependencies */
+          replaceDependencies(packageObj.dependencies);
+          if(process.argv[2] == "development") {
+              replaceDependencies(packageObj.devDependencies);
+          }
+          replaceDependencies(packageObj.optionalDependencies);
+
+          /* Write the fixed package.json file */
+          fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2));
+        '';
+      };
+    in
+    ''
+      node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"}
+
+      ${lib.optionalString (dependencies != [])
+        ''
+          if [ -d node_modules ]
+          then
+              cd node_modules
+              ${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies}
+              cd ..
+          fi
+        ''}
+    '';
+
+  # Recursively traverses all dependencies of a package and pinpoints all
+  # dependencies in the package.json file to the versions that are actually
+  # being used.
+
+  pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args:
+    ''
+      if [ -d "${packageName}" ]
+      then
+          cd "${packageName}"
+          ${pinpointDependencies { inherit dependencies production; }}
+          cd ..
+          ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+      fi
+    '';
+
+  # Extract the Node.js source code which is used to compile packages with
+  # native bindings
+  nodeSources = runCommand "node-sources" {} ''
+    tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
+    mv node-* $out
+  '';
+
+  # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty)
+  addIntegrityFieldsScript = writeTextFile {
+    name = "addintegrityfields.js";
+    text = ''
+      var fs = require('fs');
+      var path = require('path');
+
+      function augmentDependencies(baseDir, dependencies) {
+          for(var dependencyName in dependencies) {
+              var dependency = dependencies[dependencyName];
+
+              // Open package.json and augment metadata fields
+              var packageJSONDir = path.join(baseDir, "node_modules", dependencyName);
+              var packageJSONPath = path.join(packageJSONDir, "package.json");
+
+              if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored
+                  console.log("Adding metadata fields to: "+packageJSONPath);
+                  var packageObj = JSON.parse(fs.readFileSync(packageJSONPath));
+
+                  if(dependency.integrity) {
+                      packageObj["_integrity"] = dependency.integrity;
+                  } else {
+                      packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads.
+                  }
+
+                  if(dependency.resolved) {
+                      packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided
+                  } else {
+                      packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
+                  }
+
+                  if(dependency.from !== undefined) { // Adopt from property if one has been provided
+                      packageObj["_from"] = dependency.from;
+                  }
+
+                  fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
+              }
+
+              // Augment transitive dependencies
+              if(dependency.dependencies !== undefined) {
+                  augmentDependencies(packageJSONDir, dependency.dependencies);
+              }
+          }
+      }
+
+      if(fs.existsSync("./package-lock.json")) {
+          var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
+
+          if(![1, 2].includes(packageLock.lockfileVersion)) {
+             process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n");
+             process.exit(1);
+          }
+
+          if(packageLock.dependencies !== undefined) {
+              augmentDependencies(".", packageLock.dependencies);
+          }
+      }
+    '';
+  };
+
+  # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes
+  reconstructPackageLock = writeTextFile {
+    name = "addintegrityfields.js";
+    text = ''
+      var fs = require('fs');
+      var path = require('path');
+
+      var packageObj = JSON.parse(fs.readFileSync("package.json"));
+
+      var lockObj = {
+          name: packageObj.name,
+          version: packageObj.version,
+          lockfileVersion: 1,
+          requires: true,
+          dependencies: {}
+      };
+
+      function augmentPackageJSON(filePath, dependencies) {
+          var packageJSON = path.join(filePath, "package.json");
+          if(fs.existsSync(packageJSON)) {
+              var packageObj = JSON.parse(fs.readFileSync(packageJSON));
+              dependencies[packageObj.name] = {
+                  version: packageObj.version,
+                  integrity: "sha1-000000000000000000000000000=",
+                  dependencies: {}
+              };
+              processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies);
+          }
+      }
+
+      function processDependencies(dir, dependencies) {
+          if(fs.existsSync(dir)) {
+              var files = fs.readdirSync(dir);
+
+              files.forEach(function(entry) {
+                  var filePath = path.join(dir, entry);
+                  var stats = fs.statSync(filePath);
+
+                  if(stats.isDirectory()) {
+                      if(entry.substr(0, 1) == "@") {
+                          // When we encounter a namespace folder, augment all packages belonging to the scope
+                          var pkgFiles = fs.readdirSync(filePath);
+
+                          pkgFiles.forEach(function(entry) {
+                              if(stats.isDirectory()) {
+                                  var pkgFilePath = path.join(filePath, entry);
+                                  augmentPackageJSON(pkgFilePath, dependencies);
+                              }
+                          });
+                      } else {
+                          augmentPackageJSON(filePath, dependencies);
+                      }
+                  }
+              });
+          }
+      }
+
+      processDependencies("node_modules", lockObj.dependencies);
+
+      fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2));
+    '';
+  };
+
+  prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}:
+    let
+      forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
+    in
+    ''
+        # Pinpoint the versions of all dependencies to the ones that are actually being used
+        echo "pinpointing versions of dependencies..."
+        source $pinpointDependenciesScriptPath
+
+        # Patch the shebangs of the bundled modules to prevent them from
+        # calling executables outside the Nix store as much as possible
+        patchShebangs .
+
+        # Deploy the Node.js package by running npm install. Since the
+        # dependencies have been provided already by ourselves, it should not
+        # attempt to install them again, which is good, because we want to make
+        # it Nix's responsibility. If it needs to install any dependencies
+        # anyway (e.g. because the dependency parameters are
+        # incomplete/incorrect), it fails.
+        #
+        # The other responsibilities of NPM are kept -- version checks, build
+        # steps, postprocessing etc.
+
+        export HOME=$TMPDIR
+        cd "${packageName}"
+        runHook preRebuild
+
+        ${lib.optionalString bypassCache ''
+          ${lib.optionalString reconstructLock ''
+            if [ -f package-lock.json ]
+            then
+                echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!"
+                echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!"
+                rm package-lock.json
+            else
+                echo "No package-lock.json file found, reconstructing..."
+            fi
+
+            node ${reconstructPackageLock}
+          ''}
+
+          node ${addIntegrityFieldsScript}
+        ''}
+
+        npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild
+
+        if [ "''${dontNpmInstall-}" != "1" ]
+        then
+            # NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
+            rm -f npm-shrinkwrap.json
+
+            npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} install
+        fi
+    '';
+
+  # Builds and composes an NPM package including all its dependencies
+  buildNodePackage =
+    { name
+    , packageName
+    , version
+    , dependencies ? []
+    , buildInputs ? []
+    , production ? true
+    , npmFlags ? ""
+    , dontNpmInstall ? false
+    , bypassCache ? false
+    , reconstructLock ? false
+    , preRebuild ? ""
+    , dontStrip ? true
+    , unpackPhase ? "true"
+    , buildPhase ? "true"
+    , meta ? {}
+    , ... }@args:
+
+    let
+      extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta" ];
+    in
+    stdenv.mkDerivation ({
+      name = "${name}-${version}";
+      buildInputs = [ tarWrapper python nodejs ]
+        ++ lib.optional (stdenv.isLinux) utillinux
+        ++ lib.optional (stdenv.isDarwin) libtool
+        ++ buildInputs;
+
+      inherit nodejs;
+
+      inherit dontStrip; # Stripping may fail a build for some package deployments
+      inherit dontNpmInstall preRebuild unpackPhase buildPhase;
+
+      compositionScript = composePackage args;
+      pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+
+      passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
+
+      installPhase = ''
+        source ${installPackage}
+
+        # Create and enter a root node_modules/ folder
+        mkdir -p $out/lib/node_modules
+        cd $out/lib/node_modules
+
+        # Compose the package and all its dependencies
+        source $compositionScriptPath
+
+        ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
+
+        # Create symlink to the deployed executable folder, if applicable
+        if [ -d "$out/lib/node_modules/.bin" ]
+        then
+            ln -s $out/lib/node_modules/.bin $out/bin
+        fi
+
+        # Create symlinks to the deployed manual page folders, if applicable
+        if [ -d "$out/lib/node_modules/${packageName}/man" ]
+        then
+            mkdir -p $out/share
+            for dir in "$out/lib/node_modules/${packageName}/man/"*
+            do
+                mkdir -p $out/share/man/$(basename "$dir")
+                for page in "$dir"/*
+                do
+                    ln -s $page $out/share/man/$(basename "$dir")
+                done
+            done
+        fi
+
+        # Run post install hook, if provided
+        runHook postInstall
+      '';
+
+      meta = {
+        # default to Node.js' platforms
+        platforms = nodejs.meta.platforms;
+      } // meta;
+    } // extraArgs);
+
+  # Builds a node environment (a node_modules folder and a set of binaries)
+  buildNodeDependencies =
+    { name
+    , packageName
+    , version
+    , src
+    , dependencies ? []
+    , buildInputs ? []
+    , production ? true
+    , npmFlags ? ""
+    , dontNpmInstall ? false
+    , bypassCache ? false
+    , reconstructLock ? false
+    , dontStrip ? true
+    , unpackPhase ? "true"
+    , buildPhase ? "true"
+    , ... }@args:
+
+    let
+      extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
+    in
+      stdenv.mkDerivation ({
+        name = "node-dependencies-${name}-${version}";
+
+        buildInputs = [ tarWrapper python nodejs ]
+          ++ lib.optional (stdenv.isLinux) utillinux
+          ++ lib.optional (stdenv.isDarwin) libtool
+          ++ buildInputs;
+
+        inherit dontStrip; # Stripping may fail a build for some package deployments
+        inherit dontNpmInstall unpackPhase buildPhase;
+
+        includeScript = includeDependencies { inherit dependencies; };
+        pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+
+        passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
+
+        installPhase = ''
+          source ${installPackage}
+
+          mkdir -p $out/${packageName}
+          cd $out/${packageName}
+
+          source $includeScriptPath
+
+          # Create fake package.json to make the npm commands work properly
+          cp ${src}/package.json .
+          chmod 644 package.json
+          ${lib.optionalString bypassCache ''
+            if [ -f ${src}/package-lock.json ]
+            then
+                cp ${src}/package-lock.json .
+            fi
+          ''}
+
+          # Go to the parent folder to make sure that all packages are pinpointed
+          cd ..
+          ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+          ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
+
+          # Expose the executables that were installed
+          cd ..
+          ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+          mv ${packageName} lib
+          ln -s $out/lib/node_modules/.bin $out/bin
+        '';
+      } // extraArgs);
+
+  # Builds a development shell
+  buildNodeShell =
+    { name
+    , packageName
+    , version
+    , src
+    , dependencies ? []
+    , buildInputs ? []
+    , production ? true
+    , npmFlags ? ""
+    , dontNpmInstall ? false
+    , bypassCache ? false
+    , reconstructLock ? false
+    , dontStrip ? true
+    , unpackPhase ? "true"
+    , buildPhase ? "true"
+    , ... }@args:
+
+    let
+      nodeDependencies = buildNodeDependencies args;
+    in
+    stdenv.mkDerivation {
+      name = "node-shell-${name}-${version}";
+
+      buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs;
+      buildCommand = ''
+        mkdir -p $out/bin
+        cat > $out/bin/shell <<EOF
+        #! ${stdenv.shell} -e
+        $shellHook
+        exec ${stdenv.shell}
+        EOF
+        chmod +x $out/bin/shell
+      '';
+
+      # Provide the dependencies in a development shell through the NODE_PATH environment variable
+      inherit nodeDependencies;
+      shellHook = lib.optionalString (dependencies != []) ''
+        export NODE_PATH=${nodeDependencies}/lib/node_modules
+        export PATH="${nodeDependencies}/bin:$PATH"
+      '';
+    };
+in
+{
+  buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist;
+  buildNodePackage = lib.makeOverridable buildNodePackage;
+  buildNodeDependencies = lib.makeOverridable buildNodeDependencies;
+  buildNodeShell = lib.makeOverridable buildNodeShell;
+}
diff --git a/pkgs/servers/haste-server/update.sh b/pkgs/servers/haste-server/update.sh
new file mode 100755
index 0000000000000..1c5cf6f64f640
--- /dev/null
+++ b/pkgs/servers/haste-server/update.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl common-updater-scripts nodePackages.node2nix gnused nix coreutils jq
+
+set -euo pipefail
+
+latestVersion="$(curl -s "https://api.github.com/repos/toptal/haste-server/commits?per_page=1" | jq -r ".[0].sha")"
+currentVersion=$(nix-instantiate --eval -E "with import ./. {}; haste-server.version or (lib.getVersion haste-server)" | tr -d '"')
+
+if [[ "$currentVersion" == "$latestVersion" ]]; then
+  echo "haste-server is up-to-date: $currentVersion"
+  exit 0
+fi
+
+update-source-version haste-server 0 sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+update-source-version haste-server "$latestVersion"
+
+# use patched source
+store_src="$(nix-build . -A haste-server.src --no-out-link)"
+
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+node2nix \
+  --nodejs-14 \
+  --development \
+  --node-env ./node-env.nix \
+  --output ./node-deps.nix \
+  --input "$store_src/package.json" \
+  --composition ./node-composition.nix
diff --git a/pkgs/servers/hasura/cli.nix b/pkgs/servers/hasura/cli.nix
index a19a2773ce96d..48bcfe39eabd0 100644
--- a/pkgs/servers/hasura/cli.nix
+++ b/pkgs/servers/hasura/cli.nix
@@ -9,7 +9,7 @@ buildGoModule rec {
 
   subPackages = [ "cmd/hasura" ];
 
-  vendorSha256 = "0c0zn3a3bq3g13zj1b7hz1gfd9mcc5wlch80vjgp31vgm23vvd8d";
+  vendorSha256 = "0rjh4rs92jj56il3hg8msjz0w0iv25lydnh9v1kxmvdzy1x75b2b";
 
   doCheck = false;
 
diff --git a/pkgs/servers/hbase/default.nix b/pkgs/servers/hbase/default.nix
index 32d2c09de97fb..46521da885390 100644
--- a/pkgs/servers/hbase/default.nix
+++ b/pkgs/servers/hbase/default.nix
@@ -1,22 +1,55 @@
-{ lib, stdenv, fetchurl, makeWrapper }:
-stdenv.mkDerivation rec {
-  pname = "hbase";
-  version = "0.98.24";
+{ lib
+, stdenv
+, fetchurl
+, makeWrapper
+, jdk8_headless
+, jdk11_headless
+, nixosTests
+}:
 
-  src = fetchurl {
-    url = "mirror://apache/hbase/${version}/hbase-${version}-hadoop2-bin.tar.gz";
-    sha256 = "0kz72wqsii09v9hxkw10mzyvjhji5sx3l6aijjalgbybavpcxglb";
-  };
+let common = { version, hash, jdk ? jdk11_headless, tests }:
+  stdenv.mkDerivation rec {
+    pname = "hbase";
+    inherit version;
+
+    src = fetchurl {
+      url = "mirror://apache/hbase/${version}/hbase-${version}-bin.tar.gz";
+      inherit hash;
+    };
+
+    nativeBuildInputs = [ makeWrapper ];
+    installPhase = ''
+      mkdir -p $out
+      cp -R * $out
+      wrapProgram $out/bin/hbase --set-default JAVA_HOME ${jdk.home}
+    '';
+
+    passthru = { inherit tests; };
 
-  nativeBuildInputs = [ makeWrapper ];
-  installPhase = ''
-    mkdir -p $out
-    cp -R * $out
-  '';
-  meta = with lib; {
-    description = "A distributed, scalable, big data store";
-    homepage = "https://hbase.apache.org";
-    license = licenses.asl20;
-    platforms = lib.platforms.linux;
+    meta = with lib; {
+      description = "A distributed, scalable, big data store";
+      homepage = "https://hbase.apache.org";
+      license = licenses.asl20;
+      maintainers = with lib.maintainers; [ illustris ];
+      platforms = lib.platforms.linux;
+    };
+  };
+in
+{
+  hbase_1_7 = common {
+    version = "1.7.1";
+    hash = "sha256-DrH2G79QLT8L0YTTmAGC9pUWU8semSaTOsrsQRCI2rY=";
+    jdk = jdk8_headless;
+    tests.standalone = nixosTests.hbase1;
+  };
+  hbase_2_4 = common {
+    version = "2.4.11";
+    hash = "sha256-m0vjUtPaj8czHHh+rQNJJgrFAM744cHd06KE0ut7QeU=";
+    tests.standalone = nixosTests.hbase2;
+  };
+  hbase_3_0 = common {
+    version = "3.0.0-alpha-2";
+    hash = "sha256-QPvgO1BeFWvMT5PdUm/SL92ZgvSvYIuJbzolbBTenz4=";
+    tests.standalone = nixosTests.hbase3;
   };
 }
diff --git a/pkgs/servers/home-assistant/cli.nix b/pkgs/servers/home-assistant/cli.nix
index baa418776c5b8..18bc9c76da00a 100644
--- a/pkgs/servers/home-assistant/cli.nix
+++ b/pkgs/servers/home-assistant/cli.nix
@@ -2,7 +2,21 @@
 , python3
 }:
 
-python3.pkgs.buildPythonApplication rec {
+let
+  python = python3.override {
+    packageOverrides = self: super: {
+      click = super.click.overrideAttrs (oldAttrs: rec {
+        version = "8.0.4";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "sha256-hFjXsSh8X7EoyQ4jOBz5nc3nS+r2x/9jhM6E1v4JCts=";
+        };
+      });
+    };
+  };
+in
+
+python.pkgs.buildPythonApplication rec {
   pname = "homeassistant-cli";
   version = "0.9.4";
 
@@ -16,7 +30,7 @@ python3.pkgs.buildPythonApplication rec {
     sed -i "s/'\(.*\)\(==\|>=\).*'/'\1'/g" setup.py
   '';
 
-  propagatedBuildInputs = with python3.pkgs; [
+  propagatedBuildInputs = with python.pkgs; [
     aiohttp
     click
     click-log
@@ -38,7 +52,7 @@ python3.pkgs.buildPythonApplication rec {
   #  $out/bin/hass-cli completion zsh > "$out/share/zsh/site-functions/_hass-cli"
   #'';
 
-  checkInputs = with python3.pkgs; [
+  checkInputs = with python.pkgs; [
     pytestCheckHook
     requests-mock
   ];
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 822bfcbe59367..963f81c1daf7f 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -2,1039 +2,3137 @@
 # Do not edit!
 
 {
-  version = "2022.3.8";
+  version = "2022.4.7";
   components = {
-    "abode" = ps: with ps; [ abodepy ];
-    "accuweather" = ps: with ps; [ accuweather ];
-    "acer_projector" = ps: with ps; [ pyserial ];
-    "acmeda" = ps: with ps; [ aiopulse ];
-    "actiontec" = ps: with ps; [ ];
-    "adax" = ps: with ps; [ adax-local adax ];
-    "adguard" = ps: with ps; [ adguardhome ];
-    "ads" = ps: with ps; [ pyads ];
-    "advantage_air" = ps: with ps; [ advantage-air ];
-    "aemet" = ps: with ps; [ aemet-opendata ];
-    "aftership" = ps: with ps; [ pyaftership ];
-    "agent_dvr" = ps: with ps; [ agent-py ];
-    "air_quality" = ps: with ps; [ ];
-    "airly" = ps: with ps; [ airly ];
-    "airnow" = ps: with ps; [ pyairnow ];
-    "airthings" = ps: with ps; [ airthings-cloud ];
-    "airtouch4" = ps: with ps; [ airtouch4pyapi ];
-    "airvisual" = ps: with ps; [ pyairvisual ];
-    "aladdin_connect" = ps: with ps; [ aladdin-connect ];
-    "alarm_control_panel" = ps: with ps; [ ];
-    "alarmdecoder" = ps: with ps; [ adext ];
-    "alert" = ps: with ps; [ ];
-    "alexa" = ps: with ps; [ pyturbojpeg aiohttp-cors ];
-    "almond" = ps: with ps; [ aiohttp-cors pyalmond ];
-    "alpha_vantage" = ps: with ps; [ alpha-vantage ];
-    "amazon_polly" = ps: with ps; [ boto3 ];
-    "ambee" = ps: with ps; [ ambee ];
-    "amberelectric" = ps: with ps; [ amberelectric ];
-    "ambiclimate" = ps: with ps; [ aiohttp-cors ambiclimate ];
-    "ambient_station" = ps: with ps; [ aioambient ];
-    "amcrest" = ps: with ps; [ amcrest ha-ffmpeg ];
-    "ampio" = ps: with ps; [ asmog ];
-    "analytics" = ps: with ps; [ aiohttp-cors sqlalchemy ];
-    "android_ip_webcam" = ps: with ps; [ pydroid-ipcam ];
-    "androidtv" = ps: with ps; [ adb-shell androidtv pure-python-adb ];
-    "anel_pwrctrl" = ps: with ps; [ ]; # missing inputs: anel_pwrctrl-homeassistant
-    "anthemav" = ps: with ps; [ ]; # missing inputs: anthemav
-    "apache_kafka" = ps: with ps; [ aiokafka ];
-    "apcupsd" = ps: with ps; [ apcaccess ];
-    "api" = ps: with ps; [ aiohttp-cors ];
-    "apple_tv" = ps: with ps; [ aiohttp-cors ifaddr pyatv zeroconf ];
-    "apprise" = ps: with ps; [ apprise ];
-    "aprs" = ps: with ps; [ aprslib geopy ];
-    "aqualogic" = ps: with ps; [ aqualogic ];
-    "aquostv" = ps: with ps; [ ]; # missing inputs: sharp_aquos_rc
-    "arcam_fmj" = ps: with ps; [ arcam-fmj ];
-    "arest" = ps: with ps; [ ];
-    "arlo" = ps: with ps; [ ha-ffmpeg pyarlo ];
-    "arris_tg2492lg" = ps: with ps; [ ]; # missing inputs: arris-tg2492lg
-    "aruba" = ps: with ps; [ pexpect ];
-    "arwn" = ps: with ps; [ aiohttp-cors paho-mqtt ];
-    "aseko_pool_live" = ps: with ps; [ aioaseko ];
-    "asterisk_cdr" = ps: with ps; [ asterisk-mbox ];
-    "asterisk_mbox" = ps: with ps; [ asterisk-mbox ];
-    "asuswrt" = ps: with ps; [ aioasuswrt ];
-    "atag" = ps: with ps; [ pyatag ];
-    "aten_pe" = ps: with ps; [ atenpdu ];
-    "atome" = ps: with ps; [ pyatome ];
-    "august" = ps: with ps; [ yalexs ];
-    "aurora" = ps: with ps; [ auroranoaa ];
-    "aurora_abb_powerone" = ps: with ps; [ aurorapy ];
-    "aussie_broadband" = ps: with ps; [ pyaussiebb ];
-    "auth" = ps: with ps; [ aiohttp-cors ];
-    "automation" = ps: with ps; [ aiohttp-cors ];
-    "avea" = ps: with ps; [ avea ];
-    "avion" = ps: with ps; [ avion ];
-    "awair" = ps: with ps; [ python-awair ];
-    "aws" = ps: with ps; [ aiobotocore ];
-    "axis" = ps: with ps; [ aiohttp-cors axis paho-mqtt ];
-    "azure_devops" = ps: with ps; [ aioazuredevops ];
-    "azure_event_hub" = ps: with ps; [ azure-eventhub ];
-    "azure_service_bus" = ps: with ps; [ azure-servicebus ];
-    "baidu" = ps: with ps; [ ]; # missing inputs: baidu-aip
-    "balboa" = ps: with ps; [ pybalboa ];
-    "bayesian" = ps: with ps; [ ];
-    "bbb_gpio" = ps: with ps; [ ]; # missing inputs: Adafruit_BBIO
-    "bbox" = ps: with ps; [ ]; # missing inputs: pybbox
-    "beewi_smartclim" = ps: with ps; [ ]; # missing inputs: beewi_smartclim
-    "bh1750" = ps: with ps; [ i2csense smbus-cffi ];
-    "binary_sensor" = ps: with ps; [ ];
-    "bitcoin" = ps: with ps; [ blockchain ];
-    "bizkaibus" = ps: with ps; [ bizkaibus ];
-    "blackbird" = ps: with ps; [ pyblackbird ];
-    "blebox" = ps: with ps; [ blebox-uniapi ];
-    "blink" = ps: with ps; [ blinkpy ];
-    "blinksticklight" = ps: with ps; [ BlinkStick ];
-    "blinkt" = ps: with ps; [ ]; # missing inputs: blinkt
-    "blockchain" = ps: with ps; [ ]; # missing inputs: python-blockchain-api
-    "bloomsky" = ps: with ps; [ ];
-    "blueprint" = ps: with ps; [ ];
-    "bluesound" = ps: with ps; [ xmltodict ];
-    "bluetooth_le_tracker" = ps: with ps; [ pygatt ];
-    "bluetooth_tracker" = ps: with ps; [ bt-proximity pybluez ];
-    "bme280" = ps: with ps; [ bme280spi i2csense smbus-cffi ];
-    "bme680" = ps: with ps; [ bme680 smbus-cffi ];
-    "bmp280" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-bmp280
-    "bmw_connected_drive" = ps: with ps; [ bimmer-connected ];
-    "bond" = ps: with ps; [ bond-api ];
-    "bosch_shc" = ps: with ps; [ aiohttp-cors boschshcpy ifaddr zeroconf ];
-    "braviatv" = ps: with ps; [ bravia-tv ];
-    "broadlink" = ps: with ps; [ broadlink ];
-    "brother" = ps: with ps; [ brother ];
-    "brottsplatskartan" = ps: with ps; [ brottsplatskartan ];
-    "browser" = ps: with ps; [ ];
-    "brunt" = ps: with ps; [ ]; # missing inputs: brunt
-    "bsblan" = ps: with ps; [ bsblan ];
-    "bt_home_hub_5" = ps: with ps; [ ]; # missing inputs: bthomehub5-devicelist
-    "bt_smarthub" = ps: with ps; [ ]; # missing inputs: btsmarthub_devicelist
-    "buienradar" = ps: with ps; [ buienradar ];
-    "button" = ps: with ps; [ ];
-    "caldav" = ps: with ps; [ caldav ];
-    "calendar" = ps: with ps; [ aiohttp-cors ];
-    "camera" = ps: with ps; [ pyturbojpeg aiohttp-cors ];
-    "canary" = ps: with ps; [ ha-ffmpeg py-canary ];
-    "cast" = ps: with ps; [ pyturbojpeg aiohttp-cors hass-nabucasa ifaddr mutagen plexapi plexauth plexwebsocket PyChromecast zeroconf ];
-    "cert_expiry" = ps: with ps; [ ];
-    "channels" = ps: with ps; [ pychannels ];
-    "circuit" = ps: with ps; [ circuit-webhook ];
-    "cisco_ios" = ps: with ps; [ pexpect ];
-    "cisco_mobility_express" = ps: with ps; [ ciscomobilityexpress ];
-    "cisco_webex_teams" = ps: with ps; [ webexteamssdk ];
-    "citybikes" = ps: with ps; [ ];
-    "clementine" = ps: with ps; [ ]; # missing inputs: python-clementine-remote
-    "clickatell" = ps: with ps; [ ];
-    "clicksend" = ps: with ps; [ ];
-    "clicksend_tts" = ps: with ps; [ ];
-    "climacell" = ps: with ps; [ pyclimacell ];
-    "climate" = ps: with ps; [ ];
-    "cloud" = ps: with ps; [ pyturbojpeg aiohttp-cors hass-nabucasa ];
-    "cloudflare" = ps: with ps; [ pycfdns ];
-    "cmus" = ps: with ps; [ ]; # missing inputs: pycmus
-    "co2signal" = ps: with ps; [ co2signal ];
-    "coinbase" = ps: with ps; [ ]; # missing inputs: coinbase
-    "color_extractor" = ps: with ps; [ colorthief ];
-    "comed_hourly_pricing" = ps: with ps; [ ];
-    "comfoconnect" = ps: with ps; [ pycomfoconnect ];
-    "command_line" = ps: with ps; [ ];
-    "compensation" = ps: with ps; [ numpy ];
-    "concord232" = ps: with ps; [ ]; # missing inputs: concord232
-    "config" = ps: with ps; [ aiohttp-cors ];
-    "configurator" = ps: with ps; [ ];
-    "control4" = ps: with ps; [ pycontrol4 ];
-    "conversation" = ps: with ps; [ aiohttp-cors ];
-    "coolmaster" = ps: with ps; [ pycoolmasternet-async ];
-    "coronavirus" = ps: with ps; [ coronavirus ];
-    "counter" = ps: with ps; [ ];
-    "cover" = ps: with ps; [ ];
-    "cppm_tracker" = ps: with ps; [ ]; # missing inputs: clearpasspy
-    "cpuspeed" = ps: with ps; [ py-cpuinfo ];
-    "crownstone" = ps: with ps; [ aiohttp-cors crownstone-cloud crownstone-sse crownstone-uart pyserial pyudev ];
-    "cups" = ps: with ps; [ pycups ];
-    "currencylayer" = ps: with ps; [ ];
-    "daikin" = ps: with ps; [ pydaikin ];
-    "danfoss_air" = ps: with ps; [ pydanfossair ];
-    "darksky" = ps: with ps; [ python-forecastio ];
-    "datadog" = ps: with ps; [ datadog ];
-    "ddwrt" = ps: with ps; [ ];
-    "debugpy" = ps: with ps; [ debugpy ];
-    "deconz" = ps: with ps; [ pydeconz ];
-    "decora" = ps: with ps; [ bluepy ]; # missing inputs: decora
-    "decora_wifi" = ps: with ps; [ ]; # missing inputs: decora_wifi
-    "default_config" = ps: with ps; [ pynacl pyturbojpeg aiodiscover aiohttp-cors async-upnp-client hass-nabucasa home-assistant-frontend ifaddr pillow pyserial pyudev scapy sqlalchemy zeroconf ];
-    "delijn" = ps: with ps; [ pydelijn ];
-    "deluge" = ps: with ps; [ deluge-client ];
-    "demo" = ps: with ps; [ aiohttp-cors sqlalchemy ];
-    "denon" = ps: with ps; [ ];
-    "denonavr" = ps: with ps; [ denonavr ];
-    "derivative" = ps: with ps; [ ];
-    "deutsche_bahn" = ps: with ps; [ schiene ];
-    "device_automation" = ps: with ps; [ ];
-    "device_sun_light_trigger" = ps: with ps; [ aiohttp-cors pillow ];
-    "device_tracker" = ps: with ps; [ ];
-    "devolo_home_control" = ps: with ps; [ aiohttp-cors devolo-home-control-api ifaddr zeroconf ];
-    "devolo_home_network" = ps: with ps; [ devolo-plc-api ];
-    "dexcom" = ps: with ps; [ pydexcom ];
-    "dhcp" = ps: with ps; [ aiodiscover scapy ];
-    "dht" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-dht
-    "diagnostics" = ps: with ps; [ aiohttp-cors ];
-    "dialogflow" = ps: with ps; [ aiohttp-cors ];
-    "digital_ocean" = ps: with ps; [ digital-ocean ];
-    "digitalloggers" = ps: with ps; [ ]; # missing inputs: dlipower
-    "directv" = ps: with ps; [ directv ];
-    "discogs" = ps: with ps; [ discogs-client ];
-    "discord" = ps: with ps; [ nextcord ];
-    "discovery" = ps: with ps; [ aiohttp-cors ifaddr netdisco zeroconf ];
-    "dlib_face_detect" = ps: with ps; [ face_recognition ];
-    "dlib_face_identify" = ps: with ps; [ face_recognition ];
-    "dlink" = ps: with ps; [ ]; # missing inputs: pyW215
-    "dlna_dmr" = ps: with ps; [ aiohttp-cors async-upnp-client ifaddr zeroconf ];
-    "dlna_dms" = ps: with ps; [ aiohttp-cors async-upnp-client ifaddr zeroconf ];
-    "dnsip" = ps: with ps; [ aiodns ];
-    "dominos" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pizzapi
-    "doods" = ps: with ps; [ pillow pydoods ];
-    "doorbird" = ps: with ps; [ aiohttp-cors doorbirdpy ];
-    "dovado" = ps: with ps; [ ]; # missing inputs: dovado
-    "downloader" = ps: with ps; [ ];
-    "dsmr" = ps: with ps; [ dsmr-parser ];
-    "dsmr_reader" = ps: with ps; [ aiohttp-cors paho-mqtt ];
-    "dte_energy_bridge" = ps: with ps; [ ];
-    "dublin_bus_transport" = ps: with ps; [ ];
-    "duckdns" = ps: with ps; [ ];
-    "dunehd" = ps: with ps; [ pdunehd ];
-    "dwd_weather_warnings" = ps: with ps; [ dwdwfsapi ];
-    "dweet" = ps: with ps; [ ]; # missing inputs: dweepy
-    "dynalite" = ps: with ps; [ dynalite-devices ];
-    "eafm" = ps: with ps; [ aioeafm ];
-    "ebox" = ps: with ps; [ ]; # missing inputs: pyebox
-    "ebusd" = ps: with ps; [ ]; # missing inputs: ebusdpy
-    "ecoal_boiler" = ps: with ps; [ ecoaliface ];
-    "ecobee" = ps: with ps; [ python-ecobee-api ];
-    "econet" = ps: with ps; [ pyeconet ];
-    "ecovacs" = ps: with ps; [ ]; # missing inputs: sucks
-    "eddystone_temperature" = ps: with ps; [ construct ]; # missing inputs: beacontools
-    "edimax" = ps: with ps; [ pyedimax ];
-    "edl21" = ps: with ps; [ pysml ];
-    "efergy" = ps: with ps; [ pyefergy ];
-    "egardia" = ps: with ps; [ pythonegardia ];
-    "eight_sleep" = ps: with ps; [ pyeight ];
-    "elgato" = ps: with ps; [ elgato ];
-    "eliqonline" = ps: with ps; [ eliqonline ];
-    "elkm1" = ps: with ps; [ aiohttp-cors elkm1-lib ifaddr ];
-    "elmax" = ps: with ps; [ elmax-api ];
-    "elv" = ps: with ps; [ pypca ];
-    "emby" = ps: with ps; [ pyemby ];
-    "emoncms" = ps: with ps; [ ];
-    "emoncms_history" = ps: with ps; [ ];
-    "emonitor" = ps: with ps; [ aioemonitor ];
-    "emulated_hue" = ps: with ps; [ aiohttp-cors ifaddr ];
-    "emulated_kasa" = ps: with ps; [ sense-energy ];
-    "emulated_roku" = ps: with ps; [ aiohttp-cors emulated-roku ifaddr ];
-    "energy" = ps: with ps; [ aiohttp-cors sqlalchemy ];
-    "enigma2" = ps: with ps; [ openwebifpy ];
-    "enocean" = ps: with ps; [ enocean ];
-    "enphase_envoy" = ps: with ps; [ envoy-reader ];
-    "entur_public_transport" = ps: with ps; [ enturclient ];
-    "environment_canada" = ps: with ps; [ env-canada ];
-    "envirophat" = ps: with ps; [ smbus-cffi ]; # missing inputs: envirophat
-    "envisalink" = ps: with ps; [ pyenvisalink ];
-    "ephember" = ps: with ps; [ pyephember ];
-    "epson" = ps: with ps; [ epson-projector ];
-    "epsonworkforce" = ps: with ps; [ ]; # missing inputs: epsonprinter
-    "eq3btsmart" = ps: with ps; [ construct ]; # missing inputs: python-eq3bt
-    "esphome" = ps: with ps; [ aioesphomeapi aiohttp-cors ifaddr zeroconf ];
-    "etherscan" = ps: with ps; [ ]; # missing inputs: python-etherscan-api
-    "eufy" = ps: with ps; [ ]; # missing inputs: lakeside
-    "everlights" = ps: with ps; [ pyeverlights ];
-    "evil_genius_labs" = ps: with ps; [ pyevilgenius ];
-    "evohome" = ps: with ps; [ evohome-async ];
-    "ezviz" = ps: with ps; [ ha-ffmpeg pyezviz ];
-    "faa_delays" = ps: with ps; [ faadelays ];
-    "facebook" = ps: with ps; [ ];
-    "facebox" = ps: with ps; [ ];
-    "fail2ban" = ps: with ps; [ ];
-    "familyhub" = ps: with ps; [ ]; # missing inputs: python-family-hub-local
-    "fan" = ps: with ps; [ ];
-    "fastdotcom" = ps: with ps; [ ]; # missing inputs: fastdotcom
-    "feedreader" = ps: with ps; [ feedparser ];
-    "ffmpeg" = ps: with ps; [ ha-ffmpeg ];
-    "ffmpeg_motion" = ps: with ps; [ ha-ffmpeg ];
-    "ffmpeg_noise" = ps: with ps; [ ha-ffmpeg ];
-    "fibaro" = ps: with ps; [ fiblary3-fork ];
-    "fido" = ps: with ps; [ pyfido ];
-    "file" = ps: with ps; [ ];
-    "filesize" = ps: with ps; [ ];
-    "filter" = ps: with ps; [ sqlalchemy ];
-    "fints" = ps: with ps; [ fints ];
-    "fireservicerota" = ps: with ps; [ pyfireservicerota ];
-    "firmata" = ps: with ps; [ pymata-express ];
-    "fitbit" = ps: with ps; [ aiohttp-cors fitbit ];
-    "fivem" = ps: with ps; [ ]; # missing inputs: fivem-api
-    "fixer" = ps: with ps; [ fixerio ];
-    "fjaraskupan" = ps: with ps; [ fjaraskupan ];
-    "fleetgo" = ps: with ps; [ ritassist ];
-    "flexit" = ps: with ps; [ pymodbus ];
-    "flic" = ps: with ps; [ pyflic ];
-    "flick_electric" = ps: with ps; [ pyflick ];
-    "flipr" = ps: with ps; [ flipr-api ];
-    "flo" = ps: with ps; [ aioflo ];
-    "flock" = ps: with ps; [ ];
-    "flume" = ps: with ps; [ pyflume ];
-    "flunearyou" = ps: with ps; [ pyflunearyou ];
-    "flux" = ps: with ps; [ ];
-    "flux_led" = ps: with ps; [ aiohttp-cors flux-led ifaddr ];
-    "folder" = ps: with ps; [ ];
-    "folder_watcher" = ps: with ps; [ watchdog ];
-    "foobot" = ps: with ps; [ foobot-async ];
-    "forecast_solar" = ps: with ps; [ forecast-solar ];
-    "forked_daapd" = ps: with ps; [ ]; # missing inputs: pyforked-daapd pylibrespot-java
-    "fortios" = ps: with ps; [ fortiosapi ];
-    "foscam" = ps: with ps; [ libpyfoscam ];
-    "foursquare" = ps: with ps; [ aiohttp-cors ];
-    "free_mobile" = ps: with ps; [ ]; # missing inputs: freesms
-    "freebox" = ps: with ps; [ freebox-api ];
-    "freedns" = ps: with ps; [ ];
-    "freedompro" = ps: with ps; [ pyfreedompro ];
-    "fritz" = ps: with ps; [ aiohttp-cors fritzconnection ifaddr xmltodict ];
-    "fritzbox" = ps: with ps; [ pyfritzhome ];
-    "fritzbox_callmonitor" = ps: with ps; [ fritzconnection ];
-    "fronius" = ps: with ps; [ pyfronius ];
-    "frontend" = ps: with ps; [ aiohttp-cors home-assistant-frontend pillow sqlalchemy ];
-    "frontier_silicon" = ps: with ps; [ afsapi ];
-    "futurenow" = ps: with ps; [ pyfnip ];
-    "garadget" = ps: with ps; [ ];
-    "garages_amsterdam" = ps: with ps; [ garages-amsterdam ];
-    "gc100" = ps: with ps; [ ]; # missing inputs: python-gc100
-    "gdacs" = ps: with ps; [ aio-georss-gdacs ];
-    "generic" = ps: with ps; [ ];
-    "generic_hygrostat" = ps: with ps; [ ];
-    "generic_thermostat" = ps: with ps; [ sqlalchemy ];
-    "geniushub" = ps: with ps; [ geniushub-client ];
-    "geo_json_events" = ps: with ps; [ geojson-client ];
-    "geo_location" = ps: with ps; [ ];
-    "geo_rss_events" = ps: with ps; [ georss-generic-client ];
-    "geofency" = ps: with ps; [ aiohttp-cors ];
-    "geonetnz_quakes" = ps: with ps; [ aio-geojson-geonetnz-quakes ];
-    "geonetnz_volcano" = ps: with ps; [ aio-geojson-geonetnz-volcano ];
-    "gios" = ps: with ps; [ gios ];
-    "github" = ps: with ps; [ aiogithubapi ];
-    "gitlab_ci" = ps: with ps; [ python-gitlab ];
-    "gitter" = ps: with ps; [ ]; # missing inputs: gitterpy
-    "glances" = ps: with ps; [ glances-api ];
-    "goalfeed" = ps: with ps; [ ]; # missing inputs: pysher
-    "goalzero" = ps: with ps; [ goalzero ];
-    "gogogate2" = ps: with ps; [ ismartgate ];
-    "goodwe" = ps: with ps; [ goodwe ];
-    "google" = ps: with ps; [ google-api-python-client httplib2 oauth2client ];
-    "google_assistant" = ps: with ps; [ pyturbojpeg aiohttp-cors ];
-    "google_cloud" = ps: with ps; [ google-cloud-texttospeech ];
-    "google_domains" = ps: with ps; [ ];
-    "google_maps" = ps: with ps; [ locationsharinglib ];
-    "google_pubsub" = ps: with ps; [ google-cloud-pubsub ];
-    "google_translate" = ps: with ps; [ gtts ];
-    "google_travel_time" = ps: with ps; [ googlemaps ];
-    "google_wifi" = ps: with ps; [ ];
-    "gpsd" = ps: with ps; [ gps3 ];
-    "gpslogger" = ps: with ps; [ aiohttp-cors ];
-    "graphite" = ps: with ps; [ ];
-    "gree" = ps: with ps; [ greeclimate ];
-    "greeneye_monitor" = ps: with ps; [ ]; # missing inputs: greeneye_monitor
-    "greenwave" = ps: with ps; [ ]; # missing inputs: greenwavereality
-    "group" = ps: with ps; [ ];
-    "growatt_server" = ps: with ps; [ growattserver ];
-    "gstreamer" = ps: with ps; [ ]; # missing inputs: gstreamer-player
-    "gtfs" = ps: with ps; [ pygtfs ];
-    "guardian" = ps: with ps; [ aioguardian ];
-    "habitica" = ps: with ps; [ habitipy ];
-    "hangouts" = ps: with ps; [ hangups ];
-    "harman_kardon_avr" = ps: with ps; [ ]; # missing inputs: hkavr
-    "harmony" = ps: with ps; [ aioharmony ];
-    "hassio" = ps: with ps; [ aiohttp-cors home-assistant-frontend pillow sqlalchemy ];
-    "haveibeenpwned" = ps: with ps; [ ];
-    "hddtemp" = ps: with ps; [ ];
-    "hdmi_cec" = ps: with ps; [ pycec ];
-    "heatmiser" = ps: with ps; [ ]; # missing inputs: heatmiserV3
-    "heos" = ps: with ps; [ pyheos ];
-    "here_travel_time" = ps: with ps; [ herepy ];
-    "hikvision" = ps: with ps; [ ]; # missing inputs: pyhik
-    "hikvisioncam" = ps: with ps; [ hikvision ];
-    "hisense_aehw4a1" = ps: with ps; [ pyaehw4a1 ];
-    "history" = ps: with ps; [ aiohttp-cors sqlalchemy ];
-    "history_stats" = ps: with ps; [ sqlalchemy ];
-    "hitron_coda" = ps: with ps; [ ];
-    "hive" = ps: with ps; [ pyhiveapi ];
-    "hlk_sw16" = ps: with ps; [ hlk-sw16 ];
-    "home_connect" = ps: with ps; [ aiohttp-cors homeconnect ];
-    "home_plus_control" = ps: with ps; [ aiohttp-cors homepluscontrol ];
-    "homeassistant" = ps: with ps; [ ];
-    "homekit" = ps: with ps; [ hap-python pyqrcode pyturbojpeg aiohttp-cors base36 fnvhash ha-ffmpeg ifaddr zeroconf ];
-    "homekit_controller" = ps: with ps; [ aiohomekit aiohttp-cors ifaddr zeroconf ];
-    "homematic" = ps: with ps; [ pyhomematic ];
-    "homematicip_cloud" = ps: with ps; [ homematicip ];
-    "homewizard" = ps: with ps; [ aiohwenergy ];
-    "homeworks" = ps: with ps; [ pyhomeworks ];
-    "honeywell" = ps: with ps; [ somecomfort ];
-    "horizon" = ps: with ps; [ ]; # missing inputs: horimote
-    "hp_ilo" = ps: with ps; [ python-hpilo ];
-    "html5" = ps: with ps; [ aiohttp-cors pywebpush ];
-    "http" = ps: with ps; [ aiohttp-cors ];
-    "htu21d" = ps: with ps; [ i2csense smbus-cffi ];
-    "huawei_lte" = ps: with ps; [ huawei-lte-api stringcase url-normalize ];
-    "hue" = ps: with ps; [ aiohue ];
-    "huisbaasje" = ps: with ps; [ huisbaasje-client ];
-    "humidifier" = ps: with ps; [ ];
-    "hunterdouglas_powerview" = ps: with ps; [ aiopvapi ];
-    "hvv_departures" = ps: with ps; [ pygti ];
-    "hydrawise" = ps: with ps; [ hydrawiser ];
-    "hyperion" = ps: with ps; [ hyperion-py ];
-    "ialarm" = ps: with ps; [ pyialarm ];
-    "iammeter" = ps: with ps; [ ]; # missing inputs: iammeter
-    "iaqualink" = ps: with ps; [ iaqualink ];
-    "icloud" = ps: with ps; [ pyicloud ];
-    "idteck_prox" = ps: with ps; [ ]; # missing inputs: rfk101py
-    "ifttt" = ps: with ps; [ aiohttp-cors pyfttt ];
-    "iglo" = ps: with ps; [ ]; # missing inputs: iglo
-    "ign_sismologia" = ps: with ps; [ georss-ign-sismologia-client ];
-    "ihc" = ps: with ps; [ defusedxml ]; # missing inputs: ihcsdk
-    "image" = ps: with ps; [ aiohttp-cors pillow ];
-    "image_processing" = ps: with ps; [ pyturbojpeg aiohttp-cors ];
-    "imap" = ps: with ps; [ aioimaplib ];
-    "imap_email_content" = ps: with ps; [ ];
-    "incomfort" = ps: with ps; [ incomfort-client ];
-    "influxdb" = ps: with ps; [ influxdb-client influxdb ];
-    "input_boolean" = ps: with ps; [ ];
-    "input_button" = ps: with ps; [ ];
-    "input_datetime" = ps: with ps; [ ];
-    "input_number" = ps: with ps; [ ];
-    "input_select" = ps: with ps; [ ];
-    "input_text" = ps: with ps; [ ];
-    "insteon" = ps: with ps; [ pyinsteon ];
-    "integration" = ps: with ps; [ ];
-    "intellifire" = ps: with ps; [ intellifire4py ];
-    "intent" = ps: with ps; [ aiohttp-cors ];
-    "intent_script" = ps: with ps; [ ];
-    "intesishome" = ps: with ps; [ pyintesishome ];
-    "ios" = ps: with ps; [ aiohttp-cors ifaddr zeroconf ];
-    "iotawatt" = ps: with ps; [ iotawattpy ];
-    "iperf3" = ps: with ps; [ ]; # missing inputs: iperf3
-    "ipma" = ps: with ps; [ pyipma ];
-    "ipp" = ps: with ps; [ pyipp ];
-    "iqvia" = ps: with ps; [ numpy pyiqvia ];
-    "irish_rail_transport" = ps: with ps; [ ]; # missing inputs: pyirishrail
-    "islamic_prayer_times" = ps: with ps; [ prayer-times-calculator ];
-    "iss" = ps: with ps; [ ]; # missing inputs: pyiss
-    "isy994" = ps: with ps; [ pyisy ];
-    "itach" = ps: with ps; [ ]; # missing inputs: pyitachip2ir
-    "itunes" = ps: with ps; [ ];
-    "izone" = ps: with ps; [ python-izone ];
-    "jellyfin" = ps: with ps; [ jellyfin-apiclient-python ];
-    "jewish_calendar" = ps: with ps; [ hdate ];
-    "joaoapps_join" = ps: with ps; [ ]; # missing inputs: python-join-api
-    "juicenet" = ps: with ps; [ python-juicenet ];
-    "kaiterra" = ps: with ps; [ ]; # missing inputs: kaiterra-async-client
-    "kankun" = ps: with ps; [ ];
-    "keba" = ps: with ps; [ ]; # missing inputs: keba-kecontact
-    "keenetic_ndms2" = ps: with ps; [ ndms2-client ];
-    "kef" = ps: with ps; [ aiokef getmac ];
-    "keyboard" = ps: with ps; [ ]; # missing inputs: pyuserinput
-    "keyboard_remote" = ps: with ps; [ aionotify evdev ];
-    "kira" = ps: with ps; [ pykira ];
-    "kiwi" = ps: with ps; [ ]; # missing inputs: kiwiki-client
-    "kmtronic" = ps: with ps; [ pykmtronic ];
-    "knx" = ps: with ps; [ xknx ];
-    "kodi" = ps: with ps; [ aiohttp-cors pykodi ];
-    "konnected" = ps: with ps; [ aiohttp-cors konnected ];
-    "kostal_plenticore" = ps: with ps; [ ]; # missing inputs: kostal_plenticore
-    "kraken" = ps: with ps; [ krakenex pykrakenapi ];
-    "kulersky" = ps: with ps; [ pykulersky ];
-    "kwb" = ps: with ps; [ ]; # missing inputs: pykwb
-    "lacrosse" = ps: with ps; [ pylacrosse ];
-    "lametric" = ps: with ps; [ lmnotify ];
-    "lannouncer" = ps: with ps; [ ];
-    "lastfm" = ps: with ps; [ pylast ];
-    "launch_library" = ps: with ps; [ pylaunches ];
-    "lcn" = ps: with ps; [ pypck ];
-    "lg_netcast" = ps: with ps; [ pylgnetcast ];
-    "lg_soundbar" = ps: with ps; [ temescal ];
-    "life360" = ps: with ps; [ life360 ];
-    "lifx" = ps: with ps; [ aiolifx aiolifx-effects ];
-    "lifx_cloud" = ps: with ps; [ ];
-    "light" = ps: with ps; [ ];
-    "lightwave" = ps: with ps; [ lightwave ];
-    "limitlessled" = ps: with ps; [ limitlessled ];
-    "linksys_smart" = ps: with ps; [ ];
-    "linode" = ps: with ps; [ linode-api ];
-    "linux_battery" = ps: with ps; [ batinfo ];
-    "lirc" = ps: with ps; [ ]; # missing inputs: python-lirc
-    "litejet" = ps: with ps; [ ]; # missing inputs: pylitejet
-    "litterrobot" = ps: with ps; [ pylitterbot ];
-    "llamalab_automate" = ps: with ps; [ ];
-    "local_file" = ps: with ps; [ ];
-    "local_ip" = ps: with ps; [ aiohttp-cors ifaddr ];
-    "locative" = ps: with ps; [ aiohttp-cors ];
-    "lock" = ps: with ps; [ ];
-    "logbook" = ps: with ps; [ aiohttp-cors home-assistant-frontend pillow sqlalchemy ];
-    "logentries" = ps: with ps; [ ];
-    "logger" = ps: with ps; [ ];
-    "logi_circle" = ps: with ps; [ aiohttp-cors ha-ffmpeg ]; # missing inputs: logi_circle
-    "london_air" = ps: with ps; [ ];
-    "london_underground" = ps: with ps; [ ]; # missing inputs: london-tube-status
-    "lookin" = ps: with ps; [ aiolookin ];
-    "lovelace" = ps: with ps; [ ];
-    "luci" = ps: with ps; [ openwrt-luci-rpc ];
-    "luftdaten" = ps: with ps; [ luftdaten ];
-    "lupusec" = ps: with ps; [ lupupy ];
-    "lutron" = ps: with ps; [ pylutron ];
-    "lutron_caseta" = ps: with ps; [ pylutron-caseta ];
-    "lw12wifi" = ps: with ps; [ ]; # missing inputs: lw12
-    "lyric" = ps: with ps; [ aiohttp-cors aiolyric ];
-    "magicseaweed" = ps: with ps; [ ]; # missing inputs: magicseaweed
-    "mailbox" = ps: with ps; [ aiohttp-cors ];
-    "mailgun" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pymailgunner
-    "manual" = ps: with ps; [ ];
-    "manual_mqtt" = ps: with ps; [ aiohttp-cors paho-mqtt ];
-    "map" = ps: with ps; [ aiohttp-cors home-assistant-frontend pillow sqlalchemy ];
-    "marytts" = ps: with ps; [ ]; # missing inputs: speak2mary
-    "mastodon" = ps: with ps; [ mastodon-py ];
-    "matrix" = ps: with ps; [ matrix-client ];
-    "maxcube" = ps: with ps; [ maxcube-api ];
-    "mazda" = ps: with ps; [ pymazda ];
-    "mcp23017" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-mcp230xx
-    "media_extractor" = ps: with ps; [ aiohttp-cors youtube-dl-light ];
-    "media_player" = ps: with ps; [ aiohttp-cors ];
-    "media_source" = ps: with ps; [ aiohttp-cors ];
-    "mediaroom" = ps: with ps; [ pymediaroom ];
-    "melcloud" = ps: with ps; [ pymelcloud ];
-    "melissa" = ps: with ps; [ ]; # missing inputs: py-melissa-climate
-    "meraki" = ps: with ps; [ aiohttp-cors ];
-    "message_bird" = ps: with ps; [ ]; # missing inputs: messagebird
-    "met" = ps: with ps; [ pymetno ];
-    "met_eireann" = ps: with ps; [ pymeteireann ];
-    "meteo_france" = ps: with ps; [ ]; # missing inputs: meteofrance-api
-    "meteoalarm" = ps: with ps; [ meteoalertapi ];
-    "meteoclimatic" = ps: with ps; [ pymeteoclimatic ];
-    "metoffice" = ps: with ps; [ ]; # missing inputs: datapoint
-    "mfi" = ps: with ps; [ ]; # missing inputs: mficlient
-    "mhz19" = ps: with ps; [ pmsensor ];
-    "microsoft" = ps: with ps; [ ]; # missing inputs: pycsspeechtts
-    "microsoft_face" = ps: with ps; [ pyturbojpeg aiohttp-cors ];
-    "microsoft_face_detect" = ps: with ps; [ pyturbojpeg aiohttp-cors ];
-    "microsoft_face_identify" = ps: with ps; [ pyturbojpeg aiohttp-cors ];
-    "miflora" = ps: with ps; [ bluepy ]; # missing inputs: miflora
-    "mikrotik" = ps: with ps; [ librouteros ];
-    "mill" = ps: with ps; [ mill-local millheater ];
-    "min_max" = ps: with ps; [ ];
-    "minecraft_server" = ps: with ps; [ aiodns getmac mcstatus ];
-    "minio" = ps: with ps; [ minio ];
-    "mitemp_bt" = ps: with ps; [ ]; # missing inputs: mitemp_bt
-    "mjpeg" = ps: with ps; [ ];
-    "mobile_app" = ps: with ps; [ pynacl pyturbojpeg aiohttp-cors hass-nabucasa pillow ];
-    "mochad" = ps: with ps; [ ]; # missing inputs: pymochad
-    "modbus" = ps: with ps; [ pymodbus ];
-    "modem_callerid" = ps: with ps; [ aiohttp-cors phone-modem pyserial pyudev ];
-    "modern_forms" = ps: with ps; [ aiomodernforms ];
-    "moehlenhoff_alpha2" = ps: with ps; [ ]; # missing inputs: moehlenhoff-alpha2
-    "mold_indicator" = ps: with ps; [ ];
-    "monoprice" = ps: with ps; [ ]; # missing inputs: pymonoprice
-    "moon" = ps: with ps; [ ];
-    "motion_blinds" = ps: with ps; [ aiohttp-cors ifaddr motionblinds ];
-    "motioneye" = ps: with ps; [ aiohttp-cors motioneye-client ];
-    "mpchc" = ps: with ps; [ ];
-    "mpd" = ps: with ps; [ mpd2 ];
-    "mqtt" = ps: with ps; [ aiohttp-cors paho-mqtt ];
-    "mqtt_eventstream" = ps: with ps; [ aiohttp-cors paho-mqtt ];
-    "mqtt_json" = ps: with ps; [ aiohttp-cors paho-mqtt ];
-    "mqtt_room" = ps: with ps; [ aiohttp-cors paho-mqtt ];
-    "mqtt_statestream" = ps: with ps; [ aiohttp-cors paho-mqtt ];
-    "msteams" = ps: with ps; [ pymsteams ];
-    "mullvad" = ps: with ps; [ mullvad-api ];
-    "mutesync" = ps: with ps; [ mutesync ];
-    "mvglive" = ps: with ps; [ PyMVGLive ];
-    "my" = ps: with ps; [ aiohttp-cors home-assistant-frontend pillow sqlalchemy ];
-    "mycroft" = ps: with ps; [ ]; # missing inputs: mycroftapi
-    "myq" = ps: with ps; [ pymyq ];
-    "mysensors" = ps: with ps; [ aiohttp-cors paho-mqtt pymysensors ];
-    "mystrom" = ps: with ps; [ aiohttp-cors python-mystrom ];
-    "mythicbeastsdns" = ps: with ps; [ mbddns ];
-    "nad" = ps: with ps; [ nad-receiver ];
-    "nam" = ps: with ps; [ nettigo-air-monitor ];
-    "namecheapdns" = ps: with ps; [ defusedxml ];
-    "nanoleaf" = ps: with ps; [ aionanoleaf ];
-    "neato" = ps: with ps; [ aiohttp-cors pybotvac ];
-    "nederlandse_spoorwegen" = ps: with ps; [ nsapi ];
-    "ness_alarm" = ps: with ps; [ nessclient ];
-    "nest" = ps: with ps; [ aiohttp-cors google-nest-sdm ha-ffmpeg python-nest ];
-    "netatmo" = ps: with ps; [ pyturbojpeg aiohttp-cors hass-nabucasa pyatmo ];
-    "netdata" = ps: with ps; [ netdata ];
-    "netgear" = ps: with ps; [ pynetgear ];
-    "netgear_lte" = ps: with ps; [ eternalegypt ];
-    "netio" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pynetio
-    "network" = ps: with ps; [ aiohttp-cors ifaddr ];
-    "neurio_energy" = ps: with ps; [ ]; # missing inputs: neurio
-    "nexia" = ps: with ps; [ nexia ];
-    "nextbus" = ps: with ps; [ ]; # missing inputs: py_nextbusnext
-    "nextcloud" = ps: with ps; [ nextcloudmonitor ];
-    "nfandroidtv" = ps: with ps; [ ]; # missing inputs: notifications-android-tv
-    "nightscout" = ps: with ps; [ py-nightscout ];
-    "niko_home_control" = ps: with ps; [ niko-home-control ];
-    "nilu" = ps: with ps; [ niluclient ];
-    "nina" = ps: with ps; [ pynina ];
-    "nissan_leaf" = ps: with ps; [ pycarwings2 ];
-    "nmap_tracker" = ps: with ps; [ aiohttp-cors getmac ifaddr netmap ]; # missing inputs: mac-vendor-lookup
-    "nmbs" = ps: with ps; [ ]; # missing inputs: pyrail
-    "no_ip" = ps: with ps; [ ];
-    "noaa_tides" = ps: with ps; [ ]; # missing inputs: noaa-coops
-    "norway_air" = ps: with ps; [ pymetno ];
-    "notify" = ps: with ps; [ ];
-    "notify_events" = ps: with ps; [ ]; # missing inputs: notify-events
-    "notion" = ps: with ps; [ aionotion ];
-    "nsw_fuel_station" = ps: with ps; [ ]; # missing inputs: nsw-fuel-api-client
-    "nsw_rural_fire_service_feed" = ps: with ps; [ aio-geojson-nsw-rfs-incidents ];
-    "nuheat" = ps: with ps; [ ]; # missing inputs: nuheat
-    "nuki" = ps: with ps; [ pynuki ];
-    "numato" = ps: with ps; [ ]; # missing inputs: numato-gpio
-    "number" = ps: with ps; [ ];
-    "nut" = ps: with ps; [ pynut2 ];
-    "nws" = ps: with ps; [ pynws ];
-    "nx584" = ps: with ps; [ pynx584 ];
-    "nzbget" = ps: with ps; [ ]; # missing inputs: pynzbgetapi
-    "oasa_telematics" = ps: with ps; [ ]; # missing inputs: oasatelematics
-    "obihai" = ps: with ps; [ pyobihai ];
-    "octoprint" = ps: with ps; [ pyoctoprintapi ];
-    "oem" = ps: with ps; [ oemthermostat ];
-    "ohmconnect" = ps: with ps; [ defusedxml ];
-    "ombi" = ps: with ps; [ pyombi ];
-    "omnilogic" = ps: with ps; [ omnilogic ];
-    "onboarding" = ps: with ps; [ aiohttp-cors home-assistant-frontend pillow sqlalchemy ];
-    "oncue" = ps: with ps; [ aiooncue ];
-    "ondilo_ico" = ps: with ps; [ aiohttp-cors ondilo ];
-    "onewire" = ps: with ps; [ pi1wire pyownet ];
-    "onkyo" = ps: with ps; [ onkyo-eiscp ];
-    "onvif" = ps: with ps; [ wsdiscovery ha-ffmpeg onvif-zeep-async ];
-    "open_meteo" = ps: with ps; [ open-meteo ];
-    "openalpr_cloud" = ps: with ps; [ ];
-    "openalpr_local" = ps: with ps; [ ];
-    "opencv" = ps: with ps; [ numpy ]; # missing inputs: opencv-python-headless
-    "openerz" = ps: with ps; [ openerz-api ];
-    "openevse" = ps: with ps; [ openevsewifi ];
-    "openexchangerates" = ps: with ps; [ ];
-    "opengarage" = ps: with ps; [ open-garage ];
-    "openhardwaremonitor" = ps: with ps; [ ];
-    "openhome" = ps: with ps; [ openhomedevice ];
-    "opensensemap" = ps: with ps; [ opensensemap-api ];
-    "opensky" = ps: with ps; [ ];
-    "opentherm_gw" = ps: with ps; [ pyotgw ];
-    "openuv" = ps: with ps; [ pyopenuv ];
-    "openweathermap" = ps: with ps; [ pyowm ];
-    "opnsense" = ps: with ps; [ pyopnsense ];
-    "opple" = ps: with ps; [ ]; # missing inputs: pyoppleio
-    "orangepi_gpio" = ps: with ps; [ ]; # missing inputs: OPi.GPIO
-    "oru" = ps: with ps; [ ]; # missing inputs: oru
-    "orvibo" = ps: with ps; [ orvibo ];
-    "osramlightify" = ps: with ps; [ ]; # missing inputs: lightify
-    "otp" = ps: with ps; [ pyotp ];
-    "overkiz" = ps: with ps; [ pyoverkiz ];
-    "ovo_energy" = ps: with ps; [ ovoenergy ];
-    "owntracks" = ps: with ps; [ pynacl pyturbojpeg aiohttp-cors hass-nabucasa paho-mqtt ];
-    "ozw" = ps: with ps; [ aiohttp-cors paho-mqtt python-openzwave-mqtt ];
-    "p1_monitor" = ps: with ps; [ p1monitor ];
-    "panasonic_bluray" = ps: with ps; [ panacotta ];
-    "panasonic_viera" = ps: with ps; [ ]; # missing inputs: panasonic_viera
-    "pandora" = ps: with ps; [ pexpect ];
-    "panel_custom" = ps: with ps; [ aiohttp-cors home-assistant-frontend pillow sqlalchemy ];
-    "panel_iframe" = ps: with ps; [ aiohttp-cors home-assistant-frontend pillow sqlalchemy ];
-    "pcal9535a" = ps: with ps; [ ]; # missing inputs: pcal9535a
-    "pencom" = ps: with ps; [ ]; # missing inputs: pencompy
-    "persistent_notification" = ps: with ps; [ ];
-    "person" = ps: with ps; [ aiohttp-cors pillow ];
-    "philips_js" = ps: with ps; [ ha-philipsjs ];
-    "pi4ioe5v9xxxx" = ps: with ps; [ ]; # missing inputs: pi4ioe5v9xxxx
-    "pi_hole" = ps: with ps; [ hole ];
-    "picnic" = ps: with ps; [ python-picnic-api ];
-    "picotts" = ps: with ps; [ ];
-    "piglow" = ps: with ps; [ ]; # missing inputs: piglow
-    "pilight" = ps: with ps; [ ]; # missing inputs: pilight
-    "ping" = ps: with ps; [ icmplib ];
-    "pioneer" = ps: with ps; [ ];
-    "pjlink" = ps: with ps; [ ]; # missing inputs: pypjlink2
-    "plaato" = ps: with ps; [ pyturbojpeg aiohttp-cors hass-nabucasa pyplaato ];
-    "plant" = ps: with ps; [ sqlalchemy ];
-    "plex" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket ];
-    "plugwise" = ps: with ps; [ plugwise ];
-    "plum_lightpad" = ps: with ps; [ ]; # missing inputs: plumlightpad
-    "pocketcasts" = ps: with ps; [ ]; # missing inputs: pycketcasts
-    "point" = ps: with ps; [ aiohttp-cors pypoint ];
-    "poolsense" = ps: with ps; [ poolsense ];
-    "powerwall" = ps: with ps; [ ]; # missing inputs: tesla-powerwall
-    "profiler" = ps: with ps; [ guppy3 objgraph pyprof2calltree ];
-    "progettihwsw" = ps: with ps; [ ]; # missing inputs: progettihwsw
-    "proliphix" = ps: with ps; [ ]; # missing inputs: proliphix
-    "prometheus" = ps: with ps; [ aiohttp-cors prometheus-client ];
-    "prosegur" = ps: with ps; [ pyprosegur ];
-    "prowl" = ps: with ps; [ ];
-    "proximity" = ps: with ps; [ ];
-    "proxmoxve" = ps: with ps; [ proxmoxer ];
-    "proxy" = ps: with ps; [ pillow ];
-    "ps4" = ps: with ps; [ ]; # missing inputs: pyps4-2ndscreen
-    "pulseaudio_loopback" = ps: with ps; [ pulsectl ];
-    "pure_energie" = ps: with ps; [ gridnet ];
-    "push" = ps: with ps; [ aiohttp-cors ];
-    "pushbullet" = ps: with ps; [ pushbullet ];
-    "pushover" = ps: with ps; [ pushover-complete ];
-    "pushsafer" = ps: with ps; [ ];
-    "pvoutput" = ps: with ps; [ pvo ];
-    "pvpc_hourly_pricing" = ps: with ps; [ aiopvpc ];
-    "pyload" = ps: with ps; [ ];
-    "python_script" = ps: with ps; [ restrictedpython ];
-    "qbittorrent" = ps: with ps; [ ]; # missing inputs: python-qbittorrent
-    "qld_bushfire" = ps: with ps; [ georss-qld-bushfire-alert-client ];
-    "qnap" = ps: with ps; [ ]; # missing inputs: qnapstats
-    "qrcode" = ps: with ps; [ pillow pyzbar ];
-    "quantum_gateway" = ps: with ps; [ quantum-gateway ];
-    "qvr_pro" = ps: with ps; [ pyqvrpro ];
-    "qwikswitch" = ps: with ps; [ ]; # missing inputs: pyqwikswitch
-    "rachio" = ps: with ps; [ pyturbojpeg aiohttp-cors hass-nabucasa rachiopy ];
-    "radarr" = ps: with ps; [ ];
-    "radio_browser" = ps: with ps; [ radios ];
-    "radiotherm" = ps: with ps; [ radiotherm ];
-    "rainbird" = ps: with ps; [ ]; # missing inputs: pyrainbird
-    "raincloud" = ps: with ps; [ ]; # missing inputs: raincloudy
-    "rainforest_eagle" = ps: with ps; [ aioeagle ueagle ];
-    "rainmachine" = ps: with ps; [ regenmaschine ];
-    "random" = ps: with ps; [ ];
-    "raspihats" = ps: with ps; [ smbus-cffi ]; # missing inputs: raspihats
-    "raspyrfm" = ps: with ps; [ ]; # missing inputs: raspyrfm-client
-    "rdw" = ps: with ps; [ vehicle ];
-    "recollect_waste" = ps: with ps; [ aiorecollect ];
-    "recorder" = ps: with ps; [ sqlalchemy ];
-    "recswitch" = ps: with ps; [ ]; # missing inputs: pyrecswitch
-    "reddit" = ps: with ps; [ praw ];
-    "rejseplanen" = ps: with ps; [ ]; # missing inputs: rjpl
-    "remember_the_milk" = ps: with ps; [ httplib2 ]; # missing inputs: RtmAPI
-    "remote" = ps: with ps; [ ];
-    "remote_rpi_gpio" = ps: with ps; [ ]; # missing inputs: gpiozero
-    "renault" = ps: with ps; [ renault-api ];
-    "repetier" = ps: with ps; [ ]; # missing inputs: pyrepetierng
-    "rest" = ps: with ps; [ jsonpath xmltodict ];
-    "rest_command" = ps: with ps; [ ];
-    "rflink" = ps: with ps; [ rflink ];
-    "rfxtrx" = ps: with ps; [ pyrfxtrx ];
-    "ridwell" = ps: with ps; [ aioridwell ];
-    "ring" = ps: with ps; [ ha-ffmpeg ring-doorbell ];
-    "ripple" = ps: with ps; [ ]; # missing inputs: python-ripple-api
-    "risco" = ps: with ps; [ pyrisco ];
-    "rituals_perfume_genie" = ps: with ps; [ pyrituals ];
-    "rmvtransport" = ps: with ps; [ pyrmvtransport ];
-    "rocketchat" = ps: with ps; [ ]; # missing inputs: rocketchat-API
-    "roku" = ps: with ps; [ rokuecp ];
-    "roomba" = ps: with ps; [ roombapy ];
-    "roon" = ps: with ps; [ roonapi ];
-    "route53" = ps: with ps; [ boto3 ];
-    "rova" = ps: with ps; [ ]; # missing inputs: rova
-    "rpi_camera" = ps: with ps; [ ];
-    "rpi_gpio" = ps: with ps; [ ]; # missing inputs: RPi.GPIO
-    "rpi_gpio_pwm" = ps: with ps; [ ]; # missing inputs: pwmled
-    "rpi_pfio" = ps: with ps; [ ]; # missing inputs: pifacecommon pifacedigitalio
-    "rpi_power" = ps: with ps; [ rpi-bad-power ];
-    "rpi_rf" = ps: with ps; [ ]; # missing inputs: RPi.GPIO rpi-rf
-    "rss_feed_template" = ps: with ps; [ aiohttp-cors ];
-    "rtorrent" = ps: with ps; [ ];
-    "rtsp_to_webrtc" = ps: with ps; [ pyturbojpeg aiohttp-cors rtsp-to-webrtc ];
-    "ruckus_unleashed" = ps: with ps; [ pyruckus ];
-    "russound_rio" = ps: with ps; [ ]; # missing inputs: russound_rio
-    "russound_rnet" = ps: with ps; [ ]; # missing inputs: russound
-    "sabnzbd" = ps: with ps; [ aiohttp-cors ifaddr netdisco zeroconf ]; # missing inputs: pysabnzbd
-    "safe_mode" = ps: with ps; [ pyturbojpeg aiohttp-cors hass-nabucasa home-assistant-frontend pillow sqlalchemy ];
-    "saj" = ps: with ps; [ ]; # missing inputs: pysaj
-    "samsungtv" = ps: with ps; [ getmac samsungctl samsungtvws wakeonlan ];
-    "satel_integra" = ps: with ps; [ ]; # missing inputs: satel_integra
-    "scene" = ps: with ps; [ ];
-    "schluter" = ps: with ps; [ ]; # missing inputs: py-schluter
-    "scrape" = ps: with ps; [ beautifulsoup4 jsonpath xmltodict ];
-    "screenlogic" = ps: with ps; [ screenlogicpy ];
-    "script" = ps: with ps; [ ];
-    "scsgate" = ps: with ps; [ ]; # missing inputs: scsgate
-    "search" = ps: with ps; [ aiohttp-cors ];
-    "season" = ps: with ps; [ ephem ];
-    "select" = ps: with ps; [ ];
-    "sendgrid" = ps: with ps; [ sendgrid ];
-    "sense" = ps: with ps; [ sense-energy ];
-    "sensehat" = ps: with ps; [ ]; # missing inputs: sense-hat
-    "senseme" = ps: with ps; [ aiosenseme ];
-    "sensibo" = ps: with ps; [ ]; # missing inputs: pysensibo
-    "sensor" = ps: with ps; [ sqlalchemy ];
-    "sentry" = ps: with ps; [ sentry-sdk ];
-    "serial" = ps: with ps; [ pyserial-asyncio ];
-    "serial_pm" = ps: with ps; [ pmsensor ];
-    "sesame" = ps: with ps; [ ]; # missing inputs: pysesame2
-    "seven_segments" = ps: with ps; [ pillow ];
-    "seventeentrack" = ps: with ps; [ py17track ];
-    "sharkiq" = ps: with ps; [ sharkiqpy ];
-    "shell_command" = ps: with ps; [ ];
-    "shelly" = ps: with ps; [ aioshelly ];
-    "shiftr" = ps: with ps; [ paho-mqtt ];
-    "shodan" = ps: with ps; [ shodan ];
-    "shopping_list" = ps: with ps; [ aiohttp-cors ];
-    "sht31" = ps: with ps; [ ]; # missing inputs: Adafruit-GPIO Adafruit-SHT31
-    "sia" = ps: with ps; [ pysiaalarm ];
-    "sigfox" = ps: with ps; [ ];
-    "sighthound" = ps: with ps; [ pillow simplehound ];
-    "signal_messenger" = ps: with ps; [ pysignalclirestapi ];
-    "simplepush" = ps: with ps; [ ]; # missing inputs: simplepush
-    "simplisafe" = ps: with ps; [ simplisafe-python ];
-    "simulated" = ps: with ps; [ ];
-    "sinch" = ps: with ps; [ ]; # missing inputs: clx-sdk-xms
-    "siren" = ps: with ps; [ ];
-    "sisyphus" = ps: with ps; [ ]; # missing inputs: sisyphus-control
-    "sky_hub" = ps: with ps; [ pyskyqhub ];
-    "skybeacon" = ps: with ps; [ pygatt ];
-    "skybell" = ps: with ps; [ skybellpy ];
-    "slack" = ps: with ps; [ slackclient ];
-    "sleepiq" = ps: with ps; [ asyncsleepiq ];
-    "slide" = ps: with ps; [ ]; # missing inputs: goslide-api
-    "sma" = ps: with ps; [ pysma ];
-    "smappee" = ps: with ps; [ aiohttp-cors pysmappee ];
-    "smart_meter_texas" = ps: with ps; [ smart-meter-texas ];
-    "smarthab" = ps: with ps; [ smarthab ];
-    "smartthings" = ps: with ps; [ pyturbojpeg aiohttp-cors hass-nabucasa pysmartapp pysmartthings ];
-    "smarttub" = ps: with ps; [ python-smarttub ];
-    "smarty" = ps: with ps; [ ]; # missing inputs: pysmarty
-    "smhi" = ps: with ps; [ smhi-pkg ];
-    "sms" = ps: with ps; [ python-gammu ];
-    "smtp" = ps: with ps; [ ];
-    "snapcast" = ps: with ps; [ snapcast ];
-    "snips" = ps: with ps; [ aiohttp-cors paho-mqtt ];
-    "snmp" = ps: with ps; [ pysnmp ];
-    "sochain" = ps: with ps; [ ]; # missing inputs: python-sochain-api
-    "solaredge" = ps: with ps; [ solaredge stringcase ];
-    "solaredge_local" = ps: with ps; [ ]; # missing inputs: solaredge-local
-    "solarlog" = ps: with ps; [ sunwatcher ];
-    "solax" = ps: with ps; [ solax ];
-    "soma" = ps: with ps; [ pysoma ];
-    "somfy" = ps: with ps; [ aiohttp-cors pymfy ];
-    "somfy_mylink" = ps: with ps; [ somfy-mylink-synergy ];
-    "sonarr" = ps: with ps; [ aiopyarr ];
-    "songpal" = ps: with ps; [ python-songpal ];
-    "sonos" = ps: with ps; [ aiohttp-cors async-upnp-client ifaddr plexapi plexauth plexwebsocket soco spotipy zeroconf ];
-    "sony_projector" = ps: with ps; [ pysdcp ];
-    "soundtouch" = ps: with ps; [ aiohttp-cors ifaddr libsoundtouch zeroconf ];
-    "spaceapi" = ps: with ps; [ aiohttp-cors ];
-    "spc" = ps: with ps; [ pyspcwebgw ];
-    "speedtestdotnet" = ps: with ps; [ speedtest-cli ];
-    "spider" = ps: with ps; [ spiderpy ];
-    "splunk" = ps: with ps; [ ]; # missing inputs: hass_splunk
-    "spotify" = ps: with ps; [ aiohttp-cors spotipy ];
-    "sql" = ps: with ps; [ sqlalchemy ];
-    "squeezebox" = ps: with ps; [ pysqueezebox ];
-    "srp_energy" = ps: with ps; [ srpenergy ];
-    "ssdp" = ps: with ps; [ aiohttp-cors async-upnp-client ifaddr zeroconf ];
-    "starline" = ps: with ps; [ starline ];
-    "starlingbank" = ps: with ps; [ ]; # missing inputs: starlingbank
-    "startca" = ps: with ps; [ xmltodict ];
-    "statistics" = ps: with ps; [ sqlalchemy ];
-    "statsd" = ps: with ps; [ statsd ];
-    "steam_online" = ps: with ps; [ ]; # missing inputs: steamodd
-    "steamist" = ps: with ps; [ aiohttp-cors aiosteamist discovery30303 ifaddr ];
-    "stiebel_eltron" = ps: with ps; [ pymodbus ]; # missing inputs: pystiebeleltron
-    "stookalert" = ps: with ps; [ ]; # missing inputs: stookalert
-    "stream" = ps: with ps; [ pyturbojpeg aiohttp-cors av ];
-    "streamlabswater" = ps: with ps; [ streamlabswater ];
-    "stt" = ps: with ps; [ aiohttp-cors ];
-    "subaru" = ps: with ps; [ subarulink ];
-    "suez_water" = ps: with ps; [ ]; # missing inputs: pysuez
-    "sun" = ps: with ps; [ ];
-    "supervisord" = ps: with ps; [ ];
-    "supla" = ps: with ps; [ ]; # missing inputs: asyncpysupla
-    "surepetcare" = ps: with ps; [ surepy ];
-    "swiss_hydrological_data" = ps: with ps; [ swisshydrodata ];
-    "swiss_public_transport" = ps: with ps; [ python-opendata-transport ];
-    "swisscom" = ps: with ps; [ ];
-    "switch" = ps: with ps; [ ];
-    "switchbot" = ps: with ps; [ pyswitchbot ];
-    "switcher_kis" = ps: with ps; [ aioswitcher ];
-    "switchmate" = ps: with ps; [ ]; # missing inputs: pySwitchmate
-    "syncthing" = ps: with ps; [ aiosyncthing ];
-    "syncthru" = ps: with ps; [ pysyncthru url-normalize ];
-    "synology_chat" = ps: with ps; [ ];
-    "synology_dsm" = ps: with ps; [ py-synologydsm-api ];
-    "synology_srm" = ps: with ps; [ ]; # missing inputs: synology-srm
-    "syslog" = ps: with ps; [ ];
-    "system_bridge" = ps: with ps; [ aiohttp-cors ifaddr systembridge zeroconf ];
-    "system_health" = ps: with ps; [ aiohttp-cors ];
-    "system_log" = ps: with ps; [ ];
-    "systemmonitor" = ps: with ps; [ psutil ];
-    "tado" = ps: with ps; [ python-tado ];
-    "tag" = ps: with ps; [ ];
-    "tailscale" = ps: with ps; [ tailscale ];
-    "tank_utility" = ps: with ps; [ ]; # missing inputs: tank_utility
-    "tankerkoenig" = ps: with ps; [ pytankerkoenig ];
-    "tapsaff" = ps: with ps; [ ]; # missing inputs: tapsaff
-    "tasmota" = ps: with ps; [ aiohttp-cors hatasmota paho-mqtt ];
-    "tautulli" = ps: with ps; [ pytautulli ];
-    "tcp" = ps: with ps; [ ];
-    "ted5000" = ps: with ps; [ xmltodict ];
-    "telegram" = ps: with ps; [ pysocks aiohttp-cors python-telegram-bot ];
-    "telegram_bot" = ps: with ps; [ pysocks aiohttp-cors python-telegram-bot ];
-    "tellduslive" = ps: with ps; [ tellduslive ];
-    "tellstick" = ps: with ps; [ ]; # missing inputs: tellcore-net tellcore-py
-    "telnet" = ps: with ps; [ ];
-    "temper" = ps: with ps; [ ]; # missing inputs: temperusb
-    "template" = ps: with ps; [ ];
-    "tensorflow" = ps: with ps; [ numpy pillow pycocotools tensorflow ]; # missing inputs: tf-models-official
-    "tesla_wall_connector" = ps: with ps; [ tesla-wall-connector ];
-    "tfiac" = ps: with ps; [ ]; # missing inputs: pytfiac
-    "thermoworks_smoke" = ps: with ps; [ stringcase ]; # missing inputs: thermoworks_smoke
-    "thethingsnetwork" = ps: with ps; [ ];
-    "thingspeak" = ps: with ps; [ ]; # missing inputs: thingspeak
-    "thinkingcleaner" = ps: with ps; [ ]; # missing inputs: pythinkingcleaner
-    "thomson" = ps: with ps; [ ];
-    "threshold" = ps: with ps; [ ];
-    "tibber" = ps: with ps; [ pytibber sqlalchemy ];
-    "tikteck" = ps: with ps; [ ]; # missing inputs: tikteck
-    "tile" = ps: with ps; [ pytile ];
-    "time_date" = ps: with ps; [ ];
-    "timer" = ps: with ps; [ ];
-    "tmb" = ps: with ps; [ tmb ];
-    "tod" = ps: with ps; [ ];
-    "todoist" = ps: with ps; [ todoist ];
-    "tof" = ps: with ps; [ ]; # missing inputs: RPi.GPIO VL53L1X2
-    "tolo" = ps: with ps; [ tololib ];
-    "tomato" = ps: with ps; [ ];
-    "toon" = ps: with ps; [ pyturbojpeg aiohttp-cors hass-nabucasa toonapi ];
-    "torque" = ps: with ps; [ aiohttp-cors ];
-    "totalconnect" = ps: with ps; [ total-connect-client ];
-    "touchline" = ps: with ps; [ ]; # missing inputs: pytouchline
-    "tplink" = ps: with ps; [ aiohttp-cors ifaddr python-kasa ];
-    "tplink_lte" = ps: with ps; [ ]; # missing inputs: tp-connected
-    "traccar" = ps: with ps; [ aiohttp-cors pytraccar stringcase ];
-    "trace" = ps: with ps; [ ];
-    "tractive" = ps: with ps; [ aiotractive ];
-    "tradfri" = ps: with ps; [ pytradfri ];
-    "trafikverket_train" = ps: with ps; [ pytrafikverket ];
-    "trafikverket_weatherstation" = ps: with ps; [ pytrafikverket ];
-    "transmission" = ps: with ps; [ transmissionrpc ];
-    "transport_nsw" = ps: with ps; [ pytransportnsw ];
-    "travisci" = ps: with ps; [ ]; # missing inputs: TravisPy
-    "trend" = ps: with ps; [ numpy ];
-    "tts" = ps: with ps; [ aiohttp-cors mutagen ];
-    "tuya" = ps: with ps; [ ha-ffmpeg tuya-iot-py-sdk ];
-    "twentemilieu" = ps: with ps; [ twentemilieu ];
-    "twilio" = ps: with ps; [ aiohttp-cors twilio ];
-    "twilio_call" = ps: with ps; [ aiohttp-cors twilio ];
-    "twilio_sms" = ps: with ps; [ aiohttp-cors twilio ];
-    "twinkly" = ps: with ps; [ ttls ];
-    "twitch" = ps: with ps; [ twitchapi ];
-    "twitter" = ps: with ps; [ twitterapi ];
-    "ubus" = ps: with ps; [ openwrt-ubus-rpc ];
-    "ue_smart_radio" = ps: with ps; [ ];
-    "uk_transport" = ps: with ps; [ ];
-    "unifi" = ps: with ps; [ aiounifi ];
-    "unifi_direct" = ps: with ps; [ pexpect ];
-    "unifiled" = ps: with ps; [ unifiled ];
-    "unifiprotect" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pyunifiprotect unifi-discovery
-    "universal" = ps: with ps; [ ];
-    "upb" = ps: with ps; [ upb-lib ];
-    "upc_connect" = ps: with ps; [ connect-box ];
-    "upcloud" = ps: with ps; [ upcloud-api ];
-    "updater" = ps: with ps; [ ];
-    "upnp" = ps: with ps; [ aiohttp-cors async-upnp-client ifaddr zeroconf ];
-    "uptime" = ps: with ps; [ ];
-    "uptimerobot" = ps: with ps; [ pyuptimerobot ];
-    "usb" = ps: with ps; [ aiohttp-cors pyserial pyudev ];
-    "uscis" = ps: with ps; [ ]; # missing inputs: uscisstatus
-    "usgs_earthquakes_feed" = ps: with ps; [ geojson-client ];
-    "utility_meter" = ps: with ps; [ croniter ];
-    "uvc" = ps: with ps; [ uvcclient ];
-    "vacuum" = ps: with ps; [ ];
-    "vallox" = ps: with ps; [ ]; # missing inputs: vallox-websocket-api
-    "vasttrafik" = ps: with ps; [ ]; # missing inputs: vtjp
-    "velbus" = ps: with ps; [ aiohttp-cors pyserial pyudev velbus-aio ];
-    "velux" = ps: with ps; [ pyvlx ];
-    "venstar" = ps: with ps; [ venstarcolortouch ];
-    "vera" = ps: with ps; [ pyvera ];
-    "verisure" = ps: with ps; [ vsure ];
-    "versasense" = ps: with ps; [ pyversasense ];
-    "version" = ps: with ps; [ pyhaversion ];
-    "vesync" = ps: with ps; [ pyvesync ];
-    "viaggiatreno" = ps: with ps; [ ];
-    "vicare" = ps: with ps; [ pyvicare ];
-    "vilfo" = ps: with ps; [ vilfo-api-client ];
-    "vivotek" = ps: with ps; [ libpyvivotek ];
-    "vizio" = ps: with ps; [ pyvizio ];
-    "vlc" = ps: with ps; [ python-vlc ];
-    "vlc_telnet" = ps: with ps; [ aiovlc ];
-    "voicerss" = ps: with ps; [ ];
-    "volkszaehler" = ps: with ps; [ volkszaehler ];
-    "volumio" = ps: with ps; [ pyvolumio ];
-    "volvooncall" = ps: with ps; [ volvooncall ];
-    "vultr" = ps: with ps; [ vultr ];
-    "w800rf32" = ps: with ps; [ ]; # missing inputs: pyW800rf32
-    "wake_on_lan" = ps: with ps; [ wakeonlan ];
-    "wallbox" = ps: with ps; [ wallbox ];
-    "waqi" = ps: with ps; [ waqiasync ];
-    "water_heater" = ps: with ps; [ ];
-    "waterfurnace" = ps: with ps; [ waterfurnace ];
-    "watson_iot" = ps: with ps; [ ]; # missing inputs: ibmiotf
-    "watson_tts" = ps: with ps; [ ibm-watson ];
-    "watttime" = ps: with ps; [ aiowatttime ];
-    "waze_travel_time" = ps: with ps; [ wazeroutecalculator ];
-    "weather" = ps: with ps; [ ];
-    "webhook" = ps: with ps; [ aiohttp-cors ];
-    "webostv" = ps: with ps; [ aiowebostv sqlalchemy ];
-    "websocket_api" = ps: with ps; [ aiohttp-cors ];
-    "wemo" = ps: with ps; [ pywemo ];
-    "whirlpool" = ps: with ps; [ whirlpool-sixth-sense ];
-    "whois" = ps: with ps; [ whois ];
-    "wiffi" = ps: with ps; [ wiffi ];
-    "wilight" = ps: with ps; [ pywilight ];
-    "wirelesstag" = ps: with ps; [ ]; # missing inputs: wirelesstagpy
-    "withings" = ps: with ps; [ aiohttp-cors ]; # missing inputs: withings-api
-    "wiz" = ps: with ps; [ aiohttp-cors ifaddr pywizlight ];
-    "wled" = ps: with ps; [ wled ];
-    "wolflink" = ps: with ps; [ ]; # missing inputs: wolf_smartset
-    "workday" = ps: with ps; [ holidays ];
-    "worldclock" = ps: with ps; [ ];
-    "worldtidesinfo" = ps: with ps; [ ];
-    "worxlandroid" = ps: with ps; [ ];
-    "wsdot" = ps: with ps; [ ];
-    "x10" = ps: with ps; [ ];
-    "xbox" = ps: with ps; [ aiohttp-cors xbox-webapi ];
-    "xbox_live" = ps: with ps; [ xboxapi ];
-    "xeoma" = ps: with ps; [ pyxeoma ];
-    "xiaomi" = ps: with ps; [ ha-ffmpeg ];
-    "xiaomi_aqara" = ps: with ps; [ pyxiaomigateway aiohttp-cors ifaddr netdisco zeroconf ];
-    "xiaomi_miio" = ps: with ps; [ construct micloud python-miio ];
-    "xiaomi_tv" = ps: with ps; [ pymitv ];
-    "xmpp" = ps: with ps; [ slixmpp ];
-    "xs1" = ps: with ps; [ ]; # missing inputs: xs1-api-client
-    "yale_smart_alarm" = ps: with ps; [ yalesmartalarmclient ];
-    "yamaha" = ps: with ps; [ rxv ];
-    "yamaha_musiccast" = ps: with ps; [ aiohttp-cors aiomusiccast async-upnp-client ifaddr zeroconf ];
-    "yandex_transport" = ps: with ps; [ aioymaps ];
-    "yandextts" = ps: with ps; [ ];
-    "yeelight" = ps: with ps; [ aiohttp-cors async-upnp-client ifaddr yeelight zeroconf ];
-    "yeelightsunflower" = ps: with ps; [ ]; # missing inputs: yeelightsunflower
-    "yi" = ps: with ps; [ aioftp ha-ffmpeg ];
-    "youless" = ps: with ps; [ youless-api ];
-    "zabbix" = ps: with ps; [ py-zabbix ];
-    "zamg" = ps: with ps; [ ];
-    "zengge" = ps: with ps; [ ]; # missing inputs: zengge
-    "zeroconf" = ps: with ps; [ aiohttp-cors ifaddr zeroconf ];
-    "zerproc" = ps: with ps; [ pyzerproc ];
-    "zestimate" = ps: with ps; [ xmltodict ];
-    "zha" = ps: with ps; [ aiohttp-cors bellows ifaddr pyserial-asyncio pyserial pyudev zeroconf zha-quirks zigpy-deconz zigpy-xbee zigpy-zigate zigpy-znp zigpy ];
-    "zhong_hong" = ps: with ps; [ ]; # missing inputs: zhong_hong_hvac
-    "ziggo_mediabox_xl" = ps: with ps; [ ]; # missing inputs: ziggo-mediabox-xl
-    "zodiac" = ps: with ps; [ ];
-    "zone" = ps: with ps; [ ];
-    "zoneminder" = ps: with ps; [ zm-py ];
-    "zwave" = ps: with ps; [ homeassistant-pyozw pydispatcher ];
-    "zwave_js" = ps: with ps; [ aiohttp-cors pyserial pyudev zwave-js-server-python ];
-    "zwave_me" = ps: with ps; [ aiohttp-cors ifaddr url-normalize zeroconf ]; # missing inputs: zwave_me_ws
+    "abode" = ps: with ps; [
+      abodepy
+    ];
+    "accuweather" = ps: with ps; [
+      accuweather
+    ];
+    "acer_projector" = ps: with ps; [
+      pyserial
+    ];
+    "acmeda" = ps: with ps; [
+      aiopulse
+    ];
+    "actiontec" = ps: with ps; [
+    ];
+    "adax" = ps: with ps; [
+      adax-local
+      adax
+    ];
+    "adguard" = ps: with ps; [
+      adguardhome
+    ];
+    "ads" = ps: with ps; [
+      pyads
+    ];
+    "advantage_air" = ps: with ps; [
+      advantage-air
+    ];
+    "aemet" = ps: with ps; [
+      aemet-opendata
+    ];
+    "aftership" = ps: with ps; [
+      pyaftership
+    ];
+    "agent_dvr" = ps: with ps; [
+      agent-py
+    ];
+    "air_quality" = ps: with ps; [
+    ];
+    "airly" = ps: with ps; [
+      airly
+    ];
+    "airnow" = ps: with ps; [
+      pyairnow
+    ];
+    "airthings" = ps: with ps; [
+      airthings-cloud
+    ];
+    "airtouch4" = ps: with ps; [
+      airtouch4pyapi
+    ];
+    "airvisual" = ps: with ps; [
+      pyairvisual
+    ];
+    "airzone" = ps: with ps; [
+      aioairzone
+    ];
+    "aladdin_connect" = ps: with ps; [
+      aladdin-connect
+    ];
+    "alarm_control_panel" = ps: with ps; [
+    ];
+    "alarmdecoder" = ps: with ps; [
+      adext
+    ];
+    "alert" = ps: with ps; [
+    ];
+    "alexa" = ps: with ps; [
+      pyturbojpeg
+      aiohttp-cors
+    ];
+    "almond" = ps: with ps; [
+      aiohttp-cors
+      pyalmond
+    ];
+    "alpha_vantage" = ps: with ps; [
+      alpha-vantage
+    ];
+    "amazon_polly" = ps: with ps; [
+      boto3
+    ];
+    "ambee" = ps: with ps; [
+      ambee
+    ];
+    "amberelectric" = ps: with ps; [
+      amberelectric
+    ];
+    "ambiclimate" = ps: with ps; [
+      aiohttp-cors
+      ambiclimate
+    ];
+    "ambient_station" = ps: with ps; [
+      aioambient
+    ];
+    "amcrest" = ps: with ps; [
+      amcrest
+      ha-ffmpeg
+    ];
+    "ampio" = ps: with ps; [
+      asmog
+    ];
+    "analytics" = ps: with ps; [
+      aiohttp-cors
+      fnvhash
+      lru-dict
+      sqlalchemy
+    ];
+    "android_ip_webcam" = ps: with ps; [
+      pydroid-ipcam
+    ];
+    "androidtv" = ps: with ps; [
+      adb-shell
+      androidtv
+      pure-python-adb
+    ]
+    ++ adb-shell.extras-require.async
+    ++ androidtv.extras-require.async
+    ++ pure-python-adb.extras-require.async;
+    "anel_pwrctrl" = ps: with ps; [
+    ]; # missing inputs: anel_pwrctrl-homeassistant
+    "anthemav" = ps: with ps; [
+    ]; # missing inputs: anthemav
+    "apache_kafka" = ps: with ps; [
+      aiokafka
+    ];
+    "apcupsd" = ps: with ps; [
+      apcaccess
+    ];
+    "api" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "apple_tv" = ps: with ps; [
+      aiohttp-cors
+      ifaddr
+      pyatv
+      zeroconf
+    ];
+    "apprise" = ps: with ps; [
+      apprise
+    ];
+    "aprs" = ps: with ps; [
+      aprslib
+      geopy
+    ];
+    "aqualogic" = ps: with ps; [
+      aqualogic
+    ];
+    "aquostv" = ps: with ps; [
+    ]; # missing inputs: sharp_aquos_rc
+    "arcam_fmj" = ps: with ps; [
+      arcam-fmj
+    ];
+    "arest" = ps: with ps; [
+    ];
+    "arlo" = ps: with ps; [
+      ha-ffmpeg
+      pyarlo
+    ];
+    "arris_tg2492lg" = ps: with ps; [
+      arris-tg2492lg
+    ];
+    "aruba" = ps: with ps; [
+      pexpect
+    ];
+    "arwn" = ps: with ps; [
+      aiohttp-cors
+      paho-mqtt
+    ];
+    "aseko_pool_live" = ps: with ps; [
+      aioaseko
+    ];
+    "asterisk_cdr" = ps: with ps; [
+      asterisk-mbox
+    ];
+    "asterisk_mbox" = ps: with ps; [
+      asterisk-mbox
+    ];
+    "asuswrt" = ps: with ps; [
+      aioasuswrt
+    ];
+    "atag" = ps: with ps; [
+      pyatag
+    ];
+    "aten_pe" = ps: with ps; [
+      atenpdu
+    ];
+    "atome" = ps: with ps; [
+      pyatome
+    ];
+    "august" = ps: with ps; [
+      yalexs
+    ];
+    "aurora" = ps: with ps; [
+      auroranoaa
+    ];
+    "aurora_abb_powerone" = ps: with ps; [
+      aurorapy
+    ];
+    "aussie_broadband" = ps: with ps; [
+      pyaussiebb
+    ];
+    "auth" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "automation" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "avea" = ps: with ps; [
+      avea
+    ];
+    "avion" = ps: with ps; [
+      avion
+    ];
+    "awair" = ps: with ps; [
+      python-awair
+    ];
+    "aws" = ps: with ps; [
+      aiobotocore
+    ];
+    "axis" = ps: with ps; [
+      aiohttp-cors
+      axis
+      paho-mqtt
+    ];
+    "azure_devops" = ps: with ps; [
+      aioazuredevops
+    ];
+    "azure_event_hub" = ps: with ps; [
+      azure-eventhub
+    ];
+    "azure_service_bus" = ps: with ps; [
+      azure-servicebus
+    ];
+    "backup" = ps: with ps; [
+      aiohttp-cors
+      securetar
+    ];
+    "baidu" = ps: with ps; [
+    ]; # missing inputs: baidu-aip
+    "balboa" = ps: with ps; [
+      pybalboa
+    ];
+    "bayesian" = ps: with ps; [
+    ];
+    "bbox" = ps: with ps; [
+    ]; # missing inputs: pybbox
+    "beewi_smartclim" = ps: with ps; [
+    ]; # missing inputs: beewi_smartclim
+    "binary_sensor" = ps: with ps; [
+    ];
+    "bitcoin" = ps: with ps; [
+      blockchain
+    ];
+    "bizkaibus" = ps: with ps; [
+      bizkaibus
+    ];
+    "blackbird" = ps: with ps; [
+      pyblackbird
+    ];
+    "blebox" = ps: with ps; [
+      blebox-uniapi
+    ];
+    "blink" = ps: with ps; [
+      blinkpy
+    ];
+    "blinksticklight" = ps: with ps; [
+      BlinkStick
+    ];
+    "blockchain" = ps: with ps; [
+    ]; # missing inputs: python-blockchain-api
+    "bloomsky" = ps: with ps; [
+    ];
+    "blueprint" = ps: with ps; [
+    ];
+    "bluesound" = ps: with ps; [
+      xmltodict
+    ];
+    "bluetooth_le_tracker" = ps: with ps; [
+      pygatt
+    ]
+    ++ pygatt.extras-require.GATTTOOL;
+    "bluetooth_tracker" = ps: with ps; [
+      bt-proximity
+      pybluez
+    ];
+    "bmw_connected_drive" = ps: with ps; [
+      bimmer-connected
+    ];
+    "bond" = ps: with ps; [
+      bond-api
+    ];
+    "bosch_shc" = ps: with ps; [
+      aiohttp-cors
+      boschshcpy
+      ifaddr
+      zeroconf
+    ];
+    "braviatv" = ps: with ps; [
+      bravia-tv
+    ];
+    "broadlink" = ps: with ps; [
+      broadlink
+    ];
+    "brother" = ps: with ps; [
+      brother
+    ];
+    "brottsplatskartan" = ps: with ps; [
+      brottsplatskartan
+    ];
+    "browser" = ps: with ps; [
+    ];
+    "brunt" = ps: with ps; [
+    ]; # missing inputs: brunt
+    "bsblan" = ps: with ps; [
+      bsblan
+    ];
+    "bt_home_hub_5" = ps: with ps; [
+    ]; # missing inputs: bthomehub5-devicelist
+    "bt_smarthub" = ps: with ps; [
+    ]; # missing inputs: btsmarthub_devicelist
+    "buienradar" = ps: with ps; [
+      buienradar
+    ];
+    "button" = ps: with ps; [
+    ];
+    "caldav" = ps: with ps; [
+      caldav
+    ];
+    "calendar" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "camera" = ps: with ps; [
+      pyturbojpeg
+      aiohttp-cors
+    ];
+    "canary" = ps: with ps; [
+      ha-ffmpeg
+      py-canary
+    ];
+    "cast" = ps: with ps; [
+      pyturbojpeg
+      aiohttp-cors
+      hass-nabucasa
+      ifaddr
+      mutagen
+      plexapi
+      plexauth
+      plexwebsocket
+      PyChromecast
+      zeroconf
+    ];
+    "cert_expiry" = ps: with ps; [
+    ];
+    "channels" = ps: with ps; [
+      pychannels
+    ];
+    "circuit" = ps: with ps; [
+      circuit-webhook
+    ];
+    "cisco_ios" = ps: with ps; [
+      pexpect
+    ];
+    "cisco_mobility_express" = ps: with ps; [
+      ciscomobilityexpress
+    ];
+    "cisco_webex_teams" = ps: with ps; [
+      webexteamssdk
+    ];
+    "citybikes" = ps: with ps; [
+    ];
+    "clementine" = ps: with ps; [
+    ]; # missing inputs: python-clementine-remote
+    "clickatell" = ps: with ps; [
+    ];
+    "clicksend" = ps: with ps; [
+    ];
+    "clicksend_tts" = ps: with ps; [
+    ];
+    "climacell" = ps: with ps; [
+      pyclimacell
+      pytomorrowio
+    ];
+    "climate" = ps: with ps; [
+    ];
+    "cloud" = ps: with ps; [
+      pyturbojpeg
+      aiohttp-cors
+      hass-nabucasa
+    ];
+    "cloudflare" = ps: with ps; [
+      pycfdns
+    ];
+    "cmus" = ps: with ps; [
+    ]; # missing inputs: pycmus
+    "co2signal" = ps: with ps; [
+      co2signal
+    ];
+    "coinbase" = ps: with ps; [
+    ]; # missing inputs: coinbase
+    "color_extractor" = ps: with ps; [
+      colorthief
+    ];
+    "comed_hourly_pricing" = ps: with ps; [
+    ];
+    "comfoconnect" = ps: with ps; [
+      pycomfoconnect
+    ];
+    "command_line" = ps: with ps; [
+    ];
+    "compensation" = ps: with ps; [
+      numpy
+    ];
+    "concord232" = ps: with ps; [
+    ]; # missing inputs: concord232
+    "config" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "configurator" = ps: with ps; [
+    ];
+    "control4" = ps: with ps; [
+      pycontrol4
+    ];
+    "conversation" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "coolmaster" = ps: with ps; [
+      pycoolmasternet-async
+    ];
+    "coronavirus" = ps: with ps; [
+      coronavirus
+    ];
+    "counter" = ps: with ps; [
+    ];
+    "cover" = ps: with ps; [
+    ];
+    "cppm_tracker" = ps: with ps; [
+    ]; # missing inputs: clearpasspy
+    "cpuspeed" = ps: with ps; [
+      py-cpuinfo
+    ];
+    "crownstone" = ps: with ps; [
+      aiohttp-cors
+      crownstone-cloud
+      crownstone-sse
+      crownstone-uart
+      pyserial
+      pyudev
+    ];
+    "cups" = ps: with ps; [
+      pycups
+    ];
+    "currencylayer" = ps: with ps; [
+    ];
+    "daikin" = ps: with ps; [
+      pydaikin
+    ];
+    "danfoss_air" = ps: with ps; [
+      pydanfossair
+    ];
+    "darksky" = ps: with ps; [
+      python-forecastio
+    ];
+    "datadog" = ps: with ps; [
+      datadog
+    ];
+    "ddwrt" = ps: with ps; [
+    ];
+    "debugpy" = ps: with ps; [
+      debugpy
+    ];
+    "deconz" = ps: with ps; [
+      pydeconz
+    ];
+    "decora" = ps: with ps; [
+      bluepy
+    ]; # missing inputs: decora
+    "decora_wifi" = ps: with ps; [
+    ]; # missing inputs: decora_wifi
+    "default_config" = ps: with ps; [
+      pynacl
+      pyturbojpeg
+      aiodiscover
+      aiohttp-cors
+      async-upnp-client
+      fnvhash
+      hass-nabucasa
+      home-assistant-frontend
+      ifaddr
+      lru-dict
+      pillow
+      pyserial
+      pyudev
+      scapy
+      sqlalchemy
+      zeroconf
+    ];
+    "delijn" = ps: with ps; [
+      pydelijn
+    ];
+    "deluge" = ps: with ps; [
+      deluge-client
+    ];
+    "demo" = ps: with ps; [
+      aiohttp-cors
+      fnvhash
+      lru-dict
+      sqlalchemy
+    ];
+    "denon" = ps: with ps; [
+    ];
+    "denonavr" = ps: with ps; [
+      denonavr
+    ];
+    "derivative" = ps: with ps; [
+    ];
+    "deutsche_bahn" = ps: with ps; [
+      schiene
+    ];
+    "device_automation" = ps: with ps; [
+    ];
+    "device_sun_light_trigger" = ps: with ps; [
+      aiohttp-cors
+      pillow
+    ];
+    "device_tracker" = ps: with ps; [
+    ];
+    "devolo_home_control" = ps: with ps; [
+      aiohttp-cors
+      devolo-home-control-api
+      ifaddr
+      zeroconf
+    ];
+    "devolo_home_network" = ps: with ps; [
+      devolo-plc-api
+    ];
+    "dexcom" = ps: with ps; [
+      pydexcom
+    ];
+    "dhcp" = ps: with ps; [
+      aiodiscover
+      scapy
+    ];
+    "diagnostics" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "dialogflow" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "digital_ocean" = ps: with ps; [
+      digital-ocean
+    ];
+    "digitalloggers" = ps: with ps; [
+    ]; # missing inputs: dlipower
+    "directv" = ps: with ps; [
+      directv
+    ];
+    "discogs" = ps: with ps; [
+      discogs-client
+    ];
+    "discord" = ps: with ps; [
+      nextcord
+    ];
+    "discovery" = ps: with ps; [
+      aiohttp-cors
+      ifaddr
+      netdisco
+      zeroconf
+    ];
+    "dlib_face_detect" = ps: with ps; [
+      face_recognition
+    ];
+    "dlib_face_identify" = ps: with ps; [
+      face_recognition
+    ];
+    "dlink" = ps: with ps; [
+    ]; # missing inputs: pyW215
+    "dlna_dmr" = ps: with ps; [
+      aiohttp-cors
+      async-upnp-client
+      ifaddr
+      zeroconf
+    ];
+    "dlna_dms" = ps: with ps; [
+      aiohttp-cors
+      async-upnp-client
+      ifaddr
+      zeroconf
+    ];
+    "dnsip" = ps: with ps; [
+      aiodns
+    ];
+    "dominos" = ps: with ps; [
+      aiohttp-cors
+    ]; # missing inputs: pizzapi
+    "doods" = ps: with ps; [
+      pillow
+      pydoods
+    ];
+    "doorbird" = ps: with ps; [
+      aiohttp-cors
+      doorbirdpy
+    ];
+    "dovado" = ps: with ps; [
+    ]; # missing inputs: dovado
+    "downloader" = ps: with ps; [
+    ];
+    "dsmr" = ps: with ps; [
+      dsmr-parser
+    ];
+    "dsmr_reader" = ps: with ps; [
+      aiohttp-cors
+      paho-mqtt
+    ];
+    "dte_energy_bridge" = ps: with ps; [
+    ];
+    "dublin_bus_transport" = ps: with ps; [
+    ];
+    "duckdns" = ps: with ps; [
+    ];
+    "dunehd" = ps: with ps; [
+      pdunehd
+    ];
+    "dwd_weather_warnings" = ps: with ps; [
+      dwdwfsapi
+    ];
+    "dweet" = ps: with ps; [
+    ]; # missing inputs: dweepy
+    "dynalite" = ps: with ps; [
+      dynalite-devices
+    ];
+    "eafm" = ps: with ps; [
+      aioeafm
+    ];
+    "ebox" = ps: with ps; [
+    ]; # missing inputs: pyebox
+    "ebusd" = ps: with ps; [
+    ]; # missing inputs: ebusdpy
+    "ecoal_boiler" = ps: with ps; [
+      ecoaliface
+    ];
+    "ecobee" = ps: with ps; [
+      python-ecobee-api
+    ];
+    "econet" = ps: with ps; [
+      pyeconet
+    ];
+    "ecovacs" = ps: with ps; [
+    ]; # missing inputs: sucks
+    "eddystone_temperature" = ps: with ps; [
+      construct
+    ]; # missing inputs: beacontools
+    "edimax" = ps: with ps; [
+      pyedimax
+    ];
+    "edl21" = ps: with ps; [
+      pysml
+    ];
+    "efergy" = ps: with ps; [
+      pyefergy
+    ];
+    "egardia" = ps: with ps; [
+      pythonegardia
+    ];
+    "eight_sleep" = ps: with ps; [
+      pyeight
+    ];
+    "elgato" = ps: with ps; [
+      elgato
+    ];
+    "eliqonline" = ps: with ps; [
+      eliqonline
+    ];
+    "elkm1" = ps: with ps; [
+      aiohttp-cors
+      elkm1-lib
+      ifaddr
+    ];
+    "elmax" = ps: with ps; [
+      elmax-api
+    ];
+    "elv" = ps: with ps; [
+      pypca
+    ];
+    "emby" = ps: with ps; [
+      pyemby
+    ];
+    "emoncms" = ps: with ps; [
+    ];
+    "emoncms_history" = ps: with ps; [
+    ];
+    "emonitor" = ps: with ps; [
+      aioemonitor
+    ];
+    "emulated_hue" = ps: with ps; [
+      aiohttp-cors
+      ifaddr
+    ];
+    "emulated_kasa" = ps: with ps; [
+      sense-energy
+    ];
+    "emulated_roku" = ps: with ps; [
+      aiohttp-cors
+      emulated-roku
+      ifaddr
+    ];
+    "energy" = ps: with ps; [
+      aiohttp-cors
+      fnvhash
+      lru-dict
+      sqlalchemy
+    ];
+    "enigma2" = ps: with ps; [
+      openwebifpy
+    ];
+    "enocean" = ps: with ps; [
+      enocean
+    ];
+    "enphase_envoy" = ps: with ps; [
+      envoy-reader
+    ];
+    "entur_public_transport" = ps: with ps; [
+      enturclient
+    ];
+    "environment_canada" = ps: with ps; [
+      env-canada
+    ];
+    "envisalink" = ps: with ps; [
+      pyenvisalink
+    ];
+    "ephember" = ps: with ps; [
+      pyephember
+    ];
+    "epson" = ps: with ps; [
+      epson-projector
+    ];
+    "epsonworkforce" = ps: with ps; [
+    ]; # missing inputs: epsonprinter
+    "eq3btsmart" = ps: with ps; [
+      construct
+    ]; # missing inputs: python-eq3bt
+    "esphome" = ps: with ps; [
+      aioesphomeapi
+      aiohttp-cors
+      ifaddr
+      zeroconf
+    ];
+    "etherscan" = ps: with ps; [
+    ]; # missing inputs: python-etherscan-api
+    "eufy" = ps: with ps; [
+    ]; # missing inputs: lakeside
+    "everlights" = ps: with ps; [
+      pyeverlights
+    ];
+    "evil_genius_labs" = ps: with ps; [
+      pyevilgenius
+    ];
+    "evohome" = ps: with ps; [
+      evohome-async
+    ];
+    "ezviz" = ps: with ps; [
+      ha-ffmpeg
+      pyezviz
+    ];
+    "faa_delays" = ps: with ps; [
+      faadelays
+    ];
+    "facebook" = ps: with ps; [
+    ];
+    "facebox" = ps: with ps; [
+    ];
+    "fail2ban" = ps: with ps; [
+    ];
+    "familyhub" = ps: with ps; [
+      python-family-hub-local
+    ];
+    "fan" = ps: with ps; [
+    ];
+    "fastdotcom" = ps: with ps; [
+    ]; # missing inputs: fastdotcom
+    "feedreader" = ps: with ps; [
+      feedparser
+    ];
+    "ffmpeg" = ps: with ps; [
+      ha-ffmpeg
+    ];
+    "ffmpeg_motion" = ps: with ps; [
+      ha-ffmpeg
+    ];
+    "ffmpeg_noise" = ps: with ps; [
+      ha-ffmpeg
+    ];
+    "fibaro" = ps: with ps; [
+      fiblary3-fork
+    ];
+    "fido" = ps: with ps; [
+      pyfido
+    ];
+    "file" = ps: with ps; [
+    ];
+    "filesize" = ps: with ps; [
+    ];
+    "filter" = ps: with ps; [
+      fnvhash
+      lru-dict
+      sqlalchemy
+    ];
+    "fints" = ps: with ps; [
+      fints
+    ];
+    "fireservicerota" = ps: with ps; [
+      pyfireservicerota
+    ];
+    "firmata" = ps: with ps; [
+      pymata-express
+    ];
+    "fitbit" = ps: with ps; [
+      aiohttp-cors
+      fitbit
+    ];
+    "fivem" = ps: with ps; [
+      fivem-api
+    ];
+    "fixer" = ps: with ps; [
+      fixerio
+    ];
+    "fjaraskupan" = ps: with ps; [
+      fjaraskupan
+    ];
+    "fleetgo" = ps: with ps; [
+      ritassist
+    ];
+    "flexit" = ps: with ps; [
+      pymodbus
+    ];
+    "flic" = ps: with ps; [
+      pyflic
+    ];
+    "flick_electric" = ps: with ps; [
+      pyflick
+    ];
+    "flipr" = ps: with ps; [
+      flipr-api
+    ];
+    "flo" = ps: with ps; [
+      aioflo
+    ];
+    "flock" = ps: with ps; [
+    ];
+    "flume" = ps: with ps; [
+      pyflume
+    ];
+    "flunearyou" = ps: with ps; [
+      pyflunearyou
+    ];
+    "flux" = ps: with ps; [
+    ];
+    "flux_led" = ps: with ps; [
+      aiohttp-cors
+      flux-led
+      ifaddr
+    ];
+    "folder" = ps: with ps; [
+    ];
+    "folder_watcher" = ps: with ps; [
+      watchdog
+    ];
+    "foobot" = ps: with ps; [
+      foobot-async
+    ];
+    "forecast_solar" = ps: with ps; [
+      forecast-solar
+    ];
+    "forked_daapd" = ps: with ps; [
+    ]; # missing inputs: pyforked-daapd pylibrespot-java
+    "fortios" = ps: with ps; [
+      fortiosapi
+    ];
+    "foscam" = ps: with ps; [
+      libpyfoscam
+    ];
+    "foursquare" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "free_mobile" = ps: with ps; [
+    ]; # missing inputs: freesms
+    "freebox" = ps: with ps; [
+      freebox-api
+    ];
+    "freedns" = ps: with ps; [
+    ];
+    "freedompro" = ps: with ps; [
+      pyfreedompro
+    ];
+    "fritz" = ps: with ps; [
+      aiohttp-cors
+      fritzconnection
+      ifaddr
+      xmltodict
+    ];
+    "fritzbox" = ps: with ps; [
+      pyfritzhome
+    ];
+    "fritzbox_callmonitor" = ps: with ps; [
+      fritzconnection
+    ];
+    "fronius" = ps: with ps; [
+      pyfronius
+    ];
+    "frontend" = ps: with ps; [
+      aiohttp-cors
+      fnvhash
+      home-assistant-frontend
+      lru-dict
+      pillow
+      sqlalchemy
+    ];
+    "frontier_silicon" = ps: with ps; [
+      afsapi
+    ];
+    "futurenow" = ps: with ps; [
+      pyfnip
+    ];
+    "garadget" = ps: with ps; [
+    ];
+    "garages_amsterdam" = ps: with ps; [
+      garages-amsterdam
+    ];
+    "gc100" = ps: with ps; [
+    ]; # missing inputs: python-gc100
+    "gdacs" = ps: with ps; [
+      aio-georss-gdacs
+    ];
+    "generic" = ps: with ps; [
+      av
+      pillow
+    ];
+    "generic_hygrostat" = ps: with ps; [
+    ];
+    "generic_thermostat" = ps: with ps; [
+      fnvhash
+      lru-dict
+      sqlalchemy
+    ];
+    "geniushub" = ps: with ps; [
+      geniushub-client
+    ];
+    "geo_json_events" = ps: with ps; [
+      aio-geojson-generic-client
+    ];
+    "geo_location" = ps: with ps; [
+    ];
+    "geo_rss_events" = ps: with ps; [
+      georss-generic-client
+    ];
+    "geofency" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "geonetnz_quakes" = ps: with ps; [
+      aio-geojson-geonetnz-quakes
+    ];
+    "geonetnz_volcano" = ps: with ps; [
+      aio-geojson-geonetnz-volcano
+    ];
+    "gios" = ps: with ps; [
+      gios
+    ];
+    "github" = ps: with ps; [
+      aiogithubapi
+    ];
+    "gitlab_ci" = ps: with ps; [
+      python-gitlab
+    ];
+    "gitter" = ps: with ps; [
+    ]; # missing inputs: gitterpy
+    "glances" = ps: with ps; [
+      glances-api
+    ];
+    "goalfeed" = ps: with ps; [
+    ]; # missing inputs: pysher
+    "goalzero" = ps: with ps; [
+      goalzero
+    ];
+    "gogogate2" = ps: with ps; [
+      ismartgate
+    ];
+    "goodwe" = ps: with ps; [
+      goodwe
+    ];
+    "google" = ps: with ps; [
+      aiohttp-cors
+      google-api-python-client
+      httplib2
+      oauth2client
+    ];
+    "google_assistant" = ps: with ps; [
+      pyturbojpeg
+      aiohttp-cors
+    ];
+    "google_cloud" = ps: with ps; [
+      google-cloud-texttospeech
+    ];
+    "google_domains" = ps: with ps; [
+    ];
+    "google_maps" = ps: with ps; [
+      locationsharinglib
+    ];
+    "google_pubsub" = ps: with ps; [
+      google-cloud-pubsub
+    ];
+    "google_translate" = ps: with ps; [
+      gtts
+    ];
+    "google_travel_time" = ps: with ps; [
+      googlemaps
+    ];
+    "google_wifi" = ps: with ps; [
+    ];
+    "gpsd" = ps: with ps; [
+      gps3
+    ];
+    "gpslogger" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "graphite" = ps: with ps; [
+    ];
+    "gree" = ps: with ps; [
+      greeclimate
+    ];
+    "greeneye_monitor" = ps: with ps; [
+    ]; # missing inputs: greeneye_monitor
+    "greenwave" = ps: with ps; [
+    ]; # missing inputs: greenwavereality
+    "group" = ps: with ps; [
+    ];
+    "growatt_server" = ps: with ps; [
+      growattserver
+    ];
+    "gstreamer" = ps: with ps; [
+    ]; # missing inputs: gstreamer-player
+    "gtfs" = ps: with ps; [
+      pygtfs
+    ];
+    "guardian" = ps: with ps; [
+      aioguardian
+    ];
+    "habitica" = ps: with ps; [
+      habitipy
+    ];
+    "hangouts" = ps: with ps; [
+      hangups
+    ];
+    "harman_kardon_avr" = ps: with ps; [
+      hkavr
+    ];
+    "harmony" = ps: with ps; [
+      aioharmony
+    ];
+    "hassio" = ps: with ps; [
+      aiohttp-cors
+      fnvhash
+      home-assistant-frontend
+      lru-dict
+      pillow
+      sqlalchemy
+    ];
+    "haveibeenpwned" = ps: with ps; [
+    ];
+    "hddtemp" = ps: with ps; [
+    ];
+    "hdmi_cec" = ps: with ps; [
+      pycec
+    ];
+    "heatmiser" = ps: with ps; [
+    ]; # missing inputs: heatmiserV3
+    "heos" = ps: with ps; [
+      pyheos
+    ];
+    "here_travel_time" = ps: with ps; [
+      herepy
+    ];
+    "hikvision" = ps: with ps; [
+    ]; # missing inputs: pyhik
+    "hikvisioncam" = ps: with ps; [
+      hikvision
+    ];
+    "hisense_aehw4a1" = ps: with ps; [
+      pyaehw4a1
+    ];
+    "history" = ps: with ps; [
+      aiohttp-cors
+      fnvhash
+      lru-dict
+      sqlalchemy
+    ];
+    "history_stats" = ps: with ps; [
+      fnvhash
+      lru-dict
+      sqlalchemy
+    ];
+    "hitron_coda" = ps: with ps; [
+    ];
+    "hive" = ps: with ps; [
+      pyhiveapi
+    ];
+    "hlk_sw16" = ps: with ps; [
+      hlk-sw16
+    ];
+    "home_connect" = ps: with ps; [
+      aiohttp-cors
+      homeconnect
+    ];
+    "home_plus_control" = ps: with ps; [
+      aiohttp-cors
+      homepluscontrol
+    ];
+    "homeassistant" = ps: with ps; [
+    ];
+    "homekit" = ps: with ps; [
+      hap-python
+      pyqrcode
+      pyturbojpeg
+      aiohttp-cors
+      base36
+      fnvhash
+      ha-ffmpeg
+      ifaddr
+      zeroconf
+    ];
+    "homekit_controller" = ps: with ps; [
+      aiohomekit
+      aiohttp-cors
+      ifaddr
+      zeroconf
+    ];
+    "homematic" = ps: with ps; [
+      pyhomematic
+    ];
+    "homematicip_cloud" = ps: with ps; [
+      homematicip
+    ];
+    "homewizard" = ps: with ps; [
+      aiohwenergy
+    ];
+    "homeworks" = ps: with ps; [
+      pyhomeworks
+    ];
+    "honeywell" = ps: with ps; [
+      somecomfort
+    ];
+    "horizon" = ps: with ps; [
+    ]; # missing inputs: horimote
+    "hp_ilo" = ps: with ps; [
+      python-hpilo
+    ];
+    "html5" = ps: with ps; [
+      aiohttp-cors
+      pywebpush
+    ];
+    "http" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "huawei_lte" = ps: with ps; [
+      huawei-lte-api
+      stringcase
+      url-normalize
+    ];
+    "hue" = ps: with ps; [
+      aiohue
+    ];
+    "huisbaasje" = ps: with ps; [
+      huisbaasje-client
+    ];
+    "humidifier" = ps: with ps; [
+    ];
+    "hunterdouglas_powerview" = ps: with ps; [
+      aiopvapi
+    ];
+    "hvv_departures" = ps: with ps; [
+      pygti
+    ];
+    "hydrawise" = ps: with ps; [
+      hydrawiser
+    ];
+    "hyperion" = ps: with ps; [
+      hyperion-py
+    ];
+    "ialarm" = ps: with ps; [
+      pyialarm
+    ];
+    "iammeter" = ps: with ps; [
+    ]; # missing inputs: iammeter
+    "iaqualink" = ps: with ps; [
+      iaqualink
+    ];
+    "icloud" = ps: with ps; [
+      pyicloud
+    ];
+    "idteck_prox" = ps: with ps; [
+    ]; # missing inputs: rfk101py
+    "ifttt" = ps: with ps; [
+      aiohttp-cors
+      pyfttt
+    ];
+    "iglo" = ps: with ps; [
+    ]; # missing inputs: iglo
+    "ign_sismologia" = ps: with ps; [
+      georss-ign-sismologia-client
+    ];
+    "ihc" = ps: with ps; [
+      defusedxml
+    ]; # missing inputs: ihcsdk
+    "image" = ps: with ps; [
+      aiohttp-cors
+      pillow
+    ];
+    "image_processing" = ps: with ps; [
+      pyturbojpeg
+      aiohttp-cors
+    ];
+    "imap" = ps: with ps; [
+      aioimaplib
+    ];
+    "imap_email_content" = ps: with ps; [
+    ];
+    "incomfort" = ps: with ps; [
+      incomfort-client
+    ];
+    "influxdb" = ps: with ps; [
+      influxdb-client
+      influxdb
+    ];
+    "input_boolean" = ps: with ps; [
+    ];
+    "input_button" = ps: with ps; [
+    ];
+    "input_datetime" = ps: with ps; [
+    ];
+    "input_number" = ps: with ps; [
+    ];
+    "input_select" = ps: with ps; [
+    ];
+    "input_text" = ps: with ps; [
+    ];
+    "insteon" = ps: with ps; [
+      aiohttp-cors
+      pyinsteon
+      pyserial
+      pyudev
+    ];
+    "integration" = ps: with ps; [
+    ];
+    "intellifire" = ps: with ps; [
+      intellifire4py
+    ];
+    "intent" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "intent_script" = ps: with ps; [
+    ];
+    "intesishome" = ps: with ps; [
+      pyintesishome
+    ];
+    "ios" = ps: with ps; [
+      aiohttp-cors
+      ifaddr
+      zeroconf
+    ];
+    "iotawatt" = ps: with ps; [
+      iotawattpy
+    ];
+    "iperf3" = ps: with ps; [
+    ]; # missing inputs: iperf3
+    "ipma" = ps: with ps; [
+      pyipma
+    ];
+    "ipp" = ps: with ps; [
+      pyipp
+    ];
+    "iqvia" = ps: with ps; [
+      numpy
+      pyiqvia
+    ];
+    "irish_rail_transport" = ps: with ps; [
+    ]; # missing inputs: pyirishrail
+    "islamic_prayer_times" = ps: with ps; [
+      prayer-times-calculator
+    ];
+    "iss" = ps: with ps; [
+    ]; # missing inputs: pyiss
+    "isy994" = ps: with ps; [
+      pyisy
+    ];
+    "itach" = ps: with ps; [
+    ]; # missing inputs: pyitachip2ir
+    "itunes" = ps: with ps; [
+    ];
+    "izone" = ps: with ps; [
+      python-izone
+    ];
+    "jellyfin" = ps: with ps; [
+      jellyfin-apiclient-python
+    ];
+    "jewish_calendar" = ps: with ps; [
+      hdate
+    ];
+    "joaoapps_join" = ps: with ps; [
+    ]; # missing inputs: python-join-api
+    "juicenet" = ps: with ps; [
+      python-juicenet
+    ];
+    "kaiterra" = ps: with ps; [
+    ]; # missing inputs: kaiterra-async-client
+    "kaleidescape" = ps: with ps; [
+    ]; # missing inputs: pykaleidescape
+    "kankun" = ps: with ps; [
+    ];
+    "keba" = ps: with ps; [
+    ]; # missing inputs: keba-kecontact
+    "keenetic_ndms2" = ps: with ps; [
+      ndms2-client
+    ];
+    "kef" = ps: with ps; [
+      aiokef
+      getmac
+    ];
+    "keyboard" = ps: with ps; [
+    ]; # missing inputs: pyuserinput
+    "keyboard_remote" = ps: with ps; [
+      aionotify
+      evdev
+    ];
+    "kira" = ps: with ps; [
+      pykira
+    ];
+    "kiwi" = ps: with ps; [
+    ]; # missing inputs: kiwiki-client
+    "kmtronic" = ps: with ps; [
+      pykmtronic
+    ];
+    "knx" = ps: with ps; [
+      xknx
+    ];
+    "kodi" = ps: with ps; [
+      aiohttp-cors
+      pykodi
+    ];
+    "konnected" = ps: with ps; [
+      aiohttp-cors
+      konnected
+    ];
+    "kostal_plenticore" = ps: with ps; [
+    ]; # missing inputs: kostal_plenticore
+    "kraken" = ps: with ps; [
+      krakenex
+      pykrakenapi
+    ];
+    "kulersky" = ps: with ps; [
+      pykulersky
+    ];
+    "kwb" = ps: with ps; [
+    ]; # missing inputs: pykwb
+    "lacrosse" = ps: with ps; [
+      pylacrosse
+    ];
+    "lametric" = ps: with ps; [
+      lmnotify
+    ];
+    "lannouncer" = ps: with ps; [
+    ];
+    "lastfm" = ps: with ps; [
+      pylast
+    ];
+    "launch_library" = ps: with ps; [
+      pylaunches
+    ];
+    "lcn" = ps: with ps; [
+      pypck
+    ];
+    "lg_netcast" = ps: with ps; [
+      pylgnetcast
+    ];
+    "lg_soundbar" = ps: with ps; [
+      temescal
+    ];
+    "life360" = ps: with ps; [
+      life360
+    ];
+    "lifx" = ps: with ps; [
+      aiolifx
+      aiolifx-effects
+    ];
+    "lifx_cloud" = ps: with ps; [
+    ];
+    "light" = ps: with ps; [
+    ];
+    "lightwave" = ps: with ps; [
+      lightwave
+    ];
+    "limitlessled" = ps: with ps; [
+      limitlessled
+    ];
+    "linksys_smart" = ps: with ps; [
+    ];
+    "linode" = ps: with ps; [
+      linode-api
+    ];
+    "linux_battery" = ps: with ps; [
+      batinfo
+    ];
+    "lirc" = ps: with ps; [
+    ]; # missing inputs: python-lirc
+    "litejet" = ps: with ps; [
+    ]; # missing inputs: pylitejet
+    "litterrobot" = ps: with ps; [
+      pylitterbot
+    ];
+    "llamalab_automate" = ps: with ps; [
+    ];
+    "local_file" = ps: with ps; [
+    ];
+    "local_ip" = ps: with ps; [
+      aiohttp-cors
+      ifaddr
+    ];
+    "locative" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "lock" = ps: with ps; [
+    ];
+    "logbook" = ps: with ps; [
+      aiohttp-cors
+      fnvhash
+      home-assistant-frontend
+      lru-dict
+      pillow
+      sqlalchemy
+    ];
+    "logentries" = ps: with ps; [
+    ];
+    "logger" = ps: with ps; [
+    ];
+    "logi_circle" = ps: with ps; [
+      aiohttp-cors
+      ha-ffmpeg
+    ]; # missing inputs: logi_circle
+    "london_air" = ps: with ps; [
+    ];
+    "london_underground" = ps: with ps; [
+    ]; # missing inputs: london-tube-status
+    "lookin" = ps: with ps; [
+      aiolookin
+    ];
+    "lovelace" = ps: with ps; [
+    ];
+    "luci" = ps: with ps; [
+      openwrt-luci-rpc
+    ];
+    "luftdaten" = ps: with ps; [
+      luftdaten
+    ];
+    "lupusec" = ps: with ps; [
+      lupupy
+    ];
+    "lutron" = ps: with ps; [
+      pylutron
+    ];
+    "lutron_caseta" = ps: with ps; [
+      pylutron-caseta
+    ];
+    "lw12wifi" = ps: with ps; [
+    ]; # missing inputs: lw12
+    "lyric" = ps: with ps; [
+      aiohttp-cors
+      aiolyric
+    ];
+    "magicseaweed" = ps: with ps; [
+    ]; # missing inputs: magicseaweed
+    "mailbox" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "mailgun" = ps: with ps; [
+      aiohttp-cors
+    ]; # missing inputs: pymailgunner
+    "manual" = ps: with ps; [
+    ];
+    "manual_mqtt" = ps: with ps; [
+      aiohttp-cors
+      paho-mqtt
+    ];
+    "map" = ps: with ps; [
+      aiohttp-cors
+      fnvhash
+      home-assistant-frontend
+      lru-dict
+      pillow
+      sqlalchemy
+    ];
+    "marytts" = ps: with ps; [
+    ]; # missing inputs: speak2mary
+    "mastodon" = ps: with ps; [
+      mastodon-py
+    ];
+    "matrix" = ps: with ps; [
+      matrix-client
+    ];
+    "maxcube" = ps: with ps; [
+      maxcube-api
+    ];
+    "mazda" = ps: with ps; [
+      pymazda
+    ];
+    "media_extractor" = ps: with ps; [
+      aiohttp-cors
+      youtube-dl-light
+    ];
+    "media_player" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "media_source" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "mediaroom" = ps: with ps; [
+      pymediaroom
+    ];
+    "melcloud" = ps: with ps; [
+      pymelcloud
+    ];
+    "melissa" = ps: with ps; [
+    ]; # missing inputs: py-melissa-climate
+    "meraki" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "message_bird" = ps: with ps; [
+    ]; # missing inputs: messagebird
+    "met" = ps: with ps; [
+      pymetno
+    ];
+    "met_eireann" = ps: with ps; [
+      pymeteireann
+    ];
+    "meteo_france" = ps: with ps; [
+      meteofrance-api
+    ];
+    "meteoalarm" = ps: with ps; [
+      meteoalertapi
+    ];
+    "meteoclimatic" = ps: with ps; [
+      pymeteoclimatic
+    ];
+    "metoffice" = ps: with ps; [
+    ]; # missing inputs: datapoint
+    "mfi" = ps: with ps; [
+    ]; # missing inputs: mficlient
+    "microsoft" = ps: with ps; [
+    ]; # missing inputs: pycsspeechtts
+    "microsoft_face" = ps: with ps; [
+      pyturbojpeg
+      aiohttp-cors
+    ];
+    "microsoft_face_detect" = ps: with ps; [
+      pyturbojpeg
+      aiohttp-cors
+    ];
+    "microsoft_face_identify" = ps: with ps; [
+      pyturbojpeg
+      aiohttp-cors
+    ];
+    "miflora" = ps: with ps; [
+      bluepy
+    ]; # missing inputs: miflora
+    "mikrotik" = ps: with ps; [
+      librouteros
+    ];
+    "mill" = ps: with ps; [
+      mill-local
+      millheater
+    ];
+    "min_max" = ps: with ps; [
+    ];
+    "minecraft_server" = ps: with ps; [
+      aiodns
+      getmac
+      mcstatus
+    ];
+    "minio" = ps: with ps; [
+      minio
+    ];
+    "mitemp_bt" = ps: with ps; [
+    ]; # missing inputs: mitemp_bt
+    "mjpeg" = ps: with ps; [
+    ];
+    "mobile_app" = ps: with ps; [
+      pynacl
+      pyturbojpeg
+      aiohttp-cors
+      hass-nabucasa
+      pillow
+    ];
+    "mochad" = ps: with ps; [
+    ]; # missing inputs: pymochad
+    "modbus" = ps: with ps; [
+      pymodbus
+    ];
+    "modem_callerid" = ps: with ps; [
+      aiohttp-cors
+      phone-modem
+      pyserial
+      pyudev
+    ];
+    "modern_forms" = ps: with ps; [
+      aiomodernforms
+    ];
+    "moehlenhoff_alpha2" = ps: with ps; [
+    ]; # missing inputs: moehlenhoff-alpha2
+    "mold_indicator" = ps: with ps; [
+    ];
+    "monoprice" = ps: with ps; [
+    ]; # missing inputs: pymonoprice
+    "moon" = ps: with ps; [
+    ];
+    "motion_blinds" = ps: with ps; [
+      aiohttp-cors
+      ifaddr
+      motionblinds
+    ];
+    "motioneye" = ps: with ps; [
+      aiohttp-cors
+      motioneye-client
+    ];
+    "mpd" = ps: with ps; [
+      mpd2
+    ];
+    "mqtt" = ps: with ps; [
+      aiohttp-cors
+      paho-mqtt
+    ];
+    "mqtt_eventstream" = ps: with ps; [
+      aiohttp-cors
+      paho-mqtt
+    ];
+    "mqtt_json" = ps: with ps; [
+      aiohttp-cors
+      paho-mqtt
+    ];
+    "mqtt_room" = ps: with ps; [
+      aiohttp-cors
+      paho-mqtt
+    ];
+    "mqtt_statestream" = ps: with ps; [
+      aiohttp-cors
+      paho-mqtt
+    ];
+    "msteams" = ps: with ps; [
+      pymsteams
+    ];
+    "mullvad" = ps: with ps; [
+      mullvad-api
+    ];
+    "mutesync" = ps: with ps; [
+      mutesync
+    ];
+    "mvglive" = ps: with ps; [
+      PyMVGLive
+    ];
+    "my" = ps: with ps; [
+      aiohttp-cors
+      fnvhash
+      home-assistant-frontend
+      lru-dict
+      pillow
+      sqlalchemy
+    ];
+    "mycroft" = ps: with ps; [
+    ]; # missing inputs: mycroftapi
+    "myq" = ps: with ps; [
+      pymyq
+    ];
+    "mysensors" = ps: with ps; [
+      aiohttp-cors
+      paho-mqtt
+      pymysensors
+    ];
+    "mystrom" = ps: with ps; [
+      aiohttp-cors
+      python-mystrom
+    ];
+    "mythicbeastsdns" = ps: with ps; [
+      mbddns
+    ];
+    "nad" = ps: with ps; [
+      nad-receiver
+    ];
+    "nam" = ps: with ps; [
+      nettigo-air-monitor
+    ];
+    "namecheapdns" = ps: with ps; [
+      defusedxml
+    ];
+    "nanoleaf" = ps: with ps; [
+      aionanoleaf
+    ];
+    "neato" = ps: with ps; [
+      aiohttp-cors
+      pybotvac
+    ];
+    "nederlandse_spoorwegen" = ps: with ps; [
+      nsapi
+    ];
+    "ness_alarm" = ps: with ps; [
+      nessclient
+    ];
+    "nest" = ps: with ps; [
+      aiohttp-cors
+      google-nest-sdm
+      ha-ffmpeg
+      python-nest
+    ];
+    "netatmo" = ps: with ps; [
+      pyturbojpeg
+      aiohttp-cors
+      hass-nabucasa
+      pyatmo
+    ];
+    "netdata" = ps: with ps; [
+      netdata
+    ];
+    "netgear" = ps: with ps; [
+      pynetgear
+    ];
+    "netgear_lte" = ps: with ps; [
+      eternalegypt
+    ];
+    "netio" = ps: with ps; [
+      aiohttp-cors
+    ]; # missing inputs: pynetio
+    "network" = ps: with ps; [
+      aiohttp-cors
+      ifaddr
+    ];
+    "neurio_energy" = ps: with ps; [
+    ]; # missing inputs: neurio
+    "nexia" = ps: with ps; [
+      nexia
+    ];
+    "nextbus" = ps: with ps; [
+    ]; # missing inputs: py_nextbusnext
+    "nextcloud" = ps: with ps; [
+      nextcloudmonitor
+    ];
+    "nfandroidtv" = ps: with ps; [
+    ]; # missing inputs: notifications-android-tv
+    "nightscout" = ps: with ps; [
+      py-nightscout
+    ];
+    "niko_home_control" = ps: with ps; [
+      niko-home-control
+    ];
+    "nilu" = ps: with ps; [
+      niluclient
+    ];
+    "nina" = ps: with ps; [
+      pynina
+    ];
+    "nissan_leaf" = ps: with ps; [
+      pycarwings2
+    ];
+    "nmap_tracker" = ps: with ps; [
+      aiohttp-cors
+      getmac
+      ifaddr
+      netmap
+    ]; # missing inputs: mac-vendor-lookup
+    "nmbs" = ps: with ps; [
+    ]; # missing inputs: pyrail
+    "no_ip" = ps: with ps; [
+    ];
+    "noaa_tides" = ps: with ps; [
+    ]; # missing inputs: noaa-coops
+    "norway_air" = ps: with ps; [
+      pymetno
+    ];
+    "notify" = ps: with ps; [
+    ];
+    "notify_events" = ps: with ps; [
+    ]; # missing inputs: notify-events
+    "notion" = ps: with ps; [
+      aionotion
+    ];
+    "nsw_fuel_station" = ps: with ps; [
+    ]; # missing inputs: nsw-fuel-api-client
+    "nsw_rural_fire_service_feed" = ps: with ps; [
+      aio-geojson-nsw-rfs-incidents
+    ];
+    "nuheat" = ps: with ps; [
+    ]; # missing inputs: nuheat
+    "nuki" = ps: with ps; [
+      pynuki
+    ];
+    "numato" = ps: with ps; [
+    ]; # missing inputs: numato-gpio
+    "number" = ps: with ps; [
+    ];
+    "nut" = ps: with ps; [
+      pynut2
+    ];
+    "nws" = ps: with ps; [
+      pynws
+    ];
+    "nx584" = ps: with ps; [
+      pynx584
+    ];
+    "nzbget" = ps: with ps; [
+    ]; # missing inputs: pynzbgetapi
+    "oasa_telematics" = ps: with ps; [
+      oasatelematics
+    ];
+    "obihai" = ps: with ps; [
+      pyobihai
+    ];
+    "octoprint" = ps: with ps; [
+      pyoctoprintapi
+    ];
+    "oem" = ps: with ps; [
+      oemthermostat
+    ];
+    "ohmconnect" = ps: with ps; [
+      defusedxml
+    ];
+    "ombi" = ps: with ps; [
+      pyombi
+    ];
+    "omnilogic" = ps: with ps; [
+      omnilogic
+    ];
+    "onboarding" = ps: with ps; [
+      aiohttp-cors
+      fnvhash
+      home-assistant-frontend
+      lru-dict
+      pillow
+      sqlalchemy
+    ];
+    "oncue" = ps: with ps; [
+      aiooncue
+    ];
+    "ondilo_ico" = ps: with ps; [
+      aiohttp-cors
+      ondilo
+    ];
+    "onewire" = ps: with ps; [
+      pi1wire
+      pyownet
+    ];
+    "onkyo" = ps: with ps; [
+      onkyo-eiscp
+    ];
+    "onvif" = ps: with ps; [
+      wsdiscovery
+      ha-ffmpeg
+      onvif-zeep-async
+    ];
+    "open_meteo" = ps: with ps; [
+      open-meteo
+    ];
+    "openalpr_cloud" = ps: with ps; [
+    ];
+    "openalpr_local" = ps: with ps; [
+    ];
+    "opencv" = ps: with ps; [
+      numpy
+    ]; # missing inputs: opencv-python-headless
+    "openerz" = ps: with ps; [
+      openerz-api
+    ];
+    "openevse" = ps: with ps; [
+      openevsewifi
+    ];
+    "openexchangerates" = ps: with ps; [
+    ];
+    "opengarage" = ps: with ps; [
+      open-garage
+    ];
+    "openhardwaremonitor" = ps: with ps; [
+    ];
+    "openhome" = ps: with ps; [
+      openhomedevice
+    ];
+    "opensensemap" = ps: with ps; [
+      opensensemap-api
+    ];
+    "opensky" = ps: with ps; [
+    ];
+    "opentherm_gw" = ps: with ps; [
+      pyotgw
+    ];
+    "openuv" = ps: with ps; [
+      pyopenuv
+    ];
+    "openweathermap" = ps: with ps; [
+      pyowm
+    ];
+    "opnsense" = ps: with ps; [
+      pyopnsense
+    ];
+    "opple" = ps: with ps; [
+      pyoppleio
+    ];
+    "oru" = ps: with ps; [
+    ]; # missing inputs: oru
+    "orvibo" = ps: with ps; [
+      orvibo
+    ];
+    "osramlightify" = ps: with ps; [
+    ]; # missing inputs: lightify
+    "otp" = ps: with ps; [
+      pyotp
+    ];
+    "overkiz" = ps: with ps; [
+      pyoverkiz
+    ];
+    "ovo_energy" = ps: with ps; [
+      ovoenergy
+    ];
+    "owntracks" = ps: with ps; [
+      pynacl
+      pyturbojpeg
+      aiohttp-cors
+      hass-nabucasa
+      paho-mqtt
+    ];
+    "p1_monitor" = ps: with ps; [
+      p1monitor
+    ];
+    "panasonic_bluray" = ps: with ps; [
+      panacotta
+    ];
+    "panasonic_viera" = ps: with ps; [
+    ]; # missing inputs: panasonic_viera
+    "pandora" = ps: with ps; [
+      pexpect
+    ];
+    "panel_custom" = ps: with ps; [
+      aiohttp-cors
+      fnvhash
+      home-assistant-frontend
+      lru-dict
+      pillow
+      sqlalchemy
+    ];
+    "panel_iframe" = ps: with ps; [
+      aiohttp-cors
+      fnvhash
+      home-assistant-frontend
+      lru-dict
+      pillow
+      sqlalchemy
+    ];
+    "peco" = ps: with ps; [
+      peco
+    ];
+    "pencom" = ps: with ps; [
+      pencompy
+    ];
+    "persistent_notification" = ps: with ps; [
+    ];
+    "person" = ps: with ps; [
+      aiohttp-cors
+      pillow
+    ];
+    "philips_js" = ps: with ps; [
+      ha-philipsjs
+    ];
+    "pi_hole" = ps: with ps; [
+      hole
+    ];
+    "picnic" = ps: with ps; [
+      python-picnic-api
+    ];
+    "picotts" = ps: with ps; [
+    ];
+    "pilight" = ps: with ps; [
+    ]; # missing inputs: pilight
+    "ping" = ps: with ps; [
+      icmplib
+    ];
+    "pioneer" = ps: with ps; [
+    ];
+    "pjlink" = ps: with ps; [
+    ]; # missing inputs: pypjlink2
+    "plaato" = ps: with ps; [
+      pyturbojpeg
+      aiohttp-cors
+      hass-nabucasa
+      pyplaato
+    ];
+    "plant" = ps: with ps; [
+      fnvhash
+      lru-dict
+      sqlalchemy
+    ];
+    "plex" = ps: with ps; [
+      aiohttp-cors
+      plexapi
+      plexauth
+      plexwebsocket
+    ];
+    "plugwise" = ps: with ps; [
+      plugwise
+    ];
+    "plum_lightpad" = ps: with ps; [
+    ]; # missing inputs: plumlightpad
+    "pocketcasts" = ps: with ps; [
+    ]; # missing inputs: pycketcasts
+    "point" = ps: with ps; [
+      aiohttp-cors
+      pypoint
+    ];
+    "poolsense" = ps: with ps; [
+      poolsense
+    ];
+    "powerwall" = ps: with ps; [
+    ]; # missing inputs: tesla-powerwall
+    "profiler" = ps: with ps; [
+      guppy3
+      objgraph
+      pyprof2calltree
+    ];
+    "progettihwsw" = ps: with ps; [
+    ]; # missing inputs: progettihwsw
+    "proliphix" = ps: with ps; [
+    ]; # missing inputs: proliphix
+    "prometheus" = ps: with ps; [
+      aiohttp-cors
+      prometheus-client
+    ];
+    "prosegur" = ps: with ps; [
+      pyprosegur
+    ];
+    "prowl" = ps: with ps; [
+    ];
+    "proximity" = ps: with ps; [
+    ];
+    "proxmoxve" = ps: with ps; [
+      proxmoxer
+    ];
+    "proxy" = ps: with ps; [
+      pillow
+    ];
+    "ps4" = ps: with ps; [
+    ]; # missing inputs: pyps4-2ndscreen
+    "pulseaudio_loopback" = ps: with ps; [
+      pulsectl
+    ];
+    "pure_energie" = ps: with ps; [
+      gridnet
+    ];
+    "push" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "pushbullet" = ps: with ps; [
+      pushbullet
+    ];
+    "pushover" = ps: with ps; [
+      pushover-complete
+    ];
+    "pushsafer" = ps: with ps; [
+    ];
+    "pvoutput" = ps: with ps; [
+      pvo
+    ];
+    "pvpc_hourly_pricing" = ps: with ps; [
+      aiopvpc
+    ];
+    "pyload" = ps: with ps; [
+    ];
+    "python_script" = ps: with ps; [
+      restrictedpython
+    ];
+    "qbittorrent" = ps: with ps; [
+    ]; # missing inputs: python-qbittorrent
+    "qld_bushfire" = ps: with ps; [
+      georss-qld-bushfire-alert-client
+    ];
+    "qnap" = ps: with ps; [
+    ]; # missing inputs: qnapstats
+    "qrcode" = ps: with ps; [
+      pillow
+      pyzbar
+    ];
+    "quantum_gateway" = ps: with ps; [
+      quantum-gateway
+    ];
+    "qvr_pro" = ps: with ps; [
+      pyqvrpro
+    ];
+    "qwikswitch" = ps: with ps; [
+    ]; # missing inputs: pyqwikswitch
+    "rachio" = ps: with ps; [
+      pyturbojpeg
+      aiohttp-cors
+      hass-nabucasa
+      rachiopy
+    ];
+    "radarr" = ps: with ps; [
+    ];
+    "radio_browser" = ps: with ps; [
+      radios
+    ];
+    "radiotherm" = ps: with ps; [
+      radiotherm
+    ];
+    "rainbird" = ps: with ps; [
+    ]; # missing inputs: pyrainbird
+    "raincloud" = ps: with ps; [
+    ]; # missing inputs: raincloudy
+    "rainforest_eagle" = ps: with ps; [
+      aioeagle
+      ueagle
+    ];
+    "rainmachine" = ps: with ps; [
+      regenmaschine
+    ];
+    "random" = ps: with ps; [
+    ];
+    "raspyrfm" = ps: with ps; [
+    ]; # missing inputs: raspyrfm-client
+    "rdw" = ps: with ps; [
+      vehicle
+    ];
+    "recollect_waste" = ps: with ps; [
+      aiorecollect
+    ];
+    "recorder" = ps: with ps; [
+      fnvhash
+      lru-dict
+      sqlalchemy
+    ];
+    "recswitch" = ps: with ps; [
+    ]; # missing inputs: pyrecswitch
+    "reddit" = ps: with ps; [
+      praw
+    ];
+    "rejseplanen" = ps: with ps; [
+      rjpl
+    ];
+    "remember_the_milk" = ps: with ps; [
+      httplib2
+    ]; # missing inputs: RtmAPI
+    "remote" = ps: with ps; [
+    ];
+    "remote_rpi_gpio" = ps: with ps; [
+    ]; # missing inputs: gpiozero pigpio
+    "renault" = ps: with ps; [
+      renault-api
+    ];
+    "repetier" = ps: with ps; [
+    ]; # missing inputs: pyrepetierng
+    "rest" = ps: with ps; [
+      jsonpath
+      xmltodict
+    ];
+    "rest_command" = ps: with ps; [
+    ];
+    "rflink" = ps: with ps; [
+      rflink
+    ];
+    "rfxtrx" = ps: with ps; [
+      pyrfxtrx
+    ];
+    "ridwell" = ps: with ps; [
+      aioridwell
+    ];
+    "ring" = ps: with ps; [
+      ha-ffmpeg
+      ring-doorbell
+    ];
+    "ripple" = ps: with ps; [
+    ]; # missing inputs: python-ripple-api
+    "risco" = ps: with ps; [
+      pyrisco
+    ];
+    "rituals_perfume_genie" = ps: with ps; [
+      pyrituals
+    ];
+    "rmvtransport" = ps: with ps; [
+      pyrmvtransport
+    ];
+    "rocketchat" = ps: with ps; [
+    ]; # missing inputs: rocketchat-API
+    "roku" = ps: with ps; [
+      rokuecp
+    ];
+    "roomba" = ps: with ps; [
+      roombapy
+    ];
+    "roon" = ps: with ps; [
+      roonapi
+    ];
+    "route53" = ps: with ps; [
+      boto3
+    ];
+    "rova" = ps: with ps; [
+      rova
+    ];
+    "rpi_camera" = ps: with ps; [
+    ];
+    "rpi_gpio" = ps: with ps; [
+    ]; # missing inputs: RPi.GPIO
+    "rpi_power" = ps: with ps; [
+      rpi-bad-power
+    ];
+    "rss_feed_template" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "rtorrent" = ps: with ps; [
+    ];
+    "rtsp_to_webrtc" = ps: with ps; [
+      pyturbojpeg
+      aiohttp-cors
+      rtsp-to-webrtc
+    ];
+    "ruckus_unleashed" = ps: with ps; [
+      pyruckus
+    ];
+    "russound_rio" = ps: with ps; [
+    ]; # missing inputs: russound_rio
+    "russound_rnet" = ps: with ps; [
+    ]; # missing inputs: russound
+    "sabnzbd" = ps: with ps; [
+      aiohttp-cors
+      ifaddr
+      netdisco
+      zeroconf
+    ]; # missing inputs: pysabnzbd
+    "safe_mode" = ps: with ps; [
+      pyturbojpeg
+      aiohttp-cors
+      fnvhash
+      hass-nabucasa
+      home-assistant-frontend
+      lru-dict
+      pillow
+      sqlalchemy
+    ];
+    "saj" = ps: with ps; [
+      pysaj
+    ];
+    "samsungtv" = ps: with ps; [
+      aiohttp-cors
+      async-upnp-client
+      getmac
+      ifaddr
+      samsungctl
+      samsungtvws
+      wakeonlan
+      zeroconf
+    ]
+    ++ samsungctl.extras-require.websocket
+    ++ samsungtvws.extras-require.async
+    ++ samsungtvws.extras-require.encrypted;
+    "satel_integra" = ps: with ps; [
+    ]; # missing inputs: satel_integra
+    "scene" = ps: with ps; [
+    ];
+    "schluter" = ps: with ps; [
+    ]; # missing inputs: py-schluter
+    "scrape" = ps: with ps; [
+      beautifulsoup4
+      jsonpath
+      xmltodict
+    ];
+    "screenlogic" = ps: with ps; [
+      screenlogicpy
+    ];
+    "script" = ps: with ps; [
+    ];
+    "scsgate" = ps: with ps; [
+    ]; # missing inputs: scsgate
+    "search" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "season" = ps: with ps; [
+      ephem
+    ];
+    "select" = ps: with ps; [
+    ];
+    "sendgrid" = ps: with ps; [
+      sendgrid
+    ];
+    "sense" = ps: with ps; [
+      sense-energy
+    ];
+    "senseme" = ps: with ps; [
+      aiosenseme
+    ];
+    "sensibo" = ps: with ps; [
+      pysensibo
+    ];
+    "sensor" = ps: with ps; [
+      fnvhash
+      lru-dict
+      sqlalchemy
+    ];
+    "sentry" = ps: with ps; [
+      sentry-sdk
+    ];
+    "serial" = ps: with ps; [
+      pyserial-asyncio
+    ];
+    "serial_pm" = ps: with ps; [
+      pmsensor
+    ];
+    "sesame" = ps: with ps; [
+    ]; # missing inputs: pysesame2
+    "seven_segments" = ps: with ps; [
+      pillow
+    ];
+    "seventeentrack" = ps: with ps; [
+      py17track
+    ];
+    "sharkiq" = ps: with ps; [
+    ]; # missing inputs: sharkiq
+    "shell_command" = ps: with ps; [
+    ];
+    "shelly" = ps: with ps; [
+      aioshelly
+    ];
+    "shiftr" = ps: with ps; [
+      paho-mqtt
+    ];
+    "shodan" = ps: with ps; [
+      shodan
+    ];
+    "shopping_list" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "sia" = ps: with ps; [
+      pysiaalarm
+    ];
+    "sigfox" = ps: with ps; [
+    ];
+    "sighthound" = ps: with ps; [
+      pillow
+      simplehound
+    ];
+    "signal_messenger" = ps: with ps; [
+      pysignalclirestapi
+    ];
+    "simplepush" = ps: with ps; [
+    ]; # missing inputs: simplepush
+    "simplisafe" = ps: with ps; [
+      simplisafe-python
+    ];
+    "simulated" = ps: with ps; [
+    ];
+    "sinch" = ps: with ps; [
+    ]; # missing inputs: clx-sdk-xms
+    "siren" = ps: with ps; [
+    ];
+    "sisyphus" = ps: with ps; [
+    ]; # missing inputs: sisyphus-control
+    "sky_hub" = ps: with ps; [
+      pyskyqhub
+    ];
+    "skybeacon" = ps: with ps; [
+      pygatt
+    ]
+    ++ pygatt.extras-require.GATTTOOL;
+    "skybell" = ps: with ps; [
+      skybellpy
+    ];
+    "slack" = ps: with ps; [
+      slackclient
+    ];
+    "sleepiq" = ps: with ps; [
+      asyncsleepiq
+    ];
+    "slide" = ps: with ps; [
+    ]; # missing inputs: goslide-api
+    "sma" = ps: with ps; [
+      pysma
+    ];
+    "smappee" = ps: with ps; [
+      aiohttp-cors
+      pysmappee
+    ];
+    "smart_meter_texas" = ps: with ps; [
+      smart-meter-texas
+    ];
+    "smartthings" = ps: with ps; [
+      pyturbojpeg
+      aiohttp-cors
+      hass-nabucasa
+      pysmartapp
+      pysmartthings
+    ];
+    "smarttub" = ps: with ps; [
+      python-smarttub
+    ];
+    "smarty" = ps: with ps; [
+    ]; # missing inputs: pysmarty
+    "smhi" = ps: with ps; [
+      smhi-pkg
+    ];
+    "sms" = ps: with ps; [
+      python-gammu
+    ];
+    "smtp" = ps: with ps; [
+    ];
+    "snapcast" = ps: with ps; [
+      snapcast
+    ];
+    "snips" = ps: with ps; [
+      aiohttp-cors
+      paho-mqtt
+    ];
+    "snmp" = ps: with ps; [
+      pysnmp
+    ];
+    "solaredge" = ps: with ps; [
+      solaredge
+      stringcase
+    ];
+    "solaredge_local" = ps: with ps; [
+    ]; # missing inputs: solaredge-local
+    "solarlog" = ps: with ps; [
+      sunwatcher
+    ];
+    "solax" = ps: with ps; [
+      solax
+    ];
+    "soma" = ps: with ps; [
+      pysoma
+    ];
+    "somfy" = ps: with ps; [
+      aiohttp-cors
+      pymfy
+    ];
+    "somfy_mylink" = ps: with ps; [
+      somfy-mylink-synergy
+    ];
+    "sonarr" = ps: with ps; [
+      aiopyarr
+    ];
+    "songpal" = ps: with ps; [
+      python-songpal
+    ];
+    "sonos" = ps: with ps; [
+      aiohttp-cors
+      async-upnp-client
+      ifaddr
+      plexapi
+      plexauth
+      plexwebsocket
+      soco
+      spotipy
+      zeroconf
+    ];
+    "sony_projector" = ps: with ps; [
+      pysdcp
+    ];
+    "soundtouch" = ps: with ps; [
+      aiohttp-cors
+      ifaddr
+      libsoundtouch
+      zeroconf
+    ];
+    "spaceapi" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "spc" = ps: with ps; [
+      pyspcwebgw
+    ];
+    "speedtestdotnet" = ps: with ps; [
+      speedtest-cli
+    ];
+    "spider" = ps: with ps; [
+      spiderpy
+    ];
+    "splunk" = ps: with ps; [
+    ]; # missing inputs: hass_splunk
+    "spotify" = ps: with ps; [
+      aiohttp-cors
+      spotipy
+    ];
+    "sql" = ps: with ps; [
+      sqlalchemy
+    ];
+    "squeezebox" = ps: with ps; [
+      pysqueezebox
+    ];
+    "srp_energy" = ps: with ps; [
+      srpenergy
+    ];
+    "ssdp" = ps: with ps; [
+      aiohttp-cors
+      async-upnp-client
+      ifaddr
+      zeroconf
+    ];
+    "starline" = ps: with ps; [
+      starline
+    ];
+    "starlingbank" = ps: with ps; [
+    ]; # missing inputs: starlingbank
+    "startca" = ps: with ps; [
+      xmltodict
+    ];
+    "statistics" = ps: with ps; [
+      fnvhash
+      lru-dict
+      sqlalchemy
+    ];
+    "statsd" = ps: with ps; [
+      statsd
+    ];
+    "steam_online" = ps: with ps; [
+    ]; # missing inputs: steamodd
+    "steamist" = ps: with ps; [
+      aiohttp-cors
+      aiosteamist
+      discovery30303
+      ifaddr
+    ];
+    "stiebel_eltron" = ps: with ps; [
+      pymodbus
+    ]; # missing inputs: pystiebeleltron
+    "stookalert" = ps: with ps; [
+      stookalert
+    ];
+    "stream" = ps: with ps; [
+      pyturbojpeg
+      aiohttp-cors
+      av
+    ];
+    "streamlabswater" = ps: with ps; [
+      streamlabswater
+    ];
+    "stt" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "subaru" = ps: with ps; [
+      subarulink
+    ];
+    "suez_water" = ps: with ps; [
+    ]; # missing inputs: pysuez
+    "sun" = ps: with ps; [
+    ];
+    "supervisord" = ps: with ps; [
+    ];
+    "supla" = ps: with ps; [
+    ]; # missing inputs: asyncpysupla
+    "surepetcare" = ps: with ps; [
+      surepy
+    ];
+    "swiss_hydrological_data" = ps: with ps; [
+      swisshydrodata
+    ];
+    "swiss_public_transport" = ps: with ps; [
+      python-opendata-transport
+    ];
+    "swisscom" = ps: with ps; [
+    ];
+    "switch" = ps: with ps; [
+    ];
+    "switch_as_x" = ps: with ps; [
+    ];
+    "switchbot" = ps: with ps; [
+      pyswitchbot
+    ];
+    "switcher_kis" = ps: with ps; [
+      aioswitcher
+    ];
+    "switchmate" = ps: with ps; [
+    ]; # missing inputs: pySwitchmate
+    "syncthing" = ps: with ps; [
+      aiosyncthing
+    ];
+    "syncthru" = ps: with ps; [
+      pysyncthru
+      url-normalize
+    ];
+    "synology_chat" = ps: with ps; [
+    ];
+    "synology_dsm" = ps: with ps; [
+      py-synologydsm-api
+    ];
+    "synology_srm" = ps: with ps; [
+    ]; # missing inputs: synology-srm
+    "syslog" = ps: with ps; [
+    ];
+    "system_bridge" = ps: with ps; [
+      aiohttp-cors
+      ifaddr
+      systembridge
+      zeroconf
+    ];
+    "system_health" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "system_log" = ps: with ps; [
+    ];
+    "systemmonitor" = ps: with ps; [
+      psutil
+    ];
+    "tado" = ps: with ps; [
+      python-tado
+    ];
+    "tag" = ps: with ps; [
+    ];
+    "tailscale" = ps: with ps; [
+      tailscale
+    ];
+    "tank_utility" = ps: with ps; [
+    ]; # missing inputs: tank_utility
+    "tankerkoenig" = ps: with ps; [
+      pytankerkoenig
+    ];
+    "tapsaff" = ps: with ps; [
+    ]; # missing inputs: tapsaff
+    "tasmota" = ps: with ps; [
+      aiohttp-cors
+      hatasmota
+      paho-mqtt
+    ];
+    "tautulli" = ps: with ps; [
+      pytautulli
+    ];
+    "tcp" = ps: with ps; [
+    ];
+    "ted5000" = ps: with ps; [
+      xmltodict
+    ];
+    "telegram" = ps: with ps; [
+      pysocks
+      aiohttp-cors
+      python-telegram-bot
+    ];
+    "telegram_bot" = ps: with ps; [
+      pysocks
+      aiohttp-cors
+      python-telegram-bot
+    ];
+    "tellduslive" = ps: with ps; [
+      tellduslive
+    ];
+    "tellstick" = ps: with ps; [
+    ]; # missing inputs: tellcore-net tellcore-py
+    "telnet" = ps: with ps; [
+    ];
+    "temper" = ps: with ps; [
+    ]; # missing inputs: temperusb
+    "template" = ps: with ps; [
+    ];
+    "tensorflow" = ps: with ps; [
+      numpy
+      pillow
+      pycocotools
+      tensorflow
+    ]; # missing inputs: tf-models-official
+    "tesla_wall_connector" = ps: with ps; [
+      tesla-wall-connector
+    ];
+    "tfiac" = ps: with ps; [
+    ]; # missing inputs: pytfiac
+    "thermoworks_smoke" = ps: with ps; [
+      stringcase
+    ]; # missing inputs: thermoworks_smoke
+    "thethingsnetwork" = ps: with ps; [
+    ];
+    "thingspeak" = ps: with ps; [
+    ]; # missing inputs: thingspeak
+    "thinkingcleaner" = ps: with ps; [
+    ]; # missing inputs: pythinkingcleaner
+    "thomson" = ps: with ps; [
+    ];
+    "threshold" = ps: with ps; [
+    ];
+    "tibber" = ps: with ps; [
+      fnvhash
+      lru-dict
+      pytibber
+      sqlalchemy
+    ];
+    "tikteck" = ps: with ps; [
+    ]; # missing inputs: tikteck
+    "tile" = ps: with ps; [
+      pytile
+    ];
+    "time_date" = ps: with ps; [
+    ];
+    "timer" = ps: with ps; [
+    ];
+    "tmb" = ps: with ps; [
+      tmb
+    ];
+    "tod" = ps: with ps; [
+    ];
+    "todoist" = ps: with ps; [
+      todoist
+    ];
+    "tolo" = ps: with ps; [
+      tololib
+    ];
+    "tomato" = ps: with ps; [
+    ];
+    "tomorrowio" = ps: with ps; [
+      pytomorrowio
+    ];
+    "toon" = ps: with ps; [
+      pyturbojpeg
+      aiohttp-cors
+      hass-nabucasa
+      toonapi
+    ];
+    "torque" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "totalconnect" = ps: with ps; [
+      total-connect-client
+    ];
+    "touchline" = ps: with ps; [
+    ]; # missing inputs: pytouchline
+    "tplink" = ps: with ps; [
+      aiohttp-cors
+      ifaddr
+      python-kasa
+    ];
+    "tplink_lte" = ps: with ps; [
+    ]; # missing inputs: tp-connected
+    "traccar" = ps: with ps; [
+      aiohttp-cors
+      pytraccar
+      stringcase
+    ];
+    "trace" = ps: with ps; [
+    ];
+    "tractive" = ps: with ps; [
+      aiotractive
+    ];
+    "tradfri" = ps: with ps; [
+      pytradfri
+    ]
+    ++ pytradfri.extras-require.async;
+    "trafikverket_train" = ps: with ps; [
+      pytrafikverket
+    ];
+    "trafikverket_weatherstation" = ps: with ps; [
+      pytrafikverket
+    ];
+    "transmission" = ps: with ps; [
+      transmissionrpc
+    ];
+    "transport_nsw" = ps: with ps; [
+      pytransportnsw
+    ];
+    "travisci" = ps: with ps; [
+    ]; # missing inputs: TravisPy
+    "trend" = ps: with ps; [
+      numpy
+    ];
+    "tts" = ps: with ps; [
+      aiohttp-cors
+      mutagen
+    ];
+    "tuya" = ps: with ps; [
+      ha-ffmpeg
+      tuya-iot-py-sdk
+    ];
+    "twentemilieu" = ps: with ps; [
+      twentemilieu
+    ];
+    "twilio" = ps: with ps; [
+      aiohttp-cors
+      twilio
+    ];
+    "twilio_call" = ps: with ps; [
+      aiohttp-cors
+      twilio
+    ];
+    "twilio_sms" = ps: with ps; [
+      aiohttp-cors
+      twilio
+    ];
+    "twinkly" = ps: with ps; [
+      ttls
+    ];
+    "twitch" = ps: with ps; [
+      twitchapi
+    ];
+    "twitter" = ps: with ps; [
+      twitterapi
+    ];
+    "ubus" = ps: with ps; [
+      openwrt-ubus-rpc
+    ];
+    "ue_smart_radio" = ps: with ps; [
+    ];
+    "uk_transport" = ps: with ps; [
+    ];
+    "unifi" = ps: with ps; [
+      aiounifi
+    ];
+    "unifi_direct" = ps: with ps; [
+      pexpect
+    ];
+    "unifiled" = ps: with ps; [
+      unifiled
+    ];
+    "unifiprotect" = ps: with ps; [
+      aiohttp-cors
+    ]; # missing inputs: pyunifiprotect unifi-discovery
+    "universal" = ps: with ps; [
+    ];
+    "upb" = ps: with ps; [
+      upb-lib
+    ];
+    "upc_connect" = ps: with ps; [
+      connect-box
+    ];
+    "upcloud" = ps: with ps; [
+      upcloud-api
+    ];
+    "update" = ps: with ps; [
+    ];
+    "updater" = ps: with ps; [
+    ];
+    "upnp" = ps: with ps; [
+      aiohttp-cors
+      async-upnp-client
+      ifaddr
+      zeroconf
+    ];
+    "uptime" = ps: with ps; [
+    ];
+    "uptimerobot" = ps: with ps; [
+      pyuptimerobot
+    ];
+    "usb" = ps: with ps; [
+      aiohttp-cors
+      pyserial
+      pyudev
+    ];
+    "uscis" = ps: with ps; [
+    ]; # missing inputs: uscisstatus
+    "usgs_earthquakes_feed" = ps: with ps; [
+      geojson-client
+    ];
+    "utility_meter" = ps: with ps; [
+      croniter
+    ];
+    "uvc" = ps: with ps; [
+      uvcclient
+    ];
+    "vacuum" = ps: with ps; [
+    ];
+    "vallox" = ps: with ps; [
+    ]; # missing inputs: vallox-websocket-api
+    "vasttrafik" = ps: with ps; [
+    ]; # missing inputs: vtjp
+    "velbus" = ps: with ps; [
+      aiohttp-cors
+      pyserial
+      pyudev
+      velbus-aio
+    ];
+    "velux" = ps: with ps; [
+      pyvlx
+    ];
+    "venstar" = ps: with ps; [
+      venstarcolortouch
+    ];
+    "vera" = ps: with ps; [
+      pyvera
+    ];
+    "verisure" = ps: with ps; [
+      vsure
+    ];
+    "versasense" = ps: with ps; [
+      pyversasense
+    ];
+    "version" = ps: with ps; [
+      pyhaversion
+    ];
+    "vesync" = ps: with ps; [
+      pyvesync
+    ];
+    "viaggiatreno" = ps: with ps; [
+    ];
+    "vicare" = ps: with ps; [
+      pyvicare
+    ];
+    "vilfo" = ps: with ps; [
+      vilfo-api-client
+    ];
+    "vivotek" = ps: with ps; [
+      libpyvivotek
+    ];
+    "vizio" = ps: with ps; [
+      pyvizio
+    ];
+    "vlc" = ps: with ps; [
+      python-vlc
+    ];
+    "vlc_telnet" = ps: with ps; [
+      aiovlc
+    ];
+    "voicerss" = ps: with ps; [
+    ];
+    "volkszaehler" = ps: with ps; [
+      volkszaehler
+    ];
+    "volumio" = ps: with ps; [
+      pyvolumio
+    ];
+    "volvooncall" = ps: with ps; [
+      volvooncall
+    ];
+    "vulcan" = ps: with ps; [
+      vulcan-api
+    ];
+    "vultr" = ps: with ps; [
+      vultr
+    ];
+    "w800rf32" = ps: with ps; [
+    ]; # missing inputs: pyW800rf32
+    "wake_on_lan" = ps: with ps; [
+      wakeonlan
+    ];
+    "wallbox" = ps: with ps; [
+      wallbox
+    ];
+    "waqi" = ps: with ps; [
+      waqiasync
+    ];
+    "water_heater" = ps: with ps; [
+    ];
+    "waterfurnace" = ps: with ps; [
+      waterfurnace
+    ];
+    "watson_iot" = ps: with ps; [
+    ]; # missing inputs: ibmiotf
+    "watson_tts" = ps: with ps; [
+      ibm-watson
+    ];
+    "watttime" = ps: with ps; [
+      aiowatttime
+    ];
+    "waze_travel_time" = ps: with ps; [
+      wazeroutecalculator
+    ];
+    "weather" = ps: with ps; [
+    ];
+    "webhook" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "webostv" = ps: with ps; [
+      aiowebostv
+    ];
+    "websocket_api" = ps: with ps; [
+      aiohttp-cors
+    ];
+    "wemo" = ps: with ps; [
+      pywemo
+    ];
+    "whirlpool" = ps: with ps; [
+      whirlpool-sixth-sense
+    ];
+    "whois" = ps: with ps; [
+      whois
+    ];
+    "wiffi" = ps: with ps; [
+      wiffi
+    ];
+    "wilight" = ps: with ps; [
+      pywilight
+    ];
+    "wirelesstag" = ps: with ps; [
+    ]; # missing inputs: wirelesstagpy
+    "withings" = ps: with ps; [
+      aiohttp-cors
+    ]; # missing inputs: withings-api
+    "wiz" = ps: with ps; [
+      aiohttp-cors
+      ifaddr
+      pywizlight
+    ];
+    "wled" = ps: with ps; [
+      wled
+    ];
+    "wolflink" = ps: with ps; [
+    ]; # missing inputs: wolf_smartset
+    "workday" = ps: with ps; [
+      holidays
+    ];
+    "worldclock" = ps: with ps; [
+    ];
+    "worldtidesinfo" = ps: with ps; [
+    ];
+    "worxlandroid" = ps: with ps; [
+    ];
+    "wsdot" = ps: with ps; [
+    ];
+    "x10" = ps: with ps; [
+    ];
+    "xbox" = ps: with ps; [
+      aiohttp-cors
+      xbox-webapi
+    ];
+    "xbox_live" = ps: with ps; [
+      xboxapi
+    ];
+    "xeoma" = ps: with ps; [
+      pyxeoma
+    ];
+    "xiaomi" = ps: with ps; [
+      ha-ffmpeg
+    ];
+    "xiaomi_aqara" = ps: with ps; [
+      pyxiaomigateway
+      aiohttp-cors
+      ifaddr
+      netdisco
+      zeroconf
+    ];
+    "xiaomi_miio" = ps: with ps; [
+      construct
+      micloud
+      python-miio
+    ];
+    "xiaomi_tv" = ps: with ps; [
+      pymitv
+    ];
+    "xmpp" = ps: with ps; [
+      slixmpp
+    ];
+    "xs1" = ps: with ps; [
+    ]; # missing inputs: xs1-api-client
+    "yale_smart_alarm" = ps: with ps; [
+      yalesmartalarmclient
+    ];
+    "yamaha" = ps: with ps; [
+      rxv
+    ];
+    "yamaha_musiccast" = ps: with ps; [
+      aiohttp-cors
+      aiomusiccast
+      async-upnp-client
+      ifaddr
+      zeroconf
+    ];
+    "yandex_transport" = ps: with ps; [
+      aioymaps
+    ];
+    "yandextts" = ps: with ps; [
+    ];
+    "yeelight" = ps: with ps; [
+      aiohttp-cors
+      async-upnp-client
+      ifaddr
+      yeelight
+      zeroconf
+    ];
+    "yeelightsunflower" = ps: with ps; [
+    ]; # missing inputs: yeelightsunflower
+    "yi" = ps: with ps; [
+      aioftp
+      ha-ffmpeg
+    ];
+    "youless" = ps: with ps; [
+      youless-api
+    ];
+    "zabbix" = ps: with ps; [
+      py-zabbix
+    ];
+    "zamg" = ps: with ps; [
+    ];
+    "zengge" = ps: with ps; [
+      bluepy
+    ]; # missing inputs: zengge
+    "zeroconf" = ps: with ps; [
+      aiohttp-cors
+      ifaddr
+      zeroconf
+    ];
+    "zerproc" = ps: with ps; [
+      pyzerproc
+    ];
+    "zestimate" = ps: with ps; [
+      xmltodict
+    ];
+    "zha" = ps: with ps; [
+      aiohttp-cors
+      bellows
+      ifaddr
+      pyserial-asyncio
+      pyserial
+      pyudev
+      zeroconf
+      zha-quirks
+      zigpy-deconz
+      zigpy-xbee
+      zigpy-zigate
+      zigpy-znp
+      zigpy
+    ];
+    "zhong_hong" = ps: with ps; [
+    ]; # missing inputs: zhong_hong_hvac
+    "ziggo_mediabox_xl" = ps: with ps; [
+    ]; # missing inputs: ziggo-mediabox-xl
+    "zodiac" = ps: with ps; [
+    ];
+    "zone" = ps: with ps; [
+    ];
+    "zoneminder" = ps: with ps; [
+      zm-py
+    ];
+    "zwave_js" = ps: with ps; [
+      aiohttp-cors
+      pyserial
+      pyudev
+      zwave-js-server-python
+    ];
+    "zwave_me" = ps: with ps; [
+      aiohttp-cors
+      ifaddr
+      url-normalize
+      zeroconf
+      zwave-me-ws
+    ];
   };
   # components listed in tests/components for which all dependencies are packaged
   supportedComponentsWithTests = [
@@ -1052,6 +3150,7 @@
     "airthings"
     "airtouch4"
     "airvisual"
+    "airzone"
     "alarm_control_panel"
     "alarmdecoder"
     "alert"
@@ -1084,6 +3183,7 @@
     "axis"
     "azure_devops"
     "azure_event_hub"
+    "backup"
     "balboa"
     "bayesian"
     "binary_sensor"
@@ -1132,6 +3232,7 @@
     "debugpy"
     "deconz"
     "default_config"
+    "deluge"
     "demo"
     "denonavr"
     "derivative"
@@ -1145,6 +3246,7 @@
     "diagnostics"
     "dialogflow"
     "directv"
+    "discord"
     "discovery"
     "dlna_dmr"
     "dlna_dms"
@@ -1182,12 +3284,14 @@
     "fan"
     "feedreader"
     "ffmpeg"
+    "fibaro"
     "fido"
     "file"
     "filesize"
     "filter"
     "fireservicerota"
     "firmata"
+    "fivem"
     "fjaraskupan"
     "flic"
     "flick_electric"
@@ -1338,8 +3442,8 @@
     "meraki"
     "met"
     "met_eireann"
+    "meteo_france"
     "meteoclimatic"
-    "mhz19"
     "microsoft_face"
     "microsoft_face_detect"
     "microsoft_face_identify"
@@ -1409,10 +3513,10 @@
     "overkiz"
     "ovo_energy"
     "owntracks"
-    "ozw"
     "p1_monitor"
     "panel_custom"
     "panel_iframe"
+    "peco"
     "persistent_notification"
     "person"
     "philips_js"
@@ -1475,10 +3579,10 @@
     "select"
     "sense"
     "senseme"
+    "sensibo"
     "sensor"
     "sentry"
     "seventeentrack"
-    "sharkiq"
     "shell_command"
     "shelly"
     "shopping_list"
@@ -1494,7 +3598,6 @@
     "sma"
     "smappee"
     "smart_meter_texas"
-    "smarthab"
     "smartthings"
     "smarttub"
     "smhi"
@@ -1524,12 +3627,14 @@
     "statistics"
     "statsd"
     "steamist"
+    "stookalert"
     "stream"
     "stt"
     "subaru"
     "sun"
     "surepetcare"
     "switch"
+    "switch_as_x"
     "switchbot"
     "switcher_kis"
     "syncthing"
@@ -1541,9 +3646,11 @@
     "tado"
     "tag"
     "tailscale"
+    "tankerkoenig"
     "tasmota"
     "tcp"
     "telegram"
+    "telegram_bot"
     "tellduslive"
     "template"
     "tesla_wall_connector"
@@ -1553,8 +3660,10 @@
     "time_date"
     "timer"
     "tod"
+    "todoist"
     "tolo"
     "tomato"
+    "tomorrowio"
     "toon"
     "totalconnect"
     "tplink"
@@ -1562,6 +3671,7 @@
     "trace"
     "tractive"
     "tradfri"
+    "trafikverket_train"
     "trafikverket_weatherstation"
     "transmission"
     "transport_nsw"
@@ -1578,6 +3688,7 @@
     "universal"
     "upb"
     "upcloud"
+    "update"
     "updater"
     "upnp"
     "uptime"
@@ -1599,6 +3710,7 @@
     "vlc_telnet"
     "voicerss"
     "volumio"
+    "vulcan"
     "vultr"
     "wake_on_lan"
     "wallbox"
@@ -1635,7 +3747,7 @@
     "zha"
     "zodiac"
     "zone"
-    "zwave"
     "zwave_js"
+    "zwave_me"
   ];
 }
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index ce72bb0f8ed9d..b29f48310d05f 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -50,6 +50,9 @@ let
       hass-nabucasa = super.hass-nabucasa.overridePythonAttrs (oldAttrs: {
         doCheck = false; # requires aiohttp>=1.0.0
       });
+      rtsp-to-webrtc = super.rtsp-to-webrtc.overridePythonAttrs (oldAttrs: {
+        doCheck = false; # requires pytest-aiohttp>=1.0.0
+      });
       snitun = super.snitun.overridePythonAttrs (oldAttrs: {
         doCheck = false; # requires aiohttp>=1.0.0
       });
@@ -165,7 +168,7 @@ let
   extraPackagesFile = writeText "home-assistant-packages" (lib.concatMapStringsSep "\n" (pkg: pkg.pname) extraBuildInputs);
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "2022.3.8";
+  hassVersion = "2022.4.7";
 
 in python.pkgs.buildPythonApplication rec {
   pname = "homeassistant";
@@ -183,7 +186,7 @@ in python.pkgs.buildPythonApplication rec {
     owner = "home-assistant";
     repo = "core";
     rev = version;
-    hash = "sha256-FGsMFt/EEokaast81iiwKHqSsB1E4Si5ejTw+MV1MnQ=";
+    hash = "sha256-1m3t+AeHyuEyu3gT8P37A+L28mBdNKGmycU6eNOyb4M=";
   };
 
   # leave this in, so users don't have to constantly update their downstream patch handling
@@ -203,8 +206,8 @@ in python.pkgs.buildPythonApplication rec {
       "bcrypt"
       "cryptography"
       "httpx"
+      "jinja2"
       "pip"
-      "PyJWT"
       "requests"
       "yarl"
     ];
@@ -280,8 +283,6 @@ in python.pkgs.buildPythonApplication rec {
   ];
 
   pytestFlagsArray = [
-    # parallelize test run
-    "--numprocesses $NIX_BUILD_CORES"
     # assign tests grouped by file to workers
     "--dist loadfile"
     # retry racy tests that end in "RuntimeError: Event loop is closed"
@@ -307,6 +308,8 @@ in python.pkgs.buildPythonApplication rec {
     "test_merge"
     # Tests are flaky
     "test_config_platform_valid"
+    # Test requires pylint>=2.13.0
+    "test_invalid_discovery_info"
   ];
 
   preCheck = ''
diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix
index 9f13a6652d7de..fb708313072ce 100644
--- a/pkgs/servers/home-assistant/frontend.nix
+++ b/pkgs/servers/home-assistant/frontend.nix
@@ -4,7 +4,7 @@ buildPythonPackage rec {
   # the frontend version corresponding to a specific home-assistant version can be found here
   # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
   pname = "home-assistant-frontend";
-  version = "20220301.2";
+  version = "20220405.0";
   format = "wheel";
 
   src = fetchPypi {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     pname = "home_assistant_frontend";
     dist = "py3";
     python = "py3";
-    sha256 = "sha256-iIywlG9ATLV/+bHtOQFx4mRwToelpPdE3DOKSp4yxN0=";
+    sha256 = "sha256-M024uJJVhVSoGhJTc7d8NKItw0sAOGFuCsZNUe//vBg=";
   };
 
   # there is nothing to strip in this package
diff --git a/pkgs/servers/home-assistant/parse-requirements.py b/pkgs/servers/home-assistant/parse-requirements.py
index 0e3d5d5553e7b..28d8331cfe437 100755
--- a/pkgs/servers/home-assistant/parse-requirements.py
+++ b/pkgs/servers/home-assistant/parse-requirements.py
@@ -37,6 +37,7 @@ PKG_SET = "home-assistant.python.pkgs"
 # If some requirements are matched by multiple or no Python packages, the
 # following can be used to choose the correct one
 PKG_PREFERENCES = {
+    "ha-av": "av",
     "youtube_dl": "youtube-dl-light",
     "tensorflow": "tensorflow",
     "fiblary3": "fiblary3-fork", # https://github.com/home-assistant/core/issues/66466
@@ -98,13 +99,37 @@ def get_reqs(components: Dict[str, Dict[str, Any]], component: str, processed: S
     return requirements
 
 
+def repository_root() -> str:
+    return os.path.abspath(sys.argv[0] + "/../../../..")
+
+
+# For a package attribute and and an extra, check if the package exposes it via passthru.extras-require
+def has_extra(package: str, extra: str):
+    cmd = [
+        "nix-instantiate",
+        repository_root(),
+        "-A",
+        f"{package}.extras-require.{extra}",
+    ]
+    try:
+        subprocess.run(
+            cmd,
+            check=True,
+            stdout=subprocess.DEVNULL,
+            stderr=subprocess.DEVNULL,
+        )
+    except subprocess.CalledProcessError:
+        return False
+    return True
+
+
 def dump_packages() -> Dict[str, Dict[str, str]]:
     # Store a JSON dump of Nixpkgs' python3Packages
     output = subprocess.check_output(
         [
             "nix-env",
             "-f",
-            os.path.dirname(sys.argv[0]) + "/../../..",
+            repository_root(),
             "-qa",
             "-A",
             PKG_SET,
@@ -158,6 +183,7 @@ def main() -> None:
     outdated = {}
     for component in sorted(components.keys()):
         attr_paths = []
+        extra_attrs = []
         missing_reqs = []
         reqs = sorted(get_reqs(components, component, set()))
         for req in reqs:
@@ -165,9 +191,10 @@ def main() -> None:
             # Therefore, if there's a "#" in the line, only take the part after it
             req = req[req.find("#") + 1 :]
             name, required_version = req.split("==", maxsplit=1)
-            # Remove extra_require from name, e.g. samsungctl instead of
-            # samsungctl[websocket]
+            # Split package name and extra requires
+            extras = []
             if name.endswith("]"):
+                extras = name[name.find("[")+1:name.find("]")].split(",")
                 name = name[:name.find("[")]
             attr_path = name_to_attr_path(name, packages)
             if our_version := get_pkg_version(name, packages):
@@ -178,11 +205,20 @@ def main() -> None:
                     }
             if attr_path is not None:
                 # Add attribute path without "python3Packages." prefix
-                attr_paths.append(attr_path[len(PKG_SET + ".") :])
+                pname = attr_path[len(PKG_SET + "."):]
+                attr_paths.append(pname)
+                for extra in extras:
+                    # Check if package advertises extra requirements
+                    extra_attr = f"{pname}.extras-require.{extra}"
+                    if has_extra(attr_path, extra):
+                        extra_attrs.append(extra_attr)
+                    else:
+                        missing_reqs.append(extra_attr)
+
             else:
                 missing_reqs.append(name)
         else:
-            build_inputs[component] = (attr_paths, missing_reqs)
+            build_inputs[component] = (attr_paths, extra_attrs, missing_reqs)
 
     with open(os.path.dirname(sys.argv[0]) + "/component-packages.nix", "w") as f:
         f.write("# Generated by parse-requirements.py\n")
@@ -191,11 +227,14 @@ def main() -> None:
         f.write(f'  version = "{version}";\n')
         f.write("  components = {\n")
         for component, deps in build_inputs.items():
-            available, missing = deps
+            available, extras, missing = deps
             f.write(f'    "{component}" = ps: with ps; [')
             if available:
-                f.write(" " + " ".join(available))
-            f.write(" ];")
+                f.write("\n      " + "\n      ".join(available))
+            f.write("\n    ]")
+            if extras:
+                f.write("\n    ++ " + "\n    ++ ".join(extras))
+            f.write(";")
             if len(missing) > 0:
                 f.write(f" # missing inputs: {' '.join(missing)}")
             f.write("\n")
@@ -203,13 +242,13 @@ def main() -> None:
         f.write("  # components listed in tests/components for which all dependencies are packaged\n")
         f.write("  supportedComponentsWithTests = [\n")
         for component, deps in build_inputs.items():
-            available, missing = deps
+            available, extras, missing = deps
             if len(missing) == 0 and component in components_with_tests:
                 f.write(f'    "{component}"' + "\n")
         f.write("  ];\n")
         f.write("}\n")
 
-    supported_components = reduce(lambda n, c: n + (build_inputs[c][1] == []),
+    supported_components = reduce(lambda n, c: n + (build_inputs[c][2] == []),
                                   components.keys(), 0)
     total_components = len(components)
     print(f"{supported_components} / {total_components} components supported, "
diff --git a/pkgs/servers/home-assistant/tests.nix b/pkgs/servers/home-assistant/tests.nix
index ae2d91b933f96..26f67e69a546f 100644
--- a/pkgs/servers/home-assistant/tests.nix
+++ b/pkgs/servers/home-assistant/tests.nix
@@ -5,15 +5,16 @@
 let
   # some components' tests have additional dependencies
   extraCheckInputs = with home-assistant.python.pkgs; {
-    alexa = [ ha-av ];
-    camera = [ ha-av ];
+    alexa = [ av ];
+    camera = [ av ];
     cloud = [ mutagen ];
     config = [ pydispatcher ];
-    generic = [ ha-av ];
+    generic = [ av ];
     google_translate = [ mutagen ];
     lovelace = [ PyChromecast ];
-    nest = [ ha-av ];
+    nest = [ av ];
     onboarding = [ pymetno radios rpi-bad-power ];
+    tomorrowio = [ pyclimacell ];
     version = [ aioaseko ];
     voicerss = [ mutagen ];
     yandextts = [ mutagen ];
@@ -56,7 +57,11 @@ in lib.listToAttrs (map (component: lib.nameValuePair component (
     disabledTests = old.disabledTests ++ extraDisabledTests.${component} or [];
     disabledTestPaths = old.disabledTestPaths ++ extraDisabledTestPaths.${component} or [ ];
 
+    # components are more often racy than the core
+    dontUsePytestXdist = true;
+
     pytestFlagsArray = lib.remove "tests" old.pytestFlagsArray
+      ++ [ "--numprocesses=4" ]
       ++ extraPytestFlagsArray.${component} or [ ]
       ++ [ "tests/components/${component}" ];
 
@@ -67,8 +72,11 @@ in lib.listToAttrs (map (component: lib.nameValuePair component (
     meta = old.meta // {
       broken = lib.elem component [
         "airtouch4"
+        "bsblan"
         "dnsip"
-        "zwave"
+        "efergy"
+        "ssdp"
+        "subaru"
       ];
       # upstream only tests on Linux, so do we.
       platforms = lib.platforms.linux;
diff --git a/pkgs/servers/hqplayerd/default.nix b/pkgs/servers/hqplayerd/default.nix
index 7b65a789af893..e2b3abc6c0a60 100644
--- a/pkgs/servers/hqplayerd/default.nix
+++ b/pkgs/servers/hqplayerd/default.nix
@@ -21,36 +21,13 @@
 , meson
 , ninja
 }:
-let
-  # hqplayerd relies on some package versions available for the fc34 release,
-  # which has out-of-date pkgs compared to nixpkgs. The following drvs
-  # can/should be removed when the fc35 hqplayer rpm is made available.
-  gupnp_1_2 = gupnp.overrideAttrs (old: rec {
-    pname = "gupnp";
-    version = "1.2.7";
-    src = fetchurl {
-      url = "mirror://gnome/sources/gupnp/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-      sha256 = "sha256-hEEnbxr9AXbm9ZUCajpQfu0YCav6BAJrrT8hYis1I+w=";
-    };
-  });
-
-  gupnp-av_0_12 = gupnp-av.overrideAttrs (old: rec {
-    pname = "gupnp-av";
-    version = "0.12.11";
-    src = fetchurl {
-      url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-      sha256 = "sha256-aJ3PFJKriZHa6ikTZaMlSKd9GiKU2FszYitVzKnOb9w=";
-    };
-    nativeBuildInputs = lib.subtractLists [ meson ninja ] old.nativeBuildInputs;
-  });
-in
 stdenv.mkDerivation rec {
   pname = "hqplayerd";
   version = "4.30.3-87";
 
   src = fetchurl {
-    url = "https://www.signalyst.eu/bins/${pname}/fc34/${pname}-${version}sse42.fc34.x86_64.rpm";
-    hash = "sha256-RX9KI+4HGDUJ3y3An1zTMJTz28Of2Awn7COeX6EQc38=";
+    url = "https://www.signalyst.eu/bins/${pname}/fc35/${pname}-${version}.fc35.x86_64.rpm";
+    hash = "sha256-fEze4aScWDwHDTXU0GatdopQf6FWcywWCGhR/7zXK7A=";
   };
 
   unpackPhase = ''
@@ -66,8 +43,8 @@ stdenv.mkDerivation rec {
     gcc11.cc.lib
     gnome.rygel
     gssdp
-    gupnp_1_2
-    gupnp-av_0_12
+    gupnp
+    gupnp-av
     lame
     libgmpris
     llvmPackages_10.openmp
@@ -130,6 +107,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.signalyst.com/custom.html";
     description = "High-end upsampling multichannel software embedded HD-audio player";
     license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ lovesegfault ];
   };
 }
diff --git a/pkgs/servers/http/envoy/default.nix b/pkgs/servers/http/envoy/default.nix
index 0c5038898ea3f..5a85c2c1ab64b 100644
--- a/pkgs/servers/http/envoy/default.nix
+++ b/pkgs/servers/http/envoy/default.nix
@@ -74,7 +74,10 @@ buildBazelPackage rec {
   ];
 
   fetchAttrs = {
-    sha256 = "0f7mls2zrpjjvbz6pgkzrvr55bv05xn2l76j9i1r0cf367qqfkz8";
+    sha256 = {
+      x86_64-linux = "0f7mls2zrpjjvbz6pgkzrvr55bv05xn2l76j9i1r0cf367qqfkz8";
+      aarch64-linux = "1l3ls47z20xrw6x9qps5jm7vq50xb1acv9gczfdrj9hw6jybgwgg";
+    }.${stdenv.system} or (throw "unsupported system ${stdenv.system}");
     dontUseCmakeConfigure = true;
     dontUseGnConfigure = true;
     preInstall = ''
@@ -124,11 +127,13 @@ buildBazelPackage rec {
     "--noexperimental_strict_action_env"
     "--cxxopt=-Wno-maybe-uninitialized"
     "--cxxopt=-Wno-uninitialized"
+    "--cxxopt=-Wno-error=type-limits"
   ];
 
   passthru.tests = {
-    # No tests for Envoy itself (yet), but it's tested as a core component of Pomerium.
-    inherit (nixosTests) pomerium;
+    envoy = nixosTests.envoy;
+    # tested as a core component of Pomerium
+    pomerium = nixosTests.pomerium;
   };
 
   meta = with lib; {
@@ -136,6 +141,6 @@ buildBazelPackage rec {
     description = "Cloud-native edge and service proxy";
     license = licenses.asl20;
     maintainers = with maintainers; [ lukegb ];
-    platforms = [ "x86_64-linux" ];  # Other platforms will generate different fetch hashes.
+    platforms = [ "x86_64-linux" "aarch64-linux" ];
   };
 }
diff --git a/pkgs/servers/http/gitlab-pages/default.nix b/pkgs/servers/http/gitlab-pages/default.nix
index a907de3e73fe2..9a5f03e4c0b9a 100644
--- a/pkgs/servers/http/gitlab-pages/default.nix
+++ b/pkgs/servers/http/gitlab-pages/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gitlab-pages";
-  version = "1.51.0";
+  version = "1.54.0";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-pages";
     rev = "v${version}";
-    sha256 = "sha256-TOHD3SEKz5aVG4ikqls4sYMa+FnP8YaCoVAl+HRG9Sc=";
+    sha256 = "sha256-XPIUDHDoxuRiWar2P6dzPWY7YRn1jDU69TL3ZmGx1AM=";
   };
 
-  vendorSha256 = "sha256-0Vp+dVDMLl52dKLj1v+mgg+odu5DNfrANBzTztVymh8=";
+  vendorSha256 = "sha256-knW8IiuNGyirHCs8LR3VwWG4hxhWr9SmFzxjdbQ9l+k=";
   subPackages = [ "." ];
 
   meta = with lib; {
diff --git a/pkgs/servers/http/micro-httpd/default.nix b/pkgs/servers/http/micro-httpd/default.nix
index 01ff91ebda6ba..b4a555910545d 100644
--- a/pkgs/servers/http/micro-httpd/default.nix
+++ b/pkgs/servers/http/micro-httpd/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation {
     license     = licenses.bsd2;
     platforms   = platforms.unix;
     maintainers = with maintainers; [ copumpkin ];
+    mainProgram = "micro_httpd";
   };
 }
 
diff --git a/pkgs/servers/http/nginx/generic.nix b/pkgs/servers/http/nginx/generic.nix
index fa711d1dff4f0..f6b91d77511ec 100644
--- a/pkgs/servers/http/nginx/generic.nix
+++ b/pkgs/servers/http/nginx/generic.nix
@@ -18,6 +18,7 @@
 , sha256 ? null # when not specifying src
 , configureFlags ? []
 , buildInputs ? []
+, extraPatches ? []
 , fixPatch ? p: p
 , preConfigure ? ""
 , postInstall ? null
@@ -106,6 +107,9 @@ stdenv.mkDerivation {
   NIX_CFLAGS_COMPILE = toString ([
     "-I${libxml2.dev}/include/libxml2"
     "-Wno-error=implicit-fallthrough"
+  ] ++ optionals (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "11") [
+    # fix build vts module on gcc11
+    "-Wno-error=stringop-overread"
   ] ++ optional stdenv.isDarwin "-Wno-error=deprecated-declarations");
 
   configurePlatforms = [];
@@ -134,7 +138,8 @@ stdenv.mkDerivation {
       url = "https://raw.githubusercontent.com/openwrt/packages/c057dfb09c7027287c7862afab965a4cd95293a3/net/nginx/patches/103-sys_nerr.patch";
       sha256 = "0s497x6mkz947aw29wdy073k8dyjq8j99lax1a1mzpikzr4rxlmd";
     })
-  ] ++ mapModules "patches");
+  ] ++ mapModules "patches")
+    ++ extraPatches;
 
   hardeningEnable = optional (!stdenv.isDarwin) "pie";
 
diff --git a/pkgs/servers/http/nginx/stable.nix b/pkgs/servers/http/nginx/stable.nix
index 5db7c65daa404..c219b01fbb31c 100644
--- a/pkgs/servers/http/nginx/stable.nix
+++ b/pkgs/servers/http/nginx/stable.nix
@@ -1,6 +1,13 @@
-{ callPackage, ... } @ args:
+{ callPackage, fetchpatch, ... } @ args:
 
 callPackage ./generic.nix args {
   version = "1.20.2";
   sha256 = "0hjsyjzd35qyw49w210f67g678kvzinw4kg1acb0l6c2fxspd24m";
+  extraPatches = [
+    (fetchpatch {
+      name = "CVE-2021-3618.patch";
+      url = "https://github.com/nginx/nginx/commit/173f16f736c10eae46cd15dd861b04b82d91a37a.patch";
+      sha256 = "0cnxmbkp6ip61w7y1ihhnvziiwzz3p3wi2vpi5c7yaj5m964k5db";
+    })
+  ];
 }
diff --git a/pkgs/servers/http/pomerium/default.nix b/pkgs/servers/http/pomerium/default.nix
index 8a5580d5d0dba..b6de805a619bd 100644
--- a/pkgs/servers/http/pomerium/default.nix
+++ b/pkgs/servers/http/pomerium/default.nix
@@ -12,12 +12,12 @@ let
 in
 buildGoModule rec {
   pname = "pomerium";
-  version = "0.17.0";
+  version = "0.17.1";
   src = fetchFromGitHub {
     owner = "pomerium";
     repo = "pomerium";
     rev = "v${version}";
-    hash = "sha256:1hv76i6k9f0kp527nxlxqhklsvkh2cmfnqlszmlk2hxij31qnf8q";
+    hash = "sha256:0b9mdzyfn7c6gwgslqk787yyrrcmdjf3282vx2zvhcr3psz0xqwx";
   };
 
   vendorSha256 = "sha256:1cq4m5a7z64yg3v1c68d15ilw78il6p53vaqzxgn338zjggr3kig";
@@ -86,6 +86,6 @@ buildGoModule rec {
     description = "Authenticating reverse proxy";
     license = licenses.asl20;
     maintainers = with maintainers; [ lukegb ];
-    platforms = [ "x86_64-linux" ];  # Envoy derivation is x86_64-linux only.
+    platforms = [ "x86_64-linux" "aarch64-linux" ];
   };
 }
diff --git a/pkgs/servers/http/trafficserver/default.nix b/pkgs/servers/http/trafficserver/default.nix
index 9058a4cbda75d..06d640a5bc00f 100644
--- a/pkgs/servers/http/trafficserver/default.nix
+++ b/pkgs/servers/http/trafficserver/default.nix
@@ -13,6 +13,7 @@
 , python3
 , xz
 , zlib
+, catch2
 # recommended dependencies
 , withHwloc ? true
 , hwloc
@@ -113,6 +114,8 @@ stdenv.mkDerivation rec {
       tools/check-unused-dependencies
 
     substituteInPlace configure --replace '/usr/bin/file' '${file}/bin/file'
+
+    cp ${catch2}/include/catch2/catch.hpp tests/include/catch.hpp
   '' + lib.optionalString stdenv.isLinux ''
     substituteInPlace configure \
       --replace '/usr/include/linux' '${linuxHeaders}/include/linux'
diff --git a/pkgs/servers/http/webfs/default.nix b/pkgs/servers/http/webfs/default.nix
index 1281dee22be3e..812f5a0d00f5a 100644
--- a/pkgs/servers/http/webfs/default.nix
+++ b/pkgs/servers/http/webfs/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license     = licenses.gpl2;
     platforms   = platforms.all;
     maintainers = with maintainers; [ zimbatm ];
+    mainProgram = "webfsd";
   };
 }
diff --git a/pkgs/servers/hydron/default.nix b/pkgs/servers/hydron/default.nix
index ba163a719b10c..03236b4108242 100644
--- a/pkgs/servers/hydron/default.nix
+++ b/pkgs/servers/hydron/default.nix
@@ -2,26 +2,24 @@
 
 buildGoModule rec {
   pname = "hydron";
-  version = "3.0.4";
+  version = "3.3.5";
 
   src = fetchFromGitHub {
     owner = "bakape";
     repo = "hydron";
     rev = "v${version}";
-    sha256 = "BfMkKwz7ITEnAIMGUHlBH/Dn9yLjWKoqFWupPo1s2cs=";
+    sha256 = "0c958dsw5pq9z8n1b9q9j8y6vgiqf6mmlsf77ncb7yrlilhbrz6s";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-
-  vendorSha256 = "sha256-hvmIOCqVZTfV7EnkDUWiChynGkwTpHClMbW4LpbdAgo=";
+  vendorSha256 = "0cc8ar8p7lgg6rj76vhfp6bzrxyn5yaqjwj8i1bn0zp6sj6zcfam";
   proxyVendor = true;
-
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ ffmpeg ];
 
   meta = with lib; {
     homepage = "https://github.com/bakape/hydron";
     description = "High performance media tagger and organizer";
     license = licenses.lgpl3Plus;
-    maintainers = with maintainers; [ chiiruno ];
+    maintainers = with maintainers; [ Madouura ];
   };
 }
diff --git a/pkgs/servers/icingaweb2/default.nix b/pkgs/servers/icingaweb2/default.nix
index 75282ad15c4f0..651c739886822 100644
--- a/pkgs/servers/icingaweb2/default.nix
+++ b/pkgs/servers/icingaweb2/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "icingaweb2";
-  version = "2.10.0";
+  version = "2.10.1";
 
   src = fetchFromGitHub {
     owner = "Icinga";
     repo = "icingaweb2";
     rev = "v${version}";
-    sha256 = "sha256:0fhhq6mzpwj3dh6w583n4sngshf15dm8zgbli5cacy7jkzmsz0wn";
+    sha256 = "sha256-X4RaAJjhUnSALJyFYiwagN3cHyW+GyB5MPkW7l+Zv10=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/imgproxy/default.nix b/pkgs/servers/imgproxy/default.nix
index d35c53de9afe2..a46efc07fa831 100644
--- a/pkgs/servers/imgproxy/default.nix
+++ b/pkgs/servers/imgproxy/default.nix
@@ -14,8 +14,6 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-Rp0vTtpdKpYg/7UjX73Qwxu6dOqDr24nqp41fKN1IYw=";
 
-  doCheck = false;
-
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ gobject-introspection vips ]
diff --git a/pkgs/servers/irker/default.nix b/pkgs/servers/irker/default.nix
index 0aac945ad0063..28f6b60cf76b3 100644
--- a/pkgs/servers/irker/default.nix
+++ b/pkgs/servers/irker/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation {
     homepage = "https://gitlab.com/esr/irker";
     license = licenses.bsd2;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "irkerd";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/jellyfin/default.nix b/pkgs/servers/jellyfin/default.nix
index 814d8eecdc385..55644a5a14525 100644
--- a/pkgs/servers/jellyfin/default.nix
+++ b/pkgs/servers/jellyfin/default.nix
@@ -116,5 +116,6 @@ stdenv.mkDerivation rec {
     # https://github.com/jellyfin/jellyfin/issues/610#issuecomment-537625510
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ nyanloutre minijackson purcell jojosch ];
+    platforms = dotnet-aspnetcore.meta.platforms;
   };
 }
diff --git a/pkgs/servers/jellyfin/node-composition.nix b/pkgs/servers/jellyfin/node-composition.nix
index fc96c12c5b259..b678702d12c88 100644
--- a/pkgs/servers/jellyfin/node-composition.nix
+++ b/pkgs/servers/jellyfin/node-composition.nix
@@ -2,7 +2,7 @@
 
 {pkgs ? import <nixpkgs> {
     inherit system;
-  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-14_x"}:
 
 let
   nodeEnv = import ../../development/node-packages/node-env.nix {
diff --git a/pkgs/servers/jellyfin/node-deps.nix b/pkgs/servers/jellyfin/node-deps.nix
index 2a1b07a662e24..9b2a208ce8749 100644
--- a/pkgs/servers/jellyfin/node-deps.nix
+++ b/pkgs/servers/jellyfin/node-deps.nix
@@ -4,13 +4,22 @@
 
 let
   sources = {
-    "@apideck/better-ajv-errors-0.2.5" = {
+    "@ampproject/remapping-2.1.2" = {
+      name = "_at_ampproject_slash_remapping";
+      packageName = "@ampproject/remapping";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz";
+        sha512 = "hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==";
+      };
+    };
+    "@apideck/better-ajv-errors-0.3.3" = {
       name = "_at_apideck_slash_better-ajv-errors";
       packageName = "@apideck/better-ajv-errors";
-      version = "0.2.5";
+      version = "0.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.2.5.tgz";
-        sha512 = "Pm1fAqCT8OEfBVLddU3fWZ/URWpGGhkvlsBIgn9Y2jJlcNumo0gNzPsQswDJTiA8HcKpCjOhWQOgkA9kXR4Ghg==";
+        url = "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.3.tgz";
+        sha512 = "9o+HO2MbJhJHjDYZaDxJmSDckvDpiuItEsrIShV0DXeCshXWRHhqYyU/PKHMkuClOmFnZhRd6wzv4vpDu/dRKg==";
       };
     };
     "@babel/code-frame-7.12.11" = {
@@ -22,436 +31,454 @@ let
         sha512 = "Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==";
       };
     };
-    "@babel/code-frame-7.14.5" = {
+    "@babel/code-frame-7.16.7" = {
       name = "_at_babel_slash_code-frame";
       packageName = "@babel/code-frame";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz";
-        sha512 = "9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==";
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz";
+        sha512 = "iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==";
       };
     };
-    "@babel/compat-data-7.15.0" = {
+    "@babel/compat-data-7.17.7" = {
       name = "_at_babel_slash_compat-data";
       packageName = "@babel/compat-data";
-      version = "7.15.0";
+      version = "7.17.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz";
-        sha512 = "0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==";
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz";
+        sha512 = "p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==";
       };
     };
-    "@babel/core-7.15.5" = {
+    "@babel/core-7.17.8" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.15.5";
+      version = "7.17.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz";
-        sha512 = "pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz";
+        sha512 = "OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==";
       };
     };
-    "@babel/eslint-parser-7.15.4" = {
+    "@babel/eslint-parser-7.17.0" = {
       name = "_at_babel_slash_eslint-parser";
       packageName = "@babel/eslint-parser";
-      version = "7.15.4";
+      version = "7.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.4.tgz";
-        sha512 = "hPMIAmGNbmQzXJIo2P43Zj9UhRmGev5f9nqdBFOWNGDGh6XKmjby79woBvg6y0Jur6yRfQBneDbUQ8ZVc1krFw==";
+        url = "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz";
+        sha512 = "PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==";
       };
     };
-    "@babel/eslint-plugin-7.14.5" = {
+    "@babel/eslint-plugin-7.17.7" = {
       name = "_at_babel_slash_eslint-plugin";
       packageName = "@babel/eslint-plugin";
-      version = "7.14.5";
+      version = "7.17.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/eslint-plugin/-/eslint-plugin-7.14.5.tgz";
-        sha512 = "nzt/YMnOOIRikvSn2hk9+W2omgJBy6U8TN0R+WTTmqapA+HnZTuviZaketdTE9W7/k/+E/DfZlt1ey1NSE39pg==";
+        url = "https://registry.npmjs.org/@babel/eslint-plugin/-/eslint-plugin-7.17.7.tgz";
+        sha512 = "JATUoJJXSgwI0T8juxWYtK1JSgoLpIGUsCHIv+NMXcUDA2vIe6nvAHR9vnuJgs/P1hOFw7vPwibixzfqBBLIVw==";
       };
     };
-    "@babel/generator-7.15.4" = {
+    "@babel/generator-7.17.7" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.15.4";
+      version = "7.17.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz";
-        sha512 = "d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz";
+        sha512 = "oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==";
       };
     };
-    "@babel/helper-annotate-as-pure-7.15.4" = {
+    "@babel/helper-annotate-as-pure-7.16.7" = {
       name = "_at_babel_slash_helper-annotate-as-pure";
       packageName = "@babel/helper-annotate-as-pure";
-      version = "7.15.4";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz";
-        sha512 = "QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==";
+        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz";
+        sha512 = "s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==";
       };
     };
-    "@babel/helper-builder-binary-assignment-operator-visitor-7.15.4" = {
+    "@babel/helper-builder-binary-assignment-operator-visitor-7.16.7" = {
       name = "_at_babel_slash_helper-builder-binary-assignment-operator-visitor";
       packageName = "@babel/helper-builder-binary-assignment-operator-visitor";
-      version = "7.15.4";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz";
-        sha512 = "P8o7JP2Mzi0SdC6eWr1zF+AEYvrsZa7GSY1lTayjF5XJhVH0kjLYUZPvTMflP7tBgZoe9gIhTa60QwFpqh/E0Q==";
+        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz";
+        sha512 = "C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==";
       };
     };
-    "@babel/helper-compilation-targets-7.15.4" = {
+    "@babel/helper-compilation-targets-7.17.7" = {
       name = "_at_babel_slash_helper-compilation-targets";
       packageName = "@babel/helper-compilation-targets";
-      version = "7.15.4";
+      version = "7.17.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz";
-        sha512 = "rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==";
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz";
+        sha512 = "UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==";
       };
     };
-    "@babel/helper-create-class-features-plugin-7.15.4" = {
+    "@babel/helper-create-class-features-plugin-7.17.6" = {
       name = "_at_babel_slash_helper-create-class-features-plugin";
       packageName = "@babel/helper-create-class-features-plugin";
-      version = "7.15.4";
+      version = "7.17.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz";
-        sha512 = "7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==";
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz";
+        sha512 = "SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==";
       };
     };
-    "@babel/helper-create-regexp-features-plugin-7.14.5" = {
+    "@babel/helper-create-regexp-features-plugin-7.17.0" = {
       name = "_at_babel_slash_helper-create-regexp-features-plugin";
       packageName = "@babel/helper-create-regexp-features-plugin";
-      version = "7.14.5";
+      version = "7.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz";
-        sha512 = "TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==";
+        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz";
+        sha512 = "awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==";
       };
     };
-    "@babel/helper-define-polyfill-provider-0.2.3" = {
+    "@babel/helper-define-polyfill-provider-0.3.1" = {
       name = "_at_babel_slash_helper-define-polyfill-provider";
       packageName = "@babel/helper-define-polyfill-provider";
-      version = "0.2.3";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz";
+        sha512 = "J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==";
+      };
+    };
+    "@babel/helper-environment-visitor-7.16.7" = {
+      name = "_at_babel_slash_helper-environment-visitor";
+      packageName = "@babel/helper-environment-visitor";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz";
-        sha512 = "RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==";
+        url = "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz";
+        sha512 = "SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==";
       };
     };
-    "@babel/helper-explode-assignable-expression-7.15.4" = {
+    "@babel/helper-explode-assignable-expression-7.16.7" = {
       name = "_at_babel_slash_helper-explode-assignable-expression";
       packageName = "@babel/helper-explode-assignable-expression";
-      version = "7.15.4";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz";
-        sha512 = "J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g==";
+        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz";
+        sha512 = "KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==";
       };
     };
-    "@babel/helper-function-name-7.15.4" = {
+    "@babel/helper-function-name-7.16.7" = {
       name = "_at_babel_slash_helper-function-name";
       packageName = "@babel/helper-function-name";
-      version = "7.15.4";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz";
-        sha512 = "Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==";
+        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz";
+        sha512 = "QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==";
       };
     };
-    "@babel/helper-get-function-arity-7.15.4" = {
+    "@babel/helper-get-function-arity-7.16.7" = {
       name = "_at_babel_slash_helper-get-function-arity";
       packageName = "@babel/helper-get-function-arity";
-      version = "7.15.4";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz";
-        sha512 = "1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==";
+        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz";
+        sha512 = "flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==";
       };
     };
-    "@babel/helper-hoist-variables-7.15.4" = {
+    "@babel/helper-hoist-variables-7.16.7" = {
       name = "_at_babel_slash_helper-hoist-variables";
       packageName = "@babel/helper-hoist-variables";
-      version = "7.15.4";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz";
-        sha512 = "VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==";
+        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz";
+        sha512 = "m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==";
       };
     };
-    "@babel/helper-member-expression-to-functions-7.15.4" = {
+    "@babel/helper-member-expression-to-functions-7.17.7" = {
       name = "_at_babel_slash_helper-member-expression-to-functions";
       packageName = "@babel/helper-member-expression-to-functions";
-      version = "7.15.4";
+      version = "7.17.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz";
-        sha512 = "cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==";
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz";
+        sha512 = "thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==";
       };
     };
-    "@babel/helper-module-imports-7.15.4" = {
+    "@babel/helper-module-imports-7.16.7" = {
       name = "_at_babel_slash_helper-module-imports";
       packageName = "@babel/helper-module-imports";
-      version = "7.15.4";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz";
-        sha512 = "jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==";
+        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz";
+        sha512 = "LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==";
       };
     };
-    "@babel/helper-module-transforms-7.15.4" = {
+    "@babel/helper-module-transforms-7.17.7" = {
       name = "_at_babel_slash_helper-module-transforms";
       packageName = "@babel/helper-module-transforms";
-      version = "7.15.4";
+      version = "7.17.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz";
-        sha512 = "9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==";
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz";
+        sha512 = "VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==";
       };
     };
-    "@babel/helper-optimise-call-expression-7.15.4" = {
+    "@babel/helper-optimise-call-expression-7.16.7" = {
       name = "_at_babel_slash_helper-optimise-call-expression";
       packageName = "@babel/helper-optimise-call-expression";
-      version = "7.15.4";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz";
-        sha512 = "E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==";
+        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz";
+        sha512 = "EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==";
       };
     };
-    "@babel/helper-plugin-utils-7.14.5" = {
+    "@babel/helper-plugin-utils-7.16.7" = {
       name = "_at_babel_slash_helper-plugin-utils";
       packageName = "@babel/helper-plugin-utils";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz";
-        sha512 = "/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==";
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz";
+        sha512 = "Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==";
       };
     };
-    "@babel/helper-remap-async-to-generator-7.15.4" = {
+    "@babel/helper-remap-async-to-generator-7.16.8" = {
       name = "_at_babel_slash_helper-remap-async-to-generator";
       packageName = "@babel/helper-remap-async-to-generator";
-      version = "7.15.4";
+      version = "7.16.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz";
-        sha512 = "v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ==";
+        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz";
+        sha512 = "fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==";
       };
     };
-    "@babel/helper-replace-supers-7.15.4" = {
+    "@babel/helper-replace-supers-7.16.7" = {
       name = "_at_babel_slash_helper-replace-supers";
       packageName = "@babel/helper-replace-supers";
-      version = "7.15.4";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz";
-        sha512 = "/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==";
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz";
+        sha512 = "y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==";
       };
     };
-    "@babel/helper-simple-access-7.15.4" = {
+    "@babel/helper-simple-access-7.17.7" = {
       name = "_at_babel_slash_helper-simple-access";
       packageName = "@babel/helper-simple-access";
-      version = "7.15.4";
+      version = "7.17.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz";
-        sha512 = "UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==";
+        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz";
+        sha512 = "txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==";
       };
     };
-    "@babel/helper-skip-transparent-expression-wrappers-7.15.4" = {
+    "@babel/helper-skip-transparent-expression-wrappers-7.16.0" = {
       name = "_at_babel_slash_helper-skip-transparent-expression-wrappers";
       packageName = "@babel/helper-skip-transparent-expression-wrappers";
-      version = "7.15.4";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz";
-        sha512 = "BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==";
+        url = "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz";
+        sha512 = "+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==";
       };
     };
-    "@babel/helper-split-export-declaration-7.15.4" = {
+    "@babel/helper-split-export-declaration-7.16.7" = {
       name = "_at_babel_slash_helper-split-export-declaration";
       packageName = "@babel/helper-split-export-declaration";
-      version = "7.15.4";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz";
-        sha512 = "HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==";
+        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz";
+        sha512 = "xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==";
       };
     };
-    "@babel/helper-validator-identifier-7.14.9" = {
+    "@babel/helper-validator-identifier-7.16.7" = {
       name = "_at_babel_slash_helper-validator-identifier";
       packageName = "@babel/helper-validator-identifier";
-      version = "7.14.9";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz";
-        sha512 = "pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==";
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz";
+        sha512 = "hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==";
       };
     };
-    "@babel/helper-validator-option-7.14.5" = {
+    "@babel/helper-validator-option-7.16.7" = {
       name = "_at_babel_slash_helper-validator-option";
       packageName = "@babel/helper-validator-option";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz";
-        sha512 = "OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==";
+        url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz";
+        sha512 = "TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==";
       };
     };
-    "@babel/helper-wrap-function-7.15.4" = {
+    "@babel/helper-wrap-function-7.16.8" = {
       name = "_at_babel_slash_helper-wrap-function";
       packageName = "@babel/helper-wrap-function";
-      version = "7.15.4";
+      version = "7.16.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz";
-        sha512 = "Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw==";
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz";
+        sha512 = "8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==";
       };
     };
-    "@babel/helpers-7.15.4" = {
+    "@babel/helpers-7.17.8" = {
       name = "_at_babel_slash_helpers";
       packageName = "@babel/helpers";
-      version = "7.15.4";
+      version = "7.17.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz";
-        sha512 = "V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==";
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz";
+        sha512 = "QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==";
       };
     };
-    "@babel/highlight-7.14.5" = {
+    "@babel/highlight-7.16.10" = {
       name = "_at_babel_slash_highlight";
       packageName = "@babel/highlight";
-      version = "7.14.5";
+      version = "7.16.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz";
-        sha512 = "qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==";
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz";
+        sha512 = "5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==";
       };
     };
-    "@babel/parser-7.15.5" = {
+    "@babel/parser-7.17.8" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.15.5";
+      version = "7.17.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz";
+        sha512 = "BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==";
+      };
+    };
+    "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7" = {
+      name = "_at_babel_slash_plugin-bugfix-safari-id-destructuring-collision-in-function-expression";
+      packageName = "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.15.5.tgz";
-        sha512 = "2hQstc6I7T6tQsWzlboMh3SgMRPaS4H6H7cPQsJkdzTzEGqQrpLDsE2BGASU5sBPoEQyHzeqU6C8uKbFeEk6sg==";
+        url = "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz";
+        sha512 = "anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==";
       };
     };
-    "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4" = {
+    "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7" = {
       name = "_at_babel_slash_plugin-bugfix-v8-spread-parameters-in-optional-chaining";
       packageName = "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining";
-      version = "7.15.4";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz";
-        sha512 = "eBnpsl9tlhPhpI10kU06JHnrYXwg3+V6CaP2idsCXNef0aeslpqyITXQ74Vfk5uHgY7IG7XP0yIH8b42KSzHog==";
+        url = "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz";
+        sha512 = "di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==";
       };
     };
-    "@babel/plugin-proposal-async-generator-functions-7.15.4" = {
+    "@babel/plugin-proposal-async-generator-functions-7.16.8" = {
       name = "_at_babel_slash_plugin-proposal-async-generator-functions";
       packageName = "@babel/plugin-proposal-async-generator-functions";
-      version = "7.15.4";
+      version = "7.16.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz";
-        sha512 = "2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz";
+        sha512 = "71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==";
       };
     };
-    "@babel/plugin-proposal-class-properties-7.14.5" = {
+    "@babel/plugin-proposal-class-properties-7.16.7" = {
       name = "_at_babel_slash_plugin-proposal-class-properties";
       packageName = "@babel/plugin-proposal-class-properties";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz";
-        sha512 = "q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz";
+        sha512 = "IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==";
       };
     };
-    "@babel/plugin-proposal-class-static-block-7.15.4" = {
+    "@babel/plugin-proposal-class-static-block-7.17.6" = {
       name = "_at_babel_slash_plugin-proposal-class-static-block";
       packageName = "@babel/plugin-proposal-class-static-block";
-      version = "7.15.4";
+      version = "7.17.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz";
-        sha512 = "M682XWrrLNk3chXCjoPUQWOyYsB93B9z3mRyjtqqYJWDf2mfCdIYgDrA11cgNVhAQieaq6F2fn2f3wI0U4aTjA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz";
+        sha512 = "X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==";
       };
     };
-    "@babel/plugin-proposal-dynamic-import-7.14.5" = {
+    "@babel/plugin-proposal-dynamic-import-7.16.7" = {
       name = "_at_babel_slash_plugin-proposal-dynamic-import";
       packageName = "@babel/plugin-proposal-dynamic-import";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz";
-        sha512 = "ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz";
+        sha512 = "I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==";
       };
     };
-    "@babel/plugin-proposal-export-namespace-from-7.14.5" = {
+    "@babel/plugin-proposal-export-namespace-from-7.16.7" = {
       name = "_at_babel_slash_plugin-proposal-export-namespace-from";
       packageName = "@babel/plugin-proposal-export-namespace-from";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz";
-        sha512 = "g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz";
+        sha512 = "ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==";
       };
     };
-    "@babel/plugin-proposal-json-strings-7.14.5" = {
+    "@babel/plugin-proposal-json-strings-7.16.7" = {
       name = "_at_babel_slash_plugin-proposal-json-strings";
       packageName = "@babel/plugin-proposal-json-strings";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz";
-        sha512 = "NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz";
+        sha512 = "lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==";
       };
     };
-    "@babel/plugin-proposal-logical-assignment-operators-7.14.5" = {
+    "@babel/plugin-proposal-logical-assignment-operators-7.16.7" = {
       name = "_at_babel_slash_plugin-proposal-logical-assignment-operators";
       packageName = "@babel/plugin-proposal-logical-assignment-operators";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz";
-        sha512 = "YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz";
+        sha512 = "K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==";
       };
     };
-    "@babel/plugin-proposal-nullish-coalescing-operator-7.14.5" = {
+    "@babel/plugin-proposal-nullish-coalescing-operator-7.16.7" = {
       name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator";
       packageName = "@babel/plugin-proposal-nullish-coalescing-operator";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz";
-        sha512 = "gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz";
+        sha512 = "aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==";
       };
     };
-    "@babel/plugin-proposal-numeric-separator-7.14.5" = {
+    "@babel/plugin-proposal-numeric-separator-7.16.7" = {
       name = "_at_babel_slash_plugin-proposal-numeric-separator";
       packageName = "@babel/plugin-proposal-numeric-separator";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz";
-        sha512 = "yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz";
+        sha512 = "vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==";
       };
     };
-    "@babel/plugin-proposal-object-rest-spread-7.14.7" = {
+    "@babel/plugin-proposal-object-rest-spread-7.17.3" = {
       name = "_at_babel_slash_plugin-proposal-object-rest-spread";
       packageName = "@babel/plugin-proposal-object-rest-spread";
-      version = "7.14.7";
+      version = "7.17.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz";
-        sha512 = "082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz";
+        sha512 = "yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==";
       };
     };
-    "@babel/plugin-proposal-optional-catch-binding-7.14.5" = {
+    "@babel/plugin-proposal-optional-catch-binding-7.16.7" = {
       name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
       packageName = "@babel/plugin-proposal-optional-catch-binding";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz";
-        sha512 = "3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz";
+        sha512 = "eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==";
       };
     };
-    "@babel/plugin-proposal-optional-chaining-7.14.5" = {
+    "@babel/plugin-proposal-optional-chaining-7.16.7" = {
       name = "_at_babel_slash_plugin-proposal-optional-chaining";
       packageName = "@babel/plugin-proposal-optional-chaining";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz";
-        sha512 = "ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz";
+        sha512 = "eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==";
       };
     };
-    "@babel/plugin-proposal-private-methods-7.14.5" = {
+    "@babel/plugin-proposal-private-methods-7.16.11" = {
       name = "_at_babel_slash_plugin-proposal-private-methods";
       packageName = "@babel/plugin-proposal-private-methods";
-      version = "7.14.5";
+      version = "7.16.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz";
-        sha512 = "838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz";
+        sha512 = "F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==";
       };
     };
-    "@babel/plugin-proposal-private-property-in-object-7.15.4" = {
+    "@babel/plugin-proposal-private-property-in-object-7.16.7" = {
       name = "_at_babel_slash_plugin-proposal-private-property-in-object";
       packageName = "@babel/plugin-proposal-private-property-in-object";
-      version = "7.15.4";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz";
-        sha512 = "X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz";
+        sha512 = "rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==";
       };
     };
-    "@babel/plugin-proposal-unicode-property-regex-7.14.5" = {
+    "@babel/plugin-proposal-unicode-property-regex-7.16.7" = {
       name = "_at_babel_slash_plugin-proposal-unicode-property-regex";
       packageName = "@babel/plugin-proposal-unicode-property-regex";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz";
-        sha512 = "6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz";
+        sha512 = "QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==";
       };
     };
     "@babel/plugin-syntax-async-generators-7.8.4" = {
@@ -580,346 +607,346 @@ let
         sha512 = "hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==";
       };
     };
-    "@babel/plugin-transform-arrow-functions-7.14.5" = {
+    "@babel/plugin-transform-arrow-functions-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-arrow-functions";
       packageName = "@babel/plugin-transform-arrow-functions";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz";
-        sha512 = "KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz";
+        sha512 = "9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==";
       };
     };
-    "@babel/plugin-transform-async-to-generator-7.14.5" = {
+    "@babel/plugin-transform-async-to-generator-7.16.8" = {
       name = "_at_babel_slash_plugin-transform-async-to-generator";
       packageName = "@babel/plugin-transform-async-to-generator";
-      version = "7.14.5";
+      version = "7.16.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz";
-        sha512 = "szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz";
+        sha512 = "MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==";
       };
     };
-    "@babel/plugin-transform-block-scoped-functions-7.14.5" = {
+    "@babel/plugin-transform-block-scoped-functions-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-block-scoped-functions";
       packageName = "@babel/plugin-transform-block-scoped-functions";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz";
-        sha512 = "dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz";
+        sha512 = "JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==";
       };
     };
-    "@babel/plugin-transform-block-scoping-7.15.3" = {
+    "@babel/plugin-transform-block-scoping-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-block-scoping";
       packageName = "@babel/plugin-transform-block-scoping";
-      version = "7.15.3";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz";
-        sha512 = "nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz";
+        sha512 = "ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==";
       };
     };
-    "@babel/plugin-transform-classes-7.15.4" = {
+    "@babel/plugin-transform-classes-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-classes";
       packageName = "@babel/plugin-transform-classes";
-      version = "7.15.4";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz";
-        sha512 = "Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz";
+        sha512 = "WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==";
       };
     };
-    "@babel/plugin-transform-computed-properties-7.14.5" = {
+    "@babel/plugin-transform-computed-properties-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-computed-properties";
       packageName = "@babel/plugin-transform-computed-properties";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz";
-        sha512 = "pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz";
+        sha512 = "gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==";
       };
     };
-    "@babel/plugin-transform-destructuring-7.14.7" = {
+    "@babel/plugin-transform-destructuring-7.17.7" = {
       name = "_at_babel_slash_plugin-transform-destructuring";
       packageName = "@babel/plugin-transform-destructuring";
-      version = "7.14.7";
+      version = "7.17.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz";
-        sha512 = "0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz";
+        sha512 = "XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==";
       };
     };
-    "@babel/plugin-transform-dotall-regex-7.14.5" = {
+    "@babel/plugin-transform-dotall-regex-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-dotall-regex";
       packageName = "@babel/plugin-transform-dotall-regex";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz";
-        sha512 = "loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz";
+        sha512 = "Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==";
       };
     };
-    "@babel/plugin-transform-duplicate-keys-7.14.5" = {
+    "@babel/plugin-transform-duplicate-keys-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-duplicate-keys";
       packageName = "@babel/plugin-transform-duplicate-keys";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz";
-        sha512 = "iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz";
+        sha512 = "03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==";
       };
     };
-    "@babel/plugin-transform-exponentiation-operator-7.14.5" = {
+    "@babel/plugin-transform-exponentiation-operator-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-exponentiation-operator";
       packageName = "@babel/plugin-transform-exponentiation-operator";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz";
-        sha512 = "jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz";
+        sha512 = "8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==";
       };
     };
-    "@babel/plugin-transform-for-of-7.15.4" = {
+    "@babel/plugin-transform-for-of-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-for-of";
       packageName = "@babel/plugin-transform-for-of";
-      version = "7.15.4";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz";
-        sha512 = "DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz";
+        sha512 = "/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==";
       };
     };
-    "@babel/plugin-transform-function-name-7.14.5" = {
+    "@babel/plugin-transform-function-name-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-function-name";
       packageName = "@babel/plugin-transform-function-name";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz";
-        sha512 = "vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz";
+        sha512 = "SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==";
       };
     };
-    "@babel/plugin-transform-literals-7.14.5" = {
+    "@babel/plugin-transform-literals-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-literals";
       packageName = "@babel/plugin-transform-literals";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz";
-        sha512 = "ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz";
+        sha512 = "6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==";
       };
     };
-    "@babel/plugin-transform-member-expression-literals-7.14.5" = {
+    "@babel/plugin-transform-member-expression-literals-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-member-expression-literals";
       packageName = "@babel/plugin-transform-member-expression-literals";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz";
-        sha512 = "WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz";
+        sha512 = "mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==";
       };
     };
-    "@babel/plugin-transform-modules-amd-7.14.5" = {
+    "@babel/plugin-transform-modules-amd-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-modules-amd";
       packageName = "@babel/plugin-transform-modules-amd";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz";
-        sha512 = "3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz";
+        sha512 = "KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==";
       };
     };
-    "@babel/plugin-transform-modules-commonjs-7.15.4" = {
+    "@babel/plugin-transform-modules-commonjs-7.17.7" = {
       name = "_at_babel_slash_plugin-transform-modules-commonjs";
       packageName = "@babel/plugin-transform-modules-commonjs";
-      version = "7.15.4";
+      version = "7.17.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz";
-        sha512 = "qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz";
+        sha512 = "ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA==";
       };
     };
-    "@babel/plugin-transform-modules-systemjs-7.15.4" = {
+    "@babel/plugin-transform-modules-systemjs-7.17.8" = {
       name = "_at_babel_slash_plugin-transform-modules-systemjs";
       packageName = "@babel/plugin-transform-modules-systemjs";
-      version = "7.15.4";
+      version = "7.17.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz";
-        sha512 = "fJUnlQrl/mezMneR72CKCgtOoahqGJNVKpompKwzv3BrEXdlPspTcyxrZ1XmDTIr9PpULrgEQo3qNKp6dW7ssw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz";
+        sha512 = "39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==";
       };
     };
-    "@babel/plugin-transform-modules-umd-7.14.5" = {
+    "@babel/plugin-transform-modules-umd-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-modules-umd";
       packageName = "@babel/plugin-transform-modules-umd";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz";
-        sha512 = "RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz";
+        sha512 = "EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==";
       };
     };
-    "@babel/plugin-transform-named-capturing-groups-regex-7.14.9" = {
+    "@babel/plugin-transform-named-capturing-groups-regex-7.16.8" = {
       name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex";
       packageName = "@babel/plugin-transform-named-capturing-groups-regex";
-      version = "7.14.9";
+      version = "7.16.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz";
-        sha512 = "l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz";
+        sha512 = "j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==";
       };
     };
-    "@babel/plugin-transform-new-target-7.14.5" = {
+    "@babel/plugin-transform-new-target-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-new-target";
       packageName = "@babel/plugin-transform-new-target";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz";
-        sha512 = "Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz";
+        sha512 = "xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==";
       };
     };
-    "@babel/plugin-transform-object-super-7.14.5" = {
+    "@babel/plugin-transform-object-super-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-object-super";
       packageName = "@babel/plugin-transform-object-super";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz";
-        sha512 = "MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz";
+        sha512 = "14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==";
       };
     };
-    "@babel/plugin-transform-parameters-7.15.4" = {
+    "@babel/plugin-transform-parameters-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-parameters";
       packageName = "@babel/plugin-transform-parameters";
-      version = "7.15.4";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz";
-        sha512 = "9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz";
+        sha512 = "AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==";
       };
     };
-    "@babel/plugin-transform-property-literals-7.14.5" = {
+    "@babel/plugin-transform-property-literals-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-property-literals";
       packageName = "@babel/plugin-transform-property-literals";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz";
-        sha512 = "r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz";
+        sha512 = "z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==";
       };
     };
-    "@babel/plugin-transform-regenerator-7.14.5" = {
+    "@babel/plugin-transform-regenerator-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-regenerator";
       packageName = "@babel/plugin-transform-regenerator";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz";
-        sha512 = "NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz";
+        sha512 = "mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==";
       };
     };
-    "@babel/plugin-transform-reserved-words-7.14.5" = {
+    "@babel/plugin-transform-reserved-words-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-reserved-words";
       packageName = "@babel/plugin-transform-reserved-words";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz";
-        sha512 = "cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz";
+        sha512 = "KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==";
       };
     };
-    "@babel/plugin-transform-shorthand-properties-7.14.5" = {
+    "@babel/plugin-transform-shorthand-properties-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-shorthand-properties";
       packageName = "@babel/plugin-transform-shorthand-properties";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz";
-        sha512 = "xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz";
+        sha512 = "hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==";
       };
     };
-    "@babel/plugin-transform-spread-7.14.6" = {
+    "@babel/plugin-transform-spread-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-spread";
       packageName = "@babel/plugin-transform-spread";
-      version = "7.14.6";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz";
-        sha512 = "Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz";
+        sha512 = "+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==";
       };
     };
-    "@babel/plugin-transform-sticky-regex-7.14.5" = {
+    "@babel/plugin-transform-sticky-regex-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-sticky-regex";
       packageName = "@babel/plugin-transform-sticky-regex";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz";
-        sha512 = "Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz";
+        sha512 = "NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==";
       };
     };
-    "@babel/plugin-transform-template-literals-7.14.5" = {
+    "@babel/plugin-transform-template-literals-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-template-literals";
       packageName = "@babel/plugin-transform-template-literals";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz";
-        sha512 = "22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz";
+        sha512 = "VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==";
       };
     };
-    "@babel/plugin-transform-typeof-symbol-7.14.5" = {
+    "@babel/plugin-transform-typeof-symbol-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-typeof-symbol";
       packageName = "@babel/plugin-transform-typeof-symbol";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz";
-        sha512 = "lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz";
+        sha512 = "p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==";
       };
     };
-    "@babel/plugin-transform-unicode-escapes-7.14.5" = {
+    "@babel/plugin-transform-unicode-escapes-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-unicode-escapes";
       packageName = "@babel/plugin-transform-unicode-escapes";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz";
-        sha512 = "crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz";
+        sha512 = "TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==";
       };
     };
-    "@babel/plugin-transform-unicode-regex-7.14.5" = {
+    "@babel/plugin-transform-unicode-regex-7.16.7" = {
       name = "_at_babel_slash_plugin-transform-unicode-regex";
       packageName = "@babel/plugin-transform-unicode-regex";
-      version = "7.14.5";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz";
-        sha512 = "UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz";
+        sha512 = "oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==";
       };
     };
-    "@babel/preset-env-7.15.4" = {
+    "@babel/preset-env-7.16.11" = {
       name = "_at_babel_slash_preset-env";
       packageName = "@babel/preset-env";
-      version = "7.15.4";
+      version = "7.16.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.4.tgz";
-        sha512 = "4f2nLw+q6ht8gl3sHCmNhmA5W6b1ItLzbH3UrKuJxACHr2eCpk96jwjrAfCAaXaaVwTQGnyUYHY2EWXJGt7TUQ==";
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz";
+        sha512 = "qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==";
       };
     };
-    "@babel/preset-modules-0.1.4" = {
+    "@babel/preset-modules-0.1.5" = {
       name = "_at_babel_slash_preset-modules";
       packageName = "@babel/preset-modules";
-      version = "0.1.4";
+      version = "0.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz";
-        sha512 = "J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==";
+        url = "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz";
+        sha512 = "A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==";
       };
     };
-    "@babel/runtime-7.15.4" = {
+    "@babel/runtime-7.17.8" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.15.4";
+      version = "7.17.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz";
-        sha512 = "99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz";
+        sha512 = "dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==";
       };
     };
-    "@babel/template-7.15.4" = {
+    "@babel/template-7.16.7" = {
       name = "_at_babel_slash_template";
       packageName = "@babel/template";
-      version = "7.15.4";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz";
-        sha512 = "UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==";
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz";
+        sha512 = "I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==";
       };
     };
-    "@babel/traverse-7.15.4" = {
+    "@babel/traverse-7.17.3" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.15.4";
+      version = "7.17.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz";
-        sha512 = "W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz";
+        sha512 = "5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==";
       };
     };
-    "@babel/types-7.15.4" = {
+    "@babel/types-7.17.0" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.15.4";
+      version = "7.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.15.4.tgz";
-        sha512 = "0f1HJFuGmmbrKTCZtbm3cU+b/AqdEYk5toj5iQur58xkVMlS0JWaKxTBSmCXd47uiN7vbcozAupm6Mvs80GNhw==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz";
+        sha512 = "TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==";
       };
     };
     "@csstools/convert-colors-1.4.0" = {
@@ -931,13 +958,13 @@ let
         sha512 = "5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==";
       };
     };
-    "@discoveryjs/json-ext-0.5.3" = {
+    "@discoveryjs/json-ext-0.5.7" = {
       name = "_at_discoveryjs_slash_json-ext";
       packageName = "@discoveryjs/json-ext";
-      version = "0.5.3";
+      version = "0.5.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz";
-        sha512 = "Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==";
+        url = "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz";
+        sha512 = "dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==";
       };
     };
     "@eslint/eslintrc-0.4.3" = {
@@ -949,13 +976,13 @@ let
         sha512 = "J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==";
       };
     };
-    "@gar/promisify-1.1.2" = {
+    "@gar/promisify-1.1.3" = {
       name = "_at_gar_slash_promisify";
       packageName = "@gar/promisify";
-      version = "1.1.2";
+      version = "1.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz";
-        sha512 = "82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==";
+        url = "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz";
+        sha512 = "k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==";
       };
     };
     "@humanwhocodes/config-array-0.5.0" = {
@@ -967,13 +994,40 @@ let
         sha512 = "FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==";
       };
     };
-    "@humanwhocodes/object-schema-1.2.0" = {
+    "@humanwhocodes/object-schema-1.2.1" = {
       name = "_at_humanwhocodes_slash_object-schema";
       packageName = "@humanwhocodes/object-schema";
-      version = "1.2.0";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz";
-        sha512 = "wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==";
+        url = "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz";
+        sha512 = "ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==";
+      };
+    };
+    "@jridgewell/resolve-uri-3.0.5" = {
+      name = "_at_jridgewell_slash_resolve-uri";
+      packageName = "@jridgewell/resolve-uri";
+      version = "3.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz";
+        sha512 = "VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==";
+      };
+    };
+    "@jridgewell/sourcemap-codec-1.4.11" = {
+      name = "_at_jridgewell_slash_sourcemap-codec";
+      packageName = "@jridgewell/sourcemap-codec";
+      version = "1.4.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz";
+        sha512 = "Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==";
+      };
+    };
+    "@jridgewell/trace-mapping-0.3.4" = {
+      name = "_at_jridgewell_slash_trace-mapping";
+      packageName = "@jridgewell/trace-mapping";
+      version = "0.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz";
+        sha512 = "vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==";
       };
     };
     "@mdn/browser-compat-data-3.3.14" = {
@@ -1030,13 +1084,13 @@ let
         sha512 = "oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==";
       };
     };
-    "@npmcli/fs-1.0.0" = {
+    "@npmcli/fs-1.1.1" = {
       name = "_at_npmcli_slash_fs";
       packageName = "@npmcli/fs";
-      version = "1.0.0";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/fs/-/fs-1.0.0.tgz";
-        sha512 = "8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ==";
+        url = "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz";
+        sha512 = "8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==";
       };
     };
     "@npmcli/move-file-1.1.2" = {
@@ -1048,13 +1102,13 @@ let
         sha512 = "1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==";
       };
     };
-    "@rollup/plugin-babel-5.3.0" = {
+    "@rollup/plugin-babel-5.3.1" = {
       name = "_at_rollup_slash_plugin-babel";
       packageName = "@rollup/plugin-babel";
-      version = "5.3.0";
+      version = "5.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz";
-        sha512 = "9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw==";
+        url = "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz";
+        sha512 = "WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==";
       };
     };
     "@rollup/plugin-node-resolve-11.2.1" = {
@@ -1102,31 +1156,31 @@ let
         sha512 = "2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==";
       };
     };
-    "@surma/rollup-plugin-off-main-thread-1.4.2" = {
+    "@surma/rollup-plugin-off-main-thread-2.2.3" = {
       name = "_at_surma_slash_rollup-plugin-off-main-thread";
       packageName = "@surma/rollup-plugin-off-main-thread";
-      version = "1.4.2";
+      version = "2.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz";
-        sha512 = "yBMPqmd1yEJo/280PAMkychuaALyQ9Lkb5q1ck3mjJrFuEobIfhnQ4J3mbvBoISmR3SWMWV+cGB/I0lCQee79A==";
+        url = "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz";
+        sha512 = "lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==";
       };
     };
-    "@types/eslint-7.28.0" = {
+    "@types/eslint-8.4.1" = {
       name = "_at_types_slash_eslint";
       packageName = "@types/eslint";
-      version = "7.28.0";
+      version = "8.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz";
-        sha512 = "07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==";
+        url = "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz";
+        sha512 = "GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==";
       };
     };
-    "@types/eslint-scope-3.7.1" = {
+    "@types/eslint-scope-3.7.3" = {
       name = "_at_types_slash_eslint-scope";
       packageName = "@types/eslint-scope";
-      version = "3.7.1";
+      version = "3.7.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz";
-        sha512 = "SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==";
+        url = "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz";
+        sha512 = "PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==";
       };
     };
     "@types/estree-0.0.39" = {
@@ -1138,22 +1192,22 @@ let
         sha512 = "EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==";
       };
     };
-    "@types/estree-0.0.50" = {
+    "@types/estree-0.0.51" = {
       name = "_at_types_slash_estree";
       packageName = "@types/estree";
-      version = "0.0.50";
+      version = "0.0.51";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz";
-        sha512 = "C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==";
+        url = "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz";
+        sha512 = "CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==";
       };
     };
-    "@types/glob-7.1.4" = {
+    "@types/glob-7.2.0" = {
       name = "_at_types_slash_glob";
       packageName = "@types/glob";
-      version = "7.1.4";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz";
-        sha512 = "w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==";
+        url = "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz";
+        sha512 = "ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==";
       };
     };
     "@types/html-minifier-terser-5.1.2" = {
@@ -1165,13 +1219,13 @@ let
         sha512 = "h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==";
       };
     };
-    "@types/json-schema-7.0.9" = {
+    "@types/json-schema-7.0.11" = {
       name = "_at_types_slash_json-schema";
       packageName = "@types/json-schema";
-      version = "7.0.9";
+      version = "7.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz";
-        sha512 = "qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==";
+        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz";
+        sha512 = "wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==";
       };
     };
     "@types/json5-0.0.29" = {
@@ -1219,13 +1273,13 @@ let
         sha512 = "jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==";
       };
     };
-    "@types/node-16.7.10" = {
+    "@types/node-17.0.23" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "16.7.10";
+      version = "17.0.23";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz";
-        sha512 = "S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==";
+        url = "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz";
+        sha512 = "UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==";
       };
     };
     "@types/normalize-package-data-2.4.1" = {
@@ -1327,13 +1381,13 @@ let
         sha512 = "GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==";
       };
     };
-    "@types/webpack-4.41.30" = {
+    "@types/webpack-4.41.32" = {
       name = "_at_types_slash_webpack";
       packageName = "@types/webpack";
-      version = "4.41.30";
+      version = "4.41.32";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.30.tgz";
-        sha512 = "GUHyY+pfuQ6haAfzu4S14F+R5iGRwN6b2FRNJY7U0NilmFAqbsOfK6j1HwuLBAqwRIT+pVdNDJGJ6e8rpp0KHA==";
+        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.32.tgz";
+        sha512 = "cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg==";
       };
     };
     "@types/webpack-sources-3.2.0" = {
@@ -1489,31 +1543,40 @@ let
         sha512 = "IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==";
       };
     };
-    "@webpack-cli/configtest-1.0.4" = {
+    "@webpack-cli/configtest-1.1.1" = {
       name = "_at_webpack-cli_slash_configtest";
       packageName = "@webpack-cli/configtest";
-      version = "1.0.4";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.4.tgz";
-        sha512 = "cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ==";
+        url = "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz";
+        sha512 = "1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==";
       };
     };
-    "@webpack-cli/info-1.3.0" = {
+    "@webpack-cli/info-1.4.1" = {
       name = "_at_webpack-cli_slash_info";
       packageName = "@webpack-cli/info";
-      version = "1.3.0";
+      version = "1.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webpack-cli/info/-/info-1.3.0.tgz";
-        sha512 = "ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w==";
+        url = "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz";
+        sha512 = "PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==";
       };
     };
-    "@webpack-cli/serve-1.5.2" = {
+    "@webpack-cli/serve-1.6.1" = {
       name = "_at_webpack-cli_slash_serve";
       packageName = "@webpack-cli/serve";
-      version = "1.5.2";
+      version = "1.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz";
+        sha512 = "gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==";
+      };
+    };
+    "@xmldom/xmldom-0.7.5" = {
+      name = "_at_xmldom_slash_xmldom";
+      packageName = "@xmldom/xmldom";
+      version = "0.7.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.5.2.tgz";
-        sha512 = "vgJ5OLWadI8aKjDlOH3rb+dYyPd2GTZuQC/Tihjct6F9GpXGZINo3Y/IVuZVTM1eDQB+/AOsjPUWH/WySDaXvw==";
+        url = "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.5.tgz";
+        sha512 = "V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==";
       };
     };
     "@xtuc/ieee754-1.2.0" = {
@@ -1543,13 +1606,13 @@ let
         sha512 = "9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==";
       };
     };
-    "accepts-1.3.7" = {
+    "accepts-1.3.8" = {
       name = "accepts";
       packageName = "accepts";
-      version = "1.3.7";
+      version = "1.3.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz";
-        sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
+        url = "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz";
+        sha512 = "PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==";
       };
     };
     "acorn-7.4.1" = {
@@ -1561,22 +1624,22 @@ let
         sha512 = "nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==";
       };
     };
-    "acorn-8.4.1" = {
+    "acorn-8.7.0" = {
       name = "acorn";
       packageName = "acorn";
-      version = "8.4.1";
+      version = "8.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz";
-        sha512 = "asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==";
+        url = "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz";
+        sha512 = "V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==";
       };
     };
-    "acorn-import-assertions-1.7.6" = {
+    "acorn-import-assertions-1.8.0" = {
       name = "acorn-import-assertions";
       packageName = "acorn-import-assertions";
-      version = "1.7.6";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz";
-        sha512 = "FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA==";
+        url = "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz";
+        sha512 = "m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==";
       };
     };
     "acorn-jsx-5.3.2" = {
@@ -1606,13 +1669,13 @@ let
         sha512 = "j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==";
       };
     };
-    "ajv-8.6.2" = {
+    "ajv-8.11.0" = {
       name = "ajv";
       packageName = "ajv";
-      version = "8.6.2";
+      version = "8.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz";
-        sha512 = "9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==";
+        url = "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz";
+        sha512 = "wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==";
       };
     };
     "ajv-errors-1.0.1" = {
@@ -1660,13 +1723,13 @@ let
         sha512 = "JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==";
       };
     };
-    "ansi-html-0.0.7" = {
-      name = "ansi-html";
-      packageName = "ansi-html";
-      version = "0.0.7";
+    "ansi-html-community-0.0.8" = {
+      name = "ansi-html-community";
+      packageName = "ansi-html-community";
+      version = "0.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz";
-        sha1 = "813584021962a9e9e6fd039f940d12f56ca7859e";
+        url = "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz";
+        sha512 = "1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==";
       };
     };
     "ansi-regex-2.1.1" = {
@@ -1678,22 +1741,22 @@ let
         sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
       };
     };
-    "ansi-regex-4.1.0" = {
+    "ansi-regex-4.1.1" = {
       name = "ansi-regex";
       packageName = "ansi-regex";
-      version = "4.1.0";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz";
-        sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==";
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz";
+        sha512 = "ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==";
       };
     };
-    "ansi-regex-5.0.0" = {
+    "ansi-regex-5.0.1" = {
       name = "ansi-regex";
       packageName = "ansi-regex";
-      version = "5.0.0";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz";
-        sha512 = "bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==";
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz";
+        sha512 = "quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==";
       };
     };
     "ansi-styles-2.2.1" = {
@@ -1804,13 +1867,13 @@ let
         sha512 = "hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==";
       };
     };
-    "array-includes-3.1.3" = {
+    "array-includes-3.1.4" = {
       name = "array-includes";
       packageName = "array-includes";
-      version = "3.1.3";
+      version = "3.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz";
-        sha512 = "gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==";
+        url = "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz";
+        sha512 = "ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==";
       };
     };
     "array-union-1.0.2" = {
@@ -1849,13 +1912,13 @@ let
         sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
       };
     };
-    "array.prototype.flat-1.2.4" = {
+    "array.prototype.flat-1.2.5" = {
       name = "array.prototype.flat";
       packageName = "array.prototype.flat";
-      version = "1.2.4";
+      version = "1.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz";
-        sha512 = "4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==";
+        url = "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz";
+        sha512 = "KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==";
       };
     };
     "arrify-1.0.1" = {
@@ -1903,6 +1966,15 @@ let
         sha512 = "Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==";
       };
     };
+    "async-0.9.2" = {
+      name = "async";
+      packageName = "async";
+      version = "0.9.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-0.9.2.tgz";
+        sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d";
+      };
+    };
     "async-2.6.3" = {
       name = "async";
       packageName = "async";
@@ -1948,22 +2020,22 @@ let
         sha512 = "Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==";
       };
     };
-    "autoprefixer-9.8.6" = {
+    "autoprefixer-9.8.8" = {
       name = "autoprefixer";
       packageName = "autoprefixer";
-      version = "9.8.6";
+      version = "9.8.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz";
-        sha512 = "XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==";
+        url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz";
+        sha512 = "eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==";
       };
     };
-    "babel-loader-8.2.2" = {
+    "babel-loader-8.2.4" = {
       name = "babel-loader";
       packageName = "babel-loader";
-      version = "8.2.2";
+      version = "8.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz";
-        sha512 = "JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==";
+        url = "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.4.tgz";
+        sha512 = "8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==";
       };
     };
     "babel-plugin-dynamic-import-node-2.3.3" = {
@@ -1984,31 +2056,31 @@ let
         sha512 = "fqdut9hGeaAgdX3sbAY25TkqA7LPmZB+Hf1XI67AppvhUw1cBST58BPwl5kPwDZYIvmqRwnsVKM0lppsQAsxhg==";
       };
     };
-    "babel-plugin-polyfill-corejs2-0.2.2" = {
+    "babel-plugin-polyfill-corejs2-0.3.1" = {
       name = "babel-plugin-polyfill-corejs2";
       packageName = "babel-plugin-polyfill-corejs2";
-      version = "0.2.2";
+      version = "0.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz";
-        sha512 = "kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==";
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz";
+        sha512 = "v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==";
       };
     };
-    "babel-plugin-polyfill-corejs3-0.2.4" = {
+    "babel-plugin-polyfill-corejs3-0.5.2" = {
       name = "babel-plugin-polyfill-corejs3";
       packageName = "babel-plugin-polyfill-corejs3";
-      version = "0.2.4";
+      version = "0.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz";
-        sha512 = "z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==";
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz";
+        sha512 = "G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==";
       };
     };
-    "babel-plugin-polyfill-regenerator-0.2.2" = {
+    "babel-plugin-polyfill-regenerator-0.3.1" = {
       name = "babel-plugin-polyfill-regenerator";
       packageName = "babel-plugin-polyfill-regenerator";
-      version = "0.2.2";
+      version = "0.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz";
-        sha512 = "Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==";
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz";
+        sha512 = "Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==";
       };
     };
     "bail-1.0.5" = {
@@ -2092,22 +2164,22 @@ let
         sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==";
       };
     };
-    "blurhash-1.1.4" = {
+    "blurhash-1.1.5" = {
       name = "blurhash";
       packageName = "blurhash";
-      version = "1.1.4";
+      version = "1.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/blurhash/-/blurhash-1.1.4.tgz";
-        sha512 = "MXIPz6zwYUKayju+Uidf83KhH0vodZfeRl6Ich8Gu+KGl0JgKiFq9LsfqV7cVU5fKD/AotmduZqvOfrGKOfTaA==";
+        url = "https://registry.npmjs.org/blurhash/-/blurhash-1.1.5.tgz";
+        sha512 = "a+LO3A2DfxTaTztsmkbLYmUzUeApi0LZuKalwbNmqAHR6HhJGMt1qSV/R3wc+w4DL28holjqO3Bg74aUGavGjg==";
       };
     };
-    "body-parser-1.19.0" = {
+    "body-parser-1.19.2" = {
       name = "body-parser";
       packageName = "body-parser";
-      version = "1.19.0";
+      version = "1.19.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz";
-        sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==";
+        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz";
+        sha512 = "SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==";
       };
     };
     "bonjour-3.5.0" = {
@@ -2164,13 +2236,13 @@ let
         sha1 = "0bd76704258be829b2398bb50e4b62d1a166b0b9";
       };
     };
-    "browserslist-4.17.0" = {
+    "browserslist-4.20.2" = {
       name = "browserslist";
       packageName = "browserslist";
-      version = "4.17.0";
+      version = "4.20.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz";
-        sha512 = "g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==";
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz";
+        sha512 = "CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==";
       };
     };
     "buffer-from-1.1.2" = {
@@ -2209,13 +2281,13 @@ let
         sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
       };
     };
-    "bytes-3.1.0" = {
+    "bytes-3.1.2" = {
       name = "bytes";
       packageName = "bytes";
-      version = "3.1.0";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz";
-        sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
+        url = "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz";
+        sha512 = "/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==";
       };
     };
     "cacache-15.3.0" = {
@@ -2344,22 +2416,22 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-db-1.0.30001255" = {
+    "caniuse-db-1.0.30001325" = {
       name = "caniuse-db";
       packageName = "caniuse-db";
-      version = "1.0.30001255";
+      version = "1.0.30001325";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001255.tgz";
-        sha512 = "+FV7TQX0PoThDIwNvRpoUbhmKJzAB8ZGc8xDNTRltvpbL7d7Si+HTOn1NDdZh4yw2JUqnV6LOYsAcG20lH7gGg==";
+        url = "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001325.tgz";
+        sha512 = "bqFgqeJcZCMhqBGhfnX97E3LXeg61rEMt0iyTp7DS8BKTOpw9bmesk9wgQCOEA5w0xiKOSd1SkV+N4oL07TnJw==";
       };
     };
-    "caniuse-lite-1.0.30001255" = {
+    "caniuse-lite-1.0.30001325" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001255";
+      version = "1.0.30001325";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001255.tgz";
-        sha512 = "F+A3N9jTZL882f/fg/WWVnKSu6IOo3ueLz4zwaOPbPYHNmM/ZaDUyzyJwS1mZhX7Ex5jqTyW599Gdelh5PDYLQ==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001325.tgz";
+        sha512 = "sB1bZHjseSjDtijV1Hb7PB2Zd58Kyx+n/9EotvZ4Qcz2K3d0lWB8dB4nb8wN/TsOGFq3UuAm0zQZNQ4SoR7TrQ==";
       };
     };
     "ccount-1.1.0" = {
@@ -2443,13 +2515,13 @@ let
         sha512 = "ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==";
       };
     };
-    "chokidar-3.5.2" = {
+    "chokidar-3.5.3" = {
       name = "chokidar";
       packageName = "chokidar";
-      version = "3.5.2";
+      version = "3.5.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz";
-        sha512 = "ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==";
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz";
+        sha512 = "Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==";
       };
     };
     "chownr-2.0.0" = {
@@ -2485,17 +2557,17 @@ let
       version = "1.2.20180112";
       src = fetchurl {
         name = "classlist.js-1.2.20180112.tar.gz";
-        url = "https://codeload.github.com/eligrey/classList.js/tar.gz/1.2.20180112";
+        url = "https://codeload.github.com/eligrey/classList.js/tar.gz/refs/tags/1.2.20180112";
         sha256 = "b9a185ff3f7263f0f251af30f187ba19d2d6d141071efdfd4bd717e190599191";
       };
     };
-    "clean-css-4.2.3" = {
+    "clean-css-4.2.4" = {
       name = "clean-css";
       packageName = "clean-css";
-      version = "4.2.3";
+      version = "4.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz";
-        sha512 = "VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==";
+        url = "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz";
+        sha512 = "EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==";
       };
     };
     "clean-stack-2.2.0" = {
@@ -2624,22 +2696,22 @@ let
         sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
       };
     };
-    "color-string-1.6.0" = {
+    "color-string-1.9.0" = {
       name = "color-string";
       packageName = "color-string";
-      version = "1.6.0";
+      version = "1.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz";
-        sha512 = "c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==";
+        url = "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz";
+        sha512 = "9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==";
       };
     };
-    "colorette-1.3.0" = {
+    "colorette-2.0.16" = {
       name = "colorette";
       packageName = "colorette";
-      version = "1.3.0";
+      version = "2.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz";
-        sha512 = "ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==";
+        url = "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz";
+        sha512 = "hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==";
       };
     };
     "commander-2.20.3" = {
@@ -2669,13 +2741,13 @@ let
         sha512 = "QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==";
       };
     };
-    "common-tags-1.8.0" = {
+    "common-tags-1.8.2" = {
       name = "common-tags";
       packageName = "common-tags";
-      version = "1.8.0";
+      version = "1.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz";
-        sha512 = "6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==";
+        url = "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz";
+        sha512 = "gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==";
       };
     };
     "commondir-1.0.1" = {
@@ -2723,13 +2795,13 @@ let
         sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
       };
     };
-    "confusing-browser-globals-1.0.10" = {
+    "confusing-browser-globals-1.0.11" = {
       name = "confusing-browser-globals";
       packageName = "confusing-browser-globals";
-      version = "1.0.10";
+      version = "1.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz";
-        sha512 = "gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==";
+        url = "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz";
+        sha512 = "JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==";
       };
     };
     "connect-history-api-fallback-1.6.0" = {
@@ -2741,13 +2813,13 @@ let
         sha512 = "e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==";
       };
     };
-    "content-disposition-0.5.3" = {
+    "content-disposition-0.5.4" = {
       name = "content-disposition";
       packageName = "content-disposition";
-      version = "0.5.3";
+      version = "0.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz";
-        sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==";
+        url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz";
+        sha512 = "FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==";
       };
     };
     "content-type-1.0.4" = {
@@ -2768,13 +2840,13 @@ let
         sha512 = "+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==";
       };
     };
-    "cookie-0.4.0" = {
+    "cookie-0.4.2" = {
       name = "cookie";
       packageName = "cookie";
-      version = "0.4.0";
+      version = "0.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz";
-        sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==";
+        url = "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz";
+        sha512 = "aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==";
       };
     };
     "cookie-signature-1.0.6" = {
@@ -2804,22 +2876,22 @@ let
         sha512 = "MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA==";
       };
     };
-    "core-js-3.17.2" = {
+    "core-js-3.21.1" = {
       name = "core-js";
       packageName = "core-js";
-      version = "3.17.2";
+      version = "3.21.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.17.2.tgz";
-        sha512 = "XkbXqhcXeMHPRk2ItS+zQYliAMilea2euoMsnpRRdDad6b2VY6CQQcwz1K8AnWesfw4p165RzY0bTnr3UrbYiA==";
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz";
+        sha512 = "FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==";
       };
     };
-    "core-js-compat-3.17.2" = {
+    "core-js-compat-3.21.1" = {
       name = "core-js-compat";
       packageName = "core-js-compat";
-      version = "3.17.2";
+      version = "3.21.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.17.2.tgz";
-        sha512 = "lHnt7A1Oqplebl5i0MrQyFv/yyEzr9p29OjlkcsFRDDgHwwQyVckfRGJ790qzXhkwM8ba4SFHHa2sO+T5f1zGg==";
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz";
+        sha512 = "gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==";
       };
     };
     "core-util-is-1.0.3" = {
@@ -2939,13 +3011,13 @@ let
         sha512 = "Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==";
       };
     };
-    "css-select-4.1.3" = {
+    "css-select-4.3.0" = {
       name = "css-select";
       packageName = "css-select";
-      version = "4.1.3";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz";
-        sha512 = "gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==";
+        url = "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz";
+        sha512 = "wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==";
       };
     };
     "css-select-base-adapter-0.1.1" = {
@@ -2984,13 +3056,13 @@ let
         sha512 = "ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==";
       };
     };
-    "css-what-5.0.1" = {
+    "css-what-6.1.0" = {
       name = "css-what";
       packageName = "css-what";
-      version = "5.0.1";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz";
-        sha512 = "FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==";
+        url = "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz";
+        sha512 = "HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==";
       };
     };
     "cssdb-4.4.0" = {
@@ -3101,13 +3173,13 @@ let
         sha512 = "m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==";
       };
     };
-    "date-fns-2.23.0" = {
+    "date-fns-2.28.0" = {
       name = "date-fns";
       packageName = "date-fns";
-      version = "2.23.0";
+      version = "2.28.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/date-fns/-/date-fns-2.23.0.tgz";
-        sha512 = "5ycpauovVyAk0kXNZz6ZoB9AYMZB4DObse7P3BPWmyEjXNORTI8EJ6X0uaSAq4sCHzM1uajzrkr6HnsLQpxGXA==";
+        url = "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz";
+        sha512 = "8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==";
       };
     };
     "debug-2.6.9" = {
@@ -3128,13 +3200,13 @@ let
         sha512 = "CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==";
       };
     };
-    "debug-4.3.2" = {
+    "debug-4.3.4" = {
       name = "debug";
       packageName = "debug";
-      version = "4.3.2";
+      version = "4.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz";
-        sha512 = "mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==";
+        url = "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz";
+        sha512 = "PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==";
       };
     };
     "decamelize-1.2.0" = {
@@ -3407,13 +3479,13 @@ let
         sha512 = "J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==";
       };
     };
-    "domhandler-4.2.2" = {
+    "domhandler-4.3.1" = {
       name = "domhandler";
       packageName = "domhandler";
-      version = "4.2.2";
+      version = "4.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz";
-        sha512 = "PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==";
+        url = "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz";
+        sha512 = "GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==";
       };
     };
     "domutils-1.7.0" = {
@@ -3461,22 +3533,22 @@ let
         sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
       };
     };
-    "ejs-2.7.4" = {
+    "ejs-3.1.6" = {
       name = "ejs";
       packageName = "ejs";
-      version = "2.7.4";
+      version = "3.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz";
-        sha512 = "7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==";
+        url = "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz";
+        sha512 = "9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==";
       };
     };
-    "electron-to-chromium-1.3.830" = {
+    "electron-to-chromium-1.4.103" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.830";
+      version = "1.4.103";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.830.tgz";
-        sha512 = "gBN7wNAxV5vl1430dG+XRcQhD4pIeYeak6p6rjdCtlz5wWNwDad8jwvphe5oi1chL5MV6RNRikfffBBiFuj+rQ==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.103.tgz";
+        sha512 = "c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg==";
       };
     };
     "emoji-regex-7.0.3" = {
@@ -3524,13 +3596,13 @@ let
         sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==";
       };
     };
-    "enhanced-resolve-5.8.2" = {
+    "enhanced-resolve-5.9.2" = {
       name = "enhanced-resolve";
       packageName = "enhanced-resolve";
-      version = "5.8.2";
+      version = "5.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz";
-        sha512 = "F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==";
+        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz";
+        sha512 = "GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==";
       };
     };
     "enquirer-2.3.6" = {
@@ -3569,13 +3641,13 @@ let
         sha512 = "/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==";
       };
     };
-    "epubjs-0.3.88" = {
+    "epubjs-0.3.93" = {
       name = "epubjs";
       packageName = "epubjs";
-      version = "0.3.88";
+      version = "0.3.93";
       src = fetchurl {
-        url = "https://registry.npmjs.org/epubjs/-/epubjs-0.3.88.tgz";
-        sha512 = "VRumULpUELYmYwzypyfbDwoSIqDp2LXOXCtY3o55o3YDW5Zm32UjtZuX/xaWFGqyZORNNMWWQ8VlMaY1djnDYg==";
+        url = "https://registry.npmjs.org/epubjs/-/epubjs-0.3.93.tgz";
+        sha512 = "c06pNSdBxcXv3dZSbXAVLE1/pmleRhOT6mXNZo6INKmvuKpYB65MwU/lO7830czCtjIiK9i+KR+3S+p0wtljrw==";
       };
     };
     "errno-0.1.8" = {
@@ -3596,22 +3668,22 @@ let
         sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==";
       };
     };
-    "es-abstract-1.18.5" = {
+    "es-abstract-1.19.2" = {
       name = "es-abstract";
       packageName = "es-abstract";
-      version = "1.18.5";
+      version = "1.19.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz";
-        sha512 = "DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==";
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.2.tgz";
+        sha512 = "gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==";
       };
     };
-    "es-module-lexer-0.7.1" = {
+    "es-module-lexer-0.9.3" = {
       name = "es-module-lexer";
       packageName = "es-module-lexer";
-      version = "0.7.1";
+      version = "0.9.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz";
-        sha512 = "MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==";
+        url = "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz";
+        sha512 = "1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==";
       };
     };
     "es-to-primitive-1.2.1" = {
@@ -3623,13 +3695,13 @@ let
         sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==";
       };
     };
-    "es5-ext-0.10.53" = {
+    "es5-ext-0.10.59" = {
       name = "es5-ext";
       packageName = "es5-ext";
-      version = "0.10.53";
+      version = "0.10.59";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz";
-        sha512 = "Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==";
+        url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.59.tgz";
+        sha512 = "cOgyhW0tIJyQY1Kfw6Kr0viu9ZlUctVchRMZ7R0HiH3dxTSp5zJDLecwxUqPUrGKMsgBI1wd1FL+d9Jxfi4cLw==";
       };
     };
     "es6-iterator-2.0.3" = {
@@ -3713,13 +3785,13 @@ let
         sha512 = "0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==";
       };
     };
-    "eslint-module-utils-2.6.2" = {
+    "eslint-module-utils-2.7.3" = {
       name = "eslint-module-utils";
       packageName = "eslint-module-utils";
-      version = "2.6.2";
+      version = "2.7.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz";
-        sha512 = "QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==";
+        url = "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz";
+        sha512 = "088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==";
       };
     };
     "eslint-plugin-compat-3.13.0" = {
@@ -3740,13 +3812,13 @@ let
         sha512 = "0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==";
       };
     };
-    "eslint-plugin-import-2.24.2" = {
+    "eslint-plugin-import-2.25.4" = {
       name = "eslint-plugin-import";
       packageName = "eslint-plugin-import";
-      version = "2.24.2";
+      version = "2.25.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz";
-        sha512 = "hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==";
+        url = "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz";
+        sha512 = "/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==";
       };
     };
     "eslint-plugin-promise-4.3.1" = {
@@ -3848,13 +3920,13 @@ let
         sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==";
       };
     };
-    "estraverse-5.2.0" = {
+    "estraverse-5.3.0" = {
       name = "estraverse";
       packageName = "estraverse";
-      version = "5.2.0";
+      version = "5.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz";
-        sha512 = "BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==";
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz";
+        sha512 = "MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==";
       };
     };
     "estree-walker-1.0.1" = {
@@ -3974,22 +4046,22 @@ let
         sha512 = "gP6hs3vYeWIqyoVfsApGQcgCEpbcI1xe+celwI31zeDhXz2q03ycBC1+75IlQUGaYvj6rAloFIe/NIBnEElLsQ==";
       };
     };
-    "express-4.17.1" = {
+    "express-4.17.3" = {
       name = "express";
       packageName = "express";
-      version = "4.17.1";
+      version = "4.17.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz";
-        sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==";
+        url = "https://registry.npmjs.org/express/-/express-4.17.3.tgz";
+        sha512 = "yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==";
       };
     };
-    "ext-1.5.0" = {
+    "ext-1.6.0" = {
       name = "ext";
       packageName = "ext";
-      version = "1.5.0";
+      version = "1.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ext/-/ext-1.5.0.tgz";
-        sha512 = "+ONcYoWj/SoQwUofMr94aGu05Ou4FepKi7N7b+O8T4jVfyIsZQV1/xeS8jpaBzF0csAk0KLXoHCxU7cKYZjo1Q==";
+        url = "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz";
+        sha512 = "sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==";
       };
     };
     "extend-3.0.2" = {
@@ -4046,13 +4118,13 @@ let
         sha512 = "g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==";
       };
     };
-    "fast-glob-3.2.7" = {
+    "fast-glob-3.2.11" = {
       name = "fast-glob";
       packageName = "fast-glob";
-      version = "3.2.7";
+      version = "3.2.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz";
-        sha512 = "rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==";
+        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz";
+        sha512 = "xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==";
       };
     };
     "fast-json-stable-stringify-2.1.0" = {
@@ -4091,13 +4163,13 @@ let
         sha512 = "On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==";
       };
     };
-    "fastq-1.12.0" = {
+    "fastq-1.13.0" = {
       name = "fastq";
       packageName = "fastq";
-      version = "1.12.0";
+      version = "1.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fastq/-/fastq-1.12.0.tgz";
-        sha512 = "VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg==";
+        url = "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz";
+        sha512 = "YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==";
       };
     };
     "faye-websocket-0.11.4" = {
@@ -4145,6 +4217,15 @@ let
         sha512 = "0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==";
       };
     };
+    "filelist-1.0.2" = {
+      name = "filelist";
+      packageName = "filelist";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz";
+        sha512 = "z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==";
+      };
+    };
     "fill-range-4.0.0" = {
       name = "fill-range";
       packageName = "fill-range";
@@ -4244,13 +4325,13 @@ let
         sha512 = "r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==";
       };
     };
-    "flatted-3.2.2" = {
+    "flatted-3.2.5" = {
       name = "flatted";
       packageName = "flatted";
-      version = "3.2.2";
+      version = "3.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz";
-        sha512 = "JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==";
+        url = "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz";
+        sha512 = "WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==";
       };
     };
     "flatten-1.0.3" = {
@@ -4262,22 +4343,22 @@ let
         sha512 = "dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==";
       };
     };
-    "flv.js-1.6.1" = {
+    "flv.js-1.6.2" = {
       name = "flv.js";
       packageName = "flv.js";
-      version = "1.6.1";
+      version = "1.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flv.js/-/flv.js-1.6.1.tgz";
-        sha512 = "6/ffUPbFaYf7QsdcZC43PQmEsi9Fwlp89Oq0bz8gNlj0eSMUhyHFxESxuLNSFgIEle+ChxqoF7kL2pL7xdam2A==";
+        url = "https://registry.npmjs.org/flv.js/-/flv.js-1.6.2.tgz";
+        sha512 = "xre4gUbX1MPtgQRKj2pxJENp/RnaHaxYvy3YToVVCrSmAWUu85b9mug6pTXF6zakUjNP2lFWZ1rkSX7gxhB/2A==";
       };
     };
-    "follow-redirects-1.14.3" = {
+    "follow-redirects-1.14.9" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
-      version = "1.14.3";
+      version = "1.14.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.3.tgz";
-        sha512 = "3MkHxknWMUtb23apkgz/83fDoe+y+qr0TdgacGIA7bew+QLBo3vdgEN2xEsuXNivpFy4CyDhBBZnNZOtalmenw==";
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz";
+        sha512 = "MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==";
       };
     };
     "fontsource-noto-sans-3.1.5" = {
@@ -4505,6 +4586,15 @@ let
         sha512 = "ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==";
       };
     };
+    "get-symbol-description-1.0.0" = {
+      name = "get-symbol-description";
+      packageName = "get-symbol-description";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz";
+        sha512 = "2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==";
+      };
+    };
     "get-value-2.0.6" = {
       name = "get-value";
       packageName = "get-value";
@@ -4514,13 +4604,13 @@ let
         sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
       };
     };
-    "glob-7.1.7" = {
+    "glob-7.2.0" = {
       name = "glob";
       packageName = "glob";
-      version = "7.1.7";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz";
-        sha512 = "OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==";
+        url = "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz";
+        sha512 = "lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==";
       };
     };
     "glob-parent-3.1.0" = {
@@ -4586,22 +4676,22 @@ let
         sha512 = "WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==";
       };
     };
-    "globals-13.11.0" = {
+    "globals-13.13.0" = {
       name = "globals";
       packageName = "globals";
-      version = "13.11.0";
+      version = "13.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz";
-        sha512 = "08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==";
+        url = "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz";
+        sha512 = "EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==";
       };
     };
-    "globby-11.0.4" = {
+    "globby-11.1.0" = {
       name = "globby";
       packageName = "globby";
-      version = "11.0.4";
+      version = "11.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz";
-        sha512 = "9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==";
+        url = "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz";
+        sha512 = "jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==";
       };
     };
     "globby-6.1.0" = {
@@ -4640,13 +4730,13 @@ let
         sha512 = "otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==";
       };
     };
-    "graceful-fs-4.2.8" = {
+    "graceful-fs-4.2.10" = {
       name = "graceful-fs";
       packageName = "graceful-fs";
-      version = "4.2.8";
+      version = "4.2.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz";
-        sha512 = "qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==";
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz";
+        sha512 = "9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==";
       };
     };
     "handle-thing-2.0.1" = {
@@ -4721,13 +4811,13 @@ let
         sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
       };
     };
-    "has-symbols-1.0.2" = {
+    "has-symbols-1.0.3" = {
       name = "has-symbols";
       packageName = "has-symbols";
-      version = "1.0.2";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz";
-        sha512 = "chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==";
+        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz";
+        sha512 = "l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==";
       };
     };
     "has-tostringtag-1.0.0" = {
@@ -4820,13 +4910,13 @@ let
         sha512 = "mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==";
       };
     };
-    "hosted-git-info-4.0.2" = {
+    "hosted-git-info-4.1.0" = {
       name = "hosted-git-info";
       packageName = "hosted-git-info";
-      version = "4.0.2";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz";
-        sha512 = "c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==";
+        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz";
+        sha512 = "kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==";
       };
     };
     "hpack.js-2.1.6" = {
@@ -4955,22 +5045,22 @@ let
         sha1 = "8b55680bb4be283a0b5bf4ea2e38580be1d9320d";
       };
     };
-    "http-errors-1.7.2" = {
+    "http-errors-1.8.1" = {
       name = "http-errors";
       packageName = "http-errors";
-      version = "1.7.2";
+      version = "1.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz";
-        sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==";
+        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz";
+        sha512 = "Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==";
       };
     };
-    "http-parser-js-0.5.3" = {
+    "http-parser-js-0.5.6" = {
       name = "http-parser-js";
       packageName = "http-parser-js";
-      version = "0.5.3";
+      version = "0.5.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz";
-        sha512 = "t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==";
+        url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz";
+        sha512 = "vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==";
       };
     };
     "http-proxy-1.18.1" = {
@@ -5027,13 +5117,13 @@ let
         sha512 = "soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==";
       };
     };
-    "idb-6.1.3" = {
+    "idb-6.1.5" = {
       name = "idb";
       packageName = "idb";
-      version = "6.1.3";
+      version = "6.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/idb/-/idb-6.1.3.tgz";
-        sha512 = "oIRDpVcs5KXpI1hRnTJUwkY63RB/7iqu9nSNuzXN8TLHjs7oO20IoPFbBTsqxIL5IjzIUDi+FXlVcK4zm26J8A==";
+        url = "https://registry.npmjs.org/idb/-/idb-6.1.5.tgz";
+        sha512 = "IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==";
       };
     };
     "ignore-4.0.6" = {
@@ -5045,13 +5135,13 @@ let
         sha512 = "cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==";
       };
     };
-    "ignore-5.1.8" = {
+    "ignore-5.2.0" = {
       name = "ignore";
       packageName = "ignore";
-      version = "5.1.8";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz";
-        sha512 = "BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==";
+        url = "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz";
+        sha512 = "CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==";
       };
     };
     "immediate-3.0.6" = {
@@ -5063,6 +5153,15 @@ let
         sha1 = "9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b";
       };
     };
+    "immutable-4.0.0" = {
+      name = "immutable";
+      packageName = "immutable";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz";
+        sha512 = "zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==";
+      };
+    };
     "import-cwd-2.1.0" = {
       name = "import-cwd";
       packageName = "import-cwd";
@@ -5126,13 +5225,13 @@ let
         sha512 = "b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==";
       };
     };
-    "import-local-3.0.2" = {
+    "import-local-3.1.0" = {
       name = "import-local";
       packageName = "import-local";
-      version = "3.0.2";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz";
-        sha512 = "vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==";
+        url = "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz";
+        sha512 = "ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==";
       };
     };
     "imurmurhash-0.1.4" = {
@@ -5450,13 +5549,13 @@ let
         sha1 = "cfff471aee4dd5c9e158598fbe12967b5cdad345";
       };
     };
-    "is-core-module-2.6.0" = {
+    "is-core-module-2.8.1" = {
       name = "is-core-module";
       packageName = "is-core-module";
-      version = "2.6.0";
+      version = "2.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz";
-        sha512 = "wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==";
+        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz";
+        sha512 = "SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==";
       };
     };
     "is-data-descriptor-0.1.4" = {
@@ -5576,13 +5675,13 @@ let
         sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
       };
     };
-    "is-glob-4.0.1" = {
+    "is-glob-4.0.3" = {
       name = "is-glob";
       packageName = "is-glob";
-      version = "4.0.1";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz";
-        sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==";
+        url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz";
+        sha512 = "xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==";
       };
     };
     "is-hexadecimal-1.0.4" = {
@@ -5603,13 +5702,13 @@ let
         sha1 = "3258fb69f78c14d5b815d664336b4cffb6441591";
       };
     };
-    "is-negative-zero-2.0.1" = {
+    "is-negative-zero-2.0.2" = {
       name = "is-negative-zero";
       packageName = "is-negative-zero";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz";
-        sha512 = "2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==";
+        url = "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz";
+        sha512 = "dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==";
       };
     };
     "is-number-3.0.0" = {
@@ -5630,13 +5729,13 @@ let
         sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
       };
     };
-    "is-number-object-1.0.6" = {
+    "is-number-object-1.0.7" = {
       name = "is-number-object";
       packageName = "is-number-object";
-      version = "1.0.6";
+      version = "1.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz";
-        sha512 = "bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==";
+        url = "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz";
+        sha512 = "k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==";
       };
     };
     "is-obj-1.0.1" = {
@@ -5747,6 +5846,15 @@ let
         sha512 = "qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==";
       };
     };
+    "is-shared-array-buffer-1.0.2" = {
+      name = "is-shared-array-buffer";
+      packageName = "is-shared-array-buffer";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz";
+        sha512 = "sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==";
+      };
+    };
     "is-stream-1.1.0" = {
       name = "is-stream";
       packageName = "is-stream";
@@ -5810,6 +5918,15 @@ let
         sha512 = "knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==";
       };
     };
+    "is-weakref-1.0.2" = {
+      name = "is-weakref";
+      packageName = "is-weakref";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz";
+        sha512 = "qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==";
+      };
+    };
     "is-whitespace-character-1.0.4" = {
       name = "is-whitespace-character";
       packageName = "is-whitespace-character";
@@ -5891,13 +6008,22 @@ let
         sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
       };
     };
-    "jellyfin-apiclient-1.8.0" = {
+    "jake-10.8.4" = {
+      name = "jake";
+      packageName = "jake";
+      version = "10.8.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jake/-/jake-10.8.4.tgz";
+        sha512 = "MtWeTkl1qGsWUtbl/Jsca/8xSoK3x0UmS82sNbjqxxG/de/M/3b1DntdjHgPMC50enlTNwXOCRqPXLLt5cCfZA==";
+      };
+    };
+    "jellyfin-apiclient-1.10.0" = {
       name = "jellyfin-apiclient";
       packageName = "jellyfin-apiclient";
-      version = "1.8.0";
+      version = "1.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jellyfin-apiclient/-/jellyfin-apiclient-1.8.0.tgz";
-        sha512 = "fwAF1G89amm3uO2Yw0E26fW5X6JoyRUnOdBEeuSN04/NpdKKVHD4u53dgqF0jHzXNuKdn5eh0AuV37cMKzBanA==";
+        url = "https://registry.npmjs.org/jellyfin-apiclient/-/jellyfin-apiclient-1.10.0.tgz";
+        sha512 = "Y7Py/xuAznOhSuADihalrw4et3uTaDLbaClAoYzPMPQaPEjdP8dIST1kFEskOU30Iw28pi+S0byTEHDbQglIvQ==";
       };
     };
     "jest-worker-26.6.2" = {
@@ -5909,13 +6035,13 @@ let
         sha512 = "KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==";
       };
     };
-    "jest-worker-27.1.0" = {
+    "jest-worker-27.5.1" = {
       name = "jest-worker";
       packageName = "jest-worker";
-      version = "27.1.0";
+      version = "27.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-27.1.0.tgz";
-        sha512 = "mO4PHb2QWLn9yRXGp7rkvXLAYuxwhq1ZYUo0LoDhg8wqvv4QizP1ZWEJOeolgbEgAWZLIEU0wsku8J+lGWfBhg==";
+        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz";
+        sha512 = "7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==";
       };
     };
     "jquery-3.6.0" = {
@@ -5990,13 +6116,13 @@ let
         sha512 = "xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==";
       };
     };
-    "json-schema-0.3.0" = {
+    "json-schema-0.4.0" = {
       name = "json-schema";
       packageName = "json-schema";
-      version = "0.3.0";
+      version = "0.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json-schema/-/json-schema-0.3.0.tgz";
-        sha512 = "TYfxx36xfl52Rf1LU9HyWSLGPdYLL+SQ8/E/0yVyKG8wCCDaSrhPap0vEdlsZWRaS6tnKKLPGiEJGiREVC8kxQ==";
+        url = "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz";
+        sha512 = "es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==";
       };
     };
     "json-schema-traverse-0.4.1" = {
@@ -6026,15 +6152,6 @@ let
         sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
       };
     };
-    "json3-3.3.3" = {
-      name = "json3";
-      packageName = "json3";
-      version = "3.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz";
-        sha512 = "c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==";
-      };
-    };
     "json5-1.0.1" = {
       name = "json5";
       packageName = "json5";
@@ -6044,13 +6161,13 @@ let
         sha512 = "aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==";
       };
     };
-    "json5-2.2.0" = {
+    "json5-2.2.1" = {
       name = "json5";
       packageName = "json5";
-      version = "2.2.0";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz";
-        sha512 = "f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==";
+        url = "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz";
+        sha512 = "1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==";
       };
     };
     "jsonfile-6.1.0" = {
@@ -6062,13 +6179,13 @@ let
         sha512 = "5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==";
       };
     };
-    "jsonpointer-4.1.0" = {
+    "jsonpointer-5.0.0" = {
       name = "jsonpointer";
       packageName = "jsonpointer";
-      version = "4.1.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.1.0.tgz";
-        sha512 = "CXcRvMyTlnR53xMcKnuMzfCA5i/nfblTnnr74CZb6C4vG39eu6w51t7nKmU5MfLfbTgGItliNyjO/ciNPDqClg==";
+        url = "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz";
+        sha512 = "PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==";
       };
     };
     "jstree-3.3.12" = {
@@ -6080,13 +6197,13 @@ let
         sha512 = "vHNLWkUr02ZYH7RcIckvhtLUtneWCVEtIKpIp2G9WtRh01ITv18EoNtNQcFG3ozM+oK6wp1Z300gSLXNQWCqGA==";
       };
     };
-    "jszip-3.7.1" = {
+    "jszip-3.9.0" = {
       name = "jszip";
       packageName = "jszip";
-      version = "3.7.1";
+      version = "3.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz";
-        sha512 = "ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==";
+        url = "https://registry.npmjs.org/jszip/-/jszip-3.9.0.tgz";
+        sha512 = "Vb3SMfASUN1EKrFzv5A5+lTaZnzLzT5E6A9zyT7WFqMSfhT2Z7iS5FgSOjx2Olm3MDj8OqKj6GHyP2kMt1Ir6w==";
       };
     };
     "killable-1.0.1" = {
@@ -6134,13 +6251,13 @@ let
         sha512 = "dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==";
       };
     };
-    "klona-2.0.4" = {
+    "klona-2.0.5" = {
       name = "klona";
       packageName = "klona";
-      version = "2.0.4";
+      version = "2.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz";
-        sha512 = "ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==";
+        url = "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz";
+        sha512 = "pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==";
       };
     };
     "known-css-properties-0.11.0" = {
@@ -6225,13 +6342,13 @@ let
         sha512 = "UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==";
       };
     };
-    "lines-and-columns-1.1.6" = {
+    "lines-and-columns-1.2.4" = {
       name = "lines-and-columns";
       packageName = "lines-and-columns";
-      version = "1.1.6";
+      version = "1.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz";
-        sha1 = "1c00c743b433cd0a4e80758f7b64a57440d9ff00";
+        url = "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz";
+        sha512 = "7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==";
       };
     };
     "load-json-file-4.0.0" = {
@@ -6261,13 +6378,13 @@ let
         sha512 = "qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==";
       };
     };
-    "loader-utils-2.0.0" = {
+    "loader-utils-2.0.2" = {
       name = "loader-utils";
       packageName = "loader-utils";
-      version = "2.0.0";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz";
-        sha512 = "rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==";
+        url = "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz";
+        sha512 = "TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==";
       };
     };
     "localforage-1.10.0" = {
@@ -6324,15 +6441,6 @@ let
         sha512 = "v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==";
       };
     };
-    "lodash.clonedeep-4.5.0" = {
-      name = "lodash.clonedeep";
-      packageName = "lodash.clonedeep";
-      version = "4.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
-        sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
-      };
-    };
     "lodash.debounce-4.0.8" = {
       name = "lodash.debounce";
       packageName = "lodash.debounce";
@@ -6414,13 +6522,13 @@ let
         sha512 = "8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==";
       };
     };
-    "loglevel-1.7.1" = {
+    "loglevel-1.8.0" = {
       name = "loglevel";
       packageName = "loglevel";
-      version = "1.7.1";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz";
-        sha512 = "Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==";
+        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz";
+        sha512 = "G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==";
       };
     };
     "longest-streak-2.0.4" = {
@@ -6459,13 +6567,13 @@ let
         sha512 = "Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==";
       };
     };
-    "magic-string-0.25.7" = {
+    "magic-string-0.25.9" = {
       name = "magic-string";
       packageName = "magic-string";
-      version = "0.25.7";
+      version = "0.25.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz";
-        sha512 = "4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==";
+        url = "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz";
+        sha512 = "RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==";
       };
     };
     "make-dir-3.1.0" = {
@@ -6504,13 +6612,13 @@ let
         sha1 = "a65cd29087a92598b8791257a523e021222ac1f9";
       };
     };
-    "map-obj-4.2.1" = {
+    "map-obj-4.3.0" = {
       name = "map-obj";
       packageName = "map-obj";
-      version = "4.2.1";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz";
-        sha512 = "+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==";
+        url = "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz";
+        sha512 = "hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==";
       };
     };
     "map-visit-1.0.0" = {
@@ -6549,13 +6657,13 @@ let
         sha512 = "Ahs4oeG90tbdPWwAJkAAoHg2lRR8lAs9mZXETNPO9hYg3AkjUJBKi1NQ4aaIQZVGrig7c/3NUV1jANl8rFTeMg==";
       };
     };
-    "material-design-icons-iconfont-6.1.0" = {
+    "material-design-icons-iconfont-6.5.0" = {
       name = "material-design-icons-iconfont";
       packageName = "material-design-icons-iconfont";
-      version = "6.1.0";
+      version = "6.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/material-design-icons-iconfont/-/material-design-icons-iconfont-6.1.0.tgz";
-        sha512 = "wRJtOo1v1ch+gN8PRsj0IGJznk+kQ8mz13ds/nuhLI+Qyf/931ZlRpd92oq0IRPpZIb+bhX8pRjzIVdcPDKmiQ==";
+        url = "https://registry.npmjs.org/material-design-icons-iconfont/-/material-design-icons-iconfont-6.5.0.tgz";
+        sha512 = "ImxSGnW7o5InRxgpL1UUuTPkBsgjzdQ8m7YBe5SdLfyjfcbIYVSHNHzBablNEVuliRdM8efa6mqiFtt8BQyMwA==";
       };
     };
     "mathml-tag-names-2.1.3" = {
@@ -6711,13 +6819,13 @@ let
         sha512 = "MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==";
       };
     };
-    "micromatch-4.0.4" = {
+    "micromatch-4.0.5" = {
       name = "micromatch";
       packageName = "micromatch";
-      version = "4.0.4";
+      version = "4.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz";
-        sha512 = "pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==";
+        url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz";
+        sha512 = "DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==";
       };
     };
     "mime-1.6.0" = {
@@ -6729,31 +6837,31 @@ let
         sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
       };
     };
-    "mime-2.5.2" = {
+    "mime-2.6.0" = {
       name = "mime";
       packageName = "mime";
-      version = "2.5.2";
+      version = "2.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz";
-        sha512 = "tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==";
+        url = "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz";
+        sha512 = "USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==";
       };
     };
-    "mime-db-1.49.0" = {
+    "mime-db-1.52.0" = {
       name = "mime-db";
       packageName = "mime-db";
-      version = "1.49.0";
+      version = "1.52.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz";
-        sha512 = "CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==";
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz";
+        sha512 = "sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==";
       };
     };
-    "mime-types-2.1.32" = {
+    "mime-types-2.1.35" = {
       name = "mime-types";
       packageName = "mime-types";
-      version = "2.1.32";
+      version = "2.1.35";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz";
-        sha512 = "hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==";
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz";
+        sha512 = "ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==";
       };
     };
     "mimic-fn-2.1.0" = {
@@ -6783,22 +6891,22 @@ let
         sha512 = "UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==";
       };
     };
-    "minimatch-3.0.4" = {
+    "minimatch-3.1.2" = {
       name = "minimatch";
       packageName = "minimatch";
-      version = "3.0.4";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
-        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz";
+        sha512 = "J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==";
       };
     };
-    "minimist-1.2.5" = {
+    "minimist-1.2.6" = {
       name = "minimist";
       packageName = "minimist";
-      version = "1.2.5";
+      version = "1.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
-        sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
+        url = "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz";
+        sha512 = "Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==";
       };
     };
     "minimist-options-3.0.2" = {
@@ -6819,13 +6927,13 @@ let
         sha512 = "Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==";
       };
     };
-    "minipass-3.1.3" = {
+    "minipass-3.1.6" = {
       name = "minipass";
       packageName = "minipass";
-      version = "3.1.3";
+      version = "3.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz";
-        sha512 = "Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==";
+        url = "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz";
+        sha512 = "rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==";
       };
     };
     "minipass-collect-1.0.2" = {
@@ -6873,13 +6981,13 @@ let
         sha512 = "WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==";
       };
     };
-    "mkdirp-0.5.5" = {
+    "mkdirp-0.5.6" = {
       name = "mkdirp";
       packageName = "mkdirp";
-      version = "0.5.5";
+      version = "0.5.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz";
-        sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz";
+        sha512 = "FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==";
       };
     };
     "mkdirp-1.0.4" = {
@@ -6900,22 +7008,22 @@ let
         sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
       };
     };
-    "ms-2.1.1" = {
+    "ms-2.1.2" = {
       name = "ms";
       packageName = "ms";
-      version = "2.1.1";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz";
-        sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==";
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
+        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
       };
     };
-    "ms-2.1.2" = {
+    "ms-2.1.3" = {
       name = "ms";
       packageName = "ms";
-      version = "2.1.2";
+      version = "2.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
-        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz";
+        sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==";
       };
     };
     "multicast-dns-6.2.3" = {
@@ -6945,13 +7053,13 @@ let
         sha512 = "8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==";
       };
     };
-    "nanoid-3.1.25" = {
+    "nanoid-3.3.2" = {
       name = "nanoid";
       packageName = "nanoid";
-      version = "3.1.25";
+      version = "3.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz";
-        sha512 = "rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==";
+        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz";
+        sha512 = "CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==";
       };
     };
     "nanomatch-1.2.13" = {
@@ -6981,13 +7089,13 @@ let
         sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
       };
     };
-    "negotiator-0.6.2" = {
+    "negotiator-0.6.3" = {
       name = "negotiator";
       packageName = "negotiator";
-      version = "0.6.2";
+      version = "0.6.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz";
-        sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
+        url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz";
+        sha512 = "+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==";
       };
     };
     "neo-async-2.6.2" = {
@@ -6999,13 +7107,13 @@ let
         sha512 = "Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==";
       };
     };
-    "next-tick-1.0.0" = {
+    "next-tick-1.1.0" = {
       name = "next-tick";
       packageName = "next-tick";
-      version = "1.0.0";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz";
-        sha1 = "ca86d1fe8828169b0120208e3dc8424b9db8342c";
+        url = "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz";
+        sha512 = "CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==";
       };
     };
     "nice-try-1.0.5" = {
@@ -7035,13 +7143,13 @@ let
         sha512 = "PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==";
       };
     };
-    "node-releases-1.1.75" = {
+    "node-releases-2.0.2" = {
       name = "node-releases";
       packageName = "node-releases";
-      version = "1.1.75";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz";
-        sha512 = "Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==";
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz";
+        sha512 = "XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==";
       };
     };
     "normalize-package-data-2.5.0" = {
@@ -7134,13 +7242,13 @@ let
         sha512 = "WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==";
       };
     };
-    "nth-check-2.0.0" = {
+    "nth-check-2.0.1" = {
       name = "nth-check";
       packageName = "nth-check";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz";
-        sha512 = "i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==";
+        url = "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz";
+        sha512 = "it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==";
       };
     };
     "num2fraction-1.2.2" = {
@@ -7170,13 +7278,13 @@ let
         sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
       };
     };
-    "object-inspect-1.11.0" = {
+    "object-inspect-1.12.0" = {
       name = "object-inspect";
       packageName = "object-inspect";
-      version = "1.11.0";
+      version = "1.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz";
-        sha512 = "jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==";
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz";
+        sha512 = "Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==";
       };
     };
     "object-is-1.1.5" = {
@@ -7215,13 +7323,13 @@ let
         sha512 = "ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==";
       };
     };
-    "object.getownpropertydescriptors-2.1.2" = {
+    "object.getownpropertydescriptors-2.1.3" = {
       name = "object.getownpropertydescriptors";
       packageName = "object.getownpropertydescriptors";
-      version = "2.1.2";
+      version = "2.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz";
-        sha512 = "WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==";
+        url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz";
+        sha512 = "VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==";
       };
     };
     "object.pick-1.3.0" = {
@@ -7233,13 +7341,13 @@ let
         sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
       };
     };
-    "object.values-1.1.4" = {
+    "object.values-1.1.5" = {
       name = "object.values";
       packageName = "object.values";
-      version = "1.1.4";
+      version = "1.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz";
-        sha512 = "TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==";
+        url = "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz";
+        sha512 = "QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==";
       };
     };
     "obuf-1.1.2" = {
@@ -7656,13 +7764,31 @@ let
         sha512 = "xGDUhnCYPfHy+unMXCLCJtlpZaaZ17Ew3WIL0tnSgKFUZXHAPD49GO9xScyszSsQMoutNDgRb+rfBXIaX/lJbw==";
       };
     };
-    "picomatch-2.3.0" = {
+    "picocolors-0.2.1" = {
+      name = "picocolors";
+      packageName = "picocolors";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz";
+        sha512 = "cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==";
+      };
+    };
+    "picocolors-1.0.0" = {
+      name = "picocolors";
+      packageName = "picocolors";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz";
+        sha512 = "1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==";
+      };
+    };
+    "picomatch-2.3.1" = {
       name = "picomatch";
       packageName = "picomatch";
-      version = "2.3.0";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz";
-        sha512 = "lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==";
+        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz";
+        sha512 = "JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==";
       };
     };
     "pify-2.3.0" = {
@@ -7710,15 +7836,6 @@ let
         sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
       };
     };
-    "pkg-dir-2.0.0" = {
-      name = "pkg-dir";
-      packageName = "pkg-dir";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz";
-        sha1 = "f6d5d1109e19d63edf428e0bd57e12777615334b";
-      };
-    };
     "pkg-dir-3.0.0" = {
       name = "pkg-dir";
       packageName = "pkg-dir";
@@ -7737,15 +7854,6 @@ let
         sha512 = "HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==";
       };
     };
-    "pkg-up-2.0.0" = {
-      name = "pkg-up";
-      packageName = "pkg-up";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz";
-        sha1 = "c819ac728059a461cab1c3889a2be3c49a004d7f";
-      };
-    };
     "plur-2.1.2" = {
       name = "plur";
       packageName = "plur";
@@ -7782,22 +7890,22 @@ let
         sha512 = "zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==";
       };
     };
-    "postcss-7.0.36" = {
+    "postcss-7.0.39" = {
       name = "postcss";
       packageName = "postcss";
-      version = "7.0.36";
+      version = "7.0.39";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz";
-        sha512 = "BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==";
+        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz";
+        sha512 = "yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==";
       };
     };
-    "postcss-8.3.6" = {
+    "postcss-8.4.12" = {
       name = "postcss";
       packageName = "postcss";
-      version = "8.3.6";
+      version = "8.4.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz";
-        sha512 = "wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==";
+        url = "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz";
+        sha512 = "lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==";
       };
     };
     "postcss-attribute-case-insensitive-4.0.2" = {
@@ -8331,13 +8439,13 @@ let
         sha512 = "Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==";
       };
     };
-    "postcss-preset-env-6.7.0" = {
+    "postcss-preset-env-6.7.1" = {
       name = "postcss-preset-env";
       packageName = "postcss-preset-env";
-      version = "6.7.0";
+      version = "6.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz";
-        sha512 = "eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==";
+        url = "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.1.tgz";
+        sha512 = "rlRkgX9t0v2On33n7TK8pnkcYOATGQSv48J2RS8GsXhqtg+xk6AummHP88Y5mJo0TLJelBjePvSjScTNkj3+qw==";
       };
     };
     "postcss-pseudo-class-any-link-6.0.0" = {
@@ -8484,13 +8592,13 @@ let
         sha512 = "w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==";
       };
     };
-    "postcss-selector-parser-6.0.6" = {
+    "postcss-selector-parser-6.0.10" = {
       name = "postcss-selector-parser";
       packageName = "postcss-selector-parser";
-      version = "6.0.6";
+      version = "6.0.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz";
-        sha512 = "9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==";
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz";
+        sha512 = "IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==";
       };
     };
     "postcss-sorting-4.1.0" = {
@@ -8547,13 +8655,13 @@ let
         sha512 = "pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==";
       };
     };
-    "postcss-value-parser-4.1.0" = {
+    "postcss-value-parser-4.2.0" = {
       name = "postcss-value-parser";
       packageName = "postcss-value-parser";
-      version = "4.1.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz";
-        sha512 = "97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==";
+        url = "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz";
+        sha512 = "1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==";
       };
     };
     "postcss-values-parser-2.0.1" = {
@@ -8673,13 +8781,13 @@ let
         sha1 = "7e32f75b41381291d04611f1bf14109ac00651d7";
       };
     };
-    "qs-6.7.0" = {
+    "qs-6.9.7" = {
       name = "qs";
       packageName = "qs";
-      version = "6.7.0";
+      version = "6.9.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz";
-        sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
+        url = "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz";
+        sha512 = "IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==";
       };
     };
     "querystring-0.2.0" = {
@@ -8745,13 +8853,13 @@ let
         sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
       };
     };
-    "raw-body-2.4.0" = {
+    "raw-body-2.4.3" = {
       name = "raw-body";
       packageName = "raw-body";
-      version = "2.4.0";
+      version = "2.4.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz";
-        sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==";
+        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz";
+        sha512 = "UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==";
       };
     };
     "read-file-stdin-0.2.1" = {
@@ -8871,13 +8979,13 @@ let
         sha512 = "zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==";
       };
     };
-    "regenerate-unicode-properties-8.2.0" = {
+    "regenerate-unicode-properties-10.0.1" = {
       name = "regenerate-unicode-properties";
       packageName = "regenerate-unicode-properties";
-      version = "8.2.0";
+      version = "10.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz";
-        sha512 = "F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==";
+        url = "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz";
+        sha512 = "vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==";
       };
     };
     "regenerator-runtime-0.13.9" = {
@@ -8907,13 +9015,13 @@ let
         sha512 = "J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==";
       };
     };
-    "regexp.prototype.flags-1.3.1" = {
+    "regexp.prototype.flags-1.4.1" = {
       name = "regexp.prototype.flags";
       packageName = "regexp.prototype.flags";
-      version = "1.3.1";
+      version = "1.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz";
-        sha512 = "JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==";
+        url = "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz";
+        sha512 = "pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==";
       };
     };
     "regexpp-3.2.0" = {
@@ -8925,31 +9033,31 @@ let
         sha512 = "pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==";
       };
     };
-    "regexpu-core-4.7.1" = {
+    "regexpu-core-5.0.1" = {
       name = "regexpu-core";
       packageName = "regexpu-core";
-      version = "4.7.1";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz";
-        sha512 = "ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==";
+        url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz";
+        sha512 = "CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==";
       };
     };
-    "regjsgen-0.5.2" = {
+    "regjsgen-0.6.0" = {
       name = "regjsgen";
       packageName = "regjsgen";
-      version = "0.5.2";
+      version = "0.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz";
-        sha512 = "OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==";
+        url = "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz";
+        sha512 = "ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==";
       };
     };
-    "regjsparser-0.6.9" = {
+    "regjsparser-0.8.4" = {
       name = "regjsparser";
       packageName = "regjsparser";
-      version = "0.6.9";
+      version = "0.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz";
-        sha512 = "ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==";
+        url = "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz";
+        sha512 = "J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==";
       };
     };
     "relateurl-0.2.7" = {
@@ -9105,13 +9213,13 @@ let
         sha512 = "LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==";
       };
     };
-    "resolve-1.20.0" = {
+    "resolve-1.22.0" = {
       name = "resolve";
       packageName = "resolve";
-      version = "1.20.0";
+      version = "1.22.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz";
-        sha512 = "wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==";
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz";
+        sha512 = "Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==";
       };
     };
     "resolve-cwd-2.0.0" = {
@@ -9240,13 +9348,13 @@ let
         sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
       };
     };
-    "rollup-2.56.3" = {
+    "rollup-2.70.1" = {
       name = "rollup";
       packageName = "rollup";
-      version = "2.56.3";
+      version = "2.70.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rollup/-/rollup-2.56.3.tgz";
-        sha512 = "Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg==";
+        url = "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz";
+        sha512 = "CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==";
       };
     };
     "rollup-plugin-terser-7.0.2" = {
@@ -9276,6 +9384,15 @@ let
         sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
       };
     };
+    "safe-buffer-5.2.1" = {
+      name = "safe-buffer";
+      packageName = "safe-buffer";
+      version = "5.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
+        sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
+      };
+    };
     "safe-regex-1.1.0" = {
       name = "safe-regex";
       packageName = "safe-regex";
@@ -9294,22 +9411,22 @@ let
         sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
       };
     };
-    "sass-1.39.0" = {
+    "sass-1.49.11" = {
       name = "sass";
       packageName = "sass";
-      version = "1.39.0";
+      version = "1.49.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sass/-/sass-1.39.0.tgz";
-        sha512 = "F4o+RhJkNOIG0b6QudYU8c78ZADKZjKDk5cyrf8XTKWfrgbtyVVXImFstJrc+1pkQDCggyidIOytq6gS4gCCZg==";
+        url = "https://registry.npmjs.org/sass/-/sass-1.49.11.tgz";
+        sha512 = "wvS/geXgHUGs6A/4ud5BFIWKO1nKd7wYIGimDk4q4GFkJicILActpv9ueMT4eRGSsp1BdKHuw1WwAHXbhsJELQ==";
       };
     };
-    "sass-loader-10.2.0" = {
+    "sass-loader-10.2.1" = {
       name = "sass-loader";
       packageName = "sass-loader";
-      version = "10.2.0";
+      version = "10.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sass-loader/-/sass-loader-10.2.0.tgz";
-        sha512 = "kUceLzC1gIHz0zNJPpqRsJyisWatGYNFRmv2CKZK2/ngMJgLqxTbXwe/hJ85luyvZkgqU3VlJ33UVF2T/0g6mw==";
+        url = "https://registry.npmjs.org/sass-loader/-/sass-loader-10.2.1.tgz";
+        sha512 = "RRvWl+3K2LSMezIsd008ErK4rk6CulIMSwrcc2aZvjymUgKo/vjXGp1rSWmfTUX7bblEOz8tst4wBwWtCGBqKA==";
       };
     };
     "sax-1.2.4" = {
@@ -9348,13 +9465,13 @@ let
         sha512 = "Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==";
       };
     };
-    "screenfull-5.1.0" = {
+    "screenfull-5.2.0" = {
       name = "screenfull";
       packageName = "screenfull";
-      version = "5.1.0";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/screenfull/-/screenfull-5.1.0.tgz";
-        sha512 = "dYaNuOdzr+kc6J6CFcBrzkLCfyGcMg+gWkJ8us93IQ7y1cevhQAugFsaCdMHb6lw8KV3xPzSxzH7zM1dQap9mA==";
+        url = "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz";
+        sha512 = "9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==";
       };
     };
     "select-hose-2.0.0" = {
@@ -9366,13 +9483,13 @@ let
         sha1 = "625d8658f865af43ec962bfc376a37359a4994ca";
       };
     };
-    "selfsigned-1.10.11" = {
+    "selfsigned-1.10.14" = {
       name = "selfsigned";
       packageName = "selfsigned";
-      version = "1.10.11";
+      version = "1.10.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz";
-        sha512 = "aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==";
+        url = "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.14.tgz";
+        sha512 = "lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==";
       };
     };
     "semver-5.7.1" = {
@@ -9411,13 +9528,13 @@ let
         sha512 = "PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==";
       };
     };
-    "send-0.17.1" = {
+    "send-0.17.2" = {
       name = "send";
       packageName = "send";
-      version = "0.17.1";
+      version = "0.17.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz";
-        sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
+        url = "https://registry.npmjs.org/send/-/send-0.17.2.tgz";
+        sha512 = "UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==";
       };
     };
     "serialize-javascript-4.0.0" = {
@@ -9456,13 +9573,13 @@ let
         sha1 = "d3768d69b1e7d82e5ce050fff5b453bea12a9239";
       };
     };
-    "serve-static-1.14.1" = {
+    "serve-static-1.14.2" = {
       name = "serve-static";
       packageName = "serve-static";
-      version = "1.14.1";
+      version = "1.14.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz";
-        sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
+        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz";
+        sha512 = "+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==";
       };
     };
     "set-blocking-2.0.0" = {
@@ -9501,13 +9618,13 @@ let
         sha512 = "BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==";
       };
     };
-    "setprototypeof-1.1.1" = {
+    "setprototypeof-1.2.0" = {
       name = "setprototypeof";
       packageName = "setprototypeof";
-      version = "1.1.1";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz";
-        sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
+        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz";
+        sha512 = "E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==";
       };
     };
     "shallow-clone-3.0.1" = {
@@ -9564,13 +9681,13 @@ let
         sha512 = "q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==";
       };
     };
-    "signal-exit-3.0.3" = {
+    "signal-exit-3.0.7" = {
       name = "signal-exit";
       packageName = "signal-exit";
-      version = "3.0.3";
+      version = "3.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz";
-        sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==";
+        url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz";
+        sha512 = "wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==";
       };
     };
     "simple-swizzle-0.2.2" = {
@@ -9645,31 +9762,31 @@ let
         sha512 = "mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==";
       };
     };
-    "sockjs-0.3.21" = {
+    "sockjs-0.3.24" = {
       name = "sockjs";
       packageName = "sockjs";
-      version = "0.3.21";
+      version = "0.3.24";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz";
-        sha512 = "DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==";
+        url = "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz";
+        sha512 = "GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==";
       };
     };
-    "sockjs-client-1.5.2" = {
+    "sockjs-client-1.6.0" = {
       name = "sockjs-client";
       packageName = "sockjs-client";
-      version = "1.5.2";
+      version = "1.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.2.tgz";
-        sha512 = "ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ==";
+        url = "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.6.0.tgz";
+        sha512 = "qVHJlyfdHFht3eBFZdKEXKTlb7I4IV41xnVNo8yUKA1UHcPJwgW2SvTq9LhnjjCywSkSK7c/e4nghU0GOoMCRQ==";
       };
     };
-    "sortablejs-1.14.0" = {
+    "sortablejs-1.15.0" = {
       name = "sortablejs";
       packageName = "sortablejs";
-      version = "1.14.0";
+      version = "1.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz";
-        sha512 = "pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==";
+        url = "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.0.tgz";
+        sha512 = "bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==";
       };
     };
     "source-list-map-2.0.1" = {
@@ -9717,13 +9834,13 @@ let
         sha512 = "2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==";
       };
     };
-    "source-map-js-0.6.2" = {
+    "source-map-js-1.0.2" = {
       name = "source-map-js";
       packageName = "source-map-js";
-      version = "0.6.2";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz";
-        sha512 = "/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==";
+        url = "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz";
+        sha512 = "R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==";
       };
     };
     "source-map-loader-1.1.3" = {
@@ -9744,13 +9861,13 @@ let
         sha512 = "Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==";
       };
     };
-    "source-map-support-0.5.19" = {
+    "source-map-support-0.5.21" = {
       name = "source-map-support";
       packageName = "source-map-support";
-      version = "0.5.19";
+      version = "0.5.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz";
-        sha512 = "Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==";
+        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz";
+        sha512 = "uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==";
       };
     };
     "source-map-url-0.4.1" = {
@@ -9798,13 +9915,13 @@ let
         sha512 = "cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==";
       };
     };
-    "spdx-license-ids-3.0.10" = {
+    "spdx-license-ids-3.0.11" = {
       name = "spdx-license-ids";
       packageName = "spdx-license-ids";
-      version = "3.0.10";
+      version = "3.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz";
-        sha512 = "oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==";
+        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz";
+        sha512 = "Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==";
       };
     };
     "spdy-4.0.2" = {
@@ -9915,13 +10032,22 @@ let
         sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
       };
     };
-    "string-width-4.2.2" = {
+    "string-width-4.2.3" = {
       name = "string-width";
       packageName = "string-width";
-      version = "4.2.2";
+      version = "4.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz";
-        sha512 = "XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==";
+        url = "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz";
+        sha512 = "wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==";
+      };
+    };
+    "string.prototype.matchall-4.0.7" = {
+      name = "string.prototype.matchall";
+      packageName = "string.prototype.matchall";
+      version = "4.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz";
+        sha512 = "f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==";
       };
     };
     "string.prototype.trimend-1.0.4" = {
@@ -9987,13 +10113,13 @@ let
         sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==";
       };
     };
-    "strip-ansi-6.0.0" = {
+    "strip-ansi-6.0.1" = {
       name = "strip-ansi";
       packageName = "strip-ansi";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz";
-        sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==";
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz";
+        sha512 = "Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==";
       };
     };
     "strip-bom-3.0.0" = {
@@ -10149,13 +10275,13 @@ let
         sha512 = "sVTikaDvMqg2aJjh4r48jsdfmqLT+nqB1MOsaBnvM3OwLx4S+WXcsxsgk5w18h/OZoxZCxuyXMh61iBHcj9Qiw==";
       };
     };
-    "stylelint-scss-3.20.1" = {
+    "stylelint-scss-3.21.0" = {
       name = "stylelint-scss";
       packageName = "stylelint-scss";
-      version = "3.20.1";
+      version = "3.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-3.20.1.tgz";
-        sha512 = "OTd55O1TTAC5nGKkVmUDLpz53LlK39R3MImv1CfuvsK7/qugktqiZAeQLuuC4UBhzxCnsc7fp9u/gfRZwFAIkA==";
+        url = "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-3.21.0.tgz";
+        sha512 = "CMI2wSHL+XVlNExpauy/+DbUcB/oUZLARDtMIXkpV/5yd8nthzylYd1cdHeDMJVBXeYHldsnebUX6MoV5zPW4A==";
       };
     };
     "sugarss-2.0.0" = {
@@ -10221,6 +10347,15 @@ let
         sha512 = "MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==";
       };
     };
+    "supports-preserve-symlinks-flag-1.0.0" = {
+      name = "supports-preserve-symlinks-flag";
+      packageName = "supports-preserve-symlinks-flag";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz";
+        sha512 = "ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==";
+      };
+    };
     "svg-tags-1.0.0" = {
       name = "svg-tags";
       packageName = "svg-tags";
@@ -10257,13 +10392,13 @@ let
         sha512 = "wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==";
       };
     };
-    "table-6.7.1" = {
+    "table-6.8.0" = {
       name = "table";
       packageName = "table";
-      version = "6.7.1";
+      version = "6.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/table/-/table-6.7.1.tgz";
-        sha512 = "ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==";
+        url = "https://registry.npmjs.org/table/-/table-6.8.0.tgz";
+        sha512 = "s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==";
       };
     };
     "tapable-1.1.3" = {
@@ -10275,13 +10410,13 @@ let
         sha512 = "4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==";
       };
     };
-    "tapable-2.2.0" = {
+    "tapable-2.2.1" = {
       name = "tapable";
       packageName = "tapable";
-      version = "2.2.0";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz";
-        sha512 = "FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==";
+        url = "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz";
+        sha512 = "GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==";
       };
     };
     "tar-6.1.11" = {
@@ -10320,22 +10455,22 @@ let
         sha512 = "EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==";
       };
     };
-    "terser-5.7.2" = {
+    "terser-5.12.1" = {
       name = "terser";
       packageName = "terser";
-      version = "5.7.2";
+      version = "5.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser/-/terser-5.7.2.tgz";
-        sha512 = "0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw==";
+        url = "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz";
+        sha512 = "NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==";
       };
     };
-    "terser-webpack-plugin-5.2.3" = {
+    "terser-webpack-plugin-5.3.1" = {
       name = "terser-webpack-plugin";
       packageName = "terser-webpack-plugin";
-      version = "5.2.3";
+      version = "5.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.3.tgz";
-        sha512 = "eDbuaDlXhVaaoKuLD3DTNTozKqln6xOG6Us0SzlKG5tNlazG+/cdl8pm9qiF1Di89iWScTI0HcO+CDcf2dkXiw==";
+        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz";
+        sha512 = "GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==";
       };
     };
     "text-table-0.2.0" = {
@@ -10410,13 +10545,13 @@ let
         sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==";
       };
     };
-    "toidentifier-1.0.0" = {
+    "toidentifier-1.0.1" = {
       name = "toidentifier";
       packageName = "toidentifier";
-      version = "1.0.0";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz";
-        sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
+        url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz";
+        sha512 = "o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==";
       };
     };
     "tr46-1.0.1" = {
@@ -10473,13 +10608,13 @@ let
         sha512 = "rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==";
       };
     };
-    "tsconfig-paths-3.11.0" = {
+    "tsconfig-paths-3.14.1" = {
       name = "tsconfig-paths";
       packageName = "tsconfig-paths";
-      version = "3.11.0";
+      version = "3.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz";
-        sha512 = "7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==";
+        url = "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz";
+        sha512 = "fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==";
       };
     };
     "tslib-2.3.1" = {
@@ -10500,13 +10635,13 @@ let
         sha512 = "+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==";
       };
     };
-    "type-2.5.0" = {
+    "type-2.6.0" = {
       name = "type";
       packageName = "type";
-      version = "2.5.0";
+      version = "2.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/type/-/type-2.5.0.tgz";
-        sha512 = "180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==";
+        url = "https://registry.npmjs.org/type/-/type-2.6.0.tgz";
+        sha512 = "eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==";
       };
     };
     "type-check-0.4.0" = {
@@ -10599,40 +10734,40 @@ let
         sha512 = "Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==";
       };
     };
-    "unicode-canonical-property-names-ecmascript-1.0.4" = {
+    "unicode-canonical-property-names-ecmascript-2.0.0" = {
       name = "unicode-canonical-property-names-ecmascript";
       packageName = "unicode-canonical-property-names-ecmascript";
-      version = "1.0.4";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz";
-        sha512 = "jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==";
+        url = "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz";
+        sha512 = "yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==";
       };
     };
-    "unicode-match-property-ecmascript-1.0.4" = {
+    "unicode-match-property-ecmascript-2.0.0" = {
       name = "unicode-match-property-ecmascript";
       packageName = "unicode-match-property-ecmascript";
-      version = "1.0.4";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz";
-        sha512 = "L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==";
+        url = "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz";
+        sha512 = "5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==";
       };
     };
-    "unicode-match-property-value-ecmascript-1.2.0" = {
+    "unicode-match-property-value-ecmascript-2.0.0" = {
       name = "unicode-match-property-value-ecmascript";
       packageName = "unicode-match-property-value-ecmascript";
-      version = "1.2.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz";
-        sha512 = "wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==";
+        url = "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz";
+        sha512 = "7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==";
       };
     };
-    "unicode-property-aliases-ecmascript-1.1.0" = {
+    "unicode-property-aliases-ecmascript-2.0.0" = {
       name = "unicode-property-aliases-ecmascript";
       packageName = "unicode-property-aliases-ecmascript";
-      version = "1.1.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz";
-        sha512 = "PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==";
+        url = "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz";
+        sha512 = "5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==";
       };
     };
     "unified-7.1.0" = {
@@ -10860,22 +10995,22 @@ let
         sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1";
       };
     };
-    "url-parse-1.5.3" = {
+    "url-parse-1.5.10" = {
       name = "url-parse";
       packageName = "url-parse";
-      version = "1.5.3";
+      version = "1.5.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz";
-        sha512 = "IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==";
+        url = "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz";
+        sha512 = "WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==";
       };
     };
-    "url-toolkit-2.2.3" = {
+    "url-toolkit-2.2.5" = {
       name = "url-toolkit";
       packageName = "url-toolkit";
-      version = "2.2.3";
+      version = "2.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.2.3.tgz";
-        sha512 = "Da75SQoxsZ+2wXS56CZBrj2nukQ4nlGUZUP/dqUBG5E1su5GKThgT94Q00x81eVII7AyS1Pn+CtTTZ4Z0pLUtQ==";
+        url = "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.2.5.tgz";
+        sha512 = "mtN6xk+Nac+oyJ/PrI7tzfmomRVNFIWKUbG8jdYFt52hxbiReFAXIjYskvu64/dvuW71IcB7lV8l0HvZMac6Jg==";
       };
     };
     "use-3.1.1" = {
@@ -10941,6 +11076,15 @@ let
         sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
       };
     };
+    "uuid-8.3.2" = {
+      name = "uuid";
+      packageName = "uuid";
+      version = "8.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz";
+        sha512 = "+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==";
+      };
+    };
     "v8-compile-cache-2.3.0" = {
       name = "v8-compile-cache";
       packageName = "v8-compile-cache";
@@ -11022,13 +11166,13 @@ let
         sha512 = "DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==";
       };
     };
-    "watchpack-2.2.0" = {
+    "watchpack-2.3.1" = {
       name = "watchpack";
       packageName = "watchpack";
-      version = "2.2.0";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz";
-        sha512 = "up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==";
+        url = "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz";
+        sha512 = "x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==";
       };
     };
     "wbuf-1.7.3" = {
@@ -11058,22 +11202,22 @@ let
         sha512 = "YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==";
       };
     };
-    "webpack-5.52.0" = {
+    "webpack-5.71.0" = {
       name = "webpack";
       packageName = "webpack";
-      version = "5.52.0";
+      version = "5.71.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack/-/webpack-5.52.0.tgz";
-        sha512 = "yRZOat8jWGwBwHpco3uKQhVU7HYaNunZiJ4AkAVQkPCUGoZk/tiIXiwG+8HIy/F+qsiZvSOa+GLQOj3q5RKRYg==";
+        url = "https://registry.npmjs.org/webpack/-/webpack-5.71.0.tgz";
+        sha512 = "g4dFT7CFG8LY0iU5G8nBL6VlkT21Z7dcYDpJAEJV5Q1WLb9UwnFbrem1k7K52ILqEmomN7pnzWFxxE6SlDY56A==";
       };
     };
-    "webpack-cli-4.8.0" = {
+    "webpack-cli-4.9.2" = {
       name = "webpack-cli";
       packageName = "webpack-cli";
-      version = "4.8.0";
+      version = "4.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.8.0.tgz";
-        sha512 = "+iBSWsX16uVna5aAYN6/wjhJy1q/GKk4KjKvfg90/6hykCTSgozbfz5iRgDTSJt/LgSbYxdBX3KBHeobIs+ZEw==";
+        url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz";
+        sha512 = "m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==";
       };
     };
     "webpack-dev-middleware-3.7.3" = {
@@ -11085,13 +11229,13 @@ let
         sha512 = "djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==";
       };
     };
-    "webpack-dev-server-3.11.2" = {
+    "webpack-dev-server-3.11.3" = {
       name = "webpack-dev-server";
       packageName = "webpack-dev-server";
-      version = "3.11.2";
+      version = "3.11.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz";
-        sha512 = "A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==";
+        url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz";
+        sha512 = "3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA==";
       };
     };
     "webpack-log-2.0.0" = {
@@ -11130,13 +11274,13 @@ let
         sha512 = "lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==";
       };
     };
-    "webpack-sources-3.2.0" = {
+    "webpack-sources-3.2.3" = {
       name = "webpack-sources";
       packageName = "webpack-sources";
-      version = "3.2.0";
+      version = "3.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.0.tgz";
-        sha512 = "fahN08Et7P9trej8xz/Z7eRu8ltyiygEo/hnRi9KqBUs80KeDcnf96ZJo++ewWd84fEf3xSX9bp4ZS9hbw0OBw==";
+        url = "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz";
+        sha512 = "/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==";
       };
     };
     "websocket-driver-0.7.4" = {
@@ -11247,40 +11391,40 @@ let
         sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==";
       };
     };
-    "workbox-background-sync-6.2.4" = {
+    "workbox-background-sync-6.5.2" = {
       name = "workbox-background-sync";
       packageName = "workbox-background-sync";
-      version = "6.2.4";
+      version = "6.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.2.4.tgz";
-        sha512 = "uoGgm1PZU6THRzXKlMEntrdA4Xkp6SCfxI7re4heN+yGrtAZq6zMKYhZmsdeW+YGnXS3y5xj7WV03b5TDgLh6A==";
+        url = "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.2.tgz";
+        sha512 = "EjG37LSMDJ1TFlFg56wx6YXbH4/NkG09B9OHvyxx+cGl2gP5OuOzsCY3rOPJSpbcz6jpuA40VIC3HzSD4OvE1g==";
       };
     };
-    "workbox-broadcast-update-6.2.4" = {
+    "workbox-broadcast-update-6.5.2" = {
       name = "workbox-broadcast-update";
       packageName = "workbox-broadcast-update";
-      version = "6.2.4";
+      version = "6.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.2.4.tgz";
-        sha512 = "0EpML2lbxNkiZUoap4BJDA0Hfz36MhtUd/rRhFvF6YWoRbTQ8tc6tMaRgM1EBIUmIN2OX9qQlkqe5SGGt4lfXQ==";
+        url = "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.2.tgz";
+        sha512 = "DjJYraYnprTZE/AQNoeogaxI1dPuYmbw+ZJeeP8uXBSbg9SNv5wLYofQgywXeRepv4yr/vglMo9yaHUmBMc+4Q==";
       };
     };
-    "workbox-build-6.2.4" = {
+    "workbox-build-6.5.2" = {
       name = "workbox-build";
       packageName = "workbox-build";
-      version = "6.2.4";
+      version = "6.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-build/-/workbox-build-6.2.4.tgz";
-        sha512 = "01ZbY1BHi+yYvu4yDGZBw9xm1bWyZW0QGWPxiksvSPAsNH/z/NwgtWW14YEroFyG98mmXb7pufWlwl40zE1KTw==";
+        url = "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.2.tgz";
+        sha512 = "TVi4Otf6fgwikBeMpXF9n0awHfZTMNu/nwlMIT9W+c13yvxkmDFMPb7vHYK6RUmbcxwPnz4I/R+uL76+JxG4JQ==";
       };
     };
-    "workbox-cacheable-response-6.2.4" = {
+    "workbox-cacheable-response-6.5.2" = {
       name = "workbox-cacheable-response";
       packageName = "workbox-cacheable-response";
-      version = "6.2.4";
+      version = "6.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.2.4.tgz";
-        sha512 = "KZSzAOmgWsrk15Wu+geCUSGLIyyzHaORKjH5JnR6qcVZAsm0JXUu2m2OZGqjQ+/eyQwrGdXXqAMW+4wQvTXccg==";
+        url = "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.2.tgz";
+        sha512 = "UnHGih6xqloV808T7ve1iNKZMbpML0jGLqkkmyXkJbZc5j16+HRSV61Qrh+tiq3E3yLvFMGJ3AUBODOPNLWpTg==";
       };
     };
     "workbox-core-5.1.4" = {
@@ -11292,40 +11436,40 @@ let
         sha512 = "+4iRQan/1D8I81nR2L5vcbaaFskZC2CL17TLbvWVzQ4qiF/ytOGF6XeV54pVxAvKUtkLANhk8TyIUMtiMw2oDg==";
       };
     };
-    "workbox-core-6.2.4" = {
+    "workbox-core-6.5.2" = {
       name = "workbox-core";
       packageName = "workbox-core";
-      version = "6.2.4";
+      version = "6.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-core/-/workbox-core-6.2.4.tgz";
-        sha512 = "Nu8X4R4Is3g8uzEJ6qwbW2CGVpzntW/cSf8OfsQGIKQR0nt84FAKzP2cLDaNLp3L/iV9TuhZgCTZzkMiap5/OQ==";
+        url = "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.2.tgz";
+        sha512 = "IlxLGQf+wJHCR+NM0UWqDh4xe/Gu6sg2i4tfZk6WIij34IVk9BdOQgi6WvqSHd879jbQIUgL2fBdJUJyAP5ypQ==";
       };
     };
-    "workbox-expiration-6.2.4" = {
+    "workbox-expiration-6.5.2" = {
       name = "workbox-expiration";
       packageName = "workbox-expiration";
-      version = "6.2.4";
+      version = "6.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.2.4.tgz";
-        sha512 = "EdOBLunrE3+Ff50y7AYDbiwtiLDvB+oEIkL1Wd9G5d176YVqFfgPfMRzJQ7fN+Yy2NfmsFME0Bw+dQruYekWsQ==";
+        url = "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.2.tgz";
+        sha512 = "5Hfp0uxTZJrgTiy9W7AjIIec+9uTOtnxY/tRBm4DbqcWKaWbVTa+izrKzzOT4MXRJJIJUmvRhWw4oo8tpmMouw==";
       };
     };
-    "workbox-google-analytics-6.2.4" = {
+    "workbox-google-analytics-6.5.2" = {
       name = "workbox-google-analytics";
       packageName = "workbox-google-analytics";
-      version = "6.2.4";
+      version = "6.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.2.4.tgz";
-        sha512 = "+PWmTouoGGcDupaxM193F2NmgrF597Pyt9eHIDxfed+x+JSSeUkETlbAKwB8rnBHkAjs8JQcvStEP/IpueNKpQ==";
+        url = "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.2.tgz";
+        sha512 = "8SMar+N0xIreP5/2we3dwtN1FUmTMScoopL86aKdXBpio8vXc8Oqb5fCJG32ialjN8BAOzDqx/FnGeCtkIlyvw==";
       };
     };
-    "workbox-navigation-preload-6.2.4" = {
+    "workbox-navigation-preload-6.5.2" = {
       name = "workbox-navigation-preload";
       packageName = "workbox-navigation-preload";
-      version = "6.2.4";
+      version = "6.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.2.4.tgz";
-        sha512 = "y2dOSsaSdEimqhCmBIFR6kBp+GZbtNtWCBaMFwfKxTAul2uyllKcTKBHnZ9IzxULue6o6voV+I2U8Y8tO8n+eA==";
+        url = "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.2.tgz";
+        sha512 = "iqDNWWMswjCsZuvGFDpcX1Z8InBVAlVBELJ28xShsWWntALzbtr0PXMnm2WHkXCc56JimmGldZi1N5yDPiTPOg==";
       };
     };
     "workbox-precaching-5.1.4" = {
@@ -11337,85 +11481,85 @@ let
         sha512 = "gCIFrBXmVQLFwvAzuGLCmkUYGVhBb7D1k/IL7pUJUO5xacjLcFUaLnnsoVepBGAiKw34HU1y/YuqvTKim9qAZA==";
       };
     };
-    "workbox-precaching-6.2.4" = {
+    "workbox-precaching-6.5.2" = {
       name = "workbox-precaching";
       packageName = "workbox-precaching";
-      version = "6.2.4";
+      version = "6.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.2.4.tgz";
-        sha512 = "7POznbVc8EG/mkbXzeb94x3B1VJruPgXvXFgS0NJ3GRugkO4ULs/DpIIb+ycs7uJIKY9EzLS7VXvElr3rMSozQ==";
+        url = "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.2.tgz";
+        sha512 = "OZAlQ8AAT20KugGKKuJMHdQ8X1IyNQaLv+mPTHj+8Dmv8peBq5uWNzs4g/1OSFmXsbXZ6a1CBC6YtQWVPhJQ9w==";
       };
     };
-    "workbox-range-requests-6.2.4" = {
+    "workbox-range-requests-6.5.2" = {
       name = "workbox-range-requests";
       packageName = "workbox-range-requests";
-      version = "6.2.4";
+      version = "6.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.2.4.tgz";
-        sha512 = "q4jjTXD1QOKbrHnzV3nxdZtIpOiVoIP5QyVmjuJrybVnAZurtyKcqirTQcAcT/zlTvgwm07zcTTk9o/zIB6DmA==";
+        url = "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.2.tgz";
+        sha512 = "zi5VqF1mWqfCyJLTMXn1EuH/E6nisqWDK1VmOJ+TnjxGttaQrseOhMn+BMvULFHeF8AvrQ0ogfQ6bSv0rcfAlg==";
       };
     };
-    "workbox-recipes-6.2.4" = {
+    "workbox-recipes-6.5.2" = {
       name = "workbox-recipes";
       packageName = "workbox-recipes";
-      version = "6.2.4";
+      version = "6.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.2.4.tgz";
-        sha512 = "z7oECGrt940dw1Bv0xIDJEXY1xARiaxsIedeJOutZFkbgaC/yWG61VTr/hmkeJ8Nx6jnY6W7Rc0iOUvg4sePag==";
+        url = "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.2.tgz";
+        sha512 = "2lcUKMYDiJKvuvRotOxLjH2z9K7jhj8GNUaHxHNkJYbTCUN3LsX1cWrsgeJFDZ/LgI565t3fntpbG9J415ZBXA==";
       };
     };
-    "workbox-routing-6.2.4" = {
+    "workbox-routing-6.5.2" = {
       name = "workbox-routing";
       packageName = "workbox-routing";
-      version = "6.2.4";
+      version = "6.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.2.4.tgz";
-        sha512 = "jHnOmpeH4MOWR4eXv6l608npD2y6IFv7yFJ1bT9/RbB8wq2vXHXJQ0ExTZRTWGbVltSG22wEU+MQ8VebDDwDeg==";
+        url = "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.2.tgz";
+        sha512 = "nR1w5PjF6IVwo0SX3oE88LhmGFmTnqqU7zpGJQQPZiKJfEKgDENQIM9mh3L1ksdFd9Y3CZVkusopHfxQvit/BA==";
       };
     };
-    "workbox-strategies-6.2.4" = {
+    "workbox-strategies-6.5.2" = {
       name = "workbox-strategies";
       packageName = "workbox-strategies";
-      version = "6.2.4";
+      version = "6.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.2.4.tgz";
-        sha512 = "DKgGC3ruceDuu2o+Ae5qmJy0p0q21mFP+RrkdqKrjyf2u8cJvvtvt1eIt4nevKc5BESiKxmhC2h+TZpOSzUDvA==";
+        url = "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.2.tgz";
+        sha512 = "fgbwaUMxbG39BHjJIs2y2X21C0bmf1Oq3vMQxJ1hr6y5JMJIm8rvKCcf1EIdAr+PjKdSk4ddmgyBQ4oO8be4Uw==";
       };
     };
-    "workbox-streams-6.2.4" = {
+    "workbox-streams-6.5.2" = {
       name = "workbox-streams";
       packageName = "workbox-streams";
-      version = "6.2.4";
+      version = "6.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.2.4.tgz";
-        sha512 = "yG6zV7S2NmYT6koyb7/DoPsyUAat9kD+rOmjP2SbBCtJdLu6ZIi1lgN4/rOkxEby/+Xb4OE4RmCSIZdMyjEmhQ==";
+        url = "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.2.tgz";
+        sha512 = "ovD0P4UrgPtZ2Lfc/8E8teb1RqNOSZr+1ZPqLR6sGRZnKZviqKbQC3zVvvkhmOIwhWbpL7bQlWveLVONHjxd5w==";
       };
     };
-    "workbox-sw-6.2.4" = {
+    "workbox-sw-6.5.2" = {
       name = "workbox-sw";
       packageName = "workbox-sw";
-      version = "6.2.4";
+      version = "6.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.2.4.tgz";
-        sha512 = "OlWLHNNM+j44sN2OaVXnVcf2wwhJUzcHlXrTrbWDu1JWnrQJ/rLicdc/sbxkZoyE0EbQm7Xr1BXcOjsB7PNlXQ==";
+        url = "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.2.tgz";
+        sha512 = "2KhlYqtkoqlnPdllj2ujXUKRuEFsRDIp6rdE4l1PsxiFHRAFaRTisRQpGvRem5yxgXEr+fcEKiuZUW2r70KZaw==";
       };
     };
-    "workbox-webpack-plugin-6.2.4" = {
+    "workbox-webpack-plugin-6.5.2" = {
       name = "workbox-webpack-plugin";
       packageName = "workbox-webpack-plugin";
-      version = "6.2.4";
+      version = "6.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.2.4.tgz";
-        sha512 = "G6yeOZDYEbtqgNasqwxHFnma0Vp237kMxpsf8JV/YIhvhUuMwnh1WKv4VnFeqmYaWW/ITx0qj92IEMWB/O1mAA==";
+        url = "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.2.tgz";
+        sha512 = "StrJ7wKp5tZuGVcoKLVjFWlhDy+KT7ZWsKnNcD6F08wA9Cpt6JN+PLIrplcsTHbQpoAV8+xg6RvcG0oc9z+RpQ==";
       };
     };
-    "workbox-window-6.2.4" = {
+    "workbox-window-6.5.2" = {
       name = "workbox-window";
       packageName = "workbox-window";
-      version = "6.2.4";
+      version = "6.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-window/-/workbox-window-6.2.4.tgz";
-        sha512 = "9jD6THkwGEASj1YP56ZBHYJ147733FoGpJlMamYk38k/EBFE75oc6K3Vs2tGOBx5ZGq54+mHSStnlrtFG3IiOg==";
+        url = "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.2.tgz";
+        sha512 = "2kZH37r9Wx8swjEOL4B8uGM53lakMxsKkQ7mOKzGA/QAn/DQTEZGrdHWtypk2tbhKY5S0jvPS+sYDnb2Z3378A==";
       };
     };
     "worker-plugin-5.0.1" = {
@@ -11490,15 +11634,6 @@ let
         sha1 = "474b50865af3a49a9c4657f05acd145458f77d82";
       };
     };
-    "xmldom-0.3.0" = {
-      name = "xmldom";
-      packageName = "xmldom";
-      version = "0.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/xmldom/-/xmldom-0.3.0.tgz";
-        sha512 = "z9s6k3wxE+aZHgXYxSTpGDo7BYOUfJsIRyoZiX6HTjwpwfS2wpQBQKa2fD+ShLyPkqDYo5ud7KitmLZ2Cd6r0g==";
-      };
-    };
     "xtend-4.0.2" = {
       name = "xtend";
       packageName = "xtend";
@@ -11594,61 +11729,64 @@ let
     name = "jellyfin-web";
     packageName = "jellyfin-web";
     version = "0.0.0";
-    src = ../../../../../../../nix/store/4n28kmji75gd671zm8v6xg8ywghv3s2s-source;
+    src = ../../../../../../../../../nix/store/4n28kmji75gd671zm8v6xg8ywghv3s2s-source;
     dependencies = [
-      (sources."@apideck/better-ajv-errors-0.2.5" // {
+      sources."@ampproject/remapping-2.1.2"
+      (sources."@apideck/better-ajv-errors-0.3.3" // {
         dependencies = [
           sources."leven-3.1.0"
         ];
       })
-      sources."@babel/code-frame-7.14.5"
-      sources."@babel/compat-data-7.15.0"
-      sources."@babel/core-7.15.5"
-      sources."@babel/eslint-parser-7.15.4"
-      sources."@babel/eslint-plugin-7.14.5"
-      sources."@babel/generator-7.15.4"
-      sources."@babel/helper-annotate-as-pure-7.15.4"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.15.4"
-      sources."@babel/helper-compilation-targets-7.15.4"
-      sources."@babel/helper-create-class-features-plugin-7.15.4"
-      sources."@babel/helper-create-regexp-features-plugin-7.14.5"
-      sources."@babel/helper-define-polyfill-provider-0.2.3"
-      sources."@babel/helper-explode-assignable-expression-7.15.4"
-      sources."@babel/helper-function-name-7.15.4"
-      sources."@babel/helper-get-function-arity-7.15.4"
-      sources."@babel/helper-hoist-variables-7.15.4"
-      sources."@babel/helper-member-expression-to-functions-7.15.4"
-      sources."@babel/helper-module-imports-7.15.4"
-      sources."@babel/helper-module-transforms-7.15.4"
-      sources."@babel/helper-optimise-call-expression-7.15.4"
-      sources."@babel/helper-plugin-utils-7.14.5"
-      sources."@babel/helper-remap-async-to-generator-7.15.4"
-      sources."@babel/helper-replace-supers-7.15.4"
-      sources."@babel/helper-simple-access-7.15.4"
-      sources."@babel/helper-skip-transparent-expression-wrappers-7.15.4"
-      sources."@babel/helper-split-export-declaration-7.15.4"
-      sources."@babel/helper-validator-identifier-7.14.9"
-      sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helper-wrap-function-7.15.4"
-      sources."@babel/helpers-7.15.4"
-      sources."@babel/highlight-7.14.5"
-      sources."@babel/parser-7.15.5"
-      sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4"
-      sources."@babel/plugin-proposal-async-generator-functions-7.15.4"
-      sources."@babel/plugin-proposal-class-properties-7.14.5"
-      sources."@babel/plugin-proposal-class-static-block-7.15.4"
-      sources."@babel/plugin-proposal-dynamic-import-7.14.5"
-      sources."@babel/plugin-proposal-export-namespace-from-7.14.5"
-      sources."@babel/plugin-proposal-json-strings-7.14.5"
-      sources."@babel/plugin-proposal-logical-assignment-operators-7.14.5"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.14.5"
-      sources."@babel/plugin-proposal-numeric-separator-7.14.5"
-      sources."@babel/plugin-proposal-object-rest-spread-7.14.7"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.14.5"
-      sources."@babel/plugin-proposal-optional-chaining-7.14.5"
-      sources."@babel/plugin-proposal-private-methods-7.14.5"
-      sources."@babel/plugin-proposal-private-property-in-object-7.15.4"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.14.5"
+      sources."@babel/code-frame-7.16.7"
+      sources."@babel/compat-data-7.17.7"
+      sources."@babel/core-7.17.8"
+      sources."@babel/eslint-parser-7.17.0"
+      sources."@babel/eslint-plugin-7.17.7"
+      sources."@babel/generator-7.17.7"
+      sources."@babel/helper-annotate-as-pure-7.16.7"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.7"
+      sources."@babel/helper-compilation-targets-7.17.7"
+      sources."@babel/helper-create-class-features-plugin-7.17.6"
+      sources."@babel/helper-create-regexp-features-plugin-7.17.0"
+      sources."@babel/helper-define-polyfill-provider-0.3.1"
+      sources."@babel/helper-environment-visitor-7.16.7"
+      sources."@babel/helper-explode-assignable-expression-7.16.7"
+      sources."@babel/helper-function-name-7.16.7"
+      sources."@babel/helper-get-function-arity-7.16.7"
+      sources."@babel/helper-hoist-variables-7.16.7"
+      sources."@babel/helper-member-expression-to-functions-7.17.7"
+      sources."@babel/helper-module-imports-7.16.7"
+      sources."@babel/helper-module-transforms-7.17.7"
+      sources."@babel/helper-optimise-call-expression-7.16.7"
+      sources."@babel/helper-plugin-utils-7.16.7"
+      sources."@babel/helper-remap-async-to-generator-7.16.8"
+      sources."@babel/helper-replace-supers-7.16.7"
+      sources."@babel/helper-simple-access-7.17.7"
+      sources."@babel/helper-skip-transparent-expression-wrappers-7.16.0"
+      sources."@babel/helper-split-export-declaration-7.16.7"
+      sources."@babel/helper-validator-identifier-7.16.7"
+      sources."@babel/helper-validator-option-7.16.7"
+      sources."@babel/helper-wrap-function-7.16.8"
+      sources."@babel/helpers-7.17.8"
+      sources."@babel/highlight-7.16.10"
+      sources."@babel/parser-7.17.8"
+      sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7"
+      sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7"
+      sources."@babel/plugin-proposal-async-generator-functions-7.16.8"
+      sources."@babel/plugin-proposal-class-properties-7.16.7"
+      sources."@babel/plugin-proposal-class-static-block-7.17.6"
+      sources."@babel/plugin-proposal-dynamic-import-7.16.7"
+      sources."@babel/plugin-proposal-export-namespace-from-7.16.7"
+      sources."@babel/plugin-proposal-json-strings-7.16.7"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.7"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.7"
+      sources."@babel/plugin-proposal-numeric-separator-7.16.7"
+      sources."@babel/plugin-proposal-object-rest-spread-7.17.3"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.16.7"
+      sources."@babel/plugin-proposal-optional-chaining-7.16.7"
+      sources."@babel/plugin-proposal-private-methods-7.16.11"
+      sources."@babel/plugin-proposal-private-property-in-object-7.16.7"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.16.7"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
       sources."@babel/plugin-syntax-class-static-block-7.14.5"
@@ -11663,63 +11801,66 @@ let
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-syntax-private-property-in-object-7.14.5"
       sources."@babel/plugin-syntax-top-level-await-7.14.5"
-      sources."@babel/plugin-transform-arrow-functions-7.14.5"
-      sources."@babel/plugin-transform-async-to-generator-7.14.5"
-      sources."@babel/plugin-transform-block-scoped-functions-7.14.5"
-      sources."@babel/plugin-transform-block-scoping-7.15.3"
-      sources."@babel/plugin-transform-classes-7.15.4"
-      sources."@babel/plugin-transform-computed-properties-7.14.5"
-      sources."@babel/plugin-transform-destructuring-7.14.7"
-      sources."@babel/plugin-transform-dotall-regex-7.14.5"
-      sources."@babel/plugin-transform-duplicate-keys-7.14.5"
-      sources."@babel/plugin-transform-exponentiation-operator-7.14.5"
-      sources."@babel/plugin-transform-for-of-7.15.4"
-      sources."@babel/plugin-transform-function-name-7.14.5"
-      sources."@babel/plugin-transform-literals-7.14.5"
-      sources."@babel/plugin-transform-member-expression-literals-7.14.5"
-      sources."@babel/plugin-transform-modules-amd-7.14.5"
-      sources."@babel/plugin-transform-modules-commonjs-7.15.4"
-      sources."@babel/plugin-transform-modules-systemjs-7.15.4"
-      sources."@babel/plugin-transform-modules-umd-7.14.5"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.14.9"
-      sources."@babel/plugin-transform-new-target-7.14.5"
-      sources."@babel/plugin-transform-object-super-7.14.5"
-      sources."@babel/plugin-transform-parameters-7.15.4"
-      sources."@babel/plugin-transform-property-literals-7.14.5"
-      sources."@babel/plugin-transform-regenerator-7.14.5"
-      sources."@babel/plugin-transform-reserved-words-7.14.5"
-      sources."@babel/plugin-transform-shorthand-properties-7.14.5"
-      sources."@babel/plugin-transform-spread-7.14.6"
-      sources."@babel/plugin-transform-sticky-regex-7.14.5"
-      sources."@babel/plugin-transform-template-literals-7.14.5"
-      sources."@babel/plugin-transform-typeof-symbol-7.14.5"
-      sources."@babel/plugin-transform-unicode-escapes-7.14.5"
-      sources."@babel/plugin-transform-unicode-regex-7.14.5"
-      sources."@babel/preset-env-7.15.4"
-      sources."@babel/preset-modules-0.1.4"
-      sources."@babel/runtime-7.15.4"
-      sources."@babel/template-7.15.4"
-      sources."@babel/traverse-7.15.4"
-      sources."@babel/types-7.15.4"
+      sources."@babel/plugin-transform-arrow-functions-7.16.7"
+      sources."@babel/plugin-transform-async-to-generator-7.16.8"
+      sources."@babel/plugin-transform-block-scoped-functions-7.16.7"
+      sources."@babel/plugin-transform-block-scoping-7.16.7"
+      sources."@babel/plugin-transform-classes-7.16.7"
+      sources."@babel/plugin-transform-computed-properties-7.16.7"
+      sources."@babel/plugin-transform-destructuring-7.17.7"
+      sources."@babel/plugin-transform-dotall-regex-7.16.7"
+      sources."@babel/plugin-transform-duplicate-keys-7.16.7"
+      sources."@babel/plugin-transform-exponentiation-operator-7.16.7"
+      sources."@babel/plugin-transform-for-of-7.16.7"
+      sources."@babel/plugin-transform-function-name-7.16.7"
+      sources."@babel/plugin-transform-literals-7.16.7"
+      sources."@babel/plugin-transform-member-expression-literals-7.16.7"
+      sources."@babel/plugin-transform-modules-amd-7.16.7"
+      sources."@babel/plugin-transform-modules-commonjs-7.17.7"
+      sources."@babel/plugin-transform-modules-systemjs-7.17.8"
+      sources."@babel/plugin-transform-modules-umd-7.16.7"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.8"
+      sources."@babel/plugin-transform-new-target-7.16.7"
+      sources."@babel/plugin-transform-object-super-7.16.7"
+      sources."@babel/plugin-transform-parameters-7.16.7"
+      sources."@babel/plugin-transform-property-literals-7.16.7"
+      sources."@babel/plugin-transform-regenerator-7.16.7"
+      sources."@babel/plugin-transform-reserved-words-7.16.7"
+      sources."@babel/plugin-transform-shorthand-properties-7.16.7"
+      sources."@babel/plugin-transform-spread-7.16.7"
+      sources."@babel/plugin-transform-sticky-regex-7.16.7"
+      sources."@babel/plugin-transform-template-literals-7.16.7"
+      sources."@babel/plugin-transform-typeof-symbol-7.16.7"
+      sources."@babel/plugin-transform-unicode-escapes-7.16.7"
+      sources."@babel/plugin-transform-unicode-regex-7.16.7"
+      sources."@babel/preset-env-7.16.11"
+      sources."@babel/preset-modules-0.1.5"
+      sources."@babel/runtime-7.17.8"
+      sources."@babel/template-7.16.7"
+      sources."@babel/traverse-7.17.3"
+      sources."@babel/types-7.17.0"
       sources."@csstools/convert-colors-1.4.0"
-      sources."@discoveryjs/json-ext-0.5.3"
+      sources."@discoveryjs/json-ext-0.5.7"
       (sources."@eslint/eslintrc-0.4.3" // {
         dependencies = [
-          sources."globals-13.11.0"
+          sources."globals-13.13.0"
           sources."ignore-4.0.6"
           sources."import-fresh-3.3.0"
           sources."resolve-from-4.0.0"
         ];
       })
-      sources."@gar/promisify-1.1.2"
+      sources."@gar/promisify-1.1.3"
       sources."@humanwhocodes/config-array-0.5.0"
-      sources."@humanwhocodes/object-schema-1.2.0"
+      sources."@humanwhocodes/object-schema-1.2.1"
+      sources."@jridgewell/resolve-uri-3.0.5"
+      sources."@jridgewell/sourcemap-codec-1.4.11"
+      sources."@jridgewell/trace-mapping-0.3.4"
       sources."@mdn/browser-compat-data-3.3.14"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      (sources."@npmcli/fs-1.0.0" // {
+      (sources."@npmcli/fs-1.1.1" // {
         dependencies = [
           sources."semver-7.3.5"
         ];
@@ -11729,7 +11870,7 @@ let
           sources."rimraf-3.0.2"
         ];
       })
-      sources."@rollup/plugin-babel-5.3.0"
+      sources."@rollup/plugin-babel-5.3.1"
       sources."@rollup/plugin-node-resolve-11.2.1"
       sources."@rollup/plugin-replace-2.4.2"
       (sources."@rollup/pluginutils-3.1.0" // {
@@ -11739,19 +11880,19 @@ let
       })
       sources."@stylelint/postcss-css-in-js-0.37.2"
       sources."@stylelint/postcss-markdown-0.36.2"
-      sources."@surma/rollup-plugin-off-main-thread-1.4.2"
-      sources."@types/eslint-7.28.0"
-      sources."@types/eslint-scope-3.7.1"
-      sources."@types/estree-0.0.50"
-      sources."@types/glob-7.1.4"
+      sources."@surma/rollup-plugin-off-main-thread-2.2.3"
+      sources."@types/eslint-8.4.1"
+      sources."@types/eslint-scope-3.7.3"
+      sources."@types/estree-0.0.51"
+      sources."@types/glob-7.2.0"
       sources."@types/html-minifier-terser-5.1.2"
-      sources."@types/json-schema-7.0.9"
+      sources."@types/json-schema-7.0.11"
       sources."@types/json5-0.0.29"
       sources."@types/localforage-0.0.34"
       sources."@types/mdast-3.0.10"
       sources."@types/minimatch-3.0.5"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-16.7.10"
+      sources."@types/node-17.0.23"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/parse-json-4.0.0"
       sources."@types/q-1.5.5"
@@ -11767,7 +11908,7 @@ let
       sources."@types/unist-2.0.6"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
-      (sources."@types/webpack-4.41.30" // {
+      (sources."@types/webpack-4.41.32" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -11793,15 +11934,16 @@ let
       sources."@webassemblyjs/wasm-opt-1.11.1"
       sources."@webassemblyjs/wasm-parser-1.11.1"
       sources."@webassemblyjs/wast-printer-1.11.1"
-      sources."@webpack-cli/configtest-1.0.4"
-      sources."@webpack-cli/info-1.3.0"
-      sources."@webpack-cli/serve-1.5.2"
+      sources."@webpack-cli/configtest-1.1.1"
+      sources."@webpack-cli/info-1.4.1"
+      sources."@webpack-cli/serve-1.6.1"
+      sources."@xmldom/xmldom-0.7.5"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
       sources."abab-2.0.5"
-      sources."accepts-1.3.7"
+      sources."accepts-1.3.8"
       sources."acorn-7.4.1"
-      sources."acorn-import-assertions-1.7.6"
+      sources."acorn-import-assertions-1.8.0"
       sources."acorn-jsx-5.3.2"
       sources."aggregate-error-3.1.0"
       sources."ajv-6.12.6"
@@ -11809,8 +11951,8 @@ let
       sources."ajv-keywords-3.5.2"
       sources."alphanum-sort-1.0.2"
       sources."ansi-colors-4.1.1"
-      sources."ansi-html-0.0.7"
-      sources."ansi-regex-5.0.0"
+      sources."ansi-html-community-0.0.8"
+      sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.2"
       sources."argparse-1.0.10"
@@ -11819,11 +11961,11 @@ let
       sources."arr-union-3.1.0"
       sources."array-find-index-1.0.2"
       sources."array-flatten-2.1.2"
-      sources."array-includes-3.1.3"
+      sources."array-includes-3.1.4"
       sources."array-union-1.0.2"
       sources."array-uniq-1.0.3"
       sources."array-unique-0.3.2"
-      sources."array.prototype.flat-1.2.4"
+      sources."array.prototype.flat-1.2.5"
       sources."arrify-1.0.1"
       sources."assign-symbols-1.0.0"
       sources."ast-metadata-inferer-0.7.0"
@@ -11833,13 +11975,17 @@ let
       sources."async-limiter-1.0.1"
       sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
-      sources."autoprefixer-9.8.6"
-      sources."babel-loader-8.2.2"
+      (sources."autoprefixer-9.8.8" // {
+        dependencies = [
+          sources."picocolors-0.2.1"
+        ];
+      })
+      sources."babel-loader-8.2.4"
       sources."babel-plugin-dynamic-import-node-2.3.3"
       sources."babel-plugin-dynamic-import-polyfill-1.0.0"
-      sources."babel-plugin-polyfill-corejs2-0.2.2"
-      sources."babel-plugin-polyfill-corejs3-0.2.4"
-      sources."babel-plugin-polyfill-regenerator-0.2.2"
+      sources."babel-plugin-polyfill-corejs2-0.3.1"
+      sources."babel-plugin-polyfill-corejs3-0.5.2"
+      sources."babel-plugin-polyfill-regenerator-0.3.1"
       sources."bail-1.0.5"
       sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
@@ -11851,10 +11997,10 @@ let
       sources."big.js-5.2.2"
       sources."binary-extensions-2.2.0"
       sources."bindings-1.5.0"
-      sources."blurhash-1.1.4"
-      (sources."body-parser-1.19.0" // {
+      sources."blurhash-1.1.5"
+      (sources."body-parser-1.19.2" // {
         dependencies = [
-          sources."bytes-3.1.0"
+          sources."bytes-3.1.2"
           sources."debug-2.6.9"
           sources."iconv-lite-0.4.24"
           sources."ms-2.0.0"
@@ -11864,7 +12010,7 @@ let
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.17.0"
+      sources."browserslist-4.20.2"
       sources."buffer-from-1.1.2"
       sources."buffer-indexof-1.1.1"
       sources."builtin-modules-3.2.0"
@@ -11885,15 +12031,15 @@ let
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-db-1.0.30001255"
-      sources."caniuse-lite-1.0.30001255"
+      sources."caniuse-db-1.0.30001325"
+      sources."caniuse-lite-1.0.30001325"
       sources."ccount-1.1.0"
       sources."chalk-2.4.2"
       sources."character-entities-1.2.4"
       sources."character-entities-html4-1.1.4"
       sources."character-entities-legacy-1.1.4"
       sources."character-reference-invalid-1.1.4"
-      sources."chokidar-3.5.2"
+      sources."chokidar-3.5.3"
       sources."chownr-2.0.0"
       sources."chrome-trace-event-1.0.3"
       (sources."class-utils-0.3.6" // {
@@ -11915,7 +12061,7 @@ let
         ];
       })
       sources."classlist.js-https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz"
-      (sources."clean-css-4.2.3" // {
+      (sources."clean-css-4.2.4" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -11924,7 +12070,7 @@ let
       sources."clean-webpack-plugin-3.0.0"
       (sources."cliui-5.0.0" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
+          sources."ansi-regex-4.1.1"
           sources."emoji-regex-7.0.3"
           sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-3.1.0"
@@ -11939,10 +12085,10 @@ let
       sources."color-3.2.1"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.6.0"
-      sources."colorette-1.3.0"
+      sources."color-string-1.9.0"
+      sources."colorette-2.0.16"
       sources."commander-4.1.1"
-      sources."common-tags-1.8.0"
+      sources."common-tags-1.8.2"
       sources."commondir-1.0.1"
       sources."component-emitter-1.3.0"
       sources."compressible-2.0.18"
@@ -11953,25 +12099,28 @@ let
         ];
       })
       sources."concat-map-0.0.1"
-      sources."confusing-browser-globals-1.0.10"
+      sources."confusing-browser-globals-1.0.11"
       sources."connect-history-api-fallback-1.6.0"
-      sources."content-disposition-0.5.3"
+      (sources."content-disposition-0.5.4" // {
+        dependencies = [
+          sources."safe-buffer-5.2.1"
+        ];
+      })
       sources."content-type-1.0.4"
       sources."convert-source-map-1.8.0"
-      sources."cookie-0.4.0"
+      sources."cookie-0.4.2"
       sources."cookie-signature-1.0.6"
       sources."copy-descriptor-0.1.1"
       (sources."copy-webpack-plugin-6.4.1" // {
         dependencies = [
           sources."array-union-2.1.0"
-          sources."globby-11.0.4"
-          sources."loader-utils-2.0.0"
+          sources."globby-11.1.0"
           sources."p-limit-3.1.0"
           sources."schema-utils-3.1.1"
         ];
       })
-      sources."core-js-3.17.2"
-      (sources."core-js-compat-3.17.2" // {
+      sources."core-js-3.21.1"
+      (sources."core-js-compat-3.21.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -11991,8 +12140,7 @@ let
       })
       (sources."css-loader-5.2.7" // {
         dependencies = [
-          sources."loader-utils-2.0.0"
-          sources."postcss-8.3.6"
+          sources."postcss-8.4.12"
           sources."schema-utils-3.1.1"
           sources."semver-7.3.5"
         ];
@@ -12027,8 +12175,8 @@ let
           sources."type-1.2.0"
         ];
       })
-      sources."date-fns-2.23.0"
-      sources."debug-4.3.2"
+      sources."date-fns-2.28.0"
+      sources."debug-4.3.4"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -12081,27 +12229,27 @@ let
       sources."dot-case-3.0.4"
       sources."dot-prop-5.3.0"
       sources."ee-first-1.1.1"
-      sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.3.830"
+      sources."ejs-3.1.6"
+      sources."electron-to-chromium-1.4.103"
       sources."emoji-regex-8.0.0"
       sources."emojis-list-3.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."enhanced-resolve-5.8.2" // {
+      (sources."enhanced-resolve-5.9.2" // {
         dependencies = [
-          sources."tapable-2.2.0"
+          sources."tapable-2.2.1"
         ];
       })
       sources."enquirer-2.3.6"
       sources."entities-2.2.0"
       sources."envinfo-7.8.1"
-      sources."epubjs-0.3.88"
+      sources."epubjs-0.3.93"
       sources."errno-0.1.8"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.18.5"
-      sources."es-module-lexer-0.7.1"
+      sources."es-abstract-1.19.2"
+      sources."es-module-lexer-0.9.3"
       sources."es-to-primitive-1.2.1"
-      sources."es5-ext-0.10.53"
+      sources."es5-ext-0.10.59"
       sources."es6-iterator-2.0.3"
       sources."es6-promise-4.2.8"
       sources."es6-symbol-3.1.3"
@@ -12116,7 +12264,7 @@ let
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."escape-string-regexp-4.0.0"
-          sources."globals-13.11.0"
+          sources."globals-13.13.0"
           sources."has-flag-4.0.0"
           sources."ignore-4.0.6"
           sources."import-fresh-3.3.0"
@@ -12130,7 +12278,7 @@ let
           sources."debug-3.2.7"
         ];
       })
-      (sources."eslint-module-utils-2.6.2" // {
+      (sources."eslint-module-utils-2.7.3" // {
         dependencies = [
           sources."debug-3.2.7"
           sources."find-up-2.1.0"
@@ -12139,7 +12287,6 @@ let
           sources."p-locate-2.0.0"
           sources."p-try-1.0.0"
           sources."path-exists-3.0.0"
-          sources."pkg-dir-2.0.0"
         ];
       })
       (sources."eslint-plugin-compat-3.13.0" // {
@@ -12152,17 +12299,11 @@ let
         ];
       })
       sources."eslint-plugin-eslint-comments-3.2.0"
-      (sources."eslint-plugin-import-2.24.2" // {
+      (sources."eslint-plugin-import-2.25.4" // {
         dependencies = [
           sources."debug-2.6.9"
           sources."doctrine-2.1.0"
-          sources."find-up-2.1.0"
-          sources."locate-path-2.0.0"
           sources."ms-2.0.0"
-          sources."p-limit-1.3.0"
-          sources."p-locate-2.0.0"
-          sources."p-try-1.0.0"
-          sources."path-exists-3.0.0"
         ];
       })
       sources."eslint-plugin-promise-4.3.1"
@@ -12182,12 +12323,12 @@ let
       sources."esprima-4.0.1"
       (sources."esquery-1.4.0" // {
         dependencies = [
-          sources."estraverse-5.2.0"
+          sources."estraverse-5.3.0"
         ];
       })
       (sources."esrecurse-4.3.0" // {
         dependencies = [
-          sources."estraverse-5.2.0"
+          sources."estraverse-5.3.0"
         ];
       })
       sources."estraverse-4.3.0"
@@ -12223,19 +12364,19 @@ let
       })
       (sources."expose-loader-1.0.3" // {
         dependencies = [
-          sources."loader-utils-2.0.0"
           sources."schema-utils-3.1.1"
         ];
       })
-      (sources."express-4.17.1" // {
+      (sources."express-4.17.3" // {
         dependencies = [
           sources."array-flatten-1.1.1"
           sources."debug-2.6.9"
           sources."ms-2.0.0"
           sources."path-to-regexp-0.1.7"
+          sources."safe-buffer-5.2.1"
         ];
       })
-      sources."ext-1.5.0"
+      sources."ext-1.6.0"
       sources."extend-3.0.2"
       (sources."extend-shallow-3.0.2" // {
         dependencies = [
@@ -12249,21 +12390,21 @@ let
         ];
       })
       sources."fast-deep-equal-3.1.3"
-      sources."fast-glob-3.2.7"
+      sources."fast-glob-3.2.11"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
       sources."fast-text-encoding-1.0.3"
       sources."fastest-levenshtein-1.0.12"
-      sources."fastq-1.12.0"
+      sources."fastq-1.13.0"
       sources."faye-websocket-0.11.4"
       sources."file-entry-cache-6.0.1"
       (sources."file-loader-6.2.0" // {
         dependencies = [
-          sources."loader-utils-2.0.0"
           sources."schema-utils-3.1.1"
         ];
       })
       sources."file-uri-to-path-1.0.0"
+      sources."filelist-1.0.2"
       sources."fill-range-7.0.1"
       (sources."finalhandler-1.1.2" // {
         dependencies = [
@@ -12278,10 +12419,10 @@ let
           sources."rimraf-3.0.2"
         ];
       })
-      sources."flatted-3.2.2"
+      sources."flatted-3.2.5"
       sources."flatten-1.0.3"
-      sources."flv.js-1.6.1"
-      sources."follow-redirects-1.14.3"
+      sources."flv.js-1.6.2"
+      sources."follow-redirects-1.14.9"
       sources."fontsource-noto-sans-3.1.5"
       sources."fontsource-noto-sans-hk-3.1.5"
       sources."fontsource-noto-sans-jp-3.1.5"
@@ -12304,8 +12445,9 @@ let
       sources."get-own-enumerable-property-symbols-3.0.2"
       sources."get-stdin-8.0.0"
       sources."get-stream-6.0.1"
+      sources."get-symbol-description-1.0.0"
       sources."get-value-2.0.6"
-      sources."glob-7.1.7"
+      sources."glob-7.2.0"
       sources."glob-parent-5.1.2"
       sources."glob-to-regexp-0.3.0"
       sources."global-modules-2.0.0"
@@ -12322,7 +12464,7 @@ let
       })
       sources."globjoin-0.1.4"
       sources."gonzales-pe-4.3.0"
-      sources."graceful-fs-4.2.8"
+      sources."graceful-fs-4.2.10"
       sources."handle-thing-2.0.1"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
@@ -12333,7 +12475,7 @@ let
       })
       sources."has-bigints-1.0.1"
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.2"
+      sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
@@ -12351,14 +12493,13 @@ let
       sources."headroom.js-0.12.0"
       sources."hex-color-regex-1.1.0"
       sources."hls.js-0.14.17"
-      sources."hosted-git-info-2.8.9"
+      sources."hosted-git-info-4.1.0"
       sources."hpack.js-2.1.6"
       sources."hsl-regex-1.0.0"
       sources."hsla-regex-1.0.0"
       sources."html-entities-1.4.0"
       (sources."html-loader-1.3.2" // {
         dependencies = [
-          sources."loader-utils-2.0.0"
           sources."schema-utils-3.1.1"
         ];
       })
@@ -12366,6 +12507,8 @@ let
       sources."html-tags-3.1.0"
       (sources."html-webpack-plugin-4.5.2" // {
         dependencies = [
+          sources."json5-1.0.1"
+          sources."loader-utils-1.4.0"
           sources."util.promisify-1.0.0"
         ];
       })
@@ -12373,24 +12516,20 @@ let
         dependencies = [
           (sources."dom-serializer-1.3.2" // {
             dependencies = [
-              sources."domhandler-4.2.2"
+              sources."domhandler-4.3.1"
             ];
           })
           sources."domelementtype-2.2.0"
           (sources."domutils-2.8.0" // {
             dependencies = [
-              sources."domhandler-4.2.2"
+              sources."domhandler-4.3.1"
             ];
           })
         ];
       })
       sources."http-deceiver-1.2.7"
-      (sources."http-errors-1.7.2" // {
-        dependencies = [
-          sources."inherits-2.0.3"
-        ];
-      })
-      sources."http-parser-js-0.5.3"
+      sources."http-errors-1.8.1"
+      sources."http-parser-js-0.5.6"
       sources."http-proxy-1.18.1"
       (sources."http-proxy-middleware-0.19.1" // {
         dependencies = [
@@ -12407,14 +12546,15 @@ let
       sources."human-signals-2.1.0"
       sources."iconv-lite-0.6.3"
       sources."icss-utils-5.1.0"
-      sources."idb-6.1.3"
-      sources."ignore-5.1.8"
+      sources."idb-6.1.5"
+      sources."ignore-5.2.0"
       sources."immediate-3.0.6"
+      sources."immutable-4.0.0"
       sources."import-cwd-2.1.0"
       sources."import-fresh-2.0.0"
       sources."import-from-2.1.0"
       sources."import-lazy-4.0.0"
-      sources."import-local-3.0.2"
+      sources."import-local-3.1.0"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
       sources."indexes-of-1.0.1"
@@ -12443,7 +12583,7 @@ let
       sources."is-buffer-2.0.5"
       sources."is-callable-1.2.4"
       sources."is-color-stop-1.1.0"
-      sources."is-core-module-2.6.0"
+      sources."is-core-module-2.8.1"
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.5"
       sources."is-decimal-1.0.4"
@@ -12452,12 +12592,12 @@ let
       sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
-      sources."is-glob-4.0.1"
+      sources."is-glob-4.0.3"
       sources."is-hexadecimal-1.0.4"
       sources."is-module-1.0.0"
-      sources."is-negative-zero-2.0.1"
+      sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-obj-2.0.0"
       sources."is-path-cwd-2.2.0"
       sources."is-path-in-cwd-2.1.0"
@@ -12467,12 +12607,14 @@ let
       sources."is-regex-1.1.4"
       sources."is-regexp-2.1.0"
       sources."is-resolvable-1.1.0"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-stream-2.0.1"
       sources."is-string-1.0.7"
       sources."is-supported-regexp-flag-1.0.1"
       sources."is-symbol-1.0.4"
       sources."is-typedarray-1.0.0"
       sources."is-unicode-supported-0.1.0"
+      sources."is-weakref-1.0.2"
       sources."is-whitespace-character-1.0.4"
       sources."is-windows-1.0.2"
       sources."is-word-character-1.0.4"
@@ -12480,8 +12622,19 @@ let
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
-      sources."jellyfin-apiclient-1.8.0"
-      (sources."jest-worker-27.1.0" // {
+      (sources."jake-10.8.4" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."async-0.9.2"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."jellyfin-apiclient-1.10.0"
+      (sources."jest-worker-27.5.1" // {
         dependencies = [
           sources."has-flag-4.0.0"
           sources."supports-color-8.1.1"
@@ -12494,36 +12647,31 @@ let
       sources."jsesc-2.5.2"
       sources."json-parse-better-errors-1.0.2"
       sources."json-parse-even-better-errors-2.3.1"
-      sources."json-schema-0.3.0"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
-      sources."json3-3.3.3"
-      sources."json5-2.2.0"
+      sources."json5-2.2.1"
       sources."jsonfile-6.1.0"
-      sources."jsonpointer-4.1.0"
+      sources."jsonpointer-5.0.0"
       sources."jstree-3.3.12"
-      sources."jszip-3.7.1"
+      sources."jszip-3.9.0"
       sources."killable-1.0.1"
       sources."kind-of-6.0.3"
-      sources."klona-2.0.4"
+      sources."klona-2.0.5"
       sources."known-css-properties-0.21.0"
       sources."leven-2.1.0"
       sources."levn-0.4.1"
       sources."libarchive.js-1.3.0"
       sources."libass-wasm-https://github.com/jellyfin/JavascriptSubtitlesOctopus/archive/refs/tags/4.0.0-jf-smarttv.tar.gz"
       sources."lie-3.3.0"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       (sources."load-json-file-4.0.0" // {
         dependencies = [
           sources."pify-3.0.0"
         ];
       })
       sources."loader-runner-4.2.0"
-      (sources."loader-utils-1.4.0" // {
-        dependencies = [
-          sources."json5-1.0.1"
-        ];
-      })
+      sources."loader-utils-2.0.2"
       (sources."localforage-1.10.0" // {
         dependencies = [
           sources."lie-3.1.1"
@@ -12531,7 +12679,6 @@ let
       })
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
-      sources."lodash.clonedeep-4.5.0"
       sources."lodash.debounce-4.0.8"
       sources."lodash.memoize-4.1.2"
       sources."lodash.merge-4.6.2"
@@ -12548,20 +12695,20 @@ let
           sources."supports-color-7.2.0"
         ];
       })
-      sources."loglevel-1.7.1"
+      sources."loglevel-1.8.0"
       sources."longest-streak-2.0.4"
       sources."loud-rejection-1.6.0"
       sources."lower-case-2.0.2"
       sources."lru-cache-6.0.0"
-      sources."magic-string-0.25.7"
+      sources."magic-string-0.25.9"
       sources."make-dir-3.1.0"
       sources."map-cache-0.2.2"
-      sources."map-obj-4.2.1"
+      sources."map-obj-4.3.0"
       sources."map-visit-1.0.0"
       sources."markdown-escapes-1.0.4"
       sources."markdown-table-1.1.3"
       sources."marks-pane-1.0.9"
-      sources."material-design-icons-iconfont-6.1.0"
+      sources."material-design-icons-iconfont-6.5.0"
       sources."mathml-tag-names-2.1.3"
       sources."mdast-util-compact-1.0.4"
       sources."mdast-util-from-markdown-0.8.5"
@@ -12572,23 +12719,6 @@ let
       sources."memory-fs-0.4.1"
       (sources."meow-9.0.0" // {
         dependencies = [
-          sources."hosted-git-info-4.0.2"
-          sources."normalize-package-data-3.0.3"
-          sources."parse-json-5.2.0"
-          (sources."read-pkg-5.2.0" // {
-            dependencies = [
-              sources."hosted-git-info-2.8.9"
-              sources."normalize-package-data-2.5.0"
-              sources."semver-5.7.1"
-              sources."type-fest-0.6.0"
-            ];
-          })
-          (sources."read-pkg-up-7.0.1" // {
-            dependencies = [
-              sources."type-fest-0.8.1"
-            ];
-          })
-          sources."semver-7.3.5"
           sources."type-fest-0.18.1"
         ];
       })
@@ -12597,21 +12727,21 @@ let
       sources."merge2-1.4.1"
       sources."methods-1.1.2"
       sources."micromark-2.11.4"
-      sources."micromatch-4.0.4"
+      sources."micromatch-4.0.5"
       sources."mime-1.6.0"
-      sources."mime-db-1.49.0"
-      sources."mime-types-2.1.32"
+      sources."mime-db-1.52.0"
+      sources."mime-types-2.1.35"
       sources."mimic-fn-2.1.0"
       sources."min-indent-1.0.1"
       sources."minimalistic-assert-1.0.1"
-      sources."minimatch-3.0.4"
-      sources."minimist-1.2.5"
+      sources."minimatch-3.1.2"
+      sources."minimist-1.2.6"
       (sources."minimist-options-4.1.0" // {
         dependencies = [
           sources."is-plain-obj-1.1.0"
         ];
       })
-      sources."minipass-3.1.3"
+      sources."minipass-3.1.6"
       sources."minipass-collect-1.0.2"
       sources."minipass-flush-1.0.5"
       sources."minipass-pipeline-1.2.4"
@@ -12626,20 +12756,20 @@ let
       sources."multicast-dns-6.2.3"
       sources."multicast-dns-service-types-1.1.0"
       sources."nan-2.15.0"
-      sources."nanoid-3.1.25"
+      sources."nanoid-3.3.2"
       sources."nanomatch-1.2.13"
       sources."native-promise-only-0.8.1"
       sources."natural-compare-1.4.0"
-      sources."negotiator-0.6.2"
+      sources."negotiator-0.6.3"
       sources."neo-async-2.6.2"
-      sources."next-tick-1.0.0"
+      sources."next-tick-1.1.0"
       sources."nice-try-1.0.5"
       sources."no-case-3.0.4"
       sources."node-forge-0.10.0"
-      sources."node-releases-1.1.75"
-      (sources."normalize-package-data-2.5.0" // {
+      sources."node-releases-2.0.2"
+      (sources."normalize-package-data-3.0.3" // {
         dependencies = [
-          sources."semver-5.7.1"
+          sources."semver-7.3.5"
         ];
       })
       sources."normalize-path-3.0.0"
@@ -12664,14 +12794,14 @@ let
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.12.0"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
       sources."object.assign-4.1.2"
-      sources."object.getownpropertydescriptors-2.1.2"
+      sources."object.getownpropertydescriptors-2.1.3"
       sources."object.pick-1.3.0"
-      sources."object.values-1.1.4"
+      sources."object.values-1.1.5"
       sources."obuf-1.1.2"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
@@ -12713,33 +12843,24 @@ let
       sources."path-type-4.0.0"
       sources."path-webpack-0.0.3"
       sources."pdfjs-dist-2.5.207"
-      sources."picomatch-2.3.0"
+      sources."picocolors-1.0.0"
+      sources."picomatch-2.3.1"
       sources."pify-4.0.1"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
       sources."pkg-dir-4.2.0"
-      (sources."pkg-up-2.0.0" // {
-        dependencies = [
-          sources."find-up-2.1.0"
-          sources."locate-path-2.0.0"
-          sources."p-limit-1.3.0"
-          sources."p-locate-2.0.0"
-          sources."p-try-1.0.0"
-          sources."path-exists-3.0.0"
-        ];
-      })
       sources."plur-2.1.2"
       (sources."portfinder-1.0.28" // {
         dependencies = [
           sources."debug-3.2.7"
-          sources."mkdirp-0.5.5"
+          sources."mkdirp-0.5.6"
         ];
       })
       sources."posix-character-classes-0.1.1"
-      (sources."postcss-7.0.36" // {
+      (sources."postcss-7.0.39" // {
         dependencies = [
+          sources."picocolors-0.2.1"
           sources."source-map-0.6.1"
-          sources."supports-color-6.1.0"
         ];
       })
       sources."postcss-attribute-case-insensitive-4.0.2"
@@ -12799,6 +12920,8 @@ let
       sources."postcss-load-config-2.1.2"
       (sources."postcss-loader-3.0.0" // {
         dependencies = [
+          sources."json5-1.0.1"
+          sources."loader-utils-1.4.0"
           sources."schema-utils-1.0.0"
         ];
       })
@@ -12904,7 +13027,7 @@ let
       sources."postcss-overflow-shorthand-2.0.0"
       sources."postcss-page-break-2.0.0"
       sources."postcss-place-4.0.1"
-      sources."postcss-preset-env-6.7.0"
+      sources."postcss-preset-env-6.7.1"
       (sources."postcss-pseudo-class-any-link-6.0.0" // {
         dependencies = [
           sources."cssesc-2.0.0"
@@ -12929,7 +13052,7 @@ let
       sources."postcss-scss-2.1.1"
       sources."postcss-selector-matches-4.0.0"
       sources."postcss-selector-not-4.0.1"
-      sources."postcss-selector-parser-6.0.6"
+      sources."postcss-selector-parser-6.0.10"
       sources."postcss-sorting-4.1.0"
       (sources."postcss-svgo-4.0.3" // {
         dependencies = [
@@ -12938,7 +13061,7 @@ let
       })
       sources."postcss-syntax-0.36.2"
       sources."postcss-unique-selectors-4.0.1"
-      sources."postcss-value-parser-4.1.0"
+      sources."postcss-value-parser-4.2.0"
       sources."postcss-values-parser-2.0.1"
       sources."prelude-ls-1.2.1"
       sources."pretty-bytes-5.6.0"
@@ -12951,34 +13074,32 @@ let
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."q-1.5.1"
-      sources."qs-6.7.0"
+      sources."qs-6.9.7"
       sources."querystring-0.2.0"
       sources."querystringify-2.2.0"
       sources."queue-microtask-1.2.3"
       sources."quick-lru-4.0.1"
       sources."randombytes-2.1.0"
       sources."range-parser-1.2.1"
-      (sources."raw-body-2.4.0" // {
+      (sources."raw-body-2.4.3" // {
         dependencies = [
-          sources."bytes-3.1.0"
+          sources."bytes-3.1.2"
           sources."iconv-lite-0.4.24"
         ];
       })
       sources."read-file-stdin-0.2.1"
-      (sources."read-pkg-3.0.0" // {
+      (sources."read-pkg-5.2.0" // {
         dependencies = [
-          sources."path-type-3.0.0"
-          sources."pify-3.0.0"
+          sources."hosted-git-info-2.8.9"
+          sources."normalize-package-data-2.5.0"
+          sources."parse-json-5.2.0"
+          sources."semver-5.7.1"
+          sources."type-fest-0.6.0"
         ];
       })
-      (sources."read-pkg-up-3.0.0" // {
+      (sources."read-pkg-up-7.0.1" // {
         dependencies = [
-          sources."find-up-2.1.0"
-          sources."locate-path-2.0.0"
-          sources."p-limit-1.3.0"
-          sources."p-locate-2.0.0"
-          sources."p-try-1.0.0"
-          sources."path-exists-3.0.0"
+          sources."type-fest-0.8.1"
         ];
       })
       sources."readable-stream-2.3.7"
@@ -12986,15 +13107,15 @@ let
       sources."rechoir-0.7.1"
       sources."redent-3.0.0"
       sources."regenerate-1.4.2"
-      sources."regenerate-unicode-properties-8.2.0"
+      sources."regenerate-unicode-properties-10.0.1"
       sources."regenerator-runtime-0.13.9"
       sources."regenerator-transform-0.14.5"
       sources."regex-not-1.0.2"
-      sources."regexp.prototype.flags-1.3.1"
+      sources."regexp.prototype.flags-1.4.1"
       sources."regexpp-3.2.0"
-      sources."regexpu-core-4.7.1"
-      sources."regjsgen-0.5.2"
-      (sources."regjsparser-0.6.9" // {
+      sources."regexpu-core-5.0.1"
+      sources."regjsgen-0.6.0"
+      (sources."regjsparser-0.8.4" // {
         dependencies = [
           sources."jsesc-0.5.0"
         ];
@@ -13007,14 +13128,14 @@ let
       (sources."renderkid-2.0.7" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
-          sources."css-select-4.1.3"
-          sources."css-what-5.0.1"
+          sources."css-select-4.3.0"
+          sources."css-what-6.1.0"
           sources."dom-serializer-1.3.2"
           sources."domelementtype-2.2.0"
-          sources."domhandler-4.2.2"
+          sources."domhandler-4.3.1"
           sources."domutils-2.8.0"
           sources."htmlparser2-6.1.0"
-          sources."nth-check-2.0.0"
+          sources."nth-check-2.0.1"
           sources."strip-ansi-3.0.1"
         ];
       })
@@ -13026,7 +13147,7 @@ let
       sources."require-main-filename-2.0.0"
       sources."requires-port-1.0.0"
       sources."resize-observer-polyfill-1.5.1"
-      sources."resolve-1.20.0"
+      sources."resolve-1.22.0"
       (sources."resolve-cwd-3.0.0" // {
         dependencies = [
           sources."resolve-from-5.0.0"
@@ -13040,44 +13161,44 @@ let
       sources."rgb-regex-1.0.1"
       sources."rgba-regex-1.0.0"
       sources."rimraf-2.7.1"
-      sources."rollup-2.56.3"
+      sources."rollup-2.70.1"
       (sources."rollup-plugin-terser-7.0.2" // {
         dependencies = [
+          sources."acorn-8.7.0"
           sources."commander-2.20.3"
           sources."has-flag-4.0.0"
           sources."jest-worker-26.6.2"
           sources."serialize-javascript-4.0.0"
           sources."source-map-0.7.3"
           sources."supports-color-7.2.0"
-          sources."terser-5.7.2"
+          sources."terser-5.12.1"
         ];
       })
       sources."run-parallel-1.2.0"
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      sources."sass-1.39.0"
-      (sources."sass-loader-10.2.0" // {
+      sources."sass-1.49.11"
+      (sources."sass-loader-10.2.1" // {
         dependencies = [
-          sources."loader-utils-2.0.0"
           sources."schema-utils-3.1.1"
           sources."semver-7.3.5"
         ];
       })
       sources."sax-1.2.4"
       sources."schema-utils-2.7.1"
-      sources."screenfull-5.1.0"
+      sources."screenfull-5.2.0"
       sources."select-hose-2.0.0"
-      sources."selfsigned-1.10.11"
+      sources."selfsigned-1.10.14"
       sources."semver-6.3.0"
-      (sources."send-0.17.1" // {
+      (sources."send-0.17.2" // {
         dependencies = [
           (sources."debug-2.6.9" // {
             dependencies = [
               sources."ms-2.0.0"
             ];
           })
-          sources."ms-2.1.1"
+          sources."ms-2.1.3"
         ];
       })
       sources."serialize-javascript-5.0.1"
@@ -13090,7 +13211,7 @@ let
           sources."setprototypeof-1.1.0"
         ];
       })
-      sources."serve-static-1.14.1"
+      sources."serve-static-1.14.2"
       sources."set-blocking-2.0.0"
       sources."set-immediate-shim-1.0.1"
       (sources."set-value-2.0.1" // {
@@ -13098,12 +13219,12 @@ let
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."shallow-clone-3.0.1"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."side-channel-1.0.4"
-      sources."signal-exit-3.0.3"
+      sources."signal-exit-3.0.7"
       (sources."simple-swizzle-0.2.2" // {
         dependencies = [
           sources."is-arrayish-0.3.2"
@@ -13149,25 +13270,24 @@ let
           sources."kind-of-3.2.2"
         ];
       })
-      sources."sockjs-0.3.21"
-      (sources."sockjs-client-1.5.2" // {
+      sources."sockjs-0.3.24"
+      (sources."sockjs-client-1.6.0" // {
         dependencies = [
           sources."debug-3.2.7"
         ];
       })
-      sources."sortablejs-1.14.0"
+      sources."sortablejs-1.15.0"
       sources."source-list-map-2.0.1"
       sources."source-map-0.5.7"
-      sources."source-map-js-0.6.2"
+      sources."source-map-js-1.0.2"
       (sources."source-map-loader-1.1.3" // {
         dependencies = [
-          sources."loader-utils-2.0.0"
           sources."schema-utils-3.1.1"
           sources."source-map-0.6.1"
         ];
       })
       sources."source-map-resolve-0.5.3"
-      (sources."source-map-support-0.5.19" // {
+      (sources."source-map-support-0.5.21" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -13177,7 +13297,7 @@ let
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.10"
+      sources."spdx-license-ids-3.0.11"
       sources."spdy-4.0.2"
       (sources."spdy-transport-3.0.0" // {
         dependencies = [
@@ -13210,7 +13330,8 @@ let
         ];
       })
       sources."statuses-1.5.0"
-      sources."string-width-4.2.2"
+      sources."string-width-4.2.3"
+      sources."string.prototype.matchall-4.0.7"
       sources."string.prototype.trimend-1.0.4"
       sources."string.prototype.trimstart-1.0.4"
       sources."string_decoder-1.1.1"
@@ -13221,7 +13342,7 @@ let
           sources."is-regexp-1.0.0"
         ];
       })
-      sources."strip-ansi-6.0.0"
+      sources."strip-ansi-6.0.1"
       sources."strip-bom-3.0.0"
       sources."strip-comments-2.0.1"
       sources."strip-eof-1.0.0"
@@ -13230,7 +13351,6 @@ let
       sources."strip-json-comments-3.1.1"
       (sources."style-loader-2.0.0" // {
         dependencies = [
-          sources."loader-utils-2.0.0"
           sources."schema-utils-3.1.1"
         ];
       })
@@ -13249,7 +13369,7 @@ let
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."cosmiconfig-7.0.1"
-          sources."globby-11.0.4"
+          sources."globby-11.1.0"
           sources."has-flag-4.0.0"
           (sources."import-fresh-3.3.0" // {
             dependencies = [
@@ -13264,7 +13384,7 @@ let
       (sources."stylelint-config-rational-order-0.1.2" // {
         dependencies = [
           sources."@nodelib/fs.stat-1.1.3"
-          sources."ansi-regex-4.1.0"
+          sources."ansi-regex-4.1.1"
           sources."astral-regex-1.0.0"
           (sources."braces-2.3.2" // {
             dependencies = [
@@ -13284,11 +13404,13 @@ let
               sources."extend-shallow-2.0.1"
             ];
           })
+          sources."find-up-2.1.0"
           sources."flat-cache-2.0.1"
           sources."flatted-2.0.2"
           sources."get-stdin-6.0.0"
           sources."glob-parent-3.1.0"
           sources."globby-9.2.0"
+          sources."hosted-git-info-2.8.9"
           sources."html-tags-2.0.0"
           sources."ignore-4.0.6"
           sources."import-lazy-3.1.0"
@@ -13301,20 +13423,29 @@ let
           sources."is-regexp-1.0.0"
           sources."kind-of-3.2.2"
           sources."known-css-properties-0.11.0"
+          sources."locate-path-2.0.0"
           sources."log-symbols-2.2.0"
           sources."map-obj-2.0.0"
           sources."meow-5.0.0"
           sources."micromatch-3.1.10"
           sources."minimist-options-3.0.2"
+          sources."normalize-package-data-2.5.0"
+          sources."p-limit-1.3.0"
+          sources."p-locate-2.0.0"
+          sources."p-try-1.0.0"
+          sources."path-exists-3.0.0"
           sources."path-type-3.0.0"
           sources."pify-3.0.0"
           sources."postcss-sass-0.3.5"
           sources."postcss-selector-parser-3.1.2"
           sources."postcss-value-parser-3.3.1"
           sources."quick-lru-1.1.0"
+          sources."read-pkg-3.0.0"
+          sources."read-pkg-up-3.0.0"
           sources."redent-2.0.0"
           sources."resolve-from-4.0.0"
           sources."rimraf-2.6.3"
+          sources."semver-5.7.1"
           sources."slash-2.0.0"
           sources."slice-ansi-2.1.0"
           sources."string-width-3.1.0"
@@ -13347,12 +13478,14 @@ let
           sources."fast-glob-2.2.7"
           sources."file-entry-cache-4.0.0"
           sources."fill-range-4.0.0"
+          sources."find-up-2.1.0"
           sources."flat-cache-2.0.1"
           sources."flatted-2.0.2"
           sources."get-stdin-6.0.0"
           sources."glob-parent-3.1.0"
           sources."globby-9.2.0"
           sources."has-flag-1.0.0"
+          sources."hosted-git-info-2.8.9"
           sources."html-tags-2.0.0"
           sources."ignore-4.0.6"
           sources."import-lazy-3.1.0"
@@ -13365,12 +13498,19 @@ let
           sources."is-regexp-1.0.0"
           sources."kind-of-3.2.2"
           sources."known-css-properties-0.11.0"
+          sources."locate-path-2.0.0"
           sources."log-symbols-1.0.2"
           sources."map-obj-2.0.0"
           sources."meow-5.0.0"
           sources."micromatch-3.1.10"
           sources."minimist-options-3.0.2"
+          sources."normalize-package-data-2.5.0"
+          sources."p-limit-1.3.0"
+          sources."p-locate-2.0.0"
+          sources."p-try-1.0.0"
+          sources."path-exists-3.0.0"
           sources."path-type-3.0.0"
+          sources."picocolors-0.2.1"
           sources."pify-3.0.0"
           (sources."postcss-5.2.18" // {
             dependencies = [
@@ -13380,23 +13520,18 @@ let
           sources."postcss-reporter-1.4.1"
           (sources."postcss-sass-0.3.5" // {
             dependencies = [
-              sources."ansi-styles-3.2.1"
-              (sources."chalk-2.4.2" // {
-                dependencies = [
-                  sources."supports-color-5.5.0"
-                ];
-              })
-              sources."has-flag-3.0.0"
-              sources."postcss-7.0.36"
-              sources."supports-color-6.1.0"
+              sources."postcss-7.0.39"
             ];
           })
           sources."postcss-selector-parser-2.2.3"
           sources."postcss-value-parser-3.3.1"
           sources."quick-lru-1.1.0"
+          sources."read-pkg-3.0.0"
+          sources."read-pkg-up-3.0.0"
           sources."redent-2.0.0"
           sources."resolve-from-4.0.0"
           sources."rimraf-2.6.3"
+          sources."semver-5.7.1"
           sources."slash-2.0.0"
           (sources."slice-ansi-2.1.0" // {
             dependencies = [
@@ -13406,7 +13541,7 @@ let
           sources."source-map-0.6.1"
           (sources."string-width-3.1.0" // {
             dependencies = [
-              sources."ansi-regex-4.1.0"
+              sources."ansi-regex-4.1.1"
               sources."strip-ansi-5.2.0"
             ];
           })
@@ -13419,11 +13554,7 @@ let
               sources."chalk-2.4.2"
               sources."has-flag-3.0.0"
               sources."log-symbols-2.2.0"
-              (sources."postcss-7.0.36" // {
-                dependencies = [
-                  sources."supports-color-6.1.0"
-                ];
-              })
+              sources."postcss-7.0.39"
               sources."postcss-reporter-6.0.1"
               sources."postcss-selector-parser-3.1.2"
               sources."supports-color-5.5.0"
@@ -13441,19 +13572,20 @@ let
           sources."postcss-sorting-5.0.1"
         ];
       })
-      sources."stylelint-scss-3.20.1"
+      sources."stylelint-scss-3.21.0"
       sources."sugarss-2.0.0"
       sources."supports-color-5.5.0"
+      sources."supports-preserve-symlinks-flag-1.0.0"
       sources."svg-tags-1.0.0"
       (sources."svgo-1.3.2" // {
         dependencies = [
-          sources."mkdirp-0.5.5"
+          sources."mkdirp-0.5.6"
         ];
       })
       sources."swiper-6.8.4"
-      (sources."table-6.7.1" // {
+      (sources."table-6.8.0" // {
         dependencies = [
-          sources."ajv-8.6.2"
+          sources."ajv-8.11.0"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -13471,14 +13603,14 @@ let
           sources."source-map-0.6.1"
         ];
       })
-      (sources."terser-webpack-plugin-5.2.3" // {
+      (sources."terser-webpack-plugin-5.3.1" // {
         dependencies = [
+          sources."acorn-8.7.0"
           sources."commander-2.20.3"
-          sources."p-limit-3.1.0"
           sources."schema-utils-3.1.1"
           sources."serialize-javascript-6.0.0"
           sources."source-map-0.6.1"
-          (sources."terser-5.7.2" // {
+          (sources."terser-5.12.1" // {
             dependencies = [
               sources."source-map-0.7.3"
             ];
@@ -13497,29 +13629,29 @@ let
       })
       sources."to-regex-3.0.2"
       sources."to-regex-range-5.0.1"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."tr46-1.0.1"
       sources."trim-0.0.1"
       sources."trim-newlines-3.0.1"
       sources."trim-trailing-lines-1.1.4"
       sources."trough-1.0.5"
-      (sources."tsconfig-paths-3.11.0" // {
+      (sources."tsconfig-paths-3.14.1" // {
         dependencies = [
           sources."json5-1.0.1"
         ];
       })
       sources."tslib-2.3.1"
-      sources."type-2.5.0"
+      sources."type-2.6.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.20.2"
       sources."type-is-1.6.18"
       sources."typedarray-to-buffer-3.1.5"
       sources."unbox-primitive-1.0.1"
       sources."unherit-1.1.3"
-      sources."unicode-canonical-property-names-ecmascript-1.0.4"
-      sources."unicode-match-property-ecmascript-1.0.4"
-      sources."unicode-match-property-value-ecmascript-1.2.0"
-      sources."unicode-property-aliases-ecmascript-1.1.0"
+      sources."unicode-canonical-property-names-ecmascript-2.0.0"
+      sources."unicode-match-property-ecmascript-2.0.0"
+      sources."unicode-match-property-value-ecmascript-2.0.0"
+      sources."unicode-property-aliases-ecmascript-2.0.0"
       sources."unified-9.2.2"
       sources."union-value-1.0.1"
       sources."uniq-1.0.1"
@@ -13558,14 +13690,14 @@ let
           sources."punycode-1.3.2"
         ];
       })
-      sources."url-parse-1.5.3"
-      sources."url-toolkit-2.2.3"
+      sources."url-parse-1.5.10"
+      sources."url-toolkit-2.2.5"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
       sources."util.promisify-1.0.1"
       sources."utila-0.4.0"
       sources."utils-merge-1.0.1"
-      sources."uuid-3.4.0"
+      sources."uuid-8.3.2"
       sources."v8-compile-cache-2.3.0"
       sources."validate-npm-package-license-3.0.4"
       sources."vary-1.1.2"
@@ -13573,7 +13705,7 @@ let
       sources."vfile-4.2.1"
       sources."vfile-location-2.0.6"
       sources."vfile-message-2.0.4"
-      (sources."watchpack-2.2.0" // {
+      (sources."watchpack-2.3.1" // {
         dependencies = [
           sources."glob-to-regexp-0.4.1"
         ];
@@ -13581,16 +13713,16 @@ let
       sources."wbuf-1.7.3"
       sources."webcomponents.js-0.7.24"
       sources."webidl-conversions-4.0.2"
-      (sources."webpack-5.52.0" // {
+      (sources."webpack-5.71.0" // {
         dependencies = [
-          sources."acorn-8.4.1"
+          sources."acorn-8.7.0"
           sources."glob-to-regexp-0.4.1"
           sources."schema-utils-3.1.1"
-          sources."tapable-2.2.0"
-          sources."webpack-sources-3.2.0"
+          sources."tapable-2.2.1"
+          sources."webpack-sources-3.2.3"
         ];
       })
-      (sources."webpack-cli-4.8.0" // {
+      (sources."webpack-cli-4.9.2" // {
         dependencies = [
           sources."commander-7.2.0"
           sources."webpack-merge-5.8.0"
@@ -13598,11 +13730,11 @@ let
       })
       (sources."webpack-dev-middleware-3.7.3" // {
         dependencies = [
-          sources."mime-2.5.2"
-          sources."mkdirp-0.5.5"
+          sources."mime-2.6.0"
+          sources."mkdirp-0.5.6"
         ];
       })
-      (sources."webpack-dev-server-3.11.2" // {
+      (sources."webpack-dev-server-3.11.3" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
           sources."anymatch-2.0.0"
@@ -13638,6 +13770,7 @@ let
       (sources."webpack-log-2.0.0" // {
         dependencies = [
           sources."ansi-colors-3.2.4"
+          sources."uuid-3.4.0"
         ];
       })
       sources."webpack-merge-4.2.2"
@@ -13657,84 +13790,89 @@ let
       sources."which-module-2.0.0"
       sources."wildcard-2.0.0"
       sources."word-wrap-1.2.3"
-      (sources."workbox-background-sync-6.2.4" // {
+      (sources."workbox-background-sync-6.5.2" // {
         dependencies = [
-          sources."workbox-core-6.2.4"
+          sources."workbox-core-6.5.2"
         ];
       })
-      (sources."workbox-broadcast-update-6.2.4" // {
+      (sources."workbox-broadcast-update-6.5.2" // {
         dependencies = [
-          sources."workbox-core-6.2.4"
+          sources."workbox-core-6.5.2"
         ];
       })
-      (sources."workbox-build-6.2.4" // {
+      (sources."workbox-build-6.5.2" // {
         dependencies = [
-          sources."ajv-8.6.2"
+          sources."ajv-8.11.0"
           sources."json-schema-traverse-1.0.0"
           sources."source-map-0.8.0-beta.0"
-          sources."workbox-core-6.2.4"
-          sources."workbox-precaching-6.2.4"
+          sources."workbox-core-6.5.2"
+          sources."workbox-precaching-6.5.2"
         ];
       })
-      (sources."workbox-cacheable-response-6.2.4" // {
+      (sources."workbox-cacheable-response-6.5.2" // {
         dependencies = [
-          sources."workbox-core-6.2.4"
+          sources."workbox-core-6.5.2"
         ];
       })
       sources."workbox-core-5.1.4"
-      (sources."workbox-expiration-6.2.4" // {
+      (sources."workbox-expiration-6.5.2" // {
         dependencies = [
-          sources."workbox-core-6.2.4"
+          sources."workbox-core-6.5.2"
         ];
       })
-      (sources."workbox-google-analytics-6.2.4" // {
+      (sources."workbox-google-analytics-6.5.2" // {
         dependencies = [
-          sources."workbox-core-6.2.4"
+          sources."workbox-core-6.5.2"
         ];
       })
-      (sources."workbox-navigation-preload-6.2.4" // {
+      (sources."workbox-navigation-preload-6.5.2" // {
         dependencies = [
-          sources."workbox-core-6.2.4"
+          sources."workbox-core-6.5.2"
         ];
       })
       sources."workbox-precaching-5.1.4"
-      (sources."workbox-range-requests-6.2.4" // {
+      (sources."workbox-range-requests-6.5.2" // {
+        dependencies = [
+          sources."workbox-core-6.5.2"
+        ];
+      })
+      (sources."workbox-recipes-6.5.2" // {
         dependencies = [
-          sources."workbox-core-6.2.4"
+          sources."workbox-core-6.5.2"
+          sources."workbox-precaching-6.5.2"
         ];
       })
-      (sources."workbox-recipes-6.2.4" // {
+      (sources."workbox-routing-6.5.2" // {
         dependencies = [
-          sources."workbox-core-6.2.4"
-          sources."workbox-precaching-6.2.4"
+          sources."workbox-core-6.5.2"
         ];
       })
-      (sources."workbox-routing-6.2.4" // {
+      (sources."workbox-strategies-6.5.2" // {
         dependencies = [
-          sources."workbox-core-6.2.4"
+          sources."workbox-core-6.5.2"
         ];
       })
-      (sources."workbox-strategies-6.2.4" // {
+      (sources."workbox-streams-6.5.2" // {
         dependencies = [
-          sources."workbox-core-6.2.4"
+          sources."workbox-core-6.5.2"
         ];
       })
-      (sources."workbox-streams-6.2.4" // {
+      sources."workbox-sw-6.5.2"
+      sources."workbox-webpack-plugin-6.5.2"
+      (sources."workbox-window-6.5.2" // {
         dependencies = [
-          sources."workbox-core-6.2.4"
+          sources."workbox-core-6.5.2"
         ];
       })
-      sources."workbox-sw-6.2.4"
-      sources."workbox-webpack-plugin-6.2.4"
-      (sources."workbox-window-6.2.4" // {
+      (sources."worker-plugin-5.0.1" // {
         dependencies = [
-          sources."workbox-core-6.2.4"
+          sources."json5-1.0.1"
+          sources."loader-utils-1.4.0"
         ];
       })
-      sources."worker-plugin-5.0.1"
       (sources."wrap-ansi-5.1.0" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
+          sources."ansi-regex-4.1.1"
           sources."emoji-regex-7.0.3"
           sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-3.1.0"
@@ -13744,21 +13882,20 @@ let
       sources."wrappy-1.0.2"
       (sources."write-1.0.3" // {
         dependencies = [
-          sources."mkdirp-0.5.5"
+          sources."mkdirp-0.5.6"
         ];
       })
       sources."write-file-atomic-3.0.3"
       sources."write-file-stdout-0.0.2"
       sources."ws-6.2.2"
       sources."x-is-string-0.1.0"
-      sources."xmldom-0.3.0"
       sources."xtend-4.0.2"
       sources."y18n-4.0.3"
       sources."yallist-4.0.0"
       sources."yaml-1.10.2"
       (sources."yargs-13.3.2" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
+          sources."ansi-regex-4.1.1"
           sources."emoji-regex-7.0.3"
           sources."find-up-3.0.0"
           sources."is-fullwidth-code-point-2.0.0"
diff --git a/pkgs/servers/jellyfin/web-update.sh b/pkgs/servers/jellyfin/web-update.sh
index 87b05efc2d902..da25b2596951f 100755
--- a/pkgs/servers/jellyfin/web-update.sh
+++ b/pkgs/servers/jellyfin/web-update.sh
@@ -22,7 +22,7 @@ cd "$(dirname "${BASH_SOURCE[0]}")"
 # TODO: use package-lock.json on the next major release
 # https://github.com/jellyfin/jellyfin-web/commit/6efef9680d55a93f4333ef8bfb65a8a650c99a49
 node2nix \
-  --nodejs-12 \
+  --nodejs-14 \
   --development \
   --node-env ../../development/node-packages/node-env.nix \
   --output ./node-deps.nix \
diff --git a/pkgs/servers/jellyfin/web.nix b/pkgs/servers/jellyfin/web.nix
index 2b3ce5a1f3df0..2520f9ec470a3 100644
--- a/pkgs/servers/jellyfin/web.nix
+++ b/pkgs/servers/jellyfin/web.nix
@@ -77,5 +77,6 @@ stdenv.mkDerivation rec {
     homepage = "https://jellyfin.org/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ nyanloutre minijackson purcell jojosch ];
+    platforms = nodejs.meta.platforms;
   };
 }
diff --git a/pkgs/servers/kapowbang/default.nix b/pkgs/servers/kapowbang/default.nix
index efd2b17d7e515..81536ab143ad5 100644
--- a/pkgs/servers/kapowbang/default.nix
+++ b/pkgs/servers/kapowbang/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     description = "Expose command-line tools over HTTP";
     license = licenses.asl20;
     maintainers = with maintainers; [ nilp0inter ];
+    mainProgram = "kapow";
   };
 }
diff --git a/pkgs/servers/keycloak/default.nix b/pkgs/servers/keycloak/default.nix
index d9797de6d174e..f28679f2cf5fc 100644
--- a/pkgs/servers/keycloak/default.nix
+++ b/pkgs/servers/keycloak/default.nix
@@ -1,73 +1,81 @@
-{ stdenv, lib, fetchzip, makeWrapper, jre, writeText, nixosTests
-, postgresql_jdbc ? null, mysql_jdbc ? null
+{ stdenv
+, lib
+, fetchzip
+, makeWrapper
+, jre
+, writeText
+, nixosTests
 , callPackage
+
+, confFile ? null
+, plugins ? [ ]
 }:
 
-let
-  mkModuleXml = name: jarFile: writeText "module.xml" ''
-    <?xml version="1.0" ?>
-    <module xmlns="urn:jboss:module:1.3" name="${name}">
-        <resources>
-            <resource-root path="${jarFile}"/>
-        </resources>
-        <dependencies>
-            <module name="javax.api"/>
-            <module name="javax.transaction.api"/>
-        </dependencies>
-    </module>
-  '';
-in
 stdenv.mkDerivation rec {
-  pname   = "keycloak";
-  version = "16.1.0";
+  pname = "keycloak";
+  version = "17.0.1";
 
   src = fetchzip {
-    url    = "https://github.com/keycloak/keycloak/releases/download/${version}/keycloak-${version}.zip";
-    sha256 = "sha256-QVFu3f+mwafoNUttLEVMdoZHMJjjH/TpZAGV7ZvIvh0=";
+    url = "https://github.com/keycloak/keycloak/releases/download/${version}/keycloak-${version}.zip";
+    sha256 = "sha256-z1LfTUoK+v4oQxdyIQruFhl5O333zirSrkPoTFgVfmI=";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper jre ];
+
+  buildPhase = ''
+    runHook preBuild
+  '' + lib.optionalString (confFile != null) ''
+    install -m 0600 ${confFile} conf/keycloak.conf
+  '' + ''
+    install_plugin() {
+    if [ -d "$1" ]; then
+      find "$1" -type f \( -iname \*.ear -o -iname \*.jar \) -exec install -m 0500 "{}" "providers/" \;
+    else
+      install -m 0500 "$1" "providers/"
+    fi
+    }
+    ${lib.concatMapStringsSep "\n" (pl: "install_plugin ${lib.escapeShellArg pl}") plugins}
+  '' + ''
+    export KC_HOME_DIR=$out
+    export KC_CONF_DIR=$out/conf
+
+    patchShebangs bin/kc.sh
+    bin/kc.sh build
+
+    runHook postBuild
+  '';
 
   installPhase = ''
+    runHook preInstall
+
     mkdir $out
     cp -r * $out
 
-    rm -rf $out/bin/*.{ps1,bat}
+    rm $out/bin/*.{ps1,bat}
 
-    module_path=$out/modules/system/layers/keycloak
-    if ! [[ -d $module_path ]]; then
-        echo "The module path $module_path not found!"
-        exit 1
-    fi
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    substituteInPlace $out/bin/kc.sh --replace '-Dkc.home.dir=$DIRNAME/../' '-Dkc.home.dir=$KC_HOME_DIR'
+    substituteInPlace $out/bin/kc.sh --replace '-Djboss.server.config.dir=$DIRNAME/../conf' '-Djboss.server.config.dir=$KC_CONF_DIR'
 
-    ${lib.optionalString (postgresql_jdbc != null) ''
-      mkdir -p $module_path/org/postgresql/main
-      ln -s ${postgresql_jdbc}/share/java/postgresql-jdbc.jar $module_path/org/postgresql/main/
-      ln -s ${mkModuleXml "org.postgresql" "postgresql-jdbc.jar"} $module_path/org/postgresql/main/module.xml
-    ''}
-    ${lib.optionalString (mysql_jdbc != null) ''
-      mkdir -p $module_path/com/mysql/main
-      ln -s ${mysql_jdbc}/share/java/mysql-connector-java.jar $module_path/com/mysql/main/
-      ln -s ${mkModuleXml "com.mysql" "mysql-connector-java.jar"} $module_path/com/mysql/main/module.xml
-    ''}
-
-    for script in add-user-keycloak.sh add-user.sh domain.sh elytron-tool.sh jboss-cli.sh jconsole.sh jdr.sh standalone.sh wsconsume.sh wsprovide.sh; do
-      wrapProgram $out/bin/$script --set JAVA_HOME ${jre}
+    for script in $(find $out/bin -type f -executable); do
+      wrapProgram "$script" --set JAVA_HOME ${jre} --prefix PATH : ${jre}/bin
     done
-    wrapProgram $out/bin/kcadm.sh --prefix PATH : ${jre}/bin
-    wrapProgram $out/bin/kcreg.sh --prefix PATH : ${jre}/bin
   '';
 
   passthru = {
     tests = nixosTests.keycloak;
-    plugins = callPackage ./all-plugins.nix {};
+    plugins = callPackage ./all-plugins.nix { };
+    enabledPlugins = plugins;
   };
 
   meta = with lib; {
-    homepage    = "https://www.keycloak.org/";
+    homepage = "https://www.keycloak.org/";
     description = "Identity and access management for modern applications and services";
-    license     = licenses.asl20;
-    platforms   = jre.meta.platforms;
+    license = licenses.asl20;
+    platforms = jre.meta.platforms;
     maintainers = with maintainers; [ ngerstle talyz ];
   };
 
diff --git a/pkgs/servers/klipper/default.nix b/pkgs/servers/klipper/default.nix
index 490bb9c9e094e..b882bc589c615 100644
--- a/pkgs/servers/klipper/default.nix
+++ b/pkgs/servers/klipper/default.nix
@@ -6,13 +6,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "klipper";
-  version = "unstable-2022-03-11";
+  version = "unstable-2022-03-14";
 
   src = fetchFromGitHub {
     owner = "KevinOConnor";
     repo = "klipper";
-    rev = "e3beafbdb4f2ac3f889f81aec0cad5ec473c8612";
-    sha256 = "sha256-xZSZUJ2TNaUzfwEFpnzr5EPlOvILLyiQ/3K1iiup7kU=";
+    rev = "30098db22a43274ceb87e078e603889f403a35c4";
+    sha256 = "sha256-ORpXBFGPY6A/HEYX9Hhwb3wP2KcAE+z3pTxf6j7CwGg=";
   };
 
   sourceRoot = "source/klippy";
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   # NB: This is needed for the postBuild step
   nativeBuildInputs = [ (python2.withPackages ( p: with p; [ cffi ] )) ];
 
-  buildInputs = [ (python2.withPackages (p: with p; [ cffi pyserial greenlet jinja2 ])) ];
+  buildInputs = [ (python2.withPackages (p: with p; [ cffi pyserial greenlet jinja2 numpy ])) ];
 
   # we need to run this to prebuild the chelper.
   postBuild = "python2 ./chelper/__init__.py";
diff --git a/pkgs/servers/mail/archiveopteryx/default.nix b/pkgs/servers/mail/archiveopteryx/default.nix
index 4cc612ef89a1d..2bcd87c3b84d2 100644
--- a/pkgs/servers/mail/archiveopteryx/default.nix
+++ b/pkgs/servers/mail/archiveopteryx/default.nix
@@ -20,11 +20,15 @@ stdenv.mkDerivation rec {
     sed -i 's:READMEDIR = $(PREFIX):READMEDIR = '$out'/share/doc/archiveopteryx:' ./Jamsettings
   '';
 
-  # fix build on gcc7+
-  NIX_CFLAGS_COMPILE = builtins.toString [
+  # fix build on gcc7+ and gcc11+
+  NIX_CFLAGS_COMPILE = [
+    "-std=c++11" # c++17+ has errors
     "-Wno-error=builtin-declaration-mismatch"
-    "-Wno-error=implicit-fallthrough"
     "-Wno-error=deprecated-copy"
+    "-Wno-error=implicit-fallthrough"
+    "-Wno-error=nonnull"
+  ] ++ lib.optionals (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "11") [
+    "-Wno-error=mismatched-new-delete"
   ];
 
   buildPhase = ''jam "-j$NIX_BUILD_CORES" '';
diff --git a/pkgs/servers/mail/clamsmtp/default.nix b/pkgs/servers/mail/clamsmtp/default.nix
index 1972e7d86a843..b3f825f7148b9 100644
--- a/pkgs/servers/mail/clamsmtp/default.nix
+++ b/pkgs/servers/mail/clamsmtp/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
     homepage = "http://thewalter.net/stef/software/clamsmtp/";
     license = licenses.bsd3;
     maintainers = [ maintainers.ekleog ];
+    mainProgram = "clamsmtpd";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix b/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
index e6ec006333865..2f3a4d807d2fa 100644
--- a/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
+++ b/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, autoconf, automake, sqlite, pkg-config, dovecot, libtool, xapian, icu64 }:
 stdenv.mkDerivation rec {
   pname = "dovecot-fts-xapian";
-  version = "1.5.4b";
+  version = "1.5.5";
 
   src = fetchFromGitHub {
     owner = "grosjo";
     repo = "fts-xapian";
     rev = version;
-    sha256 = "sha256-RzwJjcUgk1XXQZpNdz86Pr9HsUaQCOSt5oSejnGVmgA=";
+    sha256 = "sha256-KAZno4N/4dFH3QHFTs0wkY4PtGF+j4ZEjZzn9ljCjrM=";
   };
 
   buildInputs = [ dovecot xapian icu64 sqlite ];
diff --git a/pkgs/servers/mail/mailman/default.nix b/pkgs/servers/mail/mailman/default.nix
index 8cd087f4174f7..f5632df79491f 100644
--- a/pkgs/servers/mail/mailman/default.nix
+++ b/pkgs/servers/mail/mailman/default.nix
@@ -5,12 +5,18 @@ let
   # Mailman does not support sqlalchemy >= 1.4 https://gitlab.com/mailman/mailman/-/issues/845
   pythonOverride = python3.override {
     packageOverrides = self: super: {
+      alembic = super.alembic.overridePythonAttrs (oldAttrs:  {
+        # does not find tests
+        doCheck = false;
+      });
       sqlalchemy = super.sqlalchemy.overridePythonAttrs (oldAttrs: rec {
         version = "1.3.24";
         src = oldAttrs.src.override {
           inherit version;
-          sha256 = "06bmxzssc66cblk1hamskyv5q3xf1nh1py3vi6dka4lkpxy7gfzb";
+          hash = "sha256-67t3fL+TEjWbiXv4G6ANrg9ctp+6KhgmXcwYpvXvdRk=";
         };
+        # does not find tests
+        doCheck = false;
       });
     };
   };
diff --git a/pkgs/servers/mail/postfix/default.nix b/pkgs/servers/mail/postfix/default.nix
index 08c55f771724d..65e0041a01eb6 100644
--- a/pkgs/servers/mail/postfix/default.nix
+++ b/pkgs/servers/mail/postfix/default.nix
@@ -1,5 +1,6 @@
 { stdenv, lib, fetchurl, makeWrapper, gnused, db, openssl, cyrus_sasl, libnsl
 , coreutils, findutils, gnugrep, gawk, icu, pcre, m4
+, fetchpatch
 , buildPackages, nixosTests
 , withLDAP ? true, openldap
 , withPgSQL ? false, postgresql
@@ -24,11 +25,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "postfix";
-  version = "3.6.5";
+  version = "3.6.6";
 
   src = fetchurl {
     url = "http://cdn.postfix.johnriley.me/mirrors/postfix-release/official/${pname}-${version}.tar.gz";
-    hash = "sha256-MA+ogRzqINAdJcYZ01m/+rgmVucE2qcZ4MmvxOz/SAg=";
+    hash = "sha256-CYpxT0EEaO/ibiGR3I8xy6RQfVv0iPVvnrVUXjaG8NY=";
   };
 
   nativeBuildInputs = [ makeWrapper m4 ];
@@ -46,6 +47,12 @@ in stdenv.mkDerivation rec {
     ./postfix-3.0-no-warnings.patch
     ./post-install-script.patch
     ./relative-symlinks.patch
+
+    # glibc 2.34 compat
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/postfix/raw/2f9d42453e67ebc43f786d98262a249037f80a77/f/postfix-3.6.2-glibc-234-build-fix.patch";
+      sha256 = "sha256-xRUL5gaoIt6HagGlhsGwvwrAfYvzMgydsltYMWvl9BI=";
+    })
   ];
 
   postPatch = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
diff --git a/pkgs/servers/mail/rspamd/default.nix b/pkgs/servers/mail/rspamd/default.nix
index a826a7afc9ac8..a720500380e13 100644
--- a/pkgs/servers/mail/rspamd/default.nix
+++ b/pkgs/servers/mail/rspamd/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, cmake, perl
-, glib, luajit, openssl, pcre, pkg-config, sqlite, ragel, icu
+, glib, luajit, openssl, pcre2, pkg-config, sqlite, ragel, icu
 , hyperscan, jemalloc, blas, lapack, lua, libsodium
 , withBlas ? true
 , withHyperscan ? stdenv.isx86_64
@@ -11,19 +11,19 @@ assert withHyperscan -> stdenv.isx86_64;
 
 stdenv.mkDerivation rec {
   pname = "rspamd";
-  version = "3.1";
+  version = "3.2";
 
   src = fetchFromGitHub {
     owner = "rspamd";
     repo = "rspamd";
     rev = version;
-    sha256 = "sha256-w3pvjU6b4IAl27QvY16UdBi1v1iJnnkLRUC54eXdH9I=";
+    sha256 = "122d5m1nfxxz93bhsk8lm4dazvdknzphb0a1188m7bsa4iynbfv2";
   };
 
   hardeningEnable = [ "pie" ];
 
   nativeBuildInputs = [ cmake pkg-config perl ];
-  buildInputs = [ glib openssl pcre sqlite ragel icu jemalloc libsodium ]
+  buildInputs = [ glib openssl pcre2 sqlite ragel icu jemalloc libsodium ]
     ++ lib.optional withHyperscan hyperscan
     ++ lib.optionals withBlas [ blas lapack ]
     ++ lib.optional withLuaJIT luajit ++ lib.optional (!withLuaJIT) lua;
diff --git a/pkgs/servers/mail/system-sendmail/default.nix b/pkgs/servers/mail/system-sendmail/default.nix
index 76b92299409ec..c3574c8f17fce 100644
--- a/pkgs/servers/mail/system-sendmail/default.nix
+++ b/pkgs/servers/mail/system-sendmail/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation {
     '';
     platforms = platforms.unix;
     maintainers = with maintainers; [ ekleog ];
+    mainProgram = "sendmail";
   };
 }
diff --git a/pkgs/servers/mastodon/default.nix b/pkgs/servers/mastodon/default.nix
index ef4c22b1c2c07..f43747e185a79 100644
--- a/pkgs/servers/mastodon/default.nix
+++ b/pkgs/servers/mastodon/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   yarnOfflineCache = fetchYarnDeps {
     yarnLock = "${src}/yarn.lock";
-    sha256 = "sha256-Ngfs15YKLfSBOKju3BzpZFnenB370jId2G1g9Qy1y5w=";
+    sha256 = "sha256-Swe7AH/j1+N1T20xaQ+U0Ajtoe9BGzsghAjN1QakOp8=";
   };
 
   mastodon-gems = bundlerEnv {
diff --git a/pkgs/servers/mastodon/gemset.nix b/pkgs/servers/mastodon/gemset.nix
index 544e3b90412f4..0b841c325db00 100644
--- a/pkgs/servers/mastodon/gemset.nix
+++ b/pkgs/servers/mastodon/gemset.nix
@@ -320,6 +320,17 @@
     };
     version = "2.9.1";
   };
+  better_html = {
+    dependencies = ["actionview" "activesupport" "ast" "erubi" "html_tokenizer" "parser" "smart_properties"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sssv94gg7bnxiqn5pbbpf8rdnmw3iyj2qwn2pbgxxs8xmmq158b";
+      type = "gem";
+    };
+    version = "1.0.16";
+  };
   bindata = {
     groups = ["default"];
     platforms = [];
@@ -873,10 +884,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zmak7fgis1nk9j157g2rjzxrw9prr3jzlxap9vix3xm0gkihr53";
+      sha256 = "0rgbmk044akxa84z9vdl8lkmd9z4xy3na1w0vh12pz02drxd93j9";
       type = "gem";
     };
-    version = "2.27.0";
+    version = "2.28.0";
   };
   faker = {
     dependencies = ["i18n"];
@@ -1113,10 +1124,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rw99k86csafsgv4w7v7wzid5kvlk43nfyww1d3ss00mhjdhw619";
+      sha256 = "1nxak6q0m0nd3m5a7vp9xqww9w5fqx97viv5g6pg3q62q9binm0j";
       type = "gem";
     };
-    version = "0.5.0";
+    version = "0.9.1";
   };
   globalid = {
     dependencies = ["activesupport"];
@@ -1166,10 +1177,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02bsx12ihl78x0vdm37byp78jjw2ff6035y7rrmbd90qxjwxr43q";
+      sha256 = "1nh3arcrbz1rc1cr59qm53sdhqm137b258y8rcb4cvd3y98lwv4x";
       type = "gem";
     };
-    version = "4.1.0";
+    version = "5.0.0";
   };
   highline = {
     groups = ["default" "development" "test"];
@@ -1201,6 +1212,16 @@
     };
     version = "0.3.0";
   };
+  html_tokenizer = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dq6685sdzdn53mkzags6mvx3l0afcx6xma664zij6y3dxj2a7p8";
+      type = "gem";
+    };
+    version = "0.0.7";
+  };
   htmlentities = {
     groups = ["default"];
     platforms = [];
@@ -1286,15 +1307,15 @@
     version = "1.10.0";
   };
   i18n-tasks = {
-    dependencies = ["activesupport" "ast" "erubi" "highline" "i18n" "parser" "rails-i18n" "rainbow" "terminal-table"];
+    dependencies = ["activesupport" "ast" "better_html" "erubi" "highline" "i18n" "parser" "rails-i18n" "rainbow" "terminal-table"];
     groups = ["development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0baaaljm7nq5z9xrhdsw1nnzvj494wi4zzbv5s89gm0rwpxfg1g2";
+      sha256 = "1f3pgfjk4xmyjhqqq8dpx3vbxbq1d9bwlh3d7957vnkpdwk432n0";
       type = "gem";
     };
-    version = "0.9.37";
+    version = "1.0.8";
   };
   idn-ruby = {
     groups = ["default"];
@@ -1513,10 +1534,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vrjm4yqn5l6q5gsl72fmk95fl6j9z1a05gzbrwmsm3gp1a1bgac";
+      sha256 = "15pjm9pa5m3mbv9xvfgfr16q4jyaznsg8y63jz9x4jqr8npw0vx3";
       type = "gem";
     };
-    version = "0.11.2";
+    version = "0.12.0";
   };
   loofah = {
     dependencies = ["crass" "nokogiri"];
@@ -1524,10 +1545,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yp1h1j7pdkqvnx8jl6bkzlajav3h5mhqzihgs9p6y3c8927mw23";
+      sha256 = "15s6z5bvhdhnqv4wg8zcz3mhbc7i4dbqskv5jvhprz33ak7682km";
       type = "gem";
     };
-    version = "2.15.0";
+    version = "2.16.0";
   };
   mail = {
     dependencies = ["mini_mime"];
@@ -1817,10 +1838,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nqhgvq006h6crbp8lffw66ll46zf319c2637g4sybdclglismma";
+      sha256 = "0w474bz3s1hqhilvrddr33l2nkyikypaczp3808w0345jr88b5m7";
       type = "gem";
     };
-    version = "1.2.0";
+    version = "1.3.0";
   };
   openssl = {
     groups = ["default"];
@@ -1857,10 +1878,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15744bhmvw021a14gdks6k91gad6d1kgj2mc1zywpl0x9r3d85f2";
+      sha256 = "054xq22rwj26jag43s5fb4vb4x2252dz6rvgjn42id8ycs51my2w";
       type = "gem";
     };
-    version = "2.14.10";
+    version = "2.14.11";
   };
   parallel = {
     groups = ["default" "development"];
@@ -1909,10 +1930,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "090c3kazlmiizp25las7dgi8wlc11s29nrs2gy3qrp1z8qikgcmb";
+      sha256 = "10ryzmc3r5ja6g90a9ycsxcxsy5872xa1vf01jam0bm74zq3zmi6";
       type = "gem";
     };
-    version = "1.3.4";
+    version = "1.3.5";
   };
   pghero = {
     dependencies = ["activerecord"];
@@ -2026,10 +2047,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1np2myaxlk5iab1zarwgmp7zsjvm5j8ssg35ijv8b6dpvc3cjd56";
+      sha256 = "0dgr2rybayih2naz3658mbzqwfrg9fxl80zsvhscf6b972kp3jdw";
       type = "gem";
     };
-    version = "5.6.2";
+    version = "5.6.4";
   };
   pundit = {
     dependencies = ["activesupport"];
@@ -2100,10 +2121,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b0h0rlfl0p0drymwfc71g87fp66ck3205pl32z89xsgh0lzw25k";
+      sha256 = "0gxxr209r8h3nxhc9h731khv6yswiv9hc6q2pg672v530xmknznw";
       type = "gem";
     };
-    version = "1.16.0";
+    version = "1.19.0";
   };
   rack-proxy = {
     dependencies = ["rack"];
@@ -2283,10 +2304,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cx74kispmnw3ljwb239j65a2j14n8jlsygy372hrsa8mxc71hxi";
+      sha256 = "13ppgmsbrqah08j06bybd3cddv6dml79yzyjn7r8j1src78h98h7";
       type = "gem";
     };
-    version = "1.5.0";
+    version = "1.5.1";
   };
   responders = {
     dependencies = ["actionpack" "railties"];
@@ -2593,10 +2614,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fgk2a66yn7v2011j8zk2z9mwgzmb52gjrkd5wb5xbpxwm8qfjqy";
+      sha256 = "1b2dcw604mmjh4ncfwsidzbzqaa3fbngqidhvhsjv6ladpzsrb8y";
       type = "gem";
     };
-    version = "7.1.15";
+    version = "7.1.16";
   };
   simple-navigation = {
     dependencies = ["activesupport"];
@@ -2651,6 +2672,16 @@
     };
     version = "0.1.2";
   };
+  smart_properties = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jrqssk9qhwrpq41arm712226vpcr458xv6xaqbk8cp94a0kycpr";
+      type = "gem";
+    };
+    version = "1.17.0";
+  };
   sprockets = {
     dependencies = ["concurrent-ruby" "rack"];
     groups = ["default"];
@@ -2731,10 +2762,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0c5cdpykx2h4jx8q01hjhv8f0plw5r9iqm2i1m0ijiyk7dqm824w";
+      sha256 = "12b3q2sw42nnilfb51nlqdv07f31vdv2j595kd99asnkw4cjlf5w";
       type = "gem";
     };
-    version = "1.2.0";
+    version = "1.3.0";
   };
   temple = {
     groups = ["default"];
@@ -2986,10 +3017,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m0jh8k7c0ifh2jhbn7ihqrmn5fi754wflva97zgy70hpdvxyjar";
+      sha256 = "18jj50b44a471ig7hw1ax90wxaaz40acmrf6cm7m2iyshlffy53q";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.0";
   };
   webmock = {
     dependencies = ["addressable" "crack" "hashdiff"];
diff --git a/pkgs/servers/mastodon/source.nix b/pkgs/servers/mastodon/source.nix
index 5581742ebe1ec..aa915395e31d6 100644
--- a/pkgs/servers/mastodon/source.nix
+++ b/pkgs/servers/mastodon/source.nix
@@ -2,8 +2,8 @@
 { fetchgit, applyPatches }: let
   src = fetchgit {
     url = "https://github.com/mastodon/mastodon.git";
-    rev = "v3.5.0";
-    sha256 = "1181zqz7928b6mnp4p502gy2rrwxyv5ysgfydx0n04y8wiq00g48";
+    rev = "v3.5.1";
+    sha256 = "0n6ml245jdc2inzw7jwhxbqlfkp5bs61kslyy71ww6a29ndd6hv0";
   };
 in applyPatches {
   inherit src;
diff --git a/pkgs/servers/mastodon/update.nix b/pkgs/servers/mastodon/update.nix
index 2e7df482530f4..1bd557a74a5bc 100644
--- a/pkgs/servers/mastodon/update.nix
+++ b/pkgs/servers/mastodon/update.nix
@@ -6,12 +6,12 @@
 , bundix
 , coreutils
 , diffutils
-, nix-prefetch-github
+, nix-prefetch-git
 , gnused
 , jq
 }:
 let
-  binPath = lib.makeBinPath [ yarn2nix bundix coreutils diffutils nix-prefetch-github gnused jq ];
+  binPath = lib.makeBinPath [ yarn2nix bundix coreutils diffutils nix-prefetch-git gnused jq ];
 in
 runCommand "mastodon-update-script"
 {
diff --git a/pkgs/servers/mastodon/update.sh b/pkgs/servers/mastodon/update.sh
index 77071be6ea901..3a0686a72158f 100755
--- a/pkgs/servers/mastodon/update.sh
+++ b/pkgs/servers/mastodon/update.sh
@@ -9,29 +9,29 @@ while [[ $# -gt 0 ]]; do
 
     case $key in
         --url)
-        URL="$2"
-        shift # past argument
-        shift # past value
-        ;;
+            URL="$2"
+            shift # past argument
+            shift # past value
+            ;;
         --ver)
-        VERSION="$2"
-        shift # past argument
-        shift # past value
-        ;;
-    --rev)
-    REVISION="$2"
-        shift # past argument
-        shift # past value
-        ;;
-    --patches)
-    PATCHES="$2"
-        shift # past argument
-        shift # past value
-        ;;
-        *)    # unknown option
-        POSITIONAL+=("$1")
-        shift # past argument
-        ;;
+            VERSION="$2"
+            shift # past argument
+            shift # past value
+            ;;
+        --rev)
+            REVISION="$2"
+            shift # past argument
+            shift # past value
+            ;;
+        --patches)
+            PATCHES="$2"
+            shift # past argument
+            shift # past value
+            ;;
+        *)  # unknown option
+            POSITIONAL+=("$1")
+            shift # past argument
+            ;;
     esac
 done
 
diff --git a/pkgs/servers/mastodon/version.nix b/pkgs/servers/mastodon/version.nix
index 90b75fe4fd168..7714a397576a6 100644
--- a/pkgs/servers/mastodon/version.nix
+++ b/pkgs/servers/mastodon/version.nix
@@ -1 +1 @@
-"3.5.0"
+"3.5.1"
diff --git a/pkgs/servers/matrix-corporal/default.nix b/pkgs/servers/matrix-corporal/default.nix
index ad92a1b8dbade..6451352af76e9 100644
--- a/pkgs/servers/matrix-corporal/default.nix
+++ b/pkgs/servers/matrix-corporal/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
     homepage = "https://github.com/devture/matrix-corporal";
     description = "Reconciliator and gateway for a managed Matrix server";
     maintainers = with maintainers; [ dandellion ];
+    mainProgram = "devture-matrix-corporal";
     license = licenses.agpl3Only;
   };
 }
diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix
index ffe76b25b1914..235d1895e152a 100644
--- a/pkgs/servers/matrix-synapse/default.nix
+++ b/pkgs/servers/matrix-synapse/default.nix
@@ -11,11 +11,11 @@ in
 with python3.pkgs;
 buildPythonApplication rec {
   pname = "matrix-synapse";
-  version = "1.55.2";
+  version = "1.57.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-MCdwatNo4cDAaq9a3UFwSLJzT1ZxhoYqPOu/a957D2Y=";
+    sha256 = "sha256-pZhm3jfpqOcLT+M4eeD8FyHtwj5EOAFESFu+4ZMoz0s=";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix b/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix
index eb3d82e14d0b4..a00d983e91bb5 100644
--- a/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix
+++ b/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix
@@ -3,8 +3,8 @@ let
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "matrix-appservice-slack";
-    rev = "1.10.0";
-    sha256 = "WnonduUhhrxCMuXOgLk8voNnn+f6R5CsJ7VKpEmGwzk=";
+    rev = "1.11.0";
+    sha256 = "U1EHL1ZwcpCXA9sjya6ry/3Q+gwdQWPUDFN+wp1qjrg=";
   };
 
   nodePackages = import ./node-composition.nix {
diff --git a/pkgs/servers/matrix-synapse/matrix-appservice-slack/generate-dependencies.sh b/pkgs/servers/matrix-synapse/matrix-appservice-slack/generate-dependencies.sh
index 2503d6d7ef353..1fceed1c72c1c 100755
--- a/pkgs/servers/matrix-synapse/matrix-appservice-slack/generate-dependencies.sh
+++ b/pkgs/servers/matrix-synapse/matrix-appservice-slack/generate-dependencies.sh
@@ -1,9 +1,9 @@
 #!/usr/bin/env nix-shell
 #! nix-shell -i bash -p nodePackages.node2nix
 
-# Download package.json and package-lock.json from the v1.10.0 release
-curl https://raw.githubusercontent.com/matrix-org/matrix-appservice-slack/1.10.0/package.json -o package.json
-curl https://raw.githubusercontent.com/matrix-org/matrix-appservice-slack/1.10.0/package-lock.json -o package-lock.json
+# Download package.json and package-lock.json from the v1.11.0 release
+curl https://raw.githubusercontent.com/matrix-org/matrix-appservice-slack/1.11.0/package.json -o package.json
+curl https://raw.githubusercontent.com/matrix-org/matrix-appservice-slack/1.11.0/package-lock.json -o package-lock.json
 
 node2nix \
   --nodejs-12 \
diff --git a/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix b/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix
index dc0bd7b052bf1..6bc864cd1089d 100644
--- a/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix
+++ b/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix
@@ -762,13 +762,13 @@ let
         sha512 = "ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==";
       };
     };
-    "axios-0.24.0" = {
+    "axios-0.26.0" = {
       name = "axios";
       packageName = "axios";
-      version = "0.24.0";
+      version = "0.26.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz";
-        sha512 = "Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==";
+        url = "https://registry.npmjs.org/axios/-/axios-0.26.0.tgz";
+        sha512 = "lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og==";
       };
     };
     "balanced-match-1.0.2" = {
@@ -1959,13 +1959,13 @@ let
         sha512 = "GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==";
       };
     };
-    "follow-redirects-1.14.4" = {
+    "follow-redirects-1.14.8" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
-      version = "1.14.4";
+      version = "1.14.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.4.tgz";
-        sha512 = "zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==";
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz";
+        sha512 = "1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==";
       };
     };
     "forever-agent-0.6.1" = {
@@ -4771,7 +4771,7 @@ let
   args = {
     name = "matrix-appservice-slack";
     packageName = "matrix-appservice-slack";
-    version = "1.10.0";
+    version = "1.11.0";
     src = ./.;
     dependencies = [
       sources."@alloc/quick-lru-5.2.0"
@@ -4895,7 +4895,7 @@ let
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."axios-0.24.0"
+      sources."axios-0.26.0"
       sources."balanced-match-1.0.2"
       sources."base-x-3.0.9"
       sources."base64-js-1.5.1"
@@ -5059,7 +5059,7 @@ let
       sources."flat-cache-3.0.4"
       sources."flatted-3.1.1"
       sources."fn.name-1.1.0"
-      sources."follow-redirects-1.14.4"
+      sources."follow-redirects-1.14.8"
       sources."forever-agent-0.6.1"
       sources."form-data-2.5.1"
       sources."forwarded-0.1.2"
diff --git a/pkgs/servers/matrix-synapse/plugins/shared-secret-auth.nix b/pkgs/servers/matrix-synapse/plugins/shared-secret-auth.nix
index 3df7f1e5a5d47..a6e22db34fe5c 100644
--- a/pkgs/servers/matrix-synapse/plugins/shared-secret-auth.nix
+++ b/pkgs/servers/matrix-synapse/plugins/shared-secret-auth.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "matrix-synapse-shared-secret-auth";
-  version = "2.0.1";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "devture";
     repo = "matrix-synapse-shared-secret-auth";
     rev = version;
-    sha256 = "sha256-kaok5IwKx97FYDrVIGAtUJfExqDln5vxEKrZda2RdzE=";
+    sha256 = "sha256-qzXKwTEOMtdvsxoU3Xh3vQyhK+Q18LfkeSts7EyDIXE=";
   };
 
   doCheck = false;
diff --git a/pkgs/servers/matrix-synapse/tools/synadm.nix b/pkgs/servers/matrix-synapse/tools/synadm.nix
index 46c9add3d88ed..c06999cf31026 100644
--- a/pkgs/servers/matrix-synapse/tools/synadm.nix
+++ b/pkgs/servers/matrix-synapse/tools/synadm.nix
@@ -4,12 +4,12 @@
 
 with python3Packages; buildPythonApplication rec {
   pname = "synadm";
-  version = "0.33.1";
+  version = "0.34";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-eIpRyx1iErZuB3n+Sl231BE47ckIXYzaelod7OtdSF8=";
+    sha256 = "sha256-pM1nY8j7W1aeWv7/H+9Sz9jo4u1sax/fuKPtx0JKtL8=";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/matterbridge/default.nix b/pkgs/servers/matterbridge/default.nix
index e5fbe803854bd..8882853a3b438 100644
--- a/pkgs/servers/matterbridge/default.nix
+++ b/pkgs/servers/matterbridge/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "matterbridge";
-  version = "1.24.1";
+  version = "1.25.0";
 
   src = fetchFromGitHub {
     owner = "42wim";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-oT7CFJ266guNM6CEWn1BoNcERvLv89cVSlsrN6S/0h0=";
+    sha256 = "sha256-R5eoFpCbfPPkWgK1NFgRvWzUR5uTV4YpdEBE09g9D3A=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/servers/mautrix-signal/default.nix b/pkgs/servers/mautrix-signal/default.nix
index f9d3cf281c49c..426d2a32fbe88 100644
--- a/pkgs/servers/mautrix-signal/default.nix
+++ b/pkgs/servers/mautrix-signal/default.nix
@@ -2,13 +2,13 @@
 
 python3.pkgs.buildPythonPackage rec {
   pname = "mautrix-signal";
-  version = "0.2.2";
+  version = "0.2.3";
 
   src = fetchFromGitHub {
     owner = "mautrix";
     repo = "signal";
     rev = "v${version}";
-    sha256 = "sha256-gJngGgShW63g5zSyZraod0YTt/pFtVLySDXNXXC5Xxs=";
+    sha256 = "sha256-P5a/JoL6PBkYDDitlkMj2QClvcXMgXcnup5EAatGcSs=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/servers/mautrix-whatsapp/default.nix b/pkgs/servers/mautrix-whatsapp/default.nix
index e26743b9edf8b..b20bd236c85d9 100644
--- a/pkgs/servers/mautrix-whatsapp/default.nix
+++ b/pkgs/servers/mautrix-whatsapp/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "mautrix-whatsapp";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "mautrix";
     repo = "whatsapp";
     rev = "v${version}";
-    sha256 = "M44APMnpQU+9TTJu4NF528o0JvGvWja4H7XUcAHtxrA=";
+    sha256 = "adsGPVG/EwpzOqhFJvn3anjTXwGY27a7Bc4NNkBeqJk=";
   };
 
   buildInputs = [ olm ];
 
-  vendorSha256 = "o3KTcnMd6Tqt9QIfW29wvN8POIFThNg8AdeGDF5wbVc=";
+  vendorSha256 = "WT8oDtmUFrqfNK/RnEv8+jpGuQEGt+ppjtmcfUGYZv0=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/memcached/default.nix b/pkgs/servers/memcached/default.nix
index 4461930b13cc9..eedb420f2eb44 100644
--- a/pkgs/servers/memcached/default.nix
+++ b/pkgs/servers/memcached/default.nix
@@ -1,12 +1,12 @@
 {lib, stdenv, fetchurl, cyrus_sasl, libevent, nixosTests }:
 
 stdenv.mkDerivation rec {
-  version = "1.6.14";
+  version = "1.6.15";
   pname = "memcached";
 
   src = fetchurl {
     url = "https://memcached.org/files/${pname}-${version}.tar.gz";
-    sha256 = "sha256-VNY3QsaIbc3E4Mh/RDmikwqHbNnyv6AdaZsMa60XB7M=";
+    sha256 = "sha256-jXq+PWSTeO27oW9C7x1myj8qwHXy65cUXOFkOI5u1RU=";
   };
 
   configureFlags = [
diff --git a/pkgs/servers/misc/oven-media-engine/default.nix b/pkgs/servers/misc/oven-media-engine/default.nix
index 7cd209f95e3f7..655da606ef06f 100644
--- a/pkgs/servers/misc/oven-media-engine/default.nix
+++ b/pkgs/servers/misc/oven-media-engine/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "oven-media-engine";
-  version = "0.13.1";
+  version = "0.13.2";
 
   src = fetchFromGitHub {
     owner = "AirenSoft";
     repo = "OvenMediaEngine";
     rev = "v${version}";
-    sha256 = "sha256-oWZ+o19bNR7/QuYTquRa3l7GfRLMEdyPtBUOwb2p3jA=";
+    sha256 = "0lkpidx4r890mcdk9m69j4iahm7qr7w34h11w1nmi132v0rqm0h8";
   };
 
   sourceRoot = "source/src";
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Open-source streaming video service with sub-second latency";
     homepage    = "https://ovenmediaengine.com";
-    license     = licenses.gpl2Only;
+    license     = licenses.agpl3Only;
     maintainers = with maintainers; [ lukegb ];
     platforms   = [ "x86_64-linux" ];
   };
diff --git a/pkgs/servers/monitoring/alerta/client.nix b/pkgs/servers/monitoring/alerta/client.nix
index 31f31d0740579..cd969d9dbba50 100644
--- a/pkgs/servers/monitoring/alerta/client.nix
+++ b/pkgs/servers/monitoring/alerta/client.nix
@@ -4,11 +4,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "alerta";
-  version = "8.4.0";
+  version = "8.5.1";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "260ff3118e73396104129928217b0f317ac5afdff8221874d8986df22ecf5f34";
+    sha256 = "sha256-O13Ic2iHjNF/llp6vdaAiiWExcTBPsz46GAWY3oGDY8=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/servers/monitoring/alerta/default.nix b/pkgs/servers/monitoring/alerta/default.nix
index e69a594a728bc..c3758c26b253b 100644
--- a/pkgs/servers/monitoring/alerta/default.nix
+++ b/pkgs/servers/monitoring/alerta/default.nix
@@ -4,11 +4,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "alerta-server";
-  version = "8.3.3";
+  version = "8.7.0";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "a2713a31c6e326c774a3ee0328f424f944b951935ff1b893a4a66598d61c5a97";
+    sha256 = "sha256-EM3owmj+6gFjU0ARaQP3FLYXliGaGCRSaLgkiPwhGdU=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -21,6 +21,7 @@ python3.pkgs.buildPythonApplication rec {
     psycopg2
     pyjwt
     pymongo
+    pyparsing
     python-dateutil
     pytz
     pyyaml
@@ -29,13 +30,17 @@ python3.pkgs.buildPythonApplication rec {
     sentry-sdk
   ];
 
-  doCheck = false; # We can't run the tests from Nix, because they rely on the presence of a working MongoDB server
+   # We can't run the tests from Nix, because they rely on the presence of a working MongoDB server
+  doCheck = false;
 
-  disabled = python3.pythonOlder "3.6";
+  pythonImportsCheck = [
+    "alerta"
+  ];
 
   meta = with lib; {
     homepage = "https://alerta.io";
     description = "Alerta Monitoring System server";
     license = licenses.asl20;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/servers/monitoring/cadvisor/default.nix b/pkgs/servers/monitoring/cadvisor/default.nix
index 2db3cd0844705..760bed7b9371b 100644
--- a/pkgs/servers/monitoring/cadvisor/default.nix
+++ b/pkgs/servers/monitoring/cadvisor/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "cadvisor";
-  version = "0.38.7";
+  version = "0.40.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "cadvisor";
     rev = "v${version}";
-    sha256 = "sha256-2gwN3/sYPcDy1EUxt9mYviciN9/ZVdChIsuMt3Ueq68=";
+    sha256 = "sha256-8HOaKjdATVZpyx4yLf7xefz+jiOEqmkWiZnA3DOyT50=";
   };
 
   modRoot = "./cmd";
 
-  vendorSha256 = "sha256-FMO+wNmjFFD9+/9mhNcyZftk8ryhwFXDZeEy/h5EMWc=";
+  vendorSha256 = "sha256-+nrXD0hQ3zBwTTq9xoBqO3ho4s4tf8uZQz2wL1nYi/k=";
 
   ldflags = [ "-s" "-w" "-X github.com/google/cadvisor/version.Version=${version}" ];
 
diff --git a/pkgs/servers/monitoring/grafana-agent/default.nix b/pkgs/servers/monitoring/grafana-agent/default.nix
index 4ef0c34e393f8..ab342acb258df 100644
--- a/pkgs/servers/monitoring/grafana-agent/default.nix
+++ b/pkgs/servers/monitoring/grafana-agent/default.nix
@@ -2,20 +2,20 @@
 
 buildGoModule rec {
   pname = "grafana-agent";
-  version = "0.21.2";
+  version = "0.24.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "grafana";
     repo = "agent";
-    sha256 = "sha256-s++21feD3L2HuVYFjWhNIOGTjjX+lXwURc4PqbwFnhI=";
+    sha256 = "sha256-WxULVtqKxYXMWNY4l0wvTkqcDkPrlHcS70NgQhe8nzU=";
   };
 
-  vendorSha256 = "sha256-kxLtbElzfimC/ZefUyTlfQiUZo4y0f1riajRm5shVdU=";
+  vendorSha256 = "sha256-hdo8uiVJAMMPo1N8kLDFPSbyTr5WxNKtq8E7pj6Plak=";
 
-  patches = [
-    # https://github.com/grafana/agent/issues/731
-    ./skip_test_requiring_network.patch
+  tags = [
+    "nonetwork"
+    "nodocker"
   ];
 
   # uses go-systemd, which uses libsystemd headers
diff --git a/pkgs/servers/monitoring/grafana-agent/skip_test_requiring_network.patch b/pkgs/servers/monitoring/grafana-agent/skip_test_requiring_network.patch
deleted file mode 100644
index fcba11dd2fb41..0000000000000
--- a/pkgs/servers/monitoring/grafana-agent/skip_test_requiring_network.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/pkg/operator/selector_eventhandler_test.go b/pkg/operator/selector_eventhandler_test.go
-index 7b6ec602..e79bae0e 100644
---- a/pkg/operator/selector_eventhandler_test.go
-+++ b/pkg/operator/selector_eventhandler_test.go
-@@ -39,6 +39,10 @@ var (
- // TestEnqueueRequestForSelector creates an example Kubenretes cluster and runs
- // EnqueueRequestForSelector to validate it works.
- func TestEnqueueRequestForSelector(t *testing.T) {
-+	// Requires network access, which is not available during
-+	// the nixpkgs sandboxed build
-+	t.Skip()
-+
- 	l := log.NewNopLogger()
- 
- 	ctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute)
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index e3877265ca35f..4152e8bf98482 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -2,23 +2,23 @@
 
 buildGoModule rec {
   pname = "grafana";
-  version = "8.4.5";
+  version = "8.4.7";
 
-  excludedPackages = "\\(alert_webhook_listener\\|clean-swagger\\|release_publisher\\|slow_proxy\\|slow_proxy_mac\\|macaron\\)";
+  excludedPackages = [ "alert_webhook_listener" "clean-swagger" "release_publisher" "slow_proxy" "slow_proxy_mac" "macaron" ];
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "grafana";
     repo = "grafana";
-    sha256 = "sha256-CdGg979c7XD5V3jZbVeHUGylAarGc+cR+bFi5FngKtU=";
+    sha256 = "sha256-8owcfWTiXhejFc5P0AM6POXBXuAABn4M/uX9X68Zn8k=";
   };
 
   srcStatic = fetchurl {
     url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz";
-    sha256 = "sha256-PjDTEmzjDmT1WQGqF3GwojJ6mG2whBoPK0KWfXI8AB4=";
+    sha256 = "1wi28v1xhav8p2jqkf2gmk1accfcf1w0d6h312d4pns6pkhdabxv";
   };
 
-  vendorSha256 = "sha256-iOJEy7dCZGRTaOuL/09wcMlNDHjRi9SIr9bialdcKi4=";
+  vendorSha256 = "sha256-7ZeOncdiA/0Awg+olJvsLneLQH4zBQka4M81jsxwUdE=";
 
   nativeBuildInputs = [ wire ];
 
@@ -66,7 +66,10 @@ buildGoModule rec {
     cp ./conf/defaults.ini $out/share/grafana/conf/
   '';
 
-  passthru.tests = { inherit (nixosTests) grafana; };
+  passthru = {
+    tests = { inherit (nixosTests) grafana; };
+    updateScript = ./update.sh;
+  };
 
   meta = with lib; {
     description = "Gorgeous metric viz, dashboards & editors for Graphite, InfluxDB & OpenTSDB";
diff --git a/pkgs/servers/monitoring/grafana/update.sh b/pkgs/servers/monitoring/grafana/update.sh
new file mode 100755
index 0000000000000..8fce843338853
--- /dev/null
+++ b/pkgs/servers/monitoring/grafana/update.sh
@@ -0,0 +1,39 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl common-updater-scripts jq nix nix-prefetch-scripts moreutils
+
+set -euxo pipefail
+
+FILE="$(nix-instantiate --eval -E 'with import ./. {}; (builtins.unsafeGetAttrPos "version" grafana).file' | tr -d '"')"
+replaceHash() {
+  old="${1?old hash missing}"
+  new="${2?new hash missing}"
+  awk -v OLD="$old" -v NEW="$new" '{
+    if (i=index($0, OLD)) {
+      $0 = substr($0, 1, i-1) NEW substr($0, i+length(OLD));
+    }
+    print $0;
+  }' "$FILE" | sponge "$FILE"
+}
+extractVendorHash() {
+  original="${1?original hash missing}"
+  result="$(nix-build -A grafana.go-modules 2>&1 | tail -n3 | grep 'got:' | cut -d: -f2- | xargs echo || true)"
+  [ -z "$result" ] && { echo "$original"; } || { echo "$result"; }
+}
+
+oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion grafana" | tr -d '"')"
+latest="$(curl https://api.github.com/repos/grafana/grafana/releases/latest | jq '.tag_name' -r | tr -d 'v')"
+
+targetVersion="${1:-$latest}"
+if [ ! "${oldVersion}" = "${targetVersion}" ]; then
+  update-source-version grafana "${targetVersion#v}"
+  oldStaticHash="$(nix-instantiate --eval -A grafana.srcStatic.outputHash | tr -d '"')"
+  newStaticHash="$(nix-prefetch-url "https://dl.grafana.com/oss/release/grafana-${targetVersion#v}.linux-amd64.tar.gz")"
+  replaceHash "$oldStaticHash" "$newStaticHash"
+  goHash="$(nix-instantiate --eval -A grafana.vendorSha256 | tr -d '"')"
+  emptyHash="$(nix-instantiate --eval -A lib.fakeSha256 | tr -d '"')"
+  replaceHash "$goHash" "$emptyHash"
+  replaceHash "$emptyHash" "$(extractVendorHash "$goHash")"
+  nix-build -A grafana
+else
+  echo "grafana is already up-to-date"
+fi
diff --git a/pkgs/servers/monitoring/heapster/default.nix b/pkgs/servers/monitoring/heapster/default.nix
deleted file mode 100644
index d1205ae353b23..0000000000000
--- a/pkgs/servers/monitoring/heapster/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub, docker }:
-
-buildGoPackage rec {
-  rev = "3057a2c07061c8d9ffaf77e5442ffd7512ac0133";
-  pname = "heapster";
-  version = lib.strings.substring 0 7 rev;
-  goPackagePath = "k8s.io/heapster";
-  subPackages = [ "./" ];
-
-  src = fetchFromGitHub {
-    inherit rev;
-    owner = "kubernetes";
-    repo = "heapster";
-    sha256 = "1vg83207y7yigydnnhlvzs3s94vx02i56lqgs6a96c6i3mr3ydpb";
-  };
-
-  preBuild = ''
-    export GOPATH=$GOPATH:$NIX_BUILD_TOP/go/src/${goPackagePath}/Godeps/_workspace
-  '';
-
-  meta = with lib; {
-    description = "Compute Resource Usage Analysis and Monitoring of Container Clusters";
-    license = licenses.asl20;
-    homepage = "https://github.com/kubernetes/heapster";
-    maintainers = with maintainers; [ offline ];
-    platforms = docker.meta.platforms;
-  };
-}
diff --git a/pkgs/servers/monitoring/loki/default.nix b/pkgs/servers/monitoring/loki/default.nix
index 0a460e335b43c..c0816808cbad5 100644
--- a/pkgs/servers/monitoring/loki/default.nix
+++ b/pkgs/servers/monitoring/loki/default.nix
@@ -8,14 +8,14 @@
 }:
 
 buildGoModule rec {
-  version = "2.4.2";
+  version = "2.5.0";
   pname = "grafana-loki";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "grafana";
     repo = "loki";
-    sha256 = "sha256-HSEdN3PN4wQQ3A7bICNIAgdwhwD/PIUeOdW9ZgwmbCw=";
+    sha256 = "sha256-3GeWrkTL3HJQsVBafjSQXHsf1nbVzSVSDZWcJlD22Nw=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/servers/monitoring/mackerel-agent/default.nix b/pkgs/servers/monitoring/mackerel-agent/default.nix
index d11add105f6ba..54307fb98b43d 100644
--- a/pkgs/servers/monitoring/mackerel-agent/default.nix
+++ b/pkgs/servers/monitoring/mackerel-agent/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "mackerel-agent";
-  version = "0.72.8";
+  version = "0.72.9";
 
   src = fetchFromGitHub {
     owner = "mackerelio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-IejLCi1TJ2Q0lpA2ZK3hea18YX483FV4IisYRRVD1Vg=";
+    sha256 = "sha256-+3a0FyVf5AB85gGGBI8/ssLBqj9Kp3w9DUNbSaAtXvA=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/monitoring/mimir/default.nix b/pkgs/servers/monitoring/mimir/default.nix
new file mode 100644
index 0000000000000..db5c45f2fd37f
--- /dev/null
+++ b/pkgs/servers/monitoring/mimir/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+buildGoModule rec {
+  pname = "mimir";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    rev = "${pname}-${version}";
+    owner = "grafana";
+    repo = pname;
+    sha256 = "T1lljhC/TS3eoIc9AFo9Oy9/COM/XnfcwtkU618YCdM=";
+  };
+
+  vendorSha256 = null;
+
+  subPackages = [ "cmd/mimir" ];
+
+  ldflags = let t = "github.com/grafana/mimir/pkg/util/version";
+  in [
+    ''-extldflags "-static"''
+    "-s"
+    "-w"
+    "-X ${t}.Version=${version}"
+    "-X ${t}.Revision=unknown"
+    "-X ${t}.Branch=unknown"
+  ];
+
+  meta = with lib; {
+    description =
+      "Grafana Mimir provides horizontally scalable, highly available, multi-tenant, long-term storage for Prometheus. ";
+    homepage = "https://github.com/grafana/mimir";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ happysalada bryanhonof ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/monitoring/munin/default.nix b/pkgs/servers/monitoring/munin/default.nix
index 258247c34f47e..e8fa4feb6af47 100644
--- a/pkgs/servers/monitoring/munin/default.nix
+++ b/pkgs/servers/monitoring/munin/default.nix
@@ -13,8 +13,11 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-p273O5JLFX1dA2caV3lVVL9YNTcGMSrC7DWieUfUmqI=";
   };
 
-  buildInputs = [
+  nativeBuildInputs = [
     makeWrapper
+  ];
+
+  buildInputs = [
     which
     coreutils
     rrdtool
diff --git a/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix b/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
index b55b47cd7afdf..c4fb36d5a3b93 100644
--- a/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
+++ b/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "check_ssl_cert";
-  version = "2.23.0";
+  version = "2.25.0";
 
   src = fetchFromGitHub {
     owner = "matteocorti";
     repo = "check_ssl_cert";
     rev = "v${version}";
-    sha256 = "sha256-RGl6Fgm9FVaZQMWHl93RwHvrScz69VgbIyDBqMh3PVo=";
+    sha256 = "sha256-WjiUsf8PMlTsldMaxnQbgnC1XLVW6wz50JyX/3MbZ+k=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/monitoring/prometheus/bird-exporter.nix b/pkgs/servers/monitoring/prometheus/bird-exporter.nix
index caa17ce97fc4c..33005279962a6 100644
--- a/pkgs/servers/monitoring/prometheus/bird-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/bird-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "bird-exporter";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "czerwonk";
     repo = "bird_exporter";
     rev = version;
-    sha256 = "sha256-N/00+2OrP0BsEazD9bHk+w/xO9E6sFT6nC0MM4n9lR4=";
+    sha256 = "sha256-QCnOMiAcvn0HcppGJlf3sdllApKcjHpucvk9xxD/MqE=";
   };
 
-  vendorSha256 = "sha256-9xKMwHNgPMtC+J3mwwUNSJnpMGttpaWF6l8gv0YtvHE=";
+  vendorSha256 = "sha256-jBwaneVv1a8iIqnhDbQOnvaJdnXgO8P90Iv51IfGaM0=";
 
   passthru.tests = { inherit (nixosTests.prometheus-exporters) bird; };
 
diff --git a/pkgs/servers/monitoring/prometheus/mesos-exporter.nix b/pkgs/servers/monitoring/prometheus/mesos-exporter.nix
deleted file mode 100644
index 289b8f2403d8f..0000000000000
--- a/pkgs/servers/monitoring/prometheus/mesos-exporter.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-
-buildGoPackage rec {
-  pname = "mesos_exporter";
-  version = "1.1.2";
-
-  goPackagePath = "github.com/prometheus/mesos_exporter";
-
-  src = fetchFromGitHub {
-    rev = "v${version}";
-    owner = "mesos";
-    repo = "mesos_exporter";
-    sha256 = "0nvjlpxdhh60wcdw2fdc8h0vn6fxkz0nh7zrx43hjxymvc15ixza";
-  };
-
-  meta = with lib; {
-    description = "Export Mesos metrics to Prometheus";
-    homepage = "https://github.com/prometheus/mesos_exporter";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ benley ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/servers/monitoring/prometheus/nextcloud-exporter.nix b/pkgs/servers/monitoring/prometheus/nextcloud-exporter.nix
index 4f96e516278fb..386e49594d248 100644
--- a/pkgs/servers/monitoring/prometheus/nextcloud-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/nextcloud-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "prometheus-nextcloud-exporter";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "xperimental";
     repo = "nextcloud-exporter";
     rev = "v${version}";
-    sha256 = "sha256-73IxGxnKgbG50nr57Wft+hh0KT7redrwXc4EZFn25qs=";
+    sha256 = "18xvxx0aplkj7xzi0zfsz7a5d45hh8blfqb105360pknvvi6apjv";
   };
 
-  vendorSha256 = "sha256-vIhHUFg8m6raKF82DcXRGKCgSM2FJ2VTM+MdMjP7KUY=";
+  vendorSha256 = "1wr1ckz0klk9sqpyk96h8bwr1dg6aiirr1l1f23kbib91pfpd08r";
 
   passthru.tests = { inherit (nixosTests.prometheus-exporters) nextcloud; };
 
diff --git a/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix b/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix
index 04e2772ca2a11..0ada418872d18 100644
--- a/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "nginxlog_exporter";
-  version = "1.9.0";
+  version = "1.9.2";
 
   src = fetchFromGitHub {
     owner = "martin-helmich";
     repo = "prometheus-nginxlog-exporter";
     rev = "v${version}";
-    sha256 = "0kcwhaf9k7c1xsz78064qz5zb4x3xgi1ifi49qkwiaqrzx2xy26p";
+    sha256 = "sha256-rRmWy6c5bvmJO0h7uleabQnBLm8Qarp2iEBGfodGdKE=";
   };
 
   vendorSha256 = "sha256-5C5xQx8I5aHgi9P5gpHmPw6nV76D68/agVAP1vGab4w=";
diff --git a/pkgs/servers/monitoring/prometheus/process-exporter.nix b/pkgs/servers/monitoring/prometheus/process-exporter.nix
index e4bfed9821b78..135551db56609 100644
--- a/pkgs/servers/monitoring/prometheus/process-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/process-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "process-exporter";
-  version = "0.7.5";
+  version = "0.7.10";
 
   src = fetchFromGitHub {
     owner = "ncabatoff";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0v1q8mi8p01smzfxaf52kbqnjz9fx4rp64jqhgbcx0s45q3bph9l";
+    sha256 = "sha256-TAgMA9IV3i8dpgOBDmnlt4iyGlmWN5Nj3BexXb5vzlc=";
   };
 
-  vendorSha256 = "19y2w1vplf7qqkzcpi01ssawv9badhwpglh2gz69fgl6xc3mxfmp";
+  vendorSha256 = "sha256-LAEnXJ3qShfCGjtsYAGyW5x/TTFQxQxXM0hebJrqiW4=";
 
   postPatch = ''
     substituteInPlace proc/read_test.go --replace /bin/cat cat
diff --git a/pkgs/servers/monitoring/prometheus/promscale/default.nix b/pkgs/servers/monitoring/prometheus/promscale/default.nix
index dd297d4c25854..fbd1661c5f8b1 100644
--- a/pkgs/servers/monitoring/prometheus/promscale/default.nix
+++ b/pkgs/servers/monitoring/prometheus/promscale/default.nix
@@ -2,7 +2,7 @@
 , buildGoModule
 , fetchFromGitHub
 , promscale
-, testVersion
+, testers
 }:
 
 buildGoModule rec {
@@ -40,7 +40,7 @@ buildGoModule rec {
     runHook postCheck
   '';
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = promscale;
     command = "promscale -version";
   };
diff --git a/pkgs/servers/monitoring/telegraf/default.nix b/pkgs/servers/monitoring/telegraf/default.nix
index 3250d2339941f..5c1f2e6862bd3 100644
--- a/pkgs/servers/monitoring/telegraf/default.nix
+++ b/pkgs/servers/monitoring/telegraf/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "telegraf";
-  version = "1.22.0";
+  version = "1.22.1";
 
   excludedPackages = "test";
 
@@ -12,10 +12,10 @@ buildGoModule rec {
     owner = "influxdata";
     repo = "telegraf";
     rev = "v${version}";
-    sha256 = "sha256-Y7vR6kmh1rObDyyHA2NFvBkilBz+Bx8BHqlAoVY/gGo=";
+    sha256 = "sha256-W6o+dFUdnH4c+SLwqhoutOsXf+XLu2qNjYytPp43fjk=";
   };
 
-  vendorSha256 = "sha256-oSN6nHOtXA2cSZEmToRvALkSxAyel9BU7bh1groEnsw=";
+  vendorSha256 = "sha256-28Xz8fIlrdCVkG0x5toJXht+RIkBmey4wi6WGqsq80k=";
   proxyVendor = true;
 
   ldflags = [
diff --git a/pkgs/servers/monitoring/thanos/default.nix b/pkgs/servers/monitoring/thanos/default.nix
index 8692b5b558ab9..7b1bd2960ab90 100644
--- a/pkgs/servers/monitoring/thanos/default.nix
+++ b/pkgs/servers/monitoring/thanos/default.nix
@@ -1,13 +1,13 @@
 { lib, buildGoModule, fetchFromGitHub }:
 buildGoModule rec {
   pname = "thanos";
-  version = "0.25.1";
+  version = "0.25.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "thanos-io";
     repo = "thanos";
-    sha256 = "sha256-yisJqr2JMpXSo9O3q7WpNe1r6w7E3XyeLpVlbdest3s=";
+    sha256 = "sha256-CAeI+5aC8kSQaKOk/5WCQiQMOX82hogAQGP2Em3DJAw=";
   };
 
   vendorSha256 = "sha256-tHtfS4PnO9n3ckUdaG6dQAIE2D2PG6km4Tqofaab/eg=";
diff --git a/pkgs/servers/monitoring/zipkin/default.nix b/pkgs/servers/monitoring/zipkin/default.nix
index 9395c3c61c191..37e43aeb3d948 100644
--- a/pkgs/servers/monitoring/zipkin/default.nix
+++ b/pkgs/servers/monitoring/zipkin/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = [ maintainers.hectorj ];
+    mainProgram = "zipkin-server";
   };
 }
diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix
index 92e8d6ff5d21e..e71fb9db115ed 100644
--- a/pkgs/servers/nextcloud/default.nix
+++ b/pkgs/servers/nextcloud/default.nix
@@ -46,13 +46,13 @@ in {
   '';
 
   nextcloud22 = generic {
-    version = "22.2.6";
-    sha256 = "0f1d0f0cb000c51b11886be25a8adce478846c3233572fcf28b44c5d4036e235";
+    version = "22.2.7";
+    sha256 = "5ada41cb3e69665e8a13946f71978829c0a0163d0277a49e599c9e8ccf960eab";
   };
 
   nextcloud23 = generic {
-    version = "23.0.3";
-    sha256 = "39401d400fab02a84a175ea6e995b8ed4110fbaea48c876230b4f09755a62986";
+    version = "23.0.4";
+    sha256 = "67191c2b8b41591ae42accfb32216313fde0e107201682cb39029f890712bc6a";
   };
   # tip: get she sha with:
   # curl 'https://download.nextcloud.com/server/releases/nextcloud-${version}.tar.bz2.sha256'
diff --git a/pkgs/servers/nitter/default.nix b/pkgs/servers/nitter/default.nix
index 32c7ac21dae4d..a0115440b6ecc 100644
--- a/pkgs/servers/nitter/default.nix
+++ b/pkgs/servers/nitter/default.nix
@@ -2,14 +2,14 @@
 
 nimPackages.buildNimPackage rec {
   pname = "nitter";
-  version = "unstable-2022-02-11";
+  version = "unstable-2022-03-21";
   nimBinOnly = true;
 
   src = fetchFromGitHub {
     owner = "zedeus";
     repo = "nitter";
-    rev = "6695784050605c77a301c0a66764fa9a9580a2f5";
-    sha256 = "1lddzf6m74bw5kkv465cp211xxqbwnfacav7ia3y9i38rrnqwk6m";
+    rev = "6884f05041a9b8619ec709afacdfdd6482a120a0";
+    sha256 = "1mnc6jqljpqp9lgcrxxvf3aiswssr34v139cxfbwlmj45swmsazh";
   };
 
   buildInputs = with nimPackages; [
diff --git a/pkgs/servers/nitter/update.sh b/pkgs/servers/nitter/update.sh
new file mode 100755
index 0000000000000..e756eff5fb981
--- /dev/null
+++ b/pkgs/servers/nitter/update.sh
@@ -0,0 +1,40 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p common-updater-scripts curl jq nix nix-prefetch-git patchutils
+set -euo pipefail
+
+info() {
+    if [ -t 2 ]; then
+        set -- '\033[32m%s\033[39m\n' "$@"
+    else
+        set -- '%s\n' "$@"
+    fi
+    printf "$@" >&2
+}
+
+nitter_old_version=$(nix-instantiate --eval --strict --json -A nitter.version . | jq -r .)
+nitter_old_rev=$(nix-instantiate --eval --strict --json -A nitter.src.rev . | jq -r .)
+today=$(LANG=C date -u +'%Y-%m-%d')
+
+# use latest commit before today, we should not call the version *today*
+# because there might still be commits coming
+# use the day of the latest commit we picked as version
+commit=$(curl -Sfs "https://api.github.com/repos/zedeus/nitter/compare/$nitter_old_rev~1...master" \
+    | jq '.commits | map(select(.commit.committer.date < $today) | {sha, date: .commit.committer.date}) | .[-1]' --arg today "$today")
+nitter_new_rev=$(jq -r '.sha' <<< "$commit")
+nitter_new_version="unstable-$(jq -r '.date[0:10]' <<< "$commit")"
+info "latest commit before $today: $nitter_new_rev ($(jq -r '.date' <<< "$commit"))"
+
+if [ "$nitter_new_rev" = "$nitter_old_rev" ]; then
+    info "nitter is up-to-date."
+    exit
+fi
+
+if curl -Sfs "https://github.com/zedeus/nitter/compare/$nitter_old_rev...$nitter_new_rev.patch" \
+| lsdiff | grep -Fxe 'a/nitter.nimble' -e 'b/nitter.nimble' > /dev/null; then
+    info "nitter.nimble changed, some dependencies probably need updating."
+fi
+
+nitter_new_sha256=$(nix-prefetch-git --rev "$nitter_new_rev" "https://github.com/zedeus/nitter.git" | jq -r .sha256)
+update-source-version nitter "$nitter_new_version" "$nitter_new_sha256" --rev="$nitter_new_rev"
+git commit --all --verbose --message "nitter: $nitter_old_version -> $nitter_new_version"
+info "Updated nitter to $nitter_new_version."
diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix
index bf7f7b4396096..d9f1892beca94 100644
--- a/pkgs/servers/nosql/arangodb/default.nix
+++ b/pkgs/servers/nosql/arangodb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, openssl, zlib, cmake, python2, perl, snappy, lzo, which }:
+{ stdenv, lib, fetchFromGitHub, openssl, zlib, cmake, python2, perl, snappy, lzo, which, catch2, catch }:
 
 let
   common = { version, sha256 }: stdenv.mkDerivation {
@@ -26,6 +26,14 @@ let
       # with nixpkgs, it has no sense to check for a version update
       substituteInPlace js/client/client.js --replace "require('@arangodb').checkAvailableVersions();" ""
       substituteInPlace js/server/server.js --replace "require('@arangodb').checkAvailableVersions();" ""
+
+      ${if (lib.versionOlder version "3.4") then ''
+        cp ${catch}/include/catch/catch.hpp 3rdParty/catch/catch.hpp
+      '' else if (lib.versionOlder version "3.5") then ''
+        cp ${catch2}/include/catch2/catch.hpp 3rdParty/catch/catch.hpp
+      '' else ''
+        (cd 3rdParty/boost/1.69.0 && patch -p1 < ${../../../development/libraries/boost/pthread-stack-min-fix.patch})
+      ''}
     '';
 
     cmakeFlags = [
diff --git a/pkgs/servers/nosql/cassandra/2.1.json b/pkgs/servers/nosql/cassandra/2.1.json
new file mode 100644
index 0000000000000..d1af24106b69f
--- /dev/null
+++ b/pkgs/servers/nosql/cassandra/2.1.json
@@ -0,0 +1,4 @@
+{
+  "version": "2.1.22",
+  "sha256": "1wk57dz0kmc6d5y8d8dkx269lzh3ark3751z734gxncwdlclcyz3"
+}
diff --git a/pkgs/servers/nosql/cassandra/2.1.nix b/pkgs/servers/nosql/cassandra/2.1.nix
index 63d89a29d13f5..02f954ebd1fe7 100644
--- a/pkgs/servers/nosql/cassandra/2.1.nix
+++ b/pkgs/servers/nosql/cassandra/2.1.nix
@@ -1,11 +1,12 @@
 { callPackage, ... } @ args:
 
-callPackage ./generic.nix (args // {
-  version = "2.1.22";
-  sha256 = "1wk57dz0kmc6d5y8d8dkx269lzh3ark3751z734gxncwdlclcyz3";
-  generation = "2_1";
-  extraMeta.knownVulnerabilities = [
-    # Fixed in 3.* but 2.* hasn't been released since
-    "CVE-2020-17516"
-  ];
-})
+callPackage ./generic.nix (
+  args
+  // builtins.fromJSON (builtins.readFile ./2.1.json)
+  // {
+    generation = "2_1";
+    extraMeta.knownVulnerabilities = [
+      # Fixed in 3.* but 2.* hasn't been released since
+      "CVE-2020-17516"
+    ];
+  })
diff --git a/pkgs/servers/nosql/cassandra/2.2.json b/pkgs/servers/nosql/cassandra/2.2.json
new file mode 100644
index 0000000000000..694e66f4f463f
--- /dev/null
+++ b/pkgs/servers/nosql/cassandra/2.2.json
@@ -0,0 +1,4 @@
+{
+  "version": "2.2.14",
+  "sha256": "1b2x3q1ach44qg07sh8wr7d8a10n36w5522drd3p35djbiwa3d9q"
+}
diff --git a/pkgs/servers/nosql/cassandra/2.2.nix b/pkgs/servers/nosql/cassandra/2.2.nix
index dc04c374b3d53..bcb2eaec123c6 100644
--- a/pkgs/servers/nosql/cassandra/2.2.nix
+++ b/pkgs/servers/nosql/cassandra/2.2.nix
@@ -1,11 +1,12 @@
 { callPackage, ... } @ args:
 
-callPackage ./generic.nix (args // {
-  version = "2.2.14";
-  sha256 = "1b2x3q1ach44qg07sh8wr7d8a10n36w5522drd3p35djbiwa3d9q";
-  generation = "2_2";
-  extraMeta.knownVulnerabilities = [
-    # Fixed in 3.* but 2.* hasn't been released since
-    "CVE-2020-17516"
-  ];
-})
+callPackage ./generic.nix (
+  args
+  // builtins.fromJSON (builtins.readFile ./2.2.json)
+  // {
+    generation = "2_2";
+    extraMeta.knownVulnerabilities = [
+      # Fixed in 3.* but 2.* hasn't been released since
+      "CVE-2020-17516"
+    ];
+  })
diff --git a/pkgs/servers/nosql/cassandra/3.0.json b/pkgs/servers/nosql/cassandra/3.0.json
new file mode 100644
index 0000000000000..665a5604d7730
--- /dev/null
+++ b/pkgs/servers/nosql/cassandra/3.0.json
@@ -0,0 +1,4 @@
+{
+  "version": "3.0.26",
+  "sha256": "09wim1w2yizcqpja62jk64fhaw3jgnrgrjlrm4kgmcc3g3bsmw6i"
+}
diff --git a/pkgs/servers/nosql/cassandra/3.0.nix b/pkgs/servers/nosql/cassandra/3.0.nix
index d9f5978f2649a..9c62901a48081 100644
--- a/pkgs/servers/nosql/cassandra/3.0.nix
+++ b/pkgs/servers/nosql/cassandra/3.0.nix
@@ -1,7 +1,7 @@
 { callPackage, ... } @ args:
-
-callPackage ./generic.nix (args // {
-  version = "3.0.26";
-  sha256 = "09wim1w2yizcqpja62jk64fhaw3jgnrgrjlrm4kgmcc3g3bsmw6i";
-  generation = "3_0";
-})
+callPackage ./generic.nix (
+  args
+  // builtins.fromJSON (builtins.readFile ./3.0.json)
+  // {
+    generation = "3_0";
+  })
diff --git a/pkgs/servers/nosql/cassandra/3.11.json b/pkgs/servers/nosql/cassandra/3.11.json
new file mode 100644
index 0000000000000..e47f78b7baf81
--- /dev/null
+++ b/pkgs/servers/nosql/cassandra/3.11.json
@@ -0,0 +1,4 @@
+{
+  "version": "3.11.12",
+  "sha256": "16j58l7r47qrfh8q7fm92y935ykgvnbj3qn984c42qda15x92hkw"
+}
diff --git a/pkgs/servers/nosql/cassandra/3.11.nix b/pkgs/servers/nosql/cassandra/3.11.nix
index fc839fa8c3560..ffb29743405bf 100644
--- a/pkgs/servers/nosql/cassandra/3.11.nix
+++ b/pkgs/servers/nosql/cassandra/3.11.nix
@@ -1,7 +1,7 @@
 { callPackage, ... } @ args:
-
-callPackage ./generic.nix (args // {
-  version = "3.11.12";
-  sha256 = "16j58l7r47qrfh8q7fm92y935ykgvnbj3qn984c42qda15x92hkw";
-  generation = "3_11";
-})
+callPackage ./generic.nix (
+  args
+  // builtins.fromJSON (builtins.readFile ./3.11.json)
+  // {
+    generation = "3_11";
+  })
diff --git a/pkgs/servers/nosql/cassandra/generic.nix b/pkgs/servers/nosql/cassandra/generic.nix
index ca11b838e3250..9d62279e74e45 100644
--- a/pkgs/servers/nosql/cassandra/generic.nix
+++ b/pkgs/servers/nosql/cassandra/generic.nix
@@ -16,6 +16,7 @@
 , version
 , sha256
 , extraMeta ? { }
+, callPackage
 , ...
 }:
 
@@ -37,7 +38,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     inherit sha256;
-    url = "mirror://apache/cassandra/${version}/apache-${pname}-${version}-bin.tar.gz";
+    url = "mirror://apache/cassandra/${version}/apache-cassandra-${version}-bin.tar.gz";
   };
 
   nativeBuildInputs = [ makeWrapper coreutils ];
@@ -113,6 +114,8 @@ stdenv.mkDerivation rec {
           assert test.testPackage.version == version;
           test;
       };
+
+    updateScript = callPackage ./update-script.nix { inherit generation; };
   };
 
   meta = with lib; {
diff --git a/pkgs/servers/nosql/cassandra/update-script.nix b/pkgs/servers/nosql/cassandra/update-script.nix
new file mode 100644
index 0000000000000..b407b704fdfd2
--- /dev/null
+++ b/pkgs/servers/nosql/cassandra/update-script.nix
@@ -0,0 +1,55 @@
+{ git
+, lib
+, runtimeShell
+, writeScript
+, generation
+, gnupg
+}:
+let
+  inherit (lib) makeBinPath;
+  filename = lib.strings.replaceStrings [ "_" ] [ "." ] generation + ".json";
+  regex = lib.strings.replaceStrings [ "_" ] [ "[.]" ] generation;
+in
+writeScript "update-cassandra_${generation}" ''
+  #!${runtimeShell}
+  set -eux -o pipefail
+  test -d pkgs -a -d nixos -a -d lib || {
+    echo >&2 "$0 expects to be run in a nixpkgs checkout"
+    exit 1
+  }
+  cd pkgs/servers/nosql/cassandra
+  PATH="${makeBinPath [git gnupg]}:$PATH"
+
+  tmp="$(mktemp -d)"
+  cleanup() {
+    rm -rf "$tmp"
+  }
+  trap cleanup EXIT
+
+  # get numeric-only versions, sort them latest first
+  git ls-remote --tags https://github.com/apache/cassandra \
+    | awk '{ if (match($0, /refs.tags.cassandra-([0-9.]*)$/, m)) print m[1] }' \
+    | sort -V \
+    | tac >$tmp/versions
+
+  version="$(grep -E '^${regex}' <$tmp/versions | head -n 1)"
+  path="cassandra/$version/apache-cassandra-$version-bin.tar.gz"
+  curl "https://downloads.apache.org/$path" >$tmp/src.tar.gz
+  curl "https://downloads.apache.org/$path.asc" >$tmp/src.tar.gz.asc
+
+  # See https://downloads.apache.org/cassandra/KEYS
+  # Make sure that any new key corresponds to someone on the project
+  for key in A4C465FEA0C552561A392A61E91335D77E3E87CB; do
+    gpg --trustdb-name "$tmp/trust.db" --batch --recv-keys "$key"
+    echo "$key:5:" | gpg --trustdb-name "$tmp/trust.db" --batch --import-ownertrust
+  done
+  gpg --trustdb-name "$tmp/trust.db" --batch --verify --trust-model direct $tmp/src.tar.gz.asc $tmp/src.tar.gz
+
+  hash="$(nix-prefetch-url "file://$tmp/src.tar.gz")"
+  cat >${filename} <<EOF
+  {
+    "version": "$version",
+    "sha256": "$hash"
+  }
+  EOF
+''
diff --git a/pkgs/servers/nosql/mongodb/4.4.nix b/pkgs/servers/nosql/mongodb/4.4.nix
new file mode 100644
index 0000000000000..7dd74e24fc489
--- /dev/null
+++ b/pkgs/servers/nosql/mongodb/4.4.nix
@@ -0,0 +1,14 @@
+{ stdenv, callPackage, lib, sasl, boost, Security, CoreFoundation, cctools }:
+
+let
+  buildMongoDB = callPackage ./mongodb.nix {
+    inherit sasl boost Security CoreFoundation cctools;
+  };
+in
+buildMongoDB {
+  version = "4.4.13";
+  sha256 = "sha256-ebg3R6P+tjRvizDzsl7mZzhTfqIaRJPfHBu0IfRvtS8=";
+  patches = [
+    ./forget-build-dependencies-4-4.patch
+  ] ++ lib.optionals stdenv.isDarwin [ ./asio-no-experimental-string-view-4-4.patch ];
+}
diff --git a/pkgs/servers/nosql/mongodb/5.0.nix b/pkgs/servers/nosql/mongodb/5.0.nix
new file mode 100644
index 0000000000000..6bb2294cfffa7
--- /dev/null
+++ b/pkgs/servers/nosql/mongodb/5.0.nix
@@ -0,0 +1,25 @@
+{ stdenv, callPackage, lib, sasl, boost, Security, CoreFoundation, cctools }:
+
+let
+  buildMongoDB = callPackage ./mongodb.nix {
+    inherit sasl boost Security CoreFoundation cctools;
+  };
+  variants = if stdenv.isLinux then
+    {
+      version = "5.0.7";
+      sha256 = "sha256-1PeDBZJNqJXHH/cSh2e+WR0PfS/b7XuJEzkkbrRT/gc=";
+    }
+  else
+    {
+      version = "5.0.3"; # at least darwin has to stay on 5.0.3 until the SDK used by nixpkgs is bumped to 10.13
+      sha256 = "1p9pq0dfd6lynvnz5p1c8dqp4filzrz86j840xwxwx82dm1zl6p0";
+    };
+in
+buildMongoDB {
+  version = variants.version;
+  sha256 = variants.sha256;
+  patches = [
+    ./forget-build-dependencies-4-4.patch
+    ./asio-no-experimental-string-view-4-4.patch
+  ];
+}
diff --git a/pkgs/servers/nosql/mongodb/asio-no-experimental-string-view-4-4.patch b/pkgs/servers/nosql/mongodb/asio-no-experimental-string-view-4-4.patch
new file mode 100644
index 0000000000000..b27145d57ecf9
--- /dev/null
+++ b/pkgs/servers/nosql/mongodb/asio-no-experimental-string-view-4-4.patch
@@ -0,0 +1,23 @@
+--- a/src/third_party/asio-master/asio/include/asio/detail/config.hpp
+--- b/src/third_party/asio-master/asio/include/asio/detail/config.hpp
+@@ -831,20 +831,8 @@
+ #     endif // (__cplusplus >= 201402)
+ #    endif // (_LIBCPP_VERSION < 7000)
+ #   else // defined(ASIO_HAS_CLANG_LIBCXX)
+-#    if (__cplusplus >= 201402)
+-#     if __has_include(<experimental/string_view>)
+-#      define ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1
+-#     endif // __has_include(<experimental/string_view>)
+-#    endif // (__cplusplus >= 201402)
+ #   endif // // defined(ASIO_HAS_CLANG_LIBCXX)
+ #  endif // defined(__clang__)
+-#  if defined(__GNUC__)
+-#   if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)) || (__GNUC__ > 4)
+-#    if (__cplusplus >= 201402)
+-#     define ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1
+-#    endif // (__cplusplus >= 201402)
+-#   endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)) || (__GNUC__ > 4)
+-#  endif // defined(__GNUC__)
+ # endif // !defined(ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW)
+ #endif // !defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW)
+ 
diff --git a/pkgs/servers/nosql/mongodb/forget-build-dependencies-4-4.patch b/pkgs/servers/nosql/mongodb/forget-build-dependencies-4-4.patch
new file mode 100644
index 0000000000000..1c3e0982a8c1a
--- /dev/null
+++ b/pkgs/servers/nosql/mongodb/forget-build-dependencies-4-4.patch
@@ -0,0 +1,33 @@
+--- a/site_scons/mongo/generators.py
++++ b/site_scons/mongo/generators.py
+@@ -34,30 +34,12 @@ def default_buildinfo_environment_data():
+             False,
+         ),
+         (
+-            'ccflags',
+-            '$CCFLAGS',
+-            True,
+-            False,
+-        ),
+-        (
+             'cxx',
+             '$CXX_VERSION',
+             True,
+             False,
+         ),
+         (
+-            'cxxflags',
+-            '$CXXFLAGS',
+-            True,
+-            False,
+-        ),
+-        (
+-            'linkflags',
+-            '$LINKFLAGS',
+-            True,
+-            False,
+-        ),
+-        (
+             'target_arch',
+             '$TARGET_ARCH',
+             True,
diff --git a/pkgs/servers/nosql/mongodb/mongodb.nix b/pkgs/servers/nosql/mongodb/mongodb.nix
index 7c66d348ffb01..28795890069d1 100644
--- a/pkgs/servers/nosql/mongodb/mongodb.nix
+++ b/pkgs/servers/nosql/mongodb/mongodb.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, sconsPackages, boost, gperftools, pcre-cpp, snappy, zlib, libyamlcpp
-, sasl, openssl, libpcap, curl, Security, CoreFoundation, cctools }:
+, sasl, openssl, libpcap, python3, curl, Security, CoreFoundation, cctools, xz }:
 
 # Note:
 # The command line tools are written in Go as part of a different package (mongodb-tools)
@@ -8,12 +8,12 @@ with lib;
 
 { version, sha256, patches ? []
 , license ? lib.licenses.sspl
-}@args:
+}:
 
 let
   variants = if versionAtLeast version "4.2"
     then rec { python = scons.python.withPackages (ps: with ps; [ pyyaml cheetah3 psutil setuptools ]);
-            scons = sconsPackages.scons_latest;
+            scons = sconsPackages.scons_3_1_2.override { python = python3; }; # 4.2 < mongodb <= 5.0.x needs scons 3.x built with python3
             mozjsVersion = "60";
             mozjsReplace = "defined(HAVE___SINCOS)";
           }
@@ -44,7 +44,9 @@ in stdenv.mkDerivation rec {
     inherit sha256;
   };
 
-  nativeBuildInputs = [ variants.scons ];
+  nativeBuildInputs = [ variants.scons ]
+    ++ lib.optionals (versionAtLeast version "4.4") [ xz ];
+
   buildInputs = [
     boost
     curl
@@ -70,7 +72,6 @@ in stdenv.mkDerivation rec {
         --replace "env = Environment(" "env = Environment(ENV = os.environ,"
   '' + lib.optionalString stdenv.isDarwin ''
     substituteInPlace src/third_party/mozjs-${variants.mozjsVersion}/extract/js/src/jsmath.cpp --replace '${variants.mozjsReplace}' 0
-
     substituteInPlace src/third_party/s2/s1angle.cc --replace drem remainder
     substituteInPlace src/third_party/s2/s1interval.cc --replace drem remainder
     substituteInPlace src/third_party/s2/s2cap.cc --replace drem remainder
@@ -95,7 +96,8 @@ in stdenv.mkDerivation rec {
     "--use-sasl-client"
     "--disable-warnings-as-errors"
     "VARIANT_DIR=nixos" # Needed so we don't produce argument lists that are too long for gcc / ld
-  ] ++ map (lib: "--use-system-${lib}") system-libraries;
+  ] ++ lib.optionals (versionAtLeast version "4.4") [ "--link-model=static" ]
+    ++ map (lib: "--use-system-${lib}") system-libraries;
 
   preBuild = ''
     sconsFlags+=" CC=$CC"
@@ -119,7 +121,9 @@ in stdenv.mkDerivation rec {
     runHook postInstallCheck
   '';
 
-  prefixKey = "--prefix=";
+  installTargets = if (versionAtLeast version "4.4") then "install-core" else "install";
+
+  prefixKey = if (versionAtLeast version "4.4") then "DESTDIR=" else "--prefix=";
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/servers/nosql/mongodb/v4_2.nix b/pkgs/servers/nosql/mongodb/v4_2.nix
index e638cddd232ad..3759cc1e6d585 100644
--- a/pkgs/servers/nosql/mongodb/v4_2.nix
+++ b/pkgs/servers/nosql/mongodb/v4_2.nix
@@ -9,8 +9,8 @@ let
     inherit cctools;
   };
 in buildMongoDB {
-  version = "4.2.17";
-  sha256 = "sha256-4ynvImVjN674VdD/bJ55Vy/IrOlMN8iZb2PAhxwbv1A=";
+  version = "4.2.19";
+  sha256 = "sha256-fngTHd+fSdHqiqQYOYS7o6P5eHybeZy3iNKkGzFmjTw=";
   patches =
     [ ./forget-build-dependencies-4-2.patch ]
     ++ lib.optionals stdenv.isDarwin [ ./asio-no-experimental-string-view-4-2.patch ];
diff --git a/pkgs/servers/ombi/default.nix b/pkgs/servers/ombi/default.nix
index a99349d8c0db6..e0eac1b8c04cf 100644
--- a/pkgs/servers/ombi/default.nix
+++ b/pkgs/servers/ombi/default.nix
@@ -26,7 +26,8 @@ in stdenv.mkDerivation rec {
     sha256 = hash;
   };
 
-  nativeBuildInputs = [ makeWrapper autoPatchelfHook ]
+  nativeBuildInputs = [ makeWrapper ]
+    ++ lib.optional stdenv.hostPlatform.isLinux autoPatchelfHook
     ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
 
   propagatedBuildInputs = [ stdenv.cc.cc zlib krb5 ];
@@ -37,7 +38,7 @@ in stdenv.mkDerivation rec {
 
     makeWrapper $out/share/${pname}-${version}/Ombi $out/bin/Ombi \
       --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ openssl icu ]} \
-      --run "cd $out/share/${pname}-${version}"
+      --chdir "$out/share/${pname}-${version}"
   '';
 
   passthru = {
diff --git a/pkgs/servers/openafs/1.8/module.nix b/pkgs/servers/openafs/1.8/module.nix
index 53834e5ccc1f4..c8be2eec27a84 100644
--- a/pkgs/servers/openafs/1.8/module.nix
+++ b/pkgs/servers/openafs/1.8/module.nix
@@ -11,6 +11,7 @@
 , perl
 , libtool_2
 , libkrb5
+, fetchpatch
 }:
 
 with (import ./srcs.nix {
@@ -21,6 +22,10 @@ let
   modDestDir = "$out/lib/modules/${kernel.modDirVersion}/extra/openafs";
   kernelBuildDir = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
 
+  fetchBase64Patch = args: (fetchpatch args).overrideAttrs (o: {
+    postFetch = "mv $out p; base64 -d p > $out; " + o.postFetch;
+  });
+
 in
 stdenv.mkDerivation {
   pname = "openafs";
@@ -32,6 +37,34 @@ stdenv.mkDerivation {
 
   buildInputs = [ libkrb5 ];
 
+  patches = [
+    # Add autoconf-archive to src/external
+    (fetchBase64Patch {
+      url = "https://gerrit.openafs.org/changes/14942/revisions/006616bd8e88b2d386a5ddc23973cf3e625cb80d/patch";
+      hash = "sha256-55sc2sKy5XkQHAv6ysVxi69+0xVsHnN2TS144UTeLHU=";
+    })
+    # Import of code from autoconf-archive
+    (fetchBase64Patch {
+      url = "https://gerrit.openafs.org/changes/14943/revisions/d3782b1d4e6fd81c5432e95112eb44305f07f272/patch";
+      hash = "sha256-ohkjSux+S3+6slh6uZIw5UJXlvhy9UUDpDlP0YFRwmw=";
+    })
+    # Use autoconf-archive m4 from src/external
+    (fetchBase64Patch {
+      url = "https://gerrit.openafs.org/changes/14944/revisions/ea2a0e128d71802f61b8da2e44de3c6325c5f328/patch";
+      hash = "sha256-PAUk/MXL5p8xwhn40/UGmo3UIhvl1PB2FwgqhmqsjJ4=";
+    })
+    # Linux-5.17: kernel func complete_and_exit renamed
+    (fetchBase64Patch {
+      url = "https://gerrit.openafs.org/changes/14945/revisions/a714e865efe41aa1112f6f9c8479112660dacd6f/patch";
+      hash = "sha256-zvyR/GOPJeAbG6ySRRMp44oT5tPujUwybyU0XR/5Xyc=";
+    })
+    # Linux-5.17: Kernel build uses -Wcast-function-type
+    (fetchBase64Patch {
+      url = "https://gerrit.openafs.org/changes/14946/revisions/449d1faf87e2841e80be38cf2b4a5cf5ff4df2d8/patch";
+      hash = "sha256-3bRTHYeMRIleLhob56m2Xt0dWzIMDo3QrytY0K1/q7c=";
+    })
+  ];
+
   hardeningDisable = [ "pic" ];
 
   configureFlags = [
@@ -70,6 +103,6 @@ stdenv.mkDerivation {
     license = licenses.ipl10;
     platforms = platforms.linux;
     maintainers = with maintainers; [ maggesi spacefrogg ];
-    broken = kernel.kernelOlder "3.18" || kernel.kernelAtLeast "5.17" || kernel.isHardened;
+    broken = kernel.isHardened;
   };
 }
diff --git a/pkgs/servers/openafs/1.9/module.nix b/pkgs/servers/openafs/1.9/module.nix
index 9799454223b25..ec1b8e1d67e5b 100644
--- a/pkgs/servers/openafs/1.9/module.nix
+++ b/pkgs/servers/openafs/1.9/module.nix
@@ -59,6 +59,6 @@ in stdenv.mkDerivation {
     license = licenses.ipl10;
     platforms = platforms.linux;
     maintainers = [ maintainers.maggesi maintainers.spacefrogg ];
-    broken = versionOlder kernel.version "3.18" || kernel.kernelAtLeast "5.15" || kernel.isHardened;
+    broken = kernel.kernelAtLeast "5.15" || kernel.isHardened;
   };
 }
diff --git a/pkgs/servers/owncast/default.nix b/pkgs/servers/owncast/default.nix
index 774f51bc0f630..313d17e8e8d42 100644
--- a/pkgs/servers/owncast/default.nix
+++ b/pkgs/servers/owncast/default.nix
@@ -15,7 +15,7 @@ buildGoModule rec {
 
   propagatedBuildInputs = [ ffmpeg ];
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   preInstall = ''
     mkdir -p $out
diff --git a/pkgs/servers/plex/raw.nix b/pkgs/servers/plex/raw.nix
index 861d66b3d04f3..dc65911a06652 100644
--- a/pkgs/servers/plex/raw.nix
+++ b/pkgs/servers/plex/raw.nix
@@ -12,16 +12,16 @@
 # server, and the FHS userenv and corresponding NixOS module should
 # automatically pick up the changes.
 stdenv.mkDerivation rec {
-  version = "1.25.8.5663-e071c3d62";
+  version = "1.26.0.5715-8cf78dab3";
   pname = "plexmediaserver";
 
   # Fetch the source
   src = if stdenv.hostPlatform.system == "aarch64-linux" then fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_arm64.deb";
-    hash = "sha256-w9k8phyiA/sK+zRlK8PAciebt5UJvmVFA+cfx4r78Gs=";
+    hash = "sha256-Ou5DlQPk+zAt/wE5Nry4nzLaR1Id6tQdwl73qawig4M=";
   } else fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_amd64.deb";
-    hash = "sha256-baOofe+7PZfLhwIXrB1ibKkkEJRVivgGHDN4phlg57Q=";
+    hash = "sha256-DQbRobiJwT7Xr4NzKS2iQOszOsd/bS/+kJ4p+QUVXfg=";
   };
 
   outputs = [ "out" "basedb" ];
diff --git a/pkgs/servers/plik/default.nix b/pkgs/servers/plik/default.nix
index 7c9cd7d00eb13..4572573d16f2e 100644
--- a/pkgs/servers/plik/default.nix
+++ b/pkgs/servers/plik/default.nix
@@ -21,6 +21,6 @@ in
     mv plik-*/webapp/dist $out/libexec/plikd/webapp
     cp ${programs.plikd-unwrapped}/bin/plikd $out/libexec/plikd/bin/plikd
     makeWrapper $out/libexec/plikd/bin/plikd $out/bin/plikd \
-      --run "cd $out/libexec/plikd/bin"
+      --chdir "$out/libexec/plikd/bin"
   '';
 }
diff --git a/pkgs/servers/postfixadmin/default.nix b/pkgs/servers/postfixadmin/default.nix
index e561b3931f736..cd60f3d9dadbd 100644
--- a/pkgs/servers/postfixadmin/default.nix
+++ b/pkgs/servers/postfixadmin/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "postfixadmin";
-  version = "3.3.10";
+  version = "3.3.11";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "0xck6df96r4z8k2j8x20b8h2qvmzyrfsya82s4i7hfhrxii92d3w";
+    sha256 = "sha256-jOO0AVcCmBxHLaWQOwvt7OFKAcAYPTVHTdQz1ZaYIqE=";
   };
 
   installPhase = ''
diff --git a/pkgs/servers/ps3netsrv/default.nix b/pkgs/servers/ps3netsrv/default.nix
index 12c4e2545a5a3..91f24a42927b5 100644
--- a/pkgs/servers/ps3netsrv/default.nix
+++ b/pkgs/servers/ps3netsrv/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation {
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ makefu ];
+    mainProgram = "ps3netsrv++";
   };
 }
diff --git a/pkgs/servers/psitransfer/default.nix b/pkgs/servers/psitransfer/default.nix
index d1d1e13d1b83d..791f656eeba92 100644
--- a/pkgs/servers/psitransfer/default.nix
+++ b/pkgs/servers/psitransfer/default.nix
@@ -7,11 +7,14 @@
 { stdenv
 , pkgs
 , lib
-, nodejs
+, nodejs-14_x
 , fetchzip
 }:
 
 let
+  # nodejs-16_x fails with ENOTCACHED
+  nodejs = nodejs-14_x;
+
   nodePackages = import ./node-composition.nix {
     inherit pkgs nodejs;
     inherit (stdenv.hostPlatform) system;
diff --git a/pkgs/servers/psitransfer/node-packages.nix b/pkgs/servers/psitransfer/node-packages.nix
index 7453a4ff1b8a7..126fe854b2813 100644
--- a/pkgs/servers/psitransfer/node-packages.nix
+++ b/pkgs/servers/psitransfer/node-packages.nix
@@ -4,40 +4,40 @@
 
 let
   sources = {
-    "@babel/helper-validator-identifier-7.15.7" = {
+    "@babel/helper-validator-identifier-7.16.7" = {
       name = "_at_babel_slash_helper-validator-identifier";
       packageName = "@babel/helper-validator-identifier";
-      version = "7.15.7";
+      version = "7.16.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz";
-        sha512 = "K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==";
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz";
+        sha512 = "hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==";
       };
     };
-    "@babel/parser-7.16.4" = {
+    "@babel/parser-7.17.8" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.16.4";
+      version = "7.17.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz";
-        sha512 = "6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz";
+        sha512 = "BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==";
       };
     };
-    "@babel/types-7.16.0" = {
+    "@babel/types-7.17.0" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.16.0";
+      version = "7.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz";
-        sha512 = "PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz";
+        sha512 = "TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==";
       };
     };
-    "accepts-1.3.7" = {
+    "accepts-1.3.8" = {
       name = "accepts";
       packageName = "accepts";
-      version = "1.3.7";
+      version = "1.3.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz";
-        sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
+        url = "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz";
+        sha512 = "PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==";
       };
     };
     "acorn-7.4.1" = {
@@ -103,13 +103,13 @@ let
         sha512 = "TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==";
       };
     };
-    "async-3.2.2" = {
+    "async-3.2.3" = {
       name = "async";
       packageName = "async";
-      version = "3.2.2";
+      version = "3.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-3.2.2.tgz";
-        sha512 = "H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==";
+        url = "https://registry.npmjs.org/async/-/async-3.2.3.tgz";
+        sha512 = "spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==";
       };
     };
     "axios-0.21.4" = {
@@ -166,13 +166,13 @@ let
         sha512 = "1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==";
       };
     };
-    "body-parser-1.19.0" = {
+    "body-parser-1.19.2" = {
       name = "body-parser";
       packageName = "body-parser";
-      version = "1.19.0";
+      version = "1.19.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz";
-        sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==";
+        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz";
+        sha512 = "SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==";
       };
     };
     "brace-expansion-1.1.11" = {
@@ -211,13 +211,13 @@ let
         sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
       };
     };
-    "bytes-3.1.0" = {
+    "bytes-3.1.2" = {
       name = "bytes";
       packageName = "bytes";
-      version = "3.1.0";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz";
-        sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
+        url = "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz";
+        sha512 = "/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==";
       };
     };
     "call-bind-1.0.2" = {
@@ -292,13 +292,13 @@ let
         sha512 = "vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==";
       };
     };
-    "content-disposition-0.5.3" = {
+    "content-disposition-0.5.4" = {
       name = "content-disposition";
       packageName = "content-disposition";
-      version = "0.5.3";
+      version = "0.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz";
-        sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==";
+        url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz";
+        sha512 = "FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==";
       };
     };
     "content-type-1.0.4" = {
@@ -310,13 +310,13 @@ let
         sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==";
       };
     };
-    "cookie-0.4.0" = {
+    "cookie-0.4.2" = {
       name = "cookie";
       packageName = "cookie";
-      version = "0.4.0";
+      version = "0.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz";
-        sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==";
+        url = "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz";
+        sha512 = "aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==";
       };
     };
     "cookie-signature-1.0.6" = {
@@ -391,13 +391,13 @@ let
         sha512 = "OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==";
       };
     };
-    "debug-4.3.3" = {
+    "debug-4.3.4" = {
       name = "debug";
       packageName = "debug";
-      version = "4.3.3";
+      version = "4.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz";
-        sha512 = "/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==";
+        url = "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz";
+        sha512 = "PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==";
       };
     };
     "depd-1.1.2" = {
@@ -481,13 +481,13 @@ let
         sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
       };
     };
-    "express-4.17.1" = {
+    "express-4.17.3" = {
       name = "express";
       packageName = "express";
-      version = "4.17.1";
+      version = "4.17.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz";
-        sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==";
+        url = "https://registry.npmjs.org/express/-/express-4.17.3.tgz";
+        sha512 = "yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==";
       };
     };
     "finalhandler-1.1.2" = {
@@ -499,13 +499,13 @@ let
         sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
       };
     };
-    "follow-redirects-1.14.5" = {
+    "follow-redirects-1.14.9" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
-      version = "1.14.5";
+      version = "1.14.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz";
-        sha512 = "wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==";
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz";
+        sha512 = "MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==";
       };
     };
     "forwarded-0.2.0" = {
@@ -589,13 +589,13 @@ let
         sha512 = "lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==";
       };
     };
-    "graceful-fs-4.2.8" = {
+    "graceful-fs-4.2.9" = {
       name = "graceful-fs";
       packageName = "graceful-fs";
-      version = "4.2.8";
+      version = "4.2.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz";
-        sha512 = "qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==";
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz";
+        sha512 = "NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==";
       };
     };
     "has-1.0.3" = {
@@ -607,13 +607,13 @@ let
         sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
       };
     };
-    "has-symbols-1.0.2" = {
+    "has-symbols-1.0.3" = {
       name = "has-symbols";
       packageName = "has-symbols";
-      version = "1.0.2";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz";
-        sha512 = "chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==";
+        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz";
+        sha512 = "l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==";
       };
     };
     "has-tostringtag-1.0.0" = {
@@ -625,24 +625,6 @@ let
         sha512 = "kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==";
       };
     };
-    "http-errors-1.7.2" = {
-      name = "http-errors";
-      packageName = "http-errors";
-      version = "1.7.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz";
-        sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==";
-      };
-    };
-    "http-errors-1.7.3" = {
-      name = "http-errors";
-      packageName = "http-errors";
-      version = "1.7.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz";
-        sha512 = "ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==";
-      };
-    };
     "http-errors-1.8.1" = {
       name = "http-errors";
       packageName = "http-errors";
@@ -679,15 +661,6 @@ let
         sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
       };
     };
-    "inherits-2.0.3" = {
-      name = "inherits";
-      packageName = "inherits";
-      version = "2.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz";
-        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
-      };
-    };
     "inherits-2.0.4" = {
       name = "inherits";
       packageName = "inherits";
@@ -706,13 +679,13 @@ let
         sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
       };
     };
-    "is-core-module-2.8.0" = {
+    "is-core-module-2.8.1" = {
       name = "is-core-module";
       packageName = "is-core-module";
-      version = "2.8.0";
+      version = "2.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz";
-        sha512 = "vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==";
+        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz";
+        sha512 = "SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==";
       };
     };
     "is-expression-4.0.0" = {
@@ -886,31 +859,31 @@ let
         sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
       };
     };
-    "mime-db-1.51.0" = {
+    "mime-db-1.52.0" = {
       name = "mime-db";
       packageName = "mime-db";
-      version = "1.51.0";
+      version = "1.52.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz";
-        sha512 = "5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==";
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz";
+        sha512 = "sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==";
       };
     };
-    "mime-types-2.1.34" = {
+    "mime-types-2.1.35" = {
       name = "mime-types";
       packageName = "mime-types";
-      version = "2.1.34";
+      version = "2.1.35";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz";
-        sha512 = "6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==";
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz";
+        sha512 = "ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==";
       };
     };
-    "minimatch-3.0.4" = {
+    "minimatch-3.1.2" = {
       name = "minimatch";
       packageName = "minimatch";
-      version = "3.0.4";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
-        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz";
+        sha512 = "J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==";
       };
     };
     "morgan-1.10.0" = {
@@ -931,22 +904,22 @@ let
         sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
       };
     };
-    "ms-2.1.1" = {
+    "ms-2.1.2" = {
       name = "ms";
       packageName = "ms";
-      version = "2.1.1";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz";
-        sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==";
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
+        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
       };
     };
-    "ms-2.1.2" = {
+    "ms-2.1.3" = {
       name = "ms";
       packageName = "ms";
-      version = "2.1.2";
+      version = "2.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
-        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz";
+        sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==";
       };
     };
     "mz-2.7.0" = {
@@ -958,13 +931,13 @@ let
         sha512 = "z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==";
       };
     };
-    "negotiator-0.6.2" = {
+    "negotiator-0.6.3" = {
       name = "negotiator";
       packageName = "negotiator";
-      version = "0.6.2";
+      version = "0.6.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz";
-        sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
+        url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz";
+        sha512 = "+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==";
       };
     };
     "normalize-path-3.0.0" = {
@@ -1183,13 +1156,13 @@ let
         sha512 = "yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==";
       };
     };
-    "qs-6.7.0" = {
+    "qs-6.9.7" = {
       name = "qs";
       packageName = "qs";
-      version = "6.7.0";
+      version = "6.9.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz";
-        sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
+        url = "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz";
+        sha512 = "IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==";
       };
     };
     "range-parser-1.2.1" = {
@@ -1201,13 +1174,13 @@ let
         sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
       };
     };
-    "raw-body-2.4.0" = {
+    "raw-body-2.4.3" = {
       name = "raw-body";
       packageName = "raw-body";
-      version = "2.4.0";
+      version = "2.4.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz";
-        sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==";
+        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz";
+        sha512 = "UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==";
       };
     };
     "readable-stream-2.3.7" = {
@@ -1228,13 +1201,13 @@ let
         sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
       };
     };
-    "resolve-1.20.0" = {
+    "resolve-1.22.0" = {
       name = "resolve";
       packageName = "resolve";
-      version = "1.20.0";
+      version = "1.22.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz";
-        sha512 = "wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==";
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz";
+        sha512 = "Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==";
       };
     };
     "safe-buffer-5.1.2" = {
@@ -1246,6 +1219,15 @@ let
         sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
       };
     };
+    "safe-buffer-5.2.1" = {
+      name = "safe-buffer";
+      packageName = "safe-buffer";
+      version = "5.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
+        sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
+      };
+    };
     "safer-buffer-2.1.2" = {
       name = "safer-buffer";
       packageName = "safer-buffer";
@@ -1255,31 +1237,22 @@ let
         sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
       };
     };
-    "send-0.17.1" = {
+    "send-0.17.2" = {
       name = "send";
       packageName = "send";
-      version = "0.17.1";
+      version = "0.17.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz";
-        sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
+        url = "https://registry.npmjs.org/send/-/send-0.17.2.tgz";
+        sha512 = "UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==";
       };
     };
-    "serve-static-1.14.1" = {
+    "serve-static-1.14.2" = {
       name = "serve-static";
       packageName = "serve-static";
-      version = "1.14.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz";
-        sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
-      };
-    };
-    "setprototypeof-1.1.1" = {
-      name = "setprototypeof";
-      packageName = "setprototypeof";
-      version = "1.1.1";
+      version = "1.14.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz";
-        sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
+        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz";
+        sha512 = "+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==";
       };
     };
     "setprototypeof-1.2.0" = {
@@ -1309,6 +1282,15 @@ let
         sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
       };
     };
+    "supports-preserve-symlinks-flag-1.0.0" = {
+      name = "supports-preserve-symlinks-flag";
+      packageName = "supports-preserve-symlinks-flag";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz";
+        sha512 = "ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==";
+      };
+    };
     "tar-stream-2.2.0" = {
       name = "tar-stream";
       packageName = "tar-stream";
@@ -1354,15 +1336,6 @@ let
         sha1 = "82445234ff5edc4c00ad4211aa59f96f12354f84";
       };
     };
-    "toidentifier-1.0.0" = {
-      name = "toidentifier";
-      packageName = "toidentifier";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz";
-        sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
-      };
-    };
     "toidentifier-1.0.1" = {
       name = "toidentifier";
       packageName = "toidentifier";
@@ -1484,10 +1457,10 @@ in
       sha256 = "2421deb23c075381476ff3bd3216ac26610a2b403b02e82d47ac214cb4f8dbe2";
     };
     dependencies = [
-      sources."@babel/helper-validator-identifier-7.15.7"
-      sources."@babel/parser-7.16.4"
-      sources."@babel/types-7.16.0"
-      sources."accepts-1.3.7"
+      sources."@babel/helper-validator-identifier-7.16.7"
+      sources."@babel/parser-7.17.8"
+      sources."@babel/types-7.17.0"
+      sources."accepts-1.3.8"
       sources."acorn-7.4.1"
       sources."any-promise-1.3.0"
       sources."archiver-4.0.2"
@@ -1499,19 +1472,17 @@ in
       sources."array-flatten-1.1.1"
       sources."asap-2.0.6"
       sources."assert-never-1.2.1"
-      sources."async-3.2.2"
+      sources."async-3.2.3"
       sources."axios-0.21.4"
       sources."babel-walk-3.0.0-canary-5"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."basic-auth-2.0.1"
       sources."bl-4.1.0"
-      (sources."body-parser-1.19.0" // {
+      (sources."body-parser-1.19.2" // {
         dependencies = [
-          sources."bytes-3.1.0"
+          sources."bytes-3.1.2"
           sources."debug-2.6.9"
-          sources."http-errors-1.7.2"
-          sources."inherits-2.0.3"
         ];
       })
       sources."brace-expansion-1.1.11"
@@ -1534,16 +1505,20 @@ in
       })
       sources."concat-map-0.0.1"
       sources."constantinople-4.0.1"
-      sources."content-disposition-0.5.3"
+      (sources."content-disposition-0.5.4" // {
+        dependencies = [
+          sources."safe-buffer-5.2.1"
+        ];
+      })
       sources."content-type-1.0.4"
-      sources."cookie-0.4.0"
+      sources."cookie-0.4.2"
       sources."cookie-signature-1.0.6"
       sources."core-util-is-1.0.3"
       sources."cors-2.8.5"
       sources."crc-3.8.0"
       sources."crc32-stream-3.0.1"
       sources."crypto-js-4.1.1"
-      (sources."debug-4.3.3" // {
+      (sources."debug-4.3.4" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
@@ -1556,9 +1531,10 @@ in
       sources."end-of-stream-1.4.4"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
-      (sources."express-4.17.1" // {
+      (sources."express-4.17.3" // {
         dependencies = [
           sources."debug-2.6.9"
+          sources."safe-buffer-5.2.1"
         ];
       })
       (sources."finalhandler-1.1.2" // {
@@ -1566,7 +1542,7 @@ in
           sources."debug-2.6.9"
         ];
       })
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.9"
       sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."fs-constants-1.0.0"
@@ -1576,22 +1552,17 @@ in
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
       sources."glob-7.2.0"
-      sources."graceful-fs-4.2.8"
+      sources."graceful-fs-4.2.9"
       sources."has-1.0.3"
-      sources."has-symbols-1.0.2"
+      sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
-      (sources."http-errors-1.8.1" // {
-        dependencies = [
-          sources."setprototypeof-1.2.0"
-          sources."toidentifier-1.0.1"
-        ];
-      })
+      sources."http-errors-1.8.1"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ipaddr.js-1.9.1"
-      sources."is-core-module-2.8.0"
+      sources."is-core-module-2.8.1"
       sources."is-expression-4.0.0"
       sources."is-promise-2.2.2"
       sources."is-regex-1.1.4"
@@ -1619,9 +1590,9 @@ in
       })
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.51.0"
-      sources."mime-types-2.1.34"
-      sources."minimatch-3.0.4"
+      sources."mime-db-1.52.0"
+      sources."mime-types-2.1.35"
+      sources."minimatch-3.1.2"
       (sources."morgan-1.10.0" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -1630,7 +1601,7 @@ in
       })
       sources."ms-2.0.0"
       sources."mz-2.7.0"
-      sources."negotiator-0.6.2"
+      sources."negotiator-0.6.3"
       sources."normalize-path-3.0.0"
       sources."object-assign-4.1.1"
       sources."on-finished-2.3.0"
@@ -1655,40 +1626,38 @@ in
       sources."pug-runtime-3.0.1"
       sources."pug-strip-comments-2.0.0"
       sources."pug-walk-2.0.0"
-      sources."qs-6.7.0"
+      sources."qs-6.9.7"
       sources."range-parser-1.2.1"
-      (sources."raw-body-2.4.0" // {
+      (sources."raw-body-2.4.3" // {
         dependencies = [
-          sources."bytes-3.1.0"
-          sources."http-errors-1.7.2"
-          sources."inherits-2.0.3"
+          sources."bytes-3.1.2"
         ];
       })
       sources."readable-stream-3.6.0"
-      sources."resolve-1.20.0"
+      sources."resolve-1.22.0"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
-      (sources."send-0.17.1" // {
+      (sources."send-0.17.2" // {
         dependencies = [
           (sources."debug-2.6.9" // {
             dependencies = [
               sources."ms-2.0.0"
             ];
           })
-          sources."http-errors-1.7.3"
-          sources."ms-2.1.1"
+          sources."ms-2.1.3"
         ];
       })
-      sources."serve-static-1.14.1"
-      sources."setprototypeof-1.1.1"
+      sources."serve-static-1.14.2"
+      sources."setprototypeof-1.2.0"
       sources."statuses-1.5.0"
       sources."string_decoder-1.1.1"
+      sources."supports-preserve-symlinks-flag-1.0.0"
       sources."tar-stream-2.2.0"
       sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
       sources."to-fast-properties-2.0.0"
       sources."to-object-reducer-1.0.1"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."token-stream-1.0.0"
       sources."type-is-1.6.18"
       sources."unpipe-1.0.0"
diff --git a/pkgs/servers/pulseaudio/add-option-for-installation-sysconfdir.patch b/pkgs/servers/pulseaudio/add-option-for-installation-sysconfdir.patch
index dd4de7321e958..bb56eb13e88a1 100644
--- a/pkgs/servers/pulseaudio/add-option-for-installation-sysconfdir.patch
+++ b/pkgs/servers/pulseaudio/add-option-for-installation-sysconfdir.patch
@@ -1,9 +1,6 @@
-
-diff --git a/meson.build b/meson.build
-index 86af7243e..e2d48ab94 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -65,6 +65,11 @@ datadir = join_paths(prefix, get_option('datadir'))
+@@ -67,6 +67,11 @@ datadir = join_paths(prefix, get_option('datadir'))
  localedir = join_paths(prefix, get_option('localedir'))
  localstatedir = join_paths(prefix, get_option('localstatedir'))
  sysconfdir = join_paths(prefix, get_option('sysconfdir'))
@@ -14,8 +11,8 @@ index 86af7243e..e2d48ab94 100644
 +endif
  privlibdir = join_paths(libdir, 'pulseaudio')
  
- alsadatadir = get_option('alsadatadir')
-@@ -75,6 +80,11 @@ endif
+ if host_machine.system() == 'windows'
+@@ -82,6 +87,11 @@ endif
  pkgconfigdir = join_paths(libdir, 'pkgconfig')
  pulselibexecdir = join_paths(libexecdir, 'pulse')
  pulsesysconfdir = join_paths(sysconfdir, 'pulse')
@@ -27,11 +24,9 @@ index 86af7243e..e2d48ab94 100644
  
  modlibexecdir = get_option('modlibexecdir')
  if modlibexecdir == ''
-diff --git a/meson_options.txt b/meson_options.txt
-index 824f24e08..59a2b57ab 100644
 --- a/meson_options.txt
 +++ b/meson_options.txt
-@@ -66,6 +66,9 @@ option('bashcompletiondir',
+@@ -72,6 +72,9 @@ option('bashcompletiondir',
  option('zshcompletiondir',
         type : 'string',
         description : 'Directory for zsh completion scripts ["no" disables]')
@@ -41,11 +36,18 @@ index 824f24e08..59a2b57ab 100644
  
  # Optional features
  
-diff --git a/src/daemon/meson.build b/src/daemon/meson.build
-index 9c9f807e7..425cecb46 100644
 --- a/src/daemon/meson.build
 +++ b/src/daemon/meson.build
-@@ -53,7 +53,7 @@ if x11_dep.found()
+@@ -52,7 +52,7 @@ if x11_dep.found()
+     output : '00-pulseaudio-x11',
+     configuration : conf,
+     install : true,
+-    install_dir : join_paths(sysconfdir, 'xdg', 'Xwayland-session.d'),
++    install_dir : join_paths(sysconfdir_install, 'xdg', 'Xwayland-session.d'),
+   )
+ 
+   desktop_file = i18n.merge_file(
+@@ -61,7 +61,7 @@ if x11_dep.found()
      po_dir : po_dir,
      type : 'desktop',
      install : true,
@@ -54,7 +56,7 @@ index 9c9f807e7..425cecb46 100644
    )
  
    desktop_utils = find_program('desktop-file-validate', required: false)
-@@ -85,7 +85,7 @@ custom_target('daemon.conf',
+@@ -93,7 +93,7 @@ custom_target('daemon.conf',
    command : [m4, '@INPUT@'],
    build_by_default : true,
    install : true,
@@ -63,7 +65,7 @@ index 9c9f807e7..425cecb46 100644
  )
  
  default_conf = configuration_data()
-@@ -111,7 +111,7 @@ custom_target('default.pa',
+@@ -117,7 +117,7 @@ custom_target('default.pa',
    command : [m4, '@INPUT@'],
    build_by_default : true,
    install : true,
@@ -72,7 +74,7 @@ index 9c9f807e7..425cecb46 100644
  )
  
  system_conf = configuration_data()
-@@ -132,12 +132,12 @@ custom_target('system.pa',
+@@ -136,12 +136,12 @@ custom_target('system.pa',
    command : [m4, '@INPUT@'],
    build_by_default : true,
    install : true,
@@ -87,11 +89,9 @@ index 9c9f807e7..425cecb46 100644
    )
  endif
  
-diff --git a/src/pulse/meson.build b/src/pulse/meson.build
-index aaebff53e..05a29a0d0 100644
 --- a/src/pulse/meson.build
 +++ b/src/pulse/meson.build
-@@ -130,5 +130,5 @@ client_conf_file = configure_file(
+@@ -134,5 +134,5 @@ client_conf_file = configure_file(
    input : 'client.conf.in',
    output : 'client.conf',
    configuration : client_conf,
diff --git a/pkgs/servers/pulseaudio/correct-ldflags.patch b/pkgs/servers/pulseaudio/correct-ldflags.patch
deleted file mode 100644
index 174cb8b4f7469..0000000000000
--- a/pkgs/servers/pulseaudio/correct-ldflags.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/meson.build b/meson.build
-index 45df103f0..d57d13172 100644
---- a/meson.build
-+++ b/meson.build
-@@ -342,7 +342,7 @@ cdata.set('MESON_BUILD', 1)
- # On ELF systems we don't want the libraries to be unloaded since we don't clean them up properly,
- # so we request the nodelete flag to be enabled.
- # On other systems, we don't really know how to do that, but it's welcome if somebody can tell.
--nodelete_link_args = ['-Wl,-z,nodelete']
-+nodelete_link_args = cc.get_supported_link_arguments(['-Wl,-z,nodelete'])
- 
- # Code coverage
- 
diff --git a/pkgs/servers/pulseaudio/default.nix b/pkgs/servers/pulseaudio/default.nix
index 664d9ef9f753b..b0ccd5f76354d 100644
--- a/pkgs/servers/pulseaudio/default.nix
+++ b/pkgs/servers/pulseaudio/default.nix
@@ -1,9 +1,10 @@
-{ lib, stdenv, fetchurl, pkg-config, autoreconfHook
+{ lib, stdenv, fetchurl, fetchpatch, pkg-config
 , libsndfile, libtool, makeWrapper, perlPackages
 , xorg, libcap, alsa-lib, glib, dconf
 , avahi, libjack2, libasyncns, lirc, dbus
 , sbc, bluez5, udev, openssl, fftwFloat
 , soxr, speexdsp, systemd, webrtc-audio-processing
+, check, meson, ninja, m4
 
 , x11Support ? false
 
@@ -31,23 +32,29 @@
 
 stdenv.mkDerivation rec {
   pname = "${if libOnly then "lib" else ""}pulseaudio";
-  version = "14.2";
+  version = "15.0";
 
   src = fetchurl {
     url = "http://freedesktop.org/software/pulseaudio/releases/pulseaudio-${version}.tar.xz";
-    sha256 = "sha256-ddP3dCwa5EkEmkyIkA5FS4s1DsqoxUTzSIolYqn/ZvE=";
+    sha256 = "pAuIejupjMJpdusRvbZhOYjxRbGQJNG2VVxqA8nLoaA=";
   };
 
+  patches = [
+    # Install sysconfdir files inside of the nix store,
+    # but use a conventional runtime sysconfdir outside the store
+    ./add-option-for-installation-sysconfdir.patch
+  ];
+
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ pkg-config autoreconfHook makeWrapper perlPackages.perl perlPackages.XMLParser ]
+  nativeBuildInputs = [ pkg-config meson ninja makeWrapper perlPackages.perl perlPackages.XMLParser m4 ]
     ++ lib.optionals stdenv.isLinux [ glib ];
 
   propagatedBuildInputs =
     lib.optionals stdenv.isLinux [ libcap ];
 
   buildInputs =
-    [ libtool libsndfile soxr speexdsp fftwFloat ]
+    [ libtool libsndfile soxr speexdsp fftwFloat check ]
     ++ lib.optionals stdenv.isLinux [ glib dbus ]
     ++ lib.optionals stdenv.isDarwin [ AudioUnit Cocoa CoreServices ]
     ++ lib.optionals (!libOnly) (
@@ -62,53 +69,45 @@ stdenv.mkDerivation rec {
       ++ lib.optional zeroconfSupport  avahi
   );
 
-  prePatch = ''
-    substituteInPlace bootstrap.sh \
-      --replace pkg-config $PKG_CONFIG
-  '';
-
-  autoreconfPhase = ''
-    # Performs an autoreconf
-    patchShebangs bootstrap.sh
-    NOCONFIGURE=1 ./bootstrap.sh
-
-    # Move the udev rules under $(prefix).
-    sed -i "src/Makefile.in" \
-        -e "s|udevrulesdir[[:blank:]]*=.*$|udevrulesdir = $out/lib/udev/rules.d|g"
-
-    # don't install proximity-helper as root and setuid
-    sed -i "src/Makefile.in" \
-        -e "s|chown root|true |" \
-        -e "s|chmod r+s |true |"
+  mesonFlags = [
+    "-Dalsa=${if !libOnly then "enabled" else "disabled"}"
+    "-Dasyncns=${if !libOnly then "enabled" else "disabled"}"
+    "-Davahi=${if zeroconfSupport then "enabled" else "disabled"}"
+    "-Dbluez5=${if !libOnly then "enabled" else "disabled"}"
+    "-Dbluez5-gstreamer=disabled"
+    "-Ddatabase=simple"
+    "-Ddoxygen=false"
+    "-Delogind=disabled"
+    # gsettings does not support cross-compilation
+    "-Dgsettings=${if stdenv.buildPlatform == stdenv.hostPlatform then "enabled" else "disabled"}"
+    "-Dgstreamer=disabled"
+    "-Dgtk=disabled"
+    "-Djack=${if jackaudioSupport && !libOnly then "enabled" else "disabled"}"
+    "-Dlirc=${if remoteControlSupport then "enabled" else "disabled"}"
+    "-Dopenssl=${if airtunesSupport then "enabled" else "disabled"}"
+    "-Dorc=disabled"
+    "-Dsystemd=${if useSystemd && !libOnly then "enabled" else "disabled"}"
+    "-Dtcpwrap=disabled"
+    "-Dudev=${if !libOnly then "enabled" else "disabled"}"
+    "-Dvalgrind=disabled"
+    "-Dwebrtc-aec=${if !libOnly then "enabled" else "disabled"}"
+    "-Dx11=${if x11Support then "enabled" else "disabled"}"
+
+    "-Dlocalstatedir=/var"
+    "-Dsysconfdir=/etc"
+    "-Dsysconfdir_install=${placeholder "out"}/etc"
+    "-Dudevrulesdir=${placeholder "out"}/lib/udev/rules.d"
+  ]
+    ++ lib.optional (stdenv.isLinux && useSystemd) "-Dsystemduserunitdir=${placeholder "out"}/lib/systemd/user"
+    ;
+
+  doCheck = true;
+  preCheck = ''
+    export HOME=$(mktemp -d)
   '';
 
-  configureFlags =
-    [ "--disable-solaris"
-      "--disable-jack"
-      "--disable-oss-output"
-    ] ++ lib.optional (!ossWrapper) "--disable-oss-wrapper" ++
-    [ "--localstatedir=/var"
-      "--sysconfdir=/etc"
-      "--with-access-group=audio"
-      "--with-bash-completion-dir=${placeholder "out"}/share/bash-completions/completions"
-    ]
-    ++ lib.optional (jackaudioSupport && !libOnly) "--enable-jack"
-    ++ lib.optionals stdenv.isDarwin [
-      "--disable-neon-opt"
-    ]
-    ++ lib.optional (stdenv.isLinux && useSystemd) "--with-systemduserunitdir=${placeholder "out"}/lib/systemd/user"
-    ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "--disable-gsettings";
-
-  enableParallelBuilding = true;
-
-  installFlags =
-    [ "sysconfdir=${placeholder "out"}/etc"
-      "pulseconfdir=${placeholder "out"}/etc/pulse"
-    ];
-
   postInstall = lib.optionalString libOnly ''
     rm -rf $out/{bin,share,etc,lib/{pulse-*,systemd}}
-    sed 's|-lltdl|-L${libtool.lib}/lib -lltdl|' -i $out/lib/pulseaudio/libpulsecore-${version}.la
   ''
     + ''
     moveToOutput lib/cmake "$dev"
diff --git a/pkgs/servers/pulseaudio/pali.nix b/pkgs/servers/pulseaudio/pali.nix
deleted file mode 100644
index b07c2fd4ac70a..0000000000000
--- a/pkgs/servers/pulseaudio/pali.nix
+++ /dev/null
@@ -1,219 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, fetchFromGitLab
-, meson
-, ninja
-, pkg-config
-, libsndfile
-, libtool
-, makeWrapper
-, perlPackages
-, xorg
-, libcap
-, alsa-lib
-, glib
-, dconf
-, avahi
-, libjack2
-, libasyncns
-, lirc
-, dbus
-, sbc
-, bluez5
-, udev
-, openssl
-, fftwFloat
-, soxr
-, speexdsp
-, systemd
-, webrtc-audio-processing
-, gtk3
-, tdb
-, orc
-, check
-, gettext
-, gst_all_1
-, libopenaptx
-
-, x11Support ? true
-
-, # Whether to support the JACK sound system as a backend.
-  jackaudioSupport ? false
-
-, airtunesSupport ? true
-
-, bluetoothSupport ? true
-
-, remoteControlSupport ? true
-
-, zeroconfSupport ? true
-
-, # Whether to build only the library.
-  libOnly ? false
-
-# Building from Git source
-, fromGit ? true
-
-, CoreServices
-, AudioUnit
-, Cocoa
-}:
-
-stdenv.mkDerivation rec {
-  pname = "${if libOnly then "lib" else ""}pulseaudio-hsphfpd";
-  version = "13.99.2";
-
-  outputs = [ "out" "dev" ];
-
-  # https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/288
-  src = fetchFromGitLab {
-    domain = "gitlab.freedesktop.org";
-    owner = "pali";
-    repo = "pulseaudio";
-    rev = "5336b39e7e03cf50386e719e287a712b59730eb8";
-    sha256 = "0vc0i5rzkns3xw6y2q0c94p2qdi5k3mgjvhicgq1b0py2qxmji16";
-  };
-
-  patches = [
-    ./add-option-for-installation-sysconfdir.patch
-    ./correct-ldflags.patch
-  ];
-
-  # Says it should be v${version} but it's parsing logic is broken
-  preConfigure = lib.optionalString fromGit ''
-    sed -i "s@version : run_command.*@version: '${version}',@" meson.build
-  '';
-
-  nativeBuildInputs = [
-    gettext
-    makeWrapper
-    meson
-    ninja
-    pkg-config
-    perlPackages.perl
-    perlPackages.XMLParser
-  ];
-
-  checkInputs = [
-    check
-  ];
-
-  propagatedBuildInputs = lib.optional stdenv.isLinux libcap;
-
-  buildInputs = [
-    libopenaptx
-    fftwFloat
-    libsndfile
-    libtool
-    orc
-    soxr
-    speexdsp
-    tdb
-    sbc
-    gst_all_1.gst-plugins-base
-  ] ++ lib.optionals bluetoothSupport [
-    bluez5
-  ] ++ lib.optionals stdenv.isLinux [
-    dbus
-    glib
-    gtk3
-    libasyncns
-  ] ++ lib.optionals stdenv.isDarwin [
-    AudioUnit
-    Cocoa
-    CoreServices
-  ] ++ lib.optionals (!libOnly) (
-    lib.optionals x11Support [
-      xorg.libXi
-      xorg.libXtst
-      xorg.xlibsWrapper
-    ] ++ lib.optionals stdenv.isLinux [
-      alsa-lib
-      systemd
-      udev
-    ] ++ lib.optional airtunesSupport openssl
-    ++ lib.optional jackaudioSupport libjack2
-    ++ lib.optional remoteControlSupport lirc
-    ++ lib.optional zeroconfSupport avahi
-    ++ [ webrtc-audio-processing ]
-  );
-
-  mesonFlags = [
-    "--localstatedir=/var"
-    "--sysconfdir=/etc"
-    "-Daccess_group=audio"
-    "-Dbashcompletiondir=${placeholder "out"}/share/bash-completions/completions"
-    "-Dman=false" # TODO: needs xmltoman; also doesn't check for this
-    "-Dsysconfdir_install=${placeholder "out"}/etc"
-    "-Dsystemduserunitdir=${placeholder "out"}/lib/systemd/user"
-    "-Dudevrulesdir=${placeholder "out"}/lib/udev/rules.d"
-    "-Dzshcompletiondir=${placeholder "out"}/share/zsh/site-functions"
-  ] ++ lib.optionals (!stdenv.isLinux) [
-    "-Dasyncns=disabled"
-    "-Ddbus=disabled"
-    "-Dglib=disabled"
-    "-Dgsettings=disabled"
-    "-Dgtk=disabled"
-  ] ++ lib.optionals (!stdenv.isLinux || libOnly) [
-    "-Dalsa=disabled"
-    "-Dsystemd=disabled"
-    "-Dudev=disabled"
-  ] ++ lib.optional libOnly "-Dwebrtc-aec=disabled"
-    ++ lib.optional (!x11Support) "-Dx11=disabled"
-    ++ lib.optional (!bluetoothSupport) "-Dbluez5=false"
-    ++ lib.optional (!airtunesSupport) "-Dopenssl=disabled"
-    ++ lib.optional (!jackaudioSupport) "-Djack=disabled"
-    ++ lib.optional (!remoteControlSupport) "-Dlirc=disabled"
-    ++ lib.optional (!zeroconfSupport) "-Davahi=disabled"
-    ++ lib.optional (!doCheck) "-Dtests=false";
-
-  # To create ~/.config/pulse
-  preCheck = ''
-    export HOME=$(mktemp -d)
-  '';
-
-  doCheck = true;
-
-  # not sure what the best practices are here -- can't seem to find a way
-  # for the compiler to bring in stdlib and stdio (etc.) properly
-  # the alternative is to copy the files from /usr/include to src, but there are
-  # probably a large number of files that would need to be copied (I stopped
-  # after the seventh)
-  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I/usr/include";
-
-  NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-framework CoreServices -framework Cocoa -framework AudioUnit";
-
-  postInstall = ''
-    moveToOutput lib/cmake "$dev"
-    rm -f $out/bin/qpaeq # this is packaged by the "qpaeq" package now, because of missing deps
-  '' + lib.optionalString libOnly ''
-    rm -rf $out/{bin,share,etc,lib/{pulse-*,systemd}}
-  '';
-
-  preFixup = lib.optionalString (stdenv.isLinux && !libOnly) ''
-    wrapProgram $out/libexec/pulse/gsettings-helper \
-     --prefix XDG_DATA_DIRS : "$out/share/gsettings-schemas/${pname}-${version}" \
-     --prefix GIO_EXTRA_MODULES : "${lib.getLib dconf}/lib/gio/modules"
-  '';
-
-  passthru = {
-    pulseDir = "lib/pulse-" + lib.versions.majorMinor version;
-  };
-
-  meta = with lib; {
-    description = "A featureful, general-purpose sound server";
-    homepage = "http://www.pulseaudio.org/";
-    license = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ lovek323 ];
-    platforms = platforms.unix;
-    longDescription = ''
-      PulseAudio is a sound system for POSIX OSes, meaning that it is
-      a proxy for your sound applications. It allows you to do advanced
-      operations on your sound data as it passes between your application
-      and your hardware. Things like transferring the audio to a different machine,
-      changing the sample format or channel count and mixing several sounds into one
-      are easily achieved using a sound server.
-    '';
-  };
-}
diff --git a/pkgs/servers/radicale/3.x.nix b/pkgs/servers/radicale/3.x.nix
index d0ed5cc97a647..9867922d85238 100644
--- a/pkgs/servers/radicale/3.x.nix
+++ b/pkgs/servers/radicale/3.x.nix
@@ -2,13 +2,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "radicale";
-  version = "3.1.5";
+  version = "3.1.7";
 
   src = fetchFromGitHub {
     owner = "Kozea";
     repo = "Radicale";
     rev = "v${version}";
-    hash = "sha256-PGPUV0oOWmzc7Lih6D0sCwIuUB8FOyOrYUEIvMpr4HE=";
+    hash = "sha256-D/JPq8p+iLmm0XaoXvNonRHr9PIhQ11yTDqur3DiYdc=";
   };
 
   postPatch = ''
@@ -20,7 +20,6 @@ python3.pkgs.buildPythonApplication rec {
     passlib
     vobject
     python-dateutil
-    setuptools
   ];
 
   checkInputs = with python3.pkgs; [
diff --git a/pkgs/servers/roon-bridge/default.nix b/pkgs/servers/roon-bridge/default.nix
index 2607ade99310a..4e590dd981867 100644
--- a/pkgs/servers/roon-bridge/default.nix
+++ b/pkgs/servers/roon-bridge/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
       ${fixBin "${placeholder "out"}/Bridge/RoonBridgeHelper"}
 
       mkdir -p $out/bin
-      makeWrapper "$out/Bridge/RoonBridge" "$out/bin/RoonBridge" --run "cd $out"
+      makeWrapper "$out/Bridge/RoonBridge" "$out/bin/RoonBridge" --chdir "$out"
 
       runHook postInstall
     '';
diff --git a/pkgs/servers/roon-server/default.nix b/pkgs/servers/roon-server/default.nix
index 8decbf1341b62..32d0a1310eff3 100644
--- a/pkgs/servers/roon-server/default.nix
+++ b/pkgs/servers/roon-server/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
             --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ alsa-lib icu66 ffmpeg openssl ]}" \
             --prefix PATH : "$dotnetDir" \
             --prefix PATH : "${lib.makeBinPath [ alsa-utils cifs-utils ffmpeg ]}" \
-            --run "cd $binDir" \
+            --chdir "$binDir" \
             --set DOTNET_ROOT "$dotnetDir"
         )
       '';
@@ -82,7 +82,7 @@ stdenv.mkDerivation rec {
       ${wrapBin "$out/Server/RoonServer"}
 
       mkdir -p $out/bin
-      makeWrapper "$out/Server/RoonServer" "$out/bin/RoonServer" --run "cd $out"
+      makeWrapper "$out/Server/RoonServer" "$out/bin/RoonServer" --chdir "$out"
 
       runHook postInstall
     '';
diff --git a/pkgs/servers/roundcube/plugins/carddav/default.nix b/pkgs/servers/roundcube/plugins/carddav/default.nix
index c3745c9bcc5ee..b26cfce67721e 100644
--- a/pkgs/servers/roundcube/plugins/carddav/default.nix
+++ b/pkgs/servers/roundcube/plugins/carddav/default.nix
@@ -2,10 +2,10 @@
 
 roundcubePlugin rec {
   pname = "carddav";
-  version = "3.0.3";
+  version = "4.3.0";
 
   src = fetchzip {
-    url = "https://github.com/blind-coder/rcmcarddav/releases/download/v${version}/carddav-${version}.tar.bz2";
-    sha256 = "0scqxqfwv9r4ggaammmjp51mj50qc5p4jmjliwjvcwyjr36wjq3z";
+    url = "https://github.com/mstilkerich/rcmcarddav/releases/download/v${version}/carddav-v${version}.tar.gz";
+    sha256 = "1jk1whx155svfalf1kq8vavn7jsswmzx4ax5zbj01783rqyxkkd5";
   };
 }
diff --git a/pkgs/servers/roundcube/plugins/persistent_login/default.nix b/pkgs/servers/roundcube/plugins/persistent_login/default.nix
index e210c10068457..0b97dd8a05021 100644
--- a/pkgs/servers/roundcube/plugins/persistent_login/default.nix
+++ b/pkgs/servers/roundcube/plugins/persistent_login/default.nix
@@ -2,12 +2,12 @@
 
 roundcubePlugin rec {
   pname = "persistent_login";
-  version = "5.2.0";
+  version = "5.3.0";
 
   src = fetchFromGitHub {
     owner = "mfreiholz";
     repo = pname;
     rev = "version-${version}";
-    sha256 = "0aasc2ns318s1g8vf2hhqwsplchhrhv5cd725rnfldim1y8k0n1i";
+    sha256 = "1qf7q1sypwa800pgxa3bg6ngcpkf4dqgg6jqx8cnd6cb7ikbfldb";
   };
 }
diff --git a/pkgs/servers/routinator/default.nix b/pkgs/servers/routinator/default.nix
index 2e5bd017216aa..ed57e21b62057 100644
--- a/pkgs/servers/routinator/default.nix
+++ b/pkgs/servers/routinator/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "routinator";
-  version = "0.11.0";
+  version = "0.11.2";
 
   src = fetchFromGitHub {
     owner = "NLnetLabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-GKn8JRgYXLkm5gX5Tv6lMdS7oFan2TF7dLqWK+nEeYg=";
+    sha256 = "sha256-C6BY+Ba5KQgi+jMUKRi7osZNEDMLMDOhA4TQlbqb9jY=";
   };
 
-  cargoSha256 = "sha256-r3Np9aAJRZUj0TezZhT5cJJkm8EBjV9yQpplcrNgzmU=";
+  cargoSha256 = "sha256-5ZBE7jbhO4j4FwGSXLIbYjmtmNxFpiME9JqXBqwHSUA=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
diff --git a/pkgs/servers/rt/default.nix b/pkgs/servers/rt/default.nix
index ff0bbd6b97dc0..2b5188f743ad5 100644
--- a/pkgs/servers/rt/default.nix
+++ b/pkgs/servers/rt/default.nix
@@ -18,10 +18,10 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     autoreconfHook
+    makeWrapper
   ];
 
   buildInputs = [
-    makeWrapper
     perl
     (buildEnv {
       name = "rt-perl-deps";
diff --git a/pkgs/servers/search/elasticsearch/6.x.nix b/pkgs/servers/search/elasticsearch/6.x.nix
index 56f0779c833a7..798fa83e6d588 100644
--- a/pkgs/servers/search/elasticsearch/6.x.nix
+++ b/pkgs/servers/search/elasticsearch/6.x.nix
@@ -62,9 +62,10 @@ stdenv.mkDerivation (rec {
   };
 } // optionalAttrs enableUnfree {
   dontPatchELF = true;
-  nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
+  nativeBuildInputs = [ makeWrapper ]
+    ++ optional stdenv.isLinux autoPatchelfHook;
   runtimeDependencies = [ zlib ];
-  postFixup = ''
+  postFixup = lib.optionalString stdenv.isLinux ''
     for exe in $(find $out/modules/x-pack-ml/platform/linux-x86_64/bin -executable -type f); do
       echo "patching $exe..."
       patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$exe"
diff --git a/pkgs/servers/search/elasticsearch/7.x.nix b/pkgs/servers/search/elasticsearch/7.x.nix
index 592cc947a42e3..83c169eb25e77 100644
--- a/pkgs/servers/search/elasticsearch/7.x.nix
+++ b/pkgs/servers/search/elasticsearch/7.x.nix
@@ -18,9 +18,10 @@ let
   plat = elemAt info 1;
   shas =
     {
-      x86_64-linux  = "1s16l95wc589cr69pfbgmkn9rkvxn6sd6jlbiqpm6p6iyxiaxd6c";
-      x86_64-darwin = "05h7pvq4pb816wgcymnfklp3w6sv54x6138v2infw5219dnk8pfs";
-      aarch64-linux = "0q4xnjzhlx1b2lkikca88qh9glfxaifsm419k2bxxlrfrx31zlkq";
+      x86_64-linux   = "1s16l95wc589cr69pfbgmkn9rkvxn6sd6jlbiqpm6p6iyxiaxd6c";
+      x86_64-darwin  = "05h7pvq4pb816wgcymnfklp3w6sv54x6138v2infw5219dnk8pfs";
+      aarch64-linux  = "0q4xnjzhlx1b2lkikca88qh9glfxaifsm419k2bxxlrfrx31zlkq";
+      aarch64-darwin = "067mb1dianwiarw8cz1va4g6zfhp9ls4s174xbpkxwsknvvyhgz6";
     };
 in
 stdenv.mkDerivation rec {
@@ -44,7 +45,8 @@ stdenv.mkDerivation rec {
       "ES_CLASSPATH=\"\$ES_CLASSPATH:$out/\$additional_classpath_directory/*\""
   '';
 
-  nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ]
+    ++ lib.optional (!stdenv.hostPlatform.isDarwin) autoPatchelfHook;
 
   buildInputs = [ jre_headless util-linux zlib ];
 
diff --git a/pkgs/servers/search/groonga/default.nix b/pkgs/servers/search/groonga/default.nix
index f42574884ed99..fff449f372516 100644
--- a/pkgs/servers/search/groonga/default.nix
+++ b/pkgs/servers/search/groonga/default.nix
@@ -7,11 +7,11 @@
 stdenv.mkDerivation rec {
 
   pname = "groonga";
-  version = "11.0.9";
+  version = "11.1.0";
 
   src = fetchurl {
     url    = "https://packages.groonga.org/source/groonga/${pname}-${version}.tar.gz";
-    sha256 = "sha256-yE/Ok0QNY9+a4vfNJWZjR4W8E/i+lw7T85X2+oOw8m4=";
+    sha256 = "sha256-di1uzTZxeRLevcSS5d/yba5Y6tdy21H2NgU7ZrZTObI=";
   };
 
   preConfigure = ''
diff --git a/pkgs/servers/sickbeard/sickgear.nix b/pkgs/servers/sickbeard/sickgear.nix
index ebe79b927761d..4c2048000a64b 100644
--- a/pkgs/servers/sickbeard/sickgear.nix
+++ b/pkgs/servers/sickbeard/sickgear.nix
@@ -4,13 +4,13 @@ let
   pythonEnv = python3.withPackages(ps: with ps; [ cheetah3 ]);
 in stdenv.mkDerivation rec {
   pname = "sickgear";
-  version = "0.25.28";
+  version = "0.25.31";
 
   src = fetchFromGitHub {
     owner = "SickGear";
     repo = "SickGear";
     rev = "release_${version}";
-    sha256 = "16d0yvsp9yp67q1clhjs77syd13bmfgbadxcc1x8yfrfvdy6v39l";
+    sha256 = "11l537c7d6mrbvn24bfkzydb96mwzhr8z5rl6imiphjzr0f8qyyp";
   };
 
   dontBuild = true;
diff --git a/pkgs/servers/soft-serve/default.nix b/pkgs/servers/soft-serve/default.nix
index 582603a7a76c6..0d4c58d2b86a7 100644
--- a/pkgs/servers/soft-serve/default.nix
+++ b/pkgs/servers/soft-serve/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "soft-serve";
-  version = "0.2.3";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "charmbracelet";
     repo = "soft-serve";
     rev = "v${version}";
-    sha256 = "sha256-IaSXkbOBuvC7BhM+rGGYMcvk6jjKVDHH+lSs3y2UM40=";
+    sha256 = "sha256-FtWlE2CmUx9ric4yFItj7lc57259/BVINyUhSuBNapo=";
   };
 
-  vendorSha256 = "sha256-m5xwxs6XvmPffDX9dkkEG0/LdlDDm6Eq9CC0tVdauVI=";
+  vendorSha256 = "sha256-MwbtrtfvQ1HimLjUCmk8Twr4tpfP4eFBUlDP15IZKto=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/sql/dolt/default.nix b/pkgs/servers/sql/dolt/default.nix
index a1db051e7b2d9..072bd793346c9 100644
--- a/pkgs/servers/sql/dolt/default.nix
+++ b/pkgs/servers/sql/dolt/default.nix
@@ -2,24 +2,24 @@
 
 buildGoModule rec {
   pname = "dolt";
-  version = "0.37.4";
+  version = "0.39.2";
 
   src = fetchFromGitHub {
-    owner = "liquidata-inc";
+    owner = "dolthub";
     repo = "dolt";
     rev = "v${version}";
-    sha256 = "sha256-cKX8idMmh9hQVPjO8rJWlp1nhtnzwwlLkelNw+LLBag=";
+    sha256 = "sha256-rCGjBb5aiDLPBKYX4jhHxtBDf3Xs1/p1DdsFmdfLNLM=";
   };
 
   modRoot = "./go";
   subPackages = [ "cmd/dolt" "cmd/git-dolt" "cmd/git-dolt-smudge" ];
-  vendorSha256 = "sha256-vaYCo+jvw3qcLQ63oA8tq6G6Gxq50VTxK6IMBcEZXqs=";
+  vendorSha256 = "sha256-yemt7hUcLXgC42B2q4+1MalGd3jCMHcVD/Bpq8B2x7M=";
 
   doCheck = false;
 
   meta = with lib; {
     description = "Relational database with version control and CLI a-la Git";
-    homepage = "https://github.com/liquidata-inc/dolt";
+    homepage = "https://github.com/dolthub/dolt";
     license = licenses.asl20;
     maintainers = with maintainers; [ danbst ];
   };
diff --git a/pkgs/servers/sql/mysql/8.0.x.nix b/pkgs/servers/sql/mysql/8.0.x.nix
index ae2e170379df0..f897e018d6930 100644
--- a/pkgs/servers/sql/mysql/8.0.x.nix
+++ b/pkgs/servers/sql/mysql/8.0.x.nix
@@ -20,6 +20,8 @@ self = stdenv.mkDerivation rec {
   postPatch = ''
     substituteInPlace cmake/libutils.cmake --replace /usr/bin/libtool libtool
     substituteInPlace cmake/os/Darwin.cmake --replace /usr/bin/libtool libtool
+    substituteInPlace cmake/fido2.cmake \
+    --replace ''$\{MY_PKG_CONFIG_EXECUTABLE\} "${pkg-config}/bin/pkg-config"
   '';
 
   buildInputs = [
diff --git a/pkgs/servers/sql/patroni/default.nix b/pkgs/servers/sql/patroni/default.nix
index abf84d4bc6688..e3d5089dfa0a9 100644
--- a/pkgs/servers/sql/patroni/default.nix
+++ b/pkgs/servers/sql/patroni/default.nix
@@ -57,7 +57,7 @@ pythonPackages.buildPythonApplication rec {
     homepage = "https://patroni.readthedocs.io/en/latest/";
     description = "A Template for PostgreSQL HA with ZooKeeper, etcd or Consul";
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = teams.deshaw.members;
   };
 }
diff --git a/pkgs/servers/sql/pgbouncer/default.nix b/pkgs/servers/sql/pgbouncer/default.nix
index 441b99c7bcd66..0a6bfda03a73f 100644
--- a/pkgs/servers/sql/pgbouncer/default.nix
+++ b/pkgs/servers/sql/pgbouncer/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pgbouncer";
-  version = "1.16.1";
+  version = "1.17.0";
 
   src = fetchurl {
     url = "https://pgbouncer.github.io/downloads/files/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1z7p3ghpmbp5qv1bz9s186jn0hfnr300dc5p0hmh6vbnwklpfx08";
+    sha256 = "sha256-ZXMJt7xceoXL9wqaRBtTX3gkEjCB6rt7qG0ANJolbiM=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/servers/sql/postgresql/ext/jsonb_deep_sum.nix b/pkgs/servers/sql/postgresql/ext/jsonb_deep_sum.nix
new file mode 100644
index 0000000000000..cf0ba46d87625
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/ext/jsonb_deep_sum.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub, postgresql }:
+
+stdenv.mkDerivation rec {
+  pname = "jsonb_deep_sum";
+  version = "unstable-2021-12-24";
+
+  src = fetchFromGitHub {
+    owner = "furstenheim";
+    repo = "jsonb_deep_sum";
+    rev = "d9c69aa6b7da860e5522a9426467e67cb787980c";
+    sha256 = "sha256-W1wNILAwTAjFPezq+grdRMA59KEnMZDz69n9xQUqdc0=";
+  };
+
+  buildInputs = [ postgresql ];
+
+  installPhase = ''
+    mkdir -p $out/{lib,share/postgresql/extension}
+
+    cp *.so      $out/lib
+    cp *.sql     $out/share/postgresql/extension
+    cp *.control $out/share/postgresql/extension
+  '';
+
+  meta = with lib; {
+    description = "PostgreSQL extension to easily add jsonb numeric";
+    homepage = "https://github.com/furstenheim/jsonb_deep_sum";
+    maintainers = with maintainers; [ _1000101 ];
+    platforms = postgresql.meta.platforms;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix b/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix
index fb62bdd94eee7..6f0a22167a91a 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix
+++ b/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix
@@ -1,26 +1,16 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, postgresql, openssl, zlib, readline, libkrb5 }:
+{ lib, stdenv, fetchFromGitHub, postgresql, openssl, zlib, readline, libkrb5 }:
 
 stdenv.mkDerivation rec {
   pname = "pg_auto_failover";
-  version = "1.6.3";
+  version = "1.6.4";
 
   src = fetchFromGitHub {
     owner = "citusdata";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-hGpcHV4ai9mxaJ/u/o9LNFWPGsW22W7ak2pbvAUgmwU=";
+    sha256 = "sha256-MzMKVS86ymfRwZqTzJsdophRrIIPDp50Wpt7QkGA6Nc=";
   };
 
-  patches = [
-    # Pull upstream fix for ncurses-6.3 support:
-    #  https://github.com/citusdata/pg_auto_failover/pull/830
-    (fetchpatch {
-      name = "ncurses-6.3.patch";
-      url = "https://github.com/citusdata/pg_auto_failover/commit/fc92546965437a6d5f82ed9a6bdc8204a3bca725.patch";
-      sha256 = "sha256-t4DC/d/2s/Mc44rpFxBMOWGhACG0s5wAWyeDD7Mefo8=";
-    })
-  ];
-
   buildInputs = [ postgresql openssl zlib readline libkrb5 ];
 
   installPhase = ''
diff --git a/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix b/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
index ff5f464c8e518..dae538822385c 100644
--- a/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
+++ b/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "plpgsql_check";
-  version = "2.1.2";
+  version = "2.1.3";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-S/b6oQPYgaM6UvloYqlwhF5rxlyKG4Vw6ejN/gK8Spg=";
+    sha256 = "sha256-hVbx1eUrVQ35UzcokoqYCi6RFI5Dn7t9XH8q9VbyDbQ=";
   };
 
   buildInputs = [ postgresql ];
diff --git a/pkgs/servers/sql/postgresql/ext/timescaledb.nix b/pkgs/servers/sql/postgresql/ext/timescaledb.nix
index 1b19593053a23..f54d1244b2baa 100644
--- a/pkgs/servers/sql/postgresql/ext/timescaledb.nix
+++ b/pkgs/servers/sql/postgresql/ext/timescaledb.nix
@@ -8,7 +8,7 @@
 
 stdenv.mkDerivation rec {
   pname = "timescaledb";
-  version = "2.6.0";
+  version = "2.6.1";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ postgresql openssl libkrb5 ];
@@ -16,9 +16,8 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "timescale";
     repo = "timescaledb";
-    # some branches are named like tags which confuses git
-    rev = "refs/tags/${version}";
-    sha256 = "sha256-OiY7u7n78k+LsXo/B463p02tw5Fmq/OiVcLcZVutUdA=";
+    rev = version;
+    sha256 = "sha256-P0gdw6Ai5+6A/+bmlTkmKpy18UkbRgJN3wCzLQI5oMA=";
   };
 
   cmakeFlags = [ "-DSEND_TELEMETRY_DEFAULT=OFF" "-DREGRESS_CHECKS=OFF" "-DTAP_CHECKS=OFF" ]
diff --git a/pkgs/servers/sql/postgresql/packages.nix b/pkgs/servers/sql/postgresql/packages.nix
index fec106f32acd6..c789e92c8e3c9 100644
--- a/pkgs/servers/sql/postgresql/packages.nix
+++ b/pkgs/servers/sql/postgresql/packages.nix
@@ -2,6 +2,8 @@ self: super: {
 
     age = super.callPackage ./ext/age.nix { };
 
+    jsonb_deep_sum = super.callPackage ./ext/jsonb_deep_sum.nix { };
+
     periods = super.callPackage ./ext/periods.nix { };
 
     postgis = super.callPackage ./ext/postgis.nix { };
diff --git a/pkgs/servers/stayrtr/default.nix b/pkgs/servers/stayrtr/default.nix
index cee68bd2f61b9..a168cf5b1eec0 100644
--- a/pkgs/servers/stayrtr/default.nix
+++ b/pkgs/servers/stayrtr/default.nix
@@ -2,7 +2,7 @@
 , fetchFromGitHub
 , buildGoModule
 , stayrtr
-, testVersion
+, testers
 }:
 
 buildGoModule rec {
@@ -23,7 +23,7 @@ buildGoModule rec {
     "-X main.version=${version}"
   ];
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = stayrtr;
   };
 
diff --git a/pkgs/servers/tailscale/default.nix b/pkgs/servers/tailscale/default.nix
index 7c7bb84e15b7e..2ccabb3f21b91 100644
--- a/pkgs/servers/tailscale/default.nix
+++ b/pkgs/servers/tailscale/default.nix
@@ -2,20 +2,20 @@
 
 buildGoModule rec {
   pname = "tailscale";
-  version = "1.22.2";
+  version = "1.24.0";
 
   src = fetchFromGitHub {
     owner = "tailscale";
     repo = "tailscale";
     rev = "v${version}";
-    sha256 = "sha256-W4BcUDMxUZKFXueSI/Xlml17Jabi/hnnOyXgitao76A=";
+    sha256 = "12dn2dkk86ni7wqpl7zaxb8n840fnvg8kcjsg1lvf9k432dqhksn";
   };
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ];
 
   CGO_ENABLED = 0;
 
-  vendorSha256 = "sha256-Bu0a9JI0rlsA4wvvX9Mj4+QH0ot6Jdl+t246HbXu6OA=";
+  vendorSha256 = "01hh8v3mvl7fgv4w4y78jg50b383lgxfy876lkn7wg0sgg336dc8";
 
   doCheck = false;
 
@@ -35,6 +35,6 @@ buildGoModule rec {
     homepage = "https://tailscale.com";
     description = "The node agent for Tailscale, a mesh VPN built on WireGuard";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ danderson mbaillie ];
+    maintainers = with maintainers; [ danderson mbaillie twitchyliquid64 ];
   };
 }
diff --git a/pkgs/servers/traefik/default.nix b/pkgs/servers/traefik/default.nix
index 2dbed400650a1..622662645c7ef 100644
--- a/pkgs/servers/traefik/default.nix
+++ b/pkgs/servers/traefik/default.nix
@@ -2,18 +2,16 @@
 
 buildGoModule rec {
   pname = "traefik";
-  version = "2.6.2";
+  version = "2.6.3";
 
   src = fetchzip {
     url = "https://github.com/traefik/traefik/releases/download/v${version}/traefik-v${version}.src.tar.gz";
-    sha256 = "sha256-DVmszzDre0pWXARUqXuqGfY3pX1Ijh33G0Gsdmp8f98=";
+    sha256 = "sha256-OaKgX3qwiJM/EPprV1r3CbUnxOaWl7BTMcS5v+tmHoo=";
     stripRoot = false;
   };
 
   vendorSha256 = "sha256-tqrfCpZ/fRYZBZ/SBAvvJebLBeD2M/AVJEPiseehJHY=";
 
-  doCheck = false;
-
   subPackages = [ "cmd/traefik" ];
 
   nativeBuildInputs = [ go-bindata ];
diff --git a/pkgs/servers/trezord/default.nix b/pkgs/servers/trezord/default.nix
index 040ae21c2232d..29cd2766bd8ba 100644
--- a/pkgs/servers/trezord/default.nix
+++ b/pkgs/servers/trezord/default.nix
@@ -27,6 +27,7 @@ buildGoModule rec {
     homepage = "https://trezor.io";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ canndrew jb55 prusnak mmahut _1000101 ];
+    mainProgram = "trezord-go";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/udpt/default.nix b/pkgs/servers/udpt/default.nix
index 8f59d9e02a85f..6d5b0bb90993f 100644
--- a/pkgs/servers/udpt/default.nix
+++ b/pkgs/servers/udpt/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     license = lib.licenses.gpl3;
     platforms = lib.platforms.all;
     maintainers = with lib.maintainers; [ makefu ];
+    mainProgram = "udpt-rs";
   };
 }
diff --git a/pkgs/servers/ursadb/default.nix b/pkgs/servers/ursadb/default.nix
index 836a5934d96b6..c9b39eccd8a81 100644
--- a/pkgs/servers/ursadb/default.nix
+++ b/pkgs/servers/ursadb/default.nix
@@ -11,6 +11,14 @@ stdenv.mkDerivation rec {
     hash = "sha256-/EK1CKJ0IR7fkKSpQkONbWcz6uhUoAwK430ljNYsV5U=";
   };
 
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace \
+        "add_executable(ursadb_test Tests.cpp)" "" \
+      --replace \
+        "target_link_libraries(ursadb_test ursa)" ""
+  '';
+
   installPhase = ''
     mkdir -p $out/bin
     cp ursadb $out/bin/
diff --git a/pkgs/servers/uxplay/default.nix b/pkgs/servers/uxplay/default.nix
new file mode 100644
index 0000000000000..d013a5a59e4fe
--- /dev/null
+++ b/pkgs/servers/uxplay/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, stdenv
+, pkg-config
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, wrapGAppsHook
+, avahi
+, avahi-compat
+, openssl
+, gst_all_1
+, libplist
+}:
+
+stdenv.mkDerivation rec {
+  pname = "uxplay";
+  version = "1.50";
+
+  src = fetchFromGitHub {
+    owner = "FDH2";
+    repo = "UxPlay";
+    rev = "v${version}";
+    sha256 = "sha256-43BCpYh0XtsnI064/ddcz2/Imj399g+bxLlT0BpqLMI=";
+  };
+
+  patches = [
+    # https://github.com/FDH2/UxPlay/issues/91
+    (fetchpatch {
+      url = "https://github.com/FDH2/UxPlay/commit/f373fb2edcfb1f4c279e5796cf21e4a865800a71.patch";
+      sha256 = "sha256-ENT/sMyPjDdZ4gdxiatYJ/UxuCl+ekk0iQOn8ELDAKQ=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    openssl
+    libplist
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    avahi
+    avahi-compat
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+    gst_all_1.gst-plugins-bad
+    gst_all_1.gst-plugins-ugly
+    gst_all_1.gst-libav
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/FDH2/UxPlay";
+    description = "AirPlay Unix mirroring server";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ azuwis ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/web-apps/discourse/admin_create.patch b/pkgs/servers/web-apps/discourse/admin_create.patch
index 651e8ce81dc93..691b806dfd65e 100644
--- a/pkgs/servers/web-apps/discourse/admin_create.patch
+++ b/pkgs/servers/web-apps/discourse/admin_create.patch
@@ -1,5 +1,5 @@
 diff --git a/lib/tasks/admin.rake b/lib/tasks/admin.rake
-index 80c403616d..cba01202ac 100644
+index 37ef651f2b..b775129498 100644
 --- a/lib/tasks/admin.rake
 +++ b/lib/tasks/admin.rake
 @@ -107,3 +107,43 @@ task "admin:create" => :environment do
diff --git a/pkgs/servers/web-apps/discourse/assets_rake_command.patch b/pkgs/servers/web-apps/discourse/assets_rake_command.patch
new file mode 100644
index 0000000000000..b37b6d1d79944
--- /dev/null
+++ b/pkgs/servers/web-apps/discourse/assets_rake_command.patch
@@ -0,0 +1,13 @@
+diff --git a/lib/tasks/assets.rake b/lib/tasks/assets.rake
+index 68b5db61ac..d460b5753e 100644
+--- a/lib/tasks/assets.rake
++++ b/lib/tasks/assets.rake
+@@ -19,7 +19,7 @@ task 'assets:precompile:before' do
+ 
+     if only_assets_precompile_remaining
+       # Using exec to free up Rails app memory during ember build
+-      exec "#{compile_command} && EMBER_CLI_COMPILE_DONE=1 bin/rake assets:precompile"
++      exec "#{compile_command} && EMBER_CLI_COMPILE_DONE=1 bundle exec rake assets:precompile"
+     else
+       system compile_command
+     end
diff --git a/pkgs/servers/web-apps/discourse/auto_generated_path.patch b/pkgs/servers/web-apps/discourse/auto_generated_path.patch
index e63d4a283a74d..c80e4a48ecd96 100644
--- a/pkgs/servers/web-apps/discourse/auto_generated_path.patch
+++ b/pkgs/servers/web-apps/discourse/auto_generated_path.patch
@@ -1,8 +1,8 @@
 diff --git a/lib/plugin/instance.rb b/lib/plugin/instance.rb
-index e59a6fbc05..c773a1356e 100644
+index 8482ff0210..826d111d65 100644
 --- a/lib/plugin/instance.rb
 +++ b/lib/plugin/instance.rb
-@@ -447,7 +447,7 @@ class Plugin::Instance
+@@ -455,7 +455,7 @@ class Plugin::Instance
    end
  
    def auto_generated_path
diff --git a/pkgs/servers/web-apps/discourse/default.nix b/pkgs/servers/web-apps/discourse/default.nix
index 693e638dec6e3..19860ad7886df 100644
--- a/pkgs/servers/web-apps/discourse/default.nix
+++ b/pkgs/servers/web-apps/discourse/default.nix
@@ -3,20 +3,21 @@
 
 , ruby, replace, gzip, gnutar, git, cacert, util-linux, gawk, nettools
 , imagemagick, optipng, pngquant, libjpeg, jpegoptim, gifsicle, jhead
-, libpsl, redis, postgresql, which, brotli, procps, rsync, icu
-, nodePackages, nodejs-16_x
+, oxipng, libpsl, redis, postgresql, which, brotli, procps, rsync, icu
+, fetchYarnDeps, yarn, fixup_yarn_lock, nodePackages, nodejs-14_x
+, nodejs-16_x
 
 , plugins ? []
 }@args:
 
 let
-  version = "2.9.0.beta1";
+  version = "2.9.0.beta4";
 
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse";
     rev = "v${version}";
-    sha256 = "sha256-mf2Niyv1H+Zq7RfnV93O1Ul9RdRrtmtAJMBJrb8hp3U=";
+    sha256 = "sha256-DpUEBGLgjcroVzdDG8/nGvC+ym19ZkGa7qvHKZZ1mH4=";
   };
 
   runtimeDeps = [
@@ -38,6 +39,7 @@ let
     # Image optimization
     imagemagick
     optipng
+    oxipng
     pngquant
     libjpeg
     jpegoptim
@@ -99,7 +101,7 @@ let
         ${lib.concatStrings (lib.mapAttrsToList (name: value: "--set ${name} '${value}' ") runtimeEnv)} \
         --prefix PATH : ${lib.makeBinPath runtimeDeps} \
         --set RAKEOPT '-f ${discourse}/share/discourse/Rakefile' \
-        --run 'cd ${discourse}/share/discourse'
+        --chdir '${discourse}/share/discourse'
   '';
 
   rubyEnv = bundlerEnv {
@@ -157,6 +159,11 @@ let
     ];
   };
 
+  yarnOfflineCache = fetchYarnDeps {
+    yarnLock = src + "/app/assets/javascripts/yarn.lock";
+    sha256 = "1l4nfc14cm42lkilsawfhdcnv1ln7m7bpan9a804abv4hwrs3f52";
+  };
+
   assets = stdenv.mkDerivation {
     pname = "discourse-assets";
     inherit version src;
@@ -166,6 +173,8 @@ let
       redis
       nodePackages.uglify-js
       nodePackages.terser
+      yarn
+      nodejs-14_x
     ];
 
     patches = [
@@ -177,6 +186,10 @@ let
       # defaults to the plugin's directory and isn't writable at the
       # time of asset generation
       ./auto_generated_path.patch
+
+      # Fix the rake command used to recursively execute itself in the
+      # assets precompilation task.
+      ./assets_rake_command.patch
     ];
 
     # We have to set up an environment that is close enough to
@@ -184,8 +197,21 @@ let
     # run. This means that Redis and PostgreSQL has to be running and
     # database migrations performed.
     preBuild = ''
+      # Yarn wants a real home directory to write cache, config, etc to
+      export HOME=$NIX_BUILD_TOP/fake_home
+
+      # Make yarn install packages from our offline cache, not the registry
+      yarn config --offline set yarn-offline-mirror ${yarnOfflineCache}
+
+      # Fixup "resolved"-entries in yarn.lock to match our offline cache
+      ${fixup_yarn_lock}/bin/fixup_yarn_lock app/assets/javascripts/yarn.lock
+
       export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
 
+      yarn install --offline --cwd app/assets/javascripts/discourse
+
+      patchShebangs app/assets/javascripts/node_modules/
+
       redis-server >/dev/null &
 
       initdb -A trust $NIX_BUILD_TOP/postgres >/dev/null
@@ -211,7 +237,7 @@ let
       export RAILS_ENV=production
 
       bundle exec rake db:migrate >/dev/null
-      rm -r tmp/*
+      chmod -R +w tmp
     '';
 
     buildPhase = ''
@@ -229,6 +255,10 @@ let
 
       runHook postInstall
     '';
+
+    passthru = {
+      inherit yarnOfflineCache;
+    };
   };
 
   discourse = stdenv.mkDerivation {
@@ -309,7 +339,7 @@ let
     };
 
     passthru = {
-      inherit rubyEnv runtimeEnv runtimeDeps rake mkDiscoursePlugin;
+      inherit rubyEnv runtimeEnv runtimeDeps rake mkDiscoursePlugin assets;
       enabledPlugins = plugins;
       plugins = callPackage ./plugins/all-plugins.nix { inherit mkDiscoursePlugin; };
       ruby = rubyEnv.wrappedRuby;
diff --git a/pkgs/servers/web-apps/discourse/nixos_defaults.patch b/pkgs/servers/web-apps/discourse/nixos_defaults.patch
index 3efca97e62c02..98dba9b54b90a 100644
--- a/pkgs/servers/web-apps/discourse/nixos_defaults.patch
+++ b/pkgs/servers/web-apps/discourse/nixos_defaults.patch
@@ -1,8 +1,8 @@
 diff --git a/app/models/site_setting.rb b/app/models/site_setting.rb
-index 89a5e923fc..b60754f50a 100644
+index a6641f967a..a45353504a 100644
 --- a/app/models/site_setting.rb
 +++ b/app/models/site_setting.rb
-@@ -26,6 +26,8 @@ class SiteSetting < ActiveRecord::Base
+@@ -21,6 +21,8 @@ class SiteSetting < ActiveRecord::Base
      end
    end
  
diff --git a/pkgs/servers/web-apps/discourse/plugin_gem_api_version.patch b/pkgs/servers/web-apps/discourse/plugin_gem_api_version.patch
index ca7aa850ec515..84fb1d4dad4a4 100644
--- a/pkgs/servers/web-apps/discourse/plugin_gem_api_version.patch
+++ b/pkgs/servers/web-apps/discourse/plugin_gem_api_version.patch
@@ -1,5 +1,5 @@
 diff --git a/lib/plugin_gem.rb b/lib/plugin_gem.rb
-index 855d1aca2c..8115623547 100644
+index 49882b2cd9..96672df2ea 100644
 --- a/lib/plugin_gem.rb
 +++ b/lib/plugin_gem.rb
 @@ -4,7 +4,7 @@ module PluginGem
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
index 2a1970e92dd30..3cf491a2f42d6 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-assign";
-    rev = "ffe95da7ed0cf0893a76af37498784ad92041131";
-    sha256 = "sha256-FdZATO1Z6XmhForETZ2FC+6wfR437cpRg8QSFzmbsxQ=";
+    rev = "7a854fe5046783bcff6cc24fca818056e1b9414a";
+    sha256 = "sha256-SGGwj0V4mTXD33tLnH76tQD/f6IvDbacq23XbaRdLsI=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-docs";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile
index bda8e6ec3cf34..faf4db6ca825b 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile
@@ -2,7 +2,5 @@
 
 source "https://rubygems.org"
 
-git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
-
 # gem "rails"
-gem 'rrule', '0.4.2', require: false
+gem 'rrule', '0.4.4', require: false
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
index 727fde304953d..4a4ff3b0e178a 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
@@ -1,17 +1,17 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (7.0.1)
+    activesupport (7.0.2.3)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
       tzinfo (~> 2.0)
-    concurrent-ruby (1.1.9)
-    i18n (1.9.1)
+    concurrent-ruby (1.1.10)
+    i18n (1.10.0)
       concurrent-ruby (~> 1.0)
     minitest (5.15.0)
-    rrule (0.4.2)
-      activesupport (>= 4.1)
+    rrule (0.4.4)
+      activesupport (>= 2.3)
     tzinfo (2.0.4)
       concurrent-ruby (~> 1.0)
 
@@ -19,7 +19,7 @@ PLATFORMS
   ruby
 
 DEPENDENCIES
-  rrule (= 0.4.2)
+  rrule (= 0.4.4)
 
 BUNDLED WITH
-   2.2.24
+   2.3.9
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
index 1d3e2756bb0d3..d935b37b5a112 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-calendar";
-    rev = "765d16242ffeb4324c3269393d3fa81e9b751d4f";
-    sha256 = "sha256-YYxspW0DX0DUBwPOcvX2pLJYmyK4b56LdjL6avLKzRs=";
+    rev = "eb8bc3e864c6f735fa5a005e854f8c37411b6288";
+    sha256 = "sha256-fc3oQj2NqaTfmokJUryd2oBd/eVAcNOMMT0ZT45bU28=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-calendar";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix
index 48598802c61c1..69f2648831ce5 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix
@@ -5,20 +5,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02lys9pnb99hsczs551iqzjn008i8k7c728xxba7acfi9rdw9pa6";
+      sha256 = "1jpydd414j0fig3r0f6ci67mchclg6cq2qgqbq9zplrbg40pzfi8";
       type = "gem";
     };
-    version = "7.0.1";
+    version = "7.0.2.3";
   };
   concurrent-ruby = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nwad3211p7yv9sda31jmbyw6sdafzmdi2i2niaz6f0wk5nq9h0f";
+      sha256 = "0s4fpn3mqiizpmpy2a24k4v365pv75y50292r8ajrv4i1p5b2k14";
       type = "gem";
     };
-    version = "1.1.9";
+    version = "1.1.10";
   };
   i18n = {
     dependencies = ["concurrent-ruby"];
@@ -26,10 +26,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nancdgq51wk3c1pkxps0rkjsfdwnkx60hzkm947m5rzsz8b2sw8";
+      sha256 = "0b2qyvnk4yynlg17ymkq4g5xgr275637fhl1mjh0valw3cb1fhhg";
       type = "gem";
     };
-    version = "1.9.1";
+    version = "1.10.0";
   };
   minitest = {
     groups = ["default"];
@@ -47,10 +47,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w338b7dgvd144fl5b8xy2lfc6zgbcjac7b4z158jc8h070yzc9v";
+      sha256 = "04h3q0ws0wswqj3mwjyv44yx59d9ima9a820ay9w5bwnlb73syj2";
       type = "gem";
     };
-    version = "0.4.2";
+    version = "0.4.4";
   };
   tzinfo = {
     dependencies = ["concurrent-ruby"];
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-canned-replies/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-canned-replies/default.nix
index 43ef518a9cec9..07e58652d9fe2 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-canned-replies/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-canned-replies/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-canned-replies";
-    rev = "8762b8d0fe28ffcacc427e7a683b971bf125a881";
-    sha256 = "sha256-ZAm/A45vAofiOiqXS/STt4XO3FJ6XUFyVydsFaI40+k=";
+    rev = "18af3367d9eda8842e8ff0de96c90aa2f0bdb0a3";
+    sha256 = "sha256-v8QOR0/9RUJ1zFmzhKYe/GEev3Jl4AlXWkQyuquyuJY=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-canned-replies";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
index 63797d3b89cc3..f96348e6f273d 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-chat-integration";
-    rev = "ddee0c44179c547b2581474c3c4d0da7d8d23fe8";
-    sha256 = "sha256-8AUzIu+HRHrcAqpyI/eVrgZLTKXTLgDjXFTGQbMRzxs=";
+    rev = "eaa7de8c2b659d107c2b16ac0d469592aff79d7c";
+    sha256 = "sha256-7anXDbltMBM22dBnE5FFwNk7IJEUFZgDzR4Q/AYn6ng=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-chat-integration";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix
index 9c61b4bcf67c9..d1bcd57fc66a5 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-checklist";
-    rev = "c2bb6b0156e411ef3c1de52aa36b38abeba801cd";
-    sha256 = "sha256-p0nOdh0zg891Pe8wYhMzcbunGYJY41iVET4fFRDJt+k=";
+    rev = "68941e370e132c17fc2aa21ac40c033df72c9771";
+    sha256 = "sha256-jJM/01fKxc1RBcSPt9/KDxMkBMH2AOp9dINxSneNhAs=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-checklist";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
index 38336973f32ad..8073d89df8176 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-data-explorer";
-    rev = "2a17f49f66feb7a3068cf6f1e4ad08550f875057";
-    sha256 = "sha256-LOcJle0S7Z8oGz1XgTEHiz1JNKufxege+joeinwX7xU=";
+    rev = "baaac7ce671e716559329ae756988cc395d7079e";
+    sha256 = "sha256-bUCRfbKXdNbiJnU3xPMhG3s8kH7wQQoS2kV7ScHGOMQ=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-data-explorer";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
index 3b7d5e96f0770..071b1eb5dd9ba 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-docs";
-    rev = "05678c451caf2ceb192501da91cf0d24ea44c8e8";
-    sha256 = "sha256-C+3jaJ09P1PteeHFVfbAXxDgAa6d0RZwLdlp+NKuZJU=";
+    rev = "72b2e87e84221588bc2ff08961a492044f1f8237";
+    sha256 = "sha256-moR4TJYffh6JwC7oxeS4+Cyngi88Ht2eTbSEJJ4JKdY=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-docs";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile b/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile
index 7c0e7f435ae73..ae97d91984594 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile
@@ -2,8 +2,6 @@
 
 source "https://rubygems.org"
 
-git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
-
 # gem "rails"
 gem 'sawyer', '0.8.2'
-gem 'octokit', '4.21.0'
+gem 'octokit', '4.22.0'
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock
index 837fd40ee0815..ba05169809779 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock
@@ -3,7 +3,7 @@ GEM
   specs:
     addressable (2.8.0)
       public_suffix (>= 2.0.2, < 5.0)
-    faraday (1.9.3)
+    faraday (1.10.0)
       faraday-em_http (~> 1.0)
       faraday-em_synchrony (~> 1.0)
       faraday-excon (~> 1.1)
@@ -27,10 +27,10 @@ GEM
     faraday-rack (1.0.0)
     faraday-retry (1.0.3)
     multipart-post (2.1.1)
-    octokit (4.21.0)
+    octokit (4.22.0)
       faraday (>= 0.9)
       sawyer (~> 0.8.0, >= 0.5.3)
-    public_suffix (4.0.6)
+    public_suffix (4.0.7)
     ruby2_keywords (0.0.5)
     sawyer (0.8.2)
       addressable (>= 2.3.5)
@@ -40,8 +40,8 @@ PLATFORMS
   ruby
 
 DEPENDENCIES
-  octokit (= 4.21.0)
+  octokit (= 4.22.0)
   sawyer (= 0.8.2)
 
 BUNDLED WITH
-   2.2.24
+   2.3.9
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
index 9421267d1522a..f9ccaed863ef0 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-github";
-    rev = "031dc6b512ada263eb3634eae5adfe4cdb008b4b";
-    sha256 = "sha256-v69RYgA5k6A3bus+Joc/NFp2DU4bwiaoCSe2xua3DgY=";
+    rev = "36cbacdd32916435391b4700c024074da3bcbe74";
+    sha256 = "sha256-R4Kp7NFMIXYDcAZlOUdhNdN/mmQMgXlLFolzo2OZahw=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-github";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix
index 29a1e080e83f5..7bab2858b652e 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y32gj994ll3zlcqjmwp78r7s03iiwayij6fz2pjpkfywgvp71s6";
+      sha256 = "00palwawk897p5gypw5wjrh93d4p0xz2yl9w93yicb4kq7amh8d4";
       type = "gem";
     };
-    version = "1.9.3";
+    version = "1.10.0";
   };
   faraday-em_http = {
     groups = ["default"];
@@ -138,20 +138,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ak64rb48d8z98nw6q70r6i0i3ivv61iqla40ss5l79491qfnn27";
+      sha256 = "1nmdd7klyinvrrv2mggwwmc99ykaq7i379j00i37hvvaqx4giifj";
       type = "gem";
     };
-    version = "4.21.0";
+    version = "4.22.0";
   };
   public_suffix = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+      sha256 = "1f3knlwfwm05sfbaihrxm4g772b79032q14c16q4b38z8bi63qcb";
       type = "gem";
     };
-    version = "4.0.6";
+    version = "4.0.7";
   };
   ruby2_keywords = {
     groups = ["default"];
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile
index a988913a1bf62..2602ef5c72b57 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile
@@ -2,8 +2,6 @@
 
 source "https://rubygems.org"
 
-git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
-
 # gem "rails"
 gem 'pyu-ruby-sasl', '0.0.3.3', require: false
 gem 'rubyntlm', '0.3.4', require: false
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock
index 83e3cd4cbf47b..9ed9dcc8ef911 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock
@@ -25,4 +25,4 @@ DEPENDENCIES
   rubyntlm (= 0.3.4)
 
 BUNDLED WITH
-   2.2.24
+   2.3.9
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix
index 9010ee21a8975..0fc71fad26151 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "jonmbake";
     repo = "discourse-ldap-auth";
-    rev = "fe014176bd635e7df24ee2978d356e1f87d8daed";
-    sha256 = "sha256-1Cx+65rJx292sTfPUfbzSfJAU71V1pKWvWdLNCq8M8A=";
+    rev = "a7a2e35eb5a8f6ee3b90bf48424efcb2a66c9989";
+    sha256 = "sha256-Dsb12bZEZlNjFGw1GX7zt2hDVM9Ua+MDWSmBn4HEvs0=";
   };
   meta = with lib; {
     homepage = "https://github.com/jonmbake/discourse-ldap-auth";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
index e3e52ccfea786..d65087cca737d 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-math";
-    rev = "2deef48ab16bc0a15ab5f1fef98e15261251bf32";
-    sha256 = "sha256-Crt7ozasZ1DCwAzaH/Y6BQEXwpX6t9qsIrGYMlECylk=";
+    rev = "b875a21b4d5225b61cb525531d30eaf852db6237";
+    sha256 = "sha256-UKba9ZaVjIxOqUYdl00Z2sLt3Y+exBX7MJax8EzXB1Q=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-math";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
index c5405367ff3b0..e3c52319d279d 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-openid-connect";
-    rev = "ab26c4eaa858bf35cb6fa6314597a50fff57baf9";
-    sha256 = "sha256-Yxw1C0vNcVr+sYvmLvBWFV/XOr7yDBTW17Ohxfkv6W0=";
+    rev = "e897702139b9c0dca40b9385427ba8bad0e1eae9";
+    sha256 = "sha256-miosXf4to60BqGsbXYEL37G38uVHrz2/2Pizn0Rlp2o=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-openid-connect";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile
index ed57d552593ed..63a7cf62749bf 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile
@@ -2,7 +2,5 @@
 
 source "https://rubygems.org"
 
-git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
-
 # gem "rails"
 gem 'prometheus_exporter', File.read(File.expand_path("../prometheus_exporter_version", __FILE__)).strip
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
index 7fbd6680db6cf..79978e387cb9f 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
@@ -10,4 +10,4 @@ DEPENDENCIES
   prometheus_exporter (= 0.5.0)
 
 BUNDLED WITH
-   2.2.24
+   2.3.9
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
index 4c23355b301d8..e5d7259099ad1 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
@@ -6,8 +6,8 @@
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-prometheus";
-    rev = "1c3e2d75c33a0ed8563977d7c4919e3d06788dcd";
-    sha256 = "sha256-tj/IYUjuUs6foV4goIm+HACccmHjAiI1/EAOKibwUMs=";
+    rev = "43536e4a4977718972a673dc2475ae07df9a0a45";
+    sha256 = "sha256-7sQldPLY7YW/sr4WBHWxJVvhvRK0LwO3+52HAIJFvY4=";
   };
 
   patches = [
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
index 5ba948cf1d139..682032bb9d0f1 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-saved-searches";
-    rev = "baf1ab94317129d2ff2eb4e5e6d84fa76c40797c";
-    sha256 = "sha256-6NP9TK5Wx0LPX0ZFIiaEEYJv3d9WIQ26nvODk0dU2I0=";
+    rev = "f008809ee3bf3a8a5c11daff0807d59ab4336a0c";
+    sha256 = "sha256-/OyFL/9fLdVpsFQIlnjQ6ser6hdEs4X434nAaqKCTUE=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-saved-searches";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
index 8d0c1b07d9609..ebec54bc6e5db 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-solved";
-    rev = "922ca15fc92bfab496088b5ee240982bd8404f28";
-    sha256 = "sha256-s7XNRLDXnrsoB7FUgGaYIVfd7iO3ittIBoqSo2UaUTY=";
+    rev = "17ba805a06ddfc27c6435eb20c0f8466f1708be8";
+    sha256 = "sha256-G48c1khRVnCPXA8ujpDmEzL10uLC9e2sYVLVEXWIk0s=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-solved";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
index e97f1bfd06c1d..b4f7e000fd64a 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-spoiler-alert";
-    rev = "5afbcb905fa2c8cb8b7156ab5df3af27d6e6b477";
-    sha256 = "sha256-/Y5ATVSnJ3hMNiiqqYJzitgkQ/2zbWLaPdII9agTa10=";
+    rev = "4a07519cf9d7ac713f5e21ba770adb127524a22d";
+    sha256 = "sha256-pMTXdjqI4GrLNfZMbyPdeW+Jwieh6I4O/pT2Yyf4ltA=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-spoiler-alert";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
index 4efe8aabcdcd8..4d0f71fdd7f64 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-voting";
-    rev = "6a4b2a306928191c9ef9f3efdafeb9b4df496bcb";
-    sha256 = "sha256-OAn+NS64BcOlhmFYXV0Bq+O1B4a9FKHyN44vbHSax3Y=";
+    rev = "1da667721269ca01ef53c35ec0470486b490e72c";
+    sha256 = "sha256-VCMv6YWHY24v9KyO4q0YSSYK+mszOVqP46slOh8okvY=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-voting";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
index a03bf7b8cdd96..e38aa7f83571b 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-yearly-review";
-    rev = "5e3674201a32bf9e6c22417395bc2e052d9f217d";
-    sha256 = "sha256-gkQGLJegWTSwzpjrHPYK5/Uz4QjLUCLd6OuEIRYeP/I=";
+    rev = "ef4855f6afa16ef86013bba7da8e50a63e11b493";
+    sha256 = "sha256-IVKGysAKr+lKV1CO1JJIMLtzcvpK8joWjx8Bfy+dx8Y=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-yearly-review";
diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
index 9cdfbf21a9d8c..2766c3feadc03 100644
--- a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
+++ b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
@@ -18,7 +18,7 @@ else
   # this allows us to include the bits of rails we use without pieces we do not.
   #
   # To issue a rails update bump the version number here
-  rails_version = '6.1.4.1'
+  rails_version = '6.1.4.7'
   gem 'actionmailer', rails_version
   gem 'actionpack', rails_version
   gem 'actionview', rails_version
@@ -31,9 +31,7 @@ end
 
 gem 'json'
 
-# TODO: At the moment Discourse does not work with Sprockets 4, we would need to correct internals
-# This is a desired upgrade we should get to.
-gem 'sprockets', '3.7.2'
+gem 'sprockets'
 
 # this will eventually be added to rails,
 # allows us to precompile all our templates in the unicorn master
@@ -105,9 +103,7 @@ gem 'omniauth-oauth2', require: false
 
 gem 'omniauth-google-oauth2'
 
-# Pinning oj until https://github.com/ohler55/oj/issues/699 is resolved.
-# Segfaults and stuck processes after upgrading.
-gem 'oj', '3.13.2'
+gem 'oj'
 
 gem 'pg'
 gem 'mini_sql'
@@ -135,6 +131,14 @@ gem 'cose', require: false
 gem 'addressable'
 gem 'json_schemer'
 
+if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.1")
+  # net-smtp, net-imap and net-pop were removed from default gems in Ruby 3.1
+  gem "net-smtp", "~> 0.2.1", require: false
+  gem "net-imap", "~> 0.2.1", require: false
+  gem "net-pop", "~> 0.1.1", require: false
+  gem "digest", "3.0.0", require: false
+end
+
 # Gems used only for assets and not required in production environments by default.
 # Allow everywhere for now cause we are allowing asset debugging in production
 group :assets do
@@ -152,7 +156,6 @@ end
 
 group :test, :development do
   gem 'rspec'
-  gem 'mock_redis'
   gem 'listen', require: false
   gem 'certified', require: false
   gem 'fabrication', require: false
diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
index e9964e0340c4e..4e832c8abdb19 100644
--- a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
@@ -8,22 +8,22 @@ GIT
 GEM
   remote: https://rubygems.org/
   specs:
-    actionmailer (6.1.4.1)
-      actionpack (= 6.1.4.1)
-      actionview (= 6.1.4.1)
-      activejob (= 6.1.4.1)
-      activesupport (= 6.1.4.1)
+    actionmailer (6.1.4.7)
+      actionpack (= 6.1.4.7)
+      actionview (= 6.1.4.7)
+      activejob (= 6.1.4.7)
+      activesupport (= 6.1.4.7)
       mail (~> 2.5, >= 2.5.4)
       rails-dom-testing (~> 2.0)
-    actionpack (6.1.4.1)
-      actionview (= 6.1.4.1)
-      activesupport (= 6.1.4.1)
+    actionpack (6.1.4.7)
+      actionview (= 6.1.4.7)
+      activesupport (= 6.1.4.7)
       rack (~> 2.0, >= 2.0.9)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actionview (6.1.4.1)
-      activesupport (= 6.1.4.1)
+    actionview (6.1.4.7)
+      activesupport (= 6.1.4.7)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
@@ -32,15 +32,15 @@ GEM
       actionview (>= 6.0.a)
     active_model_serializers (0.8.4)
       activemodel (>= 3.0)
-    activejob (6.1.4.1)
-      activesupport (= 6.1.4.1)
+    activejob (6.1.4.7)
+      activesupport (= 6.1.4.7)
       globalid (>= 0.3.6)
-    activemodel (6.1.4.1)
-      activesupport (= 6.1.4.1)
-    activerecord (6.1.4.1)
-      activemodel (= 6.1.4.1)
-      activesupport (= 6.1.4.1)
-    activesupport (6.1.4.1)
+    activemodel (6.1.4.7)
+      activesupport (= 6.1.4.7)
+    activerecord (6.1.4.7)
+      activemodel (= 6.1.4.7)
+      activesupport (= 6.1.4.7)
+    activesupport (6.1.4.7)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -48,8 +48,8 @@ GEM
       zeitwerk (~> 2.3)
     addressable (2.8.0)
       public_suffix (>= 2.0.2, < 5.0)
-    annotate (3.1.1)
-      activerecord (>= 3.2, < 7.0)
+    annotate (3.2.0)
+      activerecord (>= 3.2, < 8.0)
       rake (>= 10.4, < 14.0)
     ast (2.4.2)
     aws-eventstream (1.2.0)
@@ -80,8 +80,8 @@ GEM
       rack (>= 0.9.0)
     binding_of_caller (1.0.0)
       debug_inspector (>= 0.0.1)
-    bootsnap (1.9.4)
-      msgpack (~> 1.0)
+    bootsnap (1.11.1)
+      msgpack (~> 1.2)
     builder (3.2.4)
     bullet (7.0.1)
       activesupport (>= 3.0.0)
@@ -92,12 +92,12 @@ GEM
     chunky_png (1.4.0)
     coderay (1.1.3)
     colored2 (3.1.2)
-    concurrent-ruby (1.1.9)
+    concurrent-ruby (1.1.10)
     connection_pool (2.2.5)
     cose (1.2.0)
       cbor (~> 0.5.9)
       openssl-signature_algorithm (~> 1.0)
-    cppjieba_rb (0.3.3)
+    cppjieba_rb (0.4.2)
     crack (0.4.5)
       rexml
     crass (1.0.6)
@@ -129,14 +129,14 @@ GEM
       sprockets (>= 3.3, < 4.1)
     ember-source (2.18.2)
     erubi (1.10.0)
-    excon (0.89.0)
+    excon (0.92.2)
     execjs (2.8.1)
     exifr (1.3.9)
-    fabrication (2.24.0)
-    faker (2.19.0)
-      i18n (>= 1.6, < 2)
+    fabrication (2.28.0)
+    faker (2.20.0)
+      i18n (>= 1.8.11, < 2)
     fakeweb (1.3.0)
-    faraday (1.9.3)
+    faraday (1.10.0)
       faraday-em_http (~> 1.0)
       faraday-em_synchrony (~> 1.0)
       faraday-excon (~> 1.1)
@@ -175,7 +175,7 @@ GEM
     hkdf (0.3.0)
     htmlentities (4.3.4)
     http_accept_language (2.1.1)
-    i18n (1.8.11)
+    i18n (1.10.0)
       concurrent-ruby (~> 1.0)
     image_optim (0.31.1)
       exifr (~> 1.2, >= 1.2.2)
@@ -184,9 +184,9 @@ GEM
       in_threads (~> 1.3)
       progress (~> 3.0, >= 3.0.1)
     image_size (3.0.1)
-    in_threads (1.5.4)
-    ipaddr (1.2.3)
-    jmespath (1.5.0)
+    in_threads (1.6.0)
+    ipaddr (1.2.4)
+    jmespath (1.6.1)
     jquery-rails (4.4.0)
       rails-dom-testing (>= 1, < 3)
       railties (>= 4.2.0)
@@ -194,7 +194,7 @@ GEM
     json (2.6.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    json_schemer (0.2.18)
+    json_schemer (0.2.20)
       ecma-re-validator (~> 0.3)
       hana (~> 1.3)
       regexp_parser (~> 2.0)
@@ -206,7 +206,7 @@ GEM
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
     literate_randomizer (0.4.0)
-    lograge (0.11.2)
+    lograge (0.12.0)
       actionpack (>= 4)
       activesupport (>= 4)
       railties (>= 4)
@@ -214,38 +214,36 @@ GEM
     logstash-event (1.2.02)
     logstash-logger (0.26.1)
       logstash-event (~> 1.2)
-    logster (2.10.1)
-    loofah (2.13.0)
+    logster (2.11.0)
+    loofah (2.16.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     lru_redux (1.1.0)
     lz4-ruby (0.3.3)
     maxminddb (0.1.22)
     memory_profiler (1.0.0)
-    message_bus (4.0.0)
+    message_bus (4.2.0)
       rack (>= 1.1.3)
     method_source (1.0.0)
     mini_mime (1.1.2)
-    mini_portile2 (2.6.1)
-    mini_racer (0.6.1)
+    mini_portile2 (2.8.0)
+    mini_racer (0.6.2)
       libv8-node (~> 16.10.0.0)
     mini_scheduler (0.13.0)
       sidekiq (>= 4.2.3)
-    mini_sql (1.1.3)
+    mini_sql (1.4.0)
     mini_suffix (0.3.3)
       ffi (~> 1.9)
     minitest (5.15.0)
     mocha (1.13.0)
-    mock_redis (0.29.0)
-      ruby2_keywords
-    msgpack (1.4.2)
+    msgpack (1.5.1)
     multi_json (1.15.0)
     multi_xml (0.6.0)
     multipart-post (2.1.1)
     mustache (1.1.1)
     nio4r (2.5.8)
-    nokogiri (1.12.5)
-      mini_portile2 (~> 2.6.1)
+    nokogiri (1.13.4)
+      mini_portile2 (~> 2.8.0)
       racc (~> 1.4)
     oauth (0.5.8)
     oauth2 (1.4.7)
@@ -254,7 +252,7 @@ GEM
       multi_json (~> 1.3)
       multi_xml (~> 0.5)
       rack (>= 1.2, < 3)
-    oj (3.13.2)
+    oj (3.13.11)
     omniauth (1.9.1)
       hashie (>= 3.4.6)
       rack (>= 1.6.2, < 3)
@@ -282,12 +280,12 @@ GEM
     openssl-signature_algorithm (1.1.1)
       openssl (~> 2.0)
     optimist (3.0.1)
-    parallel (1.21.0)
-    parallel_tests (3.7.3)
+    parallel (1.22.1)
+    parallel_tests (3.8.1)
       parallel
-    parser (3.1.0.0)
+    parser (3.1.2.0)
       ast (~> 2.4.1)
-    pg (1.2.3)
+    pg (1.3.5)
     progress (3.6.0)
     pry (0.13.1)
       coderay (~> 1.1)
@@ -297,15 +295,15 @@ GEM
       pry (~> 0.13.0)
     pry-rails (0.3.9)
       pry (>= 0.10.4)
-    public_suffix (4.0.6)
-    puma (5.5.2)
+    public_suffix (4.0.7)
+    puma (5.6.4)
       nio4r (~> 2.0)
     r2 (0.2.7)
     racc (1.6.0)
     rack (2.2.3)
-    rack-mini-profiler (2.3.3)
+    rack-mini-profiler (3.0.0)
       rack (>= 1.2.0)
-    rack-protection (2.1.0)
+    rack-protection (2.2.0)
       rack
     rack-test (1.1.0)
       rack (>= 1.0, < 3)
@@ -314,23 +312,23 @@ GEM
       nokogiri (>= 1.6)
     rails-html-sanitizer (1.4.2)
       loofah (~> 2.3)
-    rails_failover (0.7.3)
-      activerecord (~> 6.0)
+    rails_failover (0.8.1)
+      activerecord (> 6.0, < 7.1)
       concurrent-ruby
-      railties (~> 6.0)
-    rails_multisite (4.0.0)
-      activerecord (> 5.0, < 7)
-      railties (> 5.0, < 7)
-    railties (6.1.4.1)
-      actionpack (= 6.1.4.1)
-      activesupport (= 6.1.4.1)
+      railties (> 6.0, < 7.1)
+    rails_multisite (4.0.1)
+      activerecord (> 5.0, < 7.1)
+      railties (> 5.0, < 7.1)
+    railties (6.1.4.7)
+      actionpack (= 6.1.4.7)
+      activesupport (= 6.1.4.7)
       method_source
       rake (>= 0.13)
       thor (~> 1.0)
     rainbow (3.1.1)
     raindrops (0.20.0)
     rake (13.0.6)
-    rb-fsevent (0.11.0)
+    rb-fsevent (0.11.1)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
     rbtrace (0.4.14)
@@ -339,34 +337,34 @@ GEM
       optimist (>= 3.0.0)
     rchardet (1.8.0)
     redis (4.5.1)
-    redis-namespace (1.8.1)
+    redis-namespace (1.8.2)
       redis (>= 3.0.4)
-    regexp_parser (2.2.0)
-    request_store (1.5.0)
+    regexp_parser (2.3.0)
+    request_store (1.5.1)
       rack (>= 1.4)
     rexml (3.2.5)
     rinku (2.0.6)
     rotp (6.2.0)
-    rqrcode (2.1.0)
+    rqrcode (2.1.1)
       chunky_png (~> 1.0)
       rqrcode_core (~> 1.0)
     rqrcode_core (1.2.0)
-    rspec (3.10.0)
-      rspec-core (~> 3.10.0)
-      rspec-expectations (~> 3.10.0)
-      rspec-mocks (~> 3.10.0)
-    rspec-core (3.10.1)
-      rspec-support (~> 3.10.0)
-    rspec-expectations (3.10.2)
+    rspec (3.11.0)
+      rspec-core (~> 3.11.0)
+      rspec-expectations (~> 3.11.0)
+      rspec-mocks (~> 3.11.0)
+    rspec-core (3.11.0)
+      rspec-support (~> 3.11.0)
+    rspec-expectations (3.11.0)
       diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.10.0)
+      rspec-support (~> 3.11.0)
     rspec-html-matchers (0.9.4)
       nokogiri (~> 1)
       rspec (>= 3.0.0.a, < 4)
-    rspec-mocks (3.10.2)
+    rspec-mocks (3.11.1)
       diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.10.0)
-    rspec-rails (5.0.2)
+      rspec-support (~> 3.11.0)
+    rspec-rails (5.1.1)
       actionpack (>= 5.2)
       activesupport (>= 5.2)
       railties (>= 5.2)
@@ -374,29 +372,29 @@ GEM
       rspec-expectations (~> 3.10)
       rspec-mocks (~> 3.10)
       rspec-support (~> 3.10)
-    rspec-support (3.10.3)
+    rspec-support (3.11.0)
     rss (0.2.9)
       rexml
-    rswag-specs (2.4.0)
-      activesupport (>= 3.1, < 7.0)
+    rswag-specs (2.5.1)
+      activesupport (>= 3.1, < 7.1)
       json-schema (~> 2.2)
-      railties (>= 3.1, < 7.0)
+      railties (>= 3.1, < 7.1)
     rtlit (0.0.5)
-    rubocop (1.25.0)
+    rubocop (1.27.0)
       parallel (~> 1.10)
       parser (>= 3.1.0.0)
       rainbow (>= 2.2.2, < 4.0)
       regexp_parser (>= 1.8, < 3.0)
       rexml
-      rubocop-ast (>= 1.15.1, < 2.0)
+      rubocop-ast (>= 1.16.0, < 2.0)
       ruby-progressbar (~> 1.7)
       unicode-display_width (>= 1.4.0, < 3.0)
-    rubocop-ast (1.15.1)
-      parser (>= 3.0.1.1)
+    rubocop-ast (1.17.0)
+      parser (>= 3.1.1.0)
     rubocop-discourse (2.5.0)
       rubocop (>= 1.1.0)
       rubocop-rspec (>= 2.0.0)
-    rubocop-rspec (2.7.0)
+    rubocop-rspec (2.9.0)
       rubocop (~> 1.19)
     ruby-prof (1.4.3)
     ruby-progressbar (1.11.0)
@@ -422,7 +420,7 @@ GEM
       activesupport (>= 3.1)
     shoulda-matchers (5.1.0)
       activesupport (>= 5.2.0)
-    sidekiq (6.3.1)
+    sidekiq (6.4.1)
       connection_pool (>= 2.2.2)
       rack (~> 2.0)
       redis (>= 4.2.0)
@@ -431,8 +429,8 @@ GEM
       simplecov-html (~> 0.11)
       simplecov_json_formatter (~> 0.1)
     simplecov-html (0.12.3)
-    simplecov_json_formatter (0.1.3)
-    sprockets (3.7.2)
+    simplecov_json_formatter (0.1.4)
+    sprockets (4.0.3)
       concurrent-ruby (~> 1.0)
       rack (> 1, < 3)
     sprockets-rails (3.4.2)
@@ -440,8 +438,8 @@ GEM
       activesupport (>= 5.2)
       sprockets (>= 3.0.0)
     sshkey (2.0.0)
-    stackprof (0.2.17)
-    test-prof (1.0.7)
+    stackprof (0.2.19)
+    test-prof (1.0.8)
     thor (1.2.1)
     tilt (2.0.10)
     tzinfo (2.0.4)
@@ -450,12 +448,12 @@ GEM
       execjs (>= 0.3.0, < 3)
     unf (0.1.4)
       unf_ext
-    unf_ext (0.0.8)
+    unf_ext (0.0.8.1)
     unicode-display_width (2.1.0)
     unicorn (6.1.0)
       kgio (~> 2.6)
       raindrops (~> 0.7)
-    uniform_notifier (1.14.2)
+    uniform_notifier (1.16.0)
     uri_template (0.7.0)
     webmock (3.14.0)
       addressable (>= 2.8.0)
@@ -466,20 +464,20 @@ GEM
       jwt (~> 2.0)
     xorcist (1.1.2)
     yaml-lint (0.0.10)
-    zeitwerk (2.5.3)
+    zeitwerk (2.5.4)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  actionmailer (= 6.1.4.1)
-  actionpack (= 6.1.4.1)
-  actionview (= 6.1.4.1)
+  actionmailer (= 6.1.4.7)
+  actionpack (= 6.1.4.7)
+  actionview (= 6.1.4.7)
   actionview_precompiler
   active_model_serializers (~> 0.8.3)
-  activemodel (= 6.1.4.1)
-  activerecord (= 6.1.4.1)
-  activesupport (= 6.1.4.1)
+  activemodel (= 6.1.4.7)
+  activerecord (= 6.1.4.7)
+  activesupport (= 6.1.4.7)
   addressable
   annotate
   aws-sdk-s3
@@ -537,11 +535,10 @@ DEPENDENCIES
   mini_suffix
   minitest
   mocha
-  mock_redis
   multi_json
   mustache
   nokogiri
-  oj (= 3.13.2)
+  oj
   omniauth
   omniauth-facebook
   omniauth-github
@@ -559,7 +556,7 @@ DEPENDENCIES
   rack-protection
   rails_failover
   rails_multisite
-  railties (= 6.1.4.1)
+  railties (= 6.1.4.7)
   rake
   rb-fsevent
   rbtrace
@@ -586,7 +583,7 @@ DEPENDENCIES
   shoulda-matchers
   sidekiq
   simplecov
-  sprockets (= 3.7.2)
+  sprockets
   sprockets-rails
   sshkey
   stackprof
@@ -601,4 +598,4 @@ DEPENDENCIES
   yaml-lint
 
 BUNDLED WITH
-   2.3.4
+   2.3.9
diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix b/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
index 9b5fbfca4a854..84f4c37dfb22c 100644
--- a/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00s07l2ac5igch1g2rpa0linmiq7mhgk6v6wxkckg8gbiqijb592";
+      sha256 = "0rjm6rx3qbqgxczy2a8l6hff72166hsf878fy2v1ik4pp8rh9cxa";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.7";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xgysqnibjsy6kdz10x2xb3kwa6lssiqhh0zggrbgs31ypwhlpia";
+      sha256 = "0cr02mj9wic0xbdrhjipk58cdljsfl4mplhqr9whn3l5qg8x5814";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.7";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -27,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yf4ic5kl324rs0raralpwx24s6hvvdzxfhinafylf8f3x7jj23z";
+      sha256 = "02x8cxq2bhgj5r9vpdjz8a56awg22gqvnqn01dqwyx8ny6sirzac";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.7";
   };
   actionview_precompiler = {
     dependencies = ["actionview"];
@@ -60,10 +60,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1q7c0i0kwarxgcbxk71wa9jnlg45grbxmhlrh7dk9bgcv7r7r7hn";
+      sha256 = "1g8dpxjzj7k3sjfjhfia21bwzmgc721lafpk2napravmq1qi0rkj";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.7";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -71,10 +71,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16ixam4lni8b5lgx0whnax0imzh1dh10fy5r9pxs52n83yz5nbq3";
+      sha256 = "01mzgr5pdxcki023p96bj77by1iblv9bq6pwmbly931bjwhr5irv";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.7";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport"];
@@ -82,10 +82,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ccgvlj767ybps3pxlaa4iw77n7wbriw2sr8754id3ngjfap08ja";
+      sha256 = "1idirwh7dzhzcjsssnghqyjl87inh84za0cmrf8g323p9qsx879l";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.7";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
@@ -93,10 +93,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19gx1jcq46x9d1pi1w8xq0bgvvfw239y4lalr8asm291gj3q3ds4";
+      sha256 = "04j9cgv729mcz2jwr312nr5aswv07s6kjynmf59w61j395dfcvw9";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.7";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -111,14 +111,14 @@
   };
   annotate = {
     dependencies = ["activerecord" "rake"];
-    groups = ["development"];
+    groups = ["development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dxrfppwfg13vqmambbs56xjj8qsdgcy58r2yc44vvy3z1g5yflw";
+      sha256 = "1lw0fxb5mirsdp3bp20gjyvs7clvi19jbxnrm2ihm20kzfhvlqcs";
       type = "gem";
     };
-    version = "3.1.1";
+    version = "3.2.0";
   };
   ast = {
     groups = ["default" "development" "test"];
@@ -252,10 +252,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19i4x2nascd74ahcvmrsnf03cygh1y4c9yf8rcv91fv0mcxpvb9n";
+      sha256 = "0bjhh8pngmvnrsri2h6a753pgv0xdkbbgi1bmv6c7q137sp37jbg";
       type = "gem";
     };
-    version = "1.9.4";
+    version = "1.11.1";
   };
   builder = {
     groups = ["default" "development" "test"];
@@ -351,10 +351,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nwad3211p7yv9sda31jmbyw6sdafzmdi2i2niaz6f0wk5nq9h0f";
+      sha256 = "0s4fpn3mqiizpmpy2a24k4v365pv75y50292r8ajrv4i1p5b2k14";
       type = "gem";
     };
-    version = "1.1.9";
+    version = "1.1.10";
   };
   connection_pool = {
     groups = ["default"];
@@ -382,10 +382,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1sslff7yy8jvp4rcn1b6jn9v0d3iibb68i79shgd94rs2yq8k117";
+      sha256 = "0ijzvnm5jclyhf6ls30kv7dqy05f3hbha69f59jwbzdid7dndla5";
       type = "gem";
     };
-    version = "0.3.3";
+    version = "0.4.2";
   };
   crack = {
     dependencies = ["rexml"];
@@ -573,10 +573,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0153rr745g48h48vaplgmx7xkfjbc79acpq5jsl7agdrk4yf75ih";
+      sha256 = "01pcl1vx60x3f28rs6iw1lgqxycgb2yxq2p45k7b4a8liadykhba";
       type = "gem";
     };
-    version = "0.89.0";
+    version = "0.92.2";
   };
   execjs = {
     groups = ["assets" "default"];
@@ -603,10 +603,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09b6gyqf76iflxh9v69k59xhxmrx1akdp2mbg8k8nb5rxy0sz0v6";
+      sha256 = "0rgbmk044akxa84z9vdl8lkmd9z4xy3na1w0vh12pz02drxd93j9";
       type = "gem";
     };
-    version = "2.24.0";
+    version = "2.28.0";
   };
   faker = {
     dependencies = ["i18n"];
@@ -614,10 +614,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hb9wfxyb4ss2vl2mrj1zgdk7dh4yaxghq22gbx62yxj5yb9w4zw";
+      sha256 = "1694ndj701a8q4c4bwxz53kx94ih1rr4pgr4gk7a6c8k4jsbjgwi";
       type = "gem";
     };
-    version = "2.19.0";
+    version = "2.20.0";
   };
   fakeweb = {
     groups = ["test"];
@@ -635,10 +635,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y32gj994ll3zlcqjmwp78r7s03iiwayij6fz2pjpkfywgvp71s6";
+      sha256 = "00palwawk897p5gypw5wjrh93d4p0xz2yl9w93yicb4kq7amh8d4";
       type = "gem";
     };
-    version = "1.9.3";
+    version = "1.10.0";
   };
   faraday-em_http = {
     groups = ["default"];
@@ -918,10 +918,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vdd1kii40qhbr9n8qx71k2gskq6rkl8ygy8hw5hfj8bb5a364xf";
+      sha256 = "0b2qyvnk4yynlg17ymkq4g5xgr275637fhl1mjh0valw3cb1fhhg";
       type = "gem";
     };
-    version = "1.8.11";
+    version = "1.10.0";
   };
   image_optim = {
     dependencies = ["exifr" "fspath" "image_size" "in_threads" "progress"];
@@ -949,30 +949,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m71806p1gm4kxiz4gvkyr8qip16hifn2kdf926jz44jj6kc6bbs";
+      sha256 = "0j9132d4g8prjafgdh4pw948j527kr09m2lvylrcd797il9yd9wi";
       type = "gem";
     };
-    version = "1.5.4";
+    version = "1.6.0";
   };
   ipaddr = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s2cipiyhm1r8igc1n43py5p5r3rdz8lvagaa61jrm62prn7v5b2";
+      sha256 = "13qd34nzpgp3fxfjbvaqg3dcnfr0cgl5vjvcqy0hfllbvfcklnbq";
       type = "gem";
     };
-    version = "1.2.3";
+    version = "1.2.4";
   };
   jmespath = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ylph158dc3ql6cvkik00ab6gf2k1rv2dii63m196xclhkzwfyan";
+      sha256 = "1mnvb80cdg7fzdcs3xscv21p28w4igk5sj5m7m81xp8v2ks87jj0";
       type = "gem";
     };
-    version = "1.5.0";
+    version = "1.6.1";
   };
   jquery-rails = {
     dependencies = ["rails-dom-testing" "railties" "thor"];
@@ -1012,10 +1012,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rkb7gz819g82n3xshb5g8kgv1nvgwg1lm2fk7715pggzcgc4qik";
+      sha256 = "1ahcnfw3lchyyq7ixjfghkw709fbm8mkqsqq9yhd9in3bhzywa88";
       type = "gem";
     };
-    version = "0.2.18";
+    version = "0.2.20";
   };
   jwt = {
     groups = ["default"];
@@ -1080,10 +1080,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vrjm4yqn5l6q5gsl72fmk95fl6j9z1a05gzbrwmsm3gp1a1bgac";
+      sha256 = "15pjm9pa5m3mbv9xvfgfr16q4jyaznsg8y63jz9x4jqr8npw0vx3";
       type = "gem";
     };
-    version = "0.11.2";
+    version = "0.12.0";
   };
   logstash-event = {
     groups = ["default"];
@@ -1111,10 +1111,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09l4rdq5gsnhr7ma7i5ddg8sagkqn122kz8cb244q4hyk9rwmd2w";
+      sha256 = "0mamk8hgdhjcd33jf1w3j2kayvpyyscysvnmbhq3mw5kjji89cam";
       type = "gem";
     };
-    version = "2.10.1";
+    version = "2.11.0";
   };
   loofah = {
     dependencies = ["crass" "nokogiri"];
@@ -1122,10 +1122,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17rvbrqcci1579d7dpbsfmz1f9g7msk82lyh9ip5h29dkrnixcgg";
+      sha256 = "15s6z5bvhdhnqv4wg8zcz3mhbc7i4dbqskv5jvhprz33ak7682km";
       type = "gem";
     };
-    version = "2.13.0";
+    version = "2.16.0";
   };
   lru_redux = {
     groups = ["default"];
@@ -1196,10 +1196,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0589k3ggj6s970mr2jaz8zfcnl5b926birwi6s3b6j3ijf2nh3s3";
+      sha256 = "15gazkvbqffh57if68j2p81pm52ww7j9wibbqpq8xp7c3gxqahgq";
       type = "gem";
     };
-    version = "4.0.0";
+    version = "4.2.0";
   };
   method_source = {
     groups = ["default" "development" "test"];
@@ -1226,10 +1226,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lvxm91hi0pabnkkg47wh1siv56s6slm2mdq1idfm86dyfidfprq";
+      sha256 = "0rapl1sfmfi3bfr68da4ca16yhc0pp93vjwkj7y3rdqrzy3b41hy";
       type = "gem";
     };
-    version = "2.6.1";
+    version = "2.8.0";
   };
   mini_racer = {
     dependencies = ["libv8-node"];
@@ -1237,10 +1237,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1j45mg8fs7i0g6ndbzd9qqs3fhq6wpvlp5s95k6mjn1as71l5l55";
+      sha256 = "0jf9qjz3r06asz14b6f3z7f2y437a1viqfp52sdi71ipj7dk70bs";
       type = "gem";
     };
-    version = "0.6.1";
+    version = "0.6.2";
   };
   mini_scheduler = {
     dependencies = ["sidekiq"];
@@ -1258,10 +1258,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yvln5wx2jfpd9q2pvjdid96vdz1ynnfk8ip913wpx28wp8ww7jn";
+      sha256 = "1dgwyyya821sfj4f92sljsxmmnak2yrzsbckvy82001zgq1n3b41";
       type = "gem";
     };
-    version = "1.1.3";
+    version = "1.4.0";
   };
   mini_suffix = {
     dependencies = ["ffi"];
@@ -1294,17 +1294,6 @@
     };
     version = "1.13.0";
   };
-  mock_redis = {
-    dependencies = ["ruby2_keywords"];
-    groups = ["development" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "10jj7hralc2hmvvm77w71d4dwq9ij5a1lkqyfw6z32saybzmcs99";
-      type = "gem";
-    };
-    version = "0.29.0";
-  };
   msgpack = {
     groups = ["default"];
     platforms = [{
@@ -1314,10 +1303,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06iajjyhx0rvpn4yr3h1hc4w4w3k59bdmfhxnjzzh76wsrdxxrc6";
+      sha256 = "1i0gbypr1yxwfkaxzrk0i1wz4n6v3mw7z24k65jy3q1h5lda5xbw";
       type = "gem";
     };
-    version = "1.4.2";
+    version = "1.5.1";
   };
   multi_json = {
     groups = ["default"];
@@ -1375,10 +1364,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1v02g7k7cxiwdcahvlxrmizn3avj2q6nsjccgilq1idc89cr081b";
+      sha256 = "1g43ii497cwdqhfnaxfl500bq5yfc5hfv5df1lvf6wcjnd708ihd";
       type = "gem";
     };
-    version = "1.12.5";
+    version = "1.13.4";
   };
   oauth = {
     groups = ["default"];
@@ -1406,10 +1395,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fh73xl58n696akgarylfdfmv6l93rfwh3csjjbljr6gvhg4qrz9";
+      sha256 = "0bm8sdh7vz7ss3y21v961rd8nww23w5g4yhgvnd7jk331kdjyyzl";
       type = "gem";
     };
-    version = "3.13.2";
+    version = "3.13.11";
   };
   omniauth = {
     dependencies = ["hashie" "rack"];
@@ -1529,10 +1518,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hkfpm78c2vs1qblnva3k1grijvxh87iixcnyd83s3lxrxsjvag4";
+      sha256 = "07vnk6bb54k4yc06xnwck7php50l09vvlw1ga8wdz0pia461zpzb";
       type = "gem";
     };
-    version = "1.21.0";
+    version = "1.22.1";
   };
   parallel_tests = {
     dependencies = ["parallel"];
@@ -1540,10 +1529,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vsfsfd194xnzjz94ml157w61fnag8jg47b4bssc508kb3vmk20w";
+      sha256 = "01kzjshbim0w5ax7vcjfxvb83x2pglws7qr43x0qkd731f8w10f7";
       type = "gem";
     };
-    version = "3.7.3";
+    version = "3.8.1";
   };
   parser = {
     dependencies = ["ast"];
@@ -1551,20 +1540,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08q20ckhn58m49lccf93p0yv7pkc7hymmcz3di762kb658d5fd38";
+      sha256 = "0xhfghgidj8cbdnqp01f7kvnrv1f60izpkd9dhxsvpdzkfsdg97d";
       type = "gem";
     };
-    version = "3.1.0.0";
+    version = "3.1.2.0";
   };
   pg = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13mfrysrdrh8cka1d96zm0lnfs59i5x2g6ps49r2kz5p3q81xrzj";
+      sha256 = "10ryzmc3r5ja6g90a9ycsxcxsy5872xa1vf01jam0bm74zq3zmi6";
       type = "gem";
     };
-    version = "1.2.3";
+    version = "1.3.5";
   };
   progress = {
     groups = ["default"];
@@ -1614,10 +1603,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+      sha256 = "1f3knlwfwm05sfbaihrxm4g772b79032q14c16q4b38z8bi63qcb";
       type = "gem";
     };
-    version = "4.0.6";
+    version = "4.0.7";
   };
   puma = {
     dependencies = ["nio4r"];
@@ -1625,10 +1614,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xblxnrs0c5m326v7kgr32k4m00cl2ipcf5m0qvyisrw62vd5dbn";
+      sha256 = "0dgr2rybayih2naz3658mbzqwfrg9fxl80zsvhscf6b972kp3jdw";
       type = "gem";
     };
-    version = "5.5.2";
+    version = "5.6.4";
   };
   r2 = {
     groups = ["default"];
@@ -1670,10 +1659,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03hcvjw9nrv0w6yjy2zkv4ivin9xg2wr7xfcvx7rc2msv1gmjb6z";
+      sha256 = "121fqk18x1bd52c2bkz8wkvv9nkgpqphj5aycnb7lkf67jkwic0h";
       type = "gem";
     };
-    version = "2.3.3";
+    version = "3.0.0";
   };
   rack-protection = {
     dependencies = ["rack"];
@@ -1681,10 +1670,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "159a4j4kragqh0z0z8vrpilpmaisnlz3n7kgiyf16bxkwlb3qlhz";
+      sha256 = "1hz6h6d67r217qi202qmxq2xkn3643ay3iybhl3dq3qd6j8nm3b2";
       type = "gem";
     };
-    version = "2.1.0";
+    version = "2.2.0";
   };
   rack-test = {
     dependencies = ["rack"];
@@ -1725,10 +1714,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g3snqmsbdl2jyf2h7q4ds333hizp0j89chca75xv10gv2lq6sa8";
+      sha256 = "145m778yylgrjl2q7zfkq35l5sibyynlx6pyp176ifm146gbf9wf";
       type = "gem";
     };
-    version = "0.7.3";
+    version = "0.8.1";
   };
   rails_multisite = {
     dependencies = ["activerecord" "railties"];
@@ -1736,10 +1725,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1j44n1c19gbskzxskdipr5f6lgglpn398x9kcbpw452wwwav8rmf";
+      sha256 = "08fa5yq73ws536nhzd55bjx4gfvh6986zvw33rkg6ql6i8rga68y";
       type = "gem";
     };
-    version = "4.0.0";
+    version = "4.0.1";
   };
   railties = {
     dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"];
@@ -1747,10 +1736,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kwpm068cqys34p2g0j3l1g0cd5f3kxnsay5v7lmbd0sgarac0vy";
+      sha256 = "0g6hvhvqdmgabcpmdiby4b77ni3rsgd5p7sd1qkqj34r4an0ldyd";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.7";
   };
   rainbow = {
     groups = ["default" "development" "test"];
@@ -1793,10 +1782,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qsx9c4jr11vr3a9s5j83avczx9qn9rjaf32gxpc2v451hvbc0is";
+      sha256 = "06c50pvxib7wqnv6q0f3n7gzfcrp5chi3sa48hxpkfxc3hhy11fm";
       type = "gem";
     };
-    version = "0.11.0";
+    version = "0.11.1";
   };
   rb-inotify = {
     dependencies = ["ffi"];
@@ -1850,20 +1839,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k65fr7f8ciq7d9nwc5ziw1d32zsxilgmqdlj3359rz5jgb0f5y8";
+      sha256 = "0ndj4lcm8rw01078zr0249grsk93zbda8qsibdvlx69b5ijg1rzf";
       type = "gem";
     };
-    version = "1.8.1";
+    version = "1.8.2";
   };
   regexp_parser = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "008yn8j44414qxhn1c0nxp4a70rq0bqhz70hnjpgx8cjh2g0makp";
+      sha256 = "0a6nxfq3ln1i109jx172n33s73a90l8g04h8p56bmw9phj467h9k";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.3.0";
   };
   request_store = {
     dependencies = ["rack"];
@@ -1871,10 +1860,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cx74kispmnw3ljwb239j65a2j14n8jlsygy372hrsa8mxc71hxi";
+      sha256 = "13ppgmsbrqah08j06bybd3cddv6dml79yzyjn7r8j1src78h98h7";
       type = "gem";
     };
-    version = "1.5.0";
+    version = "1.5.1";
   };
   rexml = {
     groups = ["default" "development" "test"];
@@ -1912,10 +1901,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0444sgvx3ahvgr3c9swpy32kcdpciwgcqahp3pb4m7d23xp1qjdc";
+      sha256 = "10sq4aknch9rzpy8af77rqxk8rr59d33slg1kwg9h7fw9f1spmjn";
       type = "gem";
     };
-    version = "2.1.0";
+    version = "2.1.1";
   };
   rqrcode_core = {
     groups = ["default"];
@@ -1933,10 +1922,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dwai7jnwmdmd7ajbi2q0k0lx1dh88knv5wl7c34wjmf94yv8w5q";
+      sha256 = "19dyb6rcvgi9j2mksd29wfdhfdyzqk7yjhy1ai77559hbhpg61w9";
       type = "gem";
     };
-    version = "3.10.0";
+    version = "3.11.0";
   };
   rspec-core = {
     dependencies = ["rspec-support"];
@@ -1944,10 +1933,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wwnfhxxvrlxlk1a3yxlb82k2f9lm0yn0598x7lk8fksaz4vv6mc";
+      sha256 = "118hkfw9b11hvvalr7qlylwal5h8dihagm9xg7k4gskg7587hca6";
       type = "gem";
     };
-    version = "3.10.1";
+    version = "3.11.0";
   };
   rspec-expectations = {
     dependencies = ["diff-lcs" "rspec-support"];
@@ -1955,10 +1944,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qrj2j9jcd3m4aksk4kbv439882yl3z1harv2jrybrgjgdzdz7zs";
+      sha256 = "001ihayil7jpfxdlxlhakvz02kx0nk5m1w0bz6z8izdx0nc8bh53";
       type = "gem";
     };
-    version = "3.10.2";
+    version = "3.11.0";
   };
   rspec-html-matchers = {
     dependencies = ["nokogiri" "rspec"];
@@ -1977,10 +1966,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1d13g6kipqqc9lmwz5b244pdwc97z15vcbnbq6n9rlf32bipdz4k";
+      sha256 = "07vagjxdm5a6s103y8zkcnja6avpl8r196hrpiffmg7sk83dqdsm";
       type = "gem";
     };
-    version = "3.10.2";
+    version = "3.11.1";
   };
   rspec-rails = {
     dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"];
@@ -1988,20 +1977,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "152yz205p8zi5nxxhs8z581rjdvvqsfjndklkvn11f2vi50nv7n9";
+      sha256 = "0jj5zs9h2ll8iz699ac4bysih7y4csnf8h5h80bm6ppbf02ly8fa";
       type = "gem";
     };
-    version = "5.0.2";
+    version = "5.1.1";
   };
   rspec-support = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pjckrh8q6sqxy38xw7f4ziylq1983k84xh927s6352pps68zj35";
+      sha256 = "0xfk4pla77251n39zf4n792m1rhg5sn1kp63yvpvvysany34la03";
       type = "gem";
     };
-    version = "3.10.3";
+    version = "3.11.0";
   };
   rss = {
     dependencies = ["rexml"];
@@ -2020,10 +2009,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dma3j5vfjhyclg8y0gsp44vs4wn9chf4jgfhc9r6ws018xrbxzd";
+      sha256 = "00gm5qbf56shi655hwxzas74avsfv8b91v6i8v06i4jdw8y4qky2";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.1";
   };
   rtlit = {
     groups = ["assets"];
@@ -2041,10 +2030,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "141ff5mdqi8an8q00qw8kchzil7ck2dzalkk3vk176l0s6hljcbj";
+      sha256 = "00d9nzlnbxr3jqkya2b2rcahs9l22qpdk5qf3y7pws8m555l8slk";
       type = "gem";
     };
-    version = "1.25.0";
+    version = "1.27.0";
   };
   rubocop-ast = {
     dependencies = ["parser"];
@@ -2052,10 +2041,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xrij42166a71ixfpfr1pildqdrcmc0cb4906h2s8sk4kqdyngih";
+      sha256 = "1k9izkr5rhw3zc309yjp17z7496l74j4li3zrcgpgqfnqwz695qx";
       type = "gem";
     };
-    version = "1.15.1";
+    version = "1.17.0";
   };
   rubocop-discourse = {
     dependencies = ["rubocop" "rubocop-rspec"];
@@ -2074,10 +2063,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1d76haw5gjpxlfanfzicn7sb5gziyizaksm7i999p7p5dmy5vf9q";
+      sha256 = "051gq9pz49iv4gq34d3n089iaa6cb418n2fhin6gd6fpysbi3nf6";
       type = "gem";
     };
-    version = "2.7.0";
+    version = "2.9.0";
   };
   ruby-prof = {
     groups = ["development"];
@@ -2195,10 +2184,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k38cbwhcj9ncfzlgfmvq2zqfdvldln58w8s8v89m0jqlhnhsqhj";
+      sha256 = "0fq3nxpj1c9s2bi056p9cldb7zy45bgdkjq8721zypw1pkvllb7f";
       type = "gem";
     };
-    version = "6.3.1";
+    version = "6.4.1";
   };
   simplecov = {
     dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"];
@@ -2226,10 +2215,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19r15hyvh52jx7fmsrcflb58xh8l7l0zx4sxkh3hqzhq68y81pjl";
+      sha256 = "0a5l0733hj7sk51j81ykfmlk2vd5vaijlq9d5fn165yyx3xii52j";
       type = "gem";
     };
-    version = "0.1.3";
+    version = "0.1.4";
   };
   sprockets = {
     dependencies = ["concurrent-ruby" "rack"];
@@ -2237,10 +2226,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay";
+      sha256 = "19k5cwg8gyb6lkmz4kab7c5nlplpgj64jy7vw8p5l2i2ysq5hym0";
       type = "gem";
     };
-    version = "3.7.2";
+    version = "4.0.3";
   };
   sprockets-rails = {
     dependencies = ["actionpack" "activesupport" "sprockets"];
@@ -2272,20 +2261,20 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06lz70k8c0r7fyxk1nc3idh14x7nvsr21ydm1bsmbj00jyhmfzsn";
+      sha256 = "19rnk17rz0lhf7l9awy0s7xxyw91ydcqxlx0576xvwyi79jh6a2m";
       type = "gem";
     };
-    version = "0.2.17";
+    version = "0.2.19";
   };
   test-prof = {
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vg0zjfgibdcgkzb4c25v0f4v6v8mvpzvgcag194rwglmkkyrwkx";
+      sha256 = "04yxdm2cdhwp0wsp8891f06cprp4442p3mlgpdc4pziflpfvaw05";
       type = "gem";
     };
-    version = "1.0.7";
+    version = "1.0.8";
   };
   thor = {
     groups = ["default" "development" "test"];
@@ -2345,10 +2334,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jmbimpnpjdzz8hlrppgl9spm99qh3qzbx0b81k3gkgwba8nk3yd";
+      sha256 = "0bf120xbq23zjyf8zi8h1576d71g58srr8rndig0whn10w72vrxz";
       type = "gem";
     };
-    version = "0.0.8";
+    version = "0.0.8.1";
   };
   unicode-display_width = {
     groups = ["default" "development" "test"];
@@ -2382,10 +2371,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1614dqnky0f9f1znj0lih8i184vfps86md93dw0kxrg3af9gnqb4";
+      sha256 = "1dfvqixshwvm82b9qwdidvnkavdj7s0fbdbmyd4knkl6l3j9xcwr";
       type = "gem";
     };
-    version = "1.14.2";
+    version = "1.16.0";
   };
   uri_template = {
     groups = ["default"];
@@ -2444,9 +2433,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lmg9x683gr9mkrbq9df2m0zb0650mdfxqna0bs10js44inv7znx";
+      sha256 = "09bq7j2p6mkbxnsg71s253dm2463kg51xc7bmjcxgyblqbh4ln7m";
       type = "gem";
     };
-    version = "2.5.3";
+    version = "2.5.4";
   };
 }
diff --git a/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch b/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch
index 2541e7311b0b9..88ebc1337487b 100644
--- a/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch
+++ b/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch
@@ -2,7 +2,7 @@ diff --git a/config/unicorn.conf.rb b/config/unicorn.conf.rb
 index e69979adfe..68cb04a036 100644
 --- a/config/unicorn.conf.rb
 +++ b/config/unicorn.conf.rb
-@@ -27,17 +27,9 @@ pid (ENV["UNICORN_PID_PATH"] || "#{discourse_path}/tmp/pids/unicorn.pid")
+@@ -27,18 +27,10 @@ pid (ENV["UNICORN_PID_PATH"] || "#{discourse_path}/tmp/pids/unicorn.pid")
  
  if ENV["RAILS_ENV"] != "production"
    logger Logger.new(STDOUT)
diff --git a/pkgs/servers/web-apps/discourse/update.py b/pkgs/servers/web-apps/discourse/update.py
index ebc85c02087a9..64f374bad7038 100755
--- a/pkgs/servers/web-apps/discourse/update.py
+++ b/pkgs/servers/web-apps/discourse/update.py
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#! nix-shell -i python3 -p bundix bundler nix-update nix-universal-prefetch python3 python3Packages.requests python3Packages.click python3Packages.click-log
+#! nix-shell -i python3 -p bundix bundler nix-update nix-universal-prefetch python3 python3Packages.requests python3Packages.click python3Packages.click-log prefetch-yarn-deps
 from __future__ import annotations
 
 import click
@@ -104,10 +104,17 @@ class DiscourseRepo:
 
         return self._latest_commit_sha
 
+    def get_yarn_lock_hash(self, rev: str):
+        yarnLockText = self.get_file('app/assets/javascripts/yarn.lock', rev)
+        with tempfile.NamedTemporaryFile(mode='w') as lockFile:
+            lockFile.write(yarnLockText)
+            return subprocess.check_output(['prefetch-yarn-deps', lockFile.name]).decode('utf-8').strip()
+
     def get_file(self, filepath, rev):
-        """returns file contents at a given rev :param filepath: the path to
-        the file, relative to the repo root :param rev: the rev to
-        fetch at :return:
+        """Return file contents at a given rev.
+
+        :param str filepath: the path to the file, relative to the repo root
+        :param str rev: the rev to fetch at :return:
 
         """
         r = requests.get(f'https://raw.githubusercontent.com/{self.owner}/{self.repo}/{rev}/{filepath}')
@@ -116,7 +123,7 @@ class DiscourseRepo:
 
 
 def _call_nix_update(pkg, version):
-    """calls nix-update from nixpkgs root dir"""
+    """Call nix-update from nixpkgs root dir."""
     nixpkgs_path = Path(__file__).parent / '../../../../'
     return subprocess.check_output(['nix-update', pkg, '--version', version], cwd=nixpkgs_path)
 
@@ -215,7 +222,7 @@ def print_diffs(rev, reverse):
 def update(rev):
     """Update gem files and version.
 
-    REV should be the git rev to update to ('vX.Y.Z[.betaA]') or
+    REV: the git rev to update to ('vX.Y.Z[.betaA]') or
     'latest'; defaults to 'latest'.
 
     """
@@ -241,12 +248,39 @@ def update(rev):
 
     _call_nix_update('discourse', version.version)
 
+    old_yarn_hash = _nix_eval('discourse.assets.yarnOfflineCache.outputHash')
+    new_yarn_hash = repo.get_yarn_lock_hash(version.tag)
+    click.echo(f"Updating yarn lock hash, {old_yarn_hash} -> {new_yarn_hash}")
+    with open(Path(__file__).parent / "default.nix", 'r+') as f:
+        content = f.read()
+        content = content.replace(old_yarn_hash, new_yarn_hash)
+        f.seek(0)
+        f.write(content)
+        f.truncate()
+
 
 @cli.command()
-def update_plugins():
-    """Update plugins to their latest revision.
+@click.argument('rev', default='latest')
+def update_mail_receiver(rev):
+    """Update discourse-mail-receiver.
+
+    REV: the git rev to update to ('vX.Y.Z') or 'latest'; defaults to
+    'latest'.
 
     """
+    repo = DiscourseRepo(repo="mail-receiver")
+
+    if rev == 'latest':
+        version = repo.versions[0]
+    else:
+        version = DiscourseVersion(rev)
+
+    _call_nix_update('discourse-mail-receiver', version.version)
+
+
+@cli.command()
+def update_plugins():
+    """Update plugins to their latest revision."""
     plugins = [
         {'name': 'discourse-assign'},
         {'name': 'discourse-calendar'},
diff --git a/pkgs/servers/web-apps/invoiceplane/default.nix b/pkgs/servers/web-apps/invoiceplane/default.nix
index 6c9ffd44b9d73..fa79997fbd01b 100644
--- a/pkgs/servers/web-apps/invoiceplane/default.nix
+++ b/pkgs/servers/web-apps/invoiceplane/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, writeText, unzip, nixosTests }:
+{ lib, stdenv, fetchurl, writeText, unzip, nixosTests, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "invoiceplane";
@@ -9,6 +9,37 @@ stdenv.mkDerivation rec {
     sha256 = "137g0xps4kb3j7f5gz84ql18iggbya6d9dnrfp05g2qcbbp8kqad";
   };
 
+  patches = [
+
+    # Fix CVE-2021-29024, unauthenticated directory listing
+    # Should be included in a later release > 1.5.11
+    # https://github.com/NixOS/nixpkgs/issues/166655
+    # https://github.com/InvoicePlane/InvoicePlane/pull/754
+    (fetchpatch {
+      url = "https://patch-diff.githubusercontent.com/raw/InvoicePlane/InvoicePlane/pull/754.patch";
+      sha256 = "sha256-EHXw7Zqli/nA3tPIrhxpt8ueXvDtshz0XRzZT78sdQk=";
+    })
+
+    # Fix CVE-2021-29023, password reset rate-limiting
+    # Should be included in a later release > 1.5.11
+    # https://github.com/NixOS/nixpkgs/issues/166655
+    # https://github.com/InvoicePlane/InvoicePlane/pull/739
+    (fetchpatch {
+      url = "https://patch-diff.githubusercontent.com/raw/InvoicePlane/InvoicePlane/pull/739.patch";
+      sha256 = "sha256-6ksJjW6awr3lZsDRxa22pCcRGBVBYyV8+TbhOp6HBq0=";
+    })
+
+    # Fix CVE-2021-29022, full path disclosure
+    # Should be included in a later release > 1.5.11
+    # https://github.com/NixOS/nixpkgs/issues/166655
+    # https://github.com/InvoicePlane/InvoicePlane/pull/767
+    #(fetchpatch {
+    #  url = "https://patch-diff.githubusercontent.com/raw/InvoicePlane/InvoicePlane/pull/767.patch";
+    #  sha256 = "sha256-rSWDH8KeHSRWLyQEa7RSwv+8+ja9etTz+6Q9XThuwUo=";
+    #})
+
+  ];
+
   nativeBuildInputs = [ unzip ];
 
   sourceRoot = ".";
diff --git a/pkgs/servers/web-apps/jitsi-meet/default.nix b/pkgs/servers/web-apps/jitsi-meet/default.nix
index d63fe8192372a..e31327927fa98 100644
--- a/pkgs/servers/web-apps/jitsi-meet/default.nix
+++ b/pkgs/servers/web-apps/jitsi-meet/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jitsi-meet";
-  version = "1.0.5818";
+  version = "1.0.6091";
 
   src = fetchurl {
     url = "https://download.jitsi.org/jitsi-meet/src/jitsi-meet-${version}.tar.bz2";
-    sha256 = "oVZoYEkYQd8dy1m0+1i/uIQ/gRipvJBXmgYphbBhicY=";
+    sha256 = "lYQGrH7D2xsRdwDC0yXB+tt4nOawEkq9A5tDIwl6pRk=";
   };
 
   dontBuild = true;
diff --git a/pkgs/servers/web-apps/lemmy/update.sh b/pkgs/servers/web-apps/lemmy/update.sh
index 62159618ce2fa..ebe46e97a2944 100755
--- a/pkgs/servers/web-apps/lemmy/update.sh
+++ b/pkgs/servers/web-apps/lemmy/update.sh
@@ -3,6 +3,8 @@
 
 # TODO set to `verbose` or `extdebug` once implemented in oil
 shopt --set xtrace
+# we need failures inside of command subs to get the correct dependency sha256
+shopt --unset inherit_errexit
 
 const directory = $(dirname $0 | xargs realpath)
 const owner = "LemmyNet"
diff --git a/pkgs/servers/web-apps/moodle/default.nix b/pkgs/servers/web-apps/moodle/default.nix
index 0df0b83109a4c..77f02e7a78cd7 100644
--- a/pkgs/servers/web-apps/moodle/default.nix
+++ b/pkgs/servers/web-apps/moodle/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, writeText, plugins ? [ ] }:
 
 let
-  version = "3.11.5";
+  version = "3.11.6";
   stableVersion = lib.concatStrings (lib.take 2 (lib.splitVersion version));
 
 in stdenv.mkDerivation rec {
@@ -10,7 +10,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://download.moodle.org/stable${stableVersion}/${pname}-${version}.tgz";
-    sha256 = "sha256-KFitrMThEcx7pU/+jmP8casEyg6/FlhpvjfIjf31vw0=";
+    sha256 = "sha256-g3qHYkxiXb18vJ23THUw8ej+s5SgIkJpmjQmmARwQhs=";
   };
 
   phpConfig = writeText "config.php" ''
diff --git a/pkgs/servers/web-apps/netbox/default.nix b/pkgs/servers/web-apps/netbox/default.nix
index a8abcf9d85737..988076947bc21 100644
--- a/pkgs/servers/web-apps/netbox/default.nix
+++ b/pkgs/servers/web-apps/netbox/default.nix
@@ -10,15 +10,6 @@ let
   py = python3.override {
     packageOverrides = self: super: {
       django = super.django_3;
-      graphql-core = super.graphql-core.overridePythonAttrs (old: rec {
-        version = "3.1.7";
-        src = fetchFromGitHub {
-          owner = "graphql-python";
-          repo = old.pname;
-          rev = "v${version}";
-          sha256 = "1mwwh55qd5bcpvgy6pyliwn8jkmj4yk4d2pqb6mdkgqhdic2081l";
-        };
-      });
       jsonschema = super.jsonschema.overridePythonAttrs (old: rec {
         version = "3.2.0";
         src = self.fetchPypi {
@@ -28,14 +19,26 @@ let
         };
       });
       lxml = super.lxml.overridePythonAttrs (old: rec {
-        pname = "lxml";
         version = "4.6.5";
-
         src = self.fetchPypi {
-          inherit pname version;
+          pname = old.pname;
+          inherit version;
           sha256 = "6e84edecc3a82f90d44ddee2ee2a2630d4994b8471816e226d2b771cda7ac4ca";
         };
       });
+      werkzeug = super.werkzeug.overridePythonAttrs (old: rec {
+        version = "2.0.3";
+        src = self.fetchPypi {
+          pname = "Werkzeug";
+          inherit version;
+          sha256 = "sha256-uGP4/wV8UiFktgZ8niiwQRYbS+W6TQ2s7qpQoWOCLTw=";
+        };
+      });
+      sentry-sdk = super.sentry-sdk.overridePythonAttrs (old: rec {
+        disabledTestPaths = old.disabledTestPaths ++ [
+          "tests/integrations/flask/test_flask.py"
+        ];
+      });
     };
   };
 
@@ -43,13 +46,13 @@ let
 in
 py.pkgs.buildPythonApplication rec {
     pname = "netbox";
-    version = "3.1.10";
+    version = "3.2.1";
 
     src = fetchFromGitHub {
       owner = "netbox-community";
       repo = pname;
       rev = "v${version}";
-      sha256 = "sha256-qREq4FJHHTA9Vm6f9kSfiYqur2omFmdsoZ4OdaPFcpU=";
+      sha256 = "sha256-iA0KIgaHQh0OsN/tXmTATIlvnf0aLRdjeQ6VkiR9VJ4=";
     };
 
     format = "other";
@@ -57,6 +60,7 @@ py.pkgs.buildPythonApplication rec {
     patches = [
       # Allow setting the STATIC_ROOT from within the configuration and setting a custom redis URL
       ./config.patch
+      ./graphql-3_2_0.patch
     ];
 
     propagatedBuildInputs = with py.pkgs; [
@@ -75,6 +79,7 @@ py.pkgs.buildPythonApplication rec {
       django-timezone-field
       djangorestframework
       drf-yasg
+      swagger-spec-validator # from drf-yasg[validation]
       graphene-django
       jinja2
       markdown
diff --git a/pkgs/servers/web-apps/netbox/graphql-3_2_0.patch b/pkgs/servers/web-apps/netbox/graphql-3_2_0.patch
new file mode 100644
index 0000000000000..1e97b7d85ce01
--- /dev/null
+++ b/pkgs/servers/web-apps/netbox/graphql-3_2_0.patch
@@ -0,0 +1,21 @@
+diff --git a/netbox/netbox/graphql/scalars.py b/netbox/netbox/graphql/scalars.py
+index 7d14189dd..0a18e79d2 100644
+--- a/netbox/netbox/graphql/scalars.py
++++ b/netbox/netbox/graphql/scalars.py
+@@ -1,6 +1,6 @@
+ from graphene import Scalar
+ from graphql.language import ast
+-from graphql.type.scalars import MAX_INT, MIN_INT
++from graphql.type.scalars import GRAPHQL_MAX_INT, GRAPHQL_MIN_INT
+ 
+ 
+ class BigInt(Scalar):
+@@ -10,7 +10,7 @@ class BigInt(Scalar):
+     @staticmethod
+     def to_float(value):
+         num = int(value)
+-        if num > MAX_INT or num < MIN_INT:
++        if num > GRAPHQL_MAX_INT or num < GRAPHQL_MIN_INT:
+             return float(num)
+         return num
+ 
diff --git a/pkgs/servers/web-apps/nifi/default.nix b/pkgs/servers/web-apps/nifi/default.nix
new file mode 100644
index 0000000000000..f25c1931501e4
--- /dev/null
+++ b/pkgs/servers/web-apps/nifi/default.nix
@@ -0,0 +1,45 @@
+{ lib, stdenv, fetchurl, makeWrapper, jre8, nixosTests }:
+
+stdenv.mkDerivation rec {
+  pname = "nifi";
+  version = "1.16.0";
+
+  src = fetchurl {
+    url = "https://dlcdn.apache.org/nifi/${version}/nifi-${version}-bin.tar.gz";
+    sha256 = "sha256-BE990mVSocO+UuMa9kULJcbXbqiX8oquZQTQKSRPe4g=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre8 ];
+
+  installPhase = ''
+    mv ../$sourceRoot $out
+    rm -f $out/bin/*bat
+    rm -rf $out/extensions
+    mkdir -p $out/share/nifi
+    mv $out/conf $out/share/nifi
+    mv $out/docs $out/share/nifi
+    mv $out/{LICENSE,NOTICE,README} $out/share/nifi
+
+    substituteInPlace $out/bin/nifi.sh \
+      --replace "/bin/sh" "${stdenv.shell}"
+    substituteInPlace $out/bin/nifi-env.sh \
+      --replace "#export JAVA_HOME=/usr/java/jdk1.8.0/" "export JAVA_HOME=${jre8}"
+  '';
+
+  passthru = {
+    tests.nifi = nixosTests.nifi;
+  };
+
+  meta = with lib; {
+    description = "Easy to use, powerful, and reliable system to process and distribute data";
+    longDescription = ''
+      Apache NiFi supports powerful and scalable directed graphs of data routing,
+      transformation, and system mediation logic.
+    '';
+    license = licenses.asl20;
+    homepage = "https://nifi.apache.org";
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ izorkin ];
+  };
+}
diff --git a/pkgs/servers/web-apps/virtlyst/default.nix b/pkgs/servers/web-apps/virtlyst/default.nix
index 3ff42050eb2d0..d6a72916fae30 100644
--- a/pkgs/servers/web-apps/virtlyst/default.nix
+++ b/pkgs/servers/web-apps/virtlyst/default.nix
@@ -18,9 +18,13 @@ stdenv.mkDerivation rec {
   dontWrapQtApps = true;
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/lib
-    cp src/libVirtlyst.so $out/lib
+    cp src/libVirtlyst${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib
     cp -r ../root $out
+
+    runHook postInstall
   '';
 
   patches = [ ./add-admin-password-env.patch ];
@@ -29,6 +33,7 @@ stdenv.mkDerivation rec {
     description = "Web interface to manage virtual machines with libvirt";
     homepage = "https://github.com/cutelyst/Virtlyst";
     license = licenses.agpl3Plus;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ fpletz ];
   };
 }
diff --git a/pkgs/servers/web-apps/wiki-js/default.nix b/pkgs/servers/web-apps/wiki-js/default.nix
index f4e7775c400f0..c0f94b1bca774 100644
--- a/pkgs/servers/web-apps/wiki-js/default.nix
+++ b/pkgs/servers/web-apps/wiki-js/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wiki-js";
-  version = "2.5.276";
+  version = "2.5.277";
 
   src = fetchurl {
     url = "https://github.com/Requarks/wiki/releases/download/v${version}/${pname}.tar.gz";
-    sha256 = "sha256-ulx3/yj5wxmHsep0+93xpy6VeQJkMXRjGd/xx2F1zII=";
+    sha256 = "sha256-YLw0DR4dbPfNY56lNybEQFXFEVPZ99sQkwDl6gtz40E=";
   };
 
   sourceRoot = ".";
@@ -21,7 +21,10 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  passthru.tests = { inherit (nixosTests) wiki-js; };
+  passthru = {
+    tests = { inherit (nixosTests) wiki-js; };
+    updateScript = ./update.sh;
+  };
 
   meta = with lib; {
     homepage = "https://js.wiki/";
diff --git a/pkgs/servers/web-apps/wiki-js/update.sh b/pkgs/servers/web-apps/wiki-js/update.sh
new file mode 100755
index 0000000000000..63015800e6913
--- /dev/null
+++ b/pkgs/servers/web-apps/wiki-js/update.sh
@@ -0,0 +1,13 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl common-updater-scripts
+
+oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion wiki-js" | tr -d '"')"
+latestTag="$(git ls-remote --tags --sort="v:refname" https://github.com/Requarks/wiki.git | tail -1 | awk '{ print $2 }' | sed -E "s,^refs/tags/v(.*)$,\1,")"
+
+targetVersion="${1:-$latestTag}"
+if [ ! "${oldVersion}" = "${targetVersion}" ]; then
+  update-source-version wiki-js "${targetVersion}"
+  nix-build -A wiki-js
+else
+  echo "wiki-js is already up-to-date"
+fi
diff --git a/pkgs/servers/web-apps/wordpress/default.nix b/pkgs/servers/web-apps/wordpress/default.nix
index 1e6b40865ee35..f1c43bde3ce09 100644
--- a/pkgs/servers/web-apps/wordpress/default.nix
+++ b/pkgs/servers/web-apps/wordpress/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wordpress";
-  version = "5.9.2";
+  version = "5.9.3";
 
   src = fetchurl {
     url = "https://wordpress.org/${pname}-${version}.tar.gz";
-    sha256 = "sha256-d2Xy3SpWzpIHmXh8x5BKWF9jNlvKK6D3uwbqIGDGn4s=";
+    sha256 = "sha256-cMvqXXLez7Ep9MyObD0BdepkvsaOl5YbbbA3cnilKlY=";
   };
 
   installPhase = ''
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index 932372d2b3dce..0b11138ec237f 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -2127,11 +2127,11 @@ lib.makeScope newScope (self: with self; {
   # THIS IS A GENERATED FILE.  DO NOT EDIT!
   xf86videoati = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, mesa, libGL, libdrm, udev, libpciaccess, xorgserver }: stdenv.mkDerivation {
     pname = "xf86-video-ati";
-    version = "19.1.0";
+    version = "5eba006e4129e8015b822f9e1d2f1e613e252cda";
     builder = ./builder.sh;
     src = fetchurl {
-      url = "mirror://xorg/individual/driver/xf86-video-ati-19.1.0.tar.bz2";
-      sha256 = "0j9w4axsqlycv4v14g53xyhkm9h7d27b2fcv9lrzb9gf54b5m7v5";
+      url = "https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/archive/5eba006e4129e8015b822f9e1d2f1e613e252cda/xf86-video-ati-5eba006e4129e8015b822f9e1d2f1e613e252cda.tar.bz2";
+      sha256 = "0gmymk8207fd9rjliq05l2gvx220h432rj3h75hv2ylr3k9vmp2b";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     nativeBuildInputs = [ pkg-config ];
@@ -2337,11 +2337,11 @@ lib.makeScope newScope (self: with self; {
   # THIS IS A GENERATED FILE.  DO NOT EDIT!
   xf86videonouveau = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, udev, libpciaccess, xorgserver }: stdenv.mkDerivation {
     pname = "xf86-video-nouveau";
-    version = "1.0.17";
+    version = "3ee7cbca8f9144a3bb5be7f71ce70558f548d268";
     builder = ./builder.sh;
     src = fetchurl {
-      url = "mirror://xorg/individual/driver/xf86-video-nouveau-1.0.17.tar.bz2";
-      sha256 = "0sqm1jwjg15sp8v7039y2hsbhph8gpjd2bdzcqqiij2mgbi254s9";
+      url = "https://gitlab.freedesktop.org/xorg/driver/xf86-video-nouveau/-/archive/3ee7cbca8f9144a3bb5be7f71ce70558f548d268/xf86-video-nouveau-3ee7cbca8f9144a3bb5be7f71ce70558f548d268.tar.bz2";
+      sha256 = "0rhs3z274jdzd82pcsl25xn8hmw6i4cxs2kwfnphpfhxbbkiq7wl";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     nativeBuildInputs = [ pkg-config ];
@@ -3100,17 +3100,17 @@ lib.makeScope newScope (self: with self; {
   }) {};
 
   # THIS IS A GENERATED FILE.  DO NOT EDIT!
-  xorgserver = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, openssl, libX11, libXau, libXaw, libxcb, xcbutil, xcbutilwm, xcbutilimage, xcbutilkeysyms, xcbutilrenderutil, libXdmcp, libXfixes, libxkbfile, libXmu, libXpm, libXrender, libXres, libXt }: stdenv.mkDerivation {
+  xorgserver = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, openssl, libX11, libXau, libxcb, xcbutil, xcbutilwm, xcbutilimage, xcbutilkeysyms, xcbutilrenderutil, libXdmcp, libXfixes, libxkbfile }: stdenv.mkDerivation {
     pname = "xorg-server";
-    version = "1.20.13";
+    version = "21.1.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = "mirror://xorg/individual/xserver/xorg-server-1.20.13.tar.xz";
-      sha256 = "003371ad64bz7i2hx7idnh90yw12dbh116ssy40s70balnb4xaj0";
+      url = "mirror://xorg/individual/xserver/xorg-server-21.1.3.tar.xz";
+      sha256 = "1rgbrld7spg7plkv3c3bbnlnszpflk5z1mqbjrmi2ymlnvasmmk1";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     nativeBuildInputs = [ pkg-config ];
-    buildInputs = [ xorgproto openssl libX11 libXau libXaw libxcb xcbutil xcbutilwm xcbutilimage xcbutilkeysyms xcbutilrenderutil libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt ];
+    buildInputs = [ xorgproto openssl libX11 libXau libxcb xcbutil xcbutilwm xcbutilimage xcbutilkeysyms xcbutilrenderutil libXdmcp libXfixes libxkbfile ];
     meta.platforms = lib.platforms.unix;
   }) {};
 
diff --git a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
index bd81f7fa513be..69ff9a70155a4 100755
--- a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
+++ b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
@@ -57,7 +57,7 @@ while (<>) {
       $tarball =~ /\/((?:(?:[A-Za-z0-9]|(?:-[^0-9])|(?:-[0-9]*[a-z]))+))[^\/]*$/;
       die unless defined $1;
       $pkg = $1;
-      $pkg =~ s/-//g;
+      $pkg =~ s/(-|[a-f0-9]{40})//g; # Remove hyphen-minus and SHA-1
       #next unless $pkg eq "xcbutil";
     }
 
@@ -71,8 +71,8 @@ while (<>) {
         next;
     }
 
-    # split by first occurence of hyphen followd by only numbers ends line or another hyphen follows
-    my ($name, $version) = split(/-(?=[.0-9]+(?:$|-))/, $pkgName, 2);
+    # Split by first occurrence of hyphen followed by only numbers, ends line, another hyphen follows, or SHA-1
+    my ($name, $version) = split(/-(?=[.0-9]+(?:$|-)|[a-f0-9]{40})/, $pkgName, 2);
 
     $pkgURLs{$pkg} = $tarball;
     $pkgNames{$pkg} = $name;
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index 3ec0360c0638f..d58a3c929aaac 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -442,6 +442,17 @@ self: super:
 
   xf86videoati = super.xf86videoati.overrideAttrs (attrs: {
     NIX_CFLAGS_COMPILE = "-I${self.xorgserver.dev or self.xorgserver}/include/xorg";
+    nativeBuildInputs = with self; attrs.nativeBuildInputs ++ [ autoreconfHook utilmacros ];
+    patches = [
+      (fetchpatch {
+        url = "https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/commit/e0511968d04b42abf11bc0ffb387f143582bc144.patch";
+        sha256 = "sha256-79nqKuJRgMYXDEMB8IWxdmbxtI/m+Oca1wSLYeGMuEk=";
+      })
+    ];
+  });
+
+  xf86videonouveau = super.xf86videonouveau.overrideAttrs (attrs: {
+    nativeBuildInputs = with self; attrs.nativeBuildInputs ++ [ autoreconfHook utilmacros ];
   });
 
   xf86videovmware = super.xf86videovmware.overrideAttrs (attrs: {
@@ -620,7 +631,7 @@ self: super:
     in attrs //
     (let
       version = lib.getVersion attrs;
-      commonBuildInputs = attrs.buildInputs ++ [ xtrans ];
+      commonBuildInputs = attrs.buildInputs ++ [ libxcvt xtrans ];
       commonPropagatedBuildInputs = [
         zlib libGL libGLU dbus
         xorgproto
@@ -653,28 +664,10 @@ self: super:
       then {
         outputs = [ "out" "dev" ];
         patches = [
-          # https://lists.x.org/archives/xorg-announce/2021-December/003122.html
-          (fpgit "ebce7e2d80e7c80e1dda60f2f0bc886f1106ba60"
-            "sNi16FqN4rS4s8j5+PUVeOQBasccCkB5KvywP7xl28M=" "CVE-2021-4008")
-          (fpgit "b5196750099ae6ae582e1f46bd0a6dad29550e02"
-            "5hgzQXBBaJfhSTa9hs8K2N1fQ6+Vp8TTkertmQhkw8Y=" "CVE-2021-4009")
-          (fpgit "6c4c53010772e3cb4cb8acd54950c8eec9c00d21"
-            "1gGG9RpjLMi7Emwh13/z5CN1+ISLsPL3hJXP5gQcNkE=" "CVE-2021-4010")
-          (fpgit "e56f61c79fc3cee26d83cda0f84ae56d5979f768"
-            "e1KgSXGwwI3GgcYeWaF3KHPmkE4tf9VTqvfTYqRpysY=" "CVE-2021-4011")
-
           # The build process tries to create the specified logdir when building.
           #
           # We set it to /var/log which can't be touched from inside the sandbox causing the build to hard-fail
           ./dont-create-logdir-during-build.patch
-
-          # Fix e.g. xorg.xf86videovmware with libdrm 2.4.108
-          # TODO: remove with xorgserver >= 1.21
-          (fetchpatch {
-            name = "stdbool.patch";
-            url = "https://gitlab.freedesktop.org/xorg/xserver/-/commit/454b3a826edb5fc6d0fea3a9cfd1a5e8fc568747.diff";
-            sha256 = "1l9qg905jvlw3r0kx4xfw5m12pbs0782v2g3267d1m6q4m6fj1zy";
-          })
         ];
         buildInputs = commonBuildInputs ++ [ libdrm mesa ];
         propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ libpciaccess libepoxy ] ++ commonPropagatedBuildInputs ++ lib.optionals stdenv.isLinux [
@@ -835,14 +828,14 @@ self: super:
 
   xf86videointel = super.xf86videointel.overrideAttrs (attrs: {
     # the update script only works with released tarballs :-/
-    name = "xf86-video-intel-2019-12-09";
+    name = "xf86-video-intel-2021-01-15";
     src = fetchFromGitLab {
       domain = "gitlab.freedesktop.org";
       group = "xorg";
       owner = "driver";
       repo = "xf86-video-intel";
-      rev = "f66d39544bb8339130c96d282a80f87ca1606caf";
-      sha256 = "14rwbbn06l8qpx7s5crxghn80vgcx8jmfc7qvivh72d81r0kvywl";
+      rev = "31486f40f8e8f8923ca0799aea84b58799754564";
+      sha256 = "sha256-nqT9VZDb2kAC72ot9UCdwEkM1uuP9NriJePulzrdZlM=";
     };
     buildInputs = attrs.buildInputs ++ [ self.libXScrnSaver self.libXfixes self.libXv self.pixman ];
     nativeBuildInputs = attrs.nativeBuildInputs ++ [autoreconfHook self.utilmacros];
diff --git a/pkgs/servers/x11/xorg/tarballs.list b/pkgs/servers/x11/xorg/tarballs.list
index 96a5ac712f46d..3a0cce1ee0521 100644
--- a/pkgs/servers/x11/xorg/tarballs.list
+++ b/pkgs/servers/x11/xorg/tarballs.list
@@ -90,7 +90,7 @@ mirror://xorg/individual/driver/xf86-video-amdgpu-21.0.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-apm-1.3.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-ark-0.7.5.tar.bz2
 mirror://xorg/individual/driver/xf86-video-ast-1.1.5.tar.bz2
-mirror://xorg/individual/driver/xf86-video-ati-19.1.0.tar.bz2
+https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/archive/5eba006e4129e8015b822f9e1d2f1e613e252cda/xf86-video-ati-5eba006e4129e8015b822f9e1d2f1e613e252cda.tar.bz2
 mirror://xorg/individual/driver/xf86-video-chips-1.4.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-cirrus-1.5.3.tar.bz2
 mirror://xorg/individual/driver/xf86-video-dummy-0.3.8.tar.bz2
@@ -104,7 +104,7 @@ mirror://xorg/individual/driver/xf86-video-intel-2.99.917.tar.bz2
 mirror://xorg/individual/driver/xf86-video-mga-2.0.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-neomagic-1.3.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-newport-0.2.4.tar.bz2
-mirror://xorg/individual/driver/xf86-video-nouveau-1.0.17.tar.bz2
+https://gitlab.freedesktop.org/xorg/driver/xf86-video-nouveau/-/archive/3ee7cbca8f9144a3bb5be7f71ce70558f548d268/xf86-video-nouveau-3ee7cbca8f9144a3bb5be7f71ce70558f548d268.tar.bz2
 mirror://xorg/individual/driver/xf86-video-nv-2.1.21.tar.bz2
 mirror://xorg/individual/driver/xf86-video-omap-0.4.5.tar.bz2
 mirror://xorg/individual/driver/xf86-video-openchrome-0.6.0.tar.bz2
@@ -218,4 +218,4 @@ mirror://xorg/individual/util/lndir-1.0.3.tar.bz2
 mirror://xorg/individual/util/makedepend-1.0.6.tar.bz2
 mirror://xorg/individual/util/util-macros-1.19.3.tar.bz2
 mirror://xorg/individual/util/xorg-cf-files-1.0.7.tar.bz2
-mirror://xorg/individual/xserver/xorg-server-1.20.13.tar.xz
+mirror://xorg/individual/xserver/xorg-server-21.1.3.tar.xz
diff --git a/pkgs/servers/x11/xorg/xwayland.nix b/pkgs/servers/x11/xorg/xwayland.nix
index 53dfdc529cb60..97414481a915f 100644
--- a/pkgs/servers/x11/xorg/xwayland.nix
+++ b/pkgs/servers/x11/xorg/xwayland.nix
@@ -44,10 +44,10 @@
 stdenv.mkDerivation rec {
 
   pname = "xwayland";
-  version = "22.1.0";
+  version = "22.1.1";
   src = fetchurl {
     url = "mirror://xorg/individual/xserver/${pname}-${version}.tar.xz";
-    sha256 = "sha256-F1LW0Kkw5xKStaMI04EevVTYzGjKz/RN5lQmW4YXor8=";
+    sha256 = "sha256-9dDgujfhm7h8YvYdpZcL0gSTnyEgYglkvtTMhJW6plc=";
   };
 
   depsBuildBuild = [
diff --git a/pkgs/servers/xmpp/prosody/default.nix b/pkgs/servers/xmpp/prosody/default.nix
index 1556250447a9a..6b70c4cc9874f 100644
--- a/pkgs/servers/xmpp/prosody/default.nix
+++ b/pkgs/servers/xmpp/prosody/default.nix
@@ -72,17 +72,17 @@ stdenv.mkDerivation rec {
         cp -r $communityModules/mod_${module} $out/lib/prosody/modules/
       '') (lib.lists.unique(nixosModuleDeps ++ withCommunityModules ++ withOnlyInstalledCommunityModules))}
       wrapProgram $out/bin/prosody \
-        --set LUA_PATH "$luaEnvPath" \
-        --set LUA_CPATH "$luaEnvCPath"
+        --prefix LUA_PATH ';' "$luaEnvPath" \
+        --prefix LUA_CPATH ';' "$luaEnvCPath"
       wrapProgram $out/bin/prosodyctl \
         --add-flags '--config "/etc/prosody/prosody.cfg.lua"' \
-        --set LUA_PATH "$luaEnvPath" \
-        --set LUA_CPATH "$luaEnvCPath"
+        --prefix LUA_PATH ';' "$luaEnvPath" \
+        --prefix LUA_CPATH ';' "$luaEnvCPath"
 
       make -C tools/migration install
       wrapProgram $out/bin/prosody-migrator \
-        --set LUA_PATH "$luaEnvPath" \
-        --set LUA_CPATH "$luaEnvCPath"
+        --prefix LUA_PATH ';' "$luaEnvPath" \
+        --prefix LUA_CPATH ';' "$luaEnvCPath"
     '';
 
   passthru = {
diff --git a/pkgs/shells/es/default.nix b/pkgs/shells/es/default.nix
index 52131a214a5eb..8cc49bd39ebd4 100644
--- a/pkgs/shells/es/default.nix
+++ b/pkgs/shells/es/default.nix
@@ -3,11 +3,11 @@
 stdenv.mkDerivation rec {
 
   pname = "es";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchurl {
     url = "https://github.com/wryun/es-shell/releases/download/v${version}/es-${version}.tar.gz";
-    sha256 = "1fplzxc6lncz2lv2fyr2ig23rgg5j96rm2bbl1rs28mik771zd5h";
+    sha256 = "sha256-ySZIK0IITpA+uHHuHrDO/Ana5vGt64QI3Z6TMDXE9d0=";
   };
 
   # The distribution tarball does not have a single top-level directory.
diff --git a/pkgs/shells/fish/oh-my-fish/default.nix b/pkgs/shells/fish/oh-my-fish/default.nix
index e0dca9419ebcc..3ec4e3b12d78e 100644
--- a/pkgs/shells/fish/oh-my-fish/default.nix
+++ b/pkgs/shells/fish/oh-my-fish/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres ];
+    mainProgram = "omf-install";
     platforms = fish.meta.platforms;
   };
 }
diff --git a/pkgs/shells/fish/plugins/fzf-fish.nix b/pkgs/shells/fish/plugins/fzf-fish.nix
index 3467613085837..41ecc70340c84 100644
--- a/pkgs/shells/fish/plugins/fzf-fish.nix
+++ b/pkgs/shells/fish/plugins/fzf-fish.nix
@@ -2,13 +2,13 @@
 
 buildFishPlugin rec {
   pname = "fzf.fish";
-  version = "8.1";
+  version = "8.2";
 
   src = fetchFromGitHub {
     owner = "PatrickF1";
     repo = "fzf.fish";
     rev = "v${version}";
-    sha256 = "sha256-uqYVbRdrcO6StaIim9S8xmb9P67CmXnLEywSeILn4yQ=";
+    sha256 = "sha256-WRrPd/GuXHJ9uYvhwjwp9AEtvbfMlpV0xdgNyfx43ok=";
   };
 
   checkInputs = [ fzf fd util-linux ];
diff --git a/pkgs/shells/nushell/default.nix b/pkgs/shells/nushell/default.nix
index 51261ac1de8b6..7eeaef0f45a2b 100644
--- a/pkgs/shells/nushell/default.nix
+++ b/pkgs/shells/nushell/default.nix
@@ -18,16 +18,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nushell";
-  version = "0.44.0";
+  version = "0.61.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-LMG72XfDHA9dKiBbaB09v0rDdUKRy/Czu/lsYw6jUog=";
+    sha256 = "sha256-1wTMXlFViJh/x+W7WqZ9uf1SV6X4er6SWO6qTjf9C94=";
   };
 
-  cargoSha256 = "sha256-wgaRTf+ZQ7alibCdeCjSQhhR9MC77qM1n0jakDgr114=";
+  cargoSha256 = "sha256-aG5otxeVGBAi8uZd7xRnvwapfKT3kToBiYhFUTYIgHM=";
 
   nativeBuildInputs = [ pkg-config ]
     ++ lib.optionals (withExtraFeatures && stdenv.isLinux) [ python3 ];
diff --git a/pkgs/shells/nushell/use-system-zstd-lib.diff b/pkgs/shells/nushell/use-system-zstd-lib.diff
index 271ad6c692ed1..232ee9420104a 100644
--- a/pkgs/shells/nushell/use-system-zstd-lib.diff
+++ b/pkgs/shells/nushell/use-system-zstd-lib.diff
@@ -1,32 +1,32 @@
 diff --git a/Cargo.lock b/Cargo.lock
-index 8833c3e5..0c90d2fe 100644
+index 4261c06..6d6e537 100644
 --- a/Cargo.lock
 +++ b/Cargo.lock
-@@ -3188,6 +3188,7 @@ dependencies = [
-  "nu_plugin_xpath",
+@@ -2166,6 +2166,7 @@ dependencies = [
   "rstest",
   "serial_test",
+  "tempfile",
 + "zstd-sys",
  ]
-
+ 
  [[package]]
-@@ -6954,4 +6955,5 @@ checksum = "615120c7a2431d16cf1cf979e7fc31ba7a5b5e5707b29c8a99e5dbf8a8392a33"
+@@ -4962,4 +4963,5 @@ checksum = "fc49afa5c8d634e75761feda8c592051e7eeb4683ba827211eb0d731d3402ea8"
  dependencies = [
   "cc",
   "libc",
 + "pkg-config",
  ]
 diff --git a/Cargo.toml b/Cargo.toml
-index 89e8a311..4cc2331a 100644
+index e214da1..b78919a 100644
 --- a/Cargo.toml
 +++ b/Cargo.toml
-@@ -63,6 +63,9 @@ serial_test = "0.5.1"
- hamcrest2 = "0.3.0"
- rstest = "0.10.0"
-
+@@ -67,6 +69,9 @@ hamcrest2 = "0.3.0"
+ rstest = "0.12.0"
+ itertools = "0.10.3"
+ 
 +# Specify that the indirect dependency ztsd-sys should pick up the system zstd C library
 +zstd-sys = { version = "1", features = [ "pkg-config" ] }
 +
- [build-dependencies]
-
- [features]
+ [target.'cfg(windows)'.build-dependencies]
+ embed-resource = "1"
+ 
diff --git a/pkgs/shells/oksh/default.nix b/pkgs/shells/oksh/default.nix
index 9ea851adbbf6a..418a453d9e9a7 100644
--- a/pkgs/shells/oksh/default.nix
+++ b/pkgs/shells/oksh/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub }:
+{ stdenv, lib, fetchFromGitHub, buildPackages }:
 
 stdenv.mkDerivation rec {
   pname = "oksh";
@@ -11,6 +11,12 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-076nD0aPps6n5qkR3LQJ6Kn2g3mkov+/M0qSvxNLZ6o=";
   };
 
+  postPatch = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+    substituteInPlace configure --replace "./conftest" "echo"
+  '';
+
+  configureFlags = [ "--no-strip" ];
+
   meta = with lib; {
     description = "Portable OpenBSD ksh, based on the Public Domain Korn Shell (pdksh)";
     homepage = "https://github.com/ibara/oksh";
diff --git a/pkgs/shells/powershell/default.nix b/pkgs/shells/powershell/default.nix
index 4efa2cd88a728..19ca69ecb9471 100644
--- a/pkgs/shells/powershell/default.nix
+++ b/pkgs/shells/powershell/default.nix
@@ -9,7 +9,7 @@ let archString = if stdenv.isAarch64 then "arm64"
                      else throw "unsupported platform";
     platformSha = if (stdenv.isDarwin && stdenv.isx86_64) then "sha256-h5zjn8wtgHmsJFiGq1rja6kZTZj3Q72W2kH3AexRDQs="
                      else if (stdenv.isDarwin && stdenv.isAarch64) then "sha256-NHM9ZUpBJb59Oq0Ke7DcvaN+bZ9MjSpXBRu5Ng9OVZ0="
-                     else if (stdenv.isLinux && stdenv.isx86_64) then "sha256-kidPtDMkEZ/1r4WIApPZ/BsdJkolpSZ3f72JyDv3798="
+                     else if (stdenv.isLinux && stdenv.isx86_64) then "sha256-QSL0lmxa7rGoNOx7JB310wF3VoUy96e9ZFop5rAvdBM="
                      else if (stdenv.isLinux && stdenv.isAarch64) then "sha256-bUacA4DwjDNlIG7yooXxUGL9AysAogNWuQDvcTqo1sE="
                      else throw "unsupported platform";
     platformLdLibraryPath = if stdenv.isDarwin then "DYLD_FALLBACK_LIBRARY_PATH"
@@ -20,7 +20,7 @@ let archString = if stdenv.isAarch64 then "arm64"
 in
 stdenv.mkDerivation rec {
   pname = "powershell";
-  version = "7.2.1";
+  version = "7.2.2";
 
   src = fetchzip {
     url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-${platformString}-${archString}.tar.gz";
@@ -29,7 +29,8 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ less ] ++ libraries;
-  nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ]
+    ++ lib.optional stdenv.isLinux autoPatchelfHook;
 
   installPhase =
   let
@@ -73,6 +74,7 @@ stdenv.mkDerivation rec {
     description = "Powerful cross-platform (Windows, Linux, and macOS) shell and scripting language based on .NET";
     homepage = "https://github.com/PowerShell/PowerShell";
     maintainers = with maintainers; [ yrashk srgom p3psi ];
+    mainProgram = "pwsh";
     platforms = [ "x86_64-darwin" "x86_64-linux" "aarch64-linux" "aarch64-darwin" ];
     license = with licenses; [ mit ];
   };
diff --git a/pkgs/shells/zsh/agkozak-zsh-prompt/default.nix b/pkgs/shells/zsh/agkozak-zsh-prompt/default.nix
new file mode 100644
index 0000000000000..91d1bd3022b28
--- /dev/null
+++ b/pkgs/shells/zsh/agkozak-zsh-prompt/default.nix
@@ -0,0 +1,31 @@
+{ stdenvNoCC, lib, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "agkozak-zsh-prompt";
+  version = "3.11.1";
+
+  src = fetchFromGitHub {
+    owner = "agkozak";
+    repo = "agkozak-zsh-prompt";
+    rev = "v${version}";
+    sha256 = "sha256-TOfAWxw1uIV0hKV9o4EJjOlp+jmGWCONDex86ipegOY=";
+  };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    plugindir="$out/share/zsh/site-functions"
+
+    mkdir -p "$plugindir"
+    cp -r -- lib/*.zsh agkozak-zsh-prompt.plugin.zsh prompt_agkozak-zsh-prompt_setup "$plugindir"/
+  '';
+
+  meta = with lib; {
+    description = "A fast, asynchronous Zsh prompt";
+    homepage = "https://github.com/agkozak/agkozak-zsh-prompt";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ambroisie ];
+  };
+}
diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix
index 082472b9cd396..f917ce0d68cec 100644
--- a/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -5,15 +5,15 @@
 , git, nix, nixfmt, jq, coreutils, gnused, curl, cacert }:
 
 stdenv.mkDerivation rec {
-  version = "2022-03-31";
+  version = "2022-04-22";
   pname = "oh-my-zsh";
-  rev = "53863e7b3ff0c2e2816e90dab3d870adebdf49c7";
+  rev = "a879ff1515b6bd80eea695c03e22289bd6743718";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "ohmyzsh";
     repo = "ohmyzsh";
-    sha256 = "TQOGSAzcJfcUNTzUcCI5tTlAKD1JYtH9CiPnfHZaA9E=";
+    sha256 = "GFIFxlKCU6XURqZxkCkgZB0a5PW/OuC9KePpmxLAIE4=";
   };
 
   installPhase = ''
diff --git a/pkgs/shells/zsh/spaceship-prompt/default.nix b/pkgs/shells/zsh/spaceship-prompt/default.nix
index 9c3843a7cefd1..5bdcb21f8ddca 100644
--- a/pkgs/shells/zsh/spaceship-prompt/default.nix
+++ b/pkgs/shells/zsh/spaceship-prompt/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "spaceship-prompt";
-  version = "3.16.3";
+  version = "3.16.4";
 
   src = fetchFromGitHub {
     owner = "denysdovhan";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-eIvNfs9c8Ftcnbtg7lNNc2d3OWWpse91yTzcLqoeFqI=";
+    sha256 = "sha256-4G1+K6ENLwChtivR7Ura0vl6Ph9Wae3SOXCW1pNbgHI=";
   };
 
   dontBuild = true;
diff --git a/pkgs/shells/zsh/zsh-prezto/default.nix b/pkgs/shells/zsh/zsh-prezto/default.nix
index 226b920b8f538..e4bbd7a8b64a8 100644
--- a/pkgs/shells/zsh/zsh-prezto/default.nix
+++ b/pkgs/shells/zsh/zsh-prezto/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zsh-prezto";
-  version = "unstable-2021-11-16";
+  version = "unstable-2022-04-05";
 
   src = fetchFromGitHub {
     owner = "sorin-ionescu";
     repo = "prezto";
-    rev = "ecaed1cfa7591d2304d7eb5d69b42b54961a7145";
-    sha256 = "+7KYBHmzXkdMgyj/x7o7Bf8f1DDFJ6nUMWe8vLUxbZo=";
+    rev = "2c663313168490d28f607738e962aa45ada0e26b";
+    sha256 = "05n2801xqdxc5nx0709mak1pr73l7aq5azd9adm0ym7si3vl59sj";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix
index 2465449867cb2..8749e8b755524 100644
--- a/pkgs/stdenv/generic/make-derivation.nix
+++ b/pkgs/stdenv/generic/make-derivation.nix
@@ -219,9 +219,11 @@ else let
           # it again.
           staticMarker = lib.optionalString stdenv.hostPlatform.isStatic "-static";
         in
+        lib.strings.sanitizeDerivationName (
           if attrs ? name
           then attrs.name + hostSuffix
-          else "${attrs.pname}${staticMarker}${hostSuffix}-${attrs.version}";
+          else "${attrs.pname}${staticMarker}${hostSuffix}-${attrs.version}"
+        );
     }) // {
       builder = attrs.realBuilder or stdenv.shell;
       args = attrs.args or ["-e" (attrs.builder or ./default-builder.sh)];
@@ -340,8 +342,9 @@ else let
   # passed to the builder and is not a dependency.  But since we
   # include it in the result, it *is* available to nix-env for queries.
   meta = {
-      # `name` above includes cross-compilation cruft (and is under assert),
-      # lets have a clean always accessible version here.
+      # `name` above includes cross-compilation cruft,
+      # is under assert, and is sanitized.
+      # Let's have a clean always accessible version here.
       name = attrs.name or "${attrs.pname}-${attrs.version}";
 
       # If the packager hasn't specified `outputsToInstall`, choose a default,
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh
index 0777fa830c109..6d30e6c01ffbf 100644
--- a/pkgs/stdenv/generic/setup.sh
+++ b/pkgs/stdenv/generic/setup.sh
@@ -143,14 +143,14 @@ exitHandler() {
             echo "build failed with exit code $exitCode (ignored)"
             mkdir -p "$out/nix-support"
             printf "%s" "$exitCode" > "$out/nix-support/failed"
-            exit 0
+            return 0
         fi
 
     else
         runHook exitHook
     fi
 
-    exit "$exitCode"
+    return "$exitCode"
 }
 
 trap "exitHandler" EXIT
@@ -1305,6 +1305,23 @@ showPhaseHeader() {
 }
 
 
+showPhaseFooter() {
+    local phase="$1"
+    local startTime="$2"
+    local endTime="$3"
+    local delta=$(( endTime - startTime ))
+    (( $delta < 30 )) && return
+
+    local H=$((delta/3600))
+    local M=$((delta%3600/60))
+    local S=$((delta%60))
+    echo -n "$phase completed in "
+    (( $H > 0 )) && echo -n "$H hours "
+    (( $M > 0 )) && echo -n "$M minutes "
+    echo "$S seconds"
+}
+
+
 genericBuild() {
     if [ -f "${buildCommandPath:-}" ]; then
         source "$buildCommandPath"
@@ -1340,11 +1357,20 @@ genericBuild() {
         showPhaseHeader "$curPhase"
         dumpVars
 
+        local startTime=$(date +"%s")
+
         # Evaluate the variable named $curPhase if it exists, otherwise the
         # function named $curPhase.
         eval "${!curPhase:-$curPhase}"
 
+        local endTime=$(date +"%s")
+
+        showPhaseFooter "$curPhase" "$startTime" "$endTime"
+
         if [ "$curPhase" = unpackPhase ]; then
+            # make sure we can cd into the directory
+            [ -z "${sourceRoot}" ] || chmod +x "${sourceRoot}"
+
             cd "${sourceRoot:-.}"
         fi
     done
diff --git a/pkgs/stdenv/linux/bootstrap-files/powerpc64le.nix b/pkgs/stdenv/linux/bootstrap-files/powerpc64le.nix
new file mode 100644
index 0000000000000..9f09a6b60a435
--- /dev/null
+++ b/pkgs/stdenv/linux/bootstrap-files/powerpc64le.nix
@@ -0,0 +1,25 @@
+#
+# Files came from this Hydra build:
+#
+#   https://hydra.nixos.org/build/172142499
+#
+# Which used nixpkgs revision 49a83445c28c4ffb8a1a90a1f68e6150ea48893b
+# to instantiate:
+#
+#   /nix/store/gj272sd56gsj6qpyzh4njpfzwdhviliz-stdenv-bootstrap-tools-powerpc64le-unknown-linux-gnu.drv
+#
+# and then built:
+#
+#   /nix/store/n81pljbd8m0xgypm84krc2bnvqgjrfxx-stdenv-bootstrap-tools-powerpc64le-unknown-linux-gnu
+#
+{
+  busybox = import <nix/fetchurl.nix> {
+    url = "http://tarballs.nixos.org/stdenv-linux/powerpc64le/49a83445c28c4ffb8a1a90a1f68e6150ea48893b/busybox";
+    sha256 = "sha256-UscnfGKOZAKLkPcRtwrbT5Uj8m3Kj9jhkKp9MUc1eCY=";
+    executable = true;
+  };
+  bootstrapTools =import <nix/fetchurl.nix> {
+    url = "http://tarballs.nixos.org/stdenv-linux/powerpc64le/49a83445c28c4ffb8a1a90a1f68e6150ea48893b/bootstrap-tools.tar.xz";
+    sha256 = "sha256-A20GKGn3rM8K2JcU0SApRp3+avUE+bIm1h632AitRzU=";
+  };
+}
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index d2c28b97ff939..e9104dd88cfa1 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -16,6 +16,7 @@
       armv7l-linux = import ./bootstrap-files/armv7l.nix;
       aarch64-linux = import ./bootstrap-files/aarch64.nix;
       mipsel-linux = import ./bootstrap-files/loongson2f.nix;
+      powerpc64le-linux = import ./bootstrap-files/powerpc64le.nix;
       riscv64-linux = import ./bootstrap-files/riscv64.nix;
     };
     musl = {
@@ -204,7 +205,7 @@ in
     # Rebuild binutils to use from stage2 onwards.
     overrides = self: super: {
       binutils-unwrapped = super.binutils-unwrapped.override {
-        gold = false;
+        enableGold = false;
       };
       inherit (prevStage)
         ccWrapperStdenv
diff --git a/pkgs/stdenv/linux/make-bootstrap-tools.nix b/pkgs/stdenv/linux/make-bootstrap-tools.nix
index 84b63e7b8fd0e..2263341b23fca 100644
--- a/pkgs/stdenv/linux/make-bootstrap-tools.nix
+++ b/pkgs/stdenv/linux/make-bootstrap-tools.nix
@@ -37,7 +37,7 @@ in with pkgs; rec {
   bootBinutils = binutils.bintools.override {
     withAllTargets = false;
     # Don't need two linkers, disable whatever's not primary/default.
-    gold = false;
+    enableGold = false;
     # bootstrap is easier w/static
     enableShared = false;
   };
@@ -74,6 +74,9 @@ in with pkgs; rec {
         cp -d ${libc.out}/lib/libresolv*.so* $out/lib
         cp -d ${libc.out}/lib/crt?.o $out/lib
 
+        # Hacky compat with our current unpack-bootstrap-tools.sh
+        ln -s librt.so "$out"/lib/librt-dummy.so
+
         cp -rL ${libc.dev}/include $out
         chmod -R u+w "$out"
 
@@ -172,7 +175,7 @@ in with pkgs; rec {
         for i in as ld ar ranlib nm strip readelf objdump; do
           cp ${bootBinutils.out}/bin/$i $out/bin
         done
-        cp '${lib.getLib binutils.bintools}'/lib/* "$out/lib/"
+        cp -r '${lib.getLib binutils.bintools}'/lib/* "$out/lib/"
 
         chmod -R u+w $out
 
@@ -186,6 +189,7 @@ in with pkgs; rec {
 
         nuke-refs $out/bin/*
         nuke-refs $out/lib/*
+        nuke-refs $out/lib/*/*
         nuke-refs $out/libexec/gcc/*/*/*
         nuke-refs $out/lib/gcc/*/*/*
         nuke-refs $out/lib/gcc/*/*/include-fixed/*{,/*}
diff --git a/pkgs/test/cuda/cuda-library-samples/default.nix b/pkgs/test/cuda/cuda-library-samples/default.nix
deleted file mode 100644
index ff256028cdf01..0000000000000
--- a/pkgs/test/cuda/cuda-library-samples/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ callPackage
-, cudatoolkit_10_1, cudatoolkit_10_2
-, cudatoolkit_11_0, cudatoolkit_11_1, cudatoolkit_11_2, cudatoolkit_11_3, cudatoolkit_11_4
-, cutensor_cudatoolkit_10_1, cutensor_cudatoolkit_10_2
-, cutensor_cudatoolkit_11_0, cutensor_cudatoolkit_11_1, cutensor_cudatoolkit_11_2, cutensor_cudatoolkit_11_3, cutensor_cudatoolkit_11_4
-}:
-
-rec {
-
-  cuda-library-samples_cudatoolkit_10_1 = callPackage ./generic.nix {
-    cudatoolkit = cudatoolkit_10_1;
-    cutensor_cudatoolkit = cutensor_cudatoolkit_10_1;
-  };
-
-  cuda-library-samples_cudatoolkit_10_2 = callPackage ./generic.nix {
-    cudatoolkit = cudatoolkit_10_2;
-    cutensor_cudatoolkit = cutensor_cudatoolkit_10_2;
-  };
-
-  cuda-library-samples_cudatoolkit_10 =
-    cuda-library-samples_cudatoolkit_10_2;
-
-  ##
-
-  cuda-library-samples_cudatoolkit_11_0 = callPackage ./generic.nix {
-    cudatoolkit = cudatoolkit_11_0;
-    cutensor_cudatoolkit = cutensor_cudatoolkit_11_0;
-  };
-
-  cuda-library-samples_cudatoolkit_11_1 = callPackage ./generic.nix {
-    cudatoolkit = cudatoolkit_11_1;
-    cutensor_cudatoolkit = cutensor_cudatoolkit_11_1;
-  };
-
-  cuda-library-samples_cudatoolkit_11_2 = callPackage ./generic.nix {
-    cudatoolkit = cudatoolkit_11_2;
-    cutensor_cudatoolkit = cutensor_cudatoolkit_11_2;
-  };
-
-  cuda-library-samples_cudatoolkit_11_3 = callPackage ./generic.nix {
-    cudatoolkit = cudatoolkit_11_3;
-    cutensor_cudatoolkit = cutensor_cudatoolkit_11_3;
-  };
-
-  cuda-library-samples_cudatoolkit_11_4 = callPackage ./generic.nix {
-    cudatoolkit = cudatoolkit_11_4;
-    cutensor_cudatoolkit = cutensor_cudatoolkit_11_4;
-  };
-
-  cuda-library-samples_cudatoolkit_11 =
-    cuda-library-samples_cudatoolkit_11_4;
-}
diff --git a/pkgs/test/cuda/cuda-library-samples/extension.nix b/pkgs/test/cuda/cuda-library-samples/extension.nix
new file mode 100644
index 0000000000000..4c721a9e9e1bc
--- /dev/null
+++ b/pkgs/test/cuda/cuda-library-samples/extension.nix
@@ -0,0 +1,3 @@
+final: prev: {
+  cuda-library-samples = final.callPackage ./generic.nix { };
+}
diff --git a/pkgs/test/cuda/cuda-library-samples/generic.nix b/pkgs/test/cuda/cuda-library-samples/generic.nix
index 350decef22dc7..f0c30d801a1c9 100644
--- a/pkgs/test/cuda/cuda-library-samples/generic.nix
+++ b/pkgs/test/cuda/cuda-library-samples/generic.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub
 , cmake, addOpenGLRunpath
 , cudatoolkit
-, cutensor_cudatoolkit
+, cutensor
 }:
 
 let
@@ -61,9 +61,9 @@ in
     # CUTENSOR_ROOT is double escaped
     postPatch = ''
       substituteInPlace CMakeLists.txt \
-        --replace "\''${CUTENSOR_ROOT}/include" "${cutensor_cudatoolkit.dev}/include"
+        --replace "\''${CUTENSOR_ROOT}/include" "${cutensor.dev}/include"
     '';
 
-    CUTENSOR_ROOT = cutensor_cudatoolkit;
+    CUTENSOR_ROOT = cutensor;
   });
 }
diff --git a/pkgs/test/cuda/cuda-samples/default.nix b/pkgs/test/cuda/cuda-samples/default.nix
deleted file mode 100644
index 5b46a0651eba9..0000000000000
--- a/pkgs/test/cuda/cuda-samples/default.nix
+++ /dev/null
@@ -1,54 +0,0 @@
-{ callPackage
-, cudatoolkit_10_0, cudatoolkit_10_1, cudatoolkit_10_2
-, cudatoolkit_11_0, cudatoolkit_11_1, cudatoolkit_11_2, cudatoolkit_11_3, cudatoolkit_11_4
-}:
-
-rec {
-  ##
-
-  cuda-samples_cudatoolkit_10_0 = callPackage ./generic.nix {
-    cudatoolkit = cudatoolkit_10_0;
-    sha256 = "1zvh4xsdyc59m87brpcmssxsjlp9dkynh4asnkcmc3g94f53l0jw";
-  };
-
-  cuda-samples_cudatoolkit_10_1 = callPackage ./generic.nix {
-    cudatoolkit = cudatoolkit_10_1;
-    sha256 = "1s8ka0hznrni36ajhzf2gqpdrl8kd8fi047qijxks5l2abc093qd";
-  };
-
-  cuda-samples_cudatoolkit_10_2 = callPackage ./generic.nix {
-    cudatoolkit = cudatoolkit_10_2;
-    sha256 = "01p1innzgh9siacpld6nsqimj8jkg93rk4gj8q4crn62pa5vhd94";
-  };
-
-  cuda-samples_cudatoolkit_10 = cuda-samples_cudatoolkit_10_2;
-
-  ##
-
-  cuda-samples_cudatoolkit_11_0 = callPackage ./generic.nix {
-    cudatoolkit = cudatoolkit_11_0;
-    sha256 = "1n3vjc8c7zdig2xgl5fppavrphqzhdiv9m9nk6smh4f99fwi0705";
-  };
-
-  cuda-samples_cudatoolkit_11_1 = callPackage ./generic.nix {
-    cudatoolkit = cudatoolkit_11_1;
-    sha256 = "1kjixk50i8y1bkiwbdn5lkv342crvkmbvy1xl5j3lsa1ica21kwh";
-  };
-
-  cuda-samples_cudatoolkit_11_2 = callPackage ./generic.nix {
-    cudatoolkit = cudatoolkit_11_2;
-    sha256 = "1p1qjvfbm28l933mmnln02rqrf0cy9kbpsyb488d1haiqzvrazl1";
-  };
-
-  cuda-samples_cudatoolkit_11_3 = callPackage ./generic.nix {
-    cudatoolkit = cudatoolkit_11_3;
-    sha256 = "0kbibb6pgz8j5iq6284axcnmycaha9bw8qlmdp6yfwmnahq1v0yz";
-  };
-
-  cuda-samples_cudatoolkit_11_4 = callPackage ./generic.nix {
-    cudatoolkit = cudatoolkit_11_4;
-    sha256 = "082dkk5y34wyvjgj2p5j1d00rk8xaxb9z0mhvz16bd469r1bw2qk";
-  };
-
-  cuda-samples_cudatoolkit_11 = cuda-samples_cudatoolkit_11_4;
-}
diff --git a/pkgs/test/cuda/cuda-samples/extension.nix b/pkgs/test/cuda/cuda-samples/extension.nix
new file mode 100644
index 0000000000000..4c93845d1db6d
--- /dev/null
+++ b/pkgs/test/cuda/cuda-samples/extension.nix
@@ -0,0 +1,20 @@
+final: prev: let
+
+  sha256 = {
+    "10.0" = "1zvh4xsdyc59m87brpcmssxsjlp9dkynh4asnkcmc3g94f53l0jw";
+    "10.1" = "1s8ka0hznrni36ajhzf2gqpdrl8kd8fi047qijxks5l2abc093qd";
+    "10.2" = "01p1innzgh9siacpld6nsqimj8jkg93rk4gj8q4crn62pa5vhd94";
+    "11.0" = "1n3vjc8c7zdig2xgl5fppavrphqzhdiv9m9nk6smh4f99fwi0705";
+    "11.1" = "1kjixk50i8y1bkiwbdn5lkv342crvkmbvy1xl5j3lsa1ica21kwh";
+    "11.2" = "1p1qjvfbm28l933mmnln02rqrf0cy9kbpsyb488d1haiqzvrazl1";
+    "11.3" = "0kbibb6pgz8j5iq6284axcnmycaha9bw8qlmdp6yfwmnahq1v0yz";
+    "11.4" = "082dkk5y34wyvjgj2p5j1d00rk8xaxb9z0mhvz16bd469r1bw2qk";
+    "11.5" = "sha256-AKRZbke0K59lakhTi8dX2cR2aBuWPZkiQxyKaZTvHrI=";
+    "11.6" = "sha256-AsLNmAplfuQbXg9zt09tXAuFJ524EtTYsQuUlV1tPkE=";
+  }.${prev.cudaVersion};
+
+in {
+  cuda-samples = final.callPackage ./generic.nix {
+    inherit sha256;
+  };
+}
diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix
index 0e1b9c2ac7a0e..63aaf6bb72e71 100644
--- a/pkgs/test/default.nix
+++ b/pkgs/test/default.nix
@@ -59,6 +59,7 @@ with pkgs;
 
   trivial-builders = recurseIntoAttrs {
     writeStringReferencesToFile = callPackage ../build-support/trivial-builders/test/writeStringReferencesToFile.nix {};
+    writeTextFile = callPackage ../build-support/trivial-builders/test/write-text-file.nix {};
     references = callPackage ../build-support/trivial-builders/test/references.nix {};
     overriding = callPackage ../build-support/trivial-builders/test-overriding.nix {};
     concat = callPackage ../build-support/trivial-builders/test/concat-test.nix {};
diff --git a/pkgs/tools/X11/caffeine-ng/default.nix b/pkgs/tools/X11/caffeine-ng/default.nix
index 36d43ea75d4d1..85f196b460eae 100644
--- a/pkgs/tools/X11/caffeine-ng/default.nix
+++ b/pkgs/tools/X11/caffeine-ng/default.nix
@@ -34,6 +34,7 @@ python3Packages.buildPythonApplication rec {
   postInstall = ''
     mkdir -p $out/share
     cp -r share $out/
+    cp -r caffeine/assets/icons $out/share/icons
     # autostart file
     cp -r $out/lib/python*/site-packages/etc $out/etc/
     glib-compile-schemas --strict $out/share/glib-2.0/schemas
diff --git a/pkgs/tools/X11/dragon-drop/default.nix b/pkgs/tools/X11/dragon-drop/default.nix
deleted file mode 100644
index adf43ae8c08db..0000000000000
--- a/pkgs/tools/X11/dragon-drop/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib, stdenv, gtk, pkg-config, fetchFromGitHub }:
-
-stdenv.mkDerivation rec {
-  pname = "dragon-drop";
-  version = "1.1.1";
-
-  src = fetchFromGitHub {
-    owner = "mwh";
-    repo = "dragon";
-    rev = "v${version}";
-    sha256 = "0fgzz39007fdjwq72scp0qygp2v3zc5f1xkm0sxaa8zxm25g1bra";
-  };
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ gtk ];
-
-  installPhase = ''
-    install -D dragon -t $out/bin
-  '';
-
-  meta = with lib; {
-    description = "Simple drag-and-drop source/sink for X";
-    homepage = "https://github.com/mwh/dragon";
-    maintainers = with maintainers; [ jb55 markus1189 ];
-    license = licenses.gpl3;
-    platforms = with platforms; unix;
-  };
-}
diff --git a/pkgs/tools/X11/nx-libs/default.nix b/pkgs/tools/X11/nx-libs/default.nix
index ed28cfbb8d871..64fa84ba4a19f 100644
--- a/pkgs/tools/X11/nx-libs/default.nix
+++ b/pkgs/tools/X11/nx-libs/default.nix
@@ -38,6 +38,12 @@ stdenv.mkDerivation rec {
     ln -s libNX_X11.so.6.3.0
   '';
 
+  preConfigure = ''
+    # binutils 2.37 fix
+    # https://github.com/ArcticaProject/nx-libs/issues/1003
+    substituteInPlace nx-X11/config/cf/Imake.tmpl --replace "clq" "cq"
+  '';
+
   PREFIX=""; # Don't install to $out/usr/local
   installPhase = ''
     make DESTDIR="$out" install
diff --git a/pkgs/tools/X11/obconf/default.nix b/pkgs/tools/X11/obconf/default.nix
index 8074e52c7cf1a..5ffef951d51a7 100644
--- a/pkgs/tools/X11/obconf/default.nix
+++ b/pkgs/tools/X11/obconf/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     autoreconfHook
+    makeWrapper
     pkg-config
   ];
 
@@ -22,7 +23,6 @@ stdenv.mkDerivation rec {
     libSM
     libstartup_notification
     libxml2
-    makeWrapper
     openbox
   ];
 
diff --git a/pkgs/tools/X11/runningx/default.nix b/pkgs/tools/X11/runningx/default.nix
index b3b5233564af4..bc7e6f395703e 100644
--- a/pkgs/tools/X11/runningx/default.nix
+++ b/pkgs/tools/X11/runningx/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation {
     license = lib.licenses.free;
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.romildo ];
+    mainProgram = "RunningX";
   };
 }
diff --git a/pkgs/tools/X11/screen-message/default.nix b/pkgs/tools/X11/screen-message/default.nix
index 58bac8702b703..3701684af8d8d 100644
--- a/pkgs/tools/X11/screen-message/default.nix
+++ b/pkgs/tools/X11/screen-message/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     description = "Displays a short text fullscreen in an X11 window";
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.fpletz ];
+    mainProgram = "sm";
     platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/tools/X11/xdg-utils/default.nix b/pkgs/tools/X11/xdg-utils/default.nix
index f10510051edb7..7d01ee59b3efb 100644
--- a/pkgs/tools/X11/xdg-utils/default.nix
+++ b/pkgs/tools/X11/xdg-utils/default.nix
@@ -1,9 +1,7 @@
-{ lib, stdenv, fetchgit, fetchFromGitHub
+{ lib, stdenv, fetchFromGitLab, fetchFromGitHub
 , file, libxslt, docbook_xml_dtd_412, docbook_xsl, xmlto
 , w3m, gnugrep, gnused, coreutils, xset, perlPackages
-, mimiSupport ? false, gawk ? null }:
-
-assert mimiSupport -> gawk != null;
+, mimiSupport ? false, gawk }:
 
 let
   # A much better xdg-open
@@ -24,8 +22,10 @@ stdenv.mkDerivation rec {
   pname = "xdg-utils";
   version = "unstable-2020-10-21";
 
-  src = fetchgit {
-    url = "https://gitlab.freedesktop.org/xdg/${pname}.git";
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = "xdg";
+    repo = "xdg-utils";
     rev = "d11b33ec7f24cfb1546f6b459611d440013bdc72";
     sha256 = "sha256-8PtXfI8hRneEpnUvIV3M+6ACjlkx0w/NEiJFdGbbHnQ=";
   };
diff --git a/pkgs/applications/misc/xdragon/default.nix b/pkgs/tools/X11/xdragon/default.nix
index 39f291a884937..7061a8f0a1cf6 100644
--- a/pkgs/applications/misc/xdragon/default.nix
+++ b/pkgs/tools/X11/xdragon/default.nix
@@ -2,19 +2,19 @@
 
 stdenv.mkDerivation rec {
   pname = "xdragon";
-  version = "1.1.1";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "mwh";
     repo = "dragon";
     rev = "v${version}";
-    sha256 = "0fgzz39007fdjwq72scp0qygp2v3zc5f1xkm0sxaa8zxm25g1bra";
+    sha256 = "sha256-wqG6idlVvdN+sPwYgWu3UL0la5ssvymZibiak3KeV7M=";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ gtk3 ];
 
-  installFlags = [ "PREFIX=${placeholder "out"}/bin" ];
+  installFlags = [ "PREFIX=${placeholder "out"}" ];
   postInstall = ''
     ln -s $out/bin/dragon $out/bin/xdragon
   '';
diff --git a/pkgs/tools/X11/xmagnify/default.nix b/pkgs/tools/X11/xmagnify/default.nix
index a9cb715be3964..38450c745ee28 100644
--- a/pkgs/tools/X11/xmagnify/default.nix
+++ b/pkgs/tools/X11/xmagnify/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     homepage = "https://gitlab.com/amiloradovsky/magnify";
     license = licenses.mit;  # or GPL2+, optionally
     maintainers = with maintainers; [ amiloradovsky ];
+    mainProgram = "magnify";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/X11/xnee/default.nix b/pkgs/tools/X11/xnee/default.nix
index c3355b8026338..00ebb1ecec23e 100644
--- a/pkgs/tools/X11/xnee/default.nix
+++ b/pkgs/tools/X11/xnee/default.nix
@@ -15,6 +15,12 @@ stdenv.mkDerivation rec {
        do
          sed -i "$i" -e's|/bin/bash|${stdenv.shell}|g ; s|/usr/bin/env bash|${stdenv.shell}|g'
        done
+
+       # Fix for glibc-2.34. For some reason, `LIBSEMA="CCC"` is added
+       # if `sem_init` is part of libc which causes errors like
+       # `gcc: error: CCC: No such file or directory` during the build.
+       substituteInPlace configure \
+        --replace 'LIBSEMA="CCC"' 'LIBSEMA=""'
     '';
 
   buildInputs =
diff --git a/pkgs/tools/X11/xprintidle/default.nix b/pkgs/tools/X11/xprintidle/default.nix
new file mode 100644
index 0000000000000..8835d718333b3
--- /dev/null
+++ b/pkgs/tools/X11/xprintidle/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "xprintidle";
+  version = "0.2.4";
+
+  src = fetchFromGitHub {
+    owner = "g0hl1n";
+    repo = "xprintidle";
+    rev = version;
+    sha256 = "sha256-CgjHTvwQKR/TPQyEWKxN5j97Sh2iec0BQPhC96sfyoI=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    xorg.libXScrnSaver
+    xorg.libX11
+    xorg.libXext
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/g0hl1n/xprintidle";
+    description = "A utility that queries the X server for the user's idle time and prints it to stdout";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/admin/aliyun-cli/default.nix b/pkgs/tools/admin/aliyun-cli/default.nix
index 58fb1bd27cd4f..7747e46b26a52 100644
--- a/pkgs/tools/admin/aliyun-cli/default.nix
+++ b/pkgs/tools/admin/aliyun-cli/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "aliyun-cli";
-  version = "3.0.113";
+  version = "3.0.117";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "aliyun";
     repo = pname;
     fetchSubmodules = true;
-    sha256 = "sha256-+ZbfWFAf7G5mwtSgfGe/oslqIbOqqiwdtP9mWx/3u4w=";
+    sha256 = "sha256-iltyw2Qw7WSq96T/upGwSyjqWK8KOo/pK7HR+25n2js=";
   };
 
-  vendorSha256 = "sha256-FQvBq8+80h7m271gjraV445ayWcpkemOtVswfmHzUM0=";
+  vendorSha256 = "sha256-f3GXkAvTe8rPFWCR5TM4mDK/VOQWt2lrZrfJ/Wvw8Uc=";
 
   subPackages = [ "main" ];
 
@@ -28,5 +28,6 @@ buildGoModule rec {
     changelog = "https://github.com/aliyun/aliyun-cli/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ ornxka ];
+    mainProgram = "aliyun";
   };
 }
diff --git a/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix b/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
index b70ddb76fc1f5..ee083003ae7ba 100644
--- a/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
+++ b/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
@@ -18,6 +18,7 @@ buildGoPackage rec {
     homepage = "https://github.com/awslabs/amazon-ecr-credential-helper";
     license = licenses.asl20;
     maintainers = with maintainers; [ kalbasit ];
+    mainProgram = "docker-credential-ecr-login";
     platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/tools/admin/ansible/default.nix b/pkgs/tools/admin/ansible/default.nix
deleted file mode 100644
index 6be403b9e5343..0000000000000
--- a/pkgs/tools/admin/ansible/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ python3Packages, fetchFromGitHub }:
-
-rec {
-  ansible = ansible_2_12;
-
-  ansible_2_12 = python3Packages.toPythonApplication python3Packages.ansible-core;
-
-  ansible_2_11 = python3Packages.toPythonApplication (python3Packages.ansible-core.overridePythonAttrs (old: rec {
-    pname = "ansible-core";
-    version = "2.11.6";
-
-    src = python3Packages.fetchPypi {
-      inherit pname version;
-      sha256 = "sha256-k9UCg8fFtHbev4PcCJs/Z5uTmouae11ijSjar7s9MDo=";
-    };
-  }));
-
-  ansible_2_10 = python3Packages.toPythonApplication python3Packages.ansible-base;
-
-  # End of support 2021/10/02, End of life 2021/12/31
-  ansible_2_9 = python3Packages.toPythonApplication python3Packages.ansible;
-
-  ansible_2_8 = throw "Ansible 2.8 went end of life on 2021/01/03 and has subsequently been dropped";
-}
diff --git a/pkgs/tools/admin/awscli/default.nix b/pkgs/tools/admin/awscli/default.nix
index 11cf6c53076c4..1319a8b427097 100644
--- a/pkgs/tools/admin/awscli/default.nix
+++ b/pkgs/tools/admin/awscli/default.nix
@@ -35,11 +35,11 @@ let
 in
 with py.pkgs; buildPythonApplication rec {
   pname = "awscli";
-  version = "1.22.35"; # N.B: if you change this, change botocore and boto3 to a matching version too
+  version = "1.22.88"; # N.B: if you change this, change botocore and boto3 to a matching version too
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-GsMclLh/VtPaNjD+XDKqTYeSX29R2aRS7If9G918OWY=";
+    hash = "sha256-fwbejwcT4piC8Zr6+ubxMd+TuF9O4icOentI2GlhYrc=";
   };
 
   # https://github.com/aws/aws-cli/issues/4837
diff --git a/pkgs/tools/admin/awscli2/default.nix b/pkgs/tools/admin/awscli2/default.nix
index 08fb92e4ea63a..061981672d958 100644
--- a/pkgs/tools/admin/awscli2/default.nix
+++ b/pkgs/tools/admin/awscli2/default.nix
@@ -8,24 +8,20 @@ let
   py = python3.override {
     packageOverrides = self: super: {
       awscrt = super.awscrt.overridePythonAttrs (oldAttrs: rec {
-        version = "0.12.4";
+        version = "0.13.5";
         src = self.fetchPypi {
           inherit (oldAttrs) pname;
           inherit version;
-          sha256 = "sha256:1cmfkcv2zzirxsb989vx1hvna9nv24pghcvypl0zaxsjphv97mka";
+          sha256 = "sha256-dUNljMKsbl6eByhEYivWgRJczTBw3N1RVl8r3e898mg=";
         };
       });
-
-      botocore = super.botocore.overridePythonAttrs (oldAttrs: rec {
-        # Releases: https://github.com/boto/botocore/commits/v2
-        version = "2.0.0dev155";
-        src = fetchFromGitHub {
-          owner = "boto";
-          repo = "botocore";
-          rev = "7083e5c204e139dc41f646e0ad85286b5e7c0c23";
-          sha256 = "sha256-aiCc/CXoTem0a9wI/AMBRK3g2BXJi7LpnUY/BxBEKVM=";
+      jmespath = super.jmespath.overridePythonAttrs (oldAttrs: rec {
+        version = "0.10.0";
+        src = self.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "sha256-uF0FZ7hmYUmpMXJxLmiSBzQzPAzn6Jt4s+mH9x5e1Pk=";
         };
-        propagatedBuildInputs = super.botocore.propagatedBuildInputs ++ [ py.pkgs.awscrt ];
       });
     };
   };
@@ -33,19 +29,18 @@ let
 in
 with py.pkgs; buildPythonApplication rec {
   pname = "awscli2";
-  version = "2.4.19"; # N.B: if you change this, change botocore to a matching version too
+  version = "2.5.6"; # N.B: if you change this, check if overrides are still up-to-date
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "aws-cli";
     rev = version;
-    sha256 = "sha256-ZOSZBZT4d5jv5lg8KkGoOJqAvStUsGZbiXp3dpsrOpo=";
+    sha256 = "sha256-NANdm2RK4U5sXPuGbC8KUGXsbYl/WwAoUep4JxJA5lI=";
   };
 
   propagatedBuildInputs = [
     awscrt
     bcdoc
-    botocore
     colorama
     cryptography
     distro
@@ -57,6 +52,9 @@ with py.pkgs; buildPythonApplication rec {
     rsa
     ruamel-yaml
     wcwidth
+    python-dateutil
+    jmespath
+    urllib3
   ];
 
   checkInputs = [
@@ -69,7 +67,6 @@ with py.pkgs; buildPythonApplication rec {
   postPatch = ''
     substituteInPlace setup.cfg \
       --replace "colorama>=0.2.5,<0.4.4" "colorama" \
-      --replace "cryptography>=3.3.2,<3.4.0" "cryptography" \
       --replace "docutils>=0.10,<0.16" "docutils" \
       --replace "ruamel.yaml>=0.15.0,<0.16.0" "ruamel.yaml" \
       --replace "wcwidth<0.2.0" "wcwidth" \
diff --git a/pkgs/tools/admin/awslogs/default.nix b/pkgs/tools/admin/awslogs/default.nix
index 5b61e4828ef6f..2f60e414d74a3 100644
--- a/pkgs/tools/admin/awslogs/default.nix
+++ b/pkgs/tools/admin/awslogs/default.nix
@@ -1,30 +1,51 @@
-{ lib, fetchFromGitHub, python3Packages }:
+{ lib
+, fetchFromGitHub
+, python3
+}:
 
-python3Packages.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "awslogs";
   version = "0.14.0";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "jorgebastida";
-    repo = "awslogs";
+    repo = pname;
     rev = version;
-    sha256 = "1gyry8b64psvmjcb2lb3yilpa7b17yllga06svls4hi69arvrd8f";
+    sha256 = "sha256-DrW8s0omQqLp1gaoR6k/YR11afRjUbGYrFtfYhby2b8=";
   };
 
-  propagatedBuildInputs = with python3Packages; [
-    boto3 termcolor python-dateutil docutils setuptools jmespath
+  propagatedBuildInputs = with python3.pkgs; [
+    boto3
+    termcolor
+    python-dateutil
+    docutils
+    setuptools
+    jmespath
   ];
 
-  checkInputs = [ python3Packages.pytestCheckHook ];
+  checkInputs = with python3.pkgs; [
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "jmespath>=0.7.1,<1.0.0" "jmespath>=0.7.1"
+  '';
+
   disabledTests = [
     "test_main_get_query"
     "test_main_get_with_color"
   ];
 
+  pythonImportsCheck = [
+    "awslogs"
+  ];
+
   meta = with lib; {
-    homepage = "https://github.com/jorgebastida/awslogs";
     description = "AWS CloudWatch logs for Humans";
-    maintainers = with maintainers; [ dbrock ];
+    homepage = "https://github.com/jorgebastida/awslogs";
     license = licenses.bsd3;
+    maintainers = with maintainers; [ dbrock ];
   };
 }
diff --git a/pkgs/tools/admin/azure-cli/default.nix b/pkgs/tools/admin/azure-cli/default.nix
index efd1ecfee3c16..01cb5081cf4f2 100644
--- a/pkgs/tools/admin/azure-cli/default.nix
+++ b/pkgs/tools/admin/azure-cli/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, python3, fetchFromGitHub, installShellFiles }:
 
 let
-  version = "2.32.0";
+  version = "2.34.1";
   srcName = "azure-cli-${version}-src";
 
   src = fetchFromGitHub {
@@ -9,7 +9,7 @@ let
     owner = "Azure";
     repo = "azure-cli";
     rev = "azure-cli-${version}";
-    sha256 = "sha256-PXY32bfuK0bQGI0N+XHs9lakF6K7+WjrHMvuNgDFSJM=";
+    sha256 = "sha256-BEEwxf3UTShKi3K/uBK1yMxyPCvybL/BbKsu8XAwu0M=";
   };
 
   # put packages that needs to be overriden in the py package scope
diff --git a/pkgs/tools/admin/azure-cli/python-packages.nix b/pkgs/tools/admin/azure-cli/python-packages.nix
index d27805bb257e4..f746941a9533f 100644
--- a/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -69,7 +69,8 @@ let
         postPatch = ''
           substituteInPlace setup.py \
             --replace "requests[socks]~=2.25.1" "requests[socks]~=2.25" \
-            --replace "cryptography>=3.2,<3.4" "cryptography"
+            --replace "cryptography>=3.2,<3.4" "cryptography" \
+            --replace "msal-extensions>=0.3.1,<0.4" "msal-extensions"
         '';
 
         checkInputs = with self; [ pytest ];
@@ -117,11 +118,11 @@ let
         '';
       };
 
-      azure-batch = overrideAzureMgmtPackage super.azure-batch "11.0.0" "zip"
-        "sha256-zl/bDsli7d/oXNgiBekXfLC720RSZXRuOLO7vx8W3HM=";
+      azure-batch = overrideAzureMgmtPackage super.azure-batch "12.0.0" "zip"
+        "sha256-GpseF4mEp79JWvZ7zOUfDbHkqKlXr7KeM1VKFKlnTes=";
 
-      azure-mgmt-apimanagement = overrideAzureMgmtPackage super.azure-mgmt-apimanagement "0.2.0" "zip"
-        "0whx3s8ri9939r3pdvjf8iqcslas1xy6cnccidmp10r5ng0023vr";
+      azure-mgmt-apimanagement = overrideAzureMgmtPackage super.azure-mgmt-apimanagement "3.0.0" "zip"
+        "9262f54ed387eb083d8dae66d32a8df35647319b902bd498cdc376f50a12d154";
 
       azure-mgmt-batch = overrideAzureMgmtPackage super.azure-mgmt-batch "16.0.0" "zip"
         "1b3cecd6f16813879c6ac1a1bb01f9a6f2752cd1f9157eb04d5e41e4a89f3c34";
@@ -156,8 +157,8 @@ let
       azure-mgmt-cognitiveservices = overrideAzureMgmtPackage super.azure-mgmt-cognitiveservices "13.0.0" "zip"
         "dc6116e8394d45312c7ad5a9098ce0dd2370bd92d43afd33d8b3bfab724fa498";
 
-      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "23.1.0" "zip"
-        "sha256-Sduw9RAG1VfL0LIpmcuezz6rwr5G2W78xtZRxrM3VLM=";
+      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "25.0.0" "zip"
+        "sha256-Y0WNBtQ9v0yhTVFfTvfcudWHOjzGagGB+/b++3Ie5Kk=";
 
       azure-mgmt-consumption = overrideAzureMgmtPackage super.azure-mgmt-consumption "2.0.0" "zip"
         "12ai4qps73ivawh0yzvgb148ksx02r30pqlvfihx497j62gsi1cs";
@@ -165,8 +166,8 @@ let
       azure-mgmt-containerinstance = overrideAzureMgmtPackage super.azure-mgmt-containerinstance "9.1.0" "zip"
         "sha256-N+zUTEnOyn18lDHlkUj+vRXX/sJhZR7XLd1YdV50ULA=";
 
-      azure-mgmt-containerservice = overrideAzureMgmtPackage super.azure-mgmt-containerservice "16.1.0" "zip"
-        "sha256-NlTIrOK4ho0OqcTHjHT1HobiMzDH2KY20TIlN0fm8/Q=";
+      azure-mgmt-containerservice = overrideAzureMgmtPackage super.azure-mgmt-containerservice "17.0.0" "zip"
+        "sha256-oUbWdZryabCCg/gTujchT7p1nS7IDoU5W9MQ4ekJYH8=";
 
       azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "7.0.0b2" "zip"
         "sha256-hVvYW9gkfTVMwis3IdD0JXYDxdKcyyzIFx3hNk7VMLI=";
@@ -183,11 +184,11 @@ let
       azure-mgmt-imagebuilder = overrideAzureMgmtPackage super.azure-mgmt-imagebuilder "1.0.0" "zip"
         "634e398de9a23e712aa27a4a59f9ea5d5091d1dfcfed5ac977230918872c4430";
 
-      azure-mgmt-iothub = overrideAzureMgmtPackage super.azure-mgmt-iothub "2.1.0" "zip"
-        "2724f48cadb1be7ee96fc26c7bfa178f82cea5d325e785e91d9f26965fa8e46f";
+      azure-mgmt-iothub = overrideAzureMgmtPackage super.azure-mgmt-iothub "2.2.0" "zip"
+        "sha256-nsAeVhs5N8bpwYenmRwJmqF/IAqz/ulSoYIeOU5l0eM=";
 
-      azure-mgmt-iothubprovisioningservices = overrideAzureMgmtPackage super.azure-mgmt-iothubprovisioningservices "1.0.0" "zip"
-        "e5871b03488b5ae6dfc441cdbda40cb39c000635ee57c513053792b3c15826a9";
+      azure-mgmt-iothubprovisioningservices = overrideAzureMgmtPackage super.azure-mgmt-iothubprovisioningservices "1.1.0" "zip"
+        "sha256-04OoJuff93L62G6IozpmHpEaUbHHHD6nKlkMHVoJvJ4=";
 
       azure-mgmt-iotcentral = overrideAzureMgmtPackage super.azure-mgmt-iotcentral "9.0.0" "zip"
         "64df73df449a6f3717f3d0963e5869224ed3e6216c79de571493bea7c1b52cb6";
@@ -198,14 +199,14 @@ let
       azure-mgmt-devtestlabs = overrideAzureMgmtPackage super.azure-mgmt-devtestlabs "4.0.0" "zip"
         "1397ksrd61jv7400mgn8sqngp6ahir55fyq9n5k69wk88169qm2r";
 
-      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "5.1.0" "zip"
-        "sha256-MGCICI7hDobEzyTMgqnKYZ21zfwNo/ogfQDsf3fwbo4=";
+      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "6.0.1" "zip"
+        "6ce683587be1638d8d77620b7af118060b8b7dfc4fd23d46a623a66edcb388e1";
 
       azure-mgmt-dns = overrideAzureMgmtPackage super.azure-mgmt-dns "8.0.0" "zip"
         "407c2dacb33513ffbe9ca4be5addb5e9d4bae0cb7efa613c3f7d531ef7bf8de8";
 
-      azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "12.0.0" "zip"
-        "da128a7e0291be7fa2063848df92a9180cf5c16d42adc09d2bc2efd711536bfb";
+      azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "13.0.0b2" "zip"
+        "sha256-j8CyWZGF7Z/5szJ+CD96E0EbNsceJ1SScrlPqWVLjnk=";
 
       azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "19.3.0" "zip"
         "0b6a1ccdffd76e057ab16a6c319740a0ca68d59fedf7e9c02f2437396e72aa11";
@@ -216,8 +217,8 @@ let
       azure-mgmt-managedservices = overrideAzureMgmtPackage super.azure-mgmt-managedservices "1.0.0" "zip"
         "sha256-/tg5n8Z3Oq2jfB0ElqRvWUENd8lJTQyllnxTHDN2rRk=";
 
-      azure-mgmt-managementgroups = overrideAzureMgmtPackage super.azure-mgmt-managementgroups "0.1.0" "zip"
-        "sha256-/2LZgu3aY0o2Fgyx0Vo2epVypay0GeXnrTcejIO9R8c=";
+      azure-mgmt-managementgroups = overrideAzureMgmtPackage super.azure-mgmt-managementgroups "1.0.0" "zip"
+        "bab9bd532a1c34557f5b0ab9950e431e3f00bb96e8a3ce66df0f6ce2ae19cd73";
 
       azure-mgmt-marketplaceordering = overrideAzureMgmtPackage super.azure-mgmt-marketplaceordering "1.1.0" "zip"
         "68b381f52a4df4435dacad5a97e1c59ac4c981f667dcca8f9d04453417d60ad8";
@@ -231,8 +232,8 @@ let
       azure-mgmt-privatedns = overrideAzureMgmtPackage super.azure-mgmt-privatedns "1.0.0" "zip"
         "b60f16e43f7b291582c5f57bae1b083096d8303e9d9958e2c29227a55cc27c45";
 
-      azure-mgmt-web = overrideAzureMgmtPackage super.azure-mgmt-web "4.0.0" "zip"
-        "sha256-5XQ3qTPn3qmwYY/nkODa3GP5hXc1NhrItfXoBiucKg0=";
+      azure-mgmt-web = overrideAzureMgmtPackage super.azure-mgmt-web "6.1.0" "zip"
+        "c26635089276515b0488fcf014aab50a0446f54800c6e0e5583cc493ac8d738f";
 
       azure-mgmt-redhatopenshift = overrideAzureMgmtPackage super.azure-mgmt-redhatopenshift "1.0.0" "zip"
         "94cd41f1ebd82e40620fd3e6d88f666b5c19ac7cf8b4e8edadb9721bd7c80980";
@@ -291,15 +292,18 @@ let
       azure-mgmt-authorization = overrideAzureMgmtPackage super.azure-mgmt-authorization "0.61.0" "zip"
         "0xfvx2dvfj3fbz4ngn860ipi4v6gxqajyjc8x92r8knhmniyxk7m";
 
-      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "19.0.0" "zip"
-        "f05963e5a8696d0fd4dcadda4feecb9b382a380d2e461b3647704ac787d79876";
+      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "19.1.0" "zip"
+        "sha256-Seoi8A4JZaNVCvNKQcGh06SBaQ9lAMeOhUCIAvVtdBY=";
 
-      azure-mgmt-servicebus = overrideAzureMgmtPackage super.azure-mgmt-servicebus "6.0.0" "zip"
-        "f6c64ed97d22d0c03c4ca5fc7594bd0f3d4147659c10110160009b93f541298e";
+      azure-mgmt-servicebus = overrideAzureMgmtPackage super.azure-mgmt-servicebus "7.1.0" "zip"
+        "d8ae7905fb7d3e24822daa20aa7bc5014f41aa18b48ea2d0161e997fc11a3d36";
 
       azure-mgmt-servicefabric = overrideAzureMgmtPackage super.azure-mgmt-servicefabric "1.0.0" "zip"
         "de35e117912832c1a9e93109a8d24cab94f55703a9087b2eb1c5b0655b3b1913";
 
+      azure-mgmt-servicelinker = overrideAzureMgmtPackage super.azure-mgmt-servicelinker "1.0.0b1" "zip"
+        "sha256-T3DTvNmLpTm/74cOPEl+vcXv7TIAwmJ6YXGLqpqyGmE=";
+
       azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "9.0.0" "zip"
         "41ebdc69c0d1f81d25dd30438c14fff4331f66639f55805b918b9649eaffe78a";
 
@@ -413,12 +417,12 @@ let
       });
 
       azure-keyvault-keys = super.azure-keyvault-keys.overridePythonAttrs(oldAttrs: rec {
-        version = "4.5.0b4";
+        version = "4.5.0b6";
         src = super.fetchPypi {
           inherit (oldAttrs) pname;
           inherit version;
           extension = "zip";
-          sha256 = "sha256-f43ZTMFc0IVIaa69gEZFOLALREcx3RRCFoYDY2FYLrY=";
+          sha256 = "sha256-WFSRJaia0+WnvGxoMYZIvf81ue51VPYXzTp8huUh1fc=";
         };
       });
 
@@ -481,18 +485,6 @@ let
         };
       });
 
-      PyGithub = super.PyGithub.overridePythonAttrs(oldAttrs: rec {
-        version = "1.38";
-
-        src = super.fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          sha256 = "sha256-HtCPd17FBnvIRStyveLbuVz05S/yvVDMMsackf+tknI=";
-        };
-
-        doCheck = false;
-      });
-
       knack = super.knack.overridePythonAttrs(oldAttrs: rec {
         version = "0.9.0";
 
diff --git a/pkgs/tools/admin/certigo/default.nix b/pkgs/tools/admin/certigo/default.nix
index f0840d1585352..d31cb6a0ef665 100644
--- a/pkgs/tools/admin/certigo/default.nix
+++ b/pkgs/tools/admin/certigo/default.nix
@@ -13,8 +13,6 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-qS/tIi6umSuQcl43SI4LyL0k5eWfRWs7kVybRPGKcbs=";
 
-  doCheck = false;
-
   meta = with lib; {
     description = "A utility to examine and validate certificates in a variety of formats";
     homepage = "https://github.com/square/certigo";
diff --git a/pkgs/tools/admin/chamber/default.nix b/pkgs/tools/admin/chamber/default.nix
index f0d90cde98a1e..56d4213481c0a 100644
--- a/pkgs/tools/admin/chamber/default.nix
+++ b/pkgs/tools/admin/chamber/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "chamber";
-  version = "2.10.8";
+  version = "2.10.9";
 
   src = fetchFromGitHub {
     owner = "segmentio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-rU9xywEa9E1VG1CaRGHzjXTL+0erlgP1thDTYBz+oLM=";
+    sha256 = "sha256-rOOpwLoEiTS41VIPvqoq8yGP4GOOCOJNFfLLxt9mfvM=";
   };
 
   CGO_ENABLED = 0;
diff --git a/pkgs/tools/admin/clair/default.nix b/pkgs/tools/admin/clair/default.nix
index 484cbbb82cbda..20929f5d8d5fc 100644
--- a/pkgs/tools/admin/clair/default.nix
+++ b/pkgs/tools/admin/clair/default.nix
@@ -13,8 +13,6 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-C3xnBANsymSgI7l446CjJzEMY1gURGTxDNBBjNjHmaE=";
 
-  doCheck = false;
-
   nativeBuildInputs = [ makeWrapper ];
 
   postInstall = ''
diff --git a/pkgs/tools/admin/colmena/default.nix b/pkgs/tools/admin/colmena/default.nix
index d17366b38a812..8d7982060de69 100644
--- a/pkgs/tools/admin/colmena/default.nix
+++ b/pkgs/tools/admin/colmena/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, rustPlatform, fetchFromGitHub, installShellFiles, colmena, testVersion }:
+{ stdenv, lib, rustPlatform, fetchFromGitHub, installShellFiles, colmena, testers }:
 
 rustPlatform.buildRustPackage rec {
   pname = "colmena";
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
     # We guarantee CLI and Nix API stability for the same minor version
     apiVersion = builtins.concatStringsSep "." (lib.take 2 (lib.splitString "." version));
 
-    tests.version = testVersion { package = colmena; };
+    tests.version = testers.testVersion { package = colmena; };
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/admin/credhub-cli/default.nix b/pkgs/tools/admin/credhub-cli/default.nix
index 844b65e0f6c32..841e63cae4ca8 100644
--- a/pkgs/tools/admin/credhub-cli/default.nix
+++ b/pkgs/tools/admin/credhub-cli/default.nix
@@ -2,23 +2,15 @@
 
 buildGoModule rec {
   pname = "credhub-cli";
-  version = "2.9.1";
+  version = "2.9.3";
 
   src = fetchFromGitHub {
     owner = "cloudfoundry-incubator";
     repo = "credhub-cli";
     rev = version;
-    sha256 = "sha256-2+KOf6VQ1jTXfFE+Ptd3iiOEhvENU0XUclQ+e85DpUo=";
+    sha256 = "1wjj14gx2phpbxs1433k3jkkc0isx5mzbm62rpvxbfd8a7f6n1l5";
   };
 
-  patches = [
-    # Fix test with Go 1.15
-    (fetchpatch {
-        url = "https://github.com/cloudfoundry-incubator/credhub-cli/commit/4bd1accd513dc5e163e155c4b428878ca0bcedbc.patch";
-        sha256 = "180n3q3d19aw02q7xsn7dxck18jgndz5garj2mb056cwa7mmhw0j";
-    })
-  ];
-
   # these tests require network access that we're not going to give them
   postPatch = ''
     rm commands/api_test.go
diff --git a/pkgs/tools/admin/ejson2env/default.nix b/pkgs/tools/admin/ejson2env/default.nix
index cb82a689e9438..e7ac6d7426dae 100644
--- a/pkgs/tools/admin/ejson2env/default.nix
+++ b/pkgs/tools/admin/ejson2env/default.nix
@@ -2,16 +2,20 @@
 
 buildGoModule rec {
   pname = "ejson2env";
-  version = "2.0.2";
+  version = "2.0.5";
 
   src = fetchFromGitHub {
     owner = "Shopify";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-1nfMmjYKRo5vjOwLb3fX9SQ0CDHme1DAz0AGGpV4piI=";
+    sha256 = "sha256-HcUmFajbOUZ0T5Th6OA9WBtfTz646qLbXx8NVeJsVng=";
   };
 
-  vendorSha256 = "sha256-lais54Gm4UGJN8D+iFbP8utTfDr+v8qXZKLdpNKzJi8=";
+  vendorSha256 = "sha256-agWcD8vFNde1SCdkRovMNPf+1KODxV8wW1mXvE0w/CI=";
+
+  ldflags = [
+    "-X main.version=${version}"
+  ];
 
   meta = with lib; {
     description = "A tool to simplify storing secrets that should be accessible in the shell environment in your git repo.";
diff --git a/pkgs/tools/admin/eksctl/default.nix b/pkgs/tools/admin/eksctl/default.nix
index 3e0ab75681838..e9afcb4d56820 100644
--- a/pkgs/tools/admin/eksctl/default.nix
+++ b/pkgs/tools/admin/eksctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.90.0";
+  version = "0.94.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    sha256 = "sha256-XQZ32Gg/LZCDuSmtGvDEYCuzvq39zzq3yGGTYSKZyXI=";
+    sha256 = "sha256-6I/rzdSJ0iwoazt7EHsQ3gEynGfzBoLR7ekPNUo/YQs=";
   };
 
-  vendorSha256 = "sha256-IYqeuyNPRQBMwuZMW4InKfHpOLhleM5Mz5Oauw4nK6M=";
+  vendorSha256 = "sha256-cWZvMP19xTq68kKJ50d2RYXHu9AfiEE+zQL2IsQ4eiY=";
 
   doCheck = false;
 
@@ -29,10 +29,10 @@ buildGoModule rec {
   nativeBuildInputs = [ installShellFiles ];
 
   postInstall = ''
-    for shell in bash fish zsh; do
-      $out/bin/eksctl completion $shell > eksctl.$shell
-      installShellCompletion eksctl.$shell
-    done
+    installShellCompletion --cmd eksctl \
+      --bash <($out/bin/eksctl completion bash) \
+      --fish <($out/bin/eksctl completion fish) \
+      --zsh  <($out/bin/eksctl completion zsh)
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/admin/exoscale-cli/default.nix b/pkgs/tools/admin/exoscale-cli/default.nix
index f1a420b0c100b..b05f338042610 100644
--- a/pkgs/tools/admin/exoscale-cli/default.nix
+++ b/pkgs/tools/admin/exoscale-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "exoscale-cli";
-  version = "1.52.0";
+  version = "1.52.1";
 
   src = fetchFromGitHub {
     owner  = "exoscale";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "sha256-uaJt1QS4nDVliIFo11OhQYvOxJMeda0QGuaGZCPRoWk=";
+    sha256 = "sha256-CSltvSdKLAH711ubT6ROgkmq2EcFJplPmavsJa9xupM=";
   };
 
   goPackagePath = "github.com/exoscale/cli";
@@ -29,5 +29,6 @@ buildGoPackage rec {
     homepage    = "https://github.com/exoscale/cli";
     license     = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ dramaturg ];
+    mainProgram = "exo";
   };
 }
diff --git a/pkgs/tools/admin/fastlane/Gemfile.lock b/pkgs/tools/admin/fastlane/Gemfile.lock
index 19305c7d13708..be99ed9bdc33c 100644
--- a/pkgs/tools/admin/fastlane/Gemfile.lock
+++ b/pkgs/tools/admin/fastlane/Gemfile.lock
@@ -1,60 +1,80 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    CFPropertyList (3.0.3)
-    addressable (2.7.0)
+    CFPropertyList (3.0.5)
+      rexml
+    addressable (2.8.0)
       public_suffix (>= 2.0.2, < 5.0)
+    artifactory (3.0.15)
     atomos (0.1.3)
-    aws-eventstream (1.1.0)
-    aws-partitions (1.414.0)
-    aws-sdk-core (3.110.0)
+    aws-eventstream (1.2.0)
+    aws-partitions (1.558.0)
+    aws-sdk-core (3.126.2)
       aws-eventstream (~> 1, >= 1.0.2)
-      aws-partitions (~> 1, >= 1.239.0)
+      aws-partitions (~> 1, >= 1.525.0)
       aws-sigv4 (~> 1.1)
       jmespath (~> 1.0)
-    aws-sdk-kms (1.40.0)
-      aws-sdk-core (~> 3, >= 3.109.0)
+    aws-sdk-kms (1.54.0)
+      aws-sdk-core (~> 3, >= 3.126.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.87.0)
-      aws-sdk-core (~> 3, >= 3.109.0)
+    aws-sdk-s3 (1.112.0)
+      aws-sdk-core (~> 3, >= 3.126.0)
       aws-sdk-kms (~> 1)
-      aws-sigv4 (~> 1.1)
-    aws-sigv4 (1.2.2)
+      aws-sigv4 (~> 1.4)
+    aws-sigv4 (1.4.0)
       aws-eventstream (~> 1, >= 1.0.2)
     babosa (1.0.4)
-    claide (1.0.3)
+    claide (1.1.0)
     colored (1.2)
     colored2 (3.1.2)
-    commander-fastlane (4.4.6)
-      highline (~> 1.7.2)
+    commander (4.6.0)
+      highline (~> 2.0.0)
     declarative (0.0.20)
-    declarative-option (0.1.0)
-    digest-crc (0.6.3)
+    digest-crc (0.6.4)
       rake (>= 12.0.0, < 14.0.0)
     domain_name (0.5.20190701)
       unf (>= 0.0.5, < 1.0.0)
     dotenv (2.7.6)
-    emoji_regex (3.2.1)
-    excon (0.78.1)
-    faraday (1.3.0)
+    emoji_regex (3.2.3)
+    excon (0.91.0)
+    faraday (1.10.0)
+      faraday-em_http (~> 1.0)
+      faraday-em_synchrony (~> 1.0)
+      faraday-excon (~> 1.1)
+      faraday-httpclient (~> 1.0)
+      faraday-multipart (~> 1.0)
       faraday-net_http (~> 1.0)
-      multipart-post (>= 1.2, < 3)
-      ruby2_keywords
+      faraday-net_http_persistent (~> 1.0)
+      faraday-patron (~> 1.0)
+      faraday-rack (~> 1.0)
+      faraday-retry (~> 1.0)
+      ruby2_keywords (>= 0.0.4)
     faraday-cookie_jar (0.0.7)
       faraday (>= 0.8.0)
       http-cookie (~> 1.0.0)
-    faraday-net_http (1.0.0)
-    faraday_middleware (1.0.0)
+    faraday-em_http (1.0.0)
+    faraday-em_synchrony (1.0.0)
+    faraday-excon (1.1.0)
+    faraday-httpclient (1.0.1)
+    faraday-multipart (1.0.3)
+      multipart-post (>= 1.2, < 3)
+    faraday-net_http (1.0.1)
+    faraday-net_http_persistent (1.2.0)
+    faraday-patron (1.0.0)
+    faraday-rack (1.0.0)
+    faraday-retry (1.0.3)
+    faraday_middleware (1.2.0)
       faraday (~> 1.0)
-    fastimage (2.2.1)
-    fastlane (2.171.0)
+    fastimage (2.2.6)
+    fastlane (2.204.3)
       CFPropertyList (>= 2.3, < 4.0.0)
-      addressable (>= 2.3, < 3.0.0)
+      addressable (>= 2.8, < 3.0.0)
+      artifactory (~> 3.0)
       aws-sdk-s3 (~> 1.0)
       babosa (>= 1.0.3, < 2.0.0)
       bundler (>= 1.12.0, < 3.0.0)
       colored
-      commander-fastlane (>= 4.4.6, < 5.0.0)
+      commander (~> 4.6)
       dotenv (>= 2.1.1, < 3.0.0)
       emoji_regex (>= 0.1, < 4.0)
       excon (>= 0.71.0, < 1.0.0)
@@ -63,18 +83,20 @@ GEM
       faraday_middleware (~> 1.0)
       fastimage (>= 2.1.0, < 3.0.0)
       gh_inspector (>= 1.1.2, < 2.0.0)
-      google-api-client (>= 0.37.0, < 0.39.0)
-      google-cloud-storage (>= 1.15.0, < 2.0.0)
-      highline (>= 1.7.2, < 2.0.0)
+      google-apis-androidpublisher_v3 (~> 0.3)
+      google-apis-playcustomapp_v1 (~> 0.1)
+      google-cloud-storage (~> 1.31)
+      highline (~> 2.0)
       json (< 3.0.0)
       jwt (>= 2.1.0, < 3)
       mini_magick (>= 4.9.4, < 5.0.0)
       multipart-post (~> 2.0.0)
+      naturally (~> 2.2)
+      optparse (~> 0.1.1)
       plist (>= 3.1.0, < 4.0.0)
       rubyzip (>= 2.0.0, < 3.0.0)
       security (= 0.1.3)
       simctl (~> 1.6.3)
-      slack-notifier (>= 2.0.0, < 3.0.0)
       terminal-notifier (>= 2.0.0, < 3.0.0)
       terminal-table (>= 1.4.5, < 2.0.0)
       tty-screen (>= 0.6.3, < 1.0.0)
@@ -84,73 +106,85 @@ GEM
       xcpretty (~> 0.3.0)
       xcpretty-travis-formatter (>= 0.0.3)
     gh_inspector (1.1.3)
-    google-api-client (0.38.0)
+    google-apis-androidpublisher_v3 (0.16.0)
+      google-apis-core (>= 0.4, < 2.a)
+    google-apis-core (0.4.2)
       addressable (~> 2.5, >= 2.5.1)
-      googleauth (~> 0.9)
-      httpclient (>= 2.8.1, < 3.0)
+      googleauth (>= 0.16.2, < 2.a)
+      httpclient (>= 2.8.1, < 3.a)
       mini_mime (~> 1.0)
       representable (~> 3.0)
-      retriable (>= 2.0, < 4.0)
-      signet (~> 0.12)
-    google-cloud-core (1.5.0)
+      retriable (>= 2.0, < 4.a)
+      rexml
+      webrick
+    google-apis-iamcredentials_v1 (0.10.0)
+      google-apis-core (>= 0.4, < 2.a)
+    google-apis-playcustomapp_v1 (0.7.0)
+      google-apis-core (>= 0.4, < 2.a)
+    google-apis-storage_v1 (0.11.0)
+      google-apis-core (>= 0.4, < 2.a)
+    google-cloud-core (1.6.0)
       google-cloud-env (~> 1.0)
       google-cloud-errors (~> 1.0)
-    google-cloud-env (1.4.0)
+    google-cloud-env (1.5.0)
       faraday (>= 0.17.3, < 2.0)
-    google-cloud-errors (1.0.1)
-    google-cloud-storage (1.29.2)
-      addressable (~> 2.5)
+    google-cloud-errors (1.2.0)
+    google-cloud-storage (1.36.1)
+      addressable (~> 2.8)
       digest-crc (~> 0.4)
-      google-api-client (~> 0.33)
-      google-cloud-core (~> 1.2)
-      googleauth (~> 0.9)
+      google-apis-iamcredentials_v1 (~> 0.1)
+      google-apis-storage_v1 (~> 0.1)
+      google-cloud-core (~> 1.6)
+      googleauth (>= 0.16.2, < 2.a)
       mini_mime (~> 1.0)
-    googleauth (0.14.0)
+    googleauth (1.1.1)
       faraday (>= 0.17.3, < 2.0)
       jwt (>= 1.4, < 3.0)
       memoist (~> 0.16)
       multi_json (~> 1.11)
       os (>= 0.9, < 2.0)
-      signet (~> 0.14)
-    highline (1.7.10)
-    http-cookie (1.0.3)
+      signet (>= 0.16, < 2.a)
+    highline (2.0.3)
+    http-cookie (1.0.4)
       domain_name (~> 0.5)
     httpclient (2.8.3)
-    jmespath (1.4.0)
-    json (2.5.1)
-    jwt (2.2.2)
+    jmespath (1.6.0)
+    json (2.6.1)
+    jwt (2.3.0)
     memoist (0.16.2)
     mini_magick (4.11.0)
-    mini_mime (1.0.2)
+    mini_mime (1.1.2)
     multi_json (1.15.0)
     multipart-post (2.0.0)
     nanaimo (0.3.0)
-    naturally (2.2.0)
-    os (1.1.1)
+    naturally (2.2.1)
+    optparse (0.1.1)
+    os (1.1.4)
     plist (3.6.0)
     public_suffix (4.0.6)
-    rake (13.0.3)
-    representable (3.0.4)
+    rake (13.0.6)
+    representable (3.1.1)
       declarative (< 0.1.0)
-      declarative-option (< 0.2.0)
+      trailblazer-option (>= 0.1.1, < 0.2.0)
       uber (< 0.2.0)
     retriable (3.1.2)
+    rexml (3.2.5)
     rouge (2.0.7)
-    ruby2_keywords (0.0.2)
-    rubyzip (2.3.0)
+    ruby2_keywords (0.0.5)
+    rubyzip (2.3.2)
     security (0.1.3)
-    signet (0.14.0)
-      addressable (~> 2.3)
-      faraday (>= 0.17.3, < 2.0)
+    signet (0.16.1)
+      addressable (~> 2.8)
+      faraday (>= 0.17.5, < 3.0)
       jwt (>= 1.5, < 3.0)
       multi_json (~> 1.10)
     simctl (1.6.8)
       CFPropertyList
       naturally
-    slack-notifier (2.3.2)
     terminal-notifier (2.0.0)
     terminal-table (1.8.0)
       unicode-display_width (~> 1.1, >= 1.1.1)
+    trailblazer-option (0.1.2)
     tty-cursor (0.7.1)
     tty-screen (0.8.1)
     tty-spinner (0.9.3)
@@ -158,15 +192,17 @@ GEM
     uber (0.1.0)
     unf (0.1.4)
       unf_ext
-    unf_ext (0.0.7.7)
-    unicode-display_width (1.7.0)
+    unf_ext (0.0.8)
+    unicode-display_width (1.8.0)
+    webrick (1.7.0)
     word_wrap (1.0.0)
-    xcodeproj (1.19.0)
+    xcodeproj (1.21.0)
       CFPropertyList (>= 2.3.3, < 4.0)
       atomos (~> 0.1.3)
       claide (>= 1.0.2, < 2.0)
       colored2 (~> 3.1)
       nanaimo (~> 0.3.0)
+      rexml (~> 3.2.4)
     xcpretty (0.3.0)
       rouge (~> 2.0.7)
     xcpretty-travis-formatter (1.0.1)
diff --git a/pkgs/tools/admin/fastlane/gemset.nix b/pkgs/tools/admin/fastlane/gemset.nix
index e747537b24101..52583ebc8cf5a 100644
--- a/pkgs/tools/admin/fastlane/gemset.nix
+++ b/pkgs/tools/admin/fastlane/gemset.nix
@@ -5,10 +5,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+      sha256 = "022r3m9wdxljpbya69y2i3h9g3dhhfaqzidf95m6qjzms792jvgp";
       type = "gem";
     };
-    version = "2.7.0";
+    version = "2.8.0";
+  };
+  artifactory = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wify8rhjwr5bw5y6ary61vba290vk766cxw9a9mg05yswmaisls";
+      type = "gem";
+    };
+    version = "3.0.15";
   };
   atomos = {
     groups = ["default"];
@@ -25,20 +35,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r0pn66yqrdkrfdin7qdim0yj2x75miyg4wp6mijckhzhrjb7cv5";
+      sha256 = "1pyis1nvnbjxk12a43xvgj2gv0mvp4cnkc1gzw0v1018r61399gz";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.0";
   };
   aws-partitions = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dy7y0zgc53cz1qiifx74glixkjd96nk8p6qrq1n5cdylnlpng8k";
+      sha256 = "0q5c8jjnlz6dlkxwsm6cj9n1z08pylvibsx8r42z50ws0jw2f7jm";
       type = "gem";
     };
-    version = "1.414.0";
+    version = "1.558.0";
   };
   aws-sdk-core = {
     dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
@@ -46,10 +56,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lrxwi9im4bpdcga6w7bmam7hywy5c2yss09377lyqm89whb4kl4";
+      sha256 = "19xi4dr675f7x9dmk1fc10jmjdgv45j3dn9k44m5xavd3qnpzx7v";
       type = "gem";
     };
-    version = "3.110.0";
+    version = "3.126.2";
   };
   aws-sdk-kms = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -57,10 +67,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pk76w1w9z4dh1sic08jp1j2rbbmnrfci53a6pkxq0g3y4kkx2g4";
+      sha256 = "0h2mn5ywrla2wqsvzvp9m8jhzr93ywqmyi2l0b538hrq6pmdhjq2";
       type = "gem";
     };
-    version = "1.40.0";
+    version = "1.54.0";
   };
   aws-sdk-s3 = {
     dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
@@ -68,10 +78,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0capqhvm08ngq74n33ym0khixkdj342jpikssw57avdmd8g6kaq7";
+      sha256 = "09fc16hdvripmpn1bj5bayqvmfz0pj2l1h2w954id9c9ar7vv7f5";
       type = "gem";
     };
-    version = "1.87.0";
+    version = "1.112.0";
   };
   aws-sigv4 = {
     dependencies = ["aws-eventstream"];
@@ -79,10 +89,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ll9382c1x2hp750cilh01h1cycgyhdr4cmmgx23k94hyyb8chv5";
+      sha256 = "1wh1y79v0s4zgby2m79bnifk65hwf5pvk2yyrxzn2jkjjq8f8fqa";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.4.0";
   };
   babosa = {
     groups = ["default"];
@@ -95,24 +105,25 @@
     version = "1.0.4";
   };
   CFPropertyList = {
+    dependencies = ["rexml"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ia09r8bj3bjhcfiyr3vlk9zx7vahfypbs2lyrxix9x1jx3lfzq4";
+      sha256 = "193l8r1ycd3dcxa7lsb4pqcghbk56dzc5244m6y8xmv88z6m31d7";
       type = "gem";
     };
-    version = "3.0.3";
+    version = "3.0.5";
   };
   claide = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kasxsms24fgcdsq680nz99d5lazl9rmz1qkil2y5gbbssx89g0z";
+      sha256 = "0bpqhc0kqjp1bh9b7ffc395l9gfls0337rrhmab4v46ykl45qg3d";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "1.1.0";
   };
   colored = {
     groups = ["default"];
@@ -134,16 +145,16 @@
     };
     version = "3.1.2";
   };
-  commander-fastlane = {
+  commander = {
     dependencies = ["highline"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y8d3ac9qwm1cg6rnpf8rcdsy1yxacrd2g2kl809xsp2vi973g65";
+      sha256 = "1n8k547hqq9hvbyqbx2qi08g0bky20bbjca1df8cqq5frhzxq7bx";
       type = "gem";
     };
-    version = "4.4.6";
+    version = "4.6.0";
   };
   declarative = {
     groups = ["default"];
@@ -155,26 +166,16 @@
     };
     version = "0.0.20";
   };
-  declarative-option = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1g4ibxq566f1frnhdymzi9hxxcm4g2gw4n21mpjk2mhwym4q6l0p";
-      type = "gem";
-    };
-    version = "0.1.0";
-  };
   digest-crc = {
     dependencies = ["rake"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "118d5p02kdw6a5pi8af12dxma7q3b77zz5q5xjjf5kgp8qh1930a";
+      sha256 = "1czaak53w8n13y1fr0q23gp0fhklvxjac5n562qj3xk6sh5ad0x2";
       type = "gem";
     };
-    version = "0.6.3";
+    version = "0.6.4";
   };
   domain_name = {
     dependencies = ["unf"];
@@ -202,31 +203,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qbzlracxw4xwyvrgr0qcl1alk4ijk6pv53ni6f43csi649y3n3s";
+      sha256 = "0jsnrkfy345v66jlm2xrz8znivfnamg3mfzkddn414bndf2vxn7c";
       type = "gem";
     };
-    version = "3.2.1";
+    version = "3.2.3";
   };
   excon = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16ij8617v3js03yj1zd32mmrf7kpi9l96bid5mpqk30c4mzai55r";
+      sha256 = "0391r0nz1bbcph9dmdi4n0gwn2f64y8pffxa9zm8wjkqlynhhx74";
       type = "gem";
     };
-    version = "0.78.1";
+    version = "0.91.0";
   };
   faraday = {
-    dependencies = ["faraday-net_http" "multipart-post" "ruby2_keywords"];
+    dependencies = ["faraday-em_http" "faraday-em_synchrony" "faraday-excon" "faraday-httpclient" "faraday-multipart" "faraday-net_http" "faraday-net_http_persistent" "faraday-patron" "faraday-rack" "faraday-retry" "ruby2_keywords"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hmssd8pj4n7yq4kz834ylkla8ryyvhaap6q9nzymp93m1xq21kz";
+      sha256 = "00palwawk897p5gypw5wjrh93d4p0xz2yl9w93yicb4kq7amh8d4";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.10.0";
   };
   faraday-cookie_jar = {
     dependencies = ["faraday" "http-cookie"];
@@ -239,47 +240,138 @@
     };
     version = "0.0.7";
   };
+  faraday-em_http = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12cnqpbak4vhikrh2cdn94assh3yxza8rq2p9w2j34bqg5q4qgbs";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  faraday-em_synchrony = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vgrbhkp83sngv6k4mii9f2s9v5lmp693hylfxp2ssfc60fas3a6";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  faraday-excon = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h09wkb0k0bhm6dqsd47ac601qiaah8qdzjh8gvxfd376x1chmdh";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  faraday-httpclient = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fyk0jd3ks7fdn8nv3spnwjpzx2lmxmg2gh4inz3by1zjzqg33sc";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  faraday-multipart = {
+    dependencies = ["multipart-post"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03qfi9020ynf7hkdiaq01sd2mllvw7fg4qiin3pk028b4wv23j3j";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
   faraday-net_http = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kk5d1c5nxbmwawl5gcznwiscjz24nz3vdhxrlzvj7748c1qqr6d";
+      sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  faraday-net_http_persistent = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dc36ih95qw3rlccffcb0vgxjhmipsvxhn6cw71l7ffs0f7vq30b";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  faraday-patron = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19wgsgfq0xkski1g7m96snv39la3zxz6x7nbdgiwhg5v82rxfb6w";
       type = "gem";
     };
     version = "1.0.0";
   };
+  faraday-rack = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1h184g4vqql5jv9s9im6igy00jp6mrah2h14py6mpf9bkabfqq7g";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  faraday-retry = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "153i967yrwnswqgvnnajgwp981k9p50ys1h80yz3q94rygs59ldd";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
   faraday_middleware = {
     dependencies = ["faraday"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jik2kgfinwnfi6fpp512vlvs0mlggign3gkbpkg5fw1jr9his0r";
+      sha256 = "1bw8mfh4yin2xk7138rg3fhb2p5g2dlmdma88k82psah9mbmvlfy";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.2.0";
   };
   fastimage = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vqp53s9vgd28f4l17q0vs7xv32y64af0ny3wb1fgg4i534rzg6j";
+      sha256 = "0nnggg20za5vamdpkgrxxa32z33d8hf0g2bciswkhqnc6amb3yjr";
       type = "gem";
     };
-    version = "2.2.1";
+    version = "2.2.6";
   };
   fastlane = {
-    dependencies = ["CFPropertyList" "addressable" "aws-sdk-s3" "babosa" "colored" "commander-fastlane" "dotenv" "emoji_regex" "excon" "faraday" "faraday-cookie_jar" "faraday_middleware" "fastimage" "gh_inspector" "google-api-client" "google-cloud-storage" "highline" "json" "jwt" "mini_magick" "multipart-post" "plist" "rubyzip" "security" "simctl" "slack-notifier" "terminal-notifier" "terminal-table" "tty-screen" "tty-spinner" "word_wrap" "xcodeproj" "xcpretty" "xcpretty-travis-formatter"];
+    dependencies = ["CFPropertyList" "addressable" "artifactory" "aws-sdk-s3" "babosa" "colored" "commander" "dotenv" "emoji_regex" "excon" "faraday" "faraday-cookie_jar" "faraday_middleware" "fastimage" "gh_inspector" "google-apis-androidpublisher_v3" "google-apis-playcustomapp_v1" "google-cloud-storage" "highline" "json" "jwt" "mini_magick" "multipart-post" "naturally" "optparse" "plist" "rubyzip" "security" "simctl" "terminal-notifier" "terminal-table" "tty-screen" "tty-spinner" "word_wrap" "xcodeproj" "xcpretty" "xcpretty-travis-formatter"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1h921zfck75f5b50z9jxnhanf8q9d58n122ffnpd1980q5w912rp";
+      sha256 = "1akkqh0px6xb47zxdmmi5w3dhm4692yd7jkizv0fq54pivz40d80";
       type = "gem";
     };
-    version = "2.171.0";
+    version = "2.204.3";
   };
   gh_inspector = {
     groups = ["default"];
@@ -291,16 +383,60 @@
     };
     version = "1.1.3";
   };
-  google-api-client = {
-    dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "signet"];
+  google-apis-androidpublisher_v3 = {
+    dependencies = ["google-apis-core"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00qx111vfdh9xs74j26k19kap8iga4d94fc5iqw5lbrrviqwxmv6";
+      type = "gem";
+    };
+    version = "0.16.0";
+  };
+  google-apis-core = {
+    dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "rexml" "webrick"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jybks8i00rxrxx9mkx90dbdk6pczh2w757wchlavmrkrk0dp9s1";
+      sha256 = "19v15vkgg86k79l51gfs7fab4h7fkv8358ckmkyp33jgsx3zr17b";
       type = "gem";
     };
-    version = "0.38.0";
+    version = "0.4.2";
+  };
+  google-apis-iamcredentials_v1 = {
+    dependencies = ["google-apis-core"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yibminaffzz5npq605m0vqc024dcybiw7xk5vr0jxzlsh8nxvhn";
+      type = "gem";
+    };
+    version = "0.10.0";
+  };
+  google-apis-playcustomapp_v1 = {
+    dependencies = ["google-apis-core"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15wnkbn6kzijbyqkqrh7s6apjf5630yvf2v8zy93zk0x87n2drcd";
+      type = "gem";
+    };
+    version = "0.7.0";
+  };
+  google-apis-storage_v1 = {
+    dependencies = ["google-apis-core"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m2f4i9bbhwz0r3pkcliv6mx29lz5vvbd623jxkdik5ls8g92grm";
+      type = "gem";
+    };
+    version = "0.11.0";
   };
   google-cloud-core = {
     dependencies = ["google-cloud-env" "google-cloud-errors"];
@@ -308,10 +444,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qjn7vs8f85vxi1nkikbjfja6bv9snrj26vzscjii0cm8n4dy0i1";
+      sha256 = "0amp8vd16pzbdrfbp7k0k38rqxpwd88bkyp35l3x719hbb6l85za";
       type = "gem";
     };
-    version = "1.5.0";
+    version = "1.6.0";
   };
   google-cloud-env = {
     dependencies = ["faraday"];
@@ -319,31 +455,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bjgxyvagy6hjj8yg7fqq24rwdjxb6hx7fdd1bmn4mwd846lci2i";
+      sha256 = "0ajc3w4wqg46ywcbmb5fz1q6gfm6g7874s9h31i1r038kz2bzfag";
       type = "gem";
     };
-    version = "1.4.0";
+    version = "1.5.0";
   };
   google-cloud-errors = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hvs1x39g77hbdqjxmzcl6gq8160pv3kskvzbbch0ww1np6qwm67";
+      sha256 = "0nakfswnck6grjpyhckzl40qccyys3sy999h5axk0rldx96fnivd";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.2.0";
   };
   google-cloud-storage = {
-    dependencies = ["addressable" "digest-crc" "google-api-client" "google-cloud-core" "googleauth" "mini_mime"];
+    dependencies = ["addressable" "digest-crc" "google-apis-iamcredentials_v1" "google-apis-storage_v1" "google-cloud-core" "googleauth" "mini_mime"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dy5f00jsnd6id7bkc03pl2d6c78rl3lkysdn0f90padys5id1k5";
+      sha256 = "1g8nkvrpxqs9c061n2rd26waq6vwdws5siirgga1rx0n9v50chfp";
       type = "gem";
     };
-    version = "1.29.2";
+    version = "1.36.1";
   };
   googleauth = {
     dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
@@ -351,20 +487,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cm60nbmwzf83fzy06f3iyn5a6sw91siw8x9bdvpwwmjsmivana6";
+      sha256 = "0bzqdvva06ydn3kzivbcfqxc5mfkz8xvazlpmp7zvkl3i5s5djr7";
       type = "gem";
     };
-    version = "0.14.0";
+    version = "1.1.1";
   };
   highline = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01ib7jp85xjc4gh4jg0wyzllm46hwv8p0w1m4c75pbgi41fps50y";
+      sha256 = "0yclf57n2j3cw8144ania99h1zinf8q3f5zrhqa754j6gl95rp9d";
       type = "gem";
     };
-    version = "1.7.10";
+    version = "2.0.3";
   };
   http-cookie = {
     dependencies = ["domain_name"];
@@ -372,10 +508,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g";
+      sha256 = "19370bc97gsy2j4hanij246hv1ddc85hw0xjb6sj7n1ykqdlx9l9";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "1.0.4";
   };
   httpclient = {
     groups = ["default"];
@@ -392,30 +528,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1d4wac0dcd1jf6kc57891glih9w57552zgqswgy74d1xhgnk0ngf";
+      sha256 = "1gjrr5pdcl3l3skhp9d0jzs4yhmknpv3ldcz59b339b9lqbqasnr";
       type = "gem";
     };
-    version = "1.4.0";
+    version = "1.6.0";
   };
   json = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
+      sha256 = "1z9grvjyfz16ag55hg522d3q4dh07hf391sf9s96npc0vfi85xkz";
       type = "gem";
     };
-    version = "2.5.1";
+    version = "2.6.1";
   };
   jwt = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14ynyq1q483spj20ffl4xayfqx1a8qr761mqjfxczf8lwlap392n";
+      sha256 = "0bg8pjx0mpvl10k6d8a6gc8dzlv2z5jkqcjbjcirnk032iriq838";
       type = "gem";
     };
-    version = "2.2.2";
+    version = "2.3.0";
   };
   memoist = {
     groups = ["default"];
@@ -442,10 +578,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
+      sha256 = "0lbim375gw2dk6383qirz13hgdmxlan0vc5da2l072j3qw6fqjm5";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.1.2";
   };
   multi_json = {
     groups = ["default"];
@@ -482,20 +618,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dzqdawqr4agx7zr1fr5zxdwl8vb5rhpz57l1lk7d2y46ha6l4l7";
+      sha256 = "04x1nkx6gkqzlc4phdvq05v3vjds6mgqhjqzqpcs6vdh5xyqrf59";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.2.1";
+  };
+  optparse = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j9l5a1zszvrlggp1ldx82i4kkqx34g4g3amwp488s499w5l1cvj";
+      type = "gem";
+    };
+    version = "0.1.1";
   };
   os = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12fli64wz5j9868gpzv5wqsingk1jk457qyqksv9ksmq9b0zpc9x";
+      sha256 = "0gwd20smyhxbm687vdikfh1gpi96h8qb1x28s2pdcysf6dm6v0ap";
       type = "gem";
     };
-    version = "1.1.1";
+    version = "1.1.4";
   };
   plist = {
     groups = ["default"];
@@ -522,21 +668,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1iik52mf9ky4cgs38fp2m8r6skdkq1yz23vh18lk95fhbcxb6a67";
+      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
       type = "gem";
     };
-    version = "13.0.3";
+    version = "13.0.6";
   };
   representable = {
-    dependencies = ["declarative" "declarative-option" "uber"];
+    dependencies = ["declarative" "trailblazer-option" "uber"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qm9rgi1j5a6nv726ka4mmixivlxfsg91h8rpp72wwd4vqbkkm07";
+      sha256 = "09xwzz94ryp57wyjrqysiz1sslnxd4r4m9wayy63jb7f8qfx1kys";
       type = "gem";
     };
-    version = "3.0.4";
+    version = "3.1.1";
   };
   retriable = {
     groups = ["default"];
@@ -548,6 +694,16 @@
     };
     version = "3.1.2";
   };
+  rexml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
+      type = "gem";
+    };
+    version = "3.2.5";
+  };
   rouge = {
     groups = ["default"];
     platforms = [];
@@ -563,20 +719,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17pcc0wgvh3ikrkr7bm3nx0qhyiqwidd13ij0fa50k7gsbnr2p0l";
+      sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz";
       type = "gem";
     };
-    version = "0.0.2";
+    version = "0.0.5";
   };
   rubyzip = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji";
+      sha256 = "0grps9197qyxakbpw02pda59v45lfgbgiyw48i0mq9f2bn9y6mrz";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.3.2";
   };
   security = {
     groups = ["default"];
@@ -594,10 +750,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10g2667fvxnc50hcd1aywgsbf8j7nrckg3n7zjvywmyz82pwmpqp";
+      sha256 = "1jwyggz80xb3yi2hycmmw214c4072g8i56y0b0gsmpkiyk5d0vh1";
       type = "gem";
     };
-    version = "0.14.0";
+    version = "0.16.1";
   };
   simctl = {
     dependencies = ["CFPropertyList" "naturally"];
@@ -610,16 +766,6 @@
     };
     version = "1.6.8";
   };
-  slack-notifier = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1pkfn99dhy5s526r6k8d87fwwb6j287ga9s7lxqmh60z28xqh3bv";
-      type = "gem";
-    };
-    version = "2.3.2";
-  };
   terminal-notifier = {
     groups = ["default"];
     platforms = [];
@@ -641,6 +787,16 @@
     };
     version = "1.8.0";
   };
+  trailblazer-option = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18s48fndi2kfvrfzmq6rxvjfwad347548yby0341ixz1lhpg3r10";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
   tty-cursor = {
     groups = ["default"];
     platforms = [];
@@ -698,17 +854,27 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wc47r23h063l8ysws8sy24gzh74mks81cak3lkzlrw4qkqb3sg4";
+      sha256 = "0jmbimpnpjdzz8hlrppgl9spm99qh3qzbx0b81k3gkgwba8nk3yd";
       type = "gem";
     };
-    version = "0.0.7.7";
+    version = "0.0.8";
   };
   unicode-display_width = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
+      sha256 = "1204c1jx2g89pc25qk5150mk7j5k90692i7ihgfzqnad6qni74h2";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  webrick = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d4cvgmxhfczxiq5fr534lmizkhigd15bsx5719r5ds7k7ivisc7";
       type = "gem";
     };
     version = "1.7.0";
@@ -724,15 +890,15 @@
     version = "1.0.0";
   };
   xcodeproj = {
-    dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo"];
+    dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo" "rexml"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1411j6sfnz0cx4fiw52f0yqx4bgcn8cmpgi3i5rwmmahayyjz2fn";
+      sha256 = "0xmzb1mdsnkpf7v07whz0n2wc8kg6785sc7i5zyawd8dl8517rp4";
       type = "gem";
     };
-    version = "1.19.0";
+    version = "1.21.0";
   };
   xcpretty = {
     dependencies = ["rouge"];
diff --git a/pkgs/tools/admin/fits-cloudctl/default.nix b/pkgs/tools/admin/fits-cloudctl/default.nix
index f53315613e7cc..fe0670f36aa0f 100644
--- a/pkgs/tools/admin/fits-cloudctl/default.nix
+++ b/pkgs/tools/admin/fits-cloudctl/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "fits-cloudctl";
-  version = "0.10.12";
+  version = "0.10.13";
 
   src = fetchFromGitHub {
     owner = "fi-ts";
     repo = "cloudctl";
     rev = "v${version}";
-    sha256 = "sha256-nFxudeJJ5BkfZxSnRquyATHyHwI+7xwfQxiY8cedtis=";
+    sha256 = "sha256-8MSX8A/3FY95rrWuYfGYFynSi76JPcHX+N8VF9BWktM=";
   };
 
-  vendorSha256 = "sha256-f35Asf9l6ZfixpjMGzesTsxmANreilMxH2CULMH3b2o=";
+  vendorSha256 = "sha256-K6HI7aSDbrhqm2XVor7sRwHnqQPQlpZYGLgaf3SFNrU=";
 
   meta = with lib; {
     description = "Command-line client for FI-TS Finance Cloud Native services";
diff --git a/pkgs/tools/admin/google-cloud-sdk/data.nix b/pkgs/tools/admin/google-cloud-sdk/data.nix
index b494ed7e99740..af2f1ee352af3 100644
--- a/pkgs/tools/admin/google-cloud-sdk/data.nix
+++ b/pkgs/tools/admin/google-cloud-sdk/data.nix
@@ -1,32 +1,32 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "370.0.0";
+  version = "381.0.0";
   googleCloudSdkPkgs = {
     x86_64-linux =
       {
-        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-370.0.0-linux-x86_64.tar.gz";
-        sha256 = "0qkgny15k8bni5zwkqqcn9h7nzy9g71ykbxf33g3zni7l2icy985";
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-381.0.0-linux-x86_64.tar.gz";
+        sha256 = "1m5npilxagnl8zdx2i5vgcgalbcsnd4zvi0f2y5ic3dlfgibmlxb";
       };
     x86_64-darwin =
       {
-        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-370.0.0-darwin-x86_64.tar.gz";
-        sha256 = "15p1gvwd1wzjl6a4pa7madbakvy5xmjd0k0mp6c7ci8rwgi431g0";
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-381.0.0-darwin-x86_64.tar.gz";
+        sha256 = "0vdbm2pl2wbyrdlf5dxs0djs6dn7kv17qvl8jxca8ylz2k296a0x";
       };
     aarch64-linux =
       {
-        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-370.0.0-linux-arm.tar.gz";
-        sha256 = "1xgxg6w7j8y7q8glzji69sh5g3bz1jhjk6jhmmv68c1l7p5na3bg";
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-381.0.0-linux-arm.tar.gz";
+        sha256 = "03mkhp7kvakv8bzpj9yk9anj8y5k7iina876f7dcsbm9fiwl4g9w";
       };
     aarch64-darwin =
       {
-        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-370.0.0-darwin-arm.tar.gz";
-        sha256 = "19ywsi52sla9wprgmrhlr3q91np9pacspjj58qb7m506pl44hmk4";
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-381.0.0-darwin-arm.tar.gz";
+        sha256 = "1dsfn7rdmg1m7d9cfirl6xsdwzbzh6v62xp6nd9b17s05d4sh0kl";
       };
     i686-linux =
       {
-        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-370.0.0-linux-x86.tar.gz";
-        sha256 = "0k4c1kgkvbhwm5fy3yfc2i9rlf7wf186v20nl428dd9742ppa92f";
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-381.0.0-linux-x86.tar.gz";
+        sha256 = "0y95lvky62f7pfz4g3476ci239p5c8q9p9l2xh59x38xaa69gnvb";
       };
   };
 }
diff --git a/pkgs/tools/admin/google-cloud-sdk/update.sh b/pkgs/tools/admin/google-cloud-sdk/update.sh
index 2aae6129db5e4..b26950087a1d7 100755
--- a/pkgs/tools/admin/google-cloud-sdk/update.sh
+++ b/pkgs/tools/admin/google-cloud-sdk/update.sh
@@ -5,7 +5,7 @@ BASE_URL="https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-clou
 
 # Version of Google Cloud SDK from
 # https://cloud.google.com/sdk/docs/release-notes
-VERSION="370.0.0"
+VERSION="381.0.0"
 
 function genMainSrc() {
     local url="${BASE_URL}-${VERSION}-${1}-${2}.tar.gz"
diff --git a/pkgs/tools/admin/iamy/default.nix b/pkgs/tools/admin/iamy/default.nix
index 467f0ffbce0a4..caaa1cd488f1f 100644
--- a/pkgs/tools/admin/iamy/default.nix
+++ b/pkgs/tools/admin/iamy/default.nix
@@ -13,8 +13,6 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-/IUYM3pTvcHXw8t5MW6JUEWdxegFuQC8zkiySp8VEgE=";
 
-  doCheck = false;
-
   ldflags = [
     "-X main.Version=v${version}" "-s" "-w"
   ];
diff --git a/pkgs/tools/admin/lxd/default.nix b/pkgs/tools/admin/lxd/default.nix
index 55267651c9fb7..3fcb68a5b66ff 100644
--- a/pkgs/tools/admin/lxd/default.nix
+++ b/pkgs/tools/admin/lxd/default.nix
@@ -1,4 +1,4 @@
-{ lib, hwdata, pkg-config, lxc, buildGoPackage, fetchurl, fetchpatch
+{ lib, hwdata, pkg-config, lxc, buildGo118Package, fetchurl, fetchpatch
 , makeWrapper, acl, rsync, gnutar, xz, btrfs-progs, gzip, dnsmasq, attr
 , squashfsTools, iproute2, iptables, libcap
 , dqlite, raft-canonical, sqlite-replication, udev
@@ -9,15 +9,15 @@
 , nixosTests
 }:
 
-buildGoPackage rec {
+buildGo118Package rec {
   pname = "lxd";
-  version = "4.24";
+  version = "5.0.0";
 
   goPackagePath = "github.com/lxc/lxd";
 
   src = fetchurl {
     url = "https://linuxcontainers.org/downloads/lxd/lxd-${version}.tar.gz";
-    sha256 = "sha256-l/rhWhgmvHOkXL+Omt93X9lwIkiGO4pZl95UlOquslI=";
+    sha256 = "sha256-qZt+37UsgZWy3kmIhE0y1zvmQm9s/yhAglBReyOP3vk=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/admin/nomachine-client/default.nix b/pkgs/tools/admin/nomachine-client/default.nix
index 6ff6c83870814..204fc2be58992 100644
--- a/pkgs/tools/admin/nomachine-client/default.nix
+++ b/pkgs/tools/admin/nomachine-client/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, file, fetchurl, makeWrapper,
   autoPatchelfHook, jsoncpp, libpulseaudio }:
 let
-  versionMajor = "7.8";
+  versionMajor = "7.9";
   versionMinor = "2";
   versionBuild_x86_64 = "1";
   versionBuild_i686 = "1";
@@ -14,12 +14,12 @@ in
       if stdenv.hostPlatform.system == "x86_64-linux" then
         fetchurl {
           url = "https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_x86_64}_x86_64.tar.gz";
-          sha256 = "sha256-DZtEt3zBhkvANlCvDwhFY3X+46zzhmKrm6zKPA99w7o=";
+          sha256 = "sha256-Gsi0Hj6cfpxzr0zbWfsq0ZJvCPATQn9YvHbx0Cziia4=";
         }
       else if stdenv.hostPlatform.system == "i686-linux" then
         fetchurl {
           url = "https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_i686}_i686.tar.gz";
-          sha256 = "sha256-T38lOp4R1CoU6TZYeYcZkeZUi9l613LxLUZaEScOcHg=";
+          sha256 = "sha256-zmXOLzFePAD+oH00bAkNsEFviQwkjjqC/gAv87E1qX4=";
         }
       else
         throw "NoMachine client is not supported on ${stdenv.hostPlatform.system}";
diff --git a/pkgs/tools/admin/oci-cli/default.nix b/pkgs/tools/admin/oci-cli/default.nix
index 21d115407f6e2..2272a7efdfbe2 100644
--- a/pkgs/tools/admin/oci-cli/default.nix
+++ b/pkgs/tools/admin/oci-cli/default.nix
@@ -16,6 +16,14 @@ let
         };
       });
 
+      jmespath = super.jmespath.overridePythonAttrs (oldAttrs: rec {
+        version = "0.10.0";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9";
+        };
+      });
+
     };
   };
 in
@@ -23,14 +31,14 @@ with py.pkgs;
 
 buildPythonApplication rec {
   pname = "oci-cli";
-  version = "3.6.0";
+  version = "3.7.2";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "oracle";
     repo = "oci-cli";
     rev = "v${version}";
-    hash = "sha256-ADjHPRG3QzSWR7FvcTIJdcBYmzZK+SWipdY1giNtaME=";
+    hash = "sha256-20Tnn0s+sfLEsAG9S6f61OVGpRf53wFPtt4a2/TJbCg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/tools/admin/pebble/default.nix b/pkgs/tools/admin/pebble/default.nix
index 436e77ed5f16b..0d6d2f57df149 100644
--- a/pkgs/tools/admin/pebble/default.nix
+++ b/pkgs/tools/admin/pebble/default.nix
@@ -6,7 +6,7 @@
 
 buildGoPackage rec {
   pname = "pebble";
-  version = "2.3.0";
+  version = "2.3.1";
 
   goPackagePath = "github.com/letsencrypt/${pname}";
 
@@ -14,7 +14,7 @@ buildGoPackage rec {
     owner = "letsencrypt";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1piwzzfqsdx6s2niczzp4mf4r3qn9nfdgpn7882g52cmmm0vzks2";
+    sha256 = "sha256-S9+iRaTSRt4F6yMKK0OJO6Zto9p0dZ3q/mULaipudVo=";
   };
 
   passthru.tests = {
diff --git a/pkgs/tools/admin/pgadmin/default.nix b/pkgs/tools/admin/pgadmin/default.nix
index 29d0d91a01227..84781688ec1ab 100644
--- a/pkgs/tools/admin/pgadmin/default.nix
+++ b/pkgs/tools/admin/pgadmin/default.nix
@@ -54,7 +54,8 @@ python3.pkgs.buildPythonApplication rec {
       --replace "cryptography==3.*" "cryptography>=3.0" \
       --replace "requests==2.25.*" "requests>=2.25.0" \
       --replace "boto3==1.20.*" "boto3>=1.20" \
-      --replace "botocore==1.23.*" "botocore>=1.23"
+      --replace "botocore==1.23.*" "botocore>=1.23" \
+      --replace "pytz==2021.*" "pytz"
     # don't use Server Mode (can be overridden later)
     substituteInPlace pkg/pip/setup_pip.py \
       --replace "req = req.replace('psycopg2', 'psycopg2-binary')" "req = req" \
diff --git a/pkgs/tools/admin/pulumi/data.nix b/pkgs/tools/admin/pulumi/data.nix
index 1db58accc4b25..b21151d9b5884 100644
--- a/pkgs/tools/admin/pulumi/data.nix
+++ b/pkgs/tools/admin/pulumi/data.nix
@@ -1,64 +1,64 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "3.28.0";
+  version = "3.30.0";
   pulumiPkgs = {
     x86_64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.28.0-linux-x64.tar.gz";
-        sha256 = "0983axi1hxika5a1jl84hfndx8qgfl9pchfakkqcb9w9hwzz5zdq";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.30.0-linux-x64.tar.gz";
+        sha256 = "1js63rdmim5dq40fi6vwz982bc2604c0y0hmyj4mc5ag114lfz5w";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v4.5.0-linux-amd64.tar.gz";
-        sha256 = "16wfnjk9y6zd2pqcn3sk2yhmwbq2zmbdg5yv3a89kdhkal9p785h";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v4.5.1-linux-amd64.tar.gz";
+        sha256 = "10vn054iia68rn37ibrri150k795hr3vdvwgsxdkr2qyp8rna6mx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v2.8.0-linux-amd64.tar.gz";
-        sha256 = "1mma4wjid806h4jk7mqqjfvs8ysv1l48sq8h9c2rvirqgjf42adk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v2.9.0-linux-amd64.tar.gz";
+        sha256 = "1xsrskiw91izjvj1xqfhaf4728vl28wcq4dsinh232g7gfm862r3";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.19.0-linux-amd64.tar.gz";
         sha256 = "16vg56vyxqid566nzdvcnx0fm70nif31wr71mrx1n6ibk767l00i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v1.1.0-linux-amd64.tar.gz";
-        sha256 = "1sh9kcjp6b2wh0bpagp60a8hyxaq6gh1fblcbifzdf6ps7g3y58x";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v2.0.0-linux-amd64.tar.gz";
+        sha256 = "1nfga7mqrb62vf96cfrwdwc41a82fm1xmjby01l3074y6nzb45mg";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.7.0-linux-amd64.tar.gz";
-        sha256 = "07zwhy1jfgwqcybyalrlwrqfkddk1xkqgb9g8dmgs2krx8fp9bsv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.8.0-linux-amd64.tar.gz";
+        sha256 = "1x1fvnxhnhhv9fhqp4syhqcybjqpa2rq8d9nb8yvm9rxgcjllr0n";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v5.1.0-linux-amd64.tar.gz";
-        sha256 = "06fwv4qic6sv27z458qbly7hlz2l3zg3yg0ag0acpy10v3z3vis9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v5.2.0-linux-amd64.tar.gz";
+        sha256 = "0fwj6xdfvh0ysa58pzx37i4ysdf3idhp84d0lfwkbj4wvm6c15ga";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.18.0-linux-amd64.tar.gz";
-        sha256 = "06z4h7hpm17zil1vkghlndl4l6fhc6qlgvj95sxx4n1mxdpf7w5l";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.20.0-linux-amd64.tar.gz";
+        sha256 = "1113nqv4hg8fp5algq3jjn0l6sl56vmlbgxpfm8211m6z99kpjyx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.3.1-linux-amd64.tar.gz";
-        sha256 = "0m89na1gqrb41h1dg5j876g5hp0mfk4g7ij7i4md1szk9fp4820k";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.4.0-linux-amd64.tar.gz";
+        sha256 = "1z8f287mm2mqfa76021fp5a1bj9045iwxcy8xs1ygh48b1890j49";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.42.0-linux-amd64.tar.gz";
-        sha256 = "1qyw93a3n3fnr6972iw55nak1wp4kykpzr9fly3fcbiafvra9i1g";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.2.0-linux-amd64.tar.gz";
+        sha256 = "1mqp79h915zwdmvsqs82pnqbs3qv4nbh65b4ismdvgim667ykydy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.5.0-linux-amd64.tar.gz";
-        sha256 = "0d7m1jq9xanl6126iwill24jysz914ykmr59k0zlyjpafpn1l5vw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.6.0-linux-amd64.tar.gz";
+        sha256 = "0hbrjydkw32xfks636pcfh00w0crn9ivhk0nw0a62812gvdafm9f";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.5.0-linux-amd64.tar.gz";
-        sha256 = "0yfbiv6q2rfm27gwc4vsg2112m1vll5rkk1zwpg510dzvrnjqqn6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.6.0-linux-amd64.tar.gz";
+        sha256 = "0a5nav53dg3j4rrx7747a7bk90krfg9fxj0kw0wahcnjijbv1255";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.8.0-linux-amd64.tar.gz";
         sha256 = "0hy6j7n1jdqxmd6wq5lab1f31zzb3pkvali882fsgjvjw9clbk6a";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.11.1-linux-amd64.tar.gz";
-        sha256 = "1djm9dh1445yn7hnl3m1hm6cw9cj7m9syv08xjjclwc3dj9k7qw5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.12.0-linux-amd64.tar.gz";
+        sha256 = "10v7rsd0k0zbkk4i0drhnv8c2wkjahgzy6niai00sk3kcd0c5p92";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.2.0-linux-amd64.tar.gz";
@@ -73,28 +73,28 @@
         sha256 = "0n1xqsfsqi773lwg9xbvglrd4pfb060fq8llxf06qj8h2imlxx34";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.17.0-linux-amd64.tar.gz";
-        sha256 = "1dbkkrb66iz2z66bj6qhhwhaz3s0md1xgm4mgw0bcdlirkrv1kpd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.20.0-linux-amd64.tar.gz";
+        sha256 = "1q39n02cgp69jjl44xfxn13lcvmcqdb5szpk3d8cybp4kndsklf2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.10.1-linux-amd64.tar.gz";
-        sha256 = "0bs0haa863a2qwwx140911mh2xprgyv316y98jcm8qbl03lmyzvs";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.11.0-linux-amd64.tar.gz";
+        sha256 = "0m6rz6mljdz5w921gzmr3b20g6fpdhd1n9y8cplhdgpg1jvg1405";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.7.0-linux-amd64.tar.gz";
         sha256 = "17v460kbghvrvhxgckzg2bq556amy5hwmks4m1idkcz8akh6vlni";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.18.0-linux-amd64.tar.gz";
-        sha256 = "0br9faaqaksfqyngf3s9kmsjfqmhmpc09rpyqjxprxh1vmd4s31n";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.18.1-linux-amd64.tar.gz";
+        sha256 = "010jm1x4id53wx8jwabqglyvkv73j8bnhksk5jcg20wbf1864hli";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.8.0-linux-amd64.tar.gz";
         sha256 = "1gfiiwgb51ylwns3mqgnbgm2knrdzvy9r9v23yx0z03ba189d3m9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.18.0-linux-amd64.tar.gz";
-        sha256 = "0b4v07wc2xg0w1932dp14qfnvwbhr14x3ivj1vkcz2gy2gg4k2y4";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.18.2-linux-amd64.tar.gz";
+        sha256 = "13pwyqfj8mlvwd2s7marfhbp4jsb7ym9qzf02bl3aw99ngzzybsl";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.1-linux-amd64.tar.gz";
@@ -113,40 +113,40 @@
         sha256 = "111q7jxkjni1091m3kp9c2n1zqlkiy7lrfsrqk4bzpcf67krk9vj";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.3.0-linux-amd64.tar.gz";
-        sha256 = "05nfdwgfzi5f3hgj2g6dccaidqf9a9xzlv5vp3cd1rsxd159yk9j";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.4.0-linux-amd64.tar.gz";
+        sha256 = "156wmbxm8c15lzqj2mx4mm14p569skfddfbq9rjyjlvxljklx2fd";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.4.2-linux-amd64.tar.gz";
         sha256 = "0agf96ji7mzkf4k4axm1v3psm5wkml41714dz88rn0csq0b31ca9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.6.0-linux-amd64.tar.gz";
-        sha256 = "10sk1hnn7sgnjgxxdjdshlgs1lf8j02y5almd3sp821gfaclfzq9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.7.0-linux-amd64.tar.gz";
+        sha256 = "1jx9ngzk3k8ab5s1ms2j8k7sb2zfcxkwhjj7zwvdna5x2lxrvq20";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.16.0-linux-amd64.tar.gz";
-        sha256 = "01yaz2yh77fdcqcv94xh85b3km7q1gpjdys03gll6gz1vb0qlhis";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.17.0-linux-amd64.tar.gz";
+        sha256 = "1abgvb6bqdpy4rh94rq94bjcvz7ksd0f4ywzwxh02f7qv9lacsx9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.5.0-linux-amd64.tar.gz";
-        sha256 = "0hr6vb7zbxll20xq31ddqn287w4rykhswfsm56h1r3ffj9kka57y";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.6.0-linux-amd64.tar.gz";
+        sha256 = "014aqs91gyzsi413v6f6npnmx72yflhxc6ybxngybkphc6hzx5y2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.7.0-linux-amd64.tar.gz";
-        sha256 = "022wl1b2cv8j6lrzvzrik8jkxvngyd6jx7qrn4r2km65xfmgckz2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.7.1-linux-amd64.tar.gz";
+        sha256 = "0yhsidz5mi6xznmrkvlg1jxyykhg3kccqd4fxg9zj9yv4l8ih2rw";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.1.0-linux-amd64.tar.gz";
-        sha256 = "0ayb1r9snjqgmczkvz4kjbswr0a98lmpapll4nws9q0rjj2w48y7";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.2.2-linux-amd64.tar.gz";
+        sha256 = "1x30qyrjrhn4gglcz2gc1h6n8px1v198fpsjf2wmf3v13pb15ix8";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.4.0-linux-amd64.tar.gz";
-        sha256 = "0cj46m1jzfhx400qq4p40sqg0j6m2nggfpvyv4m1jxxzna11615n";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.4.1-linux-amd64.tar.gz";
+        sha256 = "1n780mk61vshxyf7h9wdx3rddnrmjljzzx979c4hw1ycq40iwxkh";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.4.0-linux-amd64.tar.gz";
-        sha256 = "0hf7jrr91wpq28xsf8ajbdillblryh35k5w367d5fps7ph3fjk3f";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.4.1-linux-amd64.tar.gz";
+        sha256 = "1l3iplqqndvx98bcil1z2vhnmaldvrgyggbs2f15jyz4iv2k822k";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.2.0-linux-amd64.tar.gz";
@@ -163,60 +163,60 @@
     ];
     x86_64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.28.0-darwin-x64.tar.gz";
-        sha256 = "0nixfzgl94kqzzvwr572rzqcayldcyj03ilbqhns7x3wl31fn583";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.30.0-darwin-x64.tar.gz";
+        sha256 = "0hbdcn5aby9a9nz3jb1p8rr7r35mv7hxdbb8lsqph70bzavw5bzi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v4.5.0-darwin-amd64.tar.gz";
-        sha256 = "0bq8hjcspb8wmyjfn73rzjfqq1clxjx3cwx9yd8v7wjbr2ijrlkz";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v4.5.1-darwin-amd64.tar.gz";
+        sha256 = "0i43sspz7bcg6nhdf3ncj6mcs087qn2z0fkfcylj7nsvvvwcacyr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v2.8.0-darwin-amd64.tar.gz";
-        sha256 = "04qk7kq7d9g8i00f8fn3rsni284xqh0hcxkf4pp2mw660hm209h6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v2.9.0-darwin-amd64.tar.gz";
+        sha256 = "0xnlj48lgjhb3cf0yp958j7js5akxygd6034r4fa26kzhqq6rnl6";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.19.0-darwin-amd64.tar.gz";
         sha256 = "14skymvy5mf0509v3b8wrmi7n390la9nr859l7afbhxk4cwvq3av";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v1.1.0-darwin-amd64.tar.gz";
-        sha256 = "0g68wfgrmdapf7nkiyxapqykq5svcsms5si5848x23nn4rwx0qkk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v2.0.0-darwin-amd64.tar.gz";
+        sha256 = "0zjcbaflcbm52bjfpsr9pbg4jddf9y8zq4i1w8ki46bdcvyi998g";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.7.0-darwin-amd64.tar.gz";
-        sha256 = "0bz177xi0ifhx14jq01i94gdqgjsivikmhrf24y27k96jq7n15ld";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.8.0-darwin-amd64.tar.gz";
+        sha256 = "15a89ydv8yp71aamd9kciz9yggxza5njdikch5pvmd24jvar03gm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v5.1.0-darwin-amd64.tar.gz";
-        sha256 = "1i76f62bjs3gvfqfxi83gfhlb8vn41mlblpaqd49wyqhmsa0g2gh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v5.2.0-darwin-amd64.tar.gz";
+        sha256 = "1jqqycasnk2i8w16qf52yya0p35ilfmabpd6alfgmpkk6ag7asa5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.18.0-darwin-amd64.tar.gz";
-        sha256 = "1w0iwjny4vxplfi6kkdvglgalwwl5krk9hgfaiw7f1q43nkqw0bd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.20.0-darwin-amd64.tar.gz";
+        sha256 = "0lx3sfdck18ppmd76ijmih51adm9i2rc2ai564psqx41261zpjyr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.3.1-darwin-amd64.tar.gz";
-        sha256 = "0fjynq1ilfv6njjyyadhpc9ks8izwif3nf8mnb7wfxchxn7gqbsi";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.4.0-darwin-amd64.tar.gz";
+        sha256 = "1shc7m4xlsmcjnrlbi2jyvmnvf9bg1cs6knfkl82jfs65ya5iidf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.42.0-darwin-amd64.tar.gz";
-        sha256 = "1y874pnf7mw3r37inrdiiz1qjxx4p9dam9ivdv7z7sddfw0305qn";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.2.0-darwin-amd64.tar.gz";
+        sha256 = "0xsk8d982w2zqvxfyqk1s3nilbsiqwnn3bwxm6d6zvhbi9ym63p7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.5.0-darwin-amd64.tar.gz";
-        sha256 = "0hyirx7yg53n3v0ywlq2848r64jnclv3wn8kd8mk8sznxh9qmg9n";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.6.0-darwin-amd64.tar.gz";
+        sha256 = "11g07qp5b4p7ak5lrc1jaxlngfappba56lk9z8c6rlfs6ajkrfmq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.5.0-darwin-amd64.tar.gz";
-        sha256 = "1kgk48k4898zxsnhfg6z949m3mgicdm2zfg8ba7z1lbidzc6g3sq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.6.0-darwin-amd64.tar.gz";
+        sha256 = "0pvq5mwl8scsyvkqgy32v1qs4060w0m12z0f1cw0aw34wd3zs67a";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.8.0-darwin-amd64.tar.gz";
         sha256 = "159h2l7dzj2bfzvifsq5vnsvp2z86bivim65pp0w8gf460n9v8b0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.11.1-darwin-amd64.tar.gz";
-        sha256 = "11wnk0ssqzfcvks5qvc2yi6iv9nxxxxqwmnjyavdzp5s5vvpi5zm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.12.0-darwin-amd64.tar.gz";
+        sha256 = "0ywycfl0arsfqjirk3b56i8kpx7c9wpbisadmcz0m5fahi47j2v8";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.2.0-darwin-amd64.tar.gz";
@@ -231,28 +231,28 @@
         sha256 = "0i3aysdy7i13fx2a2kpnvd3qpn7vmc2mbln718kks3mikiz26aii";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.17.0-darwin-amd64.tar.gz";
-        sha256 = "1cwdy4yr3c7wcj3p0sg1k0q6b6sn0mhlpqkbdi4xfk990d88c78c";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.20.0-darwin-amd64.tar.gz";
+        sha256 = "0rgqihk76hwyps1krhzg4an280ds9rjyq2pzhk1gbvljflplri4w";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.10.1-darwin-amd64.tar.gz";
-        sha256 = "0a8lycsgk2xawhg9yd6lkbfg7j6v6l3m0llvdzs0drb2k954wbym";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.11.0-darwin-amd64.tar.gz";
+        sha256 = "0bgznj8569m2zzx9qjmnbcn0c3zbz12iyiffp4kg1c7g7chrlvy6";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.7.0-darwin-amd64.tar.gz";
         sha256 = "08b6p6gliay66bd7687kjc9n3n7xdgbrrcnbjbqi7a3am14mf5p6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.18.0-darwin-amd64.tar.gz";
-        sha256 = "0wn9jpvaj3hwlm3yakgm7y87dcv1ja606hkf3vllqjmjz99113c3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.18.1-darwin-amd64.tar.gz";
+        sha256 = "0828lrq07586liz2k7pjk7hnz4nxawkq03nw8x2s4j8paszrz295";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.8.0-darwin-amd64.tar.gz";
         sha256 = "11r73jfqkc0wgdf66zp6pmgq5packlm4dkjp12a00z6l2s4f0w4h";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.18.0-darwin-amd64.tar.gz";
-        sha256 = "1v0bgd7dyc19wp95grxgq65i9sx60d487yqzjqqzscxqx62d7axh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.18.2-darwin-amd64.tar.gz";
+        sha256 = "041h4qsgzz5qd74q3lzcafqn3332gps4cf2i18x9pbnwvh7my69a";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.1-darwin-amd64.tar.gz";
@@ -271,40 +271,40 @@
         sha256 = "13qxwzfsy0hmvgazry0q3qna0jk7llharcvdwz302fj4ad98s71j";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.3.0-darwin-amd64.tar.gz";
-        sha256 = "0q19sh7l1mjl40i5vdsrjfldncxnicalmlgv3yjkw5xpxkgr98z0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.4.0-darwin-amd64.tar.gz";
+        sha256 = "0zjha6vv6j386h2gfhvwicpqz53v13v7zdfl6bydjzh3mw2x7bcg";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.4.2-darwin-amd64.tar.gz";
         sha256 = "1wmvmhxnjp32kp43fhjp8w9nrb0biki63w23l4zjxsdk7njply7c";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.6.0-darwin-amd64.tar.gz";
-        sha256 = "0g3l2yslnwp72w7r00h5hdj3w00dbgbgbsw31m327rd6p143iasr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.7.0-darwin-amd64.tar.gz";
+        sha256 = "0z5w42m0229gjlbp36aqh8cfd0l47nv5jh6gcjqfp5pkgwh37gnj";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.16.0-darwin-amd64.tar.gz";
-        sha256 = "1viwk26qj9civh4plqm34j5iky69sxvskmqbga03x1v5rd7567aa";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.17.0-darwin-amd64.tar.gz";
+        sha256 = "119a3dfrri8qdbianml7i2fm6yr8rrq1q0cnpk9r8qsyja2vsvp7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.5.0-darwin-amd64.tar.gz";
-        sha256 = "01pc0qqqcmqc8al0bcnwig3741ln4dril5mv82py6wcy8brhwvyl";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.6.0-darwin-amd64.tar.gz";
+        sha256 = "11zhgrljwqkj3a200kdh8gyzvxm6jcbwm71929a87wqppgwvcbag";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.7.0-darwin-amd64.tar.gz";
-        sha256 = "1argvhm2jirjddi5hnp0rxa7710ixaj63lw8k2aq4xkascllm4lb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.7.1-darwin-amd64.tar.gz";
+        sha256 = "1n6w6da58crv2dyi0s7pjzjk3y85qlz6qaa77r0lm58f8wcj4a9d";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.1.0-darwin-amd64.tar.gz";
-        sha256 = "1jzirnaxy6y862khqf29i25r8qyrpac2kmacs9ny118l77xp33il";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.2.2-darwin-amd64.tar.gz";
+        sha256 = "1shfz3qz92plxsn31kqsvzk6sibgbglq66j34w5aj98g2g5891f4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.4.0-darwin-amd64.tar.gz";
-        sha256 = "1ghghaq9svy7sv2s1j8b1qjah6aj7vwwdh9wd9agm4xdiillprhf";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.4.1-darwin-amd64.tar.gz";
+        sha256 = "0l89yiwjs39nhicln0bbwb8j1dajc1r1gdbqrl3zjpq6mnhanphb";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.4.0-darwin-amd64.tar.gz";
-        sha256 = "08b3lyyf8zjkn9jaw4l0yb741i6kqhfb7cbwshrwqh6l3yh7kc2y";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.4.1-darwin-amd64.tar.gz";
+        sha256 = "1gxk3gcyqk688m9dv2p4flbm1dw0z9478xip6jqaiw4awkrzbnns";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.2.0-darwin-amd64.tar.gz";
@@ -321,60 +321,60 @@
     ];
     aarch64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.28.0-linux-arm64.tar.gz";
-        sha256 = "1zrz7vgl36wj4h3h298x4vh2dl0a909niw22dxfvzvsvxcd88y9v";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.30.0-linux-arm64.tar.gz";
+        sha256 = "1d7a4r0wyig5fbbs9d6jal2ria44ajca0441szsf1rd5ds29fvj3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v4.5.0-linux-arm64.tar.gz";
-        sha256 = "14g4kz6czw886znasl5pw7l2ar84h1dljkalgs9vaxszyhdr7mnw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v4.5.1-linux-arm64.tar.gz";
+        sha256 = "0c55b6jn7xxkvpcbgc4l8nxbjpdlpy6xhrk8j65ch27jhn3nwags";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v2.8.0-linux-arm64.tar.gz";
-        sha256 = "1j8akg227w4dxhv5hnxybabxi25i33q6cacgxrkdrd3mvw9hxmba";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v2.9.0-linux-arm64.tar.gz";
+        sha256 = "0vn6rdqfl79p666v2h72dsqgwqfag5k3hh4abb7hdz2kzqrl7l9k";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.19.0-linux-arm64.tar.gz";
         sha256 = "1g6ymjsmxp149cv93sn5843pxlih1dbw16nvv4sn3prl360c4lxa";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v1.1.0-linux-arm64.tar.gz";
-        sha256 = "0lhgp5wmlza75v1b7nkkp4y2d4bzk1658frnqblxsdcz9z12cwmi";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v2.0.0-linux-arm64.tar.gz";
+        sha256 = "08qjb17rpxmpl5waq6dsza28aa9lj8blf3x59xv3dv4ngzzymh07";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.7.0-linux-arm64.tar.gz";
-        sha256 = "0y519wmpq6iin20kqidw7b2zkqr6zky09lfsi10klbn0gzfpwbl5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.8.0-linux-arm64.tar.gz";
+        sha256 = "0j5wa27zhqf4vvpxgs4cmay8n3a74jsif4sr9x60mhkrhr0s117k";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v5.1.0-linux-arm64.tar.gz";
-        sha256 = "0kqdxcl134sn3k0sa1kzhn91l3szrgc3rdkzbak66g0vjpm7di94";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v5.2.0-linux-arm64.tar.gz";
+        sha256 = "1i4rbjaabqwhgfrsi75i8rr5imrn3lifkrgng1amyf279svsrc3q";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.18.0-linux-arm64.tar.gz";
-        sha256 = "17bjngcxjhh4m9zc8rbb2ixqq2dhr405y4xnsxhwyld8lnnrqm7w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.20.0-linux-arm64.tar.gz";
+        sha256 = "15fszcgdnqnwjd1676sgrnlk45791927xagg22j5vf588v897ikj";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.3.1-linux-arm64.tar.gz";
-        sha256 = "0a6bmiz6ys1h6n59mw3w7b2g8rhbnr0rb40rwidazvkni0s03yha";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.4.0-linux-arm64.tar.gz";
+        sha256 = "0w55pk3ham08lrg3vq0hg3p23qipz21ln01g61xd0cpl79aysbq4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.42.0-linux-arm64.tar.gz";
-        sha256 = "1hwbmqjliw9aknp54g72mn0qlikk64l2sbvbydc06q0advsj0wic";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.2.0-linux-arm64.tar.gz";
+        sha256 = "0faxw096gf86z1bcl7g613hmnnabpcav9kzmc0bgdl4jja3l9flp";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.5.0-linux-arm64.tar.gz";
-        sha256 = "03k9xkaji82vbjhm051rd85nmbqv9frjc71cbxm50c70gmam4y6c";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.6.0-linux-arm64.tar.gz";
+        sha256 = "1b1w886m6glpq49baj6zhyb2rcyi4y0kh4sl19ni3afmn9bw6xn3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.5.0-linux-arm64.tar.gz";
-        sha256 = "1wwv6v9srzsdlcxv92kwv4drkx8w1h5xcvcwqqn6gi2mvsf3kj9n";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.6.0-linux-arm64.tar.gz";
+        sha256 = "085flnzp062p6ankfl77p1y7n8ijrhmknnb4r46x6b3lrw891pgd";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.8.0-linux-arm64.tar.gz";
         sha256 = "00y77pyxnish3zym103al5z3r881p7nf9d1aqh887nnz6i5jw7nq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.11.1-linux-arm64.tar.gz";
-        sha256 = "0vn6kgdwd63c62kaq3b09m3yipg43yh12s0a9zhi48p4wplsgf9s";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.12.0-linux-arm64.tar.gz";
+        sha256 = "1iwckjvbhrbic64yj8ydnn1ml19lw4k164xkkc4066dpxbjz128q";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.2.0-linux-arm64.tar.gz";
@@ -389,28 +389,28 @@
         sha256 = "0qpan6zvny2h2ckigwnf4dhsgmnywam1m4d2jp0nj9pm3628pldv";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.17.0-linux-arm64.tar.gz";
-        sha256 = "01pgzyy70f77cidh228gs72hybwchp65qvs748482wakjcmf44mn";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.20.0-linux-arm64.tar.gz";
+        sha256 = "0rz1y61gg728l70rsk9mnd5qkdp3akxfdcfcmakabzs1axycvrzp";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.10.1-linux-arm64.tar.gz";
-        sha256 = "1lrbl7x7hf1i7xx10cpxz17hihl8b6654wphz8s8g9lp0jryn6am";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.11.0-linux-arm64.tar.gz";
+        sha256 = "1lnc40lgc2rgrbhw54gc3g24zp1v3vspr4c0bryjq21yrhisppdd";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.7.0-linux-arm64.tar.gz";
         sha256 = "0i6qxrdijf653nj6yqhdikbj3spzzwr5rbgngkc0v7yxkphlzlnj";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.18.0-linux-arm64.tar.gz";
-        sha256 = "152qrcik44iz5lrfg649wmk67wcjdm4lnkwrc1gwhm34w0lrbarf";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.18.1-linux-arm64.tar.gz";
+        sha256 = "1q5fxlrfiqlwib5bwwinmghq3j25rv14ldklpxihviyz1b5sdiyk";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.8.0-linux-arm64.tar.gz";
         sha256 = "1vrz3pm14i5zdmk3yibny2sghxk8kzwb2qi77mjbiyfhbvciy97q";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.18.0-linux-arm64.tar.gz";
-        sha256 = "1w2j27sd5gsfz561wgr3lgcpxn9wghgvc5s4zpciiwyxpczmv8r3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.18.2-linux-arm64.tar.gz";
+        sha256 = "0k46bm706i76svmxb03w3vb7jw3j9gxknx1y5fv6drnrmbzxgazq";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.1-linux-arm64.tar.gz";
@@ -429,40 +429,40 @@
         sha256 = "0dh28hhg2lbvbgw2yadw0ig68z2pcg51h38v74yczblm24k97jvq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.3.0-linux-arm64.tar.gz";
-        sha256 = "0j2c23ii4dn9yhpw6nymij65gv82y1xp4gi8lgxxf41b1i9bpb2i";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.4.0-linux-arm64.tar.gz";
+        sha256 = "11y6vbmhrjqdlgzg9px1sm2p058v6mvk69gzhy2ix1c1a2sh6c56";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.4.2-linux-arm64.tar.gz";
         sha256 = "1x8v39icapr8iakp9yd50md9dyvj63z7yj93cl3b07qlwr9lcvmv";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.6.0-linux-arm64.tar.gz";
-        sha256 = "1jh4qbdgcqbkznyq0ivf4wlrn1izgjqf811qncgkab890fp9v37w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.7.0-linux-arm64.tar.gz";
+        sha256 = "0k5ic9i7cd6ccl3v20sj7jgpdrcc4bkv697p0pslb7i3fnhdcawf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.16.0-linux-arm64.tar.gz";
-        sha256 = "0ksya9nywimkm4jcd67ccaaxbvsxq747d21j8aywpwp3nwfl58wi";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.17.0-linux-arm64.tar.gz";
+        sha256 = "1ssrqxf1gss0fcpffgh40hasbgh4cc4ysqkk0lxdl90avb7lf2zr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.5.0-linux-arm64.tar.gz";
-        sha256 = "0zqmzfv3pc6j3878c31jfa488kdahcdnra4mqan3lz97jifc3dla";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.6.0-linux-arm64.tar.gz";
+        sha256 = "10sb3lm8m90fwf20nqy6yzfwbxxlwf13hmygrqnyicvfmiajihkn";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.7.0-linux-arm64.tar.gz";
-        sha256 = "0nksi0ybjq0mwqiwwrnm4vifwjdjlyx6i446pyqm97wlph3ffg8h";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.7.1-linux-arm64.tar.gz";
+        sha256 = "0zkmkg9bivf5hlcbdj2aqyszpsqk7x8ag99z0x2yd00v72x2qcb5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.1.0-linux-arm64.tar.gz";
-        sha256 = "1275cikf75lnf3d4k4ld0by1r8hr6gq6mih09fsfg98b8f7n16kq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.2.2-linux-arm64.tar.gz";
+        sha256 = "1km5fhlic0vidqijx8bfjr0h1w0wwl9zk60ydz86kdxpby4b2flb";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.4.0-linux-arm64.tar.gz";
-        sha256 = "09rvvps2kijjr4r9h75xijpsxw5ar2gy3ncmrvjfyqx17zch92v6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.4.1-linux-arm64.tar.gz";
+        sha256 = "08rxnqdvpb7lrknhlnyhnfnvsmbdi7cxds7dc5zdslx27fcywz8a";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.4.0-linux-arm64.tar.gz";
-        sha256 = "1lh459lxa4gvxkbypmcm4hwcwcchkvs79ajlb9gvrm4ds68nm5xb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.4.1-linux-arm64.tar.gz";
+        sha256 = "1ivbdpls45zjzw4v2hi7g3zfhy0nlnnh026bkzzfnfan1isnpp87";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.2.0-linux-arm64.tar.gz";
@@ -479,60 +479,60 @@
     ];
     aarch64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.28.0-darwin-arm64.tar.gz";
-        sha256 = "03k6ahdki17nmr3gg6956gxrvmikwi719aynhch8azr000fp7vaj";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.30.0-darwin-arm64.tar.gz";
+        sha256 = "10f2mamxg0h8lm4zf38j3a43s5d8r52f6lp6lrg0j705356w49bn";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v4.5.0-darwin-arm64.tar.gz";
-        sha256 = "0kdljrsb5kk9i1xf1fk461fsb3vbjmcvzvgkjd3yp0xij3fac6al";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v4.5.1-darwin-arm64.tar.gz";
+        sha256 = "0l2xmaybgrbln3zgpdx6pmrg05hm08maigr62hpj2q6l8z06gsfk";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v2.8.0-darwin-arm64.tar.gz";
-        sha256 = "0vimh8zvds4h4r9gg72vjkqqp76kmadcq9iza0winkw3r41z5ja4";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v2.9.0-darwin-arm64.tar.gz";
+        sha256 = "14qf3y7nz4dd6qf9fq49f90415dn5hcjymm86rmcgyw1w1dkjpqi";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.19.0-darwin-arm64.tar.gz";
         sha256 = "1n061d8phk6cjvr24138vqzxs5midfadqgrpmaaknbpykcd3vym3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v1.1.0-darwin-arm64.tar.gz";
-        sha256 = "1vldwyy7vhq9l6c51lqc30h0sal5liqza4s1yhk1pbc0wsgvcdv2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v2.0.0-darwin-arm64.tar.gz";
+        sha256 = "1s9affk1y1bzg44rz6cahnvzln4sc8ycwvmskqwrfqankrzk5730";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.7.0-darwin-arm64.tar.gz";
-        sha256 = "174dk82cx35i9x1f1kavydg3qyqax0lhl7637d2n17ca97xa7y8p";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.8.0-darwin-arm64.tar.gz";
+        sha256 = "1qx9717a5qajn3dp4i0gswd2pb80dq98igfad9nbz1f9sbbax2dv";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v5.1.0-darwin-arm64.tar.gz";
-        sha256 = "0w8vzyr4j1r0n389531zqi26wqzdy8raimbsb0p0zhnr1myysr99";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v5.2.0-darwin-arm64.tar.gz";
+        sha256 = "1sl0d642nb6xpga8izgzbl9h94faynjjrjygccc7ccnrfdh4i0dv";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.18.0-darwin-arm64.tar.gz";
-        sha256 = "1ajanl6xgi00qc8a1apzfy45gaqxd7038hc3kmqgkrgzv8b943w4";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.20.0-darwin-arm64.tar.gz";
+        sha256 = "0dwwwf7m7592nfk4lyc2vyh3ffqf6yfwr948b3padml89s2bmafx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.3.1-darwin-arm64.tar.gz";
-        sha256 = "0hlcfyxmjcq3axg35fx1dj081il60rqs7na0wx573gf028g6jj9v";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.4.0-darwin-arm64.tar.gz";
+        sha256 = "0ivwpfhknhyidpafm2347g1pair7vk055ajhhyg631vizx53hrr9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.42.0-darwin-arm64.tar.gz";
-        sha256 = "0brsr5hlndds98yap32ccl07y2wb2r00blf3n8k9kd941gls72vk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.2.0-darwin-arm64.tar.gz";
+        sha256 = "09a6nxg66lv82zsis9axnch9slka136nsx43c2sqzmr5x5n11qww";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.5.0-darwin-arm64.tar.gz";
-        sha256 = "18nb6phh9y369c8bj5q0cmari1zy7vq82qdcr2dxxm5vbcg5rvx4";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.6.0-darwin-arm64.tar.gz";
+        sha256 = "1i7n2yvvsijhhxrdd6i9vvrlmrn382qyrs258kbrza5zckxshdwq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.5.0-darwin-arm64.tar.gz";
-        sha256 = "16nnb6ql4j2207dgwmrhgx8mg19asf2n450lrmwvdzyvcy5zjm7p";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.6.0-darwin-arm64.tar.gz";
+        sha256 = "11b8dr2ycn3p4k06y2f4pj19hy7zpq0glh8npqixmvn66flp3wa7";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.8.0-darwin-arm64.tar.gz";
         sha256 = "0payziqwl9f1xja001mymaabxd5524b6ksanfr5jifcfchy9zq47";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.11.1-darwin-arm64.tar.gz";
-        sha256 = "0nl47s8v47jvr4w3v5s2fnwhm56yb3knfb1za7ncynybgw8hizv0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.12.0-darwin-arm64.tar.gz";
+        sha256 = "19cqahnk217cr5pz6jp4d8v1hpxma0x4igvccgm2i02sfqlyr65y";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.2.0-darwin-arm64.tar.gz";
@@ -547,28 +547,28 @@
         sha256 = "0jj35mj57sivi5qsbwv8qm2jginppi192qlx6ashvgm352gia9r1";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.17.0-darwin-arm64.tar.gz";
-        sha256 = "06lgq9p5mgqaifl4lrr5csbprx0j3khq93x29j4jvq5kw1qa3gc5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.20.0-darwin-arm64.tar.gz";
+        sha256 = "0ag3m8nnhni98cwaffj30ir8s94b8xvrjsbhn32lin1lnqwm1114";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.10.1-darwin-arm64.tar.gz";
-        sha256 = "1hx8rsf9yysvjg6df8dxzz8kqci000jxzg8wwxjfhcfb9adzjmy8";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.11.0-darwin-arm64.tar.gz";
+        sha256 = "0vvdbk778dlpwkadllm911f71vz1i1v48wmyws9z780nky6zrbii";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.7.0-darwin-arm64.tar.gz";
         sha256 = "1gvzjf5mp3iy43srvx3blxfwcg20gqbqvycysnl2p8g8sg3scx5f";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.18.0-darwin-arm64.tar.gz";
-        sha256 = "04qjg2rd71375ny817h1l4174bafrhkl0d9n5qrp546dhaqmv6vr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.18.1-darwin-arm64.tar.gz";
+        sha256 = "0gjxk12z2ww31nhvnyvjgr0kxn80sn3i1x4a3f5w9mk7xc1y7bhk";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.8.0-darwin-arm64.tar.gz";
         sha256 = "058f1j40ar4xh860c3qrm0qaagm69fdmbw14avvrhsmw245cyyzc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.18.0-darwin-arm64.tar.gz";
-        sha256 = "1llvcnrghhwr0qzd1zmdrc1x384lrd06dqcx1ng9l4ixhz6nmkl1";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.18.2-darwin-arm64.tar.gz";
+        sha256 = "0scmn5cx23g5ap31x93ybimyyx3sqwyz429881px2qdl3k4m75vw";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.1-darwin-arm64.tar.gz";
@@ -587,40 +587,40 @@
         sha256 = "0xqxk9xp49s0l5cxxz9wg26fg4fj57h4yjpvs4xs8fpaqa1saynd";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.3.0-darwin-arm64.tar.gz";
-        sha256 = "1i5ipmidg0yspayxyglbjaihajhj1bsk46saxkncfrkvqnh4iq50";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.4.0-darwin-arm64.tar.gz";
+        sha256 = "14qp5vlmny68hjca1xykc06z2f740q1flkn9d7n2k6knzp1db9xq";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.4.2-darwin-arm64.tar.gz";
         sha256 = "1rbig2n5x2lzxpscnja0ya9a68z3jk0qz2zwdnzi66xy7i3zd39l";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.6.0-darwin-arm64.tar.gz";
-        sha256 = "1mlwggyx7l23z9fiy9bnlsjbsiw3i8kwrag2zjszbqj6sflskrij";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.7.0-darwin-arm64.tar.gz";
+        sha256 = "0yqwxkd1rby0q7isxxyx1nn0vrz72znrms2d220haj1482gacj0a";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.16.0-darwin-arm64.tar.gz";
-        sha256 = "0wk8vdx3w5n60dbh2fjqmfxnc24cbrfxygsa211ckb2pcmmr93lm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.17.0-darwin-arm64.tar.gz";
+        sha256 = "1j985hv5qmjvmh4vr978z3d6bpmj4mg3pil57402rifgdz3q7i17";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.5.0-darwin-arm64.tar.gz";
-        sha256 = "0imqi4n21c4xxldkdkxc8239vb4r3l5x0fw8wps6nvpxhdnsflgc";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.6.0-darwin-arm64.tar.gz";
+        sha256 = "1j9128vmm70mhdhl8rxgz1p7vf6ywbaq906jldm0izr7yi119k76";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.7.0-darwin-arm64.tar.gz";
-        sha256 = "00gpa2qrqfjyj83k40q5rfszhip5bbqd8z3rkdgrc93kbmxh37s0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.7.1-darwin-arm64.tar.gz";
+        sha256 = "1vbbca4z6z92yk2y6g15s0cyvs5n6vx84h30ldnn4mn3gdfdi7gg";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.1.0-darwin-arm64.tar.gz";
-        sha256 = "08dhxd39w7wjpqjfy59vxfipjl45psd6yh53h2g025y8hh80gcrs";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.2.2-darwin-arm64.tar.gz";
+        sha256 = "1ln8qizgisnf1z98vyflid99d5pl1zryrj0hg995d1lf2r0dy35g";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.4.0-darwin-arm64.tar.gz";
-        sha256 = "1jfgphwcr3z31yyf36wh147spwdk82713m03kkahva11m6h4x6gm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.4.1-darwin-arm64.tar.gz";
+        sha256 = "0h423svxl2qfpgv4xl4kf3y2zsjz5lwndmvxjm9g8i01k9mn3v30";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.4.0-darwin-arm64.tar.gz";
-        sha256 = "0pgrlz8nx1gfgwlp5sk70w14z0hrxcwkv9xkzjc694nwlwk1ipm8";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.4.1-darwin-arm64.tar.gz";
+        sha256 = "1iabwi9cf0pvfhhhxbhp8283bzhd58rwwfcrhgh1wh9kgr0icqlx";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.2.0-darwin-arm64.tar.gz";
diff --git a/pkgs/tools/admin/pulumi/update.sh b/pkgs/tools/admin/pulumi/update.sh
index 14adc3ba91474..671a9875a6f1c 100755
--- a/pkgs/tools/admin/pulumi/update.sh
+++ b/pkgs/tools/admin/pulumi/update.sh
@@ -10,7 +10,7 @@ fi
 
 # Version of Pulumi from
 # https://www.pulumi.com/docs/get-started/install/versions/
-VERSION="3.28.0"
+VERSION="3.30.0"
 
 # An array of plugin names. The respective repository inside Pulumi's
 # Github organization is called pulumi-$name by convention.
diff --git a/pkgs/tools/admin/realvnc-vnc-viewer/default.nix b/pkgs/tools/admin/realvnc-vnc-viewer/default.nix
index 4a11d1e5440fd..4f990c5380863 100644
--- a/pkgs/tools/admin/realvnc-vnc-viewer/default.nix
+++ b/pkgs/tools/admin/realvnc-vnc-viewer/default.nix
@@ -2,16 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "realvnc-vnc-viewer";
-  version = "6.21.1109";
+  version = "6.22.207";
 
   src = {
     "x86_64-linux" = fetchurl {
       url = "https://www.realvnc.com/download/file/viewer.files/VNC-Viewer-${version}-Linux-x64.rpm";
-      sha256 = "12zxp9kvi070nzxbrnrfsyla38ryb69zlidw6cvypmsgqnylfxj7";
+      sha256 = "0jybfqj1svkb297ahyp07xf4b8qyb5h1l2kp50a50ivb6flqd3jr";
     };
     "i686-linux" = fetchurl {
       url = "https://www.realvnc.com/download/file/viewer.files/VNC-Viewer-${version}-Linux-x86.rpm";
-      sha256 = "03vhdmzyd16r0kdxpkq9azyy1h705lk4sbgnbw5fr8gkifwng60f";
+      sha256 = "06jmkd474nql6p3hnqwnwj5ac29m2021flnvf44mfhrhaa5wnpz6";
     };
   }.${stdenv.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
diff --git a/pkgs/tools/admin/scaleway-cli/default.nix b/pkgs/tools/admin/scaleway-cli/default.nix
index 436c629062611..75e14391736d1 100644
--- a/pkgs/tools/admin/scaleway-cli/default.nix
+++ b/pkgs/tools/admin/scaleway-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "scaleway-cli";
-  version = "2.4.0";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "scaleway";
     repo = "scaleway-cli";
     rev = "v${version}";
-    sha256 = "yYzcziEKPSiMvw9LWd60MkHmYFAvN7Qza6Z117NOOv0=";
+    sha256 = "sha256-a8imZN3APQEb9ntQOzOKGBEiPKmb5ZYC9ZKnOuLiElc=";
   };
 
-  vendorSha256 = "7cGVeja1YE96PEV1IRklyh6MeMDFAP+2TpYvvFkBYnQ=";
+  vendorSha256 = "sha256-aaYS0WqNa8997kdV38blUsYovtUHHtEUXCTG9vwv2ko=";
 
   # some tests require network access to scaleway's API, failing when sandboxed
   doCheck = false;
diff --git a/pkgs/tools/admin/stripe-cli/default.nix b/pkgs/tools/admin/stripe-cli/default.nix
index da39ebfac739b..e3241aacab698 100644
--- a/pkgs/tools/admin/stripe-cli/default.nix
+++ b/pkgs/tools/admin/stripe-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "stripe-cli";
-  version = "1.8.1";
+  version = "1.8.4";
 
   src = fetchFromGitHub {
     owner = "stripe";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-R1w+dVBIPbmBOhtVWKfB4tS+Jp1/tahRk6rifPM53HA=";
+    sha256 = "sha256-TP366SozSNfxUGYXIOObfIul0BhQtIGQYZLwH/TPFs0=";
   };
 
-  vendorSha256 = "sha256-KgoSJcVUtE4ryJLtQXNCdl51sgO94vyb682OdL5CYw8=";
+  vendorSha256 = "sha256-1c+YtfRy1ey0z117YHHkrCnpb7g+DmM+LR1rjn1YwMQ=";
 
   subPackages = [
     "cmd/stripe"
diff --git a/pkgs/tools/admin/syft/default.nix b/pkgs/tools/admin/syft/default.nix
index 7f2705b923fd2..11c748f5d64ee 100644
--- a/pkgs/tools/admin/syft/default.nix
+++ b/pkgs/tools/admin/syft/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "syft";
-  version = "0.43.0";
+  version = "0.44.1";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-gUdlVwXqi58X6O1arfniNsKKNR+bU1qwzVvY0PAzwfk=";
+    sha256 = "sha256-kDTTOc2sPCKWGeVuXlGhOo2dHjBZ1QEE7jAEVs4a70U=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
@@ -20,7 +20,7 @@ buildGoModule rec {
       find "$out" -name .git -print0 | xargs -0 rm -rf
     '';
   };
-  vendorSha256 = "sha256-nIVVwFISDkbO+USpJsHMrYDGQbf4jSGkRLS3Oq9HaBA=";
+  vendorSha256 = "sha256-ZWJzMDfCop5IT6mOvCWdtjGjVrZJxyM0z7iK3TiO+PI=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/admin/tigervnc/default.nix b/pkgs/tools/admin/tigervnc/default.nix
index 1824265b84af3..f5cd6f03b963d 100644
--- a/pkgs/tools/admin/tigervnc/default.nix
+++ b/pkgs/tools/admin/tigervnc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub
+{ lib, stdenv, fetchFromGitHub, fetchpatch
 , xorg, xkeyboard_config, zlib
 , libjpeg_turbo, pixman, fltk
 , cmake, gettext, libtool
@@ -23,11 +23,22 @@ stdenv.mkDerivation rec {
   };
 
 
+  patches = [
+    (fetchpatch {
+      url = "https://patch-diff.githubusercontent.com/raw/TigerVNC/tigervnc/pull/1383.patch";
+      sha256 = "sha256-r3QLtxVD0wIv2NWVN9r0LVxSlLurDHgkAZfkpIjmZyU=";
+      name = "Xvnc-support-Xorg-1.21-PR1383.patch";
+    })
+  ];
+
   postPatch = ''
     sed -i -e '/^\$cmd \.= " -pn";/a$cmd .= " -xkbdir ${xkeyboard_config}/etc/X11/xkb";' unix/vncserver/vncserver.in
     fontPath=
     substituteInPlace vncviewer/vncviewer.cxx \
        --replace '"/usr/bin/ssh' '"${openssh}/bin/ssh'
+
+    cp unix/xserver21.1.1.patch unix/xserver211.patch
+    source_top="$(pwd)"
   '';
 
   dontUseCmakeBuildDir = true;
@@ -46,7 +57,7 @@ stdenv.mkDerivation rec {
     cp -R xorg*/* unix/xserver
     pushd unix/xserver
     version=$(echo ${xorg.xorgserver.name} | sed 's/.*-\([0-9]\+\).\([0-9]\+\).*/\1\2/g')
-    patch -p1 < ${src}/unix/xserver$version.patch
+    patch -p1 < "$source_top/unix/xserver$version.patch"
     autoreconf -vfi
     ./configure $configureFlags  --disable-devel-docs --disable-docs \
         --disable-xorg --disable-xnest --disable-xvfb --disable-dmx \
diff --git a/pkgs/tools/admin/trinsic-cli/default.nix b/pkgs/tools/admin/trinsic-cli/default.nix
index d280fac0733bc..d6e6d6f100c56 100644
--- a/pkgs/tools/admin/trinsic-cli/default.nix
+++ b/pkgs/tools/admin/trinsic-cli/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://trinsic.id/";
     license = licenses.asl20;
     maintainers = with maintainers; [ tmarkovski ];
+    mainProgram = "trinsic";
   };
 }
diff --git a/pkgs/tools/admin/trivy/default.nix b/pkgs/tools/admin/trivy/default.nix
index 0d88df6185a69..c9595286173d4 100644
--- a/pkgs/tools/admin/trivy/default.nix
+++ b/pkgs/tools/admin/trivy/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "trivy";
-  version = "0.25.0";
+  version = "0.26.0";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-jlLE8io7/Yhu0rF7brV9YhDIsZBANZtatnWbgoHMReg=";
+    sha256 = "sha256-Se42a9Q76LsMk6b04P2C2sWSZ2UgfnQrpJUC2gwdCwY=";
   };
 
-  vendorSha256 = "sha256-hOurOL7xowgBs9gXa++X7+iOKJJ6WjekGGFiR9Q0OEU=";
+  vendorSha256 = "sha256-y/7KhDx6p+n6nvFHWcvGbvOWsXvvL81jOgfjxsL/JDg=";
 
   excludedPackages = "misc";
 
diff --git a/pkgs/tools/archivers/7zz/default.nix b/pkgs/tools/archivers/7zz/default.nix
index c4ccae0272eb0..b734232ca053f 100644
--- a/pkgs/tools/archivers/7zz/default.nix
+++ b/pkgs/tools/archivers/7zz/default.nix
@@ -2,22 +2,27 @@
 , lib
 , fetchurl
 
+  # Only used for x86/x86_64
 , uasm
-, useUasm ? stdenv.isx86_64
+, useUasm ? stdenv.hostPlatform.isx86
 
   # RAR code is under non-free unRAR license
   # see the meta.license section below for more details
 , enableUnfree ? false
+
+  # For tests
+, _7zz
+, testers
 }:
 
 let
   inherit (stdenv.hostPlatform) system;
-  platformSuffix =
-    if useUasm then
-      {
-        x86_64-linux = "_x64";
-      }.${system} or (throw "`useUasm` is not supported for system ${system}")
-    else "";
+  platformSuffix = {
+    aarch64-linux = "_arm64";
+    i686-linux = "_x86";
+    x86_64-linux = "_x64";
+  }.${system} or
+    (builtins.trace "`platformSuffix` not available for `${system}.` Making a generic `7zz` build." "");
 in
 stdenv.mkDerivation rec {
   pname = "7zz";
@@ -49,6 +54,10 @@ stdenv.mkDerivation rec {
   sourceRoot = "CPP/7zip/Bundles/Alone2";
 
   makeFlags =
+    [
+      "CC=${stdenv.cc.targetPrefix}cc"
+      "CXX=${stdenv.cc.targetPrefix}c++"
+    ] ++
     lib.optionals useUasm [ "MY_ASM=uasm" ] ++
     # it's the compression code with the restriction, see DOC/License.txt
     lib.optionals (!enableUnfree) [ "DISABLE_RAR_COMPRESS=true" ];
@@ -68,17 +77,13 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  doInstallCheck = true;
-
-  installCheckPhase = ''
-    runHook preInstallCheck
-
-    $out/bin/7zz --help | grep ${version}
-
-    runHook postInstallCheck
-  '';
-
-  passthru.updateScript = ./update.sh;
+  passthru = {
+    updateScript = ./update.sh;
+    tests.version = testers.testVersion {
+      package = _7zz;
+      command = "7zz --help";
+    };
+  };
 
   meta = with lib; {
     description = "Command line archiver utility";
diff --git a/pkgs/tools/archivers/bomutils/default.nix b/pkgs/tools/archivers/bomutils/default.nix
index c4ff957135ff4..90a97af03678e 100644
--- a/pkgs/tools/archivers/bomutils/default.nix
+++ b/pkgs/tools/archivers/bomutils/default.nix
@@ -18,6 +18,11 @@ stdenv.mkDerivation rec {
     "CXX=${stdenv.cc.targetPrefix}c++"
   ];
 
+  # fix
+  # src/lsbom.cpp:70:10: error: reference to 'data' is ambiguous
+  # which refers to std::data from C++17
+  NIX_CFLAGS_COMPILE = [ "-std=c++14" ];
+
   meta = with lib; {
     homepage = "https://github.com/hogliux/bomutils";
     description = "Open source tools to create bill-of-materials files used in macOS installers";
diff --git a/pkgs/tools/archivers/gbl/default.nix b/pkgs/tools/archivers/gbl/default.nix
new file mode 100644
index 0000000000000..4c057469f0370
--- /dev/null
+++ b/pkgs/tools/archivers/gbl/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, fetchpatch
+, pkg-config
+, openssl
+, testVersion
+, gbl
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "gbl";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "dac-gmbh";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-Xzx14fvYWTZYM9Pnowf1M3D0PTPRLwsXHUj/PJskRWw=";
+  };
+
+  cargoPatches = [
+    # Upstream does not include Cargo.lock, even though this is recommended for applications.
+    # This patch adds it. https://github.com/dac-gmbh/gbl/pull/62
+    (fetchpatch {
+      url = "https://github.com/raboof/gbl/commit/99078da334c6e1ffd8189c691bbc711281fae5cc.patch";
+      sha256 = "sha256-sAKkn4//8P87ZJ6NTHm2NUJH1sAFFwfrybv2QtQ3nnM=";
+    })
+  ];
+
+  cargoSha256 = "sha256-RUZ6wswRtV8chq3+bY9LTRf6IYMbZ9/GPl2X5UcF7d8=";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ openssl ];
+
+  passthru.tests.version =
+    testVersion { package = gbl; };
+
+  meta = with lib; {
+    description = "GBL Firmware file manipulation";
+    longDescription = ''
+      Utility to read, create and manipulate `.gbl` firmware update
+      files targeting the Silicon Labs Gecko Bootloader.
+    '';
+    homepage = "https://github.com/dac-gmbh/gbl";
+    license = licenses.mit;
+    maintainers = [ maintainers.raboof ];
+  };
+}
diff --git a/pkgs/tools/archivers/quickbms/default.nix b/pkgs/tools/archivers/quickbms/default.nix
index 7846f18a1740c..d2f39ac2cf18c 100644
--- a/pkgs/tools/archivers/quickbms/default.nix
+++ b/pkgs/tools/archivers/quickbms/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     description = "Universal script based file extractor and reimporter";
     homepage = "https://aluigi.altervista.org/quickbms.htm";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ samuelgrf ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/archivers/wimlib/default.nix b/pkgs/tools/archivers/wimlib/default.nix
index bb8c6b8952fd5..79840f9588add 100644
--- a/pkgs/tools/archivers/wimlib/default.nix
+++ b/pkgs/tools/archivers/wimlib/default.nix
@@ -19,20 +19,20 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-MvzJ6bFEt8sdtMhuEEyngoPNwiXhP+grJzZgWGrv4yM=";
   };
 
-  preBuild = ''
+  preBuild = lib.optionalString (!stdenv.isDarwin) ''
     substituteInPlace programs/mkwinpeimg.in \
       --replace '/usr/lib/syslinux' "${syslinux}/share/syslinux"
   '';
 
   postInstall = let
-    path = lib.makeBinPath  [ cabextract cdrkit mtools ntfs3g syslinux ];
+    path = lib.makeBinPath  ([ cabextract mtools ntfs3g ] ++ lib.optionals (!stdenv.isDarwin) [ cdrkit syslinux ]);
   in ''
     for prog in $out/bin/*; do
       wrapProgram $prog --prefix PATH : ${path}
     done
   '';
 
-  doCheck = true;
+  doCheck = (!stdenv.isDarwin);
 
   preCheck = ''
     patchShebangs tests
diff --git a/pkgs/tools/audio/abcmidi/default.nix b/pkgs/tools/audio/abcmidi/default.nix
index 17f4d8848481f..b4a5420aa9c09 100644
--- a/pkgs/tools/audio/abcmidi/default.nix
+++ b/pkgs/tools/audio/abcmidi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "abcMIDI";
-  version = "2022.02.21";
+  version = "2022.04.06";
 
   src = fetchzip {
     url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip";
-    hash = "sha256-oGGtJhVugqTvXD34Q2f8L5qoYoyyT5JjuBhqh4VYAAo=";
+    hash = "sha256-s1LFiwFXQsodQdGvgNy7pgXhsWYHw7lVhRXuNYHnvNQ=";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix
index 6789bd5f96223..0bdbe9d345db8 100644
--- a/pkgs/tools/audio/beets/default.nix
+++ b/pkgs/tools/audio/beets/default.nix
@@ -129,7 +129,7 @@ in pythonPackages.buildPythonApplication rec {
     gobject-introspection
   ] ++ lib.optional enableAbsubmit         essentia-extractor
     ++ lib.optional enableAcoustid         pythonPackages.pyacoustid
-    ++ lib.optional enableBeatport         pythonPackages.requests_oauthlib
+    ++ lib.optional enableBeatport         pythonPackages.requests-oauthlib
     ++ lib.optional enableConvert          ffmpeg
     ++ lib.optional enableDiscogs          pythonPackages.discogs-client
     ++ lib.optional (enableFetchart
diff --git a/pkgs/tools/audio/mpris-scrobbler/default.nix b/pkgs/tools/audio/mpris-scrobbler/default.nix
index 93960a5278fd5..f2e23fd2f57d7 100644
--- a/pkgs/tools/audio/mpris-scrobbler/default.nix
+++ b/pkgs/tools/audio/mpris-scrobbler/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mpris-scrobbler";
-  version = "0.4.0.1";
+  version = "0.4.90";
 
   src = fetchFromGitHub {
     owner  = "mariusor";
     repo   = "mpris-scrobbler";
     rev    = "v${version}";
-    sha256 = "0jzmgcb9a19hl8y7iwy8l3cc2vgzi0scw7r5q72kszfyxn0yk2gs";
+    sha256 = "sha256-+Y5d7yFOnSk2gQS/m/01ofbNeDCLXb+cTTlHj4bgO0M=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/audio/spotdl/default.nix b/pkgs/tools/audio/spotdl/default.nix
index c9270ce58357f..7753818fb1f5d 100644
--- a/pkgs/tools/audio/spotdl/default.nix
+++ b/pkgs/tools/audio/spotdl/default.nix
@@ -6,13 +6,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "spotdl";
-  version = "3.9.3";
+  version = "3.9.5";
 
   src = fetchFromGitHub {
     owner = "spotDL";
     repo = "spotify-downloader";
     rev = "v${version}";
-    sha256 = "sha256-sx6UtblpsetKPwhlXB3Kj3OMIOyW9QluzB+YbtQGdYQ=";
+    hash = "sha256-Zdm+OVcFgOO8kbJDNQSVDLnIHzhvm9EPbcG95mNrnTk=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -22,10 +22,11 @@ python3.pkgs.buildPythonApplication rec {
     rapidfuzz
     mutagen
     ytmusicapi
+    yt-dlp
     beautifulsoup4
     requests
     unidecode
-    yt-dlp
+    setuptools
   ];
 
   checkInputs = with python3.pkgs; [
diff --git a/pkgs/tools/audio/yabridge/default.nix b/pkgs/tools/audio/yabridge/default.nix
index 40c3b594dc98a..eb897f839a8fc 100644
--- a/pkgs/tools/audio/yabridge/default.nix
+++ b/pkgs/tools/audio/yabridge/default.nix
@@ -1,7 +1,6 @@
 { lib
 , multiStdenv
 , fetchFromGitHub
-, fetchpatch
 , substituteAll
 , pkgsi686Linux
 , libnotify
@@ -49,14 +48,14 @@ let
   };
 in multiStdenv.mkDerivation rec {
   pname = "yabridge";
-  version = "3.8.0";
+  version = "3.8.1";
 
   # NOTE: Also update yabridgectl's cargoHash when this is updated
   src = fetchFromGitHub {
     owner = "robbert-vdh";
     repo = pname;
     rev = version;
-    sha256 = "sha256-XacJjHxsp60/l36pFPGonUyOsyFF2lmqplAaisHXZDY=";
+    sha256 = "sha256-5Mi/aIjOKbn7guTj+AKGQRv+k7w4gzfdA9Mw4ocUlOE=";
   };
 
   # Unpack subproject sources
@@ -78,14 +77,6 @@ in multiStdenv.mkDerivation rec {
       libxcb32 = pkgsi686Linux.xorg.libxcb;
       inherit libnotify wine;
     })
-    # Remove with next yabridge update
-   (fetchpatch {
-      name = "fix-for-wine-7.1.patch";
-      url = "https://github.com/robbert-vdh/yabridge/commit/de470d345ab206b08f6d4a147b6af1d285a4211f.patch";
-      sha256 = "sha256-xJx1zvxD+DIjbkm7Ovoy4RaAvjx936/j/7AYUPh/kOo=";
-      includes = [ "src/wine-host/xdnd-proxy.cpp" ];
-    })
-
   ];
 
   postPatch = ''
diff --git a/pkgs/tools/audio/yabridge/hardcode-dependencies.patch b/pkgs/tools/audio/yabridge/hardcode-dependencies.patch
index 9f6bc0c9a9d5c..16385db69e9a2 100644
--- a/pkgs/tools/audio/yabridge/hardcode-dependencies.patch
+++ b/pkgs/tools/audio/yabridge/hardcode-dependencies.patch
@@ -1,5 +1,5 @@
 diff --git a/meson.build b/meson.build
-index 95ecb728..cb30f3af 100644
+index c71d4fdb..b3f381ba 100644
 --- a/meson.build
 +++ b/meson.build
 @@ -201,6 +201,7 @@ if with_32bit_libraries or with_bitbridge
@@ -20,7 +20,7 @@ index 95ecb728..cb30f3af 100644
  
  # These are all headers-only libraries, and thus won't require separate 32-bit
 diff --git a/src/plugin/utils.cpp b/src/plugin/utils.cpp
-index 1a457f03..20ca1e63 100644
+index fc2c8b25..c73249e3 100644
 --- a/src/plugin/utils.cpp
 +++ b/src/plugin/utils.cpp
 @@ -107,7 +107,7 @@ std::string PluginInfo::wine_version() const {
diff --git a/pkgs/tools/audio/yabridgectl/default.nix b/pkgs/tools/audio/yabridgectl/default.nix
index d2e8438e0c9e1..6ab94ef363021 100644
--- a/pkgs/tools/audio/yabridgectl/default.nix
+++ b/pkgs/tools/audio/yabridgectl/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
 
   src = yabridge.src;
   sourceRoot = "source/tools/yabridgectl";
-  cargoSha256 = "sha256-pwy2Q2HUCihr7W81hGvDm9EiZHk9G8knSy0yxPy6hl8=";
+  cargoSha256 = "sha256-ducF55d5OvCwlNFtt2r6pG5e9VevM2AzHSvPnWvIp1Y=";
 
   patches = [
     # By default, yabridgectl locates libyabridge.so by using
diff --git a/pkgs/tools/backup/bakelite/default.nix b/pkgs/tools/backup/bakelite/default.nix
index 15ddd3e2ea63b..e022ba942d28e 100644
--- a/pkgs/tools/backup/bakelite/default.nix
+++ b/pkgs/tools/backup/bakelite/default.nix
@@ -2,17 +2,21 @@
 
 stdenv.mkDerivation rec {
   pname = "bakelite";
-  version = "unstable-2021-10-19";
+  version = "unstable-2022-02-12";
 
   src = fetchFromGitHub {
     owner = "richfelker";
     repo = pname;
-    rev = "5fc3cf9704dbaa191b95f97d2a700588ea878a36";
-    sha256 = "xoGor8KMG1vU6hP6v6gHcADKjVpaClvkivxkcPUJtss=";
+    rev = "373901734d114e42aa385e6a7843745674e4ca08";
+    hash = "sha256-HBnYlUyTkvPTbdsZD02yCq5C7yXOHYK4l4mDRUkcN5I=";
   };
 
   hardeningEnable = [ "pie" ];
-  buildFlags = [ "CFLAGS=-D_GNU_SOURCE" ];
+  preBuild = ''
+    # pipe2() is only exposed with _GNU_SOURCE
+    # Upstream makefile explicitly uses -O3 to improve SHA-3 performance
+    makeFlagsArray+=( CFLAGS="-D_GNU_SOURCE -g -O3" )
+  '';
 
   installPhase = ''
     mkdir -p $out/bin
@@ -23,7 +27,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/richfelker/bakelite";
     description = "Incremental backup with strong cryptographic confidentality";
     license = licenses.gpl2;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ mvs ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/backup/borgbackup/default.nix b/pkgs/tools/backup/borgbackup/default.nix
index 03446be5341a5..8202786dde849 100644
--- a/pkgs/tools/backup/borgbackup/default.nix
+++ b/pkgs/tools/backup/borgbackup/default.nix
@@ -90,7 +90,6 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   pytestFlagsArray = [
-    "--numprocesses" "$NIX_BUILD_CORES"
     "--benchmark-skip"
     "--pyargs" "borg.testsuite"
   ];
@@ -109,6 +108,8 @@ python3.pkgs.buildPythonApplication rec {
     "test_get_keys_dir"
     "test_get_security_dir"
     "test_get_config_dir"
+    # https://github.com/borgbackup/borg/issues/6573
+    "test_basic_functionality"
   ];
 
   preCheck = ''
diff --git a/pkgs/tools/backup/dar/default.nix b/pkgs/tools/backup/dar/default.nix
index 870c25462cf6d..b06a21c0239f8 100644
--- a/pkgs/tools/backup/dar/default.nix
+++ b/pkgs/tools/backup/dar/default.nix
@@ -9,12 +9,12 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "2.7.4";
+  version = "2.7.5";
   pname = "dar";
 
   src = fetchurl {
     url = "mirror://sourceforge/dar/${pname}-${version}.tar.gz";
-    sha256 = "sha256-esti2QXoq+5bic639eG96vZOSJboMVHmD+oRNAI6ic4=";
+    sha256 = "sha256-lfpJOomadV/oTJsOloH1rYF5Wy3kVr+EBUvqZ+xaCWY=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/tools/backup/discordchatexporter-cli/default.nix b/pkgs/tools/backup/discordchatexporter-cli/default.nix
index d2a9bd2563ef0..96de897c5f34c 100644
--- a/pkgs/tools/backup/discordchatexporter-cli/default.nix
+++ b/pkgs/tools/backup/discordchatexporter-cli/default.nix
@@ -2,19 +2,19 @@
 , buildDotnetModule
 , fetchFromGitHub
 , dotnetCorePackages
-, testVersion
+, testers
 , discordchatexporter-cli
 }:
 
 buildDotnetModule rec {
   pname = "discordchatexporter-cli";
-  version = "2.33.2";
+  version = "2.34";
 
   src = fetchFromGitHub {
     owner = "tyrrrz";
     repo = "discordchatexporter";
     rev = version;
-    sha256 = "wOSa6O3O4QlGL5ecnR14ldXPYV5mDoPDlJjcwN5Lrek=";
+    sha256 = "EHpnLUFHR+FC1qlwW0TuLas9aA/CMELHkzbLlNyiwgE=";
   };
 
   dotnet-sdk = dotnetCorePackages.sdk_6_0;
@@ -29,7 +29,7 @@ buildDotnetModule rec {
 
   passthru = {
     updateScript = ./updater.sh;
-    tests.version = testVersion {
+    tests.version = testers.testVersion {
       package = discordchatexporter-cli;
       version = "v${version}";
     };
diff --git a/pkgs/tools/backup/discordchatexporter-cli/deps.nix b/pkgs/tools/backup/discordchatexporter-cli/deps.nix
index 92bf39b58ef56..ecc8728777638 100644
--- a/pkgs/tools/backup/discordchatexporter-cli/deps.nix
+++ b/pkgs/tools/backup/discordchatexporter-cli/deps.nix
@@ -2,9 +2,9 @@
   (fetchNuGet { pname = "CliFx"; version = "2.2.2"; sha256 = "13g5xlrbyhnbwkyzic5jlhxl0kpvkfrdmb5h2rdf9yp4gp5p9mwg"; })
   (fetchNuGet { pname = "Gress"; version = "2.0.1"; sha256 = "00xhyfkrlc38nbl6aymr7zwxc3kj0rxvx5gwk6fkfrvi1pzgq0wc"; })
   (fetchNuGet { pname = "JsonExtensions"; version = "1.2.0"; sha256 = "0g54hibabbqqfhxjlnxwv1rxagpali5agvnpymp2w3dk8h6q66xy"; })
-  (fetchNuGet { pname = "MiniRazor.CodeGen"; version = "2.2.0"; sha256 = "1rbgkm1hsamqhviw2c62g6iafiwkxcnz66qbybpd32qgz1124cx4"; })
-  (fetchNuGet { pname = "MiniRazor.Runtime"; version = "2.2.0"; sha256 = "0zm0l97jfbfy90zj0cbi7v3qbhxhfay1g8f2cw0gp829xz4yk9jr"; })
+  (fetchNuGet { pname = "MiniRazor.CodeGen"; version = "2.2.1"; sha256 = "1mrjw3vq59pbiqvayilazjgv6l87j20j8hmhcpbacz9p5bl1hvvr"; })
+  (fetchNuGet { pname = "MiniRazor.Runtime"; version = "2.2.1"; sha256 = "18qx0rzp4xz4ng9yc0c2bcpa4ky6sfiz10828y4j9ymywas7yzxw"; })
   (fetchNuGet { pname = "Polly"; version = "7.2.3"; sha256 = "1iws4jd5iqj5nlfp16fg9p5vfqqas1si0cgh8xcj64y433a933cv"; })
-  (fetchNuGet { pname = "Spectre.Console"; version = "0.43.0"; sha256 = "17yh20s17fkcs3iyb5yylqh90jvb36gdn0aaglq3d67rpmcrl5gc"; })
+  (fetchNuGet { pname = "Spectre.Console"; version = "0.44.0"; sha256 = "0f4q52rmib0q3vg7ij6z73mnymyas7c7wrm8dfdhrkdzn53zwl6p"; })
   (fetchNuGet { pname = "Superpower"; version = "3.0.0"; sha256 = "0p6riay4732j1fahc081dzgs9q4z3n2fpxrin4zfpj6q2226dhz4"; })
 ]
diff --git a/pkgs/tools/backup/gphotos-sync/default.nix b/pkgs/tools/backup/gphotos-sync/default.nix
index cce9c5b77b7b6..515bfc31cf291 100644
--- a/pkgs/tools/backup/gphotos-sync/default.nix
+++ b/pkgs/tools/backup/gphotos-sync/default.nix
@@ -1,4 +1,8 @@
-{ lib, fetchFromGitHub, python3Packages, ffmpeg }:
+{ lib
+, fetchFromGitHub
+, python3Packages
+, ffmpeg
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "gphotos-sync";
@@ -17,10 +21,12 @@ python3Packages.buildPythonApplication rec {
     exif
     psutil
     pyyaml
-    requests_oauthlib
+    requests-oauthlib
   ];
 
-  buildInputs = [ ffmpeg ];
+  buildInputs = [
+    ffmpeg
+  ];
 
   checkInputs = with python3Packages; [
     pytestCheckHook
@@ -41,8 +47,8 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Google Photos and Albums backup with Google Photos Library API";
-    homepage    = "https://github.com/gilesknap/gphotos-sync";
-    license     = licenses.mit;
+    homepage = "https://github.com/gilesknap/gphotos-sync";
+    license = licenses.mit;
     maintainers = with maintainers; [ dnr ];
   };
 }
diff --git a/pkgs/tools/backup/grab-site/default.nix b/pkgs/tools/backup/grab-site/default.nix
index fe6496bf212b6..3b7e0a9a60054 100644
--- a/pkgs/tools/backup/grab-site/default.nix
+++ b/pkgs/tools/backup/grab-site/default.nix
@@ -7,8 +7,9 @@ let
         version = "1.3.24";
         src = oldAttrs.src.override {
           inherit version;
-          sha256 = "ebbb777cbf9312359b897bf81ba00dae0f5cb69fba2a18265dcc18a6f5ef7519";
+          hash = "sha256-67t3fL+TEjWbiXv4G6ANrg9ctp+6KhgmXcwYpvXvdRk=";
         };
+        doCheck = false;
       });
       tornado = super.tornado_4;
     };
diff --git a/pkgs/tools/backup/kopia/default.nix b/pkgs/tools/backup/kopia/default.nix
index 09f17b9a2be52..887911a85713c 100644
--- a/pkgs/tools/backup/kopia/default.nix
+++ b/pkgs/tools/backup/kopia/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kopia";
-  version = "0.10.6";
+  version = "0.10.7";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lyCTKjimVZkpXKVeDNn0e9E6FkDp7fUl3cYnn5W5A7o=";
+    sha256 = "sha256-f1wJuQGwDQAGPYRacvrMs4uSiUdaMCXkRnZYhkA3/JI=";
   };
 
-  vendorSha256 = "sha256-p+hK662WoO98J/uE3B9X1GvpnyMGu21sAg8GcyTlWZM=";
+  vendorSha256 = "sha256-iBBESP7yR+tFYgQ1saIhpw8R2kiVVvUeA0mhgTxyhAE=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/backup/zfsbackup/default.nix b/pkgs/tools/backup/zfsbackup/default.nix
index 5cdb39c3ecb05..ff47ce47edef1 100644
--- a/pkgs/tools/backup/zfsbackup/default.nix
+++ b/pkgs/tools/backup/zfsbackup/default.nix
@@ -21,5 +21,6 @@ buildGoPackage rec {
     homepage = "https://github.com/someone1/zfsbackup-go";
     license = licenses.mit;
     maintainers = [ maintainers.xfix ];
+    mainProgram = "zfsbackup-go";
   };
 }
diff --git a/pkgs/tools/cd-dvd/ventoy-bin/default.nix b/pkgs/tools/cd-dvd/ventoy-bin/default.nix
index cf573472307c8..5aeaffdb50406 100644
--- a/pkgs/tools/cd-dvd/ventoy-bin/default.nix
+++ b/pkgs/tools/cd-dvd/ventoy-bin/default.nix
@@ -97,7 +97,7 @@ in stdenv.mkDerivation rec {
         local bin="''${f%_*}" wrapper="''${f#*_}"
         makeWrapper "$VENTOY_PATH/$bin" "$out/bin/$wrapper" \
                     --prefix PATH : "${lib.makeBinPath buildInputs}" \
-                    --run "cd '$VENTOY_PATH' || exit 1"
+                    --chdir "$VENTOY_PATH"
     done
   '' + lib.optionalString (withGtk3 || withQt5) ''
     # VentoGUI uses the `ventoy_gui_type` file to determine the type of GUI.
@@ -105,7 +105,7 @@ in stdenv.mkDerivation rec {
     echo "${defaultGuiType}" > "$VENTOY_PATH/ventoy_gui_type"
     makeWrapper "$VENTOY_PATH/VentoyGUI.$ARCH" "$out/bin/ventoy-gui" \
                 --prefix PATH : "${lib.makeBinPath buildInputs}" \
-                --run "cd '$VENTOY_PATH' || exit 1"
+                --chdir "$VENTOY_PATH"
   '' + lib.optionalString (!withGtk3) ''
     rm "$VENTOY_PATH/tool/$ARCH/Ventoy2Disk.gtk3"
   '' + lib.optionalString (!withQt5) ''
diff --git a/pkgs/tools/compression/advancecomp/default.nix b/pkgs/tools/compression/advancecomp/default.nix
index 00ce6af1d593b..e7db524e729ac 100644
--- a/pkgs/tools/compression/advancecomp/default.nix
+++ b/pkgs/tools/compression/advancecomp/default.nix
@@ -1,40 +1,23 @@
 { lib, stdenv
 , fetchFromGitHub
-, fetchpatch
 , autoreconfHook
 , zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "advancecomp";
-  version = "2.1";
+  version = "2.3";
 
   src = fetchFromGitHub {
     owner = "amadvance";
     repo = "advancecomp";
     rev = "v${version}";
-    sha256 = "1pd6czamamrd0ppk5a3a65hcgdlqwja98aandhqiajhnibwldv8x";
+    hash = "sha256-klyTqqZs5TwadgDP8LJ1wUhXlO+/kQPM6qhiSki31Q8=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
   buildInputs = [ zlib ];
 
-  patches = [
-    (fetchpatch {
-      name = "CVE-2019-9210.patch";
-      url = "https://github.com/amadvance/advancecomp/commit/fcf71a89265c78fc26243574dda3a872574a5c02.patch";
-      sha256 = "0cdv9g87c1y8zwhqkd9ba2zjw4slcvg7yzcqv43idvnwb5fl29n7";
-      excludes = [ "doc/history.d" ];
-    })
-
-    # Pull upstream fix for gcc-11:
-    (fetchpatch {
-      name = "gcc-11.patch";
-      url = "https://github.com/amadvance/advancecomp/commit/7b08f7a2af3f66ab95437e4490499cebb20e5e41.patch";
-      sha256 = "0gpppq6b760m1429g7d808ipdgb4lrqc1b6xk2457y66pbaiwc9s";
-    })
-  ];
-
   # autover.sh relies on 'git describe', which obviously doesn't work as we're not cloning
   # the full git repo. so we have to put the version number in `.version`, otherwise
   # the binaries get built reporting "none" as their version number.
diff --git a/pkgs/tools/compression/bzip2/default.nix b/pkgs/tools/compression/bzip2/default.nix
index da37cf9fbd8cf..cd262875a76be 100644
--- a/pkgs/tools/compression/bzip2/default.nix
+++ b/pkgs/tools/compression/bzip2/default.nix
@@ -44,6 +44,10 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  postInstall = ''
+    ln -s $out/lib/libbz2.so.1.0.* $out/lib/libbz2.so.1.0
+  '';
+
   meta = with lib; {
     description = "High-quality data compression program";
     homepage = "https://www.sourceware.org/bzip2";
diff --git a/pkgs/tools/compression/gzip/default.nix b/pkgs/tools/compression/gzip/default.nix
index 8bec5b481c902..bd28ca63e80a4 100644
--- a/pkgs/tools/compression/gzip/default.nix
+++ b/pkgs/tools/compression/gzip/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gzip";
-  version = "1.11";
+  version = "1.12";
 
   src = fetchurl {
     url = "mirror://gnu/gzip/${pname}-${version}.tar.xz";
-    sha256 = "01vrly90rvc98af6rcmrb3gwv1l6pylasvsdka23dffwizb9b6lv";
+    sha256 = "sha256-zl4D5Rn2N+H4FAEazjXE+HszwLur7sNbr1+9NHnpGVY=";
   };
 
   outputs = [ "out" "man" "info" ];
diff --git a/pkgs/tools/compression/gzrt/default.nix b/pkgs/tools/compression/gzrt/default.nix
index 664c1eb78565e..59d87cf4f3417 100644
--- a/pkgs/tools/compression/gzrt/default.nix
+++ b/pkgs/tools/compression/gzrt/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.urbanophile.com/arenn/hacking/gzrt/";
     description = "The gzip Recovery Toolkit";
     maintainers = with maintainers; [ ];
+    mainProgram = "gzrecover";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
   };
diff --git a/pkgs/tools/compression/lhasa/default.nix b/pkgs/tools/compression/lhasa/default.nix
index 4f1ba702831f0..a58f186129ede 100644
--- a/pkgs/tools/compression/lhasa/default.nix
+++ b/pkgs/tools/compression/lhasa/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     homepage = "http://fragglet.github.io/lhasa";
     maintainers = [ maintainers.sander ];
+    mainProgram = "lha";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/compression/lrzip/default.nix b/pkgs/tools/compression/lrzip/default.nix
index b14fb347d2101..3bb1e29f03477 100644
--- a/pkgs/tools/compression/lrzip/default.nix
+++ b/pkgs/tools/compression/lrzip/default.nix
@@ -5,13 +5,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "lrzip";
-  version = "0.650";
+  version = "0.651";
 
   src = fetchFromGitHub {
     owner = "ckolivas";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-rHjaTgNVGfnGio4geuWRfPds5BqcXJu7p8XJh83rRTs=";
+    sha256 = "sha256-Mb324ojtLV0S10KhL7Vjf3DhSOtCy1pFMTzvLkTnpXM=";
   };
 
   postPatch = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/tools/compression/pigz/default.nix b/pkgs/tools/compression/pigz/default.nix
index 6dbe190c400bb..e7a1df5fd6cda 100644
--- a/pkgs/tools/compression/pigz/default.nix
+++ b/pkgs/tools/compression/pigz/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, zlib, util-linux }:
+{ lib, stdenv, fetchFromGitHub, zlib, util-linux }:
 
 stdenv.mkDerivation rec {
   pname = "pigz";
   version = "2.6";
 
-  src = fetchurl {
-    url = "https://www.zlib.net/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-Lu17DXRJ0dcJA/KmLNYAXSYus6jJ6YaHvIy7WAnbKn0=";
+  src = fetchFromGitHub {
+      owner = "madler";
+      repo = "${pname}";
+      rev = "refs/tags/v${version}";
+      sha256 = "146qkmzi199xwmmf6bllanqfyl702fm1rnad8cd5r5yyrp5ks115";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/tools/compression/pxz/default.nix b/pkgs/tools/compression/pxz/default.nix
index 0f509a3bd1709..f61e80cbc0651 100644
--- a/pkgs/tools/compression/pxz/default.nix
+++ b/pkgs/tools/compression/pxz/default.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, testVersion
+, testers
 , pxz
 , xz
 }:
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     "MANDIR=${placeholder "out"}/share/man"
   ];
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = pxz;
   };
 
diff --git a/pkgs/tools/compression/zfp/default.nix b/pkgs/tools/compression/zfp/default.nix
new file mode 100644
index 0000000000000..c46c58e7b404e
--- /dev/null
+++ b/pkgs/tools/compression/zfp/default.nix
@@ -0,0 +1,59 @@
+{ cmake, cudatoolkit, fetchFromGitHub, gfortran, lib, llvmPackages, pythonPackages, stdenv, targetPlatform
+, enableCfp ? true
+, enableCuda ? false
+, enableExamples ? true
+, enableFortran ? builtins.elem targetPlatform.system gfortran.meta.platforms
+, enableOpenMP ? true
+, enablePython ? true
+, enableUtilities ? true }:
+
+stdenv.mkDerivation rec {
+  pname = "zfp";
+  version = "0.5.5";
+
+  src = fetchFromGitHub {
+    owner = "LLNL";
+    repo = "zfp";
+    rev = version;
+    sha256 = "19ycflz35qsrzfcvxdyy0mgbykfghfi9y5v684jb4awjp7nf562c";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = lib.optional enableCuda cudatoolkit
+    ++ lib.optional enableFortran gfortran
+    ++ lib.optional enableOpenMP llvmPackages.openmp
+    ++ lib.optionals enablePython [ pythonPackages.cython pythonPackages.numpy pythonPackages.python ];
+
+  cmakeFlags = [
+    # More tests not enabled by default
+    ''-DZFP_BINARY_DIR=${placeholder "out"}''
+    ''-DZFP_BUILD_TESTING_LARGE=ON''
+  ]
+    ++ lib.optionals targetPlatform.isDarwin [
+      "-DCMAKE_INSTALL_BINDIR=bin"
+      "-DCMAKE_INSTALL_LIBDIR=lib"
+    ]
+    ++ lib.optional enableCfp "-DBUILD_CFP=ON"
+    ++ lib.optional enableCuda "-DZFP_WITH_CUDA=ON"
+    ++ lib.optional enableExamples "-DBUILD_EXAMPLES=ON"
+    ++ lib.optional enableFortran "-DBUILD_ZFORP=ON"
+    ++ lib.optional enableOpenMP "-DZFP_WITH_OPENMP=ON"
+    ++ lib.optional enablePython "-DBUILD_ZFPY=ON"
+    ++ ([ "-DBUILD_UTILITIES=${if enableUtilities then "ON" else "OFF"}" ]);
+
+  preCheck = lib.optional targetPlatform.isDarwin ''
+    export DYLD_LIBRARY_PATH="$out/lib:$DYLD_LIBRARY_PATH"
+  '';
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://computing.llnl.gov/projects/zfp";
+    description = "Library for random-access compression of floating-point arrays";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.spease ];
+    # 64-bit only
+    platforms = platforms.aarch64 ++ platforms.x86_64;
+  };
+}
diff --git a/pkgs/tools/filesystems/apfsprogs/default.nix b/pkgs/tools/filesystems/apfsprogs/default.nix
index 2c2aa108077f0..a9f9a746d98b8 100644
--- a/pkgs/tools/filesystems/apfsprogs/default.nix
+++ b/pkgs/tools/filesystems/apfsprogs/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation {
   pname = "apfsprogs";
-  version = "unstable-2021-10-26";
+  version = "unstable-2022-02-23";
 
   src = fetchFromGitHub {
     owner = "linux-apfs";
     repo = "apfsprogs";
-    rev = "05ecfa367a8142e289dc76333294271b5edfe395";
-    sha256 = "sha256-McGQG8f12DTp/It8KjMHGyfE5tgmgLd7MZlZIn/xC+E=";
+    rev = "5bce5c7f42843dfbbed90767640e748062e23dd2";
+    sha256 = "sha256-0N+aC5paP6ZoXUD7A9lLnF2onbOJU+dqZ8oKs+dCUcg=";
   };
 
   buildPhase = ''
diff --git a/pkgs/tools/filesystems/bcachefs-tools/default.nix b/pkgs/tools/filesystems/bcachefs-tools/default.nix
index e5325b1f98872..b94f1d83394b3 100644
--- a/pkgs/tools/filesystems/bcachefs-tools/default.nix
+++ b/pkgs/tools/filesystems/bcachefs-tools/default.nix
@@ -22,13 +22,13 @@
 
 stdenv.mkDerivation {
   pname = "bcachefs-tools";
-  version = "unstable-2022-03-22";
+  version = "unstable-2022-04-08";
 
   src = fetchFromGitHub {
     owner = "koverstreet";
     repo = "bcachefs-tools";
-    rev = "f3cdace86c8b60a4efaced23b2d31c16dc610da9";
-    sha256 = "1hg4cjrs4yr0mx3mmm1jls93w1skpq5wzp2dzx9rq4w5il2xmx19";
+    rev = "986533d8d5b21c8eb512bbb3f0496d3d2a087c5d";
+    sha256 = "1qvb5l937nnls5j82ipgrdh6q5fk923z752rzzqqcms6fz7rrjs4";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/filesystems/btrfs-progs/default.nix b/pkgs/tools/filesystems/btrfs-progs/default.nix
index c51cc12da36bb..fad1944c4a0eb 100644
--- a/pkgs/tools/filesystems/btrfs-progs/default.nix
+++ b/pkgs/tools/filesystems/btrfs-progs/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "btrfs-progs";
-  version = "5.16.1";
+  version = "5.16.2";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
-    sha256 = "sha256-PaTaU2HPhr3dqA7bTE8w6gdstOvsKZBPoIr8kw754ag=";
+    sha256 = "sha256-npswOh0P2c6q8gTudMHI+h/VV5TiI9n+K8Yodey9U9I=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/filesystems/buttersink/default.nix b/pkgs/tools/filesystems/buttersink/default.nix
deleted file mode 100644
index aa0f317787f82..0000000000000
--- a/pkgs/tools/filesystems/buttersink/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ lib, python2 }:
-
-python2.pkgs.buildPythonApplication rec {
-  pname = "buttersink";
-  version = "0.6.9";
-
-  src = python2.pkgs.fetchPypi {
-    inherit pname version;
-    sha256 = "a797b6e92ad2acdf41e033c1368ab365aa268f4d8458b396a5770fa6c2bc3f54";
-  };
-
-  propagatedBuildInputs = with python2.pkgs; [ boto crcmod psutil ];
-
-  # No tests implemented
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Synchronise btrfs snapshots";
-    longDescription = ''
-      ButterSink is like rsync, but for btrfs subvolumes instead of files,
-      which makes it much more efficient for things like archiving backup
-      snapshots. It is built on top of btrfs send and receive capabilities.
-      Sources and destinations can be local btrfs file systems, remote btrfs
-      file systems over SSH, or S3 buckets.
-    '';
-    homepage = "https://github.com/AmesCornish/buttersink/wiki";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/filesystems/djmount/default.nix b/pkgs/tools/filesystems/djmount/default.nix
index f5b0a0315dfcb..3111be5b4d12e 100644
--- a/pkgs/tools/filesystems/djmount/default.nix
+++ b/pkgs/tools/filesystems/djmount/default.nix
@@ -8,6 +8,14 @@ stdenv.mkDerivation rec {
     sha256 = "0kqf0cy3h4cfiy5a2sigmisx0lvvsi1n0fbyb9ll5gacmy1b8nxa";
   };
 
+  postPatch = ''
+    # Taken from https://github.com/pupnp/pupnp/pull/334/files
+    substituteInPlace libupnp/threadutil/inc/ithread.h \
+      --replace \
+        "#define ithread_mutexattr_setkind_np pthread_mutexattr_setkind_np" \
+        '#define ithread_mutexattr_setkind_np pthread_mutexattr_settype'
+  '';
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ fuse];
 
diff --git a/pkgs/tools/filesystems/e2fsprogs/default.nix b/pkgs/tools/filesystems/e2fsprogs/default.nix
index 6fbc0b9b45f28..d4c4738be7514 100644
--- a/pkgs/tools/filesystems/e2fsprogs/default.nix
+++ b/pkgs/tools/filesystems/e2fsprogs/default.nix
@@ -1,4 +1,5 @@
 { lib, stdenv, buildPackages, fetchurl, fetchpatch, pkg-config, libuuid, gettext, texinfo
+, fuse
 , shared ? !stdenv.hostPlatform.isStatic
 , e2fsprogs, runCommand
 }:
@@ -12,11 +13,14 @@ stdenv.mkDerivation rec {
     sha256 = "1fgvwbj9ihz5svzrd2l0s18k16r4qg3wimrniv71fn3vdcg0shxp";
   };
 
-  outputs = [ "bin" "dev" "out" "man" "info" ];
+  # fuse2fs adds 14mb of dependencies
+  outputs = [ "bin" "dev" "out" "man" "info" ]
+    ++ lib.optionals stdenv.isLinux [ "fuse2fs" ];
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ pkg-config texinfo ];
-  buildInputs = [ libuuid gettext ];
+  buildInputs = [ libuuid gettext ]
+    ++ lib.optionals stdenv.isLinux [ fuse ];
 
   # Only use glibc's __GNUC_PREREQ(X,Y) (checks if compiler is gcc version >= X.Y) when using glibc
   patches = if stdenv.hostPlatform.libc == "glibc" then null
@@ -62,6 +66,9 @@ stdenv.mkDerivation rec {
     if [ -f $out/lib/${pname}/e2scrub_all_cron ]; then
       mv $out/lib/${pname}/e2scrub_all_cron $bin/bin/
     fi
+  '' + lib.optionalString stdenv.isLinux ''
+    mkdir -p $fuse2fs/bin
+    mv $bin/bin/fuse2fs $fuse2fs/bin/fuse2fs
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/tools/filesystems/garage/default.nix b/pkgs/tools/filesystems/garage/default.nix
index 9b96f1c0a8e55..8799ec5a3d2ab 100644
--- a/pkgs/tools/filesystems/garage/default.nix
+++ b/pkgs/tools/filesystems/garage/default.nix
@@ -1,20 +1,22 @@
-{ lib, rustPlatform, fetchFromGitea, testVersion, garage }:
+{ lib, rustPlatform, fetchFromGitea, protobuf, testers, garage }:
 rustPlatform.buildRustPackage rec {
   pname = "garage";
-  version = "0.6.1";
+  version = "0.7.0";
 
   src = fetchFromGitea {
     domain = "git.deuxfleurs.fr";
     owner = "Deuxfleurs";
     repo = "garage";
     rev = "v${version}";
-    sha256 = "sha256-BEFxPU4yPtctN7H+EcxJpXnf4tyqBseskls0ZA9748k=";
+    sha256 = "sha256-gs0TW431YUrdsdJ+PYrJgnLiBmDPYnUR0iVnQ/YqIfU=";
   };
 
-  cargoSha256 = "sha256-/mOH7VOfIHEydnJUUSts44aGb8tS1/Faxiu4pQDeobY=";
+  cargoSha256 = "sha256-XGSenT2q3VXNcIT1Lg1e5HTOkEdOb1o3H07ahteQM/o=";
+
+  nativeBuildInputs = [ protobuf ];
 
   passthru = {
-    tests.version = testVersion { package = garage; };
+    tests.version = testers.testVersion { package = garage; };
   };
 
   meta = {
diff --git a/pkgs/tools/filesystems/idsk/default.nix b/pkgs/tools/filesystems/idsk/default.nix
index 0b7ae339053ca..39052ecba9356 100644
--- a/pkgs/tools/filesystems/idsk/default.nix
+++ b/pkgs/tools/filesystems/idsk/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/cpcsdk/idsk" ;
     license = licenses.mit;
     maintainers = [ ];
+    mainProgram = "iDSK";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/filesystems/lfs/default.nix b/pkgs/tools/filesystems/lfs/default.nix
index 1009125adc6d6..ec55905c61536 100644
--- a/pkgs/tools/filesystems/lfs/default.nix
+++ b/pkgs/tools/filesystems/lfs/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lfs";
-  version = "2.4.0";
+  version = "2.5.0";
 
   src = fetchFromGitHub {
     owner = "Canop";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ySaPR6it/1xEf+Rnypnz5AklxWZZ8NeXpjId4ZSMIs8=";
+    sha256 = "sha256-7dSBac+rLedgko4KLVS9ZWrj/IlXJMsnbQFzyQxv4LQ=";
   };
 
-  cargoSha256 = "sha256-FLbFDJXVpWycII8mdNDphh8QVXFFnxtFgloweW+BZA0=";
+  cargoSha256 = "sha256-stDxDBftIVZqgy49VGJHx+JTzflVE91QN75aSWhvgSs=";
 
   meta = with lib; {
     description = "Get information on your mounted disks";
diff --git a/pkgs/tools/filesystems/mtools/default.nix b/pkgs/tools/filesystems/mtools/default.nix
index 949b8c92f8468..e7345c639fe28 100644
--- a/pkgs/tools/filesystems/mtools/default.nix
+++ b/pkgs/tools/filesystems/mtools/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchurl, libiconv }:
 
 stdenv.mkDerivation rec {
   pname = "mtools";
@@ -14,6 +14,8 @@ stdenv.mkDerivation rec {
   # fails to find X on darwin
   configureFlags = lib.optional stdenv.isDarwin "--without-x";
 
+  buildInputs = lib.optional stdenv.isDarwin libiconv;
+
   doCheck = true;
 
   meta = with lib; {
diff --git a/pkgs/tools/filesystems/rmfuse/default.nix b/pkgs/tools/filesystems/rmfuse/default.nix
index b7850f7023fee..78bc6bd55c46b 100644
--- a/pkgs/tools/filesystems/rmfuse/default.nix
+++ b/pkgs/tools/filesystems/rmfuse/default.nix
@@ -20,6 +20,24 @@ let
           };
         });
 
+        reportlab = let
+          ft = pkgs.freetype.overrideAttrs (oldArgs: { dontDisableStatic = true; });
+        in super.reportlab.overridePythonAttrs(old: {
+          postPatch = ''
+            substituteInPlace setup.py \
+              --replace "mif = findFile(d,'ft2build.h')" "mif = findFile('${lib.getDev ft}','ft2build.h')"
+          '';
+
+          NIX_CFLAGS_COMPILE = "-I${pkgs.freetype}/include/freetype2";
+
+          nativeBuildInputs = old.nativeBuildInputs ++ [
+            pkgs.pkg-config
+          ];
+          buildInputs = old.buildInputs ++ [
+            pkgs.freetype
+          ];
+        });
+
       })
     ];
   }).python.pkgs;
diff --git a/pkgs/tools/filesystems/rmfuse/poetry-git-overlay.nix b/pkgs/tools/filesystems/rmfuse/poetry-git-overlay.nix
index 8fa2bc7a01018..2ee4f805fb2d1 100644
--- a/pkgs/tools/filesystems/rmfuse/poetry-git-overlay.nix
+++ b/pkgs/tools/filesystems/rmfuse/poetry-git-overlay.nix
@@ -5,8 +5,8 @@ self: super: {
     _: {
       src = pkgs.fetchgit {
         url = "https://github.com/rschroll/rmfuse.git";
-        rev = "fca03bcdd6dc118f2ba981410ec9dff7f7cb88ec";
-        sha256 = "0i7dvvi2bp3hydjpzvr7vg10bx0wxz87spf7pg455aga8d0qhxgk";
+        rev = "3796b8610c8a965a60a417fc0bf8ea5200b71fd2";
+        sha256 = "03qxy95jpk741b81bd38y51d4a0vynx2y1g662bci9r6m7l14yav";
       };
     }
   );
diff --git a/pkgs/tools/filesystems/rmfuse/poetry.lock b/pkgs/tools/filesystems/rmfuse/poetry.lock
index 920fbddd0b635..9dd2c1ae80cde 100644
--- a/pkgs/tools/filesystems/rmfuse/poetry.lock
+++ b/pkgs/tools/filesystems/rmfuse/poetry.lock
@@ -39,36 +39,29 @@ python-versions = ">=3.5"
 
 [[package]]
 name = "attrs"
-version = "20.3.0"
+version = "21.4.0"
 description = "Classes Without Boilerplate"
 category = "main"
 optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
 
 [package.extras]
-dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "furo", "sphinx", "pre-commit"]
-docs = ["furo", "sphinx", "zope.interface"]
-tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"]
-tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six"]
+dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"]
+docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
+tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"]
+tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"]
 
 [[package]]
 name = "bidict"
-version = "0.21.2"
+version = "0.21.4"
 description = "The bidirectional mapping library for Python."
 category = "main"
 optional = false
 python-versions = ">=3.6"
 
-[package.extras]
-coverage = ["coverage (<6)", "pytest-cov (<3)"]
-dev = ["setuptools-scm", "hypothesis (<6)", "py (<2)", "pytest (<7)", "pytest-benchmark (>=3.2.0,<4)", "sortedcollections (<2)", "sortedcontainers (<3)", "Sphinx (<4)", "sphinx-autodoc-typehints (<2)", "coverage (<6)", "pytest-cov (<3)", "pre-commit (<3)", "tox (<4)"]
-docs = ["Sphinx (<4)", "sphinx-autodoc-typehints (<2)"]
-precommit = ["pre-commit (<3)"]
-test = ["hypothesis (<6)", "py (<2)", "pytest (<7)", "pytest-benchmark (>=3.2.0,<4)", "sortedcollections (<2)", "sortedcontainers (<3)", "Sphinx (<4)", "sphinx-autodoc-typehints (<2)"]
-
 [[package]]
 name = "cffi"
-version = "1.14.5"
+version = "1.15.0"
 description = "Foreign Function Interface for Python calling C code."
 category = "main"
 optional = false
@@ -79,11 +72,11 @@ pycparser = "*"
 
 [[package]]
 name = "cssselect2"
-version = "0.4.1"
-description = "cssselect2"
+version = "0.6.0"
+description = "CSS selectors for Python ElementTree"
 category = "main"
 optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
 
 [package.dependencies]
 tinycss2 = "*"
@@ -95,7 +88,7 @@ test = ["pytest", "pytest-cov", "pytest-flake8", "pytest-isort", "coverage"]
 
 [[package]]
 name = "h11"
-version = "0.12.0"
+version = "0.13.0"
 description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
 category = "main"
 optional = false
@@ -103,15 +96,15 @@ python-versions = ">=3.6"
 
 [[package]]
 name = "idna"
-version = "3.1"
+version = "3.3"
 description = "Internationalized Domain Names in Applications (IDNA)"
 category = "main"
 optional = false
-python-versions = ">=3.4"
+python-versions = ">=3.5"
 
 [[package]]
 name = "lxml"
-version = "4.6.2"
+version = "4.8.0"
 description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API."
 category = "main"
 optional = false
@@ -144,15 +137,19 @@ python-versions = "*"
 
 [[package]]
 name = "pillow"
-version = "8.1.2"
+version = "9.1.0"
 description = "Python Imaging Library (Fork)"
 category = "main"
 optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
+
+[package.extras]
+docs = ["olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-issues (>=3.0.1)", "sphinx-removed-in", "sphinx-rtd-theme (>=1.0)", "sphinxext-opengraph"]
+tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"]
 
 [[package]]
 name = "pycparser"
-version = "2.20"
+version = "2.21"
 description = "C parser in Python"
 category = "main"
 optional = false
@@ -160,7 +157,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 
 [[package]]
 name = "pyfuse3"
-version = "3.2.0"
+version = "3.2.1"
 description = "Python 3 bindings for libfuse 3 with async I/O support"
 category = "main"
 optional = false
@@ -171,11 +168,11 @@ trio = ">=0.15"
 
 [[package]]
 name = "reportlab"
-version = "3.5.65"
+version = "3.6.9"
 description = "The Reportlab Toolkit"
 category = "main"
 optional = false
-python-versions = ">=2.7, >=3.6, <4"
+python-versions = ">=3.7, <4"
 
 [package.dependencies]
 pillow = ">=4.0.0"
@@ -185,7 +182,7 @@ rlpycairo = ["rlPyCairo (>=0.0.5)"]
 
 [[package]]
 name = "rmcl"
-version = "0.4.0"
+version = "0.4.2"
 description = "reMarkable Cloud Library"
 category = "main"
 optional = false
@@ -198,7 +195,7 @@ xdg = ">=5.0.1,<6.0.0"
 
 [[package]]
 name = "rmfuse"
-version = "0.2.1"
+version = "0.2.3"
 description = ""
 category = "main"
 optional = false
@@ -208,7 +205,7 @@ develop = false
 [package.dependencies]
 bidict = "^0.21.2"
 pyfuse3 = {version = "^3.2.0", optional = true}
-rmcl = "^0.4.0"
+rmcl = "^0.4.2"
 rmrl = "^0.2.1"
 xdg = "^5.0.1"
 
@@ -220,7 +217,7 @@ llfuse = ["llfuse (>=1.4.1,<2.0.0)"]
 type = "git"
 url = "https://github.com/rschroll/rmfuse.git"
 reference = "master"
-resolved_reference = "fca03bcdd6dc118f2ba981410ec9dff7f7cb88ec"
+resolved_reference = "3796b8610c8a965a60a417fc0bf8ea5200b71fd2"
 
 [[package]]
 name = "rmrl"
@@ -246,7 +243,7 @@ python-versions = ">=3.5"
 
 [[package]]
 name = "sortedcontainers"
-version = "2.3.0"
+version = "2.4.0"
 description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set"
 category = "main"
 optional = false
@@ -254,11 +251,11 @@ python-versions = "*"
 
 [[package]]
 name = "svglib"
-version = "1.0.1"
+version = "1.2.1"
 description = "A pure-Python library for reading and converting SVG"
 category = "main"
 optional = false
-python-versions = ">=3"
+python-versions = ">=3.7"
 
 [package.dependencies]
 cssselect2 = ">=0.2.0"
@@ -268,8 +265,8 @@ tinycss2 = ">=0.6.0"
 
 [[package]]
 name = "tinycss2"
-version = "1.1.0"
-description = "tinycss2"
+version = "1.1.1"
+description = "A tiny CSS parser"
 category = "main"
 optional = false
 python-versions = ">=3.6"
@@ -308,7 +305,7 @@ python-versions = "*"
 
 [[package]]
 name = "xdg"
-version = "5.0.1"
+version = "5.1.1"
 description = "Variables defined by the XDG Base Directory Specification"
 category = "main"
 optional = false
@@ -332,102 +329,139 @@ async-generator = [
     {file = "async_generator-1.10.tar.gz", hash = "sha256:6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144"},
 ]
 attrs = [
-    {file = "attrs-20.3.0-py2.py3-none-any.whl", hash = "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6"},
-    {file = "attrs-20.3.0.tar.gz", hash = "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"},
+    {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"},
+    {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"},
 ]
 bidict = [
-    {file = "bidict-0.21.2-py2.py3-none-any.whl", hash = "sha256:929d056e8d0d9b17ceda20ba5b24ac388e2a4d39802b87f9f4d3f45ecba070bf"},
-    {file = "bidict-0.21.2.tar.gz", hash = "sha256:4fa46f7ff96dc244abfc437383d987404ae861df797e2fd5b190e233c302be09"},
+    {file = "bidict-0.21.4-py3-none-any.whl", hash = "sha256:3ac67daa353ecf853a1df9d3e924f005e729227a60a8dbada31a4c31aba7f654"},
+    {file = "bidict-0.21.4.tar.gz", hash = "sha256:42c84ffbe6f8de898af6073b4be9ea7ccedcd78d3474aa844c54e49d5a079f6f"},
 ]
 cffi = [
-    {file = "cffi-1.14.5-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:bb89f306e5da99f4d922728ddcd6f7fcebb3241fc40edebcb7284d7514741991"},
-    {file = "cffi-1.14.5-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:34eff4b97f3d982fb93e2831e6750127d1355a923ebaeeb565407b3d2f8d41a1"},
-    {file = "cffi-1.14.5-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:99cd03ae7988a93dd00bcd9d0b75e1f6c426063d6f03d2f90b89e29b25b82dfa"},
-    {file = "cffi-1.14.5-cp27-cp27m-win32.whl", hash = "sha256:65fa59693c62cf06e45ddbb822165394a288edce9e276647f0046e1ec26920f3"},
-    {file = "cffi-1.14.5-cp27-cp27m-win_amd64.whl", hash = "sha256:51182f8927c5af975fece87b1b369f722c570fe169f9880764b1ee3bca8347b5"},
-    {file = "cffi-1.14.5-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:43e0b9d9e2c9e5d152946b9c5fe062c151614b262fda2e7b201204de0b99e482"},
-    {file = "cffi-1.14.5-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:cbde590d4faaa07c72bf979734738f328d239913ba3e043b1e98fe9a39f8b2b6"},
-    {file = "cffi-1.14.5-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:5de7970188bb46b7bf9858eb6890aad302577a5f6f75091fd7cdd3ef13ef3045"},
-    {file = "cffi-1.14.5-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:a465da611f6fa124963b91bf432d960a555563efe4ed1cc403ba5077b15370aa"},
-    {file = "cffi-1.14.5-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:d42b11d692e11b6634f7613ad8df5d6d5f8875f5d48939520d351007b3c13406"},
-    {file = "cffi-1.14.5-cp35-cp35m-win32.whl", hash = "sha256:72d8d3ef52c208ee1c7b2e341f7d71c6fd3157138abf1a95166e6165dd5d4369"},
-    {file = "cffi-1.14.5-cp35-cp35m-win_amd64.whl", hash = "sha256:29314480e958fd8aab22e4a58b355b629c59bf5f2ac2492b61e3dc06d8c7a315"},
-    {file = "cffi-1.14.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:3d3dd4c9e559eb172ecf00a2a7517e97d1e96de2a5e610bd9b68cea3925b4892"},
-    {file = "cffi-1.14.5-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:48e1c69bbacfc3d932221851b39d49e81567a4d4aac3b21258d9c24578280058"},
-    {file = "cffi-1.14.5-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:69e395c24fc60aad6bb4fa7e583698ea6cc684648e1ffb7fe85e3c1ca131a7d5"},
-    {file = "cffi-1.14.5-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:9e93e79c2551ff263400e1e4be085a1210e12073a31c2011dbbda14bda0c6132"},
-    {file = "cffi-1.14.5-cp36-cp36m-win32.whl", hash = "sha256:58e3f59d583d413809d60779492342801d6e82fefb89c86a38e040c16883be53"},
-    {file = "cffi-1.14.5-cp36-cp36m-win_amd64.whl", hash = "sha256:005a36f41773e148deac64b08f233873a4d0c18b053d37da83f6af4d9087b813"},
-    {file = "cffi-1.14.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2894f2df484ff56d717bead0a5c2abb6b9d2bf26d6960c4604d5c48bbc30ee73"},
-    {file = "cffi-1.14.5-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:0857f0ae312d855239a55c81ef453ee8fd24136eaba8e87a2eceba644c0d4c06"},
-    {file = "cffi-1.14.5-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:cd2868886d547469123fadc46eac7ea5253ea7fcb139f12e1dfc2bbd406427d1"},
-    {file = "cffi-1.14.5-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:35f27e6eb43380fa080dccf676dece30bef72e4a67617ffda586641cd4508d49"},
-    {file = "cffi-1.14.5-cp37-cp37m-win32.whl", hash = "sha256:9ff227395193126d82e60319a673a037d5de84633f11279e336f9c0f189ecc62"},
-    {file = "cffi-1.14.5-cp37-cp37m-win_amd64.whl", hash = "sha256:9cf8022fb8d07a97c178b02327b284521c7708d7c71a9c9c355c178ac4bbd3d4"},
-    {file = "cffi-1.14.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8b198cec6c72df5289c05b05b8b0969819783f9418e0409865dac47288d2a053"},
-    {file = "cffi-1.14.5-cp38-cp38-manylinux1_i686.whl", hash = "sha256:ad17025d226ee5beec591b52800c11680fca3df50b8b29fe51d882576e039ee0"},
-    {file = "cffi-1.14.5-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:6c97d7350133666fbb5cf4abdc1178c812cb205dc6f41d174a7b0f18fb93337e"},
-    {file = "cffi-1.14.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:8ae6299f6c68de06f136f1f9e69458eae58f1dacf10af5c17353eae03aa0d827"},
-    {file = "cffi-1.14.5-cp38-cp38-win32.whl", hash = "sha256:b85eb46a81787c50650f2392b9b4ef23e1f126313b9e0e9013b35c15e4288e2e"},
-    {file = "cffi-1.14.5-cp38-cp38-win_amd64.whl", hash = "sha256:1f436816fc868b098b0d63b8920de7d208c90a67212546d02f84fe78a9c26396"},
-    {file = "cffi-1.14.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1071534bbbf8cbb31b498d5d9db0f274f2f7a865adca4ae429e147ba40f73dea"},
-    {file = "cffi-1.14.5-cp39-cp39-manylinux1_i686.whl", hash = "sha256:9de2e279153a443c656f2defd67769e6d1e4163952b3c622dcea5b08a6405322"},
-    {file = "cffi-1.14.5-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:6e4714cc64f474e4d6e37cfff31a814b509a35cb17de4fb1999907575684479c"},
-    {file = "cffi-1.14.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:158d0d15119b4b7ff6b926536763dc0714313aa59e320ddf787502c70c4d4bee"},
-    {file = "cffi-1.14.5-cp39-cp39-win32.whl", hash = "sha256:afb29c1ba2e5a3736f1c301d9d0abe3ec8b86957d04ddfa9d7a6a42b9367e396"},
-    {file = "cffi-1.14.5-cp39-cp39-win_amd64.whl", hash = "sha256:f2d45f97ab6bb54753eab54fffe75aaf3de4ff2341c9daee1987ee1837636f1d"},
-    {file = "cffi-1.14.5.tar.gz", hash = "sha256:fd78e5fee591709f32ef6edb9a015b4aa1a5022598e36227500c8f4e02328d9c"},
+    {file = "cffi-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962"},
+    {file = "cffi-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0"},
+    {file = "cffi-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14"},
+    {file = "cffi-1.15.0-cp27-cp27m-win32.whl", hash = "sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474"},
+    {file = "cffi-1.15.0-cp27-cp27m-win_amd64.whl", hash = "sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6"},
+    {file = "cffi-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27"},
+    {file = "cffi-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023"},
+    {file = "cffi-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2"},
+    {file = "cffi-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e"},
+    {file = "cffi-1.15.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7"},
+    {file = "cffi-1.15.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3"},
+    {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c"},
+    {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962"},
+    {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382"},
+    {file = "cffi-1.15.0-cp310-cp310-win32.whl", hash = "sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55"},
+    {file = "cffi-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0"},
+    {file = "cffi-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e"},
+    {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39"},
+    {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc"},
+    {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032"},
+    {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8"},
+    {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605"},
+    {file = "cffi-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e"},
+    {file = "cffi-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc"},
+    {file = "cffi-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636"},
+    {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4"},
+    {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997"},
+    {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b"},
+    {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2"},
+    {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7"},
+    {file = "cffi-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66"},
+    {file = "cffi-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029"},
+    {file = "cffi-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880"},
+    {file = "cffi-1.15.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20"},
+    {file = "cffi-1.15.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024"},
+    {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e"},
+    {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728"},
+    {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6"},
+    {file = "cffi-1.15.0-cp38-cp38-win32.whl", hash = "sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c"},
+    {file = "cffi-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443"},
+    {file = "cffi-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a"},
+    {file = "cffi-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37"},
+    {file = "cffi-1.15.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a"},
+    {file = "cffi-1.15.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e"},
+    {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796"},
+    {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df"},
+    {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8"},
+    {file = "cffi-1.15.0-cp39-cp39-win32.whl", hash = "sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a"},
+    {file = "cffi-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139"},
+    {file = "cffi-1.15.0.tar.gz", hash = "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954"},
 ]
 cssselect2 = [
-    {file = "cssselect2-0.4.1-py3-none-any.whl", hash = "sha256:2f4a9f20965367bae459e3bb42561f7927e0cfe5b7ea1692757cf67ef5d7dace"},
-    {file = "cssselect2-0.4.1.tar.gz", hash = "sha256:93fbb9af860e95dd40bf18c3b2b6ed99189a07c0f29ba76f9c5be71344664ec8"},
+    {file = "cssselect2-0.6.0-py3-none-any.whl", hash = "sha256:3a83b2a68370c69c9cd3fcb88bbfaebe9d22edeef2c22d1ff3e1ed9c7fa45ed8"},
+    {file = "cssselect2-0.6.0.tar.gz", hash = "sha256:5b5d6dea81a5eb0c9ca39f116c8578dd413778060c94c1f51196371618909325"},
 ]
 h11 = [
-    {file = "h11-0.12.0-py3-none-any.whl", hash = "sha256:36a3cb8c0a032f56e2da7084577878a035d3b61d104230d4bd49c0c6b555a9c6"},
-    {file = "h11-0.12.0.tar.gz", hash = "sha256:47222cb6067e4a307d535814917cd98fd0a57b6788ce715755fa2b6c28b56042"},
+    {file = "h11-0.13.0-py3-none-any.whl", hash = "sha256:8ddd78563b633ca55346c8cd41ec0af27d3c79931828beffb46ce70a379e7442"},
+    {file = "h11-0.13.0.tar.gz", hash = "sha256:70813c1135087a248a4d38cc0e1a0181ffab2188141a93eaf567940c3957ff06"},
 ]
 idna = [
-    {file = "idna-3.1-py3-none-any.whl", hash = "sha256:5205d03e7bcbb919cc9c19885f9920d622ca52448306f2377daede5cf3faac16"},
-    {file = "idna-3.1.tar.gz", hash = "sha256:c5b02147e01ea9920e6b0a3f1f7bb833612d507592c837a6c49552768f4054e1"},
+    {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"},
+    {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"},
 ]
 lxml = [
-    {file = "lxml-4.6.2-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a9d6bc8642e2c67db33f1247a77c53476f3a166e09067c0474facb045756087f"},
-    {file = "lxml-4.6.2-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:791394449e98243839fa822a637177dd42a95f4883ad3dec2a0ce6ac99fb0a9d"},
-    {file = "lxml-4.6.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:68a5d77e440df94011214b7db907ec8f19e439507a70c958f750c18d88f995d2"},
-    {file = "lxml-4.6.2-cp27-cp27m-win32.whl", hash = "sha256:fc37870d6716b137e80d19241d0e2cff7a7643b925dfa49b4c8ebd1295eb506e"},
-    {file = "lxml-4.6.2-cp27-cp27m-win_amd64.whl", hash = "sha256:69a63f83e88138ab7642d8f61418cf3180a4d8cd13995df87725cb8b893e950e"},
-    {file = "lxml-4.6.2-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:42ebca24ba2a21065fb546f3e6bd0c58c3fe9ac298f3a320147029a4850f51a2"},
-    {file = "lxml-4.6.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:f83d281bb2a6217cd806f4cf0ddded436790e66f393e124dfe9731f6b3fb9afe"},
-    {file = "lxml-4.6.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:535f067002b0fd1a4e5296a8f1bf88193080ff992a195e66964ef2a6cfec5388"},
-    {file = "lxml-4.6.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:366cb750140f221523fa062d641393092813b81e15d0e25d9f7c6025f910ee80"},
-    {file = "lxml-4.6.2-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:97db258793d193c7b62d4e2586c6ed98d51086e93f9a3af2b2034af01450a74b"},
-    {file = "lxml-4.6.2-cp35-cp35m-win32.whl", hash = "sha256:648914abafe67f11be7d93c1a546068f8eff3c5fa938e1f94509e4a5d682b2d8"},
-    {file = "lxml-4.6.2-cp35-cp35m-win_amd64.whl", hash = "sha256:4e751e77006da34643ab782e4a5cc21ea7b755551db202bc4d3a423b307db780"},
-    {file = "lxml-4.6.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:681d75e1a38a69f1e64ab82fe4b1ed3fd758717bed735fb9aeaa124143f051af"},
-    {file = "lxml-4.6.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:127f76864468d6630e1b453d3ffbbd04b024c674f55cf0a30dc2595137892d37"},
-    {file = "lxml-4.6.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4fb85c447e288df535b17ebdebf0ec1cf3a3f1a8eba7e79169f4f37af43c6b98"},
-    {file = "lxml-4.6.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:5be4a2e212bb6aa045e37f7d48e3e1e4b6fd259882ed5a00786f82e8c37ce77d"},
-    {file = "lxml-4.6.2-cp36-cp36m-win32.whl", hash = "sha256:8c88b599e226994ad4db29d93bc149aa1aff3dc3a4355dd5757569ba78632bdf"},
-    {file = "lxml-4.6.2-cp36-cp36m-win_amd64.whl", hash = "sha256:6e4183800f16f3679076dfa8abf2db3083919d7e30764a069fb66b2b9eff9939"},
-    {file = "lxml-4.6.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d8d3d4713f0c28bdc6c806a278d998546e8efc3498949e3ace6e117462ac0a5e"},
-    {file = "lxml-4.6.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:8246f30ca34dc712ab07e51dc34fea883c00b7ccb0e614651e49da2c49a30711"},
-    {file = "lxml-4.6.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:923963e989ffbceaa210ac37afc9b906acebe945d2723e9679b643513837b089"},
-    {file = "lxml-4.6.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:1471cee35eba321827d7d53d104e7b8c593ea3ad376aa2df89533ce8e1b24a01"},
-    {file = "lxml-4.6.2-cp37-cp37m-win32.whl", hash = "sha256:2363c35637d2d9d6f26f60a208819e7eafc4305ce39dc1d5005eccc4593331c2"},
-    {file = "lxml-4.6.2-cp37-cp37m-win_amd64.whl", hash = "sha256:f4822c0660c3754f1a41a655e37cb4dbbc9be3d35b125a37fab6f82d47674ebc"},
-    {file = "lxml-4.6.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0448576c148c129594d890265b1a83b9cd76fd1f0a6a04620753d9a6bcfd0a4d"},
-    {file = "lxml-4.6.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:60a20bfc3bd234d54d49c388950195d23a5583d4108e1a1d47c9eef8d8c042b3"},
-    {file = "lxml-4.6.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:2e5cc908fe43fe1aa299e58046ad66981131a66aea3129aac7770c37f590a644"},
-    {file = "lxml-4.6.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:50c348995b47b5a4e330362cf39fc503b4a43b14a91c34c83b955e1805c8e308"},
-    {file = "lxml-4.6.2-cp38-cp38-win32.whl", hash = "sha256:94d55bd03d8671686e3f012577d9caa5421a07286dd351dfef64791cf7c6c505"},
-    {file = "lxml-4.6.2-cp38-cp38-win_amd64.whl", hash = "sha256:7a7669ff50f41225ca5d6ee0a1ec8413f3a0d8aa2b109f86d540887b7ec0d72a"},
-    {file = "lxml-4.6.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e0bfe9bb028974a481410432dbe1b182e8191d5d40382e5b8ff39cdd2e5c5931"},
-    {file = "lxml-4.6.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:6fd8d5903c2e53f49e99359b063df27fdf7acb89a52b6a12494208bf61345a03"},
-    {file = "lxml-4.6.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:7e9eac1e526386df7c70ef253b792a0a12dd86d833b1d329e038c7a235dfceb5"},
-    {file = "lxml-4.6.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:7ee8af0b9f7de635c61cdd5b8534b76c52cd03536f29f51151b377f76e214a1a"},
-    {file = "lxml-4.6.2-cp39-cp39-win32.whl", hash = "sha256:2e6fd1b8acd005bd71e6c94f30c055594bbd0aa02ef51a22bbfa961ab63b2d75"},
-    {file = "lxml-4.6.2-cp39-cp39-win_amd64.whl", hash = "sha256:535332fe9d00c3cd455bd3dd7d4bacab86e2d564bdf7606079160fa6251caacf"},
-    {file = "lxml-4.6.2.tar.gz", hash = "sha256:cd11c7e8d21af997ee8079037fff88f16fda188a9776eb4b81c7e4c9c0a7d7fc"},
+    {file = "lxml-4.8.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:e1ab2fac607842ac36864e358c42feb0960ae62c34aa4caaf12ada0a1fb5d99b"},
+    {file = "lxml-4.8.0-cp27-cp27m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28d1af847786f68bec57961f31221125c29d6f52d9187c01cd34dc14e2b29430"},
+    {file = "lxml-4.8.0-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b92d40121dcbd74831b690a75533da703750f7041b4bf951befc657c37e5695a"},
+    {file = "lxml-4.8.0-cp27-cp27m-win32.whl", hash = "sha256:e01f9531ba5420838c801c21c1b0f45dbc9607cb22ea2cf132844453bec863a5"},
+    {file = "lxml-4.8.0-cp27-cp27m-win_amd64.whl", hash = "sha256:6259b511b0f2527e6d55ad87acc1c07b3cbffc3d5e050d7e7bcfa151b8202df9"},
+    {file = "lxml-4.8.0-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1010042bfcac2b2dc6098260a2ed022968dbdfaf285fc65a3acf8e4eb1ffd1bc"},
+    {file = "lxml-4.8.0-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:fa56bb08b3dd8eac3a8c5b7d075c94e74f755fd9d8a04543ae8d37b1612dd170"},
+    {file = "lxml-4.8.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:31ba2cbc64516dcdd6c24418daa7abff989ddf3ba6d3ea6f6ce6f2ed6e754ec9"},
+    {file = "lxml-4.8.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:31499847fc5f73ee17dbe1b8e24c6dafc4e8d5b48803d17d22988976b0171f03"},
+    {file = "lxml-4.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:5f7d7d9afc7b293147e2d506a4596641d60181a35279ef3aa5778d0d9d9123fe"},
+    {file = "lxml-4.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:a3c5f1a719aa11866ffc530d54ad965063a8cbbecae6515acbd5f0fae8f48eaa"},
+    {file = "lxml-4.8.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6268e27873a3d191849204d00d03f65c0e343b3bcb518a6eaae05677c95621d1"},
+    {file = "lxml-4.8.0-cp310-cp310-win32.whl", hash = "sha256:330bff92c26d4aee79c5bc4d9967858bdbe73fdbdbacb5daf623a03a914fe05b"},
+    {file = "lxml-4.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:b2582b238e1658c4061ebe1b4df53c435190d22457642377fd0cb30685cdfb76"},
+    {file = "lxml-4.8.0-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a2bfc7e2a0601b475477c954bf167dee6d0f55cb167e3f3e7cefad906e7759f6"},
+    {file = "lxml-4.8.0-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a1547ff4b8a833511eeaceacbcd17b043214fcdb385148f9c1bc5556ca9623e2"},
+    {file = "lxml-4.8.0-cp35-cp35m-win32.whl", hash = "sha256:a9f1c3489736ff8e1c7652e9dc39f80cff820f23624f23d9eab6e122ac99b150"},
+    {file = "lxml-4.8.0-cp35-cp35m-win_amd64.whl", hash = "sha256:530f278849031b0eb12f46cca0e5db01cfe5177ab13bd6878c6e739319bae654"},
+    {file = "lxml-4.8.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:078306d19a33920004addeb5f4630781aaeabb6a8d01398045fcde085091a169"},
+    {file = "lxml-4.8.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:86545e351e879d0b72b620db6a3b96346921fa87b3d366d6c074e5a9a0b8dadb"},
+    {file = "lxml-4.8.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24f5c5ae618395ed871b3d8ebfcbb36e3f1091fd847bf54c4de623f9107942f3"},
+    {file = "lxml-4.8.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:bbab6faf6568484707acc052f4dfc3802bdb0cafe079383fbaa23f1cdae9ecd4"},
+    {file = "lxml-4.8.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7993232bd4044392c47779a3c7e8889fea6883be46281d45a81451acfd704d7e"},
+    {file = "lxml-4.8.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6d6483b1229470e1d8835e52e0ff3c6973b9b97b24cd1c116dca90b57a2cc613"},
+    {file = "lxml-4.8.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:ad4332a532e2d5acb231a2e5d33f943750091ee435daffca3fec0a53224e7e33"},
+    {file = "lxml-4.8.0-cp36-cp36m-win32.whl", hash = "sha256:db3535733f59e5605a88a706824dfcb9bd06725e709ecb017e165fc1d6e7d429"},
+    {file = "lxml-4.8.0-cp36-cp36m-win_amd64.whl", hash = "sha256:5f148b0c6133fb928503cfcdfdba395010f997aa44bcf6474fcdd0c5398d9b63"},
+    {file = "lxml-4.8.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:8a31f24e2a0b6317f33aafbb2f0895c0bce772980ae60c2c640d82caac49628a"},
+    {file = "lxml-4.8.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:719544565c2937c21a6f76d520e6e52b726d132815adb3447ccffbe9f44203c4"},
+    {file = "lxml-4.8.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:c0b88ed1ae66777a798dc54f627e32d3b81c8009967c63993c450ee4cbcbec15"},
+    {file = "lxml-4.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fa9b7c450be85bfc6cd39f6df8c5b8cbd76b5d6fc1f69efec80203f9894b885f"},
+    {file = "lxml-4.8.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e9f84ed9f4d50b74fbc77298ee5c870f67cb7e91dcdc1a6915cb1ff6a317476c"},
+    {file = "lxml-4.8.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1d650812b52d98679ed6c6b3b55cbb8fe5a5460a0aef29aeb08dc0b44577df85"},
+    {file = "lxml-4.8.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:80bbaddf2baab7e6de4bc47405e34948e694a9efe0861c61cdc23aa774fcb141"},
+    {file = "lxml-4.8.0-cp37-cp37m-win32.whl", hash = "sha256:6f7b82934c08e28a2d537d870293236b1000d94d0b4583825ab9649aef7ddf63"},
+    {file = "lxml-4.8.0-cp37-cp37m-win_amd64.whl", hash = "sha256:e1fd7d2fe11f1cb63d3336d147c852f6d07de0d0020d704c6031b46a30b02ca8"},
+    {file = "lxml-4.8.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:5045ee1ccd45a89c4daec1160217d363fcd23811e26734688007c26f28c9e9e7"},
+    {file = "lxml-4.8.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:0c1978ff1fd81ed9dcbba4f91cf09faf1f8082c9d72eb122e92294716c605428"},
+    {file = "lxml-4.8.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cbf2ff155b19dc4d4100f7442f6a697938bf4493f8d3b0c51d45568d5666b5"},
+    {file = "lxml-4.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:ce13d6291a5f47c1c8dbd375baa78551053bc6b5e5c0e9bb8e39c0a8359fd52f"},
+    {file = "lxml-4.8.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e11527dc23d5ef44d76fef11213215c34f36af1608074561fcc561d983aeb870"},
+    {file = "lxml-4.8.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:60d2f60bd5a2a979df28ab309352cdcf8181bda0cca4529769a945f09aba06f9"},
+    {file = "lxml-4.8.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:62f93eac69ec0f4be98d1b96f4d6b964855b8255c345c17ff12c20b93f247b68"},
+    {file = "lxml-4.8.0-cp38-cp38-win32.whl", hash = "sha256:20b8a746a026017acf07da39fdb10aa80ad9877046c9182442bf80c84a1c4696"},
+    {file = "lxml-4.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:891dc8f522d7059ff0024cd3ae79fd224752676447f9c678f2a5c14b84d9a939"},
+    {file = "lxml-4.8.0-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:b6fc2e2fb6f532cf48b5fed57567ef286addcef38c28874458a41b7837a57807"},
+    {file = "lxml-4.8.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:74eb65ec61e3c7c019d7169387d1b6ffcfea1b9ec5894d116a9a903636e4a0b1"},
+    {file = "lxml-4.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:627e79894770783c129cc5e89b947e52aa26e8e0557c7e205368a809da4b7939"},
+    {file = "lxml-4.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:545bd39c9481f2e3f2727c78c169425efbfb3fbba6e7db4f46a80ebb249819ca"},
+    {file = "lxml-4.8.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5a58d0b12f5053e270510bf12f753a76aaf3d74c453c00942ed7d2c804ca845c"},
+    {file = "lxml-4.8.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:ec4b4e75fc68da9dc0ed73dcdb431c25c57775383fec325d23a770a64e7ebc87"},
+    {file = "lxml-4.8.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5804e04feb4e61babf3911c2a974a5b86f66ee227cc5006230b00ac6d285b3a9"},
+    {file = "lxml-4.8.0-cp39-cp39-win32.whl", hash = "sha256:aa0cf4922da7a3c905d000b35065df6184c0dc1d866dd3b86fd961905bbad2ea"},
+    {file = "lxml-4.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:dd10383f1d6b7edf247d0960a3db274c07e96cf3a3fc7c41c8448f93eac3fb1c"},
+    {file = "lxml-4.8.0-pp37-pypy37_pp73-macosx_10_14_x86_64.whl", hash = "sha256:2403a6d6fb61c285969b71f4a3527873fe93fd0abe0832d858a17fe68c8fa507"},
+    {file = "lxml-4.8.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:986b7a96228c9b4942ec420eff37556c5777bfba6758edcb95421e4a614b57f9"},
+    {file = "lxml-4.8.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:6fe4ef4402df0250b75ba876c3795510d782def5c1e63890bde02d622570d39e"},
+    {file = "lxml-4.8.0-pp38-pypy38_pp73-macosx_10_14_x86_64.whl", hash = "sha256:f10ce66fcdeb3543df51d423ede7e238be98412232fca5daec3e54bcd16b8da0"},
+    {file = "lxml-4.8.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:730766072fd5dcb219dd2b95c4c49752a54f00157f322bc6d71f7d2a31fecd79"},
+    {file = "lxml-4.8.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:8b99ec73073b37f9ebe8caf399001848fced9c08064effdbfc4da2b5a8d07b93"},
+    {file = "lxml-4.8.0.tar.gz", hash = "sha256:f63f62fc60e6228a4ca9abae28228f35e1bd3ce675013d1dfb828688d50c6e23"},
 ]
 outcome = [
     {file = "outcome-1.1.0-py2.py3-none-any.whl", hash = "sha256:c7dd9375cfd3c12db9801d080a3b63d4b0a261aa996c4c13152380587288d958"},
@@ -438,81 +472,93 @@ pdfrw = [
     {file = "pdfrw-0.4.tar.gz", hash = "sha256:0dc0494a0e6561b268542b28ede2280387c2728114f117d3bb5d8e4787b93ef4"},
 ]
 pillow = [
-    {file = "Pillow-8.1.2-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:5cf03b9534aca63b192856aa601c68d0764810857786ea5da652581f3a44c2b0"},
-    {file = "Pillow-8.1.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:f91b50ad88048d795c0ad004abbe1390aa1882073b1dca10bfd55d0b8cf18ec5"},
-    {file = "Pillow-8.1.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:5762ebb4436f46b566fc6351d67a9b5386b5e5de4e58fdaa18a1c83e0e20f1a8"},
-    {file = "Pillow-8.1.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:e2cd8ac157c1e5ae88b6dd790648ee5d2777e76f1e5c7d184eaddb2938594f34"},
-    {file = "Pillow-8.1.2-cp36-cp36m-win32.whl", hash = "sha256:72027ebf682abc9bafd93b43edc44279f641e8996fb2945104471419113cfc71"},
-    {file = "Pillow-8.1.2-cp36-cp36m-win_amd64.whl", hash = "sha256:d1d6bca39bb6dd94fba23cdb3eeaea5e30c7717c5343004d900e2a63b132c341"},
-    {file = "Pillow-8.1.2-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:90882c6f084ef68b71bba190209a734bf90abb82ab5e8f64444c71d5974008c6"},
-    {file = "Pillow-8.1.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:89e4c757a91b8c55d97c91fa09c69b3677c227b942fa749e9a66eef602f59c28"},
-    {file = "Pillow-8.1.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:8c4e32218c764bc27fe49b7328195579581aa419920edcc321c4cb877c65258d"},
-    {file = "Pillow-8.1.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:a01da2c266d9868c4f91a9c6faf47a251f23b9a862dce81d2ff583135206f5be"},
-    {file = "Pillow-8.1.2-cp37-cp37m-win32.whl", hash = "sha256:30d33a1a6400132e6f521640dd3f64578ac9bfb79a619416d7e8802b4ce1dd55"},
-    {file = "Pillow-8.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:71b01ee69e7df527439d7752a2ce8fb89e19a32df484a308eca3e81f673d3a03"},
-    {file = "Pillow-8.1.2-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:5a2d957eb4aba9d48170b8fe6538ec1fbc2119ffe6373782c03d8acad3323f2e"},
-    {file = "Pillow-8.1.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:87f42c976f91ca2fc21a3293e25bd3cd895918597db1b95b93cbd949f7d019ce"},
-    {file = "Pillow-8.1.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:15306d71a1e96d7e271fd2a0737038b5a92ca2978d2e38b6ced7966583e3d5af"},
-    {file = "Pillow-8.1.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:71f31ee4df3d5e0b366dd362007740106d3210fb6a56ec4b581a5324ba254f06"},
-    {file = "Pillow-8.1.2-cp38-cp38-win32.whl", hash = "sha256:98afcac3205d31ab6a10c5006b0cf040d0026a68ec051edd3517b776c1d78b09"},
-    {file = "Pillow-8.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:328240f7dddf77783e72d5ed79899a6b48bc6681f8d1f6001f55933cb4905060"},
-    {file = "Pillow-8.1.2-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:bead24c0ae3f1f6afcb915a057943ccf65fc755d11a1410a909c1fefb6c06ad1"},
-    {file = "Pillow-8.1.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:81b3716cc9744ffdf76b39afb6247eae754186838cedad0b0ac63b2571253fe6"},
-    {file = "Pillow-8.1.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:63cd413ac52ee3f67057223d363f4f82ce966e64906aea046daf46695e3c8238"},
-    {file = "Pillow-8.1.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:8565355a29655b28fdc2c666fd9a3890fe5edc6639d128814fafecfae2d70910"},
-    {file = "Pillow-8.1.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:1940fc4d361f9cc7e558d6f56ff38d7351b53052fd7911f4b60cd7bc091ea3b1"},
-    {file = "Pillow-8.1.2-cp39-cp39-win32.whl", hash = "sha256:46c2bcf8e1e75d154e78417b3e3c64e96def738c2a25435e74909e127a8cba5e"},
-    {file = "Pillow-8.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:aeab4cd016e11e7aa5cfc49dcff8e51561fa64818a0be86efa82c7038e9369d0"},
-    {file = "Pillow-8.1.2-pp36-pypy36_pp73-macosx_10_10_x86_64.whl", hash = "sha256:74cd9aa648ed6dd25e572453eb09b08817a1e3d9f8d1bd4d8403d99e42ea790b"},
-    {file = "Pillow-8.1.2-pp36-pypy36_pp73-manylinux2010_i686.whl", hash = "sha256:e5739ae63636a52b706a0facec77b2b58e485637e1638202556156e424a02dc2"},
-    {file = "Pillow-8.1.2-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:903293320efe2466c1ab3509a33d6b866dc850cfd0c5d9cc92632014cec185fb"},
-    {file = "Pillow-8.1.2-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:5daba2b40782c1c5157a788ec4454067c6616f5a0c1b70e26ac326a880c2d328"},
-    {file = "Pillow-8.1.2-pp37-pypy37_pp73-manylinux2010_i686.whl", hash = "sha256:1f93f2fe211f1ef75e6f589327f4d4f8545d5c8e826231b042b483d8383e8a7c"},
-    {file = "Pillow-8.1.2-pp37-pypy37_pp73-manylinux2010_x86_64.whl", hash = "sha256:6efac40344d8f668b6c4533ae02a48d52fd852ef0654cc6f19f6ac146399c733"},
-    {file = "Pillow-8.1.2-pp37-pypy37_pp73-win32.whl", hash = "sha256:f36c3ff63d6fc509ce599a2f5b0d0732189eed653420e7294c039d342c6e204a"},
-    {file = "Pillow-8.1.2.tar.gz", hash = "sha256:b07c660e014852d98a00a91adfbe25033898a9d90a8f39beb2437d22a203fc44"},
+    {file = "Pillow-9.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:af79d3fde1fc2e33561166d62e3b63f0cc3e47b5a3a2e5fea40d4917754734ea"},
+    {file = "Pillow-9.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:55dd1cf09a1fd7c7b78425967aacae9b0d70125f7d3ab973fadc7b5abc3de652"},
+    {file = "Pillow-9.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:66822d01e82506a19407d1afc104c3fcea3b81d5eb11485e593ad6b8492f995a"},
+    {file = "Pillow-9.1.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a5eaf3b42df2bcda61c53a742ee2c6e63f777d0e085bbc6b2ab7ed57deb13db7"},
+    {file = "Pillow-9.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01ce45deec9df310cbbee11104bae1a2a43308dd9c317f99235b6d3080ddd66e"},
+    {file = "Pillow-9.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:aea7ce61328e15943d7b9eaca87e81f7c62ff90f669116f857262e9da4057ba3"},
+    {file = "Pillow-9.1.0-cp310-cp310-win32.whl", hash = "sha256:7a053bd4d65a3294b153bdd7724dce864a1d548416a5ef61f6d03bf149205160"},
+    {file = "Pillow-9.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:97bda660702a856c2c9e12ec26fc6d187631ddfd896ff685814ab21ef0597033"},
+    {file = "Pillow-9.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:21dee8466b42912335151d24c1665fcf44dc2ee47e021d233a40c3ca5adae59c"},
+    {file = "Pillow-9.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b6d4050b208c8ff886fd3db6690bf04f9a48749d78b41b7a5bf24c236ab0165"},
+    {file = "Pillow-9.1.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5cfca31ab4c13552a0f354c87fbd7f162a4fafd25e6b521bba93a57fe6a3700a"},
+    {file = "Pillow-9.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed742214068efa95e9844c2d9129e209ed63f61baa4d54dbf4cf8b5e2d30ccf2"},
+    {file = "Pillow-9.1.0-cp37-cp37m-win32.whl", hash = "sha256:c9efef876c21788366ea1f50ecb39d5d6f65febe25ad1d4c0b8dff98843ac244"},
+    {file = "Pillow-9.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:de344bcf6e2463bb25179d74d6e7989e375f906bcec8cb86edb8b12acbc7dfef"},
+    {file = "Pillow-9.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:17869489de2fce6c36690a0c721bd3db176194af5f39249c1ac56d0bb0fcc512"},
+    {file = "Pillow-9.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:25023a6209a4d7c42154073144608c9a71d3512b648a2f5d4465182cb93d3477"},
+    {file = "Pillow-9.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8782189c796eff29dbb37dd87afa4ad4d40fc90b2742704f94812851b725964b"},
+    {file = "Pillow-9.1.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:463acf531f5d0925ca55904fa668bb3461c3ef6bc779e1d6d8a488092bdee378"},
+    {file = "Pillow-9.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f42364485bfdab19c1373b5cd62f7c5ab7cc052e19644862ec8f15bb8af289e"},
+    {file = "Pillow-9.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3fddcdb619ba04491e8f771636583a7cc5a5051cd193ff1aa1ee8616d2a692c5"},
+    {file = "Pillow-9.1.0-cp38-cp38-win32.whl", hash = "sha256:4fe29a070de394e449fd88ebe1624d1e2d7ddeed4c12e0b31624561b58948d9a"},
+    {file = "Pillow-9.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:c24f718f9dd73bb2b31a6201e6db5ea4a61fdd1d1c200f43ee585fc6dcd21b34"},
+    {file = "Pillow-9.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fb89397013cf302f282f0fc998bb7abf11d49dcff72c8ecb320f76ea6e2c5717"},
+    {file = "Pillow-9.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c870193cce4b76713a2b29be5d8327c8ccbe0d4a49bc22968aa1e680930f5581"},
+    {file = "Pillow-9.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69e5ddc609230d4408277af135c5b5c8fe7a54b2bdb8ad7c5100b86b3aab04c6"},
+    {file = "Pillow-9.1.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35be4a9f65441d9982240e6966c1eaa1c654c4e5e931eaf580130409e31804d4"},
+    {file = "Pillow-9.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82283af99c1c3a5ba1da44c67296d5aad19f11c535b551a5ae55328a317ce331"},
+    {file = "Pillow-9.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a325ac71914c5c043fa50441b36606e64a10cd262de12f7a179620f579752ff8"},
+    {file = "Pillow-9.1.0-cp39-cp39-win32.whl", hash = "sha256:a598d8830f6ef5501002ae85c7dbfcd9c27cc4efc02a1989369303ba85573e58"},
+    {file = "Pillow-9.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:0c51cb9edac8a5abd069fd0758ac0a8bfe52c261ee0e330f363548aca6893595"},
+    {file = "Pillow-9.1.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a336a4f74baf67e26f3acc4d61c913e378e931817cd1e2ef4dfb79d3e051b481"},
+    {file = "Pillow-9.1.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb1b89b11256b5b6cad5e7593f9061ac4624f7651f7a8eb4dfa37caa1dfaa4d0"},
+    {file = "Pillow-9.1.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:255c9d69754a4c90b0ee484967fc8818c7ff8311c6dddcc43a4340e10cd1636a"},
+    {file = "Pillow-9.1.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5a3ecc026ea0e14d0ad7cd990ea7f48bfcb3eb4271034657dc9d06933c6629a7"},
+    {file = "Pillow-9.1.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5b0ff59785d93b3437c3703e3c64c178aabada51dea2a7f2c5eccf1bcf565a3"},
+    {file = "Pillow-9.1.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7110ec1701b0bf8df569a7592a196c9d07c764a0a74f65471ea56816f10e2c8"},
+    {file = "Pillow-9.1.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:8d79c6f468215d1a8415aa53d9868a6b40c4682165b8cb62a221b1baa47db458"},
+    {file = "Pillow-9.1.0.tar.gz", hash = "sha256:f401ed2bbb155e1ade150ccc63db1a4f6c1909d3d378f7d1235a44e90d75fb97"},
 ]
 pycparser = [
-    {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"},
-    {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"},
+    {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"},
+    {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"},
 ]
 pyfuse3 = [
-    {file = "pyfuse3-3.2.0.tar.gz", hash = "sha256:45f0053ad601b03a36e2c283a5271403674245a66a0daf50e3deaab0ea4fa82f"},
+    {file = "pyfuse3-3.2.1.tar.gz", hash = "sha256:22d146dac59a8429115e9a93317975ea54b35e0278044a94d3fac5b4ad5f7e33"},
 ]
 reportlab = [
-    {file = "reportlab-3.5.65-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:fd6712a8a6dca12181a3a12316f97810927861e77f2a98029efd2c5cfc8546dc"},
-    {file = "reportlab-3.5.65-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:ee711804acdaf3ea7f0f2cd27f19478af993e730df8c8d923a678eb0e2572fba"},
-    {file = "reportlab-3.5.65-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4c42e85851f969e21fa4d6414587b7544e877ce685e2495d7d422589c70b6281"},
-    {file = "reportlab-3.5.65-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:d8fefd07072bfae2715283a821fb1acf8fc4946cf925509d5cc2af791c611809"},
-    {file = "reportlab-3.5.65-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:bdf751289efee4891f4f354ce9122da8de8258a40f328b3f11540c4888363337"},
-    {file = "reportlab-3.5.65-cp36-cp36m-win32.whl", hash = "sha256:f0634740b099b69caed081acd89692996b5504c59f86f39781b6bebc82b267f5"},
-    {file = "reportlab-3.5.65-cp36-cp36m-win_amd64.whl", hash = "sha256:d810bffd4bcd50fdcb2bab0d1fe9ea4e6187ed5237687e41c6ade6c884b00c1e"},
-    {file = "reportlab-3.5.65-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:46745826657d35f86843487f4bc6f6f805f61260428f8ee13642bf6372f9df55"},
-    {file = "reportlab-3.5.65-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:bc62187181582772688d65c557ad6a40a4c3bb8d1f74de463d35ea81983e9b75"},
-    {file = "reportlab-3.5.65-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:58bec163f727c1c60515fc4704a961b3b4ccf2c76b4e6ec1a457ea7ed0c2d756"},
-    {file = "reportlab-3.5.65-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d92834993bf998853a04946729266a3276965e7b13f7423212f1c1abdfc4a1c7"},
-    {file = "reportlab-3.5.65-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:9ec95808b742ce70c1dab28b2c5bef9093816b92315b948419c2c6968658f9cc"},
-    {file = "reportlab-3.5.65-cp37-cp37m-win32.whl", hash = "sha256:b9494986f35d82350b0ce0c29704a49a3945421b789dff92e93fbd3de554fa34"},
-    {file = "reportlab-3.5.65-cp37-cp37m-win_amd64.whl", hash = "sha256:07f9d9c0360cb8fc780ca05264faa68b90583cd28dbdf2cda6bda34379b6e66c"},
-    {file = "reportlab-3.5.65-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:81898de0a0be2c8318468ae0ae1590f828805e9b7fd68e5a50667dce8b942171"},
-    {file = "reportlab-3.5.65-cp38-cp38-manylinux1_i686.whl", hash = "sha256:99aeee49a61c85f1af1087e9e418f3d0c2352c4dd0f0abbfac17ae6c467185aa"},
-    {file = "reportlab-3.5.65-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:3ec70873d99c14570e2a9c44b86c8c01526871e7af5ee4b2855246db15cb0c9f"},
-    {file = "reportlab-3.5.65-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:c12432575c793b8cd8552fddc219bbf2813541c64d02854ae345a108fb875b9d"},
-    {file = "reportlab-3.5.65-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:b2cf692ae7af995b499a31a3f58f2001d98e310e03f74812bcb97a08078239c0"},
-    {file = "reportlab-3.5.65-cp38-cp38-win32.whl", hash = "sha256:f92388e30bf6b5d2eceb3d7b05ee2df856635f74ce7d950a8f45d2b70c685a5b"},
-    {file = "reportlab-3.5.65-cp38-cp38-win_amd64.whl", hash = "sha256:6f007142f2b166f52cbb3e5d23319e3e496c429831e53b904e6db28c3370f279"},
-    {file = "reportlab-3.5.65-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:8707cc21a769150154bf4634dca6e9581ae24a05f0fb81a84fcc1143b1cbbfde"},
-    {file = "reportlab-3.5.65-cp39-cp39-manylinux1_i686.whl", hash = "sha256:27a831da0d17153e33c985bd7a88307e206c5a28778cddb755d5372598d12637"},
-    {file = "reportlab-3.5.65-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:fe5d98cdac07dd702bcd49f5723aacdd0af8c84d70fc82a5cc3781e52aedad52"},
-    {file = "reportlab-3.5.65-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:ba2d10f368c9ea1e76c84b3bb6b9982eb5a8f243c434e821c505b75ca8d85852"},
-    {file = "reportlab-3.5.65-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:289539f7888239343ef7ebcd30c55e6204ef78d5f70e1547fdeb854a2da8bfa1"},
-    {file = "reportlab-3.5.65-cp39-cp39-win32.whl", hash = "sha256:cdf8ff72cd6fa9303744c8409fb81ef7720da2e034c369762c2fdf496462179e"},
-    {file = "reportlab-3.5.65-cp39-cp39-win_amd64.whl", hash = "sha256:4a784ecdf3008f533e5a032b96c395e8592ed5e679baaf5ef4dcc136b01c72e9"},
-    {file = "reportlab-3.5.65.tar.gz", hash = "sha256:b2c7eedb4d19db63301c27ad1076086a099fd4c8ca0a6f62f6e9ed749fa5908f"},
+    {file = "reportlab-3.6.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4ba8eebfa4383e4680d6e7e6dba9c45c1fe19bbc0a754db4d84823f1a9511e56"},
+    {file = "reportlab-3.6.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:37dda88dbe16dd3f4f9039464637cce66e462c0b95e5763dbd45ac5799136d3a"},
+    {file = "reportlab-3.6.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10681d89a0ca37bb4036283fb8c0efac9ac1b22265dbdf350bda0448be33e00c"},
+    {file = "reportlab-3.6.9-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cebd0b28a0e875a9ce789514700f80659269ecf2a8fcef0aa10b8ae52b40474a"},
+    {file = "reportlab-3.6.9-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ec84055cf2c83783958b74eadf0e577eb0cd9088c8b5d536e9ddc0f4a9f8c70"},
+    {file = "reportlab-3.6.9-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:90f74627cafecf3924741ab8b0690a19df4214eb56b1cfce2dc74a15c9744034"},
+    {file = "reportlab-3.6.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2c2fd861f10b2cd49ccf29a31da9ad5c3b95aa437804e4fd0351ed4eb695f74"},
+    {file = "reportlab-3.6.9-cp310-cp310-win32.whl", hash = "sha256:e492e87886423192af1fafde23907bcd9d2fdccfc22f67e18aa5c73db3a380a3"},
+    {file = "reportlab-3.6.9-cp310-cp310-win_amd64.whl", hash = "sha256:d1bf9455aff37beb421a4447d89d6dd77bb46f677c0bab4eb0272cdb79faad2f"},
+    {file = "reportlab-3.6.9-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0a7f2b7232c3ffb451b649d55c51a6dd0c8104ad7bbcfe355addf7619705e7fa"},
+    {file = "reportlab-3.6.9-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1967dbc9930917d75c39784712a137d432dbc2e5ca9e132a2453319c2619ccff"},
+    {file = "reportlab-3.6.9-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:32a5c5cd9625a40feec956f460355b4813bc3187c4f8dc9efd9f1a7f8f854e34"},
+    {file = "reportlab-3.6.9-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8cb82b6d14ad4bd915acacc8f114c6a7bab8b9b1503cabb930e433ebd320f90c"},
+    {file = "reportlab-3.6.9-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0e767cf4507ca8eed7dde8511f0889b0f19f160a2bdf9ef07742b2aaeceed9f2"},
+    {file = "reportlab-3.6.9-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a114761ad3ba6e0cdfacf14a8fb2cb8f5713b115ca1f0c17f3cd638d0a5b4bd"},
+    {file = "reportlab-3.6.9-cp37-cp37m-win32.whl", hash = "sha256:bbaab798991863952c593c0459dcb82e0aade837675593310e13cba2ce7fb45a"},
+    {file = "reportlab-3.6.9-cp37-cp37m-win_amd64.whl", hash = "sha256:ab1ffe4ec7be99ad348791116d436610afdc7a9a02a968997f31eaa62eaadad8"},
+    {file = "reportlab-3.6.9-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:496f42840604255ce06777bc129048b3bab966213bbac4f07fbe4ceb6a2e0482"},
+    {file = "reportlab-3.6.9-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a441afdfe31870b964bccde042d7172ed3c0077f519bbf3ed7d9d34c406b6b91"},
+    {file = "reportlab-3.6.9-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4fbe23ac870adf90544d2014c572dba6ec4d772afad6505bb91f171ddad12839"},
+    {file = "reportlab-3.6.9-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de724c78f4eb1363b1195dce85a2a8806e7509b69ac5c842a714d942ea534d63"},
+    {file = "reportlab-3.6.9-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:713574da534b6ce73d884f1574c35a565e438af4888fcc75e752f1de02e356a7"},
+    {file = "reportlab-3.6.9-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:193671445b4885128d8800d3e416eb2fa4fd89bafae08cc9889c0752fe5ad8c2"},
+    {file = "reportlab-3.6.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff0e014a3a3fe286c642ef51213c41684a156b9ed293ef205e8890bc1dbbfdc7"},
+    {file = "reportlab-3.6.9-cp38-cp38-win32.whl", hash = "sha256:23f5aed2d212096f2fe95d56f868d63f839a08bf7e389237e644d93981274222"},
+    {file = "reportlab-3.6.9-cp38-cp38-win_amd64.whl", hash = "sha256:09b2ca175129a34292399fc4c6a8b1739f6c5946368fcaa6f931d69385b2f720"},
+    {file = "reportlab-3.6.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cb21666fc9edec9716553bfcfe0c30d1bbbe2731910a96f07ec65652974e5f83"},
+    {file = "reportlab-3.6.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d927bf802bf53c1b5a3878a22e9be310900877984e7c436a3a99bdd19cfec4c3"},
+    {file = "reportlab-3.6.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce3a3aad287c8532f62223f5720b5504e31abe3dce52a27bd2a25f508c0d846e"},
+    {file = "reportlab-3.6.9-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9a5f63bc381c0f945402ef4c1bccc74a8eed28f6be6596704b1db7d82ec89fe"},
+    {file = "reportlab-3.6.9-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50f8e30f5410efc69b0217261b1f21912888da392a4549e79c7aaaac85f01bfa"},
+    {file = "reportlab-3.6.9-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15294435f786968bcdf1a7a67bcc23a136470b6ea26919497f5c76ff0f653041"},
+    {file = "reportlab-3.6.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9b5e9115363545a727d8ebe7e4b94f7cf6f26113261a269d50d88b8db4eb726"},
+    {file = "reportlab-3.6.9-cp39-cp39-win32.whl", hash = "sha256:e1fc1b1f5d9d1c2e18b5e60602dfa7854b2330ba0efc312ef605abf588abea9c"},
+    {file = "reportlab-3.6.9-cp39-cp39-win_amd64.whl", hash = "sha256:92a6613af9877e3ad2a1c5a16a122514a4f9f8d9b91b1f22e7fa0fa796617b36"},
+    {file = "reportlab-3.6.9.tar.gz", hash = "sha256:5d0cc3682456ad213150f6dbffe7d47eab737d809e517c316103376be548fb84"},
 ]
 rmcl = [
-    {file = "rmcl-0.4.0-py3-none-any.whl", hash = "sha256:d2fc5d183b213797f5886a6af52c5531c87b4e1770cc720e0e8ba5992e728473"},
-    {file = "rmcl-0.4.0.tar.gz", hash = "sha256:14bd199ff2c71269c3c1ac63d10932de6c68a250a454550940dae3f06b07527a"},
+    {file = "rmcl-0.4.2-py3-none-any.whl", hash = "sha256:09534999cd233e5e8db531e51aab87eee7d72aa5a2592bcf100e2d015110cf52"},
+    {file = "rmcl-0.4.2.tar.gz", hash = "sha256:58de4758e7e3cb7acbf28fcfa80f4155252afdfb191beb4ba4aa36961f66cc67"},
 ]
 rmfuse = []
 rmrl = [
@@ -524,15 +570,15 @@ sniffio = [
     {file = "sniffio-1.2.0.tar.gz", hash = "sha256:c4666eecec1d3f50960c6bdf61ab7bc350648da6c126e3cf6898d8cd4ddcd3de"},
 ]
 sortedcontainers = [
-    {file = "sortedcontainers-2.3.0-py2.py3-none-any.whl", hash = "sha256:37257a32add0a3ee490bb170b599e93095eed89a55da91fa9f48753ea12fd73f"},
-    {file = "sortedcontainers-2.3.0.tar.gz", hash = "sha256:59cc937650cf60d677c16775597c89a960658a09cf7c1a668f86e1e4464b10a1"},
+    {file = "sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0"},
+    {file = "sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88"},
 ]
 svglib = [
-    {file = "svglib-1.0.1.tar.gz", hash = "sha256:ff01593e8c07ea462d3742e1f4141bfa261cbd4400ceb25dfb8fec3508ad0e50"},
+    {file = "svglib-1.2.1.tar.gz", hash = "sha256:c77a0702fafd367c0fdca08ca1b7e1ee10058bde3bae252f49a3836e51e54519"},
 ]
 tinycss2 = [
-    {file = "tinycss2-1.1.0-py3-none-any.whl", hash = "sha256:0353b5234bcaee7b1ac7ca3dea7e02cd338a9f8dcbb8f2dcd32a5795ec1e5f9a"},
-    {file = "tinycss2-1.1.0.tar.gz", hash = "sha256:fbdcac3044d60eb85fdb2aa840ece43cf7dbe798e373e6ee0be545d4d134e18a"},
+    {file = "tinycss2-1.1.1-py3-none-any.whl", hash = "sha256:fe794ceaadfe3cf3e686b22155d0da5780dd0e273471a51846d0a02bc204fec8"},
+    {file = "tinycss2-1.1.1.tar.gz", hash = "sha256:b2e44dd8883c360c35dd0d1b5aad0b610e5156c2cb3b33434634e539ead9d8bf"},
 ]
 trio = [
     {file = "trio-0.18.0-py3-none-any.whl", hash = "sha256:a42af0634ba729cbfe8578be058750c6471dac19fbc7167ec6a3ca3f966fb424"},
@@ -543,6 +589,6 @@ webencodings = [
     {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"},
 ]
 xdg = [
-    {file = "xdg-5.0.1-py3-none-any.whl", hash = "sha256:9ddd6649bee9148f952305603a08474e3ef37c909eb19dfcb9737d54ebcc407e"},
-    {file = "xdg-5.0.1.tar.gz", hash = "sha256:97a27058caa61b4ce04e05471643caa6bc8c563d2638f92c0516ac50208146d8"},
+    {file = "xdg-5.1.1-py3-none-any.whl", hash = "sha256:865a7b56ed1d4cd2fce2ead1eddf97360843619757f473cd90b75f1817ca541d"},
+    {file = "xdg-5.1.1.tar.gz", hash = "sha256:aa619f26ccec6088b2a6018721d4ee86e602099b24644a90a8d3308a25acd06c"},
 ]
diff --git a/pkgs/tools/filesystems/securefs/default.nix b/pkgs/tools/filesystems/securefs/default.nix
index 44e547b01c24d..4d56f08b44262 100644
--- a/pkgs/tools/filesystems/securefs/default.nix
+++ b/pkgs/tools/filesystems/securefs/default.nix
@@ -20,6 +20,10 @@ stdenv.mkDerivation rec {
     ./add-macfuse-support.patch
   ];
 
+  postPatch = ''
+    sed -i -e '/TEST_SOURCES/d' CMakeLists.txt
+  '';
+
   nativeBuildInputs = [ cmake ];
   buildInputs = [ fuse ];
 
diff --git a/pkgs/tools/filesystems/squashfs-tools-ng/default.nix b/pkgs/tools/filesystems/squashfs-tools-ng/default.nix
index 1dbaee5ad14c0..b2c0ae45f4686 100644
--- a/pkgs/tools/filesystems/squashfs-tools-ng/default.nix
+++ b/pkgs/tools/filesystems/squashfs-tools-ng/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "squashfs-tools-ng";
-  version = "1.1.3";
+  version = "1.1.4";
 
   src = fetchurl {
     url = "https://infraroot.at/pub/squashfs/squashfs-tools-ng-${version}.tar.xz";
-    sha256 = "sha256-q84Pz5qK4cM1Lk5eh+Gwd/VEEdpRczLqg7XnzpSN1w0=";
+    sha256 = "06pnr3ilywqxch942l8xdg7k053xrqjkkziivx9h89bvy5j7hgvg";
   };
 
   nativeBuildInputs = [ doxygen graphviz pkg-config perl ];
diff --git a/pkgs/tools/filesystems/xfsprogs/default.nix b/pkgs/tools/filesystems/xfsprogs/default.nix
index 91225e6b97c68..e81414a2595f1 100644
--- a/pkgs/tools/filesystems/xfsprogs/default.nix
+++ b/pkgs/tools/filesystems/xfsprogs/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xfsprogs";
-  version = "5.14.2";
+  version = "5.15.0";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/fs/xfs/xfsprogs/${pname}-${version}.tar.xz";
-    sha256 = "sha256-AczT753yg3dTpdh2uNqE6pV9E9ekYbjEbor6TrCaq8g=";
+    sha256 = "0mjdwxr2hhqkfa8xg0v74v3n27sjvlwm90jqnmx0587b60wbzlhk";
   };
 
   outputs = [ "bin" "dev" "out" "doc" ];
diff --git a/pkgs/tools/filesystems/zkfuse/default.nix b/pkgs/tools/filesystems/zkfuse/default.nix
index 456444f3bf593..14938113a1e0e 100644
--- a/pkgs/tools/filesystems/zkfuse/default.nix
+++ b/pkgs/tools/filesystems/zkfuse/default.nix
@@ -25,6 +25,10 @@ stdenv.mkDerivation rec {
         -e 's,"zookeeper\.h",<zookeeper/zookeeper.h>,'
   '';
 
+  # c++17 (gcc-11's default) breaks the build as:
+  #   zkadapter.h:616:33: error: ISO C++17 does not allow dynamic exception specifications
+  NIX_CFLAGS_COMPILE = [ "-std=c++14" ];
+
   installPhase = ''
     mkdir -p $out/bin
     cp -v src/zkfuse $out/bin
diff --git a/pkgs/tools/filesystems/zpool-auto-expand-partitions/default.nix b/pkgs/tools/filesystems/zpool-auto-expand-partitions/default.nix
new file mode 100644
index 0000000000000..afafbca58baf1
--- /dev/null
+++ b/pkgs/tools/filesystems/zpool-auto-expand-partitions/default.nix
@@ -0,0 +1,46 @@
+{ rustPlatform
+, cloud-utils
+, fetchFromGitHub
+, lib
+, llvmPackages
+, pkg-config
+, util-linux
+, zfs
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "zpool-auto-expand-partitions";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "DeterminateSystems";
+    repo = "zpool-auto-expand-partitions";
+    rev = "v${version}";
+    hash = "sha256-LA6YO6vv7VCXwFfayQVxVR80niSCo89sG0hqh0wDEh8=";
+  };
+
+  cargoHash = "sha256-5v0fqp8aro+QD/f5VudMREc8RvKQapNAoArcCKMN1Sw=";
+
+  preBuild = ''
+    substituteInPlace src/grow.rs \
+      --replace '"growpart"' '"${cloud-utils}/bin/growpart"'
+    substituteInPlace src/lsblk.rs \
+      --replace '"lsblk"' '"${util-linux}/bin/lsblk"'
+  '';
+
+  nativeBuildInputs = [
+    pkg-config
+    rustPlatform.bindgenHook
+  ];
+
+  buildInputs = [
+    util-linux
+    zfs
+  ];
+
+  meta = with lib; {
+    description = "A tool that aims to expand all partitions in a specified zpool to fill the available space";
+    homepage = "https://github.com/DeterminateSystems/zpool-auto-expand-partitions";
+    license = licenses.asl20;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/tools/games/ajour/default.nix b/pkgs/tools/games/ajour/default.nix
index 49fef3edca9f4..11df34256d43e 100644
--- a/pkgs/tools/games/ajour/default.nix
+++ b/pkgs/tools/games/ajour/default.nix
@@ -1,4 +1,5 @@
-{ lib
+{ stdenv
+, lib
 , fetchFromGitHub
 , rustPlatform
 , autoPatchelfHook
@@ -79,6 +80,7 @@ in rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/casperstorm/ajour";
     changelog = "https://github.com/casperstorm/ajour/blob/master/CHANGELOG.md";
     license = licenses.mit;
+    broken = stdenv.isDarwin;
     maintainers = with maintainers; [ hexa ];
   };
 }
diff --git a/pkgs/tools/games/joystickwake/default.nix b/pkgs/tools/games/joystickwake/default.nix
index f8f962f6eef74..cd18b8b09df55 100644
--- a/pkgs/tools/games/joystickwake/default.nix
+++ b/pkgs/tools/games/joystickwake/default.nix
@@ -12,6 +12,11 @@ python3.pkgs.buildPythonApplication rec {
 
   propagatedBuildInputs = with python3.pkgs; [ pyudev xlib ];
 
+  postInstall = ''
+    # autostart file
+    ln -s $out/${python3.sitePackages}/etc $out/etc
+  '';
+
   meta = with lib; {
     description = "A joystick-aware screen waker";
     longDescription = ''
diff --git a/pkgs/tools/games/opentracker/default.nix b/pkgs/tools/games/opentracker/default.nix
index 6386d5daaf0e0..c6e3987b81c82 100644
--- a/pkgs/tools/games/opentracker/default.nix
+++ b/pkgs/tools/games/opentracker/default.nix
@@ -52,7 +52,7 @@ buildDotnetModule rec {
     xinput
   ];
 
-  autoPatchelfIgnoreMissingDeps = true; # Attempts to patchelf unneeded SOs
+  autoPatchelfIgnoreMissingDeps = [ "libc.musl-x86_64.so.1" ]; # Attempts to patchelf unneeded SOs
 
   meta = with lib; {
     description = "A tracking application for A Link to the Past Randomizer";
diff --git a/pkgs/tools/graphics/astc-encoder/default.nix b/pkgs/tools/graphics/astc-encoder/default.nix
index 2b55113b4f95d..e2af1494874b1 100644
--- a/pkgs/tools/graphics/astc-encoder/default.nix
+++ b/pkgs/tools/graphics/astc-encoder/default.nix
@@ -31,13 +31,13 @@ with rec {
 
 gccStdenv.mkDerivation rec {
   pname = "astc-encoder";
-  version = "3.5";
+  version = "3.6";
 
   src = fetchFromGitHub {
     owner = "ARM-software";
     repo = "astc-encoder";
     rev = version;
-    sha256 = "sha256-vsnU592UDQfBuh9XWzw12wANkQBoUxznpOD9efCUKA0=";
+    sha256 = "sha256-TzVO2xQOuE87h8j4UwkpnAaFwkvy5dZge8zDNR/mVf0=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -73,5 +73,6 @@ gccStdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.asl20;
     maintainers = with maintainers; [ dasisdormax ];
+    broken = !gccStdenv.is64bit;
   };
 }
diff --git a/pkgs/tools/graphics/cuneiform/default.nix b/pkgs/tools/graphics/cuneiform/default.nix
index 3d7608ac094cd..beaf2c1f213dc 100644
--- a/pkgs/tools/graphics/cuneiform/default.nix
+++ b/pkgs/tools/graphics/cuneiform/default.nix
@@ -14,6 +14,10 @@ stdenv.mkDerivation {
     url = "https://raw.githubusercontent.com/archlinux/svntogit-community/a2ec92f05de006b56d16ac6a6c370d54a554861a/cuneiform/trunk/build-fix.patch";
     sha256 = "19cmrlx4khn30qqrpyayn7bicg8yi0wpz1x1bvqqrbvr3kwldxyj";
   })
+  (fetchurl {
+    url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/app-text/cuneiform/files/cuneiform-1.1.0-gcc11.patch";
+    sha256 = "14bp2f4dvlgxnpdza1rgszhkbxhp6p7lhgnb1s7c1x7vwdrx0ri7";
+  })
   ];
 
   postPatch = ''
diff --git a/pkgs/tools/graphics/enblend-enfuse/default.nix b/pkgs/tools/graphics/enblend-enfuse/default.nix
index 5ca9704eee31c..5b3431a919fcb 100644
--- a/pkgs/tools/graphics/enblend-enfuse/default.nix
+++ b/pkgs/tools/graphics/enblend-enfuse/default.nix
@@ -1,26 +1,39 @@
-{ lib, stdenv, fetchurl
-, boost, freeglut, glew, gsl, lcms2, libpng, libtiff, libGLU, libGL, vigra
-, help2man, pkg-config, perl, texlive }:
+{ lib, stdenv, fetchzip
+, autoreconfHook
+, boost
+, freeglut
+, glew
+, gsl
+, lcms2
+, libpng
+, libtiff
+, libGLU
+, libGL
+, vigra
+, help2man
+, pkg-config
+, perl
+, texlive
+}:
 
 stdenv.mkDerivation rec {
   pname = "enblend-enfuse";
-  version = "4.2";
+  version = "unstable-2022-03-06";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/enblend/${pname}-${version}.tar.gz";
-    sha256 = "0j5x011ilalb47ssah50ag0a4phgh1b0wdgxdbbp1gcyjcjf60w7";
+  src = fetchzip {
+    url = "https://sourceforge.net/code-snapshots/hg/e/en/enblend/code/enblend-code-0f423c72e51872698fe2985ca3bd453961ffe4e0.zip";
+    sha256 = "sha256-0gCUSdg3HR3YeIbOByEBCZh2zGlYur6DeCOzUM53fdc=";
+    stripRoot = true;
   };
 
   buildInputs = [ boost freeglut glew gsl lcms2 libpng libtiff libGLU libGL vigra ];
 
-  nativeBuildInputs = [ help2man perl pkg-config texlive.combined.scheme-small ];
+  nativeBuildInputs = [ autoreconfHook help2man perl pkg-config texlive.combined.scheme-small ];
 
   preConfigure = ''
     patchShebangs src/embrace
   '';
 
-  enableParallelBuilding = true;
-
   meta = with lib; {
     homepage = "http://enblend.sourceforge.net/";
     description = "Blends away the seams in a panoramic image mosaic using a multiresolution spline";
diff --git a/pkgs/tools/graphics/imageworsener/default.nix b/pkgs/tools/graphics/imageworsener/default.nix
index 126bcfefc80de..ab0a4387162dc 100644
--- a/pkgs/tools/graphics/imageworsener/default.nix
+++ b/pkgs/tools/graphics/imageworsener/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/jsummers/${pname}/blob/${version}/changelog.txt";
     license = licenses.mit;
     maintainers = with maintainers; [ emily smitop ];
+    mainProgram = "imagew";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/graphics/pngcheck/default.nix b/pkgs/tools/graphics/pngcheck/default.nix
index a4680dff6f641..cb415a2c53ef5 100644
--- a/pkgs/tools/graphics/pngcheck/default.nix
+++ b/pkgs/tools/graphics/pngcheck/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     homepage = "http://pmt.sourceforge.net/pngcrush";
     description = "Verifies the integrity of PNG, JNG and MNG files";
     license = licenses.free;
-    platforms = with platforms; [ unix ];
+    platforms = platforms.unix;
     maintainers = with maintainers; [ starcraft66 ];
   };
 }
diff --git a/pkgs/tools/graphics/pngtools/default.nix b/pkgs/tools/graphics/pngtools/default.nix
new file mode 100644
index 0000000000000..563c8af50ae8c
--- /dev/null
+++ b/pkgs/tools/graphics/pngtools/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, libpng12, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+  pname = "pngtools";
+  version = "unstable-2022-03-14";
+
+  src = fetchFromGitHub {
+    owner = "mikalstill";
+    repo = "pngtools";
+    rev = "1ccca3a0f3f6882661bbafbfb62feb774ca195d1";
+    sha256 = "sha256-W1XofOVTyfA7IbxOnTkWdOOZ00gZ4e0GOYl7nMtLIJk=";
+  };
+
+  buildInputs = [ libpng12 ];
+
+  meta = with lib; {
+    homepage = "https://github.com/mikalstill/pngtools";
+    description = "PNG manipulation tools";
+    maintainers = with maintainers; [ zendo ];
+    license = licenses.gpl2Only;
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/graphics/quirc/0001-dont-build-demos.patch b/pkgs/tools/graphics/quirc/0001-dont-build-demos.patch
new file mode 100644
index 0000000000000..9ecb6dda4e19e
--- /dev/null
+++ b/pkgs/tools/graphics/quirc/0001-dont-build-demos.patch
@@ -0,0 +1,29 @@
+diff --git a/Makefile b/Makefile
+index 2d5b745..ecef988 100644
+--- a/Makefile
++++ b/Makefile
+@@ -37,7 +37,7 @@ DEMO_UTIL_OBJ = \
+ 
+ OPENCV_CFLAGS != pkg-config --cflags opencv4
+ OPENCV_LIBS != pkg-config --libs opencv4
+-QUIRC_CXXFLAGS = $(QUIRC_CFLAGS) $(OPENCV_CFLAGS) --std=c++17
++QUIRC_CXXFLAGS = $(QUIRC_CFLAGS) --std=c++17
+ 
+ .PHONY: all v4l sdl opencv install uninstall clean
+ 
+@@ -85,14 +85,11 @@ libquirc.so.$(LIB_VERSION): $(LIB_OBJ)
+ .cxx.o:
+ 	$(CXX) $(QUIRC_CXXFLAGS) -o $@ -c $<
+ 
+-install: libquirc.a libquirc.so.$(LIB_VERSION) quirc-demo quirc-scanner
++install: libquirc.a libquirc.so.$(LIB_VERSION)
+ 	install -o root -g root -m 0644 lib/quirc.h $(DESTDIR)$(PREFIX)/include
+ 	install -o root -g root -m 0644 libquirc.a $(DESTDIR)$(PREFIX)/lib
+ 	install -o root -g root -m 0755 libquirc.so.$(LIB_VERSION) \
+ 		$(DESTDIR)$(PREFIX)/lib
+-	install -o root -g root -m 0755 quirc-demo $(DESTDIR)$(PREFIX)/bin
+-	# install -o root -g root -m 0755 quirc-demo-opencv $(DESTDIR)$(PREFIX)/bin
+-	install -o root -g root -m 0755 quirc-scanner $(DESTDIR)$(PREFIX)/bin
+ 
+ uninstall:
+ 	rm -f $(DESTDIR)$(PREFIX)/include/quirc.h
\ No newline at end of file
diff --git a/pkgs/tools/graphics/quirc/default.nix b/pkgs/tools/graphics/quirc/default.nix
index dec2a1020c893..6ad0262da3a13 100644
--- a/pkgs/tools/graphics/quirc/default.nix
+++ b/pkgs/tools/graphics/quirc/default.nix
@@ -1,24 +1,33 @@
-{ lib, stdenv, fetchFromGitHub
-, SDL_gfx, SDL, libjpeg, libpng, pkg-config
-}:
+{ lib, stdenv, fetchFromGitHub, SDL_gfx, SDL, libjpeg, libpng, opencv
+, pkg-config }:
 
 stdenv.mkDerivation {
   pname = "quirc";
-  version = "2020-04-16";
+  version = "2021-10-08";
 
   src = fetchFromGitHub {
     owner = "dlbeer";
     repo = "quirc";
-    rev = "ed455904f35270888bc902b9e8c0c9b3184a8302";
-    sha256 = "1kqqvcnxcaxdgls9sibw5pqjz3g1gys2v64i4kfqp8wfcgd9771q";
+    rev = "516d91a94d880ca1006fc1d57f318bdff8411f0d";
+    sha256 = "0jkaz5frm6jr9bxyfympvzh180nczrfvvb3z3qhk21djlas6nr5f";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ SDL SDL_gfx libjpeg libpng ];
+  buildInputs = [ SDL SDL_gfx libjpeg libpng opencv ];
 
   makeFlags = [ "PREFIX=$(out)" ];
   NIX_CFLAGS_COMPILE = "-I${SDL.dev}/include/SDL -I${SDL_gfx}/include/SDL";
 
+  # Disable building of linux-only demos on darwin systems
+  patches = lib.optionals stdenv.isDarwin [ ./0001-dont-build-demos.patch ];
+
+  buildPhase = lib.optionalString stdenv.isDarwin ''
+    runHook preBuild
+    make libquirc.so
+    make qrtest
+    runHook postBuild
+  '';
+
   configurePhase = ''
     runHook preConfigure
 
@@ -27,6 +36,7 @@ stdenv.mkDerivation {
 
     runHook postConfigure
   '';
+
   preInstall = ''
     mkdir -p "$out"/{bin,lib,include}
 
@@ -37,7 +47,7 @@ stdenv.mkDerivation {
   meta = {
     description = "A small QR code decoding library";
     license = lib.licenses.isc;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    maintainers = [ lib.maintainers.raskin ];
+    platforms = lib.platforms.linux ++ [ "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/pkgs/tools/graphics/sic-image-cli/default.nix b/pkgs/tools/graphics/sic-image-cli/default.nix
index 168816b886af9..1f7785aa97342 100644
--- a/pkgs/tools/graphics/sic-image-cli/default.nix
+++ b/pkgs/tools/graphics/sic-image-cli/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sic-image-cli";
-  version = "0.19.1";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "foresterre";
     repo = "sic";
     rev = "v${version}";
-    sha256 = "sha256-lFb1roQd6CK/9fKWO4SC0CbOLZglB+pS9ZqTdGRHk0Y=";
+    sha256 = "sha256-KoDX/d457dTHsmz8VTPhfF2MiB5vZzLFKG46/L351SQ=";
   };
 
-  cargoSha256 = "sha256-9m8gdbrVv+6tGMg1GTUPy4eRqRQa9zy9BZwfZqNqSS0=";
+  cargoSha256 = "sha256-sKEZhJivLbos0KLzPCEnGgTCgbyWSIOvHMhoC1IaJRo=";
 
   nativeBuildInputs = [ installShellFiles nasm ];
 
diff --git a/pkgs/tools/graphics/snapdragon-profiler/default.nix b/pkgs/tools/graphics/snapdragon-profiler/default.nix
index 7486a885a5481..caf187cb4c1ff 100644
--- a/pkgs/tools/graphics/snapdragon-profiler/default.nix
+++ b/pkgs/tools/graphics/snapdragon-profiler/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
       --suffix PATH : ${lib.makeBinPath [ jre androidenv.androidPkgs_9_0.platform-tools coreutils ]} \
       --prefix MONO_GAC_PREFIX : ${gtk-sharp-2_0} \
       --suffix LD_LIBRARY_PATH : $(echo $NIX_LDFLAGS | sed 's/ -L/:/g;s/ -rpath /:/g;s/-rpath //') \
-      --run "cd $out/lib/snapdragon-profiler" # Fixes themes not loading correctly
+      --chdir "$out/lib/snapdragon-profiler" # Fixes themes not loading correctly
 
     wrestool -x -t 14 SnapdragonProfiler.exe > snapdragon-profiler.ico
     icotool -x -i 1 -o $out/share/icons/hicolor/16x16/apps/snapdragon-profiler.png snapdragon-profiler.ico
diff --git a/pkgs/tools/graphics/structure-synth/default.nix b/pkgs/tools/graphics/structure-synth/default.nix
index ab32657236abc..ce97f1c703488 100644
--- a/pkgs/tools/graphics/structure-synth/default.nix
+++ b/pkgs/tools/graphics/structure-synth/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   # either $HOME or $PWD - so help it along by moving $PWD to 'share',
   # where we just copied those two directories:
   preFixup = ''
-    wrapProgram "$out/bin/structure-synth" --run "cd $out/share"
+    wrapProgram "$out/bin/structure-synth" --chdir "$out/share"
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/inputmethods/droidmote/default.nix b/pkgs/tools/inputmethods/droidmote/default.nix
new file mode 100644
index 0000000000000..24c2bcee8cdcc
--- /dev/null
+++ b/pkgs/tools/inputmethods/droidmote/default.nix
@@ -0,0 +1,61 @@
+{ lib, stdenv, fetchurl, autoPatchelfHook }:
+
+let
+  srcs = {
+    x86_64-linux = fetchurl {
+      urls = [
+        "https://videomap.it/script/dms-ubuntu-x64"
+        "https://archive.org/download/videomap/dms-ubuntu-x64"
+      ];
+      sha256 = "1x7pp6k27lr206a8j2pn0wf4wjb0zi28s0g1g3rb08jmr8fh1jnh";
+    };
+    i686-linux = fetchurl {
+      urls = [
+        "https://videomap.it/script/dms-ubuntu-x32"
+        "https://archive.org/download/videomap/dms-ubuntu-x32"
+      ];
+      sha256 = "1d62d7jz50wzk5rqqm3xab66jdzi9i1j6mwxf7r7nsgm6j5zz8r4";
+    };
+    aarch64-linux = fetchurl {
+      urls = [
+        "https://videomap.it/script/dms-ubuntu-arm64"
+        "https://archive.org/download/videomap/dms-ubuntu-arm64"
+      ];
+      sha256 = "1l1x7iqbxn6zsh3d37yb5x15qsxlwy3cz8g2g8vnzkgaafw9vva0";
+    };
+    armv7l-linux = fetchurl {
+      urls = [
+        "https://videomap.it/script/dms-ubuntu-arm"
+        "https://archive.org/download/videomap/dms-ubuntu-arm"
+      ];
+      sha256 = "1i7q9mylzvbsfydv4xf83nyqkh0nh01612jrqm93q1w6d0k2zvcd";
+    };
+  };
+in
+stdenv.mkDerivation rec {
+  pname = "droidmote";
+  version = "3.0.6";
+
+  src = srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
+  dontUnpack = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [ autoPatchelfHook ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m755 -D $src $out/bin/droidmote
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Control your computer from your couch";
+    homepage = "https://www.videomap.it/";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ atila ];
+    platforms = lib.attrNames srcs;
+  };
+}
diff --git a/pkgs/tools/inputmethods/fcitx5/default.nix b/pkgs/tools/inputmethods/fcitx5/default.nix
index 123d634d65f77..c235a4129482b 100644
--- a/pkgs/tools/inputmethods/fcitx5/default.nix
+++ b/pkgs/tools/inputmethods/fcitx5/default.nix
@@ -5,7 +5,7 @@
 , cmake
 , extra-cmake-modules
 , cairo
-, cldr-emoji-annotation
+, cldr-annotations
 , pango
 , fribidi
 , fmt
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
     gdk-pixbuf
     wayland
     wayland-protocols
-    cldr-emoji-annotation
+    cldr-annotations
     json_c
     libGL
     libevent
@@ -90,6 +90,8 @@ stdenv.mkDerivation rec {
     libxkbfile
   ];
 
+  cmakeFlags = [ "-DCLDR_DIR=${cldr-annotations}/share/unicode/cldr" ];
+
   passthru.updateScript = ./update.py;
 
   meta = with lib; {
diff --git a/pkgs/tools/inputmethods/ibus/default.nix b/pkgs/tools/inputmethods/ibus/default.nix
index 4ca1e62bfb8af..a791e90a93c43 100644
--- a/pkgs/tools/inputmethods/ibus/default.nix
+++ b/pkgs/tools/inputmethods/ibus/default.nix
@@ -27,7 +27,6 @@
 , python3
 , json-glib
 , libnotify ? null
-, enablePython2Library ? false
 , enableUI ? true
 , withWayland ? false
 , libxkbcommon ? null
@@ -100,8 +99,6 @@ stdenv.mkDerivation rec {
     (enableFeature (dconf != null) "dconf")
     (enableFeature (libnotify != null) "libnotify")
     (enableFeature withWayland "wayland")
-    (enableFeature enablePython2Library "python-library")
-    (enableFeature enablePython2Library "python2") # XXX: python2 library does not work anyway
     (enableFeature enableUI "ui")
     "--enable-gtk4"
     "--enable-install-tests"
diff --git a/pkgs/tools/inputmethods/libinput-gestures/0001-hardcode-name.patch b/pkgs/tools/inputmethods/libinput-gestures/0001-hardcode-name.patch
index 4655879149d23..f811343ee79be 100644
--- a/pkgs/tools/inputmethods/libinput-gestures/0001-hardcode-name.patch
+++ b/pkgs/tools/inputmethods/libinput-gestures/0001-hardcode-name.patch
@@ -1,13 +1,13 @@
 diff --git a/libinput-gestures b/libinput-gestures
-index 66479b6..aca94ac 100755
+index 78c7c28..da04007 100755
 --- a/libinput-gestures
 +++ b/libinput-gestures
-@@ -6,7 +6,7 @@ from collections import OrderedDict
- from pathlib import Path
- from distutils.version import LooseVersion as Version
- 
--PROG = Path(sys.argv[0]).stem
-+PROG = "libinput-gestures"
- 
+@@ -27,7 +27,7 @@ except ImportError:
+
+ session_locked = False
+
+-PROGPATH = Path(sys.argv[0])
++PROGPATH = Path("libinput-gestures")
+ PROGNAME = PROGPATH.stem
+
  # Conf file containing gesture commands.
- # Search first for user file then system file.
diff --git a/pkgs/tools/inputmethods/libinput-gestures/0002-paths.patch b/pkgs/tools/inputmethods/libinput-gestures/0002-paths.patch
index 407450c8bccd7..a507625406f28 100644
--- a/pkgs/tools/inputmethods/libinput-gestures/0002-paths.patch
+++ b/pkgs/tools/inputmethods/libinput-gestures/0002-paths.patch
@@ -1,45 +1,34 @@
 diff --git a/libinput-gestures b/libinput-gestures
-index aca94ac..c2f03ca 100755
+index 78c7c28..1a2c965 100755
 --- a/libinput-gestures
 +++ b/libinput-gestures
-@@ -77,7 +77,7 @@ def get_libinput_vers():
+@@ -87,11 +87,11 @@ def get_libinput_vers():
      'Return the libinput installed version number string'
      # Try to use newer libinput interface then fall back to old
      # (depreciated) interface.
 -    res = run(('libinput', '--version'), check=False)
 +    res = run(('@libinput@', '--version'), check=False)
-     return res.strip() if res else \
-             run(('libinput-list-devices', '--version'), check=False)
- 
-@@ -87,8 +87,8 @@ if not libvers:
-     sys.exit('libinput helper tools do not seem to be installed?')
- 
- if Version(libvers) >= Version('1.8'):
--    cmd_debug_events = 'libinput debug-events'
--    cmd_list_devices = 'libinput list-devices'
-+    cmd_debug_events = '@libinput@ debug-events'
-+    cmd_list_devices = '@libinput@ list-devices'
- else:
-     cmd_debug_events = 'libinput-debug-events'
-     cmd_list_devices = 'libinput-list-devices'
-@@ -199,7 +199,7 @@ class COMMAND_internal(COMMAND):
- 
-     def run(self):
-         'Get list of current workspaces and select next one'
--        stdout = run(('wmctrl', '-d'), check=False)
-+        stdout = run(('@wmctrl@', '-d'), check=False)
-         if not stdout:
-             # This command can fail on GNOME when you have only a single
-             # dynamic workspace using Xorg (probably a GNOME bug) so let's
-@@ -233,7 +233,7 @@ class COMMAND_internal(COMMAND):
- 
-         # Switch to desired workspace
-         if index >= minindex and index < maxindex:
--            run(('wmctrl', '-s', str(index)))
-+            run(('@wmctrl@', '-s', str(index)))
- 
- # Table of gesture handlers
- handlers = OrderedDict()
--- 
-2.19.1
+     if res:
+         return res.strip(), True
 
+-    res = run(('libinput-list-devices', '--version'), check=False)
++    res = run(('@libinput-list-devices@', '--version'), check=False)
+     return res and res.strip(), False
+
+ def get_devices_list(cmd_list_devices, device_list):
+@@ -694,11 +694,11 @@ def main():
+         sys.exit('libinput helper tools do not seem to be installed?')
+
+     if has_subcmd:
+-        cmd_debug_events = 'libinput debug-events'
+-        cmd_list_devices = 'libinput list-devices'
++        cmd_debug_events = '@libinput@ debug-events'
++        cmd_list_devices = '@libinput@ list-devices'
+     else:
+-        cmd_debug_events = 'libinput-debug-events'
+-        cmd_list_devices = 'libinput-list-devices'
++        cmd_debug_events = '@libinput@-debug-events'
++        cmd_list_devices = '@libinput@-list-devices'
+
+     if args.verbose:
+         # Output various info/version info
diff --git a/pkgs/tools/inputmethods/libinput-gestures/default.nix b/pkgs/tools/inputmethods/libinput-gestures/default.nix
index 1d0ea40e34f41..52ef02b24f95a 100644
--- a/pkgs/tools/inputmethods/libinput-gestures/default.nix
+++ b/pkgs/tools/inputmethods/libinput-gestures/default.nix
@@ -5,13 +5,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "libinput-gestures";
-  version = "2.39";
+  version = "2.72";
 
   src = fetchFromGitHub {
     owner = "bulletmark";
     repo = "libinput-gestures";
     rev = version;
-    sha256 = "0bzyi55yhr9wyar9mnd09cr6pi88jkkp0f9lndm0a9jwi1xr4bdf";
+    sha256 = "sha256-si94aKyiJtRwg+JS0PazqRjGrA/zUwN8CCIKI5KLJNw=";
   };
   patches = [
     ./0001-hardcode-name.patch
diff --git a/pkgs/tools/inputmethods/lisgd/default.nix b/pkgs/tools/inputmethods/lisgd/default.nix
index 368f1efa75938..3592f2373b269 100644
--- a/pkgs/tools/inputmethods/lisgd/default.nix
+++ b/pkgs/tools/inputmethods/lisgd/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lisgd";
-  version = "0.3.2";
+  version = "0.3.3";
 
   src = fetchFromSourcehut {
     owner = "~mil";
     repo = "lisgd";
     rev = version;
-    sha256 = "sha256-yE2CUv1XDvo8fW0bLS1O2oxgDUu4drCO3jFpxPgAYKU=";
+    sha256 = "sha256-zcDxR2fKsjuX+vxjhr5UcqEsiNM+zWd2SBaA6Xly3AI=";
   };
 
   inherit patches;
diff --git a/pkgs/tools/misc/addlicense/default.nix b/pkgs/tools/misc/addlicense/default.nix
new file mode 100644
index 0000000000000..2a72f53d671be
--- /dev/null
+++ b/pkgs/tools/misc/addlicense/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "addlicense";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "addlicense";
+    rev = "v${version}";
+    sha256 = "sha256-Nv7Az3TDtd1P/QWjH92otSV9rIrc2l/mTbGUXhODi7Q=";
+  };
+
+  vendorSha256 = "sha256-2mncc21ecpv17Xp8PA9GIodoaCxNBacbbya/shU8T9Y=";
+
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    description = "Ensures source code files have copyright license headers by scanning directory patterns recursively";
+    homepage = "https://github.com/google/addlicense";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/tools/misc/adrgen/default.nix b/pkgs/tools/misc/adrgen/default.nix
index 08fec93b5871f..83117f403506d 100644
--- a/pkgs/tools/misc/adrgen/default.nix
+++ b/pkgs/tools/misc/adrgen/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
-, testVersion
+, testers
 , adrgen
 }:
 
@@ -18,7 +18,7 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-aDtUD+KKKSE0TpSi4+6HXSBMqF/TROZZhT0ox3a8Idk=";
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = adrgen;
     command = "adrgen version";
     version = "v${version}";
diff --git a/pkgs/tools/misc/apkeep/default.nix b/pkgs/tools/misc/apkeep/default.nix
index ef7699ccf2844..f7d3daf9fbcc5 100644
--- a/pkgs/tools/misc/apkeep/default.nix
+++ b/pkgs/tools/misc/apkeep/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "apkeep";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "14vm3b2gbmn9pil0aagwchn4kyvi9311id6qv4a376qfb6r1aybf";
+    sha256 = "sha256-kwJ4/jkVVgem5Lb+uFDFPk4/6WWSWJs+SQDSyKkhG/8=";
   };
 
-  cargoSha256 = "0i8wzc58ji317kjdw3ls1908z4bqlh1cgjph0fxsvs5i552qjkzp";
+  cargoSha256 = "sha256-kJ81kY2EmkH3yu8xL1aPxXPMhkDsGKWo0RWn1Ih7z2k=";
 
   prePatch = ''
     rm .cargo/config.toml
diff --git a/pkgs/tools/misc/arch-install-scripts/default.nix b/pkgs/tools/misc/arch-install-scripts/default.nix
index 0df8ae1e7337a..c89e575e8eb0d 100644
--- a/pkgs/tools/misc/arch-install-scripts/default.nix
+++ b/pkgs/tools/misc/arch-install-scripts/default.nix
@@ -1,16 +1,15 @@
 { lib
-, resholvePackage
+, resholve
 , fetchFromGitHub
 , asciidoc
 , bash
 , coreutils
 , gawk
 , gnum4
-, testVersion
 , util-linux
 }:
 
-resholvePackage rec {
+resholve.mkDerivation rec {
   pname = "arch-install-scripts";
   version = "24";
 
@@ -43,7 +42,7 @@ resholvePackage rec {
       # the only *required* arguments are the 3 below
 
       # Specify 1 or more $out-relative script paths. Unlike many
-      # builders, resholvePackage modifies the output files during
+      # builders, resholve.mkDerivation modifies the output files during
       # fixup (to correctly resolve in-package sourcing).
       scripts = [ "bin/arch-chroot" "bin/genfstab" "bin/pacstrap" ];
 
diff --git a/pkgs/tools/misc/archi/default.nix b/pkgs/tools/misc/archi/default.nix
index d0beb7d40d75f..e6f16b93f7d2f 100644
--- a/pkgs/tools/misc/archi/default.nix
+++ b/pkgs/tools/misc/archi/default.nix
@@ -30,9 +30,8 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [
-    autoPatchelfHook
     makeWrapper
-  ];
+  ] ++ lib.optional stdenv.hostPlatform.isLinux autoPatchelfHook;
 
   installPhase =
     if stdenv.hostPlatform.system == "x86_64-linux" then
diff --git a/pkgs/tools/misc/asdf-vm/default.nix b/pkgs/tools/misc/asdf-vm/default.nix
index 6b217d75d6963..e492e4a6f6da5 100644
--- a/pkgs/tools/misc/asdf-vm/default.nix
+++ b/pkgs/tools/misc/asdf-vm/default.nix
@@ -37,13 +37,13 @@ ${asdfReshimFile}
   '';
 in stdenv.mkDerivation rec {
   pname = "asdf-vm";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "asdf-vm";
     repo = "asdf";
     rev = "v${version}";
-    sha256 = "sha256-uvf3WVflUdh+M90zMDVFVAXi7TZytc8oZ/DexJqpNV4=";
+    sha256 = "sha256-yWQ74tVYBZszuuE3PaDB758kCjKO6oBOG/Z+T3+82po=";
   };
 
   nativeBuildInputs = [
@@ -80,6 +80,7 @@ in stdenv.mkDerivation rec {
     homepage = "https://asdf-vm.com/";
     license = licenses.mit;
     maintainers = [ maintainers.c4605 ];
+    mainProgram = "asdf";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/aspcud/default.nix b/pkgs/tools/misc/aspcud/default.nix
index ef1b6a5a4ca5b..12cc6572abcb9 100644
--- a/pkgs/tools/misc/aspcud/default.nix
+++ b/pkgs/tools/misc/aspcud/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , fetchFromGitHub
 , boost
+, catch2
 , clasp
 , cmake
 , gringo
@@ -19,6 +20,10 @@ stdenv.mkDerivation rec {
     hash = "sha256-d04GPMoz6PMGq6iiul0zT1C9Mljdl9uJJ2C8MIwcmaw=";
   };
 
+  postPatch = ''
+    cp ${catch2}/include/catch2/catch.hpp libcudf/tests/catch.hpp
+  '';
+
   nativeBuildInputs = [ cmake ];
   buildInputs = [ boost clasp gringo re2c ];
 
@@ -28,6 +33,8 @@ stdenv.mkDerivation rec {
     "-DASPCUD_CLASP_PATH=${clasp}/bin/clasp"
   ];
 
+  doCheck = true;
+
   meta = with lib; {
     description = "Solver for package problems in CUDF format using ASP";
     homepage = "https://potassco.org/aspcud/";
diff --git a/pkgs/tools/misc/atuin/default.nix b/pkgs/tools/misc/atuin/default.nix
index 3817118118752..907276f30bed9 100644
--- a/pkgs/tools/misc/atuin/default.nix
+++ b/pkgs/tools/misc/atuin/default.nix
@@ -10,37 +10,32 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "atuin";
-  version = "0.8.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "ellie";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-I/ZDaOAiHdWOkmf+jIWWxZ3C25UHsl6MB7mCRLADFNs=";
+    sha256 = "sha256-TrIBNvK8Kyp0FgLZ3Q1n/Dl4V/yateP2v2ei5IIpi44=";
   };
 
-  cargoSha256 = "sha256-KMss6Mpn4LHnkhtJyRea+D7mKItBK4lqq9syFEmCiFo=";
+  cargoSha256 = "sha256-42eMvUbH7eEvTcEfLtDRNy6psbdQXDsZQbpyqZFjF4c=";
 
   nativeBuildInputs = [ installShellFiles ];
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security SystemConfiguration ];
 
   postInstall = ''
-    HOME=$(mktemp -d)
-    for shell in bash fish zsh; do
-      $out/bin/atuin gen-completions -s $shell -o .
-    done
-
     installShellCompletion --cmd atuin \
-      --bash atuin.bash \
-      --fish atuin.fish \
-      --zsh _atuin
+      --bash <($out/bin/atuin gen-completions -s bash) \
+      --fish <($out/bin/atuin gen-completions -s fish) \
+      --zsh <($out/bin/atuin gen-completions -s zsh)
   '';
 
   meta = with lib; {
     description = "Replacement for a shell history which records additional commands context with optional encrypted synchronization between machines";
     homepage = "https://github.com/ellie/atuin";
     license = licenses.mit;
-    maintainers = with maintainers; [ onsails SuperSandro2000 ];
+    maintainers = with maintainers; [ onsails SuperSandro2000 sciencentistguy ];
   };
 }
diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix
index 9961416e0d3d7..9160790bce315 100644
--- a/pkgs/tools/misc/broot/default.nix
+++ b/pkgs/tools/misc/broot/default.nix
@@ -15,14 +15,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "broot";
-  version = "1.9.1";
+  version = "1.11.1";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-oIStnwbfp48QHkSlXgveH9AM2fmmrrSmwdvXxvbV/tg=";
+    sha256 = "sha256-MbyfdzeBo12/7M1F/J7upBQGB/tv1M4sZ+90i/vcLjs=";
   };
 
-  cargoHash = "sha256-DOPFVa2w+ldG7fnundBGb+jM0t2E2jS0nJIIzekD2QE=";
+  cargoHash = "sha256-GDU7tL+NDKk46DYnZajcAoPMZxGCrg/IS4xhSZrB6Cs=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/tools/misc/calamares/default.nix b/pkgs/tools/misc/calamares/default.nix
index 08c7ab17e52da..9112041502127 100644
--- a/pkgs/tools/misc/calamares/default.nix
+++ b/pkgs/tools/misc/calamares/default.nix
@@ -6,12 +6,12 @@
 
 mkDerivation rec {
   pname = "calamares";
-  version = "3.2.54";
+  version = "3.2.55";
 
   # release including submodule
   src = fetchurl {
     url = "https://github.com/${pname}/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-TfdLbDsjjPC/8BoEVm4mXePxQ8KX+9jgwKqUR1lcyOk=";
+    sha256 = "sha256-1xf02rjy6+83zbU2yxGUGjcIGJfYS8ryqi4CBzrh7kI=";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules ];
diff --git a/pkgs/tools/misc/chezmoi/default.nix b/pkgs/tools/misc/chezmoi/default.nix
index 35e3032f6131a..00d0ef3361f85 100644
--- a/pkgs/tools/misc/chezmoi/default.nix
+++ b/pkgs/tools/misc/chezmoi/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "chezmoi";
-  version = "2.15.0";
+  version = "2.15.1";
 
   src = fetchFromGitHub {
     owner = "twpayne";
     repo = "chezmoi";
     rev = "v${version}";
-    sha256 = "sha256-P4ELrDcN6kIpIsKgZJppJv+y+ofnEz7McmGvCijnfQA=";
+    sha256 = "sha256-spIdY28ZC/+6bwWWwKW7Iu2E2eKD7MeRuxEAMN2e3H8=";
   };
 
   vendorSha256 = "sha256-D27a107gjHK4NYkJhZDd0SvhUmmRSl3DX519nglAoPo=";
diff --git a/pkgs/tools/misc/cht.sh/default.nix b/pkgs/tools/misc/cht.sh/default.nix
index 08769893272ae..0364065be24c6 100644
--- a/pkgs/tools/misc/cht.sh/default.nix
+++ b/pkgs/tools/misc/cht.sh/default.nix
@@ -10,15 +10,15 @@
 
 stdenv.mkDerivation {
   pname = "cht.sh";
-  version = "unstable-2022-01-01";
+  version = "unstable-2022-04-17";
 
   nativeBuildInputs = [ makeWrapper ];
 
   src = fetchFromGitHub {
     owner = "chubin";
     repo = "cheat.sh";
-    rev = "46d1a5f73c6b88da15d809154245dbf234e9479e";
-    sha256 = "6uEbxkkNV5EGhiCSoWJgfRUUqUS3OFTVOZFlVyMp/x8=";
+    rev = "7f769d6f3697541e55fd3ea9b71f190296529e48";
+    sha256 = "+V3q71neW9X0JPJHqvNGopvIJfUv0VD9GKkz7YqN6Eo=";
   };
 
   # Fix ".cht.sh-wrapped" in the help message
diff --git a/pkgs/tools/misc/cloud-sql-proxy/default.nix b/pkgs/tools/misc/cloud-sql-proxy/default.nix
index a60624a904b81..6f2cf06a433e5 100644
--- a/pkgs/tools/misc/cloud-sql-proxy/default.nix
+++ b/pkgs/tools/misc/cloud-sql-proxy/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "cloud-sql-proxy";
-  version = "1.29.0";
+  version = "1.30.0";
 
   src = fetchFromGitHub {
     owner = "GoogleCloudPlatform";
     repo = "cloudsql-proxy";
     rev = "v${version}";
-    sha256 = "sha256-V/dNS/tbPPkVpgaCkGa5pfH/vj8y7mO9OQDLhgWbRCE=";
+    sha256 = "sha256-EbUIzAKMqCLsz8rBMWCvw00j6VX2ZYEMtNsMEx30kBU=";
   };
 
   subPackages = [ "cmd/cloud_sql_proxy" ];
 
-  vendorSha256 = "sha256-6td7rDye0sBUhDn9YARvdCgdfS/8z+VY1wYcEcUzHBs=";
+  vendorSha256 = "sha256-yxqLGDqdu9vX3ykHq7Kzf8oBH1ydltZkiWNWWM2l0Aw=";
 
   checkFlags = [ "-short" ];
 
diff --git a/pkgs/tools/misc/cod/default.nix b/pkgs/tools/misc/cod/default.nix
index 741487c668772..3c76e68b8947e 100644
--- a/pkgs/tools/misc/cod/default.nix
+++ b/pkgs/tools/misc/cod/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildGoModule }:
+{ lib, fetchFromGitHub, buildGoModule, python3 }:
 
 buildGoModule rec {
   pname = "cod";
@@ -15,7 +15,16 @@ buildGoModule rec {
 
   ldflags = [ "-s" "-w" "-X main.GitSha=${src.rev}" ];
 
-  doCheck = false;
+  checkInputs = [ python3 ];
+
+  preCheck = ''
+    pushd test/binaries/
+    for f in *.py; do
+      patchShebangs ''$f
+    done
+    popd
+    export COD_TEST_BINARY="''${NIX_BUILD_TOP}/go/bin/cod"
+  '';
 
   meta = with lib; {
     description = "Tool for generating Bash/Fish/Zsh autocompletions based on `--help` output";
diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix
index befe53b9d907a..da60a80f77fca 100644
--- a/pkgs/tools/misc/coreutils/default.nix
+++ b/pkgs/tools/misc/coreutils/default.nix
@@ -82,6 +82,7 @@ stdenv.mkDerivation (rec {
   '');
 
   outputs = [ "out" "info" ];
+  separateDebugInfo = true;
 
   nativeBuildInputs = [ perl xz.bin autoreconfHook ] # autoreconfHook is due to patch, normally only needed for cygwin
     ++ optionals stdenv.hostPlatform.isCygwin [ texinfo ];  # due to patch
@@ -112,8 +113,10 @@ stdenv.mkDerivation (rec {
   # Darwin (http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/19351),
   # and {Open,Free}BSD.
   # With non-standard storeDir: https://github.com/NixOS/nix/issues/512
+  # On aarch64+musl, test-init.sh fails due to a segfault in diff.
   doCheck = stdenv.hostPlatform == stdenv.buildPlatform
     && (stdenv.hostPlatform.libc == "glibc" || stdenv.hostPlatform.isMusl)
+    && !(stdenv.hostPlatform.isMusl && stdenv.hostPlatform.isAarch64)
     && !stdenv.isAarch32;
 
   # Prevents attempts of running 'help2man' on cross-built binaries.
diff --git a/pkgs/tools/misc/cpufetch/default.nix b/pkgs/tools/misc/cpufetch/default.nix
index ca38cf8998722..1407f875b21b2 100644
--- a/pkgs/tools/misc/cpufetch/default.nix
+++ b/pkgs/tools/misc/cpufetch/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cpufetch";
-  version = "1.01";
+  version = "1.02";
 
   src = fetchFromGitHub {
     owner = "Dr-Noob";
     repo = "cpufetch";
     rev = "v${version}";
-    sha256 = "sha256-vae/59eEDuZUDsTHE93mi+L8WBr3H4zp+mzXg7WWusA=";
+    sha256 = "sha256-bhw7+z4/50MrC5WyexHhtzmqnovwiA9X6Q2TcznDYZM=";
   };
 
   nativeBuildInputs = [
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simplistic yet fancy CPU architecture fetching tool";
-    license = licenses.mit;
+    license = licenses.gpl2Only;
     homepage = "https://github.com/Dr-Noob/cpufetch";
     changelog = "https://github.com/Dr-Noob/cpufetch/releases/tag/v${version}";
     maintainers = with maintainers; [ devhell ];
diff --git a/pkgs/tools/misc/czkawka/default.nix b/pkgs/tools/misc/czkawka/default.nix
index fbe3a68d58429..1bbcaf1f34bc7 100644
--- a/pkgs/tools/misc/czkawka/default.nix
+++ b/pkgs/tools/misc/czkawka/default.nix
@@ -8,22 +8,22 @@
 , gdk-pixbuf
 , atk
 , gtk3
-, testVersion
+, testers
 , czkawka
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "czkawka";
-  version = "4.0.0";
+  version = "4.1.0";
 
   src = fetchFromGitHub {
     owner = "qarmin";
     repo = "czkawka";
     rev = version;
-    sha256 = "sha256-UIgyKWMVSKAgUNqfxFYSfP+l9x52XAzrXr1nnfKub9I=";
+    sha256 = "sha256-N7fCYcjhYlFVkvWdFpR5cu98Vy+jStlBkR/vz/k1lLY=";
   };
 
-  cargoSha256 = "sha256-jPrkNKFmdVk3LEa20jtXSx+7S98fSrX7Rt/lexC0Gwo=";
+  cargoSha256 = "sha256-4L7OjJ26Qpl5YuHil7JEYU8xWH65jiyFz0a/ufr7wYQ=";
 
   nativeBuildInputs = [
     pkg-config
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage rec {
     gtk3
   ];
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = czkawka;
     command = "czkawka_cli --version";
   };
diff --git a/pkgs/tools/misc/dabet/default.nix b/pkgs/tools/misc/dabet/default.nix
new file mode 100644
index 0000000000000..13a63b392c1c6
--- /dev/null
+++ b/pkgs/tools/misc/dabet/default.nix
@@ -0,0 +1,24 @@
+{ lib, rustPlatform, fetchFromGitea }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "dabet";
+  version = "3.0.0";
+
+  src = fetchFromGitea {
+    domain = "codeberg.org";
+    owner = "papojari";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-B5z2RUkvztnGCKeVsjp/yzrI8m/6mjBB0DS1yhFZhM4=";
+  };
+
+  cargoSha256 = "sha256-v1lc2quqxuNUbBQHaTtIDUPPTMyz8nj+TNCdSjrfrOA=";
+
+  meta = with lib; {
+    description = "Print the duration between two times";
+    homepage = "https://codeberg.org/papojari/dabet";
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ papojari ];
+  };
+}
+
diff --git a/pkgs/tools/misc/datefmt/default.nix b/pkgs/tools/misc/datefmt/default.nix
index 01927fedc28d7..c70d04326fc83 100644
--- a/pkgs/tools/misc/datefmt/default.nix
+++ b/pkgs/tools/misc/datefmt/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, datefmt, testVersion }:
+{ lib, stdenv, fetchurl, datefmt, testers }:
 
 stdenv.mkDerivation rec {
   pname = "datefmt";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "PREFIX=$(out)" ];
 
-  passthru.tests.version = testVersion { package = datefmt; };
+  passthru.tests.version = testers.testVersion { package = datefmt; };
 
   meta = with lib; {
     homepage = "https://jb55.com/datefmt";
diff --git a/pkgs/tools/misc/debianutils/default.nix b/pkgs/tools/misc/debianutils/default.nix
index 8ea8855a100e9..3b9051ae510e2 100644
--- a/pkgs/tools/misc/debianutils/default.nix
+++ b/pkgs/tools/misc/debianutils/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "debianutils";
-  version = "4.11.2";
+  version = "5.7";
 
   src = fetchurl {
-    url = "mirror://debian/pool/main/d/${pname}/${pname}_${version}.tar.xz";
-    sha256 = "1pjh2s5f8qp8jaky2x08yvf125np0s48zb2z6f3h6x4vf20hws1v";
+    url = "mirror://debian/pool/main/d/${pname}/${pname}_${version}.orig.tar.gz";
+    sha256 = "sha256-J+yeDn5E3Iq2EapXYzBHG6ywfkSR/+zw06ppCckvkCI=";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/dgoss/default.nix b/pkgs/tools/misc/dgoss/default.nix
index 5af576b3877ad..e050ff0f26b46 100644
--- a/pkgs/tools/misc/dgoss/default.nix
+++ b/pkgs/tools/misc/dgoss/default.nix
@@ -1,6 +1,6 @@
 { lib
 , fetchFromGitHub
-, resholvePackage
+, resholve
 , substituteAll
 , bash
 , coreutils
@@ -8,7 +8,7 @@
 , which
 }:
 
-resholvePackage rec {
+resholve.mkDerivation rec {
   pname = "dgoss";
   version = "0.3.16";
 
diff --git a/pkgs/tools/misc/didyoumean/default.nix b/pkgs/tools/misc/didyoumean/default.nix
new file mode 100644
index 0000000000000..cd7b8270a1a96
--- /dev/null
+++ b/pkgs/tools/misc/didyoumean/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, libxcb
+# Darwin dependencies
+, AppKit
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "didyoumean";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "hisbaan";
+    repo = "didyoumean";
+    rev = "v${version}";
+    sha256 = "sha256-t2bmvz05vWIxQhC474q/9uky1kAQoFN8Z+qflw5Vj68=";
+  };
+
+  cargoSha256 = "sha256-4DbziI9enib4pm9/P4WEu15glIxtejaV2GCqbzuxxyw=";
+
+  buildInputs = lib.optional stdenv.isLinux [ libxcb ]
+    ++ lib.optionals stdenv.isDarwin [ AppKit ];
+
+  meta = with lib; {
+    description = "A CLI spelling corrector for when you're unsure";
+    homepage = "https://github.com/hisbaan/didyoumean";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ evanjs ];
+  };
+}
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index e1bb3a184f5a9..92fc69be7b5d7 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -11,11 +11,11 @@
 # Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
 python3Packages.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "209";
+  version = "210";
 
   src = fetchurl {
     url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    sha256 = "sha256-ZyHec9EbLrHmzCGd/Cwg/y9XCUQPtZhRH0xCouHKMp0=";
+    sha256 = "sha256-KaECH995scVdBbxQ4YhZUFmm04ptgi4yx14oDFX+zSw=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/tools/misc/docui/default.nix b/pkgs/tools/misc/docui/default.nix
index a1b2ad662bc6c..9f0cb31c1ff7a 100644
--- a/pkgs/tools/misc/docui/default.nix
+++ b/pkgs/tools/misc/docui/default.nix
@@ -13,8 +13,6 @@ buildGoModule rec {
 
   vendorSha256 = "1ggdczvv03lj0g6cq26vrk1rba6pk0805n85w9hkbjx9c4r3j577";
 
-  doCheck = false;
-
   meta = with lib; {
     description = "TUI Client for Docker";
     homepage = "https://github.com/skanehira/docui";
diff --git a/pkgs/tools/misc/dotter/default.nix b/pkgs/tools/misc/dotter/default.nix
index fdfabf8f778a9..5ca26be420ea7 100644
--- a/pkgs/tools/misc/dotter/default.nix
+++ b/pkgs/tools/misc/dotter/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dotter";
-  version = "0.12.9";
+  version = "0.12.10";
 
   src = fetchFromGitHub {
     owner = "SuperCuber";
     repo = "dotter";
-    rev = version;
-    sha256 = "0rxinrm110i5cbkl7c7vgk7dl0x79cg6g23bdjixsg7h0572c2gi";
+    rev = "v${version}";
+    hash = "sha256-uSM7M//3LHzdLSOruTyu46sp1a6LeodT2cCEFsuoPW4=";
   };
 
-  cargoSha256 = "0fr2dvzbpwqvf98wwrxv76nwbrv4m9ppx7br4x78gm8dhf2nj4zx";
+  cargoHash = "sha256-JpMEC2HjAQLQiXHSE6L0HBDc0vLhd465wDK2+35aBXA=";
 
   checkInputs = [ which ];
 
diff --git a/pkgs/tools/misc/dsq/default.nix b/pkgs/tools/misc/dsq/default.nix
index 32c5ec6566dae..e0ecf5be6c60e 100644
--- a/pkgs/tools/misc/dsq/default.nix
+++ b/pkgs/tools/misc/dsq/default.nix
@@ -5,28 +5,33 @@
 , runCommand
 , nix-update-script
 , dsq
+, testers
 , diffutils
 }:
 
 buildGoModule rec {
   pname = "dsq";
-  version = "0.11.0";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "multiprocessio";
     repo = "dsq";
     rev = version;
-    hash = "sha256-4g9fu5taFtb7VzVa0X8s6SbEO9qTFD0ff+CVJpr376c=";
+    hash = "sha256-AT5M3o1cvRIZyyA28uX+AI4p9I3SzX3OCdBcIFGKspw=";
   };
 
-  vendorSha256 = "sha256-YPH/uPPNT1byXOtCrNyU68H4mHO8arl6l5hs9WMcxVk=";
+  vendorSha256 = "sha256-yfhLQBmWkG0ZLjI/ArLZkEGvClmZXkl0o7fEu5JqHM8=";
 
   nativeBuildInputs = [ diffutils ];
 
+  ldflags = [ "-X" "main.Version=${version}" ];
+
   passthru = {
     updateScript = nix-update-script { attrPath = pname; };
 
     tests = {
+      version = testers.testVersion { package = dsq; };
+
       pretty-csv = runCommand "${pname}-test" { } ''
         mkdir "$out"
         cat <<EOF > "$out/input.csv"
diff --git a/pkgs/tools/misc/edid-decode/default.nix b/pkgs/tools/misc/edid-decode/default.nix
index f39fc1b552438..788f1bef3432d 100644
--- a/pkgs/tools/misc/edid-decode/default.nix
+++ b/pkgs/tools/misc/edid-decode/default.nix
@@ -1,8 +1,8 @@
 { lib, stdenv, fetchgit }:
 
 stdenv.mkDerivation rec {
-  pname = "edid-decode-unstable";
-  version = "unstable-2018-12-06";
+  pname = "edid-decode";
+  version = "unstable-2022-04-06";
 
   src = fetchgit {
     url = "git://linuxtv.org/edid-decode.git";
@@ -15,11 +15,11 @@ stdenv.mkDerivation rec {
     cp edid-decode $out/bin
   '';
 
-  meta = {
+  meta = with lib; {
     description = "EDID decoder and conformance tester";
-    homepage = "https://cgit.freedesktop.org/xorg/app/edid-decode/";
-    license = lib.licenses.mit;
-    maintainers = [ lib.maintainers.chiiruno ];
+    homepage = "https://git.linuxtv.org/edid-decode.git";
+    license = licenses.mit;
+    maintainers = with maintainers; [ Madouura ];
     platforms = lib.platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/esphome/dashboard.nix b/pkgs/tools/misc/esphome/dashboard.nix
index dfb61ca29ad9b..1f101735e9811 100644
--- a/pkgs/tools/misc/esphome/dashboard.nix
+++ b/pkgs/tools/misc/esphome/dashboard.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "esphome-dashboard";
-  version = "20220209.0";
+  version = "20220309.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-FkFu3SvsowcsOFXvqWmpY3KEypXSb6KcpC/nJbQpDBA=";
+    sha256 = "sha256-J/T3Av0jwT0CJSwc0j+YjaiKFqs9soLf7ctpiz5rmm4=";
   };
 
   # no tests
diff --git a/pkgs/tools/misc/esphome/default.nix b/pkgs/tools/misc/esphome/default.nix
index de39a6e7f3805..3ce65eb203801 100644
--- a/pkgs/tools/misc/esphome/default.nix
+++ b/pkgs/tools/misc/esphome/default.nix
@@ -15,14 +15,14 @@ let
 in
 with python.pkgs; buildPythonApplication rec {
   pname = "esphome";
-  version = "2022.3.2";
+  version = "2022.4.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-s5NisPUoppROM/p7qm1da4lStpAWZvk18zkUEsOn0Pg=";
+    sha256 = "sha256-/IMiUMtWFouAjOlyq+BXvqQ1IddBXvua7y0i4J1cktM=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/misc/ethminer/default.nix b/pkgs/tools/misc/ethminer/default.nix
index ce68e9f82098f..32d1c5500b806 100644
--- a/pkgs/tools/misc/ethminer/default.nix
+++ b/pkgs/tools/misc/ethminer/default.nix
@@ -1,6 +1,7 @@
 {
   lib,
   stdenv,
+  fetchpatch,
   fetchFromGitHub,
   opencl-headers,
   cmake,
@@ -31,6 +32,21 @@ stdenv.mkDerivation rec {
       fetchSubmodules = true;
     };
 
+  patches = [
+    # global context library is separated from libethash
+    ./add-global-context.patch
+
+    # CUDA 11 no longer support SM30
+    (fetchpatch {
+      url = "https://github.com/ethereum-mining/ethminer/commit/dae359dff28f376d4ce7ddfbd651dcd34d6dad8f.patch";
+      hash = "sha256-CJGKc0rXOcKDX1u5VBzc8gyBi1Me9CNATfQzKViqtAA=";
+    })
+  ];
+
+  postPatch = ''
+    sed -i 's/_lib_static//' libpoolprotocols/CMakeLists.txt
+  '';
+
   # NOTE: dbus is broken
   cmakeFlags = [
     "-DHUNTER_ENABLED=OFF"
@@ -64,15 +80,6 @@ stdenv.mkDerivation rec {
     cudatoolkit
   ];
 
-  patches = [
-    # global context library is separated from libethash
-    ./add-global-context.patch
-  ];
-
-  preConfigure = ''
-    sed -i 's/_lib_static//' libpoolprotocols/CMakeLists.txt
-  '';
-
   postInstall = ''
     wrapProgram $out/bin/ethminer --prefix LD_LIBRARY_PATH : /run/opengl-driver/lib
   '';
diff --git a/pkgs/tools/misc/ethtool/default.nix b/pkgs/tools/misc/ethtool/default.nix
index 65797f65fe6d0..f80de50ea551f 100644
--- a/pkgs/tools/misc/ethtool/default.nix
+++ b/pkgs/tools/misc/ethtool/default.nix
@@ -3,15 +3,16 @@
 , fetchurl
 , libmnl
 , pkg-config
+, writeScript
 }:
 
 stdenv.mkDerivation rec {
   pname = "ethtool";
-  version = "5.15";
+  version = "5.17";
 
   src = fetchurl {
     url = "mirror://kernel/software/network/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-aG/WEQOJ1JwqEg8Aw81d/kPeutqOAh5CcNdLvkUqEW0=";
+    sha256 = "sha256-ZKuRS5xrRQRyRdkfQLh2CycomSqeWvInF8ZEI46IkTM=";
   };
 
   nativeBuildInputs = [
@@ -22,6 +23,22 @@ stdenv.mkDerivation rec {
     libmnl
   ];
 
+  passthru = {
+    updateScript = writeScript "update-ethtool" ''
+      #!/usr/bin/env nix-shell
+      #!nix-shell -i bash -p curl pcre common-updater-scripts
+
+      set -eu -o pipefail
+
+      # Expect the text in format of '<a href="ethtool-VER.tar.xz">...</a>'
+      # The page always lists versions newest to oldest. Pick the first one.
+      new_version="$(curl -s https://mirrors.edge.kernel.org/pub/software/network/ethtool/ |
+          pcregrep -o1 '<a href="ethtool-([0-9.]+)[.]tar[.]xz">' |
+          head -n1)"
+      update-source-version ${pname} "$new_version"
+    '';
+  };
+
   meta = with lib; {
     description = "Utility for controlling network drivers and hardware";
     homepage = "https://www.kernel.org/pub/software/network/ethtool/";
diff --git a/pkgs/tools/misc/eva/default.nix b/pkgs/tools/misc/eva/default.nix
index f589d39f35ef2..038ecc7bf228f 100644
--- a/pkgs/tools/misc/eva/default.nix
+++ b/pkgs/tools/misc/eva/default.nix
@@ -1,29 +1,17 @@
-{ lib, rustPlatform, fetchCrate, fetchpatch }:
+{ lib, rustPlatform, fetchFromGitHub }:
 
 rustPlatform.buildRustPackage rec {
   pname = "eva";
-  version = "0.2.7";
+  version = "0.3.0";
 
-  src = fetchCrate {
-    inherit pname version;
-    sha256 = "sha256-4rmFvu6G4h8Pl592NlldSCkqZBbnTcXrs98ljIJmTXo=";
+  src = fetchFromGitHub {
+    owner = "nerdypepper";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-INXKjjHW9HZ1NWx1CQOerTBUy0rYFLNJMuRgKQfQwdc=";
   };
 
-  cargoSha256 = "sha256-BG/W8lG/47kyA7assS6efEO+DRkpSFcZQhlSIozlonA=";
-
-  patches = [
-    # to fix the test suite (can be removed as soon as #33 is merged).
-    (fetchpatch {
-      url = "https://github.com/NerdyPepper/eva/commit/cacf51dbb9748b1dbe97b35f3c593a0a272bd4db.patch";
-      sha256 = "11q7dkz2x1888f3awnlr1nbbxzzfjrr46kd0kk6sgjdkyfh50cvv";
-    })
-
-    # to fix `cargo test -- --test-threads $NIX_BUILD_CORES`
-    (fetchpatch {
-      url = "https://github.com/NerdyPepper/eva/commit/ccfb3d327567dbaf03b2283c7e684477e2e84590.patch";
-      sha256 = "003yxqlyi8jna0rf05q2a006r2pkz6pcwwfl3dv8zb6p83kk1kgj";
-    })
-  ];
+  cargoSha256 = "sha256-4l9y2qmS7G1PvxF8/51F7fx/sDuYHWDkcyOin2sYHdk=";
 
   meta = with lib; {
     description = "A calculator REPL, similar to bc";
diff --git a/pkgs/tools/misc/execline/default.nix b/pkgs/tools/misc/execline/default.nix
index e1dd404a357e9..cf3641f1d21bf 100644
--- a/pkgs/tools/misc/execline/default.nix
+++ b/pkgs/tools/misc/execline/default.nix
@@ -1,15 +1,29 @@
-{ skawarePackages }:
+{ fetchFromGitHub, skawarePackages }:
 
 with skawarePackages;
+let
+  version = "2.8.3.0";
+
+  # Maintainer of manpages uses following versioning scheme: for every
+  # upstream $version he tags manpages release as ${version}.1, and,
+  # in case of extra fixes to manpages, new tags in form ${version}.2,
+  # ${version}.3 and so on are created.
+  manpages = fetchFromGitHub {
+    owner = "flexibeast";
+    repo = "execline-man-pages";
+    rev = "v${version}.2";
+    sha256 = "0fzv5as81aqgl8llbz8c5bk5n56iyh4g70r54wmj71rh2d1pihk5";
+  };
+
+in buildPackage {
+  inherit version;
 
-buildPackage {
   pname = "execline";
-  version = "2.8.2.0";
-  sha256 = "0h9kb3cx8dw05md6smvs56i4lr8g5n3ljaxy5vj4zs86yc3pdprg";
+  sha256 = "105dnkw1y6lz0ibqy5b4jarq31y40k7ymhl77i9f10jcb76vwp93";
 
   description = "A small scripting language, to be used in place of a shell in non-interactive scripts";
 
-  outputs = [ "bin" "lib" "dev" "doc" "out" ];
+  outputs = [ "bin" "man" "lib" "dev" "doc" "out" ];
 
   # TODO: nsss support
   configureFlags = [
@@ -48,5 +62,7 @@ buildPackage {
       -o "$bin/bin/execlineb" \
       ${./execlineb-wrapper.c} \
       -lskarnet
+    mkdir -p $man/share/
+    cp -vr ${manpages}/man* $man/share
   '';
 }
diff --git a/pkgs/tools/misc/f2/default.nix b/pkgs/tools/misc/f2/default.nix
new file mode 100644
index 0000000000000..943ce72cc6ced
--- /dev/null
+++ b/pkgs/tools/misc/f2/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+  pname = "f2";
+  version = "1.8.0";
+
+  src = fetchFromGitHub {
+    owner = "ayoisaiah";
+    repo = "f2";
+    rev = "v${version}";
+    sha256 = "sha256-bNcPzvjVBH7x60kNjlUILiQGG3GDmqIB5T2WP3+nZ+s=";
+  };
+
+  vendorSha256 = "sha256-Cahqk+7jDMUtZq0zhBll1Tfryu2zSPBN7JKscV38360=";
+
+  ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
+
+  # has no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Command-line batch renaming tool";
+    homepage = "https://github.com/ayoisaiah/f2";
+    license = licenses.mit;
+    maintainers = with maintainers; [ zendo ];
+  };
+}
diff --git a/pkgs/tools/misc/fclones/default.nix b/pkgs/tools/misc/fclones/default.nix
index 4b5c5234bf94e..2854456c1b055 100644
--- a/pkgs/tools/misc/fclones/default.nix
+++ b/pkgs/tools/misc/fclones/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fclones";
-  version = "0.19.0";
+  version = "0.20.1";
 
   src = fetchFromGitHub {
     owner = "pkolaczk";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0m6l6c71f40a6wc8w7cdikwx3blwqxw55p4frrww25qgd0xdcgls";
+    sha256 = "sha256-3xIJkV/BC+qdMP2vsUr5wIwqzaz2uCV/j6VdC6uvzgY=";
   };
 
-  cargoSha256 = "1pl4lrr1p3c7j9fb0mb4spjzgcn9zvr67nskzgmhrbr3kyzc2ssc";
+  cargoSha256 = "sha256-GN8vz67/Pd39E3iYeqVfjC7zxvcA8u88lv42kWovlCo=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     AppKit
diff --git a/pkgs/tools/misc/findutils/default.nix b/pkgs/tools/misc/findutils/default.nix
index 3746c4b4657fc..3c3b15962a7be 100644
--- a/pkgs/tools/misc/findutils/default.nix
+++ b/pkgs/tools/misc/findutils/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     && (stdenv.hostPlatform.libc != "musl")
     && stdenv.hostPlatform == stdenv.buildPlatform;
 
-  outputs = [ "out" "info" ];
+  outputs = [ "out" "info" "locate"];
 
   configureFlags = [
     # "sort" need not be on the PATH as a run-time dep, so we need to tell
@@ -40,12 +40,24 @@ stdenv.mkDerivation rec {
     "--localstatedir=/var/cache"
   ];
 
-  CFLAGS = [
+  CFLAGS = lib.optionals stdenv.isDarwin [
     # TODO: Revisit upstream issue https://savannah.gnu.org/bugs/?59972
     # https://github.com/Homebrew/homebrew-core/pull/69761#issuecomment-770268478
     "-D__nonnull\\(params\\)="
   ];
 
+  postInstall = ''
+    moveToOutput bin/locate $locate
+    moveToOutput bin/updatedb $locate
+  '';
+
+  # can't move man pages in postInstall because the multi-output hook will move them back to $out
+  postFixup = ''
+    moveToOutput share/man/man5 $locate
+    moveToOutput share/man/man1/locate.1.gz $locate
+    moveToOutput share/man/man1/updatedb.1.gz $locate
+  '';
+
   enableParallelBuilding = true;
 
   meta = {
@@ -62,9 +74,12 @@ stdenv.mkDerivation rec {
       The tools supplied with this package are:
 
           * find - search for files in a directory hierarchy;
+          * xargs - build and execute command lines from standard input.
+
+      The following are available in the locate output:
+
           * locate - list files in databases that match a pattern;
           * updatedb - update a file name database;
-          * xargs - build and execute command lines from standard input.
     '';
 
     platforms = lib.platforms.all;
diff --git a/pkgs/tools/misc/fontforge/default.nix b/pkgs/tools/misc/fontforge/default.nix
index 6bb728af99cac..3de016bf6d688 100644
--- a/pkgs/tools/misc/fontforge/default.nix
+++ b/pkgs/tools/misc/fontforge/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchpatch, fetchFromGitHub, lib
 , cmake, perl, uthash, pkg-config, gettext
 , python, freetype, zlib, glib, giflib, libpng, libjpeg, libtiff, libxml2, cairo, pango
-, readline, woff2, zeromq, libuninameslist
+, readline, woff2, zeromq
 , withSpiro ? false, libspiro
 , withGTK ? false, gtk3
 , withGUI ? withGTK
@@ -14,13 +14,13 @@ assert withGTK -> withGUI;
 
 stdenv.mkDerivation rec {
   pname = "fontforge";
-  version = "20201107";
+  version = "20220308";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-Rl/5lbXaPgIndANaD0IakaDus6T53FjiBb45FIuGrvc=";
+    sha256 = "sha256-q+71PDPODl5fEEy3d1icRl+rBGY7AhH+2dMUKeBWGgI=";
   };
 
   patches = [
@@ -28,13 +28,11 @@ stdenv.mkDerivation rec {
     # Taken from https://salsa.debian.org/fonts-team/fontforge/-/blob/master/debian/patches/0001-add-extra-cmake-install-rules.patch
     (fetchpatch {
       url = "https://salsa.debian.org/fonts-team/fontforge/raw/76bffe6ccf8ab20a0c81476a80a87ad245e2fd1c/debian/patches/0001-add-extra-cmake-install-rules.patch";
-      sha256 = "u3D9od2xLECNEHhZ+8dkuv9818tPkdP6y/Tvd9CADJg=";
-    })
-    # Fix segmentation fault with some fonts.
-    # This is merged and should be present in the next release.
-    (fetchpatch {
-      url = "https://github.com/fontforge/fontforge/commit/69e263b2aff29ad22f97f13935cfa97a1eabf207.patch";
-      sha256 = "06yyf90605aq6ppfiz83mqkdmnaq5418axp9jgsjyjq78b00xb29";
+      excludes = [
+        # Already handled upstream: https://github.com/fontforge/fontforge/commit/f97a2cd7b344ec8fcb9f8bfb908e1b6f36326d20
+        "contrib/cidmap/CMakeLists.txt"
+      ];
+      sha256 = "iQwaGeBHUais979hGVbU2NxKozQSQkpYXjApxPuLI/4=";
     })
   ];
 
@@ -52,7 +50,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config cmake ];
   buildInputs = [
-    readline uthash woff2 zeromq libuninameslist
+    readline uthash woff2 zeromq
     python freetype zlib glib giflib libpng libjpeg libtiff libxml2
   ]
     ++ lib.optionals withSpiro [ libspiro ]
diff --git a/pkgs/tools/misc/fsql/default.nix b/pkgs/tools/misc/fsql/default.nix
index dac33eaedb30a..49211f416d673 100644
--- a/pkgs/tools/misc/fsql/default.nix
+++ b/pkgs/tools/misc/fsql/default.nix
@@ -1,18 +1,20 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "fsql";
-  version = "0.3.1";
-
-  goPackagePath = "github.com/kshvmdn/fsql";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "kshvmdn";
     repo = "fsql";
     rev = "v${version}";
-    sha256 = "1accpxryk4744ydfrqc3la5k376ji11yr84n66dz5cx0f3n71vmz";
+    sha256 = "sha256-/9X1ag18epFjEfB+TbRsHPCZRZblV0ohvDlZ523kXXc=";
   };
 
+  vendorSha256 = "sha256-h75iQSpHZqc0QNOZWHU1l6xsHB8ClfWXYo1jVMzX72Q=";
+
+  ldflags = [ "-s" "-w" ];
+
   meta = with lib; {
     description = "Search through your filesystem with SQL-esque queries";
     homepage = "https://github.com/kshvmdn/fsql";
@@ -20,5 +22,4 @@ buildGoPackage rec {
     maintainers = with maintainers; [ pSub ];
     platforms = platforms.unix;
   };
-
 }
diff --git a/pkgs/tools/misc/gay/default.nix b/pkgs/tools/misc/gay/default.nix
index 799473a4b9f29..471ac86afcb7e 100644
--- a/pkgs/tools/misc/gay/default.nix
+++ b/pkgs/tools/misc/gay/default.nix
@@ -1,16 +1,12 @@
-{ lib, python3Packages, fetchFromGitHub }:
+{ lib, python3Packages }:
 
 python3Packages.buildPythonApplication rec {
   pname = "gay";
   version = "1.2.8";
 
-  src = fetchFromGitHub {
-    owner = "ms-jpq";
-    repo = "gay";
-    # The repo doesn't have any tags
-    # This references version 1.2.8
-    rev = "1e3e96815c68214533a925c86a52b0acf832a359";
-    sha256 = "sha256-vouEFybcz27bcw/CpAGjFY8NYWQC+V0IE7h1a8XufZ0=";
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-/4IHqAoJthKvNyKqUgnGOQkgbC0aBEZ+x6dmKWUHXh0=";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/github-backup/default.nix b/pkgs/tools/misc/github-backup/default.nix
index 3ab7f10909e30..801848b6ec8b1 100644
--- a/pkgs/tools/misc/github-backup/default.nix
+++ b/pkgs/tools/misc/github-backup/default.nix
@@ -6,11 +6,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "github-backup";
-  version = "0.40.1";
+  version = "0.41.0";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Qrj0+4WXlW0UgG2xV/P8e0QgUG3VurY4HIAiiUF3LW8=";
+    sha256 = "6e6462125b930de4d28efed7ee0d4377e77371a4918768436c3cecf79cc87078";
   };
 
   makeWrapperArgs = [
diff --git a/pkgs/tools/misc/go.rice/default.nix b/pkgs/tools/misc/go.rice/default.nix
index f691221dd7be3..771f3493157c7 100644
--- a/pkgs/tools/misc/go.rice/default.nix
+++ b/pkgs/tools/misc/go.rice/default.nix
@@ -1,7 +1,7 @@
 { lib, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
-  pname = "go.rice";
+  pname = "go-rice";
   version = "1.0.2";
 
   src = fetchFromGitHub {
@@ -13,8 +13,6 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-VlpdZcqg7yWUADN8oD/IAgAXVdzJeIeymx2Pu/7E21o=";
 
-  doCheck = false;
-
   subPackages = [ "." "rice" ];
 
   meta = with lib; {
@@ -24,4 +22,3 @@ buildGoModule rec {
     maintainers = with maintainers; [ blaggacao ];
   };
 }
-
diff --git a/pkgs/tools/misc/goreleaser/default.nix b/pkgs/tools/misc/goreleaser/default.nix
index d0f44b933e946..412f2733304d2 100644
--- a/pkgs/tools/misc/goreleaser/default.nix
+++ b/pkgs/tools/misc/goreleaser/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "goreleaser";
-  version = "1.7.0";
+  version = "1.8.3";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-vTik6KFOkKOik78/H0hvAv6xI+QSALOHD4N6befPaT4=";
+    sha256 = "sha256-EqUaJHlZupk8CP0ob8pL5tAW/bzG38eZmA4hgTg1jYY=";
   };
 
-  vendorSha256 = "sha256-ujtgcH5EF+PZAD/1Y0+yI4m7y2hNJ3w4KB2pvKbdgsU=";
+  vendorSha256 = "sha256-UAApPni4zIAQVOmPAah5vEE8kTrGaJ3irjtsukBNVHo=";
 
   ldflags = [
     "-s"
@@ -26,7 +26,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "Deliver Go binaries as fast and easily as possible";
     homepage = "https://goreleaser.com";
-    maintainers = with maintainers; [ c0deaddict endocrimes sarcasticadmin ];
+    maintainers = with maintainers; [ c0deaddict endocrimes sarcasticadmin techknowlogick ];
     license = licenses.mit;
   };
 }
diff --git a/pkgs/tools/misc/gosu/default.nix b/pkgs/tools/misc/gosu/default.nix
index d4c233007d26d..0831649f6008f 100644
--- a/pkgs/tools/misc/gosu/default.nix
+++ b/pkgs/tools/misc/gosu/default.nix
@@ -1,24 +1,29 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, testVersion, gosu }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "gosu";
-  version = "unstable-2017-05-09";
-
-  goPackagePath = "github.com/tianon/gosu";
+  version = "1.14";
 
   src = fetchFromGitHub {
     owner = "tianon";
     repo = "gosu";
-    rev = "e87cf95808a7b16208515c49012aa3410bc5bba8";
-    sha256 = "sha256-Ff0FXJg3z8akof+/St1JJu1OO1kS5gMtxSRnCLpj4eI=";
+    rev = version;
+    sha256 = "sha256-qwoHQB37tY8Pz8CHleYZI+SGkbHG7P/vgfXVMSyqi10=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-yxrOLCtSrY/a84N5yRWGUx1L425TckjvRyn/rtkzsRY=";
+
+  ldflags = [ "-d" "-s" "-w" ];
+
+  passthru.tests.version = testVersion {
+    package = gosu;
+  };
 
-  meta = {
-    description= "Tool that avoids TTY and signal-forwarding behavior of sudo and su";
+  meta = with lib; {
+    description = "Tool that avoids TTY and signal-forwarding behavior of sudo and su";
     homepage = "https://github.com/tianon/gosu";
     license = lib.licenses.gpl3;
+    maintainers = with maintainers; [ aaronjheng ];
     platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/gosu/deps.nix b/pkgs/tools/misc/gosu/deps.nix
deleted file mode 100644
index 9bdfa3923401f..0000000000000
--- a/pkgs/tools/misc/gosu/deps.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/opencontainers/runc";
-    fetch = {
-      type = "git";
-      url = "https://github.com/opencontainers/runc";
-      rev = "5274430fee9bc930598cfd9c9dbd33213f79f96e";
-      sha256 = "149057gm2y1mc45s7bh43c1ngjg1m54jkpaxw534ir9v5mb1zsxx";
-    };
-  }
-]
diff --git a/pkgs/tools/misc/gotify-cli/default.nix b/pkgs/tools/misc/gotify-cli/default.nix
index e52744223dea0..04f588081f0d8 100644
--- a/pkgs/tools/misc/gotify-cli/default.nix
+++ b/pkgs/tools/misc/gotify-cli/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     homepage = "https://github.com/gotify/cli";
     description = "A command line interface for pushing messages to gotify/server";
     maintainers = with maintainers; [ ma27 ];
+    mainProgram = "gotify";
   };
 }
diff --git a/pkgs/tools/misc/gparted/default.nix b/pkgs/tools/misc/gparted/default.nix
index a002d190984f8..8d6de0bbeb81d 100644
--- a/pkgs/tools/misc/gparted/default.nix
+++ b/pkgs/tools/misc/gparted/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gparted";
-  version = "1.3.1";
+  version = "1.4.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/gparted/${pname}-${version}.tar.gz";
-    sha256 = "sha256-Xu4ubXSxXvlrE7OiMQyGjtIpjgM0ECHn0SpamKHR4Qk=";
+    sha256 = "sha256-5Sk6eS5T/b66KcSoNBE82WA9DWOTMNqTGkaL82h4h74=";
   };
 
   # Tries to run `pkexec --version` to get version.
diff --git a/pkgs/tools/misc/gringo/default.nix b/pkgs/tools/misc/gringo/default.nix
index 87902de0cb03b..02314ec77e9cf 100644
--- a/pkgs/tools/misc/gringo/default.nix
+++ b/pkgs/tools/misc/gringo/default.nix
@@ -34,6 +34,8 @@ stdenv.mkDerivation rec {
       --replace \
         "env['LIBPATH']        = []" \
         "env['LIBPATH']        = ['${lib.getLib libcxx}/lib']"
+  '' + ''
+    sed '1i#include <limits>' -i libgringo/gringo/{control,term}.hh
   '';
 
   buildPhase = ''
diff --git a/pkgs/tools/misc/gti/default.nix b/pkgs/tools/misc/gti/default.nix
index e950d58fc76ee..21089caf0236d 100644
--- a/pkgs/tools/misc/gti/default.nix
+++ b/pkgs/tools/misc/gti/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gti";
-  version = "1.7.0";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "rwos";
     repo = "gti";
     rev = "v${version}";
-    sha256 = "1jivnjswlhwjfg5v9nwfg3vfssvqbdxxf9znwmfb5dgfblg9wxw9";
+    sha256 = "sha256-x6ncvnZPPrVcQYwtwkSenW+ri0L6FpuDa7U7uYUqiyk=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/misc/gummy/default.nix b/pkgs/tools/misc/gummy/default.nix
index cc1b68b7c0e80..defe5950a116b 100644
--- a/pkgs/tools/misc/gummy/default.nix
+++ b/pkgs/tools/misc/gummy/default.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, testVersion
+, testers
 , gummy
 , cmake
 , libX11
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
     ln -s $out/libexec/gummyd $out/bin/gummyd
   '';
 
-  passthru.tests.version = testVersion { package = gummy; };
+  passthru.tests.version = testers.testVersion { package = gummy; };
 
   meta = with lib; {
     homepage = "https://github.com/Fushko/gummy";
diff --git a/pkgs/tools/misc/heatseeker/default.nix b/pkgs/tools/misc/heatseeker/default.nix
index fd89775afd6b9..5f8c15253aaae 100644
--- a/pkgs/tools/misc/heatseeker/default.nix
+++ b/pkgs/tools/misc/heatseeker/default.nix
@@ -29,6 +29,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rschmitt/heatseeker";
     license = licenses.mit;
     maintainers = [ maintainers.michaelpj ];
+    mainProgram = "hs";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/hiksink/default.nix b/pkgs/tools/misc/hiksink/default.nix
index 0fcdb2fdca07c..9cc91035afe05 100644
--- a/pkgs/tools/misc/hiksink/default.nix
+++ b/pkgs/tools/misc/hiksink/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/CornerBit/HikSink";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "hik_sink";
   };
 }
diff --git a/pkgs/tools/misc/infracost/default.nix b/pkgs/tools/misc/infracost/default.nix
index 920d4a19e7933..4f25b996f78dd 100644
--- a/pkgs/tools/misc/infracost/default.nix
+++ b/pkgs/tools/misc/infracost/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "infracost";
-  version = "0.9.20";
+  version = "0.9.22";
 
   src = fetchFromGitHub {
     owner = "infracost";
     rev = "v${version}";
     repo = "infracost";
-    sha256 = "sha256-ujoKnf6f9rrPIxvWlzVnC6q+2BxzhpXgb66clgAuC+8=";
+    sha256 = "sha256-JYC5wsv3JIqzv2woHits3wMpvPZ70lVrAZDh/DB1SVE=";
   };
-  vendorSha256 = "sha256-TfO3+pGxR9dPzigkx89a/Ak+tKiBa6Z0a6U4kIdRsSQ=";
+  vendorSha256 = "sha256-/B3hXHRNk6DJ6iC0RalsoWsb6vK0md8asnLkhSAeHXU=";
 
   ldflags = [ "-s" "-w" "-X github.com/infracost/infracost/internal/version.Version=v${version}" ];
 
@@ -18,17 +18,18 @@ buildGoModule rec {
 
   nativeBuildInputs = [ installShellFiles ];
 
-  # -short only runs the unit-tests tagged short
-  checkFlags = [ "-short" ];
-  checkPhase = ''
-    runHook preCheck
+  preCheck = ''
+    # Feed in all tests for testing
+    # This is because subPackages above limits what is built to just what we
+    # want but also limits the tests
+    unset subPackages
+
+    # checkFlags aren't correctly passed through via buildGoModule so we use buildFlagsArray
+    # -short only runs the unit-tests tagged short
+    buildFlagsArray+="-short"
 
     # remove tests that require networking
     rm cmd/infracost/{breakdown,diff,hcl,run}_test.go
-    # checkFlags aren't correctly passed through via buildGoModule
-    go test $checkFlags ''${ldflags:+-ldflags="$ldflags"} -v -p $NIX_BUILD_CORES ./...
-
-    runHook postCheck
   '';
 
   postInstall = ''
diff --git a/pkgs/tools/misc/interactsh/default.nix b/pkgs/tools/misc/interactsh/default.nix
index 979569dc3329d..66bb319b5a5ae 100644
--- a/pkgs/tools/misc/interactsh/default.nix
+++ b/pkgs/tools/misc/interactsh/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "interactsh";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-czXcncEm2Wm0ezGjNOpcCin5KOZKuimnnMPUWfGE0FY=";
+    sha256 = "sha256-AtWcVzY/1DnKRva/PGISTHmBsWpJ6nxJvlWR/B/fRcE=";
   };
 
-  vendorSha256 = "sha256-YfHsl0AFNQNCg4HEP9FyrHUMMz0SFn5aDRrOruseE5k=";
+  vendorSha256 = "sha256-LV5K4fToE26i4Av/YcNPjIyYmf/kxmBMuiyXYYfL3Y4=";
 
   modRoot = ".";
   subPackages = [
diff --git a/pkgs/tools/misc/intermodal/default.nix b/pkgs/tools/misc/intermodal/default.nix
index c1f182d696606..c61398a78dc42 100644
--- a/pkgs/tools/misc/intermodal/default.nix
+++ b/pkgs/tools/misc/intermodal/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/casey/intermodal";
     license = licenses.cc0;
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "imdl";
   };
 }
diff --git a/pkgs/tools/misc/ipxe/default.nix b/pkgs/tools/misc/ipxe/default.nix
index 76ce66e568645..601f2a57eea87 100644
--- a/pkgs/tools/misc/ipxe/default.nix
+++ b/pkgs/tools/misc/ipxe/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, lib, fetchFromGitHub, perl, cdrkit, xz, openssl, gnu-efi, mtools
+{ stdenv, lib, fetchFromGitHub, unstableGitUpdater
+, gnu-efi, mtools, openssl, perl, xorriso, xz
 , syslinux ? null
 , embedScript ? null
 , additionalTargets ? {}
@@ -28,15 +29,15 @@ in
 
 stdenv.mkDerivation rec {
   pname = "ipxe";
-  version = "1.21.1";
+  version = "unstable-2022-04-06";
 
-  nativeBuildInputs = [ perl cdrkit xz openssl gnu-efi mtools ] ++ lib.optional stdenv.hostPlatform.isx86 syslinux;
+  nativeBuildInputs = [ gnu-efi mtools openssl perl xorriso xz ] ++ lib.optional stdenv.hostPlatform.isx86 syslinux;
 
   src = fetchFromGitHub {
     owner = "ipxe";
     repo = "ipxe";
-    rev = "v${version}";
-    sha256 = "1pkf1n1c0rdlzfls8fvjvi1sd9xjd9ijqlyz3wigr70ijcv6x8i9";
+    rev = "70995397e5bdfd3431e12971aa40630c7014785f";
+    sha256 = "SrTNEYk13JXAcJuogm9fZ7CrzJIDRc0aziGdjRNv96I=";
   };
 
   # not possible due to assembler code
@@ -46,9 +47,6 @@ stdenv.mkDerivation rec {
 
   makeFlags =
     [ "ECHO_E_BIN_ECHO=echo" "ECHO_E_BIN_ECHO_E=echo" # No /bin/echo here.
-    ] ++ lib.optionals stdenv.hostPlatform.isx86 [
-      "ISOLINUX_BIN_LIST=${syslinux}/share/syslinux/isolinux.bin"
-      "LDLINUX_C32=${syslinux}/share/syslinux/ldlinux.c32"
     ] ++ lib.optional (embedScript != null) "EMBED=${embedScript}";
 
 
@@ -62,8 +60,10 @@ stdenv.mkDerivation rec {
   configurePhase = ''
     runHook preConfigure
     for opt in ${lib.escapeShellArgs enabledOptions}; do echo "#define $opt" >> src/config/general.h; done
-    sed -i '/cp \''${ISOLINUX_BIN}/s/$/ --no-preserve=mode/' src/util/geniso
     substituteInPlace src/Makefile.housekeeping --replace '/bin/echo' echo
+  '' + lib.optionalString stdenv.hostPlatform.isx86 ''
+    substituteInPlace src/util/genfsimg --replace /usr/lib/syslinux ${syslinux}/share/syslinux
+  '' + ''
     runHook postConfigure
   '';
 
@@ -89,6 +89,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = unstableGitUpdater {};
+
   meta = with lib;
     { description = "Network boot firmware";
       homepage = "https://ipxe.org/";
diff --git a/pkgs/tools/misc/kargo/default.nix b/pkgs/tools/misc/kargo/default.nix
index 34b93403487c5..91fcbf43ed886 100644
--- a/pkgs/tools/misc/kargo/default.nix
+++ b/pkgs/tools/misc/kargo/default.nix
@@ -12,7 +12,7 @@ buildPythonApplication rec {
   };
 
   propagatedBuildInputs = [
-    ansible
+    ansible-core
     boto
     cffi
     cryptography
diff --git a/pkgs/tools/misc/kisslicer/default.nix b/pkgs/tools/misc/kisslicer/default.nix
index 31bc0b2b6a12d..f80e15b3b3c22 100644
--- a/pkgs/tools/misc/kisslicer/default.nix
+++ b/pkgs/tools/misc/kisslicer/default.nix
@@ -27,8 +27,11 @@ stdenv.mkDerivation rec {
     stripRoot = false;
   };
 
-  buildInputs = [
+  nativeBuildInputs = [
     makeWrapper
+  ];
+
+  buildInputs = [
     libGLU libGL
     libX11
   ];
diff --git a/pkgs/tools/misc/kt/default.nix b/pkgs/tools/misc/kt/default.nix
index e4713890ac40f..3e9bac0e09e9c 100644
--- a/pkgs/tools/misc/kt/default.nix
+++ b/pkgs/tools/misc/kt/default.nix
@@ -1,17 +1,21 @@
-{ lib, fetchFromGitHub, buildGoPackage }:
+{ lib, fetchFromGitHub, buildGoModule }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "kt";
-  version = "12.1.0";
+  version = "13.1.0";
 
   src = fetchFromGitHub {
     owner = "fgeller";
     repo = "kt";
     rev = "v${version}";
-    sha256 = "014q39bg88vg1xdq1bz6wj982zb148sip3a42hbrinh8qj41y4yg";
+    sha256 = "sha256-1UGsiMMmAyIQZ62hNIi0uzyX2uNL03EWupIazjznqDc=";
   };
 
-  goPackagePath = "github.com/fgeller/kt";
+  vendorSha256 = "sha256-PeNpDro6G78KLN6B2CDhsTKamRTWQyxPJYWuuv6sUyw=";
+
+  ldflags = [ "-s" "-w" ];
+
+  doCheck = false;
 
   meta = with lib; {
     description = "Kafka command line tool";
diff --git a/pkgs/tools/misc/lf/default.nix b/pkgs/tools/misc/lf/default.nix
index 73010f8d944e3..dd267e7ce4d07 100644
--- a/pkgs/tools/misc/lf/default.nix
+++ b/pkgs/tools/misc/lf/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "lf";
-  version = "26";
+  version = "27";
 
   src = fetchFromGitHub {
     owner = "gokcehan";
     repo = "lf";
     rev = "r${version}";
-    sha256 = "0a2kybaajpmhlq708fsdyyab388lkmz17gfn0qcv352i2d4lli0s";
+    hash = "sha256-CrtVw3HhrC+D3c4ltHX8FSQnDvBpQJ890oJHoD6qPt4=";
   };
 
-  vendorSha256 = "sha256-ujQh4aE++K/fn3PJqkAbTtwRyJPSI9TJQ1DvwLF9etU=";
+  vendorSha256 = "sha256-evkQT624EGj6MUwx3/ajdIbUMYjA1QyOnIQFtTLt0Yo=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/misc/logstash/6.x.nix b/pkgs/tools/misc/logstash/6.x.nix
index 0b3e17818dcd7..c1136ed887689 100644
--- a/pkgs/tools/misc/logstash/6.x.nix
+++ b/pkgs/tools/misc/logstash/6.x.nix
@@ -26,8 +26,12 @@ let this = stdenv.mkDerivation rec {
   dontStrip         = true;
   dontPatchShebangs = true;
 
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
   buildInputs = [
-    makeWrapper jre
+    jre
   ];
 
   installPhase = ''
diff --git a/pkgs/tools/misc/logstash/7.x.nix b/pkgs/tools/misc/logstash/7.x.nix
index 636c380817ce3..6cf64691efb6d 100644
--- a/pkgs/tools/misc/logstash/7.x.nix
+++ b/pkgs/tools/misc/logstash/7.x.nix
@@ -41,8 +41,11 @@ let
     dontStrip = true;
     dontPatchShebangs = true;
 
-    buildInputs = [
+    nativeBuildInputs = [
       makeWrapper
+    ];
+
+    buildInputs = [
       jre
     ];
 
diff --git a/pkgs/tools/misc/lokalise2-cli/default.nix b/pkgs/tools/misc/lokalise2-cli/default.nix
index 85437e09efbba..cd569b8cc6249 100644
--- a/pkgs/tools/misc/lokalise2-cli/default.nix
+++ b/pkgs/tools/misc/lokalise2-cli/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
     homepage = "https://lokalise.com";
     license = licenses.bsd3;
     maintainers = with maintainers; [ timstott ];
+    mainProgram = "lokalise2";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/lookatme/default.nix b/pkgs/tools/misc/lookatme/default.nix
index b046e1569044b..7d2f7338ec24a 100644
--- a/pkgs/tools/misc/lookatme/default.nix
+++ b/pkgs/tools/misc/lookatme/default.nix
@@ -37,7 +37,17 @@ buildPythonApplication rec {
     sha256 = "sha256-qIZMkgOm5jXmxTFLTqMBhpLBhfCL8xvUxxqpS6NjcVw=";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [
+    pytest-mock
+    pytestCheckHook
+    six
+  ];
+
+  disabledTests = [
+    # https://github.com/d0c-s4vage/lookatme/issues/126
+    "test_sanity_check_that_errors_are_detected"
+    "test_styles_defaults"
+  ];
 
   propagatedBuildInputs = [
     click
diff --git a/pkgs/tools/misc/lsd/default.nix b/pkgs/tools/misc/lsd/default.nix
index d72fad1a666c6..157cc1adf8d73 100644
--- a/pkgs/tools/misc/lsd/default.nix
+++ b/pkgs/tools/misc/lsd/default.nix
@@ -2,7 +2,7 @@
 , fetchFromGitHub
 , rustPlatform
 , installShellFiles
-, testVersion
+, testers
 , lsd
 }:
 
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   # Found argument '--test-threads' which wasn't expected, or isn't valid in this context
   doCheck = false;
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = lsd;
   };
 
diff --git a/pkgs/tools/misc/man-db/default.nix b/pkgs/tools/misc/man-db/default.nix
index 7263e4de336ba..4f08f9e63b8c3 100644
--- a/pkgs/tools/misc/man-db/default.nix
+++ b/pkgs/tools/misc/man-db/default.nix
@@ -1,18 +1,31 @@
-{ lib, stdenv, fetchurl, pkg-config, libpipeline, db, groff, libiconv, makeWrapper, buildPackages, nixosTests }:
+{ buildPackages
+, db
+, fetchurl
+, groff
+, lib
+, libiconv
+, libpipeline
+, makeWrapper
+, nixosTests
+, pkg-config
+, stdenv
+, zstd
+, autoreconfHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "man-db";
-  version = "2.10.1";
+  version = "2.10.2";
 
   src = fetchurl {
     url = "mirror://savannah/man-db/man-db-${version}.tar.xz";
-    sha256 = "sha256-L/2PLoASL+cuYMdAyFHmo+FcmnkhGF60dSwcZygkvtY=";
+    sha256 = "sha256-7peVTUkqE3MZA8nQcnubAeUIntvWlfDNtY1AWlr1UU0=";
   };
 
   outputs = [ "out" "doc" ];
   outputMan = "out"; # users will want `man man` to work
 
-  nativeBuildInputs = [ pkg-config makeWrapper groff ];
+  nativeBuildInputs = [ autoreconfHook groff makeWrapper pkg-config zstd ];
   buildInputs = [ libpipeline db groff ]; # (Yes, 'groff' is both native and build input)
   checkInputs = [ libiconv /* for 'iconv' binary */ ];
 
@@ -28,6 +41,12 @@ stdenv.mkDerivation rec {
 
     # Add mandb locations for the above
     echo "MANDB_MAP	/nix/var/nix/profiles/default/share/man	/var/cache/man/nixpkgs" >> src/man_db.conf.in
+
+    # use absolute paths to reference programs, otherwise artifacts will have undeclared dependencies
+    for f in configure.ac m4/man-check-progs.m4 m4/man-po4a.m4; do
+      substituteInPlace $f \
+        --replace AC_CHECK_PROGS AC_PATH_PROGS
+    done
   '';
 
   configureFlags = [
diff --git a/pkgs/tools/misc/melody/default.nix b/pkgs/tools/misc/melody/default.nix
new file mode 100644
index 0000000000000..a02994f33a07b
--- /dev/null
+++ b/pkgs/tools/misc/melody/default.nix
@@ -0,0 +1,21 @@
+{ lib, stdenv, fetchCrate, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "melody";
+  version = "0.13.10";
+
+  src = fetchCrate {
+    pname = "melody_cli";
+    inherit version;
+    sha256 = "05slrh5dqbpsvimdr0rlhj04kf1qzwij3zlardvbmvhvfccf4188";
+  };
+
+  cargoSha256 = "0qh1byysbc6pl3cvx2vdpl8crx5id59hhrwqzk5g7091spm8wf79";
+
+  meta = with lib; {
+    description = "Language that compiles to regular expressions";
+    homepage = "https://github.com/yoav-lavi/melody";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jyooru ];
+  };
+}
diff --git a/pkgs/tools/misc/miniserve/default.nix b/pkgs/tools/misc/miniserve/default.nix
index d24fae2a1fa9e..d8538dfea7ec5 100644
--- a/pkgs/tools/misc/miniserve/default.nix
+++ b/pkgs/tools/misc/miniserve/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "miniserve";
-  version = "0.19.3";
+  version = "0.19.4";
 
   src = fetchFromGitHub {
     owner = "svenstaro";
     repo = "miniserve";
     rev = "v${version}";
-    hash = "sha256-JlpjDUX8v7sGADhdKNQXoklbl/fw8DT0A6hEaUG61TQ=";
+    hash = "sha256-vpLa0ipRV+JZoRa7jKn9ZNITvoQ8ABG2Qw1SyMZayK0=";
   };
 
-  cargoSha256 = "sha256-5V8+Mcuu3fxG399QjW++/uWpPMvVWBfhI/L/6pmbkVY=";
+  cargoSha256 = "sha256-zBBU55VlXWYISMbKv07UfOPZ3vWRlpp4estuCcDBDDY=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -39,6 +39,9 @@ rustPlatform.buildRustPackage rec {
   ];
 
   postInstall = ''
+    $out/bin/miniserve --print-manpage >miniserve.1
+    installManPage miniserve.1
+
     installShellCompletion --cmd miniserve \
       --bash <($out/bin/miniserve --print-completions bash) \
       --fish <($out/bin/miniserve --print-completions fish) \
diff --git a/pkgs/tools/misc/mongodb-compass/default.nix b/pkgs/tools/misc/mongodb-compass/default.nix
index 5528bb2f97c38..5a86018fc2ab3 100644
--- a/pkgs/tools/misc/mongodb-compass/default.nix
+++ b/pkgs/tools/misc/mongodb-compass/default.nix
@@ -33,7 +33,7 @@ xorg,
 }:
 
 let
-  version = "1.30.1";
+  version = "1.31.2";
 
   rpath = lib.makeLibraryPath [
     alsa-lib
@@ -82,7 +82,7 @@ let
     if stdenv.hostPlatform.system == "x86_64-linux" then
       fetchurl {
         url = "https://downloads.mongodb.com/compass/mongodb-compass_${version}_amd64.deb";
-        sha256 = "sha256-MwkYgkDZmzZsthJxSK6c+0us0D4cPuDfuV1XBbeTNXE=";
+        sha256 = "sha256-ij5lOP3xaty9YjKPionfUhZTcuumlFHt46MUMkjO2yA=";
       }
     else
       throw "MongoDB compass is not supported on ${stdenv.hostPlatform.system}";
diff --git a/pkgs/tools/misc/mutagen/default.nix b/pkgs/tools/misc/mutagen/default.nix
index 7e824cf90ca4f..13d54c5f90ce1 100644
--- a/pkgs/tools/misc/mutagen/default.nix
+++ b/pkgs/tools/misc/mutagen/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "mutagen";
-  version = "0.11.8";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "mutagen-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "17ycd2y7hgwa2yxbin86i6aj67x7xaajwz3mqgdyfvkja5hgbjyr";
+    sha256 = "sha256-WFEbiPyE029q9+ZXYioESXLm9fmpwihaNwgLcPYQYFE=";
   };
 
-  vendorSha256 = "0szs9yc49fyh55ra1wf8zj76kdah0x49d45cgivk3gqh2hl17j6l";
+  vendorSha256 = "sha256-kMX0E3yCg+wRaVMRWNSkeW+dN8b/EG04C0P77x9TQC0=";
 
   agents = fetchzip {
     name = "mutagen-agents-${version}";
@@ -21,7 +21,7 @@ buildGoModule rec {
     extraPostFetch = ''
       rm $out/mutagen # Keep only mutagen-agents.tar.gz.
     '';
-    sha256 = "0k8iif09kvxfxx6qm5qmkf3lr7ar6i98ivkndimj680ah9v1hkj8";
+    sha256 = "sha256-QwPOt2pK9fRPrfvpc6qqr/uBZ/XK8CMlYNSLb7eWzg4=";
   };
 
   doCheck = false;
diff --git a/pkgs/tools/misc/ncdu_2/c-import-order.patch b/pkgs/tools/misc/ncdu_2/c-import-order.patch
new file mode 100644
index 0000000000000..a094f3237ad6b
--- /dev/null
+++ b/pkgs/tools/misc/ncdu_2/c-import-order.patch
@@ -0,0 +1,17 @@
+diff --git a/src/ui.zig b/src/ui.zig
+index 8401910..50171a7 100644
+--- a/src/ui.zig
++++ b/src/ui.zig
+@@ -8,11 +8,11 @@ const main = @import("main.zig");
+ const util = @import("util.zig");
+
+ pub const c = @cImport({
++    @cDefine("_XOPEN_SOURCE", "1");
+     @cInclude("stdio.h");
+     @cInclude("string.h");
+     @cInclude("curses.h");
+     @cInclude("time.h");
+-    @cDefine("_X_OPEN_SOURCE", "1");
+     @cInclude("wchar.h");
+     @cInclude("locale.h");
+ });
diff --git a/pkgs/tools/misc/ncdu_2/default.nix b/pkgs/tools/misc/ncdu_2/default.nix
new file mode 100644
index 0000000000000..a703cf3eca6c2
--- /dev/null
+++ b/pkgs/tools/misc/ncdu_2/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchurl, fetchpatch, zig, ncurses }:
+
+stdenv.mkDerivation rec {
+  pname = "ncdu";
+  version = "2.0";
+
+  src = fetchurl {
+    url = "https://dev.yorhel.nl/download/${pname}-${version}.tar.gz";
+    sha256 = "sha256-Zs2mgEdnsukbeM/cqCX5/a9qCkxuQAYloBrVWVQYR8w=";
+  };
+
+  patches = [
+    ./c-import-order.patch # https://code.blicky.net/yorhel/ncdu/issues/183
+  ];
+
+  XDG_CACHE_HOME="Cache"; # FIXME This should be set in stdenv
+
+  nativeBuildInputs = [
+    zig
+  ];
+
+  buildInputs = [ ncurses ];
+
+  PREFIX = placeholder "out";
+
+  meta = with lib; {
+    description = "Disk usage analyzer with an ncurses interface";
+    homepage = "https://dev.yorhel.nl/ncdu";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ pSub SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/tools/misc/nix-direnv/default.nix b/pkgs/tools/misc/nix-direnv/default.nix
index 731278cafe0e6..ae091c8d386f4 100644
--- a/pkgs/tools/misc/nix-direnv/default.nix
+++ b/pkgs/tools/misc/nix-direnv/default.nix
@@ -7,13 +7,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "nix-direnv";
-  version = "1.6.1";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "nix-direnv";
     rev = version;
-    sha256 = "sha256-WgNfo9GRqIrXsIgNRhoNPU2/uwyPd8xG8xEEImEy4KY=";
+    sha256 = "sha256-edRdnMNYB5N9v9QlfSFNqJl93X0rSCllmzSZO9+sCOg=";
   };
 
   # Substitute instead of wrapping because the resulting file is
diff --git a/pkgs/tools/misc/ntfy-sh/default.nix b/pkgs/tools/misc/ntfy-sh/default.nix
index 6f5a0b0116336..f7c55dfa91a19 100644
--- a/pkgs/tools/misc/ntfy-sh/default.nix
+++ b/pkgs/tools/misc/ntfy-sh/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "ntfy-sh";
-  version = "1.18.1";
+  version = "1.20.0";
 
   src = fetchFromGitHub {
     owner = "binwiederhier";
     repo = "ntfy";
     rev = "v${version}";
-    sha256 = "sha256-rXdkNJYpQ8s2BeFRR4fSIuCrdq60me4B3wee64ei8qM=";
+    sha256 = "sha256-JwRI58FadN7DH4MOO033EYmcbqCIuPxw5wWeafoInSg=";
   };
 
-  vendorSha256 = "sha256-7b3cQczQLUZ//5ubKvq8s9U75qJpJaieLN+kzjXIyHg=";
+  vendorSha256 = "sha256-nzcCLDN/vJ6DS6isCSLL9ycxFkIyUwy4Um6M7NWAPTk=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/misc/oppai-ng/default.nix b/pkgs/tools/misc/oppai-ng/default.nix
index f36dacdd3a2a1..cf1ea893fcf93 100644
--- a/pkgs/tools/misc/oppai-ng/default.nix
+++ b/pkgs/tools/misc/oppai-ng/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/Francesco149/oppai-ng";
     license = licenses.unlicense;
     maintainers = with maintainers; [ tadeokondrak ];
+    mainProgram = "oppai";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/plantuml/default.nix b/pkgs/tools/misc/plantuml/default.nix
index 8c4fa097ea41d..3bfaf99d74e59 100644
--- a/pkgs/tools/misc/plantuml/default.nix
+++ b/pkgs/tools/misc/plantuml/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, makeWrapper, jre, graphviz }:
 
 stdenv.mkDerivation rec {
-  version = "1.2022.2";
+  version = "1.2022.3";
   pname = "plantuml";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/plantuml/${version}/plantuml.${version}.jar";
-    sha256 = "sha256-4LPR8gdpfebq5U/umxcFfqe7i6qJHLqhOAu7DfYzTY8=";
+    url = "https://github.com/plantuml/plantuml/releases/download/v${version}/plantuml-pdf-${version}.jar";
+    sha256 = "sha256-6ad6CUz1UAvNkhdUJhOME7OsLpIXiBoERfTmowzTz64=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/plfit/default.nix b/pkgs/tools/misc/plfit/default.nix
new file mode 100644
index 0000000000000..d1613af76e909
--- /dev/null
+++ b/pkgs/tools/misc/plfit/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, python ? null
+, swig
+, llvmPackages
+}:
+
+stdenv.mkDerivation rec {
+  pname = "plfit";
+  version = "0.9.3";
+
+  src = fetchFromGitHub {
+    owner = "ntamas";
+    repo = "plfit";
+    rev = version;
+    hash = "sha256-y4n6AlGtuuUuA+33oF7lGOYuKSqea4GMSJlv9PaSpQ8=";
+  };
+
+  patches = [
+    # https://github.com/ntamas/plfit/pull/41
+    (fetchpatch {
+      name = "use-cmake-install-full-dir.patch";
+      url = "https://github.com/ntamas/plfit/commit/d0e77c80e6e899298240e6be465cf580603f6ee2.patch";
+      hash = "sha256-wi3qCp6ZQtrKuM7XDA6xCXunCiqsyhnkxmg2eSmxjYM=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    cmake
+  ] ++ lib.optionals (!isNull python) [
+    python
+    swig
+  ];
+
+  cmakeFlags = [
+    "-DPLFIT_USE_OPENMP=ON"
+  ] ++ lib.optionals (!isNull python) [
+    "-DPLFIT_COMPILE_PYTHON_MODULE=ON"
+  ];
+
+  buildInputs = lib.optionals stdenv.cc.isClang [
+    llvmPackages.openmp
+  ];
+
+  meta = with lib; {
+    description = "Fitting power-law distributions to empirical data";
+    homepage = "https://github.com/ntamas/plfit";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/tools/misc/pmbootstrap/default.nix b/pkgs/tools/misc/pmbootstrap/default.nix
index 913bfc00a1586..0c09368277b34 100644
--- a/pkgs/tools/misc/pmbootstrap/default.nix
+++ b/pkgs/tools/misc/pmbootstrap/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonApplication rec {
   pname = "pmbootstrap";
-  version = "1.41.0";
+  version = "1.43.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-go3EXmC9Vp0xXi1mH65p85FKsTe0CbyNXw3VVRrnpeQ=";
+    sha256 = "sha256-4bPxWmzlyVZrkq9qs/5t+ZOsVDkAAwYc6Mc4een4Qnw=";
   };
 
   repo = fetchFromGitLab {
@@ -15,7 +15,7 @@ buildPythonApplication rec {
     owner = "postmarketOS";
     repo = pname;
     rev = version;
-    sha256 = "sha256-7Y4rxSdJQaIlq4yiadvrEro0JM5xoHeISDKHz69T4z8=";
+    sha256 = "sha256-jbTzPGrRVisLG7f4NspkDVB8NYSyyInHkhSUPO3dgU0=";
   };
 
   pmb_test = "${repo}/test";
diff --git a/pkgs/tools/misc/pouf/default.nix b/pkgs/tools/misc/pouf/default.nix
new file mode 100644
index 0000000000000..9a6520453938c
--- /dev/null
+++ b/pkgs/tools/misc/pouf/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "pouf";
+  version = "0.4.1";
+
+  src = fetchFromGitHub {
+    owner = "mothsart";
+    repo = pname;
+    rev = version;
+    sha256 = "0q7kj6x61xci8piax6vg3bsm9di11li7pm84vj13iwahdydhs1hn";
+  };
+
+  cargoSha256 = "128fgdp74lyv5k054cdjxzwmyb5cyy0jq0a9l4bsc34122mznnq7";
+
+  meta = with lib; {
+    description = "A cli program for produce fake datas.";
+    homepage = "https://github.com/mothsart/pouf";
+    changelog = "https://github.com/mothsart/pouf/releases/tag/${version}";
+    maintainers = with maintainers; [ mothsart ];
+    license = with licenses; [ mit ];
+  };
+}
diff --git a/pkgs/tools/misc/powerline-go/default.nix b/pkgs/tools/misc/powerline-go/default.nix
index 85d9ed59ff43f..b28c478de479b 100644
--- a/pkgs/tools/misc/powerline-go/default.nix
+++ b/pkgs/tools/misc/powerline-go/default.nix
@@ -5,18 +5,16 @@
 
 buildGoModule rec {
   pname = "powerline-go";
-  version = "unstable-2021-07-15";
+  version = "1.22.1";
 
   src = fetchFromGitHub {
     owner = "justjanne";
     repo = pname;
-    rev = "f27435b26b5001c52ffb1aee454572c59494c81b";
-    sha256 = "sha256-YB/WMprjXA5ZN6baT5nWahNj0xwbP8kzS7X/1tCwWiE=";
+    rev = "v${version}";
+    sha256 = "sha256-7QhW0Vn1u63N0fzSiX/vu0HNhFkoSFHXteJCrcFX+4Q=";
   };
 
-  vendorSha256 = "sha256-HYF6aKz+P241EKmupEoretadlrh9FBRx6nIER66jofg=";
-
-  doCheck = false;
+  vendorSha256 = "sha256-+R+UwoYJ+KsV+jQj8+wfEsCAvezolsoPDNzCnGLzOEc=";
 
   meta = with lib; {
     description = "A Powerline like prompt for Bash, ZSH and Fish";
diff --git a/pkgs/tools/misc/pre-commit/default.nix b/pkgs/tools/misc/pre-commit/default.nix
index 307e5e9c74611..df211378f4b43 100644
--- a/pkgs/tools/misc/pre-commit/default.nix
+++ b/pkgs/tools/misc/pre-commit/default.nix
@@ -1,17 +1,28 @@
-{ lib, python3Packages }:
+{ lib
+, python3Packages
+, fetchFromGitHub
+  # tests
+, cargo
+, dotnet-sdk
+, git
+, go
+, libiconv
+, nodejs
+}:
 
 with python3Packages;
 buildPythonPackage rec {
   pname = "pre-commit";
-  version = "2.17.0";
+  version = "2.18.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit version;
-    pname = "pre_commit";
-    sha256 = "c1a8040ff15ad3d648c70cc3e55b93e4d2d5b687320955505587fd79bbaed06a";
+  src = fetchFromGitHub {
+    owner = "pre-commit";
+    repo = "pre-commit";
+    rev = "v${version}";
+    sha256 = "sha256-d/ukUTjNgpqr6IeDJHDaOXQm0EdsX+vq0sVX7HG3gSE=";
   };
 
   patches = [
@@ -32,18 +43,107 @@ buildPythonPackage rec {
     importlib-resources
   ];
 
-  # slow and impure
-  doCheck = false;
+  checkInputs = [
+    cargo
+    dotnet-sdk
+    git
+    go
+    nodejs
+    pytest-env
+    pytest-xdist
+    pytestCheckHook
+    re-assert
+  ];
+
+  buildInputs = [
+    # Required for rust test on x86_64-darwin
+    libiconv
+  ];
 
-  preFixup = ''
-    substituteInPlace $out/${python.sitePackages}/pre_commit/resources/hook-tmpl \
+  doCheck = true;
+
+  postPatch = ''
+    substituteInPlace pre_commit/resources/hook-tmpl \
       --subst-var-by pre-commit $out
-    substituteInPlace $out/${python.sitePackages}/pre_commit/languages/python.py \
+    substituteInPlace pre_commit/languages/python.py \
       --subst-var-by virtualenv ${virtualenv}
-    substituteInPlace $out/${python.sitePackages}/pre_commit/languages/node.py \
+    substituteInPlace pre_commit/languages/node.py \
       --subst-var-by nodeenv ${nodeenv}
+
+    patchShebangs pre_commit/resources/hook-tmpl
   '';
 
+  pytestFlagsArray = [
+    "--forked"
+  ];
+
+  preCheck = ''
+    export GIT_AUTHOR_NAME=test GIT_COMMITTER_NAME=test \
+           GIT_AUTHOR_EMAIL=test@example.com GIT_COMMITTER_EMAIL=test@example.com \
+           VIRTUALENV_NO_DOWNLOAD=1 PRE_COMMIT_NO_CONCURRENCY=1 LANG=en_US.UTF-8
+
+    git init -b master
+
+    export HOME=$(mktemp -d)
+
+    python -m venv --system-site-packages venv
+    source "$PWD/venv/bin/activate"
+    #$out/bin/pre-commit install
+    python setup.py develop
+  '';
+
+  postCheck = ''
+    deactivate
+  '';
+
+  disabledTests = [
+    # ERROR: The install method you used for conda--probably either `pip install conda`
+    # or `easy_install conda`--is not compatible with using conda as an application.
+    "test_conda_"
+    "test_local_conda_"
+
+    # /build/pytest-of-nixbld/pytest-0/test_install_ruby_with_version0/rbenv-2.7.2/libexec/rbenv-init:
+    # /usr/bin/env: bad interpreter: No such file or directory
+    "ruby"
+
+    # network
+    "test_additional_dependencies_roll_forward"
+    "test_additional_golang_dependencies_installed"
+    "test_additional_node_dependencies_installed"
+    "test_additional_rust_cli_dependencies_installed"
+    "test_additional_rust_lib_dependencies_installed"
+    "test_dart_hook"
+    "test_dotnet_hook"
+    "test_golang_hook"
+    "test_golang_hook_still_works_when_gobin_is_set"
+    "test_installs_without_links_outside_env"
+    "test_local_dart_additional_dependencies"
+    "test_local_golang_additional_dependencies"
+    "test_local_lua_additional_dependencies"
+    "test_local_perl_additional_dependencies"
+    "test_local_rust_additional_dependencies"
+    "test_lua_hook"
+    "test_perl_hook"
+    "test_r_hook"
+    "test_r_inline_hook"
+    "test_r_local_with_additional_dependencies_hook"
+    "test_r_with_additional_dependencies_hook"
+    "test_run_a_node_hook_default_version"
+    "test_run_versioned_node_hook"
+
+    # python2, no explanation needed
+    "python2"
+    "test_switch_language_versions_doesnt_clobber"
+
+    # docker
+    "test_run_a_docker_hook"
+
+    # i don't know why these fail
+    "test_install_existing_hooks_no_overwrite"
+    "test_installed_from_venv"
+    "test_uninstall_restores_legacy_hooks"
+  ];
+
   pythonImportsCheck = [
     "pre_commit"
   ];
diff --git a/pkgs/tools/misc/pubs/default.nix b/pkgs/tools/misc/pubs/default.nix
index 36afc1d4cbb0a..04021e40b74d1 100644
--- a/pkgs/tools/misc/pubs/default.nix
+++ b/pkgs/tools/misc/pubs/default.nix
@@ -1,34 +1,54 @@
-{ lib, fetchFromGitHub, python3Packages }:
+{ lib
+, fetchFromGitHub
+, python3
+}:
 
-python3Packages.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "pubs";
-  version = "0.8.3";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "pubs";
     repo = "pubs";
     rev = "v${version}";
-    sha256 = "0npgsyxj7kby5laznk5ilkrychs3i68y57gphwk48w8k9fvnl3zc";
+    hash = "sha256-U/9MLqfXrzYVGttFSafw4pYDy26WgdsJMCxciZzO1pw=";
   };
 
-  propagatedBuildInputs = with python3Packages; [
-    argcomplete python-dateutil configobj feedparser bibtexparser pyyaml requests six
+  propagatedBuildInputs = with python3.pkgs; [
+    pyyaml
+    bibtexparser
+    python-dateutil
+    six
+    requests
+    configobj
     beautifulsoup4
+    feedparser
+    argcomplete
   ];
 
-  checkInputs = with python3Packages; [ pyfakefs mock ddt ];
+  checkInputs = with python3.pkgs; [
+    pyfakefs
+    mock
+    ddt
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    # Disabling git tests because they expect git to be preconfigured
+    # with the user's details. See
+    # https://github.com/NixOS/nixpkgs/issues/94663
+    "tests/test_git.py"
+  ];
 
-  # Disabling git tests because they expect git to be preconfigured
-  # with the user's details. See
-  # https://github.com/NixOS/nixpkgs/issues/94663
-  preCheck = ''
-    rm tests/test_git.py
-    '';
+  disabledTests = [
+    # https://github.com/pubs/pubs/issues/276
+    "test_readme"
+  ];
 
   meta = with lib; {
     description = "Command-line bibliography manager";
     homepage = "https://github.com/pubs/pubs";
-    license = licenses.lgpl3;
-    maintainers = with maintainers; [ gebner ];
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ gebner dotlambda ];
   };
 }
diff --git a/pkgs/tools/misc/qflipper/default.nix b/pkgs/tools/misc/qflipper/default.nix
index d0125377763d9..7f2a3d150226c 100644
--- a/pkgs/tools/misc/qflipper/default.nix
+++ b/pkgs/tools/misc/qflipper/default.nix
@@ -21,10 +21,10 @@
 , qtwayland
 }:
 let
-  version = "0.8.2";
+  version = "1.0.1";
   timestamp = "99999999999";
   commit = "nix-${version}";
-  hash = "sha256-BaqKlF2SZueykFhtj91McP39oXYAx+lz8eXhn5eouqg=";
+  hash = "sha256-vHBlrtQ06kjjXXGL/jSdpAPHgqb7Vn1c6jXZVXwxHPQ=";
 
   udev_rules = ''
     #Flipper Zero serial port
@@ -50,13 +50,13 @@ mkDerivation {
     pkg-config
     qmake
     qttools
+    wrapQtAppsHook
   ];
 
   buildInputs = [
     zlib
     libusb1
     libGL
-    wrapQtAppsHook
 
     qtbase
     qt3d
@@ -70,39 +70,30 @@ mkDerivation {
     qtwayland
   ];
 
-  preBuild = ''
+  qmakeFlags = [
+    "DEFINES+=DISABLE_APPLICATION_UPDATES"
+    "CONFIG+=qtquickcompiler"
+  ];
+
+  postPatch = ''
     substituteInPlace qflipper_common.pri \
         --replace 'GIT_VERSION = unknown' 'GIT_VERSION = "${version}"' \
         --replace 'GIT_TIMESTAMP = 0' 'GIT_TIMESTAMP = ${timestamp}' \
         --replace 'GIT_COMMIT = unknown' 'GIT_COMMIT = "${commit}"'
     cat qflipper_common.pri
-
   '';
 
-  installPhase = ''
-    runHook preInstall
-
+  postInstall = ''
     mkdir -p $out/bin
-    ${lib.optionalString stdenv.isLinux ''
-      install -Dm755 qFlipper $out/bin/qFlipper
-    ''}
     ${lib.optionalString stdenv.isDarwin ''
-      install -Dm755 qFlipper.app/Contents/MacOS/qFlipper $out/bin/qFlipper
+    cp qFlipper.app/Contents/MacOS/qFlipper $out/bin
     ''}
-    cp qFlipperTool $out/bin
-
-    mkdir -p $out/share/applications
-    cp installer-assets/appimage/qFlipper.desktop $out/share/applications
-
-    mkdir -p $out/share/icons
-    cp application/assets/icons/qFlipper.png $out/share/icons
+    cp qFlipper-cli $out/bin
 
     mkdir -p $out/etc/udev/rules.d
     tee $out/etc/udev/rules.d/42-flipperzero.rules << EOF
     ${udev_rules}
     EOF
-
-    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/remind/default.nix b/pkgs/tools/misc/remind/default.nix
index 6d5e0e37703b4..da2a969aafc20 100644
--- a/pkgs/tools/misc/remind/default.nix
+++ b/pkgs/tools/misc/remind/default.nix
@@ -16,11 +16,11 @@ let
 in
 tcl.mkTclDerivation rec {
   pname = "remind";
-  version = "03.04.02";
+  version = "04.00.00";
 
   src = fetchurl {
     url = "https://dianne.skoll.ca/projects/remind/download/remind-${version}.tar.gz";
-    sha256 = "sha256-kjDcO0l39l2KJXo0elZesKZWDZoSoUXIu1Ua7IxWY4w=";
+    sha256 = "sha256-I7bmsO3EAUnmo2KoIy5myxXuZB8tzs5kCEXpG550x8Y=";
   };
 
   propagatedBuildInputs = tclLibraries;
diff --git a/pkgs/tools/misc/sfeed/default.nix b/pkgs/tools/misc/sfeed/default.nix
index c85b884c50d32..614dc30ed8e75 100644
--- a/pkgs/tools/misc/sfeed/default.nix
+++ b/pkgs/tools/misc/sfeed/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "sfeed";
-  version = "1.3";
+  version = "1.4";
 
   src = fetchgit {
     url = "git://git.codemadness.org/sfeed";
     rev = version;
-    sha256 = "sha256-XOBzvVOOv84LzFNiLOnmJWm552igGLNFB2i3eMeWaW8=";
+    sha256 = "sha256-fn+PE0WwBdllsO1gXbM2Ftdrl8ua/v50Ny4C/J4OK8Q=";
   };
 
   buildInputs = [ ncurses ];
diff --git a/pkgs/tools/misc/shunit2/default.nix b/pkgs/tools/misc/shunit2/default.nix
index a0ec572a409d1..1120c756895b3 100644
--- a/pkgs/tools/misc/shunit2/default.nix
+++ b/pkgs/tools/misc/shunit2/default.nix
@@ -1,5 +1,5 @@
 { lib
-, resholvePackage
+, resholve
 , fetchFromGitHub
 , bash
 , coreutils
@@ -9,7 +9,7 @@
 , ncurses
 }:
 
-resholvePackage rec {
+resholve.mkDerivation rec {
   pname = "shunit2";
   version = "2.1.8";
 
@@ -63,7 +63,7 @@ resholvePackage rec {
         interpreter, we can pre-test this. But if we go fiddle
         the interpreter later, I guess we _could_ break it.
         */
-        "$__SHUNIT_CMD_ECHO_ESC" = [ "'echo -e'" ];
+        "$__SHUNIT_CMD_ECHO_ESC" = [ "echo -e" ];
         "$SHUNIT_CMD_TPUT" = [ "tput" ]; # from ncurses
       };
       keep = {
diff --git a/pkgs/tools/misc/starship/default.nix b/pkgs/tools/misc/starship/default.nix
index a27674290d679..f327747748123 100644
--- a/pkgs/tools/misc/starship/default.nix
+++ b/pkgs/tools/misc/starship/default.nix
@@ -9,22 +9,27 @@
 , nixosTests
 , Security
 , Foundation
+, Cocoa
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "starship";
-  version = "1.3.0";
+  version = "1.6.2";
 
   src = fetchFromGitHub {
     owner = "starship";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-mqUE4JzNBhvtDpT2LM23eHX8q93wtPqA+/zr/PxEDiE=";
+    sha256 = "sha256-Swxc2gl3YP+0Kf+trp37rGhr5G8NT4L3Bb3lHwLm50Q=";
   };
 
   nativeBuildInputs = [ installShellFiles pkg-config ];
 
-  buildInputs = [ libgit2 ] ++ lib.optionals stdenv.isDarwin [ libiconv Security Foundation ];
+  buildInputs = [ libgit2 ] ++ lib.optionals stdenv.isDarwin [ libiconv Security Foundation Cocoa ];
+
+  buildNoDefaultFeatures = true;
+  # the "notify" feature is currently broken on darwin
+  buildFeatures = if stdenv.isDarwin then [ "battery" ] else [ "default" ];
 
   postInstall = ''
     for shell in bash fish zsh; do
@@ -33,7 +38,7 @@ rustPlatform.buildRustPackage rec {
     done
   '';
 
-  cargoSha256 = "sha256-hQNDiayVT4UgbxcxdXssi/evPvwgyvG/UOFyEHj7jpo=";
+  cargoSha256 = "sha256-UvIectx6qWkXg/yVQe11NXhh2UD0D/dMCtK1kj3ln6M=";
 
   preCheck = ''
     HOME=$TMPDIR
diff --git a/pkgs/tools/misc/steampipe/default.nix b/pkgs/tools/misc/steampipe/default.nix
index ee97166deb117..bfddaa722fda8 100644
--- a/pkgs/tools/misc/steampipe/default.nix
+++ b/pkgs/tools/misc/steampipe/default.nix
@@ -2,21 +2,18 @@
 
 buildGoModule rec {
   pname = "steampipe";
-  version = "0.13.3";
+  version = "0.13.4";
 
   src = fetchFromGitHub {
     owner = "turbot";
     repo = "steampipe";
     rev = "v${version}";
-    sha256 = "sha256-zU/FWrlE4TQhzRNOVED7hFub+lehPFD+fEJ3v0PFGdM=";
+    sha256 = "sha256-Qq8i/uU2TtrEpvTPFmnZdku2vNo5O240dAT2OQKel1U=";
   };
 
-  vendorSha256 = "sha256-0jixQcgSXQJAd899EWOUKde5OXZcSZwQfH7LRdQlm7c=";
+  vendorSha256 = "sha256-pEQG9BHhsVDVSOoKJBocLXMLjmP72RM+GXz4nYD4D7s=";
   proxyVendor = true;
 
-  # tests are failing for no obvious reasons
-  doCheck = false;
-
   nativeBuildInputs = [ installShellFiles ];
 
   ldflags = [
diff --git a/pkgs/tools/misc/svtplay-dl/default.nix b/pkgs/tools/misc/svtplay-dl/default.nix
index ad045aa1d9245..1ed9a9fd237c6 100644
--- a/pkgs/tools/misc/svtplay-dl/default.nix
+++ b/pkgs/tools/misc/svtplay-dl/default.nix
@@ -9,13 +9,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "svtplay-dl";
-  version = "4.10";
+  version = "4.11";
 
   src = fetchFromGitHub {
     owner = "spaam";
     repo = "svtplay-dl";
     rev = version;
-    sha256 = "sha256-JK/JtGDmmTJ+g0kmM7mSJi7+/N552GKtlMkh7quOBjo=";
+    sha256 = "1ybip45bfmvajw046v6mxjbf3vv0y7zgfb454rjy56zhx40l232v";
   };
 
   pythonPaths = [ cryptography pyyaml requests ];
diff --git a/pkgs/tools/misc/synth/default.nix b/pkgs/tools/misc/synth/default.nix
index 1d922a2184330..80ccd7fc51cdf 100644
--- a/pkgs/tools/misc/synth/default.nix
+++ b/pkgs/tools/misc/synth/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "synth";
-  version = "0.6.4";
+  version = "0.6.5-r1";
 
   src = fetchFromGitHub {
     owner = "getsynth";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-TtIZwGHSfY7Xz6hmrsmaB7dXfjSPcBD4yDyC27TJ4B4=";
+    sha256 = "sha256-AcAZjS2Wo0PRngf0eYrduEd6rZX5YpYxsWEp0wf9jvg=";
   };
 
-  cargoSha256 = "sha256-V5GA5XR3wkcBdbxRjO8PkF7Q3yg1NVUjXsdAHVip4Bc=";
+  cargoSha256 = "sha256-mMGlUCvbXaO0XfMwVtpq7HENoSaXrQU7GSh7/OhYdus=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/tools/misc/teleconsole/default.nix b/pkgs/tools/misc/teleconsole/default.nix
deleted file mode 100644
index 3bf1f5cd34b61..0000000000000
--- a/pkgs/tools/misc/teleconsole/default.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ lib, stdenv, buildGoPackage, fetchFromGitHub }:
-
-buildGoPackage rec {
-  pname = "teleconsole";
-  version = "0.4.0";
-
-  goPackagePath = "github.com/gravitational/teleconsole";
-
-  src = fetchFromGitHub {
-    owner = "gravitational";
-    repo = "teleconsole";
-    rev = version;
-    sha256 = "01552422n0bj1iaaw6pvg9l1qr66r69sdsngxbcdjn1xh3mj74sm";
-  };
-
-  srcTeleport = fetchFromGitHub {
-    owner = "gravitational";
-    repo = "teleport";
-    rev = "2cb40abd8ea8fb2915304ea4888b5b9f3e5bc223";
-    sha256 = "1xw3bfnjbj88x465snwwzn4bmpmzmsrq9r0pkj388qwvfrclgnfk";
-  };
-
-  preBuild = ''
-    cp -r ${srcTeleport} ./go/src/github.com/gravitational/teleport
-  '';
-
-  CGO_ENABLED = 1;
-
-  meta = with lib; {
-    homepage = "https://www.teleconsole.com/";
-    description = "Share your terminal session with people you trust";
-    license = licenses.asl20;
-    # Builds for Aarch64 not possible in the current release due to
-    # incompatibilities further up the dependency chain.
-    # See:
-    #  - https://github.com/gravitational/teleport/issues/679
-    #  - https://github.com/kr/pty/issues/27
-    broken = stdenv.isAarch64;
-    maintainers = [ maintainers.kimburgess ];
-  };
-}
diff --git a/pkgs/tools/misc/tewisay/default.nix b/pkgs/tools/misc/tewisay/default.nix
index 3434ac110b35a..3ff7259b9e0a4 100644
--- a/pkgs/tools/misc/tewisay/default.nix
+++ b/pkgs/tools/misc/tewisay/default.nix
@@ -26,10 +26,10 @@ buildGoPackage rec {
       --prefix COWPATH : $out/share/tewisay/cows
   '';
 
-  meta = {
+  meta = with lib; {
     homepage = "https://github.com/lucy/tewisay";
     description = "Cowsay replacement with unicode and partial ansi escape support";
-    license = lib.licenses.cc0;
-    maintainers = [ lib.maintainers.chiiruno ];
+    license = licenses.cc0;
+    maintainers = with maintainers; [ Madouura ];
   };
 }
diff --git a/pkgs/tools/misc/thumbs/default.nix b/pkgs/tools/misc/thumbs/default.nix
new file mode 100644
index 0000000000000..60a1dce08c08f
--- /dev/null
+++ b/pkgs/tools/misc/thumbs/default.nix
@@ -0,0 +1,23 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "thumbs";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "fcsonline";
+    repo = "tmux-thumbs";
+    rev = version;
+    sha256 = "sha256-PH1nscmVhxJFupS7dlbOb+qEwG/Pa/2P6XFIbR/cfaQ=";
+  };
+
+  cargoSha256 = "sha256-6htKiXMMyYRFefJzvDnmdx3CJ3XL8zONhGlV2wcbr9g=";
+
+  cargoPatches = [ ./fix.patch ];
+  meta = with lib; {
+    homepage = "https://github.com/fcsonline/tmux-thumbs";
+    description = "A lightning fast version copy/pasting like vimium/vimperator";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ghostbuster91 ];
+  };
+}
diff --git a/pkgs/tools/misc/thumbs/fix.patch b/pkgs/tools/misc/thumbs/fix.patch
new file mode 100644
index 0000000000000..e04d7db8598af
--- /dev/null
+++ b/pkgs/tools/misc/thumbs/fix.patch
@@ -0,0 +1,13 @@
+diff --git a/src/swapper.rs b/src/swapper.rs
+index 6cf1e89..bcb0969 100644
+--- a/src/swapper.rs
++++ b/src/swapper.rs
+@@ -215,7 +215,7 @@ impl<'a> Swapper<'a> {
+     };
+
+     let pane_command = format!(
+-        "tmux capture-pane -t {active_pane_id} -p{scroll_params} | tail -n {height} | {dir}/target/release/thumbs -f '%U:%H' -t {tmp} {args}; tmux swap-pane -t {active_pane_id}; {zoom_command} tmux wait-for -S {signal}",
++        "tmux capture-pane -t {active_pane_id} -p{scroll_params} | tail -n {height} | {dir}/thumbs -f '%U:%H' -t {tmp} {args}; tmux swap-pane -t {active_pane_id}; {zoom_command} tmux wait-for -S {signal}",
+         active_pane_id = active_pane_id,
+         scroll_params = scroll_params,
+         height = self.active_pane_height.unwrap_or(i32::MAX),
diff --git a/pkgs/tools/misc/tldr/default.nix b/pkgs/tools/misc/tldr/default.nix
index 05d3026e76f4c..698236ada183a 100644
--- a/pkgs/tools/misc/tldr/default.nix
+++ b/pkgs/tools/misc/tldr/default.nix
@@ -1,23 +1,27 @@
-{ lib, stdenv, fetchFromGitHub, curl, libzip, pkg-config }:
+{ lib, stdenv, fetchFromGitHub, curl, libzip, pkg-config, installShellFiles }:
 
 stdenv.mkDerivation rec {
   pname = "tldr";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "tldr-pages";
     repo = "tldr-cpp-client";
     rev = "v${version}";
-    sha256 = "sha256-dsEqnHIs6vamdfLrkstRcV90tt7QcKIJwrPr+ksTVlQ=";
+    sha256 = "sha256-ZNUW2PebRUDLcZ2/dXClXqf8NUjgw6N73h32PJ8iwmM=";
   };
 
   buildInputs = [ curl libzip ];
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config installShellFiles ];
 
   makeFlags = ["CC=${stdenv.cc.targetPrefix}cc" "LD=${stdenv.cc.targetPrefix}cc" "CFLAGS="];
 
   installFlags = [ "PREFIX=$(out)" ];
 
+  postInstall = ''
+    installShellCompletion --cmd tldr autocomplete/complete.{bash,fish,zsh}
+  '';
+
   meta = with lib; {
     description = "Simplified and community-driven man pages";
     longDescription = ''
diff --git a/pkgs/tools/misc/tmux-mem-cpu-load/default.nix b/pkgs/tools/misc/tmux-mem-cpu-load/default.nix
index 45a5edd6ae55f..7370a21512d00 100644
--- a/pkgs/tools/misc/tmux-mem-cpu-load/default.nix
+++ b/pkgs/tools/misc/tmux-mem-cpu-load/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tmux-mem-cpu-load";
-  version = "3.5.1";
+  version = "3.6.0";
 
   src = fetchFromGitHub {
     owner = "thewtex";
     repo = "tmux-mem-cpu-load";
     rev = "v${version}";
-    sha256 = "sha256-4ZMF+RacZL9dJRCz63XPNuigTKHOW+ZcA4vB4jsnASc=";
+    sha256 = "sha256-1smhlp30y0qihm+d9RcCKY1CFbPm5gzago+OIQQT5jE=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/misc/tmuxp/default.nix b/pkgs/tools/misc/tmuxp/default.nix
index 5820cbbba2c08..b24c3ead956d1 100644
--- a/pkgs/tools/misc/tmuxp/default.nix
+++ b/pkgs/tools/misc/tmuxp/default.nix
@@ -6,11 +6,11 @@ let
 in
 pypkgs.buildPythonApplication rec {
   pname = "tmuxp";
-  version = "1.9.2";
+  version = "1.11.0";
 
   src = pypkgs.fetchPypi {
     inherit pname version;
-    sha256 = "sha256-3RlTbIq7UGvEESMvncq97bhjJw8O4m+0aFVZgBQOwkM=";
+    sha256 = "sha256-N5kZ+e17ZgLOCvV/lcT/hdG1VNqLxh98QOQyM0BmZCA=";
   };
 
   # No tests in archive
diff --git a/pkgs/tools/misc/trash-cli/default.nix b/pkgs/tools/misc/trash-cli/default.nix
index 5cbda62e51b4e..6535590e86492 100644
--- a/pkgs/tools/misc/trash-cli/default.nix
+++ b/pkgs/tools/misc/trash-cli/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "trash-cli";
-  version = "0.21.10.24";
+  version = "0.22.4.16";
 
   src = fetchFromGitHub {
     owner = "andreafrancia";
     repo = "trash-cli";
     rev = version;
-    sha256 = "01is32lk6prwhajvlmgn3xs4fcpmiqivizcqkj9k80jx6mqjifzs";
+    sha256 = "0j8iwr6cdc24gp5raxrq5483d7sfsyi8sy947w4hr2sc4j738dg5";
   };
 
   propagatedBuildInputs = [ python3Packages.psutil ];
diff --git a/pkgs/tools/misc/unclutter-xfixes/default.nix b/pkgs/tools/misc/unclutter-xfixes/default.nix
index 9e95cddda32d9..710932af5e92d 100644
--- a/pkgs/tools/misc/unclutter-xfixes/default.nix
+++ b/pkgs/tools/misc/unclutter-xfixes/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = lib.licenses.mit;
     maintainers = [ maintainers.globin ];
+    mainProgram = "unclutter";
   };
 }
diff --git a/pkgs/tools/misc/vector/default.nix b/pkgs/tools/misc/vector/default.nix
index 90f4505e027f6..ec9958ec54587 100644
--- a/pkgs/tools/misc/vector/default.nix
+++ b/pkgs/tools/misc/vector/default.nix
@@ -15,21 +15,22 @@
 , CoreServices
 , tzdata
 , cmake
+, perl
   # kafka is optional but one of the most used features
 , enableKafka ? true
   # TODO investigate adding "api" "api-client" "vrl-cli" and various "vendor-*"
   # "disk-buffer" is using leveldb TODO: investigate how useful
   # it would be, perhaps only for massive scale?
-, features ? ([ "sinks" "sources" "transforms" ]
+, features ? ([ "sinks" "sources" "transforms" "vrl-cli" ]
     # the second feature flag is passed to the rdkafka dependency
     # building on linux fails without this feature flag (both x86_64 and AArch64)
-    ++ lib.optionals enableKafka [ "rdkafka-plain" "rdkafka/dynamic_linking" ]
+    ++ lib.optionals enableKafka [ "rdkafka/gssapi-vendored" ]
     ++ lib.optional stdenv.targetPlatform.isUnix "unix")
 }:
 
 let
   pname = "vector";
-  version = "0.20.0";
+  version = "0.21.1";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -38,11 +39,11 @@ rustPlatform.buildRustPackage {
     owner = "timberio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-OkT1Gj66Z4sj3YtaMlU1lbquTECPG34qydXGbx24Ig4=";
+    sha256 = "sha256-eskm+H0D+SB3PB76T6Z+iL5jjyy51lOXy88QXsn/Azs=";
   };
 
-  cargoSha256 = "sha256-O2uy0wK4pdwjAYzIKJnCzJVsA3n+U+dw731y7OPJfP0=";
-  nativeBuildInputs = [ pkg-config cmake ];
+  cargoSha256 = "sha256-fN6o8Fcqdhs5c3RID+ok1Xo5g6nF9m3f8EWIJ47dn/k=";
+  nativeBuildInputs = [ pkg-config cmake perl ];
   buildInputs = [ oniguruma openssl protobuf rdkafka zstd ]
     ++ lib.optionals stdenv.isDarwin [ Security libiconv coreutils CoreServices ];
 
@@ -54,13 +55,15 @@ rustPlatform.buildRustPackage {
 
   TZDIR = "${tzdata}/share/zoneinfo";
 
+  # needed to dynamically link rdkafka
+  CARGO_FEATURE_DYNAMIC_LINKING=1;
+
   buildNoDefaultFeatures = true;
   buildFeatures = features;
 
   # TODO investigate compilation failure for tests
-  # dev dependency includes httpmock which depends on iashc which depends on curl-sys with http2 feature enabled
-  # compilation fails because of a missing http2 include
-  doCheck = !stdenv.isDarwin;
+  # there are about 100 tests failing (out of 1100) for version 0.21.1
+  doCheck = false;
 
   checkFlags = [
     # tries to make a network access
@@ -104,5 +107,6 @@ rustPlatform.buildRustPackage {
     homepage = "https://github.com/timberio/vector";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ thoughtpolice happysalada ];
+    platforms = with platforms; linux;
   };
 }
diff --git a/pkgs/tools/misc/vial/default.nix b/pkgs/tools/misc/vial/default.nix
index 7bc788031675d..2fc816e1ab313 100644
--- a/pkgs/tools/misc/vial/default.nix
+++ b/pkgs/tools/misc/vial/default.nix
@@ -1,12 +1,12 @@
 { lib, fetchurl, appimageTools }:
 let
   name = "vial-${version}";
-  version = "0.4.2";
+  version = "0.5";
   pname = "Vial";
 
   src = fetchurl {
     url = "https://github.com/vial-kb/vial-gui/releases/download/v${version}/${pname}-v${version}-x86_64.AppImage";
-    sha256 = "sha256-T3aSwv/qTJHR/Fa6qU1fWbp3duvny4lC+9jBwQzpw2w=";
+    sha256 = "sha256-11IA8WeDFnukm6kskjA6Qu4+rPoLTBjz6NIixAIOH5U=";
   };
 
   appimageContents = appimageTools.extractType2 { inherit name src; };
diff --git a/pkgs/tools/misc/watchexec/default.nix b/pkgs/tools/misc/watchexec/default.nix
index b9be5982f7744..d54e906f347e6 100644
--- a/pkgs/tools/misc/watchexec/default.nix
+++ b/pkgs/tools/misc/watchexec/default.nix
@@ -2,21 +2,23 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "watchexec";
-  version = "1.17.1";
+  version = "1.19.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "cli-v${version}";
-    sha256 = "13yqghdhakkwp607j84a1vbqgnqqn77a5mh27cr24352ik2vkrkq";
+    sha256 = "sha256-Zqu6Qor7kHSeOFyHjcrl6RhB8gL9pljHt7hEd6/0Kss=";
   };
 
-  cargoSha256 = "0grzfzxw705zs5qb2h7k0yws45m20ihhh4mnpmk3wargbxpn6gsh";
+  cargoSha256 = "sha256-XwgoYaqgDkNggzi2TL/JPfh8LSFSzSWOVMbkmhXX73I=";
 
   nativeBuildInputs = [ installShellFiles ];
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices Foundation libiconv ];
 
+  checkFlags = [ "--skip=help" "--skip=help_short" ];
+
   postInstall = ''
     installManPage doc/watchexec.1
     installShellCompletion --zsh --name _watchexec completions/zsh
diff --git a/pkgs/tools/misc/xvfb-run/default.nix b/pkgs/tools/misc/xvfb-run/default.nix
index 06e886e4d04fb..11875e73f9301 100644
--- a/pkgs/tools/misc/xvfb-run/default.nix
+++ b/pkgs/tools/misc/xvfb-run/default.nix
@@ -1,18 +1,39 @@
-{ lib, stdenv, fetchurl, makeWrapper, xorgserver, getopt
-, xauth, util-linux, which, fontsConf, gawk, coreutils }:
-let
-  xvfb-run = fetchurl {
-    name = "xvfb-run";
-    url = "https://raw.githubusercontent.com/archlinux/svntogit-packages/9cb733cefa92af3fca608fb051d5251160c9bbff/trunk/xvfb-run";
-    sha256 = "1307mz4nr8ga3qz73i8hbcdphky75rq8lrvfk2zm4kmv6pkbk611";
-  };
-in
-stdenv.mkDerivation {
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, makeWrapper
+, xorgserver
+, getopt
+, xauth
+, util-linux
+, which
+, fontsConf
+, gawk
+, coreutils
+, installShellFiles
+, xterm
+}:
+stdenvNoCC.mkDerivation rec {
   name = "xvfb-run";
-  nativeBuildInputs = [ makeWrapper ];
-  buildCommand = ''
+  version = "1+g87f6705";
+
+  src = fetchFromGitHub {
+    owner = "archlinux";
+    repo = "svntogit-packages";
+    rev = "87f67054c49b32511893acd22be94c47ecd44b4a";
+    sha256 = "sha256-KEg92RYgJd7naHFDKbdXEy075bt6NLcmX8VhQROHVPs=";
+  };
+
+  nativeBuildInputs = [ makeWrapper installShellFiles ];
+
+  dontUnpack = true;
+  dontBuild = true;
+  dontConfigure = true;
+
+  installPhase = ''
     mkdir -p $out/bin
-    cp ${xvfb-run} $out/bin/xvfb-run
+    cp $src/trunk/xvfb-run $out/bin/xvfb-run
+    installManPage $src/trunk/xvfb-run.1
 
     chmod a+x $out/bin/xvfb-run
     patchShebangs $out/bin/xvfb-run
@@ -21,8 +42,23 @@ stdenv.mkDerivation {
       --prefix PATH : ${lib.makeBinPath [ getopt xorgserver xauth which util-linux gawk coreutils ]}
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    (
+      unset PATH
+      echo "running xterm with xvfb-run"
+      $out/bin/xvfb-run ${lib.getBin xterm}/bin/xterm -e true
+    )
+  '';
+
+  passthru = {
+    updateScript = ./update.sh;
+  };
+
   meta = with lib; {
+    description = "Convenience script to run a virtualized X-Server";
     platforms = platforms.linux;
     license = licenses.gpl2;
+    maintainers = [ maintainers.artturin ];
   };
 }
diff --git a/pkgs/tools/misc/xvfb-run/update.sh b/pkgs/tools/misc/xvfb-run/update.sh
new file mode 100755
index 0000000000000..e592323154e22
--- /dev/null
+++ b/pkgs/tools/misc/xvfb-run/update.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnused nix-prefetch jq common-updater-scripts
+# shellcheck shell=bash
+
+set -e
+
+info=$(nix-prefetch-git --quiet --url "https://github.com/archlinux/svntogit-packages" --rev "refs/heads/packages/xorg-server")
+
+rev=$(jq -r '.rev' <<< "$info")
+sha256=$(nix hash to-sri --type sha256 "$(jq -r '.sha256' <<< "$info")")
+dir=$(jq -r '.path' <<< "$info")
+
+newXvfbsha=$(sha256sum "$dir/trunk/xvfb-run")
+oldXvfbsha=$(sha256sum "$(nix build --quiet ".#xvfb-run.src" --json --no-link | jq -r '.[].outputs.out')/trunk/xvfb-run")
+
+if [[ "$newXvfbsha" != "$oldXvfbsha" ]]; then
+    (
+        cd "$(git rev-parse --show-toplevel)"
+        update-source-version xvfb-run "1+g${rev:0:7}" "$sha256" --rev="$rev"
+    )
+fi
diff --git a/pkgs/tools/misc/yad/default.nix b/pkgs/tools/misc/yad/default.nix
index 3e5ba0c5f492f..7db1d1d1212a8 100644
--- a/pkgs/tools/misc/yad/default.nix
+++ b/pkgs/tools/misc/yad/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yad";
-  version = "10.1";
+  version = "11.0";
 
   src = fetchFromGitHub {
     owner = "v1cont";
     repo = "yad";
     rev = "v${version}";
-    sha256 = "sha256-k41Z3QVGm7JUR1ny0vJKLxakabK9Da5qCnrPUHvAkWE=";
+    sha256 = "sha256-I+3euq3qel9VCDVf0Bd4XdMOCt+g/CYlnnje50lbRr8=";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/misc/yafetch/default.nix b/pkgs/tools/misc/yafetch/default.nix
index 5a08218440079..f55926d0ae39a 100644
--- a/pkgs/tools/misc/yafetch/default.nix
+++ b/pkgs/tools/misc/yafetch/default.nix
@@ -1,29 +1,29 @@
-{ lib, stdenv, fetchFromGitLab }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "yafetch";
-  version = "unstable-2021-07-18";
+  version = "unstable-2022-04-20";
 
-  src = fetchFromGitLab {
-    owner = "cyberkitty";
+  src = fetchFromGitHub {
+    owner = "kira64xyz";
     repo = pname;
-    rev = "f3efbca54df1ffea22cc40034114af141ccff9c1";
-    sha256 = "1cxhrjy9vzq87rzql4dcknkwca7nydysp1p1x4fh1qfw79dfdmxw";
+    rev = "a118cfc13f0b475db7c266105c10138d838788b8";
+    sha256 = "bSJlerfbJG6h5dDwWQKHnVLH6DEuvuUyqaRuJ7jvOsA=";
   };
 
   # Use the provided NixOS logo automatically
   prePatch = ''
     substituteInPlace ./config.h --replace \
-      "#include \"ascii/tux.h\"" "#include \"ascii/nixos.h\""
+      "#include \"ascii/gnu.h\"" "#include \"ascii/nixos.h\""
   '';
 
   # Fixes installation path
   PREFIX = placeholder "out";
 
   meta = with lib; {
-    homepage = "https://gitlab.com/cyberkitty/yafetch";
+    homepage = "https://github.com/kira64xyz/yafetch";
     description = "Yet another fetch clone written in C++";
-    license = licenses.gpl2Only;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ivar ashley ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/tools/misc/yt-dlp/default.nix b/pkgs/tools/misc/yt-dlp/default.nix
index 89ca84395d5fe..efabd8bc453b9 100644
--- a/pkgs/tools/misc/yt-dlp/default.nix
+++ b/pkgs/tools/misc/yt-dlp/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , brotli
+, certifi
 , ffmpeg
 , rtmpdump
 , phantomjs2
@@ -20,15 +21,15 @@ buildPythonPackage rec {
   # The websites yt-dlp deals with are a very moving target. That means that
   # downloads break constantly. Because of that, updates should always be backported
   # to the latest stable release.
-  version = "2022.3.8.2";
+  version = "2022.04.08";
 
   src = fetchPypi {
     inherit pname;
     version = builtins.replaceStrings [ ".0" ] [ "." ] version;
-    sha256 = "sha256-aFRleMGObOh0ULU3adXVt/WiPlIJeEl222x8y/eVSyE=";
+    sha256 = "sha256-h1jQFlCdRXS5D73pdapwra73HtXnoZUUFYj21pRSBbo=";
   };
 
-  propagatedBuildInputs = [ brotli mutagen pycryptodomex websockets ];
+  propagatedBuildInputs = [ brotli certifi mutagen pycryptodomex websockets ];
 
   # Ensure these utilities are available in $PATH:
   # - ffmpeg: post-processing & transcoding support
diff --git a/pkgs/tools/misc/ytfzf/default.nix b/pkgs/tools/misc/ytfzf/default.nix
index fd58e79063ebd..9bcc0712c354a 100644
--- a/pkgs/tools/misc/ytfzf/default.nix
+++ b/pkgs/tools/misc/ytfzf/default.nix
@@ -16,25 +16,32 @@
 
 stdenv.mkDerivation rec {
   pname = "ytfzf";
-  version = "2.2";
+  version = "2.3";
 
   src = fetchFromGitHub {
     owner = "pystardust";
     repo = "ytfzf";
     rev = "v${version}";
-    hash = "sha256-dQq7p/aK9iiyuhuxh5eVXR9GLukwsvosONpQTI0mknw=";
+    hash = "sha256-zfoICi1VChmrRHZ3dSHGTcXkVf/zirQTycFz98xj+QY=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
 
   dontBuild = true;
 
-  installFlags = [ "PREFIX=${placeholder "out"}" "doc" ];
+  installFlags = [
+    "PREFIX="
+    "DESTDIR=${placeholder "out"}"
+    "doc"
+    "addons"
+  ];
 
   postInstall = ''
-    wrapProgram "$out/bin/ytfzf" --prefix PATH : ${lib.makeBinPath [
-      chafa coreutils curl dmenu fzf gnused jq mpv ueberzug yt-dlp
-    ]}
+    wrapProgram "$out/bin/ytfzf" \
+      --prefix PATH : ${lib.makeBinPath [
+        chafa coreutils curl dmenu fzf gnused jq mpv ueberzug yt-dlp
+      ]} \
+      --set YTFZF_SYSTEM_ADDON_DIR "$out/share/ytfzf/addons"
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/zellij/default.nix b/pkgs/tools/misc/zellij/default.nix
index e8b39bb1caa12..b12d096435bd1 100644
--- a/pkgs/tools/misc/zellij/default.nix
+++ b/pkgs/tools/misc/zellij/default.nix
@@ -10,7 +10,7 @@
 , Foundation
 , mandown
 , zellij
-, testVersion
+, testers
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -54,7 +54,7 @@ rustPlatform.buildRustPackage rec {
       --zsh <($out/bin/zellij setup --generate-completion zsh)
   '';
 
-  passthru.tests.version = testVersion { package = zellij; };
+  passthru.tests.version = testers.testVersion { package = zellij; };
 
   meta = with lib; {
     description = "A terminal workspace with batteries included";
diff --git a/pkgs/tools/misc/zoxide/default.nix b/pkgs/tools/misc/zoxide/default.nix
index 29a9c29aab483..96c7c29a2d90b 100644
--- a/pkgs/tools/misc/zoxide/default.nix
+++ b/pkgs/tools/misc/zoxide/default.nix
@@ -10,13 +10,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "zoxide";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "ajeetdsouza";
     repo = "zoxide";
     rev = "v${version}";
-    sha256 = "sha256-5syCq2Qjjk/XoYqW4MGoSSTRLqzgBwadBJwZDDdWNgU=";
+    sha256 = "sha256-f6HzSnrOaAOnA9k6e3CnXioxCTOM0VSpTOpxnmz+Tyk=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
@@ -24,14 +24,14 @@ rustPlatform.buildRustPackage rec {
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   postPatch = lib.optionalString withFzf ''
-    substituteInPlace src/fzf.rs \
+    substituteInPlace src/util.rs \
       --replace '"fzf"' '"${fzf}/bin/fzf"'
   '';
 
-  cargoSha256 = "sha256-egZqMiN53k2R1b1dbCn4j0KEJqb27TdE25YYEZ4Nvao=";
+  cargoSha256 = "sha256-OAvE/KFoS4+18J+kOZTYa9zgnkWh/0bgy9iglGyZ8PQ=";
 
   postInstall = ''
-    installManPage man/*
+    installManPage man/man*/*
     installShellCompletion --cmd zoxide \
       --bash contrib/completions/zoxide.bash \
       --fish contrib/completions/zoxide.fish \
diff --git a/pkgs/tools/networking/amass/default.nix b/pkgs/tools/networking/amass/default.nix
index d440a55f334b7..917a279a2c876 100644
--- a/pkgs/tools/networking/amass/default.nix
+++ b/pkgs/tools/networking/amass/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "amass";
-  version = "3.19.0";
+  version = "3.19.2";
 
   src = fetchFromGitHub {
     owner = "OWASP";
     repo = "Amass";
     rev = "v${version}";
-    sha256 = "sha256-mhz+SjJwVsosbfJLnFUBt4y6W+afQFokciuBrFpfC48=";
+    sha256 = "sha256-EnhTbwOnq1zTYlnSvNiXduZCp4J65Ot5FR17+e16v2s=";
   };
 
-  vendorSha256 = "sha256-DGeMSyyucdU1FGRfil3I12UZ4DR1nQWD9oEDRhWQQzo=";
+  vendorSha256 = "sha256-Yh1OAoPPWSG83WdH1caHodRWovdyYcUsEoPdckmVfHQ=";
 
   outputs = [ "out" "wordlists" ];
 
diff --git a/pkgs/tools/networking/assh/default.nix b/pkgs/tools/networking/assh/default.nix
index 0d3b08ae478aa..a52e9bf004442 100644
--- a/pkgs/tools/networking/assh/default.nix
+++ b/pkgs/tools/networking/assh/default.nix
@@ -1,8 +1,10 @@
 { lib
+, stdenv
 , buildGoModule
 , fetchFromGitHub
 , openssh
 , makeWrapper
+, ps
 }:
 
 buildGoModule rec {
@@ -18,14 +20,14 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-xLsiYM0gZL5O+Y3IkiMmzJReNW7XFN3Xejz2CkCqp5M=";
 
-  doCheck = false;
-
   ldflags = [
     "-s" "-w" "-X moul.io/assh/v2/pkg/version.Version=${version}"
   ];
 
   nativeBuildInputs = [ makeWrapper ];
 
+  checkInputs = lib.optionals stdenv.isDarwin [ ps ];
+
   postInstall = ''
     wrapProgram "$out/bin/assh" \
       --prefix PATH : ${openssh}/bin
diff --git a/pkgs/tools/networking/bitmask-vpn/default.nix b/pkgs/tools/networking/bitmask-vpn/default.nix
index 35f2e801f5316..8924924448e4e 100644
--- a/pkgs/tools/networking/bitmask-vpn/default.nix
+++ b/pkgs/tools/networking/bitmask-vpn/default.nix
@@ -78,6 +78,9 @@ buildGoModule rec {
     substituteInPlace providers/vendor.conf \
       --replace "provider = riseup" "provider = ${provider}"
 
+    substituteInPlace branding/templates/debian/app.desktop-template \
+      --replace "Icon=icon" "Icon=${pname}"
+
     patchShebangs gui/build.sh
     wrapPythonProgramsIn branding/scripts
   '' + lib.optionalString stdenv.isLinux ''
@@ -130,11 +133,12 @@ buildGoModule rec {
   '';
 
   postInstall = ''
-    install -m 755 -D -t $out/bin build/qt/release/${provider}-vpn
+    install -m 755 -D -t $out/bin build/qt/release/${pname}
 
     VERSION=${version} VENDOR_PATH=providers branding/scripts/generate-debian branding/templates/debian/data.json
     (cd branding/templates/debian && ${python3Packages.python}/bin/python3 generate.py)
-    install -m 444 -D branding/templates/debian/app.desktop $out/share/applications/${provider}-vpn.desktop
+    install -m 444 -D branding/templates/debian/app.desktop $out/share/applications/${pname}.desktop
+    install -m 444 -D providers/${provider}/assets/icon.svg $out/share/icons/hicolor/scalable/apps/${pname}.svg
   '' + lib.optionalString stdenv.isLinux ''
     install -m 444 -D -t $out/share/polkit-1/actions ${bitmask-root}/share/polkit-1/actions/se.leap.bitmask.policy
   '';
@@ -154,7 +158,7 @@ buildGoModule rec {
       a variety of trusted service provider all from one app.
       Current providers include Riseup Networks
       and The Calyx Institute, where the former is default.
-      The <literal>${provider}-vpn</literal> executable should appear
+      The <literal>${pname}</literal> executable should appear
       in your desktop manager's XDG menu or could be launch in a terminal
       to get an execution log. A new icon should then appear in your systray
       to control the VPN and configure some options.
diff --git a/pkgs/tools/networking/bore-cli/default.nix b/pkgs/tools/networking/bore-cli/default.nix
new file mode 100644
index 0000000000000..370a726caa643
--- /dev/null
+++ b/pkgs/tools/networking/bore-cli/default.nix
@@ -0,0 +1,23 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "bore-cli";
+  version = "0.2.3";
+
+  src = fetchFromGitHub {
+    owner = "ekzhang";
+    repo = "bore";
+    rev = "v${version}";
+    sha256 = "sha256-KSJ5KYXOwjtK1oE9IpsVKb7H4uuKJroCpM1Dk+2XJlY=";
+  };
+
+  cargoSha256 = "sha256-HPMEbHDRmsmcr7Fuhsyr+NkdI9t1sL7q8uzj8sFks0s=";
+
+  # tests do not find grcov path correctly
+  meta = with lib; {
+    description = "Rust tool to create TCP tunnels";
+    homepage = "https://github.com/ekzhang/bore";
+    license = licenses.mit;
+    maintainers = with maintainers; [ DieracDelta ];
+  };
+}
diff --git a/pkgs/tools/networking/cantoolz/default.nix b/pkgs/tools/networking/cantoolz/default.nix
index 11a0315184c9a..b31dc21b7a326 100644
--- a/pkgs/tools/networking/cantoolz/default.nix
+++ b/pkgs/tools/networking/cantoolz/default.nix
@@ -1,26 +1,18 @@
 { lib
-, bitstring
-, buildPythonApplication
 , fetchFromGitHub
 , fetchpatch
-, flask
-, mido
-, numpy
-, pyserial
-, pytestCheckHook
-, pythonOlder
+, python3
 }:
 
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "cantoolz";
   version = "3.7.0";
-  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "CANToolz";
     repo = "CANToolz";
     rev = "v${version}";
-    sha256 = "0xkj7zyx6pz866q61c84mdagpgdyd633v85hk7qxhamca33rc4yi";
+    sha256 = "sha256-0ROWx1CsKtjxmbCgPYZpvr37VKsEsWCwMehf0/0/cnY=";
   };
 
   patches = [
@@ -31,7 +23,7 @@ buildPythonApplication rec {
     })
   ];
 
-  propagatedBuildInputs = [
+  propagatedBuildInputs = with python3.pkgs; [
     flask
     pyserial
     mido
@@ -39,9 +31,19 @@ buildPythonApplication rec {
     bitstring
   ];
 
-  checkInputs = [ pytestCheckHook ];
-  disabledTests = [ "test_process" ];
-  pythonImportsCheck = [ "cantoolz" ];
+  checkInputs = with python3.pkgs; [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    "test_process"
+    # Sandbox issue
+    "test_server"
+  ];
+
+  pythonImportsCheck = [
+    "cantoolz"
+  ];
 
   meta = with lib; {
     description = "Black-box CAN network analysis framework";
diff --git a/pkgs/tools/networking/cassowary/default.nix b/pkgs/tools/networking/cassowary/default.nix
index 6280b923ec0c8..4e84b858538c4 100644
--- a/pkgs/tools/networking/cassowary/default.nix
+++ b/pkgs/tools/networking/cassowary/default.nix
@@ -13,8 +13,6 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-hGpiL88x2roFEjJJM4CKyt3k66VK1pEnpOwvhDPDp6M=";
 
-  doCheck = false;
-
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/changetower/default.nix b/pkgs/tools/networking/changetower/default.nix
index e0e38c8d221d6..62a277dd0cfd5 100644
--- a/pkgs/tools/networking/changetower/default.nix
+++ b/pkgs/tools/networking/changetower/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/Dc4ts/ChangeTower";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "ChangeTower";
   };
 }
diff --git a/pkgs/tools/networking/checkip/default.nix b/pkgs/tools/networking/checkip/default.nix
index fb30ad59dff3a..1ae0f00360262 100644
--- a/pkgs/tools/networking/checkip/default.nix
+++ b/pkgs/tools/networking/checkip/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "checkip";
-  version = "0.19.0";
+  version = "0.35.2";
 
   src = fetchFromGitHub {
     owner = "jreisinger";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-h8YZGTjEEQb68TrwMDnAqCJWkNPSuWSAJKcOMLXwXio=";
+    sha256 = "sha256-O6jVedVwzC575s7LS0gx1t6mUizQGv4Gcqra57vXX+w=";
   };
 
   vendorSha256 = "sha256-NHu1hZFPT2k8izrvvz7w0vlVe/nKH0nS4oXUGS8CWcc=";
diff --git a/pkgs/tools/networking/cjdns/default.nix b/pkgs/tools/networking/cjdns/default.nix
index b68eaeabd633b..e8dc5e370beaa 100644
--- a/pkgs/tools/networking/cjdns/default.nix
+++ b/pkgs/tools/networking/cjdns/default.nix
@@ -15,7 +15,15 @@ stdenv.mkDerivation rec {
     # for flock
     lib.optional stdenv.isLinux util-linux;
 
-  CFLAGS = "-O2 -Wno-error=stringop-truncation";
+  NIX_CFLAGS_COMPILE = [
+    "-O2"
+    "-Wno-error=array-bounds"
+    "-Wno-error=stringop-overflow"
+    "-Wno-error=stringop-truncation"
+  ] ++ lib.optionals (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "11") [
+    "-Wno-error=stringop-overread"
+  ];
+
   buildPhase =
     lib.optionalString stdenv.isAarch32 "Seccomp_NO=1 "
     + "bash do";
diff --git a/pkgs/tools/networking/clash/default.nix b/pkgs/tools/networking/clash/default.nix
index 844335df223c3..c73e487904efb 100644
--- a/pkgs/tools/networking/clash/default.nix
+++ b/pkgs/tools/networking/clash/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildGoModule, testVersion, clash }:
+{ lib, fetchFromGitHub, buildGoModule, testers, clash }:
 
 buildGoModule rec {
   pname = "clash";
@@ -26,7 +26,7 @@ buildGoModule rec {
     "-X github.com/Dreamacro/clash/constant.Version=${version}"
   ];
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = clash;
     command = "clash -v";
   };
diff --git a/pkgs/tools/networking/corerad/default.nix b/pkgs/tools/networking/corerad/default.nix
index df6a631593717..360cc96b707bb 100644
--- a/pkgs/tools/networking/corerad/default.nix
+++ b/pkgs/tools/networking/corerad/default.nix
@@ -1,19 +1,17 @@
-{ lib, buildGo118Module, fetchFromGitHub, nixosTests }:
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
 
-buildGo118Module rec {
+buildGoModule rec {
   pname = "corerad";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchFromGitHub {
     owner = "mdlayher";
     repo = "corerad";
     rev = "v${version}";
-    sha256 = "sha256-2XPWexpr3xGwnvjT08BVq6uf1haPuZGwKswiy/1Z8vE=";
+    sha256 = "sha256-1v7jAYLIflXIKY0zltzkre4sNv9qqWxFGWrQuOBr2s0=";
   };
 
-  vendorSha256 = "sha256-+9KjgbKuAJexdGEKu9hIsHfHsVbKeB5ZtSgFzM2/bOI=";
-
-  doCheck = false;
+  vendorSha256 = "sha256-oS9nI1BELDLFksN+NbLT1Eklg67liOvcRbxtGdYGJJA=";
 
   # Since the tarball pulled from GitHub doesn't contain git tag information,
   # we fetch the expected tag's timestamp from a file in the root of the
@@ -36,5 +34,6 @@ buildGo118Module rec {
     description = "Extensible and observable IPv6 NDP RA daemon";
     license = licenses.asl20;
     maintainers = with maintainers; [ mdlayher ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/croc/default.nix b/pkgs/tools/networking/croc/default.nix
index fa55c6e94ef45..46b91fdf84c24 100644
--- a/pkgs/tools/networking/croc/default.nix
+++ b/pkgs/tools/networking/croc/default.nix
@@ -2,25 +2,22 @@
 
 buildGoModule rec {
   pname = "croc";
-  version = "9.5.2";
+  version = "9.5.3";
 
   src = fetchFromGitHub {
     owner = "schollz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Ha84frbyRDxCRIDezlKeA+Fv9+rmpCoU+EAgMBkf3fo=";
+    sha256 = "sha256-yBXW9jrE9VUEu0EoBCtctTkQo129Vo+zFgP0Hkmm5hQ=";
   };
 
-  vendorSha256 = "sha256-uaSDder/uzy708YE1xqpL9Te4629JD2IiVSCYhYzPwg=";
-
-  doCheck = false;
+  vendorSha256 = "sha256-nRZbSkSix2knIQBEMPx5oC47VKXNZ2e1NgKt9mAhaPQ=";
 
   subPackages = [ "." ];
 
   passthru = {
     tests = {
-      # test fails
-      #local-relay = callPackage ./test-local-relay.nix { };
+      local-relay = callPackage ./test-local-relay.nix { };
     };
   };
   meta = with lib; {
diff --git a/pkgs/tools/networking/curl/7.82.0-openssl-fix-CN-check.patch b/pkgs/tools/networking/curl/7.82.0-openssl-fix-CN-check.patch
new file mode 100644
index 0000000000000..5d84f51249955
--- /dev/null
+++ b/pkgs/tools/networking/curl/7.82.0-openssl-fix-CN-check.patch
@@ -0,0 +1,30 @@
+From 911714d617c106ed5d553bf003e34ec94ab6a136 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg <daniel@haxx.se>
+Date: Tue, 8 Mar 2022 13:38:13 +0100
+Subject: [PATCH] openssl: fix CN check error code
+
+Due to a missing 'else' this returns error too easily.
+
+Regressed in: d15692ebb
+
+Reported-by: Kristoffer Gleditsch
+Fixes #8559
+Closes #8560
+---
+ lib/vtls/openssl.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c
+index 0b79fc50a9c5..4618beeb3867 100644
+--- a/lib/vtls/openssl.c
++++ b/lib/vtls/openssl.c
+@@ -1817,7 +1817,8 @@ CURLcode Curl_ossl_verifyhost(struct Curl_easy *data, struct connectdata *conn,
+               memcpy(peer_CN, ASN1_STRING_get0_data(tmp), peerlen);
+               peer_CN[peerlen] = '\0';
+             }
+-            result = CURLE_OUT_OF_MEMORY;
++            else
++              result = CURLE_OUT_OF_MEMORY;
+           }
+         }
+         else /* not a UTF8 name */
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index bfd48893165cd..7c7f301552e7e 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -54,18 +54,19 @@ assert zstdSupport -> zstd != null;
 
 stdenv.mkDerivation rec {
   pname = "curl";
-  version = "7.81.0";
+  version = "7.82.0";
 
   src = fetchurl {
     urls = [
       "https://curl.haxx.se/download/${pname}-${version}.tar.bz2"
       "https://github.com/curl/curl/releases/download/${lib.replaceStrings ["."] ["_"] pname}-${version}/${pname}-${version}.tar.bz2"
     ];
-    sha256 = "sha256-Hno41wGOwGDx8W34OYVPCInpThIsTPpdOjfC3Fbx4lg=";
+    sha256 = "sha256-RtmgQAozQI/ZkncLBKRKdDSzA28ugImsKLV1c9WdNx8=";
   };
 
   patches = [
     ./7.79.1-darwin-no-systemconfiguration.patch
+    ./7.82.0-openssl-fix-CN-check.patch
   ];
 
   outputs = [ "bin" "dev" "out" "man" "devdoc" ];
@@ -109,7 +110,8 @@ stdenv.mkDerivation rec {
       "--disable-manual"
       # Disable default CA bundle, use NIX_SSL_CERT_FILE or fallback
       # to nss-cacert from the default profile.
-      "--without-ca-bundle"
+      # https://github.com/curl/curl/issues/8696 - fallback is not supported by HTTP3
+      (if http3Support then "--with-ca-bundle=/etc/ssl/certs/ca-certificates.crt" else "--without-ca-bundle")
       "--without-ca-path"
       (lib.enableFeature c-aresSupport "ares")
       (lib.enableFeature ldapSupport "ldap")
diff --git a/pkgs/tools/networking/curlie/default.nix b/pkgs/tools/networking/curlie/default.nix
index 2e6683ef4ea36..c251e1c149ee2 100644
--- a/pkgs/tools/networking/curlie/default.nix
+++ b/pkgs/tools/networking/curlie/default.nix
@@ -1,19 +1,24 @@
-{ buildGoModule, fetchFromGitHub, lib }:
+{ buildGoModule, fetchFromGitHub, lib, curlie, testers }:
 
 buildGoModule rec {
   pname = "curlie";
-  version = "1.6.7";
+  version = "1.6.9";
 
-  src= fetchFromGitHub {
+  src = fetchFromGitHub {
     owner = "rs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-uWLJWhsqJaLji2JSuVX8Vu929AdozhtAPwsqXdpEt84=";
+    hash = "sha256-3EKxuEpFm+lp2myMfymYYY9boSXGOF2iAdjtGKnjJK0=";
   };
 
   vendorSha256 = "sha256-tYZtnD7RUurhl8yccXlTIvOxybBJITM+it1ollYJ1OI=";
 
-  doCheck = false;
+  ldflags = [ "-s" "-w" "-X main.version=${version}" ];
+
+  passthru.tests.version = testers.testVersion {
+    package = curlie;
+    command = "curlie version";
+  };
 
   meta = with lib; {
     description = "Frontend to curl that adds the ease of use of httpie, without compromising on features and performance";
diff --git a/pkgs/tools/networking/dd-agent/datadog-agent.nix b/pkgs/tools/networking/dd-agent/datadog-agent.nix
index 412995b710f66..2b87678f2cae5 100644
--- a/pkgs/tools/networking/dd-agent/datadog-agent.nix
+++ b/pkgs/tools/networking/dd-agent/datadog-agent.nix
@@ -10,15 +10,15 @@ let
 
 in buildGoModule rec {
   pname = "datadog-agent";
-  version = "7.33.1";
+  version = "7.35.0";
 
   src = fetchFromGitHub {
     inherit owner repo;
     rev = version;
-    sha256 = "sha256-H8apgLdm90/gVsqcCSc3gymgUUP2AWcNPgV9394UUeQ=";
+    sha256 = "sha256-N/IiixWOLLzFXqTePVVdaNtUYE3ZRk0NlXkaqNQm6ms=";
   };
 
-  vendorSha256 = "sha256-qIm9ZIQTNmKUtTMBsGzH0t4MrIAvksea9t7p5cC6ykk=";
+  vendorSha256 = "sha256-3Sg8A3uVt6/aVih042P41CzfkmdryM4WSHyWQK0qhOs=";
 
   subPackages = [
     "cmd/agent"
diff --git a/pkgs/tools/networking/dhcp/default.nix b/pkgs/tools/networking/dhcp/default.nix
index 10418d9781059..1d1a01d17cfaa 100644
--- a/pkgs/tools/networking/dhcp/default.nix
+++ b/pkgs/tools/networking/dhcp/default.nix
@@ -1,15 +1,19 @@
 { stdenv, fetchurl, fetchpatch, perl, file, nettools, iputils, iproute2, makeWrapper
 , coreutils, gnused, openldap ? null
 , buildPackages, lib
+
+# client and relay are end of life, remove after 4.4.3
+, withClient ? false
+, withRelay ? false
 }:
 
 stdenv.mkDerivation rec {
   pname = "dhcp";
-  version = "4.4.2-P1";
+  version = "4.4.3";
 
   src = fetchurl {
     url = "https://ftp.isc.org/isc/dhcp/${version}/${pname}-${version}.tar.gz";
-    sha256 = "06jsr0cg5rsmyibshrpcb9za0qgwvqccashdma7mlm1rflrh8pmh";
+    sha256 = "sha256-Dj7GtMKgXsAUiHS82ZmmbQVRg3jXdCH2B/sLydATWBg=";
   };
 
   patches =
@@ -18,20 +22,6 @@ stdenv.mkDerivation rec {
       # patch, the hostname doesn't get set properly if the old
       # hostname (i.e. before reboot) is equal to the new hostname.
       ./set-hostname.patch
-
-      (fetchpatch {
-        # upstream build fix against -fno-common compilers like >=gcc-10
-        url = "https://gitlab.isc.org/isc-projects/dhcp/-/commit/6c7e61578b1b449272dbb40dd8b98d03dad8a57a.patch";
-        sha256 = "1g37ix0yf9zza8ri8bg438ygcjviniblfyb20y4gzc8lysy28m8b";
-      })
-
-      # Fix parallel build failure, the patch is pending upstream inclusion:
-      #  https://gitlab.isc.org/isc-projects/dhcp/-/merge_requests/76
-      (fetchpatch {
-        name = "parallel-make.patch";
-        url = "https://gitlab.isc.org/isc-projects/dhcp/-/commit/46d101b97c5a3b19a3f63f7b60e5f88994a64e22.patch";
-        sha256 = "1y3nsmqjzcg4bhp1xmqp47v7rkl3bpcildkx6mlrg255yvxapmdp";
-      })
     ];
 
   nativeBuildInputs = [ perl makeWrapper ];
@@ -77,6 +67,10 @@ stdenv.mkDerivation rec {
         --replace /sbin/ip ${iproute2}/sbin/ip
       wrapProgram "$out/sbin/dhclient-script" --prefix PATH : \
         "${nettools}/bin:${nettools}/sbin:${iputils}/bin:${coreutils}/bin:${gnused}/bin"
+    '' + lib.optionalString (!withClient) ''
+      rm $out/sbin/{dhclient,dhclient-script,.dhclient-script-wrapped}
+    '' + lib.optionalString (!withRelay) ''
+      rm $out/sbin/dhcrelay
     '';
 
   preConfigure =
@@ -103,5 +97,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.isc.org/dhcp/";
     license = licenses.mpl20;
     platforms = platforms.unix;
+    knownVulnerabilities = lib.optional (withClient || withRelay) "The client and relay component of the dhcp package have reached their end of life";
   };
 }
diff --git a/pkgs/tools/networking/dnscrypt-proxy2/default.nix b/pkgs/tools/networking/dnscrypt-proxy2/default.nix
index af4f1db4cd1d1..7d84365eb9964 100644
--- a/pkgs/tools/networking/dnscrypt-proxy2/default.nix
+++ b/pkgs/tools/networking/dnscrypt-proxy2/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
     license = licenses.isc;
     homepage = "https://dnscrypt.info/";
     maintainers = with maintainers; [ atemu waynr ];
+    mainProgram = "dnscrypt-proxy";
     platforms = with platforms; unix;
   };
 }
diff --git a/pkgs/tools/networking/dnsproxy/default.nix b/pkgs/tools/networking/dnsproxy/default.nix
index 2800496aae9aa..c9044cb92ac43 100644
--- a/pkgs/tools/networking/dnsproxy/default.nix
+++ b/pkgs/tools/networking/dnsproxy/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "dnsproxy";
-  version = "0.42.0";
+  version = "0.42.1";
 
   src = fetchFromGitHub {
     owner = "AdguardTeam";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-UXFDFS2TFzo7DcExazt4h0TTnGeMf6d3FAiPXZWB7Ys=";
+    sha256 = "sha256-m4Xc5ZorsO6WcbHmJGROJ8SsPCm/KmFapQRQZTZIQKw=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/tools/networking/dnstake/default.nix b/pkgs/tools/networking/dnstake/default.nix
index 9ddf853b7d9b6..e1719d19ecfbf 100644
--- a/pkgs/tools/networking/dnstake/default.nix
+++ b/pkgs/tools/networking/dnstake/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "dnstake";
-  version = "0.1.0";
+  version = "0.1.1";
 
   src = fetchFromGitHub {
     owner = "pwnesia";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-XfZDRu1UrH5nVh1GQCQVaEamKorWSOxQZs556iDqfS8=";
+    sha256 = "sha256-k6j7DIwK8YAKmEjn8JJO7XBcap9ui6cgUSJG7CeHAAM=";
   };
 
   vendorSha256 = "sha256-l3IKvcO10C+PVDX962tFWny7eMNC48ATIVqiHjpVH/Y=";
diff --git a/pkgs/tools/networking/eternal-terminal/default.nix b/pkgs/tools/networking/eternal-terminal/default.nix
index 035a99103fc7d..0fb559afc990c 100644
--- a/pkgs/tools/networking/eternal-terminal/default.nix
+++ b/pkgs/tools/networking/eternal-terminal/default.nix
@@ -7,6 +7,7 @@
 , openssl
 , protobuf
 , zlib
+, catch2
 }:
 
 stdenv.mkDerivation rec {
@@ -20,6 +21,10 @@ stdenv.mkDerivation rec {
     hash = "sha256-cCZbG0CD5V/FTj1BuVr083EJ+BCgIcKHomNtpJb3lOo=";
   };
 
+  preBuild = ''
+    cp ${catch2}/include/catch2/catch.hpp ../external_imported/Catch2/single_include/catch2/catch.hpp
+  '';
+
   nativeBuildInputs = [
     cmake
   ];
@@ -42,6 +47,8 @@ stdenv.mkDerivation rec {
     "-std=c++17"
   ];
 
+  doCheck = true;
+
   meta = with lib; {
     description = "Remote shell that automatically reconnects without interrupting the session";
     homepage = "https://eternalterminal.dev/";
diff --git a/pkgs/tools/networking/findomain/default.nix b/pkgs/tools/networking/findomain/default.nix
index 158129c2c1f4f..a1020a319a7d3 100644
--- a/pkgs/tools/networking/findomain/default.nix
+++ b/pkgs/tools/networking/findomain/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "findomain";
-  version = "7.2.0";
+  version = "8.1.1";
 
   src = fetchFromGitHub {
     owner = "Edu4rdSHL";
     repo = pname;
     rev = version;
-    sha256 = "sha256-NhsEXYEYoRZ/HlMS+MP/N+ZxB13DDZr5B8MY5dbONP0=";
+    sha256 = "sha256-ngT9ZtPsCzcmZbwpmzbEcSUTHPezzdyAB12qrm5Z6n0=";
   };
 
-  cargoSha256 = "sha256-Y/DgAMWhTgHuhdbYxpsg7UxLF7hXNQEY1aoaUbKdDEM=";
+  cargoSha256 = "sha256-nHNS1Uskggm5e1paWRSiL4HHcooDbYe0toMwR05OkDQ=";
 
   nativeBuildInputs = [ installShellFiles perl ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
diff --git a/pkgs/tools/networking/godns/default.nix b/pkgs/tools/networking/godns/default.nix
index 0e026e5d571c9..0e1096240abc8 100644
--- a/pkgs/tools/networking/godns/default.nix
+++ b/pkgs/tools/networking/godns/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "godns";
-  version = "2.7.1";
+  version = "2.7.4";
 
   src = fetchFromGitHub {
     owner = "TimothyYe";
     repo = "godns";
     rev = "v${version}";
-    sha256 = "sha256-4PkG8u0wYHHFWR9s4s08tkeBbXdxTUv48HRZsSraNak=";
+    sha256 = "sha256-0aE+XcRqk/3/auscVdqdzehrpM6CeSdAJTugHXY8rek=";
   };
 
   vendorSha256 = "sha256-vhByl9oJjFIvOskAgLubZ5RCcitKd2jjxi8D9nU6850=";
diff --git a/pkgs/tools/networking/gost/default.nix b/pkgs/tools/networking/gost/default.nix
index 13cac74446174..c8f42b3ad4a73 100644
--- a/pkgs/tools/networking/gost/default.nix
+++ b/pkgs/tools/networking/gost/default.nix
@@ -13,8 +13,33 @@ buildGoModule rec {
 
   vendorSha256 = "1cgb957ipkiix3x0x84c77a1i8l679q3kqykm1lhb4f19x61dqjh";
 
-  # Many tests fail.
-  doCheck = false;
+  postPatch = ''
+    substituteInPlace http2_test.go \
+      --replace "TestH2CForwardTunnel" "SkipH2CForwardTunnel" \
+      --replace "TestH2ForwardTunnel" "SkipH2ForwardTunnel"
+
+    substituteInPlace resolver_test.go \
+      --replace '{NameServer{Addr: "1.1.1.1"}, "github", true},' "" \
+      --replace '{NameServer{Addr: "1.1.1.1"}, "github.com", true},' "" \
+      --replace '{NameServer{Addr: "1.1.1.1:53"}, "github.com", true},' "" \
+      --replace '{NameServer{Addr: "1.1.1.1:53", Protocol: "tcp"}, "github.com", true},' "" \
+      --replace '{NameServer{Addr: "1.1.1.1:853", Protocol: "tls"}, "github.com", true},' "" \
+      --replace '{NameServer{Addr: "1.1.1.1:853", Protocol: "tls", Hostname: "cloudflare-dns.com"}, "github.com", true},' "" \
+      --replace '{NameServer{Addr: "https://cloudflare-dns.com/dns-query", Protocol: "https"}, "github.com", true},' "" \
+      --replace '{NameServer{Addr: "https://1.0.0.1/dns-query", Protocol: "https"}, "github.com", true},' ""
+
+    # Skip TestShadowTCP, TestShadowUDP: #70 #71 #72 #78 #83 #85 #86 #87 #93
+    substituteInPlace ss_test.go \
+      --replace '{url.User("xchacha20"), url.UserPassword("xchacha20", "123456"), false},' "" \
+      --replace '{url.UserPassword("xchacha20", "123456"), url.User("xchacha20"), false},' "" \
+      --replace '{url.UserPassword("xchacha20", "123456"), url.UserPassword("xchacha20", "abc"), false},' "" \
+      --replace '{url.UserPassword("CHACHA20-IETF-POLY1305", "123456"), url.UserPassword("CHACHA20-IETF-POLY1305", "123456"), true},' "" \
+      --replace '{url.UserPassword("AES-128-GCM", "123456"), url.UserPassword("AES-128-GCM", "123456"), true},' "" \
+      --replace '{url.User("AES-192-GCM"), url.UserPassword("AES-192-GCM", "123456"), false},' "" \
+      --replace '{url.UserPassword("AES-192-GCM", "123456"), url.User("AES-192-GCM"), false},' "" \
+      --replace '{url.UserPassword("AES-192-GCM", "123456"), url.UserPassword("AES-192-GCM", "abc"), false},' "" \
+      --replace '{url.UserPassword("AES-256-GCM", "123456"), url.UserPassword("AES-256-GCM", "123456"), true},' ""
+  '';
 
   meta = with lib; {
     description = "A simple tunnel written in golang";
diff --git a/pkgs/tools/networking/gping/default.nix b/pkgs/tools/networking/gping/default.nix
index 3ca9d3b553e46..89d07b8516645 100644
--- a/pkgs/tools/networking/gping/default.nix
+++ b/pkgs/tools/networking/gping/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gping";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "orf";
     repo = "gping";
     rev = "gping-v${version}";
-    sha256 = "sha256-Q7M/vDhECEIQ8s8qt1U7wESqv+Im79TyZ6s2vqjU5ps=";
+    sha256 = "sha256-/CH9cSOkgXxdxSN1G4Jg404KOHEYhnsSCK4QB6Zdk+A=";
   };
 
-  cargoSha256 = "sha256-cnmjfvMqq8VDMvjFPnjmmH57Gaqttk36AwEtuuAT6qU=";
+  cargoSha256 = "sha256-2knD3MwrJKvbdovh6bd81GqHHqeAG1OFzXsLB4eO0Do=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
diff --git a/pkgs/tools/networking/haproxy/default.nix b/pkgs/tools/networking/haproxy/default.nix
index 47b7a601d438c..2c65634f0125d 100644
--- a/pkgs/tools/networking/haproxy/default.nix
+++ b/pkgs/tools/networking/haproxy/default.nix
@@ -11,11 +11,11 @@ assert usePcre -> pcre != null;
 
 stdenv.mkDerivation rec {
   pname = "haproxy";
-  version = "2.5.4";
+  version = "2.5.5";
 
   src = fetchurl {
     url = "https://www.haproxy.org/download/${lib.versions.majorMinor version}/src/${pname}-${version}.tar.gz";
-    sha256 = "sha256-3EAV2Fx/74EbRZgDt2MAHYCbB6klHcGGT+25oHtErvs=";
+    sha256 = "sha256-BjxIRc2y128pLvRNnAEXqFPY0Qrl2WFbQGsUpNdP5Lk=";
   };
 
   buildInputs = [ openssl zlib ]
diff --git a/pkgs/tools/networking/innernet/default.nix b/pkgs/tools/networking/innernet/default.nix
index 68ccdfc3870d7..6f7669ff6f7f7 100644
--- a/pkgs/tools/networking/innernet/default.nix
+++ b/pkgs/tools/networking/innernet/default.nix
@@ -8,7 +8,7 @@
 , Security
 , libiconv
 , innernet
-, testVersion
+, testers
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -40,8 +40,8 @@ rustPlatform.buildRustPackage rec {
   '';
 
   passthru.tests = {
-    serverVersion = testVersion { package = innernet; command = "innernet-server --version"; };
-    version = testVersion { package = innernet; command = "innernet --version"; };
+    serverVersion = testers.testVersion { package = innernet; command = "innernet-server --version"; };
+    version = testers.testVersion { package = innernet; command = "innernet --version"; };
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/iperf/3.nix b/pkgs/tools/networking/iperf/3.nix
index 9ec491f1c5705..7d7e53cef763d 100644
--- a/pkgs/tools/networking/iperf/3.nix
+++ b/pkgs/tools/networking/iperf/3.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, openssl, fetchpatch }:
+{ lib, stdenv, fetchurl, openssl, fetchpatch, lksctp-tools }:
 
 stdenv.mkDerivation rec {
   pname = "iperf";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0pvy1cj92phpbldw0bdc0ds70n8irqcyn1ybyis0a6nnz84v936y";
   };
 
-  buildInputs = [ openssl ];
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isLinux [ lksctp-tools ];
   configureFlags = [
     "--with-openssl=${openssl.dev}"
   ];
diff --git a/pkgs/tools/networking/ipfetch/default.nix b/pkgs/tools/networking/ipfetch/default.nix
index 802ef749373e2..a8b354ec9e6d3 100755
--- a/pkgs/tools/networking/ipfetch/default.nix
+++ b/pkgs/tools/networking/ipfetch/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   strictDeps = true;
   buildInputs = [ bash wget ];
   nativeBuildInputs = [ makeWrapper ];
-  patchPhase = ''
+  postPatch = ''
     patchShebangs --host ipfetch
     # Not only does `/usr` have to be replaced but also `/flags` needs to be added because with Nix the script is broken without this. The `/flags` is somehow not needed if you install via the install script in the source repository.
     substituteInPlace ./ipfetch --replace /usr/share/ipfetch $out/usr/share/ipfetch/flags
diff --git a/pkgs/tools/networking/minio-client/default.nix b/pkgs/tools/networking/minio-client/default.nix
index c4a0baf3160da..b0a689db7bfaf 100644
--- a/pkgs/tools/networking/minio-client/default.nix
+++ b/pkgs/tools/networking/minio-client/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
     homepage = "https://github.com/minio/mc";
     description = "A replacement for ls, cp, mkdir, diff and rsync commands for filesystems and object storage";
     maintainers = with maintainers; [ bachp eelco ];
+    mainProgram = "mc";
     platforms = platforms.unix;
     license = licenses.asl20;
   };
diff --git a/pkgs/tools/networking/modemmanager/default.nix b/pkgs/tools/networking/modemmanager/default.nix
index 126b3b513a86e..c9d56044b0dc0 100644
--- a/pkgs/tools/networking/modemmanager/default.nix
+++ b/pkgs/tools/networking/modemmanager/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "modemmanager";
-  version = "1.18.4";
+  version = "1.18.6";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/ModemManager/ModemManager-${version}.tar.xz";
-    sha256 = "sha256-EfuXD2Pi2ojfS22HWeTuZJlExRUkS5eb9Qp6bfHX8Zk=";
+    sha256 = "sha256-1PgEsxz1BCOcXx1Jc8YglcAMuh7pq7UDcY2sbRRqRwo=";
   };
 
   nativeBuildInputs = [ vala gobject-introspection gettext pkg-config ];
diff --git a/pkgs/tools/networking/mosh/default.nix b/pkgs/tools/networking/mosh/default.nix
index 7823b7eb90963..121ba4395b519 100644
--- a/pkgs/tools/networking/mosh/default.nix
+++ b/pkgs/tools/networking/mosh/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, fetchpatch, zlib, protobuf, ncurses, pkg-config
-, makeWrapper, perlPackages, openssl, autoreconfHook, openssh, bash-completion
+, makeWrapper, perl, openssl, autoreconfHook, openssh, bash-completion
 , withUtempter ? stdenv.isLinux, libutempter }:
 
 stdenv.mkDerivation rec {
@@ -11,8 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "05hjhlp6lk8yjcy59zywpf0r6s0h0b9zxq0lw66dh9x8vxrhaq6s";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config makeWrapper protobuf ];
-  buildInputs = [ protobuf ncurses zlib openssl bash-completion perlPackages.perl ]
+  nativeBuildInputs = [ autoreconfHook pkg-config makeWrapper protobuf perl ];
+  buildInputs = [ protobuf ncurses zlib openssl bash-completion perl ]
     ++ lib.optional withUtempter libutempter;
 
   strictDeps = true;
diff --git a/pkgs/tools/networking/mozillavpn/default.nix b/pkgs/tools/networking/mozillavpn/default.nix
new file mode 100644
index 0000000000000..ab03c61a164c3
--- /dev/null
+++ b/pkgs/tools/networking/mozillavpn/default.nix
@@ -0,0 +1,132 @@
+{ buildGoModule
+, fetchFromGitHub
+, fetchpatch
+, go
+, lib
+, pkg-config
+, polkit
+, python3
+, qmake
+, qtbase
+, qtcharts
+, qtgraphicaleffects
+, qtnetworkauth
+, qtquickcontrols2
+, qttools
+, qtwebsockets
+, rustPlatform
+, stdenv
+, which
+, wireguard-tools
+, wrapQtAppsHook
+}:
+
+let
+  glean_parser_4_1_1 = python3.pkgs.buildPythonPackage rec {
+    pname = "glean_parser";
+    version = "4.1.1";
+    src = python3.pkgs.fetchPypi {
+      inherit pname version;
+      hash = "sha256-4noazRqjjJNI2kTO714kSp70jZpWmqHWR2vnkgAftLE=";
+    };
+    nativeBuildInputs = with python3.pkgs; [ setuptools-scm ];
+    propagatedBuildInputs = with python3.pkgs; [
+      appdirs
+      click
+      diskcache
+      jinja2
+      jsonschema
+      pyyaml
+      setuptools
+      yamllint
+    ];
+    postPatch = ''
+      substituteInPlace setup.py --replace '"pytest-runner", ' ""
+    '';
+    doCheck = false;
+  };
+
+  pname = "mozillavpn";
+  version = "2.8.0";
+  src = fetchFromGitHub {
+    owner = "mozilla-mobile";
+    repo = "mozilla-vpn-client";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    hash = "sha256-UmLYs/J6syfMrjA66K33h8ubYqzvmcGf5spIilVVdVk=";
+  };
+
+  patches = [
+    # Rust bridge: Add Cargo.lock file
+    (fetchpatch {
+      url = "https://github.com/mozilla-mobile/mozilla-vpn-client/pull/3341/commits/718c7f52756b5a88511da91dafad7af312bb2473.patch";
+      hash = "sha256-fG+SATbJpGqpCFXSWEiBo4dYx6RLtJYR0yTdBqN6Fww=";
+    })
+  ];
+
+  netfilter-go-modules = (buildGoModule {
+    inherit pname version src patches;
+    vendorSha256 = "KFYMim5U8WlJHValvIBQgEN+17SDv0JVbH03IiyfDc0=";
+    modRoot = "linux/netfilter";
+  }).go-modules;
+
+  cargoRoot = "extension/bridge";
+
+in
+stdenv.mkDerivation {
+  inherit pname version src patches cargoRoot;
+
+  buildInputs = [
+    polkit
+    qtbase
+    qtcharts
+    qtgraphicaleffects
+    qtnetworkauth
+    qtquickcontrols2
+    qtwebsockets
+  ];
+  nativeBuildInputs = [
+    glean_parser_4_1_1
+    go
+    pkg-config
+    python3
+    python3.pkgs.pyyaml
+    qmake
+    qttools
+    rustPlatform.cargoSetupHook
+    rustPlatform.rust.cargo
+    which
+    wrapQtAppsHook
+  ];
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src patches;
+    name = "${pname}-${version}";
+    preBuild = "cd ${cargoRoot}";
+    hash = "sha256-dnbF1hfm3qoZaPrIimhY2bUzlrYaNVUZ+nyp6NbgP3Y=";
+  };
+
+  postPatch = ''
+    for file in linux/*.service linux/extra/*.desktop src/platforms/linux/daemon/*.service; do
+      substituteInPlace "$file" --replace /usr/bin/mozillavpn "$out/bin/mozillavpn"
+    done
+  '';
+
+  preBuild = ''
+    ln -s '${netfilter-go-modules}' linux/netfilter/vendor
+    python3 scripts/utils/generate_glean.py
+    python3 scripts/utils/import_languages.py --qt_path '${lib.getDev qttools}/bin'
+  '';
+
+  qmakeFlags = [ "USRPATH=$(out)" "ETCPATH=$(out)/etc" ];
+  qtWrapperArgs =
+    [ "--prefix" "PATH" ":" (lib.makeBinPath [ wireguard-tools ]) ];
+
+  meta = {
+    description = "Client for the Mozilla VPN service";
+    homepage = "https://vpn.mozilla.org/";
+    license = lib.licenses.mpl20;
+    maintainers = with lib.maintainers; [ andersk ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/mutt-ics/default.nix b/pkgs/tools/networking/mutt-ics/default.nix
new file mode 100644
index 0000000000000..4193690dc3d7e
--- /dev/null
+++ b/pkgs/tools/networking/mutt-ics/default.nix
@@ -0,0 +1,21 @@
+{ lib, python3 }:
+
+with python3.pkgs; buildPythonApplication rec {
+  pname = "mutt-ics";
+  version = "0.9.2";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "mutt_ics";
+    sha256 = "d44d4bec4e71c7f14df01b90fdb9563cdc784ece4250abfea5b0b675cfe85a50";
+  };
+
+  propagatedBuildInputs = [ icalendar ];
+
+  meta = with lib; {
+    homepage = "https://github.com/dmedvinsky/mutt-ics";
+    description = "A tool to show calendar event details in Mutt";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mh182 ];
+  };
+}
diff --git a/pkgs/tools/networking/nebula/default.nix b/pkgs/tools/networking/nebula/default.nix
index 494fb946ea6e5..61cb7bd6382da 100644
--- a/pkgs/tools/networking/nebula/default.nix
+++ b/pkgs/tools/networking/nebula/default.nix
@@ -13,8 +13,6 @@ buildGoModule rec {
 
   vendorSha256 = "5Yv2t5vdUNCcCo2KAm1xCkRVrt6gIasKHLqH7VVPDuU=";
 
-  doCheck = false;
-
   subPackages = [ "cmd/nebula" "cmd/nebula-cert" ];
 
   ldflags = [ "-X main.Build=${version}" ];
diff --git a/pkgs/tools/networking/nethogs/default.nix b/pkgs/tools/networking/nethogs/default.nix
index c26cb527f55e9..2c7347defdd3b 100644
--- a/pkgs/tools/networking/nethogs/default.nix
+++ b/pkgs/tools/networking/nethogs/default.nix
@@ -1,26 +1,16 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, ncurses, libpcap }:
+{ lib, stdenv, fetchFromGitHub, ncurses, libpcap }:
 
 stdenv.mkDerivation rec {
   pname = "nethogs";
-  version = "0.8.6";
+  version = "0.8.7";
 
   src = fetchFromGitHub {
     owner = "raboof";
     repo = "nethogs";
     rev = "v${version}";
-    sha256 = "0sn1sdp86akwlm4r1vmkxjjl50c0xaisk91bbz57z7kcsaphxna9";
+    sha256 = "10shdwvfj90lp2fxz9260342a1c2n1jbw058qy5pyq5kh3xwr9b8";
   };
 
-  patches = [
-    # Pull upstream patch for ncurses-6.3 support:
-    #  https://github.com/raboof/nethogs/pull/210
-    (fetchpatch {
-      name = "ncurses-6.3.patch";
-      url = "https://github.com/raboof/nethogs/commit/455daf357da7f394763e5b93b11b3defe1f82ed1.patch";
-      sha256 = "0wkp0yr6qg1asgvmsn7blf7rq48sh5k4n3w0nxf5869hxvkhnnzs";
-    })
-  ];
-
   buildInputs = [ ncurses libpcap ];
 
   makeFlags = [ "VERSION=${version}" "nethogs" ];
diff --git a/pkgs/tools/networking/nethoscope/default.nix b/pkgs/tools/networking/nethoscope/default.nix
new file mode 100644
index 0000000000000..276579f361fc2
--- /dev/null
+++ b/pkgs/tools/networking/nethoscope/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, alsa-lib
+, libpcap
+, expect
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nethoscope";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "vvilhonen";
+    repo = "nethoscope";
+    rev = "v${version}";
+    sha256 = "0dsv1f0ncwji8x7q1ix62955qji4jijgjx6xg3hxvl0vvvwqxcdz";
+  };
+
+  cargoSha256 = "0cl0i4m8fxyxfib95x90x6qr284y41wwgwqhflyfa7d3r6qwq8nk";
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+  buildInputs = [
+    alsa-lib
+    libpcap
+  ];
+
+  LD_LIBRARY_PATH = lib.makeLibraryPath [
+    libpcap
+    alsa-lib
+  ];
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    if [[ "$(${expect}/bin/unbuffer "$out/bin/${pname}" --help 2> /dev/null | strings | grep ${version} | tr -d '\n')" == " ${version}" ]]; then
+      echo '${pname} smoke check passed'
+    else
+      echo '${pname} smoke check failed'
+      return 1
+    fi
+  '';
+
+  meta = with lib; {
+    description = "Listen to your network traffic";
+    longDescription = ''
+      Employ your built-in wetware pattern recognition and
+      signal processing facilities to understand your network traffic.
+    '';
+    homepage = "https://github.com/vvilhonen/nethoscope";
+    license = licenses.isc;
+    maintainers = with maintainers; [ _0x4A6F ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/tools/networking/networkmanager/default.nix b/pkgs/tools/networking/networkmanager/default.nix
index 2c984da87377d..86195ba86923b 100644
--- a/pkgs/tools/networking/networkmanager/default.nix
+++ b/pkgs/tools/networking/networkmanager/default.nix
@@ -12,7 +12,7 @@
 , polkit
 , gnutls
 , ppp
-, dhcp
+, dhcpcd
 , iptables
 , nftables
 , python3
@@ -96,9 +96,9 @@ stdenv.mkDerivation rec {
     "-Dresolvconf=${openresolv}/bin/resolvconf"
 
     # DHCP clients
-    "-Ddhclient=${dhcp}/bin/dhclient"
-    # Upstream prefers dhclient, so don't add dhcpcd to the closure
-    "-Ddhcpcd=no"
+    # ISC DHCP client has reached it's end of life, so stop using it
+    "-Ddhclient=no"
+    "-Ddhcpcd=${dhcpcd}/bin/dhcpcd"
     "-Ddhcpcanon=no"
 
     # Miscellaneous
diff --git a/pkgs/tools/networking/networkmanager/fortisslvpn/default.nix b/pkgs/tools/networking/networkmanager/fortisslvpn/default.nix
index e9608741816fc..f7e98b2b92fd3 100644
--- a/pkgs/tools/networking/networkmanager/fortisslvpn/default.nix
+++ b/pkgs/tools/networking/networkmanager/fortisslvpn/default.nix
@@ -73,6 +73,7 @@ stdenv.mkDerivation rec {
       attrPath = "networkmanager-fortisslvpn";
       versionPolicy = "odd-unstable";
     };
+    networkManagerPlugin = "VPN/nm-fortisslvpn-service.name";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/networkmanager/iodine/default.nix b/pkgs/tools/networking/networkmanager/iodine/default.nix
index e56d9411b3933..8c8d0dd6a3223 100644
--- a/pkgs/tools/networking/networkmanager/iodine/default.nix
+++ b/pkgs/tools/networking/networkmanager/iodine/default.nix
@@ -48,6 +48,7 @@ in stdenv.mkDerivation {
       packageName = pname;
       attrPath = "networkmanager-iodine";
     };
+    networkManagerPlugin = "VPN/nm-iodine-service.name";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/networkmanager/l2tp/default.nix b/pkgs/tools/networking/networkmanager/l2tp/default.nix
index 5f00c1fa9d8c3..88ccad59bd1a9 100644
--- a/pkgs/tools/networking/networkmanager/l2tp/default.nix
+++ b/pkgs/tools/networking/networkmanager/l2tp/default.nix
@@ -41,6 +41,10 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru = {
+    networkManagerPlugin = "VPN/nm-l2tp-service.name";
+  };
+
   meta = with lib; {
     description = "L2TP plugin for NetworkManager";
     inherit (networkmanager.meta) platforms;
diff --git a/pkgs/tools/networking/networkmanager/libnma/default.nix b/pkgs/tools/networking/networkmanager/libnma/default.nix
index 63642cf60e758..a14ba1663d331 100644
--- a/pkgs/tools/networking/networkmanager/libnma/default.nix
+++ b/pkgs/tools/networking/networkmanager/libnma/default.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libnma";
-  version = "1.8.36";
+  version = "1.8.38";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "2ZQV9M3/ZCIwAZ7FzdKx+/HsVQqK6GUhn3VIKmQre3o=";
+    sha256 = "Xtk+rhhFb/WopPQIF4we4ZjcjTpGxl+QdbEBkW5k6LQ=";
   };
 
   patches = [
diff --git a/pkgs/tools/networking/networkmanager/openconnect/default.nix b/pkgs/tools/networking/networkmanager/openconnect/default.nix
index e0199784b2bc6..2c095ff804dcc 100644
--- a/pkgs/tools/networking/networkmanager/openconnect/default.nix
+++ b/pkgs/tools/networking/networkmanager/openconnect/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
       attrPath = "networkmanager-openconnect";
       versionPolicy = "odd-unstable";
     };
+    networkManagerPlugin = "VPN/nm-openconnect-service.name";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/networkmanager/openvpn/default.nix b/pkgs/tools/networking/networkmanager/openvpn/default.nix
index 92391e0374b4f..2e46d62396018 100644
--- a/pkgs/tools/networking/networkmanager/openvpn/default.nix
+++ b/pkgs/tools/networking/networkmanager/openvpn/default.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
       attrPath = "networkmanager-openvpn";
       versionPolicy = "odd-unstable";
     };
+    networkManagerPlugin = "VPN/nm-openvpn-service.name";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/networkmanager/sstp/default.nix b/pkgs/tools/networking/networkmanager/sstp/default.nix
index f486623443807..8b75db6495f70 100644
--- a/pkgs/tools/networking/networkmanager/sstp/default.nix
+++ b/pkgs/tools/networking/networkmanager/sstp/default.nix
@@ -54,6 +54,7 @@ in stdenv.mkDerivation {
       packageName = pname;
       attrPath = "networkmanager-sstp";
     };
+    networkManagerPlugin = "VPN/nm-sstp-service.name";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/networkmanager/strongswan/default.nix b/pkgs/tools/networking/networkmanager/strongswan/default.nix
index cebcec35a314f..be0dcf234ffb5 100644
--- a/pkgs/tools/networking/networkmanager/strongswan/default.nix
+++ b/pkgs/tools/networking/networkmanager/strongswan/default.nix
@@ -24,6 +24,10 @@ stdenv.mkDerivation rec {
     "--with-nm-plugindir=$(out)/lib/NetworkManager"
   ];
 
+  passthru = {
+    networkManagerPlugin = "VPN/nm-strongswan-service.name";
+  };
+
   PKG_CONFIG_LIBNM_VPNSERVICEDIR = "$(out)/lib/NetworkManager/VPN";
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/networkmanager/tray.nix b/pkgs/tools/networking/networkmanager/tray.nix
index ea9ff73b4e332..69b1e3023b045 100644
--- a/pkgs/tools/networking/networkmanager/tray.nix
+++ b/pkgs/tools/networking/networkmanager/tray.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "nm-tray";
-  version = "0.4.3";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "palinek";
     repo = pname;
     rev = version;
-    sha256 = "08c86kd613wlvw9571q7a3lb7g6skyyasjw6h1g543rbl4jn2c2v";
+    sha256 = "sha256-JTH1cmkgdW2aRWMYPRvOAvCJz0ClCIpjUtcWcqJQGSU=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/networking/networkmanager/vpnc/default.nix b/pkgs/tools/networking/networkmanager/vpnc/default.nix
index d81dbf0881652..a63039b2dea9a 100644
--- a/pkgs/tools/networking/networkmanager/vpnc/default.nix
+++ b/pkgs/tools/networking/networkmanager/vpnc/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
       attrPath = "networkmanager-vpnc";
       versionPolicy = "odd-unstable";
     };
+    networkManagerPlugin = "VPN/nm-vpnc-service.name";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/ntp/default.nix b/pkgs/tools/networking/ntp/default.nix
index 91e1767b75c11..f272470a98f41 100644
--- a/pkgs/tools/networking/ntp/default.nix
+++ b/pkgs/tools/networking/ntp/default.nix
@@ -9,6 +9,11 @@ stdenv.mkDerivation rec {
     sha256 = "06cwhimm71safmwvp6nhxp6hvxsg62whnbgbgiflsqb8mgg40n7n";
   };
 
+  patches = [
+    # From https://patchwork.openembedded.org/patch/180019/
+    ./glibc-2.34-fix.patch
+  ];
+
   configureFlags = [
     "--sysconfdir=/etc"
     "--localstatedir=/var"
diff --git a/pkgs/tools/networking/ntp/glibc-2.34-fix.patch b/pkgs/tools/networking/ntp/glibc-2.34-fix.patch
new file mode 100644
index 0000000000000..256f125a77b26
--- /dev/null
+++ b/pkgs/tools/networking/ntp/glibc-2.34-fix.patch
@@ -0,0 +1,28 @@
+From 082a504cfcc046c3d8adaae1164268bc94e5108a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 31 Jul 2021 10:51:41 -0700
+Subject: [PATCH] libntp: Do not use PTHREAD_STACK_MIN on glibc
+In glibc 2.34+ PTHREAD_STACK_MIN is not a compile-time constant which
+could mean different stack sizes at runtime on different architectures
+and it also causes compile failure. Default glibc thread stack size
+or 64Kb set by ntp should be good in glibc these days.
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libntp/work_thread.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+diff --git a/libntp/work_thread.c b/libntp/work_thread.c
+index 03a5647..3ddd751 100644
+--- a/libntp/work_thread.c
++++ b/libntp/work_thread.c
+@@ -41,7 +41,7 @@
+ #ifndef THREAD_MINSTACKSIZE
+ # define THREAD_MINSTACKSIZE	(64U * 1024)
+ #endif
+-#ifndef __sun
++#if !defined(__sun) && !defined(__GLIBC__)
+ #if defined(PTHREAD_STACK_MIN) && THREAD_MINSTACKSIZE < PTHREAD_STACK_MIN
+ # undef THREAD_MINSTACKSIZE
+ # define THREAD_MINSTACKSIZE PTHREAD_STACK_MIN
+-- 
+2.32.0
diff --git a/pkgs/tools/networking/obfs4/default.nix b/pkgs/tools/networking/obfs4/default.nix
index a988a14cd4552..64e601c375c6a 100644
--- a/pkgs/tools/networking/obfs4/default.nix
+++ b/pkgs/tools/networking/obfs4/default.nix
@@ -12,8 +12,6 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-xGCK8biTYcrmKbsl6ZyCjpRrVP9x5xGrC3VcMsR7ETo=";
 
-  doCheck = false;
-
   meta = with lib; {
     description = "A pluggable transport proxy";
     homepage = "https://www.torproject.org/projects/obfsproxy";
diff --git a/pkgs/tools/networking/openconnect/common.nix b/pkgs/tools/networking/openconnect/common.nix
new file mode 100644
index 0000000000000..555fd43035e68
--- /dev/null
+++ b/pkgs/tools/networking/openconnect/common.nix
@@ -0,0 +1,45 @@
+{ version
+, src
+}:
+
+{ lib
+, stdenv
+, pkg-config
+, gnutls
+, p11-kit
+, openssl
+, useOpenSSL ? false
+, gmp
+, libxml2
+, stoken
+, zlib
+, vpnc-scripts
+, PCSC
+, autoreconfHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "openconnect";
+  inherit version src;
+
+  outputs = [ "out" "dev" ];
+
+  configureFlags = [
+    "--with-vpnc-script=${vpnc-scripts}/bin/vpnc-script"
+    "--disable-nls"
+    "--without-openssl-version-check"
+  ];
+
+  buildInputs = [ gmp libxml2 stoken zlib (if useOpenSSL then openssl else gnutls) ]
+    ++ lib.optional stdenv.isDarwin PCSC
+    ++ lib.optional stdenv.isLinux p11-kit;
+  nativeBuildInputs = [ pkg-config autoreconfHook ];
+
+  meta = with lib; {
+    description = "VPN Client for Cisco's AnyConnect SSL VPN";
+    homepage = "https://www.infradead.org/openconnect/";
+    license = licenses.lgpl21Only;
+    maintainers = with maintainers; [ pradeepchhetri tricktron alyaeanyx ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/tools/networking/openconnect/default.nix b/pkgs/tools/networking/openconnect/default.nix
index 0e1da29320f06..b561d8cf43df9 100644
--- a/pkgs/tools/networking/openconnect/default.nix
+++ b/pkgs/tools/networking/openconnect/default.nix
@@ -1,56 +1,31 @@
-{ lib
-, stdenv
-, fetchurl
-, pkg-config
-, openssl ? null
-, gnutls ? null
-, gmp
-, libxml2
-, stoken
-, zlib
-, vpnc-scripts
-, PCSC
-, head ? false
-  , fetchFromGitLab
-  , autoreconfHook
-}:
-
-assert (openssl != null) == (gnutls == null);
-
-stdenv.mkDerivation rec {
-  pname = "openconnect${lib.optionalString head "-head"}";
-  version = if head then "2021-05-05" else "8.10";
+{ callPackage, fetchFromGitLab, fetchurl, darwin }:
+let
+  common = opts: callPackage (import ./common.nix opts) {
+    inherit (darwin.apple_sdk.frameworks) PCSC;
+  };
+in rec {
+  openconnect = common rec {
+    version = "8.20";
+    src = fetchurl {
+      url = "ftp://ftp.infradead.org/pub/openconnect/openconnect-${version}.tar.gz";
+      sha256 = "sha256-wUUjhMb3lrruRdTpGa4b/CgdbIiGLh9kaizFE/xE5Ys=";
+    };
+  };
 
-  src =
-    if head then fetchFromGitLab {
+  openconnect_unstable = common {
+    version = "unstable-2022-03-14";
+    src = fetchFromGitLab {
       owner = "openconnect";
       repo = "openconnect";
-      rev = "684f6db1aef78e61e01f511c728bf658c30b9114";
-      sha256 = "0waclawcymgd8sq9xbkn2q8mnqp4pd0gpyv5wrnb7i0nsv860wz8";
-    }
-    else fetchurl {
-      url = "ftp://ftp.infradead.org/pub/openconnect/${pname}-${version}.tar.gz";
-      sha256 = "1cdsx4nsrwawbsisfkldfc9i4qn60g03vxb13nzppr2br9p4rrih";
+      rev = "a27a46f1362978db9723c8730f2533516b4b31b1";
+      sha256 = "sha256-Kz98GHCyEcx7vUF+AXMLR7886+iKGKNwx1iRaYcH8ps=";
     };
+  };
 
-  outputs = [ "out" "dev" ];
+  openconnect_openssl = openconnect.override {
+    useOpenSSL = true;
+  };
+}
 
-  configureFlags = [
-    "--with-vpnc-script=${vpnc-scripts}/bin/vpnc-script"
-    "--disable-nls"
-    "--without-openssl-version-check"
-  ];
 
-  buildInputs = [ openssl gnutls gmp libxml2 stoken zlib ]
-    ++ lib.optional stdenv.isDarwin PCSC;
-  nativeBuildInputs = [ pkg-config ]
-    ++ lib.optional head autoreconfHook;
 
-  meta = with lib; {
-    description = "VPN Client for Cisco's AnyConnect SSL VPN";
-    homepage = "https://www.infradead.org/openconnect/";
-    license = licenses.lgpl21Only;
-    maintainers = with maintainers; [ pradeepchhetri tricktron ];
-    platforms = lib.platforms.linux ++ lib.platforms.darwin;
-  };
-}
diff --git a/pkgs/tools/networking/openfortivpn/default.nix b/pkgs/tools/networking/openfortivpn/default.nix
index 15711e8d43b2b..c97abcb272b91 100644
--- a/pkgs/tools/networking/openfortivpn/default.nix
+++ b/pkgs/tools/networking/openfortivpn/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openfortivpn";
-  version = "1.17.1";
+  version = "1.17.2";
 
   src = fetchFromGitHub {
     owner = "adrienverge";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-wSbE3vq9/o1r80zRT1rO9zAG6ws1nG18ALXYd9BAbLA=";
+    sha256 = "sha256-pZcYbm1fWqGWYJzexph7i9nPAHH6HP+B8Y6uUkOCRk8=";
   };
 
   # we cannot write the config file to /etc and as we don't need the file, so drop it
diff --git a/pkgs/tools/networking/openntpd/default.nix b/pkgs/tools/networking/openntpd/default.nix
index e6703c748fcea..e1497ab085279 100644
--- a/pkgs/tools/networking/openntpd/default.nix
+++ b/pkgs/tools/networking/openntpd/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "0ijsylc7a4jlpxsqa0jq1w1c7333id8pcakzl7a5749ria1xp0l5";
   };
 
-  prePatch = ''
+  postPatch = ''
     sed -i '20i#include <sys/cdefs.h>' src/ntpd.h
     sed -i '19i#include <sys/cdefs.h>' src/log.c
   '';
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    homepage = "http://www.openntpd.org/";
+    homepage = "https://www.openntpd.org/";
     license = licenses.bsd3;
     description = "OpenBSD NTP daemon (Debian port)";
     platforms = platforms.all;
diff --git a/pkgs/tools/networking/opensnitch/daemon.nix b/pkgs/tools/networking/opensnitch/daemon.nix
index 25b4206641991..96c509e47fbd5 100644
--- a/pkgs/tools/networking/opensnitch/daemon.nix
+++ b/pkgs/tools/networking/opensnitch/daemon.nix
@@ -15,13 +15,13 @@
 
 buildGoModule rec {
   pname = "opensnitch";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "evilsocket";
     repo = "opensnitch";
     rev = "v${version}";
-    sha256 = "sha256-vtD82v0VlaJtCICXduD3IxJ0xjlBuzGKLWLoCiwPX2I=";
+    sha256 = "sha256-8IfupmQb1romGEvv/xqFkYhp0gGoY4ZEllX6rZYIkqw=";
   };
 
   patches = [
diff --git a/pkgs/tools/networking/opensnitch/ui.nix b/pkgs/tools/networking/opensnitch/ui.nix
index 79a8af4ee0ffc..6d3d7fd3058ed 100644
--- a/pkgs/tools/networking/opensnitch/ui.nix
+++ b/pkgs/tools/networking/opensnitch/ui.nix
@@ -6,13 +6,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "opensnitch-ui";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "evilsocket";
     repo = "opensnitch";
-    rev = "v${version}";
-    sha256 = "sha256-vtD82v0VlaJtCICXduD3IxJ0xjlBuzGKLWLoCiwPX2I=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-8IfupmQb1romGEvv/xqFkYhp0gGoY4ZEllX6rZYIkqw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/networking/openssh/common.nix b/pkgs/tools/networking/openssh/common.nix
index bd127b9092ccd..4245d06a1cd06 100644
--- a/pkgs/tools/networking/openssh/common.nix
+++ b/pkgs/tools/networking/openssh/common.nix
@@ -37,6 +37,11 @@ stdenv.mkDerivation rec {
   patches = [
     ./locale_archive.patch
 
+    (fetchurl {
+      url = "https://git.alpinelinux.org/aports/plain/main/openssh/gss-serv.c.patch?id=a7509603971ce2f3282486a43bb773b1b522af83";
+      sha256 = "sha256-eFFOd4B2nccRZAQWwdBPBoKWjfEdKEVGJvKZAzLu3HU=";
+    })
+
     # See discussion in https://github.com/NixOS/nixpkgs/pull/16966
     ./dont_create_privsep_path.patch
   ] ++ extraPatches;
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index 36125a5893be7..022aa22260df9 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -6,11 +6,11 @@ in
 
   openssh = common rec {
     pname = "openssh";
-    version = "8.8p1";
+    version = "9.0p1";
 
     src = fetchurl {
       url = "mirror://openbsd/OpenSSH/portable/openssh-${version}.tar.gz";
-      sha256 = "1s8z6f7mi1pwsl79cqai8cr350m5lf2ifcxff57wx6mvm478k425";
+      sha256 = "12m2f9czvgmi7akp7xah6y7mrrpi280a3ksk47iwr7hy2q1475q3";
     };
 
     extraPatches = [ ./ssh-keysign-8.5.patch ];
@@ -19,12 +19,12 @@ in
 
   openssh_hpn = common rec {
     pname = "openssh-with-hpn";
-    version = "8.9p1";
+    version = "9.0p1";
     extraDesc = " with high performance networking patches";
 
     src = fetchurl {
       url = "mirror://openbsd/OpenSSH/portable/openssh-${version}.tar.gz";
-      sha256 = "1ry5prcax0134v6srkgznpl9ch5snkgq7yvjqvd8c5mbnxa7cjgx";
+      sha256 = "12m2f9czvgmi7akp7xah6y7mrrpi280a3ksk47iwr7hy2q1475q3";
     };
 
     extraPatches = [
diff --git a/pkgs/tools/networking/openvpn/default.nix b/pkgs/tools/networking/openvpn/default.nix
index 9200bc3f30e8d..71a14b169ac10 100644
--- a/pkgs/tools/networking/openvpn/default.nix
+++ b/pkgs/tools/networking/openvpn/default.nix
@@ -1,26 +1,21 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , pkg-config
-, makeWrapper
-, runtimeShell
 , iproute2
 , lzo
 , openssl
 , pam
 , useSystemd ? stdenv.isLinux
 , systemd
+, update-systemd-resolved
 , util-linux
 , pkcs11Support ? false
 , pkcs11helper
 }:
 
-with lib;
 let
-  # Check if the script needs to have other binaries wrapped when changing this.
-  update-resolved = fetchurl {
-    url = "https://raw.githubusercontent.com/jonathanio/update-systemd-resolved/v1.3.0/update-systemd-resolved";
-    sha256 = "021qzv1k0zxgv1rmyfpqj3zlzqr28xa7zff1n7vrbjk36ijylpsc";
-  };
+  inherit (lib) versionOlder optional optionals optionalString;
 
   generic = { version, sha256 }:
     let
@@ -36,7 +31,7 @@ let
           inherit sha256;
         };
 
-        nativeBuildInputs = [ makeWrapper pkg-config ];
+        nativeBuildInputs = [ pkg-config ];
 
         buildInputs = [ lzo openssl ]
           ++ optional stdenv.isLinux pam
@@ -52,15 +47,15 @@ let
         ++ optional pkcs11Support "--enable-pkcs11"
         ++ optional stdenv.isDarwin "--disable-plugin-auth-pam";
 
+        # We used to vendor the update-systemd-resolved script inside libexec,
+        # but a separate package was made, that uses libexec/openvpn. Copy it
+        # into libexec in case any consumers expect it to be there even though
+        # they should use the update-systemd-resolved package instead.
         postInstall = ''
           mkdir -p $out/share/doc/openvpn/examples
-          cp -r sample/sample-config-files/ $out/share/doc/openvpn/examples
-          cp -r sample/sample-keys/ $out/share/doc/openvpn/examples
-          cp -r sample/sample-scripts/ $out/share/doc/openvpn/examples
+          cp -r sample/sample-{config-files,keys,scripts}/ $out/share/doc/openvpn/examples
         '' + optionalString useSystemd ''
-          install -Dm555 ${update-resolved} $out/libexec/update-systemd-resolved
-          wrapProgram $out/libexec/update-systemd-resolved \
-            --prefix PATH : ${makeBinPath [ runtimeShell iproute2 systemd util-linux ]}
+          install -Dm555 -t $out/libexec ${update-systemd-resolved}/libexec/openvpn/*
         '';
 
         enableParallelBuilding = true;
@@ -69,7 +64,7 @@ let
           description = "A robust and highly flexible tunneling application";
           downloadPage = "https://openvpn.net/community-downloads/";
           homepage = "https://openvpn.net/";
-          license = licenses.gpl2;
+          license = licenses.gpl2Only;
           maintainers = with maintainers; [ viric peterhoeg ];
           platforms = platforms.unix;
         };
diff --git a/pkgs/tools/networking/openvpn/update-systemd-resolved.nix b/pkgs/tools/networking/openvpn/update-systemd-resolved.nix
index 5a34d5a7ffe77..1b514eae02f0b 100644
--- a/pkgs/tools/networking/openvpn/update-systemd-resolved.nix
+++ b/pkgs/tools/networking/openvpn/update-systemd-resolved.nix
@@ -1,34 +1,42 @@
-{ lib, stdenv, fetchFromGitHub
-, makeWrapper
-, iproute2, systemd, coreutils, util-linux }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, iproute2
+, runtimeShell
+, systemd
+, coreutils
+, util-linux
+}:
 
 stdenv.mkDerivation rec {
   pname = "update-systemd-resolved";
+  # when updating this, check if additional binaries need injecting into PATH
   version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "jonathanio";
     repo = "update-systemd-resolved";
     rev = "v${version}";
-    sha256 = "19zhbpyms57yb70hi0ws5sbkpk2yqp9nnix3f86r36h1g93m70lm";
+    hash = "sha256-lYJTR3oBmpENcqNHa9PFXsw7ly6agwjBWf4UXf1d8Kc=";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
-
-  buildFlags = [
-    "PREFIX=${placeholder "out"}/libexec/openvpn"
+  # set SCRIPT_NAME in case we are wrapped and inject PATH
+  patches = [
+    ./update-systemd-resolved.patch
   ];
 
-  installPhase = ''
-    wrapProgram $out/libexec/openvpn/update-systemd-resolved \
-      --prefix PATH : ${lib.makeBinPath [ iproute2 systemd coreutils util-linux ]}
+  PREFIX = "${placeholder "out"}/libexec/openvpn";
+
+  postInstall = ''
+    substituteInPlace ${PREFIX}/update-systemd-resolved \
+      --subst-var-by PATH ${lib.makeBinPath [ coreutils iproute2 runtimeShell systemd util-linux ]}
   '';
 
   meta = with lib; {
     description = "Helper script for OpenVPN to directly update the DNS settings of a link through systemd-resolved via DBus";
     homepage = "https://github.com/jonathanio/update-systemd-resolved";
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ eadwu ];
-    license = licenses.gpl3;
-    platforms = platforms.unix;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/openvpn/update-systemd-resolved.patch b/pkgs/tools/networking/openvpn/update-systemd-resolved.patch
new file mode 100644
index 0000000000000..e03c476e5090d
--- /dev/null
+++ b/pkgs/tools/networking/openvpn/update-systemd-resolved.patch
@@ -0,0 +1,26 @@
+diff --git a/Makefile b/Makefile
+index 524b6b7..8a880f1 100644
+--- a/Makefile
++++ b/Makefile
+@@ -9,7 +9,6 @@ all: install info
+ 
+ install:
+ 	@install -Dm750 $(SRC) $(DEST)
+-	@install -Dm644 $(SRC).conf $(DEST).conf
+ 
+ info:
+ 	@printf 'Successfully installed %s to %s.\n' $(SRC) $(DEST)
+diff --git a/update-systemd-resolved b/update-systemd-resolved
+index 1452e1a..39641cb 100755
+--- a/update-systemd-resolved
++++ b/update-systemd-resolved
+@@ -29,7 +29,8 @@
+ DBUS_DEST="org.freedesktop.resolve1"
+ DBUS_NODE="/org/freedesktop/resolve1"
+ 
+-SCRIPT_NAME="${BASH_SOURCE[0]##*/}"
++PATH="@PATH@"
++SCRIPT_NAME="update-systemd-resolved"
+ 
+ log() {
+   logger -s -t "$SCRIPT_NAME" "$@"
diff --git a/pkgs/tools/networking/p2p/jesec-rtorrent/default.nix b/pkgs/tools/networking/p2p/jesec-rtorrent/default.nix
deleted file mode 100644
index 56fec5333fc77..0000000000000
--- a/pkgs/tools/networking/p2p/jesec-rtorrent/default.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ lib
-, pkgs
-, callPackage
-}:
-
-rec {
-  libtorrent = callPackage ./libtorrent.nix { };
-  rtorrent = callPackage ./rtorrent.nix { };
-}
diff --git a/pkgs/tools/networking/p2p/rakshasa-rtorrent/default.nix b/pkgs/tools/networking/p2p/rakshasa-rtorrent/default.nix
deleted file mode 100644
index 56fec5333fc77..0000000000000
--- a/pkgs/tools/networking/p2p/rakshasa-rtorrent/default.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ lib
-, pkgs
-, callPackage
-}:
-
-rec {
-  libtorrent = callPackage ./libtorrent.nix { };
-  rtorrent = callPackage ./rtorrent.nix { };
-}
diff --git a/pkgs/tools/networking/pathvector/default.nix b/pkgs/tools/networking/pathvector/default.nix
new file mode 100644
index 0000000000000..529e80ebade6d
--- /dev/null
+++ b/pkgs/tools/networking/pathvector/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "pathvector";
+  version = "5.11.1";
+
+  src = fetchFromGitHub {
+    owner = "natesales";
+    repo = "pathvector";
+    rev = "v${version}";
+    sha256 = "sha256-OgIDk+05bG2KrBQOyyMPaH0OJXU3gLM9OBab9lI+yXw=";
+  };
+
+  vendorSha256 = "sha256-R3o1L34FXbtRzJ1I2Xj4iWsiFJJWexGWYv2TmvhINe0=";
+
+  CGO_ENABLED = 0;
+
+  ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.commit=${src.rev}" "-X main.date=unknown" ];
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Declarative edge routing platform that automates route optimization and control plane configuration";
+    homepage = "https://pathvector.io";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ matthewpi ];
+  };
+}
diff --git a/pkgs/tools/networking/pmacct/default.nix b/pkgs/tools/networking/pmacct/default.nix
index 86f1af029df04..aa699d5bcad50 100644
--- a/pkgs/tools/networking/pmacct/default.nix
+++ b/pkgs/tools/networking/pmacct/default.nix
@@ -11,19 +11,21 @@
 , withNflog ? true, libnetfilter_log
 , withSQLite ? true, sqlite
 , withPgSQL ? true, postgresql
-, withMysql ? true, libmysqlclient, zlib
+, withMysql ? true, libmysqlclient, zlib, numactl
 , gnutlsSupport ? false, gnutls
+, testers
+, pmacct
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.7.6";
+  version = "1.7.7";
   pname = "pmacct";
 
   src = fetchFromGitHub {
     owner = "pmacct";
     repo = "pmacct";
     rev = "v${version}";
-    sha256 = "0x1i75hwz44siqvn4i58jgji0zwrqgn6ayv89s9m9nh3b423nsiv";
+    sha256 = "1pjaa44qj3y5dfwsd1a9r7a4riy7afza8phx2npcsyyarssxc63w";
   };
 
   nativeBuildInputs = [
@@ -38,7 +40,7 @@ stdenv.mkDerivation rec {
   ++ lib.optional withNflog libnetfilter_log
   ++ lib.optional withSQLite sqlite
   ++ lib.optional withPgSQL postgresql
-  ++ lib.optionals withMysql [ libmysqlclient zlib ]
+  ++ lib.optionals withMysql [ libmysqlclient zlib numactl ]
   ++ lib.optional gnutlsSupport gnutls;
 
   MYSQL_CONFIG = lib.optionalString withMysql "${lib.getDev libmysqlclient}/bin/mysql_config";
@@ -52,6 +54,10 @@ stdenv.mkDerivation rec {
   ++ lib.optional withMysql "--enable-mysql"
   ++ lib.optional gnutlsSupport "--enable-gnutls";
 
+  passthru.tests = {
+    version = testers.testVersion { package = pmacct; command = "pmacct -V"; };
+  };
+
   meta = with lib; {
     description = "A small set of multi-purpose passive network monitoring tools";
     longDescription = ''
@@ -59,6 +65,7 @@ stdenv.mkDerivation rec {
       [NetFlow IPFIX sFlow libpcap BGP BMP RPKI IGP Streaming Telemetry]
     '';
     homepage = "http://www.pmacct.net/";
+    changelog = "https://github.com/pmacct/pmacct/blob/v${version}/ChangeLog";
     license = licenses.gpl2;
     maintainers = with maintainers; [ _0x4A6F ];
     platforms = platforms.unix;
diff --git a/pkgs/tools/networking/rustcat/default.nix b/pkgs/tools/networking/rustcat/default.nix
index a5dfd38a0e3db..118725c679338 100644
--- a/pkgs/tools/networking/rustcat/default.nix
+++ b/pkgs/tools/networking/rustcat/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/robiot/rustcat";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "rcat";
   };
 }
diff --git a/pkgs/tools/networking/s3gof3r/default.nix b/pkgs/tools/networking/s3gof3r/default.nix
index 19422c3ec8e20..2e3b838408796 100644
--- a/pkgs/tools/networking/s3gof3r/default.nix
+++ b/pkgs/tools/networking/s3gof3r/default.nix
@@ -19,6 +19,7 @@ buildGoPackage rec {
     description = "Fast, concurrent, streaming access to Amazon S3, including gof3r, a CLI";
     homepage = "https://pkg.go.dev/github.com/rlmcpherson/s3gof3r";
     maintainers = with maintainers; [ ];
+    mainProgram = "gof3r";
     license = licenses.mit;
   };
 }
diff --git a/pkgs/tools/networking/shadowfox/default.nix b/pkgs/tools/networking/shadowfox/default.nix
index 4b270998a6b19..56406583637fb 100644
--- a/pkgs/tools/networking/shadowfox/default.nix
+++ b/pkgs/tools/networking/shadowfox/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     homepage = "https://overdodactyl.github.io/ShadowFox/";
     license = licenses.mit;
     maintainers = with maintainers; [ infinisil ];
+    mainProgram = "shadowfox-updater";
   };
 }
diff --git a/pkgs/tools/networking/shadowsocks-rust/default.nix b/pkgs/tools/networking/shadowsocks-rust/default.nix
index ed61740a6849f..50ac8c7a8afe6 100644
--- a/pkgs/tools/networking/shadowsocks-rust/default.nix
+++ b/pkgs/tools/networking/shadowsocks-rust/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shadowsocks-rust";
-  version = "1.13.5";
+  version = "1.14.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "shadowsocks";
     repo = pname;
-    sha256 = "sha256-0TKAchPDjB7YKJO2JqBwJPZITWXDQbjPbRN8amilJ6E=";
+    sha256 = "sha256-zWiC1GhrI3gcXhr8JpAbFF6t7N6aBSho33FMu8bhF2o=";
   };
 
-  cargoSha256 = "sha256-LBLUNBXsaGfviUUleoYIFf/vrbejKYwB9Lqetx3Agxc=";
+  cargoSha256 = "sha256-nSKeFLWTHhtmlvA9MV6NpupKJo3d1jKpTBI5H8cHJ9s=";
 
   RUSTC_BOOTSTRAP = 1;
 
diff --git a/pkgs/tools/networking/shadowsocks-v2ray-plugin/default.nix b/pkgs/tools/networking/shadowsocks-v2ray-plugin/default.nix
index be3a2f77d5c49..1642bb2944d49 100644
--- a/pkgs/tools/networking/shadowsocks-v2ray-plugin/default.nix
+++ b/pkgs/tools/networking/shadowsocks-v2ray-plugin/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
     homepage = "https://github.com/shadowsocks/v2ray-plugin/";
     license = licenses.mit;
     maintainers = [ maintainers.ahrzb ];
+    mainProgram = "v2ray-plugin";
   };
 }
 
diff --git a/pkgs/tools/networking/siege/default.nix b/pkgs/tools/networking/siege/default.nix
index 446acbe32782a..d22a0bf5c522a 100644
--- a/pkgs/tools/networking/siege/default.nix
+++ b/pkgs/tools/networking/siege/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "siege";
-  version = "4.1.2";
+  version = "4.1.3";
 
   src = fetchurl {
     url = "http://download.joedog.org/siege/${pname}-${version}.tar.gz";
-    hash = "sha256-5HKr4Zxak/a+W/1k3/JvZo2ixtIQr4ITtgycDbF+ynk=";
+    hash = "sha256-IlC8qPylOfGk5Mvluomv0yxHObL7xgx8phaNmngveQo=";
   };
 
   NIX_LDFLAGS = lib.optionalString stdenv.isLinux [
diff --git a/pkgs/tools/networking/smartdns/default.nix b/pkgs/tools/networking/smartdns/default.nix
index 8ac1e137ca432..9763d52d0b1dc 100644
--- a/pkgs/tools/networking/smartdns/default.nix
+++ b/pkgs/tools/networking/smartdns/default.nix
@@ -1,34 +1,32 @@
-{ lib, stdenv, fetchFromGitHub, openssl }:
+{ lib, stdenv, fetchFromGitHub, openssl, testers, smartdns }:
 
 stdenv.mkDerivation rec {
   pname = "smartdns";
-  version = "35";
+  version = "36.1";
 
   src = fetchFromGitHub {
     owner = "pymumu";
     repo = pname;
     rev = "Release${version}";
-    sha256 = "sha256-5822qe3mdn4wPO8fHW5AsgMA7xbJnMjZn9DbiMU3GX0=";
+    sha256 = "sha256-5pAt7IjgbCCGaHeSoQvuoc6KPD9Yn5iXL1CAawgBeY0=";
   };
 
   buildInputs = [ openssl ];
 
-  # Force the systemd service file to be regenerated from it's template.  This
-  # file is erroneously added in version 35 and it has already been deleted from
-  # upstream's git repository.  So this "postPatch" phase can be deleted in next
-  # release.
-  postPatch = ''
-    rm -f systemd/smartdns.service
-  '';
-
   makeFlags = [
     "PREFIX=${placeholder "out"}"
     "SYSTEMDSYSTEMUNITDIR=${placeholder "out"}/lib/systemd/system"
     "RUNSTATEDIR=/run"
+    # by default it is the build time... weird... https://github.com/pymumu/smartdns/search?q=ver
+    "VER=${version}"
   ];
 
   installFlags = [ "SYSCONFDIR=${placeholder "out"}/etc" ];
 
+  passthru.tests = {
+    version = testers.testVersion { package = smartdns; };
+  };
+
   meta = with lib; {
     description =
       "A local DNS server to obtain the fastest website IP for the best Internet experience";
diff --git a/pkgs/tools/networking/ssmtp/default.nix b/pkgs/tools/networking/ssmtp/default.nix
deleted file mode 100644
index ec309a4a2ce00..0000000000000
--- a/pkgs/tools/networking/ssmtp/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ lib, stdenv, fetchurl, tlsSupport ? true, openssl }:
-
-stdenv.mkDerivation rec {
-  pname = "ssmtp";
-  version = "2.64";
-
-  src = fetchurl {
-    url = "mirror://debian/pool/main/s/ssmtp/ssmtp_${version}.orig.tar.bz2";
-    sha256 = "0dps8s87ag4g3jr6dk88hs9zl46h3790marc5c2qw7l71k4pvhr2";
-  };
-
-  # A request has been made to merge this patch into ssmtp.
-  # See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=858781
-  patches = [ ./ssmtp_support_AuthPassFile_parameter.patch ];
-
-  configureFlags = [
-    "--sysconfdir=/etc"
-    (lib.enableFeature tlsSupport "ssl")
-  ];
-
-  postConfigure = ''
-    # Don't run the script that interactively generates a config file.
-    # Also don't install the broken, cyclic symlink /lib/sendmail.
-    sed -e '/INSTALLED_CONFIGURATION_FILE/d' \
-        -e 's|/lib/sendmail|$(TMPDIR)/sendmail|' \
-        -i Makefile
-    substituteInPlace Makefile \
-      --replace '$(INSTALL) -s' '$(INSTALL) -s --strip-program $(STRIP)'
-  '';
-
-  installFlags = [ "etcdir=$(out)/etc" ];
-
-  installTargets = [ "install" "install-sendmail" ];
-
-  buildInputs = lib.optional tlsSupport openssl;
-
-  NIX_LDFLAGS = lib.optionalString tlsSupport "-lcrypto";
-
-  meta = with lib; {
-    description = "simple MTA to deliver mail from a computer to a mail hub";
-    platforms = platforms.linux;
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ basvandijk ];
-  };
-}
diff --git a/pkgs/tools/networking/ssmtp/ssmtp_support_AuthPassFile_parameter.patch b/pkgs/tools/networking/ssmtp/ssmtp_support_AuthPassFile_parameter.patch
deleted file mode 100644
index 371c0f6de2b3e..0000000000000
--- a/pkgs/tools/networking/ssmtp/ssmtp_support_AuthPassFile_parameter.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-diff -Naurb a/ssmtp.c b/ssmtp.c
---- a/ssmtp.c	2009-11-23 10:55:11.000000000 +0100
-+++ b/ssmtp.c	2017-03-25 03:00:26.508283016 +0100
-@@ -57,6 +57,7 @@
- char arpadate[ARPADATE_LENGTH];
- char *auth_user = (char)NULL;
- char *auth_pass = (char)NULL;
-+char *auth_passfile = (char)NULL;
- char *auth_method = (char)NULL;		/* Mechanism for SMTP authentication */
- char *mail_domain = (char)NULL;
- char *from = (char)NULL;		/* Use this as the From: address */
-@@ -1053,6 +1054,15 @@
- 					log_event(LOG_INFO, "Set AuthPass=\"%s\"\n", auth_pass);
- 				}
- 			}
-+			else if(strcasecmp(p, "AuthPassFile") == 0 && !auth_passfile) {
-+				if((auth_passfile = strdup(q)) == (char *)NULL) {
-+					die("parse_config() -- strdup() failed");
-+				}
-+
-+				if(log_level > 0) {
-+					log_event(LOG_INFO, "Set AuthPassFile=\"%s\"\n", auth_passfile);
-+				}
-+			}
- 			else if(strcasecmp(p, "AuthMethod") == 0 && !auth_method) {
- 				if((auth_method = strdup(q)) == (char *)NULL) {
- 					die("parse_config() -- strdup() failed");
-@@ -1415,6 +1425,8 @@
- 	struct passwd *pw;
- 	int i, sock;
- 	uid_t uid;
-+	FILE *fp;
-+	char pass_buf[BUF_SZ+1];
- 	bool_t minus_v_save, leadingdot, linestart = True;
- 	int timeout = 0;
- 	int bufsize = sizeof(b)-1;
-@@ -1433,6 +1445,17 @@
- 		log_event(LOG_INFO, "%s not found", config_file);
- 	}
- 
-+	if(auth_passfile != (char *)NULL) {
-+		if((fp = fopen(auth_passfile, "r")) == (FILE *)NULL) {
-+			  die("Could not open the AuthPassFile %s", auth_passfile);
-+		}
-+		if (fgets(pass_buf, BUF_SZ, fp) == NULL) {
-+			die("Error while reading a line from the AuthPassFile %s, or it is empty", auth_passfile);
-+		}
-+		fclose(fp);
-+		auth_pass = strdup(pass_buf);
-+	}
-+
- 	if((p = strtok(pw->pw_gecos, ";,"))) {
- 		if((gecos = strdup(p)) == (char *)NULL) {
- 			die("ssmtp() -- strdup() failed");
-diff -Naurb a/ssmtp.conf.5 b/ssmtp.conf.5
---- a/ssmtp.conf.5	2008-02-29 03:50:15.000000000 +0100
-+++ b/ssmtp.conf.5	2017-03-25 01:45:52.890165426 +0100
-@@ -61,6 +61,11 @@
- .Pp
- .It Cm AuthPass
- The password to use for SMTP AUTH.
-+It is recommended to use AuthPassFile which also takes precedence over AuthPass.
-+.Pp
-+.It Cm AuthPassFile
-+A file that should contain the password to use for SMTP AUTH.
-+This takes precedence over AuthPass.
- .Pp
- .It Cm AuthMethod
- The authorization method to use.
diff --git a/pkgs/tools/networking/subfinder/default.nix b/pkgs/tools/networking/subfinder/default.nix
index 9f0dfe7c38816..5433fb677450a 100644
--- a/pkgs/tools/networking/subfinder/default.nix
+++ b/pkgs/tools/networking/subfinder/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "subfinder";
-  version = "2.5.0";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-RzZlr0mscJgOGWOn4RU9SOr/WkKOrY39cIUKFKxis6Y=";
+    sha256 = "sha256-t5bIIb31gb6f7hVeiTmMut0wXl40/Du4W9lnB49jlFA=";
   };
 
-  vendorSha256 = "sha256-P98giu0a5FLBsE87XVTurYNGnNk8JUfz1awY49OBj9M=";
+  vendorSha256 = "sha256-lyqjODNk7R6mvSl/I1zFgXvs4m60D4gwfgJ6ocoOHhc=";
 
   modRoot = "./v2";
 
diff --git a/pkgs/tools/networking/subnetcalc/default.nix b/pkgs/tools/networking/subnetcalc/default.nix
new file mode 100644
index 0000000000000..db8c983be0967
--- /dev/null
+++ b/pkgs/tools/networking/subnetcalc/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub, cmake, ninja }:
+
+stdenv.mkDerivation rec {
+  pname = "subnetcalc";
+  version = "2.4.19";
+
+  src = fetchFromGitHub {
+    owner = "dreibh";
+    repo = pname;
+    rev = "${pname}-${version}";
+    sha256 = "sha256-70OHHcdCsZBa95KQEEYhs6LfpjPg+ULOB+A+VrQVltU=";
+  };
+
+  nativeBuildInputs = [ cmake ninja ];
+
+  meta = with lib; {
+    description = "SubNetCalc is an IPv4/IPv6 subnet address calculator";
+    longDescription = ''
+      SubNetCalc is an IPv4/IPv6 subnet address calculator. For given IPv4 or
+      IPv6 address and netmask or prefix length, it calculates network address,
+      broadcast address, maximum number of hosts and host address range. Also,
+      it prints the addresses in binary format for better understandability.
+      Furthermore, it prints useful information on specific address types (e.g.
+      type, scope, interface ID, etc.).
+    '';
+    homepage = "https://www.uni-due.de/~be0001/subnetcalc/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ atila ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/networking/tdns-cli/default.nix b/pkgs/tools/networking/tdns-cli/default.nix
index a38456bcc760a..10dda6568fc3f 100644
--- a/pkgs/tools/networking/tdns-cli/default.nix
+++ b/pkgs/tools/networking/tdns-cli/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rotty/tdns-cli";
     license = licenses.gpl3;
     maintainers = with maintainers; [ astro ];
+    mainProgram = "tdns";
   };
 }
diff --git a/pkgs/tools/networking/telepresence2/default.nix b/pkgs/tools/networking/telepresence2/default.nix
index 06a36473ec143..693c43843c11c 100644
--- a/pkgs/tools/networking/telepresence2/default.nix
+++ b/pkgs/tools/networking/telepresence2/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "telepresence2";
-  version = "2.4.10";
+  version = "2.5.4";
 
   src = fetchFromGitHub {
     owner = "telepresenceio";
     repo = "telepresence";
     rev = "v${version}";
-    sha256 = "sha256-OM0kMQYYHjk17x4VmrIXyTq/DxXnTrt6oRHEdV+1+Ns=";
+    sha256 = "sha256-v6E1v89cVL4N8eKJ5pKU6BwQWZF5lLs4VLGhUS5J1rA=";
   };
 
   # The Helm chart is go:embed'ed as a tarball in the binary.
@@ -21,7 +21,7 @@ buildGoModule rec {
     go run ./build-aux/package_embedded_chart/main.go ${src.rev}
   '';
 
-  vendorSha256 = "sha256-J7Qj0g479K6k0pXmZzQ3T4VG4Vdj7Sc9Xhuy4Ke/xkU=";
+  vendorSha256 = "sha256-RDXP7faijMujAV19l9NmI4xk0Js6DE5YZoHRo2GHyoU=";
 
   ldflags = [
     "-s" "-w" "-X=github.com/telepresenceio/telepresence/v2/pkg/version.Version=${src.rev}"
@@ -34,5 +34,6 @@ buildGoModule rec {
     homepage = "https://www.getambassador.io/docs/telepresence/2.1/quick-start/";
     license = licenses.asl20;
     maintainers = with maintainers; [ mausch ];
+    mainProgram = "telepresence";
   };
 }
diff --git a/pkgs/tools/networking/termscp/default.nix b/pkgs/tools/networking/termscp/default.nix
index 4883cc042cde7..5542adca77af9 100644
--- a/pkgs/tools/networking/termscp/default.nix
+++ b/pkgs/tools/networking/termscp/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "termscp";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "veeso";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fVZDpzgcpMWOoUtoq7go/NFWfoR1aONuRtTba0sqPZk=";
+    sha256 = "sha256-WqOkud8gOa81P6FT44y5RZX4CWjmou9HufZ3QPoYuAk=";
   };
 
-  cargoSha256 = "sha256-iLm73dWF9z/obtAXe5dZlvJcxU6hB5N0vaSc/HLuTuQ=";
+  cargoSha256 = "sha256-jckJiFhiUvbn0fkgKzqDorWQvuLenx/S8+RyPoqaWUg=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/tools/networking/unbound/default.nix b/pkgs/tools/networking/unbound/default.nix
index b2d577dab330e..b92fb23d64e58 100644
--- a/pkgs/tools/networking/unbound/default.nix
+++ b/pkgs/tools/networking/unbound/default.nix
@@ -8,6 +8,8 @@
 , libsodium
 , protobufc
 , hiredis
+, python ? null
+, swig
 , dns-root-data
 , pkg-config
 , makeWrapper
@@ -35,6 +37,7 @@
 # Avoid .lib depending on lib.getLib openssl
 # The build gets a little hacky, so in some cases we disable this approach.
 , withSlimLib ? stdenv.isLinux && !stdenv.hostPlatform.isMusl && !withDNSTAP
+, withPythonModule ? false
 , libnghttp2
 }:
 
@@ -49,11 +52,13 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "lib" "man" ]; # "dev" would only split ~20 kB
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ]
+    ++ lib.optionals withPythonModule [ swig ];
 
   buildInputs = [ openssl nettle expat libevent ]
     ++ lib.optionals withSystemd [ pkg-config systemd ]
-    ++ lib.optionals withDoH [ libnghttp2 ];
+    ++ lib.optionals withDoH [ libnghttp2 ]
+    ++ lib.optionals withPythonModule [ python ];
 
   configureFlags = [
     "--with-ssl=${openssl.dev}"
@@ -69,6 +74,8 @@ stdenv.mkDerivation rec {
     "--disable-flto"
   ] ++ lib.optionals withSystemd [
     "--enable-systemd"
+  ] ++ lib.optionals withPythonModule [
+    "--with-pythonmodule"
   ] ++ lib.optionals withDoH [
     "--with-libnghttp2=${libnghttp2.dev}"
   ] ++ lib.optionals withECS [
@@ -100,12 +107,21 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  postPatch = lib.optionalString withPythonModule ''
+    substituteInPlace Makefile.in \
+      --replace "\$(DESTDIR)\$(PYTHON_SITE_PKG)" "$out/${python.sitePackages}"
+  '';
+
   installFlags = [ "configfile=\${out}/etc/unbound/unbound.conf" ];
 
   postInstall = ''
     make unbound-event-install
     wrapProgram $out/bin/unbound-control-setup \
       --prefix PATH : ${lib.makeBinPath [ openssl ]}
+  '' + lib.optionalString withPythonModule ''
+    wrapProgram $out/bin/unbound \
+      --prefix PYTHONPATH : "$out/${python.sitePackages}" \
+      --argv0 $out/bin/unbound
   '';
 
   preFixup = lib.optionalString withSlimLib
diff --git a/pkgs/tools/networking/vpnc/default.nix b/pkgs/tools/networking/vpnc/default.nix
index 31a4262d8a645..4fbb26eba21d6 100644
--- a/pkgs/tools/networking/vpnc/default.nix
+++ b/pkgs/tools/networking/vpnc/default.nix
@@ -1,29 +1,21 @@
-{ lib, stdenv, fetchsvn
-, makeWrapper, pkg-config
-, gawk, gnutls, libgcrypt, nettools, openresolv, perl
+{ lib, stdenv, fetchFromGitHub, fetchpatch
+, makeWrapper, pkg-config, perl
+, gawk, gnutls, libgcrypt, openresolv, vpnc-scripts
 , opensslSupport ? false, openssl # Distributing this is a GPL violation.
 }:
 
 stdenv.mkDerivation {
   pname = "vpnc";
-  version = "0.5.3-post-r550";
-  src = fetchsvn {
-    url = "https://svn.unix-ag.uni-kl.de/vpnc";
-    rev = "550";
-    sha256 = "0x4ckfv9lpykwmh28v1kyzz91y1j2v48fi8q5nsawrba4q0wlrls";
+  version = "unstable-2021-11-04";
+
+  src = fetchFromGitHub {
+    owner = "streambinder";
+    repo = "vpnc";
+    rev = "c8bb5371b881f8853f191c495e762f834c9def5d";
+    sha256 = "1j1p83nfc2fpwczjcggsby0b44hk97ky0s6vns6md3awlbpgdn57";
+    fetchSubmodules = true;
   };
 
-  postUnpack = ''
-    mv $sourceRoot/trunk/* $sourceRoot/.
-    rm -r $sourceRoot/{trunk,branches,tags}
-  '';
-
-  patches = [ ./no_default_route_when_netmask.patch ];
-
-  # The `etc/vpnc/vpnc-script' script relies on `which' and on
-  # `ifconfig' as found in net-tools (not GNU Inetutils).
-  propagatedBuildInputs = [ nettools ];
-
   nativeBuildInputs = [ makeWrapper ]
     ++ lib.optional (!opensslSupport) pkg-config;
   buildInputs = [ libgcrypt perl ]
@@ -32,36 +24,17 @@ stdenv.mkDerivation {
   makeFlags = [
     "PREFIX=$(out)"
     "ETCDIR=$(out)/etc/vpnc"
-    "SCRIPT_PATH=$(out)/etc/vpnc/vpnc-script"
+    "SCRIPT_PATH=${vpnc-scripts}/bin/vpnc-script"
   ] ++ lib.optional opensslSupport "OPENSSL_GPL_VIOLATION=yes";
 
   postPatch = ''
-    patchShebangs makeman.pl
+    patchShebangs src/makeman.pl
   '';
 
-  preConfigure = ''
-    substituteInPlace "vpnc-script" \
-      --replace "which" "type -P" \
-      --replace "awk" "${gawk}/bin/awk" \
-      --replace "/sbin/resolvconf" "${openresolv}/bin/resolvconf"
-
-    substituteInPlace "config.c" \
-      --replace "/etc/vpnc/vpnc-script" "$out/etc/vpnc/vpnc-script"
-  '';
-
-  postInstall = ''
-    for i in "$out/{bin,sbin}/"*
-    do
-      wrapProgram $i --prefix PATH :  \
-        "${nettools}/bin:${nettools}/sbin"
-    done
-
-    mkdir -p $out/share/doc/vpnc
-    cp README nortel.txt ChangeLog $out/share/doc/vpnc/
-  '';
+  enableParallelBuilding = true;
 
   meta = with lib; {
-    homepage = "https://www.unix-ag.uni-kl.de/~massar/vpnc/";
+    homepage = "https://davidepucci.it/doc/vpnc/";
     description = "Virtual private network (VPN) client for Cisco's VPN concentrators";
     license = if opensslSupport then licenses.unfree else licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/tools/networking/vpnc/no_default_route_when_netmask.patch b/pkgs/tools/networking/vpnc/no_default_route_when_netmask.patch
deleted file mode 100644
index fa12abe9b7765..0000000000000
--- a/pkgs/tools/networking/vpnc/no_default_route_when_netmask.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -uNr a/vpnc-script b/vpnc-script
---- a/vpnc-script	2015-09-06 13:19:11.408661526 +0200
-+++ b/vpnc-script	2015-09-06 14:47:40.260871556 +0200
-@@ -647,7 +647,7 @@
- 			echo "$i" | grep : >/dev/null || \
- 				set_network_route "$i" "255.255.255.255" "32"
- 		done
--	elif [ -n "$INTERNAL_IP4_ADDRESS" ]; then
-+	elif [ -n "$INTERNAL_IP4_ADDRESS" -a -z "$INTERNAL_IP4_NETMASK" ]; then
- 		set_default_route
- 	fi
- 	if [ -n "$CISCO_IPV6_SPLIT_INC" ]; then
diff --git a/pkgs/tools/networking/webwormhole/default.nix b/pkgs/tools/networking/webwormhole/default.nix
index 8fbaf3159a22e..aed0b624d44a6 100644
--- a/pkgs/tools/networking/webwormhole/default.nix
+++ b/pkgs/tools/networking/webwormhole/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/saljam/webwormhole";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bbigras ];
+    mainProgram = "ww";
   };
 }
diff --git a/pkgs/tools/networking/weighttp/default.nix b/pkgs/tools/networking/weighttp/default.nix
deleted file mode 100644
index 7a26ffdeb436c..0000000000000
--- a/pkgs/tools/networking/weighttp/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ lib, stdenv, fetchgit, python2, libev, wafHook }:
-
-stdenv.mkDerivation rec {
-  pname = "weighttp";
-  version = "0.4";
-
-  src = fetchgit {
-    url = "https://git.lighttpd.net/weighttp.git";
-    rev = "refs/tags/weighttp-${version}";
-    sha256 = "14yjmdx9p8g8c3zlrx5qid8k156lsagfwhl3ny54162nxjf7kzgr";
-  };
-
-  nativeBuildInputs = [ wafHook ];
-
-  buildInputs = [ python2 libev ];
-
-  meta = with lib; {
-    description = "Lightweight and simple webserver benchmarking tool";
-    homepage = "https://redmine.lighttpd.net/projects/weighttp/wiki";
-    platforms = platforms.unix;
-    license = licenses.mit;
-  };
-}
diff --git a/pkgs/tools/networking/wg-friendly-peer-names/default.nix b/pkgs/tools/networking/wg-friendly-peer-names/default.nix
index a2ec966a60454..eaa8efbcebdba 100644
--- a/pkgs/tools/networking/wg-friendly-peer-names/default.nix
+++ b/pkgs/tools/networking/wg-friendly-peer-names/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     platforms = wireguard-tools.meta.platforms;
     maintainers = with maintainers; [ mkg20001 ];
+    mainProgram = "wgg";
   };
 }
diff --git a/pkgs/tools/networking/wireguard-tools/default.nix b/pkgs/tools/networking/wireguard-tools/default.nix
index 00b91adc27380..59dafe9f90599 100644
--- a/pkgs/tools/networking/wireguard-tools/default.nix
+++ b/pkgs/tools/networking/wireguard-tools/default.nix
@@ -7,7 +7,6 @@
 , makeWrapper
 , openresolv
 , procps
-, wireguard-go
 }:
 
 stdenv.mkDerivation rec {
@@ -40,10 +39,6 @@ stdenv.mkDerivation rec {
     for f in $out/bin/*; do
       wrapProgram $f --prefix PATH : ${lib.makeBinPath [ procps iproute2 iptables openresolv ]}
     done
-  '' + lib.optionalString stdenv.isDarwin ''
-    for f in $out/bin/*; do
-      wrapProgram $f --prefix PATH : ${wireguard-go}/bin
-    done
   '';
 
   passthru = {
diff --git a/pkgs/tools/networking/wormhole-william/default.nix b/pkgs/tools/networking/wormhole-william/default.nix
index 157119e647502..95d77f7402c70 100644
--- a/pkgs/tools/networking/wormhole-william/default.nix
+++ b/pkgs/tools/networking/wormhole-william/default.nix
@@ -13,7 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-J6iht3cagcwFekydShgaYJtkNLfEvSDqonkC7+frldM=";
 
-  doCheck = false;
+  preCheck = ''
+    # wormhole_test.go:692: failed to establish connection
+    substituteInPlace wormhole/wormhole_test.go \
+      --replace "TestWormholeDirectoryTransportSendRecvDirect" \
+                "SkipWormholeDirectoryTransportSendRecvDirect"
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/psanford/wormhole-william";
diff --git a/pkgs/tools/networking/xxh/default.nix b/pkgs/tools/networking/xxh/default.nix
index 386b8cafbd12f..98632f5e2a0f7 100644
--- a/pkgs/tools/networking/xxh/default.nix
+++ b/pkgs/tools/networking/xxh/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonApplication rec{
   pname = "xxh";
-  version = "0.8.9";
+  version = "0.8.10";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -19,7 +19,7 @@ buildPythonApplication rec{
     owner = pname;
     repo = pname;
     rev = version;
-    hash = "sha256-Uo7xFwE9e5MFWDlNWq15kg+4xf/hF4WGUNTpTK+rgVg=";
+    hash = "sha256-2RMzgIAhM//XReCFBGlTlXn9j4WQiM/k2pLxP2iPUy8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/tools/nix/alejandra/default.nix b/pkgs/tools/nix/alejandra/default.nix
index 15d232dbfbba3..62deef516d50e 100644
--- a/pkgs/tools/nix/alejandra/default.nix
+++ b/pkgs/tools/nix/alejandra/default.nix
@@ -1,25 +1,25 @@
 { lib
 , rustPlatform
 , fetchFromGitHub
-, testVersion
+, testers
 , alejandra
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "alejandra";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "kamadorueda";
     repo = "alejandra";
     rev = version;
-    sha256 = "sha256-vkFKYnSmhPPXtc3AH7iRtqRRqxhj0o5WySqPT+klDWU=";
+    sha256 = "sha256-35hEJuMvRswOPKb9lbB9ZuHVe0eJN6WJc4T8Frn0hYQ=";
   };
 
-  cargoSha256 = "sha256-MsXaanznE4UtZMj54EDq86aJ2t4xT8O5ziTpa/KCwBw=";
+  cargoSha256 = "sha256-SsIpggbRQPjpCYgCG4sSJ022MmMV4bJJ8UAHcJR74O8=";
 
   passthru.tests = {
-    version = testVersion { package = alejandra; };
+    version = testers.testVersion { package = alejandra; };
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/package-management/apt/default.nix b/pkgs/tools/package-management/apt/default.nix
index 511643e38af4e..550f010d754d8 100644
--- a/pkgs/tools/package-management/apt/default.nix
+++ b/pkgs/tools/package-management/apt/default.nix
@@ -28,11 +28,11 @@
 
 stdenv.mkDerivation rec {
   pname = "apt";
-  version = "2.3.15";
+  version = "2.4.4";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/a/apt/apt_${version}.tar.xz";
-    hash = "sha256-JWIAfREJk91+eobdgeplDmEhAXm1nqxytu3/Y2TAu6Y=";
+    hash = "sha256-1tg9Ei3dfMg7LC+DmlWUDBOrk+XPYCSgENamtBENzw4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/package-management/cargo-about/default.nix b/pkgs/tools/package-management/cargo-about/default.nix
index 0ed6f978ba965..8b98858e823b9 100644
--- a/pkgs/tools/package-management/cargo-about/default.nix
+++ b/pkgs/tools/package-management/cargo-about/default.nix
@@ -2,19 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-about";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "EmbarkStudios";
     repo = "cargo-about";
     rev = version;
-    sha256 = "sha256-M09X7UwrTtrOhOphhpGHSAqxneY50jNrFKJCeBQhRfc=";
+    sha256 = "sha256-T8Hhody0jMmZb6/xMkSvKCv4STZPbcrf/UB3APspYDM=";
   };
 
   # enable pkg-config feature of zstd
   cargoPatches = [ ./zstd-pkg-config.patch ];
 
-  cargoSha256 = "sha256-E1+OfVAzrezXoUz9Nlyhdq1xxEWm4UJhVyp+nG7UmYY=";
+  cargoSha256 = "sha256-x/HzDYNy0FDxJmhjSUUEiyahM7Sw27aC+ULP/Ii0X/8=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/tools/package-management/cargo-outdated/default.nix b/pkgs/tools/package-management/cargo-outdated/default.nix
index a1f783a7fe484..2013f15d1e1a6 100644
--- a/pkgs/tools/package-management/cargo-outdated/default.nix
+++ b/pkgs/tools/package-management/cargo-outdated/default.nix
@@ -11,14 +11,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-outdated";
-  version = "0.11.0";
+  version = "0.11.1";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-43PqIM61MXY35BSprRNPTMyVUEVD15sq4+6PHS/P2o0=";
+    sha256 = "sha256-vEgYmtRAashBRsGDExewqaGsVYF7EJ4ky+cE/PMFW38=";
   };
 
-  cargoSha256 = "sha256-ue93L8pyjKR+bxNdltQcsHSPJ3Iz+4gpeskIhhR2/wI=";
+  cargoSha256 = "sha256-xstcKIXQDk4ngwWSzMueO47U2oFRHAqvvjRnDXFsPE8=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/tools/package-management/cargo-release/default.nix b/pkgs/tools/package-management/cargo-release/default.nix
index 49a6d64506065..469eecde99fc9 100644
--- a/pkgs/tools/package-management/cargo-release/default.nix
+++ b/pkgs/tools/package-management/cargo-release/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-release";
-  version = "0.20.3";
+  version = "0.20.5";
 
   src = fetchFromGitHub {
     owner = "crate-ci";
     repo = "cargo-release";
     rev = "v${version}";
-    sha256 = "sha256-oYnqrNqbn/OsJd0Lh6rQ2pt7FrLOp5p3MoavC56dWQc=";
+    sha256 = "sha256-3UuDo6lW+SG4XhqEKvpe/JeJXwEeYTA0i65yJAjDVHk=";
   };
 
-  cargoSha256 = "sha256-LtDIzqHzzur+GxxvUHciNQCRmxqdmaXSG4ncMV3Rx3c=";
+  cargoSha256 = "sha256-/3gh3NdIuWl0xtbLahNRGBl/BGpVUmR7sHUIX3bttpQ=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/tools/package-management/clib/default.nix b/pkgs/tools/package-management/clib/default.nix
index e79c376ab7927..34399a78c5dca 100644
--- a/pkgs/tools/package-management/clib/default.nix
+++ b/pkgs/tools/package-management/clib/default.nix
@@ -1,18 +1,16 @@
 { lib, stdenv, fetchFromGitHub, curl  }:
 
 stdenv.mkDerivation rec {
-  version = "1.11.4";
+  version = "2.8.1";
   pname = "clib";
 
   src = fetchFromGitHub {
     rev    = version;
     owner  = "clibs";
     repo   = "clib";
-    sha256 = "0cxldyx5bsld8gdasqpqlnzyap294hlkgcjyw3vlzlxcb0izjy8i";
+    sha256 = "sha256-AzPpGwtZemKX2r/XKyNTJ+lVwU1QUxkB2OywtCwTAWs=";
   };
 
-  hardeningDisable = [ "fortify" ];
-
   makeFlags = [ "PREFIX=$(out)" ];
 
   buildInputs = [ curl ];
diff --git a/pkgs/tools/package-management/comma/default.nix b/pkgs/tools/package-management/comma/default.nix
index 1cd8ac8ccd48c..a9885fc135181 100644
--- a/pkgs/tools/package-management/comma/default.nix
+++ b/pkgs/tools/package-management/comma/default.nix
@@ -1,55 +1,44 @@
-{ lib
-, stdenv
-, fetchurl
+{ comma
 , fetchFromGitHub
-, linkFarm
-, nix-index
 , fzy
+, lib
+, makeWrapper
+, nix
+, nix-index
+, rustPlatform
+, testVersion
 }:
 
-let
-
-  # nix-index takes a little while to run and the contents don't change
-  # meaningfully very often.
-  indexCache = fetchurl {
-    url = "https://github.com/Mic92/nix-index-database/releases/download/2021-12-12/index-x86_64-linux";
-    sha256 = "sha256-+SoG5Qz2KWA/nIWXE6SLpdi8MDqTs8LY90fGZxGKOiA=";
-  };
-
-  # nix-locate needs the --db argument to be a directory containing a file
-  # named "files".
-  nixIndexDB = linkFarm "nix-index-cache" [
-    { name = "files"; path = indexCache; }
-  ];
-
-in stdenv.mkDerivation rec {
+rustPlatform.buildRustPackage rec {
   pname = "comma";
-  version = "1.1.0";
+  version = "1.2.3";
 
   src = fetchFromGitHub {
     owner = "nix-community";
-    repo = pname;
-    rev = version;
-    sha256 = "sha256-WBIQmwlkb/GMoOq+Dnyrk8YmgiM/wJnc5HYZP8Uw72E=";
+    repo = "comma";
+    rev = "v${version}";
+    sha256 = "sha256-emhvBaicLAnu/Kn4oxHngGa5BSxOEwbkhTLO5XvauMw=";
   };
 
-  postPatch = ''
-    substituteInPlace , \
-      --replace '$PREBUILT_NIX_INDEX_DB' "${nixIndexDB}" \
-      --replace nix-locate "${nix-index}/bin/nix-locate" \
-      --replace fzy "${fzy}/bin/fzy"
-  '';
+  cargoSha256 = "sha256-mQxNo4VjW2Q0MYfU+RCb4Ayl9ClpxrSV8X4EKZ7PewA=";
+
+  nativeBuildInputs = [ makeWrapper ];
 
-  installPhase = ''
-    install -Dm755 , -t $out/bin
-    ln -s $out/bin/, $out/bin/comma
+  postInstall = ''
+    wrapProgram $out/bin/comma \
+      --prefix PATH : ${lib.makeBinPath [ nix fzy nix-index ]}
+    ln -s $out/bin/comma $out/bin/,
   '';
 
+  passthru.tests = {
+    version = testVersion { package = comma; };
+  };
+
   meta = with lib; {
     homepage = "https://github.com/nix-community/comma";
-    description = "Run software without installing it";
+    description = "Runs programs without installing them";
     license = licenses.mit;
-    maintainers = with maintainers; [ Enzime ];
+    maintainers = with maintainers; [ Enzime artturin ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/package-management/conda/default.nix b/pkgs/tools/package-management/conda/default.nix
index bc11203bb4ae2..744b0978c9b60 100644
--- a/pkgs/tools/package-management/conda/default.nix
+++ b/pkgs/tools/package-management/conda/default.nix
@@ -8,10 +8,11 @@
 , libarchive
 , libGL
 , xorg
+, zlib
 # Conda installs its packages and environments under this directory
 , installationPath ? "~/.conda"
 # Conda manages most pkgs itself, but expects a few to be on the system.
-, condaDeps ? [ stdenv.cc xorg.libSM xorg.libICE xorg.libX11 xorg.libXau xorg.libXi xorg.libXrender libselinux libGL ]
+, condaDeps ? [ stdenv.cc xorg.libSM xorg.libICE xorg.libX11 xorg.libXau xorg.libXi xorg.libXrender libselinux libGL zlib]
 # Any extra nixpkgs you'd like available in the FHS env for Conda to use
 , extraPkgs ? [ ]
 }:
@@ -30,24 +31,37 @@
 # $ conda-shell
 # $ conda install spyder
 let
-  version = "4.6.14";
+  version = "4.11.0";
   src = fetchurl {
-      url = "https://repo.continuum.io/miniconda/Miniconda3-${version}-Linux-x86_64.sh";
-      sha256 = "1gn43z1y5zw4yv93q1qajwbmmqs83wx5ls5x4i4llaciba4j6sqd";
+      url = "https://repo.continuum.io/miniconda/Miniconda3-py39_${version}-Linux-x86_64.sh";
+      sha256 = "sha256-TunDqlMynNemO0mHfAurtJsZt+WvKYB7eTp2vbHTYrQ=";
   };
+  conda = (
+    let
+      libPath = lib.makeLibraryPath [
+        zlib # libz.so.1
+      ];
+    in
+      runCommand "conda-install" { buildInputs = [ makeWrapper zlib]; }
+        # on line 10, we have 'unset LD_LIBRARY_PATH'
+        # we have to comment it out however in a way that the number of bytes in the
+        # file does not change. So we replace the 'u' in the line with a '#'
+        # The reason is that the binary payload is encoded as number
+        # of bytes from the top of the installer script
+        # and unsetting the library path prevents the zlib library from being discovered
+        ''
+          mkdir -p $out/bin
 
-  conda = runCommand "conda-install" { buildInputs = [ makeWrapper ]; }
-    ''
-      mkdir -p $out/bin
-      cp ${src} $out/bin/miniconda-installer.sh
-      chmod +x $out/bin/miniconda-installer.sh
+          sed 's/unset LD_LIBRARY_PATH/#nset LD_LIBRARY_PATH/' ${src} > $out/bin/miniconda-installer.sh
+          chmod +x $out/bin/miniconda-installer.sh
 
-      makeWrapper                            \
-        $out/bin/miniconda-installer.sh      \
-        $out/bin/conda-install               \
-        --add-flags "-p ${installationPath}" \
-        --add-flags "-b"
-    '';
+          makeWrapper                            \
+            $out/bin/miniconda-installer.sh      \
+            $out/bin/conda-install               \
+            --add-flags "-p ${installationPath}" \
+            --add-flags "-b"                     \
+            --prefix "LD_LIBRARY_PATH" : "${libPath}"
+        '');
 in
   buildFHSUserEnv {
     name = "conda-shell";
diff --git a/pkgs/tools/package-management/home-manager/default.nix b/pkgs/tools/package-management/home-manager/default.nix
index e6c596c07145b..80ef87217d836 100644
--- a/pkgs/tools/package-management/home-manager/default.nix
+++ b/pkgs/tools/package-management/home-manager/default.nix
@@ -1,18 +1,18 @@
 #Adapted from
 #https://github.com/rycee/home-manager/blob/2c07829be2bcae55e04997b19719ff902a44016d/home-manager/default.nix
 
-{ bash, coreutils, findutils, gnused, less, gettext, nixos-option, lib, stdenv, makeWrapper, fetchFromGitHub }:
+{ bash, coreutils, findutils, gnused, less, ncurses, gettext, nixos-option, lib, stdenv, makeWrapper, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
 
   pname = "home-manager";
-  version = "2021-12-25";
+  version = "2022-04-17";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "home-manager";
-    rev = "48f2b381dd397ec88040d3354ac9c036739ba139";
-    sha256 = "1i9v94brh9vhyhzcqyfj64nzhaibdj0sw74pxgk4bcsp0hqawgcd";
+    rev = "620ed197f3624dafa5f42e61d5c043f39b8df366";
+    sha256 = "sha256-BoBvGT71yOfrNDTZQs7+FX0zb4yjMBETgIjtTsdJw+o=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     substituteInPlace $out/bin/home-manager \
       --subst-var-by bash "${bash}" \
       --subst-var-by DEP_PATH "${
-        lib.makeBinPath [ coreutils findutils gettext gnused less nixos-option ]
+        lib.makeBinPath [ coreutils findutils gettext gnused less ncurses nixos-option ]
       }" \
       --subst-var-by HOME_MANAGER_LIB '${src}/lib/bash/home-manager.sh' \
       --subst-var-by HOME_MANAGER_PATH '${src}' \
diff --git a/pkgs/tools/package-management/nfpm/default.nix b/pkgs/tools/package-management/nfpm/default.nix
index b180de2bed483..1a9013b456d6a 100644
--- a/pkgs/tools/package-management/nfpm/default.nix
+++ b/pkgs/tools/package-management/nfpm/default.nix
@@ -13,8 +13,6 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-guJgLjmB29sOLIzs2+gKNp0WTWC3zS9Sb5DD5IistKY=";
 
-  doCheck = false;
-
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
   meta = with lib; {
diff --git a/pkgs/tools/package-management/nix-doc/default.nix b/pkgs/tools/package-management/nix-doc/default.nix
index d3d45e6bbb725..882275eca44dc 100644
--- a/pkgs/tools/package-management/nix-doc/default.nix
+++ b/pkgs/tools/package-management/nix-doc/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nix-doc";
-  version = "0.5.2";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "lf-";
     repo = "nix-doc";
-    sha256 = "sha256-P4AX8ERsMHGkGowc05M7xE5HTFSmaJvD2z0Prz4emeQ=";
+    sha256 = "sha256-H8FNOOjHMUW2wIUfoDhS3eH2AgxxD0LAuX4J9SJyJhg=";
   };
 
   doCheck = true;
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ pkg-config ];
 
-  cargoSha256 = "sha256-RxsH4bSAzBslK8MVGmCJxduf6MYOtQEKxt9QjgUCg1o=";
+  cargoSha256 = "sha256-BTMFoZ8HqbgUXkVyydOkcQZ10TLE8KsGRdt+xhBKJVc=";
 
   meta = with lib; {
     description = "An interactive Nix documentation tool";
diff --git a/pkgs/tools/package-management/nix-du/default.nix b/pkgs/tools/package-management/nix-du/default.nix
index 3f5a73821cbc6..20652557ce639 100644
--- a/pkgs/tools/package-management/nix-du/default.nix
+++ b/pkgs/tools/package-management/nix-du/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nix-du";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "symphorien";
     repo = "nix-du";
     rev = "v${version}";
-    sha256 = "sha256-NnoCoiYTXci7f9MXsxEhoYHwPsaAAuK2wSrDye2+SYM=";
+    sha256 = "sha256-LOs+geYOiAigxwc4VD0FiZQjAnIrcV9ncyPuwGhS92E=";
   };
 
-  cargoSha256 = "sha256-X5181gZtvnUHZAqMjNARRVFq12LuLJfPP5ZOWxBRxXk=";
+  cargoSha256 = "sha256-aEm+SQgE63ZWpb2kXavyoiq2rVkaebFw8kqWPMr2aMA=";
 
   doCheck = true;
   checkInputs = [ nix graphviz ];
diff --git a/pkgs/tools/package-management/nix-eval-jobs/default.nix b/pkgs/tools/package-management/nix-eval-jobs/default.nix
index 1023d23432c2a..2d50dbc571d01 100644
--- a/pkgs/tools/package-management/nix-eval-jobs/default.nix
+++ b/pkgs/tools/package-management/nix-eval-jobs/default.nix
@@ -11,12 +11,12 @@
 }:
 stdenv.mkDerivation rec {
   pname = "nix-eval-jobs";
-  version = "0.0.4";
+  version = "0.0.5";
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-SCwvFlBYUlxCucjMO4GHhEQWZFZt0lRKJncm6hvDx9I=";
+    hash = "sha256-3/F9q6MRebTltJzuhIukHrxgUyd5pi34IzaklfdvKe4=";
   };
   buildInputs = [
     boost
diff --git a/pkgs/tools/package-management/nix-template/default.nix b/pkgs/tools/package-management/nix-template/default.nix
index 39a5517ba27be..948f1b8008e00 100644
--- a/pkgs/tools/package-management/nix-template/default.nix
+++ b/pkgs/tools/package-management/nix-template/default.nix
@@ -9,17 +9,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nix-template";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     name = "${pname}-${version}-src";
     owner = "jonringer";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5CIGxm9LJ5GGUM2D2tZxzMsNlWIlfTWCVzyM/VNh15I=";
+    sha256 = "sha256-5redgssfwbNEgpjmakIcU8cL4Xg1kPvyK88v+xMqAtw=";
   };
 
-  cargoSha256 = "sha256-enclL7lGwIiJFrMwH/d4vTK+lKbP5ytySKha5mkHsvc=";
+  cargoSha256 = "sha256-d4gxOIpgtVBpqy4QGW4/UB/FP94CS+yzS8GCjRVaXOM=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/tools/package-management/nix/common.nix b/pkgs/tools/package-management/nix/common.nix
index 2f9a6be8f66ba..1cf2beb2bbb5d 100644
--- a/pkgs/tools/package-management/nix/common.nix
+++ b/pkgs/tools/package-management/nix/common.nix
@@ -201,7 +201,7 @@ self = stdenv.mkDerivation {
     '';
     homepage = "https://nixos.org/";
     license = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ eelco lovesegfault ];
+    maintainers = with maintainers; [ eelco lovesegfault artturin ];
     platforms = platforms.unix;
     outputsToInstall = [ "out" ] ++ optional enableDocumentation "man";
   };
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 4510948b436be..8e0860dfe5812 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -68,18 +68,33 @@ in lib.makeExtensible (self: {
   nix_2_7 = common {
     version = "2.7.0";
     sha256 = "sha256-m8tqCS6uHveDon5GSro5yZor9H+sHeh+v/veF1IGw24=";
+    patches = [
+      # remove when there's a 2.7.1 release
+      # https://github.com/NixOS/nix/pull/6297
+      # https://github.com/NixOS/nix/issues/6243
+      # https://github.com/NixOS/nixpkgs/issues/163374
+      (fetchpatch {
+        url = "https://github.com/NixOS/nix/commit/c9afca59e87afe7d716101e6a75565b4f4b631f7.patch";
+        sha256 = "sha256-xz7QnWVCI12lX1+K/Zr9UpB93b10t1HS9y/5n5FYf8Q=";
+      })
+    ];
   };
 
-  stable = self.nix_2_7;
+  nix_2_8 = common {
+    version = "2.8.0";
+    sha256 = "sha256-gWYNlEyleqkPfxtGXeq6ggjzJwcXJVdieJxA1Obly9s=";
+  };
+
+  stable = self.nix_2_8;
 
   unstable = lib.lowPrio (common rec {
     version = "2.8";
-    suffix = "pre20220322_${lib.substring 0 7 src.rev}";
+    suffix = "pre20220411_${lib.substring 0 7 src.rev}";
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "nix";
-      rev = "d5d4d980427aca3849b90bfe1694b6d1d14532fb";
-      sha256 = "sha256-fV7nUcRhVmgIvDUraAzHV2TDVHDn1jETfv2zdDMQ59Y=";
+      rev = "f7276bc948705f452b2bfcc2a08bc44152f1d5a8";
+      sha256 = "sha256-brqGGdr2CzqufY3NXU8tGm6QbCTSFGfboruU2cUWhu8=";
     };
   });
 })
diff --git a/pkgs/tools/package-management/pdm/default.nix b/pkgs/tools/package-management/pdm/default.nix
index 4e59333ed79bd..7458262b168a7 100644
--- a/pkgs/tools/package-management/pdm/default.nix
+++ b/pkgs/tools/package-management/pdm/default.nix
@@ -24,13 +24,13 @@ in
 with python.pkgs;
 buildPythonApplication rec {
   pname = "pdm";
-  version = "1.12.6";
+  version = "1.14.0";
   format = "pyproject";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-MXKER2ijU+2yPnsBFH0cu/hjHI4uNt++AqggH5rhnaU=";
+    sha256 = "sha256-ZUbcuIRutSoHW5egCpwCKca2IZCgQsRAd72ueDzGySI=";
   };
 
   # this patch allows us to run additional tests that invoke pdm, which checks
@@ -41,19 +41,12 @@ buildPythonApplication rec {
   # doesn't appear to respect the settings in `$HOME`; possibly a bug upstream
   patches = [
     ./check-update.patch
-    (fetchurl {
-      # Mark test that require network access
-      url = "https://github.com/pdm-project/pdm/files/7911962/mark-network-tests.patch.txt";
-      hash = "sha256:1dizf9j3z7zk4lxvnszwx63xzd9r68f2iva5sszzf8s8na831dvd";
-    })
   ];
-  postPatch = ''
-    substituteInPlace pyproject.toml --replace "pdm-pep517>=0.9,<0.10" "pdm-pep517"
-  '';
 
   propagatedBuildInputs = [
     blinker
     click
+    findpython
     installer
     packaging
     pdm-pep517
@@ -78,26 +71,22 @@ buildPythonApplication rec {
   ];
 
   pytestFlagsArray = [
-    "--numprocesses $NIX_BUILD_CORES"
     "-m 'not network'"
   ];
 
-  preCheck = "HOME=$TMPDIR";
+  preCheck = ''
+    export HOME=$TMPDIR
+  '';
 
   disabledTests = [
     # sys.executable and expected executable are different
     "test_set_non_exist_python_path"
     # pythonfinder isn't aware of nix's python infrastructure
     "test_auto_isolate_site_packages"
-    "test_use_invalid_wrapper_python"
     "test_use_wrapper_python"
-    # tries to read/write files without proper permissions
-    "test_completion_command"
-    "test_plugin_add"
-    "test_plugin_list"
-    "test_plugin_remove"
-    # tries to treat a gzip file as a zipfile and fails
-    "test_resolve_local_artifacts"
+    "test_find_python_in_path"
+    # calls pip install and exits != 0
+    "test_pre_and_post_hooks"
   ];
 
   meta = with lib; {
diff --git a/pkgs/tools/security/aeskeyfind/default.nix b/pkgs/tools/security/aeskeyfind/default.nix
new file mode 100644
index 0000000000000..08b2481ff00da
--- /dev/null
+++ b/pkgs/tools/security/aeskeyfind/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "aeskeyfind";
+  version = "1.0";
+
+  src = fetchurl {
+    url = "https://citpsite.s3.amazonaws.com/memory-content/src/aeskeyfind-${version}.tar.gz";
+    sha256 = "sha256-FBflwbYehruVJ9sfW+4ZlaDuqCR12zy8iA4Ev3Bgg+Q=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp aeskeyfind $out/bin
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Locates 128-bit and 256-bit AES keys in a captured memory image";
+    homepage = "https://citp.princeton.edu/our-work/memory/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fedx-sudo ];
+  };
+
+}
+
diff --git a/pkgs/tools/security/aws-iam-authenticator/default.nix b/pkgs/tools/security/aws-iam-authenticator/default.nix
index b1f5d8b56c308..84a5cef2b4698 100644
--- a/pkgs/tools/security/aws-iam-authenticator/default.nix
+++ b/pkgs/tools/security/aws-iam-authenticator/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "aws-iam-authenticator";
-  version = "0.5.5";
+  version = "0.5.6";
 
   src = fetchFromGitHub {
     owner = "kubernetes-sigs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5QtNAcInp1mUE8SHUUMS8/XURbPx/q8xMsvEEo/rnCs=";
+    sha256 = "sha256-tKvFcCPjxwX424zv100gLRjWRtVgCw2ILyXP8XEUiTA=";
   };
 
   # Upstream has inconsistent vendoring, see https://github.com/kubernetes-sigs/aws-iam-authenticator/issues/377
diff --git a/pkgs/tools/security/aws-okta/default.nix b/pkgs/tools/security/aws-okta/default.nix
deleted file mode 100644
index 88002fc1ce436..0000000000000
--- a/pkgs/tools/security/aws-okta/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ buildGoPackage, fetchFromGitHub, libusb1, pkg-config, lib, libiconv }:
-
-buildGoPackage rec {
-  pname = "aws-okta";
-  version = "1.0.11";
-
-  goPackagePath = "github.com/segmentio/aws-okta";
-
-  src = fetchFromGitHub {
-    owner = "segmentio";
-    repo = "aws-okta";
-    rev = "v${version}";
-    sha256 = "sha256-1cprKpIFgM3+lUEHNvda34nJTH4Ch3LtTRq/Dp6QBQ8=";
-  };
-
-  tags = [ "release" ];
-
-  ldflags = [ "-X main.Version=${version}" ];
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libusb1  libiconv ];
-
-  meta = with lib; {
-    description = "aws-vault like tool for Okta authentication";
-    license = licenses.mit;
-    maintainers = with maintainers; [imalsogreg Chili-Man];
-    homepage = "https://github.com/segmentio/aws-okta";
-    downloadPage = "https://github.com/segmentio/aws-okta";
-  };
-}
diff --git a/pkgs/tools/security/cfripper/default.nix b/pkgs/tools/security/cfripper/default.nix
index 9d7a30fdc3454..3e3d67cb6458d 100644
--- a/pkgs/tools/security/cfripper/default.nix
+++ b/pkgs/tools/security/cfripper/default.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "cfripper";
-  version = "1.7.1";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "Skyscanner";
     repo = pname;
-    rev = version;
-    hash = "sha256-Q1J5M6RyYjVi2rkOCThFQdBCxVKkza+wytO67vLlVQg=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-wep1hGYq0UUHeEL674N6cvGg9u9FqGqS0XCUZYUZGzs=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/chntpw/00-chntpw-build-arch-autodetect.patch b/pkgs/tools/security/chntpw/00-chntpw-build-arch-autodetect.patch
index 9c379adb7dfbc..cd130affa6c48 100644
--- a/pkgs/tools/security/chntpw/00-chntpw-build-arch-autodetect.patch
+++ b/pkgs/tools/security/chntpw/00-chntpw-build-arch-autodetect.patch
@@ -1,10 +1,15 @@
-diff -urN chntpw-140201.orig/Makefile chntpw-140201/Makefile
---- chntpw-140201.orig/Makefile	2014-02-01 20:54:37.000000000 +0400
-+++ chntpw-140201/Makefile	2014-08-03 20:26:56.497161881 +0400
-@@ -12,14 +12,13 @@
- 
- CC=gcc
+--- chntpw-140201.orig/Makefile	2014-02-01 17:54:37.000000000 +0100
++++ chntpw-140201/Makefile	2022-04-21 00:14:45.000000000 +0200
+@@ -6,24 +6,7 @@
+ # See INSTALL for more info.
+ #
  
+-#SSLPATH=/usr/local/ssl
+-OSSLPATH=/usr
+-OSSLINC=$(OSSLPATH)/include
+-
+-CC=gcc
+-
 -# Force 32 bit
 -CFLAGS= -DUSEOPENSSL -g -I. -I$(OSSLINC) -Wall -m32 
 -OSSLLIB=$(OSSLPATH)/lib
@@ -13,13 +18,11 @@ diff -urN chntpw-140201.orig/Makefile chntpw-140201/Makefile
 -#CFLAGS= -DUSEOPENSSL -g -I. -I$(OSSLINC) -Wall
 -#OSSLLIB=$(OSSLPATH)/lib64
 -
-+ifeq      '$(shell gcc -dumpmachine)' 'x86_64-unknown-linux-gnu'
-+  CFLAGS= -DUSEOPENSSL -g -I. -I$(OSSLINC) -Wall
-+  OSSLLIB=$(OSSLPATH)/lib64
-+else ifeq '$(shell gcc -dumpmachine)' 'i686-unknown-linux-gnu'
-+  CFLAGS= -DUSEOPENSSL -g -I. -I$(OSSLINC) -Wall -m32 
-+  OSSLLIB=$(OSSLPATH)/lib
-+endif
+-
+-# This is to link with whatever we have, SSL crypto lib we put in static
+-#LIBS=-L$(OSSLLIB) $(OSSLLIB)/libcrypto.a
+-LIBS=-L$(OSSLLIB)
++CFLAGS= -DUSEOPENSSL -g -I. -Wall
+ 
  
- # This is to link with whatever we have, SSL crypto lib we put in static
- #LIBS=-L$(OSSLLIB) $(OSSLLIB)/libcrypto.a
+ all: chntpw chntpw.static cpnt reged reged.static samusrgrp samusrgrp.static sampasswd sampasswd.static
diff --git a/pkgs/tools/security/chntpw/01-chntpw-install-target.patch b/pkgs/tools/security/chntpw/01-chntpw-install-target.patch
index d3163a026f915..67c62273aeb65 100644
--- a/pkgs/tools/security/chntpw/01-chntpw-install-target.patch
+++ b/pkgs/tools/security/chntpw/01-chntpw-install-target.patch
@@ -1,20 +1,14 @@
-diff -urN chntpw-140201.orig/Makefile chntpw-140201/Makefile
---- chntpw-140201.orig/Makefile	2014-08-03 20:26:56.497161881 +0400
-+++ chntpw-140201/Makefile	2014-08-04 12:57:16.563818342 +0400
-@@ -10,6 +10,8 @@
- OSSLPATH=/usr
- OSSLINC=$(OSSLPATH)/include
+--- chntpw-140201/Makefile	2022-04-21 00:14:45.000000000 +0200
++++ chntpw-140201.new/Makefile	2022-04-21 09:15:42.000000000 +0200
+@@ -6,10 +6,16 @@
+ # See INSTALL for more info.
+ #
  
 +PREFIX ?= /usr
 +
- CC=gcc
+ CFLAGS= -DUSEOPENSSL -g -I. -Wall
  
- ifeq      '$(shell gcc -dumpmachine)' 'x86_64-unknown-linux-gnu'
-@@ -24,8 +26,12 @@
- #LIBS=-L$(OSSLLIB) $(OSSLLIB)/libcrypto.a
- LIBS=-L$(OSSLLIB)
- 
-+BINARIES := chntpw chntpw.static cpnt reged reged.static samusrgrp samusrgrp.static sampasswd sampasswd.static
++BINARIES := chntpw cpnt reged samusrgrp sampasswd
  
 -all: chntpw chntpw.static cpnt reged reged.static samusrgrp samusrgrp.static sampasswd sampasswd.static
 +all: $(BINARIES)
diff --git a/pkgs/tools/security/chntpw/default.nix b/pkgs/tools/security/chntpw/default.nix
index 5bda55c418aaa..c4463d16d348b 100644
--- a/pkgs/tools/security/chntpw/default.nix
+++ b/pkgs/tools/security/chntpw/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, unzip }:
+{ lib, stdenv, fetchurl, unzip, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "chntpw";
@@ -11,11 +11,47 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ unzip ];
-  buildInputs = lib.optionals stdenv.isLinux [ stdenv.glibc.out stdenv.glibc.static ];
 
   patches = [
     ./00-chntpw-build-arch-autodetect.patch
     ./01-chntpw-install-target.patch
+    # Import various bug fixes from debian
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/c/chntpw/140201-1/debian/patches/04_get_abs_path";
+      sha256 = "17h0gaczqd5b792481synr1ny72frwslb779lm417pyrz6kh9q8n";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/c/chntpw/140201-1/debian/patches/06_correct_test_open_syscall";
+      sha256 = "00lg83bimbki988n71w54mmhjp9529r0ngm40d7fdmnc2dlpj3hd";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/c/chntpw/140201-1/debian/patches/07_detect_failure_to_write_key";
+      sha256 = "0pk6xnprh2pqyx4n4lw3836z6fqsw3mclkzppl5rhjaahriwxw4l";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/c/chntpw/140201-1/debian/patches/08_no_deref_null";
+      sha256 = "1g7pfmjaj0c2sm64s3api2kglj7jbgddjjd3r4drw6phwdkah0zs";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/c/chntpw/140201-1/debian/patches/09_improve_robustness";
+      sha256 = "1nszkdy01ixnain7cwdmfbhjngphw1300ifagc1wgl9wvghzviaa";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/c/chntpw/140201-1/debian/patches/11_improve_documentation";
+      sha256 = "0yql6hj72q7cq69rrspsjkpiipdhcwb0b9w5j8nhq40cnx9mgqgg";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/c/chntpw/140201-1/debian/patches/12_readonly_filesystem";
+      sha256 = "1kxcy7f2pl6fqgmjg8bnl3pl5wgiw5xnbyx12arinmqkkggp4fa4";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/c/chntpw/140201-1/debian/patches/13_write_to_hive";
+      sha256 = "1638lcyxjkrkmbr3n28byixny0qrxvkciw1xd97x48mj6bnwqrkv";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/c/chntpw/140201-1/debian/patches/14_improve_description";
+      sha256 = "11y5kc4dh4zv24nkb0jw2zwlifx6nzsd4jbizn63l6dbpqgb25rs";
+    })
   ];
 
   installPhase = ''
@@ -27,6 +63,6 @@ stdenv.mkDerivation rec {
     description = "An utility to reset the password of any user that has a valid local account on a Windows system";
     maintainers = with lib.maintainers; [ deepfire ];
     license = licenses.gpl2;
-    platforms = with lib.platforms; linux;
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/tools/security/cosign/default.nix b/pkgs/tools/security/cosign/default.nix
index 63d36e99032ec..2d24c8292b68a 100644
--- a/pkgs/tools/security/cosign/default.nix
+++ b/pkgs/tools/security/cosign/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cosign";
-  version = "1.6.0";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "sigstore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-jAkTIO+tmb1vjS2eRWU9Fau7qzPCBlXJCk00iwNpULE=";
+    sha256 = "sha256-Jxtu4f3JeQ1LH2IjSc5hRKDrWXllczQWWHBa4eTzOIY=";
   };
 
   buildInputs = lib.optional (stdenv.isLinux && pivKeySupport) (lib.getDev pcsclite)
@@ -16,7 +16,7 @@ buildGoModule rec {
 
   nativeBuildInputs = [ pkg-config installShellFiles ];
 
-  vendorSha256 = "sha256-E9zeRlPIIoXo/EfagHC3aDnW747SdsPiqIA384D7NQI=";
+  vendorSha256 = "sha256-fBmSuxjguNc1LOoXqOue0/Ki3979NpqJTzuuqqsjooM=";
 
   subPackages = [
     "cmd/cosign"
diff --git a/pkgs/tools/security/cryptomator/default.nix b/pkgs/tools/security/cryptomator/default.nix
index 05e9f1ef384af..57e420f866995 100644
--- a/pkgs/tools/security/cryptomator/default.nix
+++ b/pkgs/tools/security/cryptomator/default.nix
@@ -6,13 +6,13 @@
 
 let
   pname = "cryptomator";
-  version = "1.6.7";
+  version = "1.6.8";
 
   src = fetchFromGitHub {
     owner = "cryptomator";
     repo = "cryptomator";
     rev = version;
-    sha256 = "sha256-hOILOdVYBnS9XuEXaIJcf2bPF72Lcr7IBX4CFCIsC8k=";
+    sha256 = "sha256-2bvIjfutxfTPBtYiSXpgdEh63Eg74uqSf8CDo/Oma0U=";
   };
 
   # perform fake build to make a fixed-output derivation out of the files downloaded from maven central (120MB)
@@ -37,7 +37,7 @@ let
 
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "sha256-XFqXjNjPN2vwA3jay7TS79S4FHksjjrODdD/p4oTvpg=";
+    outputHash = "sha256-quYUJX/JErtWuUQBYXXee/uZGkO0UBr4qxcGticxGUc=";
 
     doCheck = false;
   };
@@ -46,9 +46,14 @@ in stdenv.mkDerivation rec {
   inherit pname version src;
 
   buildPhase = ''
+    VERSION=${version}
+    SEMVER_STR=${version}
+
     mvn -Plinux package --offline -Dmaven.test.skip=true -Dmaven.repo.local=$(cp -dpR ${deps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2
   '';
 
+
+  # This is based on the instructins in https://github.com/cryptomator/cryptomator/blob/develop/dist/linux/appimage/build.sh
   installPhase = ''
     mkdir -p $out/bin/ $out/share/cryptomator/libs/ $out/share/cryptomator/mods/
 
@@ -63,10 +68,14 @@ in stdenv.mkDerivation rec {
     makeWrapper ${jre}/bin/java $out/bin/cryptomator \
       --add-flags "--class-path '$out/share/cryptomator/libs/*'" \
       --add-flags "--module-path '$out/share/cryptomator/mods'" \
+      --add-flags "-Dcryptomator.logDir='~/.local/share/Cryptomator/logs'" \
+      --add-flags "-Dcryptomator.pluginDir='~/.local/share/Cryptomator/plugins'" \
       --add-flags "-Dcryptomator.settingsPath='~/.config/Cryptomator/settings.json'" \
       --add-flags "-Dcryptomator.ipcSocketPath='~/.config/Cryptomator/ipc.socket'" \
-      --add-flags "-Dcryptomator.logDir='~/.local/share/Cryptomator/logs'" \
       --add-flags "-Dcryptomator.mountPointsDir='~/.local/share/Cryptomator/mnt'" \
+      --add-flags "-Dcryptomator.showTrayIcon=false" \
+      --add-flags "-Dcryptomator.buildNumber='nix'" \
+      --add-flags "-Dcryptomator.appVersion='${version}'" \
       --add-flags "-Djdk.gtk.version=3" \
       --add-flags "-Xss20m" \
       --add-flags "-Xmx512m" \
@@ -79,6 +88,14 @@ in stdenv.mkDerivation rec {
 
     # install desktop entry and icons
     cp -r ${src}/dist/linux/appimage/resources/AppDir/usr/* $out/
+    # The directory is read only when copied, enable read to install additional files
+    chmod +w -R $out/
+    cp ${src}/dist/linux/common/org.cryptomator.Cryptomator256.png $out/share/icons/hicolor/256x256/apps/org.cryptomator.Cryptomator.png
+    cp ${src}/dist/linux/common/org.cryptomator.Cryptomator512.png $out/share/icons/hicolor/512x512/apps/org.cryptomator.Cryptomator.png
+    cp ${src}/dist/linux/common/org.cryptomator.Cryptomator.svg $out/share/icons/hicolor/scalable/apps/org.cryptomator.Cryptomator.svg
+    cp ${src}/dist/linux/common/org.cryptomator.Cryptomator.desktop $out/share/applications/org.cryptomator.Cryptomator.desktop
+    cp ${src}/dist/linux/common/org.cryptomator.Cryptomator.metainfo.xml $out/share/metainfo/org.cryptomator.Cryptomator.metainfo.xml
+    cp ${src}/dist/linux/common/application-vnd.cryptomator.vault.xml $out/share/mime/packages/application-vnd.cryptomator.vault.xml
   '';
 
   nativeBuildInputs = [ autoPatchelfHook maven makeWrapper wrapGAppsHook jdk ];
diff --git a/pkgs/tools/security/dalfox/default.nix b/pkgs/tools/security/dalfox/default.nix
index 5ce633d3cec95..02c7fa01962f0 100644
--- a/pkgs/tools/security/dalfox/default.nix
+++ b/pkgs/tools/security/dalfox/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "dalfox";
-  version = "2.7.1";
+  version = "2.7.4";
 
   src = fetchFromGitHub {
     owner = "hahwul";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+Jr2pWV3iImKVnXH8mQXauHOh3uJChUe22U4JzIotD0=";
+    sha256 = "sha256-wNoZ8bXPnYO3qQO+Is5IRGukLj+QfA+xalKC6NVc5+0=";
   };
 
-  vendorSha256 = "sha256-4ot9qvTsUMxbcbu1y+5Tkvgo3t0MWA1EPSGqM0CM2DU=";
+  vendorSha256 = "sha256-qaRUlgxGqZu5T3GHONT4MyHfHr/L6cqP7o0dV4OCOLY=";
 
   meta = with lib; {
     description = "Tool for analysing parameter and XSS scanning";
diff --git a/pkgs/tools/security/exploitdb/default.nix b/pkgs/tools/security/exploitdb/default.nix
index cfb1490e3c7fa..129d335bf4966 100644
--- a/pkgs/tools/security/exploitdb/default.nix
+++ b/pkgs/tools/security/exploitdb/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exploitdb";
-  version = "2022-03-31";
+  version = "2022-04-23";
 
   src = fetchFromGitHub {
     owner = "offensive-security";
     repo = pname;
     rev = version;
-    sha256 = "sha256-T7vPDbB330Uv276+oGnEYK1xGpJCMzzZiQXx4uW1kc4=";
+    sha256 = "sha256-KAbPiZ/iOwT8plqqZ4Q3Cl8+we2Tsi2GkkmXZCcmhHs=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/fail2ban/default.nix b/pkgs/tools/security/fail2ban/default.nix
index 6c3fb0727091c..62bc16f6a4147 100644
--- a/pkgs/tools/security/fail2ban/default.nix
+++ b/pkgs/tools/security/fail2ban/default.nix
@@ -17,6 +17,7 @@ python3.pkgs.buildPythonApplication rec {
   pythonPath = with python3.pkgs;
     lib.optionals stdenv.isLinux [
       systemd
+      pyinotify
     ];
 
   patches = [
diff --git a/pkgs/tools/security/feroxbuster/default.nix b/pkgs/tools/security/feroxbuster/default.nix
index ecfc496ce8e74..d73ba4306337c 100644
--- a/pkgs/tools/security/feroxbuster/default.nix
+++ b/pkgs/tools/security/feroxbuster/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "feroxbuster";
-  version = "2.6.1";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "epi052";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-RY9bFuALRaVXDrC0eIx0inPjRqNpRKNZf3mCrKIdGL8=";
+    rev = version;
+    hash = "sha256-Ub4HOi38fYNJkpXfms1/aDl97h2UI1Fru8+NAiAztoc=";
   };
 
-  cargoSha256 = "sha256-0Zawlx/lhF7K8nOsHYKO84pnctVMpm3RfnAFCOltOqE=";
+  cargoSha256 = "sha256-ODLL++wn8IQloEFZXF8TasercTKJ0nhPtny4fsi03Ks=";
 
   OPENSSL_NO_VENDOR = true;
 
diff --git a/pkgs/tools/security/fprintd/default.nix b/pkgs/tools/security/fprintd/default.nix
index b0339846a67db..d9c17f935eda6 100644
--- a/pkgs/tools/security/fprintd/default.nix
+++ b/pkgs/tools/security/fprintd/default.nix
@@ -25,7 +25,7 @@
 
 stdenv.mkDerivation rec {
   pname = "fprintd";
-  version = "1.94.1";
+  version = "1.94.2";
   outputs = [ "out" "devdoc" ];
 
   src = fetchFromGitLab {
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     owner = "libfprint";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-XHfHPffVp0jV3Md9Gui9v/nyOJ/bTWM3+hiR7WdEsgQ=";
+    sha256 = "sha256-ePhcIZyXoGr8XlBuzKjpibU9D/44iCXYBlpVR9gcswQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/fulcio/default.nix b/pkgs/tools/security/fulcio/default.nix
index 300b996524df8..4098a1015180b 100644
--- a/pkgs/tools/security/fulcio/default.nix
+++ b/pkgs/tools/security/fulcio/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "fulcio";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "sigstore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-tCjFx9Ug8rO8cSxQb2vBG/MHSUJCx17lDeGnSGjZLcI=";
+    sha256 = "sha256-jcmjfNGruDhQPhVn5R2hdUr+d42qQnIVj8+CCX5HMMM=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
@@ -20,11 +20,13 @@ buildGoModule rec {
       find "$out" -name .git -print0 | xargs -0 rm -rf
     '';
   };
-  vendorSha256 = "sha256-CmtsReP0JacgNyRqCrYZRONwR5eluymrQgsj/ukhYNQ=";
+  vendorSha256 = "sha256-WQ0MuNEJWCxKTjkyqA66bGPoMrS/7W/YTiGU3yd+Ge8=";
 
   # install completions post-install
   nativeBuildInputs = [ installShellFiles ];
 
+  excludedPackages = [ "federation" "test/prometheus" ];
+
   ldflags = [
     "-s"
     "-w"
@@ -66,5 +68,6 @@ buildGoModule rec {
     description = "A Root-CA for code signing certs - issuing certificates based on an OIDC email address";
     license = licenses.asl20;
     maintainers = with maintainers; [ lesuisse jk ];
+    mainProgram = "fulcio-server";
   };
 }
diff --git a/pkgs/tools/security/fwbuilder/default.nix b/pkgs/tools/security/fwbuilder/default.nix
index 66d7a5a7537a6..398e552ffe42a 100644
--- a/pkgs/tools/security/fwbuilder/default.nix
+++ b/pkgs/tools/security/fwbuilder/default.nix
@@ -16,6 +16,10 @@ stdenv.mkDerivation rec {
     wrapQtAppsHook
   ];
 
+  NIX_CFLAGS_COMPILE = [
+    "-Wno-error=misleading-indentation"
+  ];
+
   meta = with lib; {
     description = "GUI Firewall Management Application";
     homepage    = "https://github.com/fwbuilder/fwbuilder";
diff --git a/pkgs/tools/security/gau/default.nix b/pkgs/tools/security/gau/default.nix
index 8113289a9c4f3..29a0aadd15611 100644
--- a/pkgs/tools/security/gau/default.nix
+++ b/pkgs/tools/security/gau/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "gau";
-  version = "2.0.9";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "lc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-8op515+0wDxxU1e08gJ6lg/8NhQScFb4b3mCzBV/VNw=";
+    sha256 = "sha256-jIMBvRnY1Z/cLwBnWGp1fsx6oLri1qiknLj+r9B4GHc=";
   };
 
   vendorSha256 = "sha256-HQATUCzYvhhlqe4HhNu9H4CqmY2IGLNJ9ydt3/igSmQ=";
diff --git a/pkgs/tools/security/gitleaks/default.nix b/pkgs/tools/security/gitleaks/default.nix
index bbeca94a993ec..a298f10d2d50f 100644
--- a/pkgs/tools/security/gitleaks/default.nix
+++ b/pkgs/tools/security/gitleaks/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "gitleaks";
-  version = "8.5.1";
+  version = "8.8.2";
 
   src = fetchFromGitHub {
     owner = "zricethezav";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lx7xjOajFyeetnGcJwX66pIcZw2A7+QGWb5crCoA83g=";
+    sha256 = "sha256-WEVlddqG7t01yl05EujxH/XXBYZxePSKY6IQwkKUkws=";
   };
 
-  vendorSha256 = "sha256-gelUrZOYiThO0+COIv9cOgho/tjv7ZqSKOktWIbdADw=";
+  vendorSha256 = "sha256-X8z9iKRR3PptNHwy1clZG8QsClsjbW45nZb2fHGfSYk=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/security/go365/default.nix b/pkgs/tools/security/go365/default.nix
index 02e4c32c6cee1..db075745edeba 100644
--- a/pkgs/tools/security/go365/default.nix
+++ b/pkgs/tools/security/go365/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     homepage = "https://github.com/optiv/Go365";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "Go365";
   };
 }
diff --git a/pkgs/tools/security/gobuster/default.nix b/pkgs/tools/security/gobuster/default.nix
index cc436a16b5871..e11e76cc971b0 100644
--- a/pkgs/tools/security/gobuster/default.nix
+++ b/pkgs/tools/security/gobuster/default.nix
@@ -16,8 +16,6 @@ buildGoModule rec {
 
   vendorSha256 = "1isp2jd6k4ppns5zi9irj09090imnc0xp6vcps135ymgp8qg4163";
 
-  doCheck = false;
-
   meta = with lib; {
     description = "Tool used to brute-force URIs, DNS subdomains, Virtual Host names on target web servers";
     homepage = "https://github.com/OJ/gobuster";
diff --git a/pkgs/tools/security/gopass/default.nix b/pkgs/tools/security/gopass/default.nix
index ee70413591d4d..6825e6cbba80d 100644
--- a/pkgs/tools/security/gopass/default.nix
+++ b/pkgs/tools/security/gopass/default.nix
@@ -28,8 +28,6 @@ buildGoModule rec {
 
   subPackages = [ "." ];
 
-  doCheck = false;
-
   ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.commit=${src.rev}" ];
 
   wrapperPath = lib.makeBinPath (
diff --git a/pkgs/tools/security/gosh/default.nix b/pkgs/tools/security/gosh/default.nix
index 7d5cd7a15251e..a4c74f1a5636e 100644
--- a/pkgs/tools/security/gosh/default.nix
+++ b/pkgs/tools/security/gosh/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     homepage = "https://github.com/redcode-labs/GoSH";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ] ++ teams.redcodelabs.members;
+    mainProgram = "GoSH";
   };
 }
diff --git a/pkgs/tools/security/grype/default.nix b/pkgs/tools/security/grype/default.nix
index 3e3dc6ff098a5..c8326fe09ff25 100644
--- a/pkgs/tools/security/grype/default.nix
+++ b/pkgs/tools/security/grype/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "grype";
-  version = "0.34.7";
+  version = "0.35.0";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-t95efLTqPnmYiXTBxuxEoDdafoZC/bXXTfKdA8gy3fk=";
+    sha256 = "sha256-DZ3/t6+iVmPCH4LBbtEqIdPdzmQu7fsNlJnHZ54alVw=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
@@ -25,7 +25,7 @@ buildGoModule rec {
     '';
   };
 
-  vendorSha256 = "sha256-FZMgS0aNZVq4nvwog4l62dOzC6wW7pQCNbOW1/jssWo=";
+  vendorSha256 = "sha256-RHsDwbQO+2OLmpqCSC9goHv9ut64Kp+cw18jdLvhmK8=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/tools/security/httpx/default.nix b/pkgs/tools/security/httpx/default.nix
index 0d87780cee495..ae36d76c562c3 100644
--- a/pkgs/tools/security/httpx/default.nix
+++ b/pkgs/tools/security/httpx/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "httpx";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "httpx";
     rev = "v${version}";
-    sha256 = "sha256-zNK/OBDo6cL0uZHosulusdOviYZMD2TCusE+0Mn330g=";
+    sha256 = "sha256-yp0mLHpBS23MUVOla7y3Rb2esM5J+Q8mZy1+mgdUtXo=";
   };
 
-  vendorSha256 = "sha256-a6Tpz4jPQbtiWt6OyDKy+xbRx6EBwADyqTkvBnyusdQ=";
+  vendorSha256 = "sha256-udEfjTdRcyjeUWb1d5gRBmoC0H0tl2+oSS7ac+ff5ew=";
 
   meta = with lib; {
     description = "Fast and multi-purpose HTTP toolkit";
diff --git a/pkgs/tools/security/jwt-cli/default.nix b/pkgs/tools/security/jwt-cli/default.nix
index 77e5ce08913e5..98b297fe83185 100644
--- a/pkgs/tools/security/jwt-cli/default.nix
+++ b/pkgs/tools/security/jwt-cli/default.nix
@@ -27,5 +27,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mike-engel/jwt-cli";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ rycee ];
+    mainProgram = "jwt";
   };
 }
diff --git a/pkgs/tools/security/kubescape/default.nix b/pkgs/tools/security/kubescape/default.nix
index 377327e6571c9..23f52e3b52ed7 100644
--- a/pkgs/tools/security/kubescape/default.nix
+++ b/pkgs/tools/security/kubescape/default.nix
@@ -6,31 +6,38 @@
 
 buildGoModule rec {
   pname = "kubescape";
-  version = "2.0.150";
+  version = "2.0.152";
 
   src = fetchFromGitHub {
     owner = "armosec";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-1D/ixtZI7/H05MD6zRtZCF8yhW1FhvRpdPWieAPwxHs=";
+    hash = "sha256-hibXmA2JerfnkGiSnBUCMHGPm4Tefnsl/x2VAS5z0Fo=";
   };
+  vendorSha256 = "sha256-HfsQfoz1n3FEd2eVBBz3Za2jYCSrozXpL34Z8CgQsTA=";
 
   nativeBuildInputs = [
     installShellFiles
   ];
 
-  modRoot = "cmd";
-  vendorSha256 = "sha256-Nznf793OMQ7ZCWb5voVcLyMiBa1Z8Dswp7Tdn1AzlJA=";
-
   ldflags = [
     "-s"
     "-w"
-    "-X github.com/armosec/kubescape/core/cautils.BuildNumber=v${version}"
+    "-X github.com/armosec/kubescape/v2/core/cautils.BuildNumber=v${version}"
   ];
 
-  postBuild = ''
-    # kubescape/cmd should be called kubescape
-    mv $GOPATH/bin/{cmd,kubescape}
+  subPackages = [ "." ];
+
+  preCheck = ''
+    # Feed in all but the integration tests for testing
+    # This is because subPackages above limits what is built to just what we
+    # want but also limits the tests
+    # Skip httphandler tests - the checkPhase doesn't care about excludedPackages
+    getGoDirs() {
+      go list ./... | grep -v httphandler
+    }
+
+    rm core/pkg/resourcehandler/{repositoryscanner,urlloader}_test.go
   '';
 
   postInstall = ''
@@ -44,6 +51,8 @@ buildGoModule rec {
   installCheckPhase = ''
     runHook preInstallCheck
     $out/bin/kubescape --help
+    # `--version` vs `version` shows the version without checking for latest
+    # if the flag is missing the BuildNumber may have moved
     $out/bin/kubescape --version | grep "v${version}"
     runHook postInstallCheck
   '';
diff --git a/pkgs/tools/security/maigret/default.nix b/pkgs/tools/security/maigret/default.nix
index 316fbad81ba25..5fe281017b551 100644
--- a/pkgs/tools/security/maigret/default.nix
+++ b/pkgs/tools/security/maigret/default.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "maigret";
-  version = "0.4.1";
+  version = "0.4.3";
 
   src = fetchFromGitHub {
     owner = "soxoj";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "0igfxg238awdn1ly8s3r655yi3gpxink7g2hr6xb0c1nrm7z0kad";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-0Ni4rXVu3ZQyHBvD3IpV0i849CnumLj+n6/g4sMhHEs=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/melt/default.nix b/pkgs/tools/security/melt/default.nix
index 846b70b875384..5690958848c0c 100644
--- a/pkgs/tools/security/melt/default.nix
+++ b/pkgs/tools/security/melt/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "melt";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "charmbracelet";
     repo = "melt";
     rev = "v${version}";
-    sha256 = "sha256-HambmUodAwgi1/r/Nj7P7gXNK5pyBO3omMZ9ZvSK7cc=4";
+    sha256 = "sha256-I1LNCrJo3Ihh03aTUG0QhS6ySuMqNJJGyZ8XZzClDlU=";
   };
 
-  vendorSha256 = "sha256-1f3QBbWaTiplEp/4ihds1PwrEnoq/81TzlT46TufGFs=";
+  vendorSha256 = "sha256-eRFWDyXN2c5VSxYOE12sczYP3rGtzLjY9M2DQgHNFyA=";
 
   ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
 
diff --git a/pkgs/tools/security/metasploit/Gemfile b/pkgs/tools/security/metasploit/Gemfile
index 4c1ad65ed7a31..9ac0d904345bd 100644
--- a/pkgs/tools/security/metasploit/Gemfile
+++ b/pkgs/tools/security/metasploit/Gemfile
@@ -1,4 +1,4 @@
 # frozen_string_literal: true
 source "https://rubygems.org"
 
-gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.1.36"
+gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.1.39"
diff --git a/pkgs/tools/security/metasploit/Gemfile.lock b/pkgs/tools/security/metasploit/Gemfile.lock
index 8ebeadbdfb08e..bbadd24eb8cd5 100644
--- a/pkgs/tools/security/metasploit/Gemfile.lock
+++ b/pkgs/tools/security/metasploit/Gemfile.lock
@@ -1,9 +1,9 @@
 GIT
   remote: https://github.com/rapid7/metasploit-framework
-  revision: b3ad212ba393cc87bb9e621dbad9d04362f1151c
-  ref: refs/tags/6.1.36
+  revision: e1016aceec3bfd4aff85d0bcdc89ee7c88cf5bd4
+  ref: refs/tags/6.1.39
   specs:
-    metasploit-framework (6.1.36)
+    metasploit-framework (6.1.39)
       actionpack (~> 6.0)
       activerecord (~> 6.0)
       activesupport (~> 6.0)
@@ -31,13 +31,14 @@ GIT
       metasploit-concern
       metasploit-credential
       metasploit-model
-      metasploit-payloads (= 2.0.77)
+      metasploit-payloads (= 2.0.83)
       metasploit_data_models
       metasploit_payloads-mettle (= 1.0.18)
       mqtt
       msgpack
       nessus_rest
       net-ldap
+      net-smtp
       net-ssh
       network_interface
       nexpose
@@ -75,7 +76,7 @@ GIT
       rex-text
       rex-zip
       ruby-macho
-      ruby_smb (~> 3.0)
+      ruby_smb (~> 3.1.0)
       rubyntlm
       rubyzip
       sinatra
@@ -128,36 +129,37 @@ GEM
     arel-helpers (2.14.0)
       activerecord (>= 3.1.0, < 8)
     aws-eventstream (1.2.0)
-    aws-partitions (1.573.0)
-    aws-sdk-core (3.130.0)
+    aws-partitions (1.579.0)
+    aws-sdk-core (3.130.2)
       aws-eventstream (~> 1, >= 1.0.2)
       aws-partitions (~> 1, >= 1.525.0)
       aws-sigv4 (~> 1.1)
       jmespath (~> 1.0)
-    aws-sdk-ec2 (1.305.0)
+    aws-sdk-ec2 (1.308.0)
       aws-sdk-core (~> 3, >= 3.127.0)
       aws-sigv4 (~> 1.1)
     aws-sdk-iam (1.68.0)
       aws-sdk-core (~> 3, >= 3.127.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kms (1.55.0)
+    aws-sdk-kms (1.56.0)
       aws-sdk-core (~> 3, >= 3.127.0)
       aws-sigv4 (~> 1.1)
     aws-sdk-s3 (1.113.0)
       aws-sdk-core (~> 3, >= 3.127.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.4)
-    aws-sigv4 (1.4.0)
+    aws-sigv4 (1.5.0)
       aws-eventstream (~> 1, >= 1.0.2)
     bcrypt (3.1.17)
     bcrypt_pbkdf (1.1.0)
     bindata (2.4.10)
-    bson (4.14.1)
+    bson (4.15.0)
     builder (3.2.4)
     concurrent-ruby (1.0.5)
     cookiejar (0.3.3)
     crass (1.0.6)
     daemons (1.4.1)
+    digest (3.1.0)
     dnsruby (1.61.9)
       simpleidn (~> 0.1)
     domain_name (0.5.20190701)
@@ -234,11 +236,11 @@ GEM
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     metasm (1.0.5)
-    metasploit-concern (4.0.3)
+    metasploit-concern (4.0.4)
       activemodel (~> 6.0)
       activesupport (~> 6.0)
       railties (~> 6.0)
-    metasploit-credential (5.0.5)
+    metasploit-credential (5.0.7)
       metasploit-concern
       metasploit-model
       metasploit_data_models (>= 5.0.0)
@@ -248,12 +250,12 @@ GEM
       rex-socket
       rubyntlm
       rubyzip
-    metasploit-model (4.0.3)
+    metasploit-model (4.0.4)
       activemodel (~> 6.0)
       activesupport (~> 6.0)
       railties (~> 6.0)
-    metasploit-payloads (2.0.77)
-    metasploit_data_models (5.0.4)
+    metasploit-payloads (2.0.83)
+    metasploit_data_models (5.0.5)
       activerecord (~> 6.0)
       activesupport (~> 6.0)
       arel-helpers
@@ -268,18 +270,24 @@ GEM
     mini_portile2 (2.8.0)
     minitest (5.15.0)
     mqtt (0.5.0)
-    msgpack (1.4.5)
+    msgpack (1.5.1)
     multi_json (1.15.0)
     multipart-post (2.1.1)
     mustermann (1.1.1)
       ruby2_keywords (~> 0.0.1)
     nessus_rest (0.1.6)
     net-ldap (0.17.0)
+    net-protocol (0.1.3)
+      timeout
+    net-smtp (0.3.1)
+      digest
+      net-protocol
+      timeout
     net-ssh (6.1.0)
     network_interface (0.0.2)
     nexpose (7.3.0)
     nio4r (2.5.8)
-    nokogiri (1.13.3)
+    nokogiri (1.13.4)
       mini_portile2 (~> 2.8.0)
       racc (~> 1.4)
     nori (2.6.0)
@@ -300,7 +308,7 @@ GEM
       ruby-rc4
       ttfunk
     pg (1.3.5)
-    public_suffix (4.0.6)
+    public_suffix (4.0.7)
     puma (5.6.4)
       nio4r (~> 2.0)
     racc (1.6.0)
@@ -335,12 +343,12 @@ GEM
       rex-core
       rex-struct2
       rex-text
-    rex-core (0.1.27)
+    rex-core (0.1.28)
     rex-encoder (0.1.6)
       metasm
       rex-arch
       rex-text
-    rex-exploitation (0.1.29)
+    rex-exploitation (0.1.30)
       jsobfu
       metasm
       rex-arch
@@ -354,7 +362,7 @@ GEM
       rex-arch
     rex-ole (0.1.7)
       rex-text
-    rex-powershell (0.1.95)
+    rex-powershell (0.1.96)
       rex-random_identifier
       rex-text
       ruby-rc4
@@ -365,7 +373,7 @@ GEM
       metasm
       rex-core
       rex-text
-    rex-socket (0.1.34)
+    rex-socket (0.1.35)
       rex-core
     rex-sslscan (0.1.7)
       rex-core
@@ -380,7 +388,7 @@ GEM
     ruby-macho (3.0.0)
     ruby-rc4 (0.1.5)
     ruby2_keywords (0.0.5)
-    ruby_smb (3.0.6)
+    ruby_smb (3.1.1)
       bindata
       openssl-ccm
       openssl-cmac
@@ -407,6 +415,7 @@ GEM
       rack (>= 1, < 3)
     thor (1.2.1)
     tilt (2.0.10)
+    timeout (0.2.0)
     ttfunk (1.7.0)
     tzinfo (2.0.4)
       concurrent-ruby (~> 1.0)
@@ -447,4 +456,4 @@ DEPENDENCIES
   metasploit-framework!
 
 BUNDLED WITH
-   2.3.6
+   2.3.9
diff --git a/pkgs/tools/security/metasploit/default.nix b/pkgs/tools/security/metasploit/default.nix
index 97948171bf5ca..435b641a0b663 100644
--- a/pkgs/tools/security/metasploit/default.nix
+++ b/pkgs/tools/security/metasploit/default.nix
@@ -15,13 +15,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "metasploit-framework";
-  version = "6.1.36";
+  version = "6.1.39";
 
   src = fetchFromGitHub {
     owner = "rapid7";
     repo = "metasploit-framework";
     rev = version;
-    sha256 = "sha256-j90/ygZpwdMb0KL1bJPHpysokC3BoN/kUK/dsBo6HsU=";
+    sha256 = "sha256-Idhxk9wNnWZmrY33afgkIicnSO3wWnqjiXYUFbXbERE=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/metasploit/gemset.nix b/pkgs/tools/security/metasploit/gemset.nix
index 40c1d05ae29e4..e3c486c4b9f9c 100644
--- a/pkgs/tools/security/metasploit/gemset.nix
+++ b/pkgs/tools/security/metasploit/gemset.nix
@@ -104,30 +104,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "162x55is7jfdy6cf1xw2llbrxcnk5gv3dsqfmi1klf6c2xfm87gm";
+      sha256 = "1ilhspsph7icrrz94f3qngjkj585hsyv9bnxr44iabcqqwymr79w";
       type = "gem";
     };
-    version = "1.573.0";
+    version = "1.579.0";
   };
   aws-sdk-core = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14ymvp06k46gvkpvz5zaqvbvr6wd8vdka5iq25q0wd0fzdx7aivm";
+      sha256 = "0hajbavfngn99hcz6n20162jygvwdflldvnlrza7z32hizawaaan";
       type = "gem";
     };
-    version = "3.130.0";
+    version = "3.130.2";
   };
   aws-sdk-ec2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dpid33sl72nsxyr7d57yqzqb9jby0dyjc0ncncdm41is7d25vki";
+      sha256 = "0bqrgdw8kiy1pg3v4by1siqqhmjffr2xi5s0l5wj6l7z87n9wi9g";
       type = "gem";
     };
-    version = "1.305.0";
+    version = "1.308.0";
   };
   aws-sdk-iam = {
     groups = ["default"];
@@ -144,10 +144,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fmpdll52ng1kfn4r5ndcyppn5553qvvxw87w58m9n70ga3avasi";
+      sha256 = "14dcfqqdx1dy7qwrdyqdvqjs53kswm4njvg34f61jpl9xi3h2yf3";
       type = "gem";
     };
-    version = "1.55.0";
+    version = "1.56.0";
   };
   aws-sdk-s3 = {
     groups = ["default"];
@@ -164,10 +164,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wh1y79v0s4zgby2m79bnifk65hwf5pvk2yyrxzn2jkjjq8f8fqa";
+      sha256 = "0xp7diwq7nv4vvxrl9x3lis2l4x6bissrfzbfyy6rv5bmj5w109z";
       type = "gem";
     };
-    version = "1.4.0";
+    version = "1.5.0";
   };
   bcrypt = {
     groups = ["default"];
@@ -204,10 +204,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03n3w96vpblaxvk1qk8hq7sbsmg4nv7qdkdr8f7nfvalgpakp5i5";
+      sha256 = "19vgs9rzzyvd7jfrzynjnc6518q0ffpfciyicfywbp77zl8nc9hk";
       type = "gem";
     };
-    version = "4.14.1";
+    version = "4.15.0";
   };
   builder = {
     groups = ["default"];
@@ -259,6 +259,16 @@
     };
     version = "1.4.1";
   };
+  digest = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00vwzvxgby22h7jhwadqqf9ssbkp3ag2pl4g7q3zf1y8mlk7rk39";
+      type = "gem";
+    };
+    version = "3.1.0";
+  };
   dnsruby = {
     groups = ["default"];
     platforms = [];
@@ -664,62 +674,62 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lmvwja6v7s12g0fq9mp2d3sgashl526apfjqk5fchqvnfqw4gsb";
+      sha256 = "1m7dykwravbjdq4zs1z5lqdwrmfjsswjg7iygn4a187xn9ml1rj6";
       type = "gem";
     };
-    version = "4.0.3";
+    version = "4.0.4";
   };
   metasploit-credential = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0a17zm8cq71rd8qilxai7s3dzb8n5lzvjfwyxk7slblfcgbsl9np";
+      sha256 = "073bhxlyszk5iknx6896kch4yfcjk48wq7q5vnjd5k7akx0k9h8p";
       type = "gem";
     };
-    version = "5.0.5";
+    version = "5.0.7";
   };
   metasploit-framework = {
     groups = ["default"];
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "b3ad212ba393cc87bb9e621dbad9d04362f1151c";
-      sha256 = "1i8y78db1pdga3jdz8615n82hax7qy9nrxd2s0dx7hb90v53zpcg";
+      rev = "e1016aceec3bfd4aff85d0bcdc89ee7c88cf5bd4";
+      sha256 = "048ivfsia53ni6iplnphxm42f9r24kw6kxwdmmk6d78dvj9p3n11";
       type = "git";
       url = "https://github.com/rapid7/metasploit-framework";
     };
-    version = "6.1.36";
+    version = "6.1.39";
   };
   metasploit-model = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13zg6jw8vbspq95s4dpcbjxnjiacy21il7y8l2dq3rd04mickryy";
+      sha256 = "16mc0f7hqpqmnvyqar3hn3yr83xxvnm1ikmq6sxwbf08zhgz6v64";
       type = "gem";
     };
-    version = "4.0.3";
+    version = "4.0.4";
   };
   metasploit-payloads = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0chd5rn13210fgsvm0yqd59lfgg9kpmyx82jbf33dfiw6qh6mmi1";
+      sha256 = "15vlazx39flz2pci2yqjcgd4ljslhivbq1vvyajgsxl15q772ni0";
       type = "gem";
     };
-    version = "2.0.77";
+    version = "2.0.83";
   };
   metasploit_data_models = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12hnkrkgx89dskfr8ywpxk51y0nqnnj37qjz856f45z7ymx1nzip";
+      sha256 = "1h7w6kavbylbs55rkv12hg28wcchwqvzmagw9yrkqmncwdavl0dl";
       type = "gem";
     };
-    version = "5.0.4";
+    version = "5.0.5";
   };
   metasploit_payloads-mettle = {
     groups = ["default"];
@@ -776,10 +786,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cshgsx3hmpgx639xyqjqa2q3hgrhlyr9rpwhsglsx529alqq125";
+      sha256 = "1i0gbypr1yxwfkaxzrk0i1wz4n6v3mw7z24k65jy3q1h5lda5xbw";
       type = "gem";
     };
-    version = "1.4.5";
+    version = "1.5.1";
   };
   multi_json = {
     groups = ["default"];
@@ -831,6 +841,26 @@
     };
     version = "0.17.0";
   };
+  net-protocol = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "051cc82dl41a66c9sxv4lx4slqk7sz1v4iy0hdk6gpjyjszf4hxd";
+      type = "gem";
+    };
+    version = "0.1.3";
+  };
+  net-smtp = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1s358kfv9mnfxcjbpr1d5a2gs1q7wkw7ffpn86mf1b3s9p31bw9s";
+      type = "gem";
+    };
+    version = "0.3.1";
+  };
   net-ssh = {
     groups = ["default"];
     platforms = [];
@@ -877,10 +907,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p6b3q411h2mw4dsvhjrp1hh66hha5cm69fqg85vn2lizz71n6xz";
+      sha256 = "1g43ii497cwdqhfnaxfl500bq5yfc5hfv5df1lvf6wcjnd708ihd";
       type = "gem";
     };
-    version = "1.13.3";
+    version = "1.13.4";
   };
   nori = {
     groups = ["default"];
@@ -987,10 +1017,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+      sha256 = "1f3knlwfwm05sfbaihrxm4g772b79032q14c16q4b38z8bi63qcb";
       type = "gem";
     };
-    version = "4.0.6";
+    version = "4.0.7";
   };
   puma = {
     groups = ["default"];
@@ -1147,10 +1177,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0a5fb8g6ksak1g1syhvh5rh87shnx617l7nl6afl80in0h4fd4xd";
+      sha256 = "17kgimw778flsqg66cyccz655kfdaasgv9g0zyk7zb5psigjadbl";
       type = "gem";
     };
-    version = "0.1.27";
+    version = "0.1.28";
   };
   rex-encoder = {
     groups = ["default"];
@@ -1167,10 +1197,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0asx13g0xqb8wnslrmsld2l1w2qpl6kjrcbfl945kw1nm7k5bwxb";
+      sha256 = "0x1gqdqvsgll1r5x6cz4ica24nb3ph8y36mf3hwabgb1a6y3s0zr";
       type = "gem";
     };
-    version = "0.1.29";
+    version = "0.1.30";
   };
   rex-java = {
     groups = ["default"];
@@ -1217,10 +1247,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ydzvakfg8can56jn0i8qnrf742csyk82krj50b44sj93ncj7h54";
+      sha256 = "1a9ky6gp8r6xymdcgnf7paqphy07m9alw28y1lhzg760h8a1kvc6";
       type = "gem";
     };
-    version = "0.1.95";
+    version = "0.1.96";
   };
   rex-random_identifier = {
     groups = ["default"];
@@ -1257,10 +1287,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rsgssbnnl5frxgnq17xq0n6rpxns6xdmxpya9852c2n72nm5ac0";
+      sha256 = "1lisy36pcyhqvhxkl55pgcyw67n9birzsyrgkm0b7sbkn4jpv0d0";
       type = "gem";
     };
-    version = "0.1.34";
+    version = "0.1.35";
   };
   rex-sslscan = {
     groups = ["default"];
@@ -1357,10 +1387,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mxm2948xz9pfl2jhngvjw89arvm9qznrf86pbqi8hi7cxfr4grk";
+      sha256 = "1v0dvys954c1d5azzz05p1jg57knk3d10b61wwfx00dw8pz76amw";
       type = "gem";
     };
-    version = "3.0.6";
+    version = "3.1.1";
   };
   rubyntlm = {
     groups = ["default"];
@@ -1472,6 +1502,16 @@
     };
     version = "2.0.10";
   };
+  timeout = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10bx1hcyrjqgq6a848fc1i0cgrvx42gcy8hk4vp90y6zc7k8xzbk";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
   ttfunk = {
     groups = ["default"];
     platforms = [];
diff --git a/pkgs/tools/security/minio-certgen/default.nix b/pkgs/tools/security/minio-certgen/default.nix
index 16dbfdf63add0..6e2403ad7c10f 100644
--- a/pkgs/tools/security/minio-certgen/default.nix
+++ b/pkgs/tools/security/minio-certgen/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     downloadPage = "https://github.com/minio/certgen";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bryanasdev000 ];
+    mainProgram = "certgen";
   };
 }
diff --git a/pkgs/tools/security/nuclei/default.nix b/pkgs/tools/security/nuclei/default.nix
index 14539bf215745..2ca79ed25a49a 100644
--- a/pkgs/tools/security/nuclei/default.nix
+++ b/pkgs/tools/security/nuclei/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "nuclei";
-  version = "2.6.5";
+  version = "2.6.9";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-g78sZDhV2+MgoFkJIrE2RbVLa/aPjbKFFRyKj594Hb0=";
+    sha256 = "sha256-BGWlkNj0LQ02BSUWQYjoT4bR0t/DmNB0jBpvwB/gWwo=";
   };
 
-  vendorSha256 = "sha256-/umoSOQ0ehQplxU8OTGJVmTgO+8xPZxVwRBfM67zMh8=";
+  vendorSha256 = "sha256-ar62CZ/2zXO3lwvWNiIAt9XITj2Y/0iIYGX8tmSCwcU=";
 
   modRoot = "./v2";
   subPackages = [
diff --git a/pkgs/tools/security/phrasendrescher/default.nix b/pkgs/tools/security/phrasendrescher/default.nix
index 7e8c87f6e82c3..d4f7242b2896f 100644
--- a/pkgs/tools/security/phrasendrescher/default.nix
+++ b/pkgs/tools/security/phrasendrescher/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ bjornfor ];
+    mainProgram = "pd";
   };
 }
diff --git a/pkgs/tools/security/rekor/default.nix b/pkgs/tools/security/rekor/default.nix
index 663cc38291cb3..69e0f0a2e9318 100644
--- a/pkgs/tools/security/rekor/default.nix
+++ b/pkgs/tools/security/rekor/default.nix
@@ -4,22 +4,43 @@ let
   generic = { pname, packageToBuild, description }:
     buildGoModule rec {
       inherit pname;
-      version = "0.5.0";
+      version = "0.6.0";
 
       src = fetchFromGitHub {
         owner = "sigstore";
         repo = "rekor";
         rev = "v${version}";
-        sha256 = "sha256-y8klkb0hyITxLhcNWF7RYRVwF8rclDKzQF/MJs6y//Y=";
+        sha256 = "sha256-cihue4DMqHLFVz5kLZf17EcwbkfBxlxtqmto5K11sIo=";
+        # populate values that require us to use git. By doing this in postFetch we
+        # can delete .git afterwards and maintain better reproducibility of the src.
+        leaveDotGit = true;
+        postFetch = ''
+          cd "$out"
+          git rev-parse HEAD > $out/COMMIT
+          # '0000-00-00T00:00:00Z'
+          date -u -d "@$(git log -1 --pretty=%ct)" "+'%Y-%m-%dT%H:%M:%SZ'" > $out/SOURCE_DATE_EPOCH
+          find "$out" -name .git -print0 | xargs -0 rm -rf
+        '';
       };
 
-      vendorSha256 = "sha256-0PPdnE3ND/YNIk50XkgBROpe5OhFiFre5Lwsml02DQU=";
+      vendorSha256 = "sha256-bJOWSf2MHeLdI1smFXCjN3PIFRcO76cDnxks+FgqZdY=";
 
       nativeBuildInputs = [ installShellFiles ];
 
       subPackages = [ packageToBuild ];
 
-      ldflags = [ "-s" "-w" "-X github.com/sigstore/rekor/pkg/api.GitVersion=v${version}" ];
+      ldflags = [
+        "-s"
+        "-w"
+        "-X sigs.k8s.io/release-utils/version.gitVersion=v${version}"
+        "-X sigs.k8s.io/release-utils/version.gitTreeState=clean"
+      ];
+
+      # ldflags based on metadata from git and source
+      preBuild = ''
+        ldflags+=" -X sigs.k8s.io/release-utils/version.gitCommit=$(cat COMMIT)"
+        ldflags+=" -X sigs.k8s.io/release-utils/version.buildDate=$(cat SOURCE_DATE_EPOCH)"
+      '';
 
       postInstall = ''
         installShellCompletion --cmd ${pname} \
diff --git a/pkgs/tools/security/saml2aws/default.nix b/pkgs/tools/security/saml2aws/default.nix
index 2f1127fd68a28..296845c644d14 100644
--- a/pkgs/tools/security/saml2aws/default.nix
+++ b/pkgs/tools/security/saml2aws/default.nix
@@ -15,8 +15,6 @@ buildGoModule rec {
 
   buildInputs = lib.optionals stdenv.isDarwin [ AppKit ];
 
-  doCheck = false;
-
   subPackages = [ "." "cmd/saml2aws" ];
 
   ldflags = [
diff --git a/pkgs/tools/security/sheesy-cli/default.nix b/pkgs/tools/security/sheesy-cli/default.nix
index 4be2189e29353..c47e5a2128585 100644
--- a/pkgs/tools/security/sheesy-cli/default.nix
+++ b/pkgs/tools/security/sheesy-cli/default.nix
@@ -37,5 +37,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/share-secrets-safely/cli/releases/tag/${version}";
     license = with licenses; [ lgpl21Only ];
     maintainers = with maintainers; [ devhell ];
+    mainProgram = "sy";
   };
 }
diff --git a/pkgs/tools/security/sigma-cli/default.nix b/pkgs/tools/security/sigma-cli/default.nix
index a2417e7b8fe23..d3099340ff1ba 100644
--- a/pkgs/tools/security/sigma-cli/default.nix
+++ b/pkgs/tools/security/sigma-cli/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "sigma-cli";
-  version = "0.3.4";
+  version = "0.4.2";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "SigmaHQ";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-FWcPHtEYqS+81dU4lB+4BLFOXtFumcyhucwvmu2TAt8=";
+    hash = "sha256-UA28A/C7RyIs96a/U98WpkgeCotT4qmpZwvO3HYUE9Q=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
@@ -24,8 +24,10 @@ python3.pkgs.buildPythonApplication rec {
     prettytable
     pysigma
     pysigma-backend-splunk
+    pysigma-backend-insightidr
     pysigma-pipeline-crowdstrike
     pysigma-pipeline-sysmon
+    pysigma-pipeline-windows
   ];
 
   checkInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/signify/default.nix b/pkgs/tools/security/signify/default.nix
index 3ac6f58dce944..645cb010bdf3b 100644
--- a/pkgs/tools/security/signify/default.nix
+++ b/pkgs/tools/security/signify/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "signify";
-  version = "30";
+  version = "31";
 
   src = fetchFromGitHub {
     owner = "aperezdc";
     repo = "signify";
     rev = "v${version}";
-    sha256 = "02xh6x6rszkvk3rf6zai7n3ivchmw0d8mwllpinjxc7k6sd415c3";
+    sha256 = "sha256-y9jWG1JJhYCn6e5E2qjVqK8nmZpktiB7d9e9uP+3DLo=";
   };
 
   doCheck = true;
diff --git a/pkgs/tools/security/snowcrash/default.nix b/pkgs/tools/security/snowcrash/default.nix
index bce05ed8f2e97..087c6af1e6067 100644
--- a/pkgs/tools/security/snowcrash/default.nix
+++ b/pkgs/tools/security/snowcrash/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     homepage = "https://github.com/redcode-labs/SNOWCRASH";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ] ++ teams.redcodelabs.members;
+    mainProgram = "SNOWCRASH";
   };
 }
diff --git a/pkgs/tools/security/solo2-cli/default.nix b/pkgs/tools/security/solo2-cli/default.nix
index eaa2bc659a567..89d26540d38bb 100644
--- a/pkgs/tools/security/solo2-cli/default.nix
+++ b/pkgs/tools/security/solo2-cli/default.nix
@@ -45,5 +45,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/solokeys/solo2-cli";
     license = with licenses; [ asl20 mit ]; # either at your option
     maintainers = with maintainers; [ lukegb ];
+    mainProgram = "solo2";
   };
 }
diff --git a/pkgs/tools/security/spire/default.nix b/pkgs/tools/security/spire/default.nix
index 9b9e9e93488f5..fcb74d421ebbc 100644
--- a/pkgs/tools/security/spire/default.nix
+++ b/pkgs/tools/security/spire/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "spire";
-  version = "1.2.1";
+  version = "1.2.3";
 
   outputs = [ "out" "agent" "server" ];
 
@@ -10,10 +10,10 @@ buildGoModule rec {
     owner = "spiffe";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-LK73RGSTwGhCXOglsqK8RAAldovRzliE78vi2ilTSrw=";
+    sha256 = "sha256-k2kg1Wz0pPV9di2T1A1QvPxLqS5uZBvklNfBW72dQa0=";
   };
 
-  vendorSha256 = "sha256-am8ZTUX8Vph1Eg013NObMiSVeupS2hlHdpZ/1mO27dY=";
+  vendorSha256 = "sha256-J2D5hD0+0VY0sWi6O/McLIvK775aQiDqA+h24oYgRxY=";
 
   subPackages = [ "cmd/spire-agent" "cmd/spire-server" ];
 
diff --git a/pkgs/tools/security/sslscan/default.nix b/pkgs/tools/security/sslscan/default.nix
index 0885c1d2de6ac..ae94b6e254702 100644
--- a/pkgs/tools/security/sslscan/default.nix
+++ b/pkgs/tools/security/sslscan/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sslscan";
-  version = "2.0.12";
+  version = "2.0.13";
 
   src = fetchFromGitHub {
     owner = "rbsec";
     repo = "sslscan";
     rev = version;
-    sha256 = "sha256-lFb+W2PSmXzzNhG+yNmnDNqtUc0TsDYYnsBnKdsiPSo=";
+    sha256 = "sha256-boXp26f8jiw73lMLwUMuAuDBRIw8JzokYadbKx/VeSg=";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/security/sudolikeaboss/default.nix b/pkgs/tools/security/sudolikeaboss/default.nix
deleted file mode 100644
index 242da1a67bb48..0000000000000
--- a/pkgs/tools/security/sudolikeaboss/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-# This file was generated by go2nix, then modified by hand for Darwin support.
-{ lib, buildGoPackage, fetchFromGitHub, darwin }:
-
-buildGoPackage rec {
-  pname = "sudolikeaboss-unstable";
-  version = "20161127-${lib.strings.substring 0 7 rev}";
-  rev = "2d9afe19f872c9f433d476e57ee86169781b164c";
-
-  goPackagePath = "github.com/ravenac95/sudolikeaboss";
-
-  src = fetchFromGitHub {
-    owner = "ravenac95";
-    repo = "sudolikeaboss";
-    inherit rev;
-    sha256 = "0ni3v4kanxfzxzjd48f5dgv62jbfrw7kdmq0snj09hw7ciw55yg6";
-  };
-
-  goDeps = ./deps.nix;
-
-  buildInputs = with darwin.apple_sdk.frameworks; [
-    Cocoa
-  ];
-
-  meta = with lib; {
-    inherit (src.meta) homepage;
-    description = "Get 1password access from iterm2";
-    license = licenses.mit;
-    maintainers = [ maintainers.grahamc ];
-    platforms = platforms.darwin;
-  };
-}
diff --git a/pkgs/tools/security/sudolikeaboss/deps.nix b/pkgs/tools/security/sudolikeaboss/deps.nix
deleted file mode 100644
index 350306a24f4b4..0000000000000
--- a/pkgs/tools/security/sudolikeaboss/deps.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-# This file was generated by go2nix.
-[
-  {
-    goPackagePath = "github.com/Sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Sirupsen/logrus";
-      rev = "881bee4e20a5d11a6a88a5667c6f292072ac1963";
-      sha256 = "176a09lp20f0qfhwwlh2xg0vk7z1g7gq8k2wr3sg1fd8m86wrzzg";
-    };
-  }
-  {
-    goPackagePath = "github.com/satori/go.uuid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/satori/go.uuid";
-      rev = "b061729afc07e77a8aa4fad0a2fd840958f1942a";
-      sha256 = "0q87n5an7ha2d8kl6gn9wi41rq0whsxq68w5x3nxz7w9vgkfnq1k";
-    };
-  }
-  {
-    goPackagePath = "github.com/urfave/cli";
-    fetch = {
-      type = "git";
-      url = "https://github.com/urfave/cli";
-      rev = "0bdeddeeb0f650497d603c4ad7b20cfe685682f6";
-      sha256 = "1ny63c7bfwfrsp7vfkvb4i0xhq4v7yxqnwxa52y4xlfxs4r6v6fg";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "0c96df335ed3f17f758cba1a2c71b7849dd828e3";
-      sha256 = "02zn1f539y5yc1sx82ym8c3pp3z371d1ldhl20skwjwbdw1ln8hm";
-    };
-  }
-]
diff --git a/pkgs/tools/security/tpm2-abrmd/default.nix b/pkgs/tools/security/tpm2-abrmd/default.nix
index a3352c5abfdcb..b3efb6c542e9d 100644
--- a/pkgs/tools/security/tpm2-abrmd/default.nix
+++ b/pkgs/tools/security/tpm2-abrmd/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tpm2-abrmd";
-  version = "2.3.3";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "tpm2-software";
     repo = pname;
     rev = version;
-    sha256 = "17nv50w1yh6fg7393vfvys9y13lp0gvxx9vcw2pb87ky551d7xkf";
+    sha256 = "0lsng4sb9ikfpp0scvl9wmh0zpjdmdf5bqbjnpfyh4gk25qxn9mw";
   };
 
   nativeBuildInputs = [ pkg-config makeWrapper autoreconfHook autoconf-archive which ];
diff --git a/pkgs/tools/security/truecrack/default.nix b/pkgs/tools/security/truecrack/default.nix
index cf64b234c66f6..40d0ba213fb9a 100644
--- a/pkgs/tools/security/truecrack/default.nix
+++ b/pkgs/tools/security/truecrack/default.nix
@@ -33,6 +33,7 @@ gccStdenv.mkDerivation rec {
   meta = with lib; {
     description = "TrueCrack is a brute-force password cracker for TrueCrypt volumes. It works on Linux and it is optimized for Nvidia Cuda technology.";
     homepage = "https://gitlab.com/kalilinux/packages/truecrack";
+    broken = cudaSupport;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ethancedwards8 ];
diff --git a/pkgs/tools/security/vault/default.nix b/pkgs/tools/security/vault/default.nix
index d349c205ad4f0..907f3f4e7c552 100644
--- a/pkgs/tools/security/vault/default.nix
+++ b/pkgs/tools/security/vault/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "vault";
-  version = "1.10.0";
+  version = "1.10.1";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "vault";
     rev = "v${version}";
-    sha256 = "sha256-XgrEtAVfMcXbmAjwgIWME/v85QHJ11fUXapAZtS/lSw=";
+    sha256 = "sha256-In+rc5H8HNx5hGySYvCqx6hQ7tmTioHiNdJIMyMRNvU=";
   };
 
-  vendorSha256 = "sha256-Bo0+HSG7NqaweMKPdl+kzB6RdbQsy2FAzmr7ZZVgcsg=";
+  vendorSha256 = "sha256-z0PsLrT4jtSof4Bd62juGLv58EV22TnPx6fosMvW97c=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/security/vault/vault-bin.nix b/pkgs/tools/security/vault/vault-bin.nix
index ebb70a1f62922..f29c3e493c5ea 100644
--- a/pkgs/tools/security/vault/vault-bin.nix
+++ b/pkgs/tools/security/vault/vault-bin.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "vault-bin";
-  version = "1.10.0";
+  version = "1.10.1";
 
   src =
     let
@@ -16,11 +16,11 @@ stdenv.mkDerivation rec {
         aarch64-darwin = "darwin_arm64";
       };
       sha256 = selectSystem {
-        x86_64-linux = "sha256-enD/JcOmeavvUd/njbu7IksAqp9dKepVdYPkLJHA8OQ=";
-        aarch64-linux = "sha256-FDkgUqFEVJoSED/FWqOXa4BTO6AYwkLS2iZh+BkzlqA=";
-        i686-linux = "sha256-XUTWB5Ynu92SMP9Nt/0jAki6til4upKv1sdFzPbWxiw=";
-        x86_64-darwin = "sha256-QNCsbIza56NqSU7R6+Cx//WBXiEOz6CEMCjrx4AR1x8=";
-        aarch64-darwin = "sha256-LBgd8gqeU92336kypSIwMtKo7I1qB/RP2dNoIGJgq7k=";
+        x86_64-linux = "sha256-8qrCGJNEWs3I/IRK1CiGfbbpQhwziFgoQyMcUX40wbw=";
+        aarch64-linux = "sha256-/rW39m2XnJp0MsBmXs4ktRnQriLdYHRJ9MIEtO9MxNk=";
+        i686-linux = "sha256-NHIxN3rdX+3yLjbh25c1IwB+Q/QRQCrIBF9XwxIwVpY=";
+        x86_64-darwin = "sha256-2OuJZftsP+fKInhBYlcRLZ1Rs+j/jl7Ve4M6Oz3Q7Ac=";
+        aarch64-darwin = "sha256-JSu8eS4jzRl8d8MOWnAgmvO68xGzxFRn8HW28gQbzmU=";
       };
     in
     fetchzip {
diff --git a/pkgs/tools/security/vaultwarden/vault.nix b/pkgs/tools/security/vaultwarden/vault.nix
index 5ec014de9593b..f37fbe12f1c62 100644
--- a/pkgs/tools/security/vaultwarden/vault.nix
+++ b/pkgs/tools/security/vaultwarden/vault.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "vaultwarden-vault";
-  version = "2.25.0";
+  version = "2.27.0";
 
   src = fetchurl {
     url = "https://github.com/dani-garcia/bw_web_builds/releases/download/v${version}/bw_web_v${version}.tar.gz";
-    sha256 = "sha256-0uxkHz/oHWl4MdzV7zRVKgkEqOkrl7Fd405TOf472gw=";
+    sha256 = "sha256-r4z45gjVB+RMZM0IE/ec0yf+rt4YDz5IpZEz5FlQSds=";
   };
 
   buildCommand = ''
diff --git a/pkgs/tools/security/whatweb/Gemfile b/pkgs/tools/security/whatweb/Gemfile
new file mode 100644
index 0000000000000..a376a3baae36d
--- /dev/null
+++ b/pkgs/tools/security/whatweb/Gemfile
@@ -0,0 +1,6 @@
+source 'https://rubygems.org'
+gem 'ipaddr'
+gem 'addressable'
+gem 'json'
+gem 'mongo'
+gem 'rchardet'
diff --git a/pkgs/tools/security/whatweb/Gemfile.lock b/pkgs/tools/security/whatweb/Gemfile.lock
new file mode 100644
index 0000000000000..7bfd24112b1ac
--- /dev/null
+++ b/pkgs/tools/security/whatweb/Gemfile.lock
@@ -0,0 +1,25 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    addressable (2.8.0)
+      public_suffix (>= 2.0.2, < 5.0)
+    bson (4.14.1)
+    ipaddr (1.2.4)
+    json (2.6.1)
+    mongo (2.17.1)
+      bson (>= 4.8.2, < 5.0.0)
+    public_suffix (4.0.6)
+    rchardet (1.8.0)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  addressable
+  ipaddr
+  json
+  mongo
+  rchardet
+
+BUNDLED WITH
+   2.1.4
diff --git a/pkgs/tools/security/whatweb/default.nix b/pkgs/tools/security/whatweb/default.nix
new file mode 100644
index 0000000000000..30d866da869af
--- /dev/null
+++ b/pkgs/tools/security/whatweb/default.nix
@@ -0,0 +1,50 @@
+{ lib, stdenv, fetchFromGitHub, bundlerEnv, ruby }:
+
+let
+  gems = bundlerEnv {
+    name = "whatweb-env";
+    inherit ruby;
+    gemdir = ./.;
+  };
+
+in stdenv.mkDerivation rec {
+  pname = "whatweb";
+  version = "0.5.5";
+
+  src = fetchFromGitHub {
+    owner = "urbanadventurer";
+    repo = "whatweb";
+    rev = "v${version}";
+    sha256 = "sha256-HLF55x4C8n8aPO4SI0d6Z9wZe80krtUaGUFmMaYRBIE=";
+  };
+
+  prePatch = ''
+    substituteInPlace Makefile \
+      --replace "/usr/local" "$out" \
+      --replace "/usr" "$out"
+  '';
+
+  buildInputs = [ gems ];
+
+  installPhase = ''
+    runHook preInstall
+
+    raw=$out/share/whatweb/whatweb
+    rm $out/bin/whatweb
+    cat << EOF >> $out/bin/whatweb
+    #!/bin/sh -e
+    exec ${gems}/bin/bundle exec ${ruby}/bin/ruby "$raw" "\$@"
+    EOF
+    chmod +x $out/bin/whatweb
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Next generation web scanner";
+    homepage = "https://github.com/urbanadventurer/whatweb";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ wolfangaukang ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/security/whatweb/gemset.nix b/pkgs/tools/security/whatweb/gemset.nix
new file mode 100644
index 0000000000000..22d469b53e27d
--- /dev/null
+++ b/pkgs/tools/security/whatweb/gemset.nix
@@ -0,0 +1,74 @@
+{
+  addressable = {
+    dependencies = ["public_suffix"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "022r3m9wdxljpbya69y2i3h9g3dhhfaqzidf95m6qjzms792jvgp";
+      type = "gem";
+    };
+    version = "2.8.0";
+  };
+  bson = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03n3w96vpblaxvk1qk8hq7sbsmg4nv7qdkdr8f7nfvalgpakp5i5";
+      type = "gem";
+    };
+    version = "4.14.1";
+  };
+  ipaddr = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13qd34nzpgp3fxfjbvaqg3dcnfr0cgl5vjvcqy0hfllbvfcklnbq";
+      type = "gem";
+    };
+    version = "1.2.4";
+  };
+  json = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1z9grvjyfz16ag55hg522d3q4dh07hf391sf9s96npc0vfi85xkz";
+      type = "gem";
+    };
+    version = "2.6.1";
+  };
+  mongo = {
+    dependencies = ["bson"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19sihy8ihi3hmdg3gxbf4qvzmjnzx8xygg9534012j9z0wmhs7h1";
+      type = "gem";
+    };
+    version = "2.17.1";
+  };
+  public_suffix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+      type = "gem";
+    };
+    version = "4.0.6";
+  };
+  rchardet = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1isj1b3ywgg2m1vdlnr41lpvpm3dbyarf1lla4dfibfmad9csfk9";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+}
diff --git a/pkgs/tools/security/witness/default.nix b/pkgs/tools/security/witness/default.nix
index bb15d9d72cc05..921d524be6acc 100644
--- a/pkgs/tools/security/witness/default.nix
+++ b/pkgs/tools/security/witness/default.nix
@@ -2,16 +2,15 @@
 
 buildGoModule rec {
   pname = "witness";
-  version = "0.1.6";
+  version = "0.1.7";
 
   src = fetchFromGitHub {
     owner = "testifysec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/35hIA6Wm/F5hwyLZbt4JXpwWISWbzVAWrX29r6pejY=";
+    sha256 = "sha256-fkY3/UmHzggmysrae8VCY3NMBxC/LcWoQcXBELEzJlM=";
   };
-
-  vendorSha256 = "sha256-vXDsHHJknw9hsHx1mJA2c0CWwFbRXjCjitNWPh6V4yw=";
+  vendorSha256 = "sha256-ajWIjQXLvFQB1AVYyGjyWMrWIyue/d1uU5HHNf4/UcU=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -38,6 +37,14 @@ buildGoModule rec {
       --zsh <($out/bin/witness completion zsh)
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/witness --help
+    $out/bin/witness version | grep "v${version}"
+    runHook postInstallCheck
+  '';
+
   meta = with lib; {
     description = "A pluggable framework for software supply chain security. Witness prevents tampering of build materials and verifies the integrity of the build process from source to target";
     longDescription = ''
diff --git a/pkgs/tools/system/btop/default.nix b/pkgs/tools/system/btop/default.nix
index 85aaee0bb9e44..86547d04e467d 100644
--- a/pkgs/tools/system/btop/default.nix
+++ b/pkgs/tools/system/btop/default.nix
@@ -8,8 +8,8 @@
 
 stdenv.mkDerivation rec {
   pname = "btop";
-  version = "1.2.5";
-  hash = "sha256-W7DTaJVA9xqdgBjrrR+OK1buBMrjpw2T0I//ZZKQFOw=";
+  version = "1.2.6";
+  hash = "sha256-q1Dpdw7bVSG10xtoUpelRgMrWe71vCWajjsAHjAZzQ4=";
 
   src = fetchFromGitHub {
     owner = "aristocratos";
diff --git a/pkgs/tools/system/consul-template/default.nix b/pkgs/tools/system/consul-template/default.nix
index 5d09020eec343..c265cf028bc8a 100644
--- a/pkgs/tools/system/consul-template/default.nix
+++ b/pkgs/tools/system/consul-template/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "consul-template";
-  version = "0.28.0";
+  version = "0.29.0";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "consul-template";
     rev = "v${version}";
-    sha256 = "sha256-9NsudhalFm0km7BmK+2QzK9LxirrVtIFzNrugpw4f8g=";
+    sha256 = "sha256-HxzniR4z3YzvFww3KqhtelaqMQJBsSw83pfz+jHxvKQ=";
   };
 
-  vendorSha256 = "sha256-SUbQPzFZUBgFZvaLc8730hZhJvt3/ni306Vt3EZMOmU=";
+  vendorSha256 = "sha256-wRNfxJVX45dfIBZ0sy48qbPkAsD0CIB1PDTiGs8Fjhs=";
 
   # consul-template tests depend on vault and consul services running to
   # execute tests so we skip them here
diff --git a/pkgs/tools/system/ctop/default.nix b/pkgs/tools/system/ctop/default.nix
index 6091eff255d8f..cd8c755e1afa1 100644
--- a/pkgs/tools/system/ctop/default.nix
+++ b/pkgs/tools/system/ctop/default.nix
@@ -13,8 +13,6 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-UAja7XuoLqJFNcK1PgHGcuf/HbvSrWyRvW2D3T7Hg0g=";
 
-  doCheck = false;
-
   ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.build=v${version}" ];
 
   meta = with lib; {
diff --git a/pkgs/tools/system/fio/default.nix b/pkgs/tools/system/fio/default.nix
index 859fbe72d6317..42ece88147ba5 100644
--- a/pkgs/tools/system/fio/default.nix
+++ b/pkgs/tools/system/fio/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fio";
-  version = "3.29";
+  version = "3.30";
 
   src = fetchFromGitHub {
     owner  = "axboe";
     repo   = "fio";
     rev    = "fio-${version}";
-    sha256 = "sha256-SSQFZK8oVarenp/I37QX/N4F4Es2r2bVyWw6U2OcCHw=";
+    sha256 = "sha256-X2B8xlCLSHDgTaH55TUJq4WcaObZy/fvfkQ0j3J9Kzo=";
   };
 
   buildInputs = [ python3 zlib ]
diff --git a/pkgs/tools/system/goreman/default.nix b/pkgs/tools/system/goreman/default.nix
index 8257e930779d5..51d70fbc93335 100644
--- a/pkgs/tools/system/goreman/default.nix
+++ b/pkgs/tools/system/goreman/default.nix
@@ -20,8 +20,6 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-87aHBRWm5Odv6LeshZty5N31sC+vdSwGlTYhk3BZkPo=";
 
-  doCheck = false;
-
   meta = with lib; {
     description = "foreman clone written in go language";
     homepage = "https://github.com/mattn/goreman";
diff --git a/pkgs/tools/system/jsvc/default.nix b/pkgs/tools/system/jsvc/default.nix
index 442f8d904195b..82631770df145 100644
--- a/pkgs/tools/system/jsvc/default.nix
+++ b/pkgs/tools/system/jsvc/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jsvc";
-  version = "1.2.4";
+  version = "1.3.0";
 
   src = fetchurl {
     url = "https://downloads.apache.org//commons/daemon/source/commons-daemon-${version}-src.tar.gz";
-    sha256 = "1nrr6ggy6h20r9zyv14vx6vc9p1w6l8fl9fn6i8dx2hrq6kk2bjw";
+    sha256 = "sha256-UzzXb+MRPVNTE8HYsB/yPK9rq8zGmbGmi0RGk3zER0s=";
   };
 
   buildInputs = [ commonsDaemon ];
diff --git a/pkgs/tools/system/jump/default.nix b/pkgs/tools/system/jump/default.nix
index fa0c2f73922c3..2f69f6a0ef6af 100644
--- a/pkgs/tools/system/jump/default.nix
+++ b/pkgs/tools/system/jump/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "jump";
-  version = "0.40.0";
+  version = "0.41.0";
 
   src = fetchFromGitHub {
     owner = "gsamokovarov";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-8Lfta4qDXYVSHG3UI8iUA6vIjBe5OIX7n0LC4OW1qMU=";
+    sha256 = "sha256-nI4n1WxgdGGP822APBOLZ5lNkjwL1KfP5bKUxfvXdnE=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/tools/system/lshw/default.nix b/pkgs/tools/system/lshw/default.nix
index 25bf79cadddf7..76897823029a4 100644
--- a/pkgs/tools/system/lshw/default.nix
+++ b/pkgs/tools/system/lshw/default.nix
@@ -1,40 +1,36 @@
-{ stdenv, lib, fetchurl, fetchpatch
-, withGUI ? false, gtk2, pkg-config, sqlite # compile GUI
+{ stdenv
+, lib
+, fetchFromGitHub
+, hwdata
+, gtk2
+, pkg-config
+, sqlite # compile GUI
+, withGUI ? false
 }:
 
 stdenv.mkDerivation rec {
   pname = "lshw";
-  version = "B.02.18";
-
-  src = fetchurl {
-    url = "https://ezix.org/software/files/lshw-${version}.tar.gz";
-    sha256 = "0brwra4jld0d53d7jsgca415ljglmmx1l2iazpj4ndilr48yy8mf";
+  # Fix repology.org by not including the prefixed B, otherwise the `pname` attr
+  # gets filled as `lshw-B.XX.XX` in `nix-env --query --available --attr nixpkgs.lshw --meta`
+  # See https://github.com/NixOS/nix/pull/4463 for a definitive fix
+  version = "02.19";
+
+  src = fetchFromGitHub {
+    owner = "lyonel";
+    repo = pname;
+    rev = "B.${version}";
+    sha256 = "sha256-PzbNGc1pPiPLWWgTeWoNfAo+SsXgi1HcjnXfYXA9S0I=";
   };
 
-  patches = [
-    (fetchpatch {
-      # fix crash in scan_dmi_sysfs() when run as non-root
-      url = "https://github.com/lyonel/lshw/commit/fbdc6ab15f7eea0ddcd63da355356ef156dd0d96.patch";
-      sha256 = "147wyr5m185f8swsmb4q1ahs9r1rycapbpa2548aqbv298bbish3";
-    })
-    (fetchpatch {
-      # support cross-compilation
-      url = "https://github.com/lyonel/lshw/commit/8486d25cea9b68794504fbd9e5c6e294bac6cb07.patch";
-      sha256 = "08f0wnxsq0agvsc66bhc7lxvk564ir0pp8pg3cym6a621prb9lm0";
-    })
-  ];
-
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = lib.optionals withGUI [ gtk2 sqlite ];
+  buildInputs = [ hwdata ]
+    ++ lib.optionals withGUI [ gtk2 sqlite ];
 
-  # Fix version info.
-  preConfigure = ''
-    sed -e "s/return \"unknown\"/return \"${version}\"/" \
-        -i src/core/version.cc
-  '';
-
-  makeFlags = [ "PREFIX=$(out)" ];
+  makeFlags = [
+    "PREFIX=$(out)"
+    "VERSION=${src.rev}"
+  ];
 
   buildFlags = [ "all" ] ++ lib.optional withGUI "gui";
 
@@ -46,7 +42,7 @@ stdenv.mkDerivation rec {
     homepage = "https://ezix.org/project/wiki/HardwareLiSter";
     description = "Provide detailed information on the hardware configuration of the machine";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ thiagokokada ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/system/memtester/default.nix b/pkgs/tools/system/memtester/default.nix
index 276d4f446cfa9..dfbaaffd8e856 100644
--- a/pkgs/tools/system/memtester/default.nix
+++ b/pkgs/tools/system/memtester/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "memtester";
-  version = "4.5.0";
+  version = "4.5.1";
 
   preConfigure = ''
     echo "$CC" > conf-cc
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://pyropus.ca/software/memtester/old-versions/memtester-${version}.tar.gz";
-    sha256 = "0dxfwayns3hjjplkxkpkm1409lmjlpi4chcrahcvdbnl0q6jpmcf";
+    sha256 = "sha256-HF/COCV2wISzFM/TNNEnpmwgvWOJLKyfRFvB2LTKWkc=";
   };
 
   installFlags = [ "INSTALLPATH=$(out)" ];
diff --git a/pkgs/tools/system/natscli/default.nix b/pkgs/tools/system/natscli/default.nix
index 411c1054434da..949ad31a01859 100644
--- a/pkgs/tools/system/natscli/default.nix
+++ b/pkgs/tools/system/natscli/default.nix
@@ -5,21 +5,22 @@
 
 buildGoModule rec {
   pname = "natscli";
-  version = "0.0.30";
+  version = "0.0.32";
 
   src = fetchFromGitHub {
     owner = "nats-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+WvJWHRQr5wYV9TG5e379trBO2Gwy0/4bAEJNwDun7s=";
+    sha256 = "sha256-/bK7eQaH5VpYm0lfL43DtVxEeoo4z0Ns1ykuA0osPAs=";
   };
 
-  vendorSha256 = "sha256-IHDJp+cjukX916dvffpv4Wit9kmuY101fasN+ChMxWQ=";
+  vendorSha256 = "sha256-qg3fmFBHeKujNQr7WFhkdvMQeR/PCBzqTHHeNsCrrMc=";
 
   meta = with lib; {
     description = "NATS Command Line Interface";
     homepage = "https://github.com/nats-io/natscli";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "nats";
   };
 }
diff --git a/pkgs/tools/system/nq/default.nix b/pkgs/tools/system/nq/default.nix
index 239ac1368ad68..133ce941faa5c 100644
--- a/pkgs/tools/system/nq/default.nix
+++ b/pkgs/tools/system/nq/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "nq";
-  version = "0.4";
+  version = "0.5";
   src = fetchFromGitHub {
     owner = "chneukirchen";
     repo = "nq";
     rev = "v${version}";
-    sha256 = "sha256-UfCeHwOD+tG6X2obW64DYZr6j90yh1Yl7My4ur+sqmk=";
+    sha256 = "sha256-g14t2Wy2GwiqnfEDiLAPGehzUgK6mLC+5PAZynez62s=";
   };
   makeFlags = [ "PREFIX=$(out)" ];
   postPatch = ''
diff --git a/pkgs/tools/system/nvtop/default.nix b/pkgs/tools/system/nvtop/default.nix
index d310c1a7e8f1e..b25897b69267d 100644
--- a/pkgs/tools/system/nvtop/default.nix
+++ b/pkgs/tools/system/nvtop/default.nix
@@ -1,34 +1,62 @@
-{ lib, stdenv, fetchFromGitHub, cmake, cudatoolkit, ncurses, addOpenGLRunpath }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, cudatoolkit
+, libdrm
+, ncurses
+, addOpenGLRunpath
+, amd ? true
+, nvidia ? true
+}:
 
+let
+  pname-suffix = if amd && nvidia then "" else if amd then "-amd" else "-nvidia";
+  nvidia-postFixup = "addOpenGLRunpath $out/bin/nvtop";
+  libPath = lib.makeLibraryPath [ libdrm ncurses ];
+  amd-postFixup = ''
+    patchelf \
+      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath "${libPath}" \
+      $out/bin/nvtop
+  '';
+in
 stdenv.mkDerivation rec {
-  pname = "nvtop";
-  version = "1.2.2";
+  pname = "nvtop" + pname-suffix;
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "Syllo";
     repo = "nvtop";
     rev = version;
-    sha256 = "sha256-B/SRTOMp3VYShjSGxnF1ll58ijddJG7w/7nPK1fMltk=";
+    sha256 = "sha256-4Alc5pBXb38PUhTRhdKZMiW+P3daDB0q3jiVL8qqEe4=";
   };
 
-  cmakeFlags = [
-    "-DNVML_INCLUDE_DIRS=${cudatoolkit}/include"
-    "-DNVML_LIBRARIES=${cudatoolkit}/targets/x86_64-linux/lib/stubs/libnvidia-ml.so"
+  cmakeFlags = with lib; [
     "-DCMAKE_BUILD_TYPE=Release"
-  ];
-
-  nativeBuildInputs = [ cmake addOpenGLRunpath ];
-  buildInputs = [ ncurses cudatoolkit ];
+  ] ++ optional nvidia "-DNVML_INCLUDE_DIRS=${cudatoolkit}/include"
+  ++ optional nvidia "-DNVML_LIBRARIES=${cudatoolkit}/targets/x86_64-linux/lib/stubs/libnvidia-ml.so"
+  ++ optional (!amd) "-DAMDGPU_SUPPORT=OFF"
+  ++ optional (!nvidia) "-DNVIDIA_SUPPORT=OFF"
+  ++ optional amd "-DLibdrm_INCLUDE_DIRS=${libdrm}/lib/stubs/libdrm.so.2"
+  ;
+  nativeBuildInputs = [ cmake] ++ lib.optional nvidia addOpenGLRunpath;
+  buildInputs = with lib; [ ncurses ]
+    ++ optional nvidia cudatoolkit
+    ++ optional amd libdrm
+  ;
 
-  postFixup = ''
-    addOpenGLRunpath $out/bin/nvtop
-  '';
+  # ordering of fixups is important
+  postFixup = (lib.optionalString amd amd-postFixup) + (lib.optionalString nvidia nvidia-postFixup);
 
   meta = with lib; {
-    description = "A (h)top like task monitor for NVIDIA GPUs";
+    description = "A (h)top like task monitor for AMD and NVIDIA GPUs";
+    longDescription = ''
+      Nvtop stands for Neat Videocard TOP, a (h)top like task monitor for AMD and NVIDIA GPUs. It can handle multiple GPUs and print information about them in a htop familiar way.
+  '';
     homepage = "https://github.com/Syllo/nvtop";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ willibutz ];
+    maintainers = with maintainers; [ willibutz gbtb ];
   };
 }
diff --git a/pkgs/tools/system/plan9port/default.nix b/pkgs/tools/system/plan9port/default.nix
index d6c8833618cda..f165bfca42527 100644
--- a/pkgs/tools/system/plan9port/default.nix
+++ b/pkgs/tools/system/plan9port/default.nix
@@ -101,6 +101,7 @@ stdenv.mkDerivation {
       ftrvxmtrx
       kovirobi
     ];
+    mainProgram = "9";
     platforms = platforms.unix;
     # TODO: revisit this when the sdk situation on x86_64-darwin changes
     broken = stdenv.isDarwin && stdenv.isx86_64;
diff --git a/pkgs/tools/system/s-tui/default.nix b/pkgs/tools/system/s-tui/default.nix
index 3943a8f4eef86..5c759eea8a12d 100644
--- a/pkgs/tools/system/s-tui/default.nix
+++ b/pkgs/tools/system/s-tui/default.nix
@@ -1,12 +1,18 @@
-{ lib, python3Packages }:
+{ lib
+, stdenv
+, python3Packages
+, nix-update-script
+, s-tui
+, testers
+}:
 
 python3Packages.buildPythonPackage rec {
   pname = "s-tui";
-  version = "1.0.1";
+  version = "1.1.3";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "1gqrb2xxii43j7kszy7kvv4f6hr8ac4p0m9q8i1xs5fhsqcx186i";
+    sha256 = "sha256-t3h8d0yc7i3UvO8CVfBd3/3h3RfGN6yE6hutymOZUdA=";
   };
 
   propagatedBuildInputs = with python3Packages; [
@@ -14,12 +20,16 @@ python3Packages.buildPythonPackage rec {
     psutil
   ];
 
-  LC_ALL = "en_US.UTF-8";
+  passthru = {
+    updateScript = nix-update-script { attrPath = pname; };
+    tests = testers.testVersion { package = s-tui; };
+  };
 
   meta = with lib; {
     homepage = "https://amanusk.github.io/s-tui/";
     description = "Stress-Terminal UI monitoring tool";
     license = licenses.gpl2;
     maintainers = with maintainers; [ infinisil ];
+    broken = stdenv.isDarwin; # https://github.com/amanusk/s-tui/issues/49
   };
 }
diff --git a/pkgs/tools/system/skeema/default.nix b/pkgs/tools/system/skeema/default.nix
index 0b6bf003e5b01..bf1bacede8d07 100644
--- a/pkgs/tools/system/skeema/default.nix
+++ b/pkgs/tools/system/skeema/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "skeema";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "skeema";
     repo = "skeema";
     rev = "v${version}";
-    sha256 = "1a75vixrpidim641809nj931r73zvbj2rsls7d80z7w87maav51m";
+    sha256 = "sha256-DHdc6Le4WhL5QC/hqtbtq7rdBdLiRflDNnXQY2l2aJ8=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/tools/system/tre-command/default.nix b/pkgs/tools/system/tre-command/default.nix
index 85b4f9fe2acf6..8e8d5c1205164 100644
--- a/pkgs/tools/system/tre-command/default.nix
+++ b/pkgs/tools/system/tre-command/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dduan/tre";
     license = licenses.mit;
     maintainers = [ maintainers.dduan ];
+    mainProgram = "tre";
   };
 }
diff --git a/pkgs/tools/system/zenith/default.nix b/pkgs/tools/system/zenith/default.nix
index 3705c9cad90ca..57d0f548f00e6 100644
--- a/pkgs/tools/system/zenith/default.nix
+++ b/pkgs/tools/system/zenith/default.nix
@@ -5,26 +5,29 @@
 , IOKit
 , nvidiaSupport ? false
 , makeWrapper
+, llvmPackages
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "zenith";
-  version = "0.12.0";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "bvaisvil";
     repo = pname;
     rev = version;
-    sha256 = "1bn364rmp0q86rd7vgv4n7x09cdf9m4njcaq92jnk85ni6h147ax";
+    sha256 = "sha256-N/DvPVYGM/DjTvKvOlR60q6rvNyfAQlnvFnFG5nbUmQ=";
   };
 
-  cargoSha256 = "0c2mk2bcz4qjyqmf11yqhnhy4pqxr77b3c1gvr5jfmjshx4ff7v2";
+  cargoSha256 = "sha256-Y/vvRJpv82Uc+Bu3lbZxRsu4TL6sAjz5AWHAHkwh98Y=";
 
-  nativeBuildInputs = lib.optional nvidiaSupport makeWrapper;
-  buildInputs = lib.optionals stdenv.isDarwin [ IOKit ];
+  nativeBuildInputs = [ llvmPackages.clang ] ++ lib.optional nvidiaSupport makeWrapper;
+  buildInputs = [ llvmPackages.libclang ] ++ lib.optionals stdenv.isDarwin [ IOKit ];
 
   buildFeatures = lib.optional nvidiaSupport "nvidia";
 
+  LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
+
   postInstall = lib.optionalString nvidiaSupport ''
     wrapProgram $out/bin/zenith \
       --suffix LD_LIBRARY_PATH : "/run/opengl-driver/lib"
diff --git a/pkgs/tools/text/angle-grinder/default.nix b/pkgs/tools/text/angle-grinder/default.nix
index a2303c10a6395..987b61da9f0a0 100644
--- a/pkgs/tools/text/angle-grinder/default.nix
+++ b/pkgs/tools/text/angle-grinder/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rcoh/angle-grinder";
     license = licenses.mit;
     maintainers = with maintainers; [ bbigras ];
+    mainProgram = "agrind";
   };
 }
diff --git a/pkgs/tools/text/asciigraph/default.nix b/pkgs/tools/text/asciigraph/default.nix
index 5cfa00d5326f3..221f7c3d55281 100644
--- a/pkgs/tools/text/asciigraph/default.nix
+++ b/pkgs/tools/text/asciigraph/default.nix
@@ -1,11 +1,9 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "asciigraph";
   version = "0.5.3";
 
-  goPackagePath = "github.com/guptarohit/asciigraph";
-
   src = fetchFromGitHub {
     owner = "guptarohit";
     repo = pname;
@@ -13,10 +11,14 @@ buildGoPackage rec {
     sha256 = "sha256-GzFJT4LI1QZzghs9g2A+pqkTg68XC+m9F14rYpMxEXM=";
   };
 
+  vendorSha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
+
+  ldflags = [ "-s" "-w" ];
+
   meta = with lib; {
     homepage = "https://github.com/guptarohit/asciigraph";
     description = "Lightweight ASCII line graph ╭┈╯ command line app";
     license = licenses.bsd3;
-    maintainers = [ maintainers.mmahut ];
+    maintainers = with maintainers; [ mmahut ];
   };
 }
diff --git a/pkgs/tools/text/crowdin-cli/default.nix b/pkgs/tools/text/crowdin-cli/default.nix
index e73b58d4e6ba2..6111a6f1c8bd6 100644
--- a/pkgs/tools/text/crowdin-cli/default.nix
+++ b/pkgs/tools/text/crowdin-cli/default.nix
@@ -8,7 +8,7 @@
 , jre
 , makeWrapper
 , crowdin-cli
-, testVersion
+, testers
 , unzip
 }:
 
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  passthru.tests.version = testVersion { package = crowdin-cli; };
+  passthru.tests.version = testers.testVersion { package = crowdin-cli; };
 
   meta = with lib; {
     mainProgram = "crowdin";
diff --git a/pkgs/tools/text/difftastic/default.nix b/pkgs/tools/text/difftastic/default.nix
index 17c1a33d8c897..1c1d6fc6bfa0b 100644
--- a/pkgs/tools/text/difftastic/default.nix
+++ b/pkgs/tools/text/difftastic/default.nix
@@ -1,17 +1,19 @@
-{ lib, fetchFromGitHub, rustPlatform, tree-sitter }:
+{ lib, fetchFromGitHub, rustPlatform, tree-sitter, difftastic, testers }:
 
 rustPlatform.buildRustPackage rec {
   pname = "difftastic";
-  version = "0.25.0";
+  version = "0.27.0";
 
   src = fetchFromGitHub {
     owner = "wilfred";
     repo = pname;
     rev = version;
-    sha256 = "sha256-TJMMy1fMwqUMVhztMOlN4yQhW5IF36yahOhDTJ9kadA=";
+    sha256 = "sha256-jdkyDsuOOG1dJmgRmMp2KhY9ermccjrxK2JAIzpO6nw=";
   };
 
-  cargoSha256 = "sha256-crH2SodT+Wy3auk3uli253rIrHyKsibQcYGtpxwbJJQ=";
+  cargoSha256 = "sha256-qHG3ve8HoMWBS/x6mRbXMsrpcqNqfVcbAkfYOk7Su/0=";
+
+  passthru.tests.version = testers.testVersion { package = difftastic; };
 
   meta = with lib; {
     description = "A syntax-aware diff";
diff --git a/pkgs/tools/text/goawk/default.nix b/pkgs/tools/text/goawk/default.nix
index b665c1823329a..19c8e516e969e 100644
--- a/pkgs/tools/text/goawk/default.nix
+++ b/pkgs/tools/text/goawk/default.nix
@@ -1,4 +1,5 @@
-{ buildGoModule, fetchFromGitHub, lib }:
+{ buildGoModule, fetchFromGitHub, lib, stdenv }:
+
 buildGoModule rec {
   pname = "goawk";
   version = "1.16.0";
@@ -12,8 +13,18 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
 
-  # checks do not pass at the moment
-  doCheck = false;
+  postPatch = ''
+    substituteInPlace goawk_test.go \
+      --replace "TestCommandLine" "SkipCommandLine" \
+      --replace "TestDevStdout" "SkipDevStdout" \
+      --replace "TestFILENAME" "SkipFILENAME" \
+      --replace "TestWildcards" "SkipWildcards"
+
+    substituteInPlace interp/interp_test.go \
+      --replace "TestShellCommand" "SkipShellCommand"
+  '';
+
+  doCheck = (stdenv.system != "aarch64-darwin");
 
   meta = with lib; {
     description = "A POSIX-compliant AWK interpreter written in Go";
diff --git a/pkgs/tools/text/highlight/default.nix b/pkgs/tools/text/highlight/default.nix
index 57c607e69c6b0..edca9c1b7892e 100644
--- a/pkgs/tools/text/highlight/default.nix
+++ b/pkgs/tools/text/highlight/default.nix
@@ -3,13 +3,13 @@
 let
   self = stdenv.mkDerivation rec {
     pname = "highlight";
-    version = "4.1";
+    version = "4.2";
 
     src = fetchFromGitLab {
       owner = "saalen";
       repo = "highlight";
       rev = "v${version}";
-      sha256 = "sha256-KktwbnL13Tcc2iWAjgqQSMSenUN6nYBEGbFrpB1kkr0=";
+      sha256 = "sha256-KkLN8b2sJhDbYVfNANEg1prPfIySoL9N48PSQyXqE8I=";
     };
 
     enableParallelBuilding = true;
diff --git a/pkgs/tools/text/html-tidy/default.nix b/pkgs/tools/text/html-tidy/default.nix
index d4bb26a0a7777..9694295ed1fa3 100644
--- a/pkgs/tools/text/html-tidy/default.nix
+++ b/pkgs/tools/text/html-tidy/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     homepage = "http://html-tidy.org";
     platforms = platforms.all;
     maintainers = with maintainers; [ edwtjo ];
+    mainProgram = "tidy";
   };
 }
diff --git a/pkgs/tools/text/igrep/default.nix b/pkgs/tools/text/igrep/default.nix
index b7fc915c44d70..bb93574f1ffbf 100644
--- a/pkgs/tools/text/igrep/default.nix
+++ b/pkgs/tools/text/igrep/default.nix
@@ -3,27 +3,27 @@
 , fetchFromGitHub
 , stdenv
 , Security
-, testVersion
+, testers
 , igrep
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "igrep";
-  version = "0.2.0";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "konradsz";
     repo = "igrep";
     rev = "v${version}";
-    sha256 = "sha256-CH0wf9EhNnfi93W/4IJf6bPqU4pgw6Q9965Wjln9pso=";
+    sha256 = "sha256-mJtxqwbqofiDuiGokn24qdnck27w7w/3A5mdqZIU88U=";
   };
 
-  cargoSha256 = "sha256-VnZuRLBt/Q+D89+jKm0rak+ID5oNbvN1k8or3pYzfIM=";
+  cargoSha256 = "sha256-ikU4SRLu7PQGbidPmf2W39e3sE8QY8YMU6Q0eWhgvLM=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
   passthru.tests = {
-    version = testVersion { package = igrep; command = "ig --version"; };
+    version = testers.testVersion { package = igrep; command = "ig --version"; };
   };
 
   meta = with lib; {
@@ -32,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/konradsz/igrep/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ _0x4A6F ];
+    mainProgram = "ig";
   };
 }
diff --git a/pkgs/tools/text/jumanpp/0001-Exclude-all-tests-from-the-build.patch b/pkgs/tools/text/jumanpp/0001-Exclude-all-tests-from-the-build.patch
new file mode 100644
index 0000000000000..d41bada82def8
--- /dev/null
+++ b/pkgs/tools/text/jumanpp/0001-Exclude-all-tests-from-the-build.patch
@@ -0,0 +1,177 @@
+From c52a5046e19718a43d48c9b3cfdc121d964e8c3b Mon Sep 17 00:00:00 2001
+From: Maximilian Bosch <maximilian@mbosch.me>
+Date: Fri, 28 Jan 2022 17:43:35 +0100
+Subject: [PATCH] Exclude all tests from the build
+
+For some reason it isn't sufficient to set `-DJPP_ENABLE_TESTS=OFF`.
+Doing that because the tests on 2.0.0-rc3 don't seem to be working and
+the vendored catch2 doesn't build with glibc 2.34.
+---
+ src/CMakeLists.txt               |  3 +--
+ src/core/CMakeLists.txt          | 11 +----------
+ src/core/analysis/CMakeLists.txt |  2 --
+ src/core/codegen/CMakeLists.txt  |  3 ---
+ src/core/spec/CMakeLists.txt     |  2 --
+ src/core/training/CMakeLists.txt |  2 --
+ src/jumandic/CMakeLists.txt      |  8 +-------
+ src/rnn/CMakeLists.txt           |  5 +----
+ src/util/CMakeLists.txt          |  2 --
+ 9 files changed, 4 insertions(+), 34 deletions(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 169dff5..64b6a07 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -67,7 +67,6 @@ function(jpp_feature_codegen)
+ endfunction(jpp_feature_codegen)
+ 
+ add_subdirectory(util)
+-add_subdirectory(testing)
+ add_subdirectory(core)
+ add_subdirectory(jumandic)
+-add_subdirectory(rnn)
+\ No newline at end of file
++add_subdirectory(rnn)
+diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
+index c63d134..01c825e 100644
+--- a/src/core/CMakeLists.txt
++++ b/src/core/CMakeLists.txt
+@@ -55,20 +55,11 @@ set(core_hdrs
+   ${core_hdrs}
+   )
+ 
+-set(core_test_srcs
+-  ${core_test_srcs}
+-  ${core_tsrcs}
+-  test/test_analyzer_env.h
+-  ../testing/test_analyzer.h
+-  )
+-
+ add_library(jpp_core ${core_srcs} ${core_hdrs} ${libs3p_pegtl_headers})
+-jpp_test_executable(jpp_core_tests ${core_test_srcs})
+ 
+ target_include_directories(jpp_core PUBLIC ${jpp_core_cfg_dir})
+ 
+ target_link_libraries(jpp_core PUBLIC jpp_util jpp_rnn PRIVATE pathie)
+-target_link_libraries(jpp_core_tests jpp_core jpp_core_train)
+ 
+ if (${JPP_USE_PROTOBUF})
+   target_include_directories(jpp_core PUBLIC ${Protobuf_INCLUDE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+@@ -78,4 +69,4 @@ endif()
+ add_subdirectory(benchmarks)
+ if (${JPP_ENABLE_DEV_TOOLS})
+   add_subdirectory(devtools)
+-endif ()
+\ No newline at end of file
++endif ()
+diff --git a/src/core/analysis/CMakeLists.txt b/src/core/analysis/CMakeLists.txt
+index 526263e..1b32f8d 100644
+--- a/src/core/analysis/CMakeLists.txt
++++ b/src/core/analysis/CMakeLists.txt
+@@ -79,5 +79,3 @@ jpp_core_files(core_hdrs
+   )
+ 
+ 
+-jpp_test_executable(jpp_core_analysis_tests ${core_analysis_tsrc})
+-target_link_libraries(jpp_core_analysis_tests jpp_core)
+diff --git a/src/core/codegen/CMakeLists.txt b/src/core/codegen/CMakeLists.txt
+index a905cee..fa759c7 100644
+--- a/src/core/codegen/CMakeLists.txt
++++ b/src/core/codegen/CMakeLists.txt
+@@ -30,7 +30,4 @@ set(jpp_codegen_tsrcs
+ 
+ add_library(jpp_core_codegen ${jpp_codegen_srcs} ${jpp_codegen_hdrs})
+ 
+-jpp_test_executable(jpp_codegen_tests ${jpp_codegen_tsrcs})
+-target_include_directories(jpp_codegen_tests PRIVATE ${cgtest02_INCLUDE})
+ target_link_libraries(jpp_core_codegen jpp_core)
+-target_link_libraries(jpp_codegen_tests jpp_core_codegen)
+\ No newline at end of file
+diff --git a/src/core/spec/CMakeLists.txt b/src/core/spec/CMakeLists.txt
+index f495d67..da827b9 100644
+--- a/src/core/spec/CMakeLists.txt
++++ b/src/core/spec/CMakeLists.txt
+@@ -33,5 +33,3 @@ jpp_core_files(core_hdrs
+ 
+   )
+ 
+-jpp_test_executable(jpp_core_spec_tests ${core_spec_tsrc} ${libs3p_pegtl_headers})
+-target_link_libraries(jpp_core_spec_tests jpp_core)
+\ No newline at end of file
+diff --git a/src/core/training/CMakeLists.txt b/src/core/training/CMakeLists.txt
+index 960437e..4ede9e1 100644
+--- a/src/core/training/CMakeLists.txt
++++ b/src/core/training/CMakeLists.txt
+@@ -39,7 +39,5 @@ set(core_train_hdrs
+ 
+ 
+ add_library(jpp_core_train ${core_train_src} ${core_train_hdrs})
+-jpp_test_executable(jpp_core_train_tests ${core_train_tsrc})
+ 
+ target_link_libraries(jpp_core_train jpp_core)
+-target_link_libraries(jpp_core_train_tests jpp_core_train)
+\ No newline at end of file
+diff --git a/src/jumandic/CMakeLists.txt b/src/jumandic/CMakeLists.txt
+index bef3149..85a8b5d 100644
+--- a/src/jumandic/CMakeLists.txt
++++ b/src/jumandic/CMakeLists.txt
+@@ -53,10 +53,6 @@ if (${JPP_USE_PROTOBUF})
+ endif ()
+ 
+ 
+-jpp_test_executable(jpp_jumandic_tests ${jumandic_tests})
+-jpp_test_executable(jpp_bug_tests ${bug_test_sources})
+-target_include_directories(jpp_jumandic_tests PRIVATE ${jpp_jumandic_cg_INCLUDE})
+-
+ add_executable(jpp_jumandic_bootstrap main/bootstrap.cc)
+ add_executable(jumanpp_v2 main/jumanpp.cc)
+ add_executable(jumanpp_v2_train main/jumanpp_train.cc main/jumanpp_train.h)
+@@ -64,11 +60,9 @@ add_executable(jpp_jumandic_pathdiff main/path_diff.cc)
+ target_include_directories(jpp_jumandic_pathdiff PRIVATE ${jpp_jumandic_cg_INCLUDE})
+ 
+ target_link_libraries(jpp_jumandic jpp_jumandic_spec)
+-target_link_libraries(jpp_jumandic_tests jpp_jumandic jpp_core_train)
+-target_link_libraries(jpp_bug_tests jpp_jumandic jpp_core_train)
+ target_link_libraries(jpp_jumandic_bootstrap jpp_jumandic)
+ target_link_libraries(jumanpp_v2 jpp_jumandic)
+ target_link_libraries(jumanpp_v2_train jpp_jumandic jpp_core_train)
+ target_link_libraries(jpp_jumandic_pathdiff jpp_jumandic)
+ 
+-install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/jumanpp_v2 RENAME jumanpp DESTINATION bin)
+\ No newline at end of file
++install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/jumanpp_v2 RENAME jumanpp DESTINATION bin)
+diff --git a/src/rnn/CMakeLists.txt b/src/rnn/CMakeLists.txt
+index 448ba51..ca09a00 100644
+--- a/src/rnn/CMakeLists.txt
++++ b/src/rnn/CMakeLists.txt
+@@ -1,12 +1,9 @@
+ set(jpp_rnn_sources mikolov_rnn.cc)
+ set(jpp_rnn_includes mikolov_rnn.h simple_rnn_impl.h mikolov_rnn_impl.h rnn_arg_parse.h)
+-set(jpp_rnn_tests mikolov_rnn_test.cc)
+ 
+ add_library(jpp_rnn ${jpp_rnn_sources} ${jpp_rnn_includes} )
+ add_library(jumanpp_rnn_legacy legacy/rnnlmlib.h legacy/rnnlmlib_static.h legacy/rnnlmlib_static.cpp)
+ 
+-jpp_test_executable(jpp_rnn_tests ${jpp_rnn_tests})
+ target_link_libraries(jpp_rnn jpp_util)
+-target_link_libraries(jpp_rnn_tests jpp_rnn jumanpp_rnn_legacy)
+ 
+-target_link_libraries(jumanpp_rnn_legacy jpp_util)
+\ No newline at end of file
++target_link_libraries(jumanpp_rnn_legacy jpp_util)
+diff --git a/src/util/CMakeLists.txt b/src/util/CMakeLists.txt
+index 53b6c57..c4599d5 100644
+--- a/src/util/CMakeLists.txt
++++ b/src/util/CMakeLists.txt
+@@ -25,8 +25,6 @@ endif()
+ 
+ 
+ add_library(jpp_util ${jpp_util_sources} ${jpp_util_headers} ${BACKWARD_headers})
+-jpp_test_executable(jpp_util_test ${jpp_util_test_srcs} ${jpp_util_headers})
+-target_link_libraries(jpp_util_test jpp_util)
+ target_link_libraries(jpp_util ${CMAKE_THREAD_LIBS_INIT})
+ target_include_directories(jpp_util PUBLIC ${JPP_LIBS_DIR} ${JPP_SRC_DIR})
+ target_compile_features(jpp_util PUBLIC
+-- 
+2.33.1
+
diff --git a/pkgs/tools/text/jumanpp/default.nix b/pkgs/tools/text/jumanpp/default.nix
index 5fb5ec88d6793..5bea259bccafc 100644
--- a/pkgs/tools/text/jumanpp/default.nix
+++ b/pkgs/tools/text/jumanpp/default.nix
@@ -9,6 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-ASdr6qbkSe71M7QmuuwidCa4xQhDVoXBJ2XqvSY53pQ=";
   };
 
+  patches = [ ./0001-Exclude-all-tests-from-the-build.patch ];
+  cmakeFlags = [ "-DJPP_ENABLE_TESTS=OFF" ];
+
   nativeBuildInputs = [ cmake ];
   buildInputs = [ protobuf ]
     ++ lib.optional stdenv.isDarwin libiconv;
diff --git a/pkgs/tools/text/languagetool/default.nix b/pkgs/tools/text/languagetool/default.nix
index 96dc84e94dbe5..cae8fd201906b 100644
--- a/pkgs/tools/text/languagetool/default.nix
+++ b/pkgs/tools/text/languagetool/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "LanguageTool";
-  version = "5.6";
+  version = "5.7";
 
   src = fetchzip {
     url = "https://www.languagetool.org/download/${pname}-${version}.zip";
-    sha256 = "sha256-HsRAu8exGXCGF0P7wZaDtuAKRDmNjMF9P2hFliZ1RXo=";
+    sha256 = "sha256-UR8OodT2H+YKmal+9kYsiwqM0dZhUHaUGEWZMzT+3dA=";
   };
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ jre ];
diff --git a/pkgs/tools/text/mdbook-linkcheck/default.nix b/pkgs/tools/text/mdbook-linkcheck/default.nix
index b37b16876b0f1..eaccd05eb9c44 100644
--- a/pkgs/tools/text/mdbook-linkcheck/default.nix
+++ b/pkgs/tools/text/mdbook-linkcheck/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, Security
-, testVersion, mdbook-linkcheck }:
+, testers, mdbook-linkcheck }:
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-linkcheck";
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage rec {
 
   doCheck = false; # tries to access network to test broken web link functionality
 
-  passthru.tests.version = testVersion { package = mdbook-linkcheck; };
+  passthru.tests.version = testers.testVersion { package = mdbook-linkcheck; };
 
   meta = with lib; {
     description = "A backend for `mdbook` which will check your links for you.";
diff --git a/pkgs/tools/text/mdbook/default.nix b/pkgs/tools/text/mdbook/default.nix
index 3ca4d0d8a5597..075dd1b2b5879 100644
--- a/pkgs/tools/text/mdbook/default.nix
+++ b/pkgs/tools/text/mdbook/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook";
-  version = "0.4.15";
+  version = "0.4.17";
 
   src = fetchFromGitHub {
     owner = "rust-lang";
     repo = "mdBook";
     rev = "v${version}";
-    sha256 = "sha256-FYuai7YeqrnL5XgOV/EvxIRAu3TkeKJvKiDxnx94PJ8=";
+    sha256 = "sha256-08ccRiOBXYqueKfyi/Ry39O2xOXUKishgqhn6RdbvUE=";
   };
 
-  cargoSha256 = "sha256-YWifpXrk+T8C3fGlURDKYWw7mD1TUjJbFHTlK84Tgpc=";
+  cargoSha256 = "sha256-vXUjKpCGlHlBvXLtmGkFtHRxxZakiEzuNzReFGEl6dw=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
diff --git a/pkgs/tools/text/miller/default.nix b/pkgs/tools/text/miller/default.nix
index 932b670c74942..b524fd0484fd2 100644
--- a/pkgs/tools/text/miller/default.nix
+++ b/pkgs/tools/text/miller/default.nix
@@ -26,6 +26,7 @@ buildGoModule rec {
     homepage    = "https://github.com/johnkerl/miller";
     license     = licenses.bsd2;
     maintainers = with maintainers; [ mstarzyk ];
+    mainProgram = "mlr";
     platforms   = platforms.all;
   };
 }
diff --git a/pkgs/tools/text/runiq/default.nix b/pkgs/tools/text/runiq/default.nix
index 6d7bb5e7eb0b2..7b1e99978a450 100644
--- a/pkgs/tools/text/runiq/default.nix
+++ b/pkgs/tools/text/runiq/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "runiq";
-  version = "1.2.1";
+  version = "1.2.2";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "0xhd1z8mykxg9kiq8nw5agy1jxfk414czq62xm1s13ssig3h7jqj";
+    sha256 = "sha256-WPQgTQICZ0DFr+7D99UGMx+I78376IC6iIJ3tCsj0Js=";
   };
 
-  cargoSha256 = "1g4yfz5xq9lqwh0ggyn8kn8bnzrqfmh7kx455md5ranrqqh0x5db";
+  cargoSha256 = "sha256-QKtrd690eoPXyd5CQg5/yAiTDk297y60XaUdoeFAe0c=";
 
   meta = with lib; {
     description = "An efficient way to filter duplicate lines from input, à la uniq";
diff --git a/pkgs/tools/text/ugrep/default.nix b/pkgs/tools/text/ugrep/default.nix
index 7a921bdd11f57..f3e3d00aeee4c 100644
--- a/pkgs/tools/text/ugrep/default.nix
+++ b/pkgs/tools/text/ugrep/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ugrep";
-  version = "3.7.6";
+  version = "3.7.9";
 
   src = fetchFromGitHub {
     owner = "Genivia";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fOp+nf/xZKOw8CDI1RSl/DQH52ay/M/aeSMf6MdfKmQ=";
+    sha256 = "sha256-ZY3pihHU5FLu41vKrM/U06iZZ6D/LSuoyy2gHJJqRFY=";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/typesetting/fop/default.nix b/pkgs/tools/typesetting/fop/default.nix
index 1c5e7b0079df3..f1bec5a240a1e 100644
--- a/pkgs/tools/typesetting/fop/default.nix
+++ b/pkgs/tools/typesetting/fop/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fop";
-  version = "2.6";
+  version = "2.7";
 
   src = fetchurl {
     url = "mirror://apache/xmlgraphics/fop/source/${pname}-${version}-src.tar.gz";
-    sha256 = "145qph3c0m4bmb342qxq1hwsg594lndmfs9ga1v7pk53s34sckq8";
+    sha256 = "sha256-tPGlISmJzrx9F8cnX70j3nPMVyWdkojAFDZVYlSthtQ=";
   };
 
   buildInputs = [ ant jdk ];
diff --git a/pkgs/tools/typesetting/mmark/default.nix b/pkgs/tools/typesetting/mmark/default.nix
index bc5ddcc9d751f..85f4bfad11874 100644
--- a/pkgs/tools/typesetting/mmark/default.nix
+++ b/pkgs/tools/typesetting/mmark/default.nix
@@ -1,24 +1,27 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, testers, mmark }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "mmark";
-  version = "1.3.6";
-  rev = "v${version}";
-
-  goPackagePath = "github.com/miekg/mmark";
+  version = "2.2.25";
 
   src = fetchFromGitHub {
-    inherit rev;
-    owner = "miekg";
+    owner = "mmarkdown";
     repo = "mmark";
-    sha256 = "0q2zrwa2vwk7a0zhmi000zpqrc01zssrj9c5n3573rg68fksg77m";
+    rev = "v${version}";
+    sha256 = "sha256-9XjNTbsB4kh7YpjUnTzSXypw9r4ZyR7GALTrYebRKAg=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-uHphMy9OVnLD6IBqfMTyRlDyyTabzZC4Vn0628P+0F4=";
+
+  ldflags = [ "-s" "-w" ];
+
+  passthru.tests.version = testers.testVersion {
+    package = mmark;
+  };
 
   meta = {
     description = "A powerful markdown processor in Go geared towards the IETF";
-    homepage = "https://github.com/miekg/mmark";
+    homepage = "https://github.com/mmarkdown/mmark";
     license = with lib.licenses; bsd2;
     maintainers = with lib.maintainers; [ yrashk ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/tools/typesetting/mmark/deps.nix b/pkgs/tools/typesetting/mmark/deps.nix
deleted file mode 100644
index 47f964c6a4776..0000000000000
--- a/pkgs/tools/typesetting/mmark/deps.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
-[
-  {
-    goPackagePath = "github.com/BurntSushi/toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/toml";
-      rev = "a368813c5e648fee92e5f6c30e3944ff9d5e8895";
-      sha256 = "1sjxs2lwc8jpln80s4rlzp7nprbcljhy5mz4rf9995gq93wqnym5";
-    };
-  }
-]
diff --git a/pkgs/tools/typesetting/odpdown/default.nix b/pkgs/tools/typesetting/odpdown/default.nix
deleted file mode 100644
index 27053e36ffa1e..0000000000000
--- a/pkgs/tools/typesetting/odpdown/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ lib, fetchFromGitHub, python2Packages, libreoffice }:
-
-python2Packages.buildPythonApplication rec {
-
-  pname = "odpdown";
-  version = "0.4.1";
-
-  src = fetchFromGitHub {
-    owner = "thorstenb";
-    repo = "odpdown";
-    rev = "v${version}";
-    sha256 = "r2qbgD9PAalbypt+vjp2YcYggUGPQMEG2FDxMtohqG4=";
-  };
-
-  propagatedBuildInputs = with python2Packages; [ libreoffice lpod lxml mistune pillow pygments ];
-
-  checkInputs = with python2Packages; [
-    nose
-  ];
-
-  meta = with lib; {
-    homepage = "https://github.com/thorstenb/odpdown";
-    description = "Create nice-looking slides from your favourite text editor";
-    longDescription = ''
-      Have a tool like pandoc, latex beamer etc, that you can write (or
-      auto-generate) input for within your favourite hacker's editor, and
-      generate nice-looking slides from. Using your corporation's mandatory,
-      CI-compliant and lovely-artsy Impress template. Including
-      syntax-highlighted code snippets of your latest hack, auto-fitted into the
-      slides.
-    '';
-    license = licenses.bsd3;
-    platforms = with platforms; linux ++ darwin;
-    maintainers = with maintainers; [ vandenoever ];
-  };
-}
diff --git a/pkgs/tools/typesetting/pdf2odt/default.nix b/pkgs/tools/typesetting/pdf2odt/default.nix
index f1568de60ebba..e0063d2f72e84 100644
--- a/pkgs/tools/typesetting/pdf2odt/default.nix
+++ b/pkgs/tools/typesetting/pdf2odt/default.nix
@@ -1,5 +1,5 @@
 { lib
-, resholvePackage
+, resholve
 , fetchFromGitHub
 , bc
 , coreutils
@@ -13,7 +13,7 @@
 , findutils
 }:
 
-resholvePackage rec {
+resholve.mkDerivation rec {
   pname = "pdf2odt";
   version = "20170207";
 
diff --git a/pkgs/tools/typesetting/satysfi/default.nix b/pkgs/tools/typesetting/satysfi/default.nix
index d18c7fc270e3d..89d2724eaad61 100644
--- a/pkgs/tools/typesetting/satysfi/default.nix
+++ b/pkgs/tools/typesetting/satysfi/default.nix
@@ -35,12 +35,12 @@ let
 in
   stdenv.mkDerivation rec {
     pname = "satysfi";
-    version = "0.0.6";
+    version = "0.0.7";
     src = fetchFromGitHub {
       owner = "gfngfn";
       repo = "SATySFi";
       rev = "v${version}";
-      sha256 = "1wdmcz2b7v37msmsvjvbyj7x5a80qfws8a7w72q0g5959pw5fdxj";
+      sha256 = "sha256-BmnOIplC24JMb0LSgGPh/j01rXvtl0wni3Chb347eR8=";
       fetchSubmodules = true;
     };
 
diff --git a/pkgs/tools/typesetting/sile/default.nix b/pkgs/tools/typesetting/sile/default.nix
index fc391ea8539ab..4bff8ab3ae301 100644
--- a/pkgs/tools/typesetting/sile/default.nix
+++ b/pkgs/tools/typesetting/sile/default.nix
@@ -38,11 +38,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "sile";
-  version = "0.12.4";
+  version = "0.12.5";
 
   src = fetchurl {
     url = "https://github.com/sile-typesetter/sile/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "1n46q7xwawz5nipmyz4gy0njaq5svidi9r54wxry6h95b70ax3r2";
+    sha256 = "0z9wdiqwarysh3lhxss3w53vq58ml46bdi9ymr853kfl7m4gz5yy";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/typesetting/tex/texlive/combine.nix b/pkgs/tools/typesetting/tex/texlive/combine.nix
index d4c9d0cde80bd..8686502a1345f 100644
--- a/pkgs/tools/typesetting/tex/texlive/combine.nix
+++ b/pkgs/tools/typesetting/tex/texlive/combine.nix
@@ -225,7 +225,7 @@ in (buildEnv {
 
     perl `type -P mktexlsr.pl` --sort ./share/texmf
     ${bin.texlinks}/bin/texlinks "$out/bin" && wrapBin
-    perl `type -P fmtutil.pl` --sys --all | grep '^fmtutil' # too verbose
+    FORCE_SOURCE_DATE=1 perl `type -P fmtutil.pl` --sys --all | grep '^fmtutil' # too verbose
     #${bin.texlinks}/bin/texlinks "$out/bin" && wrapBin # do we need to regenerate format links?
 
     # Disable unavailable map files
@@ -233,6 +233,9 @@ in (buildEnv {
     # Regenerate the map files (this is optional)
     perl `type -P updmap.pl` --sys --force
 
+    # sort entries to improve reproducibility
+    [[ -f "$TEXMFSYSCONFIG"/web2c/updmap.cfg ]] && sort -o "$TEXMFSYSCONFIG"/web2c/updmap.cfg "$TEXMFSYSCONFIG"/web2c/updmap.cfg
+
     perl `type -P mktexlsr.pl` --sort ./share/texmf-* # to make sure
   '' +
     # install (wrappers for) scripts, based on a list from upstream texlive
@@ -299,7 +302,12 @@ in (buildEnv {
       )
     fi
   ''
-    + bin.cleanBrokenLinks
+    + bin.cleanBrokenLinks +
+  # Get rid of all log files. They are not needed, but take up space
+  # and render the build unreproducible by their embedded timestamps.
+  ''
+    find $TEXMFSYSVAR/web2c -name '*.log' -delete
+  ''
   ;
 }).overrideAttrs (_: { allowSubstitutes = true; })
 # TODO: make TeX fonts visible by fontconfig: it should be enough to install an appropriate file
diff --git a/pkgs/tools/video/atomicparsley/default.nix b/pkgs/tools/video/atomicparsley/default.nix
index 758fa56db50d7..9e989fcc4750b 100644
--- a/pkgs/tools/video/atomicparsley/default.nix
+++ b/pkgs/tools/video/atomicparsley/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ pjones ];
+    mainProgram = "AtomicParsley";
   };
 }
diff --git a/pkgs/tools/video/harvid/default.nix b/pkgs/tools/video/harvid/default.nix
index 812457f35cbd2..729c26de57ea9 100644
--- a/pkgs/tools/video/harvid/default.nix
+++ b/pkgs/tools/video/harvid/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "harvid";
-  version = "0.8.3";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "x42";
     repo = "harvid";
     rev = "v${version}";
-    sha256 = "0l1plfsfh2ixhlzg3hqqvjj42z7g422718a9kgbh7b4p882n71x7";
+    sha256 = "sha256-qt6aep7iMF8/lnlT2wLqu6LkFDqzdfsGLZvrOlXttG8=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/video/svt-av1/default.nix b/pkgs/tools/video/svt-av1/default.nix
index 469f76fdc2b25..3c45f2608ebf5 100644
--- a/pkgs/tools/video/svt-av1/default.nix
+++ b/pkgs/tools/video/svt-av1/default.nix
@@ -32,6 +32,6 @@ stdenv.mkDerivation rec {
     ];
     platforms = platforms.unix;
     broken = stdenv.isAarch64; # undefined reference to `cpuinfo_arm_linux_init'
-    maintainers = with maintainers; [ chiiruno ];
+    maintainers = with maintainers; [ Madouura ];
   };
 }
diff --git a/pkgs/tools/video/xjadeo/default.nix b/pkgs/tools/video/xjadeo/default.nix
index bcd6d5601c0fc..53d6c49b7e646 100644
--- a/pkgs/tools/video/xjadeo/default.nix
+++ b/pkgs/tools/video/xjadeo/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xjadeo";
-  version = "0.8.10";
+  version = "0.8.11";
 
   src = fetchFromGitHub {
     owner = "x42";
     repo = "xjadeo";
     rev = "v${version}";
-    sha256 = "0dma4cjgbrpy16x63zvfr0xss4lryl0zw7nvixvhq2f6z8day1ds";
+    sha256 = "sha256-S8eIkmfjwpcILZc+by0Mk4VPRUlbJT0GBe8NlJ1F9EI=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/tools/virtualization/awsebcli/default.nix b/pkgs/tools/virtualization/awsebcli/default.nix
index 8230768e997a9..c431980125a62 100644
--- a/pkgs/tools/virtualization/awsebcli/default.nix
+++ b/pkgs/tools/virtualization/awsebcli/default.nix
@@ -11,22 +11,24 @@ let
     };
   });
 
-  changeVersionHash = overrideFunc: version: hash: overrideFunc (oldAttrs: rec {
-    inherit version;
-    src = oldAttrs.src.override {
-      inherit version hash;
-    };
-  });
-
   localPython = python3.override
     {
       self = localPython;
       packageOverrides = self: super: {
         cement = changeVersion super.cement.overridePythonAttrs "2.8.2" "1li2whjzfhbpg6fjb6r1r92fb3967p1xv6hqs3j787865h2ysrc7";
         botocore = changeVersion super.botocore.overridePythonAttrs "1.23.54" "sha256-S7m6FszO5fWiYCBJvD4ttoZTRrJVBmfzATvfM7CgHOs=";
+        jmespath = changeVersion super.jmespath.overridePythonAttrs "0.10.0" "b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9";
         colorama = changeVersion super.colorama.overridePythonAttrs "0.4.3" "189n8hpijy14jfan4ha9f5n06mnl33cxz7ay92wjqgkr639s0vg9";
         future = changeVersion super.future.overridePythonAttrs "0.16.0" "1nzy1k4m9966sikp0qka7lirh8sqrsyainyf8rk97db7nwdfv773";
-        requests = changeVersionHash super.requests.overridePythonAttrs "2.26.0" "sha256-uKpY+M95P/2HgtPYyxnmbvNverpDU+7IWedGeLAbB6c=";
+        requests = super.requests.overridePythonAttrs (oldAttrs: rec {
+          version = "2.26.0";
+          checkInputs = oldAttrs.checkInputs ++ [ super.trustme ];
+          src = oldAttrs.src.override {
+            inherit version;
+            hash = "sha256-uKpY+M95P/2HgtPYyxnmbvNverpDU+7IWedGeLAbB6c=";
+          };
+        }
+        );
         six = changeVersion super.six.overridePythonAttrs "1.14.0" "02lw67hprv57hyg3cfy02y3ixjk3nzwc0dx3c4ynlvkfwkfdnsr3";
         wcwidth = changeVersion super.wcwidth.overridePythonAttrs "0.1.9" "1wf5ycjx8s066rdvr0fgz4xds9a8zhs91c4jzxvvymm1c8l8cwzf";
         semantic-version = changeVersion super.semantic-version.overridePythonAttrs "2.8.5" "d2cb2de0558762934679b9a104e82eca7af448c9f4974d1f3eeccff651df8a54";
diff --git a/pkgs/tools/virtualization/cloudmonkey/default.nix b/pkgs/tools/virtualization/cloudmonkey/default.nix
index ca1c4caf03b3d..5b857ab1c1ad8 100644
--- a/pkgs/tools/virtualization/cloudmonkey/default.nix
+++ b/pkgs/tools/virtualization/cloudmonkey/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
     homepage = "https://github.com/apache/cloudstack-cloudmonkey";
     license = [ licenses.asl20 ];
     maintainers = [ maintainers.womfoo ];
+    mainProgram = "cloudstack-cloudmonkey";
   };
 
 }
diff --git a/pkgs/tools/virtualization/linode-cli/default.nix b/pkgs/tools/virtualization/linode-cli/default.nix
index 8484762e3896f..c80bec0fbdb44 100644
--- a/pkgs/tools/virtualization/linode-cli/default.nix
+++ b/pkgs/tools/virtualization/linode-cli/default.nix
@@ -13,8 +13,8 @@
 let
   sha256 = "1f0nrdg8hf650qxz79i3a1d2zyf24niyrcnbnhc9i7hzbnqbp5qg";
   # specVersion taken from: https://www.linode.com/docs/api/openapi.yaml at `info.version`.
-  specVersion = "4.119.0";
-  specSha256 = "0q5cqx9w44a85r8h9an4iz4m3s7x3b0nyk188i3hsh3r1wf1nryv";
+  specVersion = "4.119.4";
+  specSha256 = "057qzpy8da0r0av8wmm640mqqhl4qynqxqalkf3ylsa3xnch5c9m";
   spec = fetchurl {
     url = "https://raw.githubusercontent.com/linode/linode-api-docs/v${specVersion}/openapi.yaml";
     sha256 = specSha256;
diff --git a/pkgs/tools/virtualization/marathonctl/default.nix b/pkgs/tools/virtualization/marathonctl/default.nix
index fe31c64952a52..12111819c26bf 100644
--- a/pkgs/tools/virtualization/marathonctl/default.nix
+++ b/pkgs/tools/virtualization/marathonctl/default.nix
@@ -1,20 +1,20 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage {
-  pname = "marathonctl-unstable";
-  version = "2017-03-06";
-
-  goPackagePath = "github.com/shoenig/marathonctl";
-  subPackages = [ "." ];
-  goDeps = ./deps.nix;
+buildGoModule rec {
+  pname = "marathonctl";
+  version = "0.0.7";
 
   src = fetchFromGitHub {
     owner = "shoenig";
     repo = "marathonctl";
-    rev = "0867e66551fff5d81f25959baf914a8ee11a3a8b";
-    sha256 = "1fcc54hwpa8s3kz4gn26mc6nrv6zjrw869331nvm47khi23gpmxw";
+    rev = "v${version}";
+    sha256 = "sha256-MigmvOwYa0uYPexchS4MP74I1Tp6QHYuQVSOh1+FrMg=";
   };
 
+  vendorSha256 = "sha256-Oiol4KuPOyJq2Bfc5div+enX4kQqYn20itmwWBecuIg=";
+
+  ldflags = [ "-s" "-w" ];
+
   meta = with lib; {
     homepage = "https://github.com/shoenig/marathonctl";
     description = "CLI tool for Marathon";
diff --git a/pkgs/tools/virtualization/marathonctl/deps.nix b/pkgs/tools/virtualization/marathonctl/deps.nix
deleted file mode 100644
index 39efaab95358d..0000000000000
--- a/pkgs/tools/virtualization/marathonctl/deps.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-# This file was generated by go2nix.
-[
-  {
-    goPackagePath = "github.com/shoenig/config";
-    fetch = {
-      type = "git";
-      url = "https://github.com/shoenig/config";
-      rev = "7d793e7ad7f175ef22743b1ea38acee8267788db";
-      sha256 = "1dhcv1j5xk30kj73dfnx3xqx8mcvk9r8ywp9khgf2kq6wh9sm1qr";
-    };
-  }
-]
diff --git a/pkgs/tools/virtualization/rootlesskit/default.nix b/pkgs/tools/virtualization/rootlesskit/default.nix
index 61da0d86e33b7..d40eb2e07ae43 100644
--- a/pkgs/tools/virtualization/rootlesskit/default.nix
+++ b/pkgs/tools/virtualization/rootlesskit/default.nix
@@ -1,15 +1,21 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, nix-update-script, nixosTests }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "rootlesskit";
-  version = "0.11.1";
-  goPackagePath = "github.com/rootless-containers/rootlesskit";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "rootless-containers";
     repo = "rootlesskit";
     rev = "v${version}";
-    sha256 = "15k0503077ang9ywvmhpr1l7ax0v3wla0x8n6lqpmd71w0j2zm5r";
+    hash = "sha256-Tml6zTc9l3O8qB+NSKlClWl5lj1rkiDHwI5exxBL83A=";
+  };
+
+  vendorSha256 = "sha256-CpDPa1LAinvXCnVYbn9ZXuEjyHHlDU4bzZ2R+ctoCzQ=";
+
+  passthru = {
+    updateScript = nix-update-script { attrPath = pname; };
+    tests = nixosTests.docker-rootless;
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/wayland/swayr/default.nix b/pkgs/tools/wayland/swayr/default.nix
index b359118321506..b2f9a6cc7e50c 100644
--- a/pkgs/tools/wayland/swayr/default.nix
+++ b/pkgs/tools/wayland/swayr/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "swayr";
-  version = "0.16.0";
+  version = "0.16.1";
 
   src = fetchFromSourcehut {
     owner = "~tsdh";
     repo = "swayr";
     rev = "v${version}";
-    sha256 = "sha256-b35jGbAEQ3w46Oea21xiUODRDD7cixiMuPlc40YxelE=";
+    sha256 = "sha256-c/VHD5VceddhKanuId4rG1Tl+9Bg7zUmIqq4gMsy1e0=";
   };
 
-  cargoSha256 = "sha256-EwK4F+XQWYhZqE4NMrghmVfWJ0znPJdGZLNUq6weoqQ=";
+  cargoSha256 = "sha256-0aGMWuU6DvBr9tvgDd1GZqhlY8bGCuPs8pSc5A03L3w=";
 
   patches = [
     ./icon-paths.patch
diff --git a/pkgs/tools/wayland/swaysome/default.nix b/pkgs/tools/wayland/swaysome/default.nix
new file mode 100644
index 0000000000000..65c0f3af65cd7
--- /dev/null
+++ b/pkgs/tools/wayland/swaysome/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, rustPlatform
+, fetchFromGitLab
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "swaysome";
+  version = "1.1.2";
+
+  src = fetchFromGitLab {
+    owner = "hyask";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-eX2Pzn5It4yf94ZWH/7yAJjwpayVYvpvbrvk7qvbimg=";
+  };
+
+  cargoSha256 = "sha256-WXjmXwqeWnQVyFs51t81kHHMMn9HQQjBRw1g1cU+6/M=";
+
+  meta = with lib; {
+    description = "Helper to make sway behave more like awesomewm";
+    homepage = "https://gitlab.com/hyask/swaysome";
+    license = licenses.mit;
+    maintainers = with maintainers; [ esclear ];
+  };
+}
diff --git a/pkgs/tools/wayland/swaytools/default.nix b/pkgs/tools/wayland/swaytools/default.nix
index 4c254c9a59322..e4584436c4eba 100644
--- a/pkgs/tools/wayland/swaytools/default.nix
+++ b/pkgs/tools/wayland/swaytools/default.nix
@@ -1,18 +1,18 @@
-{ lib, python3Packages, slurp }:
+{ lib, buildPythonApplication, fetchFromGitHub, slurp }:
 
-python3Packages.buildPythonApplication rec {
+buildPythonApplication rec {
   pname = "swaytools";
-  version = "0.1.0";
+  version = "0.1.1";
 
-  src = python3Packages.fetchPypi {
-    inherit pname version;
-    sha256 = "1eb89259cbe027a0fa6bfc06ecf94e89b15e6f7b4965104e5b661c916ce7408c";
+  src = fetchFromGitHub {
+    owner = "tmccombs";
+    repo = "swaytools";
+    rev = version;
+    sha256 = "sha256-6Ec7MPqBia0PW+pBTAItLusWMg1wlFfEaxoh20/2uHg=";
   };
 
   propagatedBuildInputs = [ slurp ];
 
-  passthru.updateScript = ./update.py;
-
   meta = with lib; {
     homepage = "https://github.com/tmccombs/swaytools";
     description = "Collection of simple tools for sway (and i3)";
diff --git a/pkgs/tools/wayland/swaytools/update.py b/pkgs/tools/wayland/swaytools/update.py
deleted file mode 100755
index 141566848e387..0000000000000
--- a/pkgs/tools/wayland/swaytools/update.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -i python -p python39Packages.requests python39Packages.pip python39Packages.packaging
-
-import requests
-import json
-import subprocess
-try:
-    from packaging.version import parse
-except ImportError:
-    from pip._vendor.packaging.version import parse
-
-
-URL_PATTERN = 'https://pypi.python.org/pypi/{package}/json'
-
-def findLine(key,derivation):
-    count = 0
-    lines = []
-    for line in derivation:
-        if key in line:
-            lines.append(count)
-        count += 1
-    return lines
-
-def get_version(package, url_pattern=URL_PATTERN):
-    """Return version of package on pypi.python.org using json."""
-    req = requests.get(url_pattern.format(package=package))
-    version = parse('0')
-    if req.status_code == requests.codes.ok:
-        j = json.loads(req.text.encode(req.encoding))
-        releases = j.get('releases', [])
-        for release in releases:
-            ver = parse(release)
-            if not ver.is_prerelease:
-                if ver > version:
-                    version = ver
-                    sha256  = j["releases"][release][-1]["digests"]["sha256"]
-    return version, sha256
-
-
-if __name__ == '__main__':
-
-    nixpkgs         = subprocess.check_output(["git", "rev-parse", "--show-toplevel"]).decode("utf-8").strip('\n')
-    swaytoolsFolder = "/pkgs/tools/wayland/swaytools/"
-    with open(nixpkgs + swaytoolsFolder + "default.nix", 'r') as arq:
-        derivation = arq.readlines()
-
-    version, sha256 = get_version('swaytools')
-
-    key = "version = "
-    line = findLine(key,derivation)[0]
-    derivation[line] = f'  version = "{version}";\n'
-
-    key = "sha256 = "
-    line = findLine(key,derivation)[0]
-    derivation[line] = f'    sha256 = "{sha256}";\n'
-
-    with open(nixpkgs + swaytoolsFolder + "default.nix", 'w') as arq:
-        arq.writelines(derivation)
diff --git a/pkgs/tools/wayland/wayland-utils/default.nix b/pkgs/tools/wayland/wayland-utils/default.nix
index 16bce1723aa6c..d685bde83f95c 100644
--- a/pkgs/tools/wayland/wayland-utils/default.nix
+++ b/pkgs/tools/wayland/wayland-utils/default.nix
@@ -12,6 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "1h38l850ww6hxjb1l8iwa33nkbz8q88bw6lh0aryjyp8b16crzk4";
   };
 
+  depsBuildBuild = [ pkg-config ];
   nativeBuildInputs = [ meson pkg-config ninja wayland-scanner ];
   buildInputs = [ wayland wayland-protocols ];
 
diff --git a/pkgs/tools/wayland/wl-clipboard-x11/default.nix b/pkgs/tools/wayland/wl-clipboard-x11/default.nix
index 5e87342dff89d..b5d15b4a978ea 100644
--- a/pkgs/tools/wayland/wl-clipboard-x11/default.nix
+++ b/pkgs/tools/wayland/wl-clipboard-x11/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     description = "A wrapper to use wl-clipboard as a drop-in replacement for X11 clipboard tools";
     homepage = "https://github.com/brunelli/wl-clipboard-x11";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ samuelgrf ];
+    maintainers = with maintainers; [ artturin ];
     mainProgram = "xclip";
   };
 }
diff --git a/pkgs/tools/wayland/wl-mirror/default.nix b/pkgs/tools/wayland/wl-mirror/default.nix
index 02c63c55a7642..02907ba8d2371 100644
--- a/pkgs/tools/wayland/wl-mirror/default.nix
+++ b/pkgs/tools/wayland/wl-mirror/default.nix
@@ -26,16 +26,17 @@ in
 
 stdenv.mkDerivation rec {
   pname = "wl-mirror";
-  version = "0.9.2";
+  version = "0.11.2";
 
   src = fetchFromGitHub {
     owner = "Ferdi265";
     repo = "wl-mirror";
     rev = "v${version}";
-    hash = "sha256-W/8DApyd7KtrOrP7Qj6oPKXxLrVzHDuIMOdg+k5ngr4=";
+    hash = "sha256-D5uUKaepcSW9v2x6uBeLGXAyuLorlt4Lb6lZD/prfp8=";
   };
 
-  patchPhase = ''
+  postPatch = ''
+    echo 'v${version}' > version.txt
     substituteInPlace CMakeLists.txt \
       --replace 'WL_PROTOCOL_DIR "/usr' 'WL_PROTOCOL_DIR "${wayland-protocols}' \
       --replace 'WLR_PROTOCOL_DIR "/usr' 'WLR_PROTOCOL_DIR "${wlr-protocols}'
diff --git a/pkgs/tools/wayland/wlr-randr/default.nix b/pkgs/tools/wayland/wlr-randr/default.nix
index e2c941998a99c..fe140720973e6 100644
--- a/pkgs/tools/wayland/wlr-randr/default.nix
+++ b/pkgs/tools/wayland/wlr-randr/default.nix
@@ -5,6 +5,7 @@
 , ninja
 , pkg-config
 , wayland
+, wayland-scanner
 }:
 
 stdenv.mkDerivation rec {
@@ -18,7 +19,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-JeSxFXSFxcTwJz9EaLb18wtD4ZIT+ATeYM5OyDTJhDQ=";
   };
 
-  nativeBuildInputs = [ meson ninja pkg-config ];
+  nativeBuildInputs = [ meson ninja pkg-config wayland-scanner ];
   buildInputs = [ wayland ];
 
   meta = with lib; {
diff --git a/pkgs/tools/wayland/wob/default.nix b/pkgs/tools/wayland/wob/default.nix
index 7f5b7b61c6284..5434132cd3d3c 100644
--- a/pkgs/tools/wayland/wob/default.nix
+++ b/pkgs/tools/wayland/wob/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wob";
-  version = "0.12";
+  version = "0.13";
 
   src = fetchFromGitHub {
     owner = "francma";
     repo = pname;
     rev = version;
-    sha256 = "sha256-gVQqZbz6ylBBlmhSgyaSEvAyMi48QiuviwZodPVGJxI=";
+    sha256 = "sha256-CXRBNnnhNV5LBIasVtmGrRG4ZXFGC7qNInU7Y0QsHbs=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-scanner ];
diff --git a/pkgs/tools/wayland/wtype/default.nix b/pkgs/tools/wayland/wtype/default.nix
index 3476f3abcdaa7..452f51a04de9b 100644
--- a/pkgs/tools/wayland/wtype/default.nix
+++ b/pkgs/tools/wayland/wtype/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wtype";
-  version = "0.3";
+  version = "0.4";
 
   src = fetchFromGitHub {
     owner = "atx";
     repo = "wtype";
     rev = "v${version}";
-    hash = "sha256-8q2PxI3ItR4tsP/KOiSlqnuK4ZSe7OdekheolEFVmys=";
+    hash = "sha256-TfpzAi0mkXugQn70MISyNFOXIJpDwvgh3enGv0Xq8S4=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config wayland ];
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index d12c09c93e90b..550288b417911 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -74,6 +74,9 @@ mapAliases ({
   amuleGui = throw "amuleGui was renamed to amule-gui"; # Added 2022-02-11
   amsn = throw "amsn has been removed due to being unmaintained"; # Added 2020-12-09
   angelfish = libsForQt5.plasmaMobileGear.angelfish; # Added 2021-10-06
+  ansible_2_11 = throw "Ansible 2.11 goes end of life in 2022/11 and can't be supported throughout the 22.05 release cycle"; # Added 2022-03-30
+  ansible_2_10 = throw "Ansible 2.10 went end of life in 2022/05 and has subsequently been dropped"; # Added 2022-03-30
+  ansible_2_9 = throw "Ansible 2.9 went end of life in 2022/05 and has subsequently been dropped"; # Added 2022-03-30
   antimicro = throw "antimicro has been removed as it was broken, see antimicrox instead"; # Added 2020-08-06
   antimicroX = antimicrox; # Added 2021-10-31
   ardour_5 = throw "ardour_5 has been removed. see https://github.com/NixOS/nixpkgs/issues/139549"; # Added 2021-09-28
@@ -81,12 +84,15 @@ mapAliases ({
   arora = throw "arora has been removed"; # Added 2020-09-09
   asciidocFull = throw "'asciidocFull' has been renamed to/replaced by 'asciidoc-full'"; # Converted to throw 2022-02-22
   asn1c = throw "asn1c has been removed: deleted by upstream"; # Added 2022-01-07
+  asterisk_13 = throw "asterisk_13: Asterisk 13 is end of life and has been removed"; # Added 2022-04-06
   asterisk_15 = throw "asterisk_15: Asterisk 15 is end of life and has been removed"; # Added 2020-10-07
+  asterisk_17 = throw "asterisk_17: Asterisk 17 is end of life and has been removed"; # Added 2022-04-06
   at_spi2_atk = throw "'at_spi2_atk' has been renamed to/replaced by 'at-spi2-atk'"; # Converted to throw 2022-02-22
   at_spi2_core = throw "'at_spi2_core' has been renamed to/replaced by 'at-spi2-core'"; # Converted to throw 2022-02-22
   aucdtect = throw "aucdtect: Upstream no longer provides download urls"; # Added 2020-12-26
   avldrums-lv2 = x42-avldrums; # Added 2020-03-29
   avxsynth = throw "avxsynth was removed because it was broken"; # Added 2021-05-18
+  aws-okta = throw "aws-okta is on indefinite hiatus. See https://github.com/segmentio/aws-okta/issues/278"; # Added 2022-04-05;
   azureus = throw "azureus is now known as vuze and the version in nixpkgs was really outdated"; # Added 2021-08-02
 
   ### B ###
@@ -102,6 +108,8 @@ mapAliases ({
   bcat = throw "bcat has been removed because upstream is dead"; # Added 2021-08-22
   beret = throw "beret has been removed"; # Added 2021-11-16
   bin_replace_string = throw "bin_replace_string has been removed: deleted by upstream"; # Added 2022-01-07
+  bird2 = bird; # Added 2022-02-21
+  bird6 = throw "bird6 was dropped. Use bird instead, which has support for both ipv4/ipv6"; # Added 2022-02-21
   bitbucket-cli = throw "bitbucket-cli has been removed: abandoned by upstream"; # Added 2022-03-21
   bitsnbots = throw "bitsnbots has been removed because it was broken and upstream missing"; # Added 2021-08-22
   blastem = throw "blastem has been removed from nixpkgs as it would still require python2"; # Added 2022-01-01
@@ -112,10 +120,9 @@ mapAliases ({
   brackets = throw "brackets has been removed, it was unmaintained and had open vulnerabilities"; # Added 2021-01-24
   bridge_utils = throw "'bridge_utils' has been renamed to/replaced by 'bridge-utils'"; # Converted to throw 2022-02-22
   bro = zeek; # Added 2019-09-29
-  bird2 = bird; # Added 2022-02-21
-  bird6 = throw "bird6 was dropped. Use bird instead, which has support for both ipv4/ipv6"; # Added 2022-02-21
   btrfsProgs = throw "'btrfsProgs' has been renamed to/replaced by 'btrfs-progs'"; # Converted to throw 2022-02-22
   bud = throw "bud has been removed: abandoned by upstream"; # Added 2022-03-14
+  buttersink = throw "buttersink has been removed: abandoned by upstream"; # Added 2022-04-05
 
   # bitwarden_rs renamed to vaultwarden with release 1.21.0 (2021-04-30)
   bitwarden_rs = vaultwarden;
@@ -137,6 +144,7 @@ mapAliases ({
 
   ### C ###
 
+  c14 = throw "c14 is deprecated and archived by upstream"; # Added 2022-04-10
   caddy1 = throw "caddy 1.x has been removed from nixpkgs, as it's unmaintained: https://github.com/caddyserver/caddy/blob/master/.github/SECURITY.md#supported-versions"; # Added 2020-10-02
   calibre-py2 = throw "calibre-py2 has been removed from nixpkgs, as calibre has upgraded to python 3. Please use calibre as replacement"; # Added 2021-01-13
   calibre-py3 = throw "calibre-py3 has been removed from nixpkgs, as calibre's default python version is now 3. Please use calibre as replacement"; # Added 2021-01-13
@@ -171,6 +179,7 @@ mapAliases ({
   claws-mail-gtk2 = throw "claws-mail-gtk2 was removed to get rid of Python 2, please use claws-mail"; # Added 2021-12-05
   claws-mail-gtk3 = claws-mail; # Added 2021-07-10
   clawsMail = throw "'clawsMail' has been renamed to/replaced by 'claws-mail'"; # Converted to throw 2022-02-22
+  cldr-emoji-annotation = throw "'cldr-emoji-annotation' has been removed, as it was unmaintained; use 'cldr-annotations' instead"; # Added 2022-04-03
   clearsilver = throw "clearsilver has been removed: abandoned by upstream"; # Added 2022-03-15
   clutter_gtk = throw "'clutter_gtk' has been renamed to/replaced by 'clutter-gtk'"; # Converted to throw 2022-02-22
   cmakeWithQt4Gui = throw "cmakeWithQt4Gui has been removed in favor of cmakeWithGui (Qt 5)"; # Added 2021-05
@@ -179,10 +188,12 @@ mapAliases ({
   compton-git = throw "'compton-git' has been renamed to/replaced by 'compton'"; # Converted to throw 2022-02-22
   concurrencykit = libck; # Added 2021-03
   conntrack_tools = throw "'conntrack_tools' has been renamed to/replaced by 'conntrack-tools'"; # Converted to throw 2022-02-22
+  container-linux-config-transpiler = throw "container-linux-config-transpiler is deprecated and archived by upstream"; # Added 2022-04-05
   cool-old-term = throw "'cool-old-term' has been renamed to/replaced by 'cool-retro-term'"; # Converted to throw 2022-02-22
   corsmisc = throw "corsmisc has been removed (upstream is gone)"; # Added 2022-01-24
   couchdb = throw "couchdb was removed from nixpkgs, use couchdb3 instead"; # Added 2021-03-03
   couchdb2 = throw "couchdb2 was removed from nixpkgs, use couchdb3 instead"; # Added 2021-03-03
+  coreclr = throw "coreclr has been removed from nixpkgs, use dotnet-sdk instead"; # added 2022-06-12
   cpp-gsl = throw "'cpp-gsl' has been renamed to/replaced by 'microsoft_gsl'"; # Converted to throw 2022-02-22
   cpp_ethereum = throw "cpp_ethereum has been removed; abandoned upstream"; # Added 2020-11-30
   cpuminer-multi = throw "cpuminer-multi has been removed: deleted by upstream"; # Added 2022-01-07
@@ -190,7 +201,6 @@ mapAliases ({
   cryptol = throw "cryptol was removed due to prolonged broken build"; # Added 2020-08-21
 
   # CUDA Toolkit
-
   cudatoolkit_6 = throw "cudatoolkit_6 has been removed in favor of newer versions"; # Added 2021-02-14
   cudatoolkit_65 = throw "cudatoolkit_65 has been removed in favor of newer versions"; # Added 2021-02-14
   cudatoolkit_7 = throw "cudatoolkit_7 has been removed in favor of newer versions"; # Added 2021-02-14
@@ -200,15 +210,56 @@ mapAliases ({
   cudatoolkit_9_0 = throw "cudatoolkit_9_0 has been removed in favor of newer versions"; # Added 2021-04-18
   cudatoolkit_9_1 = throw "cudatoolkit_9_1 has been removed in favor of newer versions"; # Added 2021-04-18
   cudatoolkit_9_2 = throw "cudatoolkit_9_2 has been removed in favor of newer versions"; # Added 2021-04-18
+  cudatoolkit_10 = throw "cudatoolkit_10 has been renamed to cudaPackages_10.cudatoolkit"; # Added 2022-04-04
+  cudatoolkit_10_0 = throw "cudatoolkit_10_0 has been renamed to cudaPackages_10_0.cudatoolkit"; # Added 2022-04-04
+  cudatoolkit_10_1 = throw "cudatoolkit_10_1 has been renamed to cudaPackages_10_1.cudatoolkit"; # Added 2022-04-04
+  cudatoolkit_10_2 = throw "cudatoolkit_10_2 has been renamed to cudaPackages_10_2.cudatoolkit"; # Added 2022-04-04
+  cudatoolkit_11_0 = throw "cudatoolkit_11_0 has been renamed to cudaPackages_11_0.cudatoolkit"; # Added 2022-04-04
+  cudatoolkit_11_1 = throw "cudatoolkit_11_1 has been renamed to cudaPackages_11_1.cudatoolkit"; # Added 2022-04-04
+  cudatoolkit_11_2 = throw "cudatoolkit_11_2 has been renamed to cudaPackages_11_2.cudatoolkit"; # Added 2022-04-04
+  cudatoolkit_11_3 = throw "cudatoolkit_11_3 has been renamed to cudaPackages_11_3.cudatoolkit"; # Added 2022-04-04
+  cudatoolkit_11_4 = throw "cudatoolkit_11_4 has been renamed to cudaPackages_11_4.cudatoolkit"; # Added 2022-04-04
+  cudatoolkit_11_5 = throw "cudatoolkit_11_5 has been renamed to cudaPackages_11_5.cudatoolkit"; # Added 2022-04-04
+  cudatoolkit_11_6 = throw "cudatoolkit_11_6 has been renamed to cudaPackages_11_6.cudatoolkit"; # Added 2022-04-04
+
+  cudnn = throw "cudnn is now part of cudaPackages*"; # Added 2022-04-04
   cudnn6_cudatoolkit_8 = throw "cudnn6_cudatoolkit_8 has been removed in favor of newer versions"; # Added 2021-02-14
   cudnn_cudatoolkit_7 = throw "cudnn_cudatoolkit_7 has been removed in favor of newer versions"; # Added 2021-02-14
+  cudnn_7_4_cudatoolkit_10_0 = throw "cudnn* is now part of cudaPackages*"; # Added 2022-04-04
   cudnn_cudatoolkit_7_5 = throw "cudnn_cudatoolkit_7_5 has been removed in favor of newer versions"; # Added 2021-02-14
+  cudnn_7_6_cudatoolkit_10_0 = throw "cudnn* is now part of cudaPackages*"; # Added 2022-04-04
+  cudnn_7_6_cudatoolkit_10_1 = throw "cudnn* is now part of cudaPackages*"; # Added 2022-04-04
   cudnn_cudatoolkit_8 = throw "cudnn_cudatoolkit_8 has been removed in favor of newer versions"; # Added 2021-02-14
+  cudnn_8_1_cudatoolkit_10_2 = throw "cudnn* is now part of cudaPackages*"; # Added 2022-04-04
+  cudnn_8_1_cudatoolkit_11_0 = throw "cudnn* is now part of cudaPackages*"; # Added 2022-04-04
+  cudnn_8_1_cudatoolkit_11_1 = throw "cudnn* is now part of cudaPackages*"; # Added 2022-04-04
+  cudnn_8_1_cudatoolkit_11_2 = throw "cudnn* is now part of cudaPackages*"; # Added 2022-04-04
+  cudnn_8_1_cudatoolkit_10 = throw "cudnn* is now part of cudaPackages*"; # Added 2022-04-04
+  cudnn_8_3_cudatoolkit_10_2 = throw "cudnn* is now part of cudaPackages*"; # Added 2022-04-04
+  cudnn_8_3_cudatoolkit_11_0 = throw "cudnn* is now part of cudaPackages*"; # Added 2022-04-04
+  cudnn_8_3_cudatoolkit_11_1 = throw "cudnn* is now part of cudaPackages*"; # Added 2022-04-04
+  cudnn_8_3_cudatoolkit_11_2 = throw "cudnn* is now part of cudaPackages*"; # Added 2022-04-04
+  cudnn_8_3_cudatoolkit_11_3 = throw "cudnn* is now part of cudaPackages*"; # Added 2022-04-04
+  cudnn_8_3_cudatoolkit_11_4 = throw "cudnn* is now part of cudaPackages*"; # Added 2022-04-04
+  cudnn_8_3_cudatoolkit_11_5 = throw "cudnn* is now part of cudaPackages*"; # Added 2022-04-04
+  cudnn_8_3_cudatoolkit_10 = throw "cudnn* is now part of cudaPackages*"; # Added 2022-04-04
+  cudnn_8_3_cudatoolkit_11 = throw "cudnn* is now part of cudaPackages*"; # Added 2022-04-04
   cudnn_cudatoolkit_9 = throw "cudnn_cudatoolkit_9 has been removed in favor of newer versions"; # Added 2021-04-18
   cudnn_cudatoolkit_9_0 = throw "cudnn_cudatoolkit_9_0 has been removed in favor of newer versions"; # Added 2021-04-18
   cudnn_cudatoolkit_9_1 = throw "cudnn_cudatoolkit_9_1 has been removed in favor of newer versions"; # Added 2021-04-18
   cudnn_cudatoolkit_9_2 = throw "cudnn_cudatoolkit_9_2 has been removed in favor of newer versions"; # Added 2021-04-18
 
+  cutensor = throw "cutensor is now part of cudaPackages*"; # Added 2022-04-04
+  cutensor_cudatoolkit_10 = throw "cutensor* is now part of cudaPackages*"; # Added 2022-04-04
+  cutensor_cudatoolkit_10_1 = throw "cutensor* is now part of cudaPackages*"; # Added 2022-04-04
+  cutensor_cudatoolkit_10_2 = throw "cutensor* is now part of cudaPackages*"; # Added 2022-04-04
+  cutensor_cudatoolkit_11 = throw "cutensor* is now part of cudaPackages*"; # Added 2022-04-04
+  cutensor_cudatoolkit_11_0 = throw "cutensor* is now part of cudaPackages*"; # Added 2022-04-04
+  cutensor_cudatoolkit_11_1 = throw "cutensor* is now part of cudaPackages*"; # Added 2022-04-04
+  cutensor_cudatoolkit_11_2 = throw "cutensor* is now part of cudaPackages*"; # Added 2022-04-04
+  cutensor_cudatoolkit_11_3 = throw "cutensor* is now part of cudaPackages*"; # Added 2022-04-04
+  cutensor_cudatoolkit_11_4 = throw "cutensor* is now part of cudaPackages*"; # Added 2022-04-04
+
   cloud-print-connector = throw "Google Cloudprint is officially discontinued since Jan 2021, more info https://support.google.com/chrome/a/answer/9633006";
   cquery = throw "cquery has been removed because it is abandoned by upstream. Consider switching to clangd or ccls instead"; # Added 2020-06-15
   cups-googlecloudprint = throw "Google Cloudprint is officially discontinued since Jan 2021, more info https://support.google.com/chrome/a/answer/9633006";
@@ -265,11 +316,13 @@ mapAliases ({
   docbook5_xsl = throw "'docbook5_xsl' has been renamed to/replaced by 'docbook_xsl_ns'"; # Converted to throw 2022-02-22
   docbookrx = throw "docbookrx has been removed since it was unmaintained"; # Added 2021-01-12
   docbook_xml_xslt = throw "'docbook_xml_xslt' has been renamed to/replaced by 'docbook_xsl'"; # Converted to throw 2022-02-22
+  doh-proxy = throw "doh-proxy has been removed because upstream abandoned it and its depedencies where removed."; # Added 2022-03-30
   docker_compose = throw "'docker_compose' has been renamed to/replaced by 'docker-compose'"; # Converted to throw 2022-02-22
   dolphinEmu = dolphin-emu; # Added 2021-11-10
   dolphinEmuMaster = dolphin-emu-beta; # Added 2021-11-10
   dotnet-netcore = dotnet-runtime; # Added 2021-10-07
   double_conversion = throw "'double_conversion' has been renamed to/replaced by 'double-conversion'"; # Converted to throw 2022-02-22
+  dragon-drop = throw "'dragon-drop' has been removed in favor of 'xdragon'"; # Added 2022-04-10;
   draftsight = throw "draftsight has been removed, no longer available as freeware"; # Added 2020-08-14
   dvb_apps = throw "dvb_apps has been removed"; # Added 2020-11-03
   dwarf_fortress = throw "'dwarf_fortress' has been renamed to/replaced by 'dwarf-fortress'"; # Converted to throw 2022-02-22
@@ -296,8 +349,8 @@ mapAliases ({
   electrum-dash = throw "electrum-dash has been removed from nixpkgs as the project is abandoned"; # Added 2022-01-01
 
   # Emacs
-  emacs27Packages = emacs27.pkgs; # Added 2020-12-18
-  emacs27WithPackages = emacs27.pkgs.withPackages; # Added 2020-12-18
+  emacs28Packages = emacs28.pkgs; # Added 2021-10-04
+  emacs28WithPackages = emacs28.pkgs.withPackages; # Added 2021-10-04
   emacsPackages = emacs.pkgs; # Added 2020-12-18
   emacsPackagesGen = throw "'emacsPackagesGen' has been renamed to/replaced by 'emacsPackagesFor'"; # Converted to throw 2022-02-22
   emacsPackagesNg = emacs.pkgs; # Added 2019-08-07
@@ -365,6 +418,7 @@ mapAliases ({
   fslint = throw "fslint has been removed: end of life. Upstream recommends using czkawka (https://qarmin.github.io/czkawka/) instead"; # Added 2022-01-15
   fuse_exfat = throw "'fuse_exfat' has been renamed to/replaced by 'exfat'"; # Converted to throw 2022-02-22
   fuseki = throw "'fuseki' has been renamed to/replaced by 'apache-jena-fuseki'"; # Converted to throw 2022-02-22
+  fuse2fs = if stdenv.isLinux then e2fsprogs.fuse2fs else null; # Added 2022-03-27 preserve, reason: convenience, arch has a package named fuse2fs too.
   fwupdate = throw "fwupdate was merged into fwupd"; # Added 2020-05-19
 
   ### G ###
@@ -399,6 +453,8 @@ mapAliases ({
   gmic_krita_qt = gmic-qt-krita; # Added 2019-09-07
   gmvault = throw "gmvault has been removed because it is unmaintained, mostly broken, and insecure"; # Added 2021-03-08
   gnash = throw "gnash has been removed; broken and abandoned upstream"; # added 2022-02-06
+  gnome-breeze = throw "gnome-breeze has been removed, use libsForQt5.breeze-gtk instead"; # Added 2022-04-22
+  gnome-firmware-updater = gnome-firmware; # added 2022-04-14
   gnome-passwordsafe = gnome-secrets; # added 2022-01-30
   gnome-mpv = celluloid; # Added 2019-08-22
   gnome-sharp = throw "gnome-sharp has been removed from nixpkgs"; # Added 2022-01-15
@@ -444,6 +500,8 @@ mapAliases ({
   graalvm11 = graalvm11-ce;
   graalvm8-ce = throw "graalvm8-ce has been removed by upstream"; # Added 2021-10-19
   graalvm8 = throw "graalvm8-ce has been removed by upstream"; # Added 2021-10-19
+  graalvm8-ee = throw "graalvm8-ee has been removed because it is unmaintained"; # Added 2022-04-15
+  graalvm11-ee = throw "graalvm11-ee has been removed because it is unmaintained"; # Added 2022-04-15
   gr-ais = gnuradio3_7.pkgs.ais; # Added 2019-05-27, changed 2020-10-16
   grantlee5 = throw "'grantlee5' has been renamed to/replaced by 'libsForQt5.grantlee'"; # Converted to throw 2022-02-22
   gr-gsm = gnuradio3_7.pkgs.gsm; # Added 2019-05-27, changed 2020-10-16
@@ -474,6 +532,7 @@ mapAliases ({
 
   hal-flash = throw "hal-flash has been removed as Adobe Flash Player is now deprecated"; # Added 2021-02-07
   hawkthorne = throw "hawkthorne has been removed because it depended on a broken version of love"; # Added 2022-01-15
+  heapster = throw "Heapster is now retired. See https://github.com/kubernetes-retired/heapster/blob/master/docs/deprecation.md"; # Added 2022-04-05
   heimdalFull = throw "'heimdalFull' has been renamed to/replaced by 'heimdal'"; # Converted to throw 2022-02-22
   heme = throw "heme has been removed: upstream is gone"; # added 2022-02-06
   hepmc = hepmc2; # Added 2019-08-05
@@ -504,6 +563,7 @@ mapAliases ({
   intecture-agent = throw "intecture-agent has been removed, because it was no longer maintained upstream"; # added 2021-12-15
   intecture-auth = throw "intecture-auth has been removed, because it was no longer maintained upstream"; # added 2021-12-15
   intecture-cli = throw "intecture-cli has been removed, because it was no longer maintained upstream"; # added 2021-12-15
+  interfacer = throw "interfacer is deprecated and archived by upstream"; # Added 2022-04-05
   inter-ui = inter; # Added 2021-03-27
   iops = throw "iops was removed: upstream is gone"; # Added 2022-02-06
   iproute = iproute2; # moved from top-level 2021-03-14
@@ -562,6 +622,8 @@ mapAliases ({
   kramdown-rfc2629 = rubyPackages.kramdown-rfc2629; # Added 2021-03-23
   krename-qt5 = throw "'krename-qt5' has been renamed to/replaced by 'krename'"; # Converted to throw 2022-02-22
   krita-beta = krita; # moved from top-level 2021-12-23
+  kube-aws = throw "kube-aws is deprecated and archived by upstream"; # Added 2022-04-05
+  kubeless = throw "kubeless is deprecated and archived by upstream"; # Added 2022-04-05
   kvm = throw "'kvm' has been renamed to/replaced by 'qemu_kvm'"; # Converted to throw 2022-02-22
 
   ### L ###
@@ -590,6 +652,7 @@ mapAliases ({
   libgroove = throw "libgroove has been removed, because it depends on an outdated and insecure version of ffmpeg"; # Added 2022-01-21
   libgumbo = throw "'libgumbo' has been renamed to/replaced by 'gumbo'"; # Converted to throw 2022-02-22
   libintlOrEmpty = lib.optional (!stdenv.isLinux || stdenv.hostPlatform.libc != "glibc") gettext; # Added 2018-03-14
+  libixp_hg = libixp;
   libjpeg_drop = libjpeg_original; # Added 2020-06-05
   libjson_rpc_cpp = throw "'libjson_rpc_cpp' has been renamed to/replaced by 'libjson-rpc-cpp'"; # Converted to throw 2022-02-22
   libkml = throw "libkml has been removed from nixpkgs, as it's abandoned and no package needed it"; # Added 2021-11-09
@@ -773,6 +836,10 @@ mapAliases ({
 
   ### N ###
 
+  nccl = throw "nccl has been renamed to cudaPackages.nccl"; # Added 2022-04-04
+  nccl_cudatoolkit_10 = throw "nccl_cudatoolkit_10 has been renamed to cudaPackages_10.nccl"; # Added 2022-04-04
+  nccl_cudatoolkit_11 = throw "nccl_cudatoolkit_11 has been renamed to cudaPackages_11.nccl"; # Added 2022-04-04
+
   net_snmp = net-snmp; # Added 2019-12-21
   nagiosPluginsOfficial = monitoring-plugins;
   navit = throw "navit has been removed from nixpkgs, due to being unmaintained"; # Added 2021-06-07
@@ -807,6 +874,7 @@ mapAliases ({
   noto-fonts-cjk = noto-fonts-cjk-sans; # Added 2021-12-16
   nottetris2 = throw "nottetris2 was removed because it is unmaintained by upstream and broken"; # Added 2022-01-15
   now-cli = throw "now-cli has been replaced with nodePackages.vercel"; # Added 2021-08-05
+  ntdb = throw "ntdb has been removed: abandoned by upstream"; # Added 2022-04-21
   nxproxy = throw "'nxproxy' has been renamed to/replaced by 'nx-libs'"; # Converted to throw 2022-02-22
 
   ### O ###
@@ -817,6 +885,7 @@ mapAliases ({
   oauth2_proxy = oauth2-proxy; # Added 2021-04-18
   octoprint-plugins = throw "octoprint-plugins are now part of the octoprint.python.pkgs package set"; # Added 2021-01-24
   ocz-ssd-guru = throw "ocz-ssd-guru has been removed due to there being no source available"; # Added 2021-07-12
+  odpdown = throw "odpdown has been removed because it lacks python3 support"; # Added 2022-04-25
   ofp = throw "ofp is not compatible with odp-dpdk";
   olifant = throw "olifant has been removed from nixpkgs, as it was unmaintained"; # Added 2021-08-05
   onnxruntime = throw "onnxruntime has been removed due to poor maintainability"; # Added 2020-12-04
@@ -824,6 +893,8 @@ mapAliases ({
   openbazaar-client = throw "openbazzar-client has been removed from nixpkgs as upstream has abandoned the project"; # Added 2022-01-06
   opencascade_oce = throw "'opencascade_oce' has been renamed to/replaced by 'opencascade'"; # Converted to throw 2022-02-22
   opencl-icd = throw "'opencl-icd' has been renamed to/replaced by 'ocl-icd'"; # Converted to throw 2022-02-22
+  openconnect_head = openconnect_unstable; # Added 2022-03-29
+  openconnect_gnutls = openconnect; # Added 2022-03-29
   openconnect_pa = throw "openconnect_pa fork has been discontinued, support for GlobalProtect is now available in openconnect"; # Added 2021-05-21
   openelec-dvb-firmware = libreelec-dvb-firmware; # Added 2021-05-10
   openexr_ctl = throw "'openexr_ctl' has been renamed to/replaced by 'ctl'"; # Converted to throw 2022-02-22
@@ -844,9 +915,11 @@ mapAliases ({
 
   p11_kit = throw "'p11_kit' has been renamed to/replaced by 'p11-kit'"; # Converted to throw 2022-02-22
   packet-cli = metal-cli; # Added 2021-10-25
-  paperless = paperless-ng; # Added 2021-06-06
+  paperless = paperless-ngx; # Added 2021-06-06
+  paperless-ng = paperless-ngx; # Added 2022-04-11
   parity = openethereum; # Added 2020-08-01
   parity-ui = throw "parity-ui was removed because it was broken and unmaintained by upstream"; # Added 2022-01-10
+  parlatype = throw "parlatype has been removed: unmaintained"; # Added 2022-04-24
   parquet-cpp = throw "'parquet-cpp' has been renamed to/replaced by 'arrow-cpp'"; # Converted to throw 2022-02-22
   patchmatrix = throw "'patchmatrix' has been renamed to/replaced by 'open-music-kontrollers.patchmatrix'"; # Added 2022-03-09
   pass-otp = throw "'pass-otp' has been renamed to/replaced by 'pass.withExtensions'"; # Converted to throw 2022-02-22
@@ -924,6 +997,7 @@ mapAliases ({
   pidginsipe = throw "'pidginsipe' has been renamed to/replaced by 'pidgin-sipe'"; # Converted to throw 2022-02-22
   pidginwindowmerge = throw "'pidginwindowmerge' has been renamed to/replaced by 'pidgin-window-merge'"; # Converted to throw 2022-02-22
   pifi = throw "pifi has been removed from nixpkgs, as it is no longer developed"; # Added 2022-01-19
+  ping = throw "'ping' does not build with recent valac and has been removed. If you are just looking for the 'ping' command use either 'iputils' or 'inetutils'"; # Added 2022-04-18
   piwik = throw "'piwik' has been renamed to/replaced by 'matomo'"; # Converted to throw 2022-02-22
   pkgconfig = pkg-config; # Added 2018-02-02, moved to aliases.nix 2021-01-18
   pkgconfigUpstream = throw "'pkgconfigUpstream' has been renamed to/replaced by 'pkg-configUpstream'"; # Converted to throw 2022-02-22
@@ -932,6 +1006,7 @@ mapAliases ({
   plexpy = throw "'plexpy' has been renamed to/replaced by 'tautulli'"; # Converted to throw 2022-02-22
   pltScheme = racket; # just to be sure
   pmtools = throw "'pmtools' has been renamed to/replaced by 'acpica-tools'"; # Converted to throw 2022-02-22
+  pocketsphinx = throw "pocketsphinx has been removed: unmaintained"; # Added 2022-04-24
   polarssl = throw "'polarssl' has been renamed to/replaced by 'mbedtls'"; # Converted to throw 2022-02-22
   polysh = throw "polysh has been removed from nixpkgs as the upstream has abandoned the project"; # Added 2022-01-01
   poppler_qt5 = throw "'poppler_qt5' has been renamed to/replaced by 'libsForQt5.poppler'"; # Converted to throw 2022-02-22
@@ -965,16 +1040,21 @@ mapAliases ({
   pinentry_gtk2 = pinentry-gtk2; # Added 2019-10-14
   pinentry_qt = pinentry-qt; # Added 2019-10-14
   pinentry_qt5 = pinentry-qt; # Added 2020-02-11
+  prboom = throw "prboom was removed because it was abandoned by upstream, use prboom-plus instead"; # Added 2022-04-24
   privateer = throw "privateer was removed because it was broken"; # Added 2021-05-18
   processing3 = processing; # Added 2019-08-16
   procps-ng = throw "'procps-ng' has been renamed to/replaced by 'procps'"; # Converted to throw 2022-02-22
   proglodyte-wasm = throw "proglodyte-wasm has been removed from nixpkgs, because it is unmaintained since 5 years with zero github stars"; # Added 2021-06-30
   proj_5 = throw "Proj-5 has been removed from nixpkgs, use proj instead"; # Added 2021-04-12
   prometheus-cups-exporter = throw "outdated and broken by design; removed by developer"; # Added 2021-03-16
+  prometheus-mesos-exporter = throw "prometheus-mesos-exporter is deprecated and archived by upstream"; # Added 2022-04-05
   proxytunnel = throw "proxytunnel has been removed from nixpkgs, because it has not been update upstream since it was added to nixpkgs in 2008 and has therefore bitrotted."; # added 2021-12-15
+  pulseaudio-hsphfpd = throw "pulseaudio-hsphfpd upstream has been abandoned"; # Added 2022-03-23
+  pulseaudio-modules-bt = throw "pulseaudio-modules-bt has been abandoned, and is superseded by pulseaudio's native bt functionality"; # Added 2022-04-01
   pulseaudioLight = throw "'pulseaudioLight' has been renamed to/replaced by 'pulseaudio'"; # Converted to throw 2022-02-22
   pulseeffects = throw "Use pulseeffects-legacy if you use PulseAudio and easyeffects if you use PipeWire"; # Added 2021-02-13
   pulseeffects-pw = easyeffects; # Added 2021-07-07
+  pydb = throw "pydb has been removed: abandoned by upstream"; # Added 2022-04-22
   pyIRCt = throw "pyIRCt has been removed from nixpkgs as it is unmaintained and python2-only";
   pyMAILt = throw "pyMAILt has been removed from nixpkgs as it is unmaintained and python2-only";
   pybind11 = throw "pybind11 was removed because pythonPackages.pybind11 for the appropriate version of Python should be used"; # Added 2021-05-14
@@ -1027,6 +1107,12 @@ mapAliases ({
   redshift-wlr = throw "redshift-wlr has been replaced by gammastep"; # Added 2021-12-25
   reicast = throw "reicast has been removed from nixpkgs as it is unmaintained, please use flycast instead"; # Added 2022-03-07
   renpy = throw "renpy has been removed from nixpkgs, it was unmaintained and the latest packaged version required python2"; # Added 2022-01-12
+
+  # 3 resholve aliases below added 2022-04-08; drop after 2022-11-30?
+  resholvePackage = throw "resholvePackage has been renamed to resholve.mkDerivation";
+  resholveScript = throw "resholveScript has been renamed to resholve.writeScript";
+  resholveScriptBin = throw "resholveScriptBin has been renamed to resholve.writeScriptBin";
+
   residualvm = throw "residualvm was merged to scummvm code in 2018-06-15; consider using scummvm"; # Added 2021-11-27
   retroArchCores = throw "retroArchCores has been removed. Please use overrides instead, e.g.: `retroarch.override { cores = with libretro; [ ... ]; }`"; # Added 2021-11-19
   retroshare06 = retroshare;
@@ -1121,7 +1207,9 @@ mapAliases ({
   spaceOrbit = throw "'spaceOrbit' has been renamed to/replaced by 'space-orbit'"; # Converted to throw 2022-02-22
   spectral = neochat; # Added 2020-12-27
   speech_tools = throw "'speech_tools' has been renamed to/replaced by 'speech-tools'"; # Converted to throw 2022-02-22
+  speedometer = throw "speedometer has been removed: abandoned by upstream"; # Added 2022-04-24
   speedtest_cli = throw "'speedtest_cli' has been renamed to/replaced by 'speedtest-cli'"; # Converted to throw 2022-02-22
+  sphinxbase = throw "sphinxbase has been removed: unmaintained"; # Added 2022-04-24
   spice_gtk = throw "'spice_gtk' has been renamed to/replaced by 'spice-gtk'"; # Converted to throw 2022-02-22
   spice_protocol = throw "'spice_protocol' has been renamed to/replaced by 'spice-protocol'"; # Converted to throw 2022-02-22
   spidermonkey_1_8_5 = throw "spidermonkey_1_8_5 has been removed, because it is based on Firefox 4.0 from 2011"; # added 2021-05-03
@@ -1135,10 +1223,12 @@ mapAliases ({
   sqliteInteractive = throw "'sqliteInteractive' has been renamed to/replaced by 'sqlite-interactive'"; # Converted to throw 2022-02-22
   squid4 = squid;  # added 2019-08-22
   sshfsFuse = throw "'sshfsFuse' has been renamed to/replaced by 'sshfs-fuse'"; # Converted to throw 2022-02-22
+  ssmtp = throw "'ssmtp' has been removed due to the software being unmaintained. 'msmtp' can be used as a replacement"; # Added 2022-04-17
   stanchion = throw "Stanchion was part of riak-cs which is not maintained anymore"; # added 2020-10-14
   steam-run-native = steam-run; # added 2022-02-21
   stumpwm-git = throw "stumpwm-git has been broken for a long time and lispPackages.stumpwm follows Quicklisp that is close to git version"; # Added 2021-05-09
   subversion19 = throw "subversion19 has been removed as it has reached its end of life"; # Added 2021-03-31
+  sudolikeaboss = throw "sudolikeaboss is no longer maintained by upstream"; # Added 2022-04-16
   sundials_3 = throw "sundials_3 was removed in 2020-02. outdated and no longer needed";
   surf-webkit2 = throw "'surf-webkit2' has been renamed to/replaced by 'surf'"; # Converted to throw 2022-02-22
   svgcleaner = throw "svgcleaner has been removed"; # Added 2021-11-17
@@ -1157,6 +1247,7 @@ mapAliases ({
   tahoelafs = throw "'tahoelafs' has been renamed to/replaced by 'tahoe-lafs'"; # Converted to throw 2022-02-22
   tangogps = foxtrotgps; # Added 2020-01-26
   tdm = throw "tdm has been removed because nobody can figure out how to fix OpenAL integration. Use precompiled binary and `steam-run` instead";
+  teleconsole = throw "teleconsole is archived by upstream"; # Added 2022-04-05
   telepathy-qt = throw "telepathy-qt no longer supports Qt 4. Please use libsForQt5.telepathy instead"; # Added 2020-07-02
   telepathy_farstream = throw "'telepathy_farstream' has been renamed to/replaced by 'telepathy-farstream'"; # Converted to throw 2022-02-22
   telepathy_gabble = throw "'telepathy_gabble' has been renamed to/replaced by 'telepathy-gabble'"; # Converted to throw 2022-02-22
@@ -1177,6 +1268,7 @@ mapAliases ({
   terraform_1_0 = throw "terraform_1_0 has been renamed to terraform_1"; # Added 2021-12-08
   terraform_1_0_0 = throw "terraform_1_0_0 has been renamed to terraform_1"; # Added 2021-06-15
   tesseract_4 = throw "'tesseract_4' has been renamed to/replaced by 'tesseract4'"; # Converted to throw 2022-02-22
+  testVersion = testers.testVersion; # Added 2022-04-20
   tex-gyre-bonum-math = throw "'tex-gyre-bonum-math' has been renamed to/replaced by 'tex-gyre-math.bonum'"; # Converted to throw 2022-02-22
   tex-gyre-pagella-math = throw "'tex-gyre-pagella-math' has been renamed to/replaced by 'tex-gyre-math.pagella'"; # Converted to throw 2022-02-22
   tex-gyre-schola-math = throw "'tex-gyre-schola-math' has been renamed to/replaced by 'tex-gyre-math.schola'"; # Converted to throw 2022-02-22
@@ -1232,6 +1324,7 @@ mapAliases ({
   urxvt_vtwheel = rxvt-unicode-plugins.vtwheel; # Added 2020-02-02
   usb_modeswitch = throw "'usb_modeswitch' has been renamed to/replaced by 'usb-modeswitch'"; # Converted to throw 2022-02-22
   usbguard-nox = usbguard; # Added 2019-09-04
+  util-linuxCurses = util-linux; # Added 2022-04-12
   utillinux = util-linux; # Added 2020-11-24
 
   ### V ###
@@ -1261,6 +1354,7 @@ mapAliases ({
   webbrowser = throw "webbrowser was removed because it's unmaintained upstream and was marked as broken in nixpkgs for over a year"; # Added 2022-03-21
   webkit = throw "'webkit' has been renamed to/replaced by 'webkitgtk'"; # Converted to throw 2022-02-22
   weechat-matrix-bridge = throw "'weechat-matrix-bridge' has been renamed to/replaced by 'weechatScripts.weechat-matrix-bridge'"; # Converted to throw 2022-02-22
+  weighttp = throw "weighttp has been removed: abandoned by upstream"; # Added 2022-04-20
   whirlpool-gui = throw "whirlpool-gui has been removed as it depended on an insecure version of Electron"; # added 2022-02-08
   wicd = throw "wicd has been removed as it is abandoned"; # Added 2021-09-11
   wineFull = throw "'wineFull' has been renamed to/replaced by 'winePackages.full'"; # Converted to throw 2022-02-22
@@ -1269,8 +1363,10 @@ mapAliases ({
   wineStaging = throw "'wineStaging' has been renamed to/replaced by 'wine-staging'"; # Converted to throw 2022-02-22
   wineUnstable = throw "'wineUnstable' has been renamed to/replaced by 'winePackages.unstable'"; # Converted to throw 2022-02-22
   wineWayland = wine-wayland;
+  winpdb = throw "winpdb has been removed: abandoned by upstream"; # Added 2022-04-22
   winusb = throw "'winusb' has been renamed to/replaced by 'woeusb'"; # Converted to throw 2022-02-22
   wireguard = throw "'wireguard' has been renamed to/replaced by 'wireguard-tools'"; # Converted to throw 2022-02-22
+  wmii_hg = wmii;
   wxmupen64plus = throw "wxmupen64plus was removed because the upstream disappeared"; # Added 2022-01-31
 
   ### X ###
@@ -1401,6 +1497,9 @@ mapAliases ({
     targetLlvmLibraries = targetPackages.llvmPackages_git.libraries;
   });
 
+  # Added 2022-01-28
+  zeroc-ice-36 = throw "Unmaintained, doesn't build w/glibc-2.34";
+
   /* If these are in the scope of all-packages.nix, they cause collisions
   between mixed versions of qt. See:
   https://github.com/NixOS/nixpkgs/pull/101369 */
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 94ae4aae9caed..42a7479dc9202 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -73,7 +73,8 @@ with pkgs;
   ### Helper functions.
   inherit lib config overlays;
 
-  inherit (lib) lowPrio hiPrio appendToName makeOverridable;
+  # do not import 'appendToName' to get consistent package-names with the same set of package-parameters: https://github.com/NixOS/nixpkgs/issues/68519
+  inherit (lib) lowPrio hiPrio makeOverridable;
 
   inherit (lib) recurseIntoAttrs;
 
@@ -154,6 +155,7 @@ with pkgs;
       pythonInterpreter = "${python3.withPackages (ps: [ ps.pyelftools ])}/bin/python";
       autoPatchelfScript = ../build-support/setup-hooks/auto-patchelf.py;
     };
+    meta.platforms = lib.platforms.linux;
   } ../build-support/setup-hooks/auto-patchelf.sh;
 
   appflowy = callPackage ../applications/office/appflowy { };
@@ -201,6 +203,8 @@ with pkgs;
 
   aesfix = callPackage ../tools/security/aesfix { };
 
+  aeskeyfind = callPackage ../tools/security/aeskeyfind { };
+
   astrolog = callPackage ../applications/science/astronomy/astrolog { };
 
   atkinson-hyperlegible = callPackage ../data/fonts/atkinson-hyperlegible { };
@@ -273,12 +277,8 @@ with pkgs;
 
   catatonit = callPackage ../applications/virtualization/catatonit { };
 
-  cen64 = callPackage ../applications/emulators/cen64 { };
-
   btdu = callPackage ../tools/misc/btdu { };
 
-  uxn = callPackage ../applications/emulators/uxn { };
-
   cereal = callPackage ../development/libraries/cereal { };
 
   certgraph = callPackage ../tools/security/certgraph { };
@@ -361,6 +361,8 @@ with pkgs;
 
   glade = callPackage ../development/tools/glade { };
 
+  gojq = callPackage ../development/tools/gojq { };
+
   gpick = callPackage ../tools/misc/gpick { };
 
   hobbes = callPackage ../development/tools/hobbes { };
@@ -407,8 +409,6 @@ with pkgs;
 
   protoc-gen-validate = callPackage ../development/tools/protoc-gen-validate { };
 
-  proton-caller = callPackage ../applications/emulators/proton-caller { };
-
   ptags = callPackage ../development/tools/misc/ptags { };
 
   ptouch-print = callPackage ../misc/ptouch-print { };
@@ -433,6 +433,10 @@ with pkgs;
 
   devour = callPackage ../tools/X11/devour {};
 
+  didyoumean = callPackage ../tools/misc/didyoumean {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+
   diffPlugins = (callPackage ../build-support/plugins.nix {}).diffPlugins;
 
   dieHook = makeSetupHook {} ../build-support/setup-hooks/die.sh;
@@ -593,6 +597,15 @@ with pkgs;
 
   mod = callPackage ../development/tools/mod { };
 
+  mysql-shell = callPackage ../development/tools/mysql-shell {
+    inherit (darwin) cctools developer_cmds DarwinTools;
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+    boost = boost173; # Configure checks for specific version.
+    protobuf = protobuf3_11;
+    icu =  icu67;
+    v8 = v8_8_x;
+  };
+
   broadlink-cli = callPackage ../tools/misc/broadlink-cli {};
 
   fetchpatch = callPackage ../build-support/fetchpatch { }
@@ -670,9 +683,9 @@ with pkgs;
         };
         nghttp2 = buildPackages.nghttp2.override {
           fetchurl = stdenv.fetchurlBoot;
-          inherit zlib pkg-config openssl;
-          c-ares = buildPackages.c-ares.override { fetchurl = stdenv.fetchurlBoot; };
-          libev = buildPackages.libev.override { fetchurl = stdenv.fetchurlBoot; };
+          inherit pkg-config;
+          enableApp = false; # curl just needs libnghttp2
+          enableTests = false; # avoids bringing `cunit` and `tzdata` into scope
         };
       });
     };
@@ -712,8 +725,8 @@ with pkgs;
 
   installShellFiles = callPackage ../build-support/install-shell-files {};
 
-  # See doc/builders/special/invalidateFetcherByDrvHash.section.md or
-  # https://nixos.org/manual/nixpkgs/unstable/#sec-pkgs-invalidateFetcherByDrvHash
+  # See doc/builders/testers.chapter.md or
+  # https://nixos.org/manual/nixpkgs/unstable/#tester-invalidateFetcherByDrvHash
   invalidateFetcherByDrvHash = f: args:
     let
       drvPath = (f args).drvPath;
@@ -826,6 +839,8 @@ with pkgs;
 
   srcOnly = callPackage ../build-support/src-only { };
 
+  subnetcalc = callPackage ../tools/networking/subnetcalc { };
+
   substitute = callPackage ../build-support/substitute/substitute.nix { };
 
   substituteAll = callPackage ../build-support/substitute/substitute-all.nix { };
@@ -854,7 +869,9 @@ with pkgs;
   setJavaClassPath = makeSetupHook { } ../build-support/setup-hooks/set-java-classpath.sh;
 
   fixDarwinDylibNames = makeSetupHook {
+    name = "fix-darwin-dylib-names-hook";
     substitutions = { inherit (binutils) targetPrefix; };
+    meta.platforms = lib.platforms.darwin;
   } ../build-support/setup-hooks/fix-darwin-dylib-names.sh;
 
   writeDarwinBundle = callPackage ../build-support/make-darwin-bundle/write-darwin-bundle.nix { };
@@ -902,6 +919,8 @@ with pkgs;
   # lib functions depending on pkgs
   inherit (import ../pkgs-lib { inherit lib pkgs; }) formats;
 
+  testers = callPackage ../build-support/testers {};
+
   ### TOOLS
 
   _3llo = callPackage ../tools/misc/3llo { };
@@ -912,6 +931,8 @@ with pkgs;
 
   _1password-gui = callPackage ../applications/misc/1password-gui { };
 
+  _1password-gui-beta = callPackage ../applications/misc/1password-gui/beta.nix { };
+
   _6tunnel = callPackage ../tools/networking/6tunnel { };
 
   _7zz = callPackage ../tools/archivers/7zz { };
@@ -952,6 +973,8 @@ with pkgs;
 
   adafruit-ampy = callPackage ../tools/misc/adafruit-ampy { };
 
+  addlicense = callPackage ../tools/misc/addlicense { };
+
   adlplug = callPackage ../applications/audio/adlplug {
     inherit (darwin) libobjc;
     inherit (darwin.apple_sdk.frameworks) Cocoa CoreServices WebKit DiscRecording;
@@ -1069,6 +1092,8 @@ with pkgs;
 
   cf-vault = callPackage ../tools/admin/cf-vault { };
 
+  bikeshed = python3Packages.callPackage ../applications/misc/bikeshed { };
+
   cope = callPackage ../tools/misc/cope { };
 
   ejson2env = callPackage ../tools/admin/ejson2env { };
@@ -1141,6 +1166,8 @@ with pkgs;
 
   tfk8s = callPackage ../tools/misc/tfk8s { };
 
+  thumbs = callPackage ../tools/misc/thumbs { };
+
   tnat64 = callPackage ../tools/networking/tnat64 { };
 
   topicctl = callPackage ../tools/misc/topicctl { };
@@ -1182,6 +1209,265 @@ with pkgs;
 
   breitbandmessung = callPackage ../applications/networking/breitbandmessung { };
 
+  ### APPLICATIONS/EMULATORS
+
+  atari800 = callPackage ../applications/emulators/atari800 { };
+
+  ataripp = callPackage ../applications/emulators/atari++ { };
+
+  attract-mode = callPackage ../applications/emulators/attract-mode { };
+
+  basiliskii = callPackage ../applications/emulators/basiliskii { };
+
+  bochs = callPackage ../applications/emulators/bochs {
+    wxGTK = wxGTK30;
+  };
+
+  caprice32 = callPackage ../applications/emulators/caprice32 { };
+
+  ccemux = callPackage ../applications/emulators/ccemux { };
+
+  cdemu-client = callPackage ../applications/emulators/cdemu/client.nix { };
+
+  cdemu-daemon = callPackage ../applications/emulators/cdemu/daemon.nix { };
+
+  cen64 = callPackage ../applications/emulators/cen64 { };
+
+  citra = libsForQt5.callPackage ../applications/emulators/citra { };
+
+  collapseos-cvm = callPackage ../applications/emulators/collapseos-cvm { };
+
+  craftos-pc = callPackage ../applications/emulators/craftos-pc { };
+
+  darcnes = callPackage ../applications/emulators/darcnes { };
+
+  desmume = callPackage ../applications/emulators/desmume { };
+
+  dgen-sdl = callPackage ../applications/emulators/dgen-sdl { };
+
+  dlx = callPackage ../applications/emulators/dlx { };
+
+  dosbox = callPackage ../applications/emulators/dosbox { };
+
+  dosbox-staging = callPackage ../applications/emulators/dosbox-staging { };
+
+  duckstation = libsForQt5.callPackage ../applications/emulators/duckstation {};
+
+  dynamips = callPackage ../applications/emulators/dynamips { };
+
+  emu2 = callPackage ../applications/emulators/emu2 { };
+
+  emulationstation = callPackage ../applications/emulators/emulationstation { };
+
+  fceux = libsForQt5.callPackage ../applications/emulators/fceux { };
+
+  firebird-emu = libsForQt5.callPackage ../applications/emulators/firebird-emu { };
+
+  flycast = callPackage ../applications/emulators/flycast { };
+
+  fsuae = callPackage ../applications/emulators/fs-uae { };
+
+  fsuae-launcher = callPackage ../applications/emulators/fs-uae/launcher.nix { };
+
+  fuse-emulator = callPackage ../applications/emulators/fuse-emulator {};
+
+  gcdemu = callPackage ../applications/emulators/cdemu/gui.nix { };
+
+  gensgs = pkgsi686Linux.callPackage ../applications/emulators/gens-gs { };
+
+  goldberg-emu = callPackage ../applications/emulators/goldberg-emu { };
+
+  gxemul = callPackage ../applications/emulators/gxemul { };
+
+  hatari = callPackage ../applications/emulators/hatari { };
+
+  hercules = callPackage ../applications/emulators/hercules { };
+
+  image-analyzer = callPackage ../applications/emulators/cdemu/analyzer.nix { };
+
+  kega-fusion = pkgsi686Linux.callPackage ../applications/emulators/kega-fusion { };
+
+  lambda-delta = callPackage ../applications/emulators/lambda-delta { };
+
+  libdsk = callPackage ../applications/emulators/libdsk { };
+
+  libmirage = callPackage ../applications/emulators/cdemu/libmirage.nix { };
+
+  maiko = callPackage ../applications/emulators/maiko {
+    inherit (xorg) libX11;
+  };
+
+  mame = libsForQt514.callPackage ../applications/emulators/mame {
+    inherit (darwin.apple_sdk.frameworks) CoreAudioKit ForceFeedback;
+  };
+
+  mednafen = callPackage ../applications/emulators/mednafen {
+    inherit (darwin) libiconv;
+  };
+
+  mednafen-server = callPackage ../applications/emulators/mednafen/server.nix { };
+
+  mednaffe = callPackage ../applications/emulators/mednaffe { };
+
+  melonDS = libsForQt5.callPackage ../applications/emulators/melonDS { };
+
+  mgba = libsForQt5.callPackage ../applications/emulators/mgba { };
+
+  mupen64plus = callPackage ../applications/emulators/mupen64plus { };
+
+  nestopia = callPackage ../applications/emulators/nestopia { };
+
+  np2kai = callPackage ../applications/emulators/np2kai { };
+
+  oberon-risc-emu = callPackage ../applications/emulators/oberon-risc-emu { };
+
+  openmsx = callPackage ../applications/emulators/openmsx {
+    python = python3;
+  };
+
+  pcem = callPackage ../applications/emulators/pcem { };
+
+  pcsx2 = callPackage ../applications/emulators/pcsx2 {
+    wxGTK = wxGTK30-gtk3;
+  };
+
+  pcsxr = callPackage ../applications/emulators/pcsxr { };
+
+  ppsspp = libsForQt5.callPackage ../applications/emulators/ppsspp { };
+
+  proton-caller = callPackage ../applications/emulators/proton-caller { };
+
+  punes = libsForQt5.callPackage ../applications/emulators/punes { };
+
+  py65 = python3Packages.callPackage ../applications/emulators/py65 { };
+
+  resim = callPackage ../applications/emulators/resim {};
+
+  retrofe = callPackage ../applications/emulators/retrofe { };
+
+  rpcs3 = libsForQt5.callPackage ../applications/emulators/rpcs3 { };
+
+  ruffle = callPackage ../applications/emulators/ruffle { };
+
+  ryujinx = callPackage ../applications/emulators/ryujinx { };
+
+  sameboy = callPackage ../applications/emulators/sameboy { };
+
+  simh = callPackage ../applications/emulators/simh { };
+
+  simplenes = callPackage ../applications/emulators/simplenes { };
+
+  snes9x = callPackage ../applications/emulators/snes9x { };
+
+  snes9x-gtk = callPackage ../applications/emulators/snes9x {
+    withGtk = true;
+  };
+
+  stella = callPackage ../applications/emulators/stella { };
+
+  termtekst = callPackage ../applications/emulators/termtekst { };
+
+  tilem = callPackage ../applications/emulators/tilem { };
+
+  tiny8086 = callPackage ../applications/emulators/tiny8086 { };
+
+  tinyemu = callPackage ../applications/emulators/tinyemu { };
+
+  uae = callPackage ../applications/emulators/uae { };
+
+  uxn = callPackage ../applications/emulators/uxn { };
+
+  vbam = callPackage ../applications/emulators/vbam { };
+
+  vice = callPackage ../applications/emulators/vice { };
+
+  winetricks = callPackage ../applications/emulators/wine/winetricks.nix {
+    inherit (gnome) zenity;
+  };
+
+  xcpc = callPackage ../applications/emulators/xcpc { };
+
+  yapesdl = callPackage ../applications/emulators/yapesdl { };
+
+  zesarux = callPackage ../applications/emulators/zesarux { };
+
+  zsnes = pkgsi686Linux.callPackage ../applications/emulators/zsnes { };
+
+  ### APPLICATIONS/EMULATORS/BSNES
+
+  ares = callPackage ../applications/emulators/bsnes/ares { };
+
+  bsnes-hd = callPackage ../applications/emulators/bsnes/bsnes-hd {
+    inherit (gnome2) gtksourceview;
+    inherit (darwin.apple_sdk.frameworks) Cocoa OpenAL;
+  };
+
+  higan = callPackage ../applications/emulators/bsnes/higan { };
+
+  ### APPLICATIONS/EMULATORS/DOLPHIN-EMU
+
+  dolphin-emu = callPackage ../applications/emulators/dolphin-emu { };
+
+  dolphin-emu-beta = qt5.callPackage ../applications/emulators/dolphin-emu/master.nix {
+    inherit (darwin.apple_sdk.frameworks) CoreBluetooth ForceFeedback IOKit OpenGL;
+  };
+
+  dolphin-emu-primehack = qt5.callPackage ../applications/emulators/dolphin-emu/primehack.nix {
+    inherit (darwin.apple_sdk.frameworks) CoreBluetooth ForceFeedback IOKit OpenGL;
+  };
+
+  ### APPLICATIONS/EMULATORS/RETROARCH
+
+  retroarchBare = callPackage ../applications/emulators/retroarch {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) AppKit Foundation;
+  };
+
+  retroarchFull = retroarch.override {
+    cores = builtins.filter
+      # Remove cores not supported on platform
+      (c: c ? libretroCore && (lib.meta.availableOn stdenv.hostPlatform c))
+      (builtins.attrValues libretro);
+  };
+
+  wrapRetroArch = { retroarch }:
+    callPackage ../applications/emulators/retroarch/wrapper.nix
+      { inherit retroarch; };
+
+  retroarch = wrapRetroArch { retroarch = retroarchBare; };
+
+  libretro = recurseIntoAttrs
+    (callPackage ../applications/emulators/retroarch/cores.nix {
+      retroarch = retroarchBare;
+    });
+
+  kodi-retroarch-advanced-launchers =
+    callPackage ../applications/emulators/retroarch/kodi-advanced-launchers.nix { };
+
+  ### APPLICATIONS/EMULATORS/YUZU
+
+  yuzu-mainline = callPackage ../applications/emulators/yuzu {
+    branch = "mainline";
+  };
+
+  yuzu-ea = callPackage ../applications/emulators/yuzu {
+    branch = "early-access";
+  };
+
+  ### APPLICATIONS/EMULATORS/COMMANDERX16
+
+  x16-emulator = callPackage ../applications/emulators/commanderx16/emulator.nix { };
+  x16-rom = callPackage ../applications/emulators/commanderx16/rom.nix { };
+  x16-run = (callPackage ../applications/emulators/commanderx16/run.nix { }) {
+    emulator = x16-emulator;
+    rom = x16-rom;
+  };
+
+  yabause = libsForQt5.callPackage ../applications/emulators/yabause {
+    freeglut = null;
+    openal = null;
+  };
+
   ### APPLICATIONS/TERMINAL-EMULATORS
 
   alacritty = callPackage ../applications/terminal-emulators/alacritty {
@@ -1351,6 +1637,8 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  amberol = callPackage ../applications/audio/amberol {};
+
   inherit (callPackages ../development/tools/ammonite {})
     ammonite_2_12
     ammonite_2_13;
@@ -1447,6 +1735,8 @@ with pkgs;
 
   apitrace = libsForQt514.callPackage ../applications/graphics/apitrace {};
 
+  argagg = callPackage ../development/libraries/argagg { };
+
   argtable = callPackage ../development/libraries/argtable { };
 
   arguments = callPackage ../development/libraries/arguments { };
@@ -1541,8 +1831,6 @@ with pkgs;
 
   aws-nuke = callPackage ../tools/admin/aws-nuke { };
 
-  aws-okta = callPackage ../tools/security/aws-okta { };
-
   aws-rotate-key = callPackage ../tools/admin/aws-rotate-key { };
 
   aws-sam-cli = callPackage ../development/tools/aws-sam-cli { };
@@ -1723,8 +2011,6 @@ with pkgs;
 
   codeql = callPackage ../development/tools/analysis/codeql { };
 
-  container-linux-config-transpiler = callPackage ../development/tools/container-linux-config-transpiler { };
-
   fedora-backgrounds = callPackage ../data/misc/fedora-backgrounds { };
 
   ccextractor = callPackage ../applications/video/ccextractor { };
@@ -1825,6 +2111,8 @@ with pkgs;
 
   droidcam = callPackage ../applications/video/droidcam { };
 
+  droidmote = callPackage ../tools/inputmethods/droidmote { };
+
   ecdsautils = callPackage ../tools/security/ecdsautils { };
 
   echidna = haskell.lib.compose.justStaticExecutables (haskellPackages.callPackage (../tools/security/echidna) { });
@@ -1875,6 +2163,8 @@ with pkgs;
 
   fxlinuxprintutil = callPackage ../tools/misc/fxlinuxprintutil { };
 
+  gbl = callPackage ../tools/archivers/gbl { };
+
   genann = callPackage ../development/libraries/genann { };
 
   genpass = callPackage ../tools/security/genpass {
@@ -2053,6 +2343,8 @@ with pkgs;
 
   passExtensions = recurseIntoAttrs pass.extensions;
 
+  platformsh = callPackage ../misc/platformsh { };
+
   inherd-quake = callPackage ../applications/misc/inherd-quake {
     inherit (darwin.apple_sdk.frameworks) CoreServices Security;
   };
@@ -2357,8 +2649,7 @@ with pkgs;
 
   libtensorflow-bin = callPackage ../development/libraries/science/math/tensorflow/bin.nix {
     cudaSupport = config.cudaSupport or false;
-    cudatoolkit = cudatoolkit_10_0;
-    cudnn = cudnn_7_4_cudatoolkit_10_0;
+    cudaPackages = cudaPackages_10_0;
   };
 
   libtensorflow =
@@ -2402,10 +2693,6 @@ with pkgs;
 
   boca = callPackage ../development/libraries/boca { };
 
-  bochs = callPackage ../applications/emulators/bochs {
-    wxGTK = wxGTK30;
-  };
-
   bubblewrap = callPackage ../tools/admin/bubblewrap { };
 
   borgbackup = callPackage ../tools/backup/borgbackup { };
@@ -2460,10 +2747,6 @@ with pkgs;
   breakpointHook = assert stdenv.isLinux;
     makeSetupHook { } ../build-support/setup-hooks/breakpoint-hook.sh;
 
-  py65 = python3Packages.callPackage ../applications/emulators/py65 { };
-
-  simh = callPackage ../applications/emulators/simh { };
-
   btrfs-progs = callPackage ../tools/filesystems/btrfs-progs { };
 
   btrfs-snap = callPackage ../tools/filesystems/btrfs-snap { };
@@ -2482,8 +2765,6 @@ with pkgs;
 
   bustle = haskellPackages.bustle;
 
-  buttersink = callPackage ../tools/filesystems/buttersink { };
-
   bwm_ng = callPackage ../tools/networking/bwm-ng { };
 
   bwbasic = callPackage ../development/interpreters/bwbasic { };
@@ -2587,20 +2868,10 @@ with pkgs;
 
   cde = callPackage ../tools/package-management/cde { };
 
-  cdemu-daemon = callPackage ../applications/emulators/cdemu/daemon.nix { };
-
-  cdemu-client = callPackage ../applications/emulators/cdemu/client.nix { };
-
   ceres-solver = callPackage ../development/libraries/ceres-solver {
     gflags = null; # only required for examples/tests
   };
 
-  craftos-pc = callPackage ../applications/emulators/craftos-pc { };
-
-  gcdemu = callPackage ../applications/emulators/cdemu/gui.nix { };
-
-  image-analyzer = callPackage ../applications/emulators/cdemu/analyzer.nix { };
-
   cbor-diag = callPackage ../development/tools/cbor-diag { };
 
   cassowary = callPackage ../tools/networking/cassowary { };
@@ -2727,6 +2998,8 @@ with pkgs;
 
   clipman = callPackage ../tools/wayland/clipman { };
 
+  kabeljau = callPackage ../games/kabeljau { };
+
   kanshi = callPackage ../tools/wayland/kanshi { };
 
   oguri = callPackage  ../tools/wayland/oguri { };
@@ -2739,7 +3012,9 @@ with pkgs;
 
   swayr = callPackage ../tools/wayland/swayr { };
 
-  swaytools = callPackage ../tools/wayland/swaytools { };
+  swaysome = callPackage ../tools/wayland/swaysome { };
+
+  swaytools = python3Packages.callPackage ../tools/wayland/swaytools { };
 
   wayland-utils = callPackage ../tools/wayland/wayland-utils { };
 
@@ -2850,10 +3125,14 @@ with pkgs;
 
   cucumber = callPackage ../development/tools/cucumber {};
 
+  dabet = callPackage ../tools/misc/dabet { };
+
   dabtools = callPackage ../applications/radio/dabtools { };
 
   daemontools = callPackage ../tools/admin/daemontools { };
 
+  dagger = callPackage ../development/tools/continuous-integration/dagger { };
+
   dale = callPackage ../development/compilers/dale { };
 
   damon = callPackage ../tools/admin/damon { };
@@ -2868,6 +3147,8 @@ with pkgs;
 
   dasher = callPackage ../applications/accessibility/dasher { };
 
+  datafusion-cli = callPackage ../development/misc/datafusion { };
+
   datamash = callPackage ../tools/misc/datamash { };
 
   datasette = with python3Packages; toPythonApplication datasette;
@@ -2982,10 +3263,6 @@ with pkgs;
 
   djv = callPackage ../applications/graphics/djv { };
 
-  dlx = callPackage ../applications/emulators/dlx { };
-
-  dgen-sdl = callPackage ../applications/emulators/dgen-sdl { };
-
   dnschef = python3Packages.callPackage ../tools/networking/dnschef { };
 
   doitlive = callPackage ../tools/misc/doitlive { };
@@ -3004,10 +3281,6 @@ with pkgs;
 
   dpic = callPackage ../tools/graphics/dpic { };
 
-  dragon-drop = callPackage ../tools/X11/dragon-drop {
-    gtk = gtk3;
-  };
-
   dstp = callPackage ../development/tools/dstp { };
 
   dsvpn = callPackage ../applications/networking/dsvpn { };
@@ -3099,7 +3372,9 @@ with pkgs;
 
   envsubst = callPackage ../tools/misc/envsubst { };
 
-  errcheck = callPackage ../development/tools/errcheck { };
+  errcheck = callPackage ../development/tools/errcheck {
+    buildGoModule = buildGo118Module;
+  };
 
   eschalot = callPackage ../tools/security/eschalot { };
 
@@ -3121,6 +3396,8 @@ with pkgs;
 
   extrude = callPackage ../tools/security/extrude { };
 
+  f2 = callPackage ../tools/misc/f2 {};
+
   f3 = callPackage ../tools/filesystems/f3 { };
 
   f3d = callPackage ../applications/graphics/f3d {
@@ -3332,7 +3609,11 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
-  gpu-burn = callPackage ../applications/misc/gpu-burn { };
+  gpu-burn = callPackage ../applications/misc/gpu-burn {
+    # gpu-burn doesn't build on gcc11. CUDA 11.3 is the last version to use
+    # pre-gcc11, in particular gcc9.
+    stdenv = gcc9Stdenv;
+  };
 
   greg = callPackage ../applications/audio/greg {
     pythonPackages = python3Packages;
@@ -3418,7 +3699,11 @@ with pkgs;
 
   jellycli = callPackage ../applications/audio/jellycli { };
 
-  jellyfin = callPackage ../servers/jellyfin { };
+  jellyfin = callPackage ../servers/jellyfin {
+    ffmpeg = jellyfin-ffmpeg;
+  };
+
+  jellyfin-ffmpeg = callPackage ../development/libraries/jellyfin-ffmpeg { };
 
   jellyfin-media-player = libsForQt5.callPackage ../applications/video/jellyfin-media-player {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Cocoa CoreAudio MediaPlayer;
@@ -3464,7 +3749,10 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
-  lapce = callPackage ../applications/editors/lapce { };
+  lapce = callPackage ../applications/editors/lapce {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) Security CoreServices ApplicationServices Carbon AppKit;
+  };
 
   lcdproc = callPackage ../servers/monitoring/lcdproc { };
 
@@ -3708,6 +3996,8 @@ with pkgs;
 
   oil-buku = callPackage ../applications/misc/oil-buku { };
 
+  osdlyrics = callPackage ../applications/audio/osdlyrics { };
+
   ossutil = callPackage ../tools/admin/ossutil {};
 
   pastel = callPackage ../applications/misc/pastel {
@@ -3746,6 +4036,8 @@ with pkgs;
     electron = electron_14;
   };
 
+  pouf = callPackage ../tools/misc/pouf { };
+
   poweralertd = callPackage ../tools/misc/poweralertd { };
 
   ps_mem = callPackage ../tools/system/ps_mem { };
@@ -3762,6 +4054,8 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
   };
 
+  pixcat = with python3Packages; toPythonApplication pixcat;
+
   pixiecore = callPackage ../tools/networking/pixiecore {};
 
   waitron = callPackage ../tools/networking/waitron {};
@@ -3801,8 +4095,6 @@ with pkgs;
 
   ropgadget = with python3Packages; toPythonApplication ropgadget;
 
-  ryujinx = callPackage ../applications/emulators/ryujinx { };
-
   scour = with python3Packages; toPythonApplication scour;
 
   s2png = callPackage ../tools/graphics/s2png { };
@@ -3825,8 +4117,6 @@ with pkgs;
 
   simg2img = callPackage ../tools/filesystems/simg2img { };
 
-  simplenes = callPackage ../applications/emulators/simplenes { };
-
   snippetpixie = callPackage ../tools/text/snippetpixie { };
 
   snowcat = callPackage ../tools/security/snowcat { };
@@ -4162,7 +4452,7 @@ with pkgs;
 
   cantata = libsForQt5.callPackage ../applications/audio/cantata { };
 
-  cantoolz = python3Packages.callPackage ../tools/networking/cantoolz { };
+  cantoolz = callPackage ../tools/networking/cantoolz { };
 
   can-utils = callPackage ../os-specific/linux/can-utils { };
 
@@ -4251,10 +4541,10 @@ with pkgs;
 
   cksfv = callPackage ../tools/networking/cksfv { };
 
-  clementine = libsForQt514.callPackage ../applications/audio/clementine {
+  clementine = libsForQt5.callPackage ../applications/audio/clementine {
     gst_plugins =
       with gst_all_1; [ gst-plugins-base gst-plugins-good gst-plugins-ugly gst-libav ];
-    protobuf = protobuf3_14;
+    protobuf = protobuf3_19;
   };
 
   clementineUnfree = clementine.unfree;
@@ -4283,8 +4573,6 @@ with pkgs;
     citrix_workspace_21_12_0
   ;
 
-  citra = libsForQt5.callPackage ../applications/emulators/citra { };
-
   cmigemo = callPackage ../tools/text/cmigemo { };
 
   cmst = libsForQt5.callPackage ../tools/networking/cmst { };
@@ -4502,8 +4790,6 @@ with pkgs;
   code-browser-gtk2 = callPackage ../applications/editors/code-browser { withGtk2 = true; };
   code-browser-gtk = callPackage ../applications/editors/code-browser { withGtk3 = true; };
 
-  c14 = callPackage ../applications/networking/c14 { };
-
   certstrap = callPackage ../tools/security/certstrap { };
 
   cfssl = callPackage ../tools/security/cfssl { };
@@ -4608,65 +4894,32 @@ with pkgs;
 
   createrepo_c = callPackage ../tools/package-management/createrepo_c { };
 
-  cromfs = callPackage ../tools/archivers/cromfs { };
+  cromfs = callPackage ../tools/archivers/cromfs {
+    stdenv = if stdenv.cc.isGNU then gcc10Stdenv else stdenv;
+  };
 
   cron = callPackage ../tools/system/cron { };
 
   snooze = callPackage ../tools/system/snooze { };
 
-  cudaPackages = recurseIntoAttrs (callPackage ../development/compilers/cudatoolkit {});
-  inherit (cudaPackages)
-    cudatoolkit_10
-    cudatoolkit_10_0
-    cudatoolkit_10_1
-    cudatoolkit_10_2
-    cudatoolkit_11
-    cudatoolkit_11_0
-    cudatoolkit_11_1
-    cudatoolkit_11_2
-    cudatoolkit_11_3
-    cudatoolkit_11_4
-    cudatoolkit_11_5
-    cudatoolkit_11_6;
-
-  cudatoolkit = cudatoolkit_10;
-
-  cudnnPackages = callPackages ../development/libraries/science/math/cudnn { };
-  inherit (cudnnPackages)
-    cudnn_7_4_cudatoolkit_10_0
-    cudnn_7_6_cudatoolkit_10_0
-    cudnn_7_6_cudatoolkit_10_1
-    cudnn_8_1_cudatoolkit_10_2
-    cudnn_8_1_cudatoolkit_11_0
-    cudnn_8_1_cudatoolkit_11_1
-    cudnn_8_1_cudatoolkit_11_2
-    cudnn_8_1_cudatoolkit_10
-    cudnn_8_3_cudatoolkit_10_2
-    cudnn_8_3_cudatoolkit_11_0
-    cudnn_8_3_cudatoolkit_11_1
-    cudnn_8_3_cudatoolkit_11_2
-    cudnn_8_3_cudatoolkit_11_3
-    cudnn_8_3_cudatoolkit_11_4
-    cudnn_8_3_cudatoolkit_11_5
-    cudnn_8_3_cudatoolkit_10
-    cudnn_8_3_cudatoolkit_11;
-
-  # Make sure to keep this in sync with the `cudatoolkit` version!
-  cudnn = cudnn_8_3_cudatoolkit_10;
-
-  cutensorPackages = callPackages ../development/libraries/science/math/cutensor { };
-  inherit (cutensorPackages)
-    cutensor_cudatoolkit_10
-    cutensor_cudatoolkit_10_1
-    cutensor_cudatoolkit_10_2
-    cutensor_cudatoolkit_11
-    cutensor_cudatoolkit_11_0
-    cutensor_cudatoolkit_11_1
-    cutensor_cudatoolkit_11_2
-    cutensor_cudatoolkit_11_3
-    cutensor_cudatoolkit_11_4;
-
-  cutensor = cutensor_cudatoolkit_10;
+  cudaPackages_10_0 = callPackage ./cuda-packages.nix { cudaVersion = "10.0"; };
+  cudaPackages_10_1 = callPackage ./cuda-packages.nix { cudaVersion = "10.1"; };
+  cudaPackages_10_2 = callPackage ./cuda-packages.nix { cudaVersion = "10.2"; };
+  cudaPackages_10 = cudaPackages_10_2;
+
+  cudaPackages_11_0 = callPackage ./cuda-packages.nix { cudaVersion = "11.0"; };
+  cudaPackages_11_1 = callPackage ./cuda-packages.nix { cudaVersion = "11.1"; };
+  cudaPackages_11_2 = callPackage ./cuda-packages.nix { cudaVersion = "11.2"; };
+  cudaPackages_11_3 = callPackage ./cuda-packages.nix { cudaVersion = "11.3"; };
+  cudaPackages_11_4 = callPackage ./cuda-packages.nix { cudaVersion = "11.4"; };
+  cudaPackages_11_5 = callPackage ./cuda-packages.nix { cudaVersion = "11.5"; };
+  cudaPackages_11_6 = callPackage ./cuda-packages.nix { cudaVersion = "11.6"; };
+  cudaPackages_11 = cudaPackages_11_6;
+  cudaPackages = recurseIntoAttrs cudaPackages_11;
+
+  # TODO: move to alias
+  cudatoolkit = cudaPackages.cudatoolkit;
+  cudatoolkit_11 = cudaPackages_11.cudatoolkit;
 
   curie = callPackage ../data/fonts/curie { };
 
@@ -4755,6 +5008,8 @@ with pkgs;
 
   debian-devscripts = callPackage ../tools/misc/debian-devscripts { };
 
+  debian-goodies = callPackage ../applications/misc/debian-goodies { };
+
   debootstrap = callPackage ../tools/misc/debootstrap { };
 
   debugedit = callPackage ../development/tools/misc/debugedit { };
@@ -4928,14 +5183,6 @@ with pkgs;
 
   dotnetfx40 = callPackage ../development/libraries/dotnetfx40 { };
 
-  dolphin-emu = callPackage ../applications/emulators/dolphin-emu { };
-  dolphin-emu-beta = qt5.callPackage ../applications/emulators/dolphin-emu/master.nix {
-    inherit (darwin.apple_sdk.frameworks) CoreBluetooth ForceFeedback IOKit OpenGL;
-  };
-  dolphin-emu-primehack = qt5.callPackage ../applications/emulators/dolphin-emu/primehack.nix {
-    inherit (darwin.apple_sdk.frameworks) CoreBluetooth ForceFeedback IOKit OpenGL;
-  };
-
   domoticz = callPackage ../servers/domoticz { };
 
   doomseeker = qt5.callPackage ../applications/misc/doomseeker { };
@@ -5081,6 +5328,8 @@ with pkgs;
 
   mcrcon = callPackage ../tools/networking/mcrcon {};
 
+  mozillavpn = libsForQt5.callPackage ../tools/networking/mozillavpn { };
+
   mozwire = callPackage ../tools/networking/mozwire {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -5343,7 +5592,8 @@ with pkgs;
   };
 
   exempi = callPackage ../development/libraries/exempi {
-    stdenv = if stdenv.isi686 then gcc6Stdenv else stdenv;
+    stdenv = if stdenv.isi686 then gcc6Stdenv else gcc9Stdenv;
+    boost  = boost15x;
   };
 
   execline = skawarePackages.execline;
@@ -5539,8 +5789,6 @@ with pkgs;
 
   fio = callPackage ../tools/system/fio { };
 
-  firebird-emu = libsForQt5.callPackage ../applications/emulators/firebird-emu { };
-
   flamerobin = callPackage ../applications/misc/flamerobin { };
 
   flashrom = callPackage ../tools/misc/flashrom { };
@@ -5751,6 +5999,8 @@ with pkgs;
 
   uniscribe = callPackage ../tools/text/uniscribe { };
 
+  calcoo = callPackage ../applications/misc/calcoo { };
+
   galculator = callPackage ../applications/misc/galculator {
     gtk = gtk3;
   };
@@ -6230,7 +6480,11 @@ with pkgs;
 
   google-guest-oslogin = callPackage ../tools/virtualization/google-guest-oslogin { };
 
-  google-cloud-cpp = callPackage ../development/libraries/google-cloud-cpp { };
+  google-cloud-cpp = callPackage ../development/libraries/google-cloud-cpp {
+    abseil-cpp = abseil-cpp.override {
+      cxxStandard = "14";
+    };
+  };
 
   google-java-format = callPackage ../development/tools/google-java-format { };
 
@@ -6521,6 +6775,8 @@ with pkgs;
 
   haste-client = callPackage ../tools/misc/haste-client { };
 
+  haste-server = callPackage ../servers/haste-server { };
+
   hal-hardware-analyzer = libsForQt5.callPackage ../applications/science/electronics/hal-hardware-analyzer { };
 
   half = callPackage ../development/libraries/half { };
@@ -6909,6 +7165,10 @@ with pkgs;
   jadx = callPackage ../tools/security/jadx { };
 
   jamesdsp = libsForQt5.callPackage ../applications/audio/jamesdsp { };
+  jamesdsp-pulse = libsForQt5.callPackage ../applications/audio/jamesdsp {
+    usePipewire = false;
+    usePulseaudio = true;
+  };
 
   jazzy = callPackage ../development/tools/jazzy { };
 
@@ -7478,7 +7738,7 @@ with pkgs;
 
   ninka = callPackage ../development/tools/misc/ninka { };
 
-  nixnote2 = libsForQt514.callPackage ../applications/misc/nixnote2 { };
+  nixnote2 = libsForQt5.callPackage ../applications/misc/nixnote2 { };
 
   nodenv = callPackage ../development/tools/nodenv { };
 
@@ -7510,10 +7770,13 @@ with pkgs;
   nodejs-slim-17_x = callPackage ../development/web/nodejs/v17.nix {
     enableNpm = false;
   };
+  nodejs-18_x = callPackage ../development/web/nodejs/v18.nix { };
+  nodejs-slim-18_x = callPackage ../development/web/nodejs/v18.nix {
+    enableNpm = false;
+  };
   # Update this when adding the newest nodejs major version!
-  # Do not set to nodejs-17_x because it requires 10.13 SDK on Darwin
-  nodejs_latest = nodejs-16_x;
-  nodejs-slim_latest = nodejs-slim-16_x;
+  nodejs_latest = nodejs-18_x;
+  nodejs-slim_latest = nodejs-slim-18_x;
 
   nodePackages_latest = dontRecurseIntoAttrs nodejs_latest.pkgs;
 
@@ -7524,8 +7787,6 @@ with pkgs;
 
   node2nix = nodePackages.node2nix;
 
-  np2kai = callPackage ../applications/emulators/np2kai { };
-
   openipmi = callPackage ../tools/system/openipmi { };
 
   ox = callPackage ../applications/editors/ox { };
@@ -7690,21 +7951,13 @@ with pkgs;
 
   libnids = callPackage ../tools/networking/libnids { };
 
-  rakshasa-rtorrent = recurseIntoAttrs
-    (callPackage ../tools/networking/p2p/rakshasa-rtorrent {
-      callPackage = newScope pkgs.rakshasa-rtorrent;
-    });
-
-  rtorrent = rakshasa-rtorrent.rtorrent;
-  libtorrent = rakshasa-rtorrent.libtorrent;
-
-  jesec-rtorrent = recurseIntoAttrs
-    (callPackage ../tools/networking/p2p/jesec-rtorrent {
-      callPackage = newScope pkgs.jesec-rtorrent;
-    });
+  rtorrent = callPackage ../applications/networking/p2p/rakshasa-rtorrent {
+    libtorrent = callPackage ../applications/networking/p2p/rakshasa-rtorrent/libtorrent.nix { };
+  };
 
-  rtorrent-jesec = jesec-rtorrent.rtorrent;
-  libtorrent-jesec = jesec-rtorrent.libtorrent;
+  jesec-rtorrent = callPackage ../applications/networking/p2p/jesec-rtorrent {
+    libtorrent = callPackage ../applications/networking/p2p/jesec-rtorrent/libtorrent.nix { };
+  };
 
   libmpack = callPackage ../development/libraries/libmpack { };
 
@@ -7953,14 +8206,6 @@ with pkgs;
 
   mdp = callPackage ../applications/misc/mdp { };
 
-  mednafen = callPackage ../applications/emulators/mednafen {
-    inherit (darwin) libiconv;
-  };
-
-  mednafen-server = callPackage ../applications/emulators/mednafen/server.nix { };
-
-  mednaffe = callPackage ../applications/emulators/mednaffe { };
-
   megacli = callPackage ../tools/misc/megacli { };
 
   megatools = callPackage ../tools/networking/megatools { };
@@ -7975,8 +8220,6 @@ with pkgs;
 
   mfoc = callPackage ../tools/security/mfoc { };
 
-  mgba = libsForQt5.callPackage ../applications/emulators/mgba { };
-
   microdnf = callPackage ../tools/package-management/microdnf { };
 
   microplane = callPackage ../tools/misc/microplane { };
@@ -8177,14 +8420,12 @@ with pkgs;
   nbd = callPackage ../tools/networking/nbd { };
   xnbd = callPackage ../tools/networking/xnbd { };
 
-  nccl = callPackage ../development/libraries/science/math/nccl { };
-  nccl_cudatoolkit_10 = nccl.override { cudatoolkit = cudatoolkit_10; };
-  nccl_cudatoolkit_11 = nccl.override { cudatoolkit = cudatoolkit_11; };
-
   ndjbdns = callPackage ../tools/networking/ndjbdns { };
 
   ndppd = callPackage ../applications/networking/ndppd { };
 
+  nearcore = callPackage ../applications/blockchains/nearcore { };
+
   nebula = callPackage ../tools/networking/nebula { };
 
   nemiver = callPackage ../development/tools/nemiver { };
@@ -8197,8 +8438,6 @@ with pkgs;
 
   nerdfonts = callPackage ../data/fonts/nerdfonts { };
 
-  nestopia = callPackage ../applications/emulators/nestopia { };
-
   netatalk = callPackage ../tools/filesystems/netatalk { };
 
   netavark = callPackage ../tools/networking/netavark { };
@@ -8245,6 +8484,8 @@ with pkgs;
 
   nethogs = callPackage ../tools/networking/nethogs { };
 
+  nethoscope = callPackage ../tools/networking/nethoscope { };
+
   netkittftp = callPackage ../tools/networking/netkit/tftp { };
 
   netlify-cli = callPackage ../development/web/netlify-cli { };
@@ -8316,6 +8557,8 @@ with pkgs;
 
   ngrok-1 = callPackage ../tools/networking/ngrok-1 { };
 
+  nifi = callPackage ../servers/web-apps/nifi { };
+
   nitter = callPackage ../servers/nitter { };
 
   noice = callPackage ../applications/misc/noice { };
@@ -8386,6 +8629,8 @@ with pkgs;
 
   patray = callPackage ../tools/audio/patray { };
 
+  pathvector = callPackage ../tools/networking/pathvector { };
+
   pasystray = callPackage ../tools/audio/pasystray { };
 
   pcmsolver = callPackage ../development/libraries/pcmsolver { };
@@ -8422,6 +8667,8 @@ with pkgs;
 
   npapi_sdk = callPackage ../development/libraries/npapi-sdk {};
 
+  nickel = callPackage ../development/interpreters/nickel { };
+
   npiet = callPackage ../development/interpreters/npiet { };
 
   npth = callPackage ../development/libraries/npth {};
@@ -8434,7 +8681,7 @@ with pkgs;
 
   nmap-formatter = callPackage ../tools/security/nmap-formatter { };
 
-  nmapsi4 = libsForQt514.callPackage ../tools/security/nmap/qt.nix { };
+  nmapsi4 = libsForQt5.callPackage ../tools/security/nmap/qt.nix { };
 
   nnn = callPackage ../applications/misc/nnn { };
 
@@ -8564,8 +8811,6 @@ with pkgs;
 
   objconv = callPackage ../development/tools/misc/objconv {};
 
-  odpdown = callPackage ../tools/typesetting/odpdown { };
-
   odpic = callPackage ../development/libraries/odpic { };
 
   odt2txt = callPackage ../tools/text/odt2txt { };
@@ -8833,7 +9078,7 @@ with pkgs;
 
   pantheon-tweaks = callPackage ../desktops/pantheon/third-party/pantheon-tweaks { };
 
-  paperless-ng = callPackage ../applications/office/paperless-ng { };
+  paperless-ngx = callPackage ../applications/office/paperless-ngx { };
 
   paperwork = callPackage ../applications/office/paperwork/paperwork-gtk.nix { };
 
@@ -8887,6 +9132,8 @@ with pkgs;
 
   pipe-rename = callPackage ../tools/misc/pipe-rename { };
 
+  pipecontrol = libsForQt5.callPackage ../applications/audio/pipecontrol { };
+
   pipectl = callPackage ../tools/misc/pipectl { };
 
   pitivi = callPackage ../applications/video/pitivi { };
@@ -9077,6 +9324,10 @@ with pkgs;
 
   pleroma = callPackage ../servers/pleroma { };
 
+  plfit = callPackage ../tools/misc/plfit {
+    python = null;
+  };
+
   ploticus = callPackage ../tools/graphics/ploticus {
     libpng = libpng12;
   };
@@ -9089,11 +9340,7 @@ with pkgs;
 
   pm2 = nodePackages.pm2;
 
-  pngcheck = callPackage ../tools/graphics/pngcheck {
-    zlib = zlib.override {
-      static = true;
-    };
-  };
+  pngcheck = callPackage ../tools/graphics/pngcheck { };
 
   pngcrush = callPackage ../tools/graphics/pngcrush { };
 
@@ -9105,6 +9352,8 @@ with pkgs;
     libpng = libpng12;
   };
 
+  pngtools = callPackage ../tools/graphics/pngtools { };
+
   pngpp = callPackage ../development/libraries/png++ { };
 
   pngquant = callPackage ../tools/graphics/pngquant { };
@@ -9250,8 +9499,6 @@ with pkgs;
 
   pycflow2dot = with python3.pkgs; toPythonApplication pycflow2dot;
 
-  pydb = callPackage ../development/tools/pydb { };
-
   pydf = callPackage ../applications/misc/pydf { };
 
   pyinfra = with python3Packages; toPythonApplication pyinfra;
@@ -9461,6 +9708,8 @@ with pkgs;
     rekor-cli
     rekor-server;
 
+  rich-cli = callPackage ../misc/rich-cli { };
+
   richgo = callPackage ../development/tools/richgo {  };
 
   rs = callPackage ../tools/text/rs { };
@@ -9531,7 +9780,7 @@ with pkgs;
   rescuetime = libsForQt5.callPackage ../applications/misc/rescuetime { };
 
   inherit (callPackage ../development/misc/resholve { })
-    resholve resholvePackage resholveScript resholveScriptBin;
+    resholve;
 
   restool = callPackage ../os-specific/linux/restool {};
 
@@ -9641,8 +9890,6 @@ with pkgs;
 
   rubocop = rubyPackages.rubocop;
 
-  ruffle = callPackage ../applications/emulators/ruffle { };
-
   runningx = callPackage ../tools/X11/runningx { };
 
   rund = callPackage ../development/tools/rund { };
@@ -9873,6 +10120,8 @@ with pkgs;
 
   shen-sources = callPackage ../development/interpreters/shen-sources { };
 
+  shiv = with python3Packages; toPythonApplication shiv;
+
   shocco = callPackage ../tools/text/shocco { };
 
   shopify-cli = callPackage ../development/web/shopify-cli { };
@@ -10234,8 +10483,6 @@ with pkgs;
 
   sshoogr = callPackage ../tools/networking/sshoogr { };
 
-  ssmtp = callPackage ../tools/networking/ssmtp { };
-
   ssocr = callPackage ../applications/misc/ssocr { };
 
   ssss = callPackage ../tools/security/ssss { };
@@ -10425,8 +10672,6 @@ with pkgs;
 
   teamviewer = libsForQt515.callPackage ../applications/networking/remote/teamviewer { };
 
-  teleconsole = callPackage ../tools/misc/teleconsole { };
-
   telegraf = callPackage ../servers/monitoring/telegraf { };
 
   teleport = callPackage ../servers/teleport {};
@@ -10451,8 +10696,6 @@ with pkgs;
 
   termplay = callPackage ../tools/misc/termplay { };
 
-  testEqualDerivation = callPackage ../build-support/test-equal-derivation.nix { };
-
   tetrd = callPackage ../applications/networking/tetrd { };
 
   tewisay = callPackage ../tools/misc/tewisay { };
@@ -10523,8 +10766,6 @@ with pkgs;
 
   tiledb = callPackage ../development/libraries/tiledb { };
 
-  tilem = callPackage ../applications/emulators/tilem { };
-
   timemachine = callPackage ../applications/audio/timemachine { };
 
   timelapse-deflicker = callPackage ../applications/graphics/timelapse-deflicker { };
@@ -10547,10 +10788,6 @@ with pkgs;
 
   tinycbor = callPackage ../development/libraries/tinycbor { };
 
-  tiny8086 = callPackage ../applications/emulators/tiny8086 { };
-
-  tinyemu = callPackage ../applications/emulators/tinyemu { };
-
   tinyfecvpn = callPackage ../tools/networking/tinyfecvpn { };
 
   tinygltf = callPackage ../development/libraries/tinygltf { };
@@ -10993,23 +11230,9 @@ with pkgs;
 
   witness = callPackage ../tools/security/witness { };
 
-  openconnect = openconnect_gnutls;
-
-  openconnect_openssl = callPackage ../tools/networking/openconnect {
-    inherit (darwin.apple_sdk.frameworks) PCSC;
-    gnutls = null;
-  };
-
-  openconnect_gnutls = callPackage ../tools/networking/openconnect {
-    inherit (darwin.apple_sdk.frameworks) PCSC;
-    openssl = null;
-  };
+  openconnectPackages = callPackage ../tools/networking/openconnect { };
 
-  openconnect_head = callPackage ../tools/networking/openconnect {
-    inherit (darwin.apple_sdk.frameworks) PCSC;
-    head = true;
-    openssl = null;
-  };
+  inherit (openconnectPackages) openconnect openconnect_unstable openconnect_openssl;
 
   globalprotect-openconnect = libsForQt5.callPackage ../tools/networking/globalprotect-openconnect { };
 
@@ -11067,6 +11290,8 @@ with pkgs;
 
   wf-recorder = callPackage ../applications/video/wf-recorder { };
 
+  whatweb = callPackage ../tools/security/whatweb { };
+
   whipper = callPackage ../applications/audio/whipper { };
 
   whitebophir = callPackage ../servers/web-apps/whitebophir { };
@@ -11211,7 +11436,9 @@ with pkgs;
   };
 
   unbound-full = unbound.override {
+    python = python3;
     withSystemd = true;
+    withPythonModule = true;
     withDoH = true;
     withECS = true;
     withDNSCrypt = true;
@@ -11255,6 +11482,8 @@ with pkgs;
 
   xfstests = callPackage ../tools/misc/xfstests { };
 
+  xprintidle = callPackage ../tools/X11/xprintidle {};
+
   xprintidle-ng = callPackage ../tools/X11/xprintidle-ng {};
 
   xscast = callPackage ../applications/video/xscast { };
@@ -11349,8 +11578,6 @@ with pkgs;
 
   webalizer = callPackage ../tools/networking/webalizer { };
 
-  weighttp = callPackage ../tools/networking/weighttp { };
-
   wget = callPackage ../tools/networking/wget {
     libpsl = null;
   };
@@ -11424,6 +11651,8 @@ with pkgs;
 
   wv2 = callPackage ../tools/misc/wv2 { };
 
+  wvkbd = callPackage ../applications/accessibility/wvkbd { };
+
   wyrd = callPackage ../tools/misc/wyrd {
     ocamlPackages = ocaml-ng.ocamlPackages_4_05;
   };
@@ -11609,6 +11838,8 @@ with pkgs;
 
   zerofree = callPackage ../tools/filesystems/zerofree { };
 
+  zfp = callPackage ../tools/compression/zfp {};
+
   zfs-autobackup = callPackage ../tools/backup/zfs-autobackup { };
 
   zfsbackup = callPackage ../tools/backup/zfsbackup { };
@@ -11617,6 +11848,8 @@ with pkgs;
 
   zfsnap = callPackage ../tools/backup/zfsnap { };
 
+  zpool-auto-expand-partitions = callPackage ../tools/filesystems/zpool-auto-expand-partitions { };
+
   zile = callPackage ../applications/editors/zile { };
 
   zinnia = callPackage ../tools/inputmethods/zinnia { };
@@ -11923,9 +12156,15 @@ with pkgs;
     jdk = jdk8;
   };
 
+  alan = callPackage ../development/compilers/alan { };
+
+  alan_2 = callPackage ../development/compilers/alan/2.nix { };
+
   algol68g = callPackage ../development/compilers/algol68g { };
 
-  armips = callPackage ../development/compilers/armips { };
+  armips = callPackage ../development/compilers/armips {
+    stdenv = gcc10Stdenv;
+  };
 
   arachne-pnr = callPackage ../development/compilers/arachne-pnr { };
 
@@ -11965,7 +12204,7 @@ with pkgs;
 
   colm = callPackage ../development/compilers/colm { };
 
-  colmap = libsForQt514.callPackage ../applications/science/misc/colmap { };
+  colmap = libsForQt5.callPackage ../applications/science/misc/colmap { };
   colmapWithCuda = colmap.override { cudaSupport = true; cudatoolkit = cudatoolkit_11; };
 
   chickenPackages_4 = callPackage ../development/compilers/chicken/4 { };
@@ -12126,8 +12365,6 @@ with pkgs;
 
   flasm = callPackage ../development/compilers/flasm { };
 
-  flycast = callPackage ../applications/emulators/flycast { };
-
   flyctl = callPackage ../development/web/flyctl { };
 
   fluidd = callPackage ../applications/misc/fluidd { };
@@ -12158,6 +12395,7 @@ with pkgs;
       num =
         if (with stdenv.targetPlatform; isVc4 || libc == "relibc") then 6
         else if (stdenv.targetPlatform.isAarch64 && stdenv.isDarwin) then 11
+        else if (stdenv.targetPlatform.isx86_64) then 11
         else if stdenv.targetPlatform.isAarch64 then 9
         else 10;
       numS = toString num;
@@ -12390,8 +12628,14 @@ with pkgs;
 
   gcc_latest = gcc11;
 
-  # aarch64-darwin doesn't support earlier gcc
-  gfortran = if (stdenv.isDarwin && stdenv.isAarch64) then gfortran11 else gfortran9;
+  # Use the same GCC version as the one from stdenv by default
+  gfortran = wrapCC (gccStdenv.cc.cc.override {
+    name = "gfortran";
+    langFortran = true;
+    langCC = false;
+    langC = false;
+    profiledCompiler = false;
+  });
 
   gfortran48 = wrapCC (gcc48.cc.override {
     name = "gfortran";
@@ -12710,19 +12954,9 @@ with pkgs;
     buildPackages = buildPackages // { stdenv = buildPackages.gcc8Stdenv; };
   });
 
-  go_1_18 = callPackage ../development/compilers/go/1.18.nix ({
-    inherit (darwin.apple_sdk.frameworks) Security Foundation;
-  } // lib.optionalAttrs (stdenv.cc.isGNU && stdenv.isAarch64) {
-    stdenv = gcc8Stdenv;
-    buildPackages = buildPackages // { stdenv = buildPackages.gcc8Stdenv; };
-  });
-
-  go_2-dev = callPackage ../development/compilers/go/2-dev.nix ({
+  go_1_18 = callPackage ../development/compilers/go/1.18.nix {
     inherit (darwin.apple_sdk.frameworks) Security Foundation;
-  } // lib.optionalAttrs (stdenv.cc.isGNU && stdenv.isAarch64) {
-    stdenv = gcc8Stdenv;
-    buildPackages = buildPackages // { stdenv = buildPackages.gcc8Stdenv; };
-  });
+  };
 
   go = go_1_17;
 
@@ -12827,10 +13061,6 @@ with pkgs;
     graalvm = graalvm11-ce;
   };
 
-  inherit (callPackages ../development/compilers/graalvm/enterprise-edition.nix { })
-    graalvm8-ee
-    graalvm11-ee;
-
   openshot-qt = libsForQt5.callPackage ../applications/video/openshot-qt { };
 
   lingua-franca = callPackage ../development/compilers/lingua-franca { };
@@ -13054,7 +13284,7 @@ with pkgs;
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_11.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_11.libraries or llvmPackages_11.libraries;
-  } // lib.optionalAttrs (stdenv.hostPlatform.isi686 && buildPackages.stdenv.cc.isGNU) {
+  } // lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.hostPlatform == stdenv.buildPlatform && buildPackages.stdenv.cc.isGNU) {
     stdenv = gcc7Stdenv;
   }));
 
@@ -13062,7 +13292,7 @@ with pkgs;
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_12.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_12.libraries or llvmPackages_12.libraries;
-  } // lib.optionalAttrs (stdenv.hostPlatform.isi686 && buildPackages.stdenv.cc.isGNU) {
+  } // lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.hostPlatform == stdenv.buildPlatform && buildPackages.stdenv.cc.isGNU) {
     stdenv = gcc7Stdenv;
   }));
 
@@ -13070,7 +13300,7 @@ with pkgs;
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_13.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_13.libraries or llvmPackages_13.libraries;
-  } // lib.optionalAttrs (stdenv.hostPlatform.isi686 && buildPackages.stdenv.cc.isGNU) {
+  } // lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.hostPlatform == stdenv.buildPlatform && buildPackages.stdenv.cc.isGNU) {
     stdenv = gcc7Stdenv;
   }));
 
@@ -13078,7 +13308,7 @@ with pkgs;
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_14.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_14.libraries or llvmPackages_14.libraries;
-  } // lib.optionalAttrs (stdenv.hostPlatform.isi686 && buildPackages.stdenv.cc.isGNU) {
+  } // lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.hostPlatform == stdenv.buildPlatform && buildPackages.stdenv.cc.isGNU) {
     stdenv = gcc7Stdenv;
   }));
 
@@ -13156,7 +13386,7 @@ with pkgs;
 
   mozart2-binary = callPackage ../development/compilers/mozart/binary.nix { };
 
-  muon = callPackage ../development/compilers/muon { };
+  muonlang = callPackage ../development/compilers/muonlang { };
 
   inherit (callPackages ../development/compilers/nim { })
     nim-unwrapped nimble-unwrapped nim;
@@ -13287,18 +13517,18 @@ with pkgs;
     inherit (darwin) apple_sdk;
   };
 
-  rust_1_58 = callPackage ../development/compilers/rust/1_58.nix {
+  rust_1_60 = callPackage ../development/compilers/rust/1_60.nix {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security SystemConfiguration;
-    llvm_13 = llvmPackages_13.libllvm;
+    llvm_14 = llvmPackages_14.libllvm;
   };
-  rust = rust_1_58;
+  rust = rust_1_60;
 
   mrustc = callPackage ../development/compilers/mrustc { };
   mrustc-minicargo = callPackage ../development/compilers/mrustc/minicargo.nix { };
   mrustc-bootstrap = callPackage ../development/compilers/mrustc/bootstrap.nix { };
 
-  rustPackages_1_58 = rust_1_58.packages.stable;
-  rustPackages = rustPackages_1_58;
+  rustPackages_1_60 = rust_1_60.packages.stable;
+  rustPackages = rustPackages_1_60;
 
   inherit (rustPackages) cargo clippy rustc rustPlatform;
 
@@ -13459,6 +13689,8 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) CoreServices;
   };
 
+  devspace = callPackage ../development/tools/misc/devspace { };
+
   maturin = callPackage ../development/tools/rust/maturin {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -13925,6 +14157,8 @@ with pkgs;
 
   wabt = callPackage ../development/tools/wabt { };
 
+  zuo = callPackage ../development/interpreters/zuo { };
+
   ### LUA interpreters
   luaInterpreters = callPackage ./../development/interpreters/lua-5 {};
   inherit (luaInterpreters) lua5_1 lua5_2 lua5_2_compat lua5_3 lua5_3_compat lua5_4 lua5_4_compat luajit_2_1 luajit_2_0;
@@ -13981,11 +14215,6 @@ with pkgs;
     python = python3;
     mkDerivation = stdenv.mkDerivation;
   };
-  octave-jit = callPackage ../development/interpreters/octave {
-    python = python3;
-    enableJIT = true;
-    mkDerivation = stdenv.mkDerivation;
-  };
   octaveFull = libsForQt5.callPackage ../development/interpreters/octave {
     python = python3;
     enableQt = true;
@@ -14263,6 +14492,20 @@ with pkgs;
 
   supercollider_scel = supercollider.override { useSCEL = true; };
 
+  supercolliderPlugins = recurseIntoAttrs {
+    sc3-plugins = callPackage ../development/interpreters/supercollider/plugins/sc3-plugins.nix {
+      fftw = fftwSinglePrec;
+    };
+  };
+
+  supercollider-with-plugins = callPackage ../development/interpreters/supercollider/wrapper.nix {
+    plugins = [];
+  };
+
+  supercollider-with-sc3-plugins = supercollider-with-plugins.override {
+    plugins = with supercolliderPlugins; [ sc3-plugins ];
+  };
+
   taktuk = callPackage ../applications/networking/cluster/taktuk { };
 
   tcl = tcl-8_6;
@@ -14343,7 +14586,9 @@ with pkgs;
 
   inav-blackbox-tools = callPackage ../tools/misc/inav-blackbox-tools { };
 
-  infracost = callPackage ../tools/misc/infracost { };
+  infracost = callPackage ../tools/misc/infracost {
+    buildGoModule = buildGo118Module;
+  };
 
   msp430GccSupport = callPackage ../development/misc/msp430/gcc-support.nix { };
 
@@ -14359,7 +14604,6 @@ with pkgs;
   mspdebug = callPackage ../development/misc/msp430/mspdebug.nix { };
 
   vc4-newlib = callPackage ../development/misc/vc4/newlib.nix {};
-  resim = callPackage ../applications/emulators/resim {};
 
   or1k-newlib = callPackage ../development/misc/or1k/newlib.nix {};
 
@@ -14417,12 +14661,8 @@ with pkgs;
 
   autoadb = callPackage ../misc/autoadb { };
 
-  inherit (callPackage ../tools/admin/ansible { })
-    ansible
-    ansible_2_8
-    ansible_2_9
-    ansible_2_10
-    ansible_2_11;
+  ansible = ansible_2_12;
+  ansible_2_12 = python3Packages.toPythonApplication python3Packages.ansible-core;
 
   ansible-lint = with python3.pkgs; toPythonApplication ansible-lint;
 
@@ -14486,7 +14726,8 @@ with pkgs;
     electron_14
     electron_15
     electron_16
-    electron_17;
+    electron_17
+    electron_18;
 
   autobuild = callPackage ../development/tools/misc/autobuild { };
 
@@ -14499,6 +14740,8 @@ with pkgs;
   autoconf269 = callPackage ../development/tools/misc/autoconf/2.69.nix { };
   autoconf271 = callPackage ../development/tools/misc/autoconf { };
 
+  acr  = callPackage ../development/tools/misc/acr { };
+
   autocutsel = callPackage ../tools/X11/autocutsel{ };
 
   automake = automake116x;
@@ -14568,7 +14811,10 @@ with pkgs;
     buildJdk = jdk11_headless;
     buildJdkName = "java11";
     runJdk = jdk11_headless;
-    stdenv = if stdenv.cc.isClang then llvmPackages.stdenv else stdenv;
+    stdenv =
+      if stdenv.cc.isClang then llvmPackages.stdenv
+      else if stdenv.cc.isGNU then gcc10Stdenv
+      else stdenv;
     bazel_self = bazel_4;
   };
 
@@ -14607,16 +14853,22 @@ with pkgs;
   bingrep = callPackage ../development/tools/analysis/bingrep { };
 
   binutils-unwrapped = callPackage ../development/tools/misc/binutils {
+    autoreconfHook = autoreconfHook269;
+    # FHS sys dirs presumably only have stuff for the build platform
+    noSysDirs = (stdenv.targetPlatform != stdenv.hostPlatform) || noSysDirs;
+  };
+  binutils-unwrapped-all-targets = callPackage ../development/tools/misc/binutils {
     autoreconfHook = if targetPlatform.isiOS then autoreconfHook269 else autoreconfHook;
     # FHS sys dirs presumably only have stuff for the build platform
     noSysDirs = (stdenv.targetPlatform != stdenv.hostPlatform) || noSysDirs;
+    withAllTargets = true;
   };
   binutils = wrapBintoolsWith {
     bintools = binutils-unwrapped;
   };
   binutils_nogold = lowPrio (wrapBintoolsWith {
     bintools = binutils-unwrapped.override {
-      gold = false;
+      enableGold = false;
     };
   });
   binutilsNoLibc = wrapBintoolsWith {
@@ -14693,6 +14945,7 @@ with pkgs;
   libodb = callPackage ../development/libraries/libodb { };
   libodb-sqlite = callPackage ../development/libraries/libodb-sqlite { };
   bdep = callPackage ../development/tools/build-managers/build2/bdep.nix { };
+  bore-cli = callPackage ../tools/networking/bore-cli/default.nix {};
   bpkg = callPackage ../development/tools/build-managers/build2/bpkg.nix { };
 
   buildkite-agent = callPackage ../development/tools/continuous-integration/buildkite-agent { };
@@ -15006,7 +15259,9 @@ with pkgs;
 
   doit = with python3Packages; toPythonApplication doit;
 
-  dolt = callPackage ../servers/sql/dolt { };
+  dolt = callPackage ../servers/sql/dolt {
+    buildGoModule = buildGo118Module;
+  };
 
   dot2tex = with python3.pkgs; toPythonApplication dot2tex;
 
@@ -15178,7 +15433,7 @@ with pkgs;
 
   gnome-desktop-testing = callPackage ../development/tools/gnome-desktop-testing {};
 
-  gnome-firmware-updater = callPackage ../applications/misc/gnome-firmware-updater {};
+  gnome-firmware = callPackage ../applications/misc/gnome-firmware {};
 
   gnome-usage = callPackage ../applications/misc/gnome-usage {};
 
@@ -15336,6 +15591,8 @@ with pkgs;
 
   kafka-delta-ingest = callPackage ../development/tools/kafka-delta-ingest { };
 
+  kamid = callPackage ../servers/ftp/kamid { };
+
   kati = callPackage ../development/tools/build-managers/kati { };
 
   kcat = callPackage ../development/tools/kcat { };
@@ -15362,8 +15619,6 @@ with pkgs;
 
   krew = callPackage ../development/tools/krew { };
 
-  kube-aws = callPackage ../development/tools/kube-aws { };
-
   kube-hunter = callPackage ../tools/security/kube-hunter { };
 
   kubeaudit = callPackage ../tools/security/kubeaudit { };
@@ -15520,6 +15775,8 @@ with pkgs;
     pythonPackages = python3Packages;
   };
 
+  nix-bisect = callPackage ../development/tools/misc/nix-bisect { };
+
   nix-build-uncached = callPackage ../development/tools/misc/nix-build-uncached { };
 
   nexus = callPackage ../development/tools/repository-managers/nexus {
@@ -15569,8 +15826,15 @@ with pkgs;
 
   parse-cli-bin = callPackage ../development/tools/parse-cli-bin { };
 
-  patchelf = callPackage ../development/tools/misc/patchelf { };
+  patchelf = if with stdenv.buildPlatform; isAarch64 && isMusl then
+    patchelf_0_13
+  else
+    patchelf_0_14;
   patchelf_0_9 = callPackage ../development/tools/misc/patchelf/0.9.nix { };
+  patchelf_0_13 = callPackage ../development/tools/misc/patchelf/0.13.nix {
+    patchelf = patchelf_0_14;
+  };
+  patchelf_0_14 = callPackage ../development/tools/misc/patchelf { };
 
   patchelfUnstable = lowPrio (callPackage ../development/tools/misc/patchelf/unstable.nix { });
 
@@ -15588,7 +15852,7 @@ with pkgs;
 
   pmccabe = callPackage ../development/tools/misc/pmccabe { };
 
-  pkgconf-unwrapped = callPackage ../development/tools/misc/pkgconf {};
+  pkgconf-unwrapped = callPackage ../development/tools/misc/pkgconf { };
   pkgconf = callPackage ../build-support/pkg-config-wrapper {
     pkg-config = pkgconf-unwrapped;
     baseBinName = "pkgconf";
@@ -15686,6 +15950,8 @@ with pkgs;
 
   redis-dump = callPackage ../development/tools/redis-dump { };
 
+  redis-plus-plus = callPackage ../development/libraries/redis-plus-plus { };
+
   redo = callPackage ../development/tools/build-managers/redo { };
 
   redo-apenwarr = callPackage ../development/tools/build-managers/redo-apenwarr { };
@@ -16106,8 +16372,6 @@ with pkgs;
 
   zydis = callPackage ../development/libraries/zydis { };
 
-  winpdb = callPackage ../development/tools/winpdb { };
-
   grabserial = callPackage ../development/tools/grabserial { };
 
   mypy = with python3Packages; toPythonApplication mypy;
@@ -16148,6 +16412,8 @@ with pkgs;
 
   agg = callPackage ../development/libraries/agg { };
 
+  agkozak-zsh-prompt = callPackage ../shells/zsh/agkozak-zsh-prompt { };
+
   alass = callPackage ../applications/video/alass { };
 
   allegro = allegro4;
@@ -16326,6 +16592,7 @@ with pkgs;
     boost174
     boost175
     boost177
+    boost178
   ;
 
   boost15x = boost159;
@@ -16652,8 +16919,6 @@ with pkgs;
 
   duckdb = callPackage ../development/libraries/duckdb {};
 
-  duckstation = libsForQt5.callPackage ../applications/emulators/duckstation {};
-
   easyloggingpp = callPackage ../development/libraries/easyloggingpp {};
 
   eccodes = callPackage ../development/libraries/eccodes {
@@ -16833,7 +17098,9 @@ with pkgs;
   fplll = callPackage ../development/libraries/fplll {};
   fplll_20160331 = callPackage ../development/libraries/fplll/20160331.nix {};
 
-  freeimage = callPackage ../development/libraries/freeimage { };
+  freeimage = callPackage ../development/libraries/freeimage {
+    libraw = libraw_unstable;
+  };
 
   freetts = callPackage ../development/libraries/freetts {
     jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
@@ -16937,6 +17204,8 @@ with pkgs;
 
   geos = callPackage ../development/libraries/geos { };
 
+  geos39 = callPackage ../development/libraries/geos/3.9.nix { };
+
   getdata = callPackage ../development/libraries/getdata { };
 
   inherit (callPackages ../development/libraries/getdns { })
@@ -17132,7 +17401,7 @@ with pkgs;
   gmp5 = callPackage ../development/libraries/gmp/5.1.x.nix { };
   gmp6 = callPackage ../development/libraries/gmp/6.x.nix { };
   gmp = gmp6;
-  gmpxx = appendToName "with-cxx" (gmp.override { cxx = true; });
+  gmpxx = gmp.override { cxx = true; };
 
   #GMP ex-satellite, so better keep it near gmp
   mpfr = callPackage ../development/libraries/mpfr { };
@@ -17186,7 +17455,12 @@ with pkgs;
 
   grilo-plugins = callPackage ../development/libraries/grilo-plugins { };
 
-  grpc = callPackage ../development/libraries/grpc { };
+  grpc = callPackage ../development/libraries/grpc {
+    # grpc builds with c++14 so abseil must also be built that way
+    abseil-cpp = abseil-cpp.override {
+      cxxStandard = "14";
+    };
+  };
 
   gsettings-qt = libsForQt5.callPackage ../development/libraries/gsettings-qt { };
 
@@ -17486,7 +17760,7 @@ with pkgs;
 
   hydraAntLogger = callPackage ../development/libraries/java/hydra-ant-logger { };
 
-  hydra-check = with python3.pkgs; toPythonApplication hydra-check;
+  hydra-check = with python310.pkgs; toPythonApplication hydra-check;
 
   hyena = callPackage ../development/libraries/hyena { };
 
@@ -17637,6 +17911,8 @@ with pkgs;
 
   jansson = callPackage ../development/libraries/jansson { };
 
+  jarowinkler-cpp = callPackage ../development/libraries/jarowinkler-cpp { };
+
   jasper = callPackage ../development/libraries/jasper { };
 
   jbig2dec = callPackage ../development/libraries/jbig2dec { };
@@ -18042,6 +18318,8 @@ with pkgs;
 
   libdv = callPackage ../development/libraries/libdv { };
 
+  libdvbcsa = callPackage ../development/libraries/libdvbcsa { };
+
   libdvbpsi = callPackage ../development/libraries/libdvbpsi { };
 
   libdwg = callPackage ../development/libraries/libdwg { };
@@ -18338,6 +18616,8 @@ with pkgs;
 
   libivykis = callPackage ../development/libraries/libivykis { };
 
+  libkqueue = callPackage ../development/libraries/libkqueue { };
+
   liblastfmSF = callPackage ../development/libraries/liblastfmSF { };
 
   liblcf = callPackage ../development/libraries/liblcf { };
@@ -18574,8 +18854,6 @@ with pkgs;
     hdf5 = hdf5_1_10;
   };
 
-  libmirage = callPackage ../applications/emulators/cdemu/libmirage.nix { };
-
   libmkv = callPackage ../development/libraries/libmkv { };
 
   libmms = callPackage ../development/libraries/libmms { };
@@ -18919,7 +19197,7 @@ with pkgs;
 
   libusb1 = callPackage ../development/libraries/libusb1 {
     inherit (darwin) libobjc;
-    inherit (darwin.apple_sdk.frameworks) IOKit;
+    inherit (darwin.apple_sdk.frameworks) IOKit Security;
     # TODO: remove once `udev` is `systemdMinimal` everywhere.
     udev = systemdMinimal;
   };
@@ -18951,7 +19229,7 @@ with pkgs;
   libva-minimal = libva.override { minimal = true; };
   libva-utils = callPackage ../development/libraries/libva/utils.nix { };
 
-  libva1 = callPackage ../development/libraries/libva/1.0.0.nix { };
+  libva1 = callPackage ../development/libraries/libva/1.nix { };
   libva1-minimal = libva1.override { minimal = true; };
 
   libvarlink = callPackage ../development/libraries/libvarlink { };
@@ -19062,7 +19340,7 @@ with pkgs;
 
   libxsmm = callPackage ../development/libraries/libxsmm { };
 
-  libixp_hg = callPackage ../development/libraries/libixp-hg { };
+  libixp = callPackage ../development/libraries/libixp { };
 
   libwpe = callPackage ../development/libraries/libwpe { };
 
@@ -19398,7 +19676,9 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) CoreServices;
   };
 
-  nss = lowPrio (callPackage ../development/libraries/nss { });
+  nss_latest = callPackage ../development/libraries/nss/latest.nix { };
+  nss_esr = callPackage ../development/libraries/nss/esr.nix { };
+  nss = nss_esr;
   nssTools = nss.tools;
 
   nss_wrapper = callPackage ../development/libraries/nss_wrapper { };
@@ -19458,6 +19738,8 @@ with pkgs;
   nvidia-optical-flow-sdk = callPackage ../development/libraries/nvidia-optical-flow-sdk { };
 
   nvtop = callPackage ../tools/system/nvtop { };
+  nvtop-nvidia = callPackage ../tools/system/nvtop { amd = false; };
+  nvtop-amd = callPackage ../tools/system/nvtop { nvidia = false; };
 
   ocl-icd = callPackage ../development/libraries/ocl-icd { };
 
@@ -19674,8 +19956,6 @@ with pkgs;
 
   plib = callPackage ../development/libraries/plib { };
 
-  pocketsphinx = callPackage ../development/libraries/pocketsphinx { };
-
   poco = callPackage ../development/libraries/poco { };
 
   podofo = callPackage ../development/libraries/podofo { };
@@ -19761,7 +20041,6 @@ with pkgs;
   protobuf3_7 = callPackage ../development/libraries/protobuf/3.7.nix { };
   protobuf3_6 = callPackage ../development/libraries/protobuf/3.6.nix { };
   protobuf3_1 = callPackage ../development/libraries/protobuf/3.1.nix { };
-  protobuf2_5 = callPackage ../development/libraries/protobuf/2.5.nix { };
 
   protobufc = callPackage ../development/libraries/protobufc/1.3.nix { };
 
@@ -19839,19 +20118,25 @@ with pkgs;
   qt512 = recurseIntoAttrs (makeOverridable
     (import ../development/libraries/qt-5/5.12) {
       inherit newScope;
-      inherit lib stdenv fetchurl fetchpatch fetchFromGitHub makeSetupHook makeWrapper;
+      inherit lib fetchurl fetchpatch fetchFromGitHub makeSetupHook makeWrapper;
       inherit bison cups dconf harfbuzz libGL perl gtk3;
       inherit (gst_all_1) gstreamer gst-plugins-base;
       inherit darwin;
+      stdenv = if stdenv.cc.isGNU
+        then (if (stdenv.targetPlatform.isx86_64) then gcc10Stdenv else gcc9Stdenv)
+        else stdenv;
     });
 
   qt514 = recurseIntoAttrs (makeOverridable
     (import ../development/libraries/qt-5/5.14) {
       inherit newScope;
-      inherit lib stdenv fetchurl fetchpatch fetchFromGitHub makeSetupHook makeWrapper;
+      inherit lib fetchurl fetchpatch fetchFromGitHub makeSetupHook makeWrapper;
       inherit bison cups dconf harfbuzz libGL perl gtk3;
       inherit (gst_all_1) gstreamer gst-plugins-base;
       inherit darwin;
+      stdenv = if stdenv.cc.isGNU
+        then (if (stdenv.targetPlatform.isx86_64) then gcc10Stdenv else gcc9Stdenv)
+        else stdenv;
     });
 
   qt515 = recurseIntoAttrs (makeOverridable
@@ -19878,9 +20163,9 @@ with pkgs;
     qt5 = qt515;
   });
 
-  # TODO bump to 5.14 on darwin once it's not broken; see #95199
-  qt5 =        if stdenv.hostPlatform.isDarwin then qt512 else qt515;
-  libsForQt5 = if stdenv.hostPlatform.isDarwin then libsForQt512 else libsForQt515;
+  # TODO bump to 5.15 on darwin once it's not broken; see #125548
+  qt5 =        if stdenv.hostPlatform.isDarwin then qt514 else qt515;
+  libsForQt5 = if stdenv.hostPlatform.isDarwin then libsForQt514 else libsForQt515;
 
   # plasma5Packages maps to the Qt5 packages set that is used to build the plasma5 desktop
   plasma5Packages = libsForQt515;
@@ -19921,6 +20206,8 @@ with pkgs;
 
   rapidcheck = callPackage ../development/libraries/rapidcheck {};
 
+  rapidfuzz-cpp = callPackage ../development/libraries/rapidfuzz-cpp { };
+
   rapidjson = callPackage ../development/libraries/rapidjson {};
 
   rapidxml = callPackage ../development/libraries/rapidxml {};
@@ -20056,6 +20343,8 @@ with pkgs;
     libGLU = null;
   });
 
+  SDL_audiolib = callPackage ../development/libraries/SDL_audiolib { };
+
   SDL_sixel = callPackage ../development/libraries/SDL_sixel { };
 
   SDL_gfx = callPackage ../development/libraries/SDL_gfx { };
@@ -20296,8 +20585,6 @@ with pkgs;
 
   sphinx-serve = with python3Packages; toPythonApplication sphinx-serve;
 
-  sphinxbase = callPackage ../development/libraries/sphinxbase { };
-
   sphinxsearch = callPackage ../servers/search/sphinxsearch { };
 
   spice = callPackage ../development/libraries/spice { };
@@ -20312,6 +20599,8 @@ with pkgs;
 
   spirv-cross = callPackage ../tools/graphics/spirv-cross { };
 
+  splat = callPackage ../applications/radio/splat { };
+
   sratom = callPackage ../development/libraries/audio/sratom { };
 
   srm = callPackage ../tools/security/srm { };
@@ -20436,6 +20725,8 @@ with pkgs;
 
   tagparser = callPackage ../development/libraries/tagparser { };
 
+  taskflow = callPackage ../development/libraries/taskflow { };
+
   tclap = callPackage ../development/libraries/tclap {};
 
   tcllib = callPackage ../development/libraries/tcllib { };
@@ -20444,8 +20735,6 @@ with pkgs;
 
   tclx = callPackage ../development/libraries/tclx { };
 
-  ntdb = callPackage ../development/libraries/ntdb { };
-
   tdb = callPackage ../development/libraries/tdb {};
 
   tdlib = callPackage ../development/libraries/tdlib { };
@@ -20507,6 +20796,10 @@ with pkgs;
 
   kyotocabinet = callPackage ../development/libraries/kyotocabinet { };
 
+  tomlc99 = callPackage ../development/libraries/tomlc99 { };
+
+  tomlcpp = callPackage ../development/libraries/tomlcpp { };
+
   tokyocabinet = callPackage ../development/libraries/tokyo-cabinet { };
 
   tokyotyrant = callPackage ../development/libraries/tokyo-tyrant { };
@@ -20724,7 +21017,10 @@ with pkgs;
   wxGTK30-gtk2 = wxGTK30.override { withGtk2 = true; };
   wxGTK30-gtk3 = wxGTK30.override { withGtk2 = false; };
 
-  wxmac = callPackage ../development/libraries/wxwidgets/wxmac30.nix { };
+  wxmac = callPackage ../development/libraries/wxwidgets/wxmac30.nix {
+    inherit (darwin.stubs) derez rez setfile;
+    inherit (darwin.apple_sdk.frameworks) AGL Cocoa Kernel WebKit;
+  };
 
   wxGTK31 = callPackage ../development/libraries/wxwidgets/wxGTK31.nix {
     inherit (darwin.stubs) setfile;
@@ -21205,7 +21501,7 @@ with pkgs;
 
   inherit (callPackages ../servers/asterisk { })
     asterisk asterisk-stable asterisk-lts
-    asterisk_13 asterisk_16 asterisk_17 asterisk_18;
+    asterisk_16 asterisk_18 asterisk_19;
 
   asterisk-module-sccp = callPackage ../servers/asterisk/sccp { };
 
@@ -21252,8 +21548,6 @@ with pkgs;
 
   dex2jar = callPackage ../development/tools/java/dex2jar { };
 
-  doh-proxy = callPackage ../servers/dns/doh-proxy { };
-
   doh-proxy-rust = callPackage ../servers/dns/doh-proxy-rust {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -21289,7 +21583,7 @@ with pkgs;
   engelsystem = callPackage ../servers/web-apps/engelsystem { php = php74; };
 
   envoy = callPackage ../servers/http/envoy {
-    jdk = openjdk11;
+    jdk = openjdk11_headless;
     gn = gn1924;
   };
 
@@ -21367,6 +21661,8 @@ with pkgs;
 
   grafana-loki = callPackage ../servers/monitoring/loki { };
 
+  grafana-mimir = callPackage ../servers/monitoring/mimir { };
+
   promtail = grafana-loki.overrideAttrs (o: {
     pname = "promtail";
     subPackages = ["clients/cmd/promtail"];
@@ -21391,13 +21687,15 @@ with pkgs;
 
   hashi-ui = callPackage ../servers/hashi-ui {};
 
-  hasura-graphql-engine = haskell.lib.compose.justStaticExecutables haskellPackages.graphql-engine;
+  hasura-graphql-engine = haskell.lib.compose.justStaticExecutables haskell.packages.ghc8107.graphql-engine;
 
   hasura-cli = callPackage ../servers/hasura/cli.nix { };
 
-  heapster = callPackage ../servers/monitoring/heapster { };
-
-  hbase = callPackage ../servers/hbase {};
+  inherit (callPackage ../servers/hbase {}) hbase_1_7 hbase_2_4 hbase_3_0;
+  hbase1 = hbase_1_7;
+  hbase2 = hbase_2_4;
+  hbase3 = hbase_3_0;
+  hbase = hbase2; # when updating, point to the latest stable release
 
   headphones = callPackage ../servers/headphones {};
 
@@ -21717,16 +22015,8 @@ with pkgs;
 
   hsphfpd = callPackage ../servers/pulseaudio/hsphfpd.nix { };
 
-  pulseaudio-hsphfpd = callPackage ../servers/pulseaudio/pali.nix {
-    inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa;
-  };
-
   pulseaudio = callPackage ../servers/pulseaudio ({
     inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa;
-  } // lib.optionalAttrs stdenv.isDarwin {
-    # Default autoreconfHook (2.70) fails on darwin,
-    # with "configure: error: *** Compiler does not support -std=gnu11"
-    autoreconfHook = buildPackages.autoreconfHook269;
   });
 
   qpaeq = libsForQt5.callPackage ../servers/pulseaudio/qpaeq.nix { };
@@ -21830,6 +22120,20 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
   };
 
+  mongodb-4_4 = callPackage ../servers/nosql/mongodb/4.4.nix {
+    sasl = cyrus_sasl;
+    boost = boost17x.override { enableShared = false; };
+    inherit (darwin) cctools;
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+
+  mongodb-5_0 = callPackage ../servers/nosql/mongodb/5.0.nix {
+    sasl = cyrus_sasl;
+    boost = boost17x.override { enableShared = false; };
+    inherit (darwin) cctools;
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+
   nginx-sso = callPackage ../servers/nginx-sso { };
 
   percona-server56 = callPackage ../servers/sql/percona/5.6.x.nix { };
@@ -21969,6 +22273,8 @@ with pkgs;
 
   postgresql_jdbc = callPackage ../development/java-modules/postgresql_jdbc { };
 
+  postgresqlTestHook = callPackage ../build-support/setup-hooks/postgresql-test-hook { };
+
   prom2json = callPackage ../servers/monitoring/prometheus/prom2json.nix { };
   prometheus = callPackage ../servers/monitoring/prometheus { };
   prometheus-alertmanager = callPackage ../servers/monitoring/prometheus/alertmanager.nix { };
@@ -21999,7 +22305,6 @@ with pkgs;
   prometheus-knot-exporter = callPackage ../servers/monitoring/prometheus/knot-exporter.nix { };
   prometheus-lnd-exporter = callPackage ../servers/monitoring/prometheus/lnd-exporter.nix { };
   prometheus-mail-exporter = callPackage ../servers/monitoring/prometheus/mail-exporter.nix { };
-  prometheus-mesos-exporter = callPackage ../servers/monitoring/prometheus/mesos-exporter.nix { };
   prometheus-mikrotik-exporter = callPackage ../servers/monitoring/prometheus/mikrotik-exporter.nix { };
   prometheus-minio-exporter = callPackage ../servers/monitoring/prometheus/minio-exporter { };
   prometheus-modemmanager-exporter = callPackage ../servers/monitoring/prometheus/modemmanager-exporter.nix { };
@@ -22197,7 +22502,9 @@ with pkgs;
 
   systemd-journal2gelf = callPackage ../tools/system/systemd-journal2gelf { };
 
-  tailscale = callPackage ../servers/tailscale { };
+  tailscale = callPackage ../servers/tailscale {
+    buildGoModule = buildGo118Module;
+  };
 
   thanos = callPackage ../servers/monitoring/thanos { };
 
@@ -22250,6 +22557,8 @@ with pkgs;
 
   urserver = callPackage ../servers/urserver { };
 
+  uxplay = callPackage ../servers/uxplay { };
+
   vouch-proxy = callPackage ../servers/vouch-proxy {
     buildGoModule = buildGo116Module;
   };
@@ -22422,11 +22731,6 @@ with pkgs;
     withExperimental = true;
   };
 
-  pulseaudio-modules-bt = callPackage ../applications/audio/pulseaudio-modules-bt {
-    # pulseaudio-modules-bt is most likely to be used with pulseaudioFull
-    pulseaudio = pulseaudioFull;
-  };
-
   bluez = bluez5;
 
   inherit (python3Packages) bedup;
@@ -22470,7 +22774,9 @@ with pkgs;
 
   coredns = callPackage ../servers/dns/coredns { };
 
-  corerad = callPackage ../tools/networking/corerad { };
+  corerad = callPackage ../tools/networking/corerad {
+    buildGoModule = buildGo118Module;
+  };
 
   cpufrequtils = callPackage ../os-specific/linux/cpufrequtils { };
 
@@ -22732,6 +23038,8 @@ with pkgs;
 
   linuxConsoleTools = callPackage ../os-specific/linux/consoletools { };
 
+  linux-wifi-hotspot = callPackage ../os-specific/linux/linux-wifi-hotspot { };
+
   linthesia = callPackage ../games/linthesia/default.nix { };
 
   libreelec-dvb-firmware = callPackage ../os-specific/linux/firmware/libreelec-dvb-firmware { };
@@ -22852,6 +23160,8 @@ with pkgs;
   # XanMod kernel
   linuxPackages_xanmod = linuxKernel.packages.linux_xanmod;
   linux_xanmod = linuxKernel.kernels.linux_xanmod;
+  linuxPackages_xanmod_latest = linuxKernel.packages.linux_xanmod_latest;
+  linux_xanmod_latest = linuxKernel.kernels.linux_xanmod_latest;
 
   cryptodev = linuxKernel.packages.linux_4_9.cryptodev;
 
@@ -22868,6 +23178,7 @@ with pkgs;
   };
 
   libraw = callPackage ../development/libraries/libraw { };
+  libraw_unstable = callPackage ../development/libraries/libraw/unstable.nix { };
 
   libraw1394 = callPackage ../development/libraries/libraw1394 { };
 
@@ -22875,6 +23186,9 @@ with pkgs;
 
   librealsenseWithCuda = callPackage ../development/libraries/librealsense {
     cudaSupport = true;
+    # librealsenseWithCuda doesn't build on gcc11. CUDA 11.3 is the last version
+    # to use pre-gcc11, in particular gcc9.
+    stdenv = gcc9Stdenv;
   };
 
   librealsenseWithoutCuda = callPackage ../development/libraries/librealsense {
@@ -22924,6 +23238,10 @@ with pkgs;
     # which depends on lvm2 again.  But we only need the libudev part
     # which does not depend on cryptsetup.
     udev = systemdMinimal;
+    # break the cyclic dependency:
+    # util-linux (non-minimal) depends (optionally, but on by default) on systemd,
+    # systemd (optionally, but on by default) on cryptsetup and cryptsetup depends on lvm2
+    util-linux = util-linuxMinimal;
   };
   lvm2-2_02 = callPackage ../os-specific/linux/lvm2/2_02.nix {
     udev = systemdMinimal;
@@ -22934,6 +23252,9 @@ with pkgs;
     enableDmeventd = true;
     enableCmdlib = true;
   };
+  lvm2_vdo = lvm2_dmeventd.override {
+    enableVDO = true;
+  };
 
   maddy = callPackage ../servers/maddy { };
 
@@ -23048,7 +23369,9 @@ with pkgs;
 
   golint = callPackage ../development/tools/golint { };
 
-  golangci-lint = callPackage ../development/tools/golangci-lint { };
+  golangci-lint = callPackage ../development/tools/golangci-lint {
+    buildGoModule = buildGo118Module;
+  };
 
   gocyclo = callPackage ../development/tools/gocyclo { };
 
@@ -23082,7 +23405,9 @@ with pkgs;
 
   go-langserver = callPackage ../development/tools/go-langserver { };
 
-  gopls = callPackage ../development/tools/gopls { };
+  gopls = callPackage ../development/tools/gopls {
+    buildGoModule = buildGo118Module;
+  };
 
   gops = callPackage ../development/tools/gops { };
 
@@ -23144,6 +23469,8 @@ with pkgs;
 
   pam_usb = callPackage ../os-specific/linux/pam_usb { };
 
+  pam_ussh = callPackage ../os-specific/linux/pam_ussh { };
+
   paxctl = callPackage ../os-specific/linux/paxctl { };
 
   paxtest = callPackage ../os-specific/linux/paxtest { };
@@ -23257,6 +23584,8 @@ with pkgs;
 
   s3ql = callPackage ../tools/backup/s3ql { };
 
+  sasutils = callPackage ../os-specific/linux/sasutils { };
+
   sass = callPackage ../development/tools/sass { };
 
   sassc = callPackage ../development/tools/sassc { };
@@ -23296,8 +23625,6 @@ with pkgs;
 
   solo5 = callPackage ../os-specific/solo5 { };
 
-  speedometer = callPackage ../os-specific/linux/speedometer { };
-
   statik = callPackage ../development/tools/statik { };
 
   statifier = callPackage ../os-specific/linux/statifier { };
@@ -23366,18 +23693,12 @@ with pkgs;
     withTimesyncd = false;
     withTpm2Tss = false;
     withUserDb = false;
-    glib = null;
-    libgcrypt = null;
-    lvm2 = null;
-    libfido2 = null;
-    p11-kit = null;
   };
   systemdStage1 = systemdMinimal.override {
     pname = "systemd-stage-1";
     withCryptsetup = true;
     withFido2 = true;
     withTpm2Tss = true;
-    inherit lvm2 libfido2 p11-kit;
   };
   systemdStage1Network = systemdStage1.override {
     pname = "systemd-stage-1-network";
@@ -23488,6 +23809,8 @@ with pkgs;
 
   ugtrain = callPackage ../tools/misc/ugtrain { };
 
+  unscd = callPackage ../os-specific/linux/unscd { };
+
   untie = callPackage ../os-specific/linux/untie { };
 
   upower = callPackage ../os-specific/linux/upower { };
@@ -23496,6 +23819,9 @@ with pkgs;
     libgcrypt = null;
   };
 
+  usbrelay = callPackage ../os-specific/linux/usbrelay { };
+  usbrelayd = callPackage ../os-specific/linux/usbrelay/daemon.nix { };
+
   usbtop = callPackage ../os-specific/linux/usbtop { };
 
   usbutils = callPackage ../os-specific/linux/usbutils { };
@@ -23507,13 +23833,11 @@ with pkgs;
   util-linux = if stdenv.isLinux then callPackage ../os-specific/linux/util-linux { }
               else unixtools.util-linux;
 
-  util-linuxCurses = util-linux;
-
-  util-linuxMinimal = if stdenv.isLinux then appendToName "minimal" (util-linux.override {
+  util-linuxMinimal = if stdenv.isLinux then util-linux.override {
     nlsSupport = false;
-    ncurses = null;
-    systemd = null;
-  }) else util-linux;
+    ncursesSupport = false;
+    systemdSupport = false;
+  } else util-linux;
 
   v4l-utils = qt5.callPackage ../os-specific/linux/v4l-utils { };
 
@@ -23521,6 +23845,8 @@ with pkgs;
 
   vndr = callPackage ../development/tools/vndr { };
 
+  vdo = callPackage ../os-specific/linux/vdo { };
+
   windows = callPackages ../os-specific/windows {};
 
   wirelesstools = callPackage ../os-specific/linux/wireless-tools { };
@@ -23664,22 +23990,20 @@ with pkgs;
 
   cldr-annotations = callPackage ../data/misc/cldr-annotations { };
 
-  cldr-emoji-annotation = callPackage ../data/misc/cldr-emoji-annotation { };
-
   clearlooks-phenix = callPackage ../data/themes/clearlooks-phenix { };
 
   cnstrokeorder = callPackage ../data/fonts/cnstrokeorder {};
 
   comfortaa = callPackage ../data/fonts/comfortaa {};
 
+  comic-mono = callPackage ../data/fonts/comic-mono { };
+
   comic-neue = callPackage ../data/fonts/comic-neue { };
 
   comic-relief = callPackage ../data/fonts/comic-relief {};
 
   comixcursors = callPackage ../data/icons/comixcursors {};
 
-  coreclr = callPackage ../development/compilers/coreclr { };
-
   corefonts = callPackage ../data/fonts/corefonts { };
 
   courier-prime = callPackage ../data/fonts/courier-prime { };
@@ -23852,8 +24176,6 @@ with pkgs;
 
   gsettings-desktop-schemas = callPackage ../development/libraries/gsettings-desktop-schemas { };
 
-  gnome-breeze = callPackage ../data/themes/gnome-breeze { };
-
   gnome-icon-theme = callPackage ../data/icons/gnome-icon-theme { };
 
   go-font = callPackage ../data/fonts/go-font { };
@@ -23950,6 +24272,8 @@ with pkgs;
 
   kanji-stroke-order-font = callPackage ../data/fonts/kanji-stroke-order-font {};
 
+  kacst = callPackage ../data/fonts/kacst {};
+
   kawkab-mono-font = callPackage ../data/fonts/kawkab-mono {};
 
   kde-rounded-corners = libsForQt5.callPackage ../data/themes/kwin-decorations/kde-rounded-corners { };
@@ -24338,7 +24662,7 @@ with pkgs;
   stdmanpages = callPackage ../data/documentation/std-man-pages { };
 
   starship = callPackage ../tools/misc/starship {
-    inherit (darwin.apple_sdk.frameworks) Security Foundation;
+    inherit (darwin.apple_sdk.frameworks) Security Foundation Cocoa;
   };
 
   stig = callPackage ../applications/networking/p2p/stig { };
@@ -24380,8 +24704,6 @@ with pkgs;
 
   hasklig = callPackage ../data/fonts/hasklig {};
 
-  interfacer = callPackage ../development/tools/interfacer { };
-
   maligned = callPackage ../development/tools/maligned { };
 
   inter = callPackage ../data/fonts/inter { };
@@ -24459,8 +24781,6 @@ with pkgs;
     fonts = [ "Terminus" ];
   };
 
-  termtekst = callPackage ../applications/emulators/termtekst { };
-
   tex-gyre = callPackages ../data/fonts/tex-gyre { };
 
   tex-gyre-math = callPackages ../data/fonts/tex-gyre-math { };
@@ -24812,6 +25132,8 @@ with pkgs;
 
   jnetmap = callPackage ../applications/networking/jnetmap {};
 
+  join-desktop = callPackage ../applications/misc/join-desktop { };
+
   libbitcoin = callPackage ../tools/misc/libbitcoin/libbitcoin.nix {
     boost = boost175; # fatal error: 'boost/interprocess/detail/posix_time_types_wrk.hpp' file not found
   };
@@ -24995,6 +25317,8 @@ with pkgs;
 
   btops = callPackage ../applications/window-managers/btops { };
 
+  buho = libsForQt5.callPackage ../applications/office/buho { };
+
   bvi = callPackage ../applications/editors/bvi { };
 
   bviplus = callPackage ../applications/editors/bviplus { };
@@ -25030,6 +25354,8 @@ with pkgs;
 
   canto-daemon = callPackage ../applications/networking/feedreaders/canto-daemon { };
 
+  caprine-bin = callPackage ../applications/networking/instant-messengers/caprine-bin { };
+
   carddav-util = callPackage ../tools/networking/carddav-util { };
 
   cardinal = callPackage ../applications/audio/cardinal { };
@@ -25090,6 +25416,8 @@ with pkgs;
 
   ChowKick  = callPackage ../applications/audio/ChowKick { };
 
+  ChowPhaser  = callPackage ../applications/audio/ChowPhaser { };
+
   CHOWTapeModel = callPackage ../applications/audio/CHOWTapeModel { };
 
   chromium = callPackage ../applications/networking/browsers/chromium (config.chromium or {});
@@ -25141,7 +25469,7 @@ with pkgs;
   cmctl = callPackage ../applications/networking/cluster/cmctl { };
 
   cmus = callPackage ../applications/audio/cmus {
-    inherit (darwin.apple_sdk.frameworks) AudioUnit CoreAudio;
+    inherit (darwin.apple_sdk.frameworks) AudioUnit CoreAudio VideoToolbox;
     libjack = libjack2;
   };
 
@@ -25386,7 +25714,9 @@ with pkgs;
 
   droopy = python3Packages.callPackage ../applications/networking/droopy { };
 
-  drumgizmo = callPackage ../applications/audio/drumgizmo { };
+  drumgizmo = callPackage ../applications/audio/drumgizmo {
+    stdenv = if stdenv.cc.isGNU then gcc10Stdenv else stdenv;
+  };
 
   dsf2flac = callPackage ../applications/audio/dsf2flac { };
 
@@ -25424,8 +25754,6 @@ with pkgs;
 
   dwm-status = callPackage ../applications/window-managers/dwm/dwm-status.nix { };
 
-  dynamips = callPackage ../applications/emulators/dynamips { };
-
   exploitdb = callPackage ../tools/security/exploitdb { };
 
   evilwm = callPackage ../applications/window-managers/evilwm {
@@ -25482,10 +25810,11 @@ with pkgs;
 
   em = callPackage ../applications/editors/em { };
 
-  emacs = emacs27;
-  emacs-nox = emacs27-nox;
+  emacs = emacs28;
+  emacsNativeComp = emacs28NativeComp;
+  emacs-nox = emacs28-nox;
 
-  emacs27 = callPackage ../applications/editors/emacs/27.nix {
+  emacs28 = callPackage ../applications/editors/emacs/28.nix {
     # use override to enable additional features
     libXaw = xorg.libXaw;
     Xaw3d = null;
@@ -25497,7 +25826,11 @@ with pkgs;
     inherit (darwin) sigtool;
   };
 
-  emacs27-nox = lowPrio (emacs27.override {
+  emacs28NativeComp = emacs28.override {
+    nativeComp = true;
+  };
+
+  emacs28-nox = lowPrio (emacs28.override {
     withX = false;
     withNS = false;
     withGTK2 = false;
@@ -25559,6 +25892,8 @@ with pkgs;
 
   espeakedit = callPackage ../applications/audio/espeak/edit.nix { };
 
+  espeakup = callPackage ../applications/accessibility/espeakup { };
+
   etebase-server = with python3Packages; toPythonApplication etebase-server;
 
   etesync-dav = callPackage ../applications/misc/etesync-dav {};
@@ -25640,6 +25975,8 @@ with pkgs;
 
   kerbrute = callPackage ../tools/security/kerbrute { };
 
+  kvmtool = callPackage ../applications/virtualization/kvmtool { };
+
   exrdisplay = callPackage ../applications/graphics/exrdisplay { };
 
   exrtools = callPackage ../applications/graphics/exrtools { };
@@ -25876,8 +26213,6 @@ with pkgs;
     tuigreet = callPackage ../os-specific/linux/tuigreet { };
   };
 
-  goldberg-emu = callPackage ../applications/emulators/goldberg-emu { };
-
   goldendict = libsForQt5.callPackage ../applications/misc/goldendict {
     inherit (darwin) libiconv;
   };
@@ -26173,9 +26508,6 @@ with pkgs;
   };
 
   git = callPackage ../applications/version-management/git-and-tools/git {
-    svnSupport = false;         # for git-svn support
-    guiSupport = false;         # requires tcl/tk
-    sendEmailSupport = false;   # requires plenty of perl libraries
     perlLibs = [perlPackages.LWP perlPackages.URI perlPackages.TermReadKey];
     smtpPerlLibs = [
       perlPackages.libnet perlPackages.NetSMTPSSL
@@ -26189,13 +26521,12 @@ with pkgs;
     svnSupport = true;
     guiSupport = true;
     sendEmailSupport = true;
+    withSsh = true;
     withLibsecret = !stdenv.isDarwin;
   };
 
   # Git with SVN support, but without GUI.
-  gitSVN = lowPrio (appendToName "with-svn" (git.override {
-    svnSupport = true;
-  }));
+  gitSVN = lowPrio (git.override { svnSupport = true; });
 
   git-doc = lib.addMetaAttrs {
     description = "Additional documentation for Git";
@@ -26205,11 +26536,11 @@ with pkgs;
     '';
   } gitFull.doc;
 
-  gitMinimal = appendToName "minimal" (git.override {
+  gitMinimal = git.override {
     withManual = false;
     pythonSupport = false;
     withpcre2 = false;
-  });
+  };
 
   gitRepo = callPackage ../applications/version-management/git-repo { };
 
@@ -26411,7 +26742,10 @@ with pkgs;
 
   gpsprune = callPackage ../applications/misc/gpsprune { };
 
-  gpu-screen-recorder = callPackage ../applications/video/gpu-screen-recorder { };
+  gpu-screen-recorder = callPackage ../applications/video/gpu-screen-recorder {
+    # rm me as soon as this package gains the support for cuda 11
+    inherit (cudaPackages_10) cudatoolkit;
+  };
 
   gpu-screen-recorder-gtk = callPackage ../applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix { };
 
@@ -26479,8 +26813,6 @@ with pkgs;
 
   herbstluftwm = callPackage ../applications/window-managers/herbstluftwm { };
 
-  hercules = callPackage ../applications/emulators/hercules { };
-
   hexchat = callPackage ../applications/networking/irc/hexchat { };
 
   hexcurse = callPackage ../applications/editors/hexcurse { };
@@ -26546,7 +26878,7 @@ with pkgs;
 
   haunt = callPackage ../applications/misc/haunt { };
 
-  hugo = callPackage ../applications/misc/hugo { };
+  hugo = callPackage ../applications/misc/hugo { buildGoModule = buildGo118Module; };
 
   go-org = callPackage ../applications/misc/go-org { };
 
@@ -26577,6 +26909,8 @@ with pkgs;
 
   jackline = callPackage ../applications/networking/instant-messengers/jackline { };
 
+  keylight-controller-mschneider82 = callPackage ../applications/misc/keylight-controller-mschneider82 { };
+
   leftwm = callPackage ../applications/window-managers/leftwm { };
 
   levant = callPackage ../applications/networking/cluster/levant { };
@@ -26623,6 +26957,8 @@ with pkgs;
 
   singularity = callPackage ../applications/virtualization/singularity { };
 
+  sonixd = callPackage ../applications/audio/sonixd { };
+
   spectmorph = callPackage ../applications/audio/spectmorph { };
 
   smallwm = callPackage ../applications/window-managers/smallwm { };
@@ -27023,8 +27359,6 @@ with pkgs;
 
   kdevelop = libsForQt5.callPackage ../applications/editors/kdevelop5/wrapper.nix { };
 
-  kega-fusion = pkgsi686Linux.callPackage ../applications/emulators/kega-fusion { };
-
   kepubify = callPackage ../tools/misc/kepubify { };
 
   kermit = callPackage ../tools/misc/kermit { };
@@ -27084,13 +27418,13 @@ with pkgs;
 
     # C++20 is required, darwin has Clang 7 by default, aarch64 has gcc 9 by default
     stdenv = if stdenv.isDarwin
-      then llvmPackages_12.libcxxStdenv
+      then llvmPackages_12.stdenv
       else if stdenv.isAarch64 then gcc10Stdenv else stdenv;
 
     # tdesktop has random crashes when jemalloc is built with gcc.
     # Apparently, it triggers some bug due to usage of gcc's builtin
     # functions like __builtin_ffsl by jemalloc when it's built with gcc.
-    jemalloc = (jemalloc.override { stdenv = llvmPackages.stdenv; }).overrideAttrs(_: {
+    jemalloc = (jemalloc.override { stdenv = clangStdenv; }).overrideAttrs(_: {
       # no idea how to fix the tests :(
       doCheck = false;
     });
@@ -27098,6 +27432,8 @@ with pkgs;
     abseil-cpp = abseil-cpp_202111;
   };
 
+  kotatogram-desktop-with-webkit = callPackage ../applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix {};
+
   kpt = callPackage ../applications/networking/cluster/kpt { };
 
   krane = callPackage ../applications/networking/cluster/krane { };
@@ -27147,8 +27483,6 @@ with pkgs;
 
   kubectl-tree = callPackage ../applications/networking/cluster/kubectl-tree { };
 
-  kubeless = callPackage ../applications/networking/cluster/kubeless { };
-
   kubelogin = callPackage ../applications/networking/cluster/kubelogin { };
 
   kubelogin-oidc = callPackage ../applications/networking/cluster/kubelogin-oidc { };
@@ -27218,8 +27552,6 @@ with pkgs;
 
   kvirc = libsForQt514.callPackage ../applications/networking/irc/kvirc { };
 
-  lambda-delta = callPackage ../applications/emulators/lambda-delta { };
-
   lame = callPackage ../development/libraries/lame { };
 
   labwc = callPackage ../applications/window-managers/labwc {
@@ -27264,7 +27596,7 @@ with pkgs;
 
   libowlevelzs = callPackage ../development/libraries/libowlevelzs { };
 
-  librecad = libsForQt514.callPackage ../applications/misc/librecad {
+  librecad = libsForQt5.callPackage ../applications/misc/librecad {
     boost = boost175;
   };
 
@@ -27351,8 +27683,6 @@ with pkgs;
 
   lighttable = callPackage ../applications/editors/lighttable {};
 
-  libdsk = callPackage ../applications/emulators/libdsk { };
-
   liblinphone = callPackage ../development/libraries/liblinphone { };
 
   links2 = callPackage ../applications/networking/browsers/links2 { };
@@ -27541,14 +27871,13 @@ with pkgs;
 
   melmatcheq.lv2 = callPackage ../applications/audio/melmatcheq.lv2 { };
 
-  melonDS = libsForQt5.callPackage ../applications/emulators/melonDS { };
+  melody = callPackage ../tools/misc/melody { };
 
   meme-image-generator = callPackage ../applications/graphics/meme-image-generator { };
 
   meme-suite = callPackage ../applications/science/biology/meme-suite { };
 
-  # Needs qtwebkit which is broken on qt5.15
-  mendeley = libsForQt514.callPackage ../applications/office/mendeley {
+  mendeley = libsForQt5.callPackage ../applications/office/mendeley {
     gconf = gnome2.GConf;
   };
 
@@ -27567,9 +27896,8 @@ with pkgs;
 
   merkaartor = libsForQt5.callPackage ../applications/misc/merkaartor { };
 
-  mepo = callPackage ../applications/misc/mepo {
-    zig = zig_0_8_1;
-  };
+  mepo = callPackage ../applications/misc/mepo { };
+  mepo-x11 = callPackage ../applications/misc/mepo { withX11 = true; };
 
   meshcentral = callPackage ../tools/admin/meshcentral { };
 
@@ -27639,7 +27967,9 @@ with pkgs;
 
   mnamer = callPackage ../applications/misc/mnamer { };
 
-  moc = callPackage ../applications/audio/moc { };
+  moc = callPackage ../applications/audio/moc {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
 
   mod-arpeggiator-lv2 = callPackage ../applications/audio/mod-arpeggiator-lv2 { };
 
@@ -27867,6 +28197,8 @@ with pkgs;
   };
   mutt-wizard = callPackage ../tools/misc/mutt-wizard { };
 
+  mutt-ics = callPackage ../tools/networking/mutt-ics { };
+
   mwic = callPackage ../applications/misc/mwic {
     pythonPackages = python3Packages;
   };
@@ -27924,6 +28256,8 @@ with pkgs;
 
   odo = callPackage ../applications/networking/cluster/odo { };
 
+  odin2 = callPackage ../applications/audio/odin2 { };
+
   onlyoffice-bin = callPackage ../applications/office/onlyoffice-bin { };
 
   open-policy-agent = callPackage ../development/tools/open-policy-agent { };
@@ -27964,8 +28298,6 @@ with pkgs;
 
   pinegrow = callPackage ../applications/editors/pinegrow { };
 
-  ping = callPackage ../applications/networking/ping { };
-
   piper = callPackage ../os-specific/linux/piper { };
 
   pipe-viewer = perlPackages.callPackage ../applications/video/pipe-viewer {};
@@ -28042,8 +28374,6 @@ with pkgs;
 
   stride = callPackage ../applications/networking/instant-messengers/stride { };
 
-  sudolikeaboss = callPackage ../tools/security/sudolikeaboss { };
-
   speedread = callPackage ../applications/misc/speedread { };
 
   station = callPackage ../applications/networking/station { };
@@ -28145,6 +28475,7 @@ with pkgs;
   netcoredbg = callPackage ../development/tools/misc/netcoredbg { };
 
   ncdu = callPackage ../tools/misc/ncdu { };
+  ncdu_2 = callPackage ../tools/misc/ncdu_2 { };
 
   ncdc = callPackage ../applications/networking/p2p/ncdc { };
 
@@ -28198,8 +28529,6 @@ with pkgs;
 
   obconf = callPackage ../tools/X11/obconf { };
 
-  oberon-risc-emu = callPackage ../applications/emulators/oberon-risc-emu { };
-
   gnome-obfuscate = callPackage ../applications/graphics/gnome-obfuscate { };
 
   obs-studio = libsForQt5.callPackage ../applications/video/obs-studio {
@@ -28307,7 +28636,7 @@ with pkgs;
 
   vivaldi-widevine = callPackage ../applications/networking/browsers/vivaldi/widevine.nix { };
 
-  libopenmpt = callPackage ../applications/audio/libopenmpt { };
+  libopenmpt = callPackage ../development/libraries/audio/libopenmpt { };
 
   openrazer-daemon = with python3Packages; toPythonApplication openrazer-daemon;
 
@@ -28351,8 +28680,6 @@ with pkgs;
 
   paraview = libsForQt5.callPackage ../applications/graphics/paraview { };
 
-  parlatype = callPackage ../applications/audio/parlatype { };
-
   packet = callPackage ../development/tools/packet { };
 
   packet-sd = callPackage ../development/tools/packet-sd { };
@@ -28367,12 +28694,6 @@ with pkgs;
 
   pcloud = callPackage ../applications/networking/pcloud { };
 
-  pcsxr = callPackage ../applications/emulators/pcsxr { };
-
-  pcsx2 = callPackage ../applications/emulators/pcsx2 {
-    wxGTK = wxGTK30-gtk3;
-  };
-
   jpsxdec = callPackage ../tools/games/jpsxdec {
     jdk = openjdk8;
   };
@@ -28664,7 +28985,7 @@ with pkgs;
 
   qimgv = libsForQt5.callPackage ../applications/graphics/qimgv { };
 
-  qlandkartegt = libsForQt514.callPackage ../applications/misc/qlandkartegt {
+  qlandkartegt = libsForQt5.callPackage ../applications/misc/qlandkartegt {
     gdal = gdal.override {
       libgeotiff = libgeotiff.override { proj = proj_7; };
       libspatialite = libspatialite.override { proj = proj_7; };
@@ -28899,8 +29220,6 @@ with pkgs;
 
   rootlesskit = callPackage ../tools/virtualization/rootlesskit {};
 
-  rpcs3 = libsForQt5.callPackage ../applications/emulators/rpcs3 { };
-
   rsclock = callPackage ../applications/misc/rsclock { };
 
   rstudio = libsForQt5.callPackage ../applications/editors/rstudio {
@@ -28940,8 +29259,6 @@ with pkgs;
 
   sacc = callPackage ../applications/networking/gopher/sacc { };
 
-  sameboy = callPackage ../applications/emulators/sameboy { };
-
   sayonara = libsForQt514.callPackage ../applications/audio/sayonara { };
 
   sbagen = callPackage ../applications/misc/sbagen { };
@@ -29000,6 +29317,8 @@ with pkgs;
 
   simple-scan = gnome.simple-scan;
 
+  sioyek = libsForQt5.callPackage ../applications/misc/sioyek { };
+
   siproxd = callPackage ../applications/networking/siproxd { };
 
   sish = callPackage ../tools/networking/sish { };
@@ -29076,8 +29395,6 @@ with pkgs;
     curses = ncurses;
   };
 
-  stella = callPackage ../applications/emulators/stella { };
-
   linuxstopmotion = libsForQt5.callPackage ../applications/video/linuxstopmotion { };
 
   sweethome3d = recurseIntoAttrs (
@@ -29281,11 +29598,11 @@ with pkgs;
   inherit (callPackages ../applications/version-management/subversion { sasl = cyrus_sasl; })
     subversion_1_10 subversion;
 
-  subversionClient = appendToName "client" (subversion.override {
+  subversionClient = subversion.override {
     bdbSupport = false;
     perlBindings = true;
     pythonBindings = true;
-  });
+  };
 
   sublime-music = callPackage ../applications/audio/sublime-music { };
 
@@ -29329,6 +29646,8 @@ with pkgs;
 
   syncplay = python3.pkgs.callPackage ../applications/networking/syncplay { };
 
+  syncplay-nogui = syncplay.override { enableGUI = false; };
+
   syncterm = callPackage ../applications/terminal-emulators/syncterm { };
 
   inherit (callPackages ../applications/networking/syncthing { })
@@ -29581,6 +29900,8 @@ with pkgs;
 
   toot = callPackage ../applications/misc/toot { };
 
+  toipe = callPackage ../applications/misc/toipe { };
+
   tootle = callPackage ../applications/misc/tootle { };
 
   toxic = callPackage ../applications/networking/instant-messengers/toxic { };
@@ -29692,6 +30013,10 @@ with pkgs;
 
   unigine-heaven = callPackage ../applications/graphics/unigine-heaven { };
 
+  unigine-tropics = pkgsi686Linux.callPackage ../applications/graphics/unigine-tropics { };
+
+  unigine-sanctuary = pkgsi686Linux.callPackage ../applications/graphics/unigine-sanctuary { };
+
   unigine-superposition = libsForQt5.callPackage ../applications/graphics/unigine-superposition { };
 
   unipicker = callPackage ../applications/misc/unipicker { };
@@ -29834,7 +30159,7 @@ with pkgs;
 
   virtual-ans = callPackage ../applications/audio/virtual-ans {};
 
-  virtualbox = libsForQt514.callPackage ../applications/virtualization/virtualbox {
+  virtualbox = libsForQt5.callPackage ../applications/virtualization/virtualbox {
     stdenv = stdenv_32bit;
     inherit (gnome2) libIDL;
     jdk = openjdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
@@ -30094,7 +30419,7 @@ with pkgs;
 
   wmderlandc = callPackage ../applications/window-managers/wmderlandc { };
 
-  wmii_hg = callPackage ../applications/window-managers/wmii-hg { };
+  wmii = callPackage ../applications/window-managers/wmii { };
 
   wofi = callPackage ../applications/misc/wofi { };
 
@@ -30117,12 +30442,14 @@ with pkgs;
 
   worldengine-cli = python3Packages.worldengine;
 
-  wpsoffice = libsForQt514.callPackage ../applications/office/wpsoffice {};
+  wpsoffice = libsForQt5.callPackage ../applications/office/wpsoffice {};
 
   wrapFirefox = callPackage ../applications/networking/browsers/firefox/wrapper.nix { };
 
   wrapThunderbird = callPackage ../applications/networking/mailreaders/thunderbird/wrapper.nix { };
 
+  wp4nix = callPackage ../development/tools/wp4nix { };
+
   wp-cli = callPackage ../development/tools/wp-cli { };
 
   wsjtx = qt5.callPackage ../applications/radio/wsjtx { };
@@ -30205,9 +30532,6 @@ with pkgs;
 
   kodi-cli = callPackage ../tools/misc/kodi-cli { };
 
-  kodi-retroarch-advanced-launchers =
-    callPackage ../applications/emulators/retroarch/kodi-advanced-launchers.nix { };
-
   xca = libsForQt5.callPackage ../applications/misc/xca { };
 
   xcalib = callPackage ../tools/X11/xcalib { };
@@ -30423,6 +30747,8 @@ with pkgs;
 
   ydiff = with python3.pkgs; toPythonApplication ydiff;
 
+  ydict = callPackage ../applications/misc/ydict {};
+
   yed = callPackage ../applications/graphics/yed {};
 
   yeetgif = callPackage ../applications/graphics/yeetgif { };
@@ -30476,10 +30802,6 @@ with pkgs;
 
   zeroc-ice-cpp11 = zeroc-ice.override { cpp11 = true; };
 
-  zeroc-ice-36 = callPackage ../development/libraries/zeroc-ice/3.6.nix {
-    inherit (darwin.apple_sdk.frameworks) Security;
-  };
-
   zeronet = callPackage ../applications/networking/p2p/zeronet { };
 
   zexy = callPackage ../applications/audio/pd-plugins/zexy {
@@ -30886,9 +31208,17 @@ with pkgs;
 
   keeperrl = callPackage ../games/keeperrl { };
 
-  lbreakout2 = callPackage ../games/lbreakout2 { };
+  ### GAMES/LGAMES
+
+  barrage = callPackage ../games/lgames/barrage { };
+
+  lbreakout2 = callPackage ../games/lgames/lbreakout2 { };
+
+  lbreakouthd = callPackage ../games/lgames/lbreakouthd { };
+
+  lpairs2 = callPackage ../games/lgames/lpairs2 { };
 
-  ltris = callPackage ../games/ltris { };
+  ltris = callPackage ../games/lgames/ltris { };
 
   lunar-client = callPackage ../games/lunar-client { };
 
@@ -31014,6 +31344,10 @@ with pkgs;
 
   btanks = callPackage ../games/btanks { };
 
+  bugdom = callPackage ../games/bugdom {
+    inherit (darwin.apple_sdk.frameworks) IOKit Foundation;
+  };
+
   bzflag = callPackage ../games/bzflag {
     inherit (darwin.apple_sdk.frameworks) Carbon CoreServices;
   };
@@ -31084,8 +31418,18 @@ with pkgs;
 
   cuyo = callPackage ../games/cuyo { };
 
-  inherit (import ../games/deliantra pkgs)
-    deliantra-server deliantra-arch deliantra-maps deliantra-data;
+  deliantra-server = callPackage ../games/deliantra/server.nix {
+    stdenv = if stdenv.cc.isGNU then gcc10Stdenv else stdenv;
+  };
+  deliantra-arch = callPackage ../games/deliantra/arch.nix {
+    stdenv = if stdenv.cc.isGNU then gcc10Stdenv else stdenv;
+  };
+  deliantra-maps = callPackage ../games/deliantra/maps.nix {
+    stdenv = if stdenv.cc.isGNU then gcc10Stdenv else stdenv;
+  };
+  deliantra-data = callPackage ../games/deliantra/data.nix {
+    stdenv = if stdenv.cc.isGNU then gcc10Stdenv else stdenv;
+  };
 
   ddnet = callPackage ../games/ddnet { };
 
@@ -31323,8 +31667,6 @@ with pkgs;
 
   katagoWithCuda = katago.override {
     enableCuda = true;
-    cudnn = cudnn_8_3_cudatoolkit_11;
-    cudatoolkit = cudatoolkit_11;
   };
 
   katagoCPU = katago.override {
@@ -31341,6 +31683,8 @@ with pkgs;
     useProprietaryAssets = false;
   };
 
+  koules = callPackage ../games/koules { };
+
   leela-zero = libsForQt5.callPackage ../games/leela-zero { };
 
   legendary-gl = python38Packages.callPackage ../games/legendary-gl { };
@@ -31562,7 +31906,7 @@ with pkgs;
 
   powermanga = callPackage ../games/powermanga { };
 
-  prboom = callPackage ../games/prboom { };
+  prboom-plus = callPackage ../games/prboom-plus { };
 
   pysolfc = python3Packages.callPackage ../games/pysolfc { };
 
@@ -32180,15 +32524,25 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) ApplicationServices;
   };
 
-  bpp-core = callPackage ../development/libraries/science/biology/bpp-core { };
+  bpp-core = callPackage ../development/libraries/science/biology/bpp-core {
+    stdenv = if stdenv.cc.isGNU then gcc10Stdenv else stdenv;
+  };
 
-  bpp-phyl = callPackage ../development/libraries/science/biology/bpp-phyl { };
+  bpp-phyl = callPackage ../development/libraries/science/biology/bpp-phyl {
+    stdenv = if stdenv.cc.isGNU then gcc10Stdenv else stdenv;
+  };
 
-  bpp-popgen = callPackage ../development/libraries/science/biology/bpp-popgen { };
+  bpp-popgen = callPackage ../development/libraries/science/biology/bpp-popgen {
+    stdenv = if stdenv.cc.isGNU then gcc10Stdenv else stdenv;
+  };
 
-  bpp-seq = callPackage ../development/libraries/science/biology/bpp-seq { };
+  bpp-seq = callPackage ../development/libraries/science/biology/bpp-seq {
+    stdenv = if stdenv.cc.isGNU then gcc10Stdenv else stdenv;
+  };
 
-  bppsuite = callPackage ../applications/science/biology/bppsuite { };
+  bppsuite = callPackage ../applications/science/biology/bppsuite {
+    stdenv = if stdenv.cc.isGNU then gcc10Stdenv else stdenv;
+  };
 
   cd-hit = callPackage ../applications/science/biology/cd-hit {
     inherit (llvmPackages) openmp;
@@ -32539,6 +32893,12 @@ with pkgs;
 
   trilinos-mpi = callPackage ../development/libraries/science/math/trilinos { withMPI = true; };
 
+  wolfram-engine = callPackage ../applications/science/math/wolfram-engine { };
+
+  wolfram-for-jupyter-kernel = callPackage ../applications/editors/jupyter-kernels/wolfram { };
+
+  wolfram-notebook = callPackage ../applications/science/math/wolfram-engine/notebook.nix { };
+
   ipopt = callPackage ../development/libraries/science/math/ipopt { };
 
   gmsh = callPackage ../applications/science/math/gmsh { };
@@ -32622,6 +32982,8 @@ with pkgs;
 
   groove = callPackage ../applications/science/programming/groove { };
 
+  jflap = callPackage ../applications/science/programming/jflap { };
+
   plm = callPackage ../applications/science/programming/plm { };
 
   ### SCIENCE/LOGIC
@@ -32667,8 +33029,6 @@ with pkgs;
 
   crypto-org-wallet = callPackage ../applications/blockchains/crypto-org-wallet { };
 
-  caprice32 = callPackage ../applications/emulators/caprice32 { };
-
   cubicle = callPackage ../applications/science/logic/cubicle {
     ocamlPackages = ocaml-ng.ocamlPackages_4_05;
   };
@@ -32681,6 +33041,8 @@ with pkgs;
     jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
 
+  cvc5 = callPackage ../applications/science/logic/cvc5 { };
+
   drat-trim = callPackage ../applications/science/logic/drat-trim {};
 
   ekrhyper = callPackage ../applications/science/logic/ekrhyper {
@@ -32722,12 +33084,28 @@ with pkgs;
   ifstat-legacy = callPackage ../tools/networking/ifstat-legacy { };
 
   isabelle = callPackage ../applications/science/logic/isabelle {
-    polyml = lib.overrideDerivation polyml (_: {
+    polyml = polyml.overrideAttrs (_: {
+      pname = "polyml-for-isabelle";
+      version = "2021-1";
       configureFlags = [ "--enable-intinf-as-int" "--with-gmp" "--disable-shared" ];
+      buildFlags = [ "compiler" ];
+      src = fetchFromGitHub {
+        owner = "polyml";
+        repo = "polyml";
+        rev = "39d96a2def903ed019c6855e3b688df5070d633a";
+        sha256 = "sha256-S7d2Vr/nB+rCX9d4qQj4f7edVZKocKIjc5rrx9A/B4Q=";
+      };
     });
 
     java = openjdk17;
-    z3 = z3_4_4_0;
+    z3 = z3_4_4_0.overrideAttrs (_: {
+      src = fetchFromGitHub {
+        owner = "Z3Prover";
+        repo = "z3";
+        rev = "0482e7fe727c75e259ac55a932b28cf1842c530e";
+        sha256 = "1m53avlljxqd2p8w266ksmjywjycsd23h224yn786qsnf36dr63x";
+      };
+    });
   };
   isabelle-components = recurseIntoAttrs (callPackage ../applications/science/logic/isabelle/components { });
 
@@ -32813,7 +33191,11 @@ with pkgs;
     gmp-static = gmp.override { withStatic = true; };
   };
 
-  z3 = callPackage ../applications/science/logic/z3 { python = python2; };
+
+  inherit (callPackages ../applications/science/logic/z3 { python = python2; })
+    z3_4_8
+    z3_4_7;
+  z3 = z3_4_8;
   z3_4_4_0 = callPackage ../applications/science/logic/z3/4.4.0.nix {
     python = python2;
     stdenv = gcc49Stdenv;
@@ -32840,10 +33222,16 @@ with pkgs;
 
   symbiyosys = callPackage ../applications/science/logic/symbiyosys {};
 
+  symfpu = callPackage ../applications/science/logic/symfpu {};
+
   mcy = callPackage ../applications/science/logic/mcy {};
 
   lingeling = callPackage ../applications/science/logic/lingeling {};
 
+  ### SCIENCE / ENGINEERING
+
+  brmodelo = callPackage ../applications/science/engineering/brmodelo { };
+
   ### SCIENCE / ELECTRONICS
 
   adms = callPackage ../applications/science/electronics/adms { };
@@ -32922,8 +33310,7 @@ with pkgs;
 
   caffe = callPackage ../applications/science/math/caffe ({
     cudaSupport = config.cudaSupport or false;
-    cudatoolkit = cudatoolkit_10_1;
-    cudnn = cudnn_7_6_cudatoolkit_10_1;
+    cudaPackages = cudaPackages_10_1;
     opencv3 = opencv3WithoutCuda; # Used only for image loading.
     blas = openblas;
     inherit (darwin.apple_sdk.frameworks) Accelerate CoreGraphics CoreVideo;
@@ -33177,16 +33564,12 @@ with pkgs;
 
   acpilight = callPackage ../misc/acpilight { };
 
+  alpnpass = callPackage ../applications/networking/alpnpass { };
+
   android-file-transfer = libsForQt5.callPackage ../tools/filesystems/android-file-transfer { };
 
   antimicrox = libsForQt5.callPackage ../tools/misc/antimicrox { };
 
-  ares = callPackage ../applications/emulators/ares { };
-
-  atari800 = callPackage ../applications/emulators/atari800 { };
-
-  ataripp = callPackage ../applications/emulators/atari++ { };
-
   atlantis = callPackage ../applications/networking/cluster/atlantis { };
 
   fn-cli = callPackage ../applications/networking/cluster/fn-cli { };
@@ -33199,7 +33582,7 @@ with pkgs;
     swt = swt_jdk8;
   };
 
-  attract-mode = callPackage ../applications/emulators/attract-mode { };
+  argononed = callPackage ../misc/drivers/argononed { };
 
   autotiling = python3Packages.callPackage ../misc/autotiling { };
 
@@ -33221,8 +33604,6 @@ with pkgs;
 
   calaos_installer = libsForQt5.callPackage ../misc/calaos/installer {};
 
-  ccemux = callPackage ../applications/emulators/ccemux { };
-
   click = callPackage ../applications/networking/cluster/click { };
 
   clinfo = callPackage ../tools/system/clinfo {
@@ -33231,8 +33612,6 @@ with pkgs;
 
   clpeak = callPackage ../tools/misc/clpeak { };
 
-  collapseos-cvm = callPackage ../applications/emulators/collapseos-cvm { };
-
   cups = callPackage ../misc/cups { };
 
   cups-filters = callPackage ../misc/cups/filters.nix { };
@@ -33303,14 +33682,10 @@ with pkgs;
 
   cnijfilter2 = callPackage ../misc/cups/drivers/cnijfilter2 { };
 
-  darcnes = callPackage ../applications/emulators/darcnes { };
-
   darling-dmg = callPackage ../tools/filesystems/darling-dmg { };
 
   depotdownloader = callPackage ../tools/misc/depotdownloader { };
 
-  desmume = callPackage ../applications/emulators/desmume { };
-
   dbacl = callPackage ../tools/misc/dbacl { };
 
   dblatex = callPackage ../tools/typesetting/tex/dblatex { };
@@ -33323,14 +33698,8 @@ with pkgs;
 
   dockutil = callPackage ../os-specific/darwin/dockutil { };
 
-  dosbox = callPackage ../applications/emulators/dosbox { };
-
-  dosbox-staging = callPackage ../applications/emulators/dosbox-staging { };
-
   eiciel = callPackage ../tools/filesystems/eiciel { };
 
-  emu2 = callPackage ../applications/emulators/emu2 { };
-
   apt = callPackage ../tools/package-management/apt { };
 
   dpkg = callPackage ../tools/package-management/dpkg { };
@@ -33343,8 +33712,6 @@ with pkgs;
 
   ecdsatool = callPackage ../tools/security/ecdsatool { };
 
-  emulationstation = callPackage ../applications/emulators/emulationstation { };
-
   electricsheep = callPackage ../misc/screensavers/electricsheep { };
 
   aaphoto = callPackage ../tools/graphics/aaphoto {};
@@ -33385,8 +33752,6 @@ with pkgs;
 
   faustStk = callPackage ../applications/audio/faustStk  { };
 
-  fceux = libsForQt5.callPackage ../applications/emulators/fceux { };
-
   flockit = callPackage ../tools/backup/flockit { };
 
   fahclient = callPackage ../applications/science/misc/foldingathome/client.nix {};
@@ -33401,8 +33766,6 @@ with pkgs;
 
   foomatic-filters = callPackage ../misc/drivers/foomatic-filters {};
 
-  fuse-emulator = callPackage ../applications/emulators/fuse-emulator {};
-
   gajim = callPackage ../applications/networking/instant-messengers/gajim {
     inherit (gst_all_1) gstreamer gst-plugins-base gst-libav;
     gst-plugins-good = gst_all_1.gst-plugins-good.override { gtkSupport = true; };
@@ -33410,14 +33773,12 @@ with pkgs;
 
   gammu = callPackage ../applications/misc/gammu { };
 
-  gensgs = pkgsi686Linux.callPackage ../applications/emulators/gens-gs { };
-
   ghostscript = callPackage ../misc/ghostscript { };
 
-  ghostscriptX = appendToName "with-X" (ghostscript.override {
+  ghostscriptX = ghostscript.override {
     cupsSupport = true;
     x11Support = true;
-  });
+  };
 
   glava = callPackage ../applications/misc/glava {};
 
@@ -33438,10 +33799,6 @@ with pkgs;
 
   gummy = callPackage ../tools/misc/gummy { };
 
-  gxemul = callPackage ../applications/emulators/gxemul { };
-
-  hatari = callPackage ../applications/emulators/hatari { };
-
   hck = callPackage ../tools/text/hck {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
   };
@@ -33555,18 +33912,12 @@ with pkgs;
 
   loop = callPackage ../tools/misc/loop { };
 
-  maiko = callPackage ../applications/emulators/maiko { inherit (xorg) libX11; };
-
   mailcore2 = callPackage ../development/libraries/mailcore2 {
     icu = icu58;
   };
 
   mamba = callPackage ../applications/audio/mamba { };
 
-  mame = libsForQt514.callPackage ../applications/emulators/mame {
-    inherit (darwin.apple_sdk.frameworks) CoreAudioKit ForceFeedback;
-  };
-
   martyr = callPackage ../development/libraries/martyr { };
 
   mas = callPackage ../os-specific/darwin/mas { };
@@ -33583,8 +33934,6 @@ with pkgs;
 
   morph = callPackage ../tools/package-management/morph { };
 
-  mupen64plus = callPackage ../applications/emulators/mupen64plus { };
-
   muse = libsForQt5.callPackage ../applications/audio/muse { };
 
   musly = callPackage ../applications/audio/musly { };
@@ -33766,7 +34115,7 @@ with pkgs;
 
   nix-eval-jobs = callPackage ../tools/package-management/nix-eval-jobs { };
 
-  nix-doc = callPackage ../tools/package-management/nix-doc { nix = nixVersions.nix_2_5; };
+  nix-doc = callPackage ../tools/package-management/nix-doc { };
 
   nix-bundle = callPackage ../tools/package-management/nix-bundle { };
 
@@ -33921,8 +34270,6 @@ with pkgs;
 
   OSCAR = qt5.callPackage ../applications/misc/OSCAR { };
 
-  pcem = callPackage ../applications/emulators/pcem { };
-
   pgmanage = callPackage ../applications/misc/pgmanage { };
 
   pgadmin4 = callPackage ../tools/admin/pgadmin { };
@@ -33949,14 +34296,10 @@ with pkgs;
 
   pounce = callPackage ../servers/pounce { };
 
-  ppsspp = libsForQt5.callPackage ../applications/emulators/ppsspp { };
-
   pt = callPackage ../applications/misc/pt { };
 
   protocol = python3Packages.callPackage ../applications/networking/protocol { };
 
-  punes = libsForQt5.callPackage ../applications/emulators/punes { };
-
   pykms = callPackage ../tools/networking/pykms { };
 
   pyupgrade = with python3Packages; toPythonApplication pyupgrade;
@@ -33965,12 +34308,6 @@ with pkgs;
 
   pwntools = with python3Packages; toPythonApplication pwntools;
 
-  uae = callPackage ../applications/emulators/uae { };
-
-  fsuae = callPackage ../applications/emulators/fs-uae { };
-
-  fsuae-launcher = callPackage ../applications/emulators/fs-uae/launcher.nix { };
-
   putty = callPackage ../applications/networking/remote/putty {
     gtk2 = gtk2-x11;
   };
@@ -33993,34 +34330,12 @@ with pkgs;
 
   rauc = callPackage ../tools/misc/rauc { };
 
+  rbspy = callPackage ../development/tools/rbspy { };
+
   redprl = callPackage ../applications/science/logic/redprl { };
 
   renderizer = callPackage ../development/tools/renderizer {};
 
-  retroarchBare = callPackage ../applications/emulators/retroarch {
-    inherit (darwin) libobjc;
-    inherit (darwin.apple_sdk.frameworks) AppKit Foundation;
-  };
-
-  wrapRetroArch = { retroarch }: callPackage ../applications/emulators/retroarch/wrapper.nix {
-    inherit retroarch;
-  };
-
-  retroarch = wrapRetroArch { retroarch = retroarchBare; };
-
-  retroarchFull = retroarch.override {
-    cores = builtins.filter
-      # Remove cores not supported on platform
-      (c: c ? libretroCore && (lib.meta.availableOn stdenv.hostPlatform c))
-      (builtins.attrValues libretro);
-  };
-
-  libretro = recurseIntoAttrs (callPackage ../applications/emulators/retroarch/cores.nix {
-    retroarch = retroarchBare;
-  });
-
-  retrofe = callPackage ../applications/emulators/retrofe { };
-
   rfc-bibtex = python3Packages.callPackage ../development/python-modules/rfc-bibtex { };
 
   pick-colour-picker = python3Packages.callPackage ../applications/graphics/pick-colour-picker {
@@ -34055,7 +34370,7 @@ with pkgs;
 
   sift = callPackage ../tools/text/sift { };
 
-  xdragon = lowPrio (callPackage ../applications/misc/xdragon { });
+  xdragon = lowPrio (callPackage ../tools/X11/xdragon { });
 
   xlockmore = callPackage ../misc/screensavers/xlockmore { };
 
@@ -34328,12 +34643,8 @@ with pkgs;
 
   vazir-fonts = callPackage ../data/fonts/vazir-fonts { };
 
-  vbam = callPackage ../applications/emulators/vbam { };
-
   vgmstream = callPackage ../applications/audio/vgmstream { };
 
-  vice = callPackage ../applications/emulators/vice { };
-
   viddy = callPackage ../tools/misc/viddy { };
 
   ViennaRNA = callPackage ../applications/science/molecular-dynamics/viennarna { };
@@ -34364,6 +34675,8 @@ with pkgs;
 
   vivid = callPackage ../tools/misc/vivid { };
 
+  vivisect = with python3Packages; toPythonApplication (vivisect.override { withGui = true; });
+
   vokoscreen = libsForQt5.callPackage ../applications/video/vokoscreen { };
 
   vokoscreen-ng = libsForQt5.callPackage ../applications/video/vokoscreen-ng {
@@ -34430,10 +34743,6 @@ with pkgs;
     wineRelease = "wayland";
   });
 
-  winetricks = callPackage ../applications/emulators/wine/winetricks.nix {
-    inherit (gnome) zenity;
-  };
-
   wishbone-tool = callPackage ../development/tools/misc/wishbone-tool { };
 
   with-shell = callPackage ../applications/misc/with-shell { };
@@ -34522,11 +34831,6 @@ with pkgs;
 
   yabai = callPackage ../os-specific/darwin/yabai { };
 
-  yabause = libsForQt5.callPackage ../applications/emulators/yabause {
-    freeglut = null;
-    openal = null;
-  };
-
   yacreader = libsForQt5.callPackage ../applications/graphics/yacreader { };
 
   yadm = callPackage ../applications/version-management/yadm { };
@@ -34545,15 +34849,6 @@ with pkgs;
 
   yaxg = callPackage ../tools/graphics/yaxg {};
 
-  yuzu-mainline = import ../applications/emulators/yuzu {
-    branch = "mainline";
-    inherit libsForQt5 fetchFromGitHub;
-  };
-  yuzu-ea = import ../applications/emulators/yuzu {
-    branch = "early-access";
-    inherit libsForQt5 fetchFromGitHub;
-  };
-
   zap = callPackage ../tools/networking/zap { };
 
   zigbee2mqtt = callPackage ../servers/zigbee2mqtt { };
@@ -34572,38 +34867,12 @@ with pkgs;
 
   zoneminder = callPackage ../servers/zoneminder { };
 
-  zsnes = pkgsi686Linux.callPackage ../applications/emulators/zsnes { };
-
   xcp = callPackage ../tools/misc/xcp { };
 
-  xcpc = callPackage ../applications/emulators/xcpc { };
-
   zxcvbn-c = callPackage ../development/libraries/zxcvbn-c { };
 
   zxing-cpp = callPackage ../development/libraries/zxing-cpp { };
 
-  snes9x-gtk = callPackage ../applications/emulators/snes9x-gtk { };
-
-  openmsx = callPackage ../applications/emulators/openmsx {
-    python = python3;
-  };
-
-  higan = callPackage ../applications/emulators/higan { };
-
-  bsnes-hd = callPackage ../applications/emulators/bsnes-hd {
-    inherit (gnome2) gtksourceview;
-    inherit (darwin.apple_sdk.frameworks) Cocoa OpenAL;
-  };
-
-  yapesdl = callPackage ../applications/emulators/yapesdl { };
-
-  x16-emulator = callPackage ../applications/emulators/commanderx16/emulator.nix { };
-  x16-rom = callPackage ../applications/emulators/commanderx16/rom.nix { };
-  x16-run = (callPackage ../applications/emulators/commanderx16/run.nix { }) {
-    emulator = x16-emulator;
-    rom = x16-rom;
-  };
-
   bullet = callPackage ../development/libraries/bullet {
     inherit (darwin.apple_sdk.frameworks) Cocoa OpenGL;
   };
@@ -34642,7 +34911,7 @@ with pkgs;
     inherit pkgs lib stdenv;
   };
 
-  golden-cheetah = libsForQt514.callPackage ../applications/misc/golden-cheetah {};
+  golden-cheetah = libsForQt5.callPackage ../applications/misc/golden-cheetah {};
 
   linkchecker = callPackage ../tools/networking/linkchecker { };
 
@@ -34963,7 +35232,6 @@ with pkgs;
 
   xsos = callPackage ../os-specific/linux/xsos { };
 
-  zesarux = callPackage ../applications/emulators/zesarux { };
 
   zk = callPackage ../applications/office/zk {};
 
diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix
index b5b7158de647b..c71ec2acf9441 100644
--- a/pkgs/top-level/coq-packages.nix
+++ b/pkgs/top-level/coq-packages.nix
@@ -91,10 +91,12 @@ let
       serapi = callPackage ../development/coq-modules/serapi {};
       simple-io = callPackage ../development/coq-modules/simple-io { };
       smpl = callPackage ../development/coq-modules/smpl { };
+      smtcoq = callPackage ../development/coq-modules/smtcoq { };
       stdpp = callPackage ../development/coq-modules/stdpp { };
       StructTact = callPackage ../development/coq-modules/StructTact {};
       tlc = callPackage ../development/coq-modules/tlc {};
       topology = callPackage ../development/coq-modules/topology {};
+      trakt = callPackage ../development/coq-modules/trakt {};
       Velisarios = callPackage ../development/coq-modules/Velisarios {};
       Verdi = callPackage ../development/coq-modules/Verdi {};
       VST = callPackage ../development/coq-modules/VST {};
diff --git a/pkgs/top-level/cuda-packages.nix b/pkgs/top-level/cuda-packages.nix
new file mode 100644
index 0000000000000..211540260d10c
--- /dev/null
+++ b/pkgs/top-level/cuda-packages.nix
@@ -0,0 +1,72 @@
+{ lib
+, pkgs
+, cudaVersion
+}:
+
+with lib;
+
+let
+
+  scope = makeScope pkgs.newScope (final: {
+    # Here we put package set configuration and utility functions.
+    inherit cudaVersion;
+    cudaMajorVersion = versions.major final.cudaVersion;
+    cudaMajorMinorVersion = lib.versions.majorMinor final.cudaVersion;
+    inherit lib pkgs;
+
+    addBuildInputs = drv: buildInputs: drv.overrideAttrs (oldAttrs: {
+      buildInputs = (oldAttrs.buildInputs or []) ++ buildInputs;
+    });
+  });
+
+  cutensorExtension = final: prev: let
+    ### CuTensor
+
+    buildCuTensorPackage = final.callPackage ../development/libraries/science/math/cutensor/generic.nix;
+
+    cuTensorVersions = {
+      "1.2.2.5" = {
+        hash = "sha256-lU7iK4DWuC/U3s1Ct/rq2Gr3w4F2U7RYYgpmF05bibY=";
+      };
+      "1.3.1.3" = {
+        hash = "sha256-mNlVnabB2IC3HnYY0mb06RLqQzDxN9ePGVeBy3hkBC8=";
+      };
+    };
+
+    inherit (final) cudaMajorMinorVersion cudaMajorVersion;
+
+    cutensor = buildCuTensorPackage rec {
+      version = if cudaMajorMinorVersion == "10.1" then "1.2.2.5" else "1.3.1.3";
+      inherit (cuTensorVersions.${version}) hash;
+      # This can go into generic.nix
+      libPath = "lib/${if cudaMajorVersion == "10" then cudaMajorMinorVersion else cudaMajorVersion}";
+    };
+  in { inherit cutensor; };
+
+  extraPackagesExtension = final: prev: {
+
+    nccl = final.callPackage ../development/libraries/science/math/nccl { };
+
+    autoAddOpenGLRunpathHook = final.callPackage ( { makeSetupHook, addOpenGLRunpath }:
+      makeSetupHook {
+        name = "auto-add-opengl-runpath-hook";
+        deps = [
+          addOpenGLRunpath
+        ];
+      } ../development/compilers/cudatoolkit/auto-add-opengl-runpath-hook.sh
+    ) {};
+
+  };
+
+  composedExtension = composeManyExtensions [
+    extraPackagesExtension
+    (import ../development/compilers/cudatoolkit/extension.nix)
+    (import ../development/compilers/cudatoolkit/redist/extension.nix)
+    (import ../development/compilers/cudatoolkit/redist/overrides.nix)
+    (import ../development/libraries/science/math/cudnn/extension.nix)
+    (import ../test/cuda/cuda-samples/extension.nix)
+    (import ../test/cuda/cuda-library-samples/extension.nix)
+    cutensorExtension
+  ];
+
+in (scope.overrideScope' composedExtension)
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index d12542915c7b9..c46a7f1bcd241 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -79,9 +79,12 @@ in {
     ghc884 = callPackage ../development/compilers/ghc/8.8.4.nix {
       bootPkgs =
         # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
-        # Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them
-        if stdenv.isAarch64 || stdenv.hostPlatform.isMusl then
+        # 8.10.2 is needed as using 8.10.7 is broken due to RTS-incompatibilities
+        if stdenv.isAarch64 then
           packages.ghc8102BinaryMinimal
+        # Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them
+        else if stdenv.hostPlatform.isMusl then
+          packages.ghc8102Binary
         else
           packages.ghc865Binary;
       inherit (buildPackages.python3Packages) sphinx;
@@ -245,29 +248,36 @@ in {
 
     # The integer-simple attribute set contains package sets for all the GHC compilers
     # using integer-simple instead of integer-gmp.
-    integer-simple = let
-      integerSimpleGhcNames = pkgs.lib.filter
-        (name: ! builtins.elem name integerSimpleExcludes)
-        (pkgs.lib.attrNames packages);
-    in pkgs.lib.genAttrs integerSimpleGhcNames (name: packages.${name}.override {
-      ghc = bh.compiler.integer-simple.${name};
-      buildHaskellPackages = bh.packages.integer-simple.${name};
-      overrides = _self : _super : {
-        integer-simple = null;
-        integer-gmp = null;
-      };
-    });
+    integer-simple =
+      let
+        integerSimpleGhcNames = pkgs.lib.filter
+          (name: ! builtins.elem name integerSimpleExcludes)
+          (pkgs.lib.attrNames packages);
+      in
+      pkgs.lib.genAttrs integerSimpleGhcNames
+        (name:
+          packages.${name}.override (oldAttrs: {
+            ghc = bh.compiler.integer-simple.${name};
+            buildHaskellPackages = bh.packages.integer-simple.${name};
+            overrides =
+              pkgs.lib.composeExtensions
+                (oldAttrs.overrides or (_: _: {}))
+                (_: _: { integer-simple = null; });
+          })
+        );
 
-    native-bignum = let
-      nativeBignumGhcNames = pkgs.lib.filter
-        (name: builtins.elem name nativeBignumIncludes)
-        (pkgs.lib.attrNames compiler);
-    in pkgs.lib.genAttrs nativeBignumGhcNames (name: packages.${name}.override {
-      ghc = bh.compiler.native-bignum.${name};
-      buildHaskellPackages = bh.packages.native-bignum.${name};
-      overrides = _self : _super : {
-        integer-gmp = null;
-      };
-    });
+    native-bignum =
+      let
+        nativeBignumGhcNames = pkgs.lib.filter
+          (name: builtins.elem name nativeBignumIncludes)
+          (pkgs.lib.attrNames compiler);
+      in
+      pkgs.lib.genAttrs nativeBignumGhcNames
+        (name:
+          packages.${name}.override {
+            ghc = bh.compiler.native-bignum.${name};
+            buildHaskellPackages = bh.packages.native-bignum.${name};
+          }
+        );
   };
 }
diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix
index 26e4b3229a27c..e02802b88abe7 100644
--- a/pkgs/top-level/linux-kernels.nix
+++ b/pkgs/top-level/linux-kernels.nix
@@ -212,12 +212,22 @@ in {
       ];
     };
 
-    linux_xanmod = callPackage ../os-specific/linux/kernel/linux-xanmod.nix {
+    # This contains both the STABLE and EDGE variants of the XanMod kernel
+    xanmodKernels = callPackage ../os-specific/linux/kernel/xanmod-kernels.nix;
+
+    linux_xanmod = (xanmodKernels {
       kernelPatches = [
         kernelPatches.bridge_stp_helper
         kernelPatches.request_key_helper
       ];
-    };
+    }).stable;
+
+    linux_xanmod_latest = (xanmodKernels {
+      kernelPatches = [
+        kernelPatches.bridge_stp_helper
+        kernelPatches.request_key_helper
+      ];
+    }).edge;
 
     linux_libre = deblobKernel packageAliases.linux_default.kernel;
 
@@ -317,6 +327,8 @@ in {
 
     ena = callPackage ../os-specific/linux/ena {};
 
+    kvdo = callPackage ../os-specific/linux/kvdo {};
+
     liquidtux = callPackage ../os-specific/linux/liquidtux {};
 
     v4l2loopback = callPackage ../os-specific/linux/v4l2loopback { };
@@ -402,7 +414,7 @@ in {
 
     oci-seccomp-bpf-hook = if lib.versionAtLeast kernel.version "5.4" then callPackage ../os-specific/linux/oci-seccomp-bpf-hook { } else null;
 
-    perf = if lib.versionAtLeast kernel.version "3.12" then callPackage ../os-specific/linux/kernel/perf.nix { } else null;
+    perf = callPackage ../os-specific/linux/kernel/perf.nix { };
 
     phc-intel = if lib.versionAtLeast kernel.version "4.10" then callPackage ../os-specific/linux/phc-intel { } else null;
 
@@ -526,6 +538,7 @@ in {
     linux_zen = recurseIntoAttrs (packagesFor kernels.linux_zen);
     linux_lqx = recurseIntoAttrs (packagesFor kernels.linux_lqx);
     linux_xanmod = recurseIntoAttrs (packagesFor kernels.linux_xanmod);
+    linux_xanmod_latest = recurseIntoAttrs (packagesFor kernels.linux_xanmod_latest);
 
     hardkernel_4_14 = recurseIntoAttrs (packagesFor kernels.linux_hardkernel_4_14);
 
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 255ba4eb47848..138cf3ca8578e 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -55,7 +55,7 @@ let
     base64 = callPackage ../development/ocaml-modules/base64 { };
 
     bap = callPackage ../development/ocaml-modules/bap {
-      inherit (pkgs.llvmPackages_8) llvm;
+      inherit (pkgs.llvmPackages) llvm;
     };
 
     batteries = callPackage ../development/ocaml-modules/batteries { };
@@ -78,6 +78,8 @@ let
 
     bitv = callPackage ../development/ocaml-modules/bitv { };
 
+    bjack = callPackage ../development/ocaml-modules/bjack { };
+
     bls12-381 = callPackage ../development/ocaml-modules/bls12-381 { };
     bls12-381-gen = callPackage ../development/ocaml-modules/bls12-381/gen.nix { };
     bls12-381-unix = callPackage ../development/ocaml-modules/bls12-381/unix.nix { };
@@ -85,6 +87,8 @@ let
 
     bos = callPackage ../development/ocaml-modules/bos { };
 
+    brisk-reconciler = callPackage ../development/ocaml-modules/brisk-reconciler { };
+
     bz2 = callPackage ../development/ocaml-modules/bz2 { };
 
     ca-certs = callPackage ../development/ocaml-modules/ca-certs { };
@@ -293,6 +297,8 @@ let
 
     dose3 = callPackage ../development/ocaml-modules/dose3 { };
 
+    dssi = callPackage ../development/ocaml-modules/dssi { };
+
     dtoa = callPackage ../development/ocaml-modules/dtoa { };
 
     duff = callPackage ../development/ocaml-modules/duff { };
@@ -421,6 +427,8 @@ let
       inherit (pkgs) flac;
     };
 
+    flex = callPackage ../development/ocaml-modules/flex { };
+
     fmt = callPackage ../development/ocaml-modules/fmt { };
 
     fontconfig = callPackage ../development/ocaml-modules/fontconfig {
@@ -508,6 +516,8 @@ let
 
     gapi_ocaml = callPackage ../development/ocaml-modules/gapi-ocaml { };
 
+    gen_js_api = callPackage ../development/ocaml-modules/gen_js_api { };
+
     gg = callPackage ../development/ocaml-modules/gg { };
 
     git = callPackage ../development/ocaml-modules/git {
@@ -641,10 +651,14 @@ let
 
     lacaml = callPackage ../development/ocaml-modules/lacaml { };
 
+    ladspa = callPackage ../development/ocaml-modules/ladspa { };
+
     lambdasoup = callPackage ../development/ocaml-modules/lambdasoup { };
 
     lambda-term = callPackage ../development/ocaml-modules/lambda-term { };
 
+    lastfm = callPackage ../development/ocaml-modules/lastfm { };
+
     lens = callPackage ../development/ocaml-modules/lens { };
 
     letsencrypt = callPackage ../development/ocaml-modules/letsencrypt { };
@@ -982,6 +996,14 @@ let
 
     ocsigen-toolkit = callPackage ../development/ocaml-modules/ocsigen-toolkit { };
 
+    ocsipersist = callPackage ../development/ocaml-modules/ocsipersist {};
+
+    ocsipersist-lib = callPackage ../development/ocaml-modules/ocsipersist/lib.nix { };
+
+    ocsipersist-pgsql = callPackage ../development/ocaml-modules/ocsipersist/pgsql.nix { };
+
+    ocsipersist-sqlite = callPackage ../development/ocaml-modules/ocsipersist/sqlite.nix { };
+
     octavius = callPackage ../development/ocaml-modules/octavius { };
 
     odate = callPackage ../development/ocaml-modules/odate { };
@@ -990,6 +1012,8 @@ let
 
     odoc-parser = callPackage ../development/ocaml-modules/odoc-parser { };
 
+    ojs = callPackage ../development/ocaml-modules/gen_js_api/ojs.nix { };
+
     omd = callPackage ../development/ocaml-modules/omd { };
 
     opam-core = callPackage ../development/ocaml-modules/opam-core {
@@ -1088,12 +1112,16 @@ let
 
     ptime = callPackage ../development/ocaml-modules/ptime { };
 
+    pure-splitmix = callPackage ../development/ocaml-modules/pure-splitmix { };
+
     resource-pooling = callPackage ../development/ocaml-modules/resource-pooling { };
 
     repr = callPackage ../development/ocaml-modules/repr { };
 
     result = callPackage ../development/ocaml-modules/ocaml-result { };
 
+    samplerate = callPackage ../development/ocaml-modules/samplerate { };
+
     secp256k1 = callPackage ../development/ocaml-modules/secp256k1 {
       inherit (pkgs) secp256k1;
     };
@@ -1238,6 +1266,10 @@ let
 
     reason-native = lib.recurseIntoAttrs (callPackage ../development/ocaml-modules/reason-native { });
 
+    rebez = callPackage ../development/ocaml-modules/rebez { };
+
+    reperf = callPackage ../development/ocaml-modules/reperf { };
+
     rfc7748 = callPackage ../development/ocaml-modules/rfc7748 { };
 
     ezresto = callPackage ../development/ocaml-modules/resto/ezresto.nix { };
@@ -1285,8 +1317,6 @@ let
 
     spelll = callPackage ../development/ocaml-modules/spelll { };
 
-    sqlite3EZ = callPackage ../development/ocaml-modules/sqlite3EZ { };
-
     srt = callPackage ../development/ocaml-modules/srt {
       inherit (pkgs) srt;
     };
@@ -1449,6 +1479,8 @@ let
 
     xmlm = callPackage ../development/ocaml-modules/xmlm { };
 
+    xmlplaylist = callPackage ../development/ocaml-modules/xmlplaylist { };
+
     xml-light = callPackage ../development/ocaml-modules/xml-light { };
 
     xtmpl = callPackage ../development/ocaml-modules/xtmpl { };
diff --git a/pkgs/top-level/packages-config.nix b/pkgs/top-level/packages-config.nix
index c33f8b2dc2aab..fa99c0eead858 100644
--- a/pkgs/top-level/packages-config.nix
+++ b/pkgs/top-level/packages-config.nix
@@ -47,6 +47,6 @@
     };
 
     # This is an alias which we disallow by default; explicitly allow it
-    emacs27Packages = emacs27.pkgs;
+    emacs28Packages = emacs28.pkgs;
   };
 }
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix
index 1da6e934c24b7..a5d553ac629a0 100644
--- a/pkgs/top-level/php-packages.nix
+++ b/pkgs/top-level/php-packages.nix
@@ -181,6 +181,8 @@ lib.makeScope pkgs.newScope (self: with self; {
 
     couchbase = callPackage ../development/php-packages/couchbase { };
 
+    datadog_trace = callPackage ../development/php-packages/datadog_trace { };
+
     ds = callPackage ../development/php-packages/ds { };
 
     event = callPackage ../development/php-packages/event { };
@@ -459,7 +461,7 @@ lib.makeScope pkgs.newScope (self: with self; {
             '')
           ];
           zendExtension = true;
-          doCheck = !(lib.versionOlder php.version "7.4");
+          doCheck = lib.versionAtLeast php.version "7.4";
           # Tests launch the builtin webserver.
           __darwinAllowLocalNetworking = true;
         }
@@ -523,7 +525,7 @@ lib.makeScope pkgs.newScope (self: with self; {
           '';
           doCheck = false;
         }
-        { name = "session"; doCheck = !(lib.versionAtLeast php.version "8.0"); }
+        { name = "session"; doCheck = lib.versionOlder php.version "8.0"; }
         { name = "shmop"; }
         {
           name = "simplexml";
diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix
index 0abf2b5898648..d1635ed3b8cc3 100644
--- a/pkgs/top-level/python-aliases.nix
+++ b/pkgs/top-level/python-aliases.nix
@@ -33,14 +33,18 @@ in
   ### Deprecated aliases - for backward compatibility
 
 mapAliases ({
+  aioh2 = throw "aioh2 has been removed because it is abandoned and broken."; # Added 2022-03-30
+  ansible-base = throw "ansible-base has been removed, because it is end of life"; # added 2022-03-30
   anyjson = throw "anyjson has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18
   asyncio-nats-client = nats-py; # added 2022-02-08
+  bitcoin-price-api = throw "bitcoin-price-api has been removed, it was using setuptools 2to3 translation feautre, which has been removed in setuptools 58"; # added 2022-02-15
   blockdiagcontrib-cisco = throw "blockdiagcontrib-cisco is not compatible with blockdiag 2.0.0 and has been removed."; # added 2020-11-29
   bt_proximity = bt-proximity; # added 2021-07-02
   carrot = throw "carrot has been removed, as its development was discontinued in 2012"; # added 2022-01-18
   class-registry = phx-class-registry; # added 2021-10-05
   ConfigArgParse = configargparse; # added 2021-03-18
   cozy = throw "cozy was removed because it was not actually https://pypi.org/project/Cozy/."; # added 2022-01-14
+  cryptography_vectors = "cryptography_vectors is no longer exposed in python*Packages because it is used for testing cryptography only."; # Added 2022-03-23
   dateutil = python-dateutil; # added 2021-07-03
   demjson = throw "demjson has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18
   detox = throw "detox is no longer maintained, and was broken since may 2019"; # added 2020-07-04
@@ -48,8 +52,11 @@ mapAliases ({
   diff_cover = diff-cover; # added 2021-07-02
   discogs_client = discogs-client; # added 2021-07-02
   djangorestframework-jwt = drf-jwt; # added 2021-07-20
+  django_2 = throw "Django 2 has reached it's projected EOL in 2022/04 and has therefore been removed."; # added 2022-03-05
+  django_appconf = django-appconf; # added 2022-03-03
   django_environ = django-environ; # added 2021-12-25
   django_extensions = django-extensions; # added 2022-01-09
+  django_modelcluster = django-modelcluster; # added 2022-04-02
   django_redis = django-redis; # added 2021-10-11
   django_taggit = django-taggit; # added 2021-10-11
   dns = dnspython; # added 2017-12-10
@@ -63,6 +70,7 @@ mapAliases ({
   google_api_python_client = google-api-python-client; # added 2021-03-19
   googleapis_common_protos = googleapis-common-protos; # added 2021-03-19
   grpc_google_iam_v1 = grpc-google-iam-v1; # added 2021-08-21
+  ha-av = throw "ha-av was removed, because it is no longer maintained"; # added 2022-04-06
   HAP-python = hap-python; # added 2021-06-01
   hbmqtt = throw "hbmqtt was removed because it is no longer maintained"; # added 2021-11-07
   hdlparse = throw "hdlparse has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18
@@ -72,8 +80,12 @@ mapAliases ({
   lammps-cython = throw "lammps-cython no longer builds and is unmaintained"; # added 2021-07-04
   Markups = markups; # added 2022-02-14
   MechanicalSoup = mechanicalsoup; # added 2021-06-01
+  net2grid = gridnet; # add 2022-04-22
+  nose-cover3 = throw "nose-cover3 has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-02-16
   pam = python-pam; # added 2020-09-07.
   PasteDeploy = pastedeploy; # added 2021-10-07
+  pathpy = path; # added 2022-04-12
+  pep257 = pydocstyle; # added 2022-04-12
   powerlineMemSegment = powerline-mem-segment; # added 2021-10-08
   privacyidea = throw "privacyidea has been renamed to pkgs.privacyidea"; # added 2021-06-20
   prometheus_client = prometheus-client; # added 2021-06-10
@@ -87,6 +99,8 @@ mapAliases ({
   pytest_6 = pytest; # added 2022-02-10
   pytestcov = pytest-cov; # added 2021-01-04
   pytest-pep8 = pytestpep8; # added 2021-01-04
+  pytest-pep257 = throw "pytest-pep257 was removed, as the pep257 package was migrated into pycodestyle"; # added 2022-04-12
+  pytest-pythonpath = throw "pytest-pythonpath is obsolete as of pytest 7.0.0 and has been removed"; # added 2022-03-09
   pytestpep8 = throw "pytestpep8 was removed because it is abandoned and no longer compatible with pytest v6.0"; # added 2020-12-10
   pytestquickcheck = pytest-quickcheck; # added 2021-07-20
   pytestrunner = pytest-runner; # added 2021-01-04
@@ -101,23 +115,28 @@ mapAliases ({
   qiskit-aqua = throw "qiskit-aqua has been removed due to deprecation, with its functionality moved to different qiskit packages";
   rdflib-jsonld = throw "rdflib-jsonld is not compatible with rdflib 6"; # added 2021-11-05
   repeated_test = throw "repeated_test is no longer maintained"; # added 2022-01-11
+  requests_oauthlib = requests-oauthlib; # added 2022-02-12
   requests_toolbelt = requests-toolbelt; # added 2017-09-26
   roboschool = throw "roboschool is deprecated in favor of PyBullet and has been removed"; # added 2022-01-15
+  ROPGadget = ropgadget; # added 2021-07-06
   rotate-backups = throw "rotate-backups was removed in favor of the top-level rotate-backups"; # added 2021-07-01
   ruamel_base = ruamel-base; # added 2021-11-01
   ruamel_yaml = ruamel-yaml; # added 2021-11-01
   ruamel_yaml_clib = ruamel-yaml-clib; # added 2021-11-01
+  sapi-python-client = kbcstorage; # added 2022-04-20
   scikitlearn = scikit-learn; # added 2021-07-21
   selectors34 = throw "selectors34 has been removed: functionality provided by Python itself; archived by upstream."; # added 2021-06-10
   setuptools_scm = setuptools-scm; # added 2021-06-03
-  ROPGadget = ropgadget; # added 2021-07-06
   smart_open = smart-open; # added 2021-03-14
   smmap2 = throw "smmap2 has been deprecated, use smmap instead."; # added 2020-03-14
+  SPARQLWrapper = sparqlwrapper;
   sphinxcontrib_plantuml = sphinxcontrib-plantuml; # added 2021-08-02
   sqlalchemy_migrate = sqlalchemy-migrate; # added 2021-10-28
+  SQLAlchemy-ImageAttach = throw "sqlalchemy-imageattach has been removed as it is incompatible with sqlalchemy 1.4 and unmaintained"; # added 2022-04-23
   tensorflow-bin_2 = tensorflow-bin; # added 2021-11-25
   tensorflow-build_2 = tensorflow-build; # added 2021-11-25
   tensorflow-estimator_2 = tensorflow-estimator; # added 2021-11-25
+  tensorflow-tensorboard = tensorboard; # added 2022-03-06
   tensorflow-tensorboard_2 = tensorflow-tensorboard; # added 2021-11-25
   tvnamer = throw "tvnamer was moved to pkgs.tvnamer"; # added 2021-07-05
   WazeRouteCalculator = wazeroutecalculator; # added 2021-09-29
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 01fd6c39c4c7d..82eb666487143 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -12,8 +12,6 @@
 , python
 }:
 
-with lib;
-
 self:
 
 let
@@ -40,12 +38,12 @@ let
       }
       else ff;
 
-  buildPythonPackage = makeOverridablePythonPackage ( makeOverridable (callPackage ../development/interpreters/python/mk-python-derivation.nix {
+  buildPythonPackage = makeOverridablePythonPackage (lib.makeOverridable (callPackage ../development/interpreters/python/mk-python-derivation.nix {
     inherit namePrefix;     # We want Python libraries to be named like e.g. "python3.6-${name}"
     inherit toPythonModule; # Libraries provide modules
   }));
 
-  buildPythonApplication = makeOverridablePythonPackage ( makeOverridable (callPackage ../development/interpreters/python/mk-python-derivation.nix {
+  buildPythonApplication = makeOverridablePythonPackage (lib.makeOverridable (callPackage ../development/interpreters/python/mk-python-derivation.nix {
     namePrefix = "";        # Python applications should not have any prefix
     toPythonModule = x: x;  # Application does not provide modules.
   }));
@@ -60,15 +58,14 @@ let
 
   # Get list of required Python modules given a list of derivations.
   requiredPythonModules = drvs: let
-    modules = filter hasPythonModule drvs;
-  in unique ([python] ++ modules ++ concatLists (catAttrs "requiredPythonModules" modules));
+    modules = lib.filter hasPythonModule drvs;
+  in lib.unique ([python] ++ modules ++ lib.concatLists (lib.catAttrs "requiredPythonModules" modules));
 
   # Create a PYTHONPATH from a list of derivations. This function recurses into the items to find derivations
   # providing Python modules.
   makePythonPath = drvs: lib.makeSearchPath python.sitePackages (requiredPythonModules drvs);
 
-  removePythonPrefix = name:
-    removePrefix namePrefix name;
+  removePythonPrefix = lib.removePrefix namePrefix;
 
   # Convert derivation to a Python module.
   toPythonModule = drv:
@@ -97,12 +94,6 @@ let
 
   disabledIf = x: drv: if x then disabled drv else drv;
 
-  # CUDA-related packages that are compatible with the currently packaged version
-  # of TensorFlow, used to keep these versions in sync in related packages like `jaxlib`.
-  tensorflow_compat_cudatoolkit = pkgs.cudatoolkit_11_2;
-  tensorflow_compat_cudnn = pkgs.cudnn_8_1_cudatoolkit_11_2;
-  tensorflow_compat_nccl = pkgs.nccl_cudatoolkit_11;
-
 in {
 
   inherit pkgs stdenv;
@@ -218,6 +209,8 @@ in {
 
   aesara = callPackage ../development/python-modules/aesara { };
 
+  aesedb = callPackage ../development/python-modules/aesedb { };
+
   afdko = callPackage ../development/python-modules/afdko { };
 
   affine = callPackage ../development/python-modules/affine { };
@@ -236,6 +229,8 @@ in {
 
   aio-geojson-client = callPackage ../development/python-modules/aio-geojson-client { };
 
+  aio-geojson-generic-client = callPackage ../development/python-modules/aio-geojson-generic-client { };
+
   aio-geojson-geonetnz-quakes = callPackage ../development/python-modules/aio-geojson-geonetnz-quakes { };
 
   aio-geojson-geonetnz-volcano = callPackage ../development/python-modules/aio-geojson-geonetnz-volcano { };
@@ -298,8 +293,6 @@ in {
 
   aiogithubapi = callPackage ../development/python-modules/aiogithubapi { };
 
-  aioh2 = callPackage ../development/python-modules/aioh2 { };
-
   aioharmony = callPackage ../development/python-modules/aioharmony { };
 
   aiohomekit = callPackage ../development/python-modules/aiohomekit { };
@@ -382,6 +375,8 @@ in {
 
   aiopylgtv = callPackage ../development/python-modules/aiopylgtv { };
 
+  aioqsw = callPackage ../development/python-modules/aioqsw { };
+
   aiorecollect = callPackage ../development/python-modules/aiorecollect { };
 
   aioredis = callPackage ../development/python-modules/aioredis { };
@@ -518,9 +513,7 @@ in {
 
   ansi2html = callPackage ../development/python-modules/ansi2html { };
 
-  ansible = callPackage ../development/python-modules/ansible/legacy.nix { };
-
-  ansible-base = callPackage ../development/python-modules/ansible/base.nix { };
+  ansible = callPackage ../development/python-modules/ansible { };
 
   ansible-compat = callPackage ../development/python-modules/ansible-compat { };
 
@@ -636,6 +629,8 @@ in {
 
   arrayqueues = callPackage ../development/python-modules/arrayqueues { };
 
+  arris-tg2492lg = callPackage ../development/python-modules/arris-tg2492lg { };
+
   arrow = callPackage ../development/python-modules/arrow { };
 
   arviz = callPackage ../development/python-modules/arviz { };
@@ -652,6 +647,10 @@ in {
 
   asdf = callPackage ../development/python-modules/asdf { };
 
+  asdf-standard = callPackage ../development/python-modules/asdf-standard { };
+
+  asdf-transform-schemas = callPackage ../development/python-modules/asdf-transform-schemas { };
+
   ase = callPackage ../development/python-modules/ase { };
 
   asgi-csrf = callPackage ../development/python-modules/asgi-csrf { };
@@ -1238,8 +1237,6 @@ in {
 
   bitcoinlib = callPackage ../development/python-modules/bitcoinlib { };
 
-  bitcoin-price-api = callPackage ../development/python-modules/bitcoin-price-api { };
-
   bitcoin-utils-fork-minimal = callPackage ../development/python-modules/bitcoin-utils-fork-minimal { };
 
   bitcoinrpc = callPackage ../development/python-modules/bitcoinrpc { };
@@ -1558,6 +1555,8 @@ in {
 
   certipy = callPackage ../development/python-modules/certipy { };
 
+  certomancer = callPackage ../development/python-modules/certomancer { };
+
   certvalidator = callPackage ../development/python-modules/certvalidator { };
 
   cffi = callPackage ../development/python-modules/cffi { };
@@ -1891,7 +1890,7 @@ in {
   coveralls = callPackage ../development/python-modules/coveralls { };
 
   cppe = callPackage ../development/python-modules/cppe {
-    cppe = pkgs.cppe;
+    inherit (pkgs) cppe;
   };
 
   cppheaderparser = callPackage ../development/python-modules/cppheaderparser { };
@@ -1936,10 +1935,9 @@ in {
 
   cryptography = callPackage ../development/python-modules/cryptography {
     inherit (pkgs.darwin) libiconv;
+    inherit (pkgs.darwin.apple_sdk.frameworks) Security;
   };
 
-  cryptography_vectors = callPackage ../development/python-modules/cryptography/vectors.nix { };
-
   crytic-compile = callPackage ../development/python-modules/crytic-compile { };
 
   csrmesh  = callPackage ../development/python-modules/csrmesh { };
@@ -1964,12 +1962,7 @@ in {
 
   cufflinks = callPackage ../development/python-modules/cufflinks { };
 
-  cupy = callPackage ../development/python-modules/cupy {
-    cudatoolkit = pkgs.cudatoolkit_11;
-    cudnn = pkgs.cudnn_8_3_cudatoolkit_11;
-    nccl = pkgs.nccl_cudatoolkit_11;
-    cutensor = pkgs.cutensor_cudatoolkit_11;
-  };
+  cupy = callPackage ../development/python-modules/cupy { };
 
   curio = callPackage ../development/python-modules/curio { };
 
@@ -1997,10 +1990,21 @@ in {
 
   cypari2 = callPackage ../development/python-modules/cypari2 { };
 
+  cypherpunkpay = callPackage ../development/python-modules/cypherpunkpay { };
+
   cysignals = callPackage ../development/python-modules/cysignals { };
 
   cython = callPackage ../development/python-modules/Cython { };
 
+  cython_3 = self.cython.overridePythonAttrs (old: rec {
+    version = "3.0.0a10";
+    src = old.src.override {
+      inherit version;
+      sha256 = "342e95121a3d1a67cbcf7b340391eb40cc5ce3d2a79d7873e005e8783353d89d";
+    };
+    patches = [ ];
+  });
+
   cytoolz = callPackage ../development/python-modules/cytoolz { };
 
   d2to1 = callPackage ../development/python-modules/d2to1 { };
@@ -2095,6 +2099,8 @@ in {
 
   dbutils = callPackage ../development/python-modules/dbutils { };
 
+  db-dtypes = callPackage ../development/python-modules/db-dtypes { };
+
   dcmstack = callPackage ../development/python-modules/dcmstack { };
 
   ddt = callPackage ../development/python-modules/ddt { };
@@ -2236,7 +2242,6 @@ in {
   django = self.django_3;
 
   # Current LTS
-  django_2 = callPackage ../development/python-modules/django/2.nix { };
   django_3 = callPackage ../development/python-modules/django/3.nix { };
 
   # Current latest
@@ -2246,7 +2251,7 @@ in {
 
   django-anymail = callPackage ../development/python-modules/django-anymail { };
 
-  django_appconf = callPackage ../development/python-modules/django_appconf { };
+  django-appconf = callPackage ../development/python-modules/django-appconf { };
 
   django-auth-ldap = callPackage ../development/python-modules/django-auth-ldap { };
 
@@ -2309,7 +2314,7 @@ in {
 
   django-mailman3 = callPackage ../development/python-modules/django-mailman3 { };
 
-  django_modelcluster = callPackage ../development/python-modules/django_modelcluster { };
+  django-modelcluster = callPackage ../development/python-modules/django_modelcluster { };
 
   django-multiselectfield = callPackage ../development/python-modules/django-multiselectfield { };
 
@@ -2405,9 +2410,11 @@ in {
 
   dm-haiku = callPackage ../development/python-modules/dm-haiku { };
 
-  dm-sonnet = callPackage ../development/python-modules/dm-sonnet { };
-
-  dm-tree = callPackage ../development/python-modules/dm-tree { };
+  dm-tree = callPackage ../development/python-modules/dm-tree {
+    abseil-cpp = pkgs.abseil-cpp.override {
+      cxxStandard = "14";
+    };
+  };
 
   dnachisel = callPackage ../development/python-modules/dnachisel { };
 
@@ -2533,6 +2540,8 @@ in {
 
   dynd = callPackage ../development/python-modules/dynd { };
 
+  eagle100 = callPackage ../development/python-modules/eagle100 { };
+
   easydict = callPackage ../development/python-modules/easydict { };
 
   easygui = callPackage ../development/python-modules/easygui { };
@@ -2678,6 +2687,8 @@ in {
 
   ephem = callPackage ../development/python-modules/ephem { };
 
+  ephemeral-port-reserve = callPackage ../development/python-modules/ephemeral-port-reserve { };
+
   epson-projector = callPackage ../development/python-modules/epson-projector { };
 
   eradicate = callPackage ../development/python-modules/eradicate { };
@@ -2864,8 +2875,9 @@ in {
 
   feedparser = callPackage ../development/python-modules/feedparser { };
 
-  fenics = callPackage ../development/libraries/science/math/fenics {
+  fenics = callPackage ../development/python-modules/fenics {
     hdf5 = pkgs.hdf5_1_10;
+    boost = pkgs.boost169;
   };
 
   ffcv = callPackage ../development/python-modules/ffcv { };
@@ -2898,6 +2910,8 @@ in {
 
   findimports = callPackage ../development/python-modules/findimports { };
 
+  findpython = callPackage ../development/python-modules/findpython { };
+
   fingerprints = callPackage ../development/python-modules/fingerprints { };
 
   finitude = callPackage ../development/python-modules/finitude { };
@@ -2916,6 +2930,8 @@ in {
 
   fitbit = callPackage ../development/python-modules/fitbit { };
 
+  fivem-api = callPackage ../development/python-modules/fivem-api { };
+
   fixerio = callPackage ../development/python-modules/fixerio { };
 
   fixtures = callPackage ../development/python-modules/fixtures { };
@@ -3209,6 +3225,12 @@ in {
 
   garages-amsterdam = callPackage ../development/python-modules/garages-amsterdam { };
 
+  gattlib = callPackage ../development/python-modules/gattlib {
+    inherit (pkgs) bluez glib pkg-config;
+  };
+
+  gb-io = callPackage ../development/python-modules/gb-io { };
+
   gbinder-python = callPackage ../development/python-modules/gbinder-python { };
 
   gcovr = callPackage ../development/python-modules/gcovr { };
@@ -3355,6 +3377,8 @@ in {
 
   git-sweep = callPackage ../development/python-modules/git-sweep { };
 
+  glad =  callPackage ../development/python-modules/glad { };
+
   glances-api = callPackage ../development/python-modules/glances-api { };
 
   glasgow = callPackage ../development/python-modules/glasgow { };
@@ -3421,6 +3445,8 @@ in {
 
   google-cloud-bigquery-logging = callPackage ../development/python-modules/google-cloud-bigquery-logging { };
 
+  google-cloud-bigquery-storage = callPackage ../development/python-modules/google-cloud-bigquery-storage { };
+
   google-cloud-bigtable = callPackage ../development/python-modules/google-cloud-bigtable { };
 
   google-cloud-container = callPackage ../development/python-modules/google-cloud-container { };
@@ -3562,8 +3588,6 @@ in {
 
   graphite-web = callPackage ../development/python-modules/graphite-web { };
 
-  graph_nets = callPackage ../development/python-modules/graph_nets { };
-
   graphene = callPackage ../development/python-modules/graphene { };
 
   graphene-django = callPackage ../development/python-modules/graphene-django { };
@@ -3637,7 +3661,7 @@ in {
 
   gst-python = callPackage ../development/python-modules/gst-python {
     inherit (pkgs) meson;
-    gst-plugins-base = pkgs.gst_all_1.gst-plugins-base;
+    inherit (pkgs.gst_all_1) gst-plugins-base;
   };
 
   gtfs-realtime-bindings = callPackage ../development/python-modules/gtfs-realtime-bindings { };
@@ -3705,8 +3729,6 @@ in {
 
   hdate = callPackage ../development/python-modules/hdate { };
 
-  ha-av = callPackage ../development/python-modules/ha-av { };
-
   ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { };
 
   ha-philipsjs = callPackage ../development/python-modules/ha-philipsjs{ };
@@ -3727,6 +3749,8 @@ in {
 
   hatasmota = callPackage ../development/python-modules/hatasmota { };
 
+  hatchling = callPackage ../development/python-modules/hatchling { };
+
   haversine = callPackage ../development/python-modules/haversine { };
 
   hawkauthlib = callPackage ../development/python-modules/hawkauthlib { };
@@ -3795,6 +3819,8 @@ in {
 
   hjson = callPackage ../development/python-modules/hjson { };
 
+  hkavr = callPackage ../development/python-modules/hkavr { };
+
   hkdf = callPackage ../development/python-modules/hkdf { };
 
   hlk-sw16 = callPackage ../development/python-modules/hlk-sw16 { };
@@ -4223,6 +4249,8 @@ in {
 
   jaraco_text = callPackage ../development/python-modules/jaraco_text { };
 
+  jarowinkler = callPackage ../development/python-modules/jarowinkler { };
+
   javaobj-py3 = callPackage ../development/python-modules/javaobj-py3 { };
 
   javaproperties = callPackage ../development/python-modules/javaproperties { };
@@ -4231,16 +4259,17 @@ in {
 
   jaxlib-bin = callPackage ../development/python-modules/jaxlib/bin.nix {
     cudaSupport = pkgs.config.cudaSupport or false;
-    cudatoolkit_11 = tensorflow_compat_cudatoolkit;
-    cudnn = tensorflow_compat_cudnn;
+    # At the time of writing (2022-04-18), `cudaPackages.nccl` is broken, so we
+    # pin to `cudaPackages_11_6` instead.
+    cudaPackages = pkgs.cudaPackages_11_6;
   };
 
   jaxlib-build = callPackage ../development/python-modules/jaxlib {
     # Some platforms don't have `cudaSupport` defined, hence the need for 'or false'.
     cudaSupport = pkgs.config.cudaSupport or false;
-    cudatoolkit = tensorflow_compat_cudatoolkit;
-    cudnn = tensorflow_compat_cudnn;
-    nccl = tensorflow_compat_nccl;
+    # At the time of writing (2022-04-18), `cudaPackages.nccl` is broken, so we
+    # pin to `cudaPackages_11_6` instead.
+    cudaPackages = pkgs.cudaPackages_11_6;
   };
 
   jaxlib = self.jaxlib-build;
@@ -4335,6 +4364,8 @@ in {
 
   jsonmerge = callPackage ../development/python-modules/jsonmerge { };
 
+  json-home-client = callPackage ../development/python-modules/json-home-client { };
+
   json-merge-patch = callPackage ../development/python-modules/json-merge-patch { };
 
   json-schema-for-humans = callPackage ../development/python-modules/json-schema-for-humans { };
@@ -4473,6 +4504,8 @@ in {
 
   kazoo = callPackage ../development/python-modules/kazoo { };
 
+  kbcstorage = callPackage ../development/python-modules/kbcstorage { };
+
   kconfiglib = callPackage ../development/python-modules/kconfiglib { };
 
   keep = callPackage ../development/python-modules/keep { };
@@ -4655,7 +4688,7 @@ in {
   });
 
   libgpuarray = callPackage ../development/python-modules/libgpuarray {
-    clblas = pkgs.clblas.override { boost = self.boost; };
+    clblas = pkgs.clblas.override { inherit (self) boost; };
     cudaSupport = pkgs.config.cudaSupport or false;
   };
 
@@ -4669,7 +4702,7 @@ in {
     inherit (pkgs) lzfse;
   };
 
-  libmodulemd = pipe pkgs.libmodulemd [
+  libmodulemd = lib.pipe pkgs.libmodulemd [
     toPythonModule
     (p:
       p.overrideAttrs (super: {
@@ -4694,7 +4727,7 @@ in {
 
   libpyvivotek = callPackage ../development/python-modules/libpyvivotek { };
 
-  libpwquality = pipe pkgs.libpwquality [
+  libpwquality = lib.pipe pkgs.libpwquality [
     toPythonModule
     (p: p.overrideAttrs (super: { meta = super.meta // { outputsToInstall = [ "py" ]; }; }))
     (p: p.override { enablePython = true; inherit python; })
@@ -4706,7 +4739,7 @@ in {
     inherit (self) python libxml2;
   });
 
-  librepo = pipe pkgs.librepo [
+  librepo = lib.pipe pkgs.librepo [
     toPythonModule
     (p: p.overrideAttrs (super: { meta = super.meta // { outputsToInstall = [ "py" ]; }; }))
     (p: p.override { inherit python; })
@@ -4717,13 +4750,13 @@ in {
 
   librouteros = callPackage ../development/python-modules/librouteros { };
 
-  libsass = (callPackage ../development/python-modules/libsass {
+  libsass = callPackage ../development/python-modules/libsass {
     inherit (pkgs) libsass;
-  });
+  };
 
   libsavitar = callPackage ../development/python-modules/libsavitar { };
 
-  libselinux = pipe pkgs.libselinux [
+  libselinux = lib.pipe pkgs.libselinux [
     toPythonModule
     (p:
       p.overrideAttrs (super: {
@@ -4885,6 +4918,8 @@ in {
 
   losant-rest = callPackage ../development/python-modules/losant-rest { };
 
+  lru-dict = callPackage ../development/python-modules/lru-dict { };
+
   lsassy = callPackage ../development/python-modules/lsassy { };
 
   luddite = callPackage ../development/python-modules/luddite { };
@@ -4903,6 +4938,8 @@ in {
 
   lupupy = callPackage ../development/python-modules/lupupy { };
 
+  lxmf= callPackage ../development/python-modules/lxmf { };
+
   lxml = callPackage ../development/python-modules/lxml {
     inherit (pkgs) libxml2 libxslt zlib;
   };
@@ -5109,6 +5146,8 @@ in {
     python3Packages = self;
   });
 
+  mergedb = callPackage ../development/python-modules/mergedb { };
+
   mergedeep = callPackage ../development/python-modules/mergedeep { };
 
   merkletools = callPackage ../development/python-modules/merkletools { };
@@ -5136,6 +5175,8 @@ in {
 
   meteoalertapi = callPackage ../development/python-modules/meteoalertapi { };
 
+  meteofrance-api = callPackage ../development/python-modules/meteofrance-api { };
+
   mezzanine = callPackage ../development/python-modules/mezzanine { };
 
   micawber = callPackage ../development/python-modules/micawber { };
@@ -5245,6 +5286,8 @@ in {
 
   mohawk = callPackage ../development/python-modules/mohawk { };
 
+  monero = callPackage ../development/python-modules/monero { };
+
   mongomock = callPackage ../development/python-modules/mongomock { };
 
   mongodict = callPackage ../development/python-modules/mongodict { };
@@ -5253,10 +5296,10 @@ in {
 
   monkeyhex = callPackage ../development/python-modules/monkeyhex { };
 
-  monosat = (pkgs.monosat.python {
+  monosat = pkgs.monosat.python {
     inherit buildPythonPackage;
     inherit (self) cython;
-  });
+  };
 
   monotonic = callPackage ../development/python-modules/monotonic { };
 
@@ -5418,6 +5461,8 @@ in {
 
   nanoleaf = callPackage ../development/python-modules/nanoleaf { };
 
+  nomadnet = callPackage ../development/python-modules/nomadnet { };
+
   nanomsg-python = callPackage ../development/python-modules/nanomsg-python {
     inherit (pkgs) nanomsg;
   };
@@ -5434,6 +5479,8 @@ in {
 
   napari-console = callPackage ../development/python-modules/napari-console { };
 
+  napari-npe2 = callPackage ../development/python-modules/napari-npe2 { };
+
   napari-plugin-engine = callPackage ../development/python-modules/napari-plugin-engine { };
 
   napari-svg = callPackage ../development/python-modules/napari-svg { };
@@ -5496,8 +5543,6 @@ in {
 
   nestedtext = callPackage ../development/python-modules/nestedtext { };
 
-  net2grid = callPackage ../development/python-modules/net2grid { };
-
   netaddr = callPackage ../development/python-modules/netaddr { };
 
   netcdf4 = callPackage ../development/python-modules/netcdf4 { };
@@ -5535,7 +5580,8 @@ in {
   nghttp2 = (toPythonModule (pkgs.nghttp2.override {
     inherit (self) python cython setuptools;
     inherit (pkgs) ncurses;
-    enablePython = true;
+    enableApp = false; # build only libnghttp2 ...
+    enablePython = true; # ... and its Python bindings
   })).python;
 
   nibabel = callPackage ../development/python-modules/nibabel { };
@@ -5610,8 +5656,6 @@ in {
 
   nose-cov = callPackage ../development/python-modules/nose-cov { };
 
-  nose-cover3 = callPackage ../development/python-modules/nose-cover3 { };
-
   nose-cprof = callPackage ../development/python-modules/nose-cprof { };
 
   nose-exclude = callPackage ../development/python-modules/nose-exclude { };
@@ -5676,7 +5720,6 @@ in {
 
   numba = callPackage ../development/python-modules/numba {
     cudaSupport = pkgs.config.cudaSupport or false;
-    cudatoolkit = tensorflow_compat_cudatoolkit;
   };
 
   numbaWithCuda = self.numba.override {
@@ -5705,6 +5748,8 @@ in {
 
   nwdiag = callPackage ../development/python-modules/nwdiag { };
 
+  oasatelematics = callPackage ../development/python-modules/oasatelematics { };
+
   oath = callPackage ../development/python-modules/oath { };
 
   oauth2 = callPackage ../development/python-modules/oauth2 { };
@@ -5787,7 +5832,7 @@ in {
   openapi-spec-validator = callPackage ../development/python-modules/openapi-spec-validator { };
 
   openbabel-bindings = callPackage ../development/python-modules/openbabel-bindings {
-      openbabel = (callPackage ../development/libraries/openbabel { python = self.python; });
+      openbabel = callPackage ../development/libraries/openbabel { inherit (self) python; };
   };
 
   opencv3 = toPythonModule (pkgs.opencv3.override {
@@ -6023,6 +6068,8 @@ in {
 
   patch-ng = callPackage ../development/python-modules/patch-ng { };
 
+  path = callPackage ../development/python-modules/path { };
+
   path-and-address = callPackage ../development/python-modules/path-and-address { };
 
   pathable = callPackage ../development/python-modules/pathable { };
@@ -6033,8 +6080,6 @@ in {
 
   pathos = callPackage ../development/python-modules/pathos { };
 
-  pathpy = callPackage ../development/python-modules/path.py { };
-
   pathspec = callPackage ../development/python-modules/pathspec { };
 
   pathtools = callPackage ../development/python-modules/pathtools { };
@@ -6087,6 +6132,8 @@ in {
 
   pecan = callPackage ../development/python-modules/pecan { };
 
+  peco = callPackage ../development/python-modules/peco { };
+
   peewee = callPackage ../development/python-modules/peewee { };
 
   pefile = callPackage ../development/python-modules/pefile { };
@@ -6097,8 +6144,6 @@ in {
 
   pendulum = callPackage ../development/python-modules/pendulum { };
 
-  pep257 = callPackage ../development/python-modules/pep257 { };
-
   pep440 = callPackage ../development/python-modules/pep440 { };
 
   pep517 = callPackage ../development/python-modules/pep517 { };
@@ -6165,6 +6210,10 @@ in {
 
   pdunehd = callPackage ../development/python-modules/pdunehd { };
 
+  pencompy = callPackage ../development/python-modules/pencompy { };
+
+  pixcat = callPackage ../development/python-modules/pixcat { };
+
   pyprecice = callPackage ../development/python-modules/pyprecice { };
 
   phonopy = callPackage ../development/python-modules/phonopy { };
@@ -6360,6 +6409,8 @@ in {
 
   pythonfinder = callPackage ../development/python-modules/pythonfinder { };
 
+  pytomorrowio = callPackage ../development/python-modules/pytomorrowio { };
+
   pyutil = callPackage ../development/python-modules/pyutil { };
 
   pyzbar = callPackage ../development/python-modules/pyzbar { };
@@ -6384,6 +6435,10 @@ in {
 
   plexwebsocket = callPackage ../development/python-modules/plexwebsocket { };
 
+  plfit = toPythonModule (pkgs.plfit.override {
+    inherit (self) python;
+  });
+
   plone-testing = callPackage ../development/python-modules/plone-testing { };
 
   plotly = callPackage ../development/python-modules/plotly { };
@@ -6430,6 +6485,8 @@ in {
 
   poezio = callPackage ../applications/networking/instant-messengers/poezio { };
 
+  polars = callPackage ../development/python-modules/polars { };
+
   polarizationsolver = callPackage ../development/python-modules/polarizationsolver { };
 
   polib = callPackage ../development/python-modules/polib { };
@@ -6680,6 +6737,8 @@ in {
 
   py3exiv2 = callPackage ../development/python-modules/py3exiv2 { };
 
+  py3rijndael = callPackage ../development/python-modules/py3rijndael { };
+
   py3status = callPackage ../development/python-modules/py3status { };
 
   py3to2 = callPackage ../development/python-modules/3to2 { };
@@ -6758,7 +6817,9 @@ in {
 
   pyblock = callPackage ../development/python-modules/pyblock { };
 
-  pybluez = callPackage ../development/python-modules/pybluez { };
+  pybluez = callPackage ../development/python-modules/pybluez {
+    inherit (pkgs) bluez;
+  };
 
   pybotvac = callPackage ../development/python-modules/pybotvac { };
 
@@ -6865,7 +6926,6 @@ in {
   pyctr = callPackage ../development/python-modules/pyctr { };
 
   pycuda = callPackage ../development/python-modules/pycuda {
-    cudatoolkit = pkgs.cudatoolkit;
     inherit (pkgs.stdenv) mkDerivation;
   };
 
@@ -7061,9 +7121,7 @@ in {
 
   pygetwindow = callPackage ../development/python-modules/pygetwindow { };
 
-  pygit2 = callPackage ../development/python-modules/pygit2 {
-    libgit2 = pkgs.libgit2_1_3_0;
-  };
+  pygit2 = callPackage ../development/python-modules/pygit2 { };
 
   PyGithub = callPackage ../development/python-modules/pyGithub { };
 
@@ -7111,6 +7169,10 @@ in {
 
   pyhamcrest = callPackage ../development/python-modules/pyhamcrest { };
 
+  pyhanko = callPackage ../development/python-modules/pyhanko { };
+
+  pyhanko-certvalidator = callPackage ../development/python-modules/pyhanko-certvalidator { };
+
   pyhaversion = callPackage ../development/python-modules/pyhaversion { };
 
   pyhcl = callPackage ../development/python-modules/pyhcl { };
@@ -7419,6 +7481,8 @@ in {
     inherit (pkgs) jq;
   };
 
+  pypng = callPackage ../development/python-modules/pypng { };
+
   phonemizer = callPackage ../development/python-modules/phonemizer { };
 
   pyopencl = callPackage ../development/python-modules/pyopencl {
@@ -7435,6 +7499,8 @@ in {
 
   pyopnsense = callPackage ../development/python-modules/pyopnsense { };
 
+  pyoppleio = callPackage ../development/python-modules/pyoppleio { };
+
   pyosf = callPackage ../development/python-modules/pyosf { };
 
   pyosmium = callPackage ../development/python-modules/pyosmium {
@@ -7587,6 +7653,7 @@ in {
   });
 
   pyrealsense2WithCuda = toPythonModule (pkgs.librealsenseWithCuda.override {
+    cudaSupport = true;
     enablePython = true;
     pythonPackages = self;
   });
@@ -7648,6 +7715,8 @@ in {
 
   pyruckus = callPackage ../development/python-modules/pyruckus { };
 
+  pysaj = callPackage ../development/python-modules/pysaj { };
+
   pysam = callPackage ../development/python-modules/pysam { };
 
   pysaml2 = callPackage ../development/python-modules/pysaml2 {
@@ -7688,6 +7757,8 @@ in {
 
   pysendfile = callPackage ../development/python-modules/pysendfile { };
 
+  pysensibo = callPackage ../development/python-modules/pysensibo { };
+
   pysensors = callPackage ../development/python-modules/pysensors { };
 
   pyserial-asyncio = callPackage ../development/python-modules/pyserial-asyncio { };
@@ -7722,10 +7793,14 @@ in {
 
   pysigma-backend-splunk = callPackage ../development/python-modules/pysigma-backend-splunk { };
 
+  pysigma-backend-insightidr = callPackage ../development/python-modules/pysigma-backend-insightidr { };
+
   pysigma-pipeline-crowdstrike = callPackage ../development/python-modules/pysigma-pipeline-crowdstrike { };
 
   pysigma-pipeline-sysmon = callPackage ../development/python-modules/pysigma-pipeline-sysmon { };
 
+  pysigma-pipeline-windows = callPackage ../development/python-modules/pysigma-pipeline-windows { };
+
   pysignalclirestapi = callPackage ../development/python-modules/pysignalclirestapi { };
 
   pysigset = callPackage ../development/python-modules/pysigset { };
@@ -7762,6 +7837,12 @@ in {
 
   pysnmp = callPackage ../development/python-modules/pysnmp { };
 
+  pysnmp-pyasn1 = callPackage ../development/python-modules/pysnmp-pyasn1 { };
+
+  pysnmp-pysmi = callPackage ../development/python-modules/pysnmp-pysmi { };
+
+  pysnmplib = callPackage ../development/python-modules/pysnmplib { };
+
   pysnooper = callPackage ../development/python-modules/pysnooper { };
 
   pysnow = callPackage ../development/python-modules/pysnow { };
@@ -7910,6 +7991,8 @@ in {
 
   pytest-dependency = callPackage ../development/python-modules/pytest-dependency { };
 
+  pytest-describe = callPackage ../development/python-modules/pytest-describe { };
+
   pytest-django = callPackage ../development/python-modules/pytest-django { };
 
   pytest-doctestplus = callPackage ../development/python-modules/pytest-doctestplus { };
@@ -7978,12 +8061,8 @@ in {
 
   pytest-ordering = callPackage ../development/python-modules/pytest-ordering { };
 
-  pytest-pep257 = callPackage ../development/python-modules/pytest-pep257 { };
-
   pytest-pylint = callPackage ../development/python-modules/pytest-pylint { };
 
-  pytest-pythonpath = callPackage ../development/python-modules/pytest-pythonpath { };
-
   pytest-qt = callPackage ../development/python-modules/pytest-qt { };
 
   pytest-quickcheck = callPackage ../development/python-modules/pytest-quickcheck { };
@@ -8080,6 +8159,8 @@ in {
 
   python-axolotl-curve25519 = callPackage ../development/python-modules/python-axolotl-curve25519 { };
 
+  python-barcode = callPackage ../development/python-modules/python-barcode { };
+
   python-baseconv = callPackage ../development/python-modules/python-baseconv { };
 
   python-benedict = callPackage ../development/python-modules/python-benedict { };
@@ -8118,6 +8199,8 @@ in {
 
   python-editor = callPackage ../development/python-modules/python-editor { };
 
+  python-family-hub-local = callPackage ../development/python-modules/python-family-hub-local { };
+
   python-fsutil = callPackage ../development/python-modules/python-fsutil { };
 
   pythonefl = callPackage ../development/python-modules/python-efl { };
@@ -8260,6 +8343,8 @@ in {
 
   python-packer = callPackage ../development/python-modules/python-packer { };
 
+  python-pae = callPackage ../development/python-modules/python-pae { };
+
   python-pam = callPackage ../development/python-modules/python-pam {
     inherit (pkgs) pam;
   };
@@ -8378,24 +8463,6 @@ in {
 
   pytorch = callPackage ../development/python-modules/pytorch {
     cudaSupport = pkgs.config.cudaSupport or false;
-
-    # TODO: next time pytorch is updated (to 1.11.0, currently in staging as of
-    # 2022-03-31), make the following changes:
-
-    # -> cudatoolk_11
-    cudatoolkit = pkgs.cudatoolkit_10;
-
-    # -> cudnn_8_3_cudatoolkit_11
-    cudnn = pkgs.cudnn_8_1_cudatoolkit_10;
-
-    # -> cutensor_cudatoolkit_11 (cutensor is a new dependency in v1.11.0)
-    # cutensor = pkgs.cutensor_cudatoolkit_11;
-
-    # -> setting a custom magma should be unnecessary with v1.11.0
-    magma = pkgs.magma.override { cudatoolkit = pkgs.cudatoolkit_10; };
-
-    # -> nccl_cudatoolkit_11
-    nccl = pkgs.nccl.override { cudatoolkit = pkgs.cudatoolkit_10; };
   };
 
   pytorch-bin = callPackage ../development/python-modules/pytorch/bin.nix { };
@@ -8428,6 +8495,8 @@ in {
 
   pytricia = callPackage ../development/python-modules/pytricia { };
 
+  pyttsx3 = callPackage ../development/python-modules/pyttsx3 { };
+
   pytube = callPackage ../development/python-modules/pytube { };
 
   pytun = callPackage ../development/python-modules/pytun { };
@@ -8515,6 +8584,8 @@ in {
 
   pyvmomi = callPackage ../development/python-modules/pyvmomi { };
 
+  pyvo = callPackage ../development/python-modules/pyvo { };
+
   pyvolumio = callPackage ../development/python-modules/pyvolumio { };
 
   pyvoro = callPackage ../development/python-modules/pyvoro { };
@@ -8686,6 +8757,8 @@ in {
 
   rapidfuzz = callPackage ../development/python-modules/rapidfuzz { };
 
+  rapidfuzz-capi = callPackage ../development/python-modules/rapidfuzz-capi { };
+
   rarfile = callPackage ../development/python-modules/rarfile {
     inherit (pkgs) libarchive;
   };
@@ -8806,7 +8879,7 @@ in {
 
   requests_ntlm = callPackage ../development/python-modules/requests_ntlm { };
 
-  requests_oauthlib = callPackage ../development/python-modules/requests-oauthlib { };
+  requests-oauthlib = callPackage ../development/python-modules/requests-oauthlib { };
 
   requests-pkcs12 = callPackage ../development/python-modules/requests-pkcs12 { };
 
@@ -8834,6 +8907,8 @@ in {
 
   restview = callPackage ../development/python-modules/restview { };
 
+  result = callPackage ../development/python-modules/result { };
+
   rethinkdb = callPackage ../development/python-modules/rethinkdb { };
 
   retry = callPackage ../development/python-modules/retry { };
@@ -8880,6 +8955,8 @@ in {
     python3 = python;
   });
 
+  rjpl = callPackage ../development/python-modules/rjpl { };
+
   rjsmin = callPackage ../development/python-modules/rjsmin { };
 
   rki-covid-parser = callPackage ../development/python-modules/rki-covid-parser { };
@@ -8892,6 +8969,8 @@ in {
 
   rnginline = callPackage ../development/python-modules/rnginline { };
 
+  rns = callPackage ../development/python-modules/rns { };
+
   robomachine = callPackage ../development/python-modules/robomachine { };
 
   robot-detection = callPackage ../development/python-modules/robot-detection { };
@@ -8938,6 +9017,8 @@ in {
 
   routes = callPackage ../development/python-modules/routes { };
 
+  rova = callPackage ../development/python-modules/rova { };
+
   rpcq = callPackage ../development/python-modules/rpcq { };
 
   rpdb = callPackage ../development/python-modules/rpdb { };
@@ -9050,8 +9131,6 @@ in {
 
   sanic-testing = callPackage ../development/python-modules/sanic-testing { };
 
-  sapi-python-client = callPackage ../development/python-modules/sapi-python-client { };
-
   sarif-om = callPackage ../development/python-modules/sarif-om { };
 
   sarge = callPackage ../development/python-modules/sarge { };
@@ -9146,6 +9225,8 @@ in {
 
   secure = callPackage ../development/python-modules/secure { };
 
+  securetar = callPackage ../development/python-modules/securetar { };
+
   seekpath = callPackage ../development/python-modules/seekpath { };
 
   segments = callPackage ../development/python-modules/segments { };
@@ -9189,6 +9270,8 @@ in {
 
   serpy = callPackage ../development/python-modules/serpy { };
 
+  servefile = callPackage ../development/python-modules/servefile { };
+
   serverlessrepo = callPackage ../development/python-modules/serverlessrepo { };
 
   service-identity = callPackage ../development/python-modules/service_identity { };
@@ -9211,6 +9294,8 @@ in {
 
   setuptoolsTrial = callPackage ../development/python-modules/setuptoolstrial { };
 
+  seventeentrack = callPackage ../development/python-modules/seventeentrack { };
+
   sexpdata = callPackage ../development/python-modules/sexpdata { };
 
   sfepy = callPackage ../development/python-modules/sfepy { };
@@ -9239,6 +9324,8 @@ in {
 
   shippai = callPackage ../development/python-modules/shippai { };
 
+  shiv = callPackage ../development/python-modules/shiv { };
+
   shodan = callPackage ../development/python-modules/shodan { };
 
   shortuuid = callPackage ../development/python-modules/shortuuid { };
@@ -9410,12 +9497,12 @@ in {
   snuggs = callPackage ../development/python-modules/snuggs { };
 
   soapysdr = toPythonModule (pkgs.soapysdr.override {
-    python = self.python;
+    inherit (self) python;
     usePython = true;
   });
 
   soapysdr-with-plugins = toPythonModule (pkgs.soapysdr-with-plugins.override {
-    python = self.python;
+    inherit (self) python;
     usePython = true;
   });
 
@@ -9433,6 +9520,8 @@ in {
 
   sockjs-tornado = callPackage ../development/python-modules/sockjs-tornado { };
 
+  socksio = callPackage ../development/python-modules/socksio { };
+
   socksipy-branch = callPackage ../development/python-modules/socksipy-branch { };
 
   soco = callPackage ../development/python-modules/soco { };
@@ -9489,7 +9578,7 @@ in {
 
   sparklines = callPackage ../development/python-modules/sparklines { };
 
-  SPARQLWrapper = callPackage ../development/python-modules/sparqlwrapper { };
+  sparqlwrapper = callPackage ../development/python-modules/sparqlwrapper { };
 
   sparse = callPackage ../development/python-modules/sparse { };
 
@@ -9615,8 +9704,6 @@ in {
 
   sqlalchemy-i18n = callPackage ../development/python-modules/sqlalchemy-i18n { };
 
-  SQLAlchemy-ImageAttach = callPackage ../development/python-modules/sqlalchemy-imageattach { };
-
   sqlalchemy-jsonfield = callPackage ../development/python-modules/sqlalchemy-jsonfield { };
 
   sqlalchemy-migrate = callPackage ../development/python-modules/sqlalchemy-migrate { };
@@ -9705,6 +9792,8 @@ in {
 
   stone = callPackage ../development/python-modules/stone { };
 
+  stookalert = callPackage ../development/python-modules/stookalert { };
+
   stopit = callPackage ../development/python-modules/stopit { };
 
   strategies = callPackage ../development/python-modules/strategies { };
@@ -9897,20 +9986,18 @@ in {
 
   tensorboard-plugin-wit = callPackage ../development/python-modules/tensorboard-plugin-wit { };
 
+  tensorboard = callPackage ../development/python-modules/tensorboard { };
+
   tensorboardx = callPackage ../development/python-modules/tensorboardx { };
 
   tensorflow-bin = callPackage ../development/python-modules/tensorflow/bin.nix {
     cudaSupport = pkgs.config.cudaSupport or false;
-    cudatoolkit = tensorflow_compat_cudatoolkit;
-    cudnn = tensorflow_compat_cudnn;
   };
 
   tensorflow-build = callPackage ../development/python-modules/tensorflow {
     inherit (pkgs.darwin) cctools;
     cudaSupport = pkgs.config.cudaSupport or false;
-    cudatoolkit = tensorflow_compat_cudatoolkit;
-    cudnn = tensorflow_compat_cudnn;
-    nccl = tensorflow_compat_nccl;
+    inherit (self.tensorflow-bin) cudaPackages;
     inherit (pkgs.darwin.apple_sdk.frameworks) Foundation Security;
     flatbuffers-core = pkgs.flatbuffers;
     flatbuffers-python = self.flatbuffers;
@@ -9929,8 +10016,6 @@ in {
 
   tensorflow = self.tensorflow-build;
 
-  tensorflow-tensorboard = callPackage ../development/python-modules/tensorflow-tensorboard { };
-
   tensorflowWithCuda = self.tensorflow.override {
     cudaSupport = true;
   };
@@ -10038,9 +10123,9 @@ in {
 
   thumborPexif = callPackage ../development/python-modules/thumborpexif { };
 
-  tkinter = let
+  tkinter = callPackage ../development/python-modules/tkinter {
     py = python.override { x11Support=true; };
-  in callPackage ../development/python-modules/tkinter { py = py; };
+  };
 
   tidylib = callPackage ../development/python-modules/pytidylib { };
 
@@ -10202,7 +10287,9 @@ in {
 
   trimesh = callPackage ../development/python-modules/trimesh { };
 
-  trio = callPackage ../development/python-modules/trio { };
+  trio = callPackage ../development/python-modules/trio {
+    inherit (pkgs) coreutils;
+  };
 
   trio-asyncio = callPackage ../development/python-modules/trio-asyncio { };
 
@@ -10378,6 +10465,8 @@ in {
 
   ueagle = callPackage ../development/python-modules/ueagle { };
 
+  uharfbuzz = callPackage ../development/python-modules/uharfbuzz { };
+
   ujson = callPackage ../development/python-modules/ujson { };
 
   ukkonen = callPackage ../development/python-modules/ukkonen { };
@@ -10468,6 +10557,8 @@ in {
 
   uritemplate = callPackage ../development/python-modules/uritemplate { };
 
+  uri-template = callPackage ../development/python-modules/uri-template { };
+
   uritools = callPackage ../development/python-modules/uritools { };
 
   url-normalize = callPackage ../development/python-modules/url-normalize { };
@@ -10486,6 +10577,8 @@ in {
 
   urwid-readline = callPackage ../development/python-modules/urwid-readline { };
 
+  usbrelay-py = callPackage ../os-specific/linux/usbrelay/python.nix { };
+
   usbtmc = callPackage ../development/python-modules/usbtmc { };
 
   us = callPackage ../development/python-modules/us { };
@@ -10582,7 +10675,9 @@ in {
 
   vispy = callPackage ../development/python-modules/vispy { };
 
-  vivisect = callPackage ../development/python-modules/vivisect { };
+  vivisect = callPackage ../development/python-modules/vivisect {
+    inherit (pkgs.libsForQt5) wrapQtAppsHook;
+  };
 
   viv-utils = callPackage ../development/python-modules/viv-utils { };
 
@@ -10758,8 +10853,12 @@ in {
 
   widgetsnbextension = callPackage ../development/python-modules/widgetsnbextension { };
 
+  widlparser = callPackage ../development/python-modules/widlparser { };
+
   wiffi = callPackage ../development/python-modules/wiffi { };
 
+  wifi = callPackage ../development/python-modules/wifi { };
+
   willow = callPackage ../development/python-modules/willow { };
 
   winacl = callPackage ../development/python-modules/winacl { };
@@ -10987,6 +11086,8 @@ in {
     phantomjsSupport = false;
   };
 
+  yoyo-migrations = callPackage ../development/python-modules/yoyo-migrations { };
+
   yt-dlp = callPackage ../tools/misc/yt-dlp { };
 
   yt-dlp-light = callPackage ../tools/misc/yt-dlp {
@@ -11140,6 +11241,8 @@ in {
 
   zulip = callPackage ../development/python-modules/zulip { };
 
+  zwave-me-ws = callPackage ../development/python-modules/zwave-me-ws { };
+
   zwave-js-server-python = callPackage ../development/python-modules/zwave-js-server-python { };
 
   zxcvbn = callPackage ../development/python-modules/zxcvbn { };
diff --git a/pkgs/top-level/python2-packages.nix b/pkgs/top-level/python2-packages.nix
index 224acec1625f1..c915fc5c8c506 100644
--- a/pkgs/top-level/python2-packages.nix
+++ b/pkgs/top-level/python2-packages.nix
@@ -30,8 +30,6 @@ with self; with super; {
 
   cryptography = callPackage ../development/python2-modules/cryptography { };
 
-  cryptography_vectors = callPackage ../development/python2-modules/cryptography-vectors { };
-
   decorator = callPackage ../development/python2-modules/decorator { };
 
   enum = callPackage ../development/python2-modules/enum { };
diff --git a/pkgs/top-level/qt5-packages.nix b/pkgs/top-level/qt5-packages.nix
index 4b00b704d5fbe..72d2a77d2832e 100644
--- a/pkgs/top-level/qt5-packages.nix
+++ b/pkgs/top-level/qt5-packages.nix
@@ -142,6 +142,8 @@ in (kdeFrameworks // plasmaMobileGear // plasma5 // plasma5.thirdParty // kdeGea
 
   mapbox-gl-qml = libsForQt5.callPackage ../development/libraries/mapbox-gl-qml { };
 
+  maplibre-gl-native = callPackage ../development/libraries/maplibre-gl-native { };
+
   mauikit = callPackage ../development/libraries/mauikit { };
 
   mauikit-filebrowsing = callPackage ../development/libraries/mauikit-filebrowsing { };
@@ -176,6 +178,9 @@ in (kdeFrameworks // plasmaMobileGear // plasma5 // plasma5.thirdParty // kdeGea
 
   qca-qt5 = callPackage ../development/libraries/qca-qt5 { };
 
+  # Until macOS SDK allows for Qt 5.15, darwin is limited to 2.3.2
+  qca-qt5_2_3_2 = callPackage ../development/libraries/qca-qt5/2.3.2.nix { };
+
   qcoro = callPackage ../development/libraries/qcoro { };
 
   qcsxcad = callPackage ../development/libraries/science/electronics/qcsxcad { };
diff --git a/pkgs/top-level/release-cuda.nix b/pkgs/top-level/release-cuda.nix
new file mode 100644
index 0000000000000..6cc149936ac8e
--- /dev/null
+++ b/pkgs/top-level/release-cuda.nix
@@ -0,0 +1,55 @@
+/*
+    Test CUDA packages.
+
+    This release file will not be tested on hydra.nixos.org
+    because it requires unfree software.
+
+    Test for example like this:
+
+        $ hydra-eval-jobs pkgs/top-level/release-cuda.nix --option restrict-eval false -I foo=. --arg nixpkgs '{ outPath = ./.; revCount = 0; shortRev = "aabbcc"; }'
+
+*/
+
+{ # The platforms for which we build Nixpkgs.
+  supportedSystems ? [
+    "x86_64-linux"
+  ]
+, # Attributes passed to nixpkgs.
+  nixpkgsArgs ? { config = { allowUnfree = true; inHydra = true; }; }
+}:
+
+with import ./release-lib.nix {inherit supportedSystems nixpkgsArgs; };
+with lib;
+
+let
+  # Package sets to evaluate
+  packageSets = [
+    "cudaPackages_10_0"
+    "cudaPackages_10_1"
+    "cudaPackages_10_2"
+    "cudaPackages_10"
+    "cudaPackages_11_0"
+    "cudaPackages_11_1"
+    "cudaPackages_11_2"
+    "cudaPackages_11_3"
+    "cudaPackages_11_4"
+    "cudaPackages_11_5"
+    "cudaPackages_11_6"
+    "cudaPackages_11"
+    "cudaPackages"
+  ];
+
+  evalPackageSet = pset: mapTestOn { ${pset} = packagePlatforms pkgs.${pset}; };
+
+  jobs = (mapTestOn ({
+    # Packages to evaluate
+    python3.pkgs.caffeWithCuda = linux;
+    python3.pkgs.jaxlibWithCuda = linux;
+    python3.pkgs.libgpuarray = linux;
+    python3.pkgs.tensorflowWithCuda = linux;
+    python3.pkgs.pyrealsense2WithCuda = linux;
+    python3.pkgs.pytorchWithCuda = linux;
+    python3.pkgs.jaxlib = linux;
+  }) // (genAttrs packageSets evalPackageSet));
+
+in jobs
diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix
index ef2a8737e6776..972bb02ca7fea 100644
--- a/pkgs/top-level/release-haskell.nix
+++ b/pkgs/top-level/release-haskell.nix
@@ -129,7 +129,18 @@ let
   jobs = recursiveUpdateMany [
     (mapTestOn {
       haskellPackages = packagePlatforms pkgs.haskellPackages;
-      haskell.compiler = packagePlatforms pkgs.haskell.compiler;
+      haskell.compiler = packagePlatforms pkgs.haskell.compiler // (lib.genAttrs [
+        "ghcjs"
+        "ghcjs810"
+      ] (ghcjsName: {
+        # We can't build ghcjs itself, since it exceeds 3GB (Hydra's output limit) due
+        # to the size of its bundled libs. We can however save users a bit of compile
+        # time by building the bootstrap ghcjs on Hydra. For this reason, we overwrite
+        # the ghcjs attributes in haskell.compiler with a reference to the bootstrap
+        # ghcjs attribute in their bootstrap package set (exposed via passthru) which
+        # would otherwise be ignored by Hydra.
+        bootGhcjs = (packagePlatforms pkgs.haskell.compiler.${ghcjsName}.passthru).bootGhcjs;
+      }));
 
       tests.haskell = packagePlatforms pkgs.tests.haskell;
 
@@ -195,6 +206,7 @@ let
         madlang
         matterhorn
         mueval
+        naproche
         neuron-notes
         niv
         nix-delegate
@@ -242,7 +254,15 @@ let
         zsh-git-prompt
         ;
 
-      elmPackages.elm = pkgsPlatforms.elmPackages.elm;
+      # Members of the elmPackages set that are Haskell derivations
+      elmPackages = {
+        inherit (pkgsPlatforms.elmPackages)
+          elm
+          elm-format
+          elm-instrument
+          elmi-to-json
+          ;
+      };
 
       # GHCs linked to musl.
       pkgsMusl.haskell.compiler = lib.recursiveUpdate
diff --git a/pkgs/top-level/release-python.nix b/pkgs/top-level/release-python.nix
index d90be7f3bb4c9..f341857222014 100644
--- a/pkgs/top-level/release-python.nix
+++ b/pkgs/top-level/release-python.nix
@@ -35,11 +35,12 @@ let
       name = "python-tested";
       meta.description = "Release-critical packages from the python package sets";
       constituents = [
-        jobs.remarshal.x86_64-linux                 # Used in pkgs.formats helper
-        jobs.python39Packages.colorama.x86_64-linux  # Used in nixos test-driver
-        jobs.python39Packages.ptpython.x86_64-linux  # Used in nixos test-driver
-        jobs.python39Packages.requests.x86_64-linux  # Almost ubiquous package
-        jobs.python39Packages.sphinx.x86_64-linux    # Document creation for many packages
+        jobs.remarshal.x86_64-linux                     # Used in pkgs.formats helper
+        jobs.python39Packages.buildcatrust.x86_64-linux # Used in pkgs.cacert
+        jobs.python39Packages.colorama.x86_64-linux     # Used in nixos test-driver
+        jobs.python39Packages.ptpython.x86_64-linux     # Used in nixos test-driver
+        jobs.python39Packages.requests.x86_64-linux     # Almost ubiquous package
+        jobs.python39Packages.sphinx.x86_64-linux       # Document creation for many packages
       ];
     };
 
diff --git a/pkgs/top-level/release-small.nix b/pkgs/top-level/release-small.nix
index a267b20d66759..7bf4a234bb657 100644
--- a/pkgs/top-level/release-small.nix
+++ b/pkgs/top-level/release-small.nix
@@ -124,7 +124,7 @@ with import ./release-lib.nix { inherit supportedSystems nixpkgsArgs; };
   smartmontools = all;
   sqlite = unix; # Cygwin builds fail
   squid = linux;
-  ssmtp = linux;
+  msmtp = linux;
   stdenv = all;
   strace = linux;
   su = linux;
diff --git a/pkgs/top-level/ruby-packages.nix b/pkgs/top-level/ruby-packages.nix
index 9e64afe31f3b1..4933478950eec 100644
--- a/pkgs/top-level/ruby-packages.nix
+++ b/pkgs/top-level/ruby-packages.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "121zl6435dwz1d14xviyynxj4njbawbv1ljxj5p0cxlhql1n3jsm";
+      sha256 = "05abj034rvyc1hgywp1gvj8bkxgp151aryxgmivxzk6sd29saq9q";
       type = "gem";
     };
-    version = "7.0.1";
+    version = "7.0.2.3";
   };
   actionmailbox = {
     dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail" "net-imap" "net-pop" "net-smtp"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jkxqdp9ha8pm2cd61ajs2pgn41adz3x1f8yqvdca3fvfrlgirjg";
+      sha256 = "0ryx9y27m6bp6mwkk0v6sq48kpvq9i15pwhfvq2gvkph1d41vx1k";
       type = "gem";
     };
-    version = "7.0.1";
+    version = "7.0.2.3";
   };
   actionmailer = {
     dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "net-imap" "net-pop" "net-smtp" "rails-dom-testing"];
@@ -27,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r27a5g0r7b27mzcl150hdc7ljgl5iyrxw1z4wn3n1jfb7xs5rkq";
+      sha256 = "0qsns7caqymk0zm5nn5dylqzgjvdjs96fp8l0ycadi5j2q93klxg";
       type = "gem";
     };
-    version = "7.0.1";
+    version = "7.0.2.3";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -38,10 +38,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0q27kqcl369g9y7sxxcfigrm1yyj3q22kd135l7ahx977vcy5hjm";
+      sha256 = "1yb36akfg61zq210sc9y1l3a0jz10m61a81iqxiczknsfh9d76rb";
       type = "gem";
     };
-    version = "7.0.1";
+    version = "7.0.2.3";
   };
   actiontext = {
     dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "globalid" "nokogiri"];
@@ -49,10 +49,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0yya6xda23q8p3knvg5c8zfqk7xwnkjplf2bxnvmipn88918cz6w";
+      sha256 = "0bky0ixc4b1si0zhywm8cds73bvxprga86yap3z8p95irarziybq";
       type = "gem";
     };
-    version = "7.0.1";
+    version = "7.0.2.3";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -60,10 +60,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nc0v74mdlag3kxcby0rrcz2ivvc94sfdrw3zm5ng2qrchh56w1b";
+      sha256 = "1nldiqlj9jlnfvqblhk6c4md77nqri24ln10ajhfbgrx9b6h140h";
       type = "gem";
     };
-    version = "7.0.1";
+    version = "7.0.2.3";
   };
   activejob = {
     dependencies = ["activesupport" "globalid"];
@@ -71,10 +71,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yshbsy4k8702x9jv90yr6cjjpn5vxlw42pb878g70cgp2wq45r3";
+      sha256 = "12ycizvhxcp7mz99g6ap9y67z5n2wy0bbbm8s5il765xsfizi76k";
       type = "gem";
     };
-    version = "7.0.1";
+    version = "7.0.2.3";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -82,10 +82,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vr3ayykc1s7n12ajddcyff751v9j48yfimgxrys6qsxj89gmnmh";
+      sha256 = "1r2657xaa6zfvp3y04nrl4hnjpvd9m9sl7hs83q4nbnclkgzhb4w";
       type = "gem";
     };
-    version = "7.0.1";
+    version = "7.0.2.3";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport"];
@@ -93,10 +93,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dpn1r1v2165bx9wj07rh1g27jl49yr6kyd34xhkd48hxfadq3jb";
+      sha256 = "104jdjghliw33zmivlmvq70l40dyyz6gh1qsb0z82n9wyp861s18";
       type = "gem";
     };
-    version = "7.0.1";
+    version = "7.0.2.3";
   };
   activestorage = {
     dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel" "mini_mime"];
@@ -104,10 +104,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pxjxyjgh4al11k7z1lbnsc5wx5dnraz95p2wx00dkrvpgw8gm8b";
+      sha256 = "143bfqq9m1mvmvm4s7qvgqzfl8fqa46a45kz5f4v0zfbflqx6f6v";
       type = "gem";
     };
-    version = "7.0.1";
+    version = "7.0.2.3";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
@@ -115,21 +115,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02lys9pnb99hsczs551iqzjn008i8k7c728xxba7acfi9rdw9pa6";
+      sha256 = "1jpydd414j0fig3r0f6ci67mchclg6cq2qgqbq9zplrbg40pzfi8";
       type = "gem";
     };
-    version = "7.0.1";
+    version = "7.0.2.3";
   };
   addressable = {
-    dependencies = ["idn-ruby"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "sha256-920p0tH1S2xqSa7Fj5WDsI2X4IjCJ6P8upL2xlMdWQg=";
+      sha256 = "0mpn7sbjl477h56gmxsjqb89r5s3w7vx5af994ssgc3iamvgzgvs";
       type = "gem";
     };
-    version = "2.8.0";
+    version = "2.4.0";
   };
   ansi = {
     groups = ["default"];
@@ -312,10 +311,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10vcm1dadj5sjrg31afzv7h1f0irhc7va5sr5y0fcvlkg2hms8jk";
+      sha256 = "03qb3k30j05b20xhjcp30p384n3aw5b5g1y2s2wrmndfizjv4hr9";
       type = "gem";
     };
-    version = "3.4.3";
+    version = "3.4.4";
   };
   cocoapods = {
     dependencies = ["activesupport" "claide" "cocoapods-core" "cocoapods-deintegrate" "cocoapods-downloader" "cocoapods-plugins" "cocoapods-search" "cocoapods-stats" "cocoapods-trunk" "cocoapods-try" "colored" "escape" "fourflusher" "molinillo" "nap" "xcodeproj"];
@@ -715,10 +714,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0py4n868h0whr5n8a4943nyagkpf0vnldk9nyizgf1q1lmrj1pkx";
+      sha256 = "00y9g79lzfffxarj3rmhnkblsnyx7izx91mh8c1sdcs9y2pdfq53";
       type = "gem";
     };
-    version = "1.4.3";
+    version = "1.4.4";
   };
   daemons = {
     groups = ["default"];
@@ -879,10 +878,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bkh80zzjpfglm14rhz116qgz0nb5gvk3ydfjpg14av5407srgh1";
+      sha256 = "1yff4s5b8wcrk9ldils2k84l46m9nxr0my0wxchzdmgjbjdfsvww";
       type = "gem";
     };
-    version = "0.90.0";
+    version = "0.92.0";
   };
   execjs = {
     groups = ["default"];
@@ -900,10 +899,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y32gj994ll3zlcqjmwp78r7s03iiwayij6fz2pjpkfywgvp71s6";
+      sha256 = "00palwawk897p5gypw5wjrh93d4p0xz2yl9w93yicb4kq7amh8d4";
       type = "gem";
     };
-    version = "1.9.3";
+    version = "1.10.0";
   };
   faraday-em_http = {
     groups = ["default"];
@@ -1044,10 +1043,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0l5zk5pzyrydavyw2ai6yz97alg4qvd93mb19m6460vzrj6x00qg";
+      sha256 = "06m6hxq8vspx9h9bgc2s19m56jzasvl45vblrfv1q5h1qg1k6amw";
       type = "gem";
     };
-    version = "2.2.4";
+    version = "2.3.0";
   };
   fog-dnsimple = {
     dependencies = ["fog-core" "fog-json"];
@@ -1076,10 +1075,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mprf1dwznz5ld0q1jpbyl59fwnwk6azspnd0am7zz7kfg3pxhv5";
+      sha256 = "1l06bv4avphbdmr1y4g0rqlczr38k6r65b3zghrbj2ynyhm3xqjl";
       type = "gem";
     };
-    version = "0.3.0";
+    version = "1.1.0";
   };
   fourflusher = {
     groups = ["default"];
@@ -1318,10 +1317,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vdd1kii40qhbr9n8qx71k2gskq6rkl8ygy8hw5hfj8bb5a364xf";
+      sha256 = "0b2qyvnk4yynlg17ymkq4g5xgr275637fhl1mjh0valw3cb1fhhg";
       type = "gem";
     };
-    version = "1.8.11";
+    version = "1.10.0";
   };
   iconv = {
     groups = ["default"];
@@ -1519,10 +1518,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ylph158dc3ql6cvkik00ab6gf2k1rv2dii63m196xclhkzwfyan";
+      sha256 = "1mnvb80cdg7fzdcs3xscv21p28w4igk5sj5m7m81xp8v2ks87jj0";
       type = "gem";
     };
-    version = "1.5.0";
+    version = "1.6.1";
   };
   json = {
     groups = ["default"];
@@ -1612,10 +1611,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17rvbrqcci1579d7dpbsfmz1f9g7msk82lyh9ip5h29dkrnixcgg";
+      sha256 = "1yp1h1j7pdkqvnx8jl6bkzlajav3h5mhqzihgs9p6y3c8927mw23";
       type = "gem";
     };
-    version = "2.13.0";
+    version = "2.15.0";
   };
   mab = {
     groups = ["default"];
@@ -1756,10 +1755,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0d3ga166pahsxavzwj19yjj4lr13rw1vsb36s2qs8blcxigrdp6z";
+      sha256 = "0rapl1sfmfi3bfr68da4ca16yhc0pp93vjwkj7y3rdqrzy3b41hy";
       type = "gem";
     };
-    version = "2.7.1";
+    version = "2.8.0";
   };
   minitest = {
     groups = ["default"];
@@ -1786,10 +1785,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06iajjyhx0rvpn4yr3h1hc4w4w3k59bdmfhxnjzzh76wsrdxxrc6";
+      sha256 = "1cshgsx3hmpgx639xyqjqa2q3hgrhlyr9rpwhsglsx529alqq125";
       type = "gem";
     };
-    version = "1.4.2";
+    version = "1.4.5";
   };
   multi_json = {
     groups = ["default"];
@@ -1973,10 +1972,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zqzawia52cdcmi55lp7v8jmiqyw7pcpwsksqlnirwfm3f7bnf11";
+      sha256 = "1p6b3q411h2mw4dsvhjrp1hh66hha5cm69fqg85vn2lizz71n6xz";
       type = "gem";
     };
-    version = "1.13.1";
+    version = "1.13.3";
   };
   octokit = {
     dependencies = ["faraday" "sawyer"];
@@ -1989,6 +1988,16 @@
     };
     version = "4.22.0";
   };
+  optimist = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vg2chy1cfmdj6c1gryl8zvjhhmb3plwgyh1jfnpq4fnfqv7asrk";
+      type = "gem";
+    };
+    version = "3.0.1";
+  };
   opus-ruby = {
     dependencies = ["ffi"];
     groups = ["default"];
@@ -2022,6 +2031,17 @@
     };
     version = "4.4.1";
   };
+  pandocomatic = {
+    dependencies = ["optimist" "paru"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cdhkc7vp8hcb86ps94all4hrvhzfgs4d98kvss5rqh34v7ibs6m";
+      type = "gem";
+    };
+    version = "0.2.8";
+  };
   pango = {
     dependencies = ["cairo-gobject" "gobject-introspection"];
     groups = ["default"];
@@ -2054,6 +2074,16 @@
     };
     version = "2.7.2.0";
   };
+  paru = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h9ab29r6fmblklxvhkpifmmpyzq7qw01lca00sn2ikkx2in3g6v";
+      type = "gem";
+    };
+    version = "0.4.3";
+  };
   patron = {
     groups = ["default"];
     platforms = [];
@@ -2079,10 +2109,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13mfrysrdrh8cka1d96zm0lnfs59i5x2g6ps49r2kz5p3q81xrzj";
+      sha256 = "090c3kazlmiizp25las7dgi8wlc11s29nrs2gy3qrp1z8qikgcmb";
       type = "gem";
     };
-    version = "1.2.3";
+    version = "1.3.4";
   };
   pkg-config = {
     groups = ["default"];
@@ -2163,10 +2193,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xblxnrs0c5m326v7kgr32k4m00cl2ipcf5m0qvyisrw62vd5dbn";
+      sha256 = "1np2myaxlk5iab1zarwgmp7zsjvm5j8ssg35ijv8b6dpvc3cjd56";
       type = "gem";
     };
-    version = "5.5.2";
+    version = "5.6.2";
   };
   racc = {
     groups = ["default"];
@@ -2194,10 +2224,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "159a4j4kragqh0z0z8vrpilpmaisnlz3n7kgiyf16bxkwlb3qlhz";
+      sha256 = "1hz6h6d67r217qi202qmxq2xkn3643ay3iybhl3dq3qd6j8nm3b2";
       type = "gem";
     };
-    version = "2.1.0";
+    version = "2.2.0";
   };
   rack-test = {
     dependencies = ["rack"];
@@ -2216,10 +2246,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yfqhxa89331mk0z33l12pvzdm4y35fx41kjb2p9jzl06jhz00rz";
+      sha256 = "10x2vb9rd3zpnp6f9vv60kmv9hlrcg4dxk9z5vhcdpkjbh3j8kpf";
       type = "gem";
     };
-    version = "7.0.1";
+    version = "7.0.2.3";
   };
   rails-dom-testing = {
     dependencies = ["activesupport" "nokogiri"];
@@ -2249,10 +2279,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gi4q1j3n7vb79ijsqjgy1fnqqxypk4zdj61kic4py19pn6xqaxw";
+      sha256 = "12jxqfalhac6q3v0rasm5r5c406knngrgdblhl41m753gn9hrzx4";
       type = "gem";
     };
-    version = "7.0.1";
+    version = "7.0.2.3";
   };
   rainbow = {
     groups = ["default"];
@@ -2279,10 +2309,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qsx9c4jr11vr3a9s5j83avczx9qn9rjaf32gxpc2v451hvbc0is";
+      sha256 = "06c50pvxib7wqnv6q0f3n7gzfcrp5chi3sa48hxpkfxc3hhy11fm";
       type = "gem";
     };
-    version = "0.11.0";
+    version = "0.11.1";
   };
   rb-inotify = {
     dependencies = ["ffi"];
@@ -2352,10 +2382,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03r9739q3vq38g456snf3rk9hadf955bs5im6qs6m69h19mrz2yw";
+      sha256 = "1lhdfkl4r6dnhlr8jpz4a21ca6c76jfy7fj7gf4j2qpbh8ld8qyb";
       type = "gem";
     };
-    version = "4.5.1";
+    version = "4.6.0";
   };
   redis-rack = {
     dependencies = ["rack" "redis-store"];
@@ -2363,10 +2393,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nblbxg1f051dn83jp92lz3lc1wxm18nviglrabv2l0vz6rd0pkb";
+      sha256 = "0k3pn706wnf7lb24l6hwsi00c8rx693hvgfnccw3qj1y635ywwh8";
       type = "gem";
     };
-    version = "2.1.3";
+    version = "2.1.4";
   };
   redis-store = {
     dependencies = ["redis"];
@@ -2374,20 +2404,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cpzbf2svnk4j5awb24ncl0mih45zkbdrd7q23jdg1r8k3q7mdg6";
+      sha256 = "0787fwmlvpx5k360dxlcs8r7vijgl2iyvh3zyvl7qyvgshw78k3v";
       type = "gem";
     };
-    version = "1.9.0";
+    version = "1.9.1";
   };
   regexp_parser = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "008yn8j44414qxhn1c0nxp4a70rq0bqhz70hnjpgx8cjh2g0makp";
+      sha256 = "155f6cr4rrfw5bs5xd3m5kfw32qhc5fsi4nk82rhif56rc6cs0wm";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.2.1";
   };
   rest-client = {
     dependencies = ["http-accept" "http-cookie" "mime-types" "netrc"];
@@ -2457,10 +2487,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dwai7jnwmdmd7ajbi2q0k0lx1dh88knv5wl7c34wjmf94yv8w5q";
+      sha256 = "19dyb6rcvgi9j2mksd29wfdhfdyzqk7yjhy1ai77559hbhpg61w9";
       type = "gem";
     };
-    version = "3.10.0";
+    version = "3.11.0";
   };
   rspec-core = {
     dependencies = ["rspec-support"];
@@ -2468,10 +2498,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wwnfhxxvrlxlk1a3yxlb82k2f9lm0yn0598x7lk8fksaz4vv6mc";
+      sha256 = "118hkfw9b11hvvalr7qlylwal5h8dihagm9xg7k4gskg7587hca6";
       type = "gem";
     };
-    version = "3.10.1";
+    version = "3.11.0";
   };
   rspec-expectations = {
     dependencies = ["diff-lcs" "rspec-support"];
@@ -2479,10 +2509,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qrj2j9jcd3m4aksk4kbv439882yl3z1harv2jrybrgjgdzdz7zs";
+      sha256 = "001ihayil7jpfxdlxlhakvz02kx0nk5m1w0bz6z8izdx0nc8bh53";
       type = "gem";
     };
-    version = "3.10.2";
+    version = "3.11.0";
   };
   rspec-mocks = {
     dependencies = ["diff-lcs" "rspec-support"];
@@ -2490,20 +2520,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1d13g6kipqqc9lmwz5b244pdwc97z15vcbnbq6n9rlf32bipdz4k";
+      sha256 = "0y38dc66yhnfcf4ky3k47c20xak1rax940s4a96qkjxqrniy5ys3";
       type = "gem";
     };
-    version = "3.10.2";
+    version = "3.11.0";
   };
   rspec-support = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pjckrh8q6sqxy38xw7f4ziylq1983k84xh927s6352pps68zj35";
+      sha256 = "0xfk4pla77251n39zf4n792m1rhg5sn1kp63yvpvvysany34la03";
       type = "gem";
     };
-    version = "3.10.3";
+    version = "3.11.0";
   };
   rubocop = {
     dependencies = ["parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
@@ -2636,10 +2666,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0x00xqq666wfi53w2bb7lgqrr3diyakncbr4sxpbvkd2yvvra913";
+      sha256 = "0m94p1fdgn6m16vnw4qs3ja2xd8kiz1z67glyp0c56g0bfghbx3q";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.4.2";
   };
   safe_yaml = {
     groups = ["default"];
@@ -2711,20 +2741,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k7iz98xfv84dkdjk2d90vxnzrjqx20gg6k3fdm45q5rnp2lb9j7";
+      sha256 = "1s98gvp8fzxyz57lvnmb44vn93d4cyipw4qwk1ykikgml289zqwy";
       type = "gem";
     };
-    version = "0.11.8";
+    version = "0.11.9";
   };
   sequel = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0z0s3xq6dmak96296dchi8j61m0cih7j9pzdpxxsh786vrpznwlj";
+      sha256 = "1wzb16vyslr7bpy7g5k2m35yz90bpf12f3pzj5w6icf1vldnc3nf";
       type = "gem";
     };
-    version = "5.52.0";
+    version = "5.54.0";
   };
   sequel_pg = {
     dependencies = ["pg" "sequel"];
@@ -2732,10 +2762,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mkbnc96bfpl5wqacblzwiwqywbx4vqrvkz57fj1h2f0bn635nk6";
+      sha256 = "1m0ywaql7naj5y823s8h413gzc9h3vd4yr6mws94rcr8dr9hky77";
       type = "gem";
     };
-    version = "1.14.0";
+    version = "1.15.0";
   };
   simplecov = {
     dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"];
@@ -2763,10 +2793,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19r15hyvh52jx7fmsrcflb58xh8l7l0zx4sxkh3hqzhq68y81pjl";
+      sha256 = "0a5l0733hj7sk51j81ykfmlk2vd5vaijlq9d5fn165yyx3xii52j";
       type = "gem";
     };
-    version = "0.1.3";
+    version = "0.1.4";
   };
   sinatra = {
     dependencies = ["mustermann" "rack" "rack-protection" "tilt"];
@@ -2774,10 +2804,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dd53rzpkxgs697pycbhhgc9vcnxra4ly4xar8ni6aiydx2f88zk";
+      sha256 = "1x3rci7k30g96y307hvglpdgm3f7nga3k3n4i8n1v2xxx290800y";
       type = "gem";
     };
-    version = "2.1.0";
+    version = "2.2.0";
   };
   slather = {
     dependencies = ["CFPropertyList" "activesupport" "clamp" "nokogiri" "xcodeproj"];
@@ -2805,10 +2835,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xl54r1vvrhlkxf16mxqk4kz18j0igf1f7l66kqd9dbyv6x99zfg";
+      sha256 = "1a77kysns9pz4nx149df0f987qj1pdfyjby2jr3iwmj2zj7r3klp";
       type = "gem";
     };
-    version = "0.2.0";
+    version = "0.3.0";
   };
   snmp = {
     groups = ["default"];
@@ -2887,10 +2917,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rb9nax4k72zbriq7k98shfcj4lf54sqjpin2xm6ma7bb48ra8mc";
+      sha256 = "1knw2xa3pkfql4np9qazz2mdi1vz21vdsa0wkx648c4ym1p2h8yh";
       type = "gem";
     };
-    version = "0.15.0";
+    version = "0.16.0";
   };
   tilt = {
     groups = ["default"];
@@ -2971,10 +3001,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jmbimpnpjdzz8hlrppgl9spm99qh3qzbx0b81k3gkgwba8nk3yd";
+      sha256 = "0bf120xbq23zjyf8zi8h1576d71g58srr8rndig0whn10w72vrxz";
       type = "gem";
     };
-    version = "0.0.8";
+    version = "0.0.8.1";
   };
   unicode-display_width = {
     groups = ["default"];
@@ -3032,10 +3062,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "092y84kak86ds2as9kwn5a9m2yzqwqcz4wx31jk3kin32c3hwcrn";
+      sha256 = "1mbpija1z2ia0bgqm950z564pk8x8zisjnlxpqhysffczz7hv46z";
       type = "gem";
     };
-    version = "5.0.2";
+    version = "5.1.0";
   };
   xcodeproj = {
     dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo" "rexml"];
@@ -3074,10 +3104,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lmg9x683gr9mkrbq9df2m0zb0650mdfxqna0bs10js44inv7znx";
+      sha256 = "09bq7j2p6mkbxnsg71s253dm2463kg51xc7bmjcxgyblqbh4ln7m";
       type = "gem";
     };
-    version = "2.5.3";
+    version = "2.5.4";
   };
   ZenTest = {
     groups = ["default"];